[
  {
    "path": ".clang-format",
    "content": "---\r\nBasedOnStyle: Microsoft\r\n# The order of includes is very important, so don't sort them!\r\nSortIncludes: Never\r\n"
  },
  {
    "path": ".gitattributes",
    "content": "*.avi binary\n*.bmp binary\n*.ico binary\n*.chk binary\n"
  },
  {
    "path": ".github/workflows/build.yml",
    "content": "name: build\non: push\njobs:\n  compile:\n    name: Compile project\n    runs-on: windows-latest\n    steps:\n      - name: Check out repository code\n        uses: actions/checkout@v3\n      - name: Install VCVars\n        shell: pwsh\n        run: Install-Module -Name VCVars -Force\n      - name: Compile\n        shell: pwsh\n        run: |\n          pushvc (invoke-vcvars -TargetArch x86 -HostArch AMD64)\n          cmake --preset x86:msvc:debug\n          cmake --build build\n      - name: Upload Artifact\n        uses: actions/upload-artifact@v3\n        with:\n          name: 3D-Movie-Maker\n          path: build/\n"
  },
  {
    "path": ".github/workflows/clang-format-check.yml",
    "content": "name: clang-format Check\non: [push, pull_request]\njobs:\n  formatting-check:\n    name: Formatting Check\n    runs-on: ubuntu-latest\n    steps:\n    - uses: actions/checkout@v2\n    - name: Run clang-format style check for C/C++/Protobuf programs.\n      uses: jidicula/clang-format-action@v4.6.2\n      with:\n        clang-format-version: '14'\n        check-path: '.'\n"
  },
  {
    "path": ".gitignore",
    "content": "obj/\n._.DS_Store\n.DS_Store\nout/\n.vs/\ndist/\nbuild/\n\n\n# Files generated during build, so they're ignored to keep them out of git\nelib/wind/bren.lib\nelib/wins/bren.lib\nkauai/src/kcd2_386.h\nkauai/src/kcdc_386.h\n"
  },
  {
    "path": ".notes/removed_files.txt",
    "content": "Other files removed:\n\n./OBJ/WIND/ENGINE.LIB\n./OBJ/WINS/ENGINE.LIB\n./kauai/ELIB/WINUD/AUDIOD.LIB\n./kauai/ELIB/WIND/AUDIOD.LIB\n./kauai/ELIB/WINUS/AUDIOS.LIB\n./kauai/ELIB/WINS/AUDIOS.LIB\n./SETUP/TOOLS/INC/MSSETUP.LIB\n./DKIT/LIBDKIT.LIB\n./ELIB/WIND/BRZBMXR.LIB\n./ELIB/WIND/BREN.LIB\n./ELIB/WIND/BRFMMXR.LIB\n./ELIB/WIND/BRFWMXR.LIB\n./ELIB/WINS/BRZBMXR.LIB\n./ELIB/WINS/BREN.LIB\n./ELIB/WINS/BRFMMXR.LIB\n./ELIB/WINS/BRFWMXR.LIB\n./BREN/OBJ/WIND/BREN.LIB\n./BREN/OBJ/WINS/BREN.LIB\n./cd12/OBJ/WIND/ENGINE.LIB\n./cd12/OBJ/WINS/ENGINE.LIB\n./cd12/SETUP/TOOLS/INC/MSSETUP.LIB\n./cd12/DKIT/LIBDKIT.LIB\n./cd12/ELIB/WIND/BRZBMXR.LIB\n./cd12/ELIB/WIND/BREN.LIB\n./cd12/ELIB/WIND/BRFMMXR.LIB\n./cd12/ELIB/WIND/BRFWMXR.LIB\n./cd12/ELIB/WINS/BRZBMXR.LIB\n./cd12/ELIB/WINS/BREN.LIB\n./cd12/ELIB/WINS/BRFMMXR.LIB\n./cd12/ELIB/WINS/BRFWMXR.LIB\n./cd12/BREN/OBJ/WIND/BREN.LIB\n./cd12/BREN/OBJ/WINS/BREN.LIB\n./cd3/SETUP/MSSETUP.DLL\n./cd3/SETUP/3DMSETUP.DLL\n./cd3/PSS/IMGWALK.DLL\n./cd3/MMCAT/VER.DLL\n./cd3/MMCAT/VBRUN300.DLL\n./SETUP/D/3DMSETUP.DLL\n./cd12/SETUP/TOOLS/U/MSSETUP.DLL\n./cd12/SETUP/TOOLS/UD/MSSETUP.DLL\n./cd12/SETUP/TOOLS/DD/MSSETUP.DLL\n./cd12/SETUP/TOOLS/D/MSSETUP.DLL\n./cd12/SETUP/BIN/PSS/IMGWALK.DLL\n./cd12/SETUP/BIN/MMCAT/VER.DLL\n./cd12/SETUP/BIN/MMCAT/VBRUN300.DLL\n./cd12/SETUP/U/3DMSETUP.DLL\n./cd12/SETUP/Z/3DMSETUP.DLL\n./cd12/SETUP/UD/3DMSETUP.DLL\n./cd12/SETUP/D/3DMSETUP.DLL\n"
  },
  {
    "path": ".vscode/settings.json",
    "content": "{\n    \"files.associations\": {\n        \"W95INST.C\": \"cpp\",\n        \"STDFILE.C\": \"cpp\",\n        \"STDMEM.C\": \"cpp\"\n    }\n}"
  },
  {
    "path": "CMakeLists.txt",
    "content": "cmake_minimum_required(VERSION 3.22)\nproject(3DMMForever LANGUAGES CXX C VERSION 0.2)\n\nlist(APPEND CMAKE_MODULE_PATH \"${PROJECT_SOURCE_DIR}/cmake\")\n\nset(CMAKE_MSVC_RUNTIME_LIBRARY \"MultiThreaded$<$<CONFIG:Debug>:Debug>\")\nset(CMAKE_CXX_STANDARD 14)\n\nif(MSVC)\n  #set(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} /W4\")\n  \n  set(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} /permissive-\")\n  # permissive forces C++14 const char* as default for literals\n  # this flag re-enables the auto-conversion for the microsoft compiler\n  set(CMAKE_CXX_FLAGS \"${CMAKE_CXX_FLAGS} /Zc:strictStrings-\")\nendif()\n\ninclude(CMakeDependentOption)\ninclude(TargetChompSources)\n\nfind_package(AudioMan)\nfind_package(BRender REQUIRED)\n\n# Options\noption(BUILD_PACKAGES \"Build packages for 3DMM\" ON)\n\ncmake_dependent_option(3DMM_PACKAGE_WIX \"Generate an MSI via WiX\" ON \"BUILD_PACKAGES AND DEFINED ENV{WIX}\" OFF)\ncmake_dependent_option(3DMM_PACKAGE_ZIP \"Generate a portable ZIP\" ON \"BUILD_PACKAGES\" OFF)\n\n# Optional Tools\nfind_package(ClangTidy)\nfind_package(CCache)\n\nif (TARGET CCache::CCache AND NOT CMAKE_CXX_COMPILER_LAUNCHER)\n  get_property(CMAKE_CXX_COMPILER_LAUNCHER TARGET CCache::CCache PROPERTY IMPORTED_LOCATION)\n  get_property(CMAKE_C_COMPILER_LAUNCHER TARGET CCache::CCache PROPERTY IMPORTED_LOCATION)\nendif()\n\n# TODO: Enable this when the \n#if (TARGET Clang::Tidy AND NOT CMAKE_CXX_CLANG_TIDY)\n#  get_property(CMAKE_CXX_CLANG_TIDY TARGET Clang::Tidy PROPERTY IMPORTED_LOCATION)\n#endif()\n\n# Local Tooling\nadd_compile_definitions(\n  $<$<PLATFORM_ID:Windows>:WIN>\n  $<$<PLATFORM_ID:Windows>:IN_80386>\n  $<$<CONFIG:Debug>:DEBUG>\n)\n\nif (NOT CMAKE_SIZEOF_VOID_P EQUAL 4)\n  message(FATAL_ERROR \"Cannot compile for 64-bit yet\")\nendif()\n\n# NOTE: kcdc-386 and kcd2-386 prevent cross compiling at this time.\nadd_executable(kcdc-386 EXCLUDE_FROM_ALL)\ntarget_sources(kcdc-386 PRIVATE \"${PROJECT_SOURCE_DIR}/kauai/src/kcdc_386.c\")\ntarget_include_directories(kcdc-386 PRIVATE $<TARGET_PROPERTY:kauai,INCLUDE_DIRECTORIES>)\n\nadd_executable(kcd2-386 EXCLUDE_FROM_ALL)\ntarget_sources(kcd2-386 PRIVATE \"${PROJECT_SOURCE_DIR}/kauai/src/kcd2_386.c\")\ntarget_include_directories(kcd2-386 PRIVATE $<TARGET_PROPERTY:kauai,INCLUDE_DIRECTORIES>)\n\nif (NOT TARGET 3DMMForever::AudioMan)\n  add_library(audioman)\n  add_library(3DMMForever::AudioMan ALIAS audioman)\n  target_include_directories(audioman PUBLIC\n      \"${PROJECT_SOURCE_DIR}/kauai/src\"\n  )\n  target_sources(audioman PRIVATE\n      \"${PROJECT_SOURCE_DIR}/audioman/audioman.cpp\"\n  )\nendif()\n\nadd_executable(chelp WIN32 EXCLUDE_FROM_ALL)\ntarget_sources(chelp PRIVATE\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/chtop.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/chelp.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/chelpexp.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/chelp.rc\"\n)\ntarget_include_directories(chelp PRIVATE $<TARGET_PROPERTY:kauai,INCLUDE_DIRECTORIES>)\ntarget_link_libraries(chelp PRIVATE $<TARGET_NAME_IF_EXISTS:kauai>)\n\n# Kauai test applications\nadd_executable(ft WIN32 EXCLUDE_FROM_ALL)\ntarget_sources(ft PRIVATE\n    \"${PROJECT_SOURCE_DIR}/kauai/src/test.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/ft.rc\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/ft.cpp\"\n)\ntarget_link_libraries(ft PRIVATE kauai)\n\nadd_executable(ut EXCLUDE_FROM_ALL)\ntarget_sources(ut PRIVATE\n    \"${PROJECT_SOURCE_DIR}/kauai/src/ut.cpp\"\n)\ntarget_link_libraries(ut PRIVATE kauai)\n\nadd_executable(chomp EXCLUDE_FROM_ALL)\ntarget_sources(chomp PRIVATE \"${PROJECT_SOURCE_DIR}/kauai/tools/chomp.cpp\")\ntarget_include_directories(chomp PRIVATE $<TARGET_PROPERTY:kauai,INCLUDE_DIRECTORIES>)\ntarget_link_libraries(chomp PRIVATE $<TARGET_NAME_IF_EXISTS:kauai>)\n\n# Chunk Editor\nadd_executable(ched WIN32 EXCLUDE_FROM_ALL)\ntarget_sources(ched PRIVATE\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/ched.rc\"\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/chdoc.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/ched.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/chgrp.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/chhex.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/chmbmp.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/chpic.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/chtxt.cpp\"\n)\ntarget_link_libraries(ched PRIVATE kauai)\n\n# mkmbmp\nadd_executable(mkmbmp EXCLUDE_FROM_ALL)\ntarget_sources(mkmbmp PRIVATE\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/mkmbmp.cpp\"\n)\ntarget_link_libraries(mkmbmp PRIVATE kauai)\n\n# kpack\nadd_executable(kpack EXCLUDE_FROM_ALL)\ntarget_sources(kpack PRIVATE\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/kpack.cpp\"\n)\ntarget_link_libraries(kpack PRIVATE kauai)\n\n# chmerge\nadd_executable(chmerge EXCLUDE_FROM_ALL)\ntarget_sources(chmerge PRIVATE\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/chmerge.cpp\"\n)\ntarget_link_libraries(chmerge PRIVATE kauai)\n\n# chelpdmp\nadd_executable(chelpdmp EXCLUDE_FROM_ALL)\ntarget_sources(chelpdmp PRIVATE\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/chelpdmp.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/tools/chelpexp.cpp\"\n)\ntarget_link_libraries(chelpdmp PRIVATE kauai)\n\n# These are only here to ensure configure is rerun when dependencies are generated.\n# This is \nfile(GLOB building-chunk-sources CONFIGURE_DEPENDS \"${PROJECT_SOURCE_DIR}/src/building/*.cht\")\nfile(GLOB studio-chunk-sources CONFIGURE_DEPENDS \"${PROJECT_SOURCE_DIR}/src/studio/*.cht\")\n\nadd_custom_command(\n  OUTPUT \"${PROJECT_BINARY_DIR}/generated/kauai/src/kcdc_386.h\"\n  COMMAND cmake -E make_directory \"${PROJECT_BINARY_DIR}/generated/kauai/src\"\n  COMMAND kcdc-386 \"${PROJECT_BINARY_DIR}/generated/kauai/src/kcdc_386.h\"\n  COMMENT \"Generating kcdc_386.h\"\n  VERBATIM\n)\n\nadd_custom_command(\n  OUTPUT \"${PROJECT_BINARY_DIR}/generated/kauai/src/kcd2_386.h\"\n  COMMAND cmake -E make_directory \"${PROJECT_BINARY_DIR}/generated/kauai/src\"\n  COMMAND kcd2-386 \"${PROJECT_BINARY_DIR}/generated/kauai/src/kcd2_386.h\"\n  COMMENT \"Generating kcd2_386.h\"\n  VERBATIM\n)\n\nadd_compile_options($<$<COMPILE_LANG_AND_ID:CXX,MSVC>:/wd4430>)\nadd_library(kauai)\ntarget_include_directories(\n  kauai\n    PUBLIC\n      \"${PROJECT_SOURCE_DIR}/kauai/src\"\n      \"$<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/generated/kauai/src>\")\n\ntarget_sources(kauai\n  PRIVATE\n    \"${PROJECT_BINARY_DIR}/generated/kauai/src/kcdc_386.h\"\n    \"${PROJECT_BINARY_DIR}/generated/kauai/src/kcd2_386.h\"\n\n    \"${PROJECT_SOURCE_DIR}/kauai/src/appb.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/base.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/chcm.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/chse.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/chunk.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/clip.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/clok.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/cmd.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/codec.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/codkauai.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/crf.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/ctl.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/cursor.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/dlg.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/docb.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/file.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/frame.rc\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/gfx.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/gob.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/groups.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/groups2.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/kidhelp.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/kidspace.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/kidworld.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/lex.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/mbmp.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/mbmpgui.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/midi.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/mididev.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/mididev2.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/mssio.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/pic.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/region.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/rtxt.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/rtxt2.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/scrcom.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/scrcomg.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/screxe.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/screxeg.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/sndam.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/sndm.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/spell.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/stream.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/text.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/textdoc.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/util.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/utilcopy.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/utilerro.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/utilglob.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/utilint.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/utilmem.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/utilrnd.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/utilstr.cpp\"\n    \"${PROJECT_SOURCE_DIR}/kauai/src/video.cpp\"\n\n    # Windows implementations\n    $<$<PLATFORM_ID:Windows>:${PROJECT_SOURCE_DIR}/kauai/src/appbwin.cpp>\n    $<$<PLATFORM_ID:Windows>:${PROJECT_SOURCE_DIR}/kauai/src/dlgwin.cpp>\n    $<$<PLATFORM_ID:Windows>:${PROJECT_SOURCE_DIR}/kauai/src/filewin.cpp>\n    $<$<PLATFORM_ID:Windows>:${PROJECT_SOURCE_DIR}/kauai/src/fniwin.cpp>\n    $<$<PLATFORM_ID:Windows>:${PROJECT_SOURCE_DIR}/kauai/src/gfxwin.cpp>\n    $<$<PLATFORM_ID:Windows>:${PROJECT_SOURCE_DIR}/kauai/src/memwin.cpp>\n    $<$<PLATFORM_ID:Windows>:${PROJECT_SOURCE_DIR}/kauai/src/menuwin.cpp>\n    $<$<PLATFORM_ID:Windows>:${PROJECT_SOURCE_DIR}/kauai/src/picwin.cpp>\n    $<$<PLATFORM_ID:Windows>:${PROJECT_SOURCE_DIR}/kauai/src/gobwin.cpp>\n\n    # Stubs for Visual C++ 2.1 CRT functions\n    \"${PROJECT_SOURCE_DIR}/kauai/src/stub.cpp\"   \n)\n\ntarget_compile_definitions(kauai PUBLIC\n  _LPCVOID_DEFINED\n  STRICT)\n\ntarget_link_libraries(kauai\n  PUBLIC\n    3DMMForever::AudioMan\n    $<$<PLATFORM_ID:Windows>:Msacm32>\n    $<$<PLATFORM_ID:Windows>:Vfw32>\n    $<$<PLATFORM_ID:Windows>:Winmm>\n    $<$<PLATFORM_ID:Windows>:mpr>)\n\nadd_library(brender)\ntarget_sources(brender\n    PRIVATE\n    \"${PROJECT_SOURCE_DIR}/bren/bwld.cpp\"\n    \"${PROJECT_SOURCE_DIR}/bren/stderr.c\"\n    \"${PROJECT_SOURCE_DIR}/bren/stdfile.c\"\n    \"${PROJECT_SOURCE_DIR}/bren/stdmem.c\"\n    \"${PROJECT_SOURCE_DIR}/bren/tmap.cpp\"\n    \"${PROJECT_SOURCE_DIR}/bren/zbmp.cpp\"\n)\ntarget_include_directories(brender PUBLIC \"${PROJECT_SOURCE_DIR}/BREN/INC\")\ntarget_link_libraries(brender\n  PUBLIC\n    kauai\n    BRender::Libraries)\n\nadd_library(engine)\ntarget_sources(engine\n    PRIVATE\n    \"${PROJECT_SOURCE_DIR}/src/engine/actor.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/actredit.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/actrsave.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/actrsnd.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/bkgd.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/body.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/modl.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/movie.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/msnd.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/mtrl.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/scene.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/srec.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/tagl.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/tagman.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/tbox.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/tdf.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/tdt.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/engine/tmpl.cpp\"\n)\ntarget_include_directories(engine PUBLIC\n  $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/INC>)\ntarget_link_libraries(engine PUBLIC kauai brender)\n\n# On non-windows WIN32 is a no-op\nadd_executable(studio WIN32)\ntarget_sources(studio\n    PRIVATE\n    \"${PROJECT_SOURCE_DIR}/src/studio/ape.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/studio/browser.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/studio/esl.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/studio/mminstal.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/studio/popup.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/studio/portf.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/studio/scnsort.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/studio/splot.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/studio/stdiobrw.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/studio/stdioscb.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/studio/studio.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/studio/tatr.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/studio/tgob.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/studio/utest.cpp\"\n    \"${PROJECT_SOURCE_DIR}/src/studio/utest.rc\"\n    \"${PROJECT_SOURCE_DIR}/src/studio/utest.rc2\"\n)\ntarget_include_directories(studio\n  PUBLIC $<TARGET_PROPERTY:engine,INCLUDE_DIRECTORIES>\n  \"${PROJECT_SOURCE_DIR}/src\")\ntarget_chomp_sources(studio\n  \"${PROJECT_SOURCE_DIR}/src/studio/utest.cht\"\n  \"${PROJECT_SOURCE_DIR}/src/studio/studio.cht\"\n  \"${PROJECT_SOURCE_DIR}/src/building/bldghd.cht\"\n  \"${PROJECT_SOURCE_DIR}/src/building/building.cht\"\n  \"${PROJECT_SOURCE_DIR}/src/helpaud/helpaud.cht\"\n  \"${PROJECT_SOURCE_DIR}/src/help/help.cht\"\n  \"${PROJECT_SOURCE_DIR}/src/shared/shared.cht\"\n  \"${PROJECT_SOURCE_DIR}/src/shared/sharecd.cht\")\n\ntarget_link_libraries(studio PRIVATE engine)\nset_property(TARGET studio PROPERTY OUTPUT_NAME 3dmovie)\ntarget_link_options(studio BEFORE PRIVATE $<$<LINK_LANG_AND_ID:CXX,MSVC>:/MANIFESTUAC:NO>)\ntarget_link_options(studio\n  BEFORE PRIVATE\n    $<$<AND:$<LINK_LANG_AND_ID:CXX,MSVC>,$<CONFIG:DEBUG>>:/NODEFAULTLIB:libcmt.lib>)\n\nset_property(\n    TARGET studio\n    PROPERTY 3DMM_SAMPLES\n    ${studio-samples}\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/BONGO.3MM\"\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/BOOOOOO.3MM\"\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/CITYTOUR.3MM\"\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/GRAVEYRD.3MM\"\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/HAUNTED.3MM\"\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/HOSPITAL.3MM\"\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/JUNGLE.3MM\"\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/MESSAGE.3MM\"\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/SPACE.3MM\"\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/SPROG.3MM\"\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/TERROR.3MM\"\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/THEBOOK.3MM\"\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/THELODGE.3MM\"\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/THETHIEF.3MM\"\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/VENUS31.3MM\"\n    \"${PROJECT_SOURCE_DIR}/cd3/SAMPLES/WHERE.3MM\"\n)\n\n# Please pay attention to the ending / in each DIRECTORY declaration. It\n# affects the destination!\ninstall(TARGETS studio RUNTIME DESTINATION .)\n# HACK(bruxisma): This is due to UTEST.CHT not generating 3DMOVIE.CHK\n#                 Renaming it to 3DMOVIE.CHT would resolve this.\ninstall(FILES $<FILTER:$<TARGET_PROPERTY:studio,CHOMPED_CHUNKS>,EXCLUDE,.+UTEST[.]chk$>\n  DESTINATION \"Microsoft Kids/3D Movie Maker\")\ninstall(FILES $<FILTER:$<TARGET_PROPERTY:studio,CHOMPED_CHUNKS>,INCLUDE,.+UTEST[.]chk$>\n  RENAME 3dmovie.chk\n  DESTINATION \"Microsoft Kids/3D Movie Maker\")\ninstall(FILES $<TARGET_PROPERTY:studio,3DMM_SAMPLES>\n  DESTINATION \"Microsoft Kids/Users/Melanie\")\ninstall(DIRECTORY \"${PROJECT_SOURCE_DIR}/cd9/\"\n  DESTINATION \"Microsoft Kids/3D Movie Maker\")\n\n# CPack must be included *last*, which is antithetical to how most CMake\n# Modules work. We can set all variables for all packaging regardless of\n# whether they're supported. This way we can just swap out what is added to\n# `CPACK_GENERATOR`\n\n# DO NOT CHANGE THIS. EVER. Generated manually via uuidgen. This needs to be\n# the same so that user's can automatically upgrade via MSI\nset(CPACK_WIX_UPGRADE_GUID 01c5fef4-82b5-4194-aaf3-bd0247004941)\n# Change this as needed.\nset(CPACK_WIX_PROPERTY_ARPURLINFOABOUT https://github.com/foone/3DMMForever)\n\nif (BUILD_PACKAGES)\n  add_custom_target(dist DEPENDS $<TARGET_NAME_IF_EXISTS:package>)\n  foreach (generator IN ITEMS ZIP WIX)\n    if (3DMM_PACKAGE_${generator})\n      list(APPEND CPACK_GENERATOR ${generator})\n    endif()\n  endforeach()\n  include(CPack)\nendif()\n"
  },
  {
    "path": "CMakePresets.json",
    "content": "{\n  \"version\": 3,\n  \"configurePresets\": [\n    {\n      \"name\": \"base\",\n      \"hidden\": true,\n      \"generator\": \"Ninja\",\n      \"binaryDir\": \"${sourceDir}/build\",\n      \"installDir\": \"${sourceDir}/dist\"\n    },\n    {\n      \"name\": \"msvc:base\",\n      \"inherits\": \"base\",\n      \"hidden\": true,\n      \"cacheVariables\": {\n        \"CMAKE_CXX_COMPILER\": \"cl\"\n      },\n      \"condition\": {\n        \"type\": \"equals\",\n        \"lhs\": \"${hostSystemName}\",\n        \"rhs\": \"Windows\"\n      }\n    },\n    {\n      \"name\": \"msvc:x86:base\",\n      \"inherits\": \"msvc:base\",\n      \"hidden\": true,\n      \"architecture\": {\n        \"value\": \"x86\",\n        \"strategy\": \"external\"\n      }\n    },\n    {\n      \"displayName\": \"MSVC x86 Release\",\n      \"name\": \"x86:msvc:release\",\n      \"inherits\": \"msvc:x86:base\",\n      \"cacheVariables\": {\n        \"CMAKE_BUILD_TYPE\": \"Release\"\n      }\n    },\n    {\n      \"displayName\": \"MSVC x86 Debug\",\n      \"name\": \"x86:msvc:debug\",\n      \"inherits\": \"msvc:x86:base\",\n      \"cacheVariables\": {\n        \"CMAKE_BUILD_TYPE\": \"Debug\"\n      }\n    },\n    {\n      \"displayName\": \"MSVC x86 RelWithDebInfo\",\n      \"name\": \"x86:msvc:relwithdebinfo\",\n      \"inherits\": \"msvc:x86:base\",\n      \"cacheVariables\": {\n        \"CMAKE_BUILD_TYPE\": \"RelWithDebInfo\"\n      }\n    },\n    {\n      \"displayName\": \"MSVC x86 MinSizeRel\",\n      \"name\": \"x86:msvc:minsizerel\",\n      \"inherits\": \"msvc:x86:base\",\n      \"cacheVariables\": {\n        \"CMAKE_BUILD_TYPE\": \"MinSizeRel\"\n      }\n    }\n\n  ]\n}\n"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "content": "# Microsoft Open Source Code of Conduct\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).\n\nResources:\n\n- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)\n- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)\n- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns\n"
  },
  {
    "path": "Dockerfile",
    "content": "# escape=`\r\n\r\nFROM mcr.microsoft.com/windows/servercore:ltsc2019\r\n\r\nADD https://aka.ms/vs/17/release/vs_buildtools.exe C:\\TEMP\\vs_buildtools.exe\r\n\r\nRUN C:\\TEMP\\vs_buildtools.exe --quiet --wait --norestart --nocache `\r\n    --add Microsoft.VisualStudio.Workload.VCTools --includeRecommended `\r\n    --remove Microsoft.VisualStudio.Component.Windows10SDK.10240 `\r\n    --remove Microsoft.VisualStudio.Component.Windows10SDK.10586 `\r\n    --remove Microsoft.VisualStudio.Component.Windows10SDK.14393 `\r\n    --remove Microsoft.VisualStudio.Component.Windows81SDK `\r\n || IF \"%ERRORLEVEL%\"==\"3010\" EXIT 0s\r\n\r\nRUN rmdir /S /Q C:\\\\TEMP\r\n\r\nRUN setx /M PATH \"%PATH%;C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\MSBuild\\Current\\Bin\"\r\nRUN setx /M PATH \"%PATH%;C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\Common7\\IDE\\CommonExtensions\\Microsoft\\CMake\\CMake\\bin\"\r\n\r\nSHELL [\"powershell\"]\r\n\r\nRUN Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) \r\n\r\nRUN Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force\r\nRUN Install-Module -Name VCVars -Force\r\nRUN pushvc (invoke-vcvars -TargetArch x86 -HostArch AMD64)\r\nRUN choco install ninja -y\r\n\r\nENTRYPOINT [ \"C:\\\\Program Files (x86)\\\\Microsoft Visual Studio\\\\2022\\\\BuildTools\\\\Common7\\\\Tools\\\\VsDevCmd.bat\", \"&&\", \"cmd.exe\" ]"
  },
  {
    "path": "FILETREE.TXT",
    "content": "--------------\nFile Hierarchy\n--------------\n\nPlease update this file if you change the files that Socrates\nneeds to run.\n\n\nc:\\\t\t\t\t\t\t// drive letter doesn't matter\n   mskids\\\n           utest.exe    // can really be anywhere on hard drive\n           3dmovie\\\n                   mhole2.avi\n\t\t           logn1.avi\n\t\t           05logn4.avi\n\t\t           logn06.avi\n\t\t           two.avi\n\t\t           backstag.avi\n\t\t\t\t   proj1.avi\n\t\t\t\t   proj2.avi\n\t\t\t\t   proj3.avi\n\t\t\t\t   proj4.avi\n\t\t\t\t   proj5.avi\n\n\t\t           mtrls.3cn\n\t\t           tmpls.3cn\n\t\t           snds.3cn\n\t\t           bkgds.3cn\n\t\t           tdfs.3cn\n\n\t\t           3dmovie.chk\n\t\t           building.chk\n\t\t           studio.chk\n\t\t           shared.chk\n\t\t           help.chk\n\t\t\t   helpaud.chk\n\n\t\t           bkgds.3th\n\t\t           actor.3th\n\t\t           actresl.3th\n\t\t           mtrl.3th\n\t\t           tbox.3th\n\t          \t   sound.3th\n\t               prop.3th\n\n\nNotes\n-----\n(no notes at this time)\n"
  },
  {
    "path": "FONTS.md",
    "content": "# Font files\n\nThese font file binaries were removed from the directory structure given the\nchallenges around font licensing. It should be relatively straightforward to\nwrite a batch file to hydrate these files in some form from a typical Windows\nmachine or from other locations.\n\n```\n./cd3/SETUP/COMICBD.TTF\n./cd3/SETUP/COMIC.TTF\n./SETUP/BIN/COMICBD.TTF\n./SETUP/BIN/COMIC.TTF\n./cd12/SETUP/BIN/COMICBD.TTF\n./cd12/SETUP/BIN/COMIC.TTF\n```"
  },
  {
    "path": "LICENSE",
    "content": "    MIT License\n\n    Copyright (c) Microsoft Corporation.\n\n    Permission is hereby granted, free of charge, to any person obtaining a copy\n    of this software and associated documentation files (the \"Software\"), to deal\n    in the Software without restriction, including without limitation the rights\n    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n    copies of the Software, and to permit persons to whom the Software is\n    furnished to do so, subject to the following conditions:\n\n    The above copyright notice and this permission notice shall be included in all\n    copies or substantial portions of the Software.\n\n    THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n    SOFTWARE\n"
  },
  {
    "path": "NEWTRD.TXT",
    "content": "SOCRATES TRD\n\n\nSETUP:\n--------------\ntbd\n\nEXE:\n---------\n\tEverything in the EXE Spec: *ZD*\n\nKIDSPACE:\n---------\n\t**IN GENERAL**\n\t- modals (eg. portfolio, map, quit alert, etc) are not testable - they\n\t  should pause whatever's going on in the background but they don't\n\t- NO graphics are final.\n\t- Freebies not done - some temp ones are in there - no actor bio pages\n\t- Palette flash at start of street scene is a known problem\n\nSTARTUP/TICKET CHOICES\n----------------------\n\t- added temp screen prompting for new user information.  Use this screen\n\t  to set new user flag; the screen itself is not testable.\n\t- There is a hot key for bringing up the map at the ticket, this is for\n\t\tdevelopment purposes only and is not testable.\n\nMcZEE's PACKING SEQUENCE AND TRIP TO IMAGINOPOLIS\n-------------------------------------------------\n\t- AVI now plays, still not final though.\n\t- EXIT button not implemented now (will move inside AVI)\n\nTICKET BOOTH\n------------\n\t- ZD for navigation and choices.\n\t- The palette and audio are not ZD.\n\t- Hot keys are testable.\n\t- Choices leading through the lobby and the theater are\n\t  ZD for pass through navigation.\n\nLOBBY\n-----\n\t- ZD for navigation, choices.\n\t- Hot keys are testable.\n\t\nTHEATER\n-------\n\t- script and code are *ZD*\n\t- Hot keys are testable, 'cept after loading a movie.\n\t- ZD for pass through navigation.\n\t- known palette bugs in theatre after playing a movie.  Navigating\n\t  away from an open movie will lose memory (choose \"Stop Watching Movies\")\n\t\nBACKSTAGE\n---------\n\t- ZD for navigation and choices.\n\t- quality of AVIs is moderate.\n\t- Hot keys are testable.\n\nSTUDIO\n------\n\t- No animation for toolbox opening up (yet)\n\t- Clicking on the toolbox to go to the tools is done\n\t- launching to the tools the first time invokes the McZee intro in front of the\n\t  tools.  The shift of the tools after the animation is expected; the tools background\n\t  isn't final (the graphic is off-centered a couple of pixels)\n\nIDEAS ROOM\n----------\n\t- The navigation and choices are testable.\n\t- Splot machine - *ZD*.  Talent book - testable\n\t- Hot keys are testable.\n\nPROJECTS ROOM\n-------------\n\t- Testable, not ZD\n\t- no animation for logos/movie technique monitors\n\t- no animation after choosing tvs\n\t- palette problem on entering tools is known\n\t\n\nPROJECTS:\n-------------------\nLOGO\n\t- done\n\nSNIPPET VIEWER\n\t- testable (not ZD), but no snippet movies are available yet.\n\t- AVIs are placeholders\n\t- no alert when you switch in the middle of a snippet\n\t\n\nCONTENT: (All content should be line itemed)\n-----------------\nBACKGROUNDS\n\ttbd\nACTORS\n\ttbd\nSOUNDS\n\ttbd\n3-D FONTS\n\t*ZD*\n\nSTUDIO SCENE TOOLS:\n---------------------------------------\nSCENE BROWSER *ZD*\nCAMERA ANGLES *ZD*\nSCENE SORTER *ZD*\nTRANSITIONS *ZD*\nWAIT UNTIL THE END OF A SOUND *ZD*\nWAIT UNTIL MOUSE CLICK *ZD*\nDON'T WAIT *ZD*\n\nSTUDIO ACTOR AND PROP TOOLS:\n----------------------------------------------------------\nACTOR BROWSER *ZD*\nPROP BROWSER *ZD*\nACTOR ROLL CALL\n\t- Visual Display, *ZD*\n\t- Rollover help *ZD*\n\t- Which actors displayed *ZD*\n\t- Application of selection *ZD*\nPROP ROLL CALL (includes prop actors and spletters)\n\t- Visual Display, *ZD*\n\t- Rollover help *ZD*\n\t- Which actors displayed *ZD*\n\t- Application of selection *ZD*\n3D WORDS EASEL\n\t- *ZD*, except transmogrifier and import are not implemented\nCOSTUME CHANGER EASEL\n\t- *ZD*\nSIZE *ZD*\n\tSIZE EVENLY *ZD*\n\tSQUASH AND STRETCH *ZD*\n\tCHANGE BACK *ZD*\nROTATE *ZD*\n\tTURN LEFT OR RIGHT *ZD*\n\tTIP FORWARDS OR BACKWARDS *ZD*\n\tTIP SIDE TO SIDE *ZD*\n\tCHANGE BACK *ZD*\nSYNCHRONIZE *ZD*\nREPOSITION *ZD*\nSELECT *ZD*\nACTION BROWSER *ZD*\nRECORD SAME ACTION *ZD*\nREPLACE PART OF PATH *ZD*\nFALL THROUGH GROUND *ZD*\nUP AND DOWN *ZD*\nTALENT BOOK\n\nSTUDIO SOUND TOOLS:\n-----------------------------------------  \n(** Note: Recorded/Imported sounds will be removed whenever the movie is saved \n\tunless they\tare a part of the current movie - awaiting pm decision)\n(Audioman not final, but bugs may be entered against any zd items below)\nSOUNDER TOOL\n\tACTORS *ZD*\n\tBACKGROUNDS *ZD*\nMATCHER TOOL\n\tACTORS *ZD*\nLOOPER TOOL\n\tACTORS *ZD*\n\tBACKGROUNDS\t*ZD*\nSOUND EFFECT BROWSER\n\tSOUND PREVIEW *ZD*\n\tACTOR SOUNDS *ZD*\n\tBACKGROUND SOUNDS *ZD*\n\tIMPORT *ZD*\nSPEECH BROWSER\n\tSOUND PREVIEW *ZD*\n\tSOUND RECORD EASEL Testable\n\tRATDOG\n\tACTOR SOUNDS *ZD*\n\tBACKGROUND SOUNDS *ZD*\n\tIMPORT *ZD*\nMUSIC BROWSER\n\tSOUND PREVIEW *ZD*\n\tBACKGROUND PLAY ONE TIME *ZD*\n\tBACKGROUND PLAY AGAIN AND AGAIN *ZD*\n\tIMPORT *ZD*\nLISTENER *ZD*\nTWO SECOND CUTOFF ON FRAME PLAY *ZD*\n\nSTUDIO WORD TOOLS:\n----------------------------------------\nSTORYBOX\n\tINSERTION POINT *ZD*\n\tLETTERS (font?) testable, not ZD\n\tSTYLES testable, not ZD\n\tLETTER SIZE testable, not ZD\n\tLETTER COLOR *ZD*\n\tBACKGROUND COLOR *ZD*\n\tSCROLLING (OR NON-SCROLLING) WORDS *ZD*\n\t\nSTUDIO MASTER TOOLS:\n------------------------------------------\nCAST LIST\nPROP LIST\nFRAME SLIDER *ZD*\nSCENE SLIDER *ZD*\nPLAY/STOP *ZD*\nVOLUME CONTROL\nUNDO/REDO *ZD*\nCUT, COPY, AND PASTE *ZD*\n\tGET RID OF EVERYTHING BEFORE *ZD*\n\tGET RID OF EVERYTHING AFTER *ZD*\n\tGET RID OF THE ENTIRE SCENE *ZD*\n\tGET RID OF THE ACTOR STORYBOX *ZD*\n\tCOPY PATH *ZD*\n\tPASTE *ZD*\n\tCOPY *ZD*\n\tCUT *ZD*\nPORTFOLIO\n\tOPEN *ZD*\n\tNEW\n\tSAVE\n\tSAVE AS *ZD*\n\tAUTOSAVE\n\nHELP MACHINE\n\t- new graphics; placeholders for voice on/off\n\t- page to page navigation not ZD (broken)\n\t- topic layout is chaotic\n\t- volume control works but doesn't play preview sound\n\nMAP\n\t- all places and jumps work\n\t- exit not ZD\n\t- cancel works\n\t- volume control works\n   \t- logo + snippet jumps land in projects room without starting projects\n\nEXIT *ZD*\n\nOTHER STUFF:\n----------------------------\nCONTENT CONVERSION\nHOT KEYS *ZD, except Help book*\nSTUDIO UI SOUNDS *ZD* <\"bingo\" used as placeholder for missing content>\n"
  },
  {
    "path": "README.md",
    "content": "# 3DMMForever\n\n_Making 3D Movie Maker accessible to all and preserving it for generations to come._\n\n![3D Movie Maker](img/3dmovie.jpg?raw=true)\n\n## Goals\n\nOur mission is to create a version of the original 3D Movie Maker software with these goals in mind:\n\n- Includes the original feature set, 640x480 UI, kidspace, and graphics.\n- Builds with modern open source tools.\n- Runs on multiple additional platforms including MacOS and Linux.\n- Ensure movie files produced in 3DMMForever can play in the original 3DMM.\n  - Reduced quality is OK.\n- Ensure movie files produced with the original 3DMM can playback in true form.\n- Integrates [v3dmm](https://twitter.com/Foone/status/1307750230679412736).\n- Enhancements remain light and preserve backwards compatibility.\n  - Heavier enhnacements will be reserved for [3DMMPlus](#3dmmplus).\n\n## About\n\nReleased by Microsoft in 1995, 3D Movie Maker (3DMM) is a creativity program originally designed for kids that allows users to create 3D animated movies through a simple user interface using a wide assortment of included scenes, 3D models, sounds and music. Users can place, animate and otherwise manipulate 3D models using simple mouse movements and drags. They can also record and import their own sound files. Finished movies can be saved and shared with others. The program also includes a \"kidspace\" in the form a movie theater that can be navigated around where a user can find movie making tutorials, and inspiration.\n\nIn May 2022, Microsoft released the original source code of 3DMM under the [MIT license](LICENSE) as open source. Which is how 3DMMForever became possible!\n\n## Build instructions\n\nCMake 3.23 and Visual Studio 2022 are required.\n\nTo setup an environment quickly, one can install\n[VCVars](https://github.com/bruxisma/VCVars) for powershell and use\n\n```console\n$ pushvc (invoke-vcvars -TargetArch x86 -HostArch AMD64)\n```\n\nto enable the environment. (To remove the environment simply call `popvc` afterwards\n\nAs of right now it's only safe to target x86, which means using a cross\ncompiler environment in conjunction with CMake. Using Ninja is an option via\nconfigure presets:\n\n```console\n$ cmake --preset x86:msvc:debug\n$ cmake --build build\n```\n\nThis should generate the `3dmovie.exe` file with little to no issue as long as\nyour environment is setup correctly.\n\nThe CMake project *does not* currently setup a correct install, nor does it\nshow files inside of visual studio correctly (This will be added later)\n\n### Known Issues\n\n- Compilation of `SITOBREN.EXE` is disabled\n  - This requires the SoftImage SDK \"DKIT\" to compile\n\n\n## Contributing\n\n3DMMForever and 3DMMPlus will not be possible without an enthusiastic open source developer community backing it.\n\nWe're working on a set of contribution guidelines that we will be using going forward.\n\n## 3DMMPlus\n\n3DMMPlus is a future fork of 3DMMForever that will be created when we've finished the porting work to MacOS and Linux. The sky will be the limit with 3DMMPlus! Our mission will be to create a heavily enhanced version of 3DMM that:\n\n- Has a flexible full color UI that looks great at modern resolutions.\n- Has a modern full color 3D renderer with lightning, shading, moveable camera, and more.\n- Produces a new enhanced file type.\n- Can import 3MM files and play them back as they were originally created.\n- Maintains a strong consideration for and familiarity with the original 3DMM’s UI decisions and approach.\n\n## Legal stuff\n\nThe following sections have been carried over from the original 3D Movie Maker [GitHub repository](https://github.com/microsoft/Microsoft-3D-Movie-Maker) released by Microsoft in May 2022.\n\n### Code cleanup\n\nThis code was restored from the Microsoft corporate archives and cleared for release.\n\n- Developer names and aliases were removed, with the exception of current employees who worked on the\n  original release who consented to keeping their names in place\n- The archive consisted of several CDs, some of which were for alternate builds or products, and\n  have been excluded\n- The code does not build with today's engineering tools, and is released as-is.\n\n### Trademarks\n\nThis project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft \ntrademarks or logos is subject to and must follow \n[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).\nUse of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.\nAny use of third-party trademarks or logos are subject to those third-party's policies.\n\nThis repo includes a build from 1995 of BRender from Argonaut software. Approval to open source BRender as MIT was given in an email from Jez San, former CEO of Argonaut. Other versions of BRender exist at https://github.com/foone/BRender-v1.3.2 and https://github.com/foone/BRender-1997 Thanks to Jez and the whole BRender team for their hard work on this amazing engine. A full historical list of BRender contributors is available at https://github.com/foone/BRender-v1.3.2/blob/main/README.md \n\nThis repo does NOT include the SoftImage SDK \"./DKIT\" from 1992.\n\nJez also offered this interesting BRender anecdote in an email:\n\n```\nWhen Sam Littlewood designed BRender, he didn’t write the code. And then document it.  \nThe way most things were built at the time.\nFirst, he wrote the manual.  The full documentation\nThat served as the spec.  Then the coding started.\n```\n"
  },
  {
    "path": "SUPPORT.md",
    "content": "# No support\r\n\r\nThis project has been open sourced to share this fun product from another era.\r\n\r\nHowever, this repository is not supported. A community may develop around a fork\r\nto modernize this project.\r\n"
  },
  {
    "path": "TRD.TXT",
    "content": "\n                  Test Release Document for Socrates\n\n\n                        ---------------------\n                        Last updated: 4/27/95\n                        ---------------------\n\nStatus options:\n---------------\nwaiting for xxx = not implemented because of a dependency\nnot done = ready to implement but not implemented yet\nnot yet reviewed = implemented but code has not been reviewed\nzd = zero defect, code is reviewed and ready to test\nnot ready for testing = self-explanatory, \"NOTE:\" required to elaborate\n\nFormatting notes:\n-----------------\nSo that this file can be viewed with aribitrary tab stops, tabs should\nappear only at the beginning of a line.  Alignment after non-tab characters\nshould be accomplished using spaces.  Any item in the \"status\" column should\nbe defined above in \"Status options.\"  For additional information, add a\n\"NOTE:\" comment on the line below the main line-item.  Try very hard to keep\nline-items short enough to fit on one line.\n\n\nProduct wide failure handling\n\n\tUI error messages                               waiting for spec\n\n\tactor.cpp ((*****))\n\tactor oom & file i/o                            zd\n\n\tscene.cpp (seanse)\n\tScene functionality                             zd\n\n\tmovie.cpp (seanse)\n\tMovie functionality                             zd\n\n\ttbox.cpp (seanse)\n\tTextbox functionality                           zd\n\n\nBackgrounds and Camera Views\n\n\tbkgd.cpp ((*****)):\n\tBackground RGB and Z buffers                    zd\n\tLight sources                                   zd\n\tCameras                                         zd\n\tSwitching backgrounds                           zd\n\tSwitching views                                 zd\n\tSwitching palettes ((*****))                      zd\n\t\tNOTE: only HH-Lab background uses it\n\n\tscene.cpp (seanse):\n\tCamera change events                            zd\n\tScene change events                             zd\n\n\nMaterials and Texture Maps\n\n\ttmap.cpp ((*****))\n\tLoad texmap from chunky file                    not yet reviewed\n\tSave texmap to chunky file                      not yet reviewed\n\tImport texmap from PIX                          not yet reviewed\n\tImport texmap from BMP (peted)                  not yet reviewed\n\n\tmtrl.cpp ((*****))\n\tShade table management                          zd\n\tLoad MTRL (stock material) from chunky file     zd\n\tSave MTRL to chunky file                        zd\n\tLoad CMTL (custom material) from chunky file    zd\n\n\ttmpl.cpp ((*****))\n\tManage default costume and custom materials\n\t\tfor actors                                  zd\n\n\tbody.cpp ((*****))\n\tAttach and remove stock and custom materials\n\t\tto body parts                               zd\n\n\tactor.cpp ((*****))\n\tManage costume change events                    zd\n\n\nModels - the actual shape of the body parts\n\n\tmodl.cpp ((*****))\n\tLoad model from chunky file                     zd\n\tSave model to chunky file                       zd\n\tImport model from DAT                           zd\n\n\ttmpl.cpp ((*****))\n\tLoads models based on the current action and\n\t\ttells body to attach them                   zd\n\n\tbody.cpp ((*****))\n\tAttaches models to body parts                   zd\t\n\t\n\t\nRendering\n\n\tzbmp.cpp ((*****))\n\tLoad Z-buffer from chunky file                  zd\n\tDraw Z-buffer into gpt, clipping to regn        zd\n\n\tbwld.cpp ((*****))\n\tManage BRender actor hierarchy, including\n\t\tcameras and all actors                      zd\n\tManage background RGB and Z buffer              zd\n\tRender into working RGB and Z buffer            zd\n\tDirty region management                         zd\n\t2-D Actor Pick                                  zd\n\tHalf and quarter-resolution rendering           zd\n\tPrerender static actors                         not done\n\tOther performance improvements                  not done\n\n\nActor Templates\n\n\ttmpl.cpp ((*****))\n\tRead TMPL from chunky file                      zd\n\tSet default costume                             zd\n\tGet custom costume                              zd\n\tSet models and matrices based on action         zd\n\t3-D Text actors                                 zd (see section below)\n\tAccessories (optional hats and hammers)         not done\n\n\n3-D Text\n\n\ttdf.cpp ((*****))\n\tCode                                            zd\n\n\ttdt.cpp ((*****))\n\tCode                                            zd\n\n\tSpletter Easel script (seanse)                  not yet reviewed\n\tSpletter Easel code ((*****))                   not done\n\n\ttdfmake.exe (font authoring tool) ((*****))     not yet reviewed\n\n\nCostume Changer Easel\n\n\tScripting (seanse)                              not yet reviewed\n\tCode (*****)                                    not done\n\n\nContent Conversion - Tools to bring designer's data into Socrates.\n\tSee Materials and Texture Maps\n\n\tsitobren.cpp (peted)\n\tActor conversion\n\t\tNOTE: no final actors have been received from the content\n\t\t\tproduction staff; if problems appear in existing\n\t\t\tactors, let NVarma and PeteD know, but don't report\n\t\t\ta bug.\n\t\tHierarchy/mesh data                         not reviewed\n\t\tBasic non-texture-mapped materials          not reviewed\n\t\tTexture-mapped materials                    waiting for spec\n\tBackground conversion                           not reviewed\n\t\tNOTE: HH-Lab background should be completely correct,\n\t\t\texcept that it has no overhead view yet.\n\nText Boxes\n\n\ttbox.cpp (seanse)\n\tLoad/Save text boxes in documents               zd\n\tCut/Copy/Paste entire text boxes                zd\n\tCut/Copy/Paste text in text boxes               zd\n\tUndo/Redo text box edits                        zd\n\tText box background color                       zd\n\tText box foreground color                       zd\n        External clipboard support                      zd\n\t\n\nSound tools\n\tScripting (seanse)                              not done\n\tCode (*****/******)                             not done\n\tSound recording Easel script (seanse)           not done\n\tSound recording Easel code (******)             not done\n\nScenes - Scene level functionality.\n\n\tscene.cpp (seanse)\n\tLoad scene in document                          zd\n\tSave scene in document                          zd\n\tScene chopper                                   zd\n\tScene chopper - backwards                       zd\n\tScene nuker                                     zd\n\tTransitions (seanse/(*****))                    zd\n\tPauses                                          zd\n\tUndo/Redo for scene edits                       zd\n\tSound                                           not done.\n\n\nMovies - Movie level functionality.\n\n\tmovie.cpp* (seanse)\n\tLoad movie document                             zd\n\tSave movie document                             zd\n\tRoll-call management                            zd\n\t\n\nActor - Actor manipulations:\n\n\tactor.cpp ((*****))\n\tStatic/non-static April spec changes            zd\n\tOrientation during placement drag               zd\n\tPath orientation (single & multi point)         zd\n\tGround zero                                     zd\n\tAdd new actor from rolls                        zd\n\tAdd actor from rollcall (not present in scene)  zd\n\tAdd actor from rollcall (out of view)           zd\n\tInitial Actor orientation  (*******)            zd\n\tInitial Actor position/scale (*******)          not done\n\tStatic & non-static Actions                     zd\n\tPath Compose                                    zd\n\tPath Recording and Rerecording                  zd\n\tPath Tweaking                                   zd\n\tMotion Fill                                     zd\n\tFloating                                        zd\n\tFreezing                                        zd\n\tTransformers                                    zd\n\t\tSquash/Stretch                              zd\n\t\tNormalize                                   zd\n\t\tRotate                                      zd\n\t\tGrow/Shrink                                 zd\n\tCostumes                                        zd\n\tSubpaths (including attribute inheritance)      zd\n\tSooner/Later tool                               zd\n\tSound                                           not done\n\tCut Actor (forwards & back for scene chop)      zd\n\n\tactrsave.cpp ((*****))\n\tSave actor to document                          zd\n\tLoad actor from document                        zd\n\tManage actor's tags                             zd\n\n\tactredit.cpp* ((*****)/seanse)\n\tCut Actor                                       zd\n\tCopy Actor                                      zd\n\tPaste Actor                                     zd\n\tCopy Route                                      zd\n\tPaste Route                                     zd\n\n\tactredit.cpp (seanse/*****)\n\tUndo/redo for actors                            zd\n\nStudio Master Controls\n\n\tstdioscb.[cpp,cht] (*****)\n\tFrame/scene scrollbars, buttons                 zd\n\tFrame/scene counters, name, fps                 zd\n\nTag Manager - references to content on CD\n\n\ttagman.cpp ((*****))\n\tSearch all drives for content sources           zd\n\tReport missing CD (and retry)                   zd\n\tRead objects from content sources               zd\n\tRead objects from user document (sidNil tags)   zd\n\nCtrl, Shift, Hot Keys (Stest only)\n\n\tCtrl drag (Tweak)                               zd\n\tCtrl N (new movie)                              not done\n\tCtrl O (open movie)                             not done\n\tCtrl Q (quit)                                   zd\n\tCtrl S (save)                                   zd\n\tCtrl X (Cut)                                    zd\n\tShift Ctrl X (end of scene cut)                 not done\n\tShift Cut Tool (end of scene cut)               zd\n\tCtrl C (Copy)                                   zd\n\tShift Ctrl C (end of scene copy)                not done\n\tShift Copy Tool (end of scene copy)             zd\n\tCtrl V (Paste)                                  zd\n\tCtrl Z (Undo)                                   not done\n\tCtrl esc (Chicago)                              zd\n\tCtrl esc-esc (Chicago)                          zd\n\tCtrl motion-fill, Create Path (starting cel)    zd\n\tShift during mousedown drag                     zd\n\tShift motion fill (freeze)                      zd\n\tShift new textbox (square)                      not done\n\tf1 (open help book)                             not done\n\tF9 Toggle x-y, y-z                              not done\n\tUP, DOWN arrows while recording                 not done\n\talt-tab                                         zd\n\n\nSocrates exe stuff and Win95 ((*****))            waiting for spec\n\n\tMaintain \"HomeDirectory\" entry in registry      not done\n\tDetermine current user name                     not done\n\tFind or Create user directory                   not done\n\tMaintain \"MSKidsDirectory\" entry in registry    not done\n\tMaintain user preferences in registry           not done\n\tResolution Switch to/from 640x480               not done\n\tmda: \"ChangeResolution\" entry in registry?      waiting for spec\n\tmda: \"RunInWindow\" entry in registry?           waiting for spec\n\tRead version and PID resources and put in\n\t\tstring table so about box can read 'em      not done\n\n\nUtest stuff (User Interface behaviour) [seanse]\n\nNOTE: THE FOLLOWING AREAS ARE FOR UI TESTING ONLY!  BECAUSE THESE\nARE 'zd' DOES NOT IMPLY THE CODE BEHIND THE UI IS 'zd'.\n\n   Primary Tools:\n        Covers behave as a radio group                  zd\n        Settings browser                                zd\n        Actors browser                                  zd\n        Props browser                                   not done\n        Spletters browser                               zd\n        Sound Efx browser                               not done\n        Music browser                                   not done\n        Recorded browser                                not done\n        Text box create                                 not done\n\n   Settings Secondary Tools:\n        Scene sorter (peted)                            not done\n        Camera browser                                  zd\n        Scene pauses                                    zd\n\n   Actors Secondary Tools:\n        Costume Easel                                   not done\n        Sizer popup                                     zd\n        Rotate popup                                    zd\n        Sooner/Later                                    zd\n        Compose tool                                    zd\n        Select tool                                     zd\n        Action browser                                  not done\n        Same action tool                                zd\n        Rerecord button                                 zd\n        Respect ground button                           zd\n        X/Y button                                      zd\n        Actor biographies                               not done\n        Tools behave as radio group                     not done (actions mess this up)\n\n   Sounds Secondary Tools:\n        Attach to cell                                  not done\n        Play once                                       not done\n        Looping                                         not done\n        Listen                                          not done\n\n   Texts Secondary Tools:\n        Edit/Select tool                                zd\n        Font popup                                      not done\n        Style popup                                     not done\n        Size popup                                      not done\n        Text color popup                                not done\n        Background color popup                          not done\n        Scroll type popup                               zd\n\n   Scrollbars:\n        Frame Fwd/Back                                  zd\n        Frame Thumbnail                                 zd\n        Frame Counter                                   zd\n        Scene Fwd/Back                                  zd\n        Scene Thumbnail                                 zd\n        Scene Counter                                   zd\n\n   Play:                                                zd\n\n   Volume Control:                                      not done\n\n   Undo/Redo:                                           zd\n\n   Cut/Copy/Paste:\n        Chop Fwd                                        zd\n        Chop Back                                       zd\n        Scene nuke                                      zd\n        Actor/Tbox nuke                                 zd\n        Copy route                                      zd\n        Paste                                           zd\n        Copy                                            zd\n        Cut                                             zd\n\n   Portfolio:\n        Open                                            zd\n        New                                             zd\n        Save                                            zd\n        Save As                                         zd\n\n   Map:                                                 not done\n\n   Help book:                                           not done\n\n   Other:\n        Tooltips                                        not done\n        Leveling                                        zd\n        Open file dialog                                not done\n\n\n   Ctrl, Shift, Hot Keys (Utest only)\n\n\tCtrl drag (Tweak)                               zd\n\tCtrl N (new movie)                              not done\n\tCtrl O (open movie)                             not done\n\tCtrl Q (quit)                                   not done\n\tCtrl S (save)                                   not done\n\tCtrl X (Cut)                                    not done\n\tShift Ctrl X (end of scene cut)                 not done\n\tShift Cut Tool (end of scene cut)               not done\n\tCtrl C (Copy)                                   not done\n\tShift Ctrl C (end of scene copy)                not done\n\tShift Copy Tool (end of scene copy)             not done\n\tCtrl V (Paste)                                  not done\n\tCtrl Z (Undo)                                   not done\n\tCtrl esc (Chicago)                              zd\n\tCtrl esc-esc (Chicago)                          zd\n\tCtrl motion-fill, Create Path (starting cel)    zd\n\tShift during mousedown drag                     zd\n\tShift motion fill (freeze)                      zd\n\tShift new textbox (square)                      CUT FROM PRODUCT\n\tf1 (open help book)                             not done\n\tF9 Toggle x-y, y-z                              not done\n\tUP, DOWN arrows while recording                 not done\n\talt-tab                                         zd\n\n\n\nUtest stuff (Code Specific to the studio):\n\nNOTE: IF SOMETHING IS NOT LISTED HERE, IT IS NOT STUDIO SPECIFIC\nAND YOU SHOULD REFER TO THE 'ENGINE' LISTING TO FIND ITS STATUS.\n\n   Primary Tools:\n        Settings browser                                not yet reviewed\n        Actors browser                                  not yet reviewed\n        Props browser                                   not yet reviewed\n        Spletters browser                               not yet reviewed\n        Sound Efx browser                               not done\n        Music browser                                   not done\n        Recorded browser                                not done\n        Text box create browser                         zd\n\n   Settings Secondary Tools:\n        Scene sorter (peted)                            not yet reviewed\n        Camera browser                                  not yet reviewed\n\n   Actors Secondary Tools:\n        Costume Easel                                   not yet reviewed\n        Actor tool popups                               zd\n        Action browser selection                        not yet reviewed   (*NOTE:  Selection is temporarily object verb)\n\t\tAction browser cel cycling\t\t\t\t\t\tnot done\n\t\tAction browser preview\t\t\t\t\t\t\tnot done\n        Actor biographies                               not done\n\n   Texts Secondary Tools:\n        Font popup                                      not done\n        Style popup                                     not done\n        Size popup                                      not done\n        Text color popup                                not done\n        Background color popup                          not done\n        Scroll type popup                               zd\n\n   Scrollbars:\n        Frame Fwd/Back                                  zd\n        Frame Thumbnail                                 zd\n        Frame Counter                                   zd\n        Scene Fwd/Back                                  zd\n        Scene Thumbnail                                 zd\n        Scene Counter                                   zd\n\n   Portfolio:\n        Open                                            not yet reviewed\n        New                                             not yet reviewed\n        Save                                            not yet reviewed\n        Save As                                         not yet reviewed\n\n   Map:                                                 not done\n\n   Help book:                                           not done\n\n   Other:\n        Open file dialog                                not done\n\n\n\nChunky tools\n\n\tNote: These are all authoring/editing tools\n\tand not\tpart of Socrates.  All Kauai (framework)\n\tfunctionality is also owned by shonk.\n\t\n\tched.exe (shonk)\n\tChunky editor                                   not yet reviewed\n\n\tchomp.exe (shonk)\n\tChunky compiler                                 not yet reviewed\n\n\tchelp.exe (shonk)\n\tChunky help editor                              not yet reviewed\n\n"
  },
  {
    "path": "audioman/audioman.cpp",
    "content": "// Implementation of the AudioMan library.\n// Created for 3DMMForever.\n// FIXME: This is a nonworking stub. The game will still function, but sound effects will be missing.\n\n#include <Windows.h>\n#include <initguid.h>\n\n#include \"audioman.h\"\n\nSTDAPI AllocSoundFromStream(LPSOUND FAR *ppSound, LPSTREAM pStream, BOOL fSpooled, LPCACHECONFIG lpCacheConfig)\n{\n    return E_NOTIMPL;\n}\n\nSTDAPI AllocSoundFromFile(LPSOUND FAR *ppSound, char FAR *szFileName, DWORD dwOffset, BOOL fSpooled,\n                          LPCACHECONFIG lpCacheConfig)\n{\n    return E_NOTIMPL;\n}\n\nSTDAPI AllocSoundFromMemory(LPSOUND FAR *ppSound, LPBYTE lpFileData, DWORD dwSize)\n{\n    return E_NOTIMPL;\n}\n\nSTDAPI_(LPMIXER) GetAudioManMixer(void)\n{\n    return NULL;\n}\n\nSTDAPI AllocTrimFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc)\n{\n    return E_NOTIMPL;\n}\n\nSTDAPI AllocBiasFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc)\n{\n    return E_NOTIMPL;\n}\n\nSTDAPI AllocLoopFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc, DWORD dwLoops)\n{\n    return E_NOTIMPL;\n}\n\nSTDAPI AllocConvertFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc, LPWAVEFORMATEX lpwfx)\n{\n    return E_NOTIMPL;\n}\n\nSTDAPI SoundToFileAsWave(LPSOUND pSound, char FAR *pAbsFilePath)\n{\n    return E_NOTIMPL;\n}\n\nSTDAPI_(int) DetectLeaks(BOOL fDebugOut, BOOL fMessageBox)\n{\n    return 0;\n}\n"
  },
  {
    "path": "bren/brenfun.cpp",
    "content": "// Temporary brender code\n#include \"frame.h\"\n#include \"bren.h\"\nASSERTNAME\n\nextern br_material test_materials[];\nextern int test_materials_count;\n\nbr_camera camera_data = {\n    NULL,\n    BR_CAMERA_PERSPECTIVE,\n    BR_ANGLE_DEG(45),      /* 45 degree field of view\t*/\n    BR_SCALAR(1.0),        /* Hither \t\t\t\t\t*/\n    BR_SCALAR(100.0),      /* Yon \t\t\t\t\t\t*/\n    BR_SCALAR(16.0 / 9.0), /* Aspect ratio \t\t\t*/\n};\n\nbr_material texmap = {\n    \"texmap\",\n    BR_COLOUR_RGB(255, 255, 255),                         /* colour\t\t\t*/\n    {255},                                                /* opacity\t\t\t*/\n    BR_UFRACTION(0.05),                                   /* ka\t\t\t\t*/\n    BR_UFRACTION(0.30),                                   /* kd\t\t\t\t*/\n    BR_UFRACTION(0.99),                                   /* ks\t\t\t\t*/\n    BR_SCALAR(20),                                        /* power\t\t\t*/\n    BR_MATF_MAP_COLOUR | BR_MATF_LIGHT | BR_MATF_GOURAUD, /* flags\t\t\t*/\n    0,\n    0, /* shift up/down   \t*/\n    0,\n    63, /* index base/range\t*/\n};\n\nstatic bool FLoadModel(char *szFileName, br_model **pmdl)\n{\n    *pmdl = BrModelLoad(szFileName);\n    if (*pmdl == NULL)\n        return fFalse;\n    else\n        BrModelAdd(*pmdl);\n    return fTrue;\n}\n\n// create some objects\nvoid BREN::CreateFunStuff(void)\n{\n    int i;\n    br_pixelmap *pm;\n    br_pixelmap *shade;\n\n    //\tBrBegin();\n    //    BrZbBegin();\n\n    obs_z = BR_SCALAR(5.0);\n\n    /*\n     * Add materials to system\n     */\n    for (i = 0; i < test_materials_count; i++)\n        BrMaterialAdd(test_materials + i);\n\n    shade = BrPixelmapLoad(\"shade.tab\");\n    BrTableAdd(shade); /* Tell renderer about shading table */\n\n    pm = BrPixelmapLoad(\"jupiter.pix\");\n    BrMapAdd(pm); /* Tell renderer about texture map */\n    texmap.index_shade = shade;\n    texmap.colour_map = pm;\n    BrMaterialAdd(&texmap); /* Tell renderer about material */\n\n    // Load all the models\n    if (!FLoadModel(\"iceman.dat\", &modlMain))\n        MessageBox(NULL, \"Could not load iceman.dat\", \"ERROR\", MB_OK);\n    if (!FLoadModel(\"torus.dat\", &modlChild))\n        MessageBox(NULL, \"Could not load torus.dat\", \"ERROR\", MB_OK);\n    if (!FLoadModel(\"cube.dat\", &modlCube))\n        MessageBox(NULL, \"Could not load cube.dat\", \"ERROR\", MB_OK);\n\n    /*\n     * Create the world\n     */\n    //\tactrWorld = BrActorAllocate(BR_ACTOR_NONE,NULL);\n    _pbactWorld = BrActorAllocate(BR_ACTOR_NONE, NULL);\n    _pbactCamera = BrActorAdd(_pbactWorld, BrActorAllocate(BR_ACTOR_CAMERA, &camera_data));\n    //\tactrCamera->t.type = BR_TRANSFORM_MATRIX34;\n    //\tBrMatrix34Translate(&actrCamera->t.t.mat, BR_SCALAR(0.0), BR_SCALAR(20.0),\n    //\t\tBR_SCALAR(0.0));\n\n    /*\n     * Test shape and child\n     */\n    actrMain = BrActorAdd(_pbactWorld, BrActorAllocate(BR_ACTOR_MODEL, NULL));\n    actrMain->model = modlMain;\n    // \tactrMain->material = BrMaterialFind(\"texmap\");\n\n    actrChild = BrActorAdd(actrMain, BrActorAllocate(BR_ACTOR_MODEL, NULL));\n    actrChild->t.type = BR_TRANSFORM_MATRIX34;\n    BrMatrix34Translate(&actrChild->t.t.mat, BR_SCALAR(1.5), BR_SCALAR(0.0), BR_SCALAR(0.0));\n    actrChild->model = modlChild;\n\n    /*\n     * Spinning shape driven by a quaternion\n     */\n    actrQuat = BrActorAdd(_pbactWorld, BrActorAllocate(BR_ACTOR_MODEL, NULL));\n    actrQuat->model = modlCube;\n    actrQuat->t.type = BR_TRANSFORM_QUAT;\n    BrVector3SetInt(&actrQuat->t.t.quat.t, -2, 0, 0);\n\n    /*\n     * Spinning shape driven by euler angles\n     */\n    actrEuler = BrActorAdd(_pbactWorld, BrActorAllocate(BR_ACTOR_MODEL, NULL));\n    actrEuler->model = modlCube;\n    actrEuler->t.type = BR_TRANSFORM_EULER;\n    actrEuler->t.t.euler.e.order = BR_EULER_YXZ_R;\n    BrVector3SetInt(&actrEuler->t.t.euler.t, -4, 0, 0);\n\n    /*\n     * Initialise angles\n     */\n    actrEuler->t.t.euler.e.a = 0;\n    actrEuler->t.t.euler.e.b = 0;\n    actrEuler->t.t.euler.e.c = 0;\n\n    /*\n     * Some useful transforms for later\n     */\n    BrMatrix34Identity(&Rotation);\n    BrMatrix34Identity(&ObsRotation);\n}\n\n#define MSCALE BR_SCALAR(0.05)\n\nvoid BREN::ChangeScene(WPARAM mouseFlags, LPARAM coords)\n{\n    static UINT old_mouse_x;\n    static UINT old_mouse_y;\n    WORD mouse_x = LOWORD(coords) - old_mouse_x;\n    WORD mouse_y = HIWORD(coords) - old_mouse_y;\n    br_matrix34 tmpmat;\n\n    /*\n     * Mouse control\n     */\n    if (mouse_x != 0 || mouse_y != 0)\n    {\n        if (mouseFlags & MK_LBUTTON)\n        {\n            if (mouseFlags & MK_RBUTTON)\n            {\n                /*\n                 * Move actrCamera in/out\n                 */\n                obs_z += BR_MUL(BR_SCALAR(mouse_y), MSCALE);\n            }\n            else\n            {\n                /*\n                 * Drag object around\n                 */\n                pos_x += BR_MUL(BR_SCALAR(mouse_x), MSCALE);\n                pos_y -= BR_MUL(BR_SCALAR(mouse_y), MSCALE);\n            }\n        }\n        else if (mouseFlags & MK_RBUTTON)\n        {\n            /*\n             * Rotate actrCamera via rolling ball interface\n             */\n            BrMatrix34RollingBall(&tmpmat, (br_int_16)-mouse_x, mouse_y, 800);\n            BrMatrix34Pre(&ObsRotation, &tmpmat);\n        }\n        else\n        {\n            /*\n             * Rotate object via rolling ball interface\n             */\n            BrMatrix34RollingBall(&tmpmat, mouse_x, (br_int_16)-mouse_y, 200);\n            BrMatrix34Post(&Rotation, &tmpmat);\n        }\n    }\n\n    old_mouse_x = LOWORD(coords);\n    old_mouse_y = HIWORD(coords);\n\n    /*\n     * Modify scene according to controls\n     */\n    BrMatrix34Translate(&_pbactCamera->t.t.mat, obs_x, obs_y, obs_z);\n    BrMatrix34Post(&_pbactCamera->t.t.mat, &ObsRotation);\n\n    /*\n     * test shape spun with mouse\n     */\n    BrMatrix34Translate(&actrMain->t.t.mat, pos_x, pos_y, pos_z);\n    BrMatrix34Pre(&actrMain->t.t.mat, &Rotation);\n\n    /*\n     *\n     Convert angles to a quaternion for second shape\n     */\n    BrEulerToQuat(&actrQuat->t.t.quat.q, &actrEuler->t.t.euler.e);\n\n    /*\n     * Roll angles around\n     */\n    actrEuler->t.t.euler.e.a += BR_ANGLE_DEG(3);\n    actrEuler->t.t.euler.e.b += BR_ANGLE_DEG(5);\n    actrEuler->t.t.euler.e.c += BR_ANGLE_DEG(7);\n}\n"
  },
  {
    "path": "bren/bwld.cpp",
    "content": "/***************************************************************************\n\n    bwld.cpp: BRender world class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    To improve performance, BWLD can render into a reduced area, then\n    enlarge the resulting image\tat display time.  _fHalfX reduces the\n    horizontal resolution by half, and _fHalfY reduces the vertical\n    resolution by half.  Both modes can be used together to render 1/4 as\n    many pixels.  _rcBuffer is the area being rendered into; _rcView is\n    the area to copy _rcBuffer into (with stretching, if necessary).\n    _pregnDirtyWorking and _pregnDirtyScreen are in _rcBuffer's coordinate\n    system.  However, in MarkRenderedRegn, _pregnDirtyScreen is briefly\n    enlarged to _rcView's coordinate system, since the gob will be drawn at\n    full view resolution.\n\n***************************************************************************/\n#include \"bren.h\"\n\n// REVIEW *****: _pgptStretch is completely unused...remove it!\n\nASSERTNAME\n\nRTCLASS(BWLD)\n\nconst long kcbitPixelRGB = 8; // RGB buffers are 8 bits deep\nconst long kcbPixelRGB = 1;\n\nconst long kcbitPixelZ = 16; // Z buffers are 16 bits deep\nconst long kcbPixelZ = 2;\n\nbool BWLD::_fBRenderInited = fFalse;\n\n/***************************************************************************\n    Allocate a new BRender world\n***************************************************************************/\nPBWLD BWLD::PbwldNew(long dxp, long dyp, bool fHalfX, bool fHalfY)\n{\n    AssertIn(dxp, 1, ksuMax); // BPMP's width and height are ushorts\n    AssertIn(dyp, 1, ksuMax);\n    Assert(dxp % 2 == 0, \"dxp should be even\");\n    Assert(dyp % 2 == 0, \"dyp should be even\");\n\n    PBWLD pbwld;\n\n    pbwld = NewObj BWLD;\n\n    if (pbwld == pvNil || !pbwld->_FInit(dxp, dyp, fHalfX, fHalfY))\n    {\n        ReleasePpo(&pbwld);\n        return pvNil;\n    }\n\n    AssertPo(pbwld, 0);\n    return pbwld;\n}\n\n/***************************************************************************\n    Initialize the BWLD\n***************************************************************************/\nbool BWLD::_FInit(long dxp, long dyp, bool fHalfX, bool fHalfY)\n{\n    AssertBaseThis(0);\n    AssertIn(dxp, 1, ksuMax); // BPMP's width and height are ushorts\n    AssertIn(dyp, 1, ksuMax);\n\n    if (!_fBRenderInited)\n    {\n        BrBegin();\n        BrZbBegin(BR_PMT_INDEX_8, BR_PMT_DEPTH_16);\n        _fBRenderInited = fTrue;\n    }\n\n    _rcView.Set(0, 0, dxp, dyp);\n\n    if (!_FInitBuffers(dxp, dyp, fHalfX, fHalfY))\n        return fFalse;\n\n    // Create the world and initial camera\n    _bactWorld.type = BR_ACTOR_NONE;\n    _bactWorld.t.type = BR_TRANSFORM_MATRIX34;\n    BrMatrix34Identity(&_bactWorld.t.t.mat);\n    _bactWorld.identifier = (char *)this;\n    _bactCamera.type = BR_ACTOR_CAMERA;\n    _bactCamera.t.type = BR_TRANSFORM_MATRIX34;\n    _bactCamera.type_data = &_bcam;\n    _bcam.type = BR_CAMERA_PERSPECTIVE;\n    // Note that the aspect ratio of the view is specified rather than the\n    // ratio of the buffer so that even when rendering into a reduced\n    // buffer, the actors come out right when stretched to _rcView in Draw().\n    _bcam.aspect = BR_SCALAR((double)_rcView.Dxp() / (double)_rcView.Dyp());\n    BrActorAdd(&_bactWorld, &_bactCamera);\n\n    // Set up dirty region stuff\n    _pregnDirtyWorking = REGN::PregnNew(&_rcBuffer);\n    if (pvNil == _pregnDirtyWorking)\n        return fFalse;\n    _pregnDirtyScreen = REGN::PregnNew(pvNil);\n    if (pvNil == _pregnDirtyScreen)\n        return fFalse;\n\n    BrZbSetRenderBoundsCallback(_ActorRendered);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Initialize or reinitialize members that depend on the values of _fHalfX\n    and _fHalfY.  This function gets called by _FInit, and again every time\n    FSetHalfMode is called.\n***************************************************************************/\nbool BWLD::_FInitBuffers(long dxp, long dyp, bool fHalfX, bool fHalfY)\n{\n    AssertBaseThis(0);\n    AssertIn(dxp, 1, ksuMax); // BPMP's width and height are ushorts\n    AssertIn(dyp, 1, ksuMax);\n\n    _fHalfX = fHalfX;\n    _fHalfY = fHalfY;\n    if (_fHalfX)\n        dxp /= 2;\n    if (_fHalfY)\n        dyp /= 2;\n\n    _rcBuffer.Set(0, 0, dxp, dyp);\n\n    ReleasePpo(&_pzbmpBackground);\n    _pzbmpBackground = ZBMP::PzbmpNew(dxp, dyp);\n    if (pvNil == _pzbmpBackground)\n        return fFalse;\n\n    // Set up the working Z-buffer\n    ReleasePpo(&_pzbmpWorking);\n    _pzbmpWorking = ZBMP::PzbmpNew(dxp, dyp);\n    if (pvNil == _pzbmpWorking)\n        return fFalse;\n    Assert(kcbitPixelZ == 16, \"change _bpmpZ.type\");\n    _bpmpZ.type = BR_PMT_DEPTH_16;\n    _bpmpZ.row_bytes = (short)LwMul(dxp, kcbPixelZ);\n    _bpmpZ.width = (ushort)dxp;\n    _bpmpZ.height = (ushort)dyp;\n    _bpmpZ.origin_x = dxp / 2;\n    _bpmpZ.origin_y = dyp / 2;\n    _bpmpZ.pixels = _pzbmpWorking->Prgb();\n\n    // Set up background RGB buffer\n    ReleasePpo(&_pgptBackground);\n    _pgptBackground = GPT::PgptNewOffscreen(&_rcBuffer, kcbitPixelRGB);\n    if (pvNil == _pgptBackground)\n        return fFalse;\n\n    // Set up the working RGB buffer\n    if (pvNil != _pgptWorking)\n    {\n        _pgptWorking->Unlock();\n        ReleasePpo(&_pgptWorking);\n    }\n    _pgptWorking = GPT::PgptNewOffscreen(&_rcBuffer, kcbitPixelRGB);\n    if (pvNil == _pgptWorking)\n        return fFalse;\n    Assert(kcbitPixelRGB == 8, \"change _bpmpRGB.type\");\n    _bpmpRGB.type = BR_PMT_INDEX_8;\n    _bpmpRGB.row_bytes = (short)LwMul(dxp, kcbPixelRGB);\n    _bpmpRGB.width = (ushort)dxp;\n    _bpmpRGB.height = (ushort)dyp;\n    _bpmpRGB.origin_x = dxp / 2;\n    _bpmpRGB.origin_y = dyp / 2;\n    _bpmpRGB.pixels = _pgptWorking->PrgbLockPixels();\n\n    // If in _fHalfY and not _fHalfX, allocated a _rcView-sized buffer\n    // for faster blitting -- see Draw()\n    ReleasePpo(&_pgptStretch);\n    if (!_fHalfX && _fHalfY)\n    {\n        _pgptStretch = GPT::PgptNewOffscreen(&_rcView, kcbitPixelRGB);\n        if (pvNil == _pgptStretch)\n            return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Destructor for BWLD\n***************************************************************************/\nBWLD::~BWLD(void)\n{\n    AssertBaseThis(0);\n\n    if (pvNil != _pgptWorking)\n    {\n        _pgptWorking->Unlock();\n        ReleasePpo(&_pgptWorking);\n    }\n    ReleasePpo(&_pgptStretch);\n    ReleasePpo(&_pgptBackground);\n    ReleasePpo(&_pzbmpWorking);\n    ReleasePpo(&_pzbmpBackground);\n    ReleasePpo(&_pregnDirtyWorking);\n    ReleasePpo(&_pregnDirtyScreen);\n    ReleasePpo(&_pcrf);\n}\n\n/***************************************************************************\n    Change reduced rendering mode\n***************************************************************************/\nbool BWLD::FSetHalfMode(bool fHalfX, bool fHalfY)\n{\n    AssertThis(0);\n\n    if (FPure(_fHalfX) == FPure(fHalfX) && FPure(_fHalfY) == FPure(fHalfY))\n        return fTrue;\n\n    bool fHalfXSave = _fHalfX;\n    bool fHalfYSave = _fHalfY;\n    RC rcBufferSave = _rcBuffer;\n    PGPT pgptWorkingSave = _pgptWorking;\n    PGPT pgptStretchSave = _pgptStretch;\n    PGPT pgptBackgroundSave = _pgptBackground;\n    BPMP bpmpRGBSave = _bpmpRGB;\n    PZBMP pzbmpWorkingSave = _pzbmpWorking;\n    PZBMP pzbmpBackgroundSave = _pzbmpBackground;\n    BPMP bpmpZSave = _bpmpZ;\n\n    _pgptWorking = pvNil;\n    _pgptStretch = pvNil;\n    _pgptBackground = pvNil;\n    _pzbmpWorking = pvNil;\n    _pzbmpBackground = pvNil;\n\n    if (!_FInitBuffers(_rcView.Dxp(), _rcView.Dyp(), fHalfX, fHalfY))\n        goto LFail;\n\n    if (pvNil != _pcrf)\n    {\n        // Reload the background at the new resolution\n        if (!FSetBackground(_pcrf, _ctgRGB, _cnoRGB, _ctgZ, _cnoZ))\n            goto LFail;\n    }\n\n    if (pvNil != pgptWorkingSave)\n    {\n        pgptWorkingSave->Unlock();\n        ReleasePpo(&pgptWorkingSave);\n    }\n    ReleasePpo(&pgptStretchSave);\n    ReleasePpo(&pgptBackgroundSave);\n    ReleasePpo(&pzbmpWorkingSave);\n    ReleasePpo(&pzbmpBackgroundSave);\n\n    AssertThis(0);\n\n    return fTrue;\nLFail:\n    // Get rid of newly allocated buffers\n    if (pvNil != _pgptWorking)\n    {\n        _pgptWorking->Unlock();\n        ReleasePpo(&_pgptWorking);\n    }\n    ReleasePpo(&_pgptStretch);\n    ReleasePpo(&_pgptBackground);\n    ReleasePpo(&_pzbmpWorking);\n    ReleasePpo(&_pzbmpBackground);\n\n    // restore everything\n    _fHalfX = fHalfXSave;\n    _fHalfY = fHalfYSave;\n    _rcBuffer = rcBufferSave;\n    _bpmpZ = bpmpZSave;\n    _bpmpRGB = bpmpRGBSave;\n\n    _pgptWorking = pgptWorkingSave;\n    _pgptStretch = pgptStretchSave;\n    _pgptBackground = pgptBackgroundSave;\n    _pzbmpWorking = pzbmpWorkingSave;\n    _pzbmpBackground = pzbmpBackgroundSave;\n\n    AssertThis(0);\n    return fFalse;\n}\n\n/***************************************************************************\n    Completely close BRender, freeing all data structures that BRender\n    knows about.  This invalidates all MODLs and MTRLs in existence.\n***************************************************************************/\nvoid BWLD::CloseBRender(void)\n{\n    if (_fBRenderInited)\n    {\n        BrZbEnd();\n        BrEnd();\n        _fBRenderInited = fFalse;\n    }\n}\n\n/***************************************************************************\n    Copy pvSrc into pvDst, skipping every other short.  This is called by\n    FSetBackground for each row in a ZBMP when _fHalfX is fTrue.\n***************************************************************************/\ninline void SqueezePb(void *pvSrc, void *pvDst, long cbSrc)\n{\n    AssertIn(cbSrc, 0, kcbMax);\n    Assert(cbSrc % (LwMul(2, kcbPixelZ)) == 0, \"cbSrc is not aligned\");\n    AssertPvCb(pvSrc, cbSrc);\n    AssertPvCb(pvDst, cbSrc / 2);\n\n    Assert(size(short) == kcbPixelZ, 0);\n    short *pswSrc = (short *)pvSrc;\n    short *pswDst = (short *)pvDst;\n\n    while (cbSrc != 0)\n    {\n        *pswDst++ = *pswSrc++;\n        pswSrc++;\n        cbSrc -= LwMul(2, kcbPixelZ);\n    }\n}\n\n/***************************************************************************\n    Load bitmaps from the given chunks into _pgptBackground and\n    _pzbmpBackground.\n***************************************************************************/\nbool BWLD::FSetBackground(PCRF pcrf, CTG ctgRGB, CNO cnoRGB, CTG ctgZ, CNO cnoZ)\n{\n    AssertThis(0);\n    AssertPo(pcrf, 0);\n\n    PMBMP pmbmpNew;\n    PZBMP pzbmpNew;\n\n    pmbmpNew = (PMBMP)pcrf->PbacoFetch(ctgRGB, cnoRGB, MBMP::FReadMbmp);\n    if (pvNil == pmbmpNew)\n        return fFalse;\n\n    pzbmpNew = (PZBMP)pcrf->PbacoFetch(ctgZ, cnoZ, ZBMP::FReadZbmp);\n    if (pvNil == pzbmpNew)\n    {\n        ReleasePpo(&pmbmpNew);\n        return fFalse;\n    }\n\n    // It's nice to cache these bitmaps if we can, but they should be\n    // tossed first when memory gets tight because they take up a lot\n    // of space, they're pretty fast to reload, and they are reloaded\n    // at a time when it's okay for a pause (between scenes/views).\n    pmbmpNew->SetCrep(crepTossFirst);\n    pzbmpNew->SetCrep(crepTossFirst);\n\n    if (_fHalfX || _fHalfY)\n    {\n        // Need to squeeze pmbmpNew and pzbmpNew into _pgptBackground\n        // and _pzbmpBackground.  For pmbmpNew, it is drawn into a\n        // full-size buffer, then reduced with CopyPixels.  For the\n        // ZBMP, it is necessary to reduce it in code here.\n        PGPT pgptFull;\n        long yp;\n        byte *pbSrc;\n        byte *pbDst;\n        long cbRowSrc;\n        long cbRowDst;\n        pgptFull = GPT::PgptNewOffscreen(&_rcView, kcbitPixelRGB);\n        if (pvNil == _pgptBackground)\n        {\n            ReleasePpo(&pmbmpNew);\n            ReleasePpo(&pzbmpNew);\n            return fFalse;\n        }\n        GNV gnvFull(pgptFull);\n        GNV gnvHalf(_pgptBackground);\n\n        gnvFull.DrawMbmp(pmbmpNew, 0, 0);\n        ReleasePpo(&pmbmpNew);\n        gnvHalf.CopyPixels(&gnvFull, &_rcView, &_rcBuffer);\n        ReleasePpo(&pgptFull);\n\n        pbSrc = pzbmpNew->Prgb();\n        pbDst = _pzbmpBackground->Prgb();\n        cbRowSrc = pzbmpNew->CbRow();\n        cbRowDst = _pzbmpBackground->CbRow();\n        Assert(cbRowSrc - cbRowDst == (_fHalfX ? cbRowDst : 0), \"bad src/dest width ratio\");\n        for (yp = 0; yp < _rcBuffer.Dyp(); yp++)\n        {\n            if (_fHalfX)\n                SqueezePb(pbSrc, pbDst, cbRowSrc);\n            else\n                CopyPb(pbSrc, pbDst, cbRowSrc);\n            pbSrc += cbRowSrc;\n            if (_fHalfY)\n                pbSrc += cbRowSrc; // skip rows in source\n            pbDst += cbRowDst;\n        }\n        ReleasePpo(&pzbmpNew);\n    }\n    else // not in half mode\n    {\n        GNV gnv(_pgptBackground);\n        gnv.DrawMbmp(pmbmpNew, 0, 0);\n        ReleasePpo(&pmbmpNew);\n\n        ReleasePpo(&_pzbmpBackground);\n        _pzbmpBackground = pzbmpNew;\n    }\n\n    // entire working buffer is dirty because of background change\n    _pregnDirtyWorking->SetRc(&_rcBuffer);\n    _fWorldChanged = fTrue;\n\n    // Keep a reference to the background, in case we change to/from\n    // halfmode and need to reload it.\n    pcrf->AddRef();\n    ReleasePpo(&_pcrf);\n    _pcrf = pcrf;\n    _ctgRGB = ctgRGB;\n    _cnoRGB = cnoRGB;\n    _ctgZ = ctgZ;\n    _cnoZ = cnoZ;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Change the camera matrix\n***************************************************************************/\nvoid BWLD::SetCamera(BMAT34 *pbmat34, BRS zrHither, BRS zrYon, BRA aFov)\n{\n    AssertThis(0);\n    AssertVarMem(pbmat34);\n    Assert(zrYon > zrHither, \"Yon must be further than hither\");\n\n    _bactCamera.t.t.mat = *pbmat34;\n    _bcam.hither_z = zrHither;\n    _bcam.yon_z = zrYon;\n    _bcam.field_of_view = aFov;\n\n    // entire working buffer is dirty because of camera change\n    _pregnDirtyWorking->SetRc(&_rcBuffer);\n}\n\n/***************************************************************************\n    Get the camera matrix\n***************************************************************************/\nvoid BWLD::GetCamera(BMAT34 *pbmat34, BRS *pzrHither, BRS *pzrYon, BRA *paFov)\n{\n    AssertThis(0);\n    AssertVarMem(pbmat34);\n    AssertNilOrVarMem(pzrHither);\n    AssertNilOrVarMem(pzrYon);\n    AssertNilOrVarMem(paFov);\n\n    *pbmat34 = _bactCamera.t.t.mat;\n    if (pvNil != pzrHither)\n        *pzrHither = _bcam.hither_z;\n    if (pvNil != pzrYon)\n        *pzrYon = _bcam.yon_z;\n    if (pvNil != paFov)\n        *paFov = _bcam.field_of_view;\n}\n\n/***************************************************************************\n    Render the world.  First, notify all BODYs that we're about to render,\n    so they can clear their _pregn's.  Then clean the RGB and Z working\n    buffers, since they're probably dirty from the last render.  Update\n    some regions, and render everything.\n***************************************************************************/\nvoid BWLD::Render(void)\n{\n    AssertThis(0);\n\n    PBACT pbact;\n    RC rc;\n\n    if (!_fWorldChanged)\n        return;\n\n    // Note that we only call pfnbeginrend on immediate children of\n    // the world, because that will hit all the BODYs in Socrates.\n    if (pvNil != _pfnbeginrend)\n    {\n        for (pbact = _bactWorld.children; pvNil != pbact; pbact = pbact->next)\n        {\n            // BODY roots are BR_ACTOR_NONE\n            if (pbact->type == BR_ACTOR_NONE)\n                _pfnbeginrend(pbact);\n        }\n    }\n\n    _CleanWorkingBuffers();\n\n    // Now the working buffer is clean, but we should mark everything that\n    // we just cleaned in _CleanWorkingBuffers as dirty in the screen buffer\n    // so that the background shows through where actors used to be.\n    // In most cases, _pregnDirtyScreen is empty now, so it's tempting to\n    // just SwapVars the two regions.  But if Render() was called but Draw()\n    // never was (as when you press play then stop playing before the end of\n    // the movie), _pregnDirtyScreen may have some stuff still to copy.  So\n    // we have to merge (union) _pregnDirtyWorking into _pregnDirtyScreen,\n    // then clear _pregnDirtyWorking.\n    _pregnDirtyScreen->FUnion(_pregnDirtyWorking);\n    _pregnDirtyWorking->SetRc(pvNil);\n\n    // Render the scene.  This will add stuff to _pregnDirtyWorking\n    BrZbSceneRender(&_bactWorld, &_bactCamera, &_bpmpRGB, &_bpmpZ);\n\n    for (pbact = _bactWorld.children; pvNil != pbact; pbact = pbact->next)\n    {\n        // BODY roots are BR_ACTOR_NONE\n        if (pbact->type == BR_ACTOR_NONE && pvNil != _pfngetrect)\n        {\n            _pfngetrect(pbact, &rc);\n            _pregnDirtyWorking->FUnionRc(&rc);\n        }\n    }\n\n    // Everything dirty in working buffer is dirty on screen too\n    _pregnDirtyScreen->FUnion(_pregnDirtyWorking);\n\n    _fWorldChanged = fFalse;\n}\n\n/***************************************************************************\n    \"Prerender\" the world.  That is, render the world, then copy it into\n    the background buffers\n***************************************************************************/\nvoid BWLD::Prerender(void)\n{\n    AssertThis(0);\n\n    GNV gnvBackground(_pgptBackground);\n    GNV gnvWorking(_pgptWorking);\n\n    Render();\n\n    _pzbmpWorking->Draw((byte *)_pzbmpBackground->Prgb(), _pzbmpBackground->CbRow(), _rcBuffer.Dyp(), 0, 0, &_rcBuffer,\n                        pvNil);\n\n    // Need to detach _pzbmpBackground from the CRF so when we unprerender,\n    // a fresh copy of the ZBMP is fetched\n    _pzbmpBackground->Detach();\n\n    gnvBackground.CopyPixels(&gnvWorking, &_rcBuffer, &_rcBuffer);\n\n    // Need to ensure that the current contents of _pgptWorking (just the\n    // prerenderable actors) go into _pgptBackground\n    GPT::Flush();\n}\n\n/***************************************************************************\n    \"Un-Prerender\" the world.  That is, restore the background bitmaps to\n    the way they were before prerendering any actors\n***************************************************************************/\nvoid BWLD::Unprerender(void)\n{\n    AssertThis(0);\n\n    // Ignore error...you'll just get weird visual effects and an error\n    // will be reported elsewhere\n    FSetBackground(_pcrf, _ctgRGB, _cnoRGB, _ctgZ, _cnoZ);\n}\n\n/***************************************************************************\n    Copy _pregnDirtyWorking from background Z and RGB buffers to working\n    Z and RGB buffers.\n***************************************************************************/\nvoid BWLD::_CleanWorkingBuffers(void)\n{\n    AssertThis(0);\n\n    REGSC regsc;\n    long yp;\n    long xpLeft;\n    RC rcRegnBounds;\n    RC rcClippedRegnBounds;\n    byte *pbSrc;\n    byte *pbDst;\n    long cbRowCopy;\n    RC rc;\n    long cbRowSrc, cbRowDst;\n\n    if (_pregnDirtyWorking->FEmpty(&rcRegnBounds))\n        return;\n    if (!rcClippedRegnBounds.FIntersect(&rcRegnBounds, &_rcBuffer))\n        return;\n\n    // Clean the Z buffer\n    _pzbmpBackground->Draw((byte *)_bpmpZ.pixels, _bpmpZ.row_bytes, _bpmpZ.height, 0, 0, &rcClippedRegnBounds,\n                           _pregnDirtyWorking);\n\n    // Clean the RGB buffer\n    regsc.Init(_pregnDirtyWorking, &rcClippedRegnBounds);\n    yp = rcClippedRegnBounds.ypTop;\n    cbRowSrc = _pgptBackground->CbRow();\n    pbSrc = _pgptBackground->PrgbLockPixels() + LwMul(yp, cbRowSrc) + rcClippedRegnBounds.xpLeft;\n    cbRowDst = _pgptWorking->CbRow();\n    pbDst = _pgptWorking->PrgbLockPixels() + LwMul(yp, cbRowDst) + rcClippedRegnBounds.xpLeft;\n    for (; yp < rcClippedRegnBounds.ypBottom; yp++)\n    {\n        while (regsc.XpCur() < klwMax)\n        {\n            xpLeft = regsc.XpCur();\n            cbRowCopy = regsc.XpFetch() - xpLeft;\n            regsc.XpFetch();\n            CopyPb(pbSrc + xpLeft, pbDst + xpLeft, cbRowCopy);\n        }\n        pbSrc += cbRowSrc;\n        pbDst += cbRowDst;\n        regsc.ScanNext(1);\n    }\n    _pgptWorking->Unlock();\n    _pgptBackground->Unlock();\n}\n\n/***************************************************************************\n    Callback for when a BACT is rendered.  Need to union with dirty\n    region.\n***************************************************************************/\nvoid BWLD::_ActorRendered(PBACT pbact, PBMDL pbmdl, PBMTL pbmtl, br_uint_8 bStyle, br_matrix4 *pbmat4ModelToScreen,\n                          br_int_32 bounds[4])\n{\n    AssertVarMem(pbact);\n\n    PBACT pbactT = pbact;\n    PBWLD pbwld;\n    RC rc(bounds[0], bounds[1], bounds[2] + 1, bounds[3] + 1);\n\n    while (pbactT->parent != pvNil)\n        pbactT = pbactT->parent;\n    pbwld = (PBWLD)pbactT->identifier;\n    AssertPo(pbwld, 0);\n    if (pvNil != pbwld->_pfnbactrend)\n        pbwld->_pfnbactrend(pbact, &rc); // call client callback\n}\n\n/***************************************************************************\n    Mark the region that has been rendered (and needs to be copied to the\n    screen)\n***************************************************************************/\nvoid BWLD::MarkRenderedRegn(PGOB pgob, long dxp, long dyp)\n{\n    AssertThis(0);\n    AssertPo(pgob, 0);\n\n    _pregnDirtyScreen->Scale((_fHalfX ? 2 : 1), 1, (_fHalfY ? 2 : 1), 1);\n    _pregnDirtyScreen->Offset(dxp, dyp);\n    vpappb->MarkRegn(_pregnDirtyScreen, pgob);\n    _pregnDirtyScreen->SetRc(pvNil); // screen is clean\n}\n\n/***************************************************************************\n    Draw the BWLD's working RGB buffer into pgnv.  The movie engine should\n    have called BWLD::MarkRenderedRegn before calling this, so only\n    _pregnDirtyScreen's bits will be copied.\n***************************************************************************/\nvoid BWLD::Draw(PGNV pgnv, RC *prcClip, long dxp, long dyp)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n\n    RC rc;\n    GNV gnvTemp(_pgptWorking);\n\n    rc.OffsetCopy(&_rcView, -dxp, -dyp);\n    pgnv->CopyPixels(&gnvTemp, &_rcBuffer, &rc);\n}\n\n/***************************************************************************\n    Add an actor to the world\n***************************************************************************/\nvoid BWLD::AddActor(BACT *pbact)\n{\n    AssertThis(0);\n    AssertVarMem(pbact);\n\n    BrActorAdd(&_bactWorld, pbact);\n}\n\n/***************************************************************************\n    Filter callback proc for FClickedActor().  Saves pbact if it's the\n    closest one hit so far.\n***************************************************************************/\nint BWLD::_FFilter(BACT *pbact, PBMDL pbmdl, PBMTL pbmtl, BVEC3 *pbvec3RayPos, BVEC3 *pbvec3RayDir, BRS dzpNear,\n                   BRS dzpFar, void *pvData)\n{\n    AssertVarMem(pbact);\n    AssertVarMem(pbvec3RayPos);\n    AssertVarMem(pbvec3RayDir);\n\n    PBWLD pbwld = (PBWLD)pvData;\n    AssertPo(pbwld, 0);\n\n    if (dzpNear < pbwld->_dzpClosestClicked)\n    {\n        pbwld->_pbactClosestClicked = pbact;\n        pbwld->_dzpClosestClicked = dzpNear;\n    }\n\n    return fFalse; // fFalse means keep searching\n}\n\n/***************************************************************************\n    Call pfnCallback for each actor under the point (xp, yp)\n***************************************************************************/\nvoid BWLD::IterateActorsInPt(br_pick2d_cbfn *pfnCallback, void *pvArg, long xp, long yp)\n{\n    AssertThis(0);\n\n    // Convert to _rcBuffer coordinates:\n    if (_fHalfX)\n        xp /= 2;\n    if (_fHalfY)\n        yp /= 2;\n    xp -= _bpmpRGB.origin_x;\n    yp -= _bpmpRGB.origin_y;\n\n    BrScenePick2D(&_bactWorld, &_bactCamera, &_bpmpRGB, xp, yp, pfnCallback, pvArg);\n}\n\n/***************************************************************************\n   If an actor is under (xp, yp), function returns fTrue and **pbact is the\n   actor. If no actor is under (xp, yp), function returns fFalse.\n***************************************************************************/\nbool BWLD::FClickedActor(long xp, long yp, BACT **ppbact)\n{\n    AssertThis(0);\n    AssertVarMem(ppbact);\n\n    _pbactClosestClicked = pvNil;\n    _dzpClosestClicked = BR_SCALAR_MAX;\n\n    IterateActorsInPt(BWLD::_FFilter, this, xp, yp);\n\n    if (pvNil != _pbactClosestClicked)\n    {\n        *ppbact = _pbactClosestClicked;\n        return fTrue;\n    }\n\n    // nothing was clicked\n    TrashVar(ppbact);\n    return fFalse;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the BWLD.\n***************************************************************************/\nvoid BWLD::AssertValid(ulong grf)\n{\n    BWLD_PAR::AssertValid(fobjAllocated);\n    AssertPo(_pgptWorking, 0);\n    AssertPo(_pgptBackground, 0);\n    AssertPo(_pzbmpWorking, 0);\n    AssertPo(_pzbmpBackground, 0);\n    AssertPo(_pregnDirtyWorking, 0);\n    AssertPo(_pregnDirtyScreen, 0);\n    AssertNilOrPo(_pcrf, 0);\n    if (!_fHalfX && _fHalfY)\n        AssertPo(_pgptStretch, 0);\n    else\n        Assert(pvNil == _pgptStretch, \"don't need _pgptStretch!\");\n}\n\n/***************************************************************************\n    Mark memory used by the BWLD\n***************************************************************************/\nvoid BWLD::MarkMem(void)\n{\n    AssertThis(0);\n    BWLD_PAR::MarkMem();\n    MarkMemObj(_pgptWorking);\n    MarkMemObj(_pgptBackground);\n    MarkMemObj(_pzbmpWorking);\n    MarkMemObj(_pzbmpBackground);\n    MarkMemObj(_pregnDirtyWorking);\n    MarkMemObj(_pregnDirtyScreen);\n    MarkMemObj(_pcrf);\n    MarkMemObj(_pgptStretch);\n}\n\n/******************************************************************************\n    FWriteBmp\n        Writes the current rendered buffer out to the given file\n\n    Arguments:\n        PFNI pfni -- the name of the file\n\n    Returns: fTrue if the file could be written successfully\n\n************************************************************ PETED ***********/\nbool BWLD::FWriteBmp(PFNI pfni)\n{\n    AssertPo(pfni, 0);\n\n    bool fRet;\n    RC rc;\n\n    fRet = FWriteBitmap(pfni, _pgptWorking->PrgbLockPixels(&rc), GPT::PglclrGetPalette(), _rcBuffer.Dxp(),\n                        _rcBuffer.Dyp());\n    _pgptWorking->Unlock();\n    return fRet;\n}\n\n#endif // DEBUG\n"
  },
  {
    "path": "bren/inc/actor.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: actor.h 1.14 1995/05/25 13:37:23 sam Exp $\n * $Locker:  $\n *\n * Definitons for an Actor\n */\n#ifndef _ACTOR_H_\n#define _ACTOR_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    /**\n     ** Definition of base actor structure\n     **/\n\n    /*\n     * Basic types of actor\n     */\n    enum\n    {\n        BR_ACTOR_NONE,\n        BR_ACTOR_MODEL,\n        BR_ACTOR_LIGHT,\n        BR_ACTOR_CAMERA,\n        _BR_ACTOR_RESERVED,\n        BR_ACTOR_BOUNDS,\n        BR_ACTOR_BOUNDS_CORRECT,\n        BR_ACTOR_CLIP_PLANE,\n        BR_ACTOR_MAX\n    };\n\n    /*\n     * Render styles - an actor inherits it's style from the most _distant_\n     * ancestor included in this traversal that does not have default set\n     * (unlike model & material which are inherited from the nearest ancestor)\n     */\n    enum\n    {\n        BR_RSTYLE_DEFAULT,\n        BR_RSTYLE_NONE,\n        BR_RSTYLE_POINTS,\n        BR_RSTYLE_EDGES,\n        BR_RSTYLE_FACES,\n        BR_RSTYLE_BOUNDING_POINTS,\n        BR_RSTYLE_BOUNDING_EDGES,\n        BR_RSTYLE_BOUNDING_FACES,\n        BR_RSTYLE_MAX\n    };\n\n    /*\n     * The actor structure\n     */\n    typedef struct br_actor\n    {\n        /*\n         * Doubly linked list of siblings\n         * br_actor can be used as br_simple_node\n         */\n        struct br_actor *next;\n        struct br_actor **prev;\n\n        /*\n         * First in list of children, or NULL if none\n         * br_actor.children can be used as br_simple_list\n         */\n        struct br_actor *children;\n\n        /*\n         * Parent, or NULL, if no higher parent\n         */\n        struct br_actor *parent;\n\n        /*\n         * Depth of actor from furthest ancestor\n         */\n        br_uint_16 depth;\n\n        /*\n         * Type of actor\n         */\n        br_uint_8 type;\n\n        /*\n         * Optional name of actor\n         */\n        char *identifier;\n\n        /*\n         * Reference to model associated with this actor, NULL will inherit\n         * from parent (root inherits default_model)\n         */\n        br_model *model;\n\n        /*\n         * Default material for model - NULL will inherit from parent. Root\n         * inherits default material\n         */\n        br_material *material;\n\n        /*\n         * Render style for actor, and all it's decendants if not BR_RSTYLE_DEFAULT\n         */\n        br_uint_8 render_style;\n\n        /*\n         * Postiton of this actor within parent space\n         */\n        br_transform t;\n\n        /*\n         * Reference to any type specific data block\n         */\n        void *type_data;\n    } br_actor;\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/angles.h",
    "content": "/*\n * Copyright (c) 1992,1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: angles.h 1.9 1995/05/25 13:37:24 sam Exp $\n * $Locker:  $\n *\n */\n#ifndef _ANGLES_H_\n#define _ANGLES_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    /*\n     * Angles are alway 0.16 fixed point\n     */\n    typedef br_fixed_luf br_angle;\n\n#define BR_ANGLE_DEG(deg) ((br_angle)((deg)*182))\n#define BR_ANGLE_RAD(rad) ((br_angle)((rad)*10430))\n\n#if BASED_FIXED\n\n#define BrAngleToDegree(a) BR_MUL((a), BR_SCALAR(360.0))\n#define BrDegreeToAngle(d) ((br_angle)BR_MULDIV((d), BR_SCALAR(1.0), BR_SCALAR(360.0)))\n#define BrAngleToRadian(a) BR_MUL((a), BR_SCALAR(2.0 * PI))\n#define BrRadianToAngle(r) ((br_angle)(BR_MUL((r), BR_SCALAR(0.5 / PI))))\n#define BrDegreeToRadian(d) (BR_MULDIV((d), BR_SCALAR(PI), BR_SCALAR(180.0)))\n#define BrRadianToDegree(r) (BR_MUL((r), BR_SCALAR(180.0 / PI)))\n\n#define BrAngleToScalar(a) ((br_scalar)(a))\n#define BrScalarToAngle(s) ((br_angle)(s))\n\n#define BR_SIN(a) BrFixedSin(a)\n#define BR_COS(a) BrFixedCos(a)\n#define BR_ASIN(a) BrFixedASin(a)\n#define BR_ACOS(a) BrFixedACos(a)\n#define BR_ATAN2(a, b) BrFixedATan2(a, b)\n#define BR_ATAN2FAST(a, b) BrFixedATan2Fast(a, b)\n\n#endif\n\n#if BASED_FLOAT\n\n#define BrAngleToDegree(a) ((a) * (180.0 / 32768.0))\n#define BrDegreeToAngle(d) ((br_angle)((d) * (32768.0 / 180.0)))\n#define BrAngleToRadian(a) ((a) * (PI / 32768.0))\n#define BrRadianToAngle(r) ((br_angle)((r) * (32768.0 / PI)))\n#define BrDegreeToRadian(d) ((d) * (PI / 180.0))\n#define BrRadianToDegree(r) ((r) * (180.0 / PI))\n\n#define BrAngleToScalar(a) ((a) * (1.0 / (float)BR_ONE_LS))\n#define BrScalarToAngle(s) ((br_angle)((s) * (float)BR_ONE_LS))\n\n#define BR_SIN(a) sin(BrAngleToRadian(a))\n#define BR_COS(a) cos(BrAngleToRadian(a))\n#define BR_ASIN(a) BrRadianToAngle(asin(a))\n#define BR_ACOS(a) BrRadianToAngle(acos(a))\n#define BR_ATAN2(a, b) BrRadianToAngle(atan2((a), (b)))\n#define BR_ATAN2FAST(a, b) RBradianToAngle(atan2((a), (b)))\n\n#endif\n\n    /*\n     * Fields that go into br_euler.order\n     */\n    enum\n    {\n        BR_EULER_FIRST = 0x03,\n        BR_EULER_FIRST_X = 0x00,\n        BR_EULER_FIRST_Y = 0x01,\n        BR_EULER_FIRST_Z = 0x02,\n\n        BR_EULER_PARITY = 0x04,\n        BR_EULER_PARITY_EVEN = 0x00,\n        BR_EULER_PARITY_ODD = 0x04,\n\n        BR_EULER_REPEAT = 0x08,\n        BR_EULER_REPEAT_NO = 0x00,\n        BR_EULER_REPEAT_YES = 0x08,\n\n        BR_EULER_FRAME = 0x10,\n        BR_EULER_FRAME_STATIC = 0x00,\n        BR_EULER_FRAME_ROTATING = 0x10\n    };\n\n/*\n * Various possible orders\n */\n#define BR_EULER_ORDER(a, p, r, f) (BR_EULER_FIRST_##a | BR_EULER_PARITY_##p | BR_EULER_REPEAT_##r | BR_EULER_FRAME_##f)\n\n    enum\n    {\n        BR_EULER_XYZ_S = BR_EULER_ORDER(X, EVEN, NO, STATIC),\n        BR_EULER_XYX_S = BR_EULER_ORDER(X, EVEN, YES, STATIC),\n        BR_EULER_XZY_S = BR_EULER_ORDER(X, ODD, NO, STATIC),\n        BR_EULER_XZX_S = BR_EULER_ORDER(X, ODD, YES, STATIC),\n        BR_EULER_YZX_S = BR_EULER_ORDER(Y, EVEN, NO, STATIC),\n        BR_EULER_YZY_S = BR_EULER_ORDER(Y, EVEN, YES, STATIC),\n        BR_EULER_YXZ_S = BR_EULER_ORDER(Y, ODD, NO, STATIC),\n        BR_EULER_YXY_S = BR_EULER_ORDER(Y, ODD, YES, STATIC),\n        BR_EULER_ZXY_S = BR_EULER_ORDER(Z, EVEN, NO, STATIC),\n        BR_EULER_ZXZ_S = BR_EULER_ORDER(Z, EVEN, YES, STATIC),\n        BR_EULER_ZYX_S = BR_EULER_ORDER(Z, ODD, NO, STATIC),\n        BR_EULER_ZYZ_S = BR_EULER_ORDER(Z, ODD, YES, STATIC),\n\n        BR_EULER_ZYX_R = BR_EULER_ORDER(X, EVEN, NO, ROTATING),\n        BR_EULER_XYX_R = BR_EULER_ORDER(X, EVEN, YES, ROTATING),\n        BR_EULER_YZX_R = BR_EULER_ORDER(X, ODD, NO, ROTATING),\n        BR_EULER_XZX_R = BR_EULER_ORDER(X, ODD, YES, ROTATING),\n        BR_EULER_XZY_R = BR_EULER_ORDER(Y, EVEN, NO, ROTATING),\n        BR_EULER_YZY_R = BR_EULER_ORDER(Y, EVEN, YES, ROTATING),\n        BR_EULER_ZXY_R = BR_EULER_ORDER(Y, ODD, NO, ROTATING),\n        BR_EULER_YXY_R = BR_EULER_ORDER(Y, ODD, YES, ROTATING),\n        BR_EULER_YXZ_R = BR_EULER_ORDER(Z, EVEN, NO, ROTATING),\n        BR_EULER_ZXZ_R = BR_EULER_ORDER(Z, EVEN, YES, ROTATING),\n        BR_EULER_XYZ_R = BR_EULER_ORDER(Z, ODD, NO, ROTATING),\n        BR_EULER_ZYZ_R = BR_EULER_ORDER(Z, ODD, YES, ROTATING)\n    };\n\n    /*\n     * A triple of euler angles and a description of how they are to\n     * be applied - loosely based on -\n     * \t\"Euler Angle Convertion\" Ken Shoemake, Graphics Gems IV pp. 222\n     */\n    typedef struct br_euler\n    {\n        br_angle a;\n        br_angle b;\n        br_angle c;\n        br_uint_8 order;\n    } br_euler;\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/animate.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: animate.h 1.3 1995/02/22 21:36:55 sam Exp $\n * $Locker:  $\n *\n * Definitons for a p3d Animate\n */\n#ifndef _ANIMATE_H_\n#define _ANIMATE_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    typedef struct br_animation\n    {\n        br_matrix4 matrix;\n    } br_animation;\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/blockops.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: blockops.h 1.6 1995/02/22 21:36:56 sam Exp $\n * $Locker:  $\n *\n * Memory operations, block fill, block copy etc. Thse are local to the\n * library becuase some compiler's versions are not that good.\n */\n#if defined(__WATCOMC__)\n\n/*\n * Inline block operations for Watcom C\n */\n\nvoid BrIBlockFill(void *dest_ptr, int value, int dwords);\n#pragma aux BrIBlockFill = \"rep stosd\" parm[edi][eax][ecx];\n\nvoid BrIBlockCopy(void *dest_ptr, void *src_ptr, int dwords);\n#pragma aux BrIBlockCopy = \"rep movsd\" parm[edi][esi][ecx];\n\n/* Inline copy near block to far block\n */\nvoid BrIFarBlockCopy(void __far *dest_ptr, void *src_ptr, int dwords);\n#pragma aux BrIFarBlockCopy = \"push\tes\"                                                                                \\\n                              \"mov \tes,dx\"                                                                             \\\n                              \"rep \tmovsd\"                                                                             \\\n                              \"pop \tes\" parm[dx edi][esi][ecx];\n\n#define BrBlockFill(d, v, c) BrIBlockFill(d, v, c)\n#define BrBlockCopy(d, s, c) BrIBlockCopy(d, s, c)\n#define BrFarBlockCopy(d, s, c) BrIFarBlockCopy(d, s, c)\n\n#endif\n"
  },
  {
    "path": "bren/inc/brassert.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: brassert.h 1.3 1995/02/22 21:36:57 sam Exp $\n * $Locker:  $\n *\n * Assertion macros\n *\n *\tASSERT() is for internal checks\n *\tUASSERT() is for user checks\n */\n\n/*\n * This file should _NOT_ have checks for single inclusion -\n * it is legitimate to re-include it with DEBUG or PARANOID set diffently\n */\n#undef ASSERT\n\n#if DEBUG\n#define ASSERT(e) ((void)((e) || (_BrAssert(#e, __FILE__, __LINE__), 1)))\n#else\n#define ASSERT(ignore) ((void)0)\n#endif\n\n#undef UASSERT\n\n#if PARANOID\n#define UASSERT(e) ((void)((e) || (_BrUAssert(#e, __FILE__, __LINE__), 1)))\n#else\n#define UASSERT(ignore) ((void)0)\n#endif\n"
  },
  {
    "path": "bren/inc/brdiag.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: brdiag.h 1.1 1995/07/28 18:57:13 sam Exp $\n * $Locker:  $\n *\n * Brender's interface to diagnostic handling\n */\n\n#ifndef _BRDIAG_H_\n#define _BRDIAG_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    /*\n     * Instance of an error handler\n     */\n    typedef void BR_CALLBACK br_diag_warning_cbfn(char *message);\n    typedef void BR_CALLBACK br_diag_failure_cbfn(char *message);\n\n    typedef struct br_diaghandler\n    {\n        char *identifier;\n        br_diag_warning_cbfn *warning;\n        br_diag_failure_cbfn *failure;\n    } br_diaghandler;\n\n    /*\n     * For backwards compatibility\n     */\n    typedef struct br_errorhandler\n    {\n        char *identifier;\n        br_diag_warning_cbfn *message;\n        br_diag_failure_cbfn *error;\n\n    } br_errorhandler;\n\n/**\n ** Macros for diagnostic generation\n **/\n\n/*\n * Report message and exit - should not return to application\n */\n#define BR_FAILURE(s) BrFailure(s)\n#define BR_FAILURE0(s) BrFailure(s)\n#define BR_FAILURE1(s, a) BrFailure(s, a)\n#define BR_FAILURE2(s, a, b) BrFail(s, a, b)\n#define BR_FAILURE3(s, a, b, c) BrFailure(s, a, b, c)\n#define BR_FAILURE4(s, a, b, c, d) BrFailure(s, a, b, c, d)\n#define BR_FAILURE5(s, a, b, c, d, e) BrFailure(s, a, b, c, d, e)\n#define BR_FAILURE6(s, a, b, c, d, e, f) BrFailure(s, a, b, c, d, e, f)\n\n/*\n * Report message and continue\n */\n#define BR_WARNING(s) BrWarning(s)\n#define BR_WARNING0(s) BrWarning(s)\n#define BR_WARNING1(s, a) BrWarning(s, a)\n#define BR_WARNING2(s, a, b) BrWarning(s, a, b)\n#define BR_WARNING3(s, a, b, c) BrWarning(s, a, b, c)\n#define BR_WARNING4(s, a, b, c, d) BrWarning(s, a, b, c, d)\n#define BR_WARNING5(s, a, b, c, d, e) BrWarning(s, a, b, c, d, e)\n#define BR_WARNING6(s, a, b, c, d, e, f) BrWarning(s, a, b, c, d, e, f)\n\n/*\n * Report message and exit, including source file and line number\n */\n#define BR_FATAL(s) BrFatal(__FILE__, __LINE__, s)\n#define BR_FATAL0(s) BrFatal(__FILE__, __LINE__, s)\n#define BR_FATAL1(s, a) BrFatal(__FILE__, __LINE__, s, a)\n#define BR_FATAL2(s, a, b) BrFatal(__FILE__, __LINE__, s, a, b)\n#define BR_FATAL3(s, a, b, c) BrFatal(__FILE__, __LINE__, s, a, b, c)\n#define BR_FATAL4(s, a, b, c, d) BrFatal(__FILE__, __LINE__, s, a, b, c, d)\n#define BR_FATAL5(s, a, b, c, d, e) BrFatal(__FILE__, __LINE__, s, a, b, c, d, e)\n#define BR_FATAL6(s, a, b, c, d, e, f) BrFatal(__FILE__, __LINE__, s, a, b, c, d, e, f)\n\n/*\n * Backwards compatibility\n */\n#define BR_ERROR(s) BrFailure(s)\n#define BR_ERROR0(s) BrFailure(s)\n#define BR_ERROR1(s, a) BrFailure(s, a)\n#define BR_ERROR2(s, a, b) BrFailure(s, a, b)\n#define BR_ERROR3(s, a, b, c) BrFailure(s, a, b, c)\n#define BR_ERROR4(s, a, b, c, d) BrFailure(s, a, b, c, d)\n#define BR_ERROR5(s, a, b, c, d, e) BrFailure(s, a, b, c, d, e)\n#define BR_ERROR6(s, a, b, c, d, e, f) BrFailure(s, a, b, c, d, e, f)\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/bren.h",
    "content": "/***************************************************************************\n\n    bren.h: Main include file for BRender files\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n***************************************************************************/\n#ifndef BREN_H\n#define BREN_H\n\n#include \"kidframe.h\"\n#include \"brender.h\"\n\ntypedef br_actor BACT;\ntypedef br_model BMDL;\ntypedef br_light BLIT;\ntypedef br_camera BCAM;\ntypedef br_material BMTL;\ntypedef br_pixelmap BPMP;\ntypedef br_matrix34 BMAT34;\ntypedef br_bounds BRB;\ntypedef br_vertex BRV;\ntypedef br_face BRFC;\ntypedef br_face BRF;\ntypedef br_colour BRCLR;\ntypedef br_transform BRXFM;\ntypedef br_euler BREUL;\ntypedef br_matrix4 BMAT4;\ntypedef br_matrix23 BMAT23;\n\ntypedef BACT *PBACT;\ntypedef BMDL *PBMDL;\ntypedef BLIT *PBLIT;\ntypedef BCAM *PBCAM;\ntypedef BMTL *PBMTL;\ntypedef BPMP *PBPMP;\ntypedef BMAT34 *PBMAT34;\ntypedef BMAT4 *PBMAT4;\ntypedef BMAT23 *PBMAT23;\n\ntypedef br_scalar BRS;\ntypedef br_angle BRA;\ntypedef br_fraction BRFR;\ntypedef br_ufraction BRUFR;\ntypedef br_vector3 BVEC3;\ntypedef br_vector4 BVEC4;\n\n#define BrsMac2 BR_MAC2\n#define BrsSub BR_SUB\n#define BrsMul BR_MUL\n#define BrsAdd BR_ADD\n#define BrsAbs BR_ABS\n#define BrsRcp BR_RCP\n\nconst BRS rZero = BR_SCALAR(0.0);\nconst BRS rOne = BR_SCALAR(1.0);\nconst BRS rTwo = BR_SCALAR(2.0);\nconst BRS rFour = BR_SCALAR(4.0);\nconst BRS rOneHalf = BR_SCALAR(0.5);\nconst BRS rEps = BR_SCALAR_EPSILON;\nconst BRS rDivMin = 0x03; // Smallest br_scalar for which BrsRcp() does not overflow\nconst BRS rFractMax = rOne - rEps;\n\nconst BRS krQuarter = BR_SCALAR(0.25);\nconst BRS krHalf = BR_SCALAR(0.5);\nconst BRS krPi = BR_SCALAR(PI);\nconst BRS krTwoPi = BR_SCALAR(2.0 * PI);\nconst BRS krThreePi = BR_SCALAR(3.0 * PI);\nconst BRS krHalfPi = BR_SCALAR(0.5 * PI);\n\nconst BVEC3 vec3X = {rOne, rZero, rZero};\nconst BVEC3 vec3Y = {rZero, rOne, rZero};\nconst BVEC3 vec3Z = {rZero, rZero, rOne};\n\nconst BRFR frNil = BR_FRACTION(0.0);\nconst BRA aNil = BR_ANGLE_DEG(0);\nconst BRA aZero = BR_ANGLE_DEG(0);\n\n#define kctgZbmp 'ZBMP'\n\nstruct BCB // bounding cuboid...same shape as br_bounds\n{\n    BRS xrMin;\n    BRS yrMin;\n    BRS zrMin;\n    BRS xrMax;\n    BRS yrMax;\n    BRS zrMax;\n};\nconst BOM kbomBcb = 0xfff00000;\n\ninline bool FBrEmptyBcb(BCB *pbcb)\n{\n    return !(pbcb->xrMin || pbcb->yrMin || pbcb->zrMin || pbcb->xrMax || pbcb->yrMax || pbcb->zrMax);\n}\n\nconst BOM kbomBrs = 0xc0000000; // br_scalar\nconst BOM kbomBrv = 0xffd50000; // br_vertex\nconst BOM kbomBrf = 0x555c15c0; // br_face\nconst BOM kbomBmat34 = 0xffffff00;\n\n#if BASED_FIXED\ninline BRS BrsHalf(BRS r)\n{\n    return r >> 1;\n}\ninline BRFR ScalarToFraction(BRS r)\n{\n    return (br_fraction)((r >> 1) | ((r & 0x8000) >> 8));\n}\ninline BRS BrsAbsMax3(BRS r1, BRS r2, BRS r3)\n{\n    return (BRS)(LwMax(LwMax(LwAbs((long)r1), LwAbs((long)r2)), LwAbs((long)r3)));\n}\ninline BRS BrsDiv(BRS r1, BRS r2) // Safety net: Prevent ovfl on division of integers\n{\n    if (r2 >= rOne || r2 < -rOne || LwAbs((long)r1) < LwAbs((long)r2))\n        return BR_DIV(r1, r2); // Most common case in SocRates (by far)\n    if (LwAbs((long)r2) < rDivMin)\n        return ((r1 > 0 == r2 > 0) ? BR_SCALAR_MAX : BR_SCALAR_MIN);\n    BRS rRcp = BR_RCP(r2);\n    ulong lwT = (((ulong)BR_ABS(r1)) >> 16) * (((ulong)BR_ABS(rRcp)) >> 16);\n    if (lwT < 65536)\n        return (BRS)BR_MUL(r1, rRcp);\n    return ((r1 > 0 == r2 > 0) ? BR_SCALAR_MAX : BR_SCALAR_MIN);\n}\n#endif // BASED_FIXED\n\n// fixed.h additions\n\n// Round by adding half the desired rounding precision, and masking off the\n// remaining precision\n#define BR_ROUND(s, p) ((br_scalar)(BR_ADD((s), (0x01 << (p))) & ~((br_scalar)((0x01 << ((p) + 1)) - 1))))\n\n// colour.h additions\n\n// Color conversion: straight RGB to RGB and RGB to grey\n#define BR_DK_TO_BR(dk) BR_COLOUR_RGB((byte)((dk).r * 256.0), (byte)((dk).g * 256.0), (byte)((dk).b * 256.0))\n#define BR_DKRGB_TO_FRGRAY(dk) BrScalarToUFraction(BrFloatToScalar(((dk).r * 0.30 + (dk).g * 0.59 + (dk).b * 0.11)))\n\n// angles.h additions\n// REVIEW peted: temporary BR_ACOS until we get a fixed Brender\n#ifdef BR_ACOS\n#undef BR_ACOS\n#endif // BR_ACOS\n#define BR_ACOS(a) BrRadianToAngle(BrFloatToScalar(acos(BrScalarToFloat(a))))\n\n#include \"zbmp.h\"\n#include \"bwld.h\"\n#include \"tmap.h\"\n\n#endif //! BREN_H\n"
  },
  {
    "path": "bren/inc/brender.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: brender.h 1.17 1995/03/01 16:08:11 sam Exp $\n * $Locker: sam $\n *\n * Master include file for BRender\n *\n */\n#ifndef _BRENDER_H_\n#define _BRENDER_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n#ifndef _COMPILER_H_\n#include \"compiler.h\"\n#endif\n\n#ifndef _BRLIMITS_H_\n#include \"brlimits.h\"\n#endif\n\n#ifndef _FIXED_H_\n#include \"fixed.h\"\n#endif\n\n#ifndef _SCALAR_H_\n#include \"scalar.h\"\n#endif\n\n#ifndef _COLOUR_H_\n#include \"colour.h\"\n#endif\n\n#ifndef _MATRIX_H_\n#include \"matrix.h\"\n#endif\n\n#ifndef _VECTOR_H_\n#include \"vector.h\"\n#endif\n\n#ifndef _ANGLES_H_\n#include \"angles.h\"\n#endif\n\n#ifndef _QUAT_H_\n#include \"quat.h\"\n#endif\n\n#ifndef _TRANSFRM_H_\n#include \"transfrm.h\"\n#endif\n\n#ifndef _PIXELMAP_H_\n#include \"pixelmap.h\"\n#endif\n\n#ifndef _BRFONT_H_\n#include \"brfont.h\"\n#endif\n\n#ifndef _MATERIAL_H_\n#include \"material.h\"\n#endif\n\n#ifndef _MODEL_H_\n#include \"model.h\"\n#endif\n\n#ifndef _ACTOR_H_\n#include \"actor.h\"\n#endif\n\n#ifndef _CAMERA_H_\n#include \"camera.h\"\n#endif\n\n#ifndef _LIGHT_H_\n#include \"light.h\"\n#endif\n\n#ifndef _POOL_H_\n#include \"pool.h\"\n#endif\n\n#ifndef _CUSTSUPT_H_\n#include \"custsupt.h\"\n#endif\n\n#ifndef _BRFILE_H_\n#include \"brfile.h\"\n#endif\n\n#ifndef _BRMEM_H_\n#include \"brmem.h\"\n#endif\n\n#ifndef _BRDIAG_H_\n#include \"brdiag.h\"\n#endif\n\n#ifndef _BRERR_H_\n#include \"brerr.h\"\n#endif\n\n#ifndef _FMT_H_\n#include \"fmt.h\"\n#endif\n\n    /*\n     * Function prototypes\n     */\n\n#ifndef _FWPROTO_H_\n#include \"fwproto.h\"\n#endif\n\n#ifndef _ZBPROTO_H_\n#include \"zbproto.h\"\n#endif\n\n#ifndef _FWPEXTRA_H_\n#include \"fwpextra.h\"\n#endif\n\n    /*\n     * Inline functions\n     */\n\n#ifndef _NO_PROTOTYPES\n#ifndef _NO_VECTOR_MACROS\n#ifndef _VECFNS_H_\n#include \"vecfns.h\"\n#endif\n#endif\n#endif\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/brerr.h",
    "content": "/*\n * Copyright (c) 1993-1995 Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: fwiproto.h 1.27 1995/06/30 16:01:14 sam Exp $\n * $Locker: sam $\n *\n * Error type\n */\n#ifndef _BRERR_H_\n#define _BRERR_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    /*\n     * Error types are 32 bit integers, broken into three fields -\n     *\n     * Class\tSubclass Number\n     *\n     * 33222222 22221111 1111110000000000\n     * 10987654 32109876 5432109876543210\n     *\n     * A value of zero is reserved to indiciate no error\n     */\n    typedef br_uint_32 br_error;\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/brfile.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: brfile.h 1.7 1995/02/22 21:36:59 sam Exp $\n * $Locker:  $\n *\n * Brender's interface to file IO\n */\n\n#ifndef _BRFILE_H_\n#define _BRFILE_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    typedef int BR_CALLBACK br_mode_test_cbfn(br_uint_8 *magics, br_size_t n_magics);\n\n    /*\n     * Interface to filesystem\n     */\n    typedef br_uint_32 BR_CALLBACK brfile_attributes_cbfn(void);\n    typedef void *BR_CALLBACK brfile_open_read_cbfn(char *name, br_size_t n_magics, br_mode_test_cbfn *mode_test,\n                                                    int *mode_result);\n    typedef void *BR_CALLBACK brfile_open_write_cbfn(char *name, int text);\n    typedef void BR_CALLBACK brfile_close_cbfn(void *f);\n    typedef int BR_CALLBACK brfile_eof_cbfn(void *f);\n    typedef int BR_CALLBACK brfile_getchr_cbfn(void *f);\n    typedef void BR_CALLBACK brfile_putchr_cbfn(int c, void *f);\n    typedef br_size_t BR_CALLBACK brfile_read_cbfn(void *buf, br_size_t size, unsigned int nelems, void *f);\n    typedef br_size_t BR_CALLBACK brfile_write_cbfn(void *buf, br_size_t size, unsigned int nelems, void *f);\n    typedef br_size_t BR_CALLBACK brfile_getline_cbfn(char *buf, br_size_t buf_len, void *f);\n    typedef void BR_CALLBACK brfile_putline_cbfn(char *buf, void *f);\n    typedef void BR_CALLBACK brfile_advance_cbfn(br_size_t count, void *f);\n\n    typedef struct br_filesystem\n    {\n        char *identifier;\n\n        /*\n         * Inquire about attributes of file system\n         */\n        brfile_attributes_cbfn *attributes;\n\n        /*\n         * Locate and open a file, and then grab 'n_magics' bytes\n         * from the front of the file and pass them to a an 'identify'\n         * function that returns the mode of the file\n         *\n         * Returns file handle, or NULL if open failed\n         *\n         * Stores open mode through mode_result if not NULL\n         */\n        brfile_open_read_cbfn *open_read;\n\n        /*\n         * Open a file for writing, possibly with text translation\n         *\n         * Returns fil handle, or NULL if open failed\n         */\n        brfile_open_write_cbfn *open_write;\n\n        /*\n         * Close an opened file\n         */\n        brfile_close_cbfn *close;\n\n        /*\n         * Find out if at end of file\n         */\n        brfile_eof_cbfn *eof;\n\n        /*\n         * Read and write single characters\n         */\n        brfile_getchr_cbfn *getchr;\n        brfile_putchr_cbfn *putchr;\n\n        /*\n         * Read and write blocks\n         */\n        brfile_read_cbfn *read;\n        brfile_write_cbfn *write;\n\n        /*\n         * Read and write lines of text, excluding any line terminators\n         * Will only be used if  text translation is in use\n         */\n        brfile_getline_cbfn *getline;\n        brfile_putline_cbfn *putline;\n\n        /*\n         * Advance <count> bytes through stream\n         *\n         * Will not be invoked if text translation is in use\n         */\n        brfile_advance_cbfn *advance;\n\n    } br_filesystem;\n\n    /*\n     * Bitmask returned by fs->attributes\n     */\n    enum br_filesystem_attributes\n    {\n        BR_FS_ATTR_READABLE = 0x0001,\n        BR_FS_ATTR_WRITEABLE = 0x0002,\n        BR_FS_ATTR_HAS_TEXT = 0x0004,\n        BR_FS_ATTR_HAS_BINARY = 0x0008,\n        BR_FS_ATTR_HAS_ADVANCE = 0x0010\n    };\n\n    /*\n     * Possible values returner by open_read identify callback\n     */\n    enum br_filesystem_identify\n    {\n        BR_FS_MODE_BINARY,\n        BR_FS_MODE_TEXT,\n        BR_FS_MODE_UNKNOWN\n    };\n\n/*\n * Maximum number of magic bytes that can be requested on open_read\n */\n#define BR_MAX_FILE_MAGICS 16\n\n/*\n * Returned by filesys->getchr at end of file\n */\n#define BR_EOF (-1)\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/brfont.h",
    "content": "/*\n * Copyright (c) 1992,1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: brfont.h 1.4 1995/03/29 16:42:55 sam Exp $\n * $Locker:  $\n *\n */\n#ifndef _BRFONT_H_\n#define _BRFONT_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    typedef struct br_font\n    {\n        br_uint_32 flags;\n        br_uint_16 glyph_x;\n        br_uint_16 glyph_y;\n        br_int_16 spacing_x;\n        br_int_16 spacing_y;\n        br_int_8 *width;\n        br_uint_16 *encoding;\n        br_uint_8 *glyphs;\n    } br_font;\n\n/*\n * Flags\n */\n#define BR_FONTF_PROPORTIONAL 1\n\n    /*\n     * Default fonts that are available in framework\n     */\n    extern struct br_font *BrFontFixed3x5;\n    extern struct br_font *BrFontProp4x6;\n    extern struct br_font *BrFontProp7x9;\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/brhton.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: brhton.h 1.7 1995/05/25 13:37:25 sam Exp $\n * $Locker:  $\n *\n * Converting 'network' (big endian) byte order to host order\n *\n * This is a private implemenation - some platforms do not provide\n * this functionality. For those that do, this file should define\n * the operations in terms of the platform specific API\n */\n\n#ifndef _BRHTON_H_\n#define _BRHTON_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    /*\n     * Mac is in network order already - little endian\n     *\n     * XXX SANE format\n     */\n\n#if defined(__MPW__) || defined(__THINKC__)\n\n    typedef float br_float;\n\n#define BrHtoNL(x) (x)\n#define BrNtoHL(x) (x)\n#define BrHtoNS(x) (x)\n#define BrNtoHS(x) (x)\n\n#define BrHtoNF(x) (x)\n#define BrNtoHF(x) (x)\n\n#define BR_ENDIAN_BIG 1\n#define BR_ENDIAN_LITTLE 0\n#endif\n\n/*\n * PC is little-endian\n */\n#if defined(__GNUC__) || defined(__WATCOMC__) || defined(__ZTC__) || defined(__PROTONC__) || defined(__HIGHC__) ||     \\\n    defined(__BORLANDC__) || defined(__IBMC__) || defined(_MSC_VER)\n\n#define BrNtoHL(x) BrSwap32(x)\n#define BrHtoNL(x) BrSwap32(x)\n#define BrNtoHS(x) BrSwap16(x)\n#define BrHtoNS(x) BrSwap16(x)\n\n#define BrHtoNF(x) BrSwapFloat(x)\n#define BrNtoHF(x) BrSwapFloat(x)\n\n#define BR_ENDIAN_BIG 0\n#define BR_ENDIAN_LITTLE 1\n\n#endif\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/brlimits.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: brlimits.h 1.5 1995/02/22 21:37:01 sam Exp $\n * $Locker:  $\n *\n * Various limits imposed by the renderer\n */\n\n#ifndef _BRLIMITS_H_\n#define _BRLIMITS_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n/*\n * Maximum length of an item's name\n */\n#define BR_MAX_NAME 256\n\n/*\n * Maximum number of active lights\n */\n#define BR_MAX_LIGHTS 16\n\n/*\n * Maximum number of active clip planes\n */\n#define BR_MAX_CLIP_PLANES 6\n\n/*\n * Maximum number of resource classes\n */\n#define BR_MAX_RESOURCE_CLASSES 256\n\n/*\n * Maximum depth of camera in hierachy\n */\n#define MAX_CAMERA_DEPTH 16\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/brmem.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: brmem.h 1.13 1995/05/25 13:37:26 sam Exp $\n * $Locker: sam $\n *\n * Brender's interface to memory allocation\n */\n\n#ifndef _BRMEM_H_\n#define _BRMEM_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    /*\n     * Instance of a memory allocator\n     */\n    typedef void *BR_CALLBACK brmem_allocate_cbfn(br_size_t size, br_uint_8 type);\n    typedef void BR_CALLBACK brmem_free_cbfn(void *block);\n    typedef br_size_t BR_CALLBACK brmem_inquire_cbfn(br_uint_8 type);\n\n    typedef struct br_allocator\n    {\n        char *identifier;\n\n        /*\n         * Allocate a new chunk of memory - must return the new pointer\n         * or handle the error itself\n         */\n        brmem_allocate_cbfn *allocate;\n\n        /*\n         * Release previously allocated block\n         */\n        brmem_free_cbfn *free;\n\n        /*\n         * Inquire as to the amount of memeory available for a given type\n         */\n        brmem_inquire_cbfn *inquire;\n\n    } br_allocator;\n\n    /*\n     * Classes of resource that brender allocates\n     *\n     * Valid values are 1 to 255\n     */\n    enum br_memory_classes\n    {\n        /*\n         * System classes\n         */\n        BR_MEMORY_SCRATCH = 1,\n        BR_MEMORY_PIXELMAP,\n        BR_MEMORY_PIXELS,\n        BR_MEMORY_VERTICES,\n        BR_MEMORY_FACES,\n        BR_MEMORY_GROUPS,\n        BR_MEMORY_MODEL,\n        BR_MEMORY_MATERIAL,\n        BR_MEMORY_MATERIAL_INDEX,\n        BR_MEMORY_ACTOR,\n        BR_MEMORY_PREPARED_VERTICES,\n        BR_MEMORY_PREPARED_FACES,\n        BR_MEMORY_LIGHT,\n        BR_MEMORY_CAMERA,\n        BR_MEMORY_BOUNDS,\n        BR_MEMORY_CLIP_PLANE,\n        BR_MEMORY_STRING,\n        BR_MEMORY_REGISTRY,\n        BR_MEMORY_TRANSFORM,\n        BR_MEMORY_RESOURCE_CLASS,\n        BR_MEMORY_FILE,\n        BR_MEMORY_ANCHOR,\n        BR_MEMORY_POOL,\n        BR_MEMORY_RENDER_MATERIAL,\n        BR_MEMORY_DATAFILE,\n        BR_MEMORY_IMAGE,\n        BR_MEMORY_IMAGE_ARENA,\n        BR_MEMORY_IMAGE_SECTIONS,\n        BR_MEMORY_IMAGE_NAMES,\n        BR_MEMORY_EXCEPTION_HANDLER,\n\n        /*\n         * Application classes\n         */\n        BR_MEMORY_APPLICATION = 0x80,\n\n        /*\n         * User defined classed are BR_MEMORY_APPLICATION + 1 ... 127\n         */\n        BR_MEMORY_MAX = 256\n    };\n\n    /*\n     * A resource class structure\n     */\n    typedef void BR_CALLBACK br_resourcefree_cbfn(void *res, br_uint_8 res_class, br_size_t size);\n\n    typedef struct br_resource_class\n    {\n        char *identifier;\n        br_uint_8 res_class;\n        br_resourcefree_cbfn *free_cb;\n    } br_resource_class;\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/bwld.h",
    "content": "/***************************************************************************\n\n    bwld.h: BRender world class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    BASE ---> BWLD\n\n***************************************************************************/\n#ifndef BWLD_H\n#define BWLD_H\n\n// Callback function per BACT when it's rendered, passing the 2D bounds\ntypedef void FNBACTREND(PBACT pbact, RC *prc);\ntypedef FNBACTREND *PFNBACTREND;\n\n// Callback function per root BACT when we begin rendering\ntypedef void FNBEGINREND(PBACT pbact);\ntypedef FNBEGINREND *PFNBEGINREND;\n\n// Callback function per root BACT to get the rendered rectangle\ntypedef void FNGETRECT(PBACT pbact, RC *prc);\ntypedef FNGETRECT *PFNGETRECT;\n\n/****************************************\n    The BRender world class\n****************************************/\ntypedef class BWLD *PBWLD;\n#define BWLD_PAR BASE\n#define kclsBWLD 'BWLD'\nclass BWLD : public BWLD_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    static bool _fBRenderInited; // Whether BrBegin() has been called\n    RC _rcBuffer;                // Bounds of the rendering space\n    RC _rcView;                  // Bounds of view\n    BACT _bactWorld;             // The world root actor\n    BACT _bactCamera;            // The camera actor\n    BCAM _bcam;                  // The camera data\n    PGPT _pgptBackground;        // Background RGB bitmap\n    PGPT _pgptWorking;           // RGB working buffer to render into\n    PGPT _pgptStretch;           // Stretched working buffer (if _fhalfY)\n    BPMP _bpmpRGB;               // BRender wrapper around _pgptWorking\n    PZBMP _pzbmpBackground;      // Background Z-buffer\n    PZBMP _pzbmpWorking;         // Working Z-buffer to render into\n    BPMP _bpmpZ;                 // BRender wrapper around _pzbmpWorking\n    PREGN _pregnDirtyWorking;    // Rgn to copy from bkgd to working buffer\n    PREGN _pregnDirtyScreen;     // Rgn to copy from working buffer to screen\n    bool _fHalfX;                // Render at half horizontal resolution\n    bool _fHalfY;                // Render at half vertical resolution\n    bool _fWorldChanged;         // Need to rerender?\n    PFNBEGINREND _pfnbeginrend;  // Callback to each actor before rendering\n    PFNBACTREND _pfnbactrend;    // Callback when an actor is rendered\n    PFNGETRECT _pfngetrect;      // Callback to get an actor's bounding rect\n    PBACT _pbactClosestClicked;  // The closest actor that has been clicked\n    BRS _dzpClosestClicked;      // Distance of the closest clicked actor\n    // Keep reference to last background in case we switch to/from halfmode:\n    PCRF _pcrf;\n    CTG _ctgRGB;\n    CNO _cnoRGB;\n    CTG _ctgZ;\n    CNO _cnoZ;\n\n  protected:\n    BWLD(void)\n    {\n    }\n    bool _FInit(long dxp, long dyp, bool fHalfX, bool fHalfY);\n    bool _FInitBuffers(long dxp, long dyp, bool fHalfX, bool fHalfY);\n    void _CleanWorkingBuffers(void);\n    static int BR_CALLBACK _FFilter(BACT *pbact, PBMDL pbmdl, PBMTL pbmtl, BVEC3 *pbvec3RayPos, BVEC3 *pbvec3RayDir,\n                                    BRS dzpNear, BRS dzpFar, void *pbwld);\n    static void BR_CALLBACK _ActorRendered(PBACT pbact, PBMDL pbmdl, PBMTL pbmtl, br_uint_8 bStyle,\n                                           br_matrix4 *pbmat4ModelToScreen, br_int_32 bounds[4]);\n\n  public:\n    // Constructors and destructors\n    static PBWLD PbwldNew(long dxp, long dyp, bool fHalfX = fFalse, bool fhalfY = fFalse);\n    ~BWLD();\n    static void CloseBRender(void);\n\n    // Dirtying the BRender world and bitmap\n    void MarkDirty(void)\n    {\n        _fWorldChanged = fTrue;\n    }\n    void MarkRenderedRegn(PGOB pgob, long dxp, long dyp);\n\n    // Background stuff\n    bool FSetBackground(PCRF pcrf, CTG ctgRGB, CNO cnoRGB, CTG ctgZ, CNO cnoZ);\n    void SetCamera(BMAT34 *pbmat34, BRS zrHither, BRS zrYon, BRA aFov);\n    void GetCamera(BMAT34 *pbmat34, BRS *pzrHither = pvNil, BRS *pzrYon = pvNil, BRA *paFov = pvNil);\n\n    // Actor stuff\n    void AddActor(BACT *pbact);\n    bool FClickedActor(long xp, long yp, BACT **ppbact);\n    void IterateActorsInPt(br_pick2d_cbfn *pfnCallback, void *pvArg, long xp, long yp);\n    void SetBeginRenderCallback(PFNBEGINREND pfnbeginrend)\n    {\n        _pfnbeginrend = pfnbeginrend;\n    }\n    void SetActorRenderedCallback(PFNBACTREND pfnbactrend)\n    {\n        _pfnbactrend = pfnbactrend;\n    }\n    void SetGetRcCallback(PFNGETRECT pfngetrect)\n    {\n        _pfngetrect = pfngetrect;\n    }\n\n    // Rendering stuff\n    bool FSetHalfMode(bool fHalfX, bool fHalfY);\n    bool FHalfX(void)\n    {\n        return _fHalfX;\n    }\n    bool FHalfY(void)\n    {\n        return _fHalfY;\n    }\n    void Render(void);\n    void Prerender(void);\n    void Unprerender(void);\n    void Draw(PGNV pgnv, RC *prcClip, long dxp, long dyp);\n\n#ifdef DEBUG\n    bool FWriteBmp(PFNI pfni);\n#endif // DEBUG\n};\n\n#endif BWLD_H\n"
  },
  {
    "path": "bren/inc/camera.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: camera.h 1.4 1995/05/25 13:37:27 sam Exp $\n * $Locker:  $\n *\n * Definitons for a camera\n */\n#ifndef _CAMERA_H_\n#define _CAMERA_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    enum\n    {\n        BR_CAMERA_PARALLEL,\n        BR_CAMERA_PERSPECTIVE_FOV,\n        BR_CAMERA_PERSPECTIVE_WHD\n    };\n\n/*\n * Backwards compatibility\n */\n#define BR_CAMERA_PERSPECTIVE BR_CAMERA_PERSPECTIVE_FOV\n\n    typedef struct br_camera\n    {\n        /*\n         * Optional identifier\n         */\n        char *identifier;\n\n        /*\n         * Type of camera\n         */\n        br_uint_8 type;\n\n        /*\n         * Field of view\n         * (BR_CAMERA_PERSPECTIVE_FOV only)\n         */\n        br_angle field_of_view;\n\n        /*\n         * Front and back of view volume in view coordinates\n         */\n        br_scalar hither_z;\n        br_scalar yon_z;\n\n        /*\n         * Aspect ratio of viewport\n         * (BR_CAMERA_PERSPECTIVE_FOV only)\n         */\n        br_scalar aspect;\n\n        /*\n         * Width and height of projection surface\n         * (BR_CAMERA_PERSPECTIVE_WHD and BR_CAMERA_PARALLEL only)\n         */\n\n        br_scalar width;\n        br_scalar height;\n\n        /*\n         * Distance of projection plane from center of projection\n         * (BR_CAMERA_PERSPECTIVE_WHD only)\n         */\n        br_scalar distance;\n\n    } br_camera;\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/colour.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: colour.h 1.3 1995/02/22 21:37:03 sam Exp $\n * $Locker:  $\n *\n * Colour type and macros\n *\n */\n#ifndef _COLOUR_H_\n#define _COLOUR_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    typedef unsigned long int br_colour;\n\n#define BR_COLOUR_RGB(r, g, b) ((((unsigned int)(r)) << 16) | (((unsigned int)(g)) << 8) | ((unsigned int)(b)))\n\n#define BR_COLOUR_RGBA(r, g, b, a)                                                                                     \\\n        ((((unsigned int)(a))<<24) |\\\n\t\t((((unsigned int)(r))<<16) |\\\n\t\t(((unsigned int)(g))<<8) |\\\n\t\t((unsigned int)(b)))\n\n#define BR_ALPHA(c) ((c >> 24) & 0xFF)\n#define BR_RED(c) ((c >> 16) & 0xFF)\n#define BR_GRN(c) ((c >> 8) & 0xFF)\n#define BR_BLU(c) ((c)&0xFF)\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/compiler.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: compiler.h 1.20 1995/05/25 13:37:28 sam Exp $\n * $Locker: sam $\n *\n * Misc host compiler configuration (types & special declarators etc.)\n */\n#ifndef _COMPILER_H_\n#define _COMPILER_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    /*\n     * Fixed bitsize integers\n     */\n    typedef signed long br_int_32;\n    typedef unsigned long br_uint_32;\n\n    typedef signed short br_int_16;\n    typedef unsigned short br_uint_16;\n\n    typedef signed char br_int_8;\n    typedef unsigned char br_uint_8;\n\n    /*\n     * Generic size type (in case target environment does not have size_t)\n     */\n    typedef unsigned int br_size_t;\n\n    /*\n     * Boolean type\n     */\n    typedef int br_boolean;\n\n#define BR_TRUE 1\n#define BR_FALSE 0\n\n#define BR_BOOLEAN(a) ((a) != 0)\n\n/**\n ** Compiler specific declarations\n **\n *\n * BR_PUBLIC_ENTRY are the declarators for public entry points into the library\n *\n * BR_CALLBACK are the declarators for function pointers to callbacks\n *\n * BR_ASM_DATA is the declarator for data that is shared with ASM files\n *\n * BR_ASM_CALL is the declarator for function declarations that are ASM functions\n * called from C\n *\n * BR_ASM_CALLBACK is the declarator for function definitions that are C functions\n * called from ASM\n *\n * BR_SUFFIX_HOST is a string used for banners/titles etc\n *\n * br_framebuffer_ptr is a type used for pointing at the pixels of a frame buffer\n *\n * BR_HAS_FAR is !0 if language supports __far pointers\n */\n\n/*\n * WATCOM C/C++ 32\n */\n#if defined(__WATCOMC__)\n\n/*\n * Use the current default calling convention\n */\n#if defined(__TARGET_MSC__)\n\n#define stricmp _stricmp\n#define strnicmp _strnicmp\n#define memccpy _memccpy\n\n#pragma aux __cdecl \"_*\" parm caller[] modify[eax ecx edx];\n\n#define BR_PUBLIC_ENTRY __cdecl\n#define BR_CALLBACK __cdecl\n#else\n#define BR_PUBLIC_ENTRY\n#define BR_CALLBACK\n#endif\n\n#ifdef __cplusplus\n#define BR_ASM_DATA\n#define BR_ASM_DATA_EXTRA(x)\n#else\n#define BR_ASM_DATA __cdecl\n#endif\n\n#define BR_ASM_CALL __cdecl\n#define BR_ASM_CALLBACK __cdecl\n\n#define BR_SUFFIX_HOST \"-WTC\"\n\n#define BR_HAS_FAR 1\n/*\n * Stop unreferenced variables producing a warning\n * Things like \"rcsid\" and unused fucntion arguments\n */\n#pragma off(unreferenced);\n\n/*\n * Zortech C++\n */\n#elif defined(__ZTC__)\n#define BR_PUBLIC_ENTRY __cdecl\n#define BR_CALLBACK __cdecl\n\n#define BR_ASM_DATA __cdecl\n#define BR_ASM_CALL __cdecl\n#define BR_ASM_CALLBACK __cdecl\n\n#define BR_SUFFIX_HOST \"-ZTC\"\n\n#define BR_HAS_FAR 1\n\n/*\n * GNU C\n */\n#elif defined(__GNUC__)\n\n#define BR_PUBLIC_ENTRY\n#define BR_CALLBACK\n\n#define BR_ASM_DATA\n#define BR_ASM_CALL\n#define BR_ASM_CALLBACK\n\n#define BR_SUFFIX_HOST \"-GCC\"\n\n#define BR_HAS_FAR 0\n\n/*\n * Apple MPW C\n */\n#elif defined(__MPW__)\n#define BR_PUBLIC_ENTRY\n#define BR_CALLBACK\n\n#define BR_ASM_DATA\n#define BR_ASM_CALL\n#define BR_ASM_CALLBACK\n\n#define BR_SUFFIX_HOST \"-MPW\"\n\n#define BR_HAS_FAR 0\n\n/*\n * Intel Proton\n */\n#elif defined(__PROTONC__)\n#define BR_PUBLIC_ENTRY __cdecl\n#define BR_CALLBACK __cdecl\n\n#define BR_ASM_DATA __cdecl\n#define BR_ASM_CALL __cdecl\n#define BR_ASM_CALLBACK __cdecl\n\n#define BR_SUFFIX_HOST \"-PROTON\"\n\n#define BR_HAS_FAR 1\n\n/*\n * Microsoft Visual C++\n */\n#elif defined(_MSC_VER)\n#define BR_PUBLIC_ENTRY __cdecl\n#define BR_CALLBACK __cdecl\n\n#define BR_ASM_DATA __cdecl\n#define BR_ASM_CALL __cdecl\n#define BR_ASM_CALLBACK __cdecl\n\n#define BR_SUFFIX_HOST \"-VISUALC\"\n\n#define BR_HAS_FAR 0\n\n/*\n * Metaware High-C Version 1\n */\n#elif defined(__HIGHC_V1__)\n\n#pragma On(Align_members)\n\n#define BR_PUBLIC_ENTRY\n#define BR_CALLBACK\n\n#define BR_ASM_DATA\n#define BR_ASM_CALL\n#define BR_ASM_CALLBACK\n\n#define BR_SUFFIX_HOST \"-HIGHC1\"\n\n#define BR_HAS_FAR 0\n\n#define stricmp _stricmp\n\n/*\n * Metaware High-C Version 3\n */\n#elif defined(__HIGHC__)\n\n#pragma Align_members(4)\n\n#define BR_PUBLIC_ENTRY\n#define BR_CALLBACK\n\n#define BR_ASM_DATA\n#define BR_ASM_CALL\n#define BR_ASM_CALLBACK\n\n#define BR_SUFFIX_HOST \"-HIGHC3\"\n\n#define BR_HAS_FAR 0\n\n#define stricmp _stricmp\n\n/*\n * Borland BC 4\n */\n#elif defined(__BORLANDC__)\n#define BR_PUBLIC_ENTRY\n#define BR_CALLBACK\n\n#define BR_ASM_DATA __cdecl\n#define BR_ASM_CALL __cdecl\n#define BR_ASM_CALLBACK __cdecl\n\n#define BR_SUFFIX_HOST \"-BORLAND\"\n\n#define BR_HAS_FAR 0\n\n/*\n * IBM CSet++\n */\n#elif defined(__IBMC__)\n#define BR_PUBLIC_ENTRY _System\n#define BR_CALLBACK _System\n\n#define BR_ASM_DATA\n#define BR_ASM_CALL _System\n#define BR_ASM_CALLBACK _System\n\n#define BR_SUFFIX_HOST \"-CSET\"\n\n#define BR_HAS_FAR 0\n\n#endif\n\n#if defined(__H2INC__)\n/*\n * Avoid some tokens that masm chokes on\n */\n#define type _type\n#define a _a\n#define b _b\n#define c _c\n#define width _width\n#define end _end\n\n/*\n * Supress compiler specific declarators\n */\n#undef BR_CALLBACK\n#undef BR_ASM_DATA\n#undef BR_ASM_CALL\n#undef BR_ASM_CALLBACK\n\n#define BR_CALLBACK\n#define BR_ASM_DATA\n#define BR_ASM_CALL\n#define BR_ASM_CALLBACK\n\n#endif\n\n#if DEBUG\n#define BR_SUFFIX_DEBUG \"-DEBUG\"\n#else\n#define BR_SUFFIX_DEBUG \"\"\n#endif\n\n/*\n * Macros for producing banners & copyright messages\n */\n#define BR_BANNER(title, year, revision)                                                                               \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        static char _revision[] = revision;                                                                            \\\n        fprintf(stderr, title);                                                                                        \\\n        fwrite(_revision + 10, 1, sizeof(_revision) - 12, stderr);                                                     \\\n        fprintf(stderr, \"Copyright (C) \" year \" by Argonaut Technologies Limited\\n\");                                  \\\n    } while (0);\n\n/*\n * Useful macro for sizing an array\n */\n#define BR_ASIZE(a) (sizeof(a) / sizeof((a)[0]))\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/custsupt.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: custsupt.h 1.2 1995/02/22 21:37:05 sam Exp $\n * $Locker:  $\n *\n * Definitions for support routines available during render callbacks\n *\n */\n#ifndef _CUSTSUPT_H_\n#define _CUSTSUPT_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n/*\n * Outcode bits\n */\n#define OUTCODE_LEFT 0x00000001\n#define OUTCODE_RIGHT 0x00000002\n#define OUTCODE_TOP 0x00000004\n#define OUTCODE_BOTTOM 0x00000008\n#define OUTCODE_HITHER 0x00000010\n#define OUTCODE_YON 0x00000020\n\n#define OUTCODE_USER 0x00000040\n#define OUTCODE_USER_ALL 0x00000FC0\n\n#define OUTCODES_ALL 0x00000FFF\n\n#define OUTCODE_N_LEFT 0x00010000\n#define OUTCODE_N_RIGHT 0x00020000\n#define OUTCODE_N_TOP 0x00040000\n#define OUTCODE_N_BOTTOM 0x00080000\n#define OUTCODE_N_HITHER 0x00100000\n#define OUTCODE_N_YON 0x00200000\n#define OUTCODE_N_USER 0x00400000\n#define OUTCODE_N_USER_ALL 0x0FC00000\n\n#define OUTCODES_NOT 0x0FFF0000\n\n    /*\n     * Values for on screen test\n     */\n    enum\n    {\n        OSC_REJECT,\n        OSC_PARTIAL,\n        OSC_ACCEPT\n    };\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/fixed.h",
    "content": "/*\n * Copyright (c) 1992,1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: fixed.h 1.17 1995/02/22 21:37:06 sam Exp $\n * $Locker:  $\n */\n#ifndef _FIXED_H_\n#define _FIXED_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n#ifndef INLINE_FIXED\n#define INLINE_FIXED 1\n#endif\n\n    /*\n     * Fixed point types\n     */\n    typedef long br_fixed_ls;   /* Long Signed fixed\t\t\t15.16 */\n    typedef short br_fixed_lsf; /* Long Signed fraction\t\t\t 0.15 */\n\n    typedef unsigned long br_fixed_lu;   /* Long unsigned fixed\t\t\t16.16 */\n    typedef unsigned short br_fixed_luf; /* Long unsigned fixed fraction  0.16 */\n\n    typedef short br_fixed_ss; /* Short Signed fixed\t\t\t 7.8  */\n\n    typedef char br_fixed_ssf; /* Short Signed fraction\t\t 0.7  */\n\n    typedef unsigned short br_fixed_su; /* Short unsigned fixed\t\t\t 8.8  */\n    typedef unsigned char br_fixed_suf; /* Short unsigned fixed fraction 0.8  */\n\n/*\n * 1 in various fixed point forms\n */\n#define BR_ONE_LS (1 << 16)\n#define BR_ONE_LSF (1 << 15)\n#define BR_ONE_LU (1 << 16)\n#define BR_ONE_LUF (1 << 16)\n\n#define BR_ONE_SS (1 << 8)\n#define BR_ONE_SSF (1 << 7)\n#define BR_ONE_SU (1 << 8)\n#define BR_ONE_SUF (1 << 8)\n\n#define BrIntToFixed(i) ((i) << 16)\n#define BrFixedToInt(i) ((i) >> 16)\n#define BrFloatToFixed(f) ((br_scalar)((f) * (float)BR_ONE_LS))\n#define BrFixedToFloat(s) ((s) * (1.0 / (float)BR_ONE_LS))\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/fmt.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: fmt.h 1.5 1995/02/22 21:37:06 sam Exp $\n * $Locker:  $\n *\n * Definitions for foreign file format support\n */\n#ifndef _FMT_H_\n#define _FMT_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    /*\n     * Type of things to load from file\n     */\n    enum\n    {\n        BR_FMT_MODELS = 0x0001,   /* Create model definitions from file\t*/\n        BR_FMT_ACTORS = 0x0002,   /* Create actor\t\t\t\t\t\t\t*/\n        BR_FMT_LIGHTS = 0x0004,   /* Create lights instances\t\t\t\t*/\n        BR_FMT_CAMERAS = 0x0008,  /* Create cameras instances\t\t\t\t*/\n        BR_FMT_MATERIALS = 0x0010 /* Create materials\t\t\t\t\t\t*/\n    };\n\n    /*\n     * Interchange structure for passing to file format loaders\n     *\n     * XXX Not yet used by anything\n     */\n    typedef struct br_fmt_results\n    {\n        /*\n         * pointers to tables of each loaded allocated by BrFMTxxxLoad()\n         */\n        br_model *models;\n        br_model *materials;\n        br_model *lights;\n        br_model *cameras;\n        br_model *actors;\n\n        /*\n         * Size of each allocated array\n         */\n        int nmodels;\n        int nmaterials;\n        int nlights;\n        int ncameras;\n        int nactors;\n\n    } br_fmt_results;\n\n#ifndef _FMTPROTO_H_\n#include \"fmtproto.h\"\n#endif\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/fmtproto.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: fmtproto.h 1.8 1995/05/30 16:57:38 sam Exp $\n * $Locker:  $\n *\n * Function prototypes for foreign file format support\n */\n#ifndef _FMTPROTO_H_\n#define _FMTPROTO_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    /*\n     * Eric Haines' NFF format\n     */\n    br_model *BR_PUBLIC_ENTRY BrFmtNFFLoad(char *name);\n\n    /*\n     * 3D Studio .ASC files\n     */\n    br_uint_32 BR_PUBLIC_ENTRY BrFmtASCLoad(char *name, br_model **mtable, br_uint_16 max_models);\n\n    /*\n     * Script files\n     */\n    br_uint_32 BR_PUBLIC_ENTRY BrFmtScriptMaterialLoadMany(char *filename, br_material **materials, br_uint_16 num);\n    br_material *BR_PUBLIC_ENTRY BrFmtScriptMaterialLoad(char *filename);\n\n    br_uint_32 BR_PUBLIC_ENTRY BrFmtScriptMaterialSaveMany(char *filename, br_material **materials, br_uint_16 num);\n    br_uint_32 BR_PUBLIC_ENTRY BrFmtScriptMaterialSave(char *filename, br_material *ptr);\n\n    /*\n     * Windows .BMP files\n     */\n    br_pixelmap *BR_PUBLIC_ENTRY BrFmtBMPLoad(char *name, br_uint_32 flags);\n\n    /*\n     * .TGA files\n     */\n    br_pixelmap *BR_PUBLIC_ENTRY BrFmtTGALoad(char *name, br_uint_32 flags);\n\n    /*\n     * .GIF files\n     */\n    br_pixelmap *BR_PUBLIC_ENTRY BrFmtGIFLoad(char *name, br_uint_32 flags);\n\n    /*\n     * .IFF/.LBM files\n     */\n    br_pixelmap *BR_PUBLIC_ENTRY BrFmtIFFLoad(char *name, br_uint_32 flags);\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/fwpextra.h",
    "content": ""
  },
  {
    "path": "bren/inc/fwproto.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: fwproto.h 1.42 1995/06/30 16:08:49 sam Exp $\n * $Locker: sam $\n *\n * Function prototypes for brender framework\n */\n#ifndef _FWPROTO_H_\n#define _FWPROTO_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n#ifndef _NO_PROTOTYPES\n    /**\n     ** Fixed Point\n     **/\n\n    /* result = abs(a)\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedAbs(br_fixed_ls a);\n\n    /* result = a*b\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedMul(br_fixed_ls a, br_fixed_ls b);\n\n    /* result = a*b + c*d\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedMac2(br_fixed_ls a, br_fixed_ls b, br_fixed_ls c, br_fixed_ls d);\n\n    /* result = a*b + c*d + e*f\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedMac3(br_fixed_ls a, br_fixed_ls b, br_fixed_ls c, br_fixed_ls d, br_fixed_ls e,\n                                        br_fixed_ls f);\n\n    /* result = a*b + c*d + e*f + g*h\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedMac4(br_fixed_ls a, br_fixed_ls b, br_fixed_ls c, br_fixed_ls d, br_fixed_ls e,\n                                        br_fixed_ls f, br_fixed_ls g, br_fixed_ls h);\n\n    /* result = a*a\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedSqr(br_fixed_ls a);\n\n    /* result = a*a + b*b\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedSqr2(br_fixed_ls a, br_fixed_ls b);\n\n    /* result = a*a + b*b + c*c\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedSqr3(br_fixed_ls a, br_fixed_ls b, br_fixed_ls c);\n    /* result = a*a + b*b + c*c + d*d\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedSqr4(br_fixed_ls a, br_fixed_ls b, br_fixed_ls c, br_fixed_ls d);\n\n    /* result = sqrt(a*a + b*b)\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedLength2(br_fixed_ls a, br_fixed_ls b);\n\n    /* result = sqrt(a*a + b*b + c*c)\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedLength3(br_fixed_ls a, br_fixed_ls b, br_fixed_ls c);\n\n    /* result = sqrt(a*a + b*b + c*c + d*d)\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedLength4(br_fixed_ls a, br_fixed_ls b, br_fixed_ls c, br_fixed_ls d);\n\n    /* result = 1/sqrt(a*a + b*b) (low precision)\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedRLength2(br_fixed_ls a, br_fixed_ls b);\n\n    /* result = 1/sqrt(a*a + b*b + c*c) (low precision)\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedRLength3(br_fixed_ls a, br_fixed_ls b, br_fixed_ls c);\n\n    /* result = 1/sqrt(a*a + b*b + c*c + d*d) (low precision)\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedRLength4(br_fixed_ls a, br_fixed_ls b, br_fixed_ls c, br_fixed_ls d);\n\n    /* result = a/b\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedDiv(br_fixed_ls a, br_fixed_ls b);\n\n    /* result = a/b * 2^31\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedDivF(br_fixed_ls a, br_fixed_ls b);\n\n    /* result = a/b (rounded towards 0)\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedDivR(br_fixed_ls a, br_fixed_ls b);\n\n    /* result = a*b/c\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedMulDiv(br_fixed_ls a, br_fixed_ls b, br_fixed_ls c);\n\n    /* result = (a*b + c*d)/e\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedMac2Div(br_fixed_ls a, br_fixed_ls b, br_fixed_ls c, br_fixed_ls d, br_fixed_ls e);\n\n    /* result = (a*b + c*d + e*f)/g\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedMac3Div(br_fixed_ls a, br_fixed_ls b, br_fixed_ls c, br_fixed_ls d, br_fixed_ls e,\n                                           br_fixed_ls f, br_fixed_ls g);\n\n    /* result = (a*b + c*d + e*f + g*h)/i\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedMac4Div(br_fixed_ls a, br_fixed_ls b, br_fixed_ls c, br_fixed_ls d, br_fixed_ls e,\n                                           br_fixed_ls f, br_fixed_ls g, br_fixed_ls h, br_fixed_ls i);\n    /* result = 1.0/a\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedRcp(br_fixed_ls a);\n\n    /*\n     * Various combinations whith fractions\n     */\n\n    /* result = a*b + c*d - a & c are fractions\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedFMac2(br_fixed_lsf a, br_fixed_ls b, br_fixed_lsf c, br_fixed_ls d);\n\n    /* result = a*b + c*d + e*f - a,c & e are fractions\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedFMac3(br_fixed_lsf a, br_fixed_ls b, br_fixed_lsf c, br_fixed_ls d, br_fixed_lsf e,\n                                         br_fixed_ls f);\n\n    /* result = a*b + c*d + e*f + g*h (a,c,e,g are fractions)\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedFMac4(br_fixed_ls a, br_fixed_ls b, br_fixed_ls c, br_fixed_ls d, br_fixed_ls e,\n                                         br_fixed_ls f, br_fixed_ls g, br_fixed_ls h);\n\n    /*\n     * Misc. support  functions\n     */\n    br_fixed_ls BR_ASM_CALL BrFixedSin(br_angle a);\n\n    br_fixed_ls BR_ASM_CALL BrFixedCos(br_angle a);\n\n    br_angle BR_ASM_CALL BrFixedASin(br_fixed_ls s);\n\n    br_angle BR_ASM_CALL BrFixedACos(br_fixed_ls c);\n\n    br_angle BR_ASM_CALL BrFixedATan2(br_fixed_ls x, br_fixed_ls y);\n\n    br_angle BR_ASM_CALL BrFixedATan2Fast(br_fixed_ls x, br_fixed_ls y);\n\n    br_fixed_ls BR_PUBLIC_ENTRY BrFixedSqrt(br_fixed_ls a);\n    br_fixed_ls BR_PUBLIC_ENTRY BrFixedPow(br_fixed_ls a, br_fixed_ls b);\n\n    /*\n     * Integer sqrt functions\n     */\n    br_uint_32 BR_ASM_CALL BrSqrt(br_uint_32 a);\n    br_uint_32 BR_ASM_CALL BrFastSqrt(br_uint_32 a);\n    br_uint_32 BR_ASM_CALL BrFastRSqrt(br_uint_32 a);\n\n/*\n * Optional inline fixed point maths\n */\n#ifndef NO_PROTOTYPES\n#if INLINE_FIXED\n\n#ifdef __GNUC__\n#include \"g386ifix.h\"\n#endif\n\n#ifdef __WATCOMC__\n#include \"wtcifix.h\"\n#endif\n\n#ifdef _MSC_VER\n#include \"mscifix.h\"\n#endif\n\n#endif\n#endif\n\n    /*\n     * Setup\n     */\n    void BR_PUBLIC_ENTRY BrBegin(void);\n    void BR_PUBLIC_ENTRY BrEnd(void);\n\n    /*\n     * XXX - All the Add/Remove/Find/Count/Enum calls could ( when !(DEBUG | PARANOID))\n     * be #defined in terms of the core Registry fns. with appropriate casts.\n     */\n    /*\n     * Material Handling\n     */\n    br_material *BR_PUBLIC_ENTRY BrMaterialAdd(br_material *material);\n    br_material *BR_PUBLIC_ENTRY BrMaterialRemove(br_material *material);\n    br_material *BR_PUBLIC_ENTRY BrMaterialFind(char *pattern);\n    typedef br_material *BR_CALLBACK br_material_find_cbfn(char *name);\n    br_material_find_cbfn *BR_PUBLIC_ENTRY BrMaterialFindHook(br_material_find_cbfn *hook);\n    br_uint_32 BR_PUBLIC_ENTRY BrMaterialAddMany(br_material **items, int n);\n    br_uint_32 BR_PUBLIC_ENTRY BrMaterialRemoveMany(br_material **items, int n);\n    br_uint_32 BR_PUBLIC_ENTRY BrMaterialFindMany(char *pattern, br_material **items, int max);\n    br_uint_32 BR_PUBLIC_ENTRY BrMaterialCount(char *pattern);\n\n    typedef br_uint_32 BR_CALLBACK br_material_enum_cbfn(br_material *item, void *arg);\n    br_uint_32 BR_PUBLIC_ENTRY BrMaterialEnum(char *pattern, br_material_enum_cbfn *callback, void *arg);\n\n    void BR_PUBLIC_ENTRY BrMaterialUpdate(br_material *material, br_uint_16 flags);\n\n    br_material *BR_PUBLIC_ENTRY BrMaterialAllocate(char *name);\n    void BR_PUBLIC_ENTRY BrMaterialFree(br_material *m);\n\n    /*\n     * Model Handling\n     */\n    br_model *BR_PUBLIC_ENTRY BrModelAdd(br_model *model);\n    br_model *BR_PUBLIC_ENTRY BrModelRemove(br_model *model);\n    br_model *BR_PUBLIC_ENTRY BrModelFind(char *pattern);\n    typedef br_model *BR_CALLBACK br_model_find_cbfn(char *name);\n    br_model_find_cbfn *BR_PUBLIC_ENTRY BrModelFindHook(br_model_find_cbfn *hook);\n    br_uint_32 BR_PUBLIC_ENTRY BrModelAddMany(br_model **items, int n);\n    br_uint_32 BR_PUBLIC_ENTRY BrModelRemoveMany(br_model **items, int n);\n    br_uint_32 BR_PUBLIC_ENTRY BrModelFindMany(char *pattern, br_model **items, int max);\n    br_uint_32 BR_PUBLIC_ENTRY BrModelCount(char *pattern);\n\n    typedef br_uint_32 BR_CALLBACK br_model_enum_cbfn(br_model *item, void *arg);\n\n    br_uint_32 BR_PUBLIC_ENTRY BrModelEnum(char *pattern, br_model_enum_cbfn *callback, void *arg);\n\n    void BR_PUBLIC_ENTRY BrModelUpdate(br_model *model, br_uint_16 flags);\n    void BR_PUBLIC_ENTRY BrModelApplyMap(br_model *model, int map_type, br_matrix34 *xform);\n    br_matrix34 *BR_PUBLIC_ENTRY BrModelFitMap(br_model *model, int axis_0, int axis_1, br_matrix34 *transform);\n\n    br_model *BR_PUBLIC_ENTRY BrModelAllocate(char *name, int nvertices, int nfaces);\n    void BR_PUBLIC_ENTRY BrModelFree(br_model *m);\n\n    /*\n     * Texture handling\n     */\n    br_pixelmap *BR_PUBLIC_ENTRY BrMapAdd(br_pixelmap *pixelmap);\n    br_pixelmap *BR_PUBLIC_ENTRY BrMapRemove(br_pixelmap *pixelmap);\n    br_pixelmap *BR_PUBLIC_ENTRY BrMapFind(char *pattern);\n    typedef br_pixelmap *BR_CALLBACK br_map_find_cbfn(char *name);\n    br_map_find_cbfn *BR_PUBLIC_ENTRY BrMapFindHook(br_map_find_cbfn *hook);\n    br_uint_32 BR_PUBLIC_ENTRY BrMapAddMany(br_pixelmap **items, int n);\n    br_uint_32 BR_PUBLIC_ENTRY BrMapRemoveMany(br_pixelmap **items, int n);\n    br_uint_32 BR_PUBLIC_ENTRY BrMapFindMany(char *pattern, br_pixelmap **items, int max);\n    br_uint_32 BR_PUBLIC_ENTRY BrMapCount(char *pattern);\n\n    typedef br_uint_32 BR_CALLBACK br_map_enum_cbfn(br_pixelmap *item, void *arg);\n    br_uint_32 BR_PUBLIC_ENTRY BrMapEnum(char *pattern, br_map_enum_cbfn *callback, void *arg);\n\n    void BR_PUBLIC_ENTRY BrMapUpdate(br_pixelmap *item, br_uint_16 flags);\n\n    /*\n     * Table handling\n     */\n    br_pixelmap *BR_PUBLIC_ENTRY BrTableAdd(br_pixelmap *pixelmap);\n    br_pixelmap *BR_PUBLIC_ENTRY BrTableRemove(br_pixelmap *pixelmap);\n    br_pixelmap *BR_PUBLIC_ENTRY BrTableFind(char *pattern);\n    typedef br_pixelmap *BR_CALLBACK br_table_find_cbfn(char *name);\n    br_table_find_cbfn *BR_PUBLIC_ENTRY BrTableFindHook(br_table_find_cbfn *hook);\n    br_uint_32 BR_PUBLIC_ENTRY BrTableAddMany(br_pixelmap **items, int n);\n    br_uint_32 BR_PUBLIC_ENTRY BrTableRemoveMany(br_pixelmap **items, int n);\n    br_uint_32 BR_PUBLIC_ENTRY BrTableFindMany(char *pattern, br_pixelmap **items, int max);\n    br_uint_32 BR_PUBLIC_ENTRY BrTableCount(char *pattern);\n\n    typedef br_uint_32 BR_CALLBACK br_table_enum_cbfn(br_pixelmap *item, void *arg);\n\n    br_uint_32 BR_PUBLIC_ENTRY BrTableEnum(char *pattern, br_table_enum_cbfn *callback, void *arg);\n\n    void BR_PUBLIC_ENTRY BrTableUpdate(br_pixelmap *item, br_uint_16 flags);\n\n    /*\n     * Resource class handling\n     */\n    br_resource_class *BR_PUBLIC_ENTRY BrResClassAdd(br_resource_class *pixelmap);\n    br_resource_class *BR_PUBLIC_ENTRY BrResClassRemove(br_resource_class *pixelmap);\n    br_resource_class *BR_PUBLIC_ENTRY BrResClassFind(char *pattern);\n    typedef br_resource_class *BR_CALLBACK br_resclass_find_cbfn(char *name);\n    br_resclass_find_cbfn *BR_PUBLIC_ENTRY BrResClassFindHook(br_resclass_find_cbfn *hook);\n    br_uint_32 BR_PUBLIC_ENTRY BrResClassAddMany(br_resource_class **items, int n);\n    br_uint_32 BR_PUBLIC_ENTRY BrResClassRemoveMany(br_resource_class **items, int n);\n    br_uint_32 BR_PUBLIC_ENTRY BrResClassFindMany(char *pattern, br_resource_class **items, int max);\n    br_uint_32 BR_PUBLIC_ENTRY BrResClassCount(char *pattern);\n\n    typedef br_uint_32 BR_CALLBACK br_resclass_enum_cbfn(br_resource_class *item, void *arg);\n\n    br_uint_32 BR_PUBLIC_ENTRY BrResClassEnum(char *pattern, br_resclass_enum_cbfn *callback, void *arg);\n\n    /*\n     * Actor Handling\n     */\n    typedef br_uint_32 BR_CALLBACK br_actor_enum_cbfn(br_actor *mat, void *arg);\n    br_uint_32 BR_PUBLIC_ENTRY BrActorEnum(br_actor *parent, br_actor_enum_cbfn *callback, void *arg);\n\n    br_actor *BR_PUBLIC_ENTRY BrActorAdd(br_actor *parent, br_actor *a);\n    br_actor *BR_PUBLIC_ENTRY BrActorRemove(br_actor *a);\n    void BR_PUBLIC_ENTRY BrActorRelink(br_actor *parent, br_actor *actor);\n    br_uint_8 BR_PUBLIC_ENTRY BrActorToActorMatrix34(br_matrix34 *m, br_actor *a, br_actor *b);\n    void BR_PUBLIC_ENTRY BrActorToScreenMatrix4(br_matrix4 *m, br_actor *a, br_actor *camera);\n\n    br_actor *BR_PUBLIC_ENTRY BrActorAllocate(br_uint_8 actor_type, void *type_data);\n    void BR_PUBLIC_ENTRY BrActorFree(br_actor *a);\n\n    br_uint_32 BR_PUBLIC_ENTRY BrActorSearchMany(br_actor *root, char *pattern, br_actor **actors, int max);\n    br_actor *BR_PUBLIC_ENTRY BrActorSearch(br_actor *root, char *pattern);\n\n    br_bounds *BR_PUBLIC_ENTRY BrActorToBounds(br_bounds *b, br_actor *ap);\n    br_matrix34 *BR_PUBLIC_ENTRY BrBoundsToMatrix34(br_matrix34 *mat, br_bounds *bounds);\n\n    /*\n     * Pixelmap management\n     */\n    br_pixelmap *BR_PUBLIC_ENTRY BrPixelmapAllocate(br_uint_8 type, br_uint_16 w, br_uint_16 h, void *pixels,\n                                                    int flags);\n    br_pixelmap *BR_PUBLIC_ENTRY BrPixelmapAllocateSub(br_pixelmap *pm, br_uint_16 x, br_uint_16 y, br_uint_16 w,\n                                                       br_uint_16 h);\n    void BR_PUBLIC_ENTRY BrPixelmapFree(br_pixelmap *pm);\n\n    br_pixelmap *BR_PUBLIC_ENTRY BrPixelmapMatch(br_pixelmap *src, br_uint_8 match_type);\n    br_pixelmap *BR_PUBLIC_ENTRY BrPixelmapClone(br_pixelmap *src);\n\n    br_uint_16 BR_PUBLIC_ENTRY BrPixelmapPixelSize(br_pixelmap *pm);\n    br_uint_16 BR_PUBLIC_ENTRY BrPixelmapChannels(br_pixelmap *pm);\n\n    /*\n     * Pixelmap operations\n     */\n    void BR_PUBLIC_ENTRY BrPixelmapFill(br_pixelmap *dst, br_uint_32 colour);\n\n    void BR_PUBLIC_ENTRY BrPixelmapRectangle(br_pixelmap *dst, br_int_16 x, br_int_16 y, br_uint_16 w, br_uint_16 h,\n                                             br_uint_32 colour);\n    void BR_PUBLIC_ENTRY BrPixelmapRectangle2(br_pixelmap *dst, br_int_16 x, br_int_16 y, br_uint_16 w, br_uint_16 h,\n                                              br_uint_32 colour1, br_uint_32 colour2);\n    void BR_PUBLIC_ENTRY BrPixelmapRectangleCopy(br_pixelmap *dst, br_int_16 dx, br_int_16 dy, br_pixelmap *src,\n                                                 br_int_16 sx, br_int_16 sy, br_uint_16 w, br_uint_16 h);\n    void BR_PUBLIC_ENTRY BrPixelmapRectangleFill(br_pixelmap *dst, br_int_16 x, br_int_16 y, br_uint_16 w, br_uint_16 h,\n                                                 br_uint_32 colour);\n\n    void BR_PUBLIC_ENTRY BrPixelmapDirtyRectangleCopy(br_pixelmap *dst, br_pixelmap *src, br_int_16 x, br_int_16 y,\n                                                      br_uint_16 w, br_uint_16 h);\n    void BR_PUBLIC_ENTRY BrPixelmapDirtyRectangleFill(br_pixelmap *dst, br_int_16 x, br_int_16 y, br_uint_16 w,\n                                                      br_uint_16 h, br_uint_32 colour);\n\n    void BR_PUBLIC_ENTRY BrPixelmapPixelSet(br_pixelmap *dst, br_int_16 x, br_int_16 y, br_uint_32 colour);\n    br_uint_32 BR_PUBLIC_ENTRY BrPixelmapPixelGet(br_pixelmap *dst, br_int_16 x, br_int_16 y);\n    void BR_PUBLIC_ENTRY BrPixelmapCopy(br_pixelmap *dst, br_pixelmap *src);\n    void BR_PUBLIC_ENTRY BrPixelmapLine(br_pixelmap *dst, br_int_16 x1, br_int_16 y1, br_int_16 x2, br_int_16 y2,\n                                        br_uint_32 colour);\n    void BR_PUBLIC_ENTRY BrPixelmapText(br_pixelmap *dst, br_int_16 x, br_int_16 y, br_uint_32 colour, br_font *font,\n                                        char *text);\n    void BR_PUBLIC_ENTRY BrPixelmapTextF(br_pixelmap *dst, br_int_16 x, br_int_16 y, br_uint_32 colour, br_font *font,\n                                         char *fmt, ...);\n\n    void BR_PUBLIC_ENTRY BrPixelmapCopyBits(br_pixelmap *dst, br_int_16 x, br_int_16 y, br_uint_8 *src,\n                                            br_uint_16 s_stride, br_uint_16 start_bit, br_uint_16 end_bit,\n                                            br_uint_16 nrows, br_uint_32 colour);\n\n    br_uint_16 BR_PUBLIC_ENTRY BrPixelmapTextWidth(br_pixelmap *dst, br_font *font, char *text);\n    br_uint_16 BR_PUBLIC_ENTRY BrPixelmapTextHeight(br_pixelmap *dst, br_font *font);\n\n    void BR_PUBLIC_ENTRY BrPixelmapDoubleBuffer(br_pixelmap *dst, br_pixelmap *src);\n\n/*\n * Backwards compatibility\n */\n#define BrPixelmapPlot BrPixelmapPixelSet\n\n    /*\n     * File operations\n     */\n    br_model *BR_PUBLIC_ENTRY BrModelLoad(char *filename);\n    br_uint_32 BR_PUBLIC_ENTRY BrModelSave(char *filename, br_model *model);\n    br_uint_32 BR_PUBLIC_ENTRY BrModelLoadMany(char *filename, br_model **models, br_uint_16 num);\n    br_uint_32 BR_PUBLIC_ENTRY BrModelSaveMany(char *filename, br_model **models, br_uint_16 num);\n\n    br_material *BR_PUBLIC_ENTRY BrMaterialLoad(char *filename);\n    br_uint_32 BR_PUBLIC_ENTRY BrMaterialSave(char *filename, br_material *material);\n    br_uint_32 BR_PUBLIC_ENTRY BrMaterialLoadMany(char *filename, br_material **materials, br_uint_16 num);\n    br_uint_32 BR_PUBLIC_ENTRY BrMaterialSaveMany(char *filename, br_material **materials, br_uint_16 num);\n\n    br_pixelmap *BR_PUBLIC_ENTRY BrPixelmapLoad(char *filename);\n    br_uint_32 BR_PUBLIC_ENTRY BrPixelmapSave(char *filename, br_pixelmap *pixelmap);\n    br_uint_32 BR_PUBLIC_ENTRY BrPixelmapLoadMany(char *filename, br_pixelmap **pixelmaps, br_uint_16 num);\n    br_uint_32 BR_PUBLIC_ENTRY BrPixelmapSaveMany(char *filename, br_pixelmap **pixelmaps, br_uint_16 num);\n\n    br_actor *BR_PUBLIC_ENTRY BrActorLoad(char *filename);\n    br_uint_32 BR_PUBLIC_ENTRY BrActorSave(char *filename, br_actor *actor);\n    br_uint_32 BR_PUBLIC_ENTRY BrActorLoadMany(char *filename, br_actor **actors, br_uint_16 num);\n    br_uint_32 BR_PUBLIC_ENTRY BrActorSaveMany(char *filename, br_actor **actors, br_uint_16 num);\n\n    /*\n     * Lights\n     */\n    void BR_PUBLIC_ENTRY BrLightEnable(br_actor *l);\n    void BR_PUBLIC_ENTRY BrLightDisable(br_actor *l);\n\n    /*\n     * Environment\n     */\n    br_actor *BR_PUBLIC_ENTRY BrEnvironmentSet(br_actor *a);\n\n    /*\n     * Clip planes\n     */\n    void BR_PUBLIC_ENTRY BrClipPlaneEnable(br_actor *cp);\n    void BR_PUBLIC_ENTRY BrClipPlaneDisable(br_actor *cp);\n\n    /*\n     * 3x4 Matrix ops.\n     */\n    void BR_PUBLIC_ENTRY BrMatrix34Copy(br_matrix34 *A, br_matrix34 *b);\n    void BR_PUBLIC_ENTRY BrMatrix34Mul(br_matrix34 *A, br_matrix34 *B, br_matrix34 *C);\n    void BR_PUBLIC_ENTRY BrMatrix34Pre(br_matrix34 *mat, br_matrix34 *A);\n    void BR_PUBLIC_ENTRY BrMatrix34Post(br_matrix34 *mat, br_matrix34 *A);\n\n    void BR_PUBLIC_ENTRY BrMatrix34Identity(br_matrix34 *mat);\n\n    void BR_PUBLIC_ENTRY BrMatrix34RotateX(br_matrix34 *mat, br_angle rx);\n    void BR_PUBLIC_ENTRY BrMatrix34PreRotateX(br_matrix34 *mat, br_angle rx);\n    void BR_PUBLIC_ENTRY BrMatrix34PostRotateX(br_matrix34 *mat, br_angle rx);\n\n    void BR_PUBLIC_ENTRY BrMatrix34RotateY(br_matrix34 *mat, br_angle ry);\n    void BR_PUBLIC_ENTRY BrMatrix34PreRotateY(br_matrix34 *mat, br_angle ry);\n    void BR_PUBLIC_ENTRY BrMatrix34PostRotateY(br_matrix34 *mat, br_angle ry);\n\n    void BR_PUBLIC_ENTRY BrMatrix34RotateZ(br_matrix34 *mat, br_angle rz);\n    void BR_PUBLIC_ENTRY BrMatrix34PreRotateZ(br_matrix34 *mat, br_angle rz);\n    void BR_PUBLIC_ENTRY BrMatrix34PostRotateZ(br_matrix34 *mat, br_angle rz);\n\n    void BR_PUBLIC_ENTRY BrMatrix34Rotate(br_matrix34 *mat, br_angle r, br_vector3 *axis);\n    void BR_PUBLIC_ENTRY BrMatrix34PreRotate(br_matrix34 *mat, br_angle r, br_vector3 *axis);\n    void BR_PUBLIC_ENTRY BrMatrix34PostRotate(br_matrix34 *mat, br_angle r, br_vector3 *axis);\n\n    void BR_PUBLIC_ENTRY BrMatrix34Translate(br_matrix34 *mat, br_scalar x, br_scalar y, br_scalar z);\n    void BR_PUBLIC_ENTRY BrMatrix34PreTranslate(br_matrix34 *mat, br_scalar x, br_scalar y, br_scalar z);\n    void BR_PUBLIC_ENTRY BrMatrix34PostTranslate(br_matrix34 *mat, br_scalar x, br_scalar y, br_scalar z);\n\n    void BR_PUBLIC_ENTRY BrMatrix34Scale(br_matrix34 *mat, br_scalar sx, br_scalar sy, br_scalar sz);\n    void BR_PUBLIC_ENTRY BrMatrix34PreScale(br_matrix34 *mat, br_scalar sx, br_scalar sy, br_scalar sz);\n    void BR_PUBLIC_ENTRY BrMatrix34PostScale(br_matrix34 *mat, br_scalar sx, br_scalar sy, br_scalar sz);\n\n    void BR_PUBLIC_ENTRY BrMatrix34ShearX(br_matrix34 *mat, br_scalar sy, br_scalar sz);\n    void BR_PUBLIC_ENTRY BrMatrix34PreShearX(br_matrix34 *mat, br_scalar sy, br_scalar sz);\n    void BR_PUBLIC_ENTRY BrMatrix34PostShearX(br_matrix34 *mat, br_scalar sy, br_scalar sz);\n\n    void BR_PUBLIC_ENTRY BrMatrix34ShearY(br_matrix34 *mat, br_scalar sx, br_scalar sz);\n    void BR_PUBLIC_ENTRY BrMatrix34PreShearY(br_matrix34 *mat, br_scalar sx, br_scalar sz);\n    void BR_PUBLIC_ENTRY BrMatrix34PostShearY(br_matrix34 *mat, br_scalar sx, br_scalar sz);\n\n    void BR_PUBLIC_ENTRY BrMatrix34ShearZ(br_matrix34 *mat, br_scalar sx, br_scalar sy);\n    void BR_PUBLIC_ENTRY BrMatrix34PreShearZ(br_matrix34 *mat, br_scalar sx, br_scalar sy);\n    void BR_PUBLIC_ENTRY BrMatrix34PostShearZ(br_matrix34 *mat, br_scalar sx, br_scalar sy);\n\n    void BR_PUBLIC_ENTRY BrMatrix34ApplyV(br_vector3 *A, br_vector3 *B, br_matrix34 *C);\n    void BR_PUBLIC_ENTRY BrMatrix34ApplyP(br_vector3 *A, br_vector3 *B, br_matrix34 *C);\n    void BR_PUBLIC_ENTRY BrMatrix34Apply(br_vector3 *A, br_vector4 *B, br_matrix34 *C);\n\n    void BR_PUBLIC_ENTRY BrMatrix34TApplyV(br_vector3 *A, br_vector3 *B, br_matrix34 *C);\n    void BR_PUBLIC_ENTRY BrMatrix34TApplyP(br_vector3 *A, br_vector3 *B, br_matrix34 *C);\n    void BR_PUBLIC_ENTRY BrMatrix34TApply(br_vector4 *A, br_vector4 *B, br_matrix34 *C);\n\n    br_scalar BR_PUBLIC_ENTRY BrMatrix34Inverse(br_matrix34 *out, br_matrix34 *in);\n    void BR_PUBLIC_ENTRY BrMatrix34LPInverse(br_matrix34 *A, br_matrix34 *B);\n    void BR_PUBLIC_ENTRY BrMatrix34LPNormalise(br_matrix34 *A, br_matrix34 *B);\n\n    void BR_PUBLIC_ENTRY BrMatrix34RollingBall(br_matrix34 *mat, int dx, int dy, int radius);\n\n    /*\n     * 4x4 Matrix ops.\n     */\n    void BR_PUBLIC_ENTRY BrMatrix4Copy(br_matrix4 *A, br_matrix4 *B);\n    void BR_PUBLIC_ENTRY BrMatrix4Mul(br_matrix4 *A, br_matrix4 *B, br_matrix4 *C);\n    void BR_PUBLIC_ENTRY BrMatrix4Identity(br_matrix4 *mat);\n    void BR_PUBLIC_ENTRY BrMatrix4Scale(br_matrix4 *mat, br_scalar sx, br_scalar sy, br_scalar sz);\n\n    br_scalar BR_PUBLIC_ENTRY BrMatrix4Inverse(br_matrix4 *A, br_matrix4 *B);\n    void BR_PUBLIC_ENTRY BrMatrix4Adjoint(br_matrix4 *A, br_matrix4 *B);\n    br_scalar BR_PUBLIC_ENTRY BrMatrix4Determinant(br_matrix4 *mat);\n\n    void BR_PUBLIC_ENTRY BrMatrix4Perspective(br_matrix4 *mat, br_angle field_of_view, br_scalar aspect,\n                                              br_scalar hither, br_scalar yon);\n\n    void BR_PUBLIC_ENTRY BrMatrix4ApplyV(br_vector4 *A, br_vector3 *B, br_matrix4 *C);\n    void BR_PUBLIC_ENTRY BrMatrix4ApplyP(br_vector4 *A, br_vector3 *B, br_matrix4 *C);\n    void BR_PUBLIC_ENTRY BrMatrix4Apply(br_vector4 *A, br_vector4 *B, br_matrix4 *C);\n\n    void BR_PUBLIC_ENTRY BrMatrix4TApplyV(br_vector4 *A, br_vector3 *B, br_matrix4 *C);\n    void BR_PUBLIC_ENTRY BrMatrix4TApplyP(br_vector4 *A, br_vector3 *B, br_matrix4 *C);\n    void BR_PUBLIC_ENTRY BrMatrix4TApply(br_vector4 *A, br_vector4 *B, br_matrix4 *C);\n\n    void BR_PUBLIC_ENTRY BrMatrix4Pre34(br_matrix4 *A, br_matrix34 *B);\n    void BR_PUBLIC_ENTRY BrMatrix4Copy34(br_matrix4 *A, br_matrix34 *B);\n    void BR_PUBLIC_ENTRY BrMatrix34Copy4(br_matrix34 *A, br_matrix4 *B);\n\n    /**\n     ** 2D Vectors\n     **/\n    void BR_PUBLIC_ENTRY BrVector2Copy(br_vector2 *v1, br_vector2 *v2);\n    void BR_PUBLIC_ENTRY BrVector2Set(br_vector2 *v1, br_scalar s1, br_scalar s2);\n    void BR_PUBLIC_ENTRY BrVector2SetInt(br_vector2 *v1, int i1, int i2);\n    void BR_PUBLIC_ENTRY BrVector2SetFloat(br_vector2 *v1, float f1, float f2);\n    void BR_PUBLIC_ENTRY BrVector2Negate(br_vector2 *v1, br_vector2 *v2);\n    void BR_PUBLIC_ENTRY BrVector2Add(br_vector2 *v1, br_vector2 *v2, br_vector2 *v3);\n    void BR_PUBLIC_ENTRY BrVector2Accumulate(br_vector2 *v1, br_vector2 *v2);\n    void BR_PUBLIC_ENTRY BrVector2Sub(br_vector2 *v1, br_vector2 *v2, br_vector2 *v3);\n    void BR_PUBLIC_ENTRY BrVector2Scale(br_vector2 *v1, br_vector2 *v2, br_scalar s);\n    void BR_PUBLIC_ENTRY BrVector2InvScale(br_vector2 *v1, br_vector2 *v2, br_scalar s);\n    br_scalar BR_PUBLIC_ENTRY BrVector2Dot(br_vector2 *v1, br_vector2 *v2);\n    br_scalar BR_PUBLIC_ENTRY BrVector2Length(br_vector2 *v1);\n    br_scalar BR_PUBLIC_ENTRY BrVector2LengthSquared(br_vector2 *v1);\n\n    /**\n     ** 3D VECTORS\n     **/\n    void BR_PUBLIC_ENTRY BrVector3Copy(br_vector3 *v1, br_vector2 *v2);\n    void BR_PUBLIC_ENTRY BrVector3Set(br_vector3 *v1, br_scalar s1, br_scalar s2, br_scalar s3);\n    void BR_PUBLIC_ENTRY BrVector3SetInt(br_vector3 *v1, int i1, int i2, int i3);\n    void BR_PUBLIC_ENTRY BrVector3SetFloat(br_vector3 *v1, float f1, float f2, float f3);\n    void BR_PUBLIC_ENTRY BrVector3Negate(br_vector3 *v1, br_vector3 *v2);\n    void BR_PUBLIC_ENTRY BrVector3Add(br_vector3 *v1, br_vector3 *v2, br_vector3 *v3);\n    void BR_PUBLIC_ENTRY BrVector3Accumulate(br_vector3 *v1, br_vector3 *v2);\n    void BR_PUBLIC_ENTRY BrVector3Sub(br_vector3 *v1, br_vector3 *v2, br_vector3 *v3);\n    void BR_PUBLIC_ENTRY BrVector3Scale(br_vector3 *v1, br_vector3 *v2, br_scalar s);\n    void BR_PUBLIC_ENTRY BrVector3InvScale(br_vector3 *v1, br_vector3 *v2, br_scalar s);\n    br_scalar BR_PUBLIC_ENTRY BrVector3Dot(br_vector3 *v1, br_vector3 *v2);\n    void BR_PUBLIC_ENTRY BrVector3Cross(br_vector3 *v1, br_vector3 *v2, br_vector3 *v3);\n    br_scalar BR_PUBLIC_ENTRY BrVector3Length(br_vector3 *v1);\n    br_scalar BR_PUBLIC_ENTRY BrVector3LengthSquared(br_vector3 *v1);\n\n    void BR_PUBLIC_ENTRY BrVector3Normalise(br_vector3 *v1, br_vector3 *v2);\n    void BR_PUBLIC_ENTRY BrVector3NormaliseQuick(br_vector3 *v1, br_vector3 *v2);\n    void BR_PUBLIC_ENTRY BrVector3NormaliseLP(br_vector3 *v1, br_vector3 *v2);\n\n    /*\n     * 2D vectors\n     */\n    void BR_PUBLIC_ENTRY BrVector2Normalise(br_vector2 *v1, br_vector2 *v2);\n\n    /**\n     ** 4D Vectors\n     **/\n    br_scalar BR_PUBLIC_ENTRY BrVector4Dot(br_vector4 *v1, br_vector4 *v2);\n    void BR_PUBLIC_ENTRY BrVector4Copy(br_vector4 *v1, br_vector4 *v2);\n\n    /*\n     * Euler Angles\n     */\n    br_matrix34 *BR_PUBLIC_ENTRY BrEulerToMatrix34(br_matrix34 *mat, br_euler *euler);\n    br_euler *BR_PUBLIC_ENTRY BrMatrix34ToEuler(br_euler *euler, br_matrix34 *mat);\n\n    br_matrix4 *BR_PUBLIC_ENTRY BrEulerToMatrix4(br_matrix4 *mat, br_euler *src);\n    br_euler *BR_PUBLIC_ENTRY BrMatrix4ToEuler(br_euler *dest, br_matrix4 *mat);\n\n    br_quat *BR_PUBLIC_ENTRY BrEulerToQuat(br_quat *quat, br_euler *euler);\n    br_euler *BR_PUBLIC_ENTRY BrQuatToEuler(br_euler *euler, br_quat *quat);\n\n    /*\n     * Quaternions\n     */\n    br_quat *BR_PUBLIC_ENTRY BrQuatMul(br_quat *q, br_quat *l, br_quat *r);\n    br_quat *BR_PUBLIC_ENTRY BrQuatNormalise(br_quat *q, br_quat *qq);\n    br_quat *BR_PUBLIC_ENTRY BrQuatInvert(br_quat *q, br_quat *qq);\n\n    br_quat *BR_PUBLIC_ENTRY BrQuatSlerp(br_quat *q, br_quat *l, br_quat *r, br_scalar t, br_int_16 spins);\n\n    br_matrix34 *BR_PUBLIC_ENTRY BrQuatToMatrix34(br_matrix34 *mat, br_quat *q);\n    br_quat *BR_PUBLIC_ENTRY BrMatrix34ToQuat(br_quat *q, br_matrix34 *mat);\n\n    br_matrix4 *BR_PUBLIC_ENTRY BrQuatToMatrix4(br_matrix4 *mat, br_quat *q);\n    br_quat *BR_PUBLIC_ENTRY BrMatrix4ToQuat(br_quat *q, br_matrix4 *mat);\n\n    /*\n     * Block pool allocator\n     */\n    br_pool *BR_PUBLIC_ENTRY BrPoolAllocate(int block_size, int chunk_size, br_uint_8 mem_type);\n    void BR_PUBLIC_ENTRY BrPoolFree(br_pool *pool);\n\n    void *BR_PUBLIC_ENTRY BrPoolBlockAllocate(struct br_pool *pool);\n    void BR_PUBLIC_ENTRY BrPoolBlockFree(struct br_pool *pool, void *block);\n\n    void BR_PUBLIC_ENTRY BrPoolEmpty(struct br_pool *pool);\n\n    /*\n     * Transforms\n     */\n    void BR_PUBLIC_ENTRY BrTransformToMatrix34(br_matrix34 *mat, br_transform *xform);\n    void BR_PUBLIC_ENTRY BrMatrix34ToTransform(br_transform *xform, br_matrix34 *mat);\n    void BR_PUBLIC_ENTRY BrTransformToTransform(br_transform *dest, br_transform *src);\n\n    void BR_PUBLIC_ENTRY BrMatrix34PreTransform(br_matrix34 *mat, br_transform *xform);\n    void BR_PUBLIC_ENTRY BrMatrix34PostTransform(br_matrix34 *mat, br_transform *xform);\n    void BR_PUBLIC_ENTRY BrMatrix4PreTransform(br_matrix4 *mat, br_transform *xform);\n\n    /*\n     * 2x3 Matrix ops.\n     */\n    void BR_PUBLIC_ENTRY BrMatrix23Copy(br_matrix23 *A, br_matrix23 *b);\n    void BR_PUBLIC_ENTRY BrMatrix23Mul(br_matrix23 *A, br_matrix23 *B, br_matrix23 *C);\n    void BR_PUBLIC_ENTRY BrMatrix23Pre(br_matrix23 *mat, br_matrix23 *A);\n    void BR_PUBLIC_ENTRY BrMatrix23Post(br_matrix23 *mat, br_matrix23 *A);\n\n    void BR_PUBLIC_ENTRY BrMatrix23Identity(br_matrix23 *mat);\n\n    void BR_PUBLIC_ENTRY BrMatrix23Rotate(br_matrix23 *mat, br_angle rz);\n    void BR_PUBLIC_ENTRY BrMatrix23PreRotate(br_matrix23 *mat, br_angle rz);\n    void BR_PUBLIC_ENTRY BrMatrix23PostRotate(br_matrix23 *mat, br_angle rz);\n\n    void BR_PUBLIC_ENTRY BrMatrix23Translate(br_matrix23 *mat, br_scalar x, br_scalar y);\n    void BR_PUBLIC_ENTRY BrMatrix23PreTranslate(br_matrix23 *mat, br_scalar x, br_scalar y);\n    void BR_PUBLIC_ENTRY BrMatrix23PostTranslate(br_matrix23 *mat, br_scalar x, br_scalar y);\n\n    void BR_PUBLIC_ENTRY BrMatrix23Scale(br_matrix23 *mat, br_scalar sx, br_scalar sy);\n    void BR_PUBLIC_ENTRY BrMatrix23PreScale(br_matrix23 *mat, br_scalar sx, br_scalar sy);\n    void BR_PUBLIC_ENTRY BrMatrix23PostScale(br_matrix23 *mat, br_scalar sx, br_scalar sy);\n\n    void BR_PUBLIC_ENTRY BrMatrix23ShearX(br_matrix23 *mat, br_scalar sy);\n    void BR_PUBLIC_ENTRY BrMatrix23PreShearX(br_matrix23 *mat, br_scalar sy);\n    void BR_PUBLIC_ENTRY BrMatrix23PostShearX(br_matrix23 *mat, br_scalar sy);\n\n    void BR_PUBLIC_ENTRY BrMatrix23ShearY(br_matrix23 *mat, br_scalar sx);\n    void BR_PUBLIC_ENTRY BrMatrix23PreShearY(br_matrix23 *mat, br_scalar sx);\n    void BR_PUBLIC_ENTRY BrMatrix23PostShearY(br_matrix23 *mat, br_scalar sx);\n\n    void BR_PUBLIC_ENTRY BrMatrix23ApplyV(br_vector2 *A, br_vector2 *B, br_matrix23 *C);\n    void BR_PUBLIC_ENTRY BrMatrix23ApplyP(br_vector2 *A, br_vector2 *B, br_matrix23 *C);\n\n    void BR_PUBLIC_ENTRY BrMatrix23TApplyV(br_vector2 *A, br_vector2 *B, br_matrix23 *C);\n    void BR_PUBLIC_ENTRY BrMatrix23TApplyP(br_vector2 *A, br_vector2 *B, br_matrix23 *C);\n\n    br_scalar BR_PUBLIC_ENTRY BrMatrix23Inverse(br_matrix23 *out, br_matrix23 *in);\n    void BR_PUBLIC_ENTRY BrMatrix23LPInverse(br_matrix23 *A, br_matrix23 *B);\n    void BR_PUBLIC_ENTRY BrMatrix23LPNormalise(br_matrix23 *A, br_matrix23 *B);\n\n/*\n * Backwards compatibility\n */\n#define BrMatrix34Transform BrTransformToMatrix34\n#define BrTransformTransfer BrTransformToTransform\n\n    /*\n     * Picking\n     */\n    typedef int BR_CALLBACK br_pick2d_cbfn(br_actor *a, br_model *model, br_material *material, br_vector3 *ray_pos,\n                                           br_vector3 *ray_dir, br_scalar t_near, br_scalar t_far, void *arg);\n\n    int BR_PUBLIC_ENTRY BrScenePick2D(br_actor *world, br_actor *camera, br_pixelmap *viewport, int pick_x, int pick_y,\n                                      br_pick2d_cbfn *callback, void *arg);\n\n    typedef int BR_CALLBACK br_pick3d_cbfn(br_actor *a, br_model *model, br_material *material, br_matrix34 *transform,\n                                           br_bounds *bounds, void *arg);\n\n    int BR_PUBLIC_ENTRY BrScenePick3D(br_actor *world, br_actor *actor, br_bounds *bounds, br_pick3d_cbfn *callback,\n                                      void *arg);\n\n    typedef int BR_CALLBACK br_modelpick2d_cbfn(br_model *model, br_material *material, br_vector3 *ray_pos,\n                                                br_vector3 *ray_dir, br_scalar t, int face, int edge, int vertex,\n                                                br_vector3 *p, br_vector2 *map, void *arg);\n\n    int BR_PUBLIC_ENTRY BrModelPick2D(br_model *model, br_material *material, br_vector3 *ray_pos, br_vector3 *ray_dir,\n                                      br_scalar t_near, br_scalar t_far, br_modelpick2d_cbfn *callback, void *arg);\n\n    /*\n     * Custom calback support\n     */\n    br_uint_8 BR_PUBLIC_ENTRY BrOnScreenCheck(br_bounds *bounds);\n\n    br_uint_8 BR_PUBLIC_ENTRY BrOriginToScreenXY(br_vector2 *screen);\n    br_uint_32 BR_PUBLIC_ENTRY BrOriginToScreenXYZO(br_vector3 *screen);\n\n    br_uint_8 BR_PUBLIC_ENTRY BrPointToScreenXY(br_vector2 *screen, br_vector3 *point);\n    br_uint_32 BR_PUBLIC_ENTRY BrPointToScreenXYZO(br_vector3 *screen, br_vector3 *point);\n\n    void BR_PUBLIC_ENTRY BrPointToScreenXYMany(br_vector2 *screens, br_vector3 *points, br_uint_32 npoints);\n    void BR_PUBLIC_ENTRY BrPointToScreenXYZOMany(br_vector3 *screens, br_uint_32 *outcodes, br_vector3 *points,\n                                                 br_uint_32 npoints);\n\n    void BR_PUBLIC_ENTRY BrSceneModelLight(br_model *model, br_material *default_material, br_actor *root, br_actor *a);\n\n    /*\n     * Byte swapping\n     */\n    typedef float br_float;\n\n    br_uint_32 BR_PUBLIC_ENTRY BrSwap32(br_uint_32 l);\n    br_uint_16 BR_PUBLIC_ENTRY BrSwap16(br_uint_16 s);\n    br_float BR_PUBLIC_ENTRY BrSwapFloat(br_float f);\n    void *BR_PUBLIC_ENTRY BrSwapBlock(void *block, int count, int size);\n\n    /*\n     * Misc. support\n     */\n    typedef int BR_CALLBACK br_qsort_cbfn(const void *, const void *);\n    void BR_PUBLIC_ENTRY BrQsort(void *basep, unsigned int nelems, unsigned int size, br_qsort_cbfn *comp);\n    /*\n     * Diagnostic generation\n     */\n    void BR_PUBLIC_ENTRY BrFailure(char *s, ...);\n    void BR_PUBLIC_ENTRY BrWarning(char *s, ...);\n    void BR_PUBLIC_ENTRY BrFatal(char *name, int line, char *s, ...);\n    void BR_PUBLIC_ENTRY _BrAssert(char *condition, char *file, unsigned line);\n    void BR_PUBLIC_ENTRY _BrUAssert(char *condition, char *file, unsigned line);\n\n    /*\n     * Set new handlers\n     */\n    br_diaghandler *BR_PUBLIC_ENTRY BrDiagHandlerSet(br_diaghandler *newdh);\n    br_filesystem *BR_PUBLIC_ENTRY BrFilesystemSet(br_filesystem *newfs);\n    br_allocator *BR_PUBLIC_ENTRY BrAllocatorSet(br_allocator *newal);\n\n/*\n * Backwards compatibility\n */\n#define BrErrorHandlerSet BrDiagHandlerSet\n\n    /*\n     * Generic file IO\n     */\n    br_uint_32 BR_PUBLIC_ENTRY BrFileAttributes(void);\n\n    void *BR_PUBLIC_ENTRY BrFileOpenRead(char *name, br_size_t n_magics, br_mode_test_cbfn *mode_test,\n                                         int *mode_result);\n    void *BR_PUBLIC_ENTRY BrFileOpenWrite(char *name, int text);\n    void BR_PUBLIC_ENTRY BrFileClose(void *f);\n    int BR_PUBLIC_ENTRY BrFileEof(void *f);\n    int BR_PUBLIC_ENTRY BrFileGetChar(void *f);\n    void BR_PUBLIC_ENTRY BrFilePutChar(int c, void *f);\n    int BR_PUBLIC_ENTRY BrFileRead(void *buf, int size, int n, void *f);\n    int BR_PUBLIC_ENTRY BrFileWrite(void *buf, int size, int n, void *f);\n    int BR_PUBLIC_ENTRY BrFileGetLine(char *buf, br_size_t buf_len, void *f);\n    void BR_PUBLIC_ENTRY BrFilePutLine(char *buf, void *f);\n    void BR_PUBLIC_ENTRY BrFileAdvance(long int count, void *f);\n\n    int BR_PUBLIC_ENTRY BrFilePrintf(void *f, char *fmt, ...);\n\n    /*\n     * Data file output type (one of BR_FS_MODE_xxx)\n     */\n    int BR_PUBLIC_ENTRY BrWriteModeSet(int text);\n\n    /*\n     * Generic memory allocation\n     */\n    void *BR_PUBLIC_ENTRY BrMemAllocate(br_size_t size, br_uint_8 type);\n    void BR_PUBLIC_ENTRY BrMemFree(void *block);\n    br_size_t BR_PUBLIC_ENTRY BrMemInquire(br_uint_8 type);\n\n    char *BR_PUBLIC_ENTRY BrMemStrDup(char *str);\n    void *BR_PUBLIC_ENTRY BrMemCalloc(int nelems, br_size_t size, br_uint_8 type);\n\n    /*\n     * Resource allocation\n     */\n    void *BR_PUBLIC_ENTRY BrResAllocate(void *vparent, br_size_t size, int res_class);\n    void BR_PUBLIC_ENTRY BrResFree(void *vres);\n    char *BR_PUBLIC_ENTRY BrResStrDup(void *vparent, char *str);\n\n    void *BR_PUBLIC_ENTRY BrResAdd(void *vparent, void *vres);\n    void *BR_PUBLIC_ENTRY BrResRemove(void *vres);\n    br_uint_8 BR_PUBLIC_ENTRY BrResClass(void *vres);\n    br_uint_32 BR_PUBLIC_ENTRY BrResSize(void *vres);\n    br_uint_32 BR_PUBLIC_ENTRY BrResSizeTotal(void *vres);\n    typedef br_uint_32 BR_CALLBACK br_resenum_cbfn(void *vres, void *arg);\n    br_uint_32 BR_PUBLIC_ENTRY BrResChildEnum(void *vres, br_resenum_cbfn *callback, void *arg);\n\n    /*\n     * Block operations\n     */\n    void BR_ASM_CALL BrBlockFill(void *dest_ptr, int value, int dwords);\n    void BR_ASM_CALL BrBlockCopy(void *dest_ptr, void *src_ptr, int dwords);\n\n#if BR_HAS_FAR\n    void BR_ASM_CALL BrFarBlockCopy(void __far *dest_ptr, void *src_ptr, int dwords);\n#endif\n\n    /*\n     * Scratchpad buffer allocation - Currenty, only one allocation\n     * may be outstanding at any time\n     */\n    void *BR_PUBLIC_ENTRY BrScratchAllocate(br_size_t size);\n    void BR_PUBLIC_ENTRY BrScratchFree(void *scratch);\n    br_size_t BR_PUBLIC_ENTRY BrScratchInquire(void);\n    void BR_PUBLIC_ENTRY BrScratchFlush(void);\n\n    /*\n     * Utility \"FindFailed\" callbacks that can be used to automaticaly load\n     * models/materials/maps/tables from the filesystem\n     */\n    br_pixelmap *BR_CALLBACK BrMapFindFailedLoad(char *name);\n    br_pixelmap *BR_CALLBACK BrTableFindFailedLoad(char *name);\n    br_model *BR_CALLBACK BrModelFindFailedLoad(char *name);\n    br_material *BR_CALLBACK BrMaterialFindFailedLoad(char *name);\n\n/*\n * Backwards comaptibility\n */\n#define BrModelPrepare BrModelUpdate\n#define BrMaterialPrepare BrMaterialUpdate\n#define BrMapPrepare BrMapUpdate\n#define BrTablePrepare BrTableUpdate\n\n    /*\n     * Error retrieval\n     */\n    br_error BR_PUBLIC_ENTRY BrGetLastError(void **valuep);\n\n#endif /* _NO_PROTOTYPES */\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/g386ifix.h",
    "content": "/*\n * Copyright (c) 1992,1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: g386ifix.h 1.6 1995/02/22 21:37:10 sam Exp $\n * $Locker:  $\n *\n * Inline fixed point maths for GNU-C (386)\n */\n\n/*\n * Old version using inline functions\n */\n#if 0\n__inline static const long IFixedMul(long a, long b)\n{\n\tregister long __r;\n\n\t__asm (\n\t\t \"imull %2\\n\"\n\t\t \"shrdl $16,%%edx,%%eax\\n\"\n\t: \"=a\" (__r)\n\t: \"0\" (a), \"rm\" (b)\n\t: \"eax\", \"edx\", \"cc\");\n\n\treturn __r;\n}\n\n__inline static const long IFixedDiv(long a, long b)\n{\n\tregister long __r;\n\n\t__asm (\n\t\t\"movl\t%%eax,%%edx\\n\" \n\t\t\"shll\t$16,%%eax\\n\"\n\t\t\"sarl\t$16,%%edx\\n\"\n\t\t\"idivl\t%2\\n\"\n\t: \"=a\" (__r)\t\t\t\t/* outputs \t*/\n\t: \"0\" (a), \"rm\" (b)\t\t\t/* inputs \t*/\n\t: \"eax\", \"edx\", \"cc\"\t\t/* uses \t*/\n\t);\n\n\treturn __r;\n}\n\n__inline static const long IFixedDivR(long a, long b)\n{\n\tregister long __r;\n\n\t__asm (\n\t\t\"cdq\\n\"\n\t\t\"xchg %%edx,%%eax\\n\"\n\t\t\"shrdl $16,%%edx,%%eax\\n\"\n\t\t\"sarl $16,%%edx\\n\"\n\t\t\"idivl %2\\n\"\n\t: \"=a\" (__r)\n\t: \"0\" (a), \"rm\" (b)\n\t: \"eax\", \"edx\", \"cc\");\n\n\treturn __r;\n}\n\n__inline static const long IFixedDivF(long a, long b)\n{\n\tregister long __r;\n\n\t__asm (\n\t\t\"xorl\t%%eax,%%eax\\n\"\n\t\t\"sarl\t$1,%%edx\\n\"\n\t\t\"rcrl\t$1,%%eax\\n\"\n\t\t\"divl\t%2\\n\"\n\t: \"=a\" (__r)\n\t: \"d\" (a), \"rm\" (b)\n\t: \"eax\", \"edx\", \"cc\");\n\n\treturn __r;\n}\n\n__inline static const long IFixedRcp(long a)\n{\n\tregister long __r;\n\n\t__asm (\n\t\t\"movl\t$1,%%edx\\n\"\n\t\t\"xorl\t%%eax,%%eax\\n\"\n\t\t\"idivl\t%1\\n\"\n\t: \"=a\" (__r)\n\t: \"rm\" (a)\n\t: \"eax\", \"edx\", \"cc\");\n\n\treturn __r;\n}\n\n__inline static const long IFixedMulDiv(long a, long b, long c)\n{\n\tregister long __r;\n\n\t__asm (\n\t\t\"imull %2\\n\"\n\t\t\"idivl %3\\n\"\n\t: \"=a\" (__r)\n\t: \"0\" (a), \"rm\" (b), \"rm\" (c)\n\t: \"eax\", \"edx\", \"cc\");\n\n\treturn __r;\n}\n\n__inline static const long IFixedMac2(\n\tlong a, long b,\n\tlong c, long d)\n{\n\tregister long __r;\n\n\t__asm (\n\t\t \"imull %2\\n\"\n\t\t \"movl  %%eax,%%ebx\\n\"\n\t\t \"movl  %%edx,%%ecx\\n\"\n\n\t\t \"movl  %3,%%eax\\n\"\n\t\t \"imull %4\\n\"\n\t\t \"addl\t%%ebx,%%eax\\n\"\n\t\t \"adcl\t%%ecx,%%edx\\n\"\n\t\t \"shrdl $16,%%edx,%%eax\\n\"\n\t: \"=a\" (__r)\n\t: \"0\" (a), \"rm\" (b), \"rm\" (c), \"rm\" (d)\n\t: \"eax\", \"ebx\", \"ecx\", \"edx\", \"cc\");\n\n\treturn __r;\n}\n\n__inline static const long IFixedMac3(\n\tlong a, long b,\n\tlong c, long d,\n\tlong e, long f)\n{\n\tregister long __r;\n\n\t__asm (\n\t\t \"imull %2\\n\"\n\t\t \"movl  %%eax,%%ebx\\n\"\n\t\t \"movl  %%edx,%%ecx\\n\"\n\n\t\t \"movl  %3,%%eax\\n\"\n\t\t \"imull %4\\n\"\n\t\t \"addl\t%%eax,%%ebx\\n\"\n\t\t \"adcl\t%%edx,%%ecx\\n\"\n\n\t\t \"movl  %5,%%eax\\n\"\n\t\t \"imull %6\\n\"\n\t\t \"addl\t%%ebx,%%eax\\n\"\n\t\t \"adcl\t%%ecx,%%edx\\n\"\n\n\t\t \"shrdl $16,%%edx,%%eax\\n\"\n\t: \"=a\" (__r)\n\t:  \"0\" (a), \"rm\" (b), \"rm\" (c), \"rm\" (d), \"rm\" (e), \"rm\" (f)\n\t: \"eax\", \"ebx\", \"ecx\", \"edx\", \"cc\");\n\n\treturn __r;\n}\n\n__inline static const long IFixedMac4(\n\tlong a, long b,\n\tlong c, long d,\n\tlong e, long f,\n\tlong g, long h)\n{\n\tregister long __r;\n\n\t__asm (\n\t\t \"imull %2\\n\"\n\t\t \"movl  %%eax,%%ebx\\n\"\n\t\t \"movl  %%edx,%%ecx\\n\"\n\n\t\t \"movl  %3,%%eax\\n\"\n\t\t \"imull %4\\n\"\n\t\t \"addl\t%%eax,%%ebx\\n\"\n\t\t \"adcl\t%%edx,%%ecx\\n\"\n\n\t\t \"movl  %5,%%eax\\n\"\n\t\t \"imull %6\\n\"\n\t\t \"addl\t%%eax,%%ebx\\n\"\n\t\t \"adcl\t%%edx,%%ecx\\n\"\n\n\t\t \"movl  %7,%%eax\\n\"\n\t\t \"imull %8\\n\"\n\t\t \"addl\t%%ebx,%%eax\\n\"\n\t\t \"adcl\t%%ecx,%%edx\\n\"\n\n\t\t \"shrdl $16,%%edx,%%eax\\n\"\n\t: \"=a\" (__r)\n\t: \"0\" (a), \"rm\" (b), \"rm\" (c), \"rm\" (d), \"rm\" (e), \"rm\" (f), \"rm\" (g), \"rm\" (h)\n\t: \"eax\", \"ebx\", \"ecx\", \"edx\", \"cc\");\n\n\treturn __r;\n}\n\n__inline static const long IFixedSqr(long a)\n{\n\t__asm (\n\t\t \"imull %%eax\\n\"\n\t\t \"shrdl $16,%%edx,%%eax\\n\"\n\t: \"=a\" (a)\n\t: \"0\" (a)\n\t: \"eax\", \"edx\", \"cc\");\n\n\treturn a;\n}\n\n__inline static const long IFixedSqr2(long a, long b)\n{\n\tregister long __r;\n\n\t__asm (\n\t\t \"imull %%eax\\n\"\n\t\t \"movl  %%eax,%%ebx\\n\"\n\t\t \"movl  %%edx,%%ecx\\n\"\n\n\t\t \"movl  %2,%%eax\\n\"\n\t\t \"imull %%eax\\n\"\n\t\t \"addl\t%%ebx,%%eax\\n\"\n\t\t \"adcl\t%%ecx,%%edx\\n\"\n\t\t \"shrdl $16,%%edx,%%eax\\n\"\n\t: \"=a\" (__r)\n\t: \"0\" (a), \"rm\" (b)\n\t: \"eax\", \"ebx\", \"ecx\", \"edx\", \"cc\");\n\n\treturn __r;\n}\n\n__inline static const long IFixedSqr3(\n\tlong a, long b,long c)\n{\n\tregister long __r;\n\n\t__asm (\n\t\t \"imull %%eax\\n\"\n\t\t \"movl  %%eax,%%ebx\\n\"\n\t\t \"movl  %%edx,%%ecx\\n\"\n\n\t\t \"movl  %2,%%eax\\n\"\n\t\t \"imull %%eax\\n\"\n\t\t \"addl\t%%eax,%%ebx\\n\"\n\t\t \"adcl\t%%edx,%%ecx\\n\"\n\n\t\t \"movl  %3,%%eax\\n\"\n\t\t \"imull %%eax\\n\"\n\t\t \"addl\t%%ebx,%%eax\\n\"\n\t\t \"adcl\t%%ecx,%%edx\\n\"\n\n\t\t \"shrdl $16,%%edx,%%eax\\n\"\n\t: \"=a\" (__r)\n\t: \"0\" (a), \"rm\" (b), \"rm\" (c)\n\t: \"eax\", \"ebx\", \"ecx\", \"edx\", \"cc\");\n\n\treturn __r;\n}\n\n__inline static const long IFixedSqr4(\n\tlong a, long b,\n\tlong c, long d)\n{\n\tregister long __r;\n\n\t__asm (\n\t\t \"imull %%eax\\n\"\n\t\t \"movl  %%eax,%%ebx\\n\"\n\t\t \"movl  %%edx,%%ecx\\n\"\n\n\t\t \"movl  %2,%%eax\\n\"\n\t\t \"imull %%eax\\n\"\n\t\t \"addl\t%%eax,%%ebx\\n\"\n\t\t \"adcl\t%%edx,%%ecx\\n\"\n\n\t\t \"movl  %3,%%eax\\n\"\n\t\t \"imull %%eax\\n\"\n\t\t \"addl\t%%eax,%%ebx\\n\"\n\t\t \"adcl\t%%edx,%%ecx\\n\"\n\n\t\t \"movl  %4,%%eax\\n\"\n\t\t \"imull %%eax\\n\"\n\t\t \"addl\t%%ebx,%%eax\\n\"\n\t\t \"adcl\t%%ecx,%%edx\\n\"\n\n\t\t \"shrdl $16,%%edx,%%eax\\n\"\n\t: \"=a\" (__r)\n\t: \"0\" (a), \"rm\" (b), \"rm\" (c), \"rm\" (d)\n\t: \"eax\", \"ebx\", \"ecx\", \"edx\", \"cc\");\n\n\treturn __r;\n}\n\n#define BrFixedMul(a, b) IFixedMul(a, b)\n#define BrFixedMac2(a, b, c, d) IFixedMac2(a, b, c, d)\n#define BrFixedMac3(a, b, c, d, e, f) IFixedMac3(a, b, c, d, e, f)\n#define BrFixedMac4(a, b, c, d, e, f, g, h) IFixedMac4(a, b, c, d, e, f, g, h)\n\n#define BrFixedDiv(a, b) IFixedDiv(a, b)\n#define BrFixedDivR(a, b) IFixedDivR(a, b)\n#define BrFixedDivF(a, b) IFixedDivF(a, b)\n#define BrFixedMulDiv(a, b, c) IFixedMulDiv(a, b, c)\n#define BrFixedRcp(a) IFixedRcp(a)\n\n#define BrFixedSqr(a) IFixedSqr(a)\n#define BrFixedSqr2(a, b) IFixedSqr2(a, b)\n#define BrFixedSqr3(a, b, c) IFixedSqr3(a, b, c)\n#define BrFixedSqr4(a, b, c, d) IFixedSqr4(a, b, c, d)\n#endif\n\n/*\n * New version using direct expansion\n */\n#if 0\n#define BrFixedMul(__a, __b)                                                                                           \\\n    ({                                                                                                                 \\\n        long __r;                                                                                                      \\\n                                                                                                                       \\\n        __asm(\"\t\timull %2\\n\"                                                                                           \\\n              \"\t\tshrdl $16,%%edx,%%eax\\n\"                                                                              \\\n              : \"=a\"(__r)                                                                                              \\\n              : \"0\"((long)(__a)), \"rm\"((long)(__b))                                                                    \\\n              : \"edx\", \"cc\");                                                                                          \\\n                                                                                                                       \\\n        __r;                                                                                                           \\\n    })\n\n#define BrFixedDiv(__a, __b)                                                                                           \\\n    ({                                                                                                                 \\\n        register long __r;                                                                                             \\\n                                                                                                                       \\\n        __asm(\"\t\tmovl\t%%eax,%%edx\\n\"                                                                                   \\\n              \"\t\tshll\t$16,%%eax\\n\"                                                                                     \\\n              \"\t\tsarl\t$16,%%edx\\n\"                                                                                     \\\n              \"\t\tidivl\t%2\\n\"                                                                                           \\\n              : \"=a\"(__r)                                                                                              \\\n              : \"a\"((long)(__a)), \"rm\"((long)(__b))                                                                    \\\n              : \"edx\", \"cc\");                                                                                          \\\n                                                                                                                       \\\n        __r;                                                                                                           \\\n    })\n\n#define BrFixedMulDiv(__a, __b, __c)                                                                                   \\\n    ({                                                                                                                 \\\n        register long __r;                                                                                             \\\n                                                                                                                       \\\n        __asm(\"imull %2\\n\"                                                                                             \\\n              \"idivl %3\\n\"                                                                                             \\\n              : \"=a\"(__r)                                                                                              \\\n              : \"0\"((long)(__a)), \"rm\"((long)(__b)), \"rm\"((long)(__c))                                                 \\\n              : \"edx\", \"cc\");                                                                                          \\\n                                                                                                                       \\\n        __r;                                                                                                           \\\n    })\n\n#define BrFixedMac2(__a, __b, __c, __d)                                                                                \\\n    ({                                                                                                                 \\\n        register long __r;                                                                                             \\\n                                                                                                                       \\\n        __asm(\"imull %2\\n\"                                                                                             \\\n              \"movl  %%eax,%%ebx\\n\"                                                                                    \\\n              \"movl  %%edx,%%ecx\\n\"                                                                                    \\\n                                                                                                                       \\\n              \"movl  %3,%%eax\\n\"                                                                                       \\\n              \"imull %4\\n\"                                                                                             \\\n              \"addl\t%%ebx,%%eax\\n\"                                                                                     \\\n              \"adcl\t%%ecx,%%edx\\n\"                                                                                     \\\n              \"shrdl $16,%%edx,%%eax\\n\"                                                                                \\\n              : \"=a\"(__r)                                                                                              \\\n              : \"0\"((long)(__a)), \"rm\"((long)(__b)), \"rm\"((long)(__c)), \"rm\"((long)(__d))                              \\\n              : \"ebx\", \"ecx\", \"edx\", \"cc\");                                                                            \\\n                                                                                                                       \\\n        __r;                                                                                                           \\\n    })\n\n#define BrFixedMac3(__a, __b, __c, __d, __e, __f)                                                                      \\\n    ({                                                                                                                 \\\n        register long __r;                                                                                             \\\n                                                                                                                       \\\n        __asm(\"imull %2\\n\"                                                                                             \\\n              \"movl  %%eax,%%ebx\\n\"                                                                                    \\\n              \"movl  %%edx,%%ecx\\n\"                                                                                    \\\n                                                                                                                       \\\n              \"movl  %3,%%eax\\n\"                                                                                       \\\n              \"imull %4\\n\"                                                                                             \\\n              \"addl\t%%eax,%%ebx\\n\"                                                                                     \\\n              \"adcl\t%%edx,%%ecx\\n\"                                                                                     \\\n                                                                                                                       \\\n              \"movl  %5,%%eax\\n\"                                                                                       \\\n              \"imull %6\\n\"                                                                                             \\\n              \"addl\t%%ebx,%%eax\\n\"                                                                                     \\\n              \"adcl\t%%ecx,%%edx\\n\"                                                                                     \\\n                                                                                                                       \\\n              \"shrdl $16,%%edx,%%eax\\n\"                                                                                \\\n              : \"=a\"(__r)                                                                                              \\\n              : \"0\"((long)(__a)), \"rm\"((long)(__b)), \"rm\"((long)(__c)), \"rm\"((long)(__d)), \"rm\"((long)(__e)),          \\\n                \"rm\"((long)(__f))                                                                                      \\\n              : \"ebx\", \"ecx\", \"edx\", \"cc\");                                                                            \\\n                                                                                                                       \\\n        __r;                                                                                                           \\\n    })\n\n#define BrFixedMac4(__a, __b, __c, __d, __e, __f, __g, __h)                                                            \\\n    ({                                                                                                                 \\\n        register long __r;                                                                                             \\\n                                                                                                                       \\\n        __asm(\"imull %2\\n\"                                                                                             \\\n              \"movl  %%eax,%%ebx\\n\"                                                                                    \\\n              \"movl  %%edx,%%ecx\\n\"                                                                                    \\\n                                                                                                                       \\\n              \"movl  %3,%%eax\\n\"                                                                                       \\\n              \"imull %4\\n\"                                                                                             \\\n              \"addl\t%%eax,%%ebx\\n\"                                                                                     \\\n              \"adcl\t%%edx,%%ecx\\n\"                                                                                     \\\n                                                                                                                       \\\n              \"movl  %5,%%eax\\n\"                                                                                       \\\n              \"imull %6\\n\"                                                                                             \\\n              \"addl\t%%eax,%%ebx\\n\"                                                                                     \\\n              \"adcl\t%%edx,%%ecx\\n\"                                                                                     \\\n                                                                                                                       \\\n              \"movl  %7,%%eax\\n\"                                                                                       \\\n              \"imull %8\\n\"                                                                                             \\\n              \"addl\t%%ebx,%%eax\\n\"                                                                                     \\\n              \"adcl\t%%ecx,%%edx\\n\"                                                                                     \\\n                                                                                                                       \\\n              \"shrdl $16,%%edx,%%eax\\n\"                                                                                \\\n              : \"=a\"(__r)                                                                                              \\\n              : \"0\"((long)(__a)), \"rm\"((long)(__b)), \"rm\"((long)(__c)), \"rm\"((long)(__d)), \"rm\"((long)(__e)),          \\\n                \"rm\"((long)(__f)), \"rm\"((long)(__g)), \"rm\"((long)(__h))                                                \\\n              : \"ebx\", \"ecx\", \"edx\", \"cc\");                                                                            \\\n                                                                                                                       \\\n        __r;                                                                                                           \\\n    })\n#endif\n"
  },
  {
    "path": "bren/inc/hton.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: hton.h 1.2 1995/02/22 21:37:11 sam Exp $\n * $Locker:  $\n *\n * Converting 'network' (little endian) byte order to host order\n *\n */\n\n#ifndef _HTON_H_\n#define _HTON_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n/*\n * Mac is in network order already\n */\n#if defined(__MPW__) || defined(__THINKC__)\n#define htonl(x) (x)\n#define ntohl(x) (x)\n#define htons(x) (x)\n#define ntohs(x) (x)\n\n    typedef float net_float;\n\n#define htonf(x) (x)\n#define ntohf(x) (x)\n\n#endif\n\n/*\n * PC is big-endian\n */\n#if defined(__GNUC__) || defined(__WATCOMC__) || defined(__ZTC__)\n\n    long bswapl(long l);\n    short bswaps(short s);\n    float bswapf(float f);\n\n#define ntohl(x) bswapl(x)\n#define htonl(x) bswapl(x)\n#define ntohs(x) bswaps(x)\n#define htons(x) bswaps(x)\n\n    typedef float net_float;\n\n#define htonf(x) bswapf(x)\n#define ntohf(x) bswapf(x)\n\n#endif\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/light.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: light.h 1.6 1995/05/25 13:37:32 sam Exp $\n * $Locker:  $\n *\n * Definitons for a light\n */\n#ifndef _LIGHT_H_\n#define _LIGHT_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    enum\n    {\n        /*\n         * Type of light\n         */\n        BR_LIGHT_TYPE = 0x0003,\n        BR_LIGHT_POINT = 0x0000,\n        BR_LIGHT_DIRECT = 0x0001,\n        BR_LIGHT_SPOT = 0x0002,\n\n        /*\n         * Flag idicating that caluculations are done in view space\n         */\n        BR_LIGHT_VIEW = 0x0004\n    };\n\n    typedef struct br_light\n    {\n        /*\n         * Optional identifier\n         */\n        char *identifier;\n\n        /*\n         * Type of light\n         */\n        br_uint_8 type;\n\n        /*\n         * Colour of light (if renderer supports it)\n         */\n        br_colour colour;\n\n        /*\n         * Attenuation of light with distance - constant, linear, and quadratic\n         * l & q only apply to point and spot lights\n         */\n        br_scalar attenuation_c;\n        br_scalar attenuation_l;\n        br_scalar attenuation_q;\n\n        /*\n         * Cone angles for spot light\n         */\n        br_angle cone_outer;\n        br_angle cone_inner;\n\n    } br_light;\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/material.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: material.h 1.19 1995/05/25 13:37:32 sam Exp $\n * $Locker:  $\n *\n * Describes the appearance of a material than can be applied to a surface\n */\n#ifndef _MATERIAL_H_\n#define _MATERIAL_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    typedef struct br_material\n    {\n\n        char *identifier;\n\n        br_colour colour;\n\n        br_uint_8 opacity;\n\n        br_ufraction ka;\n        br_ufraction kd;\n        br_ufraction ks;\n\n        /*\n         * Specular power\n         */\n        br_scalar power;\n\n        /*\n         * Controls how texture is rendered\n         */\n        br_uint_32 flags;\n\n        /*\n         * 2x3 transform applied to model U,V\n         */\n        br_matrix23 map_transform;\n\n        /*\n         * The direct index ramp base and range\n         */\n        br_uint_8 index_base;\n        br_uint_8 index_range;\n\n        /*\n         * Pointers to colour map\n         */\n        br_pixelmap *colour_map;\n\n        /*\n         * Pointers to tables\n         */\n        br_pixelmap *screendoor; /* Screen door opacity  */\n\n        br_pixelmap *index_shade; /* Index shading\t\t*/\n        br_pixelmap *index_blend; /* Index blending\t\t*/\n\n        /*\n         * Private fields\n         */\n        br_uint_8 prep_flags;\n\n        void *rptr;\n\n    } br_material;\n\n    /*\n     * Bits for br_material->flags\n     */\n    enum\n    {\n        BR_MATF_LIGHT = 0x00000001,\n        BR_MATF_PRELIT = 0x00000002,\n\n        BR_MATF_SMOOTH = 0x00000004,\n\n        BR_MATF_ENVIRONMENT_I = 0x00000008,\n        BR_MATF_ENVIRONMENT_L = 0x00000010,\n        BR_MATF_PERSPECTIVE = 0x00000020,\n        BR_MATF_DECAL = 0x00000040,\n\n        BR_MATF_I_FROM_U = 0x00000080,\n        BR_MATF_I_FROM_V = 0x00000100,\n        BR_MATF_U_FROM_I = 0x00000200,\n        BR_MATF_V_FROM_I = 0x00000400,\n\n        BR_MATF_ALWAYS_VISIBLE = 0x00000800,\n        BR_MATF_TWO_SIDED = 0x00001000,\n\n        BR_MATF_FORCE_Z_0 = 0x00002000,\n\n        BR_MATF_DITHER = 0x00004000\n#if 0\n\tBR_MATF_CUSTOM\t\t\t= 0x00008000\n#endif\n    };\n\n/*\n * Backwards compatibility\n */\n#define BR_MATF_GOURAUD BR_MATF_SMOOTH\n#define BR_MATF_MAP_COLOUR 0\n\n    /*\n     * Flags to BrMaterialUpdate()\n     */\n    enum\n    {\n        BR_MATU_MAP_TRANSFORM = 0x0001,\n        BR_MATU_RENDERING = 0x0002,\n        BR_MATU_LIGHTING = 0x0004,\n        BR_MATU_COLOURMAP = 0x0008,\n        BR_MATU_ALL = 0x7fff\n    };\n\n    /*\n     * Flags to BrMapUpdate()\n     */\n    enum\n    {\n        BR_MAPU_ALL = 0x7fff\n    };\n\n    /*\n     * Flags to BrTableUpdate()\n     */\n    enum\n    {\n        BR_TABU_ALL = 0x7fff\n    };\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/matrix.h",
    "content": "/*\n * Copyright (c) 1992,1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: matrix.h 1.3 1995/02/22 21:37:13 sam Exp $\n * $Locker:  $\n *\n * Structrures describing matrices\n */\n#ifndef _MATRIX_H_\n#define _MATRIX_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    typedef struct br_matrix4\n    {\n        br_scalar m[4][4];\n    } br_matrix4;\n\n    typedef struct br_matrix34\n    {\n        br_scalar m[4][3];\n    } br_matrix34;\n\n    typedef struct br_matrix23\n    {\n        br_scalar m[3][2];\n    } br_matrix23;\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/model.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: model.h 1.19 1995/05/25 13:37:34 sam Exp $\n * $Locker:  $\n *\n * In-memory structures for models, both public and private areas\n */\n#ifndef _MODEL_H_\n#define _MODEL_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    typedef struct br_vertex\n    {\n        br_vector3 p;   /* Point in model space\t\t*/\n        br_vector2 map; /* Mapping coordinates\t\t*/\n\n        /*\n         * Index for prelit models\n         */\n        br_uint_8 index;\n\n        /*\n         * true colour for pre-lit models\n         */\n        br_uint_8 red;\n        br_uint_8 grn;\n        br_uint_8 blu;\n\n        /*\n         * Private fields\n         */\n        br_uint_16 r;\n        br_fvector3 n; /* Surface normal at vertex\t*/\n\n    } br_vertex;\n\n    typedef struct br_face\n    {\n        br_uint_16 vertices[3]; /* Vertices around face \t\t\t\t*/\n        br_uint_16 edges[3];    /* Edges around face\t\t\t\t\t*/\n        br_material *material;  /* Face material (or NULL) \t\t\t\t*/\n        br_uint_16 smoothing;   /* Controls if shared edges are smooth\t*/\n        br_uint_8 flags;        /* Bits 0,1 and 2 denote internal edges\t*/\n        br_uint_8 _pad0;\n        br_fvector3 n; /* Plane equation of face\t\t\t\t*/\n        br_scalar d;\n    } br_face;\n\n    /*\n     * Bits for face flags\n     */\n    enum\n    {\n        BR_FACEF_COPLANAR_0 = 0x01, /* The face adjoining edge 0 is coplanar with this face */\n        BR_FACEF_COPLANAR_1 = 0x02, /*         \"\"              1          \"\"                */\n        BR_FACEF_COPLANAR_2 = 0x04  /*         \"\"              1          \"\"                */\n    };\n\n    typedef struct br_face_group\n    {\n        br_material *material; /* Group material (or NULL) \t\t\t*/\n        br_face *faces;        /* faces in group\t\t\t\t\t\t*/\n        br_uint_16 nfaces;     /* Number of faces in a group\t\t\t*/\n    } br_face_group;\n\n    typedef struct br_vertex_group\n    {\n        br_material *material; /* Group material (or NULL) \t\t\t*/\n        br_vertex *vertices;   /* vertices in group\t\t\t\t\t*/\n        br_uint_16 nvertices;  /* Number of vertices in a group\t\t*/\n    } br_vertex_group;\n\n    /*\n     * Callback function type for custom models\n     */\n    struct br_actor;\n    struct br_model;\n    struct br_material;\n\n    typedef void BR_CALLBACK br_model_custom_cbfn(struct br_actor *actor, struct br_model *model,\n                                                  struct br_material *material, br_uint_8 style, int on_screen,\n                                                  br_matrix34 *model_to_view, br_matrix4 *model_to_screen);\n\n    typedef struct br_model\n    {\n        char *identifier;\n\n        br_vertex *vertices;\n        br_face *faces;\n\n        br_uint_16 nvertices;\n        br_uint_16 nfaces;\n\n        /*\n         * Offset of model's pivot point (where it attaches to parent)\n         */\n        br_vector3 pivot;\n\n        /*\n         * Flags describing what is allowed in ModelPrepare()\n         */\n        br_uint_16 flags;\n\n        /*\n         * Application call\n         */\n        br_model_custom_cbfn *custom;\n\n        /*\n         * Application defined data - untouched by system\n         */\n        void *user;\n\n        /*\n         * Generated by ModelUpdate\n         */\n        /*\n         * Bounding radius of model from origin\n         */\n        br_scalar radius;\n\n        /*\n         * Axis-aligned box that bound model in model coords\n         */\n        br_bounds bounds;\n\n        /*\n         * Vertices and faces that have been sorted\n         * into groups, removing conflicts at material boundaries\n         * and smoothign groups\n         */\n        br_uint_16 nprepared_vertices;\n        br_uint_16 nprepared_faces;\n\n        br_face *prepared_faces;\n        br_vertex *prepared_vertices;\n\n        /*\n         * Groups of faces and vertices, by material\n         */\n        br_uint_16 nface_groups;\n        br_uint_16 nvertex_groups;\n\n        br_face_group *face_groups;\n        br_vertex_group *vertex_groups;\n\n        /*\n         * Upper limit on the face->edges[] entries\n         */\n        br_uint_16 nedges;\n\n        /*\n         * Pointers to tables that map prepared face and vertex indexes\n         * back to original face index\n         *\n         * Only generated if BR_MODF_GENERATE_TAGS is set\n         */\n        br_uint_16 *face_tags;\n        br_uint_16 *vertex_tags;\n\n        /*\n         * Private fields\n         */\n        br_uint_32 prep_flags;\n        br_uint_16 *smooth_strings;\n        void *rptr;\n    } br_model;\n\n    /*\n     * Bits for br_model->flags\n     */\n    enum\n    {\n        BR_MODF_DONT_WELD = 0x0001,     /* Vertices with same x,y,z cannot be merged\t*/\n        BR_MODF_KEEP_ORIGINAL = 0x0002, /* Don't release model->faces/vertices during ModelUpdate() */\n        BR_MODF_GENERATE_TAGS = 0x0004, /* Allocate and fill in the face and vertex tag structures */\n        BR_MODF_QUICK_UPDATE = 0x0010,  /* ModelUpdate is fast - but may produce slower models */\n\n        BR_MODF_CUSTOM = 0x0020, /* Invoke custom callback for this model */\n\n        BR_MODF_PREPREPARED = 0x0040 /* Model structure is pre-prepared - update performs no work */\n    };\n\n    /*\n     * Flags to BrModelUpdate()\n     */\n    enum\n    {\n        BR_MODU_NORMALS = 0x0001,\n        BR_MODU_EDGES = 0x0002,\n        BR_MODU_RADIUS = 0x0004,\n        BR_MODU_GROUPS = 0x0008,\n        BR_MODU_BOUNDING_BOX = 0x0010,\n        BR_MODU_MATERIALS = 0x0020,\n        BR_MODU_ALL = 0x7fff\n    };\n\n/*\n * Backwards compatibility\n */\n#define BR_MPREP_NORMALS BR_MODU_NORMALS\n#define BR_MPREP_EDGES BR_MODU_EDGES\n#define BR_MPREP_RADIUS BR_MODU_RADIUS\n#define BR_MPREP_GROUPS BR_MODU_GROUPS\n#define BR_MPREP_BOUNDING_BOX BR_MODU_BOUNDING_BOX\n#define BR_MPREP_ALL BR_MODU_ALL\n\n    /*\n     * Values for BrModelApplyMap()\n     */\n    enum br_apply_map_types\n    {\n        BR_APPLYMAP_PLANE,\n        BR_APPLYMAP_SPHERE,\n        BR_APPLYMAP_CYLINDER,\n        BR_APPLYMAP_DISC,\n        BR_APPLYMAP_NONE\n    };\n\n    /*\n     * Axis values for BrModelFitMap()\n     */\n    enum br_fitmap_axis\n    {\n        BR_FITMAP_PLUS_X,\n        BR_FITMAP_PLUS_Y,\n        BR_FITMAP_PLUS_Z,\n        BR_FITMAP_MINUS_X,\n        BR_FITMAP_MINUS_Y,\n        BR_FITMAP_MINUS_Z\n    };\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n\n/*\n * Local Variables:\n * tab-width: 4\n * End:\n */\n"
  },
  {
    "path": "bren/inc/mscifix.h",
    "content": "/*\n * Copyright (c) 1992,1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: mscifix.h 1.2 1995/02/22 21:37:15 sam Exp $\n * $Locker:  $\n *\n * Inline fixed point ops for Microsoft Visual C++\n *\n */\n"
  },
  {
    "path": "bren/inc/pixelmap.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: pixelmap.h 1.15 1995/06/30 16:08:58 sam Exp $\n * $Locker: sam $\n *\n * A stopgap 2D pixelmap structure for brender. This should really be the\n * pixelmap data type from the underlying 2D system (whatever that will\n * be)\n *\n * Used for input (maps) and output (render buffer)\n */\n#ifndef _PIXELMAP_H_\n#define _PIXELMAP_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    /*\n     * Various types of pixel\n     */\n    enum\n    {\n        /*\n         * Each pixel is an index into a colour map\n         */\n        BR_PMT_INDEX_1,\n        BR_PMT_INDEX_2,\n        BR_PMT_INDEX_4,\n        BR_PMT_INDEX_8,\n\n        /*\n         * True colour RGB\n         */\n        BR_PMT_RGB_555,   /* 16 bits per pixel */\n        BR_PMT_RGB_565,   /* 16 bits per pixel */\n        BR_PMT_RGB_888,   /* 24 bits per pixel */\n        BR_PMT_RGBX_888,  /* 32 bits per pixel */\n        BR_PMT_RGBA_8888, /* 32 bits per pixel */\n\n        /*\n         * YUV\n         */\n        BR_PMT_YUYV_8888, /* YU YV YU YV ... */\n        BR_PMT_YUV_888,\n\n        /*\n         * Depth\n         */\n        BR_PMT_DEPTH_16,\n        BR_PMT_DEPTH_32,\n\n        /*\n         * Opacity\n         */\n        BR_PMT_ALPHA_8,\n\n        /*\n         * Opacity + Index\n         */\n        BR_PMT_INDEXA_88,\n\n        /*\n         * Bump maps\n         */\n        BR_PMT_NORMAL_INDEX_8,\n        BR_PMT_NORMAL_XYZ,\n\n        /*\n         * Wrong way around 15 bit true colour\n         */\n        BR_PMT_BGR_555,\n    };\n\n    /*\n     * pixelmap flags\n     */\n    enum\n    {\n        /*\n         * No direct access to pixels\n         */\n        BR_PMF_NO_ACCESS = 0x01,\n\n        BR_PMF_LINEAR = 0x02,\n        BR_PMF_ROW_WHOLEPIXELS = 0x04\n    };\n\n    typedef struct br_pixelmap\n    {\n        /*\n         * Optional identifier (when maps used as textures/tables etc.)\n         */\n        char *identifier;\n\n        /*\n         * pointer to raw pixel data\n         */\n        void *pixels;\n\n        br_uint_32 _reserved0;\n\n        /*\n         * Optional pixel map when pixels are indexed.\n         */\n        struct br_pixelmap *map;\n\n        /*\n         * Byte difference between pixels at same column of adjacent rows\n         */\n        br_int_16 row_bytes;\n\n        /*\n         * Type of pixels\n         */\n        br_uint_8 type;\n\n        /*\n         * Flags\n         */\n        br_uint_8 flags;\n\n        /*\n         * top left visible region in pixels from pixel at 'pixel' pointer\n         */\n        br_uint_16 base_x;\n        br_uint_16 base_y;\n\n        /*\n         * Width and height of bitmap in pixels\n         */\n        br_uint_16 width;\n        br_uint_16 height;\n\n        /*\n         * Local origin for any graphics system rendering into map, relative\n         * to 'base'\n         */\n        br_int_16 origin_x;\n        br_int_16 origin_y;\n\n        /*\n         * Device pointer - if pixelmap originated from a device\n         */\n        void *context;\n\n    } br_pixelmap;\n\n    /*\n     * Flags to BrPixelMapAllocate\n     */\n    enum br_pixelmap_allocate_flags\n    {\n        BR_PMAF_INVERTED = 0x0001, /* Setup pixelmap so that 0th scanline is at high memory */\n        BR_PMAF_NORMAL = 0x0000    /* Setup pixelmap so that 0th scanline is at low memory */\n    };\n\n    /*\n     * Channel flags\n     */\n    enum br_pixelmap_channel_mask\n    {\n        BR_PMCHAN_INDEX = 0x0001,\n        BR_PMCHAN_RGB = 0x0002,\n        BR_PMCHAN_DEPTH = 0x0004,\n        BR_PMCHAN_ALPHA = 0x0008,\n        BR_PMCHAN_YUV = 0x0010\n    };\n\n    /*\n     * Matching pixelmap types\n     */\n    enum br_pmmatch_type\n    {\n        BR_PMMATCH_OFFSCREEN,\n        BR_PMMATCH_DEPTH_16,\n\n        BR_PMMATCH_MAX\n    };\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/pool.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: pool.h 1.7 1995/02/22 21:37:18 sam Exp $\n * $Locker:  $\n *\n * Fixed size block pools\n */\n#ifndef _POOL_H_\n#define _POOL_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n#define BR_POOL_DEBUG 0\n#define BR_POOL_ALIGN 7\n\n    typedef struct br_pool_block\n    {\n        struct br_pool_block *next;\n    } br_pool_block;\n\n    typedef struct br_pool\n    {\n        br_pool_block *free;\n        br_uint_32 block_size;\n        br_uint_32 chunk_size;\n        int mem_type;\n#if BR_POOL_DEBUG\n        br_uint_32 max_count;\n        br_uint_32 count;\n#endif\n    } br_pool;\n\n/*\n * Speedup macros\n */\n#if 0\n#if !POOL_DEBUG\nbr_pool_block *__bp; /* Hmm, this global is not optimizer friendly */\n\n#define BrPoolAllocate(pool)                                                                                           \\\n    (void *)(((pool)->free ? 0 : BrPoolAddChunk(pool)), (__bp = (pool)->free), ((pool)->free = __bp->next, __bp))\n\n#define BrPoolFree(pool, bp) ((bp)->next = (pool)->free, (pool)->free = (bp))\n#endif\n#endif\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/position.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: position.h 1.3 1995/02/22 21:37:19 sam Exp $\n * $Locker:  $\n *\n * Structure descibing a position in 3D space - used for actors\n */\n#ifndef _POSITION_H_\n#define _POSITION_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    /*\n     * Type of actor position\n     */\n    enum p3d_actor_position_type\n    {\n        P3D_POSITION_IDENTITY,\n        P3D_POSITION_TRANSFORM,\n        P3D_POSITION_EULER,\n        P3D_POSITION_QUATERNION,\n        P3D_POSITION_TRANSLATION,\n        P3D_POSITION_LOOK_UP\n    };\n\n    struct p3d_position\n    {\n\n        /*\n         * Type of position\n         */\n        uint_16 t;\n\n        /*\n         * Union of the various means of describing a position\n         */\n        union {\n            /*\n             * General matrix - (XXX Should also have affine (3x4))\n             */\n            struct p3d_transform transform;\n\n            /*\n             * Euler angles and translation\n             */\n            struct\n            {\n                struct p3d_euler e;\n                point3 t;\n            } euler;\n\n            /*\n             * Unit quaternion and translation\n             */\n            struct\n            {\n                struct p3d_quaternion q;\n                point3 t;\n            } quaternion;\n\n            /*\n             * Lookat vector, up vector and translation\n             */\n            struct\n            {\n                vector3 look;\n                vector3 up;\n                point3 t;\n            } look;\n\n            /*\n             * Just a translation\n             */\n            struct\n            {\n                point3 t;\n            } translation;\n        } p;\n    };\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/qhton.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: qhton.h 1.2 1995/02/22 21:37:20 sam Exp $\n * $Locker:  $\n *\n * Converting 'network' (little endian) byte order to host order\n *\n * This is a private implemenation - some platforms do not provide\n * this functionality. For those that do, this file should define\n * the operations in terms of the platform specific API\n */\n\n#ifndef _QHTON_H_\n#define _QHTON_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n/*\n * Mac is in network order already\n *\n * XXX SANE format\n */\n#if defined(__MPW__) || defined(__THINKC__)\n#define HTONL(x) (x)\n#define NTOHL(x) (x)\n#define HTONS(x) (x)\n#define NTOHS(x) (x)\n\n    typedef float net_float;\n\n#define HTONF(x) (x)\n#define NTOHF(x) (x)\n\n#endif\n\n/*\n * PC is big-endian\n */\n#if defined(__GNUC__) || defined(__WATCOMC__) || defined(__ZTC__)\n\n    long bswapl(long l);\n    short bswaps(short s);\n    float bswapf(float f);\n\n#define NTOHL(x) bswapl(x)\n#define HTONL(x) bswapl(x)\n#define NTOHS(x) bswaps(x)\n#define HTONS(x) bswaps(x)\n\n    typedef float net_float;\n\n#define HTONF(x) bswapf(x)\n#define NTOHF(x) bswapf(x)\n\n#endif\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/quantize.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: quantize.h 1.2 1995/02/22 21:37:21 sam Exp $\n * $Locker:  $\n *\n * Definitons for image quantizing\n */\n\nvoid BR_PUBLIC_ENTRY BrQuantBegin(void);\nvoid BR_PUBLIC_ENTRY BrQuantEnd(void);\n\n/*\n * add array of <size> rgb values to quantizer\n */\nvoid BR_PUBLIC_ENTRY BrQuantAddColours(br_uint_8 *colours, br_uint_32 size);\n\n/*\n * make optimum palette\n */\nvoid BR_PUBLIC_ENTRY BrQuantMakePalette(int base, int num_entries, br_pixelmap *palette);\n\n/*\n * given palette with base and num_entries, setup internal map\n */\nvoid BR_PUBLIC_ENTRY BrQuantPrepareMapping(int base, int num_entries, br_pixelmap *palette);\n\n/*\n * get <size> index values for array of <size> rgb values\n */\nvoid BR_PUBLIC_ENTRY BrQuantMapColours(int base, br_uint_8 *colours, br_uint_8 *mapped_colours, int size);\n"
  },
  {
    "path": "bren/inc/quat.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: quat.h 1.5 1995/02/22 21:37:21 sam Exp $\n * $Locker:  $\n *\n * Type descibing a unit quaternion\n */\n#ifndef _QUAT_H_\n#define _QUAT_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    typedef struct br_quat\n    {\n        br_scalar x;\n        br_scalar y;\n        br_scalar z;\n        br_scalar w;\n    } br_quat;\n\n#define BR_QUAT(x, y, z, w)                                                                                            \\\n    {                                                                                                                  \\\n        BR_SCALAR(x), BR_SCALAR(y), BR_SCALAR(z), BR_SCALAR(w)                                                         \\\n    }\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/scalar.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: scalar.h 1.20 1995/05/25 13:37:37 sam Exp $\n * $Locker:  $\n *\n * Scalar type\n *\n * External defines:\n *\n * BASED_FIXED\n *  True if system is based on signed 16.16 fixed point\n *\n * BASED_FLOAT\n *  True if system is based on 32 bit floating point\n *\n * One of these must be defined and the appropriate libraries must be used\n */\n#ifndef _SCALAR_H_\n#define _SCALAR_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n#if !defined(BASED_FIXED)\n#define BASED_FIXED 0\n#endif\n\n#if !defined(BASED_FLOAT)\n#define BASED_FLOAT 0\n#endif\n\n#if !BASED_FIXED && !BASED_FLOAT\n#undef BASED_FLOAT\n#define BASED_FLOAT 0\n#undef BASED_FIXED\n#define BASED_FIXED 1\n#endif\n\n    /**\n     ** Basic types - either fixed or float\n     **/\n\n#if BASED_FIXED\n\n    /*\n     * Reference an external symbol to make sure\n     * the right library is linked\n     */\n    extern int _BR_Fixed_Point_Scalar;\n\n    /*\n     * Fixed base types\n     */\n    typedef br_fixed_ls br_scalar;\n    typedef br_fixed_lsf br_fraction;\n    typedef br_fixed_luf br_ufraction;\n\n#define BR_SCALAR_EPSILON 0x0001\n#define BR_SCALAR_MAX 0x7fffffff\n#define BR_SCALAR_MIN 0x80000000\n\n/*\n * Macros for static initialisation\n */\n#define BR_SCALAR(x) ((br_scalar)(BR_ONE_LS * (x)))\n#define BR_FRACTION(x) ((br_fraction)((BR_ONE_LSF * (x)) >= BR_ONE_LSF ? BR_ONE_LSF - 1 : BR_ONE_LSF * (x)))\n#define BR_UFRACTION(x) ((br_ufraction)((BR_ONE_LUF * (x)) >= BR_ONE_LUF ? BR_ONE_LUF - 1 : BR_ONE_LUF * (x)))\n\n/*\n * Macros for type conversion\n */\n#define BrFloatToScalar(f) ((br_scalar)((f) * (float)BR_ONE_LS))\n#define BrScalarToFloat(s) ((s) / (float)BR_ONE_LS)\n\n#define BrIntToScalar(i) ((br_scalar)((i) * (int)BR_ONE_LS))\n#define BrScalarToInt(s) ((s) / (int)BR_ONE_LS)\n\n#define BrFixedToScalar(f) (f)\n#define BrScalarToFixed(s) (s)\n\n#define BrFractionToScalar(f) ((br_scalar)((f)*2))\n#define BrScalarToFraction(s) ((br_fraction)((s) / 2))\n\n#define BrUFractionToScalar(f) ((br_scalar)(f))\n#define BrScalarToUFraction(s) ((br_ufraction)(s))\n\n/*\n * Various arithmetic operations\n */\n#define BR_ADD(a, b) ((a) + (b))\n#define BR_SUB(a, b) ((a) - (b))\n#define BR_MUL(a, b) BrFixedMul(a, b)\n#define BR_SQR(a) BrFixedSqr(a)\n\n#define BR_ABS(a) BrFixedAbs(a)\n\n#define BR_DIV(a, b) BrFixedDiv(a, b)\n#define BR_DIVR(a, b) BrFixedDivR(a, b)\n#define BR_MULDIV(a, b, c) BrFixedMulDiv(a, b, c)\n#define BR_RCP(a) BrFixedRcp(a)\n\n#define BR_CONST_MUL(a, b) ((a) * (b))\n#define BR_CONST_DIV(a, b) ((a) / (b))\n\n#define BR_MAC2(a, b, c, d) BrFixedMac2(a, b, c, d)\n#define BR_MAC3(a, b, c, d, e, f) BrFixedMac3(a, b, c, d, e, f)\n#define BR_MAC4(a, b, c, d, e, f, g, h) BrFixedMac4(a, b, c, d, e, f, g, h)\n\n#define BR_MAC2DIV(a, b, c, d, e) BrFixedMac2Div(a, b, c, d, e)\n#define BR_MAC3DIV(a, b, c, d, e, f, g) BrFixedMac3Div(a, b, c, d, e, f, g)\n#define BR_MAC4DIV(a, b, c, d, e, f, g, h, i) BrFixedMac4Div(a, b, c, d, e, f, g, h, i)\n\n#define BR_SQR2(a, b) BrFixedSqr2(a, b)\n#define BR_SQR3(a, b, c) BrFixedSqr3(a, b, c)\n#define BR_SQR4(a, b, c, d) BrFixedSqr4(a, b, c, d)\n\n#define BR_FMAC2(a, b, c, d) BrFixedFMac2(a, b, c, d)\n#define BR_FMAC3(a, b, c, d, e, f) BrFixedFMac3(a, b, c, d, e, f)\n#define BR_FMAC4(a, b, c, d, e, f, g, h) BrFixedFMac4(a, b, c, d, e, f, g, h)\n\n#define BR_LENGTH2(a, b) BrFixedLength2(a, b)\n#define BR_LENGTH3(a, b, c) BrFixedLength3(a, b, c)\n#define BR_LENGTH4(a, b, c, d) BrFixedLength4(a, b, c, d)\n\n#define BR_RLENGTH2(a, b) BrFixedRLength2(a, b)\n#define BR_RLENGTH3(a, b, c) BrFixedRLength3(a, b, c)\n#define BR_RLENGTH4(a, b, c, d) BrFixedRLength4(a, b, c, d)\n\n#define BR_POW(a, b) BrFixedPow((a), (b))\n#define BR_SQRT(a) BrFixedSqrt(a)\n\n#endif\n\n#if BASED_FLOAT\n\n    /*\n     * Reference an external symbol to make sure\n     * the right library is linked\n     */\n    extern int _BR_Floating_Point_Scalar;\n\n    /*\n     * Floating point base types\n     */\n    typedef float br_scalar;\n    typedef float br_fraction;\n    typedef float br_ufraction;\n\n#define BR_SCALAR_EPSILON 1.192092896e-7f\n#define BR_SCALAR_MAX 3.402823466e+38f\n#define BR_SCALAR_MIN (-3.402823466e+38f)\n\n/*\n * Macros for static initialisation\n */\n#define BR_SCALAR(x) ((br_scalar)(x))\n#define BR_FRACTION(x) ((br_fraction)(x))\n#define BR_UFRACTION(x) ((br_ufraction)(x))\n\n/*\n * Macros for type conversion\n */\n#define BrFloatToScalar(f) (f)\n#define BrScalarToFloat(c) (c)\n\n#define BrIntToScalar(i) ((br_scalar)(i))\n#define BrScalarToInt(s) ((int)(s))\n\n#define BrFixedToScalar(f) ((br_scalar)((f) / (float)BR_ONE_LS))\n#define BrScalarToFixed(s) (br_fixed_ls)((s) * (br_scalar)BR_ONE_LS)\n\n#define BrFractionToScalar(f) (f)\n#define BrScalarToFraction(s) (s)\n\n#define BrUFractionToScalar(f) (f)\n#define BrScalarToUFraction(s) (s)\n\n#ifndef _NO_PROTOTYPES\n#if defined(_MSC_VER) && !defined(__H2INC__)\n#include <math.h>\n#elif defined(__IBMC__)\n#include <math.h>\n#else\n    double fabs(double);\n    double fabs(double);\n    double sqrt(double);\n    double cos(double);\n    double sin(double);\n    double acos(double);\n    double asin(double);\n    double atan2(double, double);\n#endif\n#endif\n\n/*\n * Various arithmetic operations\n */\n#define BR_ADD(a, b) ((a) + (b))\n#define BR_SUB(a, b) ((a) - (b))\n#define BR_MUL(a, b) ((a) * (b))\n#define BR_SQR(a) ((a) * (a))\n\n#define BR_ABS(a) fabs(a)\n\n#define BR_DIV(a, b) ((a) / (b))\n#define BR_DIVR(a, b) ((a) / (b))\n#define BR_MULDIV(a, b, c) ((a) * (b) / (c))\n#define BR_RCP(a) (1.0 / (a))\n\n#define BR_CONST_MUL(a, b) ((a) * (b))\n#define BR_CONST_DIV(a, b) ((a) / (b))\n\n#define BR_MAC2(a, b, c, d) ((a) * (b) + (c) * (d))\n#define BR_MAC3(a, b, c, d, e, f) ((a) * (b) + (c) * (d) + (e) * (f))\n#define BR_MAC4(a, b, c, d, e, f, g, h) ((a) * (b) + (c) * (d) + (e) * (f) + (g) * (h))\n\n#define BR_MAC2DIV(a, b, c, d, e) (((a) * (b) + (c) * (d)) / e)\n#define BR_MAC3DIV(a, b, c, d, e, f, g) (((a) * (b) + (c) * (d) + (e) * (f)) / g)\n#define BR_MAC4DIV(a, b, c, d, e, f, g, h, i) (((a) * (b) + (c) * (d) + (e) * (f) + (g) * (h)) / i)\n\n#define BR_SQR2(a, b) ((a) * (a) + (b) * (b))\n#define BR_SQR3(a, b, c) ((a) * (a) + (b) * (b) + (c) * (c))\n#define BR_SQR4(a, b, c, d) ((a) * (a) + (b) * (b) + (c) * (c) + (d) * (d))\n\n#define BR_FMAC2(a, b, c, d) ((a) * (b) + (c) * (d))\n#define BR_FMAC3(a, b, c, d, e, f) ((a) * (b) + (c) * (d) + (e) * (f))\n#define BR_FMAC4(a, b, c, d, e, f, g, h) ((a) * (b) + (c) * (d) + (e) * (f) + (g) * (h))\n\n#define BR_LENGTH2(a, b) sqrt((a) * (a) + (b) * (b))\n#define BR_LENGTH3(a, b, c) sqrt((a) * (a) + (b) * (b) + (c) * (c))\n#define BR_LENGTH4(a, b, c, d) sqrt((a) * (a) + (b) * (b) + (c) * (c) + (d) * (d))\n\n#define BR_RLENGTH2(a, b) (1.0 / sqrt((a) * (a) + (b) * (b)))\n#define BR_RLENGTH3(a, b, c) (1.0 / sqrt((a) * (a) + (b) * (b) + (c) * (c)))\n#define BR_RLENGTH4(a, b, c, d) (1.0 / sqrt((a) * (a) + (b) * (b) + (c) * (c) + (d) * (d)))\n\n#define BR_POW(a, b) pow((a), (b))\n#define BR_SQRT(a) sqrt(a)\n\n#endif\n\n/*\n * Make sure PI is defined\n */\n#ifndef PI\n#define PI 3.14159265358979323846\n#endif\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/scale.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: scale.h 1.2 1995/02/22 21:37:23 sam Exp $\n * $Locker:  $\n *\n * Definitons for image scaling\n */\n\nvoid BR_PUBLIC_ENTRY BrScaleBegin(void);\nvoid BR_PUBLIC_ENTRY BrScaleEnd(void);\n\n/*\n * scale pixelmap src to new_x,new_y with filter width fwidth\n * src must be BR_PMT_RGB_888\n */\nbr_pixelmap *BR_PUBLIC_ENTRY BrPixelmapScale(br_pixelmap *src, br_uint_32 new_x, br_uint_32 new_y, float fwidth);\n"
  },
  {
    "path": "bren/inc/tmap.h",
    "content": "/*************************************************************************\n\n    Texture map (TMAP)\n\n    This manages I/O and caching for BPMPs\n\n*************************************************************************/\n#ifndef TMAP_H\n#define TMAP_H\n\nconst CTG kctgTmap = 'TMAP';\nconst CTG kctgTxxf = 'TXXF';\n\n// tmap on file\nstruct TMAPF\n{\n    short bo;\n    short osk;\n    short cbRow;\n    byte type;\n    byte grftmap;\n    short xpLeft;\n    short ypTop;\n    short dxp;\n    short dyp;\n    short xpOrigin;\n    short ypOrigin;\n    // void *rgb; \t\t// pixels follow immediately after TMAPF\n};\nconst ulong kbomTmapf = 0x54555000;\n\n/* A TeXture XransForm on File */\ntypedef struct _txxff\n{\n    short bo;  // byte order\n    short osk; // OS kind\n    BMAT23 bmat23;\n} TXXFF, *PTXXFF;\nconst BOM kbomTxxff = 0x5FFF0000;\n\n// REVIEW *****: should TMAPs have shade table chunks under them, or\n//   is the shade table a global animal?  Right now it's global.\n\n/****************************************\n    The TMAP class\n****************************************/\ntypedef class TMAP *PTMAP;\n#define TMAP_PAR BACO\n#define kclsTMAP 'TMAP'\nclass TMAP : public TMAP_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n  protected:\n    BPMP _bpmp;\n    bool _fImported; // if fTrue, BRender allocated the pixels\n                     // if fFalse, we allocated the pixels\n  protected:\n    TMAP(void)\n    {\n    } // can't instantiate directly; must use PtmapRead\n#ifdef NOT_YET_REVIEWED\n    void TMAP::_SortInverseTable(byte *prgb, long cbRgb, BRCLR brclrLo, BRCLR brclrHi);\n#endif // NOT_YET_REVIEWED\n  public:\n    ~TMAP(void);\n\n    //  REVIEW *****(peted): MBMP's ...Read function just takes a PBLCK; this\n    //  is more like the FRead... function, just without the BACO stuff.  Why\n    //  the difference?\n    //\tAddendum: to enable compiling 'TMAP' chunks, I added an FWrite that does\n    //\ttake just a PBLCK.  Should this be necessary for PtmapRead in the future,\n    //\tit's a simple matter of extracting the code in PtmapRead that is needed,\n    //\tlike I did for FWrite.\n    static PTMAP PtmapRead(PCFL pcfl, CTG ctg, CNO cno);\n    bool FWrite(PCFL pcfl, CTG ctg, CNO *pcno);\n\n    //\ta chunky resource reader for a TMAP\n    static bool FReadTmap(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n\n    //\tGiven a BPMP (a Brender br_pixelmap), create a TMAP\n    static PTMAP PtmapNewFromBpmp(BPMP *pbpmp);\n\n    //\tGive back the bpmp for this TMAP\n    BPMP *Pbpmp(void)\n    {\n        return &_bpmp;\n    }\n\n    //\tReads a .bmp file.\n    static PTMAP PtmapReadNative(FNI *pfni, PGL pglclr = pvNil);\n\n    // Writes a standalone TMAP-chunk file (not a .chk)\n    bool FWriteTmapChkFile(PFNI pfniDst, bool fCompress, PMSNK pmsnkErr = pvNil);\n\n    // Creates a TMAP from the width, height, and an array of bytes\n    static PTMAP PtmapNew(byte *prgbPixels, long dxWidth, long dxHeight);\n\n    // Some useful file methods\n    long CbOnFile(void)\n    {\n        return (size(TMAPF) + LwMul(_bpmp.row_bytes, _bpmp.height));\n    }\n    bool FWrite(PBLCK pblck);\n\n#ifdef NOT_YET_REVIEWED\n    // Useful shade-table type method\n    byte *PrgbBuildInverseTable(void);\n#endif // NOT_YET_REVIEWED\n};\n\n#endif // TMAP_H\n"
  },
  {
    "path": "bren/inc/transfrm.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: transfrm.h 1.11 1995/02/22 21:37:24 sam Exp $\n * $Locker:  $\n *\n * Structure describing an affine transform from one coordinate space\n * to another\n */\n#ifndef _TRANSFRM_H_\n#define _TRANSFRM_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    /*\n     * Type of actor position\n     */\n    enum\n    {\n        BR_TRANSFORM_MATRIX34,\n        BR_TRANSFORM_MATRIX34_LP,\n        BR_TRANSFORM_QUAT,\n        BR_TRANSFORM_EULER,\n        BR_TRANSFORM_LOOK_UP,\n        BR_TRANSFORM_TRANSLATION,\n        BR_TRANSFORM_IDENTITY,\n        BR_TRANSFORM_MAX\n    };\n\n    typedef struct br_transform\n    {\n\n        /*\n         * Type of position\n         */\n        br_uint_16 type;\n\n        /*\n         * Union of the various means of describing a transform -\n         * these are explicity arrranged so that any exlicit transform\n         * will always be available as br_transform.t.translate\n         */\n        union {\n            /*\n             * Affine 3x4 matrix\n             */\n            br_matrix34 mat;\n\n            /*\n             * Euler angles and translation\n             */\n            struct\n            {\n                br_euler e;\n                br_scalar _pad[7];\n                br_vector3 t;\n            } euler;\n\n            /*\n             * Unit quaternion and translation\n             */\n            struct\n            {\n                br_quat q;\n                br_scalar _pad[5];\n                br_vector3 t;\n            } quat;\n\n            /*\n             * Lookat vector, up vector and translation\n             */\n            struct\n            {\n                br_vector3 look;\n                br_vector3 up;\n                br_scalar _pad[3];\n                br_vector3 t;\n            } look_up;\n\n            /*\n             * Just a translation\n             */\n            struct\n            {\n                br_scalar _pad[9];\n                br_vector3 t;\n            } translate;\n        } t;\n    } br_transform;\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/traverse.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: traverse.h 1.2 1995/02/22 21:37:24 sam Exp $\n * $Locker:  $\n *\n * Definitons for an traversals\n */\n#ifndef _TRAVERSE_H_\n#define _TRAVERSE_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    /*\n     * The system traversal types\n     */\n    enum\n    {\n        BR_TRAVERSE_RENDER = 0x0001,\n        BR_TRAVERSE_UPDATE = 0x0002,\n        BR_TRAVERSE_COLLIDE = 0x0004,\n        BR_TRAVERSE_PICK = 0x0008,\n        BR_TRAVERSE_FIND = 0x0010,\n        BR_TRAVERSE_BOUNDS = 0x0020,\n\n        /*\n         * Starting point for user defined values\n         */\n        BR_TRAVERSE_USER_0 = 0x0100,\n    };\n\n    /*\n     * Return flags from actor.traverse callback\n     */\n    enum\n    {\n        BR_TRAVERSE_ACTOR = 0x0001,\n        BR_TRAVERSE_CHILDREN = 0x0002,\n    };\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/vecfns.h",
    "content": "/*\n * Copyright (c) 1992,1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: vecfns.h 1.11 1995/06/30 16:09:04 sam Exp $\n * $Locker:  $\n *\n * Inline versions of the vector operations (could do compiler specific\n * versions for compilers that support inline, ie: gcc)\n */\n\n#ifndef _VECFNS_H_\n#define _VECFNS_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n/**\n ** 2D VECTORS\n **/\n\n/*\n * v1=v2\n */\n#define BrVector2Copy(v1, v2)                                                                                          \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = (v2)->v[0];                                                                                       \\\n        (v1)->v[1] = (v2)->v[1];                                                                                       \\\n    } while (0)\n\n/*\n * v1=(s1,s2)\n */\n#define BrVector2Set(v1, s1, s2)                                                                                       \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = s1;                                                                                               \\\n        (v1)->v[1] = s2;                                                                                               \\\n    } while (0)\n\n#define BrVector2SetInt(v1, i1, i2)                                                                                    \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = BrIntToScalar(i1);                                                                                \\\n        (v1)->v[1] = BrIntToScalar(i2);                                                                                \\\n    } while (0)\n\n#define BrVector2SetFloat(v1, f1, f2)                                                                                  \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = BrFloatToScalar(f1);                                                                              \\\n        (v1)->v[1] = BrFloatToScalar(f2);                                                                              \\\n    } while (0)\n\n/*\n * v1=-v2\n */\n#define BrVector2Negate(v1, v2)                                                                                        \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = -(v2)->v[0];                                                                                      \\\n        (v1)->v[1] = -(v2)->v[1];                                                                                      \\\n    } while (0)\n\n/*\n * v1=v2+v3\n */\n#define BrVector2Add(v1, v2, v3)                                                                                       \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = (v2)->v[0] + (v3)->v[0];                                                                          \\\n        (v1)->v[1] = (v2)->v[1] + (v3)->v[1];                                                                          \\\n    } while (0)\n\n/*\n * v1+=v2\n */\n#define BrVector2Accumulate(v1, v2)                                                                                    \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] += (v2)->v[0];                                                                                      \\\n        (v1)->v[1] += (v2)->v[1];                                                                                      \\\n    } while (0)\n\n/*\n * v1+=v2*scalar\n */\n#define BrVector2AccumulateScale(v1, v2, s)                                                                            \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] += BR_MUL((v2)->v[0], (s));                                                                         \\\n        (v1)->v[1] += BR_MUL((v2)->v[1], (s));                                                                         \\\n    } while (0)\n\n/*\n * v1=v2-v3\n */\n#define BrVector2Sub(v1, v2, v3)                                                                                       \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = (v2)->v[0] - (v3)->v[0];                                                                          \\\n        (v1)->v[1] = (v2)->v[1] - (v3)->v[1];                                                                          \\\n    } while (0)\n\n/*\n * v1=v2*scalar\n */\n#define BrVector2Scale(v1, v2, s)                                                                                      \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = BR_MUL((v2)->v[0], (s));                                                                          \\\n        (v1)->v[1] = BR_MUL((v2)->v[1], (s));                                                                          \\\n    } while (0)\n\n/*\n * v1=v2/scalar\n */\n#define BrVector2InvScale(v1, v2, s)                                                                                   \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = BR_DIV((v2)->v[0], (s));                                                                          \\\n        (v1)->v[1] = BR_DIV((v2)->v[1], (s));                                                                          \\\n    } while (0)\n\n/*\n *  = v1.v2\n */\n#define BrVector2Dot(v1, v2) BR_MAC2((v1)->v[0], (v2)->v[0], (v1)->v[1], (v2)->v[1])\n\n/*\n *  = |v1|\n */\n#define BrVector2Length(v1) BR_LENGTH2((v1)->v[0], (v1)->v[1])\n\n/*\n *  = |v1| * |v1|\n */\n#define BrVector2LengthSquared(v1) BR_SQR2((v1)->v[0], (v1)->v[1])\n\n/**\n ** 3D VECTORS\n **/\n\n/*\n * v1=v2\n */\n#define BrVector3Copy(v1, v2)                                                                                          \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = (v2)->v[0];                                                                                       \\\n        (v1)->v[1] = (v2)->v[1];                                                                                       \\\n        (v1)->v[2] = (v2)->v[2];                                                                                       \\\n    } while (0)\n\n/*\n * v1=(s1,s2,s3)\n */\n#define BrVector3Set(v1, s1, s2, s3)                                                                                   \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = (s1);                                                                                             \\\n        (v1)->v[1] = (s2);                                                                                             \\\n        (v1)->v[2] = (s3);                                                                                             \\\n    } while (0)\n\n#define BrVector3SetInt(v1, i1, i2, i3)                                                                                \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = BrIntToScalar(i1);                                                                                \\\n        (v1)->v[1] = BrIntToScalar(i2);                                                                                \\\n        (v1)->v[2] = BrIntToScalar(i3);                                                                                \\\n    } while (0)\n\n/*\n * v1=-v2\n */\n#define BrVector3Negate(v1, v2)                                                                                        \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = -(v2)->v[0];                                                                                      \\\n        (v1)->v[1] = -(v2)->v[1];                                                                                      \\\n        (v1)->v[2] = -(v2)->v[2];                                                                                      \\\n    } while (0)\n\n/*\n * v1=v2+v3\n */\n#define BrVector3Add(v1, v2, v3)                                                                                       \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = (v2)->v[0] + (v3)->v[0];                                                                          \\\n        (v1)->v[1] = (v2)->v[1] + (v3)->v[1];                                                                          \\\n        (v1)->v[2] = (v2)->v[2] + (v3)->v[2];                                                                          \\\n    } while (0)\n\n/*\n * v1+=v2\n */\n#define BrVector3Accumulate(v1, v2)                                                                                    \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] += (v2)->v[0];                                                                                      \\\n        (v1)->v[1] += (v2)->v[1];                                                                                      \\\n        (v1)->v[2] += (v2)->v[2];                                                                                      \\\n    } while (0)\n\n/*\n * v1+=v2*scalar\n */\n#define BrVector3AccumulateScale(v1, v2, s)                                                                            \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] += BR_MUL((v2)->v[0], (s));                                                                         \\\n        (v1)->v[1] += BR_MUL((v2)->v[1], (s));                                                                         \\\n        (v1)->v[2] += BR_MUL((v2)->v[2], (s));                                                                         \\\n    } while (0)\n\n/*\n * v1=v2-v3\n */\n#define BrVector3Sub(v1, v2, v3)                                                                                       \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = (v2)->v[0] - (v3)->v[0];                                                                          \\\n        (v1)->v[1] = (v2)->v[1] - (v3)->v[1];                                                                          \\\n        (v1)->v[2] = (v2)->v[2] - (v3)->v[2];                                                                          \\\n    } while (0)\n\n/*\n * v1=v2*scalar\n */\n#define BrVector3Scale(v1, v2, s)                                                                                      \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = BR_MUL((v2)->v[0], (s));                                                                          \\\n        (v1)->v[1] = BR_MUL((v2)->v[1], (s));                                                                          \\\n        (v1)->v[2] = BR_MUL((v2)->v[2], (s));                                                                          \\\n    } while (0)\n\n/*\n * v1=v2/scalar\n */\n#define BrVector3InvScale(v1, v2, s)                                                                                   \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = BR_DIV((v2)->v[0], (s));                                                                          \\\n        (v1)->v[1] = BR_DIV((v2)->v[1], (s));                                                                          \\\n        (v1)->v[2] = BR_DIV((v2)->v[2], (s));                                                                          \\\n    } while (0)\n\n/*\n *  = v1.v2\n */\n#define BrVector3Dot(v1, v2) BR_MAC3((v1)->v[0], (v2)->v[0], (v1)->v[1], (v2)->v[1], (v1)->v[2], (v2)->v[2])\n\n/*\n * v1 = v2 x v3\n */\n#define BrVector3Cross(v1, v2, v3)                                                                                     \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = BR_MUL((v2)->v[1], (v3)->v[2]) - BR_MUL((v2)->v[2], (v3)->v[1]);                                  \\\n        (v1)->v[1] = BR_MUL((v2)->v[2], (v3)->v[0]) - BR_MUL((v2)->v[0], (v3)->v[2]);                                  \\\n        (v1)->v[2] = BR_MUL((v2)->v[0], (v3)->v[1]) - BR_MUL((v2)->v[1], (v3)->v[0]);                                  \\\n    } while (0)\n\n/*\n *  = |v1|\n */\n#define BrVector3Length(v1) BR_LENGTH3((v1)->v[0], (v1)->v[1], (v1)->v[2])\n\n/*\n * = |v1| * |v1|\n */\n#define BrVector3LengthSquared(v1) BR_SQR3((v1)->v[0], (v1)->v[1], (v1)->v[2])\n\n/*\n * v1 = v2/|v2|\n */\n#define BrVector3Normalise(v1, v2)                                                                                     \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        br_scalar _scale;                                                                                              \\\n        _scale = BR_LENGTH3((v2)->v[0], (v2)->v[1], (v2)->v[2]);                                                       \\\n        if (_scale > (BR_SCALAR_EPSILON * 2))                                                                          \\\n        {                                                                                                              \\\n            _scale = BR_RCP(_scale);                                                                                   \\\n            (v1)->v[0] = BR_MUL((v2)->v[0], _scale);                                                                   \\\n            (v1)->v[1] = BR_MUL((v2)->v[1], _scale);                                                                   \\\n            (v1)->v[2] = BR_MUL((v2)->v[2], _scale);                                                                   \\\n        }                                                                                                              \\\n        else                                                                                                           \\\n        {                                                                                                              \\\n            (v1)->v[0] = BR_FRACTION(1.0);                                                                             \\\n            (v1)->v[1] = BR_FRACTION(0.0);                                                                             \\\n            (v1)->v[2] = BR_FRACTION(0.0);                                                                             \\\n        }                                                                                                              \\\n    } while (0)\n\n/*\n * v1 = v2/|v2|\n */\n#define BrVector3NormaliseQuick(v1, v2)                                                                                \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        br_scalar _scale;                                                                                              \\\n        _scale = BR_RCP(BR_LENGTH3((v2)->v[0], (v2)->v[1], (v2)->v[2]));                                               \\\n        BrVector3Scale(v1, v2, _scale);                                                                                \\\n    } while (0)\n\n/*\n * v1 = v2/|v2| (low precision)\n */\n#define BrVector3NormaliseLP(v1, v2)                                                                                   \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        br_scalar _scale;                                                                                              \\\n        _scale = BR_RCP(BR_LENGTH3((v2)->v[0], (v2)->v[1], (v2)->v[2]));                                               \\\n        BrVector3Scale(v1, v2, _scale);                                                                                \\\n    } while (0)\n\n/*\n * 4D Vectors\n */\n/*\n *  = v1.v2\n */\n#define BrVector4Dot(v1, v2)                                                                                           \\\n    BR_MAC4((v1)->v[0], (v2)->v[0], (v1)->v[1], (v2)->v[1], (v1)->v[2], (v2)->v[2], (v1)->v[3], (v2)->v[3])\n\n/*\n * v1=v2\n */\n#define BrVector4Copy(v1, v2)                                                                                          \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        (v1)->v[0] = (v2)->v[0];                                                                                       \\\n        (v1)->v[1] = (v2)->v[1];                                                                                       \\\n        (v1)->v[2] = (v2)->v[2];                                                                                       \\\n        (v1)->v[3] = (v2)->v[3];                                                                                       \\\n    } while (0)\n\n/*\n * v1 = v2/|v2|\n */\n#define BrVector2Normalise(v1, v2)                                                                                     \\\n    do                                                                                                                 \\\n    {                                                                                                                  \\\n        br_scalar _scale;                                                                                              \\\n        _scale = BR_LENGTH2((v2)->v[0], (v2)->v[1]);                                                                   \\\n        if (_scale > (BR_SCALAR_EPSILON * 2))                                                                          \\\n        {                                                                                                              \\\n            _scale = BR_RCP(_scale);                                                                                   \\\n            (v1)->v[0] = BR_MUL((v2)->v[0], _scale);                                                                   \\\n            (v1)->v[1] = BR_MUL((v2)->v[1], _scale);                                                                   \\\n        }                                                                                                              \\\n        else                                                                                                           \\\n        {                                                                                                              \\\n            (v1)->v[0] = BR_FRACTION(1.0);                                                                             \\\n            (v1)->v[1] = BR_FRACTION(0.0);                                                                             \\\n        }                                                                                                              \\\n    } while (0)\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/vector.h",
    "content": "/*\n * Copyright (c) 1992,1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: vector.h 1.9 1995/06/30 16:09:07 sam Exp $\n * $Locker:  $\n *\n * Vector types\n */\n\n#ifndef _VECTOR_H_\n#define _VECTOR_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    /*\n     * Vector types\n     */\n    typedef struct br_vector2\n    {\n        br_scalar v[2];\n    } br_vector2;\n\n    typedef struct br_vector3\n    {\n        br_scalar v[3];\n    } br_vector3;\n\n    typedef struct br_vector4\n    {\n        br_scalar v[4];\n    } br_vector4;\n\n    /*\n     * Integer vectors (used for integer bounding boxes)\n     */\n    typedef struct br_vector2i\n    {\n        br_int_32 v[2];\n    } br_vector2i;\n\n    typedef struct br_vector3i\n    {\n        br_int_32 v[3];\n    } br_vector3i;\n\n    typedef struct br_vector4i\n    {\n        br_int_32 v[4];\n    } br_vector4i;\n\n    /*\n     * Fraction vector types\n     */\n    typedef struct br_fvector2\n    {\n        br_fraction v[2];\n    } br_fvector2;\n\n    typedef struct br_fvector3\n    {\n        br_fraction v[3];\n    } br_fvector3;\n\n    typedef struct br_fvector4\n    {\n        br_fraction v[4];\n    } br_fvector4;\n\n    /*\n     * General structures for describing an axis aligned bounds\n     */\n    typedef struct br_bounds2\n    {\n        br_vector2 min; /* Minimum corner */\n        br_vector2 max; /* Maximum corner */\n    } br_bounds2;\n\n    typedef struct br_bounds3\n    {\n        br_vector3 min; /* Minimum corner */\n        br_vector3 max; /* Maximum corner */\n    } br_bounds3;\n\n    typedef struct br_bounds4\n    {\n        br_vector4 min; /* Minimum corner */\n        br_vector4 max; /* Maximum corner */\n    } br_bounds4;\n\n    /*\n     * Integer bounding boxes\n     */\n    typedef struct br_bounds2i\n    {\n        br_vector2i min; /* Minimum corner */\n        br_vector2i max; /* Maximum corner */\n    } br_bounds2i;\n\n    typedef struct br_bounds3i\n    {\n        br_vector3i min; /* Minimum corner */\n        br_vector3i max; /* Maximum corner */\n    } br_bounds3i;\n\n    typedef struct br_bounds4i\n    {\n        br_vector4i min; /* Minimum corner */\n        br_vector4i max; /* Maximum corner */\n    } br_bounds4i;\n\n    /*\n     * Backwards compatibility\n     */\n    typedef struct br_bounds3 br_bounds;\n\n/*\n * Macros for static initialisation\n */\n#define BR_VECTOR2(a, b)                                                                                               \\\n    {                                                                                                                  \\\n        BR_SCALAR(a), BR_SCALAR(b)                                                                                     \\\n    }\n#define BR_VECTOR3(a, b, c)                                                                                            \\\n    {                                                                                                                  \\\n        BR_SCALAR(a), BR_SCALAR(b), BR_SCALAR(c)                                                                       \\\n    }\n#define BR_VECTOR4(a, b, c, d)                                                                                         \\\n    {                                                                                                                  \\\n        BR_SCALAR(a), BR_SCALAR(b), BR_SCALAR(c), BR_SCALAR(d)                                                         \\\n    }\n\n#define BR_FVECTOR2(a, b)                                                                                              \\\n    {                                                                                                                  \\\n        BR_FRACTION(a), BR_FRACTION(b)                                                                                 \\\n    }\n#define BR_FVECTOR3(a, b, c)                                                                                           \\\n    {                                                                                                                  \\\n        BR_FRACTION(a), BR_FRACTION(b), BR_FRACTION(c)                                                                 \\\n    }\n#define BR_FVECTOR4(a, b, c, d)                                                                                        \\\n    {                                                                                                                  \\\n        BR_FRACTION(a), BR_FRACTION(b), BR_FRACTION(c), BR_FRACTION(d)                                                 \\\n    }\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n"
  },
  {
    "path": "bren/inc/wtcifix.h",
    "content": "/*\n * Copyright (c) 1992,1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: wtcifix.h 1.6 1995/02/22 21:37:27 sam Exp $\n * $Locker:  $\n *\n * Inline fixed point ops for Watcom C\n *\n */\nlong IFixedMul(long a, long b);\n#pragma aux IFixedMul = \"imul\tebx\"                                                                                     \\\n                        \"shrd\teax,edx,16\" parm nomemory[eax][ebx] modify nomemory[edx];\n\nlong IFixedDiv(long a, long b);\n#pragma aux IFixedDiv = \"mov\teax,edx\"                                                                                  \\\n                        \"shl\teax,16\"                                                                                   \\\n                        \"sar\tedx,16\"                                                                                   \\\n                        \"idiv\tebx\" parm nomemory[edx][ebx] modify nomemory[eax];\n\nlong IFixedDivR(long a, long b);\n#pragma aux IFixedDivR = \"cdq\"                                                                                         \\\n                         \"xchg\tedx,eax\"                                                                                \\\n                         \"shrd\teax,edx,16\"                                                                             \\\n                         \"sar\tedx,16\"                                                                                  \\\n                         \"idiv\tebx\" parm nomemory[eax][ebx] modify nomemory[edx];\n\nlong IFixedDivF(long a, long b);\n#pragma aux IFixedDivF = \"xor\teax,eax\"                                                                                 \\\n                         \"sar\tedx,1\"                                                                                   \\\n                         \"rcr\teax,1\"                                                                                   \\\n                         \"div\tebx\" parm nomemory[edx][ebx] modify nomemory[eax];\n\nlong IFixedRcp(long a);\n#pragma aux IFixedRcp = \"mov\tedx,1\"                                                                                    \\\n                        \"xor\teax,eax\"                                                                                  \\\n                        \"idiv\tebx\" parm nomemory[ebx] modify nomemory[eax edx];\n\nlong IFixedMulDiv(long a, long b, long c);\n#pragma aux IFixedMulDiv = \"imul\tebx\"                                                                                  \\\n                           \"idiv\tecx\" parm nomemory[eax][ebx][ecx] modify nomemory[edx];\n\nlong IFixedMac2(long a, long b, long c, long d);\n#pragma aux IFixedMac2 = \"imul\tedx\"                                                                                    \\\n                         \"shrd\teax,edx,16\"                                                                             \\\n                         \"xchg\tecx,eax\"                                                                                \\\n                         \"imul\tebx\"                                                                                    \\\n                         \"shrd\teax,edx,16\"                                                                             \\\n                         \"add\teax,ecx\" parm nomemory[eax][edx][ecx][ebx] modify nomemory;\n\nlong IFixedMac3(long a, long b, long c, long d, long e, long f);\n#pragma aux IFixedMac3 = \"imul\tedx\"                                                                                    \\\n                         \"shrd\teax,edx,16\"                                                                             \\\n                         \"xchg\tecx,eax\"                                                                                \\\n                         \"imul\tebx\"                                                                                    \\\n                         \"shrd\teax,edx,16\"                                                                             \\\n                         \"add\tecx,eax\"                                                                                 \\\n                         \"mov\teax,esi\"                                                                                 \\\n                         \"imul\tedi\"                                                                                    \\\n                         \"shrd\teax,edx,16\"                                                                             \\\n                         \"add\teax,ecx\" parm nomemory[eax][edx][ecx][ebx][esi][edi] modify nomemory;\n\nlong IFixedFMac2(short a, long b, short c, long d);\n#pragma aux IFixedFMac2 = \"cwde\"                                                                                       \\\n                          \"imul\tedx\"                                                                                   \\\n                          \"shrd\teax,edx,15\"                                                                            \\\n                          \"xchg\tecx,eax\"                                                                               \\\n                          \"cwde\"                                                                                       \\\n                          \"imul\tebx\"                                                                                   \\\n                          \"shrd\teax,edx,15\"                                                                            \\\n                          \"add\teax,ecx\" parm nomemory[ax][edx][cx][ebx] modify nomemory;\n\nlong IFixedFMac3(short a, long b, short c, long d, short e, long f);\n#pragma aux IFixedFMac3 = \"cwde\"                                                                                       \\\n                          \"imul\tedx\"                                                                                   \\\n                          \"shrd\teax,edx,15\"                                                                            \\\n                          \"xchg\tecx,eax\"                                                                               \\\n                          \"cwde\"                                                                                       \\\n                          \"imul\tebx\"                                                                                   \\\n                          \"shrd\teax,edx,15\"                                                                            \\\n                          \"add\tecx,eax\"                                                                                \\\n                          \"mov\teax,esi\"                                                                                \\\n                          \"cwde\"                                                                                       \\\n                          \"imul\tedi\"                                                                                   \\\n                          \"shrd\teax,edx,15\"                                                                            \\\n                          \"add\teax,ecx\" parm nomemory[ax][edx][cx][ebx][si][edi] modify nomemory;\n\nlong IFixedSqr(long a);\n#pragma aux IFixedSqr = \"imul\teax\"                                                                                     \\\n                        \"shrd\teax,edx,16\" parm nomemory[eax] modify nomemory[edx];\n\nlong IFixedSqr2(long a, long b);\n#pragma aux IFixedSqr2 = \"imul\teax\"                                                                                    \\\n                         \"xchg\tebx,eax\"                                                                                \\\n                         \"mov\tecx,edx\"                                                                                 \\\n                         \"imul\teax\"                                                                                    \\\n                         \"add\teax,ebx\"                                                                                 \\\n                         \"adc\tedx,ecx\"                                                                                 \\\n                         \"shrd\teax,edx,16\" parm nomemory[eax][ebx] modify nomemory[eax ebx ecx edx];\n\nlong IFixedSqr3(long a, long b, long c);\n#pragma aux IFixedSqr3 = \"imul\teax\"                                                                                    \\\n                         \"xchg\tebx,eax\"                                                                                \\\n                         \"mov\tecx,edx\"                                                                                 \\\n                         \"imul\teax\"                                                                                    \\\n                         \"add\tebx,eax\"                                                                                 \\\n                         \"adc\tecx,edx\"                                                                                 \\\n                         \"mov\teax,esi\"                                                                                 \\\n                         \"imul\teax\"                                                                                    \\\n                         \"add\teax,ebx\"                                                                                 \\\n                         \"adc\tedx,ecx\"                                                                                 \\\n                         \"shrd\teax,edx,16\" parm nomemory[eax][ebx][esi] modify nomemory[eax ebx ecx edx];\n\nlong IFixedSqr4(long a, long b, long c, long d);\n#pragma aux IFixedSqr4 = \"imul\teax\"                                                                                    \\\n                         \"xchg\tebx,eax\"                                                                                \\\n                         \"mov\tecx,edx\"                                                                                 \\\n                         \"imul\teax\"                                                                                    \\\n                         \"add\tebx,eax\"                                                                                 \\\n                         \"adc\tecx,edx\"                                                                                 \\\n                         \"mov\teax,esi\"                                                                                 \\\n                         \"imul\teax\"                                                                                    \\\n                         \"add\tebx,eax\"                                                                                 \\\n                         \"adc\tecx,edx\"                                                                                 \\\n                         \"mov\teax,edi\"                                                                                 \\\n                         \"imul\teax\"                                                                                    \\\n                         \"add\teax,ebx\"                                                                                 \\\n                         \"adc\tedx,ecx\"                                                                                 \\\n                         \"shrd\teax,edx,16\" parm nomemory[eax][ebx][esi][edi] modify nomemory[eax ebx ecx edx];\n\n#define BrFixedMul(a, b) IFixedMul(a, b)\n#define BrFixedMac2(a, b, c, d) IFixedMac2(a, b, c, d)\n#define BrFixedMac3(a, b, c, d, e, f) IFixedMac3(a, b, c, d, e, f)\n#define BrFixedMac4(a, b, c, d, e, f, g, h) (IFixedMac2(a, b, c, d) + IFixedMac2(e, f, g, h))\n#define BrFixedDiv(a, b) IFixedDiv(a, b)\n#define BrFixedDivR(a, b) IFixedDivR(a, b)\n#define BrFixedDivF(a, b) IFixedDivF(a, b)\n#define BrFixedMulDiv(a, b, c) IFixedMulDiv(a, b, c)\n#define BrFixedRcp(a) IFixedRcp(a)\n\n#define BrFixedSqr(a) IFixedSqr(a)\n#define BrFixedSqr2(a, b) IFixedSqr2(a, b)\n#define BrFixedSqr3(a, b, c) IFixedSqr3(a, b, c)\n#define BrFixedSqr4(a, b, c, d) IFixedSqr4(a, b, c, d)\n\n#define BrFixedFMac2(a, b, c, d) IFixedFMac2(a, b, c, d)\n#define BrFixedFMac3(a, b, c, d, e, f) IFixedFMac3(a, b, c, d, e, f)\n#define BrFixedFMac4(a, b, c, d, e, f, g, h) (IFixedFMac2(a, b, c, d) + IFixedFMac2(e, f, g, h))\n"
  },
  {
    "path": "bren/inc/zbmp.h",
    "content": "/*************************************************************************\n\n    zbmp.h: Z-buffer Bitmap Class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    BASE ---> BACO ---> ZBMP\n\n*************************************************************************/\n#ifndef ZBMP_H\n#define ZBMP_H\n\n#define kcbPixelZbmp 2 // Z-buffers are 2 bytes per pixel (16 bit)\n\n// ZBMP on file\nstruct ZBMPF\n{\n    short bo;\n    short osk;\n    short xpLeft;\n    short ypTop;\n    short dxp;\n    short dyp;\n    // void *rgb; \t\t// pixels follow immediately after ZBMPF\n};\nconst ulong kbomZbmpf = 0x55500000;\n\n/****************************************\n    ZBMP class\n****************************************/\ntypedef class ZBMP *PZBMP;\n#define ZBMP_PAR BACO\n#define kclsZBMP 'ZBMP'\nclass ZBMP : public ZBMP_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    RC _rc;      // bounding rectangle of ZBMP\n    long _cbRow; // bytes per row\n    long _cb;    // count of bytes in Z buffer\n    byte *_prgb; // Z buffer\n    ZBMP(void)\n    {\n    }\n\n  public:\n    static PZBMP PzbmpNew(long dxp, long dyp);\n    static PZBMP PzbmpNewFromBpmp(BPMP *pbpmp);\n    static PZBMP PzbmpRead(PBLCK pblck);\n    static bool FReadZbmp(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n    ~ZBMP(void);\n\n    byte *Prgb(void)\n    {\n        return _prgb;\n    }\n    long CbRow(void)\n    {\n        return _cbRow;\n    }\n\n    void Draw(byte *prgbPixels, long cbRow, long dyp, long xpRef, long ypRef, RC *prcClip = pvNil,\n              PREGN pregnClip = pvNil);\n    void DrawHalf(byte *prgbPixels, long cbRow, long dyp, long xpRef, long ypRef, RC *prcClip = pvNil,\n                  PREGN pregnClip = pvNil);\n\n    bool FWrite(PCFL pcfl, CTG ctg, CNO *pcno);\n};\n\n#endif ZBMP_H\n"
  },
  {
    "path": "bren/inc/zbproto.h",
    "content": "/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: zbproto.h 1.8 1995/02/22 21:37:28 sam Exp $\n * $Locker:  $\n *\n * Function prototypes for Z buffer renderer\n */\n#ifndef _ZBPROTO_H_\n#define _ZBPROTO_H_\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n#define BR_BOUNDS_MIN_X 0\n#define BR_BOUNDS_MIN_Y 1\n#define BR_BOUNDS_MAX_X 2\n#define BR_BOUNDS_MAX_Y 3\n\n    /*\n     * Callback function invoked when an actor is\n     * rendered\n     */\n    typedef void BR_CALLBACK br_renderbounds_cbfn(br_actor *actor, br_model *model, br_material *material,\n                                                  br_uint_8 style, br_matrix4 *model_to_screen, br_int_32 bounds[4]);\n\n#ifndef _NO_PROTOTYPES\n\n    void BR_PUBLIC_ENTRY BrZbBegin(br_uint_8 colour_type, br_uint_8 depth_type);\n    void BR_PUBLIC_ENTRY BrZbEnd(void);\n\n    void BR_PUBLIC_ENTRY BrZbSceneRenderBegin(br_actor *world, br_actor *camera, br_pixelmap *colour_buffer,\n                                              br_pixelmap *depth_buffer);\n\n    void BR_PUBLIC_ENTRY BrZbSceneRenderAdd(br_actor *tree);\n    void BR_PUBLIC_ENTRY BrZbSceneRenderEnd(void);\n\n    /*\n     * Wrapper that inokes above therr calls in order\n     */\n    void BR_PUBLIC_ENTRY BrZbSceneRender(br_actor *world, br_actor *camera, br_pixelmap *colour_buffer,\n                                         br_pixelmap *depth_buffer);\n\n    /*\n     * Used within custom model callbacks to render other models\n     */\n    void BR_PUBLIC_ENTRY BrZbModelRender(br_actor *actor, br_model *model, br_material *material, br_uint_8 style,\n                                         int on_screen, int use_custom);\n\n    br_renderbounds_cbfn *BR_PUBLIC_ENTRY BrZbSetRenderBoundsCallback(br_renderbounds_cbfn *new_cbfn);\n\n#ifdef __cplusplus\n};\n#endif\n#endif\n#endif\n"
  },
  {
    "path": "bren/makefile",
    "content": "#---bren.mak\n\n!IFNDEF MAKEFILE_BREN\nMAKEFILE_BREN = 1\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.def\n\n\n\n#BREN SOURCE DIRECTORIES\nBREN_SRC_DIR = $(SOC_ROOT)\\bren\n\n#BREN OBJ DIRECTORIES\nBREN_OBJ_ROOT_DIR = $(BREN_SRC_DIR)\\obj\nBREN_OBJ_DIR = $(BREN_OBJ_ROOT_DIR)\\$(BLD_TYPE_DIR)\nSOC_OBJ_DIR = $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\n\n!IF \"$(LOCAL_BUILD)\" == \"1\"\nBREN_TGT_DIR =\n!ELSE # LOCAL_BUILD\nBREN_TGT_DIR = $(BREN_OBJ_DIR)^\\\n!ENDIF # !LOCAL_BUILD\n\nBREN_TARGETS =\\\n    $(BREN_TGT_DIR)bwld.obj\\\n    $(BREN_TGT_DIR)stderr.obj\\\n    $(BREN_TGT_DIR)stdfile.obj\\\n    $(BREN_TGT_DIR)stdmem.obj\\\n    $(BREN_TGT_DIR)tmap.obj\\\n    $(BREN_TGT_DIR)zbmp.obj\n\n\n\n#-Compile rules-------------------------------------------------------------\n\n\nPROGRAM_DATABASE = $(BREN_TGT_DIR)soc.pdb\nPRECOMPILED_HEADER = $(BREN_TGT_DIR)soc.pch\n\nCPPEXTRA = /Zi /Fd$(PROGRAM_DATABASE) /Fp$(PRECOMPILED_HEADER)\n\nSRC_DIR=$(BREN_SRC_DIR)\nOBJ_DIR=$(BREN_OBJ_DIR)\nTGT_NAME=Brender\n\n!INCLUDE $(SOC_ROOT)\\makefile.rul\n\n\n\n#-Targets-------------------------------------------------------------------\n\nALL_BREN = $(BREN_TGT_DIR)bren.lib $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\\bren.lib\nALL_TARGETS_ROOT = $(ALL_TARGETS_ROOT) $(ALL_BREN)\n\nCLEAN_BREN = CLEAN_BREN_OBJ\nCLEAN_TARGETS_ROOT = $(CLEAN_TARGETS_ROOT) $(CLEAN_BREN)\n\n\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\n!IF \"$(LOCAL_BUILD)\" != \"0\"\nALL: $(BREN_OBJ_DIR) $(ALL_BREN)\nCLEAN: $(CLEAN_BREN) ALL\n!ENDIF # LOCAL_BUILD != 0\n\n$(BREN_OBJ_DIR) :\n    @echo Making Directories $(BREN_OBJ_DIR)...\n    if not exist $(BREN_OBJ_ROOT_DIR)/nul mkdir $(BREN_OBJ_ROOT_DIR)\n    if not exist $(BREN_OBJ_DIR)/nul mkdir $(BREN_OBJ_DIR)\n\n!ENDIF # !LOCAL_BUILD\n\n\nCLEAN_BREN_OBJ:\n    @echo <<delbren.bat\n@echo off\nDEL /q dummy.nul $(BREN_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c delbren.bat\n    del delbren.bat\n\n\n\n\n$(BREN_TGT_DIR)bren.lib : $(BREN_TARGETS)\n    $(LINK) -lib $(LFLAGS) \\\n    $(BREN_TARGETS) \\\n    -out:$(BREN_TGT_DIR)bren.lib\n    $(CHKERR)\n\n$(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\\bren.lib : $(BREN_TGT_DIR)bren.lib\n    if not exist $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR) md $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\n    $(CHKERR)\n    copy $(BREN_TGT_DIR)bren.lib $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\n    $(CHKERR)\n\n\n!ENDIF  # !MAKEFILE_BREN\n"
  },
  {
    "path": "bren/material.cpp",
    "content": "/*\n * Copyright (c) 1993 Argonaut Software Ltd. All rights reserved.\n *\n * Some test materials for the wld demo\n */\n#include \"argstd.h\"\n#include \"brender.h\"\n\nbr_material test_materials[] = {\n    {\n        \"grey\",\n        BR_COLOUR_RGB(255, 255, 255),    /* colour\t\t\t*/\n        {255},                           /* opacity\t\t\t*/\n        BR_UFRACTION(0.10),              /* ka\t\t\t\t*/\n        BR_UFRACTION(0.60),              /* kd\t\t\t\t*/\n        BR_UFRACTION(0.60),              /* ks\t\t\t\t*/\n        BR_SCALAR(50),                   /* power\t\t\t*/\n        BR_MATF_LIGHT | BR_MATF_GOURAUD, /* flags\t\t\t*/\n        0,\n        0, /* shift up/down   \t*/\n        0,\n        59, /* index base/range\t*/\n    },\n    {\n        \"grey_flat\",\n        BR_COLOUR_RGB(255, 255, 255), /* colour\t\t\t*/\n        {255},                        /* opacity\t\t\t*/\n        BR_UFRACTION(0.10),           /* ka\t\t\t\t*/\n        BR_UFRACTION(0.60),           /* kd\t\t\t\t*/\n        BR_UFRACTION(0.60),           /* ks\t\t\t\t*/\n        BR_SCALAR(20),                /* power\t\t\t*/\n        BR_MATF_LIGHT,                /* flags\t\t\t*/\n        0,\n        0, /* shift up/down   \t*/\n        10,\n        59, /* index base/range\t*/\n    },\n    {\n        \"beige\",\n        BR_COLOUR_RGB(255, 255, 255),    /* colour\t\t\t*/\n        {255},                           /* opacity\t\t\t*/\n        BR_UFRACTION(0.10),              /* ka\t\t\t\t*/\n        BR_UFRACTION(0.60),              /* kd\t\t\t\t*/\n        BR_UFRACTION(0.60),              /* ks\t\t\t\t*/\n        BR_SCALAR(20),                   /* power\t\t\t*/\n        BR_MATF_LIGHT | BR_MATF_GOURAUD, /* flags\t\t\t*/\n        0,\n        0, /* shift up/down   \t*/\n        10,\n        59, /* index base/range\t*/\n    },\n    {\n        \"beige_flat\",\n        BR_COLOUR_RGB(255, 255, 255), /* colour\t\t\t*/\n        {255},                        /* opacity\t\t\t*/\n        BR_UFRACTION(0.10),           /* ka\t\t\t\t*/\n        BR_UFRACTION(0.60),           /* kd\t\t\t\t*/\n        BR_UFRACTION(0.60),           /* ks\t\t\t\t*/\n        BR_SCALAR(20),                /* power\t\t\t*/\n        BR_MATF_LIGHT,                /* flags\t\t\t*/\n        0,\n        0, /* shift up/down   \t*/\n        10,\n        59, /* index base/range\t*/\n    },\n    {\n        \"blue\",\n        BR_COLOUR_RGB(255, 255, 255),    /* colour\t\t\t*/\n        {255},                           /* opacity\t\t\t*/\n        BR_UFRACTION(0.10),              /* ka\t\t\t\t*/\n        BR_UFRACTION(0.60),              /* kd\t\t\t\t*/\n        BR_UFRACTION(0.60),              /* ks\t\t\t\t*/\n        BR_SCALAR(20),                   /* power\t\t\t*/\n        BR_MATF_LIGHT | BR_MATF_GOURAUD, /* flags\t\t\t*/\n        0,\n        0, /* shift up/down   \t*/\n        74,\n        59, /* index base/range\t*/\n    },\n    {\n        \"blue_flat\",\n        BR_COLOUR_RGB(255, 255, 255), /* colour\t\t\t*/\n        {255},                        /* opacity\t\t\t*/\n        BR_UFRACTION(0.10),           /* ka\t\t\t\t*/\n        BR_UFRACTION(0.60),           /* kd\t\t\t\t*/\n        BR_UFRACTION(0.60),           /* ks\t\t\t\t*/\n        BR_SCALAR(20),                /* power\t\t\t*/\n        BR_MATF_LIGHT,                /* flags\t\t\t*/\n        0,\n        0, /* shift up/down   \t*/\n        74,\n        59, /* index base/range\t*/\n    },\n    {\n        \"red\",\n        BR_COLOUR_RGB(255, 255, 255),    /* colour\t\t\t*/\n        {255},                           /* opacity\t\t\t*/\n        BR_UFRACTION(0.10),              /* ka\t\t\t\t*/\n        BR_UFRACTION(0.60),              /* kd\t\t\t\t*/\n        BR_UFRACTION(0.60),              /* ks\t\t\t\t*/\n        BR_SCALAR(70),                   /* power\t\t\t*/\n        BR_MATF_LIGHT | BR_MATF_GOURAUD, /* flags\t\t\t*/\n        0,\n        0, /* shift up/down   \t*/\n        138,\n        59, /* index base/range\t*/\n    },\n    {\n        \"red_flat\",\n        BR_COLOUR_RGB(255, 255, 255), /* colour\t\t\t*/\n        {255},                        /* opacity\t\t\t*/\n        BR_UFRACTION(0.10),           /* ka\t\t\t\t*/\n        BR_UFRACTION(0.60),           /* kd\t\t\t\t*/\n        BR_UFRACTION(0.60),           /* ks\t\t\t\t*/\n        BR_SCALAR(20),                /* power\t\t\t*/\n        BR_MATF_LIGHT,                /* flags\t\t\t*/\n        0,\n        0, /* shift up/down   \t*/\n        138,\n        59, /* index base/range\t*/\n    },\n    {\n        \"green\",\n        BR_COLOUR_RGB(255, 255, 255),    /* colour\t\t\t*/\n        {255},                           /* opacity\t\t\t*/\n        BR_UFRACTION(0.10),              /* ka\t\t\t\t*/\n        BR_UFRACTION(0.60),              /* kd\t\t\t\t*/\n        BR_UFRACTION(0.40),              /* ks\t\t\t\t*/\n        BR_SCALAR(30),                   /* power\t\t\t*/\n        BR_MATF_LIGHT | BR_MATF_GOURAUD, /* flags\t\t\t*/\n        0,\n        0, /* shift up/down   \t*/\n        202,\n        44, /* index base/range\t*/\n    },\n    {\n        \"green_flat\",\n        BR_COLOUR_RGB(255, 255, 255), /* colour\t\t\t*/\n        {255},                        /* opacity\t\t\t*/\n        BR_UFRACTION(0.10),           /* ka\t\t\t\t*/\n        BR_UFRACTION(0.60),           /* kd\t\t\t\t*/\n        BR_UFRACTION(0.60),           /* ks\t\t\t\t*/\n        BR_SCALAR(20),                /* power\t\t\t*/\n        BR_MATF_LIGHT,                /* flags\t\t\t*/\n        0,\n        0, /* shift up/down   \t*/\n        202,\n        44, /* index base/range\t*/\n    },\n\n};\n\n/*\n * Size of the above table\n */\nint test_materials_count = ASIZE(test_materials);\n"
  },
  {
    "path": "bren/stderr.c",
    "content": "/*\n * Copyright (c) 1993 Argonaut Software Ltd. All rights reserved.\n *\n * $Id: stderr.c 1.3 1994/11/07 01:39:18 sam Exp $\n * $Locker: sam $\n *\n * Default error handler that reports error through stderr\n */\n#include <stdio.h>\n#include <stdlib.h>\n#include <windows.h>\n\n#include \"brender.h\"\n\nstatic void BR_CALLBACK BrStdioWarning(char *message)\n{\n    MessageBox(0, message, \"BRender Warning\", MB_OK);\n}\n\nstatic void BR_CALLBACK BrStdioError(char *message)\n{\n    MessageBox(0, message, \"BRender Fatal Error\", MB_OK);\n    exit(10);\n}\n\n/*\n * ErrorHandler structure\n */\nbr_diaghandler BrStdioDiagHandler = {\n    \"Stdio DiagHandler\",\n    BrStdioWarning,\n    BrStdioError,\n};\n\n/*\n * Override default\n */\nbr_diaghandler *_BrDefaultDiagHandler = &BrStdioDiagHandler;\n"
  },
  {
    "path": "bren/stdfile.c",
    "content": "/*\n * Copyright (c) 1993 Argonaut Software Ltd. All rights reserved.\n *\n * $Id: stdfile.c 1.5 1994/11/29 18:20:34 sam Exp $\n * $Locker: sam $\n *\n * Default file handler that uses <stdio.h>\n */\n#include <stddef.h>\n#include <stdlib.h>\n#include <string.h>\n#include <stdio.h>\n\n#include \"brender.h\"\n\n/*\n * Access functions for stdio\n */\nstatic br_uint_32 BR_CALLBACK BrStdioAttributes(void)\n{\n    return BR_FS_ATTR_READABLE | BR_FS_ATTR_WRITEABLE | BR_FS_ATTR_HAS_TEXT | BR_FS_ATTR_HAS_BINARY |\n           BR_FS_ATTR_HAS_ADVANCE;\n}\n\n/*\n * Open a file for reading\n *\n * Use BRENDER_PATH to locate the file if necessary\n *\n * Having found the file, invoke a supplied callback, (if present)\n * to find out if the file is text, binary, or unknown\n *\n * Text mode files are primarily used for debugging but it can be\n * useful to allow hand editting of input data\n *\n * Return a void * file handle ('FILE *' cast to 'void *') or NULL\n * if open failed\n */\nvoid *BR_CALLBACK BrStdioOpenRead(char *name, br_size_t n_magics, br_mode_test_cbfn *identify, int *mode_result)\n{\n    FILE *fh;\n    char *br_path;\n    char try_name[FILENAME_MAX + 1], *cp;\n    br_uint_8 magics[BR_MAX_FILE_MAGICS];\n    int open_mode = BR_FS_MODE_BINARY;\n\n    /*\n     * Try the current directory\n     */\n    strncpy(try_name, name, FILENAME_MAX);\n\n    if ((fh = fopen(try_name, \"rb\")) == NULL)\n    {\n\n        /*\n         * If that fails, and if a drive or a\n         * directory were specified, don't search along path\n         */\n        if (strchr(name, ':') || strchr(name, '/') || strchr(name, '\\\\'))\n            return NULL;\n\n        /*\n         * For each element of the path, if it exists\n         */\n        if ((br_path = getenv(\"BRENDER_PATH\")) == NULL)\n            return NULL;\n\n        while (*br_path)\n        {\n            /*\n             * Take characters until next seperator or terminator\n             */\n            cp = try_name;\n\n            while (*br_path != ';' && *br_path != '\\0')\n                *cp++ = *br_path++;\n\n            if (*br_path == ';')\n                br_path++;\n\n            /*\n             * Add a directory seperator if none\n             */\n            if (cp != try_name && (*(cp - 1) != ':' && *(cp - 1) != '/' && *(cp - 1) != '\\\\'))\n                *cp++ = '/';\n\n            strcpy(cp, name);\n\n            if (fh = fopen(try_name, \"rb\"))\n                break;\n        }\n\n        if (fh == NULL)\n            return NULL;\n    }\n\n    /*\n     * Now have an open file, try and grab the first bytes from it\n     */\n    if (fread(magics, 1, n_magics, fh) != n_magics)\n    {\n        /*\n         * Could not read all the required data, close and punt\n         */\n        fclose(fh);\n        return NULL;\n    }\n\n    /*\n     * Try and identify the file\n     */\n    if (identify)\n        open_mode = identify(magics, n_magics);\n\n    if (mode_result)\n        *mode_result = open_mode;\n\n    /*\n     * Reopen file with it's new identity (or abandon if unknown identity)\n     */\n    switch (open_mode)\n    {\n    case BR_FS_MODE_TEXT:\n        fh = freopen(try_name, \"rt\", fh);\n        break;\n\n    case BR_FS_MODE_BINARY:\n        fh = freopen(try_name, \"rb\", fh);\n        break;\n\n    case BR_FS_MODE_UNKNOWN:\n        fclose(fh);\n        fh = NULL;\n        break;\n\n    default:\n        BR_ERROR1(\"BrStdFileOpenRead: invalid open_mode %d\", open_mode);\n    }\n\n    return fh;\n}\n\n/*\n * Open a file for writing, overwrites any existing file of the same name\n *\n * Return a void * file handle ('FILE *' cast to 'void *') or NULL\n * if open failed\n */\nstatic void *BR_CALLBACK BrStdioOpenWrite(char *name, int mode)\n{\n    FILE *fh = NULL;\n\n    fh = fopen(name, (mode == BR_FS_MODE_TEXT) ? \"wt\" : \"wb\");\n\n    return fh;\n}\n\n/*\n * Close an open file\n */\nstatic void BR_CALLBACK BrStdioClose(void *f)\n{\n    fclose((FILE *)f);\n}\n\n/*\n * Test EOF\n */\nstatic int BR_CALLBACK BrStdioEof(void *f)\n{\n    return feof((FILE *)f);\n}\n\n/*\n * Read one character from file\n */\nstatic int BR_CALLBACK BrStdioGetChar(void *f)\n{\n    return getc((FILE *)f);\n}\n\n/*\n * Write one character to file\n */\nstatic void BR_CALLBACK BrStdioPutChar(int c, void *f)\n{\n    putc(c, (FILE *)f);\n}\n\n/*\n * Read a block from a file\n */\nstatic br_size_t BR_CALLBACK BrStdioRead(void *buf, br_size_t size, unsigned int n, void *f)\n{\n    return fread(buf, size, n, (FILE *)f);\n}\n\n/*\n * Write a block to a file\n */\nstatic br_size_t BR_CALLBACK BrStdioWrite(void *buf, br_size_t size, unsigned int n, void *f)\n{\n    return fwrite(buf, size, n, (FILE *)f);\n}\n\n/*\n * Read a line of text from stdin and trim any terminators\n *\n * Return length of line\n */\nstatic br_size_t BR_CALLBACK BrStdioGetLine(char *buf, br_size_t buf_len, void *f)\n{\n    br_size_t l;\n\n    if (fgets(buf, buf_len, (FILE *)f) == NULL)\n        return 0;\n\n    l = strlen(buf);\n\n    if (l > 0 && buf[l - 1] == '\\n')\n        buf[--l] = '\\0';\n\n    return l;\n}\n\n/*\n * Write a line to text file, followed by newline\n */\nvoid BR_CALLBACK BrStdioPutLine(char *buf, void *f)\n{\n    fputs(buf, (FILE *)f);\n    putc('\\n', (FILE *)f);\n}\n\n/*\n * Advance N bytes through a binary stream\n */\nstatic void BR_CALLBACK BrStdioAdvance(br_size_t count, void *f)\n{\n    fseek((FILE *)f, (long int)count, SEEK_CUR);\n}\n\n/*\n * Filesystem structure\n */\nbr_filesystem BrStdioFilesystem = {\n    \"Standard IO\", /* identifier */\n\n    BrStdioAttributes, /* attributes */\n    BrStdioOpenRead,   /* open_read  */\n    BrStdioOpenWrite,  /* openwrite  */\n    BrStdioClose,      /* close      */\n    BrStdioEof,        /* eof\t\t  */\n\n    BrStdioGetChar, /* getchar\t  */\n    BrStdioPutChar, /* putchar\t  */\n\n    BrStdioRead,  /* read\t\t  */\n    BrStdioWrite, /* write\t  */\n\n    BrStdioGetLine, /* getline\t  */\n    BrStdioPutLine, /* putline\t  */\n\n    BrStdioAdvance, /* advance\t  */\n};\n\n/*\n * Override global variable s.t. the default filesystem will be stdio\n */\nbr_filesystem *_BrDefaultFilesystem = &BrStdioFilesystem;\n"
  },
  {
    "path": "bren/stdmem.c",
    "content": "/*\n * Copyright (c) 1993 Argonaut Software Ltd. All rights reserved.\n *\n * $Id: stdmem.c 1.3 1994/11/07 01:39:20 sam Exp $\n * $Locker:  $\n *\n * Default memory handler that uses malloc()/free() from C library\n */\n#include <Windows.h>\n#include <stddef.h>\n#include <stdlib.h>\n#include <stdio.h>\n\n#include \"brender.h\"\n\n#ifdef DEBUG\nstatic long _cb = 0; // Total memory allocated by BRender\n#endif\n\n/*\n * Glue functions for malloc()/free()\n */\nstatic void *BR_CALLBACK BrStdlibAllocate(br_size_t size, br_uint_8 type)\n{\n    void *m;\n    long cbAlloc = size;\n\n#ifdef DEBUG\n    cbAlloc += sizeof(long);\n#endif // DEBUG\n\n    m = (void *)GlobalAlloc(GMEM_FIXED, cbAlloc);\n    if (m == NULL)\n        return NULL;\n\n#ifdef DEBUG\n    *(long *)m = size;\n    _cb += size;\n    m = (char *)m + sizeof(long);\n#endif\n\n    return m;\n}\n\nstatic void BR_CALLBACK BrStdlibFree(void *mem)\n{\n#ifdef DEBUG\n    void *pmemReal = (char *)mem - sizeof(long);\n    long size = *(long *)pmemReal;\n    _cb -= size;\n    mem = pmemReal;\n#endif // DEBUG\n    GlobalFree((HGLOBAL)mem);\n}\n\nstatic br_size_t BR_CALLBACK BrStdlibInquire(br_uint_8 type)\n{\n    return 0;\n}\n\n/*\n * Allocator structure\n */\nbr_allocator BrStdlibAllocator = {\n    \"malloc\",\n    BrStdlibAllocate,\n    BrStdlibFree,\n    BrStdlibInquire,\n};\n\n/*\n * Override global variable s.t. this is the default allocator\n */\nbr_allocator *_BrDefaultAllocator = &BrStdlibAllocator;\n"
  },
  {
    "path": "bren/tmap.cpp",
    "content": "/***************************************************************************\n\n    Texture map (br_pixmap wrapper) class\n\n***************************************************************************/\n#include \"bren.h\"\n\nASSERTNAME\n\nRTCLASS(TMAP)\n\n/***************************************************************************\n    A PFNRPO to read TMAP objects.\n***************************************************************************/\nbool TMAP::FReadTmap(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n\n    PTMAP ptmap;\n\n    *pcb = pblck->Cb(fTrue);\n    if (pvNil == ppbaco)\n        return fTrue;\n    ptmap = PtmapRead(pcrf->Pcfl(), ctg, cno);\n    if (pvNil == ptmap)\n    {\n        TrashVar(ppbaco);\n        TrashVar(pcb);\n        return fFalse;\n    }\n    AssertPo(ptmap, 0);\n    *ppbaco = ptmap;\n    return fTrue;\n}\n\n/***************************************************************************\n    Read a TMAP from a chunk\n***************************************************************************/\nPTMAP TMAP::PtmapRead(PCFL pcfl, CTG ctg, CNO cno)\n{\n    TMAPF tmapf;\n    BLCK blck;\n    TMAP *ptmap;\n\n    ptmap = NewObj TMAP;\n    if (pvNil == ptmap)\n        goto LFail;\n\n    if (!pcfl->FFind(ctg, cno, &blck) || !blck.FUnpackData())\n        goto LFail;\n    if (!blck.FReadRgb(&tmapf, size(TMAPF), 0))\n        goto LFail;\n\n    if (kboCur != tmapf.bo)\n        SwapBytesBom(&tmapf, kbomTmapf);\n    Assert(kboCur == tmapf.bo, \"bad TMAPF\");\n\n    ptmap->_bpmp.identifier = (char *)ptmap; // to get TMAP from a (BPMP *)\n    if (!FAllocPv((void **)&ptmap->_bpmp.pixels, LwMul(tmapf.cbRow, tmapf.dyp), fmemClear, mprNormal))\n    {\n        goto LFail;\n    }\n    ptmap->_bpmp.map = pvNil;\n    ptmap->_bpmp.row_bytes = tmapf.cbRow;\n    ptmap->_bpmp.type = tmapf.type;\n    ptmap->_bpmp.flags = tmapf.grftmap;\n    ptmap->_bpmp.base_x = tmapf.xpLeft;\n    ptmap->_bpmp.base_y = tmapf.ypTop;\n    ptmap->_bpmp.width = tmapf.dxp;\n    ptmap->_bpmp.height = tmapf.dyp;\n    ptmap->_bpmp.origin_x = tmapf.xpOrigin;\n    ptmap->_bpmp.origin_y = tmapf.ypOrigin;\n\n    if (!blck.FReadRgb(ptmap->_bpmp.pixels, LwMul(tmapf.cbRow, tmapf.dyp), size(TMAPF)))\n    {\n        goto LFail;\n    }\n    return ptmap;\nLFail:\n    ReleasePpo(&ptmap);\n    return pvNil;\n}\n\n/***************************************************************************\n    Create a TMAP from a BRender BPMP...used only for importing PIX's\n***************************************************************************/\nPTMAP TMAP::PtmapNewFromBpmp(BPMP *pbpmp)\n{\n    PTMAP ptmap;\n\n    ptmap = NewObj TMAP;\n    if (pvNil == ptmap)\n        return pvNil;\n    ptmap->_bpmp = *pbpmp;\n    ptmap->_bpmp.identifier = (char *)ptmap;\n    pbpmp->identifier = (char *)ptmap;\n    ptmap->_fImported = fTrue;\n    return ptmap;\n}\n\n/***************************************************************************\n    destructor\n***************************************************************************/\nTMAP::~TMAP(void)\n{\n    if (_fImported)\n    {\n        // REVIEW *****: this crashes BRender...why?\n        //\t\tBrMemFree(_bpmp.pixels);\n    }\n    else\n        FreePpv((void **)&_bpmp.pixels);\n}\n\n/***************************************************************************\n    Write a TMAP to a chunk\n***************************************************************************/\nbool TMAP::FWrite(PCFL pcfl, CTG ctg, CNO *pcno)\n{\n    AssertThis(0);\n    BLCK blck;\n\n    if (!pcfl->FAdd(size(TMAPF) + LwMul(_bpmp.row_bytes, _bpmp.height), ctg, pcno, &blck))\n    {\n        return fFalse;\n    }\n\n    return FWrite(&blck);\n}\n\n/***************************************************************************\n    Write a TMAP to the given FLO\n***************************************************************************/\nbool TMAP::FWrite(PBLCK pblck)\n{\n    TMAPF tmapf;\n\n    tmapf.bo = kboCur;\n    tmapf.osk = koskCur;\n    tmapf.cbRow = _bpmp.row_bytes;\n    tmapf.type = _bpmp.type;\n    tmapf.grftmap = _bpmp.flags;\n    tmapf.xpLeft = _bpmp.base_x;\n    tmapf.ypTop = _bpmp.base_y;\n    tmapf.dxp = _bpmp.width;\n    tmapf.dyp = _bpmp.height;\n    tmapf.xpOrigin = _bpmp.origin_x;\n    tmapf.ypOrigin = _bpmp.origin_y;\n    if (!pblck->FWriteRgb(&tmapf, size(TMAPF), 0))\n        return fFalse;\n    if (!pblck->FWriteRgb(_bpmp.pixels, LwMul(tmapf.cbRow, tmapf.dyp), size(TMAPF)))\n    {\n        return fFalse;\n    }\n    return fTrue;\n}\n\n#ifdef WIN\n\n#define CALCDIST(bRed1, bGreen1, bBlue1, bRed2, bGreen2, bBlue2)                                                       \\\n    (((bRed1) - (bRed2)) * ((bRed1) - (bRed2)) + ((bGreen1) - (bGreen2)) * ((bGreen1) - (bGreen2)) +                   \\\n     ((bBlue1) - (bBlue2)) * ((bBlue1) - (bBlue2)))\n\n/*\n *\tPtmapReadNative\t--\tCreates a TMAP object, reading the data from a .BMP file\n *\n *\tinput:\n *\t\t\tpfni\t--\tthe FNI to read the data from\n *\t\t\tpglclr\t--\tthe colors to map to.\n *\n *\toutput:\n *\t\t\treturns the pointer to the new TMAP\n */\nPTMAP TMAP::PtmapReadNative(FNI *pfni, PGL pglclr)\n{\n    byte *prgb = pvNil;\n    PTMAP ptmap = pvNil;\n    long dxp, dyp;\n    bool fUpsideDown;\n    long iclrBest, igl;\n    long iprgb;\n    long dist, min;\n    CLR clr, clrSrc;\n    PGL pglclrSrc;\n    PGL pglCache;\n\n    AssertPo(pfni, 0);\n\n    if (FReadBitmap(pfni, &prgb, &pglclrSrc, &dxp, &dyp, &fUpsideDown))\n    {\n        Assert(!fUpsideDown, 0);\n        AssertPo(pglclrSrc, 0);\n\n        if (pglclr != pvNil)\n        {\n            AssertIn(pglclr->IvMac(), 0, 257);\n\n            //\n            // Do a closest color match\n            //\n\n            pglCache = GL::PglNew(size(long), pglclrSrc->IvMac());\n\n            if (pglCache != pvNil)\n            {\n\n                iclrBest = ivNil;\n                for (igl = 0; igl < pglclrSrc->IvMac(); igl++)\n                {\n                    AssertDo(pglCache->FAdd(&iclrBest), \"Ensured by creation\");\n                }\n            }\n\n            for (iprgb = 0; iprgb < (dxp * dyp); iprgb++)\n            {\n\n                if (pglCache != pvNil)\n                {\n                    pglCache->Get(prgb[iprgb], &iclrBest);\n\n                    if (iclrBest != ivNil)\n                    {\n                        prgb[iprgb] = (BYTE)iclrBest;\n                        continue;\n                    }\n                }\n\n                pglclrSrc->Get(prgb[iprgb], &clrSrc);\n\n                iclrBest = ivNil;\n                min = klwMax;\n\n                for (igl = 0; igl < pglclr->IvMac(); igl++)\n                {\n\n                    pglclr->Get(igl, &clr);\n                    dist = CALCDIST(clrSrc.bRed, clrSrc.bGreen, clrSrc.bBlue, clr.bRed, clr.bGreen, clr.bBlue);\n\n                    if (dist <= min)\n                    {\n                        min = dist;\n                        iclrBest = igl;\n                    }\n                }\n\n                if (iclrBest != ivNil)\n                {\n                    AssertIn(iclrBest, 0, pglclr->IvMac());\n\n                    if (pglCache != pvNil)\n                    {\n                        pglCache->Put(prgb[iprgb], &iclrBest);\n                    }\n\n                    prgb[iprgb] = (BYTE)iclrBest;\n                }\n            }\n\n            ReleasePpo(&pglCache);\n        }\n\n        ReleasePpo(&pglclrSrc);\n\n        ptmap = TMAP::PtmapNew(prgb, dxp, dyp);\n    }\n\n    return ptmap;\n}\n#endif // WIN\n\n#ifdef MAC\nPTMAP TMAP::PtmapReadNative(FNI *pfni)\n{\n    RawRtn(); // REVIEW peted: NYI\n    return pvNil;\n}\n#endif // MAC\n\n/*\n *\tPtmapNew\t--\tGiven pixel data and attributes, creates a new TMAP with\n *\t\tthe given information.\n *\n *\tinput:\n *\t\t\tprgbPixels\t--\tthe actual pixels for the TMAP\n *\t\t\tpbmh\t\t--\tThe bitmap header from the .BMP file\n *\n *\toutput:\n *\t\t\treturns the pointer to the new TMAP\n */\nPTMAP TMAP::PtmapNew(byte *prgbPixels, long dxp, long dyp)\n{\n    PTMAP ptmap;\n\n    Assert(dxp <= ksuMax, \"bitmap too wide\");\n    Assert(dyp <= ksuMax, \"bitmap too high\");\n\n    if ((ptmap = NewObj TMAP) != pvNil)\n    {\n        ptmap->_fImported = fFalse;\n        ptmap->_bpmp.identifier = (char *)ptmap;\n        ptmap->_bpmp.pixels = prgbPixels;\n        ptmap->_bpmp.map = pvNil;\n        ptmap->_bpmp.row_bytes = (br_int_16)dxp;\n        ptmap->_bpmp.type = BR_PMT_INDEX_8;\n        ptmap->_bpmp.flags = BR_PMF_LINEAR;\n        ptmap->_bpmp.base_x = ptmap->_bpmp.base_y = 0;\n        ptmap->_bpmp.width = (br_uint_16)dxp;\n        ptmap->_bpmp.height = (br_uint_16)dyp;\n        ptmap->_bpmp.origin_x = ptmap->_bpmp.origin_y = 0;\n    }\n    AssertPo(ptmap, 0);\n    return ptmap;\n}\n\n/******************************************************************************\n    FWriteTmapChkFile\n        Writes a stand-alone file with a TMAP chunk in it.  The file can\n        be later read in by the CHCM class with the FILE command.\n\n    Arguments:\n        PFNI pfniDst   -- FNI indicating the name of the output file\n        bool fCompress -- fTrue if the chunk date is to be compressed\n        PMSNK pmsnkErr -- optional message sink to direct errors to\n\n    Returns: fTrue if the file was written successfully\n\n************************************************************ PETED ***********/\nbool TMAP::FWriteTmapChkFile(PFNI pfniDst, bool fCompress, PMSNK pmsnkErr)\n{\n    AssertThis(0);\n    AssertPo(pfniDst, ffniFile);\n    AssertNilOrPo(pmsnkErr, 0);\n\n    bool fRet = fFalse;\n    long lwSig;\n    PSZ pszErr = pvNil;\n    FLO flo;\n\n    if (pvNil == (flo.pfil = FIL::PfilCreate(pfniDst)))\n    {\n        pszErr = PszLit(\"Couldn't create destination file\\n\");\n        goto LFail;\n    }\n    flo.fp = size(long);\n    flo.cb = CbOnFile();\n\n    if (fCompress)\n    {\n        BLCK blck;\n\n        if (!blck.FSetTemp(flo.cb) || !FWrite(&blck))\n        {\n            pszErr = PszLit(\"allocation failure\\n\");\n            goto LFail;\n        }\n        if (!blck.FPackData())\n            lwSig = klwSigUnpackedFile;\n        else\n        {\n            lwSig = klwSigPackedFile;\n            flo.cb = blck.Cb(fTrue);\n        }\n        if (!flo.pfil->FWriteRgb(&lwSig, size(long), 0) || !blck.FWriteToFlo(&flo, fTrue))\n        {\n            pszErr = PszLit(\"writing to destination file failed\\n\");\n            goto LFail;\n        }\n    }\n    else\n    {\n        lwSig = klwSigUnpackedFile;\n        if (!flo.pfil->FWriteRgb(&lwSig, size(long), 0) || !FWriteFlo(&flo))\n        {\n            pszErr = PszLit(\"writing to destination file failed\\n\");\n            goto LFail;\n        }\n    }\n\n    fRet = fTrue;\nLFail:\n    if (pszErr != pvNil && pmsnkErr != pvNil)\n        pmsnkErr->ReportLine(pszErr);\n    if (!fRet && pvNil != flo.pfil)\n        flo.pfil->SetTemp();\n    ReleasePpo(&flo.pfil);\n    return fRet;\n}\n\n#ifdef NOT_YET_REVIEWED\nbyte *TMAP::PrgbBuildInverseTable(void)\n{\n    byte *prgb, *prgbT, iclr;\n    long cbRgb;\n\n    if (_pbpmp->type != BR_PMT_RGB_888)\n        return pvNil;\n\n    if (!FAllocPv((void **)&prgb, cbRgb = _pbpmp->height, fmemNil, mprNormal))\n        return pvNil;\n\n    for (prgbT = prgb, iclr = 0; iclr < cbRgb; prgbT++, iclr++)\n        *prgbT = iclr;\n\n    _SortInverseTable(prgb, cbRgb, BR_COLOUR_RGB(0, 0, 0), BR_COLOUR_RGB(0xFF, 0xFF, 0xFF));\n    return prgb;\n}\n\nvoid TMAP::_SortInverseTable(byte *prgb, long cbRgb, BRCLR brclrLo, BRCLR brclrHi)\n{\n    long cbRgb1 = 0, cbRgb2 = 0;\n    byte *prgb2, *prgbRead, bT;\n    BRCLR brclrPivot = brclrLo + (brclrHi - brclrLo) / 2;\n    BRCLR *pbrclr;\n\n    prgb2 = prgb + cbRgb;\n    prgbRead = prgb;\n    while (cbRgb--)\n    {\n        pbrclr = 0; // pbrclr from index *prgb;\n        if (*pbrclr <= brclrPivot)\n        {\n            prgbRead++;\n            cbRgb1++;\n        }\n        else\n        {\n            bT = *prgb2;\n            *--prgb2 = *prgbRead;\n            *prgbRead = bT;\n            cbRgb2++;\n        }\n    }\n    if (cbRgb1 > 1)\n        _SortInverseTable(prgb, cbRgb1, brclrLo, brclrPivot);\n    if (cbRgb2 > 1)\n        _SortInverseTable(prgb2, cbRgb2, brclrPivot + 1, brclrHi);\n}\n#endif // NOT_YET_REVIEWED\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the TMAP.\n***************************************************************************/\nvoid TMAP::AssertValid(ulong grf)\n{\n    TMAP_PAR::AssertValid(fobjAllocated);\n    if (!_fImported)\n        AssertPvCb(_bpmp.pixels, LwMul(_bpmp.row_bytes, _bpmp.height));\n}\n\n/***************************************************************************\n    Mark memory used by the TMAP.\n***************************************************************************/\nvoid TMAP::MarkMem(void)\n{\n    AssertThis(0);\n    TMAP_PAR::MarkMem();\n    if (!_fImported)\n        MarkPv(_bpmp.pixels);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "bren/zbmp.cpp",
    "content": "/***************************************************************************\n\n    zbmp.cpp: Z-buffer bitmap class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n***************************************************************************/\n#include \"bren.h\"\nASSERTNAME\n\nRTCLASS(ZBMP)\n\n/***************************************************************************\n    Create a ZBMP of all 0xff's\n***************************************************************************/\nPZBMP ZBMP::PzbmpNew(long dxp, long dyp)\n{\n    AssertIn(dxp, 1, klwMax);\n    AssertIn(dyp, 1, klwMax);\n\n    PZBMP pzbmp;\n\n    pzbmp = NewObj ZBMP;\n    if (pvNil == pzbmp)\n        goto LFail;\n    pzbmp->_rc.Set(0, 0, dxp, dyp);\n    pzbmp->_cbRow = LwMul(dxp, kcbPixelZbmp);\n    pzbmp->_cb = LwMul(dyp, pzbmp->_cbRow);\n    if (!FAllocPv((void **)&pzbmp->_prgb, pzbmp->_cb, fmemNil, mprNormal))\n        goto LFail;\n    FillPb(pzbmp->_prgb, pzbmp->_cb, 0xff);\n    AssertPo(pzbmp, 0);\n    return pzbmp;\nLFail:\n    ReleasePpo(&pzbmp);\n    return pvNil;\n}\n\n/***************************************************************************\n    Create a ZBMP from a BPMP.  For authoring use only.\n***************************************************************************/\nPZBMP ZBMP::PzbmpNewFromBpmp(BPMP *pbpmp)\n{\n    AssertVarMem(pbpmp);\n\n    PZBMP pzbmp;\n\n    pzbmp = PzbmpNew(pbpmp->width, pbpmp->height);\n    if (pvNil == pzbmp)\n        return pvNil;\n    CopyPb(pbpmp->pixels, pzbmp->_prgb, pzbmp->_cb);\n    return pzbmp;\n}\n\n/***************************************************************************\n    Chunky resource reader for ZBMP\n***************************************************************************/\nbool ZBMP::FReadZbmp(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n\n    ZBMP *pzbmp;\n\n    *pcb = pblck->Cb(fTrue); // estimate ZBMP size\n    if (pvNil == ppbaco)\n        return fTrue;\n\n    if (!pblck->FUnpackData())\n        goto LFail;\n    *pcb = pblck->Cb();\n\n    pzbmp = PzbmpRead(pblck);\n    if (pvNil == pzbmp)\n    {\n    LFail:\n        TrashVar(ppbaco);\n        TrashVar(pcb);\n        return fFalse;\n    }\n    AssertPo(pzbmp, 0);\n    *ppbaco = pzbmp;\n    *pcb = size(ZBMP) + pzbmp->_cb;\n    return fTrue;\n}\n\n/***************************************************************************\n    Read a ZBMP from a BLCK.\n***************************************************************************/\nPZBMP ZBMP::PzbmpRead(PBLCK pblck)\n{\n    AssertPo(pblck, 0);\n\n    PZBMP pzbmp;\n    ZBMPF zbmpf;\n\n    if (!pblck->FUnpackData())\n        return pvNil;\n\n    pzbmp = NewObj ZBMP;\n    if (pvNil == pzbmp)\n        goto LFail;\n\n    if (!pblck->FReadRgb(&zbmpf, size(ZBMPF), 0))\n        goto LFail;\n\n    pzbmp->_rc.Set(zbmpf.xpLeft, zbmpf.ypTop, zbmpf.xpLeft + zbmpf.dxp, zbmpf.ypTop + zbmpf.dyp);\n    pzbmp->_cbRow = LwMul(pzbmp->_rc.Dxp(), kcbPixelZbmp);\n    pzbmp->_cb = LwMul(pzbmp->_rc.Dyp(), pzbmp->_cbRow);\n    if (pblck->Cb() != size(ZBMPF) + pzbmp->_cb)\n        goto LFail;\n    if (!FAllocPv((void **)&pzbmp->_prgb, pzbmp->_cb, fmemNil, mprNormal))\n        goto LFail;\n    if (!pblck->FReadRgb(pzbmp->_prgb, pzbmp->_cb, size(ZBMPF)))\n        goto LFail;\n    AssertPo(pzbmp, 0);\n    return pzbmp;\n\nLFail:\n    Warn(\"Couldn't load ZBMP\");\n    ReleasePpo(&pzbmp);\n    return pvNil;\n}\n\n/***************************************************************************\n    Destructor\n***************************************************************************/\nZBMP::~ZBMP(void)\n{\n    AssertBaseThis(0);\n    FreePpv((void **)&_prgb);\n}\n\n/***************************************************************************\n    Draw the ZBMP into prgbPixels\n***************************************************************************/\nvoid ZBMP::Draw(byte *prgbPixels, long cbRow, long dyp, long xpRef, long ypRef, RC *prcClip, PREGN pregnClip)\n{\n    AssertThis(0);\n    AssertPvCb(prgbPixels, LwMul(cbRow, dyp));\n    AssertNilOrVarMem(prcClip);\n    AssertNilOrVarMem(pregnClip);\n\n    long yp;\n    long cbRowCopy;\n    byte *pbSrc;\n    byte *pbDst;\n    REGSC regsc;\n    RC rcZbmp = _rc;\n    RC rcRegnBounds;\n    RC rcClippedRegnBounds;\n    long xpLeft, xpRight;\n\n    // Translate the zbmp's rc into coordinate system of prgbPixels' rc\n    rcZbmp.Offset(xpRef, ypRef);\n\n    if (pvNil == pregnClip)\n    {\n        if (pvNil == prcClip)\n            return;\n        if (!rcClippedRegnBounds.FIntersect(&rcZbmp, prcClip))\n            return;\n        regsc.InitRc(prcClip, &rcClippedRegnBounds);\n    }\n    else\n    {\n        if (pregnClip->FEmpty(&rcRegnBounds))\n            return;\n        if (!rcClippedRegnBounds.FIntersect(&rcZbmp, &rcRegnBounds))\n            return;\n        if (pvNil != prcClip && !rcClippedRegnBounds.FIntersect(prcClip))\n            return;\n        regsc.Init(pregnClip, &rcClippedRegnBounds);\n    }\n\n    for (yp = rcClippedRegnBounds.ypTop; yp < rcClippedRegnBounds.ypBottom; yp++)\n    {\n        while (regsc.XpCur() < klwMax)\n        {\n            xpLeft = regsc.XpCur() + rcClippedRegnBounds.xpLeft;\n            xpRight = regsc.XpFetch() + rcClippedRegnBounds.xpLeft;\n            AssertIn(xpLeft, rcClippedRegnBounds.xpLeft, rcClippedRegnBounds.xpRight + 1);\n            AssertIn(xpRight, rcClippedRegnBounds.xpLeft, rcClippedRegnBounds.xpRight + 1);\n            regsc.XpFetch();\n            cbRowCopy = LwMul(kcbPixelZbmp, xpRight - xpLeft);\n            pbSrc = _prgb + LwMul(yp, _cbRow) + LwMul(kcbPixelZbmp, xpLeft);\n            pbDst = prgbPixels + LwMul(yp, cbRow) + LwMul(kcbPixelZbmp, xpLeft);\n            CopyPb(pbSrc, pbDst, cbRowCopy);\n        }\n        regsc.ScanNext(1);\n    }\n}\n\n/***************************************************************************\n    Draw the ZBMP into prgbPixels, squashing the clip region vertically by\n    two (for BWLD's \"half mode\")\n***************************************************************************/\nvoid ZBMP::DrawHalf(byte *prgbPixels, long cbRow, long dyp, long xpRef, long ypRef, RC *prcClip, PREGN pregnClip)\n{\n    AssertThis(0);\n    AssertPvCb(prgbPixels, LwMul(cbRow, dyp / 2));\n    AssertNilOrVarMem(prcClip);\n    AssertNilOrVarMem(pregnClip);\n\n    long yp;\n    long cbRowCopy;\n    byte *pbSrc;\n    byte *pbDst;\n    REGSC regsc;\n    RC rcZbmp = _rc;\n    RC rcRegnBounds;\n    RC rcClippedRegnBounds;\n    long xpLeft, xpRight;\n\n    rcZbmp.ypBottom *= 2;\n\n    // Translate the zbmp's rc into coordinate system of prgbPixels' rc\n    rcZbmp.Offset(xpRef, ypRef);\n\n    if (pvNil == pregnClip)\n    {\n        if (pvNil == prcClip)\n            return;\n        if (!rcClippedRegnBounds.FIntersect(&rcZbmp, prcClip))\n            return;\n        regsc.InitRc(prcClip, &rcClippedRegnBounds);\n    }\n    else\n    {\n        if (pregnClip->FEmpty(&rcRegnBounds))\n            return;\n        if (!rcClippedRegnBounds.FIntersect(&rcZbmp, &rcRegnBounds))\n            return;\n        if (pvNil != prcClip && !rcClippedRegnBounds.FIntersect(prcClip))\n            return;\n        regsc.Init(pregnClip, &rcClippedRegnBounds);\n    }\n\n    for (yp = rcClippedRegnBounds.ypTop; yp < rcClippedRegnBounds.ypBottom; yp += 2)\n    {\n        while (regsc.XpCur() < klwMax)\n        {\n            xpLeft = regsc.XpCur() + rcClippedRegnBounds.xpLeft;\n            xpRight = regsc.XpFetch() + rcClippedRegnBounds.xpLeft;\n            AssertIn(xpLeft, rcClippedRegnBounds.xpLeft, rcClippedRegnBounds.xpRight + 1);\n            AssertIn(xpRight, rcClippedRegnBounds.xpLeft, rcClippedRegnBounds.xpRight + 1);\n            regsc.XpFetch();\n            cbRowCopy = LwMul(kcbPixelZbmp, xpRight - xpLeft);\n            pbSrc = _prgb + LwMul(yp / 2, _cbRow) + LwMul(kcbPixelZbmp, xpLeft);\n            pbDst = prgbPixels + LwMul(yp / 2, cbRow) + LwMul(kcbPixelZbmp, xpLeft);\n            CopyPb(pbSrc, pbDst, cbRowCopy);\n        }\n        regsc.ScanNext(2);\n    }\n}\n\n/***************************************************************************\n    Write the ZBMP\n***************************************************************************/\nbool ZBMP::FWrite(PCFL pcfl, CTG ctg, CNO *pcno)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n    AssertVarMem(pcno);\n\n    ZBMPF zbmpf;\n    BLCK blck;\n\n    zbmpf.bo = kboCur;\n    zbmpf.osk = koskCur;\n    zbmpf.xpLeft = (short)_rc.xpLeft;\n    zbmpf.ypTop = (short)_rc.ypTop;\n    zbmpf.dxp = (short)_rc.Dxp();\n    zbmpf.dyp = (short)_rc.Dyp();\n\n    if (!pcfl->FAdd(size(ZBMPF) + _cb, ctg, pcno, &blck))\n        return fFalse;\n    if (!blck.FWriteRgb(&zbmpf, size(ZBMPF), 0))\n        return fFalse;\n    if (!blck.FWriteRgb(_prgb, _cb, size(ZBMPF)))\n        return fFalse;\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the ZBMP.\n***************************************************************************/\nvoid ZBMP::AssertValid(ulong grf)\n{\n    ZBMP_PAR::AssertValid(fobjAllocated);\n    AssertPvCb(_prgb, _cb);\n    Assert(_cbRow == LwMul(_rc.Dxp(), kcbPixelZbmp), \"bad _cbRow\");\n    Assert(_cb == LwMul(_rc.Dyp(), _cbRow), \"bad _cb\");\n}\n\n/***************************************************************************\n    Mark memory used by the ZBMP\n***************************************************************************/\nvoid ZBMP::MarkMem(void)\n{\n    AssertThis(0);\n    ZBMP_PAR::MarkMem();\n    MarkPv(_prgb);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "cmake/ExtractVersion.cmake",
    "content": "include_guard(GLOBAL)\n\n#[[\nThis is used to extract a version variable from nearly every executable in\nexistence. How these are used is up to the user.\n]]\nfunction(extract_version output)\n  cmake_parse_arguments(ARG \"\" \"OPTION;REGEX;COMMAND;DOC\" \"\" ${ARGN})\n  unset(version-output)\n  unset(version-check)\n  if (NOT ARG_OPTION)\n    set(ARG_OPTION \"--version\")\n  endif()\n  if (NOT ARG_REGEX)\n    set(ARG_REGEX \"[^0-9]*([0-9]+)[.]([0-9]+)?[.]?([0-9]+)?[.]?([0-9]+)?.*\")\n  endif()\n  if (ARG_COMMAND AND NOT DEFINED ${output})\n    execute_process(\n      COMMAND \"${ARG_COMMAND}\" \"${ARG_OPTION}\"\n      OUTPUT_VARIABLE version-output\n      OUTPUT_STRIP_TRAILING_WHITESPACE\n      ENCODING UTF-8)\n    if (version-output)\n      string(REGEX MATCH \"${ARG_REGEX}\" version-check \"${version-output}\")\n    endif()\n    if (version-check)\n      string(JOIN \".\" ${output}\n        ${CMAKE_MATCH_1}\n        ${CMAKE_MATCH_2}\n        ${CMAKE_MATCH_3}\n        ${CMAKE_MATCH_4})\n      set(${output} \"${${output}}\" CACHE STRING \"${ARG_DOC}\" FORCE)\n    endif()\n  endif()\nendfunction()\n"
  },
  {
    "path": "cmake/FindAudioMan.cmake",
    "content": "include(FindPackageHandleStandardArgs)\n\nfind_library(${CMAKE_FIND_PACKAGE_NAME}_LIBRARY\n  NAMES AUDIOS\n  PATHS \"${PROJECT_SOURCE_DIR}/kauai/elib/wins\"\n  NO_DEFAULT_PATH\n  NO_PACKAGE_ROOT_PATH\n  NO_CMAKE_PATH\n  NO_CMAKE_ENVIRONMENT_PATH\n  NO_SYSTEM_ENVIRONMENT_PATH\n  NO_CMAKE_SYSTEM_PATH\n  NO_CMAKE_FIND_ROOT_PATH)\n\nfind_package_handle_standard_args(${CMAKE_FIND_PACKAGE_NAME}\n  REQUIRED_VARS ${CMAKE_FIND_PACKAGE_NAME}_LIBRARY)\n\nif (${CMAKE_FIND_PACKAGE_NAME}_FOUND AND NOT TARGET 3DMMForever::AudioMan)\n  add_library(3DMMForever::AudioMan STATIC IMPORTED)\n  set_property(TARGET 3DMMForever::AudioMan\n    PROPERTY\n      IMPORTED_LOCATION \"${${CMAKE_FIND_PACKAGE_NAME}_LIBRARY}\")\n  # Precompiled AudioMan library does not support SafeSEH\n  target_link_options(3DMMForever::AudioMan INTERFACE\n      $<$<LINK_LANG_AND_ID:CXX,MSVC>:/SAFESEH:NO>\n  )\n  mark_as_advanced(${CMAKE_FIND_PACKAGE_NAME}_LIBRARY)\nendif()\n"
  },
  {
    "path": "cmake/FindBRender.cmake",
    "content": "include(FindPackageHandleStandardArgs)\n# This is technically bad form because we aren't \"finding\" anything, however if\n# there is ever any hope to eventually port 3DMM to \"not Windows\", there needs\n# to be a shim of some kind for slotting in other possible releases of BRender.\n#\n# This file can be expanded *properly* at a later date.\n\n# TODO: Keep in mind the NO_<...>_PATH stuff should be removed if 3DMMForever\n# starts to support external versions of BRender\n\nforeach (name IN ITEMS BRFMMXR BRFWMXR BRZBMXR)\n  foreach (cfg IN ITEMS DEBUG RELEASE RELWITHDEBINFO MINSIZEREL)\n    set(variable ${CMAKE_FIND_PACKAGE_NAME}_${name}_${cfg}_LIBRARY)\n    set(suffix \"s\")\n    if (${cfg} STREQUAL \"DEBUG\")\n      set(suffix \"d\")\n    endif()\n    find_library(${variable}\n      NAMES ${name}\n      PATHS \"${PROJECT_SOURCE_DIR}/elib/win${suffix}\"\n      NO_DEFAULT_PATH\n      NO_PACKAGE_ROOT_PATH\n      NO_CMAKE_PATH\n      NO_CMAKE_ENVIRONMENT_PATH\n      NO_SYSTEM_ENVIRONMENT_PATH\n      NO_CMAKE_SYSTEM_PATH\n      NO_CMAKE_FIND_ROOT_PATH)\n    list(APPEND ${CMAKE_FIND_PACKAGE_NAME}_LIBRARIES ${variable})\n  endforeach()\nendforeach()\n\nfind_package_handle_standard_args(${CMAKE_FIND_PACKAGE_NAME}\n  REQUIRED_VARS ${${CMAKE_FIND_PACKAGE_NAME}_LIBRARIES})\n\nif (${CMAKE_FIND_PACKAGE_NAME}_FOUND AND NOT TARGET BRender::Libraries)\n  add_library(BRender::Libraries INTERFACE IMPORTED)\n\n  foreach (library IN ITEMS BRFMMXR BRFWMXR BRZBMXR)\n    add_library(BRender::${library} STATIC IMPORTED)\n    set_target_properties(BRender::${library}\n      PROPERTIES\n        IMPORTED_LOCATION_RELEASE ${${CMAKE_FIND_PACKAGE_NAME}_${library}_RELEASE_LIBRARY}\n        IMPORTED_LOCATION_RELWITHDEBINFO ${${CMAKE_FIND_PACKAGE_NAME}_${library}_RELWITHDEBINFO_LIBRARY}\n        IMPORTED_LOCATION_MINSIZEREL ${${CMAKE_FIND_PACKAGE_NAME}_${library}_MINSIZEREL_LIBRARY}\n        IMPORTED_LOCATION_DEBUG ${${CMAKE_FIND_PACKAGE_NAME}_${library}_DEBUG_LIBRARY})\n      target_link_libraries(BRender::Libraries INTERFACE BRender::${library})\n    mark_as_advanced(\n      ${CMAKE_FIND_PACKAGE_NAME}_${library}_RELEASE_LIBRARY\n      ${CMAKE_FIND_PACKAGE_NAME}_${library}_DEBUG_LIBRARY)\n  endforeach()\n  # TODO(bruxisma): This needs to be enforce ONLY when targetin Visual Studio\n  # 2015 or later\n  target_link_libraries(BRender::BRFWMXR\n    INTERFACE\n      $<$<LINK_LANG_AND_ID:CXX,MSVC>:legacy_stdio_definitions>)\n\n  # Precompiled BRender libraries do not support SafeSEH\n  target_link_options(BRender::BRFWMXR INTERFACE\n      $<$<LINK_LANG_AND_ID:CXX,MSVC>:/SAFESEH:NO>\n  )\nendif()\n"
  },
  {
    "path": "cmake/FindCCache.cmake",
    "content": "include(FindPackageHandleStandardArgs)\ninclude(ExtractVersion)\n\nfind_program(CCache_EXECUTABLE NAMES ccache)\nextract_version(CCache_VERSION COMMAND \"${CCache_EXECUTABLE}\" DOC \"ccache version\")\n\nfind_package_handle_standard_args(CCache\n  REQUIRED_VARS CCache_EXECUTABLE\n  VERSION_VAR CCache_VERSION)\n\nif (CCache_FOUND AND NOT TARGET CCache::CCache)\n  add_executable(CCache::CCache IMPORTED)\n  set_target_properties(CCache::CCache\n    PROPERTIES\n      IMPORTED_LOCATION \"${CCache_EXECUTABLE}\"\n      VERSION \"${CCache_VERSION}\")\n  mark_as_advanced(CCache_EXECUTABLE CCache_VERSION)\nendif()\n"
  },
  {
    "path": "cmake/FindClangTidy.cmake",
    "content": "include(FindPackageHandleStandardArgs)\ninclude(ExtractVersion)\n\nfind_program(ClangTidy_EXECUTABLE NAMES clang-tidy)\nextract_version(ClangTidy_VERSION COMMAND \"${ClangTidy_EXECUTABLE}\")\n\nfind_package_handle_standard_args(ClangTidy\n  REQUIRED_VARS ClangTidy_EXECUTABLE\n  VERSION_VAR ClangTidy_VERSION)\n\nif (ClangTidy_FOUND AND NOT TARGET Clang::Tidy)\n  add_executable(Clang::Tidy IMPORTED)\n  set_target_properties(Clang::Tidy\n    PROPERTIES\n      IMPORTED_LOCATION \"${ClangTidy_EXECUTABLE}\"\n      VERSION \"${ClangTidy_VERSION}\")\n  mark_as_advanced(ClangTidy_EXECUTABLE ClangTidy_VERSION)\nendif()\n"
  },
  {
    "path": "cmake/TargetChompSources.cmake",
    "content": "include_guard(GLOBAL)\n\n# any values after ${target} are treated as sources\nfunction(target_chomp_sources target)\n  # We cannot use $<CXX_COMPILER_ID:...> because we are not generating binary\n  # targets 😢\n  set(is-msvc $<STREQUAL:${CMAKE_CXX_COMPILER_ID},MSVC>)\n  set(include-directories $<TARGET_PROPERTY:${target},INCLUDE_DIRECTORIES>)\n  set(compile-definitions $<TARGET_PROPERTY:${target},COMPILE_DEFINITIONS>)\n  string(CONCAT include-directories $<\n    $<BOOL:${include-directories}>:\n    -I$<JOIN:$<REMOVE_DUPLICATES:${include-directories}>,$<SEMICOLON>-I>\n  >)\n  string(CONCAT compile-definitions $<\n    $<BOOL:${compile-definitions}>:\n    -D$<JOIN:$<REMOVE_DUPLICATES:${compile-definitions}>,$<SEMICOLON>-D>\n  >)\n  foreach(source IN LISTS ARGN)\n    cmake_path(GET source FILENAME filename)\n    cmake_path(REPLACE_EXTENSION filename LAST_ONLY \".chk\" OUTPUT_VARIABLE output)\n    # Because of how files are laid out, we need to do the following line twice\n    # but operate on the resulting path\n    cmake_path(GET source PARENT_PATH parent)\n    target_include_directories(${target} PRIVATE ${parent})\n    cmake_path(GET parent PARENT_PATH parent)\n    target_include_directories(${target} PRIVATE ${parent})\n    set(output \"${CMAKE_CURRENT_BINARY_DIR}/chomp/${target}/${output}\")\n    set(processed \"${CMAKE_CURRENT_BINARY_DIR}/chomp/${target}/${filename}.i\")\n    add_custom_command(\n      OUTPUT \"${processed}\"\n      COMMAND \"${CMAKE_CXX_COMPILER}\"\n        \"$<${is-msvc}:/nologo>\"\n        \"$<${is-msvc}:/E>\"\n        \"$<${is-msvc}:/TP>\"\n        \"${include-directories}\"\n        \"${compile-definitions}\"\n        \"${source}\" > \"${processed}\"\n      IMPLICIT_DEPENDS CXX \"${source}\"\n      MAIN_DEPENDENCY \"${source}\"\n      COMMENT \"Preprocessing ${source}\"\n      COMMAND_EXPAND_LISTS\n      USES_TERMINAL\n      VERBATIM)\n    add_custom_command(\n      OUTPUT \"${output}\"\n      COMMAND chomp /c  \"${processed}\" \"${output}\"\n      COMMENT \"Chompin' ${processed}\"\n      MAIN_DEPENDENCY \"${processed}\"\n      WORKING_DIRECTORY \"${parent}\"\n      COMMAND_EXPAND_LISTS\n      VERBATIM)\n    set_property(TARGET \"${target}\" APPEND PROPERTY CHOMPED_CHUNKS \"${output}\")\n  endforeach()\n  add_custom_target(${target}-chomp-chunks\n    DEPENDS $<TARGET_PROPERTY:${target},CHOMPED_CHUNKS>)\n  add_dependencies(${target} ${target}-chomp-chunks)\nendfunction()\n"
  },
  {
    "path": "content-files/makefile",
    "content": "TARGETS = 3dmovie.chk building.chk bldghd.chk help.chk helpaud.chk shared.chk \\\n\tstudio.chk sharecd.chk\n\n!IF EXIST($(SOC_ROOT)\\obj\\wind\\building.chk)\nTARGETS = $(TARGETS) buildingd.chk\n!ENDIF\n\n!IF EXIST($(SOC_ROOT)\\obj\\wind\\bldghd.chk)\nTARGETS = $(TARGETS) bldghdd.chk\n!ENDIF\n\n!IF EXIST($(SOC_ROOT)\\obj\\wind\\help.chk)\nTARGETS = $(TARGETS) helpd.chk\n!ENDIF\n\n!IF EXIST($(SOC_ROOT)\\obj\\wind\\helpaud.chk)\nTARGETS = $(TARGETS) helpaudd.chk\n!ENDIF\n\n!IF EXIST($(SOC_ROOT)\\obj\\wind\\shared.chk)\nTARGETS = $(TARGETS) sharedd.chk\n!ENDIF\n\n!IF EXIST($(SOC_ROOT)\\obj\\wind\\sharecd.chk)\nTARGETS = $(TARGETS) sharecdd.chk\n!ENDIF\n\n!IF EXIST($(SOC_ROOT)\\obj\\wind\\studio.chk)\nTARGETS = $(TARGETS) studiod.chk\n!ENDIF\n\nall: $(TARGETS)\n\n#\n# Update 3dmovie.chk when either the SHIP or DEBUG version has changed; if\n# they're both out of date, go with the SHIP version (most of the time, they'll\n# be the same, and it's more complicated than it's worth to try to get the\n# most-recent one out of those two; if it's *really* important, then just run\n# the makefile twice...the genuine most-recent version will get copied the\n# second time around, if it was the DEBUG version).\n#\n3dmovie.chk : $(SOC_ROOT)\\obj\\wind\\3dmovie.chk $(SOC_ROOT)\\obj\\wins\\3dmovie.chk\n\tif \"%s\" == \"$?\" copy %s $@\n\tif not \"%s\" == \"$?\" copy $(SOC_ROOT)\\obj\\wins\\3dmovie.chk $@\n\n\n# SHIP versions of .chk files  --  Must exist\n\nbuilding.chk : $(SOC_ROOT)\\obj\\wins\\building.chk\n\tcopy $? $@\n\nbldghd.chk : $(SOC_ROOT)\\obj\\wins\\bldghd.chk\n\tcopy $? $@\n\nhelp.chk : $(SOC_ROOT)\\obj\\wins\\help.chk\n\tcopy $? $@\n\nhelpaud.chk : $(SOC_ROOT)\\obj\\wins\\helpaud.chk\n\tcopy $? $@\n\nshared.chk : $(SOC_ROOT)\\obj\\wins\\shared.chk\n\tcopy $? $@\n\nsharecd.chk : $(SOC_ROOT)\\obj\\wins\\sharecd.chk\n\tcopy $? $@\n\nstudio.chk : $(SOC_ROOT)\\obj\\wins\\studio.chk\n\tcopy $? $@\n\n\n# DEBUG versions of .chk files  --  Optional\n\nbuildingd.chk : $(SOC_ROOT)\\obj\\wind\\building.chk\n\tcopy $? $@\n\nbldghdd.chk : $(SOC_ROOT)\\obj\\wind\\bldghd.chk\n\tcopy $? $@\n\nhelpd.chk : $(SOC_ROOT)\\obj\\wind\\help.chk\n\tcopy $? $@\n\nhelpaudd.chk : $(SOC_ROOT)\\obj\\wind\\helpaud.chk\n\tcopy $? $@\n\nsharedd.chk : $(SOC_ROOT)\\obj\\wind\\shared.chk\n\tcopy $? $@\n\nsharecdd.chk : $(SOC_ROOT)\\obj\\wind\\sharecd.chk\n\tcopy $? $@\n\nstudiod.chk : $(SOC_ROOT)\\obj\\wind\\studio.chk\n\tcopy $? $@\n"
  },
  {
    "path": "docker-compose.yaml",
    "content": "version: \"3.9\"\r\nservices:\r\n  3dmmforever-build:\r\n    image: 3dmmforever-build\r\n    container_name: 3dmmforever-build\r\n    build: .\r\n    volumes:\r\n      - .:C:\\3d\r\n    working_dir: C:\\3d\r\n    command: >\r\n            C:\\\\Program Files (x86)\\\\Microsoft Visual Studio\\\\2022\\\\BuildTools\\\\Common7\\\\Tools\\\\VsDevCmd.bat &&\r\n            cmake --preset x86:msvc:debug &&\r\n            cmake --build build &&\r\n            cmake --install build\r\n    "
  },
  {
    "path": "inc/actor.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*******************************************************************\n\n Actor class\n\n Primary Author : *****\n Review Status: Reviewed\n\n BASE -------> ACTR\n\n Each actor has a unique route which is defined by one or more nodes,\n and which may be a concatenation of one or more subroutes.\n Each actor also has an event list describing events which happen\n at a specified time and point along the route.  A point may coincide\n with a node or lie between nodes.\n\n *******************************************************************/\n#ifndef ACTOR_H\n#define ACTOR_H\n\n//\n//\tXYZ : A point in x,y,z along an actor's RouTE.\n//\nstruct XYZ\n{\n    BRS dxr;\n    BRS dyr;\n    BRS dzr;\n\n    bool operator==(XYZ &xyz)\n    {\n        return ((dxr == xyz.dxr) && (dyr == xyz.dyr) && (dzr == xyz.dzr));\n    }\n    bool operator!=(XYZ &xyz)\n    {\n        return ((dxr != xyz.dxr) || (dyr != xyz.dyr) || (dzr != xyz.dzr));\n    }\n};\n\ntypedef XYZ *PXYZ;\n\nconst BOM kbomXyz = 0xfc000000;\n\n//\n// \tA RouTE is a general list (GL) of Route PoinTs(RPT)\n//  A Subroute is a contiguous section of a route.\n//\nstruct RPT\n{\n    XYZ xyz;\n    BRS dwr; // Distance from this node to the next node on the route\n};\nconst BOM kbomRpt = 0xff000000;\n\nconst long knfrmInvalid = klwMax;                                  // invalid frame state.  Regenerate correct state\nconst long kcrptGrow = 32;                                         // quantum growth for rpt\nconst long kcsmmGrow = 2;                                          // quantum growth for smm\nconst long kctagSndGrow = 2;                                       // quantum growth for tagSnd\nconst long smmNil = -1;                                            // Not motion match sound\nconst BRS kdwrNil = BR_SCALAR(-1.0);                               // flags use of template cel stepsize\nconst BRS kzrDefault = BR_SCALAR(-25.0);                           // initial default z position\nconst BRS kdwrMax = BR_SCALAR(32767.0);                            // large BRS value\nconst ulong kdtsThreshRte = (kdtsSecond >> 2) + (kdtsSecond >> 1); // time threshhold before record in place\nconst BRS kdwrThreshRte = BR_SCALAR(2.0);                          // distance threshhold before entering record mode\nconst long kcaevInit = 10;\nconst BRS kdwrFast = BR_SCALAR(3.0);       // delta world coord change for fast mouse move\nconst BRS krOriWeightMin = BR_SCALAR(0.1); // orientation weighting for slow mouse move\nconst BRS krAngleMin = BR_SCALAR(0.1);     // Min angle impacting amount of forward movement on placement\nconst BRS krAngleMinRcp = BR_RCP(krAngleMin);\nconst BRS krAngleMax = BR_SCALAR(0.4);         // Max angle impacting amount of forward movement on placement\nconst BRS krScaleMinFactor = (BR_SCALAR(0.1)); // Min scaling between Brender update\nconst auto krScaleMaxFactor = BrsDiv(rOne, krScaleMinFactor); // Max scaling between Brender update\nconst auto krScaleMin = (BR_SCALAR(0.25));                    // Min scaling\nconst auto krScaleMax = (BR_SCALAR(10.0));                    // Max scaling\nconst auto krPullMin = krScaleMin;\nconst auto krPullMax = BrsDiv(rOne, krPullMin);\n\n#define aridNil ivNil\n\n// Angle valid flags\nenum\n{\n    fbraRotateX = factnRotateX,\n    fbraRotateY = factnRotateY,\n    fbraRotateZ = factnRotateZ\n};\n\n// Normalize flags\nenum\n{\n    fnormSize = 1,\n    fnormRotate = 2\n};\n\n// Mouse Actor flags\nenum\n{\n    fmafNil = 0,\n    fmafFreeze = 0x01,      // freeze cels\n    fmafGround = 0x02,      // respect ground level\n    fmafOrient = 0x04,      // orient actor during move\n    fmafEntireScene = 0x08, // position over entire scene, vs subroute only\n    fmafEntireSubrte = 0x10 // position over entire subroute\n};\n\nstruct RTEL // RouTE Location - a function of space and time\n{\n    int irpt;      // The preceding node for the given point\n    BRS dwrOffset; // Absolute linear distance beyond node irpt\n    long dnfrm;    // Delta frame number (ie, time) at this point\n\n    bool operator==(RTEL &rtel)\n    {\n        return (irpt == rtel.irpt && dwrOffset == rtel.dwrOffset && dnfrm == rtel.dnfrm);\n    }\n\n    bool operator!=(RTEL &rtel)\n    {\n        return (irpt != rtel.irpt || dwrOffset != rtel.dwrOffset || dnfrm != rtel.dnfrm);\n    }\n\n    bool operator<=(RTEL &rtel)\n    {\n        return (irpt < rtel.irpt || (irpt == rtel.irpt && (dwrOffset < rtel.dwrOffset ||\n                                                           (dwrOffset == rtel.dwrOffset && dnfrm <= rtel.dnfrm))));\n    }\n\n    bool operator>=(RTEL &rtel)\n    {\n        return (irpt > rtel.irpt || (irpt == rtel.irpt && (dwrOffset > rtel.dwrOffset ||\n                                                           (dwrOffset == rtel.dwrOffset && dnfrm >= rtel.dnfrm))));\n    }\n\n    bool operator<(RTEL &rtel)\n    {\n        return (irpt < rtel.irpt || (irpt == rtel.irpt && (dwrOffset < rtel.dwrOffset ||\n                                                           (dwrOffset == rtel.dwrOffset && dnfrm < rtel.dnfrm))));\n    }\n\n    bool operator>(RTEL &rtel)\n    {\n        return (irpt > rtel.irpt || (irpt == rtel.irpt && (dwrOffset > rtel.dwrOffset ||\n                                                           (dwrOffset == rtel.dwrOffset && dnfrm > rtel.dnfrm))));\n    }\n};\n\n// Actor EVents are stored in a GG (general group)\n// Fixed part of the GG:\nstruct AEV\n{\n    long aet;  // Actor Event Type\n    long nfrm; // Absolute frame number (* Only valid < current event)\n    RTEL rtel; // RouTE Location for this event\n};             // Additional event parameters (in the GG)\ntypedef AEV *PAEV;\n\n//\n//\tActor level Event Types which live in a GG.\n//\tThe fixed part of a GG entry is an actor event (aev)\n//\tThe variable part is documented in the following comments\n//\nenum AET\n{\n    aetAdd,    // Add Actor onstage: aevadd - internal (no api)\n    aetActn,   // Animate Actor : aevactn\n    aetCost,   // Set Costume : aevcost\n    aetRotF,   // Transform Actor rotate: BMAT34\n    aetPull,   // Transform Actor Pull : aevpull\n    aetSize,   // Transform Actor size uniformly : BRS\n    aetSnd,    // Play a sound : aevsnd\n    aetMove,   // Translate the path at this point : XYZ\n    aetFreeze, // Freeze (or Un) Actor : long\n    aetTweak,  // Path tweak : XYZ\n    aetStep,   // Force step size (eg, float, wait) : BRS\n    aetRem,    // Remove an actor from the stage : nil\n    aetRotH,   // Single frame rotation : BMAT34\n    aetLim\n};\n\nconst BOM kbomAet = 0xc0000000;\nconst BOM kbomAev = 0xff000000;\n\n//\n//\tVariable part of the Actor EVent GG:\n//\nstruct AEVPULL // Squash/stretch\n{\n    BRS rScaleX;\n    BRS rScaleY;\n    BRS rScaleZ;\n};\nconst BOM kbomAevpull = 0xfc000000;\n\n// Every subroute is normalized.  The normalization translation is\n// stored in the Add Event\n// ** nfrmPrev valid for nfrmSub <= _nfrmCur only (optimization)\nstruct AEVADD\n{\n    BRS dxr; // Translation in x for this subroute\n    BRS dyr; // Translation in y for this subroute\n    BRS dzr; // Translation in z for this subroute\n    BRA xa;  // Single point orientation\n    BRA ya;  // Single point orientation\n    BRA za;  // Single point orientation\n};\nconst BOM kbomAevadd = 0xffc00000 | kbomBmat34 >> 10;\n\nstruct AEVACTN\n{\n    long anid;\n    long celn; // starting cel of action\n};\nconst BOM kbomAevactn = 0xf0000000;\n\nstruct AEVCOST\n{\n    long ibset;    // body part set\n    long cmid;     // costume ID (for custom costumes)\n    tribool fCmtl; // vs fMtrl\n    TAG tag;\n};\nconst BOM kbomAevcost = 0xfc000000 | (kbomTag >> 6);\n\nstruct AEVSND\n{\n    tribool fLoop;    // loop count\n    tribool fQueue;   // queued sound\n    long vlm;         // volume\n    long celn;        // motion match\t: ivNil if not\n    long sty;         // sound type\n    tribool fNoSound; // no sound\n    CHID chid;        // user sound requires chid\n    TAG tag;\n};\nconst BOM kbomAevsnd = 0xfff00000 | (kbomTag >> 12);\n\nconst BOM kbomAevsize = 0xc0000000;\nconst BOM kbomAevfreeze = 0xc0000000;\nconst BOM kbomAevstep = 0xc0000000;\nconst BOM kbomAevmove = kbomXyz;\nconst BOM kbomAevtweak = kbomXyz;\nconst BOM kbomAevrot = kbomBmat34;\n\n// Separate ggaev variable portion sizes\n#define kcbVarAdd (size(AEVADD))\n#define kcbVarActn (size(AEVACTN))\n#define kcbVarCost (size(AEVCOST))\n#define kcbVarRot (size(BMAT34))\n#define kcbVarSize (size(BRS))\n#define kcbVarPull (size(AEVPULL))\n#define kcbVarSnd (size(AEVSND))\n#define kcbVarFreeze (size(long))\n#define kcbVarMove (size(XYZ))\n#define kcbVarTweak (size(XYZ))\n#define kcbVarStep (size(BRS))\n#define kcbVarZero (0)\n\n// Actor Event Flags\nenum\n{\n    faetNil = 0,\n    faetAdd = 1 << aetAdd,\n    faetActn = 1 << aetActn,\n    faetCost = 1 << aetCost,\n    faetRotF = 1 << aetRotF,\n    faetPull = 1 << aetPull,\n    faetSize = 1 << aetSize,\n    faetFreeze = 1 << aetFreeze,\n    faetTweak = 1 << aetTweak,\n    faetStep = 1 << aetStep,\n    faetRem = 1 << aetRem,\n    faetMove = 1 << aetMove,\n    faetRotH = 1 << aetRotH\n};\n\n//\n// Because rotations are non-abelian, cumulative rotations are stored\n// in a BMAT34.  It would not be correct to multiply (xa,ya,za) values\n// treating x,y,z independently.\n//\n// Bmat34Fwd does NOT include the path portion of the orientation.\n// Bmat34Cur includes all current angular rotation - path rotation is NOT post\n// applied to this.\n//\n// Careful: The task is complicated by the fact that users can apply single\n// frame and frame forward orientations in the same frame and must not see the\n// actor jump in angle when choosing between the two methods of editing.\n//\nstruct XFRM\n{\n    BMAT34 bmat34Fwd; // Rotation\tfwd\t: path rotation post applied to this\n    AEVPULL aevpull;  // Stretching (pulling) constants\n    BRS rScaleStep;   // Uniform scaling to be applied to step size\n    BMAT34 bmat34Cur; // <<Path independent>> Single frame & static segment rotation\n    BRA xaPath;       // Path portion of the current frame's rotation\n    BRA yaPath;       // Path portion of the current frame's rotation\n    BRA zaPath;       // Path portion of the current frame's rotation\n};\n\n//\n// Current action Motion Match Sounds\n// Aev & Aevsnd grouped together form a gl\n// Not to be saved with a movie\n//\nstruct SMM\n{\n    AEV aev; // event for the sound\n    AEVSND aevsnd;\n};\n\n//\n// Default hilite colors\n//\n#define kiclrNormalHilite 108\n#define kiclrTimeFreezeHilite 43\n\n/***********************************************\n   Actor Class\n***********************************************/\ntypedef class ACTR *PACTR;\n#define ACTR_PAR BASE\n#define kclsACTR 'ACTR'\nclass ACTR : public ACTR_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    // Components of an actor\n    // Note: In addition to these components, any complete actor must\n    // have either fLifeDirty set or _nfrmLast current.\n    // Note: _tagTmpl cannot be derived from _ptmpl\n    PGG _pggaev;      // GG pointer to Actor EVent list\n    PGL _pglrpt;      // GL pointer to actor's route\n    TMPL *_ptmpl;     // Actor body & action list template\n    BODY *_pbody;     // Actor's body\n    TAG _tagTmpl;     // Note: The sid cannot be queried at save time\n    TAG _tagSnd;      // Sound (played on entrance)\n    SCEN *_pscen;     // Underlying scene\n    XYZ _dxyzFullRte; // Origin of the route\n    long _nfrmFirst;  // klwMax -or- First frame : Set\twhen event created\n    long _arid;       // Unique id assigned to this actor.\n    ulong _grfactn;   // Cached current grfactn\n\n    // Frame Dependent State Information\n    XYZ _dxyzRte;            //_dxyzFullRte + _dxyzSubRte : Set when Add processed\n    XYZ _dxyzSubRte;         // Subpath translation : Set when Add processed\n    bool _fOnStage : 1;      // Versus Brender hidden.  Set by Add, Rem only\n    bool _fFrozen : 1;       // Path offset > 0 but not moving\n    bool _fLifeDirty : 1;    // Set if _nfrmLast requires recomputation\n    bool _fPrerendered : 1;  // Set if actor is prerendered\n    bool _fUseBmat34Cur : 1; //_xfrm.bmat34Cur last used in orienting actor\n    BRS _dwrStep;            // Current step size in use\n    long _anidCur;           // Current action in template\n    long _ccelCur;           // Cached cel count.  Retrieving this was hi profile.\n    long _celnCur;           // Current cell\n    long _nfrmCur;           // Current frame number : Set by FGotoFrame\n    long _nfrmLast;          // Latest known frame for this actor.\n    long _iaevCur;           // Current event in event list\n    long _iaevFrmMin;        // First event in current frame\n    long _iaevActnCur;       // Event defining current action\n    long _iaevAddCur;        // Most recent add (useful for Compose)\n    RTEL _rtelCur;           // Current location on route\t(excludes tweak info)\n    XYZ _xyzCur;             // Last point displayed (may be tweak modified)\n    XFRM _xfrm;              // Current transformation\n    PGL _pglsmm;             // Current action motion match sounds\n\n    // Path Recording State Information\n    RTEL _rtelInsert;        // Joining information\n    ulong _tsInsert;         // Starting time of route recording\n    bool _fModeRecord : 1;   // Record a route mode\n    bool _fRejoin : 1;       // Rerecord is extending a subpath from the end\n    bool _fPathInserted : 1; // More path inserted\n    bool _fTimeFrozen : 1;   // Is the actor frozen wrt time?\n    long _dnfrmGap;          // Frames between subroutes\n    XYZ _dxyzRaw;            // Raw mouse movement from previous frame\n\n    //\n    //\tProtected functions\n    //\n    ACTR(void);\n    bool _FInit(TAG *ptmplTag);         // Constructor allocation & file I/O\n    void _InitXfrmRot(BMAT34 *pbmat34); // Initialize rotation only\n    void _InitXfrm(void);               // Initialize rotation & scaling\n    bool _FCreateGroups(void);\n    void _InitState(void);\n    void _GetNewOrigin(BRS *pxr, BRS *pyr, BRS *pzr);\n    void _SetStateRewound(void);\n\n    bool _FQuickBackupToFrm(long nfrm, bool *pfQuickMethodValid);\n    bool _FGetRtelBack(RTEL *prtel, bool fUpdateStateVar);\n    bool _FDoFrm(bool fPositionBody, bool *pfPositionDirty, bool *pfSoundInFrame = pvNil);\n    bool _FGetStatic(long anid, bool *pfStatic);\n    bool _FIsDoneAevSub(long iaev, RTEL rtel);\n    bool _FIsAddNow(long iaev);\n    bool _FGetDwrPlay(BRS *pdwr);   // Step size if playing\n    bool _FGetDwrRecord(BRS *pdwr); // Step size if recording\n    bool _FDoAevCur(void);\n    bool _FDoAevCore(long iaev);\n    bool _FDoAetVar(long aet, void *pvVar, long cbVar);\n\n    bool _FEnqueueSnd(long iaev);\n    bool _FEnqueueSmmInMsq(void);\n    bool _FInsertSmm(long iaev);\n    bool _FRemoveAevMm(long anid);\n    bool _FAddAevDefMm(long anid);\n\n    bool _FAddDoAev(long aetNew, long kcbNew, void *pvVar);\n    void _MergeAev(long iaevFirst, long iaevLast, long *piaevNew = pvNil);\n    bool _FFreeze(void);   // insert freeze event\n    bool _FUnfreeze(void); // insert unfreeze event\n    void _Hide(void);\n    bool _FInsertGgRpt(long irpt, RPT *prpt, BRS dwrPrior = rZero);\n    bool _FAddAevFromPrev(long iaevLim, ulong grfaet);\n    bool _FAddAevFromLater(void);\n    bool _FFindNextAevAet(long aet, long iaevCur, long *piaevAdd);\n    bool _FFindPrevAevAet(long aet, long iaevCur, long *piaevAdd);\n    void _FindAevLastSub(long iaevAdd, long iaevLim, long *piaevLast);\n    void _DeleteFwdCore(bool fDeleteAll, bool *pfAlive = pvNil, long iaevCur = ivNil);\n    bool _FDeleteEntireSubrte(void);\n    void _DelAddFrame(long iaevAdd, long iaevLim);\n\n    void _UpdateXyzRte(void);\n    bool _FInsertAev(long iaev, long cbNew, void *pvVar, void *paev, bool fUpdateState = fTrue);\n    void _RemoveAev(long iaev, bool fUpdateState = fTrue);\n    void _PrepXfrmFill(long aet, void *pvVar, long cbVar, long iaevMin, long iaevCmp = ivNil, ulong grfaet = faetNil);\n    void _PrepActnFill(long iaevMin, long anidPrev, long anidNew, ulong grfaet);\n    void _PrepCostFill(long iaevMin, AEVCOST *paevcost);\n    void _AdjustAevForRteIns(long irptAdjust, long iaevMin);\n    void _AdjustAevForRteDel(long irptAdjust, long iaevMin);\n    bool _FInsertStop(void);\n    void _CalcRteOrient(BMAT34 *pbmat34, BRA *pxa = pvNil, BRA *pya = pvNil, BRA *pza = pvNil, ulong *pgrfbra = pvNil);\n    void _ApplyRotFromVec(XYZ *pxyz, BMAT34 *pbmat34, BRA *pxa = pvNil, BRA *pya = pvNil, BRA *pza = pvNil,\n                          ulong *grfbra = pvNil);\n    void _SaveCurPathOrien(void);\n    void _LoadAddOrien(AEVADD *paevadd, bool fNoReset = fFalse);\n    BRA _BraAvgAngle(BRA a1, BRA a2, BRS rw);\n    void _UpdateXyzTan(XYZ *pxyz, long irptTan, long rw);\n\n    void _AdvanceRtel(BRS dwrStep, RTEL *prtel, long iaevCur, long nfrmCur, bool *pfEndRoute);\n    void _GetXyzFromRtel(RTEL *prtel, PXYZ pxyz);\n    void _GetXyzOnLine(PXYZ pxyzFirst, PXYZ pxyzSecond, BRS dwrOffset, PXYZ pxyz);\n    void _PositionBody(PXYZ pxyz);\n    void _MatrixRotUpdate(XYZ *pxyz, BMAT34 *pbmat34);\n    void _TruncateSubRte(long irptDelLim);\n    bool _FComputeLifetime(long *pnfrmLast = pvNil);\n    bool _FIsStalled(long iaevFirst, RTEL *prtel, long *piaevLast = pvNil);\n\n    void _RestoreFromUndo(PACTR pactrRestore);\n    bool _FDupCopy(PACTR pactrSrc, PACTR pactrDest);\n\n    bool _FWriteTmpl(PCFL pcfl, CNO cno);\n    bool _FReadActor(PCFL pcfl, CNO cno);\n    bool _FReadRoute(PCFL pcfl, CNO cno);\n    bool _FReadEvents(PCFL pcfl, CNO cno);\n    static void _SwapBytesPggaev(PGG pggaev);\n    bool _FOpenTags(PCRF pcrf);\n    static bool _FIsIaevTag(PGG pggaev, long iaev, PTAG *pptag, PAEV *pqaev = pvNil);\n    void _CloseTags(void);\n\n  public:\n    ~ACTR(void);\n    static PACTR PactrNew(TAG *ptagTmpl);\n    void SetPscen(SCEN *pscen);\n    void SetArid(long arid)\n    {\n        AssertBaseThis(0);\n        _arid = arid;\n    }\n    void SetLifeDirty(void)\n    {\n        AssertBaseThis(0);\n        _fLifeDirty = fTrue;\n    }\n    PSCEN Pscen(void)\n    {\n        AssertThis(0);\n        return _pscen;\n    }\n\n    // ActrSave Routines\n    static PACTR PactrRead(PCRF pcrf, CNO cno);    // Construct from a document\n    bool FWrite(PCFL pcfl, CNO cno, CNO cnoScene); // Write to a document\n    static PGL PgltagFetch(PCFL pcfl, CNO cno, bool *pfError);\n    static bool FAdjustAridOnFile(PCFL pcfl, CNO cno, long darid);\n\n    // Visibility\n    void Hilite(void);\n    void Unhilite(void)\n    {\n        AssertBaseThis(0);\n        _pbody->Unhilite();\n    }\n    void Hide(void)\n    {\n        AssertBaseThis(0);\n        _pbody->Hide();\n    }\n    void Show(void)\n    {\n        AssertBaseThis(0);\n        _pbody->Show();\n    }\n    bool FIsInView(void)\n    {\n        AssertBaseThis(0);\n        return _pbody->FIsInView();\n    }\n    void GetCenter(long *pxp, long *pyp)\n    {\n        AssertBaseThis(0);\n        _pbody->GetCenter(pxp, pyp);\n    }\n    void GetRcBounds(RC *prc)\n    {\n        AssertBaseThis(0);\n        _pbody->GetRcBounds(prc);\n    }\n    void SetPrerendered(bool fPrerendered)\n    {\n        AssertBaseThis(0);\n        _fPrerendered = fPrerendered;\n    }\n    bool FPrerendered(void)\n    {\n        AssertBaseThis(0);\n        return _fPrerendered;\n    }\n\n    // Actor Information\n    long Arid(void)\n    {\n        AssertBaseThis(0);\n        return (_arid);\n    }\n    bool FOnStage(void)\n    {\n        AssertBaseThis(0);\n        return (_fOnStage);\n    }\n    bool FIsMyBody(BODY *pbody)\n    {\n        AssertBaseThis(0);\n        return pbody == _pbody;\n    }\n    bool FIsMyTmpl(TMPL *ptmpl)\n    {\n        AssertBaseThis(0);\n        return _ptmpl == ptmpl;\n    }\n    bool FIsModeRecord(void)\n    {\n        AssertBaseThis(0);\n        return FPure(_fModeRecord);\n    }\n    bool FIsRecordValid(BRS dxr, BRS dyr, BRS dzr, ulong tsCurrent);\n    PTMPL Ptmpl(void)\n    {\n        AssertBaseThis(0);\n        return _ptmpl;\n    }\n    PBODY Pbody(void)\n    {\n        AssertBaseThis(0);\n        return _pbody;\n    }\n    long AnidCur(void)\n    {\n        AssertBaseThis(0);\n        return _anidCur;\n    }\n    long CelnCur(void)\n    {\n        AssertBaseThis(0);\n        return _celnCur;\n    }\n    bool FFrozen(void)\n    {\n        AssertBaseThis(0);\n        return _fFrozen;\n    }\n    bool FGetLifetime(long *pnfrmFirst, long *pnfrmLast); // allows nil ptrs\n    bool FPtIn(long xp, long yp, long *pibset);\n    void GetTagTmpl(PTAG ptag)\n    {\n        AssertBaseThis(0);\n        *ptag = _tagTmpl;\n    }\n    void GetName(PSTN pstn);\n    bool FChangeTagTmpl(PTAG ptagTmplNew);\n    bool FTimeFrozen(void)\n    {\n        AssertBaseThis(0);\n        return _fTimeFrozen;\n    }\n    void SetTimeFreeze(bool fTimeFrozen)\n    {\n        AssertBaseThis(0);\n        _fTimeFrozen = fTimeFrozen;\n    }\n    bool FIsPropBrws(void)\n    {\n        AssertThis(0);\n        return FPure(_ptmpl->FIsProp() || _ptmpl->FIsTdt());\n    }\n    bool FIsTdt(void)\n    {\n        AssertThis(0);\n        return FPure(_ptmpl->FIsTdt());\n    }\n    bool FMustRender(long nfrmRenderLast);\n    void GetXyzWorld(BRS *pxr, BRS *pyr, BRS *pzr);\n\n    // Animation\n    bool FGotoFrame(long nfrm, bool *pfSoundInFrame = pvNil); // Prepare for display at frame nfrm\n    bool FReplayFrame(long grfscen);                          // Replay a frame.\n\n    // Event Editing\n    bool FAddOnStageCore(void);\n    bool FSetActionCore(long anid, long celn, bool fFreeze);\n    bool FRemFromStageCore(void);\n    bool FSetCostumeCore(long ibsetClicked, TAG *ptag, long cmid, tribool fCustom);\n    bool FSetStep(BRS dwrStep);\n    bool FRotate(BRA xa, BRA ya, BRA za, bool fFromHereFwd);\n    bool FNormalizeCore(ulong grfnorm);\n    void SetAddOrient(BRA xa, BRA ya, BRA za, ulong grfbra, XYZ *pdxyz = pvNil);\n    bool FScale(BRS rScaleStep);\n    bool FPull(BRS rScaleX, BRS rScaleY, BRS rScaleZ);\n    void DeleteFwdCore(bool fDeleteAll, bool *pfAlive = pvNil, long iaevCur = ivNil);\n    void DeleteBackCore(bool *pfAlive = pvNil);\n    bool FSoonerLater(long dnfrm);\n\n    // ActrEdit Routines\n    bool FDup(PACTR *ppactr, bool fReset = fFalse); // Duplicate everything\n    void Restore(PACTR pactr);\n\n    bool FCreateUndo(PACTR pactr, bool fSndUndo = fFalse, PSTN pstn = pvNil); // Create undo object\n    void Reset(void);\n    bool FAddOnStage(void); // add actor to the stage, w/Undo\n    bool FSetAction(long anid, long celn, bool fFreeze, PACTR *ppactrDup = pvNil);\n    bool FSetCostume(long ibset, TAG *ptag, long cmid, tribool fCustom);\n    bool FRemFromStage(void);                                 // add event: rem actor from stage, w/Undo\n    bool FCopy(PACTR *ppactr, bool fEntireScene = fFalse);    // Duplicate actor from this frame on\n    bool FCopyRte(PACTR *ppactr, bool fEntireScene = fFalse); // Duplicate path from this frame on\n    bool FPasteRte(PACTR pactr);                              // Paste from clipboard from this frame on\n    bool FNormalize(ulong grfnorm);\n    bool FPaste(long nfrm, SCEN *pscen);\n    bool FDelete(bool *pfAlive, bool fDeleteAll);\n\n    // ActrSnd Routines\n    bool FSetSnd(PTAG ptag, tribool fLoop, tribool fQueue, tribool fActnCel, long vlm, long sty);\n    bool FSetSndCore(PTAG ptag, tribool fLoop, tribool fQueue, tribool fActnCel, long vlm, long sty);\n    bool FSetVlmSnd(long sty, bool fMotionMatch, long vlm); // Set the volume of a sound\n    bool FQuerySnd(long sty, bool fMotionMatch, PGL *pglTagSnd, long *pvlm, bool *pfLoop);\n    bool FDeleteSndCore(long sty, bool fMotionMatch);\n    bool FSoundInFrm(void);\n    bool FResolveAllSndTags(CNO cnoScen);\n\n    // Route Definition\n    void SetTsInsert(ulong tsCurrent)\n    {\n        AssertBaseThis(0);\n        _tsInsert = tsCurrent;\n    }\n    bool FBeginRecord(ulong tsCurrent, bool fReplace, PACTR pactrRestore);\n    bool FRecordMove(BRS dxr, BRS dyr, BRS dzr, ulong grfmaf, ulong tsCurrent, bool *pfLonger, bool *pfStep,\n                     PACTR pactrRestore);\n    bool FEndRecord(bool fReplace, PACTR pactrRestore);\n    bool FTweakRoute(BRS dxr, BRS dyr, BRS dzr, ulong grfmaf = fmafNil);\n    bool FMoveRoute(BRS dxr, BRS dyr, BRS dzr, bool *pfMoved = pvNil, ulong grfmaf = fmafNil);\n};\n\n//\n// Actor document for clipping\n//\ntypedef class ACLP *PACLP;\n#define ACLP_PAR DOCB\n#define kclsACLP 'ACLP'\nclass ACLP : public ACLP_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    PACTR _pactr;\n    bool _fRteOnly;\n    STN _stnName;\n\n    ACLP(void)\n    {\n    }\n\n  public:\n    //\n    // Constructors and destructors\n    //\n    static PACLP PaclpNew(PACTR pactr, bool fRteOnly, bool fEndScene = fFalse);\n    ~ACLP(void);\n\n    //\n    // Pasting function\n    //\n    bool FPaste(PMVIE pmvie);\n\n    bool FRouteOnly(void)\n    {\n        return _fRteOnly;\n    }\n};\n\n#endif //! ACTOR_H\n"
  },
  {
    "path": "inc/ape.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    ape.h: Actor preview entity\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    BASE ---> CMH ---> GOB ---> APE\n\n***************************************************************************/\n#ifndef APE_H\n#define APE_H\n\n// APE tool types\nenum\n{\n    aptNil = 0,\n    aptIncCmtl,      // Increment CMTL\n    aptIncAccessory, // Increment Accessory\n    aptGms,          // Material (MTRL or CMTL)\n    aptLim\n};\n\n// Generic material spec\nstruct GMS\n{\n    bool fValid; // if fFalse, ignore this GMS\n    bool fMtrl;  // if fMtrl is fTrue, tagMtrl is valid.  Else cmid is valid\n    long cmid;\n    TAG tagMtrl;\n};\n\n// Actor preview entity tool\nstruct APET\n{\n    long apt;\n    GMS gms;\n};\n\n/****************************************\n    Actor preview entity class\n****************************************/\ntypedef class APE *PAPE;\n#define APE_PAR GOB\n#define kclsAPE 'APE'\nclass APE : public APE_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(APE)\n\n  protected:\n    PBWLD _pbwld;       // BRender world to draw actor in\n    PTMPL _ptmpl;       // Template (or TDT) of the actor being previewed\n    PBODY _pbody;       // Body of the actor being previewed\n    APET _apet;         // Currently selected tool\n    PGL _pglgms;        // What materials are attached to what body part sets\n    long _celn;         // Current cel of action\n    CLOK _clok;         // To time cel cycling\n    BLIT _blit;         // BRender light data\n    BACT _bact;         // BRender light actor\n    long _anid;         // Current action ID\n    long _iview;        // Current camera view\n    bool _fCycleCels;   // If cycling cels\n    PRCA _prca;         // resource source (for cursors)\n    long _ibsetOnlyAcc; // ibset of accessory, if only one (else ivNil)\n\n  protected:\n    APE(PGCB pgcb) : GOB(pgcb), _clok(CMH::HidUnique())\n    {\n    }\n    bool _FInit(PTMPL ptmpl, PCOST pcost, long anid, bool fCycleCels, PRCA prca);\n    void _InitView(void);\n    void _SetScale(void);\n    void _UpdateView(void);\n    bool _FApplyGms(GMS *pgms, long ibset);\n    bool _FIncCmtl(GMS *pgms, long ibset, bool fNextAccessory);\n    long _CmidNext(long ibset, long icmidCur, bool fNextAccessory);\n\n  public:\n    static PAPE PapeNew(PGCB pgcb, PTMPL ptmpl, PCOST pcost, long anid, bool fCycleCels, PRCA prca = pvNil);\n    ~APE();\n\n    void SetToolMtrl(PTAG ptagMtrl);\n    void SetToolCmtl(long cmid);\n    void SetToolIncCmtl(void);\n    void SetToolIncAccessory(void);\n\n    bool FSetAction(long anid);\n    bool FCmdNextCel(PCMD pcmd);\n\n    void SetCustomView(BRA xa, BRA ya, BRA za);\n    void ChangeView(void);\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FCmdMouseMove(PCMD_MOUSE pcmd);\n    virtual bool FCmdTrackMouse(PCMD_MOUSE pcmd);\n\n    bool FChangeTdt(PSTN pstn, long tdts, PTAG ptagTdf);\n    bool FSetTdtMtrl(PTAG ptagMtrl);\n    bool FGetTdtMtrlCno(CNO *pcno);\n\n    void GetTdtInfo(PSTN pstn, long *ptdts, PTAG ptagTdf);\n    long Anid(void)\n    {\n        return _anid;\n    }\n    long Celn(void)\n    {\n        return _celn;\n    }\n    void SetCycleCels(bool fOn);\n    bool FIsCycleCels(void)\n    {\n        return _fCycleCels;\n    }\n    bool FDisplayCel(long celn);\n    long Cbset(void)\n    {\n        return _pbody->Cbset();\n    }\n\n    // Returns fTrue if a material was applied to this ibset\n    bool FGetMaterial(long ibset, tribool *pfMtrl, long *pcmid, TAG *ptagMtrl);\n};\n\n#endif APE_H\n"
  },
  {
    "path": "inc/assert.chh",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\n*\n*  ASSERT.CHH\n*\n*  Copyright (C) Microsoft Corporation 1995.\n*  All Rights reserved.\n*\n******************************************************************************\n*\n*  Module Intent\n*\n*  Contains ASSERT macros used for debugging chunky files.  Note: the\n*\texpression passed to the ASSERT macro is thrown away in the non-debug\n*\tbuild, but the expression passed to the VERIFY macro is executed in the\n*\tnon-debug build.\n*\t\te.g.\tASSERT(.next == 0);\n*\t\te.g.  VERIFY(Launch(\"Notepad.exe\"));\n*\n*\tA DEBUGCMD(cmd); macro is also provided.  This is equivalent to:\n*\t\t#ifdef DEBUG\n*\t\t\tcmd;\n*\t\t#endif\t// DEBUG\n*\tand is provided mainly to wrap Print and PrintStr commands.  In non-debug\n*\tbuilds, the DEBUGCMD and its argument are both thrown away.\n*\n******************************************************************************\n*\n*  Revision History:  Created 5/31/95 by *****.\n*\n*\t06/02/95\t*****\t\tAdded DEBUGCMD macro; renamed file from ASSERT.H to\n*\t\t\t\t\t\t\tASSERT.CHH.\n*\n*****************************************************************************/\n\n#ifndef ASSERT_CHH\n#define ASSERT_CHH\n\n/*****************************************************************************\n*                                                                            *\n*                                Macros                                      *\n*                                                                            *\n*****************************************************************************/\n\n#ifdef DEBUG\n\n#define ASSERT(f)\t\t\t\t\t\t\\\n\tIf (!(f));\t\t\t\t\t\t\t\\\n\t\tAlertStr(\"Assertion failed: \", __FILE__, \", line \", NumToStr(__LINE__,\"\"));\t\\\n\tEnd\n\n#define VERIFY(f)\t\t\t\t\t\t\\\n\tIf (!(f));\t\t\t\t\t\t\t\\\n\t\tAlertStr(\"Assertion failed: \", __FILE__, \", line \", NumToStr(__LINE__,\"\"));\t\\\n\tEnd\n\n#define DEBUGCMD(cmd) cmd\n\n#else\t\t// NOT DEBUG\n\n#define ASSERT(f)\n\n#define VERIFY(f) f\n\n#define DEBUGCMD(cmd)\n\n#endif\t// DEBUG\n\n#endif\t// ASSERT_CHH\n"
  },
  {
    "path": "inc/balloons.chh",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// -----------------------------------------------------\n// Help balloon and control definitions\n// -----------------------------------------------------\n#ifndef BALLOONS_CHH\n#define BALLOONS_CHH\n\n// misc defs, balloons, objects, etc.\n#define kgobBalloon1 \t\t\t0x00016001\n#define kgobBalloonAlert\t\t0x00016002\n#define kgobBalloonBlank\t\t0x00016003\n#define kgobBalloonBorder1\t\t0x00016004\n#define kgobHelpCheck\t\t\t0x00016005\n#define kgobBalloonTip\t\t\t0x00016006\n#define kgobBalloon1d\t\t\t0x00016007\n#define kgobBalloon1e\t\t\t0x00016008\n#define kgobBalloon1a\t\t\t0x00016009\n#define kgobVoiceOver\t\t\t0x0001600a\n#define kgobBookTitle\t\t\t0x0001600b\n#define kgobBalloonLabel\t\t0x0001600c                                                     \t\n#define kgobBalloonToolTip  \t0x0001600d\n#define gobBalloonToolTip\t\t0x0001600d\n#define kgobBalloonToolTopic \t0x0001600e\n#define kgobBalloonPageLeft \t0x0001600f\n#define kgobBalloonPageRight\t0x00016010\n#define kgobHelpBookToolTopics\t0x00016011\n#define kgobBalloonHowtoSeq\t\t0x00016012\n#define kgobBalloonProject\t\t0x00016013\t\t\n#define kgobBalloonGuideHelp\t0x00016014\t\t\n#define kgobCalloutBalloon0\t\t0x00016015\n#define kgobCalloutBalloon1\t\t0x00016016\n#define kgobCalloutBalloon2\t\t0x00016017\n#define kgobCalloutBalloon3\t\t0x00016018\n#define kgobCalloutBalloon4\t\t0x00016019\n#define kgobCalloutBalloon5\t\t0x0001601a\n#define kgobCalloutBalloon6\t\t0x0001601b\n#define kgobCalloutBalloon7\t\t0x0001601c\n#define kgobCalloutBalloon8\t\t0x0001601d\n#define kgobCalloutBalloonP\t\t0x0001601e\n#define kgobCalloutBalloonAO\t0x0001601f\n#define kgobCalloutHTBalloon0\t0x00016020\n#define kgobCalloutHTBalloon1\t0x00016021\n#define kgobCalloutHTBalloon2\t0x00016022\n#define kgobCalloutHTBalloon3\t0x00016023\n#define kgobCalloutHTBalloon4\t0x00016024\n#define kgobCalloutHTBalloon5\t0x00016025\n#define kgobCalloutHTBalloon6\t0x00016026\n#define kgobCalloutHTBalloon7\t0x00016027\n#define kgobCalloutHTBalloon8\t0x00016028\n#define kgobCalloutHTBalloonP\t0x00016029\n#define kgobQueryTopics\t\t\t0x0001602a\n#define\tkgobBalloonToolTipAO\t0x0001602b\n#define\tkgobBalloonHotHelp\t\t0x0001602c\n#define\tkgobBalloonHotGadgetHelp 0x0001602d\n#define kgobBalloonToolTip2\t\t0x0001602e\n#define kgobEaselBalloon4\t\t0x0001602f\n#define kgobEaselBalloon6\t\t0x00016030\n#define kgobEaselBalloon2\t\t0x00016031\n#define kgobEaselBalloonP\t\t0x00016032\n\n// objects\n#define kgobHelpSquishy\t\t0x00016100\n#define _gobHelpSquishy\t\t0x00016100\n#define kgobTipKey\t\t\t0x00016101\n#define _gobTipKey\t\t\t0x00016101\n#define kgobTipGem\t\t\t0x00016102\n#define _gobTipGem\t\t\t0x00016102\n#define kgobOkButton\t\t0x00016103\n#define kgobQuestionButton\t0x00016104\n#define kgobCancelButton\t0x00016105\n\n#endif\n"
  },
  {
    "path": "inc/biopage.chh",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// file to build the actor bio pages \n\n\n\n#define kgobBioPage\t\t\t\t0x00015100\n#define kgobBioBook\t\t\t\t0x00015101\n#define kgobBioActors\t\t\t0x00015102\n#define kgobBioCancel\t\t\t0x00015103\n#define kgobBioFwd\t\t\t\t0x00015104\n#define kgobBioBack\t\t\t\t0x00015105\n#define kgobBlankBalloon\t\t0x00015106\n#define kgobPopTip\t\t\t\t0x00015107\n#define kgobBioPanel\t\t\t0x00015108\n#define kgobBioHolder\t\t\t0x00015109\n#define kgobBioResizable\t\t0x0001510a\n#define kgobBioPageHolder\t\t0x0001510b\n\t\t\t\t\t \n#define ktpcBioPage1\t\t\t0x00015201\t\t\n#define ktpcBioPage2\t\t\t0x00015202\t\t\n#define ktpcBioPage3\t\t\t0x00015203\t\t\n#define ktpcBioPage4\t\t\t0x00015204\t\t\n#define ktpcBioPage5\t\t\t0x00015205\t\t\n#define ktpcBioPage6\t\t\t0x00015206\t\t\n#define ktpcBioPage7\t\t\t0x00015207\t\t\n#define ktpcBioPage8\t\t\t0x00015208\t\t\n#define ktpcBioPage9\t\t\t0x00015209\t\t\n#define ktpcBioPage10\t\t\t0x0001520a\t\n#define ktpcBioPage11\t\t\t0x0001520b\t\n#define ktpcBioPage12\t\t\t0x0001520c\t\n#define ktpcBioPage13\t\t\t0x0001520d\t\n#define ktpcBioPage14\t\t\t0x0001520e\t\n#define ktpcBioPage15\t\t\t0x0001520f\t\n#define ktpcBioPage16\t\t\t0x00015210\t\n#define ktpcBioPage17\t\t\t0x00015211\t\n#define ktpcBioPage18\t\t\t0x00015212\t\n#define ktpcBioPage19\t\t\t0x00015213\t\n#define ktpcBioPage20\t\t\t0x00015214\t\n#define ktpcBioPage21\t\t\t0x00015215\t\n#define ktpcBioPage22\t\t\t0x00015216\t\n#define ktpcBioPage23\t\t\t0x00015217\t\n#define ktpcBioPage24\t\t\t0x00015218\t\n#define ktpcBioPage25\t\t\t0x00015219\t\n#define ktpcBioPage26\t\t\t0x0001521a\t\n#define ktpcBioPage27\t\t\t0x0001521b\t\n#define ktpcBioPage28\t\t\t0x0001521c\t\n#define ktpcBioPage29\t\t\t0x0001521d\t\n#define ktpcBioPage30\t\t\t0x0001521e\t\n#define ktpcBioPage31\t\t\t0x0001521f\t\n#define ktpcBioPage32\t\t\t0x00015220\t\n#define ktpcBioPage33\t\t\t0x00015221\t\n#define ktpcBioPage34\t\t\t0x00015222\t\n#define ktpcBioPage35\t\t\t0x00015223\t\n#define ktpcBioPage36\t\t\t0x00015224\t\n#define ktpcBioPage37\t\t\t0x00015225\t\n#define ktpcBioPage38\t\t\t0x00015226\t\n#define ktpcBioPage39\t\t\t0x00015227\t\n#define ktpcBioPage40\t\t\t0x00015228\t\n#define ktpcBioPage41\t\t\t0x00015229\t\n#define ktpcBioPage42\t\t\t0x0001522a\t\n#define ktpcBioPage43\t\t\t0x0001522b\t\n#define ktpcBioPage44\t\t\t0x0001522c\t\n\n#define ktpcBioPageNum\t\t\t0x0001522d\n#define kidBioTipScript\t\t\t0x0001522e\t\t// script tip invocation runs\n\n#define ktpcBioTip001\t\t\t0x00015301 \n#define ktipbio1\t\t\t\t\t0x00015302 \t\t\n#define ktipbio2\t\t\t\t\t0x00015303 \t\t\n#define ktipbio3\t\t\t\t\t0x00015304 \t\t\n#define ktipbio4\t\t\t\t\t0x00015305 \t\t\n#define ktipbio5\t\t\t\t\t0x00015306 \t\t\n#define ktipbio6\t\t\t\t\t0x00015307 \t\t\n#define ktipbio7\t\t\t\t\t0x00015308 \t\t\n#define ktipbio8\t\t\t\t\t0x00015309 \t\t\n#define ktipbio9\t\t\t\t\t0x0001530a \t\t\n#define ktipbio10\t\t\t\t\t0x0001530b \t\n#define ktipbio11\t\t\t\t\t0x0001530c \t\n#define ktipbio12\t\t\t\t\t0x0001530d \t\n#define ktipbio13\t\t\t\t\t0x0001530e \t\n#define ktipbio14\t\t\t\t\t0x0001530f \t\n#define ktipbio15\t\t\t\t\t0x00015310 \t\n#define ktipbio16\t\t\t\t\t0x00015311 \t\n#define ktipbio17\t\t\t\t\t0x00015312 \t\n#define ktipbio18\t\t\t\t\t0x00015313 \t\n#define ktipbio19\t\t\t\t\t0x00015314 \t\n#define ktipbio20\t\t\t\t\t0x00015315 \t\n#define ktipbio21\t\t\t\t\t0x00015316 \t\n#define ktipbio22\t\t\t\t\t0x00015317 \t\n#define ktipbio23\t\t\t\t\t0x00015318 \t\n#define ktipbio24\t\t\t\t\t0x00015319 \t\n#define ktipbio25\t\t\t\t\t0x0001531a \t\n#define ktipbio26\t\t\t\t\t0x0001531b \t\n#define ktipbio27\t\t\t\t\t0x0001531c \t\n#define ktipbio28\t\t\t\t\t0x0001531d \t\n#define ktipbio29\t\t\t\t\t0x0001531e \t\n#define ktipbio30\t\t\t\t\t0x0001531f \t\n#define ktipbio31\t\t\t\t\t0x00015320 \t\n#define ktipbio32\t\t\t\t\t0x00015321 \t\n#define ktipbio33\t\t\t\t\t0x00015322 \t\n#define ktipbio34\t\t\t\t\t0x00015323 \t\n#define ktipbio35\t\t\t\t\t0x00015324 \t\n#define ktipbio36\t\t\t\t\t0x00015325 \t\n#define ktipbio37\t\t\t\t\t0x00015326 \t\n#define ktipbio38\t\t\t\t\t0x00015327 \t\n#define ktipbio39\t\t\t\t\t0x00015328 \t\n#define ktipbio40\t\t\t\t\t0x00015329 \t\n#define ktipbio41\t\t\t\t\t0x0001532a \t\n#define ktipbio42\t\t\t\t\t0x0001532b \t\n#define ktipbio43\t\t\t\t\t0x0001532c \t\n#define ktipbio44\t\t\t\t\t0x0001532d \t\n#define ktipbio45\t\t\t\t\t0x0001532e \t\n#define ktipbio46\t\t\t\t\t0x0001532f \t\n#define ktipbio47\t\t\t\t\t0x00015330 \t\n#define ktipbio48\t\t\t\t\t0x00015331 \t\n#define ktipbio49\t\t\t\t\t0x00015332 \t\n#define ktipbio50\t\t\t\t\t0x00015333 \t\n#define ktipbio51\t\t\t\t\t0x00015334 \t\n#define ktipbio52\t\t\t\t\t0x00015335 \t\n#define ktipbio53\t\t\t\t\t0x00015336 \t\n#define ktipbio54\t\t\t\t\t0x00015337 \t\n#define ktipbio55\t\t\t\t\t0x00015338 \t\n#define ktipbio56\t\t\t\t\t0x00015339 \t\n#define ktipbio57\t\t\t\t\t0x0001533a \t\n#define ktipbio58\t\t\t\t\t0x0001533b \t\n#define ktipbio59\t\t\t\t\t0x0001533c \t\n#define ktipbio60\t\t\t\t\t0x0001533d \t\n#define ktipbio61\t\t\t\t\t0x0001533e \t\n#define ktipbio62\t\t\t\t\t0x0001533f \t\n#define ktipbio63\t\t\t\t\t0x00015340 \t\n#define ktipbio64\t\t\t\t\t0x00015341 \t\n#define ktipbio65\t\t\t\t\t0x00015342 \t\n#define ktipbio66\t\t\t\t\t0x00015343 \t\n#define ktipbio67\t\t\t\t\t0x00015344 \t\n#define ktipbio68\t\t\t\t\t0x00015345 \t\n#define ktipbio69\t\t\t\t\t0x00015346 \t\n#define ktipbio70\t\t\t\t\t0x00015347 \t\n#define ktipbio71\t\t\t\t\t0x00015348 \t\n#define ktipbio72\t\t\t\t\t0x00015349 \t\n#define ktipbio73\t\t\t\t\t0x0001534a \t\n#define ktipbio74\t\t\t\t\t0x0001534b \t\n#define ktipbio75\t\t\t\t\t0x0001534c \t\n#define ktipbio76\t\t\t\t\t0x0001534d \t\n#define ktipbio77\t\t\t\t\t0x0001534e \t\n#define ktipbio78\t\t\t\t\t0x0001534f \t\n#define ktipbio79\t\t\t\t\t0x00015350 \t\n#define ktipbio80\t\t\t\t\t0x00015351 \t\n#define ktipbio81\t\t\t\t\t0x00015352 \t\n#define ktipbio82\t\t\t\t\t0x00015353 \t\n#define ktipbio83\t\t\t\t\t0x00015354 \t\n#define ktipbio84\t\t\t\t\t0x00015355 \t\n#define ktipbio85\t\t\t\t\t0x00015356 \t\n#define ktipbio86\t\t\t\t\t0x00015357 \t\n#define ktipbio87\t\t\t\t\t0x00015358 \t\n#define ktipbio88\t\t\t\t\t0x00015359 \t\n#define ktipbio89\t\t\t\t\t0x0001535a \t\n#define ktipbio90\t\t\t\t\t0x0001535b \t\n#define ktipbio91\t\t\t\t\t0x0001535c \t\n#define ktipbio92\t\t\t\t\t0x0001535d \t\n#define ktipbio93\t\t\t\t\t0x0001535e \t\n#define ktipbio94\t\t\t\t\t0x0001535f \t\n#define ktipbio95\t\t\t\t\t0x00015360 \t\n#define ktipbio96\t\t\t\t\t0x00015361 \t\n#define ktipbio97\t\t\t\t\t0x00015362 \t\n#define ktipbio98\t\t\t\t\t0x00015363 \t\n#define ktipbio99\t\t\t\t\t0x00015364 \t\n#define ktipbio100\t\t\t\t\t0x00015365 \t\n#define ktipbio101\t\t\t\t\t0x00015366 \t\n#define ktipbio102\t\t\t\t\t0x00015367 \t\n#define ktipbio103\t\t\t\t\t0x00015368 \t\n#define ktipbio104\t\t\t\t\t0x00015369 \t\n#define ktipbio105\t\t\t\t\t0x0001536a \t\n#define ktipbio106\t\t\t\t\t0x0001536b \t\n#define ktipbio107\t\t\t\t\t0x0001536c \t\n#define ktipbio108\t\t\t\t\t0x0001536d \t\n#define ktipbio109\t\t\t\t\t0x0001536e \t\n#define ktipbio110\t\t\t\t\t0x0001536f \t\n#define ktipbio111\t\t\t\t\t0x00015370 \t\n#define ktipbio112\t\t\t\t\t0x00015371 \t\n#define ktipbio113\t\t\t\t\t0x00015372 \t\n#define ktipbio114\t\t\t\t\t0x00015373 \t\n#define ktipbio115\t\t\t\t\t0x00015374 \t\n#define ktipbio116\t\t\t\t\t0x00015375 \t\n#define ktipbio117\t\t\t\t\t0x00015376 \t\n#define ktipbio118\t\t\t\t\t0x00015377 \t\n#define ktipbio119\t\t\t\t\t0x00015378 \t\n#define ktipbio120\t\t\t\t\t0x00015379 \t\n#define ktipbio121\t\t\t\t\t0x0001537a \t\n#define ktipbio122\t\t\t\t\t0x0001537b \t\n#define ktipbio123\t\t\t\t\t0x0001537c \t\n#define ktipbio124\t\t\t\t\t0x0001537d \t\n#define ktipbio125\t\t\t\t\t0x0001537e \t\n#define ktipbio126\t\t\t\t\t0x0001537f \t\n#define ktipbio127\t\t\t\t\t0x00015380 \t\n#define ktipbio128\t\t\t\t\t0x00015381 \t\n#define ktipbio129\t\t\t\t\t0x00015382 \t\n#define ktipbio130\t\t\t\t\t0x00015383 \t\n#define ktipbio131\t\t\t\t\t0x00015384 \t\n#define ktipbio132\t\t\t\t\t0x00015385 \t\n#define ktipbio133\t\t\t\t\t0x00015386 \t\n#define ktipbio134\t\t\t\t\t0x00015387 \t\n#define ktipbio135\t\t\t\t\t0x00015388 \t\n#define ktipbio136\t\t\t\t\t0x00015389 \t\n#define ktipbio137\t\t\t\t\t0x0001538a \t\n#define ktipbio138\t\t\t\t\t0x0001538b \t\n#define ktipbio139\t\t\t\t\t0x0001538c \t\n#define ktipbio140\t\t\t\t\t0x0001538d \t\n#define ktipbio141\t\t\t\t\t0x0001538e \t\n#define ktipbio142\t\t\t\t\t0x0001538f \t\n#define ktipbio143\t\t\t\t\t0x00015390 \t\n#define ktipbio144\t\t\t\t\t0x00015391 \t\n#define ktipbio145\t\t\t\t\t0x00015392 \t\n#define ktipbio146\t\t\t\t\t0x00015393 \t\n#define ktipbio147\t\t\t\t\t0x00015394 \t\n#define ktipbio148\t\t\t\t\t0x00015395 \t\n#define ktipbio149\t\t\t\t\t0x00015396 \t\n#define ktipbio150\t\t\t\t\t0x00015397 \t\n#define ktipbio151\t\t\t\t\t0x00015398 \t\n#define ktipbio152\t\t\t\t\t0x00015399 \t\n#define ktipbio153\t\t\t\t\t0x0001539a \t\n#define ktipbio154\t\t\t\t\t0x0001539b \t\n#define ktipbio155\t\t\t\t\t0x0001539c \t\n#define ktipbio156\t\t\t\t\t0x0001539d \t\n#define ktipbio157\t\t\t\t\t0x0001539e \t\n#define ktipbio158\t\t\t\t\t0x0001539f \t\n#define ktipbio159\t\t\t\t\t0x000153a0 \t\n#define ktipbio160\t\t\t\t\t0x000153a1 \t\n#define ktipbio161\t\t\t\t\t0x000153a2 \t\n#define ktipbio162\t\t\t\t\t0x000153a3 \t\n#define ktipbio163\t\t\t\t\t0x000153a4 \t\n#define ktipbio164\t\t\t\t\t0x000153a5 \t\n#define ktipbio165\t\t\t\t\t0x000153a6 \t\n#define ktipbio166\t\t\t\t\t0x000153a7 \t\n#define ktipbio167\t\t\t\t\t0x000153a8 \t\n#define ktipbio168\t\t\t\t\t0x000153a9\n\n#define kxpBioPageLeft\t \t\t215\n#define kypBioPageTop\t\t\t58\n#define kxpBioPageRight\t\t\t422\n#define kypBioPageBottom\t\t407\n\n#define kxpBioPageNumLeft\t \t282\n#define kypBioPageNumTop\t\t424\n#define kxpBioPageNumRight\t\t344\n#define kypBioPageNumBottom\t\t451\n\n\n// the following tools assume 0,0 reg points\n\n#define kxpBioCancel\t\t\t511\n#define kypBioCancel\t\t\t415\n\n#define kxpBioBack\t\t\t\t229\n#define kypBioBack\t\t\t\t410\n\n#define kxpBioFwd\t\t\t\t339\n#define kypBioFwd\t\t\t\t410\n\n\n// String ID for page numbering\n\n#define kstidBioPageNum\t\t\t100\n\n// waves for bio pages \n\n#define kwavBio1\t\t\t\t0x00010040\n#define kwavBio2\t\t\t\t0x00010041\n#define kwavBio3\t\t\t\t0x00010042\n#define kwavBio4\t\t\t\t0x00010043\n#define kwavFoundBio \t\t\t0x00010044\n#define kwavBioAlreadyFound\t\t0x00010045\n#define kwavOpenBio \t\t\t0x00010046\n\n/**********************************************************************\n\n\tThe following define the interface to the Bio book\n\n**********************************************************************/\n\n//  The following is the mapping from internal page # to\n//  displayed page number.  This may change to allow sorting\n//  for international versions... just make sure there's 40 of these!\n\n#define BIO_PAGE_ORDER\t0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20, \\\n\t\t21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46\n\n#define NUM_BIOPAGES  41\n\n#define fBIO_AVAIL( x ) \\\n\t((x > 31) ? ( ::fBio2 & (1<<(x&31)) ) : ( ::fBio1 & (1<<(x&31)) ))\n\n// all found = 41 = 32  + 9 , eg. ffffffffff:0000001ff\n\n#define fBIO_FOUNDALL() \\\n\t((GetProp( kpridUserData0 ) == 0xffffffff) && ((GetProp( kpridUserData1 ) & 0x000001ff )==0x000001ff ))\n\n// init the bio pages - always have page #1 loaded, hence the |1 bit\n// write back at INIT to make sure TOC is set.\n#define BIO_INIT() \\\n\t::fBio1 = GetProp( kpridUserData0 )|1;\\\n\t::fBio2 = GetProp( kpridUserData1 );\\\n\tSetProp( kpridUserData0, ::fBio1 );\n\n#define BIO_MARKFOUND( x1 ) \\\n\t__t = 1<< (x1 & 31); \\\n\tIf (x1 > 31 ); \\\n\t\t::fBio2 |= __t; \\\n\t\tSetProp( kpridUserData1, ::fBio2 );\\\n\tElse; \\\n\t\t::fBio1 |= __t; \\\n\t\tSetProp( kpridUserData0, ::fBio1 );\\\n\tEnd;\n\n#define BIO_CREATEBOOK( __nPage, __fControls, __kgobPar )\\\n\t::nBioPage = __nPage;\\\n\t::fBioCtrl = __fControls;\\\n\tCreateChildGob( __kgobPar, kgobBioPage, kgobBioPage )\n\n#define BIO_GETPAGE() \\\n\t::nBioPage\n\n#define BIO_SETPAGE( x )\\\n\t::nBioPage = x;\n"
  },
  {
    "path": "inc/bkgd.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    bkgd.h: Background class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    BASE ---> BACO ---> BKGD\n\n***************************************************************************/\n#ifndef BKGD_H\n#define BKGD_H\n\n/****************************************\n    Background on file\n****************************************/\nstruct BKGDF\n{\n    short bo;\n    short osk;\n    byte bIndexBase;\n    byte bPad;\n    short swPad;\n};\nconst BOM kbomBkgdf = 0x50000000;\n\n/****************************************\n    Specifies a light's kind, position,\n    orientation, and brightness\n****************************************/\nstruct LITE\n{\n    BMAT34 bmat34;\n    BRS rIntensity;\n    long lt; // light type\n};\nconst BOM kbomLite = 0xfffffff0;\n\n/****************************************\n    Specifies a camera for a view\n****************************************/\ntypedef union _apos {\n    struct\n    {\n        BRS xrPlace; // Initial Actor Placement point\n        BRS yrPlace;\n        BRS zrPlace;\n    };\n    BVEC3 bvec3Actor;\n} APOS;\n\nstruct CAM\n{\n    short bo;\n    short osk;\n    BRS zrHither; // Hither (near) plane\n    BRS zrYon;    // Yon (far) plane\n    BRA aFov;     // Field of view\n    short swPad;\n    APOS apos;\n    BMAT34 bmat34Cam; // Camera view matrix\n    // APOS rgapos[];\n};\nconst BOM kbomCamOld = 0x5f4fc000;\nconst BOM kbomCam = BomField(\n    kbomSwapShort,\n    BomField(kbomSwapShort,\n             BomField(kbomSwapLong,\n                      BomField(kbomSwapLong,\n                               BomField(kbomSwapShort,\n                                        BomField(kbomLeaveShort,\n                                                 BomField(kbomSwapLong,\n                                                          BomField(kbomSwapLong, BomField(kbomSwapLong, 0)))))))));\n\n// Note that CAM is too big for a complete kbomCam.  To SwapBytes one,\n// SwapBytesBom the cam, then SwapBytesRgLw from bmat34Cam on.\n\n/****************************************\n    Background Default Sound\n****************************************/\nstruct BDS\n{\n    short bo;\n    short osk;\n    long vlm;\n    bool fLoop;\n    TAG tagSnd;\n};\nconst BOM kbomBds = 0x5f000000 | kbomTag >> 8;\n\n/****************************************\n    The background class\n****************************************/\ntypedef class BKGD *PBKGD;\n#define BKGD_PAR BACO\n#define kclsBKGD 'BKGD'\nclass BKGD : public BKGD_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    BACT *_prgbactLight; // array of light br_actors\n    BLIT *_prgblitLight; // array of light data\n    long _cbactLight;    // count of lights\n    bool _fLites;        // lights are on\n    bool _fLeaveLitesOn; // Don't turn out the lights\n    long _ccam;          // count of cameras in this background\n    long _icam;          // current camera\n    BMAT34 _bmat34Mouse; // camera matrix for mouse model\n    BRA _braRotY;        // Y rotation of current camera\n    CNO _cnoSnd;         // background sound\n    STN _stn;            // name of this background\n    PGL _pglclr;         // palette for this background\n    byte _bIndexBase;    // first index for palette\n    long _iaposLast;     // Last placement point we used\n    long _iaposNext;     // Next placement point to use\n    PGL _pglapos;        // actor placement point(s) for current view\n    BRS _xrPlace;\n    BRS _yrPlace;\n    BRS _zrPlace;\n    BDS _bds;   // background default sound\n    BRS _xrCam; // camera position in worldspace\n    BRS _yrCam;\n    BRS _zrCam;\n\n  protected:\n    bool _FInit(PCFL pcfl, CTG ctg, CNO cno);\n    long _Ccam(PCFL pcfl, CTG ctg, CNO cno);\n    void _SetupLights(PGL pgllite);\n\n  public:\n    static bool FAddTagsToTagl(PTAG ptagBkgd, PTAGL ptagl);\n    static bool FCacheToHD(PTAG ptagBkgd);\n    static bool FReadBkgd(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n    ~BKGD(void);\n    void GetName(PSTN pstn);\n\n    void TurnOnLights(PBWLD pbwld);\n    void TurnOffLights(void);\n    bool FLeaveLitesOn(void)\n    {\n        return _fLeaveLitesOn;\n    }\n    void SetFLeaveLitesOn(bool fLeaveLitesOn)\n    {\n        _fLeaveLitesOn = fLeaveLitesOn;\n    }\n\n    long Ccam(void)\n    {\n        return _ccam;\n    } // count of cameras in background\n    long Icam(void)\n    {\n        return _icam;\n    }                                        // currently selected camera\n    bool FSetCamera(PBWLD pbwld, long icam); // change camera to icam\n\n    void GetMouseMatrix(BMAT34 *pbmat34);\n    BRA BraRotYCamera(void)\n    {\n        return _braRotY;\n    }\n    void GetActorPlacePoint(BRS *pxr, BRS *pyr, BRS *pzr);\n    void ReuseActorPlacePoint(void);\n\n    void GetDefaultSound(PTAG ptagSnd, long *pvlm, bool *pfLoop)\n    {\n        *ptagSnd = _bds.tagSnd;\n        *pvlm = _bds.vlm;\n        *pfLoop = _bds.fLoop;\n    }\n\n    bool FGetPalette(PGL *ppglclr, long *piclrMin);\n    void GetCameraPos(BRS *pxr, BRS *pyr, BRS *pzr);\n\n#ifdef DEBUG\n    // Authoring only.  Writes a special file with the given place info.\n    bool FWritePlaceFile(BRS xrPlace, BRS yrPlace, BRS zrPlace);\n#endif // DEBUG\n};\n\n#endif BKGD_H\n"
  },
  {
    "path": "inc/body.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*************************************************************************\n\n    body.h: Body class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    BASE ---> BODY\n\n*************************************************************************/\n#ifndef BODY_H\n#define BODY_H\n\n/****************************************\n    The BODY class\n****************************************/\ntypedef class BODY *PBODY;\n#define BODY_PAR BASE\n#define kclsBODY 'BODY'\nclass BODY : public BODY_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    static BMTL *_pbmtlHilite; // hilight material\n    static BODY *_pbodyClosestClicked;\n    static long _dzpClosestClicked;\n    static BACT *_pbactClosestClicked;\n    BACT *_prgbact;      // array of BACTs\n    PGL _pglibset;       // body part set IDs\n    long _cbset;         // count of body part sets\n    PCMTL *_prgpcmtl;    // array of PCMTLs -- one per body part set\n    long _cbactPart;     // count of model body parts in body\n    long _cactHidden;    // for Show() / Hide()\n    PBWLD _pbwld;        // world that body lives in\n    RC _rcBounds;        // bounds of body after last render\n    RC _rcBoundsLastVis; // bounds of body last time it was visible\n    bool _fFound;        // is the actor found under the mouse?\n    long _ibset;         // which body part got hit.\n\n  protected:\n    BODY(void)\n    {\n    } // can't instantiate directly; must use PbodyNew\n    void _DestroyShape(void);\n    bool _FInit(PGL pglibactPar, PGL pglibset);\n    bool _FInitShape(PGL pglibactPar, PGL pglibset);\n    PBACT _PbactRoot(void) // ptr to root BACT\n    {\n        return _prgbact;\n    }\n    PBACT _PbactHilite(void) // ptr to hilite BACT\n    {\n        return _prgbact + 1;\n    }                            // skip root BACT\n    PBACT _PbactPart(long ipart) // ptr to ipart'th body part\n    {\n        return _prgbact + 1 + 1 + ipart;\n    }                 // skip root and hilite BACTs\n    long _Cbact(void) // count in _prgbact\n    {\n        return 1 + 1 + _cbactPart;\n    }                       // root, hilite, and body part BACTs\n    long _Ibset(long ipart) // body part set that this part belongs to\n    {\n        return *(short *)_pglibset->QvGet(ipart);\n    }\n    void _RemoveMaterial(long ibset);\n\n    // Callbacks from BRender:\n    static int BR_CALLBACK _FFilterSearch(BACT *pbact, PBMDL pbmdl, PBMTL pbmtl, BVEC3 *pbvec3RayPos,\n                                          BVEC3 *pbvec3RayDir, BRS dzpNear, BRS dzpFar, void *pvArg);\n    static void _BactRendered(PBACT pbact, RC *prc);\n    static void _PrepareToRender(PBACT pbact);\n    static void _GetRc(PBACT pbact, RC *prc);\n\n  public:\n    static PBODY PbodyNew(PGL pglibactPar, PGL pglibset);\n    static PBODY PbodyFromBact(BACT *pbact, long *pibset = pvNil);\n    static PBODY PbodyClicked(long xp, long yp, PBWLD pbwld, long *pibset = pvNil);\n    ~BODY(void);\n    PBODY PbodyDup(void);\n    void Restore(PBODY pbodyDup);\n    static int BR_CALLBACK _FFilter(BACT *pbact, PBMDL pbmdl, PBMTL pbmtl, BVEC3 *pbvec3RayPos, BVEC3 *pbvec3RayDir,\n                                    BRS dzpNear, BRS dzpFar, void *pv);\n\n    bool FChangeShape(PGL pglibactPar, PGL pglibset);\n    void SetBwld(PBWLD pbwld)\n    {\n        _pbwld = pbwld;\n    }\n\n    void Show(void);\n    void Hide(void);\n    void Hilite(void);\n    void Unhilite(void);\n\n    static void SetHiliteColor(long iclr);\n\n    void LocateOrient(BRS xr, BRS yr, BRS zr, BMAT34 *pbmat34);\n    void SetPartModel(long ibact, MODL *pmodl);\n    void SetPartMatrix(long ibact, BMAT34 *pbmat34);\n    void SetPartSetMtrl(long ibset, MTRL *pmtrl);\n    void SetPartSetCmtl(CMTL *pcmtl);\n    void GetPartSetMaterial(long ibset, bool *pfMtrl, MTRL **ppmtrl, CMTL **ppcmtl);\n    long Cbset()\n    {\n        return _cbset;\n    }\n\n    void GetBcbBounds(BCB *pbcb, bool fWorld = fFalse);\n    void GetRcBounds(RC *prc);\n    void GetCenter(long *pxp, long *pyp);\n    void GetPosition(BRS *pxr, BRS *pyr, BRS *pzr);\n    bool FPtInBody(long xp, long yp, long *pibset);\n    bool FIsInView(void);\n};\n\n/****************************************\n    The COST class, which is used to\n    save and restore a BODY's entire\n    costume for unwinding purposes\n****************************************/\ntypedef class COST *PCOST;\n#define COST_PAR BASE\n#define kclsCOST 'COST'\nclass COST : public COST_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  private:\n    long _cbset;   // count of body part sets in _prgpo\n    BASE **_prgpo; // array of MTRLs and CMTLs\n\n  private:\n    void _Clear(void); // release _prgpo and material references\n\n  public:\n    COST(void);\n    ~COST(void);\n\n    bool FGet(PBODY pbody); // read and store BODY's costume\n\n    // replace BODY's costume with this one\n    void Set(PBODY pbody, bool fAllowDifferentShape = fFalse);\n};\n\n#endif // !BODY_H\n"
  },
  {
    "path": "inc/browser.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/**************************************************************\n\n   Browser Class\n\n    Author : *****\n    Review Status: Reviewed\n\n    Studio Independent Browsers:\n    BASE --> CMH --> GOK\t-->\tBRWD  (Browser display class)\n    BRWD --> BRWL  (Browser list class; chunky based)\n    BRWD --> BRWT  (Browser text class)\n    BRWD --> BRWL --> BRWN  (Browser named list class)\n\n    Studio Dependent Browsers:\n    BRWD --> BRWR  (Roll call class)\n    BRWD --> BRWT --> BRWA  (Browser action class)\n    BRWD --> BRWL --> BRWP\t(Browser prop/actor class)\n    BRWD --> BRWL --> BRWB\t(Browser background class)\n    BRWD --> BRWL --> BRWC\t(Browser camera class)\n    BRWD --> BRWL --> BRWN --> BRWM (Browser music class)\n    BRWD --> BRWL --> BRWN --> BRWM --> BRWI (Browser import sound class)\n\n    Note: An \"frm\" refers to the displayed frames on any page.\n    A \"thum\" is a generic Browser Thumbnail, which may be a\n    chid, cno, cnoPar, gob, stn, etc.\tA browser will display,\n    over multiple pages, as many browser entities as there are\n    thum's.\n\n***************************************************************/\n\n#ifndef BRWD_H\n#define BRWD_H\n\nconst long kcmhlBrowser = 0x11000; // nice medium level for the Browser\nconst long kcbMaxCrm = 300000;\nconst long kdwTotalPhysLim = 10240000; // 10MB\theuristic\nconst long kdwAvailPhysLim = 1024000;  // 1MB heuristic\nconst auto kBrwsScript = (kstDefault << 16) | kchidBrowserDismiss;\n\n/************************************\n\n    Browser Context\tCLass\n    Optional context to carry over\n    between successive instantiations\n    of the same browser\n\n*************************************/\n#define BRCN_PAR BASE\n#define kclsBRCN 'BRCN'\ntypedef class BRCN *PBRCN;\nclass BRCN : public BRCN_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    BRCN(void){};\n\n  public:\n    long brwdid;\n    long ithumPageFirst;\n};\n\n/************************************\n\n   Browser ThumbFile Cki Struct\n\n*************************************/\nstruct TFC\n{\n    short bo;\n    short osk;\n    union {\n        struct\n        {\n            CTG ctg;\n            CNO cno;\n        };\n        struct\n        {\n            ulong grfontMask;\n            ulong grfont;\n        };\n        struct\n        {\n            CTG ctg;\n            CHID chid;\n        };\n    };\n};\nconst BOM kbomTfc = 0x5f000000;\n\n/************************************\n\n   Browser Display Class\n\n*************************************/\n#define BRWD_PAR GOK\n#define kclsBRWD 'BRWD'\n#define brwdidNil ivNil\ntypedef class BRWD *PBRWD;\nclass BRWD : public BRWD_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(BRWD)\n\n  protected:\n    long _kidFrmFirst;     // kid of first frame\n    long _kidControlFirst; // kid of first control button\n    long _dxpFrmOffset;    // x inset of thumb in frame\n    long _dypFrmOffset;    // y inset of thumb in frame\n    long _sidDefault;      // default sid\n    long _thumDefault;     // default thum\n    PBRCN _pbrcn;          // context carryover\n    long _idsFont;         // string id of Font\n    long _kidThumOverride; // projects may override one thum gobid\n    long _ithumOverride;   // projects may override one thum gobid\n    PTGOB _ptgobPage;      // for page numbers\n    PSTDIO _pstdio;\n\n    // Display State variables\n    long _cthumCD;          // Non-user content\n    long _ithumSelect;      // Hilited frame\n    long _ithumPageFirst;   // Index to thd of first frame on current page\n    long _cfrmPageCur;      // Number of visible thumbnails per current page\n    long _cfrm;             // Total frames possible per page\n    long _cthumScroll;      // #items to scroll on fwd/back.  default ivNil -> page scrolling\n    bool _fWrapScroll;      // Wrap around.  Default = fTrue;\n    bool _fNoRepositionSel; // Don't reposition selection : default = fFalse;\n\n  protected:\n    void _SetScrollState(void);\n    long _CfrmCalc(void);\n    static bool _FBuildGcb(GCB *pgcb, long kidPar, long kidBrws);\n    bool _FInitGok(PRCA prca, long kidGlass);\n    void _SetVarForOverride(void);\n\n    virtual long _Cthum(void)\n    {\n        AssertThis(0);\n        return 0;\n    }\n    virtual bool _FSetThumFrame(long ithum, PGOB pgobPar)\n    {\n        AssertThis(0);\n        return fFalse;\n    }\n    virtual bool _FClearHelp(long ifrm)\n    {\n        return fTrue;\n    }\n    virtual void _ReleaseThumFrame(long ifrm)\n    {\n    }\n    virtual long _IthumFromThum(long thum, long sid)\n    {\n        return thum;\n    }\n    virtual void _GetThumFromIthum(long ithum, void *pThumSelect, long *psid);\n    virtual void _ApplySelection(long thumSelect, long sid)\n    {\n    }\n    virtual void _ProcessSelection(void)\n    {\n    }\n    virtual bool _FUpdateLists()\n    {\n        return fTrue;\n    }\n    virtual void _SetCbPcrmMin(void)\n    {\n    }\n    void _CalcIthumPageFirst(void);\n    bool _FIsIthumOverride(long ithum)\n    {\n        return FPure(ithum == _ithumOverride);\n    }\n    PGOB _PgobFromIfrm(long ifrm);\n    long _KidThumFromIfrm(long ifrm);\n    void _UnhiliteCurFrm(void);\n    bool _FHiliteFrm(long ifrmSelect);\n    void _InitStateVars(PCMD pcmd, PSTDIO pstdio, bool fWrapScroll, long cthumScroll);\n    void _InitFromData(PCMD pcmd, long ithumSelect, long ithumDisplay);\n    virtual void _CacheContext(void);\n\n  public:\n    //\n    // Constructors and destructors\n    //\n    BRWD(PGCB pgcb) : BRWD_PAR(pgcb)\n    {\n        _ithumOverride = -1;\n        _kidThumOverride = -1;\n    }\n    ~BRWD(void);\n\n    static PBRWD PbrwdNew(PRCA prca, long kidPar, long kidBrwd);\n    void Init(PCMD pcmd, long ithumSelect, long ithumDisplay, PSTDIO pstdio, bool fWrapScroll = fTrue,\n              long cthumScroll = ivNil);\n    bool FDraw(void);\n    bool FCreateAllTgob(void); // For any text based browsers\n\n    //\n    // Command Handlers\n    // Selection does not exit the browser\n    //\n    bool FCmdFwd(PCMD pcmd);  // Page fwd\n    bool FCmdBack(PCMD pcmd); // Page back\n    bool FCmdSelect(PCMD pcmd);\n    bool FCmdSelectThum(PCMD pcmd); // Set viewing page\n    virtual void Release(void);\n    virtual bool FCmdCancel(PCMD pcmd); // See brwb\n    virtual bool FCmdDel(PCMD pcmd)\n    {\n        return fTrue;\n    } // See brwm\n    virtual bool FCmdOk(PCMD pcmd);\n    virtual bool FCmdFile(PCMD pcmd)\n    {\n        return fTrue;\n    } // See brwm\n    virtual bool FCmdChangeCel(PCMD pcmd)\n    {\n        return fTrue;\n    } // See brwa\n};\n\n/************************************\n\n    Browser List Context CLass\n    Optional context to carry over\n    between successive instantiations\n    of the same browser\n\n*************************************/\n#define BRCNL_PAR BRCN\n#define kclsBRCNL 'brcl'\ntypedef class BRCNL *PBRCNL;\nclass BRCNL : public BRCNL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    ~BRCNL(void);\n\n  public:\n    long cthumCD;\n    CKI ckiRoot;\n    PGL pglthd;\n    PGST pgst;\n    PCRM pcrm;\n};\n\n//\n//\tThumbnail descriptors : one per thumbnail\n//\nconst long kglstnGrow = 5;\nconst long kglthdGrow = 10;\nstruct THD\n{\n    union {\n        TAG tag; // TAG pointing to content\n        struct\n        {\n            long lwFill1; // sid\n            long lwFill2; // pcrf\n            ulong grfontMask;\n            ulong grfont;\n        };\n        struct\n        {\n            long lwFill1;\n            long lwFill2;\n            CTG ctg;\n            CHID chid; // CHID of CD content\n        };\n    };\n\n    CNO cno;       // GOKD cno\n    CHID chidThum; // GOKD's parent's CHID (relative to GOKD parent's parent)\n    long ithd;     // Original index for this THD, before sorting (used to\n                   // retrieve proper STN for the BRWN-derived browsers)\n};\n\n/* Browser Content List Base --  create one of these when you want a list of a\n    specific kind of content and you don't care about the names. */\n#define BCL_PAR BASE\ntypedef class BCL *PBCL;\n#define kclsBCL 'BCL'\nclass BCL : public BCL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    CTG _ctgRoot;\n    CNO _cnoRoot;\n    CTG _ctgContent;\n    bool _fDescend;\n    PGL _pglthd;\n\n  protected:\n    BCL(void)\n    {\n        _pglthd = pvNil;\n    }\n    ~BCL(void)\n    {\n        ReleasePpo(&_pglthd);\n    }\n\n    bool _FInit(PCRM pcrm, CKI *pckiRoot, CTG ctgContent, PGL pglthd);\n    bool _FAddGokdToThd(PCFL pcfl, long sid, CKI *pcki);\n    bool _FAddFileToThd(PCFL pcfl, long sid);\n    bool _FBuildThd(PCRM pcrm);\n\n    virtual bool _FAddGokdToThd(PCFL pcfl, long sid, KID *pkid);\n\n  public:\n    static PBCL PbclNew(PCRM pcrm, CKI *pckiRoot, CTG ctgContent, PGL pglthd = pvNil, bool fOnlineOnly = fFalse);\n\n    PGL Pglthd(void)\n    {\n        return _pglthd;\n    }\n    void GetThd(long ithd, THD *pthd)\n    {\n        _pglthd->Get(ithd, pthd);\n    }\n    long IthdMac(void)\n    {\n        return _pglthd->IvMac();\n    }\n};\n\n/* Browser Content List with Strings -- create one of these when you need to\n    browse content by name */\n#define BCLS_PAR BCL\ntypedef class BCLS *PBCLS;\n#define kclsBCLS 'BCLS'\nclass BCLS : public BCLS_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PGST _pgst;\n\n  protected:\n    BCLS(void)\n    {\n        _pgst = pvNil;\n    }\n    ~BCLS(void)\n    {\n        ReleasePpo(&_pgst);\n    }\n\n    bool _FInit(PCRM pcrm, CKI *pckiRoot, CTG ctgContent, PGST pgst, PGL pglthd);\n    bool _FSetNameGst(PCFL pcfl, CTG ctg, CNO cno);\n\n    virtual bool _FAddGokdToThd(PCFL pcfl, long sid, KID *pkid);\n\n  public:\n    static PBCLS PbclsNew(PCRM pcrm, CKI *pckiRoot, CTG ctgContent, PGL pglthd = pvNil, PGST pgst = pvNil,\n                          bool fOnlineOnly = fFalse);\n\n    PGST Pgst(void)\n    {\n        return _pgst;\n    }\n};\n\n/************************************\n\n   Browser List Class\n   Derived from the Display Class\n\n*************************************/\n#define BRWL_PAR BRWD\n#define kclsBRWL 'BRWL'\ntypedef class BRWL *PBRWL;\n\n// Browser Selection Flags\n// This specifies what the sorting is based on\nenum BWS\n{\n    kbwsIndex = 1,\n    kbwsChid = 2,\n    kbwsCnoRoot = 3, // defaults to CnoRoot if ctg of Par is ctgNil\n    kbwsLim\n};\n\nclass BRWL : public BRWL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    bool _fEnableAccel;\n\n    // Thumnail descriptor lists\n    PCRM _pcrm;  // Chunky resource manager\n    PGL _pglthd; // Thumbnail descriptor\tgl\n    PGST _pgst;  // Chunk name\n\n    // Browser Search (List) parameters\n    BWS _bws;         // Selection type flag\n    bool _fSinglePar; // Single parent search\n    CKI _ckiRoot;     // Grandparent cno=cnoNil => global search\n    CTG _ctgContent;  // Parent\n\n  protected:\n    // BRWL List\n    bool _FInitNew(PCMD pcmd, BWS bws, long ThumSelect, CKI ckiRoot, CTG ctgContent);\n    bool _FCreateBuildThd(CKI ckiRoot, CTG ctgContent, bool fBuildGl = fTrue);\n    virtual bool _FGetContent(PCRM pcrm, CKI *pcki, CTG ctg, bool fBuildGl);\n    virtual long _Cthum(void)\n    {\n        AssertThis(0);\n        return _pglthd->IvMac();\n    }\n    virtual bool _FSetThumFrame(long ithd, PGOB pgobPar);\n    virtual bool _FUpdateLists()\n    {\n        return fTrue;\n    } // Eg, to include user sounds\n\n    // BRWL util\n    void _SortThd(void);\n    virtual void _GetThumFromIthum(long ithum, void *pThumSelect, long *psid);\n    virtual void _ReleaseThumFrame(long ifrm);\n    virtual long _IthumFromThum(long thum, long sid);\n    virtual void _CacheContext(void);\n    virtual void _SetCbPcrmMin(void);\n\n  public:\n    //\n    // Constructors and destructors\n    //\n    BRWL(PGCB pgcb) : BRWL_PAR(pgcb)\n    {\n    }\n    ~BRWL(void);\n\n    static PBRWL PbrwlNew(PRCA prca, long kidPar, long kidBrwl);\n    virtual bool FInit(PCMD pcmd, BWS bws, long ThumSelect, long sidSelect, CKI ckiRoot, CTG ctgContent, PSTDIO pstdio,\n                       PBRCNL pbrcnl = pvNil, bool fWrapScroll = fTrue, long cthumScroll = ivNil);\n};\n\n/************************************\n\n   Browser Text Class\n   Derived from the Display Class\n\n*************************************/\n#define BRWT_PAR BRWD\n#define kclsBRWT 'BRWT'\ntypedef class BRWT *PBRWT;\nclass BRWT : public BRWT_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PGST _pgst;\n    bool _fEnableAccel;\n\n    virtual long _Cthum(void)\n    {\n        AssertThis(0);\n        return _pgst->IvMac();\n    }\n    virtual bool _FSetThumFrame(long istn, PGOB pgobPar);\n    virtual void _ReleaseThumFrame(long ifrm)\n    {\n    } // No gob to release\n\n  public:\n    //\n    // Constructors and destructors\n    //\n    BRWT(PGCB pgcb) : BRWT_PAR(pgcb)\n    {\n        _idsFont = idsNil;\n    }\n    ~BRWT(void);\n\n    static PBRWT PbrwtNew(PRCA prca, long kidPar, long kidBrwt);\n    void SetGst(PGST pgst);\n    bool FInit(PCMD pcmd, long thumSelect, long thumDisplay, PSTDIO pstdio, bool fWrapScroll = fTrue,\n               long cthumScroll = ivNil);\n};\n\n/************************************\n\n   Browser Named List Class\n   Derived from the Browser List Class\n\n*************************************/\n#define BRWN_PAR BRWL\n#define kclsBRWN 'BRWN'\ntypedef class BRWN *PBRWN;\nclass BRWN : public BRWN_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    virtual bool _FGetContent(PCRM pcrm, CKI *pcki, CTG ctg, bool fBuildGl);\n    virtual long _Cthum(void)\n    {\n        return _pglthd->IvMac();\n    }\n    virtual bool _FSetThumFrame(long ithd, PGOB pgobPar);\n    virtual void _ReleaseThumFrame(long ifrm);\n\n  public:\n    //\n    // Constructors and destructors\n    //\n    BRWN(PGCB pgcb) : BRWN_PAR(pgcb)\n    {\n    }\n    ~BRWN(void){};\n    virtual bool FInit(PCMD pcmd, BWS bws, long ThumSelect, long sidSelect, CKI ckiRoot, CTG ctgContent, PSTDIO pstdio,\n                       PBRCNL pbrcnl = pvNil, bool fWrapScroll = fTrue, long cthumScroll = ivNil);\n\n    virtual bool FCmdOk(PCMD pcmd);\n};\n\n/************************************\n\n   Studio Specific Browser Classes\n\n*************************************/\n/************************************\n\n   Browser Action Class\n   Derived from the Browser Text Class\n   Actions are separately classed for\n   previews\n\n*************************************/\n#define BRWA_PAR BRWT\n#define kclsBRWA 'BRWA'\ntypedef class BRWA *PBRWA;\nclass BRWA : public BRWA_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    long _celnStart;              // Starting cel number\n    PAPE _pape;                   // Actor Preview Entity\n    void _ProcessSelection(void); // Action Preview\n    virtual void _ApplySelection(long thumSelect, long sid);\n\n  public:\n    //\n    // Constructors and destructors\n    //\n    BRWA(PGCB pgcb) : BRWA_PAR(pgcb)\n    {\n        _idsFont = idsActionFont;\n        _celnStart = 0;\n    }\n    ~BRWA(void)\n    {\n    }\n\n    static PBRWA PbrwaNew(PRCA prca);\n    bool FBuildApe(PACTR pactr);\n    bool FBuildGst(PSCEN pscen);\n    virtual bool FCmdChangeCel(PCMD pcmd);\n};\n\n/************************************\n\n   Browser Prop & Actor Class\n   Derived from the Browser List Class\n\n*************************************/\n#define BRWP_PAR BRWL\n#define kclsBRWP 'BRWP'\ntypedef class BRWP *PBRWP;\nclass BRWP : public BRWP_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    virtual void _ApplySelection(long thumSelect, long sid);\n\n  public:\n    //\n    // Constructors and destructors\n    //\n    BRWP(PGCB pgcb) : BRWP_PAR(pgcb)\n    {\n    }\n    ~BRWP(void){};\n\n    static PBRWP PbrwpNew(PRCA prca, long kidGlass);\n};\n\n/************************************\n\n   Browser Background Class\n   Derived from the Browser List Class\n\n*************************************/\n#define BRWB_PAR BRWL\n#define kclsBRWB 'BRWB'\ntypedef class BRWB *PBRWB;\nclass BRWB : public BRWB_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    virtual void _ApplySelection(long thumSelect, long sid);\n\n  public:\n    //\n    // Constructors and destructors\n    //\n    BRWB(PGCB pgcb) : BRWB_PAR(pgcb)\n    {\n    }\n    ~BRWB(void){};\n\n    static PBRWB PbrwbNew(PRCA prca);\n    virtual bool FCmdCancel(PCMD pcmd);\n};\n\n/************************************\n\n   Browser Camera Class\n   Derived from the Browser List Class\n\n*************************************/\n#define BRWC_PAR BRWL\n#define kclsBRWC 'BRWC'\ntypedef class BRWC *PBRWC;\nclass BRWC : public BRWC_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    virtual void _ApplySelection(long thumSelect, long sid);\n    virtual void _SetCbPcrmMin(void)\n    {\n    }\n\n  public:\n    //\n    // Constructors and destructors\n    //\n    BRWC(PGCB pgcb) : BRWC_PAR(pgcb)\n    {\n    }\n    ~BRWC(void){};\n\n    static PBRWC PbrwcNew(PRCA prca);\n\n    virtual bool FCmdCancel(PCMD pcmd);\n};\n\n/************************************\n\n   Browser Music Class (midi, speech & fx)\n   Derived from the Browser Named List Class\n\n*************************************/\n#define BRWM_PAR BRWN\n#define kclsBRWM 'brwm'\ntypedef class BRWM *PBRWM;\nclass BRWM : public BRWM_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    long _sty;  // Identifies type of sound\n    PCRF _pcrf; // NOT created here (autosave or BRWI file)\n\n    virtual void _ApplySelection(long thumSelect, long sid);\n    virtual bool _FUpdateLists(); // By all entries in pcrf of correct type\n    void _ProcessSelection(void); // Sound Preview\n    bool _FAddThd(STN *pstn, CKI *pcki);\n    bool _FSndListed(CNO cno, long *pithd = pvNil);\n\n  public:\n    //\n    // Constructors and destructors\n    //\n    BRWM(PGCB pgcb) : BRWM_PAR(pgcb)\n    {\n        _idsFont = idsSoundFont;\n    }\n    ~BRWM(void){};\n\n    static PBRWM PbrwmNew(PRCA prca, long kidGlass, long sty, PSTDIO pstdio);\n    virtual bool FCmdFile(PCMD pcmd); // Upon portfolio completion\n    virtual bool FCmdDel(PCMD pcmd);  // Delete user sound\n};\n\n/************************************\n\n   Browser Import Sound Class\n   Derived from the Browser List Class\n   Note: Inherits pgst from the list class\n\n*************************************/\n#define BRWI_PAR BRWM\n#define kclsBRWI 'BRWI'\ntypedef class BRWI *PBRWI;\nclass BRWI : public BRWI_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    // The following are already handled by BRWM\n    // virtual void _ProcessSelection(void);\n    virtual void _ApplySelection(long thumSelect, long sid);\n\n  public:\n    //\n    // Constructors and destructors\n    //\n    BRWI(PGCB pgcb) : BRWI_PAR(pgcb)\n    {\n        _idsFont = idsSoundFont;\n    }\n    ~BRWI(void);\n\n    static PBRWI PbrwiNew(PRCA prca, long kidGlass, long sty);\n    bool FInit(PCMD pcmd, CKI cki, PSTDIO pstdio);\n};\n\n/************************************\n\n   Browser Roll Call Class\n   Derived from the Display Class\n\n*************************************/\n#define BRWR_PAR BRWD\n#define kclsBRWR 'BRWR'\ntypedef class BRWR *PBRWR;\nclass BRWR : public BRWR_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    CTG _ctg;\n    PCRM _pcrm; // Chunky resource manager\n    bool _fApplyingSel;\n\n  protected:\n    virtual long _Cthum(void);\n    virtual bool _FSetThumFrame(long istn, PGOB pgobPar);\n    virtual void _ReleaseThumFrame(long ifrm);\n    virtual void _ApplySelection(long thumSelect, long sid);\n    virtual void _ProcessSelection(void);\n    virtual bool _FClearHelp(long ifrm);\n    long _IaridFromIthum(long ithum, long iaridFirst = 0);\n    long _IthumFromArid(long arid);\n\n  public:\n    //\n    // Constructors and destructors\n    //\n    BRWR(PGCB pgcb) : BRWR_PAR(pgcb)\n    {\n        _fApplyingSel = fFalse;\n        _idsFont = idsRollCallFont;\n    }\n    ~BRWR(void);\n\n    static PBRWR PbrwrNew(PRCA prca, long kid);\n    void Init(PCMD pcmd, long thumSelect, long thumDisplay, PSTDIO pstdio, bool fWrapScroll = fTrue,\n              long cthumScroll = ivNil);\n    bool FInit(PCMD pcmd, CTG ctg, long ithumDisplay, PSTDIO pstdio);\n    bool FUpdate(long arid, PSTDIO pstdio);\n    bool FApplyingSel(void)\n    {\n        AssertBaseThis(0);\n        return _fApplyingSel;\n    }\n};\n\nconst long kglcmgGrow = 8;\nstruct CMG // Gokd Cno Map\n{\n    CNO cnoTmpl; // Content cno\n    CNO cnoGokd; // Thumbnail gokd cno\n};\n\n/************************************\n\n   Fne for  Thumbnails\n   Enumerates current product first\n\n*************************************/\n#define FNET_PAR BASE\n#define kclsFNET 'FNET'\ntypedef class FNET *PFNET;\nclass FNET : public FNET_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    bool _fInitMSKDir;\n    FNE _fne;\n    FNE _fneDir;\n    FNI _fniDirMSK;\n    FNI _fniDir;\n    FNI _fniDirProduct;\n    bool _fInited;\n\n  protected:\n    bool _FNextFni(FNI *pfni, long *psid);\n\n  public:\n    //\n    // Constructors and destructors\n    //\n    FNET(void) : FNET_PAR()\n    {\n        _fInited = fFalse;\n    }\n    ~FNET(void){};\n\n    bool FInit(void);\n    bool FNext(FNI *pfni, long *psid = pvNil);\n};\n\n#endif\n"
  },
  {
    "path": "inc/buildgob.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\n *\n *  BUILDGOB.H\n *\n *  Copyright (C) Microsoft Corporation 1995.\n *  All Rights reserved.\n *\n ******************************************************************************\n *\n *  Module Intent\n *\n *  Contains all of the kids for the Building place gobs.\n *\n ******************************************************************************\n *\n *  Revision History:  Pulled out of soc\\src\\building\\socdefn.h 06/08/95.\n *\n *****************************************************************************/\n\n#ifndef BUILDGOB_H\n#define BUILDGOB_H\n\n/*****************************************************************************\n *                                                                            *\n *                              Constants                                     *\n *                                                                            *\n *****************************************************************************/\n\n// -----------------------------------------------------\n// Building Location Definitions\n// -----------------------------------------------------\n\n#define kgobLogin 0x00010200\n#define kgobCloset 0x00010280\n#define kgobImagin 0x00010300\n#define kgobStreet 0x00010400\n\n#define kgobTicket1 0x00010500 // Far away view of ticket booth\n#define kgobTicket2 0x00010580 // Zoomed view of ticket booth\n\n#define kgobLobby1 0x00010600 // Front view of lobby\n#define kgobLobby2 0x00010700 // Back wall of lobby\n#define kgobSnackBar 0x00010800\n#define kgobWaiting 0x00010900\n\n#define kgobTheatre1 0x00010c00 // Front view of theatre\n#define kgobTheatre2 0x00010d00 // Back wall of theatre\n#define kgobTheatre3 0x00010e00 // Front Left view of theatre\n#define kgobTheatre4 0x00010f00 // Front Right view of theatre\n\n#define kgobBackstage1 0x00011000 // Front view of backstage area\n#define kgobBackstage2 0x00011100 // Back wall of backstage area\n\n#define kgobInspiration1 0x00011400 // Front view of ideas room\n#define kgobInspiration2 0x00011500 // Back wall of ideas room\n#define kgobInspiration3 0x00011600 // Left wall of ideas room\n#define kgobInspiration4 0x00011700 // Right wall of ideas room\n\n#define kgobStudio1 0x00011800 // Front view of studio\n#define kgobStudio2 0x00011900 // Back wall of studio\n#define kgobStudio3 0x00011a00 // Left wall of studio\n#define kgobStudio4 0x00011b00 // Right wall of studio\n\n#define kgobProjects1 0x00011c00 // Front view of projects room\n#define kgobProjects2 0x00011d00 // Back wall of projects room\n#define kgobProjects3 0x00011e00 // Left wall of projects room\n#define kgobProjects4 0x00011f00 // Right wall of projects room\n\n#endif // !BUILDGOB_H\n"
  },
  {
    "path": "inc/esl.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    esl.h: Easel classes\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    BASE ---> CMH ---> GOB ---> GOK ---> ESL (generic easel)\n                                          |\n                                          +---> ESLT (text easel)\n                                          |\n                                          +---> ESLC (costume easel)\n                                          |\n                                          +---> ESLL (listener easel)\n                                          |\n                                          +---> ESLR (sound recording easel)\n\n***************************************************************************/\n#ifndef ESL_H\n#define ESL_H\n\n// Function to build a GCB to construct a child under a parent\nbool FBuildGcb(PGCB pgcb, long kidParent, long kidChild);\n\n// Function to set a GOK to a different state\nvoid SetGokState(long kid, long st);\n\n/*****************************\n    The generic easel class\n*****************************/\ntypedef class ESL *PESL;\n#define ESL_PAR GOK\n#define kclsESL 'ESL'\nclass ESL : public ESL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(ESL)\n\n  protected:\n    ESL(PGCB pgcb) : GOK(pgcb)\n    {\n    }\n    bool _FInit(PRCA prca, long kidEasel);\n    virtual bool _FAcceptChanges(bool *pfDismissEasel)\n    {\n        return fTrue;\n    }\n\n  public:\n    static PESL PeslNew(PRCA prca, long kidParent, long hidEasel);\n    ~ESL(void);\n\n    bool FCmdDismiss(PCMD pcmd); // Handles both OK and Cancel\n};\n\ntypedef class ESLT *PESLT; // SNE needs this\n/****************************************\n    Spletter Name Editor class.  It's\n    derived from EDSL, which is a Kauai\n    single-line edit control\n****************************************/\ntypedef class SNE *PSNE;\n#define SNE_PAR EDSL\n#define kclsSNE 'SNE'\nclass SNE : public SNE_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PESLT _peslt; // easel to notify when text changes\n\n  protected:\n    SNE(PEDPAR pedpar) : EDSL(pedpar)\n    {\n    }\n\n  public:\n    static PSNE PsneNew(PEDPAR pedpar, PESLT peslt, PSTN pstnInit);\n    virtual bool FReplace(achar *prgch, long cchIns, long ich1, long ich2, long gin);\n};\n\n/****************************************\n    The text easel class\n****************************************/\ntypedef class ESLT *PESLT;\n#define ESLT_PAR ESL\n#define kclsESLT 'ESLT'\nclass ESLT : public ESLT_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(ESLT)\n\n  protected:\n    PMVIE _pmvie; // Movie that this TDT is in\n    PACTR _pactr; // Actor of this TDT, or pvNil for new TDT\n    PAPE _pape;   // Actor Preview Entity\n    PSNE _psne;   // Spletter Name Editor\n    PRCA _prca;   // Resource source for cursors\n    PSFL _psflMtrl;\n    PBCL _pbclMtrl;\n    PSFL _psflTdf;\n    PBCL _pbclTdf;\n    PSFL _psflTdts;\n\n  protected:\n    ESLT(PGCB pgcb) : ESL(pgcb)\n    {\n    }\n    bool _FInit(PRCA prca, long kidEasel, PMVIE pmvie, PACTR pactr, PSTN pstnNew, long tdtsNew, PTAG ptagTdfNew);\n    virtual bool _FAcceptChanges(bool *pfDismissEasel);\n\n  public:\n    static PESLT PesltNew(PRCA prca, PMVIE pmvie, PACTR pactr, PSTN pstnNew = pvNil, long tdtsNew = tdtsNil,\n                          PTAG ptagTdfNew = pvNil);\n    ~ESLT(void);\n\n    bool FCmdRotate(PCMD pcmd);\n    bool FCmdTransmogrify(PCMD pcmd);\n    bool FCmdStartPopup(PCMD pcmd);\n    bool FCmdSetFont(PCMD pcmd);\n    bool FCmdSetShape(PCMD pcmd);\n    bool FCmdSetColor(PCMD pcmd);\n\n    bool FTextChanged(PSTN pstn);\n};\n\n/********************************************\n    The actor easel (costume changer) class\n********************************************/\ntypedef class ESLA *PESLA;\n#define ESLA_PAR ESL\n#define kclsESLA 'ESLA'\nclass ESLA : public ESLA_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(ESLA)\n\n  protected:\n    PMVIE _pmvie; // Movie that this actor is in\n    PACTR _pactr; // The actor that is being edited\n    PAPE _pape;   // Actor Preview Entity\n    PEDSL _pedsl; // Single-line edit control (for actor's name)\n\n  protected:\n    ESLA(PGCB pgcb) : ESL(pgcb)\n    {\n    }\n    bool _FInit(PRCA prca, long kidEasel, PMVIE pmvie, PACTR pactr);\n    virtual bool _FAcceptChanges(bool *pfDismissEasel);\n\n  public:\n    static PESLA PeslaNew(PRCA prca, PMVIE pmvie, PACTR pactr);\n    ~ESLA(void);\n\n    bool FCmdRotate(PCMD pcmd);\n    bool FCmdTool(PCMD pcmd);\n};\n\n/****************************************\n    Listener sound class\n****************************************/\ntypedef class LSND *PLSND;\n#define LSND_PAR BASE\n#define kclsLSND 'LSND'\nclass LSND : public LSND_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PGL _pgltag;      // PGL in case of chained sounds\n    long _vlm;        // Initial volume\n    long _vlmNew;     // User can redefine with slider\n    bool _fLoop;      // Looping sound\n    long _objID;      // Owner's object ID\n    long _sty;        // Sound type\n    long _kidVol;     // Kid of volume slider\n    long _kidIcon;    // Kid of sound-type icon\n    long _kidEditBox; // Kid of sound-name box\n    bool _fMatcher;   // Whether this is a motion-matched sound\n\n  public:\n    LSND(void)\n    {\n        _pgltag = pvNil;\n    }\n    ~LSND(void);\n\n    bool FInit(long sty, long kidVol, long kidIcon, long kidEditBox, PGL *ppgltag, long vlm, bool fLoop, long objID,\n               bool fMatcher);\n    bool FValidSnd(void);\n    void SetVlmNew(long vlmNew)\n    {\n        _vlmNew = vlmNew;\n    }\n    void Play(void);\n    bool FChanged(long *pvlmNew, bool *pfNuked);\n};\n\n/****************************************\n    The listener easel class\n****************************************/\ntypedef class ESLL *PESLL;\n#define ESLL_PAR ESL\n#define kclsESLL 'ESLL'\nclass ESLL : public ESLL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(ESLL)\n\n  protected:\n    PMVIE _pmvie; // Movie that these sounds are in\n    PSCEN _pscen; // Scene that these sounds are in\n    PACTR _pactr; // Actor that sounds are attached to (or pvNil)\n    LSND _lsndSpeech;\n    LSND _lsndSfx;\n    LSND _lsndMidi;\n    LSND _lsndSpeechMM;\n    LSND _lsndSfxMM;\n\n  protected:\n    ESLL(PGCB pgcb) : ESL(pgcb)\n    {\n    }\n\n    bool _FInit(PRCA prca, long kidEasel, PMVIE pmvie, PACTR pactr);\n    virtual bool _FAcceptChanges(bool *pfDismissEasel);\n\n  public:\n    static PESLL PesllNew(PRCA prca, PMVIE pmvie, PACTR pactr);\n    ~ESLL(void);\n\n    bool FCmdVlm(PCMD pcmd);\n    bool FCmdPlay(PCMD pcmd);\n};\n\n/****************************************\n    The sound recording easel class\n****************************************/\ntypedef class ESLR *PESLR;\n#define ESLR_PAR ESL\n#define kclsESLR 'ESLR'\nclass ESLR : public ESLR_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(ESLR)\n\n  protected:\n    PMVIE _pmvie;      // The movie to insert sound into\n    bool _fSpeech;     // Recording Speech or SFX?\n    PEDSL _pedsl;      // Single-line edit control for sound name\n    PSREC _psrec;      // Sound recording object\n    CLOK _clok;        // Clock to limit sound length\n    bool _fRecording;  // Are we recording right now?\n    bool _fPlaying;    // Are we playing back the recording?\n    ulong _tsStartRec; // Time at which we started recording\n\n  protected:\n    ESLR(PGCB pgcb) : ESL(pgcb), _clok(HidUnique())\n    {\n    }\n    bool _FInit(PRCA prca, long kidEasel, PMVIE pmvie, bool fSpeech, PSTN pstnNew);\n    virtual bool _FAcceptChanges(bool *pfDismissEasel);\n    void _UpdateMeter(void);\n\n  public:\n    static PESLR PeslrNew(PRCA prca, PMVIE pmvie, bool fSpeech, PSTN pstnNew);\n    ~ESLR(void);\n\n    bool FCmdRecord(PCMD pcmd);\n    bool FCmdPlay(PCMD pcmd);\n    bool FCmdUpdateMeter(PCMD pcmd);\n};\n\n#endif ESL_H\n"
  },
  {
    "path": "inc/helpbook.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// defines for the help book\n\n#ifndef HELPBOOK_H\n#define HELPBOOK_H\n\n// cursors\n#define crsArrow1 0x00001001\n#define crsHand1 0x00001002\n\n// waves\n#define wavBingo 0x00001003\n\n#define kidResPal 0x00001004\n\n#define kcnoHelpMainWav 0x00001010\n#define kcnoHelpNextWav 0x00001011\n#define kcnoHelpBackWav 0x00001012\n\n// objects\n#define kgobHelpBookPersistent 0x00003001\n#define kgobHelpBookParent 0x00003002\n#define kgobHelpBookGizmo 0x00003003\n#define kgobHelpBookFill 0x00003004\n#define kgobHelpBookFillPar 0x00003005\n\n#define kgobHelpBookPrimary1 0x00003006\n#define kgobHelpBookPrimary2 0x00003007\n#define kgobHelpBookPrimary3 0x00003008\n#define kgobHelpBookPrimary4 0x00003009\n#define kgobHelpBookPrimary5 0x00003010\n\n#define kgobHelpBookVolume 0x00003011\n#define kgobHelpBookVoice 0x00003012\n#define kgobHelpBookPageFwd 0x00003013\n#define kgobHelpBookPageBack 0x00003014\n#define kgobHelpBookCancel 0x00003015\n\n#define kgobHelpBookHowSub 0x00003016\n#define kgobHelpHowButton1 0x00003017\n#define kgobHelpHowButton2 0x00003018\n#define kgobHelpHowButton3 0x00003019\n#define kgobHelpHowButton4 0x00003020\n#define kgobHelpHowButton5 0x00003021\n#define kgobHelpHowButton6 0x00003022\n\n#define kgobHelpBookStyle 0x00003023\n#define kgobHelpBookBkgd 0x00003024\n#define kgobHelpBookPageLeft 0x00003025\n#define kgobHelpBookPageRight 0x00003026\n#define kgobHelpBookPageNum 0x00003027\n\n#define kgobHelpBookVolumeSlider 0x00003028\n#define kgobHelpBookVolumePath 0x00003029\n#define kgobHelpTitlePar 0x00003045\n\n#define ktpcBookToolTopics 0x2000015A\n#define kidHelpBookHowTo 0x2000015B\n#define kidHelpBookBasics 0x2000015C\n\n#define ktpcQuerySave 0x20000160\n#define kgobQuerySave 0x20000161\n#define ktpcQuerySaveWithCancel 0x20000162\n#define kgobQuerySaveWithCancel 0x20000163\n#define ktpcQueryQuit 0x20000164\n#define kgobQueryQuit 0x20000165\n#define ktpcQueryExitStudio 0x20000166\n#define kgobQueryExitStudio 0x20000167\n#define ktpcQuerySoundDelete 0x20000168\n#define kgobQuerySoundDelete 0x20000169\n#define ktpcQueryCD 0x2000016A\n#define kgobQueryCD 0x2000016B\n#define ktpcQueryOverwrite 0x2000016C\n#define kgobQueryOverwrite 0x2000016D\n#define ktpcQueryPurgeSounds 0x2000016E\n#define kgobQueryPurgeSounds 0x2000016F\n\n// string ids\n#define stidMaxPage 2\n#define stidCurrPage 1\n\n// positions of help book controls\n#define kxpHelpBookCancel 479\n#define kypHelpBookCancel 403\n#define kxpregHelpBookCancel 25\n#define kypregHelpBookCancel 0\n\n#define kxpHelpBookPageFwd 364\n#define kypHelpBookPageFwd 412\n#define kxpregHelpBookPageFwd 0\n#define kypregHelpBookPageFwd 0\n\n#define kxpHelpBookPageBack 241\n#define kypHelpBookPageBack 412\n#define kxpregHelpBookPageBack 25\n#define kypregHelpBookPageBack 0\n\n#define kxpHelpBookSlider 57\n#define kypHelpBookSlider 245\n#define kdxpHelpBookSlider 11\n#define kdypHelpBookSlider 67\n\n#define kdypHelpBookSliderTotal 74\n\n#define kmaxVolume 0x00010000\n\n#define kxpHelpBookVoice 163\n#define kypHelpBookVoice 404\n#define kxpregHelpBookVoice 25\n#define kypregHelpBookVoice 0\n\n#define kxpPageNumLeft 280\n#define kypPageNumTop 428\n#define kxpPageNumRight 360\n#define kypPageNumBot 443\n\n// fill width inside help book\n#define kFillLeft 70\n#define kFillTop 79\n#define kFillRight 571\n#define kFillBot 420\n\n// page positions inside help book fill\n#define kLeftPageL 100\n#define kLeftPageL2 178 // when the how to section is present\n#define kLeftPageR 546\n#define kTopPage 130\n#define kBottomPage 390\n\n#define kxpHelpTitle 312\n#define kypHelpTitle 90\n#define kzpHelpTitle 600\n\n#define kTitleLeft -240\n#define kTitleTop 0\n#define kTitleRight 240\n#define kTitleBottom 60\n\n#endif // !HELPBOOK_H\n"
  },
  {
    "path": "inc/helpres.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//\n// Ids for each mbmp per gob within the studio\n//\n// REVIEW:  these are currently the same ID's as the tools.  Conflicts?\n//\n// The tools are different visuals from the ones actually used in the studio\n// for the following reason(s)\n//\n//  1.  the tools may need to be treated different visually - ie. grayed out\n//              like in Creative Writer.  A wash may not cut it this time\n//\n//      2.      We can always name the mbmp's in the studio to these names if necessary\n//\n//  CAVEAT:  This list must keep up to date with the real studio graphics (for now)\n//               and kid/mbmp IDs!\n//\n\n#define mbmpStudio 0x20000\n#define mbmpPalette 0x20001\n#define mbmpBackground 0x20002\n#define mbmpSettingsCover 0x20005\n#define mbmpActorsCover 0x20006\n#define mbmpSoundsCover 0x20007\n#define mbmpTextsCover 0x20008\n#define mbmpScrollbarsCover 0x2000B\n#define mbmpPlaysCover 0x2000C\n#define mbmpUndosCover 0x2000D\n#define mbmpBooksCover 0x2000E\n#define mbmpDoors 0x2000F\n#define mbmpSettingsBackground 0x20010\n#define mbmpActorsBackground 0x20011\n#define mbmpSoundsBackground 0x20012\n#define mbmpTextsBackground 0x20013\n#define mbmpSettingsCameras 0x20014\n#define mbmpActorsSelect 0x20015\n#define mbmpActorsBiography 0x20016\n#define mbmpActorsCompose 0x20017\n#define mbmpActorsCostume 0x20018\n#define mbmpActorsNormalizeRot 0x20019\n#define mbmpBrwsAction 0x2001A\n#define mbmpActorsRecordMode 0x2001B\n#define mbmpActorsRotateX 0x2001C\n#define mbmpActorsRotateY 0x2001D\n#define mbmpActorsRotateZ 0x2001E\n#define mbmpActorsSooner 0x2001F\n#define mbmpActorsSquash 0x20020\n#define mbmpActorsShrink 0x20021\n#define mbmpActorsXY 0x20022\n#define mbmpActorsXZ 0x20023\n#define mbmpActorsGround 0x20024\n#define mbmpSoundsMixer 0x20025\n#define mbmpSoundsPlayOnce 0x20026\n#define mbmpSoundsListen 0x20027\n#define mbmpSoundsRecord 0x20028\n#define mbmpSoundsLooping 0x20029\n#define mbmpSoundsAttachToCell 0x2002A\n#define mbmpSoundsClear 0x2002B\n#define mbmpTextsBkgdColor 0x2002C\n#define mbmpTextsFontShape 0x2002D\n#define mbmpTextsFontColor 0x2002E\n#define mbmpTextsFont 0x2002F\n#define mbmpTextsSelect 0x20030\n#define mbmpTextsScroll 0x20031\n#define mbmpTextsFontSize 0x20032\n#define mbmpTextsStory 0x20033\n#define mbmpBook 0x20034\n#define mbmpMap 0x20035\n#define mbmpCutCopyPaste 0x20036\n#define mbmpUndo 0x20037\n#define mbmpVolumeSlider 0x20038\n#define mbmpPlay 0x20039\n#define mbmpSceneSorter 0x2003A\n#define mbmpPortfolio 0x2003C\n#define mbmpExit 0x2003D\n#define mbmpBrwsBackground 0x2003E\n#define mbmpBrwsActor 0x2003F\n#define mbmpBrwsProp 0x20040\n#define mbmpSettingsBrowser 0x20042\n#define mbmpBrwsBkSound 0x20043\n#define mbmpBrwsFXSound 0x20044\n#define mbmpBrwsMusSound 0x20045\n#define mbmpTextsCreate 0x20046\n#define mbmpPortsBackground 0x20047\n#define mbmpPortsPortfolio 0x20048\n#define mbmpPortsNew 0x20049\n#define mbmpPortsSave 0x2004A\n#define mbmpPausesMouse 0x2004C\n#define mbmpPausesClear 0x2004D\n#define mbmpPausesSound 0x2004E\n#define mbmpCCPBackground 0x2004F\n#define mbmpCCPSceneChopFwd 0x20050\n#define mbmpCCPSceneNuke 0x20051\n#define mbmpCCPActorNuke 0x20052\n#define mbmpCCPCopyRoute 0x20053\n#define mbmpCCPPaste 0x20054\n#define mbmpCCPCopy 0x20055\n#define mbmpCCPCut 0x20056\n#define mbmpGenericCancel 0x20058\n#define mbmpGenericOk 0x20059\n#define mbmpGenericPageFwd 0x2005A\n#define mbmpGenericPageBack 0x2005B\n#define mbmpBrowserCancel 0x2005C\n#define mbmpBrowserOk 0x2005D\n#define mbmpBrowserPageFwd 0x2005E\n#define mbmpBrowserPageBack 0x2005F\n#define mbmpBrowserFrame 0x20060 // Next 0x100 are reserved\n#define mbmpBrowserFrameLim 0x2015F\n#define mbmpCameraFrame 0x20160\n#define mbmpWorkspace 0x20161\n#define mbmpBackground1 0x20162\n#define mbmpBackground2 0x20163\n#define mbmpBackground3 0x20164\n#define mbmpBackground4 0x20165\n#define mbmpCCPSceneChopBack 0x20166\n#define mbmpActorsContinue 0x20167\n#define mbmpActorsRotate 0x20168\n#define mbmpActorsTransform 0x20169\n#define mbmpRotateBackground 0x2016A\n#define mbmpTransformBackground 0x2016B\n#define mbmpScrollBackground 0x2016C\n#define mbmpTextsScrollType 0x2016D\n#define mbmpBrowserObj 0x2016E\n#define mbmpBrowserThumb 0x20170 // Next 0x100 are reserved\n#define mbmpBrowserThumbLim 0X2026F\n#define mbmpActorsRotateNorm 0x20270\n#define mbmpActorsTransformNorm 0x20271\n#define mbmpBrwsSceneFrame 0x20273 // CNO for Scene browser frame\n#define mbmpBrwsActorFrame 0x20275 // CNO for Actor browser frame\n#define mbmpBrwsMaterial 0x20276\n#define mbmpBrwsCMaterial 0x20277\n#define mbmpBrwsThreeD 0x20278\n#define mbmpBrwsFonts 0x20279\n#define mbmpBrwsForeColor 0x2027A\n#define mbmpBrwsBackColor 0x2027B\n#define mbmpBrwsTextSize 0x2027C\n#define mbmpActorsBrowser 0x2027D      // the button itself\n#define mbmpActorsPropBrowser 0x2027E  // the button itself\n#define mbmpActorsSpletters 0x2027F    // the button itself\n#define mbmpSoundsEfxBrowser 0x20281   // the button itself\n#define mbmpSoundsMicBrowser 0x20282   // the button itself\n#define mbmpSoundsMusicBrowser 0x20283 // the button itself\n#define mbmpPlayStop 0x20284\n#define mbmpSceneChoices 0x20285\n#define mbmpVolumeControl 0x20286\n#define mbmpForward 0x20287\n#define mbmpForwardEnd 0x20288\n#define mbmpRewind 0x20289\n#define mbmpRewindEnd 0x2028A\n#define mbmpNukeIcon 0x2028B\n#define mbmpSoundRecord 0x2028C\n#define mbmpSoundPlay 0x2028D\n#define mbmpCostChangeIcon 0x2028E\n#define mbmpSceneSlider 0x2028F\n#define mbmpFrameSlider 0x20290\n#define mbmpSOTransition1 0x20291\n#define mbmpSOTransition2 0x20292\n#define mbmpSOTransition3 0x20293\n#define mbmpSOTransition4 0x20294\n#define mbmpRecordMic 0x20295\n#define mbmpPortfolioOpen 0x20296\n#define mbmpPortfolioSaveAs 0x20297\n#define mbmpCCPRemoveBefore 0x20298\n#define mbmpCCPRemoveAfter 0x20299\n#define mbmpCCPRemoveScene 0x2029A\n#define mbmpCCPRemoveObject 0x2029B\n#define mbmpActorActions 0x2029C\n#define mbmpLeannCancel 0x2029D\n#define mbmpLeannOk 0x2029E\n#define mbmpFOScrolling 0x2029F\n#define mbmpFONonScrolling 0x202A0\n#define mbmpHandCursor 0x202A1\n#define mbmpWordBoxCursor 0x202A2\n#define mbmpCutWordBox 0x202A3\n\n////////// temporary\n#define helppic1016_bmp 0x202B0\n#define helppic1016d_bmp 0x202B1\n#define helppic1016r_bmp 0x202B2\n#define helppic1020_bmp 0x202B3\n#define helppic1020d_bmp 0x202B4\n#define helppic1020r_bmp 0x202B5\n#define mbmpOkButton_bmp 0x202B6\n#define mbmpOkButtond_bmp 0x202B7\n#define mbmpOkButtonr_bmp 0x202B8\n#define mbmpQstButton_bmp 0x202B9\n#define mbmpQstButtond_bmp 0x202BA\n#define mbmpQstButtonr_bmp 0x202BB\n\n#define mbmpRedo 0x202BC\n#define mbmpNukeSound 0x202BD\n"
  },
  {
    "path": "inc/helptops.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#ifndef HELPTOPS_H\n#define HELPTOPS_H\n\n// All the help topics for projects, guidehelp, helpbook...etc.\n//////////////////////////////Help topics\n// logo wizard topics\n#define ktpcLogo00 0x20005200\n#define ktpcLogo01 0x20005201\n#define ktpcLogo02 0x20005202\n#define ktpcLogo03 0x20005203\n#define ktpcLogo04 0x20005204\n#define ktpcLogo05 0x20005205\n#define ktpcLogo06 0x20005206\n#define ktpcLogo07 0x20005207\n#define ktpcLogo08 0x20005208\n#define ktpcLogo09 0x20005209\n#define ktpcLogo0A 0x2000520a\n#define ktpcLogo0B 0x2000520b\n#define ktpcLogo0C 0x2000520c\n#define ktpcLogo0D 0x2000520d\n#define ktpcLogo0E 0x2000520e\n#define ktpcLogo11 0x2000520f\n#define ktpcLogo12 0x20005210\n#define ktpcLogo5C 0x20005211\n// how to scene topics\n#define ktpcHowToScenes00 0x20005215\n#define ktpcHowToScenes01 0x20005216\n#define ktpcHowToScenes02 0x20005217\n#define ktpcHowToScenes03 0x20005218\n#define ktpcHowToScenes04 0x20005219 // 01\n#define ktpcHowToScenes05 0x2000521A\n#define ktpcHowToScenes06 0x2000521B\n#define ktpcHowToScenes07 0x2000521C // 02\n#define ktpcHowToScenes08 0x2000521D\n#define ktpcHowToScenes09 0x2000521E // 03\n#define ktpcHowToScenes0A 0x2000521F\n#define ktpcHowToScenes0B 0x20005220 // 04\n#define ktpcHowToScenes0C 0x20005221 // 05\n#define ktpcHowToScenes0D 0x20005222\n#define ktpcHowToScenes0E 0x20005223\n#define ktpcHowToScenes0F 0x20005224 // 06\n#define ktpcHowToScenes10 0x20005225\n#define ktpcHowToScenes11 0x20005226\n#define ktpcHowToScenes12 0x20005227 // 07\n#define ktpcHowToScenes13 0x20005228\n#define ktpcHowToScenes14 0x20005229 // 08\n#define ktpcHowToScenes15 0x2000522A\n#define ktpcHowToScenes16 0x2000522B // 09\n#define ktpcHowToScenes17 0x2000522C\n#define ktpcHowToScenes18 0x2000522D\n#define ktpcHowToScenes19 0x2000522E // 10\n#define ktpcHowToScenes1A 0x2000522F\n#define ktpcHowToScenes1B 0x20005230\n#define ktpcHowToScenes1C 0x20005231\n#define ktpcHowToScenes1D 0x20005232 // 11\n#define ktpcHowToScenes1E 0x20000233\n#define ktpcHowToScenes1F 0x20005234\n#define ktpcHowToScenes20 0x20005235\n#define ktpcHowToScenes21 0x20005236 // 12\n#define ktpcHowToScenes22 0x20005237\n#define ktpcHowToScenes23 0x20005238\n#define ktpcHowToScenes24 0x20005239\n#define ktpcHowToScenes25 0x2000523A // 13\n#define ktpcHowToScenes26 0x2000523B // 14\n#define ktpcHowToScenes27 0x2000523C\n#define ktpcHowToScenes28 0x2000523D\n#define ktpcHowToScenes29 0x2000523E\n#define ktpcHowToScenes2A 0x2000523F\n#define ktpcHowToScenes2B 0x20005240\n#define ktpcHowToScenes2C 0x20005241\n#define ktpcHowToScenes2D 0x20005242\n#define ktpcHowToScenes2E 0x20005243\n#define ktpcHowToScenes2F 0x20005244\n#define ktpcHowToScenes30 0x20005245\n#define ktpcHowToScenes31 0x20005246\n#define ktpcHowToScenes44 0x20005247\n#define ktpcHowToScenes45 0x20005248\n#define ktpcHowToScenes46 0x20005249\n#define ktpcHowToScenes49 0x2000524A\n#define ktpcHowToScenes51 0x2000524B\n#define ktpcHowToScenes32 0x2000524C\n#define ktpcHowToScenes33 0x2000524D\n#define ktpcHowToScenes34 0x2000524E\n#define ktpcHowToScenes35 0x2000524F\n#define ktpcHowToScenes36 0x20005250\n#define ktpcHowToScenes37 0x20005251\n#define ktpcHowToScenes38 0x20005252\n#define ktpcHowToScenes39 0x20005253\n#define ktpcHowToScenes3A 0x20005254\n#define ktpcHowToScenes3B 0x20005255\n#define ktpcHowToScenes5C 0x20005256\n// project alerts\n#define ktpcDeviation 0x20005270\n#define ktpcExitHelp 0x20005271\n#define ktpcUserQuitsHelp 0x20005272\n#define ktpcUserIdle 0x20005273\n#define ktpcProjectCancel 0x20005274\n#define ktpcNewMovie 0x20005275\n// Projects Intro\n#define Audio_only___Long_Intro 0x20005280\n#define Would_you_like_to 0x20005281\n#define Audio_only___The_Project_Gad 0x20005282\n#define ktpcPrjIntro03 0x20005283\n// How to alerts\n#define No_Scene 0x20005288\n#define No_Actor 0x20005289\n#define No_Word_Box 0x2000528A\n#define No_Undo 0x2000528B\n// guide help\n#define CO__To_see_the_scenes 0x20005290\n#define CO__Click_the_scene_you_want 0x20005291\n#define CO___then_click_the_camera 0x20005292\n#define CO__Click_Actors 0x20005293\n#define CO__When_you_re_ready 0x20005294\n#define CO__Click_the_actor_you_want 0x20005295\n#define CO__Click_where_you_want_to 0x20005296\n#define CO__To_make_an_actor_move 0x20005297\n#define CO__Click_the_actor 0x20005298\n#define CO__Click_the_action_you 0x20005299\n#define CO__Drag_the_actor 0x2000529A\n#define CO__To_see_what_your 0x2000529B\n#define CO__If_you_want_to_save 0x2000529C\n#define Tip__Choose_Start_Position 0x2000529D\n#define Def_Drag 0x2000529E\n#define Tip___Change_Start_Position 0x2000529F\n#define Tip___Freezing_Action 0x200052A0\n#define Tip___Move_Up 0x200052A1\n#define Tip___Move_Down 0x200052A2\n#define Tip___Move_Up_Down 0x200052A3\n#define Tip___Path_through 0x200052A4\n#define ktpcGuideHelp10 0x200052A5\n#define Def___camera_angle 0x200052A6\n// How to actors\n#define ktpcHowToActors00 0x200052C0\n#define ktpcHowToActors01 0x200052C1\n#define ktpcHowToActors02 0x200052C2\n#define ktpcHowToActors03 0x200052C3\n#define ktpcHowToActors04 0x200052C4\n#define ktpcHowToActors05 0x200052C5\n#define ktpcHowToActors06 0x200052C6\n#define ktpcHowToActors07 0x200052C7\n#define ktpcHowToActors08 0x200052C8\n#define ktpcHowToActors09 0x200052C9\n#define ktpcHowToActors0A 0x200052CA\n#define ktpcHowToActors0B 0x200052CB\n#define ktpcHowToActors0C 0x200052CC\n#define ktpcHowToActors0D 0x200052CD\n#define ktpcHowToActors0E 0x200052CE\n#define ktpcHowToActors0F 0x200052CF\n#define ktpcHowToActors10 0x200052D0\n#define ktpcHowToActors11 0x200052D1\n#define ktpcHowToActors12 0x200052D2\n#define ktpcHowToActors13 0x200052D3\n#define ktpcHowToActors14 0x200052D4\n#define ktpcHowToActors15 0x200052D5\n#define ktpcHowToActors16 0x200052D6\n#define ktpcHowToActors17 0x200052D7\n#define ktpcHowToActors18 0x200052D8\n#define ktpcHowToActors19 0x200052D9\n#define ktpcHowToActors1A 0x200052DA\n#define ktpcHowToActors1B 0x200052DB\n#define ktpcHowToActors1C 0x200052DC\n#define ktpcHowToActors1D 0x200052DD\n#define ktpcHowToActors1E 0x200052DE\n#define ktpcHowToActors1F 0x200052DF\n#define ktpcHowToActors20 0x200052E0\n#define ktpcHowToActors21 0x200052E1\n#define ktpcHowToActors22 0x200052E2\n#define ktpcHowToActors23 0x200052E3\n#define ktpcHowToActors24 0x200052E4\n#define ktpcHowToActors25 0x200052E5\n#define ktpcHowToActors26 0x200052E6\n#define ktpcHowToActors27 0x200052E7\n#define ktpcHowToActors28 0x200052E8\n#define ktpcHowToActors29 0x200052E9\n#define ktpcHowToActors2A 0x200052EA\n#define ktpcHowToActors2B 0x200052EB\n#define ktpcHowToActors2C 0x200052EC\n#define ktpcHowToActors2D 0x200052ED\n#define ktpcHowToActors2E 0x200052EE\n#define ktpcHowToActors2F 0x200052EF\n#define ktpcHowToActors30 0x200052F0\n#define ktpcHowToActors31 0x200052F1\n#define ktpcHowToActors32 0x200052F2\n#define ktpcHowToActors33 0x200052F3\n#define ktpcHowToActors34 0x200052F4\n#define ktpcHowToActors35 0x200052F5\n#define ktpcHowToActors36 0x200052F6\n#define ktpcHowToActors37 0x200052F7\n#define ktpcHowToActors38 0x200052F8\n#define ktpcHowToActors39 0x200052F9\n#define ktpcHowToActors3A 0x200052FA\n#define ktpcHowToActors3B 0x200052FB\n#define ktpcHowToActors3C 0x200052FC\n#define ktpcHowToActors3D 0x200052FD\n#define ktpcHowToActors3E 0x200052FE\n#define ktpcHowToActors3F 0x200052FF\n#define ktpcHowToActors40 0x20005300\n#define ktpcHowToActors41 0x20005301\n#define ktpcHowToActors42 0x20005302\n#define ktpcHowToActors43 0x20005303\n#define ktpcHowToActors44 0x20005304\n#define ktpcHowToActors45 0x20005305\n#define ktpcHowToActors46 0x20005306\n#define ktpcHowToActors47 0x20005307\n#define ktpcHowToActors48 0x20005308\n#define ktpcHowToActors49 0x20005309\n#define ktpcHowToActors4A 0x2000530A\n#define ktpcHowToActors4B 0x2000530B\n#define ktpcHowToActors4C 0x2000530C\n#define ktpcHowToActors4D 0x2000530D\n#define ktpcHowToActors4E 0x2000530E\n#define ktpcHowToActors4F 0x2000530F\n#define ktpcHowToActors50 0x20005310\n#define ktpcHowToActors51 0x20005311\n#define ktpcHowToActors52 0x20005312\n#define ktpcHowToActors53 0x20005313\n#define ktpcHowToActors54 0x20005314\n#define ktpcHowToActors55 0x20005315\n#define ktpcHowToActors56 0x20005316\n#define ktpcHowToActors57 0x20005317\n#define ktpcHowToActors58 0x20005318\n#define ktpcHowToActors59 0x20005319\n#define ktpcHowToActors5A 0x2000531A\n#define ktpcHowToActors5B 0x2000531B\n#define ktpcHowToActors5C 0x2000531C\n#define ktpcHowToActors5D 0x2000531D\n#define ktpcHowToActors5E 0x2000531E\n#define ktpcHowToActors5F 0x2000531F\n#define ktpcHowToActors60 0x20005320\n#define ktpcHowToActors61 0x20005321\n#define ktpcHowToActors62 0x20005322\n#define ktpcHowToActors63 0x20005323\n#define ktpcHowToActors64 0x20005324\n#define ktpcHowToActors65 0x20005325\n#define ktpcHowToActors66 0x20005326\n#define ktpcHowToActors67 0x20005327\n#define ktpcHowToActors68 0x20005328\n#define ktpcHowToActors69 0x20005329\n#define ktpcHowToActors6A 0x2000532A\n#define ktpcHowToActors6B 0x2000532B\n#define ktpcHowToActors6C 0x2000532C\n#define ktpcHowToActors6D 0x2000532D\n#define ktpcHowToActors6E 0x2000532E\n#define ktpcHowToActors6F 0x2000532F\n#define ktpcHowToActors70 0x20005330\n#define ktpcHowToActors71 0x20005331\n#define ktpcHowToActors72 0x20005332\n#define ktpcHowToActors73 0x20005333\n#define ktpcHowToActors74 0x20005334\n#define ktpcHowToActors75 0x20005335\n#define ktpcHowToActors76 0x20005336\n#define ktpcHowToActors77 0x20005337\n#define ktpcHowToActors78 0x20005338\n#define ktpcHowToActors79 0x20005339\n#define ktpcHowToActors7A 0x2000533A\n#define ktpcHowToActors7B 0x2000533B\n#define ktpcHowToActors7C 0x2000533C\n#define ktpcHowToActors7D 0x2000533D\n#define ktpcHowToActors7E 0x2000533E\n#define ktpcHowToActors7F 0x2000533F\n#define ktpcHowToActors80 0x20005340\n#define ktpcHowToActors81 0x20005341\n#define ktpcHowToActors82 0x20005342\n#define ktpcHowToActors83 0x20005343\n#define ktpcHowToActors84 0x20005344\n#define ktpcHowToActors85 0x20005345\n#define ktpcHowToActors86 0x20005346\n#define ktpcHowToActors87 0x20005347\n#define ktpcHowToActors88 0x20005348\n#define ktpcHowToActors89 0x20005349\n#define ktpcHowToActors8A 0x2000534A\n#define ktpcHowToActors8B 0x2000534B\n#define ktpcHowToActors8C 0x2000534C\n#define ktpcHowToActors8D 0x2000534D\n#define ktpcHowToActors8E 0x2000534E\n#define ktpcHowToActors8F 0x2000534F\n#define ktpcHowToActors90 0x20005350\n#define ktpcHowToActors91 0x20005351\n#define ktpcHowToActors92 0x20005352\n#define ktpcHowToActors93 0x20005353\n#define ktpcHowToActors94 0x20005354\n// How to words\n#define ktpcHowToWords00 0x20005640\n#define ktpcHowToWords01 0x20005641\n#define ktpcHowToWords02 0x20005642\n#define ktpcHowToWords03 0x20005643\n#define ktpcHowToWords04 0x20005644\n#define ktpcHowToWords05 0x20005645\n#define ktpcHowToWords06 0x20005646\n#define ktpcHowToWords07 0x20005647\n#define ktpcHowToWords08 0x20005648\n#define ktpcHowToWords09 0x20005649\n#define ktpcHowToWords0A 0x2000564A\n#define ktpcHowToWords0B 0x2000564B\n#define ktpcHowToWords0C 0x2000564C\n#define ktpcHowToWords0D 0x2000564D\n#define ktpcHowToWords0E 0x2000564E\n#define ktpcHowToWords0F 0x2000564F\n#define ktpcHowToWords10 0x20005650\n#define ktpcHowToWords11 0x20005651\n#define ktpcHowToWords12 0x20005652\n#define ktpcHowToWords13 0x20005653\n#define ktpcHowToWords14 0x20005654\n#define ktpcHowToWords15 0x20005655\n#define ktpcHowToWords16 0x20005656\n#define ktpcHowToWords17 0x20005657\n#define ktpcHowToWords18 0x20005658\n#define ktpcHowToWords19 0x20005659\n#define ktpcHowToWords1A 0x2000565A\n#define ktpcHowToWords1B 0x2000565B\n#define ktpcHowToWords1C 0x2000565C\n#define ktpcHowToWords1D 0x2000565D\n#define ktpcHowToWords1E 0x2000565E\n#define ktpcHowToWords1F 0x2000565F\n#define ktpcHowToWords20 0x20005660\n#define ktpcHowToWords21 0x20005661\n#define ktpcHowToWords22 0x20005662\n#define ktpcHowToWords23 0x20005663\n#define ktpcHowToWords24 0x20005664\n#define ktpcHowToWords25 0x20005665\n#define ktpcHowToWords26 0x20005666\n#define ktpcHowToWords27 0x20005667\n#define ktpcHowToWords28 0x20005668\n#define ktpcHowToWords29 0x20005669\n#define ktpcHowToWords2A 0x2000566A\n#define ktpcHowToWords2B 0x2000566B\n#define ktpcHowToWords2C 0x2000566C\n#define ktpcHowToWords2D 0x2000566D\n#define ktpcHowToWords2E 0x2000566E\n#define ktpcHowToWords2F 0x2000566F\n#define ktpcHowToWords31 0x20005670\n#define ktpcHowToWords32 0x20005671\n#define ktpcHowToWords33 0x20005672\n#define ktpcHowToWords34 0x20005673\n#define ktpcHowToWords35 0x20005674\n#define ktpcHowToWords36 0x20005675\n#define ktpcHowToWords37 0x20005676\n#define ktpcHowToWords38 0x20005677\n#define ktpcHowToWords39 0x20005678\n#define ktpcHowToWords3A 0x20005679\n#define ktpcHowToWords3B 0x2000567A\n#define ktpcHowToWords3C 0x2000567B\n#define ktpcHowToWords3D 0x2000567C\n#define ktpcHowToWords3E 0x2000567D\n#define ktpcHowToWords3F 0x2000567E\n#define ktpcHowToWords40 0x2000567F\n#define ktpcHowToWords41 0x20005680\n#define ktpcHowToWords42 0x20005681\n#define ktpcHowToWords43 0x20005682\n#define ktpcHowToWords44 0x20005683\n#define ktpcHowToWords45 0x20005684\n#define ktpcHowToWords46 0x20005685\n#define ktpcHowToWords47 0x20005686\n#define ktpcHowToWords48 0x20005687\n#define ktpcHowToWords49 0x20005688\n#define ktpcHowToWords4A 0x20005689\n#define ktpcHowToWords50 0x2000568A\n#define ktpcHowToWords51 0x2000568B\n#define ktpcHowToWords52 0x2000568C\n#define ktpcHowToWords64 0x2000568D\n#define ktpcHowToWords66 0x2000568E\n#define ktpcHowToWords67 0x2000568F\n#define ktpcHowToWords30 0x20005690\n#define ktpcHowToWords4B 0x20005691\n// How to sounds\n#define ktpcHowToSounds00 0x20005380\n#define ktpcHowToSounds01 0x20005381\n#define ktpcHowToSounds02 0x20005382\n#define ktpcHowToSounds03 0x20005383\n#define ktpcHowToSounds04 0x20005384 // 1\n#define ktpcHowToSounds05 0x20005385\n#define ktpcHowToSounds06 0x20005386\n#define ktpcHowToSounds07 0x20005387\n#define ktpcHowToSounds08 0x20005388 // 2\n#define ktpcHowToSounds09 0x20005389\n#define ktpcHowToSounds0A 0x2000538A\n#define ktpcHowToSounds0B 0x2000538B\n#define ktpcHowToSounds0C 0x2000538C // 3\n#define ktpcHowToSounds0D 0x2000538D\n#define ktpcHowToSounds0E 0x2000538E\n#define ktpcHowToSounds0F 0x2000538F // 4\n#define ktpcHowToSounds10 0x20005390\n#define ktpcHowToSounds11 0x20005391\n#define ktpcHowToSounds12 0x20005392 // 5\n#define ktpcHowToSounds13 0x20005393\n#define ktpcHowToSounds14 0x20005394\n#define ktpcHowToSounds15 0x20005395 // 6\n#define ktpcHowToSounds16 0x20005396\n#define ktpcHowToSounds17 0x20005397\n#define ktpcHowToSounds18 0x20005398 // 7\n#define ktpcHowToSounds19 0x20005399\n#define ktpcHowToSounds1A 0x2000539A\n#define ktpcHowToSounds1B 0x2000539B\n#define ktpcHowToSounds1C 0x2000539C // 8\n#define ktpcHowToSounds1D 0x2000539D\n#define ktpcHowToSounds1E 0x2000539E\n#define ktpcHowToSounds1F 0x2000539F // 9\n#define ktpcHowToSounds20 0x200053A0\n#define ktpcHowToSounds21 0x200053A1\n#define ktpcHowToSounds22 0x200053A2 // 10\n#define ktpcHowToSounds23 0x200053A3\n#define ktpcHowToSounds24 0x200053A4\n#define ktpcHowToSounds25 0x200053A5 // 11\n#define ktpcHowToSounds26 0x200053A6\n#define ktpcHowToSounds2E 0x200053A7\n#define ktpcHowToSounds44 0x200053A8\n#define ktpcHowToSounds51 0x200053A9\n#define ktpcHowToSounds52 0x200053AA\n#define ktpcHowToSounds60 0x200053AB\n#define ktpcHowToSounds61 0x200053AC\n#define ktpcHowToSounds62 0x200053AD\n#define ktpcHowToSounds63 0x200053AE\n#define ktpcHowToSounds69 0x200053AF\n#define ktpcHowToSounds73 0x200053B0\n#define ktpcHowToSounds74 0x200053B1\n#define ktpcHowToSounds76 0x200053B2\n#define ktpcHowToSounds77 0x200053B3\n#define ktpcHowToSounds27 0x200053B4\n#define ktpcHowToSounds28 0x200053B5\n#define ktpcHowToSounds29 0x200053B6\n#define ktpcHowToSounds2A 0x200053B7\n#define ktpcHowToSounds2C 0x200053B8\n#define ktpcHowToSounds2D 0x200053B9\n\n// Project 3 *WARNING 200053C0 thru 200053FF are use above**\n#define To_play_this_movie__click 0x20005400\n#define To_see_the_steps_for_changing 0x20005401\n#define Why__Actions__when_viewed 0x20005402\n#define I_created_the_first_part 0x20005403\n#define CO__To_change_Nakita_s_act 0x20005404\n#define CO__Click_Nakita 0x20005405\n#define CO__Click_Run_Scared 0x20005406\n#define CO__Then_click_OK 0x20005407\n#define CO__Presto___The_new_action 0x20005408\n#define CO__Click_the_button_below 0x20005409\n#define To_see_the_steps_for_adding 0x2000540A\n#define Why__There_are_two_ways_to 0x2000540B\n#define CO__To_play_the_movie_so 0x2000540C\n#define Why__Frame_Slider 0x2000540D\n#define CO__To_find_Nakita_s_line 0x2000540E\n#define CO__Click_Speech 0x2000540F\n#define CO__Click__A_rat 0x20005410\n#define Tip__Undo 0x20005411\n#define CO__Now_click_Nakita 0x20005412\n#define CO__To_see_the_steps_for 0x20005413\n#define Why_Each_action_moves 0x20005414\n#define CO__Click_the_button_below_to 0x20005415\n#define CO__To_add_an_action 0x20005416\n#define CO__Click_Actions 0x20005417\n#define CO__Click_yell 0x20005418\n#define CO__Click_Nakita_Then_hold 0x20005419\n#define CO__To_see_the_steps 0x2000541A\n#define Why__Some_actions_need 0x2000541B\n#define CO__To_rewind_the_movie_to 0x2000541C\n#define CO__Click__Wait_up__Wanda 0x2000541D\n#define Congratulations 0x2000541E\n#define Tip___Another_movie 0x2000541F\n#define CO__To_see_the_movie_from 0x20005420\n#define IDLE__Remember_to_get 0x20005421\n#define CO__To_play_the_new_ending 0x20005422\n#define Tip___If_you_rewind_too_far 0x20005423\n#define Tip__Mean 0x20005424\n// Project 1\n#define ktpc1Project00 0x20005430\n#define ktpc1Project01 0x20005431\n#define ktpc1Project02 0x20005432\n#define ktpc1Project03 0x20005433\n#define ktpc1Project04 0x20005434\n#define ktpc1Project05 0x20005435\n#define ktpc1Project06 0x20005436\n#define ktpc1Project07 0x20005437\n#define ktpc1Project08 0x20005438\n#define ktpc1Project09 0x20005439\n#define ktpc1Project0A 0x2000543A\n#define ktpc1Project0B 0x2000543B\n#define ktpc1Project0C 0x2000543C\n#define ktpc1Project0D 0x2000543D\n#define ktpc1Project0E 0x2000543E\n#define ktpc1Project0F 0x2000543F\n#define ktpc1Project10 0x20005440\n#define ktpc1Project11 0x20005441\n#define ktpc1Project12 0x20005442\n#define ktpc1Project13 0x20005443\n#define ktpc1Project14 0x20005444\n#define ktpc1Project15 0x20005445\n#define ktpc1Project16 0x20005446\n#define ktpc1Project17 0x20005447\n#define ktpc1Project18 0x20005448\n#define ktpc1Project19 0x20005449\n#define ktpc1Project1A 0x2000544A\n#define ktpc1Project1B 0x2000544B\n#define ktpc1Project1C 0x2000544C\n#define ktpc1Project1D 0x2000544D\n#define ktpc1Project1E 0x2000544E\n#define ktpc1Project1F 0x2000544F\n#define ktpc1Project20 0x20005450\n#define ktpc1Project21 0x20005451\n#define ktpc1Project22 0x20005452\n#define ktpc1Project23 0x20005453\n#define ktpc1Project24 0x20005454\n#define ktpc1Project25 0x20005455\n#define ktpc1Project26 0x20005456\n#define ktpc1Project27 0x20005457\n#define ktpc1Project28 0x20005458\n#define ktpc1Project29 0x20005459\n#define ktpc1Project2A 0x2000545A\n#define ktpc1Project2B 0x2000545B\n#define ktpc1Project2C 0x2000545C\n#define ktpc1Project2D 0x2000545D\n#define ktpc1Project2E 0x2000545E\n#define ktpc1Project2F 0x2000545F\n#define ktpc1Project30 0x20005460\n#define ktpc1Project31 0x20005461\n#define ktpc1Project32 0x20005462\n#define ktpc1Project33 0x20005463\n// Project 2\n#define ktpc2Project00 0x20005470\n#define ktpc2Project01 0x20005471\n#define ktpc2Project02 0x20005472\n#define ktpc2Project03 0x20005473\n#define ktpc2Project04 0x20005474\n#define ktpc2Project05 0x20005475\n#define ktpc2Project06 0x20005476\n#define ktpc2Project07 0x20005477\n#define ktpc2Project08 0x20005478\n#define ktpc2Project09 0x20005479\n#define ktpc2Project0A 0x2000547A\n#define ktpc2Project0B 0x2000547B\n#define ktpc2Project0C 0x2000547C\n#define ktpc2Project0D 0x2000547D\n#define ktpc2Project0E 0x2000547E\n#define ktpc2Project0F 0x2000547F\n#define ktpc2Project10 0x20005480\n#define ktpc2Project11 0x20005481\n#define ktpc2Project12 0x20005482\n#define ktpc2Project13 0x20005483\n#define ktpc2Project14 0x20005484\n#define ktpc2Project15 0x20005485\n#define ktpc2Project16 0x20005486\n#define ktpc2Project17 0x20005487\n#define ktpc2Project18 0x20005488\n#define ktpc2Project19 0x20005489\n#define ktpc2Project1A 0x2000548A\n#define ktpc2Project1B 0x2000548B\n#define ktpc2Project1C 0x2000548C\n#define ktpc2Project1D 0x2000548D\n#define ktpc2Project1E 0x2000548E\n#define ktpc2Project1F 0x2000548F\n#define ktpc2Project20 0x20005490\n#define ktpc2Project21 0x20005491\n#define ktpc2Project22 0x20005492\n#define ktpc2Project23 0x20005493\n#define ktpc2Project24 0x20005494\n#define ktpc2Project25 0x20005495\n#define ktpc2Project26 0x20005496\n#define ktpc2Project27 0x20005497\n#define ktpc2Project28 0x20005498\n#define ktpc2Project29 0x20005499\n#define ktpc2Project2A 0x2000549A\n#define ktpc2Project2B 0x2000549B\n#define ktpc2Project2C 0x2000549C\n#define ktpc2Project2D 0x2000549D\n#define ktpc2Project2E 0x2000549E\n#define ktpc2Project2F 0x2000549F\n#define ktpc2Project30 0x200054A0\n#define ktpc2Project31 0x200054A1\n// Project 4\n#define ktpc4Project00 0x200054B0\n#define ktpc4Project01 0x200054B1\n#define ktpc4Project02 0x200054B2\n#define ktpc4Project03 0x200054B3\n#define ktpc4Project04 0x200054B4\n#define ktpc4Project05 0x200054B5\n#define ktpc4Project06 0x200054B6\n#define ktpc4Project07 0x200054B7\n#define ktpc4Project08 0x200054B8\n#define ktpc4Project09 0x200054B9\n#define ktpc4Project0A 0x200054BA\n#define ktpc4Project0B 0x200054BB\n#define ktpc4Project0C 0x200054BC\n#define ktpc4Project0D 0x200054BD\n#define ktpc4Project0E 0x200054BE\n#define ktpc4Project0F 0x200054BF\n#define ktpc4Project10 0x200054C0\n#define ktpc4Project11 0x200054C1\n#define ktpc4Project12 0x200054C2\n#define ktpc4Project13 0x200054C3\n#define ktpc4Project14 0x200054C4\n#define ktpc4Project15 0x200054C5\n#define ktpc4Project16 0x200054C6\n#define ktpc4Project17 0x200054C7\n#define ktpc4Project18 0x200054C8\n#define ktpc4Project19 0x200054C9\n#define ktpc4Project1A 0x200054CA\n#define ktpc4Project1B 0x200054CB\n#define ktpc4Project1C 0x200054CC\n#define ktpc4Project1D 0x200054CD\n#define ktpc4Project1E 0x200054CE\n#define ktpc4Project1F 0x200054CF\n#define ktpc4Project20 0x200054D0\n#define ktpc4Project21 0x200054D1\n#define ktpc4Project22 0x200054D2\n#define ktpc4Project23 0x200054D3\n#define ktpc4Project24 0x200054D4\n#define ktpc4Project25 0x200054D5\n#define ktpc4Project26 0x200054D6\n#define ktpc4Project27 0x200054D7\n#define ktpc4Project28 0x200054D8\n#define ktpc4Project29 0x200054D9\n#define ktpc4Project2A 0x200054DA\n#define ktpc4Project2B 0x200054DB\n#define ktpc4Project2C 0x200054DC\n#define ktpc4Project2D 0x200054DD\n#define ktpc4Project2E 0x200054DE\n#define ktpc4Project2F 0x200054DF\n#define ktpc4Project30 0x200054E0\n#define ktpc4Project31 0x200054E1\n#define ktpc4Project32 0x200054E2\n#define ktpc4Project33 0x200054E3\n#define ktpc4Project34 0x200054E4\n#define ktpc4Project35 0x200054E5\n#define ktpc4Project36 0x200054E6\n#define ktpc4Project37 0x200054E7\n#define ktpc4Project38 0x200054E8\n#define ktpc4Project39 0x200054E9\n#define ktpc4Project3A 0x200054EA\n#define ktpc4Project3B 0x200054EB\n#define ktpc4Project3C 0x200054EC\n#define ktpc4Project3D 0x200054ED\n#define ktpc4Project3E 0x200054EE\n#define ktpc4Project3F 0x200054EF\n// Project 5\n#define ktpc5Project00 0x200054F0\n#define ktpc5Project01 0x200054F1\n#define ktpc5Project02 0x200054F2\n#define ktpc5Project03 0x200054F3\n#define ktpc5Project04 0x200054F4\n#define ktpc5Project05 0x200054F5\n#define ktpc5Project06 0x200054F6\n#define ktpc5Project07 0x200054F7\n#define ktpc5Project08 0x200054F8\n#define ktpc5Project09 0x200054F9\n#define ktpc5Project0A 0x200054FA\n#define ktpc5Project0B 0x200054FB\n#define ktpc5Project0C 0x200054FC\n#define ktpc5Project0D 0x200054FD\n#define ktpc5Project0E 0x200054FE\n#define ktpc5Project0F 0x200054FF\n#define ktpc5Project10 0x20005500\n#define ktpc5Project11 0x20005501\n#define ktpc5Project12 0x20005502\n#define ktpc5Project13 0x20005503\n#define ktpc5Project14 0x20005504\n#define ktpc5Project15 0x20005505\n#define ktpc5Project16 0x20005506\n#define ktpc5Project17 0x20005507\n#define ktpc5Project18 0x20005508\n#define ktpc5Project19 0x20005509\n#define ktpc5Project1A 0x2000550A\n#define ktpc5Project1B 0x2000550B\n#define ktpc5Project1C 0x2000550C\n#define ktpc5Project1D 0x2000550D\n#define ktpc5Project1E 0x2000550E\n#define ktpc5Project1F 0x2000550F\n#define ktpc5Project20 0x20005510\n#define ktpc5Project21 0x20005511\n#define ktpc5Project22 0x20005512\n#define ktpc5Project23 0x20005513\n#define ktpc5Project24 0x20005514\n#define ktpc5Project25 0x20005515\n#define ktpc5Project26 0x20005516\n#define ktpc5Project27 0x20005517\n#define ktpc5Project28 0x20005518\n#define ktpc5Project29 0x20005519\n#define ktpc5Project2A 0x2000551A\n#define ktpc5Project2B 0x2000551B\n#define ktpc5Project2C 0x2000551C\n#define ktpc5Project2D 0x2000551D\n#define ktpc5Project2E 0x2000551E\n#define ktpc5Project2F 0x2000551F\n#define ktpc5Project30 0x20005520\n#define ktpc5Project31 0x20005521\n#define ktpc5Project32 0x20005522\n#define ktpc5Project33 0x20005523\n#define ktpc5Project34 0x20005524\n#define ktpc5Project35 0x20005525\n#define ktpc5Project36 0x20005526\n#define ktpc5Project37 0x20005527\n#define ktpc5Project38 0x20005528\n#define ktpc5Project39 0x20005529\n#define ktpc5Project3A 0x2000552A\n#define ktpc5Project3B 0x2000552B\n#define ktpc5Project3C 0x2000552C\n#define ktpc5Project3D 0x2000552D\n#define ktpc5Project3E 0x2000552E\n#define ktpc5Project3F 0x2000552F\n#define ktpc5Project40 0x20005530\n#define ktpc5Project41 0x20005531\n#define ktpc5Project42 0x20005532\n#define ktpc5Project43 0x20005533\n#define ktpc5Project44 0x20005534\n#define ktpc5Project45 0x20005535\n#define ktpc5Project46 0x20005536\n#define ktpc5Project47 0x20005537\n#define ktpc5Project48 0x20005538\n#define ktpc5Project49 0x20005539\n#define ktpc5Project4A 0x2000553A\n#define ktpc5Project4B 0x2000553B\n#define ktpc5Project4C 0x2000553C\n#define ktpc5Project4D 0x2000553D\n#define ktpc5Project4E 0x2000553E\n#define ktpc5Project4F 0x2000553F\n#define ktpc5Project50 0x20005540\n#define ktpc5Project51 0x20005541\n// easel help\n#define ktpcEaselHelp00 0x20005600 // scene organizer\n#define ktpcEaselHelp01 0x20005601\n#define ktpcEaselHelp02 0x20005602\n#define ktpcEaselHelp03 0x20005603\n#define ktpcEaselHelp04 0x20005604\n#define ktpcEaselHelp05 0x20005605\n#define ktpcEaselHelp06 0x20005606\n#define ktpcEaselHelp07 0x20005607\n#define ktpcEaselHelp08 0x20005608\n#define ktpcEaselHelp09 0x20005609\n#define ktpcEaselHelp0A 0x2000560A\n#define ktpcEaselHelp0B 0x2000560B // 3D words\n#define ktpcEaselHelp0C 0x2000560C\n#define ktpcEaselHelp0D 0x2000560D\n#define ktpcEaselHelp0E 0x2000560E\n#define ktpcEaselHelp0F 0x2000560F\n#define ktpcEaselHelp10 0x20005610\n#define ktpcEaselHelp11 0x20005611\n#define ktpcEaselHelp12 0x20005612\n#define ktpcEaselHelp13 0x20005613 // listener browser\n#define ktpcEaselHelp14 0x20005614\n#define ktpcEaselHelp15 0x20005615 // costume changer\n#define ktpcEaselHelp16 0x20005616\n#define ktpcEaselHelp17 0x20005617\n#define ktpcEaselHelp18 0x20005618\n#define ktpcEaselHelp19 0x20005619 // sound effects\n#define ktpcEaselHelp1A 0x2000561A\n#define ktpcEaselHelp1B 0x2000561B\n#define ktpcEaselHelp1C 0x2000561C\n#define ktpcEaselHelp1D 0x2000561D\n#define ktpcEaselHelp1E 0x2000561E // record your own\n#define ktpcEaselHelp1F 0x2000561F\n#define ktpcEaselHelp20 0x20005620\n#define ktpcEaselHelp21 0x20005621\n#define ktpcEaselHelp22 0x20005622\n#define ktpcEaselHelp23 0x20005623\n#define ktpcEaselHelp24 0x20005624 // speech browser\n#define ktpcEaselHelp25 0x20005625\n#define ktpcEaselHelp26 0x20005626\n#define ktpcEaselHelp27 0x20005627\n#define ktpcEaselHelp28 0x20005628\n#define ktpcEaselHelp29 0x20005629 // music browser\n#define ktpcEaselHelp2A 0x2000562A\n#define ktpcEaselHelp2B 0x2000562B\n#define ktpcEaselHelp2C 0x2000562C\n#define ktpcEaselHelp2D 0x2000562D // action browser\n#define ktpcEaselHelp2E 0x2000562E\n#define ktpcEaselHelp2F 0x2000562F\n#define ktpcEaselHelp30 0x20005630\n#define ktpcEaselHelp31 0x20005631\n#define ktpcEaselHelp32 0x20005632\n#define ktpcEaselHelp33 0x20005633\n#define ktpcEaselHelp34 0x20005634\n#define ktpcEaselHelp35 0x20005635\n#define ktpcEaselHelp36 0x20005636\n#define ktpcEaselHelp37 0x20005637\n#define ktpcEaselHelp38 0x20005638\n#define ktpcEaselHelp39 0x20005639\n#define ktpcEaselHelp3A 0x2000563A\n#define ktpcEaselHelp3B 0x2000563B\n#define kttRecordEaselCancel 0x2000563E\n#define kttRecordEaselOk 0x2000563F\n#define ktpcEaselHelp3F 0x20005695\n// WARNING: 0X20005640 - 0X20005691 is used above\n// project 6\n#define ktpc6Project00 0x200056A0\n#define ktpc6Project01 0x200056A1\n#define ktpc6Project02 0x200056A2\n#define ktpc6Project03 0x200056A3\n#define ktpc6Project04 0x200056A4\n#define ktpc6Project05 0x200056A5\n#define ktpc6Project06 0x200056A6\n#define ktpc6Project07 0x200056A7\n#define ktpc6Project08 0x200056A8\n#define ktpc6Project09 0x200056A9\n#define ktpc6Project0A 0x200056AA\n#define ktpc6Project0B 0x200056AB\n#define ktpc6Project0C 0x200056AC\n#define ktpc6Project0D 0x200056AD\n#define ktpc6Project0E 0x200056AE\n#define ktpc6Project0F 0x200056AF\n#define ktpc6Project10 0x200056B0\n#define ktpc6Project11 0x200056B1\n#define ktpc6Project12 0x200056B2\n#define ktpc6Project13 0x200056B3\n#define ktpc6Project14 0x200056B4\n#define ktpc6Project15 0x200056B5\n#define ktpc6Project16 0x200056B6\n#define ktpc6Project17 0x200056B7\n#define ktpc6Project18 0x200056B8\n#define ktpc6Project19 0x200056B9\n#define ktpc6Project1A 0x200056BA\n#define ktpc6Project1B 0x200056BB\n#define ktpc6Project1C 0x200056BC\n#define ktpc6Project1D 0x200056BD\n#define ktpc6Project1E 0x200056BE\n#define ktpc6Project1F 0x200056BF\n#define ktpc6Project20 0x200056C0\n#define ktpc6Project21 0x200056C1\n#define ktpc6Project22 0x200056C2\n#define ktpc6Project23 0x200056C3\n#define ktpc6Project24 0x200056C4\n#define ktpc6Project25 0x200056C5\n#define ktpc6Project26 0x200056C6\n#define ktpc6Project27 0x200056C7\n#define ktpc6Project28 0x200056C8\n#define ktpc6Project29 0x200056C9\n#define ktpc6Project2A 0x200056CA\n#define ktpc6Project2B 0x200056CB\n#define ktpc6Project2C 0x200056CC\n#define ktpc6Project2D 0x200056CD\n#define ktpc6Project4F 0x200056CE\n#define ktpc6Project2E 0x200056CF\n// help book basics\n#define ktpcBasics00 0x200056E0\n#define ktpcBasics01 0x200056E1\n#define ktpcBasics02 0x200056E2\n#define ktpcBasics03 0x200056E3\n#define ktpcBasics04 0x200056E4\n#define ktpcBasics05 0x200056E5\n#define ktpcBasics06 0x200056E6\n#define ktpcBasics07 0x200056E7\n#define ktpcBasics08 0x200056E8\n#define ktpcBasics09 0x200056E9\n#define ktpcBasics0A 0x200056EA\n#define ktpcBasics0B 0x200056EB\n#define ktpcBasics0C 0x200056EC\n#define ktpcBasics0D 0x200056ED\n#define ktpcBasics0E 0x200056EE\n#define ktpcBasics0F 0x200056EF\n#define ktpcBasics10 0x200056F0\n// gadget 1 text--projects are in order and sequence, don't\n// change or bad things can(and will) happen\n#define ktpc1Gadget00 0x20005700\n#define ktpc1Gadget01 0x20005701\n#define ktpc1Gadget02 0x20005702\n#define ktpc1Gadget03 0x20005703\n#define ktpc1Gadget04 0x20005704\n#define ktpc1Gadget05 0x20005705\n#define ktpc1Gadget06 0x20005706\n#define ktpc1Gadget07 0x20005707\n// gadget 3 text\n#define ktpc3Gadget00 0x20005708\n#define ktpc3Gadget01 0x20005709\n#define ktpc3Gadget02 0x2000570A\n#define ktpc3Gadget03 0x2000570B\n#define ktpc3Gadget04 0x2000570C\n#define ktpc3Gadget05 0x2000570D\n// gadget 2 text\n#define ktpc2Gadget00 0x2000570E\n#define ktpc2Gadget01 0x2000570F\n#define ktpc2Gadget02 0x20005710\n#define ktpc2Gadget03 0x20005711\n// gadget 6 text\n#define ktpc6Gadget00 0x20005712\n#define ktpc6Gadget01 0x20005713\n#define ktpc6Gadget02 0x20005714\n#define ktpc6Gadget03 0x20005715\n#define ktpc6Gadget04 0x20005716\n#define ktpc6Gadget05 0x20005717\n#define ktpc6Gadget06 0x20005718\n// gadget 5 text\n#define ktpc5Gadget00 0x20005719\n#define ktpc5Gadget01 0x2000571A\n#define ktpc5Gadget02 0x2000571B\n#define ktpc5Gadget03 0x2000571C\n#define ktpc5Gadget04 0x2000571D\n#define ktpc5Gadget05 0x2000571E\n#define ktpc5Gadget06 0x2000571F\n#define ktpc5Gadget07 0x20005720\n#define ktpc5Gadget08 0x20005721\n#define ktpc5Gadget09 0x20005722\n#define ktpc5Gadget0A 0x20005723\n// gadget 4 text\n#define ktpc4Gadget00 0x20005724\n#define ktpc4Gadget01 0x20005725\n#define ktpc4Gadget02 0x20005726\n#define ktpc4Gadget03 0x20005727\n#define ktpc4Gadget04 0x20005728\n#define ktpc4Gadget07 0x20005729\n#define ktpcGadgetTextStart ktpc1Gadget00\n#define ktpcGadgetTextEnd ktpc4Gadget07\n// error help\n#define ktpcercOomHq 0x20005800\n#define ktpcercOomPv 0x20005801\n#define ktpcercOomNew 0x20005802\n#define ktpcercFileGeneral 0x20005803\n#define ktpcercFilePerm 0x20005804\n#define ktpcercFileOpen 0x20005805\n#define ktpcercFileCreate 0x20005806\n#define ktpcercFileSwapNames 0x20005807\n#define ktpcercFileRename 0x20005808\n#define ktpcercFniGeneral 0x20005809\n#define ktpcercFniDelete 0x2000580A\n#define ktpcercFniRename 0x2000580B\n#define ktpcercFniMismatch 0x2000580C\n#define ktpcercFniHidden 0x2000580D\n#define ktpcercFniDirCreate 0x2000580E\n#define ktpcercFneGeneral 0x2000580F\n#define ktpcercCflOpen 0x20005810\n#define ktpcercCflCreate 0x20005811\n#define ktpcercCflSave 0x20005812\n#define ktpcercCflSaveCopy 0x20005813\n#define ktpcercCrfCantLoad 0x20005814\n#define ktpcercSndmCantInit 0x20005815\n#define ktpcercSndmPartialInit 0x20005816\n#define ktpcercOomGdi 0x20005817\n#define ktpcercGfxCantDraw 0x20005818\n#define ktpcercGfxCantSetFont 0x20005819\n#define ktpcercGfxNoFontList 0x2000581A\n#define ktpcercGfxCantSetPalette 0x2000581B\n#define ktpcercDlgCantGetArgs 0x2000581C\n#define ktpcercDlgCantFind 0x2000581D\n#define ktpcercDlgOom 0x2000581E\n#define ktpcercCantSave 0x2000581F\n#define ktpcercRtxdTooMuchText 0x20005820\n#define ktpcercRtxdReadFailed 0x20005821\n#define ktpcercRtxdSaveFailed 0x20005822\n#define ktpcercCantOpenVideo 0x20005823\n#define ktpcercMbmpCantOpenBitmap 0x20005824\n#define ktpcercSocSaveFailure 0x20005825\n#define ktpcercSocPlaceActor 0x20005826\n#define ktpcercSocSceneSwitch 0x20005827\n#define ktpcercSocSceneChop 0x20005828\n#define ktpcercSocBadFile 0x20005829\n#define ktpcercSocNoTboxSelected 0x2000582A\n#define ktpcercSocNoActrSelected 0x2000582B\n#define ktpcercSocNotUndoable 0x2000582C\n#define ktpcercSocNoScene 0x2000582D\n#define ktpcercSocBadVersion 0x2000582E\n#define ktpcercSocNothingToPaste 0x2000582F\n#define ktpcercSocBadFrameSlider 0x20005830\n#define ktpcercSocGotoFrameFailure 0x20005831\n#define ktpcercSocDeleteBackFailure 0x20005832\n#define ktpcercSocActionNotApplicable 0x20005833\n#define ktpcercSocCannotPasteThatHere 0x20005834\n#define ktpcercSocNoModlForChar 0x20005835\n#define ktpcercSocNameTooLong 0x20005836\n#define ktpcercSocTboxTooSmall 0x20005837\n#define ktpcercSocNoThumbnails 0x20005838\n#define ktpcercSocTdtTooLong 0x20005839\n#define ktpcercSocBadTdf 0x2000583A\n#define ktpcercSocNoActrMidi 0x2000583B\n#define ktpcercSocNoImportRollCall 0x2000583C\n#define ktpcercSocNoNukeRollCall 0x2000583D\n#define ktpcercSocSceneSortError 0x2000583E\n#define ktpcercSocCantInitSceneSort 0x2000583F\n#define ktpcercSocCantInitSplot 0x20005840\n#define ktpcercSocNoWaveIn 0x20005841\n#define ktpcercSocWaveInProblems 0x20005842\n#define ktpcercSocPortfolioFailed 0x20005843\n#define ktpcercSocCantInitStudio 0x20005844\n#define ktpcercSoc3DWordCreate 0x20005845\n#define ktpcercSoc3DWordChange 0x20005846\n#define ktpcercSocWaveSaveFailure 0x20005847\n#define ktpcercSocNoSoundName 0x20005848\n#define ktpcercSndamWaveDeviceBusy 0x20005849\n#define ktpcercSocNoKidSndsInMovie 0x2000584A\n#define ktpcercSocCreatedUserDir 0x2000584B\n#define ktpcercSocMissingMelanieDoc 0x2000584C\n#define ktpcercSocCantLoadMelanieDoc 0x2000584D\n#define ktpcercSocBadSceneSound 0x2000584E\n#define ktpcercSocBadSoundFile 0x2000584F\n#define ktpcercSocNoDefaultFont 0x20005850\n#define ktpcercSocCantCacheTag 0x20005851\n#define ktpcercSocInvalidFilename 0x20005852\n#define ktpcercSocCantGoToStudio 0x20005853\n#define ktpcercSocCantGoToMap 0x20005854\n#define ktpcercSndMidiDeviceBusy 0x20005855\n#define ktpcercSocGenericError 0x20005856\n#define ktpcercSocNoSndOnPaste 0x20005857\n#define ktpcercSocCantCopyMsnd 0x20005858\n// *If you add anything below this line you need to notify leannp about it so she can make a help topic for it*\n\n//////////////////////////////////// Waves\n// logo wizard\n#define kwavLogo00 0x00075000\n#define kwavLogo01 0x00075001\n#define kwavLogo02 0x00075002\n#define kwavLogo03 0x00075004\n#define kwavLogo04 0x00075005\n#define kwavLogo05 0x00075006\n#define kwavLogo06 0x00075007\n#define kwavLogo07 0x00075008\n#define kwavLogo08 0x00075009\n#define kwavLogo09 0x0007500A\n#define kwavLogo0A 0x0007500B\n#define kwavLogo0B 0x0007500C\n#define kwavLogo0C 0x0007500D\n#define kwavLogo11 0x0007500E\n#define kwavLogo12 0x0007500F\n// how to scenes\n#define kwavHTScenes00 0x00075030\n#define kwavHTScenes01 0x00075031\n#define kwavHTScenes02 0x00075032\n#define kwavHTScenes03 0x00075033\n#define kwavHTScenes04 0x00075034\n#define kwavHTScenes05 0x00075035\n#define kwavHTScenes06 0x00075036\n#define kwavHTScenes07 0x00075037\n#define kwavHTScenes08 0x00075038\n#define kwavHTScenes09 0x00075039\n#define kwavHTScenes0A 0x0007503A\n#define kwavHTScenes0B 0x0007503B\n#define kwavHTScenes0C 0x0007503C\n#define kwavHTScenes0D 0x0007503D\n#define kwavHTScenes0E 0x0007503F\n#define kwavHTScenes0F 0x00075040\n#define kwavHTScenes10 0x00075041\n#define kwavHTScenes11 0x00075042\n#define kwavHTScenes12 0x00075043\n#define kwavHTScenes13 0x00075044\n#define kwavHTScenes14 0x00075045\n#define kwavHTScenes15 0x00075046\n#define kwavHTScenes16 0x00075047\n#define kwavHTScenes17 0x00075048\n#define kwavHTScenes18 0x00075049\n#define kwavHTScenes19 0x0007504A\n#define kwavHTScenes1A 0x0007504B\n#define kwavHTScenes1B 0x0007504C\n#define kwavHTScenes1C 0x0007504D\n#define kwavHTScenes1D 0x0007504E\n#define kwavHTScenes1E 0x0007504F\n#define kwavHTScenes1F 0x00075050\n#define kwavHTScenes20 0x00075051\n#define kwavHTScenes21 0x00075052\n#define kwavHTScenes22 0x00075053\n#define kwavHTScenes23 0x00075054\n#define kwavHTScenes24 0x00075055\n#define kwavHTScenes25 0x00075056\n#define kwavHTScenes26 0x00075057\n#define kwavHTScenes27 0x00075058\n#define kwavHTScenes28 0x00075059\n#define kwavHTScenes29 0x0007505A\n#define kwavHTScenes2A 0x0007505B\n#define kwavHTScenes2B 0x0007505C\n#define kwavHTScenes2C 0x0007505D\n#define kwavHTScenes2D 0x0007505E\n#define kwavHTScenes2E 0x0007505F\n#define kwavHTScenes2F 0x00075060\n#define kwavHTScenes30 0x00075061\n#define kwavHTScenes31 0x00075062\n#define kwavHTScenes44 0x00075063\n#define kwavHTScenes45 0x00075064\n#define kwavHTScenes46 0x00075065\n#define kwavHTScenes49 0x00075066\n#define kwavHTScenes51 0x00075067\n#define kwavHTScenes32 0x00075068\n#define kwavHTScenes34 0x00075069\n#define kwavHTScenes35 0x0007506A\n#define kwavHTScenes36 0x0007506B\n#define kwavHTScenes37 0x0007506C\n#define kwavHTScenes38 0x0007506D\n#define kwavHTScenes39 0x0007506E\n#define kwavHTScenes3A 0x0007506F\n#define kwavHTScenes3B 0x00075070\n// guide help68\n#define kwavGuideHelp00 0x00075090\n#define kwavGuideHelp01 0x00075091\n#define kwavGuideHelp02 0x00075092\n#define kwavGuideHelp03 0x00075093\n#define kwavGuideHelp04 0x00075094\n#define kwavGuideHelp05 0x00075095\n#define kwavGuideHelp06 0x00075096\n#define kwavGuideHelp07 0x00075097\n#define kwavGuideHelp08 0x00075098\n#define kwavGuideHelp09 0x00075099\n#define kwavGuideHelp0A 0x0007509A\n#define kwavGuideHelp0B 0x0007509B\n#define kwavGuideHelp0C 0x0007509C\n#define kwavGuideHelp0D 0x0007509D\n#define kwavGuideHelp0E 0x0007509E\n#define kwavGuideHelp0F 0x0007509F\n#define kwavGuideHelp59 0x000750A0\n#define kwavGuideHelp5C 0x000750A1\n#define kwavGuideHelp5D 0x000750A2\n#define kwavGuideHelp10 0x000750A3\n// Project alerts\n#define kwavPrjAlert00 0x000750B0\n#define kwavPrjAlert01 0x000750B1\n#define kwavPrjAlert02 0x000750B2\n#define kwavPrjAlert03 0x000750B3\n#define kwavPrjAlert04 0x000750B4\n#define kwavPrjAlert05 0x000750B5\n// How to alerts\n#define kwavHTAlert00 0x000750C0\n#define kwavHTAlert01 0x000750C1\n#define kwavHTAlert02 0x000750C2\n// Projects Intro\n#define kwavPrjIntro00 0x000750C8\n#define kwavPrjIntro01 0x000750C9\n#define kwavPrjIntro02 0x000750CA\n#define kwavPrjIntro03 0x000750CB\n// How to Actors\n#define kwavHTActors00 0x000750D0\n#define kwavHTActors01 0x000750D1\n#define kwavHTActors02 0x000750D2\n#define kwavHTActors03 0x000750D3\n#define kwavHTActors04 0x000750D4\n#define kwavHTActors05 0x000750D5\n#define kwavHTActors06 0x000750D6\n#define kwavHTActors07 0x000750D7\n#define kwavHTActors08 0x000750D8\n#define kwavHTActors09 0x000750D9\n#define kwavHTActors0A 0x000750DA\n#define kwavHTActors0B 0x000750DB\n#define kwavHTActors0C 0x000750DC\n#define kwavHTActors0D 0x000750DD\n#define kwavHTActors0E 0x000750DE\n#define kwavHTActors0F 0x000750DF\n#define kwavHTActors10 0x000750E0\n#define kwavHTActors11 0x000750E1\n#define kwavHTActors12 0x000750E2\n#define kwavHTActors13 0x000750E3\n#define kwavHTActors14 0x000750E4\n#define kwavHTActors15 0x000750E5\n#define kwavHTActors16 0x000750E6\n#define kwavHTActors17 0x000750E7\n#define kwavHTActors18 0x000750E8\n#define kwavHTActors19 0x000750E9\n#define kwavHTActors1A 0x000750EA\n#define kwavHTActors1B 0x000750EB\n#define kwavHTActors1C 0x000750EC\n#define kwavHTActors1D 0x000750ED\n#define kwavHTActors1E 0x000750EE\n#define kwavHTActors1F 0x000750EF\n#define kwavHTActors20 0x000750F0\n#define kwavHTActors21 0x000750F1\n#define kwavHTActors22 0x000750F2\n#define kwavHTActors23 0x000750F3\n#define kwavHTActors24 0x000750F4\n#define kwavHTActors25 0x000750F5\n#define kwavHTActors26 0x000750F6\n#define kwavHTActors27 0x000750F7\n#define kwavHTActors28 0x000750F8\n#define kwavHTActors29 0x000750F9\n#define kwavHTActors2A 0x000750FA\n#define kwavHTActors2B 0x000750FB\n#define kwavHTActors2C 0x000750FC\n#define kwavHTActors2D 0x000750FD\n#define kwavHTActors2E 0x000750FE\n#define kwavHTActors2F 0x000750FF\n#define kwavHTActors30 0x00075100\n#define kwavHTActors31 0x00075101\n#define kwavHTActors32 0x00075102\n#define kwavHTActors33 0x00075103\n#define kwavHTActors34 0x00075104\n#define kwavHTActors35 0x00075105\n#define kwavHTActors36 0x00075106\n#define kwavHTActors37 0x00075107\n#define kwavHTActors38 0x00075108\n#define kwavHTActors39 0x00075109\n#define kwavHTActors3A 0x0007510A\n#define kwavHTActors3B 0x0007510B\n#define kwavHTActors3C 0x0007510C\n#define kwavHTActors3D 0x0007510D\n#define kwavHTActors3E 0x0007510E\n#define kwavHTActors3F 0x0007510F\n#define kwavHTActors40 0x00075110\n#define kwavHTActors41 0x00075111\n#define kwavHTActors42 0x00075112\n#define kwavHTActors43 0x00075113\n#define kwavHTActors44 0x00075114\n#define kwavHTActors45 0x00075115\n#define kwavHTActors46 0x00075116\n#define kwavHTActors47 0x00075117\n#define kwavHTActors48 0x00075118\n#define kwavHTActors49 0x00075119\n#define kwavHTActors4A 0x0007511A\n#define kwavHTActors4B 0x0007511B\n#define kwavHTActors4C 0x0007511C\n#define kwavHTActors4D 0x0007511D\n#define kwavHTActors4E 0x0007511E\n#define kwavHTActors4F 0x0007511F\n#define kwavHTActors50 0x00075120\n#define kwavHTActors51 0x00075121\n#define kwavHTActors52 0x00075122\n#define kwavHTActors53 0x00075123\n#define kwavHTActors54 0x00075124\n#define kwavHTActors55 0x00075125\n#define kwavHTActors56 0x00075126\n#define kwavHTActors57 0x00075127\n#define kwavHTActors58 0x00075128\n#define kwavHTActors59 0x00075129\n#define kwavHTActors5A 0x0007512A\n#define kwavHTActors5B 0x0007512B\n#define kwavHTActors5C 0x0007512C\n#define kwavHTActors5D 0x0007512D\n#define kwavHTActors5E 0x0007512E\n#define kwavHTActors5F 0x0007512F\n#define kwavHTActors60 0x00075130\n#define kwavHTActors61 0x00075131\n#define kwavHTActors62 0x00075132\n#define kwavHTActors63 0x00075133\n#define kwavHTActors64 0x00075134\n#define kwavHTActors65 0x00075135\n#define kwavHTActors66 0x00075136\n#define kwavHTActors67 0x00075137\n#define kwavHTActors68 0x00075138\n#define kwavHTActors69 0x00075139\n#define kwavHTActors6A 0x0007513A\n#define kwavHTActors6B 0x0007513B\n#define kwavHTActors6C 0x0007513C\n#define kwavHTActors6D 0x0007513D\n#define kwavHTActors6E 0x0007513E\n#define kwavHTActors6F 0x0007513F\n#define kwavHTActors70 0x00075140\n#define kwavHTActors71 0x00075141\n#define kwavHTActors72 0x00075142\n#define kwavHTActors73 0x00075143\n#define kwavHTActors74 0x00075144\n#define kwavHTActors75 0x00075145\n#define kwavHTActors76 0x00075146\n#define kwavHTActors77 0x00075147\n#define kwavHTActors78 0x00075148\n#define kwavHTActors79 0x00075149\n#define kwavHTActors7A 0x0007514A\n#define kwavHTActors7B 0x0007514B\n#define kwavHTActors7C 0x0007514C\n#define kwavHTActors7D 0x0007514D\n#define kwavHTActors7E 0x0007514E\n#define kwavHTActors7F 0x0007514F\n#define kwavHTActors80 0x00075150\n#define kwavHTActors81 0x00075151\n#define kwavHTActors82 0x00075152\n#define kwavHTActors83 0x00075153\n#define kwavHTActors84 0x00075154\n#define kwavHTActors85 0x00075155\n#define kwavHTActors86 0x00075156\n#define kwavHTActors87 0x00075157\n#define kwavHTActors88 0x00075158\n#define kwavHTActors89 0x00075159\n#define kwavHTActors8A 0x0007515A\n#define kwavHTActors8B 0x0007515B\n#define kwavHTActors8C 0x0007515C\n#define kwavHTActors8D 0x0007515D\n#define kwavHTActors8E 0x0007515E\n#define kwavHTActors8F 0x0007515F\n#define kwavHTActors90 0x00075160\n#define kwavHTActors91 0x00075161\n#define kwavHTActors92 0x00075162\n#define kwavHTActors93 0x00075163\n#define kwavHTActors94 0x00075164\n// How to Words\n#define kwavHTWords00 0x00075170\n#define kwavHTWords01 0x00075171\n#define kwavHTWords02 0x00075172\n#define kwavHTWords03 0x00075173\n#define kwavHTWords04 0x00075174\n#define kwavHTWords05 0x00075175\n#define kwavHTWords06 0x00075176\n#define kwavHTWords07 0x00075177\n#define kwavHTWords08 0x00075178\n#define kwavHTWords09 0x00075179\n#define kwavHTWords0A 0x0007517A\n#define kwavHTWords0B 0x0007517B\n#define kwavHTWords0C 0x0007517C\n#define kwavHTWords0D 0x0007517D\n#define kwavHTWords0E 0x0007517E\n#define kwavHTWords0F 0x0007517F\n#define kwavHTWords10 0x00075180\n#define kwavHTWords11 0x00075181\n#define kwavHTWords12 0x00075182\n#define kwavHTWords13 0x00075183\n#define kwavHTWords14 0x00075184\n#define kwavHTWords15 0x00075185\n#define kwavHTWords16 0x00075186\n#define kwavHTWords17 0x00075187\n#define kwavHTWords18 0x00075188\n#define kwavHTWords19 0x00075189\n#define kwavHTWords1A 0x0007518A\n#define kwavHTWords1B 0x0007518B\n#define kwavHTWords1C 0x0007518C\n#define kwavHTWords1D 0x0007518D\n#define kwavHTWords1E 0x0007518E\n#define kwavHTWords1F 0x0007518F\n#define kwavHTWords20 0x00075190\n#define kwavHTWords21 0x00075191\n#define kwavHTWords22 0x00075192\n#define kwavHTWords23 0x00075193\n#define kwavHTWords24 0x00075194\n#define kwavHTWords25 0x00075195\n#define kwavHTWords26 0x00075196\n#define kwavHTWords27 0x00075197\n#define kwavHTWords28 0x00075198\n#define kwavHTWords29 0x00075199\n#define kwavHTWords2A 0x0007519A\n#define kwavHTWords2B 0x0007519B\n#define kwavHTWords2C 0x0007519C\n#define kwavHTWords2D 0x0007519D\n#define kwavHTWords2E 0x0007519E\n#define kwavHTWords2F 0x0007519F\n#define kwavHTWords30 0x000751A0\n#define kwavHTWords31 0x000751A1\n#define kwavHTWords32 0x000751A2\n#define kwavHTWords33 0x000751A3\n#define kwavHTWords34 0x000751A4\n#define kwavHTWords35 0x000751A5\n#define kwavHTWords36 0x000751A6\n#define kwavHTWords37 0x000751A7\n#define kwavHTWords38 0x000751A8\n#define kwavHTWords39 0x000751A9\n#define kwavHTWords3A 0x000751AA\n#define kwavHTWords3B 0x000751AB\n#define kwavHTWords3C 0x000751AC\n#define kwavHTWords3D 0x000751AD\n#define kwavHTWords3E 0x000751AE\n#define kwavHTWords3F 0x000751AF\n#define kwavHTWords40 0x000751B0\n#define kwavHTWords41 0x000751B1\n#define kwavHTWords42 0x000751B2\n#define kwavHTWords43 0x000751B3\n#define kwavHTWords44 0x000751B4\n#define kwavHTWords45 0x000751B5\n#define kwavHTWords46 0x000751B6\n#define kwavHTWords47 0x000751B7\n#define kwavHTWords48 0x000751B8\n#define kwavHTWords49 0x000751B9\n#define kwavHTWords4A 0x000751BA\n#define kwavHTWords50 0x000751BB\n#define kwavHTWords51 0x000751BC\n#define kwavHTWords52 0x000751BD\n#define kwavHTWords64 0x000751BE\n#define kwavHTWords66 0x000751BF\n#define kwavHTWords67 0x000751C0\n// How to Souncs\n#define kwavHTSounds00 0x00075200\n#define kwavHTSounds01 0x00075201\n#define kwavHTSounds02 0x00075202\n#define kwavHTSounds03 0x00075203\n#define kwavHTSounds04 0x00075204\n#define kwavHTSounds05 0x00075205\n#define kwavHTSounds06 0x00075206\n#define kwavHTSounds07 0x00075207\n#define kwavHTSounds08 0x00075208\n#define kwavHTSounds09 0x00075209\n#define kwavHTSounds0A 0x0007520A\n#define kwavHTSounds0B 0x0007520B\n#define kwavHTSounds0C 0x0007520C\n#define kwavHTSounds0D 0x0007520D\n#define kwavHTSounds0E 0x0007520E\n#define kwavHTSounds0F 0x0007520F\n#define kwavHTSounds10 0x00075210\n#define kwavHTSounds11 0x00075211\n#define kwavHTSounds12 0x00075212\n#define kwavHTSounds13 0x00075213\n#define kwavHTSounds14 0x00075214\n#define kwavHTSounds15 0x00075215\n#define kwavHTSounds16 0x00075216\n#define kwavHTSounds17 0x00075217\n#define kwavHTSounds18 0x00075218\n#define kwavHTSounds19 0x00075219\n#define kwavHTSounds1A 0x0007521A\n#define kwavHTSounds1B 0x0007521B\n#define kwavHTSounds1C 0x0007521C\n#define kwavHTSounds1D 0x0007521D\n#define kwavHTSounds1E 0x0007521E\n#define kwavHTSounds1F 0x0007521F\n#define kwavHTSounds20 0x00075220\n#define kwavHTSounds21 0x00075221\n#define kwavHTSounds22 0x00075222\n#define kwavHTSounds23 0x00075223\n#define kwavHTSounds24 0x00075224\n#define kwavHTSounds25 0x00075225\n#define kwavHTSounds26 0x00075226\n#define kwavHTSounds2E 0x00075227\n#define kwavHTSounds44 0x00075228\n#define kwavHTSounds51 0x00075229\n#define kwavHTSounds52 0x0007522A\n#define kwavHTSounds60 0x0007522B\n#define kwavHTSounds61 0x0007522C\n#define kwavHTSounds62 0x0007522D\n#define kwavHTSounds63 0x0007522E\n#define kwavHTSounds69 0x0007522F\n#define kwavHTSounds73 0x00075230\n#define kwavHTSounds74 0x00075231\n#define kwavHTSounds76 0x00075232\n#define kwavHTSounds77 0x00075233\n#define kwavHTSounds27 0x00075234\n#define kwavHTSounds28 0x00075235\n#define kwavHTSounds29 0x00075236\n#define kwavHTSounds2A 0x00075237\n#define kwavHTSounds2C 0x00075238\n#define kwavHTSounds2D 0x00075239\n// Project 3\n#define kwav3Project00 0x00075250\n#define kwav3Project01 0x00075251\n#define kwav3Project02 0x00075252\n#define kwav3Project03 0x00075253\n#define kwav3Project04 0x00075254\n#define kwav3Project05 0x00075255\n#define kwav3Project06 0x00075256\n#define kwav3Project07 0x00075257\n#define kwav3Project08 0x00075258\n#define kwav3Project09 0x00075259\n#define kwav3Project0A 0x0007525A\n#define kwav3Project0B 0x0007525B\n#define kwav3Project0C 0x0007525C\n#define kwav3Project0D 0x0007525D\n#define kwav3Project0E 0x0007525E\n#define kwav3Project0F 0x0007525F\n#define kwav3Project10 0x00075260\n#define kwav3Project11 0x00075261\n#define kwav3Project12 0x00075262\n#define kwav3Project13 0x00075263\n#define kwav3Project14 0x00075264\n#define kwav3Project15 0x00075265\n#define kwav3Project16 0x00075266\n#define kwav3Project17 0x00075267\n#define kwav3Project18 0x00075268\n#define kwav3Project19 0x00075269\n#define kwav3Project1A 0x0007526A\n#define kwav3Project1B 0x0007526B\n#define kwav3Project1C 0x0007526C\n#define kwav3Project1D 0x0007526D\n#define kwav3Project1E 0x0007526E\n#define kwav3Project1F 0x0007526F\n#define kwav3Project20 0x000752A0\n#define kwav3Project21 0x000752A1\n#define kwav3Project22 0x000752A2\n#define kwav3Project23 0x000752A3\n// Project 1\n#define kwav1Project00 0x00075270\n#define kwav1Project01 0x00075271\n#define kwav1Project02 0x00075272\n#define kwav1Project03 0x00075273\n#define kwav1Project04 0x00075274\n#define kwav1Project05 0x00075275\n#define kwav1Project06 0x00075276\n#define kwav1Project07 0x00075277\n#define kwav1Project08 0x00075278\n#define kwav1Project09 0x00075279\n#define kwav1Project0A 0x0007527A\n#define kwav1Project0B 0x0007527B\n#define kwav1Project0C 0x0007527C\n#define kwav1Project0D 0x0007527D\n#define kwav1Project0E 0x0007527E\n#define kwav1Project0F 0x0007527F\n#define kwav1Project10 0x00075280\n#define kwav1Project11 0x00075281\n#define kwav1Project12 0x00075282\n#define kwav1Project13 0x00075283\n#define kwav1Project14 0x00075284\n#define kwav1Project15 0x00075285\n#define kwav1Project16 0x00075286\n#define kwav1Project17 0x00075287\n#define kwav1Project18 0x00075288\n#define kwav1Project19 0x00075289\n#define kwav1Project1A 0x0007528A\n#define kwav1Project1B 0x0007528B\n#define kwav1Project1C 0x0007528C\n#define kwav1Project1D 0x0007528D\n#define kwav1Project1E 0x0007528E\n#define kwav1Project1F 0x0007528F\n#define kwav1Project20 0x00075290\n#define kwav1Project21 0x00075291\n#define kwav1Project22 0x00075292\n#define kwav1Project23 0x00075293\n#define kwav1Project24 0x00075294\n#define kwav1Project25 0x00075295\n#define kwav1Project26 0x00075296\n#define kwav1Project27 0x00075297\n#define kwav1Project28 0x00075298\n#define kwav1Project29 0x00075299\n#define kwav1Project2A 0x0007529A\n#define kwav1Project2B 0x0007529B\n#define kwav1Project2C 0x0007529C\n#define kwav1Project2D 0x0007529D\n#define kwav1Project2E 0x0007529E\n#define kwav1Project2F 0x0007529F\n#define kwav1Project30 0x000752AA\n#define kwav1Project31 0x000752AB\n// Project 2\n#define kwav2Project00 0x000752B0\n#define kwav2Project01 0x000752B1\n#define kwav2Project02 0x000752B2\n#define kwav2Project03 0x000752B3\n#define kwav2Project04 0x000752B4\n#define kwav2Project05 0x000752B5\n#define kwav2Project06 0x000752B6\n#define kwav2Project07 0x000752B7\n#define kwav2Project08 0x000752B8\n#define kwav2Project09 0x000752B9\n#define kwav2Project0A 0x000752BA\n#define kwav2Project0B 0x000752BB\n#define kwav2Project0C 0x000752BC\n#define kwav2Project0D 0x000752BD\n#define kwav2Project0E 0x000752BE\n#define kwav2Project0F 0x000752BF\n#define kwav2Project10 0x000752C0\n#define kwav2Project11 0x000752C1\n#define kwav2Project12 0x000752C2\n#define kwav2Project13 0x000752C3\n#define kwav2Project14 0x000752C4\n#define kwav2Project15 0x000752C5\n#define kwav2Project16 0x000752C6\n#define kwav2Project17 0x000752C7\n#define kwav2Project18 0x000752C8\n#define kwav2Project19 0x000752C9\n#define kwav2Project1A 0x000752CA\n#define kwav2Project1B 0x000752CB\n#define kwav2Project1C 0x000752CC\n#define kwav2Project1D 0x000752CD\n#define kwav2Project1E 0x000752CE\n#define kwav2Project1F 0x000752CF\n#define kwav2Project20 0x000752D0\n#define kwav2Project21 0x000752D1\n#define kwav2Project22 0x000752D2\n#define kwav2Project23 0x000752D3\n#define kwav2Project24 0x000752D4\n#define kwav2Project25 0x000752D5\n#define kwav2Project26 0x000752D6\n#define kwav2Project27 0x000752D7\n#define kwav2Project28 0x000752D8\n#define kwav2Project29 0x000752D9\n#define kwav2Project2A 0x000752DA\n#define kwav2Project2B 0x000752DB\n#define kwav2Project2C 0x000752DC\n#define kwav2Project2D 0x000752DD\n#define kwav2Project2E 0x000752DE\n#define kwav2Project2F 0x000752DF\n#define kwav2Project30 0x000752E0\n// Project 4\n#define kwav4Project00 0x000752F0\n#define kwav4Project01 0x000752F1\n#define kwav4Project02 0x000752F2\n#define kwav4Project03 0x000752F3\n#define kwav4Project04 0x000752F4\n#define kwav4Project05 0x000752F5\n#define kwav4Project06 0x000752F6\n#define kwav4Project07 0x000752F7\n#define kwav4Project08 0x000752F8\n#define kwav4Project09 0x000752F9\n#define kwav4Project0A 0x000752FA\n#define kwav4Project0B 0x000752FB\n#define kwav4Project0C 0x000752FC\n#define kwav4Project0D 0x000752FD\n#define kwav4Project0E 0x000752FE\n#define kwav4Project0F 0x000752FF\n#define kwav4Project10 0x00075300\n#define kwav4Project11 0x00075301\n#define kwav4Project12 0x00075302\n#define kwav4Project13 0x00075303\n#define kwav4Project14 0x00075304\n#define kwav4Project15 0x00075305\n#define kwav4Project16 0x00075306\n#define kwav4Project17 0x00075307\n#define kwav4Project18 0x00075308\n#define kwav4Project19 0x00075309\n#define kwav4Project1A 0x0007530A\n#define kwav4Project1B 0x0007530B\n#define kwav4Project1C 0x0007530C\n#define kwav4Project1D 0x0007530D\n#define kwav4Project1E 0x0007530E\n#define kwav4Project1F 0x0007530F\n#define kwav4Project20 0x00075310\n#define kwav4Project21 0x00075311\n#define kwav4Project22 0x00075312\n#define kwav4Project23 0x00075313\n#define kwav4Project24 0x00075314\n#define kwav4Project25 0x00075315\n#define kwav4Project26 0x00075316\n#define kwav4Project27 0x00075317\n#define kwav4Project28 0x00075318\n#define kwav4Project29 0x00075319\n#define kwav4Project2A 0x0007531A\n#define kwav4Project2B 0x0007531B\n#define kwav4Project2C 0x0007531C\n#define kwav4Project2D 0x0007531D\n#define kwav4Project2E 0x0007531E\n#define kwav4Project2F 0x0007531F\n#define kwav4Project30 0x00075320\n#define kwav4Project31 0x00075321\n#define kwav4Project32 0x00075322\n#define kwav4Project33 0x00075323\n#define kwav4Project34 0x00075324\n#define kwav4Project35 0x00075325\n#define kwav4Project36 0x00075326\n#define kwav4Project37 0x00075327\n#define kwav4Project38 0x00075328\n#define kwav4Project39 0x00075329\n#define kwav4Project3A 0x0007532A\n#define kwav4Project3B 0x0007532B\n#define kwav4Project3C 0x0007532C\n#define kwav4Project3D 0x0007532D\n#define kwav4Project3E 0x0007532E\n#define kwav4Project3F 0x0007532F\n// Project 5\n#define kwav5Project00 0x00075330\n#define kwav5Project01 0x00075331\n#define kwav5Project02 0x00075332\n#define kwav5Project03 0x00075333\n#define kwav5Project04 0x00075334\n#define kwav5Project05 0x00075335\n#define kwav5Project06 0x00075336\n#define kwav5Project07 0x00075337\n#define kwav5Project08 0x00075338\n#define kwav5Project09 0x00075339\n#define kwav5Project0A 0x0007533A\n#define kwav5Project0B 0x0007533B\n#define kwav5Project0C 0x0007533C\n#define kwav5Project0D 0x0007533D\n#define kwav5Project0E 0x0007533E\n#define kwav5Project0F 0x0007533F\n#define kwav5Project10 0x00075340\n#define kwav5Project11 0x00075341\n#define kwav5Project12 0x00075342\n#define kwav5Project13 0x00075343\n#define kwav5Project14 0x00075344\n#define kwav5Project15 0x00075345\n#define kwav5Project16 0x00075346\n#define kwav5Project17 0x00075347\n#define kwav5Project18 0x00075348\n#define kwav5Project19 0x00075349\n#define kwav5Project1A 0x0007534A\n#define kwav5Project1B 0x0007534B\n#define kwav5Project1C 0x0007534C\n#define kwav5Project1D 0x0007534D\n#define kwav5Project1E 0x0007534E\n#define kwav5Project1F 0x0007534F\n#define kwav5Project20 0x00075350\n#define kwav5Project21 0x00075351\n#define kwav5Project22 0x00075352\n#define kwav5Project23 0x00075353\n#define kwav5Project24 0x00075354\n#define kwav5Project25 0x00075355\n#define kwav5Project26 0x00075356\n#define kwav5Project27 0x00075357\n#define kwav5Project28 0x00075358\n#define kwav5Project29 0x00075359\n#define kwav5Project2A 0x0007535A\n#define kwav5Project2B 0x0007535B\n#define kwav5Project2C 0x0007535C\n#define kwav5Project2D 0x0007535D\n#define kwav5Project2E 0x0007535E\n#define kwav5Project2F 0x0007535F\n#define kwav5Project30 0x00075360\n#define kwav5Project31 0x00075361\n#define kwav5Project32 0x00075362\n#define kwav5Project33 0x00075363\n#define kwav5Project34 0x00075364\n#define kwav5Project35 0x00075365\n#define kwav5Project36 0x00075366\n#define kwav5Project37 0x00075367\n#define kwav5Project38 0x00075368\n#define kwav5Project39 0x00075369\n#define kwav5Project3A 0x0007536A\n#define kwav5Project3B 0x0007536B\n#define kwav5Project3C 0x0007536C\n#define kwav5Project3D 0x0007536D\n#define kwav5Project3E 0x0007536E\n#define kwav5Project3F 0x0007536F\n#define kwav5Project40 0x00075370\n#define kwav5Project41 0x00075381\n#define kwav5Project42 0x00075382\n#define kwav5Project43 0x00075383\n#define kwav5Project44 0x00075384\n#define kwav5Project45 0x00075385\n#define kwav5Project46 0x00075386\n#define kwav5Project47 0x00075387\n#define kwav5Project48 0x00075388\n#define kwav5Project49 0x00075389\n#define kwav5Project4A 0x0007538A\n#define kwav5Project4B 0x0007538B\n#define kwav5Project4C 0x0007538C\n#define kwav5Project4D 0x0007538D\n#define kwav5Project4E 0x0007538E\n#define kwav5Project4F 0x0007538F\n#define kwav5Project50 0x00075390\n#define kwav5Project51 0x00075391\n// easel help\n#define kwavEaselHelp00 0x00075400\n#define kwavEaselHelp01 0x00075401\n#define kwavEaselHelp02 0x00075402\n#define kwavEaselHelp03 0x00075403\n#define kwavEaselHelp04 0x00075404\n#define kwavEaselHelp05 0x00075405\n#define kwavEaselHelp06 0x00075406\n#define kwavEaselHelp07 0x00075407\n#define kwavEaselHelp08 0x00075408\n#define kwavEaselHelp09 0x00075409\n#define kwavEaselHelp0A 0x0007540A\n#define kwavEaselHelp0B 0x0007540B\n#define kwavEaselHelp0C 0x0007540C\n#define kwavEaselHelp0D 0x0007540D\n#define kwavEaselHelp0E 0x0007540E\n#define kwavEaselHelp0F 0x0007540F\n#define kwavEaselHelp10 0x00075410\n#define kwavEaselHelp11 0x00075411\n#define kwavEaselHelp12 0x00075412\n#define kwavEaselHelp13 0x00075413\n#define kwavEaselHelp14 0x00075414\n#define kwavEaselHelp15 0x00075415\n#define kwavEaselHelp16 0x00075416\n#define kwavEaselHelp17 0x00075417\n#define kwavEaselHelp18 0x00075418\n#define kwavEaselHelp19 0x00075419\n#define kwavEaselHelp1A 0x0007541A\n#define kwavEaselHelp1B 0x0007541B\n#define kwavEaselHelp1C 0x0007541C\n#define kwavEaselHelp1D 0x0007541D\n#define kwavEaselHelp1E 0x0007541E\n#define kwavEaselHelp1F 0x0007541F\n#define kwavEaselHelp20 0x00075420\n#define kwavEaselHelp21 0x00075421\n#define kwavEaselHelp22 0x00075422\n#define kwavEaselHelp23 0x00075423\n#define kwavEaselHelp24 0x00075424\n#define kwavEaselHelp25 0x00075425\n#define kwavEaselHelp26 0x00075426\n#define kwavEaselHelp27 0x00075427\n#define kwavEaselHelp28 0x00075428\n#define kwavEaselHelp29 0x00075429\n#define kwavEaselHelp2A 0x0007542A\n#define kwavEaselHelp2B 0x0007542B\n#define kwavEaselHelp2C 0x0007542C\n#define kwavEaselHelp2D 0x0007542D\n#define kwavEaselHelp2E 0x0007542E\n#define kwavEaselHelp2F 0x0007542F\n#define kwavEaselHelp30 0x00075430\n#define kwavEaselHelp31 0x00075431\n#define kwavEaselHelp3E 0x00075432\n// project 6\n#define kwav6Project00 0x00075440\n#define kwav6Project01 0x00075441\n#define kwav6Project02 0x00075442\n#define kwav6Project03 0x00075443\n#define kwav6Project04 0x00075444\n#define kwav6Project05 0x00075445\n#define kwav6Project06 0x00075446\n#define kwav6Project07 0x00075447\n#define kwav6Project08 0x00075448\n#define kwav6Project09 0x00075449\n#define kwav6Project0A 0x0007544A\n#define kwav6Project0B 0x0007544B\n#define kwav6Project0C 0x0007544C\n#define kwav6Project0D 0x0007544D\n#define kwav6Project0E 0x0007544E\n#define kwav6Project0F 0x0007544F\n#define kwav6Project10 0x00075450\n#define kwav6Project11 0x00075451\n#define kwav6Project12 0x00075452\n#define kwav6Project13 0x00075453\n#define kwav6Project14 0x00075454\n#define kwav6Project15 0x00075455\n#define kwav6Project16 0x00075456\n#define kwav6Project17 0x00075457\n#define kwav6Project18 0x00075458\n#define kwav6Project19 0x00075459\n#define kwav6Project1A 0x0007545A\n#define kwav6Project1B 0x0007545B\n#define kwav6Project1C 0x0007545C\n#define kwav6Project1D 0x0007545D\n#define kwav6Project1E 0x0007545E\n#define kwav6Project1F 0x0007545F\n#define kwav6Project20 0x00075460\n#define kwav6Project21 0x00075461\n#define kwav6Project22 0x00075462\n#define kwav6Project23 0x00075463\n#define kwav6Project24 0x00075464\n#define kwav6Project25 0x00075465\n#define kwav6Project26 0x00075466\n#define kwav6Project27 0x00075467\n#define kwav6Project28 0x00075468\n#define kwav6Project29 0x00075469\n#define kwav6Project2A 0x0007546A\n#define kwav6Project2B 0x0007546B\n#define kwav6Project2C 0x0007546C\n#define kwav6Project2D 0x0007546D\n#define kwav6Project4F 0x0007546E\n// help book basics\n#define kwavBasics00 0x00075480\n#define kwavBasics01 0x00075481\n#define kwavBasics02 0x00075482\n#define kwavBasics03 0x00075483\n#define kwavBasics04 0x00075484\n#define kwavBasics05 0x00075485\n#define kwavBasics06 0x00075486\n#define kwavBasics07 0x00075487\n#define kwavBasics08 0x00075488\n#define kwavBasics09 0x00075489\n#define kwavBasics0A 0x0007548A\n#define kwavBasics0B 0x0007548B\n#define kwavBasics0C 0x0007548C\n#define kwavBasics0D 0x0007548D\n#define kwavBasics0E 0x0007548E\n#define kwavBasics0F 0x0007548F\n#define kwavBasics10 0x00075490\n// toolhelp waves\n#define kwavToolHelp00 0x00075500\n#define kwavToolHelp01 0x00075501\n#define kwavToolHelp02 0x00075502\n#define kwavToolHelp03 0x00075503\n#define kwavToolHelp04 0x00075504\n#define kwavToolHelp05 0x00075505\n#define kwavToolHelp06 0x00075506\n#define kwavToolHelp07 0x00075507\n#define kwavToolHelp08 0x00075508\n#define kwavToolHelp09 0x00075509\n#define kwavToolHelp0A 0x0007550A\n#define kwavToolHelp0B 0x0007550B\n#define kwavToolHelp0C 0x0007550C\n#define kwavToolHelp0D 0x0007550D\n#define kwavToolHelp0E 0x0007550E\n#define kwavToolHelp0F 0x0007550F\n#define kwavToolHelp10 0x00075510\n#define kwavToolHelp11 0x00075511\n#define kwavToolHelp12 0x00075512\n#define kwavToolHelp13 0x00075513\n#define kwavToolHelp14 0x00075514\n#define kwavToolHelp15 0x00075515\n#define kwavToolHelp16 0x00075516\n#define kwavToolHelp17 0x00075517\n#define kwavToolHelp18 0x00075518\n#define kwavToolHelp19 0x00075519\n#define kwavToolHelp1A 0x0007551A\n#define kwavToolHelp1B 0x0007551B\n#define kwavToolHelp1C 0x0007551C\n#define kwavToolHelp1D 0x0007551D\n#define kwavToolHelp1E 0x0007551E\n#define kwavToolHelp1F 0x0007551F\n#define kwavToolHelp20 0x00075520\n#define kwavToolHelp21 0x00075521\n#define kwavToolHelp22 0x00075522\n#define kwavToolHelp23 0x00075523\n#define kwavToolHelp24 0x00075524\n#define kwavToolHelp25 0x00075525\n#define kwavToolHelp26 0x00075526\n#define kwavToolHelp27 0x00075527\n#define kwavToolHelp28 0x00075528\n#define kwavToolHelp29 0x00075529\n#define kwavToolHelp2A 0x0007552A\n#define kwavToolHelp2B 0x0007552B\n#define kwavToolHelp2C 0x0007552C\n#define kwavToolHelp2D 0x0007552D\n#define kwavToolHelp2E 0x0007552E\n#define kwavToolHelp2F 0x0007552F\n#define kwavToolHelp30 0x00075530\n#define kwavToolHelp31 0x00075531\n#define kwavToolHelp32 0x00075532\n#define kwavToolHelp33 0x00075533\n#define kwavToolHelp34 0x00075534\n#define kwavToolHelp35 0x00075535\n#define kwavToolHelp36 0x00075536\n#define kwavToolHelp37 0x00075537\n#define kwavToolHelp38 0x00075538\n#define kwavToolHelp39 0x00075539\n#define kwavToolHelp3A 0x0007553A\n#define kwavToolHelp3B 0x0007553B\n#define kwavToolHelp3C 0x0007553C\n#define kwavToolHelp3D 0x0007553D\n#define kwavToolHelp3E 0x0007553E\n#define kwavToolHelp3F 0x0007553F\n#define kwavToolHelp40 0x00075540\n#define kwavToolHelp41 0x00075541\n#define kwavToolHelp42 0x00075542\n#define kwavToolHelp43 0x00075543\n#define kwavToolHelp47 0x00075547\n#define kwavToolHelp48 0x00075548\n#define kwavToolHelp7B 0x00075549\n// project tool tips\n#define kwavPrjTips00 0x00075550\n#define kwavPrjTips01 0x00075551\n#define kwavPrjTips02 0x00075552\n#define kwavPrjTips03 0x00075553\n#define kwavPrjTips04 0x00075554\n#define kwavPrjTips05 0x00075555\n#define kwavPrjTips06 0x00075556\n#define kwavPrjTips07 0x00075557\n// tooltips\n#define kwavToolTips00 0x00076000\n#define kwavToolTips01 0x00076001\n#define kwavToolTips02 0x00076002\n#define kwavToolTips03 0x00076003\n#define kwavToolTips04 0x00076004\n#define kwavToolTips05 0x00076005\n#define kwavToolTips06 0x00076006\n#define kwavToolTips07 0x00076007\n#define kwavToolTips08 0x00076008\n#define kwavToolTips09 0x00076009\n#define kwavToolTips0A 0x0007600A\n#define kwavToolTips0B 0x0007600B\n#define kwavToolTips0C 0x0007600C\n#define kwavToolTips0D 0x0007600D\n#define kwavToolTips0E 0x0007600E\n#define kwavToolTips0F 0x0007600F\n#define kwavToolTips10 0x00076010\n#define kwavToolTips11 0x00076011\n#define kwavToolTips12 0x00076012\n#define kwavToolTips13 0x00076013\n#define kwavToolTips14 0x00076014\n#define kwavToolTips15 0x00076015\n#define kwavToolTips16 0x00076016\n#define kwavToolTips17 0x00076017\n#define kwavToolTips18 0x00076018\n#define kwavToolTips19 0x00076019\n#define kwavToolTips1A 0x0007601A\n#define kwavToolTips1B 0x0007601B\n#define kwavToolTips1C 0x0007601C\n#define kwavToolTips1D 0x0007601D\n#define kwavToolTips1E 0x0007601E\n#define kwavToolTips1F 0x0007601F\n#define kwavToolTips20 0x00076020\n#define kwavToolTips21 0x00076021\n#define kwavToolTips22 0x00076022\n#define kwavToolTips23 0x00076023\n#define kwavToolTips24 0x00076024\n#define kwavToolTips25 0x00076025\n#define kwavToolTips26 0x00076026\n#define kwavToolTips27 0x00076027\n#define kwavToolTips28 0x00076028\n#define kwavToolTips29 0x00076029\n#define kwavToolTips2A 0x0007602A\n#define kwavToolTips2B 0x0007602B\n#define kwavToolTips2C 0x0007602C\n#define kwavToolTips2D 0x0007602D\n#define kwavToolTips2E 0x0007602E\n#define kwavToolTips2F 0x0007602F\n#define kwavToolTips30 0x00076030\n#define kwavToolTips31 0x00076031\n#define kwavToolTips32 0x00076032\n#define kwavToolTips33 0x00076033\n#define kwavToolTips34 0x00076034\n#define kwavToolTips35 0x00076035\n#define kwavToolTips36 0x00076036\n#define kwavToolTips37 0x00076037\n#define kwavToolTips38 0x00076038\n#define kwavToolTips39 0x00076039\n#define kwavToolTips3A 0x0007603A\n#define kwavToolTips3B 0x0007603B\n#define kwavToolTips3C 0x0007603C\n#define kwavToolTips3D 0x0007603D\n#define kwavToolTips3E 0x0007603E\n#define kwavToolTips3F 0x0007603F\n#define kwavToolTips40 0x00076040\n#define kwavToolTips41 0x00076041\n#define kwavToolTips42 0x00076042\n#define kwavToolTips43 0x00076043\n#define kwavToolTips44 0x00076044\n#define kwavToolTips45 0x00076045\n#define kwavToolTips46 0x00076046\n#define kwavToolTips47 0x00076047\n#define kwavToolTips48 0x00076048\n#define kwavToolTips49 0x00076049\n#define kwavToolTips52 0x0007604A\n#define kwavToolTips53 0x0007604B\n#define kwavToolTips54 0x0007604C\n#define kwavToolTips55 0x0007604D\n#define kwavToolTips56 0x0007604E\n#define kwavToolTips57 0x0007604F\n#define kwavToolTips58 0x00076050\n#define kwavToolTips59 0x00076051\n#define kwavToolTips5A 0x00076052\n#define kwavToolTips5B 0x00076053\n#define kwavToolTips5C 0x00076054\n#define kwavToolTips5D 0x00076055\n#define kwavToolTips5E 0x00076056\n// for help book tooltips\n#define kwavHelpBook1 0x00076057\n#define kwavHelpBook2 0x00076058\n#define kwavHelpBook3 0x00076059\n#define kwavHelpBook4 0x0007605A\n#define kwavHelpBook5 0x0007605B\n\n// help book defines\n// help book labels - these are help topics\n#define labBookTOC 0x00012180\n#define labBookBasics 0x00012181\n#define labBookHowTo 0x00012182\n#define labBookTools 0x00012183\n#define labBookTips 0x00012184\n#define labBookHowTo1 0x00012185\n#define labBookHowTo2 0x00012186\n#define labBookHowTo3 0x00012187\n#define labBookHowTo4 0x00012188\n#define labBookHowTo5 0x00012189\n#define labBookHowTo6 0x0001218a\n\n// titles for the sections of the help book - these are help topics\n#define tpcTitle1 0x000121a0\n#define tpcTitle2 0x000121a1\n#define tpcTitle3 0x000121a2\n#define tpcTitle4 0x000121a3\n#define tpcTitle5 0x000121a4\n#define tpcTitle6 0x000121a5\n#define tpcTitle7 0x000121a6\n#define tpcTitle8 0x000121a7\n#define tpcTitle9 0x000121a8\n#define tpcTitle10 0x000121a9\n#define tpcPageNumber 0x000121aa\n#define tpcTitle9a 0x000121ab\n#define tpcTitle9b 0x000121ac\n#define tpcTitle9c 0x000121ad\n#define tpcTitle9d 0x000121ae\n\n// rollover tooltips for the help book + controls - help topics\n#define ttBookCancel 0x0001703b\n#define ttBookPageFwd 0x0001703c\n#define ttBookPageBack 0x0001703d\n#define ttBookVolume 0x0001703e\n#define ttBookVoice 0x0001703f\n// rollover tooltips for the gadget\n#define ttVolumeControl 0x00017033\n#define ttNextMovie 0x00017034\n#define ttPreviousMovie 0x00017035\n#define ttPlayButton 0x00017036\n#define ttHowButton 0x00017037\n#define ttCloseButton 0x00017038\n#define ttMelanieOnOff 0x00017039\n#define ttWhyButton 0x0001703a\n\n// Definitions for the help book pages, MUST BE SEQUENTIAL!!!\n#define ktpcBook1TOC 0x20000105\n\n#define ktpcBook2Basics 0x20000106\n#define ktpcBook2Basics2 0x20000107\n\n#define ktpcBook3HowTo1 0x20000108\n#define ktpcBook3HowTo2 0x20000109\n#define ktpcBook4HowTo1 0x2000010a\n#define ktpcBook4HowTo2 0x2000010b\n#define ktpcBook4HowTo3 0x2000010c\n#define ktpcBook4HowTo4 0x2000010d\n#define ktpcBook5HowTo1 0x2000010e\n#define ktpcBook6HowTo1 0x2000010f\n#define ktpcBook6HowTo2 0x20000110\n#define ktpcBook6HowTo3 0x20000111\n#define ktpcBook7HowTo1 0x20000112\n#define ktpcBook7HowTo2 0x20000113\n#define ktpcBook7HowTo3 0x20000114\n#define ktpcBook8HowTo1 0x20000115\n#define ktpcBook8HowTo2 0x20000116\n#define ktpcBook8HowTo3 0x20000117\n#define ktpcBook8HowTo4 0x20000118\n#define ktpcBookSceneTools1 0x20000119\n#define ktpcBookActorTools1 0x2000011a\n#define ktpcBookActorTools2 0x2000011b\n#define ktpcBookActorTools3 0x2000011c\n#define ktpcBookActorTools4 0x2000011d\n#define ktpcBookActorTools5 0x2000011e\n#define ktpcBookSoundTools1 0x2000011f\n#define ktpcBookSoundTools2 0x20000120\n#define ktpcBookWordTools1 0x20000121\n#define ktpcBookWordTools2 0x20000122\n#define ktpcBookWordTools3 0x20000123\n#define ktpcBookMasterTools1 0x20000124\n#define ktpcBookMasterTools2 0x20000125\n#define ktpcBookMasterTools3 0x20000126\n#define ktpcBookMasterTools4 0x20000127\n#define ktpcBookMasterTools5 0x20000128\n#define ktpcBookMasterTools6 0x20000129\n#define ktpcBook10Tips 0x2000012a\n#define ktpcBook10Tips2 0x2000012b\n#define ktpcBook10Tips3 0x2000012c\n#define ktpcBook10Tips4 0x2000012d\n#define ktpcBook10Tips5 0x2000012e\n#define ktpcBook10Tips6 0x2000012f\n#define ktpcBook10Tips9 0x20000130\n#define ktpcBook10Tips10 0x20000131\n#define ktpcBook10Tips11 0x20000132\n#define ktpcBook10Tips13 0x20000133\n#define ktpcBook10Tips14 0x20000134\n#define ktpcBook10Tips15 0x20000135\n#define ktpcBook10Tips16 0x20000136\n#define ktpcBook10Tips17 0x20000137\n#define ktpcBook10Tips18 0x20000138\n\n// define first and last topics in book\n#define ktpcBookStart ktpcBook1TOC\n#define ktpcBookEnd ktpcBook10Tips18\n\n// help topic ids\n#define thCameraAngles 0x00017040\n#define thSceneChoices 0x00017041\n#define thSceneOrganizer 0x00017042\n#define thSceneSlider 0x00017043\n#define thNew 0x00017044\n#define thActors 0x00017045\n#define thOpen 0x00017046\n#define thProps 0x00017047\n#define thLivingWords 0x00017048\n#define thCostumeChanger 0x00017049\n#define thSizeTools 0x0001704a\n#define thSizeEvenly 0x0001704b\n#define thSquashStretch 0x0001704c\n#define thChangeBackSize 0x0001704d\n#define thRotateTools 0x0001704e\n#define thTurnLeftRight 0x0001704f\n#define thTipForwardsBackwards 0x00017050\n#define thTipSideToSide 0x00017051\n#define thChangeBackRotate 0x00017052\n#define thSynchronize 0x00017053\n#define thReposition 0x00017054\n#define thSelect 0x00017055\n#define thActions 0x00017056\n#define thRecordSameAction 0x00017057\n#define thReplacePartofPath 0x00017058\n#define thFallThroughGround 0x00017059\n#define thUpandDown 0x0001705a\n#define thTalentBook 0x0001705b\n#define thActorList 0x0001705c\n#define thPropList 0x0001705d\n#define thSave 0x0001705e\n#define thSoundEffects 0x0001705f\n#define thSpeech 0x00017060\n#define thMusic 0x00017061\n#define thPlayOneTime 0x00017062\n#define thPlayAgainAgain 0x00017063\n#define thActionMatcher 0x00017064\n#define thListener 0x00017065\n#define thSaveAs 0x00017066\n#define thWordBox 0x00017067\n#define thInsertion_Point 0x00017068\n#define thLetters 0x00017069\n#define thStyles 0x0001706a\n#define thLetterSize 0x0001706b\n#define thLetterColor 0x0001706c\n#define thBackground_Color 0x0001706d\n#define thScrolling_NonScrolling 0x0001706e\n#define thScrolling 0x0001706f\n#define thStory 0x00017070\n#define thFrameSlider 0x00017071\n#define thWaitUntilMouseClick 0x00017072\n#define thWaitUntilSound 0x00017073\n#define thDontWait 0x00017074\n#define thPlayStop 0x00017075\n#define thVolumeControl 0x00017076\n#define thUndoRedo 0x00017077\n#define thCutCopyPaste 0x00017078\n#define thGetRidofEverythingBefore 0x00017079\n#define thGetRidofEverythingAfter 0x0001707a\n#define thGetRidEntireScene 0x0001707b\n#define thGetRid3DObject 0x0001707c\n#define thGetRidWordBox 0x0001707d\n#define thCopyPath 0x0001707e\n#define thPaste 0x0001707f\n#define thCopy 0x00017080\n#define thCut 0x00017081\n#define thPortfolio 0x00017082\n#define thExit 0x00017083\n#define Tip___Undo 0x00017084\n#define Def___frame 0x00017085\n#define Tip___Change_Camera_Angle 0x00017086\n#define thHelp 0x00017087\n#define thMap 0x00017088\n#define Tip___Moving_Scene_to_Scene 0x00017089\n#define Key___New 0x0001708a\n#define Tip___Reposition 0x0001708b\n#define Tip___Animating 0x0001708c\n#define Key___Open 0x0001708d\n#define Def___Size_Tools 0x0001708e\n#define Def___Rotate_Tools 0x0001708f\n#define Def___drag 0x00017090\n#define Def___Drag 0x00017091\n#define Def___Go_to_the_place 0x00017092\n#define Def___rewind 0x00017093\n#define Def___Play_button 0x00017094\n#define Tip___Reposition_One_Frame 0x00017095\n#define Tip___Select_Object_Behind 0x00017096\n#define Tip___Select_Object_Out_of_View 0x00017097\n#define Tip___Change_Starting_Position 0x00017098\n#define Tip___Freezing_an_Action 0x00017099\n#define Def___Turn_on 0x0001709a\n#define Key___Replace_Part_Path 0x0001709b\n#define Tip___Move_Near_Far_Up 0x0001709c\n#define Tip___Move_Near_Far_Down 0x0001709d\n#define Key___Up_Down 0x0001709e\n#define Key___Save 0x0001709f\n#define Tip___Play_continuously 0x000170a0\n#define Tip___Attach_Action 0x000170a1\n#define Tip___Remove_Sound 0x000170a2\n#define Tip___Pause_Sound 0x000170a3\n#define Tip___Pause_Click 0x000170a4\n#define Tip___Typing_hints 0x000170a5\n#define Tip___Remove_word_box 0x000170a6\n#define Def___scroll 0x000170a7\n#define Tip___Remove_pause 0x000170a8\n#define Tip___Individual_Sounds 0x000170a9\n#define Key___Undo 0x000170aa\n#define Def___Cut_Copy_Paste 0x000170ab\n#define Def___Move_to_scene 0x000170ac\n#define Tip___Moving_around 0x000170ad\n#define Key___Paste 0x000170ae\n#define Tip___Copy_until_end_of_scene 0x000170af\n#define Tip___Cut_until_end_of_scene 0x000170b0\n#define Key___Exit 0x000170b1\n#define Key___Help 0x000170b2\n#define Tip___Stop_sound 0x000170b3\n#define Def___Choose_sound 0x000170b4\n#define Def___portfolio 0x000170b5\n#define Tip___How_many_sounds 0x000170b6\n#define Tip___Chaining_sounds 0x000170b7\n#define Def___Import 0x000170b8\n#define Def___transitions 0x000170b9\n#define Tip___Reposition_Entire_Path 0x000170ba\n#define thNonScrolling 0x000170bb\n#define Tip___Move_Up_or_Down_3 0x000170bc\n#define Tip___Path_through_ground 0x000170bd\n#define thRemoveSound 0x000170be\n#define Tip___Change_direction 0x00017bf\n#define Tip___Add_frames 0x00017c0\n#define Key___Map 0x00017c1\n#define Tip___Making_words_scroll 0x00017c2\n// nonfound stuff\n#define thMouseClick 0x000170c4\n#define GetRidWordBox 0x000170c5\n#define HT_ChooseFirstScene1 0x000170c6\n#define HT_AssignAction1 0x000170c7\n#define HT_ChooseActor1 0x000170c8\n\n#endif // !HELPTOPS_H\n"
  },
  {
    "path": "inc/kidgs.chh",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// Module: KIDGS.CHH\n//\n// Purpose:   Cool defines for making chomp text into something readable\n//\n// Comments:\n//\n// #define the following to turn this stuff ON or OFF\n//\n// PACKALL  --> pack all files\n// NONAMES      --> don't put names in for chunks defined using these macros\n// SKIP --> kidspace animations eg. OBJECT()'s --- will slip if this is defined\n//\n//\n\n#ifndef KIDSGS_CHH\n#define KIDSGS_CHH\n\n#include \"assert.chh\"\n#include \"kidgsdef.h\"\n\n// ------ -------- ------ -------- ------ -------- ------ --------\n#ifdef PACKALL\n\t#define __PACK  PACK\n#else\n\t#define __PACK\n#endif\n\n// ------ -------- ------ -------- ------ -------- ------ --------\n#ifdef NAMES\n\t#define __NAME(x)  x\n#else\n\t#define __NAME(...)\n#endif\n\n\n// ------ -------- ------ -------- ------ -------- ------ --------\n#ifdef DEBUG\n\t#define Debug(x) x\n#else\n\t#define Debug(x)\n#endif\n\n// ------ -------- ------ -------- ------ -------- ------ --------\n#ifndef fTrue\n\t#define fTrue 1\n#endif\n\n// ------ -------- ------ -------- ------ -------- ------ --------\n#ifndef fFalse\n\t#define fFalse 0\n#endif\n\n\n// ---------------------------------------------------------\n// the following chids get affected by the state the gob is in\n// the default state for a gob is 1  which means chids\n// not referenced in the CUME are determined as follows:\n// hiword = state  loword = chid\n//\n// e.g. for a mouse rollon in state 2  KAUAI looks at chid\n//  0x000200011 (0x0002=state  0x0011 = rollon)\n// ---------------------------------------------------------\n// The following are relative chids  ie. the state is the highword\n// combine these with the state defn's to make the real chid\n// ---------------------------------------------------------\n\n#define kchidCreate                             0x0000\n#define kchidClick                              0x0001\n\n// Mouse tracking button states/ representations\n#define krepDefault             kchidUpOff\n#define krepMouseUpOff          kchidUpOff\n#define krepMouseUpOn           kchidUpOn\n#define krepMouseDnOff          kchidDownOff\n#define krepMouseDnOn           kchidDownOn\n\n#define krepEnterAnimation      kchidTransBase\n#define krepRollOn              kchidUpOffOn\n#define krepRollOff             kchidUpOnOff\n#define krepMouseDn             kchidUpDownOn\n#define krepClicked             kchidDownUpOn\n#define krepDragOff             kchidDownOnOff\n#define krepDragOn              kchidDownOffOn\n#define krepDrop                kchidDownUpOff\n\n\n// ---------------------------------------------------------\n// the following are bit masks for the CUME entry\n// ---------------------------------------------------------\n#define fgrfstNil                               0x00000001\n#define fgrfst1                                 0x00000002\n#define fgrfst2                                 0x00000004\n#define fgrfst3                                 0x00000008\n#define fgrfst4                                 0x00000010\n#define fgrfst5                                 0x00000020\n#define fgrfst6                                 0x00000040\n#define fgrfst7                                 0x00000080\n#define fgrfst8                                 0x00000100\n#define fgrfst9                                 0x00000200\n#define fgrfst10                                0x00000400\n#define fgrfst11                                0x00000800\n#define fgrfst12                                0x00001000\n#define fgrfst13                                0x00002000\n#define fgrfst14                                0x00004000\n#define fgrfst15                                0x00008000\n#define fgrfst16                                0x00010000\n#define fgrfst17                                0x00020000\n#define fgrfst18                                0x00040000\n#define fgrfst19                                0x00080000\n#define fgrfst20                                0x00100000\n#define fgrfst21                                0x00200000\n#define fgrfst22                                0x00400000\n#define fgrfst23                                0x00800000\n#define fgrfst24                                0x01000000\n#define fgrfst25                                0x02000000\n#define fgrfst26                                0x04000000\n#define fgrfst27                                0x08000000\n#define fgrfst28                                0x10000000\n#define fgrfst29                                0x20000000\n#define fgrfst30                                0x40000000\n#define fgrfst31                                0x80000000\n\n#define fgrfstAll                               0xffffffff\n#define fgrfstNone                              0x00000000\n\n\n// \"types\" of Gobs\n\n#define kgokkNormal                             gokkNil\n#define kgokkRectHit                    gokkRectangle\n#if (gokkRectangle | gokkNoHitThis) == 3\n#define kgokkRectNoHit          3\n#else\n#error Can't define kgokkRectNoHit\n#endif\n#if (gokkRectangle | gokkNoHitKids) == 5\n#define kgokkRectNoKids          5\n#else\n#error Can't define kgokkRectNoKids\n#endif\n\n// the following is the type used for GOKD's created with OBJECT() macros\n\n\n\n\n// ---------------------------------------------------------\n// Macro required to initialize variables and stuff.\n//  --- these parms _df* are used to provide unique cno's\n//      for various classes of chunks  eg. _dfmbmp for MBMP\n// ---------------------------------------------------------\n#define STARTCHUNKY \\\n\tSET _dfmbmp = 10 \\\n\tSET _dfscr = 10 \\\n\tSET _dfanm = 10 \\\n\tSET _dffill = 10 \\\n\tSET _curgok = 10 \\\n\tSET _dfmask = 10 \\\n\tSET _dftile = 10 \\\n\tSET _dfwave = 10 \\\n\tSET _dfmidi = 10 \\\n\tSET _dfvid  = 10\n\n#define STARTCHUNKS(x) \\\n\tSET _dfmbmp = x \\\n\tSET _dfscr = x \\\n\tSET _dfanm = x \\\n\tSET _dffill = x \\\n\tSET _curgok = x \\\n\tSET _dfmask = x \\\n\tSET _dftile = x \\\n\tSET _dfwave = x \\\n\tSET _dfmidi = x \\\n\tSET _dfvid  = x\n\n\n// safe macros to access name of \"last\" XXXX created\n#define LAST_MBMP       _dfmbmp\n#define LAST_SCRIPT     _dfscr\n#define LAST_ANIM       _dfanm\n#define LAST_FILL       _dffill\n#define LAST_GOKD       _curgok\n#define LAST_MASK       _dfmask\n#define LAST_TILE       _dftile\n#define LAST_WAVE       _dfwave\n#define LAST_MIDI       _dfmidi\n#define LAST_VIDEO      _dfvid\n\n\n\n\n\n// ---------------------------------------------------------\n// The following are for defining standalone chunks  ie.\n// not dependent or adopted to the previous GOKD\n// ---------------------------------------------------------\n#define SCRIPTCHUNK( _szName,  _cno )   \\\n\tCHUNK( kctgScript,  _cno, __NAME(_szName ) ) \\\n\t\tSCRIPT\n\n#define MBMPCHUNK(  _szFilename,  _cno,  _iTrans,  _xpReg,  _ypReg ) \\\n    CHUNK( kctgMbmp,  _cno,  __NAME(_szFilename ) ) \\\n\t\t__PACK \\\n\t\tBITMAP( _iTrans,  _xpReg, _ypReg ) _szFilename \\\n\tENDCHUNK\n\n#define PALETTECHUNK( _szName,  _cno,  _szFilename ) \\\n    CHUNK( kctgColorTable,  _cno,  __NAME( _szName ) ) \\\n\t\t__PACK \\\n\t\tPALETTE _szFilename \\\n    ENDCHUNK\n\n#define TILECHUNK( _szName,  _cno ) \\\n\tCHUNK( kctgTile,  _cno,  __NAME( _szName ))  \\\n\t\t__PACK \\\n\t\tSHORT BO OSK\n\n#define TILEDEF( _dzpLeftBorder,  _dzpRightBorder,  _dzpLeft,  _dzpLeftFlex, _dzpLeftInc,  \\\n\t\t\t\t _dzpMid,  _dzpRightFlex,  _dzpRightInc,  _dzpRight ) \\\n\tSHORT _dzpLeftBorder _dzpRightBorder _dzpLeft _dzpLeftFlex _dzpLeftInc \\\n\t\t  _dzpMid _dzpRightFlex _dzpRightInc _dzpRight\n\n#define CURSORCHUNK( _szFilename,  _cno) \\\n\t CHUNK( kctgCursor,  _cno,  __NAME( _szFilename )) \\\n\t\t__PACK \\\n\t\tCURSOR _szFilename \\\n\t ENDCHUNK\n\n#define FILLCHUNK( _szName, _chid, _xpLeft, _ypTop, _xpRight, _ypBottom, _kacrFore, _kacrBack )  \\\n\tSET _dffill++ \\\n\tCHUNK( kctgFill,  _dffill,  __NAME( _szName )) \\\n\t\t__PACK \\\n\t\tLONG BO OSK _xpLeft _ypTop _xpRight _ypBottom \\\n\t\tLONG _kacrFore _kacrBack\n\n#define PATTERN( _b1, _b2, _b3, _b4, _b5, _b6, _b7,  _b8 ) \\\n\t\tBYTE MacWin(_b1 _b2 _b3 _b4 _b5 _b6 _b7 _b8, \\\n\t\t\t\t    _b4 _b3 _b2 _b1 _b8 _b7 _b6 _b5)\n\n// ---------------------------------------------------------\n// some useful patterns\n// ---------------------------------------------------------\n#define PATTERN_SOLID   PATTERN(0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff)\n#define PATTERN_BLANK   PATTERN(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)\n#define PATTERN_100     PATTERN(0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff)\n#define PATTERN_75              PATTERN(0xbb, 0xee, 0xbb, 0xee, 0xbb, 0xee, 0xbb, 0xee)\n#define PATTERN_50              PATTERN(0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55)\n#define PATTERN_50X             PATTERN(0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa )\n#define PATTERN_25              PATTERN(0xcc, 0xcc, 0x33, 0x33, 0xcc, 0xcc, 0x33, 0x33)\n#define PATTERN_0               PATTERN(0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00)\n\n#define HELP_SCRIPT( _cno ) \\\n\tCHUNK( kctgScript,  _cno,  __NAME( #_cno ))\\\n\t\tSCRIPT\n\n\n\n// ---------------------------------------------------------\n// usage: GOBCHUNK(..)\n//                      { POSITION }...\n//                      DEFAULT_POSITION\n//                      { ACTION }...\n//                ENDCHUNK\n// ---------------------------------------------------------\n#define GOBCHUNK( _szName,  _cno,  _kgokk ) \\\n\tSET _curgok = _cno \\\n\tCHUNK( kctgGokd,  _cno, __NAME( _szName ))  \\\n\t\t__PACK \\\n\t\tSHORT BO OSK LONG _kgokk\n\n\n// ---------------------------------------------------------\n// the following define positioning info for a GOB\n// Note: DEFAULT_POSITION is required.\n// ---------------------------------------------------------\n#define POSITION( _kidPar,  _xp,  _yp,  _zp ) \\\n\tLONG _kidPar _xp _yp _zp\n\n#define DEFAULT_POSITION( _xp,  _yp,  _zp ) \\\n    LONG kidNil _xp _yp _zp\n\n// ---------------------------------------------------------\n// the following is used in a GOKD to map the modifier keys\n// global state   button state to cursor  tooltip id  script\n// chid and/or command id (CID) to post.  Whew!\n// ---------------------------------------------------------\n#define ACTION( _grfcustMask,  _grfcust,  _grfState,  _cnoCrs,  _chidScript,  _cid,  _cnoTopic ) \\\n\tLONG _grfcustMask _grfcust _grfState _cnoCrs _chidScript _cid _cnoTopic\n\n#define ACTION_NOTHING( _cnoCrs ) \\\n\tACTION( fcustNil, fcustNil, fgrfstAll, _cnoCrs, chidNil, cidNil, cnoNil )\n\n#define ACTION_CLICKSCRIPT( _cnoCrs ) \\\n\tACTION( fcustNil, fcustNil, fgrfstAll, _cnoCrs, kchidClick, cidNil, cnoNil )\n\n\n// ---------------------------------------------------------\n// constants for color fills and any other color references\n// ---------------------------------------------------------\n#define Transparent             0xffffffff\n#define Palette( _i )           BYTE MacWin( 0xfe 0 0 _i,  _i 0 0 0xfe ) LONG\n#define Invert                          BYTE MacWin( 0x00 0x00 0x00 0xff, 0xff 0x00 0x00 0x00 ) LONG\n#define Rgb( _r, _g, _b)        BYTE MacWin(0x01 _r _g _b, _b _g _r 0x01) LONG\n\n// ---------------------------------------------------------\n// The following is used to combine \"button\" state with\n// subid to get the proper \"childid\" or chid.\n// ---------------------------------------------------------\n#define CHID( st, ch ) \\\n\tSET _st = st \\\n\tSET _st <<= 16 \\\n\tSET _st += ch \\\n\t_st\n\n#define CHID0( st ) \\\n\tst\n\n#define CHID1( st )\\\n\tSET _st = 0x10000\\\n\tSET _st |= st \\\n\t_st\n\n// ---------------------------------------------------------\n// Macros for child representations (MBMPS  FILLS  etc)\n// everything preceded by \"CHILD_\" adopts itself to the\n// last declared GOKD.\n// ---------------------------------------------------------\n#define CHILD_SCRIPT( _szName,  _kchid )\\\n\tSET _dfscr++ \\\n    CHUNK( kctgScript,  _dfscr,  __NAME( _szName ) ) \\\n\t\tPARENT( kctgGokd,  _curgok,  _kchid )\\\n\t\tSCRIPT\n\n// ---------------------------------------------------------\n// transparent rectangle.. actually a FILL\n// ---------------------------------------------------------\n#define REP_RECT( _chid, _szName, _xpLeft,  _ypTop,  _xpRight,  _ypBottom )  \\\n\tSET _dffill++ \\\n\tCHUNK( kctgFill,  _dffill,  __NAME( _szName) ) \\\n\t__PACK \\\n\tPARENT( kctgGokd,  _curgok,  _chid ) \\\n\tLONG BO OSK _xpLeft _ypTop _xpRight _ypBottom \\\n\tLONG Transparent Transparent \\\n\tPATTERN_BLANK \\\n\tENDCHUNK\n\n// ---------------------------------------------------------\n// color and pattern fill\n// use: REP_FILL(...) PATTERN(....) ENDCHUNK\n// ---------------------------------------------------------\n#define REP_FILL( _chid, _szName, _xpLeft,  _ypTop,  _xpRight,  _ypBottom,  _fore,  _back )  \\\n\tSET _dffill++ \\\n\tCHUNK( kctgFill,  _dffill,  __NAME( _szName ) ) \\\n\t\t__PACK \\\n\t\tPARENT( kctgGokd  _curgok  _chid ) \\\n\t\tLONG BO OSK _xpLeft _ypTop _xpRight _ypBottom \\\n\t\tLONG _fore _back\n\n// ---------------------------------------------------------\n// Bitmap representations\n// ---------------------------------------------------------\n#define REP_MBMPREG( _chid, _szFilename, _xpReg, _ypReg ) \\\n\tSET _dfmbmp++ \\\n\tCHUNK( kctgMbmp,  _dfmbmp,  __NAME( _szFilename ) ) \\\n\t__PACK \\\n\tPARENT( kctgGokd,  _curgok,  _chid ) \\\n\tBITMAP( kiTrans,  _xpReg,  _ypReg ) _szFilename\\\n\tENDCHUNK\n\n#define REP_MBMP( _chid, _szFilename ) \\\n\tSET _dfmbmp++ \\\n\tCHUNK( kctgMbmp,  _dfmbmp,  __NAME( _szFilename ) ) \\\n\t__PACK \\\n\tPARENT( kctgGokd,  _curgok,  _chid ) \\\n\tBITMAP( kiTrans,  0, 0 ) _szFilename\\\n\tENDCHUNK\n\n#define REP_PPMBMP( _chid, _szFilename ) \\\n\tSET _dfmbmp++ \\\n\tCHUNK( kctgMbmp,  _dfmbmp,  __NAME( _szFilename ) ) \\\n\tPARENT( kctgGokd,  _curgok,  _chid ) \\\n\t PACKEDFILE _szFilename \\\n\tENDCHUNK\n\n\n// ---------------------------------------------------------\n// Mask representations (just like bitmaps except they don't\n// show and are used only for hit tests)\n// ---------------------------------------------------------\n#define REP_MASK( _chid, _szFilename, _xpReg, _ypReg ) \\\n\tSET _dfmask++ \\\n\tCHUNK( kctgMask,  _dfmask,  __NAME( _szFilename ) ) \\\n\t__PACK \\\n\tPARENT( kctgGokd,  _curgok,  _chid ) \\\n\tMASK( kiTrans,  _xpReg,  _ypReg ) _szFilename\\\n\tENDCHUNK\n\t\t\t\n#define REP_WAVE( _chid, _szFilename ) \\\n\tSET _dfwave++ \\\n\tCHUNK( kctgWave,  _dfwave, __NAME( _szFilename ) )  \\\n\t\t__PACK \\\n\t\tPARENT( kctgGokd,  _curgok,  _chid ) \\\n\t\tFILE _szFilename \\\n\tENDCHUNK\n\n#define REP_MIDI( _chid, _szFilename ) \\\n\tSET _dfmidi++ \\\n\tCHUNK( kctgMidi,  _dfmidi, __NAME( _szFilename ) ) \\\n\t\t__PACK \\\n\t\tPARENT( kctgGokd,  _curgok,  _chid ) \\\n\t\tMIDI _szFilename \\\n\tENDCHUNK\n\n\n// ---------------------------------------------------------\n// Animation representations\n// ---------------------------------------------------------\n#define REP_ANIM( _chid, _szName ) \\\n\tSET _dfanm++ \\\n\tCHUNK( kctgAnimation,  _dfanm,  __NAME( _szName ) ) \\\n\t\tPARENT( kctgGokd,  _curgok,  _chid ) \\\n\t\tSCRIPT\n\n#define ANIMATION( _cno, _szName ) \\\n\tCHUNK( kctgAnimation,  _cno,  __NAME( _szName ) ) \\\n\t\tSCRIPT\n\n// ---------------------------------------------------------\n// Bitmap TILE representations\n// Use: CHILD_TILE( ...)\n//              TILEDEF( horz opts)\n//                      TILEDEF(vert opts) ENDCHUNK\n//              ENDCHUNK\n// ---------------------------------------------------------\n#define REP_TILE( _chid, _szName, _mbmp,  _xpReg,  _ypReg ) \\\n\tSET _dftile++ \\\n\tSET _dfmbmp++ \\\n\tCHUNK( kctgMbmp,  _dfmbmp,  __NAME( _mbmp ) ) \\\n\t\t__PACK \\\n\t\tBITMAP( kiTrans,  _xpReg,  _ypReg ) _mbmp \\\n\tENDCHUNK \\\n\tCHUNK( kctgTile,  _dftile,  __NAME( _szName ) ) \\\n\t\t__PACK \\\n\t\tPARENT( kctgGokd,  _curgok,  _chid ) \\\n\t\tCHILD( kctgMbmp,  _dfmbmp,  0 ) \\\n\t\tSHORT BO OSK\n\n#define REP_VIDEO( _chid, _szFilename, _fWindowed ) \\\n\tSET _dfvid++ \\\n\tCHUNK( kctgVideo, _dfvid, __NAME( _szFilename ) ) \\\n\t\t__PACK \\\n\t\tPARENT( kctgGokd,  _curgok,  _chid ) \\\n\t\tBYTE _fWindowed \\\n\t\tSTN _szFilename \\\n\tENDCHUNK\n\n// ---------------------------------------------------------\n// The following Adopt the last chunk of type 'foo' to their\n// most recent GOKD using the appropriate CHID.\n// ---------------------------------------------------------\n#define ADOPT_MASK( _cno,  _chid ) \\\n\tADOPT( kctgGokd,  _curgok,  kctgMask,  _cno,  _chid )\n\n#define ADOPT_MBMP( _cno,  _chid ) \\\n\tADOPT( kctgGokd,  _curgok,  kctgMbmp,  _cno,  _chid )\n\n#define ADOPT_TILE( _cno,  _chid ) \\\n\tADOPT( kctgGokd,  _curgok,  kctgTile,  _cno,  _chid )\n\n#define ADOPT_FILL( _cno,  _chid ) \\\n\tADOPT( kctgGokd,  _curgok,  kctgFill,  _cno, _chid )\n\n#define ADOPT_ANIM( _cno,  _chid ) \\\n\tADOPT( kctgGokd,  _curgok,  kctgAnimation, _cno,  _chid )\n\n#define ADOPT_SCRIPT( _cno,  _chid ) \\\n\tADOPT( kctgGokd,  _curgok,  kctgScript,  _cno,  _chid )\n\n#define ADOPT_WAVE( _cno,  _chid ) \\\n\tADOPT( kctgGokd,  _curgok,  kctgWave,  _cno,  _chid )\n\n#define ADOPT_MIDI( _cno,  _chid ) \\\n\tADOPT( kctgGokd,  _curgok,  kctgMidi,  _cno,  _chid )\n\n\n\n// ---------------------------------------------------------\n// syntatic sweetness\n// ---------------------------------------------------------\n#define CREATE_SCRIPT( _szName ) \\\n\tREP_ANIM( CHID1( krepEnterAnimation ), __NAME( _szName ))\n\n#define CREATE_SCRIPTST( _szName, _kstState ) \\\n\tREP_ANIM( CHID( _kstState, krepEnterAnimation ),  _szName )\n\n#define CREATE_ANIM( _szName ) \\\n\tREP_ANIM( CHID1( krepEnterAnimation ), _szName)\n\n#define CREATE_ANIMST( _szName, _kstState ) \\\n\tREP_ANIM( CHID( _kstState, krepEnterAnimation ),  _szName )\n\n\n#define CLICK_SCRIPT( _szName ) \\\n\tCHILD_SCRIPT( _szName, CHID1( kchidClick ) )\n\n#define CLICK_SCRIPTST( _szName, _kstState ) \\\n\tCHILD_SCRIPT( _szName, CHID( _kstState, kchidClick ))\n\n#define IRISVAL( _xp, _yp, _kdir ) \\\n\tSET _foo = _xp \\\n\tSET _foo <<= 15 \\\n\tSET _foo |= _yp \\\n\tSET _foo <<= 2  \\\n\tSET _foo |= _kdir \\\n\t_foo\n\n\n// ---------------------------------------------------------\n// default object - no tooltip, fire script 'kchidClick' when activated\n// ---------------------------------------------------------\n#define OBJECT( _szName, _cnoGokd, _zp, _cnoCursor ) \\\n\tSET _curgok = _cnoGokd \\\n\tCHUNK( kctgGokd,  _cnoGokd, __NAME( _szName) )  \\\n\t\t__PACK \\\n\t\tSHORT BO OSK LONG gokkNil \\\n\t\tDEFAULT_POSITION( 0, 0, _zp ) \\\n\t\tACTION( fcustNil, fcustNil, fgrfstAll, _cnoCursor, CHID1( kchidClick), cidNil, cnoNil ) \\\n\tENDCHUNK\n\n#define OBJECTREG( _szName, _cnoGokd, _xp, _yp, _zp, _cnoCursor ) \\\n\tSET _curgok = _cnoGokd \\\n\tCHUNK( kctgGokd,  _cnoGokd, __NAME( _szName ) )  \\\n\t\t__PACK \\\n\t\tSHORT BO OSK LONG gokkNil \\\n\t\tDEFAULT_POSITION( _xp, _yp, _zp ) \\\n\t\tACTION( fcustNil, fcustNil, fgrfstAll, _cnoCursor, CHID1( kchidClick), cidNil, cnoNil ) \\\n\tENDCHUNK\n\n#define OBJECTTT( _szName, _cnoGokd, _zp, _cnoCursor, _cnoToolTip ) \\\n\tSET _curgok = _cnoGokd \\\n\tCHUNK( kctgGokd,  _cnoGokd, __NAME( _szName ) )  \\\n\t\t__PACK \\\n\t\tSHORT BO OSK LONG gokkNil \\\n\t\tDEFAULT_POSITION( 0, 0, _zp ) \\\n\t\tACTION( fcustNil, fcustNil, fgrfstAll, _cnoCursor, CHID1( kchidClick), cidNil, _cnoToolTip ) \\\n\tENDCHUNK\n\n#define OBJECTTTREG( _szName, _cnoGokd, _zp, _cnoCursor, _cnoToolTip, _regx, _regy ) \\\n\tSET _curgok = _cnoGokd \\\n\tCHUNK( kctgGokd,  _cnoGokd, __NAME( _szName ) )  \\\n\t\t__PACK \\\n\t\tSHORT BO OSK LONG gokkNil \\\n\t\tDEFAULT_POSITION( _regx, _regy, _zp ) \\\n\t\tACTION( fcustNil, fcustNil, fgrfstAll, _cnoCursor, CHID1( kchidClick), cidNil, _cnoToolTip) \\\n\tENDCHUNK\n\n#define OBJECTCID( _szName, _cnoGokd, _zp, _cnoCursor, _cnoToolTip, _cid ) \\\n\tSET _curgok = _cnoGokd \\\n\tCHUNK( kctgGokd,  _cnoGokd, __NAME( _szName ) )  \\\n\t\t__PACK \\\n\t\tSHORT BO OSK LONG gokkNil \\\n\t\tDEFAULT_POSITION( 0, 0, _zp ) \\\n\t\tACTION( fcustNil, fcustNil, fgrfstAll, _cnoCursor, CHID1( kchidClick), _cid, _cnoToolTip ) \\\n\tENDCHUNK\n\n#define OBJECTTY( _szName, _cnoGokd, _zp, _cnoCursor, _gokkType ) \\\n\tSET _curgok = _cnoGokd \\\n\tCHUNK( kctgGokd,  _cnoGokd, __NAME( _szName ) )  \\\n\t\t__PACK \\\n\t\tSHORT BO OSK LONG _gokkType \\\n\t\tDEFAULT_POSITION( 0, 0, _zp ) \\\n\t\tACTION( fcustNil, fcustNil, fgrfstAll, _cnoCursor, chidNil, cidNil, cnoNil ) \\\n\tENDCHUNK\n\n// hmm... let's not pack the WAVE files for now.\n#define WAVE_CHUNK( _szFilename, _cnoWave ) \\\n\tCHUNK( kctgWave,  _cnoWave, __NAME( _szFilename  ))  \\\n\t\tFILE _szFilename \\\n\tENDCHUNK\n\n#define MIDI_CHUNK( _szFilename, _cnoMidi ) \\\n\tCHUNK( kctgMidi,  _cnoMidi, __NAME( _szFilename ))  \\\n\t\t__PACK \\\n\t\tMIDI _szFilename \\\n\tENDCHUNK\n\n#define HELP_MBMP(  _cno,  _szFilename ) \\\n    CHUNK( 'MBMP',  _cno,  __NAME(#_cno) ) \\\n\t\t  PACK BITMAP( 0,  0, 0 )  _szFilename  \\\n\tENDCHUNK\n\n\n\n#endif  // !KIDGS_CHH\n"
  },
  {
    "path": "inc/kidgsdef.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//\n// KIDGSDEF.H  --- Cool defines for commonly used\n// information between code and script.\n//\n// File is named kidgs, because it's a Glen-Sean\n// wrapper around kidspace to make scripting a bit\n// easier :-)\n//\n\n#ifndef KIDGSDEF_H\n#define KIDGSDEF_H\n\n#include \"kiddef.h\"\n#include \"framedef.h\"\n#include \"kidsanim.h\"\n\n// ---------------------------------------------------------\n// the default transparent color index for bitmaps and masks\n// ---------------------------------------------------------\n#define kiTrans 0x00\n\n// ---------------------------------------------------------\n// cno of script to run when the application is started\n// ---------------------------------------------------------\n#define kcnoStartApp 0\n\n// ---------------------------------------------------------\n// The following are child id constants\n// ---------------------------------------------------------\n\n// predefined script child id's (utility values)\n#define kchidScript0 0x0020\n#define kchidScript1 0x0021\n#define kchidScript2 0x0022\n#define kchidScript3 0x0023\n#define kchidScript4 0x0024\n#define kchidScript5 0x0025\n#define kchidScript6 0x0026\n#define kchidScript7 0x0027\n#define kchidScript8 0x0028\n#define kchidScript9 0x0029\n#define kchidScript10 0x002A\n#define kchidScript11 0x002B\n\n// ---------------------------------------------------------\n// The following are constants for the state portion of the\n// above.  State 0 is an undefined state.\n// ---------------------------------------------------------\n#define kstNil 0x0000\n#define kst1 0x0001\n#define kst2 0x0002\n#define kst3 0x0003\n#define kst4 0x0004\n#define kst5 0x0005\n#define kst6 0x0006\n#define kst7 0x0007\n#define kst8 0x0008\n#define kst9 0x0009\n#define kst10 0x000A\n#define kst11 0x000b\n#define kst12 0x000c\n#define kst13 0x000d\n#define kst14 0x000e\n#define kst15 0x000f\n#define kst16 0x0010\n#define kst17 0x0011\n#define kst18 0x0012\n#define kst19 0x0013\n#define kst20 0x0014\n#define kst21 0x0015\n#define kst22 0x0016\n#define kst23 0x0017\n#define kst24 0x0018\n#define kst25 0x0019\n#define kst26 0x001a\n#define kst27 0x001b\n#define kst28 0x001c\n#define kst29 0x001d\n#define kst30 0x001e\n#define kst31 0x001f\n#define kst32 0x0020\n\n// Nil runtime Gob ID\n#define kidNil 0\n\n#endif // !KIDGSDEF_H\n"
  },
  {
    "path": "inc/kidsanim.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// KIDSANIM.H  --- Cool defines for cell animations.\n\n// ---------------------------------------------------------\n// Cell animation child ids\n// absolute so they don't overlap; utility\n// ---------------------------------------------------------\n\n#define kcellNull 0x0000003f\n\n#define kcell1 0x00000040\n#define kcell2 0x00000041\n#define kcell3 0x00000042\n#define kcell4 0x00000043\n#define kcell5 0x00000044\n#define kcell6 0x00000045\n#define kcell7 0x00000046\n#define kcell8 0x00000047\n#define kcell9 0x00000048\n#define kcell10 0x00000049\n#define kcell11 0x0000004a\n#define kcell12 0x0000004b\n#define kcell13 0x0000004c\n#define kcell14 0x0000004d\n#define kcell15 0x0000004e\n#define kcell16 0x0000004f\n#define kcell17 0x00000050\n#define kcell18 0x00000051\n#define kcell19 0x00000052\n#define kcell20 0x00000053\n#define kcell21 0x00000054\n#define kcell22 0x00000055\n#define kcell23 0x00000056\n#define kcell24 0x00000057\n#define kcell25 0x00000058\n#define kcell26 0x00000059\n#define kcell27 0x0000005a\n#define kcell28 0x0000005b\n#define kcell29 0x0000005c\n#define kcell30 0x0000005d\n#define kcell31 0x0000005e\n#define kcell32 0x0000005f\n#define kcell33 0x00000060\n#define kcell34 0x00000061\n#define kcell35 0x00000062\n#define kcell36 0x00000063\n#define kcell37 0x00000064\n#define kcell38 0x00000065\n#define kcell39 0x00000066\n#define kcell40 0x00000067\n#define kcell41 0x00000068\n#define kcell42 0x00000069\n#define kcell43 0x0000006a\n#define kcell44 0x0000006b\n#define kcell45 0x0000006c\n#define kcell46 0x0000006d\n#define kcell47 0x0000006e\n#define kcell48 0x0000006f\n#define kcell49 0x00000070\n#define kcell50 0x00000071\n#define kcell51 0x00000072\n#define kcell52 0x00000073\n#define kcell53 0x00000074\n#define kcell54 0x00000075\n#define kcell55 0x00000076\n#define kcell56 0x00000077\n#define kcell57 0x00000078\n#define kcell58 0x00000079\n#define kcell59 0x0000007a\n#define kcell60 0x0000007b\n#define kcell61 0x0000007c\n#define kcell62 0x0000007d\n#define kcell63 0x0000007e\n#define kcell64 0x0000007f\n#define kcell65 0x00000080\n#define kcell66 0x00000081\n#define kcell67 0x00000082\n#define kcell68 0x00000083\n#define kcell69 0x00000084\n#define kcell70 0x00000085\n#define kcell71 0x00000086\n#define kcell72 0x00000087\n#define kcell73 0x00000088\n#define kcell74 0x00000089\n#define kcell75 0x0000008a\n#define kcell76 0x0000008b\n#define kcell77 0x0000008c\n#define kcell78 0x0000008d\n#define kcell79 0x0000008e\n#define kcell80 0x0000008f\n#define kcell81 0x00000090\n#define kcell82 0x00000091\n#define kcell83 0x00000092\n#define kcell84 0x00000093\n#define kcell85 0x00000094\n#define kcell86 0x00000095\n#define kcell87 0x00000096\n#define kcell88 0x00000097\n#define kcell89 0x00000098\n#define kcell90 0x00000099\n#define kcell91 0x0000009a\n#define kcell92 0x0000009b\n#define kcell93 0x0000009c\n#define kcell94 0x0000009d\n#define kcell95 0x0000009e\n#define kcell96 0x0000009f\n#define kcell97 0x000000a0\n#define kcell98 0x000000a1\n#define kcell99 0x000000a2\n#define kcell100 0x000000a3\n#define kcell101 0x000000a4\n#define kcell102 0x000000a5\n#define kcell103 0x000000a6\n#define kcell104 0x000000a7\n#define kcell105 0x000000a8\n#define kcell106 0x000000a9\n#define kcell107 0x000000aa\n#define kcell108 0x000000ab\n#define kcell109 0x000000ac\n#define kcell110 0x000000ad\n#define kcell111 0x000000ae\n#define kcell112 0x000000af\n#define kcell113 0x000000b0\n#define kcell114 0x000000b1\n#define kcell115 0x000000b2\n#define kcell116 0x000000b3\n#define kcell117 0x000000b4\n#define kcell118 0x000000b5\n#define kcell119 0x000000b6\n#define kcell120 0x000000b7\n#define kcell121 0x000000b8\n#define kcell122 0x000000b9\n#define kcell123 0x000000ba\n#define kcell124 0x000000bb\n#define kcell125 0x000000bc\n#define kcell126 0x000000bd\n#define kcell127 0x000000be\n#define kcell128 0x000000bf\n#define kcell129 0x000000c0\n#define kcell130 0x000000c1\n#define kcell131 0x000000c2\n#define kcell132 0x000000c3\n#define kcell133 0x000000c4\n#define kcell134 0x000000c5\n#define kcell135 0x000000c6\n#define kcell136 0x000000c7\n#define kcell137 0x000000c8\n#define kcell138 0x000000c9\n#define kcell139 0x000000ca\n#define kcell140 0x000000cb\n#define kcell141 0x000000cc\n#define kcell142 0x000000cd\n#define kcell143 0x000000ce\n#define kcell144 0x000000cf\n#define kcell145 0x000000d0\n#define kcell146 0x000000d1\n#define kcell147 0x000000d2\n#define kcell148 0x000000d3\n#define kcell149 0x000000d4\n#define kcell150 0x000000d5\n#define kcell151 0x000000d6\n#define kcell152 0x000000d7\n#define kcell153 0x000000d8\n#define kcell154 0x000000d9\n#define kcell155 0x000000da\n#define kcell156 0x000000db\n#define kcell157 0x000000dc\n#define kcell158 0x000000dd\n#define kcell159 0x000000de\n#define kcell160 0x000000df\n#define kcell161 0x000000e0\n#define kcell162 0x000000e1\n#define kcell163 0x000000e2\n#define kcell164 0x000000e3\n#define kcell165 0x000000e4\n#define kcell166 0x000000e5\n#define kcell167 0x000000e6\n#define kcell168 0x000000e7\n#define kcell169 0x000000e8\n#define kcell170 0x000000e9\n#define kcell171 0x000000ea\n#define kcell172 0x000000eb\n#define kcell173 0x000000ec\n#define kcell174 0x000000ed\n#define kcell175 0x000000ee\n#define kcell176 0x000000ef\n#define kcell177 0x000000f0\n#define kcell178 0x000000f1\n#define kcell179 0x000000f2\n#define kcell180 0x000000f3\n#define kcell181 0x000000f4\n#define kcell182 0x000000f5\n#define kcell183 0x000000f6\n#define kcell184 0x000000f7\n#define kcell185 0x000000f8\n#define kcell186 0x000000f9\n#define kcell187 0x000000fa\n#define kcell188 0x000000fb\n#define kcell189 0x000000fc\n#define kcell190 0x000000fd\n#define kcell191 0x000000fe\n#define kcell192 0x000000ff\n#define kcell193 0x00000100\n#define kcell194 0x00000101\n#define kcell195 0x00000102\n#define kcell196 0x00000103\n#define kcell197 0x00000104\n#define kcell198 0x00000105\n#define kcell199 0x00000106\n#define kcell200 0x00000107\n#define kcell201 0x00000108\n#define kcell202 0x00000109\n#define kcell203 0x0000010a\n#define kcell204 0x0000010b\n#define kcell205 0x0000010c\n#define kcell206 0x0000010d\n#define kcell207 0x0000010e\n#define kcell208 0x0000010f\n#define kcell209 0x00000110\n#define kcell210 0x00000111\n#define kcell211 0x00000112\n#define kcell212 0x00000113\n#define kcell213 0x00000114\n#define kcell214 0x00000115\n#define kcell215 0x00000116\n#define kcell216 0x00000117\n#define kcell217 0x00000118\n#define kcell218 0x00000119\n#define kcell219 0x0000011a\n#define kcell220 0x0000011b\n#define kcell221 0x0000011c\n#define kcell222 0x0000011d\n#define kcell223 0x0000011e\n#define kcell224 0x0000011f\n#define kcell225 0x00000120\n#define kcell226 0x00000121\n#define kcell227 0x00000122\n#define kcell228 0x00000123\n#define kcell229 0x00000124\n#define kcell230 0x00000125\n#define kcell231 0x00000126\n#define kcell232 0x00000127\n#define kcell233 0x00000128\n#define kcell234 0x00000129\n#define kcell235 0x0000012a\n#define kcell236 0x0000012b\n#define kcell237 0x0000012c\n#define kcell238 0x0000012d\n#define kcell239 0x0000012e\n#define kcell240 0x0000012f\n#define kcell241 0x00000130\n#define kcell242 0x00000131\n#define kcell243 0x00000132\n#define kcell244 0x00000133\n#define kcell245 0x00000134\n#define kcell246 0x00000135\n#define kcell247 0x00000136\n#define kcell248 0x00000137\n#define kcell249 0x00000138\n#define kcell250 0x00000139\n#define kcell251 0x0000013a\n#define kcell252 0x0000013b\n#define kcell253 0x0000013c\n#define kcell254 0x0000013d\n#define kcell255 0x0000013e\n#define kcell256 0x0000013f\n#define kcell257 0x00000140\n#define kcell258 0x00000141\n#define kcell259 0x00000142\n#define kcell260 0x00000143\n#define kcell261 0x00000144\n#define kcell262 0x00000145\n#define kcell263 0x00000146\n#define kcell264 0x00000147\n#define kcell265 0x00000148\n#define kcell266 0x00000149\n#define kcell267 0x0000014a\n#define kcell268 0x0000014b\n#define kcell269 0x0000014c\n#define kcell270 0x0000014d\n#define kcell271 0x0000014e\n#define kcell272 0x0000014f\n#define kcell273 0x00000150\n#define kcell274 0x00000151\n#define kcell275 0x00000152\n#define kcell276 0x00000153\n#define kcell277 0x00000154\n#define kcell278 0x00000155\n#define kcell279 0x00000156\n#define kcell280 0x00000157\n#define kcell281 0x00000158\n#define kcell282 0x00000159\n#define kcell283 0x0000015a\n#define kcell284 0x0000015b\n#define kcell285 0x0000015c\n#define kcell286 0x0000015d\n#define kcell287 0x0000015e\n#define kcell288 0x0000015f\n#define kcell289 0x00000160\n#define kcell290 0x00000161\n#define kcell291 0x00000162\n#define kcell292 0x00000163\n#define kcell293 0x00000164\n#define kcell294 0x00000165\n#define kcell295 0x00000166\n#define kcell296 0x00000167\n#define kcell297 0x00000168\n#define kcell298 0x00000169\n#define kcell299 0x0000016a\n#define kcell300 0x0000016b\n#define kcell301 0x0000016c\n#define kcell302 0x0000016d\n#define kcell303 0x0000016e\n#define kcell304 0x0000016f\n#define kcell305 0x00000170\n#define kcell306 0x00000171\n#define kcell307 0x00000172\n#define kcell308 0x00000173\n#define kcell309 0x00000174\n#define kcell310 0x00000175\n#define kcell311 0x00000176\n#define kcell312 0x00000177\n#define kcell313 0x00000178\n#define kcell314 0x00000179\n#define kcell315 0x0000017a\n#define kcell316 0x0000017b\n#define kcell317 0x0000017c\n#define kcell318 0x0000017d\n#define kcell319 0x0000017e\n#define kcell320 0x0000017f\n#define kcell321 0x00000180\n#define kcell322 0x00000181\n#define kcell323 0x00000182\n#define kcell324 0x00000183\n#define kcell325 0x00000184\n#define kcell326 0x00000185\n#define kcell327 0x00000186\n#define kcell328 0x00000187\n#define kcell329 0x00000188\n#define kcell330 0x00000189\n#define kcell331 0x0000018a\n#define kcell332 0x0000018b\n#define kcell333 0x0000018c\n#define kcell334 0x0000018d\n#define kcell335 0x0000018e\n#define kcell336 0x0000018f\n#define kcell337 0x00000190\n#define kcell338 0x00000191\n#define kcell339 0x00000192\n#define kcell340 0x00000193\n#define kcell341 0x00000194\n#define kcell342 0x00000195\n#define kcell343 0x00000196\n#define kcell344 0x00000197\n#define kcell345 0x00000198\n#define kcell346 0x00000199\n#define kcell347 0x0000019a\n#define kcell348 0x0000019b\n#define kcell349 0x0000019c\n#define kcell350 0x0000019d\n#define kcell351 0x0000019e\n#define kcell352 0x0000019f\n#define kcell353 0x000001a0\n#define kcell354 0x000001a1\n#define kcell355 0x000001a2\n#define kcell356 0x000001a3\n#define kcell357 0x000001a4\n#define kcell358 0x000001a5\n#define kcell359 0x000001a6\n#define kcell360 0x000001a7\n#define kcell361 0x000001a8\n#define kcell362 0x000001a9\n#define kcell363 0x000001aa\n#define kcell364 0x000001ab\n#define kcell365 0x000001ac\n#define kcell366 0x000001ad\n#define kcell367 0x000001ae\n#define kcell368 0x000001af\n#define kcell369 0x000001b0\n#define kcell370 0x000001b1\n#define kcell371 0x000001b2\n#define kcell372 0x000001b3\n#define kcell373 0x000001b4\n#define kcell374 0x000001b5\n#define kcell375 0x000001b6\n#define kcell376 0x000001b7\n#define kcell377 0x000001b8\n#define kcell378 0x000001b9\n#define kcell379 0x000001ba\n#define kcell380 0x000001bb\n#define kcell381 0x000001bc\n#define kcell382 0x000001bd\n#define kcell383 0x000001be\n#define kcell384 0x000001bf\n#define kcell385 0x000001c0\n#define kcell386 0x000001c1\n#define kcell387 0x000001c2\n#define kcell388 0x000001c3\n#define kcell389 0x000001c4\n#define kcell390 0x000001c5\n#define kcell391 0x000001c6\n#define kcell392 0x000001c7\n#define kcell393 0x000001c8\n#define kcell394 0x000001c9\n#define kcell395 0x000001ca\n#define kcell396 0x000001cb\n#define kcell397 0x000001cc\n#define kcell398 0x000001cd\n#define kcell399 0x000001ce\n#define kcell400 0x000001cf\n#define kcell401 0x000001d0\n#define kcell402 0x000001d1\n#define kcell403 0x000001d2\n#define kcell404 0x000001d3\n#define kcell405 0x000001d4\n#define kcell406 0x000001d5\n#define kcell407 0x000001d6\n#define kcell408 0x000001d7\n#define kcell409 0x000001d8\n#define kcell410 0x000001d9\n#define kcell411 0x000001da\n#define kcell412 0x000001db\n#define kcell413 0x000001dc\n#define kcell414 0x000001dd\n#define kcell415 0x000001de\n#define kcell416 0x000001df\n#define kcell417 0x000001e0\n#define kcell418 0x000001e1\n#define kcell419 0x000001e2\n#define kcell420 0x000001e3\n#define kcell421 0x000001e4\n#define kcell422 0x000001e5\n#define kcell423 0x000001e6\n#define kcell424 0x000001e7\n#define kcell425 0x000001e8\n#define kcell426 0x000001e9\n#define kcell427 0x000001ea\n#define kcell428 0x000001eb\n#define kcell429 0x000001ec\n#define kcell430 0x000001ed\n#define kcell431 0x000001ee\n#define kcell432 0x000001ef\n#define kcell433 0x000001f0\n#define kcell434 0x000001f1\n#define kcell435 0x000001f2\n#define kcell436 0x000001f3\n#define kcell437 0x000001f4\n#define kcell438 0x000001f5\n#define kcell439 0x000001f6\n#define kcell440 0x000001f7\n#define kcell441 0x000001f8\n#define kcell442 0x000001f9\n#define kcell443 0x000001fa\n#define kcell444 0x000001fb\n#define kcell445 0x000001fc\n#define kcell446 0x000001fd\n#define kcell447 0x000001fe\n#define kcell448 0x000001ff\n#define kcell449 0x00000200\n#define kcell450 0x00000201\n#define kcell451 0x00000202\n#define kcell452 0x00000203\n#define kcell453 0x00000204\n#define kcell454 0x00000205\n#define kcell455 0x00000206\n#define kcell456 0x00000207\n#define kcell457 0x00000208\n#define kcell458 0x00000209\n#define kcell459 0x0000020a\n#define kcell460 0x0000020b\n#define kcell461 0x0000020c\n#define kcell462 0x0000020d\n#define kcell463 0x0000020e\n#define kcell464 0x0000020f\n#define kcell465 0x00000210\n#define kcell466 0x00000211\n#define kcell467 0x00000212\n#define kcell468 0x00000213\n#define kcell469 0x00000214\n#define kcell470 0x00000215\n#define kcell471 0x00000216\n#define kcell472 0x00000217\n#define kcell473 0x00000218\n#define kcell474 0x00000219\n#define kcell475 0x0000021a\n#define kcell476 0x0000021b\n#define kcell477 0x0000021c\n#define kcell478 0x0000021d\n#define kcell479 0x0000021e\n#define kcell480 0x0000021f\n#define kcell481 0x00000220\n#define kcell482 0x00000221\n#define kcell483 0x00000222\n#define kcell484 0x00000223\n#define kcell485 0x00000224\n#define kcell486 0x00000225\n#define kcell487 0x00000226\n#define kcell488 0x00000227\n#define kcell489 0x00000228\n#define kcell490 0x00000229\n#define kcell491 0x0000022a\n#define kcell492 0x0000022b\n#define kcell493 0x0000022c\n#define kcell494 0x0000022d\n#define kcell495 0x0000022e\n#define kcell496 0x0000022f\n#define kcell497 0x00000230\n#define kcell498 0x00000231\n#define kcell499 0x00000232\n#define kcell500 0x00000233\n#define kcell501 0x00000234\n#define kcell502 0x00000235\n#define kcell503 0x00000236\n#define kcell504 0x00000237\n#define kcell505 0x00000238\n#define kcell506 0x00000239\n#define kcell507 0x0000023a\n#define kcell508 0x0000023b\n#define kcell509 0x0000023c\n#define kcell510 0x0000023d\n#define kcell511 0x0000023e\n#define kcell512 0x0000023f\n#define kcell513 0x00000240\n#define kcell514 0x00000241\n#define kcell515 0x00000242\n#define kcell516 0x00000243\n#define kcell517 0x00000244\n#define kcell518 0x00000245\n#define kcell519 0x00000246\n#define kcell520 0x00000247\n#define kcell521 0x00000248\n#define kcell522 0x00000249\n#define kcell523 0x0000024a\n#define kcell524 0x0000024b\n#define kcell525 0x0000024c\n#define kcell526 0x0000024d\n#define kcell527 0x0000024e\n#define kcell528 0x0000024f\n#define kcell529 0x00000250\n#define kcell530 0x00000251\n#define kcell531 0x00000252\n#define kcell532 0x00000253\n#define kcell533 0x00000254\n#define kcell534 0x00000255\n#define kcell535 0x00000256\n#define kcell536 0x00000257\n#define kcell537 0x00000258\n#define kcell538 0x00000259\n#define kcell539 0x0000025a\n#define kcell540 0x0000025b\n#define kcell541 0x0000025c\n#define kcell542 0x0000025d\n#define kcell543 0x0000025e\n#define kcell544 0x0000025f\n#define kcell545 0x00000260\n#define kcell546 0x00000261\n#define kcell547 0x00000262\n#define kcell548 0x00000263\n#define kcell549 0x00000264\n#define kcell550 0x00000265\n#define kcell551 0x00000266\n#define kcell552 0x00000267\n#define kcell553 0x00000268\n#define kcell554 0x00000269\n#define kcell555 0x0000026a\n#define kcell556 0x0000026b\n#define kcell557 0x0000026c\n#define kcell558 0x0000026d\n#define kcell559 0x0000026e\n#define kcell560 0x0000026f\n#define kcell561 0x00000270\n#define kcell562 0x00000271\n#define kcell563 0x00000272\n#define kcell564 0x00000273\n#define kcell565 0x00000274\n#define kcell566 0x00000275\n#define kcell567 0x00000276\n#define kcell568 0x00000277\n#define kcell569 0x00000278\n#define kcell570 0x00000279\n#define kcell571 0x0000027a\n#define kcell572 0x0000027b\n#define kcell573 0x0000027c\n#define kcell574 0x0000027d\n#define kcell575 0x0000027e\n#define kcell576 0x0000027f\n#define kcell577 0x00000280\n#define kcell578 0x00000281\n#define kcell579 0x00000282\n#define kcell580 0x00000283\n#define kcell581 0x00000284\n#define kcell582 0x00000285\n#define kcell583 0x00000286\n#define kcell584 0x00000287\n#define kcell585 0x00000288\n#define kcell586 0x00000289\n#define kcell587 0x0000028a\n#define kcell588 0x0000028b\n#define kcell589 0x0000028c\n#define kcell590 0x0000028d\n#define kcell591 0x0000028e\n#define kcell592 0x0000028f\n#define kcell593 0x00000290\n#define kcell594 0x00000291\n#define kcell595 0x00000292\n#define kcell596 0x00000293\n#define kcell597 0x00000294\n#define kcell598 0x00000295\n#define kcell599 0x00000296\n#define kcell600 0x00000297\n"
  },
  {
    "path": "inc/modl.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*************************************************************************\n\n    modl.h: Model class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    BASE ---> BACO ---> MODL\n\n*************************************************************************/\n#ifndef MODL_H\n#define MODL_H\n\n// Model on file:\nstruct MODLF\n{\n    short bo;\n    short osk;\n    short cver; // count of vertices\n    short cfac; // count of faces\n    BRS rRadius;\n    BRB brb; // bounds\n    BVEC3 bvec3Pivot;\n    //\tbr_vertex rgbrv[]; // vertices\n    //\tbr_face rgbrf[]; // faces\n};\ntypedef MODLF *PMODLF;\nconst BOM kbomModlf = 0x55fffff0;\n\n/****************************************\n    MODL: a wrapper for BRender models\n****************************************/\ntypedef class MODL *PMODL;\n#define MODL_PAR BACO\n#define kclsMODL 'MODL'\nclass MODL : public MODL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    BMDL *_pbmdl; // BRender model data\n  protected:\n    MODL(void)\n    {\n    }\n    bool _FInit(PBLCK pblck);\n    bool _FPrelight(long cblit, BVEC3 *prgbvec3Light);\n\n  public:\n    static PMODL PmodlNew(long cbrv, BRV *prgbrv, long cbrf, BRF *prgbrf);\n    static bool FReadModl(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n    static PMODL PmodlReadFromDat(FNI *pfni);\n    static PMODL PmodlFromBmdl(PBMDL pbmdl);\n    ~MODL(void);\n    PBMDL Pbmdl(void)\n    {\n        return _pbmdl;\n    }\n    void AdjustTdfCharacter(void);\n    bool FWrite(PCFL pcfl, CTG ctg, CNO cno);\n\n    BRS Dxr(void)\n    {\n        return _pbmdl->bounds.max.v[0] - _pbmdl->bounds.min.v[0];\n    }\n    BRS Dyr(void)\n    {\n        return _pbmdl->bounds.max.v[1] - _pbmdl->bounds.min.v[1];\n    }\n    BRS Dzr(void)\n    {\n        return _pbmdl->bounds.max.v[2] - _pbmdl->bounds.min.v[2];\n    }\n};\n\n#endif TMPL_H\n"
  },
  {
    "path": "inc/movie.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Status: All changes must be code reviewed.\n\n    Movie Stuff\n\n        A single view on a movie (MVU)\n\n                DDG  \t--->\tMVU\n\n        Callbacks to client (MCC)\n\n                BASE \t--->\tMCC\n\n        A single movie (MVIE)\n\n                DOCB\t--->\tMVIE\n\n***************************************************************************/\n\n#ifndef MOVIE_H\n#define MOVIE_H\n\n//\n// Tools that can be \"loaded\" on the mouse cursor\n//\nenum\n{\n    toolPlace, // (to position an actor when you first add it)\n    toolCompose,\n    toolAction, // action is in _anidTool if we're motion filling\n    toolTweak,\n    toolRotateX,\n    toolRotateY,\n    toolRotateZ,\n    toolCostumeCmid, // cmid is in _cmidTool\n    toolSquashStretch,\n    toolSoonerLater,\n    toolResize,\n    toolNormalizeRot,\n    toolCopyObject,\n    toolCutObject,\n    toolPasteObject,\n    toolCopyRte,\n    toolDefault,\n    toolTboxMove,\n    toolTboxUpDown,\n    toolTboxLeftRight,\n    toolTboxFalling,\n    toolTboxRising,\n    toolSceneNuke,\n    toolIBeam,\n    toolSceneChop,\n    toolSceneChopBack,\n    toolCutText,\n    toolCopyText,\n    toolPasteText,\n    toolPasteRte,\n    toolActorEasel,\n    toolActorSelect,\n    toolActorNuke,\n    toolTboxPaintText,\n    toolTboxFillBkgd,\n    toolTboxStory,\n    toolTboxCredit,\n    toolNormalizeSize,\n    toolRecordSameAction,\n    toolSounder,\n    toolLooper,\n    toolMatcher,\n    toolTboxFont,\n    toolTboxStyle,\n    toolTboxSize,\n    toolListener,\n    toolAddAFrame,\n    toolFWAFrame,\n    toolRWAFrame,\n    toolComposeAll,\n    toolUndo,     // For playing UI Sound only\n    toolRedo,     // For playing UI Sound only\n    toolFWAScene, // For playing UI Sound only\n    toolRWAScene, // For playing UI Sound only\n\n    toolLimMvie\n};\n\n//\n// Used to tell the client the change the state of the undo UI\n//\nenum\n{\n    undoDisabled = 1,\n    undoUndo,\n    undoRedo\n};\n\n//\n// grfbrws flags\n//\nenum\n{\n    fbrwsNil = 0,\n    fbrwsProp = 1, // fTrue implies prop or 3d\n    fbrwsTdt = 2   // fTrue means this is a 3-D Text object\n};\n\n//\n//\n// A class for handling a single Movie view\n//\n//\n\n//\n// The class definition\n//\n#define MVU_PAR DDG\n\ntypedef class MVU *PMVU;\n#define kclsMVU 'MVU'\nclass MVU : public MVU_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(MVU)\n\n  protected:\n    /* Make these static; we want to be able to set and restore without having\n        an actual MVU, and they shouldn't be getting set per-MVU anyway */\n    static bool _fKbdDelayed;  // fTrue == we have delayed the keyboard\n    static long _dtsKbdDelay;  // System keyboard delay before first repeat\n    static long _dtsKbdRepeat; // System keyboard delay between repeats\n\n    long _dxp;\n    long _dyp; // width and height rendered area.\n\n    bool _fTrackingMouse; // Is the mouse currently being tracked?\n    long _xpPrev;         // X location of the mouse.\n    long _ypPrev;         // Y location of the mouse.\n    BRS _dzrPrev;         // Z motion of the \"mouse\" (arrow keys)\n    long _grfcust;        // Options in effect when mouse was down.\n    PCURS _pcursDefault;  // Default cursor for when a tool is not applicable.\n    PACTR _pactrListener; // Pactr of the actor being auditioned\n    PACTR _pactrRestore;  // Restore for actor recording\n\n    long _anidTool;     // Current selected action\n    TAG _tagTool;       // Tag associated with current tool.\n    PTMPL _ptmplTool;   // Template associated with the current tool.\n    long _cmidTool;     // Costume id associated with current tool.\n    bool _fCyclingCels; // Are we cycling cels in toolRecord?\n    long _tool;         // Current tool loaded on cursor\n\n    // REVIEW Seanse(SeanSe): MVIE should not be creating/mucking with actor undo\n    //   objects.  V2.666 should revisit this issue and see if we can get ACTR to\n    //   do all its own undo objects (e.g. Growing over a long drag could become\n    //   a StartGrow/Grow/EndGrow sequence).  This also effects _pactrRestore.\n    PAUND _paund;        // Actor undo object to save from mouse down to drag.\n    ulong _tsLast;       // Last time a cell was recorded.\n    ulong _tsLastSample; // Last time mouse/kbd sampled\n    RC _rcFrame;         // Frame for creating a text box.\n\n    BRS _rgrAxis[3][3];   // Conversion from mouse points to 3D points.\n    bool _fRecordDefault; // fTrue = Record; fFalse = Rerecord\n\n    bool _fPause : 1;             // fTrue if pausing play until a click.\n    bool _fTextMode : 1;          // fTrue if Text boxes are active.\n    bool _fRespectGround : 1;     // fTrue if Y=0 is enforced.\n    bool _fSetFRecordDefault : 1; // fTrue if using hotkeys to rerecord.\n    bool _fMouseOn : 1;\n    bool _fEntireScene : 1; // Does positioning effect the entire scene?\n\n    bool _fMouseDownSeen; // Was the mouse depressed during a place.\n    PACTR _pactrUndo;     // Actor to use for undo object when roll-calling.\n\n    ACR _acr;         // Color for painting text.\n    long _onn;        // Font for text\n    long _dypFont;    // Font size for text\n    ulong _grfont;    // Font style for text\n    long _lwLastTime; // State variable for the last time through.\n\n    MVU(PDOCB pdocb, PGCB pgcb) : DDG(pdocb, pgcb)\n    {\n    }\n\n    //\n    // Clipboard support\n    //\n    bool _FCopySel(PDOCB *ppdocb, bool fRteOnly);\n    void _ClearSel(void);\n    bool _FPaste(PCLIP pclip);\n\n    void _PositionActr(BRS dxrWld, BRS dyrWld, BRS dzrWld);\n    void _MouseDown(CMD_MOUSE *pcmd);\n    void _MouseDrag(CMD_MOUSE *pcmd);\n    void _MouseUp(CMD_MOUSE *pcmd);\n\n    void _ActorClicked(PACTR pactr, bool fDown);\n\n  public:\n    static void SlowKeyboardRepeat(void);\n    static void RestoreKeyboardRepeat(void);\n\n    //\n    // Constructors and desctructors\n    //\n    static MVU *PmvuNew(PMVIE pmvie, PGCB pgcb, long dxy, long dyp);\n    ~MVU(void);\n\n    //\n    // Accessor for getting the owning movie\n    //\n    PMVIE Pmvie()\n    {\n        return (PMVIE)_pdocb;\n    }\n\n    //\n    // Command handlers\n    //\n    virtual bool FCmdTrackMouse(PCMD_MOUSE pcmd);\n    virtual bool FCmdMouseMove(PCMD_MOUSE pcmd);\n    virtual bool FCmdClip(CMD *pcmd);\n    virtual bool FCmdUndo(PCMD pcmd);\n    virtual bool FCloseDoc(bool fAssumeYes, bool fSaveDDG = fFalse);\n    virtual bool FCmdSave(PCMD pcmd);\n    bool FDoClip(long tool);\n    bool FCmdIdle(CMD *pcmd); // Called whenever an idle loop is seen.\n    bool FCmdRollOff(CMD *pcmd);\n\n    //\n    // View specific functions.\n    //\n    void SetTool(long tool);\n    long Tool(void)\n    {\n        return _tool;\n    }\n    long AnidTool(void)\n    {\n        return _anidTool;\n    }\n    long CmidTool(void)\n    {\n        return _cmidTool;\n    }\n    PTAG PtagTool(void)\n    {\n        return &_tagTool;\n    }\n    void SetAnidTool(long anid)\n    {\n        _anidTool = anid;\n    }\n    void SetTagTool(PTAG ptag);\n    void SetCmidTool(long cmid)\n    {\n        _cmidTool = cmid;\n    }\n    void StartPlaceActor(bool fEntireScene = fFalse);\n    void EndPlaceActor(void);\n    void WarpCursToCenter(void);\n    void WarpCursToActor(PACTR pactr);\n    void AdjustCursor(long xp, long yp);\n    void MouseToWorld(BRS dxrMouse, BRS dyrMouse, BRS dzrMouse, BRS *pdxrWld, BRS *pdyrWld, BRS *pdzrWld, bool fRecord);\n    void SetAxis(BRS rgrAxis[3][3])\n    {\n        BltPb(rgrAxis, _rgrAxis, size(BRS) * 9);\n    }\n    void SetFRecordDefault(bool f)\n    {\n        _fRecordDefault = f;\n    }\n    void SetFRespectGround(bool f)\n    {\n        _fRespectGround = f;\n    }\n    bool FRecordDefault()\n    {\n        return _fRecordDefault;\n    }\n    void PauseUntilClick(bool fPause)\n    {\n        _fPause = fPause;\n    }\n    bool FPausing(void)\n    {\n        return _fPause;\n    }\n    bool FTextMode(void)\n    {\n        return _fTextMode;\n    }\n    bool FActrMode(void)\n    {\n        return !_fTextMode;\n    }\n    bool FRespectGround(void)\n    {\n        return _fRespectGround;\n    }\n    void SetActrUndo(PACTR pactr)\n    {\n        _pactrUndo = pactr;\n    }\n    void SetPaintAcr(ACR acr)\n    {\n        _acr = acr;\n    }\n    ACR AcrPaint(void)\n    {\n        return _acr;\n    }\n    void SetOnnTextCur(long onn)\n    {\n        _onn = onn;\n    }\n    long OnnTextCur(void)\n    {\n        return _onn;\n    }\n    void SetDypFontTextCur(long dypFont)\n    {\n        _dypFont = dypFont;\n    }\n    long DypFontTextCur(void)\n    {\n        return _dypFont;\n    }\n    void SetStyleTextCur(ulong grfont)\n    {\n        _grfont = grfont;\n    }\n    ulong GrfontStyleTextCur(void)\n    {\n        return _grfont;\n    }\n\n    //\n    // Routines for communicating with the framework\n    //\n    void Draw(PGNV pgnv, RC *prcClip);\n};\n\n//\n//\n// Movie Client Callbacks.  Used for filling in\n// parameters for this movie, and for notifying\n// client of state changes.\n//\n//\n\n#define MCC_PAR BASE\n\nclass MCC;\n\ntypedef MCC *PMCC;\n#define kclsMCC 'MCC'\nclass MCC : public MCC_PAR\n{\n  protected:\n    long _dxp;\n    long _dyp;\n    long _cbCache;\n\n  public:\n    MCC(long dxp, long dyp, long cbCache)\n    {\n        _dxp = dxp;\n        _dyp = dyp;\n        _cbCache = cbCache;\n    }\n    virtual long Dxp(void)\n    {\n        return _dxp;\n    } // Width of the rendering area\n    virtual long Dyp(void)\n    {\n        return _dyp;\n    } // Height of the rendering area\n    virtual long CbCache(void)\n    {\n        return _cbCache;\n    } // Number of bytes to use for caching.\n    virtual void SetCurs(long tool)\n    {\n    } // Sets the cursor based on the tool, may be pvNil.\n    virtual void UpdateRollCall(void)\n    {\n    } // Tells the client to update its roll call.\n    virtual void UpdateAction(void)\n    {\n    } // Tells the client to update its action menu.\n    virtual void UpdateScrollbars(void)\n    {\n    } // Tells the client to update its scrollbars.\n    virtual void PlayStopped(void)\n    {\n    } // Tells the client that playback was stopped internally.\n    virtual void ChangeTool(long tool)\n    {\n    } // Tells the client that the tool was changed internally.\n    virtual void SceneNuked(void)\n    {\n    } // Tells the client that a scene was nuked.\n    virtual void SceneUnnuked(void)\n    {\n    } // Tells the client that a scene was nuked and now undone.\n    virtual void ActorNuked(void)\n    {\n    } // Tells the client that an actor was nuked.\n    virtual void EnableActorTools(void)\n    {\n    } // Tells the client that the first actor was added.\n    virtual void EnableTboxTools(void)\n    {\n    } // Tells the client that the first textbox was added.\n    virtual void TboxSelected(void)\n    {\n    } // Tells the client that a new text box was selected.\n    virtual void ActorSelected(long arid)\n    {\n    } // Tells the client that an actor was selected\n    virtual void ActorEasel(bool *pfActrChanged)\n    {\n    } // Lets client edit 3-D Text or costume\n    virtual void SetUndo(long undo)\n    {\n    } // Tells the client the state of the undo buffer.\n    virtual void SceneChange(void)\n    {\n    } // Tells the client that a different scene is the current one\n    virtual void PauseType(WIT wit)\n    {\n    } // Tells the client of a new pause type for this frame.\n    virtual void Recording(bool fRecording, bool fRecord)\n    {\n    } // Tells the client that the movie engine is recording or not.\n    virtual void StartSoonerLater(void)\n    {\n    } // Tells the client that an actor is selected for sooner/latering.\n    virtual void EndSoonerLater(void)\n    {\n    } // Tells the client that an actor is done for sooner/latering.\n    virtual void NewActor(void)\n    {\n    } // Tells the client that an actor has just been placed.\n    virtual void StartActionBrowser(void)\n    {\n    } // Tells the client to start up the action browser.\n    virtual void StartListenerEasel(void)\n    {\n    } // Tells the client to start up the listener easel.\n    virtual bool GetFniSave(FNI *pfni, long lFilterLabel, long lFilterExt, long lTitle, LPTSTR lpstrDefExt,\n                            PSTN pstnDefFileName)\n    {\n        return fFalse;\n    } // Tells the client to start up the save portfolio.\n    virtual void PlayUISound(long tool, long grfcust = 0)\n    {\n    } // Tells the client to play sound associated with use of tool.\n    virtual void StopUISound(void)\n    {\n    } // Tells the client to stop sound associated with use of tools.\n    virtual void UpdateTitle(PSTN pstnTitle)\n    {\n    } // Tells the client that the movie name has changed.\n    virtual void EnableAccel(void)\n    {\n    } // Tells the client to enable keyboard accelerators.\n    virtual void DisableAccel(void)\n    {\n    } // Tells the client to disable keyboard accelerators.\n    virtual void GetStn(long ids, PSTN pstn)\n    {\n    } // Requests the client to fetch the given ids string.\n    virtual long DypTextDef(void)\n    {\n        return vpappb->DypTextDef();\n    }\n    virtual long DypTboxDef(void)\n    {\n        return 14;\n    }\n    virtual void SetSndFrame(bool fSoundInFrame)\n    {\n    }\n    virtual bool FMinimized(void)\n    {\n        return fFalse;\n    }\n    virtual bool FQueryPurgeSounds(void)\n    {\n        return fFalse;\n    }\n};\n\n/* A SCENe Descriptor */\ntypedef struct _scend\n{\n    /* The first fields are private...the client shouldn't change them, and\n        in fact, generally shouldn't even look at them */\n    long imvied;     // index of the MVIED for this scene\n    CNO cno;         // the CNO of this scene chunk\n    CHID chid;       // the original CHID\n    PMBMP pmbmp;     // pointer to thumbnail MBMP\n                     /* The client can read or write the following fields */\n    TRANS trans;     // the transition that will occur after this scene\n    bool fNuked : 1; // fTrue if this scene has been deleted\n} SCEND, *PSCEND;\n\n/* A MoVIE Descriptor */\ntypedef struct _mvied\n{\n    PCRF pcrf;    // the file this scene's movie is in\n    CNO cno;      // CNO of the MVIE chunk\n    long aridLim; // _aridLim from the MVIE\n} MVIED, *PMVIED;\n\n/* A Composite MoVIe */\ntypedef struct _cmvi\n{\n    PGL pglmvied; // GL of movie descriptors\n    PGL pglscend; // GL of scene descriptors\n\n    void Empty(void);\n#ifdef DEBUG\n    void MarkMem(void);\n#endif\n} CMVI, *PCMVI;\n\n//\n//\n// Movie Class.\n//\n//\n\nconst long kccamMax = 9;\n\ntypedef class MVIE *PMVIE;\n\n#define MVIE_PAR DOCB\n#define kclsMVIE 'MVIE'\nclass MVIE : public MVIE_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n    CMD_MAP_DEC(MVIE)\n\n  protected:\n    long _aridLim; // Highest actor id in use.\n\n    PCRF _pcrfAutoSave; // CRF/CFL of auto save file.\n    PFIL _pfilSave;     // User's document\n\n    CNO _cno; // CNO of movie in current file.\n\n    STN _stnTitle; // Title of the movie\n\n    PGST _pgstmactr;             // GST of actors in the movie (for roll call)\n    PSCEN _pscenOpen;            // Index of current open scene.\n    long _cscen;                 // Number of scenes in the movie.\n    long _iscen;                 // Number of scene open in the movie.\n    bool _fAutosaveDirty : 1;    // Is the movie in memory different than disk\n    bool _fFniSaveValid : 1;     // Does _fniSave contain a file name.\n    bool _fPlaying : 1;          // Is the movie playing?\n    bool _fScrolling : 1;        // During playback only, are we scrolling textboxes\n    bool _fPausing : 1;          // Are we executing a pause.\n    bool _fIdleSeen : 1;         // fTrue if we have seen an idle since this was cleared.\n    bool _fStopPlaying : 1;      // Should we stop the movie playing\n    bool _fSoundsEnabled : 1;    // Should we play sounds or not.\n    bool _fOldSoundsEnabled : 1; // Old value of above.\n    bool _fDocClosing : 1;       // Flags doc is to be closed\n    bool _fGCSndsOnClose : 1;    // Garbage collection of sounds on close\n    bool _fReadOnly : 1;         // Is the original file read-only?\n\n    PBWLD _pbwld;   // The brender world for this movie\n    PMSQ _pmsq;     // Message Sound Queue\n    CLOK _clok;     // Clock for playing the film\n    ulong _tsStart; // Time last play started.\n    long _cnfrm;    // Number of frames since last play started.\n\n    PMCC _pmcc; // Parameters and callbacks.\n\n    WIT _wit;     // Pausing type\n    long _dts;    // Number of clock ticks to pause.\n    TRANS _trans; // Transition type to execute.\n\n    long _vlmOrg; // original SNDM volume, before fadeout, if we are done with fadeout, then 0\n\n#ifdef DEBUG\n    bool _fWriteBmps;\n    long _lwBmp;\n#endif // DEBUG\n\n    PGL _pglclrThumbPalette; // Palette to use for thumbnail rendering.\n\n  private:\n    MVIE(void);\n    PTAGL _PtaglFetch(void);                      // Returns a list of all tags used in movie\n    bool _FCloseCurrentScene(void);               // Closes and releases current scene, if any\n    bool _FMakeCrfValid(void);                    // Makes sure there is a file to work with.\n    bool _FUseTempFile(void);                     // Switches to using a temp file.\n    void _MoveChids(CHID chid, bool fDown);       // Move the chids of scenes in the movie.\n    bool _FDoGarbageCollection(PCFL pcfl);        // Remove unused chunks from movie.\n    void _DoSndGarbageCollection(bool fPurgeAll); // Remove unused user sounds from movie\n    bool _FDoMtrlTmplGC(PCFL pcfl);               // Material and template garbage collection\n    CHID _ChidScenNewSnd(void);                   // Choose an unused chid for a new scene child user sound\n    CHID _ChidMvieNewSnd(void);                   // Choose an unused chid for a new movie child user sound\n    void _SetTitle(PFNI pfni = pvNil);            // Set the title of the movie based on given file name.\n    bool _FIsChild(PCFL pcfl, CTG ctg, CNO cno);\n    bool _FSetPfilSave(PFNI pfni);\n\n  public:\n    //\n    // Begin client useable functions\n    //\n\n#ifdef DEBUG\n    void SetFWriteBmps(bool fWriteBmps)\n    {\n        if (fWriteBmps && !_fWriteBmps)\n            _lwBmp = 0;\n        _fWriteBmps = fWriteBmps;\n    }\n    bool FWriteBmps(void)\n    {\n        return _fWriteBmps;\n    }\n#endif // DEBUG\n\n    //\n    // Getting views\n    //\n    PMVU PmvuCur(void);\n    PMVU PmvuFirst(void);\n\n    //\n    // Create and Destroy\n    //\n    static PMVIE PmvieNew(bool fHalfMode, PMCC pmcc, FNI *pfni = pvNil, CNO cno = cnoNil);\n    // Create a movie and read it if\n    //   pfni != pvNil\n    static bool FReadRollCall(PCRF pcrf, CNO cno, PGST *ppgst, long *paridLim = pvNil);\n    // reads roll call for a given movie\n    void ForceSaveAs(void)\n    {\n        ReleasePpo(&_pfilSave);\n        _fFniSaveValid = fFalse;\n    }\n    void Flush(void);\n    bool FReadOnly(void)\n    {\n        return FPure(_fReadOnly);\n    }\n\n    ~MVIE(void);\n\n    //\n    // MCC maintenance\n    //\n    PMCC Pmcc(void)\n    {\n        return _pmcc;\n    } // Accessor for getting to client callbacks.\n    void SetMcc(PMCC pmcc)\n    {\n        ReleasePpo(&_pmcc);\n        _pmcc = pmcc;\n        _pmcc->AddRef();\n    }\n\n    //\n    // Title stuff\n    //\n    void GetName(PSTN pstnTitle); // Gets the title of the movie.\n    PSTN PstnTitle(void)\n    {\n        return &_stnTitle;\n    }\n    void ResetTitle(void);\n\n    //\n    // Scene stuff\n    //\n    long Cscen(void) // Returns number of scenes in movie\n    {\n        return _cscen;\n    }\n    long Iscen(void) // Returns the current scene number\n    {\n        return _iscen;\n    }\n    bool FSwitchScen(long iscen);                                // Loads and returns pointer to scene iscen,\n                                                                 //   saving any current scene.\n    bool FRemScen(long iscen);                                   // Removes a scene from the movie, and undo\n    bool FChangeCam(long camid);                                 // Change the camera view in the scene.\n    bool FInsTbox(RC *prc, bool fStory);                         // Insert a text box into the scene.\n    bool FHideTbox(void);                                        // Hide selected text box from the scene at this fram.\n    bool FNukeTbox(void);                                        // Remove selected text box from the scene.\n    void SelectTbox(long itbox);                                 // Select the itbox'th text box in the frame.\n    void SetPaintAcr(ACR acr);                                   // Sets color that painting will occur with.\n    void SetOnnTextCur(long onn);                                // Sets font that text will be in\n    void SetDypFontTextCur(long dypFont);                        // Sets font size that text will be in\n    void SetStyleTextCur(ulong grfont);                          // Sets font style that text will be in\n    bool FInsActr(PTAG ptag);                                    // Insert an actor into the scene.\n    bool FRemActr(void);                                         // Remove selected actor from scene.\n    bool FAddOnstage(long arid);                                 // Bring this actor onto the stage.\n    bool FRotateActr(BRA xa, BRA ya, BRA za, bool fFromHereFwd); // Rotate selected actor by degrees\n    bool FSquashStretchActr(BRS brs);                            // Squash/Stretch selected actor\n    bool FSoonerLaterActr(long nfrm);                            // Sooner/Later selected actor\n    bool FScaleActr(BRS brs);                                    // Scale selected actor\n    bool FCostumeActr(long ibprt, PTAG ptag, long cmid, tribool fCustom);\n    bool FAddScen(PTAG ptag);         // Add a scene after the current one, or change\n                                      //   change bkgd if scene is empty\n    bool FSetTransition(TRANS trans); // Set the transition type for the current scene.\n    void Play(void);                  // Start/Stop a movie playing.\n    bool FPause(WIT wit, long dts);   // Insert a pause here.\n\n    bool FAddToCmvi(PCMVI pcmvi, long *piscendIns);\n    // Add this movie to the CMVI\n    bool FSetCmvi(PCMVI pcmvi); // Re-build the movie from the CMVI\n    bool _FAddMvieToRollCall(CNO cno, long aridMin);\n    // Updates roll call for an imported movie\n    bool _FInsertScend(PGL pglscend, long iscend, PSCEND pscend);\n    // Insert an imported scene\n    void _DeleteScend(PGL pglscend, long iscend);   // Delete an imported scene\n    bool _FAdoptMsndInMvie(PCFL pcfl, CNO cnoScen); // Adopt msnd chunks as children of the movie\n\n    bool FAddBkgdSnd(PTAG ptag, tribool fLoop, tribool fQueue, long vlm = vlmNil,\n                     long sty = styNil);                                                              // Adds a sound\n    bool FAddActrSnd(PTAG ptag, tribool fLoop, tribool fQueue, tribool fActnCel, long vlm, long sty); // Adds a sound\n\n    //\n    // Auto save stuff\n    //\n    bool FAutoSave(PFNI pfni = pvNil, bool fCleanRollCall = fFalse); // Save movie in temp file\n    bool FSaveTagSnd(TAG *ptag)\n    {\n        return TAGM::FSaveTag(ptag, _pcrfAutoSave, fTrue);\n    }\n    bool FCopySndFileToMvie(PFIL pfil, long sty, CNO *pcno, PSTN pstn = pvNil);\n    bool FVerifyVersion(PCFL pcfl, CNO *pcno = pvNil);\n    bool FEnsureAutosave(PCRF *pcrf = pvNil);\n    bool FCopyMsndFromPcfl(PCFL pcfl, CNO cnoSrc, CNO *pcnoDest);\n    bool FResolveSndTag(PTAG ptag, CHID chid, CNO cnoScen = cnoNil, PCRF pcrf = pvNil);\n    bool FChidFromUserSndCno(CNO cno, CHID *pchid);\n    void SetDocClosing(bool fClose)\n    {\n        _fDocClosing = fClose;\n    }\n    bool FQueryDocClosing(void)\n    {\n        return _fDocClosing;\n    }\n    bool FQueryGCSndsOnClose(void)\n    {\n        return _fGCSndsOnClose;\n    }\n    bool FUnusedSndsUser(bool *pfHaveValid = pvNil);\n\n    //\n    // Roll call\n    //\n    bool FGetArid(long iarid, long *parid, PSTN pstn, long *pcactRef,\n                  PTAG ptagTmpl = pvNil); // return actors one by one\n    bool FChooseArid(long arid);          // user chose arid in roll call\n    long AridSelected(void);\n    bool FGetName(long arid, PSTN pstn);      // Return the name of a specific actor.\n    bool FNameActr(long arid, PSTN pstn);     // Set the name of this actor.\n    void ChangeActrTag(long arid, PTAG ptag); // Change an actor's TMPL tag\n    long CmactrMac(void)\n    {\n        AssertThis(0);\n        return _pgstmactr->IvMac();\n    }\n    bool FIsPropBrwsIarid(long iarid); // Identify the roll call browser iarids\n    bool FIsIaridTdt(long iarid);      // 3d spletter\n\n    //\n    // Overridden DOCB functions\n    //\n    bool FGetFni(FNI *pfni);                  // For saving to a file\n    bool FSave(long cid);                     // For saving to a file, (calls FGetFni and FSaveToFni)\n    bool FSaveToFni(FNI *pfni, bool fSetFni); // For doing a Save As or Save\n    PDMD PdmdNew(void);                       // Do not use!\n    bool FGetFniSave(FNI *pfni);              // For saving via the portfolio.\n\n    //\n    // Drawing stuff\n    //\n    void InvalViews(void);       // Invalidates all views on the movie.\n    void InvalViewsAndScb(void); // Invalidates all views of movie and scroll bars.\n    void MarkViews(void);        // Marks all views on the movie.\n    TRANS Trans(void)\n    {\n        return _trans;\n    } // Current transition in effect.\n    void SetTrans(TRANS trans)\n    {\n        _trans = trans;\n    }                                                                 // Set transition\n    void DoTrans(PGNV pgnvDst, PGNV pgnvSrc, RC *prcDst, RC *prcSrc); // Draw current transition into GNVs\n\n    //\n    // Sound stuff\n    //\n    bool FSoundsEnabled(void)\n    {\n        return (_fSoundsEnabled);\n    }\n    void SetFSoundsEnabled(bool f)\n    {\n        _fSoundsEnabled = f;\n    }\n\n    //\n    // End client callable functions\n    //\n\n    //\n    // Begin internal movie engine functions\n    //\n\n    //\n    // Command handlers\n    //\n    bool FCmdAlarm(CMD *pcmd);  // Called at timer expiration (playback).\n    bool FCmdRender(CMD *pcmd); // Called to render a frame during playback.\n\n    //\n    // Automated test APIs\n    //\n    long LwQueryExists(long lwType, long lwId);     // Called by other apps to find if an actor/tbox exists.\n    long LwQueryLocation(long lwType, long lwId);   // Called by other apps to find where actor/tbox exists.\n    long LwSetMoviePos(long lwScene, long lwFrame); // Called by other apps to set the movie position.\n\n    //\n    // Scene stuff\n    //\n    PSCEN Pscen(void)\n    {\n        return _pscenOpen;\n    }                                           // The currently open scene.\n    bool FInsScenCore(long iscen, SCEN *pscen); // Insert this scene as scene number.\n    bool FNewScenInsCore(long iscen);           // Inserts a blank scene before iscen\n    bool FRemScenCore(long iscen);              // Removes a scene from the movie\n    bool FPasteActr(PACTR pactr);               // Pastes an actor into current scene.\n    bool FPasteActrPath(PACTR pactr);           // Pastes the path onto selected actor.\n    PMSQ Pmsq(void)\n    {\n        return _pmsq;\n    } // Sound queue\n\n    //\n    // Runtime Pausing\n    //\n    void DoPause(WIT wit, long dts) // Make the movie pause during run.\n    {\n        _wit = wit;\n        _dts = dts;\n    }\n\n    //\n    // Material stuff\n    //\n    bool FInsertMtrl(PMTRL pmtrl, PTAG ptag); // Inserts a material into this movie.\n\n    //\n    // 3-D Text stuff\n    //\n    bool FInsTdt(PSTN pstn, long tdts, PTAG ptagTdf); // Inserts a TDT into this movie.\n    bool FChangeActrTdt(PACTR pactr, PSTN pstn, long tdts, PTAG ptagTdf);\n\n    //\n    // Marking (overridden DOCB methods)\n    //\n    virtual bool FDirty(void) // Has the movie changed since last saved?\n    {\n        return _fAutosaveDirty || _fDirty;\n    }\n    virtual void SetDirty(bool fDirty = fTrue) // Mark the movie as changed.\n    {\n        _fAutosaveDirty = fDirty;\n    }\n\n    //\n    // Roll call\n    //\n    bool FAddToRollCall(ACTR *pactr, PSTN pstn);                    // Add an actor to the roll call\n    void RemFromRollCall(ACTR *pactr, bool fDelIfOnlyRef = fFalse); // Remove an actor from the roll call.\n    void BuildActionMenu(void);                                     // Called when the selected actor has changed.\n\n    //\n    // Overridden DOCB functions\n    //\n    PDDG PddgNew(PGCB pgcb);    // For creating a view on a movie.\n    bool FAddUndo(PMUNB pmunb); // Add an item to the undo list\n    void ClearUndo(void);\n\n    //\n    // Accessors for MVUs only.\n    //\n#ifdef DEBUG\n    void SetFPlaying(bool f)\n    {\n        _fPlaying = f;\n        if (!f)\n            SetFWriteBmps(fFalse);\n    }  // Set the playing flag.\n#else  // DEBUG\n    void SetFPlaying(bool f)\n    {\n        _fPlaying = f;\n    } // Set the playing flag.\n#endif // !DEBUG\n    void SetFStopPlaying(bool f)\n    {\n        _fStopPlaying = f;\n    } // INTERNAL USE ONLY\n    bool FStopPlaying(void)\n    {\n        return (_fStopPlaying);\n    } // INTERNAL USE ONLY\n    bool FPlaying(void)\n    {\n        return _fPlaying;\n    } // Query the playing flag.\n    PCLOK Pclok()\n    {\n        return &_clok;\n    } // For getting the clock for playing\n    void SetFIdleSeen(bool fIdle)\n    {\n        _fIdleSeen = fIdle;\n    }\n    bool FIdleSeen(void)\n    {\n        return _fIdleSeen;\n    }\n\n    //\n    // Accessor for getting to the Brender world.\n    //\n    PBWLD Pbwld(void)\n    {\n        return _pbwld;\n    }\n\n    //\n    // Frame rate information\n    //\n    long Cnfrm(void)\n    {\n        return _cnfrm;\n    }\n    ulong TsStart(void)\n    {\n        return _tsStart;\n    }\n\n    //\n    // Thumbnail stuff\n    //\n    PGL PglclrThumbPalette(void)\n    {\n        AssertThis(0);\n        return _pglclrThumbPalette;\n    }\n    void SetThumbPalette(PGL pglclr)\n    {\n        ReleasePpo(&_pglclrThumbPalette);\n        _pglclrThumbPalette = pglclr;\n        pglclr->AddRef();\n    }\n};\n\n#endif // !MOVIE_H\n"
  },
  {
    "path": "inc/msnd.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    msnd.h: Movie sound class\n\n    Primary Authors: *****, *****\n    Status:  Reviewed\n\n    BASE ---> BACO ---> MSND\n    BASE ---> CMH  ---> MSQ\n\n    NOTE: when the MSQ stops sounds, it does it based on sound class (scl)\n    and not sound queue (sqn).  This is slightly less efficient, because the\n    SNDM must search all open sound queues for the given scl's when we stop\n    sounds; however, the code is made much simpler, because the sqn is\n    generated on the fly based on whether the sound is for an actor or\n    background, the sty of the sound, and (in the case of actor sounds) the\n    arid of the source of the sound.  If we had to enumerate all sounds\n    based on that information, we'd wind up calling into the SNDM a minimum\n    of three times, plus three times for each actor; not only is the\n    enumeration on this side inefficient (the MSQ would have to call into the\n    MVIE to enumerate all the known actors), but the number of calls to SNDM\n    gets to be huge!  On top of all that, we'd probably wind up finding some\n    bugs where a sound is still playing for an actor that's been deleted, and\n    possibly fail to stop the sound properly (Murphy reigning strong in any\n    software project).\n\n***************************************************************************/\n#ifndef MSND_H\n#define MSND_H\n\n// Sound types\nenum\n{\n    styNil = 0,\n    styUnused, // Retain.  Existing content depends on subsequent values\n    stySfx,\n    stySpeech,\n    styMidi,\n    styLim\n};\n\n// Sound-class-number constants\nconst long sclNonLoop = 0;\nconst long sclLoopWav = 1;\nconst long sclLoopMidi = 2;\n\n#define vlmNil (-1)\n\n// Sound-queue-number constants\nenum\n{\n    sqnActr = 0x10000000,\n    sqnBkgd = 0x20000000,\n    sqnLim\n};\n#define ksqnStyShift 16; // Shift for the sqnsty\n\n// Sound Queue Delta times\n// Any sound times less than ksqdtimLong will be clocked & stopped\nconst long kdtimOffMsq = 0;\nconst long kdtimLongMsq = klwMax;\nconst long kdtim2Msq = ((kdtimSecond * 2) * 10) / 12; // adjustment -> 2 seconds\nconst long kSndSamplesPerSec = 22050;\nconst long kSndBitsPerSample = 8;\nconst long kSndBlockAlign = 1;\nconst long kSndChannels = 1;\n\n/****************************************\n\n    Movie Sound on file\n\n****************************************/\nstruct MSNDF\n{\n    short bo;\n    short osk;\n    long sty;        // sound type\n    long vlmDefault; // default volume\n    bool fInvalid;   // Invalid flag\n};\nconst BOM kbomMsndf = 0x5FC00000;\n\nconst CHID kchidSnd = 0; // Movie Sound sound/music\n\n// Function to stop all movie sounds.\ninline void StopAllMovieSounds(void)\n{\n    vpsndm->StopAll(sqnNil, sclNonLoop);\n    vpsndm->StopAll(sqnNil, sclLoopWav);\n    vpsndm->StopAll(sqnNil, sclLoopMidi);\n}\n\n/****************************************\n\n    The Movie Sound class\n\n****************************************/\ntypedef class MSND *PMSND;\n#define MSND_PAR BACO\n#define kclsMSND 'MSND'\nclass MSND : public MSND_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    // these are inherent to the msnd\n    CTG _ctgSnd;       // CTG of the WAV or MIDI chunk\n    CNO _cnoSnd;       // CNO of the WAV or MIDI chunk\n    PRCA _prca;        // file that the WAV/MIDI lives in\n    long _sty;         // MIDI, speech, or sfx\n    long _vlm;         // Volume of the sound\n    tribool _fNoSound; // Set if silent sound\n    STN _stn;          // Sound name\n    bool _fInvalid;    // Invalid flag\n\n  protected:\n    bool _FInit(PCFL pcfl, CTG ctg, CNO cno);\n\n  public:\n    static bool FReadMsnd(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n    static bool FGetMsndInfo(PCFL pcfl, CTG ctg, CNO cno, bool *pfInvalid = pvNil, long *psty = pvNil,\n                             long *pvlm = pvNil);\n    static bool FCopyMidi(PFIL pfilSrc, PCFL pcflDest, CNO *pcno, PSTN pstn = pvNil);\n    static bool FWriteMidi(PCFL pcflDest, PMIDS pmids, STN *pstnName, CNO *pcno);\n    static bool FCopyWave(PFIL pfilSrc, PCFL pcflDest, long sty, CNO *pcno, PSTN pstn = pvNil);\n    static bool FWriteWave(PFIL pfilSrc, PCFL pcflDest, long sty, STN *pstnName, CNO *pcno);\n    ~MSND(void);\n\n    static long SqnActr(long sty, long objID);\n    static long SqnBkgd(long sty, long objID);\n    long Scl(bool fLoop)\n    {\n        return (fLoop ? ((_sty == styMidi) ? sclLoopMidi : sclLoopWav) : sclNonLoop);\n    }\n    long SqnActr(long objID)\n    {\n        AssertThis(0);\n        return SqnActr(_sty, objID);\n    }\n    long SqnBkgd(long objID)\n    {\n        AssertThis(0);\n        return SqnBkgd(_sty, objID);\n    }\n\n    bool FInvalidate(void);\n    bool FValid(void)\n    {\n        AssertBaseThis(0);\n        return FPure(!_fInvalid);\n    }\n    PSTN Pstn(void)\n    {\n        AssertThis(0);\n        return &_stn;\n    }\n    long Sty(void)\n    {\n        AssertThis(0);\n        return _sty;\n    }\n    long Vlm(void)\n    {\n        AssertThis(0);\n        return _vlm;\n    }\n    long Spr(long tool); // Return Priority\n    tribool FNoSound(void)\n    {\n        AssertThis(0);\n        return _fNoSound;\n    }\n\n    void Play(long objID, bool fLoop, bool fQueue, long vlm, long spr, bool fActr = fFalse, ulong dtsStart = 0);\n};\n\n/****************************************\n\n    Movie Sound Queue  (MSQ)\n    Sounds to be played at one time.\n    These are of all types, queues &\n    classes\n\n****************************************/\ntypedef class MSQ *PMSQ;\n#define MSQ_PAR CMH\n#define kclsMSQ 'MSQ'\n\nconst long kcsqeGrow = 10; // quantum growth for sqe\n\n// Movie sound queue entry\nstruct SQE\n{\n    long objID;     // Unique identifier (actor id, eg)\n    bool fLoop;     // Looping sound flag\n    bool fQueue;    // Queued sound\n    long vlmMod;    // Volume modification\n    long spr;       // Priority\n    bool fActr;     // Actor vs Scene (to generate unique class)\n    PMSND pmsnd;    // PMSND\n    ulong dtsStart; // How far into the sound to start playing\n};\n\nclass MSQ : public MSQ_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(MSQ)\n\n  protected:\n    PGL _pglsqe; // Sound queue entries\n    long _dtim;  // Time sound allowed to play\n    PCLOK _pclok;\n\n  public:\n    MSQ(long hid) : MSQ_PAR(hid)\n    {\n    }\n    ~MSQ(void);\n\n    static PMSQ PmsqNew(void);\n\n    bool FEnqueue(PMSND pmsnd, long objID, bool fLoop, bool fQueue, long vlm, long spr, bool fActr = fFalse,\n                  ulong dtsStart = 0, bool fLowPri = fFalse);\n    void PlayMsq(void);  // Destroys queue as it plays\n    void FlushMsq(void); // Without playing the sounds\n    bool FCmdAlarm(PCMD pcmd);\n\n    // Sound on/off & duration control\n    void SndOff(void)\n    {\n        AssertThis(0);\n        _dtim = kdtimOffMsq;\n    }\n    void SndOnShort(void)\n    {\n        AssertThis(0);\n        _dtim = kdtim2Msq;\n    }\n    void SndOnLong(void)\n    {\n        AssertThis(0);\n        _dtim = kdtimLongMsq;\n    }\n    void StopAll(void)\n    {\n        if (pvNil != _pclok)\n            _pclok->Stop();\n\n        StopAllMovieSounds();\n    }\n    bool FPlaying(bool fLoop)\n    {\n        AssertThis(0);\n        return (fLoop ? (vpsndm->FPlayingAll(sqnNil, sclLoopMidi) || vpsndm->FPlayingAll(sqnNil, sclLoopWav))\n                      : vpsndm->FPlayingAll(sqnNil, sclNonLoop));\n    }\n\n    // Save/Restore snd-on duration times\n    long DtimSnd(void)\n    {\n        AssertThis(0);\n        return _dtim;\n    }\n    void SndOnDtim(long dtim)\n    {\n        AssertThis(0);\n        _dtim = dtim;\n    }\n};\n\n#endif MSND_H\n"
  },
  {
    "path": "inc/mtrl.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*************************************************************************\n\n    mtrl.h: Material and custom material classes\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    BASE ---> BACO ---> MTRL\n    BASE ---> BACO ---> CMTL\n\n*************************************************************************/\n#ifndef MTRL_H\n#define MTRL_H\n\n// CMTL on File\nstruct CMTLF\n{\n    short bo;\n    short osk;\n    long ibset; // which body part set this CMTL attaches to\n};\nconst BOM kbomCmtlf = 0x5c000000;\n\n// material on file (MTRL chunk)\nstruct MTRLF\n{\n    short bo;            // byte order\n    short osk;           // OS kind\n    br_colour brc;       // RGB color\n    br_ufraction brufKa; // ambient component\n    br_ufraction brufKd; // diffuse component\n    br_ufraction brufKs; // specular component\n    byte bIndexBase;     // base of palette for this color\n    byte cIndexRange;    // count of entries in palette for this color\n    BRS rPower;          // specular exponent\n};\nconst BOM kbomMtrlf = 0x5D530000;\n\n/****************************************\n    The MTRL class.  There are two kinds\n    of MTRLs: solid-color MTRLs and\n    texmap materials.  Texmap MTRLs have\n    TMAPs under the MTRL chunk with chid\n    0.\n****************************************/\ntypedef class MTRL *PMTRL;\n#define MTRL_PAR BACO\n#define kclsMTRL 'MTRL'\nclass MTRL : public MTRL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    static PTMAP _ptmapShadeTable; // shade table for all MTRLs\n    PBMTL _pbmtl;\n\n  protected:\n    MTRL(void)\n    {\n        _pbmtl = pvNil;\n    } // can't instantiate directly; must use FReadMtrl\n    bool _FInit(PCRF pcrf, CTG ctg, CNO cno);\n\n  public:\n    static bool FSetShadeTable(PCFL pcfl, CTG ctg, CNO cno);\n    static PMTRL PmtrlNew(long iclrBase = ivNil, long cclr = ivNil);\n    static bool FReadMtrl(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n    static PMTRL PmtrlNewFromPix(PFNI pfni);\n    static PMTRL PmtrlNewFromBmp(PFNI pfni, PGL pglclr = pvNil);\n    static PMTRL PmtrlFromBmtl(PBMTL pbmtl);\n    ~MTRL(void);\n    PTMAP Ptmap(void);\n    PBMTL Pbmtl(void)\n    {\n        return _pbmtl;\n    }\n    bool FWrite(PCFL pcfl, CTG ctg, CNO *pcno);\n#ifdef DEBUG\n    static void MarkShadeTable(void);\n#endif // DEBUG\n};\n\n/****************************************\n    The CMTL (custom material) class\n    This manages a set of materials to\n    apply to a body part set\n****************************************/\ntypedef class CMTL *PCMTL;\n#define CMTL_PAR BACO\n#define kclsCMTL 'CMTL'\nclass CMTL : public CMTL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PMTRL *_prgpmtrl; // _cbprt PMTRLs, one per body part in this CMTL's set\n    PMODL *_prgpmodl; // _cbprt PMODLs, one per body part in this CMTL's set\n    long _cbprt;      // count of body parts in this CMTL\n    long _ibset;      // body part set that this CMTL should be applied to\n\n  protected:\n    bool _FInit(PCRF pcrf, CTG ctg, CNO cno);\n    CMTL(void)\n    {\n    } // can't instantiate directly; must use PcmtlRead\n\n  public:\n    static PCMTL PcmtlNew(long ibset, long cbprt, PMTRL *prgpmtrl);\n    static bool FReadCmtl(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n    static bool FHasModels(PCFL pcfl, CTG ctg, CNO cno);\n    static bool FEqualModels(PCFL pcfl, CNO cno1, CNO cno2);\n    ~CMTL(void);\n    PBMTL Pbmtl(long ibmtl);\n    PMODL Pmodl(long imodl);\n    long Ibset(void)\n    {\n        return _ibset;\n    }\n    long Cbprt(void)\n    {\n        return _cbprt;\n    }\n    bool FHasModels(void);\n};\n\n#endif // !MTRL_H\n"
  },
  {
    "path": "inc/popup.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    popup.h: Popup menu classes\n\n    Primary Author: ******\n             MPFNT: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    BASE ---> CMH ---> GOB ---> GOK ---> BRWD ---> BRWL ---> MP\n                                          |\n                                          +------> BRWT ---> MPFNT\n\n***************************************************************************/\n#ifndef POPUP_H\n#define POPUP_H\n\n/************************************\n    MP - Generic popup menu class\n*************************************/\n#define MP_PAR BRWL\n#define kclsMP 'MP'\ntypedef class MP *PMP;\nclass MP : public MP_PAR\n{\n    ASSERT\n    MARKMEM\n    RTCLASS_DEC\n    CMD_MAP_DEC(MP)\n\n  protected:\n    long _cid;  // cid to enqueue to apply selection\n    PCMH _pcmh; // command handler to enqueue command to\n\n  protected:\n    virtual void _ApplySelection(long ithumSelect, long sid);\n    virtual long _IthumFromThum(long thumSelect, long sidSelect);\n    MP(PGCB pgcb) : MP_PAR(pgcb)\n    {\n    }\n    bool _FInit(PRCA prca);\n\n  public:\n    static PMP PmpNew(long kidParent, long kidMenu, PRCA prca, PCMD pcmd, BWS bws, long ithumSelect, long sidSelect,\n                      CKI ckiRoot, CTG ctg, PCMH pcmh, long cid, bool fMoveTop);\n\n    virtual bool FCmdSelIdle(PCMD pcmd);\n};\n\n/************************************\n    MPFNT - Font popup menu class\n*************************************/\n#define MPFNT_PAR BRWT\n#define kclsMPFNT 'mpft'\ntypedef class MPFNT *PMPFNT;\nclass MPFNT : public MPFNT_PAR\n{\n    ASSERT\n    MARKMEM\n    RTCLASS_DEC\n    CMD_MAP_DEC(MPFNT)\n\n  protected:\n    void _AdjustRc(long cthum, long cfrm);\n\n    virtual void _ApplySelection(long ithumSelect, long sid);\n    virtual bool _FSetThumFrame(long istn, PGOB pgobPar);\n    MPFNT(PGCB pgcb) : MPFNT_PAR(pgcb)\n    {\n    }\n\n  public:\n    static PMPFNT PmpfntNew(PRCA prca, long kidParent, long kidMenu, PCMD pcmd, long ithumSelect, PGST pgst);\n\n    virtual bool FCmdSelIdle(PCMD pcmd);\n};\n\n#endif // POPUP_H\n"
  },
  {
    "path": "inc/portf.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Portfolio related includes.\n\n    Primary Author: ******\n    Review Status: Not yet reviewed\n\n***************************************************************************/\n\n// Top level portoflio routines.\nbool FPortGetFniMovieOpen(FNI *pfni);\nbool FPortDisplayWithIds(FNI *pfni, bool fOpen, long lFilterLabel, long lFilterExt, long lTitle, LPTSTR lpstrDefExt,\n                         PSTN pstnDefFileName, FNI *pfniInitialDir, ulong grfPrevType, CNO cnoWave);\nbool FPortGetFniOpen(FNI *pfni, LPTSTR lpstrFilter, LPTSTR lpstrTitle, FNI *pfniInitialDir, ulong grfPrevType,\n                     CNO cnoWave);\nbool FPortGetFniSave(FNI *pfni, LPTSTR lpstrFilter, LPTSTR lpstrTitle, LPTSTR lpstrDefExt, PSTN pstnDefFileName,\n                     ulong grfPrevType, CNO cnoWave);\n\nUINT CALLBACK OpenHookProc(HWND hWnd, UINT msg, UINT wParam, LONG lParam);\nvoid OpenPreview(HWND hwnd, PGNV pgnvOff, RCS *prcsPreview);\nvoid RepaintPortfolio(HWND hwndCustom);\n\nstatic WNDPROC lpBtnProc;\nLRESULT CALLBACK SubClassBtnProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);\nstatic WNDPROC lpPreviewProc;\nLRESULT CALLBACK SubClassPreviewProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);\nstatic WNDPROC lpDlgProc;\nLRESULT CALLBACK SubClassDlgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);\n\ntypedef struct dlginfo\n{\n    bool fIsOpen;      // fTrue if Open file, (ie not Save file)\n    bool fDrawnBkgnd;  // fTrue if portfolio background bitmap has been displayed.\n    RCS rcsDlg;        // Initial size of the portfolio common dlg window client area.\n    ulong grfPrevType; // Bits for types of preview required, (eg movie, sound etc) == 0 if no preview\n    CNO cnoWave;       // Wave file cno for audio when portfolio is invoked.\n} DLGINFO;\ntypedef DLGINFO *PDLGINFO;\n\nenum\n{\n    fpfNil = 0x0000,\n    fpfPortPrevMovie = 0x0001,\n    fpfPortPrevSound = 0x0002,\n    fpfPortPrevTexture = 0x0004\n};\n"
  },
  {
    "path": "inc/pos3.chh",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// New #defines for all positions\n//\n// Supersedes stdiopos.chh AND pos2.chh\n\n// GENERIC BROWSER ------------------------------------------------------------\n\n#define kxpBrwsPageNumWidth\t\t\t    64\n#define kypBrwsPageNumHeight\t\t\t29              \n\n#define kxpregGenericCancel\t\t\t\t0\n#define kypregGenericCancel\t\t\t\t48\n#define kxpregGenericOk                 0\n#define kypregGenericOk                 48\n\n\n\n// ACTION BROWSER ------------------------------------------------------------\n\n#define kxpBrwsAction   \t\t\t62\n#define kypBrwsAction   \t\t\t100\n#define kxpregBrwsAction   \t\t\t0\n#define kypregBrwsAction   \t\t\t0\n\n#define kxpBrwsActionPrevLeft\t\t312\n#define kypBrwsActionPrevTop\t\t12\n#define kxpBrwsActionPrevRight\t\t496\n#define kypBrwsActionPrevBottom\t\t282\n\n#define kxpBrwsActionBackCel\t\t447\n#define kypBrwsActionBackCel\t\t290\n#define kxpregBrwsActionBackCel\t\t0\n#define kypregBrwsActionBackCel\t\t0\n\n#define kxpBrwsActionFwdCel\t\t\t475\n#define kypBrwsActionFwdCel\t\t\t290\n#define kxpregBrwsActionFwdCel\t\t0\n#define kypregBrwsActionFwdCel\t\t0\n\n#define kxpregBrwsActionFrame       0\n#define kypregBrwsActionFrame       0\n#define kxpregBrwsActionPrev        0\n#define kypregBrwsActionPrev        0\n\n#define kdxpAction              \t516\n#define kdypAction  \t\t\t\t372\n#define kdxpActionLeft          \t15\n#define kdxpActionRight         \t206\n#define kdypActionTop           \t32\n#define kdypActionBottom        \t57\n\n#define kdxpActionSpacing       \t5\n#define kdypActionSpacing       \t3\n#define kdxpActionFrame         \t138\n#define kdypActionFrame         \t25\n#define kdxpActionFrameBorder   \t6\n#define kdypActionFrameBorder   \t4\n\n#define kxpActionPageFwd        \t204\n#define kypActionPageFwd        \t320\n\n#define kxpActionPageBack       \t54\n#define kypActionPageBack       \t320\n\n#define kxpActionPageNum        \t123\n#define kypActionPageNum        \t330\n\n#define kxpActionOk             \t431\n#define kypActionOk             \t368\n#define kxpActionCancel         \t381\n#define kypActionCancel         \t368\n\n// ACTOR BROWSER ------------------------------------------------------------\n\n#define kxpBrwsActor   \t\t\t62\n#define kypBrwsActor   \t\t\t47\n#define kxpregBrwsActor   \t\t0\n#define kypregBrwsActor   \t\t0\n\n#define kdxpActor               516\n#define kdypActor               372\n#define kdxpActorLeft           30\n#define kdxpActorRight          30\n#define kdypActorTop            38\n#define kdypActorBottom         58\n\n#define kdxpActorSpacing        14\n#define kdypActorSpacing        14\n#define kdxpActorFrame          80\n#define kdypActorFrame          80\n#define kdxpActorFrameBorder    4\n#define kdypActorFrameBorder    4\n#define kxpActorPageFwd         304\n#define kypActorPageFwd         322\n#define kxpActorPageBack        155\n#define kypActorPageBack        322\n#define kxpActorPageNum         228\n#define kypActorPageNum         332\n#define kxpActorCancel\t\t\t437\n#define kypActorCancel\t\t\t368\n\n\n#define kxpregBrwsActorFrame    0\n#define kypregBrwsActorFrame    0\n\n// PROP BROWSER ------------------------------------------------------------\n\n#define kxpBrwsProp   \t\t\t62\n#define kypBrwsProp   \t\t\t47\n#define kxpregBrwsProp   \t\t0\n#define kypregBrwsProp   \t\t0\n\n#define kdxpProp               \t516\n#define kdypProp               \t372\n#define kdxpPropLeft           \t30\n#define kdxpPropRight          \t30\n#define kdypPropTop            \t38\n#define kdypPropBottom         \t58\n\n#define kdxpPropSpacing        \t14\n#define kdypPropSpacing        \t14\n#define kdxpPropFrame          \t80\n#define kdypPropFrame          \t80\n#define kdxpPropFrameBorder    \t4\n#define kdypPropFrameBorder    \t4\n#define kxpPropPageFwd         \t304\n#define kypPropPageFwd         \t322\n#define kxpPropPageBack        \t155\n#define kypPropPageBack        \t322\n#define kxpPropPageNum         \t228\n#define kypPropPageNum         \t332\n#define kxpPropCancel\t\t\t437\n#define kypPropCancel\t\t\t368\n\n\n#define kxpregBrwsPropFrame    \t0\n#define kypregBrwsPropFrame    \t0\n\n\n\n\n\n// SETTINGS/SCENE BROWSER ------------------------------------------------------------\n\n#define kxpBrwsBackground   \t320\n#define kypBrwsBackground   \t418\n#define kxpregBrwsBackground   \t258\n#define kypregBrwsBackground   \t370\n\n\n#define kdxpScene               516\n#define kdypScene               372\n#define kdxpSceneLeft           40\n#define kdxpSceneRight          40\n#define kdypSceneTop            40\n#define kdypSceneBottom         58\n#define kdxpSceneSpacing        14\n#define kdypSceneSpacing        9\n#define kdxpSceneFrame          136\n#define kdypSceneFrame          78\n#define kdxpSceneFrameBorder    4\n#define kdypSceneFrameBorder    4\n#define kxpScenePageFwd         303\n#define kypScenePageFwd         320\n#define kxpScenePageBack        155\n#define kypScenePageBack        320\n#define kxpScenePageNum         226\n#define kypScenePageNum         330\n#define kxpSceneCancel\t\t\t437\n#define kypSceneCancel\t\t\t368\n\n#define kxpregBrwsSceneFrame    0\n#define kypregBrwsSceneFrame   \t0\n\n// SETTINGS/SCENE BROWSER ------------------------------------------------------------\n\n#define kxpBrwsCamera   \t\t62\n#define kypBrwsCamera   \t\t100\n#define kxpregBrwsCamera   \t\t0\n#define kypregBrwsCamera   \t\t0\n\n#define kdxpCamera              516\n#define kdypCamera              372\n#define kdxpCameraLeft          40\n#define kdxpCameraRight         40\n#define kdypCameraTop           40\n#define kdypCameraBottom        58\n#define kdxpCameraSpacing       14\n#define kdypCameraSpacing       9\n#define kdxpCameraFrame         136\n#define kdypCameraFrame         78\n#define kdxpCameraFrameBorder   4\n#define kdypCameraFrameBorder   4\n#define kxpCameraPageFwd        303\n#define kypCameraPageFwd        320\n#define kxpCameraPageBack       155\n#define kypCameraPageBack       320\n#define kxpCameraPageNum        226\n#define kypCameraPageNum        330\n#define kxpCameraCancel\t\t\t437\n#define kypCameraCancel\t\t\t368\n\n\n#define kxpregBrwsCameraFrame   0\n#define kypregBrwsCameraFrame   0\n\n// TEXT BROWSER ---------------------------------------------------------------\n\n#define kxpBrwsTextCreate   \t132\n#define kypBrwsTextCreate   \t48\n#define kxpregBrwsTextCreate   \t0\n#define kypregBrwsTextCreate   \t0\n\n#define kxpCTextsStory   \t\t42\n#define kypCTextsStory   \t\t49\n#define kxpregCTextsStory   \t0\n#define kypregCTextsStory   \t0\n\n#define kxpCTextsScroll   \t\t197\n#define kypCTextsScroll   \t\t48\n#define kxpregCTextsScroll   \t0\n#define kypregCTextsScroll   \t0\n\n#define kxpCTextsCancel\t\t\t298\n#define kypCTextsCancel\t\t\t205\n\n// SOUND: MUSIC, SOUNDFX and SPEECH BROWSERS ---------------------------------\n\n// all sound browsers use the following: music + stuff is bogus.\n\n#define kxpBrwsSoundsBackground   \t\t62\n#define kypBrwsSoundsBackground   \t\t48\n#define kxpregBrwsSoundsBackground   \t0\n#define kypregBrwsSoundsBackground   \t0\n\n#define kxpBrwsImportBackground\t        62\n#define kypBrwsImportBackground\t        48\n#define kxpregBrwsImportBackground\t    0\n#define kypregBrwsImportBackground\t    0\n\n\n#define kxpMusicBackground   \t62\n#define kypMusicBackground   \t48\n#define kxpregMusicBackground   0\n#define kypregMusicBackground   0\n\n#define kxpEfxBackground   \t\t62\n#define kypEfxBackground   \t\t48\n#define kxpregEfxBackground   \t0\n#define kypregEfxBackground   \t0\n\n#define kxpRecordingsBackground   \t\t62\t\n#define kypRecordingsBackground   \t\t48\n#define kxpregRecordingsBackground   \t0\n#define kypregRecordingsBackground   \t0\n\n#define kxpBrwsSoundsRecord\t\t\t\t62\n#define kypBrwsSoundsRecord         \t48\n#define kxpregBrwsSoundsRecord\t\t\t0\n#define kypregBrwsSoundsRecord\t\t\t0\n\n\n#define kdxpSound                       516\n#define kdypSound                       372\n#define kdxpSoundLeft                   31\n#define kdxpSoundRight                  31\n#define kdypSoundTop                    34\n#define kdypSoundBottom                 50\n#define kdxpSoundSpacing                20\n#define kdypSoundSpacing                3\n#define kdxpSoundFrame                  138\n#define kdypSoundFrame                  25\n#define kdxpSoundFrameBorder    \t\t6\n#define kdypSoundFrameBorder    \t\t4\n#define kxpSoundPageFwd                 303\n#define kypSoundPageFwd                 320\n#define kxpSoundPageBack                154\n#define kypSoundPageBack                320\n#define kxpSoundPageNum                 230\n#define kypSoundPageNum                 331\n#define kxpSoundOk                      437\n#define kypSoundOk                      368\n#define kxpSoundCancel                  387\n#define kypSoundCancel                  368\n\n#define kxpBrowserRecord     \t\t\t54\n#define kypBrowserRecord     \t\t\t368\n#define kxpregBrowserRecord\t\t\t\t25\n#define kypregBrowserRecord\t\t\t\t48\n\n#define kxpBrowserImport     \t\t\t104\n#define kypBrowserImport     \t\t\t368\n#define kxpregBrowserImport     \t\t25\n#define kypregBrowserImport     \t\t48\n\n// Sound import browser\n\n#define kdxpImportFrame                 138\n#define kdypImportFrame                 25\n#define kdxpImportFrameBorder    \t\t6\n#define kdypImportFrameBorder    \t\t4\n#define kxpImportPageFwd                303\n#define kypImportPageFwd                320\n#define kxpImportPageBack               154\n#define kypImportPageBack               320\n#define kxpImportOk                     437\n#define kypImportOk                     368\n#define kxpImportCancel                 387\n#define kypImportCancel                 368\n#define kxpImportPageNum               \t230\n#define kypImportPageNum               \t331\n#define kxpImportPageNumWidth\t\t\t64\n#define kypImportPageNumHeight\t\t\t29\n\n\n// STUDIO MASTER CONTROLS ---------------------------------------------------------------\n\n#define kxpHelpAnchor\t\t591\n#define kypHelpAnchor\t\t405\n#define kxpregHelpAnchor\t0\n#define kypregHelpAnchor\t0\n\n#define kxpFps\t\t\t\t-10\n#define kypFps\t\t\t\t0\n\n#define kxpPlay   \t\t\t314\n#define kypPlay   \t\t\t414\n#define kxpregPlay   \t\t13\n#define kypregPlay   \t\t0\n\n#define kdypVolumeSlider\t35\t// Height of volume slider\n\n#define kxpVolumeThumb   \t6\n#define kypVolumeThumb   \t6\n#define kxpregVolumeThumb   6\n#define kypregVolumeThumb   6\n\n#define kxpVolumeSlider   \t345\n#define kypVolumeSlider   \t414\n#define kxpregVolumeSlider  14\n#define kypregVolumeSlider  0\n\n#define kxpUndo   \t\t\t397\n#define kypUndo   \t\t\t411\n#define kxpregUndo   \t\t26\n#define kypregUndo   \t\t0\n\n\n#define kxpCutCopyPaste   \t450\n#define kypCutCopyPaste   \t411\n#define kxpregCutCopyPaste  26\n#define kypregCutCopyPaste  0\n\n#define kxpPortfolio   \t\t507\n#define kypPortfolio   \t\t411\n#define kxpregPortfolio   \t26\n#define kypregPortfolio   \t0\n\n#define kxpBook   \t\t\t560\n#define kypBook   \t\t\t411\n#define kxpregBook   \t\t26\n#define kypregBook   \t\t0\n\n#define kxpMap   \t\t\t613\n#define kypMap   \t\t\t411\n#define kxpregMap   \t\t26\n#define kypregMap   \t\t0\n\n#define kxpExit   \t\t\t597\n#define kypExit   \t\t\t466\n#define kxpregExit   \t\t13\n#define kypregExit   \t\t0\n\n#define kxpName   \t\t\t28\n#define kypName   \t\t\t464\n#define kxpregName   \t\t0\n#define kypregName   \t\t0\n\n// SCENE and FRAME SLIDERS ---------------------------------------------------\n\n#define kxpFrameBackground   \t0\n#define kypFrameBackground   \t410\n#define kxpregFrameBackground   0\n#define kypregFrameBackground   0\n\n#define kxpFrameFW   \t\t\t251\n#define kypFrameFW   \t\t\t4\n#define kxpregFrameFW   \t\t11\n#define kypregFrameFW   \t\t0\n\n#define kxpFrameFWEnd   \t\t273\n#define kypFrameFWEnd   \t\t4\n#define kxpregFrameFWEnd   \t\t11  \t\n#define kypregFrameFWEnd   \t\t0\n\n#define kxpFrameRW   \t\t\t141\n#define kypFrameRW   \t\t\t4\n#define kxpregFrameRW   \t\t11\n#define kypregFrameRW   \t\t0\n\n#define kxpFrameRWEnd   \t\t119\n#define kypFrameRWEnd   \t\t4\n#define kxpregFrameRWEnd   \t\t11\n#define kypregFrameRWEnd   \t\t0\n\n#define kxpFrameScrollbar   \t151\n#define kypFrameScrollbar   \t0\n#define kxpregFrameScrollbar   \t0\n#define kypregFrameScrollbar   \t0\n\n#define kxpFrameThumb   \t\t0\n#define kypFrameThumb   \t\t2\n#define kxpregFrameThumb   \t\t0\n#define kypregFrameThumb   \t\t0\n\n#define kxpFrameTitle   \t\t2\n#define kypFrameTitle   \t\t2\n#define kxpregFrameTitle   \t\t0\n#define kypregFrameTitle   \t\t0\n\n#define kxpFrameText   \t\t\t55\n#define kypFrameText   \t\t\t2\n#define kxpregFrameText   \t\t0\n#define kypregFrameText   \t\t0\n\n#define kxpSceneBackground   \t0\n#define kypSceneBackground   \t433\n#define kxpregSceneBackground   0\n#define kypregSceneBackground   0\n\n\n#define kxpSceneFW   \t\t\t251\n#define kypSceneFW   \t\t\t6\n#define kxpregSceneFW   \t\t11\n#define kypregSceneFW   \t\t0\n\n#define kxpSceneFWEnd   \t\t273\n#define kypSceneFWEnd   \t\t6\n#define kxpregSceneFWEnd   \t\t11  \t\n#define kypregSceneFWEnd   \t\t0\n\n#define kxpSceneRW   \t\t\t141\n#define kypSceneRW   \t\t\t6\n#define kxpregSceneRW   \t\t11\n#define kypregSceneRW   \t\t0\n\n#define kxpSceneRWEnd   \t\t119\n#define kypSceneRWEnd   \t\t6\n#define kxpregSceneRWEnd   \t\t11\n#define kypregSceneRWEnd   \t\t0\n\n#define kxpSceneScrollbar   \t151\n#define kypSceneScrollbar   \t1\n#define kxpregSceneScrollbar   \t0\n#define kypregSceneScrollbar   \t0\n\n#define kxpSceneThumb   \t\t0\n#define kypSceneThumb   \t\t2\n#define kxpregSceneThumb   \t\t0\n#define kypregSceneThumb   \t\t0\n\n#define kxpSceneTitle   \t\t2\n#define kypSceneTitle   \t\t3\t\n#define kxpregSceneTitle   \t\t0\n#define kypregSceneTitle   \t\t0\n\n#define kxpSceneText   \t\t\t55\n#define kypSceneText   \t\t\t2\n#define kxpregSceneText   \t\t0\n#define kypregSceneText   \t\t0\n\n\n// PORTFOLIO POPUP -----------------------------------------------------------\n\n#define kxpPortsBackgroundLeft\t\t477\n#define kypPortsBackgroundTop \t\t198\n#define kxpPortsBackgroundRight\t\t589\n#define kypPortsBackgroundBottom\t406\n\n#define kxpPortsNew   \t\t\t\t0\n#define kypPortsNew   \t\t\t\t52\n#define kxpregPortsNew   \t\t\t0\n#define kypregPortsNew   \t\t\t52\n\n#define kxpPortsPortfolio   \t\t0\n#define kypPortsPortfolio   \t\t104\n#define kxpregPortsPortfolio   \t\t0\n#define kypregPortsPortfolio   \t\t52\n\n#define kxpPortsSave   \t\t\t\t0\t\t\t\t\n#define kypPortsSave   \t\t\t\t156\n#define kxpregPortsSave   \t\t\t0\n#define kypregPortsSave   \t\t\t52\n\n#define kxpPortsSaveAs   \t\t\t0\n#define kypPortsSaveAs   \t\t\t208\n#define kxpregPortsSaveAs   \t\t0\n#define kypregPortsSaveAs   \t\t52\n\n// CUT, COPY PASTE POPUP -----------------------------------------------------\n\n#define kxpCCPBackgroundLeft\t224\n#define kypCCPBackgroundTop\t\t354\n#define kxpCCPBackgroundRight\t470\n#define kypCCPBackgroundBottom\t406\n\n#define kxpCCPCut   \t\t\t24\n#define kypCCPCut   \t\t\t0\n#define kxpregCCPCut   \t\t\t24\n#define kypregCCPCut   \t\t\t0\t\t\n\n#define kxpCCPCopy   \t\t\t73\n#define kypCCPCopy   \t\t\t0\n#define kxpregCCPCopy   \t\t24\n#define kypregCCPCopy   \t\t0\n\n#define kxpCCPCopyRoute   \t\t122\n#define kypCCPCopyRoute   \t\t0\n#define kxpregCCPCopyRoute   \t24\n#define kypregCCPCopyRoute   \t0\n\n\n#define kxpCCPPaste   \t\t\t171\n#define kypCCPPaste   \t\t\t0\n#define kxpregCCPPaste   \t\t24\n#define kypregCCPPaste   \t\t0\n\n\t\n#define kxpCCPActorNuke   \t\t220  \t\n#define kypCCPActorNuke   \t\t0\n#define kxpregCCPActorNuke   \t24\n#define kypregCCPActorNuke   \t0\n\n// ROLL CALLS ----------------------------------------------------------------\n\n#define kxpRollCallActorLeft\t\t\t3\n#define kypRollCallActorTop\t\t\t\t98\n#define kxpRollCallActorRight\t\t\t46\n#define kypRollCallActorBottom\t\t\t411 \n\n#define kxpRollCallPropLeft  \t\t\t594\n#define kypRollCallPropTop   \t\t\t98\n#define kxpRollCallPropRight   \t\t\t640\n#define kypRollCallPropBottom   \t\t411\n\n#define kdxpRollCallActorBorderLeft     0\n#define kdypRollCallActorBorderTop      0\n#define kdypRollCallActorBorder\t\t\t74\n#define kdypRollCallActorSpacing        0\n#define kdxpRollCallActorLeft           2\n#define kdypRollCallActorTop            2\n#define kdxpRollCallActorRight          38\t\n#define kdypRollCallActorBottom         70\n#define kxpRollCallActorPageUp          0\n#define kypRollCallActorPageUp          296\n#define kxpRollCallActorPageDown        20\n#define kypRollCallActorPageDown        296\n#define kdxpRollCallActorFrameBorder\t0\n#define kdypRollCallActorFrameBorder\t0\n\n#define kdxpRollCallPropBorderLeft      0\n#define kdypRollCallPropBorderTop       0\n#define kdypRollCallPropBorder\t\t\t74\n#define kdypRollCallPropSpacing         0\n#define kdxpRollCallPropLeft            2\n#define kdypRollCallPropTop             2\n#define kdxpRollCallPropRight           38\n#define kdypRollCallPropBottom          70\n#define kxpRollCallPropPageUp           0\n#define kypRollCallPropPageUp           296\n#define kxpRollCallPropPageDown         20\n#define kypRollCallPropPageDown         296\n#define kdxpRollCallPropFrameBorder\t\t0\n#define kdypRollCallPropFrameBorder\t\t0\n\n#define kxpregRollCallActorBorder1\t\t0\n#define kypregRollCallActorBorder1\t\t0\n#define kxpregRollCallActorBorder2\t\t0\n#define kypregRollCallActorBorder2\t\t0\n#define kxpregRollCallActorBorder3\t\t0\n#define kypregRollCallActorBorder3\t\t0\n#define kxpregRollCallActorBorder4\t\t0\n#define kypregRollCallActorBorder4\t\t0\n#define kxpregRollCallPropBorder1\t\t0\n#define kypregRollCallPropBorder1\t\t0\n#define kxpregRollCallPropBorder2\t\t0\n#define kypregRollCallPropBorder2\t\t0\n#define kxpregRollCallPropBorder3\t\t0\n#define kypregRollCallPropBorder3\t\t0\n#define kxpregRollCallPropBorder4\t\t0\n#define kypregRollCallPropBorder4\t\t0\n#define kxpregRollCallActorUp\t\t\t0\n#define kypregRollCallActorUp\t\t\t0\n#define kxpregRollCallActorDown\t\t\t0\n#define kypregRollCallActorDown\t\t\t0\n#define kxpregRollCallPropUp\t\t\t0\n#define kypregRollCallPropUp\t\t\t0\n#define kxpregRollCallPropDown\t\t\t0\n#define kypregRollCallPropDown\t\t\t0\n\n\n// RECORDER EASEL  ------------------------------------------------------------\n\n#define kxpRecordBackground\t\t\t\t202\n#define kypRecordBackground\t\t\t\t154\n#define kxpRecordSoundLengthLeft  \t\t22\n#define kypRecordSoundLengthTop\t\t\t30\n#define kxpRecordSoundLengthRight\t\t214\n#define kypRecordSoundLengthBottom\t\t51\n#define kxpRecordSoundNameLeft  \t\t123\n#define kypRecordSoundNameTop\t\t\t75\n#define kxpRecordSoundNameRight\t\t\t232\n#define kypRecordSoundNameBottom\t\t95\n\n#define kxpRecordRecord\t \t\t\t\t36\n#define kypRecordRecord\t\t\t\t\t165\n#define kxpregRecordRecord\t\t\t\t25\n#define kypregRecordRecord\t\t\t\t50\n\n#define kxpRecordPlay\t\t\t\t\t88\n#define kypRecordPlay\t\t\t\t\t165\n#define kxpregRecordPlay\t\t\t\t25\n#define kypregRecordPlay\t\t\t\t50\n\n#define kxpRecordCancel\t\t\t\t\t152\n#define kypRecordCancel\t\t\t\t\t165\n#define kxpregRecordCancel\t\t\t\t25\n#define kypregRecordCancel\t\t\t\t50\n\n#define kxpRecordOk\t\t\t\t\t\t202\n#define kypRecordOk\t\t\t\t\t\t165\n#define kxpregRecordOk\t\t\t\t\t25\n#define kypregRecordOk\t\t\t\t\t50\n\n\n\n// SCENE BANK TOOLS ----------------------------------------------------------\n\n#define kxpSettingsCover   \t\t     49\n#define kypSettingsCover   \t\t\t 41\n#define kxpregSettingsCover   \t\t 49\n#define kypregSettingsCover   \t\t 41\n\n#define kxpSettingsBrowser   \t\t 51\n#define kypSettingsBrowser   \t\t 42\n#define kxpregSettingsBrowser   \t 33\n#define kypregSettingsBrowser   \t 41\n\n#define kxpSettingsCameras   \t\t 224\n#define kypSettingsCameras   \t\t 48\n#define kxpregSettingsCameras   \t 25\n#define kypregSettingsCameras   \t 46\n\n#define kxpCCPSceneChopBack          281\n#define kypCCPSceneChopBack          48\n#define kxpregCCPSceneChopBack       25\n#define kypregCCPSceneChopBack       46\n\n#define kxpCCPSceneChopFwd           340\n#define kypCCPSceneChopFwd           48\n#define kxpregCCPSceneChopFwd        25\n#define kypregCCPSceneChopFwd        46\n\n#define kxpSceneSorter   \t\t\t 415\n#define kypSceneSorter   \t\t\t 48\n#define kxpregSceneSorter   \t\t 25\n#define kypregSceneSorter   \t\t 46\n\n\n// ACTOR BANK TOOLS ----------------------------------------------------------\n\n// cover + primary tools \n\n#define kxpActorsCover   \t\t\t211\n#define kypActorsCover   \t\t\t41\n#define kxpregActorsCover   \t\t111\n#define kypregActorsCover   \t\t41\n\n#define kxpActorsBrowser   \t\t\t147\n#define kypActorsBrowser   \t\t\t42\n#define kxpregActorsBrowser   \t\t33\n#define kypregActorsBrowser   \t\t41\n\t\t\t\t\t\t\t\t\t\n#define kxpActorsPropBrowser   \t\t213\n#define kypActorsPropBrowser   \t\t42\n#define kxpregActorsPropBrowser  \t33\n#define kypregActorsPropBrowser   \t41\n\n#define kxpActorsSpletters   \t\t279\n#define kypActorsSpletters   \t\t42\n#define kxpregActorsSpletters   \t33\n#define kypregActorsSpletters   \t41\n\n// secondary tools\n\n#define kxpActorsCompose   \t\t\t66\n#define kypActorsCompose   \t\t\t47\n#define kxpregActorsCompose   \t\t25\n#define kypregActorsCompose   \t\t46\n\n#define kxpActorsActionBrowser   \t123\n#define kypActorsActionBrowser   \t47\n#define kxpregActorsActionBrowser   25\n#define kypregActorsActionBrowser   46\n\n#define kxpActorsContinue   \t\t180\n#define kypActorsContinue   \t\t47\n#define kxpregActorsContinue   \t\t25\n#define kypregActorsContinue   \t\t46\n\n#define kxpActorsCostume   \t\t\t236\n#define kypActorsCostume   \t\t\t47\n#define kxpregActorsCostume   \t\t25\n#define kypregActorsCostume   \t\t46\n\n#define kxpActorsRotate   \t\t\t293\n#define kypActorsRotate   \t\t\t47\n#define kxpregActorsRotate   \t\t25\n#define kypregActorsRotate   \t\t46\n\n#define kxpActorsXY   \t\t\t\t343\n#define kypActorsXY   \t\t\t\t47\n#define kxpregActorsXY   \t\t\t18\n#define kypregActorsXY   \t\t\t46\n\n#define kxpActorsGround   \t\t\t410\n#define kypActorsGround   \t\t\t47\t\t\n#define kxpregActorsGround   \t\t18\n#define kypregActorsGround   \t\t46\n\n\n#define kxpActorsTransform   \t\t460\n#define kypActorsTransform   \t\t47\n#define kxpregActorsTransform   \t25\n#define kypregActorsTransform   \t46\n\n#define kxpActorsSooner   \t\t\t517\n#define kypActorsSooner   \t\t\t47\n#define kxpregActorsSooner   \t\t25\n#define kypregActorsSooner   \t\t46\n\n#define kxpActorsBiography   \t\t574\n#define kypActorsBiography   \t\t47\n#define kxpregActorsBiography   \t25\n#define kypregActorsBiography   \t46\n\n#define kxpActorsSoonerButton   \t283\n#define kypActorsSoonerButton   \t376\n#define kxpregActorsSoonerButton   \t36\n#define kypregActorsSoonerButton   \t0\n\n#define kxpActorsLaterButton   \t\t356\n#define kypActorsLaterButton   \t\t376\n#define kxpregActorsLaterButton   \t36\n#define kypregActorsLaterButton   \t0\n\n// actor pop downs\n\n#define kxpTransformBackground   \t460\n#define kypTransformBackground   \t227\n#define kxpregTransformBackground   23\n#define kypregTransformBackground   130\n\n#define kxpActorsShrink   \t\t\t0\n#define kypActorsShrink   \t\t\t42\n#define kxpregActorsShrink   \t\t0\n#define kypregActorsShrink   \t\t42\n\n#define kxpActorsSquash   \t\t\t0\n#define kypActorsSquash   \t\t\t86\n#define kxpregActorsSquash   \t\t0\n#define kypregActorsSquash   \t\t42\n\n#define kxpActorsTransformNorm   \t0\n#define kypActorsTransformNorm   \t130\n#define kxpregActorsTransformNorm   0\n#define kypregActorsTransformNorm   42\n\n#define kxpRotateBackground   \t\t293\n#define kypRotateBackground   \t\t271\n#define kxpregRotateBackground   \t23\n#define kypregRotateBackground   \t174\n\n#define kxpActorsRotateX   \t\t\t46\n#define kypActorsRotateX   \t\t\t21\n#define kxpregActorsRotateX   \t\t46\n#define kypregActorsRotateX   \t\t21\n\n#define kxpActorsRotateY   \t\t\t46\n#define kypActorsRotateY   \t\t\t65\n#define kxpregActorsRotateY   \t\t46\n#define kypregActorsRotateY   \t\t21\n\n#define kxpActorsRotateZ   \t\t\t46\n#define kypActorsRotateZ   \t\t\t109\n#define kxpregActorsRotateZ   \t\t46\n#define kypregActorsRotateZ   \t\t21\n\n#define kxpActorsRotateNorm   \t\t46\n#define kypActorsRotateNorm   \t\t153\n#define kxpregActorsRotateNorm   \t46\n#define kypregActorsRotateNorm   \t21\n\n\n// SOUND TOOLS ---------------------------------------------------------------\n\n// covers + primary tools\n\n#define kxpSoundsCover   \t\t\t433\n#define kypSoundsCover   \t\t\t41\n#define kxpregSoundsCover   \t\t110\n#define kypregSoundsCover   \t\t41\n\n#define kxpSoundsEfxBrowser   \t\t367\n#define kypSoundsEfxBrowser   \t\t42\n#define kxpregSoundsEfxBrowser   \t33\n#define kypregSoundsEfxBrowser   \t41\n\n#define kxpSoundsMicBrowser   \t\t433\n#define kypSoundsMicBrowser   \t\t42\n#define kxpregSoundsMicBrowser   \t33\n#define kypregSoundsMicBrowser   \t41\n\n#define kxpSoundsMusicBrowser   \t499\n#define kypSoundsMusicBrowser   \t42\n#define kxpregSoundsMusicBrowser   \t33\n#define kypregSoundsMusicBrowser   \t41\n\n// secondary tools\n\n#define kxpSoundsPlayOnce   \t\t201\n#define kypSoundsPlayOnce   \t\t47\n#define kxpregSoundsPlayOnce   \t\t25\n#define kypregSoundsPlayOnce   \t\t46\n\n#define kxpSoundsLooping   \t\t\t259\n#define kypSoundsLooping   \t\t\t47\n#define kxpregSoundsLooping   \t\t25\n#define kypregSoundsLooping   \t\t46\n\n#define kxpSoundsListen   \t\t\t317\n#define kypSoundsListen   \t\t\t47\n#define kxpregSoundsListen   \t\t25\n#define kypregSoundsListen   \t\t46\n\n#define kxpSoundsAttachToCell   \t395\n#define kypSoundsAttachToCell   \t47\n#define kxpregSoundsAttachToCell   \t25\n#define kypregSoundsAttachToCell   \t46\n\n#define kxpPausesSound   \t\t\t446\n#define kypPausesSound   \t\t\t47\n#define kxpregPausesSound   \t\t18\n#define kypregPausesSound   \t\t46\n\n// WORD TOOLS ----------------------------------------------------------------\n\n// word tools - primary bank\n\n#define kxpTextsCover   \t\t592\n#define kypTextsCover   \t\t41\n#define kxpregTextsCover   \t\t49\n#define kypregTextsCover   \t\t41\n\n#define kxpTextsCreate   \t\t593\n#define kypTextsCreate   \t\t42\n#define kxpregTextsCreate   \t33\n#define kypregTextsCreate   \t41\n\n// word tools - secondary bank\n\n#define kxpTextsSelect   \t\t137\n#define kypTextsSelect   \t\t47\n#define kxpregTextsSelect   \t25\n#define kypregTextsSelect   \t46\n\n#define kxpTextsFont   \t\t\t195\n#define kypTextsFont   \t\t\t47\n#define kxpregTextsFont   \t\t25\n#define kypregTextsFont   \t\t46\n\n#define kxpTextsFontShape   \t253\n#define kypTextsFontShape   \t47\n#define kxpregTextsFontShape   \t25\n#define kypregTextsFontShape   \t46\n\n#define kxpTextsFontSize   \t\t311\n#define kypTextsFontSize   \t\t47\n#define kxpregTextsFontSize   \t25\n#define kypregTextsFontSize   \t46\n\n#define kxpTextsFontColor   \t369\n#define kypTextsFontColor   \t47\n#define kxpregTextsFontColor   \t25\n#define kypregTextsFontColor   \t46\n\n#define kxpTextsBkgdColor   \t444\n#define kypTextsBkgdColor   \t47\n#define kxpregTextsBkgdColor   \t25\n#define kypregTextsBkgdColor   \t46\n\n#define kxpTextsScrollType   \t502\n#define kypTextsScrollType   \t47\n#define kxpregTextsScrollType   25\n#define kypregTextsScrollType   46\n\n// word tool popdowns\n\n#define kxpTextFontBackground   \t220\n#define kypTextFontBackground   \t333\n#define kxpregTextFontBackground   \t80\n#define kypregTextFontBackground   \t236\n\n#define kxpTextsScroll   \t\t\t0\n#define kypTextsScroll   \t\t\t44\n#define kxpregTextsScroll   \t\t0\n#define kypregTextsScroll   \t\t44\n\n#define kxpTextsStory   \t\t\t0\n#define kypTextsStory   \t\t\t88\n#define kxpregTextsStory   \t\t\t0\n#define kypregTextsStory   \t\t\t44\n\n#define kxpScrollBackgroundLeft\t\t480\n#define kypScrollBackgroundTop\t\t100\n#define kxpScrollBackgroundRight\t526\n#define kxpScrollBackgroundBottom \t188\n\n// Text formatting popdowns\n\n// Fonts\n\n#define kdxpTextFont                    160\n#define kdypTextFont                    238\n#define kxpTextFontLeft                 172\n#define kypTextFontTop                  100\n#define kxpTextFontRight                332\n#define kypTextFontBottom               338\n#define kdxpTextFontLeft                0\n#define kdxpTextFontRight               0\n#define kdypTextFontTop                 0\n#define kdypTextFontBottom              18\n#define kdxpTextFontBorder              0\n#define kdypTextFontBorder              0\n#define kdxpTextFontSpacing             0\n#define kdypTextFontSpacing             0\n#define kdxpTextFontFrame               160\n#define kdypTextFontFrame               22\n#define kdxpTextFontFrameBorder \t\t16\n#define kdypTextFontFrameBorder \t\t1\n#define kxpTextFontPageDown             0\n#define kypTextFontPageDown             219\n#define kxpregTextFontPageDown    \t\t0\n#define kypregTextFontPageDown    \t\t0\n#define kxpTextFontPageUp               80\n#define kypTextFontPageUp               219\n#define kxpregTextFontPageUp              0\n#define kypregTextFontPageUp              0\n\n\n\n//\n//\n// Texts Style popdown\n//\n//\n#define kdxpTextStyle                   170\n#define kdypTextStyle                   90\n\n#define kxpTextStyleLeft                230\n#define kypTextStyleTop                 100\n#define kxpTextStyleRight               390\n#define kypTextStyleBottom              304\n#define kdxpTextStyleLeft               0\n#define kdxpTextStyleRight              0\t\n#define kdypTextStyleTop                0\n#define kdypTextStyleBottom             0\n#define kdxpTextStyleBorder             0\n#define kdypTextStyleBorder             0\n#define kdxpTextStyleSpacing    \t\t0\n#define kdypTextStyleSpacing    \t\t0\n#define kdxpTextStyleFrame              160\n#define kdypTextStyleFrame              22\n#define kdxpTextStyleFrameBorder        16\n#define kdypTextStyleFrameBorder        3 // 6\n//#define kdypTextStyleFrameBorder        6\n#define kxpTextStylePageDown    \t\t0\n#define kypTextStylePageDown    \t\t157\n#define kxpregTextStylePageDown   \t\t0\n#define kypregTextStylePageDown   \t\t0\n#define kxpTextStylePageUp              84\n#define kypTextStylePageUp              157\n#define kxpregTextStylePageUp           0\n#define kypregTextStylePageUp           0\n\n\n\n//\n//\n// Texts Size popdown\n//\n//\n#define kdxpTextSize                    160\n#define kdypTextSize                    300\n\n#define kxpTextSizeLeft                 288\n#define kypTextSizeTop                  100\n#define kxpTextSizeRight                448\n#define kypTextSizeBottom               400\n#define kdxpTextSizeLeft                0\n#define kdxpTextSizeRight               0\n#define kdypTextSizeTop                 0\n#define kdypTextSizeBottom              19\n#define kdxpTextSizeBorder              15\n#define kdypTextSizeBorder              0\n#define kdxpTextSizeSpacing             0\n#define kdypTextSizeSpacing             0\n#define kdxpTextSizeFrame               160\n#define kdypTextSizeFrame               40\n#define kdxpTextSizeFrameBorder \t\t16\n#define kdypTextSizeFrameBorder \t\t4\n#define kxpTextSizePageDown             50\n#define kypTextSizePageDown             133\n#define kxpregTextSizePageDown    \t\t0\n#define kypregTextSizePageDown    \t\t0\n#define kxpTextSizePageUp               86\n#define kypTextSizePageUp               133\n#define kxpregTextSizePageUp            0\n#define kypregTextSizePageUp            0\n\n\n//\n//\n// Texts Color popdown\n//\n//\n#define kdxpTextColor                   102\n#define kdypTextColor                   195\n\n#define kxpTextColorLeft                346\n#define kypTextColorTop                 100\n#define kxpTextColorRight               448\n#define kypTextColorBottom              295\n\n#define kdxpTextColorLeft               0\n#define kdxpTextColorRight              0\n#define kdypTextColorTop                0\n#define kdypTextColorBottom             19\n#define kdxpTextColorBorder             0\n#define kdypTextColorBorder             0\n#define kdxpTextColorSpacing    \t\t0\n#define kdypTextColorSpacing    \t\t0\n#define kdxpTextColorFrame              102\n#define kdypTextColorFrame              22\n#define kdxpTextColorFrameBorder        4\n#define kdypTextColorFrameBorder        4\n#define kxpTextColorPageDown    \t\t0\n#define kypTextColorPageDown    \t\t176\n#define kxpregTextColorPageDown   \t\t0\n#define kypregTextColorPageDown   \t\t0\t\t\n#define kxpTextColorPageUp              51\n#define kypTextColorPageUp              176\n#define kxpregTextColorPageUp           0\n#define kypregTextColorPageUp           0\n\n\n//\n//\n// Texts Background Color popdown\n//\n//\n#define kdxpTextBkgdColor               170\n#define kdypTextBkgdColor               200\n\n#define kxpTextBkgdColorLeft            421\n#define kypTextBkgdColorTop             100\n#define kxpTextBkgdColorRight           591\n#define kypTextBkgdColorBottom          300\n\n#define kdxpTextBkgdColorLeft           0\n#define kdxpTextBkgdColorRight          0\n#define kdypTextBkgdColorTop            0\n#define kdypTextBkgdColorBottom         19\n#define kdxpTextBkgdColorBorder         0\n#define kdypTextBkgdColorBorder         0\n#define kdxpTextBkgdColorSpacing        0\n#define kdypTextBkgdColorSpacing        0\n#define kdxpTextBkgdColorFrame          102\n#define kdypTextBkgdColorFrame          22\n#define kdxpTextBkgdColorFrameBorder    4\n#define kdypTextBkgdColorFrameBorder    4\n#define kxpTextBkgdColorPageDown        0\n#define kypTextBkgdColorPageDown        179\n#define kxpregTextBkgdColorPageDown     0\n#define kypregTextBkgdColorPageDown     0\n#define kxpTextBkgdColorPageUp          51\n#define kypTextBkgdColorPageUp          179\n#define kxpregTextBkgdColorPageUp       0\n#define kypregTextBkgdColorPageUp       0\n\n\n\n\n// MISCELLANOUS COVERS; DOORS -------------------------------------------------\n\n#define kxpScrollbarsCover   \t181\n#define kypScrollbarsCover   \t464\n#define kxpregScrollbarsCover   181\n#define kypregScrollbarsCover   54\n\n#define kxpUndosCover   \t\t419\n#define kypUndosCover   \t\t464\n#define kxpregUndosCover   \t\t55\n#define kypregUndosCover   \t\t54\n\n#define kxpBooksCover   \t\t500\n#define kypBooksCover   \t\t464\n#define kxpregBooksCover   \t\t26\n#define kypregBooksCover   \t\t54\n\n#define kxpDoors   \t\t\t\t0\n#define kypDoors   \t\t\t\t47\n#define kxpregDoors   \t\t\t0\n#define kypregDoors   \t\t\t0\n\n// SPLETTERS EASEL -----------------------------------------------------------\n\n#define kxpSpltPreviewFrameLeft\t\t13\n#define kypSpltPreviewFrameTop\t\t13\n#define kxpSpltPreviewFrameRight\t505\n#define kypSpltPreviewFrameBottom\t251\n#define kxpSpltEditBoxLeft\t\t\t10\n#define kypSpltEditBoxTop\t\t\t322\n#define kxpSpltEditBoxRight\t\t\t508\n#define kypSpltEditBoxBottom\t\t356\n\n#define kxpSpltBackground   \t\t320\n#define kypSpltBackground   \t\t421\n#define kxpregSpltBackground   \t\t259\n#define kypregSpltBackground   \t\t364\n\n#define kxpSpltTransmogrify   \t\t211\n#define kypSpltTransmogrify   \t\t311\n#define kxpregSpltTransmogrify   \t25\n#define kypregSpltTransmogrify   \t46\n\n#define kxpSpltTextures   \t\t\t161\n#define kypSpltTextures   \t\t\t311\n#define kxpregSpltTextures   \t\t25\t\t\n#define kypregSpltTextures   \t\t46\n\n#define kxpSpltFont   \t\t\t\t61\n#define kypSpltFont   \t\t\t\t311\n#define kxpregSpltFont   \t\t\t25\n#define kypregSpltFont   \t\t\t46\n\n#define kxpSpltShape   \t\t\t\t111\n#define kypSpltShape   \t\t\t\t311\n#define kxpregSpltShape   \t\t\t25\n#define kypregSpltShape   \t\t\t46\n\n#define kxpSpltRotate   \t\t\t284\n#define kypSpltRotate   \t\t\t311\n#define kxpregSpltRotate   \t\t\t25\n#define kypregSpltRotate   \t\t\t46\n\n#define kxpSpltImportTexture   \t\t334\n#define kypSpltImportTexture   \t\t311\n#define kxpregSpltImportTexture   \t25\n#define kypregSpltImportTexture   \t46\n\n#define kxpSpltCancel   \t\t\t407\n#define kypSpltCancel   \t\t\t311\n#define kxpregSpltCancel   \t\t\t25\n#define kypregSpltCancel   \t\t\t46\n\n#define kxpSpltOk   \t\t\t\t457\n#define kypSpltOk   \t\t\t\t311\n#define kxpregSpltOk   \t\t\t\t25\n#define kypregSpltOk   \t\t\t\t46\n\n// COSTUME CHANGER EASEL -----------------------------------------------------\n\n// Costume changer easel\n\n#define kxpCostPreviewFrameLeft\t\t\t10\n#define kypCostPreviewFrameTop\t\t\t9\n#define kxpCostPreviewFrameRight\t\t426\n#define kypCostPreviewFrameBottom\t\t239\n\n#define kxpCostEditBoxLeft\t\t\t\t8\n#define kypCostEditBoxTop\t\t\t\t315\n#define kxpCostEditBoxRight\t\t\t\t427\n#define kypCostEditBoxBottom\t\t\t339\n\n#define kxpCostBackground   \t\t\t320\n#define kypCostBackground   \t\t\t445\n#define kxpregCostBackground   \t\t\t218\n#define kypregCostBackground   \t\t\t345\n\n#define kxpCostCostumes   \t\t\t\t57\n#define kypCostCostumes   \t\t\t\t302\n#define kxpregCostCostumes   \t\t\t25\n#define kypregCostCostumes   \t\t\t46\n\n#define kxpCostAccessories   \t\t\t141\n#define kypCostAccessories   \t\t\t302\n#define kxpregCostAccessories   \t\t25\n#define kypregCostAccessories   \t\t46\n\n#define kxpCostRotate   \t\t\t\t225\n#define kypCostRotate   \t\t\t\t302\n#define kxpregCostRotate   \t\t\t\t25\n#define kypregCostRotate   \t\t\t\t46\n\n#define kxpCostCancel   \t\t\t\t329\n#define kypCostCancel   \t\t\t\t302\n#define kxpregCostCancel   \t\t\t\t25\n#define kypregCostCancel   \t\t\t\t46\n\n#define kxpCostOk   \t\t\t\t\t379\n#define kypCostOk   \t\t\t\t\t302\n#define kxpregCostOk   \t\t\t\t\t25\n#define kypregCostOk   \t\t\t\t\t46\n\n// WORKSPACE + BACKGROUND DEFINITIONS \n\n// Workspace\n\n#define kxpWorkspace   \t\t\t\t48\n#define kypWorkspace   \t\t\t\t100\n#define kxpregWorkspace   \t\t\t0\n#define kypregWorkspace   \t\t\t0\n\n#define kxpSettingsBackground   \t0\n#define kypSettingsBackground   \t47\n#define kxpregSettingsBackground   \t0\n#define kypregSettingsBackground   \t0\n\n#define kxpActorsBackground   \t\t0\n#define kypActorsBackground   \t\t47\n#define kxpregActorsBackground   \t0\n#define kypregActorsBackground   \t0\n\t\t\t\t\t\t\t\t\t\n#define kxpSoundsBackground   \t\t0\n#define kypSoundsBackground   \t\t47\n#define kxpregSoundsBackground   \t0\n#define kypregSoundsBackground   \t0\n\n#define kxpTextsBackground   \t\t0\n#define kypTextsBackground   \t\t47\n#define kxpregTextsBackground   \t0\n#define kypregTextsBackground   \t0\n\n#define kxpBackground               0\n#define kypBackground               0\n\n#define kxpBackground1   \t\t\t0\n#define kypBackground1   \t\t\t0\n#define kxpregBackground1   \t\t0\n#define kypregBackground1   \t\t0\n\n#define kxpBackground2   \t\t\t0\n#define kypBackground2   \t\t\t97\n#define kxpregBackground2   \t\t0\n#define kypregBackground2   \t\t0\n\n#define kxpBackground3   \t\t\t592\n#define kypBackground3   \t\t\t97\n#define kxpregBackground3   \t\t0\n#define kypregBackground3   \t\t0\n\n#define kxpBackground4   \t\t\t0\n#define kypBackground4   \t\t\t406\n#define kxpregBackground4   \t\t0\n#define kypregBackground4   \t\t0\n\n// SCENE SORTER --------------------------------------------------------------\n\n#define kxpSSorterBackground   \t320\n#define kypSSorterBackground   \t413\n#define kxpregSSorterBackground 300\n#define kypregSSorterBackground 348\n\n#define kxpSSorterFrame   \t\t0\n#define kypSSorterFrame   \t\t0\n#define kxpregSSorterFrame   \t0\n#define kypregSSorterFrame   \t0\n\n#define kxpSSorterThumbLeft\t\t8\t\n#define kypSSorterThumbTop\t\t12\n#define kxpSSorterThumbRight\t151\n#define kypSSorterThumbBottom\t92\n\n#define kxpTransition1   \t\t156\n#define kypTransition1   \t\t11\n#define kxpregTransition1   \t0\n#define kypregTransition1   \t0\n\n#define kxpTransition2   \t\t156   \t\n#define kypTransition2   \t\t33\n#define kxpregTransition2   \t0\n#define kypregTransition2   \t0\n\n#define kxpTransition3   \t\t156\n#define kypTransition3   \t\t55\n#define kxpregTransition3   \t0\n#define kypregTransition3   \t0\n\n#define kxpTransition4   \t\t156\n#define kypTransition4   \t\t77\n#define kxpregTransition4   \t0\n#define kypregTransition4   \t0\n\n#define kxpSSorterScrollUp   \t597\n#define kypSSorterScrollUp   \t21\n#define kxpregSSorterScrollUp   17\n#define kypregSSorterScrollUp   19\n\n#define kxpSSorterScrollDn   \t597\n#define kypSSorterScrollDn   \t292\n#define kxpregSSorterScrollDn   17\n#define kypregSSorterScrollDn   19\n\n#define kxpSSorterCancel   \t\t490\n#define kypSSorterCancel   \t\t344\n#define kxpregSSorterCancel   \t25\n#define kypregSSorterCancel   \t46\n\n#define kxpSSorterOk   \t\t\t540\n#define kypSSorterOk   \t\t\t344\n#define kxpregSSorterOk   \t\t25\n#define kypregSSorterOk   \t\t46\n\n#define kxpSSorterHand   \t\t50\n#define kypSSorterHand   \t\t298\n#define kxpregSSorterHand   \t25\n#define kypregSSorterHand   \t0\n\n#define kxpSSorterNuke   \t\t105\n#define kypSSorterNuke   \t\t298\n#define kxpregSSorterNuke   \t25\n#define kypregSSorterNuke   \t0\n\n#define kxpSSorterOpen   \t\t160\n#define kypSSorterOpen   \t\t298\n#define kxpregSSorterOpen   \t25\n#define kypregSSorterOpen   \t0\n\n\n#define kdxpSSorter             600\n#define kdypSSorter             350\n#define kdxpSSorterLeft         10\n#define kdxpSSorterRight        10\n#define kdypSSorterTop          12\n#define kdypSSorterBottom       56\n#define kdxpSSorterBorder       0\n#define kdypSSorterBorder       0\n#define kdxpSSorterSpacing      8\n#define kdypSSorterSpacing      15\n#define kdxpSSorterFrame        185\n#define kdypSSorterFrame        126\n#define kdxpSSorterFrameBorder  0\n#define kdypSSorterFrameBorder  0\n\n\n// LISTENER EASEL ------------------------------------------------------------\n\n#define kxpListenBackgroundActor\t\t182\n#define kypListenBackgroundActor\t\t100\n#define kxpregListenBackgroundActor\t\t0\n#define kypregListenBackgroundActor\t\t0\n\n#define kxpListenBackgroundBkgd\t\t\t116\n#define kypListenBackgroundBkgd\t\t\t100\n#define kxpregListenBackgroundBkgd\t\t0\n#define kypregListenBackgroundBkgd\t\t0\n\n#define kxpListenCancel\t\t\t\t    304\n#define kypListenCancel\t\t\t\t    233\n#define kxpregListenCancel\t\t\t\t24\t\t\n#define kypregListenCancel\t\t\t\t50\n\t\t\n#define kxpListenOk\t\t\t\t\t    354\n#define kypListenOk\t\t\t\t\t    233\t\t\n#define kxpregListenOk\t\t\t\t\t24\t\t\n#define kypregListenOk\t\t\t\t\t50\t\t\n\n#define kypListenVolFXMin\t\t\t\t0\n#define kypListenVolFXMax\t\t\t\t108\n\n#define kxpSliderThumb\t\t\t\t\t5\n\n#define kxpVolFXLeft  \t\t\t\t\t70\n#define kypVolFXTop\t\t\t\t\t\t20\n#define kxpVolFXRight\t\t\t\t\t120\n#define kypVolFXBottom\t\t\t\t\t138\n#define kxpVolFXMMLeft  \t\t\t\t70\n#define kypVolFXMMTop\t\t\t\t\t20\n#define kxpVolFXMMRight\t\t\t\t\t120\n#define kypVolFXMMBottom\t\t\t\t138\n#define kxpVolSpeechLeft  \t\t\t\t201\n#define kypVolSpeechTop\t\t\t\t\t20\n#define kxpVolSpeechRight\t\t\t\t251\n#define kypVolSpeechBottom\t\t\t\t138\n#define kxpVolSpeechMMLeft  \t\t\t201\n#define kypVolSpeechMMTop\t\t\t\t20\n#define kxpVolSpeechMMRight\t\t\t\t251\n#define kypVolSpeechMMBottom\t\t\t138\n#define kxpVolMidiLeft  \t\t\t\t332\n#define kypVolMidiTop\t\t\t\t\t20\n#define kxpVolMidiRight\t\t\t\t\t382\n#define kypVolMidiBottom\t\t\t\t138\n\n#define kypListenVolSpeechMin\t\t\t0\n#define kypListenVolSpeechMax\t\t\t108\n\n// speech slider moves for actor sound browser\n#define kxpActorListenVolSpeech\t\t\t337\n#define kypActorListenVolSpeechMin\t\t0\n#define kypActorListenVolSpeechMax\t\t108\n\n#define kypListenVolMidiMin\t\t\t\t0\n#define kypListenVolMidiMax\t\t\t\t108\n\n#define kypListenVolSpeechMMMin\t\t\t0\n#define kypListenVolSpeechMMMax\t\t\t108\n\n#define kypListenVolFXMMMin\t\t\t\t0\n#define kypListenVolFXMMMax\t\t\t\t108\n\n#define kypSliderNukeSpeech\t\t\t\t100\n#define kypSliderNukeFX\t\t\t\t\t100\n#define kypSliderNukeMidi\t\t\t\t100\n#define kypSliderNukeSpeechMM\t\t\t100\n#define kypSliderNukeFXMM\t\t\t\t100\n\n// background nuke buttons \n\n#define kxpListenNukeFX\t\t\t\t    112\n#define kypListenNukeFX\t\t\t\t    144\n#define kxpregListenNukeFX\t\t\t\t11\n#define kypregListenNukeFX\t\t\t\t20\n\n#define kxpListenNukeSpeech\t\t\t    243\n#define kypListenNukeSpeech\t\t\t    144\n#define kxpregListenNukeSpeech\t\t\t11\n#define kypregListenNukeSpeech\t\t\t20\n\n#define kxpListenNukeMidi\t\t\t\t374\n#define kypListenNukeMidi\t\t\t\t144\n#define kxpregListenNukeMidi\t\t\t11\n#define kypregListenNukeMidi\t\t\t20\n\n#define kxpListenNukeSpeechMM\t\t    243\n#define kypListenNukeSpeechMM\t\t    144\n#define kxpregListenNukeSpeechMM\t\t11\n#define kypregListenNukeSpeechMM\t\t20\n\n#define kxpListenNukeFXMM\t\t\t    112\n#define kypListenNukeFXMM\t\t\t    144\n#define kxpregListenNukeFXMM\t\t\t11\n#define kypregListenNukeFXMM\t\t\t20\n\n// name boxes\n\n#define kxpListenEditBoxFX\t\t\t\t12\n#define kypListenEditBoxFX\t\t\t\t150\n#define kxpregListenEditBoxFX\t\t\t0\n#define kypregListenEditBoxFX\t\t\t0\n\n#define kxpListenEditBoxSpeech\t\t\t143\n#define kypListenEditBoxSpeech\t\t\t150\n#define kxpregListenEditBoxSpeech\t\t0\n#define kypregListenEditBoxSpeech\t\t0\n\n#define kxpListenEditBoxMidi\t\t\t274\n#define kypListenEditBoxMidi\t\t\t150\n#define kxpregListenEditBoxMidi\t\t\t0\n#define kypregListenEditBoxMidi\t\t\t0\n\n\n// icons for background listener easel\n\n#define kxpListenFXIcon\t\t\t\t\t13\n#define kypListenFXIcon\t\t\t\t\t117\n#define kxpregListenFXIcon\t\t\t\t0\n#define kypregListenFXIcon\t\t\t\t0\n\n#define kxpListenSpeechIcon\t\t\t\t144\n#define kypListenSpeechIcon\t\t\t\t117\n#define kxpregListenSpeechIcon\t\t\t0\n#define kypregListenSpeechIcon\t\t\t0\n\n#define kxpListenMidiIcon\t\t\t\t275\n#define kypListenMidiIcon\t\t\t\t117\n#define kxpregListenMidiIcon\t\t\t0\n#define kypregListenMidiIcon\t\t\t0\n\n// misc.\n\n\n\n#define kxpregListenerNuke\t\t\t\t0\n#define\tkypregListenerNuke\t\t\t\t0\n\n// nuke buttons for actor listeners (remember reg points)\n\t\n#define kxpActorListenNukeSpeech\t\t240 \n#define kypActorListenNukeSpeech\t\t143\n\n#define kxpActorListenNukeFX\t\t\t109 \n#define kypActorListenNukeFX\t\t\t143\n\n#define kxpActorListenNukeSpeechMM\t\t240 \n#define kypActorListenNukeSpeechMM\t\t143\n\n#define kxpActorListenNukeFXMM\t\t\t109 \n#define kypActorListenNukeFXMM\t\t\t143\n\n// actor edit box values\n\n#define kxpListenActorEditBoxSpeech\t\t141 \n#define kypListenActorEditBoxSpeech\t\t150\n\n#define kxpListenActorEditBoxFX\t\t\t10 \t\n#define kypListenActorEditBoxFX\t\t\t150\n\n#define kxpListenActorEditBoxSpeechMM\t141 \n#define kypListenActorEditBoxSpeechMM\t150\n\n#define kxpListenActorEditBoxFXMM\t\t10 \n#define kypListenActorEditBoxFXMM\t\t150\n\n// icons!\n\n#define kxpListenSpeechMMIcon\t\t\t144 \n#define kypListenSpeechMMIcon\t\t\t117\n#define kxpregListenSpeechMMIcon\t\t0\n#define kypregListenSpeechMMIcon\t\t0\n\n#define kxpListenFXMMIcon\t\t\t\t12 \n#define kypListenFXMMIcon\t\t\t\t117\n#define kxpregListenFXMMIcon\t\t\t0\n#define kypregListenFXMMIcon\t\t\t0\n\n#define kxpActorListenFXIcon\t\t\t13\n#define kypActorListenFXIcon\t\t\t117\n\n#define kxpActorListenSpeechIcon\t\t144\n#define kypActorListenSpeechIcon\t\t117\n\n\n// not used?\n\n#define kxpListenEditBoxSpeechMM\t\t143\n#define kypListenEditBoxSpeechMM\t\t150\n#define kxpregListenEditBoxSpeechMM\t\t0\n#define kypregListenEditBoxSpeechMM\t\t0\n\n#define kxpListenEditBoxFXMM\t\t\t12 \n#define kypListenEditBoxFXMM\t\t\t150\n#define kxpregListenEditBoxFXMM\t\t\t0\n#define kypregListenEditBoxFXMM\t\t\t0\n\n\t\n// reused ok + cancel buttons repositioned for actor\n\n#define kxpListenActorOk\t\t\t\t223\n#define kypListenActorOk\t\t\t    233\n\n#define kxpListenActorCancel\t\t\t173\n#define kypListenActorCancel\t\t    233\n\t\t\n// SPLETTERS EASEL popups\n\n//\n//\n// Spletters Font popdown\n//\n//\n\n#define kdxpSpltsFont                   144\n#define kdypSpltsFont                   132\n#define kxpSpltsFontLeft                36\n#define kypSpltsFontTop                 132\n#define kxpSpltsFontRight               186\n#define kypSpltsFontBottom              264\n#define kdxpSpltsFontLeft               0\n#define kdxpSpltsFontRight              0\n#define kdypSpltsFontTop                0\n#define kdypSpltsFontBottom             17\n#define kdxpSpltsFontBorder             0\n#define kdypSpltsFontBorder             0\n#define kdxpSpltsFontSpacing    \t\t0\n#define kdypSpltsFontSpacing    \t\t0\n#define kdxpSpltsFontFrame              144\n#define kdypSpltsFontFrame              23\n#define kdxpSpltsFontFrameBorder        3\n#define kdypSpltsFontFrameBorder        3\n#define kxpSpltsFontPageDown    \t\t72\n#define kypSpltsFontPageDown    \t\t115\n#define kxprSpltsFontPageDown   \t\t0\n#define kyprSpltsFontPageDown   \t\t0\n#define kxpSpltsFontPageUp              0\n#define kypSpltsFontPageUp              115\n#define kxprSpltsFontPageUp             0\n#define kyprSpltsFontPageUp             0\n\n//\n//\n// Spletters Shape popdown\n//\n//\n#define kdxpSpltsShape                  46\n#define kdypSpltsShape                  194\n#define kxpSpltsShapeLeft               88\n#define kypSpltsShapeTop                72\n#define kxpSpltsShapeRight              136\n#define kypSpltsShapeBottom             264\n#define kdxpSpltsShapeLeft              0\n#define kdxpSpltsShapeRight             0\n#define kdypSpltsShapeTop               0\n#define kdypSpltsShapeBottom    \t\t18\n#define kdxpSpltsShapeBorder    \t\t0\n#define kdypSpltsShapeBorder    \t\t0\n#define kdxpSpltsShapeSpacing   \t\t0\n#define kdypSpltsShapeSpacing   \t\t0\n#define kdxpSpltsShapeFrame             46\n#define kdypSpltsShapeFrame             44\n#define kdxpSpltsShapeFrameBorder       7\n#define kdypSpltsShapeFrameBorder       7\n#define kxpSpltsShapePageDown   \t\t0\n#define kypSpltsShapePageDown   \t\t176\n#define kxprSpltsShapePageDown  \t\t0\n#define kyprSpltsShapePageDown  \t\t0\n#define kxpSpltsShapePageUp             23\n#define kypSpltsShapePageUp             176\n#define kxprSpltsShapePageUp    \t\t0\n#define kyprSpltsShapePageUp    \t\t0\n\n//\n//\n// Spletters Color popdown\n//\n//\n#define kdxpSpltsColor                  78\n#define kdypSpltsColor                  194\n#define kxpSpltsColorLeft               136\n#define kypSpltsColorTop                72\n#define kxpSpltsColorRight              216\n#define kypSpltsColorBottom             264\n#define kdxpSpltsColorLeft              0\n#define kdxpSpltsColorRight             0\n#define kdypSpltsColorTop               0\n#define kdypSpltsColorBottom    \t\t18\n#define kdxpSpltsColorBorder    \t\t0\n#define kdypSpltsColorBorder    \t\t0\n#define kdxpSpltsColorSpacing   \t\t0\n#define kdypSpltsColorSpacing   \t\t0\n#define kdxpSpltsColorFrame             78\n#define kdypSpltsColorFrame             44\n#define kdxpSpltsColorFrameBorder       7\n#define kdypSpltsColorFrameBorder       7\n#define kxpSpltsColorPageDown   \t\t0\n#define kypSpltsColorPageDown   \t\t176\n#define kxprSpltsColorPageDown  \t\t0\n#define kyprSpltsColorPageDown  \t\t0\n#define kxpSpltsColorPageUp             39\n#define kypSpltsColorPageUp             176\n#define kxprSpltsColorPageUp    \t\t0\n#define kyprSpltsColorPageUp    \t\t0\n\n"
  },
  {
    "path": "inc/projmain.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//////////////////////////////////////////////\n//\tdefines for projmain\n//////////////////////////////////////////////\n#ifndef PROJMAIN_H\n#define PROJMAIN_H\n\n// the following are the file names of the project movies loaded into the workspace\n// localize at will...\n\n#define PROJECT1_MOVIENAME \"DIALOGUE.3mm\"\n#define PROJECT2_MOVIENAME \"JOG.3mm\"\n#define PROJECT3_MOVIENAME \"SURPRISE.3mm\"\n#define PROJECT4_MOVIENAME \"MUMMY.3mm\"\n#define PROJECT5_MOVIENAME \"BONGO.3mm\"\n#define PROJECT6_MOVIENAME \"BRIDGE.3mm\"\n\n// gadget objects\n#define kidGadgetPersistent 0x00003030\n#define kidGadgetParent 0x00003031\n#define kidGadgetBody 0x00003032\n#define kidGadgetPlay 0x00003033\n#define kidGadgetVolume 0x00003034\n#define kidGadgetVoice 0x00003035\n#define kidGadgetCancel 0x00003036\n#define kidGadgetSelectorUp 0x00003037\n#define kidGadgetSelectorNum 0x00003038\n#define kidGadgetSelectorDown 0x00003039\n#define kidGadgetAvi 0x0000303A\n#define kidGadgetWord 0x0000303B\n#define kidGadgetLockerFill 0x0000303C\n#define kidGadgetHow 0x0000303D\n#define kidGadgetWhy 0x0000303E\n#define kidGadgetLockerPict 0x0000303F\n#define kidGadgetAviFrame 0x00003040\n#define kidGadgetVolumeThumb 0x00003041\n#define kidGadgetAlertGlass 0x00003042\n#define kidGadgetVolumePath 0x00003043\n#define kidGadgetTextBox 0x00003044\n#define kidGadgetStartUp 0x00003046 // 3045 is used in helpbook.h\n#define kidGadgetStartOk 0x00003047\n\n// Instruction Ids\n#define EndTable 0 // not an instruction, just a marker\n#define InitState 1\n#define MatchGoto 2\n#define MatchDescGoto 3\n#define MatchChildrenGoto 4\n#define MatchAllGoto 5\n#define IgnoreMatch 6\n#define IgnoreChildren 7\n#define IgnoreAll 8\n#define BoolCondGoto 9\n#define StateCondGoto 10\n#define SpecialInstr 11\n#define WaitEvent 12\n#define JumpToState 13\n#define EndState 14\n#define MatchParentGoto 15\n#define IgnoreParentMatch 16\n\n// Special Instruction Ids\n#define QuitMM 1\n#define QuitHelp 2\n#define QuitGadgetHelp 3\n#define SetHelpAlarm 4\n#define ProjectsRoom 5\n#define ResetTipDelay 6\n#define ClearStudio 7\n#define LoadProjectMovie 8\n#define OpenDoorCovers 9\n#define SetSceneAndFrame 10\n#define SetBlinkingGadget 11\n#define OpenAllDoors 12\n#define ChangeToNextMovie 13\n#define SimulateClick 14\n#define SetBrowserItem 15\n#define SetNextProject 16\n\n// Parent States\n#define ParState2 0\n#define ParState3 1\n#define ParState4 2\n#define ParState5 3\n\n#define NotRel 0\n#define NoHelpHere 0\n#define PrevState -1\n\n// Definitions of controls(parent object and table objects)\n#define kidSequenceParent 0x00030000\n// logo wizard\n#define kidLogoWizard 0x00030001\n// how to scenes\n#define kidHowToScenes01 0x00030002\n#define kidHowToScenes02 0x00030003\n#define kidHowToScenes03 0x00030004\n#define kidHowToScenes04 0x00030005\n#define kidHowToScenes05 0x00030006\n#define kidHowToScenes06 0x00030007\n#define kidHowToScenes07 0x00030008\n#define kidHowToScenes08 0x00030009\n#define kidHowToScenes09 0x0003000A\n#define kidHowToScenes10 0x0003000B\n#define kidHowToScenes11 0x0003000C\n#define kidHowToScenes12 0x0003000D\n#define kidHowToScenes13 0x0003000E\n#define kidHowToScenes14 0x0003000F\n#define kidHowToScenes15 0x00030010\n// how to sounds\n#define kidHowToSounds01 0x00030020\n#define kidHowToSounds02 0x00030021\n#define kidHowToSounds03 0x00030022\n#define kidHowToSounds04 0x00030023\n#define kidHowToSounds05 0x00030024\n#define kidHowToSounds06 0x00030025\n#define kidHowToSounds07 0x00030026\n#define kidHowToSounds08 0x00030027\n#define kidHowToSounds09 0x00030028\n#define kidHowToSounds10 0x00030029\n#define kidHowToSounds11 0x0003002A\n#define kidHowToSounds12 0x0003002B\n// how to words\n#define kidHowToWords01 0x00030040\n#define kidHowToWords02 0x00030041\n#define kidHowToWords03 0x00030042\n#define kidHowToWords04 0x00030043\n#define kidHowToWords05 0x00030044\n#define kidHowToWords06 0x00030045\n#define kidHowToWords07 0x00030046\n#define kidHowToWords08 0x00030047\n#define kidHowToWords09 0x00030048\n#define kidHowToWords10 0x00030049\n#define kidHowToWords11 0x0003004A\n#define kidHowToWords12 0x0003004B\n#define kidHowToWords13 0x0003004C\n#define kidHowToWords14 0x0003004D\n#define kidHowToWords15 0x0003004E\n// how to actors\n#define kidHowToActors01 0x00030060\n#define kidHowToActors02 0x00030061\n#define kidHowToActors03 0x00030062\n#define kidHowToActors04 0x00030063\n#define kidHowToActors05 0x00030064\n#define kidHowToActors06 0x00030065\n#define kidHowToActors07 0x00030066\n#define kidHowToActors08 0x00030067\n#define kidHowToActors09 0x00030068\n#define kidHowToActors10 0x00030069\n#define kidHowToActors11 0x0003006A\n#define kidHowToActors12 0x0003006B\n#define kidHowToActors13 0x0003006C\n#define kidHowToActors14 0x0003006D\n#define kidHowToActors15 0x0003006E\n#define kidHowToActors16 0x0003006F\n#define kidHowToActors17 0x00030070\n#define kidHowToActors18 0x00030071\n#define kidHowToActors19 0x00030072\n#define kidHowToActors20 0x00030073\n#define kidHowToActors21 0x00030074\n#define kidHowToActors22 0x00030075\n#define kidHowToActors23 0x00030076\n#define kidHowToActors24 0x00030077\n#define kidHowToActors25 0x00030078\n#define kidHowToActors26 0x00030079\n#define kidHowToActors27 0x0003007A\n#define kidHowToActors28 0x0003007B\n// Project 1\n#define kid1Project01 0x00030100\n#define kid1Project02 0x00030101\n#define kid1Project03 0x00030102\n#define kid1Project04 0x00030103\n#define kid1Project05 0x00030104\n#define kid1Project06 0x00030105\n#define kid1Project07 0x00030106\n// Project 2\n#define kid2Project01 0x00030200\n#define kid2Project02 0x00030201\n#define kid2Project03 0x00030202\n#define kid2Project04 0x00030203\n#define kid2Project05 0x00030204\n#define kid2Project06 0x00030205\n#define kid2Project07 0x00030206\n// Project 3\n#define kid3Project01 0x00030300\n#define kid3Project02 0x00030301\n#define kid3Project03 0x00030302\n#define kid3Project04 0x00030303\n#define kid3Project05 0x00030304\n// Project 4\n#define kid4Project01 0x00030400\n#define kid4Project02 0x00030401\n#define kid4Project03 0x00030402\n#define kid4Project04 0x00030403\n#define kid4Project05 0x00030404\n// Project 5\n#define kid5Project01 0x00030500\n#define kid5Project02 0x00030501\n#define kid5Project03 0x00030502\n#define kid5Project04 0x00030503\n#define kid5Project05 0x00030504\n#define kid5Project06 0x00030505\n#define kid5Project07 0x00030506\n#define kid5Project08 0x00030507\n#define kid5Project09 0x00030508\n#define kid5Project10 0x00030509\n// Project 6\n#define kid6Project01 0x00030510\n#define kid6Project02 0x00030511\n#define kid6Project03 0x00030512\n#define kid6Project04 0x00030513\n#define kid6Project05 0x00030514\n#define kid6Project06 0x00030515\n// basics\n#define kidBasics01 0x00030520\n#define kidBasics02 0x00030521\n#define kidBasics03 0x00030522\n#define kidBasics04 0x00030523\n#define kidBasics05 0x00030524\n#define kidBasics06 0x00030525\n#define kidBasics07 0x00030526\n#define kidBasics08 0x00030527\n#define kidBasics09 0x00030528\n// guidehelp\n#define kidGuideHelp 0x000305A0\n\n// script for playing help sounds\n#define sclHelpSoundClass 999\n#define ksclBldgSound 998\n#define kidPlayHelpSounds 0x000305F0\n#define kidPlayProjectSounds 0x000305F1\n#define kidPlayLogoSounds 0x000305F2\n#define kidPlayGuideSounds 0x000305F3\n#define kidPlayToolTipSounds 0x000305F4\n\n////////////////////////////// control ids\n//#define kgobOkButton\t\t\t0x00030100\n#define kgobLogoWizard 0x00030600\n#define kgobHowtoSequence 0x00030601\n#define kgobHowToSequenceHot 0x00030602\n#define kgobProject 0x00030603\n#define kgobProjectHot 0x00030604\n#define kgobGuideHelp 0x00030605\n#define kgobGuideHelpHot 0x00030606\n#define kgobGadgetText 0x00030607\n\n/////////////////////////Filtering defines\n// for projmain\n#define kFltrMouse 1\n#define kFltrClicked 2\n#define kFltrKey 4\n#define kFltrBrwOk 8\n#define kFltrBrwCancel 16\n#define kFltrBrwSelect 32\n#define kFltrEslOk 64\n#define kFltrEslCancel 128\n#define kFltrEslClosing 256\n#define kFltrActorIn 512\n#define kFltrActorOut 1024\n#define kFltrActorClicked 2048\n#define kFltrScnSortOk 4096\n#define kFltrScnSortCancel 8192\n#define kFltrAlarmOff 16384\n#define kFltrMoviePlaying 32768\n#define kFltrTBoxClicked 65536\n#define kFltrBrwVisible 131072\n#define kFltrEslVisible 262144\n#define kFltrScnSortVisible 524288\n#define kFltrGadgetAviStop 1048576\n#define kFltrScnSortSelect 2097152\n#define kFltrActorClickedDown 4194304\n#define kFltrMovieLoaded 8388608\n#define kFltrModalClosed 16777216\n#define kFltrSceneLoaded 33554432\n#define kFltrPortfolioResult 67108864\n#define kFltrMouseBoth 3\n\n// message id\n#define cidParse 100100\n#define cidHelpAlarmOff 100101\n#define cidGadgetAviStop 100102\n\n// string id's for movies\n#define stidMovie1 701\n#define stidMovie2 702\n#define stidMovie3 703\n#define stidMovie4 704\n#define stidMovie5 705\n#define stidMovie6 706\n\n// position of gadget controls\n#define kxpGdPlay 443\n#define kypGdPlay 269\n#define kxpregGdPlay 24\n#define kypregGdPlay 34\n\n#define kxpGdHow 443\n#define kypGdHow 300\n#define kxpregGdHow 24\n#define kypregGdHow 0\n\n#define kxpGdSelUp 419\n#define kypGdSelUp 131\n#define kxpregGdSelUp 0\n#define kypregGdSelUp 0\n\n#define kxpGdSelDn 419\n#define kypGdSelDn 175\n#define kxpregGdSelDn 0\n#define kypregGdSelDn 0\n\n#define kxpGdMovieNum 420\n#define kypGdMovieNum 155\n#define kxpregGdMovieNum 0\n#define kypregGdMovieNum 0\n\n#define kxpGdMelVoice 273\n#define kypGdMelVoice 424\n#define kxpregGdMelVoice 23\n#define kypregGdMelVoice 43\n\n#define kxpGdWhy 322\n#define kypGdWhy 424\n#define kxpregGdWhy 23\n#define kypregGdWhy 43\n\n#define kxpGdClose 371\n#define kypGdClose 424\n#define kxpregGdClose 23\n#define kypregGdClose 43\n\n#define kxpGadgetSlider 210\n#define kypGadgetSlider 234\n#define kdxpGadgetSlider 11\n#define kdypGadgetSlider 91\n#define kdypGadgetSliderTotal 98\n\n// locker fill stuff\n#define kLockerFillLeft 247\n#define kLockerFillTop 229\n#define kLockerFillRight 397\n#define kLockerFillBottom 371\n// text box stuff\n#define kTextBoxFillLeft 5\n#define kTextBoxFillTop 3\n#define kTextBoxFillRight 167\n#define kTextBoxFillBottom 43\n\n// where to jump for each movie in projects(at start)\n// conversation\n#define Proj1Scene 0\n#define Proj1Frame 48\n// jog\n#define Proj2Scene 0\n#define Proj2Frame 113\n// graveyard - surprise!\n#define Proj3Scene 0\n#define Proj3Frame 1\n// mummy\n#define Proj4Scene 0\n#define Proj4Frame 1\n// bongo\n#define Proj5Scene 0\n#define Proj5Frame 138\n// bridge\n#define Proj6Scene 0\n#define Proj6Frame 165\n\n// Objects for browsers, what to point at\n// project 1\n#define Prj1Action1 29\n#define Prj1SoundsMic1 0x0000400f\n#define Prj1Camera1 5\n#define Prj1SoundsMic2 0x00004009\n#define Prj1Camera2 4\n#define Prj1SoundsMic3 0x00004012\n// project 3(2)\n#define Prj3Action1 3\n#define Prj3SoundsMic1 0x0000400e\n#define Prj3Action2 32\n#define Prj3SoundsMic2 0x00004016\n// project 4(6)\n#define Prj4Action1 11\n#define Prj4Prop1 0x00001011\n#define Prj4Action2 5\n#define Prj4Action3 25\n// project 5\n#define Prj5Action1 27\n#define Prj5Action2 28\n#define Prj5Action3 23\n#define Prj5Camera1 2\n#define Prj5Prop1 0x00001021\n#define Prj5Action4 1\n#define Prj5SoundsEfx1 0x00003210\n#define Prj5Actor1 0x00002030\n#define Prj5Action5 3\n#define Prj5Action6 1\n// project 6(4)\n#define Prj6SoundsMus1 0x0000505a\n#define Prj6SoundsMus2 0x0000505b\n#define Prj6SoundsMus3 0x0000505e\n#define Prj6SoundsMus4 0x00005064\n#define Prj6SoundsEfx1 0x000032a3\n#define Prj6SoundsEfx2 0x000032a2\n// *maybe* #define\n\n#endif // !PROJMAIN_H\n"
  },
  {
    "path": "inc/scene.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    THIS IS A CODE REVIEWED FILE\n\n    Basic scene classes:\n        Scene (SCEN)\n\n            BASE ---> SCEN\n\n        Scene Actor Undo Object (SUNA)\n\n            BASE ---> UNDB ---> MUNB ---> SUNA\n\n***************************************************************************/\n\n#ifndef SCEN_H\n#define SCEN_H\n\n//\n// Undo object for actor operations\n//\ntypedef class SUNA *PSUNA;\n\n#define SUNA_PAR MUNB\n\n// Undo types\nenum\n{\n    utAdd = 0x1,\n    utDel,\n    utRep,\n};\n\n#define kclsSUNA 'SUNA'\nclass SUNA : public SUNA_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    PACTR _pactr;\n    long _ut; // Tells which type of undo this is.\n    SUNA(void)\n    {\n    }\n\n  public:\n    static PSUNA PsunaNew(void);\n    ~SUNA(void);\n\n    void SetActr(PACTR pactr)\n    {\n        _pactr = pactr;\n    }\n    void SetType(long ut)\n    {\n        _ut = ut;\n    }\n\n    virtual bool FDo(PDOCB pdocb);\n    virtual bool FUndo(PDOCB pdocb);\n};\n\n//\n// Different reasons for pausing in a scene\n//\nenum WIT\n{\n    witNil,\n    witUntilClick,\n    witUntilSnd,\n    witForTime,\n    witLim\n};\n\n//\n// Functionality that can be turned off and on.  If the bit\n// is set, it is disabled.\n//\nenum\n{\n    fscenSounds = 0x1,\n    fscenPauses = 0x2,\n    fscenTboxes = 0x4,\n    fscenActrs = 0x8,\n    fscenPosition = 0x10,\n    fscenAction = 0x20,\n    fscenCams = 0x40,\n    fscenAll = 0xFFFF\n};\n\ntypedef struct SSE *PSSE;\ntypedef struct TAGC *PTAGC;\n\ntypedef class SCEN *PSCEN;\n\n//\n// Notes:\n//\n//\tThis assumes that struct SND contains at least,\n//\t\t- Everything necessary to play the sound.\n//\n//\tThis assumes that struct TBOX contains at least,\n//\t\t- Everything necessary to display the text.\n//\t\t- Enumerating through text boxes in a scene is not necessary.\n//\n\n#define SCEN_PAR BASE\n#define kclsSCEN 'SCEN'\nclass SCEN : public SCEN_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    typedef struct SEV *PSEV;\n\n    //\n    // These variables keep track of the internal frame numbers.\n    //\n    long _nfrmCur;   // Current frame number\n    long _nfrmLast;  // Last frame number in scene.\n    long _nfrmFirst; // First frame number in scene.\n\n    //\n    // Frames with events in them.  This stuff works as follows.\n    //   _isevFrmLim is the index into the GG of a sev with nfrm > nCurFrm.\n    //\n    PGG _pggsevFrm;   // List of events that occur in frames.\n    long _isevFrmLim; // Next event to process.\n\n    //\n    // Global information\n    //\n    STN _stnName;         // Name of this scene\n    PGL _pglpactr;        // List of actors in the scene.\n    PGL _pglptbox;        // List of text boxes in the scene.\n    PGG _pggsevStart;     // List of frame independent events.\n    PMVIE _pmvie;         // Movie this scene is a part of.\n    PBKGD _pbkgd;         // Background for this scene.\n    ulong _grfscen;       // Disabled functionality.\n    PACTR _pactrSelected; // Currently selected actor, if any\n    PTBOX _ptboxSelected; // Currently selected tbox, if any\n    TRANS _trans;         // Transition at the end of the scene.\n    PMBMP _pmbmp;         // The thumbnail for this scene.\n    PSSE _psseBkgd;       // Background scene sound (starts playing\n                          // at start time even if snd event is\n                          // earlier)\n    long _nfrmSseBkgd;    // Frame at which _psseBkgd starts\n    TAG _tagBkgd;         // Tag to current BKGD\n\n  protected:\n    SCEN(PMVIE pmvie);\n    ~SCEN(void);\n\n    //\n    // Event stuff\n    //\n    bool _FPlaySev(PSEV psev, void *qvVar, ulong grfscen); // Plays a single scene event.\n    bool _FUnPlaySev(PSEV psev, void *qvVar);              // Undoes a single scene event.\n    bool _FAddSev(PSEV psev, long cbVar, void *pvVar);     // Adds scene event to the current frame.\n    void _MoveBackFirstFrame(long nfrm);\n\n    //\n    // Dirtying stuff\n    //\n    void _MarkMovieDirty(void);\n    void _DoPrerenderingWork(bool fStartNow); // Does any prerendering for _nfrmCur\n    void _EndPrerendering(void);              // Stops prerendering\n\n    //\n    // Make actors go to a specific frame\n    //\n    bool _FForceActorsToFrm(long nfrm, bool *pfSoundInFrame = pvNil);\n    bool _FForceTboxesToFrm(long nfrm);\n\n    //\n    // Thumbnail routines\n    //\n    void _UpdateThumbnail(void);\n\n  public:\n    //\n    // Create and destroy\n    //\n    static SCEN *PscenNew(PMVIE pmvie);                      // Returns pvNil if it fails.\n    static SCEN *PscenRead(PMVIE pmvie, PCRF pcrf, CNO cno); // Returns pvNil if it fails.\n    bool FWrite(PCRF pcrf, CNO *pcno);                       // Returns fFalse if it fails, else the cno written.\n    static void Close(PSCEN *ppscen);                        // Public destructor\n    void RemActrsFromRollCall(bool fDelIfOnlyRef = fFalse);  // Removes actors from movie roll call.\n    bool FAddActrsToRollCall(void);                          // Adds actors from movie roll call.\n\n    //\n    // Tag collection\n    //\n    static bool FAddTagsToTagl(PCFL pcfl, CNO cno, PTAGL ptagl);\n\n    //\n    // Frame functions\n    //\n    bool FPlayStartEvents(bool fActorsOnly = fFalse); // Play all one-time starting scene events.\n    void InvalFrmRange(void);                         // Mark the frame count dirty\n    bool FGotoFrm(long nfrm);                         // Jumps to an arbitrary frame.\n    long Nfrm(void)                                   // Returns the current frame number\n    {\n        return (_nfrmCur);\n    }\n    long NfrmFirst(void) // Returns the number of the first frame in the scene.\n    {\n        return (_nfrmFirst);\n    }\n    long NfrmLast(void) // Returns the number of the last frame in the scene.\n    {\n        return (_nfrmLast);\n    }\n    bool FReplayFrm(ulong grfscen); // Replay events in this scene.\n\n    //\n    // Undo accessor functions\n    //\n    void SetNfrmCur(long nfrm)\n    {\n        _nfrmCur = nfrm;\n    }\n\n    //\n    // Edit functions\n    //\n    void SetMvie(PMVIE pmvie); // Sets the associated movie.\n    void GetName(PSTN pstn)    // Gets name of current scene.\n    {\n        *pstn = _stnName;\n    }\n    void SetNameCore(PSTN pstn) // Sets name of current scene.\n    {\n        _stnName = *pstn;\n    }\n    bool FSetName(PSTN pstn); // Sets name of current scene, and undo\n    bool FChopCore(void);     // Chops off the rest of the scene.\n    bool FChop(void);         // Chops off the rest of the scene and undo\n    bool FChopBackCore(void); // Chops off the rest of the scene, backwards.\n    bool FChopBack(void);     // Chops off the rest of the scene, backwards, and undo.\n\n    //\n    // Transition functions\n    //\n    void SetTransitionCore(TRANS trans) // Set the final transition to be.\n    {\n        _trans = trans;\n    }\n    bool FSetTransition(TRANS trans); // Set the final transition to be and undo.\n    TRANS Trans(void)\n    {\n        return _trans;\n    } // Returns the transition setting.\n    // These two operate a specific SCEN chunk rather than a SCEN in memory\n    static bool FTransOnFile(PCRF pcrf, CNO cno, TRANS *ptrans);\n    static bool FSetTransOnFile(PCRF pcrf, CNO cno, TRANS trans);\n\n    //\n    // State functions\n    //\n    void Disable(ulong grfscen) // Disables functionality.\n    {\n        _grfscen |= grfscen;\n    }\n    void Enable(ulong grfscen) // Enables functionality.\n    {\n        _grfscen &= ~grfscen;\n    }\n    long GrfScen(void) // Currently disabled functionality.\n    {\n        return _grfscen;\n    }\n    bool FIsEmpty(void); // Is the scene empty?\n\n    //\n    // Actor functions\n    //\n    bool FAddActrCore(ACTR *pactr); // Adds an actor to the scene at current frame.\n    bool FAddActr(ACTR *pactr);     // Adds an actor to the scene at current frame, and undo\n    void RemActrCore(long arid);    // Removes an actor from the scene.\n    bool FRemActr(long arid);       // Removes an actor from the scene, and undo\n    PACTR PactrSelected(void)       // Returns selected actor\n    {\n        return _pactrSelected;\n    }\n    void SelectActr(ACTR *pactr);                      // Sets the selected actor\n    PACTR PactrFromPt(long xp, long yp, long *pibset); // Gets actor pointed at by the mouse.\n    PGL PglRollCall(void)                              // Return a list of all actors in scene.\n    {\n        return (_pglpactr);\n    } // Only to be used by the movie-class\n    void HideActors(void);\n    void ShowActors(void);\n    PACTR PactrFromArid(long arid); // Finds a current actor in this scene.\n    long Cactr(void)\n    {\n        return (_pglpactr == pvNil ? 0 : _pglpactr->IvMac());\n    }\n\n    //\n    // Sound functions\n    //\n    bool FAddSndCore(bool fLoop, bool fQueue, long vlm, long sty, long ctag,\n                     PTAG prgtag); // Adds a sound to the current frame.\n    bool FAddSndCoreTagc(bool fLoop, bool fQueue, long vlm, long sty, long ctagc, PTAGC prgtagc);\n    bool FAddSnd(PTAG ptag, bool fLoop, bool fQueue, long vlm, long sty); // Adds a sound to the current frame, and undo\n    void RemSndCore(long sty);                                            // Removes the sound from current frame.\n    bool FRemSnd(long sty);                             // Removes the sound from current frame, and undo\n    bool FGetSnd(long sty, bool *pfFound, PSSE *ppsse); // Allows for retrieval of sounds.\n    void PlayBkgdSnd(void);\n    bool FQuerySnd(long sty, PGL *pgltagSnd, long *pvlm, bool *pfLoop);\n    void SetSndVlmCore(long sty, long vlmNew);\n    void UpdateSndFrame(void);\n    bool FResolveAllSndTags(CNO cnoScen);\n\n    //\n    // Text box functions\n    //\n    bool FAddTboxCore(PTBOX ptbox);   // Adds a text box to the current frame.\n    bool FAddTbox(PTBOX ptbox);       // Adds a text box to the current frame.\n    bool FRemTboxCore(PTBOX ptbox);   // Removes a text box from the scene.\n    bool FRemTbox(PTBOX ptbox);       // Removes a text box from the scene.\n    PTBOX PtboxFromItbox(long itbox); // Returns the ith tbox in this frame.\n    PTBOX PtboxSelected(void)         // Returns the tbox currently selected.\n    {\n        return _ptboxSelected;\n    }\n    void SelectTbox(PTBOX ptbox); // Selects this tbox.\n    void HideTboxes(void);        // Hides all text boxes.\n    long Ctbox(void)\n    {\n        return (_pglptbox == pvNil ? 0 : _pglptbox->IvMac());\n    }\n\n    //\n    // Pause functions\n    //\n    bool FPauseCore(WIT *pwit, long *pdts); // Adds\\Removes a pause to the current frame.\n    bool FPause(WIT wit, long dts);         // Adds\\Removes a pause to the current frame, and undo\n\n    //\n    // Background functions\n    //\n    bool FSetBkgdCore(PTAG ptag, PTAG ptagOld); // Sets the background for this scene.\n    bool FSetBkgd(PTAG ptag);                   // Sets the background for this scene, and undo\n    BKGD *Pbkgd(void)\n    {\n        return _pbkgd;\n    }                                               // Gets the background for this scene.\n    bool FChangeCamCore(long icam, long *picamOld); // Changes camera viewpoint at current frame.\n    bool FChangeCam(long icam);                     // Changes camera viewpoint at current frame, and undo\n    PMBMP PmbmpThumbnail(void);                     // Returns the thumbnail.\n    bool FGetTagBkgd(PTAG ptag);                    // Returns the tag for the background for this scene\n\n    //\n    // Movie functions\n    //\n    PMVIE Pmvie()\n    {\n        return (_pmvie);\n    } // Get the parent movie\n\n    //\n    // Mark scene as dirty\n    //\n    void MarkDirty(bool fDirty = fTrue); // Mark the scene as changed.\n\n    //\n    // Clipboard type functions\n    //\n    bool FPasteActrCore(PACTR pactr); // Pastes actor into current frame\n    bool FPasteActr(PACTR pactr);     // Pastes actor into current frame and undo\n\n    //\n    // Playing functions\n    //\n    bool FStartPlaying(void); // For special behavior when playback starts\n    void StopPlaying(void);   // Used to clean up after playback has stopped.\n};\n\n#endif //! SCEN_H\n"
  },
  {
    "path": "inc/scnsort.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/******************************************************************************\n    Author: ******\n    Project: Socrates\n    Review Status: Reviewed\n\n    Include file for the scene sorter class\n\n************************************************************ PETED ***********/\n\n#ifndef SCNSORT_H\n#define SCNSORT_H\n\n#define SCRT_PAR GOK\n#define kclsSCRT 'SCRT'\ntypedef class SCRT *PSCRT;\nclass SCRT : public SCRT_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(SCRT)\n\n  protected:\n    static const TRANS _mplwtrans[];\n\n    /* Obtained from the script */\n    long _kidFrameMin;  // kid of first frame GOK in the easel\n    long _kidScbtnsMin; // kid of the first scroll button (scroll up)\n    long _cfrmPage;     // number of frame GOKs on the easel\n    long _cgokFrame;    // number of pieces to a frame GOK\n\n    /* Hidden from the script */\n    long _iscenCur;   // currently selected scene\n    long _iscenTop;   // first scene visible in the browser\n    long _iscenMac;   // number of scenes\n    PMVIE _pmvie;     // pointer to movie we're editing\n    CMVI _cmvi;       // Composite movie\n    bool _fError : 1, // Did an error occur during the easel?\n        _fInited : 1; // Have I seen the cidSceneSortInit yet?\n    PSTDIO _pstdio;   // The STDIO that instantiated me\n\n  protected:\n    long _IscenFromKid(long kid)\n    {\n        AssertIn(kid, _kidFrameMin, _kidFrameMin + _cfrmPage * _cgokFrame + 1);\n        return LwMin(_iscenMac, (_iscenTop + (kid - _kidFrameMin) / _cgokFrame));\n    }\n    long _KidFromIscen(long iscen)\n    {\n        AssertIn(iscen, _iscenTop, _iscenTop + _cfrmPage);\n        return (_kidFrameMin + (iscen - _iscenTop) * _cgokFrame);\n    }\n    void _EnableScroll(void);\n    void _SetSelectionVis(bool fShow, bool fHideSel = fFalse);\n    void _ErrorExit(void);\n    bool _FResetThumbnails(bool fHideSel);\n    bool _FResetTransition(PGOK pgokPar, TRANS trans);\n    TRANS _TransFromLw(long lwTrans);\n    long _LwFromTrans(TRANS trans);\n\n  public:\n    SCRT(PGCB pgcb);\n    ~SCRT(void);\n\n    static PSCRT PscrtNew(long hid, PMVIE pmvie, PSTDIO pstdio, PRCA prca);\n    static bool FSceneSortMovie(long hid, PMVIE pmvie);\n\n    /* Command API */\n    bool FCmdInit(PCMD pcmd);\n    bool FCmdSelect(PCMD pcmd);\n    bool FCmdInsert(PCMD pcmd);\n    bool FCmdScroll(PCMD pcmd);\n    bool FCmdNuke(PCMD pcmd);\n    bool FCmdDismiss(PCMD pcmd);\n    bool FCmdPortfolio(PCMD pcmd);\n    bool FCmdTransition(PCMD pcmd);\n};\n\n/******************************************************************************\n\n    GOMP class -- wraps an MBMP in a GOB for display in the Scene Sorter\n\n************************************************************ PETED ***********/\n\n#define GOMP_PAR GOB\n#define kclsGOMP 'GOMP'\ntypedef class GOMP *PGOMP;\nclass GOMP : public GOMP_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    /* REVIEW peted: do I need to declare a command map? */\n\n  protected:\n    PMBMP _pmbmp;\n\n  public:\n    GOMP(PGCB pgcb);\n    ~GOMP(void)\n    {\n        AssertThis(0);\n        ReleasePpo(&_pmbmp);\n    }\n\n    static PGOMP PgompNew(PGOB pgobPar, long hid);\n    static PGOMP PgompFromHidScr(long hid);\n    bool FSetMbmp(PMBMP pmbmp);\n\n    /* Makes the GOMP invisible to mouse actions */\n    virtual bool FPtIn(long xp, long yp)\n    {\n        return fFalse;\n    }\n    virtual bool FPtInBounds(long xp, long yp)\n    {\n        return fFalse;\n    }\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n};\n\n#endif /* SCNSORT_H */\n"
  },
  {
    "path": "inc/sharedef.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\n *\n *  SHAREDEF.H\n *\n *  Copyright (C) Microsoft Corporation 1995.\n *  All Rights reserved.\n *\n ******************************************************************************\n *\n *  Module Intent\n *\n *  Contains definitions for shared objects (in src\\shared.cht).  Needs to be\n *\tincluded by modules that want to use shared cursors or the portfolio or\n *\tthe map.\n *\n ******************************************************************************\n *\n *  Revision History:  Created 06/26/95 by *****.\n *\n *****************************************************************************/\n\n#ifndef SHAREDEF_H\n#define SHAREDEF_H\n\n/*****************************************************************************\n *                                                                            *\n *                              Constants                                     *\n *                                                                            *\n *****************************************************************************/\n\n// -----------------------------------------------------\n// Shared constants.\n// -----------------------------------------------------\n\n#define kmaxVolume 0x00010000\n\n// Script to run in shared.chk to initialize utils.\n#define kcnoInitShared 0x00050001\n\n// -----------------------------------------------------\n// Cursor Definitions\n// -----------------------------------------------------\n\n#define kcrsHand 0x00000001\n#define kcrsHand1 0x00000001 // Different names in Studio, Building\n#define kcrsArrow 0x00000002\n#define kcrsArrow1 0x00000002 // Different names in Studio, Building\n#define kcrsWand1 0x00000003\n#define kcrsActionBrowser 0x00000003 // Different names in Studio, Building\n#define kcrsStar 0x00000004\n#define kcrsLeft 0x00000005\n#define kcrsRight 0x00000006\n#define kcrsDown 0x00000007\n#define kcrsUp 0x00000008\n#define kcrsTurn1 0x00000009\n\n// -----------------------------------------------------\n// Shared Object Definitions\n// -----------------------------------------------------\n\n#define kgobMapMain 0x00012000\n\n#define kwavDing                                                                                                       \\\n    0x00010004 // Wave file used when adjusting\n               // master volume.\n#define kwavPortOpenMovie 0x00010005\n#define kwavPortSaveMovie 0x00010006\n#define kwavPortOpenSound 0x00010007\n#define kwavMapObject 0x00010008\n#define kwavMapOpen 0x00010009\n\n// For error help\n#define kgobBalloonError 0x00016050\n#define ktpcErrorScript 0x00016051\n#define kgobErrorMessageGlass 0x00016052\n#define kcnoErrorMessage 0x00016053\n\n#endif // !SHAREDEF_H\n"
  },
  {
    "path": "inc/sharutil.chh",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// ---------------------------------------------------------\n// These 'routines' and macros are for Socrates to use via \n// the UTIL object\n//\n// Revisions:\n// \n// mm-dd-yy\n// ??-??-94     *****         - Created\n// 05-16-95\t\t*****\t\t\t- remove unimplemented hooks \n// 06/27/95\t\t*****\t\t\t- moved to soc\\inc directory,\n//\t\t\t\t\t\t\t\t  renamed sharutil.chh.\n//\n// ---------------------------------------------------------\n\n#ifndef SHARUTIL_CHH\n#define SHARUTIL_CHH\n\n// -----------------------------------------------------\n// Utility object definition\n// -----------------------------------------------------\n\n#define kgobUtil\t\t\t0x00010000\n\n// -----------------------------------------------------\n// Transition time in 1/60 seconds\n// -----------------------------------------------------\n#define kTransitionTime\t\t60\n\n// -----------------------------------------------------\n// Util object ids\n// -----------------------------------------------------\n\n#define kgobGlass1\t\t\t0x0001010b\n#define kgobGlass0\t\t\t0x0001010c\n\n// -----------------------------------------------------\n// Hotkey definitions \n// -----------------------------------------------------\n//\n// These flags are used to enable and disable particular hotkeys within the\n// building though they are overridden by the app cid to disable all hotkeys.\n//\n#define kflgKEYALL\t\t\t0xffffffff\n#define kflgKEYNONE\t\t\t0x00000000\n\n#define kflgKEYMAP\t\t\t0x00000001\n#define kflgKEYQUIT\t\t\t0x00000002\n#define kflgKEYABOUT\t\t0x00000004\n#define kflgKEYPORTFOLIO\t0x00000008\n#define kflgKEYTOOLS\t\t0x00000010\n#define kflgLOADSTUDIO\t\t0x00000020\n\n#define kwavSplot\t\t\t0x00010010\n\n// -----------------------------------------------------\n// These are the keys that are generally enabled in the building.\n// -----------------------------------------------------\n#define kflgBuildingAll\\\n\t(kflgKEYABOUT | kflgKEYQUIT | kflgKEYMAP | kflgKEYPORTFOLIO | kflgKEYTOOLS | kflgLOADSTUDIO)\n#define kflgBuildingMin\\\n\t(kflgKEYQUIT)\n\n// ---------------------------------------------------------\n// Quit the application\n// ---------------------------------------------------------\n#define QUITAPP() \\\n\tEnqueueCid(cidQuit, 0, 0, 0, 0, 0);\n\n// ---------------------------------------------------------\n// Switch to the next place.\n// ---------------------------------------------------------\n#define NEXTPLACE(_kgobNext) \\\n\tRunScriptGob(kgobUtil, kchidScript1, _kgobNext, kst1)\n\n// ---------------------------------------------------------\n// New and improved Switch to the next place.\n// It includes a parameter to set the entry state at the next place.\n// I'll use this to migrate to th enew type of NEXTPLACE and then\n// remove the above define and rename this one to NEXTPLACE.\n// ---------------------------------------------------------\n#define NEXTPLACE1(_kgobNext, _state) \\\n\tRunScriptGob(kgobUtil, kchidScript1, _kgobNext, _state) \n\n//----------------------------------------------------------\n// Wrappers for cidEnable/DisableAccel so we can keep track\n// of how many times they've been called and use absolutes\n// to enable and disable.\n//\t\t_fAbsolute means override the counting mechanism.\n//----------------------------------------------------------\n#define ENABLEACCEL(_fAbsolute)\\\n\tDEBUGCMD(\tIf (kgobUtil->cDisable <= 0 && !_fAbsolute));\\\n\tDEBUGCMD(\t\tPrintStr(\"Enable Accels takes disable count below 0.\"));\\\n\tDEBUGCMD(\tEnd);\\\n\tIf (_fAbsolute);\\\n\t\tIf (kgobUtil->cDisable >= 1);\\\n\t\t\tEnqueueCid(cidEnableAccel, 0, 0, 0, 0, 0);\\\n\t\tEnd;\\\n\t\tkgobUtil->cDisable = 0;\\\n\tElse;\\\n\t\tkgobUtil->cDisable--;\\\n\t\tIf (kgobUtil->cDisable == 0);\\\n\t\t\tEnqueueCid(cidEnableAccel, 0, 0, 0, 0, 0);\\\n\t\tEnd;\\\n\tEnd\n\n#define DISABLEACCEL(_fAbsolute)\\\n\tDEBUGCMD(\tIf (kgobUtil->cDisable >= 1 && !_fAbsolute));\\\n\tDEBUGCMD(\t\tPrintStr(\"Disable Accels takes disable count above 1.\"));\\\n\tDEBUGCMD(\tEnd);\\\n\tIf (_fAbsolute);\\\n\t\tIf (kgobUtil->cDisable <= 0);\\\n\t\t\tEnqueueCid(cidDisableAccel, 0, 0, 0, 0, 0);\\\n\t\tEnd;\\\n\t\tkgobUtil->cDisable = 1;\\\n\tElse;\\\n\t\tIf (kgobUtil->cDisable == 0);\\\n\t\t\tEnqueueCid(cidDisableAccel, 0, 0, 0, 0, 0);\\\n\t\tEnd;\\\n\t\tkgobUtil->cDisable++;\\\n\tEnd;\n\n//----------------------------------------------------------\n// Function to lock out hot spots.  Disable hot keys too.\n//----------------------------------------------------------\n#define DISABLEHOTSPOTS( _flgKeys )\\\n\tStartLongOp();\\\n\tRunScriptGob( kgobUtil, kchidScript3, _flgKeys )\n\n//----------------------------------------------------------\n// Function to enable hot spots.\n//----------------------------------------------------------\n#define ENABLEHOTSPOTS( _flgKeys )\\\n\tEndLongOp( fTrue );\\\n\tIf( FGobExists(\tkgobGlass0 ) );\\\n\t\tDestroyGob( kgobGlass0 );\\\n\tEnd;\\\n\tSETKEYS(_flgKeys)\n\n//----------------------------------------------------------\n// Function to manage music.\n//----------------------------------------------------------\n#define PLAYMIDI( _cnoMidi )\\\n\tRunScriptGob( kgobUtil, kchidScript4, _cnoMidi, fFalse )\n\n#define PLAYMIDI_LOOP( _cnoMidi )\\\n\tRunScriptGob( kgobUtil, kchidScript4, _cnoMidi, fTrue )\n\n// ---------------------------------------------------------\n// Returns gobid of global mondo parent daddy. \n// ---------------------------------------------------------\n#define SUPERPARENT() \\\n\tGidParGob( kgobUtil )\n\n// ---------------------------------------------------------\n// Return the current place.\n// ---------------------------------------------------------\n#define GET_CURRENTPLACE() ::kgobCurrentPlace\n\n// ---------------------------------------------------------\n// Set the current place.\n// ---------------------------------------------------------\n#define SET_CURRENTPLACE(_kgob) \\\n\t::kgobCurrentPlace = _kgob\n\n// ---------------------------------------------------------\n// Enable/disable hotkeys\n// ---------------------------------------------------------\n#define HOTKEYS( _enable, _disable ) \\\n\tRunScriptGob( kgobUtil, kchidScript6 );\n\n// ---------------------------------------------------------\n// reference a global variable value\n// ---------------------------------------------------------\n#define GLOBAL(__x) \\\n\t(kgobUtil->__x)\n\n// ---------------------------------------------------------\n// Set a global variable value\n// ---------------------------------------------------------\n#define SETGLOBAL( __x, __y )\\\n\tkgobUtil->__x = (__y)\n\n// ---------------------------------------------------------\n// Hotkeys : Return, enable, disable or set absolutely all \n// ---------------------------------------------------------\n\n#define KEYSTATE() \\\n\t(GLOBAL( keys ))\n\n#define KEYENABLED( _flgkey ) \\\n\t((GLOBAL( keys ) & _flgkey) == _flgkey)\n\n#define ENABLEKEYS( _flgKeys )\\\n\t__foo = GLOBAL( keys ) | _flgKeys; \\\n\tSETGLOBAL( keys, __foo ) \n\n#define SETKEYS( _flgKeys )\\\n\tSETGLOBAL( keys, _flgKeys ) \n\n#define DISABLEKEYS( _flgKeys )\\\n\t__foo = GLOBAL( keys ) & ~(_flgKeys); \\\n\tSETGLOBAL( keys, __foo ) \n\n// --------------------------------------------------------------\n// Palette setting shortcut.  Will perform a transition if req'd\n// --------------------------------------------------------------\n\n#define SETPALETTE(_cnoPalNew) \\\n\tRunScriptGob(kgobUtil, kchidScript7, _cnoPalNew)\n\n// --------------------------------------------------------------\n// Macro to play WAVE and display character close caption balloon.\n//  w= wave chunk, t= help topic (prev. for hearing impaired baln)\n// --------------------------------------------------------------\n\n#define VOICE( w, t )\\\n\tIf( ::siiVoice );\\\n\t\tStopSound( ::siiVoice );\\\n\tEnd;\\\n\t::siiVoice = PlaySoundThis(kctgWave, w, 0, 0x00010000, 1, 0, ksclBldgSound)\n\n//\tCreateHelpGob( GET_CURRENTPLACE(), t )\tWas used for putting up hearing impaired balloon\n\n// --------------------------------------------------------------\n//\tMacro to stop wave file audio invoked with the VOICE macro.\n// --------------------------------------------------------------\t\n#define ENDVOICE()\\\n\tIf( ::siiVoice );\\\n\t\tStopSound( ::siiVoice );\\\n\t\t::siiVoice = 0;\\\n\tEnd;\n\n//\tDestroyGob( kgobVoiceOver );\tWas used for destroying hearing impaired balloon\n\n// --------------------------------------------------------------\n//\tMacro to load the studio tools.\n// \t_kgobReturn specifies where the studio should come back to when it\n//\t\t\treturns to the Building.\n//\t\t_project specifies which project the tools should be loaded with, if\n//\t\t\tany.  Set to 0 to indicate no project.\n// --------------------------------------------------------------\n\n#define LOADTOOLS(_kgobReturn, _kstReturn, _project)\\\n\tRunScriptGob(kgobUtil, kchidScript8, _kgobReturn, _kstReturn, _project);\n\n\n#define WAIT_FOR_TRANSITION()\\\n\tIf( ::fTransition );\\\n\t\tCell( 0, 0, 0, kTransitionTime );\\\n\t\t::fTransition = fFalse;\\\n\tEnd\n\n#endif\t//!SHARUTIL_CHH\n\n"
  },
  {
    "path": "inc/sitobren.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#ifndef SITOBREN_H\n#define SITOBREN_H\n\n#include <stdio.h>\n#include \"util.h\"\n#include \"soc.h\"     // Needs knowledge of Socrates data structs\n#include \"tyModel.h\" // API for SoftImage db lib\n#include \"dkfilter.h\"\n#include \"tySceneT.h\"\n#include \"mssio.h\"\n\n/* HASH_FIXED means use a fixed-length hash table; the implication is that\n    the hash value will be a small number of bits, so that the table isn't\n    too large.  A variable-length hash table will allow for large numbers\n    of bits in the hash value. */\n#define HASH_FIXED 0\n\n/* Generic hashed database structure */\ntypedef struct _hshdb\n{\n    struct _hshdb *phshdbNext;\n    uint luHash;\n} HSHDB, *PHSHDB;\n\n/* Brender Model DataBase structure */\ntypedef struct _bmdb\n{\n    HSHDB hshdb;   // hash DB header\n    MODLF *pmodlf; // the file data\n    long cbModlf;\n    CHID chidBmdl;  // BMDL child ID\n    CNO cnoBmdl;    // BMDL CNO\n    char *pszName;  // name of the BMDL\n    PGL pglkidCmtl; // GL of CMTL parents' CNOs\n    unsigned fFixWrap : 1, fSpherical : 1;\n} BMDB, *PBMDB;\n\n/* Brender MATrix34 DataBase structure */\ntypedef struct _bmatdb\n{\n    HSHDB hshdb;\n    int ixf;\n} BMATDB, *PBMATDB;\n\n/* Brender Model HieraRchy */\ntypedef struct _bmhr\n{\n    MODLF *pmodlf; // the file data\n    long cbModlf;\n    BMAT34 bmat34; // XF\n    MTRLF mtrlf;\n    PSTN pstnMtrlFile;\n    BRUFR brufrUOffset; // Material offsets\n    BRUFR brufrVOffset;\n    short uMinCrop; // Material cropping\n    short uMaxCrop;\n    short vMinCrop;\n    short vMaxCrop;\n    unsigned fMtrlf : 1, fCrop : 1, fAccessory : 1, fFixWrap : 1, fSpherical : 1;\n    char *pszName;\n    short ibps;\n    struct _bmhr *pbmhrChild;\n    struct _bmhr *pbmhrSibling;\n} BMHR, *PBMHR;\n\n/* A color range */\ntypedef struct _crng\n{\n    long lwBase, lwRange;\n} CRNG;\n\n/* A CMTL descriptor */\ntypedef struct _cmtld\n{\n    CNO cno;      // the CMTL's CNO\n    CHID chidCur; // the next CHID for the CMTL's children\n    short ibps;   // the body part set as specified in the .hrc file\n    CHID chid;    // the CHID of this CMTL\n} CMTLD, *PCMTLD;\n\n/* A TMAP descriptor */\ntypedef struct _tmapd\n{\n    PSTN pstn;    // the name of the TMAP\n    long ccnoPar; // the number of MTRL parents\n    long xp;      // the size of the bitmap\n    long yp;\n} TMAPD, *PTMAPD;\n\nenum\n{\n    ttActor = ttLimChlx, // TMPL initialization\n    ttActionS2B,         // Define a single action for the TMPL\n    ttBackgroundS2B,     // Define a background\n    ttCostume,           // Define a costime for a TMPL\n\n    ttPosition, // SoftImage POS_STATIC token\n    ttInterest, // SoftImage INT_STATIC token\n    ttNearCam,\n    ttFarCam,\n    ttFovCam,\n    ttStatic, // SoftImage STATIC token\n\n    ttCno, // Tokens for converter script cmd parms\n    ttCalled,\n    ttXRest,\n    ttYRest,\n    ttZRest,\n    ttFilebase,\n    ttFirst,\n    ttLast,\n    ttFlags,\n    ttScale,\n    ttSkip,\n    ttSubmodel,\n    ttBPS,\n    ttLights,\n    ttCameras,\n    ttLength,\n    ttStep,\n    ttUseSets,\n    ttNewActorPos,\n    ttMaterials,\n    ttFilename,\n\n    ttFloat, // data type is floating point\n\n    ttLimS2B\n};\n\ntypedef struct _s2btk\n{\n    TOK tok;\n    double fl;\n} S2BTK, *PS2BTK;\n\ntypedef class S2BLX *PS2BLX;\n#define kclsS2BLX 's2bl'\n#define S2BLX_PAR LEXB\nclass S2BLX : public S2BLX_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    long _ttCur;\n    double _fl;\n\n  protected:\n    virtual void _ReadNumTok(PTOK ptok, achar ch, long lwBase, long cchMax);\n\n  public:\n    S2BLX(PFIL pfil, bool fUnionStrings = fTrue) : S2BLX_PAR(pfil, fUnionStrings)\n    {\n    }\n    ~S2BLX(void)\n    {\n    }\n\n    virtual bool FGetTok(PTOK ptok);\n    bool FGetS2btk(PS2BTK ps2btk);\n    void GetFni(PFNI pfni)\n    {\n        _pfil->GetFni(pfni);\n    }\n    bool FIsDigit(char ch)\n    {\n        return FPure(_GrfctCh(ch) & fctDec);\n    }\n    virtual bool FTextFromTt(long tt, PSTN pstn);\n    bool FTextFromS2btk(PS2BTK ps2btk, PSTN pstn);\n};\n\n#define CnoAdd(ccno) (_cnoCur = (((_cnoPar & 0x0FFFF0000) + 0x010000) | (_cnoCur & 0x0FFFF) + (ccno)))\n#define CnoNext() CnoAdd(1)\n\n/* Some useful helper functions */\nPGL PglcrngFromPal(PGL pglclr);\nlong LwcrngNearestBrclr(BRCLR brclr, PGL pglclr, PGL pglcrng);\n\n#if HASH_FIXED\n\n#define kcpbmdb 64 // must be a power of 2\n#define kmskBmdb (kcpbmdb - 1)\n#define kcbrgpbmdb (size(PBMDB) * kcpbmdb)\n// #define an appropriate fixed-size polynomial here\n\n#else // HASH_FIXED\n\n#define kluCrcPoly 0xEDB88320L\n#define kluHashInit 0xFFFFFFFFL\n\n#endif // !HASH_FIXED\n\n#define kszLight \"%s-light%d.1-0.sal\"\n#define kszCam \"%s-cam.1-%d.sac\"\n#define kszBmp \"%s-view.1-%d.bmp\"\n#define kszZpic \"%s-view.1-%d.Zpic\"\n#define kszZbmp \"%s-view.1-%d.Zbmp\"\n#define kftgALite 'SAL'\n#define kftgACam 'SAC'\n#define kftgS2b 'S2B'\n#define kftgCht 'CHT'\n#define kftgInc 'H'\n#define kftgTmapChkFile 'CPF'\n#define kftgZpic 'ZPIC'\n#define kftgZbmp 'ZBMP'\n\n// Script parameter types\nenum\n{\n    ptString = 0,\n    ptLong,\n    ptBRS,\n    ptBRA,\n\n    ptNil = -1\n};\n\n#define kcscrpMax 10\n\ntypedef struct _scrp\n{\n    long pt; // parameter type\n    long tt; // token for this parm\n    char szErr[80];\n} SCRP, *PSCRP;\n\nextern const SCRP rgscrpActor[];\nextern const SCRP rgscrpAction[];\nextern const SCRP rgscrpBackground[];\n\nenum\n{\n    kmdQuiet = 0,\n    kmdHelpful,\n    kmdVerbose\n};\n\nenum\n{\n    kmdbpsNone = 0,     // ignore body part set info\n    kmdbpsNumberedOnly, // keep only those nodes with body part set info\n    kmdbpsAllMesh,      // keep null nodes with body part set info, and all mesh nodes\n    kmdbpsAllMeshNull,  // keep all null and mesh nodes\n\n    kmdbpsLim\n};\n\nenum\n{\n    fs2bNil = 0,\n    kfs2bContinue = 1,\n    kfs2bPreprocess = 2,\n    kfs2bFixWrap = 4\n};\n\ntypedef class S2B *PS2B;\n#define kclsS2B 'S2B'\n#define S2B_PAR BASE\nclass S2B : public S2B_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    NOCOPY(S2B)\n\n#ifdef DEBUG\n    void AssertValidBmhr(PBMHR pbmhr);\n    void MarkBmhr(PBMHR pbmhr);\n#endif // DEBUG\n\n  protected:\n    /* Used by script interpreter and chunk output code */\n    PS2BLX _ps2blx; // used to process script file\n    CHSE _chse;     // used to dump chunk text to output file\n    CTG _ctgPar;    // CTG and CNO of current parent\n    CNO _cnoPar;\n    CNO _cnoCur;  // Current chunk number\n    STN _stnT;    // tmp buf for S2B to use\n    S2BTK _s2btk; // current script token\n    int _iZsign;  // Z multiplier\n\n    /* Used by TMPL-specific stuff */\n    STN _stnTmpl;\n    STN _stnActn;\n    CHID _chidActn; // Next available ACTN CHID\n    CHID _chidBmdl;\n    CHID _chidCmtl;\n    short _ibpCur; // current body part #\n    PGL _pglibactPar;\n    PGL _pglbs;\n    PGL _pglcmtld;\n    PGG _pggcl;\n    PGL _pglxf;\n    PGL _pglibps; // list of body part sets to generate costumes for\n    PGG _pggcm;\n    PGG _pggtmapd; // list of TMAP chunks used by the current actor\n#if HASH_FIXED\n    PBMDB *_prgpbmdb; // BMDL database\n//\tPBMATDB *_prgpbmatdb;\t// BMAT34 database\n#else             /* HASH_FIXED */\n    PGL _pglpbmdb;   // BMDL database\n    PGL _pglpbmatdb; // XF database\n#endif            /* !HASH_FIXED */\n    PBMHR _pbmhr; // BMDL hierarchy for current cel\n    int _cMesh;   // count of mesh nodes for current cel\n    int _cFace;   // count of all polygons (faces) for current cel\n    CPS *_prgcps;\n\n    /* Bitfields */\n    /* General items */\n    uint _mdVerbose : 2, _uRound : 4, _uRoundXF : 4;\n    bool _fContinue : 1, _fPreprocess : 1, _fFixWrap : 1;\n    /* TMPL-specific items */\n    bool _fMakeGlpi : 1, _fColorOnly : 1, _fMakeCostume : 1, _fCostumeOnly : 1;\n    uint _mdBPS : 2;\n\n    /* Useful data that doesn't wind up in chunks */\n    PGL _pglcrng;\n    PGL _pglclr;\n\n  protected:\n    /* General script interpreter and chunk output stuff */\n    bool _FDoTtActor(bool *pfHaveActor);\n    bool _FDoTtActionS2B(void);\n    bool _FDoTtBackgroundS2B(void);\n    bool _FDoTtCostume(void);\n    bool _FReadCmdline(char *szResult, bool *pfGotTok, const SCRP rgscrp[], ...);\n    void _DumpHeader(CTG ctg, CNO cno, PSTN pstnName, bool fPack);\n\n    /* TMPL-specific stuff */\n    bool _FInitGlpiCost(bool fForceCost);\n    bool _FProcessModel(Model *pmodel, BMAT34 bmat34Acc, PBMHR *ppbmhr, PSTN pstnSubmodel = pvNil,\n                        PBMHR pbmhrParent = pvNil, int cLevel = 0);\n    PBMHR _PbmhrFromModel(Model *pmodel, BMAT34 *pbmat34, PBMHR *ppbmhr, PBMHR pbmhrParent, int ibps, bool fAccessory);\n    BRS _BrsdwrFromModel(Model *pmodel, BRS rgbrsDwr[]);\n    void _CopyVertices(DK_Vertex *vertices, void *pvDst, long cVertices);\n    void _CopyFaces(DK_Polygon *polygons, void *pvDst, long cFaces, BRV rgbrv[], long cVertices);\n    bool _FProcessBmhr(PBMHR *ppbmhr, short ibpPar = -1);\n    bool _FEnsureOneRoot(PBMHR *ppbmhr);\n    void _InitBmhr(PBMHR pbmhr);\n    void _FlushTmplKids(void);\n    bool _FModlfToBmdl(PMODLF pmodlf, PBMDL *ppbmdl);\n    bool _FBmdlToModlf(PBMDL pbmdl, PMODLF *ppmodlf, long *pcb);\n    bool _FSetCps(PBMHR pbmhr, CPS *pcps);\n    bool _FChidFromModlf(PBMHR pbmhr, CHID *pchid, PBMDB *ppbmdb = pvNil);\n    bool _FAddBmdlParent(PBMDB pbmdb, KID *pkid);\n    bool _FInsertPhshdb(PHSHDB phshdb, PGL pglphshdb);\n    bool _FIphshdbFromLuHash(uint luHash, long *piphshdb, PGL pglphshdb);\n    PBMDB _PbmdbFindModlf(MODLF *pmodlf, long cbModlf, uint *pluHashList);\n    void _InitCrcTable(void);\n    uint _LuHashBytesNoTable(uint luHash, void *pv, long cb);\n    uint _LuHashBytes(uint luHash, void *pv, long cb);\n    bool _FImat34GetBmat34(BMAT34 *pbmat34, long *pimat34);\n    void _DisposeBmhr(PBMHR *ppbmhr);\n    bool _FDoBodyPart(PBMHR pbmhr, long ibp);\n    void _ApplyBmdlXF(PBMHR pbmhr);\n    void _TextureFileFromModel(Model *pmodel, PBMHR pbmhr, bool fWrapOnly = fFalse);\n    bool _FTmapFromBmp(PBMHR pbmhr, CNO cnoPar, PSTN pstnMtrl);\n    bool _FFlushTmaps(void);\n\n    /* BKGD-specific stuff */\n    bool _FDumpLites(int cLite, PSTN stnBkgd);\n    bool _FDumpCameras(int cCam, PSTN pstnBkgd, int iPalBase, int cPal);\n    bool _FBvec3Read(PS2BLX ps2blx, BVEC3 *pbvec3, PS2BTK ps2btk);\n    void _Bmat34FromVec3(BVEC3 *pbvec3, BMAT34 *pbmat34);\n    void _ReadLite(PSTN pstnLite, LITE *plite);\n    void _ReadCam(PSTN pstnCam, CAM *pcam, PGL *ppglapos);\n    bool _FZbmpFromZpic(PSTN pstnBkgd, CNO cnoPar, int iCam, long dxp, long dyp, CAM *pcam);\n\n    /* Brender-knowledgable utilities */\n    bool _FBrsFromS2btk(PS2BTK ps2btk, BRS *pbrs)\n    {\n        if (ps2btk->tok.tt == ttLong)\n            *pbrs = BrIntToScalar(ps2btk->tok.lw);\n        else if (ps2btk->tok.tt == ttFloat)\n            *pbrs = BrFloatToScalar(ps2btk->fl);\n        else\n            return fFalse;\n        return fTrue;\n    }\n\n    S2B(bool fSwapHand, uint mdVerbose, int iRound, int iRoundXF, achar *pszApp);\n    ~S2B(void);\n\n  public:\n    static PS2B Ps2bNew(PFIL pfilSrc, bool fSwapHand, uint mdVerbose, int iRound, int iRoundXF, char *pszApp);\n    bool FConvertSI(PMSNK pmsnkErr, PMSNK pmsnkDst, PFNI pfniInc = pvNil, ulong grfs2b = fs2bNil);\n};\n\n#endif // !SITOBREN_H\n"
  },
  {
    "path": "inc/soc.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//\n//  soc.h\n//\n//  Author: Sean Selitrennikoff\n//\n//  Date: August, 1994\n//\n\n#ifndef SOC_H\n#define SOC_H\n\n#include \"frame.h\"\n#include \"socdef.h\"\n#include \"socutil.h\"\n#include \"tagman.h\"\n#include \"tagl.h\"\n#include \"bren.h\"\n#include \"tmap.h\"\n#include \"modl.h\"\n#include \"mtrl.h\"\n#include \"body.h\"\n#include \"tmpl.h\"\n#include \"tdf.h\"\n#include \"tdt.h\"\n#include \"msnd.h\"\n#include \"srec.h\"\n#include \"actor.h\"\n#include \"scene.h\"\n#include \"movie.h\"\n#include \"bkgd.h\"\n#include \"tbox.h\"\n\n#define kctgActn 'ACTN'\n#define kctgActr 'ACTR'\n#define kctgBds 'BDS '\n#define kctgBkgd 'BKGD'\n#define kctgBmdl 'BMDL'\n#define kctgBpmp 'BPMP'\n#define kctgCam 'CAM '\n#define kctgGgae 'GGAE'\n#define kctgGldc 'GLDC' // REVIEW *****: obsolete\n#define kctgGgcm 'GGCM'\n#define kctgGllt 'GLLT'\n#define kctgGlms 'GLMS' // motion-match sounds (under ACTN)\n#define kctgGgcl 'GGCL'\n#define kctgGlxf 'GLXF'\n#define kctgMsnd 'MSND'\n#define kctgMtrl 'MTRL'\n#define kctgCmtl 'CMTL'\n#define kctgMvie 'MVIE'\n#define kctgPath 'PATH'\n#define kctgPict 'PICT'\n#define kctgScen 'SCEN'\n#define kctgSnd 'SND '\n#define kctgSoc 'SOC '\n#define kctgTbox 'TBOX'\n#define kctgTdf 'TDF '\n#define kctgTdt 'TDT '\n#define kctgTmpl 'TMPL'\n#define kctgGlpi 'GLPI'\n#define kctgGlbs 'GLBS'\n#define kctgInfo 'INFO'\n#define kctgFrmGg 'GGFR'\n#define kctgStartGg 'GGST'\n#define kctgThumbMbmp 'THUM'\n#define kctgGltm 'GLTM'\n#define kctgGlbk 'GLBK'\n#define kctgGlcg 'GLCG'\n#define kctgBkth 'BKTH' // Background thumbnail\n#define kctgCath 'CATH' // Camera thumbnail\n#define kctgTmth 'TMTH' // Template thumbnail (non-prop)\n#define kctgPrth 'PRTH' // Prop thumbnail\n#define kctgAnth 'ANTH' // Action thumbnail\n#define kctgSvth 'SVTH' // Sounds (voice) thumbnail\n#define kctgSfth 'SFTH' // Sounds (FX) thumbnail\n#define kctgSmth 'SMTH' // Sounds (midi) thumbnail\n#define kctgMtth 'MTTH' // Materials thumbnail\n#define kctgCmth 'CMTH' // Custom materials thumbnail\n#define kctgTsth 'TSTH' // 3d shape thumbnail\n#define kctgTfth 'TFTH' // 3d font thumbnail\n#define kctgTcth 'TCTH' // Text color thumbnail\n#define kctgTbth 'TBTH' // Text background thumbnail\n#define kctgTzth 'TZTH' // Text size thumbnail\n#define kctgTyth 'TYTH' // Text style thumbnail\n\n#define khidMscb khidLimKidFrame\n#define khidMvieClock khidLimKidFrame + 1\n#define khidRcd khidLimKidFrame + 2\n#define khidMsq khidLimKidFrame + 3\n#define khidMsqClock khidLimKidFrame + 4\n// khidStudio \t\t\t\tkhidLimKidFrame + 5  Defined in stdiodef.h\n\n#define kftgChunky MacWin('chnk', 'CHK')\n#define kftgContent MacWin('3con', '3CN')\n#define kftgThumbDesc MacWin('3thd', '3TH')\n#define kftg3mm MacWin('3mm', '3MM')\n#define kftgSocTemp MacWin('3tmp', '3TP')\n\n#define ksz3mm PszLit(\"3mm\")\n\n// Global variables\nextern PTAGM vptagm;\n\n#endif !SOC_H\n"
  },
  {
    "path": "inc/socdef.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Socrates #defines that might get used by a source file for a tool, such\n    as source files for the chunky compiler.  This file should only contain\n    #defines, and the values for the #defines should be constant values\n    (no arithmetic).\n\n***************************************************************************/\n#ifndef SOCDEF_H\n#define SOCDEF_H\n\n#define BUG1866\n#define BUG1870\n#define BUG1888\n#define BUG1899\n#define BUG1906\n#define BUG1907\n#define BUG1929\n#define BUG1932\n#define BUG1959\n#define BUG1960\n#define BUG1961\n#define BUG1973\n\n#define kfps 6 // frames per second for playback and recording\n\n/***************************************************************************\n    Error codes\n***************************************************************************/\n\n/****************************************************\n    100000 - 109999: Movie-engine-issued error codes\n****************************************************/\n\n// 100000 - 100099: general movie engine errors\n#define ercSocSaveFailure 100000\n#define ercSocSceneSwitch 100002\n#define ercSocSceneChop 100003\n#define ercSocBadFile 100004\n#define ercSocNoTboxSelected 100005\n#define ercSocNoActrSelected 100006\n#define ercSocNotUndoable 100007\n#define ercSocNoScene 100008\n#define ercSocBadVersion 100009\n#define ercSocNothingToPaste 100010\n#define ercSocBadFrameSlider 100011\n#define ercSocGotoFrameFailure 100012\n#define ercSocDeleteBackFailure 100013\n#define ercSocActionNotApplicable 100014\n#define ercSocCannotPasteThatHere 100015\n#define ercSocNoModlForChar 100016\n#define ercSocNameTooLong 100017\n#define ercSocTboxTooSmall 100018\n#define ercSocNoThumbnails 100019\n#define ercSocTdtTooLong 100020\n#define ercSocBadTdf 100021\n#define ercSocNoActrMidi 100022\n#define ercSocNoImportRollCall 100023\n#define ercSocNoNukeRollCall 100024\n#define ercSocSceneSortError 100025\n#define ercSocCantInitSceneSort 100026\n#define ercSocCantInitSplot 100027\n#define ercSocNoWaveIn 100028\n#define ercSocWaveInProblems 100029\n#define ercSocPortfolioFailed 100030\n#define ercSocCantInitStudio 100031\n#define ercSoc3DWordCreate 100032\n#define ercSoc3DWordChange 100033\n#define ercSocWaveSaveFailure 100034\n#define ercSocNoSoundName 100035\n#define ercSocNoKidSndsInMovie 100036\n#define ercSocCreatedUserDir 100037\n#define ercSocMissingMelanieDoc 100038\n#define ercSocCantLoadMelanieDoc 100039\n#define ercSocBadSceneSound 100040\n#define ercSocBadSoundFile 100041\n#define ercSocNoDefaultFont 100042\n#define ercSocCantCacheTag 100043\n#define ercSocInvalidFilename 100044\n#define ercSocNoSndOnPaste 100045\n#define ercSocCantCopyMsnd 100046\n// *If you add anything below this line you need to notify leannp about it so she can make a help topic for it*\n\n/***************************************************************************\n    String IDs\n***************************************************************************/\n\n// For kcnoGstApp:\n// REVIEW: should these (and other instances of string IDs) be kids...? */\n#define idsNil (-1L)\n#define idsWindowTitle 0\n#define idsProductLong 1\n#define idsProductShort 2\n#define idsDefaultUser 3\n#define idsEngineCopyOf 4\n#define idsEngineDefaultTitle 5\n#define idsDefaultFont 6\n#define idsUsersDir 12\n#define idsWNetError 13\n#define idsDefaultDypFont 14\n#define idsPortfSaveMovieTitle 15\n#define idsPortfOpenMovieTitle 16\n#define idsPortfOpenSoundTitle 17\n#define idsPortfOpenTextureTitle 18\n#define idsPortfMovieFilterLabel 19\n#define idsPortfMovieFilterExt 20\n#define idsPortfSoundFilterLabel 21\n#define idsPortfSoundMidiFilterExt 22\n#define idsPortfSoundWaveFilterExt 23\n#define idsPortfTextureFilterLabel 24\n#define idsPortfTextureFilterExt 25\n#define idsMelanie 26\n#define idsOOM 27\n#define idsExitStudio 28\n#define idsSaveChangesBkp 29\n#define idsConfirmExitBkp 30\n#define idsDeleteSound 31\n#define idsReplaceFile 32\n#define idsPurgeSounds 33\n\n/***************************************************************************\n    Chunk numbers\n***************************************************************************/\n\n#define kcnoGstTitles 0\n#define kcnoGstError 1\n#define kcnoGstMisc 2\n#define kcnoGstAction 3\n#define kcnoGstStudioFiles 4\n#define kcnoGstBuildingFiles 5\n#define kcnoGstApp 6\n#define kcnoGstSharedFiles 7\n\n#define kcnoGlcrInit 0\n\n#define kcnoMbmpSplash 0\n#define kcnoMbmpPortBackOpen 1\n#define kcnoMbmpPortBtnOk 2\n#define kcnoMbmpPortBtnOkSel 3\n#define kcnoMbmpPortBtnCancel 4\n#define kcnoMbmpPortBtnCancelSel 5\n#define kcnoMbmpHomeLogo 6\n#define kcnoMbmpPortBtnHome 7\n#define kcnoMbmpPortBtnHomeSel 8\n#define kcnoMbmpPortBackSave 9\n\n#define kcnoMidiSplash 0\n\n/***************************************************************************\n    Commands\n***************************************************************************/\n\n#define cidCopyRoute 44000\n#define cidCopyTool 44001\n#define cidCutTool 44002\n#define cidPasteTool 44003\n#define WM_QUERY_EXISTS 44004\n#define WM_QUERY_LOCATION 44005\n#define WM_SET_MOVIE_POS 44006\n#define cidRender 44007\n#define cidActorPlaced 44008\n#define cidActorPlacedOutOfView 44009\n#define cidActorClicked 44010\n#define cidMviePlaying 44011\n#define cidTboxClicked 44012\n#define cidMovieGoto 44013\n#define cidShiftCut 44014\n#define cidShiftCopy 44015\n#define cidActorClickedDown 44016\n#define cidDeactivate 44017\n#define cidSceneLoaded 44018\n#endif // SOCDEF_H\n"
  },
  {
    "path": "inc/socdefn.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// -----------------------------------------------------\n// #define'd values for US / Z Version of Socrates\n// -----------------------------------------------------\n\n// -----------------------------------------------------\n// the Place object descriptors\n// these values are typically the 'base' of the objects\n// within the place.\n// -----------------------------------------------------\n#include <buildgob.h>\n\n// Shared objects -- cursors, map, portfolio.\n#include <sharedef.h>\n\n// -----------------------------------------------------\n// Help balloon and control definitions\n// -----------------------------------------------------\n#include <balloons.chh>\n\n#ifndef SOCDEFN_H\n#define SOCDEFN_H\n\n#define kgobInit 0x00012100 // Initialize globals\n// #define kgobPortfolio\t0x00012200\t\t// Portfolio object\n#define kgobMovie 0x00012300 // Movie viewer object\n\n// -----------------------------------------------------\n// Definitions of objects within various places/objects\n// -----------------------------------------------------\n\n#define kgobMcZeeRoller 0x00010301\n#define kgobMcZeePacker 0x00010302\n\n#define kgobStreetMcZee 0x00010401\n#define kgobStreetMask 0x00010402\n\n#define kgobTicket1Doors 0x00010501\n#define kgobTicket1Waiter 0x00010502\n\n#define kgobTicket2Exit 0x00010581\n#define kgobTicket2Map 0x00010582\n#define kgobTicket2McZee 0x00010583\n#define kgobTicket2Cans 0x00010584\n#define kgobTicket2Camera 0x00010585\n#define kgobTic1m1 0x00010586\n#define kgobTicketMcZeeAVI 0x00010587\n#define kgobTicketMcZeeAVI2 0x00010588\n\n#define kgobLobby1Poster1 0x00010601\n#define kgobLobby1Poster2 0x00010602\n#define kgobLobby1Poster3 0x00010603\n#define kgobLobby1Poster4 0x00010604\n#define kgobLobby1SnackSign 0x00010605\n#define kgobLobby1Door 0x00010607\n#define kgobLobby1McZee 0x00010608\n#define kgobLobby1m1 0x00010609\n#define kgobLobbyAVI 0x0001060a\n\n#define kgobLobby2Doors 0x00010703\n#define kgobLobby2Exit 0x00010704\n#define kgobLobby2Map 0x00010705\n#define kgobLobby2m1 0x00010706\n#define kgobLobby2m2 0x00010707\n#define kgobLobby2m3 0x00010708\n\n#define kgobSnackbarMczee 0x00010806\n#define kgobLobby3m1 0x00010807\n#define kgobLobby3m2 0x00010808\n\n#define kgobWaitingCouch 0x00010901\n#define kgobWaitingPicture 0x00010902\n\n#define kgobInsp1McZee 0x00011401\n#define kgobSplotMachine 0x00011402\n#define kgobTalentBook 0x00011403\n#define kgobIdea1m1 0x00011404\n\n#define kgobIdea2m1 0x00011405\n\n#define kgobIdea3m1 0x00011406\n#define kgobIdea3m2 0x00011407\n#define kgobIdea3m3 0x00011408\n#define kgobIdea3m4 0x00011409\n\n#define kgobIdea4m1 0x0001140a\n#define kgobIdea4m2 0x0001140b\n#define kgobIdea4m3 0x0001140c\n\n#define kgobIdeaMcZeeAVI1 0x0001140d\n#define kgobIdeaMcZeeAVI2 0x0001140e\n#define kgobIdeaMcZeeAVI3 0x0001140f\n\n#define kgobStudio1Tools 0x00011801\n#define kgobStudio1McZee 0x00011802\n#define kgobToolsIntroAVI 0x00011803\n#define kgobStudio1TV 0x00011804\n#define kgobStdo1m1 0x00011805\n\n#define kgobStudio2Doors 0x00011901\n#define kgobStudio2Exit 0x00011902\n#define kgobStudio2Map 0x00011903\n#define kgobStudio2ExitWord 0x00011904\n\n#define kgobStdo4m1 0x00011905\n#define kgobStdo4m2 0x00011906\n#define kgobStdo4m3 0x00011907\n#define kgobStdo4m4 0x00011908\n\n#define kgobStdo3m1 0x00011909\n#define kgobStdo3m2 0x0001190a\n#define kgobStdo3m3 0x0001190b\n\n#define kgobStdo2m1 0x0001190c\n#define kgobStdo2m2 0x0001190d\n#define kgobStdo2m3 0x0001190e\n#define kgobStdo2m4 0x0001190f\n\n#define kgobTheatre1LeftDoor 0x00010c01\n#define kgobTheatre1RightDoor 0x00010c02\n#define kgobTheatre1McZee 0x00010c03\n#define kgobPlayButton 0x00010c04\n#define kgobStopButton 0x00010c05\n#define kgobRewindButton 0x00010c06\n#define kgobVolumeButton 0x00010c07\n#define kgobCountDn 0x00010c08\n#define kgobMovieClickFilter 0x00010c09\n#define kgobTheaterVolume 0x00010c0a\n\n#define kgobTheatre2Door 0x00010d01\n#define kgobTheatre2Exit 0x00010d02\n#define kgobTheatre2Map 0x00010d03\n#define kgobTheater2m1 0x00010d04\n#define kgobTheater2m2 0x00010d05\n#define kgobTheater2m3 0x00010d06\n\n#define kgobTheatre3Right 0x00010e01\n#define kgobTheatre3Door 0x00010e02\n#define kgobTheatre3Exit 0x00010e03\n#define kgobTheatre3Map 0x00010e04\n\n#define kgobTheatre4Left 0x00010f01\n#define kgobTheatre4Door 0x00010f02\n#define kgobTheatre4Exit 0x00010f03\n#define kgobTheatre4Map 0x00010f04\n#define kgobTheatre4McZee 0x00010f05\n#define kgobThe4OpenDoor 0x00010f06\n\n#define kgobBackstage1Insp 0x00011001\n#define kgobBackstage1Studio 0x00011002\n#define kgobBackstage1Proj 0x00011003\n#define kgobIdeaDoor 0x00011004\n#define kgobBackstage1Bag 0x00011005\n#define kgobProjectDoor 0x00011006\n#define kgobStudioDoor 0x00011007\n#define kgobBackstage1Shadow 0x00011008\n#define kgobBackstageMcZeeAVI 0x00011009\n#define kgobBackstageMcZee 0x0001100a\n#define kgobBackstageMcZeeAVI1 0x0001100b\n#define kgobBackstageMcZeeAVI2 0x0001100c\n#define kgobBackstageMcZeeAVI3 0x0001100d\n#define kgobBackstageMcZeeAVI4 0x0001100e\n#define kgobBackstageMcZeeAVI5 0x0001100f\n#define kgobBackstageMcZeeAVI6 0x00011010\n\n#define kgobBackstage2Left 0x00011103\n#define kgobBackstage2Right 0x00011104\n#define kgobBackstage2Exit 0x00011105\n#define kgobBackstage2Map 0x00011106\n#define kgobBackstage2m1 0x00011107\n#define kgobBackstage2m2 0x00011108\n\n#define kgobInsp2Doors 0x00011501\n#define kgobInsp2Exit 0x00011502\n#define kgobInsp2Map 0x00011503\n\n#define kgobProj1Melanie 0x00011b01\n#define kgobProj1Mon1 0x00011b02\n#define kgobProj1Mon2 0x00011b03\n#define kgobProj1Cart 0x00011b04\n#define kgobFlyingLogos 0x00011b05\n#define kgobMovieTech 0x00011b06\n#define kgobPrjt1m1 0x00011b07\n#define kgobMelAVI 0x00011b08\n\n#define kgobProj2Doors 0x00011c01\n#define kgobProj2Exit 0x00011c02\n#define kgobProj2Map 0x00011c03\n\n#define kgobPrjt2m1 0x00011c04\n#define kgobPrjt2m2 0x00011c05\n#define kgobPrjt2m3 0x00011c06\n#define kgobPrjt2m4 0x00011c07\n#define kgobPrjt2m5 0x00011c08\n\n#define kgobPrjt4m1 0x00011c09\n#define kgobPrjt4m2 0x00011c0a\n#define kgobPrjt4m3 0x00011c0b\n#define kgobPrjt4m4 0x00011c0c\n\n#define kgobTvViewL 0x00011c0d\n#define kgobTvViewR 0x00011c0e\n\n// Duplicate definition in shared\\map.chh\n#define kgobMapHere 0x00012003\n\n#define kgobTalentBookObj 0x00012204\n#define kgobSplotMachineObj 0x00012205\n#define kgobBSplot1 0x00012206\n#define kgobBSplot2 0x00012207\n#define kgobBSplot3 0x00012208\n#define kgobBSplot4 0x00012209\n#define kgobBSplot5 0x0001220a\n#define kgobBSplot6 0x0001220b\n#define kgobBSplot7 0x0001220c\n#define kgobSplotView 0x0001220d\n#define kgobSplotGlass 0x0001220e\n\n// -----------------------------------------------------\n// Common object definitions\n// -----------------------------------------------------\n\n#define kgobPortfolio 0x00010101\n#define kgobPortIcon 0x00010102\n#define kgobCarpetBag 0x00010105\n#define kgobVolume 0x00010106\n#define kgobSwitcher 0x00010107\n#define kgobNavbarLeft 0x00010108\n#define kgobNavbarRight 0x00010109\n#define kgobNavbarDown 0x0001010a\n\n// -----------------------------------------------------\n// Common object bit flag definitions (for Util)\n// -----------------------------------------------------\n\n#define kflgPortfolio 0x00000001\n#define kflgPortIcon 0x00000002\n#define kflgMap 0x00000004\n#define kflgCarpetBag 0x00000020\n#define kflgVolume 0x00000040\n#define kflgSwitcher 0x00000080\n#define kflgNavbarLeft 0x00000100\n#define kflgNavbarRight 0x00000200\n#define kflgNavbarDown 0x00000400\n\n// -----------------------------------------------------\n// Palette Definition\n// -----------------------------------------------------\n#define kpalSocBase 0x00010000\n#define kpalImaginopolis 0x00010001\n#define kpalSocTicket 0x00010002\n#define kpalSocLobby 0x00010003\n#define kpalSocTheatre 0x00010004\n#define kpalSocBackstage 0x00010005\n#define kpalSocInspiration 0x00010006\n#define kpalSocStudio 0x00010007\n#define kpalSocProjects 0x00010008\n#define kpalSocStreet 0x00010009\n\n// -----------------------------------------------------\n// Sound definitions?  Midi definitions?\n// -----------------------------------------------------\n\n#define kwavSplash 0x00010001\n#define kwavBingo 0x00010003\n//\t\t\t\t\t\t\t0x00010010 Reserved for sound\n//\t \t\t\t\t\t\t0x00010030 definations in sharutil.chh.\n\n// -----------------------------------------------------\n// help TOPIC definitions\n// -----------------------------------------------------\n\n#define ktpcLoginGetName 0x00018540\n#define ktpcLoginInst 0x00018541\n#define ktpcLoginChoice 0x00018542\n\n#define ktpcQuitAlert 0x00018543\n#define ktpcYouHere 0x00018547\n#define ktpcTicketChoices 0x00018548\n\n#define ktpcSplashCredits 0x0001854e\n#define ktpcHelpAbout 0x0001854f\n#define ktpcInit 0x00018550\n\n#define ktpcLobbyTip 0x00018551\n\n#define ktpcTheatre1 0x00018552\n#define ktpcTheatre2 0x00018553\n\n#define ktpcBackstage 0x00018555\n\n#define ktpcProject1 0x00018556\n\n#define ktpcIdeas 0x00018557\n#define ktpcSplotIdea 0x00018558\n#define ktpcSplotIdea2 0x00018559\n#define ktpcStudio1 0x0001855a\n\n// voice over help topics + waves\n#define ktpcVO04AA 0x00018000\n#define ktpcVO5 0x00018001\n#define ktpcVO6 0x00018002\n#define ktpcVO6A 0x00018003\n#define ktpcVO6B 0x00018004\n#define ktpcVO6BB 0x00018005\n#define ktpcVO6C 0x00018006\n#define ktpcVO8 0x00018007\n#define ktpcVO10 0x00018008\n#define ktpcVO11C 0x00018009\n#define ktpcVO11CC 0x0001800a\n#define ktpcVO11CCC 0x0001800b\n#define ktpcVO01A 0x0001800c\n#define ktpcVO16 0x0001800d\n#define ktpcVO17 0x0001800e\n#define ktpcVO28A 0x0001800f\n#define ktpcVO28B 0x00018010\n#define ktpcVO28 0x00018011\n#define ktpcVO31 0x00018012\n#define ktpcVO32 0x00018013\n#define ktpcVO32B 0x00018014\n#define ktpc04_logn3 0x00018015\n#define ktpcVO36 0x00018016\n#define ktpcVO37 0x00018017\n#define ktpcVO38 0x00018018\n#define ktpcVO39 0x00018019\n#define ktpcVO40 0x0001801a\n#define ktpcVO41 0x0001801b\n#define ktpcVO43 0x0001801c\n#define ktpcTBCY2 0x0001801e\n#define ktpcTBTH3 0x0001801f\n#define ktpcTKTBTH 0x00018020\n#define ktpcVO54 0x00018021\n#define ktpcVO56B 0x00018022\n#define ktpcVO57A 0x00018023\n#define ktpcVO58 0x00018024\n#define ktpcVO59 0x00018025\n#define ktpcVO60 0x00018026\n#define ktpc21_thr1a 0x00018027\n#define ktpcVO71A 0x00018028\n#define ktpcVO74B 0x00018029\n#define ktpcVO76 0x0001802a\n#define ktpcVO75D 0x0001802b\n#define ktpcVO79 0x0001802c\n#define ktpcVO80AA 0x0001802d\n#define ktpcVO80A 0x0001802e\n#define ktpcVO80B 0x0001802f\n#define ktpcVO83 0x00018030\n#define ktpcVO86 0x00018031\n#define ktpcVO91 0x00018032\n#define ktpcVO93 0x00018033\n#define ktpcVO93A 0x00018034\n#define ktpcVO94 0x00018035\n#define ktpcVO57 0x00018037\n#define ktpcStd1B 0x00018038\n\n#define ktpcVO57AA 0x0001803a\n\n#define ktpcStd1A 0x0001803b // These three MUST be consecutive!\n#define ktpcVO97A 0x0001803c // Used in Studio1 for Random McZee\n#define ktpcVO97B 0x0001803d // wait state.\n\n#define ktpcVO53 0x00018040\n#define ktpc30_thr4 0x00018041\n#define ktpcVO75 0x00018043\n\n#define ktpcPrjt2A 0x00018044\n#define ktpcVO40A 0x00018048\n#define ktpcVO40E 0x00018049\n\n#define kwavVO04AA 0x00018000\n#define kwavVO5 0x00018001\n#define kwavVO6 0x00018002\n#define kwavVO6A 0x00018003\n#define kwavVO6B 0x00018004\n#define kwavVO6BB 0x00018005\n#define kwavVO6C 0x00018006\n#define kwavVO8 0x00018007\n#define kwavVO10 0x00018008\n#define kwavVO11C 0x00018009\n#define kwavVO11CC 0x0001800a\n#define kwavVO11CCC 0x0001800b\n#define kwavVO01A 0x0001800c\n#define kwavVO16 0x0001800d\n#define kwavVO17 0x0001800e\n#define kwavVO28A 0x0001800f\n#define kwavVO28B 0x00018010\n#define kwavVO28 0x00018011\n#define kwavVO31 0x00018012\n#define kwavVO32 0x00018013\n#define kwavVO32B 0x00018014\n#define kwav04_logn3 0x00018015\n#define kwavVO37 0x00018017\n#define kwavVO38 0x00018018\n#define kwavVO39 0x00018019\n#define kwavVO40 0x0001801a\n#define kwavVO41 0x0001801b\n#define kwavVO43 0x0001801c\n#define kwavTBCY2 0x0001801d\n#define kwavTBTH3 0x0001801f\n#define kwavTKTBTH 0x00018020\n#define kwavVO56B 0x00018022\n#define kwavVO57A 0x00018023\n#define kwavVO58 0x00018024\n#define kwavVO59 0x00018025\n#define kwavVO60 0x00018026\n#define kwav21_thr1a 0x00018027\n#define kwavVO71A 0x00018028\n#define kwavVO74B 0x00018029\n#define kwavVO76 0x0001802a\n#define kwavVO75D 0x0001802b\n#define kwavVO79 0x0001802c\n#define kwavVO80AA 0x0001802d\n#define kwavVO80A 0x0001802e\n#define kwavVO80B 0x0001802f\n#define kwavVO83 0x00018030\n#define kwavVO86 0x00018031\n#define kwavIdea1a 0x00018032\n#define kwavIdea1b 0x00018033\n#define kwavIdea2 0x00018034\n#define kwavIdea3 0x00018035\n#define kwavIdea4 0x00018036\n#define kwavVO94B 0x00018037\n#define kwavVO57 0x00018039\n#define kwavStd1B 0x0001803a\n#define kwavVO57AA 0x0001803c\n\n#define kwavVO292A 0x00018100\n#define kwavVO86A 0x00018101\n#define kwavVO86B 0x00018102\n\n#define kwavStd1A 0x00018103 // These three MUST be consecutive!\n#define kwavVO97A 0x00018104 // Used in Studio1 for Random McZee\n#define kwavVO97B 0x00018105 // wait state.\n\n#define kwavVO53 0x00018106\n#define kwav30_thr4 0x00018107\n#define kwavVO75 0x00018108\n#define kwavPrjt1 0x00018109\n#define kwavPrjt2A 0x0001810a\n#define kwav21_thr1b 0x0001810d\n#define kwavStudioIntro 0x0001810e\n#define kwavVO54 0x0001810f\n#define kwavRollerCoaster 0x00018110\n#define kwavTicketFar 0x00018111\n#define kwavPrjtMonitor 0x00018112\n#define kwavStudioTVPop 0x00018113\n#define kwavBioCancel 0x00018114\n#define kwavBioPopup 0x00018115\n// music definitions\n\n//-----------------------------------------------------\n// Shared MIDI music definitions\n//-----------------------------------------------------\n\n#define kmidBackstage 0x00010011\n#define kmidBoothjam 0x00010012\n#define kmidCloset 0x00010013\n#define kmidCoaster 0x00010014\n#define kmidIdeas 0x00010015\n#define kmidJamloop 0x00010016\n#define kmidLobby 0x00010017\n#define kmidProject 0x00010018\n#define kmidSnack 0x00010019\n#define kmidStudio 0x0001001a\n#define kmidTag 0x0001001b\n#define kmidTheatre 0x0001001c\n\n#define kmidRollerCoaster 0x0001001d\n#endif\n"
  },
  {
    "path": "inc/socres.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*******************************************************************\n *\n * socres.h\n *\n * Copyright (C) Microsoft Corporation 1993.\n * All Rights reserved.\n *\n *\n * Description: Include file for application product id info\n *\n ******************************************************************/\n\n//\n// RCDATA blocks\n//\n#define RC_PID_NUMBER 128 // NNNNNSSSXXXXXXX\\0\n#define RCDATA 10\n"
  },
  {
    "path": "inc/socutil.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*\n *\n * socutil.h\n *\n * This file contains miscellaneous includes and definitions\n * that are global to the Socrates product.\n *\n */\n\n#ifndef SOCUTIL_H\n#define SOCUTIL_H\n\nextern \"C\"\n{\n#include \"brender.h\"\n};\n\ntypedef class ACTR *PACTR;\ntypedef class SCEN *PSCEN;\ntypedef class MVIE *PMVIE;\ntypedef class BKGD *PBKGD;\ntypedef class TBOX *PTBOX;\ntypedef class MVIEW *PMVIEW;\ntypedef class STDIO *PSTDIO;\n\n//\n//\n// Class for undo items in a movie\n//\n// NOTE: All the \"Set\" functions are done automagically\n// in MVIE::FAddUndo().\n//\n//\ntypedef class MUNB *PMUNB;\n\n#define MUNB_PAR UNDB\n#define kclsMUNB 'MUNB'\nclass MUNB : public MUNB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    PMVIE _pmvie;\n    long _iscen;\n    long _nfrm;\n\n    MUNB(void)\n    {\n    }\n\n  public:\n    void SetPmvie(PMVIE pmvie)\n    {\n        _pmvie = pmvie;\n    }\n    PMVIE Pmvie(void)\n    {\n        return _pmvie;\n    }\n\n    void SetIscen(long iscen)\n    {\n        _iscen = iscen;\n    }\n    long Iscen(void)\n    {\n        return _iscen;\n    }\n\n    void SetNfrm(long nfrm)\n    {\n        _nfrm = nfrm;\n    }\n    long Nfrm(void)\n    {\n        return _nfrm;\n    }\n};\n\n//\n// Undo object for actor operations\n//\ntypedef class AUND *PAUND;\n\n#define AUND_PAR MUNB\n#define kclsAUND 'AUND'\nclass AUND : public AUND_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    PACTR _pactr;\n    long _arid;\n    bool _fSoonerLater;\n    bool _fSndUndo;\n    long _nfrmLast;\n    STN _stn; // actor's name\n    AUND(void)\n    {\n    }\n\n  public:\n    static PAUND PaundNew(void);\n    ~AUND(void);\n\n    void SetPactr(PACTR pactr);\n    void SetArid(long arid)\n    {\n        _arid = arid;\n    }\n    void SetSoonerLater(bool fSoonerLater)\n    {\n        _fSoonerLater = fSoonerLater;\n    }\n    void SetSndUndo(bool fSndUndo)\n    {\n        _fSndUndo = fSndUndo;\n    }\n    void SetNfrmLast(long nfrmLast)\n    {\n        _nfrmLast = nfrmLast;\n    }\n    void SetStn(PSTN pstn)\n    {\n        _stn = *pstn;\n    }\n\n    bool FSoonerLater(void)\n    {\n        return _fSoonerLater;\n    };\n    bool FSndUndo(void)\n    {\n        return _fSndUndo;\n    };\n\n    virtual bool FDo(PDOCB pdocb);\n    virtual bool FUndo(PDOCB pdocb);\n};\n\n//\n// Definition of transition types\n//\nenum TRANS\n{\n    transNil = -1,\n    transCut,\n    transFadeToBlack,\n    transFadeToWhite,\n    transDissolve,\n    transBlack,\n    transLim\n};\n\n#endif // SOCUTIL_H\n"
  },
  {
    "path": "inc/splot.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    splot.h: Splot machine class\n\n    Primary Author: ******\n    Review Status: Reviewed\n\n***************************************************************************/\n\n#define SPLOT_PAR GOK\ntypedef class SPLOT *PSPLOT;\n#define kclsSPLOT 'splt'\nclass SPLOT : public SPLOT_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(SPLOT)\n\n  private:\n    /* The movie */\n    PMVIE _pmvie;\n\n    /* The lists of content */\n    PBCL _pbclBkgd;\n    SFL _sflBkgd;\n    PBCL _pbclCam;\n    SFL _sflCam;\n    PBCL _pbclActr;\n    SFL _sflActr;\n    PBCL _pbclProp;\n    SFL _sflProp;\n    PBCL _pbclSound;\n    SFL _sflSound;\n\n    /* Current selected content */\n    long _ithdBkgd;\n    long _ithdCam;\n    long _ithdActr;\n    long _ithdProp;\n    long _ithdSound;\n\n    /* State of the SPLOT */\n    bool _fDirty;\n\n    /* Miscellaneous stuff */\n    PGL _pglclrSav;\n\n    SPLOT(PGCB pgcb) : SPLOT_PAR(pgcb)\n    {\n        _fDirty = fFalse;\n        _pbclBkgd = _pbclCam = _pbclActr = _pbclProp = _pbclSound = pvNil;\n    }\n\n  public:\n    ~SPLOT(void);\n    static PSPLOT PsplotNew(long hidPar, long hid, PRCA prca);\n\n    bool FCmdInit(PCMD pcmd);\n    bool FCmdSplot(PCMD pcmd);\n    bool FCmdUpdate(PCMD pcmd);\n    bool FCmdDismiss(PCMD pcmd);\n\n    PMVIE Pmvie(void)\n    {\n        return _pmvie;\n    }\n};\n"
  },
  {
    "path": "inc/srec.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    srec.h: Sound Recording class\n\n    Primary Author: ****** (based on ***** original srec)\n    Review Status: reviewed\n\n    BASE ---> SREC\n\n***************************************************************************/\n#ifndef SREC_H\n#define SREC_H\n\n#include \"audioman.h\"\n\n/****************************************\n    RIFF Header helper class\n****************************************/\n#ifdef MAC\n#define RIFF_TAG 'RIFF'\n#define WAVE_TAG 'WAVE'\n#define FMT__TAG 'fmt '\n#define DATA_TAG 'data'\n#define FACT_TAG 'fact'\n#else\n#define RIFF_TAG 'FFIR' // RIFF\n#define WAVE_TAG 'EVAW' // WAVE\n#define FMT__TAG ' tmf' // fmt_\n#define DATA_TAG 'atad' // data\n#define FACT_TAG 'tcaf' // fact\n#endif\n\n#pragma pack(push, _SOCPACK_)\n#pragma pack(1)\n\nclass RIFF\n{\n  private:\n    DWORD _dwRiffTag;\n    DWORD _dwRiffLength;\n    DWORD _dwWaveTag;\n    DWORD _dwFmtTag;\n    DWORD _dwFmtLength;\n    WAVEFORMATEX _wfx;\n    DWORD _dwDataTag;\n    DWORD _dwDataLength;\n\n  public:\n    void Set(long cchan, long csampSec, long cbSample, DWORD dwLength)\n    {\n        _dwRiffTag = RIFF_TAG;\n        _dwRiffLength = sizeof(RIFF) + dwLength;\n        _dwWaveTag = WAVE_TAG;\n        _dwFmtTag = FMT__TAG;\n        _dwFmtLength = sizeof(WAVEFORMATEX);\n        _wfx.wFormatTag = WAVE_FORMAT_PCM;\n        _wfx.nChannels = (ushort)cchan;\n        _wfx.nSamplesPerSec = csampSec;\n        _wfx.nAvgBytesPerSec = csampSec * cbSample * cchan;\n        _wfx.nBlockAlign = (ushort)cchan * (ushort)cbSample;\n        _wfx.wBitsPerSample = (ushort)LwMul(8, cbSample);\n        _wfx.cbSize = 0;\n        _dwDataTag = DATA_TAG;\n        _dwDataLength = dwLength;\n    }\n\n    LPWAVEFORMATEX PwfxGet()\n    {\n        return &_wfx;\n    };\n\n    DWORD Cb()\n    {\n        return sizeof(RIFF) + _dwDataLength;\n    };\n};\n#pragma pack(pop, _SOCPACK_)\n\n/****************************************\n    The sound recording class\n****************************************/\ntypedef class SREC *PSREC;\n#define SREC_PAR BASE\n#define kclsSREC 'SREC'\nclass SREC : public SREC_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    long _csampSec; // sampling rate (number of samples per second)\n    long _cchan;    // 1 = mono, 2 = stereo\n    long _cbSample; // bytes per sample (1 = 8 bit, 2 = 16 bit, etc)\n    ulong _dtsMax;  // maximum length to record\n    bool _fRecording;\n    bool _fPlaying;\n    bool _fHaveSound;   // have you recorded a sound yet?\n    bool _fBufferAdded; // have added record buffer\n\n    HWAVEIN _hwavein; // handle to wavein device\n    WAVEHDR _wavehdr; // wave hdr for buffer\n\n    LPMIXER _pmixer;     // pointer to Audioman Mixer\n    LPCHANNEL _pchannel; // pointer to Audioman Channel\n    LPSOUND _psnd;       // psnd for current sound\n    RIFF *_priff;        // pointer to riff in memory\n\n    bool _FOpenRecord();\n    bool _FCloseRecord();\n    static void _WaveInProc(HWAVEIN hwi, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2);\n\n  protected:\n    bool _FInit(long csampSec, long cchan, long cbSample, ulong dtsMax);\n    void _UpdateStatus(void);\n\n  public:\n    static PSREC PsrecNew(long csampSec, long cchan, long cbSample, ulong dtsMax);\n    ~SREC(void);\n\n    bool FStart(void);\n    bool FStop(void);\n    bool FPlay(void);\n    bool FRecording(void);\n    bool FPlaying(void);\n    bool FSave(PFNI pfni);\n    bool FHaveSound(void)\n    {\n        return _fHaveSound;\n    }\n};\n\n#endif SREC_H\n"
  },
  {
    "path": "inc/stdiodef.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Defines for all the studio placing, cids, etc.\n\n    *** USE SPACES FOR ALIGNMENT ***\n\n***************************************************************************/\n\n#ifndef STDIODEF_H\n#define STDIODEF_H\n\n// Define this flag to enable frame-per-second display code\n// #define SHOW_FPS\n\n#include \"socdef.h\"\n#include \"utestres.h\"\n\n//\n// Cache size needed for the studio\n//\n#define kcbStudioCache (256 * 1024)\n\n//\n// Tooltip delay.\n//\n//  The time below is in 60ths of a second (see clok.h in kauai -\n//    couldn't use kdtim... 'cause it's defined to be a const long )\n\n#define kdtimToolTipDelay 90\n\n//\n// Cids for script->code communication\n//\n#define cidXYAxis 50000\n#define cidXZAxis 50001\n#define cidRecordPath 50002\n#define cidRerecordPath 50003\n#define cidSetTool 50004\n#define cidPlay 50005\n#define cidNewScene 50006\n#define cidRespectGround 50009\n#define cidPauseUntilClick 50010\n#define cidPauseForSound 50011\n#define cidClearPause 50012\n#define cidBrowserFwd 50013\n#define cidBrowserBack 50014\n#define cidBrowserCancel 50015\n#define cidBrowserOk 50016\n#define cidBrowserSelect 50017\n#define cidBrowserReady 50018\n#define cidBrowserPreview 50019\n#define cidBrowserSelectThum 50020\n#define cidFrameScrollbar 50021\n#define cidSceneScrollbar 50022\n#define cidSooner 50023\n#define cidLater 50024\n#define cidEaselTransmogrify 50025\n#define cidEaselRotate 50026\n#define cidEaselCancel 50027\n#define cidEaselOk 50028\n#define cidNewSpletter 50029\n#define cidSceneSortInit 50030\n#define cidSceneSortSelect 50031\n#define cidSceneSortInsert 50032\n#define cidSceneSortScroll 50033\n#define cidSceneSortNuke 50034\n#define cidSceneSortOk 50035\n#define cidSceneSortCancel 50036\n#define cidSceneSortPortfolio 50037\n#define cidSceneSortTransition 50038\n#define cidSSorterNuke 50039\n#define cidSSorterHand 50040\n#define cidSSorterSelect 50041\n#define cidApeSetAction 50042\n#define cidApeNextCel 50043\n#define cidEaselKey 50044\n#define cidStartScroll 50045\n#define cidEaselImport 50046\n#define cidEaselTexture 50047\n#define cidEaselShape 50048\n#define cidEaselFont 50049\n#define cidEaselSetFont 50050\n#define cidEaselSetShape 50051\n#define cidEaselSetColor 50052\n#define cidEaselClosing 50053\n#define cidEaselAccessories 50054\n#define cidTextFont 50055\n#define cidTextStyle 50056\n#define cidTextSize 50057\n#define cidTextColor 50058\n#define cidTextBkgdColor 50059\n#define cidLoadStudio 50060\n#define cidLoadBuilding 50061\n#define cidTextSetColor 50062\n#define cidTextSetBkgdColor 50063\n#define cidTheaterOpen 50064\n#define cidTheaterLoad 50065\n#define cidTheaterPlay 50066\n#define cidTheaterStop 50067\n#define cidTheaterRewind 50068\n#define cidTheaterClose 50069\n#define cidBrowserImport 50070\n#define cidEaselVol 50071\n#define cidEaselPlay 50072\n#define cidListenVolSet 50073\n#define cidLaunchImport 50074\n#define cidPortfolioFile 50075\n#define cidEaselRecord 50076\n#define cidEaselCostumes 50077\n#define cidTextSetFont 50078\n#define cidTextSetSize 50079\n#define cidPortfolioOpen 50080\n#define cidPortfolioSave 50081\n#define cidPortfolioClosed 50082\n#define cidSplotInit 50083\n#define cidSplotDo 50084\n#define cidSplotUpdate 50085\n#define cidSplotOk 50086\n#define cidSplotCancel 50087\n#define cidOpenSoundRecord 50088\n#define cidRecordSetLength 50089\n#define cidLoadProjectMovie 50090\n#define cidPortfolioClear 50091\n#define cidBrowserChangeCel 50092\n#define cidDisableAccel 50093\n#define cidEnableAccel 50094\n#define cidInvokeSplot 50095\n#define cidBrowserDel 50096\n#define cidTextSetStyle 50097\n#define cidProjectMovieLoaded 50098\n#define cidBrowserVisible 50099\n#define cidTheaterOpenCompleted 50100\n#define cidTheaterLoadCompleted 50101\n#define cidEaselVisible 50102\n#define cidSoundsEnabled 50103\n#define cidCreateTbox 50104\n#define cidExitStudio 50105\n#define cidModalTopicClosed 50106\n#define cidLoadStudioFailed 50107\n#define cidActorEaselOpen 50108\n#define cidListenerEaselOpen 50109\n#define cidLoadStudioDoc 50110\n#define cidPortfolioResult 50111\n#define cidFrameThumb 50112\n#define cidSceneThumb 50113\n#define cidQuerySaveDocResult 50114\n\n// Misc Studio Strings\n#define idsBrowserPage 0\n#define idsSoundFont 7\n#define idsActionFont 8\n#define idsListenFont 9\n#define idsRollCallFont 10\n#define idsBrwsPageFont 11\n#define idsTboxDypFont 12\n#define idsStudioFont 13\n#define idsMovieNameDypFont 29\n\n//\n// String Registry Entries\n//\n#define kstidActor 0x00500 // Thru 504\n#define kstidProp 0x00510  // Thru 514\n#define kstidQuerySave 0x00525\n#define kstidQueryCD 0x00526\n#define kstidQuerySoundDelete 0x00527\n#define kstidQueryOverwrite 0x00528\n#define kstidGenericError 0x00529\n\n//\n// Ids for each gob within the studio\n//\n#define kidStudio 0x20000\n#define kidPalette 0x20001\n#define kidBackground 0x20002\n#define kidSettingsCover 0x20005\n#define kidActorsCover 0x20006\n#define kidSoundsCover 0x20007\n#define kidTextsCover 0x20008\n#define kidScrollbarsCover 0x2000B\n#define kidUndosCover 0x2000D\n#define kidBooksCover 0x2000E\n#define kidDoors 0x2000F\n#define kidSettingsBackground 0x20010\n#define kidActorsBackground 0x20011\n#define kidSoundsBackground 0x20012\n#define kidTextsBackground 0x20013\n#define kidSettingsCameras 0x20014\n#define kidActorsSelect 0x20015\n#define kidActorsBiography 0x20016\n#define kidActorsCompose 0x20017\n#define kidActorsCostume 0x20018\n#define kidActorsNormalizeRot 0x20019\n#define kidBrwsAction 0x2001A\n#define kidActorsRecordMode 0x2001B\n#define kidActorsRotateX 0x2001C\n#define kidActorsRotateY 0x2001D\n#define kidActorsRotateZ 0x2001E\n#define kidActorsSooner 0x2001F\n#define kidActorsSquash 0x20020\n#define kidActorsShrink 0x20021\n#define kidActorsXY 0x20022\n#define kidActorsXZ 0x20023\n#define kidActorsGround 0x20024\n#define kidSoundsMixer 0x20025\n#define kidSoundsPlayOnce 0x20026\n#define kidSoundsListen 0x20027\n#define kidSoundsRecord 0x20028\n#define kidSoundsLooping 0x20029\n#define kidSoundsAttachToCell 0x2002A\n#define kidSoundsClear 0x2002B\n#define kidTextsBkgdColor 0x2002C\n#define kidTextsFontShape 0x2002D\n#define kidTextsFontColor 0x2002E\n#define kidTextsFont 0x2002F\n#define kidTextsSelect 0x20030\n#define kidTextsScroll 0x20031\n#define kidTextsFontSize 0x20032\n#define kidTextsStory 0x20033\n#define kidBook 0x20034\n#define kidMap 0x20035\n#define kidCutCopyPaste 0x20036\n#define kidUndo 0x20037\n#define kidVolumeSlider 0x20038\n#define kidPlay 0x20039\n#define kidSceneSorter 0x2003A\n#define kidPortfolio 0x2003C\n#define kidExit 0x2003D\n#define kidBrwsBackground 0x2003E\n#define kidBrwsActor 0x2003F\n#define kidBrwsProp 0x20040\n#define kidBrwsThreeD 0x20041\n#define kidSettingsBrowser 0x20042\n#define kidBrwsMidi 0x20043\n#define kidBrwsFX 0x20044\n#define kidBrwsSpeech 0x20045\n#define kidTextsCreate 0x20046\n#define kidPortsBackground 0x20047\n#define kidPortsPortfolio 0x20048\n#define kidPortsNew 0x20049\n#define kidPortsSave 0x2004A\n#define kidPausesMouse 0x2004C\n#define kidPausesClear 0x2004D\n#define kidPausesSound 0x2004E\n#define kidCCPBackground 0x2004F\n#define kidCCPSceneChopFwd 0x20050\n#define kidCCPSceneNuke 0x20051\n#define kidCCPActorNuke 0x20052\n#define kidCCPCopyRoute 0x20053\n#define kidCCPPaste 0x20054\n#define kidCCPCopy 0x20055\n#define kidCCPCut 0x20056\n#define kidGenericCancel 0x20058\n#define kidGenericOk 0x20059\n#define kidGenericPageFwd 0x2005A\n#define kidGenericPageBack 0x2005B\n#define kidCameraFrame 0x2005C\n#define kidWorkspace 0x2005D\n#define kidBackground1 0x2005E\n#define kidBackground2 0x2005F\n#define kidBackground3 0x20060\n#define kidBackground4 0x20061\n#define kidCCPSceneChopBack 0x20062\n#define kidActorsContinue 0x20063\n#define kidActorsRotate 0x20064\n#define kidActorsTransform 0x20065\n#define kidRotateBackground 0x20066\n#define kidTransformBackground 0x20067\n#define kidScrollBackground 0x20068\n#define kidTextsScrollType 0x20069\n#define kidBrowserObj 0x2006A\n#define kidActorsRotateNorm 0x2006B\n#define kidActorsTransformNorm 0x2006C\n#define kidBrwsSceneFrame 0x2006D // CNO for Scene browser frame\n#define kidBrwsActorFrame 0x2006E // CNO for Actor browser frame\n#define kidBrwsMaterial 0x2006F\n#define kidBrwsCMaterial 0x20070\n#define kidBrwsFonts 0x20071\n#define kidBrwsForeColor 0x20072\n#define kidBrwsBackColor 0x20073\n#define kidBrwsTextSize 0x20074\n#define kidActorsBrowser 0x20075       // the button itself\n#define kidActorsPropBrowser 0x20076   // the button itself\n#define kidActorsSpletters 0x20077     // the button itself\n#define kidSoundsEfxBrowser 0x20078    // the button itself\n#define kidSoundsMicBrowser 0x20079    // the button itself\n#define kidSoundsMusicBrowser 0x2007A  // the button itself\n#define kidActorsActionBrowser 0x2007B // the button itself\n#define kidBrwsCamera 0x2007C\n#define kidBrwsCameraFrame 0x2007D // CNO for Camera browser frame\n#define kidBrwsPropFrame 0x2007E   // CNO for Camera browser frame\n#define kidBrwsActionFrame 0x2007F // CNO for Camera browser frame\n#define kidBrwsActionPrev 0x20080  // The action preview frame.\n#define kidGenericGlass 0x20081    // Covers all the tools to protect them from clicks\n#define kidFrameBackground 0x20082\n#define kidFrameTitle 0x20083\n#define kidFrameText 0x20084\n#define kidFrameFW 0x20085\n#define kidFrameFWEnd 0x20086\n#define kidFrameRW 0x20087\n#define kidFrameRWEnd 0x20088\n#define kidFrameScrollbar 0x20089\n#define kidFrameThumb 0x2008A\n#define kidSceneBackground 0x2008B\n#define kidSceneTitle 0x2008C\n#define kidSceneText 0x2008D\n#define kidSceneFW 0x2008E\n#define kidSceneFWEnd 0x2008F\n#define kidSceneRW 0x20090\n#define kidSceneRWEnd 0x20091\n#define kidSceneScrollbar 0x20092\n#define kidSceneThumb 0x20093\n#define kidName 0x20094\n#define kidPortsSaveAs 0x20095\n#define kidRollCallActor 0x20096\n#define kidRollCallProp 0x20097\n#define kidCCPTboxNuke 0x20098\n#define kidFps 0x20099\n#define kidActorsSoonerButton 0x2009B\n#define kidActorsLaterButton 0x2009C\n#define kidBrwsRollCall 0x2009D\n#define kidSpltBackground 0x2009E\n#define kidSpltTransmogrify 0x2009F\n#define kidSpltTextures 0x200A0\n#define kidSpltShape 0x200A1\n#define kidSpltRotate 0x200A2\n#define kidSpltImportTexture 0x200A3\n#define kidSpltCancel 0x200A4\n#define kidSpltOk 0x200A5\n#define kidSpltPreviewFrame 0x200A6\n#define kidSpltFont 0x200A7\n#define kidCostBackground 0x200A8\n#define kidCostCostumes 0x200A9\n#define kidCostRotate 0x200AA\n#define kidCostAccessories 0x200AB\n#define kidCostCancel 0x200AC\n#define kidCostOk 0x200AD\n#define kidCostPreviewFrame 0x200AE\n\n/* Scene sorter */\n#define kidSSorterBackground 0x200AF\n#define khidSceneSorter 0x200B0\n#define kidSSorterOpen 0x200B1\n#define kidSSorterScrollUp 0x200B2\n#define kidSSorterScrollDn 0x200B3\n#define kidSSorterCancel 0x200B4\n#define kidSSorterOk 0x200B5\n#define kidSSorterHand 0x200B6\n/* NOTE: the thumb kids *must* be immediately before the frame kids;\n they are used in reverse order, starting at kidSSorterFrame - 1 */\n#define kidSceneSortThumbMin 0x200B7 // Next 0x20 are reserved\n#define kidSSorterFrame 0x200D7      // Next 0x40 are reserved\n#define kidSSorterNuke 0x20117\n#define kidTransition1 0x20118\n#define kidTransition2 0x20119\n#define kidTransition3 0x2011A\n#define kidTransition4 0x2011B\n#define kidSSorterThumbFrame 0x2011C\n#define kidBrwsTextCreate 0x2011D\n#define kidCTextsStory 0x2011E\n#define kidCTextsScroll 0x2011F\n#define kidSpltEditBox 0x20121\n#define kidCostEditBox 0x20123\n#define kidSpltGlass 0x20124\n#define kidCostGlass 0x20125\n#define kidSettingsGlass 0x20126\n#define kidCameraGlass 0x20127\n#define kidActorGlass 0x20128\n#define kidPropGlass 0x20129\n#define kidActionGlass 0x2012A\n#define kidFXGlass 0x2012B\n#define kidMidiGlass 0x2012C\n#define kidSpeechGlass 0x2012D\n#define kidBrwsSoundsBackground 0x2012E\n#define kidSSorterBar 0x2012F\n\n#define kidNewSoundBackground 0x20131\n#define kidNewSoundCancel 0x20132\n#define kidNewSoundOk 0x20133\n#define kidNewSoundEditBox 0x20134\n#define kidNewSoundRecord 0x20135\n#define kidNewSoundPlay 0x20136\n#define kidListenBackgroundActor 0x20137\n#define kidListenCancel 0x20138\n#define kidListenOk 0x20139\n#define kidListenGlassActor 0x2013A\n#define kidBrwsSoundFrame 0x2013B\n#define kidListenVolSpeech 0x2013C\n#define kidListenVolFX 0x2013D\n#define kidListenVolSpeechMM 0x2013E\n#define kidListenVolFXMM 0x2013F\n#define kidListenVolMidi 0x20140\n#define kidListenEditBoxSpeech 0x20141\n#define kidListenEditBoxFX 0x20142\n#define kidListenEditBoxSpeechMM 0x20143\n#define kidListenEditBoxFXMM 0x20144\n#define kidListenEditBoxMidi 0x20145\n#define kidListenNukeSpeech 0x20146\n#define kidListenNukeFX 0x20147\n#define kidListenNukeSpeechMM 0x20148\n#define kidListenNukeFXMM 0x20149\n#define kidListenNukeMidi 0x2014A\n#define kidSoundsImportGlass 0x2014B\n#define kidBrwsSoundsImportBackground 0x2014C\n#define kidBrwsSoundImportFrame 0x2014D\n#define kidListenBackgroundBkgd 0x2014E\n#define kidListenGlassBkgd 0x2014F\n#define kidListenMidiIcon 0x20150\n#define kidListenSpeechIcon 0x20151\n#define kidListenSpeechMMIcon 0x20152\n#define kidListenFXIcon 0x20153\n#define kidListenFXMMIcon 0x20154\n#define kidBrwsImportFX 0x20155\n#define kidBrwsImportMidi 0x20156\n#define kidBrwsImportSpeech 0x20157\n#define kidRecordGlass 0x20158\n#define kidRecordBackground 0x20159\n#define kidRecordSoundLength 0x2015A\n#define kidRecordSoundName 0x2015B\n#define kidRecordRecord 0x2015C\n#define kidRecordPlay 0x2015D\n#define kidRecordCancel 0x2015E\n#define kidRecordOk 0x2015F\n#define kidGadget 0x20160\n#define kidHelpAnchor 0x20161\n#define kidGenericPageNum 0x20162\n#define kidVolumeThumb 0x20163\n#define kidRollCallActorBorder1 0x20164\n#define kidRollCallActorBorder2 0x20165\n#define kidRollCallActorBorder3 0x20166\n#define kidRollCallActorBorder4 0x20167\n#define kidRollCallPropBorder1 0x20168\n#define kidRollCallPropBorder2 0x20169\n#define kidRollCallPropBorder3 0x2016A\n#define kidRollCallPropBorder4 0x2016B\n#define kidListenVolSpeechThumb 0x2016C\n#define kidListenVolFXThumb 0x2016D\n#define kidListenVolMidiThumb 0x2016E\n#define kidListenVolSpeechMMThumb 0x2016F\n#define kidListenVolFXMMThumb 0x20170\n\n//\n// Browser Controls\n// Browser buttons require a range of kids\n//\n#define kidRollCallActorDownArrow 0x21000\n#define kidRollCallActorUpArrow 0x21001\n#define kidRollCallPropDownArrow 0x21002\n#define kidRollCallPropUpArrow 0x21003\n#define kidImportPageFwd 0x21004 // Sound import\n#define kidImportPageBack 0x21005\n#define kidImportOk 0x21006\n#define kidImportCancel 0x21007\n#define kidImportPageNum 0x21008\n#define kidReserveProjects 0x21009\n\n// The following ordering of the control buttons must be preserved\n#define kidBrowserPageFwd 0x21010 // Control buttons are ordered\n#define kidBrowserPageBack 0x21011\n#define kidBrowserOk 0x21012\n#define kidBrowserCancel 0x21013\n#define kidBrowserImport 0x21014\n#define kidBrowserRecord 0x21015\n#define kidBrowserPageNum 0x21016\n#define kidBrowserCtrlLim 0x21020 // Reserved for future controls\n// Browser Frames\n#define kidRollCallActorFrame 0x21100 // Reserving future frames\n#define kidRollCallActorFrame1 0x21100\n#define kidRollCallActorFrame2 0x21101\n#define kidRollCallActorFrame3 0x21102\n#define kidRollCallActorFrame4 0x21103\n#define kidRollCallPropFrame 0x21110\n#define kidRollCallPropFrame1 0x21110\n#define kidRollCallPropFrame2 0x21111\n#define kidRollCallPropFrame3 0x21112\n#define kidRollCallPropFrame4 0x21113\n#define kidBrowserFrame 0x21120\n#define kidBrowserFrameLim 0x21200\n// Import Frames\n#define kidImportFrame 0x21301\n#define kidImportThumbLim 0x21500\n\n//\n// Ids for popdowns\n//\n#define kidSpltsColor 0x21501\n#define kidSpltsColorBackground 0x21502\n#define kidSpltsColorPageDown 0x21503\n#define kidSpltsColorPageUp 0x21504\n#define kidSpltsColorFrame 0x21505\n#define kidSpltsColorFrameLim 0x21510\n\n#define kidSpltsShape 0x21511\n#define kidSpltsShapeBackground 0x21512\n#define kidSpltsShapePageDown 0x21513\n#define kidSpltsShapePageUp 0x21514\n#define kidSpltsShapeFrame 0x21515\n#define kidSpltsShapeFrameLim 0x21520\n\n#define kidSpltsFont 0x21521\n#define kidSpltsFontBackground 0x21522\n#define kidSpltsFontPageDown 0x21523\n#define kidSpltsFontPageUp 0x21524\n#define kidSpltsFontFrame 0x21525\n#define kidSpltsFontFrameLim 0x21530\n\n#define kidActorsAcc 0x21531\n#define kidActorsAccBackground 0x21532\n#define kidActorsAccPageDown 0x21533\n#define kidActorsAccPageUp 0x21534\n#define kidActorsAccFrame 0x21535\n#define kidActorsAccFrameLim 0x21540\n\n#define kidTextFont 0x21541\n#define kidTextFontBackground 0x21542\n#define kidTextFontPageDown 0x21543\n#define kidTextFontPageUp 0x21544\n#define kidTextFontFrame 0x21545\n#define kidTextFontFrameLim 0x21550\n\n#define kidTextStyle 0x21551\n#define kidTextStyleBackground 0x21552\n#define kidTextStylePageDown 0x21553\n#define kidTextStylePageUp 0x21554\n#define kidTextStyleFrame 0x21555\n#define kidTextStyleFrameLim 0x21560\n\n#define kidTextSize 0x21561\n#define kidTextSizeBackground 0x21562\n#define kidTextSizePageDown 0x21563\n#define kidTextSizePageUp 0x21564\n#define kidTextSizeFrame 0x21565\n#define kidTextSizeFrameLim 0x21570\n\n#define kidTextColor 0x21571\n#define kidTextColorBackground 0x21572\n#define kidTextColorPageDown 0x21573\n#define kidTextColorPageUp 0x21574\n#define kidTextColorFrame 0x21575\n#define kidTextColorFrameLim 0x21580\n\n#define kidTextBkgdColor 0x21581\n#define kidTextBkgdColorBackground 0x21582\n#define kidTextBkgdColorPageDown 0x21583\n#define kidTextBkgdColorPageUp 0x21584\n#define kidTextBkgdColorFrame 0x21585\n#define kidTextBkgdColorFrameLim 0x21590\n\n// Action preview buttons\n#define kidBrowserActionBackCel 0x21591\n#define kidBrowserActionChangeCel 0x21592\n#define kidBrowserActionFwdCel 0x21593\n\n#define kidGenericDisableGlass 0x21594 // Covers all the tools to protect them from clicks\n#define kidTextFontThumb 0x21595\n\n#define kidPressPageFwd 0x21596\n#define kidPressPageBack 0x21597\n\n//\n// Start tool tip CNOs\n//\n#define kttGenericPageFwd 0x22300\n#define kttGenericPageBack 0x22301\n#define kttGenericCancel 0x22302\n#define kttGenericOk 0x22303\n#define kttPortsPortfolio 0x22304\n#define kttPortsNew 0x22305\n#define kttPortsSave 0x22306\n#define kttCCPSceneChopFwd 0x22307\n#define kttCCPSceneChopBack 0x22308\n#define kttCCPSceneNuke 0x22309\n#define kttCCPActorNuke 0x2230A\n#define kttCCPCopyRoute 0x2230B\n#define kttCCPPaste 0x2230C\n#define kttCCPCopy 0x2230D\n#define kttCCPCut 0x2230E\n#define kttActorsRotateX 0x2230F\n#define kttActorsRotateY 0x22310\n#define kttActorsRotateZ 0x22311\n#define kttActorsRotateNorm 0x22312\n#define kttActorsSquash 0x22313\n#define kttActorsShrink 0x22314\n#define kttActorsTransformNorm 0x22315\n#define kttTextsScroll 0x22316\n#define kttTextsStory 0x22317\n#define kttSettingsCameras 0x22318\n#define kttSceneSorter 0x22319\n#define kttPausesMouse 0x2231A\n#define kttPausesClear 0x2231B\n#define kttPausesSound 0x2231C\n#define kttActorsSelect 0x2231D\n#define kttActorsBiography 0x2231E\n#define kttActorsCompose 0x2231F\n#define kttActorsCostume 0x22320\n#define kttActorsActionBrowser 0x22321\n#define kttActorsContinue 0x22322\n#define kttActorsRecordMode 0x22323\n#define kttActorsSooner 0x22324\n#define kttActorsRotate 0x22325\n#define kttActorsTransform 0x22326\n#define kttActorsXY 0x22327\n#define kttActorsGround 0x22328\n#define kttSoundsPlayOnce 0x22329\n#define kttSoundsListen 0x2232A\n#define kttSoundsLooping 0x2232B\n#define kttSoundsAttachToCell 0x2232C\n#define kttTextsBkgdColor 0x2232D\n#define kttTextsFontShape 0x2232E\n#define kttTextsFontColor 0x2232F\n#define kttTextsFont 0x22330\n#define kttTextsSelect 0x22331\n#define kttTextsFontSize 0x22332\n#define kttTextsScrollType 0x22333\n#define kttSettingsCover 0x22334\n#define kttActorsCover 0x22335\n#define kttSoundsCover 0x22336\n#define kttTextsCover 0x22337\n#define kttBook 0x22338\n#define kttMap 0x22339\n#define kttCutCopyPaste 0x2233A\n#define kttUndo 0x2233B\n#define kttVolumeSlider 0x2233C\n#define kttPlay 0x2233D\n#define kttPortfolio 0x2233E\n#define kttExit 0x2233F\n#define kttSettingsBrowser 0x22340\n#define kttActorsBrowser 0x22341\n#define kttActorsPropBrowser 0x22342\n#define kttActorsSpletters 0x22343\n#define kttSoundsEfxBrowser 0x22344\n#define kttSoundsMicBrowser 0x22345\n#define kttSoundsMusicBrowser 0x22346\n#define kttTextsCreate 0x22347\n#define kttActorsSoonerButton 0x22348\n#define kttActorsLaterButton 0x22349\n#define kttSpltBackground 0x2234A\n#define kttSpltTransmogrify 0x2234B\n#define kttSpltTextures 0x2234C\n#define kttSpltShape 0x2234D\n#define kttSpltRotate 0x2234E\n#define kttSpltImportTexture 0x2234F\n#define kttSpltCancel 0x22350\n#define kttSpltOk 0x22351\n#define kttSpltFont 0x22352\n#define kttCostBackground 0x22353\n#define kttCostCostumes 0x22354\n#define kttCostRotate 0x22355\n#define kttCostAccessories 0x22356\n#define kttCostCancel 0x22357\n#define kttCostOk 0x22358\n#define kttSSorterBackground 0x22359\n#define kttSSorterFrame 0x2235A\n#define kttTransition1 0x2235B\n#define kttTransition2 0x2235C\n#define kttTransition3 0x2235D\n#define kttTransition4 0x2235E\n#define kttSSorterScrollUp 0x2235F\n#define kttSSorterScrollDn 0x22360\n#define kttSSorterCancel 0x22361\n#define kttSSorterOk 0x22362\n#define kttSSorterHand 0x22363\n#define kttSSorterNuke 0x22364\n#define kttSSorterOpen 0x22365\n#define kttSSorterThumbFrame 0x22366\n#define kttBrwsTextCreate 0x22367\n#define kttCTextsStory 0x22368\n#define kttCTextsScroll 0x22369\n#define kttBrowserRecord 0x2236A\n#define kttBrowserImportFX 0x2236B\n#define kttRollCallActorFrame 0x2236C // Reserving future frames thru 2238B\n#define kttRollCallActorFrame1 0x2236D\n#define kttRollCallActorFrame2 0x2236E\n#define kttRollCallActorFrame3 0x2236F\n#define kttRollCallActorFrame4 0x22370\n#define kttRollCallActorUpArrow 0x2238A\n#define kttRollCallActorDownArrow 0x2238B\n#define kttRollCallPropFrame 0x2238C // Reserving future frames thru 223AD\n#define kttRollCallPropFrame1 0x2238D\n#define kttRollCallPropFrame2 0x2238E\n#define kttRollCallPropFrame3 0x2238F\n#define kttRollCallPropFrame4 0x22390\n#define kttRollCallPropUpArrow 0x223AE\n#define kttRollCallPropDownArrow 0x223AF\n\n// Note: ***** - 6.19.95  --these ids conflicted with spletter easel #defines...\n//  any particular reason other than human error?\n\n#define kttSceneBackground 0x223B0\n#define kttRollCallProps 0x223B1\n#define kttFrameBackground 0x223B2\n#define kttPortsSaveAs 0x223B3\n#define kttRollCallActors 0x223B4\n#define kttCCPTboxNuke 0x223B5\n#define kttListenVolSpeech 0x223B6\n#define kttListenVolFX 0x223B7\n#define kttListenVolSpeechMM 0x223B8\n#define kttListenVolFXMM 0x223B9\n#define kttListenVolMidi 0x223BA\n#define kttListenNukeSpeech 0x223BB\n#define kttListenNukeFX 0x223BC\n#define kttListenNukeSpeechMM 0x223BD\n#define kttListenNukeFXMM 0x223BE\n#define kttListenNukeMidi 0x223BF\n#define kttListenCancel 0x223C0\n#define kttListenOk 0x223C1\n#define kttListenEditBoxSpeech 0x223C2\n#define kttListenEditBoxFX 0x223C3\n#define kttListenEditBoxSpeechMM 0x223C4\n#define kttListenEditBoxFXMM 0x223C5\n#define kttListenEditBoxMidi 0x223C6\n#define kttImportPageFwd 0x223C7\n#define kttImportPageBack 0x223C8\n#define kttImportCancel 0x223C9\n#define kttImportOk 0x223CA\n#define kttRecordSoundLength 0x223CB\n#define kttRecordSoundName 0x223CC\n#define kttRecordRecord 0x223CD\n#define kttRecordPlay 0x223CE\n#define kttRecordCancel 0x223CF\n#define kttRecordOk 0x223D0\n#define kttBrwsActionChangeCel 0x223D1\n#define kttBrwsActionBackCel 0x223D2\n#define kttBrwsActionFwdCel 0x223D3\n#define kttBrowserDelete 0x223D4\n#define kttEaselOk 0x223D5\n#define kttEaselCancel 0x223D6\n#define kttRemoveSound 0x223D7\n#define kttRewindEnd 0x223D8\n#define kttRewind 0x223D9\n#define kttFForward 0x223DA\n#define kttFForwardEnd 0x223DB\n#define kttFirstScene 0x223DC\n#define kttPrevScene 0x223DD\n#define kttNextScene 0x223DE\n#define kttLastScene 0x223DF\n#define kttSceneSlider 0x223E0\n#define kttFrameSlider 0x223E1\n#define kttBrowserImportSpeech 0x223E2\n#define kttBrowserImportMidi 0x223E3\n\n//\n// Sound CNOs\n//\n#define kcnoCoverWav 0x23001\n#define kcnoPBrowseWav 0x23002\n#define kcnoDropDnWav 0x23003\n#define kcnoSBrowseWav 0x23004\n#define kcnoBrwzPicWav 0x23005\n#define kcnoBrwzBtnWav 0x23006\n#define kcnoEzlOpenWav 0x23007\n#define kcnoStateOnWav 0x23008\n#define kcnoStateOffWav 0x23009\n#define kcnoGrabSnWav 0x2300A\n#define kcnoDropSnWav 0x2300B\n#define kcnoSelectWav 0x2300C\n#define kcnoSquashWav 0x2300D\n#define kcnoStretchWav 0x2300E\n#define kcnoGrowWav 0x2300F\n#define kcnoShrinkWav 0x23010\n#define kcnoCBackSWav 0x23011\n#define kcnoRotateWav 0x23012\n#define kcnoCBackRWav 0x23013\n#define kcnoSFreezeWav 0x23014\n#define kcnoSyStepFWav 0x23015\n#define kcnoSyStepBWav 0x23016\n#define kcnoMoveWav 0x23017\n#define kcnoMove1Wav 0x23018\n#define kcnoMoveAllWav 0x23019\n#define kcnoActStepFWav 0x2301A\n#define kcnoActStepBWav 0x2301B\n#define kcnoTBkOpenWav 0x2301D\n#define kcnoSPlayWav 0x2301E\n#define kcnoSLoopWav 0x2301F\n#define kcnoSActWav 0x23020\n#define kcnoWFontWav 0x23022\n#define kcnoWSizeWav 0x23023\n#define kcnoWColorWav 0x23024\n#define kcnoWStyleWav 0x23025\n#define kcnoWBgClrWav 0x23026\n#define kcnoWScrOnWav 0x23027\n#define kcnoWScrOffWav 0x23028\n#define kcnoGoFrstFWav 0x23029\n#define kcnoGoPrevFWav 0x2302A\n#define kcnoGoNextFWav 0x2302B\n#define kcnoAddFrameWav 0x2302C\n#define kcnoGoLastFWav 0x2302D\n#define kcnoGoFrstSWav 0x2302E\n#define kcnoGoPrevSWav 0x2302F\n#define kcnoGoNextSWav 0x23030\n#define kcnoGoLastSWav 0x23031\n#define kcnoPlayWav 0x23032\n#define kcnoUndoWav 0x23033\n#define kcnoRedoWav 0x23034\n#define kcnoRemBfrWav 0x23035\n#define kcnoRemAftrWav 0x23036\n#define kcnoRemScnWav 0x23037\n#define kcnoRemActrWav 0x23038\n#define kcnoRemWBoxWav 0x23039\n#define kcnoPasteWav 0x2303A\n#define kcnoCopyPWav 0x2303B\n#define kcnoCopyWav 0x2303C\n#define kcnoCutWav 0x2303D\n#define kcnoStopWav 0x2303E\n#define kcnoSecToolWav 0x2303F\n#define kcnoOkWav 0x23040\n#define kcnoCancelWav 0x23041\n#define kcnoFNewWav 0x23042\n#define kcnoFSaveWav 0x23043\n#define kcnoFSaveAsWav 0x23044\n#define kcnoPFOpenWav 0x23045\n#define kcnoExitWav 0x23046\n#define kcnoPageUpWav 0x23047\n#define kcnoPageDnWav 0x23048\n#define kcnoRSwitchWav 0x23049\n#define kcnoLSelectWav 0x2304A\n#define kcnoNukeSnWav 0x2304B\n#define kcnoCostumeWav 0x2304C\n#define kcnoAcesoryWav 0x2304D\n#define kcnoSpinWav 0x2304E\n#define kcnoMikeWav 0x2304F\n#define kcnoRPlayWav 0x23050\n#define kcnoPSelectWav 0x23051\n#define kcnoRandomWav 0x23052\n#define kcnoMapOpenWav 0x23053\n#define kcnoRecordWav 0x23054\n\n//\n// the following are id's for help topics used as labels\n//\n#define klabFrameCounter 0x22500\n#define klabSceneCounter 0x22501\n#define klabName 0x22502\n#define klabFps 0x22503\n\n// Where to go in building after leaving studio.  The temp variable is\n// used to fix the real variable if an aborted attempt to go to the building\n// is made from the map. (Bug #1010)\n#define kpridBuildingGob 0x23300\n#define kpridBuildingGobT 0x23301\n#define kpridBuildingState 0x23302\n#define kpridBuildingStateT 0x23303\n\n// the following are \"Property Id's\" for Browsers.\n//\n// The property foobarDef indicates the id of a default item that should\n// show in the browser page the first time it's instantiated per session\n// This will differ by series member.\n//\n// The property foobarPref is maintained by the browser code and IS\n// OVERWRITEABLE from script.  Upon creation, the browser will search\n// its content list and display the page which contains this content\n//\n// NOTE: the only ones that really matter for scripting are the\n// actor, prop, background and sound* browsers.\n\n#define kpridBrwsBackgroundDef 0x23400\n#define kpridBrwsBackgroundPref 0x23401\n#define kpridBrwsCameraDef 0x23402\n#define kpridBrwsCameraPref 0x23403\n\n#define kpridBrwsActorDef 0x23404\n#define kpridBrwsActorPref 0x23405\n#define kpridBrwsPropDef 0x23406\n#define kpridBrwsPropPref 0x23407\n#define kpridBrwsActionDef 0x23408\n#define kpridBrwsActionPref 0x23409\n\n#define kpridBrwsBkSoundDef 0x2340A\n#define kpridBrwsBkSoundPref 0x2340B\n#define kpridBrwsFXSoundDef 0x2340C\n#define kpridBrwsFXSoundPref 0x2340D\n#define kpridBrwsMusSoundDef 0x2340E\n#define kpridBrwsMusSoundPref 0x2340F\n\n#define kpridBrwsDefaultSid 0x23410\n#define kpridBrwsDefaultThum 0x23411\n#define kpridBrwsOverrideThum 0x23412\n#define kpridBrwsOverrideSidThum 0x23413\n#define kpridBrwsOverrideKidThum 0x23414\n\n// kprids for user's data (bio pages, etc)\n#define kpridUserDataBase 0x23500\n// these two are used for BIO PAGES\n#define kpridUserData0 0x23500\n#define kpridUserData1 0x23501\n\n// this one is used for Studio information\n#define kpridStudioFlags 0x23502\n#define kpridUserData2 0x23502\n\n// this one is used for maintaing audio help on /off status\n#define kpridMcZeeAudio 0x23503\n#define kpridUserData3 0x23503\n\n// bit flags for suppressing the above audio,\n#define kflgMcZeeAudio 0x01\n#define kflgMelAudio 0x02\n\n#define kpridUserData4 0x23504\n#define kpridUserData5 0x23505\n#define kpridUserData6 0x23506\n#define kpridUserData7 0x23507\n#define kcpridUserData 8\n\n#define kpridFirstTimeUser 0x23510\n\n#define kidStudioLim 0x23600\n\n//\n// Width of screen and workspace\n//\n#define kdxpBackground 640\n#define kdypBackground 480\n#define kdxpWorkspace 544\n#define kdypWorkspace 306\n\n#define khidStudio khidLimKidFrame + 5\n\n//\n// Current tool in use\n//\n#define chttNone 0\n#define chttCompose 1\n#define chttTboxSelect 2\n#define chttTboxStory 3\n#define chttTboxScroll 4\n#define chttNormalizeRot 5\n#define chttSooner 6\n#define chttRotateX 7\n#define chttRotateY 8\n#define chttRotateZ 9\n#define chttSquash 10\n#define chttShrink 11\n#define chttSceneChopFwd 13\n#define chttSceneNuke 14\n#define chttActorNuke 15\n#define chttSceneChopBack 16\n#define chttNormalizeSize 17\n#define chttRotateNorm 20\n#define chttTransformNorm 21\n#define chttFButtonFW 22\n#define chttButtonFWEnd 23\n#define chttFButtonRW 24\n#define chttButtonRWEnd 25\n#define chttScrollbar 26\n#define chttThumb 27\n#define chttRecordSameAction 28\n#define chttActorEasel 29\n#define chttSButtonFW 30\n#define chttSButtonRW 31\n#define chttAction 32\n#define chttLooper 33\n#define chttMatcher 34\n#define chttSounder 35\n#define chttListener 36\n\n//\n// States for kcrsors\n//\n#define fcustHand 0x10000\n#define fcustNuke 0x20000\n\n//\n// Types of text boxes\n//\n#define ktbxtScroll 0\n#define ktbxtStory 1\n\n//\n// States of buttons\n//\n#define kstDisabled kst1\n#define kstClosed kst2\n#define kstOpen kst3\n\n#define kstDefault kst1\n#define kstSelected kst2\n#define kstRecording kst3 // for the play button to flash\n#define kstFreeze kst3    // for the action browser animation\n\n#define kstSceneDoorsOpen kst2\n#define kstActorDoorsOpen kst3\n#define kstSoundDoorsOpen kst4\n#define kstTextDoorsOpen kst5\n#define kstSceneDoorsAllOpen kst6\n#define kstActorDoorsAllOpen kst7\n#define kstSoundDoorsAllOpen kst8\n#define kstTextDoorsAllOpen kst9\n\n#define kstBrowserInvisible kst1\n#define kstBrowserEnabled kst2\n#define kstBrowserDisabled kst3\n#define kstBrowserSelected kst4\n#define kstBrowserDragging kst5\n#define kstBrowserScrollingSel kst6\n\n#define kstListenDisabled kst1\n#define kstListenLooper kst2\n#define kstListenSounderChain kst3\n#define kstListenMatcher kst4\n#define kstListenSounder kst5\n\n#define kstSliderInvisible kst2\n#define kstSliderEnabled kst3\n\n#define fgrfstDisabled fgrfst1\n#define fgrfstClosed fgrfst2\n#define fgrfstOpen fgrfst3\n\n#define fgrfstDefault fgrfst1\n#define fgrfstSelected fgrfst2\n\n#define fgrfstSceneDoorsOpen fgrfst2\n#define fgrfstActorDoorsOpen fgrfst3\n#define fgrfstSoundDoorsOpen fgrfst4\n#define fgrfstTextDoorsOpen fgrfst5\n#define fgrfstSceneDoorsAllOpen fgrfst6\n#define fgrfstActorDoorsAllOpen fgrfst7\n#define fgrfstSoundDoorsAllOpen fgrfst8\n#define fgrfstTextDoorsAllOpen fgrfst9\n\n#define fgrfstBrowserInvisible fgrfst1\n#define fgrfstBrowserEnabled fgrfst2\n#define fgrfstBrowserDisabled fgrfst3\n#define fgrfstBrowserSelected fgrfst4\n#define fgrfstBrowserDragging fgrfst5\n#define fgrfstBrowserScrollingSel fgrfst6\n\n//\n// Script IDs\n//\n#define kchidResetTools kchidScript2\n#define kchidSetPauseType kchidScript3\n#define kchidEnableSceneTools kchidScript5\n#define kchidEnableActorTools kchidScript6\n#define kchidEnableTboxTools kchidScript7\n#define kchidBrowserDismiss kchidScript2\n#define kchidSSorterNuke kchidScript2\n#define kchidSSorterHand kchidScript3\n#define kchidMovieTechniques kchidScript4\n#define kchidFlyingLogo kchidScript8\n#define kchidResetXZAxisAndGround kchidScript9\n#define kchidOpenDoorsAll kchidScript10\n#define kchidPopoutSceneTools kchidScript11\n\n// All possible open portfolio types\n#define kpfPortOpenMovie 1\n#define kpfPortOpenSound 2\n#define kpfPortOpenTexture 3\n\n// All possible save portfolio types\n#define kpfPortSaveMovie 1\n\n// To set portfolio initial dir if necessary\n#define kpfPortDirUsers 1\n\n/***************************************************************************\n    Sound classes\n***************************************************************************/\n\n#define ksclUISound 10000\n\n#endif // STDIODEF\n"
  },
  {
    "path": "inc/stdiopos.chh",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n\n//\n// Locations\n//\n\n//\n//\n// Actor Accessories popdown\n//\n//\n#define kdxpActorsAcc                   136\n#define kdypActorsAcc                   151\n#define kxpActorsAccLeft                80\n#define kypActorsAccTop                 124\n#define kxpActorsAccRight               216\n#define kypActorsAccBottom              275\n#define kdxpActorsAccLeft               0\n#define kdxpActorsAccRight              0\n#define kdypActorsAccTop                4\n#define kdypActorsAccBottom             19\n#define kdxpActorsAccBorder             0\n#define kdypActorsAccBorder             0\n#define kdxpActorsAccSpacing    0\n#define kdypActorsAccSpacing    0\n#define kdxpActorsAccFrame              136\n#define kdypActorsAccFrame              16\n#define kdxpActorsAccFrameBorder        1\n#define kdypActorsAccFrameBorder        1\n#define kxpActorsAccPageDown    50\n#define kypActorsAccPageDown    133\n#define kxprActorsAccPageDown   0\n#define kyprActorsAccPageDown   0\n#define kxpActorsAccPageUp              86\n#define kypActorsAccPageUp              133\n#define kxprActorsAccPageUp             0\n#define kyprActorsAccPageUp             0\n\n//\n// Registration points\n//\n\n// TODO(bjrkk): probably should be moved into pos3.chh?\n\n#define kxpregSSorterFrameBorder        0\n#define kypregSSorterFrameBorder        0\n\n#define kxpregImportPageFwd             0\n#define kypregImportPageFwd             0\n#define kxpregImportPageBack            0\n#define kypregImportPageBack            0\n#define kxpregImportCancel              0\n#define kypregImportCancel              0\n#define kxpregImportOk                  0\n#define kypregImportOk                  0\n\n#define kxpregGenericPageFwd            0\n#define kypregGenericPageFwd            0\n#define kxpregGenericPageBack           0\n#define kypregGenericPageBack           0\n\n#define kxpregSpltsColorFrame           0\n#define kypregSpltsColorFrame           0\n#define kxpregSpltsColorPageDown        0\n#define kypregSpltsColorPageDown        0\n#define kxpregSpltsColorPageUp          0\n#define kypregSpltsColorPageUp          0\n#define kxpregSpltsShapeFrame           0\n#define kypregSpltsShapeFrame           0\n#define kxpregSpltsShapePageDown        0\n#define kypregSpltsShapePageDown        0\n#define kxpregSpltsShapePageUp          0\n#define kypregSpltsShapePageUp          0\n#define kxpregSpltsFontFrame            0\n#define kypregSpltsFontFrame            0\n#define kxpregSpltsFontPageDown         0\n#define kypregSpltsFontPageDown         0\n#define kxpregSpltsFontPageUp           0\n#define kypregSpltsFontPageUp           0\n\n#define kxpregActorsAccFrame            0\n#define kypregActorsAccFrame            0\n#define kxpregActorsAccPageDown         0\n#define kypregActorsAccPageDown         0\n#define kxpregActorsAccPageUp           0\n#define kypregActorsAccPageUp           0\n\n#define kxpregTextFontFrame                     0\n#define kypregTextFontFrame                     0\n#define kxpregTextFontPageDown          0\n#define kypregTextFontPageDown          0\n#define kxpregTextFontPageUp            0\n#define kypregTextFontPageUp            0\n#define kxpregTextStyleFrame            0\n#define kypregTextStyleFrame            0\n#define kxpregTextStylePageDown         0\n#define kypregTextStylePageDown         0\n#define kxpregTextStylePageUp           0\n#define kypregTextStylePageUp           0\n#define kxpregTextSizeFrame                     0\n#define kypregTextSizeFrame                     0\n#define kxpregTextSizePageDown          0\n#define kypregTextSizePageDown          0\n#define kxpregTextSizePageUp            0\n#define kypregTextSizePageUp            0\n#define kxpregTextColorFrame            0\n#define kypregTextColorFrame            0\n#define kxpregTextColorPageDown         0\n#define kypregTextColorPageDown         0\n#define kxpregTextColorPageUp           0\n#define kypregTextColorPageUp           0\n#define kxpregTextBkgdColorFrame        0\n#define kypregTextBkgdColorFrame        0\n#define kxpregTextBkgdColorPageDown     0\n#define kypregTextBkgdColorPageDown     0\n#define kxpregTextBkgdColorPageUp       0\n#define kypregTextBkgdColorPageUp       0\n\n#include \"pos3.chh\"\n"
  },
  {
    "path": "inc/stdioscb.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\\\n *\n *\tstdioscb.h\n *\n *\tAuthor: ******\n *\tDate: March, 1995\n *\n *\tThis file contains the studio scrollbar class SSCB.\n *\n\\*****************************************************************************/\n\n#ifndef STDIOSCB_H\n#define STDIOSCB_H\n\n//\n//\tThe studio scrollbar class.\n//\n\nconst long kctsFps = 20;\n\n#define SSCB_PAR BASE\ntypedef class SSCB *PSSCB;\n#define kclsSSCB 'SSCB'\nclass SSCB : public SSCB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  private:\n    long _nfrmFirstOld;\n    bool _fNoAutoadjust;\n\n    bool _fBtnAddsFrames;\n\n    //\n    //\tPrivate methods\n    //\n    long _CxScrollbar(long kidScrollbar, long kidThumb);\n\n  protected:\n    PTGOB _ptgobFrame;\n    PTGOB _ptgobScene;\n\n#ifdef SHOW_FPS\n    // Frame descriptor\n    struct FDSC\n    {\n        ulong ts;\n        long cfrm;\n    };\n\n    PTGOB _ptgobFps;\n    FDSC _rgfdsc[kctsFps];\n    long _itsNext;\n#endif // SHOW_FPS\n\n    PMVIE _pmvie;\n    SSCB(PMVIE pmvie);\n\n  public:\n    //\n    //\tConstructors and destructors\n    //\n    static PSSCB PsscbNew(PMVIE pmvie);\n    ~SSCB(void);\n\n    //\n    //\tNotification\n    //\n    virtual void Update(void);\n    void SetMvie(PMVIE pmvie);\n    void StartNoAutoadjust(void);\n    void EndNoAutoadjust(void)\n    {\n        AssertThis(0);\n        _fNoAutoadjust = fFalse;\n    }\n    void SetSndFrame(bool fSoundInFrame);\n\n    //\n    //\tEvent handling\n    //\n    bool FCmdScroll(PCMD pcmd);\n};\n\n#endif // STDIOSCB_H\n"
  },
  {
    "path": "inc/studio.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Studio Stuff\n\n        The Studio\n\n                STDIO \t--->   \tGOB\n\n***************************************************************************/\n\n#ifndef STUDIO_H\n#define STUDIO_H\n\n#include \"soc.h\"\n#include \"kidgsdef.h\"\n#include \"stdiodef.h\"\n#include \"buildgob.h\"\n#include \"sharedef.h\"\n#include \"stdiocrs.h\"\n#include \"tgob.h\"\n#include \"stdioscb.h\"\n#include \"ape.h\"\n#include \"browser.h\"\n#include \"popup.h\"\n#include \"esl.h\"\n#include \"scnsort.h\"\n#include \"tatr.h\"\n#include \"utest.h\"\n#include \"version.h\"\n#include \"portf.h\"\n#include \"splot.h\"\n#include \"helpbook.h\"\n#include \"helptops.h\"\n\ntypedef class SMCC *PSMCC;\n\nconst long kcmhlStudio = 0x10000; // nice medium level for the Studio\n\nextern APP vapp;\n\n//\n// Studio class\n//\n#define STDIO_PAR GOB\n#define kclsSTDIO 'stio'\nclass STDIO : public STDIO_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(STDIO)\n\n  protected:\n    PCRM _pcrm;\n    PGST _pgstMisc;\n    PMVIE _pmvie;\n    PSMCC _psmcc;\n    PGL _pglpbrcn;\n    long _aridSelected;\n    PBRWR _pbrwrActr;\n    PBRWR _pbrwrProp;\n    PGL _pglcmg;        // Cno map tmpl->gokd for rollcall\n    PGL _pglclr;        // Color table for common palette\n    bool _fDisplayCast; // Display movie's cast\n\n    CMD _cmd;\n    long _dtimToolTipDelay;\n    bool _fStopUISound;\n    PTGOB _ptgobTitle;\n    bool _fStartedSoonerLater;\n\n    STDIO(PGCB pgcb) : GOB(pgcb){};\n    bool _FOpenStudio(bool fPaletteFade);\n    void _SetToolStates(void);\n    bool _FBuildMenuCidCtg(long cid, CTG ctg, PGL pgl, ulong grfHotKey, ulong grfNum, bool fNew);\n    PBRCN _PbrcnFromBrwdid(long brwdid);\n#ifdef BUG1959\n    bool _FLoadMovie(PFNI pfni, CNO cno, bool *pfClosedOld);\n#endif // BUG1959\n\n  public:\n    //\n    // Create and destroy functions\n    //\n    static PSTDIO PstdioNew(long hid, PCRM pcrmStudio, PFNI pfniUserDoc = pvNil, bool fFailIfDocOpenFailed = fTrue);\n    void ReleaseBrcn(void);\n    ~STDIO(void);\n\n    //\n    // Command functions for getting from scripts to here.\n    //\n    bool FCmdXYAxis(PCMD pcmd);\n    bool FCmdXZAxis(PCMD pcmd);\n    bool FCmdRecordPath(PCMD pcmd);\n    bool FCmdRerecordPath(PCMD pcmd);\n    bool FCmdSetTool(PCMD pcmd);\n    bool FCmdPlay(PCMD pcmd);\n    bool FCmdNewScene(PCMD pcmd);\n    bool FCmdRespectGround(PCMD pcmd);\n    bool FCmdPause(PCMD pcmd);\n    bool FCmdOpen(PCMD pcmb);\n    bool FCmdBrowserReady(PCMD pcmd);\n    bool FCmdScroll(PCMD pcmd);\n    bool FCmdSooner(PCMD pcmd);\n    bool FCmdLater(PCMD pcmd);\n    bool FCmdNewSpletter(PCMD pcmd);\n    bool FCmdCreatePopup(PCMD pcmd);\n    bool FCmdTextSetColor(PCMD pcmd);\n    bool FCmdTextSetBkgdColor(PCMD pcmd);\n    bool FCmdTextSetFont(PCMD pcmd);\n    bool FCmdTextSetStyle(PCMD pcmd);\n    bool FCmdTextSetSize(PCMD pcmd);\n    bool FCmdOpenSoundRecord(PCMD pcmd);\n    bool FBuildActorMenu(void);\n    bool FCmdToggleXY(PCMD pcmd);\n    bool FCmdHelpBook(PCMD pcmd);\n    bool FCmdMovieGoto(PCMD pcmd);\n    bool FCmdLoadProjectMovie(PCMD pcmd);\n    bool FCmdSoundsEnabled(PCMD pcmd);\n    bool FCmdCreateTbox(PCMD pcmd);\n    bool FCmdActorEaselOpen(PCMD pcmd);\n    bool FCmdListenerEaselOpen(PCMD pcmd);\n\n#ifdef DEBUG\n    bool FCmdWriteBmps(PCMD pcmd);\n#endif // DEBUG\n\n    //\n    // Call back functions\n    //\n    void PlayStopped(void);\n    void ChangeTool(long tool);\n    void SceneNuked(void);\n    void SceneUnnuked(void);\n    void ActorNuked(void);\n    void EnableActorTools(void);\n    void EnableTboxTools(void);\n    void TboxSelected(void);\n    void SetUndo(long undo);\n    void SetCurs(long tool);\n    void ActorEasel(bool *pfActrChanged);\n    void SceneChange(void);\n    void PauseType(WIT wit);\n    void Recording(bool fRecording, bool fRecord);\n    void StartSoonerLater(void);\n    void EndSoonerLater(void);\n    void NewActor(void);\n    void StartActionBrowser(void);\n    void StartListenerEasel(void);\n    void PlayUISound(long tool, long grfcust);\n    void StopUISound(void);\n    void UpdateTitle(PSTN pstnTitle);\n\n    bool FEdit3DText(PSTN pstn, long *ptdts);\n    void SetAridSelected(long arid)\n    {\n        _aridSelected = arid;\n    }\n    long AridSelected(void)\n    {\n        return _aridSelected;\n    }\n    PBRWR PbrwrActr(void)\n    {\n        return _pbrwrActr;\n    }\n    PBRWR PbrwrProp(void)\n    {\n        return _pbrwrProp;\n    }\n    bool FAddCmg(CNO cnoTmpl, CNO cnoGokd);\n    CNO CnoGokdFromCnoTmpl(CNO cnoTmpl);\n    void SetDisplayCast(bool fDisplayCast)\n    {\n        _fDisplayCast = fDisplayCast;\n    }\n\n    bool FShutdown(bool fClearCache = fTrue);\n\n    // Stop and restart the action button's animation\n    static void PauseActionButton(void);\n    static void ResumeActionButton(void);\n\n    // Misc Studio strings\n    void GetStnMisc(long ids, PSTN pstn);\n\n    //\n    // Movie changing\n    //\n    bool FLoadMovie(PFNI pfni = pvNil, CNO cno = cnoNil);\n    bool FSetMovie(PMVIE pmvie);\n    PMVIE Pmvie()\n    {\n        return _pmvie;\n    };\n    bool FGetFniMovieOpen(PFNI pfni)\n    {\n        return FPortDisplayWithIds(pfni, fTrue, idsPortfMovieFilterLabel, idsPortfMovieFilterExt,\n                                   idsPortfOpenMovieTitle, pvNil, pvNil, pvNil, fpfPortPrevMovie, kwavPortOpenMovie);\n    }\n    PSMCC Psmcc(void)\n    {\n        return _psmcc;\n    }\n};\n\n#define SMCC_PAR MCC\n#define kclsSMCC 'SMCC'\nclass SMCC : public SMCC_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  private:\n    PSSCB _psscb;\n    PSTDIO _pstdio;\n    long _dypTextTbox;\n\n  public:\n    ~SMCC(void)\n    {\n        ReleasePpo(&_psscb);\n    }\n    SMCC(long dxp, long dyp, long cbCache, PSSCB psscb, PSTDIO pstdio);\n\n    virtual long Dxp(void)\n    {\n        return _dxp;\n    }\n    virtual long Dyp(void)\n    {\n        return _dyp;\n    }\n    virtual long CbCache(void)\n    {\n        return _cbCache;\n    }\n    virtual PSSCB Psscb(void)\n    {\n        return _psscb;\n    }\n    virtual void SetCurs(long tool)\n    {\n        _pstdio->SetCurs(tool);\n    }\n    virtual void ActorSelected(long arid)\n    {\n        _pstdio->SetAridSelected(arid);\n        UpdateRollCall();\n    }\n    virtual void UpdateAction(void)\n    {\n    } // Update selected action\n    virtual void UpdateRollCall(void);\n    virtual void UpdateScrollbars(void)\n    {\n        if (pvNil != _psscb)\n            _psscb->Update();\n    }\n    virtual void SetSscb(PSSCB psscb)\n    {\n        AssertNilOrPo(psscb, 0);\n        ReleasePpo(&_psscb);\n        _psscb = psscb;\n        if (pvNil != _psscb)\n            _psscb->AddRef();\n    }\n\n    virtual void PlayStopped(void)\n    {\n        _pstdio->PlayStopped();\n    }\n    virtual void ChangeTool(long tool)\n    {\n        _pstdio->ChangeTool(tool);\n    }\n    virtual void SceneNuked(void)\n    {\n        _pstdio->SceneNuked();\n    }\n    virtual void SceneUnnuked(void)\n    {\n        _pstdio->SceneUnnuked();\n    }\n    virtual void ActorNuked(void)\n    {\n        _pstdio->ActorNuked();\n    }\n    virtual void EnableActorTools(void)\n    {\n        _pstdio->EnableActorTools();\n    }\n    virtual void EnableTboxTools(void)\n    {\n        _pstdio->EnableTboxTools();\n    }\n    virtual void TboxSelected(void)\n    {\n        _pstdio->TboxSelected();\n    }\n    virtual void ActorEasel(bool *pfActrChanged)\n    {\n        _pstdio->ActorEasel(pfActrChanged);\n    }\n    virtual void SetUndo(long undo)\n    {\n        _pstdio->SetUndo(undo);\n    }\n    virtual void SceneChange(void)\n    {\n        _pstdio->SceneChange();\n    }\n    virtual void PauseType(WIT wit)\n    {\n        _pstdio->PauseType(wit);\n    }\n    virtual void Recording(bool fRecording, bool fRecord)\n    {\n        _pstdio->Recording(fRecording, fRecord);\n    }\n    virtual void StartSoonerLater(void)\n    {\n        _pstdio->StartSoonerLater();\n    }\n    virtual void EndSoonerLater(void)\n    {\n        _pstdio->EndSoonerLater();\n    }\n    virtual void NewActor(void)\n    {\n        _pstdio->NewActor();\n    }\n    virtual void StartActionBrowser(void)\n    {\n        _pstdio->StartActionBrowser();\n    }\n    virtual void StartListenerEasel(void)\n    {\n        _pstdio->StartListenerEasel();\n    }\n    virtual bool GetFniSave(FNI *pfni, long lFilterLabel, long lFilterExt, long lTitle, LPTSTR lpstrDefExt,\n                            PSTN pstnDefFileName)\n    {\n        return (FPortDisplayWithIds(pfni, fFalse, lFilterLabel, lFilterExt, lTitle, lpstrDefExt, pstnDefFileName, pvNil,\n                                    fpfPortPrevMovie, kwavPortSaveMovie));\n    }\n    virtual void PlayUISound(long tool, long grfcust)\n    {\n        _pstdio->PlayUISound(tool, grfcust);\n    }\n    virtual void StopUISound(void)\n    {\n        _pstdio->StopUISound();\n    }\n    virtual void UpdateTitle(PSTN pstnTitle)\n    {\n        _pstdio->UpdateTitle(pstnTitle);\n    }\n    virtual void EnableAccel(void)\n    {\n        vpapp->EnableAccel();\n    }\n    virtual void DisableAccel(void)\n    {\n        vpapp->DisableAccel();\n    }\n    virtual void GetStn(long ids, PSTN pstn)\n    {\n        vpapp->FGetStnApp(ids, pstn);\n    }\n    virtual long DypTboxDef(void);\n    virtual void SetSndFrame(bool fSoundInFrame)\n    {\n        _psscb->SetSndFrame(fSoundInFrame);\n    }\n    virtual bool FMinimized(void)\n    {\n        return (vpapp->FMinimized());\n    }\n    virtual bool FQueryPurgeSounds(void);\n};\n\n#endif // STUDIO_H\n"
  },
  {
    "path": "inc/tagl.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    tagl.h: Tag List class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    BASE ---> TAGL\n\n***************************************************************************/\n#ifndef TAGL_H\n#define TAGL_H\n\n/****************************************\n    The tag list class\n****************************************/\ntypedef class TAGL *PTAGL;\n#define TAGL_PAR BASE\n#define kclsTAGL 'TAGL'\nclass TAGL : public TAGL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PGG _pggtagf; // TAGF for fixed part, array of cc's for variable part\n\n  protected:\n    bool _FInit(void);\n    bool _FFindTag(PTAG ptag, long *pitag);\n\n  public:\n    static PTAGL PtaglNew(void);\n    ~TAGL(void);\n\n    long Ctag(void);\n    void GetTag(long itag, PTAG ptag);\n\n    bool FInsertTag(PTAG ptag, bool fCacheChildren = fTrue);\n    bool FInsertChild(PTAG ptag, CHID chid, CTG ctg);\n\n    bool FCacheTags(void);\n};\n\n#endif TAGL_H\n"
  },
  {
    "path": "inc/tagman.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*************************************************************************\n\n    tagman.h: Tag Manager class (TAGM)\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    BASE ---> TAGM\n\n    A TAG is a reference to a piece of content: a background, actor\n    template, sound, etc.  In addition to a CTG and CNO, a TAG specifies\n    a SID, or source ID, that helps TAGM find the content.\n\n    A source (identified by a SID) is a group of chunky files (managed\n    by a CRM) in one directory of one disk whose chunks all have unique\n    CTG/CNOs.  Each Socrates series member will be a source, and the\n    user rolls might also be implemented as a source.  A SID of less\n    than 0 is invalid; a TAG with a negative SID is an invalid TAG.\n\n    Each source has a name, managed by _pgstSource.  This name is used\n    with the _pfninscd callback when the source cannot be found.  The\n    callback should put up an alert saying (for example) \"The source\n    *Socrates* cannot be found...please insert the CD.\"\n\n    TAGM supports caching chunks to the local hard disk.  In Socrates,\n    the studio should call FCacheTagToHD as soon as the chunk is\n    requested by the kid, and when the tag is resolved to a BACO, the\n    HD copy is used.  This reduces headaches about dealing with a missing\n    CD all over the place.\n\n    If a tag has ksidUseCrf for its sid, the chunk is read from the tag's\n    pcrf rather than a source or a source's cache.  Use this\n    functionality for things like content chunks embedded in user\n    documents.\n\n*************************************************************************/\n#ifndef TAGM_H\n#define TAGM_H\n\nconst long ksidInvalid = -1; // negative SIDs imply an invalid TAG\nconst long sidNil = 0;\nconst long ksidUseCrf = 0; // chunk is in ptag->pcrf\n\ntypedef struct TAG *PTAG;\nstruct TAG\n{\n#ifdef DEBUG\n    // I can't use the MARKMEM macro because that makes MarkMem() virtual,\n    // which changes size(TAG), which I don't want to do.\n    void MarkMem(void);\n#endif // DEBUG\n\n    long sid;  // Source ID (or ksidUseCrf)\n    PCRF pcrf; // File to look in for this chunk if sid is ksidUseCrf\n    CTG ctg;   // CTG of chunk\n    CNO cno;   // CNO of chunk\n};\nconst BOM kbomTag = 0xFF000000;\n\n// FNINSCD is a client-supplied callback function to alert the user to\n// insert the given CD.  The name of the source is passed to the callback.\n// The function should return fTrue if the user wants to retry searching\n// for the chunk, or fFalse to cancel.\ntypedef bool FNINSCD(PSTN pstnSourceTitle);\ntypedef FNINSCD *PFNINSCD;\n\nenum\n{\n    ftagmNil = 0x0000,\n    ftagmFile = 0x0001,   // for ClearCache: clear HD cache\n    ftagmMemory = 0x0002, // for ClearCache: clear CRF RAM cache\n};\n\n/****************************************\n    Tag Manager class\n****************************************/\ntypedef class TAGM *PTAGM;\n#define TAGM_PAR BASE\n#define kclsTAGM 'TAGM'\nclass TAGM : public TAGM_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    FNI _fniHDRoot;     // Root HD directory to search for content\n    long _cbCache;      // Size of RAM Cache on files in CRM for each source\n    PGL _pglsfs;        // GL of source file structs\n    PGST _pgstSource;   // String table of source descriptions\n    PFNINSCD _pfninscd; // Function to call when source is not found\n\n  protected:\n    TAGM(void)\n    {\n    }\n    bool _FFindSid(long sid, long *pistn = pvNil);\n    bool _FGetStnMergedOfSid(long sid, PSTN pstn);\n    bool _FGetStnSplitOfSid(long sid, PSTN pstnLong, PSTN pstnShort);\n    bool _FRetry(long sid);\n    bool _FEnsureFniCD(long sid, PFNI pfniCD, PSTN pstn = pvNil);\n    bool _FFindFniCD(long sid, PFNI pfniCD, bool *pfFniChanged);\n    bool _FDetermineIfSourceHD(long sid, bool *pfSourceIsOnHD);\n    bool _FDetermineIfContentOnFni(PFNI pfni, bool *pfContentOnFni);\n\n    bool _FGetFniHD(long sid, PFNI pfniHD);\n    bool _FGetFniCD(long sid, PFNI pfniHD, bool fAskForCD);\n\n    bool _FBuildFniHD(long sid, PFNI pfniHD, bool *pfExists);\n    PCRM _PcrmSourceNew(long sid, PFNI pfniInfo);\n    PCRM _PcrmSourceGet(long sid, bool fDontHitCD = fFalse);\n    PCFL _PcflFindTag(PTAG ptag);\n\n  public:\n    static PTAGM PtagmNew(PFNI pfniHDRoot, PFNINSCD pfninscd, long cbCache);\n    ~TAGM(void);\n\n    // GstSource stuff:\n    PGST PgstSource(void);\n    bool FMergeGstSource(PGST pgst, short bo, short osk);\n    bool FAddStnSource(PSTN pstnMerged, long sid);\n    bool FGetSid(PSTN pstn, long *psid); // pstn can be short or long\n\n    bool FFindFile(long sid, PSTN pstn, PFNI pfni, bool fAskForCD);\n    void SplitString(PSTN pstnMerged, PSTN pstnLong, PSTN pstnShort);\n\n    bool FBuildChildTag(PTAG ptagPar, CHID chid, CTG ctgChild, PTAG ptagChild);\n    bool FCacheTagToHD(PTAG ptag, bool fCacheChildChunks = fTrue);\n    PBACO PbacoFetch(PTAG ptag, PFNRPO pfnrpo, bool fUseCD = fFalse);\n    void ClearCache(long sid = sidNil,\n                    ulong grftagm = ftagmFile | ftagmMemory); // sidNil clears all caches\n\n    // For ksidUseCrf tags:\n    static bool FOpenTag(PTAG ptag, PCRF pcrfDest, PCFL pcflSrc = pvNil);\n    static bool FSaveTag(PTAG ptag, PCRF pcrf, bool fRedirect);\n    static void DupTag(PTAG ptag); // call this when you're copying a tag\n    static void CloseTag(PTAG ptag);\n\n    static ulong FcmpCompareTags(PTAG ptag1, PTAG ptag2);\n};\n\n#endif // TAGM_H\n"
  },
  {
    "path": "inc/tatr.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    tatr.h: Theater class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    BASE ---> BACO ---> CMH ---> TATR\n\n***************************************************************************/\n#ifndef TATR_H\n#define TATR_H\n\n#ifdef DEBUG // Flags for TATR::AssertValid()\nenum\n{\n    ftatrNil = 0x0000,\n    ftatrMvie = 0x0001,\n};\n#endif // DEBUG\n\n/****************************************\n    The theater class\n****************************************/\ntypedef class TATR *PTATR;\n#define TATR_PAR CMH\n#define kclsTATR 'TATR'\nclass TATR : public TATR_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(TATR)\n\n  protected:\n    long _kidParent; // ID of gob parent of MVU\n    PMVIE _pmvie;    // Currently loaded movie\n\n  protected:\n    TATR(long hid) : CMH(hid)\n    {\n    }\n    bool _FInit(long kidParent);\n\n  public:\n    static PTATR PtatrNew(long kidParent);\n    ~TATR(void);\n\n    bool FCmdLoad(PCMD pcmd);\n    bool FCmdPlay(PCMD pcmd);\n    bool FCmdStop(PCMD pcmd);\n    bool FCmdRewind(PCMD pcmd);\n\n    PMVIE Pmvie(void)\n    {\n        return _pmvie;\n    }\n};\n\n#endif TATR_H\n"
  },
  {
    "path": "inc/tbox.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Status: All changes must be code reviewed.\n\n    Textbox Class\n\n        Textbox (TBOX)\n\n            TXRD ---> TBOX\n\n    Drawing stuff\n\n        Textbox border (TBXB)\n\n            GOB  ---> TBXB\n\n        Textbox Ddg (TBXG)\n\n            TXRG ---> TBXG  (created as a child Gob of a TBXB)\n\n    Cut/Copy/Paste Stuff\n\n        Clipboard object (TCLP)\n\n            DOCB ---> TCLP\n\n***************************************************************************/\n\n#ifndef TBOX_H\n#define TBOX_H\n\n//\n// Defines for global text box constant values\n//\n#define kdzpBorderTbox 5                    // Width of the border in pixels\n#define kdxpMinTbox 16 + 2 * kdxpIndentTxtg // Minimum Width of a tbox in pixels\n#define kdypMinTbox 12                      // Minimum Height of a tbox in pixels\n#define kxpDefaultTbox 177                  // Default location of a tbox\n#define kypDefaultTbox 78                   // Default location of a tbox\n#define kdxpDefaultTbox 140                 // Default width of a tbox\n#define kdypDefaultTbox 100                 // Default height of a tbox\n\n//\n//\n// The border for a single textbox (TBXB)\n//\n//\n\n//\n// Definitions for each of the anchor points in a border\n//\nenum TBXT\n{\n    tbxtUp,\n    tbxtUpRight,\n    tbxtRight,\n    tbxtDownRight,\n    tbxtDown,\n    tbxtDownLeft,\n    tbxtLeft,\n    tbxtUpLeft,\n    tbxtMove\n};\n\n#define TBXB_PAR GOB\n\ntypedef class TBXB *PTBXB;\n#define kclsTBXB 'TBXB'\nclass TBXB : public TBXB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  private:\n    PTBOX _ptbox;         // Owning text box.\n    bool _fTrackingMouse; // Are we tracking the mouse.\n    TBXT _tbxt;           // The anchor point being dragged.\n    long _xpPrev;         // Previous x coord of the mouse.\n    long _ypPrev;         // Previous y coord of the mouse.\n    RC _rcOrig;           // Original size of the border.\n\n    TBXB(PTBOX ptbox, PGCB pgcb) : GOB(pgcb)\n    {\n        _ptbox = ptbox;\n    }\n\n    TBXT _TbxtAnchor(long xp, long yp); // Returns the anchor point the mouse is at.\n\n  public:\n    //\n    // Creates a text box with border\n    //\n    static PTBXB PtbxbNew(PTBOX ptbox, PGCB pgcb);\n\n    //\n    // Overridden routines\n    //\n    void Draw(PGNV pgnv, RC *prcClip);\n    void Activate(bool fActive);\n    virtual bool FPtIn(long xp, long yp);\n    virtual bool FCmdMouseMove(PCMD_MOUSE pcmd);\n    virtual bool FCmdTrackMouse(PCMD_MOUSE pcmd);\n\n    void AttachToMouse(void);\n};\n\n//\n//\n// The DDG for a single textbox (TBXG).\n//\n//\n\n#define TBXG_PAR TXRG\n\ntypedef class TBXG *PTBXG;\n#define kclsTBXG 'TBXG'\nclass TBXG : public TBXG_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(TBXG)\n\n  private:\n    PTBXB _ptbxb; // Enclosing border.\n    RC _rcOld;    // Old rectangle for the ddg.\n\n    TBXG(PTXRD ptxrd, PGCB pgcb) : TXRG(ptxrd, pgcb)\n    {\n    }\n    ~TBXG(void);\n\n  public:\n    //\n    // Creation function\n    //\n    static PTBXG PtbxgNew(PTBOX ptbox, PGCB pgcb);\n\n    //\n    // Accessors\n    //\n    void SetTbxb(PTBXB ptbxb)\n    {\n        _ptbxb = ptbxb;\n    }\n    PTBXB Ptbxb(void)\n    {\n        return _ptbxb;\n    }\n\n    //\n    // Scrolling\n    //\n    bool FNeedToScroll(void);  // Does this text box need to scroll anything\n    void Scroll(long scaVert); // Scrolls to beginning or a single pixel only.\n\n    //\n    // Overridden routines\n    //\n    virtual bool FPtIn(long xp, long yp);\n    virtual bool FCmdMouseMove(PCMD_MOUSE pcmd);\n    virtual bool FCmdTrackMouse(PCMD_MOUSE pcmd);\n    virtual bool FCmdClip(PCMD pcmd);\n    virtual bool FEnableDdgCmd(PCMD pcmd, ulong *pgrfeds);\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual long _DxpDoc(void);\n    virtual void _NewRc(void);\n    virtual void InvalCp(long cp, long ccpIns, long ccpDel);\n    void Activate(bool fActive);\n    virtual void _FetchChp(long cp, PCHP pchp, long *pcpMin = pvNil, long *pcpLim = pvNil);\n\n    //\n    // Status\n    //\n    bool FTextSelected(void);\n\n    //\n    // Only for TBXB\n    //\n    bool _FDoClip(long tool); // Actually does a clipboard command.\n};\n\nenum\n{\n    grfchpNil = 0,\n    kfchpOnn = 0x01,\n    kfchpDypFont = 0x02,\n    kfchpBold = 0x04,\n    kfchpItalic = 0x08\n};\nconst ulong kgrfchpAll = (kfchpOnn | kfchpDypFont | kfchpBold | kfchpItalic);\n\n//\n//\n// Text box document class (TBOX).\n//\n//\ntypedef class TBOX *PTBOX;\n\n#define TBOX_PAR TXRD\n#define kclsTBOX 'TBOX'\nclass TBOX : public TBOX_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  private:\n    PSCEN _pscen;    // The owning scene\n    long _nfrmFirst; // Frame the tbox appears in.\n    long _nfrmMax;   // Frame the tbox disappears in.\n    long _nfrmCur;   // Current frame number.\n    bool _fSel;      // Is this tbox selected?\n    bool _fStory;    // Is this a story text box.\n    RC _rc;          // Size of text box.\n\n    TBOX(void) : TXRD()\n    {\n    }\n\n  public:\n    //\n    // Creation routines\n    //\n    static PTBOX PtboxNew(PSCEN pscen = pvNil, RC *prcRel = pvNil, bool fStory = fTrue);\n    PDDG PddgNew(PGCB pgcb)\n    {\n        return TBXG::PtbxgNew(this, pgcb);\n    }\n    static PTBOX PtboxRead(PCRF pcrf, CNO cno, PSCEN pscen);\n    bool FWrite(PCFL pcfl, CNO cno);\n    bool FDup(PTBOX *pptbox);\n\n    //\n    // Movie specific functions\n    //\n    void SetScen(PSCEN pscen);\n    bool FIsVisible(void);\n    bool FGotoFrame(long nfrm);\n    void Select(bool fSel);\n    bool FSelected(void)\n    {\n        return _fSel;\n    }\n    bool FGetLifetime(long *pnfrmStart, long *pnfrmLast);\n    bool FShowCore(void);\n    bool FShow(void);\n    void HideCore(void);\n    bool FHide(void);\n    bool FStory(void)\n    {\n        return _fStory;\n    }\n    void SetTypeCore(bool fStory);\n    bool FSetType(bool fStory);\n    bool FNeedToScroll(void);\n    void Scroll(void);\n    PSCEN Pscen(void)\n    {\n        return _pscen;\n    }\n    bool FTextSelected(void);\n    bool FSetAcrBack(ACR acr);\n    bool FSetAcrText(ACR acr);\n    bool FSetOnnText(long onn);\n    bool FSetDypFontText(long dypFont);\n    bool FSetStyleText(ulong grfont);\n    void SetStartFrame(long nfrm);\n    void SetOnnDef(long onn)\n    {\n        _onnDef = onn;\n    }\n    void SetDypFontDef(long dypFont)\n    {\n        _dypFontDef = dypFont;\n    }\n    void FetchChpSel(PCHP pchp, ulong *pgrfchp);\n    void AttachToMouse(void);\n\n    //\n    // Overridden functions\n    //\n    void SetDirty(bool fDirty = fTrue);\n    virtual bool FAddUndo(PUNDB pundb);\n    virtual void ClearUndo(void);\n    void ParClearUndo(void)\n    {\n        TBOX_PAR::ClearUndo();\n    }\n\n    //\n    // TBXG/TBXB specific funtions\n    //\n    void GetRc(RC *prc)\n    {\n        *prc = _rc;\n    }\n    void SetRc(RC *prc);\n    void CleanDdg(void);\n    long Itbox(void);\n\n    //\n    // Undo access functions, not for use by anyone but tbox.cpp\n    //\n    long NfrmFirst(void)\n    {\n        return _nfrmFirst;\n    }\n    long nfrmMax(void)\n    {\n        return _nfrmMax;\n    }\n};\n\n//\n//\n// Textbox document for clipping\n//\n//\ntypedef class TCLP *PTCLP;\n\n#define TCLP_PAR DOCB\n#define kclsTCLP 'TCLP'\nclass TCLP : public TCLP_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    PTBOX _ptbox; // Text box copy.\n    TCLP(void)\n    {\n    }\n\n  public:\n    //\n    // Constructors and destructors\n    //\n    static PTCLP PtclpNew(PTBOX ptbox);\n    ~TCLP(void);\n\n    //\n    // Pasting\n    //\n    bool FPaste(PSCEN pscen);\n};\n\n#endif\n"
  },
  {
    "path": "inc/tdf.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    tdf.h: Three-D Font class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    BASE ---> BACO ---> TDF  (Three-D Font)\n\n***************************************************************************/\n#ifndef TDF_H\n#define TDF_H\n\n/****************************************\n    3-D Font class\n****************************************/\ntypedef class TDF *PTDF;\n#define TDF_PAR BACO\n#define kclsTDF 'TDF'\nclass TDF : public TDF_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    long _cch;    // count of chars\n    BRS _dyrMax;  // max character height\n    BRS *_prgdxr; // character widths\n    BRS *_prgdyr; // character heights\n\n  protected:\n    TDF(void)\n    {\n    }\n    bool _FInit(PBLCK pblck);\n\n  public:\n    static bool FReadTdf(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n    ~TDF(void);\n\n    // This authoring-only API creates a new TDF based on a set of models\n    static bool FCreate(PCRF pcrf, PGL pglkid, STN *pstn, CKI *pckiTdf = pvNil);\n\n    PMODL PmodlFetch(CHID chid);\n    BRS DxrChar(long ich);\n    BRS DyrChar(long ich);\n    BRS DyrMax(void)\n    {\n        return _dyrMax;\n    }\n};\n\n#endif // TDF_H\n"
  },
  {
    "path": "inc/tdfmake.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    tdfmake.h: Three-D Font authoring tool\n\n    Primary Author: ******\n    Review Status: Not yet reviewed\n\n***************************************************************************/\n#ifndef TDFMAKE_H\n#define TDFMAKE_H\n\n#include <stdio.h>\n#include \"frame.h\"\n\n#endif //! TDFMAKE_H\n"
  },
  {
    "path": "inc/tdt.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    tdt.h: Three-D Text class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    BASE ---> BACO ---> TMPL ---> TDT  (Three-D Text)\n\n***************************************************************************/\n#ifndef TDT_H\n#define TDT_H\n\n// 3-D Text Shapes - the positions and orientations of the letters\nenum\n{\n    tdtsNil = -1,\n    tdtsNormal = 0,\n    tdtsArchPositive,\n    tdtsCircleY,\n    tdtsLargeMiddle,\n    tdtsArchNegative,\n    tdtsArchZ,\n    tdtsCircleZ,\n    tdtsVertical,\n    tdtsGrowRight,\n    tdtsGrowLeft,\n    tdtsLim\n};\n\n// 3-D Actions\nenum\n{\n    tdaNil = -1,\n    tdaRest = 0,\n    tdaLetterRotX, // each letter rotates around its own X axis\n    tdaLetterRotY,\n    tdaLetterRotZ,\n    tdaSwingX, // letters skew right, then left, then back to normal\n    tdaSwingY,\n    tdaSwingZ,\n    tdaPulse,    // letters grow 10%, then shrink back to normal\n    tdaWordRotX, // (rotate entire word around X axis)\n    tdaWordRotY,\n    tdaWordRotZ,\n    tdaWave,    // a bump ripples through the letters\n    tdaReveal,  // letters slowly grow from zero height\n    tdaWalk,    // walk (word hops forward as if walking)\n    tdaHop,     // letters hop up and down\n    tdaStretch, // stretch in X\n    tdaLim\n};\n\n/****************************************\n    3-D Text class\n****************************************/\ntypedef class TDT *PTDT;\n#define TDT_PAR TMPL\n#define kclsTDT 'TDT'\nclass TDT : public TDT_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    static PGST _pgstAction; // Action names\n\n    long _tdts;          // TDT shape\n    TAG _tagTdf;         // Tag to Three-D Font\n    PMTRL _pmtrlDefault; // MTRL for TDT's default costume\n    PACTN _pactnCache;   // Last-used action\n    long _tdaCache;      // Action in pactnCache\n\n  protected:\n    virtual bool _FInit(PCFL pcfl, CTG ctgTmpl, CNO cnoTmpl);\n    bool _FInitLists(void);\n    PGL _PglibactParBuild(void);\n    PGL _PglibsetBuild(void);\n    PGG _PggcmidBuild(void);\n    PGL _Pglbmat34Build(long tda);\n    PGG _PggcelBuild(long tda);\n    virtual PACTN _PactnFetch(long tda);\n    PACTN _PactnBuild(long tda);\n    virtual PMODL _PmodlFetch(CHID chidModl);\n    long _CcelOfTda(long tda);\n    void _ApplyAction(BMAT34 *pbmat34, long tda, long ich, long ccel, long icel, BRS xrChar, BRS pdxrText);\n    void _ApplyShape(BMAT34 *pbmat34, long tdts, long cch, long ich, BRS xrChar, BRS dxrText, BRS yrChar, BRS dyrMax,\n                     BRS dyrTotal);\n\n  public:\n    static bool FSetActionNames(PGST pgstAction);\n#ifdef DEBUG\n    static void MarkActionNames(void);\n#endif\n\n    static PTDT PtdtNew(PSTN pstn, long tdts, PTAG ptagTdf);\n    ~TDT(void);\n    static PGL PgltagFetch(PCFL pcfl, CTG ctg, CNO cno, bool *pfError);\n    PTDT PtdtDup(void);\n\n    void GetInfo(PSTN pstn, long *ptdts, PTAG ptagTdf);\n    bool FChange(PSTN pstn, long tdts = tdtsNil, PTAG ptagTdf = pvNil);\n    bool FWrite(PCFL pcfl, CTG ctg, CNO *pcno);\n    bool FAdjustBody(PBODY pbody);\n    virtual bool FSetDefaultCost(PBODY pbody);\n    virtual PCMTL PcmtlFetch(long cmid);\n    virtual bool FGetActnName(long anid, PSTN pstn);\n};\n\n#endif // TDT_H\n"
  },
  {
    "path": "inc/tgob.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Lite, low-cholestoral, politically correct, ethinically and genderally\n    mixed text gobs.\n\n        TGOB \t--->   \tGOB\n\n***************************************************************************/\n\n#ifndef TGOB_H\n#define TGOB_H\n\n#include \"frame.h\"\n\n//\n// Tgob class\n//\n#define TGOB_PAR GOB\n#define kclsTGOB 'tgob'\ntypedef class TGOB *PTGOB;\nclass TGOB : public TGOB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    long _onn;\n    long _dypFont;\n    STN _stn;\n    long _tah;\n    long _tav;\n    ACR _acrFore;\n    ACR _acrBack;\n    ~TGOB(void)\n    {\n    }\n\n  public:\n    //\n    // Create and destroy functions\n    //\n    TGOB(PGCB pgcb);\n    TGOB(long hid);\n\n    void SetFont(long onn)\n    {\n        AssertThis(0);\n        _onn = onn;\n    }\n    void SetFontSize(long dypFont)\n    {\n        AssertThis(0);\n        _dypFont = dypFont;\n    }\n    void SetText(PSTN pstn)\n    {\n        AssertThis(0);\n        _stn = *pstn;\n        InvalRc(pvNil, kginMark);\n    }\n    void SetAcrFore(ACR acrFore)\n    {\n        AssertThis(0);\n        _acrFore = acrFore;\n    }\n    void SetAcrBack(ACR acrBack)\n    {\n        AssertThis(0);\n        _acrBack = acrBack;\n    }\n    void SetAlign(long tah = tahLim, long tav = tavLim);\n    long GetFont(void)\n    {\n        AssertThis(0);\n        return (_onn);\n    }\n    long GetFontSize(void)\n    {\n        AssertThis(0);\n        return _dypFont;\n    }\n    ACR GetAcrFore(void)\n    {\n        AssertThis(0);\n        return (_acrFore);\n    }\n    ACR GetAcrBack(void)\n    {\n        AssertThis(0);\n        return (_acrBack);\n    }\n    void GetAlign(long *ptah = pvNil, long *ptav = pvNil);\n    static PTGOB PtgobCreate(long kidFrm, long idsFont, long tav = tavTop, long hid = hidNil);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n};\n\n#endif\n"
  },
  {
    "path": "inc/tmpl.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*************************************************************************\n\n    tmpl.h: Actor template class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    BASE ---> BACO ---> ACTN\n    BASE ---> BACO ---> TMPL\n\n    A TMPL encapsulates all the data that distinguishes one actor\n    \"species\" from another, including the species' models, actions,\n    and custom texture maps.  One or more BODY classes are created based\n    on a TMPL, and the TMPL attaches models and materials to the body\n    based on more abstract concepts like actions and costumes.\n\n*************************************************************************/\n#ifndef TMPL_H\n#define TMPL_H\n\n/****************************************\n    Cel part spec: tells what model and\n    xfrm to apply to a body part for\n    one cel\n****************************************/\nstruct CPS\n{\n    short chidModl; // CHID (under TMPL chunk) of model for this body part\n    short imat34;   // index into ACTN's GL of transforms\n};\nconst BOM kbomCps = 0x50000000;\n\n/****************************************\n    Cel: tells what CPS's to apply to an\n    actor for one cel.  It also tells\n    what sound to play (if any), and how\n    far the actor should move from the\n    previous cel (dwr).\n****************************************/\nstruct CEL\n{\n    CHID chidSnd; // sound to play at this cel (CHID under ACTN chunk)\n    BRS dwr;      // distance from previous cel\n                  //\tCPS rgcps[];\t// list of cel part specs (variable part of pggcel)\n};\nconst BOM kbomCel = 0xf0000000;\n\n// template on file\nstruct TMPLF\n{\n    short bo;\n    short osk;\n    BRA xaRest; // reminder: BRAs are shorts\n    BRA yaRest;\n    BRA zaRest;\n    short swPad; // so grftmpl (and the whole TMPLF) is long-aligned\n    ulong grftmpl;\n};\n#define kbomTmplf 0x554c0000\n\n// action chunk on file\nstruct ACTNF\n{\n    short bo;\n    short osk;\n    long grfactn;\n};\nconst ulong kbomActnf = 0x5c000000;\n\n// grfactn flags\nenum\n{\n    factnRotateX = 1, // Tells whether actor should rotate around this\n    factnRotateY = 2, //   axis when following a path\n    factnRotateZ = 4,\n    factnStatic = 8, // Tells whether this is a stationary action\n};\n\n/****************************************\n    ACTN (action): all the information\n    for an action like 'rest' or 'walk'.\n****************************************/\ntypedef class ACTN *PACTN;\n#define ACTN_PAR BACO\n#define kclsACTN 'ACTN'\nclass ACTN : public ACTN_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PGG _pggcel;    // GG of CELs; variable part is a rgcps[]\n    PGL _pglbmat34; // GL of transformation matrices used in this action\n    PGL _pgltagSnd; // GL of motion-match sounds for this action\n    ulong _grfactn; // various flags for this action\n\n  protected:\n    ACTN(void)\n    {\n    } // can't instantiate directly; must use FReadActn\n    bool _FInit(PCFL pcfl, CTG ctg, CNO cno);\n\n  public:\n    static PACTN PactnNew(PGG pggcel, PGL pglbmat34, ulong grfactn);\n    static bool FReadActn(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n    ~ACTN(void);\n\n    ulong Grfactn(void)\n    {\n        return _grfactn;\n    }\n\n    long Ccel(void)\n    {\n        return _pggcel->IvMac();\n    }\n    void GetCel(long icel, CEL *pcel);\n    void GetCps(long icel, long icps, CPS *pcps);\n    void GetMatrix(long imat34, BMAT34 *pbmat34);\n    void GetSnd(long icel, PTAG ptagSnd);\n};\n\n// grftmpl flags\nenum\n{\n    ftmplOnlyCustomCostumes = 1, // fTrue means don't apply generic MTRLs\n    ftmplTdt = 2,                // fTrue means this is a 3-D Text object\n    ftmplProp = 4,               // fTrue means this is a \"prop\" actor\n};\n\n/****************************************\n    TMPL: The template class.\n    anid is an action ID.\n    cmid is a costume ID.\n    celn is a cel number.\n****************************************/\ntypedef class TMPL *PTMPL;\n#define TMPL_PAR BACO\n#define kclsTMPL 'TMPL'\nclass TMPL : public TMPL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    BRA _xaRest; // Rest orientation\n    BRA _yaRest;\n    BRA _zaRest;\n    ulong _grftmpl;\n    PGL _pglibactPar; // GL of parent IDs (shorts) to build BODY\n    PGL _pglibset;    // GL of body-part-set IDs to build BODY\n    PGG _pggcmid;     // List of costumes for each body part set\n    long _ccmid;      // Count of custom costumes\n    long _cbset;      // Count of body part sets\n    long _cactn;      // Count of actions\n    STN _stn;         // Template name\n\n  protected:\n    TMPL(void)\n    {\n    } // can't instantiate directly; must use FReadTmpl\n    bool _FReadTmplf(PCFL pcfl, CTG ctg, CNO cno);\n    virtual bool _FInit(PCFL pcfl, CTG ctgTmpl, CNO cnoTmpl);\n    virtual PACTN _PactnFetch(long anid);\n    virtual PMODL _PmodlFetch(CHID chidModl);\n    bool _FWriteTmplf(PCFL pcfl, CTG ctg, CNO *pcno);\n\n  public:\n    static bool FReadTmpl(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n    ~TMPL(void);\n    static PGL PgltagFetch(PCFL pcfl, CTG ctg, CNO cno, bool *pfError);\n\n    // TMPL / BODY stuff\n    void GetName(PSTN pstn); // default name of actor or text of the TDT\n    PBODY PbodyCreate(void); // Creates a body based on this TMPL\n    void GetRestOrien(BRA *pxa, BRA *pya, BRA *pza);\n    bool FIsTdt(void)\n    {\n        return FPure(_grftmpl & ftmplTdt);\n    }\n    bool FIsProp(void)\n    {\n        return FPure(_grftmpl & ftmplProp);\n    }\n\n    // Action stuff\n    long Cactn(void)\n    {\n        return _cactn;\n    } // count of actions\n    virtual bool FGetActnName(long anid, PSTN pstn);\n    bool FSetActnCel(PBODY pbody, long anid, long celn, BRS *pdwr = pvNil);\n    bool FGetGrfactn(long anid, ulong *pgrfactn);\n    bool FGetDwrActnCel(long anid, long celn, BRS *pdwr);\n    bool FGetCcelActn(long anid, long *pccel);\n    bool FGetSndActnCel(long anid, long celn, bool *pfSoundExists, PTAG ptag);\n\n    // Costume stuff\n    virtual bool FSetDefaultCost(PBODY pbody); // applies default costume\n    virtual PCMTL PcmtlFetch(long cmid);\n    long CcmidOfBset(long ibset);\n    long CmidOfBset(long ibset, long icmid);\n    bool FBsetIsAccessory(long ibset); // whether ibset holds accessories\n    bool FIbsetAccOfIbset(long ibset, long *pibsetAcc);\n    bool FSameAccCmids(long cmid1, long cmid2);\n};\n\n#endif TMPL_H\n"
  },
  {
    "path": "inc/utest.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    utest.h: Socrates main app class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n***************************************************************************/\n#ifndef UTEST_H\n#define UTEST_H\n\n/****************************************\n    KidWorld for the App class\n****************************************/\ntypedef class KWA *PKWA;\n#define KWA_PAR WOKS\n#define kclsKWA 'KWA'\nclass KWA : public KWA_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PMBMP _pmbmp; // MBMP to draw in KWA (may be pvNil)\n    bool _fAskForCD;\n\n  public:\n    KWA(GCB *pgcb) : WOKS(pgcb)\n    {\n        _fAskForCD = fTrue;\n    }\n    ~KWA(void);\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FFindFile(PSTN pstnSrc, PFNI pfni); // for finding AVIs\n    virtual bool FModalTopic(PRCA prca, CNO cnoTopic, long *plwRet);\n    void SetMbmp(PMBMP pmbmp);\n    void SetCDPrompt(bool fAskForCD)\n    {\n        _fAskForCD = fAskForCD;\n    }\n    bool FAskForCD(void)\n    {\n        return _fAskForCD;\n    }\n};\n\n//\n// If you change anything for the registry, notify SeanSe for setup changes.\n//\n#define kszSocratesKey PszLit(\"Software\\\\Microsoft\\\\Microsoft Kids\\\\3D Movie Maker\")\n#define kszWaveOutMsgValue PszLit(\"WaveOutMsg\")\n#define kszMidiOutMsgValue PszLit(\"MidiOutMsg\")\n#define kszGreaterThan8bppMsgValue PszLit(\"GreaterThan8bppMsg\")\n#define kszSwitchResolutionValue PszLit(\"SwitchResolution\")\n#define kszHomeDirValue PszLit(\"HomeDirectory\")\n#define kszInstallDirValue PszLit(\"InstallDirectory\")\n#define kszProductsKey PszLit(\"Software\\\\Microsoft\\\\Microsoft Kids\\\\3D Movie Maker\\\\Products\")\n#define kszUserDataValue PszLit(\"UserData\")\n#define kszBetterSpeedValue PszLit(\"BetterSpeed\")\n\n// FGetSetRegKey flags\nenum\n{\n    fregNil = 0,\n    fregSetKey = 0x01,\n    fregSetDefault = 0x02,\n    fregString = 0x04,\n    fregBinary = 0x08, // not boolean\n    fregMachine = 0x10\n};\n\n/****************************************\n    The app class\n****************************************/\ntypedef class APP *PAPP;\n#define APP_PAR APPB\n#define kclsAPP 'APP'\nclass APP : public APP_PAR\n{\n    RTCLASS_DEC\n    CMD_MAP_DEC(APP)\n    ASSERT\n    MARKMEM\n\n  protected:\n    bool _fDontReportInitFailure; // init failure was already reported\n    bool _fOnscreenDrawing;\n    PCFL _pcfl;                   // resource file for app\n    PSTDIO _pstdio;               // Current studio\n    PTATR _ptatr;                 // Current theater\n    PCRM _pcrmAll;                // The app CRM -- all crfs are loaded into this.\n    PGL _pglicrfBuilding;         // List of crfs in _pcrmAll belonging to Building.\n    PGL _pglicrfStudio;           // List of crfs in _pcrmAll belonging to Studio.\n    bool _fDontMinimize : 1,      // \"/M\" command-line switch\n        _fSlowCPU : 1,            // running on slow CPU\n        _fSwitchedResolution : 1, // we successfully switched to 640x480 mode\n        _fMainWindowCreated : 1, _fMinimized : 1,\n        _fRunInWindow : 1, // run in a window (as opposed to fullscreen)\n        _fFontError : 1,   // Have we already seen a font error?\n        _fInPortfolio : 1; // Is the portfolio active?\n    PCEX _pcex;            // Pointer to suspended cex.\n    FNI _fniPortfolioDoc;  // document last opened in portfolio\n    PMVIE _pmvieHandoff;   // Stores movie for studio to use\n    PKWA _pkwa;            // Kidworld for App\n    PGST _pgstBuildingFiles;\n    PGST _pgstStudioFiles;\n    PGST _pgstSharedFiles;\n    PGST _pgstApp;        // Misc. app global strings\n    STN _stnAppName;      // App name\n    STN _stnProductLong;  // Long version of product name\n    STN _stnProductShort; // Short version of product name\n    STN _stnUser;         // User's name\n    long _sidProduct;\n    FNI _fniCurrentDir; // fni of current working directory\n    FNI _fniExe;        // fni of this executable file\n    FNI _fniMsKidsDir;  // e.g., \\mskids\n    FNI _fniUsersDir;   // e.g., \\mskids\\users\n    FNI _fniMelanieDir; // e.g., \\mskids\\users\\melanie\n    FNI _fniProductDir; // e.g., \\mskids\\3dmovie or \\mskids\\otherproduct\n    FNI _fniUserDir;    // User's preferred directory\n    FNI _fni3DMovieDir; // e.g., \\mskids\\3dMovie\n    long _dypTextDef;   // Default text height\n\n    long _cactDisable; // disable count for keyboard accelerators\n#ifdef BUG1085\n    long _cactCursHide; // hide count for cursor\n    long _cactCursSav;  // saved count for cursor\n#endif\n\n    //\n    //\n    //\n    bool _fDown;\n    long _cactToggle;\n\n#ifdef WIN\n    HACCEL _haccel;\n    HACCEL _haccelGlobal;\n#endif\n\n  protected:\n    bool _FAppAlreadyRunning(void);\n    void _TryToActivateWindow(void);\n    bool _FEnsureOS(void);\n    bool _FEnsureAudio(void);\n    bool _FEnsureVideo(void);\n    bool _FEnsureColorDepth(void);\n    bool _FEnsureDisplayResolution(void);\n    bool _FDisplaySwitchSupported(void);\n    void _ParseCommandLine(void);\n    void _SkipToSpace(char **ppch);\n    void _SkipSpace(char **ppch);\n    bool _FEnsureProductNames(void);\n    bool _FFindProductDir(PGST pgst);\n    bool _FQueryProductExists(STN *pstnLong, STN *pstnShort, FNI *pfni);\n    bool _FFindMsKidsDir(void);\n    bool _FFindMsKidsDirAt(FNI *path);\n    bool _FCantFindFileDialog(PSTN pstn);\n    bool _FGenericError(PSTZ message);\n    bool _FGenericError(PSTN message);\n    bool _FGenericError(FNI *path);\n    bool _FGetUserName(void);\n    bool _FGetUserDirectories(void);\n    bool _FReadUserData(void);\n    bool _FWriteUserData(void);\n    bool _FDisplayHomeLogo(void);\n    bool _FDetermineIfSlowCPU(void);\n    bool _FOpenResourceFile(void);\n    bool _FInitKidworld(void);\n    bool _FInitProductNames(void);\n    bool _FReadTitlesFromReg(PGST *ppgst);\n    bool _FInitTdt(void);\n    PGST _PgstRead(CNO cno);\n    bool _FReadStringTables(void);\n    bool _FSetWindowTitle(void);\n    bool _FInitCrm(void);\n    bool _FAddToCrm(PGST pgstFiles, PCRM pcrm, PGL pglFiles);\n    bool _FInitBuilding(void);\n    bool _FInitStudio(PFNI pfniUserDoc, bool fFailIfDocOpenFailed = fTrue);\n    void _GetWindowProps(long *pxp, long *pyp, long *pdxp, long *pdyp, DWORD *pdwStyle);\n    void _RebuildMainWindow(void);\n    bool _FSwitch640480(bool fTo640480);\n    bool _FDisplayIs640480(void);\n    bool _FShowSplashScreen(void);\n    bool _FPlaySplashSound(void);\n    PMVIE _Pmvie(void);\n    void _CleanupTemp(void);\n#ifdef WIN\n    bool _FSendOpenDocCmd(HWND hwnd, PFNI pfniUserDoc);\n    bool _FProcessOpenDocCmd(void);\n#endif // WIN\n\n    // APPB methods that we override\n    virtual bool _FInit(ulong grfapp, ulong grfgob, long ginDef);\n    virtual bool _FInitOS(void);\n    virtual bool _FInitMenu(void)\n    {\n        return fTrue;\n    } // no menubar\n    virtual void _CopyPixels(PGNV pgvnSrc, RC *prcSrc, PGNV pgnvDst, RC *prcDst);\n    virtual void _FastUpdate(PGOB pgob, PREGN pregnClip, ulong grfapp = fappNil, PGPT pgpt = pvNil);\n    virtual void _CleanUp(void);\n    virtual void _Activate(bool fActive);\n    virtual bool _FGetNextEvt(PEVT pevt);\n#ifdef WIN\n    virtual bool _FFrameWndProc(HWND hwnd, uint wm, WPARAM wParam, LPARAM lw, long *plwRet);\n#endif // WIN\n\n  public:\n    APP(void)\n    {\n        _dypTextDef = 0;\n    }\n\n    // Overridden APPB functions\n    virtual void GetStnAppName(PSTN pstn);\n    virtual long OnnDefVariable(void);\n    virtual long DypTextDef(void);\n    virtual tribool TQuerySaveDoc(PDOCB pdocb, bool fForce);\n    virtual void Quit(bool fForce);\n    virtual void UpdateHwnd(HWND hwnd, RC *prc, ulong grfapp = fappNil);\n    virtual void Run(ulong grfapp, ulong grfgob, long ginDef);\n#ifdef BUG1085\n    virtual void HideCurs(void);\n    virtual void ShowCurs(void);\n\n    // New cursor methods\n    void PushCurs(void);\n    void PopCurs(void);\n#endif // BUG 1085\n\n    // Command processors\n    bool FCmdLoadStudio(PCMD pcmd);\n    bool FCmdLoadBuilding(PCMD pcmd);\n    bool FCmdTheaterOpen(PCMD pcmd);\n    bool FCmdTheaterClose(PCMD pcmd);\n    bool FCmdIdle(PCMD pcmd);\n    bool FCmdInfo(PCMD pcmd);\n    bool FCmdPortfolioClear(PCMD pcmd);\n    bool FCmdPortfolioOpen(PCMD pcmd);\n    bool FCmdDisableAccel(PCMD pcmd);\n    bool FCmdEnableAccel(PCMD pcmd);\n    bool FCmdInvokeSplot(PCMD pcmd);\n    bool FCmdExitStudio(PCMD pcmd);\n    bool FCmdDeactivate(PCMD pcmd);\n\n    static bool FInsertCD(PSTN pstnTitle);\n    void DisplayErrors(void);\n    void SetPortfolioDoc(PFNI pfni)\n    {\n        _fniPortfolioDoc = *pfni;\n    }\n    void GetPortfolioDoc(PFNI pfni)\n    {\n        *pfni = _fniPortfolioDoc;\n    }\n    void SetFInPortfolio(bool fInPortfolio)\n    {\n        _fInPortfolio = fInPortfolio;\n    }\n    bool FInPortfolio(void)\n    {\n        return _fInPortfolio;\n    }\n\n    PSTDIO Pstdio(void)\n    {\n        return _pstdio;\n    }\n    PKWA Pkwa(void)\n    {\n        return _pkwa;\n    }\n    PCRM PcrmAll(void)\n    {\n        return _pcrmAll;\n    }\n    bool FMinimized()\n    {\n        return _fMinimized;\n    }\n\n    bool FGetStnApp(long ids, PSTN pstn)\n    {\n        return _pgstApp->FFindExtra(&ids, pstn);\n    }\n    void GetStnProduct(PSTN pstn)\n    {\n        *pstn = _stnProductLong;\n    }\n    void GetStnUser(PSTN pstn)\n    {\n        *pstn = _stnUser;\n    }\n    void GetFniExe(PFNI pfni)\n    {\n        *pfni = _fniExe;\n    }\n    void GetFniProduct(PFNI pfni)\n    {\n        *pfni = _fniProductDir;\n    }\n    void GetFniUsers(PFNI pfni)\n    {\n        *pfni = _fniUsersDir;\n    }\n    void GetFniUser(PFNI pfni)\n    {\n        *pfni = _fniUserDir;\n    }\n    void GetFniMelanie(PFNI pfni)\n    {\n        *pfni = _fniMelanieDir;\n    }\n    long SidProduct(void)\n    {\n        return _sidProduct;\n    }\n    bool FGetOnn(PSTN pstn, long *ponn);\n    void MemStat(long *pdwTotalPhys, long *pdwAvailPhys = pvNil);\n    bool FSlowCPU(void)\n    {\n        return _fSlowCPU;\n    }\n\n    // Kid-friendly modal dialog stuff:\n    void EnsureInteractive(void)\n    {\n#ifdef WIN\n        if (_fMinimized || GetForegroundWindow() != vwig.hwndApp)\n#else\n        if (_fMinimized)\n#endif\n        {\n#ifdef WIN\n            SetForegroundWindow(vwig.hwndApp);\n            ShowWindow(vwig.hwndApp, SW_RESTORE);\n#else  //! WIN\n            RawRtn();\n#endif //! WIN\n        }\n    }\n    tribool TModal(PRCA prca, long tpc, PSTN pstnBackup = pvNil, long bkBackup = ivNil, long stidSubst = ivNil,\n                   PSTN pstnSubst = pvNil);\n\n    // Enable/disable accelerator keys\n    void DisableAccel(void);\n    void EnableAccel(void);\n\n    // Registry access function\n    bool FGetSetRegKey(PSZ pszValueName, void *pvData, long cbData, ulong grfreg = fregSetDefault,\n                       bool *pfNoValue = pvNil);\n\n    // Movie handoff routines\n    void HandoffMovie(PMVIE pmvie);\n    PMVIE PmvieRetrieve(void);\n\n    // Determines whether screen savers should be blocked.\n    virtual bool FAllowScreenSaver(void);\n};\n\n#define vpapp ((APP *)vpappb)\n\n#endif //! UTEST_H\n"
  },
  {
    "path": "inc/utestres.h",
    "content": "//{{NO_DEPENDENCIES}}\n// Microsoft Visual C++ generated include file.\n// Used by utest.rc\n//\n#include \"socdef.h\"\n\n#define stidAppName 1\n#define stidPortNameLabel 2\n#define stid3DMovieNameLong 3\n#define stid3DMovieNameShort 4\n\n#define stidInstallDriverWin95 5\n#define stidInstallDriverNT 6\n#define stidInstallCmdLine 7\n#define stidSectionName 8 // uses 7 entries\n#define stidDriverName 15 // uses 7 entries\n\n#define IDI_APP 208\n#define IDI_DOC 209\n#define IDI_CD 210\n#define dlidBadOS 211\n#define dlidNotEnoughColors 212\n#define dlidTooManyColors 213\n#define dlidDesktopResizing 214\n#define dlidDesktopResized 215\n#define dlidDesktopWontResize 216\n#define bmidHomeLogo 217\n#define dlidInfo 218\n#define dlidInitFailed 219\n#define dlidInitFailedOOM 220\n#define dlidNoWaveOut 221\n#define dlidNoMidiOut 222\n#define dlidPortfolio 223\n#define dlidCantFindFile 224\n#define acidGlobal 225\n#define dlidAbnormalExit 226\n#define dlidGenericErrorBox 227\n#define IDC_CHECK1 1010\n#define IDC_RADIO1 1012\n#define IDC_RADIO2 1013\n#define IDC_RADIO3 1014\n#define IDC_RADIO4 1015\n#define IDC_RADIO5 1016\n#define idsTotalMemory 1017\n#define IDC_EDIT1 1018\n#define IDC_EDIT2 1019\n#define IDC_EDIT4 1020\n#define IDC_BUTTON1 1021\n#define IDC_BUTTON2 1022\n#define IDC_PREVIEW 1023\n#define IDC_BUTTON3 1024\n#define IDC_EDIT3 1025\n#define cidInfo 40038\n#define cidWriteBmps 40039\n#define cidHelpBook 40040\n#define cidToggleXY 40041\n#define cidMap 40042\n#define IDC_STATIC -1\n\n// Next default values for new objects\n//\n#ifdef APSTUDIO_INVOKED\n#ifndef APSTUDIO_READONLY_SYMBOLS\n#define _APS_NEXT_RESOURCE_VALUE 226\n#define _APS_NEXT_COMMAND_VALUE 40045\n#define _APS_NEXT_CONTROL_VALUE 1026\n#define _APS_NEXT_SYMED_VALUE 128\n#endif\n#endif\n"
  },
  {
    "path": "inc/version.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#define rmj 1\n#define rmm 0\n#define rup 1009\n#define szVerName \"\"\n#define szVerUser \"SHEILA\"\n"
  },
  {
    "path": "kauai/doc/chunk.txt",
    "content": "/***************************************************************************\n\n\tChunky file API.\n\n***************************************************************************/\n\n\n/****************************************\n\tTypes\n****************************************/\n\n\tclass CFL;\n\ttypedef class CFL *PCFL;\n\t\tA chunky file.\n\n\tclass CGE;\n\t\tAn auto class to enumerate over a subgraph of a chunky file.\n\t\tIt is illegal to assign a cge to another cge.\n\n\ttypedef ulong CTG;\n\t\tA chunk type.  These should all be registered in ctg.h.\n\n\ttypedef ulong CNO;\n\t\tA chunk number.  These are assigned by the chunky code when a\n\t\tchunk is created.  It is possible to create a chunk with a given\n\t\tcno, but this is generally not a good thing to do as doing so will\n\t\toverwrite any existing chunk with that cno.\n\n\tstruct CKI;\n\t\tA struct consisting of a ctg and cno.  Identifies a chunk within\n\t\ta chunky file.\n\n\ttypedef ulong CHID;\n\t\tA child id.  When adding a child to a chunk, you can specify an\n\t\tid by which you will refer to the child (in the context of the\n\t\tparent).  These are preserved when chunks are copied to other\n\t\tfiles (while cno's may not be).\n\n\tstruct KID;\n\t\tA struct consisting of a CKI and a CHID.  Identifies a child chunk.\n\n\tulong grfcfl;\n\t\tA group of flags indicating chunky file options.\n\n\n/****************************************\n\tConstants\n****************************************/\n\n\tulong fcflNil;\t\t\t// default options\n\tulong fcflWriteEnable;\t// open with write permissions\n\tulong fcflTemp;\t\t\t// make it a temp chunky file\n\tulong fcflMark;\t\t\t// mark the chunky file (see below)\n\tulong fcflAddToExtra;\t// forces added chunks to be in a temp file\n\t\t\t\t\t\t\t// (until FSave is called).\n\tulong fcflFull;\t\t\t// debug only - may be passed to AssertObj to\n\t\t\t\t\t\t\t// do a full check of the chunky file\n\n\n/****************************************\n\tConcepts\n****************************************/\n\nChunky files have both a mark flag and an open count.  See file.txt for\na description of how these work.\n\nIf a chunky file is opened read-only, or if fcflAddToExtra is specified\nat open or create time, then chunks are added to a temp file associated\nwith the chunky file.  When the chunky file is then saved, all chunk data\nis put in the same file.\n\nOpening a chunky file with write permissions (and without fAddToExtra),\nthen adding chunks to the file invalidates the file until it is saved\n(the index is trashed on disk until it is saved).  Closing a chunky file\ndoes _not_ automatically save it.\n\nThe chunks in a CFL form an acyclic directed graph.  Ie, a chunk can own\nother (\"child\") chunks.  Child chunks may be owned by more than one chunk\nand may themselves own chunks.  It is illegal to create a cycle, where a\nchunk is a direct or indirect descendent of itself.\n\nREVIEW shonk: assert and check for cycles.\n\n\n/****************************************\n\tCFL static methods\n****************************************/\n\n\tPCFL CFL::PcflFirst(void);\n\t\tChunky files form a linked list.  This returns the first chunky file\n\t\tin the linked list.\n\n\tPCFL CFL::PcflFromFni(FNI *pfni);\n\t\tIf the file indicated by *pfni is open as a chunky file, this returns\n\t\ta pointer to the CFL.  Otherwise it returns pNil.\n\n\tPCFL CFL::PcflOpen(FNI *pfni, ulong grfcfl);\n\t\tAttempts to open the indicated file as a chunky file.  grfcfl may\n\t\tinclude fcflWriteEnable, fcflAddToExtra, fcflMark.  fcflTemp is\n\t\tillegal.  If the file is already open as a chunky file, this ensures\n\t\tthat the permissions are high enough and increments the open count.\n\t\tThis should be balanced with a call to pcfl->Close().  Specifying\n\t\tfcflMark causes the cfl to be marked (but not the underlying fil).\n\t\tReturns pNil on failure.\n\n\tPCFL CFL::PcflCreate(FNI *pfni, ulong grfcfl);\n\t\tCreates and opens the indicated file as a chunk file (asserts that it\n\t\tisn't already open) and sets the open count to 1.  Assumes\n\t\tfcflWriteEnable.  fcflMark is legal.  Use fcflTemp to create a temp\n\t\tchunky file, which will be automatically deleted when it is closed.\n\t\tReturns pNil on failure.\n\n\tvoid CFL::ClearMarks(void);\n\t\tClears the mark flag on all chunky files.  See discussion under\n\t\tconcepts.\n\n\tvoid CFL::CloseUnmarked(void);\n\t\tCloses all chunky files that are not marked and have zero open count.\n\t\tSee discussion under concepts.\n\n\n/****************************************\n\tCFL methods\n****************************************/\n\n\tPCFL CFL::Next(void);\n\t\tReturns the next chunky file (in the linked list).\n\n\tvoid CFL::Open(void);\n\t\tIncrement the open count, nothing more.\n\n\tvoid CFL::Close(void);\n\t\tDecrements the open count.  If the cfl is not marked and the\n\t\topen count becomes zero, the cfl is closed.\n\n\tbool CFL::FSave(CTG ctgCreator, FNI *pfni = pNil);\n\t\tSaves the chunky file.  Passing pNil (or the current fni of the CFL)\n\t\tfor pfni does a normal save.  Passing any other fni does a save as\n\t\t(the original file still exists).  Note:  if you do a save as, but\n\t\tadded chunks to the file and had it open for writing, the original\n\t\tfile may be corrupt.  Adding chunks to a file opened for writing\n\t\tcorrupts the file until it is saved.\n\n\tvoid CFL::Mark(void);\n\t\tSet the mark flag.\n\n\tvoid CFL::SetTemp(bool f);\n\t\tSet whether the chunky file is a temp file.  Temp files are\n\t\tautomatically deleted when they are closed.\n\n\tbool CFL::FTemp(void);\n\t\tReturn whether the chunky file is a temp file.\n\n\tvoid CFL::GetFni(FNI *pfni);\n\t\tGet the file name.\n\n\tbool CFL::FFind(CTG ctg, CNO cno, FLO *pflo);\n\t\tLook for the chunk and fill in *pflo with the location of its data.\n\n\tHQ CFL::HqGet(CTG ctg, CNO cno);\n\t\tRead the chunk into an hq.  Returns hqNil if there is no such\n\t\tchunk or on memory failure.\n\n\tbool CFL::FAdd(long cb, CTG ctg, CNO *pcno, FLO *pflo);\n\t\tAdds a chunk to the file.  Fills in *pcno with the cno for the\n\t\tchunk and fills in *pflo with the space on file allocated for\n\t\tthe chunk.\n\n\tbool CFL::FAddPv(void *pv, long cb, CTG ctg, CNO *pcno);\n\tbool CFL::FAddHq(HQ hq, CTG ctg, CNO *pcno);\n\t\tAdds a chunk to the file and writes the data from the pv or hq into\n\t\tit.  Fills in *pcno with the cno for the chunk.  pv can only be nil\n\t\tif cb is zero.\n\n\tbool CFL::FAddChild(CTG ctgPar, CNO cnoPar, CHID chid,\n\t\t\tlong cb, CTG ctg, CNO *pcno, FLO *pflo);\n\tbool CFL::FAddChildPv(CTG ctgPar, CNO cnoPar, CHID chid,\n\t\t\tvoid *pv, long cb, CTG ctg, CNO *pcno);\n\tbool CFL::FAddChildHq(CTG ctgPar, CNO cnoPar, CHID chid,\n\t\t\tHQ hq, CTG ctg, CNO *pcno);\n\t\tThese atomize the adding of a chunk and adopting the new chunk by\n\t\t(ctgPar, cnoPar).\n\n\tbool CFL::FPut(long cb, CTG ctg, CNO cno, FLO *pflo);\n\t\tReplaces (or creates) the indicated chunk.  Use this with caution.\n\t\tYou may be nuking an existing chunk by calling this.  Preserves\n\t\tany existing children of the node.\n\n\tbool CFL::FPutPv(void *pv, long cb, CTG ctg, CNO cno);\n\tbool CFL::FPutHq(HQ hq, CTG ctg, CNO cno);\n\t\tReplaces (or creates) the indicated chunk with the data in pv or hq.\n\t\tUse this with caution.  You may be nuking an existing chunk by\n\t\tcalling this.  Preserves any existing children of the node.  pv can\n\t\tonly be nil if cb is zero.\n\n\tbool CFL::FCopy(CTG ctgSrc, CNO cnoSrc, PCFL pcflDst, CNO *pcnoDst);\n\t\tCopies a chunk from one file to another.  If the chunk has already\n\t\tbeen copied, the actual data is not copied again, but the child\n\t\tsub-graph is verified (new descendents will be copied) and names\n\t\tof the chunks in the graph are verified.\n\n\tvoid CFL::Delete(CTG ctg, CNO cno);\n\t\tDeletes a chunk.  It is illegal to call this on a child chunk.\n\t\tIt should only be called on top level chunks.  This deletes\n\t\t(or decrements reference counts of) descendents of the chunk.\n\n\tbool CFL::FAdoptChild(CTG ctgPar, CNO cnoPar,\n\t\t\tCTG ctgChild, CNO cnoChild, CHID chid = 0);\n\t\tMakes (ctgChild, cnoChild) a child of (ctgPar, cnoPar) with the\n\t\tgiven chid value.  If it already is a child with this chid value,\n\t\tthis does nothing.  Note that a chunk may be a child of another\n\t\tchunk multiple times (with different chid values).\n\n\tvoid DeleteChild(CTG ctgPar, CNO cnoPar,\n\t\t\tCTG ctgChild, CNO cnoChild, CHID chid);\n\t\tDeletes (ctgChild, cnoChild, chid) as a child of (ctgPar, cnoPar).\n\t\tIf the child is no longer a child of any chunks, it is deleted from\n\t\tthe cfl.  This deletes (or decrements reference counts of)\n\t\tdescendents of the child.\n\n\tbool CFL::FSetName(CTG ctg, CNO cno, char *pstz);\n\t\tSets the name of the chunk.  If pstz is pNil, makes the name empty.\n\n\tbool CFL::FGetName(CTG ctg, CNO cno, char *pstz);\n\t\tGets the name of the chunk.  Returns fFalse iff the name is empty.\n\n\tlong CFL::Ccki(void);\n\t\tReturns the number of chunks in the file.\n\n\tbool CFL::FGetCki(long icki, CKI *pcki);\n\t\tGets a cki for the icki'th chunk.  Returns false if icki is too big.\n\n\tlong CFL::CckiCtg(CTG ctg);\n\t\tReturns the number of chunks of type ctg in the file.\n\n\tbool CFL::FGetCkiCtg(CTG ctg, long icki, CKI *pcki);\n\t\tGets a cki for the icki'th chunk of type ctg.  Returns false if icki\n\t\tis too big.\n\n\tlong CFL::Ckid(CTG ctgPar, CNO cnoPar);\n\t\tReturns the number of children of the given chunk.\n\n\tbool CFL::FGetKid(CTG ctgPar, CNO cnoPar, long ikid, KID *pkid);\n\t\tGets a kid for the ikid'th child of (ctgPar, cnoPar).\n\t\tReturns false if ikid is too big.\n\n\tbool CFL::FGetKidChid(CTG ctgPar, CNO cnoPar, CHID chid, KID *pkid);\n\t\tGets a kid for the first child of (ctgPar, cnoPar) with given chid.\n\n\tbool CFL::FGetKidChidCtg(CTG ctgPar, CNO cnoPar,\n\t\t\tCHID chid, CTG ctg, KID *pkid);\n\t\tGets a kid for the first child of (ctgPar, cnoPar) with given chid\n\t\tand ctg.\n\n\n/****************************************\n\tCGE methods\n****************************************/\n\n\tvoid CGE::Init(PCFL pcfl, CTG ctg, CNO cno);\n\t\tThis initializes an enumeration and must be called before\n\t\tGrfcgeNextKid is called.  The enumeration is over the given\n\t\tnode and all of its descendents.\n\n\tbool CGE::FNextKid(KID *pkid, CKI *pckiPar,\n\t\t\tulong *pgrfcgeOut, ulong grfcgeIn);\n\t\tFetches the next node in the graph enumeration.  Returns fFalse\n\t\tiff the enumeration is done (there are no more nodes).  Generally,\n\t\tparent nodes are returned twice (once with fcgePre and again\n\t\twith fcgePost).  Nodes without children are returned only once\n\t\t(with both fcgePre and fcgePost set).  The new node is put in\n\t\t*pkid, and the node's parent (if the node is not the root of the\n\t\tenumeration) is put in *pckiPar.  pckiPar may be nil.\n\n\t\tIf fcgeSkipToSib is passed in (in the grfcgeIn parameter), skips all\n\t\tchildren and the upward touch of the last node returned.\n\n\t\tThe value of *pgrfcge on return can contain any combination of:\n\t\tfcgePre, fcgePost, fcgeError, fcgeRoot.  These have the following\n\t\tmeanings:\n\n\t\t\tfcgePre:  haven't traversed the node's children yet\n\t\t\tfcgePost:  have already traversed the children (or there aren't\n\t\t\t\tany children)\n\t\t\tfcgeError:  a memory error occurred; may be set in conjunction\n\t\t\t\twith other flags\n\t\t\tfcgeRoot:  *pkid is valid (except the chid value); *pckiPar is\n\t\t\t\tinvalid; the node is the root of the enumeration\n\n"
  },
  {
    "path": "kauai/doc/file.txt",
    "content": "/***************************************************************************\n\n\tAPI doc for low level file management.  See chunk.txt for chunky file\n\tmanagement.\n\n***************************************************************************/\n\n\n/****************************************\n\tClasses and types\n****************************************/\n\n\n\tclass FIL;\n\ttypedef class FIL *PFIL;\n\t\tLow level file class.\n\n\tclass FLO;\n\t\tFile location class.  Has fields for a pfil, fp and cb.\n\t\tLegal as auto.\n\n\ttypedef long FP;\n\t\tA file position (index into a file).\n\n\n/****************************************\n\tOther hungarian\n****************************************/\n\n\tshort bo;\n\t\tIndicates byte order.\n\n\tshort osk;\n\t\tIndicates an operating system.  Typically used to determine\n\t\thow to translate strings (from one character set to another).\n\t\tSee TranslateStz and its cousins in utilstr.  These have the\n\t\tsame value in either byte order.  Ie, their high and low bytes\n\t\tare the same.\n\n\tshort el;\n\t\tError level.  These, in order of severity, include elNil, kelWrite,\n\t\tkelRead, kelSeek, kelCritical.\n\n\tushort grffil;\n\t\tA group of flags indicating file options.\n\n\n/****************************************\n\tConstants\n****************************************/\n\n\tshort kboCur;\t\t// byte order same as current machine\n\tshort kboOther;\t\t// byte order opposite from current machine\n\n\tshort koskCur;\t\t// current machine\n\tshort koskMac;\t\t// Mac OS\n\tshort koskWin;\t\t// Win OS\n\n\tushort ffilNil;\t\t\t// default options\n\tushort ffilWriteEnable;\t// open with write permissions\n\tushort ffilTemp;\t\t// make it a temp file\n\tushort ffilMark;\t\t// mark the file (see below)\n\n\n/****************************************\n\tConcepts\n****************************************/\n\nFiles have both a mark flag and an open count.  If you open a file that\nis already open, the open count of the file is incremented.  Calling\npfil->Close() decrements the open count.  A pfil is only freed when\nboth the open count is zero and the mark flag is clear.  To set the\nmark flag, specify ffilMark when opening or creating the file, or call\npfil->Mark().\n\nTo use Quill-style Mark-and-Free, open the file with ffilMark specified\nand call pfil->Close().  At cleanup time, client code should call\nFIL::ClearMarks() to clear all the mark flags, then enumerate files\nstill needed and call Mark() on them, then call FIL::CloseUnmarked().\nFiles that were marked or have non-zero open count will not be closed\nby FIL::CloseUnmarked().\n\nFor a file used locally, open the file normally.  When you are done with\nit, call close.  There is no need to monkey with the marking stuff if\nyou just need to do a quick file access.\n\n\nFiles have a delayed error handling mechanism.  If you have several\nfile accesses to make, you can generally do them all without checking\nfor errors.  If an error occurs, future file accesses will short circuit.\nAt the end of a section of several accesses, you should call ElError() to\ncheck for an error.\n\n\n/****************************************\n\tFIL static methods\n****************************************/\n\n\tPFIL FIL::PfilFirst(void);\n\t\tThe first pfil (they form a linked list).\n\n\tPFIL FIL::PfilFromFni(FNI *pfni);\n\t\tIf the file indicated by *pfni is open, this returns a pointer\n\t\tto the FIL.  Otherwise it returns pNil.\n\n\tPFIL FIL::PfilOpen(FNI *pfni, ushort grffil);\n\t\tOpens the indicated file with the indicated options.  Read-only is\n\t\tthe default.  To allow writing to a file, use ffilWriteEnable.\n\t\tIf the file is already open, this ensures that the read/write\n\t\tpermissions are high enough and increments the open count.  This\n\t\tcall should be balanced with a call to pfil->Close().  Specifying\n\t\tffilMark causes the file to be marked.  ffilTemp is illegal.\n\n\tPFIL FIL::PfilCreate(FNI *pfni, ushort grffil);\n\t\tCreates and opens the indicated file (asserts that it isn't\n\t\talready open) and sets the open count to 1.  Assumes\n\t\tffilWriteEnable.  ffilMark is legal.  Use ffilTemp to create a temp\n\t\tfile, which will be automatically deleted when it is closed.\n\n\tvoid FIL::ClearMarks(void);\n\t\tClears the mark flag on all files.  See discussion under concepts.\n\n\tvoid FIL::CloseUnmarked(void);\n\t\tCloses all files that are not marked and have zero open count.\n\t\tSee discussion under concepts.\n\n\n/****************************************\n\tFIL methods\n****************************************/\n\n\tPFIL FIL::Next(void);\n\t\tReturns the next file (in the linked list).\n\n\tvoid FIL::Open(void);\n\t\tIncrement the open count, nothing more.\n\n\tvoid FIL::Close(void);\n\t\tDecrements the open count.  If the file is not marked and the\n\t\topen count becomes zero, the file is closed.\n\n\tvoid FIL::Mark(void);\n\t\tSets the mark flag.\n\n\tshort FIL::ElError(void);\n\t\tReturns the error level of the file.  elNil means no error.\n\n\tvoid FIL::SetTemp(bool f);\n\t\tSet or clear the temp flag.  Temp files are automatically deleted\n\t\twhen closed.\n\n\tbool FIL::FTemp(void);\n\t\tReturns the temp flag.\n\n\tvoid FIL::GetFni(FNI *pfni);\n\t\tGets the file name.\n\n\tvoid FIL::SetFpPos(FP fp);\n\t\tSets the file position.\n\n\tFP FIL::FpPos(void);\n\t\tReturns the current file position.  If there has been a seek error\n\t\t(or higher level error), returns 0.\n\n\tbool FIL::FSetFpMac(FP fp);\n\t\tSets the end of file.  Files can not be shrunk using this.  This\n\t\tasserts that the passed fp is greater than the current end of file.\n\n\tFP FIL::FpMac(void);\n\t\tReturns the length of the file.  If there has been a seek error\n\t\t(or higher level error), returns 0.\n\n\tbool FIL::FReadRgb(void *pv, long cb);\n\t\tReads cb bytes from the current file position.  Advances the file\n\t\tposition.  Asserts if you read past the end of file.\n\n\tbool FIL::FWriteRgb(void *pv, long cb);\n\t\tWrites cb bytes to the current file position.  Advances the file\n\t\tposition (and eof if its reached).\n\n\tbool FIL::FSwapNames(PFIL pfil);\n\t\tRenames the files to swap names.  Typically used during a safe save.\n\t\tThe files should live in the same directory.\n\n\tbool FIL::FRename(FNI *pfni);\n\t\tRenames the file.  The fni should be in the same directory as the\n\t\tfile.\n\n\n/****************************************\n\tFLO methods\n****************************************/\n\nFLO is an auto class: new is illegal; auto, member and global declarations\nare legal.\n\n\tbool FLO::FRead(void *pv);\n\t\tRead data from the flo into pv.\n\n\tbool FLO::FWrite(void *pv);\n\t\tWrite data from pv to the file.\n\n\tbool FLO::FReadRgb(void *pv, long cb, FP dfp);\n\t\tRead cb bytes of data from dfp into the flo into pv.  Asserts the\n\t\trange is totally contained within the flo.\n\n\tbool FLO::FWriteRgb(void *pv, long cb, FP dfp);\n\t\tWrite cb bytes of data from pv to dfp into the flo.  Asserts the\n\t\trange is totally contained within the flo.\n\n\tbool FLO::FCopy(FLO *pfloDest);\n\t\tCopy data from one flo to the other.  Asserts the cb's are\n\t\tequal.\n\n\n"
  },
  {
    "path": "kauai/doc/glossary.txt",
    "content": "chdoc.h\t\tdoc - chunky document\nchdoc.h\t\tdoce - chunky editing document\nchdoc.h\t\tdoch - hex editor document\nchdoc.h\t\tdocg - group editor document\nchdoc.h\t\tdoci - item hex editor document\nchdoc.h\t\tdocpic - picture display document\nchdoc.h\t\tdclb - line-based document\nchdoc.h\t\tsel - selection\nchdoc.h\t\tdcd - display for chunky document - displays a DOC\nchdoc.h\t\tdch - display chunk in hex - displays a BSF\nchdoc.h\t\tdcgb - display for group chunk\nchdoc.h\t\tdcgl - display for GL or AL chunk\nchdoc.h\t\tdcgg - display for GG or AG chunk\nchdoc.h\t\tdcst - display for GST or AST chunk\nchdoc.h\t\tdcpic - display for picture chunk\nchdoc.h\t\ttscg - test script chunk gob\ndocb.h\t\tdocb - base class for documents (doc)\ndocb.h\t\tdte - document tree enumerator\ndocb.h\t\tddg - document display gob\ndocb.h\t\tdmd - document mdi window\ndocb.h\t\tdmw - document main window\ndocb.h\t\tdsg - document scroll gob\ndocb.h\t\tdssp - document scroll window splitter\ndocb.h\t\tdssm - document scroll split mover\nstream.h\tbsm - byte stream in memory (entire stream is in memory)\nstream.h\tbsf - byte stream on file (parts of the stream may be in files)\ncache.h\t\tsmep - swappable map entry priority\ncache.h\t\tsmec - swappable map error code\ncache.h\t\tsml - swappable map of GL\ncache.h\t\tsmg - swappable map of GG\ncache.h\t\tsmlhq - cache of HQs\ncache.h\t\tsmlpo - cache of POs\n"
  },
  {
    "path": "kauai/doc/groups.txt",
    "content": "/***************************************************************************\n\n\tCollection classes:  General List (GL), Allocated List (AL),\n\tGeneral Group (GG),  Allocated Group (AG),\n\tGeneral String Table (GST), Allocated String Table (AST).\n\n***************************************************************************/\n\n\n/****************************************\n\tTypes\n****************************************/\n\n\tclass GL;\n\ttypedef class GL *PGL;\n\t\tA general purpose dynamically allocated array class.  Data\n\t\telements must be all the same size.  Clients may assume the\n\t\tdata elements are contiguous.  I.e., if you have a pointer to\n\t\tthe iv'th element, incrementing the pointer will give you a pointer\n\t\tto the (iv+1)th element.\n\n\tclass AL;\n\ttypedef class AL *PAL;\n\t\tA list where indices don't change when items are added\n\t\tor deleted.  Clients may assume data elements are contiguous.\n\t\tNote, however, that an element may be free.  Call FFree to\n\t\tdetermine if a particular item is free.\n\n\tclass GG;\n\ttypedef class GG *PGG;\n\t\tA group: a collection of data objects of possibly different\n\t\tsizes.  If all your elements are the same size, use a GL.\n\n\tclass AG;\n\ttypedef class AG *PAG;\n\t\tA group where indices don't change when items are added or\n\t\tdeleted.  Entries can be free.  Call FFree to determine\n\t\tif an entry is free.\n\n\tclass GST;\n\ttypedef class GST *PGST;\n\t\tA string table.  Can also store a fixed size piece of \"extra\"\n\t\tdata for each string.\n\n\tclass AST;\n\ttypedef class AST *PAST;\n\t\tAn allocated string table.  Like a string table, but indices\n\t\tdon't change when strings are added or deleted.  Entries\n\t\tcan be free.  Call FFree to determine if an entry is free.\n\n\n/****************************************\n\tConstants\n****************************************/\n\n\tfgrpNil - default options\n\tfgrpShrink - shrink space allocated if its more than needed\n\n\n/****************************************\n\tCommon methods\n****************************************/\n\n\tPGL   GL::PglNew(long cb, long cvInit = 0);\n\tPAL   AL::PalNew(long cb, long cvInit = 0);\n\tPGG   GG::PggNew(long cvInit = 0, long cbInit = 0);\n\tPAG   AG::PagNew(long cvInit = 0, long cbInit = 0);\n\tPGST GST::PgstNew(long cbExtra, long cstzInit = 0, long cchInit = 0);\n\tPAST AST::PastNew(long cbExtra, long cstzInit = 0, long cchInit = 0);\n\t\tThese are static methods (not invoked from an object) that\n\t\tallocate a new object of the appropriate class.  For GL and\n\t\tAL classes, cb is the size of the elements and cvInit is the\n\t\tnumber of elements to reserve space for.  For GST and AST, cbExtra\n\t\tis the amount of extra data associated with each string.  For\n\t\tGG, AG, GST and AST, cvInit/cstzInit are how many entries to make room\n\t\tfor and cbInit/cchInit are the total number of bytes to allow for\n\t\tthese entries.  These values are as in FEnsureSpace.\n\n\tPGL   GL::PglRead(PFIL pfil, FP fp, long cb, short *pbo, short *posk);\n\tPAL   AL::PalRead(PFIL pfil, FP fp, long cb, short *pbo, short *posk);\n\tPGG   GG::PggRead(PFIL pfil, FP fp, long cb, short *pbo, short *posk);\n\tPAG   AG::PagRead(PFIL pfil, FP fp, long cb, short *pbo, short *posk);\n\tPGST GST::PgstRead(PFIL pfil, FP fp, long cb, short *pbo, short *posk);\n\tPAST AST::PastRead(PFIL pfil, FP fp, long cb, short *pbo, short *posk);\n\t\tStatic methods to read an object from disk.  pbo and posk may be\n\t\tnil.  *pbo is set to the byte order of the object and *posk is\n\t\tset to the osk (Operating System Kind) that wrote the object.\n\t\tUse *pbo to do byte swapping after reading and *posk to do string\n\t\ttranslation after reading.\n\n\tbool  GL::FWrite(PFIL pfil, FP fp, long *pcb = pvNil,\n\t\t\tshort bo = kboCur, short osk = koskCur);\n\tbool  AL::FWrite(PFIL pfil, FP fp, long *pcb = pvNil,\n\t\t\tshort bo = kboCur, short osk = koskCur);\n\tbool  GG::FWrite(PFIL pfil, FP fp, long *pcb = pvNil,\n\t\t\tshort bo = kboCur, short osk = koskCur);\n\tbool  AG::FWrite(PFIL pfil, FP fp, long *pcb = pvNil,\n\t\t\tshort bo = kboCur, short osk = koskCur);\n\tbool GST::FWrite(PFIL pfil, FP fp, long *pcb = pvNil,\n\t\t\tshort bo = kboCur, short osk = koskCur);\n\tbool AST::FWrite(PFIL pfil, FP fp, long *pcb = pvNil,\n\t\t\tshort bo = kboCur, short osk = koskCur);\n\t\tWrite the object to disk.  If pcb is not nil, sets *pcb to the\n\t\tamount of space used.  If bo and osk are specified as something\n\t\tdifferent from kboCur and koskCur, these will adjust the byte\n\t\torder and/or osk before writing the data.  Obviously, client\n\t\tmanaged data is not adjusted.  REVIEW shonk: should strings\n\t\tin an GST/AST be handled automatically.\n\n\tlong  GL::CbOnFile(void);\n\tlong  AL::CbOnFile(void);\n\tlong  GG::CbOnFile(void);\n\tlong  AG::CbOnFile(void);\n\tlong GST::CbOnFile(void);\n\tlong AST::CbOnFile(void);\n\t\tReturns the amount of space required to write the object to\n\t\tdisk.\n\n\tlong  GL::IvMac(void);\n\tlong  AL::IvMac(void);\n\tlong  GG::IvMac(void);\n\tlong  AG::IvMac(void);\n\tlong GST::IstzMac(void);\n\tlong AST::IstzMac(void);\n\t\tReturns the number of active items.  For AL, AG and AST, this\n\t\tis the lim of legal indices, not the number of non-free\n\t\tentries.\n\n\tvoid  GL::Delete(long iv);\n\tvoid  AL::Delete(long iv);\n\tvoid  GG::Delete(long iv);\n\tvoid  AG::Delete(long iv);\n\tvoid GST::Delete(long istz);\n\tvoid AST::Delete(long istz);\n\t\tDeletes the indicated element.  For AL, AG and AST, indices of\n\t\tremaining items don't change (ie, a hole is created).  For the other\n\t\tclasses, items with larger indices \"slide down\" to fill the hole.\n\n\tvoid *GL::QvGet(long iv);\n\tvoid *AL::QvGet(long iv);\n\tvoid *GG::QvGet(long iv);\n\tvoid *AG::QvGet(long iv);\n\t\tReturns a volatile pointer to the element.  For GPs, iv must\n\t\tbe less than IvMac().  For GL and AL, iv must be <= IMac()\n\t\t( == is allowed for convenience; don't access it!).  For AL and AG,\n\t\tthe element may be free (call FFree to check).\n\n\tvoid *GL::PvLock(long iv);\n\tvoid *AL::PvLock(long iv);\n\tvoid *GG::PvLock(long iv);\n\tvoid *AG::PvLock(long iv);\n\t\tLocks the data and returns a pointer to the iv'th element.\n\t\tSame restrictions on iv as for QvGet(iv).\n\n\tvoid GL::Lock(void);\n\tvoid AL::Lock(void);\n\tvoid GG::Lock(void);\n\tvoid AG::Lock(void);\n\t\tLocks the data.\n\n\tvoid GL::Unlock(void);\n\tvoid AL::Unlock(void);\n\tvoid GG::Unlock(void);\n\tvoid AG::Unlock(void);\n\t\tUnlocks the data.  Balances a call to PvLock() or Lock().\n\t\tLocking is nestable.\n\n\tvoid GL::Get(long iv, void *pv);\n\tvoid AL::Get(long iv, void *pv);\n\tvoid GG::Get(long iv, void *pv);\n\tvoid AG::Get(long iv, void *pv);\n\t\tCopies the iv'th item to *pv.  Assumes pv points to a block\n\t\tlarge enough to hold the item.  iv must be less than IvMac().\n\t\tFor GG and AG, GetRgb is more useful.\n\n\tvoid GL::Put(long iv, void *pv);\n\tvoid AL::Put(long iv, void *pv);\n\tvoid GG::Put(long iv, void *pv);\n\tvoid AG::Put(long iv, void *pv);\n\t\tThe opposite of Get(iv, pv).  Copies data from *pv to the iv'th\n\t\telement.  For GG and AG, see FPut and PutRgb.\n\n\tbool GL::FAdd(void *pv, long *piv);\n\tbool AL::FAdd(void *pv, long *piv);\n\tbool GG::FAdd(long cb, void *pv, long *piv);\n\tbool AG::FAdd(long cb, void *pv, long *piv);\n\t\tAdd a new element to the class.  If piv is not nil, *piv is\n\t\tset to the index of the new item.  For GL and GG, the new item\n\t\tis always the last.  For AL and AG, the first free slot is used.\n\n\n/****************************************\n\tList specific methods\n****************************************/\n\n\tlong GL::CbEntry(void);\n\t\tReturns the size of each element of the list (as specified\n\t\tin PglNew or as read from file in PglRead.\n\n\tbool GL::FSetIvMac(long ivMacNew);\n\t\tChanges the number of items active in the list.  Rarely used.\n\n\tbool GL::FEnsureSpace(long cvAdd, short grfgrp);\n\t\tEnsure that there is room for at least cvAdd additional items.\n\t\tTo close up the list, use FEnsureSpace(0, fgrpShrink).\n\n\tbool GL::FInsert(long iv, void *pv);\n\t\tInserts a new item into the list at location iv.  Parameter\n\t\tiv must be less than or equal to IvMac().  Moves later items\n\t\tup to make room.\n\n\tvoid Move(long ivSrc, long ivDst)\n\t\tMoves the element at ivSrc to the ivDst position, shifting\n\t\teverything in between.\n\n\tbool GL::FPush(void *pv);\n\t\tAppends the item to the end of the list.  Equivalent to\n\t\tFAdd(pv, pvNil).\n\n\tbool GL::FPop(void *pv = pvNil);\n\t\tIf the list is empty, returns false (indicating stack underflow).\n\t\tOtherwise, fetches the last item (if pv is not nil), deletes\n\t\tthe item, and returns true.\n\n\tbool GL::FEnqueue(void *pv)\n\t\tEquivalent to FInsert(0, pv).\n\n\tbool GL::FDequeue(void *pv = pvNil);\n\t\tEquivalent to FPop(pv).\n\n\n/****************************************\n\tAllocated List specific methods\n****************************************/\n\n\tlong AL::CbEntry(void);\n\t\tReturns the size of each element of the list (as specified\n\t\tin PalNew or as read from file in PalRead.\n\n\tbool AL::FEnsureSpace(long cvAdd, short grfgrp);\n\t\tEnsure that there is room for at least cvAdd additional items.\n\t\tTo close up the allocated list use FEnsureSpace(0, fgrpShrink).\n\n\tbool AL::FFree(long iv);\n\t\tIndicates whether item iv is free.  (This is fast).  iv should\n\t\tbe less than IvMac().\n\n\n/****************************************\n\tGroup specific methods\n****************************************/\n\n\tbool GG::FEnsureSpace(long cvAdd, long cbAdd, short grfgrp);\n\tbool AG::FEnsureSpace(long cvAdd, long cbAdd, short grfgrp);\n\t\tMake sure there is room for at least cvAdd additional items,\n\t\tusing cbAdd bytes of space.  To close up the group\n\t\tuse FEnsureSpace(0, 0, fgrpShrink).\n\n\tbool GG::FInsert(long iv, long cb, void *pv);\n\t\tInserts an item of size cb into the group.  pv may be nil.\n\n\tbool GG::FPut(long iv, long cb, void *pv);\n\tbool AG::FPut(long iv, long cb, void *pv);\n\t\tReplaces the item with new data of the given length.  pv may\n\t\tbe nil, in which case this effectively resizes the element.\n\n\tlong GG::Cb(long iv);\n\tlong AG::Cb(long iv);\n\t\tReturns the length of the item.\n\n\tvoid GG::GetRgb(long iv, long bv, long cb, void *pv);\n\tvoid AG::GetRgb(long iv, long bv, long cb, void *pv);\n\t\tFetches a section of data from the given element.  bv is the offset\n\t\tof the data into the element, cb is the amount of data to copy\n\t\tand pv is the destination.\n\n\tvoid GG::PutRgb(long iv, long bv, long cb, void *pv);\n\tvoid AG::PutRgb(long iv, long bv, long cb, void *pv);\n\t\tThe inverse of GetRgb.\n\n\tvoid GG::DeleteRgb(long iv, long bv, long cb);\n\tvoid AG::DeleteRgb(long iv, long bv, long cb);\n\t\tDeletes a portion of the given element.  Deletes bytes [bv, bv+cb).\n\n\tbool GG::FInsertRgb(long iv, long bv, long cb, void *pv);\n\tbool AG::FInsertRgb(long iv, long bv, long cb, void *pv);\n\t\tInserts cb new bytes before byte bv of the element.  pv may be nil.\n\n\tbool AG::FFree(long iv);\n\t\tIndicates whether item iv is free.  (This is fast).  iv should\n\t\tbe less than IvMac().\n\n\n/****************************************\n\tString Table specific methods\n****************************************/\n\n\tbool GST::FEnsureSpace(long cstzAdd, long cchAdd, short grfgrp);\n\tbool AST::FEnsureSpace(long cstzAdd, long cchAdd, short grfgrp);\n\t\tMake sure there is room for at least cstzAdd additional strings,\n\t\tusing cchAdd bytes of space.  To close up the string table\n\t\tuse FEnsureSpace(0, 0, fgrpShrink).\n\n\tbool GST::FInsertRgch(long istz, char *prgch, long cch, void *pvExtra);\n\tbool GST::FInsertStz(long istz, char *pstz, void *pvExtra);\n\tbool GST::FInsertSt(long istz, char *pst, void *pvExtra);\n\tbool GST::FInsertSz(long istz, char *psz, void *pvExtra);\n\t\tInsert a new string at location istz.  pvExtra may be nil.\n\n\tbool GST::FAddRgch(char *prgch, long cch, void *pvExtra, long *pistz);\n\tbool GST::FAddStz(char *pstz, void *pvExtra, long *pistz);\n\tbool GST::FAddSt(char *pst, void *pvExtra, long *pistz);\n\tbool GST::FAddSz(char *psz, void *pvExtra, long *pistz);\n\tbool AST::FAddRgch(char *prgch, long cch, void *pvExtra, long *pistz);\n\tbool AST::FAddStz(char *pstz, void *pvExtra, long *pistz);\n\tbool AST::FAddSt(char *pst, void *pvExtra, long *pistz);\n\tbool AST::FAddSz(char *psz, void *pvExtra, long *pistz);\n\t\tAppend a string to the string table.  pistz may be nil.  If not,\n\t\t*pistz is set the index of the new string.  pvExtra may be nil.\n\n\tvoid GST::GetExtra(long istz, void *pv);\n\tvoid AST::GetExtra(long istz, void *pv);\n\t\tFill pv with the extra data for the string.  Asserts that cbExtra\n\t\tis > 0.\n\n\tvoid GST::PutExtra(long istz, void *pv);\n\tvoid AST::PutExtra(long istz, void *pv);\n\t\tSet the extra data for the string.  Asserts that cbExtra is > 0.\n\n\tvoid GST::GetStz(long istz, char *pstz);\n\tvoid GST::GetSt(long istz, char *pst);\n\tvoid GST::GetSz(long istz, char *psz);\n\tvoid AST::GetStz(long istz, char *pstz);\n\tvoid AST::GetSt(long istz, char *pst);\n\tvoid AST::GetSz(long istz, char *psz);\n\t\tGet the istz'th string.  pstz/pst/psz must point to a buffer at least\n\t\tkcbMaxStz/kcbMaxSt/kcbMaxSz bytes long.\n\n\tbool GST::FPutRgch(long istz, char *prgch, long cch);\n\tbool GST::FPutStz(long istz, char *pstz);\n\tbool GST::FPutSt(long istz, char *pst);\n\tbool GST::FPutSz(long istz, char *psz);\n\tbool AST::FPutRgch(long istz, char *prgch, long cch);\n\tbool AST::FPutStz(long istz, char *pstz);\n\tbool AST::FPutSt(long istz, char *pst);\n\tbool AST::FPutSz(long istz, char *psz);\n\t\tReplace the istz'th string.\n\n\tbool GST::FFindStz(char *pstz, long *pistz, ulong grfstb = fstbNil);\n\tbool GST::FFindSt(char *pst, long *pistz, ulong grfstb = fstbNil);\n\tbool GST::FFindSz(char *psz, long *pistz, ulong grfstb = fstbNil);\n\tbool AST::FFindStz(char *pstz, long *pistz, ulong grfstb = fstbNil);\n\tbool AST::FFindSt(char *pst, long *pistz, ulong grfstb = fstbNil);\n\tbool AST::FFindSz(char *psz, long *pistz, ulong grfstb = fstbNil);\n\t\tFinds the given string in the string table.  If fstbSorted is specified,\n\t\tand this is an GST, a binary search is performed.  If the string is\n\t\tnot found, false is returned.  If the string is not found and this is\n\t\tan GST and fstbSorted was specified, *pistz will be filled with where\n\t\tthe string should be inserted to maintain the sorting.  In other cases,\n\t\tif the string is not found, *pistz is filled with IstzMac().\n\n\tbool AST::FFree(long istz);\n\t\tIndicates whether item istz is free.  (This is fast).  istz should\n\t\tbe less than IstzMac().\n\n"
  },
  {
    "path": "kauai/doc/mem.txt",
    "content": "/***************************************************************************\n\n\tMemory Management API doc.\n\n***************************************************************************/\n\n\n/****************************************\n\tTypes\n****************************************/\n\n\tHQ\n\t\tAn opaque handle to a generic memory block.\n\t\tImplementation is private.\n\n\tHN\n\t\tAn operating system handle.  On Mac, these are Handles.\n\t\tOn Win, they are HGLOBAL.\n\n\n/****************************************\n\tConstants\n****************************************/\n\n\tconst byte kbGarbage;\n\t\tNew blocks are filled with this (if they are not zeroed)\n\n\tconst long kcbMax;\n\t\tMaximum size of an HQ.\n\n\tHQ hqNil;\n\tpNil\n\thNil\n\t\tIt is legal to assume these are zero.  Use hqNil to compare\n\t\tagainst an explicit hq, pNil for pointers and hNil for any\n\t\tother abstract handle.\n\n\tfhqNil - default options\n\tfhqClear - zero newly allocated memory\n\n\n/****************************************\n\tRoutines\n****************************************/\n\n\tHQ HqAlloc(long cb, ushort grfhq);\n\t\tAllocates an hq and optionally clears it.\n\n\tvoid FreeHq(HQ hq);\n\t\tFrees an hq.  Accepts hqNil.\n\n\tvoid FreePhq(HQ *phq);\n\t\tCalls FreeHq on *phq and sets *phq to hqNil.\n\n\tlong CbOfHq(HQ hq);\n\t\tReturns the size of the hq.  This is guaranteed to be the\n\t\tsame as the cb passed to HqAlloc (or FResizePhq).\n\n\tHQ HqCopyHq(HQ hq);\n\t\tDuplicates the hq.\n\n\tbool FResizePhq(HQ *phq, long cb, ushort grfhq);\n\t\tResizes *phq.  The value of *phq may change.\n\n\tvoid *PvLockHq(HQ hq);\n\t\tLock the hq and return a pointer to the data.\n\n\tvoid UnlockHq(HQ hq);\n\t\tUnlock the hq.  Must balance a call to PvLockHq or LockHq.\n\n\tvoid *QvFromHq(HQ hq);\n\t\tReturn a volatile pointer to the hq block.\n\n\n/****************************************\n\tGeneric pointer arithmetic\n****************************************/\n\n\tvoid *PvAddBv(void *pv, long bv);\n\t\tAdd an offset to a pointer.\n\n\tvoid *PvSubBv(void *pv, long bv);\n\t\tSubtract an offset from a pointer.\n\n\tlong BvSubPvs(void *pv1, void *pv2)\n\t\tSubtract two pointers to get the number of bytes between them.\n\n\n/****************************************\n\tDebug only API\n****************************************/\n\n\tvoid UnmarkAllHqs(void);\n\t\tClear the marks on all hq's.\n\n\tvoid MarkHq(HQ hq);\n\t\tMarks an hq.\n\n\tvoid AssertUnmarkedHqs(void);\n\t\tAsserts on any unmarked hqs.\n\n\tvoid AssertHq(HQ hq);\n\t\tValidate an hq.  hq should not be nil.\n\n\n"
  },
  {
    "path": "kauai/makefile",
    "content": "#--- $(KAUAI_ROOT)\\makefile.mak\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.def\n\n.SILENT:\n\nALL: ALL_KAUAI_SRC ALL_KAUAI_TOOLS\n\n\nALL_KAUAI_SRC:\n    cd $(KAUAI_ROOT)\\src\n    @echo Making Kauai\\src All...\n    nmake /NOLOGO all\n    cd $(KAUAI_ROOT)\n\n\nALL_KAUAI_TOOLS:\n    cd $(KAUAI_ROOT)\\tools\n    @echo Making Kauai\\tools All...\n    nmake /NOLOGO all\n    cd $(KAUAI_ROOT)\n\n\n\nCLEAN: CLEAN_OBJ_DIR ALL_KAUAI_SRC ALL_KAUAI_TOOLS\n\n\nCLEAN_OBJ_DIR:\n    @echo Cleaning $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\ directory\n    DEL /q $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.obj 2>nul\n    DEL /q $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.pch 2>nul\n    DEL /q $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.pdb 2>nul\n    DEL /q $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.exe 2>nul\n    DEL /q $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.res 2>nul\n    DEL /q $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.cod 2>nul\n    DEL /q $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.map 2>nul\n    DEL /q $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.lib 2>nul\n    DEL /q $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.i   2>nul\n    DEL /q $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.lnk 2>nul\n\n\nCLEAN_KAUAI_SRC:\n    cd $(KAUAI_ROOT)\\src\n    @echo Making Kauai\\src Clean...\n    nmake /NOLOGO clean\n    cd $(KAUAI_ROOT)\n\n\nCLEAN_KAUAI_TOOLS:\n    cd $(KAUAI_ROOT)\\tools\n    @echo Making Kauai\\tools Clean...\n    nmake /NOLOGO clean\n    cd $(KAUAI_ROOT)\n\n\n\n\n\n\n\n\u001a"
  },
  {
    "path": "kauai/makefile.def",
    "content": "#--- makefile.def -- included in Kids Build makefiles\n\n!IFNDEF MAKEFILE_DEF\nMAKEFILE_DEF = 1\n\n#- Map some variables ----------------------------------------------------------\n\n!IF \"$(TYPE)\" == \"DAY\"\nTYPE=DEBUG\nINCREMENTAL=1\n!ELSEIF \"$(TYPE)\" == \"HOME\"\nTYPE=DEBUG\nINCREMENTAL=\n!ELSEIF \"$(TYPE)\" == \"DBSHIP\"\nTYPE=SHIP\nDEBUG_LINK=1\n!ELSEIF \"$(LOCAL_BUILD)\" != \"1\"\nDEBUG_LINK=1\n!ENDIF\n\n#-Tools-------------------------------------------------------------------------\n\nCPP=cl /nologo\n!IF \"$(ARCH)\" == \"MAC\"\nASM=asm68\n!ENDIF\nLINK=link\nMRC=mrc\nRC=rc\nCHOMP=$(KAUAI_ROOT)\\obj\\wins\\chomp.exe\nCHELPDMP=$(KAUAI_ROOT)\\obj\\wins\\chelpdmp.exe\n\n!IF \"$(ARCH)\" == \"MAC\"\n.SUFFIXES : .rsc .rm .asm\n!ELSE\n.SUFFIXES: .cht .chk .scr\n!ENDIF\n\n#-CPPFLAGS----------------------------------------------------------------------\n\n# /YX is \"automate precompiled headers\"\n# /Fp renames the pch file from the default \"msvc.pch\"\n# /W3 provides warning level 3\n# /Gz uses \"stdcall\", the default 32-bit VC++ calling convention.\nDEFS = /D\"$(ARCH)\" /D\"STRICT\"\n!IF \"$(CHIP)\" != \"\"\nDEFS = $(DEFS) /D\"$(CHIP)\"\n!ENDIF\n!IF \"$(UNICODE)\" != \"\"\nDEFS = $(DEFS) /D\"UNICODE\"\n!ENDIF\n\n#CPPFLAGS = /c /YX /Fp\"frame.pch\" /W3 /Gz\n#PLACED PRECOMPILED HEADERS IN PROJ MAKEFILES\nCPPFLAGS = /c /YX /W3 /Gz /Gy\n\nASMFLAGS = -c\n!IF \"$(BROWSE)\" != \"\"\nCPPFLAGS = /Fr $(CPPFLAGS)\n!ENDIF\n\n!IF \"$(ARCH)\" == \"WIN\"\nDEFS = $(DEFS) /D\"WIN32\"\n!ENDIF\n\n!IF \"$(TYPE)\" == \"DEBUG\"\n# /Zi generates debugging info and puts it in the .pdb file\n# /Fd renames the pdb file from the default \"msvc.pdb\"\n# /Og enables global optimization\n# /Ob1 enables inline expansion\nDEFS = $(DEFS) /D\"DEBUG\"\n!IF \"$(ARCH)\" == \"MAC\"\nCPPFLAGS = /Q68m $(CPPFLAGS)\nASMFLAGS = $(ASMFLAGS) -s\n!ENDIF\nCPPFLAGS = /Gf /Ge $(CPPFLAGS)\n!ELSE\n#CPPFLAGS = /Ogityb1 /Gs /Gf $(CPPFLAGS) REVIEW shonk: revert to this\nCPPFLAGS = /Ogityb1 /Gs /Gf $(CPPFLAGS)\n!ENDIF\n\n\n#-LFLAGS---------------------------------------------------------------------------\n\n# Cannot incrementally link and generate mapfile, or optimize references\n\n# REVIEW seanse: remove /DEBUG flag for ship build later in project\nLFLAGS_BASE = /nologo\n!IF \"$(INCREMENTAL)\"==\"\"\nLFLAGS_CONS = $(LFLAGS_BASE) /OPT:REF /map\nLFLAGS_GUI = $(LFLAGS_BASE) /OPT:REF /map\nLFLAGS_LIB = $(LFLAGS_BASE) /OPT:REF\n!ELSE\nLFLAGS_CONS = /INCREMENTAL:YES $(LFLAGS_BASE)\nLFLAGS_GUI = /INCREMENTAL:YES $(LFLAGS_BASE)\nLFLAGS_LIB = $(LFLAGS_BASE)\n!ENDIF\n\n\n!IF \"$(ARCH)\" == \"WIN\"\nLFLAGS_CONS = $(LFLAGS_CONS) /SUBSYSTEM:console kernel32.lib comdlg32.lib\\\n    user32.lib gdi32.lib winmm.lib\nLFLAGS_GUI = $(LFLAGS_GUI) $(LFLAGS_PROF) /SUBSYSTEM:windows,4.0 kernel32.lib\\\n    comdlg32.lib user32.lib gdi32.lib winmm.lib advapi32.lib uuid.lib\n!ENDIF\n!IF \"$(ARCH)\" == \"MAC\"\nLFLAGS_GUI = $(LFLAGS_GUI) /MACHINE:M68K\n!ENDIF\n\n\n#SHIP AND DEBUG USE /DEBUG FLAG\n#!IF \"$(TYPE)\" == \"DEBUG\"\n# /DEBUG incorporates debugging info (/DEBUGTYPE is cv by default)\n#LFLAGS_CONS = /DEBUG $(LFLAGS_CONS)\n#LFLAGS_GUI = /DEBUG $(LFLAGS_GUI)\n#!ENDIF\n\n!IF (\"$(TYPE)\" == \"DEBUG\") || (\"$(DEBUG_LINK)\" == \"1\")\nLFLAGS_CONS = /DEBUG $(LFLAGS_CONS)\nLFLAGS_GUI = /DEBUG $(LFLAGS_GUI)\n!ENDIF   # DEBUG || DEBUG_LINK\n\n.cpp.exe:\n\n#-Build-Macros---------------------------------------------------------------------\n\n\n!IF \"$(ARCH)\" == \"WIN\"\n\n!IF \"$(TYPE)\" == \"DEBUG\"\n\n!IF \"$(UNICODE)\"==\"\"\nBLD_TYPE_DIR = wind\n!ELSE\nBLD_TYPE_DIR = winud\n!ENDIF\n\n!ELSE IF \"$(TYPE)\" == \"SHIP\"\n\n!IF \"$(UNICODE)\"==\"\"\nBLD_TYPE_DIR = wins\n!ELSE\nBLD_TYPE_DIR = winus\n!ENDIF\n\n!ENDIF\n\n!ELSE IF \"$(ARCH)\" == \"MAC\"\n\n!IF \"$(TYPE)\" == \"DEBUG\"\nBLD_TYPE_DIR = macd\n!ELSE IF \"$(TYPE)\" == \"SHIP\"\nBLD_TYPE_DIR = macs\n!ENDIF\n\n!ENDIF\n\n\n\n#AUDIO LIB\n!IF \"$(ARCH)\" == \"WIN\"\n!IF \"$(TYPE)\" == \"DEBUG\"\nAUDIO_LIB = $(KAUAI_ROOT)\\elib\\$(BLD_TYPE_DIR)\\audiod.lib\n!ELSE IF \"$(TYPE)\" == \"SHIP\"\nAUDIO_LIB = $(KAUAI_ROOT)\\elib\\$(BLD_TYPE_DIR)\\audios.lib\n!ENDIF\n!ENDIF\n\n\n#VIDEO FOR WINDOWS LIB\nVFW32_LIB = $(MSVCNT_ROOT)\\lib\\vfw32.lib\n\n#Windows WNet LIB\nWNET_LIB = $(MSVCNT_ROOT)\\lib\\mpr.lib\n\n#KAUAI OBJ DIRECTORIES\nKAUAI_OBJ_ROOT_DIR = $(KAUAI_ROOT)\\obj\nKAUAI_OBJ_DIR = $(KAUAI_OBJ_ROOT_DIR)\\$(BLD_TYPE_DIR)\n\n\n#====================================================================\n#KAUIA OBJ GROUPS\n\n\n\n#BASE_OBJS\n#Base: Base files required for all Kauai based projects\n#Requires: nothing\n\n!IF \"$(ARCH)\" == \"WIN\"\n\nBASE_PLATFORM_SPECIFIC =\\\n    $(KAUAI_OBJ_DIR)\\memwin.obj\n\n!ELSE IF \"$(ARCH)\" == \"MAC\"\n\nBASE_PLATFORM_SPECIFIC =\\\n    $(KAUAI_OBJ_DIR)\\memmac.obj\n\n!IF \"$(CHIP)\" == \"MC_68020\"\n\nBASE_CHIP_SPECIFIC =\\\n    $(KAUAI_OBJ_DIR)\\utilmc.obj\n\n!ENDIF\n\n!ENDIF\n\n\nBASE_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\utilglob.obj\\\n    $(KAUAI_OBJ_DIR)\\util.obj\\\n    $(KAUAI_OBJ_DIR)\\base.obj\\\n    $(KAUAI_OBJ_DIR)\\utilcopy.obj\\\n    $(KAUAI_OBJ_DIR)\\utilerro.obj\\\n    $(KAUAI_OBJ_DIR)\\utilint.obj\\\n    $(KAUAI_OBJ_DIR)\\utilmem.obj\\\n    $(KAUAI_OBJ_DIR)\\utilrnd.obj\\\n    $(KAUAI_OBJ_DIR)\\utilstr.obj\\\n    $(BASE_PLATFORM_SPECIFIC)\\\n    $(BASE_CHIP_SPECIFIC)\n\n\n\n#GROUP_OBJS\n#Group: Collection classes\n#Requires: Base, File, and NoFile\n\nGROUP_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\groups.obj\\\n    $(KAUAI_OBJ_DIR)\\groups2.obj\n\n\n\n#FILE_OBJS\n#File: File and chunky file stuff\n#Requires: Group\n\n!IF \"$(ARCH)\" == \"WIN\"\n\nFILE_PLATFORM_SPECIFIC =\\\n    $(KAUAI_OBJ_DIR)\\filewin.obj\\\n    $(KAUAI_OBJ_DIR)\\fniwin.obj\n\n!ELSE IF \"$(ARCH)\" == \"MAC\"\n\nFILE_PLATFORM_SPECIFIC =\\\n    $(KAUAI_OBJ_DIR)\\filemac.obj\\\n    $(KAUAI_OBJ_DIR)\\fnimac.obj\n\n!ENDIF\n\n\nFILE_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\chunk.obj\\\n    $(KAUAI_OBJ_DIR)\\codec.obj\\\n    $(KAUAI_OBJ_DIR)\\codkauai.obj\\\n    $(KAUAI_OBJ_DIR)\\crf.obj\\\n    $(KAUAI_OBJ_DIR)\\file.obj\\\n    $(FILE_PLATFORM_SPECIFIC)\n\n\n\n#NOFILE_OBJS\n#NoFile: To be implemented in the future\n#Requires: Base\n\n\n\n#STREAM_OBJS\n#Stream: Stream classes\n#Requires: Group\n\nSTREAM_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\stream.obj\n\n\n\n#LEXER_OBJS\n#Lexer: Lexing classes\n#Requires: Stream\n\nLEXER_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\lex.obj\n\n\n\n#SCRCOM_OBJS\n#ScrCom: Script compiler\n#Requires: Lexer\n\nSCRCOM_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\scrcom.obj\n\n\n\n#KIDCOM_OBJS\n#KidCom: Script compiler for kidspace scripts\n#Requires: ScrCom\n\nKIDCOM_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\scrcomg.obj\n\n\n\n#SCREXE_OBJS\n#ScrExe: Script interpreter\n#Requires: Group\n\nSCREXE_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\screxe.obj\n\n\n\n#MBMPIO_OBJS\n#MbmpIO: Masked bitmap IO support\n#Requires: File or NoFile\n\nMBMPIO_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\mbmp.obj\n\n\n\n#CHSE_OBJS\n#Chse: Chunky source emitter\n#Requires: Group\n\nCHSE_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\chse.obj\n\n\n\n#CHCM_OBJS\n#Chcm: Chunky compiler and decompiler classes\n#Requires: Lexer, Chse, MbmpIO, KidCom\n\nCHCM_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\chcm.obj\n\n\n\n#SOUND_OBJS\n#Sound: Sound support\n#Requires: Group\n\nSOUND_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\sndm.obj\\\n    $(KAUAI_OBJ_DIR)\\sndam.obj\\\n    $(KAUAI_OBJ_DIR)\\mididev.obj\\\n    $(KAUAI_OBJ_DIR)\\mididev2.obj\\\n    $(KAUAI_OBJ_DIR)\\midi.obj\n\n\n\n#NOSOUND_OBJS\n#NoSound: Not yet implemented\n#Requires: Base\n\n\n\n#VIDEO_OBJS\n#Video: Video playback and support\n#Requires: GUI\n\nVIDEO_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\video.obj\n\n\n\n#NOVIDEO_OBJS\n#NoVideo: Not yet implemented\n#Requires: GUI\n\n\n\n#SPELL_OBJS\n#SpellChecker\n#Requires: Base, Group\n\nSPELL_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\spell.obj\n\n\n\n#GUI_OBJS\n#Gui: Support for a GUI application\n#Requires: Group, MbmpIO, Sound or NoSound, Video or NoVideo\n\n!IF \"$(ARCH)\" == \"WIN\"\n\nGUI_PLATFORM_SPECIFIC =\\\n    $(KAUAI_OBJ_DIR)\\appbwin.obj\\\n    $(KAUAI_OBJ_DIR)\\gfxwin.obj\\\n    $(KAUAI_OBJ_DIR)\\gobwin.obj\\\n    $(KAUAI_OBJ_DIR)\\menuwin.obj\\\n    $(KAUAI_OBJ_DIR)\\picwin.obj\n\n!ELSE IF \"$(ARCH)\" == \"MAC\"\n\nGUI_PLATFORM_SPECIFIC =\\\n    $(KAUAI_OBJ_DIR)\\appbmac.obj\\\n    $(KAUAI_OBJ_DIR)\\gfxmac.obj\\\n    $(KAUAI_OBJ_DIR)\\gobmac.obj\\\n    $(KAUAI_OBJ_DIR)\\menumac.obj\\\n    $(KAUAI_OBJ_DIR)\\picmac.obj\n\n!ENDIF\n\n\nGUI_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\appb.obj\\\n    $(KAUAI_OBJ_DIR)\\clok.obj\\\n    $(KAUAI_OBJ_DIR)\\cmd.obj\\\n    $(KAUAI_OBJ_DIR)\\cursor.obj\\\n    $(KAUAI_OBJ_DIR)\\gfx.obj\\\n    $(KAUAI_OBJ_DIR)\\gob.obj\\\n    $(KAUAI_OBJ_DIR)\\mbmpgui.obj\\\n    $(KAUAI_OBJ_DIR)\\region.obj\\\n    $(KAUAI_OBJ_DIR)\\pic.obj\\\n    $(GUI_PLATFORM_SPECIFIC)\n\n\n\n#DLG_OBJS\n#Dlg: Dialog support\n#Requires: Gui\n\n!IF \"$(ARCH)\" == \"WIN\"\n\nDLG_PLATFORM_SPECIFIC =\\\n    $(KAUAI_OBJ_DIR)\\dlgwin.obj\\\n\n!ELSE IF \"$(ARCH)\" == \"MAC\"\n\nDLG_PLATFORM_SPECIFIC =\\\n    $(KAUAI_OBJ_DIR)\\dlgmac.obj\\\n\n!ENDIF\n\n\nDLG_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\dlg.obj\\\n    $(DLG_PLATFORM_SPECIFIC)\n\n\n\n\n#CTL_OBJS\n#Ctl: Control support\n#Requires: Gui\n\nCTL_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\ctl.obj\n\n\n\n\n#DOC_OBJS\n#Doc: Base document class support\n#Requires: Ctl\n\nDOC_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\docb.obj\\\n    $(KAUAI_OBJ_DIR)\\clip.obj\n\n\n#RICHTEXT_OBJS\n#RichText: Rich text document support\n#Requires: Doc, Stream\n\nRICHTEXT_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\rtxt.obj\\\n    $(KAUAI_OBJ_DIR)\\rtxt2.obj\n\n\n\n\n#TEXTEDIT_OBJS\n#TextEdit: Edit controls\n#Requires: Gui, Stream\n\nTEXTEDIT_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\text.obj\n\n\n\n\n#PLAINTEXT_OBJS\n#PlainText: Plain line based text document\n#Requires: Doc, Stream\n\nPLAINTEXT_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\textdoc.obj\n\n\n\n\n#KID_OBJS\n#Kid: Kidspace and help balloon stuff\n#Requires: Gui, ScrExe\n\nKID_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\kidworld.obj\\\n    $(KAUAI_OBJ_DIR)\\kidhelp.obj\\\n    $(KAUAI_OBJ_DIR)\\kidspace.obj\\\n    $(KAUAI_OBJ_DIR)\\screxeg.obj\n\n\n\n\n#KAUAITEST_OBJS\n#KauiaTest: Kauai test app stuff\n#Requires: Gui, File\n\nKAUAITEST_OBJS =\\\n\t$(KAUAI_OBJ_DIR)\\ft.obj\\\n\t$(KAUAI_OBJ_DIR)\\test.obj\n\n\n\n\n#CHED_OBJS\n#Ched: Chunky editor\n#Requires: Gui, Kid, KidCom, PlainText, Doc, Chcm\n\nCHED_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\chdoc.obj\\\n    $(KAUAI_OBJ_DIR)\\ched.obj\\\n    $(KAUAI_OBJ_DIR)\\chgrp.obj\\\n    $(KAUAI_OBJ_DIR)\\chhex.obj\\\n    $(KAUAI_OBJ_DIR)\\chmbmp.obj\\\n    $(KAUAI_OBJ_DIR)\\chpic.obj\\\n    $(KAUAI_OBJ_DIR)\\chtxt.obj\n\n\n\n#CHELP_OBJS\n#Chelp: Chunky help editor\n#Requires: Gui, Kid, RichText\n\nCHELP_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\chelp.obj\\\n    $(KAUAI_OBJ_DIR)\\chtop.obj\\\n    $(KAUAI_OBJ_DIR)\\chelpexp.obj\n\n\n#CHOMP_OBJS\n#Chomp: Chunky compiler\n#Requires: File, Group, Chcm\n\nCHOMP_OBJS =\\\n    $(KAUAI_OBJ_DIR)\\chomp.obj\\\n    $(KAUAI_OBJ_DIR)\\mssio.obj\n\n!ENDIF  # !MAKEFILE_DEF\n"
  },
  {
    "path": "kauai/makefile.kmk",
    "content": "# makefile.kmk\n#\n# This is the makefile used by kmake.bat.  It knows how to build everything\n# in Kauai\n\nLOCAL_BUILD=1\n\n# Included files should append targets as follows:\n#   *** Any target that should be executed for a clean should be appended\n#     to \"CLEAN_TARGETS_ROOT\"\n#   *** Any target that should be built by default should be appended to\n#     \"ALL_TARGETS_ROOT\".  Note that there *will* be targets defined which\n#     should not be appended to this, because they are only interesting\n#     when used as dependents to something else.\n\nCLEAN_TARGETS_ROOT=\nALL_TARGETS_ROOT=\n\n#############################################################################\n## Process ERRLVL                                                          ##\n#############################################################################\n\n# CHKERR is used in any build rule that should cause the build to stop\n!IF \"$(ERRLVL)\" == \"FATAL\"\nCHKERR=@@if errorlevel 1 goto error\n!ELSE\nCHKERR=@@if errorlevel 1 (echo Removing goodmake.log & rm goodmake.log)\n!ENDIF\n\n# CHKERRW is used in any build rule that should report an error, but should\n# never cause the build to stop, even if ERRLVL == FATAL\nCHKERRW=@@if errorlevel 1 (echo Removing goodmake.log & rm goodmake.log)\n\n.SUFFIXES: .cpp .asm .c .obj .rc .cht\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.def\n\n!INCLUDE $(KAUAI_ROOT)\\src\\makefile\n\n!INCLUDE $(KAUAI_ROOT)\\tools\\makefile\n\n# NOTE: unlike the other \"CLEAN\" targets, this does not actually do a build.\n# This is intentional (BY DESIGN).\nCLEAN:\n    -del $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.obj 2> nul\n    -del $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.pch 2> nul\n    -del $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.pdb 2> nul\n    -del $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.exe 2> nul\n    -del $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.res 2> nul\n    -del $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.chk 2> nul\n    -del $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.cht 2> nul\n    -del $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.cod 2> nul\n    -del $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.map 2> nul\n    -del $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.thd 2> nul\n    -del $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.lib 2> nul\n    -del $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.lnk 2> nul\n    -del $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.ilk 2> nul\n    -del $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.i   2> nul\n\nCLEAN_BY_FILE: $(CLEAN_TARGETS_ROOT)\n    @echo on\n\n\nALL: $(ALL_TARGETS_ROOT)\n"
  },
  {
    "path": "kauai/makefile.rul",
    "content": "# Use this file to automatically declare rules for a group of targets.\n# Set the \"SRC_DIR\" variable to the appropriate directory, set OBJ_DIR\n# to the appropriate target directory and then include this file.\n\n# If the \"LOCAL_BUILD\" variable is defined and set to \"1\", this indicates that\n# we're already cd'd to the target directory.  This allows nmake to use a much\n# simpler set of make rules.\n\n#-Compile rules-------------------------------------------------------------\n\n\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\n!IF \"$(LOCAL_BUILD)\" != \"0\"\n\n{$(SRC_DIR)}.cpp.obj:\n    @nmake /NOLOGO $(OBJ_DIR)\\%|fF.obj\n\n{$(SRC_DIR)}.cpp.exe:\n    @nmake /NOLOGO $(OBJ_DIR)\\%|fF.exe\n\n{$(SRC_DIR)}.asm.obj:\n    @nmake /NOLOGO $(OBJ_DIR)\\%|fF.obj\n\n{$(SRC_DIR)}.rc.res:\n    @nmake /NOLOGO $(OBJ_DIR)\\%|fF.res\n\n{$(SRC_DIR)}.cht.chk:\n    @nmake /NOLOGO $(OBJ_DIR)\\%|fF.chk\n\n{$(SRC_DIR)}.cpp.i:\n    @nmake /NOLOGO $(OBJ_DIR)\\%|fF.i\n\n{$(SRC_DIR)}.cpp.cod:\n    @nmake /NOLOGO $(OBJ_DIR)\\%|fF.cod\n\n!ENDIF # LOCAL_BUILD != 0\n\n\n{$(SRC_DIR)}.cpp{$(OBJ_DIR)}.obj:\n    !@echo Compiling $(TGT_NAME) Src... $<\n    $(CPP) $(CPPFLAGS) /Zi /Fd$(KAUAI_OBJ_DIR)\\kauai.pdb /Fp$(KAUAI_OBJ_DIR)\\kauai.pch /Fo$@ $(DEFS) $<\n    $(CHKERR)\n\n\n{$(SRC_DIR)}.c{$(OBJ_DIR)}.obj:\n    !@echo Compiling $(TGT_NAME) Src... $<\n    $(CPP) $(CPPFLAGS) /Zi /Fd$(KAUAI_OBJ_DIR)\\kauai.pdb /Fp$(KAUAI_OBJ_DIR)\\kauai.pch /Fo$@ $(DEFS) $<\n    $(CHKERR)\n\n\n{$(SRC_DIR)}.asm{$(OBJ_DIR)}.obj:\n    !@echo Compiling $(TGT_NAME) Assembly Src... $<\n    $(ASM) $(ASMFLAGS) /Fo$@ $(DEFS) $<\n    $(CHKERR)\n\n\n{$(SRC_DIR)}.rc{$(OBJ_DIR)}.res:\n    !@echo Compiling $(TGT_NAME) Resource... $<\n    $(RC) $(DEFS) /Fo$*.res $<\n    $(CHKERR)\n\n\n{$(SRC_DIR)}.cht{$(OBJ_DIR)}.chk:\n    cl /E -I%|pF $(DEFS) /Tp$< > $(OBJ_DIR)\\$(@B).i\n    $(CHOMP) $(OBJ_DIR)\\$(@B).i $*.chk\n    $(CHKERR)\n\n\n{$(SRC_DIR)}.cpp{$(OBJ_DIR)}.i:\n    !@echo Compiling $(TGT_NAME) Src... $<\n    $(CPP) /E $(DEFS) $< > $*.i\n    $(CHKERR)\n\n\n{$(SRC_DIR)}.cpp{$(OBJ_DIR)}.cod:\n    !@echo Compiling $(TGT_NAME) Src... $<\n    $(CPP) /FAcs $(CPPFLAGS) /Zi /Fd$(KAUAI_OBJ_DIR)\\kauai.pdb /Fp$(KAUAI_OBJ_DIR)\\kauai.pch $(DEFS) /Fa$*.cod  $<\n    $(CHKERR)\n\n\n!ELSE   # !LOCAL_BUILD\n\n\n{$(SRC_DIR)}.cpp.obj:\n    $(CPP) $(CPPFLAGS) /Zi /Fdkauai.pdb /Fpkauai.pch $(DEFS) $<\n    $(CHKERR)\n\n{$(SRC_DIR)}.c.obj:\n    $(CPP) $(CPPFLAGS) /Zi /Fdkauai.pdb /Fpkauai.pch $(DEFS) $<\n    $(CHKERR)\n\n{$(SRC_DIR)}.asm.obj:\n   $(ASM) $(ASMFLAGS) /Fo$@ $(DEFS) $<\n\n{$(SRC_DIR)}.rc.res:\n    $(RC) $(DEFS) /Fo$*.res $<\n    $(CHKERR)\n\n{$(SRC_DIR)}.cht.chk:\n    cl /P -I%|pF $(DEFS) /Tp$<\n    $(CHOMP) $(@B).i $*.chk\n    $(CHKERR)\n\n{$(SRC_DIR)}.cpp.i:\n    $(CPP) /P $(DEFS) $<\n    $(CHKERR)\n\n{$(SRC_DIR)}.cpp.cod:\n    $(CPP) /FAcs $(CPPFLAGS) /Zi /Fdkauai.pdb /Fpkauai.pch $(DEFS) /Fa%|fF.cod  $<\n    $(CHKERR)\n\n\n!ENDIF  # LOCAL_BUILD\n"
  },
  {
    "path": "kauai/src/appb.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Common base application class methods.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nPAPPB vpappb;\nPCEX vpcex;\nPSNDM vpsndm;\n\n// basic commands common to most apps\nBEGIN_CMD_MAP(APPB, CMH)\nON_CID_GEN(cidQuit, &APPB::FCmdQuit, pvNil)\nON_CID_GEN(cidShowClipboard, &APPB::FCmdShowClipboard, &APPB::FEnableAppCmd)\nON_CID_GEN(cidChooseWnd, &APPB::FCmdChooseWnd, &APPB::FEnableAppCmd)\n#ifdef MAC\nON_CID_GEN(cidOpenDA, &APPB::FCmdOpenDA, pvNil)\n#endif // MAC\nON_CID_GEN(cidIdle, &APPB::FCmdIdle, pvNil)\nON_CID_GEN(cidEndModal, &APPB::FCmdEndModal, pvNil)\nEND_CMD_MAP_NIL()\n\nRTCLASS(APPB)\n\n/***************************************************************************\n    Constructor for the app class.  Assumes that the block is initially\n    zeroed.  This implies that the block has to either be allocated\n    (using NewObj) or a global.\n***************************************************************************/\nAPPB::APPB(void) : CMH(khidApp)\n{\n    AssertBaseThis(0);\n\n    vpappb = this;\n    Debug(_fCheckForLostMem = fTrue;) _onnDefFixed = _onnDefVariable = onnNil;\n\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for the app.  Assumes we don't have to free anything.\n***************************************************************************/\nAPPB::~APPB(void)\n{\n    vpappb = pvNil;\n}\n\n/***************************************************************************\n    Calls _FInit and if successful, calls _Loop then _CleanUp.\n***************************************************************************/\nvoid APPB::Run(ulong grfapp, ulong grfgob, long ginDef)\n{\n    AssertThis(0);\n\n    if (_FInit(grfapp, grfgob, ginDef))\n        _Loop();\n\n    _CleanUp();\n}\n\n/***************************************************************************\n    Quit routine.  May or may not initiate the quit sequence (depending\n    on user input).\n***************************************************************************/\nvoid APPB::Quit(bool fForce)\n{\n    AssertThis(0);\n\n    if (_fQuit || DOCB::FQueryCloseAll(fForce ? fdocForceClose : fdocNil) || fForce)\n    {\n        _fQuit = fTrue;\n    }\n}\n\n/***************************************************************************\n    Return a default app name.\n***************************************************************************/\nvoid APPB::GetStnAppName(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    *pstn = PszLit(\"Generic\");\n}\n\n/***************************************************************************\n    Sets the cursor. Increments the reference count on the cursor. If\n    fLongOp is true, the cursor will get used as the wait cursor, but\n    won't necessarily be displayed immediately.\n***************************************************************************/\nvoid APPB::SetCurs(PCURS pcurs, bool fLongOp)\n{\n    AssertThis(0);\n    AssertNilOrPo(pcurs, 0);\n\n    PCURS *ppcurs = fLongOp ? &_pcursWait : &_pcurs;\n\n    if (*ppcurs == pcurs)\n        return;\n\n    SwapVars(ppcurs, &pcurs);\n    if (pvNil != *ppcurs)\n        (*ppcurs)->AddRef();\n\n    // set the new one before we release the old one.\n    RefreshCurs();\n    ReleasePpo(&pcurs);\n}\n\n/***************************************************************************\n    Set the indicated cursor as the current one.\n***************************************************************************/\nvoid APPB::SetCursCno(PRCA prca, CNO cno, bool fLongOp)\n{\n    AssertThis(0);\n    AssertPo(prca, 0);\n\n    PCURS pcurs;\n\n    if (pvNil == (pcurs = (PCURS)prca->PbacoFetch(kctgCursor, cno, CURS::FReadCurs)))\n    {\n        Warn(\"cursor not found\");\n        return;\n    }\n    SetCurs(pcurs, fLongOp);\n    ReleasePpo(&pcurs);\n}\n\n/***************************************************************************\n    Make sure the current cursor is being used by the system.\n***************************************************************************/\nvoid APPB::RefreshCurs(void)\n{\n    AssertThis(0);\n\n    PCURS *ppcurs = _cactLongOp > 0 ? &_pcursWait : &_pcurs;\n\n    if (pvNil != *ppcurs)\n        (*ppcurs)->Set();\n    else\n    {\n#ifdef WIN\n        SetCursor(LoadCursor(hNil, _cactLongOp > 0 ? IDC_WAIT : IDC_ARROW));\n#endif // WIN\n#ifdef MAC\n        HCURS hcurs;\n\n        if (_cactLongOp > 0 && hNil != (hcurs = GetCursor(watchCursor)))\n            SetCursor(*hcurs);\n        else\n            SetCursor(&qd.arrow);\n#endif // MAC\n    }\n}\n\n/***************************************************************************\n    Starting a long operation, put up the wait cursor.\n***************************************************************************/\nvoid APPB::BeginLongOp(void)\n{\n    AssertThis(0);\n\n    if (_cactLongOp++ == 0)\n        RefreshCurs();\n}\n\n/***************************************************************************\n    Done with a long operation. Decrement the long op count and if it\n    becomes zero, use the normal cursor. If fAll is true, set the\n    long op count to 0.\n***************************************************************************/\nvoid APPB::EndLongOp(bool fAll)\n{\n    AssertThis(0);\n\n    if (_cactLongOp == 0)\n        return;\n\n    if (fAll)\n        _cactLongOp = 0;\n    else\n        _cactLongOp--;\n\n    if (_cactLongOp == 0)\n        RefreshCurs();\n}\n\n/***************************************************************************\n    Get the current cursor/modifier state.  If fAsync is set, the key state\n    returned is the actual current values at the hardware level, ie, not\n    synchronized with the command stream.\n***************************************************************************/\nulong APPB::GrfcustCur(bool fAsync)\n{\n    AssertThis(0);\n\n#ifdef WIN\n\n    auto pfnT = fAsync ? GetAsyncKeyState : GetKeyState;\n    _grfcust &= ~kgrfcustUser;\n    if (pfnT(VK_CONTROL) < 0)\n        _grfcust |= fcustCmd;\n    if (pfnT(VK_SHIFT) < 0)\n        _grfcust |= fcustShift;\n    if (pfnT(VK_MENU) < 0)\n        _grfcust |= fcustOption;\n    if (pfnT(VK_LBUTTON) < 0)\n        _grfcust |= fcustMouse;\n#endif // WIN\n#ifdef MAC\n    Assert(!fAsync, \"Unimplemented code\"); // REVIEW shonk: Mac: implement\n#endif                                     // MAC\n\n    return _grfcust;\n}\n\n/***************************************************************************\n    Modify the current cursor/modifier state.  Doesn't affect the key\n    states or mouse state.\n***************************************************************************/\nvoid APPB::ModifyGrfcust(ulong grfcustOr, ulong grfcustXor)\n{\n    AssertThis(0);\n\n    grfcustOr &= ~kgrfcustUser;\n    grfcustXor &= ~kgrfcustUser;\n\n    _grfcust |= grfcustOr;\n    _grfcust ^= grfcustXor;\n}\n\n/***************************************************************************\n    Hide the cursor\n***************************************************************************/\nvoid APPB::HideCurs(void)\n{\n    AssertThis(0);\n\n    MacWin(HideCursor(), ShowCursor(fFalse));\n}\n\n/***************************************************************************\n    Show the cursor\n***************************************************************************/\nvoid APPB::ShowCurs(void)\n{\n    AssertThis(0);\n\n    MacWin(ShowCursor(), ShowCursor(fTrue));\n}\n\n/***************************************************************************\n    Warp the cursor to (xpScreen, ypScreen)\n***************************************************************************/\nvoid APPB::PositionCurs(long xpScreen, long ypScreen)\n{\n    AssertThis(0);\n\n    // REVIEW shonk: implement on Mac\n    MacWin(RawRtn(), SetCursorPos(xpScreen, ypScreen));\n}\n\n/***************************************************************************\n    Return the default variable pitch font.\n***************************************************************************/\nlong APPB::OnnDefVariable(void)\n{\n    AssertThis(0);\n\n    if (_onnDefVariable == onnNil)\n    {\n        STN stn;\n\n        stn = MacWin(PszLit(\"New York\"), PszLit(\"Times New Roman\"));\n        if (!vntl.FGetOnn(&stn, &_onnDefVariable))\n            _onnDefVariable = vntl.OnnSystem();\n    }\n    return _onnDefVariable;\n}\n\n/***************************************************************************\n    Return the default fixed pitch font.\n***************************************************************************/\nlong APPB::OnnDefFixed(void)\n{\n    AssertThis(0);\n\n    if (_onnDefFixed == onnNil)\n    {\n        STN stn;\n\n        stn = MacWin(PszLit(\"Courier\"), PszLit(\"Courier New\"));\n        if (!vntl.FGetOnn(&stn, &_onnDefFixed))\n        {\n            // just use the first fixed pitch font\n            for (_onnDefFixed = 0;; _onnDefFixed++)\n            {\n                if (_onnDefFixed >= vntl.OnnMac())\n                {\n                    _onnDefFixed = vntl.OnnSystem();\n                    break;\n                }\n                if (vntl.FFixedPitch(_onnDefFixed))\n                    break;\n            }\n        }\n    }\n\n    return _onnDefFixed;\n}\n\n/***************************************************************************\n    Static method to return the default text size.\n    REVIEW shonk: DypTextDef: what's the right way to do this?\n***************************************************************************/\nlong APPB::DypTextDef(void)\n{\n    AssertThis(0);\n\n    return 12;\n}\n\n/***************************************************************************\n    Quit the app (don't force it).\n***************************************************************************/\nbool APPB::FCmdQuit(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    Quit(fFalse);\n    return fTrue;\n}\n\n/***************************************************************************\n    Open a window onto the clipboard, if it exists.\n***************************************************************************/\nbool APPB::FCmdShowClipboard(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    vpclip->Show();\n    return fTrue;\n}\n\n/***************************************************************************\n    Handles an idle command.\n***************************************************************************/\nbool APPB::FCmdIdle(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    static long _cactIdle = 0;\n    PGOB pgob;\n\n    if (_fQuit)\n        return fFalse;\n\n    ++_cactIdle;\n\n#ifdef DEBUG\n    if ((_cactIdle & 0x00FF) == 0 && _fCheckForLostMem && _cactModal <= 0)\n    {\n        UnmarkAllMem();\n        UnmarkAllObjs();\n        MarkMem();     // marks all frame-work memory\n        MarkUtilMem(); // marks all util memory\n        AssertUnmarkedObjs();\n        AssertUnmarkedMem();\n    }\n#endif // DEBUG\n\n    if ((_cactIdle & 0x0F) == 1 && pvNil != (pgob = GOB::PgobScreen()))\n    {\n        // check to see if the mouse moved\n        PT pt;\n        bool fDown;\n        ulong grfcust;\n        CMD_MOUSE cmd;\n\n        pgob->GetPtMouse(&pt, &fDown);\n        if (fDown)\n            return fTrue;\n\n        pgob->MapPt(&pt, cooLocal, cooGlobal);\n        pgob = GOB::PgobFromPtGlobal(pt.xp, pt.yp, &pt);\n        grfcust = GrfcustCur();\n        if (pgob != _pgobMouse || pt.xp != _xpMouse || pt.yp != _ypMouse || _grfcustMouse != grfcust)\n        {\n            if (_pgobMouse != pgob)\n            {\n                _tsMouse = 0;\n                if (pvNil != _pgobMouse)\n                {\n                    AssertPo(_pgobMouse, 0);\n                    vpcex->EnqueueCid(cidRollOff, _pgobMouse);\n                    _TakeDownToolTip();\n                }\n                _tsMouseEnter = TsCurrent();\n                _pgobMouse = pgob;\n            }\n            _xpMouse = pt.xp;\n            _ypMouse = pt.yp;\n            _grfcustMouse = grfcust;\n\n            ClearPb(&cmd, size(cmd));\n            cmd.cid = cidMouseMove;\n            cmd.pcmh = pgob;\n            cmd.xp = pt.xp;\n            cmd.yp = pt.yp;\n            cmd.grfcust = grfcust;\n            vpcex->EnqueueCmd((PCMD)&cmd);\n        }\n\n        // adjust tool tips\n        if (pvNil != _pgobMouse && (_fToolTip || TsCurrent() - _tsMouseEnter > _dtsToolTip))\n        {\n            _EnsureToolTip();\n        }\n    }\n\n    // Flush the sound manager occasionally to free up idle memory\n    if (pvNil != vpsndm && (_cactIdle & 0x003F) == 3)\n        vpsndm->Flush();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Make sure no tool tip is up.\n***************************************************************************/\nvoid APPB::_TakeDownToolTip(void)\n{\n    AssertThis(0);\n    PGOB pgob;\n\n    if (pvNil != (pgob = GOB::PgobFromHidScr(khidToolTip)))\n    {\n        if (pgob == _pgobMouse)\n        {\n            Bug(\"how did a tooltip become _pgobMouse???\");\n            _pgobMouse = pvNil;\n        }\n        ReleasePpo(&pgob);\n        _pgobToolTipTarget = pvNil;\n    }\n}\n\n/***************************************************************************\n    Make sure a tool tip is up, if the current gob wants one.\n***************************************************************************/\nvoid APPB::_EnsureToolTip(void)\n{\n    AssertThis(0);\n    PGOB pgob;\n\n    if (pvNil == _pgobMouse)\n        return;\n\n    if (_pgobToolTipTarget == _pgobMouse)\n        return;\n\n    pgob = GOB::PgobFromHidScr(khidToolTip);\n    _fToolTip = FPure(_pgobMouse->FEnsureToolTip(&pgob, _xpMouse, _ypMouse));\n    if (!_fToolTip)\n    {\n        ReleasePpo(&pgob);\n        _pgobToolTipTarget = pvNil;\n    }\n    else\n        _pgobToolTipTarget = _pgobMouse;\n}\n\n/***************************************************************************\n    Take down any existing tool tip and resest tool tip timing.\n***************************************************************************/\nvoid APPB::ResetToolTip(void)\n{\n    AssertThis(0);\n\n    _TakeDownToolTip();\n    _fToolTip = fFalse;\n    _tsMouseEnter = TsCurrent();\n}\n\n/***************************************************************************\n    Enable app level commands\n***************************************************************************/\nbool APPB::FEnableAppCmd(PCMD pcmd, ulong *pgrfeds)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    AssertVarMem(pgrfeds);\n\n    *pgrfeds = fedsEnable;\n    switch (pcmd->cid)\n    {\n    case cidShowClipboard:\n        if (vpclip->FDocIsClip(pvNil))\n            goto LDisable;\n        break;\n\n    case cidChooseWnd:\n        if ((HWND)pcmd->rglw[0] == GOB::HwndMdiActive())\n            *pgrfeds |= fedsCheck;\n        else\n            *pgrfeds |= fedsUncheck;\n        break;\n\n    default:\n        BugVar(\"unhandled cid in FEnableAppCmd\", &pcmd->cid);\n    LDisable:\n        *pgrfeds = fedsDisable;\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Respond to a cidChooseWnd command.\n***************************************************************************/\nbool APPB::FCmdChooseWnd(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    GOB::MakeHwndActive((HWND)pcmd->rglw[0]);\n    return fTrue;\n}\n\n/***************************************************************************\n    Application initialization.\n***************************************************************************/\nbool APPB::_FInit(ulong grfapp, ulong grfgob, long ginDef)\n{\n    AssertThis(0);\n\n    _fOffscreen = FPure(grfapp & fappOffscreen);\n\n#ifdef DEBUG\n    if (!_FInitDebug())\n        return fFalse;\n#endif\n\n    // initialize the command dispatcher\n    if (pvNil == (vpcex = CEX::PcexNew(20, 20)))\n        return fFalse;\n\n    // add the app as a handler (so it can catch menu commands)\n    if (!vpcex->FAddCmh(vpappb, kcmhlAppb))\n        return fFalse;\n\n    // do OS specific initialization\n    if (!_FInitOS())\n        return fFalse;\n\n    // Initialize the graphics stuff.\n    if (!FInitGfx())\n        return fFalse;\n\n    // set up the menus\n    if (!_FInitMenu())\n        return fFalse;\n\n    // initialize the screen gob\n    if (!GOB::FInitScreen(grfgob, ginDef))\n        return fFalse;\n\n    // initialize sound functionality\n    if (!_FInitSound(kwav22M16))\n        return fFalse;\n\n    // import any external clipboard\n    vpclip->Import();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Initialize the sound manager.  Default is to return true whether or not\n    we could create the sound manager.\n***************************************************************************/\nbool APPB::_FInitSound(long wav)\n{\n    AssertBaseThis(0);\n    PSNDV psndv;\n\n    if (pvNil != vpsndm)\n        return fTrue;\n\n    // create the Sound manager\n    if (pvNil == (vpsndm = SNDM::PsndmNew()))\n        return fTrue;\n\n    if (pvNil != (psndv = SDAM::PsdamNew(wav)))\n    {\n        vpsndm->FAddDevice(kctgWave, psndv);\n        ReleasePpo(&psndv);\n    }\n\n    // create the midi playback device - use the stream one\n    if (pvNil != (psndv = MDPS::PmdpsNew()))\n    {\n        vpsndm->FAddDevice(kctgMidi, psndv);\n        ReleasePpo(&psndv);\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Standard menu initialization.  Just loads menu number 128.\n***************************************************************************/\nbool APPB::_FInitMenu(void)\n{\n    AssertThis(0);\n\n    return MUB::PmubNew(128) != pvNil;\n}\n\n/***************************************************************************\n    Main program loop.\n***************************************************************************/\nvoid APPB::_Loop(void)\n{\n    AssertThis(0);\n\n    EVT evt;\n    Assert(chNil == 0 && vkNil == 0, \"nil key events wrong\");\n\n    while (!_fQuit && (!_fEndModal || _cactModal <= 0))\n    {\n        // do top of the loop stuff\n        TopOfLoop();\n\n        // internal commands have priority\n        if (vpcex->FDispatchNextCmd())\n            continue;\n\n        // handle system events\n        if (_FGetNextEvt(&evt))\n            _DispatchEvt(&evt);\n        else\n        {\n            // nothing to do, so enqueue some idle commands\n            vpcex->EnqueueCid(cidSelIdle, pvNil, pvNil, _fForeground);\n            vpcex->EnqueueCid(cidIdle);\n        }\n    }\n}\n\n#ifdef WIN\nSTDAPI_(int) DetectLeaks(BOOL fDebugOut, BOOL fMessageBox);\n#endif // WIN\n\n/***************************************************************************\n    Clean up routine for the app base class.\n***************************************************************************/\nvoid APPB::_CleanUp(void)\n{\n    AssertThis(0);\n\n    PSNDM psndm;\n\n    if (pvNil != vpsndm)\n    {\n        // do this so if we pop into the debugger, or whatever while releasing\n        // vpsndm, we don't deactivate the sound manager.\n        psndm = vpsndm;\n        vpsndm = pvNil;\n        // deactivate the sndm to release all devices\n        psndm->Activate(fFalse);\n        ReleasePpo(&psndm);\n    }\n\n#ifdef WIN\n#ifdef DEBUG\n    // check for Audioman memory leaks\n    DetectLeaks(fTrue, fFalse);\n#endif // DEBUG\n#endif // WIN\n\n    GOB::ShutDown();\n    FIL::ShutDown();\n#ifdef WIN\n    _ShutDownViewer();\n#endif // WIN\n}\n\n/***************************************************************************\n    Activate or deactivate the application.\n***************************************************************************/\nvoid APPB::_Activate(bool fActive)\n{\n    AssertThis(0);\n\n    if (pvNil != vpsndm)\n        vpsndm->Activate(fActive);\n    _fForeground = FPure(fActive);\n}\n\n/***************************************************************************\n    This gets called every time through the main app loop.\n***************************************************************************/\nvoid APPB::TopOfLoop(void)\n{\n    AssertThis(0);\n\n#ifdef DEBUG\n    if (_fRefresh)\n    {\n        // need to redraw all our windows - we ignored some paint\n        // events while in an assert\n        _fRefresh = fFalse;\n        GTE gte;\n        PGOB pgob;\n        ulong grfgte;\n\n        gte.Init(GOB::PgobScreen(), fgteNil);\n        while (gte.FNextGob(&pgob, &grfgte, fgteNil))\n        {\n            if ((grfgte & fgtePre) && pgob->Hwnd() != hNil)\n                pgob->InvalRc(pvNil);\n        }\n    }\n#endif // DEBUG\n\n    // update any marked stuff\n    UpdateMarked();\n\n    // take down the wait cursor\n    EndLongOp(fTrue);\n}\n\n/***************************************************************************\n    Update the given window.  *prc is the bounding rectangle of the update\n    region.\n***************************************************************************/\nvoid APPB::UpdateHwnd(HWND hwnd, RC *prc, ulong grfapp)\n{\n    AssertThis(0);\n    Assert(hNil != hwnd, \"nil hwnd in UpdateHwnd\");\n    AssertVarMem(prc);\n\n    PGOB pgob;\n    PGPT pgpt = pvNil;\n\n    if (pvNil == (pgob = GOB::PgobFromHwnd(hwnd)))\n        return;\n\n#ifdef DEBUG\n    if (_fInAssert)\n    {\n        // don't do the update, just set _fRefresh so we'll invalidate\n        // everything the next time thru the main loop.\n        _fRefresh = fTrue;\n        return;\n    }\n#endif // DEBUG\n\n    if ((grfapp & fappOffscreen) || (_fOffscreen && !(grfapp & fappOnscreen)))\n    {\n        // do offscreen drawing\n        pgpt = _PgptEnsure(prc);\n    }\n\n    // NOTE: technically we should map from hwnd to local coordinates\n    // but they are the same for an hwnd based gob.\n    pgob->DrawTree(pgpt, pvNil, prc, fgobUseVis);\n\n    if (pvNil != pgpt)\n    {\n        // put the image on the screen\n        GNV gnv(pgob);\n        GNV gnvSrc(pgpt);\n\n        gnv.CopyPixels(&gnvSrc, prc, prc);\n    }\n}\n\n/***************************************************************************\n    Map a handler id to a handler.\n***************************************************************************/\nPCMH APPB::PcmhFromHid(long hid)\n{\n    AssertThis(0);\n    PCMH pcmh;\n\n    switch (hid)\n    {\n    case hidNil:\n        return pvNil;\n\n    case khidApp:\n        return this;\n    }\n\n    if (pvNil != (pcmh = CLOK::PclokFromHid(hid)))\n        return pcmh;\n    return GOB::PgobFromHidScr(hid);\n}\n\n/***************************************************************************\n    The command handler is dying - take it out of any lists it's in.\n***************************************************************************/\nvoid APPB::BuryCmh(PCMH pcmh)\n{\n    AssertThis(0);\n    long imodcx;\n    MODCX modcx;\n\n    // NOTE: don't do an AssertPo(pcmh, 0)!\n    Assert(pvNil != pcmh, 0);\n\n    if (pvNil != vpcex)\n        vpcex->BuryCmh(pcmh);\n\n    if (pvNil != _pglmodcx && 0 < (imodcx = _pglmodcx->IvMac()))\n    {\n        while (imodcx-- > 0)\n        {\n            _pglmodcx->Get(imodcx, &modcx);\n            AssertPo(modcx.pcex, 0);\n            modcx.pcex->BuryCmh(pcmh);\n        }\n    }\n\n    CLOK::BuryCmh(pcmh);\n    if (pcmh == _pgobMouse)\n    {\n        _pgobMouse = pvNil;\n        _TakeDownToolTip();\n    }\n}\n\n/***************************************************************************\n    Mark the rectangle for a fast update.  The rectangle is given in\n    pgobCoo coordinates.  If prc is nil, the entire rectangle for pgobCoo\n    is used.\n***************************************************************************/\nvoid APPB::MarkRc(RC *prc, PGOB pgobCoo)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prc);\n    AssertPo(pgobCoo, 0);\n\n    _MarkRegnRc(pvNil, prc, pgobCoo);\n}\n\n/***************************************************************************\n    Mark a region dirty.\n***************************************************************************/\nvoid APPB::MarkRegn(PREGN pregn, PGOB pgobCoo)\n{\n    AssertThis(0);\n    AssertNilOrPo(pregn, 0);\n    AssertPo(pgobCoo, 0);\n\n    _MarkRegnRc(pregn, pvNil, pgobCoo);\n}\n\n/***************************************************************************\n    Mark the rectangle for a fast update.  The rectangle is given in\n    pgobCoo coordinates.  If prc is nil, the entire rectangle for pgobCoo\n    is used.\n***************************************************************************/\nvoid APPB::_MarkRegnRc(PREGN pregn, RC *prc, PGOB pgobCoo)\n{\n    AssertThis(0);\n    AssertNilOrPo(pregn, 0);\n    AssertNilOrVarMem(prc);\n    AssertPo(pgobCoo, 0);\n\n    MKRGN mkrgn;\n    long imkrgn;\n    RC rc;\n    PT pt;\n    HWND hwnd;\n\n    // get the offset\n    pgobCoo->GetRc(&rc, cooHwnd);\n    pt = rc.PtTopLeft();\n\n    if (pvNil == prc)\n    {\n        if (pvNil == pregn)\n        {\n            // use the full rectangle for the GOB\n            if (rc.FEmpty())\n                return;\n            prc = &rc;\n        }\n        else if (pregn->FEmpty())\n            return;\n    }\n    else\n    {\n        // offset *prc to hwnd coordinates\n        rc.OffsetCopy(prc, pt.xp, pt.yp);\n        if (rc.FEmpty() && (pvNil == pregn || pregn->FEmpty()))\n            return;\n        prc = &rc;\n    }\n\n    // offset the region to hwnd coordinates\n    if (pvNil != pregn)\n        pregn->Offset(pt.xp, pt.yp);\n    hwnd = pgobCoo->HwndContainer();\n\n    if (pvNil == _pglmkrgn)\n    {\n        if (pvNil == (_pglmkrgn = GL::PglNew(size(MKRGN))))\n            goto LFail;\n    }\n    else\n    {\n        for (imkrgn = _pglmkrgn->IvMac(); imkrgn-- > 0;)\n        {\n            _pglmkrgn->Get(imkrgn, &mkrgn);\n            if (mkrgn.hwnd == hwnd)\n            {\n                // already something marked dirty, union in the new stuff\n                if (pvNil != prc && !mkrgn.pregn->FUnionRc(prc))\n                    goto LFail;\n                if (pvNil != pregn && !mkrgn.pregn->FUnion(pregn))\n                    goto LFail;\n                goto LDone;\n            }\n        }\n    }\n\n    // create a new entry\n    mkrgn.hwnd = hwnd;\n    if (pvNil == (mkrgn.pregn = REGN::PregnNew(prc)) || pvNil != pregn && !mkrgn.pregn->FUnion(pregn) ||\n        !_pglmkrgn->FPush(&mkrgn))\n    {\n        ReleasePpo(&mkrgn.pregn);\n    LFail:\n        Warn(\"marking failed\");\n        pgobCoo->InvalRc(pvNil, kginSysInval);\n    }\n\nLDone:\n    // put the region back the way it was\n    if (pvNil != pregn)\n        pregn->Offset(-pt.xp, -pt.yp);\n}\n\n/***************************************************************************\n    Unmark the rectangle for a fast update.  The rectangle is given in\n    pgobCoo coordinates.  If prc is nil, the entire rectangle for pgobCoo\n    is used.\n***************************************************************************/\nvoid APPB::UnmarkRc(RC *prc, PGOB pgobCoo)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prc);\n    AssertPo(pgobCoo, 0);\n\n    _UnmarkRegnRc(pvNil, prc, pgobCoo);\n}\n\n/***************************************************************************\n    Mark a region clean.\n***************************************************************************/\nvoid APPB::UnmarkRegn(PREGN pregn, PGOB pgobCoo)\n{\n    AssertThis(0);\n    AssertNilOrPo(pregn, 0);\n    AssertPo(pgobCoo, 0);\n\n    _UnmarkRegnRc(pregn, pvNil, pgobCoo);\n}\n\n/***************************************************************************\n    Unmark the rectangle for a fast update.  The rectangle is given in\n    pgobCoo coordinates.  If prc is nil, the entire rectangle for pgobCoo\n    is used.\n***************************************************************************/\nvoid APPB::_UnmarkRegnRc(PREGN pregn, RC *prc, PGOB pgobCoo)\n{\n    AssertNilOrPo(pregn, 0);\n    AssertNilOrVarMem(prc);\n    AssertPo(pgobCoo, 0);\n\n    MKRGN mkrgn;\n    long imkrgn;\n    RC rc;\n    PT pt;\n    HWND hwnd;\n\n    if (pvNil == _pglmkrgn || _pglmkrgn->IvMac() == 0)\n        return;\n\n    // get the mkrgn and imkrgn\n    hwnd = pgobCoo->HwndContainer();\n    for (imkrgn = _pglmkrgn->IvMac();;)\n    {\n        if (imkrgn-- <= 0)\n            return;\n        _pglmkrgn->Get(imkrgn, &mkrgn);\n        if (mkrgn.hwnd == hwnd)\n            break;\n    }\n\n    // get the offset\n    pgobCoo->GetRc(&rc, cooHwnd);\n    pt = rc.PtTopLeft();\n\n    if (pvNil == prc)\n    {\n        if (pvNil == pregn)\n        {\n            // use the full rectangle for the GOB\n            if (rc.FEmpty())\n                return;\n            prc = &rc;\n        }\n        else if (pregn->FEmpty())\n            return;\n    }\n    else\n    {\n        // offset *prc to hwnd coordinates\n        rc.OffsetCopy(prc, pt.xp, pt.yp);\n        if (rc.FEmpty() && (pvNil == pregn || pregn->FEmpty()))\n            return;\n        prc = &rc;\n    }\n\n    if (pvNil != pregn)\n    {\n        pregn->Offset(pt.xp, pt.yp);\n        mkrgn.pregn->FDiff(pregn);\n        pregn->Offset(-pt.xp, -pt.yp);\n    }\n    if (pvNil != prc)\n        mkrgn.pregn->FDiffRc(prc);\n\n    if (mkrgn.pregn->FEmpty())\n    {\n        ReleasePpo(&mkrgn.pregn);\n        _pglmkrgn->Delete(imkrgn);\n    }\n}\n\n/***************************************************************************\n    Get the bounding rectangle of any marked portion of the given hwnd.\n***************************************************************************/\nbool APPB::FGetMarkedRc(HWND hwnd, RC *prc)\n{\n    AssertThis(0);\n    Assert(hNil != hwnd, \"bad hwnd\");\n    AssertVarMem(prc);\n\n    MKRGN mkrgn;\n    long imkrgn;\n\n    if (pvNil != _pglmkrgn)\n    {\n        // get the mkrgn and imkrgn\n        for (imkrgn = _pglmkrgn->IvMac(); imkrgn-- > 0;)\n        {\n            _pglmkrgn->Get(imkrgn, &mkrgn);\n            if (mkrgn.hwnd == hwnd)\n                return !mkrgn.pregn->FEmpty(prc);\n        }\n    }\n\n    prc->Zero();\n    return fFalse;\n}\n\n/***************************************************************************\n    If there is a marked region for this HWND, remove it from the list\n    and invalidate it.  This is called when we get a system paint/update\n    event.\n***************************************************************************/\nvoid APPB::InvalMarked(HWND hwnd)\n{\n    AssertThis(0);\n    Assert(hNil != hwnd, \"bad hwnd\");\n\n    long imkrgn;\n    MKRGN mkrgn;\n    RC rc;\n    RCS rcs;\n\n    if (pvNil == _pglmkrgn)\n        return;\n\n    for (imkrgn = _pglmkrgn->IvMac(); imkrgn-- > 0;)\n    {\n        _pglmkrgn->Get(imkrgn, &mkrgn);\n        if (mkrgn.hwnd == hwnd)\n        {\n            if (!mkrgn.pregn->FEmpty(&rc))\n            {\n                rcs = RCS(rc);\n                InvalHwndRcs(hwnd, &rcs);\n            }\n            ReleasePpo(&mkrgn.pregn);\n            _pglmkrgn->Delete(imkrgn);\n        }\n    }\n}\n\n/***************************************************************************\n    Update all marked regions.\n***************************************************************************/\nvoid APPB::UpdateMarked(void)\n{\n    AssertThis(0);\n\n    MKRGN mkrgn;\n    PGOB pgob;\n\n    if (pvNil == _pglmkrgn)\n        return;\n\n    while (_pglmkrgn->FPop(&mkrgn))\n    {\n        if (pvNil != (pgob = GOB::PgobFromHwnd(mkrgn.hwnd)))\n            _FastUpdate(pgob, mkrgn.pregn);\n        ReleasePpo(&mkrgn.pregn);\n    }\n}\n\n/***************************************************************************\n    Do a fast update of the gob and its descendents into the given gpt.\n***************************************************************************/\nvoid APPB::_FastUpdate(PGOB pgob, PREGN pregnClip, ulong grfapp, PGPT pgpt)\n{\n    AssertThis(0);\n    AssertPo(pgob, 0);\n    AssertPo(pregnClip, 0);\n    AssertNilOrPo(pgpt, 0);\n\n    RC rc, rcT;\n    bool fOffscreen;\n\n    if (pregnClip->FEmpty(&rc))\n        return;\n\n    pgob->GetRc(&rcT, cooLocal);\n    if (!rc.FIntersect(&rcT))\n        return;\n\n    fOffscreen = (FPure(grfapp & fappOffscreen) || (_fOffscreen && !(grfapp & fappOnscreen))) && pvNil == pgpt &&\n                 hNil != pgob->Hwnd() && pvNil != (pgpt = _PgptEnsure(&rc));\n\n    pgob->DrawTreeRgn(pgpt, pvNil, pregnClip, fgobUseVis);\n\n    if (fOffscreen)\n    {\n        // copy the stuff to the screen\n        GNV gnvOff(pgpt);\n        GNV gnv(pgob);\n        PGPT pgptDst = pgob->Pgpt();\n\n        pgptDst->ClipToRegn(&pregnClip);\n        _CopyPixels(&gnvOff, &rc, &gnv, &rc);\n        pgptDst->ClipToRegn(&pregnClip);\n        GPT::Flush();\n    }\n}\n\n/***************************************************************************\n    Set the transition to apply the next time we do offscreen fast updating.\n    gft is the transition type.  The meaning of lwGft depends on the\n    transition.  dts is how long each phase of the transition should take.\n    pglclr is the new palette (may be nil).  acr is an intermediary color\n    to transition to.  If acr is clear, no intermediary transition is done.\n\n    If pglclr is not nil, this AddRef's it and holds onto it until after\n    the transition is done.\n***************************************************************************/\nvoid APPB::SetGft(long gft, long lwGft, ulong dts, PGL pglclr, ACR acr)\n{\n    AssertThis(0);\n    AssertNilOrPo(pglclr, 0);\n    AssertPo(&acr, 0);\n\n    _gft = gft;\n    _lwGft = lwGft;\n    _dtsGft = dts;\n    ReleasePpo(&_pglclr);\n    if (pvNil != pglclr)\n    {\n        _pglclr = pglclr;\n        _pglclr->AddRef();\n    }\n    _acr = acr;\n}\n\n/***************************************************************************\n    Copy pixels from an offscreen buffer (pgnvSrc, prcSrc) to the screen\n    (pgnvDst, prcDst).  This gives the app a chance to do any transition\n    affects they want.\n***************************************************************************/\nvoid APPB::_CopyPixels(PGNV pgnvSrc, RC *prcSrc, PGNV pgnvDst, RC *prcDst)\n{\n    AssertThis(0);\n    AssertPo(pgnvSrc, 0);\n    AssertVarMem(prcSrc);\n    AssertPo(pgnvDst, 0);\n    AssertVarMem(prcDst);\n\n    switch (_gft)\n    {\n    default:\n        pgnvDst->CopyPixels(pgnvSrc, prcSrc, prcDst);\n        break;\n\n    case kgftWipe:\n        pgnvDst->Wipe(_lwGft, _acr, pgnvSrc, prcSrc, prcDst, _dtsGft, _pglclr);\n        break;\n\n    case kgftSlide:\n        pgnvDst->Slide(_lwGft, _acr, pgnvSrc, prcSrc, prcDst, _dtsGft, _pglclr);\n        break;\n\n    case kgftDissolve:\n        // high word of _lwGft is number for columns, low word is number of rows\n        // of the dissolve grid.  If one or both is zero, the dissolve is done\n        // at the pixel level offscreen.\n        pgnvDst->Dissolve(SwHigh(_lwGft), SwLow(_lwGft), _acr, pgnvSrc, prcSrc, prcDst, _dtsGft, _pglclr);\n        break;\n\n    case kgftFade:\n        pgnvDst->Fade(_lwGft, _acr, pgnvSrc, prcSrc, prcDst, _dtsGft, _pglclr);\n        break;\n\n    case kgftIris:\n        // top 15 bits are the xp value, next 15 bits are the (signed) yp value,\n        // bottom 2 bits are the gfd.\n        pgnvDst->Iris(_lwGft & 0x03, _lwGft >> 17, (_lwGft << 15) >> 17, _acr, pgnvSrc, prcSrc, prcDst, _dtsGft,\n                      _pglclr);\n        break;\n    }\n\n    _gft = gftNil;\n    ReleasePpo(&_pglclr);\n}\n\n/***************************************************************************\n    Get an offscreen GPT big enough to enclose the given rectangle.\n    Should minimize reallocations.  Doesn't increment a ref count.\n    APPB maintains ownership of the GPT.\n***************************************************************************/\nPGPT APPB::_PgptEnsure(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n\n    RC rc;\n\n    if (prc->Dxp() > _dxpOff || prc->Dyp() > _dypOff)\n    {\n        ReleasePpo(&_pgptOff);\n        rc.Set(0, 0, LwMax(prc->Dxp(), _dxpOff), LwMax(prc->Dyp(), _dypOff));\n        _pgptOff = GPT::PgptNewOffscreen(&rc, 8);\n        if (pvNil != _pgptOff)\n        {\n            _dxpOff = rc.Dxp();\n            _dypOff = rc.Dyp();\n        }\n        else\n            _dxpOff = _dypOff = 0;\n    }\n    if (pvNil != _pgptOff)\n    {\n        PT pt = prc->PtTopLeft();\n        _pgptOff->SetPtBase(&pt);\n    }\n    return _pgptOff;\n}\n\n/***************************************************************************\n    See if the given property is in the property list.\n***************************************************************************/\nbool APPB::_FFindProp(long prid, PROP *pprop, long *piprop)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pprop);\n    AssertNilOrVarMem(piprop);\n    long ivMin, ivLim, iv;\n    PROP prop;\n\n    if (pvNil == _pglprop)\n    {\n        if (pvNil != piprop)\n            *piprop = 0;\n        TrashVar(pprop);\n        return fFalse;\n    }\n\n    for (ivMin = 0, ivLim = _pglprop->IvMac(); ivMin < ivLim;)\n    {\n        iv = (ivMin + ivLim) / 2;\n        _pglprop->Get(iv, &prop);\n        if (prop.prid < prid)\n            ivMin = iv + 1;\n        else if (prop.prid > prid)\n            ivLim = iv;\n        else\n        {\n            if (pvNil != piprop)\n                *piprop = iv;\n            if (pvNil != pprop)\n                *pprop = prop;\n            return fTrue;\n        }\n    }\n\n    if (pvNil != piprop)\n        *piprop = ivMin;\n    TrashVar(pprop);\n    return fFalse;\n}\n\n/***************************************************************************\n    Set the given property in the property list.\n***************************************************************************/\nbool APPB::_FSetProp(long prid, long lw)\n{\n    AssertThis(0);\n    PROP prop;\n    long iprop;\n\n    if (_FFindProp(prid, &prop, &iprop))\n    {\n        Assert(prop.prid == prid, 0);\n        prop.lw = lw;\n        _pglprop->Put(iprop, &prop);\n        return fTrue;\n    }\n\n    if (pvNil == _pglprop)\n    {\n        Assert(iprop == 0, 0);\n        if (pvNil == (_pglprop = GL::PglNew(size(PROP))))\n            return fFalse;\n    }\n\n    prop.prid = prid;\n    prop.lw = lw;\n    return _pglprop->FInsert(iprop, &prop);\n}\n\n/***************************************************************************\n    Set the indicated property, using the given parameter.\n***************************************************************************/\nbool APPB::FSetProp(long prid, long lw)\n{\n    AssertThis(0);\n\n    switch (prid)\n    {\n    case kpridFullScreen:\n        if (FPure(_fFullScreen) == FPure(lw))\n            break;\n#ifdef WIN\n        long lwT;\n\n        // if we're already maximized, we have to restore and maximize\n        // to force the system to use our new MINMAXINFO.\n        // REVIEW shonk: full screen: is there a better way to do this?\n        if (!FGetProp(kpridMaximized, &lwT))\n            return fFalse;\n        if (lwT)\n        {\n            if (!FSetProp(kpridMaximized, fFalse))\n                return fFalse;\n            _fFullScreen = FPure(lw);\n            if (!FSetProp(kpridMaximized, fTrue))\n            {\n                _fFullScreen = !lw;\n                return fFalse;\n            }\n        }\n#else  //! WIN\n       // REVIEW shonk: Mac: implement\n#endif //! WIN\n        _fFullScreen = FPure(lw);\n        break;\n\n    case kpridMaximized:\n#ifdef WIN\n        if (FPure(IsZoomed(vwig.hwndApp)) == FPure(lw))\n            break;\n        return FPure(ShowWindow(vwig.hwndApp, lw ? SW_SHOWMAXIMIZED : SW_SHOWNORMAL));\n#else  //! WIN\n       // REVIEW shonk: Mac: implement\n        return FPure(lw);\n#endif //! WIN\n\n    case kpridToolTipDelay:\n        lw = LwBound(lw, 0, LwMulDiv(klwMax, kdtimSecond, kdtsSecond));\n        _dtsToolTip = LwMulDiv(lw, kdtsSecond, kdtimSecond);\n        ResetToolTip();\n        break;\n\n    default:\n        return _FSetProp(prid, lw);\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the current value of the given property.\n***************************************************************************/\nbool APPB::FGetProp(long prid, long *plw)\n{\n    AssertThis(0);\n    AssertVarMem(plw);\n    PROP prop;\n\n    TrashVar(plw);\n    switch (prid)\n    {\n    case kpridFullScreen:\n        *plw = _fFullScreen;\n        break;\n\n    case kpridMaximized:\n#ifdef WIN\n        *plw = FPure(IsZoomed(vwig.hwndApp));\n#else  //! WIN\n       // REVIEW shonk: Mac: implement\n        *plw = fTrue;\n#endif //! WIN\n        break;\n\n    case kpridToolTipDelay:\n        *plw = LwMulDivAway(_dtsToolTip, kdtimSecond, kdtsSecond);\n        break;\n\n    default:\n        if (!_FFindProp(prid, &prop))\n            return fFalse;\n        *plw = prop.lw;\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Import some data in the given clip format to a docb.  If pv is nil\n    (or cb is 0), just return whether we can import the format. Otherwise,\n    actually create a document and set *ppdocb to point to it. To delay\n    import, we create an empty document and set *pfDelay to true. If\n    pfDelay is nil, importing cannot be delayed.  If *ppdocb is not nil,\n    import into *ppdocb if we can.\n***************************************************************************/\nbool APPB::FImportClip(long clfm, void *pv, long cb, PDOCB *ppdocb, bool *pfDelay)\n{\n    AssertThis(0);\n    AssertPvCb(pv, cb);\n    AssertNilOrVarMem(ppdocb);\n    AssertNilOrVarMem(pfDelay);\n    long cpMac;\n\n    switch (clfm)\n    {\n    default:\n        return fFalse;\n\n    // we can only import these types\n    case kclfmText:\n        break;\n    }\n\n    if (pvNil == pv || 0 == cb || pvNil == ppdocb)\n        return fTrue;\n\n    switch (clfm)\n    {\n    default:\n        Bug(\"unknown clip format\");\n        return fFalse;\n\n    case kclfmText:\n        AssertNilOrPo(*ppdocb, 0);\n\n        if (pvNil == *ppdocb || !(*ppdocb)->FIs(kclsTXTB))\n        {\n            ReleasePpo(ppdocb);\n            if (pvNil == (*ppdocb = TXRD::PtxrdNew()))\n                return fFalse;\n        }\n\n        // if we can delay and there is more than 1K of text, delay it\n        if (pvNil != pfDelay)\n        {\n            if (cb > 0x0400)\n            {\n                *pfDelay = fTrue;\n                return fTrue;\n            }\n            *pfDelay = fFalse;\n        }\n\n        ((PTXTB)(*ppdocb))->SuspendUndo();\n        cpMac = ((PTXTB)(*ppdocb))->CpMac();\n        ((PTXTB)(*ppdocb))->FReplaceRgch(pv, cb / size(achar), 0, cpMac - 1);\n        ((PTXTB)(*ppdocb))->ResumeUndo();\n        return fTrue;\n    }\n}\n\n/***************************************************************************\n    Push the current modal context and create a new one. This should be\n    balanced with a call to PopModal (if successful).\n***************************************************************************/\nbool APPB::FPushModal(PCEX pcex)\n{\n    AssertThis(0);\n    MODCX modcx;\n    PUSAC pusacNew = pvNil;\n\n    if (pvNil == _pglmodcx && pvNil == (_pglmodcx = GL::PglNew(size(MODCX))))\n    {\n        return fFalse;\n    }\n\n    modcx.cactLongOp = _cactLongOp;\n    modcx.pcex = vpcex;\n    modcx.pusac = vpusac;\n    modcx.luScale = vpusac->LuScale();\n\n    if (!_pglmodcx->FPush(&modcx))\n        return fFalse;\n\n    if (pcex != pvNil)\n        pcex->AddRef();\n\n    if (pvNil == pcex && pvNil == (pcex = CEX::PcexNew(20, 20)) || !pcex->FAddCmh(vpappb, kcmhlAppb) ||\n        pvNil == (pusacNew = NewObj USAC))\n    {\n        ReleasePpo(&pcex);\n        AssertDo(_pglmodcx->FPop(), 0);\n        return fFalse;\n    }\n    modcx.pcex->Suspend();\n    vpcex = pcex;\n    pcex->Suspend(fFalse);\n\n    _cactLongOp = 0;\n    vpusac->Scale(0);\n    vpusac = pusacNew;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Go into a modal loop and don't return until _fQuit is set or a\n    cidEndModal comes to the app. Normally should be bracketed by an\n    FPushModal/PopModal pair. Returns false iff the modal terminated\n    abnormally (eg, we're quitting).\n***************************************************************************/\nbool APPB::FModalLoop(long *plwRet)\n{\n    AssertThis(0);\n    AssertVarMem(plwRet);\n    bool fRet;\n\n    _fEndModal = fFalse;\n    _cactModal++;\n    _Loop();\n    _cactModal--;\n    fRet = FPure(_fEndModal);\n    _fEndModal = fFalse;\n    *plwRet = _lwModal;\n\n    AssertThis(0);\n    return fRet;\n}\n\n/***************************************************************************\n    Cause the topmost modal loop to terminate (next time through) with the\n    given return value.\n***************************************************************************/\nvoid APPB::EndModal(long lwRet)\n{\n    AssertThis(0);\n\n    _lwModal = lwRet;\n    _fEndModal = fTrue;\n}\n\n/***************************************************************************\n    Pop the topmost modal context.\n***************************************************************************/\nvoid APPB::PopModal(void)\n{\n    AssertThis(0);\n    MODCX modcx;\n\n    if (pvNil == _pglmodcx || !_pglmodcx->FPop(&modcx))\n    {\n        Bug(\"Unbalanced call to PopModal\");\n        return;\n    }\n\n    SwapVars(&vpcex, &modcx.pcex);\n    SwapVars(&vpusac, &modcx.pusac);\n    modcx.pcex->Suspend();\n    vpcex->Suspend(fFalse);\n    vpusac->Scale(modcx.luScale);\n    _cactLongOp = modcx.cactLongOp;\n\n    ReleasePpo(&modcx.pcex);\n    ReleasePpo(&modcx.pusac);\n}\n\n/***************************************************************************\n    End the topmost modal loop.\n***************************************************************************/\nbool APPB::FCmdEndModal(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (_cactModal <= 0)\n        return fFalse;\n\n    EndModal(pcmd->rglw[0]);\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle any bad modal commands. Default is to put the command in the\n    next modal context's CEX.\n***************************************************************************/\nvoid APPB::BadModalCmd(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertPo(pcmd, 0);\n    long imodcx;\n    MODCX modcx;\n\n    if (pvNil == _pglmodcx || 0 >= (imodcx = _pglmodcx->IvMac()))\n    {\n        Bug(\"Don't know what to do with the modal command\");\n        return;\n    }\n\n    _pglmodcx->Get(--imodcx, &modcx);\n    if (pvNil != pcmd->pgg)\n        pcmd->pgg->AddRef();\n    modcx.pcex->EnqueueCmd(pcmd);\n}\n\n/***************************************************************************\n    Ask the user if they want to save changes to the given doc.\n***************************************************************************/\ntribool APPB::TQuerySaveDoc(PDOCB pdocb, bool fForce)\n{\n    AssertThis(0);\n    STN stn;\n    STN stnName;\n\n    pdocb->GetName(&stnName);\n    stn.FFormatSz(PszLit(\"Save changes to \\\"%s\\\" before closing?\"), &stnName);\n    return vpappb->TGiveAlertSz(stn.Psz(), fForce ? bkYesNo : bkYesNoCancel, cokQuestion);\n}\n\n/***************************************************************************\n    Return whether we should allow a screen saver to come up. Defaults\n    to returning true.\n***************************************************************************/\nbool APPB::FAllowScreenSaver(void)\n{\n    AssertThis(0);\n\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a APPB.\n***************************************************************************/\nvoid APPB::AssertValid(ulong grf)\n{\n    APPB_PAR::AssertValid(0);\n\n    AssertNilOrPo(_pgptOff, 0);\n    AssertNilOrPo(_pcurs, 0);\n    AssertNilOrPo(_pcursWait, 0);\n    AssertNilOrPo(_pglclr, 0);\n    AssertNilOrPo(_pglprop, 0);\n    AssertNilOrPo(_pglmkrgn, 0);\n    AssertNilOrPo(_pglmodcx, 0);\n}\n\n/***************************************************************************\n    Registers memory for frame specific memory (command dispatcher, menu\n    bar, screen gobs, etc).\n***************************************************************************/\nvoid APPB::MarkMem(void)\n{\n    AssertThis(0);\n    PGOB pgob;\n\n    APPB_PAR::MarkMem();\n    MarkMemObj(vpcex);\n    MarkMemObj(vpmubCur);\n    MarkMemObj(&vntl);\n    MarkMemObj(vpclip);\n    MarkMemObj(vpsndm);\n\n    MarkMemObj(_pgptOff);\n    MarkMemObj(_pcurs);\n    MarkMemObj(_pcursWait);\n    MarkMemObj(_pglclr);\n    MarkMemObj(_pglprop);\n\n    if (pvNil != _pglmkrgn)\n    {\n        long imkrgn;\n        MKRGN mkrgn;\n\n        MarkMemObj(_pglmkrgn);\n        for (imkrgn = _pglmkrgn->IvMac(); imkrgn-- > 0;)\n        {\n            _pglmkrgn->Get(imkrgn, &mkrgn);\n            MarkMemObj(mkrgn.pregn);\n        }\n    }\n\n    if (pvNil != _pglmodcx)\n    {\n        long imodcx;\n        MODCX modcx;\n\n        MarkMemObj(_pglmodcx);\n        for (imodcx = _pglmodcx->IvMac(); imodcx-- > 0;)\n        {\n            _pglmodcx->Get(imodcx, &modcx);\n            MarkMemObj(modcx.pcex);\n            MarkMemObj(modcx.pusac);\n        }\n    }\n\n    GPT::MarkStaticMem();\n    CLOK::MarkAllCloks();\n    if ((pgob = GOB::PgobScreen()) != pvNil)\n        pgob->MarkGobTree();\n}\n\n/***************************************************************************\n    Assert proc - just calls the app's AssertProc.\n***************************************************************************/\nbool FAssertProc(PSZS pszsFile, long lwLine, PSZS pszsMsg, void *pv, long cb)\n{\n    if (vpappb == pvNil)\n        return fTrue;\n    return vpappb->FAssertProcApp(pszsFile, lwLine, pszsMsg, pv, cb);\n}\n\n/***************************************************************************\n    Warning reporting proc.\n***************************************************************************/\nvoid WarnProc(PSZS pszsFile, long lwLine, PSZS pszsMsg)\n{\n    if (vpappb == pvNil)\n        Debugger();\n    else\n        vpappb->WarnProcApp(pszsFile, lwLine, pszsMsg);\n}\n\nstatic MUTX _mutxWarn;\n\n/***************************************************************************\n    Default framework warning proc.\n***************************************************************************/\nvoid APPB::WarnProcApp(PSZS pszsFile, long lwLine, PSZS pszsMsg)\n{\n    static PFIL _pfilWarn;\n    static bool _fInWarn;\n    static FP _fpCur;\n    STN stn;\n    STN stnFile;\n    STN stnMsg;\n\n    if (_fInWarn)\n        return;\n\n    _mutxWarn.Enter();\n\n    _fInWarn = fTrue;\n    if (pvNil == _pfilWarn)\n    {\n        FNI fni;\n        FTG ftg;\n\n        // put the warning file at the root of the drive that temp files go on\n        if (!fni.FGetTemp() || !fni.FSetLeaf(pvNil, kftgDir))\n            goto LDone;\n        while (fni.FUpDir(pvNil, ffniMoveToDir))\n            ;\n\n        stn = PszLit(\"_Frame_W\");\n        if (!fni.FSetLeaf(&stn, kftgText))\n            goto LDone;\n\n        ftg = FIL::vftgCreator;\n        FIL::vftgCreator = 'ttxt';\n        _pfilWarn = FIL::PfilCreate(&fni);\n        FIL::vftgCreator = ftg;\n        if (pvNil == _pfilWarn)\n            goto LDone;\n    }\n    stnFile.SetSzs(pszsFile);\n    stnMsg.SetSzs(pszsMsg);\n\n    stn.FFormatSz(PszLit(\"%s(%d): %s\\xD\") Win(PszLit(\"\\xA\")), &stnFile, lwLine, &stnMsg);\n    Win(OutputDebugString(stn.Psz());) _pfilWarn->FWriteRgbSeq(stn.Prgch(), stn.Cch(), &_fpCur);\n\nLDone:\n    _fInWarn = fFalse;\n    _mutxWarn.Leave();\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/appb.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    The base application class.  Most apps will need to subclass this.\n\n***************************************************************************/\n#ifndef APPB_H\n#define APPB_H\n\n/***************************************************************************\n    Misc types\n***************************************************************************/\n#ifdef WIN\ntypedef MSG EVT;\n#endif // WIN\n#ifdef MAC\ntypedef EventRecord EVT;\n#endif // WIN\ntypedef EVT *PEVT;\n\n#ifdef WIN\n// windows specific globals\nstruct WIG\n{\n    HINSTANCE hinst;\n    HINSTANCE hinstPrev;\n    LPTSTR pszCmdLine;\n    int wShow;\n\n    HWND hwndApp;\n    HDC hdcApp;\n    HWND hwndClient;     // MDI client window\n    HACCEL haccel;       // main accelerator table\n    HWND hwndNextViewer; // next clipboard viewer\n    long lwThreadMain;   // main thread\n};\nextern WIG vwig;\n#endif // WIN\n\n/***************************************************************************\n    The base application class.\n***************************************************************************/\nconst long kcmhlAppb = klwMax; // appb goes at the end of the cmh list\n\nenum\n{\n    fappNil = 0x0,\n    fappOffscreen = 0x1,\n    fappOnscreen = 0x2,\n};\n\ntypedef class APPB *PAPPB;\n#define APPB_PAR CMH\n#define kclsAPPB 'APPB'\nclass APPB : public APPB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(APPB)\n\n  protected:\n    // marked region - for fast updating\n    struct MKRGN\n    {\n        HWND hwnd;\n        PREGN pregn;\n    };\n\n    // map from a property id to its value\n    struct PROP\n    {\n        long prid;\n        long lw;\n    };\n\n    // modal context\n    struct MODCX\n    {\n        long cactLongOp;\n        PCEX pcex;\n        PUSAC pusac;\n        ulong luScale;\n    };\n\n#ifdef DEBUG\n    bool _fCheckForLostMem : 1; // whether to check for lost mem at idle\n    bool _fInAssert : 1;        // whether we're in an assert\n    bool _fRefresh : 1;         // whether to refresh the entire display\n#endif                          // DEBUG\n    bool _fQuit : 1;            // whether we're in the process of quitting\n    bool _fOffscreen : 1;       // whether to do offscreen updates by default\n    bool _fFullScreen : 1;      // when maximized, we hide the caption, etc\n    bool _fToolTip : 1;         // whether we're in tool-tip mode\n    bool _fForeground : 1;      // whether we're the foreground app\n    bool _fEndModal : 1;        // set to end the topmost modal loop\n\n    PGL _pglmkrgn;        // list of marked regions for fast updating\n    long _onnDefFixed;    // default fixed pitch font\n    long _onnDefVariable; // default variable pitched font\n    PGPT _pgptOff;        // cached offscreen GPT for offscreen updates\n    long _dxpOff;         // size of the offscreen GPT\n    long _dypOff;\n\n    long _xpMouse; // location of mouse on last reported mouse move\n    long _ypMouse;\n    PGOB _pgobMouse;     // gob mouse was last over\n    ulong _grfcustMouse; // cursor state on last mouse move\n\n    // for determining the multiplicity of a click\n    long _tsMouse;   // time of last mouse click\n    long _cactMouse; // multiplicity of last mouse click\n\n    // for tool tips\n    ulong _tsMouseEnter;     // when the mouse entered _pgobMouse\n    ulong _dtsToolTip;       // time lag for tool tip\n    PGOB _pgobToolTipTarget; // if there is a tool tip up, it's for this gob\n\n    PCURS _pcurs;     // current cursor\n    PCURS _pcursWait; // cursor to use for long operations\n    long _cactLongOp; // long operation count\n    ulong _grfcust;   // current cursor state\n\n    long _gft;     // transition to apply during next fast update\n    long _lwGft;   // parameter for transition\n    ulong _dtsGft; // how much time to give the transition\n    PGL _pglclr;   // palette to transition to\n    ACR _acr;      // intermediate color to transition to\n\n    PGL _pglprop; // the properties\n\n    PGL _pglmodcx;   // The modal context stack\n    long _lwModal;   // Return value from modal loop\n    long _cactModal; // how deep we are in application loops\n\n    // initialization, running and clean up\n    virtual bool _FInit(ulong grfapp, ulong grfgob, long ginDef);\n#ifdef DEBUG\n    virtual bool _FInitDebug(void);\n#endif // DEBUG\n    virtual bool _FInitOS(void);\n    virtual bool _FInitMenu(void);\n    virtual void _Loop(void);\n    virtual void _CleanUp(void);\n    virtual bool _FInitSound(long wav);\n\n    // event fetching and dispatching\n    virtual bool _FGetNextEvt(PEVT pevt);\n    virtual void _DispatchEvt(PEVT pevt);\n    virtual bool _FTranslateKeyEvt(EVT *pevt, PCMD_KEY pcmd);\n\n#ifdef MAC\n    // event handlers\n    virtual void _MouseDownEvt(EVT *pevt);\n    virtual void _MouseUpEvt(EVT *pevt);\n    virtual void _UpdateEvt(EVT *pevt);\n    virtual void _ActivateEvt(EVT *pevt);\n    virtual void _DiskEvt(EVT *pevt);\n    virtual void _ActivateApp(EVT *pevt);\n    virtual void _DeactivateApp(EVT *pevt);\n    virtual void _MouseMovedEvt(EVT *pevt);\n#endif\n\n    // fast updating\n    virtual void _FastUpdate(PGOB pgob, PREGN pregnClip, ulong grfapp = fappNil, PGPT pgpt = pvNil);\n    virtual void _CopyPixels(PGNV pgvnSrc, RC *prcSrc, PGNV pgnvDst, RC *prcDst);\n    void _MarkRegnRc(PREGN pregn, RC *prc, PGOB pgobCoo);\n    void _UnmarkRegnRc(PREGN pregn, RC *prc, PGOB pgobCoo);\n\n    // to borrow the common offscreen GPT\n    virtual PGPT _PgptEnsure(RC *prc);\n\n    // property list management\n    bool _FFindProp(long prid, PROP *pprop, long *piprop = pvNil);\n    bool _FSetProp(long prid, long lw);\n\n    // tool tip support\n    void _TakeDownToolTip(void);\n    void _EnsureToolTip(void);\n\n// window procs\n#ifdef WIN\n    static LRESULT CALLBACK _LuWndProc(HWND hwnd, uint wm, WPARAM wParam, LPARAM lParam);\n    static LRESULT CALLBACK _LuMdiWndProc(HWND hwnd, uint wm, WPARAM wParam, LPARAM lParam);\n\n    virtual bool _FFrameWndProc(HWND hwnd, uint wm, WPARAM wParam, LPARAM lw, long *plwRet);\n    virtual bool _FMdiWndProc(HWND hwnd, uint wm, WPARAM wParam, LPARAM lw, long *plwRet);\n    virtual bool _FCommonWndProc(HWND hwnd, uint wm, WPARAM wParam, LPARAM lw, long *plwRet);\n\n    // remove ourself from the clipboard viewer chain\n    void _ShutDownViewer(void);\n#endif // WIN\n\n    // Activation\n    virtual void _Activate(bool fActive);\n\n  public:\n    APPB(void);\n    ~APPB(void);\n\n#ifdef MAC\n    // setting up the heap\n    static void _SetupHeap(long cbExtraStack, long cactMoreMasters);\n    virtual void SetupHeap(void);\n#elif defined(WIN)\n    static void CreateConsole();\n#endif\n\n    bool FQuitting(void)\n    {\n        return _fQuit;\n    }\n    bool FForeground(void)\n    {\n        return _fForeground;\n    }\n\n    // initialization, running and quitting\n    virtual void Run(ulong grfapp, ulong grfgob, long ginDef);\n    virtual void Quit(bool fForce);\n    virtual void Abort(void);\n    virtual void TopOfLoop(void);\n\n    // look for the next key event in the system event queue\n    virtual bool FGetNextKeyFromOsQueue(PCMD_KEY pcmd);\n\n    // Look for mouse events and get the mouse location\n    // GrfcustCur() is synchronized with this\n    void TrackMouse(PGOB pgob, PT *ppt);\n\n    // app name\n    virtual void GetStnAppName(PSTN pstn);\n\n    // command handler stuff\n    virtual void BuryCmh(PCMH pcmh);\n    virtual PCMH PcmhFromHid(long hid);\n\n    // drawing\n    virtual void UpdateHwnd(HWND hwnd, RC *prc, ulong grfapp = fappNil);\n    virtual void MarkRc(RC *prc, PGOB pgobCoo);\n    virtual void MarkRegn(PREGN pregn, PGOB pgobCoo);\n    virtual void UnmarkRc(RC *prc, PGOB pgobCoo);\n    virtual void UnmarkRegn(PREGN pregn, PGOB pgobCoo);\n    virtual bool FGetMarkedRc(HWND hwnd, RC *prc);\n    virtual void UpdateMarked(void);\n    virtual void InvalMarked(HWND hwnd);\n    virtual void SetGft(long gft, long lwGft, ulong dts = kdtsSecond, PGL pglclr = pvNil, ACR acr = kacrClear);\n\n    // default fonts\n    virtual long OnnDefVariable(void);\n    virtual long OnnDefFixed(void);\n    virtual long DypTextDef(void);\n\n    // basic alert handling\n    virtual tribool TGiveAlertSz(PSZ psz, long bk, long cok);\n\n    // common commands\n    virtual bool FCmdQuit(PCMD pcmd);\n    virtual bool FCmdShowClipboard(PCMD pcmd);\n    virtual bool FEnableAppCmd(PCMD pcmd, ulong *pgrfeds);\n    virtual bool FCmdIdle(PCMD pcmd);\n    virtual bool FCmdChooseWnd(PCMD pcmd);\n#ifdef MAC\n    virtual bool FCmdOpenDA(PCMD pcmd);\n#endif // MAC\n\n#ifdef DEBUG\n    virtual bool FAssertProcApp(PSZS pszsFile, long lwLine, PSZS pszsMsg, void *pv, long cb);\n    virtual void WarnProcApp(PSZS pszsFile, long lwLine, PSZS pszsMsg);\n#endif // DEBUG\n\n    // cursor stuff\n    virtual void SetCurs(PCURS pcurs, bool fLongOp = fFalse);\n    virtual void SetCursCno(PRCA prca, CNO cno, bool fLongOp = fFalse);\n    virtual void RefreshCurs(void);\n    virtual ulong GrfcustCur(bool fAsynch = fFalse);\n    virtual void ModifyGrfcust(ulong grfcustOr, ulong grfcustXor);\n    virtual void HideCurs(void);\n    virtual void ShowCurs(void);\n    virtual void PositionCurs(long xpScreen, long ypScreen);\n    virtual void BeginLongOp(void);\n    virtual void EndLongOp(bool fAll = fFalse);\n\n    // setting and fetching properties\n    virtual bool FSetProp(long prid, long lw);\n    virtual bool FGetProp(long prid, long *plw);\n\n    // clipboard importing - normally only called by the clipboard object\n    virtual bool FImportClip(long clfm, void *pv = pvNil, long cb = 0, PDOCB *ppdocb = pvNil, bool *pfDelay = pvNil);\n\n    // reset tooltip tracking.\n    virtual void ResetToolTip(void);\n\n    // modal loop support\n    virtual bool FPushModal(PCEX pcex = pvNil);\n    virtual bool FModalLoop(long *plwRet);\n    virtual void EndModal(long lwRet);\n    virtual void PopModal(void);\n    virtual bool FCmdEndModal(PCMD pcmd);\n    long CactModal(void)\n    {\n        return _cactModal;\n    }\n    virtual void BadModalCmd(PCMD pcmd);\n\n    // Query save changes for a document\n    virtual tribool TQuerySaveDoc(PDOCB pdocb, bool fForce);\n\n    // flush user generated events from the system event queue.\n    virtual void FlushUserEvents(ulong grfevt = kgrfevtAll);\n\n    // whether to allow a screen saver to come up\n    virtual bool FAllowScreenSaver(void);\n};\n\nextern PAPPB vpappb;\nextern PCEX vpcex;\nextern PSNDM vpsndm;\n\n// main entry point for the client app\nvoid FrameMain(void);\n\n// alert button kinds\nenum\n{\n    bkOk,\n    bkOkCancel,\n    bkYesNo,\n    bkYesNoCancel,\n};\n\n// alert icon kinds\nenum\n{\n    cokNil,\n    cokInformation, // general info to/from the user\n    cokQuestion,    // ask the user something\n    cokExclamation, // warn the user and/or ask something\n    cokStop,        // inform the user that we can't do that\n};\n\n#endif //! APPB_H\n"
  },
  {
    "path": "kauai/src/appbmac.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Mac specific base application class methods.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nulong _GrfcustFromEvt(PEVT pevt);\n\n// by default grow the stack by 8K and call MoreMasters 10 times\nconst long _cbExtraStackDef = 0x2000L;\nconst long _cactMoreMastersDef = 10;\n\n/***************************************************************************\n    main for the entire frame work app.  Does system initialization and\n    calls FrameMain.\n***************************************************************************/\nvoid __cdecl main(void)\n{\n    // Grow the stack and expand the heap. This MUST be done first!\n    if (pvNil == vpappb)\n        APPB::_SetupHeap(_cbExtraStackDef, _cactMoreMastersDef);\n    else\n        vpappb->SetupHeap();\n\n    InitGraf(&qd.thePort);\n    InitFonts();\n    FlushEvents(everyEvent, 0);\n    InitWindows();\n    InitMenus();\n    TEInit();\n    InitDialogs(pvNil);\n    InitCursor();\n\n    // Go to the app's main entry point.\n    FrameMain();\n}\n\n/***************************************************************************\n    Static method to increase the stack size by cbExtraStack and call\n    MoreMasters the specified number of times.\n***************************************************************************/\nvoid APPB::_SetupHeap(long cbExtraStack, long cactMoreMasters)\n{\n    // This is called before any Mac OS stuff is initialized, so\n    // don't assert on anything.\n    static _fCalled = fFalse;\n\n    if (_fCalled)\n    {\n        Debug(Debugger();) return;\n    }\n    _fCalled = fTrue;\n\n    if (cbExtraStack > 0)\n    {\n        // limit the increase to 100K\n        SetApplLimit(PvSubBv(GetApplLimit(), LwMin(cbExtraStack, 102400L)));\n    }\n    MaxApplZone();\n    while (cactMoreMasters-- > 0)\n        MoreMasters();\n}\n\n/***************************************************************************\n    Method to set up the heap.\n***************************************************************************/\nvoid APPB::SetupHeap(void)\n{\n    // This is called before any Mac OS stuff is initialized, so\n    // don't assert on anything.\n\n    // add 8K to the stack and call MoreMasters 10 times.\n    _SetupHeap(_cbExtraStackDef, _cactMoreMastersDef);\n}\n\n/***************************************************************************\n    Shutdown immediately.\n***************************************************************************/\nvoid APPB::Abort(void)\n{\n    ExitToShell();\n}\n\n/***************************************************************************\n    Do OS specific initialization.\n***************************************************************************/\nbool APPB::_FInitOS(void)\n{\n    AssertThis(0);\n\n    // we already initialized everything\n    return fTrue;\n}\n\n/***************************************************************************\n    Open a desk accessory.\n***************************************************************************/\nbool APPB::FCmdOpenDA(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PRT *pprt;\n    schar rgchs[256];\n    long cchs;\n\n    if (pcmd->pgg != pvNil && pcmd->pgg->IvMac() == 1 && (cchs = pcmd->pgg->Cb(0)) < size(rgchs))\n    {\n        pcmd->pgg->Get(0, rgchs + 1);\n        st[0] = (schar)cchs;\n        GetPort(&pprt);\n        OpenDeskAcc((byte *)rgchs);\n        SetPort(pprt);\n    }\n    pcmd->cid = cidNil; // don't record this command\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the next event from the OS.\n***************************************************************************/\nbool APPB::_FGetNextEvt(EVT *pevt)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n\n    if (!WaitNextEvent(everyEvent, pevt, 0, hNil))\n        pevt->what = nullEvent;\n    _grfcust &= ~kgrfcustUser;\n    _grfcust |= _GrfcustFromEvt(pevt);\n    return pevt->what != nullEvent;\n}\n\n/***************************************************************************\n    The given GOB is tracking the mouse.  See if there are any relevant\n    mouse events in the system event queue.  Fill in *ppt with the location\n    of the mouse relative to pgob. Also ensure that GrfcustCur() will\n    return the correct mouse state.\n***************************************************************************/\nvoid APPB::TrackMouse(PGOB pgob, PT *ppt)\n{\n    AssertThis(0);\n    AssertPo(pgob, 0);\n    AssertVarMem(ppt);\n    EVT evt;\n\n    while (EventAvail(everyEvent, &evt))\n    {\n        if (!GetNextEvent(everyEvent, &evt))\n            break;\n\n        _grfcust &= ~kgrfcustUser;\n        _grfcust |= _GrfcustFromEvt(&evt);\n        switch (evt.what)\n        {\n        case mouseDown:\n            _grfcust |= fcustMouse;\n            goto LDone;\n\n        case mouseUp:\n            _grfcust &= ~fcustMouse;\n            goto LDone;\n\n        case keyDown:\n        case autoKey:\n            break;\n\n        case updateEvt:\n            _UpdateEvt(&evt);\n            break;\n\n        case activateEvt:\n            _ActivateEvt(&evt);\n            break;\n\n        case diskEvt:\n            break;\n\n        case osEvt:\n            if ((evt.message & 0xFF000000) == 0xFA000000)\n            {\n                // mouse move\n                goto LDone;\n            }\n            if (evt.message & 0x01000000)\n            {\n                // suspend or resume\n                Bug(\"How can this happen?\");\n                if (evt.message & 0x00000001)\n                    _ActivateApp(&evt);\n                else\n                    _DeactivateApp(&evt);\n            }\n            break;\n        }\n    }\n\nLDone:\n    ppt->xp = evt.where.h;\n    ppt->yp = evt.where.v;\n    pgob->MapPt(ppt, cooGlobal, cooLocal);\n}\n\n/***************************************************************************\n    Dispatch the OS level event to a translator.\n***************************************************************************/\nvoid APPB::_DispatchEvt(EVT *pevt)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n\n    CMD cmd;\n\n    switch (pevt->what)\n    {\n    case mouseDown:\n        _MouseDownEvt(pevt);\n        break;\n\n    case mouseUp:\n        _MouseUpEvt(pevt);\n        break;\n\n    case keyDown:\n    case autoKey:\n        if (_FTranslateKeyEvt(pevt, (PCMD_KEY)&cmd))\n            vpcex->EnqueueCmd(&cmd);\n        break;\n\n    case updateEvt:\n        _UpdateEvt(pevt);\n        break;\n\n    case activateEvt:\n        _ActivateEvt(pevt);\n        break;\n\n    case diskEvt:\n        _DiskEvt(pevt);\n        break;\n\n    case osEvt:\n        if (pevt->message & 0x01000000)\n        {\n            // suspend or resume\n            if (pevt->message & 0x00000001)\n                _ActivateApp(pevt);\n            else\n                _DeactivateApp(pevt);\n        }\n        else if ((pevt->message & 0xFF000000) == 0xFA000000)\n            _MouseMovedEvt(pevt);\n        break;\n    }\n}\n\n/***************************************************************************\n    Dispatch an OS level mouse down event.\n***************************************************************************/\nvoid APPB::_MouseDownEvt(EVT *pevt)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n\n    short in;\n    HWND hwnd;\n    PGOB pgob;\n\n    in = FindWindow(pevt->where, (WindowPtr *)&hwnd);\n    switch (in)\n    {\n    case inMenuBar:\n        if (pvNil != vpmubCur)\n            vpmubCur->FDoClick(pevt);\n        break;\n\n    case inDrag:\n        RCS rcs = qd.screenBits.bounds;\n        InsetRect(&rcs, 4, 4);\n        DragWindow(&hwnd->port, pevt->where, &rcs);\n        break;\n\n    case inGoAway:\n        if (TrackGoAway(&hwnd->port, pevt->where) && (pgob = GOB::PgobFromHwnd(hwnd)) != pvNil)\n        {\n            vpcex->EnqueueCid(cidCloseWnd, pgob);\n        }\n        break;\n\n    case inGrow:\n        if ((pgob = GOB::PgobFromHwnd(hwnd)) != pvNil)\n            pgob->TrackGrow(pevt);\n        break;\n\n    case inContent:\n        if (hwnd != (HWND)FrontWindow())\n            SelectWindow(&hwnd->port);\n        else if ((pgob = GOB::PgobFromHwnd(hwnd)) != pvNil)\n        {\n            PPRT pprt;\n            PT pt;\n            PTS pts = pevt->where;\n\n            GetPort(&pprt);\n            SetPort(&hwnd->port);\n            GlobalToLocal(&pts);\n            SetPort(pprt);\n            if ((pgob = pgob->PgobFromPt(pts.h, pts.v, &pt)) != pvNil)\n            {\n                if (_pgobMouse == pgob && FIn(pevt->when - _tsMouse, 0, GetDblTime()))\n                {\n                    _cactMouse++;\n                }\n                else\n                    _cactMouse = 1;\n                _tsMouse = pevt->when;\n                if (_pgobMouse != pgob && pvNil != _pgobMouse)\n                {\n                    AssertPo(_pgobMouse, 0);\n                    vpcex->EnqueueCid(cidRollOff, _pgobMouse);\n                }\n                _pgobMouse = pgob;\n                _xpMouse = klwMax;\n                pgob->MouseDown(pt.xp, pt.yp, _cactMouse, GrfcustCur());\n            }\n            else\n                _pgobMouse = pvNil;\n        }\n        break;\n\n    case inSysWindow:\n    case inZoomIn:\n    case inZoomOut:\n        break;\n    }\n}\n\n/***************************************************************************\n    Dispatch an OS level mouse up event.\n***************************************************************************/\nvoid APPB::_MouseUpEvt(EVT *pevt)\n{\n    // Ignore mouse up events\n}\n\n/***************************************************************************\n    Translate an OS level key down event to a CMD.  This returns false if\n    the key maps to a menu item.\n    //REVIEW shonk: resolve (ch, vk) differences between Mac and Win\n***************************************************************************/\nbool APPB::_FTranslateKeyEvt(EVT *pevt, PCMD_KEY pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n    AssertVarMem(pcmd);\n\n    ClearPb(pcmd, size(*pcmd));\n    pcmd->cid = cidKey;\n    pcmd->grfcust = GrfcustCur();\n    if ((pcmd->grfcust & fcustCmd) && vpmubCur != pvNil && vpmubCur->FDoKey(pevt))\n    {\n        TrashVar(pcmd);\n        return fFalse;\n    }\n    pcmd->ch = B0Lw(pevt->message);\n    pcmd->vk = pcmd->ch;\n    pcmd->cact = 1;\n    return fTrue;\n}\n\n/***************************************************************************\n    Look at the next system event and if it's a key, fill in the *pcmd with\n    the relevant info.\n***************************************************************************/\nbool APPB::FGetNextKeyFromOsQueue(PCMD_KEY pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    EVT evt;\n\n    if (!EventAvail(everyEvent, &evt))\n        goto LFail;\n    if (evt.what != keyDown && evt.what != autoKey)\n        goto LFail;\n    if (!GetNextEvent(keyDownMask | autoKeyMask, &evt))\n    {\n    LFail:\n        TrashVar(pcmd);\n        return fFalse;\n    }\n    _grfcust &= ~kgrfcustUser;\n    _grfcust |= _GrfcustFromEvt(&evt);\n    return _FTranslateKeyEvt(&evt, pcmd);\n}\n\n/***************************************************************************\n    Returns the grfcust for the given event.\n***************************************************************************/\nulong _GrfcustFromEvt(PEVT pevt)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n\n    ulong grfcust = 0;\n\n    if (pevt->modifiers & (cmdKey | controlKey))\n        grfcust |= fcustCmd;\n    if (pevt->modifiers & shiftKey)\n        grfcust |= fcustShift;\n    if (pevt->modifiers & optionKey)\n        grfcust |= fcustOption;\n    if (!(pevt->modifiers & btnState))\n        grfcust |= fcustMouse;\n    return grfcust;\n}\n\n/***************************************************************************\n    Dispatch an OS level update event.\n***************************************************************************/\nvoid APPB::_UpdateEvt(EVT *pevt)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n\n    PPRT pprt, pprtSav;\n    RCS rcs;\n    RC rc;\n\n    pprt = (PPRT)pevt->message;\n    InvalMarked((HWND)pprt);\n    rcs = (*((HWND)pprt)->updateRgn)->rgnBBox;\n    GetPort(&pprtSav);\n    SetPort(pprt);\n    GlobalToLocal((PTS *)&rcs);\n    GlobalToLocal((PTS *)&rcs + 1);\n    rc = rcs;\n    BeginUpdate(pprt);\n    UpdateHwnd((HWND)pprt, &rc);\n    EndUpdate(pprt);\n    SetPort(pprtSav);\n}\n\n/***************************************************************************\n    Dispatch an OS level activate event.\n***************************************************************************/\nvoid APPB::_ActivateEvt(EVT *pevt)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n\n    // Tell the gob code that an hwnd is being activated or deactivated\n    GOB::ActivateHwnd((HWND)pevt->message, pevt->modifiers & 1);\n}\n\n/***************************************************************************\n    Handle an OS level disk event.\n***************************************************************************/\nvoid APPB::_DiskEvt(EVT *pevt)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n}\n\n/***************************************************************************\n    Handle activation of the app.\n***************************************************************************/\nvoid APPB::_ActivateApp(EVT *pevt)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n\n    _Activate(fTrue);\n}\n\n/***************************************************************************\n    Handle deactivation of the app.\n***************************************************************************/\nvoid APPB::_DeactivateApp(EVT *pevt)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n\n    _Activate(fFalse);\n}\n\n/***************************************************************************\n    Handle an OS level mouse moved event.\n***************************************************************************/\nvoid APPB::_MouseMovedEvt(EVT *pevt)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n}\n\n/****************************************\n    Standard alert resources\n****************************************/\nenum\n{\n    kridOkAlert = 128,\n    kridOkCancelAlert,\n    kridYesNoAlert,\n    kridYesNoCancelAlert\n};\n\n/***************************************************************************\n    Put an alert up.  Return which button was hit.  Returns tYes for yes\n    or ok; tNo for no; tMaybe for cancel.\n***************************************************************************/\nbool APPB::TGiveAlertSz(PSZ psz, long bk, long cok)\n{\n    AssertThis(0);\n    AssertSz(psz);\n\n    short rid, bid;\n    STN stn;\n\n    stn = psz;\n    switch (bk)\n    {\n    default:\n        BugVar(\"bad bk value\", &bk);\n        // fall through\n    case bkOk:\n        rid = kridOkAlert;\n        break;\n    case bkOkCancel:\n        rid = kridOkCancelAlert;\n        break;\n    case bkYesNo:\n        rid = kridYesNoAlert;\n        break;\n    case bkYesNoCancel:\n        rid = kridYesNoCancelAlert;\n        break;\n    }\n\n    ParamText(stn.Pst(), (uchar *)\"\", (uchar *)\"\", (uchar *)\"\");\n    switch (cok)\n    {\n    default:\n        BugVar(\"bad cok value\", &cok);\n        Debug(ParamText(stn.Pst(), (uchar *)\"\", (uchar *)\"\", (uchar *)\"\");)\n            // fall through\n            case cokNil : bid = Alert(rid, pvNil);\n        break;\n    case cokInformation:\n        bid = NoteAlert(rid, pvNil);\n        break;\n    case cokQuestion:\n    case cokExclamation:\n        bid = CautionAlert(rid, pvNil);\n        break;\n    case cokStop:\n        bid = StopAlert(rid, pvNil);\n        break;\n    }\n\n    switch (bid)\n    {\n    default:\n    case 1:\n        return tYes;\n    case 2:\n        return tNo;\n    case 3:\n        return tMaybe;\n    }\n}\n\n#ifdef DEBUG\nconst short kridAssert = 32000;\nconst short kbidDebugger = 1;\nconst short kbidIgnore = 2;\nconst short kbidQuit = 3;\n\n/***************************************************************************\n    Debug initialization.\n***************************************************************************/\nbool APPB::_FInitDebug(void)\n{\n    return fTrue;\n}\n\n/***************************************************************************\n    Assert proc.\n    REVIEW shonk: Mac FAssertProcApp: flesh out and fix for unicode.\n***************************************************************************/\nbool APPB::FAssertProcApp(PSZ pszFile, long lwLine, PSZ pszMsg, void *pv, long cb)\n{\n    short bid;\n    achar stLine[kcbMaxSt];\n    achar stFile[kcbMaxSt];\n    achar stMessage[kcbMaxSt];\n\n    if (_fInAssert)\n        return fFalse;\n\n    _fInAssert = fTrue;\n    if (pszMsg != pvNil)\n        CopySzSt(pszMsg, stMessage);\n    else\n        SetStCch(stMessage, 0);\n    if (pvNil != pszFile)\n        CopySzSt(pszFile, stFile);\n    else\n        CopySzSt(\"Some Header file\", stFile);\n    NumToString(lwLine, (byte *)stLine);\n    ParamText((byte *)stLine, (byte *)stFile, (byte *)stMessage, (byte *)\"\\p\");\n    bid = Alert(kridAssert, pvNil);\n    _fInAssert = fFalse;\n\n    switch (bid)\n    {\n    case kbidDebugger:\n        return 1;\n    case kbidIgnore:\n        break;\n    case kbidQuit:\n        ExitToShell();\n    default:\n        break;\n    }\n    return 0;\n}\n#endif\n"
  },
  {
    "path": "kauai/src/appbwin.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Windows base application class.\n\n***************************************************************************/\n#include <iostream>\n#include \"frame.h\"\n#include \"fcntl.h\"\n#include \"stdio.h\"\n#include \"io.h\"\n\nASSERTNAME\n\nWIG vwig;\n\n/***************************************************************************\n    WinMain for any frame work app. Sets up vwig and calls FrameMain.\n***************************************************************************/\nint WINAPI WinMain(HINSTANCE hinst, HINSTANCE hinstPrev, LPSTR pszs, int wShow)\n{\n    vwig.hinst = hinst;\n    vwig.hinstPrev = hinstPrev;\n    vwig.pszCmdLine = GetCommandLine();\n    vwig.wShow = wShow;\n    vwig.lwThreadMain = LwThreadCur();\n#ifdef DEBUG\n    APPB::CreateConsole();\n#endif\n    FrameMain();\n    return 0;\n}\n\n/*\n * Create debug console window and wire up std streams\n */\nvoid APPB::CreateConsole()\n{\n    if (!AllocConsole())\n    {\n        return;\n    }\n\n    FILE *fDummy;\n    freopen_s(&fDummy, \"CONOUT$\", \"w\", stdout);\n    freopen_s(&fDummy, \"CONOUT$\", \"w\", stderr);\n    freopen_s(&fDummy, \"CONIN$\", \"r\", stdin);\n    std::cout.clear();\n    std::clog.clear();\n    std::cerr.clear();\n    std::cin.clear();\n}\n\n/***************************************************************************\n    Shutdown immediately.\n***************************************************************************/\nvoid APPB::Abort(void)\n{\n    _ShutDownViewer();\n    FatalAppExit(0, PszLit(\"Fatal Error Termination\"));\n}\n\n/***************************************************************************\n    Do OS specific initialization.\n***************************************************************************/\nbool APPB::_FInitOS(void)\n{\n    AssertThis(0);\n    STN stnApp;\n    PSZ pszAppWndCls = PszLit(\"APP\");\n\n    // get the app name\n    GetStnAppName(&stnApp);\n\n    // register the window classes\n    if (vwig.hinstPrev == hNil)\n    {\n        WNDCLASS wcs;\n\n        wcs.style = CS_BYTEALIGNCLIENT | CS_OWNDC;\n        wcs.lpfnWndProc = _LuWndProc;\n        wcs.cbClsExtra = 0;\n        wcs.cbWndExtra = 0;\n        wcs.hInstance = vwig.hinst;\n        wcs.hIcon = LoadIcon(NULL, IDI_APPLICATION);\n        wcs.hCursor = LoadCursor(NULL, IDC_ARROW);\n        wcs.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);\n        wcs.lpszMenuName = 0;\n        wcs.lpszClassName = pszAppWndCls;\n        if (!RegisterClass(&wcs))\n            return fFalse;\n\n        wcs.lpfnWndProc = _LuMdiWndProc;\n        wcs.lpszClassName = PszLit(\"MDI\");\n        if (!RegisterClass(&wcs))\n            return fFalse;\n    }\n\n    if ((vwig.hwndApp = CreateWindow(pszAppWndCls, stnApp.Psz(), WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN, CW_USEDEFAULT,\n                                     CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, hNil, hNil, vwig.hinst, pvNil)) ==\n        hNil)\n    {\n        return fFalse;\n    }\n    if (hNil == (vwig.hdcApp = GetDC(vwig.hwndApp)))\n        return fFalse;\n\n    // set a timer, so we can idle regularly.\n    if (SetTimer(vwig.hwndApp, 0, 1, pvNil) == 0)\n        return fFalse;\n\n    vwig.haccel = LoadAccelerators(vwig.hinst, MIR(acidMain));\n    ShowWindow(vwig.hwndApp, vwig.wShow);\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the next event from the OS event queue. Return true iff it's a\n    real event (not just an idle type event).\n***************************************************************************/\nbool APPB::_FGetNextEvt(PEVT pevt)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n\n    GetMessage(pevt, hNil, 0, 0);\n    switch (pevt->message)\n    {\n    case WM_TIMER:\n        return fFalse;\n\n    case WM_MOUSEMOVE:\n        // dispatch these so real Windows controls can receive them,\n        // but return false so we can do our idle stuff - including\n        // our own mouse moved stuff.\n        _DispatchEvt(pevt);\n        return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    The given GOB is tracking the mouse. See if there are any relevant\n    mouse events in the system event queue. Fill in *ppt with the location\n    of the mouse relative to pgob. Also ensure that GrfcustCur() will\n    return the correct mouse state.\n***************************************************************************/\nvoid APPB::TrackMouse(PGOB pgob, PT *ppt)\n{\n    AssertThis(0);\n    AssertPo(pgob, 0);\n    AssertVarMem(ppt);\n\n    EVT evt;\n    PTS pts;\n\n    for (;;)\n    {\n        if (!PeekMessage(&evt, hNil, 0, 0, PM_REMOVE | PM_NOYIELD))\n        {\n            GetCursorPos(&pts);\n            break;\n        }\n\n        if (FIn(evt.message, WM_MOUSEFIRST, WM_MOUSELAST + 1))\n        {\n            pts = evt.pt;\n            break;\n        }\n\n        // toss key events\n        if (!FIn(evt.message, WM_KEYFIRST, WM_KEYLAST + 1))\n        {\n            TranslateMessage(&evt);\n            DispatchMessage(&evt);\n        }\n    }\n\n    ppt->xp = pts.x;\n    ppt->yp = pts.y;\n    pgob->MapPt(ppt, cooGlobal, cooLocal);\n}\n\n/***************************************************************************\n    Dispatch an OS level event to someone that knows what to do with it.\n***************************************************************************/\nvoid APPB::_DispatchEvt(PEVT pevt)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n\n    CMD cmd;\n\n    if (hNil != vwig.hwndClient && TranslateMDISysAccel(vwig.hwndClient, pevt) ||\n        hNil != vwig.haccel && TranslateAccelerator(vwig.hwndApp, vwig.haccel, pevt))\n    {\n        return;\n    }\n\n    switch (pevt->message)\n    {\n    case WM_KEYDOWN:\n    case WM_CHAR:\n        if (_FTranslateKeyEvt(pevt, (PCMD_KEY)&cmd) && pvNil != vpcex)\n            vpcex->EnqueueCmd(&cmd);\n        ResetToolTip();\n        break;\n\n    case WM_KEYUP:\n    case WM_DEADCHAR:\n    case WM_SYSKEYDOWN:\n    case WM_SYSKEYUP:\n    case WM_SYSCHAR:\n    case WM_SYSDEADCHAR:\n        ResetToolTip();\n        // fall thru\n    default:\n        TranslateMessage(pevt);\n        DispatchMessage(pevt);\n        break;\n    }\n}\n\n/***************************************************************************\n    Translate an OS level key down event to a CMD. This returns false if\n    the key maps to a menu item.\n***************************************************************************/\nbool APPB::_FTranslateKeyEvt(PEVT pevt, PCMD_KEY pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n    AssertVarMem(pcmd);\n\n    EVT evt;\n\n    ClearPb(pcmd, size(*pcmd));\n    pcmd->cid = cidKey;\n\n    if (pevt->message == WM_KEYDOWN)\n    {\n        TranslateMessage(pevt);\n        if (PeekMessage(&evt, pevt->hwnd, 0, 0, PM_NOREMOVE) && WM_CHAR == evt.message &&\n            PeekMessage(&evt, pevt->hwnd, WM_CHAR, WM_CHAR, PM_REMOVE))\n        {\n            Assert(evt.message == WM_CHAR, 0);\n            pcmd->ch = evt.wParam;\n        }\n        else\n            pcmd->ch = chNil;\n        pcmd->vk = pevt->wParam;\n    }\n    else\n    {\n        pcmd->vk = vkNil;\n        pcmd->ch = pevt->wParam;\n    }\n    pcmd->grfcust = GrfcustCur();\n    pcmd->cact = SwLow(pevt->lParam);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Look at the next system event and if it's a key, fill in the *pcmd with\n    the relevant info.\n***************************************************************************/\nbool APPB::FGetNextKeyFromOsQueue(PCMD_KEY pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    EVT evt;\n\n    for (;;)\n    {\n        if (!PeekMessage(&evt, hNil, 0, 0, PM_NOREMOVE) || !FIn(evt.message, WM_KEYFIRST, WM_KEYLAST + 1) ||\n            !PeekMessage(&evt, evt.hwnd, evt.message, evt.message, PM_REMOVE))\n        {\n            break;\n        }\n\n        if (hNil != vwig.hwndClient && TranslateMDISysAccel(vwig.hwndClient, &evt) ||\n            hNil != vwig.haccel && TranslateAccelerator(vwig.hwndApp, vwig.haccel, &evt))\n        {\n            break;\n        }\n\n        switch (evt.message)\n        {\n        case WM_CHAR:\n        case WM_KEYDOWN:\n            if (!_FTranslateKeyEvt(&evt, pcmd))\n                goto LFail;\n            return fTrue;\n\n        default:\n            TranslateMessage(&evt);\n            DispatchMessage(&evt);\n            break;\n        }\n    }\n\nLFail:\n    TrashVar(pcmd);\n    return fFalse;\n}\n\n/***************************************************************************\n    Flush user generated events from the system event queue.\n***************************************************************************/\nvoid APPB::FlushUserEvents(ulong grfevt)\n{\n    AssertThis(0);\n    EVT evt;\n\n    while ((grfevt & fevtMouse) && PeekMessage(&evt, hNil, WM_MOUSEFIRST, WM_MOUSELAST, PM_REMOVE) ||\n           (grfevt & fevtKey) && PeekMessage(&evt, hNil, WM_KEYFIRST, WM_KEYLAST, PM_REMOVE))\n    {\n    }\n}\n\n/***************************************************************************\n    Get our app window out of the clipboard viewer chain.\n***************************************************************************/\nvoid APPB::_ShutDownViewer(void)\n{\n    if (vwig.hwndApp != hNil)\n        ChangeClipboardChain(vwig.hwndApp, vwig.hwndNextViewer);\n    vwig.hwndNextViewer = hNil;\n}\n\n/***************************************************************************\n    Main window procedure (a static method).\n***************************************************************************/\nLRESULT CALLBACK APPB::_LuWndProc(HWND hwnd, uint wm, WPARAM wParam, LPARAM lw)\n{\n    AssertNilOrPo(vpappb, 0);\n    long lwRet;\n\n    if (pvNil != vpappb && vpappb->_FFrameWndProc(hwnd, wm, wParam, lw, &lwRet))\n    {\n        return lwRet;\n    }\n\n    return DefFrameProc(hwnd, vwig.hwndClient, wm, wParam, lw);\n}\n\n/***************************************************************************\n    Handle Windows messages for the main app window. Return true iff the\n    default window proc should _NOT_ be called.\n***************************************************************************/\nbool APPB::_FFrameWndProc(HWND hwnd, uint wm, WPARAM wParam, LPARAM lw, long *plwRet)\n{\n    AssertThis(0);\n    AssertVarMem(plwRet);\n\n    PGOB pgob;\n    RC rc;\n    PT pt;\n    long xp, yp;\n    long lwT;\n    long lwStyle;\n\n    *plwRet = 0;\n    switch (wm)\n    {\n    default:\n        return _FCommonWndProc(hwnd, wm, wParam, lw, plwRet);\n\n    case WM_CREATE:\n        Assert(vwig.hwndApp == hNil, 0);\n        vwig.hwndNextViewer = SetClipboardViewer(hwnd);\n        vwig.hwndApp = hwnd;\n        return fTrue;\n\n    case WM_CHANGECBCHAIN:\n        if ((HWND)wParam == vwig.hwndNextViewer)\n            vwig.hwndNextViewer = (HWND)lw;\n        else if (hNil != vwig.hwndNextViewer)\n            SendMessage(vwig.hwndNextViewer, wm, wParam, lw);\n        return fTrue;\n\n    case WM_DRAWCLIPBOARD:\n        if (hNil != vwig.hwndNextViewer)\n            SendMessage(vwig.hwndNextViewer, wm, wParam, lw);\n        if (vwig.hwndApp != hNil && GetClipboardOwner() != vwig.hwndApp)\n            vpclip->Import();\n        return fTrue;\n\n    case WM_DESTROY:\n        _ShutDownViewer();\n        vwig.hwndApp = hNil;\n        PostQuitMessage(0);\n        return fTrue;\n\n    case WM_SIZE:\n        // make sure the style bits are set correctly\n        lwT = lwStyle = GetWindowLong(vwig.hwndApp, GWL_STYLE);\n        if (_fFullScreen && wParam == SIZE_MAXIMIZED)\n        {\n            // in full screen mode, set popup and nuke the system menu stuff\n            lwStyle |= WS_POPUP;\n            lwStyle &= ~(WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX);\n        }\n        else\n        {\n            // in non-full screen mode, clear popup and set the system menu stuff\n            lwStyle &= ~WS_POPUP;\n            lwStyle |= (WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX);\n        }\n        if (lwT != lwStyle)\n            SetWindowLong(vwig.hwndApp, GWL_STYLE, lwStyle);\n\n        return _FCommonWndProc(hwnd, wm, wParam, lw, plwRet);\n\n    case WM_PALETTECHANGED:\n        if ((HWND)wParam == hwnd)\n            return fTrue;\n        // fall thru\n    case WM_QUERYNEWPALETTE:\n        *plwRet = GPT::CclrSetPalette(hwnd, fTrue) > 0;\n        return fTrue;\n\n    case WM_GETMINMAXINFO:\n        BLOCK\n        {\n            long dypFrame, dypScreen, dypExtra;\n            MINMAXINFO *pmmi;\n\n            pmmi = (MINMAXINFO *)lw;\n\n            *plwRet = DefFrameProc(hwnd, vwig.hwndClient, wm, wParam, (long)pmmi);\n            dypFrame = GetSystemMetrics(SM_CYFRAME);\n            dypScreen = GetSystemMetrics(SM_CYSCREEN);\n            dypExtra = 0;\n\n            FGetProp(kpridFullScreen, &lw);\n            if (lw)\n                dypExtra = GetSystemMetrics(SM_CYCAPTION);\n            pmmi->ptMaxPosition.y = -dypFrame - dypExtra;\n            pmmi->ptMaxSize.y = pmmi->ptMaxTrackSize.y = dypScreen + 2 * dypFrame + dypExtra;\n            _FCommonWndProc(hwnd, wm, wParam, (long)pmmi, &lw);\n        }\n        return fTrue;\n\n    case WM_CLOSE:\n        if (pvNil != vpcex)\n            vpcex->EnqueueCid(cidQuit);\n        return fTrue;\n\n    case WM_QUERYENDSESSION:\n        if (!_fQuit)\n            Quit(fFalse);\n        *plwRet = _fQuit;\n        return fTrue;\n\n    case WM_COMMAND:\n        if (GET_WM_COMMAND_HWND(wParm, lw) != hNil)\n            break;\n\n        lwT = GET_WM_COMMAND_ID(wParam, lw);\n        if (!FIn(lwT, wcidMinApp, wcidLimApp))\n            break;\n\n        if (pvNil != vpmubCur)\n            vpmubCur->EnqueueWcid(lwT);\n        else if (pvNil != vpcex)\n            vpcex->EnqueueCid(lwT);\n        return fTrue;\n\n    case WM_INITMENU:\n        if (vpmubCur != pvNil)\n        {\n            vpmubCur->Clean();\n            return fTrue;\n        }\n        break;\n\n    // these are for automated testing support...\n    case WM_GOB_STATE:\n        if (pvNil != (pgob = GOB::PgobFromHidScr(lw)))\n            *plwRet = pgob->LwState();\n        return fTrue;\n\n    case WM_GOB_LOCATION:\n        *plwRet = -1;\n        if (pvNil == (pgob = GOB::PgobFromHidScr(lw)))\n            return fTrue;\n\n        pgob->GetRcVis(&rc, cooLocal);\n        if (rc.FEmpty())\n            return fTrue;\n        pt.xp = pt.yp = 0;\n        pgob->MapPt(&pt, cooLocal, cooGlobal);\n        for (lwT = 0; lwT < 256; lwT++)\n        {\n            for (yp = rc.ypTop + (lwT & 0x0F); yp < rc.ypBottom; yp += 16)\n            {\n                for (xp = rc.xpLeft + (lwT >> 4); xp < rc.xpRight; xp += 16)\n                {\n                    if (pgob->FPtIn(xp, yp) && pgob == GOB::PgobFromPtGlobal(xp + pt.xp, yp + pt.yp))\n                    {\n                        pt.xp += xp;\n                        pt.yp += yp;\n                        GOB::PgobScreen()->MapPt(&pt, cooGlobal, cooLocal);\n                        *plwRet = LwHighLow((short)pt.xp, (short)pt.yp);\n                        return fTrue;\n                    }\n                }\n            }\n        }\n        return fTrue;\n\n    case WM_GLOBAL_STATE:\n        *plwRet = GrfcustCur();\n        return fTrue;\n\n    case WM_CURRENT_CURSOR:\n        if (pvNil != _pcurs)\n            *plwRet = _pcurs->Cno();\n        else\n            *plwRet = cnoNil;\n        return fTrue;\n\n    case WM_GET_PROP:\n        if (!FGetProp(lw, plwRet))\n            *plwRet = wParam;\n        return fTrue;\n\n    case WM_SCALE_TIME:\n        *plwRet = vpusac->LuScale();\n        vpusac->Scale(lw);\n        return fTrue;\n\n    case WM_GOB_FROM_PT:\n        pt.xp = wParam;\n        pt.yp = lw;\n        GOB::PgobScreen()->MapPt(&pt, cooLocal, cooGlobal);\n        if (pvNil != (pgob = GOB::PgobFromPtGlobal(pt.xp, pt.yp)))\n            *plwRet = pgob->Hid();\n        return fTrue;\n\n    case WM_FIRST_CHILD:\n        if (pvNil != (pgob = GOB::PgobFromHidScr(lw)) && pvNil != (pgob = pgob->PgobFirstChild()))\n        {\n            *plwRet = pgob->Hid();\n        }\n        return fTrue;\n\n    case WM_NEXT_SIB:\n        if (pvNil != (pgob = GOB::PgobFromHidScr(lw)) && pvNil != (pgob = pgob->PgobNextSib()))\n        {\n            *plwRet = pgob->Hid();\n        }\n        return fTrue;\n\n    case WM_PARENT:\n        if (pvNil != (pgob = GOB::PgobFromHidScr(lw)) && pvNil != (pgob = pgob->PgobPar()))\n        {\n            *plwRet = pgob->Hid();\n        }\n        return fTrue;\n\n    case WM_GOB_TYPE:\n        if (pvNil != (pgob = GOB::PgobFromHidScr(lw)))\n            *plwRet = pgob->Cls();\n        return fTrue;\n\n    case WM_IS_GOB:\n        if (pvNil != (pgob = GOB::PgobFromHidScr(lw)))\n            *plwRet = pgob->FIs(wParam);\n        return fTrue;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    MDI window proc (a static method).\n***************************************************************************/\nLRESULT CALLBACK APPB::_LuMdiWndProc(HWND hwnd, uint wm, WPARAM wParam, LPARAM lw)\n{\n    AssertNilOrPo(vpappb, 0);\n    long lwRet;\n\n    if (pvNil != vpappb && vpappb->_FMdiWndProc(hwnd, wm, wParam, lw, &lwRet))\n    {\n        return lwRet;\n    }\n\n    return DefMDIChildProc(hwnd, wm, wParam, lw);\n}\n\n/***************************************************************************\n    Handle MDI window messages. Returns true iff the default window proc\n    should _NOT_ be called.\n***************************************************************************/\nbool APPB::_FMdiWndProc(HWND hwnd, uint wm, WPARAM wParam, LPARAM lw, long *plwRet)\n{\n    AssertThis(0);\n    AssertVarMem(plwRet);\n\n    PGOB pgob;\n    long lwT;\n\n    *plwRet = 0;\n    switch (wm)\n    {\n    default:\n        return _FCommonWndProc(hwnd, wm, wParam, lw, plwRet);\n\n    case WM_GETMINMAXINFO:\n        *plwRet = DefMDIChildProc(hwnd, wm, wParam, lw);\n        _FCommonWndProc(hwnd, wm, wParam, lw, &lwT);\n        return fTrue;\n\n    case WM_CLOSE:\n        if ((pgob = GOB::PgobFromHwnd(hwnd)) != pvNil)\n            vpcex->EnqueueCid(cidCloseWnd, pgob);\n        return fTrue;\n\n    case WM_MDIACTIVATE:\n        GOB::ActivateHwnd(hwnd, GET_WM_MDIACTIVATE_FACTIVATE(hwnd, wParam, lw));\n        break;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Common stuff between the two window procs. Returns true if the default\n    window proc should _NOT_ be called.\n***************************************************************************/\nbool APPB::_FCommonWndProc(HWND hwnd, uint wm, WPARAM wParam, LPARAM lw, long *plwRet)\n{\n    AssertThis(0);\n    AssertVarMem(plwRet);\n\n    PGOB pgob;\n    PT pt;\n    PSCB pscb;\n    RC rc;\n    HDC hdc;\n    PAINTSTRUCT ps;\n    HRGN hrgn;\n\n    *plwRet = 0;\n    switch (wm)\n    {\n    case WM_PAINT:\n        if (IsIconic(hwnd))\n            break;\n\n        // make sure the palette is selected and realized....\n        // theoretically, we shouldn't have to do this, but because\n        // of past and present Win bugs, we do it to be safe.\n        GPT::CclrSetPalette(hwnd, fFalse);\n\n        // invalidate stuff that we have marked internally (may as well\n        // draw everything that needs drawn).\n        InvalMarked(hwnd);\n\n        // NOTE: BeginPaint has a bug where it returns in ps.rcPaint the\n        // bounds of the update region intersected with the current clip region.\n        // This causes us to not draw everything we need to. To fix this we\n        // save, open up, and restore the clipping region around the BeginPaint\n        // call.\n        hdc = GetDC(hwnd);\n        if (hNil == hdc)\n            goto LFailPaint;\n\n        if (FCreateRgn(&hrgn, pvNil) && 1 != GetClipRgn(hdc, hrgn))\n            FreePhrgn(&hrgn);\n        SelectClipRgn(hdc, hNil);\n\n        if (!BeginPaint(hwnd, &ps))\n        {\n            ReleaseDC(hwnd, hdc);\n        LFailPaint:\n            Warn(\"Painting failed\");\n            break;\n        }\n\n        // Since we use CS_OWNDC, these DCs should be the same...\n        Assert(hdc == ps.hdc, 0);\n\n        rc = RC(ps.rcPaint);\n        UpdateHwnd(hwnd, &rc);\n        EndPaint(hwnd, &ps);\n\n        // don't call the default window proc - or it will clear anything\n        // that got invalidated while we were drawing (which can happen\n        // in a multi-threaded pre-emptive environment).\n        return fTrue;\n\n    case WM_SYSCOMMAND:\n        if (wParam == SC_SCREENSAVE && !FAllowScreenSaver())\n            return fTrue;\n        break;\n\n    case WM_GETMINMAXINFO:\n        if (pvNil != (pgob = GOB::PgobFromHwnd(hwnd)))\n        {\n            MINMAXINFO *pmmi = (MINMAXINFO far *)lw;\n\n            pgob->GetMinMax(&rc);\n            pmmi->ptMinTrackSize.x = LwMax(pmmi->ptMinTrackSize.x, rc.xpLeft);\n            pmmi->ptMinTrackSize.y = LwMax(pmmi->ptMinTrackSize.y, rc.ypTop);\n            pmmi->ptMaxTrackSize.x = LwMin(pmmi->ptMaxTrackSize.x, rc.xpRight);\n            pmmi->ptMaxTrackSize.y = LwMin(pmmi->ptMaxTrackSize.y, rc.ypBottom);\n        }\n        return fTrue;\n\n    case WM_SIZE:\n        if (pvNil != (pgob = GOB::PgobFromHwnd(hwnd)))\n            pgob->SetRcFromHwnd();\n        break;\n\n    case WM_LBUTTONDOWN:\n    case WM_LBUTTONDBLCLK:\n        ResetToolTip();\n        if (pvNil != (pgob = GOB::PgobFromHwnd(hwnd)) && pvNil != (pgob = pgob->PgobFromPt(SwLow(lw), SwHigh(lw), &pt)))\n        {\n            long ts;\n\n            // compute the multiplicity of the click - don't use Windows'\n            // guess, since it can be wrong for our GOBs. It's even wrong\n            // at the HWND level! (Try double-clicking the maximize button).\n            ts = GetMessageTime();\n            if (_pgobMouse == pgob && FIn(ts - _tsMouse, 0, GetDoubleClickTime()))\n            {\n                _cactMouse++;\n            }\n            else\n                _cactMouse = 1;\n            _tsMouse = ts;\n            if (_pgobMouse != pgob && pvNil != _pgobMouse)\n            {\n                AssertPo(_pgobMouse, 0);\n                vpcex->EnqueueCid(cidRollOff, _pgobMouse);\n            }\n            _pgobMouse = pgob;\n            _xpMouse = klwMax;\n            pgob->MouseDown(pt.xp, pt.yp, _cactMouse, GrfcustCur());\n        }\n        else\n            _pgobMouse = pvNil;\n        break;\n\n    case WM_LBUTTONUP:\n    case WM_RBUTTONDOWN:\n    case WM_RBUTTONUP:\n    case WM_RBUTTONDBLCLK:\n    case WM_MBUTTONDOWN:\n    case WM_MBUTTONUP:\n    case WM_MBUTTONDBLCLK:\n        ResetToolTip();\n        break;\n\n    case WM_SETCURSOR:\n        if (LOWORD(lw) != HTCLIENT)\n            return fFalse;\n        RefreshCurs();\n        return fTrue;\n\n    case WM_HSCROLL:\n    case WM_VSCROLL:\n        pscb = (PSCB)CTL::PctlFromHctl(GET_WM_HSCROLL_HWND(wParam, lw));\n        if (pvNil != pscb && pscb->FIs(kclsSCB))\n        {\n            pscb->TrackScroll(GET_WM_HSCROLL_CODE(wParam, lw), GET_WM_HSCROLL_POS(wParam, lw));\n        }\n        break;\n\n    case WM_ACTIVATEAPP:\n        _Activate(FPure(wParam));\n        break;\n    }\n\n    return fFalse;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Debug initialization.\n***************************************************************************/\nbool APPB::_FInitDebug(void)\n{\n    AssertThis(0);\n    return fTrue;\n}\n\n// passes the strings to the assert dialog proc\nSTN *_rgpstn[3];\n\n/***************************************************************************\n    Dialog proc for assert.\n***************************************************************************/\nBOOL CALLBACK _FDlgAssert(HWND hdlg, UINT msg, WPARAM w, LPARAM lw)\n{\n    switch (msg)\n    {\n    case WM_INITDIALOG:\n        SetDlgItemText(hdlg, 3, _rgpstn[0]->Psz());\n        SetDlgItemText(hdlg, 4, _rgpstn[1]->Psz());\n        SetDlgItemText(hdlg, 5, _rgpstn[2]->Psz());\n        return fTrue;\n\n    case WM_COMMAND:\n        switch (GET_WM_COMMAND_ID(w, lw))\n        {\n        default:\n            break;\n\n        case 0:\n        case 1:\n        case 2:\n            EndDialog(hdlg, GET_WM_COMMAND_ID(w, lw));\n            return fTrue;\n        }\n        break;\n    }\n    return fFalse;\n}\n\nMUTX _mutxAssert;\n\n/***************************************************************************\n    The assert proc. Returning true breaks into the debugger.\n***************************************************************************/\nbool APPB::FAssertProcApp(PSZS pszsFile, long lwLine, PSZS pszsMsg, void *pv, long cb)\n{\n    const long kclwChain = 10;\n    STN stn0, stn1, stn2;\n    int tmc;\n    PSZ psz;\n    long cact;\n    long *plw;\n    long ilw;\n    long rglw[kclwChain];\n\n    _mutxAssert.Enter();\n\n    if (_fInAssert)\n    {\n        _mutxAssert.Leave();\n        return fFalse;\n    }\n\n    _fInAssert = fTrue;\n\n    _rgpstn[0] = &stn0;\n    _rgpstn[1] = &stn1;\n    _rgpstn[2] = &stn2;\n\n    // build the main assert message with file name and line number\n    if (pszsMsg == pvNil || *pszsMsg == 0)\n        psz = PszLit(\"Assert (%s line %d)\");\n    else\n    {\n        psz = PszLit(\"Assert (%s line %d): %s\");\n        stn2.SetSzs(pszsMsg);\n    }\n    if (pvNil != pszsFile)\n        stn1.SetSzs(pszsFile);\n    else\n        stn1 = PszLit(\"Some Header file\");\n    stn0.FFormatSz(psz, &stn1, lwLine, &stn2);\n\n    // call stack - follow the EBP chain....\n    __asm { mov plw,ebp }\n    for (ilw = 0; ilw < kclwChain; ilw++)\n    {\n        if (pvNil == plw || IsBadReadPtr(plw, 2 * size(long)) || *plw <= (long)plw)\n        {\n            rglw[ilw] = 0;\n            plw = pvNil;\n        }\n        else\n        {\n            rglw[ilw] = plw[1];\n            plw = (long *)*plw;\n        }\n    }\n\n    for (cact = 0; cact < 2; cact++)\n    {\n        // format data\n        if (pv != pvNil && cb > 0)\n        {\n            byte *pb = (byte *)pv;\n            long cbT = cb;\n            long ilw;\n            long lw;\n            STN stnT;\n\n            stn2.SetNil();\n            for (ilw = 0; ilw < 20 && cb >= 4; cb -= 4, pb += 4, ++ilw)\n            {\n                CopyPb(pb, &lw, 4);\n                stnT.FFormatSz(PszLit(\"%08x \"), lw);\n                stn2.FAppendStn(&stnT);\n            }\n            if (ilw < 20 && cb > 0)\n            {\n                lw = 0;\n                CopyPb(pb, &lw, cb);\n                stnT.FFormatSz((cb <= 2) ? PszLit(\"%04x\") : PszLit(\"%08x\"), lw);\n                stn2.FAppendStn(&stnT);\n            }\n        }\n        else\n            stn2.SetNil();\n\n        if (cact == 0)\n        {\n            pv = rglw;\n            cb = size(rglw);\n            stn1 = stn2;\n        }\n    }\n\n    OutputDebugString(stn0.Psz());\n    OutputDebugString(PszLit(\"\\n\"));\n\n    if (stn1.Cch() > 0)\n    {\n        OutputDebugString(stn1.Psz());\n        OutputDebugString(PszLit(\"\\n\"));\n    }\n    if (stn2.Cch() > 0)\n    {\n        OutputDebugString(stn2.Psz());\n        OutputDebugString(PszLit(\"\\n\"));\n    }\n\n    if (LwThreadCur() != vwig.lwThreadMain)\n    {\n        // can't use a dialog - it may cause grid - lock\n        long sid;\n        ulong grfmb;\n\n        stn0.FAppendSz(PszLit(\"\\n\"));\n        stn0.FAppendStn(&stn1);\n        stn0.FAppendSz(PszLit(\"\\n\"));\n        stn0.FAppendStn(&stn2);\n\n        grfmb = MB_SYSTEMMODAL | MB_YESNO | MB_ICONHAND;\n        sid = MessageBox(hNil, stn0.Psz(), PszLit(\"Thread Assert! (Y = Ignore, N = Debugger)\"), grfmb);\n\n        switch (sid)\n        {\n        default:\n            tmc = 0;\n            break;\n        case IDNO:\n            tmc = 1;\n            break;\n        }\n    }\n    else\n    {\n        // run the dialog\n        tmc = DialogBox(vwig.hinst, PszLit(\"AssertDlg\"), vwig.hwndApp, &_FDlgAssert);\n    }\n\n    _fInAssert = fFalse;\n    _mutxAssert.Leave();\n\n    switch (tmc)\n    {\n    case 0:\n        // ignore\n        return fFalse;\n\n    case 1:\n        // break into debugger\n        return fTrue;\n\n    case 2:\n        // abort\n        Abort(); // shouldn't return\n        Debugger();\n        break;\n    }\n\n    return fFalse;\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Put an alert up. Return which button was hit. Returns tYes for yes\n    or ok; tNo for no; tMaybe for cancel.\n***************************************************************************/\ntribool APPB::TGiveAlertSz(PSZ psz, long bk, long cok)\n{\n    AssertThis(0);\n    AssertSz(psz);\n\n    long sid;\n    ulong grfmb;\n    HWND hwnd;\n\n    grfmb = MB_APPLMODAL;\n    switch (bk)\n    {\n    default:\n        BugVar(\"bad bk value\", &bk);\n        // fall through\n    case bkOk:\n        grfmb |= MB_OK;\n        break;\n    case bkOkCancel:\n        grfmb |= MB_OKCANCEL;\n        break;\n    case bkYesNo:\n        grfmb |= MB_YESNO;\n        break;\n    case bkYesNoCancel:\n        grfmb |= MB_YESNOCANCEL;\n        break;\n    }\n\n    switch (cok)\n    {\n    default:\n        BugVar(\"bad cok value\", &cok);\n        // fall through\n    case cokNil:\n        break;\n    case cokInformation:\n        grfmb |= MB_ICONINFORMATION;\n        break;\n    case cokQuestion:\n        grfmb |= MB_ICONQUESTION;\n        break;\n    case cokExclamation:\n        grfmb |= MB_ICONEXCLAMATION;\n        break;\n    case cokStop:\n        grfmb |= MB_ICONSTOP;\n        break;\n    }\n\n    hwnd = GetActiveWindow();\n    if (hNil == hwnd)\n        hwnd = vwig.hwndApp;\n    sid = MessageBox(hwnd, psz, PszLit(\"\"), grfmb);\n\n    switch (sid)\n    {\n    default:\n    case IDYES:\n    case IDOK:\n        return tYes;\n    case IDCANCEL:\n        return tMaybe;\n    case IDNO:\n        return tNo;\n    }\n}\n"
  },
  {
    "path": "kauai/src/audioman.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n//\n//\tContains AudioMan Pubic Interfaces and Types\n//\n//\tCopyright (c) Microsoft Corporation\t1995\n//\n//\t4/27/95 *****\n//\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n#ifndef _AUDIOMANPUBLICINTEFACES_\n#define _AUDIOMANPUBLICINTEFACES_\n\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n//\n// Class ID's\n//\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n#define _CLSID_AMMixer 94C7E510 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMMixer, 0x94C7E510L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMWavFileSrc 94C7E514 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMWavFileSrc, 0x94C7E514L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMSilentSound 94C7E516 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMSilentSound, 0x94C7E516L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMAppendFilter 94C7E517 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMAppendFilter, 0x94C7E517L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMClipFilter 94C7E518 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMClipFilter, 0x94C7E518L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMConvertFilter 94C7E522 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMConvertFilter, 0x94C7E522L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMDelayFilter 94C7E519 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMDelayFilter, 0x94C7E519L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMGainFilter 94C7E51A - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMGainFilter, 0x94C7E51AL, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMGateFilter 94C7E51B - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMGateFilter, 0x94C7E51BL, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMLoopFilter 94C7E51C - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMLoopFilter, 0x94C7E51CL, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMMixFilter 94C7E51D - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMMixFilter, 0x94C7E51DL, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMFaderFilter 94C7E51E-9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMFaderFilter, 0x94C7E51EL, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMScheduleFilter 94C7E51F - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMScheduleFilter, 0x94C7E51FL, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMRandomizeFilter 94C7E520 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMRandomizeFilter, 0x94C7E520L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMDistortFilter 94C7E521 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMDistortFilter, 0x94C7E521L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMCacheFilter 94C7E523 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMCacheFilter, 0x94C7E523L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMTrimFilter 94C7E524 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMTrimFilter, 0x94C7E524L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMStereoFilter 94C7E525 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMStereoFilter, 0x94C7E525L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _CLSID_AMBiasFilter 94C7E526 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(CLSID_AMBiasFilter, 0x94C7E526L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n//\n// Interface Definitions\n//\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n#define _IID_IAMMixer A0434E40 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMMixer, 0xA0434E40L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMChannel A0434E42 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMChannel, 0xA0434E42L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMWaveOut A0434E43 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMWaveOut, 0xA0434E43L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMSound A0434E44 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMSound, 0xA0434E44L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMNotifySink A0434E45 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMNotifySink, 0xA0434E45L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMWavFileSrc A0434E46 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMWavFileSrc, 0xA0434E46L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMSilentSound A0434E48 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMSilentSound, 0xA0434E48L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMAppendFilter A0434E49 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMAppendFilter, 0xA0434E49L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMClipFilter A0434E4A - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMClipFilter, 0xA0434E4AL, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMConvertFilter A0434E4B - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMConvertFilter, 0xA0434E4BL, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMDelayFilter A0434E4C - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMDelayFilter, 0xA0434E4CL, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMGainFilter A0434E4D - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMGainFilter, 0xA0434E4DL, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMGateFilter A0434E4E - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMGateFilter, 0xA0434E4EL, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMLoopFilter A0434E4F - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMLoopFilter, 0xA0434E4FL, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMMixFilter A0434E50 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMMixFilter, 0xA0434E50L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMFaderFilter A0434E51 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMFaderFilter, 0xA0434E51L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMScheduleFilter A0434E52 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMScheduleFilter, 0xA0434E52L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMRandomizeFilter A0434E53 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMRandomizeFilter, 0xA0434E53L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMDistortFilter A0434E54 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMDistortFilter, 0xA0434E54L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMCacheFilter A0434E55 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMCacheFilter, 0xA0434E55L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMTrimFilter A0434E56 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMTrimFilter, 0xA0434E56L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMStereoFilter A0434E57 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMStereoFilter, 0xA0434E57L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n#define _IID_IAMBiasFilter A0434E58 - 9573 - 11CE-B61B - 00AA006EBBE5\nDEFINE_GUID(IID_IAMBiasFilter, 0xA0434E58L, 0x9573, 0x11CE, 0xB6, 0x1B, 0x00, 0xAA, 0x00, 0x6E, 0xBB, 0xE5);\n\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n//\n// Interface Typedefs\n//\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n\ntypedef interface IAMMixer IAMMixer;\ntypedef IAMMixer FAR *LPMIXER;\n\ntypedef interface IAMChannel IAMChannel;\ntypedef IAMChannel FAR *LPCHANNEL;\n\ntypedef interface IAMWaveOut IAMWaveOut;\ntypedef IAMWaveOut FAR *LPWAVEOUT;\n\ntypedef interface IAMSound IAMSound;\ntypedef IAMSound FAR *LPSOUND;\n\ntypedef interface IAMNotifySink IAMNotifySink;\ntypedef IAMNotifySink FAR *LPNOTIFYSINK;\n\ntypedef interface IAMWavFileSrc IAMWavFileSrc;\ntypedef IAMWavFileSrc FAR *LPWAVFILESRC;\n\ntypedef interface IAMSilentSound IAMSilentSound;\ntypedef IAMSilentSound FAR *LPSILENTSOUND;\n\ntypedef interface IAMAppendFilter IAMAppendFilter;\ntypedef IAMAppendFilter FAR *LPAPPENDFILTER;\n\ntypedef interface IAMClipFilter IAMClipFilter;\ntypedef IAMClipFilter FAR *LPCLIPFILTER;\n\ntypedef interface IAMConvertFilter IAMConvertFilter;\ntypedef IAMConvertFilter FAR *LPCONVERTFILTER;\n\ntypedef interface IAMDelayFilter IAMDelayFilter;\ntypedef IAMDelayFilter FAR *LPDELAYFILTER;\n\ntypedef interface IAMGainFilter IAMGainFilter;\ntypedef IAMGainFilter FAR *LPGAINFILTER;\n\ntypedef interface IAMGateFilter IAMGateFilter;\ntypedef IAMGateFilter FAR *LPGATEFILTER;\n\ntypedef interface IAMLoopFilter IAMLoopFilter;\ntypedef IAMLoopFilter FAR *LPLOOPFILTER;\n\ntypedef interface IAMMixFilter IAMMixFilter;\ntypedef IAMMixFilter FAR *LPMIXFILTER;\n\ntypedef interface IAMFaderFilter IAMFaderFilter;\ntypedef IAMFaderFilter FAR *LPFADERFILTER;\n\ntypedef interface IAMScheduleFilter IAMScheduleFilter;\ntypedef IAMScheduleFilter FAR *LPSCHEDULEFILTER;\n\ntypedef interface IAMRandomizeFilter IAMRandomizeFilter;\ntypedef IAMRandomizeFilter FAR *LPRANDOMIZEFILTER;\n\ntypedef interface IAMDistortFilter IAMDistortFilter;\ntypedef IAMDistortFilter FAR *LPDISTORTFILTER;\n\ntypedef interface IAMCacheFilter IAMCacheFilter;\ntypedef IAMCacheFilter FAR *LPCACHEFILTER;\n\ntypedef interface IAMTrimFilter IAMTrimFilter;\ntypedef IAMTrimFilter FAR *LPTRIMFILTER;\n\ntypedef interface IAMStereoFilter IAMStereoFilter;\ntypedef IAMStereoFilter FAR *LPSTEREOFILTER;\n\ntypedef interface IAMBiasFilter IAMBiasFilter;\ntypedef IAMBiasFilter FAR *LPBIASFILTER;\n\n#ifndef LPSTREAM\ntypedef IStream FAR *LPSTREAM;\n#endif\n\n#ifndef LPUNKNOWN\ntypedef IUnknown FAR *LPUNKNOWN;\n#endif\n\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n//\n//\tAudio HRESULT Return Codes\n//\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n\n// Success Codes\n\n#define AM_S_FIRST (OLE_S_FIRST + 5000)\n\n#define S_ENDOFSOUND (AM_S_FIRST + 1)\n#define S_SOUNDIDLE (AM_S_FIRST + 2)\n\n// Error Codes\n\n#define AM_E_FIRST (OLE_E_FIRST + 5000)\n\n#define E_BADPCMFORMAT (AM_E_FIRST + 1)\n#define E_NOSOUNDCARD (AM_E_FIRST + 2)\n#define E_INVALIDCARD (AM_E_FIRST + 3)\n#define E_AUDIODEVICEBUSY (AM_E_FIRST + 4)\n#define E_NOTACTIVE (AM_E_FIRST + 5)\n#define E_NEEDSETUP (AM_E_FIRST + 6)\n#define E_OPENDEVICEFAILED (AM_E_FIRST + 7)\n#define E_INITFAILED (AM_E_FIRST + 8)\n#define E_NOTINITED (AM_E_FIRST + 9)\n#define E_MMSYSERROR (AM_E_FIRST + 10)\n#define E_MMSYSBADDEVICEID (AM_E_FIRST + 11)\n#define E_MMSYSNOTENABLED (AM_E_FIRST + 12)\n#define E_MMSYSALLOCATED (AM_E_FIRST + 13)\n#define E_MMSYSINVALHANDLE (AM_E_FIRST + 14)\n#define E_MMSYSNODRIVER (AM_E_FIRST + 15)\n#define E_MMSYSNOMEM (AM_E_FIRST + 16)\n#define E_MMSYSNOTSUPPORTED (AM_E_FIRST + 17)\n#define E_MMSYSBADERRNUM (AM_E_FIRST + 18)\n#define E_MMSYSINVALFLAG (AM_E_FIRST + 19)\n#define E_MMSYSINVALPARAM (AM_E_FIRST + 20)\n#define E_MMSYSHANDLEBUSY (AM_E_FIRST + 21)\n#define E_MMSYSINVALIDALIAS (AM_E_FIRST + 22)\n#define E_MMSYSBADDB (AM_E_FIRST + 23)\n#define E_MMSYSKEYNOTFOUND (AM_E_FIRST + 24)\n#define E_MMSYSREADERROR (AM_E_FIRST + 25)\n#define E_MMSYSWRITEERROR (AM_E_FIRST + 26)\n#define E_MMSYSDELETEERROR (AM_E_FIRST + 27)\n#define E_MMSYSVALNOTFOUND (AM_E_FIRST + 28)\n#define E_MMSYSNODRIVERCB (AM_E_FIRST + 29)\n#define E_WAVEERRBADFORMAT (AM_E_FIRST + 30)\n#define E_WAVEERRSTILLPLAYING (AM_E_FIRST + 31)\n#define E_WAVERRUNPREPARED (AM_E_FIRST + 32)\n#define E_WAVERRSYNC (AM_E_FIRST + 33)\n#define E_TIMERRNOCANDO (AM_E_FIRST + 34)\n#define E_TIMERRSTRUCT (AM_E_FIRST + 35)\n#define E_ALREADYREGISTERED (AM_E_FIRST + 36)\n#define E_CHANNELNOTREGISTERED (AM_E_FIRST + 37)\n#define E_ALLGROUPSALLOCATED (AM_E_FIRST + 38)\n#define E_GROUPNOTALLOCATED (AM_E_FIRST + 39)\n#define E_BADTIMERPERIOD (AM_E_FIRST + 40)\n#define E_NOTIMER (AM_E_FIRST + 41)\n\n// Mixer Error Codes\n\n#define E_ALREADYINITED (OLE_E_FIRST + 8)\n\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n//\n// AudioMan common defines\n//\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nenum RAND_FREQUENCY\n{\n    NORMAL_FREQ = 0,\n    LO_OCCURRING = 1,\n    HI_OCCURRING = 2\n};\n\nenum SMPTE_FRAMERATES\n{\n    SMPTE_30_FPS = 3000,\n    SMPTE_29DF_FPS = 2997,\n    SMPTE_29_FPS = 2900,\n    SMPTE_25_FPS = 2500\n};\n\nenum NOTIFYSINKFLAGS\n{\n    NOTIFYSINK_ONSTART = 1,\n    NOTIFYSINK_ONCOMPLETION = 2,\n    NOTIFYSINK_ONERROR = 4,\n    NOTIFYSINK_ONSYNCOBJECT = 8\n};\n\nenum DELAY_FLAGS\n{\n    DELAY_FADE = 1,\n    DELAY_IN = 2,\n    DELAY_OUT = 4,\n    DELAY_FLIP = 8\n};\n\nenum WODM_CUSTOM\n{\n    WODM_SETGAIN = 100,\n    WODM_GETGAIN = 101,\n};\n\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n//\n// AudioMan Type definitions\n//\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n\ntypedef struct SMPTE\n{\n    BYTE hour;\n    BYTE min;\n    BYTE sec;\n    BYTE frame;\n    DWORD fps;\n} SMPTE, FAR *LPSMPTE;\n\ntypedef struct CacheConfig\n{\n    DWORD dwSize;\n    BOOL fSrcFormat;\n    LPWAVEFORMATEX lpFormat;\n    DWORD dwFormat;\n    DWORD dwCacheTime;\n} CACHECONFIG, FAR *LPCACHECONFIG;\n\ntypedef struct AdvMixerConfig\n{\n    DWORD dwSize;\n    UINT uVoices;\n    BOOL fRemixEnabled;\n    UINT uBufferTime;\n} ADVMIXCONFIG, FAR *LPADVMIXCONFIG;\n\ntypedef struct MixerConfig\n{\n    DWORD dwSize;\n    LPWAVEFORMATEX lpFormat;\n    DWORD dwFormat;\n} MIXERCONFIG, FAR *LPMIXERCONFIG;\n\ntypedef struct SchedulerConfig\n{\n    DWORD dwSize;\n    DWORD dwUser;\n    DWORD dwDuration;\n    DWORD dwLoops;\n    BOOL fExclusiveBlocks;\n} SCHEDULERCONFIG, FAR *LPSCHEDULERCONFIG;\n\ntypedef struct RandomizeConfig\n{\n    DWORD dwSize;\n    DWORD dwUser;\n    DWORD dwNumSubChannels;\n    DWORD dwMinTime;\n    DWORD dwMaxTime;\n    BOOL fRandomVol;\n    BOOL fRandomPan;\n    DWORD dwMinVol;\n    DWORD dwMaxVol;\n    DWORD dwMaxPan;\n} RANDOMIZECONFIG, FAR *LPRANDOMIZECONFIG;\n\ntypedef struct RequestParam\n{\n    DWORD dwSize;\n    DWORD dwFinishPos;\n    LPNOTIFYSINK lpNotifySink;\n    DWORD fdwNotifyMask;\n    //\tREFIID \t\t\t\t\triid;\n} REQUESTPARAM, FAR *LPREQUESTPARAM;\n\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n//\n// AudioMan Interface Definitions\n//\n///////////////////////////////////////////////////////////////////////////////////////////////////////////\n\nDECLARE_INTERFACE_(IAMMixer, IUnknown)\n{\n    //---  IUnknown methods---\n\n    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;\n    STDMETHOD_(ULONG, AddRef)(THIS) PURE;\n    STDMETHOD_(ULONG, Release)(THIS) PURE;\n\n    //--- IAMMixer methods---\n\n    STDMETHOD(TestConfig)\n    (THIS_ LPWAVEOUT pWaveOut, LPMIXERCONFIG pMixerConfig, LPADVMIXCONFIG pAdvMixConfig, BOOL fRecommend) PURE;\n\n    STDMETHOD(Init)\n    (THIS_ HINSTANCE hInst, LPWAVEOUT pWaveOut, LPMIXERCONFIG pMixerConfig, LPADVMIXCONFIG pAdvMixConfig) PURE;\n\n    STDMETHOD(Uninit)(THIS) PURE;\n\n    STDMETHOD(Activate)(THIS_ BOOL fActive) PURE;\n\n    STDMETHOD(Suspend)(THIS_ BOOL fSuspend) PURE;\n\n    STDMETHOD(SetConfig)(THIS_ LPMIXERCONFIG pMixerConfig, LPADVMIXCONFIG pAdvMixConfig) PURE;\n\n    STDMETHOD(GetConfig)(THIS_ LPMIXERCONFIG pMixerConfig, LPADVMIXCONFIG pAdvMixConfig) PURE;\n\n    STDMETHOD(SetMixerVolume)(THIS_ DWORD dwVolume) PURE;\n\n    STDMETHOD(GetMixerVolume)(THIS_ LPDWORD lpdwVolume) PURE;\n\n    STDMETHOD(PlaySound)(THIS_ LPSOUND pSound) PURE;\n\n    STDMETHOD_(BOOL, RemixMode)(THIS_ BOOL fActive) PURE;\n\n    STDMETHOD_(DWORD, GetAvgSample)(THIS) PURE;\n\n    STDMETHOD(AllocGroup)(THIS_ LPDWORD lpdwGroup) PURE;\n\n    STDMETHOD(FreeGroup)(THIS_ DWORD dwGroup) PURE;\n\n    STDMETHOD(EnlistGroup)(THIS_ IUnknown FAR * pChannel, DWORD dwGroup) PURE;\n\n    STDMETHOD(DefectGroup)(THIS_ LPUNKNOWN pUnknown, DWORD dwGroup) PURE;\n\n    STDMETHOD(StartGroup)(THIS_ DWORD dwGroup, BOOL fStart) PURE;\n\n    STDMETHOD(ResetGroup)(THIS_ DWORD dwGroup) PURE;\n\n    STDMETHOD(SetGroupVolume)(THIS_ DWORD dwGroup, DWORD dwVolume) PURE;\n\n    STDMETHOD(SetGroupGain)(THIS_ DWORD dwGroup, float flDBLeft, float flDBRight, BOOL fAbsolute) PURE;\n\n    STDMETHOD(SetGroupPosition)(THIS_ DWORD dwGroup, DWORD dwPosition) PURE;\n\n    STDMETHOD(AllocChannel)(THIS_ LPCHANNEL FAR * ppChannel) PURE;\n\n    STDMETHOD(RegisterChannel)(THIS_ LPUNKNOWN pUnknown) PURE;\n\n    STDMETHOD(UnregisterChannel)(THIS_ LPUNKNOWN pUnknown) PURE;\n\n    STDMETHOD(SetPriority)(THIS_ LPUNKNOWN pUnknown, DWORD dwPriority) PURE;\n\n    STDMETHOD(GetPriority)(THIS_ LPUNKNOWN pUnknown, LPDWORD lpdwPriority) PURE;\n\n    STDMETHOD_(void, Refresh)(THIS) PURE;\n};\n\nDECLARE_INTERFACE_(IAMChannel, IUnknown)\n{\n    //---  IUnknown methods---\n\n    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;\n    STDMETHOD_(ULONG, AddRef)(THIS) PURE;\n    STDMETHOD_(ULONG, Release)(THIS) PURE;\n\n    //---  IAMChannel methods---\n\n    STDMETHOD(RegisterNotify)(THIS_ LPNOTIFYSINK pNotifySink, DWORD fdwNotifyFlags) PURE;\n\n    STDMETHOD(SetSoundSrc)(THIS_ LPSOUND pSound) PURE;\n\n    STDMETHOD(SetCachedSrc)(THIS_ LPSOUND pSound, LPCACHECONFIG pCacheConfig) PURE;\n\n    STDMETHOD(GetSoundSrc)(THIS_ LPSOUND FAR * ppSound) PURE;\n\n    STDMETHOD(Play)(THIS) PURE;\n\n    STDMETHOD(Stop)(THIS) PURE;\n\n    STDMETHOD(Finish)(THIS) PURE;\n\n    STDMETHOD_(BOOL, IsPlaying)(THIS) PURE;\n\n    STDMETHOD_(DWORD, Samples)(THIS) PURE;\n\n    STDMETHOD(SetPosition)(THIS_ DWORD dwSample) PURE;\n\n    STDMETHOD(GetPosition)(THIS_ LPDWORD lpdwSample) PURE;\n\n    STDMETHOD(Mute)(THIS_ BOOL fMute) PURE;\n\n    STDMETHOD(SetVolume)(THIS_ DWORD dwVolume) PURE;\n\n    STDMETHOD(GetVolume)(THIS_ LPDWORD lpdwVolume) PURE;\n\n    STDMETHOD(SetGain)(THIS_ float flLeft, float flRight) PURE;\n\n    STDMETHOD(GetGain)(THIS_ float FAR *lpflLeft, float FAR *lpflRight) PURE;\n\n    STDMETHOD(GetSMPTEPos)(THIS_ LPSMPTE lpSMPTE) PURE;\n\n    STDMETHOD(SetSMPTEPos)(THIS_ LPSMPTE lpSMPTE) PURE;\n\n    STDMETHOD(GetTimePos)(THIS_ LPDWORD lpdwTime) PURE;\n\n    STDMETHOD(SetTimePos)(THIS_ DWORD dwTime) PURE;\n};\n\nDECLARE_INTERFACE_(IAMWaveOut, IUnknown)\n{\n    //---  IUnknown methods---\n\n    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;\n    STDMETHOD_(ULONG, AddRef)(THIS) PURE;\n    STDMETHOD_(ULONG, Release)(THIS) PURE;\n\n    //---  IAMWaveOut methods---\n\n    STDMETHOD_(UINT, GetNumDevs)(THIS) PURE;\n\n    STDMETHOD_(MMRESULT, Open)\n    (THIS_ UINT uDeviceID, LPWAVEFORMATEX lpwfx, DWORD dwCallback, DWORD dwCallbackInstance, DWORD fdwOpen) PURE;\n\n    STDMETHOD_(MMRESULT, Close)(THIS) PURE;\n\n    STDMETHOD_(MMRESULT, GetDevCaps)(THIS_ UINT uDeviceID, LPWAVEOUTCAPS lpCaps, UINT cbCaps) PURE;\n\n    STDMETHOD_(MMRESULT, GetVolume)(THIS_ LPDWORD lpdwVolume) PURE;\n\n    STDMETHOD_(MMRESULT, SetVolume)(THIS_ DWORD dwVolume) PURE;\n\n    STDMETHOD_(MMRESULT, PrepareHeader)(THIS_ LPWAVEHDR pwh, UINT cbwh) PURE;\n\n    STDMETHOD_(MMRESULT, UnprepareHeader)(THIS_ LPWAVEHDR pwh, UINT cbwh) PURE;\n\n    STDMETHOD_(MMRESULT, Write)(THIS_ LPWAVEHDR pwh, UINT cbwh) PURE;\n\n    STDMETHOD_(MMRESULT, Pause)(THIS) PURE;\n\n    STDMETHOD_(MMRESULT, Restart)(THIS) PURE;\n\n    STDMETHOD_(MMRESULT, Reset)(THIS) PURE;\n\n    STDMETHOD_(MMRESULT, BreakLoop)(THIS) PURE;\n\n    STDMETHOD_(MMRESULT, GetPosition)(THIS_ LPMMTIME lpmmt, UINT cbmmt) PURE;\n\n    STDMETHOD_(MMRESULT, GetPitch)(THIS_ LPDWORD lpdwPitch) PURE;\n\n    STDMETHOD_(MMRESULT, SetPitch)(THIS_ DWORD dwPitch) PURE;\n\n    STDMETHOD_(MMRESULT, GetPlaybackRate)(THIS_ LPDWORD lpdwRate) PURE;\n\n    STDMETHOD_(MMRESULT, SetPlaybackRate)(THIS_ DWORD dwRate) PURE;\n\n    STDMETHOD_(MMRESULT, GetID)(THIS_ UINT FAR * lpuDeviceID) PURE;\n\n    STDMETHOD_(MMRESULT, Message)(THIS_ UINT uMsg, DWORD dw1, DWORD dw2) PURE;\n\n    STDMETHOD_(MMRESULT, GetErrorText)(THIS_ MMRESULT err, LPSTR lpText, UINT cchText) PURE;\n};\n\nDECLARE_INTERFACE_(IAMSound, IUnknown)\n{\n    //---  IUnknown methods---\n    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;\n    STDMETHOD_(ULONG, AddRef)(THIS) PURE;\n    STDMETHOD_(ULONG, Release)(THIS) PURE;\n\n    //---  IAMSound methods---\n\n    STDMETHOD(GetFormat)(THIS_ LPWAVEFORMATEX pFormat, DWORD cbSize) PURE;\n\n    STDMETHOD_(DWORD, GetSamples)(THIS) PURE;\n\n    STDMETHOD(GetAlignment)(THIS_ LPDWORD lpdwLeftAlign, LPDWORD lpdwRightAlign) PURE;\n\n    STDMETHOD(GetSampleData)\n    (THIS_ LPBYTE lpBuffer, DWORD dwPosition, LPDWORD lpdwSamples, LPREQUESTPARAM lpRequestParams) PURE;\n\n    STDMETHOD(SetCacheSize)(THIS_ DWORD dwCacheSize) PURE;\n\n    STDMETHOD(SetMode)(THIS_ BOOL fActive, BOOL fRecurse) PURE;\n};\n\nDECLARE_INTERFACE_(IAMNotifySink, IUnknown)\n{\n    //---  IUnknown methods---\n    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR * ppvObj) PURE;\n    STDMETHOD_(ULONG, AddRef)(THIS) PURE;\n    STDMETHOD_(ULONG, Release)(THIS) PURE;\n\n    //---  IAMNotifySink methods---\n\n    STDMETHOD_(void, OnStart)(THIS_ LPSOUND pSound, DWORD dwPosition) PURE;\n\n    STDMETHOD_(void, OnCompletion)(THIS_ LPSOUND pSound, DWORD dwPosition) PURE;\n\n    STDMETHOD_(void, OnError)(THIS_ LPSOUND pSound, DWORD dwPosition, HRESULT hrError) PURE;\n\n    STDMETHOD_(void, OnSyncObject)(THIS_ LPSOUND pSound, DWORD dwPosition, void *pvObject) PURE;\n};\n\nDECLARE_INTERFACE_(IAMWavFileSrc, IUnknown)\n{\n    //---  IAMWavFileSrc methods---\n\n    STDMETHOD(InitFromStream)(THIS_ IStream * pStream, BOOL fSpooled) PURE;\n\n    STDMETHOD(InitFromMemory)(THIS_ char *lpMemory, DWORD dwLength) PURE;\n\n    STDMETHOD(InitFromFile)(THIS_ char *pAbsFilePath, DWORD dwOffset, BOOL fSpooled) PURE;\n};\n\nDECLARE_INTERFACE_(IAMScheduleFilter, IUnknown)\n{\n    //---  IAMScheduleFilter methods---\n\n    STDMETHOD(Init)(THIS_ LPSCHEDULERCONFIG pSchedulerConfig) PURE;\n\n    STDMETHOD(Schedule)\n    (THIS_ LPSOUND pSound, DWORD dwBeginTime, DWORD dwEndTime, DWORD dwLoops, BOOL fGrowSchedule) PURE;\n\n    STDMETHOD(ScheduleLast)(THIS_ LPSOUND pSound, DWORD dwLoops, BOOL fGrowSchedule) PURE;\n\n    STDMETHOD(ClearTime)(THIS_ DWORD dwBeginTime, DWORD dwEndTime) PURE;\n\n    STDMETHOD(ClearAll)(THIS) PURE;\n\n    STDMETHOD_(DWORD, GetNumScheduled)(THIS) PURE;\n\n    STDMETHOD(GetSound)(THIS_ LPSOUND FAR * ppSound, DWORD dwIndex) PURE;\n\n    STDMETHOD(GetTimeBlock)(THIS_ LPSOUND pSound, LPDWORD lpdwBeginTime, LPDWORD lpdwEndTime) PURE;\n\n    STDMETHOD_(BOOL, IsScheduled)(THIS_ LPSOUND pSound) PURE;\n\n    STDMETHOD_(BOOL, IsPlaying)(THIS_ LPSOUND pSound) PURE;\n};\n\nDECLARE_INTERFACE_(IAMRandomizeFilter, IUnknown)\n{\n    //---  IAMRandomizeFilter methods---\n\n    STDMETHOD(Init)(THIS_ LPRANDOMIZECONFIG pRandomizeConfig) PURE;\n\n    STDMETHOD(Add)(THIS_ LPSOUND pSound, DWORD dwFrequency) PURE;\n\n    STDMETHOD(Remove)(THIS_ LPSOUND pSound) PURE;\n\n    STDMETHOD(Clear)(THIS) PURE;\n};\n\nDECLARE_INTERFACE_(IAMSilentSound, IUnknown)\n{\n    STDMETHOD(Init)(THIS_ LPWAVEFORMATEX lpwfx, DWORD dwSamples) PURE;\n};\n\nDECLARE_INTERFACE_(IAMCacheFilter, IUnknown)\n{\n    STDMETHOD(Init)(THIS_ LPSOUND pSound, LPCACHECONFIG lpCacheConfig) PURE;\n};\n\nDECLARE_INTERFACE_(IAMTrimFilter, IUnknown)\n{\n    STDMETHOD(Init)(THIS_ LPSOUND pSound) PURE;\n};\n\nDECLARE_INTERFACE_(IAMStereoFilter, IUnknown)\n{\n    STDMETHOD(Init)(THIS_ LPSOUND pSound) PURE;\n};\n\nDECLARE_INTERFACE_(IAMBiasFilter, IUnknown)\n{\n    STDMETHOD(Init)(THIS_ LPSOUND pSound) PURE;\n};\n\nDECLARE_INTERFACE_(IAMClipFilter, IUnknown)\n{\n    STDMETHOD(Init)(THIS_ LPSOUND pSoundSrc, DWORD dwStartPos, DWORD dwEndPos) PURE;\n};\n\nDECLARE_INTERFACE_(IAMLoopFilter, IUnknown)\n{\n    STDMETHOD(Init)(THIS_ LPSOUND pSoundSrc, DWORD dwLoops) PURE;\n};\n\nDECLARE_INTERFACE_(IAMConvertFilter, IUnknown)\n{\n    STDMETHOD(Init)(THIS_ LPSOUND pSoundSrc, LPWAVEFORMATEX lpwfxDest) PURE;\n};\n\nDECLARE_INTERFACE_(IAMGainFilter, IUnknown)\n{\n    STDMETHOD(Init)(THIS_ LPSOUND pSoundSrc, float flLeft, float flRight) PURE;\n    STDMETHOD(SetGain)(THIS_ float flLeft, float flRight) PURE;\n};\n\nDECLARE_INTERFACE_(IAMDelayFilter, IUnknown)\n{\n    STDMETHOD(Init)\n    (THIS_ LPSOUND pSoundSrc, DWORD dwDelay, DWORD dwReflectLeft, DWORD dwReflectRight, DWORD dwDuration, DWORD dwFlags)\n        PURE;\n};\n\nDECLARE_INTERFACE_(IAMGateFilter, IUnknown)\n{\n    STDMETHOD(Init)(THIS_ LPSOUND pSoundSrc, float flDBGate) PURE;\n};\n\nDECLARE_INTERFACE_(IAMMixFilter, IUnknown)\n{\n    STDMETHOD(Init)(THIS_ LPSOUND pSoundSrcA, LPSOUND pSoundSrcB) PURE;\n};\n\nDECLARE_INTERFACE_(IAMAppendFilter, IUnknown)\n{\n    STDMETHOD(Init)(THIS_ LPSOUND pSoundSrcA, LPSOUND pSoundSrcB, BOOL fAlign) PURE;\n};\n\nDECLARE_INTERFACE_(IAMFaderFilter, IUnknown)\n{\n    STDMETHOD(Init)(THIS_ LPSOUND pSoundSrc, DWORD dwFadeTime, DWORD dwPosition) PURE;\n};\n\nDECLARE_INTERFACE_(IAMDistortFilter, IUnknown)\n{\n    STDMETHOD(Init)(THIS_ LPSOUND pSoundSrc, float flDBThreshold) PURE;\n};\n\n///////////////////////////////////////////////////////////////////////////////////////////////////////\n//\n// Prototypes\n//\n///////////////////////////////////////////////////////////////////////////////////////////////////////\n\nHRESULT AM_CreateInstance(REFCLSID rclsid, IUnknown *pUnkOuter, REFIID riid, void **ppvObject);\n\n///////////////////////////////////////////////////////////////////////////////////////////////////////\n//\n//\tAudioMan Helper Functions\n//\n///////////////////////////////////////////////////////////////////////////////////////////////////////\n\nSTDAPI AllocSoundFromStream(LPSOUND FAR *ppSound, LPSTREAM pStream, BOOL fSpooled, LPCACHECONFIG lpCacheConfig);\nSTDAPI AllocSoundFromFile(LPSOUND FAR *ppSound, char FAR *szFileName, DWORD dwOffset, BOOL fSpooled,\n                          LPCACHECONFIG lpCacheConfig);\nSTDAPI AllocSoundFromMemory(LPSOUND FAR *ppSound, LPBYTE lpFileData, DWORD dwSize);\nSTDAPI AllocSilentSound(LPSOUND FAR *ppSound, LPWAVEFORMATEX lpwfx, DWORD dwSamples);\nSTDAPI_(LPMIXER) GetAudioManMixer(void);\nSTDAPI AllocClipFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc, DWORD dwStartPos, DWORD dwEndPos);\nSTDAPI AllocCacheFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc, LPCACHECONFIG lpCacheConfig);\nSTDAPI AllocTrimFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc);\nSTDAPI AllocStereoFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc);\nSTDAPI AllocBiasFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc);\nSTDAPI AllocLoopFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc, DWORD dwLoops);\nSTDAPI AllocConvertFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc, LPWAVEFORMATEX lpwfx);\nSTDAPI AllocGainFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc, float flLeft, float flRight);\nSTDAPI AllocDelayFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc, DWORD dwDelay, DWORD dwReflectLeft,\n                        DWORD dwReflectRight, DWORD dwDuration, DWORD dwFlags);\nSTDAPI AllocGateFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc, float flDBGate);\nSTDAPI AllocDistortFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc, float flDBThreshold);\nSTDAPI AllocMixFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrcA, LPSOUND pSoundSrcB);\nSTDAPI AllocAppendFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrcA, LPSOUND pSoundSrcB, BOOL fAlign);\nSTDAPI AllocFaderFilter(LPSOUND FAR *ppSound, LPSOUND pSoundSrc, DWORD dwFadeTime, DWORD dwPosition);\nSTDAPI AllocScheduleFilter(LPSOUND FAR *ppSound, LPSCHEDULERCONFIG pSchedulerConfig);\nSTDAPI AllocRandomizeFilter(LPSOUND FAR *ppSound, LPRANDOMIZECONFIG pRandomizeConfig);\nSTDAPI AllocWaveOut(LPWAVEOUT FAR *ppWaveOut, LPMIXER pMixer);\n\nSTDAPI_(DWORD) TimeToSamples(LPSOUND pSound, DWORD dwTime);\nSTDAPI_(DWORD) SamplesToTime(LPSOUND pSound, DWORD dwSamples);\nSTDAPI_(DWORD) SizeToSamples(LPSOUND pSound, DWORD dwSize);\nSTDAPI_(DWORD) SamplesToSize(LPSOUND pSound, DWORD dwSamples);\nSTDAPI SoundToStreamAsWave(LPSOUND pSound, LPSTREAM pStream, LPDWORD pcbFileSize);\nSTDAPI SoundToFileAsWave(LPSOUND pSound, char FAR *pAbsFilePath);\n\nSTDAPI_(int) DetectLeaks(BOOL fDebugOut, BOOL fMessageBox);\n\n#endif //_AUDIOMANPUBLICINTEFACES_\n"
  },
  {
    "path": "kauai/src/base.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Base classes.  Base class that all other classes are derived from and\n    a base linked list class for implementing singly linked lists.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\n#ifdef DEBUG\nlong vcactSuspendAssertValid = 0;\nlong vcactAVSave = 0;\nlong vcactAV = kswMax;\n\n/*****************************************************************************\n    Debugging stuff to track leaked allocated objects.\n******************************************************************************/\n// Debugging object info.\nconst long kclwStackDoi = 10;\nstruct DOI\n{\n    short swMagic;      // magic number == kswMagicMem\n    short cactRef;      // for marking memory and asserting on unused objects\n    PSZS pszsFile;      // file NewObj appears in\n    long lwLine;        // line NewObj appears on\n    long cbTot;         // total size of the block, including the DOI\n    long lwThread;      // thread that allocated this\n    long rglwStack[10]; // what we get from following the EBP/A6 chain\n    DOI *pdoiNext;      // singly linked list\n    DOI **ppdoiPrev;\n};\n\n#define kcbBaseDebug size(DOI)\n\npriv void _AssertDoi(DOI *pdoi, bool tLinked);\ninline DOI *_PdoiFromBase(void *pv)\n{\n    return (DOI *)PvSubBv(pv, kcbBaseDebug);\n}\ninline BASE *_PbaseFromDoi(DOI *pdoi)\n{\n    return (BASE *)PvAddBv(pdoi, kcbBaseDebug);\n}\npriv void _LinkDoi(DOI *pdoi, DOI **ppdoiFirst);\npriv void _UnlinkDoi(DOI *pdoi);\n\nDOI *_pdoiFirst;    // Head of linked list of all allocated objects.\nDOI *_pdoiFirstRaw; // Head of linked list of raw newly allocated objects.\n\ninline void _Enter(void)\n{\n    vmutxBase.Enter();\n}\ninline void _Leave(void)\n{\n    vmutxBase.Leave();\n}\n\n#define klwMagicAllocatedBase 'ALOC'\n#define klwMagicNonAllocBase 'NOAL'\n\n#else //! DEBUG\n#define kcbBaseDebug 0\n#endif //! DEBUG\n\nRTCLASS(BLL)\n\n/***************************************************************************\n    Returns the run-time class id (cls) of the class.\n***************************************************************************/\nlong BASE::Cls(void)\n{\n    return kclsBASE;\n}\n\n/***************************************************************************\n    Returns true iff cls is kclsBASE.\n***************************************************************************/\nbool BASE::FIs(long cls)\n{\n    return kclsBASE == cls;\n}\n\n/***************************************************************************\n    Static method. Returns true iff cls is kclsBASE.\n***************************************************************************/\nbool BASE::FWouldBe(long cls)\n{\n    return kclsBASE == cls;\n}\n\n/***************************************************************************\n    Constructor for a BASE object.  Sets _cactRef to 1 and in debug sets\n    the magic number to indicate whether the thing was allocated.\n***************************************************************************/\nBASE::BASE(void)\n{\n    _cactRef = 1;\n#ifdef DEBUG\n    DOI *pdoi = _pdoiFirstRaw;\n\n    if (pvNil != pdoi)\n    {\n        // Note that we have to check _pdoiFirstRaw before entering the\n        // mutx so we don't try to enter the mutx before it's been\n        // initialized (during global object construction).\n        _Enter();\n\n        // see if this is in the raw list - note that we have to refresh\n        // _pdoiFirstRaw in case another thread grabbed it before we got\n        // the critical section\n        for (pdoi = _pdoiFirstRaw; pdoi != pvNil && this != _PbaseFromDoi(pdoi); pdoi = pdoi->pdoiNext)\n        {\n            _AssertDoi(pdoi, tYes);\n        }\n\n        if (pvNil != pdoi)\n        {\n            // this is us!\n            _UnlinkDoi(pdoi);\n            _LinkDoi(pdoi, &_pdoiFirst);\n\n            _lwMagic = klwMagicAllocatedBase;\n            AssertValid(0);\n        }\n\n        _Leave();\n    }\n\n    if (pvNil == pdoi)\n    {\n        _lwMagic = klwMagicNonAllocBase;\n        // don't call AssertValid here, since this may be during\n        // global initialization (FAssertProc and/or AssertPvCb may not be\n        // callable).\n    }\n\n#endif // DEBUG\n}\n\n/***************************************************************************\n    Increments the reference count.\n***************************************************************************/\nvoid BASE::AddRef(void)\n{\n    AssertThis(0);\n    _cactRef++;\n\n    // NOTE: some classes allow _cactRef == 0, so we can't assert _cactRef > 1\n    Assert(_cactRef > 0, \"_cactRef not positive\");\n}\n\n/***************************************************************************\n    Decrement the reference count and delete it if the reference count goes\n    to zero.\n***************************************************************************/\nvoid BASE::Release(void)\n{\n    AssertThis(0);\n    if (--_cactRef <= 0)\n    {\n        AssertThis(fobjAllocated);\n        delete this;\n    }\n}\n\n/***************************************************************************\n    Used to allocate all objects.  Clears the block and in debug, adds\n    magic number, reference count for marking and inserts in linked list\n    of allocated objects for object leakage tracking.\n***************************************************************************/\n#ifdef DEBUG\nvoid *BASE::operator new(size_t cb, PSZS pszsFile, long lwLine)\n#else  //! DEBUG\nvoid *BASE::operator new(size_t cb)\n#endif //! DEBUG\n{\n    AssertVarMem(pszsFile);\n    void *pv;\n\n#ifdef DEBUG\n    // do failure simulation\n    _Enter();\n\n    if (vdmglob.dmaglBase.FFail())\n    {\n        _Leave();\n        PushErc(ercOomNew);\n        return pvNil;\n    }\n\n    _Leave();\n#endif // DEBUG\n\n#ifdef WIN\n    if ((pv = (void *)GlobalAlloc(GMEM_FIXED | GMEM_ZEROINIT, cb + kcbBaseDebug)) == pvNil)\n#else  //! WIN\n    if ((pv = ::operator new(cb + kcbBaseDebug)) == pvNil)\n#endif //! WIN\n        PushErc(ercOomNew);\n    else\n    {\n#ifdef DEBUG\n        _Enter();\n\n        DOI *pdoi = (DOI *)pv;\n\n        pdoi->swMagic = kswMagicMem;\n        pdoi->cactRef = 0;\n        pdoi->pszsFile = pszsFile;\n        pdoi->lwLine = lwLine;\n        pdoi->cbTot = cb + kcbBaseDebug;\n        pdoi->lwThread = LwThreadCur();\n        pdoi->ppdoiPrev = pvNil;\n        _LinkDoi(pdoi, &_pdoiFirstRaw);\n        pv = _PbaseFromDoi(pdoi);\n\n#ifdef WIN\n        // follow the EBP chain....\n        long *plw;\n        long ilw;\n\n        __asm { mov plw,ebp }\n        for (ilw = 0; ilw < kclwStackDoi; ilw++)\n        {\n            if (pvNil == plw || IsBadReadPtr(plw, 2 * size(long)) || *plw <= (long)plw)\n            {\n                pdoi->rglwStack[ilw] = 0;\n                plw = pvNil;\n            }\n            else\n            {\n                pdoi->rglwStack[ilw] = plw[1];\n                plw = (long *)*plw;\n            }\n        }\n#endif // WIN\n\n        // update statistics\n        vdmglob.dmaglBase.Allocate(cb);\n\n        _Leave();\n#endif // DEBUG\n#ifndef WIN\n        ClearPb(pv, cb);\n#endif //! WIN\n    }\n    return pv;\n}\n\n#if defined(DEBUG) || defined(WIN)\n\n/***************************************************************************\n    DEBUG : Unlink from linked list of allocated objects and free the memory.\n***************************************************************************/\nvoid BASE::operator delete(void *pv)\n{\n#ifdef DEBUG\n    DOI *pdoi = _PdoiFromBase(pv);\n\n    _UnlinkDoi(pdoi);\n\n    // update statistics\n    vdmglob.dmaglBase.Free(pdoi->cbTot - kcbBaseDebug);\n\n    TrashPvCb(pdoi, pdoi->cbTot);\n    pv = pdoi;\n#endif // DEBUG\n#ifdef WIN\n    GlobalFree((HGLOBAL)pv);\n#else  //! WIN\n    ::delete (pv);\n#endif //! WIN\n}\n\n#ifdef DEBUG\nvoid BASE::operator delete(void *pv, schar *pszsFile, long lwLine)\n{\n    BASE::operator delete(pv);\n}\n#endif // DEBUG\n\n#endif // DEBUG || WIN\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the this pointer is valid.\n***************************************************************************/\nvoid BASE::AssertValid(ulong grfobj)\n{\n    AssertVarMem(this);\n    AssertIn(_cactRef, 0, kcbMax);\n    if (_lwMagic != klwMagicAllocatedBase)\n    {\n        Assert(!(grfobj & fobjAllocated), \"should be allocated\");\n        AssertVar(_lwMagic == klwMagicNonAllocBase, \"_lwMagic wrong\", &_lwMagic);\n        AssertPvCb(this, size(BASE));\n        return;\n    }\n    Assert(!(grfobj & fobjNotAllocated), \"should not be allocated\");\n\n    _Enter();\n\n    DOI *pdoi = _PdoiFromBase(this);\n    _AssertDoi(pdoi, tYes);\n\n    _Leave();\n}\n\n/***************************************************************************\n    If this objects has already been marked, just return. If not, call\n    its MarkMem method.\n***************************************************************************/\nvoid BASE::MarkMemStub(void)\n{\n    AssertThis(0);\n    if (_lwMagic != klwMagicAllocatedBase)\n    {\n        AssertVar(_lwMagic == klwMagicNonAllocBase, \"_lwMagic wrong\", &_lwMagic);\n        MarkMem();\n        return;\n    }\n\n    DOI *pdoi = _PdoiFromBase(this);\n    if (pdoi->cactRef == 0 && pdoi->lwThread == LwThreadCur())\n        MarkMem();\n}\n\n/***************************************************************************\n    Mark object.\n***************************************************************************/\nvoid BASE::MarkMem(void)\n{\n    AssertValid(0);\n    if (_lwMagic == klwMagicAllocatedBase)\n        _PdoiFromBase(this)->cactRef++;\n}\n\n/***************************************************************************\n    Assert that a doi is valid and optionally linked or unlinked.\n***************************************************************************/\nvoid _AssertDoi(DOI *pdoi, bool tLinked)\n{\n    _Enter();\n\n    AssertPvCb(pdoi, size(BASE) + kcbBaseDebug);\n    AssertIn(pdoi->cbTot, size(BASE) + kcbBaseDebug, kcbMax);\n    AssertPvCb(pdoi, pdoi->cbTot);\n\n    AssertVar(pdoi->swMagic == kswMagicMem, \"magic number has been hammered\", &pdoi->swMagic);\n    AssertVar(pdoi->cactRef >= 0, \"negative reference count\", &pdoi->cactRef);\n    if (pvNil == pdoi->ppdoiPrev)\n        Assert(tLinked != tYes, \"should be linked\");\n    else\n    {\n        Assert(tLinked != tNo, \"should NOT be linked\");\n\n        AssertVarMem(pdoi->ppdoiPrev);\n        AssertVar(*pdoi->ppdoiPrev == pdoi, \"*ppdoiPrev is wrong\", pdoi->ppdoiPrev);\n        if (pdoi->pdoiNext != pvNil)\n        {\n            AssertVarMem(pdoi->pdoiNext);\n            AssertVar(pdoi->pdoiNext->ppdoiPrev == &pdoi->pdoiNext, \"ppdoiPrev in next is wrong\",\n                      &pdoi->pdoiNext->ppdoiPrev);\n        }\n    }\n\n    _Leave();\n}\n\n/***************************************************************************\n    Link object into list.\n***************************************************************************/\npriv void _LinkDoi(DOI *pdoi, DOI **ppdoiFirst)\n{\n    _Enter();\n\n    _AssertDoi(pdoi, tNo);\n    AssertVarMem(ppdoiFirst);\n\n    if (*ppdoiFirst != pvNil)\n    {\n        _AssertDoi(*ppdoiFirst, tYes);\n        (*ppdoiFirst)->ppdoiPrev = &pdoi->pdoiNext;\n    }\n    pdoi->pdoiNext = *ppdoiFirst;\n    pdoi->ppdoiPrev = ppdoiFirst;\n    *ppdoiFirst = pdoi;\n    _AssertDoi(pdoi, tYes);\n\n    _Leave();\n}\n\n/***************************************************************************\n    Unlink object from list.\n***************************************************************************/\npriv void _UnlinkDoi(DOI *pdoi)\n{\n    _Enter();\n\n    _AssertDoi(pdoi, tYes);\n    *pdoi->ppdoiPrev = pdoi->pdoiNext;\n    if (pvNil != pdoi->pdoiNext)\n    {\n        pdoi->pdoiNext->ppdoiPrev = pdoi->ppdoiPrev;\n        _AssertDoi(pdoi->pdoiNext, tYes);\n    }\n    pdoi->ppdoiPrev = pvNil;\n    pdoi->pdoiNext = pvNil;\n    _AssertDoi(pdoi, tNo);\n\n    _Leave();\n}\n\n/***************************************************************************\n    Called if anyone tries to copy a class with NOCOPY(cls) in its\n    declaration.\n***************************************************************************/\nvoid __AssertOnCopy(void)\n{\n    Bug(\"Copying a non-copyable object\");\n}\n\n/***************************************************************************\n    Asserts on unmarked allocated (BASE) objects.\n***************************************************************************/\nvoid AssertUnmarkedObjs(void)\n{\n    _Enter();\n\n    STN stn;\n    SZS szs;\n    BASE *pbase;\n    DOI *pdoi;\n    DOI *pdoiLast;\n    bool fAssert;\n    long cdoiLost = 0;\n    long lwThread = LwThreadCur();\n\n    Assert(_pdoiFirstRaw == pvNil, \"Raw list is not empty!\");\n\n    // we want to traverse the list in the reverse order to report problems\n    // find the end of the list and see if there are any lost blocks\n    pdoiLast = pvNil;\n    for (pdoi = _pdoiFirst; pvNil != pdoi; pdoi = pdoi->pdoiNext)\n    {\n        pdoiLast = pdoi;\n        if (pdoi->cactRef == 0 && pdoi->lwThread == lwThread)\n            cdoiLost++;\n    }\n\n    if (cdoiLost == 0)\n    {\n        // no lost blocks\n        goto LDone;\n    }\n\n    stn.FFormatSz(PszLit(\"Total lost objects: %d. Press 'Debugger' for detail\"), cdoiLost);\n    stn.GetSzs(szs);\n    fAssert = FAssertProc(__szsFile, __LINE__, szs, pvNil, 0);\n\n    for (pdoi = pdoiLast;;)\n    {\n        pbase = _PbaseFromDoi(pdoi);\n        AssertPo(pbase, fobjAllocated);\n\n        if (pdoi->cactRef == 0 && pdoi->lwThread == lwThread)\n        {\n            if (fAssert)\n            {\n                stn.FFormatSz(PszLit(\"\\nLost object: cls='%f', size=%d, \") PszLit(\"StackTrace=(use map file)\"),\n                              pbase->Cls(), pdoi->cbTot - size(DOI));\n                stn.GetSzs(szs);\n\n                if (FAssertProc(pdoi->pszsFile, pdoi->lwLine, szs, pdoi->rglwStack, kclwStackDoi * size(long)))\n                {\n                    Debugger();\n                }\n            }\n\n            MarkMemObj(pbase);\n        }\n\n        if (pdoi->ppdoiPrev == &_pdoiFirst)\n            break;\n\n        // UUUUGGGGH! We don't have a pointer to the previous DOI, we\n        // have a pointer to the previous DOI's pdoiNext!\n        pdoi = (DOI *)PvSubBv(pdoi->ppdoiPrev, offset(DOI, pdoiNext));\n    }\n\nLDone:\n    _Leave();\n}\n\n/***************************************************************************\n    Clears all marks on allocated (BASE) objects.\n***************************************************************************/\nvoid UnmarkAllObjs(void)\n{\n    _Enter();\n\n    BASE *pbase;\n    DOI *pdoi;\n    long lwThread = LwThreadCur();\n\n    Assert(_pdoiFirstRaw == pvNil, \"Raw list is not empty!\");\n    for (pdoi = _pdoiFirst; pvNil != pdoi; pdoi = pdoi->pdoiNext)\n    {\n        pbase = _PbaseFromDoi(pdoi);\n        AssertPo(pbase, fobjAllocated);\n\n        if (pdoi->lwThread == lwThread)\n            pdoi->cactRef = 0;\n    }\n\n    _Leave();\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Linked list element constructor\n***************************************************************************/\nBLL::BLL(void)\n{\n    _ppbllPrev = pvNil;\n    _pbllNext = pvNil;\n}\n\n/***************************************************************************\n    Remove the element from the linked list\n***************************************************************************/\nBLL::~BLL(void)\n{\n    // unlink the thing\n    if (_ppbllPrev != pvNil)\n        _Attach(pvNil);\n}\n\n/***************************************************************************\n    Remove the element from the linked list (if it's in one) and reattach\n    it at ppbllPrev (if not pvNil).\n***************************************************************************/\nvoid BLL::_Attach(void *ppbllPrev)\n{\n    AssertThis(0);\n    PBLL *ppbll = (PBLL *)ppbllPrev;\n    AssertNilOrVarMem(ppbll);\n\n    // unlink the thing\n    if (_ppbllPrev != pvNil)\n    {\n        Assert(*_ppbllPrev == this, \"links corrupt\");\n        if ((*_ppbllPrev = _pbllNext) != pvNil)\n        {\n            Assert(_pbllNext->_ppbllPrev == &_pbllNext, \"links corrupt 2\");\n            _pbllNext->_ppbllPrev = _ppbllPrev;\n        }\n    }\n\n    // link the thing\n    if ((_ppbllPrev = ppbll) == pvNil)\n    {\n        // not in a linked list\n        _pbllNext = pvNil;\n        return;\n    }\n    if ((_pbllNext = *ppbll) != pvNil)\n    {\n        Assert(_pbllNext->_ppbllPrev == ppbll, \"links corrupt 3\");\n        _pbllNext->_ppbllPrev = &_pbllNext;\n    }\n    *ppbll = this;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Check the links.\n***************************************************************************/\nvoid BLL::AssertValid(ulong grf)\n{\n    BLL_PAR::AssertValid(grf);\n\n    if (_pbllNext != pvNil)\n    {\n        AssertVarMem(_pbllNext);\n        Assert(_pbllNext->_ppbllPrev == &_pbllNext, \"links corrupt\");\n    }\n    if (_ppbllPrev != pvNil)\n    {\n        AssertVarMem(_ppbllPrev);\n        Assert(*_ppbllPrev == this, \"links corrupt 2\");\n    }\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/base.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Base classes.  All classes should be derived from BASE.\n    BLL is a base class for singly linked lists.\n\n***************************************************************************/\n#ifndef BASE_H\n#define BASE_H\n\n/***************************************************************************\n    Run-time class determination support.  Each class, FOO, that uses this\n    needs a constant, kclsFOO, defined somewhere (preferably with the class\n    declaration) and needs FOO_PAR defined to be the class' parent class.\n    kclsFOO should be 'FOO' if FOO is at most 4 characters long and should\n    consist of a unique string of 4 lowercase characters if FOO is longer\n    than 4 characters. Eg, kclsSCEG is 'SCEG', but kclsSTUDIO is 'stdo'.\n\n    RTCLASS_DEC goes in the class definition.\n    RTCLASS(FOO) goes in the .cpp file.\n***************************************************************************/\n#define RTCLASS_DEC                                                                                                    \\\n  public:                                                                                                              \\\n    static bool FWouldBe(long cls);                                                                                    \\\n                                                                                                                       \\\n  public:                                                                                                              \\\n    virtual bool FIs(long cls);                                                                                        \\\n                                                                                                                       \\\n  public:                                                                                                              \\\n    virtual long Cls(void);\n\n#define RTCLASS_INLINE(foo)                                                                                            \\\n  public:                                                                                                              \\\n    static bool FWouldBe(long cls)                                                                                     \\\n    {                                                                                                                  \\\n        if (kcls##foo == cls)                                                                                          \\\n            return fTrue;                                                                                              \\\n        return foo##_PAR::FWouldBe(cls);                                                                               \\\n    }                                                                                                                  \\\n                                                                                                                       \\\n  public:                                                                                                              \\\n    virtual bool FIs(long cls)                                                                                         \\\n    {                                                                                                                  \\\n        return FWouldBe(cls);                                                                                          \\\n    }                                                                                                                  \\\n                                                                                                                       \\\n  public:                                                                                                              \\\n    virtual long Cls(void)                                                                                             \\\n    {                                                                                                                  \\\n        return kcls##foo;                                                                                              \\\n    }\n\n#define RTCLASS(foo)                                                                                                   \\\n    bool foo::FWouldBe(long cls)                                                                                       \\\n    {                                                                                                                  \\\n        if (kcls##foo == cls)                                                                                          \\\n            return fTrue;                                                                                              \\\n        return foo##_PAR::FWouldBe(cls);                                                                               \\\n    }                                                                                                                  \\\n    bool foo::FIs(long cls)                                                                                            \\\n    {                                                                                                                  \\\n        return FWouldBe(cls);                                                                                          \\\n    }                                                                                                                  \\\n    long foo::Cls(void)                                                                                                \\\n    {                                                                                                                  \\\n        return kcls##foo;                                                                                              \\\n    }\n\n/***************************************************************************\n    Debugging aids - for finding lost memory and asserting the validity\n    of objects.\n***************************************************************************/\n#ifdef DEBUG\n\nvoid AssertUnmarkedObjs(void);\n#define MarkMemObj(po)                                                                                                 \\\n    if ((po) != pvNil)                                                                                                 \\\n    {                                                                                                                  \\\n        (po)->MarkMemStub();                                                                                           \\\n    }                                                                                                                  \\\n    else                                                                                                               \\\n        (void)0\n#define NewObj new (__szsFile, __LINE__)\nvoid UnmarkAllObjs(void);\n\nconst ulong fobjNil = 0x00000000L;\nconst ulong fobjNotAllocated = 0x40000000L;\nconst ulong fobjAllocated = 0x20000000L;\nconst ulong fobjAssertFull = 0x10000000L;\n\nextern long vcactSuspendAssertValid;\nextern long vcactAVSave;\nextern long vcactAV;\ninline void SuspendAssertValid(void)\n{\n    if (0 == vcactSuspendAssertValid++)\n    {\n        vcactAVSave = vcactAV;\n        vcactAV = 0;\n    }\n}\ninline void ResumeAssertValid(void)\n{\n    if (0 == --vcactSuspendAssertValid)\n        vcactAV = vcactAVSave;\n}\n\n#define AssertPo(po, grf)                                                                                              \\\n    if ((po) != 0)                                                                                                     \\\n    {                                                                                                                  \\\n        if (vcactAV > 0)                                                                                               \\\n        {                                                                                                              \\\n            vcactAV--;                                                                                                 \\\n            (po)->AssertValid(grf);                                                                                    \\\n            vcactAV++;                                                                                                 \\\n        }                                                                                                              \\\n    }                                                                                                                  \\\n    else                                                                                                               \\\n        Bug(\"nil\")\n#define AssertNilOrPo(po, grf)                                                                                         \\\n    if ((po) != 0 && vcactAV > 0)                                                                                      \\\n    {                                                                                                                  \\\n        vcactAV--;                                                                                                     \\\n        (po)->AssertValid(grf);                                                                                        \\\n        vcactAV++;                                                                                                     \\\n    }                                                                                                                  \\\n    else                                                                                                               \\\n        (void)0\n#define AssertBasePo(po, grf)                                                                                          \\\n    if ((po) != 0)                                                                                                     \\\n    {                                                                                                                  \\\n        if (vcactAV > 0)                                                                                               \\\n        {                                                                                                              \\\n            vcactAV--;                                                                                                 \\\n            (po)->BASE::AssertValid(grf);                                                                              \\\n            vcactAV++;                                                                                                 \\\n        }                                                                                                              \\\n    }                                                                                                                  \\\n    else                                                                                                               \\\n        Bug(\"nil\")\n\n#define AssertThis(grf)                                                                                                \\\n    if (vcactAV > 0)                                                                                                   \\\n    {                                                                                                                  \\\n        vcactAV--;                                                                                                     \\\n        this->AssertValid(grf);                                                                                        \\\n        vcactAV++;                                                                                                     \\\n    }                                                                                                                  \\\n    else                                                                                                               \\\n        (void)0\n#define AssertBaseThis(grf)                                                                                            \\\n    if (vcactAV > 0)                                                                                                   \\\n    {                                                                                                                  \\\n        vcactAV--;                                                                                                     \\\n        this->BASE::AssertValid(grf);                                                                                  \\\n        vcactAV++;                                                                                                     \\\n    }                                                                                                                  \\\n    else                                                                                                               \\\n        (void)0\n\n#define MARKMEM                                                                                                        \\\n  public:                                                                                                              \\\n    virtual void MarkMem(void);\n#define ASSERT                                                                                                         \\\n  public:                                                                                                              \\\n    void AssertValid(ulong grf);\n#define NOCOPY(cls)                                                                                                    \\\n  private:                                                                                                             \\\n    cls &operator=(cls &robj)                                                                                          \\\n    {                                                                                                                  \\\n        __AssertOnCopy();                                                                                              \\\n        return *this;                                                                                                  \\\n    }\nvoid __AssertOnCopy(void);\nvoid MarkUtilMem(void);\n\n#else //! DEBUG\n\n#define SuspendAssertValid()\n#define ResumeAssertValid()\n#define AssertUnmarkedObjs()\n#define MarkMemObj(po)\n#define NewObj new\n#define UnmarkAllObjs()\n#define AssertPo(po, grf)\n#define AssertNilOrPo(po, grf)\n#define AssertBasePo(po, grf)\n#define AssertThis(grf)\n#define AssertBaseThis(grf)\n#define MARKMEM\n#define ASSERT\n#define NOCOPY(cls)\n#define MarkUtilMem()\n\n#endif //! DEBUG\n\n/***************************************************************************\n    Macro to release an object and clear the pointer to it.\n***************************************************************************/\n#define ReleasePpo(ppo)                                                                                                \\\n    if (*(ppo) != pvNil)                                                                                               \\\n    {                                                                                                                  \\\n        (*(ppo))->Release();                                                                                           \\\n        *(ppo) = pvNil;                                                                                                \\\n    }                                                                                                                  \\\n    else                                                                                                               \\\n        (void)0\n\n/***************************************************************************\n    Base class. Any instances allocated using NewObj (as opposed to being\n    on the stack) are guaranteed to be zero'ed out. Also provides reference\n    counting and debug lost memory checks.\n***************************************************************************/\n#define kclsBASE 'BASE'\nclass BASE\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  private:\n    Debug(long _lwMagic;)\n\n        protected : long _cactRef;\n\n  public:\n#ifdef DEBUG\n    void *operator new(size_t cb, schar *pszsFile, long lwLine);\n    void operator delete(void *pv, schar *pszsFile, long lwLine); // To prevent warning C4291\n    void operator delete(void *pv);\n    void MarkMemStub(void);\n#else //! DEBUG\n    void *operator new(size_t cb);\n#ifdef WIN\n    void operator delete(void *pv);\n#endif // WIN\n#endif //! DEBUG\n    BASE(void);\n    virtual ~BASE(void)\n    {\n        AssertThis(0);\n    }\n\n    virtual void AddRef(void);\n    virtual void Release(void);\n    long CactRef(void)\n    {\n        return _cactRef;\n    }\n};\n\n/***************************************************************************\n    Base linked list\n***************************************************************************/\n#define BLL_DEC(cls, rtn)                                                                                              \\\n  public:                                                                                                              \\\n    class cls *rtn(void)                                                                                               \\\n    {                                                                                                                  \\\n        return (class cls *)BLL::PbllNext();                                                                           \\\n    }\n\ntypedef class BLL *PBLL;\n#define BLL_PAR BASE\n#define kclsBLL 'BLL'\nclass BLL : public BLL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  private:\n    PBLL _pbllNext;\n    PBLL *_ppbllPrev;\n\n  protected:\n    void _Attach(void *ppbllPrev);\n\n  public:\n    BLL(void);\n    ~BLL(void);\n\n    PBLL PbllNext(void)\n    {\n        return _pbllNext;\n    }\n};\n\n#endif //! BASE_H\n"
  },
  {
    "path": "kauai/src/chcm.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Chunky file compiler and decompiler class implementations.\n\n***************************************************************************/\n#include \"kidframe.h\" //because we need scrcomg\nASSERTNAME\n\nRTCLASS(CHCM)\nRTCLASS(CHLX)\nRTCLASS(CHDC)\n\nPSZ _mpertpsz[] = {\n    PszLit(\"no error\"),\n    PszLit(\"Internal allocation error\"),                      // ertOom\n    PszLit(\"Can't open the given file\"),                      // ertOpenFile\n    PszLit(\"Can't read the given metafile\"),                  // ertReadMeta\n    PszLit(\"Number not in range for BYTE\"),                   // ertRangeByte\n    PszLit(\"Number not in range for SHORT\"),                  // ertRangeShort\n    PszLit(\"Invalid data before atomic chunk\"),               // ertBufData\n    PszLit(\"Open parenthesis '(' expected\"),                  // ertParenOpen\n    PszLit(\"Unexpected end of file\"),                         // ertEof\n    PszLit(\"String expected\"),                                // ertNeedString\n    PszLit(\"Numeric value expected\"),                         // ertNeedNumber\n    PszLit(\"Unexpected Token\"),                               // ertBadToken\n    PszLit(\"Close parenthesis ')' expected\"),                 // ertParenClose\n    PszLit(\"Invalid CHUNK declaration\"),                      // ertChunkHead\n    PszLit(\"Duplicate CHUNK declaration\"),                    // ertDupChunk\n    PszLit(\"Invalid CHILD declaration\"),                      // ertBodyChildHead\n    PszLit(\"Child chunk doesn't exist\"),                      // ertChildMissing\n    PszLit(\"A cycle would be created by this adoption\"),      // ertCycle\n    PszLit(\"Invalid PARENT declaration\"),                     // ertBodyParentHead\n    PszLit(\"Parent chunk doesn't exist\"),                     // ertParentMissing\n    PszLit(\"Alignment parameter out of range\"),               // ertBodyAlignRange\n    PszLit(\"File name expected\"),                             // ertBodyFile\n    PszLit(\"ENDCHUNK expected\"),                              // ertNeedEndChunk\n    PszLit(\"Invalid GL or AL declaration\"),                   // ertListHead\n    PszLit(\"Invalid size for list entries\"),                  // ertListEntrySize\n    PszLit(\"Variable undefined\"),                             // ertVarUndefined\n    PszLit(\"Too much data for item\"),                         // ertItemOverflow\n    PszLit(\"Can't have a free item in a general collection\"), // ertBadFree\n    PszLit(\"Syntax error\"),                                   // ertSyntax\n    PszLit(\"Invalid GG or AG declaration\"),                   // ertGroupHead\n    PszLit(\"Invalid size for fixed group data\"),              // ertGroupEntrySize\n    PszLit(\"Invalid GST or AST declaration\"),                 // ertGstHead\n    PszLit(\"Invalid size for extra string table data\"),       // ertGstEntrySize\n    PszLit(\"Script compilation failed\"),                      // ertScript\n    PszLit(\"Invalid ADOPT declaration\"),                      // ertAdoptHead\n    PszLit(\"CHUNK declaration expected\"),                     // ertNeedChunk\n    PszLit(\"Invalid BITMAP declaration\"),                     // ertBodyBitmapHead\n    PszLit(\"Can't read the given bitmap file\"),               // ertReadBitmap\n    PszLit(\"Disassembling the script failed\"),                // ertBadScript\n    PszLit(\"Can't read the given cursor file\"),               // ertReadCursor\n    PszLit(\"Can't read given file as a packed file\"),         // ertPackedFile\n    PszLit(\"Can't read the given midi file\"),                 // ertReadMidi\n    PszLit(\"Bad pack format\"),                                // ertBadPackFmt\n    PszLit(\"Illegal LONER primitive in SUBFILE\"),             // ertLonerInSub\n    PszLit(\"Unterminated SUBFILE\"),                           // ertNoEndSubFile\n};\n\n/***************************************************************************\n    Constructor for the CHCM class.\n***************************************************************************/\nCHCM::CHCM(void)\n{\n    _pglcsfc = pvNil;\n    _pcfl = pvNil;\n    _pchlx = pvNil;\n    _pglckiLoner = pvNil;\n    _pmsnkError = pvNil;\n    _cactError = 0;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for the CHCM class.\n***************************************************************************/\nCHCM::~CHCM(void)\n{\n    if (pvNil != _pglcsfc)\n    {\n        CSFC csfc;\n\n        while (_pglcsfc->FPop(&csfc))\n        {\n            ReleasePpo(&_pcfl);\n            _pcfl = csfc.pcfl;\n        }\n        ReleasePpo(&_pglcsfc);\n    }\n    ReleasePpo(&_pcfl);\n    ReleasePpo(&_pchlx);\n    ReleasePpo(&_pglckiLoner);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert that the CHCM is a valid object.\n***************************************************************************/\nvoid CHCM::AssertValid(ulong grf)\n{\n    CHCM_PAR::AssertValid(grf);\n    AssertNilOrPo(_pcfl, 0);\n    AssertPo(&_bsf, 0);\n    AssertNilOrPo(_pchlx, 0);\n    AssertNilOrPo(_pglckiLoner, 0);\n    AssertNilOrPo(_pmsnkError, 0);\n}\n\n/***************************************************************************\n    Mark memory for the CHCM object.\n***************************************************************************/\nvoid CHCM::MarkMem(void)\n{\n    AssertThis(0);\n\n    CHCM_PAR::MarkMem();\n    MarkMemObj(_pglcsfc);\n    MarkMemObj(_pcfl);\n    MarkMemObj(&_bsf);\n    MarkMemObj(_pchlx);\n    MarkMemObj(_pglckiLoner);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Registers an error, prints error message with filename and line number.\n    pszMessage may be nil.\n***************************************************************************/\nvoid CHCM::_Error(long ert, PSZ pszMessage)\n{\n    AssertThis(0);\n    AssertIn(ert, ertNil, ertLim);\n    AssertPo(_pchlx, 0);\n    STN stnFile;\n    STN stn;\n\n    _pchlx->GetStnFile(&stnFile);\n    if (ertNil == ert)\n    {\n        stn.FFormatSz(pszMessage == pvNil ? PszLit(\"%s(%d:%d) : warning\") : PszLit(\"%s(%d:%d) : warning : %z\"),\n                      &stnFile, _pchlx->LwLine(), _pchlx->IchLine(), pszMessage);\n    }\n    else\n    {\n        _cactError++;\n        stn.FFormatSz(pszMessage == pvNil ? PszLit(\"%s(%d:%d) : error : %z\") : PszLit(\"%s(%d:%d) : error : %z : %z\"),\n                      &stnFile, _pchlx->LwLine(), _pchlx->IchLine(), _mpertpsz[ert], pszMessage);\n    }\n\n    _pmsnkError->ReportLine(stn.Psz());\n}\n\n/***************************************************************************\n    Checks that lw could be accepted under the current numerical mode.\n***************************************************************************/\nvoid CHCM::_GetRgbFromLw(long lw, byte *prgb)\n{\n    AssertThis(0);\n    AssertPvCb(prgb, size(long));\n\n    switch (_cbNum)\n    {\n    case size(byte):\n        if (lw < -128 || lw > kbMax)\n            _Error(ertRangeByte);\n        prgb[0] = B0Lw(lw);\n        break;\n\n    case size(short):\n        if ((lw < kswMin) || (lw > ksuMax))\n            _Error(ertRangeShort);\n        *(short *)prgb = SwLow(lw);\n        break;\n\n    default:\n        Assert(_cbNum == size(long), \"invalid numerical mode\");\n        _cbNum = size(long);\n        *(long *)prgb = lw;\n        break;\n    }\n\n    if (_bo != kboCur && _cbNum > 1)\n        ReversePb(prgb, _cbNum);\n}\n\n/***************************************************************************\n    Checks if data is already in the buffer (and issues an error) for a\n    non-buffer command such as metafile import.\n***************************************************************************/\nvoid CHCM::_ErrorOnData(PSZ pszPreceed)\n{\n    AssertThis(0);\n    AssertSz(pszPreceed);\n\n    if (_bsf.IbMac() > 0)\n    {\n        // already data\n        _Error(ertBufData, pszPreceed);\n\n        // clear buffer\n        _bsf.FReplace(pvNil, 0, 0, _bsf.IbMac());\n    }\n}\n\n/***************************************************************************\n    Get a token, automatically handling mode change commands and negatives.\n    Return true iff *ptok is valid, not whether an error occurred.\n***************************************************************************/\nbool CHCM::_FGetCleanTok(TOK *ptok, bool fEofOk)\n{\n    AssertThis(0);\n    AssertVarMem(ptok);\n\n    long cactNegate = 0;\n\n    for (;;)\n    {\n        if (!_pchlx->FGetTokSkipSemi(ptok))\n        {\n            if (cactNegate > 0)\n                _Error(ertSyntax);\n            if (!fEofOk)\n                _Error(ertEof);\n            return fFalse;\n        }\n\n        switch (ptok->tt)\n        {\n        default:\n            if (cactNegate > 0)\n                _Error(ertSyntax);\n            return fTrue;\n        case ttLong:\n            if (cactNegate & 1)\n                ptok->lw = -ptok->lw;\n            return fTrue;\n        case ttSub:\n            cactNegate++;\n            break;\n        case ttModeStn:\n            _sm = smStn;\n            break;\n        case ttModeStz:\n            _sm = smStz;\n            break;\n        case ttModeSz:\n            _sm = smSz;\n            break;\n        case ttModeSt:\n            _sm = smSt;\n            break;\n        case ttModeByte:\n            _cbNum = size(byte);\n            break;\n        case ttModeShort:\n            _cbNum = size(short);\n            break;\n        case ttModeLong:\n            _cbNum = size(long);\n            break;\n        case ttMacBo:\n            _bo = MacWin(kboCur, kboOther);\n            break;\n        case ttWinBo:\n            _bo = MacWin(kboOther, kboCur);\n            break;\n        case ttMacOsk:\n            _osk = koskMac;\n            break;\n        case ttWinOsk:\n            _osk = koskWin;\n            break;\n        }\n    }\n}\n\n/***************************************************************************\n    Skip tokens until we encounter the given token type.\n***************************************************************************/\nvoid CHCM::_SkipPastTok(long tt)\n{\n    AssertThis(0);\n    TOK tok;\n\n    while (_FGetCleanTok(&tok) && tt != tok.tt)\n        ;\n}\n\n/***************************************************************************\n    Parse a parenthesized header from the source file.\n***************************************************************************/\nbool CHCM::_FParseParenHeader(PHP *prgphp, long cphpMax, long *pcphp)\n{\n    AssertThis(0);\n    AssertIn(cphpMax, 1, kcbMax);\n    AssertPvCb(prgphp, LwMul(cphpMax, size(PHP)));\n    AssertVarMem(pcphp);\n\n    TOK tok;\n    long iphp;\n\n    if (!_pchlx->FGetTok(&tok))\n    {\n        TrashVar(pcphp);\n        return fFalse;\n    }\n\n    if (ttOpenParen != tok.tt)\n    {\n        _Error(ertParenOpen);\n        goto LFail;\n    }\n\n    for (iphp = 0; iphp < cphpMax; iphp++)\n    {\n        AssertNilOrPo(prgphp[iphp].pstn, 0);\n\n        if (!_FGetCleanTok(&tok))\n        {\n            TrashVar(pcphp);\n            return fFalse;\n        }\n\n        if (ttCloseParen == tok.tt)\n        {\n            // close paren = end of header\n            *pcphp = iphp;\n\n            // empty remaining strings\n            for (; iphp < cphpMax; iphp++)\n            {\n                AssertNilOrPo(prgphp[iphp].pstn, 0);\n                if (pvNil != prgphp[iphp].pstn)\n                    prgphp[iphp].pstn->SetNil();\n            }\n            return fTrue;\n        }\n\n        if (ttLong == tok.tt)\n        {\n            // numerical value\n            if (prgphp[iphp].pstn == pvNil)\n                prgphp[iphp].lw = tok.lw;\n            else\n            {\n                _Error(ertNeedString);\n                prgphp[iphp].pstn->SetNil();\n            }\n        }\n        else if (ttString == tok.tt)\n        {\n            // string\n            if (prgphp[iphp].pstn != pvNil)\n                *prgphp[iphp].pstn = tok.stn;\n            else\n            {\n                _Error(ertNeedNumber);\n                prgphp[iphp].lw = 0;\n            }\n        }\n        else\n        {\n            // invalid token in header\n            _Error(ertBadToken);\n        }\n    }\n\n    // get closing paren\n    if (!_pchlx->FGetTok(&tok))\n    {\n        TrashVar(pcphp);\n        return fFalse;\n    }\n\n    if (ttCloseParen != tok.tt)\n    {\n        _Error(ertParenClose);\n    LFail:\n        _SkipPastTok(ttCloseParen);\n        return fFalse;\n    }\n\n    *pcphp = cphpMax;\n    return fTrue;\n}\n\n/***************************************************************************\n    Parse a chunk header from the source file.\n***************************************************************************/\nvoid CHCM::_ParseChunkHeader(CTG *pctg, CNO *pcno)\n{\n    AssertThis(0);\n    AssertVarMem(pctg);\n    AssertVarMem(pcno);\n\n    STN stnChunkName;\n    PHP rgphp[3];\n    long cphp;\n\n    ClearPb(rgphp, size(rgphp));\n    rgphp[2].pstn = &stnChunkName;\n    if (!_FParseParenHeader(rgphp, 3, &cphp) || cphp < 2)\n    {\n        _Error(ertChunkHead);\n        goto LFail;\n    }\n\n    *pctg = rgphp[0].lw;\n    *pcno = rgphp[1].lw;\n\n    // write empty chunk\n    if (_pcfl->FFind(*pctg, *pcno))\n    {\n        // duplicate chunk!\n        _Error(ertDupChunk);\n    LFail:\n        _SkipPastTok(ttEndChunk);\n        TrashVar(pctg);\n        TrashVar(pcno);\n        return;\n    }\n\n    // create the chunk and set its name\n    if (!_pcfl->FPutPv(pvNil, 0, *pctg, *pcno) ||\n        stnChunkName.Cch() > 0 && !FError() && !_pcfl->FSetName(*pctg, *pcno, &stnChunkName))\n    {\n        _Error(ertOom);\n    }\n}\n\n/***************************************************************************\n    Append a string to the chunk data stream.\n***************************************************************************/\nvoid CHCM::_AppendString(PSTN pstnValue)\n{\n    AssertThis(0);\n    AssertPo(pstnValue, 0);\n\n    void *pv;\n    long cb;\n    byte rgb[kcbMaxDataStn];\n\n    switch (_sm)\n    {\n    default:\n        Bug(\"Invalid string mode\");\n        // fall through\n    case smStn:\n        cb = pstnValue->CbData();\n        pstnValue->GetData(rgb);\n        pv = rgb;\n        break;\n    case smStz:\n        pv = pstnValue->Pstz();\n        cb = CchTotStz((PSTZ)pv) * size(achar);\n        break;\n    case smSz:\n        pv = pstnValue->Psz();\n        cb = CchTotSz((PSZ)pv) * size(achar);\n        break;\n    case smSt:\n        pv = pstnValue->Pst();\n        cb = CchTotSt((PST)pv) * size(achar);\n        break;\n    }\n\n    if (!FError() && !_bsf.FReplace(pv, cb, _bsf.IbMac(), 0))\n        _Error(ertOom);\n}\n\n/***************************************************************************\n    Stores a numerical value in the chunk data stream.\n***************************************************************************/\nvoid CHCM::_AppendNumber(long lwValue)\n{\n    AssertThis(0);\n    byte rgb[size(long)];\n\n    _GetRgbFromLw(lwValue, rgb);\n    if (!FError() && !_bsf.FReplace(rgb, _cbNum, _bsf.IbMac(), 0))\n        _Error(ertOom);\n}\n\n/***************************************************************************\n    Parse a child statement from the source file.\n***************************************************************************/\nvoid CHCM::_ParseBodyChild(CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    CTG ctgChild;\n    CNO cnoChild;\n    CHID chid;\n    PHP rgphp[3];\n    long cphp;\n\n    ClearPb(rgphp, size(rgphp));\n    if (!_FParseParenHeader(rgphp, 3, &cphp) || cphp < 2)\n    {\n        _Error(ertBodyChildHead);\n        return;\n    }\n\n    ctgChild = rgphp[0].lw;\n    cnoChild = rgphp[1].lw;\n    chid = rgphp[2].lw;\n\n    // check if chunk exists\n    if (!_pcfl->FFind(ctgChild, cnoChild))\n    {\n        _Error(ertChildMissing);\n        return;\n    }\n\n    // check if cycle would be created\n    if (_pcfl->TIsDescendent(ctgChild, cnoChild, ctg, cno) != tNo)\n    {\n        _Error(ertCycle);\n        return;\n    }\n\n    // do the adoption\n    if (!FError() && !_pcfl->FAdoptChild(ctg, cno, ctgChild, cnoChild, chid, fTrue))\n    {\n        _Error(ertOom);\n    }\n}\n\n/***************************************************************************\n    Parse a parent statement from the source file.\n***************************************************************************/\nvoid CHCM::_ParseBodyParent(CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    CTG ctgParent;\n    CNO cnoParent;\n    CHID chid;\n    PHP rgphp[3];\n    long cphp;\n\n    ClearPb(rgphp, size(rgphp));\n    if (!_FParseParenHeader(rgphp, 3, &cphp) || cphp < 2)\n    {\n        _Error(ertBodyParentHead);\n        return;\n    }\n\n    ctgParent = rgphp[0].lw;\n    cnoParent = rgphp[1].lw;\n    chid = rgphp[2].lw;\n\n    // check if chunk exists\n    if (!_pcfl->FFind(ctgParent, cnoParent))\n    {\n        _Error(ertParentMissing);\n        return;\n    }\n\n    // check if cycle would be created\n    if (_pcfl->TIsDescendent(ctg, cno, ctgParent, cnoParent) != tNo)\n    {\n        _Error(ertCycle);\n        return;\n    }\n\n    // do the adoption\n    if (!FError() && !_pcfl->FAdoptChild(ctgParent, cnoParent, ctg, cno, chid, fTrue))\n    {\n        _Error(ertOom);\n    }\n}\n\n/***************************************************************************\n    Parse an align statement from the source file.\n***************************************************************************/\nvoid CHCM::_ParseBodyAlign(void)\n{\n    AssertThis(0);\n    TOK tok;\n\n    if (!_FGetCleanTok(&tok))\n        return;\n\n    if (tok.tt != ttLong)\n    {\n        _Error(ertNeedNumber);\n        return;\n    }\n\n    if (!FIn(tok.lw, kcbMinAlign, kcbMaxAlign + 1))\n    {\n        STN stn;\n\n        stn.FFormatSz(PszLit(\"legal range for alignment is (%d, %d)\"), kcbMinAlign, kcbMaxAlign);\n        _Error(ertBodyAlignRange, stn.Psz());\n        return;\n    }\n\n    if (!FError())\n    {\n        // actually do the padding\n        byte rgb[100];\n        long cb;\n        long ibMac = _bsf.IbMac();\n        long ibMacNew = LwRoundAway(ibMac, tok.lw);\n\n        AssertIn(ibMacNew, ibMac, ibMac + tok.lw);\n        while ((ibMac = _bsf.IbMac()) < ibMacNew)\n        {\n            cb = LwMin(ibMacNew - ibMac, size(rgb));\n            ClearPb(rgb, cb);\n            if (!_bsf.FReplace(rgb, cb, ibMac, 0))\n            {\n                _Error(ertOom);\n                return;\n            }\n        }\n    }\n}\n\n/***************************************************************************\n    Parse a file statement from the source file.\n***************************************************************************/\nvoid CHCM::_ParseBodyFile(void)\n{\n    AssertThis(0);\n    FNI fni;\n    FLO floSrc;\n\n    if (!_pchlx->FGetPath(&fni))\n    {\n        _Error(ertBodyFile);\n        _SkipPastTok(ttEndChunk);\n        return;\n    }\n\n    if (pvNil == (floSrc.pfil = FIL::PfilOpen(&fni)))\n    {\n        _Error(ertOpenFile);\n        return;\n    }\n\n    floSrc.fp = 0;\n    floSrc.cb = floSrc.pfil->FpMac();\n    if (!_bsf.FReplaceFlo(&floSrc, fFalse, _bsf.IbMac(), 0))\n        _Error(ertOom);\n\n    ReleasePpo(&floSrc.pfil);\n}\n\n/***************************************************************************\n    Start a write operation. If fPack is true, allocate a temporary block.\n    Otherwise, get the block on the CFL. The caller should write its data\n    into the pblck, then call _FEndWrite to complete the operation.\n***************************************************************************/\nbool CHCM::_FPrepWrite(bool fPack, long cb, CTG ctg, CNO cno, PBLCK pblck)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n\n    if (fPack)\n    {\n        pblck->Free();\n        Assert(!pblck->FPacked(), \"why is block packed?\");\n        return pblck->FSetTemp(cb);\n    }\n\n    return _pcfl->FPut(cb, ctg, cno, pblck);\n}\n\n/***************************************************************************\n    Balances a call to _FPrepWrite.\n***************************************************************************/\nbool CHCM::_FEndWrite(bool fPack, CTG ctg, CNO cno, PBLCK pblck)\n{\n    AssertThis(0);\n    AssertPo(pblck, fblckUnpacked);\n\n    if (fPack)\n    {\n        // we don't fail if we can't compress it\n        pblck->FPackData();\n        return _pcfl->FPutBlck(pblck, ctg, cno);\n    }\n\n    AssertPo(pblck, fblckFile);\n    return fTrue;\n}\n\n/***************************************************************************\n    Parse a metafile import command from the source file.\n***************************************************************************/\nvoid CHCM::_ParseBodyMeta(bool fPack, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    FNI fni;\n    BLCK blck;\n    PPIC ppic;\n    TOK tok;\n\n    if (!_pchlx->FGetPath(&fni))\n    {\n        _Error(ertBodyFile);\n        _SkipPastTok(ttEndChunk);\n        return;\n    }\n\n    if (pvNil == (ppic = PIC::PpicReadNative(&fni)))\n    {\n        _Error(ertReadMeta);\n        return;\n    }\n\n    if (!FError())\n    {\n        if (!_FPrepWrite(fPack, ppic->CbOnFile(), ctg, cno, &blck) || !ppic->FWrite(&blck) ||\n            !_FEndWrite(fPack, ctg, cno, &blck))\n        {\n            _Error(ertOom);\n        }\n    }\n    ReleasePpo(&ppic);\n\n    if (_FGetCleanTok(&tok) && ttEndChunk != tok.tt)\n    {\n        _Error(ertNeedEndChunk);\n        _SkipPastTok(ttEndChunk);\n    }\n}\n\n/***************************************************************************\n    Parse a bitmap import command from the source file.\n***************************************************************************/\nvoid CHCM::_ParseBodyBitmap(bool fPack, bool fMask, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    FNI fni;\n    BLCK blck;\n    TOK tok;\n    PHP rgphp[3];\n    long cphp;\n    PMBMP pmbmp = pvNil;\n\n    ClearPb(rgphp, size(rgphp));\n    if (!_FParseParenHeader(rgphp, 3, &cphp))\n    {\n        _Error(ertBodyBitmapHead);\n        return;\n    }\n\n    if (!_pchlx->FGetPath(&fni))\n    {\n        _Error(ertBodyFile);\n        goto LFail;\n    }\n\n    if (pvNil == (pmbmp = MBMP::PmbmpReadNative(&fni, (byte)rgphp[0].lw, rgphp[1].lw, rgphp[2].lw,\n                                                fMask ? fmbmpMask : fmbmpNil)))\n    {\n        STN stn;\n        fni.GetStnPath(&stn);\n        _Error(ertReadBitmap, stn.Psz());\n        goto LFail;\n    }\n\n    if (!FError())\n    {\n        if (!_FPrepWrite(fPack, pmbmp->CbOnFile(), ctg, cno, &blck) || !pmbmp->FWrite(&blck) ||\n            !_FEndWrite(fPack, ctg, cno, &blck))\n        {\n            _Error(ertOom);\n        }\n    }\n    ReleasePpo(&pmbmp);\n\n    if (_FGetCleanTok(&tok) && ttEndChunk != tok.tt)\n    {\n        _Error(ertNeedEndChunk);\n    LFail:\n        _SkipPastTok(ttEndChunk);\n    }\n}\n\n/***************************************************************************\n    Parse a palette import command from the source file.\n***************************************************************************/\nvoid CHCM::_ParseBodyPalette(bool fPack, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    FNI fni;\n    BLCK blck;\n    TOK tok;\n    PGL pglclr;\n\n    if (!_pchlx->FGetPath(&fni))\n    {\n        _Error(ertBodyFile);\n        goto LFail;\n    }\n\n    if (!FReadBitmap(&fni, pvNil, &pglclr, pvNil, pvNil, pvNil))\n    {\n        _Error(ertReadBitmap);\n        goto LFail;\n    }\n\n    if (!FError())\n    {\n        if (!_FPrepWrite(fPack, pglclr->CbOnFile(), ctg, cno, &blck) || !pglclr->FWrite(&blck) ||\n            !_FEndWrite(fPack, ctg, cno, &blck))\n        {\n            _Error(ertOom);\n        }\n    }\n    ReleasePpo(&pglclr);\n\n    if (_FGetCleanTok(&tok) && ttEndChunk != tok.tt)\n    {\n        _Error(ertNeedEndChunk);\n    LFail:\n        _SkipPastTok(ttEndChunk);\n    }\n}\n\n/***************************************************************************\n    Parse a midi import command from the source file.\n***************************************************************************/\nvoid CHCM::_ParseBodyMidi(bool fPack, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    FNI fni;\n    BLCK blck;\n    TOK tok;\n    PMIDS pmids;\n\n    if (!_pchlx->FGetPath(&fni))\n    {\n        _Error(ertBodyFile);\n        goto LFail;\n    }\n\n    if (pvNil == (pmids = MIDS::PmidsReadNative(&fni)))\n    {\n        _Error(ertReadMidi);\n        goto LFail;\n    }\n\n    if (!FError())\n    {\n        if (!_FPrepWrite(fPack, pmids->CbOnFile(), ctg, cno, &blck) || !pmids->FWrite(&blck) ||\n            !_FEndWrite(fPack, ctg, cno, &blck))\n        {\n            _Error(ertOom);\n        }\n    }\n    ReleasePpo(&pmids);\n\n    if (_FGetCleanTok(&tok) && ttEndChunk != tok.tt)\n    {\n        _Error(ertNeedEndChunk);\n    LFail:\n        _SkipPastTok(ttEndChunk);\n    }\n}\n\n/***************************************************************************\n    Parse a cursor import command from the source file.\n***************************************************************************/\nvoid CHCM::_ParseBodyCursor(bool fPack, CTG ctg, CNO cno)\n{\n    // These are for parsing a Windows cursor file\n    struct CURDIR\n    {\n        byte dxp;\n        byte dyp;\n        byte bZero1;\n        byte bZero2;\n        short xp;\n        short yp;\n        long cb;\n        long bv;\n    };\n\n    struct CURH\n    {\n        long cbCurh;\n        long dxp;\n        long dyp;\n        short swOne1;\n        short swOne2;\n        long lwZero1;\n        long lwZero2;\n        long lwZero3;\n        long lwZero4;\n        long lwZero5;\n        long lwZero6;\n        long lw1;\n        long lw2;\n    };\n\n    AssertThis(0);\n    FNI fni;\n    BLCK blck;\n    FLO floSrc;\n    TOK tok;\n    long ccurdir, cbBits;\n    CURF curf;\n    short rgsw[3];\n    byte *prgb;\n    CURDIR *pcurdir;\n    CURH *pcurh;\n    PGG pggcurf = pvNil;\n    HQ hq = hqNil;\n\n    floSrc.pfil = pvNil;\n    if (!_pchlx->FGetPath(&fni))\n    {\n        _Error(ertBodyFile);\n        _SkipPastTok(ttEndChunk);\n        return;\n    }\n\n    if (pvNil == (floSrc.pfil = FIL::PfilOpen(&fni)))\n    {\n        _Error(ertReadCursor);\n        goto LFail;\n    }\n\n    floSrc.fp = 0;\n    floSrc.cb = floSrc.pfil->FpMac();\n    if (floSrc.cb < size(rgsw) + size(CURDIR) + size(CURH) + 128 || !floSrc.FReadRgb(rgsw, size(rgsw), 0) ||\n        rgsw[0] != 0 || rgsw[1] != 2 || !FIn(ccurdir = rgsw[2], 1, (floSrc.cb - size(rgsw)) / size(CURDIR)))\n    {\n        _Error(ertReadCursor);\n        goto LFail;\n    }\n\n    floSrc.cb -= size(rgsw);\n    floSrc.fp = size(rgsw);\n    if (!floSrc.FReadHq(&hq))\n    {\n        _Error(ertOom);\n        goto LFail;\n    }\n    ReleasePpo(&floSrc.pfil);\n\n    prgb = (byte *)PvLockHq(hq);\n    pcurdir = (CURDIR *)prgb;\n    if (pvNil == (pggcurf = GG::PggNew(size(CURF), ccurdir)))\n    {\n        _Error(ertOom);\n        goto LFail;\n    }\n    while (ccurdir-- > 0)\n    {\n        cbBits = pcurdir->dxp == 32 ? 256 : 128;\n        if (pcurdir->dxp != pcurdir->dyp || pcurdir->dxp != 16 && pcurdir->dxp != 32 || pcurdir->bZero1 != 0 ||\n            pcurdir->bZero2 != 0 || pcurdir->cb != size(CURH) + cbBits ||\n            !FIn(pcurdir->bv -= size(rgsw), LwMul(rgsw[2], size(CURDIR)), floSrc.cb - pcurdir->cb + 1) ||\n            CbRoundToLong(pcurdir->bv) != pcurdir->bv)\n        {\n            _Error(ertReadCursor);\n            goto LFail;\n        }\n        curf.curt = curtMonochrome;\n        curf.xp = (byte)pcurdir->xp;\n        curf.yp = (byte)pcurdir->yp;\n        curf.dxp = pcurdir->dxp;\n        curf.dyp = pcurdir->dyp;\n\n        pcurh = (CURH *)PvAddBv(prgb, pcurdir->bv);\n        if (pcurh->cbCurh != size(CURH) - 2 * size(long) || pcurh->dxp != pcurdir->dxp ||\n            pcurh->dyp != 2 * pcurdir->dyp || pcurh->swOne1 != 1 || pcurh->swOne2 != 1 || pcurh->lwZero1 != 0 ||\n            (pcurh->lwZero2 != 0 && pcurh->lwZero2 != pcurdir->cb - size(CURH)) || pcurh->lwZero3 != 0 ||\n            pcurh->lwZero4 != 0 || pcurh->lwZero5 != 0 || pcurh->lwZero6 != 0)\n        {\n            _Error(ertReadCursor);\n            goto LFail;\n        }\n\n        // The bits are stored in upside down DIB order!\n        ReversePb(pcurh + 1, pcurdir->cb - size(CURH));\n        SwapBytesRglw(pcurh + 1, (pcurdir->cb - size(CURH)) / size(long));\n\n        if (pcurdir->dxp == 16)\n        {\n            // need to consolidate the bits, because they are stored 4 bytes per\n            // row (2 bytes wasted) instead of 2 bytes per row.\n            long csw = 32;\n            short *pswSrc, *pswDst;\n\n            pswSrc = pswDst = (short *)(pcurh + 1);\n            while (csw-- != 0)\n            {\n                *pswDst++ = *pswSrc++;\n                pswSrc++;\n            }\n        }\n\n        if (!pggcurf->FInsert(pggcurf->IvMac(), (long)curf.dxp * curf.dyp / 4, pcurh + 1, &curf))\n        {\n            _Error(ertOom);\n            goto LFail;\n        }\n        pcurdir++;\n    }\n\nLFail:\n    // success comes through here also\n    ReleasePpo(&floSrc.pfil);\n    if (hqNil != hq)\n    {\n        UnlockHq(hq);\n        FreePhq(&hq);\n    }\n\n    if (!FError())\n    {\n        if (!_FPrepWrite(fPack, pggcurf->CbOnFile(), ctg, cno, &blck) || !pggcurf->FWrite(&blck) ||\n            !_FEndWrite(fPack, ctg, cno, &blck))\n        {\n            _Error(ertOom);\n        }\n    }\n    ReleasePpo(&pggcurf);\n\n    if (_FGetCleanTok(&tok) && ttEndChunk != tok.tt)\n    {\n        _Error(ertNeedEndChunk);\n        _SkipPastTok(ttEndChunk);\n    }\n}\n\n/***************************************************************************\n    Parse a data section from the source file.  ptok should be pre-loaded\n    with the first token and when _FParseData returns it contains the next\n    token to be processed.  Returns false iff no tokens were consumed.\n***************************************************************************/\nbool CHCM::_FParseData(PTOK ptok)\n{\n    enum\n    {\n        psNil,\n        psHaveLw,\n        psHaveBOr,\n    };\n\n    AssertThis(0);\n    AssertVarMem(ptok);\n\n    long cbNum;\n    long lw;\n    long cbNumPrev = _cbNum;\n    long ps = psNil;\n    bool fRet = fFalse;\n\n    for (;;)\n    {\n        switch (ptok->tt)\n        {\n        case ttBOr:\n            if (ps == psNil)\n                return fRet;\n            if (ps != psHaveLw)\n            {\n                ptok->tt = ttError;\n                return fRet;\n            }\n            ps = psHaveBOr;\n            break;\n\n        case ttLong:\n            if (ps == psHaveLw)\n            {\n                SwapVars(&_cbNum, &cbNumPrev);\n                _AppendNumber(lw);\n                _cbNum = cbNumPrev;\n                ps = psNil;\n            }\n            if (ps == psNil)\n            {\n                lw = ptok->lw;\n                cbNumPrev = _cbNum;\n                ps = psHaveLw;\n            }\n            else\n            {\n                Assert(ps == psHaveBOr, 0);\n                if (cbNumPrev != _cbNum)\n                {\n                    ptok->tt = ttError;\n                    return fRet;\n                }\n                lw |= ptok->lw;\n                ps = psHaveLw;\n            }\n            break;\n\n        default:\n            if (ps == psHaveBOr)\n            {\n                ptok->tt = ttError;\n                return fRet;\n            }\n            if (ps == psHaveLw)\n            {\n                SwapVars(&_cbNum, &cbNumPrev);\n                _AppendNumber(lw);\n                _cbNum = cbNumPrev;\n                ps = psNil;\n            }\n\n            switch (ptok->tt)\n            {\n            case ttString:\n                _AppendString(&ptok->stn);\n                break;\n            case ttAlign:\n                _ParseBodyAlign();\n                break;\n            case ttFile:\n                _ParseBodyFile();\n                break;\n            case ttBo:\n                // insert the current byte order\n                cbNum = _cbNum;\n                _cbNum = size(short);\n                _AppendNumber(kboCur);\n                _cbNum = cbNum;\n                break;\n            case ttOsk:\n                // insert the current osk\n                cbNum = _cbNum;\n                _cbNum = size(short);\n                _AppendNumber(_osk);\n                _cbNum = cbNum;\n                break;\n            default:\n                return fRet;\n            }\n            break;\n        }\n\n        fRet = fTrue;\n        if (!_FGetCleanTok(ptok, fTrue))\n        {\n            ptok->tt = ttError;\n            return fRet;\n        }\n    }\n}\n\n/***************************************************************************\n    Parse a list structure from the source file.\n***************************************************************************/\nvoid CHCM::_ParseBodyList(bool fPack, bool fAl, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    TOK tok;\n    PHP rgphp[1];\n    long cphp;\n    long cbEntry, cb;\n    byte *prgb;\n    long iv, iiv;\n    BLCK blck;\n    PGLB pglb = pvNil;\n    PGL pglivFree = pvNil;\n\n    // get size of entry data\n    ClearPb(rgphp, size(rgphp));\n    if (!_FParseParenHeader(rgphp, 1, &cphp) || cphp < 1)\n    {\n        _Error(ertListHead);\n        _SkipPastTok(ttEndChunk);\n        return;\n    }\n\n    if (!FIn(cbEntry = rgphp[0].lw, 1, kcbMax))\n    {\n        _Error(ertListEntrySize);\n        _SkipPastTok(ttEndChunk);\n        return;\n    }\n\n    pglb = fAl ? (PGLB)AL::PalNew(cbEntry) : (PGLB)GL::PglNew(cbEntry);\n    if (pvNil == pglb)\n    {\n        _Error(ertOom);\n        _SkipPastTok(ttEndChunk);\n        return;\n    }\n    pglb->SetMinGrow(20);\n\n    // prefetch a token\n    if (!_FGetCleanTok(&tok))\n        goto LFail;\n\n    for (;;)\n    {\n        // empty the BSF\n        _bsf.FReplace(pvNil, 0, 0, _bsf.IbMac());\n\n        if (ttFree == tok.tt)\n        {\n            if (!fAl)\n                _Error(ertBadFree);\n            else if (!FError())\n            {\n                iv = pglb->IvMac();\n                if (pvNil == pglivFree && pvNil == (pglivFree = GL::PglNew(size(long))) || !pglivFree->FAdd(&iv))\n                {\n                    _Error(ertOom);\n                }\n            }\n\n            if (!_FGetCleanTok(&tok))\n                goto LFail;\n        }\n        else if (ttItem != tok.tt)\n            break;\n        else\n        {\n            if (!_FGetCleanTok(&tok))\n                goto LFail;\n            _FParseData(&tok);\n        }\n\n        if ((cb = _bsf.IbMac()) > cbEntry)\n        {\n            _Error(ertItemOverflow);\n            continue;\n        }\n\n        AssertIn(cb, 0, cbEntry + 1);\n        if (FError())\n            continue;\n\n        if (!pglb->FAdd(pvNil, &iv))\n            _Error(ertOom);\n        else\n        {\n            Assert(iv == pglb->IvMac() - 1, \"what?\");\n            prgb = (byte *)pglb->PvLock(iv);\n            if (cb > 0)\n                _bsf.FetchRgb(0, cb, prgb);\n            if (cb < cbEntry)\n                ClearPb(prgb + cb, cbEntry - cb);\n            pglb->Unlock();\n        }\n    }\n\n    if (ttEndChunk != tok.tt)\n    {\n        _Error(ertNeedEndChunk);\n        _SkipPastTok(ttEndChunk);\n    }\n\n    if (FError())\n        goto LFail;\n\n    if (pvNil != pglivFree)\n    {\n        Assert(fAl, \"why did GL have free entries?\");\n        for (iiv = pglivFree->IvMac(); iiv-- > 0;)\n        {\n            pglivFree->Get(iiv, &iv);\n            AssertIn(iv, 0, pglb->IvMac());\n            pglb->Delete(iv);\n        }\n    }\n\n    // write list to disk\n    if (!_FPrepWrite(fPack, pglb->CbOnFile(), ctg, cno, &blck) || !pglb->FWrite(&blck, _bo, _osk) ||\n        !_FEndWrite(fPack, ctg, cno, &blck))\n    {\n        _Error(ertOom);\n    }\n\nLFail:\n    ReleasePpo(&pglb);\n    ReleasePpo(&pglivFree);\n}\n\n/***************************************************************************\n    Parse a group structure from the source file.\n***************************************************************************/\nvoid CHCM::_ParseBodyGroup(bool fPack, bool fAg, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    TOK tok;\n    PHP rgphp[1];\n    long cphp;\n    long cbFixed, cb;\n    byte *prgb;\n    long iv, iiv;\n    BLCK blck;\n    bool fFree;\n    PGGB pggb = pvNil;\n    PGL pglivFree = pvNil;\n\n    // get size of fixed data\n    ClearPb(rgphp, size(rgphp));\n    if (!_FParseParenHeader(rgphp, 1, &cphp) || cphp < 1)\n    {\n        _Error(ertGroupHead);\n        _SkipPastTok(ttEndChunk);\n        return;\n    }\n\n    if (!FIn(cbFixed = rgphp[0].lw, 0, kcbMax))\n    {\n        _Error(ertGroupEntrySize);\n        _SkipPastTok(ttEndChunk);\n        return;\n    }\n\n    pggb = fAg ? (PGGB)AG::PagNew(cbFixed) : (PGGB)GG::PggNew(cbFixed);\n    if (pvNil == pggb)\n    {\n        _Error(ertOom);\n        _SkipPastTok(ttEndChunk);\n        return;\n    }\n    pggb->SetMinGrow(10, 100);\n\n    // prefetch a token\n    if (!_FGetCleanTok(&tok))\n        goto LFail;\n\n    for (;;)\n    {\n        // empty the BSF\n        _bsf.FReplace(pvNil, 0, 0, _bsf.IbMac());\n\n        fFree = (ttFree == tok.tt);\n        if (fFree)\n        {\n            if (!fAg)\n                _Error(ertBadFree);\n            else if (!FError())\n            {\n                iv = pggb->IvMac();\n                if (pvNil == pglivFree && pvNil == (pglivFree = GL::PglNew(size(long))) || !pglivFree->FAdd(&iv))\n                {\n                    _Error(ertOom);\n                }\n            }\n\n            if (!_FGetCleanTok(&tok))\n                goto LFail;\n        }\n        else if (ttItem != tok.tt)\n            break;\n        else\n        {\n            // get the fixed part\n            if (!_FGetCleanTok(&tok))\n                goto LFail;\n            _FParseData(&tok);\n        }\n\n        if ((cb = _bsf.IbMac()) > cbFixed)\n        {\n            _Error(ertItemOverflow);\n            cb = cbFixed;\n        }\n\n        AssertIn(cb, 0, cbFixed + 1);\n        if (!FError())\n        {\n            // add the item\n            if (!pggb->FAdd(pvNil, &iv))\n                _Error(ertOom);\n            else\n            {\n                Assert(iv == pggb->IvMac() - 1, \"what?\");\n                prgb = (byte *)pggb->PvFixedLock(iv);\n                if (cb > 0)\n                    _bsf.FetchRgb(0, cb, prgb);\n                if (cb < cbFixed)\n                    ClearPb(prgb + cb, cbFixed - cb);\n                pggb->Unlock();\n            }\n        }\n\n        // check for a variable part\n        if (fFree || ttVar != tok.tt)\n            continue;\n\n        if (!_FGetCleanTok(&tok))\n            goto LFail;\n        _bsf.FReplace(pvNil, 0, 0, _bsf.IbMac());\n        _FParseData(&tok);\n\n        if (FError() || (cb = _bsf.IbMac()) <= 0)\n            continue;\n\n        Assert(iv == pggb->IvMac() - 1, \"iv wrong\");\n        if (!pggb->FInsertRgb(iv, 0, cb, pvNil))\n            _Error(ertOom);\n        else\n        {\n            prgb = (byte *)pggb->PvLock(iv);\n            _bsf.FetchRgb(0, cb, prgb);\n            pggb->Unlock();\n        }\n    }\n\n    if (ttEndChunk != tok.tt)\n    {\n        _Error(ertNeedEndChunk);\n        _SkipPastTok(ttEndChunk);\n    }\n\n    if (FError())\n        goto LFail;\n\n    if (pvNil != pglivFree)\n    {\n        Assert(fAg, \"why did GG have free entries?\");\n        for (iiv = pglivFree->IvMac(); iiv-- > 0;)\n        {\n            pglivFree->Get(iiv, &iv);\n            AssertIn(iv, 0, pggb->IvMac());\n            pggb->Delete(iv);\n        }\n    }\n\n    // write list to disk\n    if (!_FPrepWrite(fPack, pggb->CbOnFile(), ctg, cno, &blck) || !pggb->FWrite(&blck, _bo, _osk) ||\n        !_FEndWrite(fPack, ctg, cno, &blck))\n    {\n        _Error(ertOom);\n    }\n\nLFail:\n    ReleasePpo(&pggb);\n    ReleasePpo(&pglivFree);\n}\n\n/***************************************************************************\n    Parse a string table from the source file.\n***************************************************************************/\nvoid CHCM::_ParseBodyStringTable(bool fPack, bool fAst, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    TOK tok;\n    PHP rgphp[1];\n    long cphp;\n    long cbExtra, cb;\n    long iv, iiv;\n    STN stn;\n    BLCK blck;\n    bool fFree;\n    PGSTB pgstb = pvNil;\n    PGL pglivFree = pvNil;\n    void *pvExtra = pvNil;\n\n    // get size of attached data\n    ClearPb(rgphp, size(rgphp));\n    if (!_FParseParenHeader(rgphp, 1, &cphp) || cphp < 1)\n    {\n        _Error(ertGstHead);\n        _SkipPastTok(ttEndChunk);\n        return;\n    }\n\n    if (!FIn(cbExtra = rgphp[0].lw, 0, kcbMax) || cbExtra % size(long) != 0)\n    {\n        _Error(ertGstEntrySize);\n        _SkipPastTok(ttEndChunk);\n        return;\n    }\n\n    pgstb = fAst ? (PGSTB)AST::PastNew(cbExtra) : (PGSTB)GST::PgstNew(cbExtra);\n    if (pvNil == pgstb || cbExtra > 0 && !FAllocPv(&pvExtra, cbExtra, fmemNil, mprNormal))\n    {\n        _Error(ertOom);\n        _SkipPastTok(ttEndChunk);\n        goto LFail;\n    }\n    pgstb->SetMinGrow(10, 100);\n\n    // prefetch a token\n    if (!_FGetCleanTok(&tok))\n        goto LFail;\n\n    for (;;)\n    {\n        fFree = (ttFree == tok.tt);\n        if (fFree)\n        {\n            if (!fAst)\n                _Error(ertBadFree);\n            else if (!FError())\n            {\n                iv = pgstb->IvMac();\n                if (pvNil == pglivFree && pvNil == (pglivFree = GL::PglNew(size(long))) || !pglivFree->FAdd(&iv))\n                {\n                    _Error(ertOom);\n                }\n            }\n\n            if (!_FGetCleanTok(&tok))\n                goto LFail;\n            stn.SetNil();\n        }\n        else if (ttItem != tok.tt)\n            break;\n        else\n        {\n            if (!_FGetCleanTok(&tok))\n                goto LFail;\n            if (ttString != tok.tt)\n            {\n                _Error(ertNeedString);\n                _SkipPastTok(ttEndChunk);\n                goto LFail;\n            }\n            stn = tok.stn;\n            if (!_FGetCleanTok(&tok))\n                goto LFail;\n        }\n\n        if (!FError() && !pgstb->FAddStn(&stn, pvNil, &iv))\n            _Error(ertOom);\n\n        if (cbExtra <= 0 || fFree)\n            continue;\n\n        // empty the BSF and get the extra data\n        _bsf.FReplace(pvNil, 0, 0, _bsf.IbMac());\n        _FParseData(&tok);\n\n        if ((cb = _bsf.IbMac()) > cbExtra)\n        {\n            _Error(ertItemOverflow);\n            cb = cbExtra;\n        }\n\n        AssertIn(cb, 0, cbExtra + 1);\n        if (!FError())\n        {\n            // add the item\n            Assert(iv == pgstb->IvMac() - 1, \"what?\");\n            if (cb > 0)\n                _bsf.FetchRgb(0, cb, pvExtra);\n            if (cb < cbExtra)\n                ClearPb(PvAddBv(pvExtra, cb), cbExtra - cb);\n            pgstb->PutExtra(iv, pvExtra);\n        }\n    }\n\n    if (ttEndChunk != tok.tt)\n    {\n        _Error(ertNeedEndChunk);\n        _SkipPastTok(ttEndChunk);\n    }\n\n    if (FError())\n        goto LFail;\n\n    if (pvNil != pglivFree)\n    {\n        Assert(fAst, \"why did GST have free entries?\");\n        for (iiv = pglivFree->IvMac(); iiv-- > 0;)\n        {\n            pglivFree->Get(iiv, &iv);\n            AssertIn(iv, 0, pgstb->IvMac());\n            pgstb->Delete(iv);\n        }\n    }\n\n    // write list to disk\n    if (!_FPrepWrite(fPack, pgstb->CbOnFile(), ctg, cno, &blck) || !pgstb->FWrite(&blck, _bo, _osk) ||\n        !_FEndWrite(fPack, ctg, cno, &blck))\n    {\n        _Error(ertOom);\n    }\n\nLFail:\n    ReleasePpo(&pgstb);\n    ReleasePpo(&pglivFree);\n    FreePpv(&pvExtra);\n}\n\n/***************************************************************************\n    Parse a script from the source file.\n***************************************************************************/\nvoid CHCM::_ParseBodyScript(bool fPack, bool fInfix, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    SCCG sccg;\n    PSCPT pscpt;\n\n    if (pvNil == (pscpt = sccg.PscptCompileLex(_pchlx, fInfix, _pmsnkError, ttEndChunk)))\n    {\n        _Error(ertScript);\n        return;\n    }\n\n    if (!pscpt->FSaveToChunk(_pcfl, ctg, cno, fPack))\n        _Error(ertOom);\n\n    ReleasePpo(&pscpt);\n}\n\n/***************************************************************************\n    Parse a script from the source file.\n***************************************************************************/\nvoid CHCM::_ParseBodyPackedFile(bool *pfPacked)\n{\n    AssertThis(0);\n    long lw, lwSwapped;\n    TOK tok;\n\n    _ParseBodyFile();\n    if (_bsf.IbMac() < size(long))\n    {\n        _Error(ertPackedFile, PszLit(\"bad packed file\"));\n        _SkipPastTok(ttEndChunk);\n        return;\n    }\n\n    _bsf.FetchRgb(0, size(long), &lw);\n    lwSwapped = lw;\n    SwapBytesRglw(&lwSwapped, 1);\n    if (lw == klwSigPackedFile || lwSwapped == klwSigPackedFile)\n        *pfPacked = fTrue;\n    else if (lw == klwSigUnpackedFile || lwSwapped == klwSigUnpackedFile)\n        *pfPacked = fFalse;\n    else\n    {\n        _Error(ertPackedFile, PszLit(\"not a packed file\"));\n        _SkipPastTok(ttEndChunk);\n        return;\n    }\n\n    _bsf.FReplace(pvNil, 0, 0, size(long));\n\n    if (!_FGetCleanTok(&tok) || ttEndChunk != tok.tt)\n    {\n        _Error(ertNeedEndChunk);\n        _SkipPastTok(ttEndChunk);\n    }\n}\n\n/***************************************************************************\n    Start a sub file.\n***************************************************************************/\nvoid CHCM::_StartSubFile(bool fPack, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    CSFC csfc;\n\n    if (pvNil == _pglcsfc && pvNil == (_pglcsfc = GL::PglNew(size(CSFC))))\n        goto LFail;\n\n    csfc.pcfl = _pcfl;\n    csfc.ctg = ctg;\n    csfc.cno = cno;\n    csfc.fPack = FPure(fPack);\n\n    if (!_pglcsfc->FPush(&csfc))\n        goto LFail;\n\n    if (pvNil == (_pcfl = CFL::PcflCreateTemp()))\n    {\n        _pglcsfc->FPop();\n        _pcfl = csfc.pcfl;\n    LFail:\n        _Error(ertOom);\n    }\n}\n\n/***************************************************************************\n    End a sub file.\n***************************************************************************/\nvoid CHCM::_EndSubFile(void)\n{\n    AssertThis(0);\n    CSFC csfc;\n\n    if (pvNil == _pglcsfc || !_pglcsfc->FPop(&csfc))\n    {\n        _Error(ertSyntax);\n        return;\n    }\n\n    AssertPo(csfc.pcfl, 0);\n\n    if (!FError())\n    {\n        long icki;\n        CKI cki;\n        long cbTot, cbT;\n        FP fpDst;\n        PFIL pfilDst = pvNil;\n        bool fRet = fFalse;\n\n        // get the size of the data\n        cbTot = 0;\n        for (icki = 0; _pcfl->FGetCki(icki, &cki); icki++)\n        {\n            if (_pcfl->CckiRef(cki.ctg, cki.cno) > 0)\n                continue;\n            if (!_pcfl->FWriteChunkTree(cki.ctg, cki.cno, pvNil, 0, &cbT))\n                goto LFail;\n            cbTot += cbT;\n        }\n\n        // setup pfilDst and fpDst for writing the chunk trees\n        if (csfc.fPack)\n        {\n            pfilDst = FIL::PfilCreateTemp();\n            fpDst = 0;\n        }\n        else\n        {\n            FLO floDst;\n\n            // resize the chunk\n            if (!csfc.pcfl->FPut(cbTot, csfc.ctg, csfc.cno))\n                goto LFail;\n            csfc.pcfl->FFindFlo(csfc.ctg, csfc.cno, &floDst);\n\n            pfilDst = floDst.pfil;\n            pfilDst->AddRef();\n            fpDst = floDst.fp;\n        }\n\n        // write the data to (pfilDst, fpDst)\n        for (icki = 0; _pcfl->FGetCki(icki, &cki); icki++)\n        {\n            if (_pcfl->CckiRef(cki.ctg, cki.cno) > 0)\n                continue;\n            if (!_pcfl->FWriteChunkTree(cki.ctg, cki.cno, pfilDst, fpDst, &cbT))\n                goto LFail;\n            fpDst += cbT;\n            Debug(cbTot -= cbT;)\n        }\n        Assert(cbTot == 0, \"FWriteChunkTree messed up!\");\n\n        if (csfc.fPack)\n        {\n            BLCK blck(pfilDst, 0, fpDst);\n\n            // pack the data and put it in the chunk.\n            blck.FPackData();\n            if (!csfc.pcfl->FPutBlck(&blck, csfc.ctg, csfc.cno))\n                goto LFail;\n        }\n\n        csfc.pcfl->SetForest(csfc.ctg, csfc.cno, fTrue);\n        fRet = fTrue;\n\n    LFail:\n        if (!fRet)\n            _Error(ertOom);\n\n        ReleasePpo(&pfilDst);\n    }\n\n    ReleasePpo(&_pcfl);\n    _pcfl = csfc.pcfl;\n}\n\n/***************************************************************************\n    Parse a PACKFMT command, which is used to specify the packing format\n    to use.\n***************************************************************************/\nvoid CHCM::_ParsePackFmt(void)\n{\n    AssertThis(0);\n    PHP rgphp[1];\n    long cphp;\n    long cfmt;\n\n    // get the format\n    ClearPb(rgphp, size(rgphp));\n    if (!_FParseParenHeader(rgphp, 1, &cphp) || cphp < 1)\n    {\n        _Error(ertSyntax);\n        return;\n    }\n\n    cfmt = rgphp[0].lw;\n    if (!vpcodmUtil->FCanDo(cfmt, fTrue))\n        _Error(ertBadPackFmt);\n    else\n        vpcodmUtil->SetCfmtDefault(cfmt);\n}\n\n/***************************************************************************\n    Parse the chunk body from the source file.\n***************************************************************************/\nvoid CHCM::_ParseChunkBody(CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    TOK tok;\n    BLCK blck;\n    CKI cki;\n    bool fFetch;\n    bool fPack, fPrePacked;\n\n    // empty the BSF\n    _bsf.FReplace(pvNil, 0, 0, _bsf.IbMac());\n\n    fFetch = fTrue;\n    fPack = fPrePacked = fFalse;\n    for (;;)\n    {\n        if (fFetch && !_FGetCleanTok(&tok))\n            return;\n\n        fFetch = fTrue;\n        switch (tok.tt)\n        {\n        default:\n            if (!_FParseData(&tok))\n            {\n                _Error(ertBadToken);\n                _SkipPastTok(ttEndChunk);\n                return;\n            }\n            // don't fetch next token\n            fFetch = fFalse;\n            break;\n        case ttChild:\n            _ParseBodyChild(ctg, cno);\n            break;\n        case ttParent:\n            _ParseBodyParent(ctg, cno);\n            break;\n        case ttLoner:\n            if (pvNil != _pglcsfc && 0 < _pglcsfc->IvMac())\n            {\n                _Error(ertLonerInSub);\n                break;\n            }\n            cki.ctg = ctg;\n            cki.cno = cno;\n            if (pvNil == _pglckiLoner && pvNil == (_pglckiLoner = GL::PglNew(size(CKI))) || !_pglckiLoner->FPush(&cki))\n            {\n                _Error(ertOom);\n            }\n            break;\n\n        case ttPrePacked:\n            fPrePacked = fTrue;\n            break;\n\n        case ttPack:\n            fPack = fTrue;\n            break;\n\n        case ttPackFmt:\n            _ParsePackFmt();\n            break;\n\n            // We're done after all the cases below\n        case ttPackedFile:\n            fPack = fFalse;\n            _ErrorOnData(PszLit(\"Packed File\"));\n            _ParseBodyPackedFile(&fPrePacked);\n            // fall thru\n        case ttEndChunk:\n            if (!FError())\n            {\n                if (!_FPrepWrite(fPack, _bsf.IbMac(), ctg, cno, &blck) || !_bsf.FWriteRgb(&blck) ||\n                    !_FEndWrite(fPack, ctg, cno, &blck))\n                {\n                    _Error(ertOom);\n                }\n            }\n            _bsf.FReplace(pvNil, 0, 0, _bsf.IbMac());\n            if (!FError() && fPrePacked)\n                _pcfl->SetPacked(ctg, cno, fTrue);\n            return;\n        case ttMeta:\n            _ErrorOnData(PszLit(\"Metafile\"));\n            _ParseBodyMeta(fPack, ctg, cno);\n            return;\n        case ttBitmap:\n        case ttMask:\n            _ErrorOnData(PszLit(\"Bitmap\"));\n            _ParseBodyBitmap(fPack, ttMask == tok.tt, ctg, cno);\n            return;\n        case ttPalette:\n            _ErrorOnData(PszLit(\"Palette\"));\n            _ParseBodyPalette(fPack, ctg, cno);\n            return;\n        case ttMidi:\n            _ErrorOnData(PszLit(\"Midi\"));\n            _ParseBodyMidi(fPack, ctg, cno);\n            return;\n        case ttCursor:\n            _ErrorOnData(PszLit(\"Cursor\"));\n            _ParseBodyCursor(fPack, ctg, cno);\n            return;\n        case ttAl:\n        case ttGl:\n            _ErrorOnData(PszLit(\"List\"));\n            _ParseBodyList(fPack, ttAl == tok.tt, ctg, cno);\n            return;\n        case ttAg:\n        case ttGg:\n            _ErrorOnData(PszLit(\"Group\"));\n            _ParseBodyGroup(fPack, ttAg == tok.tt, ctg, cno);\n            return;\n        case ttAst:\n        case ttGst:\n            _ErrorOnData(PszLit(\"String Table\"));\n            _ParseBodyStringTable(fPack, ttAst == tok.tt, ctg, cno);\n            return;\n        case ttScript:\n        case ttScriptP:\n            _ErrorOnData(PszLit(\"Script\"));\n            _ParseBodyScript(fPack, ttScript == tok.tt, ctg, cno);\n            return;\n        case ttSubFile:\n            _ErrorOnData(PszLit(\"Sub File\"));\n            _StartSubFile(fPack, ctg, cno);\n            return;\n        }\n    }\n}\n\n/***************************************************************************\n    Parse an adopt parenthesized header from the source file.\n***************************************************************************/\nvoid CHCM::_ParseAdopt(void)\n{\n    AssertThis(0);\n    CTG ctgParent, ctgChild;\n    CNO cnoParent, cnoChild;\n    CHID chid;\n    PHP rgphp[5];\n    long cphp;\n\n    ClearPb(rgphp, size(rgphp));\n    if (!_FParseParenHeader(rgphp, 5, &cphp) || cphp < 4)\n    {\n        _Error(ertAdoptHead);\n        return;\n    }\n\n    ctgParent = rgphp[0].lw;\n    cnoParent = rgphp[1].lw;\n    ctgChild = rgphp[2].lw;\n    cnoChild = rgphp[3].lw;\n    chid = rgphp[4].lw;\n\n    // check if parent exists\n    if (!_pcfl->FFind(ctgParent, cnoParent))\n    {\n        _Error(ertParentMissing);\n        return;\n    }\n\n    // check if child exists\n    if (!_pcfl->FFind(ctgChild, cnoChild))\n    {\n        _Error(ertChildMissing);\n        return;\n    }\n\n    // check if cycle would be created\n    if (_pcfl->TIsDescendent(ctgChild, cnoChild, ctgParent, cnoParent) != tNo)\n        _Error(ertCycle);\n    else if (!FError() && !_pcfl->FAdoptChild(ctgParent, cnoParent, ctgChild, cnoChild, chid, fTrue))\n    {\n        _Error(ertOom);\n    }\n}\n\n/***************************************************************************\n    Compile the given file.\n***************************************************************************/\nPCFL CHCM::PcflCompile(PFNI pfniSrc, PFNI pfniDst, PMSNK pmsnk)\n{\n    AssertThis(0);\n    AssertPo(pfniSrc, ffniFile);\n    AssertPo(pfniDst, ffniFile);\n    AssertPo(pmsnk, 0);\n    BSF bsfSrc;\n    STN stnFile;\n    FLO flo;\n    bool fRet;\n\n    if (pvNil == (flo.pfil = FIL::PfilOpen(pfniSrc)))\n    {\n        pmsnk->ReportLine(PszLit(\"opening source file failed\"));\n        return pvNil;\n    }\n\n    flo.fp = 0;\n    flo.cb = flo.pfil->FpMac();\n    fRet = flo.FTranslate(oskNil) && bsfSrc.FReplaceFlo(&flo, fFalse, 0, 0);\n    ReleasePpo(&flo.pfil);\n    if (!fRet)\n        return pvNil;\n\n    pfniSrc->GetStnPath(&stnFile);\n    return PcflCompile(&bsfSrc, &stnFile, pfniDst, pmsnk);\n}\n\n/***************************************************************************\n    Compile the given BSF, using initial file name given by pstnFile.\n***************************************************************************/\nPCFL CHCM::PcflCompile(PBSF pbsfSrc, PSTN pstnFile, PFNI pfniDst, PMSNK pmsnk)\n{\n    AssertThis(0);\n    AssertPo(pbsfSrc, ffniFile);\n    AssertPo(pstnFile, 0);\n    AssertPo(pfniDst, ffniFile);\n    AssertPo(pmsnk, 0);\n    TOK tok;\n    CTG ctg;\n    CNO cno;\n    PCFL pcfl;\n    bool fReportBadTok;\n\n    if (pvNil == (_pchlx = NewObj CHLX(pbsfSrc, pstnFile)))\n    {\n        pmsnk->ReportLine(PszLit(\"Memory failure\"));\n        return pvNil;\n    }\n\n    if (pvNil == (_pcfl = CFL::PcflCreate(pfniDst, fcflWriteEnable)))\n    {\n        pmsnk->ReportLine(PszLit(\"Couldn't create destination file\"));\n        ReleasePpo(&_pchlx);\n        return pvNil;\n    }\n\n    _pmsnkError = pmsnk;\n    _sm = smStz;\n    _cbNum = size(long);\n    _bo = kboCur;\n    _osk = koskCur;\n\n    fReportBadTok = fTrue;\n    while (_FGetCleanTok(&tok, fTrue))\n    {\n        switch (tok.tt)\n        {\n        case ttChunk:\n            _ParseChunkHeader(&ctg, &cno);\n            _ParseChunkBody(ctg, cno);\n            fReportBadTok = fTrue;\n            break;\n\n        case ttEndChunk:\n            // ending a sub file\n            _EndSubFile();\n            fReportBadTok = fTrue;\n            break;\n\n        case ttAdopt:\n            _ParseAdopt();\n            fReportBadTok = fTrue;\n            break;\n\n        case ttPackFmt:\n            _ParsePackFmt();\n            fReportBadTok = fTrue;\n            break;\n\n        default:\n            if (fReportBadTok)\n            {\n                _Error(ertNeedChunk);\n                fReportBadTok = fFalse;\n            }\n            break;\n        }\n\n        if (_cactError > 100)\n        {\n            pmsnk->ReportLine(PszLit(\"Too many errors - compilation aborted\"));\n            break;\n        }\n    }\n\n    // empty the BSF\n    _bsf.FReplace(pvNil, 0, 0, _bsf.IbMac());\n\n    // make sure we're not in any subfiles\n    if (pvNil != _pglcsfc && _pglcsfc->IvMac() > 0)\n    {\n        CSFC csfc;\n\n        _Error(ertNoEndSubFile);\n        while (_pglcsfc->FPop(&csfc))\n        {\n            ReleasePpo(&_pcfl);\n            _pcfl = csfc.pcfl;\n        }\n    }\n\n    if (!FError() && pvNil != _pglckiLoner)\n    {\n        CKI cki;\n        long icki;\n\n        for (icki = _pglckiLoner->IvMac(); icki-- > 0;)\n        {\n            _pglckiLoner->Get(icki, &cki);\n            _pcfl->SetLoner(cki.ctg, cki.cno, fTrue);\n        }\n    }\n\n    if (!FError() && !_pcfl->FSave(kctgChkCmp, pvNil))\n        _Error(ertOom);\n\n    if (FError())\n    {\n        ReleasePpo(&_pcfl);\n        pfniDst->FDelete();\n    }\n    ReleasePpo(&_pchlx);\n    ReleasePpo(&_pglckiLoner);\n\n    pcfl = _pcfl;\n    _pcfl = pvNil;\n    _pmsnkError = pvNil;\n    return pcfl;\n}\n\n/***************************************************************************\n    Keyword-tokentype mappings\n***************************************************************************/\nstatic KEYTT _rgkeytt[] = {\n    PszLit(\"ITEM\"),      ttItem,      PszLit(\"FREE\"),       ttFree,       PszLit(\"VAR\"),     ttVar,\n    PszLit(\"BYTE\"),      ttModeByte,  PszLit(\"SHORT\"),      ttModeShort,  PszLit(\"LONG\"),    ttModeLong,\n    PszLit(\"CHUNK\"),     ttChunk,     PszLit(\"ENDCHUNK\"),   ttEndChunk,   PszLit(\"ADOPT\"),   ttAdopt,\n    PszLit(\"CHILD\"),     ttChild,     PszLit(\"PARENT\"),     ttParent,     PszLit(\"BO\"),      ttBo,\n    PszLit(\"OSK\"),       ttOsk,       PszLit(\"STN\"),        ttModeStn,    PszLit(\"STZ\"),     ttModeStz,\n    PszLit(\"SZ\"),        ttModeSz,    PszLit(\"ST\"),         ttModeSt,     PszLit(\"ALIGN\"),   ttAlign,\n    PszLit(\"FILE\"),      ttFile,      PszLit(\"PACKEDFILE\"), ttPackedFile, PszLit(\"META\"),    ttMeta,\n    PszLit(\"BITMAP\"),    ttBitmap,    PszLit(\"MASK\"),       ttMask,       PszLit(\"MIDI\"),    ttMidi,\n    PszLit(\"SCRIPT\"),    ttScript,    PszLit(\"SCRIPTPF\"),   ttScriptP,    PszLit(\"GL\"),      ttGl,\n    PszLit(\"AL\"),        ttAl,        PszLit(\"GG\"),         ttGg,         PszLit(\"AG\"),      ttAg,\n    PszLit(\"GST\"),       ttGst,       PszLit(\"AST\"),        ttAst,        PszLit(\"MACBO\"),   ttMacBo,\n    PszLit(\"WINBO\"),     ttWinBo,     PszLit(\"MACOSK\"),     ttMacOsk,     PszLit(\"WINOSK\"),  ttWinOsk,\n    PszLit(\"LONER\"),     ttLoner,     PszLit(\"CURSOR\"),     ttCursor,     PszLit(\"PALETTE\"), ttPalette,\n    PszLit(\"PREPACKED\"), ttPrePacked, PszLit(\"PACK\"),       ttPack,       PszLit(\"PACKFMT\"), ttPackFmt,\n    PszLit(\"SUBFILE\"),   ttSubFile,\n};\n\n#define kckeytt (size(_rgkeytt) / size(_rgkeytt[0]))\n\n/***************************************************************************\n    Constructor for the chunky compiler lexer.\n***************************************************************************/\nCHLX::CHLX(PBSF pbsf, PSTN pstnFile) : CHLX_PAR(pbsf, pstnFile)\n{\n    _pgstVariables = pvNil;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for the chunky compiler lexer.\n***************************************************************************/\nCHLX::~CHLX(void)\n{\n    ReleasePpo(&_pgstVariables);\n}\n\n/***************************************************************************\n    Reads in the next token.  Resolves certain names to keyword tokens.\n***************************************************************************/\nbool CHLX::FGetTok(PTOK ptok)\n{\n    AssertThis(0);\n    AssertVarMem(ptok);\n    long ikeytt;\n    long istn;\n\n    for (;;)\n    {\n        if (!CHLX_PAR::FGetTok(ptok))\n            return fFalse;\n\n        if (ttName != ptok->tt)\n            return fTrue;\n\n        // check for a keyword\n        for (ikeytt = 0; ikeytt < kckeytt; ikeytt++)\n        {\n            if (ptok->stn.FEqualSz(_rgkeytt[ikeytt].pszKeyword))\n            {\n                ptok->tt = _rgkeytt[ikeytt].tt;\n                return fTrue;\n            }\n        }\n\n        // if the token isn't SET, check for a variable\n        if (!ptok->stn.FEqualSz(PszLit(\"SET\")))\n        {\n            // check for a variable\n            if (pvNil != _pgstVariables && _pgstVariables->FFindStn(&ptok->stn, &istn, fgstSorted))\n            {\n                ptok->tt = ttLong;\n                _pgstVariables->GetExtra(istn, &ptok->lw);\n            }\n            break;\n        }\n\n        // handle a SET\n        if (!_FDoSet(ptok))\n        {\n            ptok->tt = ttError;\n            break;\n        }\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Reads in the next token.  Skips semicolons and commas.\n***************************************************************************/\nbool CHLX::FGetTokSkipSemi(PTOK ptok)\n{\n    AssertThis(0);\n    AssertVarMem(ptok);\n\n    // skip comma and semicolon separators\n    while (FGetTok(ptok))\n    {\n        if (ttComma != ptok->tt && ttSemi != ptok->tt)\n            return fTrue;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Reads a path and builds an FNI.\n***************************************************************************/\nbool CHLX::FGetPath(FNI *pfni)\n{\n    AssertThis(0);\n    AssertPo(pfni, 0);\n    achar ch;\n    STN stn;\n\n    if (!_FSkipWhiteSpace())\n    {\n        _fSkipToNextLine = fTrue;\n        return fFalse;\n    }\n\n    if (!_FFetchRgch(&ch) || '\"' != ch)\n        return fFalse;\n    _Advance();\n\n    stn.SetNil();\n    for (;;)\n    {\n        if (!_FFetchRgch(&ch))\n            return fFalse;\n        _Advance();\n        if ('\"' == ch)\n            break;\n        if (kchReturn == ch)\n            return fFalse;\n        stn.FAppendCh(ch);\n    }\n\n#ifdef WIN\n    static achar _szInclude[1024];\n    SZ szT;\n\n    if (_szInclude[0] == 0)\n    {\n        GetEnvironmentVariable(PszLit(\"include\"), _szInclude, CvFromRgv(_szInclude) - 1);\n    }\n\n    if (0 != SearchPath(_szInclude, stn.Psz(), pvNil, kcchMaxSz, szT, pvNil))\n        stn = szT;\n    return pfni->FBuildFromPath(&stn);\n#endif // WIN\n#ifdef MAC\n    return pfni->FBuild(0, 0, &stn, kftgText);\n#endif // MAC\n}\n\n/***************************************************************************\n    Handle a set command.\n***************************************************************************/\nbool CHLX::_FDoSet(PTOK ptok)\n{\n    AssertThis(0);\n    AssertVarMem(ptok);\n    long tt;\n    long lw;\n    long istn;\n    bool fNegate;\n\n    if (!CHLX_PAR::FGetTok(ptok) || ttName != ptok->tt)\n        return fFalse;\n\n    lw = 0;\n    istn = ivNil;\n    if (pvNil != _pgstVariables || pvNil != (_pgstVariables = GST::PgstNew(size(long))))\n    {\n        if (_pgstVariables->FFindStn(&ptok->stn, &istn, fgstSorted))\n            _pgstVariables->GetExtra(istn, &lw);\n        else if (!_pgstVariables->FInsertStn(istn, &ptok->stn, &lw))\n            istn = ivNil;\n    }\n\n    if (!CHLX_PAR::FGetTok(ptok))\n        return fFalse;\n\n    switch (ptok->tt)\n    {\n    case ttInc:\n        lw++;\n        break;\n    case ttDec:\n        lw--;\n        break;\n\n    case ttAssign:\n    case ttAAdd:\n    case ttASub:\n    case ttAMul:\n    case ttADiv:\n    case ttAMod:\n    case ttABOr:\n    case ttABAnd:\n    case ttABXor:\n    case ttAShr:\n    case ttAShl:\n        tt = ptok->tt;\n        fNegate = fFalse;\n        for (;;)\n        {\n            if (!CHLX_PAR::FGetTok(ptok))\n                return fFalse;\n            if (ttLong == ptok->tt)\n                break;\n            if (ttName == ptok->tt)\n            {\n                long istnT;\n                if (!_pgstVariables->FFindStn(&ptok->stn, &istnT, fgstSorted))\n                    return fFalse;\n                _pgstVariables->GetExtra(istnT, &ptok->lw);\n                ptok->tt = ttLong;\n                break;\n            }\n            if (ttSub != ptok->tt)\n                return fFalse;\n            fNegate = !fNegate;\n        }\n        if (fNegate)\n            ptok->lw = -ptok->lw;\n\n        switch (tt)\n        {\n        case ttAssign:\n            lw = ptok->lw;\n            break;\n        case ttAAdd:\n            lw += ptok->lw;\n            break;\n        case ttASub:\n            lw -= ptok->lw;\n            break;\n        case ttAMul:\n            lw *= ptok->lw;\n            break;\n        case ttADiv:\n            if (ptok->lw == 0)\n                return fFalse;\n            lw /= ptok->lw;\n            break;\n        case ttAMod:\n            if (ptok->lw == 0)\n                return fFalse;\n            lw %= ptok->lw;\n            break;\n        case ttABOr:\n            lw |= ptok->lw;\n            break;\n        case ttABAnd:\n            lw &= ptok->lw;\n            break;\n        case ttABXor:\n            lw ^= ptok->lw;\n            break;\n        case ttAShr:\n            // do logical shift\n            lw = (ulong)lw >> ptok->lw;\n            break;\n        case ttAShl:\n            lw <<= ptok->lw;\n            break;\n        }\n        break;\n\n    default:\n        return fFalse;\n    }\n\n    if (ivNil != istn)\n        _pgstVariables->PutExtra(istn, &lw);\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert that the CHLX is a valid object.\n***************************************************************************/\nvoid CHLX::AssertValid(ulong grf)\n{\n    CHLX_PAR::AssertValid(grf);\n    AssertNilOrPo(_pgstVariables, 0);\n}\n\n/***************************************************************************\n    Mark memory for the CHLX object.\n***************************************************************************/\nvoid CHLX::MarkMem(void)\n{\n    AssertValid(0);\n    CHLX_PAR::MarkMem();\n    MarkMemObj(_pgstVariables);\n}\n#endif\n\n/***************************************************************************\n    Constructor for the CHDC class. This is the chunky decompiler.\n***************************************************************************/\nCHDC::CHDC(void)\n{\n    _ert = ertNil;\n    _pcfl = pvNil;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for the CHDC class.\n***************************************************************************/\nCHDC::~CHDC(void)\n{\n    ReleasePpo(&_pcfl);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a CHDC.\n***************************************************************************/\nvoid CHDC::AssertValid(ulong grf)\n{\n    CHDC_PAR::AssertValid(0);\n    AssertNilOrPo(_pcfl, 0);\n    AssertPo(&_bsf, 0);\n    AssertPo(&_chse, 0);\n}\n\n/***************************************************************************\n    Mark memory for the CHDC.\n***************************************************************************/\nvoid CHDC::MarkMem(void)\n{\n    AssertValid(0);\n    CHDC_PAR::MarkMem();\n    MarkMemObj(&_bsf);\n    MarkMemObj(&_chse);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Decompile a chunky file.\n***************************************************************************/\nbool CHDC::FDecompile(PCFL pcflSrc, PMSNK pmsnk, PMSNK pmsnkError)\n{\n    AssertThis(0);\n    AssertPo(pcflSrc, 0);\n    long icki, ikid, ckid;\n    CTG ctg;\n    CKI cki;\n    KID kid;\n    BLCK blck;\n\n    _pcfl = pcflSrc;\n    _ert = ertNil;\n    _chse.Init(pmsnk, pmsnkError);\n\n    _bo = kboCur;\n    _osk = koskCur;\n\n    _chse.DumpSz(PszLit(\"BYTE\"));\n    _chse.DumpSz(PszLit(\"\"));\n    for (icki = 0; _pcfl->FGetCki(icki, &cki, pvNil, &blck); icki++)\n    {\n        STN stnName;\n\n        // don't dump these, because they're embedded in the script\n        if (cki.ctg == kctgScriptStrs)\n            continue;\n\n        _pcfl->FGetName(cki.ctg, cki.cno, &stnName);\n        _chse.DumpHeader(cki.ctg, cki.cno, &stnName);\n\n        // look for special CTGs\n        ctg = cki.ctg;\n\n        // handle 4 character ctg's\n        switch (ctg)\n        {\n        case kctgScript:\n            if (_FDumpScript(&cki))\n                goto LEndChunk;\n            _pcfl->FGetCki(icki, &cki, pvNil, &blck);\n            break;\n        }\n\n        // handle 3 character ctg's\n        ctg = ctg & 0xFFFFFF00L | 0x00000020L;\n        switch (ctg)\n        {\n        case kctgGst:\n        case kctgAst:\n            if (_FDumpStringTable(&blck, kctgAst == ctg))\n                goto LEndChunk;\n            _pcfl->FGetCki(icki, &cki, pvNil, &blck);\n            break;\n        }\n\n        // handle 2 character ctg's\n        ctg = ctg & 0xFFFF0000L | 0x00002020L;\n        switch (ctg)\n        {\n        case kctgGl:\n        case kctgAl:\n            if (_FDumpList(&blck, kctgAl == ctg))\n                goto LEndChunk;\n            _pcfl->FGetCki(icki, &cki, pvNil, &blck);\n            break;\n        case kctgGg:\n        case kctgAg:\n            if (_FDumpGroup(&blck, kctgAg == ctg))\n                goto LEndChunk;\n            _pcfl->FGetCki(icki, &cki, pvNil, &blck);\n            break;\n        }\n\n        _chse.DumpBlck(&blck);\n\n    LEndChunk:\n        _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n        _chse.DumpSz(PszLit(\"\"));\n    }\n\n    // now output parent-child relationships\n    for (icki = 0; _pcfl->FGetCki(icki++, &cki, &ckid);)\n    {\n        for (ikid = 0; ikid < ckid;)\n        {\n            AssertDo(_pcfl->FGetKid(cki.ctg, cki.cno, ikid++, &kid), 0);\n            if (kid.cki.ctg == kctgScriptStrs && cki.ctg == kctgScript)\n                continue;\n            _chse.DumpAdoptCmd(&cki, &kid);\n        }\n    }\n    _pcfl = pvNil;\n    _chse.Uninit();\n\n    return !FError();\n}\n\n/***************************************************************************\n    Disassemble the script and dump it.\n***************************************************************************/\nbool CHDC::_FDumpScript(CKI *pcki)\n{\n    AssertThis(0);\n    AssertVarMem(pcki);\n    PSCPT pscpt;\n    bool fRet;\n    SCCG sccg;\n    long cfmt;\n    bool fPacked;\n    BLCK blck;\n\n    _pcfl->FFind(pcki->ctg, pcki->cno, &blck);\n    fPacked = blck.FPacked(&cfmt);\n\n    if (pvNil == (pscpt = SCPT::PscptRead(_pcfl, pcki->ctg, pcki->cno)))\n        return fFalse;\n\n    if (fPacked)\n        _WritePack(cfmt);\n\n    fRet = _chse.FDumpScript(pscpt, &sccg);\n\n    ReleasePpo(&pscpt);\n\n    return fRet;\n}\n\n/***************************************************************************\n    Try to read the chunk as a list and dump it out.  If the chunk isn't\n    a list, return false so it can be dumped in hex.\n***************************************************************************/\nbool CHDC::_FDumpList(PBLCK pblck, bool fAl)\n{\n    AssertThis(0);\n    AssertPo(pblck, fblckReadable);\n\n    PGLB pglb;\n    short bo, osk;\n    long cfmt;\n    bool fPacked = pblck->FPacked(&cfmt);\n\n    pglb = fAl ? (PGLB)AL::PalRead(pblck, &bo, &osk) : (PGLB)GL::PglRead(pblck, &bo, &osk);\n    if (pvNil == pglb)\n        return fFalse;\n\n    if (fPacked)\n        _WritePack(cfmt);\n\n    if (bo != _bo)\n    {\n        _chse.DumpSz(MacWin(bo != kboCur, bo == kboCur) ? PszLit(\"WINBO\") : PszLit(\"MACBO\"));\n        _bo = bo;\n    }\n    if (osk != _osk)\n    {\n        _chse.DumpSz(osk == koskWin ? PszLit(\"WINOSK\") : PszLit(\"MACOSK\"));\n        _osk = osk;\n    }\n\n    _chse.DumpList(pglb);\n    ReleasePpo(&pglb);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Try to read the chunk as a group and dump it out.  If the chunk isn't\n    a group, return false so it can be dumped in hex.\n***************************************************************************/\nbool CHDC::_FDumpGroup(PBLCK pblck, bool fAg)\n{\n    AssertThis(0);\n    AssertPo(pblck, fblckReadable);\n\n    PGGB pggb;\n    short bo, osk;\n    long cfmt;\n    bool fPacked = pblck->FPacked(&cfmt);\n\n    pggb = fAg ? (PGGB)AG::PagRead(pblck, &bo, &osk) : (PGGB)GG::PggRead(pblck, &bo, &osk);\n    if (pvNil == pggb)\n        return fFalse;\n\n    if (fPacked)\n        _WritePack(cfmt);\n\n    if (bo != _bo)\n    {\n        _chse.DumpSz(MacWin(bo != kboCur, bo == kboCur) ? PszLit(\"WINBO\") : PszLit(\"MACBO\"));\n        _bo = bo;\n    }\n    if (osk != _osk)\n    {\n        _chse.DumpSz(osk == koskWin ? PszLit(\"WINOSK\") : PszLit(\"MACOSK\"));\n        _osk = osk;\n    }\n\n    _chse.DumpGroup(pggb);\n    ReleasePpo(&pggb);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Try to read the chunk as a string table and dump it out.  If the chunk\n    isn't a string table, return false so it can be dumped in hex.\n***************************************************************************/\nbool CHDC::_FDumpStringTable(PBLCK pblck, bool fAst)\n{\n    AssertThis(0);\n    AssertPo(pblck, fblckReadable);\n\n    PGSTB pgstb;\n    short bo, osk;\n    long cfmt;\n    bool fPacked = pblck->FPacked(&cfmt);\n    bool fRet;\n\n    pgstb = fAst ? (PGSTB)AST::PastRead(pblck, &bo, &osk) : (PGSTB)GST::PgstRead(pblck, &bo, &osk);\n    if (pvNil == pgstb)\n        return fFalse;\n\n    if (fPacked)\n        _WritePack(cfmt);\n\n    if (bo != _bo)\n    {\n        _chse.DumpSz(MacWin(bo != kboCur, bo == kboCur) ? PszLit(\"WINBO\") : PszLit(\"MACBO\"));\n        _bo = bo;\n    }\n    if (osk != _osk)\n    {\n        _chse.DumpSz(osk == koskWin ? PszLit(\"WINOSK\") : PszLit(\"MACOSK\"));\n        _osk = osk;\n    }\n\n    fRet = _chse.FDumpStringTable(pgstb);\n    ReleasePpo(&pgstb);\n\n    return fRet;\n}\n\n/***************************************************************************\n    Write out the PACKFMT and PACK commands\n***************************************************************************/\nvoid CHDC::_WritePack(long cfmt)\n{\n    AssertThis(0);\n    STN stn;\n\n    if (cfmtNil == cfmt)\n        _chse.DumpSz(PszLit(\"PACK\"));\n    else\n    {\n        stn.FFormatSz(PszLit(\"PACKFMT (0x%x) PACK\"), cfmt);\n        _chse.DumpSz(stn.Psz());\n    }\n}\n"
  },
  {
    "path": "kauai/src/chcm.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Header file for the CHCM class - the chunky compiler class, and\n    CHLX - its lexer.\n\n***************************************************************************/\n#ifndef CHCM_H\n#define CHCM_H\n\n// token types\nenum\n{\n    ttChunk = ttLimBase, // chunk definition\n    ttChild,             // child descriptor\n    ttParent,            // parent descriptor\n    ttAlign,             // align command\n    ttFile,              // file import command\n    ttMeta,              // metafile import command\n    ttBitmap,            // bitmap import command\n    ttFree,              // for AL, AG, AST - item is free\n    ttItem,              // for GL, etc - start of data for new item\n    ttVar,               // for GG and AG - variable sized data\n    ttGl,                // GL command\n    ttAl,                // AL command\n    ttGg,                // GG command\n    ttAg,                // AG command\n    ttGst,               // GST command\n    ttAst,               // AST command\n    ttScript,            // infix script\n    ttScriptP,           // postfix script\n    ttModeStn,           // change mode to store strings as stn's\n    ttModeStz,           // change mode to store strings as stz's\n    ttModeSz,            // change mode to store strings as sz's\n    ttModeSt,            // change mode to store strings as st's\n    ttModeByte,          // change mode to accept a byte\n    ttModeShort,         // change mode to accept a short\n    ttModeLong,          // change mode to accept a long\n    ttEndChunk,          // end of chunk\n    ttAdopt,             // adopt command\n    ttMacBo,             // use Mac byte order and OSK\n    ttWinBo,             // use Win byte order and OSK\n    ttMacOsk,            // use Mac byte order and OSK\n    ttWinOsk,            // use Win byte order and OSK\n    ttBo,                // insert the current byte order\n    ttOsk,               // insert the current OSK\n    ttMask,              // MASK command\n    ttLoner,             // LONER command\n    ttCursor,            // CURSOR command\n    ttPalette,           // PALETTE command\n    ttPrePacked,         // mark the change as packed\n    ttPack,              // pack the data\n    ttPackedFile,        // packed file import command\n    ttMidi,              // midi file import command\n    ttPackFmt,           // format to pack in\n    ttSubFile,           // start an embedded chunk forest\n\n    ttLimChlx\n};\n\n// lookup table for keywords\nstruct KEYTT\n{\n    PSZ pszKeyword;\n    long tt;\n};\n\n/***************************************************************************\n    Chunky Compiler lexer class.\n***************************************************************************/\ntypedef class CHLX *PCHLX;\n#define CHLX_PAR LEXB\n#define kclsCHLX 'CHLX'\nclass CHLX : public CHLX_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    NOCOPY(CHLX)\n\n  protected:\n    PGST _pgstVariables;\n\n    bool _FDoSet(PTOK ptok);\n\n  public:\n    CHLX(PBSF pbsf, PSTN pstnFile);\n    ~CHLX(void);\n\n    // override the LEXB FGetTok to resolve variables, hande SET\n    // and recognize our additional key words\n    virtual bool FGetTok(PTOK ptok);\n    virtual bool FGetTokSkipSemi(PTOK ptok); // also skip ';' & ','\n    virtual bool FGetPath(FNI *pfni);        // read a path\n};\n\n// error types\nenum\n{\n    ertNil = 0,\n    ertOom,\n    ertOpenFile,\n    ertReadMeta,\n    ertRangeByte,\n    ertRangeShort,\n    ertBufData,\n    ertParenOpen,\n    ertEof,\n    ertNeedString,\n    ertNeedNumber,\n    ertBadToken,\n    ertParenClose,\n    ertChunkHead,\n    ertDupChunk,\n    ertBodyChildHead,\n    ertChildMissing,\n    ertCycle,\n    ertBodyParentHead,\n    ertParentMissing,\n    ertBodyAlignRange,\n    ertBodyFile,\n    ertNeedEndChunk,\n    ertListHead,\n    ertListEntrySize,\n    ertVarUndefined,\n    ertItemOverflow,\n    ertBadFree,\n    ertSyntax,\n    ertGroupHead,\n    ertGroupEntrySize,\n    ertGstHead,\n    ertGstEntrySize,\n    ertScript,\n    ertAdoptHead,\n    ertNeedChunk,\n    ertBodyBitmapHead,\n    ertReadBitmap,\n    ertBadScript,\n    ertReadCursor,\n    ertPackedFile,\n    ertReadMidi,\n    ertBadPackFmt,\n    ertLonerInSub,\n    ertNoEndSubFile,\n    ertLim\n};\n\n// string modes\nenum\n{\n    smStn,\n    smStz,\n    smSz,\n    smSt\n};\n\n#define kcbMinAlign 2\n#define kcbMaxAlign 1024\n\n/***************************************************************************\n    Base chunky compiler class\n***************************************************************************/\ntypedef class CHCM *PCHCM;\n#define CHCM_PAR BASE\n#define kclsCHCM 'CHCM'\nclass CHCM : public CHCM_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    NOCOPY(CHCM)\n\n  protected:\n    // Chunk sub file context\n    struct CSFC\n    {\n        PCFL pcfl;\n        CTG ctg;\n        CNO cno;\n        bool fPack;\n    };\n\n    PGL _pglcsfc; // the stack of CSFCs for sub files\n\n    PCFL _pcfl;       // current sub file\n    PGL _pglckiLoner; // the chunks that must be loners\n\n    BSF _bsf;     // temporary buffer for the chunk data\n    PCHLX _pchlx; // lexer for compiling\n    long _sm;     // current string mode\n    long _cbNum;  // current numerical size (1, 2, or 4)\n    short _bo;    // current byte order and osk\n    short _osk;\n    PMSNK _pmsnkError; // error message sink\n    long _cactError;   // how many errors we've encountered\n\n  protected:\n    struct PHP // parenthesized header parameter\n    {\n        long lw;\n        PSTN pstn;\n    };\n\n    void _Error(long ert, PSZ pszMessage = pvNil);\n    void _GetRgbFromLw(long lw, byte *prgb);\n    void _ErrorOnData(PSZ pszPreceed);\n    bool _FParseParenHeader(PHP *prgphp, long cphpMax, long *pcphp);\n    bool _FGetCleanTok(TOK *ptok, bool fEofOk = fFalse);\n    void _SkipPastTok(long tt);\n    void _ParseChunkHeader(CTG *pctg, CNO *pcno);\n    void _AppendString(PSTN pstnValue);\n    void _AppendNumber(long lwValue);\n    void _ParseBodyChild(CTG ctg, CNO cno);\n    void _ParseBodyParent(CTG ctg, CNO cno);\n    void _ParseBodyAlign(void);\n    void _ParseBodyFile(void);\n\n    void _StartSubFile(bool fPack, CTG ctg, CNO cno);\n    void _EndSubFile(void);\n\n    void _ParseBodyMeta(bool fPack, CTG ctg, CNO cno);\n    void _ParseBodyBitmap(bool fPack, bool fMask, CTG ctg, CNO cno);\n    void _ParseBodyPalette(bool fPack, CTG ctg, CNO cno);\n    void _ParseBodyMidi(bool fPack, CTG ctg, CNO cno);\n    void _ParseBodyCursor(bool fPack, CTG ctg, CNO cno);\n    bool _FParseData(PTOK ptok);\n    void _ParseBodyList(bool fPack, bool fAl, CTG ctg, CNO cno);\n    void _ParseBodyGroup(bool fPack, bool fAg, CTG ctg, CNO cno);\n    void _ParseBodyStringTable(bool fPack, bool fAst, CTG ctg, CNO cno);\n    void _ParseBodyScript(bool fPack, bool fInfix, CTG ctg, CNO cno);\n    void _ParseBodyPackedFile(bool *pfPacked);\n    void _ParseChunkBody(CTG ctg, CNO cno);\n    void _ParseAdopt(void);\n    void _ParsePackFmt(void);\n\n    bool _FPrepWrite(bool fPack, long cb, CTG ctg, CNO cno, PBLCK pblck);\n    bool _FEndWrite(bool fPack, CTG ctg, CNO cno, PBLCK pblck);\n\n  public:\n    CHCM(void);\n    ~CHCM(void);\n\n    bool FError(void)\n    {\n        return _cactError > 0;\n    }\n\n    PCFL PcflCompile(PFNI pfniSrc, PFNI pfniDst, PMSNK pmsnk);\n    PCFL PcflCompile(PBSF pbsfSrc, PSTN pstnFile, PFNI pfniDst, PMSNK pmsnk);\n};\n\n/***************************************************************************\n    Chunky decompiler class.\n***************************************************************************/\ntypedef class CHDC *PCHDC;\n#define CHDC_PAR BASE\n#define kclsCHDC 'CHDC'\nclass CHDC : public CHDC_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    NOCOPY(CHDC)\n\n  protected:\n    long _ert;  // error type\n    PCFL _pcfl; // the chunky file to read from\n    BSF _bsf;   // temporary buffer for the chunk data\n    short _bo;  // current byte order and osk\n    short _osk;\n    CHSE _chse; // chunky source emitter\n\n  protected:\n    bool _FDumpScript(CKI *pcki);\n    bool _FDumpList(PBLCK pblck, bool fAl);\n    bool _FDumpGroup(PBLCK pblck, bool fAg);\n    bool _FDumpStringTable(PBLCK pblck, bool fAst);\n    void _WritePack(long cfmt);\n\n  public:\n    CHDC(void);\n    ~CHDC(void);\n\n    bool FError(void)\n    {\n        return ertNil != _ert;\n    }\n\n    bool FDecompile(PCFL pcflSrc, PMSNK pmsnk, PMSNK pmsnkError);\n};\n\n#endif // CHCM_H\n"
  },
  {
    "path": "kauai/src/chse.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ******\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Chunky source emitter class implementation.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\nRTCLASS(CHSE)\n\n/***************************************************************************\n    Constructor for a chunky source emitter.\n***************************************************************************/\nCHSE::CHSE(void)\n{\n    AssertBaseThis(0);\n    _pmsnkError = pvNil;\n    _pmsnkDump = pvNil;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for a chunky source emitter.\n***************************************************************************/\nCHSE::~CHSE(void)\n{\n    Uninit();\n}\n\n/***************************************************************************\n    Initialize the chunky source emitter.\n***************************************************************************/\nvoid CHSE::Init(PMSNK pmsnkDump, PMSNK pmsnkError)\n{\n    AssertThis(0);\n    AssertPo(pmsnkDump, 0);\n    AssertNilOrPo(pmsnkError, 0);\n\n    Uninit();\n\n    _pmsnkDump = pmsnkDump;\n    _pmsnkDump->AddRef();\n    _pmsnkError = pmsnkError;\n    if (_pmsnkError != pvNil)\n        _pmsnkError->AddRef();\n\n    AssertThis(fchseDump);\n}\n\n/***************************************************************************\n    Clean up and return the chse to an inactive state.\n***************************************************************************/\nvoid CHSE::Uninit(void)\n{\n    AssertThis(0);\n    ReleasePpo(&_pmsnkDump);\n    ReleasePpo(&_pmsnkError);\n    if (_bsf.IbMac() > 0)\n        _bsf.FReplace(pvNil, 0, 0, _bsf.IbMac());\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a CHSE.\n***************************************************************************/\nvoid CHSE::AssertValid(ulong grfchse)\n{\n    CHSE_PAR::AssertValid(0);\n    AssertPo(&_bsf, 0);\n    if (grfchse & fchseDump)\n        AssertPo(_pmsnkDump, 0);\n    AssertNilOrPo(_pmsnkError, 0);\n}\n\n/***************************************************************************\n    Mark memory for the CHSE.\n***************************************************************************/\nvoid CHSE::MarkMem(void)\n{\n    AssertValid(0);\n    CHSE_PAR::MarkMem();\n    MarkMemObj(_pmsnkError);\n    MarkMemObj(_pmsnkDump);\n    MarkMemObj(&_bsf);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Dumps chunk header.\n***************************************************************************/\nvoid CHSE::DumpHeader(CTG ctg, CNO cno, PSTN pstnName, bool fPack)\n{\n    AssertThis(fchseDump);\n    AssertNilOrPo(pstnName, 0);\n\n    STN stnT;\n\n    if (pstnName != pvNil)\n    {\n        STN stnName;\n\n        stnName = *pstnName;\n        stnName.FExpandControls();\n        stnT.FFormatSz(PszLit(\"CHUNK('%f', %d, \\\"%s\\\")\"), ctg, cno, &stnName);\n    }\n    else\n        stnT.FFormatSz(PszLit(\"CHUNK('%f', %d)\"), ctg, cno);\n\n    DumpSz(stnT.Psz());\n    if (fPack)\n        DumpSz(PszLit(\"\\tPACK\"));\n}\n\n/***************************************************************************\n    Dump a raw data chunk\n***************************************************************************/\nvoid CHSE::DumpBlck(PBLCK pblck)\n{\n    AssertThis(fchseDump);\n    AssertPo(pblck, 0);\n\n    FLO flo;\n\n    if (pblck->FPacked())\n        DumpSz(PszLit(\"PREPACKED\"));\n    if (!pblck->FGetFlo(&flo, fTrue))\n    {\n        Error(PszLit(\"Dumping chunk failed\"));\n        return;\n    }\n    _bsf.FReplaceFlo(&flo, fFalse, 0, _bsf.IbMac());\n    ReleasePpo(&flo.pfil);\n    _DumpBsf(1);\n}\n\n/***************************************************************************\n    Dump raw data from memory.\n***************************************************************************/\nvoid CHSE::DumpRgb(void *prgb, long cb, long cactTab)\n{\n    AssertThis(fchseDump);\n    AssertIn(cb, 0, kcbMax);\n    AssertPvCb(prgb, cb);\n\n    if (cb > 0)\n    {\n        _bsf.FReplace(prgb, cb, 0, _bsf.IbMac());\n        _DumpBsf(cactTab);\n    }\n}\n\n/***************************************************************************\n    Dump a parent directive\n***************************************************************************/\nvoid CHSE::DumpParentCmd(CTG ctgPar, CNO cnoPar, CHID chid)\n{\n    AssertThis(fchseDump);\n\n    STN stn;\n\n    stn.FFormatSz(PszLit(\"PARENT('%f', %d, %d)\"), ctgPar, cnoPar, chid);\n    DumpSz(stn.Psz());\n}\n\n/***************************************************************************\n    Dump a bitmap directive\n***************************************************************************/\nvoid CHSE::DumpBitmapCmd(byte bTransparent, long dxp, long dyp, PSTN pstnFile)\n{\n    AssertThis(fchseDump);\n    AssertPo(pstnFile, 0);\n\n    STN stn;\n\n    stn.FFormatSz(PszLit(\"BITMAP(%d, %d, %d) \\\"%s\\\"\"), (long)bTransparent, dxp, dyp, pstnFile);\n    DumpSz(stn.Psz());\n}\n\n/***************************************************************************\n    Dump a file directive\n***************************************************************************/\nvoid CHSE::DumpFileCmd(PSTN pstnFile, bool fPacked)\n{\n    AssertThis(fchseDump);\n    AssertPo(pstnFile, 0);\n\n    STN stn;\n\n    if (fPacked)\n        stn.FFormatSz(PszLit(\"PACKEDFILE \\\"%s\\\"\"), pstnFile);\n    else\n        stn.FFormatSz(PszLit(\"FILE \\\"%s\\\"\"), pstnFile);\n    DumpSz(stn.Psz());\n}\n\n/***************************************************************************\n    Dump an adopt directive\n***************************************************************************/\nvoid CHSE::DumpAdoptCmd(CKI *pcki, KID *pkid)\n{\n    AssertThis(fchseDump);\n    AssertVarMem(pcki);\n    AssertVarMem(pkid);\n\n    STN stn;\n\n    stn.FFormatSz(PszLit(\"ADOPT('%f', %d, '%f', %d, %d)\"), pcki->ctg, pcki->cno, pkid->cki.ctg, pkid->cki.cno,\n                  pkid->chid);\n    DumpSz(stn.Psz());\n}\n\n/***************************************************************************\n    Dump the data in the _bsf\n***************************************************************************/\nvoid CHSE::_DumpBsf(long cactTab)\n{\n    AssertThis(fchseDump);\n    AssertIn(cactTab, 0, kcchMaxStn + 1);\n\n    byte rgb[8], bT;\n    STN stn1;\n    STN stn2;\n    long cact;\n    long ib, ibMac;\n    long cb, ibT;\n\n    stn1.SetNil();\n    for (cact = cactTab; cact-- > 0;)\n        stn1.FAppendCh(kchTab);\n    stn1.FAppendSz(PszLit(\"BYTE\"));\n    DumpSz(stn1.Psz());\n\n    ibMac = _bsf.IbMac();\n    for (ib = 0; ib < ibMac;)\n    {\n        stn1.SetNil();\n        for (cact = cactTab; cact-- > 0;)\n            stn1.FAppendCh(kchTab);\n\n        cb = LwMin(ibMac - ib, size(rgb));\n        _bsf.FetchRgb(ib, cb, rgb);\n\n        // append the hex\n        for (ibT = 0; ibT < size(rgb); ibT++)\n        {\n            if (ibT >= cb)\n                stn1.FAppendSz(PszLit(\"     \"));\n            else\n            {\n                stn2.FFormatSz(PszLit(\"0x%02x \"), rgb[ibT]);\n                stn1.FAppendStn(&stn2);\n            }\n        }\n        stn1.FAppendSz(PszLit(\"   // '\"));\n\n        // append the ascii\n        for (ibT = 0; ibT < cb; ibT++)\n        {\n            bT = rgb[ibT];\n            if (bT < 0x20 || bT == 0x7F)\n                bT = '?';\n            stn1.FAppendCh((achar)bT);\n        }\n        stn1.FAppendSz(PszLit(\"' \"));\n\n        DumpSz(stn1.Psz());\n        ib += cb;\n    }\n}\n\n/******************************************************************************\n    Disassembles a script (pscpt) using the given script compiler (psccb)\n    and dumps the result (including a \"SCRIPTPF\" directive).\n******************************************************************************/\nbool CHSE::FDumpScript(PSCPT pscpt, PSCCB psccb)\n{\n    AssertThis(fchseDump);\n    AssertPo(pscpt, 0);\n    AssertPo(psccb, 0);\n\n    DumpSz(PszLit(\"SCRIPTPF\"));\n    if (!psccb->FDisassemble(pscpt, _pmsnkDump, _pmsnkError))\n    {\n        Error(PszLit(\"Dumping script failed\"));\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/******************************************************************************\n    Dumps a GL or AL, including the GL or AL directive. pglb is the GL or AL\n    to dump.\n******************************************************************************/\nvoid CHSE::DumpList(PGLB pglb)\n{\n    AssertThis(fchseDump);\n    AssertPo(pglb, 0);\n\n    long cbEntry;\n    long iv, ivMac;\n    STN stn;\n    bool fAl = pglb->FIs(kclsAL);\n\n    Assert(fAl || pglb->FIs(kclsGL), \"neither a GL or AL!\");\n\n    // have a valid GL or AL -- print it out in readable format\n    cbEntry = pglb->CbEntry();\n    AssertIn(cbEntry, 0, kcbMax);\n    ivMac = pglb->IvMac();\n\n    stn.FFormatSz(fAl ? PszLit(\"\\tAL(%d)\") : PszLit(\"\\tGL(%d)\"), cbEntry);\n    DumpSz(stn.Psz());\n\n    // print out the entries\n    for (iv = 0; iv < ivMac; iv++)\n    {\n        if (pglb->FFree(iv))\n            DumpSz(PszLit(\"\\tFREE\"));\n        else\n        {\n            DumpSz(PszLit(\"\\tITEM\"));\n            _bsf.FReplace(pglb->PvLock(iv), cbEntry, 0, _bsf.IbMac());\n            pglb->Unlock();\n            _DumpBsf(2);\n        }\n    }\n}\n\n/******************************************************************************\n    Dumps a GG or AG, including the GG or AG directive. pggb is the GG or AG\n    to dump.\n******************************************************************************/\nvoid CHSE::DumpGroup(PGGB pggb)\n{\n    AssertThis(fchseDump);\n    AssertPo(pggb, 0);\n\n    long cbFixed, cb;\n    long iv, ivMac;\n    STN stnT;\n    bool fAg = pggb->FIs(kclsAG);\n\n    Assert(fAg || pggb->FIs(kclsGG), \"neither a GG or AG!\");\n\n    // have a valid GG or AG -- print it out in readable format\n    cbFixed = pggb->CbFixed();\n    AssertIn(cbFixed, 0, kcbMax);\n    ivMac = pggb->IvMac();\n\n    stnT.FFormatSz(fAg ? PszLit(\"\\tAG(%d)\") : PszLit(\"\\tGG(%d)\"), cbFixed);\n    DumpSz(stnT.Psz());\n\n    // print out the entries\n    for (iv = 0; iv < ivMac; iv++)\n    {\n        if (pggb->FFree(iv))\n        {\n            DumpSz(PszLit(\"\\tFREE\"));\n            continue;\n        }\n        DumpSz(PszLit(\"\\tITEM\"));\n        if (cbFixed > 0)\n        {\n            _bsf.FReplace(pggb->PvFixedLock(iv), cbFixed, 0, _bsf.IbMac());\n            pggb->Unlock();\n            _DumpBsf(2);\n        }\n        if (0 < (cb = pggb->Cb(iv)))\n        {\n            DumpSz(PszLit(\"\\tVAR\"));\n            _bsf.FReplace(pggb->PvLock(iv), cb, 0, _bsf.IbMac());\n            pggb->Unlock();\n            _DumpBsf(2);\n        }\n    }\n}\n\n/******************************************************************************\n    Dumps a GST or AST, including the GST or AST directive. pggb is the GST or\n    AST to dump.\n******************************************************************************/\nbool CHSE::FDumpStringTable(PGSTB pgstb)\n{\n    AssertThis(fchseDump);\n    AssertPo(pgstb, 0);\n\n    long cbExtra;\n    long iv, ivMac;\n    STN stn1;\n    STN stn2;\n    void *pvExtra = pvNil;\n    bool fAst = pgstb->FIs(kclsAST);\n\n    Assert(fAst || pgstb->FIs(kclsGST), \"neither a GST or AST!\");\n\n    // have a valid GST or AST -- print it out in readable format\n    cbExtra = pgstb->CbExtra();\n    AssertIn(cbExtra, 0, kcbMax);\n    ivMac = pgstb->IvMac();\n\n    if (cbExtra > 0 && !FAllocPv(&pvExtra, cbExtra, fmemNil, mprNormal))\n        return fFalse;\n\n    stn1.FFormatSz(fAst ? PszLit(\"\\tAST(%d)\") : PszLit(\"\\tGST(%d)\"), cbExtra);\n    DumpSz(stn1.Psz());\n\n    // print out the entries\n    for (iv = 0; iv < ivMac; iv++)\n    {\n        if (pgstb->FFree(iv))\n        {\n            DumpSz(PszLit(\"\\tFREE\"));\n            continue;\n        }\n        DumpSz(PszLit(\"\\tITEM\"));\n\n        pgstb->GetStn(iv, &stn2);\n        stn2.FExpandControls();\n        stn1.FFormatSz(PszLit(\"\\t\\t\\\"%s\\\"\"), &stn2);\n        DumpSz(stn1.Psz());\n\n        if (cbExtra > 0)\n        {\n            pgstb->GetExtra(iv, pvExtra);\n            _bsf.FReplace(pvExtra, cbExtra, 0, _bsf.IbMac());\n            _DumpBsf(2);\n        }\n    }\n\n    FreePpv(&pvExtra);\n    return fTrue;\n}\n"
  },
  {
    "path": "kauai/src/chse.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ******\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Header file for the CHSE class - the chunky source emitter class.\n\n***************************************************************************/\n#ifndef CHSE_H\n#define CHSE_H\n\n/***************************************************************************\n    Chunky source emitter class\n***************************************************************************/\n#ifdef DEBUG\nenum\n{\n    fchseNil = 0,\n    fchseDump = 0x8000,\n};\n#endif // DEBUG\n\ntypedef class CHSE *PCHSE;\n#define CHSE_PAR BASE\n#define kclsCHSE 'CHSE'\nclass CHSE : public CHSE_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    NOCOPY(CHSE)\n\n  protected:\n    PMSNK _pmsnkDump;\n    PMSNK _pmsnkError;\n    BSF _bsf;\n    bool _fError;\n\n  protected:\n    void _DumpBsf(long cactTab);\n\n  public:\n    CHSE(void);\n    ~CHSE(void);\n    void Init(PMSNK pmsnkDump, PMSNK pmsnkError = pvNil);\n    void Uninit(void);\n\n    void DumpHeader(CTG ctg, CNO cno, PSTN pstnName = pvNil, bool fPack = fFalse);\n    void DumpRgb(void *prgb, long cb, long cactTab = 1);\n    void DumpParentCmd(CTG ctg, CNO cno, CHID chid);\n    void DumpBitmapCmd(byte bTransparent, long dxp, long dyp, PSTN pstnFile);\n    void DumpFileCmd(PSTN pstnFile, bool fPacked = fFalse);\n    void DumpAdoptCmd(CKI *pcki, KID *pkid);\n    void DumpList(PGLB pglb);\n    void DumpGroup(PGGB pggb);\n    bool FDumpStringTable(PGSTB pgstb);\n    void DumpBlck(PBLCK pblck);\n    bool FDumpScript(PSCPT pscpt, PSCCB psccb);\n\n    // General sz emitting routines\n    void DumpSz(PSZ psz)\n    {\n        AssertThis(fchseDump);\n        _pmsnkDump->ReportLine(psz);\n    }\n    void Error(PSZ psz)\n    {\n        AssertThis(fchseNil);\n        _fError = fTrue;\n        if (pvNil != _pmsnkError)\n            _pmsnkError->ReportLine(psz);\n    }\n    bool FError(void)\n    {\n        return _fError || pvNil != _pmsnkDump && _pmsnkDump->FError();\n    }\n};\n\n#endif // !CHSE_H\n"
  },
  {
    "path": "kauai/src/chtrans.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/**********************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Character translation table for Mac to and from Win\n\n**********************************************************************/\n#ifndef SYMC\n// disable brain dead cast warnings\n#pragma warning(disable : 4305)\n#pragma warning(disable : 4309)\n#pragma warning(disable : 4838)\n#endif //! SYMC\n\nstatic constexpr schar _mpchschsMacToWin[128] = {\n    /*        0/8   1/9   2/A   3/B   4/C   5/D   6/E   7/F */\n    /* 80 */ 0xC4, 0xC5, 0xC7, 0xC9, 0xD1, 0xD6, 0xDC, 0xE1, 0xE0, 0xE2, 0xE4, 0xE3, 0xE5, 0xE7, 0xE9, 0xE8,\n    /* 90 */ 0xEA, 0xEB, 0xED, 0xEC, 0xEE, 0xEF, 0xF1, 0xF3, 0xF2, 0xF4, 0xF6, 0xF5, 0xFA, 0xF9, 0xFB, 0xFC,\n    /* A0 */ 0x86, 0xB0, 0xA2, 0xA3, 0xA7, 0x95, 0xB6, 0xDF, 0xAE, 0xA9, 0x99, 0xB4, 0xA8, 0x7F, 0xC6, 0xD8,\n    /* B0 */ 0x7F, 0xB1, 0x7F, 0x7F, 0xA5, 0xB5, 0x7F, 0x7F, 0x7F, 0x7F, 0x7F, 0xAA, 0xBA, 0x7F, 0xE6, 0xF8,\n    /* C0 */ 0xBF, 0xA1, 0xAC, 0x7F, 0x83, 0x7F, 0x7F, 0xAB, 0xBB, 0x85, 0xA0, 0xC0, 0xC3, 0xD5, 0x8C, 0x9C,\n    /* D0 */ 0x96, 0x97, 0x93, 0x94, 0x91, 0x92, 0xF7, 0x7F, 0xFF, 0x9F, 0x2F, 0xA4, 0x8B, 0x9B, 0x7F, 0x7F,\n    /* E0 */ 0x87, 0xB7, 0x82, 0x84, 0x89, 0xC2, 0xCA, 0xC1, 0xCB, 0xC8, 0xCD, 0xCE, 0xCF, 0xCC, 0xD3, 0xD4,\n    /* F0 */ 0x7F, 0xD2, 0xDA, 0xDB, 0xD9, 0xA6, 0x88, 0x98, 0xAF, 0x7F, 0x7F, 0xB0, 0xB8, 0xA8, 0x7F, 0x7F,\n};\n\nstatic constexpr schar _mpchschsWinToMac[128] = {\n    /*        0/8   1/9   2/A   3/B   4/C   5/D   6/E   7/F */\n    /* 80 */ 0x7F, 0x7F, 0xE2, 0xC4, 0xE3, 0xC9, 0xA0, 0xE0, 0xF6, 0xE4, 0x7F, 0xDC, 0xCE, 0x7F, 0x7F, 0x7F,\n    /* 90 */ 0x7F, 0xD4, 0xD5, 0xD2, 0xD3, 0xA5, 0xD0, 0xD1, 0xF7, 0xAA, 0x7F, 0xDD, 0xCF, 0x7F, 0x7F, 0xD9,\n    /* A0 */ 0xCA, 0xC1, 0xA2, 0xA3, 0xDB, 0xB4, 0xF5, 0xA4, 0xAC, 0xA9, 0xBB, 0xC7, 0xC2, 0xD0, 0xA8, 0xF8,\n    /* B0 */ 0xA1, 0xB1, 0x32, 0x33, 0xAB, 0xB5, 0xA6, 0xE1, 0xE2, 0x31, 0xBC, 0xC8, 0x7F, 0x7F, 0x7F, 0xC0,\n    /* C0 */ 0xCB, 0xE7, 0xE5, 0xCC, 0x80, 0x81, 0xAE, 0x82, 0xE9, 0x83, 0xE6, 0xE8, 0xED, 0xEA, 0xEB, 0xEC,\n    /* D0 */ 0x7F, 0x84, 0xF1, 0xEE, 0xEF, 0xCD, 0x85, 0x7F, 0xAF, 0xF4, 0xF2, 0xF3, 0x86, 0x59, 0x7F, 0xA7,\n    /* E0 */ 0x88, 0x87, 0x89, 0x8B, 0x8A, 0x8C, 0xBE, 0x8D, 0x8F, 0x8E, 0x90, 0x91, 0x93, 0x92, 0x94, 0x95,\n    /* F0 */ 0x7F, 0x96, 0x98, 0x97, 0x99, 0x9B, 0x9A, 0xD6, 0xBF, 0x9D, 0x9C, 0x9E, 0x9F, 0x79, 0x7F, 0xD8,\n};\n\nschar _mpchschsUpper[256];\nschar _mpchschsLower[256];\n\n#ifndef SYMC\n#pragma warning(default : 4305)\n#pragma warning(default : 4309)\n#pragma warning(default : 4838)\n#endif //! SYMC\n"
  },
  {
    "path": "kauai/src/chunk.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Chunky file classes.\n\n    Chunky files store distinct \"chunks\" of data. Each chunk is identified\n    by a chunk tag (CTG) and chunk number (CNO) pair. By convention, CTGs\n    consist of 4 ASCII characters. CTGs that are shorter than 4 characters\n    should be padded with spaces (eg, 'GST '). The CFL class does not\n    enforce these conventions, but many Kauai tools assume that CTGs\n    consist of 4 printable characters.\n\n    Chunks store arbitrary data. Chunks can have names. Most importantly,\n    chunks can have child chunks. A chunk can also be a child of more\n    than one chunk and can be a child of a chunk mutliple times. The main\n    restriction on parent-child relationships is that there can be no loops.\n    Mathematically speaking, the chunks form an acyclic directed graph.\n\n    A parent-child relationship has a client specified number associated\n    with it. This is called the child id (CHID). Child id's don't have to\n    be unique. CFL places no significance on child id's. The only\n    restriction concerning CHIDs is that if chunk B is to be a child of\n    chunk A twice, then those two parent-child relationships must have\n    different child id's. In a nutshell, a parent-child relationship\n    (an arrow in the acyclic directed graph) is uniquely identified by\n    the 5-tuple (ctgPar, cnoPar, ctgChild, cnoChild, chid).\n\n    On disk, chunky files are organized as follows:\n\n        * A header (CFP struct defined below).\n        * The raw chunk data arranged in arbitrary order (a heap).\n        * The index for the chunky file.\n        * An optional free map indicating which portions of the heap\n          are currently not being used to store chunk data.\n\n    The header stores signatures, version numbers, and pointers to the\n    index and free map. The heap contains only the raw chunk data.\n    The index is not updated on disk until FSave is called.\n\n    The index is implemented as a general group (GG). The fixed portion\n    of each entry is a CRP (defined below). The variable portion contains\n    the list of children of the chunk (including CHID values) and the\n    chunk name (if it has one).\n\n    The CRP indicates where in the heap the chunk data is, whether\n    the chunk data is compressed, whether the chunk is a \"loner\" and how\n    many parents the chunk has. Loner chunks are ones that can exist without\n    a parent. When pcfl->Delete(ctg, cno) is called, the chunk's loner\n    flag is cleared. If the chunk has no parents, the chunk is deleted\n    (by removing its CRP from the index and adding the space in the\n    heap that it occupied to the free map). We also decrement the\n    parent counts of the children of the chunk. Child chunks whose\n    parent count becomes zero and are not loner chunks are then deleted,\n    and the process continues down through the chunk graph.\n\n    The CFL class implements intelligent chunk copying within a run-time\n    session. Suppose a source CFL contains two chunks A and B, with B a\n    child of A. If chunk A is copied to another chunky file, its entire\n    subgraph is copied, so B is copied with it. Suppose however that chunk\n    B was previously copied to the destination, then A is copied. We see\n    that chunk B is already in the destination CFL, so don't actually copy\n    the chunk - we just copy A and make the previously coped B a child of\n    the newly copied A. If this is not what you want, use FClone instead\n    of FCopy. FClone copies the entire chunk subgraph, but does not use\n    any previously copied chunks. The intelligent chunk copying only\n    happens within a single run-time session (from the files point of view).\n    If the chunky files are closed and re-opened, no sharing will occur.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\n/* HISTORY of CFL version numbers\n\n    1\tShonK: instantiated, 10/28/93\n    2\tShonK: added compression support, 2/14/95\n    3\tShonK: changed format of chunk names to be a saved STN, 3/30/95\n    4\tShonK: implemented support for compact index (CRP is smaller). 8/21/95\n    5\tShonK: added the fcrpForest flag. 9/4/95\n\n*/\n\n// A file written by this version of chunk.cpp receives this cvn.  Any\n// file with this cvn value has exactly the same file format\nconst short kcvnCur = 5;\n\n// A file written by this version of chunk.cpp can be read by any version\n// of chunk.cpp whose kcvnCur is >= to this (this should be <= kcvnCur)\nconst short kcvnBack = 4;\n\n// A file whose cvn is less than kcvnMin cannot be directly read by\n// this version of chunk.cpp (maybe a converter will read it).\n// (this should be <= kcvnCur)\n// NOTE: (ShonK, 3/30/95): if this is >= 3, the fOldNames handling in\n// _FReadIndex can be removed!\n// NOTE: (ShonK, 8/21/95): if this is >= 4, the fOldIndex handling in\n// _FReadIndex can be removed!\nconst short kcvnMin = 1;\n\nconst auto kcvnMinStnNames = 3;\nconst auto kcvnMinGrfcrp = 4;\nconst auto kcvnMinSmallIndex = 4;\nconst auto kcvnMinForest = 5;\n\nconst long klwMagicChunky = BigLittle('CHN2', '2NHC'); // chunky file signature\n\n// chunky file prefix\nstruct CFP\n{\n    long lwMagic;   // identifies this as a chunky file\n    CTG ctgCreator; // program that created this file\n    DVER dver;      // chunky file version\n    short bo;       // byte order\n    short osk;      // which system wrote this\n\n    FP fpMac;     // logical end of file\n    FP fpIndex;   // location of chunky index\n    long cbIndex; // size of chunky index\n    FP fpMap;     // location of free space map\n    long cbMap;   // size of free space map (may be 0)\n\n    long rglwReserved[23]; // reserved for future use - should be zero\n};\nconst BOM kbomCfp = 0xB55FFC00L;\n\n// free space map entry\nstruct FSM\n{\n    FP fp;\n    long cb;\n};\nconst BOM kbomFsm = 0xF0000000L;\n\nenum\n{\n    fcrpNil = 0,\n    fcrpOnExtra = 0x01, // data is on the extra file\n    fcrpLoner = 0x02,   // the chunk can stand (may also be a child)\n    fcrpPacked = 0x04,  // the data is compressed\n    fcrpMarkT = 0x08,   // used for consistency checks (see _TValidIndex)\n    fcrpForest = 0x10,  // the chunk contains a forest of chunks\n};\n\n// Chunk Representation (big version) - fixed element in pggcrp\n// variable part of group element is an rgkid and stn data (the name)\nconst long kcbMaxCrpbg = klwMax;\nstruct CRPBG\n{\n    CKI cki;      // chunk id\n    FP fp;        // location on file\n    long cb;      // size of data on file\n    long ckid;    // number of owned chunks\n    long ccrpRef; // number of owners of this chunk\n    long rti;     // run-time id\n    union {\n        struct\n        {\n            // for cvn <= kcvnMinGrfcrp\n            byte fOnExtra; // fcrpOnExtra\n            byte fLoner;   // fcrpLoner\n            byte fPacked;  // fcrpPacked\n            byte bT;       // fcrpMarkT\n        };\n\n        // for cvn >= kcvnMinGrfcrp\n        ulong grfcrp;\n    };\n\n    long BvRgch(void)\n    {\n        return LwMul(ckid, size(KID));\n    }\n    long CbRgch(long cbVar)\n    {\n        return cbVar - BvRgch();\n    }\n\n    ulong Grfcrp(ulong grfcrpMask = (ulong)(-1))\n    {\n        return grfcrp & grfcrpMask;\n    }\n    void ClearGrfcrp(ulong grfcrpT)\n    {\n        grfcrp &= ~grfcrpT;\n    }\n    void SetGrfcrp(ulong grfcrpT)\n    {\n        grfcrp |= grfcrpT;\n    }\n    void AssignGrfcrp(ulong grfcrpT, ulong grfcrpMask = (ulong)(-1))\n    {\n        grfcrp = grfcrp & ~grfcrpMask | grfcrpT & grfcrpMask;\n    }\n    long Cb(void)\n    {\n        return cb;\n    }\n    void SetCb(long cbT)\n    {\n        cb = cbT;\n    }\n};\nconst BOM kbomCrpbgGrfcrp = 0xFFFF0000L;\nconst BOM kbomCrpbgBytes = 0xFFFE0000L;\n\n// Chunk Representation (small version) - fixed element in pggcrp\n// variable part of group element is an rgkid and stn data (the name)\nconst long kcbMaxCrpsm = 0x00FFFFFF;\nconst long kcbitGrfcrp = 8;\nconst ulong kgrfcrpAll = (1 << kcbitGrfcrp) - 1;\nstruct CRPSM\n{\n    CKI cki;          // chunk id\n    FP fp;            // location on file\n    ulong luGrfcrpCb; // low byte is the grfcrp, high 3 bytes is cb\n    ushort ckid;      // number of owned chunks\n    ushort ccrpRef;   // number of owners of this chunk\n\n    long BvRgch(void)\n    {\n        return LwMul(ckid, size(KID));\n    }\n    long CbRgch(long cbVar)\n    {\n        return cbVar - BvRgch();\n    }\n\n    ulong Grfcrp(ulong grfcrpMask = (ulong)(-1))\n    {\n        return luGrfcrpCb & grfcrpMask & kgrfcrpAll;\n    }\n    void ClearGrfcrp(ulong grfcrpT)\n    {\n        luGrfcrpCb &= ~(grfcrpT & kgrfcrpAll);\n    }\n    void SetGrfcrp(ulong grfcrpT)\n    {\n        luGrfcrpCb |= grfcrpT & kgrfcrpAll;\n    }\n    void AssignGrfcrp(ulong grfcrpT, ulong grfcrpMask = (ulong)(-1))\n    {\n        luGrfcrpCb = luGrfcrpCb & ~(grfcrpMask & kgrfcrpAll) | grfcrpT & grfcrpMask & kgrfcrpAll;\n    }\n    long Cb(void)\n    {\n        return luGrfcrpCb >> kcbitGrfcrp;\n    }\n    void SetCb(long cbT)\n    {\n        luGrfcrpCb = (cbT << kcbitGrfcrp) | luGrfcrpCb & kgrfcrpAll;\n    }\n};\nconst BOM kbomCrpsm = 0xFF500000L;\n\n#ifdef CHUNK_BIG_INDEX\n\ntypedef CRPBG CRP;\ntypedef CRPSM CRPOTH;\nconst long kcbMaxCrp = kcbMaxCrpbg;\ntypedef long CKID;\nconst long kckidMax = kcbMax;\nconst BOM kbomCrpsm = kbomCrpbgGrfcrp;\n\n#else //! CHUNK_BIG_INDEX\n\ntypedef CRPSM CRP;\ntypedef CRPBG CRPOTH;\nconst long kcbMaxCrp = kcbMaxCrpsm;\ntypedef ushort CKID;\nconst long kckidMax = ksuMax;\nconst BOM kbomCrp = kbomCrpsm;\n\n#endif //! CHUNK_BIG_INDEX\n\n#define _BvKid(ikid) LwMul(ikid, size(KID))\n\nconst long rtiNil = 0; // no rti assigned\nlong CFL::_rtiLast = rtiNil;\nPCFL CFL::_pcflFirst;\n\n#ifdef CHUNK_STATS\nbool vfDumpChunkRequests = fTrue;\nPFIL _pfilStats;\nFP _fpStats;\n\n/***************************************************************************\n    Static method to dump a string to the chunk stats file\n***************************************************************************/\nvoid CFL::DumpStn(PSTN pstn, PFIL pfil)\n{\n    FNI fni;\n    STN stn;\n\n    if (pvNil == _pfilStats)\n    {\n        stn = PszLit(\"ChnkStat.txt\");\n        if (!fni.FGetTemp() || !fni.FSetLeaf(&stn) || pvNil == (_pfilStats = FIL::PfilCreate(&fni)))\n        {\n            return;\n        }\n    }\n\n    if (pvNil != pfil)\n    {\n        pfil->GetFni(&fni);\n        fni.GetStnPath(&stn);\n        stn.FAppendSz(PszLit(\": \"));\n        _pfilStats->FWriteRgbSeq(stn.Prgch(), LwMul(stn.Cch(), size(achar)), &_fpStats);\n    }\n\n    _pfilStats->FWriteRgbSeq(pstn->Prgch(), LwMul(pstn->Cch(), size(achar)), &_fpStats);\n    _pfilStats->FWriteRgbSeq(PszLit(\"\\xD\\xA\"), MacWin(size(achar), 2 * size(achar)), &_fpStats);\n}\n#endif // CHUNK_STATS\n\nRTCLASS(CFL)\nRTCLASS(CGE)\n\n/***************************************************************************\n    Constructor for CFL - private.\n***************************************************************************/\nCFL::CFL(void)\n{\n    // add it to the linked list\n    _Attach(&_pcflFirst);\n    AssertBaseThis(0);\n}\n\n/***************************************************************************\n    Close the associated files.  Private.\n***************************************************************************/\nCFL::~CFL(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_csto.pfil);\n    ReleasePpo(&_csto.pglfsm);\n    ReleasePpo(&_cstoExtra.pfil);\n    ReleasePpo(&_cstoExtra.pglfsm);\n    ReleasePpo(&_pggcrp);\n#ifndef CHUNK_BIG_INDEX\n    ReleasePpo(&_pglrtie);\n#endif //! CHUNK_BIG_INDEX\n}\n\n/***************************************************************************\n    Static method: open an existing file as a chunky file.  Increments the\n    open count.\n***************************************************************************/\nPCFL CFL::PcflOpen(FNI *pfni, ulong grfcfl)\n{\n    AssertPo(pfni, ffniFile);\n    PCFL pcfl;\n    ulong grffil;\n\n    Assert(!(grfcfl & fcflTemp), \"can't open a file as temp\");\n    if (pvNil != (pcfl = PcflFromFni(pfni)))\n    {\n        if (!pcfl->FSetGrfcfl(grfcfl))\n            return pvNil;\n        pcfl->AddRef();\n        return pcfl;\n    }\n\n    grffil = _GrffilFromGrfcfl(grfcfl);\n    if ((pcfl = NewObj CFL()) == pvNil)\n        goto LFail;\n\n    if ((pcfl->_csto.pfil = FIL::PfilOpen(pfni, grffil)) == pvNil || !pcfl->_FReadIndex())\n    {\n        goto LFail;\n    }\n    if (tYes != pcfl->_TValidIndex())\n    {\n    LFail:\n        ReleasePpo(&pcfl);\n        PushErc(ercCflOpen);\n        return pvNil;\n    }\n    AssertDo(pcfl->FSetGrfcfl(grfcfl), 0);\n\n    // We don't assert with fcflGraph, because we've already\n    // called _TValidIndex.\n    AssertPo(pcfl, fcflFull);\n    return pcfl;\n}\n\n/***************************************************************************\n    If the file is read-only, toss the index and extra file and re-read\n    the index.\n***************************************************************************/\nbool CFL::FReopen(void)\n{\n    AssertThis(0);\n    CSTO csto, cstoExtra;\n    PGG pggcrp;\n#ifndef CHUNK_BIG_INDEX\n    PGL pglrtie;\n#endif // CHUNK_BIG_INDEX\n    bool fFreeMapNotRead;\n    bool fRet;\n\n    if (_csto.pfil->GrffilCur() & ffilWriteEnable || _fInvalidMainFile)\n        return fFalse;\n\n    pggcrp = _pggcrp;\n    _pggcrp = pvNil;\n\n#ifndef CHUNK_BIG_INDEX\n    pglrtie = _pglrtie;\n    _pglrtie = pvNil;\n#endif // CHUNK_BIG_INDEX\n\n    fFreeMapNotRead = _fFreeMapNotRead;\n    _fFreeMapNotRead = fFalse;\n\n    csto = _csto;\n    ClearPb(&_csto, size(csto));\n    _csto.pfil = csto.pfil;\n    _csto.pfil->AddRef();\n\n    cstoExtra = _cstoExtra;\n    ClearPb(&_cstoExtra, size(cstoExtra));\n\n    fRet = _FReadIndex() && tYes == _TValidIndex();\n    if (!fRet)\n    {\n        SwapVars(&_pggcrp, &pggcrp);\n#ifndef CHUNK_BIG_INDEX\n        SwapVars(&_pglrtie, &pglrtie);\n#endif // CHUNK_BIG_INDEX\n        SwapVars(&_csto, &csto);\n        SwapVars(&_cstoExtra, &cstoExtra);\n        _fFreeMapNotRead = FPure(fFreeMapNotRead);\n    }\n    ReleasePpo(&pggcrp);\n#ifndef CHUNK_BIG_INDEX\n    ReleasePpo(&pglrtie);\n#endif // CHUNK_BIG_INDEX\n    ReleasePpo(&csto.pfil);\n    ReleasePpo(&csto.pglfsm);\n    ReleasePpo(&cstoExtra.pfil);\n    ReleasePpo(&cstoExtra.pglfsm);\n\n    AssertThis(0);\n    return fRet;\n}\n\n/***************************************************************************\n    Static method to get file options corresponding to the given chunky\n    file options.\n***************************************************************************/\nulong CFL::_GrffilFromGrfcfl(ulong grfcfl)\n{\n    ulong grffil = ffilDenyWrite;\n\n    if (grfcfl & fcflWriteEnable)\n        grffil |= ffilWriteEnable | ffilDenyRead;\n\n    if (grfcfl & fcflTemp)\n        grffil |= ffilTemp;\n\n    return grffil;\n}\n\n/***************************************************************************\n    Static method: create a new file.  Increments the open count.\n***************************************************************************/\nPCFL CFL::PcflCreate(FNI *pfni, ulong grfcfl)\n{\n    AssertPo(pfni, ffniFile);\n    PCFL pcfl;\n    ulong grffil;\n\n    grfcfl |= fcflWriteEnable;\n    grffil = _GrffilFromGrfcfl(grfcfl);\n\n    if (pvNil != (pcfl = CFL::PcflFromFni(pfni)))\n    {\n        Bug(\"trying to create an open file\");\n        goto LFail;\n    }\n\n    if ((pcfl = NewObj CFL()) == pvNil)\n        goto LFail;\n\n    if ((pcfl->_pggcrp = GG::PggNew(size(CRP))) == pvNil ||\n        (pcfl->_csto.pfil = FIL::PfilCreate(pfni, grffil)) == pvNil || !pcfl->_csto.pfil->FSetFpMac(size(CFP)))\n    {\n        ReleasePpo(&pcfl);\n    LFail:\n        PushErc(ercCflCreate);\n        return pvNil;\n    }\n    pcfl->_csto.fpMac = size(CFP);\n    AssertDo(pcfl->FSetGrfcfl(grfcfl), 0);\n\n    AssertPo(pcfl, fcflFull | fcflGraph);\n    return pcfl;\n}\n\n/***************************************************************************\n    Static method to create a temporary chunky file in the same directory as\n    *pfni and with the same ftg.  If pfni is nil, the file is created in\n    the standard place with a temp ftg.\n***************************************************************************/\nPCFL CFL::PcflCreateTemp(FNI *pfni)\n{\n    AssertNilOrPo(pfni, ffniFile);\n    FNI fni;\n\n    if (pvNil != pfni)\n    {\n        fni = *pfni;\n        if (!fni.FGetUnique(pfni->Ftg()))\n            goto LFail;\n    }\n    else if (!fni.FGetTemp())\n    {\n    LFail:\n        PushErc(ercCflCreate);\n        return pvNil;\n    }\n\n    return PcflCreate(&fni, fcflTemp);\n}\n\n/***************************************************************************\n    Static method: if we have the chunky file indicated by fni open, returns\n    the pcfl, otherwise returns pvNil.  Doesn't affect the open count.\n***************************************************************************/\nPCFL CFL::PcflFromFni(FNI *pfni)\n{\n    AssertPo(pfni, ffniFile);\n    PFIL pfil;\n    PCFL pcfl;\n\n    if ((pfil = FIL::PfilFromFni(pfni)) == pvNil)\n        return pvNil;\n    for (pcfl = _pcflFirst; pcfl != pvNil; pcfl = pcfl->PcflNext())\n    {\n        Assert(pfil != pcfl->_cstoExtra.pfil, \"who is using this FNI?\");\n        if (pcfl->_csto.pfil == pfil && !pcfl->_fInvalidMainFile)\n            break;\n    }\n    return pcfl;\n}\n\n/***************************************************************************\n    Embedded chunk descriptor on file. Chunks and their subtrees can\n    be combined into a single stream by the following rules:\n\n    CF stands for a chunk forest. CT stands for a chunk tree.\n    ECDF(n, m) stands for an ECDF structure with cb == n and ckid == m.\n    data(n) stands for n bytes of data.\n\n        CF -> (empty)\n        CF -> CT CF\n        CT -> ECDF(n, 0) data(n)\n        CT -> EDCF(n, m) data(n) CT CT ... CT (m times)\n\n    CFL::FWriteChunkTree writes a CT from a chunk and its children.\n\n    CFL::PcflReadForestFromFlo reads a CF from a flo and creates a CFL\n    around the data.\n***************************************************************************/\nstruct ECDF\n{\n    short bo;\n    short osk;\n    CTG ctg;\n    CHID chid;\n    long cb;\n    long ckid;\n    ulong grfcrp;\n};\nconst BOM kbomEcdf = 0x5FFC0000L;\n\n/***************************************************************************\n    Combine the indicated chunk and its children into an embedded chunk.\n    If pfil is pvNil, just computes the size.\n***************************************************************************/\nbool CFL::FWriteChunkTree(CTG ctg, CNO cno, PFIL pfilDst, FP fpDst, long *pcb)\n{\n    AssertThis(0);\n    AssertNilOrPo(pfilDst, 0);\n    AssertNilOrVarMem(pcb);\n    CGE cge;\n    ECDF ecdf;\n    FLO floSrc, floDst;\n    KID kid;\n    CKI ckiPar;\n    ulong grfcge;\n\n    if (pvNil != pcb)\n        *pcb = 0;\n\n    cge.Init(this, ctg, cno);\n    while (cge.FNextKid(&kid, &ckiPar, &grfcge, fcgeNil))\n    {\n        if (grfcge & fcgeError)\n            goto LFail;\n\n        if (!(grfcge & fcgePre))\n            continue;\n\n        AssertDo(FFindFlo(kid.cki.ctg, kid.cki.cno, &floSrc), 0);\n        if (pvNil != pcb)\n            *pcb += size(ECDF) + floSrc.cb;\n\n        if (pvNil != pfilDst)\n        {\n            // write the data\n            ecdf.bo = kboCur;\n            ecdf.osk = koskCur;\n            ecdf.ctg = kid.cki.ctg;\n            ecdf.chid = (grfcge & fcgeRoot) ? chidNil : kid.chid;\n            ecdf.cb = floSrc.cb;\n            ecdf.ckid = Ckid(kid.cki.ctg, kid.cki.cno);\n            ecdf.grfcrp = fcrpNil;\n            if (FPacked(kid.cki.ctg, kid.cki.cno))\n                ecdf.grfcrp |= fcrpPacked;\n            if (FForest(kid.cki.ctg, kid.cki.cno))\n                ecdf.grfcrp |= fcrpForest;\n\n            if (!pfilDst->FWriteRgbSeq(&ecdf, size(ecdf), &fpDst))\n                goto LFail;\n\n            floDst.pfil = pfilDst;\n            floDst.fp = fpDst;\n            floDst.cb = floSrc.cb;\n            if (!floSrc.FCopy(&floDst))\n            {\n            LFail:\n                TrashVar(pcb);\n                return fFalse;\n            }\n            fpDst += floDst.cb;\n        }\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Static method to read a serialized chunk stream (as written by a series\n    of calls to FWriteChunkTree) and create a CFL around it. If fCopyData\n    is false, we construct the CFL to use pointers to the data in the FLO.\n    Otherwise, we copy the data to a new file.\n***************************************************************************/\nPCFL CFL::PcflReadForestFromFlo(PFLO pflo, bool fCopyData)\n{\n    AssertVarMem(pflo);\n    AssertPo(pflo->pfil, 0);\n\n    // embedded chunk stack descriptor\n    struct ECSD\n    {\n        CTG ctg;\n        CNO cno;\n        long ckid;\n    };\n\n    PCFL pcfl;\n    ECDF ecdf;\n    ECSD ecsdT, ecsdCur;\n    FP fpSrc, fpLimSrc;\n    PGL pglecsd = pvNil;\n\n    if (pvNil == (pglecsd = GL::PglNew(size(ECSD))))\n        goto LFail;\n\n    if ((pcfl = NewObj CFL()) == pvNil)\n        goto LFail;\n\n    if (pvNil == (pcfl->_pggcrp = GG::PggNew(size(CRP))))\n        goto LFail;\n\n    if (fCopyData)\n    {\n        if (pvNil == (pcfl->_csto.pfil = FIL::PfilCreateTemp()) || !pcfl->_csto.pfil->FSetFpMac(size(CFP)))\n        {\n            goto LFail;\n        }\n        pcfl->_csto.fpMac = size(CFP);\n    }\n    else\n    {\n        pcfl->_csto.pfil = pflo->pfil;\n        pcfl->_csto.pfil->AddRef();\n        pcfl->_csto.fpMac = pflo->fp + pflo->cb;\n        pcfl->_fInvalidMainFile = fTrue;\n        pcfl->_fAddToExtra = fTrue;\n    }\n\n    AssertPo(pcfl, fcflFull | fcflGraph);\n\n    ClearPb(&ecsdCur, size(ecsdCur));\n\n    fpSrc = pflo->fp;\n    fpLimSrc = pflo->fp + pflo->cb;\n    for (;;)\n    {\n        if (fpSrc >= fpLimSrc)\n            break;\n\n        if (fpSrc > fpLimSrc + size(ecdf) || !pflo->pfil->FReadRgbSeq(&ecdf, size(ecdf), &fpSrc))\n        {\n            goto LFail;\n        }\n\n        if (kboOther == ecdf.bo)\n            SwapBytesBom(&ecdf, kbomEcdf);\n        else if (kboCur != ecdf.bo)\n            goto LFail;\n\n        if (!FIn(ecdf.cb, 0, fpLimSrc - fpSrc + 1))\n            goto LFail;\n\n        if (fCopyData)\n        {\n            BLCK blck(pflo->pfil, fpSrc, ecdf.cb, ecdf.grfcrp & fcrpPacked);\n\n            if (!pcfl->FAddBlck(&blck, ecdf.ctg, &ecsdT.cno))\n                goto LFail;\n        }\n        else\n        {\n            CRP *qcrp;\n            long icrp;\n\n            pcfl->_GetUniqueCno(ecdf.ctg, &icrp, &ecsdT.cno);\n            if (!pcfl->_FAdd(0, ecdf.ctg, ecsdT.cno, icrp, pvNil))\n                goto LFail;\n\n            qcrp = (CRP *)pcfl->_pggcrp->QvFixedGet(icrp);\n            qcrp->fp = ecdf.cb > 0 ? fpSrc : 0;\n            qcrp->SetCb(ecdf.cb);\n            qcrp->AssignGrfcrp(ecdf.grfcrp, fcrpPacked | fcrpForest);\n        }\n        fpSrc += ecdf.cb;\n\n        if (pglecsd->IvMac() > 0)\n        {\n            Assert(ecsdCur.ckid > 0, 0);\n\n            // Make this a child\n            if (!pcfl->FAdoptChild(ecsdCur.ctg, ecsdCur.cno, ecdf.ctg, ecsdT.cno, ecdf.chid))\n            {\n                goto LFail;\n            }\n            ecsdCur.ckid--;\n        }\n\n        if (ecdf.ckid > 0)\n        {\n            // This one has children, so we need to push the current ecsd and\n            // make this the current one\n            ecsdT.ctg = ecdf.ctg;\n            ecsdT.ckid = ecdf.ckid;\n\n            if (!pglecsd->FPush(&ecsdCur))\n                goto LFail;\n\n            ecsdCur = ecsdT;\n        }\n        else\n        {\n            // pop up while there are no more children and there's something\n            // to pop.\n            while (ecsdCur.ckid <= 0 && pglecsd->IvMac() > 0)\n                pglecsd->FPop(&ecsdCur);\n        }\n    }\n\n    if (pglecsd->IvMac() > 0 || ecsdCur.ckid != 0)\n    {\n    LFail:\n        // something failed or the data was bad\n        ReleasePpo(&pcfl);\n    }\n\n    ReleasePpo(&pglecsd);\n    AssertNilOrPo(pcfl, fcflFull | fcflGraph);\n\n    return pcfl;\n}\n\n/***************************************************************************\n    Return whether the chunk contains a forest of subchunks.\n***************************************************************************/\nbool CFL::FForest(CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    long icrp;\n    CRP *qcrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n    {\n        Bug(\"chunk not there\");\n        return fFalse;\n    }\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    Assert(qcrp->cki.ctg == ctg && qcrp->cki.cno == cno, 0);\n    return FPure(qcrp->Grfcrp(fcrpForest));\n}\n\n/***************************************************************************\n    Set or clear the \"forest\" flag.\n***************************************************************************/\nvoid CFL::SetForest(CTG ctg, CNO cno, bool fForest)\n{\n    AssertThis(0);\n    long icrp;\n    CRP *qcrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n    {\n        Bug(\"chunk not there\");\n        return;\n    }\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    Assert(qcrp->cki.ctg == ctg && qcrp->cki.cno == cno, 0);\n    if (FPure(qcrp->Grfcrp(fcrpForest)) != FPure(fForest))\n    {\n        if (fForest)\n            qcrp->SetGrfcrp(fcrpForest);\n        else\n            qcrp->ClearGrfcrp(fcrpForest);\n        _FSetRti(ctg, cno, rtiNil);\n    }\n}\n\n/***************************************************************************\n    Read the chunk's data as an embedded forest and construct a CFL around\n    the data.\n***************************************************************************/\nPCFL CFL::PcflReadForest(CTG ctg, CNO cno, bool fCopyData)\n{\n    AssertThis(0);\n    FLO flo;\n\n    if (!FFindFlo(ctg, cno, &flo))\n        return pvNil;\n\n    if (FPacked(ctg, cno))\n    {\n        BLCK blck(&flo, fTrue);\n\n        if (!blck.FUnpackData() || !blck.FGetFlo(&flo))\n            return pvNil;\n        fCopyData = fFalse;\n    }\n\n    return PcflReadForestFromFlo(&flo, fCopyData);\n}\n\n/***************************************************************************\n    Static method: clear the marks for chunky files.\n***************************************************************************/\nvoid CFL::ClearMarks(void)\n{\n    PCFL pcfl;\n\n    for (pcfl = _pcflFirst; pcfl != pvNil; pcfl = pcfl->PcflNext())\n    {\n        AssertPo(pcfl, 0);\n        pcfl->_fMark = fFalse;\n    }\n}\n\n/***************************************************************************\n    Static method: close any chunky files that are unmarked and have 0\n    open count.\n***************************************************************************/\nvoid CFL::CloseUnmarked(void)\n{\n    PCFL pcfl, pcflNext;\n\n    for (pcfl = _pcflFirst; pcfl != pvNil; pcfl = pcflNext)\n    {\n        AssertPo(pcfl, 0);\n        pcflNext = pcfl->PcflNext();\n        if (!pcfl->_fMark && pcfl->_cactRef == 0)\n            delete pcfl;\n    }\n}\n\n/***************************************************************************\n    Set the grfcfl options.  This sets or clears fcflTemp and only sets\n    (never clears) fcflMark, fcflWriteEnable and fcflAddToExtra.  This\n    can only fail if fcflWriteEnable is specified and we can't make\n    the base file write enabled.\n***************************************************************************/\nbool CFL::FSetGrfcfl(ulong grfcfl, ulong grfcflMask)\n{\n    AssertThis(0);\n    ulong grffil, grffilMask;\n\n    grfcfl &= grfcflMask;\n    grffil = _GrffilFromGrfcfl(grfcfl);\n    grffilMask = _GrffilFromGrfcfl(grfcflMask);\n\n    if ((grffil ^ _csto.pfil->GrffilCur()) & grffilMask)\n    {\n        // need to change some file properties\n        if (_fInvalidMainFile || !_csto.pfil->FSetGrffil(grffil, grffilMask))\n            return fFalse;\n    }\n\n    // If we're becoming write enabled and we haven't read the free map yet,\n    // do so now.  Reading the free map is non-critical.\n    if ((grfcfl & fcflWriteEnable) && _fFreeMapNotRead)\n        _ReadFreeMap();\n\n    // don't clear the mark field if it's already set\n    if (grfcfl & fcflMark)\n        _fMark = fTrue;\n\n    // don't clear the _fAddToExtra field if it's already set\n    if ((grfcfl & fcflAddToExtra) || ((grfcfl ^ grfcflMask) & fcflWriteEnable))\n        _fAddToExtra = fTrue;\n\n    if (grfcfl & fcflReadFromExtra)\n        _fReadFromExtra = fTrue;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the level of error that we've encountered for this chunky file.\n***************************************************************************/\nlong CFL::ElError(void)\n{\n    AssertThis(0);\n    long elT;\n\n    elT = _csto.pfil->ElError();\n    if (pvNil != _cstoExtra.pfil)\n        elT = LwMax(elT, _cstoExtra.pfil->ElError());\n    return elT;\n}\n\n/***************************************************************************\n    Make sure the el level on both files is at or below el.\n***************************************************************************/\nvoid CFL::ResetEl(long el)\n{\n    AssertThis(0);\n    AssertIn(el, elNil, kcbMax);\n\n    if (_csto.pfil->ElError() > el)\n        _csto.pfil->SetEl(el);\n\n    if (pvNil != _cstoExtra.pfil && _cstoExtra.pfil->ElError() > el)\n        _cstoExtra.pfil->SetEl(el);\n}\n\n/***************************************************************************\n    Decrement the open count.  If it is zero and the chunky file isn't\n    marked, the file is closed.\n***************************************************************************/\nvoid CFL::Release(void)\n{\n    AssertBaseThis(0);\n    if (_cactRef <= 0)\n    {\n        Bug(\"calling Release without an AddRef\");\n        return;\n    }\n    if (--_cactRef == 0 && !_fMark)\n        delete this;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the chunky file.  If fcflFull, does some checking\n    of the index.  If fcflGraph, does fcflFull and checks the graph structure\n    for cycles.\n***************************************************************************/\nvoid CFL::AssertValid(ulong grfcfl)\n{\n    CFL_PAR::AssertValid(fobjAllocated);\n    bool fFirstCrp;\n    long cbTot = 0;\n    long cbTotExtra = 0;\n    CKI ckiOld;\n    CKI ckiNew;\n    KID kid, kidOld;\n    bool fFirstKid;\n    long icrp, icrpT;\n    long ccrpRefTot = 0;\n    long ckidTot = 0;\n    long cbVar, cbRgch;\n    CRP crp;\n    long ikid;\n    FP fpBase = _fInvalidMainFile ? 0 : size(CFP);\n\n    Assert(!_fInvalidMainFile || _fAddToExtra, 0);\n\n    AssertPo(_pggcrp, 0);\n    AssertPo(_csto.pfil, 0);\n    if (_csto.pglfsm != pvNil)\n    {\n        AssertPo(_csto.pglfsm, 0);\n        Assert(!_fFreeMapNotRead, \"free map never read, but exists!\");\n    }\n    Assert(_csto.fpMac >= fpBase, \"fpMac wrong\");\n\n    if (_cstoExtra.pfil != pvNil)\n    {\n        AssertPo(_cstoExtra.pfil, 0);\n        if (_cstoExtra.pglfsm != pvNil)\n            AssertPo(_cstoExtra.pglfsm, 0);\n    }\n    else\n        Assert(_cstoExtra.pglfsm == pvNil, 0);\n\n#ifndef CHUNK_BIG_INDEX\n    AssertNilOrPo(_pglrtie, 0);\n#endif //! CHUNK_BIG_INDEX\n\n    if (!(grfcfl & (fcflFull | fcflGraph)))\n        return;\n\n    SuspendAssertValid();\n\n    // Verify that the index and free map(s) are in sorted order.\n    // Would be nice to verify ccrpRef and that crp's don't overlap,\n    // but this is hard, so instead we verify that the sum of ccrpRef\n    // values is correct and that the total length of all blocks is not\n    // too big.\n    fFirstCrp = fTrue;\n    for (icrp = _pggcrp->IvMac(); icrp-- != 0;)\n    {\n        _pggcrp->GetFixed(icrp, &crp);\n        cbVar = _pggcrp->Cb(icrp);\n        cbRgch = crp.CbRgch(cbVar);\n\n        AssertIn(crp.ckid, 0, kckidMax + 1);\n        AssertIn(cbRgch, 0, kcbMaxDataStn + 1);\n\n        // we use this in checking the graph structure\n        Assert(!crp.Grfcrp(fcrpMarkT), \"fcrpMarkT set\");\n\n        ckiNew = crp.cki;\n        ccrpRefTot += crp.ccrpRef;\n        ckidTot += crp.ckid;\n\n#ifdef CHUNK_BIG_INDEX\n        AssertIn(crp.rti, 0, _rtiLast + 1);\n#endif // CHUNK_BIG_INDEX\n\n        // assert that the file storage (fp,cb) is OK\n        if (crp.Grfcrp(fcrpOnExtra))\n        {\n            Assert(_cstoExtra.pfil != pvNil, \"fcrpOnExtra wrong\");\n            AssertIn(crp.fp, 0, _cstoExtra.fpMac);\n            AssertIn(crp.Cb(), 1, _cstoExtra.fpMac - crp.fp + 1);\n            cbTotExtra += crp.Cb();\n        }\n        else\n        {\n            AssertVar(crp.Cb() > 0 && (crp.fp >= fpBase) || crp.Cb() == 0 && crp.fp == 0, \"bad fp\", &crp.fp);\n            AssertVar(crp.fp <= _csto.fpMac, \"bad fp\", &crp.fp);\n            AssertIn(crp.Cb(), 0, _csto.fpMac - crp.fp + 1);\n            cbTot += crp.Cb();\n        }\n\n        // assert that this crp is in order\n        AssertVar(fFirstCrp || ckiNew.ctg < ckiOld.ctg || ckiNew.ctg == ckiOld.ctg && ckiNew.cno < ckiOld.cno,\n                  \"crp not in order\", &ckiNew);\n        ckiOld = ckiNew;\n        fFirstCrp = fFalse;\n\n        fFirstKid = fTrue;\n        for (ikid = 0; ikid < crp.ckid; ikid++)\n        {\n            _pggcrp->GetRgb(icrp, _BvKid(ikid), size(KID), &kid);\n            AssertVar(_FFindCtgCno(kid.cki.ctg, kid.cki.cno, &icrpT), \"child doesn't exist\", &kid.cki);\n            Assert(kid.cki.ctg != ckiOld.ctg || kid.cki.cno != ckiOld.cno, \"chunk is child of itself!\");\n\n            Assert(fFirstKid || kidOld.chid < kid.chid || kidOld.chid == kid.chid && kidOld.cki.ctg < kid.cki.ctg ||\n                       kidOld.chid == kid.chid && kidOld.cki.ctg == kid.cki.ctg && kidOld.cki.cno < kid.cki.cno,\n                   \"kid's not sorted or duplicate kid\");\n            kidOld = kid;\n            fFirstKid = fFalse;\n        }\n    }\n    Assert(ccrpRefTot == ckidTot, \"ref counts messed up\");\n    Assert(cbTotExtra <= _cstoExtra.fpMac, \"overlapping chunks on extra\");\n    Assert(cbTot <= _csto.fpMac - fpBase, \"overlapping chunks on file\");\n\n    if (_csto.pglfsm != pvNil)\n    {\n        long ifsm;\n        FSM fsm;\n        FP fpOld;\n\n        fpOld = _csto.fpMac;\n        for (ifsm = _csto.pglfsm->IvMac(); ifsm-- != 0;)\n        {\n            _csto.pglfsm->Get(ifsm, &fsm);\n            Assert(fsm.fp >= fpBase && fsm.fp < fpOld, \"bad fp in fsm\");\n            Assert(fsm.cb + fsm.fp > fsm.fp && fsm.cb + fsm.fp < fpOld, \"bad cb in fsm\");\n            fpOld = fsm.fp;\n            cbTot += fsm.cb;\n        }\n        Assert(cbTot <= _csto.fpMac - fpBase, \"too much free space\");\n    }\n    if (_cstoExtra.pglfsm != pvNil)\n    {\n        long ifsm;\n        FSM fsm;\n        FP fpOld;\n\n        fpOld = _cstoExtra.fpMac;\n        for (ifsm = _cstoExtra.pglfsm->IvMac(); ifsm-- != 0;)\n        {\n            _cstoExtra.pglfsm->Get(ifsm, &fsm);\n            Assert(fsm.fp >= 0 && fsm.fp < fpOld, \"bad fp in fsm\");\n            Assert(fsm.cb + fsm.fp > fsm.fp && fsm.cb + fsm.fp < fpOld, \"bad cb in fsm\");\n            fpOld = fsm.fp;\n            cbTotExtra += fsm.cb;\n        }\n        Assert(cbTotExtra <= _cstoExtra.fpMac, \"too much free space on extra\");\n    }\n\n    if (grfcfl & fcflGraph)\n        Assert(_TValidIndex() != tNo, \"bad index\");\n\n#ifndef CHUNK_BIG_INDEX\n    // verify that the _pglrtie is in sorted order and all the chunks exist\n    if (pvNil != _pglrtie && _pglrtie->IvMac() > 0)\n    {\n        long irtie;\n        RTIE rtie, rtiePrev;\n        long icrp;\n\n        irtie = _pglrtie->IvMac() - 1;\n        _pglrtie->Get(irtie, &rtie);\n        Assert(rtiNil != rtie.rti && _FFindCtgCno(rtie.ctg, rtie.cno, &icrp), \"Bad RTIE\");\n\n        while (irtie-- > 0)\n        {\n            rtiePrev = rtie;\n            _pglrtie->Get(irtie, &rtie);\n            Assert(rtiNil != rtie.rti && _FFindCtgCno(rtie.ctg, rtie.cno, &icrp), \"Bad RTIE\");\n            Assert(rtie.ctg < rtiePrev.ctg || rtie.ctg == rtiePrev.ctg && rtie.cno < rtiePrev.cno, \"RTIE out of order\");\n        }\n    }\n#endif //! CHUNK_BIG_INDEX\n\n    ResumeAssertValid();\n}\n\n/***************************************************************************\n    Mark memory used by the CFL\n***************************************************************************/\nvoid CFL::MarkMem(void)\n{\n    AssertThis(0);\n    CFL_PAR::MarkMem();\n    MarkMemObj(_pggcrp);\n    MarkMemObj(_csto.pglfsm);\n    MarkMemObj(_cstoExtra.pglfsm);\n#ifndef CHUNK_BIG_INDEX\n    MarkMemObj(_pglrtie);\n#endif //! CHUNK_BIG_INDEX\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Checks for cycles and other consistency in the chunky index.  If\n    we find something wrong, return tNo.  If a memory error occurs,\n    return tMaybe.  If it's AOK, return tYes.\n***************************************************************************/\ntribool CFL::_TValidIndex(void)\n{\n    // WARNING: this is called by a full CFL::AssertValid().\n    long icrp, icrpT;\n    CRP *qcrp;\n    CGE cge;\n    ulong grfcge, grfcgeIn;\n    KID kid;\n    long cbVar;\n    long ccrpRefTot;\n    long ckidTot;\n\n    // first clear all fcrpMarkT fields\n    ccrpRefTot = ckidTot = 0;\n    for (icrp = _pggcrp->IvMac(); icrp-- != 0;)\n    {\n        qcrp = (CRP *)_pggcrp->QvFixedGet(icrp, &cbVar);\n        if (!FIn(qcrp->ckid, 0, cbVar / size(KID) + 1))\n            return tNo;\n        if (!FIn(qcrp->ccrpRef, 0, kckidMax + 1))\n            return tNo;\n        ccrpRefTot += qcrp->ccrpRef;\n        ckidTot += qcrp->ckid;\n        qcrp->ClearGrfcrp(fcrpMarkT);\n    }\n    if (ccrpRefTot != ckidTot)\n        return tNo;\n\n    SuspendAssertValid();\n    SuspendCheckPointers();\n\n    // now enumerate over root level graphs, marking descendents on the\n    // pre-pass and unmarking on the post pass - this catches cycles\n    // NOTE: we must do this before checking for orphan subgraphs, so we don't\n    // end up in an infinite loop in the orphan check.\n    for (icrp = _pggcrp->IvMac(); icrp-- != 0;)\n    {\n        qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n        if (qcrp->ccrpRef > 0 || qcrp->ckid == 0)\n            continue;\n\n        // this is not a child node and has children, so enum its subgraph\n        cge.Init(this, qcrp->cki.ctg, qcrp->cki.cno);\n        while (cge.FNextKid(&kid, pvNil, &grfcge, fcgeNil))\n        {\n            if (grfcge & fcgeError)\n            {\n                ResumeAssertValid();\n                ResumeCheckPointers();\n                return tMaybe;\n            }\n            if (!_FFindCtgCno(kid.cki.ctg, kid.cki.cno, &icrpT))\n            {\n                ResumeAssertValid();\n                ResumeCheckPointers();\n                return tNo;\n            }\n            qcrp = (CRP *)_pggcrp->QvFixedGet(icrpT);\n            if (grfcge & fcgePre)\n            {\n                if (qcrp->Grfcrp(fcrpMarkT))\n                {\n                    // has a cycle here\n                    ResumeAssertValid();\n                    ResumeCheckPointers();\n                    return tNo;\n                }\n                qcrp->SetGrfcrp(fcrpMarkT);\n            }\n            if (grfcge & fcgePost)\n            {\n                Assert(qcrp->Grfcrp(fcrpMarkT), \"why isn't this marked?\");\n                qcrp->ClearGrfcrp(fcrpMarkT);\n            }\n        }\n    }\n\n    // now enumerate over root level graphs, marking all descendents\n    // this will find orphan subgraphs and validate (ccrpRef > 0).\n    for (icrp = _pggcrp->IvMac(); icrp-- != 0;)\n    {\n        qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n        if (qcrp->ccrpRef > 0 || qcrp->ckid == 0)\n            continue;\n\n        // this is not a child node and has some children, so enum its subgraph\n        cge.Init(this, qcrp->cki.ctg, qcrp->cki.cno);\n        grfcgeIn = fcgeNil;\n        while (cge.FNextKid(&kid, pvNil, &grfcge, grfcgeIn))\n        {\n            grfcgeIn = fcgeNil;\n            if (grfcge & fcgeError)\n            {\n                ResumeAssertValid();\n                ResumeCheckPointers();\n                return tMaybe;\n            }\n            if ((grfcge & fcgePre) && !(grfcge & fcgeRoot))\n            {\n                if (!_FFindCtgCno(kid.cki.ctg, kid.cki.cno, &icrpT))\n                {\n                    ResumeAssertValid();\n                    ResumeCheckPointers();\n                    return tNo;\n                }\n                qcrp = (CRP *)_pggcrp->QvFixedGet(icrpT);\n                if (qcrp->Grfcrp(fcrpMarkT))\n                    grfcgeIn = fcgeSkipToSib;\n                else\n                    qcrp->SetGrfcrp(fcrpMarkT);\n            }\n        }\n    }\n\n    // make sure the fcrpMarkT fields are set iff (ccrpRef > 0)\n    for (icrp = _pggcrp->IvMac(); icrp-- != 0;)\n    {\n        qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n        if ((qcrp->ccrpRef != 0) != FPure(qcrp->Grfcrp(fcrpMarkT)))\n        {\n            ResumeAssertValid();\n            ResumeCheckPointers();\n            return tNo;\n        }\n        qcrp->ClearGrfcrp(fcrpMarkT);\n    }\n\n    ResumeAssertValid();\n    ResumeCheckPointers();\n    return tYes;\n}\n\n/***************************************************************************\n    Verifies that this is a chunky file and reads the index into memory.\n    Sets the _fpFreeMap and _cbFreeMap fields and sets the _fFreeMapNotRead\n    flag. The free map is read separately by _ReadFreeMap. This is to avoid\n    hogging memory for the free map when we may never need it.\n***************************************************************************/\nbool CFL::_FReadIndex(void)\n{\n    AssertBaseThis(0);\n    AssertPo(_csto.pfil, 0);\n    Assert(!_fInvalidMainFile, 0);\n\n    CFP cfp;\n    FP fpMac;\n    short bo;\n    short osk;\n    long cbVar;\n    long cbRgch;\n    long icrp, ccrp;\n    long cbFixed;\n    BOM bom;\n\n    // used for old name stuff\n    SZS szsName;\n    STN stn;\n    bool fOldNames;\n\n    // used for old index stuff\n    bool fOldIndex;\n\n    Assert(_pggcrp == pvNil && _csto.pglfsm == pvNil && _cstoExtra.pfil == pvNil && _cstoExtra.pglfsm == pvNil,\n           \"cfl has wrong non-nil entries\");\n\n    // verify that this is a chunky file\n    if ((fpMac = _csto.pfil->FpMac()) < size(CFP))\n        return fFalse;\n\n    if (!_csto.pfil->FReadRgb(&cfp, size(cfp), 0))\n        return fFalse;\n\n    // check the magic number and byte order indicator\n    if (cfp.lwMagic != klwMagicChunky || cfp.bo != kboCur && cfp.bo != kboOther)\n    {\n        return fFalse;\n    }\n\n    if (cfp.bo == kboOther)\n        SwapBytesBom(&cfp, kbomCfp);\n\n    // check the version numbers\n    if (!cfp.dver.FReadable(kcvnCur, kcvnMin))\n        return fFalse;\n\n    // if the file has old style chunk names, translate them\n    fOldNames = cfp.dver._swCur < kcvnMinStnNames;\n\n    // whether the index needs converted\n    fOldIndex = cfp.dver._swCur < kcvnMinGrfcrp;\n\n    // verify the fp's and cb's\n    // the index and map should be last\n    if (!FIn(cfp.fpMac, size(cfp), fpMac + 1) || !FIn(cfp.fpIndex, size(cfp), cfp.fpMac + 1) ||\n        !FIn(cfp.cbIndex, 1, cfp.fpMac - cfp.fpIndex + 1) || cfp.fpMap != cfp.fpIndex + cfp.cbIndex ||\n        cfp.fpMap + cfp.cbMap != cfp.fpMac)\n    {\n        return fFalse;\n    }\n\n    // read and validate the index\n    if ((_pggcrp = GG::PggRead(_csto.pfil, cfp.fpIndex, cfp.cbIndex, &bo, &osk)) == pvNil)\n    {\n        return fFalse;\n    }\n\n    cbFixed = _pggcrp->CbFixed();\n    if (cbFixed != size(CRPBG) && (fOldIndex || cbFixed != size(CRPSM)))\n        return fFalse;\n\n    // Clean the index\n    AssertBomRglw(kbomKid, size(KID));\n    _pggcrp->Lock();\n\n    if (cbFixed == size(CRPBG))\n    {\n        // Big index\n        CRPBG *pcrpbg;\n\n        bom = (bo != kboCur) ? (fOldIndex ? kbomCrpbgBytes : kbomCrpbgGrfcrp) : bomNil;\n\n        for (icrp = _pggcrp->IvMac(); icrp-- != 0;)\n        {\n            pcrpbg = (CRPBG *)_pggcrp->QvFixedGet(icrp, &cbVar);\n#ifndef CHUNK_BIG_INDEX\n            // make sure we can convert this CRP to a small index CRP\n            if (pcrpbg->cb > kcbMaxCrpsm || pcrpbg->ckid > kckidMax || pcrpbg->ccrpRef > kckidMax)\n            {\n                goto LBadFile;\n            }\n#endif //! CHUNK_BIG_INDEX\n            if (!FIn(cbVar, 0, kcbMax))\n                goto LBadFile;\n            if (bomNil != bom)\n                SwapBytesBom(pcrpbg, bom);\n            if (!FIn(pcrpbg->ckid, 0, cbVar / size(KID) + 1) || (cbRgch = pcrpbg->CbRgch(cbVar)) > kcbMaxDataStn)\n            {\n                goto LBadFile;\n            }\n            if (bomNil != bom && pcrpbg->ckid > 0)\n            {\n                SwapBytesRglw(_pggcrp->QvGet(icrp), pcrpbg->ckid * (size(KID) / size(long)));\n            }\n            pcrpbg->rti = rtiNil;\n\n            if (fOldIndex)\n            {\n                ulong grfcrp = fcrpNil;\n\n                if (pcrpbg->fLoner)\n                    grfcrp |= fcrpLoner;\n                if (pcrpbg->fPacked)\n                    grfcrp |= fcrpPacked;\n\n                pcrpbg->grfcrp = grfcrp;\n            }\n            else\n                pcrpbg->ClearGrfcrp(fcrpOnExtra);\n\n            if (pcrpbg->ccrpRef == 0)\n                pcrpbg->SetGrfcrp(fcrpLoner);\n\n            AssertIn(cbRgch, 0, kcbMaxDataStn + 1);\n            if (fOldNames && cbRgch > 0)\n            {\n                // translate the name\n                long bvRgch = pcrpbg->BvRgch();\n\n                if (cbRgch < size(szsName))\n                {\n                    long cbNew;\n\n                    CopyPb(PvAddBv(_pggcrp->QvGet(icrp), bvRgch), szsName, cbRgch);\n                    szsName[cbRgch] = 0;\n                    stn.SetSzs(szsName);\n                    cbNew = stn.CbData();\n                    if (cbRgch != cbNew)\n                    {\n                        _pggcrp->Unlock();\n                        if (cbRgch < cbNew)\n                        {\n                            if (!_pggcrp->FInsertRgb(icrp, bvRgch, cbNew - cbRgch, pvNil))\n                            {\n                                goto LNukeName;\n                            }\n                        }\n                        else\n                            _pggcrp->DeleteRgb(icrp, bvRgch, cbRgch - cbNew);\n                        _pggcrp->Lock();\n                    }\n                    stn.GetData(PvAddBv(_pggcrp->QvGet(icrp), bvRgch));\n                }\n                else\n                {\n                    // just nuke the name\n                    _pggcrp->Unlock();\n                LNukeName:\n                    _pggcrp->DeleteRgb(icrp, bvRgch, cbRgch);\n                    _pggcrp->Lock();\n                }\n            }\n        }\n    }\n    else\n    {\n        // Small index\n        Assert(size(CRPSM) == cbFixed, 0);\n        CRPSM *pcrpsm;\n\n        bom = (bo != kboCur) ? kbomCrpsm : bomNil;\n        for (icrp = _pggcrp->IvMac(); icrp-- != 0;)\n        {\n            pcrpsm = (CRPSM *)_pggcrp->QvFixedGet(icrp, &cbVar);\n            if (!FIn(cbVar, 0, kcbMax))\n                goto LBadFile;\n            if (bomNil != bom)\n                SwapBytesBom(pcrpsm, bom);\n            if (!FIn(pcrpsm->ckid, 0, cbVar / size(KID) + 1) || (cbRgch = pcrpsm->CbRgch(cbVar)) > kcbMaxDataStn)\n            {\n                goto LBadFile;\n            }\n            if (pcrpsm->ckid > 0 && bomNil != bom)\n            {\n                SwapBytesRglw(_pggcrp->QvGet(icrp), pcrpsm->ckid * (size(KID) / size(long)));\n            }\n\n            pcrpsm->ClearGrfcrp(fcrpOnExtra);\n            if (pcrpsm->ccrpRef == 0 && !pcrpsm->Grfcrp(fcrpLoner))\n            {\n            LBadFile:\n                _pggcrp->Unlock();\n                Bug(\"corrupt crp\");\n                ReleasePpo(&_pggcrp);\n                return fFalse;\n            }\n        }\n    }\n\n    if (size(CRP) != cbFixed)\n    {\n        // need to convert the index (from big to small or small to big)\n        PGG pggcrp;\n        CRPOTH *pcrpOld;\n        CRP crp;\n\n        if (pvNil == (pggcrp = GG::PggNew(size(CRP), _pggcrp->IvMac())))\n            goto LFail;\n\n        for (ccrp = _pggcrp->IvMac(), icrp = 0; icrp < ccrp; icrp++)\n        {\n            pcrpOld = (CRPOTH *)_pggcrp->QvFixedGet(icrp, &cbVar);\n            crp.cki = pcrpOld->cki;\n            crp.fp = pcrpOld->fp;\n            crp.SetCb(pcrpOld->Cb());\n            crp.ckid = (CKID)pcrpOld->ckid;\n            crp.ccrpRef = (CKID)pcrpOld->ccrpRef;\n            crp.AssignGrfcrp(pcrpOld->Grfcrp());\n#ifdef CHUNK_BIG_INDEX\n            crp.rti = rtiNil;\n#endif // CHUNK_BIG_INDEX\n\n            if (!pggcrp->FInsert(icrp, _pggcrp->Cb(icrp), _pggcrp->QvGet(icrp), &crp))\n            {\n                ReleasePpo(&pggcrp);\n            LFail:\n                _pggcrp->Unlock();\n                return fFalse;\n            }\n        }\n        _pggcrp->Unlock();\n        ReleasePpo(&_pggcrp);\n\n        _pggcrp = pggcrp;\n    }\n    else\n        _pggcrp->Unlock();\n\n    _cbFreeMap = cfp.cbMap;\n    _fpFreeMap = cfp.fpMap;\n    _fFreeMapNotRead = cfp.cbMap > 0;\n\n    _csto.fpMac = cfp.fpIndex;\n    return fTrue;\n}\n\n/***************************************************************************\n    Assert that the free map hasn't been read (and doesn't exist).  Read\n    the free map from the file.  This _cannot_ be called after chunk\n    data has been added to the main file (as opposed to the extra file).\n    This _cannot_ be called before _FReadIndex has been called.\n***************************************************************************/\nvoid CFL::_ReadFreeMap(void)\n{\n    AssertBaseThis(0);\n    Assert(_fFreeMapNotRead, \"free map already read\");\n    Assert(!_fInvalidMainFile, 0);\n\n    short bo;\n    short osk;\n    long cfsm;\n\n    // clear this even if reading the free map fails - so we don't try to\n    // read again\n    _fFreeMapNotRead = fFalse;\n\n    if (_csto.pglfsm != pvNil)\n    {\n        Bug(\"free map already exists\");\n        return;\n    }\n\n    if (_cbFreeMap > 0)\n    {\n        if ((_csto.pglfsm = GL::PglRead(_csto.pfil, _fpFreeMap, _cbFreeMap, &bo, &osk)) == pvNil ||\n            _csto.pglfsm->CbEntry() != size(FSM))\n        {\n            // it failed, but so what\n            ReleasePpo(&_csto.pglfsm);\n            return;\n        }\n        // swap bytes\n        AssertBomRglw(kbomFsm, size(FSM));\n        if (bo != kboCur && (cfsm = _csto.pglfsm->IvMac()) > 0)\n        {\n            SwapBytesRglw(_csto.pglfsm->QvGet(0), cfsm * (size(FSM) / size(long)));\n        }\n    }\n}\n\n/***************************************************************************\n    If we have don't have write permission or there's an extra file,\n    write out a new file and do the rename stuff.  If not, just write\n    the index and free map.\n***************************************************************************/\nbool CFL::FSave(CTG ctgCreator, FNI *pfni)\n{\n    AssertThis(fcflFull | fcflGraph);\n    AssertNilOrPo(pfni, ffniFile);\n\n    FNI fni;\n    FLO floSrc, floDst;\n    long ccrp, icrp;\n    CRP *qcrp;\n    PFIL pfilOld;\n\n    if (_fInvalidMainFile)\n    {\n        if (pvNil == pfni)\n        {\n            Bug(\"can't save a CFL that has no file attached!\");\n            return fFalse;\n        }\n        fni = *pfni;\n    }\n    else\n    {\n        GetFni(&fni);\n        if (pfni != pvNil)\n        {\n            if (pfni->FEqual(&fni))\n                pfni = pvNil;\n            else\n                fni = *pfni;\n        }\n    }\n\n    if (!_fAddToExtra && _cstoExtra.pfil == pvNil && pfni == pvNil)\n    {\n        // just write the index\n        Assert(!_fFreeMapNotRead, \"why hasn't the free map been read?\");\n        if (!_FWriteIndex(ctgCreator))\n            goto LError;\n        return fTrue;\n    }\n\n    // get a temp name in the same directory as the target\n    if ((floDst.pfil = FIL::PfilCreateTemp(&fni)) == pvNil)\n        goto LError;\n    if (!floDst.pfil->FSetFpMac(size(CFP)))\n        goto LFail;\n\n    floDst.fp = size(CFP);\n    ccrp = _pggcrp->IvMac();\n    for (icrp = 0; icrp < ccrp; icrp++)\n    {\n        qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n        floSrc.pfil = qcrp->Grfcrp(fcrpOnExtra) ? _cstoExtra.pfil : _csto.pfil;\n        floSrc.fp = qcrp->fp;\n        floSrc.cb = floDst.cb = qcrp->Cb();\n\n        if (floSrc.cb > 0 && !floSrc.FCopy(&floDst))\n        {\n        LFail:\n            Assert(floDst.pfil->FTemp(), \"file not a temp\");\n            ReleasePpo(&floDst.pfil);\n            goto LError;\n        }\n        floDst.fp += floDst.cb;\n    }\n\n    // All the data has been copied.  Update the index to point to the new file.\n    floSrc.fp = size(CFP);\n    for (icrp = 0; icrp < ccrp; icrp++)\n    {\n        qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n        qcrp->ClearGrfcrp(fcrpOnExtra);\n        qcrp->fp = qcrp->Cb() > 0 ? floSrc.fp : 0;\n        floSrc.fp += qcrp->Cb();\n    }\n    Assert(floSrc.fp == floDst.fp, \"what happened? - file messed up\");\n\n    // update the csto's and write the index\n    pfilOld = _csto.pfil;\n    ReleasePpo(&_csto.pglfsm);\n    _fFreeMapNotRead = fFalse;\n    _csto.pfil = floDst.pfil;\n    _csto.fpMac = floDst.fp;\n    _csto.pfil->SetTemp(_fInvalidMainFile || pfilOld->FTemp());\n\n    if (_cstoExtra.pfil != pvNil)\n    {\n        _cstoExtra.fpMac = 0;\n        ReleasePpo(&_cstoExtra.pfil);\n        ReleasePpo(&_cstoExtra.pglfsm);\n    }\n\n    // write the index\n    if (!_FWriteIndex(ctgCreator))\n        goto LIndexFail;\n\n    if (pfni != pvNil)\n    {\n        // delete any existing file with this name, then rename our output\n        // file to the given name\n        if (pfni->TExists() != tNo)\n            pfni->FDelete();\n        if (!_csto.pfil->FRename(pfni))\n            goto LIndexFail;\n        _fInvalidMainFile = fFalse;\n    }\n    else if (!_csto.pfil->FSwapNames(pfilOld))\n    {\n    LIndexFail:\n        if (_fInvalidMainFile)\n        {\n            // we can just use the new file now.\n            ReleasePpo(&pfilOld); // release our claim on the old file\n        }\n        else\n        {\n            // restore the original csto and make floDst.pfil the extra file\n            _csto.pfil = pfilOld;\n            _csto.fpMac = size(CFP);\n            for (icrp = 0; icrp < ccrp; icrp++)\n            {\n                qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n                if (qcrp->Cb() > 0)\n                    qcrp->SetGrfcrp(fcrpOnExtra);\n            }\n            _cstoExtra.pfil = floDst.pfil;\n            floDst.pfil->SetTemp(fTrue);\n            _cstoExtra.fpMac = floDst.fp;\n        }\n    LError:\n        PushErc(ercCflSave);\n        AssertThis(fcflFull | fcflGraph);\n        return fFalse;\n    }\n\n    // everything worked\n    if (pfni == pvNil)\n        pfilOld->SetTemp(fTrue);\n\n    ReleasePpo(&pfilOld); // release our claim on the old file\n    AssertThis(fcflFull | fcflGraph);\n    return fTrue;\n}\n\n/***************************************************************************\n    Write the chunky index and free map to the end of the file.\n***************************************************************************/\nbool CFL::_FWriteIndex(CTG ctgCreator)\n{\n    AssertBaseThis(0);\n    AssertPo(_pggcrp, 0);\n    AssertPo(_csto.pfil, 0);\n\n    CFP cfp;\n    BLCK blck;\n\n    ClearPb(&cfp, size(cfp));\n    cfp.lwMagic = klwMagicChunky;\n    cfp.ctgCreator = ctgCreator;\n    cfp.dver.Set(kcvnCur, kcvnBack);\n    cfp.bo = kboCur;\n    cfp.osk = koskCur;\n\n    blck.Set(_csto.pfil, cfp.fpIndex = _csto.fpMac, cfp.cbIndex = _pggcrp->CbOnFile());\n    if (!_pggcrp->FWrite(&blck))\n        return fFalse;\n    cfp.fpMap = cfp.fpIndex + cfp.cbIndex;\n    if (_csto.pglfsm != pvNil)\n    {\n        AssertDo(blck.FMoveMin(cfp.cbIndex), 0);\n        AssertDo(blck.FMoveLim(cfp.cbMap = _csto.pglfsm->CbOnFile()), 0);\n        if (!_csto.pglfsm->FWrite(&blck))\n            return fFalse;\n    }\n    else\n        cfp.cbMap = 0;\n\n    cfp.fpMac = cfp.fpMap + cfp.cbMap;\n    return _csto.pfil->FWriteRgb(&cfp, size(cfp), 0);\n}\n\n/***************************************************************************\n    Save a copy of the chunky file out to *pfni.  The CFL and its FIL\n    are untouched.\n***************************************************************************/\nbool CFL::FSaveACopy(CTG ctgCreator, FNI *pfni)\n{\n    AssertThis(fcflFull | fcflGraph);\n    AssertPo(pfni, ffniFile);\n    PCFL pcflDst;\n    long icrp, ccrp;\n    CRP *pcrp;\n    CRP crp;\n    FLO floSrc, floDst;\n\n    if (pvNil == (pcflDst = CFL::PcflCreate(pfni, fcflWriteEnable)))\n        goto LError;\n\n    // initialize the destination FLO.\n    floDst.pfil = pcflDst->_csto.pfil;\n    floDst.fp = size(CFP);\n\n    // need to lock the _pggcrp for the FInsert operations below\n    ccrp = _pggcrp->IvMac();\n    _pggcrp->Lock();\n\n    for (icrp = 0; icrp < ccrp; icrp++, floDst.fp += floDst.cb)\n    {\n        pcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n        crp = *pcrp;\n\n        // get the source and destination FLOs\n        floSrc.pfil = pcrp->Grfcrp(fcrpOnExtra) ? _cstoExtra.pfil : _csto.pfil;\n        floSrc.fp = pcrp->fp;\n        floDst.cb = floSrc.cb = pcrp->Cb();\n\n        // copy the data\n        if (!floSrc.FCopy(&floDst))\n        {\n            _pggcrp->Unlock();\n            goto LFail;\n        }\n\n        // create the index entry - the only things that change are the\n        // (fp, cb) and the fcrpOnExtra flag.\n        crp.fp = floDst.fp;\n        crp.SetCb(floDst.cb);\n        crp.ClearGrfcrp(fcrpOnExtra);\n        if (!pcflDst->_pggcrp->FInsert(icrp, _pggcrp->Cb(icrp), _pggcrp->QvGet(icrp), &crp))\n        {\n            _pggcrp->Unlock();\n            goto LFail;\n        }\n    }\n    _pggcrp->Unlock();\n\n    // set the fpMac of the destination CFL\n    pcflDst->_csto.fpMac = floDst.fp;\n\n    if (!pcflDst->FSave(ctgCreator))\n    {\n    LFail:\n        pcflDst->SetTemp(fTrue);\n        ReleasePpo(&pcflDst);\n    LError:\n        PushErc(ercCflSaveCopy);\n        return fFalse;\n    }\n\n    ReleasePpo(&pcflDst);\n    return fTrue;\n}\n\n/***************************************************************************\n    Return whether the chunk's data is on the extra file.\n***************************************************************************/\nbool CFL::FOnExtra(CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    long icrp;\n    CRP *qcrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n        return fFalse;\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    return FPure(qcrp->Grfcrp(fcrpOnExtra));\n}\n\n/***************************************************************************\n    Make sure the given chunk's data is on the extra file. Fails iff the\n    chunk doesn't exist or copying the data failed.\n***************************************************************************/\nbool CFL::FEnsureOnExtra(CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    long icrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n        return fFalse;\n\n    return _FEnsureOnExtra(icrp);\n}\n\n/***************************************************************************\n    Make sure the given chunk's data is on the extra file. Optionally get\n    the flo for the data.\n***************************************************************************/\nbool CFL::_FEnsureOnExtra(long icrp, FLO *pflo)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pflo);\n\n    CRP *qcrp;\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    if (qcrp->Grfcrp(fcrpOnExtra) || qcrp->Cb() == 0)\n    {\n        if (pvNil != pflo)\n        {\n            pflo->pfil = _cstoExtra.pfil;\n            pflo->fp = qcrp->fp;\n            pflo->cb = qcrp->Cb();\n        }\n    }\n    else\n    {\n        FLO floSrc, floDst;\n\n#ifdef CHUNK_STATS\n        if (vfDumpChunkRequests)\n        {\n            STN stn;\n\n            qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n            stn.FFormatSz(PszLit(\"Cache: '%f', 0x%08x, fp = 0x%08x, cb = 0x%08x\"), qcrp->cki.ctg, qcrp->cki.cno,\n                          qcrp->fp, qcrp->Cb());\n            DumpStn(&stn, _csto.pfil);\n        }\n#endif // CHUNK_STATS\n\n        floSrc.pfil = _csto.pfil;\n        floSrc.fp = qcrp->fp;\n        floSrc.cb = qcrp->Cb();\n\n        if (!_FAllocFlo(floSrc.cb, &floDst, fTrue))\n            return fFalse;\n        if (!floSrc.FCopy(&floDst))\n        {\n            _FreeFpCb(fTrue, floDst.fp, floDst.cb);\n            return fFalse;\n        }\n\n        qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n        qcrp->SetGrfcrp(fcrpOnExtra);\n        qcrp->fp = floDst.fp;\n        if (pvNil != pflo)\n            *pflo = floDst;\n    }\n\n#ifdef CHUNK_STATS\n    if (pvNil != pflo && vfDumpChunkRequests)\n    {\n        STN stn;\n\n        qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n        stn.FFormatSz(PszLit(\"Fetch from extra: '%f', 0x%08x, fp = 0x%08x, cb = 0x%08x\"), qcrp->cki.ctg, qcrp->cki.cno,\n                      qcrp->fp, qcrp->Cb());\n        DumpStn(&stn, _csto.pfil);\n    }\n#endif // CHUNK_STATS\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the FLO from the chunk.\n***************************************************************************/\nvoid CFL::_GetFlo(long icrp, PFLO pflo)\n{\n    AssertThis(0);\n    AssertVarMem(pflo);\n\n    if (!_fReadFromExtra || !_FEnsureOnExtra(icrp, pflo))\n    {\n        CRP *qcrp;\n\n        qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n        pflo->pfil = qcrp->Grfcrp(fcrpOnExtra) ? _cstoExtra.pfil : _csto.pfil;\n        pflo->fp = qcrp->fp;\n        pflo->cb = qcrp->Cb();\n\n#ifdef CHUNK_STATS\n        if (vfDumpChunkRequests)\n        {\n            STN stn;\n\n            qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n            stn.FFormatSz(PszLit(\"Fetch from %z: '%f', 0x%08x, fp = 0x%08x, cb = 0x%08x\"),\n                          qcrp->Grfcrp(fcrpOnExtra) ? PszLit(\"extra\") : PszLit(\"main\"), qcrp->cki.ctg, qcrp->cki.cno,\n                          qcrp->fp, qcrp->Cb());\n            DumpStn(&stn, _csto.pfil);\n        }\n#endif // CHUNK_STATS\n    }\n    AssertPo(pflo->pfil, 0);\n}\n\n/***************************************************************************\n    Get the BLCK from the chunk.\n***************************************************************************/\nvoid CFL::_GetBlck(long icrp, PBLCK pblck)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n\n    FLO flo;\n    CRP *qcrp;\n\n    _GetFlo(icrp, &flo);\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    pblck->Set(&flo, qcrp->Grfcrp(fcrpPacked));\n}\n\n/***************************************************************************\n    Map the (ctg, cno) to a BLCK.\n***************************************************************************/\nbool CFL::FFind(CTG ctg, CNO cno, BLCK *pblck)\n{\n    AssertThis(0);\n    AssertNilOrPo(pblck, 0);\n\n    long icrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n    {\n        if (pvNil != pblck)\n            pblck->Free();\n        return fFalse;\n    }\n\n    if (pvNil != pblck)\n        _GetBlck(icrp, pblck);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Map the (ctg, cno) to a pflo.\n***************************************************************************/\nbool CFL::FFindFlo(CTG ctg, CNO cno, PFLO pflo)\n{\n    AssertThis(0);\n    AssertVarMem(pflo);\n\n    long icrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n    {\n        TrashVar(pflo);\n        return fFalse;\n    }\n\n    _GetFlo(icrp, pflo);\n    return fTrue;\n}\n\n/***************************************************************************\n    Reads the chunk (if it exists) into an hq.  Returns false if the\n    chunk doesn't exist or something failed, in which case *phq is set\n    to hqNil.  Doesn't unpack the data if it's packed.\n***************************************************************************/\nbool CFL::FReadHq(CTG ctg, CNO cno, HQ *phq)\n{\n    AssertThis(0);\n    AssertVarMem(phq);\n    BLCK blck;\n\n    *phq = hqNil; // in case FFind fails\n    return FFind(ctg, cno, &blck) && blck.FReadHq(phq, fTrue);\n}\n\n/***************************************************************************\n    Make sure the packed flag is set or clear according to fPacked.\n    This doesn't affect the data at all.\n***************************************************************************/\nvoid CFL::SetPacked(CTG ctg, CNO cno, bool fPacked)\n{\n    AssertThis(0);\n    long icrp;\n    CRP *qcrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n    {\n        Bug(\"chunk not there\");\n        return;\n    }\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    Assert(qcrp->cki.ctg == ctg && qcrp->cki.cno == cno, 0);\n    if (FPure(qcrp->Grfcrp(fcrpPacked)) != FPure(fPacked))\n    {\n        if (fPacked)\n            qcrp->SetGrfcrp(fcrpPacked);\n        else\n            qcrp->ClearGrfcrp(fcrpPacked);\n        _FSetRti(ctg, cno, rtiNil);\n    }\n}\n\n/***************************************************************************\n    Return the value of the packed flag.\n***************************************************************************/\nbool CFL::FPacked(CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    long icrp;\n    CRP *qcrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n    {\n        Bug(\"chunk not there\");\n        return fFalse;\n    }\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    Assert(qcrp->cki.ctg == ctg && qcrp->cki.cno == cno, 0);\n    return FPure(qcrp->Grfcrp(fcrpPacked));\n}\n\n/***************************************************************************\n    If the data for the chunk is packed, unpack it.\n***************************************************************************/\nbool CFL::FUnpackData(CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    BLCK blck;\n\n    if (!FPacked(ctg, cno))\n        return fTrue;\n\n    AssertDo(FFind(ctg, cno, &blck), 0);\n    if (!blck.FUnpackData())\n        return fFalse;\n    return FPutBlck(&blck, ctg, cno);\n}\n\n/***************************************************************************\n    If the data isn't already packed, pack it.\n***************************************************************************/\nbool CFL::FPackData(CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    BLCK blck;\n\n    if (FPacked(ctg, cno))\n        return fTrue;\n\n    AssertDo(FFind(ctg, cno, &blck), 0);\n    if (!blck.FPackData())\n        return fFalse;\n    return FPutBlck(&blck, ctg, cno);\n}\n\n/***************************************************************************\n    Create the extra file.  Note: the extra file doesn't have a CFP -\n    just raw data.\n***************************************************************************/\nbool CFL::_FCreateExtra(void)\n{\n    AssertBaseThis(0);\n    Assert(_cstoExtra.pfil == pvNil, 0);\n    Assert(_cstoExtra.pglfsm == pvNil, 0);\n\n    if (pvNil == (_cstoExtra.pfil = FIL::PfilCreateTemp()))\n        return fFalse;\n\n    _cstoExtra.fpMac = 0;\n    return fTrue;\n}\n\n/***************************************************************************\n    Find a place to put a block the given size.\n***************************************************************************/\nbool CFL::_FAllocFlo(long cb, PFLO pflo, bool fForceOnExtra)\n{\n    AssertBaseThis(0);\n    AssertIn(cb, 0, kcbMax);\n    AssertVarMem(pflo);\n\n    CSTO *pcsto;\n    long cfsm, ifsm;\n    FSM *qfsm;\n\n    if (cb > kcbMaxCrp)\n    {\n        Bug(\"Requested FLO too big\");\n        return fFalse;\n    }\n\n    if ((fForceOnExtra || _fAddToExtra) && cb > 0)\n    {\n        pcsto = &_cstoExtra;\n        if (pcsto->pfil == pvNil && !_FCreateExtra())\n        {\n            TrashVar(pflo);\n            return fFalse;\n        }\n    }\n    else\n    {\n        Assert(!_fFreeMapNotRead, \"free map not read yet\");\n        pcsto = &_csto;\n    }\n\n    // set the file and cb - just need to find an fp\n    AssertPo(pcsto->pfil, 0);\n    pflo->pfil = pcsto->pfil;\n    pflo->cb = cb;\n\n    if (cb <= 0)\n    {\n        pflo->fp = 0;\n        pflo->cb = 0; // for safety\n        return fTrue;\n    }\n\n    // look for a free spot in the free space map\n    if (pcsto->pglfsm != pvNil && (cfsm = pcsto->pglfsm->IvMac()) > 0)\n    {\n        qfsm = (FSM *)pcsto->pglfsm->QvGet(0);\n        for (ifsm = 0; ifsm < cfsm; ifsm++, qfsm++)\n        {\n            if (qfsm->cb >= cb)\n            {\n                // can put it here\n                pflo->fp = qfsm->fp;\n                if (qfsm->cb == cb)\n                    pcsto->pglfsm->Delete(ifsm);\n                else\n                {\n                    qfsm->cb -= cb;\n                    qfsm->fp += cb;\n                }\n                return fTrue;\n            }\n        }\n    }\n\n    // put it at the end of the file\n    if (pcsto->fpMac + cb > pcsto->pfil->FpMac() && !pcsto->pfil->FSetFpMac(pcsto->fpMac + cb))\n    {\n        TrashVar(pflo);\n        return fFalse;\n    }\n\n    pflo->fp = pcsto->fpMac;\n    pcsto->fpMac += cb;\n    return fTrue;\n}\n\n/***************************************************************************\n    Look for the (ctg, cno) pair.  Fills *picrp with where it should be.\n    Returns whether or not it was found.  Assumes the _pggcrp is sorted\n    by (ctg, cno).  Does a binary search.\n***************************************************************************/\nbool CFL::_FFindCtgCno(CTG ctg, CNO cno, long *picrp)\n{\n    // WARNING:  this is called by CFL::AssertValid, so be careful about\n    // asserting stuff in here\n    AssertBaseThis(0);\n    AssertVarMem(picrp);\n    AssertPo(_pggcrp, 0);\n\n    long ccrp, icrpMin, icrpLim, icrp;\n    CKI cki;\n\n    if ((ccrp = _pggcrp->IvMac()) == 0)\n    {\n        *picrp = 0;\n        return fFalse;\n    }\n\n    for (icrpMin = 0, icrpLim = ccrp; icrpMin < icrpLim;)\n    {\n        icrp = (icrpMin + icrpLim) / 2;\n        cki = ((CRP *)_pggcrp->QvFixedGet(icrp))->cki;\n\n        if (cki.ctg < ctg)\n            icrpMin = icrp + 1;\n        else if (cki.ctg > ctg)\n            icrpLim = icrp;\n        else if (cki.cno < cno)\n            icrpMin = icrp + 1;\n        else if (cki.cno > cno)\n            icrpLim = icrp;\n        else\n        {\n            *picrp = icrp;\n            return fTrue;\n        }\n    }\n\n    *picrp = icrpMin;\n    return fFalse;\n}\n\n/***************************************************************************\n    Find an unused cno for the given ctg.  Fill in *picrp and *pcno.\n***************************************************************************/\nvoid CFL::_GetUniqueCno(CTG ctg, long *picrp, CNO *pcno)\n{\n    AssertBaseThis(0);\n    AssertVarMem(picrp);\n    AssertVarMem(pcno);\n\n    long icrp, ccrp;\n    CNO cno;\n    CRP *qcrp;\n\n    if (!_FFindCtgCno(ctg, 0, picrp))\n    {\n        *pcno = 0;\n        return;\n    }\n\n    // 0 already exists so do a linear search for the first useable slot\n    ccrp = _pggcrp->IvMac();\n    for (icrp = *picrp + 1, cno = 1; icrp < ccrp; icrp++, cno++)\n    {\n        qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n        if (qcrp->cki.ctg != ctg || qcrp->cki.cno != cno)\n            break;\n    }\n    *picrp = icrp;\n    *pcno = cno;\n}\n\n/***************************************************************************\n    Add a new chunk.\n***************************************************************************/\nbool CFL::FAdd(long cb, CTG ctg, CNO *pcno, PBLCK pblck)\n{\n    AssertThis(0);\n    AssertIn(cb, 0, kcbMax);\n    AssertVarMem(pcno);\n    AssertNilOrPo(pblck, 0);\n    long icrp;\n\n    _GetUniqueCno(ctg, &icrp, pcno);\n    if (!_FAdd(cb, ctg, *pcno, icrp, pblck))\n    {\n        TrashVar(pcno);\n        AssertThis(0);\n        return fFalse;\n    }\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Add a new chunk and write the pv to it.\n***************************************************************************/\nbool CFL::FAddPv(void *pv, long cb, CTG ctg, CNO *pcno)\n{\n    AssertThis(0);\n    AssertVarMem(pcno);\n    AssertIn(cb, 0, kcbMax);\n    AssertPvCb(pv, cb);\n    BLCK blck;\n\n    if (!FAdd(cb, ctg, pcno, &blck))\n        return fFalse;\n    if (!blck.FWrite(pv))\n    {\n        Delete(ctg, *pcno);\n        TrashVar(pcno);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Add a new chunk and write the hq to it.\n***************************************************************************/\nbool CFL::FAddHq(HQ hq, CTG ctg, CNO *pcno)\n{\n    AssertThis(0);\n    AssertVarMem(pcno);\n    AssertHq(hq);\n\n    BLCK blck;\n    long cb = CbOfHq(hq);\n\n    if (!FAdd(cb, ctg, pcno, &blck))\n        return fFalse;\n    if (!blck.FWriteHq(hq, 0))\n    {\n        Delete(ctg, *pcno);\n        TrashVar(pcno);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Add a new chunk and write the block to it.\n***************************************************************************/\nbool CFL::FAddBlck(PBLCK pblckSrc, CTG ctg, CNO *pcno)\n{\n    AssertThis(0);\n    AssertPo(pblckSrc, 0);\n    AssertVarMem(pcno);\n\n    BLCK blck;\n    long cb = pblckSrc->Cb(fTrue);\n\n    if (!FAdd(cb, ctg, pcno, &blck))\n        return fFalse;\n    if (!pblckSrc->FWriteToBlck(&blck, fTrue))\n    {\n        Delete(ctg, *pcno);\n        TrashVar(pcno);\n        return fFalse;\n    }\n    if (pblckSrc->FPacked())\n        SetPacked(ctg, *pcno, fTrue);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Adds the chunk and makes it a child of (ctgPar, cnoPar). The loner flag\n    of the new chunk will be clear.\n***************************************************************************/\nbool CFL::FAddChild(CTG ctgPar, CNO cnoPar, CHID chid, long cb, CTG ctg, CNO *pcno, PBLCK pblck)\n{\n    AssertThis(0);\n    AssertVarMem(pcno);\n    AssertNilOrPo(pblck, 0);\n\n    if (!FAdd(cb, ctg, pcno, pblck))\n        return fFalse;\n    if (!FAdoptChild(ctgPar, cnoPar, ctg, *pcno, chid, fTrue))\n    {\n        Delete(ctg, *pcno);\n        TrashVar(pcno);\n        if (pvNil != pblck)\n            pblck->Free();\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Adds the chunk and makes it a child of (ctgPar, cnoPar).  The child's\n    loner flag will be clear.\n***************************************************************************/\nbool CFL::FAddChildPv(CTG ctgPar, CNO cnoPar, CHID chid, void *pv, long cb, CTG ctg, CNO *pcno)\n{\n    if (!FAddPv(pv, cb, ctg, pcno))\n        return fFalse;\n    if (!FAdoptChild(ctgPar, cnoPar, ctg, *pcno, chid, fTrue))\n    {\n        Delete(ctg, *pcno);\n        TrashVar(pcno);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Adds the chunk and makes it a child of (ctgPar, cnoPar).  The child's\n    loner flag will be clear.\n***************************************************************************/\nbool CFL::FAddChildHq(CTG ctgPar, CNO cnoPar, CHID chid, HQ hq, CTG ctg, CNO *pcno)\n{\n    if (!FAddHq(hq, ctg, pcno))\n        return fFalse;\n    if (!FAdoptChild(ctgPar, cnoPar, ctg, *pcno, chid, fTrue))\n    {\n        Delete(ctg, *pcno);\n        TrashVar(pcno);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Low level add.  Sets the loner flag.\n***************************************************************************/\nbool CFL::_FAdd(long cb, CTG ctg, CNO cno, long icrp, PBLCK pblck)\n{\n    AssertBaseThis(0);\n    AssertIn(cb, 0, kcbMax);\n    AssertNilOrPo(pblck, 0);\n\n    CRP *qcrp;\n    FLO flo;\n\n    if (!_pggcrp->FInsert(icrp, 0))\n    {\n        if (pvNil != pblck)\n            pblck->Free();\n        return fFalse;\n    }\n\n    if (!_FAllocFlo(cb, &flo))\n    {\n        _pggcrp->Delete(icrp);\n        AssertThis(0);\n        if (pvNil != pblck)\n            pblck->Free();\n        return fFalse;\n    }\n    Assert(flo.pfil == _csto.pfil || flo.pfil == _cstoExtra.pfil, 0);\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    ClearPb(qcrp, size(CRP));\n    qcrp->cki.ctg = ctg;\n    qcrp->cki.cno = cno;\n    qcrp->fp = flo.fp;\n    qcrp->SetCb(flo.cb);\n    if (flo.pfil == _cstoExtra.pfil)\n        qcrp->SetGrfcrp(fcrpOnExtra);\n    qcrp->SetGrfcrp(fcrpLoner);\n\n    if (pvNil != pblck)\n        pblck->Set(&flo);\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Replace or create a chunk of a particular cno.\n***************************************************************************/\nbool CFL::FPut(long cb, CTG ctg, CNO cno, PBLCK pblck)\n{\n    AssertThis(0);\n    AssertNilOrPo(pblck, 0);\n\n    return _FPut(cb, ctg, cno, pblck, pvNil, pvNil);\n}\n\n/***************************************************************************\n    Replace or create a chunk with the given cno and put the data in it.\n***************************************************************************/\nbool CFL::FPutPv(void *pv, long cb, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    AssertIn(cb, 0, kcbMax);\n    AssertPvCb(pv, cb);\n\n    return _FPut(cb, ctg, cno, pvNil, pvNil, pv);\n}\n\n/***************************************************************************\n    Replace or create a chunk with the given cno and put the hq's\n    data in it.\n***************************************************************************/\nbool CFL::FPutHq(HQ hq, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    AssertHq(hq);\n    bool fRet;\n    HQ hqT = hq;\n    BLCK blckSrc(&hq);\n\n    fRet = _FPut(blckSrc.Cb(), ctg, cno, pvNil, &blckSrc, pvNil);\n    AssertDo(hqT == blckSrc.HqFree(), \"blckSrc.HqFree() returned a differnt hq!\");\n\n    return fRet;\n}\n\n/***************************************************************************\n    Replace or create a chunk with the given cno and put the block's\n    data in it.  Set the packed flag as in the block.\n***************************************************************************/\nbool CFL::FPutBlck(PBLCK pblckSrc, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    AssertPo(pblckSrc, 0);\n\n    if (!_FPut(pblckSrc->Cb(fTrue), ctg, cno, pvNil, pblckSrc, pvNil))\n        return pvNil;\n    SetPacked(ctg, cno, pblckSrc->FPacked());\n    return fTrue;\n}\n\n/***************************************************************************\n    Low level put.  Writes data from pblckSrc or pv (or neither).  If the\n    chunk doesn't already exist, this has the same affect as doing an add.\n    If it does exist, this doesn't change the fcrpLoner flag or anything\n    else except the data.  If pblck isn't nil, this sets it to the location\n    of the new data.  Doesn't change the packed flag.\n***************************************************************************/\nbool CFL::_FPut(long cb, CTG ctg, CNO cno, PBLCK pblck, PBLCK pblckSrc, void *pv)\n{\n    AssertBaseThis(0);\n    AssertIn(cb, 0, kcbMax);\n    AssertNilOrPo(pblck, 0);\n    AssertNilOrPo(pblckSrc, 0);\n\n    long icrp;\n    CRP *qcrp;\n    FLO flo;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n    {\n        BLCK blck;\n\n        if (pvNil == pblck)\n            pblck = &blck;\n\n        if (!_FAdd(cb, ctg, cno, icrp, pblck))\n            return fFalse;\n\n        if (pv != pvNil)\n        {\n            Assert(pvNil == pblckSrc, 0);\n            if (!pblck->FWrite(pv))\n                goto LFailNew;\n        }\n        else if (pvNil != pblckSrc && !pblckSrc->FWriteToBlck(pblck, fTrue))\n        {\n        LFailNew:\n            Delete(ctg, cno);\n            pblck->Free();\n            AssertThis(0);\n            return fFalse;\n        }\n\n        AssertThis(0);\n        return fTrue;\n    }\n\n    if (!_FAllocFlo(cb, &flo))\n    {\n        AssertThis(0);\n        return fFalse;\n    }\n    Assert(flo.pfil == _csto.pfil || flo.pfil == _cstoExtra.pfil, 0);\n    if (pvNil != pblck)\n        pblck->Set(&flo);\n\n    if (pv != pvNil)\n    {\n        Assert(pvNil == pblckSrc, 0);\n        if (!flo.FWrite(pv))\n            goto LFailOld;\n    }\n    else if (pvNil != pblckSrc && !pblckSrc->FWriteToFlo(&flo, fTrue))\n    {\n    LFailOld:\n        _FreeFpCb(_fAddToExtra, flo.fp, flo.cb);\n        if (pvNil != pblck)\n            pblck->Free();\n        AssertThis(0);\n        return fFalse;\n    }\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    Assert(qcrp->cki.ctg == ctg, 0);\n    Assert(qcrp->cki.cno == cno, 0);\n    _FreeFpCb(qcrp->Grfcrp(fcrpOnExtra), qcrp->fp, qcrp->Cb());\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    qcrp->fp = flo.fp;\n    qcrp->SetCb(flo.cb);\n    if (flo.pfil == _cstoExtra.pfil)\n        qcrp->SetGrfcrp(fcrpOnExtra);\n    else\n        qcrp->ClearGrfcrp(fcrpOnExtra);\n    _FSetRti(ctg, cno, rtiNil);\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Swaps the data for the two chunks.  This allows a \"safe save\" of\n    individual chunks (create a temp chunk, write the data, swap the data,\n    delete the temp chunk).  Doesn't affect child/parent relationships\n    or the loner flag.\n***************************************************************************/\nvoid CFL::SwapData(CTG ctg1, CNO cno1, CTG ctg2, CNO cno2)\n{\n    AssertThis(0);\n    long icrp1, icrp2;\n    CRP *qcrp1, *qcrp2;\n    FP fp;\n    long cb;\n    ulong grfcrpT;\n    const ulong kgrfcrpMask = fcrpOnExtra | fcrpPacked | fcrpForest;\n\n    if (!_FFindCtgCno(ctg1, cno1, &icrp1) || !_FFindCtgCno(ctg2, cno2, &icrp2))\n    {\n        Bug(\"can't find the chunks\");\n        return;\n    }\n    qcrp1 = (CRP *)_pggcrp->QvFixedGet(icrp1);\n    qcrp2 = (CRP *)_pggcrp->QvFixedGet(icrp2);\n\n    fp = qcrp1->fp;\n    qcrp1->fp = qcrp2->fp;\n    qcrp2->fp = fp;\n    cb = qcrp1->Cb();\n    qcrp1->SetCb(qcrp2->Cb());\n    qcrp2->SetCb(cb);\n\n    // swap the bits of grfcrp in grfcrpMask\n    grfcrpT = qcrp1->Grfcrp(kgrfcrpMask);\n    qcrp1->AssignGrfcrp(qcrp2->Grfcrp(kgrfcrpMask), kgrfcrpMask);\n    qcrp2->AssignGrfcrp(grfcrpT, kgrfcrpMask);\n\n    _FSetRti(ctg1, cno1, rtiNil);\n    _FSetRti(ctg2, cno2, rtiNil);\n\n    AssertThis(fcflFull);\n}\n\n/***************************************************************************\n    Swaps the children for the two chunks.  This allows a \"safe save\" of\n    chunk graphs (create a temp chunk, write the data, swap the data,\n    swap the children, delete the temp chunk).  Doesn't affect the data\n    or the loner flag.\n***************************************************************************/\nvoid CFL::SwapChildren(CTG ctg1, CNO cno1, CTG ctg2, CNO cno2)\n{\n    AssertThis(0);\n    long icrp1, icrp2;\n    CRP *qcrp1, *qcrp2;\n    long cb1, cb2;\n\n    if (!_FFindCtgCno(ctg1, cno1, &icrp1) || !_FFindCtgCno(ctg2, cno2, &icrp2))\n    {\n        Bug(\"can't find the chunks\");\n        return;\n    }\n\n    // Swap the child lists.\n    qcrp1 = (CRP *)_pggcrp->QvFixedGet(icrp1);\n    qcrp2 = (CRP *)_pggcrp->QvFixedGet(icrp2);\n    cb1 = LwMul(qcrp1->ckid, size(KID));\n    cb2 = LwMul(qcrp2->ckid, size(KID));\n    SwapVars(&qcrp1->ckid, &qcrp2->ckid);\n\n    // These FMoveRgb calls won't fail, because no padding is necessary for\n    // child entries. (FMoveRgb can fail only if the number of bytes being\n    // moved is not a multiple of size(long)).\n    if (0 < cb1)\n        AssertDo(_pggcrp->FMoveRgb(icrp1, 0, icrp2, cb2, cb1), 0);\n    if (0 < cb2)\n        AssertDo(_pggcrp->FMoveRgb(icrp2, 0, icrp1, 0, cb2), 0);\n\n    AssertThis(fcflFull);\n}\n\n/***************************************************************************\n    Move the chunk from (ctg, cno) to (ctgNew, cnoNew).  Asserts that there\n    is not already a chunk labelled (ctgNew, cnoNew).  If the chunk has\n    parents, updates the parent links to point to (ctgNew, cnoNew).\n    Adjusting the links is slow.\n***************************************************************************/\nvoid CFL::Move(CTG ctg, CNO cno, CTG ctgNew, CNO cnoNew)\n{\n    AssertThis(0);\n    long icrpCur, icrpTarget;\n    CRP *qcrp;\n    long ccrpRef;\n    long rti;\n\n    if (ctg == ctgNew && cno == cnoNew)\n        return;\n\n    if (!_FFindCtgCno(ctg, cno, &icrpCur) || _FFindCtgCno(ctgNew, cnoNew, &icrpTarget))\n    {\n        Bug(\"bad move request\");\n        return;\n    }\n\n    rti = _Rti(ctg, cno);\n    if (rtiNil != rti)\n        _FSetRti(ctg, cno, rtiNil);\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrpCur);\n    ccrpRef = qcrp->ccrpRef;\n    qcrp->cki.ctg = ctgNew;\n    qcrp->cki.cno = cnoNew;\n    _pggcrp->Move(icrpCur, icrpTarget);\n\n    if (ccrpRef > 0)\n    {\n        // chunk has some parents\n        CRP crp;\n        long icrp, ikid, ikidNew;\n        KID *qkid, *qrgkid;\n\n        // In debug, increment ccrpRef so we'll traverse the entire\n        // index.  In ship, we'll stop once we changed ccrpRef KIDs.\n        Debug(ccrpRef++;) for (icrp = _pggcrp->IvMac(); icrp-- > 0 && ccrpRef > 0;)\n        {\n            _pggcrp->GetFixed(icrp, &crp);\n            qkid = (KID *)_pggcrp->QvGet(icrp);\n            for (ikid = 0; ikid < crp.ckid;)\n            {\n                if (qkid->cki.ctg != ctg || qkid->cki.cno != cno)\n                {\n                    ikid++;\n                    qkid++;\n                    continue;\n                }\n\n                // replace this kid\n                AssertDo(!_FFindChild(icrp, ctgNew, cnoNew, qkid->chid, &ikidNew), \"already a child\");\n\n                // refresh the qkid and qrgkid pointers\n                qkid = (qrgkid = (KID *)_pggcrp->QvGet(icrp)) + ikid;\n                qkid->cki.ctg = ctgNew;\n                qkid->cki.cno = cnoNew;\n\n                MoveElement(qrgkid, size(KID), ikid, ikidNew);\n                ccrpRef--;\n            }\n        }\n        Assert(ccrpRef == 1, \"corrupt chunky index\");\n        // in ship, ccrpRef should be 0 here\n    }\n\n    if (rtiNil != rti && ctgNew == ctg)\n        _FSetRti(ctgNew, cnoNew, rti);\n\n    AssertThis(fcflFull);\n}\n\n/***************************************************************************\n    Delete the given chunk.  Handles deleting child chunks that are\n    no longer referenced.  If the chunk has the loner flag set, this clears\n    it.  If the chunk has no parents, the chunk is also physically deleted\n    from the CFL.\n***************************************************************************/\nvoid CFL::Delete(CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    long icrp;\n    CGE cge;\n    ulong grfcgeIn, grfcge;\n    KID kid;\n    CRP *qcrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n    {\n        Bug(\"chunk not there\");\n        return;\n    }\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    Assert(qcrp->Grfcrp(fcrpLoner) || qcrp->ccrpRef == 0, \"can't directly delete a child chunk\");\n    qcrp->ClearGrfcrp(fcrpLoner);\n    if (qcrp->ccrpRef > 0)\n        return;\n\n    cge.Init(this, ctg, cno);\n    for (grfcgeIn = fcgeNil; cge.FNextKid(&kid, pvNil, &grfcge, grfcgeIn);)\n    {\n        grfcgeIn = fcgeSkipToSib;\n        if (!_FFindCtgCno(kid.cki.ctg, kid.cki.cno, &icrp))\n        {\n            Bug(\"MIA\");\n            continue;\n        }\n        if (grfcge & fcgePre)\n        {\n            if (!(grfcge & fcgeRoot) && !_FDecRefCount(icrp))\n                continue;\n            grfcgeIn = fcgeNil;\n        }\n        if (grfcge & fcgePost)\n        {\n            // actually delete the node\n            if (grfcge & fcgeError)\n            {\n                Warn(\"memory failure in CFL::Delete - adjusting ref counts\");\n                // memory failure - adjust the ref counts of this chunk's\n                // children, but don't try to delete them\n                long ikid, icrpChild;\n                KID kid;\n\n                qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n                for (ikid = qcrp->ckid; ikid-- != 0;)\n                {\n                    _pggcrp->GetRgb(icrp, _BvKid(ikid), size(kid), &kid);\n                    if (!_FFindCtgCno(kid.cki.ctg, kid.cki.cno, &icrpChild))\n                    {\n                        Bug(\"child not there\");\n                        continue;\n                    }\n                    _FDecRefCount(icrpChild);\n                }\n            }\n            _DeleteCore(icrp);\n        }\n    }\n    AssertThis(fcflFull);\n}\n\n/***************************************************************************\n    Make sure the loner flag is set or clear according to fLoner.  If\n    fLoner is false and (ctg, cno) is not currently the child of anything,\n    it will be deleted.\n***************************************************************************/\nvoid CFL::SetLoner(CTG ctg, CNO cno, bool fLoner)\n{\n    AssertThis(0);\n    long icrp;\n    CRP *qcrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n    {\n        Bug(\"chunk not there\");\n        return;\n    }\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n\n    if (fLoner)\n        qcrp->SetGrfcrp(fcrpLoner);\n    else if (qcrp->Grfcrp(fcrpLoner))\n        Delete(ctg, cno);\n}\n\n/***************************************************************************\n    Return the value of the loner flag.\n***************************************************************************/\nbool CFL::FLoner(CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    long icrp;\n    CRP *qcrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n    {\n        Bug(\"chunk not there\");\n        return fFalse;\n    }\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    return FPure(qcrp->Grfcrp(fcrpLoner));\n}\n\n/***************************************************************************\n    Returns the number of parents of this chunk\n***************************************************************************/\nlong CFL::CckiRef(CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    long icrp;\n    CRP *qcrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n    {\n        Bug(\"chunk not there\");\n        return 0;\n    }\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    return qcrp->ccrpRef;\n}\n\n/***************************************************************************\n    Determines if (ctgSub, cnoSub) is in the chunk subgraph of (ctg, cno).\n    Returns tMaybe on error.\n***************************************************************************/\ntribool CFL::TIsDescendent(CTG ctg, CNO cno, CTG ctgSub, CNO cnoSub)\n{\n    AssertThis(0);\n    CGE cge;\n    KID kid;\n    ulong grfcge;\n\n    if (CckiRef(ctgSub, cnoSub) == 0)\n        return tNo;\n\n    cge.Init(this, ctg, cno);\n    while (cge.FNextKid(&kid, pvNil, &grfcge, fcgeNil))\n    {\n        if (kid.cki.ctg == ctgSub && kid.cki.cno == cnoSub)\n            return tYes;\n        if (grfcge & fcgeError)\n            return tMaybe;\n    }\n    return tNo;\n}\n\n/***************************************************************************\n    Delete the given child chunk.  Handles deleting child chunks that are\n    no longer referenced and don't have the fcrpLoner flag set.\n***************************************************************************/\nvoid CFL::DeleteChild(CTG ctgPar, CNO cnoPar, CTG ctgChild, CNO cnoChild, CHID chid)\n{\n    AssertThis(0);\n    long icrpPar, icrpChild, ikid;\n    CRP *qcrp;\n\n    if (!_FFindCtgCno(ctgPar, cnoPar, &icrpPar) || !_FFindCtgCno(ctgChild, cnoChild, &icrpChild))\n    {\n        Bug(\"chunk not there\");\n        return;\n    }\n    if (!_FFindChild(icrpPar, ctgChild, cnoChild, chid, &ikid))\n    {\n        Bug(\"not a child\");\n        return;\n    }\n\n    // remove the reference\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrpPar);\n    qcrp->ckid--;\n    _pggcrp->DeleteRgb(icrpPar, _BvKid(ikid), size(KID));\n\n    // now decrement the ref count and nuke it if the ref count is zero\n    if (_FDecRefCount(icrpChild))\n    {\n        // delete the chunk\n        Delete(ctgChild, cnoChild);\n    }\n    AssertThis(fcflFull);\n}\n\n/***************************************************************************\n    Decrements the reference count on the chunk.  Return true if the ref\n    count becomes zero (after decrementing) and fcrpLoner is not set.\n***************************************************************************/\nbool CFL::_FDecRefCount(long icrp)\n{\n    AssertBaseThis(0);\n    CRP *qcrp;\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    if (qcrp->ccrpRef <= 0)\n    {\n        Bug(\"ref count wrong\");\n        return fFalse;\n    }\n    return --(qcrp->ccrpRef) == 0 && !qcrp->Grfcrp(fcrpLoner);\n}\n\n/***************************************************************************\n    Remove entry icrp from _pggcrp and add the file space to the free map.\n***************************************************************************/\nvoid CFL::_DeleteCore(long icrp)\n{\n    AssertBaseThis(0);\n    CRP *qcrp;\n    CKI cki;\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    cki = qcrp->cki;\n    _FreeFpCb(qcrp->Grfcrp(fcrpOnExtra), qcrp->fp, qcrp->Cb());\n    _FSetRti(cki.ctg, cki.cno, rtiNil);\n    _pggcrp->Delete(icrp);\n}\n\n/***************************************************************************\n    Add the (fp, cb) to the free map.\n***************************************************************************/\nvoid CFL::_FreeFpCb(bool fOnExtra, FP fp, long cb)\n{\n    AssertBaseThis(0);\n    Assert(cb > 0 || cb == 0 && fp == 0, \"bad cb\");\n    Assert(fp >= 0 && (fOnExtra || fp >= size(CFP) || cb == 0 || _fInvalidMainFile), \"bad fp\");\n\n    PGL pglfsm;\n    long ifsm, ifsmMin, ifsmLim;\n    FSM fsm, fsmT;\n    CSTO *pcsto;\n\n    // no space allocated to the chunk\n    if (cb == 0)\n        return;\n\n    // if the free map hasn't been read yet, read it now\n    if (!fOnExtra && _fFreeMapNotRead)\n        _ReadFreeMap();\n\n    pcsto = fOnExtra ? &_cstoExtra : &_csto;\n    pglfsm = pcsto->pglfsm;\n    AssertPo(pcsto->pfil, 0);\n    Assert(fp + cb <= pcsto->fpMac, \"bad (fp,cb)\");\n\n    if (fp + cb >= pcsto->fpMac)\n    {\n        // it's at the end of the file, just change fpMac and\n        // compact the free map if possible\n        pcsto->fpMac = fp;\n        if (pglfsm == pvNil || (ifsm = pglfsm->IvMac()) == 0)\n            return;\n        ifsm--;\n        pglfsm->Get(ifsm, &fsm);\n        if (fsm.fp + fsm.cb >= pcsto->fpMac)\n        {\n            // fsm extends to the new end of the file, so delete the fsm\n            // and adjust fpMac\n            Assert(fsm.fp + fsm.cb == pcsto->fpMac, \"bad fsm?\");\n            pglfsm->Delete(ifsm);\n            pcsto->fpMac = fsm.fp;\n        }\n        return;\n    }\n\n    // Chunk is not at the end of the file.  We need to add it\n    // to the free map.\n    if (pglfsm == pvNil && (pglfsm = pcsto->pglfsm = GL::PglNew(size(FSM), 1)) == pvNil)\n    {\n        // can't create the free map, just drop the space\n        return;\n    }\n\n    for (ifsmMin = 0, ifsmLim = pglfsm->IvMac(); ifsmMin < ifsmLim;)\n    {\n        ifsm = (ifsmMin + ifsmLim) / 2;\n        pglfsm->Get(ifsm, &fsm);\n        Assert(fp + cb <= fsm.fp || fp >= fsm.fp + fsm.cb, \"freeing space that overlaps free space\");\n        if (fsm.fp < fp)\n            ifsmMin = ifsm + 1;\n        else\n            ifsmLim = ifsm;\n    }\n\n    ifsmLim = pglfsm->IvMac();\n    if (ifsmMin > 0)\n    {\n        // check for adjacency to previous free block\n        pglfsm->Get(ifsmMin - 1, &fsm);\n        Assert(fsm.fp < fp, \"bad ifsmMin\");\n        if (fsm.fp + fsm.cb >= fp)\n        {\n            // extend the previous free block\n            Assert(fsm.fp + fsm.cb == fp, \"overlap\");\n            fsm.cb = fp + cb - fsm.fp;\n            if (ifsmMin < ifsmLim)\n            {\n                // check for adjacency to next free block\n                pglfsm->Get(ifsmMin, &fsmT);\n                if (fsmT.fp <= fsm.fp + fsm.cb)\n                {\n                    // merge the two\n                    Assert(fsmT.fp == fsm.fp + fsm.cb, \"overlap\");\n                    fsm.cb = fsmT.fp + fsmT.cb - fsm.fp;\n                    pglfsm->Delete(ifsmMin);\n                }\n            }\n            pglfsm->Put(ifsmMin - 1, &fsm);\n            return;\n        }\n    }\n\n    if (ifsmMin < ifsmLim)\n    {\n        pglfsm->Get(ifsmMin, &fsm);\n        Assert(fsm.fp > fp, \"bad ifsmMin\");\n        if (fsm.fp <= fp + cb)\n        {\n            Assert(fsm.fp == fp + cb, \"overlap\");\n            fsm.cb = fsm.fp + fsm.cb - fp;\n            fsm.fp = fp;\n            pglfsm->Put(ifsmMin, &fsm);\n            return;\n        }\n    }\n\n    fsm.fp = fp;\n    fsm.cb = cb;\n\n    // if it fails, we lose some space - so what\n    pglfsm->FInsert(ifsmMin, &fsm);\n}\n\n/***************************************************************************\n    Set the name of the chunk.\n***************************************************************************/\nbool CFL::FSetName(CTG ctg, CNO cno, PSTN pstn)\n{\n    AssertThis(0);\n    AssertNilOrPo(pstn, 0);\n    long icrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n    {\n        Bug(\"chunk not there\");\n        return fFalse;\n    }\n\n    if (!_FSetName(icrp, pstn))\n        return fFalse;\n\n    _FSetRti(ctg, cno, rtiNil);\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the name of the chunk at the given index.\n***************************************************************************/\nbool CFL::_FSetName(long icrp, PSTN pstn)\n{\n    AssertBaseThis(0);\n    AssertIn(icrp, 0, _pggcrp->IvMac());\n    AssertNilOrPo(pstn, 0);\n    long cbVar, cbOld, cbNew;\n    CRP *qcrp;\n    long bvRgch;\n\n    if (pstn != pvNil && pstn->Cch() > 0)\n        cbNew = pstn->CbData();\n    else\n        cbNew = 0;\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp, &cbVar);\n    bvRgch = qcrp->BvRgch();\n    cbOld = cbVar - bvRgch;\n    AssertIn(cbOld, 0, kcbMaxDataStn + 1);\n\n    if (cbOld > cbNew)\n        _pggcrp->DeleteRgb(icrp, bvRgch, cbOld - cbNew);\n    else if (cbOld < cbNew && !_pggcrp->FInsertRgb(icrp, bvRgch, cbNew - cbOld, pvNil))\n    {\n        return fFalse;\n    }\n\n    if (cbNew > 0)\n    {\n        pstn->GetData(PvAddBv(_pggcrp->PvLock(icrp), bvRgch));\n        _pggcrp->Unlock();\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Retrieve the name of the chunk.  Returns whether the string is\n    non-empty.\n***************************************************************************/\nbool CFL::FGetName(CTG ctg, CNO cno, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    long icrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n    {\n        Bug(\"chunk not there\");\n        pstn->SetNil();\n        return fFalse;\n    }\n\n    return _FGetName(icrp, pstn);\n}\n\n/***************************************************************************\n    Retrieve the name of the chunk at the given index.  Returns whether\n    the string is non-empty.\n***************************************************************************/\nbool CFL::_FGetName(long icrp, PSTN pstn)\n{\n    AssertBaseThis(0);\n    AssertIn(icrp, 0, _pggcrp->IvMac());\n    AssertPo(pstn, 0);\n\n    long cbRgch, bvRgch;\n    long cbVar;\n    CRP *qcrp;\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp, &cbVar);\n    cbRgch = qcrp->CbRgch(cbVar);\n    AssertIn(cbRgch, 0, kcbMaxDataStn + 1);\n    if (cbRgch <= 0)\n    {\n        pstn->SetNil();\n        return fFalse;\n    }\n    bvRgch = qcrp->BvRgch();\n\n    if (!pstn->FSetData(PvAddBv(_pggcrp->PvLock(icrp), bvRgch), cbRgch))\n        pstn->SetNil();\n    _pggcrp->Unlock();\n\n    return pstn->Cch() > 0;\n}\n\n/***************************************************************************\n    Make a node a child of another node.  If fClearLoner is set, the loner\n    flag of the child is cleared.\n***************************************************************************/\nbool CFL::FAdoptChild(CTG ctgPar, CNO cnoPar, CTG ctgChild, CNO cnoChild, CHID chid, bool fClearLoner)\n{\n    AssertThis(0);\n    long icrpPar;\n    long ikid;\n\n    if (!_FFindCtgCno(ctgPar, cnoPar, &icrpPar))\n    {\n        Bug(\"parent not there\");\n        return fFalse;\n    }\n    if (_FFindChild(icrpPar, ctgChild, cnoChild, chid, &ikid))\n        return fTrue; // already a child\n\n    if (!_FAdoptChild(icrpPar, ikid, ctgChild, cnoChild, chid, fClearLoner))\n    {\n        AssertThis(0);\n        return fFalse;\n    }\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Make (ctgChild, cnoChild) a child of icrpPar.\n***************************************************************************/\nbool CFL::_FAdoptChild(long icrpPar, long ikid, CTG ctgChild, CNO cnoChild, CHID chid, bool fClearLoner)\n{\n    AssertBaseThis(0);\n    AssertIn(icrpPar, 0, _pggcrp->IvMac());\n    long icrp;\n    CRP *qcrp;\n    KID kid;\n\n    if (!_FFindCtgCno(ctgChild, cnoChild, &icrp))\n    {\n        Bug(\"child not there\");\n        return fFalse;\n    }\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrpPar);\n    AssertIn(ikid, 0, (long)qcrp->ckid + 1);\n    if (tNo != TIsDescendent(ctgChild, cnoChild, qcrp->cki.ctg, qcrp->cki.cno))\n    {\n        Warn(\"Performing this adoption may cause a cycle\");\n        return fFalse;\n    }\n\n    kid.cki.ctg = ctgChild;\n    kid.cki.cno = cnoChild;\n    kid.chid = chid;\n    if (!_pggcrp->FInsertRgb(icrpPar, _BvKid(ikid), size(KID), &kid))\n    {\n        AssertThis(0);\n        return fFalse;\n    }\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrpPar);\n    if (qcrp->ckid >= kckidMax)\n        goto LOverFlow;\n    qcrp->ckid++;\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    if (qcrp->ccrpRef >= kckidMax)\n    {\n        qcrp = (CRP *)_pggcrp->QvFixedGet(icrpPar);\n        qcrp->ckid--;\n    LOverFlow:\n        _pggcrp->DeleteRgb(icrpPar, _BvKid(ikid), size(KID));\n        AssertThis(0);\n        return fFalse;\n    }\n    qcrp->ccrpRef++;\n\n    if (fClearLoner)\n        qcrp->ClearGrfcrp(fcrpLoner);\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Changes the chid value of the given child link.  Assert that\n    (ctgChild, cnoChild, chidOld) is a child of (ctgPar, cnoPar) and that\n    (ctgChild, cnoChild, chidNew) is not currently a child.\n***************************************************************************/\nvoid CFL::ChangeChid(CTG ctgPar, CNO cnoPar, CTG ctgChild, CNO cnoChild, CHID chidOld, CHID chidNew)\n{\n    AssertThis(0);\n    long icrp, ikidOld, ikidNew;\n    KID *qkid, *qrgkid;\n\n    if (chidOld == chidNew)\n        return;\n\n    if (!_FFindCtgCno(ctgPar, cnoPar, &icrp))\n    {\n        Bug(\"parent not there\");\n        return;\n    }\n    if (!_FFindChild(icrp, ctgChild, cnoChild, chidOld, &ikidOld) ||\n        _FFindChild(icrp, ctgChild, cnoChild, chidNew, &ikidNew))\n    {\n        Bug(\"src not a child or dest already a child\");\n        return;\n    }\n\n    qkid = (qrgkid = (KID *)_pggcrp->QvGet(icrp)) + ikidOld;\n    qkid->chid = chidNew;\n\n    MoveElement(qrgkid, size(KID), ikidOld, ikidNew);\n\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Return the total number of chunks.\n***************************************************************************/\nlong CFL::Ccki(void)\n{\n    AssertThis(0);\n    return _pggcrp->IvMac();\n}\n\n/***************************************************************************\n    Finds the icki'th chunk.  If there is such a chunk (icki isn't too big),\n    fills in *pcki and *pckid and returns true.  Otherwise, returns fFalse.\n***************************************************************************/\nbool CFL::FGetCki(long icki, CKI *pcki, long *pckid, PBLCK pblck)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pcki);\n    AssertNilOrVarMem(pckid);\n    AssertNilOrPo(pblck, 0);\n    AssertIn(icki, 0, kcbMax);\n    CRP *qcrp;\n\n    if (!FIn(icki, 0, _pggcrp->IvMac()))\n    {\n        TrashVar(pcki);\n        TrashVar(pckid);\n        if (pvNil != pblck)\n            pblck->Free();\n        return fFalse;\n    }\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icki);\n    if (pvNil != pcki)\n        *pcki = qcrp->cki;\n    if (pvNil != pckid)\n        *pckid = qcrp->ckid;\n    if (pvNil != pblck)\n        _GetBlck(icki, pblck);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Finds the icki corresponding to the given (ctg, cno).  If the (ctg, cno)\n    is not in the CFL, fills *picki with where it would be.\n***************************************************************************/\nbool CFL::FGetIcki(CTG ctg, CNO cno, long *picki)\n{\n    AssertThis(0);\n    AssertVarMem(picki);\n    return _FFindCtgCno(ctg, cno, picki);\n}\n\n/***************************************************************************\n    Return the total number of chunks of the given type in the file.\n***************************************************************************/\nlong CFL::CckiCtg(CTG ctg)\n{\n    AssertThis(0);\n    long icrpMac;\n    long icrpMin;\n    long icrpLim;\n\n    if ((icrpMac = _pggcrp->IvMac()) == 0)\n        return 0;\n\n    _FFindCtgCno(ctg, 0, &icrpMin);\n    if (ctg + 1 < ctg)\n    {\n        // ctg is the largest possible ctg!\n        return icrpMac - icrpMin;\n    }\n\n    _FFindCtgCno(ctg + 1, 0, &icrpLim);\n    return icrpLim - icrpMin;\n}\n\n/***************************************************************************\n    Finds the icki'th chunk of type ctg.  If there is such a chunk,\n    fills in *pcki and returns true.  Otherwise, returns fFalse.\n***************************************************************************/\nbool CFL::FGetCkiCtg(CTG ctg, long icki, CKI *pcki, long *pckid, PBLCK pblck)\n{\n    AssertThis(0);\n    AssertIn(icki, 0, kcbMax);\n    AssertNilOrVarMem(pcki);\n    AssertNilOrVarMem(pckid);\n    AssertNilOrPo(pblck, 0);\n    CRP *qcrp;\n    long icrpMac;\n    long icrp;\n\n    if (!FIn(icki, 0, (icrpMac = _pggcrp->IvMac())))\n        goto LFail;\n\n    _FFindCtgCno(ctg, 0, &icrp);\n    icrp += icki;\n    if (!FIn(icrp, 0, icrpMac))\n        goto LFail;\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    if (qcrp->cki.ctg != ctg)\n    {\n    LFail:\n        TrashVar(pcki);\n        TrashVar(pckid);\n        if (pvNil != pblck)\n            pblck->Free();\n        return fFalse;\n    }\n    if (pvNil != pcki)\n        *pcki = qcrp->cki;\n    if (pvNil != pckid)\n        *pckid = qcrp->ckid;\n    if (pvNil != pblck)\n        _GetBlck(icki, pblck);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the number of children of the given chunk.\n***************************************************************************/\nlong CFL::Ckid(CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    CRP *qcrp;\n    long icrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n    {\n        Bug(\"chunk not found\");\n        return 0;\n    }\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    return qcrp->ckid;\n}\n\n/***************************************************************************\n    If ikid is less than number of children of the given chunk,\n    fill *pkid and return true.  Otherwise, return false.\n***************************************************************************/\nbool CFL::FGetKid(CTG ctg, CNO cno, long ikid, KID *pkid)\n{\n    AssertThis(0);\n    AssertVarMem(pkid);\n    AssertIn(ikid, 0, kcbMax);\n    CRP *qcrp;\n    long icrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n    {\n        Bug(\"chunk not found\");\n        TrashVar(pkid);\n        return fFalse;\n    }\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    if (!FIn(ikid, 0, qcrp->ckid))\n    {\n        TrashVar(pkid);\n        return fFalse;\n    }\n    _pggcrp->GetRgb(icrp, _BvKid(ikid), size(KID), pkid);\n    Assert(_FFindCtgCno(pkid->cki.ctg, pkid->cki.cno, &icrp), \"child not there\");\n    Assert(pkid->cki.ctg != ctg || pkid->cki.cno != cno, \"chunk is child of itself!\");\n    return fTrue;\n}\n\n/***************************************************************************\n    Look for a child of (ctgPar, cnoPar) with the given chid value.  If one\n    is found, fill in *pkid and return true; else return false.  Kid's are\n    sorted by (chid, ctg, cno).\n***************************************************************************/\nbool CFL::FGetKidChid(CTG ctgPar, CNO cnoPar, CHID chid, KID *pkid)\n{\n    AssertThis(0);\n    AssertVarMem(pkid);\n    return _FFindChidCtg(ctgPar, cnoPar, chid, (CTG)0, pkid);\n}\n\n/***************************************************************************\n    Look for a child of (ctgPar, cnoPar) with the given chid and ctg value.\n    If one is found, fill in *pkid and return true; else return false.\n    Kid's are sorted by (chid, ctg, cno).\n***************************************************************************/\nbool CFL::FGetKidChidCtg(CTG ctgPar, CNO cnoPar, CHID chid, CTG ctg, KID *pkid)\n{\n    AssertThis(0);\n    AssertVarMem(pkid);\n\n    // the kid returned from _FFindChidCtg should have ctg >= the given ctg,\n    // but not necessarily equal\n    if (!_FFindChidCtg(ctgPar, cnoPar, chid, ctg, pkid) || pkid->cki.ctg != ctg)\n    {\n        TrashVar(pkid);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Find the first child with the given chid and with ctg >= the given ctg.\n    Returns true iff there is such a child and fills in the *pkid.\n***************************************************************************/\nbool CFL::_FFindChidCtg(CTG ctgPar, CNO cnoPar, CHID chid, CTG ctg, KID *pkid)\n{\n    AssertThis(0);\n    AssertVarMem(pkid);\n    long ikidMin, ikidLim, ikid;\n    CRP *qcrp;\n    KID *qrgkid, *qkid;\n    long ckid, icrp;\n\n    if (!_FFindCtgCno(ctgPar, cnoPar, &icrp))\n    {\n        Bug(\"chunk not found\");\n        goto LFail;\n    }\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n    if ((ckid = qcrp->ckid) <= 0)\n    {\n        Assert(0 == ckid, \"bad crp\");\n        goto LFail;\n    }\n\n    qrgkid = (KID *)_pggcrp->QvGet(icrp);\n    for (ikidMin = 0, ikidLim = ckid; ikidMin < ikidLim;)\n    {\n        ikid = (ikidMin + ikidLim) / 2;\n        qkid = &qrgkid[ikid];\n\n        if (qkid->chid < chid)\n            ikidMin = ikid + 1;\n        else if (qkid->chid > chid)\n            ikidLim = ikid;\n        else if (qkid->cki.ctg < ctg)\n            ikidMin = ikid + 1;\n        else\n            ikidLim = ikid;\n    }\n\n    if (ikidMin < qcrp->ckid)\n    {\n        qkid = &qrgkid[ikidMin];\n        if (qkid->chid == chid && qkid->cki.ctg >= ctg)\n        {\n            *pkid = *qkid;\n            return fTrue;\n        }\n    }\nLFail:\n    TrashVar(pkid);\n    return fFalse;\n}\n\n/***************************************************************************\n    Finds the ikid value associated with the given child (ctg, cno, chid) of\n    the given chunk.  If the (ctg, cno, chid) is not a child of\n    (ctgPar, cnoPar), fills *pikid with where it would be if it were.\n***************************************************************************/\nbool CFL::FGetIkid(CTG ctgPar, CNO cnoPar, CTG ctg, CNO cno, CHID chid, long *pikid)\n{\n    AssertThis(0);\n    AssertVarMem(pikid);\n    long icrp;\n\n    if (!_FFindCtgCno(ctgPar, cnoPar, &icrp))\n    {\n        Bug(\"chunk not found\");\n        *pikid = 0;\n        return fFalse;\n    }\n\n    return _FFindChild(icrp, ctg, cno, chid, pikid);\n}\n\n/***************************************************************************\n    If (ctgChild, cnoChild, chid) is a child of icrpPar, return true and put\n    the index in *pikid.  If not set *pikid to where to insert it.  Kids are\n    sorted by (chid, ctg, cno).\n***************************************************************************/\nbool CFL::_FFindChild(long icrpPar, CTG ctgChild, CNO cnoChild, CHID chid, long *pikid)\n{\n    AssertBaseThis(0);\n    AssertVarMem(pikid);\n    AssertIn(icrpPar, 0, _pggcrp->IvMac());\n\n    long ikidMin, ikidLim, ikid, ckid;\n    CRP *qcrp;\n    KID *qrgkid, *qkid;\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrpPar);\n    if ((ckid = qcrp->ckid) <= 0)\n    {\n        Assert(0 == ckid, \"bad crp\");\n        *pikid = 0;\n        return fFalse;\n    }\n\n    qrgkid = (KID *)_pggcrp->QvGet(icrpPar);\n    for (ikidMin = 0, ikidLim = ckid; ikidMin < ikidLim;)\n    {\n        ikid = (ikidMin + ikidLim) / 2;\n        qkid = &qrgkid[ikid];\n\n        if (qkid->chid < chid)\n            ikidMin = ikid + 1;\n        else if (qkid->chid > chid)\n            ikidLim = ikid;\n        else if (qkid->cki.ctg < ctgChild)\n            ikidMin = ikid + 1;\n        else if (qkid->cki.ctg > ctgChild)\n            ikidLim = ikid;\n        else if (qkid->cki.cno < cnoChild)\n            ikidMin = ikid + 1;\n        else if (qkid->cki.cno > cnoChild)\n            ikidLim = ikid;\n        else\n        {\n            *pikid = ikid;\n            return fTrue;\n        }\n    }\n\n    *pikid = ikidMin;\n    return fFalse;\n}\n\n// cno map entry\nstruct CNOM\n{\n    CTG ctg;\n    CNO cnoSrc;\n    CNO cnoDst;\n};\n\nbool _FFindCnom(PGL pglcnom, CTG ctg, CNO cno, CNOM *pcnom = pvNil, long *picnom = pvNil);\nbool _FAddCnom(PGL *ppglcnom, CNOM *pcnom);\n\n/***************************************************************************\n    Look for a cnom for the given (ctg, cno). Whether or not it exists,\n    fill *picnom with where it would go in the pglcnom.\n***************************************************************************/\nbool _FFindCnom(PGL pglcnom, CTG ctg, CNO cno, CNOM *pcnom, long *picnom)\n{\n    AssertNilOrPo(pglcnom, 0);\n    AssertNilOrVarMem(pcnom);\n    AssertNilOrVarMem(picnom);\n    long ivMin, ivLim, iv;\n    CNOM cnom;\n\n    if (pvNil == pglcnom)\n    {\n        TrashVar(pcnom);\n        if (pvNil != picnom)\n            *picnom = 0;\n        return fFalse;\n    }\n\n    for (ivMin = 0, ivLim = pglcnom->IvMac(); ivMin < ivLim;)\n    {\n        iv = (ivMin + ivLim) / 2;\n        pglcnom->Get(iv, &cnom);\n        if (cnom.ctg < ctg)\n            ivMin = iv + 1;\n        else if (cnom.ctg > ctg)\n            ivLim = iv;\n        else if (cnom.cnoSrc < cno)\n            ivMin = iv + 1;\n        else if (cnom.cnoSrc > cno)\n            ivLim = iv;\n        else\n        {\n            if (pvNil != pcnom)\n                *pcnom = cnom;\n            if (pvNil != picnom)\n                *picnom = iv;\n            return fTrue;\n        }\n    }\n\n    TrashVar(pcnom);\n    if (pvNil != picnom)\n        *picnom = ivMin;\n    return fFalse;\n}\n\n/***************************************************************************\n    Add a cnom to the *ppglcnom. Allocated *ppglcnom if it is nil.\n***************************************************************************/\nbool _FAddCnom(PGL *ppglcnom, CNOM *pcnom)\n{\n    AssertVarMem(ppglcnom);\n    AssertNilOrPo(*ppglcnom, 0);\n    AssertVarMem(pcnom);\n    long icnom;\n\n    if (pvNil == *ppglcnom && pvNil == (*ppglcnom = GL::PglNew(size(CNOM))))\n        return fFalse;\n\n    AssertDo(!_FFindCnom(*ppglcnom, pcnom->ctg, pcnom->cnoSrc, pvNil, &icnom), \"why is this cnom already in the gl?\");\n    return (*ppglcnom)->FInsert(icnom, pcnom);\n}\n\n/***************************************************************************\n    Copy a chunk (ctgSrc, cnoSrc) from this chunky file to pcflDst.\n    The new cno is put in *pcno.  The destination chunk is marked as a\n    loner. If possible, the cno in the destination file will be the same\n    as the cno in the source file. If fClone is set, no chunk sharing will\n    occur. Otherwise, this does intelligent chunk sharing.\n***************************************************************************/\nbool CFL::_FCopy(CTG ctgSrc, CNO cnoSrc, PCFL pcflDst, CNO *pcnoDst, bool fClone)\n{\n    AssertThis(fcflFull);\n    AssertPo(pcflDst, fcflFull);\n    AssertVarMem(pcnoDst);\n\n    long icrpSrc, icrpDst;\n    long rtiSrc;\n    CGE cge;\n    KID kid;\n    CKI ckiPar;\n    BLCK blckSrc;\n    ulong grfcge, grfcgeIn;\n    CNOM cnom, cnomPar;\n    STN stn;\n    CRP *qcrp;\n\n    bool fFreeDstOnFailure = fFalse;\n    PGL pglcnom = pvNil;\n    bool fRet = fFalse;\n\n    if (!_FFindCtgCno(ctgSrc, cnoSrc, &icrpSrc))\n    {\n        Bug(\"chunk not found\");\n        TrashVar(pcnoDst);\n        return fFalse;\n    }\n\n    if (!fClone && this == pcflDst)\n    {\n        SetLoner(ctgSrc, cnoSrc, fTrue);\n        *pcnoDst = cnoSrc;\n        return fTrue;\n    }\n\n    // copy chunks to the destination CFL\n    cge.Init(this, ctgSrc, cnoSrc);\n    grfcgeIn = fcgeNil;\n    while (cge.FNextKid(&kid, &ckiPar, &grfcge, grfcgeIn))\n    {\n        grfcgeIn = fcgeNil;\n        if (grfcge & fcgeError)\n            goto LFail;\n\n        // do pre-order handling only\n        if (!(grfcge & fcgePre))\n            continue;\n\n        if (_FFindCnom(pglcnom, kid.cki.ctg, kid.cki.cno, &cnom))\n        {\n            // chunk has already been copied - just link it to the parent\n            // and skip to its sibling\n            Assert(!(grfcge & fcgeRoot), \"how can the root already have been copied?\");\n            grfcgeIn = fcgeSkipToSib;\n        }\n        else if (rtiNil != (rtiSrc = _Rti(kid.cki.ctg, kid.cki.cno)) && !fClone &&\n                 _FFindMatch(kid.cki.ctg, kid.cki.cno, pcflDst, &cnom.cnoDst))\n        {\n            // chunk and its subgraph exists in the destination, just link it\n            // to the parent and skip to its sibling\n            grfcgeIn = fcgeSkipToSib;\n        }\n        else\n        {\n            // must copy the chunk\n\n            // assign the source chunk an rti (if it doesn't have one)\n            if (rtiNil == rtiSrc && _FSetRti(kid.cki.ctg, kid.cki.cno, _rtiLast + 1))\n            {\n                rtiSrc = ++_rtiLast;\n            }\n\n            cnom.ctg = kid.cki.ctg;\n            cnom.cnoSrc = kid.cki.cno;\n\n            // find the source icrp\n            AssertDo(_FFindCtgCno(kid.cki.ctg, kid.cki.cno, &icrpSrc), 0);\n\n            // get the source blck\n            _GetBlck(icrpSrc, &blckSrc);\n\n            // allocate the dst chunk and copy the data - use the source cno\n            // if possible\n            if (this != pcflDst && !pcflDst->FFind(kid.cki.ctg, kid.cki.cno))\n            {\n                // can preserve cno\n                cnom.cnoDst = kid.cki.cno;\n                if (!pcflDst->FPutBlck(&blckSrc, kid.cki.ctg, cnom.cnoDst))\n                    goto LFail;\n            }\n            else\n            {\n                if (!pcflDst->FAddBlck(&blckSrc, kid.cki.ctg, &cnom.cnoDst))\n                    goto LFail;\n                if (this == pcflDst)\n                {\n                    AssertDo(_FFindCtgCno(kid.cki.ctg, kid.cki.cno, &icrpSrc), 0);\n                }\n            }\n\n            AssertDo(pcflDst->_FFindCtgCno(kid.cki.ctg, cnom.cnoDst, &icrpDst), \"_FFindCtgCno doesn't work\");\n\n            // make sure the forest flags match\n            qcrp = (CRP *)_pggcrp->QvFixedGet(icrpSrc);\n            if (qcrp->Grfcrp(fcrpForest))\n            {\n                qcrp = (CRP *)pcflDst->_pggcrp->QvFixedGet(icrpDst);\n                qcrp->SetGrfcrp(fcrpForest);\n            }\n\n            // set the dst name and rti to the src name and rti\n            if (_FGetName(icrpSrc, &stn) && !pcflDst->_FSetName(icrpDst, &stn))\n            {\n                pcflDst->Delete(kid.cki.ctg, cnom.cnoDst);\n                goto LFail;\n            }\n            if (rtiNil != rtiSrc)\n                pcflDst->_FSetRti(kid.cki.ctg, cnom.cnoDst, rtiSrc);\n\n            if (!_FAddCnom(&pglcnom, &cnom))\n                goto LFail;\n            fFreeDstOnFailure = fTrue;\n        }\n\n        // if it's the root, it has no parent and we need to set *pcnoDst\n        if (grfcge & fcgeRoot)\n        {\n            *pcnoDst = cnom.cnoDst;\n            continue;\n        }\n\n        // get the source parent's cnom\n        AssertDo(_FFindCnom(pglcnom, ckiPar.ctg, ckiPar.cno, &cnomPar), 0);\n\n        // make sure the dst child is a child of the dst parent\n        if (!pcflDst->FAdoptChild(ckiPar.ctg, cnomPar.cnoDst, kid.cki.ctg, cnom.cnoDst, kid.chid, grfcgeIn == fcgeNil))\n        {\n            if (grfcgeIn == fcgeNil)\n                pcflDst->Delete(kid.cki.ctg, cnom.cnoDst);\n            goto LFail;\n        }\n    }\n\n    fRet = fTrue;\n    pcflDst->SetLoner(ctgSrc, *pcnoDst, fTrue);\n\nLFail:\n    AssertThis(fcflFull);\n    AssertPo(pcflDst, fcflFull);\n    ReleasePpo(&pglcnom);\n    if (!fRet && fFreeDstOnFailure)\n        pcflDst->Delete(ctgSrc, *pcnoDst);\n    TrashVarIf(!fRet, pcnoDst);\n\n    return fRet;\n}\n\n/***************************************************************************\n    See if there is a subgraph of pcflDst matching the subgraph at\n    (ctgSrc, cnoSrc). Subgraphs match if there is one-to-one correspondence\n    of nodes and arcs of the two subgraphs and the rti's of corresponding\n    nodes are equal.\n***************************************************************************/\nbool CFL::_FFindMatch(CTG ctgSrc, CNO cnoSrc, PCFL pcflDst, CNO *pcnoDst)\n{\n    AssertBaseThis(0);\n    AssertPo(pcflDst, 0);\n    AssertVarMem(pcnoDst);\n\n    long rtiSrc, rtiKid;\n    long ckidSrc;\n    CNO cnoMin, cnoDst;\n    CGE cgeSrc, cgeDst;\n    KID kidSrc, kidDst;\n    CKI ckiParSrc, ckiParDst;\n    ulong grfcgeSrc, grfcgeDst;\n    bool fKidSrc, fKidDst;\n\n    if (this == pcflDst || rtiNil == (rtiSrc = _Rti(ctgSrc, cnoSrc)))\n        return fFalse;\n\n    ckidSrc = Ckid(ctgSrc, cnoSrc);\n    for (cnoDst = cnoMin = 0;; cnoMin = cnoDst + 1)\n    {\n        // get the next chunk with the same rti\n        if (cnoDst == (CNO)(-1) || !pcflDst->_FFindCtgRti(ctgSrc, rtiSrc, cnoMin, &cnoDst))\n        {\n            return fFalse;\n        }\n\n        if (pcflDst->Ckid(ctgSrc, cnoDst) != ckidSrc)\n            continue;\n\n        cgeSrc.Init(this, ctgSrc, cnoSrc);\n        cgeDst.Init(pcflDst, ctgSrc, cnoDst);\n        for (;;)\n        {\n            // get the next element of the the source graph\n            fKidSrc = cgeSrc.FNextKid(&kidSrc, &ckiParSrc, &grfcgeSrc, fcgeNil);\n\n            // if the source chunk doesn't have an rti, there's no hope\n            if (fKidSrc && rtiNil == (rtiKid = _Rti(kidSrc.cki.ctg, kidSrc.cki.cno)))\n            {\n                return fFalse;\n            }\n\n            // get the next element of the destination graph\n            fKidDst = cgeDst.FNextKid(&kidDst, &ckiParDst, &grfcgeDst, fcgeNil);\n\n            if (FPure(fKidSrc) != FPure(fKidDst))\n            {\n                // the two graphs have different numbers of nodes, so they\n                // don't match\n                break;\n            }\n\n            if (!fKidSrc)\n            {\n                // we're finished with the enumeration and everything matched\n                *pcnoDst = cnoDst;\n                return fTrue;\n            }\n            if ((grfcgeSrc | grfcgeDst) & fcgeError)\n                return fFalse;\n\n            if ((grfcgeSrc ^ grfcgeDst) & (fcgePre | fcgePost | fcgeRoot) || kidSrc.cki.ctg != kidDst.cki.ctg ||\n                !(grfcgeSrc & fcgeRoot) && kidSrc.chid != kidDst.chid ||\n                rtiKid != pcflDst->_Rti(kidDst.cki.ctg, kidDst.cki.cno) ||\n                Ckid(kidSrc.cki.ctg, kidSrc.cki.cno) != pcflDst->Ckid(kidDst.cki.ctg, kidDst.cki.cno))\n            {\n                // children don't match\n                break;\n            }\n        }\n    }\n}\n\n/***************************************************************************\n    Looks for a chunk of the given type with assigned rti and cno at least\n    cnoMin.\n***************************************************************************/\nbool CFL::_FFindCtgRti(CTG ctg, long rti, CNO cnoMin, CNO *pcno)\n{\n    AssertBaseThis(0);\n    AssertNilOrVarMem(pcno);\n\n#ifdef CHUNK_BIG_INDEX\n\n    long icrp, ccrp;\n    CRP *qcrp;\n\n    _FFindCtgCno(ctg, cnoMin, &icrp);\n    ccrp = Ccki();\n    for (; icrp < ccrp; icrp++)\n    {\n        qcrp = (CRP *)_pggcrp->QvFixedGet(icrp);\n        if (qcrp->cki.ctg != ctg)\n            break; // done\n        if (qcrp->rti == rti)\n        {\n            // found one\n            if (pcno != pvNil)\n                *pcno = qcrp->cki.cno;\n            return fTrue;\n        }\n    }\n\n#else //! CHUNK_BIG_INDEX\n\n    long irtie, crtie;\n    RTIE rtie;\n\n    if (pvNil != _pglrtie && 0 < (crtie = _pglrtie->IvMac()))\n    {\n        _FFindRtie(ctg, cnoMin, pvNil, &irtie);\n        for (; irtie < crtie; irtie++)\n        {\n            _pglrtie->Get(irtie, &rtie);\n            if (rtie.ctg != ctg)\n                break; // done\n            if (rtie.rti == rti)\n            {\n                // found one\n                if (pcno != pvNil)\n                    *pcno = rtie.cno;\n                return fTrue;\n            }\n        }\n    }\n\n#endif //! CHUNK_BIG_INDEX\n\n    TrashVar(pcno);\n    return fFalse;\n}\n\n/***************************************************************************\n    Copy a chunk (ctgSrc, cnoSrc) from this chunky file to pcflDst.\n    The new cno is put in *pcno.  The destination chunk is marked as a\n    loner. If possible, the cno in the destination file will be the same\n    as the cno in the source file. This does intelligent chunk sharing.\n***************************************************************************/\nbool CFL::FCopy(CTG ctgSrc, CNO cnoSrc, PCFL pcflDst, CNO *pcnoDst)\n{\n    return _FCopy(ctgSrc, cnoSrc, pcflDst, pcnoDst, fFalse);\n}\n\n/***************************************************************************\n    Clone a chunk subgraph from this chunky file to pcflDst. This will\n    make a copy of the the chunk and its descendents without using any\n    previously existing chunks in the destination. The new cno is put in\n    *pcno.  The destination chunk is marked as a loner. If possible, the\n    cno in the destination file will be the same as the cno in the\n    source file.\n***************************************************************************/\nbool CFL::FClone(CTG ctgSrc, CNO cnoSrc, PCFL pcflDst, CNO *pcnoDst)\n{\n    return _FCopy(ctgSrc, cnoSrc, pcflDst, pcnoDst, fTrue);\n}\n\n/***************************************************************************\n    Return the run time id of the given chunk.\n***************************************************************************/\nlong CFL::_Rti(CTG ctg, CNO cno)\n{\n    AssertBaseThis(0);\n\n#ifdef CHUNK_BIG_INDEX\n\n    long icrp;\n    CRP *qcrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n        return rtiNil;\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp, &cbVar);\n    return qcrp->rti;\n\n#else //! CHUNK_BIG_INDEX\n\n    RTIE rtie;\n\n    if (!_FFindRtie(ctg, cno, &rtie))\n        return rtiNil;\n\n    return rtie.rti;\n\n#endif //! CHUNK_BIG_INDEX\n}\n\n/***************************************************************************\n    Set the run time id of the given chunk.\n***************************************************************************/\nbool CFL::_FSetRti(CTG ctg, CNO cno, long rti)\n{\n    AssertBaseThis(0);\n\n#ifdef CHUNK_BIG_INDEX\n\n    long icrp;\n    CRP *qcrp;\n\n    if (!_FFindCtgCno(ctg, cno, &icrp))\n        return fFalse;\n\n    qcrp = (CRP *)_pggcrp->QvFixedGet(icrp, &cbVar);\n    qcrp->rti = rti;\n    return fTrue;\n\n#else //! CHUNK_BIG_INDEX\n\n    RTIE rtie;\n    long irtie;\n\n    if (_FFindRtie(ctg, cno, &rtie, &irtie))\n    {\n        if (rtiNil == rti)\n            _pglrtie->Delete(irtie);\n        else\n        {\n            rtie.rti = rti;\n            _pglrtie->Put(irtie, &rtie);\n        }\n        return fTrue;\n    }\n\n    if (rtiNil == rti)\n        return fTrue;\n\n    rtie.ctg = ctg;\n    rtie.cno = cno;\n    rtie.rti = rti;\n    if (pvNil == _pglrtie && pvNil == (_pglrtie = GL::PglNew(size(RTIE), 1)))\n        return fFalse;\n\n    return _pglrtie->FInsert(irtie, &rtie);\n\n#endif //! CHUNK_BIG_INDEX\n}\n\n#ifndef CHUNK_BIG_INDEX\n/***************************************************************************\n    Look for an RTIE entry for the given (ctg, cno).\n***************************************************************************/\nbool CFL::_FFindRtie(CTG ctg, CNO cno, RTIE *prtie, long *pirtie)\n{\n    AssertBaseThis(0);\n    AssertNilOrVarMem(prtie);\n    AssertNilOrVarMem(pirtie);\n\n    long ivMin, ivLim, iv;\n    RTIE rtie;\n\n    if (pvNil == _pglrtie)\n    {\n        if (pvNil != pirtie)\n            *pirtie = 0;\n        TrashVar(prtie);\n        return fFalse;\n    }\n\n    for (ivMin = 0, ivLim = _pglrtie->IvMac(); ivMin < ivLim;)\n    {\n        iv = (ivMin + ivLim) / 2;\n        _pglrtie->Get(iv, &rtie);\n        if (rtie.ctg < ctg)\n            ivMin = iv + 1;\n        else if (rtie.ctg > ctg)\n            ivLim = iv;\n        else if (rtie.cno < cno)\n            ivMin = iv + 1;\n        else if (rtie.cno > cno)\n            ivLim = iv;\n        else\n        {\n            if (pvNil != prtie)\n                *prtie = rtie;\n            if (pvNil != pirtie)\n                *pirtie = iv;\n            return fTrue;\n            ;\n        }\n    }\n\n    if (pvNil != pirtie)\n        *pirtie = ivMin;\n    TrashVar(prtie);\n    return fFalse;\n}\n#endif //! CHUNK_BIG_INDEX\n\n/***************************************************************************\n    Constructor for chunk graph enumerator.\n***************************************************************************/\nCGE::CGE(void)\n{\n    AssertThisMem();\n\n    _es = esDone;\n    _pgldps = pvNil;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for chunk graph enumerator.\n***************************************************************************/\nCGE::~CGE(void)\n{\n    AssertThis(0);\n    ReleasePpo(&_pgldps);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the cge\n***************************************************************************/\nvoid CGE::AssertValid(ulong grf)\n{\n    CGE_PAR::AssertValid(0);\n    AssertIn(_es, esStart, esDone + 1);\n    if (FIn(_es, esStart, esDone))\n    {\n        AssertPo(_pcfl, 0);\n        AssertNilOrPo(_pgldps, 0);\n    }\n    else\n        Assert(_pgldps == pvNil, \"_pgldps not nil\");\n}\n\n/***************************************************************************\n    Mark memory used by the cge.\n***************************************************************************/\nvoid CGE::MarkMem(void)\n{\n    AssertThis(0);\n    CGE_PAR::MarkMem();\n    MarkMemObj(_pgldps);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Start a new enumeration.\n***************************************************************************/\nvoid CGE::Init(PCFL pcfl, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n\n    ReleasePpo(&_pgldps);\n    _es = esStart;\n    _pcfl = pcfl;\n    _dps.kid.cki.ctg = ctg;\n    _dps.kid.cki.cno = cno;\n    TrashVar(&_dps.kid.chid);\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Fetch the next node in the graph enumeration.  Generally, parent nodes\n    are returned twice (once with fcgePre and again with fcgePost).  Nodes\n    without children are returned only once (with both fcgePre and fcgePost\n    set).  The new node is put in *pkid, and the node's parent (if the node\n    is not the root of the enumeration) is put in *pckiPar.  pckiPar may\n    be nil.\n\n    If (grfcgeIn & fcgeSkipToSib), skips all children and the upward touch\n    of the last node returned.\n\n    The *pgrfcgeOut value can contain any combination of: fcgePre, fcgePost,\n    fcgeError, fcgeRoot.  These have the following meanings:\n\n        fcgePre:  *pkid is valid; haven't traversed the node's children yet\n        fcgePost:  *pkid is valid; have already traversed the children (or\n            there aren't any children)\n        fcgeError:  a memory error occurred; may be set in conjunction with\n            other flags\n        fcgeRoot:  *pkid is valid (except the chid value); *pckiPar is\n            invalid; the node is the root of the enumeration\n***************************************************************************/\nbool CGE::FNextKid(KID *pkid, CKI *pckiPar, ulong *pgrfcgeOut, ulong grfcgeIn)\n{\n    AssertThis(0);\n    AssertVarMem(pkid);\n    AssertNilOrVarMem(pckiPar);\n    AssertVarMem(pgrfcgeOut);\n\n    *pgrfcgeOut = fcgeNil;\n    switch (_es)\n    {\n    case esStart:\n        // starting the enumeration\n        // hit the node on the way down\n        *pgrfcgeOut |= fcgePre | fcgeRoot;\n        if (_pcfl->Ckid(_dps.kid.cki.ctg, _dps.kid.cki.cno) == 0)\n            goto LPost;\n        *pkid = _dps.kid;\n        _dps.ikid = 0;\n        _es = esGo;\n        break;\n\n    case esGo:\n        if ((grfcgeIn & fcgeSkipToSib) && (_pgldps == pvNil || !_pgldps->FPop(&_dps)))\n        {\n            goto LDone;\n        }\n        // fall through\n    case esGoNoSkip:\n        if (!_pcfl->FGetKid(_dps.kid.cki.ctg, _dps.kid.cki.cno, _dps.ikid++, pkid))\n        {\n        LPost:\n            // no more children, hit the node on the way up\n            *pgrfcgeOut |= fcgePost;\n            *pkid = _dps.kid;\n            if (_pgldps == pvNil || !_pgldps->FPop(&_dps))\n            {\n                // this is the root\n                *pgrfcgeOut |= fcgeRoot;\n                _es = esDone;\n                ReleasePpo(&_pgldps);\n            }\n            else\n            {\n                _es = esGoNoSkip;\n                if (pckiPar != pvNil)\n                    *pckiPar = _dps.kid.cki;\n            }\n            break;\n        }\n\n        // hit the child\n        if (pckiPar != pvNil)\n            *pckiPar = _dps.kid.cki;\n        if (_pcfl->Ckid(pkid->cki.ctg, pkid->cki.cno) > 0)\n        {\n            // child has children, need to push the dps\n            if (_pgldps == pvNil && (_pgldps = GL::PglNew(size(DPS), 10)) == pvNil || !_pgldps->FPush(&_dps))\n            {\n                // mem failure, pretend it has no children\n                *pgrfcgeOut |= fcgeError;\n                goto LNoChildren;\n            }\n            _dps.kid = *pkid;\n            _dps.ikid = 0;\n            *pgrfcgeOut |= fcgePre;\n            _es = esGo;\n        }\n        else\n        {\n        LNoChildren:\n            // child doesn't have children, just handle it\n            *pgrfcgeOut |= fcgePost | fcgePre;\n            _es = esGoNoSkip;\n        }\n        break;\n\n    default:\n    LDone:\n        _es = esDone;\n        ReleasePpo(&_pgldps);\n        TrashVar(pkid);\n        TrashVar(pckiPar);\n        TrashVar(pgrfcgeOut);\n        return fFalse;\n    }\n\n    TrashVarIf((*pgrfcgeOut & fcgeRoot), pckiPar);\n    TrashVarIf((*pgrfcgeOut & fcgeRoot), &pkid->chid);\n    return fTrue;\n}\n"
  },
  {
    "path": "kauai/src/chunk.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Chunky file classes. See comments in chunk.cpp.\n\n***************************************************************************/\n#ifndef CHUNK_H\n#define CHUNK_H\n\n/***************************************************************************\n    These must be unsigned longs!  We sort on them and assume in the code\n    that they are unsinged.\n***************************************************************************/\ntypedef ulong CTG;  // chunk tag/type\ntypedef ulong CNO;  // chunk number\ntypedef ulong CHID; // child chunk id\n\nenum\n{\n    fcflNil = 0x0000,\n    fcflWriteEnable = 0x0001,\n    fcflTemp = 0x0002,\n    fcflMark = 0x0004,\n    fcflAddToExtra = 0x0008,\n\n    // This flag indicates that when data is read, it should first be\n    // copied to the extra file (if it's not already there). This is\n    // for chunky files that are on a CD for which we want to cache data\n    // to the hard drive.\n    fcflReadFromExtra = 0x0010,\n\n#ifdef DEBUG\n    // for AssertValid\n    fcflGraph = 0x4000, // check the graph structure for cycles\n    fcflFull = fobjAssertFull,\n#endif // DEBUG\n};\n\n// chunk identification\nstruct CKI\n{\n    CTG ctg;\n    CNO cno;\n};\nconst BOM kbomCki = 0xF0000000;\n\n// child chunk identification\nstruct KID\n{\n    CKI cki;\n    CHID chid;\n};\nconst BOM kbomKid = 0xFC000000;\n\n/***************************************************************************\n    Chunky file class.\n***************************************************************************/\ntypedef class CFL *PCFL;\n#define CFL_PAR BLL\n#define kclsCFL 'CFL'\nclass CFL : public CFL_PAR\n{\n    RTCLASS_DEC\n    BLL_DEC(CFL, PcflNext)\n    ASSERT\n    MARKMEM\n\n  private:\n    // chunk storage\n    struct CSTO\n    {\n        PFIL pfil;  // the file\n        FP fpMac;   // logical end of file (for writing new chunks)\n        PGL pglfsm; // free space map\n    };\n\n    PGG _pggcrp;     // the index\n    CSTO _csto;      // the main file\n    CSTO _cstoExtra; // the scratch file\n\n    bool _fAddToExtra : 1;\n    bool _fMark : 1;\n    bool _fFreeMapNotRead : 1;\n    bool _fReadFromExtra : 1;\n    bool _fInvalidMainFile : 1;\n\n    // for deferred reading of the free map\n    FP _fpFreeMap;\n    long _cbFreeMap;\n\n#ifndef CHUNK_BIG_INDEX\n    struct RTIE\n    {\n        CTG ctg;\n        CNO cno;\n        long rti;\n    };\n\n    PGL _pglrtie;\n\n    bool _FFindRtie(CTG ctg, CNO cno, RTIE *prtie = pvNil, long *pirtie = pvNil);\n#endif //! CHUNK_BIG_INDEX\n\n    // static member variables\n    static long _rtiLast;\n    static PCFL _pcflFirst;\n\n  private:\n    // private methods\n    CFL(void);\n    ~CFL(void);\n\n    static ulong _GrffilFromGrfcfl(ulong grfcfl);\n\n    bool _FReadIndex(void);\n    tribool _TValidIndex(void);\n    bool _FWriteIndex(CTG ctgCreator);\n    bool _FCreateExtra(void);\n    bool _FAllocFlo(long cb, PFLO pflo, bool fForceOnExtra = fFalse);\n    bool _FFindCtgCno(CTG ctg, CNO cno, long *picrp);\n    void _GetUniqueCno(CTG ctg, long *picrp, CNO *pcno);\n    void _FreeFpCb(bool fOnExtra, FP fp, long cb);\n    bool _FAdd(long cb, CTG ctg, CNO cno, long icrp, PBLCK pblck);\n    bool _FPut(long cb, CTG ctg, CNO cno, PBLCK pblck, PBLCK pblckSrc, void *pv);\n    bool _FCopy(CTG ctgSrc, CNO cnoSrc, PCFL pcflDst, CNO *pcnoDst, bool fClone);\n    bool _FFindMatch(CTG ctgSrc, CNO cnoSrc, PCFL pcflDst, CNO *pcnoDst);\n    bool _FFindCtgRti(CTG ctg, long rti, CNO cnoMin, CNO *pcnoDst);\n    bool _FDecRefCount(long icrp);\n    void _DeleteCore(long icrp);\n    bool _FFindChild(long icrpPar, CTG ctgChild, CNO cnoChild, CHID chid, long *pikid);\n    bool _FAdoptChild(long icrpPar, long ikid, CTG ctgChild, CNO cnoChild, CHID chid, bool fClearLoner);\n    void _ReadFreeMap(void);\n    bool _FFindChidCtg(CTG ctgPar, CNO cnoPar, CHID chid, CTG ctg, KID *pkid);\n    bool _FSetName(long icrp, PSTN pstn);\n    bool _FGetName(long icrp, PSTN pstn);\n    void _GetFlo(long icrp, PFLO pflo);\n    void _GetBlck(long icrp, PBLCK pblck);\n    bool _FEnsureOnExtra(long icrp, FLO *pflo = pvNil);\n\n    long _Rti(CTG ctg, CNO cno);\n    bool _FSetRti(CTG ctg, CNO cno, long rti);\n\n  public:\n    // static methods\n    static PCFL PcflFirst(void)\n    {\n        return _pcflFirst;\n    }\n    static PCFL PcflOpen(FNI *pfni, ulong grfcfl);\n    static PCFL PcflCreate(FNI *pfni, ulong grfcfl);\n    static PCFL PcflCreateTemp(FNI *pfni = pvNil);\n    static PCFL PcflFromFni(FNI *pfni);\n\n    static void ClearMarks(void);\n    static void CloseUnmarked(void);\n#ifdef CHUNK_STATS\n    static void DumpStn(PSTN pstn, PFIL pfil = pvNil);\n#endif // CHUNK_STATS\n\n    virtual void Release(void);\n    bool FSetGrfcfl(ulong grfcfl, ulong grfcflMask = (ulong)~0);\n    void Mark(void)\n    {\n        _fMark = fTrue;\n    }\n    void SetTemp(bool f)\n    {\n        _csto.pfil->SetTemp(f);\n    }\n    bool FTemp(void)\n    {\n        return _csto.pfil->FTemp();\n    }\n    void GetFni(FNI *pfni)\n    {\n        _csto.pfil->GetFni(pfni);\n    }\n    bool FSetFni(FNI *pfni)\n    {\n        return _csto.pfil->FSetFni(pfni);\n    }\n    long ElError(void);\n    void ResetEl(long el = elNil);\n    bool FReopen(void);\n\n    // finding and reading chunks\n    bool FOnExtra(CTG ctg, CNO cno);\n    bool FEnsureOnExtra(CTG ctg, CNO cno);\n    bool FFind(CTG ctg, CNO cno, BLCK *pblck = pvNil);\n    bool FFindFlo(CTG ctg, CNO cno, PFLO pflo);\n    bool FReadHq(CTG ctg, CNO cno, HQ *phq);\n    void SetPacked(CTG ctg, CNO cno, bool fPacked);\n    bool FPacked(CTG ctg, CNO cno);\n    bool FUnpackData(CTG ctg, CNO cno);\n    bool FPackData(CTG ctg, CNO cno);\n\n    // creating and replacing chunks\n    bool FAdd(long cb, CTG ctg, CNO *pcno, PBLCK pblck = pvNil);\n    bool FAddPv(void *pv, long cb, CTG ctg, CNO *pcno);\n    bool FAddHq(HQ hq, CTG ctg, CNO *pcno);\n    bool FAddBlck(PBLCK pblckSrc, CTG ctg, CNO *pcno);\n    bool FPut(long cb, CTG ctg, CNO cno, PBLCK pblck = pvNil);\n    bool FPutPv(void *pv, long cb, CTG ctg, CNO cno);\n    bool FPutHq(HQ hq, CTG ctg, CNO cno);\n    bool FPutBlck(PBLCK pblck, CTG ctg, CNO cno);\n    bool FCopy(CTG ctgSrc, CNO cnoSrc, PCFL pcflDst, CNO *pcnoDst);\n    bool FClone(CTG ctgSrc, CNO cnoSrc, PCFL pcflDst, CNO *pcnoDst);\n    void SwapData(CTG ctg1, CNO cno1, CTG ctg2, CNO cno2);\n    void SwapChildren(CTG ctg1, CNO cno1, CTG ctg2, CNO cno2);\n    void Move(CTG ctg, CNO cno, CTG ctgNew, CNO cnoNew);\n\n    // creating child chunks\n    bool FAddChild(CTG ctgPar, CNO cnoPar, CHID chid, long cb, CTG ctg, CNO *pcno, PBLCK pblck = pvNil);\n    bool FAddChildPv(CTG ctgPar, CNO cnoPar, CHID chid, void *pv, long cb, CTG ctg, CNO *pcno);\n    bool FAddChildHq(CTG ctgPar, CNO cnoPar, CHID chid, HQ hq, CTG ctg, CNO *pcno);\n\n    // deleting chunks\n    void Delete(CTG ctg, CNO cno);\n    void SetLoner(CTG ctg, CNO cno, bool fLoner);\n    bool FLoner(CTG ctg, CNO cno);\n\n    // chunk naming\n    bool FSetName(CTG ctg, CNO cno, PSTN pstn);\n    bool FGetName(CTG ctg, CNO cno, PSTN pstn);\n\n    // graph structure\n    bool FAdoptChild(CTG ctgPar, CNO cnoPar, CTG ctgChild, CNO cnoChild, CHID chid = 0, bool fClearLoner = fTrue);\n    void DeleteChild(CTG ctgPar, CNO cnoPar, CTG ctgChild, CNO cnoChild, CHID chid = 0);\n    long CckiRef(CTG ctg, CNO cno);\n    tribool TIsDescendent(CTG ctg, CNO cno, CTG ctgSub, CNO cnoSub);\n    void ChangeChid(CTG ctgPar, CNO cnoPar, CTG ctgChild, CNO cnoChild, CHID chidOld, CHID chidNew);\n\n    // enumerating chunks\n    long Ccki(void);\n    bool FGetCki(long icki, CKI *pcki, long *pckid = pvNil, PBLCK pblck = pvNil);\n    bool FGetIcki(CTG ctg, CNO cno, long *picki);\n    long CckiCtg(CTG ctg);\n    bool FGetCkiCtg(CTG ctg, long icki, CKI *pcki, long *pckid = pvNil, PBLCK pblck = pvNil);\n\n    // enumerating child chunks\n    long Ckid(CTG ctgPar, CNO cnoPar);\n    bool FGetKid(CTG ctgPar, CNO cnoPar, long ikid, KID *pkid);\n    bool FGetKidChid(CTG ctgPar, CNO cnoPar, CHID chid, KID *pkid);\n    bool FGetKidChidCtg(CTG ctgPar, CNO cnoPar, CHID chid, CTG ctg, KID *pkid);\n    bool FGetIkid(CTG ctgPar, CNO cnoPar, CTG ctg, CNO cno, CHID chid, long *pikid);\n\n    // Serialized chunk forests\n    bool FWriteChunkTree(CTG ctg, CNO cno, PFIL pfilDst, FP fpDst, long *pcb);\n    static PCFL PcflReadForestFromFlo(PFLO pflo, bool fCopyData);\n    bool FForest(CTG ctg, CNO cno);\n    void SetForest(CTG ctg, CNO cno, bool fForest = fTrue);\n    PCFL PcflReadForest(CTG ctg, CNO cno, bool fCopyData);\n\n    // writing\n    bool FSave(CTG ctgCreator, FNI *pfni = pvNil);\n    bool FSaveACopy(CTG ctgCreator, FNI *pfni);\n};\n\n/***************************************************************************\n    Chunk graph enumerator\n***************************************************************************/\nenum\n{\n    // inputs\n    fcgeNil = 0x0000,\n    fcgeSkipToSib = 0x0001,\n\n    // outputs\n    fcgePre = 0x0010,\n    fcgePost = 0x0020,\n    fcgeRoot = 0x0040,\n    fcgeError = 0x0080\n};\n\n#define CGE_PAR BASE\n#define kclsCGE 'CGE'\nclass CGE : public CGE_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    NOCOPY(CGE)\n\n  private:\n    // data enumeration push state\n    struct DPS\n    {\n        KID kid;\n        long ikid;\n    };\n\n    // enumeration states\n    enum\n    {\n        esStart,    // waiting to start the enumeration\n        esGo,       // go to the next node\n        esGoNoSkip, // there are no children to skip, so ignore fcgeSkipToSib\n        esDone      // we're done with the enumeration\n    };\n\n    long _es;    // current state\n    PCFL _pcfl;  // the chunky file\n    PGL _pgldps; // our stack of DPSs\n    DPS _dps;    // the current DPS\n\n  public:\n    CGE(void);\n    ~CGE(void);\n\n    void Init(PCFL pcfl, CTG ctg, CNO cno);\n    bool FNextKid(KID *pkid, CKI *pckiPar, ulong *pgrfcgeOut, ulong grfcgeIn);\n};\n\n#ifdef CHUNK_STATS\nextern bool vfDumpChunkRequests;\n#endif // CHUNK_STATS\n\n#endif //! CHUNK_H\n"
  },
  {
    "path": "kauai/src/clip.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Clipboard object implementation.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nRTCLASS(CLIP)\n\nPCLIP vpclip;\nCLIP _clip;\n\n/***************************************************************************\n    Constructor for the clipboard.\n***************************************************************************/\nCLIP::CLIP(void)\n{\n    vpclip = this;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Return whether the given document is the clipboard document.  If pdocb\n    is nil this returns true if the clipboard is empty and false if it's\n    not empty.\n***************************************************************************/\nbool CLIP::FDocIsClip(PDOCB pdocb)\n{\n    AssertThis(0);\n    AssertNilOrPo(pdocb, 0);\n\n    if (pvNil == pdocb)\n        _EnsureDoc();\n\n    return pdocb == _pdocb;\n}\n\n/***************************************************************************\n    Show the clipboard document.\n***************************************************************************/\nvoid CLIP::Show(void)\n{\n    AssertThis(0);\n\n    _EnsureDoc();\n    _ImportCur();\n    if (pvNil != _pdocb)\n    {\n        if (_pdocb->Cddg() > 0)\n            _pdocb->ActivateDmd();\n        else\n            _pdocb->PdmdNew();\n    }\n}\n\n/***************************************************************************\n    Make the given document the clipboard document.\n***************************************************************************/\nvoid CLIP::Set(PDOCB pdocb, bool fExport)\n{\n    AssertThis(0);\n    AssertNilOrPo(pdocb, 0);\n\n    if (_fExporting || _fImporting)\n    {\n        Bug(\"can't change the clipboard while exporting or importing\");\n        return;\n    }\n\n    if (pdocb == _pdocb)\n        return;\n\n    _fDocCurrent = fTrue;\n    _fDelayImport = fFalse;\n    _clfmImport = clfmNil;\n\n    // throw away the old clip document and replace it with the new one\n    SwapVars(&pdocb, &_pdocb);\n    if (pvNil != pdocb)\n    {\n        if (pdocb->Cddg() > 0)\n            pdocb->UpdateName();\n        ReleasePpo(&pdocb);\n    }\n\n    if (pvNil != _pdocb)\n    {\n        _pdocb->AddRef();\n        if (_pdocb->Cddg() > 0)\n            _pdocb->UpdateName();\n\n        if (fExport)\n        {\n            _pdocb->ExportFormats(this);\n            EndExport();\n        }\n    }\n}\n\n/***************************************************************************\n    See if the clipboard supports this format and if so, get it.\n***************************************************************************/\nbool CLIP::FGetFormat(long cls, PDOCB *ppdocb)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(ppdocb);\n\n    _EnsureDoc();\n    if (pvNil != ppdocb)\n        _ImportCur();\n\n    if (pvNil == _pdocb)\n        return fFalse;\n\n    if (_pdocb->FIs(cls))\n    {\n        if (pvNil != ppdocb)\n        {\n            *ppdocb = _pdocb;\n            (*ppdocb)->AddRef();\n        }\n        return fTrue;\n    }\n\n    return _pdocb->FGetFormat(cls, ppdocb);\n}\n\n/***************************************************************************\n    Import stuff from the external clipboard.\n***************************************************************************/\nvoid CLIP::Import(void)\n{\n    AssertThis(0);\n\n    if (pvNil != _pdocb && _pdocb->Cddg() > 0)\n        Set();\n    _fDocCurrent = fFalse;\n}\n\n/***************************************************************************\n    Make sure the _pdocb is current - import the current system clipboard\n    if it isn't.\n***************************************************************************/\nvoid CLIP::_EnsureDoc(void)\n{\n    if (_fExporting || _fImporting)\n    {\n        Bug(\"can't import the clipboard while exporting or importing\");\n        return;\n    }\n\n    if (_fDocCurrent)\n        return;\n\n    _fDocCurrent = fTrue;\n\n#ifdef WIN\n    HN hn;\n    PDOCB pdocb;\n    bool fDelay;\n    long clfm;\n\n    if (GetClipboardOwner() == vwig.hwndApp || !OpenClipboard(vwig.hwndApp))\n        return;\n\n    for (clfm = 0; 0 != (clfm = EnumClipboardFormats(clfm));)\n    {\n        if (!_FImportFormat(clfm))\n            continue;\n\n        if (hNil == (hn = GetClipboardData(clfm)))\n            continue;\n\n        pdocb = pvNil;\n        fDelay = fFalse;\n        if (_FImportFormat(clfm, GlobalLock(hn), GlobalSize(hn), &pdocb, &fDelay))\n        {\n            GlobalUnlock(hn);\n            Set(pdocb, fFalse);\n            _fDelayImport = FPure(fDelay) && pdocb != pvNil;\n            _clfmImport = clfm;\n            ReleasePpo(&pdocb);\n            break;\n        }\n        GlobalUnlock(hn);\n    }\n    CloseClipboard();\n#endif // WIN\n\n#ifdef MAC\n    RawRtn(); // REVIEW shonk: Mac: implement CLIP::Import\n#endif        // MAC\n}\n\n/***************************************************************************\n    Import the actual data for the current clipboard (if importing was\n    delayed).\n***************************************************************************/\nvoid CLIP::_ImportCur(void)\n{\n    AssertThis(0);\n    Assert(_fDocCurrent, 0);\n\n    if (pvNil == _pdocb || !_fDelayImport || clfmNil == _clfmImport)\n        return;\n\n#ifdef WIN\n    HN hn;\n    bool fRet;\n    PDOCB pdocb;\n\n    if (GetClipboardOwner() == vwig.hwndApp || !OpenClipboard(vwig.hwndApp))\n        return;\n\n    if (hNil != (hn = GetClipboardData(_clfmImport)))\n    {\n        pdocb = _pdocb;\n        if (pvNil != pdocb)\n            pdocb->AddRef();\n        fRet = _FImportFormat(_clfmImport, GlobalLock(hn), GlobalSize(hn), &pdocb);\n        GlobalUnlock(hn);\n        if (fRet)\n            Set(pdocb, fFalse);\n        _fDelayImport = fFalse;\n        _clfmImport = clfmNil;\n        ReleasePpo(&pdocb);\n    }\n    CloseClipboard();\n#endif // WIN\n\n#ifdef MAC\n    RawRtn(); // REVIEW shonk: Mac: implement CLIP::_ImportCur\n#endif        // MAC\n}\n\n/***************************************************************************\n    Import a particular format.\n***************************************************************************/\nbool CLIP::_FImportFormat(long clfm, void *pv, long cb, PDOCB *ppdocb, bool *pfDelay)\n{\n    AssertThis(0);\n    AssertPvCb(pv, cb);\n    AssertNilOrVarMem(ppdocb);\n    AssertNilOrVarMem(pfDelay);\n    Assert(_fDocCurrent, 0);\n    bool fRet;\n\n#ifdef WIN\n    if (pvNil != pv && cb > 0)\n    {\n        // adjust cb for text - remove the stupid trailing null and compensate\n        // for the fact that cb might be too big (GlobalSize(hn) might be bigger\n        // than what was allocated).\n        switch (clfm)\n        {\n        case kclfmUniText:\n            wchar *pchw, *pchwLim;\n\n            pchw = (wchar *)pv;\n            pchwLim = (wchar *)pv + cb / size(wchar);\n            while (pchw < pchwLim && *pchw != 0)\n                pchw++;\n            cb = BvSubPvs(pchw, pv);\n            break;\n\n        case kclfmSbText:\n            schar *pchs, *pchsLim;\n\n            pchs = (schar *)pv;\n            pchsLim = (schar *)pv + cb;\n            while (pchs < pchsLim && *pchs != 0)\n                pchs++;\n            cb = BvSubPvs(pchs, pv);\n            break;\n        }\n    }\n#endif // WIN\n\n    _fImporting = fTrue;\n    fRet = vpappb->FImportClip(clfm, pv, cb, ppdocb, pfDelay);\n    _fImporting = fFalse;\n\n    return fRet;\n}\n\n/***************************************************************************\n    Start an export session.\n***************************************************************************/\nbool CLIP::FInitExport(void)\n{\n    AssertThis(0);\n\n    if (_fExporting || _fImporting)\n    {\n        Bug(\"Already exporting or importing\");\n        return fFalse;\n    }\n\n    _hnExport = hNil;\n\n#ifdef WIN\n    if (!OpenClipboard(vwig.hwndApp))\n        return fFalse;\n    if (!EmptyClipboard())\n    {\n        CloseClipboard();\n        return fFalse;\n    }\n    _fExporting = fTrue;\n#endif // WIN\n\n#ifdef MAC\n    RawRtn(); // REVIEW shonk: Mac: implement CLIP::FInitExport\n#endif        // MAC\n\n    return _fExporting;\n}\n\n/***************************************************************************\n    Allocate a buffer to export to.\n***************************************************************************/\nvoid *CLIP::PvExport(long cb, long clfm)\n{\n    AssertThis(0);\n    AssertIn(cb, 1, kcbMax);\n\n    if (!_fExporting)\n    {\n        Bug(\"not exporting\");\n        return pvNil;\n    }\n\n    _ExportCur();\n\n#ifdef WIN\n    switch (clfm)\n    {\n    case kclfmText:\n        // need to add size(achar) for the terminating zero character\n        cb = LwRoundAway(cb + size(achar), size(achar));\n        break;\n    }\n\n    if (hNil == (_hnExport = GlobalAlloc(GMEM_DDESHARE | GMEM_MOVEABLE | GMEM_ZEROINIT, cb)))\n    {\n        return pvNil;\n    }\n\n    _clfmExport = clfm;\n    return GlobalLock(_hnExport);\n#endif // WIN\n\n#ifdef MAC\n    RawRtn(); // REVIEW shonk: Mac: implement CLIP::PvExport\n    return pvNil;\n#endif // MAC\n}\n\n/***************************************************************************\n    End an exporting session.\n***************************************************************************/\nvoid CLIP::EndExport(void)\n{\n    AssertThis(0);\n\n    if (!_fExporting)\n        return;\n\n    _ExportCur();\n\n#ifdef WIN\n    CloseClipboard();\n#endif // WIN\n\n#ifdef MAC\n    RawRtn(); // REVIEW shonk: Mac: implement CLIP::EndExport\n#endif        // MAC\n    _fExporting = fFalse;\n}\n\n/***************************************************************************\n    Export the current format.\n***************************************************************************/\nvoid CLIP::_ExportCur(void)\n{\n    AssertThis(0);\n    Assert(_fExporting, 0);\n\n#ifdef WIN\n    if (hNil != _hnExport)\n    {\n        GlobalUnlock(_hnExport);\n        SetClipboardData(_clfmExport, _hnExport);\n        _hnExport = hNil;\n    }\n#endif // WIN\n\n#ifdef MAC\n    RawRtn(); // REVIEW shonk: Mac: implement CLIP::_ExportCur\n#endif        // MAC\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a CLIP.\n***************************************************************************/\nvoid CLIP::AssertValid(ulong grf)\n{\n    CLIP_PAR::AssertValid(0);\n    AssertNilOrPo(_pdocb, 0);\n    Assert(!_fExporting || !_fImporting, \"both importing and exporting!\");\n}\n\n/***************************************************************************\n    Mark memory for the CLIP.\n***************************************************************************/\nvoid CLIP::MarkMem(void)\n{\n    AssertValid(0);\n    CLIP_PAR::MarkMem();\n    MarkMemObj(_pdocb);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/clip.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Clipboard object declarations.\n\n***************************************************************************/\n#ifndef CLIP_H\n#define CLIP_H\n\n/***************************************************************************\n    Clipboard object.\n***************************************************************************/\ntypedef class CLIP *PCLIP;\n#define CLIP_PAR BASE\n#define kclsCLIP 'CLIP'\nclass CLIP : public CLIP_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PDOCB _pdocb;\n\n    bool _fDocCurrent : 1;\n    bool _fExporting : 1;\n    bool _fImporting : 1;\n    bool _fDelayImport : 1;\n\n    HN _hnExport;\n    long _clfmExport;\n    long _clfmImport;\n\n    void _EnsureDoc();\n    void _ExportCur(void);\n    void _ImportCur(void);\n    bool _FImportFormat(long clfm, void *pv = pvNil, long cb = 0, PDOCB *ppdocb = pvNil, bool *pfDelay = pvNil);\n\n  public:\n    CLIP(void);\n\n    bool FDocIsClip(PDOCB pdocb);\n    void Show(void);\n\n    void Set(PDOCB pdocb = pvNil, bool fExport = fTrue);\n    bool FGetFormat(long cls, PDOCB *pdocb = pvNil);\n\n    bool FInitExport(void);\n    void *PvExport(long cb, long clfm);\n    void EndExport(void);\n\n    void Import(void);\n};\n\nextern PCLIP vpclip;\n\nconst long clfmNil = 0;\n// REVIEW shonk: Mac unicode\nconst long kclfmUniText = MacWin('WTXT', CF_UNICODETEXT);\nconst long kclfmSbText = MacWin('TEXT', CF_TEXT);\n\n#ifdef UNICODE\nconst long kclfmText = kclfmUniText;\n#else  //! UNICODE\nconst long kclfmText = kclfmSbText;\n#endif //! UNICODE\n\n#endif //! CLIP_H\n"
  },
  {
    "path": "kauai/src/clok.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Clock class. Clocks provide timing and alarm functionality. Clocks get\n    CPU time by inserting themselves in the command handler list (attached\n    to the CEX). This causes CLOK::FCmdAll to be called every time a command\n    comes through the CEX. The time of a clock is updated only when\n    CLOK::FCmdAll is called. So the following code will not time the operation:\n\n        dtim = vclok.TimCur();\n        for (...)\n            {\n            ...\n            }\n        dtim = vlok.TimCur() - dtim;\n\n    At the end of this, dtim will always be zero (unless CLOK::FCmdAll is\n    somehow called in the loop - in which case dtim still won't be the exact\n    timing of the loop). To do this type of timing use TsCurrent() or\n    TsCurrentSystem(). Clocks use TsCurrent(), so scaling the application\n    time scales all clocks.\n\n    Added feature: TimCur now takes an optional boolean parameter indicating\n    whether the time should be calculated or just the current value as\n    described above. The default is false (return the current value ...).\n    FSetAlarm also has an optional boolean specifying whether the alarm\n    time should be computed from the current app time or from the current\n    value (ie from TimCur(fTrue) or TimCur(fFalse)). The default is to use\n    TimCur(fFalse) (old behavior).\n\n    By default, if a clock's time is computed to exceed its next alarm's\n    time, the clock's time \"slips\" back to the alarm's time. Eg, if an\n    alarm is set for tim = 1000 and the app does something that takes a long\n    time, so that the next time thru the clock's FCmdAll the clocks time\n    is computed to be 1200, the clock's time is set back to 1000 and the\n    alarm is triggered. If the clock should not slip in this way, fclokNoSlip\n    should be specified in the constructor's grfclok parameter.\n\n    fclokReset means that the clock's time should be reset to 0 every\n    time the following commands come through the command queue:\n    cidKey, cidTrackMouse, cidMouseMove, any cid less than cidMinNoMenu.\n    Such a clock could be used for screen saver functionality or time-out\n    animations, etc.\n\n    WARNING: If alarms are not handled and set appropriately, the app can\n    sometimes get into a tight loop that the user can't break into.\n    Suppose a command handler \"A\" wants to do something every 1/10 of a second.\n    It sets up a clock and sets an alarm for 1/10 of a second from now.\n    When the alarm goes off, A sets the next alarm for 1/10 of a second from\n    now, does some work that takes 1/2 second (we're running on a slow\n    machine), then enqueues a command \"cidFoo\" to another object \"B\".\n    Assuming the command queue was empty, the next command processed by the\n    CEX is cidFoo. This causes the alarm to go off again (remember that alarms\n    go off during the FCmdAll call). And the whole process repeats. The\n    command queue is never empty in the main app loop, so we never check the\n    system event queue, so the user can sit there and hit the keyboard or play\n    with the mouse as much as they want and we will never see it. The way to\n    avoid this is to set the next alarm after the work is done, and better\n    yet, don't reset the alarm until all commands resulting from the alarm\n    have been processed. Handler A should do the following: do its work,\n    enqueue cidFoo to object B, enqueue cidBar to itself. When it gets cidBar,\n    it sets an alarm for 1/10 of a second into the future. This guarantees\n    a 1/10 second gap between then end of handling one alarm and starting\n    to handle the next alarm.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nRTCLASS(CLOK)\n\nBEGIN_CMD_MAP_BASE(CLOK)\nEND_CMD_MAP(&CLOK::FCmdAll, pvNil, kgrfcmmAll)\n\nconst long kcmhlClok = kswMin; // put clocks at the head of the list\nPCLOK CLOK::_pclokFirst;\n\n/***************************************************************************\n    Constructor for the clock - just zeros the time.  fclokReset specifies\n    that this clock should reset itself to zero on key or mouse input.\n    fclokNoSlip specifies that the clok should not let time slip.\n***************************************************************************/\nCLOK::CLOK(long hid, ulong grfclok) : CMH(hid)\n{\n    _pclokNext = _pclokFirst;\n    _pclokFirst = this;\n    _timBase = _timCur = _dtimAlarm = 0;\n    _timNext = kluMax;\n    _tsBase = 0;\n    _grfclok = grfclok;\n    _pglalad = pvNil;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for a CLOK - remove it from the linked list of clocks.\n***************************************************************************/\nCLOK::~CLOK(void)\n{\n    PCLOK *ppclok;\n\n    for (ppclok = &_pclokFirst; *ppclok != pvNil && *ppclok != this; ppclok = &(*ppclok)->_pclokNext)\n    {\n    }\n    if (*ppclok == this)\n        *ppclok = _pclokNext;\n    else\n        Bug(\"clok not in linked list\");\n\n    ReleasePpo(&_pglalad);\n}\n\n/***************************************************************************\n    Static method to find the first clok with the given id.\n***************************************************************************/\nPCLOK CLOK::PclokFromHid(long hid)\n{\n    PCLOK pclok;\n\n    for (pclok = _pclokFirst; pvNil != pclok; pclok = pclok->_pclokNext)\n    {\n        AssertPo(pclok, 0);\n        if (pclok->Hid() == hid)\n            break;\n    }\n    return pclok;\n}\n\n/***************************************************************************\n    Static method to remove all references to the given CMH from the clok\n    ALAD lists.\n***************************************************************************/\nvoid CLOK::BuryCmh(PCMH pcmh)\n{\n    PCLOK pclok;\n\n    for (pclok = _pclokFirst; pvNil != pclok; pclok = pclok->_pclokNext)\n        pclok->RemoveCmh(pcmh);\n}\n\n/***************************************************************************\n    Remove any alarms set by the given CMH.\n***************************************************************************/\nvoid CLOK::RemoveCmh(PCMH pcmh)\n{\n    AssertThis(0);\n    ALAD *qalad;\n    long ialad;\n\n    if (pvNil == _pglalad)\n        return;\n\n    for (ialad = _pglalad->IvMac(); ialad-- > 0;)\n    {\n        qalad = (ALAD *)_pglalad->QvGet(ialad);\n        if (qalad->pcmh == pcmh)\n            _pglalad->Delete(ialad);\n    }\n}\n\n/***************************************************************************\n    Start the clock.\n***************************************************************************/\nvoid CLOK::Start(ulong tim)\n{\n    AssertThis(0);\n    _timBase = _timCur = tim;\n    _dtimAlarm = 0;\n    _tsBase = TsCurrent();\n    vpcex->RemoveCmh(this, kcmhlClok);\n    vpcex->FAddCmh(this, kcmhlClok, kgrfcmmAll);\n}\n\n/***************************************************************************\n    Stop the clock. The time will no longer advance on this clock.\n***************************************************************************/\nvoid CLOK::Stop(void)\n{\n    AssertThis(0);\n    vpcex->RemoveCmh(this, kcmhlClok);\n}\n\n/***************************************************************************\n    Return the current time. If fAdjustForDelay is true, the time is a more\n    accurate time, but is not synchronized to the alarms or to the command\n    stream. Normally, the clok's time is only updated when a command gets\n    processed by the command dispatcher. If fAdjustForDelay is false, the\n    last computed time value is returned, otherwise the time is computed\n    from the current application time.\n***************************************************************************/\nulong CLOK::TimCur(bool fAdjustForDelay)\n{\n    AssertThis(0);\n\n    if (!fAdjustForDelay)\n        return _timCur;\n\n    return _timBase + LuMulDiv(TsCurrent() - _tsBase, kdtimSecond, kdtsSecond);\n}\n\n/***************************************************************************\n    Set an alarm for the given time and for the given command handler.\n    Alarms are sorted in _decreasing_ order.\n***************************************************************************/\nbool CLOK::FSetAlarm(long dtim, PCMH pcmhNotify, long lwUser, bool fAdjustForDelay)\n{\n    AssertThis(0);\n    AssertIn(dtim, 0, kcbMax);\n    AssertNilOrPo(pcmhNotify, 0);\n    ALAD alad;\n    ALAD *qalad;\n    long ialad, ialadMin, ialadLim;\n\n    alad.pcmh = pcmhNotify;\n    alad.tim = TimCur(fAdjustForDelay) + LwMax(dtim, 1);\n    alad.lw = lwUser;\n    if (pvNil == _pglalad && pvNil == (_pglalad = GL::PglNew(size(ALAD), 1)))\n        return fFalse;\n    for (ialadMin = 0, ialadLim = _pglalad->IvMac(); ialadMin < ialadLim;)\n    {\n        ialad = (ialadMin + ialadLim) / 2;\n        qalad = (ALAD *)_pglalad->QvGet(ialad);\n        if (qalad->tim < alad.tim)\n            ialadLim = ialad;\n        else\n            ialadMin = ialad + 1;\n    }\n    if (!_pglalad->FInsert(ialadMin, &alad))\n        return fFalse;\n    if (_timNext > alad.tim)\n        _timNext = alad.tim;\n    return fTrue;\n}\n\n/***************************************************************************\n    Advance the clock and sound an alarm if one is due to go off.  This\n    actually gets called every time through the command loop.\n***************************************************************************/\nbool CLOK::FCmdAll(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    CMD cmd;\n    long ialad;\n    ALAD alad;\n    ulong tsCur, timCur;\n\n    _dtimAlarm = 0;\n    if (pcmd->cid == cidAlarm)\n        return fFalse;\n\n    tsCur = TsCurrent();\n    timCur = _timBase + LuMulDiv(tsCur - _tsBase, kdtimSecond, kdtsSecond);\n\n    if (_grfclok & fclokReset)\n    {\n        switch (pcmd->cid)\n        {\n        case cidKey:\n        case cidTrackMouse:\n        case cidMouseMove:\n            goto LReset;\n        default:\n            if (pcmd->cid < cidMinNoMenu)\n            {\n            LReset:\n                _tsBase = tsCur;\n                _timBase = 0;\n                timCur = 0;\n            }\n            break;\n        }\n    }\n\n    if (timCur < _timNext)\n    {\n        // just update the time\n        _timCur = timCur;\n        return fFalse;\n    }\n\n    // sound any alarms\n    for (;;)\n    {\n        if (pvNil == _pglalad || 0 > (ialad = _pglalad->IvMac() - 1))\n        {\n            _timNext = kluMax;\n            break;\n        }\n        _pglalad->Get(ialad, &alad);\n        if (alad.tim > timCur)\n        {\n            _timNext = alad.tim;\n            break;\n        }\n        _pglalad->Delete(ialad);\n\n        // adjust the current time\n        _timCur = alad.tim;\n        _timNext = kluMax;\n        if (timCur > alad.tim && !(_grfclok & fclokNoSlip))\n        {\n            // we've slipped\n            timCur = _timBase = alad.tim;\n            _tsBase = tsCur;\n        }\n\n        // send the alarm\n        ClearPb(&cmd, size(CMD));\n        cmd.cid = cidAlarm;\n        cmd.pcmh = alad.pcmh;\n        cmd.rglw[0] = Hid();\n        cmd.rglw[1] = alad.tim;\n        cmd.rglw[2] = alad.lw;\n\n        if (pvNil != alad.pcmh)\n        {\n            // tell the CMH that the alarm went off\n            AddRef();\n            Assert(_cactRef > 1, 0);\n            _dtimAlarm = timCur - _timCur;\n            alad.pcmh->FDoCmd(&cmd);\n            if (_cactRef == 1)\n            {\n                Release();\n                return fFalse;\n            }\n            Release();\n            AssertThis(0);\n        }\n        else\n            vpcex->EnqueueCmd(&cmd);\n    }\n\n    _timCur = timCur;\n    return fFalse;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a CLOK.\n***************************************************************************/\nvoid CLOK::AssertValid(ulong grf)\n{\n    CLOK_PAR::AssertValid(0);\n    AssertNilOrPo(_pglalad, 0);\n    Assert(_timCur <= _timNext, \"_timNext too small\");\n    Assert((_grfclok & fclokNoSlip) || _dtimAlarm == 0, \"_dtimAlarm should be 0\");\n}\n\n/***************************************************************************\n    Mark memory for the CLOK.\n***************************************************************************/\nvoid CLOK::MarkMem(void)\n{\n    AssertValid(0);\n    CLOK_PAR::MarkMem();\n    MarkMemObj(_pglalad);\n}\n\n/***************************************************************************\n    Static method to mark all the CLOKs\n***************************************************************************/\nvoid CLOK::MarkAllCloks(void)\n{\n    PCLOK pclok;\n\n    for (pclok = _pclokFirst; pvNil != pclok; pclok = pclok->_pclokNext)\n    {\n        AssertPo(pclok, 0);\n        MarkMemObj(pclok);\n    }\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/clok.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Clock class. See comments in clok.cpp.\n\n***************************************************************************/\n#ifndef CLOK_H\n#define CLOK_H\n\nenum\n{\n    fclokNil = 0,\n    fclokReset = 1,\n    fclokNoSlip = 2,\n};\n\ntypedef class CLOK *PCLOK;\n#define CLOK_PAR CMH\n#define kclsCLOK 'CLOK'\nclass CLOK : public CLOK_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(CLOK)\n\n  protected:\n    // alarm descriptor\n    struct ALAD\n    {\n        PCMH pcmh;\n        ulong tim;\n        long lw;\n    };\n\n    static PCLOK _pclokFirst;\n\n    PCLOK _pclokNext;\n    ulong _tsBase;\n    ulong _timBase;\n    ulong _timCur;    // current time\n    ulong _dtimAlarm; // processing alarms up to _timCur + _dtimAlarm\n    ulong _timNext;   // next alarm time to process (for speed)\n    ulong _grfclok;\n    PGL _pglalad; // the registered alarms\n\n  public:\n    CLOK(long hid, ulong grfclok = fclokNil);\n    ~CLOK(void);\n    static PCLOK PclokFromHid(long hid);\n    static void BuryCmh(PCMH pcmh);\n    void RemoveCmh(PCMH pcmh);\n\n    void Start(ulong tim);\n    void Stop(void);\n    ulong TimCur(bool fAdjustForDelay = fFalse);\n    ulong DtimAlarm(void)\n    {\n        return _dtimAlarm;\n    }\n\n    bool FSetAlarm(long dtim, PCMH pcmhNotify = pvNil, long lwUser = 0, bool fAdjustForDelay = fFalse);\n\n    // idle handling\n    virtual bool FCmdAll(PCMD pcmd);\n\n#ifdef DEBUG\n    static void MarkAllCloks(void);\n#endif // DEBUG\n};\n\n#endif //! CLOK_H\n"
  },
  {
    "path": "kauai/src/cmd.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Basic command classes: CEX (command dispatcher), CMH (command handler).\n\n    The command dispatcher (CEX) has a command (CMD) queue and a list of\n    command handlers (CMH). During normal operation (CEX::FDispatchNextCmd),\n    the CEX takes the next CMD from the queue, passes it to each CMH in its\n    list (by calling CMH::FDoCmd) until one of the handlers returns true.\n    If none of the handlers in the list returns true, the command is passed\n    to the handler specified in the CMD itself (cmd.pcmh, if not nil).\n\n    A CMH is placed in the handler list by a call to CEX::FAddCmh. The\n    cmhl parameter determines the order of CMH's in the list. The grfcmm\n    parameter indicates which targets the CMH wants to see commands for.\n    The options are fcmmThis, fcmmNobody, fcmmOthers.\n\n    The CEX class supports command stream recording and playback.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\n// command map shared by every command handler\nBEGIN_CMD_MAP_BASE(CMH)\nEND_CMD_MAP_NIL()\n\nRTCLASS(CMH)\nRTCLASS(CEX)\n\nlong CMH::_hidLast;\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a CMD.\n***************************************************************************/\nvoid CMD::AssertValid(ulong grf)\n{\n    AssertThisMem();\n    AssertNilOrPo(pgg, 0);\n    AssertNilOrPo(pcmh, 0);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Static method to return a hid (command handler ID) such that the numbers\n    { hid, hid + 1, ... , hid + ccmh - 1 } are not currently in use and all\n    have their high bit set. To avoid possible conflicts, hard-wired\n    handler ID's should have their high bit clear. This guarantees that\n    the values will not be returned again in the near future (whether or not\n    they are in use).\n\n    This calls vpappb->PcmhFromHid to determine if a hid is in use. This\n    means that the returned hid is only unique over handlers that the\n    application class knows about.\n***************************************************************************/\nlong CMH::HidUnique(long ccmh)\n{\n    AssertIn(ccmh, 1, 1000);\n    long ccmhT;\n\n    _hidLast |= 0x80000000L;\n    for (ccmhT = ccmh; ccmhT-- > 0;)\n    {\n        _hidLast++;\n        if (!(_hidLast & 0x80000000L))\n        {\n            _hidLast = 0x80000000L;\n            ccmhT = ccmh;\n            continue;\n        }\n        if (pvNil != vpappb->PcmhFromHid(_hidLast))\n            ccmhT = ccmh;\n    }\n\n    return _hidLast - (ccmh - 1);\n}\n\n/***************************************************************************\n    Constructor for a command handler - set the handler id.\n***************************************************************************/\nCMH::CMH(long hid)\n{\n    AssertBaseThis(0);\n    Assert(hid != hidNil, \"bad hid\");\n    _hid = hid;\n}\n\n/***************************************************************************\n    Destructor for a command handler - purge any global references to it\n    from the app. The app purges it from the command dispatcher.\n***************************************************************************/\nCMH::~CMH(void)\n{\n    AssertThis(0);\n    if (pvNil != vpappb)\n        vpappb->BuryCmh(this);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a CMH.\n***************************************************************************/\nvoid CMH::AssertValid(ulong grf)\n{\n    CMH_PAR::AssertValid(0);\n    Assert(_hid != hidNil, 0);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Protected virtual function to find a CMME (command map entry) for the\n    given command id.\n***************************************************************************/\nbool CMH::_FGetCmme(long cid, ulong grfcmmWanted, CMME *pcmme)\n{\n    AssertThis(0);\n    AssertVarMem(pcmme);\n    Assert(cid != cidNil, \"why is the cid nil?\");\n    CMM *pcmm;\n    CMME *pcmmeT;\n    CMME *pcmmeDef = pvNil;\n\n    for (pcmm = Pcmm(); pcmm != pvNil; pcmm = pcmm->pcmmBase)\n    {\n        for (pcmmeT = pcmm->prgcmme; pcmmeT->cid != cidNil; pcmmeT++)\n        {\n            if (pcmmeT->cid == cid && (pcmmeT->grfcmm & grfcmmWanted))\n            {\n                *pcmme = *pcmmeT;\n                return fTrue;\n            }\n        }\n\n        // check for a default function\n        if (pcmmeT->pfncmd != pvNil && (pcmmeT->grfcmm & grfcmmWanted) && pcmmeDef == pvNil)\n        {\n            pcmmeDef = pcmmeT;\n        }\n    }\n\n    // no specific one found, return the default one\n    if (pcmmeDef != pvNil)\n    {\n        *pcmme = *pcmmeDef;\n        return fTrue;\n    }\n    return fFalse;\n}\n\n/***************************************************************************\n    Determines whether this command handler can handle the given command. If\n    not, returns false (and does nothing else). If so, executes the command\n    and returns true.\n\n    NOTE: a true return indicates that the command was handled and should\n    not be passed on down the command handler list - regardless of the\n    success/failure of the execution of the command. Do not return false\n    to indicate that command execution failed.\n***************************************************************************/\nbool CMH::FDoCmd(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertPo(pcmd, 0);\n    CMME cmme;\n    ulong grfcmm;\n\n    if (pvNil == pcmd->pcmh)\n        grfcmm = fcmmNobody;\n    else if (this == pcmd->pcmh)\n        grfcmm = fcmmThis;\n    else\n        grfcmm = fcmmOthers;\n\n    if (!_FGetCmme(pcmd->cid, grfcmm, &cmme) || pvNil == cmme.pfncmd)\n        return fFalse;\n\n    return (this->*cmme.pfncmd)(pcmd);\n}\n\n/***************************************************************************\n    Determines whether the command is enabled. If this command handler\n    doesn't normally handle the command, this returns false (and does\n    nothing else). Otherwise sets the grfeds and returns true.\n***************************************************************************/\nbool CMH::FEnableCmd(PCMD pcmd, ulong *pgrfeds)\n{\n    AssertThis(0);\n    AssertPo(pcmd, 0);\n    AssertVarMem(pgrfeds);\n    CMME cmme;\n    ulong grfcmm;\n\n    if (pvNil == pcmd->pcmh)\n        grfcmm = fcmmNobody;\n    else if (this == pcmd->pcmh)\n        grfcmm = fcmmThis;\n    else\n        grfcmm = fcmmOthers;\n\n    if (!_FGetCmme(pcmd->cid, grfcmm, &cmme) || pvNil == cmme.pfncmd)\n        return fFalse;\n\n    if (cmme.pfneds == pvNil)\n    {\n        if (cidNil == cmme.cid)\n            return fFalse;\n        *pgrfeds = fedsEnable;\n    }\n    else if (!(this->*cmme.pfneds)(pcmd, pgrfeds))\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Command dispatcher constructor.\n***************************************************************************/\nCEX::CEX(void)\n{\n    AssertBaseThis(0);\n}\n\n/***************************************************************************\n    Destructor for a CEX.\n***************************************************************************/\nCEX::~CEX(void)\n{\n    AssertBaseThis(0);\n    CMD cmd;\n    long icmd;\n\n    if (pvNil != _pglcmd)\n    {\n        for (icmd = _pglcmd->IvMac(); icmd-- != 0;)\n        {\n            _pglcmd->Get(icmd, &cmd);\n            ReleasePpo(&cmd.pgg);\n        }\n        ReleasePpo(&_pglcmd);\n    }\n\n    ReleasePpo(&_pglcmhe);\n    ReleasePpo(&_pcfl);\n    ReleasePpo(&_pglcmdf);\n    ReleasePpo(&_cmdCur.pgg);\n}\n\n/***************************************************************************\n    Static method to create a new CEX object.\n***************************************************************************/\nPCEX CEX::PcexNew(long ccmdInit, long ccmhInit)\n{\n    AssertIn(ccmdInit, 0, kcbMax);\n    AssertIn(ccmhInit, 0, kcbMax);\n    PCEX pcex;\n\n    if (pvNil == (pcex = NewObj CEX))\n        return pvNil;\n\n    if (!pcex->_FInit(ccmdInit, ccmhInit))\n        ReleasePpo(&pcex);\n\n    AssertNilOrPo(pcex, 0);\n    return pcex;\n}\n\n/***************************************************************************\n    Initialization of the command dispatcher.\n***************************************************************************/\nbool CEX::_FInit(long ccmdInit, long ccmhInit)\n{\n    AssertBaseThis(0);\n    AssertIn(ccmdInit, 0, kcbMax);\n    AssertIn(ccmhInit, 0, kcbMax);\n\n    if (pvNil == (_pglcmd = GL::PglNew(size(CMD), ccmdInit)) || pvNil == (_pglcmhe = GL::PglNew(size(CMHE), ccmhInit)))\n    {\n        return fFalse;\n    }\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Start recording a macro to the given chunky file.\n***************************************************************************/\nvoid CEX::Record(PCFL pcfl)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n\n    if (_rs != rsNormal)\n    {\n        Bug(\"already recording or playing\");\n        return;\n    }\n\n    _rs = rsRecording;\n    _rec = recNil;\n    _pcfl = pcfl;\n    _pcfl->AddRef();\n    _cno = cnoNil;\n    _icmdf = 0;\n    _chidLast = 0;\n    _cact = 0;\n    Assert(_pglcmdf == pvNil, \"why isn't _pglcmdf nil?\");\n\n    if ((_pglcmdf = GL::PglNew(size(CMDF), 100)) == pvNil)\n        _rec = recMemError;\n    else if (!_pcfl->FAdd(0, kctgMacro, &_cno))\n    {\n        _rec = recFileError;\n        _cno = cnoNil;\n    }\n}\n\n/***************************************************************************\n    Stop recording a command stream, and write the command stream to\n    file. If there were any errors, delete the command stream from the\n    chunky file. Pushes a command notifying the world that recording\n    has stopped. The command (cidCexRecordDone) contains the error code\n    (rec), and cno in the first two lw's of the command. If the\n    rec is not recNil, the cno is cnoNil and wasn't actually created.\n***************************************************************************/\nvoid CEX::StopRecording(void)\n{\n    AssertThis(0);\n    BLCK blck;\n\n    if (_rs != rsRecording)\n        return;\n\n    if (_rec == recNil)\n    {\n        long cb;\n\n        if (_cact > 1)\n        {\n            // rewrite the last one's _cact\n            CMDF cmdf;\n\n            _pglcmdf->Get(_icmdf, &cmdf);\n            cmdf.cact = _cact;\n            _pglcmdf->Put(_icmdf, &cmdf);\n        }\n        cb = _pglcmdf->CbOnFile();\n        if (!_pcfl->FPut(cb, kctgMacro, _cno, &blck) || !_pglcmdf->FWrite(&blck))\n        {\n            _rec = recFileError;\n        }\n    }\n\n    if (_rec != recNil && _cno != cnoNil)\n    {\n        _pcfl->Delete(kctgMacro, _cno);\n        _cno = cnoNil;\n    }\n\n    if (_cno != cnoNil)\n    {\n        if (_pcfl->FSave(kctgFramework))\n            _pcfl->SetTemp(fFalse);\n        else\n        {\n            _rec = recFileError;\n            _cno = cnoNil;\n        }\n    }\n    _rs = rsNormal;\n    ReleasePpo(&_pglcmdf);\n    ReleasePpo(&_pcfl);\n\n    PushCid(cidCexRecordDone, pvNil, pvNil, _rec, _cno);\n}\n\n/***************************************************************************\n    Record a command.\n***************************************************************************/\nvoid CEX::RecordCmd(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertPo(pcmd, 0);\n    Assert(_rs == rsRecording, \"not recording\");\n    CMDF cmdf;\n\n    if (_rec != recNil)\n        return;\n\n    if (_cact > 0)\n    {\n        if (_cmd.pgg == pvNil && FEqualRgb(pcmd, &_cmd, size(_cmd)))\n        {\n            // commands are the same, just increment the _cact\n            if (pcmd->cid < cidMinNoRepeat || pcmd->cid >= cidLimNoRepeat)\n                _cact++;\n            return;\n        }\n\n        // new command is not the same as the previous one\n        if (_cact > 1)\n        {\n            // rewrite the previous one's _cact\n            _pglcmdf->Get(_icmdf, &cmdf);\n            cmdf.cact = _cact;\n            _pglcmdf->Put(_icmdf, &cmdf);\n        }\n\n        // increment _icmdf\n        _icmdf++;\n        _cact = 0;\n    }\n\n    // fill in the cmdf and save it in the list\n    cmdf.cid = pcmd->cid;\n    cmdf.hid = pcmd->pcmh == pvNil ? hidNil : pcmd->pcmh->Hid();\n    cmdf.cact = 1;\n    cmdf.chidGg = pcmd->pgg != pvNil ? ++_chidLast : 0;\n    CopyPb(pcmd->rglw, cmdf.rglw, kclwCmd * size(long));\n\n    if (!_pglcmdf->FInsert(_icmdf, &cmdf))\n    {\n        // out of memory\n        _rec = recMemError;\n        return;\n    }\n\n    // write the group and make it a child of the macro\n    if (pvNil != pcmd->pgg)\n    {\n        BLCK blck;\n        long cb;\n        CNO cno;\n\n        cb = pcmd->pgg->CbOnFile();\n        if (!_pcfl->FAddChild(kctgMacro, _cno, cmdf.chidGg, cb, kctgGg, &cno, &blck))\n        {\n            goto LFileError;\n        }\n        if (!pcmd->pgg->FWrite(&blck))\n        {\n            _pcfl->DeleteChild(kctgMacro, _cno, kctgGg, cno, cmdf.chidGg);\n        LFileError:\n            _pglcmdf->Delete(_icmdf);\n            _rec = recFileError;\n            return;\n        }\n    }\n    _cact = 1;\n    _cmd = *pcmd;\n}\n\n/***************************************************************************\n    Play back the command stream starting in the given pcfl with the given\n    cno.\n***************************************************************************/\nvoid CEX::Play(PCFL pcfl, CNO cno)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n    BLCK blck;\n    short bo, osk;\n\n    if (_rs != rsNormal)\n    {\n        Bug(\"already recording or playing\");\n        return;\n    }\n\n    _rs = rsPlaying;\n    _rec = recNil;\n    _pcfl = pcfl;\n    _pcfl->AddRef();\n    _cno = cno;\n    _icmdf = 0;\n    _cact = 0;\n    Assert(_pglcmdf == pvNil, \"why isn't _pglcmdf nil?\");\n\n    if (!_pcfl->FFind(kctgMacro, _cno, &blck) || (_pglcmdf = GL::PglRead(&blck, &bo, &osk)) == pvNil)\n    {\n        _rec = recFileError;\n        StopPlaying();\n    }\n    else if (bo != kboCur || osk != koskCur)\n    {\n        _rec = recWrongPlatform;\n        StopPlaying();\n    }\n}\n\n/***************************************************************************\n    Stop play back of a command stream. Pushes a command notifying the\n    world that play back has stopped. The command (cidCexPlayDone) contains\n    the error code (rec), and cno in the first two lw's of the command.\n***************************************************************************/\nvoid CEX::StopPlaying(void)\n{\n    AssertThis(0);\n\n    if (_rs != rsPlaying)\n        return;\n\n    if (_rec == recNil && (_cact > 0 || _icmdf < _pglcmdf->IvMac()))\n        _rec = recAbort;\n\n    PushCid(cidCexPlayDone, pvNil, pvNil, _rec, _cno);\n\n    _rs = rsNormal;\n    ReleasePpo(&_pcfl);\n    ReleasePpo(&_pglcmdf);\n}\n\n/***************************************************************************\n    Read the next command.\n***************************************************************************/\nbool CEX::_FReadCmd(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    Assert(_rs == rsPlaying, \"not playing a command stream\");\n    AssertPo(_pglcmdf, 0);\n    CMDF cmdf;\n\n    if (_cact > 0)\n    {\n        // this command is being repeated\n        *pcmd = _cmd;\n        _cact--;\n        return fTrue;\n    }\n    if (_icmdf >= _pglcmdf->IvMac())\n        goto LStop;\n\n    _pglcmdf->Get(_icmdf, &cmdf);\n\n    ClearPb(pcmd, size(*pcmd));\n    pcmd->cid = cmdf.cid;\n    pcmd->pcmh = vpappb->PcmhFromHid(cmdf.hid);\n    pcmd->pgg = pvNil;\n    CopyPb(cmdf.rglw, pcmd->rglw, kclwCmd * size(long));\n\n    if (cmdf.chidGg != 0)\n    {\n        BLCK blck;\n        KID kid;\n        short bo, osk;\n\n        Assert(cmdf.cact <= 1, 0);\n\n        // read the gg\n        if (!_pcfl->FGetKidChidCtg(kctgMacro, _cno, cmdf.chidGg, kctgGg, &kid) ||\n            !_pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck) || pvNil == (pcmd->pgg = GG::PggRead(&blck, &bo, &osk)))\n        {\n            _rec = recFileError;\n            goto LStop;\n        }\n        if (bo != kboCur || osk != koskCur)\n        {\n            // don't know how to change byte order or translate strings\n            ReleasePpo(&pcmd->pgg);\n            _rec = recWrongPlatform;\n            goto LStop;\n        }\n    }\n    AssertPo(pcmd, 0);\n\n    _icmdf++;\n    if ((_cact = cmdf.cact - 1) > 0)\n        _cmd = *pcmd;\n    return fTrue;\n\n    // error handling\nLStop:\n    StopPlaying();\n    return fFalse;\n}\n\n/***************************************************************************\n    Determine whether it's OK to communicate with the CMH. Default is to\n    return true iff there is no current modal gob or the cmh is not a gob\n    or it is a gob in the tree of the modal gob.\n***************************************************************************/\nbool CEX::_FCmhOk(PCMH pcmh)\n{\n    AssertNilOrPo(pcmh, 0);\n    PGOB pgob;\n\n    if (pvNil == _pgobModal || pvNil == pcmh || !pcmh->FIs(kclsGOB))\n        return fTrue;\n\n    for (pgob = (PGOB)pcmh; pgob != _pgobModal; pgob = pgob->PgobPar())\n    {\n        if (pvNil == pgob)\n            return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Add a command handler to the filter list. These command handlers get\n    a crack at every command whether or not it is for them. grfcmm\n    determines which targets the handler will see commands for (as in\n    command map entries). The cmhl is a command handler level - indicating\n    the priority of the command handler. Handlers with lower cmhl values\n    get first crack at commands. It is legal for a handler to be in the\n    list more than once (even with the same cmhl value).\n***************************************************************************/\nbool CEX::FAddCmh(PCMH pcmh, long cmhl, ulong grfcmm)\n{\n    AssertThis(0);\n    AssertPo(pcmh, 0);\n    CMHE cmhe;\n    long icmhe;\n\n    if (fcmmNil == (grfcmm & kgrfcmmAll))\n    {\n        // no sense adding this\n        Bug(\"why is grfcmm nil?\");\n        return fFalse;\n    }\n\n    if (!_FCmhOk(pcmh))\n        return fFalse;\n\n    _FFindCmhl(cmhl, &icmhe);\n    cmhe.pcmh = pcmh;\n    cmhe.cmhl = cmhl;\n    cmhe.grfcmm = grfcmm;\n    if (!_pglcmhe->FInsert(icmhe, &cmhe))\n        return fFalse;\n    if (icmhe <= _icmheNext)\n        _icmheNext++;\n    return fTrue;\n}\n\n/***************************************************************************\n    Removes the the handler (at the given cmhl level) from the handler list.\n***************************************************************************/\nvoid CEX::RemoveCmh(PCMH pcmh, long cmhl)\n{\n    AssertThis(0);\n    AssertPo(pcmh, 0);\n    long icmhe, ccmhe;\n    CMHE cmhe;\n\n    if (!_FFindCmhl(cmhl, &icmhe))\n        return;\n\n    for (ccmhe = _pglcmhe->IvMac(); icmhe < ccmhe; icmhe++)\n    {\n        _pglcmhe->Get(icmhe, &cmhe);\n        if (cmhe.cmhl != cmhl)\n            break;\n        if (cmhe.pcmh == pcmh)\n        {\n            _pglcmhe->Delete(icmhe);\n            if (icmhe < _icmheNext)\n                _icmheNext--;\n            break;\n        }\n    }\n}\n\n/***************************************************************************\n    Remove all references to the handler from the command dispatcher,\n    including from the handler list and the command queue.\n***************************************************************************/\nvoid CEX::BuryCmh(PCMH pcmh)\n{\n    AssertThis(0);\n    Assert(pcmh != pvNil, 0);\n    long icmhe, icmd;\n    CMHE cmhe;\n    CMD cmd;\n\n    if (_pgobModal == pcmh)\n        _pgobModal = pvNil;\n\n    if (_pgobTrack == pcmh)\n    {\n#ifdef WIN\n        if (hNil != _hwndCapture && GetCapture() == _hwndCapture)\n            ReleaseCapture();\n        _hwndCapture = hNil;\n#endif // WIN\n        _pgobTrack = pvNil;\n    }\n    if (_cmdCur.pcmh == pcmh)\n        _cmdCur.pcmh = pvNil;\n    if (_cmd.pcmh == pcmh)\n    {\n        _cmd.pcmh = pvNil;\n        _cact = 0;\n    }\n\n    for (icmhe = _pglcmhe->IvMac(); icmhe-- != 0;)\n    {\n        _pglcmhe->Get(icmhe, &cmhe);\n        if (cmhe.pcmh == pcmh)\n        {\n            _pglcmhe->Delete(icmhe);\n            if (icmhe < _icmheNext)\n                _icmheNext--;\n        }\n    }\n\n    for (icmd = _pglcmd->IvMac(); icmd-- != 0;)\n    {\n        _pglcmd->Get(icmd, &cmd);\n        if (cmd.pcmh == pcmh)\n        {\n            _pglcmd->Delete(icmd);\n            ReleasePpo(&cmd.pgg);\n        }\n    }\n}\n\n/***************************************************************************\n    Finds the first item with the given cmhl in the handler list. If there\n    aren't any, still sets *picmhe to where they would be.\n***************************************************************************/\nbool CEX::_FFindCmhl(long cmhl, long *picmhe)\n{\n    AssertThis(0);\n    AssertVarMem(picmhe);\n    long icmhe, icmheMin, icmheLim;\n    CMHE *qrgcmhe;\n\n    qrgcmhe = (CMHE *)_pglcmhe->QvGet(0);\n    for (icmheMin = 0, icmheLim = _pglcmhe->IvMac(); icmheMin < icmheLim;)\n    {\n        icmhe = (icmheMin + icmheLim) / 2;\n        if (qrgcmhe[icmhe].cmhl < cmhl)\n            icmheMin = icmhe + 1;\n        else\n            icmheLim = icmhe;\n    }\n\n    *picmhe = icmheMin;\n    return icmheMin < _pglcmhe->IvMac() && qrgcmhe[icmheMin].cmhl == cmhl;\n}\n\n/***************************************************************************\n    Adds a command to the tail of the queue.\n***************************************************************************/\nvoid CEX::EnqueueCid(long cid, PCMH pcmh, PGG pgg, long lw0, long lw1, long lw2, long lw3)\n{\n    Assert(cid != cidNil, 0);\n    AssertNilOrPo(pcmh, 0);\n    AssertNilOrPo(pgg, 0);\n    CMD cmd;\n\n    cmd.cid = cid;\n    cmd.pcmh = pcmh;\n    cmd.pgg = pgg;\n    cmd.rglw[0] = lw0;\n    cmd.rglw[1] = lw1;\n    cmd.rglw[2] = lw2;\n    cmd.rglw[3] = lw3;\n    EnqueueCmd(&cmd);\n}\n\n/***************************************************************************\n    Pushes a command onto the head of the queue.\n***************************************************************************/\nvoid CEX::PushCid(long cid, PCMH pcmh, PGG pgg, long lw0, long lw1, long lw2, long lw3)\n{\n    Assert(cid != cidNil, 0);\n    AssertNilOrPo(pcmh, 0);\n    AssertNilOrPo(pgg, 0);\n    CMD cmd;\n\n    cmd.cid = cid;\n    cmd.pcmh = pcmh;\n    cmd.pgg = pgg;\n    cmd.rglw[0] = lw0;\n    cmd.rglw[1] = lw1;\n    cmd.rglw[2] = lw2;\n    cmd.rglw[3] = lw3;\n    PushCmd(&cmd);\n}\n\n/***************************************************************************\n    Adds a command to the tail of the queue. This asserts if it can't add\n    it to the queue. Clients should make sure that the value of ccmdInit\n    passed to PcexNew is large enough to handle the busiest session.\n***************************************************************************/\nvoid CEX::EnqueueCmd(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertPo(pcmd, 0);\n    Assert(pcmd->cid != cidNil, \"why enqueue a nil command?\");\n\n    if (!_pglcmd->FEnqueue(pcmd))\n    {\n        Bug(\"event queue not big enough\");\n        ReleasePpo(&pcmd->pgg);\n    }\n#ifdef DEBUG\n    if (_ccmdMax < _pglcmd->IvMac())\n        _ccmdMax = _pglcmd->IvMac();\n#endif // DEBUG\n}\n\n/***************************************************************************\n    Pushes a command onto the head of the queue. This asserts if it can't\n    add it to the queue. Clients should make sure that the value of ccmdInit\n    passed to PcexNew is large enough to handle the busiest session.\n***************************************************************************/\nvoid CEX::PushCmd(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertPo(pcmd, 0);\n    Assert(pcmd->cid != cidNil, \"why enqueue a nil command?\");\n\n    if (!_pglcmd->FPush(pcmd))\n    {\n        Bug(\"event queue not big enough\");\n        ReleasePpo(&pcmd->pgg);\n    }\n#ifdef DEBUG\n    if (_ccmdMax < _pglcmd->IvMac())\n        _ccmdMax = _pglcmd->IvMac();\n#endif // DEBUG\n}\n\n/***************************************************************************\n    Checks if a cid is in the queue.\n***************************************************************************/\nbool CEX::FCidIn(long cid)\n{\n    AssertThis(0);\n    Assert(cid != cidNil, \"why check for a nil command?\");\n\n    long icmd;\n    CMD cmd;\n\n    for (icmd = _pglcmd->IvMac(); icmd-- > 0;)\n    {\n        _pglcmd->Get(icmd, &cmd);\n        if (cmd.cid == cid)\n            return fTrue;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Flushes all instances of a cid in the queue.\n***************************************************************************/\nvoid CEX::FlushCid(long cid)\n{\n    AssertThis(0);\n    Assert(cid != cidNil, \"why flush a nil command?\");\n\n    long icmd;\n    CMD cmd;\n\n    for (icmd = _pglcmd->IvMac(); icmd-- > 0;)\n    {\n        _pglcmd->Get(icmd, &cmd);\n        if (cmd.cid == cid)\n        {\n            _pglcmd->Delete(icmd);\n            ReleasePpo(&cmd.pgg);\n        }\n    }\n}\n\n/***************************************************************************\n    Get the next command to be dispatched (put it in _cmdCur). Return tYes\n    if there was a command and it should be dispatched. Return tNo if there\n    wasn't a command (if the system queue should be checked). Return tMaybe\n    if the command shouldn't be dispatched, but we shouldn't check the\n    system queue.\n***************************************************************************/\ntribool CEX::_TGetNextCmd(void)\n{\n    AssertThis(0);\n\n    // get the next command from the command stream\n    if (!_pglcmd->FPop(&_cmdCur))\n    {\n        ClearPb(&_cmdCur, size(_cmdCur));\n        if (pvNil == _pgobTrack)\n            return tNo;\n\n        AssertPo(_pgobTrack, 0);\n        PT pt;\n        PCMD_MOUSE pcmd = (PCMD_MOUSE)&_cmdCur;\n\n        _cmdCur.pcmh = _pgobTrack;\n        _cmdCur.cid = cidTrackMouse;\n        vpappb->TrackMouse(_pgobTrack, &pt);\n        pcmd->xp = pt.xp;\n        pcmd->yp = pt.yp;\n        pcmd->grfcust = vpappb->GrfcustCur();\n\n        if (!vpappb->FForeground())\n        {\n            // if we're not in the foreground, toggle the state of\n            // fcustMouse repeatedly. Most of the time, this will cause\n            // the client to stop tracking the mouse. Clients\n            // whose tracking state depends on something other than\n            // the mouse state should call vpappb->FForeground() to\n            // determine if tracking should be aborted.\n            static bool _fDown;\n\n            _fDown = !_fDown;\n            if (!_fDown)\n                pcmd->grfcust ^= fcustMouse;\n            else\n                pcmd->grfcust &= ~fcustMouse;\n        }\n    }\n    AssertPo(&_cmdCur, 0);\n\n    // handle playing and recording\n    if (rsPlaying == _rs)\n    {\n        // We're playing back. Throw away the incoming command and play\n        // one from the stream.\n        ReleasePpo(&_cmdCur.pgg);\n\n        // let a cidCexStopPlay go through and handle it at the end.\n        // this is so a cmh can intercept it.\n        if (_cmdCur.cid != cidCexStopPlay && !_FReadCmd(&_cmdCur))\n            return tMaybe;\n    }\n\n    if (!_FCmhOk(_cmdCur.pcmh))\n    {\n        vpappb->BadModalCmd(&_cmdCur);\n        ReleasePpo(&_cmdCur.pgg);\n        return tMaybe;\n    }\n\n    return tYes;\n}\n\n/***************************************************************************\n    Send the command (_cmdCur) to the given command handler.\n***************************************************************************/\nbool CEX::_FSendCmd(PCMH pcmh)\n{\n    AssertPo(pcmh, 0);\n\n    if (!_FCmhOk(pcmh))\n        return fFalse;\n\n    return pcmh->FDoCmd(&_cmdCur);\n}\n\n/***************************************************************************\n    Handle post processing on the command - record it if we're recording,\n    free the pgg, etc.\n***************************************************************************/\nvoid CEX::_CleanUpCmd(void)\n{\n    // If the handler went away during command dispatching, we should\n    // have heard about it (via BuryCmh) and should have set _cmdCur.pcmh\n    // to nil.\n    AssertNilOrPo(_cmdCur.pcmh, 0);\n\n    // record the command after dispatching, in case arguments got added\n    // or the cid was set to nil.\n    if (rsRecording == _rs && !FIn(_cmdCur.cid, cidMinNoRecord, cidLimNoRecord) && cidNil != _cmdCur.cid &&\n        cidCexStopRec != _cmdCur.cid)\n    {\n        RecordCmd(&_cmdCur);\n    }\n\n    // check for a stop record or stop play command\n    if (rsNormal != _rs)\n    {\n        if (cidCexStopPlay == _cmdCur.cid && rsPlaying == _rs)\n            StopPlaying();\n        else if (cidCexStopRec == _cmdCur.cid && rsRecording == _rs)\n            StopRecording();\n    }\n\n    ReleasePpo(&_cmdCur.pgg);\n}\n\n/***************************************************************************\n    If there is a command in the queue, this dispatches it and returns\n    true. If there aren't any commands in the queue, it simply returns\n    false. If a gob is tracking the mouse and the queue is empty, a\n    cidTrackMouse command is generated and dispatched to the gob.\n\n    NOTE: care has to be taken here because a CMH may go away while\n    dispatching the command. That's why _cmdCur and _icmheNext are\n    member variables - so BuryCmh can adjust them if needed.\n***************************************************************************/\nbool CEX::FDispatchNextCmd(void)\n{\n    AssertThis(0);\n    CMHE cmhe;\n    bool fHandled;\n    bool tRet;\n\n    if (_fDispatching)\n    {\n        Bug(\"recursing into FDispatchNextCmd!\");\n        return fFalse;\n    }\n    _fDispatching = fTrue;\n\n    tRet = _TGetNextCmd();\n    if (tYes != tRet)\n    {\n        _fDispatching = fFalse;\n        return tRet != tNo;\n    }\n\n    // pipe it through the command handlers, then to the target\n    fHandled = fFalse;\n    for (_icmheNext = 0; _icmheNext < _pglcmhe->IvMac() && !fHandled;)\n    {\n        _pglcmhe->Get(_icmheNext++, &cmhe);\n        if (pvNil == _cmdCur.pcmh)\n        {\n            if (!(cmhe.grfcmm & fcmmNobody))\n                continue;\n        }\n        else if (cmhe.pcmh == _cmdCur.pcmh)\n        {\n            if (!(cmhe.grfcmm & fcmmThis))\n                continue;\n        }\n        else if (!(cmhe.grfcmm & fcmmOthers))\n            continue;\n\n        fHandled = _FSendCmd(cmhe.pcmh);\n    }\n\n    if (!fHandled && pvNil != _cmdCur.pcmh)\n    {\n        AssertPo(_cmdCur.pcmh, 0);\n        fHandled = _FSendCmd(_cmdCur.pcmh);\n    }\n\n    _CleanUpCmd();\n\n    _fDispatching = fFalse;\n    return fTrue;\n}\n\n/***************************************************************************\n    Give the handler a crack at enabling/disabling the command.\n***************************************************************************/\nbool CEX::_FEnableCmd(PCMH pcmh, PCMD pcmd, ulong *pgrfeds)\n{\n    AssertPo(pcmh, 0);\n    AssertPo(pcmd, 0);\n    AssertVarMem(pgrfeds);\n\n    if (!_FCmhOk(pcmh))\n        return fFalse;\n\n    return pcmh->FEnableCmd(pcmd, pgrfeds);\n}\n\n/***************************************************************************\n    Determines whether the given command is currently enabled. This is\n    normally used for menu graying/checking etc and toolbar enabling/status.\n***************************************************************************/\nulong CEX::GrfedsForCmd(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertPo(pcmd, 0);\n    long icmhe, ccmhe;\n    CMHE cmhe;\n    ulong grfeds;\n\n    // pipe it through the command handlers, then to the target\n    for (icmhe = 0, ccmhe = _pglcmhe->IvMac(); icmhe < ccmhe; icmhe++)\n    {\n        _pglcmhe->Get(icmhe, &cmhe);\n        grfeds = fedsNil;\n        if (_FEnableCmd(cmhe.pcmh, pcmd, &grfeds))\n            goto LDone;\n    }\n    if (pcmd->pcmh != pvNil)\n    {\n        AssertPo(pcmd->pcmh, 0);\n        grfeds = fedsNil;\n        if (_FEnableCmd(pcmd->pcmh, pcmd, &grfeds))\n            goto LDone;\n    }\n\n    // handle the CEX commands\n    switch (pcmd->cid)\n    {\n    case cidCexStopRec:\n        grfeds = rsRecording == _rs ? fedsEnable : fedsDisable;\n        break;\n\n    case cidCexStopPlay:\n        grfeds = rsPlaying == _rs ? fedsEnable : fedsDisable;\n        break;\n\n    default:\n        grfeds = fedsDisable;\n        break;\n    }\n\nLDone:\n    return grfeds;\n}\n\n/***************************************************************************\n    Determines whether the given command is currently enabled. This is\n    normally used for menu graying/checking etc and toolbar enabling/status.\n***************************************************************************/\nulong CEX::GrfedsForCid(long cid, PCMH pcmh, PGG pgg, long lw0, long lw1, long lw2, long lw3)\n{\n    AssertThis(0);\n    Assert(cid != cidNil, 0);\n    AssertNilOrPo(pcmh, 0);\n    AssertNilOrPo(pgg, 0);\n    CMD cmd;\n\n    cmd.cid = cid;\n    cmd.pcmh = pcmh;\n    cmd.pgg = pgg;\n    cmd.rglw[0] = lw0;\n    cmd.rglw[1] = lw1;\n    cmd.rglw[2] = lw2;\n    cmd.rglw[3] = lw3;\n    return GrfedsForCmd(&cmd);\n}\n\n/***************************************************************************\n    See if the next command is a key command and if so, put it in *pcmd\n    (and remove it from the queue).\n***************************************************************************/\nbool CEX::FGetNextKey(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    long iv;\n\n    if (_rs != rsNormal)\n        goto LFail;\n    if ((iv = _pglcmd->IvMac()) > 0)\n    {\n        // get next cmd\n        _pglcmd->Get(iv - 1, pcmd);\n        if (pcmd->cid == cidKey)\n        {\n            AssertDo(_pglcmd->FPop(pvNil), 0);\n            return fTrue;\n        }\n    LFail:\n        TrashVar(pcmd);\n        return fFalse;\n    }\n\n    return vpappb->FGetNextKeyFromOsQueue((PCMD_KEY)pcmd);\n}\n\n/***************************************************************************\n    The given GOB wants to track the mouse.\n***************************************************************************/\nvoid CEX::TrackMouse(PGOB pgob)\n{\n    AssertThis(0);\n    AssertPo(pgob, 0);\n    Assert(_pgobTrack == pvNil, \"some other gob is already tracking the mouse\");\n\n    _pgobTrack = pgob;\n#ifdef WIN\n    _hwndCapture = pgob->HwndContainer();\n    SetCapture(_hwndCapture);\n#endif // WIN\n}\n\n/***************************************************************************\n    Stop tracking the mouse.\n***************************************************************************/\nvoid CEX::EndMouseTracking(void)\n{\n    AssertThis(0);\n\n#ifdef WIN\n    if (pvNil != _pgobTrack)\n    {\n        if (hNil != _hwndCapture && GetCapture() == _hwndCapture)\n            ReleaseCapture();\n        _hwndCapture = hNil;\n    }\n#endif // WIN\n    _pgobTrack = pvNil;\n}\n\n/***************************************************************************\n    Return the gob that is tracking the mouse.\n***************************************************************************/\nPGOB CEX::PgobTracking(void)\n{\n    AssertThis(0);\n    return _pgobTrack;\n}\n\n/***************************************************************************\n    Suspend or resume the command dispatcher. All this does is\n    release (capture) the mouse if we're current tracking the mouse and\n    we're being suspended (resumed).\n***************************************************************************/\nvoid CEX::Suspend(bool fSuspend)\n{\n    AssertThis(0);\n\n#ifdef WIN\n    if (pvNil == _pgobTrack || hNil == _hwndCapture)\n        return;\n\n    if (fSuspend && GetCapture() == _hwndCapture)\n        ReleaseCapture();\n    else if (!fSuspend && GetCapture() != _hwndCapture)\n        SetCapture(_hwndCapture);\n#endif // WIN\n}\n\n/***************************************************************************\n    Set the modal GOB.\n***************************************************************************/\nvoid CEX::SetModalGob(PGOB pgob)\n{\n    AssertThis(0);\n    AssertNilOrPo(pgob, 0);\n\n    _pgobModal = pgob;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the command dispatcher\n***************************************************************************/\nvoid CEX::AssertValid(ulong grf)\n{\n    CEX_PAR::AssertValid(fobjAllocated);\n    AssertPo(_pglcmhe, 0);\n    AssertPo(_pglcmd, 0);\n    AssertNilOrPo(_pglcmdf, 0);\n    AssertNilOrPo(_pcfl, 0);\n    AssertNilOrPo(_cmdCur.pgg, 0);\n}\n\n/***************************************************************************\n    Mark the memory associated with the command dispatcher.\n***************************************************************************/\nvoid CEX::MarkMem(void)\n{\n    AssertThis(0);\n    CMD cmd;\n    long icmd;\n\n    CEX_PAR::MarkMem();\n    MarkMemObj(_pglcmhe);\n    MarkMemObj(_pglcmd);\n    MarkMemObj(_pglcmdf);\n    MarkMemObj(_cmdCur.pgg);\n\n    for (icmd = _pglcmd->IvMac(); icmd-- != 0;)\n    {\n        _pglcmd->Get(icmd, &cmd);\n        if (cmd.pgg != pvNil)\n            MarkMemObj(cmd.pgg);\n    }\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/cmd.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Command execution.  Manages the command filter list and dispatching\n    commands to command handlers.\n\n***************************************************************************/\n#ifndef CMD_H\n#define CMD_H\n\n/***************************************************************************\n    Command id, options and command struct\n***************************************************************************/\n\n// command handler forward declaration\nclass CMH;\ntypedef CMH *PCMH;\n\n// command enable-disable status flags\nenum\n{\n    fedsNil = 0,\n    fedsDisable = 1,\n    fedsEnable = 2,\n    fedsUncheck = 4,\n    fedsCheck = 8,\n    fedsBullet = 16\n};\nconst ulong kgrfedsMark = fedsUncheck | fedsCheck | fedsBullet;\n\n// command\n#define kclwCmd 4 // if this ever changes, change the CMD_TYPE macro also\nstruct CMD\n{\n    ASSERT\n\n    PCMH pcmh;          // the target of the command - may be nil\n    long cid;           // the command id\n    PGG pgg;            // additional parameters for the command\n    long rglw[kclwCmd]; // standard parameters\n};\ntypedef CMD *PCMD;\n\n// command on file - for saving recorded macros\nstruct CMDF\n{\n    long cid;\n    long hid;\n    long cact;\n    CHID chidGg; // child id of the pgg, 0 if none\n    long rglw[kclwCmd];\n};\n\n/***************************************************************************\n    Custom command types\n***************************************************************************/\n// used to define a new CMD structure.  Needs a trailing semicolon.\n#define CMD_TYPE(foo, a, b, c, d)                                                                                      \\\n    struct CMD_##foo                                                                                                   \\\n    {                                                                                                                  \\\n        PCMH pcmh;                                                                                                     \\\n        long cid;                                                                                                      \\\n        PGG pgg;                                                                                                       \\\n        long a, b, c, d;                                                                                               \\\n    };                                                                                                                 \\\n    typedef CMD_##foo *PCMD_##foo\n\nCMD_TYPE(KEY, ch, vk, grfcust, cact);   // defines CMD_KEY and PCMD_KEY\nCMD_TYPE(BADKEY, ch, vk, grfcust, hid); // defines CMD_BADKEY and PCMD_BADKEY\nCMD_TYPE(MOUSE, xp, yp, grfcust, cact); // defines CMD_MOUSE and PCMD_MOUSE\n\n/***************************************************************************\n    Command Map stuff.  To attach a command map to a subclass of CMH,\n    put a CMD_MAP_DEC(cls) in the definition of the class.  Then in the\n    .cpp file, use BEGIN_CMD_MAP, ON_CID and END_CMD_MAP to define the\n    command map.  This architecture was borrowed from MFC.\n***************************************************************************/\nenum\n{\n    fcmmNil = 0,\n    fcmmThis = 1,\n    fcmmNobody = 2,\n    fcmmOthers = 4,\n};\nconst ulong kgrfcmmAll = fcmmThis | fcmmNobody | fcmmOthers;\n\n// for including a command map in this class\n#define CMD_MAP_DEC(cls)                                                                                               \\\n  private:                                                                                                             \\\n    static CMME _rgcmme##cls[];                                                                                        \\\n                                                                                                                       \\\n  protected:                                                                                                           \\\n    static CMM _cmm##cls;                                                                                              \\\n    virtual CMM *Pcmm(void)                                                                                            \\\n    {                                                                                                                  \\\n        return &_cmm##cls;                                                                                             \\\n    }\n\n// for defining the command map in a .cpp file\n#define BEGIN_CMD_MAP_BASE(cls)                                                                                        \\\n    cls::CMM cls::_cmm##cls = {pvNil, cls::_rgcmme##cls};                                                              \\\n    cls::CMME cls::_rgcmme##cls[] = {\n#define BEGIN_CMD_MAP(cls, clsBase)                                                                                    \\\n    cls::CMM cls::_cmm##cls = {&(clsBase::_cmm##clsBase), cls::_rgcmme##cls};                                          \\\n    cls::CMME cls::_rgcmme##cls[] = {\n\n#define ON_CID(cid, pfncmd, pfneds, grfcmm) {cid, (PFNCMD)pfncmd, (PFNEDS)pfneds, grfcmm},\n#define ON_CID_ME(cid, pfncmd, pfneds) {cid, (PFNCMD)pfncmd, (PFNEDS)pfneds, fcmmThis},\n#define ON_CID_GEN(cid, pfncmd, pfneds) {cid, (PFNCMD)pfncmd, (PFNEDS)pfneds, fcmmThis | fcmmNobody},\n#define ON_CID_ALL(cid, pfncmd, pfneds) {cid, (PFNCMD)pfncmd, (PFNEDS)pfneds, kgrfcmmAll},\n\n#define END_CMD_MAP(pfncmdDef, pfnedsDef, grfcmm)                                                                      \\\n    {                                                                                                                  \\\n        cidNil, (PFNCMD)pfncmdDef, (PFNEDS)pfnedsDef, grfcmm                                                           \\\n    }                                                                                                                  \\\n    }                                                                                                                  \\\n    ;\n#define END_CMD_MAP_NIL()                                                                                              \\\n    {                                                                                                                  \\\n        cidNil, pvNil, pvNil, fcmmNil                                                                                  \\\n    }                                                                                                                  \\\n    }                                                                                                                  \\\n    ;\n\n/***************************************************************************\n    Command handler class\n***************************************************************************/\n#define CMH_PAR BASE\n#define kclsCMH 'CMH'\nclass CMH : public CMH_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  private:\n    static long _hidLast; // for HidUnique\n    long _hid;            // handler id\n\n  protected:\n    // command function\n    typedef bool (CMH::*PFNCMD)(PCMD pcmd);\n\n    // command enabler function\n    typedef bool (CMH::*PFNEDS)(PCMD pcmd, ulong *pgrfeds);\n\n    // command map entry\n    struct CMME\n    {\n        long cid;\n        PFNCMD pfncmd;\n        PFNEDS pfneds;\n        ulong grfcmm;\n    };\n\n    // command map\n    struct CMM\n    {\n        CMM *pcmmBase;\n        CMME *prgcmme;\n    };\n\n    CMD_MAP_DEC(CMH)\n\n  protected:\n    virtual bool _FGetCmme(long cid, ulong grfcmmWanted, CMME *pcmme);\n\n  public:\n    CMH(long hid);\n    ~CMH(void);\n\n    // return indicates whether the command was handled, not success\n    virtual bool FDoCmd(PCMD pcmd);\n    virtual bool FEnableCmd(PCMD pcmd, ulong *pgrfeds);\n\n    long Hid(void)\n    {\n        return _hid;\n    }\n\n    static long HidUnique(long ccmh = 1);\n};\n\n/***************************************************************************\n    Command execution manager (dispatcher)\n***************************************************************************/\n// command stream recording error codes.\nenum\n{\n    recNil,\n    recFileError,\n    recMemError,\n    recWrongPlatform,\n    recAbort,\n    recLim\n};\n\ntypedef class CEX *PCEX;\n#define CEX_PAR BASE\n#define kclsCEX 'CEX'\nclass CEX : public CEX_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    NOCOPY(CEX)\n\n  protected:\n    // an entry in the command handler list\n    struct CMHE\n    {\n        PCMH pcmh;\n        long cmhl;\n        ulong grfcmm;\n    };\n\n    // command recording/playback state\n    enum\n    {\n        rsNormal,\n        rsRecording,\n        rsPlaying,\n        rsLim\n    };\n\n    // recording and playback\n    long _rs;       // recording/playback state\n    long _rec;      // recording/playback errors\n    PCFL _pcfl;     // the file we are recording to or playing from\n    PGL _pglcmdf;   // the command stream\n    CNO _cno;       // which macro is being played\n    long _icmdf;    // current command for recording or playback\n    CHID _chidLast; // last chid used for recording\n    long _cact;     // number of times on this command\n    CMD _cmd;       // previous command recorded or played\n\n    // dispatching\n    CMD _cmdCur;     // command being dispatched\n    long _icmheNext; // next command handler to dispatch to\n    PGOB _pgobTrack; // the gob that is tracking the mouse\n#ifdef WIN\n    HWND _hwndCapture; // the hwnd that we captured the mouse with\n#endif                 // WIN\n\n    // filter list and command queue\n    PGL _pglcmhe;       // the command filter list\n    PGL _pglcmd;        // the command queue\n    bool _fDispatching; // whether we're currently in FDispatchNextCmd\n\n    // Modal filtering\n    PGOB _pgobModal;\n\n#ifdef DEBUG\n    long _ccmdMax; // running max\n#endif             // DEBUG\n\n    CEX(void);\n\n    virtual bool _FInit(long ccmdInit, long ccmhInit);\n    virtual bool _FFindCmhl(long cmhl, long *picmhe);\n\n    virtual bool _FCmhOk(PCMH pcmh);\n    virtual tribool _TGetNextCmd(void);\n    virtual bool _FSendCmd(PCMH pcmh);\n    virtual void _CleanUpCmd(void);\n    virtual bool _FEnableCmd(PCMH pcmh, PCMD pcmd, ulong *pgrfeds);\n\n    // command recording and playback\n    bool _FReadCmd(PCMD pcmd);\n\n  public:\n    static PCEX PcexNew(long ccmdInit, long ccmhInit);\n    ~CEX(void);\n\n    // recording and play back\n    bool FRecording(void)\n    {\n        return _rs == rsRecording;\n    }\n    bool FPlaying(void)\n    {\n        return _rs == rsPlaying;\n    }\n    void Record(PCFL pcfl);\n    void Play(PCFL pcfl, CNO cno);\n    void StopRecording(void);\n    void StopPlaying(void);\n\n    void RecordCmd(PCMD pcmd);\n\n    // managing the filter list\n    virtual bool FAddCmh(PCMH pcmh, long cmhl, ulong grfcmm = fcmmNobody);\n    virtual void RemoveCmh(PCMH pcmh, long cmhl);\n    virtual void BuryCmh(PCMH pcmh);\n\n    // queueing and dispatching\n    virtual void EnqueueCmd(PCMD pcmd);\n    virtual void PushCmd(PCMD pcmd);\n    virtual void EnqueueCid(long cid, PCMH pcmh = pvNil, PGG pgg = pvNil, long lw0 = 0, long lw1 = 0, long lw2 = 0,\n                            long lw3 = 0);\n    virtual void PushCid(long cid, PCMH pcmh = pvNil, PGG pgg = pvNil, long lw0 = 0, long lw1 = 0, long lw2 = 0,\n                         long lw3 = 0);\n    virtual bool FDispatchNextCmd(void);\n    virtual bool FGetNextKey(PCMD pcmd);\n    virtual bool FCidIn(long cid);\n    virtual void FlushCid(long cid);\n\n    // menu marking\n    virtual ulong GrfedsForCmd(PCMD pcmd);\n    virtual ulong GrfedsForCid(long cid, PCMH pcmh = pvNil, PGG pgg = pvNil, long lw0 = 0, long lw1 = 0, long lw2 = 0,\n                               long lw3 = 0);\n\n    // mouse tracking\n    virtual void TrackMouse(PGOB pgob);\n    virtual void EndMouseTracking(void);\n    virtual PGOB PgobTracking(void);\n\n    virtual void Suspend(bool fSuspend = fTrue);\n    virtual void SetModalGob(PGOB pgob);\n};\n\n#endif //! CMD_H\n"
  },
  {
    "path": "kauai/src/codec.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Codec manager class.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\nRTCLASS(CODM)\nRTCLASS(CODC)\n\n/***************************************************************************\n    The header on a compressed block consists of the cfmt (a long in big\n    endian order) and the decompressed length (a long in big endian order).\n***************************************************************************/\nconst long kcbCodecHeader = 2 * size(long);\n\n/***************************************************************************\n    Constructor for the compression manager. pcodc is an optional default\n    codec. cfmt is the default compression format.\n***************************************************************************/\nCODM::CODM(PCODC pcodc, long cfmt)\n{\n    AssertNilOrPo(pcodc, 0);\n    Assert(cfmtNil != cfmt, \"nil default compression format\");\n\n    _cfmtDef = cfmt;\n    _pcodcDef = pcodc;\n    if (pvNil != _pcodcDef)\n        _pcodcDef->AddRef();\n    _pglpcodc = pvNil;\n\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for the compression manager.\n***************************************************************************/\nCODM::~CODM(void)\n{\n    AssertThis(0);\n\n    ReleasePpo(&_pcodcDef);\n    if (pvNil != _pglpcodc)\n    {\n        long ipcodc;\n        PCODC pcodc;\n\n        for (ipcodc = _pglpcodc->IvMac(); ipcodc-- > 0;)\n        {\n            _pglpcodc->Get(ipcodc, &pcodc);\n            ReleasePpo(&pcodc);\n        }\n        ReleasePpo(&_pglpcodc);\n    }\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a CODM.\n***************************************************************************/\nvoid CODM::AssertValid(ulong grf)\n{\n    CODM_PAR::AssertValid(0);\n    Assert(cfmtNil != _cfmtDef, \"nil default compression\");\n    AssertNilOrPo(_pcodcDef, 0);\n    AssertNilOrPo(_pglpcodc, 0);\n}\n\n/***************************************************************************\n    Mark memory for the CODM.\n***************************************************************************/\nvoid CODM::MarkMem(void)\n{\n    AssertValid(0);\n    CODM_PAR::MarkMem();\n\n    MarkMemObj(_pcodcDef);\n    if (pvNil != _pglpcodc)\n    {\n        long ipcodc;\n        PCODC pcodc;\n\n        for (ipcodc = _pglpcodc->IvMac(); ipcodc-- > 0;)\n        {\n            _pglpcodc->Get(ipcodc, &pcodc);\n            MarkMemObj(pcodc);\n        }\n        MarkMemObj(_pglpcodc);\n    }\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Set the default compression type.\n***************************************************************************/\nvoid CODM::SetCfmtDefault(long cfmt)\n{\n    AssertThis(0);\n\n    if (cfmt == cfmtNil)\n    {\n        Bug(\"can't set default compression to nil\");\n        return;\n    }\n\n    _cfmtDef = cfmt;\n}\n\n/***************************************************************************\n    Add a codec to the compression manager.\n***************************************************************************/\nbool CODM::FRegisterCodec(PCODC pcodc)\n{\n    AssertThis(0);\n    AssertPo(pcodc, 0);\n\n    if (pvNil == _pglpcodc && pvNil == (_pglpcodc = GL::PglNew(size(PCODC))))\n        return fFalse;\n\n    if (!_pglpcodc->FAdd(&pcodc))\n        return fFalse;\n\n    pcodc->AddRef();\n    return fTrue;\n}\n\n/***************************************************************************\n    Return whether we can encode or decode the given format.\n***************************************************************************/\nbool CODM::FCanDo(long cfmt, bool fEncode)\n{\n    AssertThis(0);\n    PCODC pcodc;\n\n    if (cfmtNil == cfmt)\n        return fFalse;\n\n    return _FFindCodec(fEncode, cfmt, &pcodc);\n}\n\n/***************************************************************************\n    Gets the type of compression used on the block (assuming it is\n    compressed).\n***************************************************************************/\nbool CODM::FGetCfmtFromBlck(PBLCK pblck, long *pcfmt)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n    AssertVarMem(pcfmt);\n\n    byte rgb[4];\n\n    TrashVar(pcfmt);\n    if (pblck->Cb(fTrue) < 2 * size(rgb))\n        return fFalse;\n\n    if (!pblck->FReadRgb(rgb, size(rgb), 0, fTrue))\n        return fFalse;\n\n    *pcfmt = LwFromBytes(rgb[0], rgb[1], rgb[2], rgb[3]);\n    return fTrue;\n}\n\n/***************************************************************************\n    Look for a codec that can handle the given format.\n***************************************************************************/\nbool CODM::_FFindCodec(bool fEncode, long cfmt, PCODC *ppcodc)\n{\n    AssertThis(0);\n    AssertVarMem(ppcodc);\n    Assert(cfmtNil != cfmt, \"nil cfmt\");\n\n    if (pvNil != _pcodcDef && _pcodcDef->FCanDo(fEncode, cfmt))\n    {\n        *ppcodc = _pcodcDef;\n        return fTrue;\n    }\n\n    if (pvNil != _pglpcodc)\n    {\n        long ipcodc;\n        PCODC pcodc;\n\n        for (ipcodc = _pglpcodc->IvMac(); ipcodc-- > 0;)\n        {\n            _pglpcodc->Get(ipcodc, &pcodc);\n            if (pcodc->FCanDo(fEncode, cfmt))\n            {\n                *ppcodc = pcodc;\n                return fTrue;\n            }\n        }\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Compress or decompress an hq of data. Note that the value of *phq\n    may change. cfmt should be cfmtNil to decompress.\n***************************************************************************/\nbool CODM::_FCodePhq(long cfmt, HQ *phq)\n{\n    AssertThis(0);\n    AssertVarMem(phq);\n    AssertHq(*phq);\n\n    HQ hqDst;\n    void *pvSrc;\n    long cbSrc;\n    long cbDst;\n    bool fRet;\n\n    pvSrc = PvLockHq(*phq);\n    cbSrc = CbOfHq(*phq);\n    fRet = _FCode(cfmt, pvSrc, cbSrc, pvNil, 0, &cbDst);\n    UnlockHq(*phq);\n    if (!fRet)\n        return fFalse;\n\n    if (!FAllocHq(&hqDst, cbDst, fmemNil, mprNormal))\n        return fFalse;\n\n    pvSrc = PvLockHq(*phq);\n    fRet = _FCode(cfmt, pvSrc, cbSrc, PvLockHq(hqDst), cbDst, &cbDst);\n    UnlockHq(hqDst);\n    UnlockHq(*phq);\n    if (!fRet)\n    {\n        FreePhq(&hqDst);\n        return fFalse;\n    }\n    Assert(cbDst <= CbOfHq(hqDst), \"why is the final size larger?\");\n    if (cbDst < CbOfHq(hqDst))\n        AssertDo(FResizePhq(&hqDst, cbDst, fmemNil, mprNormal), 0);\n\n    FreePhq(phq);\n    *phq = hqDst;\n    return fTrue;\n}\n\n/***************************************************************************\n    Compress or decompress a block of data. If pvDst is nil, just fill\n    *pcbDst with the required destination buffer size. This is just an\n    estimate in the compress case.\n***************************************************************************/\nbool CODM::_FCode(long cfmt, void *pvSrc, long cbSrc, void *pvDst, long cbDst, long *pcbDst)\n{\n    AssertIn(cbSrc, 1, kcbMax);\n    AssertPvCb(pvSrc, cbSrc);\n    AssertIn(cbDst, 0, kcbMax);\n    AssertPvCb(pvDst, cbDst);\n    AssertVarMem(pcbDst);\n\n    byte *prgb;\n    PCODC pcodc;\n\n    if (cfmtNil != cfmt)\n    {\n        // Encode the data\n        if (pvNil == pvDst || cbDst >= cbSrc)\n            cbDst = cbSrc - 1;\n\n        if (cbDst <= kcbCodecHeader)\n        {\n            // destination is smaller than the minimum compressed size, so\n            // no sense trying.\n            return fFalse;\n        }\n\n        // make sure we have a codec for this format\n        if (!_FFindCodec(fTrue, cfmt, &pcodc))\n            return fFalse;\n\n        if (pvNil == pvDst)\n        {\n            // this is our best guess at the compressed size\n            *pcbDst = cbDst;\n            return fTrue;\n        }\n\n        prgb = (byte *)pvDst;\n        if (!pcodc->FConvert(fTrue, cfmt, pvSrc, cbSrc, prgb + kcbCodecHeader, cbDst - kcbCodecHeader, pcbDst))\n        {\n            return fFalse;\n        }\n\n        AssertIn(*pcbDst, 1, cbDst - kcbCodecHeader + 1);\n        *pcbDst += kcbCodecHeader;\n\n        prgb[0] = B3Lw(cfmt);\n        prgb[1] = B2Lw(cfmt);\n        prgb[2] = B1Lw(cfmt);\n        prgb[3] = B0Lw(cfmt);\n        prgb[4] = B3Lw(cbSrc);\n        prgb[5] = B2Lw(cbSrc);\n        prgb[6] = B1Lw(cbSrc);\n        prgb[7] = B0Lw(cbSrc);\n    }\n    else\n    {\n        // decode\n        if (0 >= (cbSrc -= kcbCodecHeader))\n            return fFalse;\n\n        // get the format and decompressed size\n        prgb = (byte *)pvSrc;\n        cfmt = LwFromBytes(prgb[0], prgb[1], prgb[2], prgb[3]);\n        *pcbDst = LwFromBytes(prgb[4], prgb[5], prgb[6], prgb[7]);\n        if (!FIn(*pcbDst, 1, pvNil == pvDst ? kcbMax : cbDst + 1))\n            return fFalse;\n\n        // make sure we have a codec for this format\n        if (!_FFindCodec(fFalse, cfmt, &pcodc))\n            return fFalse;\n\n        if (pvNil == pvDst)\n            return fTrue;\n\n        cbDst = *pcbDst;\n        if (!pcodc->FConvert(fFalse, cfmt, prgb + kcbCodecHeader, cbSrc, pvDst, cbDst, pcbDst))\n        {\n            return fFalse;\n        }\n\n        if (cbDst != *pcbDst)\n        {\n            Bug(\"decompressed to wrong size\");\n            return fFalse;\n        }\n    }\n\n    return fTrue;\n}\n"
  },
  {
    "path": "kauai/src/codec.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Compression/decompression manager and default Kauai codec.\n\n***************************************************************************/\n#ifndef CODEC_H\n#define CODEC_H\n\n/***************************************************************************\n    Codec object.\n***************************************************************************/\ntypedef class CODC *PCODC;\n#define CODC_PAR BASE\n#define kclsCODC 'CODC'\nclass CODC : public CODC_PAR\n{\n    RTCLASS_DEC\n\n  public:\n    // return whether this codec can handle the given format.\n    virtual bool FCanDo(bool fEncode, long cfmt) = 0;\n\n    // Decompression should be extremely fast. Compression may be\n    // (painfully) slow.\n    virtual bool FConvert(bool fEncode, long cfmt, void *pvSrc, long cbSrc, void *pvDst, long cbDst, long *pcbDst) = 0;\n};\n\n/***************************************************************************\n    Codec manager.\n***************************************************************************/\ntypedef class CODM *PCODM;\n#define CODM_PAR BASE\n#define kclsCODM 'CODM'\nclass CODM : public CODM_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    long _cfmtDef;\n    PCODC _pcodcDef;\n    PGL _pglpcodc;\n\n    virtual bool _FFindCodec(bool fEncode, long cfmt, PCODC *ppcodc);\n    virtual bool _FCodePhq(long cfmt, HQ *phq);\n    virtual bool _FCode(long cfmt, void *pvSrc, long cbSrc, void *pvDst, long cbDst, long *pcbDst);\n\n  public:\n    CODM(PCODC pcodc, long cfmt);\n    ~CODM(void);\n\n    long CfmtDefault(void)\n    {\n        return _cfmtDef;\n    }\n    void SetCfmtDefault(long cfmt);\n    virtual bool FRegisterCodec(PCODC pcodc);\n    virtual bool FCanDo(long cfmt, bool fEncode);\n\n    // Gets the type of compression used on the block (assuming it is\n    // compressed).\n    virtual bool FGetCfmtFromBlck(PBLCK pblck, long *pcfmt);\n\n    // FDecompress allows pvDst to be nil (in which case *pcbDst is filled\n    // in with the buffer size required).\n    // FCompress also allows pvDst to be nil, but the value returned in\n    // *pcbDst will just be cbSrc - 1.\n    bool FDecompressPhq(HQ *phq)\n    {\n        return _FCodePhq(cfmtNil, phq);\n    }\n    bool FCompressPhq(HQ *phq, long cfmt = cfmtNil)\n    {\n        return _FCodePhq(cfmtNil == cfmt ? _cfmtDef : cfmt, phq);\n    }\n\n    bool FDecompress(void *pvSrc, long cbSrc, void *pvDst, long cbDst, long *pcbDst)\n    {\n        return _FCode(cfmtNil, pvSrc, cbSrc, pvDst, cbDst, pcbDst);\n    }\n    bool FCompress(void *pvSrc, long cbSrc, void *pvDst, long cbDst, long *pcbDst, long cfmt = cfmtNil)\n    {\n        return _FCode(cfmtNil == cfmt ? _cfmtDef : cfmt, pvSrc, cbSrc, pvDst, cbDst, pcbDst);\n    }\n};\n\n/***************************************************************************\n    The standard Kauai Codec object.\n***************************************************************************/\ntypedef class KCDC *PKCDC;\n#define KCDC_PAR CODC\n#define kclsKCDC 'KCDC'\nclass KCDC : public KCDC_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    bool _FEncode(void *pvSrc, long cbSrc, void *pvDst, long cbDst, long *pcbDst);\n    bool _FDecode(void *pvSrc, long cbSrc, void *pvDst, long cbDst, long *pcbDst);\n    bool _FEncode2(void *pvSrc, long cbSrc, void *pvDst, long cbDst, long *pcbDst);\n    bool _FDecode2(void *pvSrc, long cbSrc, void *pvDst, long cbDst, long *pcbDst);\n\n  public:\n    virtual bool FCanDo(bool fEncode, long cfmt)\n    {\n        return kcfmtKauai2 == cfmt || kcfmtKauai == cfmt;\n    }\n    virtual bool FConvert(bool fEncode, long cfmt, void *pvSrc, long cbSrc, void *pvDst, long cbDst, long *pcbDst);\n};\n\n#endif //! CODEC_H\n"
  },
  {
    "path": "kauai/src/codkauai.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Standard Kauai codec.\n\n    This codec compresses a byte stream into a bit stream. The bit stream\n    is decoded by the following pseudo code:\n\n        loop forever\n            if (next bit is 0)\n                // literal byte\n                write next 8 bits\n                continue\n\n            // initialize length\n            length = 1\n\n            // find the offset\n            if (next bit is 0)\n                offset = next 6 bits + 0x01\n            else if (next bit is 0)\n                offset = next 9 bits + 0x41\n            else if (next bit is 0)\n                offset = next 12 bits + 0x0241\n            else\n                offset = next 20 bits\n                if (offset is 0xFFFFF)\n                    break // we're done\n                offset += 0x1241\n                length++\n\n            // get the length\n            c = number of non-zero bits (up to 11)\n            skip the zero bit\n            length += next c bits + (1 << c)\n\n            // write the destination bytes\n            write length bytes from the current dest position minus offset.\n\n    Essentially, previous uncompressed byte strings form a dictionary for\n    the compression.\n\n    As an example, the byte string consisting of 37 a's in a row would be\n    compressed as:\n\n        // first a encoded:\n        0 \t\t\t// literal byte\n        01100001 \t// 'a' = 0x61\n\n        // next 36 a's encoded:\n        01\t\t\t// 6 bit offset\n        000000\t\t// offset = 0 + 1 = 1\n        011111\t\t// length encoded in next 5 bits\n        00011\t\t// length = 1 + 3 + (1 << 5) = 36\n\n        1111\t\t// 20 bit offset\n        11111111111111111111\t// special 20 bit offset indicating end of data\n\n    The source stream is 296 bits long. The compressed stream is 28 bits (not\n    counting the 24 bit termination).\n\n    For a less trivial example: the string abaabaaabaaaab would be compressed\n    to the following bit stream:\n\n        // first aba encoded:\n        0 \t\t\t// literal byte\n        01100001 \t// 'a' = 0x61\n        0\t\t\t// literal byte\n        01100010\t// 'b = 0x62\n        0 \t\t\t// literal byte\n        01100001 \t// 'a' = 0x61\n\n        // next abaa encoded:\n        01\t\t\t// 6 bit offset\n        000010\t\t// offset = 2 + 1 = 3\n        01\t\t\t// length encoded in next 1 bit\n        1\t\t\t// length = 1 + 1 + (1 << 1) = 4\n\n        // next abaaa encoded:\n        01\t\t\t// 6 bit offset\n        000011\t\t// offset = 3 + 1 = 4\n        011\t\t\t// length encoded in next 2 bits\n        00\t\t\t// length = 1 + 0 + (1 << 2) = 5\n\n        // next ab encoded:\n        01\t\t\t// 6 bit offset\n        000100\t\t// offset = 4 + 1 = 5\n        0\t\t\t// length encoded in next 0 bits\n                    // length = 1 + 0 + (1 << 0) = 2\n\n        1111\t\t// 20 bit offset\n        11111111111111111111\t// special 20 bit offset indicating end of data\n\n    The uncompressed stream is 112 bits. The compressed stream is 60 bits (not\n    including the 24 bit termination).\n\n    All compressed streams are padded with extra 0xFF bytes so that at\n    decompression time we can verify a priori that decompression will\n    terminate (by verifying that there are at least 6 0xFF bytes at the end.\n\n***************************************************************************/\n#include \"util.h\"\n#include \"codkpri.h\"\nASSERTNAME\n\n// REVIEW shonk: should we turn on _Safety?\n#define SAFETY\n\nRTCLASS(KCDC)\n\n/***************************************************************************\n    Encode or decode a block.\n***************************************************************************/\nbool KCDC::FConvert(bool fEncode, long cfmt, void *pvSrc, long cbSrc, void *pvDst, long cbDst, long *pcbDst)\n{\n    AssertThis(0);\n    AssertIn(cbSrc, 1, kcbMax);\n    AssertPvCb(pvSrc, cbSrc);\n    AssertIn(cbDst, 1, kcbMax);\n    AssertPvCb(pvDst, cbDst);\n    AssertVarMem(pcbDst);\n\n    switch (cfmt)\n    {\n    default:\n        return fFalse;\n\n    case kcfmtKauai2:\n        if (fEncode)\n            return _FEncode2(pvSrc, cbSrc, pvDst, cbDst, pcbDst);\n        return _FDecode2(pvSrc, cbSrc, pvDst, cbDst, pcbDst);\n\n    case kcfmtKauai:\n        if (fEncode)\n            return _FEncode(pvSrc, cbSrc, pvDst, cbDst, pcbDst);\n        return _FDecode(pvSrc, cbSrc, pvDst, cbDst, pcbDst);\n    }\n}\n\n/***************************************************************************\n    Bit array class - for writing the compressed data.\n***************************************************************************/\nclass BITA\n{\n  protected:\n    byte *_prgb;\n    long _cb;\n\n    long _ibit;\n    long _ib;\n\n  public:\n    void Set(void *pvDst, long cbDst);\n    bool FWriteBits(ulong lu, long cbit);\n    bool FWriteLogEncoded(ulong lu);\n    long Ibit(void)\n    {\n        return _ibit;\n    }\n    long Ib(void)\n    {\n        return _ib;\n    }\n};\n\n/***************************************************************************\n    Set the buffer to write to.\n***************************************************************************/\nvoid BITA::Set(void *pvDst, long cbDst)\n{\n    AssertPvCb(pvDst, cbDst);\n\n    _prgb = (byte *)pvDst;\n    _cb = cbDst;\n    _ibit = _ib = 0;\n}\n\n/***************************************************************************\n    Write some bits.\n***************************************************************************/\nbool BITA::FWriteBits(ulong lu, long cbit)\n{\n    long cb;\n\n    // store the partial byte\n    if (_ibit > 0)\n    {\n        AssertIn(_ib, 0, _cb);\n        _prgb[_ib] = (byte)((_prgb[_ib] & ((1 << (_ibit)) - 1)) | (lu << _ibit));\n        if (_ibit + cbit < 8)\n        {\n            _ibit += cbit;\n            return fTrue;\n        }\n        cbit -= 8 - _ibit;\n        lu >>= 8 - _ibit;\n        _ib++;\n        _ibit = 0;\n    }\n\n    Assert(_ibit == 0, 0);\n\n    cb = cbit >> 3;\n    cbit &= 0x07;\n\n    if (_ib + cb + (cbit > 0) > _cb)\n        return fFalse;\n\n    while (cb-- > 0)\n    {\n        _prgb[_ib++] = (byte)lu;\n        lu >>= 8;\n    }\n\n    if (cbit > 0)\n    {\n        _prgb[_ib] = (byte)lu;\n        _ibit = cbit;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Write the value logarithmically encoded.\n***************************************************************************/\nbool BITA::FWriteLogEncoded(ulong lu)\n{\n    Assert(lu > 0 && !(lu & 0x80000000), \"bad value to encode logarithmically\");\n    long cbit;\n\n    for (cbit = 1; (ulong)(1L << cbit) <= lu; cbit++)\n        ;\n    cbit--;\n\n    if (cbit > 0 && !FWriteBits(0xFFFFFFFF, cbit))\n        return fFalse;\n\n    return FWriteBits(lu << 1, cbit + 1);\n}\n\n/***************************************************************************\n    Compress the data in pvSrc using the KCDC encoding.  Returns false if\n    the data can't be compressed. This is not optimized (ie, it's slow).\n***************************************************************************/\nbool KCDC::_FEncode(void *pvSrc, long cbSrc, void *pvDst, long cbDst, long *pcbDst)\n{\n    AssertThis(0);\n    AssertIn(cbSrc, 1, kcbMax);\n    AssertPvCb(pvSrc, cbSrc);\n    AssertIn(cbDst, 1, kcbMax);\n    AssertPvCb(pvDst, cbDst);\n    AssertVarMem(pcbDst);\n\n    long ibSrc;\n    long ibMatch, ibTest, cbMatch, ibMin, cbT;\n    byte bMatchNew, bMatchLast;\n    BITA bita;\n    long *pmpsuibStart = pvNil;\n    byte *prgbSrc = (byte *)pvSrc;\n    long *pmpibibNext = pvNil;\n\n    TrashVar(pcbDst);\n    if (cbDst - kcbTailKcdc <= 1)\n        return fFalse;\n\n    // allocate the links\n    if (!FAllocPv((void **)&pmpibibNext, LwMul(size(long), cbSrc), fmemNil, mprNormal) ||\n        !FAllocPv((void **)&pmpsuibStart, LwMul(size(long), 0x10000), fmemNil, mprNormal))\n    {\n        Warn(\"failed to allocate memory for links\");\n        goto LFail;\n    }\n\n    // write the links\n    // we need to set each entry of pmpsuibStart to a big negative number,\n    // but not too big, or we risk overflow below.\n    FillPb(pmpsuibStart, LwMul(size(long), 0x10000), 0xCC);\n    for (ibSrc = 0; ibSrc < cbSrc - 1; ibSrc++)\n    {\n        ushort suCur = ((ushort)prgbSrc[ibSrc]) << 8 | (ushort)prgbSrc[ibSrc + 1];\n        ibTest = pmpsuibStart[suCur];\n        pmpsuibStart[suCur] = ibSrc;\n        pmpibibNext[ibSrc] = ibTest;\n    }\n    pmpibibNext[cbSrc - 1] = 0xCCCCCCCCL;\n    FreePpv((void **)&pmpsuibStart);\n\n    // write flags byte\n    bita.Set(pvDst, cbDst);\n    AssertDo(bita.FWriteBits(0, 8), 0);\n\n    for (ibSrc = 0; ibSrc < cbSrc; ibSrc += cbMatch)\n    {\n        byte *pbMatch;\n        long cbMaxMatch;\n\n        // get the new byte and the link\n        ibTest = pmpibibNext[ibSrc];\n        Assert(ibTest < ibSrc, 0);\n\n        // assume we'll store a literal\n        cbMatch = 1;\n        ibMatch = ibSrc;\n\n        if (ibTest <= (ibMin = ibSrc - kdibMinKcdc4))\n            goto LStore;\n\n        // we've seen this byte pair before - look for the longest match\n        cbMaxMatch = LwMin(kcbMaxLenKcdc, cbSrc - ibSrc);\n        pbMatch = prgbSrc + ibSrc;\n        bMatchNew = prgbSrc[ibSrc + 1];\n        bMatchLast = prgbSrc[ibSrc];\n        for (; ibTest > ibMin; ibTest = pmpibibNext[ibTest])\n        {\n            Assert(prgbSrc[ibTest + 1] == prgbSrc[ibSrc + 1], \"links are wrong\");\n            if (prgbSrc[ibTest + cbMatch] != bMatchNew || prgbSrc[ibTest + cbMatch - 1] != bMatchLast ||\n                cbMatch >= (cbT = CbEqualRgb(prgbSrc + ibTest, pbMatch, cbMaxMatch)))\n            {\n                Assert(pmpibibNext[ibTest] < ibTest, 0);\n                continue;\n            }\n\n            AssertIn(cbT, cbMatch + 1, kcbMaxLenKcdc + 1);\n\n            // if this run requires a 20 bit offset, we need to beat a\n            // 9 or 6 bit offset by 2 bytes\n            if (ibSrc - ibTest < kdibMinKcdc3 || cbT - cbMatch > 1 || ibSrc - ibMatch >= kdibMinKcdc2)\n            {\n                cbMatch = cbT;\n                ibMatch = ibTest;\n                if (cbMatch == cbMaxMatch)\n                    break;\n                bMatchNew = prgbSrc[ibSrc + cbMatch];\n                bMatchLast = prgbSrc[ibSrc + cbMatch - 1];\n            }\n\n            Assert(pmpibibNext[ibTest] < ibTest, 0);\n        }\n\n        // write out the bits\n    LStore:\n        AssertIn(ibMatch, 0, ibSrc + (cbMatch == 1));\n        AssertIn(cbMatch, 1 + (ibMatch < ibSrc) + (ibSrc - ibMatch >= kdibMinKcdc3), kcbMaxLenKcdc + 1);\n\n        if (cbMatch == 1)\n        {\n            // literal\n            if (!bita.FWriteBits((ulong)prgbSrc[ibSrc] << 1, 9))\n                goto LFail;\n        }\n        else\n        {\n            // find the offset\n            ulong luCode, luLen;\n            long cbit;\n\n            luCode = ibSrc - ibMatch;\n            luLen = cbMatch - 1;\n            if (luCode < kdibMinKcdc1)\n            {\n                // 6 bit offset\n                cbit = 2 + kcbitKcdc0;\n                luCode = ((luCode - kdibMinKcdc0) << 2) | 1;\n            }\n            else if (luCode < kdibMinKcdc2)\n            {\n                // 9 bit offset\n                cbit = 3 + kcbitKcdc1;\n                luCode = ((luCode - kdibMinKcdc1) << 3) | 0x03;\n            }\n            else if (luCode < kdibMinKcdc3)\n            {\n                // 12 bit offset\n                cbit = 4 + kcbitKcdc2;\n                luCode = ((luCode - kdibMinKcdc2) << 4) | 0x07;\n            }\n            else\n            {\n                // 20 bit offset\n                Assert(luCode < kdibMinKcdc4, 0);\n                cbit = 4 + kcbitKcdc3;\n                luCode = ((luCode - kdibMinKcdc3) << 4) | 0x0F;\n                luLen--;\n            }\n            AssertIn(cbit, 8, kcbitKcdc3 + 5);\n            Assert(luLen > 0, \"bad len\");\n\n            if (!bita.FWriteBits(luCode, cbit))\n                goto LFail;\n\n            if (!bita.FWriteLogEncoded(luLen))\n                goto LFail;\n        }\n    }\n\n    // fill the remainder of the last byte with 1's\n    if (bita.Ibit() > 0)\n        AssertDo(bita.FWriteBits(0xFF, 8 - bita.Ibit()), 0);\n\n    // write the tail (kcbTailKcdc bytes of FF)\n    for (cbT = 0; cbT < kcbTailKcdc; cbT += size(long))\n    {\n        if (!bita.FWriteBits(0xFFFFFFFF, LwMin(size(long), kcbTailKcdc - cbT) << 3))\n        {\n            goto LFail;\n        }\n    }\n\n    *pcbDst = bita.Ib();\n\n    FreePpv((void **)&pmpibibNext);\n    return fTrue;\n\nLFail:\n    // can't compress the source\n    FreePpv((void **)&pmpibibNext);\n    return fFalse;\n}\n\n/***************************************************************************\n    Decompress a compressed KCDC stream.\n***************************************************************************/\nbool KCDC::_FDecode(void *pvSrc, long cbSrc, void *pvDst, long cbDst, long *pcbDst)\n{\n    AssertThis(0);\n    AssertIn(cbSrc, 1, kcbMax);\n    AssertPvCb(pvSrc, cbSrc);\n    AssertIn(cbDst, 1, kcbMax);\n    AssertPvCb(pvDst, cbDst);\n    AssertVarMem(pcbDst);\n\n    long ib;\n    byte bFlags;\n\n    TrashVar(pcbDst);\n    if (cbSrc <= kcbTailKcdc + 1)\n    {\n        Bug(\"bad source stream\");\n        return fFalse;\n    }\n\n    // verify that the last kcbTailKcdc bytes are FF.  This guarantees that\n    // we won't run past the end of the source.\n    for (ib = 0; ib++ < kcbTailKcdc;)\n    {\n        if (((byte *)pvSrc)[cbSrc - ib] != 0xFF)\n        {\n            Bug(\"bad tail of compressed data\");\n            return fFalse;\n        }\n    }\n\n    bFlags = ((byte *)pvSrc)[0];\n    if (bFlags != 0)\n    {\n        Bug(\"unknown flag byte\");\n        return fFalse;\n    }\n\n#ifdef IN_80386\n\n#include \"kcdc_386.h\"\n\n    *pcbDst = cbTot;\n    return fTrue;\n\n#else //! IN_80386\n\n    long cb, dib, ibit, cbit;\n    register ulong luCur;\n    byte *pbT;\n    register byte *pbDst = (byte *)pvDst;\n    byte *pbLimDst = (byte *)pvDst + cbDst;\n    register byte *pbSrc = (byte *)pvSrc + 1;\n\n#define _FTest(ibit) (luCur & (1L << (ibit)))\n#ifdef LITTLE_ENDIAN\n#define _Advance(cb) ((pbSrc += (cb)), (luCur = *(ulong *)(pbSrc - 4)))\n#else //! LITTLE_ENDIAN\n#define _Advance(cb) ((pbSrc += (cb)), (luCur = LwFromBytes(pbSrc[-1], pbSrc[-2], pbSrc[-3], pbSrc[-4])))\n#endif //! LITTLE_ENDIAN\n\n    _Advance(4);\n\n    for (ibit = 0;;)\n    {\n        if (!_FTest(ibit))\n        {\n            // literal\n#ifdef SAFETY\n            if (pbDst >= pbLimDst)\n                goto LFail;\n#endif // SAFETY\n            *pbDst++ = (byte)(luCur >> ibit + 1);\n            ibit += 9;\n        }\n        else\n        {\n            // get the offset\n            cb = 1;\n            if (!_FTest(ibit + 1))\n            {\n                dib = ((luCur >> (ibit + 2)) & ((1 << kcbitKcdc0) - 1)) + kdibMinKcdc0;\n                ibit += 2 + kcbitKcdc0;\n            }\n            else if (!_FTest(ibit + 2))\n            {\n                dib = ((luCur >> (ibit + 3)) & ((1 << kcbitKcdc1) - 1)) + kdibMinKcdc1;\n                ibit += 3 + kcbitKcdc1;\n            }\n            else if (!_FTest(ibit + 3))\n            {\n                dib = ((luCur >> (ibit + 4)) & ((1 << kcbitKcdc2) - 1)) + kdibMinKcdc2;\n                ibit += 4 + kcbitKcdc2;\n            }\n            else\n            {\n                dib = (luCur >> (ibit + 4)) & ((1 << kcbitKcdc3) - 1);\n                if (dib == ((1 << kcbitKcdc3) - 1))\n                    break;\n                dib += kdibMinKcdc3;\n                ibit += 4 + kcbitKcdc3;\n                cb++;\n            }\n            _Advance(ibit >> 3);\n            ibit &= 0x07;\n\n            // get the length\n            for (cbit = 0;;)\n            {\n                if (!_FTest(ibit + cbit))\n                    break;\n                if (++cbit > kcbitMaxLenKcdc)\n                    goto LFail;\n            }\n\n            cb += (1 << cbit) + ((luCur >> (cbit + 1)) & ((1 << cbit) - 1));\n            ibit += cbit + cbit + 1;\n\n#ifdef SAFETY\n            if (pbLimDst - pbDst < cb || pbDst - (byte *)pvDst < dib)\n                goto LFail;\n#endif // SAFETY\n            for (pbT = pbDst - dib; cb-- > 0;)\n                *pbDst++ = *pbT++;\n        }\n        _Advance(ibit >> 3);\n        ibit &= 0x07;\n    }\n\n    *pcbDst = pbDst - (byte *)pvDst;\n    return fTrue;\n\n#undef _FTest\n#undef _Advance\n\n#endif //! IN_80386\n\nLFail:\n    Bug(\"bad compressed data\");\n    return fFalse;\n}\n\n/***************************************************************************\n    Compress the data in pvSrc using the KCD2 encoding.  Returns false if\n    the data can't be compressed. This is not optimized (ie, it's slow).\n***************************************************************************/\nbool KCDC::_FEncode2(void *pvSrc, long cbSrc, void *pvDst, long cbDst, long *pcbDst)\n{\n    AssertThis(0);\n    AssertIn(cbSrc, 1, kcbMax);\n    AssertPvCb(pvSrc, cbSrc);\n    AssertIn(cbDst, 1, kcbMax);\n    AssertPvCb(pvDst, cbDst);\n    AssertVarMem(pcbDst);\n\n    long ibSrc;\n    long ibMatch, ibTest, cbMatch, ibMin, cbT;\n    byte bMatchNew, bMatchLast;\n    BITA bita;\n    long cbRun;\n    long *pmpsuibStart = pvNil;\n    byte *prgbSrc = (byte *)pvSrc;\n    long *pmpibibNext = pvNil;\n\n    TrashVar(pcbDst);\n    if (cbDst - kcbTailKcdc <= 1)\n        return fFalse;\n\n    // allocate the links\n    if (!FAllocPv((void **)&pmpibibNext, LwMul(size(long), cbSrc), fmemNil, mprNormal) ||\n        !FAllocPv((void **)&pmpsuibStart, LwMul(size(long), 0x10000), fmemNil, mprNormal))\n    {\n        Warn(\"failed to allocate memory for links\");\n        goto LFail;\n    }\n\n    // write the links\n    // we need to set each entry of pmpsuibStart to a big negative number,\n    // but not too big, or we risk overflow below.\n    FillPb(pmpsuibStart, LwMul(size(long), 0x10000), 0xCC);\n    for (ibSrc = 0; ibSrc < cbSrc - 1; ibSrc++)\n    {\n        ushort suCur = ((ushort)prgbSrc[ibSrc]) << 8 | (ushort)prgbSrc[ibSrc + 1];\n        ibTest = pmpsuibStart[suCur];\n        pmpsuibStart[suCur] = ibSrc;\n        pmpibibNext[ibSrc] = ibTest;\n    }\n    pmpibibNext[cbSrc - 1] = 0xCCCCCCCCL;\n    FreePpv((void **)&pmpsuibStart);\n\n    // write flags byte\n    bita.Set(pvDst, cbDst);\n    AssertDo(bita.FWriteBits(0, 8), 0);\n\n    cbRun = 0;\n    for (ibSrc = 0;; ibSrc += cbMatch)\n    {\n        byte *pbMatch;\n        long cbMaxMatch;\n\n        if (ibSrc >= cbSrc)\n        {\n            cbMatch = 0;\n            goto LStore;\n        }\n\n        // get the new byte and the link\n        ibTest = pmpibibNext[ibSrc];\n        Assert(ibTest < ibSrc, 0);\n\n        // assume we'll store a literal\n        cbMatch = 1;\n        ibMatch = ibSrc;\n\n        if (ibTest <= (ibMin = ibSrc - kdibMinKcdc4))\n            goto LStore;\n\n        // we've seen this byte pair before - look for the longest match\n        cbMaxMatch = LwMin(kcbMaxLenKcdc, cbSrc - ibSrc);\n        pbMatch = prgbSrc + ibSrc;\n        bMatchNew = prgbSrc[ibSrc + 1];\n        bMatchLast = prgbSrc[ibSrc];\n        for (; ibTest > ibMin; ibTest = pmpibibNext[ibTest])\n        {\n            Assert(prgbSrc[ibTest + 1] == prgbSrc[ibSrc + 1], \"links are wrong\");\n            if (prgbSrc[ibTest + cbMatch] != bMatchNew || prgbSrc[ibTest + cbMatch - 1] != bMatchLast ||\n                cbMatch >= (cbT = CbEqualRgb(prgbSrc + ibTest, pbMatch, cbMaxMatch)))\n            {\n                Assert(pmpibibNext[ibTest] < ibTest, 0);\n                continue;\n            }\n\n            AssertIn(cbT, cbMatch + 1, kcbMaxLenKcdc + 1);\n\n            // if this run requires a 20 bit offset, we need to beat a\n            // 9 or 6 bit offset by 2 bytes\n            if (ibSrc - ibTest < kdibMinKcdc3 || cbT - cbMatch > 1 || ibSrc - ibMatch >= kdibMinKcdc2)\n            {\n                cbMatch = cbT;\n                ibMatch = ibTest;\n                if (cbMatch == cbMaxMatch)\n                    break;\n                bMatchNew = prgbSrc[ibSrc + cbMatch];\n                bMatchLast = prgbSrc[ibSrc + cbMatch - 1];\n            }\n\n            Assert(pmpibibNext[ibTest] < ibTest, 0);\n        }\n\n        // write out the bits\n    LStore:\n        if (cbMatch != 1 && cbRun > 0)\n        {\n            // write the previous literal run\n            long ibit, ib;\n\n            if (!bita.FWriteLogEncoded(cbRun))\n                goto LFail;\n            if (!bita.FWriteBits(0, 1))\n                goto LFail;\n            ibit = bita.Ibit();\n            if (ibit > 0)\n            {\n                if (!bita.FWriteBits(prgbSrc[ibSrc - 1], 8 - ibit))\n                    goto LFail;\n            }\n            else\n                ibit = 8;\n            Assert(bita.Ibit() == 0, 0);\n\n            for (ib = ibSrc - cbRun; ib < ibSrc - 1; ib++)\n            {\n                if (!bita.FWriteBits(prgbSrc[ib], 8))\n                    goto LFail;\n            }\n            if (!bita.FWriteBits(prgbSrc[ibSrc - 1] >> (8 - ibit), ibit))\n                goto LFail;\n            cbRun = 0;\n        }\n\n        if (cbMatch == 0)\n        {\n            // we're done\n            break;\n        }\n\n        if (cbMatch == 1)\n            cbRun++;\n        else\n        {\n            AssertIn(ibMatch, 0, ibSrc);\n            AssertIn(cbMatch, 2 + (ibSrc - ibMatch >= kdibMinKcdc3), kcbMaxLenKcdc + 1);\n\n            // find the offset\n            ulong luCode, luLen;\n            long cbit;\n\n            luCode = ibSrc - ibMatch;\n            luLen = cbMatch - 1;\n            if (luCode < kdibMinKcdc1)\n            {\n                // 6 bit offset\n                cbit = 2 + kcbitKcdc0;\n                luCode = ((luCode - kdibMinKcdc0) << 2) | 1;\n            }\n            else if (luCode < kdibMinKcdc2)\n            {\n                // 9 bit offset\n                cbit = 3 + kcbitKcdc1;\n                luCode = ((luCode - kdibMinKcdc1) << 3) | 0x03;\n            }\n            else if (luCode < kdibMinKcdc3)\n            {\n                // 12 bit offset\n                cbit = 4 + kcbitKcdc2;\n                luCode = ((luCode - kdibMinKcdc2) << 4) | 0x07;\n            }\n            else\n            {\n                // 20 bit offset\n                Assert(luCode < kdibMinKcdc4, 0);\n                cbit = 4 + kcbitKcdc3;\n                luCode = ((luCode - kdibMinKcdc3) << 4) | 0x0F;\n                luLen--;\n            }\n            AssertIn(cbit, 8, kcbitKcdc3 + 5);\n            Assert(luLen > 0, \"bad len\");\n\n            if (!bita.FWriteLogEncoded(luLen))\n                goto LFail;\n\n            if (!bita.FWriteBits(luCode, cbit))\n                goto LFail;\n        }\n    }\n\n    // fill the remainder of the last byte with 1's\n    if (bita.Ibit() > 0)\n        AssertDo(bita.FWriteBits(0xFF, 8 - bita.Ibit()), 0);\n\n    // write the tail (kcbTailKcdc bytes of FF)\n    for (cbT = 0; cbT < kcbTailKcdc; cbT += size(long))\n    {\n        if (!bita.FWriteBits(0xFFFFFFFF, LwMin(size(long), kcbTailKcdc - cbT) << 3))\n        {\n            goto LFail;\n        }\n    }\n\n    *pcbDst = bita.Ib();\n\n    FreePpv((void **)&pmpibibNext);\n    return fTrue;\n\nLFail:\n    // can't compress the source\n    FreePpv((void **)&pmpibibNext);\n    return fFalse;\n}\n\n/***************************************************************************\n    Decompress a compressed KCD2 stream.\n***************************************************************************/\nbool KCDC::_FDecode2(void *pvSrc, long cbSrc, void *pvDst, long cbDst, long *pcbDst)\n{\n    AssertThis(0);\n    AssertIn(cbSrc, 1, kcbMax);\n    AssertPvCb(pvSrc, cbSrc);\n    AssertIn(cbDst, 1, kcbMax);\n    AssertPvCb(pvDst, cbDst);\n    AssertVarMem(pcbDst);\n\n    long ib;\n    byte bFlags;\n\n    TrashVar(pcbDst);\n    if (cbSrc <= kcbTailKcd2 + 1)\n    {\n        Bug(\"bad source stream\");\n        return fFalse;\n    }\n\n    // verify that the last kcbTailKcd2 bytes are FF.  This guarantees that\n    // we won't run past the end of the source.\n    for (ib = 0; ib++ < kcbTailKcd2;)\n    {\n        if (((byte *)pvSrc)[cbSrc - ib] != 0xFF)\n        {\n            Bug(\"bad tail of compressed data\");\n            return fFalse;\n        }\n    }\n\n    bFlags = ((byte *)pvSrc)[0];\n    if (bFlags != 0)\n    {\n        Bug(\"unknown flag byte\");\n        return fFalse;\n    }\n\n#ifdef IN_80386\n\n#include \"kcd2_386.h\"\n\n    *pcbDst = cbTot;\n    return fTrue;\n\n#else //! IN_80386\n\n    long cb, dib, ibit, cbit;\n    register ulong luCur;\n    byte bT;\n    byte *pbT;\n    register byte *pbDst = (byte *)pvDst;\n    byte *pbLimDst = (byte *)pvDst + cbDst;\n    register byte *pbSrc = (byte *)pvSrc + 1;\n    byte *pbLimSrc = (byte *)pvSrc + cbSrc - kcbTailKcd2;\n\n#define _FTest(ibit) (luCur & (1L << (ibit)))\n#ifdef LITTLE_ENDIAN\n#define _Advance(cb) ((pbSrc += (cb)), (luCur = *(ulong *)(pbSrc - 4)))\n#else //! LITTLE_ENDIAN\n#define _Advance(cb) ((pbSrc += (cb)), (luCur = LwFromBytes(pbSrc[-1], pbSrc[-2], pbSrc[-3], pbSrc[-4])))\n#endif //! LITTLE_ENDIAN\n\n    _Advance(4);\n\n    for (ibit = 0;;)\n    {\n        // get the length\n        for (cbit = 0;;)\n        {\n            if (!_FTest(ibit + cbit))\n                break;\n            if (++cbit > kcbitMaxLenKcd2)\n                goto LDone;\n        }\n\n        cb = (1 << cbit) + ((luCur >> (cbit + 1)) & ((1 << cbit) - 1));\n        ibit += cbit + cbit + 1;\n        _Advance(ibit >> 3);\n        ibit &= 0x07;\n\n        if (!_FTest(ibit))\n        {\n            // literal\n#ifdef SAFETY\n            if (pbDst + cb > pbLimDst)\n                goto LFail;\n            if (pbSrc - 3 + cb > pbLimSrc)\n                goto LFail;\n#endif // SAFETY\n            ibit++;\n            bT = (byte) ~(luCur & ((1 << ibit) - 1));\n            if (cb > 1)\n            {\n                CopyPb(pbSrc - 3, pbDst, cb - 1);\n                pbDst += cb - 1;\n                _Advance(cb);\n            }\n            else\n                _Advance(1);\n            bT |= luCur & ((1 << ibit) - 1);\n            *pbDst++ = bT;\n        }\n        else\n        {\n            // get the offset\n            cb++;\n            if (!_FTest(ibit + 1))\n            {\n                dib = ((luCur >> (ibit + 2)) & ((1 << kcbitKcd2_0) - 1)) + kdibMinKcd2_0;\n                ibit += 2 + kcbitKcd2_0;\n            }\n            else if (!_FTest(ibit + 2))\n            {\n                dib = ((luCur >> (ibit + 3)) & ((1 << kcbitKcd2_1) - 1)) + kdibMinKcd2_1;\n                ibit += 3 + kcbitKcd2_1;\n            }\n            else if (!_FTest(ibit + 3))\n            {\n                dib = ((luCur >> (ibit + 4)) & ((1 << kcbitKcd2_2) - 1)) + kdibMinKcd2_2;\n                ibit += 4 + kcbitKcd2_2;\n            }\n            else\n            {\n                dib = (luCur >> (ibit + 4)) & ((1 << kcbitKcd2_3) - 1) + kdibMinKcd2_3;\n                ibit += 4 + kcbitKcd2_3;\n                cb++;\n            }\n\n#ifdef SAFETY\n            if (pbLimDst - pbDst < cb || pbDst - (byte *)pvDst < dib)\n                goto LFail;\n#endif // SAFETY\n            for (pbT = pbDst - dib; cb-- > 0;)\n                *pbDst++ = *pbT++;\n        }\n\n        _Advance(ibit >> 3);\n        ibit &= 0x07;\n    }\n\nLDone:\n    *pcbDst = pbDst - (byte *)pvDst;\n    return fTrue;\n\n#undef _FTest\n#undef _Advance\n\n#endif //! IN_80386\n\nLFail:\n    Bug(\"bad compressed data\");\n    return fFalse;\n}\n"
  },
  {
    "path": "kauai/src/codkpri.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Private defines for the Kauai codec.\n\n***************************************************************************/\n#ifndef CODKPRI_H\n#define CODKPRI_H\n\n/***************************************************************************\n    Constants for the KCDC encoding. Note: these should be #defines and\n    not consts because they are used in inline asm.\n***************************************************************************/\n#define kcbTailKcdc 6      // number of FF bytes required at the end\n#define kcbMaxLenKcdc 4096 // maximum run length\n#define kcbitMaxLenKcdc 11 // number of bits used to encode kcbMaxLenKcdc\n#define kcbitKcdc0 6       // number of bits used for the offsets...\n#define kcbitKcdc1 9\n#define kcbitKcdc2 12\n#define kcbitKcdc3 20\n#define kdibMinKcdc0 0x01 // add to binary offset of corresponding size\n#define kdibMinKcdc1 0x41\n#define kdibMinKcdc2 0x0241\n#define kdibMinKcdc3 0x1241\n#define kdibMinKcdc4 0x101240 // used as a lim for 20 bit offsets\n\n/***************************************************************************\n    Constants for the KCD2 encoding. Note: these should be #defines and\n    not consts because they are used in inline asm.\n***************************************************************************/\n#define kcbTailKcd2 6      // number of FF bytes required at the end\n#define kcbMaxLenKcd2 4096 // maximum run length\n#define kcbitMaxLenKcd2 11 // number of bits used to encode kcbMaxLenKcd2\n#define kcbitKcd2_0 6      // number of bits used for the offsets...\n#define kcbitKcd2_1 9\n#define kcbitKcd2_2 12\n#define kcbitKcd2_3 20\n#define kdibMinKcd2_0 0x01 // add to binary offset of corresponding size\n#define kdibMinKcd2_1 0x41\n#define kdibMinKcd2_2 0x0241\n#define kdibMinKcd2_3 0x1241\n#define kdibMinKcd2_4 0x101240 // used as a lim for 20 bit offsets\n\n#endif //! CODKPRI_H\n"
  },
  {
    "path": "kauai/src/crf.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Chunky resource management.\n\n    WARNING: BACOs should only be released or fetched from the main\n    thread! CRFs are NOT thread safe! Alternatively, the BACO can be\n    detached from the CRF (in the main thread), then later released\n    in a different thread.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\nRTCLASS(BACO)\nRTCLASS(GHQ)\nRTCLASS(RCA)\nRTCLASS(CRF)\nRTCLASS(CRM)\nRTCLASS(CABO)\n\n/***************************************************************************\n    Constructor for base cacheable object.\n***************************************************************************/\nBACO::BACO(void)\n{\n    AssertBaseThis(fobjAllocated);\n    _pcrf = pvNil;\n    _crep = crepToss;\n    _fAttached = fFalse;\n}\n\n/***************************************************************************\n    Destructor.\n***************************************************************************/\nBACO::~BACO(void)\n{\n    AssertBaseThis(fobjAllocated);\n    Assert(!_fAttached, \"still attached\");\n    ReleasePpo(&_pcrf);\n}\n\n/***************************************************************************\n    Write the BACO to a FLO - just make the FLO a BLCK and write to\n    the block.\n***************************************************************************/\nbool BACO::FWriteFlo(PFLO pflo)\n{\n    AssertThis(0);\n    AssertPo(pflo, 0);\n    BLCK blck(pflo);\n    return FWrite(&blck);\n}\n\n/***************************************************************************\n    Placeholder function for BACO generic writer.\n***************************************************************************/\nbool BACO::FWrite(PBLCK pblck)\n{\n    AssertThis(0);\n    RawRtn(); // Derived class should be defining this\n    return fFalse;\n}\n\n/***************************************************************************\n    Placeholder function for BACO generic cb-getter.\n***************************************************************************/\nlong BACO::CbOnFile(void)\n{\n    AssertThis(0);\n    RawRtn(); // Derived class should be defining this\n    return 0;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a BACO.\n***************************************************************************/\nvoid BACO::AssertValid(ulong grf)\n{\n    BACO_PAR::AssertValid(fobjAllocated);\n    Assert(!_fAttached || pvNil != _pcrf, \"attached baco has no crf\");\n    AssertNilOrVarMem(_pcrf);\n}\n\n/***************************************************************************\n    Mark memory for the BACO.\n***************************************************************************/\nvoid BACO::MarkMem(void)\n{\n    AssertValid(0);\n    BACO_PAR::MarkMem();\n    if (!_fAttached)\n        MarkMemObj(_pcrf);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Release a reference to the BACO.  If the reference count goes to zero\n    and the BACO is not attached, it is deleted.\n***************************************************************************/\nvoid BACO::Release(void)\n{\n    AssertThis(0);\n    if (_cactRef-- <= 0)\n    {\n        Bug(\"calling Release without an AddRef\");\n        _cactRef = 0;\n    }\n    if (_cactRef == 0)\n    {\n        if (!_fAttached)\n            delete this;\n        else\n        {\n            AssertPo(_pcrf, 0);\n            _pcrf->BacoReleased(this);\n        }\n    }\n}\n\n/***************************************************************************\n    Detach a BACO from its CRF.\n***************************************************************************/\nvoid BACO::Detach(void)\n{\n    AssertThis(0);\n    if (_fAttached)\n    {\n        AssertPo(_pcrf, 0);\n        _pcrf->AddRef();\n        _fAttached = fFalse;\n        _pcrf->BacoDetached(this);\n    }\n    if (_cactRef <= 0)\n        delete this;\n}\n\n/***************************************************************************\n    Set the crep for the BACO.\n***************************************************************************/\nvoid BACO::SetCrep(long crep)\n{\n    AssertThis(0);\n    // An AddRef followed by Release is done so that BacoReleased() is\n    // called if this BACO's _cactRef is 0...if crep is crepToss, this\n    // detaches this BACO from the cache.\n    AddRef();\n    _crep = crep;\n    Release();\n}\n\n/***************************************************************************\n    Constructor for CRF.  Increments the open count on the CFL.\n***************************************************************************/\nCRF::CRF(PCFL pcfl, long cbMax)\n{\n    AssertBaseThis(fobjAllocated);\n    AssertPo(pcfl, 0);\n    AssertIn(cbMax, 0, kcbMax);\n\n    pcfl->AddRef();\n    _pcfl = pcfl;\n    _cbMax = cbMax;\n}\n\n/***************************************************************************\n    Destructor for the CRF.  Decrements the open count on the CFL and frees\n    all the cached data.\n***************************************************************************/\nCRF::~CRF(void)\n{\n    AssertBaseThis(fobjAllocated);\n    CRE cre;\n\n    _cactRef++; // so we don't get \"deleted\" while detaching the BACOs\n    if (pvNil != _pglcre)\n    {\n        while (_pglcre->IvMac() > 0)\n        {\n            _pglcre->Get(0, &cre);\n            cre.pbaco->AddRef(); // so it doesn't go away when being detached\n            cre.pbaco->Detach();\n            cre.pbaco->_pcrf = pvNil; // we're going away!\n            Debug(_cactRef--;) cre.pbaco->Release();\n        }\n        ReleasePpo(&_pglcre);\n    }\n    Assert(_cactRef == 1, \"someone still refers to this CRF\");\n    ReleasePpo(&_pcfl);\n}\n\n/***************************************************************************\n    Static method to create a new chunky resource file cache.\n***************************************************************************/\nPCRF CRF::PcrfNew(PCFL pcfl, long cbMax)\n{\n    AssertPo(pcfl, 0);\n    AssertIn(cbMax, 0, kcbMax);\n    PCRF pcrf;\n\n    if (pvNil != (pcrf = NewObj CRF(pcfl, cbMax)) && pvNil == (pcrf->_pglcre = GL::PglNew(size(CRE), 5)))\n    {\n        ReleasePpo(&pcrf);\n    }\n    AssertNilOrPo(pcrf, 0);\n    return pcrf;\n}\n\n/***************************************************************************\n    Set the size of the cache. This is most effecient when cbMax is 0\n    (all non-required BACOs are flushed) or is bigger than the current\n    cbMax.\n***************************************************************************/\nvoid CRF::SetCbMax(long cbMax)\n{\n    AssertThis(0);\n    AssertIn(cbMax, 0, kcbMax);\n\n    if (0 == cbMax)\n    {\n        CRE cre;\n        long icre;\n\n        for (icre = _pglcre->IvMac(); icre-- > 0;)\n        {\n            _pglcre->Get(icre, &cre);\n            AssertPo(cre.pbaco, 0);\n            if (cre.pbaco->CactRef() == 0)\n            {\n                Assert(cre.pbaco->_fAttached, \"BACO not attached!\");\n                cre.pbaco->Detach();\n\n                // have to start over in case other BACOs got deleted or\n                // reference counts went to zero\n                icre = _pglcre->IvMac();\n            }\n        }\n    }\n    else if (_cbCur > cbMax)\n        _FPurgeCb(_cbCur - cbMax, klwMax);\n\n    _cbMax = cbMax;\n}\n\n/***************************************************************************\n    Pre-fetch the object.  Returns tYes if the chunk is successfully cached,\n    tNo if the chunk isn't in the CRF and tMaybe if there wasn't room\n    to cache the chunk.\n***************************************************************************/\ntribool CRF::TLoad(CTG ctg, CNO cno, PFNRPO pfnrpo, RSC rsc, long crep)\n{\n    AssertThis(0);\n    Assert(pvNil != pfnrpo, \"bad pfnrpo\");\n    Assert(crep > crepToss, \"crep too small\");\n    CRE cre;\n    long icre;\n    BLCK blck;\n\n    // see if this CRF contains this resource type\n    if (rscNil != rsc && !_pcfl->FFind(kctgRsc, rsc))\n        return tNo;\n\n    // see if it's in the cache\n    if (_FFindCre(ctg, cno, pfnrpo, &icre))\n    {\n        _pglcre->Get(icre, &cre);\n        cre.pbaco->SetCrep(LwMax(cre.pbaco->_crep, crep));\n        cre.cactRelease = _cactRelease++;\n        _pglcre->Put(icre, &cre);\n        return tYes;\n    }\n\n    // see if it's in the chunky file\n    if (!_pcfl->FFind(ctg, cno, &blck))\n        return tNo;\n\n    // get the approximate size of the object\n    if (!(*pfnrpo)(this, ctg, cno, &blck, pvNil, &cre.cb))\n        return tMaybe;\n\n    if (_cbCur + cre.cb > _cbMax)\n    {\n        if (!_FPurgeCb(_cbCur + cre.cb - _cbMax, crep - 1))\n            return tMaybe;\n    }\n\n    if (!(*pfnrpo)(this, ctg, cno, &blck, &cre.pbaco, &cre.cb))\n        return tMaybe;\n\n    AssertPo(cre.pbaco, 0);\n    AssertIn(cre.cb, 0, kcbMax);\n\n    if (_cbCur + cre.cb > _cbMax && !_FPurgeCb(_cbCur + cre.cb - _cbMax, crep - 1))\n    {\n        ReleasePpo(&cre.pbaco);\n        return tMaybe;\n    }\n\n    cre.pbaco->_pcrf = this;\n    cre.pbaco->_ctg = ctg;\n    cre.pbaco->_cno = cno;\n    cre.pbaco->_crep = crep;\n\n    AddRef(); // until the baco is attached it needs a reference count\n    cre.pbaco->_fAttached = fFalse;\n    cre.pfnrpo = pfnrpo;\n    cre.cactRelease = _cactRelease++;\n\n    // indexes may have changed, get the location to insert again\n    AssertDo(!_FFindCre(ctg, cno, pfnrpo, &icre), \"how did this happen?\");\n\n    if (!_pglcre->FInsert(icre, &cre))\n    {\n        // can't keep it loaded\n        ReleasePpo(&cre.pbaco);\n        return tMaybe;\n    }\n\n    _cbCur += cre.cb;\n    cre.pbaco->_fAttached = fTrue;\n    cre.pbaco->Release();\n    Release(); // baco successfully attached, so release its reference count\n\n    return tYes;\n}\n\n/***************************************************************************\n    Make sure the object is loaded and increment its reference count.  If\n    successful, must be balanced with a call to ReleasePpo.\n***************************************************************************/\nPBACO CRF::PbacoFetch(CTG ctg, CNO cno, PFNRPO pfnrpo, bool *pfError, RSC rsc)\n{\n    AssertThis(0);\n    Assert(pvNil != pfnrpo, \"bad pfnrpo\");\n    AssertNilOrVarMem(pfError);\n    CRE cre;\n    long icre;\n    BLCK blck;\n\n    if (pvNil != pfError)\n        *pfError = fFalse;\n\n    // see if this CRF contains this resource type\n    if (rscNil != rsc && !_pcfl->FFind(kctgRsc, rsc))\n        return pvNil;\n\n    // see if it's in the cache\n    if (_FFindCre(ctg, cno, pfnrpo, &icre))\n    {\n        _pglcre->Get(icre, &cre);\n        AssertPo(cre.pbaco, 0);\n        cre.pbaco->AddRef();\n        return cre.pbaco;\n    }\n\n    // see if it's in the chunky file\n    if (!_pcfl->FFind(ctg, cno, &blck))\n        return pvNil;\n\n    // get the object and its size\n    if (!(*pfnrpo)(this, ctg, cno, &blck, &cre.pbaco, &cre.cb))\n    {\n        if (pvNil != pfError)\n            *pfError = fTrue;\n        PushErc(ercCrfCantLoad);\n        return pvNil;\n    }\n\n    AssertPo(cre.pbaco, 0);\n    AssertIn(cre.cb, 0, kcbMax);\n\n    cre.pbaco->_pcrf = this;\n    cre.pbaco->_ctg = ctg;\n    cre.pbaco->_cno = cno;\n    cre.pbaco->_crep = crepNormal;\n\n    AddRef();\n    cre.pbaco->_fAttached = fFalse;\n    cre.pfnrpo = pfnrpo;\n\n    // indexes may have changed, get the location to insert again\n    AssertDo(!_FFindCre(ctg, cno, pfnrpo, &icre), \"how did this happen?\");\n\n    if (!_pglcre->FInsert(icre, &cre))\n    {\n        // return the pbaco anyway.  when it's released it will go away\n        if (pvNil != pfError)\n            *pfError = fTrue;\n        return cre.pbaco;\n    }\n\n    _cbCur += cre.cb;\n    cre.pbaco->_fAttached = fTrue;\n    Release();\n\n    if (_cbCur > _cbMax)\n    {\n        // purge some stuff\n        _FPurgeCb(_cbCur - _cbMax, klwMax);\n    }\n\n    return cre.pbaco;\n}\n\n/***************************************************************************\n    If the object is loaded, increment its reference count and return it.\n    If it's not already loaded, just return nil.\n***************************************************************************/\nPBACO CRF::PbacoFind(CTG ctg, CNO cno, PFNRPO pfnrpo, RSC rsc)\n{\n    AssertThis(0);\n    Assert(pvNil != pfnrpo, \"bad pfnrpo\");\n\n    CRE cre;\n    long icre;\n\n    // see if it's in the cache\n    if (!_FFindCre(ctg, cno, pfnrpo, &icre) || rscNil != rsc && !_pcfl->FFind(kctgRsc, rsc))\n    {\n        return pvNil;\n    }\n\n    _pglcre->Get(icre, &cre);\n    AssertPo(cre.pbaco, 0);\n    cre.pbaco->AddRef();\n    return cre.pbaco;\n}\n\n/***************************************************************************\n    If the baco indicated chunk is cached, set its crep.  Returns true\n    iff the baco was cached.\n***************************************************************************/\nbool CRF::FSetCrep(long crep, CTG ctg, CNO cno, PFNRPO pfnrpo, RSC rsc)\n{\n    AssertThis(0);\n    Assert(pvNil != pfnrpo, \"bad pfnrpo\");\n\n    CRE cre;\n    long icre;\n\n    // see if it's in the cache\n    if (!_FFindCre(ctg, cno, pfnrpo, &icre) || rscNil != rsc && !_pcfl->FFind(kctgRsc, rsc))\n    {\n        return fFalse;\n    }\n\n    _pglcre->Get(icre, &cre);\n    AssertPo(cre.pbaco, 0);\n    cre.pbaco->SetCrep(crep);\n    return fTrue;\n}\n\n/***************************************************************************\n    Return this if the chunk is in this crf, otherwise return nil. The\n    caller is not given a reference count.\n***************************************************************************/\nPCRF CRF::PcrfFindChunk(CTG ctg, CNO cno, RSC rsc)\n{\n    AssertThis(0);\n\n    if (!_pcfl->FFind(ctg, cno) || rscNil != rsc && !_pcfl->FFind(kctgRsc, rsc))\n    {\n        return pvNil;\n    }\n\n    return this;\n}\n\n/***************************************************************************\n    Check the _fAttached flag.  If it's false, make sure the BACO is not\n    in the CRF.\n***************************************************************************/\nvoid CRF::BacoDetached(PBACO pbaco)\n{\n    AssertThis(0);\n    AssertPo(pbaco, 0);\n    Assert(pbaco->_pcrf == this, \"BACO doesn't have right CRF\");\n    long icre;\n    CRE cre;\n\n    if (pbaco->_fAttached)\n    {\n        Bug(\"who's calling BacoDetached?\");\n        return;\n    }\n    if (!_FFindBaco(pbaco, &icre))\n    {\n        Bug(\"why isn't the BACO in the CRF?\");\n        return;\n    }\n    _pglcre->Get(icre, &cre);\n    _cbCur -= cre.cb;\n    AssertIn(_cbCur, 0, kcbMax);\n    _pglcre->Delete(icre);\n}\n\n/***************************************************************************\n    The BACO was released.  See if it should be flushed.\n***************************************************************************/\nvoid CRF::BacoReleased(PBACO pbaco)\n{\n    AssertThis(0);\n    AssertPo(pbaco, 0);\n    Assert(pbaco->_pcrf == this, \"BACO doesn't have right CRF\");\n    long icre;\n    CRE cre;\n\n    if (!pbaco->_fAttached || pbaco->CactRef() != 0)\n    {\n        Bug(\"who's calling BacoReleased?\");\n        return;\n    }\n\n    if (!_FFindBaco(pbaco, &icre))\n    {\n        Bug(\"why isn't the BACO in the CRF?\");\n        return;\n    }\n    _pglcre->Get(icre, &cre);\n    cre.cactRelease = _cactRelease++;\n    _pglcre->Put(icre, &cre);\n\n    if (pbaco->_crep <= crepToss || _cbCur > _cbMax)\n    {\n        // toss it\n        pbaco->Detach();\n    }\n}\n\n/***************************************************************************\n    Find the cre corresponding to the (ctg, cno, pfnrpo).  Set *picre to\n    its location (or where it would be if it were in the list).\n***************************************************************************/\nbool CRF::_FFindCre(CTG ctg, CNO cno, PFNRPO pfnrpo, long *picre)\n{\n    AssertThis(0);\n    AssertVarMem(picre);\n    CRE *qrgcre, *qcre;\n    long icreMin, icreLim, icre;\n\n    // Do a binary search.  The CREs are sorted by (ctg, cno, pfnrpo).\n    qrgcre = (CRE *)_pglcre->QvGet(0);\n    for (icreMin = 0, icreLim = _pglcre->IvMac(); icreMin < icreLim;)\n    {\n        icre = (icreMin + icreLim) / 2;\n        qcre = qrgcre + icre;\n        AssertPo(qcre->pbaco, 0);\n        if (ctg < qcre->pbaco->_ctg)\n            icreLim = icre;\n        else if (ctg > qcre->pbaco->_ctg)\n            icreMin = icre + 1;\n        else if (cno < qcre->pbaco->_cno)\n            icreLim = icre;\n        else if (cno > qcre->pbaco->_cno)\n            icreMin = icre + 1;\n        else if (pfnrpo == qcre->pfnrpo)\n        {\n            *picre = icre;\n            return fTrue;\n        }\n        else if (pfnrpo < qcre->pfnrpo)\n            icreLim = icre;\n        else\n            icreMin = icre + 1;\n    }\n\n    *picre = icreMin;\n    return fFalse;\n}\n\n/***************************************************************************\n    Find the cre corresponding to the BACO.  Set *picre to its location.\n***************************************************************************/\nbool CRF::_FFindBaco(PBACO pbaco, long *picre)\n{\n    AssertThis(0);\n    AssertPo(pbaco, 0);\n    Assert(pbaco->_pcrf == this, \"BACO doesn't have right CRF\");\n    AssertVarMem(picre);\n    CTG ctg;\n    CNO cno;\n    CRE *qrgcre, *qcre;\n    long icreMin, icreLim, icre;\n\n    ctg = pbaco->_ctg;\n    cno = pbaco->_cno;\n\n    // Do a binary search.  The CREs are sorted by (ctg, cno, pfnrpo).\n    qrgcre = (CRE *)_pglcre->QvGet(0);\n    for (icreMin = 0, icreLim = _pglcre->IvMac(); icreMin < icreLim;)\n    {\n        icre = (icreMin + icreLim) / 2;\n        qcre = qrgcre + icre;\n        AssertPo(qcre->pbaco, 0);\n        if (ctg < qcre->pbaco->_ctg)\n            icreLim = icre;\n        else if (ctg > qcre->pbaco->_ctg)\n            icreMin = icre + 1;\n        else if (cno < qcre->pbaco->_cno)\n            icreLim = icre;\n        else if (cno > qcre->pbaco->_cno)\n            icreMin = icre + 1;\n        else if (pbaco == qcre->pbaco)\n        {\n            *picre = icre;\n            return fTrue;\n        }\n        else\n        {\n            // we've found the (ctg, cno), now look for the BACO\n            for (icreMin = icre; icreMin-- > 0;)\n            {\n                qcre = qrgcre + icreMin;\n                if (qcre->pbaco->_ctg != ctg || qcre->pbaco->_cno != cno)\n                    break;\n                if (qcre->pbaco == pbaco)\n                {\n                    *picre = icreMin;\n                    return fTrue;\n                }\n            }\n            for (icreLim = icre; ++icreLim < _pglcre->IvMac();)\n            {\n                qcre = qrgcre + icreLim;\n                if (qcre->pbaco->_ctg != ctg || qcre->pbaco->_cno != cno)\n                    break;\n                if (qcre->pbaco == pbaco)\n                {\n                    *picre = icreLim;\n                    return fTrue;\n                }\n            }\n            TrashVar(picre);\n            return fFalse;\n        }\n    }\n\n    TrashVar(picre);\n    return fFalse;\n}\n\n/***************************************************************************\n    Try to purge at least cbPurge bytes of space.  Doesn't free anything\n    with a crep > crepLast or that is locked.\n***************************************************************************/\nbool CRF::_FPurgeCb(long cbPurge, long crepLast)\n{\n    AssertThis(0);\n    AssertIn(cbPurge, 1, kcbMax);\n    if (crepLast <= crepToss)\n        return fFalse;\n\n    CRE cre;\n    long icreMac;\n\n    while (0 < (icreMac = _pglcre->IvMac()))\n    {\n        // We want to find the \"best\" element to free.  This is determined by\n        // keeping a \"best so far\" element, which we compare each element to.\n        // If the cre has a larger crep, it is worse, so just continue.\n        // If the cre has a smaller crep, it is better.  When the crep values\n        // are the same, we score it based on when the cre was last released\n        // (how many releases have happened since the cre was last used) and\n        // how different the cb is from cbPurge.  Each release is worth\n        // kcbRelease bytes.  Bytes short of cbPurge are considered worse\n        // (by a factor of 3) than bytes beyond cbPurge, so we favor elements\n        // that are larger than cbPurge.\n        // REVIEW shonk: tune kcbRelease and the weighting factor...\n        const long kcbRelease = 256;\n        long icre, crep;\n        long lw, dcb;\n        long lwBest = klwMax;\n        long icreBest = ivNil;\n        long crepBest = crepLast;\n\n        for (icre = 0; icre < icreMac; icre++)\n        {\n            _pglcre->Get(icre, &cre);\n            AssertPo(cre.pbaco, 0);\n            if (cre.pbaco->CactRef() > 0 || (crep = cre.pbaco->_crep) > crepBest)\n            {\n                continue;\n            }\n            Assert(crep <= crepBest, 0);\n            AssertIn(cre.cactRelease, 0, _cactRelease);\n\n            dcb = cre.cb - cbPurge;\n            lw = -LwMul(kcbRelease, LwMin(kcbMax / kcbRelease, _cactRelease - cre.cactRelease)) + LwMul(2, LwAbs(dcb)) -\n                 dcb;\n            if (crep < crepBest || lw < lwBest)\n            {\n                icreBest = icre;\n                crepBest = crep;\n                lwBest = lw;\n            }\n        }\n\n        if (ivNil == icreBest)\n            return fFalse;\n\n        _pglcre->Get(icreBest, &cre);\n        Assert(cre.pbaco->_fAttached, \"BACO not attached!\");\n        cre.pbaco->Detach();\n\n        if (0 >= (cbPurge -= cre.cb))\n            return fTrue;\n    }\n\n    return fFalse;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a CRF (chunky resource file).\n***************************************************************************/\nvoid CRF::AssertValid(ulong grf)\n{\n    CRF_PAR::AssertValid(fobjAllocated);\n    AssertPo(_pglcre, 0);\n    AssertPo(_pcfl, 0);\n    AssertIn(_cbMax, 0, kcbMax);\n    AssertIn(_cbCur, 0, kcbMax);\n    AssertIn(_cactRelease, 0, kcbMax);\n}\n\n/***************************************************************************\n    Mark memory used by a CRF.\n***************************************************************************/\nvoid CRF::MarkMem(void)\n{\n    AssertThis(0);\n    long icre;\n    CRE cre;\n\n    CRF_PAR::MarkMem();\n    MarkMemObj(_pglcre);\n    MarkMemObj(_pcfl);\n\n    for (icre = _pglcre->IvMac(); icre-- > 0;)\n    {\n        _pglcre->Get(icre, &cre);\n        AssertPo(cre.pbaco, 0);\n        Assert(cre.pbaco->_fAttached, \"baco claims to not be attached!\");\n        cre.pbaco->_fAttached = fTrue; // safety to avoid infinite recursion\n        MarkMemObj(cre.pbaco);\n    }\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Destructor for Chunky resource manager.\n***************************************************************************/\nCRM::~CRM(void)\n{\n    AssertBaseThis(fobjAllocated);\n    long ipcrf;\n    PCRF pcrf;\n\n    if (pvNil != _pglpcrf)\n    {\n        for (ipcrf = _pglpcrf->IvMac(); ipcrf-- > 0;)\n        {\n            _pglpcrf->Get(ipcrf, &pcrf);\n            AssertPo(pcrf, 0);\n            ReleasePpo(&pcrf);\n        }\n        ReleasePpo(&_pglpcrf);\n    }\n}\n\n/***************************************************************************\n    Static method to create a new CRM.\n***************************************************************************/\nPCRM CRM::PcrmNew(long ccrfInit)\n{\n    AssertIn(ccrfInit, 0, kcbMax);\n    PCRM pcrm;\n\n    if (pvNil == (pcrm = NewObj CRM()))\n        return pvNil;\n    if (pvNil == (pcrm->_pglpcrf = GL::PglNew(size(PCRF), ccrfInit)))\n    {\n        ReleasePpo(&pcrm);\n        return pvNil;\n    }\n    AssertPo(pcrm, 0);\n    return pcrm;\n}\n\n/***************************************************************************\n    Prefetch the object if there is room in the cache.  Assigns the fetched\n    object the given priority (crep).\n***************************************************************************/\ntribool CRM::TLoad(CTG ctg, CNO cno, PFNRPO pfnrpo, RSC rsc, long crep)\n{\n    AssertThis(0);\n    Assert(pvNil != pfnrpo, \"nil object reader\");\n    PCRF pcrf;\n    tribool t;\n    long ipcrf;\n    long cpcrf = _pglpcrf->IvMac();\n\n    for (ipcrf = 0; ipcrf < cpcrf; ipcrf++)\n    {\n        _pglpcrf->Get(ipcrf, &pcrf);\n        AssertPo(pcrf, 0);\n        t = pcrf->TLoad(ctg, cno, pfnrpo, rsc, crep);\n        if (t != tNo)\n            return t;\n    }\n    return tNo;\n}\n\n/***************************************************************************\n    Make sure the object is loaded and increment its reference count.  If\n    successful, must be balanced with a call to ReleasePpo.  If this fails,\n    and pfError is not nil, *pfError is set iff the chunk exists but\n    couldn't be loaded.\n***************************************************************************/\nPBACO CRM::PbacoFetch(CTG ctg, CNO cno, PFNRPO pfnrpo, bool *pfError, RSC rsc)\n{\n    AssertThis(0);\n    Assert(pvNil != pfnrpo, \"nil object reader\");\n    AssertNilOrVarMem(pfError);\n    PCRF pcrf;\n    long ipcrf;\n    bool fError = fFalse;\n    PBACO pbaco = pvNil;\n    long cpcrf = _pglpcrf->IvMac();\n\n    for (ipcrf = 0; ipcrf < cpcrf; ipcrf++)\n    {\n        _pglpcrf->Get(ipcrf, &pcrf);\n        AssertPo(pcrf, 0);\n        pbaco = pcrf->PbacoFetch(ctg, cno, pfnrpo, &fError, rsc);\n        if (pvNil != pbaco || fError)\n            break;\n    }\n    if (pvNil != pfError)\n        *pfError = fError;\n    AssertNilOrPo(pbaco, 0);\n    return pbaco;\n}\n\n/***************************************************************************\n    If the object is loaded, increment its reference count and return it.\n    If it's not already loaded, just return nil.\n***************************************************************************/\nPBACO CRM::PbacoFind(CTG ctg, CNO cno, PFNRPO pfnrpo, RSC rsc)\n{\n    AssertThis(0);\n    Assert(pvNil != pfnrpo, \"nil object reader\");\n\n    PCRF pcrf;\n\n    if (pvNil == (pcrf = PcrfFindChunk(ctg, cno, rsc)))\n        return pvNil;\n\n    return pcrf->PbacoFind(ctg, cno, pfnrpo);\n}\n\n/***************************************************************************\n    If the chunk is cached, set its crep.  Returns true iff the chunk\n    was cached.\n***************************************************************************/\nbool CRM::FSetCrep(long crep, CTG ctg, CNO cno, PFNRPO pfnrpo, RSC rsc)\n{\n    AssertThis(0);\n    Assert(pvNil != pfnrpo, \"nil object reader\");\n    PCRF pcrf;\n    long ipcrf;\n    long cpcrf = _pglpcrf->IvMac();\n\n    for (ipcrf = 0; ipcrf < cpcrf; ipcrf++)\n    {\n        _pglpcrf->Get(ipcrf, &pcrf);\n        AssertPo(pcrf, 0);\n        if (pcrf->FSetCrep(crep, ctg, cno, pfnrpo, rsc))\n            return fTrue;\n    }\n    return fFalse;\n}\n\n/***************************************************************************\n    Return which CRF the given chunk is in. The caller is not given a\n    reference count.\n***************************************************************************/\nPCRF CRM::PcrfFindChunk(CTG ctg, CNO cno, RSC rsc)\n{\n    AssertThis(0);\n    PCRF pcrf;\n    long ipcrf;\n    long cpcrf = _pglpcrf->IvMac();\n\n    for (ipcrf = 0; ipcrf < cpcrf; ipcrf++)\n    {\n        _pglpcrf->Get(ipcrf, &pcrf);\n        AssertPo(pcrf, 0);\n\n        if (pcrf->Pcfl()->FFind(ctg, cno) && (rscNil == rsc || pcrf->Pcfl()->FFind(kctgRsc, rsc)))\n        {\n            return pcrf;\n        }\n    }\n\n    return pvNil;\n}\n\n/***************************************************************************\n    Add a chunky file to the list of chunky resource files, by\n    creating the chunky resource file object and adding it to the GL\n***************************************************************************/\nbool CRM::FAddCfl(PCFL pcfl, long cbMax, long *piv)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n    AssertIn(cbMax, 0, kcbMax);\n    AssertNilOrVarMem(piv);\n\n    PCRF pcrf;\n\n    if (pvNil == (pcrf = CRF::PcrfNew(pcfl, cbMax)))\n    {\n        TrashVar(piv);\n        return fFalse;\n    }\n    if (!_pglpcrf->FAdd(&pcrf, piv))\n    {\n        ReleasePpo(&pcrf);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the icrf'th CRF.\n***************************************************************************/\nPCRF CRM::PcrfGet(long icrf)\n{\n    AssertThis(0);\n    AssertIn(icrf, 0, kcbMax);\n    PCRF pcrf;\n\n    if (!FIn(icrf, 0, _pglpcrf->IvMac()))\n        return pvNil;\n\n    _pglpcrf->Get(icrf, &pcrf);\n    AssertPo(pcrf, 0);\n    return pcrf;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Check the sanity of the CRM\n***************************************************************************/\nvoid CRM::AssertValid(ulong grfobj)\n{\n    CRM_PAR::AssertValid(grfobj | fobjAllocated);\n    AssertPo(_pglpcrf, 0);\n}\n\n/***************************************************************************\n    mark the memory associated with the CRM\n***************************************************************************/\nvoid CRM::MarkMem(void)\n{\n    AssertThis(0);\n    long ipcrf;\n    long cpcrf;\n    PCRF pcrf;\n\n    CRM_PAR::MarkMem();\n    MarkMemObj(_pglpcrf);\n\n    for (ipcrf = 0, cpcrf = _pglpcrf->IvMac(); ipcrf < cpcrf; ipcrf++)\n    {\n        _pglpcrf->Get(ipcrf, &pcrf);\n        AssertPo(pcrf, 0);\n        MarkMemObj(pcrf);\n    }\n}\n#endif // DEBUG\n\n/***************************************************************************\n    A PFNRPO to read GHQ objects.\n***************************************************************************/\nbool GHQ::FReadGhq(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n    GHQ *pghq;\n    HQ hq;\n\n    *pcb = pblck->Cb(fTrue);\n    if (pvNil == ppbaco)\n        return fTrue;\n\n    if (!pblck->FUnpackData() || hqNil == (hq = pblck->HqFree()))\n    {\n        TrashVar(pcb);\n        TrashVar(ppbaco);\n        return fFalse;\n    }\n    *pcb = CbOfHq(hq);\n\n    if (pvNil == (pghq = NewObj GHQ(hq)))\n    {\n        FreePhq(&hq);\n        TrashVar(pcb);\n        TrashVar(ppbaco);\n        return fFalse;\n    }\n    *ppbaco = pghq;\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a GHQ.\n***************************************************************************/\nvoid GHQ::AssertValid(ulong grf)\n{\n    GHQ_PAR::AssertValid(grf);\n    if (hqNil != hq)\n        AssertHq(hq);\n}\n\n/***************************************************************************\n    Mark memory used by the GHQ.\n***************************************************************************/\nvoid GHQ::MarkMem(void)\n{\n    GHQ_PAR::MarkMem();\n    MarkHq(hq);\n}\n#endif // DEBUG\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a CABO.\n***************************************************************************/\nvoid CABO::AssertValid(ulong grf)\n{\n    CABO_PAR::AssertValid(grf);\n    AssertNilOrPo(po, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the CABO.\n***************************************************************************/\nvoid CABO::MarkMem(void)\n{\n    CABO_PAR::MarkMem();\n    MarkMemObj(po);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/crf.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Chunky resource file management. A CRF is a cache wrapped around a\n    chunky file. A CRM is a list of CRFs. A BACO is an object that\n    can be cached in a CRF. An RCA is an interface that CRF and CRM both\n    implement (are a super set of).\n\n***************************************************************************/\n#ifndef CHRES_H\n#define CHRES_H\n\ntypedef class CRF *PCRF;\ntypedef CNO RSC;\nconst RSC rscNil = 0L;\n\n// chunky resource entry priority\nenum\n{\n    crepToss,\n    crepTossFirst,\n    crepNormal,\n};\n\n/***************************************************************************\n    Base cacheable object.  All cacheable objects must be based on BACO.\n***************************************************************************/\ntypedef class BACO *PBACO;\n#define BACO_PAR BASE\n#define kclsBACO 'BACO'\nclass BACO : public BACO_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  private:\n    // These fields are owned by the CRF\n    PCRF _pcrf; // The BACO has a ref count on this iff !_fAttached\n    CTG _ctg;\n    CNO _cno;\n    long _crep : 16;\n    long _fAttached : 1;\n\n    friend class CRF;\n\n  protected:\n    BACO(void);\n    ~BACO(void);\n\n  public:\n    virtual void Release(void);\n\n    virtual void SetCrep(long crep);\n    virtual void Detach(void);\n\n    CTG Ctg(void)\n    {\n        return _ctg;\n    }\n    CNO Cno(void)\n    {\n        return _cno;\n    }\n    PCRF Pcrf(void)\n    {\n        return _pcrf;\n    }\n    long Crep(void)\n    {\n        return _crep;\n    }\n\n    // Many objects know how big they are, and how to write themselves to a\n    // chunky file.  Here are some useful prototypes so that the users of those\n    // objects don't need to know what the actual class is.\n    virtual bool FWrite(PBLCK pblck);\n    virtual bool FWriteFlo(PFLO pflo);\n    virtual long CbOnFile(void);\n};\n\n/***************************************************************************\n    Chunky resource cache - this is a pure virtual class that supports\n    the crf and crm classes.\n***************************************************************************/\n// Object reader function - must handle ppo == pvNil, in which case, the\n// *pcb should be set to an estimate of the size when read.\ntypedef bool FNRPO(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\ntypedef FNRPO *PFNRPO;\n\ntypedef class RCA *PRCA;\n#define RCA_PAR BASE\n#define kclsRCA 'RCA'\nclass RCA : public RCA_PAR\n{\n    RTCLASS_DEC\n\n  public:\n    virtual tribool TLoad(CTG ctg, CNO cno, PFNRPO pfnrpo, RSC rsc = rscNil, long crep = crepNormal) = 0;\n    virtual PBACO PbacoFetch(CTG ctg, CNO cno, PFNRPO pfnrpo, bool *pfError = pvNil, RSC rsc = rscNil) = 0;\n    virtual PBACO PbacoFind(CTG ctg, CNO cno, PFNRPO pfnrpo, RSC rsc = rscNil) = 0;\n    virtual bool FSetCrep(long crep, CTG ctg, CNO cno, PFNRPO pfnrpo, RSC rsc = rscNil) = 0;\n    virtual PCRF PcrfFindChunk(CTG ctg, CNO cno, RSC rsc = rscNil) = 0;\n};\n\n/***************************************************************************\n    Chunky resource file.\n***************************************************************************/\n#define CRF_PAR RCA\n#define kclsCRF 'CRF'\nclass CRF : public CRF_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    struct CRE\n    {\n        PFNRPO pfnrpo;    // object reader\n        long cactRelease; // the last time this object was released\n        BACO *pbaco;      // the object\n        long cb;          // size of data\n    };\n\n    PCFL _pcfl;\n    PGL _pglcre; // sorted by (cki, pfnrpo)\n    long _cbMax;\n    long _cbCur;\n    long _cactRelease;\n\n    CRF(PCFL pcfl, long cbMax);\n    bool _FFindCre(CTG ctg, CNO cno, PFNRPO pfnrpo, long *picre);\n    bool _FFindBaco(PBACO pbaco, long *picre);\n    bool _FPurgeCb(long cbPurge, long crepLast);\n\n  public:\n    ~CRF(void);\n    static PCRF PcrfNew(PCFL pcfl, long cbMax);\n\n    virtual tribool TLoad(CTG ctg, CNO cno, PFNRPO pfnrpo, RSC rsc = rscNil, long crep = crepNormal);\n    virtual PBACO PbacoFetch(CTG ctg, CNO cno, PFNRPO pfnrpo, bool *pfError = pvNil, RSC rsc = rscNil);\n    virtual PBACO PbacoFind(CTG ctg, CNO cno, PFNRPO pfnrpo, RSC rsc = rscNil);\n    virtual bool FSetCrep(long crep, CTG ctg, CNO cno, PFNRPO pfnrpo, RSC rsc = rscNil);\n    virtual PCRF PcrfFindChunk(CTG ctg, CNO cno, RSC rsc = rscNil);\n\n    long CbMax(void)\n    {\n        return _cbMax;\n    }\n    void SetCbMax(long cbMax);\n\n    PCFL Pcfl(void)\n    {\n        return _pcfl;\n    }\n\n    // These APIs are intended for BACO use only\n    void BacoDetached(PBACO pbaco);\n    void BacoReleased(PBACO pbaco);\n};\n\n/***************************************************************************\n    Chunky resource manager - a list of CRFs.\n***************************************************************************/\ntypedef class CRM *PCRM;\n#define CRM_PAR RCA\n#define kclsCRM 'CRM'\nclass CRM : public CRM_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PGL _pglpcrf;\n\n    CRM(void)\n    {\n    }\n\n  public:\n    ~CRM(void);\n    static PCRM PcrmNew(long ccrfInit);\n\n    virtual tribool TLoad(CTG ctg, CNO cno, PFNRPO pfnrpo, RSC rsc = rscNil, long crep = crepNormal);\n    virtual PBACO PbacoFetch(CTG ctg, CNO cno, PFNRPO pfnrpo, bool *pfError = pvNil, RSC rsc = rscNil);\n    virtual PBACO PbacoFind(CTG ctg, CNO cno, PFNRPO pfnrpo, RSC rsc = rscNil);\n    virtual bool FSetCrep(long crep, CTG ctg, CNO cno, PFNRPO pfnrpo, RSC rsc = rscNil);\n    virtual PCRF PcrfFindChunk(CTG ctg, CNO cno, RSC rsc = rscNil);\n\n    bool FAddCfl(PCFL pcfl, long cbMax, long *piv = pvNil);\n    long Ccrf(void)\n    {\n        AssertThis(0);\n        return _pglpcrf->IvMac();\n    }\n    PCRF PcrfGet(long icrf);\n};\n\n/***************************************************************************\n    An object (BACO) wrapper around a generic HQ.\n***************************************************************************/\n#define GHQ_PAR BACO\ntypedef class GHQ *PGHQ;\n#define kclsGHQ 'GHQ'\nclass GHQ : public GHQ_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  public:\n    HQ hq;\n\n    GHQ(HQ hqT)\n    {\n        hq = hqT;\n    }\n    ~GHQ(void)\n    {\n        FreePhq(&hq);\n    }\n\n    // An object reader for a GHQ.\n    static bool FReadGhq(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n};\n\n/***************************************************************************\n    A BACO wrapper around a generic object.\n***************************************************************************/\n#define CABO_PAR BACO\ntypedef class CABO *PCABO;\n#define kclsCABO 'CABO'\nclass CABO : public CABO_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  public:\n    BASE *po;\n\n    CABO(BASE *poT)\n    {\n        po = poT;\n    }\n    ~CABO(void)\n    {\n        ReleasePpo(&po);\n    }\n};\n\n#endif //! CHRES_H\n"
  },
  {
    "path": "kauai/src/csapi.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* CSAPI.H - API entry header file for CSAPI\n *\n * See Csapi.Doc for details on the CSAPI.\n * Note that the double slash comment // should not be used in this file\n *  since THINK_C does not support this format.\n */\n#ifndef CSAPI_H\n#define CSAPI_H\n\n#ifdef NT\ntypedef unsigned SC_MDR; /* main dictionary reference*/\ntypedef unsigned SC_UDR; /* user dictionary reference*/\n#else\ntypedef unsigned short SC_MDR; /* main dictionary reference*/\ntypedef unsigned short SC_UDR; /* user dictionary reference*/\n#endif\ntypedef unsigned short SC_CC; /* Spell Check Command Code */\n\n/* SPLID is the replacement for SID due to a conflict with the Windows NT\n    header files.  References to sid i.e. sidSA are left unchanged for\n    the sake of less required code changes. */\ntypedef unsigned long SC_SPLID; /* Spell Id type */\ntypedef unsigned short SC_SCIS; /* SpellCheckInputStatus*/\ntypedef unsigned short SC_SCRS; /* SpellCheckReturnStatus */\n\ntypedef unsigned short SC_LID; /* two byte language identifier code */\n\n/* Comment out as needed */\ntypedef unsigned char SC_BYTE;\ntypedef unsigned short SC_WORD;\ntypedef char SC_CHAR;\n#ifdef NT\ntypedef int SC_BOOL;\n#else\ntypedef short SC_BOOL;\n#endif\n\n/* All undefined or unused chars should be mapped to bIgnore. */\ntypedef struct WizSpecChars\n{\n    SC_BYTE bIgnore;\n    SC_BYTE bHyphenHard;\n    SC_BYTE bHyphenSoft;\n    SC_BYTE bHyphenNonBreaking;\n    SC_BYTE bEmDash;\n    SC_BYTE bEnDash;\n    SC_BYTE bEllipsis;\n    SC_BYTE rgLineBreak[2];\n    SC_BYTE rgParaBreak[2];\n} SC_WSC;\n\n#ifndef SC_FAR\n#ifdef MAC\n#define SC_FAR\n#else\n#define SC_FAR far\n#endif\n#endif\n\n/************************** Structure Typedefs *************/\n\ntypedef SC_WORD SC_SEC; /* Spell Error Code.  Low byte for major code, High byte for minor.*/\n\ntypedef struct SpellInputBuffer\n{\n    unsigned short cch;         /* Total characters in buffer area  */\n    unsigned short cMdr;        /* Count of MDR's specified in lrgMdr */\n    unsigned short cUdr;        /* Should not reference Exclusion UDR's.\n                                    Count of UDR's specified in lrgUdr */\n    unsigned short wSpellState; /* State relative to previous SpellCheck() call */\n    SC_CHAR SC_FAR *lrgch;      /* ptr to buf area of text to be spell checked */\n    SC_MDR SC_FAR *lrgMdr;      /* List of main dicts to use when spelling the buffer */\n    SC_UDR SC_FAR *lrgUdr;      /* Should not reference Exclusion UDR's.\n                              List of user dicts to use when spelling the buffer */\n} SC_SIB;\ntypedef SC_SIB SC_FAR *LPSC_SIB;\n\ntypedef struct SpellReturnBuffer\n{\n    /* These fields are set by the SpellCheck() function */\n    /* reference word in error or flagged into SC_SIB. */\n    unsigned short ichError; /*position in the SC_SIB */\n    unsigned short cchError; /*Length of error \"word\" in SC_SIB.*/\n\n    /* These fields are set by the SpellCheck() function. */\n    SC_SCRS scrs;          /*spell check return status. Set by SC()*/\n    unsigned short csz;    /*count of sz's put in buffer. Set by SC*/\n    unsigned short cchMac; /* Current total of chars in buffer. */\n\n    /* These fields MUST be set by the app, NULL pointers are invalid */\n    unsigned short cch;         /* total space in lrgch.  Set by App. */\n    SC_CHAR SC_FAR *lrgsz;      /* ptr to alternatives.\n                             format: word\\0word\\0...word\\0\\0*/\n    SC_BYTE SC_FAR *lrgbRating; /* ptr to Rating value for each sugg. returned.\n                             Parallel to lrgsz array.  Allocated by App.*/\n    unsigned short cbRate;      /* Number of elements in lrgbRating.\n                                   Set by App. lrgbRating must be this long.*/\n} SC_SRB;\ntypedef SC_SRB SC_FAR *LPSC_SRB;\n\ntypedef struct mdrs\n{\n    SC_MDR mdr;\n    SC_LID sclid;\n    SC_UDR udrExc;\n} SC_MDRS;\ntypedef SC_MDRS SC_FAR *LPSC_MDRS;\n\n#ifndef MAC\ntypedef SC_CHAR SC_FAR *LPSC_PATH; /* ptr to full Sz path string. */\n#else\ntypedef struct spath\n{\n    short volRefNum;\n    long dirID;\n    SC_CHAR *lpszFilePath; /* lpSzFile is local Sz path string for MAC,\n                           it is the local file path which will be\n                           used with the volRefNum.\n                        */\n} SC_PATH;\ntypedef SC_PATH *LPSC_PATH;\n#endif /* !MAC */\n\n/*-------------------------------------------------------*/\n/* All Defines*/\n\n/* Explicit word delimeters. */\n#define chSpaceSpell                                                                                                   \\\n    0x20 /* ' ' space.  Also used to delimit                                                                           \\\n            \"change always\" pairs */\n#define chTabSpell                                                                                                     \\\n    0x09 /* TAB.  Can be word delimeter or a                                                                           \\\n            string delimiter for \"change once\" lists.*/\n/*** Additional Word Delimeters. */\n/* [] {} () <> /  EmDash EnDash Ellipsis New_Paragraph */\n\n#define chLParenSpell 0x28\n#define chRParenSpell 0x29\n#define chLBracketSpell 0x7B\n#define chRBracketSpell 0x7D\n#define chLBraceSpell 0x5B\n#define chRBraceSpell 0x5D\n#define chLessThanSpell 0x3C\n#define chGreaterThanSpell 0x3E\n#define chForwardSlashSpell 0x2F\n\n/* Spell Id Engine Defines */\n#define sidSA 1  /* SoftArt */\n#define sidHM 2  /* Houghton-Mifflin (InfoSoft) */\n#define sidML 3  /* MicroLytics */\n#define sidLS 4  /* LanSer Data */\n#define sidCT 5  /* Center of Educational Technology */\n#define sidHS 6  /* HSoft */\n#define sidMO 7  /* MorphoLogic */\n#define sidTI 8  /* TiP */\n#define sidKF 9  /* Korea Foreign Language University */\n#define sidPI 10 /* Priberam Informatica Lince */\n#define sidGS 11 /* Glyph Systems */\n#define sidRA 12 /* Radiar */\n#define sidIN 13 /* Intracom */\n\n/* IPG two byte language id's.  Returned in SC_LID field. */\n#define ksclidAmerican 0x0409       /* \"AM\" American English   */\n#define ksclidAustralian 0x0c09     /* \"EA\" English Australian */\n#define ksclidBritish 0x0809        /* \"BR\" English            */\n#define ksclidCatalan 0x0403        /* \"CT\" Catalan            */\n#define ksclidDanish 0x0406         /* \"DA\" Danish             */\n#define ksclidDutch 0x0413          /* \"NL\" Dutch              */\n#define ksclidDutchPreferred 0x0013 /* \"NL\" Dutch Preferred    */\n#define ksclidFinnish 0x040b        /* \"FI\" Finish             */\n#define ksclidFrench 0x040c         /* \"FR\" French             */\n#define ksclidFrenchCanadian 0x0c0c /* \"FC\" French Canadian    */\n#define ksclidGerman 0x0407         /* \"GE\" German             */\n#define ksclidSwissGerman 0x0807    /* \"GS\" German Swiss       */\n#define ksclidItalian 0x0410        /* \"IT\" Italian            */\n#define ksclidNorskBokmal 0x0414    /* \"NO\" Norwegian Bokmal   */\n#define ksclidNorskNynorsk 0x0814   /* \"NN\" Norwegian Nynorsk  */\n#define ksclidPortBrazil 0x0416     /* \"PB\" Portuguese Brazil  */\n#define ksclidPortIberian 0x0816    /* \"PT\" Portuguese Iberian */\n#define ksclidSpanish 0x040a        /* \"SP\" Spanish            */\n#define ksclidSwedish 0x041d        /* \"SW\" Swedish            */\n#define ksclidRussian 0x0419        /* \"RU\" Russian            */\n#define ksclidCzech 0x0405          /* \"CZ\" Czech              */\n#define ksclidHungarian 0x040e      /* \"HU\" Hungarian          */\n#define ksclidPolish 0x0415         /* \"PL\" Polish             */\n#define ksclidTurkish 0x041f        /* \"TR\" Turkish            */\n/* African languages */\n#define ksclidSutu 0x0430      /* \"ST\" Sutu               */\n#define ksclidTsonga 0x0431    /* \"TS\" Tsonga             */\n#define ksclidTswana 0x0432    /* \"TN\" Tswana             */\n#define ksclidVenda 0x0433     /* \"VE\" Venda\t\t\t   */\n#define ksclidXhosa 0x0434     /* \"XH\" Xhosa              */\n#define ksclidZulu 0x0435      /* \"ZU\" Zulu               */\n#define ksclidAfrikaans 0x0436 /* \"AF\" Afrikaans          */\n/* These are currently not used, but added for future support. */\n#define ksclidArabic 0x0401\n#define ksclidHebrew 0x040d\n#define ksclidJapanese 0x0411\n#define ksclidLatin 0x041a    /* Croato-Serbian (Latin)   */\n#define ksclidCyrillic 0x081a /* Serbo-Croatian (Cyrillic) */\n#define ksclidSlovak 0x041b\n\n#define LID_UNKNOWN 0xffff\n#define ksclidUnknown 0xffff\n\n/* Ram Cache User Dictionary Reference. */\n#define udrChangeOnce 0xfffc   /* UDR reserved reference for Change Once list    */\n#define udrChangeAlways 0xfffd /* UDR reserved reference for Change Always list  */\n#define udrIgnoreAlways 0xfffe /* UDR reserved reference for Ingore Always list. */\n\n/* Word List property types.  Note: Code relies on being == to above udr's! */\n#define ChangeOnceProp udrChangeOnce\n#define ChangeAlwaysProp udrChangeAlways\n#define IgnoreAlwaysProp udrIgnoreAlways\n\n/* Bitfield definitions for SpellInit() Status */\n#define fscisWildCardSupport 0x0001\n#define fscisMultiDictSupport 0x0002\n#define fscisHyphenationSupport 0x0004\n#define scisNULL 0x0000\n\n/* Spell Check Command Definitions */\n#define sccVerifyWord 1\n#define sccVerifyBuffer 2\n#define sccSuggest 3\n#define sccSuggestMore 4\n#define sccHyphInfo 5\n#define sccWildcard 6\n#define sccAnagram 7\n\n/* Flag values for SpellState field in Sib. */\n#define fssIsContinued 0x0001\n/* Call is continuing from where last call returned.  Must be cleared\n   for first call into SpellCheck().\n*/\n\n#define fssStartsSentence 0x0002\n/* First word in buffer is known to be start of\n   sentence/paragraph/document.  This is only used if the\n   fSibIsContinued bit is not set.  It should not be needed if the\n   fSibIsContinued bit is being used.  If this bit is set during a\n   suggestion request, suggestions will be capitalized.\n*/\n\n#define fssIsEditedChange 0x0004\n/* The run of text represented in the SC_SIB is a change from either\n   a change pair (change always or change once) edit, or from a\n   user specified change, possibly from a suggestion list presented\n   to the user.  This text should be checked for repeat word\n   problems, and possibly sentence status, but should not be subject\n   to subsequent spell verification or change pair substitutions.\n   Note that if an app is not using the fSibIsContinued support,\n   they do not need to pass in these edited changes, thus bypassing\n   the potential problem, and working faster.\n*/\n\n#define fssNoStateInfo 0x0000\n/* App is responsible for checking for all repeat word and sentence\n   punctuation, and avoiding processing loops such as change always\n   can=can can.\n*/\n/* End of Sib Spell State flag definitions. */\n\n/* Spell Check return status identifiers */\n#define scrsNoErrors 0                    /* All buffer processed. */\n#define scrsUnknownInputWord 1            /* Unknown word. */\n#define scrsReturningChangeAlways 2       /* Returning a Change Always word in SC_SRB. */\n#define scrsReturningChangeOnce 3         /* Returning a Change Once word in SC_SRB. */\n#define scrsInvalidHyphenation 4          /* Error in hyphenation point.*/\n#define scrsErrorCapitalization 5         /* Cap pattern not valid. */\n#define scrsWordConsideredAbbreviation 6  /* Word is considered an abbreviation. */\n#define scrsHyphChangesSpelling 7         /* Word changes spelling when not hyphenated. */\n#define scrsNoMoreSuggestions 8           /* All methods used. */\n#define scrsMoreInfoThanBufferCouldHold 9 /* More return data than fit in buffer */\n#define scrsNoSentenceStartCap 10         /* Start of sentence was not capitalized. */\n#define scrsRepeatWord 11                 /* Repeat word found. */\n#define scrsExtraSpaces 12                /* Too many spaces for context.*/\n#define scrsMissingSpace 13               /* Too few space(s) between words or sentences. */\n#define scrsInitialNumeral 14             /* Word starts with numeral & soFlagInitialNumeral set */\n\n/* Spell Error Codes */\n#define secNOERRORS 0\n/* Major Error Codes. Low Byte of SEC*/\n#define secOOM 1\n#define secModuleError 2 /* Something wrong with parameters, or state of spell module. */\n#define secIOErrorMdr 3  /* Read,write,or share error with Mdr. */\n#define secIOErrorUdr 4  /* Read,write,or share error with Udr. */\n\n/* Minor Error Codes. Not set unless major code also set. */\n/* High Byte of SEC word var. */\n#define secModuleAlreadyBusy (128 << 8)      /* For non-reentrant code */\n#define secInvalidID (129 << 8)              /* Not yet inited or already terminated.*/\n#define secInvalidWsc (130 << 8)             /* Illegal values in SC_WSC struct */\n#define secInvalidMdr (131 << 8)             /* Mdr not registered with spell session */\n#define secInvalidUdr (132 << 8)             /* Udr not registered with spell session */\n#define secInvalidSCC (133 << 8)             /* SC_CC unknown (spellcheck() only ) */\n#define secInvalidMainDict (134 << 8)        /* Specified dictionary not correct format */\n#define secOperNotMatchedUserDict (135 << 8) /* Illegal operation for user dictionary type. */\n#define secFileReadError (136 << 8)          /* Generic read error */\n#define secFileWriteError (137 << 8)         /* Generic write error */\n#define secFileCreateError (138 << 8)        /* Generic create error */\n#define secFileShareError (139 << 8)         /* Generic share error */\n#define secModuleNotTerminated (140 << 8)    /* Module not able to be terminated completely.*/\n#define secUserDictFull (141 << 8)           /* Could not update Udr without exceeding limit.*/\n#define secInvalidUdrEntry (142 << 8)        /* invalid chars in string(s) */\n#define secUdrEntryTooLong (143 << 8)        /* Entry too long, or invalid chars in string(s) */\n#define secMdrCountExceeded (144 << 8)       /* Too many Mdr references */\n#define secUdrCountExceeded (145 << 8)       /* Too many udr references */\n#define secFileOpenError (146 << 8)          /* Generic Open error */\n#define secFileTooLargeError (147 << 8)      /* Generic file too large error */\n#define secUdrReadOnly (148 << 8)            /* Attempt to add to or write RO udr */\n\n/* Spell Options bitfield definitions */\n#define soSuggestFromUserDict 0x00000001L /* Suggest from user dictionaries. */\n#define soIgnoreAllCaps 0x00000002L       /* Ignore words in all UPPERCASE. */\n#define soIgnoreMixedDigits 0x00000004L   /* Ignore words with any numbers in it. */\n#define soIgnoreRomanNumerals 0x00000008L /* Ignore words composed of all roman numerals. */\n#define soFindUncappedSentences                                                                                        \\\n    0x00000010L /* Flag sentences which don't start with a cap.                                                        \\\n                 * (Soft-Art only)                                                                                     \\\n                 */\n#define soFindMissingSpaces                                                                                            \\\n    0x00000020L                      /* Flag missing spaces between words/sentences.                                   \\\n                                      * (Soft-Art only)                                                                \\\n                                      */\n#define soFindRepeatWord 0x00000040L /* Flag repeated words. */\n#define soFindExtraSpaces                                                                                              \\\n    0x00000080L /* Flag extra spaces between words.                                                                    \\\n                 * (Soft-Art only)                                                                                     \\\n                 */\n#define soFindSpacesBeforePunc                                                                                         \\\n    0x00000100L /* Flag spaces preceeding                                                                              \\\n                 *  the chars below:                                                                                   \\\n                 *     ) ] } > , ; % . ? !                                                                             \\\n                 * (Soft-Art only)                                                                                     \\\n                 */\n#define soFindSpacesAfterPunc                                                                                          \\\n    0x00000200L /* Flag spaces following                                                                               \\\n                 *  the chars below:                                                                                   \\\n                 *     ( [ { $                                                                                         \\\n                 * (Soft-Art only)                                                                                     \\\n                 */\n#define soRateSuggestions                                                                                              \\\n    0x00000400L                           /* Rate the suggestions on scale                                             \\\n                                           *  of 1-255, 255 being most likely                                          \\\n                                           * (Soft-Art only)                                                           \\\n                                           */\n#define soFindInitialNumerals 0x00000800L /* Flag words starting with number(s) */\n#define soReportUDHits                                                                                                 \\\n    0x00001000L                    /* Report (via scrsNoErrorsUDHit) where                                             \\\n                                    *  user dict was used during verification                                          \\\n                                    */\n#define soQuickSuggest 0x00002000L /* Don't use typo suggest code (Soft-Art only) */\n#define soUseAllOpenUdr                                                                                                \\\n    0x00004000L /* Automatically use all udr's opened                                                                  \\\n                 * after this option is set, or all opened udr's                                                       \\\n                 * with mdr's opened after this option is set.                                                         \\\n                 * This option does not allow exclusion dicts to                                                       \\\n                 * be edited.                                                                                          \\\n                 * (HM only)                                                                                           \\\n                 */\n#define soSwapMdr                                                                                                      \\\n    0x00008000L /* Keep the most recent 2 mdr's around.                                                                \\\n                 * swap between them instead of actually closing                                                       \\\n                 * and reopening mdr's.                                                                                \\\n                 * (HM only)                                                                                           \\\n                 */\n#define soSglStepSugg                                                                                                  \\\n    0x00010000L /* Break after each suggestion task for faster                                                         \\\n                 * return of control to the application.                                                               \\\n                 * (HM only)                                                                                           \\\n                 */\n#define soIgnoreSingleLetter                                                                                           \\\n    0x00020000L /* Do not check single letters: e.g., \"a)\".                                                            \\\n                 * (HS only)                                                                                           \\\n                 */\n\n#define soLangMode 0xF0000000L /* Language Mode mask */\n/* Hebrew Language Modes -- (CT only) */\n#define soHebrewFullScript 0x00000000L\n#define soHebrewPartialScript 0x10000000L\n#define soHebrewMixedScript 0x20000000L\n#define soHebrewMixedAuthorizedScript 0x30000000L\n/* French Language Modes -- (HM only) */\n#define soFrenchDialectDefault 0x00000000L\n#define soFrenchUnaccentedUppercase 0x10000000L\n#define soFrenchAccentedUppercase 0x20000000L\n/* Russian Language Modes -- (HM only) */\n#define soRussianDialectDefault 0x00000000L\n#define soRussianIE 0x10000000L\n#define soRussianIO 0x20000000L\n\n#ifdef DEBUG\n\n#define sdcDumpRCAll 200\n#define sdcDumpRCIgnore 201\n#define sdcDumpRCOnce 202\n#define sdcDumpRCAlways 203\n\n#define sdcDumpUdrAll 300\n#define sdcDumpUdr1 301\n#define sdcDumpUdr2 302\n#define sdcDumpUdr3 303\n#define sdcDumpUdr4 304\n\n#define sdcDumpMdrAll 400\n#define sdcDumpMdr1 401\n#endif /* DEBUG */\n\n#ifndef SC_PASCAL\n#define SC_PASCAL pascal\n#endif\n\n#define GLOBAL SC_FAR SC_PASCAL\n#define GLOBALSEC SC_SEC SC_FAR SC_PASCAL\n\n#ifdef MAC\n\n/* Exported Function Prototypes */\n\nextern GLOBALSEC SpellVer(SC_WORD SC_FAR *, SC_WORD SC_FAR *, SC_WORD SC_FAR *);\nextern GLOBALSEC SpellInit(SC_SPLID SC_FAR *, SC_WSC SC_FAR *);\nextern GLOBALSEC SpellOptions(SC_SPLID, long);\nextern GLOBALSEC SpellCheck(SC_SPLID, SC_CC, LPSC_SIB, LPSC_SRB);\nextern GLOBALSEC SpellTerminate(SC_SPLID, SC_BOOL);\nextern GLOBALSEC SpellVerifyMdr(LPSC_PATH, SC_LID, SC_LID SC_FAR *);\nextern GLOBALSEC SpellOpenMdr(SC_SPLID, LPSC_PATH, LPSC_PATH, SC_BOOL, SC_BOOL, SC_LID, LPSC_MDRS);\nextern GLOBALSEC SpellOpenUdr(SC_SPLID, LPSC_PATH, SC_BOOL, SC_WORD, SC_UDR SC_FAR *, SC_BOOL SC_FAR *);\nextern GLOBALSEC SpellAddUdr(SC_SPLID, SC_UDR, SC_CHAR SC_FAR *);\nextern GLOBALSEC SpellAddChangeUdr(SC_SPLID, SC_UDR, SC_CHAR SC_FAR *, SC_CHAR SC_FAR *);\nextern GLOBALSEC SpellDelUdr(SC_SPLID, SC_UDR, SC_CHAR SC_FAR *);\nextern GLOBALSEC SpellClearUdr(SC_SPLID, SC_UDR);\n#ifdef NT\nextern GLOBALSEC SpellGetSizeUdr(SC_SPLID, SC_UDR, int *);\n#else\nextern GLOBALSEC SpellGetSizeUdr(SC_SPLID, SC_UDR, SC_WORD SC_FAR *);\n#endif\nextern GLOBALSEC SpellGetListUdr(SC_SPLID, SC_UDR, SC_WORD, LPSC_SRB);\nextern GLOBALSEC SpellCloseMdr(SC_SPLID, LPSC_MDRS);\nextern GLOBALSEC SpellCloseUdr(SC_SPLID, SC_UDR, SC_BOOL);\n\nextern Handle HCsapiResInit(SC_CHAR *stzsFileName, short vRef, long dirId);\nextern void CsapiResTerm(void);\nextern void CsapiResFlush(void);\n\n#endif /* MAC */\n\n#endif /* !CSAPI_H */\n"
  },
  {
    "path": "kauai/src/ctl.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Standard controls.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\n// what we set the system max to for scroll bars\nconst long _klwMaxScroll = 20000; // should be less than 32K\n\n#ifdef WIN\nachar _szCtlProp[] = PszLit(\"CTL\");\n#endif // WIN\n\nRTCLASS(CTL)\nRTCLASS(SCB)\nRTCLASS(WSB)\n\n/***************************************************************************\n    Constructor for a control.\n***************************************************************************/\nCTL::CTL(PGCB pgcb) : GOB(pgcb)\n{\n    _hctl = hNil;\n}\n\n/***************************************************************************\n    Destructor for controls.\n***************************************************************************/\nCTL::~CTL(void)\n{\n    if (_hctl != hNil)\n    {\n#ifdef MAC\n        RC rc;\n        GNV gnv(this);\n\n        rc.Zero();\n        gnv.ClipRc(&rc);\n        gnv.Set();\n        DisposeControl(_hctl);\n        gnv.Restore();\n#endif // MAC\n#ifdef WIN\n        RemoveProp(_hctl, _szCtlProp);\n        DestroyWindow(_hctl);\n#endif // WIN\n        _hctl = hNil;\n    }\n}\n\n/***************************************************************************\n    Sets the OS control for the CTL.  If this fails, it frees the control.\n***************************************************************************/\nbool CTL::_FSetHctl(HCTL hctl)\n{\n    Assert(_hctl == hNil, \"CTL already has an OS control\");\n    if (hctl != hNil)\n    {\n#ifdef MAC\n        SetCRefCon(hctl, (long)this);\n#endif // MAC\n#ifdef WIN\n        if (!SetProp(hctl, _szCtlProp, (HANDLE)this))\n        {\n            DestroyWindow(hctl);\n            return fFalse;\n        }\n#endif // WIN\n        _hctl = hctl;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the CTL associated with the given HCTL.\n***************************************************************************/\nPCTL CTL::PctlFromHctl(HCTL hctl)\n{\n#ifdef MAC\n    return (PCTL)GetCRefCon(hctl);\n#endif // MAC\n#ifdef WIN\n    return (PCTL)GetProp(hctl, _szCtlProp);\n#endif // WIN\n}\n\n/***************************************************************************\n    The control may have been moved - move the OS control.\n***************************************************************************/\nvoid CTL::_NewRc(void)\n{\n    RC rc;\n    RCS rcs;\n    HWND hwnd;\n\n    if (_hctl == hNil)\n        return;\n\n    hwnd = _HwndGetRc(&rc);\n    Assert(hwnd != hNil, \"control isn't based in an hwnd\");\n    rcs = RCS(rc);\n#ifdef MAC\n    RCS rcsOld = (*_hctl)->contrlRect;\n\n    if (!EqualRect(&rcs, &rcsOld))\n    {\n        GNV gnv(this);\n\n        // clip out everything - hide it, then move and size it\n        // don't make it visible again - we do that in the Draw\n        // routine\n        rc.Zero();\n        gnv.ClipRc(&rc);\n        gnv.Set();\n        HideControl(_hctl);\n        MoveControl(_hctl, rcs.left, rcs.top);\n        SizeControl(_hctl, rcs.right - rcs.left, rcs.bottom - rcs.top);\n        gnv.Restore();\n    }\n#endif // MAC\n#ifdef WIN\n    MoveWindow(_hctl, rcs.left, rcs.top, rcs.right - rcs.left, rcs.bottom - rcs.top, fFalse);\n    InvalidateRect(_hctl, pvNil, fFalse);\n#endif // WIN\n}\n\n#ifdef MAC\n/***************************************************************************\n    Draw routine for a control.\n***************************************************************************/\nvoid CTL::Draw(PGNV pgnv, RC *prcClip)\n{\n    if (_hctl == hNil)\n        return;\n    if (pgnv->Pgpt() == Pgpt())\n    {\n        pgnv->Set();\n        if (!(*_hctl)->contrlVis)\n            ShowControl(_hctl);\n        else\n            Draw1Control(_hctl);\n        pgnv->Restore();\n    }\n    else\n    {\n        RC rc;\n        GNV gnv(this);\n\n        gnv.Set();\n        if (!(*_hctl)->contrlVis)\n            ShowControl(_hctl);\n        else\n            Draw1Control(_hctl);\n        gnv.Restore();\n        GetRcVis(&rc, cooLocal);\n        pgnv->CopyPixels(&gnv, &rc, &rc);\n    }\n}\n#endif // MAC\n\n/***************************************************************************\n    Static method to create a scroll bar.\n***************************************************************************/\nPSCB SCB::PscbNew(PGCB pgcb, ulong grfscb, long val, long valMin, long valMax)\n{\n    Assert(FPure(grfscb & fscbHorz) != FPure(grfscb & fscbVert), \"exactly one of (fscbHorz,fscbVert) should be set\");\n    PSCB pscb;\n    GCB gcb;\n\n    if (grfscb & fscbStandardRc)\n    {\n        gcb.Set(pgcb->_hid, pgcb->_pgob, pgcb->_grfgob, pgcb->_gin);\n        GetStandardRc(grfscb, &gcb._rcAbs, &gcb._rcRel);\n        pgcb = &gcb;\n    }\n\n    if (pvNil == (pscb = NewObj SCB(pgcb)))\n        return pvNil;\n\n    if (!pscb->_FCreate(val, valMin, valMax, grfscb))\n        ReleasePpo(&pscb);\n\n    return pscb;\n}\n\n/***************************************************************************\n    Static method to return the normal width of a vertical scroll bar.\n***************************************************************************/\nlong SCB::DxpNormal(void)\n{\n#ifdef WIN\n    static int _dxp = 0;\n\n    if (_dxp > 0)\n        return _dxp;\n    return (_dxp = GetSystemMetrics(SM_CXVSCROLL));\n#endif // WIN\n#ifdef MAC\n    return 16;\n#endif // MAC\n}\n\n/***************************************************************************\n    Static method to return the normal width of a horizontal scroll bar.\n***************************************************************************/\nlong SCB::DypNormal(void)\n{\n#ifdef WIN\n    static int _dyp = 0;\n\n    if (_dyp > 0)\n        return _dyp;\n    return (_dyp = GetSystemMetrics(SM_CYHSCROLL));\n#endif // WIN\n#ifdef MAC\n    return 16;\n#endif // MAC\n}\n\n/***************************************************************************\n    Get the standard rectangles for document window scroll bars.  grfscb\n    should contain fscbHorz or fscbVert.\n***************************************************************************/\nvoid SCB::GetStandardRc(ulong grfscb, RC *prcAbs, RC *prcRel)\n{\n    if (FPure(grfscb & fscbVert))\n    {\n        prcRel->ypTop = krelZero;\n        prcRel->xpLeft = prcRel->xpRight = prcRel->ypBottom = krelOne;\n        prcAbs->ypTop = -!(grfscb & fscbShowTop);\n        prcAbs->xpLeft = -SCB::DxpNormal() + !(grfscb & fscbShowRight);\n        prcAbs->xpRight = !(grfscb & fscbShowRight);\n        prcAbs->ypBottom = -SCB::DypNormal() + 1 + !(grfscb & fscbShowBottom);\n    }\n    else\n    {\n        prcRel->xpLeft = krelZero;\n        prcRel->ypTop = prcRel->xpRight = prcRel->ypBottom = krelOne;\n        prcAbs->ypTop = -SCB::DypNormal() + !(grfscb & fscbShowBottom);\n        prcAbs->xpLeft = -!(grfscb & fscbShowLeft);\n        prcAbs->xpRight = -SCB::DxpNormal() + 1 + !(grfscb & fscbShowRight);\n        prcAbs->ypBottom = !(grfscb & fscbShowBottom);\n    }\n}\n\n/***************************************************************************\n    Get the standard client window rectangle (assuming the given set of\n    scroll bars).\n***************************************************************************/\nvoid SCB::GetClientRc(ulong grfscb, RC *prcAbs, RC *prcRel)\n{\n    prcRel->ypTop = prcRel->xpLeft = krelZero;\n    prcRel->ypBottom = prcRel->xpRight = krelOne;\n    prcAbs->Zero();\n    if (grfscb & fscbVert)\n        prcAbs->xpRight = -SCB::DxpNormal() + !(grfscb & fscbShowRight);\n    if (grfscb & fscbHorz)\n        prcAbs->ypBottom = -SCB::DypNormal() + !(grfscb & fscbShowBottom);\n}\n\n/***************************************************************************\n    Create the actual system scroll bar.\n***************************************************************************/\nbool SCB::_FCreate(long val, long valMin, long valMax, ulong grfscb)\n{\n    Assert(_Hctl() == hNil, \"scb already created\");\n    RC rc;\n    RCS rcs;\n    HWND hwnd;\n    HCTL hctl;\n\n    _fVert = FPure(grfscb & fscbVert);\n    if ((hwnd = _HwndGetRc(&rc)) == hNil)\n    {\n        Bug(\"can only add controls to hwnd based gobs\");\n        return fFalse;\n    }\n    rcs = RCS(rc);\n\n#ifdef MAC\n    GNV gnv(this);\n    gnv.Set();\n    hctl = NewControl(&hwnd->port, &rcs, (byte *)\"\\p\", fTrue, 0, 0, 0, scrollBarProc, 0);\n    gnv.Restore();\n    if (hctl == hNil || !_FSetHctl(hctl))\n        return fFalse;\n    ValidRc(pvNil);\n#endif // MAC\n#ifdef WIN\n    hctl = CreateWindow(PszLit(\"SCROLLBAR\"), PszLit(\"\"), (_fVert ? SBS_VERT : SBS_HORZ) | WS_CHILD | WS_VISIBLE,\n                        rcs.left, rcs.top, rcs.right - rcs.left, rcs.bottom - rcs.top, hwnd, hNil, vwig.hinst, pvNil);\n    if (hctl == hNil || !_FSetHctl(hctl))\n        return fFalse;\n    SetScrollRange(hctl, SB_CTL, 0, _klwMaxScroll, fFalse);\n    SetScrollPos(hctl, SB_CTL, 0, fFalse);\n#endif // WIN\n\n    SetValMinMax(val, valMin, valMax, MacWin(fTrue, fFalse));\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the value of the scroll bar.\n***************************************************************************/\nvoid SCB::SetVal(long val, bool fRedraw)\n{\n    long lwCur;\n\n    val = LwMin(_valMax, LwMax(_valMin, val));\n    if (val == _val)\n        return;\n    _val = val;\n    lwCur = LwMulDiv(_klwMaxScroll, _val - _valMin, LwMax(1, _valMax - _valMin));\n\n#ifdef MAC\n    // REVIEW shonk: Mac: implement fRedraw false\n    GNV gnv(this);\n    gnv.Set();\n    SetCtlValue(_Hctl(), (short)lwCur);\n    gnv.Restore();\n#endif // MAC\n#ifdef WIN\n    SetScrollPos(_Hctl(), SB_CTL, lwCur, fRedraw);\n#endif // WIN\n}\n\n/***************************************************************************\n    Set the min and max of the scroll bar.\n***************************************************************************/\nvoid SCB::SetValMinMax(long val, long valMin, long valMax, bool fRedraw)\n{\n    long lwCur;\n\n    valMax = LwMax(valMin, valMax);\n    val = LwMin(valMax, LwMax(valMin, val));\n\n    if (val == _val && valMin == _valMin && valMax == _valMax)\n        return;\n    _val = val;\n    _valMin = valMin;\n    _valMax = valMax;\n    lwCur = LwMulDiv(_klwMaxScroll, _val - _valMin, LwMax(1, _valMax - _valMin));\n\n#ifdef MAC\n    // REVIEW shonk: Mac: implement fRedraw false\n    GNV gnv(this);\n    gnv.Set();\n    if (_valMax == _valMin)\n        SetCtlMax(_Hctl(), 0);\n    else\n        SetCtlMax(_Hctl(), (short)_klwMaxScroll);\n    SetCtlValue(_Hctl(), (short)lwCur);\n    gnv.Restore();\n#endif // MAC\n#ifdef WIN\n    SetScrollPos(_Hctl(), SB_CTL, lwCur, fRedraw);\n#endif // WIN\n}\n\n#ifdef MAC\n/***************************************************************************\n    The hwnd has been activated or deactivated - redraw and validate.\n***************************************************************************/\nvoid SCB::_ActivateHwnd(bool fActive)\n{\n    if (_valMin < _valMax)\n    {\n        GNV gnv(this);\n        long lwCur;\n\n        gnv.Set();\n        SetCtlMax(_Hctl(), (short)(fActive ? _klwMaxScroll : 0));\n        if (fActive)\n        {\n            lwCur = LwMulDiv(_klwMaxScroll, _val - _valMin, LwMax(1, _valMax - _valMin));\n            SetCtlValue(_Hctl(), (short)lwCur);\n        }\n        gnv.Restore();\n        if (!(*_Hctl())->contrlVis)\n        {\n            ValidRc(pvNil, kginDraw);\n            InvalRc(pvNil, kginDraw); // this makes it visible\n        }\n    }\n}\n\n/***************************************************************************\n    Handle mouse tracking for a scroll bar.\n***************************************************************************/\nvoid SCB::MouseDown(long xp, long yp, long cact, ulong grfcust)\n{\n    PTS pts;\n    short in;\n    PT pt;\n    bool fDown, fLit;\n    CMD cmd;\n\n    GNV gnv(this);\n\n    pts.h = (short)xp + (*_Hctl())->contrlRect.left;\n    pts.v = (short)yp + (*_Hctl())->contrlRect.top;\n    in = TestControl(_Hctl(), pts);\n    switch (in)\n    {\n    default:\n        break;\n\n    case inThumb:\n        gnv.Set();\n        in = TrackControl(_Hctl(), pts, pvNil);\n        gnv.Restore();\n\n        // send the final position - this will get recorded\n        // note that the _Hctl() has the wrong value so the\n        // gob should call SetValue in response to this command\n        vpcex->EnqueueCid(cidEndScroll, PgobPar(), pvNil, Hid(),\n                          _valMin + LwMulDiv((long)GetCtlValue(_Hctl()), _valMax - _valMin, _klwMaxScroll));\n        break;\n\n    case inUpButton:\n    case inDownButton:\n    case inPageUp:\n    case inPageDown:\n        fDown = fTrue;\n        pt.xp = xp;\n        pt.yp = yp;\n        for (;; GetPtMouse(&pt, &fDown))\n        {\n            // get the new hilite state\n            pts.h = (short)pt.xp + (*_Hctl())->contrlRect.left;\n            pts.v = (short)pt.yp + (*_Hctl())->contrlRect.top;\n            fLit = fDown && (TestControl(_Hctl(), pts) == in);\n\n            // hilite the scroll bar appropriately\n            gnv.Set();\n            if (fLit)\n                HiliteControl(_Hctl(), in);\n            else\n                HiliteControl(_Hctl(), 0);\n            gnv.Restore();\n\n            // see if we're done\n            if (!fDown)\n                break;\n\n            if (fLit)\n            {\n                // send the command - this doesn't get recorded\n                ClearPb(&cmd, size(cmd));\n                cmd.cid = cidDoScroll;\n                cmd.pcmh = PgobPar();\n                cmd.rglw[0] = Hid();\n                switch (in)\n                {\n                case inUpButton:\n                    cmd.rglw[1] = scaLineUp;\n                    break;\n                case inPageUp:\n                    cmd.rglw[1] = scaPageUp;\n                    break;\n                case inDownButton:\n                    cmd.rglw[1] = scaLineDown;\n                    break;\n                case inPageDown:\n                    cmd.rglw[1] = scaPageDown;\n                    break;\n                default:\n                    BugVar(\"what is the in value?\", &in);\n                    cmd.rglw[1] = scaNil;\n                    break;\n                }\n                cmd.pcmh->FDoCmd(&cmd);\n            }\n        }\n\n        // send the final position - this will get recorded\n        vpcex->EnqueueCid(cidEndScroll, PgobPar(), pvNil, Hid(), _val);\n        break;\n    }\n}\n#endif // MAC\n\n#ifdef WIN\n/***************************************************************************\n    Called in response to a Win WM_HSCROLL or WM_VSCROLL message.\n***************************************************************************/\nvoid SCB::TrackScroll(long sb, long lwVal)\n{\n    AssertThis(0);\n    CMD cmd;\n    long val;\n\n    ClearPb(&cmd, size(cmd));\n    cmd.cid = cidDoScroll;\n    cmd.pcmh = PgobPar();\n    cmd.rglw[0] = Hid();\n\n    switch (sb)\n    {\n    case SB_LINEUP:\n        cmd.rglw[1] = scaLineUp;\n        break;\n    case SB_LINEDOWN:\n        cmd.rglw[1] = scaLineDown;\n        break;\n\n    case SB_PAGEUP:\n        cmd.rglw[1] = scaPageUp;\n        break;\n    case SB_PAGEDOWN:\n        cmd.rglw[1] = scaPageDown;\n        break;\n    case SB_THUMBTRACK:\n        lwVal = LwMax(0, LwMin(_klwMaxScroll, lwVal));\n        cmd.rglw[1] = scaToVal;\n        cmd.rglw[2] = _valMin + LwMulDiv(lwVal, _valMax - _valMin, _klwMaxScroll);\n        break;\n\n    // these values just push an end-scroll command\n    case SB_THUMBPOSITION:\n        _fSentEndScroll = fFalse;\n        lwVal = LwMax(0, LwMin(_klwMaxScroll, lwVal));\n        val = _valMin + LwMulDiv(lwVal, _valMax - _valMin, _klwMaxScroll);\n        goto LEndScroll;\n    case SB_TOP:\n        _fSentEndScroll = fFalse;\n        val = _valMin;\n        goto LEndScroll;\n    case SB_BOTTOM:\n        _fSentEndScroll = fFalse;\n        val = _valMax;\n        goto LEndScroll;\n    case SB_ENDSCROLL:\n        // NOTE: _fSentEndScroll is so we don't send another EndScroll\n        // here if we've already sent one (in response to an SB_THUMBPOSITION,\n        // SB_TOP or SB_BOTTOM), since this value will generally be wrong.\n        val = _val;\n        goto LEndScroll;\n\n    default:\n        // do nothing\n        return;\n    }\n\n    _fSentEndScroll = fFalse;\n    cmd.pcmh->FDoCmd(&cmd);\n    return;\n\nLEndScroll:\n    if (!_fSentEndScroll)\n    {\n        cmd.cid = cidEndScroll;\n        cmd.rglw[1] = val;\n        vpcex->EnqueueCmd(&cmd);\n        _fSentEndScroll = fTrue;\n    }\n}\n#endif // WIN\n\n/***************************************************************************\n    Static method to create a window size box.\n***************************************************************************/\nPWSB WSB::PwsbNew(PGOB pgob, ulong grfgob)\n{\n    RC rcRel, rcAbs;\n    PWSB pwsb;\n\n    rcRel.xpLeft = rcRel.xpRight = rcRel.ypTop = rcRel.ypBottom = krelOne;\n    rcAbs.xpLeft = -SCB::DxpNormal() + 1;\n    rcAbs.ypTop = -SCB::DypNormal() + 1;\n    rcAbs.xpRight = rcAbs.ypBottom = 1;\n\n    GCB gcb(khidSizeBox, pgob, grfgob, kginDefault, &rcAbs, &rcRel);\n    if ((pwsb = NewObj WSB(&gcb)) == pvNil)\n        return pvNil;\n\n    Assert(pwsb->PgobPar() != pvNil, \"nil parent\");\n    Assert(pwsb->PgobPar()->Hwnd() != hNil, \"parent of size box doesn't have an hwnd\");\n\n#ifdef WIN\n    RC rc;\n    RCS rcs;\n    HWND hwnd;\n    HCTL hctl;\n\n    hwnd = pwsb->_HwndGetRc(&rc);\n    rcs = RCS(rc);\n\n    hctl = CreateWindow(PszLit(\"SCROLLBAR\"), PszLit(\"\"), SBS_SIZEBOX | WS_CHILD | WS_VISIBLE, rcs.left, rcs.top,\n                        rcs.right - rcs.left, rcs.bottom - rcs.top, hwnd, hNil, vwig.hinst, pvNil);\n\n    if (hctl == hNil || !pwsb->_FSetHctl(hctl))\n        ReleasePpo(&pwsb);\n#endif\n\n    return pwsb;\n}\n\n#ifdef MAC\n/***************************************************************************\n    Draw the size box icon.\n***************************************************************************/\nvoid WSB::Draw(PGNV pgnv, RC *prcClip)\n{\n    HWND hwnd;\n    RC rc;\n\n    hwnd = PgobPar()->Hwnd();\n    Assert(hwnd != hNil, \"hwnd nil\");\n    GetRcVis(&rc, cooLocal);\n\n    if (pgnv->Pgpt() == Pgpt())\n    {\n        pgnv->ClipRc(&rc);\n        pgnv->Set();\n        DrawGrowIcon(&hwnd->port);\n        pgnv->Restore();\n    }\n    else\n    {\n        GNV gnv(this);\n\n        gnv.ClipRc(&rc);\n        gnv.Set();\n        DrawGrowIcon(&hwnd->port);\n        gnv.Restore();\n        pgnv->CopyPixels(&gnv, &rc, &rc);\n    }\n}\n\n/***************************************************************************\n    The hwnd has been activated or deactivated - redraw and validate.\n***************************************************************************/\nvoid WSB::_ActivateHwnd(bool fActive)\n{\n    ValidRc(pvNil, kginDraw);\n    InvalRc(pvNil, kginDraw);\n}\n#endif // MAC\n"
  },
  {
    "path": "kauai/src/ctl.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Standard controls (scroll bars, etc).\n\n***************************************************************************/\n#ifndef CTL_H\n#define CTL_H\n\n#ifdef WIN\ntypedef HWND HCTL;\n#elif defined(MAC)\ntypedef ControlHandle HCTL;\n#endif // MAC\n\n// general control\ntypedef class CTL *PCTL;\n#define CTL_PAR GOB\n#define kclsCTL 'CTL'\nclass CTL : public CTL_PAR\n{\n    RTCLASS_DEC\n\n  private:\n    HCTL _hctl;\n\n  protected:\n    CTL(PGCB pgcb);\n    ~CTL(void);\n\n    virtual void _NewRc(void);\n    HCTL _Hctl(void)\n    {\n        return _hctl;\n    }\n    bool _FSetHctl(HCTL hctl);\n\n  public:\n    static PCTL PctlFromHctl(HCTL hctl);\n\n#ifdef MAC\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n#endif // MAC\n};\n\n// scroll bar\nenum\n{\n    fscbNil = 0,\n    fscbVert = 1,\n    fscbHorz = 2,\n    fscbStandardRc = 4,\n\n    // These are for GetStandardRc and GetClientRc.  They indicate that\n    // the controls should not hide the indicated edge (ie, the edge should\n    // be just inside the parent's rectangle).\n    fscbShowLeft = 16,\n    fscbShowRight = 32,\n    fscbShowTop = 64,\n    fscbShowBottom = 128\n};\n#define kgrfscbShowHorz (fscbShowLeft | fscbShowRight)\n#define kgrfscbShowVert (fscbShowTop | fscbShowBottom)\n#define kgrfscbShowAll (kgrfscbShowHorz | kgrfscbShowVert)\n\n// scroll action\nenum\n{\n    scaNil,\n    scaPageUp,\n    scaPageDown,\n    scaLineUp,\n    scaLineDown,\n    scaToVal,\n};\n\ntypedef class SCB *PSCB;\n#define SCB_PAR CTL\n#define kclsSCB 'SCB'\nclass SCB : public SCB_PAR\n{\n    RTCLASS_DEC\n\n  private:\n    long _val;\n    long _valMin;\n    long _valMax;\n    bool _fVert : 1;\n#ifdef WIN\n    bool _fSentEndScroll : 1;\n#endif // WIN\n\n  protected:\n    SCB(PGCB pgcb) : CTL(pgcb)\n    {\n    }\n    bool _FCreate(long val, long valMin, long valMax, ulong grfscb);\n\n#ifdef MAC\n    virtual void _ActivateHwnd(bool fActive);\n#endif // MAC\n\n  public:\n    static long DxpNormal(void);\n    static long DypNormal(void);\n    static void GetStandardRc(ulong grfscb, RC *prcAbs, RC *prcRel);\n    static void GetClientRc(ulong grfscb, RC *prcAbs, RC *prcRel);\n    static PSCB PscbNew(PGCB pgcb, ulong grfscb, long val = 0, long valMin = 0, long valMax = 0);\n\n    void SetVal(long val, bool fRedraw = fTrue);\n    void SetValMinMax(long val, long valMin, long valMax, bool fRedraw = fTrue);\n\n    long Val(void)\n    {\n        return _val;\n    }\n    long ValMin(void)\n    {\n        return _valMin;\n    }\n    long ValMax(void)\n    {\n        return _valMax;\n    }\n\n#ifdef MAC\n    virtual void MouseDown(long xp, long yp, long cact, ulong grfcust);\n#endif // MAC\n#ifdef WIN\n    virtual void TrackScroll(long sb, long lwVal);\n#endif // WIN\n};\n\n// size box\ntypedef class WSB *PWSB;\n#define WSB_PAR CTL\n#define kclsWSB 'WSB'\nclass WSB : public WSB_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    WSB(PGCB pgcb) : CTL(pgcb)\n    {\n    }\n\n#ifdef MAC\n    virtual void _ActivateHwnd(bool fActive);\n#endif // MAC\n\n  public:\n    static PWSB PwsbNew(PGOB pgob, ulong grfgob);\n\n#ifdef MAC\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n#endif // MAC\n};\n\n#endif //! CTL_H\n"
  },
  {
    "path": "kauai/src/cursor.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Cursor class.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nRTCLASS(CURS)\n\n/***************************************************************************\n    Destructor for the cursor class.\n***************************************************************************/\nCURS::~CURS(void)\n{\n#ifdef WIN\n    if (hNil != _hcrs)\n        DestroyCursor(_hcrs);\n#endif // WIN\n}\n\n/***************************************************************************\n    Read a cursor out of a CRF.\n***************************************************************************/\nbool CURS::FReadCurs(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    PGG pggcurf;\n    long icurf, icurfBest;\n    CURF curf;\n    short bo;\n    long dxp, dyp, dzpT;\n    long dzpBest;\n    long cbRowDst, cbRowSrc, cbT;\n    byte *prgb, *qrgb;\n    PCURS pcurs = pvNil;\n\n    *pcb = size(CURS);\n    if (pvNil == ppbaco)\n        return fTrue;\n\n    if (pvNil == (pggcurf = GG::PggRead(pblck, &bo)) || pggcurf->IvMac() == 0)\n    {\n        ReleasePpo(&pggcurf);\n        return fFalse;\n    }\n\n#ifdef MAC\n    dxp = dyp = 16;\n#endif // MAC\n#ifdef WIN\n    dxp = GetSystemMetrics(SM_CXCURSOR);\n    dyp = GetSystemMetrics(SM_CYCURSOR);\n#endif // WIN\n\n    icurfBest = 0;\n    dzpBest = klwMax;\n    for (icurf = 0; icurf < pggcurf->IvMac(); icurf++)\n    {\n        pggcurf->GetFixed(icurf, &curf);\n        if (kboOther == bo)\n            SwapBytesBom(&curf, kbomCurf);\n        if (curf.dxp > dxp || curf.dyp > dyp || curf.curt != curtMonochrome ||\n            pggcurf->Cb(icurf) != (long)curf.dxp * curf.dyp / 4)\n        {\n            continue;\n        }\n\n        dzpT = (dxp - curf.dxp) + (dyp - curf.dyp);\n        if (dzpBest > dzpT)\n        {\n            icurfBest = icurf;\n            if (dzpT == 0)\n                break;\n            dzpBest = dzpT;\n        }\n    }\n    AssertIn(icurfBest, 0, pggcurf->IvMac());\n    pggcurf->GetFixed(icurfBest, &curf);\n    if (kboOther == bo)\n        SwapBytesBom(&curf, kbomCurf);\n    cbRowSrc = LwRoundAway(LwDivAway(curf.dxp, 8), 2);\n    cbRowDst = LwRoundAway(LwDivAway(dxp, 8), 2);\n\n    if (!FAllocPv((void **)&prgb, LwMul(cbRowDst, 2 * dyp), fmemClear, mprNormal))\n        goto LFail;\n\n    if (pvNil == (pcurs = NewObj CURS))\n        goto LFail;\n\n    FillPb(prgb, LwMul(cbRowDst, dyp), 0xFF);\n    qrgb = (byte *)pggcurf->QvGet(icurfBest);\n    cbT = LwMin(cbRowSrc, cbRowDst);\n    for (dzpT = LwMin(dyp, curf.dyp); dzpT-- > 0;)\n    {\n        CopyPb(qrgb + LwMul(dzpT, cbRowSrc), prgb + LwMul(dzpT, cbRowDst), cbT);\n        CopyPb(qrgb + LwMul(curf.dyp + dzpT, cbRowSrc), prgb + LwMul(dyp + dzpT, cbRowDst), cbT);\n    }\n\n#ifdef WIN\n    pcurs->_hcrs = CreateCursor(vwig.hinst, curf.xp, curf.yp, dxp, dyp, prgb, prgb + LwMul(dxp, cbRowDst));\n    if (hNil == pcurs->_hcrs)\n        ReleasePpo(&pcurs);\n#endif // WIN\n#ifdef MAC\n    Assert(dxp == 16, 0);\n    long *plwAnd, *plwXor;\n    long ilw;\n\n    plwAnd = (long *)prgb;\n    plwXor = plwAnd + 8;\n    pcurs->_crs.hotSpot.h = curf.xp;\n    pcurs->_crs.hotSpot.v = curf.yp;\n    for (ilw = 0; ilw < 8; ilw++)\n    {\n        ((long *)pcurs->_crs.mask)[ilw] = ~*plwAnd;\n        ((long *)pcurs->_crs.data)[ilw] = ~*plwAnd++ ^ *plwXor++;\n    }\n#endif // MAC\n\nLFail:\n    FreePpv((void **)&prgb);\n    ReleasePpo(&pggcurf);\n\n    *ppbaco = pcurs;\n    return pvNil != pcurs;\n}\n\n/***************************************************************************\n    Set the cursor.\n***************************************************************************/\nvoid CURS::Set(void)\n{\n#ifdef WIN\n    SetCursor(_hcrs);\n#endif // WIN\n#ifdef MAC\n    SetCursor(&_crs);\n#endif // MAC\n}\n"
  },
  {
    "path": "kauai/src/cursor.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Cursor class.\n\n***************************************************************************/\n#ifndef CURSOR_H\n#define CURSOR_H\n\nenum\n{\n    curtMonochrome = 0,\n};\n\n// cursor on file - stored in a GG with the rgb's in the variable part\nstruct CURF\n{\n    long curt; // type of cursor\n    byte xp;   // hot spot\n    byte yp;\n    byte dxp; // size - either 16 or 32 and they should match\n    byte dyp;\n    // byte rgbAnd[];\n    // byte rgbXor[];\n};\nconst BOM kbomCurf = 0xC0000000;\n\ntypedef class CURS *PCURS;\n#define CURS_PAR BACO\n#define kclsCURS 'CURS'\nclass CURS : public CURS_PAR\n{\n    RTCLASS_DEC\n\n  private:\n  protected:\n#ifdef WIN\n    HCRS _hcrs;\n#endif // WIN\n#ifdef MAC\n    Cursor _crs;\n#endif // MAC\n\n    CURS(void)\n    {\n    } // we have to be allocated\n    ~CURS(void);\n\n  public:\n    static bool FReadCurs(PCRF pcrf, CTG ctg, CNO cno, BLCK *pblck, PBACO *ppbaco, long *pcb);\n\n    void Set(void);\n};\n\n#endif //! CURSOR_H\n"
  },
  {
    "path": "kauai/src/debug.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Debug routines.\n\n***************************************************************************/\n#ifndef DEBUG_H\n#define DEBUG_H\n\n#ifdef WIN\ninline void Debugger(void)\n{\n    __asm { int 3 }\n}\n#endif // WIN\n\n#ifdef DEBUG\nbool FAssertProc(schar *pszsFile, long lwLine, schar *pszsMsg, void *pv, long cb);\nvoid WarnProc(schar *pszsFile, long lwLine, schar *pszsMsg);\n#define ASSERTNAME static schar __szsFile[] = __FILE__;\n\n#define AssertCore(f, szs, pv, cb)                                                                                     \\\n    if (!(f) && FAssertProc(__szsFile, __LINE__, (schar *)szs, pv, cb))                                                \\\n        Debugger();                                                                                                    \\\n    else                                                                                                               \\\n        (void)(0)\n\n#define Warn(szs) WarnProc(__szsFile, __LINE__, (schar *)szs)\n#define Bug(szs) AssertCore(fFalse, szs, 0, 0)\n#define Assert(f, szs) AssertCore(f, szs, 0, 0)\n#define AssertVar(f, szs, pvar) AssertCore(f, szs, pvar, size(*(pvar)))\n#define BugVar(szs, pvar) AssertVar(fFalse, szs, pvar)\n#define AssertDo(f, szs) Assert(f, szs)\n#define AssertDoVar(f, szs, pvar) AssertVar(f, szs, pvar)\n#define AssertDoCore(f, szs, pv, cb) AssertCore(f, szs, pv, cb)\n#define Debug(foo) foo\n#define DebugShip(dbg, shp) dbg\n\n// these Asserts are for use in a header file\n#define AssertH(f)                                                                                                     \\\n    if (!(f) && FAssertProc(pvNil, __LINE__, pvNil, pvNil, 0))                                                         \\\n        Debugger();                                                                                                    \\\n    else                                                                                                               \\\n        (void)(0)\n#define BugH() AssertH(fFalse)\n\n#else //! DEBUG\n\n#define ASSERTNAME\n#define Debugger()\n#define Warn(szs)\n#define Bug(szs)\n#define Assert(f, szs)\n#define AssertVar(f, szs, pvar)\n#define BugVar(szs, pvar)\n#define AssertCore(f, szs, pv, cb)\n#define AssertDo(f, szs) (f)\n#define AssertDoVar(f, szs, pvar) (f)\n#define AssertDoCore(f, szs, pv, cb) (f)\n#define Debug(foo)\n#define DebugShip(dbg, shp) shp\n#define AssertH(f)\n\n#endif //! DEBUG\n\n#define RawRtn() Bug(\"Unimplemented Code\")\n#define NewCode() Bug(\"Untested Code\")\n\n#endif //! DEBUG_H\n"
  },
  {
    "path": "kauai/src/dlg.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Standard dialogs.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nRTCLASS(DLG)\n\n/***************************************************************************\n    Constructor for a dialog object.\n***************************************************************************/\nDLG::DLG(long rid) : GG(size(DIT))\n{\n    _rid = rid;\n}\n\n/***************************************************************************\n    Static method to create a new DLG.  Does NewObj then calls _FInit.\n***************************************************************************/\nPDLG DLG::PdlgNew(long rid, PFNDLG pfn, void *pv)\n{\n    PDLG pdlg;\n\n    if ((pdlg = NewObj DLG(rid)) == pvNil)\n        return pvNil;\n\n    pdlg->_pfn = pfn;\n    pdlg->_pv = pv;\n\n    if (!pdlg->_FInit())\n        ReleasePpo(&pdlg);\n\n    return pdlg;\n}\n\n/***************************************************************************\n    Get the values for [iditMin, iditLim) from the actual dialog and put\n    them in the GGDIT.\n***************************************************************************/\nbool DLG::FGetValues(long iditMin, long iditLim)\n{\n    AssertThis(0);\n    long idit;\n    DIT dit;\n    long lw;\n    STN stn;\n\n    AssertIn(iditMin, 0, iditLim);\n    if (_pgob == pvNil)\n    {\n        Bug(\"why are you calling this when the dialog doesn't exist?\");\n        return fFalse;\n    }\n\n    iditLim = LwMin(iditLim, IvMac());\n    for (idit = iditMin; idit < iditLim; idit++)\n    {\n        GetDit(idit, &dit);\n        switch (dit.ditk)\n        {\n        case ditkCheckBox:\n            lw = _FGetCheckBox(idit);\n            goto LPutLw;\n\n        case ditkRadioGroup:\n            lw = _LwGetRadioGroup(idit);\n        LPutLw:\n            PutRgb(idit, 0, size(lw), &lw);\n            break;\n\n        case ditkEditText:\n        case ditkCombo:\n            _GetEditText(idit, &stn);\n            if (!FPutStn(idit, &stn))\n                return fFalse;\n            break;\n        }\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the values for [iditMin, iditLim) from the GGDIT into the actual\n    dialog.\n***************************************************************************/\nvoid DLG::SetValues(long iditMin, long iditLim)\n{\n    AssertThis(0);\n    long idit;\n    DIT dit;\n    STN stn;\n    long lw;\n    long cb, cbT, ib;\n    byte *prgb;\n\n    if (_pgob == pvNil)\n    {\n        Bug(\"why are you calling this when the dialog doesn't exist?\");\n        return;\n    }\n\n    iditLim = LwMin(iditLim, IvMac());\n    for (idit = iditMin; idit < iditLim; idit++)\n    {\n        GetDit(idit, &dit);\n        switch (dit.ditk)\n        {\n        case ditkCheckBox:\n            GetRgb(idit, 0, size(lw), &lw);\n            _SetCheckBox(idit, lw);\n            break;\n\n        case ditkRadioGroup:\n            GetRgb(idit, 0, size(lw), &lw);\n            _SetRadioGroup(idit, lw);\n            break;\n\n        case ditkEditText:\n            GetStn(idit, &stn);\n            _SetEditText(idit, &stn);\n            break;\n\n        case ditkCombo:\n            _ClearList(idit);\n            cb = Cb(idit);\n            if (cb <= 0)\n            {\n                stn.SetNil();\n                _SetEditText(idit, &stn);\n                break;\n            }\n            prgb = (byte *)PvLock(idit);\n            if (!stn.FSetData(prgb, cb, &cbT))\n            {\n                Bug(\"bad combo item\");\n                cbT = cb;\n            }\n            _SetEditText(idit, &stn);\n            for (ib = cbT; ib < cb;)\n            {\n                if (!stn.FSetData(prgb + ib, cb - ib, &cbT))\n                {\n                    BugVar(\"bad combo item\", &ib);\n                    break;\n                }\n                ib += cbT;\n                _FAddToList(idit, &stn);\n            }\n            Unlock();\n            break;\n        }\n    }\n}\n\n/***************************************************************************\n    Get the item number from a system item number.\n***************************************************************************/\nlong DLG::IditFromSit(long sit)\n{\n    long idit;\n    DIT dit;\n\n    for (idit = IvMac(); idit-- != 0;)\n    {\n        GetDit(idit, &dit);\n        if (sit >= dit.sitMin && sit < dit.sitLim)\n            return idit;\n    }\n    return ivNil;\n}\n\n/***************************************************************************\n    Calls the PFNDLG (if not nil) to notify of a change.  PFNDLG should\n    return true if the dialog should be dismissed.  The PFNDLG is free\n    to change *pidit.  If a nil PFNDLG was specified (in PdlgNew),\n    this returns true (dismisses the dialog) on any button hit.\n***************************************************************************/\nbool DLG::_FDitChange(long *pidit)\n{\n    if (pvNil == _pfn)\n    {\n        DIT dit;\n\n        if (ivNil == *pidit)\n            return fFalse;\n\n        GetDit(*pidit, &dit);\n        return dit.ditk == ditkButton;\n    }\n\n    return (*_pfn)(this, pidit, _pv);\n}\n\n/***************************************************************************\n    Get the stn (for an edit item).\n***************************************************************************/\nvoid DLG::GetStn(long idit, PSTN pstn)\n{\n    AssertThis(0);\n    AssertIn(idit, 0, IvMac());\n    AssertPo(pstn, 0);\n    long cb;\n\n#ifdef DEBUG\n    DIT dit;\n    GetDit(idit, &dit);\n    Assert(ditkEditText == dit.ditk || dit.ditk == ditkCombo, \"not a text item or combo\");\n#endif // DEBUG\n\n    cb = Cb(idit);\n    if (cb <= 0)\n        pstn->SetNil();\n    else\n    {\n        AssertDo(pstn->FSetData(PvLock(idit), cb, &cb), 0);\n        Unlock();\n    }\n}\n\n/***************************************************************************\n    Put the stn into the DLG.\n***************************************************************************/\nbool DLG::FPutStn(long idit, PSTN pstn)\n{\n    AssertThis(0);\n    AssertIn(idit, 0, IvMac());\n    AssertPo(pstn, 0);\n    DIT dit;\n    long cbOld, cbNew;\n\n    GetDit(idit, &dit);\n    cbOld = Cb(idit);\n    cbNew = pstn->CbData();\n    switch (dit.ditk)\n    {\n    default:\n        Bug(\"not a text item or combo\");\n        return fFalse;\n\n    case ditkEditText:\n        if (cbOld != cbNew && !FPut(idit, cbNew, pvNil))\n            return fFalse;\n        break;\n\n    case ditkCombo:\n        if (cbOld > 0)\n        {\n            STN stn;\n\n            if (!stn.FSetData(PvLock(idit), cbOld, &cbOld))\n            {\n                Bug(\"why did setting the data fail?\");\n                cbOld = Cb(idit);\n            }\n            Unlock();\n        }\n        if (cbOld > cbNew)\n            DeleteRgb(idit, 0, cbOld - cbNew);\n        else if (cbOld < cbNew && !FInsertRgb(idit, 0, cbNew - cbOld, pvNil))\n            return fFalse;\n        break;\n    }\n\n    pstn->GetData(PvLock(idit));\n    Unlock();\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the value of a radio group.\n***************************************************************************/\nlong DLG::LwGetRadio(long idit)\n{\n    AssertThis(0);\n    AssertIn(idit, 0, IvMac());\n    long lw;\n\n#ifdef DEBUG\n    DIT dit;\n    GetDit(idit, &dit);\n    Assert(ditkRadioGroup == dit.ditk, \"not a radio group\");\n#endif // DEBUG\n\n    GetRgb(idit, 0, size(long), &lw);\n    return lw;\n}\n\n/***************************************************************************\n    Set the value of the radio group.\n***************************************************************************/\nvoid DLG::PutRadio(long idit, long lw)\n{\n    AssertThis(0);\n    AssertIn(idit, 0, IvMac());\n\n#ifdef DEBUG\n    DIT dit;\n    GetDit(idit, &dit);\n    Assert(ditkRadioGroup == dit.ditk, \"not a radio group\");\n    AssertIn(lw, 0, dit.sitLim - dit.sitMin);\n#endif // DEBUG\n\n    PutRgb(idit, 0, size(long), &lw);\n}\n\n/***************************************************************************\n    Get the value of a check box.\n***************************************************************************/\nbool DLG::FGetCheck(long idit)\n{\n    AssertThis(0);\n    AssertIn(idit, 0, IvMac());\n    long lw;\n\n#ifdef DEBUG\n    DIT dit;\n    GetDit(idit, &dit);\n    Assert(ditkCheckBox == dit.ditk, \"not a check box\");\n#endif // DEBUG\n\n    GetRgb(idit, 0, size(long), &lw);\n    return lw;\n}\n\n/***************************************************************************\n    Set the value of a check box item.\n***************************************************************************/\nvoid DLG::PutCheck(long idit, bool fOn)\n{\n    AssertThis(0);\n    AssertIn(idit, 0, IvMac());\n    long lw;\n\n#ifdef DEBUG\n    DIT dit;\n    GetDit(idit, &dit);\n    Assert(ditkCheckBox == dit.ditk, \"not a check box\");\n#endif // DEBUG\n\n    lw = FPure(fOn);\n    PutRgb(idit, 0, size(long), &lw);\n}\n\n/***************************************************************************\n    Get the indicated edit item from the dialog and convert it to a long.\n    If the string is empty, sets *plw to zero and sets *pfEmpty (if pfEmpty\n    is not nil) and returns false.  If the string doesn't parse as a number,\n    returns false.\n***************************************************************************/\nbool DLG::FGetLwFromEdit(long idit, long *plw, bool *pfEmpty)\n{\n    AssertThis(0);\n    AssertVarMem(plw);\n    AssertNilOrVarMem(pfEmpty);\n    STN stn;\n\n    GetStn(idit, &stn);\n    if (0 == stn.Cch())\n    {\n        if (pvNil != pfEmpty)\n            *pfEmpty = fTrue;\n        *plw = 0;\n        return fFalse;\n    }\n    if (pvNil != pfEmpty)\n        *pfEmpty = fFalse;\n    if (!stn.FGetLw(plw, 0))\n    {\n        TrashVar(plw);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Put the long into the indicated edit item (in decimal).\n***************************************************************************/\nbool DLG::FPutLwInEdit(long idit, long lw)\n{\n    AssertThis(0);\n    STN stn;\n\n    stn.FFormatSz(PszLit(\"%d\"), lw);\n    return FPutStn(idit, &stn);\n}\n\n/***************************************************************************\n    Add the string to the given list item.\n***************************************************************************/\nbool DLG::FAddToList(long idit, PSTN pstn)\n{\n    AssertThis(0);\n    long cb, cbTot;\n\n#ifdef DEBUG\n    DIT dit;\n    GetDit(idit, &dit);\n    Assert(ditkCombo == dit.ditk, \"not a combo\");\n#endif // DEBUG\n\n    cbTot = Cb(idit);\n    if (cbTot == 0)\n    {\n        STN stn;\n\n        stn.SetNil();\n        if (!FPut(idit, cbTot = stn.CbData(), pvNil))\n            return fFalse;\n        stn.GetData(PvLock(idit));\n        Unlock();\n    }\n    cb = pstn->CbData();\n    if (!FInsertRgb(idit, cbTot, cb, pvNil))\n        return fFalse;\n\n    pstn->GetData(PvAddBv(PvLock(idit), cbTot));\n    Unlock();\n    return fTrue;\n}\n\n/***************************************************************************\n    Empty the list of options for the list item.\n***************************************************************************/\nvoid DLG::ClearList(long idit)\n{\n    AssertThis(0);\n    AssertIn(idit, 0, IvMac());\n    long cbOld, cbNew;\n    STN stn;\n\n#ifdef DEBUG\n    DIT dit;\n    GetDit(idit, &dit);\n    Assert(ditkCombo == dit.ditk, \"not a combo\");\n#endif // DEBUG\n\n    cbOld = Cb(idit);\n    if (cbOld <= 0)\n        return;\n\n    if (!stn.FSetData(PvLock(idit), cbOld, &cbNew))\n    {\n        Bug(\"why did setting the data fail?\");\n        cbNew = 0;\n    }\n    Unlock();\n    if (cbOld > cbNew)\n        DeleteRgb(idit, cbNew, cbOld - cbNew);\n}\n"
  },
  {
    "path": "kauai/src/dlg.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Dialog header file.\n\n***************************************************************************/\n#ifndef DLG_H\n#define DLG_H\n\n#ifdef MAC\ntypedef DialogPtr HDLG;\n#endif // MAC\n#ifdef WIN\ntypedef HWND HDLG;\n#endif // WIN\n\n// type of dialog item\nenum\n{\n    ditkButton,     // no value\n    ditkCheckBox,   // long (bool)\n    ditkRadioGroup, // long (index)\n    ditkEditText,   // streamed stn\n    ditkCombo,      // streamed stn, followed by a list of streamed stn's.\n    ditkLim\n};\n\n// dialog item\nstruct DIT\n{\n    long sitMin; // first system item number (for this DIT)\n    long sitLim; // lim of system item numbers (for this DIT)\n    long ditk;   // kind of item\n};\n\ntypedef class DLG *PDLG;\n\n// callback to notify of an item change (while the dialog is active)\ntypedef bool (*PFNDLG)(PDLG pdlg, long *pidit, void *pv);\n\n// dialog class - a DLG is a GG of DITs\n#define DLG_PAR GG\n#define kclsDLG 'DLG'\nclass DLG : public DLG_PAR\n{\n    RTCLASS_DEC\n\n  private:\n    PGOB _pgob;\n    long _rid;\n    PFNDLG _pfn;\n    void *_pv;\n\n#ifdef WIN\n    friend BOOL CALLBACK _FDlgCore(HWND hdlg, UINT msg, WPARAM w, LPARAM lw);\n#endif // WIN\n\n    DLG(long rid);\n    bool _FInit(void);\n\n    long _LwGetRadioGroup(long idit);\n    void _SetRadioGroup(long idit, long lw);\n    bool _FGetCheckBox(long idit);\n    void _InvertCheckBox(long idit);\n    void _SetCheckBox(long idit, bool fOn);\n    void _GetEditText(long idit, PSTN pstn);\n    void _SetEditText(long idit, PSTN pstn);\n    bool _FDitChange(long *pidit);\n    bool _FAddToList(long idit, PSTN pstn);\n    void _ClearList(long idit);\n\n  public:\n    static PDLG PdlgNew(long rid, PFNDLG pfn = pvNil, void *pv = pvNil);\n\n    long IditDo(long iditFocus = ivNil);\n\n    // these are only valid while the dialog is up\n    bool FGetValues(long iditMin, long iditLim);\n    void SetValues(long iditMin, long iditLim);\n    void SelectDit(long idit);\n\n    // argument access\n    long IditFromSit(long sit);\n    void GetDit(long idit, DIT *pdit)\n    {\n        GetFixed(idit, pdit);\n    }\n    void PutDit(long idit, DIT *pdit)\n    {\n        PutFixed(idit, pdit);\n    }\n\n    void GetStn(long idit, PSTN pstn);\n    bool FPutStn(long idit, PSTN pstn);\n    long LwGetRadio(long idit);\n    void PutRadio(long idit, long lw);\n    bool FGetCheck(long idit);\n    void PutCheck(long idit, bool fOn);\n\n    bool FGetLwFromEdit(long idit, long *plw, bool *pfEmpty = pvNil);\n    bool FPutLwInEdit(long idit, long lw);\n\n    bool FAddToList(long idit, PSTN pstn);\n    void ClearList(long idit);\n};\n\n#endif //! DLG_H\n"
  },
  {
    "path": "kauai/src/dlgmac.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Mac standard dialogs.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\n// REVIEW shonk: implement combo items.\n\n/***************************************************************************\n    Read the dialog resource and construct the GGDIT.\n***************************************************************************/\nbool DLG::_FInit(void)\n{\n    HN hn;\n    short ridDitl;\n    long sit, sitLim;\n    long idit;\n    byte bState;\n    byte *pbDitl;\n    byte bType;\n    long cbEntry;\n    DIT dit;\n    bool fAddDit;\n    bool fRet = fFalse;\n\n    if ((hn = (HN)GetResource('DLOG', (short)_rid)) == hNil)\n    {\n        PushErc(ercDlgCantFind);\n        return fFalse;\n    }\n\n    // get the rid of the DITL resource\n    ridDitl = (*(short **)hn)[9];\n    if ((hn = GetResource('DITL', ridDitl)) == hNil)\n    {\n        PushErc(ercDlgCantFind);\n        return fFalse;\n    }\n\n    // lock the DITL so it doesn't move and so it isn't purged while\n    // we're looking at it.\n    bState = HGetState(hn);\n    HLock(hn);\n    pbDitl = *(byte **)hn;\n\n    /***********************************************************************\n    This info comes from New Inside Macintosh - Toolbox Essentials,\n    pages 6-152 to 6-156.\n\n    A DITL is a group of items preceeded by a short containing the number\n    of items - 1.  Each item contains:\n\n        4 bytes of reserved info\n        8 bytes for a bounding rectangle\n        1 byte for the item type and enable flag\n\n    The remaining data in the item depends on the type of item.  For\n    Buttons(4), checkboxes(5), radio buttons(6), static text(8) and\n    editable text items(16), the item data continues with:\n\n        1 - 256 bytes (variable) - an st containing the name\n        0 or 1 byte alignment (to a short word)\n\n    For compiled controls(7), icons(32) and pictures(64):\n\n        1 byte reserved\n        2 bytes resource number\n\n    For application defined items(0):\n\n        1 byte reserved\n\n    For Help items(1):\n\n        1 byte size - 4 or 6 (so we don't have to use the help item type)\n        2 byte help item type\n        2 byte resource number\n        0 or 2 bytes for an item number (2 bytes if help item type is 8,\n            otherwise 0 bytes)\n\n    For other values of the item type, we assert and bag out.\n    ***********************************************************************/\n\n    // get the lim of system items (they start at 1) and grow the GGDIT\n    // to a reasonable size\n    sitLim = (*(short *)pbDitl) + 2;\n    pbDitl += size(short);\n    if (!FEnsureSpace(sitLim, size(long), fgrpNil))\n        goto LFail;\n\n    // look at the items in the DITL\n    for (idit = 0, sit = 1; sit < sitLim; sit++)\n    {\n        // skip the reserved bytes and rectangle\n        pbDitl += 12;\n\n        // the high bit is an enble bit, so mask it off\n        bType = *pbDitl & 0x7F;\n        pbDitl++;\n\n        fAddDit = fFalse;\n        switch (bType)\n        {\n        default:\n            Bug(\"unkown item in DITL resource\");\n            goto LFail;\n\n        case btnCtrl + ctrlItem: // button\n            dit.ditk = ditkButton;\n            cbEntry = 0;\n            fAddDit = fTrue;\n            goto LSkipSt;\n\n        case chkCtrl + ctrlItem: // check box\n            dit.ditk = ditkCheckBox;\n            cbEntry = size(long);\n            fAddDit = fTrue;\n            goto LSkipSt;\n\n        case radCtrl + ctrlItem: // radio button\n            // if the last item added was a radio group, add this button to\n            // the group, otherwise create a new radio group\n            if (idit > 0)\n            {\n                GetDit(idit - 1, &dit);\n                if (dit.ditk == ditkRadioGroup && dit.sitLim == sit)\n                {\n                    dit.sitLim++;\n                    PutDit(idit - 1, &dit);\n                    goto LSkipSt;\n                }\n            }\n            dit.ditk = ditkRadioGroup;\n            cbEntry = size(long);\n            fAddDit = fTrue;\n            goto LSkipSt;\n\n        case statText: // static text item\n            goto LSkipSt;\n\n        case editText: // edit item\n            dit.ditk = ditkEditText;\n            cbEntry = kcbMaxStz - kcchMaxStz;\n            fAddDit = fTrue;\n        LSkipSt:\n            pbDitl += CbSt((achar *)pbDitl);\n            if ((long)pbDitl & 1)\n                pbDitl++;\n            break;\n\n        case 7:        // control\n        case iconItem: // icon\n        case picItem:  // picture\n            pbDitl += 3;\n            break;\n\n        case userItem: // app defined\n            pbDitl += 1;\n            break;\n\n        case 1: // help item\n            pbDitl += CbSt((achar *)pbDitl);\n            break;\n        }\n\n        if (fAddDit)\n        {\n            Assert(cbEntry >= 0, 0);\n            dit.sitMin = sit;\n            dit.sitLim = sit + 1;\n            if (!FInsert(idit, cbEntry, pvNil, &dit))\n                goto LFail;\n\n            // zero the extra data\n            if (cbEntry > 0)\n                ClearPb(QvGet(idit), cbEntry);\n            idit++;\n        }\n    }\n\n    FEnsureSpace(0, 0, fgrpShrink);\n    fRet = fTrue;\n\nLFail:\n    HSetState(hn, bState);\n    if (!fRet)\n        PushErc(ercDlgOom);\n    return fRet;\n}\n\n/***************************************************************************\n    Actually put up the dialog and don't return until it comes down.\n    Returns the idit that dismissed the dialog.  Returns ivNil on failure.\n***************************************************************************/\nlong DLG::IditDo(long iditFocus)\n{\n    HDLG hdlg;\n    DIT dit;\n    short swHit;\n    long idit = ivNil;\n\n    if ((hdlg = GetNewDialog((short)_rid, pvNil, (PPRT)-1L)) == pvNil)\n    {\n        PushErc(ercDlgOom);\n        goto LDone;\n    }\n\n    if (pvNil == (_pgob = NewObj GOB(khidDialog)))\n    {\n        PushErc(ercDlgOom);\n        goto LDone;\n    }\n\n    if (!_pgob->FAttachHwnd((HWND)hdlg))\n    {\n        PushErc(ercDlgOom);\n        goto LDone;\n    }\n\n    SetValues(0, IvMac());\n    ShowWindow(hdlg);\n    if (ivNil != iditFocus)\n        SelectDit(iditFocus);\n    for (;;)\n    {\n        ModalDialog(pvNil, &swHit);\n        if ((idit = IditFromSit((long)swHit)) == ivNil)\n            continue;\n\n        GetDit(idit, &dit);\n        switch (dit.ditk)\n        {\n        default:\n            continue;\n\n        case ditkButton:\n            break;\n\n        case ditkCheckBox:\n            // invert it\n            _InvertCheckBox(idit);\n            break;\n\n        case ditkRadioGroup:\n            // set the value to swHit - dit.sitMin\n            _SetRadioGroup(idit, (long)swHit - dit.sitMin);\n            break;\n        }\n\n        if (_FDitChange(&idit))\n            break;\n    }\n\nLDone:\n    if (hdlg != hNil)\n    {\n        if (_pgob != pvNil)\n        {\n            if (idit != ivNil && !FGetValues(0, IvMac()))\n            {\n                PushErc(ercDlgCantGetArgs);\n                idit = ivNil;\n            }\n            _pgob->FAttachHwnd(hNil);\n            _pgob->Release();\n            _pgob = pvNil;\n        }\n        DisposeDialog(hdlg);\n    }\n\n    return idit;\n}\n\n/***************************************************************************\n    Get the value of a radio group.\n***************************************************************************/\nlong DLG::_LwGetRadioGroup(long idit)\n{\n    HDLG hdlg;\n    DIT dit;\n    short sitk;\n    HCTL hctl;\n    RCS rcs;\n    long sit;\n\n    GetDit(idit, &dit);\n    hdlg = (HDLG)_pgob->Hwnd();\n    Assert(hdlg != hNil, \"no dialog!\");\n    Assert(dit.ditk == ditkRadioGroup, \"not a radio group!\");\n\n    for (sit = dit.sitMin; sit < dit.sitLim; sit++)\n    {\n        GetDialogItem(hdlg, (short)sit, &sitk, (HN *)&hctl, &rcs);\n        Assert(sitk == (radCtrl + ctrlItem), \"not a radio button!\");\n        if (GetCtlValue(hctl))\n            return sit - dit.sitMin;\n    }\n    Bug(\"no radio button set\");\n    return dit.sitLim - dit.sitMin;\n}\n\n/***************************************************************************\n    Change a radio group value.\n***************************************************************************/\nvoid DLG::_SetRadioGroup(long idit, long lw)\n{\n    HDLG hdlg;\n    DIT dit;\n    short sitk;\n    HCTL hctl;\n    RCS rcs;\n    long sit;\n    short swT;\n\n    GetDit(idit, &dit);\n    hdlg = (HDLG)_pgob->Hwnd();\n    Assert(hdlg != hNil, \"no dialog!\");\n    Assert(dit.ditk == ditkRadioGroup, \"not a radio group!\");\n    AssertIn(lw, 0, dit.sitLim - dit.sitMin);\n\n    GNV gnv(_pgob);\n    gnv.Set();\n    for (sit = dit.sitMin; sit < dit.sitLim; sit++)\n    {\n        GetDialogItem(hdlg, (short)sit, &sitk, (HN *)&hctl, &rcs);\n        Assert(sitk == (radCtrl + ctrlItem), \"not a radio button!\");\n        swT = GetCtlValue(hctl);\n\n        // set the value\n        if (swT)\n        {\n            if (sit - dit.sitMin != lw)\n                SetCtlValue(hctl, 0);\n        }\n        else\n        {\n            if (sit - dit.sitMin == lw)\n                SetCtlValue(hctl, 1);\n        }\n    }\n    gnv.Restore();\n}\n\n/***************************************************************************\n    Returns the current value of a check box.\n***************************************************************************/\nbool DLG::_FGetCheckBox(long idit)\n{\n    HDLG hdlg;\n    DIT dit;\n    short sitk;\n    HCTL hctl;\n    RCS rcs;\n\n    GetDit(idit, &dit);\n    hdlg = (HDLG)_pgob->Hwnd();\n    Assert(hdlg != hNil, \"no dialog!\");\n    Assert(dit.ditk == ditkCheckBox, \"not a check box!\");\n    Assert(dit.sitLim == dit.sitMin + 1, \"wrong lim on check box\");\n\n    GetDialogItem(hdlg, (short)dit.sitMin, &sitk, (HN *)&hctl, &rcs);\n    Assert(sitk == (chkCtrl + ctrlItem), \"not a check box!\");\n    return FPure(GetCtlValue(hctl));\n}\n\n/***************************************************************************\n    Invert the value of a check box.\n***************************************************************************/\nvoid DLG::_InvertCheckBox(long idit)\n{\n    _SetCheckBox(idit, !_FGetCheckBox(idit));\n}\n\n/***************************************************************************\n    Set the value of a check box.\n***************************************************************************/\nvoid DLG::_SetCheckBox(long idit, bool fOn)\n{\n    HDLG hdlg;\n    DIT dit;\n    short sitk;\n    HCTL hctl;\n    RCS rcs;\n    short swT;\n\n    GetDit(idit, &dit);\n    hdlg = (HDLG)_pgob->Hwnd();\n    Assert(hdlg != hNil, \"no dialog!\");\n    Assert(dit.ditk == ditkCheckBox, \"not a check box!\");\n    Assert(dit.sitLim == dit.sitMin + 1, \"wrong lim on check box\");\n\n    GNV gnv(_pgob);\n    gnv.Set();\n    GetDialogItem(hdlg, (short)dit.sitMin, &sitk, (HN *)&hctl, &rcs);\n    Assert(sitk == (chkCtrl + ctrlItem), \"not a check box!\");\n    swT = GetCtlValue(hctl);\n    if (FPure(swT) != FPure(fOn))\n        SetCtlValue(hctl, FPure(fOn));\n    gnv.Restore();\n}\n\n/***************************************************************************\n    Get the text from an edit control.\n***************************************************************************/\nvoid DLG::_GetEditText(long idit, PSTZ pstz)\n{\n    HDLG hdlg;\n    DIT dit;\n    short sitk;\n    HN hn;\n    RCS rcs;\n\n    GetDit(idit, &dit);\n    hdlg = (HDLG)_pgob->Hwnd();\n    Assert(hdlg != hNil, \"no dialog!\");\n    Assert(dit.ditk == ditkEditText, \"not edit item!\");\n    Assert(dit.sitLim == dit.sitMin + 1, \"wrong lim on edit item\");\n\n    GetDialogItem(hdlg, (short)dit.sitMin, &sitk, &hn, &rcs);\n    AssertVar(sitk == editText, \"not an edit item!\", &sitk);\n    GetDialogItemText(hn, (byte *)pstz);\n    StToStz(pstz);\n}\n\n/***************************************************************************\n    Set the text in an edit control.\n***************************************************************************/\nvoid DLG::_SetEditText(long idit, PSTZ pstz)\n{\n    HDLG hdlg;\n    DIT dit;\n    short sitk;\n    HN hn;\n    RCS rcs;\n\n    GetDit(idit, &dit);\n    hdlg = (HDLG)_pgob->Hwnd();\n    Assert(hdlg != hNil, \"no dialog!\");\n    Assert(dit.ditk == ditkEditText, \"not edit item!\");\n    Assert(dit.sitLim == dit.sitMin + 1, \"wrong lim on edit item\");\n\n    GNV gnv(_pgob);\n    gnv.Set();\n    GetDialogItem(hdlg, (short)dit.sitMin, &sitk, &hn, &rcs);\n    AssertVar(sitk == editText, \"not an edit item!\", &sitk);\n    SetDialogItemText(hn, (byte *)pstz);\n    gnv.Restore();\n}\n\n/***************************************************************************\n    Make the given item the \"focused\" item and select its contents.  The\n    item should be a text item.\n***************************************************************************/\nvoid DLG::SelectDit(long idit)\n{\n    HDLG hdlg;\n    DIT dit;\n\n    if (hNil == (hdlg = (HDLG)_pgob->Hwnd()))\n        goto LBug;\n\n    GetDit(idit, &dit);\n    if (dit.ditk != ditkEditText)\n    {\n    LBug:\n        Bug(\"bad call to DLG::SelectDit\");\n        return;\n    }\n    Assert(dit.sitLim == dit.sitMin + 1, \"wrong lim on edit item\");\n    SelIText(hdlg, (short)dit.sitMin, 0, kswMax);\n}\n"
  },
  {
    "path": "kauai/src/dlgwin.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Standard dialogs.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\n// dialog init structure\nstruct DLGI\n{\n    PDLG pdlg;\n    long iditFocus;\n};\n\nachar _szDlgProp[] = PszLit(\"DLG\");\n\n/***************************************************************************\n    Read the dialog resource and construct the GGDIT.\n    The dialog resource consists of:\n\n        DLGTEMPLATE structure\n        (0xFFFF, 2-byte value) or unicode string specifying the menu\n        (0xFFFF, 2-byte value) or unicode string specifying the class\n        unicode string for the title\n\n    The following fields only exist if the dialog has the DS_SETFONT style:\n\n        2-byte value specifying the font size\n        unicode string specifying the font\n\n    Next comes:\n\n        0-2 bytes align to dword\n\n    For each dialog item the resource contains:\n\n        DLGITEMTEMPLATE structure\n        (0xFFFF, 2-byte value) or unicode string specifying the class\n        (0xFFFF, 2-byte value) or unicode string specifying the title\n***************************************************************************/\nbool DLG::_FInit(void)\n{\n    HN hn;\n    long cbEntry;\n    long idit, csit;\n    bool fAddDit;\n    DIT dit;\n    short *psw;\n    short swClass;\n    DLGTEMPLATE dtm;\n    DLGITEMTEMPLATE ditm;\n    bool fRet = fFalse;\n\n    if ((hn = (HN)FindResource(vwig.hinst, MIR(_rid), RT_DIALOG)) == hNil ||\n        (hn = (HN)LoadResource(vwig.hinst, (HRSRC)hn)) == hNil || (psw = (short *)LockResource(hn)) == pvNil)\n    {\n        PushErc(ercDlgCantFind);\n        return fFalse;\n    }\n\n    // get and skip the dtm\n    dtm = *(DLGTEMPLATE *)psw;\n    psw = (short *)PvAddBv(psw, size(dtm));\n\n    // get the number of items and ensure space in the GGDIT\n    Assert(dtm.cdit > 0, \"no items in this dialog\");\n    if (!FEnsureSpace(dtm.cdit, size(long), fgrpNil))\n        goto LFail;\n\n    // skip over the menu field\n    if (*psw == -1)\n        psw += 2;\n    else\n    {\n        while (*psw++ != 0)\n            ;\n    }\n\n    // skip over the class field\n    if (*psw == -1)\n        psw += 2;\n    else\n    {\n        while (*psw++ != 0)\n            ;\n    }\n\n    // skip over the title\n    while (*psw++ != 0)\n        ;\n\n    if (dtm.style & DS_SETFONT)\n    {\n        // skip over the point size\n        psw++;\n\n        // skip over the font name\n        while (*psw++ != 0)\n            ;\n    }\n\n    // look at the items\n    for (csit = dtm.cdit, idit = 0; csit > 0; csit--)\n    {\n        // align to dword\n        if ((long)psw & 2)\n            psw++;\n\n        // get and skip the ditm\n        ditm = *(DLGITEMTEMPLATE *)psw;\n        psw = (short *)PvAddBv(psw, size(ditm));\n\n        // get and skip the class\n        if (*psw == -1)\n        {\n            swClass = psw[1];\n            psw += 2;\n        }\n        else\n        {\n            swClass = 0;\n            while (*psw++ != 0)\n                ;\n        }\n\n        // skip the title\n        if (*psw == -1)\n            psw += 2;\n        else\n        {\n            while (*psw++ != 0)\n                ;\n        }\n\n        // the next word is a size of extra stuff\n        psw = (short *)PvAddBv(psw, psw[0] + size(short));\n\n        // We should be at the end of this item (except for possible padding).\n        // Now figure out what to do with the item.\n\n        fAddDit = fTrue;\n        switch (swClass)\n        {\n        default:\n            fAddDit = fFalse;\n            break;\n\n        case 0x0080: // button, radio button or check box\n            switch (ditm.style & 0x000F)\n            {\n            case 0:\n            case 1:\n                // button\n                dit.ditk = ditkButton;\n                cbEntry = 0;\n                break;\n\n            case 2:\n            case 3:\n                // check box\n                dit.ditk = ditkCheckBox;\n                cbEntry = size(long);\n                break;\n\n            case 4:\n            case 9:\n                // radio button\n                // if the radio button has the WS_GROUP style or the last\n                // dit is not a radio group, start a new group.\n                if (!(ditm.style & WS_GROUP) && idit > 0)\n                {\n                    GetDit(idit - 1, &dit);\n                    if (dit.ditk == ditkRadioGroup && dit.sitLim == ditm.id)\n                    {\n                        dit.sitLim++;\n                        PutDit(idit - 1, &dit);\n                        fAddDit = fFalse;\n                        break;\n                    }\n                }\n\n                // new group\n                dit.ditk = ditkRadioGroup;\n                cbEntry = size(long);\n                break;\n\n            default:\n                fAddDit = fFalse;\n                break;\n            }\n            break;\n\n        case 0x0081: // edit item\n            dit.ditk = ditkEditText;\n            cbEntry = 0;\n            break;\n\n        case 0x0085: // combo item\n            dit.ditk = ditkCombo;\n            cbEntry = 0;\n            break;\n        }\n\n        if (fAddDit)\n        {\n            Assert(cbEntry >= 0, 0);\n            dit.sitMin = ditm.id;\n            dit.sitLim = dit.sitMin + 1;\n            if (!FInsert(idit, cbEntry, pvNil, &dit))\n                goto LFail;\n\n            // zero the extra data\n            if (cbEntry > 0)\n                ClearPb(QvGet(idit), cbEntry);\n            idit++;\n        }\n    }\n\n    Assert(idit > 0, \"no dits in this dialog\");\n    FEnsureSpace(0, 0, fgrpShrink);\n    fRet = fTrue;\n\nLFail:\n    if (!fRet)\n        PushErc(ercDlgOom);\n\n    return fRet;\n}\n\n/***************************************************************************\n    Windows dialog proc.\n***************************************************************************/\nBOOL CALLBACK _FDlgCore(HWND hdlg, UINT msg, WPARAM w, LPARAM lw)\n{\n    PDLG pdlg;\n    DIT dit;\n    long idit;\n    RC rcDlg;\n    RC rcDsp;\n\n    // this may return nil\n    pdlg = (PDLG)GetProp(hdlg, _szDlgProp);\n\n    switch (msg)\n    {\n    case WM_SYSCOMMAND:\n        if (w == SC_SCREENSAVE && pvNil != vpappb && !vpappb->FAllowScreenSaver())\n        {\n            return fTrue;\n        }\n        break;\n\n    case WM_INITDIALOG:\n        DLGI *pdlgi;\n        RCS rcs;\n\n        // the pdlgi should be in the lParam\n        pdlgi = (DLGI *)lw;\n        pdlg = pdlgi->pdlg;\n        AssertPo(pdlg, 0);\n\n        // set the DLG property so we can find the pdlg easily\n        if (!SetProp(hdlg, _szDlgProp, (HANDLE)pdlg))\n            goto LFail;\n\n        // create a timer so we can do idle processing\n        if (SetTimer(hdlg, (uint)hdlg, 10, pvNil) == 0)\n            goto LFail;\n\n        // create a container gob and attach the hdlg\n        pdlg->_pgob = NewObj GOB(khidDialog);\n        if (pdlg->_pgob == pvNil)\n            goto LFail;\n        if (!pdlg->_pgob->FAttachHwnd((HWND)hdlg))\n        {\n        LFail:\n            PushErc(ercDlgOom);\n            idit = ivNil;\n            goto LEndDialog;\n        }\n\n        // set the dialog values\n        pdlg->SetValues(0, pdlg->IvMac());\n        if (ivNil != pdlgi->iditFocus)\n            pdlg->SelectDit(pdlgi->iditFocus);\n\n        GetWindowRect(hdlg, &rcs);\n        rcDlg = rcs;\n\n        rcDsp.Set(0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));\n        if (hNil != vwig.hwndApp)\n        {\n            RC rcApp;\n\n            GetWindowRect(vwig.hwndApp, &rcs);\n            rcApp = rcs;\n            rcDlg.CenterOnRc(&rcApp);\n        }\n        else\n            rcDlg.CenterOnRc(&rcDsp);\n\n        rcDlg.PinToRc(&rcDsp);\n        MoveWindow(hdlg, rcDlg.xpLeft, rcDlg.ypTop, rcDlg.Dxp(), rcDlg.Dyp(), fFalse);\n\n        return ivNil == pdlgi->iditFocus;\n\n    case WM_TIMER:\n        if (pvNil == pdlg)\n            break;\n\n        idit = ivNil;\n        if (pdlg->_FDitChange(&idit))\n            goto LEndDialog;\n        break;\n\n    case WM_COMMAND:\n        if (pvNil == pdlg)\n            break;\n\n        if ((idit = pdlg->IditFromSit(GET_WM_COMMAND_ID(w, lw))) == ivNil)\n            break;\n\n        pdlg->GetDit(idit, &dit);\n        switch (dit.ditk)\n        {\n        default:\n            return fFalse;\n\n        case ditkEditText:\n            if (SwHigh(w) != EN_CHANGE)\n                return fFalse;\n            break;\n\n        case ditkButton:\n        case ditkCheckBox:\n        case ditkRadioGroup:\n            break;\n        }\n\n        if (pdlg->_FDitChange(&idit))\n        {\n        LEndDialog:\n            if (pdlg->_pgob != pvNil)\n            {\n                if (idit != ivNil && !pdlg->FGetValues(0, pdlg->IvMac()))\n                    idit = ivNil;\n                pdlg->_pgob->FAttachHwnd(hNil);\n                pdlg->_pgob->Release();\n                pdlg->_pgob = pvNil;\n            }\n            else\n                idit = ivNil;\n\n            // remove the pdlg property and kill the timer\n            RemoveProp(hdlg, _szDlgProp);\n            KillTimer(hdlg, (uint)hdlg);\n\n            EndDialog(hdlg, idit);\n            return fTrue;\n        }\n\n        break;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Actually put up the dialog and don't return until it comes down.\n    Returns the idit that dismissed the dialog.  Returns ivNil on failure.\n***************************************************************************/\nlong DLG::IditDo(long iditFocus)\n{\n    long idit;\n    DLGI dlgi;\n\n    dlgi.pdlg = this;\n    dlgi.iditFocus = iditFocus;\n    idit = DialogBoxParam(vwig.hinst, MIR(_rid), vwig.hwndApp, &_FDlgCore, (long)&dlgi);\n\n    return idit;\n}\n\n/***************************************************************************\n    Make the given item the \"focused\" item and select its contents.  The\n    item should be a text item or combo item.\n***************************************************************************/\nvoid DLG::SelectDit(long idit)\n{\n    HDLG hdlg;\n    DIT dit;\n\n    if (pvNil == _pgob || hNil == (hdlg = (HDLG)_pgob->Hwnd()))\n        goto LBug;\n\n    GetDit(idit, &dit);\n    if (dit.ditk != ditkEditText && dit.ditk != ditkCombo)\n    {\n    LBug:\n        Bug(\"bad call to DLG::SelectDit\");\n        return;\n    }\n    Assert(dit.sitLim == dit.sitMin + 1, \"wrong lim on edit item\");\n    SetFocus(GetDlgItem(hdlg, dit.sitMin));\n    SendDlgItemMessage(hdlg, dit.sitMin, EM_SETSEL, GET_EM_SETSEL_MPS(0, -1));\n}\n\n/***************************************************************************\n    Get the value of a radio group.\n***************************************************************************/\nlong DLG::_LwGetRadioGroup(long idit)\n{\n    HDLG hdlg;\n    DIT dit;\n    long sit;\n\n    GetDit(idit, &dit);\n    hdlg = (HDLG)_pgob->Hwnd();\n    Assert(hdlg != hNil, \"no dialog!\");\n    Assert(dit.ditk == ditkRadioGroup, \"not a radio group!\");\n\n    for (sit = dit.sitMin; sit < dit.sitLim; sit++)\n    {\n        if (IsDlgButtonChecked(hdlg, sit))\n            return sit - dit.sitMin;\n    }\n    Bug(\"no radio button set\");\n    return dit.sitLim - dit.sitMin;\n}\n\n/***************************************************************************\n    Change a radio group value.\n***************************************************************************/\nvoid DLG::_SetRadioGroup(long idit, long lw)\n{\n    HDLG hdlg;\n    DIT dit;\n\n    GetDit(idit, &dit);\n    hdlg = (HDLG)_pgob->Hwnd();\n    Assert(hdlg != hNil, \"no dialog!\");\n    Assert(dit.ditk == ditkRadioGroup, \"not a radio group!\");\n    AssertIn(lw, 0, dit.sitLim - dit.sitMin);\n\n    CheckRadioButton(hdlg, dit.sitMin, dit.sitLim - 1, dit.sitMin + lw);\n}\n\n/***************************************************************************\n    Returns the current value of a check box.\n***************************************************************************/\nbool DLG::_FGetCheckBox(long idit)\n{\n    HDLG hdlg;\n    DIT dit;\n\n    GetDit(idit, &dit);\n    hdlg = (HDLG)_pgob->Hwnd();\n    Assert(hdlg != hNil, \"no dialog!\");\n    Assert(dit.ditk == ditkCheckBox, \"not a check box!\");\n    Assert(dit.sitLim == dit.sitMin + 1, \"wrong lim on check box\");\n\n    return FPure(IsDlgButtonChecked(hdlg, dit.sitMin));\n}\n\n/***************************************************************************\n    Invert the value of a check box.\n***************************************************************************/\nvoid DLG::_InvertCheckBox(long idit)\n{\n    _SetCheckBox(idit, !_FGetCheckBox(idit));\n}\n\n/***************************************************************************\n    Set the value of a check box.\n***************************************************************************/\nvoid DLG::_SetCheckBox(long idit, bool fOn)\n{\n    HDLG hdlg;\n    DIT dit;\n\n    GetDit(idit, &dit);\n    hdlg = (HDLG)_pgob->Hwnd();\n    Assert(hdlg != hNil, \"no dialog!\");\n    Assert(dit.ditk == ditkCheckBox, \"not a check box!\");\n    Assert(dit.sitLim == dit.sitMin + 1, \"wrong lim on check box\");\n\n    CheckDlgButton(hdlg, dit.sitMin, FPure(fOn));\n}\n\n/***************************************************************************\n    Get the text from an edit control or combo.\n***************************************************************************/\nvoid DLG::_GetEditText(long idit, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    HDLG hdlg;\n    DIT dit;\n    SZ sz;\n\n    GetDit(idit, &dit);\n    hdlg = (HDLG)_pgob->Hwnd();\n    Assert(hdlg != hNil, \"no dialog!\");\n    Assert(dit.ditk == ditkEditText || dit.ditk == ditkCombo, \"not edit item or combo!\");\n    Assert(dit.sitLim == dit.sitMin + 1, \"wrong lim on item\");\n\n    GetDlgItemText(hdlg, dit.sitMin, sz, kcchMaxSz);\n    *pstn = sz;\n}\n\n/***************************************************************************\n    Set the text in an edit control or combo.\n***************************************************************************/\nvoid DLG::_SetEditText(long idit, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    HDLG hdlg;\n    DIT dit;\n\n    GetDit(idit, &dit);\n    hdlg = (HDLG)_pgob->Hwnd();\n    Assert(hdlg != hNil, \"no dialog!\");\n    Assert(dit.ditk == ditkEditText || dit.ditk == ditkCombo, \"not edit item or combo!\");\n    Assert(dit.sitLim == dit.sitMin + 1, \"wrong lim on item\");\n\n    SetDlgItemText(hdlg, dit.sitMin, pstn->Psz());\n}\n\n/***************************************************************************\n    Add a string to a combo item.\n***************************************************************************/\nbool DLG::_FAddToList(long idit, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    HDLG hdlg;\n    HWND hwndCombo;\n    DIT dit;\n\n    GetDit(idit, &dit);\n    hdlg = (HDLG)_pgob->Hwnd();\n    Assert(hdlg != hNil, \"no dialog!\");\n    Assert(dit.ditk == ditkCombo, \"not combo!\");\n    Assert(dit.sitLim == dit.sitMin + 1, \"wrong lim on item\");\n\n    if (hNil == (hwndCombo = GetDlgItem(hdlg, dit.sitMin)))\n    {\n        Warn(\"Couldn't get combo hwnd\");\n        return fFalse;\n    }\n\n    return 0 <= (long)SendMessage(hwndCombo, CB_ADDSTRING, 0, (LPARAM)pstn->Psz());\n}\n\n/***************************************************************************\n    Empty the list portion of the combo item.\n***************************************************************************/\nvoid DLG::_ClearList(long idit)\n{\n    AssertThis(0);\n    HDLG hdlg;\n    HWND hwndCombo;\n    DIT dit;\n\n    GetDit(idit, &dit);\n    hdlg = (HDLG)_pgob->Hwnd();\n    Assert(hdlg != hNil, \"no dialog!\");\n    Assert(dit.ditk == ditkCombo, \"not combo!\");\n    Assert(dit.sitLim == dit.sitMin + 1, \"wrong lim on item\");\n\n    if (hNil == (hwndCombo = GetDlgItem(hdlg, dit.sitMin)))\n    {\n        Warn(\"Couldn't get combo hwnd\");\n        return;\n    }\n\n    SendMessage(hwndCombo, CB_RESETCONTENT, 0, 0);\n}\n"
  },
  {
    "path": "kauai/src/docb.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Base document class and its supporting gobs.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\n#define dsnoNil 0\nlong DOCB::_cactLast = 0;\nPDOCB DOCB::_pdocbFirst = pvNil;\n\nBEGIN_CMD_MAP(DDG, GOB)\nON_CID_GEN(cidClose, &DDG::FCmdCloseDoc, pvNil)\nON_CID_GEN(cidSaveAndClose, &DDG::FCmdCloseDoc, pvNil)\nON_CID_GEN(cidSave, &DDG::FCmdSave, &DDG::FEnableDdgCmd)\nON_CID_GEN(cidSaveAs, &DDG::FCmdSave, pvNil)\nON_CID_GEN(cidSaveCopy, &DDG::FCmdSave, pvNil)\nON_CID_GEN(cidCut, &DDG::FCmdClip, &DDG::FEnableDdgCmd)\nON_CID_GEN(cidCopy, &DDG::FCmdClip, &DDG::FEnableDdgCmd)\nON_CID_GEN(cidPaste, &DDG::FCmdClip, &DDG::FEnableDdgCmd)\nON_CID_GEN(cidPasteSpecial, &DDG::FCmdClip, &DDG::FEnableDdgCmd)\nON_CID_GEN(cidClear, &DDG::FCmdClip, &DDG::FEnableDdgCmd)\nON_CID_GEN(cidUndo, &DDG::FCmdUndo, &DDG::FEnableDdgCmd)\nON_CID_GEN(cidRedo, &DDG::FCmdUndo, &DDG::FEnableDdgCmd)\nEND_CMD_MAP_NIL()\n\nRTCLASS(DOCB)\nRTCLASS(DTE)\nRTCLASS(DDG)\nRTCLASS(DMD)\nRTCLASS(DMW)\nRTCLASS(DSG)\nRTCLASS(DSSP)\nRTCLASS(DSSM)\nRTCLASS(UNDB)\n\n/***************************************************************************\n    Constructor for DOCB\n***************************************************************************/\nDOCB::DOCB(PDOCB pdocb, ulong grfdoc) : CMH(khidDoc)\n{\n    _pdocbChd = pvNil;\n    if (pvNil == pdocb)\n    {\n        _pdocbPar = pvNil;\n        _pdocbSib = _pdocbFirst;\n        _pdocbFirst = this;\n    }\n    else if (grfdoc & fdocSibling)\n    {\n        AssertPo(pdocb, 0);\n        _pdocbPar = pdocb->_pdocbPar;\n        _pdocbSib = pdocb->_pdocbSib;\n        pdocb->_pdocbSib = this;\n    }\n    else\n    {\n        AssertPo(pdocb, 0);\n        _pdocbPar = pdocb;\n        _pdocbSib = pdocb->_pdocbChd;\n        pdocb->_pdocbChd = this;\n    }\n\n    _cundbMax = 10;\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    First calls Release on all direct child docb's of this DOCB.\n    Finally calls delete on itself.\n***************************************************************************/\nvoid DOCB::Release(void)\n{\n    AssertThis(fobjAssertFull);\n    PDOCB pdocb;\n    PUNDB pundb;\n\n    if (--_cactRef > 0)\n        return;\n\n    Assert(Cddg() == 0, \"why are there still DDG's open on this DOCB?\");\n    Assert(!_fFreeing, \"we're recursing into the DOCB::Release!\");\n    _fFreeing = fTrue;\n\n    if (pvNil != _pglpundb)\n    {\n        while (_pglpundb->FPop(&pundb))\n            ReleasePpo(&pundb);\n        ReleasePpo(&_pglpundb);\n        _ipundbLimDone = 0;\n    }\n\n    while (pvNil != (pdocb = _pdocbChd))\n    {\n        pdocb->CloseAllDdg();\n        if (pdocb == _pdocbChd)\n        {\n            // REVIEW shonk: Release: is this the right thing to do?  What if\n            // someone else has a reference count to this child DOCB?\n            Bug(\"why wasn't this child doc released?\");\n            ReleasePpo(&pdocb);\n        }\n    }\n\n    delete this;\n}\n\n/***************************************************************************\n    Close all DDGs on this DOCB.\n***************************************************************************/\nvoid DOCB::CloseAllDdg(void)\n{\n    PDDG pddg;\n    PDMD pdmd;\n\n    if (pvNil != _pglpddg)\n    {\n        // the pddg's are removed from _hplpddg in RemoveDdg\n        // Note that freeing one DMD may end up nuking more than\n        // one DDG.\n        // REVIEW shonk: this assumes that no one else has a\n        // reference count open on one of these DMDs or DDGs.\n        AddRef(); // so we aren't freed in the loop\n        while (_pglpddg->IvMac() > 0)\n        {\n            _pglpddg->Get(0, &pddg);\n            if (pvNil != (pdmd = pddg->Pdmd()))\n                ReleasePpo(&pdmd); // close the MDI window\n            else\n                ReleasePpo(&pddg); // close just the DDG\n        }\n        Release(); // balance our AddRef\n    }\n}\n\n/***************************************************************************\n    Destructor for the document class.\n***************************************************************************/\nDOCB::~DOCB(void)\n{\n    AssertThis(fobjAssertFull);\n    PDOCB *ppdocb;\n\n    Assert(_fFreeing, \"Release not called first!\");\n    Assert(pvNil == _pdocbChd, \"docb still has children\");\n    Assert(pvNil == _pglpddg || _pglpddg->IvMac() == 0, \"doc is still being displayed by a window\");\n\n    if (vpclip->FDocIsClip(this))\n    {\n        Bug(\"The clipboard document is going away!\");\n        // these AddRef's are so our destructor doesn't get called when the\n        // clipboard releases us!\n        AddRef();\n        AddRef();\n        vpclip->Set();\n    }\n\n    // remove it from the sibling list\n    for (ppdocb = pvNil != _pdocbPar ? &_pdocbPar->_pdocbChd : &_pdocbFirst; *ppdocb != this && pvNil != *ppdocb;\n         ppdocb = &(*ppdocb)->_pdocbSib)\n    {\n    }\n    if (*ppdocb == this)\n        *ppdocb = _pdocbSib;\n    else\n        Bug(\"corrupt docb tree\");\n\n    ReleasePpo(&_pglpddg);\n}\n\n/***************************************************************************\n    Static method: calls FQueryClose on all open docs.\n***************************************************************************/\nbool DOCB::FQueryCloseAll(ulong grfdoc)\n{\n    PDOCB pdocb;\n\n    for (pdocb = _pdocbFirst; pvNil != pdocb; pdocb = pdocb->_pdocbSib)\n    {\n        if (!pdocb->FQueryClose(grfdoc))\n            return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    If the document is dirty, ask the user if they want to save changes\n    (and save if they do).  Return false if the user cancels the operation.\n    Don't allow cancel if fdocForceClose is set.  Don't ask about saving\n    (assume yes) if fdocAssumeYes is set.  Doesn't assume doc is fni\n    based (calls FSave() to perform the save).\n***************************************************************************/\nbool DOCB::FQueryClose(ulong grfdoc)\n{\n    tribool tRet;\n    DTE dte;\n    PDOCB pdocb;\n    ulong grfdte;\n    bool fForce = FPure(grfdoc & fdocForceClose);\n\n    dte.Init(this);\n    while (dte.FNextDoc(&pdocb, &grfdte))\n    {\n        if (!(grfdte & fdtePost) || !pdocb->FDirty())\n            continue;\n\n        if (!(grfdoc & fdocAssumeYes))\n        {\n            tRet = pdocb->_TQuerySave(fForce);\n            if (tNo == tRet)\n                continue;\n            if (tMaybe == tRet)\n                return false;\n        }\n        if (!pdocb->FSave())\n        {\n            if (!fForce)\n                return false;\n        }\n    }\n    return true;\n}\n\n/***************************************************************************\n    Ask the user if they want to save the document before closing it.\n***************************************************************************/\ntribool DOCB::_TQuerySave(bool fForce)\n{\n    AssertThis(0);\n\n    return vpappb->TQuerySaveDoc(this, fForce) ? tYes : tNo;\n}\n\n/***************************************************************************\n    If the document is dirty, and this is the only DMD displaying the doc,\n    ask the user if they want to save changes (and save if they do).\n    Return false if the user cancels the operation or the save fails.\n***************************************************************************/\nbool DOCB::FQueryCloseDmd(PDMD pdmd)\n{\n    PDDG pddg;\n    PDMD pdmdT;\n    long ipddg;\n\n    if (pvNil == _pglpddg || _pglpddg->IvMac() == 0)\n    {\n        Bug(\"why are there no DDGs for this doc if there's a DMD?\");\n        return fTrue;\n    }\n\n    for (ipddg = _pglpddg->IvMac(); ipddg-- != 0;)\n    {\n        _pglpddg->Get(ipddg, &pddg);\n        AssertBasePo(pddg, 0);\n        pdmdT = pddg->Pdmd();\n        if (pdmdT != pdmd && pdmdT != pvNil)\n        {\n            // there's another window on this doc, so let this one close\n            return fTrue;\n        }\n    }\n\n    return FQueryClose(fdocNil);\n}\n\n/***************************************************************************\n    Return whether this is an internal document.\n***************************************************************************/\nbool DOCB::FInternal(void)\n{\n    AssertThis(0);\n    return _fInternal || vpclip->FDocIsClip(this);\n}\n\n/***************************************************************************\n    Change this document's internal status.\n***************************************************************************/\nvoid DOCB::SetInternal(bool fInternal)\n{\n    AssertThis(0);\n    _fInternal = FPure(fInternal);\n}\n\n/***************************************************************************\n    Static method to return the DOC open on this fni (if there is one).\n***************************************************************************/\nPDOCB DOCB::PdocbFromFni(FNI *pfni)\n{\n    AssertPo(pfni, 0);\n    PDOCB pdocb;\n    FNI fni;\n\n    for (pdocb = _pdocbFirst; pvNil != pdocb; pdocb = pdocb->_pdocbSib)\n    {\n        if (!pdocb->FGetFni(&fni))\n            continue;\n        if (fni.FEqual(pfni))\n            return pdocb;\n    }\n    return pvNil;\n}\n\n/***************************************************************************\n    Get the current FNI for the doc.  Return false if the doc is not\n    currently based on an FNI (it's a new doc or an internal one).\n***************************************************************************/\nbool DOCB::FGetFni(FNI *pfni)\n{\n    return fFalse;\n}\n\n/***************************************************************************\n    High level save.\n***************************************************************************/\nbool DOCB::FSave(long cid)\n{\n    FNI fni;\n\n    switch (cid)\n    {\n    default:\n        Bug(\"why are we here?\");\n        return fFalse;\n\n    case cidSave:\n        if (FGetFni(&fni))\n            break;\n        // fall through\n    case cidSaveAs:\n    case cidSaveCopy:\n        if (!FGetFniSave(&fni))\n            return fFalse;\n        break;\n    }\n\n    if (!FSaveToFni(&fni, cid != cidSaveCopy))\n    {\n        PushErc(ercCantSave);\n        return fFalse;\n    }\n    if (cid != cidSaveCopy)\n        UpdateName();\n    return fTrue;\n}\n\n/***************************************************************************\n    Save the document and optionally set this fni as the current one.\n    If the doc is currently based on an FNI, pfni may be nil, indicating\n    that this is a normal save (not save as).  If pfni is not nil and\n    fSetFni is false, this just writes a copy of the doc but doesn't change\n    the doc one bit.\n***************************************************************************/\nbool DOCB::FSaveToFni(FNI *pfni, bool fSetFni)\n{\n    return fFalse;\n}\n\n/***************************************************************************\n    Ask the user what file they want to save to.  On Mac, assumes saving\n    to a text file.\n***************************************************************************/\nbool DOCB::FGetFniSave(FNI *pfni)\n{\n    return FGetFniSaveMacro(pfni, 'TEXT',\n                            \"\\x9\"\n                            \"Save As: \",\n                            \"\", PszLit(\"All files\\0*.*\\0\"), vwig.hwndApp);\n}\n\n/***************************************************************************\n    Add the DDG to the list of DDGs displaying this document\n***************************************************************************/\nbool DOCB::FAddDdg(PDDG pddg)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pddg, 0);\n    bool fT;\n\n    if (pvNil == _pglpddg && pvNil == (_pglpddg = GL::PglNew(size(PDDG), 1)))\n    {\n        return fFalse;\n    }\n    fT = _pglpddg->FAdd(&pddg);\n    AssertThis(fobjAssertFull);\n    return fT;\n}\n\n/***************************************************************************\n    Find the position of the pddg in the DOCB's list.\n***************************************************************************/\nbool DOCB::_FFindDdg(PDDG pddg, long *pipddg)\n{\n    AssertThis(0);\n    AssertVarMem(pipddg);\n    long ipddg, cpddg;\n    PDDG pddgT;\n\n    if (_pglpddg == pvNil)\n        goto LFail;\n\n    cpddg = _pglpddg->IvMac();\n    for (ipddg = 0; ipddg < cpddg; ipddg++)\n    {\n        _pglpddg->Get(ipddg, &pddgT);\n        if (pddgT == pddg)\n        {\n            *pipddg = ipddg;\n            return fTrue;\n        }\n    }\n\nLFail:\n    TrashVar(pipddg);\n    return fFalse;\n}\n\n/***************************************************************************\n    Remove the pddg from the list of DDGs for this doc.\n***************************************************************************/\nvoid DOCB::RemoveDdg(PDDG pddg)\n{\n    AssertThis(fobjAssertFull);\n    long ipddg;\n\n    if (_FFindDdg(pddg, &ipddg))\n        _pglpddg->Delete(ipddg);\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    Make this DDG the first one in the DOCB's list.\n***************************************************************************/\nvoid DOCB::MakeFirstDdg(PDDG pddg)\n{\n    long ipddg;\n\n    if (!_FFindDdg(pddg, &ipddg))\n    {\n        BugVar(\"pddg not in docb's list\", &pddg);\n        return;\n    }\n\n    if (ipddg != 0)\n        _pglpddg->Move(ipddg, 0);\n}\n\n/***************************************************************************\n    Return the iddg'th DDG displaying this doc.  If iddg is too big,\n    return pvNil.\n***************************************************************************/\nPDDG DOCB::PddgGet(long iddg)\n{\n    AssertThis(0);\n    AssertIn(iddg, 0, klwMax);\n    PDDG pddg;\n\n    if (pvNil == _pglpddg || iddg >= _pglpddg->IvMac())\n        return pvNil;\n    _pglpddg->Get(iddg, &pddg);\n    AssertPo(pddg, 0);\n    return pddg;\n}\n\n/***************************************************************************\n    If there is an active DDG for this doc, return it.\n***************************************************************************/\nPDDG DOCB::PddgActive(void)\n{\n    AssertThis(0);\n    PDDG pddg;\n\n    pddg = PddgGet(0);\n    if (pvNil == pddg || !pddg->FActive())\n        return pvNil;\n    return pddg;\n}\n\n/***************************************************************************\n    Create a new mdi window for this document.\n***************************************************************************/\nPDMD DOCB::PdmdNew(void)\n{\n    AssertThis(fobjAssertFull);\n    return DMD::PdmdNew(this);\n}\n\n/***************************************************************************\n    If this DOCB has a DMD, make it the activate hwnd.\n***************************************************************************/\nvoid DOCB::ActivateDmd(void)\n{\n    AssertThis(fobjAssertFull);\n    long ipddg;\n    PDDG pddg;\n    PDMD pdmd;\n\n    for (ipddg = 0; pvNil != (pddg = PddgGet(ipddg)); ipddg++)\n    {\n        pdmd = (PDMD)pddg->PgobParFromCls(kclsDMD);\n        if (pvNil != pdmd)\n        {\n            GOB::MakeHwndActive(pdmd->HwndContainer());\n            return;\n        }\n    }\n}\n\n/***************************************************************************\n    Create a DMW for the document.\n***************************************************************************/\nPDMW DOCB::PdmwNew(PGCB pgcb)\n{\n    AssertThis(fobjAssertFull);\n    return DMW::PdmwNew(this, pgcb);\n}\n\n/***************************************************************************\n    Create a new DSG for the doc in the given DMW.\n***************************************************************************/\nPDSG DOCB::PdsgNew(PDMW pdmw, PDSG pdsgSplit, ulong grfdsg, long rel)\n{\n    AssertThis(fobjAssertFull);\n    return DSG::PdsgNew(pdmw, pdsgSplit, grfdsg, rel);\n}\n\n/***************************************************************************\n    Create a new DDG for the doc in the given DSG.\n***************************************************************************/\nPDDG DOCB::PddgNew(PGCB pgcb)\n{\n    AssertThis(fobjAssertFull);\n    return DDG::PddgNew(this, pgcb);\n}\n\n/***************************************************************************\n    Get the name of a default (untitled) document.\n***************************************************************************/\nvoid DOCB::GetName(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    FNI fni;\n\n    // REVIEW shonk: clipboard constant string.\n    if (vpclip->FDocIsClip(this))\n        *pstn = PszLit(\"Clipboard\");\n    else if (FGetFni(&fni))\n        fni.GetLeaf(pstn);\n    else\n    {\n        if (_cactUntitled == 0)\n            _cactUntitled = ++_cactLast;\n        pstn->FFormatSz(PszLit(\"Untitled %d\"), _cactUntitled);\n    }\n}\n\n/***************************************************************************\n    Makes sure all windows displaying this document have the correct title.\n***************************************************************************/\nvoid DOCB::UpdateName(void)\n{\n    DTE dte;\n    ulong grfdte;\n    STN stn;\n    long ipddg;\n    PDDG pddg;\n    PDOCB pdocb;\n    PDMD pdmd;\n\n    dte.Init(this);\n    while (dte.FNextDoc(&pdocb, &grfdte, fdteNil))\n    {\n        if (!(grfdte & fdtePre))\n            continue;\n        pdocb->GetName(&stn);\n        for (ipddg = 0; pvNil != (pddg = pdocb->PddgGet(ipddg++));)\n        {\n            if (pvNil != (pdmd = pddg->Pdmd()))\n                pdmd->SetHwndName(&stn);\n        }\n    }\n}\n\n/***************************************************************************\n    Does a single Undo off the undo list.\n***************************************************************************/\nbool DOCB::FUndo()\n{\n    AssertThis(fobjAssertFull);\n    PUNDB pundb;\n\n    if (pvNil == _pglpundb || _ipundbLimDone <= 0)\n        return fFalse;\n\n    _pglpundb->Get(_ipundbLimDone - 1, &pundb);\n    if (!pundb->FUndo(this))\n        return fFalse;\n    _ipundbLimDone--;\n    return fTrue;\n}\n\n/***************************************************************************\n    Redoes a single undo off the undo list.\n***************************************************************************/\nbool DOCB::FRedo()\n{\n    AssertThis(fobjAssertFull);\n    PUNDB pundb;\n\n    if (pvNil == _pglpundb || _ipundbLimDone >= _pglpundb->IvMac())\n        return fFalse;\n\n    _pglpundb->Get(_ipundbLimDone, &pundb);\n    if (!pundb->FDo(this))\n        return fFalse;\n    _ipundbLimDone++;\n    return fTrue;\n}\n\n/***************************************************************************\n    Adds a single undo to the undo list, removing any Redo items.  Increments\n    the ref count on the pundb if we keep a reference to it.  Assumes\n    the action has already been done.\n***************************************************************************/\nbool DOCB::FAddUndo(PUNDB pundb)\n{\n    AssertThis(fobjAssertFull);\n    PUNDB pundbT;\n    bool fRet;\n\n    if (_cundbMax == 0)\n        return fTrue;\n\n    if (pvNil == _pglpundb && pvNil == (_pglpundb = GL::PglNew(size(PUNDB), 1)))\n    {\n        return fFalse;\n    }\n\n    ClearRedo();\n    if (_cundbMax <= _pglpundb->IvMac())\n    {\n        _pglpundb->Get(0, &pundbT);\n        _pglpundb->Delete(0);\n        ReleasePpo(&pundbT);\n    }\n\n    while (!(fRet = _pglpundb->FPush(&pundb)) && _pglpundb->IvMac() > 0)\n    {\n        _pglpundb->Get(0, &pundbT);\n        _pglpundb->Delete(0);\n        ReleasePpo(&pundbT);\n    }\n    if (fRet)\n        pundb->AddRef();\n\n    _ipundbLimDone = _pglpundb->IvMac();\n    AssertThis(fobjAssertFull);\n    return fRet;\n}\n\n/***************************************************************************\n    Delete all undo and redo records.\n***************************************************************************/\nvoid DOCB::ClearUndo(void)\n{\n    PUNDB pundb;\n\n    if (pvNil == _pglpundb)\n        return;\n\n    while (_pglpundb->FPop(&pundb))\n        ReleasePpo(&pundb);\n    _ipundbLimDone = 0;\n}\n\n/***************************************************************************\n    Delete all redo records.\n***************************************************************************/\nvoid DOCB::ClearRedo(void)\n{\n    PUNDB pundb;\n\n    if (pvNil == _pglpundb)\n        return;\n\n    while (_ipundbLimDone < _pglpundb->IvMac())\n    {\n        AssertDo(_pglpundb->FPop(&pundb), 0);\n        ReleasePpo(&pundb);\n    }\n}\n\n/***************************************************************************\n    Set the maximum allowable number of undoable operations.\n***************************************************************************/\nvoid DOCB::SetCundbMax(long cundbMax)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(cundbMax, 0, kcbMax);\n    long ipundbLimNew;\n    PUNDB pundb;\n\n    _cundbMax = cundbMax;\n    if (pvNil == _pglpundb || _pglpundb->IvMac() <= cundbMax)\n        return;\n\n    ipundbLimNew = LwMax(_ipundbLimDone, cundbMax);\n    while (_pglpundb->IvMac() > ipundbLimNew)\n    {\n        AssertDo(_pglpundb->FPop(&pundb), 0);\n        ReleasePpo(&pundb);\n    }\n\n    while (_pglpundb->IvMac() > cundbMax)\n    {\n        Assert(_ipundbLimDone == _pglpundb->IvMac(), 0);\n        _pglpundb->Get(0, &pundb);\n        _pglpundb->Delete(0);\n        _ipundbLimDone--;\n        ReleasePpo(&pundb);\n    }\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    Return the maximum number of undoable operations for this doc\n***************************************************************************/\nlong DOCB::CundbMax(void)\n{\n    AssertThis(0);\n    return _cundbMax;\n}\n\n/***************************************************************************\n    Return the number of operations that can currently be undone.\n***************************************************************************/\nlong DOCB::CundbUndo(void)\n{\n    AssertThis(0);\n    return _ipundbLimDone;\n}\n\n/***************************************************************************\n    Return the number of operations that can currently be redone.\n***************************************************************************/\nlong DOCB::CundbRedo(void)\n{\n    if (pvNil == _pglpundb)\n        return 0;\n    return _pglpundb->IvMac() - _ipundbLimDone;\n}\n\n/***************************************************************************\n    Export this docb as the external clipboard.\n***************************************************************************/\nvoid DOCB::ExportFormats(PCLIP pclip)\n{\n    AssertThis(0);\n    AssertPo(pclip, 0);\n}\n\n/***************************************************************************\n    See if this document can be coerced to the given format.\n***************************************************************************/\nbool DOCB::FGetFormat(long cls, PDOCB *ppdocb)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(ppdocb);\n\n    if (pvNil != ppdocb)\n        *ppdocb = pvNil;\n    return fFalse;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert validity of a DOCB\n***************************************************************************/\nvoid DOCB::AssertValid(ulong grfdocb)\n{\n    long ipddg;\n    PDDG pddg;\n    long ipundb;\n    PUNDB pundb;\n\n    DOCB_PAR::AssertValid(grfdocb & fobjAssertFull);\n    AssertNilOrPo(_pglpddg, 0);\n\n    if (!(grfdocb & fobjAssertFull))\n        return;\n\n    if (pvNil != _pglpddg)\n    {\n        for (ipddg = _pglpddg->IvMac(); ipddg-- != 0;)\n        {\n            _pglpddg->Get(ipddg, &pddg);\n            AssertBasePo(pddg, 0);\n        }\n    }\n\n    if (pvNil != _pglpundb)\n    {\n        AssertIn(_ipundbLimDone, 0, _pglpundb->IvMac() + 1);\n        AssertIn(_pglpundb->IvMac(), 0, _cundbMax + 1);\n        for (ipundb = _pglpundb->IvMac(); ipundb-- != 0;)\n        {\n            _pglpundb->Get(ipundb, &pundb);\n            AssertPo(pundb, 0);\n        }\n    }\n    else\n    {\n        Assert(_ipundbLimDone == 0, 0);\n        AssertIn(_cundbMax, 0, kcbMax);\n    }\n}\n\n/***************************************************************************\n    Mark the memory used by the DOCB\n***************************************************************************/\nvoid DOCB::MarkMem(void)\n{\n    long ipundb;\n    PUNDB pundb;\n\n    AssertThis(fobjAssertFull);\n    DOCB_PAR::MarkMem();\n    MarkMemObj(_pglpddg);\n    if (pvNil != _pglpundb)\n    {\n        MarkMemObj(_pglpundb);\n\n        for (ipundb = _pglpundb->IvMac(); ipundb-- != 0;)\n        {\n            _pglpundb->Get(ipundb, &pundb);\n            MarkMemObj(pundb);\n        }\n    }\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for a document tree enumerator.\n***************************************************************************/\nDTE::DTE(void)\n{\n    _es = esDone;\n}\n\n/***************************************************************************\n    Initialize a document tree enumerator.\n***************************************************************************/\nvoid DTE::Init(PDOCB pdocb)\n{\n    _pdocbRoot = pdocb;\n    _pdocbCur = pvNil;\n    _es = pdocb == pvNil ? esDone : esStart;\n}\n\n/***************************************************************************\n    Goes to the next node in the sub tree being enumerated.  Returns false\n    iff the enumeration is done.\n***************************************************************************/\nbool DTE::FNextDoc(PDOCB *ppdocb, ulong *pgrfdteOut, ulong grfdte)\n{\n    PDOCB pdocbT;\n\n    *pgrfdteOut = fdteNil;\n    switch (_es)\n    {\n    case esStart:\n        _pdocbCur = _pdocbRoot;\n        *pgrfdteOut |= fdteRoot;\n        goto LCheckForKids;\n\n    case esGoDown:\n        if (!(grfdte & fdteSkipToSib))\n        {\n            pdocbT = _pdocbCur->_pdocbChd;\n            if (pdocbT != pvNil)\n            {\n                _pdocbCur = pdocbT;\n                goto LCheckForKids;\n            }\n        }\n        // fall through\n    case esGoLeft:\n        // go to the sibling (if there is one) or parent\n        if (_pdocbCur == _pdocbRoot)\n        {\n            _es = esDone;\n            return fFalse;\n        }\n        pdocbT = _pdocbCur->_pdocbSib;\n        if (pdocbT != pvNil)\n        {\n            _pdocbCur = pdocbT;\n        LCheckForKids:\n            *pgrfdteOut |= fdtePre;\n            if (_pdocbCur->_pdocbChd == pvNil)\n            {\n                *pgrfdteOut |= fdtePost;\n                _es = esGoLeft;\n            }\n            else\n                _es = esGoDown;\n        }\n        else\n        {\n            // no more siblings, go to parent\n            _pdocbCur = _pdocbCur->_pdocbPar;\n            *pgrfdteOut |= fdtePost;\n            if (_pdocbCur == _pdocbRoot)\n            {\n                _es = esDone;\n                *pgrfdteOut |= fdteRoot;\n            }\n            else\n                _es = esGoLeft;\n        }\n        break;\n\n    case esDone:\n        return fFalse;\n    }\n\n    *ppdocb = _pdocbCur;\n    return fTrue;\n}\n\n/***************************************************************************\n    Static method to create a new DDG.\n***************************************************************************/\nPDDG DDG::PddgNew(PDOCB pdocb, PGCB pgcb)\n{\n    PDDG pddg;\n\n    if (pvNil == (pddg = NewObj DDG(pdocb, pgcb)))\n        return pvNil;\n\n    if (!pddg->_FInit())\n    {\n        ReleasePpo(&pddg);\n        return pvNil;\n    }\n    pddg->Activate(fTrue);\n\n    AssertPo(pddg, 0);\n    return pddg;\n}\n\n/***************************************************************************\n    Constructor for a DDG.  AddRef's the DOCB.\n***************************************************************************/\nDDG::DDG(PDOCB pdocb, PGCB pgcb) : GOB(pgcb)\n{\n    AssertBasePo(pdocb, 0);\n    pdocb->AddRef();\n    _pdocb = pdocb;\n    _scvVert = _scvHorz = 0;\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    Destructor for DDG - remove itself from the DOCB's list.  Releases\n    the DOCB.\n***************************************************************************/\nDDG::~DDG(void)\n{\n    AssertBasePo(_pdocb, 0);\n    PDMD pdmd;\n\n    _pdocb->RemoveDdg(this);\n    if (_fActive && pvNil != (pdmd = Pdmd()))\n        pdmd->ActivateNext(this);\n    _pdocb->Release();\n}\n\n/***************************************************************************\n    Initialize the DDG - including setting its position.\n***************************************************************************/\nbool DDG::_FInit(void)\n{\n    _fCreating = fTrue;\n\n    if (!_pdocb->FAddDdg(this))\n        return fFalse;\n\n    _fCreating = fFalse;\n    return fTrue;\n}\n\n/***************************************************************************\n    If this DDG is contained in a DMD, return the DMD.  Otherwise, return\n    pvNil.\n***************************************************************************/\nPDMD DDG::Pdmd(void)\n{\n    return (PDMD)GOB::PgobParFromCls(kclsDMD);\n}\n\n/***************************************************************************\n    Make this the active DDG for the docb or deactivate it according to\n    fActive.\n***************************************************************************/\nvoid DDG::Activate(bool fActive)\n{\n    AssertThis(fobjAssertFull);\n    PDDG pddg;\n    PDMD pdmd;\n\n    if (FPure(fActive) == FPure(_fActive))\n        return;\n\n    if (fActive)\n    {\n        // deactivate the current active one\n        pddg = _pdocb->PddgActive();\n        if (pvNil != pddg)\n        {\n            pddg->_Activate(fFalse);\n            pddg->_fActive = fFalse;\n        }\n\n        // activate ourself\n        if (pvNil != (pdmd = Pdmd()))\n        {\n            // bring our parent chain to the front\n            PGOB pgob;\n\n            for (pgob = this; pgob != pdmd; pgob = pgob->PgobPar())\n                pgob->BringToFront();\n        }\n        _pdocb->MakeFirstDdg(this);\n    }\n    _Activate(fActive);\n    _fActive = FPure(fActive);\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    Default for a DDG - add/remove itself to the command handler list.\n***************************************************************************/\nvoid DDG::_Activate(bool fActive)\n{\n    vpcex->RemoveCmh(this, 0);\n    if (fActive)\n        vpcex->FAddCmh(this, 0);\n}\n\n/***************************************************************************\n    Handles enabling/disabling of common Ddg commands.\n***************************************************************************/\nbool DDG::FEnableDdgCmd(PCMD pcmd, ulong *pgrfeds)\n{\n    AssertThis(0);\n\n    switch (pcmd->cid)\n    {\n    case cidSave:\n        if (!_pdocb->FDirty())\n            goto LDisable;\n        break;\n\n    case cidCut:\n    case cidCopy:\n    case cidClear:\n        if (!_FCopySel(pvNil))\n            goto LDisable;\n        break;\n\n    case cidPaste:\n    case cidPasteSpecial:\n        if (vpclip->FDocIsClip(pvNil) || vpclip->FDocIsClip(_pdocb) || !_FPaste(vpclip, fFalse, pcmd->cid))\n        {\n            goto LDisable;\n        }\n        break;\n\n    case cidUndo:\n        if (_pdocb->CundbUndo() <= 0)\n            goto LDisable;\n        break;\n    case cidRedo:\n        if (_pdocb->CundbRedo() <= 0)\n            goto LDisable;\n        break;\n\n    default:\n        BugVar(\"unhandled cid in FEnableDdgCmd\", &pcmd->cid);\n    LDisable:\n        *pgrfeds = fedsDisable;\n        return fTrue;\n    }\n\n    *pgrfeds = fedsEnable;\n    return fTrue;\n}\n\n/***************************************************************************\n    Handles the Cut, Copy, Paste and Clear commands.\n***************************************************************************/\nbool DDG::FCmdClip(PCMD pcmd)\n{\n    AssertThis(fobjAssertFull);\n    AssertVarMem(pcmd);\n    PDOCB pdocb = pvNil;\n\n    switch (pcmd->cid)\n    {\n    case cidCut:\n    case cidCopy:\n        // copy the selection\n        if (!_FCopySel(&pdocb))\n            return fTrue;\n        vpclip->Set(pdocb);\n        ReleasePpo(&pdocb);\n\n        if (pcmd->cid == cidCopy)\n            break;\n        // fall thru\n\n    case cidClear:\n        // delete the selection\n        _ClearSel();\n        break;\n\n    case cidPaste:\n    case cidPasteSpecial:\n        if (!vpclip->FDocIsClip(pvNil) && !vpclip->FDocIsClip(_pdocb))\n            _FPaste(vpclip, fTrue, pcmd->cid);\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Default for copying a selection.  Just returns false so the Cut, Copy\n    and Clear edit menu items are disabled.\n***************************************************************************/\nbool DDG::_FCopySel(PDOCB *ppdocb)\n{\n    return fFalse;\n}\n\n/***************************************************************************\n    Default for clearing (deleting) a selection.\n***************************************************************************/\nvoid DDG::_ClearSel(void)\n{\n}\n\n/***************************************************************************\n    Default for pasting over a selection.  Just returns false so the Paste\n    edit menu item is disabled.\n***************************************************************************/\nbool DDG::_FPaste(PCLIP pclip, bool fDoIt, long cid)\n{\n    return fFalse;\n}\n\n/***************************************************************************\n    Handle a close command.\n***************************************************************************/\nbool DDG::FCmdCloseDoc(PCMD pcmd)\n{\n    if (_pdocb->FQueryClose(pcmd->cid == cidSaveAndClose ? fdocAssumeYes : fdocNil))\n        _pdocb->CloseAllDdg();\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle a save, save as or save a copy command.\n***************************************************************************/\nbool DDG::FCmdSave(PCMD pcmd)\n{\n    _pdocb->FSave(pcmd->cid);\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle a save, save as or save a copy command.\n***************************************************************************/\nbool DDG::FCmdUndo(PCMD pcmd)\n{\n    if (pcmd->cid == cidUndo)\n        _pdocb->FUndo();\n    else\n        _pdocb->FRedo();\n    return fTrue;\n}\n\n/***************************************************************************\n    Default for a DDG - for frame testing only.\n***************************************************************************/\nvoid DDG::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    pgnv->FillRc(prcClip, _fActive ? kacrBlue : kacrMagenta);\n}\n\n/***************************************************************************\n    Activate the selection.  Default activates the DDG.\n***************************************************************************/\nbool DDG::FCmdActivateSel(PCMD pcmd)\n{\n    Activate(fTrue);\n    return fTrue;\n}\n\n/***************************************************************************\n    Scroll the DCD\n***************************************************************************/\nbool DDG::FCmdScroll(PCMD pcmd)\n{\n    bool fVert;\n    long scv;\n\n    fVert = (pcmd->rglw[0] == khidVScroll);\n    switch (pcmd->cid)\n    {\n    case cidDoScroll:\n        if (pcmd->rglw[1] == scaToVal)\n            break; // ignore thumb tracking\n\n        if (fVert)\n            _Scroll(scaNil, pcmd->rglw[1]);\n        else\n            _Scroll(pcmd->rglw[1], scaNil);\n        break;\n\n    case cidEndScroll:\n        scv = pcmd->rglw[1];\n        if (fVert)\n            _Scroll(scaNil, scaToVal, 0, scv);\n        else\n            _Scroll(scaToVal, scaNil, scv);\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Scroll with the given scrolling actions.  Sets the scroll bar values\n    accordingly.\n***************************************************************************/\nvoid DDG::_Scroll(long scaHorz, long scaVert, long scvHorz, long scvVert)\n{\n    _SetScrollValues();\n}\n\n/***************************************************************************\n    Set the scroll bar values for the DDG to _scvHorz and _scvVert and\n    the Max values.\n***************************************************************************/\nvoid DDG::_SetScrollValues(void)\n{\n    PSCB pscb;\n    PGOB pgob;\n\n    pgob = PgobPar();\n    if (pgob->FIs(kclsDSG))\n    {\n        if (pvNil != (pscb = (PSCB)pgob->PgobFromHid(khidVScroll)))\n            pscb->SetValMinMax(_scvVert, 0, _ScvMax(fTrue));\n        if (pvNil != (pscb = (PSCB)pgob->PgobFromHid(khidHScroll)))\n            pscb->SetValMinMax(_scvHorz, 0, _ScvMax(fFalse));\n    }\n}\n\n/***************************************************************************\n    Actually move the bits for a scroll.  The _scvVert and _scvHorz\n    member variables have already been updated.\n***************************************************************************/\nvoid DDG::_ScrollDxpDyp(long dxp, long dyp)\n{\n    Scroll(pvNil, -dxp, -dyp, kginDraw);\n}\n\n/***************************************************************************\n    Return the scroll bound.\n***************************************************************************/\nlong DDG::_ScvMax(bool fVert)\n{\n    return 0;\n}\n\n/***************************************************************************\n    The DDG has changed sizes, reset the scroll bounds.\n***************************************************************************/\nvoid DDG::_NewRc(void)\n{\n    _SetScrollValues();\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a DDG.\n***************************************************************************/\nvoid DDG::AssertValid(ulong grfobj)\n{\n    DDG_PAR::AssertValid(grfobj | fobjAllocated);\n    AssertPo(_pdocb, grfobj & fobjAssertFull);\n}\n\n/***************************************************************************\n    Mark memory for the DDG.\n***************************************************************************/\nvoid DDG::MarkMem(void)\n{\n    AssertValid(fobjAssertFull);\n    DDG_PAR::MarkMem();\n    MarkMemObj(_pdocb);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Static method: create a new Document MDI window.  Put a size box in\n    it and add a DMW.\n***************************************************************************/\nPDMD DMD::PdmdNew(PDOCB pdocb)\n{\n    AssertPo(pdocb, 0);\n    PDMD pdmd;\n    STN stn;\n    RC rcRel, rcAbs;\n\n    GCB gcb(khidDmd, GOB::PgobScreen());\n    if (pvNil == (pdmd = NewObj DMD(pdocb, &gcb)))\n        return pvNil;\n    pdocb->GetName(&stn);\n    if (!pdmd->FCreateAndAttachMdi(&stn))\n        goto LFail;\n\n    rcRel.xpLeft = rcRel.ypTop = 0;\n    rcRel.xpRight = rcRel.ypBottom = krelOne;\n    rcAbs.xpLeft = rcAbs.ypTop = 0;\n    rcAbs.xpRight = rcAbs.ypBottom = 1;\n    if (pvNil == WSB::PwsbNew(pdmd, fgobNil))\n        goto LFail;\n    gcb.Set(khidDmw, pdmd, fgobNil, kginDefault, &rcAbs, &rcRel);\n    if (pvNil == pdocb->PdmwNew(&gcb))\n    {\n    LFail:\n        ReleasePpo(&pdmd);\n        return pvNil;\n    }\n\n    AssertPo(pdmd, 0);\n    return pdmd;\n}\n\n/***************************************************************************\n    Static method: returns the currently active DMD (if there is one).\n***************************************************************************/\nPDMD DMD::PdmdTop(void)\n{\n    PGOB pgob;\n\n    if (pvNil == (pgob = GOB::PgobMdiActive()))\n        return pvNil;\n    AssertPo(pgob, 0);\n    if (!pgob->FIs(kclsDMD))\n        return pvNil;\n    AssertPo((PDMD)pgob, 0);\n    return (PDMD)pgob;\n}\n\n/***************************************************************************\n    Constructor for document mdi window.\n***************************************************************************/\nDMD::DMD(PDOCB pdocb, PGCB pgcb) : GOB(pgcb)\n{\n    AssertPo(pdocb, 0);\n    _pdocb = pdocb;\n}\n\n/***************************************************************************\n    Activate the next DDG (after the given one).\n***************************************************************************/\nvoid DMD::ActivateNext(PDDG pddg)\n{\n    AssertThis(fobjAssertFull);\n    GTE gte;\n    ulong grfgte;\n    PGOB pgob;\n\n    if (_fFreeing)\n        return;\n\n    gte.Init(this, fgteNil);\n    while (gte.FNextGob(&pgob, &grfgte, fgteNil))\n    {\n        if (pgob->FIs(kclsDDG) && pgob != pddg)\n        {\n            ((PDDG)pgob)->Activate(fTrue);\n            return;\n        }\n    }\n}\n\n/***************************************************************************\n    Handle activation/deactivation of the hwnd.\n***************************************************************************/\nvoid DMD::_ActivateHwnd(bool fActive)\n{\n    AssertThis(0);\n    PDDG pddg;\n\n    pddg = (PDDG)PgobFromCls(kclsDDG);\n    if (FPure(fActive) != FPure(pddg->FActive()))\n        pddg->Activate(fActive);\n}\n\n/***************************************************************************\n    Handles cidCloseWnd.\n***************************************************************************/\nbool DMD::FCmdCloseWnd(PCMD pcmd)\n{\n    // ask the user about saving the doc\n    if (!_pdocb->FQueryCloseDmd(this))\n    {\n        pcmd->cid = cidNil;\n        return fTrue;\n    }\n    Release();\n    return fTrue;\n}\n\n/***************************************************************************\n    Static method to create a new DMW (document window) based on the given\n    document.\n***************************************************************************/\nPDMW DMW::PdmwNew(PDOCB pdocb, PGCB pgcb)\n{\n    PDMW pdmw;\n\n    pdmw = NewObj DMW(pdocb, pgcb);\n    if (!pdmw->_FInit())\n    {\n        ReleasePpo(&pdmw);\n        return pvNil;\n    }\n\n    AssertPo(pdmw, 0);\n    return pdmw;\n}\n\n/***************************************************************************\n    Constructor for document window class\n***************************************************************************/\nDMW::DMW(PDOCB pdocb, PGCB pgcb) : GOB(pgcb)\n{\n    AssertPo(pdocb, 0);\n    _pdocb = pdocb;\n    _paldsed = pvNil;\n    _idsedRoot = ivNil;\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    Free the DSED tree so we don't bother with the tree manipulations\n    during freeing.  Then call GOB::Free.\n***************************************************************************/\nvoid DMW::Release(void)\n{\n    AssertThis(fobjAssertFull);\n    if (_cactRef <= 1)\n    {\n        Assert(!_fFreeing, \"we're recursing into the destructor!\");\n        _fFreeing = fTrue;\n        ReleasePpo(&_paldsed);\n        _idsedRoot = ivNil;\n    }\n    DMW_PAR::Release();\n}\n\n/***************************************************************************\n    Create the actual mdi window, etc.\n***************************************************************************/\nbool DMW::_FInit(void)\n{\n    _fCreating = fTrue;\n\n    // create a lone dsg\n    if (pvNil == _pdocb->PdsgNew(this, pvNil, fdsgNil, krelOne))\n        return fFalse;\n    AssertPo(_paldsed, 0);\n    Assert(_paldsed->IvMac() > 0, \"the DSG wasn't added to the DMW\");\n\n    _fCreating = fFalse;\n    return fTrue;\n}\n\n/***************************************************************************\n    The DMW has been resized, make sure no DSGs are too small.\n***************************************************************************/\nvoid DMW::_NewRc(void)\n{\n    AssertThis(0);\n    _Layout(_idsedRoot);\n}\n\n/***************************************************************************\n    Add the dsg to the dmw (the dsg is already a child gob - we now promote\n    it to a full fledged child dsg).\n***************************************************************************/\nbool DMW::FAddDsg(PDSG pdsg, PDSG pdsgSplit, ulong grfdsg, long rel)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(rel, 0, krelOne + 1);\n    DSED dsed;\n    DSED *qdsed;\n    long idsedSplit, idsedPar, idsedEdge, idsedNew;\n\n    ClearPb(&dsed, size(dsed));\n    dsed.idsedLeft = ivNil;\n    dsed.idsedRight = ivNil;\n    dsed.idsedPar = ivNil;\n    if (pvNil == _paldsed || _paldsed->IvMac() == 0)\n    {\n        // this is the first one\n        Assert(pvNil == pdsgSplit, \"no DSGs yet, so can't split one\");\n        if (pvNil == _paldsed && pvNil == (_paldsed = AL::PalNew(size(DSED), 1)))\n            return fFalse;\n        dsed.pdsg = pdsg;\n        if (!_paldsed->FAdd(&dsed, &_idsedRoot))\n            return fFalse;\n        pdsg->_dsno = _idsedRoot + 1;\n        idsedEdge = _idsedRoot;\n        goto LDone;\n    }\n\n    AssertIn(_idsedRoot, 0, _paldsed->IvMac());\n    if ((idsedSplit = pdsgSplit->_dsno) == dsnoNil)\n    {\n        Bug(\"pdsgSplit is not a registered DSG\");\n        return fFalse;\n    }\n    idsedSplit--;\n\n    if (!_paldsed->FEnsureSpace(2, fgrpNil))\n        return fFalse;\n    AssertDo(_paldsed->FAdd(&dsed, &idsedEdge), 0);\n    AssertDo(_paldsed->FAdd(&dsed, &idsedNew), 0);\n\n    // fix the links on the one being split\n    qdsed = _Qdsed(idsedSplit);\n    Assert(qdsed->pdsg == pdsgSplit, \"DSED tree bad\");\n    idsedPar = qdsed->idsedPar;\n    qdsed->idsedPar = idsedEdge;\n\n    // fix the links on the parent\n    if (ivNil == idsedPar)\n    {\n        Assert(idsedSplit == _idsedRoot, \"corrupt DSED tree\");\n        _idsedRoot = idsedEdge;\n    }\n    else\n    {\n        qdsed = _Qdsed(idsedPar);\n        if (qdsed->idsedLeft == idsedSplit)\n            qdsed->idsedLeft = idsedEdge;\n        else\n        {\n            Assert(qdsed->idsedRight == idsedSplit, \"DSED tree is trashed\");\n            qdsed->idsedRight = idsedEdge;\n        }\n    }\n\n    // construct the new node\n    qdsed = _Qdsed(idsedNew);\n    qdsed->idsedPar = idsedEdge;\n    qdsed->pdsg = pdsg;\n    pdsg->_dsno = idsedNew + 1;\n\n    // construct the Edge node\n    qdsed = _Qdsed(idsedEdge);\n    qdsed->fVert = FPure(grfdsg & fdsgVert);\n    qdsed->rel = rel;\n    qdsed->idsedPar = idsedPar;\n    if (grfdsg & fdsgAfter)\n    {\n        qdsed->idsedLeft = idsedSplit;\n        qdsed->idsedRight = idsedNew;\n    }\n    else\n    {\n        qdsed->idsedLeft = idsedNew;\n        qdsed->idsedRight = idsedSplit;\n    }\n\nLDone:\n    _Layout(idsedEdge);\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Remove the dsg from the list of active DSGs.\n***************************************************************************/\nvoid DMW::RemoveDsg(PDSG pdsg)\n{\n    long idsedStart;\n\n    if (!_fFreeing)\n    {\n        _RemoveDsg(pdsg, &idsedStart);\n        _Layout(idsedStart);\n    }\n}\n\n/***************************************************************************\n    Remove the DSG from the tree and set its _dsno to nil.\n***************************************************************************/\nvoid DMW::_RemoveDsg(PDSG pdsg, long *pidsedStartLayout)\n{\n    AssertThis(0);\n    AssertPo(pdsg, 0);\n    long idsedDel, idsedGrandPar, idsedSib;\n    DSED *qdsed;\n    DSED dsed;\n\n    *pidsedStartLayout = ivNil;\n    if (dsnoNil == pdsg->_dsno)\n        return;\n    if (pvNil == _paldsed)\n    {\n        pdsg->_dsno = dsnoNil;\n        return;\n    }\n\n    // delete the node\n    idsedDel = pdsg->_dsno - 1;\n    pdsg->_dsno = dsnoNil;\n    _paldsed->Get(idsedDel, &dsed);\n    _paldsed->Delete(idsedDel);\n\n    if (ivNil == dsed.idsedPar)\n    {\n        Assert(_idsedRoot == idsedDel, \"bad root value\");\n        _idsedRoot = ivNil;\n        AssertThis(0);\n        return;\n    }\n\n    // get info from the parent, then delete it\n    qdsed = _Qdsed(dsed.idsedPar);\n    idsedGrandPar = qdsed->idsedPar;\n    if (idsedDel == qdsed->idsedLeft)\n        idsedSib = qdsed->idsedRight;\n    else\n    {\n        Assert(idsedDel == qdsed->idsedRight, \"DSED tree bad\");\n        idsedSib = qdsed->idsedLeft;\n    }\n    _paldsed->Delete(dsed.idsedPar);\n\n    // fix the sibling and grandparent\n    if (ivNil == idsedGrandPar)\n    {\n        Assert(_idsedRoot == dsed.idsedPar, \"DSED root value wrong\");\n        _idsedRoot = idsedSib;\n    }\n    else\n    {\n        qdsed = _Qdsed(idsedGrandPar);\n        if (dsed.idsedPar == qdsed->idsedLeft)\n            qdsed->idsedLeft = idsedSib;\n        else\n        {\n            Assert(dsed.idsedPar == qdsed->idsedRight, \"DSED tree bad\");\n            qdsed->idsedRight = idsedSib;\n        }\n    }\n\n    // fix the sib\n    qdsed = _Qdsed(idsedSib);\n    qdsed->idsedPar = idsedGrandPar;\n\n    *pidsedStartLayout = idsedSib;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Find the edge corresponding to the given leaf restricted to the subtree\n    pointed to by idsedRoot.  We get to the edge by going up until we\n    either hit the root (return ivNil) or we just went up a left arc (return\n    the parent).\n***************************************************************************/\nlong DMW::_IdsedEdge(long idsed, long idsedRoot)\n{\n    // Don't call AssertThis because AssertValid calls this\n    AssertBaseThis(0);\n    DSED *qdsed;\n    long idsedPar;\n\n    qdsed = _Qdsed(idsed);\n    idsedPar = qdsed->idsedPar;\n    while (ivNil != idsedPar)\n    {\n        qdsed = _Qdsed(idsedPar);\n        if (qdsed->idsedLeft == idsed)\n        {\n            Assert(ivNil != qdsed->idsedRight, \"bad node\");\n            return idsedPar;\n        }\n        Assert(qdsed->idsedRight == idsed, \"bad DSED tree\");\n        if (idsedPar == idsedRoot)\n            return ivNil;\n        idsed = idsedPar;\n        idsedPar = qdsed->idsedPar;\n        // keep going up until we're on a left branch\n    }\n    // we went right all the way up, so we're done\n    return ivNil;\n}\n\n/***************************************************************************\n    Find the next dsed to visit in the sub-tree traversal based at\n    idsedStart (pre-order traversal).\n***************************************************************************/\nlong DMW::_IdsedNext(long idsed, long idsedRoot)\n{\n    DSED *qdsed;\n\n    qdsed = _Qdsed(idsed);\n    if (ivNil != qdsed->idsedLeft)\n        return qdsed->idsedLeft;\n\n    Assert(ivNil == qdsed->idsedRight, \"bad node\");\n    Assert(pvNil != qdsed->pdsg, \"node should have a dsg\");\n\n    if (ivNil == (idsed = _IdsedEdge(idsed, idsedRoot)))\n        return ivNil;\n    return _Qdsed(idsed)->idsedRight;\n}\n\n/***************************************************************************\n    Re-layout the DSGs in the DMW.  If any become too small, delete them.\n***************************************************************************/\nvoid DMW::_Layout(long idsedStart)\n{\n    AssertThis(0);\n    RC rc, rcDsg;\n    long dxpDmw, dypDmw;\n    long idsed;\n    DSED *qdsed;\n    RC rcRel;\n    PDSG pdsg;\n\nLRestart:\n    if (ivNil == idsedStart)\n        return;\n\n    GetRc(&rc, cooLocal);\n    dxpDmw = rc.Dxp();\n    dypDmw = rc.Dyp();\n\n    // set rcRel for idsedStart\n    if (idsedStart == _idsedRoot)\n    {\n        // put full rcRel in the root\n        rcRel.xpLeft = rcRel.ypTop = 0;\n        rcRel.xpRight = rcRel.ypBottom = krelOne;\n    }\n    else\n    {\n        // get the rcRel for this node from its parent\n        idsed = _Qdsed(idsedStart)->idsedPar;\n        Assert(ivNil != idsed, \"nil parent but not the root!\");\n        _SplitRcRel(idsed, &rcRel, &rc);\n        if (_Qdsed(idsed)->idsedRight == idsedStart)\n            rcRel = rc;\n    }\n    qdsed = _Qdsed(idsedStart);\n    qdsed->rcRel = rcRel;\n\n    for (idsed = idsedStart; ivNil != idsed; idsed = _IdsedNext(idsed, idsedStart))\n    {\n        qdsed = _Qdsed(idsed);\n        if (ivNil != qdsed->idsedLeft)\n        {\n            // internal node - no DSG\n            DSED dsed;\n\n            Assert(ivNil != qdsed->idsedRight, \"bad node\");\n            dsed = *qdsed;\n            _SplitRcRel(idsed, &rcRel, &rc);\n            _Qdsed(dsed.idsedLeft)->rcRel = rcRel;\n            _Qdsed(dsed.idsedRight)->rcRel = rc;\n            continue;\n        }\n\n        // this is a leaf\n        Assert(ivNil == qdsed->idsedRight, \"bad node\");\n        rcRel = qdsed->rcRel;\n        pdsg = qdsed->pdsg;\n        AssertPo(pdsg, 0);\n        pdsg->GetMinMax(&rc);\n        rcDsg.xpLeft = LwMulDiv(dxpDmw, rcRel.xpLeft, krelOne);\n        rcDsg.xpRight = LwMulDiv(dxpDmw, rcRel.xpRight, krelOne);\n        rcDsg.ypTop = LwMulDiv(dypDmw, rcRel.ypTop, krelOne);\n        rcDsg.ypBottom = LwMulDiv(dypDmw, rcRel.ypBottom, krelOne);\n        if ((rcDsg.Dxp() < rc.xpLeft || rcDsg.Dyp() < rc.ypTop) && idsed != _idsedRoot)\n        {\n            // DSG is becoming too small and it's not the only one, so nuke it\n            // and restart this routine from the top.\n\n            // Remove the dsg first so we don't recursively enter _Layout\n            _RemoveDsg(pdsg, &idsedStart);\n            ReleasePpo(&pdsg);\n            goto LRestart;\n        }\n    }\n\n    // now go through and actually set the positions\n    for (idsed = idsedStart; ivNil != idsed; idsed = _IdsedNext(idsed, idsedStart))\n    {\n        qdsed = (DSED *)_paldsed->QvGet(idsed);\n        if (ivNil != qdsed->idsedLeft)\n            continue;\n\n        // this is a leaf\n        Assert(ivNil == qdsed->idsedRight, \"bad node\");\n        rcRel = qdsed->rcRel;\n        pdsg = qdsed->pdsg;\n        AssertPo(pdsg, 0);\n\n        pdsg->GetPos(pvNil, &rc);\n        if (rc != rcRel)\n            pdsg->SetPos(pvNil, &rcRel);\n    }\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Find the two child rc's from the DSED's rc.\n***************************************************************************/\nvoid DMW::_SplitRcRel(long idsed, RC *prcLeft, RC *prcRight)\n{\n    DSED *qdsed;\n\n    qdsed = _Qdsed(idsed);\n    *prcLeft = qdsed->rcRel;\n    *prcRight = *prcLeft;\n    if (qdsed->fVert)\n    {\n        prcRight->ypTop = prcLeft->ypBottom = prcLeft->ypTop + LwMulDiv(prcLeft->Dyp(), qdsed->rel, krelOne);\n    }\n    else\n    {\n        prcRight->xpLeft = prcLeft->xpRight = prcLeft->xpLeft + LwMulDiv(prcLeft->Dxp(), qdsed->rel, krelOne);\n    }\n}\n\n/***************************************************************************\n    Return the number of DSGs.\n***************************************************************************/\nlong DMW::Cdsg(void)\n{\n    AssertThis(0);\n    long idsed, cdsg;\n    DSED *qdsed;\n\n    if (pvNil == _paldsed)\n        return 0;\n\n    cdsg = 0;\n    for (idsed = _paldsed->IvMac(); idsed-- != 0;)\n    {\n        if (_paldsed->FFree(idsed))\n            continue;\n\n        qdsed = _Qdsed(idsed);\n        if (pvNil != qdsed->pdsg)\n            cdsg++;\n    }\n    return cdsg;\n}\n\n/***************************************************************************\n    Get the rectangles for the split associated with pdsg and for the area\n    that the split affects.\n***************************************************************************/\nvoid DMW::GetRcSplit(PDSG pdsg, RC *prcBounds, RC *prcSplit)\n{\n    AssertThis(0);\n    AssertPo(pdsg, 0);\n    RC rc;\n    long idsedEdge;\n    DSED *qdsed;\n    long rel;\n\n    if (dsnoNil == pdsg->_dsno)\n        goto LZero;\n\n    idsedEdge = _IdsedEdge(pdsg->_dsno - 1, ivNil);\n    if (ivNil == idsedEdge)\n    {\n    LZero:\n        prcBounds->Zero();\n        prcSplit->Zero();\n        return;\n    }\n\n    GetRc(&rc, cooLocal);\n    qdsed = _Qdsed(idsedEdge);\n    prcBounds->xpLeft = LwMulDiv(rc.xpRight, qdsed->rcRel.xpLeft, krelOne);\n    prcBounds->xpRight = LwMulDiv(rc.xpRight, qdsed->rcRel.xpRight, krelOne);\n    prcBounds->ypTop = LwMulDiv(rc.ypBottom, qdsed->rcRel.ypTop, krelOne);\n    prcBounds->ypBottom = LwMulDiv(rc.ypBottom, qdsed->rcRel.ypBottom, krelOne);\n\n    *prcSplit = *prcBounds;\n    if (qdsed->fVert)\n    {\n        rel = qdsed->rcRel.ypTop + LwMulDiv(qdsed->rel, qdsed->rcRel.Dyp(), krelOne);\n        prcSplit->ypBottom = LwMulDiv(rc.ypBottom, rel, krelOne);\n        prcSplit->ypTop = prcSplit->ypBottom - SCB::DypNormal();\n    }\n    else\n    {\n        rel = qdsed->rcRel.xpLeft + LwMulDiv(qdsed->rel, qdsed->rcRel.Dxp(), krelOne);\n        prcSplit->xpRight = LwMulDiv(rc.xpRight, rel, krelOne);\n        prcSplit->xpLeft = prcSplit->xpRight - SCB::DxpNormal();\n    }\n}\n\n/***************************************************************************\n    Move the split corresponding to the given DSG.\n***************************************************************************/\nvoid DMW::MoveSplit(PDSG pdsg, long relNew)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pdsg, 0);\n    AssertIn(relNew, 0, krelOne + 1);\n    long idsedEdge;\n    DSED *qdsed;\n\n    if (dsnoNil == pdsg->_dsno)\n        goto LZero;\n\n    idsedEdge = _IdsedEdge(pdsg->_dsno - 1, ivNil);\n    if (ivNil == idsedEdge)\n    {\n    LZero:\n        Bug(\"split can't be moved\");\n        return;\n    }\n\n    // REVIEW shonk: if relNew is 0 or krelOne, we could nuke the\n    // subtree first.  Then layout would be faster.\n    qdsed = _Qdsed(idsedEdge);\n    qdsed->rel = relNew;\n    _Layout(idsedEdge);\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    Determine whether the split corresponding to pdsg is vertical,\n    horizontal or inactive.\n***************************************************************************/\ntribool DMW::TVert(PDSG pdsg)\n{\n    AssertThis(0);\n    AssertPo(pdsg, 0);\n    long idsed;\n\n    if (dsnoNil == pdsg->_dsno)\n        return tMaybe;\n    idsed = _IdsedEdge(pdsg->_dsno - 1, ivNil);\n    if (ivNil == idsed)\n        return tMaybe;\n    return _Qdsed(idsed)->fVert ? tYes : tNo;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the DMW.\n***************************************************************************/\nvoid DMW::AssertValid(ulong grfobj)\n{\n    long cdsed, idsed;\n    DSED dsed;\n    DSED *qdsed;\n\n    DMW_PAR::AssertValid(grfobj);\n    AssertPo(_pdocb, grfobj & fobjAssertFull);\n\n    if (pvNil == _paldsed || _paldsed->IvMac() == 0)\n    {\n        Assert(ivNil == _idsedRoot, \"no paldsed but _idsedRoot not nil\");\n        return;\n    }\n    if (ivNil == _idsedRoot)\n    {\n        Assert(0 == _paldsed->IvMac(), \"some DSEDs, but nil _idsedRoot\");\n        return;\n    }\n\n    if (!(grfobj & fobjAssertFull))\n        return;\n\n    // count the number of active dseds\n    cdsed = 0;\n    for (idsed = _paldsed->IvMac(); idsed-- != 0;)\n    {\n        if (!_paldsed->FFree(idsed))\n            cdsed++;\n    }\n\n    for (idsed = _idsedRoot; ivNil != idsed;)\n    {\n        Assert(!_paldsed->FFree(idsed), \"free node!\");\n        dsed = *_Qdsed(idsed);\n\n        // verify the parent pointer\n        Assert(FPure(idsed == _idsedRoot) == FPure(ivNil == dsed.idsedPar), \"dsed.idsedPar isn't right\");\n        if (ivNil != dsed.idsedPar)\n            Assert(!_paldsed->FFree(dsed.idsedPar), \"free node!\");\n\n        if (ivNil == dsed.idsedLeft)\n        {\n            Assert(ivNil == dsed.idsedRight, \"left nil, but right not\");\n            AssertPo(dsed.pdsg, 0);\n            Assert(dsed.pdsg->_dsno == idsed + 1, \"bad _dsno in DSG\");\n        }\n        else\n        {\n            Assert(!_paldsed->FFree(dsed.idsedLeft), \"free left child!\");\n            Assert(ivNil != dsed.idsedRight, \"non-nil left but nil right\");\n            Assert(!_paldsed->FFree(dsed.idsedRight), \"free right child!\");\n            Assert(pvNil == dsed.pdsg, \"nil pdsg expected\");\n\n            qdsed = _Qdsed(dsed.idsedLeft);\n            Assert(qdsed->idsedPar == idsed, \"left child's parent is wrong\");\n            qdsed = _Qdsed(dsed.idsedRight);\n            Assert(qdsed->idsedPar == idsed, \"right child's parent is wrong\");\n        }\n        cdsed--;\n        if (cdsed < 0)\n        {\n            Bug(\"dsed tree is mangled or has a loop\");\n            break;\n        }\n\n        // find the next node\n        if (ivNil != dsed.idsedLeft)\n        {\n            idsed = dsed.idsedLeft;\n            continue;\n        }\n\n        if (ivNil == (idsed = _IdsedEdge(idsed, ivNil)))\n            break;\n        Assert(!_paldsed->FFree(idsed), \"bad edge\");\n        qdsed = _Qdsed(idsed);\n        idsed = qdsed->idsedRight;\n        Assert(ivNil != idsed, \"idsedRight is nil\");\n    }\n\n    Assert(cdsed == 0, \"node count wrong\");\n}\n\n/***************************************************************************\n    Mark memory used by the DMW.\n***************************************************************************/\nvoid DMW::MarkMem(void)\n{\n    DMW_PAR::MarkMem();\n    MarkMemObj(_paldsed);\n}\n#endif // DEBUG\n\nBEGIN_CMD_MAP(DSG, GOB)\nON_CID_ME(cidDoScroll, &DSG::FCmdScroll, pvNil)\nON_CID_ME(cidEndScroll, &DSG::FCmdScroll, pvNil)\nEND_CMD_MAP_NIL()\n\n/***************************************************************************\n    Static method to create a new DSG.\n***************************************************************************/\nPDSG DSG::PdsgNew(PDMW pdmw, PDSG pdsgSplit, ulong grfdsg, long rel)\n{\n    AssertPo(pdmw, 0);\n    Assert(pvNil != pdsgSplit || pdmw->Cdsg() == 0, \"must split an existing DSG\");\n    PDSG pdsg;\n    GCB gcb(khidDsg, pdmw);\n\n    if (pvNil == (pdsg = NewObj DSG(&gcb)))\n        return pvNil;\n\n    if (!pdsg->_FInit(pdsgSplit, grfdsg, rel))\n    {\n        ReleasePpo(&pdsg);\n        return pvNil;\n    }\n    AssertPo(pdsg, 0);\n    return pdsg;\n}\n\n/***************************************************************************\n    Constructor for DSG.\n***************************************************************************/\nDSG::DSG(PGCB pgcb) : GOB(pgcb)\n{\n    _dsno = dsnoNil;\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    Destructor for DSG - remove ourselves from the DMW.\n***************************************************************************/\nDSG::~DSG(void)\n{\n    Pdmw()->RemoveDsg(this);\n}\n\n/***************************************************************************\n    Create the scroll bars, the DDG and do any other DSG initialization.\n***************************************************************************/\nbool DSG::_FInit(PDSG pdsgSplit, ulong grfdsg, long rel)\n{\n    Assert(pvNil != pdsgSplit || Pdmw()->Cdsg() == 0, \"must split an existing DSG\");\n    PDMW pdmw;\n    PDOCB pdocb;\n\n    _fCreating = fTrue;\n\n    // create the split mover\n    if (pvNil == DSSM::PdssmNew(this))\n        return fFalse;\n\n    // Create the scroll bars and split boxes\n    GCB gcb(khidVScroll, this);\n    SCB::GetStandardRc(fscbVert | fscbShowBottom | fscbShowRight, &gcb._rcAbs, &gcb._rcRel);\n    gcb._rcAbs.ypTop += DSSP::DypNormal();\n    if (pvNil == SCB::PscbNew(&gcb, fscbVert) || pvNil == DSSP::PdsspNew(this, fdsspVert))\n    {\n        return fFalse;\n    }\n\n    gcb._hid = khidHScroll;\n    SCB::GetStandardRc(fscbHorz | fscbShowBottom | fscbShowRight, &gcb._rcAbs, &gcb._rcRel);\n    gcb._rcAbs.xpLeft += DSSP::DxpNormal();\n    if (pvNil == SCB::PscbNew(&gcb, fscbHorz) || pvNil == DSSP::PdsspNew(this, fdsspHorz))\n    {\n        return fFalse;\n    }\n\n    // create a ddg\n    pdmw = Pdmw();\n    AssertBasePo(pdmw, 0);\n    pdocb = pdmw->Pdocb();\n    AssertBasePo(pdocb, 0);\n    gcb._hid = khidDdg;\n    SCB::GetClientRc(fscbHorz | fscbVert | fscbShowBottom | fscbShowRight, &gcb._rcAbs, &gcb._rcRel);\n    if (pvNil == (_pddg = pdocb->PddgNew(&gcb)))\n        return fFalse;\n\n    // add ourselves to the pdmw\n    if (!pdmw->FAddDsg(this, pdsgSplit, grfdsg, rel))\n        return fFalse;\n\n    _fCreating = fFalse;\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the min and max sizes for the DSG.\n***************************************************************************/\nvoid DSG::GetMinMax(RC *prcMinMax)\n{\n    AssertThis(0);\n    long dxpScb = SCB::DxpNormal();\n    long dypScb = SCB::DypNormal();\n\n    AssertPo(_pddg, 0);\n    _pddg->GetMinMax(prcMinMax);\n\n    // impose our own min and add the scroll bar dimensions\n    prcMinMax->xpLeft = dxpScb + LwMax(prcMinMax->xpLeft, DSSP::DxpNormal() + dxpScb);\n    prcMinMax->ypTop = dypScb + LwMax(prcMinMax->ypTop, DSSP::DypNormal() + dypScb);\n    prcMinMax->xpRight = LwMax(prcMinMax->xpLeft, dxpScb + prcMinMax->xpRight);\n    prcMinMax->ypBottom = LwMax(prcMinMax->ypTop, dypScb + prcMinMax->ypBottom);\n}\n\n/***************************************************************************\n    Split the DSG into two dsg's.\n***************************************************************************/\nvoid DSG::Split(ulong grfdsg, long rel)\n{\n    AssertThis(fobjAssertFull);\n    PDMW pdmw;\n    PDOCB pdocb;\n\n    Assert(_dsno != dsnoNil, \"why are we splitting an unattached DSG?\");\n    pdmw = Pdmw();\n    pdocb = pdmw->Pdocb();\n    pdocb->PdsgNew(pdmw, this, grfdsg, rel);\n}\n\n/***************************************************************************\n    A scroll bar has been hit.  Do the scroll.\n***************************************************************************/\nbool DSG::FCmdScroll(PCMD pcmd)\n{\n    // just pass it on to the DDG\n    AssertThis(0);\n    CMD cmd = *pcmd;\n\n    cmd.pcmh = _pddg;\n    cmd.pgg = pvNil;\n    return _pddg->FCmdScroll(&cmd);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the DSG.\n***************************************************************************/\nvoid DSG::AssertValid(ulong grfobj)\n{\n    PDMW pdmw;\n\n    DSG_PAR::AssertValid(grfobj);\n    pdmw = (PDMW)PgobPar();\n    AssertBasePo(pdmw, 0);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for the splitter.\n***************************************************************************/\nDSSP::DSSP(PGCB pgcb) : GOB(pgcb)\n{\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Static method to create a new split box.\n***************************************************************************/\nPDSSP DSSP::PdsspNew(PDSG pdsg, ulong grfdssp)\n{\n    Assert(FPure(grfdssp & fdsspHorz) != FPure(grfdssp & fdsspVert),\n           \"must specify exactly one of (fdsspVert,fdsspHorz)\");\n    AssertPo(pdsg, 0);\n    GCB gcb((grfdssp & fdsspVert) ? khidDsspVert : khidDsspHorz, pdsg);\n\n    if (grfdssp & fdsspVert)\n    {\n        gcb._rcRel.xpLeft = gcb._rcRel.xpRight = krelOne;\n        gcb._rcRel.ypTop = gcb._rcRel.ypBottom = krelZero;\n        gcb._rcAbs.xpLeft = -SCB::DxpNormal();\n        gcb._rcAbs.ypTop = 0;\n        gcb._rcAbs.xpRight = 0;\n        gcb._rcAbs.ypBottom = DypNormal();\n    }\n    else\n    {\n        gcb._rcRel.xpLeft = gcb._rcRel.xpRight = krelZero;\n        gcb._rcRel.ypTop = gcb._rcRel.ypBottom = krelOne;\n        gcb._rcAbs.xpLeft = 0;\n        gcb._rcAbs.ypTop = -SCB::DypNormal();\n        gcb._rcAbs.xpRight = DxpNormal();\n        gcb._rcAbs.ypBottom = 0;\n    }\n    return NewObj DSSP(&gcb);\n}\n\n/***************************************************************************\n    Draw the split box.\n***************************************************************************/\nvoid DSSP::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    RC rc;\n\n    pgnv->GetRcSrc(&rc);\n    pgnv->FillRc(&rc, kacrBlack);\n}\n\n/***************************************************************************\n    See if the parent DSG can be split.  If so, track the mouse and draw\n    the gray outline until the user releases the mouse.\n***************************************************************************/\nvoid DSSP::MouseDown(long xp, long yp, long cact, ulong grfcust)\n{\n    AssertThis(0);\n\n    long dzpMinDsg, dzpDsg, zpMin, zpLast, dzp, zp;\n    RC rc;\n    bool fVert = Hid() == khidDsspVert;\n    PDSG pdsg = (PDSG)PgobPar();\n    PT pt(xp, yp);\n\n    MapPt(&pt, cooLocal, cooParent);\n    pdsg->GetMinMax(&rc);\n    dzpMinDsg = fVert ? rc.ypTop : rc.xpLeft;\n    pdsg->GetRc(&rc, cooLocal);\n    dzpDsg = fVert ? rc.Dyp() : rc.Dxp();\n    if (dzpDsg <= 2 * dzpMinDsg)\n        return;\n\n    if (fVert)\n    {\n        dzp = DypNormal();\n        zpMin = pt.yp - dzp;\n        rc.ypBottom = rc.ypTop + dzp;\n    }\n    else\n    {\n        dzp = DxpNormal();\n        zpMin = pt.xp - dzp;\n        rc.xpRight = rc.xpLeft + dzp;\n    }\n    zpLast = zpMin + dzpDsg;\n\n    zp = pdsg->ZpDragRc(&rc, fVert, zpMin + dzp, zpMin + dzp, zpLast + 1, zpMin + dzpMinDsg, zpLast - dzpMinDsg + 1);\n    if (FIn(zp, zpMin + dzpMinDsg, zpLast - dzpMinDsg + 1))\n    {\n        long rel;\n\n        rel = LwMulDiv(zp - zpMin, krelOne, zpLast - zpMin) + 1;\n        pdsg->Split(fVert, rel);\n    }\n}\n\n/***************************************************************************\n    Constructor for the split mover.\n***************************************************************************/\nDSSM::DSSM(PGCB pgcb) : GOB(pgcb)\n{\n}\n\n/***************************************************************************\n    Static method to create a new split mover.\n***************************************************************************/\nPDSSM DSSM::PdssmNew(PDSG pdsg)\n{\n    AssertPo(pdsg, 0);\n    PDSSM pdssm;\n    GCB gcb(khidDssm, pdsg);\n\n    gcb._rcRel.xpLeft = gcb._rcRel.xpRight = gcb._rcRel.ypTop = gcb._rcRel.ypBottom = krelOne;\n    gcb._rcAbs.xpLeft = -SCB::DxpNormal();\n    gcb._rcAbs.ypTop = -SCB::DypNormal();\n    gcb._rcAbs.xpRight = gcb._rcAbs.ypBottom = 0;\n    pdssm = NewObj DSSM(&gcb);\n    return pdssm;\n}\n\n/***************************************************************************\n    Draw the split mover.\n***************************************************************************/\nvoid DSSM::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    RC rc;\n    tribool tVert;\n\n    tVert = TVert();\n    if (tMaybe == tVert)\n        return;\n\n    // REVIEW shonk: split mover: need an appropriate icon\n    GetRc(&rc, cooLocal);\n    pgnv->FrameRc(&rc, kacrBlack);\n    rc.Inset(1, 1);\n    pgnv->FillRc(&rc, tVert == tYes ? kacrGreen : kacrRed);\n}\n\n/***************************************************************************\n    Track the mouse and change the split location.\n***************************************************************************/\nvoid DSSM::MouseDown(long xp, long yp, long cact, ulong grfcust)\n{\n    AssertThis(0);\n    long zp, zpMin, zpLast, zpOrig, dzpMinDsg, dzp;\n    RC rc, rcSplit;\n    PDSG pdsg;\n    PDMW pdmw;\n    tribool tVert;\n    PT pt(xp, yp);\n\n    tVert = TVert();\n    if (tMaybe == tVert)\n        return;\n\n    pdsg = (PDSG)PgobPar();\n    AssertPo(pdsg, 0);\n    pdsg->GetMinMax(&rc);\n    dzpMinDsg = (tYes == tVert) ? rc.ypTop : rc.xpLeft;\n    pdmw = pdsg->Pdmw();\n    AssertPo(pdmw, 0);\n\n    MapPt(&pt, cooLocal, cooGlobal);\n    pdmw->MapPt(&pt, cooGlobal, cooLocal);\n    pdmw->GetRcSplit(pdsg, &rc, &rcSplit);\n    if (tYes == tVert)\n    {\n        zpOrig = pt.yp;\n        dzp = rcSplit.Dyp();\n        zpMin = zpOrig + rc.ypTop - rcSplit.ypBottom;\n        zpLast = zpOrig + rc.ypBottom - rcSplit.ypBottom;\n    }\n    else\n    {\n        zpOrig = pt.xp;\n        dzp = rcSplit.Dxp();\n        zpMin = zpOrig + rc.xpLeft - rcSplit.xpRight;\n        zpLast = zpOrig + rc.xpRight - rcSplit.xpRight;\n    }\n\n    zp = pdmw->ZpDragRc(&rcSplit, tYes == tVert, zpOrig, zpMin + dzp, zpLast + 1, zpMin + dzpMinDsg,\n                        zpLast + 1 - dzpMinDsg);\n    if (zp != zpOrig)\n    {\n        long rel;\n\n        if (zp < zpMin + dzpMinDsg)\n            rel = 0;\n        else if (zp > zpLast - dzpMinDsg)\n            rel = krelOne;\n        else\n            rel = LwMulDiv(zp - zpMin, krelOne, zpLast - zpMin) + 1;\n        pdmw->MoveSplit(pdsg, rel);\n    }\n}\n\n/***************************************************************************\n    Determine if we are disabled (tMaybe) or if not whether we are vertical\n    (tYes) or horizontal (tNo).\n***************************************************************************/\ntribool DSSM::TVert(void)\n{\n    PDSG pdsg;\n    PDMW pdmw;\n\n    pdsg = (PDSG)PgobPar();\n    pdmw = pdsg->Pdmw();\n    return pdmw->TVert(pdsg);\n}\n"
  },
  {
    "path": "kauai/src/docb.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    A base document class and its supporting gob classes.\n\n***************************************************************************/\n#ifndef DOCB_H\n#define DOCB_H\n\n/***************************************************************************\n    base undo class\n***************************************************************************/\ntypedef class UNDB *PUNDB;\n#define UNDB_PAR BASE\n#define kclsUNDB 'UNDB'\nclass UNDB : public UNDB_PAR\n{\n    RTCLASS_DEC\n    NOCOPY(UNDB)\n\n  protected:\n    UNDB(void)\n    {\n    }\n\n  public:\n    // General undo funtionality\n    virtual bool FUndo(PDOCB pdocb) = 0;\n    virtual bool FDo(PDOCB pdocb) = 0;\n};\n\n/***************************************************************************\n    base document class\n***************************************************************************/\nenum\n{\n    fdocNil = 0,\n    fdocSibling = 1,\n    fdocForceClose = 2, // for FQueryClose, etc\n    fdocAssumeYes = 4,  // for FQueryClose, etc\n\n    fdocUpdate = 8, // update associated DDGs\n    fdocInval = 16, // invalidate associated DDGs\n};\n\n#define DOCB_PAR CMH\n#define kclsDOCB 'DOCB'\nclass DOCB : public DOCB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n    friend class DTE;\n\n  protected:\n    static long _cactLast;\n    static PDOCB _pdocbFirst;\n\n    PDOCB _pdocbPar;\n    PDOCB _pdocbSib;\n    PDOCB _pdocbChd;\n\n    long _cactUntitled; // 0 if titled\n    bool _fDirty : 1;\n    bool _fFreeing : 1;\n    bool _fInternal : 1;\n    PGL _pglpddg; // keep track of the DDGs based on this doc\n\n    PGL _pglpundb; // keep track of undo items\n    long _ipundbLimDone;\n    long _cundbMax;\n\n    bool _FFindDdg(PDDG pddg, long *pipddg);\n    virtual tribool _TQuerySave(bool fForce);\n\n    DOCB(PDOCB pdocb = pvNil, ulong grfdoc = fdocNil);\n    ~DOCB(void);\n\n  public:\n    static bool FQueryCloseAll(ulong grfdoc);\n    static PDOCB PdocbFromFni(FNI *pfni);\n\n    static PDOCB PdocbFirst(void)\n    {\n        return _pdocbFirst;\n    }\n    PDOCB PdocbPar(void)\n    {\n        return _pdocbPar;\n    }\n    PDOCB PdocbSib(void)\n    {\n        return _pdocbSib;\n    }\n    PDOCB PdocbChd(void)\n    {\n        return _pdocbChd;\n    }\n\n    virtual void Release(void);\n\n    // high level call to create a new MDI window based on the doc.\n    virtual PDMD PdmdNew(void);\n    void ActivateDmd(void);\n\n    // low level calls - generally not for public consumption\n    virtual PDMW PdmwNew(PGCB pgcb);\n    virtual PDSG PdsgNew(PDMW pdwm, PDSG pdsgSplit, ulong grfdsg, long rel);\n    virtual PDDG PddgNew(PGCB pgcb);\n\n    // DDG management - only to be called by DDGs\n    bool FAddDdg(PDDG pddg);\n    void RemoveDdg(PDDG pddg);\n    void MakeFirstDdg(PDDG pddg);\n    void CloseAllDdg(void);\n\n    // General DDG management\n    long Cddg(void)\n    {\n        return pvNil == _pglpddg ? 0 : _pglpddg->IvMac();\n    }\n    PDDG PddgGet(long ipddg);\n    PDDG PddgActive(void);\n\n    virtual void UpdateName(void);\n    virtual void GetName(PSTN pstn);\n    virtual bool FQueryClose(ulong grfdoc);\n    virtual bool FQueryCloseDmd(PDMD pdmd);\n    virtual bool FSave(long cid = cidSave);\n\n    virtual bool FGetFni(FNI *pfni);\n    virtual bool FGetFniSave(FNI *pfni);\n    virtual bool FSaveToFni(FNI *pfni, bool fSetFni);\n    virtual bool FDirty(void)\n    {\n        return _fDirty && !FInternal();\n    }\n    virtual void SetDirty(bool fDirty = fTrue)\n    {\n        _fDirty = FPure(fDirty);\n    }\n\n    // General undo funtionality\n    virtual bool FUndo(void);\n    virtual bool FRedo(void);\n    virtual bool FAddUndo(PUNDB pundb);\n    virtual void ClearUndo(void);\n    virtual void ClearRedo(void);\n    virtual void SetCundbMax(long cundbMax);\n    virtual long CundbMax(void);\n    virtual long CundbUndo(void);\n    virtual long CundbRedo(void);\n\n    bool FInternal(void);\n    void SetAsClipboard(void);\n    void SetInternal(bool fInternal = fTrue);\n\n    virtual void ExportFormats(PCLIP pclip);\n    virtual bool FGetFormat(long cls, PDOCB *ppdocb = pvNil);\n};\n\n/***************************************************************************\n    document tree enumerator\n***************************************************************************/\nenum\n{\n    // inputs\n    fdteNil = 0,\n    fdteSkipToSib = 1, // legal to FNextDoc\n\n    // outputs\n    fdtePre = 2,\n    fdtePost = 4,\n    fdteRoot = 8\n};\n\n#define DTE_PAR BASE\n#define kclsDTE 'DTE'\nclass DTE : public DTE_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  private:\n    // enumeration states\n    enum\n    {\n        esStart,\n        esGoDown,\n        esGoLeft,\n        esDone\n    };\n\n    long _es;\n    PDOCB _pdocbRoot;\n    PDOCB _pdocbCur;\n\n  public:\n    DTE(void);\n    void Init(PDOCB pdocb);\n    bool FNextDoc(PDOCB *ppdocb, ulong *pgrfdteOut, ulong grfdteIn = fdteNil);\n};\n\n/***************************************************************************\n    document display gob - normally a child of a DSG but can be a child\n    of any gob (for doc previewing, etc)\n***************************************************************************/\n#define DDG_PAR GOB\n#define kclsDDG 'DDG'\nclass DDG : public DDG_PAR\n{\n    RTCLASS_DEC\n    CMD_MAP_DEC(DDG)\n    ASSERT\n    MARKMEM\n\n  protected:\n    PDOCB _pdocb;\n    bool _fActive;\n    long _scvVert; // scroll values\n    long _scvHorz;\n\n    DDG(PDOCB pdocb, PGCB pgcb);\n    ~DDG(void);\n\n    virtual bool _FInit(void);\n    virtual void _Activate(bool fActive);\n    virtual void _NewRc(void);\n\n    // scrolling support\n    virtual long _ScvMax(bool fVert);\n    virtual void _SetScrollValues(void);\n    virtual void _Scroll(long scaHorz, long scaVert, long scvHorz = 0, long scvVert = 0);\n    virtual void _ScrollDxpDyp(long dxp, long dyp);\n\n    // clipboard support\n    virtual bool _FCopySel(PDOCB *ppdocb = pvNil);\n    virtual void _ClearSel(void);\n    virtual bool _FPaste(PCLIP pclip, bool fDoIt, long cid);\n\n  public:\n    static PDDG PddgNew(PDOCB pdocb, PGCB pgcb);\n\n    PDOCB Pdocb(void)\n    {\n        return _pdocb;\n    }\n    PDMD Pdmd(void);\n\n    // activation\n    virtual void Activate(bool fActive);\n    bool FActive(void)\n    {\n        return _fActive;\n    }\n\n    // members of GOB\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FCmdActivateSel(PCMD pcmd);\n\n    virtual bool FCmdScroll(PCMD pcmd);\n    virtual bool FCmdCloseDoc(PCMD pcmd);\n    virtual bool FCmdSave(PCMD pcmd);\n    virtual bool FCmdClip(PCMD pcmd);\n    virtual bool FEnableDdgCmd(PCMD pcmd, ulong *pgrfeds);\n    virtual bool FCmdUndo(PCMD pcmd);\n};\n\n/***************************************************************************\n    Document mdi window - this communicates with the docb to coordinate\n    closing and querying the user about saving\n***************************************************************************/\n#define DMD_PAR GOB\n#define kclsDMD 'DMD'\nclass DMD : public DMD_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    PDOCB _pdocb;\n\n    DMD(PDOCB pdocb, PGCB pgcb);\n    virtual void _ActivateHwnd(bool fActive);\n\n  public:\n    static PDMD PdmdNew(PDOCB pdocb);\n    static PDMD PdmdTop(void);\n\n    PDOCB Pdocb(void)\n    {\n        return _pdocb;\n    }\n    virtual void ActivateNext(PDDG pddg);\n    virtual bool FCmdCloseWnd(PCMD pcmd);\n};\n\n/***************************************************************************\n    Document main window\n    provides basic pane management - including splitting, etc\n***************************************************************************/\n#define DMW_PAR GOB\n#define kclsDMW 'DMW'\nclass DMW : public DMW_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    // DSG edge struct - these form a locally-balanced binary tree\n    // with DSGs as the leafs.  Locally-balanced means that a node has a left\n    // child iff it has a right child.\n    struct DSED\n    {\n        bool fVert; // splits its parent vertically, so the edge is horizontal\n        long rel;   // where it splits its parent\n        RC rcRel;   // current relative rectangle (in the DMW)\n        long idsedLeft;\n        long idsedRight;\n        long idsedPar;\n        PDSG pdsg;\n    };\n    PAL _paldsed; // the tree of DSEDs\n    long _idsedRoot;\n    PDOCB _pdocb;\n\n    DMW(PDOCB pdocb, PGCB pgcb);\n\n    virtual bool _FInit(void);\n    virtual void _NewRc(void);\n\n    void _Layout(long idsedStart);\n    long _IdsedNext(long idsed, long idsedRoot);\n    long _IdsedEdge(long idsed, long idsedRoot);\n    void _RemoveDsg(PDSG pdsg, long *pidsedStartLayout);\n    DSED *_Qdsed(long idsed)\n    {\n        return (DSED *)_paldsed->QvGet(idsed);\n    }\n    void _SplitRcRel(long idsed, RC *prcLeft, RC *prcRight);\n\n  public:\n    static PDMW PdmwNew(PDOCB pdocb, PGCB pgcb);\n\n    PDOCB Pdocb(void)\n    {\n        return _pdocb;\n    }\n\n    bool FAddDsg(PDSG pdsg, PDSG pdsgSplit, ulong grfdsg, long rel);\n    void RemoveDsg(PDSG pdsg);\n    long Cdsg(void);\n\n    void GetRcSplit(PDSG pdsg, RC *prcBounds, RC *prcSplit);\n    void MoveSplit(PDSG pdsg, long relNew);\n    tribool TVert(PDSG pdsg);\n\n    virtual void Release(void);\n};\n\n/***************************************************************************\n    document scroll gob - child gob of a DMW\n    holds any scroll bars, splitter boxes and split movers\n    dialogs tightly with DMW and DDG\n***************************************************************************/\n#define DSG_PAR GOB\n#define kclsDSG 'DSG'\nclass DSG : public DSG_PAR\n{\n    RTCLASS_DEC\n    CMD_MAP_DEC(DSG)\n    ASSERT\n\n    friend DMW;\n\n  private:\n    long _dsno; // this is how the DMW refers to this DSG\n    PDDG _pddg;\n\n  protected:\n    DSG(PGCB pgcb);\n    ~DSG(void);\n\n    virtual bool _FInit(PDSG pdsgSplit, ulong grfdsg, long rel);\n\n  public:\n    static PDSG PdsgNew(PDMW pdmw, PDSG pdsgSplit, ulong grfdsg, long rel);\n    virtual void GetMinMax(RC *prcMinMax);\n\n    PDMW Pdmw(void)\n    {\n        return (PDMW)PgobPar();\n    }\n\n    virtual void Split(ulong grfdsg, long rel);\n    virtual bool FCmdScroll(PCMD pcmd);\n};\n\nenum\n{\n    fdsgNil = 0,\n    fdsgVert = 1, // for splitting and PdsgNew\n    fdsgHorz = 2, // for splitting and PdsgNew\n    fdsgAfter = 4 // for PdsgNew\n};\n\n/***************************************************************************\n    document scroll window splitter - must be a child of a DSG\n***************************************************************************/\ntypedef class DSSP *PDSSP;\n#define DSSP_PAR GOB\n#define kclsDSSP 'DSSP'\nclass DSSP : public DSSP_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    DSSP(PGCB pgcb);\n\n  public:\n    static long DypNormal(void)\n    {\n        return SCB::DypNormal() / 2;\n    }\n    static long DxpNormal(void)\n    {\n        return SCB::DxpNormal() / 2;\n    }\n    static PDSSP PdsspNew(PDSG pdsg, ulong grfdssp);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual void MouseDown(long xp, long yp, long cact, ulong grfcust);\n};\n\nenum\n{\n    fdsspNil = 0,\n    fdsspVert = 1,\n    fdsspHorz = 2\n};\n\n/***************************************************************************\n    document scroll split mover - must be a child of a DSG\n***************************************************************************/\ntypedef class DSSM *PDSSM;\n#define DSSM_PAR GOB\n#define kclsDSSM 'DSSM'\nclass DSSM : public DSSM_PAR\n{\n    RTCLASS_DEC\n\n  private:\n    bool _fVert;\n\n  protected:\n    DSSM(PGCB pgcb);\n\n    void _DrawTrackBar(PGNV pgnv, RC *prcOld, RC *prcNew);\n\n  public:\n    static PDSSM PdssmNew(PDSG pdsg);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual void MouseDown(long xp, long yp, long cact, ulong grfcust);\n    tribool TVert(void);\n};\n\n#endif //! DOCB_H\n"
  },
  {
    "path": "kauai/src/file.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Shared (platform independent) file APIs.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\nFTG FIL::vftgCreator = '____';\nPFIL FIL::_pfilFirst;\nMUTX FIL::_mutxList;\n\nRTCLASS(FIL)\nRTCLASS(BLCK)\nRTCLASS(MSFIL)\n\n/***************************************************************************\n    Constructor for a file.\n***************************************************************************/\nFIL::FIL(FNI *pfni, ulong grffil)\n{\n    AssertPo(pfni, ffniFile);\n    _fni = *pfni;\n    _grffil = grffil;\n\n    // add it to the linked list\n    _mutxList.Enter();\n    _Attach(&_pfilFirst);\n    _mutxList.Leave();\n}\n\n/***************************************************************************\n    Destructor.  This is private.\n***************************************************************************/\nFIL::~FIL(void)\n{\n    // make sure the file is closed.\n    _Close(fTrue);\n\n    _mutxList.Enter();\n    _Attach(pvNil);\n    _mutxList.Leave();\n}\n\n/***************************************************************************\n    Static method to open an existing file.  Increments the open count.\n***************************************************************************/\nPFIL FIL::PfilOpen(FNI *pfni, ulong grffil)\n{\n    AssertPo(pfni, ffniFile);\n    PFIL pfil;\n\n    Assert(!(grffil & ffilTemp), \"can't open a file as temp\");\n    if (pvNil != (pfil = PfilFromFni(pfni)))\n    {\n        if (!pfil->FSetGrffil(grffil))\n            return pvNil;\n\n        // increment the open count\n        pfil->AddRef();\n        return pfil;\n    }\n\n    if ((pfil = NewObj FIL(pfni, grffil)) == pvNil)\n        goto LFail;\n\n    if (!pfil->_FOpen(fFalse, grffil))\n    {\n        delete pfil;\n    LFail:\n        PushErc(ercFileOpen);\n        return pvNil;\n    }\n\n    AssertPo(pfil, 0);\n    return pfil;\n}\n\n/***************************************************************************\n    Create a new file.  Increments the open count.\n***************************************************************************/\nPFIL FIL::PfilCreate(FNI *pfni, ulong grffil)\n{\n    AssertPo(pfni, ffniFile);\n    PFIL pfil;\n\n    if (pvNil != (pfil = FIL::PfilFromFni(pfni)))\n    {\n        Bug(\"trying to create an open file\");\n        return pvNil;\n    }\n\n    grffil |= ffilWriteEnable;\n    if ((pfil = NewObj FIL(pfni, grffil)) == pvNil)\n        goto LFail;\n\n    if (!pfil->_FOpen(fTrue, grffil))\n    {\n        delete pfil;\n    LFail:\n        PushErc(ercFileCreate);\n        return pvNil;\n    }\n\n    AssertPo(pfil, 0);\n    return pfil;\n}\n\n/***************************************************************************\n    Static method to create a temp file in the same directory as fni with\n    the same ftg, or, if pfni is nil, in the standard place with vftgTemp.\n    The file is not marked.\n***************************************************************************/\nPFIL FIL::PfilCreateTemp(FNI *pfni)\n{\n    AssertNilOrPo(pfni, ffniFile);\n    FNI fni;\n\n    if (pvNil != pfni)\n    {\n        fni = *pfni;\n        if (!fni.FGetUnique(pfni->Ftg()))\n            goto LFail;\n    }\n    else if (!fni.FGetTemp())\n    {\n    LFail:\n        PushErc(ercFileCreate);\n        return pvNil;\n    }\n\n    return PfilCreate(&fni, ffilTemp | ffilWriteEnable | ffilDenyWrite);\n}\n\n/***************************************************************************\n    If we have the file indicated by fni open, returns the pfil, otherwise\n    returns pvNil.  Doesn't affect the open count.\n***************************************************************************/\nPFIL FIL::PfilFromFni(FNI *pfni)\n{\n    AssertPo(pfni, ffniFile);\n    PFIL pfil;\n    bool fRet;\n\n    _mutxList.Enter();\n    for (pfil = _pfilFirst; pfil != pvNil; pfil = pfil->PfilNext())\n    {\n        AssertPo(pfil, 0);\n        pfil->_mutx.Enter();\n        fRet = pfni->FEqual(&pfil->_fni);\n        pfil->_mutx.Leave();\n        if (fRet)\n            break;\n    }\n    _mutxList.Leave();\n\n    return pfil;\n}\n\n/***************************************************************************\n    Set the file flags according to grffil and grffilMask.  Write enabling\n    is only set, never cleared.  Same with marking.\n***************************************************************************/\nbool FIL::FSetGrffil(ulong grffil, ulong grffilMask)\n{\n    AssertThis(0);\n    bool fRet = fFalse;\n\n    grffil &= grffilMask;\n\n    _mutx.Enter();\n\n    // make sure the permissions are high enough\n    if ((~_grffil & grffil & kgrffilPerm) && !_FOpen(fFalse, grffil))\n    {\n        PushErc(ercFilePerm);\n        goto LRet;\n    }\n\n    // adjust the mark flag\n    if (grffil & ffilMark)\n        _grffil |= ffilMark;\n\n    // adjust the temp flag\n    if (grffilMask & ffilTemp)\n    {\n        if (grffil & ffilTemp)\n            _grffil |= ffilTemp;\n        else\n            _grffil &= ~ffilTemp;\n    }\n\n    fRet = fTrue;\n\nLRet:\n    _mutx.Leave();\n    return fTrue;\n}\n\n/***************************************************************************\n    Decrement the open count.  If it is zero and the file isn't marked,\n    the file is closed.\n***************************************************************************/\nvoid FIL::Release(void)\n{\n    AssertThis(0);\n    if (_cactRef <= 0)\n    {\n        Bug(\"calling Release without an AddRef\");\n        _cactRef = 0;\n        return;\n    }\n    if (--_cactRef == 0 && !(_grffil & ffilMark))\n        delete this;\n}\n\n/***************************************************************************\n    Get a string representing the path of the file.\n***************************************************************************/\nvoid FIL::GetStnPath(PSTN pstn)\n{\n    AssertThis(0);\n\n    _mutx.Enter();\n    _fni.GetStnPath(pstn);\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Set the temporary status of a file.\n***************************************************************************/\nvoid FIL::SetTemp(bool fTemp)\n{\n    AssertThis(0);\n\n    _mutx.Enter();\n    if (fTemp)\n        _grffil |= ffilTemp;\n    else\n        _grffil &= ~ffilTemp;\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Rename the file to the given file name.  If an open file exists with\n    the same name, we rename it and swap names with it as a temporary file.\n    Otherwise, we delete any existing file with the same name.  The rules\n    for *pfni are the same as for FRename.\n***************************************************************************/\nbool FIL::FSetFni(FNI *pfni)\n{\n    AssertPo(pfni, ffniFile);\n    PFIL pfilOld;\n\n    if (pvNil != (pfilOld = FIL::PfilFromFni(pfni)))\n    {\n        if (this == pfilOld)\n            return fTrue;\n\n        if (!FSwapNames(pfilOld))\n            return fFalse;\n\n        pfilOld->SetTemp(fTrue);\n        return fTrue;\n    }\n\n    // delete any existing file with this name, then rename our\n    // file to the given name\n    if (pfni->TExists() != tNo)\n        pfni->FDelete();\n    return FRename(pfni);\n}\n\n/***************************************************************************\n    Static method to clear the marks for files.\n***************************************************************************/\nvoid FIL::ClearMarks(void)\n{\n    PFIL pfil;\n\n    _mutxList.Enter();\n    for (pfil = _pfilFirst; pfil != pvNil; pfil = pfil->PfilNext())\n    {\n        AssertPo(pfil, 0);\n        pfil->FSetGrffil(ffilNil, ffilMark);\n    }\n    _mutxList.Leave();\n}\n\n/***************************************************************************\n    Static method to close any files that are unmarked and have 0 open count.\n***************************************************************************/\nvoid FIL::CloseUnmarked(void)\n{\n    PFIL pfil, pfilNext;\n\n    _mutxList.Enter();\n    for (pfil = _pfilFirst; pfil != pvNil; pfil = pfilNext)\n    {\n        AssertPo(pfil, 0);\n        pfilNext = pfil->PfilNext();\n        if (!(pfil->_grffil & ffilMark) && pfil->_cactRef == 0)\n            delete pfil;\n    }\n    _mutxList.Leave();\n}\n\n/***************************************************************************\n    Static method to close all files.\n***************************************************************************/\nvoid FIL::ShutDown(void)\n{\n    PFIL pfil;\n\n    _mutxList.Enter();\n    for (pfil = _pfilFirst; pfil != pvNil; pfil = pfil->PfilNext())\n    {\n        AssertPo(pfil, 0);\n        pfil->_Close(fTrue);\n    }\n    _mutxList.Leave();\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Validate a pfil.\n***************************************************************************/\nvoid FIL::AssertValid(ulong grf)\n{\n    PFIL pfil;\n\n    FIL_PAR::AssertValid(fobjAllocated);\n\n    _mutx.Enter();\n    AssertPo(&_fni, ffniFile);\n    _mutx.Leave();\n\n    _mutxList.Enter();\n    for (pfil = _pfilFirst; pfil != pvNil; pfil = pfil->PfilNext())\n    {\n        if (pfil == this)\n            break;\n    }\n    _mutxList.Leave();\n\n    Assert(this == pfil, \"not in file list\");\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Determine if the given range is within cbTot.\n***************************************************************************/\npriv bool _FRangeIn(long cbTot, long cb, long ib)\n{\n    return FIn(ib, 0, cbTot + 1) && FIn(cb, 0, cbTot - ib + 1);\n}\n\n/***************************************************************************\n    Read a piece of a flo into pv.\n***************************************************************************/\nbool FLO::FReadRgb(void *pv, long cbRead, FP dfp)\n{\n    AssertThis(ffloReadable);\n\n    if (!_FRangeIn(this->cb, cbRead, dfp))\n    {\n        Bug(\"reading outside flo\");\n        return fFalse;\n    }\n\n    if (cbRead == 0)\n        return fTrue;\n    return this->pfil->FReadRgb(pv, cbRead, this->fp + dfp);\n}\n\n/***************************************************************************\n    Write a piece of a flo from pv.\n***************************************************************************/\nbool FLO::FWriteRgb(void *pv, long cbWrite, FP dfp)\n{\n    AssertThis(0);\n\n    if (!_FRangeIn(this->cb, cbWrite, dfp))\n    {\n        Bug(\"writing outside flo\");\n        return fFalse;\n    }\n\n    if (cbWrite == 0)\n        return fTrue;\n    return this->pfil->FWriteRgb(pv, cbWrite, this->fp + dfp);\n}\n\n/***************************************************************************\n    Copy data from this flo to another.\n***************************************************************************/\nbool FLO::FCopy(PFLO pfloDst)\n{\n    AssertThis(ffloReadable);\n    AssertPo(pfloDst, 0);\n    byte rgb[1024];\n    long cbBlock, cbT;\n    void *pv;\n    bool fRet = fFalse;\n\n    if (this->cb != pfloDst->cb)\n    {\n        Bug(\"different sized FLOs\");\n        return fFalse;\n    }\n\n    if (this->cb <= size(rgb) || !FAllocPv(&pv, cbBlock = this->cb, fmemNil, mprForSpeed))\n    {\n        pv = (void *)rgb;\n        cbBlock = size(rgb);\n    }\n\n    for (cbT = 0; cbT < this->cb; cbT += cbBlock)\n    {\n        if (cbBlock > this->cb - cbT)\n            cbBlock = this->cb - cbT;\n        // read the source\n        if (!this->pfil->FReadRgb(pv, cbBlock, this->fp + cbT))\n            goto LFail;\n        // write to the dest\n        if (!pfloDst->pfil->FWriteRgb(pv, cbBlock, pfloDst->fp + cbT))\n            goto LFail;\n    }\n    fRet = fTrue;\n\nLFail:\n    if ((void *)rgb != pv)\n        FreePpv(&pv);\n\n    return fRet;\n}\n\n/***************************************************************************\n    Allocate an hq and read the flo into it.\n***************************************************************************/\nbool FLO::FReadHq(HQ *phq, long cbRead, FP dfp)\n{\n    AssertThis(ffloReadable);\n    AssertVarMem(phq);\n    bool fT;\n\n    if (!_FRangeIn(this->cb, cbRead, dfp))\n    {\n        Bug(\"reading outside flo 2\");\n        return fFalse;\n    }\n\n    if (!FAllocHq(phq, cbRead, fmemNil, mprNormal))\n        return fFalse;\n    fT = FReadRgb(PvLockHq(*phq), cbRead, dfp);\n    UnlockHq(*phq);\n    if (!fT)\n        FreePhq(phq);\n    return fT;\n}\n\n/***************************************************************************\n    Write the contents of an hq to the flo.\n***************************************************************************/\nbool FLO::FWriteHq(HQ hq, long dfp)\n{\n    AssertThis(0);\n    AssertHq(hq);\n    bool fRet;\n    long cbWrite = CbOfHq(hq);\n\n    if (!_FRangeIn(this->cb, cbWrite, dfp))\n    {\n        Bug(\"writing outside flo 2\");\n        return fFalse;\n    }\n\n    fRet = FWriteRgb(PvLockHq(hq), cbWrite, dfp);\n    UnlockHq(hq);\n    return fRet;\n}\n\n/***************************************************************************\n    Translate the text in a flo from the given osk to the current osk.\n    If the text changes, creates a temp file and redirects the flo to the\n    temp file (and releases a ref count on the pfil).\n***************************************************************************/\nbool FLO::FTranslate(short osk)\n{\n    AssertThis(0);\n    short oskSig;\n    byte rgbSrc[512];\n    byte rgbDst[1024];\n    void *pvSrc;\n    void *pvDst;\n    long cchDst, cch;\n    long cbBlock, cbT;\n    PFIL pfilNew;\n    FP fpSrc, fpDst;\n    bool fRet = fFalse;\n\n    // look for a unicode byte order signature\n    oskSig = MacWin(koskSbMac, koskSbWin);\n    if (this->cb >= size(wchar) && this->cb % size(wchar) == 0)\n    {\n        wchar chw;\n\n        if (!FReadRgb(&chw, size(wchar), 0))\n            return fFalse;\n        if (chw == kchwUnicode)\n        {\n            oskSig = MacWin(koskUniMac, koskUniWin);\n            this->fp += size(wchar);\n            this->cb -= size(wchar);\n        }\n        else if (chw == kchwUnicodeSwap)\n        {\n            oskSig = MacWin(koskUniWin, koskUniMac);\n            this->fp += size(wchar);\n            this->cb -= size(wchar);\n        }\n    }\n\n    // determine the probable osk\n    if (oskSig != osk)\n    {\n        if (oskNil == osk)\n            osk = oskSig;\n        else\n        {\n            long dcb = CbCharOsk(osk) - CbCharOsk(oskSig);\n\n            if (dcb < 0 || dcb == 0 && CbCharOsk(osk) == size(wchar))\n                osk = oskSig;\n        }\n    }\n\n    if (osk == koskCur)\n        return fTrue;\n\n    if (pvNil == (pfilNew = FIL::PfilCreateTemp()))\n        return fFalse;\n\n    if (this->cb <= size(rgbSrc) || !FAllocPv(&pvSrc, cbBlock = this->cb, fmemNil, mprForSpeed))\n    {\n        pvSrc = (void *)rgbSrc;\n        cbBlock = size(rgbDst);\n    }\n\n    pvDst = (void *)rgbDst;\n    cchDst = size(rgbDst) / size(achar);\n    fpSrc = this->fp;\n    fpDst = 0;\n    for (cbT = 0; cbT < this->cb; cbT += cbBlock)\n    {\n        if (cbBlock > this->cb - cbT)\n            cbBlock = this->cb - cbT;\n\n        // read the source\n        if (!this->pfil->FReadRgbSeq(pvSrc, cbBlock, &fpSrc))\n            goto LFail;\n\n        // translate\n        cch = CchTranslateRgb(pvSrc, cbBlock, osk, pvNil, 0);\n        if (cch <= 0)\n            continue;\n\n        if (cch > cchDst)\n        {\n            if (pvDst != (void *)rgbDst)\n                FreePpv(&pvDst);\n            cchDst = cch;\n            if (!FAllocPv(&pvDst, cchDst * size(achar), fmemNil, mprNormal))\n                goto LFail;\n        }\n        if (cch != CchTranslateRgb(pvSrc, cbBlock, osk, (achar *)pvDst, cch))\n        {\n            Bug(\"why did CchTranslateRgb fail?\");\n            goto LFail;\n        }\n\n        // write to the dest\n        if (!pfilNew->FWriteRgbSeq(pvDst, cch * size(achar), &fpDst))\n            goto LFail;\n    }\n    fRet = fTrue;\n    ReleasePpo(&this->pfil);\n    this->pfil = pfilNew;\n    this->fp = 0;\n    this->cb = this->pfil->FpMac();\n    pfilNew = pvNil;\n\nLFail:\n    if ((void *)rgbSrc != pvSrc)\n        FreePpv(&pvSrc);\n    if (pvDst != (void *)rgbDst)\n        FreePpv(&pvDst);\n    ReleasePpo(&pfilNew);\n\n    return fRet;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert this is a valif FLO.\n***************************************************************************/\nvoid FLO::AssertValid(ulong grfflo)\n{\n    AssertPo(pfil, 0);\n    AssertIn(fp, 0, kcbMax);\n    AssertIn(cb, 0, kcbMax);\n    FP fpMac = pfil->FpMac();\n\n    if (pfil->ElError() < kelSeek)\n    {\n        AssertIn(fp, 0, fpMac + 1);\n        if (grfflo & ffloReadable)\n            AssertIn(fp + cb, cb, fpMac + 1);\n    }\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for a data block.\n***************************************************************************/\nBLCK::BLCK(PFLO pflo, bool fPacked)\n{\n    AssertBaseThis(0);\n    AssertPo(pflo, 0);\n\n    _flo = *pflo;\n    _flo.pfil->AddRef();\n    _hq = hqNil;\n    _fPacked = FPure(fPacked);\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Constructor for a data block.\n***************************************************************************/\nBLCK::BLCK(PFIL pfil, FP fp, long cb, bool fPacked)\n{\n    AssertBaseThis(0);\n    AssertPo(pfil, 0);\n\n    _flo.pfil = pfil;\n    _flo.pfil->AddRef();\n    _flo.fp = fp;\n    _flo.cb = cb;\n    _hq = hqNil;\n    _fPacked = FPure(fPacked);\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Another constructor for a data block.  Assumes ownership of the hq\n    (and sets *phq to hqNil).\n***************************************************************************/\nBLCK::BLCK(HQ *phq, bool fPacked)\n{\n    AssertBaseThis(0);\n    AssertVarMem(phq);\n    AssertHq(*phq);\n\n    _flo.pfil = pvNil;\n    _hq = *phq;\n    *phq = hqNil;\n    _ibMin = 0;\n    _ibLim = CbOfHq(_hq);\n    _fPacked = FPure(fPacked);\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Another constructor for a data block.\n***************************************************************************/\nBLCK::BLCK(void)\n{\n    AssertBaseThis(0);\n    _flo.pfil = pvNil;\n    _hq = hqNil;\n    _fPacked = fFalse;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    The destructor.\n***************************************************************************/\nBLCK::~BLCK(void)\n{\n    AssertThis(0);\n    Free();\n}\n\n/***************************************************************************\n    Set the data block to refer to the given flo.\n***************************************************************************/\nvoid BLCK::Set(PFLO pflo, bool fPacked)\n{\n    AssertThis(0);\n    AssertPo(pflo, 0);\n\n    Free();\n    _flo = *pflo;\n    _flo.pfil->AddRef();\n    _fPacked = FPure(fPacked);\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Set the data block to refer to the given range on the file.\n***************************************************************************/\nvoid BLCK::Set(PFIL pfil, FP fp, long cb, bool fPacked)\n{\n    AssertThis(0);\n    AssertPo(pfil, 0);\n\n    Free();\n    _flo.pfil = pfil;\n    _flo.pfil->AddRef();\n    _flo.fp = fp;\n    _flo.cb = cb;\n    _fPacked = FPure(fPacked);\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Set the data block to the given hq.  Assumes ownership of the hq and\n    sets *phq to hqNil.\n***************************************************************************/\nvoid BLCK::SetHq(HQ *phq, bool fPacked)\n{\n    AssertThis(0);\n    AssertVarMem(phq);\n    AssertHq(*phq);\n\n    Free();\n    _hq = *phq;\n    *phq = hqNil;\n    _ibMin = 0;\n    _ibLim = CbOfHq(_hq);\n    _fPacked = FPure(fPacked);\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Free the block (make it empty).\n***************************************************************************/\nvoid BLCK::Free(void)\n{\n    AssertThis(0);\n    ReleasePpo(&_flo.pfil);\n    FreePhq(&_hq);\n    _fPacked = fFalse;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Return an hq to the data.  If the blck is a memory based block, the\n    block is also \"freed\".  If the block hasn't been packed or unpacked\n    or had its min or lim moved, the hq returned is the one originally\n    passed to the constructor or SetHq.\n***************************************************************************/\nHQ BLCK::HqFree(bool fPackedOk)\n{\n    AssertThis(0);\n    HQ hq;\n\n    if (!fPackedOk && _fPacked)\n    {\n        Bug(\"accessing packed data\");\n        return hqNil;\n    }\n\n    if (pvNil != _flo.pfil)\n    {\n        _flo.FReadHq(&hq);\n        return hq;\n    }\n\n    if (pvNil != _hq)\n    {\n        hq = _hq;\n        _hq = hqNil;\n        _fPacked = fFalse;\n\n        if (_ibMin > 0)\n        {\n            byte *qrgb = (byte *)QvFromHq(hq);\n            BltPb(qrgb + _ibMin, qrgb, _ibLim - _ibMin);\n            _ibLim -= _ibMin;\n        }\n        if (CbOfHq(hq) > _ibLim)\n            AssertDo(FResizePhq(&hq, _ibLim, fmemNil, mprNormal), 0);\n        AssertThis(0);\n        return hq;\n    }\n\n    return hqNil;\n}\n\n/***************************************************************************\n    Return the length of the data block.\n***************************************************************************/\nlong BLCK::Cb(bool fPackedOk)\n{\n    AssertThis(fPackedOk ? 0 : fblckUnpacked);\n\n    if (pvNil != _flo.pfil)\n        return _flo.cb;\n    if (hqNil != _hq)\n        return _ibLim - _ibMin;\n    return 0;\n}\n\n/***************************************************************************\n    Create a temporary buffer.\n***************************************************************************/\nbool BLCK::FSetTemp(long cb, bool fForceFile)\n{\n    AssertThis(0);\n    PFIL pfil;\n\n    if (!fForceFile && cb < (1L << 23) /* 8 MB */)\n    {\n        // try to allocate enough mem\n        HQ hq;\n\n        if (FAllocHq(&hq, cb, fmemNil, mprNormal))\n        {\n            SetHq(&hq, _fPacked);\n            return fTrue;\n        }\n    }\n\n    if (pvNil == (pfil = FIL::PfilCreateTemp()))\n        return fFalse;\n\n    Set(pfil, 0, cb, _fPacked);\n    ReleasePpo(&pfil);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Move the beginning of the block.  Doesn't change the location of the\n    end of the block.  Fails if you try to move before the beginning of\n    the physical storage or after the lim of the block.\n***************************************************************************/\nbool BLCK::FMoveMin(long dib)\n{\n    AssertThis(0);\n\n    if (pvNil != _flo.pfil)\n    {\n        if (!FIn(dib, -_flo.fp, _flo.cb + 1))\n            return fFalse;\n        _flo.fp += dib;\n        _flo.cb -= dib;\n        return fTrue;\n    }\n\n    if (hqNil != _hq)\n    {\n        if (!FIn(dib + _ibMin, 0, _ibLim + 1))\n            return fFalse;\n        _ibMin += dib;\n        return fTrue;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Move the end of the block.  Doesn't change the location of the\n    beginning of the block.  Fails if you try to move before the min of the\n    block or after the end of the physical storage.\n***************************************************************************/\nbool BLCK::FMoveLim(long dib)\n{\n    AssertThis(0);\n\n    if (pvNil != _flo.pfil)\n    {\n        if (!FIn(dib, -_flo.cb, kcbMax - _flo.fp))\n            return fFalse;\n        _flo.cb += dib;\n        return fTrue;\n    }\n\n    if (hqNil != _hq)\n    {\n        if (!FIn(dib + _ibLim, _ibMin, CbOfHq(_hq) + 1))\n            return fFalse;\n        _ibLim += dib;\n        return fTrue;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Read a range of bytes from the data block.\n***************************************************************************/\nbool BLCK::FReadRgb(void *pv, long cb, long ib, bool fPackedOk)\n{\n    AssertThis(0);\n    AssertPvCb(pv, cb);\n\n    if (!fPackedOk && _fPacked)\n    {\n        Bug(\"reading packed data\");\n        return fFalse;\n    }\n\n    if (!_FRangeIn(Cb(fTrue), cb, ib))\n    {\n        Bug(\"reading outside blck\");\n        return fFalse;\n    }\n\n    if (pvNil != _flo.pfil)\n        return _flo.FReadRgb(pv, cb, ib);\n\n    if (hqNil != _hq)\n    {\n        CopyPb((byte *)QvFromHq(_hq) + ib + _ibMin, pv, cb);\n        return fTrue;\n    }\n\n    Assert(cb == 0 && ib == 0, 0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Write a range of bytes to the data block.\n***************************************************************************/\nbool BLCK::FWriteRgb(void *pv, long cb, long ib, bool fPackedOk)\n{\n    AssertThis(0);\n    AssertPvCb(pv, cb);\n\n    if (!fPackedOk && _fPacked)\n    {\n        Bug(\"writing packed data\");\n        return fFalse;\n    }\n\n    if (!_FRangeIn(Cb(fTrue), cb, ib))\n    {\n        Bug(\"writing outside blck\");\n        return fFalse;\n    }\n\n    if (pvNil != _flo.pfil)\n        return _flo.FWriteRgb(pv, cb, ib);\n\n    if (hqNil != _hq)\n    {\n        CopyPb(pv, (byte *)QvFromHq(_hq) + ib + _ibMin, cb);\n        return fTrue;\n    }\n\n    Assert(cb == 0 && ib == 0, 0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Read a range of bytes from the data block and put it in an hq.\n***************************************************************************/\nbool BLCK::FReadHq(HQ *phq, long cb, long ib, bool fPackedOk)\n{\n    AssertThis(0);\n    AssertVarMem(phq);\n\n    *phq = hqNil;\n    if (!fPackedOk && _fPacked)\n    {\n        Bug(\"reading packed data\");\n        return fFalse;\n    }\n\n    if (!_FRangeIn(Cb(fTrue), cb, ib))\n    {\n        Bug(\"reading outside blck 2\");\n        return fFalse;\n    }\n\n    if (pvNil != _flo.pfil)\n        return _flo.FReadHq(phq, cb, ib);\n\n    if (hqNil != _hq)\n    {\n        if (!FAllocHq(phq, cb, fmemNil, mprNormal))\n            return fFalse;\n        CopyPb((byte *)QvFromHq(_hq) + ib + _ibMin, QvFromHq(*phq), cb);\n        return fTrue;\n    }\n\n    Assert(cb == 0 && ib == 0, 0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Write an hq to the data block.\n***************************************************************************/\nbool BLCK::FWriteHq(HQ hq, long ib, bool fPackedOk)\n{\n    AssertThis(0);\n    AssertHq(hq);\n    long cb = CbOfHq(hq);\n\n    if (!fPackedOk && _fPacked)\n    {\n        Bug(\"writing packed data\");\n        return fFalse;\n    }\n\n    if (!_FRangeIn(Cb(fTrue), cb, ib))\n    {\n        Bug(\"writing outside blck 2\");\n        return fFalse;\n    }\n\n    if (pvNil != _flo.pfil)\n        return _flo.FWriteHq(hq, ib);\n\n    if (hqNil != _hq)\n    {\n        CopyPb(QvFromHq(hq), (byte *)QvFromHq(_hq) + ib + _ibMin, cb);\n        return fTrue;\n    }\n\n    Assert(cb == 0 && ib == 0, 0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Write the block to a flo.\n***************************************************************************/\nbool BLCK::FWriteToFlo(PFLO pfloDst, bool fPackedOk)\n{\n    AssertThis(fblckReadable);\n    AssertPo(pfloDst, 0);\n\n    if (!fPackedOk && _fPacked)\n    {\n        Bug(\"copying packed data\");\n        return fFalse;\n    }\n\n    if (Cb(fTrue) != pfloDst->cb)\n    {\n        Bug(\"flo is wrong size\");\n        return fFalse;\n    }\n\n    if (pvNil != _flo.pfil)\n        return _flo.FCopy(pfloDst);\n\n    if (hqNil != _hq)\n    {\n        bool fRet;\n        fRet = pfloDst->FWrite(PvAddBv(PvLockHq(_hq), _ibMin));\n        UnlockHq(_hq);\n        return fRet;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Write this block to another block.\n***************************************************************************/\nbool BLCK::FWriteToBlck(PBLCK pblckDst, bool fPackedOk)\n{\n    AssertThis(fblckReadable);\n    AssertPo(pblckDst, 0);\n    long cb;\n\n    if (!fPackedOk && _fPacked)\n    {\n        Bug(\"copying packed data\");\n        return fFalse;\n    }\n\n    if ((cb = Cb(fTrue)) != pblckDst->Cb(fTrue))\n    {\n        Bug(\"blck is wrong size\");\n        return fFalse;\n    }\n\n    if (pvNil != pblckDst->_flo.pfil)\n        return FWriteToFlo(&pblckDst->_flo, fPackedOk);\n\n    if (hqNil != pblckDst->_hq)\n    {\n        bool fRet;\n        fRet = FReadRgb((byte *)PvLockHq(pblckDst->_hq) + pblckDst->_ibMin, cb, 0, fTrue);\n        UnlockHq(pblckDst->_hq);\n        return fRet;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Get a flo to the data in the block.\n***************************************************************************/\nbool BLCK::FGetFlo(PFLO pflo, bool fPackedOk)\n{\n    AssertThis(0);\n    AssertVarMem(pflo);\n\n    if (!fPackedOk && _fPacked)\n    {\n        Bug(\"accessing packed data\");\n        return fFalse;\n    }\n\n    if (pvNil != _flo.pfil)\n    {\n        *pflo = _flo;\n        pflo->pfil->AddRef();\n        return fTrue;\n    }\n\n    if (hqNil != _hq && _ibLim > _ibMin)\n    {\n        bool fRet;\n\n        if (pvNil == (pflo->pfil = FIL::PfilCreateTemp()))\n            goto LFail;\n        pflo->fp = 0;\n        pflo->cb = _ibLim - _ibMin;\n        fRet = pflo->FWrite(PvAddBv(PvLockHq(_hq), _ibMin));\n        UnlockHq(_hq);\n        if (!fRet)\n        {\n        LFail:\n            ReleasePpo(&pflo->pfil);\n            TrashVar(pflo);\n            return fFalse;\n        }\n        return fTrue;\n    }\n\n    pflo->pfil = pvNil;\n    pflo->fp = pflo->cb = 0;\n    return fTrue;\n}\n\n/***************************************************************************\n    Return whether the block is packed. If the block is compressed, but\n    determining the compression type failed, *pcfmt is set to cfmtNil and\n    true is returned.\n***************************************************************************/\nbool BLCK::FPacked(long *pcfmt)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pcfmt);\n\n    if (pvNil != pcfmt && (!_fPacked || !vpcodmUtil->FGetCfmtFromBlck(this, pcfmt)))\n    {\n        *pcfmt = cfmtNil;\n    }\n\n    return _fPacked;\n}\n\n/***************************************************************************\n    If the block is unpacked, pack it. If cfmt is cfmtNil, use the default\n    packing format, otherwise use the one specified. If the block is\n    already packed, this doesn't change the packing format.\n***************************************************************************/\nbool BLCK::FPackData(long cfmt)\n{\n    AssertThis(0);\n    HQ hq;\n\n    if (_fPacked)\n        return fTrue;\n\n    if (pvNil != _flo.pfil)\n    {\n        if (!_flo.FReadHq(&hq))\n            return fFalse;\n        if (!vpcodmUtil->FCompressPhq(&hq, cfmt))\n        {\n            FreePhq(&hq);\n            AssertThis(fblckUnpacked | fblckFile);\n            return fFalse;\n        }\n        SetHq(&hq, fTrue);\n    }\n    else if (hqNil == _hq)\n        return fFalse;\n    else\n    {\n        AssertHq(_hq);\n        if (_ibMin != 0 || _ibLim != CbOfHq(_hq))\n        {\n            hq = HqFree();\n            SetHq(&hq, fFalse);\n        }\n        Assert(_ibMin == 0 && _ibLim == CbOfHq(_hq), 0);\n        if (!vpcodmUtil->FCompressPhq(&_hq, cfmt))\n        {\n            AssertThis(fblckUnpacked | fblckMemory);\n            return fFalse;\n        }\n        _ibMin = 0;\n        _ibLim = CbOfHq(_hq);\n        _fPacked = fTrue;\n    }\n\n    AssertThis(fblckPacked | fblckMemory);\n    return fTrue;\n}\n\n/***************************************************************************\n    If the block is packed, unpack it.\n***************************************************************************/\nbool BLCK::FUnpackData(void)\n{\n    AssertThis(0);\n    HQ hq;\n\n    if (!_fPacked)\n        return fTrue;\n\n    if (pvNil != _flo.pfil)\n    {\n        if (!_flo.FReadHq(&hq))\n            return fFalse;\n        if (!vpcodmUtil->FDecompressPhq(&hq))\n        {\n            FreePhq(&hq);\n            AssertThis(fblckPacked | fblckFile);\n            return fFalse;\n        }\n        SetHq(&hq, fFalse);\n    }\n    else if (hqNil == _hq)\n        return fFalse;\n    else\n    {\n        AssertHq(_hq);\n        if (_ibMin != 0 || _ibLim != CbOfHq(_hq))\n        {\n            hq = HqFree();\n            SetHq(&hq, fTrue);\n        }\n        Assert(_ibMin = 0 && _ibLim == CbOfHq(_hq), 0);\n        if (!vpcodmUtil->FDecompressPhq(&_hq))\n        {\n            AssertThis(fblckPacked | fblckMemory);\n            return fFalse;\n        }\n        _ibMin = 0;\n        _ibLim = CbOfHq(_hq);\n        _fPacked = fFalse;\n    }\n\n    AssertThis(fblckUnpacked | fblckMemory);\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the amount of memory the block is using (roughly).\n***************************************************************************/\nlong BLCK::CbMem(void)\n{\n    AssertThis(0);\n\n    if (pvNil == _flo.pfil && hqNil != _hq)\n        return CbOfHq(_hq);\n    return 0;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a BLCK.\n***************************************************************************/\nvoid BLCK::AssertValid(ulong grfblck)\n{\n    BLCK_PAR::AssertValid(0);\n\n    if (pvNil != _flo.pfil)\n    {\n        AssertPo(&_flo, (grfblck & fblckReadable) ? ffloReadable : 0);\n        Assert(hqNil == _hq, \"both the _flo and _hq are non-nil\");\n        Assert(!(grfblck & fblckMemory) || (grfblck & fblckFile), \"block should be memory based\");\n    }\n    else if (hqNil != _hq)\n    {\n        Assert(!(grfblck & fblckFile) || (grfblck & fblckMemory), \"block should be file based\");\n        AssertHq(_hq);\n        long cb = CbOfHq(_hq);\n\n        AssertIn(_ibMin, 0, cb + 1);\n        AssertIn(_ibLim, _ibMin, cb + 1);\n    }\n\n    Assert(_fPacked || !(grfblck & fblckPacked), \"block should be packed\");\n    Assert(!_fPacked || !(grfblck & fblckUnpacked), \"block should be unpacked\");\n}\n\n/***************************************************************************\n    Mark memory for the BLCK.\n***************************************************************************/\nvoid BLCK::MarkMem(void)\n{\n    AssertValid(0);\n    BLCK_PAR::MarkMem();\n    MarkHq(_hq);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for a file based message sink.\n***************************************************************************/\nMSFIL::MSFIL(PFIL pfil)\n{\n    AssertNilOrPo(pfil, 0);\n\n    _fError = fFalse;\n    _pfil = pvNil;\n    _fpCur = 0;\n    if (pvNil != pfil)\n        SetFile(pfil);\n}\n\n/***************************************************************************\n    Destructor for a file based message sink.\n***************************************************************************/\nMSFIL::~MSFIL(void)\n{\n    AssertThis(0);\n    ReleasePpo(&_pfil);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a MSFIL.\n***************************************************************************/\nvoid MSFIL::AssertValid(ulong grf)\n{\n    MSFIL_PAR::AssertValid(0);\n    AssertNilOrPo(_pfil, 0);\n    Assert(_fError || pvNil == _pfil || _fpCur == _pfil->FpMac() || _pfil->ElError() != elNil, \"bad _fpCur\");\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Set the current file to use for the MSFIL.\n***************************************************************************/\nvoid MSFIL::SetFile(PFIL pfil)\n{\n    AssertThis(0);\n    AssertNilOrPo(pfil, 0);\n\n    _fError = fFalse;\n    if (pfil != pvNil)\n        pfil->AddRef();\n    ReleasePpo(&_pfil);\n    _pfil = pfil;\n    _fpCur = 0;\n    if (pvNil != _pfil)\n    {\n        _fError |= !_pfil->FSetFpMac(0);\n#ifdef UNICODE\n        wchar chw = kchwUnicode;\n        _fError |= !_pfil->FWriteRgbSeq(&chw, size(wchar), &_fpCur);\n#endif // UNICODE\n    }\n}\n\n/***************************************************************************\n    Return the output file and give the caller our reference count on it.\n***************************************************************************/\nPFIL MSFIL::PfilRelease(void)\n{\n    AssertThis(0);\n    PFIL pfil = _pfil;\n    _pfil = pvNil;\n    return pfil;\n}\n\n/***************************************************************************\n    Dump a line to the file.\n***************************************************************************/\nvoid MSFIL::ReportLine(PSZ psz)\n{\n    AssertThis(0);\n    AssertNilOrPo(_pfil, 0);\n    achar rgch[2] = {kchReturn, kchLineFeed};\n\n    Report(psz);\n    if (pvNil != _pfil)\n    {\n        _fError |= !_pfil->FWriteRgbSeq(rgch, MacWin(size(achar), 2 * size(achar)), &_fpCur);\n    }\n}\n\n/***************************************************************************\n    Dump some text to the file.\n***************************************************************************/\nvoid MSFIL::Report(PSZ psz)\n{\n    AssertThis(0);\n    AssertNilOrPo(_pfil, 0);\n\n    if (pvNil == _pfil)\n    {\n        SetFile(FIL::PfilCreateTemp());\n        if (pvNil == _pfil)\n        {\n            _fError = fTrue;\n            return;\n        }\n    }\n\n    _fError |= !_pfil->FWriteRgbSeq(psz, CchSz(psz) * size(achar), &_fpCur);\n}\n\n/***************************************************************************\n    Return whether there has been an error writing to this message sink.\n***************************************************************************/\nbool MSFIL::FError(void)\n{\n    AssertThis(0);\n    return _fError;\n}\n"
  },
  {
    "path": "kauai/src/file.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    File management.\n\n***************************************************************************/\n#ifndef FILE_H\n#define FILE_H\n\n/****************************************\n    Byte order issues\n****************************************/\n\nconst short kboCur = 0x0001;\nconst short kboOther = 0x0100;\n\n/****************************************\n    Basic types\n****************************************/\n\ntypedef long FP;\n\nenum\n{\n    ffilNil = 0x00,\n    ffilWriteEnable = 0x01, // we can write to the file\n    ffilDenyWrite = 0x02,   // others can't write to the file\n    ffilDenyRead = 0x04,    // others can't read the file\n\n    ffilTemp = 0x10,\n    ffilMark = 0x20\n};\nconst ulong kgrffilPerm = ffilWriteEnable | ffilDenyWrite | ffilDenyRead;\n\n// file error levels - in order of severity\nenum\n{\n    elNil,\n    kelWrite,\n    kelRead,\n    kelSeek,\n    kelCritical\n};\n\n/****************************************\n    FIL class\n****************************************/\ntypedef class FIL *PFIL;\n#define FIL_PAR BLL\n#define kclsFIL 'FIL'\nclass FIL : public FIL_PAR\n{\n    RTCLASS_DEC\n    BLL_DEC(FIL, PfilNext)\n    ASSERT\n\n  protected:\n    // static member variables\n    static MUTX _mutxList;\n    static PFIL _pfilFirst;\n\n    MUTX _mutx;\n\n    FNI _fni;\n    bool _fOpen : 1;\n    bool _fEverOpen : 1;\n    bool _fWrote : 1;\n    ulong _grffil; // permissions, mark and temp flags\n    long _el;\n\n#ifdef MAC\n    short _fref;\n#elif defined(WIN)\n    HANDLE _hfile;\n#endif // WIN\n\n    // private methods\n    FIL(FNI *pfni, ulong grffil);\n    ~FIL(void);\n\n    bool _FOpen(bool fCreate, ulong grffil);\n    void _Close(bool fFinal = fFalse);\n    void _SetFpPos(FP fp);\n\n  public:\n    // public static members\n    static FTG vftgCreator;\n\n  public:\n    // static methods\n    static void ClearMarks(void);\n    static void CloseUnmarked(void);\n    static void ShutDown(void);\n\n    // static methods returning a PFIL\n    static PFIL PfilFirst(void)\n    {\n        return _pfilFirst;\n    }\n    static PFIL PfilOpen(FNI *pfni, ulong grffil = ffilDenyWrite);\n    static PFIL PfilCreate(FNI *pfni, ulong grffil = ffilWriteEnable | ffilDenyWrite);\n    static PFIL PfilCreateTemp(FNI *pfni = pvNil);\n    static PFIL PfilFromFni(FNI *pfni);\n\n    virtual void Release(void);\n    void Mark(void)\n    {\n        _grffil |= ffilMark;\n    }\n\n    long ElError(void)\n    {\n        return _el;\n    }\n    void SetEl(long el = elNil)\n    {\n        _el = el;\n    }\n    bool FSetGrffil(ulong grffil, ulong grffilMask = ~0);\n    ulong GrffilCur(void)\n    {\n        return _grffil;\n    }\n    void SetTemp(bool fTemp = fTrue);\n    bool FTemp(void)\n    {\n        return FPure(_grffil & ffilTemp);\n    }\n    void GetFni(FNI *pfni)\n    {\n        *pfni = _fni;\n    }\n    void GetStnPath(PSTN pstn);\n\n    bool FSetFpMac(FP fp);\n    FP FpMac(void);\n    bool FReadRgb(void *pv, long cb, FP fp);\n    bool FReadRgbSeq(void *pv, long cb, FP *pfp)\n    {\n        AssertVarMem(pfp);\n        if (!FReadRgb(pv, cb, *pfp))\n            return fFalse;\n        *pfp += cb;\n        return fTrue;\n    }\n    bool FWriteRgb(void *pv, long cb, FP fp);\n    bool FWriteRgbSeq(void *pv, long cb, FP *pfp)\n    {\n        AssertVarMem(pfp);\n        if (!FWriteRgb(pv, cb, *pfp))\n            return fFalse;\n        *pfp += cb;\n        return fTrue;\n    }\n    bool FSwapNames(PFIL pfil);\n    bool FRename(FNI *pfni);\n    bool FSetFni(FNI *pfni);\n    void Flush(void);\n};\n\n/****************************************\n    File Location Class\n****************************************/\n// for AssertValid\nenum\n{\n    ffloNil,\n    ffloReadable,\n};\n\ntypedef struct FLO *PFLO;\nstruct FLO\n{\n    PFIL pfil;\n    FP fp;\n    long cb;\n\n    bool FRead(void *pv)\n    {\n        return FReadRgb(pv, cb, 0);\n    }\n    bool FWrite(void *pv)\n    {\n        return FWriteRgb(pv, cb, 0);\n    }\n    bool FReadRgb(void *pv, long cbRead, FP dfp);\n    bool FWriteRgb(void *pv, long cbWrite, FP dfp);\n    bool FCopy(PFLO pfloDst);\n    bool FReadHq(HQ *phq, long cbRead, FP dfp = 0);\n    bool FWriteHq(HQ hq, FP dfp = 0);\n    bool FReadHq(HQ *phq)\n    {\n        return FReadHq(phq, cb, 0);\n    }\n    bool FTranslate(short osk);\n\n    ASSERT\n};\n\n/***************************************************************************\n    Data block class - wrapper around either a flo or an hq.\n***************************************************************************/\nenum\n{\n    fblckNil = 0,\n    fblckPacked = 1,\n    fblckUnpacked = 2,\n    fblckFile = 4,\n    fblckMemory = 8,\n    fblckReadable = 16,\n};\n\ntypedef class BLCK *PBLCK;\n#define BLCK_PAR BASE\n#define kclsBLCK 'BLCK'\nclass BLCK : public BLCK_PAR\n{\n    RTCLASS_DEC\n    NOCOPY(BLCK)\n    ASSERT\n    MARKMEM\n\n  protected:\n    bool _fPacked;\n\n    // for file based blocks\n    FLO _flo;\n\n    // for memory based blocks\n    HQ _hq;\n    long _ibMin;\n    long _ibLim;\n\n  public:\n    BLCK(PFLO pflo, bool fPacked = fFalse);\n    BLCK(PFIL pfil, FP fp, long cb, bool fPacked = fFalse);\n    BLCK(HQ *phq, bool fPacked = fFalse);\n    BLCK(void);\n    ~BLCK(void);\n\n    void Set(PFLO pflo, bool fPacked = fFalse);\n    void Set(PFIL pfil, FP fp, long cb, bool fPacked = fFalse);\n    void SetHq(HQ *phq, bool fPacked = fFalse);\n    void Free(void);\n    HQ HqFree(bool fPackedOk = fFalse);\n    long Cb(bool fPackedOk = fFalse);\n\n    // changing the range of the block\n    bool FMoveMin(long dib);\n    bool FMoveLim(long dib);\n\n    // create a temp block\n    bool FSetTemp(long cb, bool fForceFile = fFalse);\n\n    // reading from and writing to\n    bool FRead(void *pv, bool fPackedOk = fFalse)\n    {\n        return FReadRgb(pv, Cb(fPackedOk), 0, fPackedOk);\n    }\n    bool FWrite(void *pv, bool fPackedOk = fFalse)\n    {\n        return FWriteRgb(pv, Cb(fPackedOk), 0, fPackedOk);\n    }\n    bool FReadRgb(void *pv, long cb, long ib, bool fPackedOk = fFalse);\n    bool FWriteRgb(void *pv, long cb, long ib, bool fPackedOk = fFalse);\n    bool FReadHq(HQ *phq, long cb, long ib, bool fPackedOk = fFalse);\n    bool FWriteHq(HQ hq, long ib, bool fPackedOk = fFalse);\n    bool FReadHq(HQ *phq, bool fPackedOk = fFalse)\n    {\n        return FReadHq(phq, Cb(fPackedOk), 0, fPackedOk);\n    }\n\n    // writing a block to a flo or another blck.\n    bool FWriteToFlo(PFLO pfloDst, bool fPackedOk = fFalse);\n    bool FWriteToBlck(PBLCK pblckDst, bool fPackedOk = fFalse);\n    bool FGetFlo(PFLO pflo, bool fPackedOk = fFalse);\n\n    // packing and unpacking\n    bool FPacked(long *pcfmt = pvNil);\n    bool FPackData(long cfmt = cfmtNil);\n    bool FUnpackData(void);\n\n    // Amount of memory being used\n    long CbMem(void);\n};\n\n/***************************************************************************\n    Message sink class. Basic interface for output streaming.\n***************************************************************************/\ntypedef class MSNK *PMSNK;\n#define MSNK_PAR BASE\n#define kclsMSNK 'MSNK'\nclass MSNK : public MSNK_PAR\n{\n    RTCLASS_INLINE(MSNK)\n\n  public:\n    virtual void ReportLine(PSZ psz) = 0;\n    virtual void Report(PSZ psz) = 0;\n    virtual bool FError(void) = 0;\n};\n\n/***************************************************************************\n    File based message sink.\n***************************************************************************/\ntypedef class MSFIL *PMSFIL;\n#define MSFIL_PAR MSNK\n#define kclsMSFIL 'msfl'\nclass MSFIL : public MSFIL_PAR\n{\n    ASSERT\n    RTCLASS_DEC\n\n  protected:\n    bool _fError;\n    PFIL _pfil;\n    FP _fpCur;\n    void _EnsureFile(void);\n\n  public:\n    MSFIL(PFIL pfil = pvNil);\n    ~MSFIL(void);\n\n    virtual void ReportLine(PSZ psz);\n    virtual void Report(PSZ psz);\n    virtual bool FError(void);\n\n    void SetFile(PFIL pfil);\n    PFIL PfilRelease(void);\n};\n\n#endif //! FILE_H\n"
  },
  {
    "path": "kauai/src/filemac.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    File management.\n\n***************************************************************************/\n#include \"util.h\"\n#include <script.h>\nASSERTNAME\n\n/***************************************************************************\n    Open or create the file.  If the file is already open, sets the\n    permissions according to grffil.  Note that the ffilDenyRead and\n    ffilDenyWrite do not work as in Windows.  Effectively, this routine\n    picks one of the following combinations:\n        ffilWriteEnable | ffilDenyRead | ffilDenyWrite\n        ffilDenyWrite\n***************************************************************************/\nbool FIL::_FOpen(bool fCreate, ulong grffil)\n{\n    AssertBaseThis(0);\n    AssertPo(&_fni, ffniFile);\n    short fref;\n\n    if (_el != elNil)\n        goto LFail;\n\n    // we just care about the permissions\n    if (grffil & ffilWriteEnable)\n        grffil = ffilWriteEnable | ffilDenyRead | ffilDenyWrite;\n    else\n        grffil = ffilDenyWrite;\n\n    // create the file if we need to\n    if (fCreate)\n    {\n        Assert(!_fOpen, \"Creating an open file\");\n        short cact, err;\n\n        for (cact = 0;; cact++)\n        {\n            if ((err = FSpCreate(&_fni._fss, vftgCreator, _fni._ftg, smSystemScript)) == noErr)\n            {\n                break;\n            }\n            if (cact > 0 || err != dupFNErr || FSpDelete(&_fni._fss) != noErr)\n                goto LFail;\n        }\n    }\n    else if (_fOpen && (~_grffil & grffil) == 0)\n    {\n        // permissions are already set high enough\n        return fTrue;\n    }\n\n    if (noErr != FSpOpenDF(&_fni._fss, (grffil & ffilWriteEnable) ? fsRdWrPerm : fsRdPerm, &fref))\n    {\n    LFail:\n        if (!_fOpen)\n            _el = kelCritical;\n        return fFalse;\n    }\n    if (_fOpen && _fref != fref)\n        FSClose(_fref);\n    _fref = fref;\n    _fOpen = fTrue;\n    _grffil = _grffil & ~kgrffilPerm | grffil;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Close the file.\n***************************************************************************/\nvoid FIL::_Close(void)\n{\n    AssertBaseThis(0);\n\n    if (_fOpen)\n    {\n        FSClose(_fref);\n        if (_fWrote)\n            FlushVol(pvNil, _fni._fss.vRefNum);\n        _fOpen = fFalse;\n        _fref = 0;\n\n        if (_grffil & ffilTemp)\n            FSpDelete(&_fni._fss);\n    }\n    _el = elNil;\n}\n\n/***************************************************************************\n    Flush the file (and its volume?).\n***************************************************************************/\nvoid FIL::Flush(void)\n{\n    AssertThis(0);\n    FlushVol(pvNil, _fni._fss.vRefNum);\n}\n\n/***************************************************************************\n    Seek to the given fp.\n***************************************************************************/\nvoid FIL::_SetFpPos(FP fp)\n{\n    AssertThis(0);\n    if (_el < kelSeek && SetFPos(_fref, fsFromStart, fp) != noErr)\n    {\n        _el = kelSeek;\n        PushErc(ercFileGeneral);\n    }\n}\n\n/***************************************************************************\n    Set the length of the file.\n***************************************************************************/\nbool FIL::FSetFpMac(FP fp)\n{\n    AssertThis(0);\n    AssertIn(fp, 0, kcbMax);\n    if (_el >= kelWrite)\n        return fFalse;\n\n    _fWrote = fTrue;\n    Assert(_grffil & ffilWriteEnable, \"file not open for write\");\n    if (SetEOF(_fref, fp) != noErr)\n    {\n        _el = kelWrite;\n        PushErc(ercFileGeneral);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the length of the file.\n***************************************************************************/\nFP FIL::FpMac(void)\n{\n    AssertThis(0);\n    FP fp;\n\n    if (_el < kelSeek && GetEOF(_fref, &fp) != noErr)\n    {\n        _el = kelSeek;\n        PushErc(ercFileGeneral);\n    }\n    return _el < kelSeek ? fp : 0;\n}\n\n/***************************************************************************\n    Read a block from the file.\n***************************************************************************/\nbool FIL::FReadRgb(void *pv, long cb, FP fp)\n{\n    AssertThis(0);\n    AssertIn(cb, 0, kcbMax);\n    AssertIn(fp, 0, klwMax);\n    AssertPvCb(pv, cb);\n\n    Debug(FP dfp = FpMac() - fp;)\n\n        _SetFpPos(fp);\n    if (_el >= kelRead)\n        return fFalse;\n\n    Assert(dfp >= cb, \"read past EOF\");\n    if (cb > 0 && FSRead(_fref, &cb, pv) != noErr)\n    {\n        _el = kelRead;\n        PushErc(ercFileGeneral);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Write a block to the file.\n***************************************************************************/\nbool FIL::FWriteRgb(void *pv, long cb, FP fp)\n{\n    AssertThis(0);\n    AssertIn(cb, 0, kcbMax);\n    AssertIn(fp, 0, klwMax);\n    AssertPvCb(pv, cb);\n\n    _SetFpPos(fp);\n    if (_el >= kelWrite)\n        return fFalse;\n\n    Assert(_grffil & ffilWriteEnable, \"file not open for write\");\n    _fWrote = fTrue;\n    if (cb > 0 && FSWrite(_fref, &cb, pv) != noErr)\n    {\n        _el = kelWrite;\n        PushErc(ercFileGeneral);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Swap the names of the two files.  They should be in the same directory.\n***************************************************************************/\nbool FIL::FSwapNames(PFIL pfil)\n{\n    AssertThis(0);\n    AssertPo(pfil, 0);\n\n    FNI fni;\n\n    if (_el != elNil || pfil->_el != elNil)\n        return fFalse;\n    Assert(_fni.FSameDir(&pfil->_fni), \"trying to change directories with FSwapNames\");\n\n    // swap the data\n    if (FSpExchangeFiles(&_fni._fss, &pfil->_fni._fss) != noErr)\n    {\n        PushErc(ercFileSwapNames);\n        return fFalse;\n    }\n\n    // swap the fni's\n    fni = _fni;\n    _fni = pfil->_fni;\n    pfil->_fni = fni;\n\n    AssertThis(0);\n    AssertPo(pfil, 0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Rename the file.\n***************************************************************************/\nbool FIL::FRename(FNI *pfni)\n{\n    AssertThis(0);\n    AssertPo(pfni, ffniFile);\n\n    if (_el != elNil)\n        return fFalse;\n    Assert(_fni.FSameDir(pfni), \"trying to change directories with FRename\");\n\n    if (FSpRename(&_fni._fss, pfni->_fss.name) != noErr)\n    {\n        PushErc(ercFileRename);\n        return fFalse;\n    }\n    CopySt((achar *)pfni->_fss.name, (achar *)_fni._fss.name);\n    AssertThis(0);\n    return fTrue;\n}\n"
  },
  {
    "path": "kauai/src/filewin.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Windows specific file management.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\nconst ulong kfpError = 0xFFFFFFFF;\npriv HANDLE _HfileOpen(PSZ pszFile, bool fCreate, ulong grffil);\n\n/***************************************************************************\n    Open or create the file by calling CreateFile.  Returns hBadWin on\n    failure.\n***************************************************************************/\npriv HANDLE _HfileOpen(PSZ psz, bool fCreate, ulong grffil)\n{\n    ulong luAccess = GENERIC_READ;\n    ulong luShare = 0;\n\n    if (grffil & ffilWriteEnable)\n        luAccess |= GENERIC_WRITE;\n    if (!(grffil & ffilDenyRead))\n        luShare |= FILE_SHARE_READ;\n    if (!(grffil & ffilDenyWrite))\n        luShare |= FILE_SHARE_WRITE;\n\n    return CreateFile(psz, luAccess, luShare, pvNil, fCreate ? CREATE_ALWAYS : OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,\n                      pvNil);\n}\n\n/***************************************************************************\n    Open or create the file.  If the file is already open, sets the\n    permissions according to grffil.\n***************************************************************************/\nbool FIL::_FOpen(bool fCreate, ulong grffil)\n{\n    AssertBaseThis(0);\n    bool fRet = fFalse;\n\n    _mutx.Enter();\n\n    if (_el >= kelCritical)\n        goto LRet;\n\n    grffil &= kgrffilPerm;\n    if (_fOpen)\n    {\n        Assert(!fCreate, \"can't create an open file\");\n        if ((~_grffil & grffil) == 0)\n        {\n            // permissions are already set high enough\n            fRet = fTrue;\n            goto LRet;\n        }\n        CloseHandle(_hfile);\n        _hfile = hBadWin;\n\n        // maintain the permissions we had before\n        grffil |= _grffil & kgrffilPerm;\n    }\n\n    _hfile = _HfileOpen(_fni._stnFile.Psz(), fCreate, grffil);\n\n    if (hBadWin == _hfile)\n    {\n        // if it was open, re-open it with old permissions\n        if (_fOpen)\n        {\n            _hfile = _HfileOpen(_fni._stnFile.Psz(), fFalse, _grffil);\n            if (hBadWin != _hfile)\n                goto LRet;\n        }\n        _fOpen = fFalse;\n        _el = kelCritical;\n        goto LRet;\n    }\n\n    _fOpen = fTrue;\n    _fEverOpen = fTrue;\n    _grffil = (_grffil & ~kgrffilPerm) | grffil;\n    fRet = fTrue;\n\nLRet:\n    _mutx.Leave();\n\n    return fRet;\n}\n\n/***************************************************************************\n    Close the file.\n***************************************************************************/\nvoid FIL::_Close(bool fFinal)\n{\n    AssertBaseThis(0);\n\n    _mutx.Enter();\n\n    if (_fOpen)\n    {\n        Flush();\n        CloseHandle(_hfile);\n        _fOpen = fFalse;\n        _hfile = hBadWin;\n    }\n\n    if ((_grffil & ffilTemp) && fFinal && _fEverOpen)\n    {\n        if (!DeleteFile(_fni._stnFile.Psz()))\n            Warn(\"Deleting temp file failed\");\n    }\n\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Flush the file (and its volume?).\n***************************************************************************/\nvoid FIL::Flush(void)\n{\n    AssertThis(0);\n\n    _mutx.Enter();\n\n    if (_fOpen)\n        FlushFileBuffers(_hfile);\n\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Seek to the given fp - assumes the mutx is already entered.\n***************************************************************************/\nvoid FIL::_SetFpPos(FP fp)\n{\n    AssertThis(0);\n\n    if (!_fOpen)\n        _FOpen(fFalse, _grffil);\n\n    if (_el < kelSeek && SetFilePointer(_hfile, fp, pvNil, FILE_BEGIN) == kfpError)\n    {\n        PushErc(ercFileGeneral);\n        _el = kelSeek;\n    }\n}\n\n/***************************************************************************\n    Set the length of the file.  This doesn't zero the appended portion.\n***************************************************************************/\nbool FIL::FSetFpMac(FP fp)\n{\n    AssertThis(0);\n    AssertIn(fp, 0, kcbMax);\n    bool fRet;\n\n    _mutx.Enter();\n\n    Assert(_grffil & ffilWriteEnable, \"can't write to read only file\");\n    _SetFpPos(fp);\n\n    if (_el < kelWrite)\n    {\n        _fWrote = fTrue;\n        if (!SetEndOfFile(_hfile))\n        {\n            PushErc(ercFileGeneral);\n            _el = kelWrite;\n        }\n    }\n    fRet = _el < kelWrite;\n\n    _mutx.Leave();\n\n    return fRet;\n}\n\n/***************************************************************************\n    Return the length of the file.\n***************************************************************************/\nFP FIL::FpMac(void)\n{\n    AssertThis(0);\n    FP fp;\n\n    _mutx.Enter();\n\n    if (!_fOpen)\n        _FOpen(fFalse, _grffil);\n\n    if (_el < kelSeek && (fp = SetFilePointer(_hfile, 0, pvNil, FILE_END)) == kfpError)\n    {\n        PushErc(ercFileGeneral);\n        _el = kelSeek;\n    }\n\n    if (_el >= kelSeek)\n        fp = 0;\n\n    _mutx.Leave();\n\n    return fp;\n}\n\n/***************************************************************************\n    Read a block from the file.\n***************************************************************************/\nbool FIL::FReadRgb(void *pv, long cb, FP fp)\n{\n    AssertThis(0);\n    AssertIn(cb, 0, kcbMax);\n    AssertIn(fp, 0, klwMax);\n    AssertPvCb(pv, cb);\n\n    long cbT;\n    bool fRet = fFalse;\n\n    if (cb <= 0)\n        return fTrue;\n\n    _mutx.Enter();\n\n    if (!_fOpen)\n        _FOpen(fFalse, _grffil);\n\n    Debug(FP dfp = FpMac() - fp;)\n\n        _SetFpPos(fp);\n    if (_el >= kelRead)\n        goto LRet;\n\n    Assert(dfp >= cb, \"read past EOF\");\n    if (!ReadFile(_hfile, pv, cb, (ulong *)&cbT, pvNil) || cb != cbT)\n    {\n        PushErc(ercFileGeneral);\n        _el = kelRead;\n        goto LRet;\n    }\n\n    fRet = fTrue;\n\nLRet:\n    _mutx.Leave();\n    return fRet;\n}\n\n/***************************************************************************\n    Write a block to the file.\n***************************************************************************/\nbool FIL::FWriteRgb(void *pv, long cb, FP fp)\n{\n    AssertThis(0);\n    AssertIn(cb, 0, kcbMax);\n    AssertIn(fp, 0, klwMax);\n    AssertPvCb(pv, cb);\n\n    long cbT;\n    bool fRet = fFalse;\n\n    if (cb <= 0)\n        return fTrue;\n\n    _mutx.Enter();\n\n    Assert(_grffil & ffilWriteEnable, \"can't write to read only file\");\n\n    if (!_fOpen)\n        _FOpen(fFalse, _grffil);\n\n    _SetFpPos(fp);\n    if (_el >= kelWrite)\n        goto LRet;\n\n    _fWrote = fTrue;\n    if (!WriteFile(_hfile, pv, cb, (ulong *)&cbT, pvNil) || cb != cbT)\n    {\n        PushErc(ercFileGeneral);\n        _el = kelWrite;\n        goto LRet;\n    }\n\n    fRet = fTrue;\n\nLRet:\n    _mutx.Leave();\n    return fRet;\n}\n\n/***************************************************************************\n    Swap the names of the two files.  They should be in the same directory.\n***************************************************************************/\nbool FIL::FSwapNames(PFIL pfil)\n{\n    AssertThis(0);\n    AssertPo(pfil, 0);\n    FNI fni;\n    FNI fniT;\n    bool fRet = fFalse;\n\n    if (this == pfil)\n    {\n        Bug(\"Why are you calling FSwapNames on the same file?\");\n        return fTrue;\n    }\n\n    _mutx.Enter();\n    pfil->_mutx.Enter();\n\n    Assert(_fni.FSameDir(&pfil->_fni), \"trying to change directories with FSwapNames\");\n\n    fni = pfil->_fni;\n    if (!fni.FGetUnique(fni.Ftg()))\n        goto LRet;\n\n    _Close();\n    pfil->_Close();\n\n    if (!_fni.FRename(&fni))\n        goto LFail;\n    if (!pfil->_fni.FRename(&_fni))\n        goto LRenameFail;\n    if (!fni.FRename(&pfil->_fni))\n    {\n        if (!_fni.FRename(&pfil->_fni))\n        {\n            Bug(\"rename failure\");\n            pfil->_fni = _fni;\n            _fni = fni;\n            goto LFail;\n        }\n\n    LRenameFail:\n        if (!fni.FRename(&_fni))\n        {\n            Bug(\"rename failure\");\n            _fni = fni;\n        }\n        goto LFail;\n    }\n\n    fni = _fni;\n    _fni = pfil->_fni;\n    pfil->_fni = fni;\n    fRet = fTrue;\n\nLFail:\n    // reopen the files\n    _FOpen(fFalse, _grffil);\n    pfil->_FOpen(fFalse, pfil->_grffil);\n\nLRet:\n    _mutx.Leave();\n    pfil->_mutx.Leave();\n\n    if (!fRet)\n        PushErc(ercFileSwapNames);\n\n    AssertThis(0);\n    AssertPo(pfil, 0);\n\n    return fRet;\n}\n\n/***************************************************************************\n    Rename a file.  The new fni should be on the same volume.\n    This may fail without an error code being set.\n***************************************************************************/\nbool FIL::FRename(FNI *pfni)\n{\n    AssertThis(0);\n    AssertPo(pfni, ffniFile);\n    FNI fni;\n    bool fRet = fFalse;\n\n    _mutx.Enter();\n\n    Assert(_fni.FSameDir(pfni), \"trying to change directories with FRename\");\n\n    _Close();\n    if (fRet = _fni.FRename(pfni))\n        _fni = *pfni;\n\n    // reopen the file\n    if (!_FOpen(fFalse, _grffil))\n        fRet = fFalse;\n\n    _mutx.Leave();\n\n    if (!fRet)\n        PushErc(ercFileRename);\n\n    AssertThis(0);\n    return fRet;\n}\n"
  },
  {
    "path": "kauai/src/fni.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    File name handling.\n\n***************************************************************************/\n#ifndef FNI_H\n#define FNI_H\n\n#ifdef MAC\ntypedef FSSpec FSS;\n#endif // MAC\n\nenum\n{\n    ffniNil = 0x0000,\n    ffniCreateDir = 0x0001,\n    ffniMoveToDir = 0x0002,\n\n// for FNI::AssertValid\n#ifdef DEBUG\n    ffniFile = 0x10000,\n    ffniDir = 0x20000,\n    ffniEmpty = 0x40000,\n#endif\n};\n\n// Volume kinds:\nenum\n{\n    fvkNil = 0x0000,\n    fvkFloppy = 0x0001,\n    fvkNetwork = 0x0002,\n    fvkCD = 0x0004,\n    fvkRemovable = 0x0008,\n};\n\ntypedef long FTG; // file type\n\nconst FTG ftgNil = '...,';\nconst FTG kftgDir = '....';\nconst FTG kftgTemp = MacWin('temp', 'TMP'); // the standard temp file ftg\nconst FTG kftgText = MacWin('TEXT', 'TXT');\n\nextern FTG vftgTemp; // the ftg to use for temp files\n\n/****************************************\n    File name class\n****************************************/\ntypedef class FNI *PFNI;\n#define FNI_PAR BASE\n#define kclsFNI 'FNI'\nclass FNI : public FNI_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n    friend class FIL;\n    friend class FNE;\n\n  private:\n    FTG _ftg;\n#ifdef MAC\n    long _lwDir; // the directory id\n    FSS _fss;\n#elif defined(WIN)\n    STN _stnFile;\n#endif // WIN\n\n#ifdef WIN\n    void _SetFtgFromName(void);\n    long _CchExt(void);\n    bool _FChangeLeaf(PSTN pstn);\n#endif // WIN\n\n  public:\n    FNI(void);\n\n// building FNIs\n#ifdef MAC\n    bool FGetOpen(FTG *prgftg, short cftg);\n    bool FGetSave(FTG ftg, PST pstPrompt, PST pstDefault);\n    bool FBuild(long lwVol, long lwDir, PSTN pstn, FTG ftg);\n#elif defined(WIN)\n    bool FGetOpen(achar *prgchFilter, HWND hwndOwner);\n    bool FGetSave(achar *prgchFilter, HWND hwndOwner);\n    bool FSearchInPath(PSTN pstn, PSTN pstnEnv = pvNil);\n#endif                                                   // WIN\n    bool FBuildFromPath(PSTN pstn, FTG ftgDef = ftgNil); // REVIEW shonk: Mac: implement\n    bool FGetUnique(FTG ftg);\n    bool FGetTemp(void);\n    void SetNil(void);\n\n    FTG Ftg(void);\n    ulong Grfvk(void); // volume kind (floppy/net/CD/etc)\n    bool FChangeFtg(FTG ftg);\n\n    bool FSetLeaf(PSTN pstn, FTG ftg = ftgNil);\n    void GetLeaf(PSTN pstn);\n    void GetStnPath(PSTN pstn);\n\n    tribool TExists(void);\n    bool FDelete(void);\n    bool FRename(PFNI pfniNew);\n    bool FEqual(PFNI pfni);\n\n    bool FDir(void);\n    bool FSameDir(PFNI pfni);\n    bool FDownDir(PSTN pstn, ulong grffni);\n    bool FUpDir(PSTN pstn, ulong grffni);\n};\n\n#ifdef MAC\n#define FGetFniOpenMacro(pfni, prgftg, cftg, prgchFilter, hwndOwner) (pfni)->FGetOpen(prgftg, cftg)\n#define FGetFniSaveMacro(pfni, ftg, pstPrompt, pstDef, prgchFilter, hwndOwner) (pfni)->FGetSave(ftg, pstPrompt, pstDef)\n#endif // MAC\n#ifdef WIN\n#define FGetFniOpenMacro(pfni, prgftg, cftg, prgchFilter, hwndOwner) (pfni)->FGetOpen(prgchFilter, hwndOwner)\n#define FGetFniSaveMacro(pfni, ftg, pstPrompt, pstDef, prgchFilter, hwndOwner) (pfni)->FGetSave(prgchFilter, hwndOwner)\n#endif // WIN\n\n/****************************************\n    File name enumerator.\n****************************************/\nconst long kcftgFneBase = 20;\n\nenum\n{\n    ffneNil = 0,\n    ffneRecurse = 1,\n\n    // for FNextFni\n    ffnePre = 0x10,\n    ffnePost = 0x20,\n    ffneSkipDir = 0x80,\n};\n\n#define FNE_PAR BASE\n#define kclsFNE 'FNE'\nclass FNE : public FNE_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    NOCOPY(FNE)\n\n  private:\n    // file enumeration state\n    struct FES\n    {\n#ifdef MAC\n        long lwVol;\n        long lwDir;\n        long iv;\n#endif // MAC\n#ifdef WIN\n        FNI fni; // directory fni\n        HN hn;   // for enumerating files/directories\n        WIN32_FIND_DATA wfd;\n        ulong grfvol; // which volumes are available (for enumerating volumes)\n        long chVol;   // which volume we're on (for enumerating volumes)\n#endif                // WIN\n    };\n\n    FTG _rgftg[kcftgFneBase];\n    FTG *_prgftg;\n    long _cftg;\n    bool _fRecurse : 1;\n    bool _fInited : 1;\n    PGL _pglfes;\n    FES _fesCur;\n\n    void _Free(void);\n#ifdef WIN\n    bool _FPop(void);\n#endif // WIN\n\n  public:\n    FNE(void);\n    ~FNE(void);\n\n    bool FInit(FNI *pfniDir, FTG *prgftg, long cftg, ulong grffne = ffneNil);\n    bool FNextFni(FNI *pfni, ulong *pgrffneOut = pvNil, ulong grffneIn = ffneNil);\n};\n\n#endif //! FNI_H\n"
  },
  {
    "path": "kauai/src/fnimac.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    File name management.\n\n***************************************************************************/\n#include \"util.h\"\n#include <folders.h>\nASSERTNAME\n\n// This is the FTG to use for temp files - clients may set this to whatever\n// they want.\nFTG vftgTemp = kftgTemp;\n\n/***************************************************************************\n    Implementation notes:  The _fss is a standard FSSpec record and is\n    always filled in via a call to FSMakeFSSpec.  If the fni is a directory,\n    _ftg will be kftgDir.  For files, _lwDir is the same as _fss.parID.\n    For directories, _lwDir is the directory id for the directory described\n    by the fni (while _fss.parID is the id of its parent).\n***************************************************************************/\n\ntypedef StandardFileReply SFR;\npriv bool _FFssDir(FSS *pfss, long *plwDir);\n\nRTCLASS(FNI)\nRTCLASS(FNE)\n\n/***************************************************************************\n    Sets the fni to nil values.\n***************************************************************************/\nvoid FNI::SetNil(void)\n{\n    _ftg = ftgNil;\n    _lwDir = 0;\n    ClearPb(&_fss, size(_fss));\n    AssertThis(ffniEmpty);\n}\n\n/***************************************************************************\n    Constructor for fni class.\n***************************************************************************/\nFNI::FNI(void)\n{\n    SetNil();\n}\n\n/***************************************************************************\n    Get an fni (for opening) from the user.\n***************************************************************************/\nbool FNI::FGetOpen(FTG *prgftg, short cftg)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prgftg);\n\n    SFR sfr;\n\n    StandardGetFile(pvNil, cftg <= 0 ? -1 : cftg, (ulong *)prgftg, &sfr);\n    if (sfr.sfGood)\n    {\n        _fss = sfr.sfFile;\n        _ftg = sfr.sfType;\n        _lwDir = _fss.parID;\n        AssertThis(ffniFile);\n    }\n    else\n        SetNil();\n\n    return sfr.sfGood;\n}\n\n/***************************************************************************\n    Get an fni (for saving) from the user.\n***************************************************************************/\nbool FNI::FGetSave(FTG ftg, PST pstPrompt, PST pstDefault)\n{\n    AssertThis(0);\n    AssertNilOrSt(pstPrompt);\n    AssertNilOrSt(pstDefault);\n\n    SFR sfr;\n\n    StandardPutFile((byte *)pstPrompt, (byte *)pstDefault, &sfr);\n    if (sfr.sfGood)\n    {\n        _fss = sfr.sfFile;\n        _ftg = ftg;\n        _lwDir = _fss.parID;\n        AssertThis(ffniFile);\n    }\n    else\n        SetNil();\n\n    return sfr.sfGood;\n}\n\n/***************************************************************************\n    Get a unique filename in the given directory.\n***************************************************************************/\nbool FNI::FGetUnique(FTG ftg)\n{\n    AssertThis(ffniFile | ffniDir);\n    static long _dlw = 0;\n    long lw;\n    short cact;\n    short err;\n    STN stn;\n    long lwDir = _lwDir;\n    short swVol = _fss.vRefNum;\n\n    Assert(ftg != kftgDir && ftg != ftgNil, \"bad ftg\");\n    lw = TsSystemCurrent() + ++_dlw;\n    for (cact = 0; cact < 20; cact++, lw += ++_dlw)\n    {\n        AssertDo(stn.FFormatSz(PszLit(\"~TempFile#%08x\"), lw), 0);\n        err = FSMakeFSSpec(swVol, lwDir, &stn, &_fss);\n        if (err == fnfErr)\n        {\n            _ftg = ftg;\n            _lwDir = _fss.parID;\n            AssertThis(ffniFile);\n            return fTrue;\n        }\n    }\n    SetNil();\n    PushErc(ercFniGeneral);\n    return fFalse;\n}\n\n/***************************************************************************\n    Get a temporary fni.\n***************************************************************************/\nbool FNI::FGetTemp(void)\n{\n    AssertThis(0);\n    static short _swVolTemp = 0;\n    static long _lwDirTemp = -1;\n\n    // This is so we only call FindFolder once.\n    if (_swVolTemp == 0 && _lwDirTemp == -1 &&\n        FindFolder(0, kTemporaryFolderType, kCreateFolder, &_swVolTemp, &_lwDirTemp) != noErr)\n    {\n        _swVolTemp = 0;\n        _lwDirTemp = 0;\n    }\n\n    if (FSMakeFSSpec(_swVolTemp, _lwDirTemp, pvNil, &_fss) != noErr)\n    {\n        SetNil();\n        PushErc(ercFniGeneral);\n        return fFalse;\n    }\n\n    _ftg = kftgDir;\n    _lwDir = _lwDirTemp;\n    return FGetUnique(vftgTemp);\n}\n\n/***************************************************************************\n    Return the file type of the fni.\n***************************************************************************/\nFTG FNI::Ftg(void)\n{\n    AssertThis(0);\n    return _ftg;\n}\n\n/***************************************************************************\n    Return the volume kind for the given fni.\n***************************************************************************/\nulong FNI::Grfvk(void)\n{\n    AssertThis(0);\n    ulong grfvk = fvkNil;\n\n    // REVIEW shonk: Mac Grfvk: implement\n    RawRtn();\n    return grfvk;\n}\n\n/***************************************************************************\n    Set the leaf for the fni.\n***************************************************************************/\nbool FNI::FSetLeaf(PSTZ pstz, FTG ftg)\n{\n    AssertThis(ffniFile | ffniDir);\n    return FBuild(_fss.vRefNum, _lwDir, pstz, ftg);\n}\n\n/***************************************************************************\n    Set the leaf for the fni.\n***************************************************************************/\nbool FNI::FBuild(long lwVol, long lwDir, PSTZ pstz, FTG ftg)\n{\n    AssertNilOrStz(pstz);\n    short err;\n    FSS fss;\n\n    Assert(FPure(ftg == kftgDir) == FPure(pstz == pvNil || CchStz(pstz) == 0), \"pstz doesn't match ftg\");\n    if (ftg == kftgDir)\n        pstz = pvNil;\n\n    err = FSMakeFSSpec((short)lwVol, lwDir, (byte *)pstz, &fss);\n    if (ftg == kftgDir)\n    {\n        // a directory (it had better exist)\n        if (noErr != err)\n            goto LFail;\n        _lwDir = lwDir;\n    }\n    else\n    {\n        // not supposed to be a directory - so make sure it isn't\n        if (fnfErr != err)\n        {\n            if (noErr != err)\n                goto LFail;\n            if (_FFssDir(&fss, pvNil))\n                goto LFail;\n        }\n        _lwDir = fss.parID;\n    }\n    _fss = fss;\n    _ftg = ftg;\n    AssertThis(ffniFile | ffniDir);\n    return fTrue;\n\nLFail:\n    SetNil();\n    PushErc(ercFniGeneral);\n    return fFalse;\n}\n\n/***************************************************************************\n    Set the FTG for the fni.\n***************************************************************************/\nbool FNI::FChangeFtg(FTG ftg)\n{\n    AssertThis(ffniFile);\n    Assert(ftg != ftgNil && ftg != kftgDir, \"Bad FTG\");\n\n    _ftg = ftg;\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the leaf name for the fni.\n***************************************************************************/\nvoid FNI::GetLeaf(PSTZ pstz)\n{\n    AssertThis(0);\n    AssertMaxStz(pstz);\n\n    if (_ftg == kftgDir)\n        SetStzNil(pstz);\n    else\n        CopyStStz((achar *)_fss.name, pstz);\n}\n\n/***************************************************************************\n    Get a string representing the path of the fni.\n***************************************************************************/\nvoid FNI::GetStzPath(PSTZ pstz)\n{\n    AssertThis(0);\n    AssertMaxStz(pstz);\n    RawRtn(); // REVIEW shonk: Mac GetStzPath: implement for real\n    CopyStStz((achar *)_fss.name, pstz);\n}\n\n/***************************************************************************\n    Determines if the file/directory exists.  Returns tMaybe on error or\n    if the fni type (file or dir) doesn't match the disk object of the\n    same name or if the file/dir is invisible or is an alias.  Pushes an\n    erc if it returns tMaybe.\n***************************************************************************/\nbool FNI::TExists(void)\n{\n    AssertThis(ffniFile | ffniDir);\n    CInfoPBRec iob;\n    short err;\n    achar st[kcbMaxSt];\n\n    ClearPb(&iob, size(iob));\n    CopySt((achar *)_fss.name, st);\n    iob.hFileInfo.ioNamePtr = (byte *)st;\n    iob.hFileInfo.ioVRefNum = _fss.vRefNum;\n    iob.hFileInfo.ioDirID = _fss.parID;\n    if ((err = PBGetCatInfo(&iob, fFalse)) != noErr)\n    {\n        if (err != fnfErr)\n        {\n            PushErc(ercFniGeneral);\n            return tMaybe;\n        }\n        return tNo;\n    }\n    if ((_ftg == kftgDir) != FPure(iob.hFileInfo.ioFlAttrib & 0x0010))\n    {\n        PushErc(ercFniMismatch);\n        return tMaybe;\n    }\n    if (iob.hFileInfo.ioFlFndrInfo.fdFlags & (kIsInvisible | kIsAlias))\n    {\n        PushErc(ercFniHidden);\n        return tMaybe;\n    }\n    return tYes;\n}\n\n/***************************************************************************\n    Delete the file.\n***************************************************************************/\nbool FNI::FDelete(void)\n{\n    AssertThis(ffniFile);\n    if (FSpDelete(&_fss) == noErr)\n        return fTrue;\n    PushErc(ercFniDelete);\n    return fFalse;\n}\n\n/***************************************************************************\n    Rename the file as indicated by *pfni.  The directories must match.\n***************************************************************************/\nbool FNI::FRename(FNI *pfni)\n{\n    AssertThis(ffniFile);\n    AssertPo(pfni, ffniFile);\n    Assert(_fss.vRefNum == pfni->_fss.vRefNum && _fss.parID == pfni->_fss.parID, \"directory change\");\n    Assert(_ftg == pfni->_ftg, \"ftg's don't match\");\n\n    if (FSpRename(&_fss, pfni->_fss.name) == noErr)\n        return fTrue;\n    PushErc(ercFniRename);\n    return fFalse;\n}\n\n/***************************************************************************\n    Compare two fni's for equality.  Doesn't consider the ftg's.\n***************************************************************************/\nbool FNI::FEqual(FNI *pfni)\n{\n    // NOTE: see IM:Text, pg 5-17.  It's not documented whether the comparison\n    // should be case sensitive and/or diacritical sensitive.  Experimenting\n    // with the US finder indicates that we should use case insensitive,\n    // diacritical sensitive comparison.\n    AssertThis(ffniFile | ffniDir);\n    AssertPo(pfni, ffniFile | ffniDir);\n\n    return pfni->_fss.vRefNum == _fss.vRefNum && pfni->_fss.parID == _fss.parID &&\n           EqualString(pfni->_fss.name, _fss.name, fFalse, fTrue);\n}\n\n/***************************************************************************\n    Return whether the fni refers to a directory.\n***************************************************************************/\nbool FNI::FDir(void)\n{\n    AssertThis(0);\n    return _ftg == kftgDir;\n}\n\n/***************************************************************************\n    Return whether the directory portions of the fni's are the same.\n***************************************************************************/\nbool FNI::FSameDir(FNI *pfni)\n{\n    AssertThis(ffniDir | ffniFile);\n    AssertPo(pfni, ffniDir | ffniFile);\n\n    return pfni->_fss.vRefNum == _fss.vRefNum && pfni->_lwDir == _lwDir;\n}\n\n/***************************************************************************\n    Determine if the directory pstz in fni exists, optionally creating it\n    and/or moving into it.  Specify ffniCreateDir to create it if it\n    doesn't exist.  Specify ffniMoveTo to make the fni refer to it.\n    If this fails, the fni is untouched.\n***************************************************************************/\nbool FNI::FDownDir(PSTZ pstz, ulong grffni)\n{\n    AssertThis(ffniDir);\n    AssertStz(pstz);\n    FSS fss;\n    long lwDir;\n    short err;\n\n    // make the fss\n    err = FSMakeFSSpec(_fss.vRefNum, _lwDir, (byte *)pstz, &fss);\n    if (noErr == err)\n    {\n        // exists, make sure it is a directory and get the directory id\n        if (!_FFssDir(&fss, &lwDir))\n        {\n            PushErc(ercFniMismatch);\n            return fFalse;\n        }\n    }\n    else\n    {\n        if (fnfErr != err)\n        {\n            PushErc(ercFniGeneral);\n            return fFalse;\n        }\n\n        // doesn't exist\n        if (!(grffni & ffniCreateDir))\n            return fFalse;\n\n        // create it\n        err = FSpDirCreate(&fss, smSystemScript, &lwDir);\n        if (err != noErr)\n        {\n            PushErc(ercFniDirCreate);\n            return fFalse;\n        }\n    }\n\n    if (grffni & ffniMoveToDir)\n    {\n        _fss = fss;\n        _lwDir = lwDir;\n        _ftg = kftgDir;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Gets the lowest directory name (if pstz is not nil) and optionally\n    moves the fni up a level (if ffniMoveToDir is specified).  If this\n    fails, the fni is untouched.\n***************************************************************************/\nbool FNI::FUpDir(PSTZ pstz, ulong grffni)\n{\n    AssertThis(ffniDir);\n    AssertNilOrMaxStz(pstz);\n\n    CInfoPBRec iob;\n    short err;\n    FSS fss;\n\n    if (_lwDir == fsRtDirID)\n        return fFalse;\n\n    ClearPb(&iob, size(iob));\n    iob.dirInfo.ioFDirIndex = -1; // ignore name, look at vol/dir\n    iob.dirInfo.ioNamePtr = (byte *)pstz;\n    iob.dirInfo.ioVRefNum = _fss.vRefNum;\n    iob.dirInfo.ioDrDirID = _lwDir;\n    if (PBGetCatInfo(&iob, fFalse) != noErr)\n    {\n        PushErc(ercFniGeneral);\n        return fFalse;\n    }\n    if (pstz != pvNil)\n        SetStzCch(pstz, CchSt(pstz));\n    Assert(iob.dirInfo.ioFlAttrib & 0x0010, \"not a directory?!\");\n    if (grffni & ffniMoveToDir)\n    {\n        err = FSMakeFSSpec(_fss.vRefNum, iob.dirInfo.ioDrParID, pvNil, &fss);\n        if (noErr != err)\n        {\n            PushErc(ercFniGeneral);\n            return fFalse;\n        }\n        _fss = fss;\n        _lwDir = iob.dirInfo.ioDrParID;\n        _ftg = kftgDir;\n        AssertThis(ffniDir);\n    }\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert validity of the FNI.\n***************************************************************************/\nvoid FNI::AssertValid(ulong grffni)\n{\n    FNI_PAR::AssertValid(0);\n    if (grffni == 0)\n        grffni = ffniEmpty | ffniFile | ffniDir;\n\n    if (_ftg == ftgNil)\n    {\n        Assert(grffni & ffniEmpty, \"unexpected nil fni\");\n        Assert(_fss.vRefNum == 0 && _fss.parID == 0 && _lwDir == 0 && CchSt((achar *)_fss.name) == 0, \"bad nil\");\n    }\n    else if (_ftg == kftgDir)\n    {\n        Assert(grffni & ffniDir, \"unexpected dir\");\n        Assert(_lwDir != _fss.parID, \"dir is its own parent?\");\n    }\n    else\n    {\n        Assert(grffni & ffniFile, \"unexpected file\");\n        Assert(CchSt((achar *)_fss.name) > 0, \"no name for file\");\n        Assert(_lwDir == _fss.parID, \"parent not consistent?\");\n    }\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Low level routine to determine if the given fss points to an existing\n    directory.  If so and plwDir is not nil, sets *plwDir to the id of\n    the directory.\n***************************************************************************/\npriv bool _FFssDir(FSS *pfss, long *plwDir)\n{\n    CInfoPBRec iob;\n\n    // find the entry\n    ClearPb(&iob, size(iob));\n    iob.hFileInfo.ioNamePtr = (StringPtr)pfss->name;\n    iob.hFileInfo.ioVRefNum = pfss->vRefNum;\n    iob.hFileInfo.ioDirID = pfss->parID;\n    if (PBGetCatInfo(&iob, fFalse) != noErr)\n    {\n        PushErc(ercFniGeneral);\n        goto LFail;\n    }\n\n    // entry exists so see if it's a directory\n    if (!(iob.hFileInfo.ioFlAttrib & 0x0010))\n    {\n    LFail:\n        TrashVar(plwDir);\n        return fFalse;\n    }\n\n    if (plwDir != pvNil)\n        *plwDir = iob.dirInfo.ioDrDirID;\n    return fTrue;\n}\n\n/***************************************************************************\n    Constructor for a File Name Enumerator.\n***************************************************************************/\nFNE::FNE(void)\n{\n    AssertBaseThis(0);\n    _prgftg = _rgftg;\n    _pglfes = pvNil;\n    _fInited = fFalse;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for an FNE.\n***************************************************************************/\nFNE::~FNE(void)\n{\n    AssertBaseThis(0);\n    _Free();\n}\n\n/***************************************************************************\n    Free all the memory associated with the FNE.\n***************************************************************************/\nvoid FNE::_Free(void)\n{\n    if (_prgftg != _rgftg)\n    {\n        FreePpv((void **)&_prgftg);\n        _prgftg = _rgftg;\n    }\n    ReleasePpo(&_pglfes);\n    _fInited = fFalse;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Initialize the fne to do an enumeration.\n***************************************************************************/\nbool FNE::FInit(FNI *pfniDir, FTG *prgftg, long cftg, ulong grffne)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pfniDir);\n    AssertIn(cftg, 0, kcbMax);\n    AssertPvCb(prgftg, LwMul(cftg, size(FTG)));\n\n    // free the old stuff\n    _Free();\n\n    if (0 >= cftg)\n        _cftg = 0;\n    else\n    {\n        long cb = LwMul(cftg, size(FTG));\n\n        if (cftg > kcftgFneBase && !FAllocPv((void **)&_prgftg, cb, fmemNil, mprNormal))\n        {\n            _prgftg = _rgftg;\n            PushErc(ercFneGeneral);\n            AssertThis(0);\n            return fFalse;\n        }\n        CopyPb(prgftg, _prgftg, cb);\n        _cftg = cftg;\n    }\n\n    if (pfniDir == pvNil)\n        _fesCur.lwVol = 0;\n    else\n    {\n        _fesCur.lwVol = (long)pfniDir->_fss.vRefNum;\n        _fesCur.lwDir = pfniDir->_lwDir;\n    }\n    _fesCur.iv = 0;\n    _fRecurse = FPure(grffne & ffneRecurse);\n    _fInited = fTrue;\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the next FNI in the enumeration.\n***************************************************************************/\nbool FNE::FNextFni(FNI *pfni, ulong *pgrffneOut, ulong grffneIn)\n{\n    AssertThis(0);\n    AssertVarMem(pfni);\n    AssertNilOrVarMem(pgrffneOut);\n    short err;\n\n    if (!_fInited)\n    {\n        Bug(\"must initialize the FNE before using it!\");\n        return fFalse;\n    }\n\n    if (grffneIn & ffneSkipDir)\n    {\n        // skip the rest of the stuff in this dir\n        if (pvNil == _pglfes || !_pglfes->FPop(&_fesCur))\n            goto LDone;\n    }\n\n    if (_fesCur.lwVol == 0)\n    {\n        // volume\n        ParamBlockRec iob;\n\n        do\n        {\n            ClearPb(&iob, size(iob));\n            iob.volumeParam.ioVolIndex = (short)++_fesCur.iv;\n            if ((err = PBGetVInfoSync(&iob)) != noErr)\n            {\n                if (err != nsvErr)\n                    PushErc(ercFneGeneral);\n                goto LDone;\n            }\n        } while (!pfni->FBuild(iob.volumeParam.ioVRefNum, 0, pvNil, kftgDir));\n\n        // we've got one\n        goto LGotOne;\n    }\n\n    // directory or file\n    for (;;)\n    {\n        int ich;\n        bool fT;\n        FTG *pftg;\n        PSZ pszExt;\n        CInfoPBRec iob;\n        achar stz[kcbMaxStz];\n\n        ClearPb(&iob, size(iob));\n        iob.hFileInfo.ioNamePtr = (byte *)stz;\n        iob.hFileInfo.ioVRefNum = (short)_fesCur.lwVol;\n        iob.hFileInfo.ioDirID = _fesCur.lwDir;\n        iob.hFileInfo.ioFDirIndex = (short)++_fesCur.iv;\n        if ((err = PBGetCatInfoSync(&iob)) != noErr)\n        {\n            if (err != fnfErr)\n                PushErc(ercFneGeneral);\n            goto LPop;\n        }\n\n        if (iob.hFileInfo.ioFlFndrInfo.fdFlags & (kIsInvisible | kNameLocked | kIsAlias))\n        {\n            continue;\n        }\n\n        if (iob.hFileInfo.ioFlAttrib & 0x0010)\n            fT = pfni->FBuild(_fesCur.lwVol, iob.hFileInfo.ioDirID, pvNil, kftgDir);\n        else\n        {\n            StToStz(stz);\n            fT = pfni->FBuild(_fesCur.lwVol, _fesCur.lwDir, stz, iob.hFileInfo.ioFlFndrInfo.fdType);\n        }\n        if (!fT)\n            continue;\n\n        if (_cftg == 0)\n            goto LGotOne;\n        for (pftg = _prgftg + _cftg; pftg-- > _prgftg;)\n        {\n            if (*pftg == pfni->_ftg)\n                goto LGotOne;\n\n            // see if the file has a dos-like extension matching the ftg\n            if (pfni->_ftg != kftgDir && (pszExt = (achar *)pftg)[3] == 0 && (ich = CchStz(stz) - CchSz(pszExt)) > 0 &&\n                PszStz(stz)[ich - 1] == '.' && fcmpEq == FcmpCompareInsSz(PszStz(stz) + ich, pszExt))\n            {\n                goto LGotOne;\n            }\n        }\n    }\n    Bug(\"How did we fall through to here?\");\n\nLPop:\n    if (_pglfes == pvNil || _pglfes->IvMac() == 0)\n        goto LDone;\n\n    // we're about to pop a directory, so send the current directory back\n    // with ffnePost\n    if (pvNil != pgrffneOut)\n        *pgrffneOut = ffnePost;\n    if (!pfni->FBuild(_fesCur.lwVol, _fesCur.lwDir, pvNil, kftgDir))\n    {\n        PushErc(ercFneGeneral);\n    LDone:\n        _Free();\n        AssertThis(0);\n        return fFalse;\n    }\n    Assert(_pglfes->FPop(&_fesCur), 0);\n    AssertPo(pfni, ffniDir);\n    AssertThis(0);\n    return fTrue;\n\nLGotOne:\n    AssertPo(pfni, ffniFile | ffniDir);\n    if (pvNil != pgrffneOut)\n        *pgrffneOut = ffnePre | ffnePost;\n\n    if (_fRecurse && pfni->_ftg == kftgDir)\n    {\n        if ((pvNil != _pglfes || pvNil != (_pglfes = GL::PglNew(size(FES), 5))) && _pglfes->FPush(&_fesCur))\n        {\n            // set up the new fes\n            _fesCur.lwVol = pfni->_fss.vRefNum;\n            _fesCur.lwDir = pfni->_lwDir;\n            _fesCur.iv = 0;\n            if (pvNil != pgrffneOut)\n                *pgrffneOut = ffnePre;\n        }\n        else\n            PushErc(ercFneGeneral);\n    }\n    AssertThis(0);\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a FNE.\n***************************************************************************/\nvoid FNE::AssertValid(ulong grf)\n{\n    FNE_PAR::AssertValid(0);\n    if (_fInited)\n    {\n        AssertNilOrPo(_pglfes, 0);\n        AssertIn(_cftg, 0, kcbMax);\n        AssertPvCb(_prgftg, LwMul(size(FTG), _cftg));\n        Assert((_cftg > kcftgFneBase) == (_prgftg == _rgftg), \"wrong _prgftg\");\n    }\n    else\n        Assert(_pglfes == pvNil, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the FNE.\n***************************************************************************/\nvoid FNE::MarkMem(void)\n{\n    AssertValid(0);\n    FNE_PAR::MarkMem();\n    if (_prgftg != _rgftg)\n        MarkPv(_prgftg);\n    MarkMemObj(_pglfes);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/fniwin.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    File name management.\n\n***************************************************************************/\n#include \"util.h\"\n#include <commdlg.h>\nASSERTNAME\n\n// This is the FTG to use for temp files - clients may set this to whatever\n// they want.\nFTG vftgTemp = kftgTemp;\n\ntypedef OFSTRUCT OFS;\ntypedef OPENFILENAME OFN;\n\n// maximal number of short characters in an extension is 4 (so it fits in\n// a long).\nconst long kcchsMaxExt = size(long);\n\npriv void _CleanFtg(FTG *pftg, PSTN pstnExt = pvNil);\nFNI _fniTemp;\n\nRTCLASS(FNI)\nRTCLASS(FNE)\n\n/***************************************************************************\n    Sets the fni to nil values.\n***************************************************************************/\nvoid FNI::SetNil(void)\n{\n    _ftg = ftgNil;\n    _stnFile.SetNil();\n    AssertThis(ffniEmpty);\n}\n\n/***************************************************************************\n    Constructor for fni class.\n***************************************************************************/\nFNI::FNI(void)\n{\n    SetNil();\n}\n\n/***************************************************************************\n    Get an fni (for opening) from the user.\n***************************************************************************/\nbool FNI::FGetOpen(achar *prgchFilter, HWND hwndOwner)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prgchFilter);\n\n    OFN ofn;\n    SZ sz;\n\n    ClearPb(&ofn, size(OFN));\n    SetNil();\n\n    sz[0] = 0;\n    ofn.lStructSize = size(OFN);\n    ofn.hwndOwner = hwndOwner;\n    ofn.hInstance = NULL;\n    ofn.lpstrFilter = prgchFilter;\n    ofn.nFilterIndex = 1L;\n    ofn.lpstrFile = sz;\n    ofn.nMaxFile = kcchMaxSz;\n    ofn.lpstrFileTitle = NULL;\n    ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_NOTESTFILECREATE | OFN_READONLY;\n\n    if (!GetOpenFileName(&ofn))\n    {\n        SetNil();\n        return fFalse;\n    }\n\n    _stnFile = ofn.lpstrFile;\n    _SetFtgFromName();\n    AssertThis(ffniFile);\n    return fTrue;\n}\n\n/***************************************************************************\n    Get an fni (for saving) from the user.\n***************************************************************************/\nbool FNI::FGetSave(achar *prgchFilter, HWND hwndOwner)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prgchFilter);\n\n    OFN ofn;\n    SZ sz;\n\n    ClearPb(&ofn, size(OFN));\n    SetNil();\n\n    sz[0] = 0;\n    ofn.lStructSize = size(OFN);\n    ofn.hwndOwner = hwndOwner;\n    ofn.hInstance = NULL;\n    ofn.lpstrFilter = prgchFilter;\n    ofn.nFilterIndex = 1L;\n    ofn.lpstrFile = sz;\n    ofn.nMaxFile = kcchMaxSz;\n    ofn.lpstrFileTitle = NULL;\n    ofn.Flags = OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST;\n    ofn.lpstrDefExt = PszLit(\"\");\n\n    if (!GetSaveFileName(&ofn))\n    {\n        SetNil();\n        return fFalse;\n    }\n\n    _stnFile = sz;\n    _SetFtgFromName();\n    AssertThis(ffniFile);\n    return fTrue;\n}\n\n/***************************************************************************\n    Builds the fni from the path.\n***************************************************************************/\nbool FNI::FBuildFromPath(PSTN pstn, FTG ftgDef)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    long cch;\n    achar *pchT;\n    SZ sz;\n\n    if (kftgDir != ftgDef)\n    {\n        // if the path ends with a slash or only has periods after the last\n        // slash, force the fni to be a directory.\n\n        cch = pstn->Cch();\n        for (pchT = pstn->Prgch() + cch - 1;; pchT--)\n        {\n            if (cch-- <= 0 || *pchT == ChLit('\\\\') || *pchT == ChLit('/'))\n            {\n                ftgDef = kftgDir;\n                break;\n            }\n            if (*pchT != ChLit('.'))\n                break;\n        }\n    }\n\n    /* ask windows to parse the file name (resolves \"..\" and \".\") and returns\n       absolute filename \"X:\\FOO\\BAR\", relative to the current drive and\n       directory if no drive or directory is given in pstn */\n    if ((cch = GetFullPathName(pstn->Psz(), kcchMaxSz, sz, &pchT)) == 0 || cch > kcchMaxSz)\n    {\n        goto LFail;\n    }\n    Assert(cch <= kcchMaxSz, 0);\n    _stnFile = sz;\n\n    if (ftgDef == kftgDir)\n    {\n        achar ch = _stnFile.Prgch()[_stnFile.Cch() - 1];\n        if (ch != ChLit('\\\\') && ch != ChLit('/'))\n        {\n            if (!_stnFile.FAppendCh(ChLit('\\\\')))\n            {\n                goto LFail;\n            }\n        }\n        _ftg = kftgDir;\n    }\n    else\n    {\n        _SetFtgFromName();\n        if (_ftg == 0 && ftgDef != ftgNil && pstn->Prgch()[pstn->Cch() - 1] != ChLit('.') && !FChangeFtg(ftgDef))\n        {\n        LFail:\n            SetNil();\n            PushErc(ercFniGeneral);\n            return fFalse;\n        }\n    }\n\n    AssertThis(ffniFile | ffniDir);\n    return fTrue;\n}\n\n/******************************************************************************\n    Will attempt to build an FNI with the given filename.  Uses the\n    Windows SearchPath API, and thus the Windows path*search rules.\n\n    Arguments:\n        PSTN pstn ** the filename to look for\n\n    Returns: fTrue if it could find the file\n******************************************************************************/\nbool FNI::FSearchInPath(PSTN pstn, PSTN pstnEnv)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    AssertNilOrPo(pstnEnv, 0);\n\n    long cch;\n    SZ sz;\n    achar *pchT;\n    PSZ psz = (pstnEnv == pvNil) ? pvNil : pstnEnv->Psz();\n\n    if ((cch = SearchPath(psz, pstn->Psz(), pvNil, kcchMaxSz, sz, &pchT)) == 0 || cch > kcchMaxSz)\n    {\n        SetNil();\n        PushErc(ercFniGeneral);\n        return fFalse;\n    }\n\n    Assert(cch <= kcchMaxSz, 0);\n    _stnFile = sz;\n    _SetFtgFromName();\n\n    AssertThis(ffniFile | ffniDir);\n    return fTrue;\n}\n\n/***************************************************************************\n    Get a unique filename in the directory currently indicated by the fni.\n***************************************************************************/\nbool FNI::FGetUnique(FTG ftg)\n{\n    AssertThis(ffniFile | ffniDir);\n    static short _dsw = 0;\n    STN stn;\n    STN stnOld;\n    short sw;\n    long cact;\n\n    if (Ftg() == kftgDir)\n        stnOld.SetNil();\n    else\n        GetLeaf(&stnOld);\n\n    sw = (short)TsCurrentSystem() + ++_dsw;\n    for (cact = 20; cact != 0; cact--, sw += ++_dsw)\n    {\n        stn.FFormatSz(PszLit(\"Temp%04x\"), (long)sw);\n        if (stn.FEqual(&stnOld))\n            continue;\n        if (FSetLeaf(&stn, ftg) && TExists() == tNo)\n            return fTrue;\n    }\n    SetNil();\n    PushErc(ercFniGeneral);\n    return fFalse;\n}\n\n/***************************************************************************\n    Get a temporary fni.\n***************************************************************************/\nbool FNI::FGetTemp(void)\n{\n    AssertThis(0);\n\n    if (_fniTemp._ftg != kftgDir)\n    {\n        // get the temp directory\n        SZ sz;\n\n        if (GetTempPath(kcchMaxSz, sz) == 0)\n        {\n            PushErc(ercFniGeneral);\n            return fFalse;\n        }\n        _fniTemp._stnFile = sz;\n        _fniTemp._ftg = kftgDir;\n        AssertPo(&_fniTemp, ffniDir);\n    }\n    *this = _fniTemp;\n    return FGetUnique(vftgTemp);\n}\n\n/***************************************************************************\n    Return the file type of the fni.\n***************************************************************************/\nFTG FNI::Ftg(void)\n{\n    AssertThis(0);\n    return _ftg;\n}\n\n/***************************************************************************\n    Return the volume kind for the given fni.\n***************************************************************************/\nulong FNI::Grfvk(void)\n{\n    AssertThis(ffniDir | ffniFile);\n    STN stn;\n    PSZ psz;\n    ulong grfvk = fvkNil;\n\n    psz = _stnFile.Psz();\n    if (_stnFile.Cch() < 3 || psz[1] != ':' || psz[2] != '\\\\' && psz[2] != '/')\n        return fvkNetwork;\n\n    stn.FFormatSz(PszLit(\"%c:\\\\\"), psz[0]);\n    switch (GetDriveType(stn.Psz()))\n    {\n    case DRIVE_FIXED:\n    case DRIVE_RAMDISK:\n        break;\n    case DRIVE_REMOVABLE:\n        grfvk |= fvkRemovable;\n        switch (stn.Psz()[0])\n        {\n        case ChLit('A'):\n        case ChLit('B'):\n        case ChLit('a'):\n        case ChLit('b'):\n            grfvk |= fvkFloppy;\n            break;\n        }\n        break;\n    case DRIVE_CDROM:\n        grfvk |= fvkRemovable | fvkCD;\n        break;\n    case DRIVE_REMOTE:\n    default:\n        // treat anything else like a network drive\n        grfvk |= fvkNetwork;\n        break;\n    }\n\n    return grfvk;\n}\n\n/***************************************************************************\n    Set the leaf to the given string and type.\n***************************************************************************/\nbool FNI::FSetLeaf(PSTN pstn, FTG ftg)\n{\n    AssertThis(ffniFile | ffniDir);\n    AssertNilOrPo(pstn, 0);\n\n    _CleanFtg(&ftg);\n    Assert(FPure(ftg == kftgDir) == FPure(pstn == pvNil || pstn->Cch() == 0), \"ftg doesn't match pstn\");\n    if (!_FChangeLeaf(pstn))\n        goto LFail;\n\n    if ((kftgDir != ftg) && (ftgNil != ftg) && !FChangeFtg(ftg))\n        goto LFail;\n\n    AssertThis(ffniFile | ffniDir);\n    return fTrue;\n\nLFail:\n    SetNil();\n    PushErc(ercFniGeneral);\n    return fFalse;\n}\n\n/******************************************************************************\n    Changes just the FTG of the FNI, leaving the file path and filename alone\n    (but does change the extension). Returns: fTrue if it succeeds\n******************************************************************************/\nbool FNI::FChangeFtg(FTG ftg)\n{\n    AssertThis(ffniFile);\n    Assert(ftg != ftgNil && ftg != kftgDir, \"Bad FTG\");\n    STN stnFtg;\n    long cchBase;\n\n    _CleanFtg(&ftg, &stnFtg);\n    if (_ftg == ftg)\n        return fTrue;\n\n    // set the extension\n    cchBase = _stnFile.Cch() - _CchExt();\n\n    // use >= to leave room for the '.'\n    if (cchBase + stnFtg.Cch() >= kcchMaxStn)\n        return fFalse;\n\n    _stnFile.Delete(cchBase);\n    _ftg = ftg;\n    if (stnFtg.Cch() > 0)\n    {\n        _stnFile.FAppendCh(ChLit('.'));\n        _stnFile.FAppendStn(&stnFtg);\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the leaf name.\n***************************************************************************/\nvoid FNI::GetLeaf(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    achar *pch;\n    PSZ psz = _stnFile.Psz();\n\n    for (pch = psz + _stnFile.Cch(); pch-- > psz && *pch != '\\\\' && *pch != '/';)\n    {\n    }\n    Assert(pch > psz, \"bad fni\");\n\n    pstn->SetSz(pch + 1);\n}\n\n/***************************************************************************\n    Get a string representing the path of the fni.\n***************************************************************************/\nvoid FNI::GetStnPath(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    *pstn = _stnFile;\n}\n\n/***************************************************************************\n    Determines if the file/directory exists.  Returns tMaybe on error or\n    if the fni type (file or dir) doesn't match the disk object of the\n    same name.\n***************************************************************************/\ntribool FNI::TExists(void)\n{\n    AssertThis(ffniFile | ffniDir);\n    STN stn;\n    PSTN pstn;\n    ulong lu;\n\n    // strip off the trailing slash (if a directory).\n    pstn = &_stnFile;\n    if (_ftg == kftgDir)\n    {\n        long cch;\n\n        stn = _stnFile;\n        pstn = &stn;\n        cch = stn.Cch();\n        Assert(cch > 0 && (stn.Psz()[cch - 1] == '\\\\' || stn.Psz()[cch - 1] == '/'), 0);\n        stn.Delete(cch - 1);\n    }\n\n    if (0xFFFFFFFF == (lu = GetFileAttributes(pstn->Psz())))\n    {\n        /* Any of these are equivalent to \"there's no file with that name\" */\n        if ((lu = GetLastError()) == ERROR_FILE_NOT_FOUND || lu == ERROR_INVALID_DRIVE)\n        {\n            return tNo;\n        }\n        PushErc(ercFniGeneral);\n        return tMaybe;\n    }\n    if ((_ftg == kftgDir) != FPure(lu & FILE_ATTRIBUTE_DIRECTORY))\n    {\n        PushErc(ercFniMismatch);\n        return tMaybe;\n    }\n    if (lu & (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM))\n    {\n        PushErc(ercFniHidden);\n        return tMaybe;\n    }\n    return tYes;\n}\n\n/***************************************************************************\n    Delete the physical file.  Should not be open.\n***************************************************************************/\nbool FNI::FDelete(void)\n{\n    AssertThis(ffniFile);\n    Assert(FIL::PfilFromFni(this) == pvNil, \"file is open\");\n\n    if (DeleteFile(_stnFile.Psz()))\n        return fTrue;\n    PushErc(ercFniDelete);\n    return fFalse;\n}\n\n/***************************************************************************\n    Renames the file indicated by this to *pfni.\n***************************************************************************/\nbool FNI::FRename(FNI *pfni)\n{\n    AssertThis(ffniFile);\n    AssertPo(pfni, ffniFile);\n\n    if (!(FILE_ATTRIBUTE_READONLY & GetFileAttributes(_stnFile.Psz())) &&\n        MoveFile(_stnFile.Psz(), pfni->_stnFile.Psz()))\n    {\n        return fTrue;\n    }\n    PushErc(ercFniRename);\n    return fFalse;\n}\n\n/***************************************************************************\n    Compare two fni's for equality.\n***************************************************************************/\nbool FNI::FEqual(FNI *pfni)\n{\n    AssertThis(ffniFile | ffniDir);\n    AssertPo(pfni, ffniFile | ffniDir);\n\n    return pfni->_stnFile.FEqualUser(&_stnFile);\n}\n\n/***************************************************************************\n    Return whether the fni refers to a directory.\n***************************************************************************/\nbool FNI::FDir(void)\n{\n    AssertThis(0);\n    return _ftg == kftgDir;\n}\n\n/***************************************************************************\n    Return whether the directory portions of the fni's are the same.\n***************************************************************************/\nbool FNI::FSameDir(FNI *pfni)\n{\n    AssertThis(ffniFile | ffniDir);\n    AssertPo(pfni, ffniFile | ffniDir);\n    FNI fni1, fni2;\n\n    fni1 = *this;\n    fni2 = *pfni;\n    fni1._FChangeLeaf(pvNil);\n    fni2._FChangeLeaf(pvNil);\n    return fni1.FEqual(&fni2);\n}\n\n/***************************************************************************\n    Determine if the directory pstn in fni exists, optionally creating it\n    and/or moving into it.  Specify ffniCreateDir to create it if it\n    doesn't exist.  Specify ffniMoveTo to make the fni refer to it.\n***************************************************************************/\nbool FNI::FDownDir(PSTN pstn, ulong grffni)\n{\n    AssertThis(ffniDir);\n    AssertPo(pstn, 0);\n\n    FNI fniT;\n\n    fniT = *this;\n    // the +1 is for the \\ character\n    if (fniT._stnFile.Cch() + pstn->Cch() + 1 > kcchMaxStn)\n    {\n        PushErc(ercFniGeneral);\n        return fFalse;\n    }\n    AssertDo(fniT._stnFile.FAppendStn(pstn), 0);\n    AssertDo(fniT._stnFile.FAppendCh(ChLit('\\\\')), 0);\n    fniT._ftg = kftgDir;\n    AssertPo(&fniT, ffniDir);\n\n    if (fniT.TExists() != tYes)\n    {\n        if (!(grffni & ffniCreateDir))\n            return fFalse;\n        // try to create it\n        if (!CreateDirectory(fniT._stnFile.Psz(), NULL))\n        {\n            PushErc(ercFniDirCreate);\n            return fFalse;\n        }\n    }\n    if (grffni & ffniMoveToDir)\n        *this = fniT;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Gets the lowest directory name (if pstn is not nil) and optionally\n    moves the fni up a level (if ffniMoveToDir is specified).\n***************************************************************************/\nbool FNI::FUpDir(PSTN pstn, ulong grffni)\n{\n    AssertThis(ffniDir);\n    AssertNilOrPo(pstn, 0);\n\n    long cch;\n    achar *pchT;\n    SZ sz;\n    STN stn;\n\n    stn = _stnFile;\n    if (!stn.FAppendSz(PszLit(\"..\")))\n        return fFalse;\n\n    if ((cch = GetFullPathName(stn.Psz(), kcchMaxSz, sz, &pchT)) == 0 || cch >= _stnFile.Cch() - 1)\n    {\n        return fFalse;\n    }\n    Assert(cch <= kcchMaxSz, 0);\n    Assert(cch < _stnFile.Cch() + 2, 0);\n    stn = sz;\n    switch (stn.Psz()[cch - 1])\n    {\n    case ChLit('\\\\'):\n    case ChLit('/'):\n        break;\n    default:\n        AssertDo(stn.FAppendCh(ChLit('\\\\')), 0);\n        cch++;\n        break;\n    }\n\n    if (pvNil != pstn)\n    {\n        // copy the tail and delete the trailing slash\n        pstn->SetSz(_stnFile.Psz() + cch);\n        pstn->Delete(pstn->Cch() - 1);\n    }\n\n    if (grffni & ffniMoveToDir)\n    {\n        _stnFile = stn;\n        AssertThis(ffniDir);\n    }\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert validity of the FNI.\n***************************************************************************/\nvoid FNI::AssertValid(ulong grffni)\n{\n    FNI_PAR::AssertValid(0);\n    AssertPo(&_stnFile, 0);\n\n    SZ szT;\n    long cch;\n    PSZ pszT;\n\n    if (grffni == 0)\n        grffni = ffniEmpty | ffniDir | ffniFile;\n\n    if (_ftg == ftgNil)\n    {\n        Assert(grffni & ffniEmpty, \"unexpected empty\");\n        Assert(_stnFile.Cch() == 0, \"named empty?\");\n        return;\n    }\n\n    if ((cch = GetFullPathName(_stnFile.Psz(), kcchMaxSz, szT, &pszT)) == 0 || cch > kcchMaxSz ||\n        !_stnFile.FEqualUserRgch(szT, CchSz(szT)))\n    {\n        Bug(\"bad fni\");\n        return;\n    }\n\n    if (_ftg == kftgDir)\n    {\n        Assert(grffni & ffniDir, \"unexpected dir\");\n        Assert(szT[cch - 1] == ChLit('\\\\') || szT[cch - 1] == ChLit('/'), \"expected trailing slash\");\n        Assert(pszT == NULL, \"unexpected filename\");\n    }\n    else\n    {\n        Assert(grffni & ffniFile, \"unexpected file\");\n        Assert(pszT >= szT && pszT < szT + cch, \"expected filename\");\n    }\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Find the length of the file extension on the fni (including the period).\n    Allow up to kcchsMaxExt characters for the extension (plus one for the\n    period).\n***************************************************************************/\nlong FNI::_CchExt(void)\n{\n    AssertBaseThis(0);\n    long cch;\n    PSZ psz = _stnFile.Psz();\n    achar *pch = psz + _stnFile.Cch() - 1;\n\n    for (cch = 1; cch <= kcchsMaxExt + 1 && pch >= psz; cch++, pch--)\n    {\n        if ((achar)(schar)*pch != *pch)\n        {\n            // not an ANSI character - so doesn't qualify for our\n            // definition of an extension\n            return 0;\n        }\n\n        switch (*pch)\n        {\n        case ChLit('.'):\n            return cch;\n        case ChLit('\\\\'):\n        case ChLit('/'):\n            return 0;\n        }\n    }\n\n    return 0;\n}\n\n/***************************************************************************\n    Set the ftg from the file name.\n***************************************************************************/\nvoid FNI::_SetFtgFromName(void)\n{\n    AssertBaseThis(0);\n    Assert(_stnFile.Cch() > 0, 0);\n    long cch, ich;\n    achar *pchLim = _stnFile.Psz() + _stnFile.Cch();\n\n    if (pchLim[-1] == ChLit('\\\\') || pchLim[-1] == ChLit('/'))\n        _ftg = kftgDir;\n    else\n    {\n        _ftg = 0;\n        cch = _CchExt() - 1;\n        AssertIn(cch, -1, kcchsMaxExt + 1);\n        pchLim -= cch;\n        for (ich = 0; ich < cch; ich++)\n            _ftg = (_ftg << 8) | (long)(byte)ChsUpper((schar)pchLim[ich]);\n    }\n    AssertThis(ffniFile | ffniDir);\n}\n\n/***************************************************************************\n    Change the leaf of the fni.\n***************************************************************************/\nbool FNI::_FChangeLeaf(PSTN pstn)\n{\n    AssertThis(ffniFile | ffniDir);\n    AssertNilOrPo(pstn, 0);\n\n    achar *pch;\n    PSZ psz;\n    long cchBase, cch;\n\n    psz = _stnFile.Psz();\n    for (pch = psz + _stnFile.Cch(); pch-- > psz && *pch != ChLit('\\\\') && *pch != ChLit('/');)\n    {\n    }\n    Assert(pch > psz, \"bad fni\");\n\n    cchBase = pch - psz + 1;\n    _stnFile.Delete(cchBase);\n    _ftg = kftgDir;\n    if (pstn != pvNil && (cch = pstn->Cch()) > 0)\n    {\n        if (cchBase + cch > kcchMaxStn)\n            return fFalse;\n        AssertDo(_stnFile.FAppendStn(pstn), 0);\n        _SetFtgFromName();\n    }\n    AssertThis(ffniFile | ffniDir);\n    return fTrue;\n}\n\n/***************************************************************************\n    Make sure the ftg is all uppercase and has no characters after a zero.\n***************************************************************************/\npriv void _CleanFtg(FTG *pftg, PSTN pstnExt)\n{\n    AssertVarMem(pftg);\n    AssertNilOrPo(pstnExt, 0);\n\n    long ichs;\n    schar chs;\n    bool fZero;\n    FTG ftgNew;\n\n    if (pvNil != pstnExt)\n        pstnExt->SetNil();\n\n    if (*pftg == kftgDir || *pftg == ftgNil)\n        return;\n\n    fZero = fFalse;\n    ftgNew = 0;\n    for (ichs = 0; ichs < kcchsMaxExt; ichs++)\n    {\n        chs = (schar)((ulong)*pftg >> (ichs * 8));\n        fZero |= (chs == 0);\n        if (!fZero)\n        {\n            chs = ChsUpper(chs);\n            ftgNew |= (long)(byte)chs << (8 * ichs);\n            if (pvNil != pstnExt)\n                pstnExt->FInsertCh(0, (achar)(byte)chs);\n        }\n    }\n\n    *pftg = ftgNew;\n}\n\n/***************************************************************************\n    Constructor for a File Name Enumerator.\n***************************************************************************/\nFNE::FNE(void)\n{\n    AssertBaseThis(0);\n    _prgftg = _rgftg;\n    _pglfes = pvNil;\n    _fesCur.hn = hBadWin;\n    _fInited = fFalse;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for an FNE.\n***************************************************************************/\nFNE::~FNE(void)\n{\n    AssertBaseThis(0);\n    _Free();\n}\n\n/***************************************************************************\n    Free all the memory associated with the FNE.\n***************************************************************************/\nvoid FNE::_Free(void)\n{\n    if (_prgftg != _rgftg)\n    {\n        FreePpv((void **)&_prgftg);\n        _prgftg = _rgftg;\n    }\n    do\n    {\n        if (hBadWin != _fesCur.hn)\n            FindClose(_fesCur.hn);\n    } while (pvNil != _pglfes && _pglfes->FPop(&_fesCur));\n    _fesCur.hn = hBadWin;\n    _fInited = fFalse;\n    ReleasePpo(&_pglfes);\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Initialize the fne to do an enumeration.\n***************************************************************************/\nbool FNE::FInit(FNI *pfniDir, FTG *prgftg, long cftg, ulong grffne)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pfniDir);\n    AssertIn(cftg, 0, kcbMax);\n    AssertPvCb(prgftg, LwMul(cftg, size(FTG)));\n    FTG *pftg;\n\n    // free the old stuff\n    _Free();\n\n    if (0 >= cftg)\n        _cftg = 0;\n    else\n    {\n        long cb = LwMul(cftg, size(FTG));\n\n        if (cftg > kcftgFneBase && !FAllocPv((void **)&_prgftg, cb, fmemNil, mprNormal))\n        {\n            _prgftg = _rgftg;\n            PushErc(ercFneGeneral);\n            AssertThis(0);\n            return fFalse;\n        }\n        CopyPb(prgftg, _prgftg, cb);\n        _cftg = cftg;\n        for (pftg = _prgftg + _cftg; pftg-- > _prgftg;)\n            _CleanFtg(pftg);\n    }\n\n    if (pfniDir == pvNil)\n    {\n        _fesCur.chVol = 'A';\n        _fesCur.grfvol = GetLogicalDrives();\n    }\n    else\n    {\n        STN stn;\n\n        _fesCur.grfvol = 0;\n        _fesCur.chVol = 0;\n        _fesCur.fni = *pfniDir;\n        stn = PszLit(\"*\");\n        if (!_fesCur.fni._FChangeLeaf(&stn))\n        {\n            PushErc(ercFneGeneral);\n            _Free();\n            AssertThis(0);\n            return fFalse;\n        }\n    }\n    _fesCur.hn = hBadWin;\n    _fRecurse = FPure(grffne & ffneRecurse);\n    _fInited = fTrue;\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the next FNI in the enumeration.\n***************************************************************************/\nbool FNE::FNextFni(FNI *pfni, ulong *pgrffneOut, ulong grffneIn)\n{\n    AssertThis(0);\n    AssertVarMem(pfni);\n    AssertNilOrVarMem(pgrffneOut);\n    STN stn;\n    bool fT;\n    long fvol;\n    long err;\n    FTG *pftg;\n\n    if (!_fInited)\n    {\n        Bug(\"must initialize the FNE before using it!\");\n        return fFalse;\n    }\n\n    if (grffneIn & ffneSkipDir)\n    {\n        // skip the rest of the stuff in this dir\n        if (!_FPop())\n            goto LDone;\n    }\n\n    if (_fesCur.chVol != 0)\n    {\n        // volume\n        for (fvol = 1L << (_fesCur.chVol - 'A'); _fesCur.chVol <= 'Z' && (_fesCur.grfvol & fvol) == 0;\n             _fesCur.chVol++, fvol <<= 1)\n        {\n        }\n\n        if (_fesCur.chVol > 'Z')\n            goto LDone;\n        // we've got one\n        stn.FFormatSz(PszLit(\"%c:\\\\\"), (long)_fesCur.chVol++);\n        AssertDo(pfni->FBuildFromPath(&stn), 0);\n        goto LGotOne;\n    }\n\n    // directory or file\n    for (;;)\n    {\n        if (hBadWin == _fesCur.hn)\n        {\n            _fesCur.hn = FindFirstFile(_fesCur.fni._stnFile.Psz(), &_fesCur.wfd);\n            if (hBadWin == _fesCur.hn)\n            {\n                err = GetLastError();\n                goto LReportError;\n            }\n        }\n        else if (!FindNextFile(_fesCur.hn, &_fesCur.wfd))\n        {\n            err = GetLastError();\n        LReportError:\n            if (err != ERROR_NO_MORE_FILES)\n                PushErc(ercFneGeneral);\n            goto LPop;\n        }\n\n        if (_fesCur.wfd.dwFileAttributes & (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM))\n            continue;\n\n        stn.SetSz(_fesCur.wfd.cFileName);\n        *pfni = _fesCur.fni;\n        if (_fesCur.wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)\n        {\n            if (stn.FEqualSz(PszLit(\".\")) || stn.FEqualSz(PszLit(\"..\")))\n                continue;\n            AssertDo(pfni->_FChangeLeaf(pvNil), 0);\n            fT = pfni->FDownDir(&stn, ffniMoveToDir);\n        }\n        else\n            fT = pfni->_FChangeLeaf(&stn);\n        if (!fT)\n        {\n            PushErc(ercFneGeneral);\n            continue;\n        }\n\n        if (_cftg == 0)\n            goto LGotOne;\n        for (pftg = _prgftg + _cftg; pftg-- > _prgftg;)\n        {\n            if (*pftg == pfni->_ftg)\n                goto LGotOne;\n        }\n    }\n    Bug(\"How did we fall through to here?\");\n\nLPop:\n    if (pvNil == _pglfes || _pglfes->IvMac() == 0)\n    {\n    LDone:\n        _Free();\n        AssertThis(0);\n        return fFalse;\n    }\n\n    // we're about to pop a directory, so send the current directory back\n    // with ffnePost\n    if (pvNil != pgrffneOut)\n        *pgrffneOut = ffnePost;\n    *pfni = _fesCur.fni;\n    AssertDo(pfni->_FChangeLeaf(pvNil), 0);\n    AssertDo(_FPop(), 0);\n    AssertPo(pfni, ffniDir);\n    AssertThis(0);\n    return fTrue;\n\nLGotOne:\n    AssertPo(pfni, ffniFile | ffniDir);\n    if (pvNil != pgrffneOut)\n        *pgrffneOut = ffnePre | ffnePost;\n\n    if (_fRecurse && pfni->_ftg == kftgDir)\n    {\n        if ((pvNil != _pglfes || pvNil != (_pglfes = GL::PglNew(size(FES), 5))) && _pglfes->FPush(&_fesCur))\n        {\n            // set up the new fes\n            _fesCur.fni = *pfni;\n            stn = PszLit(\"*\");\n            if (!_fesCur.fni._FChangeLeaf(&stn))\n            {\n                AssertDo(_pglfes->FPop(&_fesCur), 0);\n            }\n            else\n            {\n                _fesCur.hn = hBadWin;\n                _fesCur.grfvol = 0;\n                _fesCur.chVol = 0;\n                if (pvNil != pgrffneOut)\n                    *pgrffneOut = ffnePre;\n            }\n        }\n        else\n            PushErc(ercFneGeneral);\n    }\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Pop a state in the FNE.\n***************************************************************************/\nbool FNE::_FPop(void)\n{\n    AssertBaseThis(0);\n    if (hBadWin != _fesCur.hn)\n    {\n        FindClose(_fesCur.hn);\n        _fesCur.hn = hBadWin;\n    }\n    return pvNil != _pglfes && _pglfes->FPop(&_fesCur);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a FNE.\n***************************************************************************/\nvoid FNE::AssertValid(ulong grf)\n{\n    FNE_PAR::AssertValid(0);\n    if (_fInited)\n    {\n        AssertNilOrPo(_pglfes, 0);\n        AssertIn(_cftg, 0, kcbMax);\n        AssertPvCb(_prgftg, LwMul(size(FTG), _cftg));\n        Assert((_cftg <= kcftgFneBase) == (_prgftg == _rgftg), \"wrong _prgftg\");\n    }\n    else\n        Assert(_pglfes == pvNil, 0);\n}\n\n/***************************************************************************\n    Mark memory for the FNE.\n***************************************************************************/\nvoid FNE::MarkMem(void)\n{\n    AssertValid(0);\n    FNE_PAR::MarkMem();\n    if (_prgftg != _rgftg)\n        MarkPv(_prgftg);\n    MarkMemObj(_pglfes);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/frame.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Main include file for frame files.\n\n***************************************************************************/\n#ifndef FRAME_H\n#define FRAME_H\n\n#include \"frameres.h\" //frame resource id's\n#include \"util.h\"\n#include \"keys.h\"\n\nclass GPT;  // graphics port\nclass GNV;  // graphics environment\nclass CMH;  // command handler\nclass GOB;  // graphic object\nclass MUB;  // menu bar\nclass DOCB; // base document\nclass DMD;  // document mdi window\nclass DMW;  // main document window\nclass DSG;  // document scroll gob\nclass DDG;  // document display gob\nclass SNDM; // sound manager\n\ntypedef class GPT *PGPT;\ntypedef class GNV *PGNV;\ntypedef class CMH *PCMH;\ntypedef class GOB *PGOB;\ntypedef class MUB *PMUB;\ntypedef class DOCB *PDOCB;\ntypedef class DMD *PDMD;\ntypedef class DMW *PDMW;\ntypedef class DSG *PDSG;\ntypedef class DDG *PDDG;\ntypedef class SNDM *PSNDM;\n\n#include \"region.h\"\n#include \"pic.h\"\n#include \"mbmp.h\"\n#include \"gfx.h\"\n#include \"cmd.h\"\n#include \"cursor.h\"\n#include \"appb.h\"\n#include \"menu.h\"\n#include \"gob.h\"\n#include \"ctl.h\"\n#include \"sndm.h\"\n#include \"video.h\"\n\n// these are optional\n#include \"dlg.h\"\n#include \"clip.h\"\n#include \"docb.h\"\n#include \"text.h\"\n#include \"clok.h\"\n#include \"textdoc.h\"\n#include \"rtxt.h\"\n#include \"chcm.h\"\n#include \"spell.h\"\n#include \"sndam.h\"\n#include \"mididev.h\"\n#include \"mididev2.h\"\n\n#endif //! FRAME_H\n"
  },
  {
    "path": "kauai/src/frame.rc",
    "content": "//Microsoft App Studio generated resource script.\n//\n#include \"frameres.h\"\n\n#define APSTUDIO_READONLY_SYMBOLS\n/////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 2 resource.\n//\n#define APSTUDIO_HIDDEN_SYMBOLS\n#include \"windows.h\"\n#undef APSTUDIO_HIDDEN_SYMBOLS\n\n/////////////////////////////////////////////////////////////////////////////////////\n#undef APSTUDIO_READONLY_SYMBOLS\n\n#ifdef APSTUDIO_INVOKED\n//////////////////////////////////////////////////////////////////////////////\n//\n// TEXTINCLUDE\n//\n\n1 TEXTINCLUDE DISCARDABLE\nBEGIN\n    \"frameres.h\\0\"\nEND\n\n2 TEXTINCLUDE DISCARDABLE\nBEGIN\n    \"#define APSTUDIO_HIDDEN_SYMBOLS\\r\\n\"\n    \"#include \"\"windows.h\"\"\\r\\n\"\n    \"#undef APSTUDIO_HIDDEN_SYMBOLS\\r\\n\"\n    \"\\0\"\nEND\n\n3 TEXTINCLUDE DISCARDABLE\nBEGIN\n    \"\\r\\n\"\n    \"\\0\"\nEND\n\n/////////////////////////////////////////////////////////////////////////////////////\n#endif    // APSTUDIO_INVOKED\n\n\n//////////////////////////////////////////////////////////////////////////////\n//\n// Dialog\n//\n\nASSERTDLG DIALOG DISCARDABLE  50, 50, 249, 136\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Assertion Failure\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"&Ignore\",0,33,109,50,15\n    PUSHBUTTON      \"&Debugger\",1,98,109,50,15\n    PUSHBUTTON      \"&Quit\",2,163,109,50,15\n    LTEXT           \"Static\",3,10,5,227,25\n    LTEXT           \"Static\",4,10,38,227,34\n    LTEXT           \"Static\",5,10,81,227,24\nEND\n\n\n#ifndef APSTUDIO_INVOKED\n////////////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 3 resource.\n//\n\n\n/////////////////////////////////////////////////////////////////////////////////////\n#endif    // not APSTUDIO_INVOKED\n\n"
  },
  {
    "path": "kauai/src/framedef.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Frame #defines that might get used by a source file for a tool, such\n    as source files for the chunky compiler.  This file should only contain\n    #defines, and the values for the #defines should be constant values\n    (no arithmetic).\n\n***************************************************************************/\n#ifndef FRAMEDEF_H\n#define FRAMEDEF_H\n\n#ifdef MAC\n#define MacWin(mac, win) mac\n#define Mac(foo) foo\n#define Win(foo)\n#elif defined(WIN)\n#define MacWin(mac, win) win\n#define Mac(foo)\n#define Win(foo) foo\n#endif // WIN\n\n/***************************************************************************\n    Miscellaneous defines\n***************************************************************************/\n#define kdzpInch 72\n#define klwSigPackedFile 'kapa'\n#define klwSigUnpackedFile 'kaup'\n#define stidNil 0xFFFFFFFF // nil string id\n#define kdtimSecond 60\n\n/***************************************************************************\n    Compression formats.\n***************************************************************************/\n#define cfmtNil 0\n#define kcfmtKauai 'KCDC'\n#define kcfmtKauai2 'KCD2'\n\n/***************************************************************************\n    For flushing events.\n***************************************************************************/\n#define fevtNil 0x00000000\n#define fevtMouse 0x00000001\n#define fevtKey 0x00000002\n#define kgrfevtAll 0xFFFFFFFF\n\n/***************************************************************************\n    Sound manager constants.\n***************************************************************************/\n#define sclNil 0xFFFFFFFF   // nil sound class\n#define sqnNil 0xFFFFFFFF   // nil queue (for wild card)\n#define ksqnNone 0          // non-queued sound\n#define kvlmFull 0x00010000 // normal volume level\n\n/***************************************************************************\n    Cursor state constants.\n        bits 0-7 are reserved by GUI Kauai.\n        bits 8-15 are reserved by Kidspace Kauai.\n        bits 16-31 are reserved for application use.\n***************************************************************************/\n#define fcustNil 0\n#define fcustCmd 1\n#define fcustShift 2\n#define fcustOption 4\n#define kgrfcustKeys 7\n\n#define fcustMouse 8\n#define kgrfcustUser 15\n\n#define kgrfcustFrame 0x000000FF\n#define kgrfcustKid 0x0000FF00\n#define kgrfcustApp 0xFFFF0000\n\n/***************************************************************************\n    Property id's.  For APPB::FSetProp and APPB::FGetProp.\n***************************************************************************/\n#define kpridMaximized 1\n#define kpridFullScreen 2\n#define kpridToolTipDelay 3\n\n/***************************************************************************\n    Transitions that Kauai knows how to do.\n***************************************************************************/\n#define gftNil 0\n#define kgftWipe 1\n#define kgftSlide 2\n#define kgftDissolve 3\n#define kgftFade 4\n#define kgftIris 5\n\n// transition directions for Wipe and Slide\n#define kgfdLeft 0x00      // 0000\n#define kgfdRight 0x05     // 0101\n#define kgfdUp 0x0A        // 1010\n#define kgfdDown 0x0F      // 1111\n#define kgfdLeftRight 0x04 // 0100\n#define kgfdRightLeft 0x01 // 0001\n#define kgfdUpDown 0x0E    // 1110\n#define kgfdDownUp 0x0B    // 1011\n\n// transition directions for Iris\n#define kgfdOpen 0x00      // 00\n#define kgfdClose 0x03     // 11\n#define kgfdCloseOpen 0x01 // 01\n#define kgfdOpenClose 0x02 // 10\n\n/***************************************************************************\n    Standard command handler IDs.\n        GUI Kauai reserves values below 10000.\n        Kidspace Kauai reserves values below 20000.\n        Values >= 20000 can be used by the application.\n***************************************************************************/\n// The framework reserves values below khidLimFrame\n#define hidNil 0\n#define khidApp 1\n#define khidScreen 2\n#define khidMdi 3       // generic mdi windows should get this\n#define khidSizeBox 4   // all size boxes (WSBs) get this\n#define khidDialog 5    // for modal dialogs\n#define khidHScroll 6   // standard horizontal scroll bar\n#define khidVScroll 7   // standard vertical scroll bar\n#define khidDoc 8       // standard hid for a document\n#define khidDsg 9       // standard dsg (child of dmw)\n#define khidDdg 10      // standard ddg (child of dsg)\n#define khidDsspHorz 11 // standard horizontal document window split box\n#define khidDsspVert 12 // standard vertical document window split box\n#define khidDssm 13     // standard split mover\n#define khidDmw 14      // convenient for single DMW window\n#define khidDmd 15      // standard dmd\n#define khidEdit 16     // edit control\n#define khidToolTip 17  // tool tip\n\n#define khidLimFrame 10000\n\n/***************************************************************************\n    Chunky file constants.\n***************************************************************************/\n// convenient to indicate none (chunk places no restrictions on these)\n#define cnoNil 0xFFFFFFFF\n#define ctgNil 0\n#define chidNil 0xFFFFFFFF\n\n#define kctgFramework 'FRAM' // for chunky file creator\n\n#define kctgMacro 'GLCM'\n#define kctgGl 'GL  '\n#define kctgAl 'AL  '\n#define kctgGg 'GG  '\n#define kctgAg 'AG  '\n#define kctgGst 'GST '\n#define kctgAst 'AST '\n#define kctgRsc 'RSC '\n#define kctgMeta 'META'\n#define kctgMacPict 'MPIC'\n#define kctgPictNative MacWin(kctgMacPict, kctgMeta)\n#define kctgGraphic 'GRAF'\n#define kctgScript 'GLOP'\n#define kctgMask 'MASK'\n#define kctgMbmp 'MBMP'\n#define kctgMidi 'MIDS'\n#define kctgWave 'WAVE'\n#define kctgChkCmp 'CHMP'\n#define kctgColorTable 'GLCR'\n#define kctgCursor 'GGCR'\n#define kctgText 'TEXT'\n#define kctgTxtProps 'GLMP'\n#define kctgTxtPropArgs 'AGPA'\n#define kctgRichText 'RTXT'\n#define kctgScriptStrs 'GSTX'\n#define kctgStringReg 'GSTR'\n\n/***************************************************************************\n    Command IDs\n\n    Commands above 64K cannot be put on Win menus.\n\n    Commands between 40000 and 50000 should be reserved for AppStudio\n    defined values (these are defined in .h files generated by AppStudio).\n\n    Commands between 50000 and 65535 are reserved for Windows menu list\n    handling.\n\n    Commands between cidMinNoRepeat and cidLimNoRepeat will be recorded\n    only once when multiple instances of the command occur consecutively.\n\n    Commands between cidMinNoRecord and cidLimNoRecord will not be recorded\n    at all.\n***************************************************************************/\n\n// id of main key accelerator table (if one is used)\n#define acidMain 128\n\n#define cidNil 0\n\n// Windows MDI reserves ids 1-10, so start at 100\n\n// command IDs\n#define wcidMinApp 100\n#define cidNew 100\n#define cidOpen 101\n#define cidClose 102\n#define cidSave 103\n#define cidSaveAs 104\n#define cidSaveCopy 105 // save a copy of the doc\n#define cidQuit 106\n#define cidAbout 107\n#define cidNewWnd 108\n#define cidCloseWnd 109      // just the current window, not the whole doc\n#define cidChooseWnd 110     // a dynamic list\n#define cidOpenDA 111        // (Mac only) a desk accessory list\n#define cidChooseFont 112    // a font menu list\n#define cidCexStopPlay 113   // stop playing a command stream\n#define cidCexStopRec 114    // stop recording a command stream\n#define cidCexPlayDone 115   // notify the world that play stopped\n#define cidCexRecordDone 116 // notify the world that record stopped\n#define cidSaveAndClose 117\n#define cidCut 118\n#define cidCopy 119\n#define cidPaste 120\n#define cidClear 121\n#define cidShowClipboard 122\n#define cidJustifyLeft 123\n#define cidJustifyCenter 124\n#define cidJustifyRight 125\n#define cidIndentNone 126\n#define cidIndentFirst 127\n#define cidIndentRest 128\n#define cidIndentAll 129\n#define cidBold 130\n#define cidItalic 131\n#define cidUnderline 132\n#define cidUndo 133\n#define cidRedo 134\n#define cidChooseFontSize 135 // a dynamic list\n#define cidPlain 136\n#define cidChooseSubSuper 137 // a dynamic list\n#define cidPrint 138\n#define cidPrintSetup 139\n#define cidPasteSpecial 140\n\n#define wcidListBase 50000 // for windows menu list handling\n#define dwcidList 500      // increment between list base values\n#define wcidLimApp 0xF000  // windows reserves larger values\n\n/****************************************\n    non-menu, non-key invoked commands\n    These commands cannot be put on\n    menus\n****************************************/\n#define cidMinNoMenu 100000\n#define cidDoScroll 100000\n#define cidEndScroll 100001\n#define cidSplitDsg 100002\n#define cidKey 100003\n#define cidBadKey 100004\n#define cidAlarm 100005\n#define cidActivateSel 100006\n#define cidMouseDown 100007\n#define cidClicked 100008\n#define cidEndModal 100009\n\n/****************************************\n    no-repeat commands:\n    when recording, multiple (identical)\n    instances of these are recorded only\n    once.\n****************************************/\n#define cidMinNoRepeat 200000\n#define cidTrackMouse 200000\n\n#define cidLimNoRepeat 400000\n\n/****************************************\n    no-record commands:\n    when recording, don't record\n    these at all.\n****************************************/\n#define cidMinNoRecord 400000\n#define cidIdle 400000\n#define cidSelIdle 400001   // idle for settting/clearing selection.\n#define cidMouseMove 400002 // mouse moved\n#define cidRollOff 400003   // mouse rolled off the GOB\n\n#define cidLimNoRecord 600000\n\n/***************************************************************************\n    Error codes\n***************************************************************************/\n\n/****************************************\n    0 - 9999: Util-issued error codes\n****************************************/\n\n// 00000 - 00099: low-memory errors\n#define ercNil 0xFFFFFFFF\n#define ercOomHq 0\n#define ercOomPv 1\n#define ercOomNew 2\n\n// 00100 - 00199: file errors\n#define ercFileGeneral 100   // enum files and check el's\n#define ercFilePerm 101      // can't set write permissions\n#define ercFileOpen 102      // can't open a file\n#define ercFileCreate 103    // can't create a file\n#define ercFileSwapNames 104 // FSwapNames failed\n#define ercFileRename 105    // FRename failed\n#define ercStnRead 106       // reading a string failed\n\n// 00200 - 00299: fni errors\n#define ercFniGeneral 200   // couldn't build an fni\n#define ercFniDelete 201    // delete failed\n#define ercFniRename 202    // rename failed\n#define ercFniMismatch 203  // requested dir is a file or file is dir\n#define ercFniHidden 204    // requested file/dir is hidden or alias\n#define ercFniDirCreate 205 // can't create directory\n\n// 00300 - 00399: fne errors\n#define ercFneGeneral 300\n\n// 00400 - 00499: chunk errors\n#define ercCflOpen 400\n#define ercCflCreate 401\n#define ercCflSave 402\n#define ercCflSaveCopy 403\n\n// 00500 - 00599: crf errors\n#define ercCrfCantLoad 500\n\n// 00600 - 00699: sound manager\n#define ercSndmCantInit 600\n#define ercSndmPartialInit 601\n#define ercSndamWaveDeviceBusy 602\n#define ercSndMidiDeviceBusy 603\n\n/*******************************************\n    10000 - 19999: Frame-issued error codes\n*******************************************/\n\n// 10000 - 10099: gdi errors\n#define ercOomGdi 10000\n\n// 10100 - 10199: gfx errors\n#define ercGfxCantDraw 10100\n#define ercGfxCantSetFont 10101\n#define ercGfxNoFontList 10102\n#define ercGfxCantSetPalette 10103\n\n// 10200 - 10299: dlg errors\n#define ercDlgCantGetArgs 10200\n#define ercDlgCantFind 10201\n#define ercDlgOom 10202\n\n// 10300 - 10399: rtxd errors\n#define ercCantSave 10300\n#define ercRtxdTooMuchText 10301\n#define ercRtxdReadFailed 10302\n#define ercRtxdSaveFailed 10303\n\n// 11000 - 11999: misc errors\n#define ercCantOpenVideo 11000\n#define ercMbmpCantOpenBitmap 11001\n#define ercSpellNoDll 11002\n#define ercSpellNoDict 11003\n#define ercSpellNoUserDict 11004\n\n/***************************************************************************\n    Custom window messages for testing\n    WARNING: because of Chicago stupidity, these have to be less than 64K.\n    Chicago truncates to 16 bits! Long live NT!\n***************************************************************************/\n#define WM_GOB_STATE 0x00004000\n#define WM_GOB_LOCATION 0x00004001\n#define WM_GLOBAL_STATE 0x00004002\n#define WM_CURRENT_CURSOR 0x00004003\n#define WM_GET_PROP 0x00004004\n#define WM_SCALE_TIME 0x00004005\n#define WM_GOB_FROM_PT 0x00004006\n#define WM_FIRST_CHILD 0x00004007\n#define WM_NEXT_SIB 0x00004008\n#define WM_PARENT 0x00004009\n#define WM_GOB_TYPE 0x0000400A\n#define WM_IS_GOB 0x0000400B\n\n#endif //! FRAMEDEF_H\n"
  },
  {
    "path": "kauai/src/frameres.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//{{NO_DEPENDENCIES}}\n// App Studio generated include file.\n// Used by FRAME.RC\n//\n\n// Next default values for new objects\n//\n#ifdef APSTUDIO_INVOKED\n#ifndef APSTUDIO_READONLY_SYMBOLS\n\n#define _APS_NEXT_RESOURCE_VALUE 101\n#define _APS_NEXT_COMMAND_VALUE 20001\n#define _APS_NEXT_CONTROL_VALUE 1001\n#define _APS_NEXT_SYMED_VALUE 101\n#endif\n#endif\n"
  },
  {
    "path": "kauai/src/ft.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai test app\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Frame tester.\n\n***************************************************************************/\n#include \"frame.h\"\n#include \"ftres.h\"\nASSERTNAME\n\n#ifdef DEBUG\nvoid CheckForLostMem(BASE *po);\n#else //! DEBUG\n#define CheckForLostMem(po)\n#endif //! DEBUG\n\nvoid TestUtil(void);\nlong _LwSqrt(long lw);\n\n#define APP_PAR APPB\n#define kclsAPP 'APP'\nclass APP : public APP_PAR\n{\n    RTCLASS_DEC\n    CMD_MAP_DEC(APP)\n\n  protected:\n    virtual bool _FInit(ulong grfapp, ulong grfgob, long ginDef);\n\n  public:\n    virtual void GetStnAppName(PSTN pstn);\n    bool FCmdTestSuite(PCMD pcmd);\n    bool FCmdNewTestWnd(PCMD pcmd);\n    bool FCmdTextTestWnd(PCMD pcmd);\n    bool FCmdTimeTestRc(PCMD pcmd);\n    bool FCmdMacro(PCMD pcmd);\n\n    bool FCmdTestPerspective(PCMD pcmd);\n    bool FCmdTestPictures(PCMD pcmd);\n    bool FCmdTestMbmps(PCMD pcmd);\n    bool FCmdFastUpdate(PCMD pcmd);\n    bool FCmdTextEdit(PCMD pcmd);\n#ifdef WIN\n    bool FCmdTestFni(PCMD pcmd);\n#endif // WIN\n#ifdef MAC\n    bool FCmdSetScreen(PCMD pcmd);\n    bool FEnableScreen(PCMD pcmd, ulong *pgrfeds);\n#endif // MAC\n    bool FEnableMacro(PCMD pcmd, ulong *pgrfeds);\n};\n\nBEGIN_CMD_MAP(APP, APPB)\nON_CID_GEN(cidTestSuite, &APP::FCmdTestSuite, pvNil)\nON_CID_GEN(cidNewTestWnd, &APP::FCmdNewTestWnd, pvNil)\nON_CID_GEN(cidTextTestWnd, &APP::FCmdTextTestWnd, pvNil)\nON_CID_GEN(cidTimeFrameRc, &APP::FCmdTimeTestRc, pvNil)\nON_CID_GEN(cidTestPerspective, &APP::FCmdTestPerspective, pvNil)\nON_CID_GEN(cidTestPictures, &APP::FCmdTestPictures, pvNil)\nON_CID_GEN(cidTestMbmps, &APP::FCmdTestMbmps, pvNil)\nON_CID_GEN(cidTestFastUpdate, &APP::FCmdFastUpdate, pvNil)\nON_CID_GEN(cidTestTextEdit, &APP::FCmdTextEdit, pvNil)\nON_CID_GEN(cidStartRecording, &APP::FCmdMacro, &APP::FEnableMacro)\nON_CID_GEN(cidStartPlaying, &APP::FCmdMacro, &APP::FEnableMacro)\n#ifdef WIN\nON_CID_GEN(cidTestFni, &APP::FCmdTestFni, pvNil)\n#endif // WIN\n#ifdef MAC\nON_CID_GEN(cidSetColor, &APP::FCmdSetScreen, APP::FEnableScreen)\nON_CID_GEN(cidSetGrayScale, &APP::FCmdSetScreen, APP::FEnableScreen)\nON_CID_GEN(cidSetDepth1, &APP::FCmdSetScreen, APP::FEnableScreen)\nON_CID_GEN(cidSetDepth2, &APP::FCmdSetScreen, APP::FEnableScreen)\nON_CID_GEN(cidSetDepth4, &APP::FCmdSetScreen, APP::FEnableScreen)\nON_CID_GEN(cidSetDepth8, &APP::FCmdSetScreen, APP::FEnableScreen)\nON_CID_GEN(cidSetDepth16, &APP::FCmdSetScreen, APP::FEnableScreen)\nON_CID_GEN(cidSetDepth32, &APP::FCmdSetScreen, APP::FEnableScreen)\n#endif // MAC\nEND_CMD_MAP_NIL()\n\nAPP vapp;\nCLOK vclok(10000);\nRND vrnd;\n\nACR _rgacr[] = {kacrBlack,   kacrBlue,   kacrGreen, kacrCyan,  kacrRed,\n                kacrMagenta, kacrYellow, kacrWhite, kacrClear, kacrInvert};\nachar *_rgszColors[] = {PszLit(\"bla\"), PszLit(\"blu\"), PszLit(\"gre\"), PszLit(\"cya\"), PszLit(\"red\"),\n                        PszLit(\"mag\"), PszLit(\"yel\"), PszLit(\"whi\"), PszLit(\"cle\"), PszLit(\"inv\")};\nconst long _cacr = size(_rgacr) / size(_rgacr[0]);\n\nRTCLASS(APP)\n\n/***************************************************************************\n    Main for a frame app.\n***************************************************************************/\nvoid FrameMain(void)\n{\n    vapp.Run(fappNil, fgobNil, kginDefault);\n}\n\n/***************************************************************************\n    Get the name for the frame tester app.\n***************************************************************************/\nvoid APP::GetStnAppName(PSTN pstn)\n{\n    *pstn = PszLit(\"Frame Tester\");\n}\n\n/***************************************************************************\n    Initialize the app.\n***************************************************************************/\nbool APP::_FInit(ulong grfapp, ulong grfgob, long ginDef)\n{\n    if (!APP_PAR::_FInit(grfapp, grfgob, ginDef))\n        return fFalse;\n    vclok.Start(0);\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Unmarks all hqs, marks all hqs known to be in use, then asserts\n    on all unmarked hqs.\n***************************************************************************/\nvoid CheckForLostMem(BASE *po)\n{\n    UnmarkAllMem();\n    UnmarkAllObjs();\n\n    MarkMemObj(&vapp); // marks all frame-work memory\n    MarkUtilMem();     // marks all util memory\n    if (pvNil != po)\n        po->MarkMem();\n\n    AssertUnmarkedMem();\n    AssertUnmarkedObjs();\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Test the util code.\n***************************************************************************/\nbool APP::FCmdTestSuite(PCMD pcmd)\n{\n    TestUtil();\n    return fTrue;\n}\n\n// graphic pattern rectangle\n#define GPRC_PAR GOB\n#define kclsGPRC 'GPRC'\nclass GPRC : public GPRC_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n\n  private:\n    ACR _acrFore;\n    ACR _acrBack;\n    APT _apt;\n    bool _fLit;\n    bool _fTrackMouse;\n    POGN _pogn;\n\n  public:\n    GPRC(PGCB pgcb, APT *papt, ACR acrFore, ACR acrBack, bool fTrackMouse);\n    ~GPRC(void);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FCmdTrackMouse(PCMD_MOUSE pcmd);\n};\n\n// graphic fill rectangle\n#define GFRC_PAR GOB\n#define kclsGFRC 'GFRC'\nclass GFRC : public GFRC_PAR\n{\n    RTCLASS_DEC\n\n  private:\n    bool _fOval;\n    bool _fFrame;\n    ACR _acr;\n\n  public:\n    GFRC(PGCB pgcb, ACR acr, bool fOval);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual void MouseDown(long xp, long yp, long cact, ulong grfcust);\n};\n\nRTCLASS(GPRC)\nRTCLASS(GFRC)\n\n/***************************************************************************\n    Constructor for patterned rectangle.\n***************************************************************************/\nGPRC::GPRC(PGCB pgcb, APT *papt, ACR acrFore, ACR acrBack, bool fTrackMouse) : GOB(pgcb)\n{\n    _apt = *papt;\n    _acrFore = acrFore;\n    _acrBack = acrBack;\n    _fLit = fFalse;\n    _fTrackMouse = fTrackMouse;\n}\n\n/***************************************************************************\n    Destructor for the GPRC.\n***************************************************************************/\nGPRC::~GPRC(void)\n{\n    ReleasePpo(&_pogn);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Mark memory for the GPRC.\n***************************************************************************/\nvoid GPRC::MarkMem(void)\n{\n    AssertValid(0);\n    GPRC_PAR::MarkMem();\n    MarkMemObj(_pogn);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Draw the patterned rectangle.\n***************************************************************************/\nvoid GPRC::Draw(PGNV pgnv, RC *prcClip)\n{\n    RC rc;\n\n    pgnv->GetRcSrc(&rc);\n\n    if (pvNil == _pogn)\n    {\n        PT *qrgpt;\n\n        if (pvNil == (_pogn = OGN::PognNew(_fTrackMouse ? 4 : 1)))\n            return;\n\n        AssertDo(_pogn->FSetIvMac(_fTrackMouse ? 4 : 1), \"why did this fail\");\n        qrgpt = _pogn->QrgptGet();\n        if (_fTrackMouse)\n        {\n            qrgpt[0].xp = (7 * rc.xpLeft + rc.xpRight) / 8;\n            qrgpt[0].yp = (7 * rc.ypTop + rc.ypBottom) / 8;\n            qrgpt[1].xp = (rc.xpLeft + 7 * rc.xpRight) / 8;\n            qrgpt[1].yp = qrgpt[0].yp;\n            qrgpt[2].xp = qrgpt[1].xp;\n            qrgpt[2].yp = (rc.ypTop + 7 * rc.ypBottom) / 8;\n            qrgpt[3].xp = qrgpt[0].xp;\n            qrgpt[3].yp = qrgpt[2].yp;\n        }\n        else\n        {\n            qrgpt[0].xp = rc.xpLeft;\n            qrgpt[0].yp = rc.ypTop;\n        }\n    }\n\n    if (_fTrackMouse)\n    {\n        pgnv->SetPenSize(10, 10);\n        pgnv->FramePolyLineApt(_pogn, &_apt, _acrFore, _acrBack);\n    }\n    else\n    {\n        pgnv->SetPenSize(7, 10);\n        pgnv->FrameOgn(_pogn, _acrFore);\n    }\n\n    if (_fLit)\n        pgnv->FillRc(&rc, kacrInvert);\n}\n\n/***************************************************************************\n    Track mouse proc.  Makes us act like a button.\n***************************************************************************/\nbool GPRC::FCmdTrackMouse(PCMD_MOUSE pcmd)\n{\n    PT pt;\n    bool fDown, fLitNew;\n\n    pt.xp = pcmd->xp;\n    pt.yp = pcmd->yp;\n    fDown = FPure(pcmd->grfcust & fcustMouse);\n\n    if (pcmd->cid == cidMouseDown)\n    {\n        Assert(vpcex->PgobTracking() == pvNil, \"mouse already being tracked!\");\n        vpcex->TrackMouse(this);\n    }\n    else\n    {\n        Assert(vpcex->PgobTracking() == this, \"not tracking mouse!\");\n        Assert(pcmd->cid == cidTrackMouse, 0);\n    }\n\n    if (fDown)\n    {\n        // mouse is still down\n        fLitNew = FPtIn(pt.xp, pt.yp);\n        if (FPure(_fLit) != FPure(fLitNew))\n        {\n            // invert it\n            GNV gnv(this);\n            RC rc;\n\n            gnv.GetRcSrc(&rc);\n            gnv.FillRc(&rc, kacrInvert);\n            _fLit = fLitNew;\n        }\n    }\n    else\n    {\n        vpcex->EndMouseTracking();\n        if (_fLit)\n        {\n            // turn it off and push a close command\n            GNV gnv(this);\n            RC rc;\n\n            gnv.GetRcSrc(&rc);\n            gnv.FillRc(&rc, kacrInvert);\n\n            if (!_fTrackMouse)\n            {\n                PT rgpt[3];\n                POGN pogn;\n\n                rgpt[0].xp = 0;\n                rgpt[0].yp = 0;\n                rgpt[1].xp = 40;\n                rgpt[1].yp = 0;\n                rgpt[2].xp = 20;\n                rgpt[2].yp = 30;\n                if (pvNil != (pogn = _pogn->PognTraceRgpt(rgpt, 3, fognAutoClose)))\n                {\n                    ReleasePpo(&_pogn);\n                    _pogn = pogn;\n                }\n                _fLit = fFalse;\n                InvalRc(pvNil);\n            }\n            else\n                vpcex->EnqueueCid(cidCloseWnd, this);\n        }\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Constructor for filled rectangle.\n***************************************************************************/\nGFRC::GFRC(PGCB pgcb, ACR acr, bool fOval) : GOB(pgcb)\n{\n    _acr = acr;\n    _fOval = fOval;\n    _fFrame = fFalse;\n}\n\n/***************************************************************************\n    Draw the filled rectangle.\n***************************************************************************/\nvoid GFRC::Draw(PGNV pgnv, RC *prcClip)\n{\n    RC rc;\n\n    pgnv->GetRcSrc(&rc);\n    if (_fOval)\n    {\n        if (_fFrame)\n        {\n            pgnv->SetPenSize(3, 7);\n            pgnv->FrameOval(&rc, _acr);\n        }\n        else\n            pgnv->FillOval(&rc, _acr);\n    }\n    else\n        pgnv->FillRc(&rc, _acr);\n}\n\n/***************************************************************************\n    The mouse hit us - so die.\n***************************************************************************/\nvoid GFRC::MouseDown(long xp, long yp, long cact, ulong grfcust)\n{\n    if (Hid() != 99)\n    {\n        if (_fOval)\n        {\n            _fFrame = !_fFrame;\n            InvalRc(pvNil);\n        }\n        else\n            vpcex->EnqueueCid(cidCloseWnd, this);\n    }\n}\n\n// test document\n#define TDC_PAR GOB\n#define kclsTDC 'TDC'\nclass TDC : public TDC_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    virtual void _NewRc(void);\n\n  public:\n    TDC(PGCB pgcb) : GOB(pgcb)\n    {\n        _NewRc();\n    }\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n};\n\nRTCLASS(TDC)\n\n/***************************************************************************\n    _NewRc (from GOB) of TDC.\n***************************************************************************/\nvoid TDC::_NewRc(void)\n{\n    // set the scroll bar ranges and values\n    PSCB pscb;\n    long dxp, dyp;\n    RC rc, rcPar;\n\n    PgobPar()->GetRc(&rcPar, cooLocal);\n    GetRc(&rc, cooParent);\n\n    dxp = LwMax(0, LwMin(-rc.xpLeft, rcPar.xpRight - rc.xpRight));\n    dyp = LwMax(0, LwMin(-rc.ypTop, rcPar.ypBottom - rc.ypBottom));\n    if (dxp > 0 || dyp > 0)\n    {\n        rc.Offset(dxp, dyp);\n        SetPos(&rc, pvNil);\n        // we'll be getting another _NewRc to set the scroll bars by\n        return;\n    }\n\n    if ((pscb = (PSCB)PgobFromHidScr(khidHScroll)) != pvNil)\n        pscb->SetValMinMax(-rc.xpLeft, 0, LwMax(0, rc.Dxp() - rcPar.Dxp()));\n    if ((pscb = (PSCB)PgobFromHidScr(khidVScroll)) != pvNil)\n        pscb->SetValMinMax(-rc.ypTop, 0, LwMax(0, rc.Dyp() - rcPar.Dyp()));\n}\n\n/***************************************************************************\n    Draw routine for the TDC.\n***************************************************************************/\nvoid TDC::Draw(PGNV pgnv, RC *prcClip)\n{\n    RC rc;\n\n    GetRc(&rc, cooLocal);\n    pgnv->FillRc(&rc, kacrRed);\n}\n\n// graphic test doc window\n#define DWN_PAR GOB\n#define kclsDWN 'DWN'\nclass DWN : public DWN_PAR\n{\n    RTCLASS_DEC\n    CMD_MAP_DEC(DWN)\n\n  protected:\n    static long _cdwn;\n\n    DWN(PGCB pgcb) : GOB(pgcb)\n    {\n    }\n\n  public:\n    static DWN *PdwnNew(void);\n\n    virtual bool FCmdScroll(PCMD pcmd);\n};\n\nBEGIN_CMD_MAP(DWN, GOB)\nON_CID_ME(cidDoScroll, &DWN::FCmdScroll, pvNil)\nON_CID_ME(cidEndScroll, &DWN::FCmdScroll, pvNil)\nEND_CMD_MAP_NIL()\n\nlong DWN::_cdwn = 0;\n\nRTCLASS(DWN)\n\n/***************************************************************************\n    Create a new dwn.\n***************************************************************************/\nDWN *DWN::PdwnNew(void)\n{\n    DWN *pdwn;\n    PGOB pgob;\n    STN stn;\n\n    GCB gcb(khidMdi, GOB::PgobScreen());\n    if ((pdwn = NewObj DWN(&gcb)) == pvNil)\n        return pvNil;\n\n    stn.FFormatSz(PszLit(\"Graphics Test #%d\"), ++_cdwn);\n    if (!pdwn->FCreateAndAttachMdi(&stn))\n    {\n        ReleasePpo(&pdwn);\n        return pvNil;\n    }\n\n    RC rcRel;\n    RC rcAbs;\n    APT apt = {0xFF, 0x01, 0x7D, 0x45, 0x5D, 0x41, 0x7F, 0x00};\n\n    // add a size box and some scroll bar\n    WSB::PwsbNew(pdwn, fgobNil);\n    gcb.Set(khidVScroll, pdwn);\n    SCB::PscbNew(&gcb, fscbVert | fscbStandardRc);\n    gcb.Set(khidHScroll, pdwn);\n    SCB::PscbNew(&gcb, fscbHorz | fscbStandardRc);\n\n    // create a content gob\n    gcb.Set(98, pdwn);\n    SCB::GetClientRc(fscbVert | fscbHorz, &gcb._rcAbs, &gcb._rcRel);\n    pgob = NewObj GOB(&gcb);\n\n    if (pgob == pvNil)\n        return pdwn;\n\n    // create the test document gob\n    gcb.Set(99, pgob);\n    gcb._rcRel.xpLeft = gcb._rcRel.ypTop = krelZero;\n    gcb._rcRel.xpRight = gcb._rcRel.ypBottom = krelZero;\n    gcb._rcAbs.xpLeft = gcb._rcAbs.ypTop = 0;\n    gcb._rcAbs.xpRight = 1000;\n    gcb._rcAbs.ypBottom = 1000;\n    pgob = NewObj TDC(&gcb);\n\n    if (pgob == pvNil)\n        return pdwn;\n\n    gcb.Set(100, pgob);\n    gcb._rcRel.xpLeft = gcb._rcRel.ypTop = krelZero;\n    gcb._rcRel.xpRight = krelOne / 4;\n    gcb._rcRel.ypBottom = krelOne / 4;\n    gcb._rcRel.Inset(krelOne / 20, krelOne / 20);\n    NewObj GFRC(&gcb, kacrInvert, fFalse);\n\n    gcb._hid = 100;\n    gcb._rcRel.Offset(krelOne / 4, 0);\n    NewObj GFRC(&gcb, kacrClear, fFalse);\n    gcb._hid = 102;\n    gcb._rcRel.Offset(krelOne / 4, 0);\n    NewObj GFRC(&gcb, kacrBlue, fTrue);\n    gcb._hid = 103;\n    gcb._rcRel.Offset(krelOne / 4, 0);\n    NewObj GFRC(&gcb, kacrGreen, fTrue);\n\n    gcb._hid = 200;\n    gcb._rcRel.Offset(-3 * krelOne / 4, krelOne / 4);\n    NewObj GPRC(&gcb, &apt, kacrBlue, kacrGreen, fTrue);\n    gcb._hid = 201;\n    gcb._rcRel.Offset(krelOne / 4, 0);\n    NewObj GPRC(&gcb, &apt, kacrBlue, kacrClear, fTrue);\n    gcb._hid = 202;\n    gcb._rcRel.Offset(krelOne / 4, 0);\n    NewObj GPRC(&gcb, &apt, kacrBlue, kacrInvert, fTrue);\n    gcb._hid = 203;\n    gcb._rcRel.Offset(krelOne / 4, 0);\n    NewObj GPRC(&gcb, &apt, kacrClear, kacrInvert, fTrue);\n\n    gcb._hid = 300;\n    gcb._rcRel.Offset(-3 * krelOne / 4, krelOne / 4);\n    NewObj GPRC(&gcb, &apt, kacrBlue, kacrGreen, fFalse);\n    gcb._hid = 301;\n    gcb._rcRel.Offset(krelOne / 4, 0);\n    NewObj GPRC(&gcb, &apt, kacrClear, kacrGreen, fFalse);\n    gcb._hid = 302;\n    gcb._rcRel.Offset(krelOne / 4, 0);\n    NewObj GPRC(&gcb, &apt, kacrInvert, kacrGreen, fFalse);\n    gcb._hid = 303;\n    gcb._rcRel.Offset(krelOne / 4, 0);\n    NewObj GPRC(&gcb, &apt, kacrInvert, kacrClear, fFalse);\n\n    return pdwn;\n}\n\n/***************************************************************************\n    Handles scrolling.\n***************************************************************************/\nbool DWN::FCmdScroll(PCMD pcmd)\n{\n    long hid, val, dval;\n    PSCB pscb;\n    PGOB pgob;\n    RC rc;\n\n    hid = pcmd->rglw[0];\n    pscb = (PSCB)PgobFromHid(hid);\n    if (pscb == pvNil)\n        return fTrue;\n\n    switch (pcmd->cid)\n    {\n    case cidDoScroll:\n        switch (pcmd->rglw[1])\n        {\n        case scaLineUp:\n            dval = -10;\n            break;\n        case scaPageUp:\n            dval = -100;\n            break;\n        case scaLineDown:\n            dval = 10;\n            break;\n        case scaPageDown:\n            dval = 100;\n            break;\n        default:\n            dval = 0;\n            break;\n        }\n        val = pscb->Val() + dval;\n        break;\n\n    case cidEndScroll:\n        val = pcmd->rglw[1];\n        break;\n    }\n    // pin the new value to the max and min\n    val = LwMin(pscb->ValMax(), LwMax(pscb->ValMin(), val));\n\n    if (val != pscb->Val() && (pgob = PgobFromHid(99)) != pvNil)\n    {\n        pgob->GetRc(&rc, cooParent);\n        if (hid == khidHScroll)\n            rc.Offset(-rc.xpLeft - val, 0);\n        else\n            rc.Offset(0, -rc.ypTop - val);\n        pgob->SetPos(&rc, pvNil);\n        pscb->SetVal(val);\n        pgob->GetRc(&rc, cooGpt);\n        pgob->DrawTree(pvNil, &rc, pvNil, fgobUseVis);\n        pgob->ValidRc(pvNil);\n    }\n    return fTrue;\n}\n\n// text test window\n#define TTW_PAR DWN\n#define kclsTTW 'TTW'\nclass TTW : public TTW_PAR\n{\n    RTCLASS_DEC\n\n  private:\n    long _cact;\n\n  public:\n    TTW(PGCB pgcb) : DWN(pgcb)\n    {\n    }\n    static TTW *PttwNew(void);\n    virtual void MouseDown(long xp, long yp, long cact, ulong grfcust);\n    void Draw(PGNV pgnv, RC *prcClip);\n};\n\nRTCLASS(TTW)\n\n/***************************************************************************\n    Create a new ttw.\n***************************************************************************/\nTTW *TTW::PttwNew(void)\n{\n    TTW *pttw;\n    STN stn;\n    RC rc;\n    PEDPL pedpl;\n    GCB gcb(khidMdi, GOB::PgobScreen());\n\n    if ((pttw = NewObj TTW(&gcb)) == pvNil)\n        return pvNil;\n\n    stn.FFormatSz(PszLit(\"Text Test #%d\"), ++_cdwn);\n    if (!pttw->FCreateAndAttachMdi(&stn))\n    {\n        ReleasePpo(&pttw);\n        return pvNil;\n    }\n\n    rc.xpLeft = 5;\n    rc.xpRight = 305;\n    rc.ypTop = 0;\n    rc.ypBottom = 100;\n    rc.Offset(5, 0);\n    EDPAR edpar(khidEdit, pttw, fgobNil, kginDefault, &rc, pvNil, vntl.OnnSystem(), fontNil, 12, tahLeft, tavTop,\n                kacrBlue, kacrYellow);\n    pedpl = EDMW::PedmwNew(&edpar);\n    if (pvNil != pedpl)\n        pedpl->Activate(fTrue);\n\n    return pttw;\n}\n\nvoid TTW::Draw(PGNV pgnv, RC *prcClip)\n{\n    RC rc;\n    long dxp, dyp, idxp, idyp;\n    long irc;\n    const long cdxp = 8;\n    const long cdyp = 10;\n    struct TNM // Text alignment NaMe\n    {\n        long lw;\n        achar ch;\n    };\n    static TNM _rgtnmVert[] = {{tavTop, 'T'}, {tavCenter, 'C'}, {tavBaseline, 'S'}, {tavBottom, 'B'}};\n    static TNM _rgtnmHorz[] = {{tahLeft, 'L'}, {tahCenter, 'C'}, {tahRight, 'R'}};\n    static APT _apt = {0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F};\n\n    pgnv->GetRcSrc(&rc);\n    pgnv->FillRc(&rc, kacrWhite);\n    rc.ypTop += 30;\n    pgnv->FillRcApt(&rc, &_apt, kacrRed, kacrBlue);\n    dxp = rc.Dxp() / cdxp;\n    dyp = rc.Dyp() / cdyp;\n    pgnv->SetFont(_cact % vntl.OnnMac(), fontNil, LwMin(10, dyp / 2));\n    pgnv->SetPenSize(1, 5);\n    irc = 0;\n    for (idyp = 0; idyp < cdyp; idyp++)\n    {\n        for (idxp = 0; idxp < cdxp; idxp++)\n        {\n            STN stn;\n            RC rc;\n            long itnm;\n            long tah, tav;\n            achar chH, chV;\n\n            rc.xpLeft = idxp * dxp;\n            rc.ypTop = 30 + idyp * dyp;\n            rc.xpRight = rc.xpLeft + dxp;\n            rc.ypBottom = rc.ypTop + dyp;\n            pgnv->ClipRc(&rc);\n            pgnv->FrameRc(&rc, ACR(byte(3 * irc)));\n            itnm = irc % CvFromRgv(_rgtnmHorz);\n            chH = _rgtnmHorz[itnm].ch;\n            tah = _rgtnmHorz[itnm].lw;\n            itnm = (irc / CvFromRgv(_rgtnmHorz)) % CvFromRgv(_rgtnmVert);\n            chV = _rgtnmVert[itnm].ch;\n            tav = _rgtnmVert[itnm].lw;\n            stn.FFormatSz(PszLit(\"(%z:%z, %c:%c)\"), _rgszColors[idxp], _rgszColors[idyp], chH, chV);\n            pgnv->ClipRc(&rc);\n            rc.Inset(1, 5);\n            pgnv->SetFontAlign(tah, tav);\n            pgnv->DrawStn(&stn, rc.XpCenter(), rc.YpCenter(), _rgacr[idxp], _rgacr[idyp]);\n            irc++;\n        }\n    }\n    pgnv->ClipRc(pvNil);\n}\n\nvoid TTW::MouseDown(long xp, long yp, long cact, ulong grfcust)\n{\n    RC rc;\n    GNV gnv(this);\n\n    _cact++;\n    GetRc(&rc, cooLocal);\n    Draw(&gnv, &rc);\n}\n\n// Frame rectangle test window\n#define RTW_PAR DWN\n#define kclsRTW 'RTW'\nclass RTW : public RTW_PAR\n{\n    RTCLASS_DEC\n\n  private:\n    long _cact;\n\n  public:\n    RTW(PGCB pgcb) : DWN(pgcb)\n    {\n        _cact = 0;\n    }\n    virtual void MouseDown(long xp, long yp, long cact, ulong grfcust);\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    static RTW *PrtwNew(void);\n};\n\nRTCLASS(RTW)\n\n/***************************************************************************\n    Create a new rtw.\n***************************************************************************/\nRTW *RTW::PrtwNew(void)\n{\n    RTW *prtw;\n    STN stn;\n    GCB gcb(khidMdi, GOB::PgobScreen());\n\n    if (pvNil == (prtw = NewObj RTW(&gcb)))\n        return pvNil;\n\n    stn.FFormatSz(PszLit(\"Frame rectangle test #%d\"), ++_cdwn);\n    if (!prtw->FCreateAndAttachMdi(&stn))\n    {\n        ReleasePpo(&prtw);\n        return pvNil;\n    }\n\n    return prtw;\n}\n\nclass DOC : public DOCB\n{\n  public:\n    DOC(void) : DOCB(pvNil, fdocNil)\n    {\n    }\n};\n\n/******************************************************************************\n    Test the gob code\n******************************************************************************/\nbool APP::FCmdNewTestWnd(PCMD pcmd)\n{\n    long idit;\n    long lw;\n\n    if (pcmd->pgg == pvNil)\n    {\n        // put up the dialog\n        PDLG pdlg;\n\n        pdlg = DLG::PdlgNew(200);\n        pcmd->pgg = pdlg;\n        if (pdlg == pvNil)\n            goto LFail;\n        idit = pdlg->IditDo();\n        if (idit != 0)\n            goto LFail;\n    }\n\n    pcmd->pgg->GetRgb(2, 0, size(long), &lw);\n    switch (lw)\n    {\n    case 0: // new graphics window\n        if (pvNil == DWN::PdwnNew())\n            goto LFail;\n        break;\n\n    case 1: // new text window\n        if (pvNil == TTW::PttwNew())\n            goto LFail;\n        break;\n\n    case 2: // new DMD\n        PDOCB pdocb;\n\n        if (pvNil == (pdocb = NewObj DOC()))\n            goto LFail;\n        if (pvNil == pdocb->PdmdNew())\n        {\n            ReleasePpo(&pdocb);\n            goto LFail;\n        }\n        ReleasePpo(&pdocb);\n        break;\n    }\n    return fTrue;\n\nLFail:\n    pcmd->cid = cidNil; // don't record\n    return fTrue;\n}\n\n/******************************************************************************\n    Test the gob code\n******************************************************************************/\nbool APP::FCmdTextTestWnd(PCMD pcmd)\n{\n    TTW::PttwNew();\n    return fTrue;\n}\n\n/******************************************************************************\n    Test rectangle framing speed.\n******************************************************************************/\nbool APP::FCmdTimeTestRc(PCMD pcmd)\n{\n    RTW::PrtwNew();\n    return fTrue;\n}\n\n/******************************************************************************\n    Perform the test.\n******************************************************************************/\nvoid RTW::MouseDown(long xp, long yp, long cact, ulong grfcust)\n{\n    GNV gnv(this);\n    long iact;\n    RC rc;\n    PT *qrgpt;\n    POGN pogn;\n    long xp1, xp2, xp3, yp1, yp2, yp3;\n    APT apt = {0xFF, 0x01, 0x7D, 0x45, 0x5D, 0x41, 0x7F, 0x00};\n    ulong ts;\n    STN stn;\n\n    if (pvNil == (pogn = OGN::PognNew(8)))\n        return;\n\n    gnv.GetRcSrc(&rc);\n    xp1 = (9 * rc.xpLeft + rc.xpRight) / 10;\n    yp1 = (9 * rc.ypTop + rc.ypBottom) / 10;\n    xp2 = rc.XpCenter();\n    yp2 = rc.YpCenter();\n    xp3 = (rc.xpLeft + 9 * rc.xpRight) / 10;\n    yp3 = (rc.ypTop + 9 * rc.ypBottom) / 10;\n    AssertDo(pogn->FSetIvMac(8), \"why did this fail\");\n    qrgpt = pogn->QrgptGet();\n    qrgpt[0].xp = xp1;\n    qrgpt[0].yp = yp1;\n    qrgpt[1].xp = xp2;\n    qrgpt[1].yp = yp2;\n    qrgpt[2].xp = xp3;\n    qrgpt[2].yp = yp1;\n    qrgpt[3].xp = xp2;\n    qrgpt[3].yp = yp2;\n    qrgpt[4].xp = xp3;\n    qrgpt[4].yp = yp3;\n    qrgpt[5].xp = xp2;\n    qrgpt[5].yp = yp2;\n    qrgpt[6].xp = xp1;\n    qrgpt[6].yp = yp3;\n    qrgpt[7].xp = xp2;\n    qrgpt[7].yp = yp2;\n    gnv.SetPenSize(10, 20);\n\n    ts = TsCurrent();\n    for (iact = 0; iact < 100; iact++)\n    {\n        ACR acrFore = _rgacr[iact % 10];\n        ACR acrBack = _rgacr[(iact / 10) % 10];\n\n        switch (_cact % 3)\n        {\n        default:\n            break;\n\n        case 0:\n            gnv.FrameRcApt(&rc, &apt, acrFore, acrBack);\n            break;\n\n        case 1:\n            gnv.FrameOgnApt(pogn, &apt, acrFore, acrBack);\n            break;\n\n        case 2:\n            gnv.LineApt(xp1, yp1, xp3, yp3, &apt, acrFore, acrBack);\n            break;\n        }\n    }\n\n    stn.FFormatSz(PszLit(\"elapsed time: %u\"), TsCurrent() - ts);\n    vpappb->TGiveAlertSz(stn.Psz(), bkOk, cokInformation);\n\n    ReleasePpo(&pogn);\n    _cact++;\n    gnv.GetRcSrc(&rc);\n    Draw(&gnv, &rc);\n}\n\n/******************************************************************************\n    Paint the RTW GOB.\n******************************************************************************/\nvoid RTW::Draw(PGNV pgnv, RC *prcClip)\n{\n    STN stn;\n    STN rgstn[] = {PszLit(\"frame rectangle \"), PszLit(\"frame polygon \"), PszLit(\"line draw \")};\n    RC rc;\n\n    stn.FFormatSz(PszLit(\"Click to begin the %s test\"), &rgstn[_cact % 3]);\n    pgnv->GetRcSrc(&rc);\n    pgnv->FillRc(&rc, kacrWhite);\n    pgnv->SetFontAlign(tahCenter, tavCenter);\n    pgnv->DrawStn(&stn, rc.XpCenter(), rc.YpCenter(), kacrBlack, kacrClear);\n}\n\nlong _LwSqrt(long lw)\n{\n    ushort wHi, wLo, wMid;\n    long lwT;\n\n    AssertVar(lw >= 0, \"sqrt of negative\", &lw);\n    for (lwT = wHi = 1; lwT < lw;)\n    {\n        lwT <<= 2;\n        wHi <<= 1;\n    }\n    if (lwT == lw)\n        return wHi;\n\n    wLo = wHi >> 1;\n\n    /* wLo^2 < lw <= wHi^2 */\n    while (wLo < wHi)\n    {\n        wMid = (wLo + wHi) >> 1;\n        lwT = (long)wMid * wMid;\n\n        if (lwT < lw)\n            wLo = wMid + 1;\n        else if (lwT > lw)\n            wHi = wMid;\n        else\n            return wMid;\n    }\n\n    wLo = wHi - 1;\n    Assert((long)wHi * wHi > lw && (long)wLo * wLo <= lw, \"bad logic\");\n\n    return (long)(((long)wHi * wHi - lw < lw - (long)wLo * wLo) ? wHi : wLo);\n}\n\n/***************************************************************************\n    Command function to handle macro recording and playback.\n***************************************************************************/\nbool APP::FCmdMacro(PCMD pcmd)\n{\n    FNI fni;\n    PCFL pcfl;\n\n    // make sure we're not already recording or playing a macro.\n    if (vpcex->FRecording() || vpcex->FPlaying())\n        return fTrue;\n\n    if (pcmd->cid == cidStartRecording)\n    {\n        if (!FGetFniSaveMacro(&fni, 'TEXT', \"\\pSave As: \", \"\\pMacro\", PszLit(\"All files\\0*.*\\0\"), vwig.hwndApp))\n        {\n            return fTrue;\n        }\n        if ((pcfl = CFL::PcflCreate(&fni, fcflTemp)) == pvNil)\n            return fTrue;\n        vpcex->Record(pcfl);\n        ReleasePpo(&pcfl);\n    }\n    else\n    {\n        if (!FGetFniOpenMacro(&fni, pvNil, 0, PszLit(\"All files\\0*.*\\0\"), vwig.hwndApp))\n        {\n            return fTrue;\n        }\n\n        AssertDo(fni.TExists() == tYes, 0);\n        if ((pcfl = CFL::PcflOpen(&fni, fcflNil)) == pvNil)\n            return fTrue;\n        vpcex->Play(pcfl, 0);\n        ReleasePpo(&pcfl);\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Handles enabling of macro recording and playback commands.\n***************************************************************************/\nbool APP::FEnableMacro(PCMD pcmd, ulong *pgrfeds)\n{\n    if (vpcex->FRecording() || vpcex->FPlaying())\n        *pgrfeds = fedsDisable;\n    else\n        *pgrfeds = fedsEnable;\n    return fTrue;\n}\n\n#ifdef WIN\n/******************************************************************************\n    Test windows fni code to build an fni from a path\n******************************************************************************/\nbool APP::FCmdTestFni(PCMD pcmd)\n{\n    long idit;\n    STN stn, stnT;\n    FNI fni;\n    PDLG pdlg;\n\n    // put up the dialog\n    pdlg = DLG::PdlgNew(201);\n    if (pdlg == pvNil)\n        goto LFail;\n    idit = pdlg->IditDo();\n    if (idit != 0)\n        goto LFail;\n\n    pdlg->GetStn(2, &stn);\n    ReleasePpo(&pdlg);\n    fni.FBuildFromPath(&stn);\n\n    fni.GetStnPath(&stnT);\n    MessageBox((HWND)NULL, stnT.Psz(), stn.Psz(), MB_OK);\n\nLFail:\n    pcmd->cid = cidNil; // don't record\n    return fTrue;\n}\n#endif // WIN\n\n// point in R3\nstruct PTT\n{\n    long xt, yt, zt;\n};\n\n// world of perspective\nstruct WOP\n{\n    PTT pttEye;\n    long ztScreen;\n    long ztMax;\n\n    PT PtMap(long xt, long yt, long zt);\n    // PTT PttUnmap(long xp, long yp, long yt);\n};\n\n/***************************************************************************\n    Map an R3 point to a screen point.\n***************************************************************************/\nPT WOP::PtMap(long xt, long yt, long zt)\n{\n    PT pt;\n    pt.xp = pttEye.xt + LwMulDiv(xt - pttEye.xt, ztScreen - pttEye.zt, zt - pttEye.zt);\n    pt.yp = pttEye.yt + LwMulDiv(yt - pttEye.yt, ztScreen - pttEye.zt, zt - pttEye.zt);\n    return pt;\n}\n\n#ifdef FUTURE\n/***************************************************************************\n    Map a screen point to an R3 point.  yt stays fixed.\n***************************************************************************/\nPTT WOP::PttUnmap(long xp, long yp, long yt)\n{\n    PTT ptt;\n    long ypBound;\n\n    if (((yp - pttEye.yt) > 0) != ((yt - pttEye.yt) > 0))\n        yp = pttEye.yt;\n    ypBound\n}\n#endif // FUTURE\n\n// perspective doc\nclass DOCP : public DOCB\n{\n  public:\n    WOP _wop;\n    PTT _pttSquare;\n    long _dxt, _dyt;\n\n    DOCP(void);\n\n    virtual PDDG PddgNew(PGCB pgcb);\n    void GetRcPic(RC *prc);\n};\n\n// ddg for a docp\nclass DDP : public DDG\n{\n  protected:\n    DDP(DOCP *pdocp, PGCB pgcb);\n\n  public:\n    static DDP *PddpNew(DOCP *pdocp, PGCB pgcb);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual void MouseDown(long xp, long yp, long cact, ulong grfcust);\n\n    void DrawRc(PGNV pgnv);\n    void DrawNumbers(PGNV pgnv);\n};\n\n/***************************************************************************\n    Constructor for a perspective doc.\n***************************************************************************/\nDOCP::DOCP(void)\n{\n    _wop.ztScreen = 0;\n    _wop.pttEye.zt = -500;\n    _wop.pttEye.xt = 320;\n    _wop.pttEye.yt = 240;\n    _wop.ztMax = 10000;\n\n    _pttSquare.xt = 320;\n    _pttSquare.yt = 480;\n    _pttSquare.zt = 20;\n    _dxt = 50;\n    _dyt = 50;\n}\n\n/***************************************************************************\n    Create a new pane for a perspective doc.\n***************************************************************************/\nPDDG DOCP::PddgNew(PGCB pgcb)\n{\n    return DDP::PddpNew(this, pgcb);\n}\n\n/***************************************************************************\n    Get the on screen rectangle for the perspective doc.\n***************************************************************************/\nvoid DOCP::GetRcPic(RC *prc)\n{\n    PT pt;\n\n    pt = _wop.PtMap(_pttSquare.xt, _pttSquare.yt, _pttSquare.zt);\n    prc->xpLeft = pt.xp;\n    prc->ypBottom = pt.yp;\n    pt = _wop.PtMap(_pttSquare.xt + _dxt, _pttSquare.yt - _dyt, _pttSquare.zt);\n    prc->xpRight = pt.xp;\n    prc->ypTop = pt.yp;\n}\n\n/***************************************************************************\n    Constructor for a perspective doc pane.\n***************************************************************************/\nDDP::DDP(DOCP *pdocp, PGCB pgcb) : DDG(pdocp, pgcb)\n{\n}\n\n/***************************************************************************\n    Static method to create a new DDP.\n***************************************************************************/\nDDP *DDP::PddpNew(DOCP *pdocp, PGCB pgcb)\n{\n    DDP *pddp;\n\n    if (pvNil == (pddp = NewObj DDP(pdocp, pgcb)))\n        return pvNil;\n\n    if (!pddp->_FInit())\n    {\n        ReleasePpo(&pddp);\n        return pvNil;\n    }\n    pddp->Activate(fTrue);\n\n    AssertPo(pddp, 0);\n    return pddp;\n}\n\n/***************************************************************************\n    Draws the perspective doc.\n***************************************************************************/\nvoid DDP::Draw(PGNV pgnv, RC *prcClip)\n{\n    DOCP *pdocp = (DOCP *)_pdocb;\n    RC rc, rcT;\n\n    pgnv->ClipRc(prcClip);\n    pgnv->FillRc(prcClip, kacrWhite);\n\n    // draw the vanishing point in red\n    rc.Set(pdocp->_wop.pttEye.xt - 3, pdocp->_wop.pttEye.yt - 3, pdocp->_wop.pttEye.xt + 4, pdocp->_wop.pttEye.yt + 4);\n    if (rcT.FIntersect(&rc, prcClip))\n    {\n        rcT = rc;\n        rcT.Inset(3, 0);\n        pgnv->FillRc(&rcT, kacrRed);\n        rc.Inset(0, 3);\n        pgnv->FillRc(&rc, kacrRed);\n    }\n\n    // draw the square\n    DrawRc(pgnv);\n    DrawNumbers(pgnv);\n}\n\n/***************************************************************************\n    Draw the square and it's coordinates.\n***************************************************************************/\nvoid DDP::DrawRc(PGNV pgnv)\n{\n    DOCP *pdocp = (DOCP *)_pdocb;\n    RC rc;\n\n    pdocp->GetRcPic(&rc);\n    pgnv->FillRc(&rc, kacrBlue);\n}\n\n/***************************************************************************\n    Draw the coordinates in the GNV.\n***************************************************************************/\nvoid DDP::DrawNumbers(PGNV pgnv)\n{\n    DOCP *pdocp = (DOCP *)_pdocb;\n    STN stn;\n\n    stn.FFormatSz(PszLit(\"coords: (%d, %d, %d)        \"), pdocp->_pttSquare.xt, pdocp->_pttSquare.yt,\n                  pdocp->_pttSquare.zt);\n    pgnv->DrawStn(&stn, 0, 0, kacrBlack, kacrWhite);\n}\n\n/***************************************************************************\n    Track the mouse and drag the square.\n***************************************************************************/\nvoid DDP::MouseDown(long xp, long yp, long cact, ulong grfcust)\n{\n    DOCP *pdocp = (DOCP *)_pdocb;\n    PT pt(xp, yp);\n    PT ptPrev = pt;\n    PT dpt;\n    RC rc;\n    bool fDown = fTrue;\n\n    for (; fDown; GetPtMouse(&pt, &fDown))\n    {\n        dpt = pt - ptPrev;\n        if (grfcust & fcustShift)\n        {\n            // x - z\n            dpt.yp = pdocp->_pttSquare.zt -\n                     LwBound(pdocp->_pttSquare.zt - dpt.yp, pdocp->_wop.pttEye.zt / 2, pdocp->_wop.ztMax);\n        }\n        else if (grfcust & fcustCmd)\n        {\n            // y - z\n            dpt.xp = LwBound(pdocp->_pttSquare.zt + dpt.xp, pdocp->_wop.pttEye.zt / 2, pdocp->_wop.ztMax) -\n                     pdocp->_pttSquare.zt;\n        }\n        if (dpt.xp != 0 || dpt.yp != 0)\n        {\n            pdocp->GetRcPic(&rc);\n            vpappb->MarkRc(&rc, this);\n            if (grfcust & fcustShift)\n            {\n                // x - z\n                pdocp->_pttSquare.xt += dpt.xp;\n                pdocp->_pttSquare.zt -= dpt.yp;\n            }\n            else if (grfcust & fcustCmd)\n            {\n                // y - z\n                pdocp->_pttSquare.zt += dpt.xp;\n                pdocp->_pttSquare.yt += dpt.yp;\n            }\n            else\n            {\n                // x - y\n                pdocp->_pttSquare.xt += dpt.xp;\n                pdocp->_pttSquare.yt += dpt.yp;\n            }\n            pdocp->GetRcPic(&rc);\n            vpappb->MarkRc(&rc, this);\n            rc.Set(0, 0, 20, 200);\n            vpappb->MarkRc(&rc, this);\n            vpappb->UpdateMarked();\n        }\n        ptPrev = pt;\n    }\n}\n\n/***************************************************************************\n    Create a new perspective doc and window.\n***************************************************************************/\nbool APP::FCmdTestPerspective(PCMD pcmd)\n{\n    DOCP *pdocp;\n\n    if (pvNil != (pdocp = NewObj DOCP()))\n    {\n        pdocp->PdmdNew();\n        ReleasePpo(&pdocp);\n    }\n    return fTrue;\n}\n\n// picture document\n#define DOCPIC_PAR DOCB\nclass DOCPIC : public DOCPIC_PAR\n{\n    MARKMEM\n\n  protected:\n    PPIC _ppic;\n    DOCPIC(void);\n\n  public:\n    ~DOCPIC(void);\n\n    static DOCPIC *PdocpicNew(void);\n\n    virtual PDDG PddgNew(PGCB pgcb);\n    PPIC Ppic(void)\n    {\n        return _ppic;\n    }\n    virtual bool FSaveToFni(FNI *pfni, bool fSetFni);\n};\n\n// picture document display\n#define DDPIC_PAR DDG\nclass DDPIC : public DDPIC_PAR\n{\n  protected:\n    DDPIC(DOCPIC *pdocpic, PGCB pgcb);\n\n  public:\n    static DDPIC *PddpicNew(DOCPIC *pdocpic, PGCB pgcb);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n};\n\n/***************************************************************************\n    Constructor for picture document.\n***************************************************************************/\nDOCPIC::DOCPIC(void)\n{\n    _ppic = pvNil;\n}\n\n/***************************************************************************\n    Destructor for picture document.\n***************************************************************************/\nDOCPIC::~DOCPIC(void)\n{\n    ReleasePpo(&_ppic);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Mark memory for the DOCPIC.\n***************************************************************************/\nvoid DOCPIC::MarkMem(void)\n{\n    AssertValid(0);\n    DOCPIC_PAR::MarkMem();\n    MarkMemObj(_ppic);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Static method to create a new picture document.\n***************************************************************************/\nDOCPIC *DOCPIC::PdocpicNew(void)\n{\n    static long _cact = 0;\n    PGPT pgpt;\n    PGNV pgnv;\n    PPIC ppic;\n    DOCPIC *pdocpic;\n    long i, j;\n    CLR clr;\n    PGL pglclr;\n    RC rc(0, 0, 16, 16);\n\n    if (pvNil == (pglclr = GL::PglNew(size(CLR), 256)))\n        return pvNil;\n    for (i = 0; i < 256; i++)\n    {\n        ClearPb(&clr, size(clr));\n        switch (_cact)\n        {\n        default:\n            clr.bRed = byte(255 - i);\n            break;\n        case 1:\n            clr.bGreen = byte(255 - i);\n            break;\n        case 2:\n            clr.bBlue = byte(255 - i);\n            break;\n        }\n        pglclr->FPush(&clr);\n        _cact = (_cact + 1) % 3;\n    }\n    GPT::SetActiveColors(pglclr, fpalIdentity);\n    ReleasePpo(&pglclr);\n\n    if (pvNil == (pgpt = GPT::PgptNewPic(&rc)))\n        return pvNil;\n    if (pvNil != (pgnv = NewObj GNV(pgpt)))\n    {\n        rc.Offset(rc.Dxp() / 2, 0);\n        pgnv->FillOval(&rc, kacrMagenta);\n        for (i = 0; i < 16; i++)\n        {\n            for (j = 0; j < 16; j++)\n            {\n                rc.Set(i, j, i + 1, j + 1);\n                if ((i + j) & 1)\n                    pgnv->FillRc(&rc, ACR(byte(i * 16 + j)));\n                else\n                    pgnv->FillOval(&rc, ACR(byte(i * 16 + j)));\n            }\n        }\n        ReleasePpo(&pgnv);\n    }\n    ppic = pgpt->PpicRelease();\n    if (pvNil == ppic)\n        return pvNil;\n    if (pvNil == (pdocpic = NewObj DOCPIC))\n    {\n        ReleasePpo(&ppic);\n        return pvNil;\n    }\n    pdocpic->_ppic = ppic;\n    return pdocpic;\n}\n\n/***************************************************************************\n    Create a new display gob for the document.\n***************************************************************************/\nPDDG DOCPIC::PddgNew(PGCB pgcb)\n{\n    return DDPIC::PddpicNew(this, pgcb);\n}\n\n/***************************************************************************\n    Save the picture in a chunky file.\n***************************************************************************/\nbool DOCPIC::FSaveToFni(FNI *pfni, bool fSetFni)\n{\n    PCFL pcfl;\n    bool fT;\n    CNO cno;\n\n    if (pvNil == (pcfl = CFL::PcflCreate(pfni, fcflNil)))\n        return fFalse;\n    fT = _ppic->FAddToCfl(pcfl, kctgGraphic, &cno) && pcfl->FSave('FT  ');\n    ReleasePpo(&pcfl);\n    if (!fT)\n        pfni->FDelete();\n    return fT;\n}\n\n/***************************************************************************\n    Constructor for a picture doc pane.\n***************************************************************************/\nDDPIC::DDPIC(DOCPIC *pdocpic, PGCB pgcb) : DDG(pdocpic, pgcb)\n{\n}\n\n/***************************************************************************\n    Static method to create a new DDPIC.\n***************************************************************************/\nDDPIC *DDPIC::PddpicNew(DOCPIC *pdocpic, PGCB pgcb)\n{\n    DDPIC *pddpic;\n\n    if (pvNil == (pddpic = NewObj DDPIC(pdocpic, pgcb)))\n        return pvNil;\n\n    if (!pddpic->_FInit())\n    {\n        ReleasePpo(&pddpic);\n        return pvNil;\n    }\n    pddpic->Activate(fTrue);\n\n    AssertPo(pddpic, 0);\n    return pddpic;\n}\n\n/***************************************************************************\n    Draws the picture doc.\n***************************************************************************/\nvoid DDPIC::Draw(PGNV pgnv, RC *prcClip)\n{\n    DOCPIC *pdocpic = (DOCPIC *)_pdocb;\n    long i, j;\n    RC rc(0, 0, 33, 16);\n\n    // draw the picture and draw directly\n    pgnv->FillRc(prcClip, kacrLtGray);\n    rc.Inset(-1, -1);\n    pgnv->SetRcSrc(&rc);\n    rc.Inset(1, 1);\n    rc.xpLeft += 17;\n    pgnv->DrawPic(pdocpic->Ppic(), &rc);\n\n    for (i = 0; i < 16; i++)\n    {\n        for (j = 0; j < 16; j++)\n        {\n            rc.Set(i, j, i + 1, j + 1);\n            if ((i + j) & 1)\n                pgnv->FillRc(&rc, ACR(byte(i * 16 + j)));\n            else\n                pgnv->FillOval(&rc, ACR(byte(i * 16 + j)));\n        }\n    }\n}\n\n/***************************************************************************\n    Create a new picture doc and window.\n***************************************************************************/\nbool APP::FCmdTestPictures(PCMD pcmd)\n{\n    DOCPIC *pdocpic;\n\n    if (pvNil != (pdocpic = DOCPIC::PdocpicNew()))\n    {\n        pdocpic->PdmdNew();\n        ReleasePpo(&pdocpic);\n    }\n    return fTrue;\n}\n\n// GPT Document.\n#define DOCGPT_PAR DOCB\nclass DOCGPT : public DOCGPT_PAR\n{\n    MARKMEM\n\n  protected:\n    DOCGPT(void);\n    PGPT _pgpt;\n\n  public:\n    ~DOCGPT(void);\n\n    static DOCGPT *PdocgptNew(void);\n\n    virtual PDDG PddgNew(PGCB pgcb);\n    PGPT Pgpt(void)\n    {\n        return _pgpt;\n    }\n};\n\n// GPT display class.\n#define DDGPT_PAR DDG\nclass DDGPT : public DDGPT_PAR\n{\n  protected:\n    DDGPT(DOCGPT *pdocgpt, PGCB pgcb);\n\n  public:\n    static DDGPT *PddgptNew(DOCGPT *pdocgpt, PGCB pgcb);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n};\n\n/***************************************************************************\n    Constructor for mbmp document.\n***************************************************************************/\nDOCGPT::DOCGPT(void)\n{\n    _pgpt = pvNil;\n}\n\n/***************************************************************************\n    Destructor for mbmp document.\n***************************************************************************/\nDOCGPT::~DOCGPT(void)\n{\n    ReleasePpo(&_pgpt);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Mark memory for the DOCGPT.\n***************************************************************************/\nvoid DOCGPT::MarkMem(void)\n{\n    AssertValid(0);\n    DOCGPT_PAR::MarkMem();\n    MarkMemObj(_pgpt);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Static method to create a new mbmp document.\n***************************************************************************/\nDOCGPT *DOCGPT::PdocgptNew(void)\n{\n    DOCGPT *pdocgpt;\n    PGPT pgpt;\n    PGNV pgnv;\n    PMBMP pmbmp;\n    long i;\n    RC rc(0, 0, 256, 256);\n    RC rcT;\n    ACR acr;\n    CLR clr;\n    PGL pglclr;\n    static long _cact = 0;\n    PT pt(0, 0);\n    ACR acr63(63), acr127(127), acr191(191);\n\n    if (pvNil == (pglclr = GL::PglNew(size(CLR), 256)))\n        return pvNil;\n    for (i = 0; i < 256; i++)\n    {\n        ClearPb(&clr, size(clr));\n        switch (_cact)\n        {\n        default:\n            clr.bRed = byte(255 - i);\n            break;\n        case 1:\n            clr.bGreen = byte(255 - i);\n            break;\n        case 2:\n            clr.bBlue = byte(255 - i);\n            break;\n        }\n        if (i == 100) // make 100 always the same\t- yellow\n        {\n            clr.bRed = byte(kbMax);\n            clr.bGreen = byte(kbMax);\n            clr.bBlue = byte(0);\n        }\n        pglclr->FPush(&clr);\n        _cact = (_cact + 1) % 3;\n    }\n    GPT::SetActiveColors(pglclr, fpalIdentity);\n    ReleasePpo(&pglclr);\n\n    pdocgpt = pvNil;\n    pgpt = pvNil;\n    pmbmp = pvNil;\n    pgnv = pvNil;\n\n    // Create the gpt\n    if (pvNil == (pgpt = GPT::PgptNewOffscreen(&rc, 8)))\n        goto LFail;\n\n    if (pvNil == (pgnv = NewObj GNV(pgpt)))\n        goto LFail;\n\n    // The color mapped to 100 is the transparent pixel value for\n    // the MBMP, so start everything as transparent.\n    acr.SetToIndex(100);\n    pgnv->FillRc(&rc, acr);\n\n    // Fill the foreground with a pattern\n    rcT.Set(0, 0, 128, 128);\n    pgnv->FillRc(&rcT, acr63);\n    rcT.Set(128, 128, 256, 256);\n    pgnv->FillOval(&rcT, acr63);\n    rcT.Set(48, 48, 80, 80);\n    pgnv->FillRc(&rcT, acr127);\n    rcT.Set(176, 176, 208, 208);\n    pgnv->FillOval(&rcT, acr127);\n    rcT.Set(240, 112, 256, 128);\n    pgnv->FillOval(&rcT, acr191);\n    rcT.Set(0, 128, 16, 144);\n    pgnv->FillRc(&rcT, acr191);\n    rcT.Set(48, 144, 80, 176);\n    pgnv->FillRc(&rcT, kacrBlack);\n    rcT.Set(176, 80, 208, 112);\n    pgnv->FillOval(&rcT, kacrBlack);\n    rcT.Set(0, 208, 48, 256);\n    pgnv->FillRc(&rcT, kacrCyan);\n    rcT.Set(208, 0, 256, 48);\n    pgnv->FillOval(&rcT, kacrCyan);\n    rcT.Set(64, 192, 128, 256);\n    pgnv->FillRc(&rcT, kacrWhite);\n    rcT.Set(128, 0, 192, 64);\n    pgnv->FillOval(&rcT, kacrWhite);\n\n    // Create an MBMP from the foreground.\n    pmbmp = MBMP::PmbmpNew(pgpt->PrgbLockPixels(), pgpt->CbRow(), rc.Dyp(), &rc, 0, 0, 100);\n    pgpt->Unlock();\n\n    if (pvNil == pmbmp)\n        goto LFail;\n\n    pgnv->FillRc(&rc, kacrMagenta);\n    pgnv->DrawMbmp(pmbmp, 0, 0);\n\n    if (pvNil != (pdocgpt = NewObj DOCGPT))\n    {\n        pdocgpt->_pgpt = pgpt;\n        pgpt = pvNil;\n    }\n\n    if (pvNil == (pglclr = GL::PglNew(size(CLR), 256)))\n        goto LFail;\n    for (i = 0; i < 128; i++)\n    {\n        ClearPb(&clr, size(clr));\n        clr.bGreen = byte(i * 2);\n        pglclr->FPush(&clr);\n    }\n    for (; i < 256; i++)\n    {\n        ClearPb(&clr, size(clr));\n        clr.bGreen = 255;\n        clr.bRed = clr.bBlue = (byte)((i - 128) * 2);\n        pglclr->FPush(&clr);\n    }\n\n    pdocgpt->_pgpt->SetOffscreenColors(pglclr);\n    ReleasePpo(&pglclr);\n\nLFail:\n    ReleasePpo(&pgnv);\n    ReleasePpo(&pmbmp);\n    ReleasePpo(&pgpt);\n\n    return pdocgpt;\n}\n\n/***************************************************************************\n    Create a new display gob for the document.\n***************************************************************************/\nPDDG DOCGPT::PddgNew(PGCB pgcb)\n{\n    return DDGPT::PddgptNew(this, pgcb);\n}\n\n/***************************************************************************\n    Constructor for a gpt doc pane.\n***************************************************************************/\nDDGPT::DDGPT(DOCGPT *pdocgpt, PGCB pgcb) : DDG(pdocgpt, pgcb)\n{\n}\n\n/***************************************************************************\n    Static method to create a new DDMBMP.\n***************************************************************************/\nDDGPT *DDGPT::PddgptNew(DOCGPT *pdocgpt, PGCB pgcb)\n{\n    DDGPT *pddgpt;\n\n    if (pvNil == (pddgpt = NewObj DDGPT(pdocgpt, pgcb)))\n        return pvNil;\n\n    if (!pddgpt->_FInit())\n    {\n        ReleasePpo(&pddgpt);\n        return pvNil;\n    }\n    pddgpt->Activate(fTrue);\n\n    AssertPo(pddgpt, 0);\n    return pddgpt;\n}\n\n/***************************************************************************\n    Draws the gpt doc.\n***************************************************************************/\nvoid DDGPT::Draw(PGNV pgnv, RC *prcClip)\n{\n    DOCGPT *pdocgpt = (DOCGPT *)_pdocb;\n    PGNV pgnvT;\n    RC rc(0, 0, 256, 256);\n    RC rcT;\n\n    if (pvNil == (pgnvT = NewObj GNV(pdocgpt->Pgpt())))\n        return;\n    GetRc(&rcT, cooLocal);\n    pgnv->CopyPixels(pgnvT, &rc, &rcT);\n    ReleasePpo(&pgnvT);\n    return;\n}\n\n/***************************************************************************\n    Create a new mbmp and window.\n***************************************************************************/\nbool APP::FCmdTestMbmps(PCMD pcmd)\n{\n    DOCGPT *pdocgpt;\n\n    if (pvNil != (pdocgpt = DOCGPT::PdocgptNew()))\n    {\n        pdocgpt->PdmdNew();\n        ReleasePpo(&pdocgpt);\n    }\n    return fTrue;\n}\n\n#ifdef MAC\n/***************************************************************************\n    Set the main screen as indicated.\n***************************************************************************/\nbool APP::FCmdSetScreen(PCMD pcmd)\n{\n    bool tColor = tMaybe;\n    long cbit = 0;\n\n    switch (pcmd->cid)\n    {\n    default:\n        return fFalse;\n\n    case cidSetColor:\n        tColor = tYes;\n        break;\n    case cidSetGrayScale:\n        tColor = tNo;\n        break;\n    case cidSetDepth1:\n        cbit = 1;\n        break;\n    case cidSetDepth2:\n        cbit = 2;\n        break;\n    case cidSetDepth4:\n        cbit = 4;\n        break;\n    case cidSetDepth8:\n        cbit = 8;\n        break;\n    case cidSetDepth16:\n        cbit = 16;\n        break;\n    case cidSetDepth32:\n        cbit = 32;\n        break;\n    }\n    GPT::FSetScreenState(cbit, tColor);\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the menu stuff for the screen resolutions.\n***************************************************************************/\nbool APP::FEnableScreen(PCMD pcmd, ulong *pgrfeds)\n{\n    long cbitPixel;\n    bool fColor;\n    bool fCheck;\n    bool fEnable;\n    long cbit;\n\n    GPT::GetScreenState(&cbitPixel, &fColor);\n    switch (pcmd->cid)\n    {\n    default:\n        return fFalse;\n\n    case cidSetColor:\n        fCheck = fColor;\n        fEnable = fCheck || GPT::FCanScreen(cbitPixel, fTrue);\n        break;\n    case cidSetGrayScale:\n        fCheck = !fColor;\n        fEnable = fCheck || GPT::FCanScreen(cbitPixel, fFalse);\n        break;\n    case cidSetDepth1:\n        cbit = 1;\n        goto LAll;\n    case cidSetDepth2:\n        cbit = 2;\n        goto LAll;\n    case cidSetDepth4:\n        cbit = 4;\n        goto LAll;\n    case cidSetDepth8:\n        cbit = 8;\n        goto LAll;\n    case cidSetDepth16:\n        cbit = 16;\n        goto LAll;\n    case cidSetDepth32:\n        cbit = 32;\n    LAll:\n        fCheck = cbit == cbitPixel;\n        fEnable = fCheck || GPT::FCanScreen(cbit, fColor);\n        break;\n    }\n\n    *pgrfeds = (fEnable ? fedsEnable : fedsDisable) | (fCheck ? fedsBullet : fedsUncheck);\n    return fTrue;\n}\n#endif // MAC\n\n// test animations\ntypedef class TAN *PTAN;\n#define TAN_PAR GOB\nclass TAN : public TAN_PAR\n{\n    CMD_MAP_DEC(TAN)\n\n  protected:\n    static long _cact;\n    APT _apt;\n    ulong _dtim;\n\n    TAN(PGCB pgcb);\n\n  public:\n    static PTAN PtanNew(void);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FCmdAlarm(PCMD pcmd);\n};\n\nBEGIN_CMD_MAP(TAN, GOB)\nON_CID_ME(cidAlarm, &TAN::FCmdAlarm, pvNil)\nEND_CMD_MAP_NIL()\n\nlong TAN::_cact = 0;\n\n/***************************************************************************\n    Create a new picture doc and window.\n***************************************************************************/\nbool APP::FCmdFastUpdate(PCMD pcmd)\n{\n    TAN::PtanNew();\n    return fTrue;\n}\n\n/***************************************************************************\n    Constructor for a Test animation gob.\n***************************************************************************/\nTAN::TAN(PGCB pgcb) : GOB(pgcb)\n{\n}\n\n/***************************************************************************\n    Create a new animation test gob\n***************************************************************************/\nPTAN TAN::PtanNew(void)\n{\n    PTAN ptan;\n    RC rc;\n    STN stn;\n    APT apt = {0xF0, 0xF0, 0xF0, 0xF0, 0x0F, 0x0F, 0x0F, 0x0F};\n    GCB gcb(khidMdi, GOB::PgobScreen());\n\n    if (pvNil == (ptan = NewObj TAN(&gcb)))\n        return pvNil;\n    ptan->_dtim = (1 << _cact);\n    _cact = (_cact + 1) % 5;\n    stn.FFormatSz(PszLit(\"Animation test (%d)\"), ptan->_dtim);\n    if (!ptan->FCreateAndAttachMdi(&stn))\n    {\n        ReleasePpo(&ptan);\n        return pvNil;\n    }\n    ptan->_apt = apt;\n\n    rc.Set(0, 0, 100, 100);\n    gcb.Set(100, ptan, fgobNil, kginMark, &rc);\n    NewObj GFRC(&gcb, ACR(0x80), fFalse);\n    gcb._hid = 101;\n    NewObj GFRC(&gcb, ACR(0x35), fFalse);\n    vclok.FSetAlarm(ptan->_dtim, ptan);\n    return ptan;\n}\n\n/***************************************************************************\n    Alarm handler for a TAN.\n***************************************************************************/\nbool TAN::FCmdAlarm(PCMD pcmd)\n{\n    if (pcmd->rglw[0] != vclok.Hid())\n        return fFalse; // wrong clock\n\n    RC rcPar, rc;\n    RC rcT;\n    PGOB pgob;\n    long cact;\n\n    GetRc(&rcPar, cooLocal);\n    for (cact = 0, pgob = PgobFirstChild(); pvNil != pgob; pgob = pgob->PgobNextSib(), cact++)\n    {\n        pgob->GetRc(&rc, cooParent);\n        if (cact & 1)\n        {\n            rc.Offset(15, 10);\n            if (rc.ypTop >= rcPar.ypBottom)\n                rc.Offset(0, -rcPar.Dyp() - rc.Dyp());\n        }\n        else\n        {\n            rc.Offset(10, -15);\n            if (rc.ypBottom <= rcPar.ypTop)\n                rc.Offset(0, rcPar.Dyp() + rc.Dyp());\n        }\n        if (rc.xpLeft >= rcPar.xpRight)\n            rc.Offset(-rcPar.Dxp() - rc.Dxp(), 0);\n        pgob->SetPos(&rc, pvNil);\n    }\n    vclok.FSetAlarm(_dtim, this);\n    return fTrue;\n}\n\n/***************************************************************************\n    Draw the thing\n***************************************************************************/\nvoid TAN::Draw(PGNV pgnv, RC *prcClip)\n{\n    //_apt.MoveOrigin(1, 1);\n    pgnv->FillRcApt(prcClip, &_apt, kacrRed, kacrBlue);\n}\n\ntypedef class TED *PTED;\n#define TED_PAR GOB\nclass TED : public TED_PAR\n{\n  protected:\n    TED(void) : GOB(khidMdi)\n    {\n    }\n\n  public:\n    static PTED PtedNew(void);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FCmdBadKey(PCMD_BADKEY pcmd);\n};\n\n/***************************************************************************\n    Create a new window containing a bunch of edit controls.\n***************************************************************************/\nbool APP::FCmdTextEdit(PCMD pcmd)\n{\n    TED::PtedNew();\n    return fTrue;\n}\n\n/***************************************************************************\n    Static method to create a new TED.\n***************************************************************************/\nPTED TED::PtedNew(void)\n{\n    RC rcRel, rcAbs;\n    EDPAR edpar;\n    PTED pted;\n    STN stn;\n    long i, j;\n    long hid;\n    long rgtah[3] = {tahLeft, tahCenter, tahRight};\n    long rgtav[3] = {tavTop, tavCenter, tavBottom};\n\n    if (pvNil == (pted = NewObj TED))\n        return pvNil;\n\n    stn = PszLit(\"Test Edits\");\n    if (!pted->FCreateAndAttachMdi(&stn))\n    {\n        ReleasePpo(&pted);\n        return pvNil;\n    }\n\n    rcAbs.Set(1, 1, -1, -1);\n    hid = 1000;\n    for (i = 0; i < 3; i++)\n    {\n        for (j = 0; j < 3; j++)\n        {\n            rcRel.Set(i * krelOne / 3, j * krelOne / 9, (i + 1) * krelOne / 3, (j + 1) * krelOne / 9);\n            edpar.Set(hid++, pted, fgobNil, kginDefault, &rcAbs, &rcRel, vntl.OnnSystem(), fontNil, 12, rgtah[i],\n                      rgtav[j], kacrBlue, kacrYellow);\n            EDSL::PedslNew(&edpar);\n        }\n    }\n\n    for (i = 0; i < 3; i++)\n    {\n        for (j = 0; j < 3; j++)\n        {\n            rcRel.Set(i * krelOne / 3, (j + 3) * krelOne / 9, (i + 1) * krelOne / 3, (j + 4) * krelOne / 9);\n            edpar.Set(hid++, pted, fgobNil, kginDefault, &rcAbs, &rcRel, vntl.OnnSystem(), fontNil, 12, rgtah[i],\n                      rgtav[j], kacrBlue, kacrYellow);\n            EDML::PedmlNew(&edpar);\n        }\n    }\n\n    for (i = 0; i < 3; i++)\n    {\n        for (j = 0; j < 3; j++)\n        {\n            rcRel.Set(i * krelOne / 3, (j + 6) * krelOne / 9, (i + 1) * krelOne / 3, (j + 7) * krelOne / 9);\n            edpar.Set(hid++, pted, fgobNil, kginDefault, &rcAbs, &rcRel, vntl.OnnSystem(), fontNil, 12, rgtah[i],\n                      rgtav[j], kacrBlue, kacrYellow);\n            EDMW::PedmwNew(&edpar);\n        }\n    }\n    return pted;\n}\n\n/***************************************************************************\n    A key wasn't handled by the edit control.\n***************************************************************************/\nbool TED::FCmdBadKey(PCMD_BADKEY pcmd)\n{\n    long hid;\n\n    switch (pcmd->ch)\n    {\n    case kchReturn:\n    case kchTab:\n        hid = pcmd->hid;\n        AssertIn(hid, 1000, 10027);\n        if (pcmd->grfcust & fcustShift)\n            hid = (hid - 974) % 27 + 1000;\n        else\n            hid = (hid - 999) % 27 + 1000;\n        vpcex->EnqueueCid(cidActivateSel, PgobFromHid(hid));\n        break;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Draw the background of the TED.\n***************************************************************************/\nvoid TED::Draw(PGNV pgnv, RC *prcClip)\n{\n    pgnv->FillRc(prcClip, kacrWhite);\n}\n"
  },
  {
    "path": "kauai/src/ft.rc",
    "content": "//Microsoft App Studio generated resource script.\n//\n#include \"ftres.h\"\n\n#define APSTUDIO_READONLY_SYMBOLS\n/////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 2 resource.\n//\n#define APSTUDIO_HIDDEN_SYMBOLS\n#include \"windows.h\"\n#undef APSTUDIO_HIDDEN_SYMBOLS\n#include \"framedef.h\"\n\n/////////////////////////////////////////////////////////////////////////////////////\n#undef APSTUDIO_READONLY_SYMBOLS\n\n\n//////////////////////////////////////////////////////////////////////////////\n//\n// Menu\n//\n\n128 MENU DISCARDABLE\nBEGIN\n    POPUP \"&File\"\n    BEGIN\n        MENUITEM \"Save &As...\",                 cidSaveAs\n        MENUITEM SEPARATOR\n        MENUITEM \"E&xit\",                       cidQuit\n    END\n    POPUP \"&Macro\"\n    BEGIN\n        MENUITEM \"&Record...\",                  cidStartRecording\n        MENUITEM \"&Stop Recording\",             cidCexStopRec\n        MENUITEM \"&Play...\",                    cidStartPlaying\n        MENUITEM \"S&top Playing\",               cidCexStopPlay\n    END\n    POPUP \"&Test\"\n    BEGIN\n        MENUITEM \"Test &Suite\",                 cidTestSuite\n        MENUITEM \"&New Test Window\",            cidNewTestWnd\n        MENUITEM \"New Te&xt Window\",            cidTextTestWnd\n        MENUITEM \"&Time FrameRc\",               cidTimeFrameRc\n        MENUITEM \"Build &Fni from szPath\",      cidTestFni\n        MENUITEM SEPARATOR\n        MENUITEM \"New &Perspective Window\",     cidTestPerspective\n        MENUITEM \"New &Masked Bitmap Window\",   cidTestMbmps\n        MENUITEM \"New Pi&cture Window\",         cidTestPictures\n        MENUITEM \"New &Animation Window\",       cidTestFastUpdate\n        MENUITEM \"New &Edit Window\",            cidTestTextEdit\n    END\nEND\n\n#ifdef APSTUDIO_INVOKED\n//////////////////////////////////////////////////////////////////////////////\n//\n// TEXTINCLUDE\n//\n\n1 TEXTINCLUDE DISCARDABLE\nBEGIN\n    \"ftres.h\\0\"\nEND\n\n2 TEXTINCLUDE DISCARDABLE\nBEGIN\n    \"#define APSTUDIO_HIDDEN_SYMBOLS\\r\\n\"\n    \"#include \"\"windows.h\"\"\\r\\n\"\n    \"#undef APSTUDIO_HIDDEN_SYMBOLS\\r\\n\"\n    \"\\0\"\nEND\n\n3 TEXTINCLUDE DISCARDABLE\nBEGIN\n    \"#include \"\"frame.rc\"\"\\r\\n\"\n    \"\\0\"\nEND\n\n/////////////////////////////////////////////////////////////////////////////////////\n#endif    // APSTUDIO_INVOKED\n\n\n//////////////////////////////////////////////////////////////////////////////\n//\n// Dialog\n//\n\n200 DIALOG DISCARDABLE  0, 0, 233, 121\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Dialog\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",100,171,8,50,14\n    PUSHBUTTON      \"Cancel\",101,171,29,50,14\n    CONTROL         \"Graphics\",104,\"Button\",BS_AUTORADIOBUTTON,13,39,82,11\n    CONTROL         \"Text\",105,\"Button\",BS_AUTORADIOBUTTON,13,61,82,11\n    CONTROL         \"Neither\",106,\"Button\",BS_AUTORADIOBUTTON,13,83,82,11\n    PUSHBUTTON      \"Whatever\",102,171,50,50,14\n    CONTROL         \"CheckBox\",103,\"Button\",BS_AUTOCHECKBOX | WS_TABSTOP,8,6,\n                    96,12\n    EDITTEXT        107,121,81,96,14,ES_AUTOHSCROLL\n    LTEXT           \"Static\",108,121,103,86,11\nEND\n\n201 DIALOG DISCARDABLE  0, 0, 233, 51\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Enter szPath from which to build fni\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",100,171,8,50,14,NOT WS_TABSTOP\n    PUSHBUTTON      \"Cancel\",101,171,29,50,14,NOT WS_TABSTOP\n    EDITTEXT        107,9,19,152,14,ES_AUTOHSCROLL\nEND\n\n\n#ifndef APSTUDIO_INVOKED\n////////////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 3 resource.\n//\n#include \"frame.rc\"\n\n/////////////////////////////////////////////////////////////////////////////////////\n#endif    // not APSTUDIO_INVOKED\n\n"
  },
  {
    "path": "kauai/src/ftres.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//{{NO_DEPENDENCIES}}\n// App Studio generated include file.\n// Used by FT.RC\n//\n#define cidTestSuite 40001\n#define cidNewTestWnd 40002\n#define cidTextTestWnd 40004\n#define cidStartRecording 40005\n#define cidStartPlaying 40006\n#define cidTimeFrameRc 40007\n#define cidTestFni 40008\n#define cidTestPerspective 40009\n#define cidTestPictures 40010\n#define cidSetColor 40011\n#define cidSetGrayScale 40012\n#define cidSetDepth1 40013\n#define cidSetDepth2 40014\n#define cidSetDepth4 40015\n#define cidSetDepth8 40016\n#define cidSetDepth16 40017\n#define cidSetDepth32 40018\n#define cidTestFastUpdate 40019\n#define cidTestTextEdit 40020\n#define cidTestMbmps 40021\n\n// Next default values for new objects\n//\n#ifdef APSTUDIO_INVOKED\n#ifndef APSTUDIO_READONLY_SYMBOLS\n\n#define _APS_NEXT_RESOURCE_VALUE 102\n#define _APS_NEXT_COMMAND_VALUE 40022\n#define _APS_NEXT_CONTROL_VALUE 1007\n#define _APS_NEXT_SYMED_VALUE 101\n#endif\n#endif\n"
  },
  {
    "path": "kauai/src/gfx.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    GFX classes: graphics device (GDV), graphics environment (GNV)\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nAPT vaptGray = {0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55, 0xAA, 0x55};\nAPT vaptLtGray = {0x22, 0x88, 0x44, 0x11, 0x22, 0x88, 0x44, 0x11};\nAPT vaptDkGray = {0xDD, 0x77, 0xBB, 0xEE, 0xDD, 0x77, 0xBB, 0xEE};\n\nNTL vntl;\n\nRTCLASS(GNV)\nRTCLASS(GPT)\nRTCLASS(NTL)\nRTCLASS(OGN)\n\nconst long kdtsMaxTrans = 30 * kdtsSecond;\nlong vcactRealize;\n\n/***************************************************************************\n    Set the ACR from the lw.  The lw should have been returned by a call\n    to ACR::LwGet().\n***************************************************************************/\nvoid ACR::SetFromLw(long lw)\n{\n    _lu = (ulong)lw;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Get an lw from the ACR.  The lw can then be stored on file, reread\n    and passed to ACR::SetFromLw.  Valid non-nil colors always return\n    non-zero, so zero can be used as a nil value.\n***************************************************************************/\nlong ACR::LwGet(void) const\n{\n    return (long)_lu;\n}\n\n/***************************************************************************\n    Get a clr from the ACR.  Asserts that the acr is an rgb color.\n***************************************************************************/\nvoid ACR::GetClr(CLR *pclr)\n{\n    AssertThis(facrRgb);\n    AssertVarMem(pclr);\n\n    pclr->bRed = B2Lw(_lu);\n    pclr->bGreen = B1Lw(_lu);\n    pclr->bBlue = B0Lw(_lu);\n    pclr->bZero = 0;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert that the acr is a valid color.\n***************************************************************************/\nvoid ACR::AssertValid(ulong grfacr)\n{\n    switch (B3Lw(_lu))\n    {\n    case kbNilAcr:\n        Assert(grfacr == facrNil, \"unexpected nil ACR\");\n        break;\n    case kbRgbAcr:\n        Assert(grfacr == facrNil || (grfacr & facrRgb), \"unexpected RGB ACR\");\n        break;\n    case kbIndexAcr:\n        Assert(B2Lw(_lu) == 0 && B1Lw(_lu) == 0, \"bad Index ACR\");\n        Assert(grfacr == facrNil || (grfacr & facrIndex), \"unexpected Index ACR\");\n        break;\n    case kbSpecialAcr:\n        Assert(_lu == kluAcrClear || _lu == kluAcrInvert, \"unknown acr\");\n        Assert(grfacr == facrNil, \"unexpected Special ACR\");\n        break;\n    default:\n        BugVar(\"invalid ACR\", &_lu);\n        break;\n    }\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Change the origin on the pattern.\n***************************************************************************/\nvoid APT::MoveOrigin(long dxp, long dyp)\n{\n    // this cast to ulong works because 2^32 is a multiple of 8.\n    dxp = (ulong)dxp % 8;\n    dyp = (ulong)dyp % 8;\n    if (dxp != 0)\n    {\n        byte *pb;\n\n        for (pb = rgb + 8; pb-- != rgb;)\n            *pb = (*pb >> dxp) | (*pb << (8 - dxp));\n    }\n    if (dyp != 0)\n        SwapBlocks(rgb, 8 - dyp, dyp);\n}\n\n/***************************************************************************\n    Constructor for Graphics environment.\n***************************************************************************/\nGNV::GNV(GPT *pgpt)\n{\n    AssertPo(pgpt, 0);\n\n    _Init(pgpt);\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Constructor for Graphics environment based on a pgob.\n***************************************************************************/\nGNV::GNV(PGOB pgob)\n{\n    AssertPo(pgob, 0);\n\n    _Init(pgob->Pgpt()); // use the GOB's port\n    SetGobRc(pgob);      // set the rc's according to the gob\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Constructor for Graphics environment based on both a port and a pgob.\n***************************************************************************/\nGNV::GNV(PGOB pgob, PGPT pgpt)\n{\n    AssertPo(pgpt, 0);\n    AssertPo(pgob, 0);\n\n    _Init(pgpt);\n    SetGobRc(pgob);\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for the GNV.\n***************************************************************************/\nGNV::~GNV(void)\n{\n    AssertThis(0);\n    Mac(_pgpt->Unlock();) ReleasePpo(&_pgpt);\n}\n\n/***************************************************************************\n    Fill in all fields of the gnv with default values.\n***************************************************************************/\nvoid GNV::_Init(PGPT pgpt)\n{\n    PT pt;\n\n    _pgpt = pgpt;\n    pgpt->AddRef();\n    Mac(pgpt->Lock();) _rcSrc.Set(0, 0, 1, 1);\n    pgpt->GetPtBase(&pt);\n    _rcDst.OffsetCopy(&_rcSrc, -pt.xp, -pt.yp);\n    _xp = _yp = 0;\n\n    _dsf.onn = vntl.OnnSystem();\n    _dsf.grfont = fontNil;\n    _dsf.dyp = vpappb->DypTextDef();\n    _dsf.tah = tahLeft;\n    _dsf.tav = tavTop;\n\n    _gdd.dxpPen = _gdd.dypPen = 1;\n    _gdd.prcsClip = pvNil;\n    _rcVis.Max();\n}\n\n/***************************************************************************\n    Set the mapping and vis according to the gob.\n***************************************************************************/\nvoid GNV::SetGobRc(PGOB pgob)\n{\n    RC rc;\n\n    // set the mapping\n    pgob->GetRc(&rc, cooGpt);\n    SetRcDst(&rc);\n    pgob->GetRc(&rc, cooLocal);\n    SetRcSrc(&rc);\n    pgob->GetRcVis(&rc, cooLocal);\n    SetRcVis(&rc);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the gnv\n***************************************************************************/\nvoid GNV::AssertValid(ulong grf)\n{\n    GNV_PAR::AssertValid(0);\n    AssertPo(_pgpt, 0);\n    AssertPo(&_dsf, 0);\n    Assert(!_rcSrc.FEmpty(), \"empty src rectangle\");\n    Assert(!_rcDst.FEmpty(), \"empty dst rectangle\");\n    Assert(_gdd.prcsClip == pvNil || _gdd.prcsClip == &_rcsClip, \"bad _gdd.prcsClip\");\n}\n\n/***************************************************************************\n    Mark memory for the GNV.\n***************************************************************************/\nvoid GNV::MarkMem(void)\n{\n    AssertValid(0);\n    GNV_PAR::MarkMem();\n    MarkMemObj(_pgpt);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Fill a rectangle with a two color pattern.\n***************************************************************************/\nvoid GNV::FillRcApt(RC *prc, APT *papt, ACR acrFore, ACR acrBack)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertVarMem(papt);\n    AssertPo(&acrFore, 0);\n    AssertPo(&acrBack, 0);\n\n    RCS rcs;\n\n    if (!_FMapRcRcs(prc, &rcs))\n        return;\n\n    _gdd.grfgdd = fgddFill | fgddPattern;\n    _gdd.apt = *papt;\n    _gdd.apt.MoveOrigin(_rcDst.xpLeft - _rcSrc.xpLeft, _rcDst.ypTop - _rcSrc.ypTop);\n    _gdd.acrFore = acrFore;\n    _gdd.acrBack = acrBack;\n\n    _pgpt->DrawRcs(&rcs, &_gdd);\n}\n\n/***************************************************************************\n    Fill a rectangle with a color.\n***************************************************************************/\nvoid GNV::FillRc(RC *prc, ACR acr)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertPo(&acr, 0);\n\n    RCS rcs;\n\n    if (!_FMapRcRcs(prc, &rcs))\n        return;\n\n    _gdd.grfgdd = fgddFill;\n    _gdd.acrFore = acr;\n\n    _pgpt->DrawRcs(&rcs, &_gdd);\n}\n\n/***************************************************************************\n    Frame a rectangle with a two color pattern.\n***************************************************************************/\nvoid GNV::FrameRcApt(RC *prc, APT *papt, ACR acrFore, ACR acrBack)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertVarMem(papt);\n    AssertPo(&acrFore, 0);\n    AssertPo(&acrBack, 0);\n\n    RCS rcs;\n\n    if (!_FMapRcRcs(prc, &rcs) || _gdd.dxpPen == 0 && _gdd.dypPen == 0)\n        return;\n\n    _gdd.grfgdd = fgddFrame | fgddPattern;\n    _gdd.apt = *papt;\n    _gdd.apt.MoveOrigin(_rcDst.xpLeft - _rcSrc.xpLeft, _rcDst.ypTop - _rcSrc.ypTop);\n    _gdd.acrFore = acrFore;\n    _gdd.acrBack = acrBack;\n\n    _pgpt->DrawRcs(&rcs, &_gdd);\n}\n\n/***************************************************************************\n    Frame a rectangle with a color.\n***************************************************************************/\nvoid GNV::FrameRc(RC *prc, ACR acr)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertPo(&acr, 0);\n\n    RCS rcs;\n\n    if (!_FMapRcRcs(prc, &rcs) || _gdd.dxpPen == 0 && _gdd.dypPen == 0)\n        return;\n\n    _gdd.grfgdd = fgddFrame;\n    _gdd.acrFore = acr;\n\n    _pgpt->DrawRcs(&rcs, &_gdd);\n}\n\n/***************************************************************************\n    For hilighting text.  On mac, interchanges the system hilite color and\n    the background color.  On Win, just inverts.\n***************************************************************************/\nvoid GNV::HiliteRc(RC *prc, ACR acrBack)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n\n    RCS rcs;\n\n    if (!_FMapRcRcs(prc, &rcs))\n        return;\n    _gdd.acrBack = acrBack;\n    _pgpt->HiliteRcs(&rcs, &_gdd);\n}\n\n/***************************************************************************\n    Fill an oval with a two color pattern.\n***************************************************************************/\nvoid GNV::FillOvalApt(RC *prc, APT *papt, ACR acrFore, ACR acrBack)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertVarMem(papt);\n    AssertPo(&acrFore, 0);\n    AssertPo(&acrBack, 0);\n\n    RCS rcs;\n\n    if (!_FMapRcRcs(prc, &rcs))\n        return;\n\n    _gdd.grfgdd = fgddFill | fgddPattern;\n    _gdd.apt = *papt;\n    _gdd.apt.MoveOrigin(_rcDst.xpLeft - _rcSrc.xpLeft, _rcDst.ypTop - _rcSrc.ypTop);\n    _gdd.acrFore = acrFore;\n    _gdd.acrBack = acrBack;\n\n    _pgpt->DrawOval(&rcs, &_gdd);\n}\n\n/***************************************************************************\n    Fill an oval with a color.\n***************************************************************************/\nvoid GNV::FillOval(RC *prc, ACR acr)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertPo(&acr, 0);\n\n    RCS rcs;\n\n    if (!_FMapRcRcs(prc, &rcs))\n        return;\n\n    _gdd.grfgdd = fgddFill;\n    _gdd.acrFore = acr;\n\n    _pgpt->DrawOval(&rcs, &_gdd);\n}\n\n/***************************************************************************\n    Frame an oval with a two color pattern.\n***************************************************************************/\nvoid GNV::FrameOvalApt(RC *prc, APT *papt, ACR acrFore, ACR acrBack)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertVarMem(papt);\n    AssertPo(&acrFore, 0);\n    AssertPo(&acrBack, 0);\n\n    RCS rcs;\n\n    if (!_FMapRcRcs(prc, &rcs) || _gdd.dxpPen == 0 && _gdd.dypPen == 0)\n        return;\n\n    _gdd.grfgdd = fgddFrame | fgddPattern;\n    _gdd.apt = *papt;\n    _gdd.apt.MoveOrigin(_rcDst.xpLeft - _rcSrc.xpLeft, _rcDst.ypTop - _rcSrc.ypTop);\n    _gdd.acrFore = acrFore;\n    _gdd.acrBack = acrBack;\n\n    _pgpt->DrawOval(&rcs, &_gdd);\n}\n\n/***************************************************************************\n    Frame an oval with a color.\n***************************************************************************/\nvoid GNV::FrameOval(RC *prc, ACR acr)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertPo(&acr, 0);\n\n    RCS rcs;\n\n    if (!_FMapRcRcs(prc, &rcs) || _gdd.dxpPen == 0 && _gdd.dypPen == 0)\n        return;\n\n    _gdd.grfgdd = fgddFrame;\n    _gdd.acrFore = acr;\n\n    _pgpt->DrawOval(&rcs, &_gdd);\n}\n\n/***************************************************************************\n    Draw a line with a pattern.  Sets the pen position to (xp2, yp2).\n***************************************************************************/\nvoid GNV::LineApt(long xp1, long yp1, long xp2, long yp2, APT *papt, ACR acrFore, ACR acrBack)\n{\n    AssertThis(0);\n    AssertVarMem(papt);\n    AssertPo(&acrFore, 0);\n    AssertPo(&acrBack, 0);\n    PTS pts1, pts2;\n\n    if (_gdd.dxpPen != 0 || _gdd.dypPen != 0)\n    {\n        _gdd.grfgdd = fgddFrame | fgddPattern;\n        _gdd.apt = *papt;\n        _gdd.apt.MoveOrigin(_rcDst.xpLeft - _rcSrc.xpLeft, _rcDst.ypTop - _rcSrc.ypTop);\n        _gdd.acrFore = acrFore;\n        _gdd.acrBack = acrBack;\n\n        _MapPtPts(xp1, yp1, &pts1);\n        _MapPtPts(xp2, yp2, &pts2);\n        _pgpt->DrawLine(&pts1, &pts2, &_gdd);\n    }\n    _xp = xp2;\n    _yp = yp2;\n}\n\n/***************************************************************************\n    Draw a line in a solid color.  Sets the pen position to (xp2, yp2).\n***************************************************************************/\nvoid GNV::Line(long xp1, long yp1, long xp2, long yp2, ACR acr)\n{\n    AssertThis(0);\n    AssertPo(&acr, 0);\n    PTS pts1, pts2;\n\n    if (_gdd.dxpPen != 0 || _gdd.dypPen != 0)\n    {\n        _gdd.grfgdd = fgddFrame;\n        _gdd.acrFore = acr;\n\n        _MapPtPts(xp1, yp1, &pts1);\n        _MapPtPts(xp2, yp2, &pts2);\n        _pgpt->DrawLine(&pts1, &pts2, &_gdd);\n    }\n    _xp = xp2;\n    _yp = yp2;\n}\n\n/***************************************************************************\n    Fill a polygon with a pattern.\n***************************************************************************/\nvoid GNV::FillOgnApt(POGN pogn, APT *papt, ACR acrFore, ACR acrBack)\n{\n    AssertThis(0);\n    AssertPo(pogn, 0);\n    AssertVarMem(papt);\n    AssertPo(&acrFore, 0);\n    AssertPo(&acrBack, 0);\n    HQ hqoly;\n\n    if ((hqoly = _HqolyCreate(pogn, fognAutoClose)) == hqNil)\n    {\n        PushErc(ercGfxCantDraw);\n        return;\n    }\n\n    _gdd.grfgdd = fgddFill | fgddPattern;\n    _gdd.apt = *papt;\n    _gdd.apt.MoveOrigin(_rcDst.xpLeft - _rcSrc.xpLeft, _rcDst.ypTop - _rcSrc.ypTop);\n    _gdd.acrFore = acrFore;\n    _gdd.acrBack = acrBack;\n\n    _pgpt->DrawPoly(hqoly, &_gdd);\n    FreePhq(&hqoly);\n}\n\n/***************************************************************************\n    Fill a polygon with a color.\n***************************************************************************/\nvoid GNV::FillOgn(POGN pogn, ACR acr)\n{\n    AssertThis(0);\n    AssertPo(pogn, 0);\n    AssertPo(&acr, 0);\n    HQ hqoly;\n\n    if ((hqoly = _HqolyCreate(pogn, fognAutoClose)) == hqNil)\n    {\n        PushErc(ercGfxCantDraw);\n        return;\n    }\n\n    _gdd.grfgdd = fgddFill;\n    _gdd.acrFore = acr;\n\n    _pgpt->DrawPoly(hqoly, &_gdd);\n    FreePhq(&hqoly);\n}\n\n/***************************************************************************\n    Frame a polygon with a pattern.\n    NOTE: Using kacrInvert produces slightly different results on the Mac.\n    (Mac only does alternate winding).\n***************************************************************************/\nvoid GNV::FrameOgnApt(POGN pogn, APT *papt, ACR acrFore, ACR acrBack)\n{\n    AssertThis(0);\n    AssertPo(pogn, 0);\n    AssertVarMem(papt);\n    AssertPo(&acrFore, 0);\n    AssertPo(&acrBack, 0);\n    HQ hqoly;\n\n    if (_gdd.dxpPen == 0 && _gdd.dypPen == 0)\n        return;\n\n    if (hqNil == (hqoly = _HqolyFrame(pogn, fognAutoClose)))\n    {\n        PushErc(ercGfxCantDraw);\n        return;\n    }\n\n    _gdd.grfgdd = fgddFrame | fgddPattern;\n    _gdd.apt = *papt;\n    _gdd.apt.MoveOrigin(_rcDst.xpLeft - _rcSrc.xpLeft, _rcDst.ypTop - _rcSrc.ypTop);\n    _gdd.acrFore = acrFore;\n    _gdd.acrBack = acrBack;\n\n    _pgpt->DrawPoly(hqoly, &_gdd);\n    FreePhq(&hqoly);\n}\n\n/***************************************************************************\n    Frame a polygon with a color.\n    NOTE: Using kacrInvert produces slightly different results on the Mac.\n***************************************************************************/\nvoid GNV::FrameOgn(POGN pogn, ACR acr)\n{\n    AssertThis(0);\n    AssertPo(pogn, 0);\n    AssertPo(&acr, 0);\n    HQ hqoly;\n\n    if (_gdd.dxpPen == 0 && _gdd.dypPen == 0)\n        return;\n\n    if (hqNil == (hqoly = _HqolyFrame(pogn, fognAutoClose)))\n    {\n        PushErc(ercGfxCantDraw);\n        return;\n    }\n\n    _gdd.grfgdd = fgddFrame;\n    _gdd.acrFore = acr;\n\n    _pgpt->DrawPoly(hqoly, &_gdd);\n    FreePhq(&hqoly);\n}\n\n/***************************************************************************\n    Frame a poly-line with a pattern.\n    NOTE: Using kacrInvert produces slightly different results on the Mac.\n***************************************************************************/\nvoid GNV::FramePolyLineApt(POGN pogn, APT *papt, ACR acrFore, ACR acrBack)\n{\n    AssertThis(0);\n    AssertPo(pogn, 0);\n    AssertVarMem(papt);\n    AssertPo(&acrFore, 0);\n    AssertPo(&acrBack, 0);\n    HQ hqoly;\n\n    if (_gdd.dxpPen == 0 && _gdd.dypPen == 0)\n        return;\n\n    if (hqNil == (hqoly = _HqolyFrame(pogn, fognNil)))\n    {\n        PushErc(ercGfxCantDraw);\n        return;\n    }\n\n    _gdd.grfgdd = fgddFrame | fgddPattern;\n    _gdd.apt = *papt;\n    _gdd.apt.MoveOrigin(_rcDst.xpLeft - _rcSrc.xpLeft, _rcDst.ypTop - _rcSrc.ypTop);\n    _gdd.acrFore = acrFore;\n    _gdd.acrBack = acrBack;\n\n    _pgpt->DrawPoly(hqoly, &_gdd);\n    FreePhq(&hqoly);\n}\n\n/***************************************************************************\n    Frame a poly-line with a color.\n    NOTE: Using kacrInvert produces slightly different results on the Mac.\n***************************************************************************/\nvoid GNV::FramePolyLine(POGN pogn, ACR acr)\n{\n    AssertThis(0);\n    AssertPo(pogn, 0);\n    AssertPo(&acr, 0);\n    HQ hqoly;\n\n    if (_gdd.dxpPen == 0 && _gdd.dypPen == 0)\n        return;\n\n    if (hqNil == (hqoly = _HqolyCreate(pogn, fognNil)))\n    {\n        PushErc(ercGfxCantDraw);\n        return;\n    }\n\n    _gdd.grfgdd = fgddFrame;\n    _gdd.acrFore = acr;\n\n    _pgpt->DrawPoly(hqoly, &_gdd);\n    FreePhq(&hqoly);\n}\n\n/***************************************************************************\n    Convert an OGN into a polygon record (hqoly).  This maps the points and\n    optionally closes the polygon and/or calculates the bounds (Mac only).\n***************************************************************************/\nHQ GNV::_HqolyCreate(POGN pogn, ulong grfogn)\n{\n    AssertThis(0);\n    AssertPo(pogn, 0);\n    HQ hqoly;\n    long ipt;\n    long cb;\n    long cpt;\n    OLY *poly;\n    PT *ppt;\n    PTS *ppts;\n\n    if ((cpt = pogn->IvMac()) < 2)\n        return hqNil;\n\n    cb = kcbOlyBase + LwMul(cpt, size(PTS));\n    if (cpt < 3)\n        grfogn &= ~fognAutoClose;\n    else if (grfogn & fognAutoClose)\n        cb += size(PTS);\n\n    if (!FAllocHq(&hqoly, cb, fmemNil, mprNormal))\n        return hqNil;\n\n    poly = (OLY *)PvLockHq(hqoly);\n#ifdef MAC\n    poly->cb = (short)cb;\n    Assert(cb == poly->cb, \"polygon too big\");\n    poly->rcs.left = kswMax;\n    poly->rcs.right = kswMin;\n    poly->rcs.top = kswMax;\n    poly->rcs.bottom = kswMin;\n#else  //! MAC\n    poly->cpts = cpt + FPure(grfogn & fognAutoClose);\n#endif //! MAC\n\n    ppt = pogn->PrgptLock();\n    ppts = (PTS *)poly->rgpts;\n    for (ipt = 0; ipt < cpt; ipt++, ppt++, ppts++)\n    {\n        _MapPtPts(ppt->xp, ppt->yp, ppts);\n#ifdef MAC\n        // Compute bounding rectangle.\n        if (poly->rcs.top > ppts->v)\n            poly->rcs.top = ppts->v;\n        if (poly->rcs.left > ppts->h)\n            poly->rcs.left = ppts->h;\n        if (poly->rcs.bottom < ppts->v)\n            poly->rcs.bottom = ppts->v;\n        if (poly->rcs.right < ppts->h)\n            poly->rcs.right = ppts->h;\n#endif // MAC\n    }\n    if (grfogn & fognAutoClose)\n        *ppts = poly->rgpts[0];\n\n    pogn->Unlock();\n    UnlockHq(hqoly);\n    return hqoly;\n}\n\n/***************************************************************************\n    Convert a polygon (OGN) into a polygon record (hqoly).  On Windows,\n    this actually generates a new polygon that is the outline of the framed\n    path (which we'll tell GDI to fill).  On the Mac, this just calls\n    _HqolyCreate.\n***************************************************************************/\nHQ GNV::_HqolyFrame(POGN pogn, ulong grfogn)\n{\n#ifdef WIN\n    AssertThis(0);\n    AssertPo(pogn, 0);\n    HQ hqoly;\n\n    POGN pognUse;\n    PT rgptPen[4]; // Pen rectangle vectors.\n\n    rgptPen[0].xp = 0;\n    rgptPen[0].yp = 0;\n    rgptPen[1].xp = _gdd.dxpPen;\n    rgptPen[1].yp = 0;\n    rgptPen[2].xp = _gdd.dxpPen;\n    rgptPen[2].yp = _gdd.dypPen;\n    rgptPen[3].xp = 0;\n    rgptPen[3].yp = _gdd.dypPen;\n\n    if (pvNil == (pognUse = pogn->PognTraceRgpt(rgptPen, 4, grfogn)))\n        return pvNil;\n    hqoly = _HqolyCreate(pognUse, grfogn);\n    ReleasePpo(&pognUse);\n\n    return hqoly;\n#elif defined(MAC)\n    return _HqolyCreate(pogn, grfogn);\n#endif // MAC\n}\n\n/***************************************************************************\n    Scroll the given rectangle by (dxp, dyp).  If prc1 is not nil fill it\n    with the first uncovered rectangle.  If prc2 is not nil fill it\n    with the second uncovered rectangle (if there is one).\n***************************************************************************/\nvoid GNV::ScrollRc(RC *prc, long dxp, long dyp, RC *prc1, RC *prc2)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertNilOrVarMem(prc1);\n    AssertNilOrVarMem(prc2);\n    PTS pts;\n    RCS rcs;\n    PT pt;\n\n    if (!_FMapRcRcs(prc, &rcs) || dxp == 0 && dyp == 0)\n    {\n        if (pvNil != prc1)\n            prc1->Zero();\n        if (pvNil != prc2)\n            prc2->Zero();\n        return;\n    }\n\n    _MapPtPts(prc->xpLeft + dxp, prc->ypTop + dyp, &pts);\n    pt = pts;\n    _pgpt->ScrollRcs(&rcs, pt.xp - rcs.left, pt.yp - rcs.top, &_gdd);\n\n    GetBadRcForScroll(prc, dxp, dyp, prc1, prc2);\n}\n\n/***************************************************************************\n    Static method to get the RC's that are uncovered during a scroll\n    operation.\n***************************************************************************/\nvoid GNV::GetBadRcForScroll(RC *prc, long dxp, long dyp, RC *prc1, RC *prc2)\n{\n    AssertNilOrVarMem(prc1);\n    AssertNilOrVarMem(prc2);\n\n    if (pvNil != prc1)\n    {\n        *prc1 = *prc;\n        if (0 < dxp)\n            prc1->xpRight = prc1->xpLeft + dxp;\n        else if (0 > dxp)\n            prc1->xpLeft = prc1->xpRight + dxp;\n        else if (0 < dyp)\n            prc1->ypBottom = prc1->ypTop + dyp;\n        else\n            prc1->ypTop = prc1->ypBottom + dyp;\n        prc1->FIntersect(prc);\n    }\n\n    if (pvNil != prc2)\n    {\n        if (0 == dxp || 0 == dyp)\n            prc2->Zero();\n        else\n        {\n            *prc2 = *prc;\n            if (0 < dyp)\n                prc2->ypBottom = prc2->ypTop + dyp;\n            else\n                prc2->ypTop = prc2->ypBottom + dyp;\n            if (0 < dxp)\n                prc2->xpLeft += dxp;\n            else\n                prc2->xpRight += dxp;\n            prc2->FIntersect(prc);\n        }\n    }\n}\n\n/***************************************************************************\n    Get the source rectangle.\n***************************************************************************/\nvoid GNV::GetRcSrc(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    *prc = _rcSrc;\n}\n\n/***************************************************************************\n    Set the source rectangle.\n***************************************************************************/\nvoid GNV::SetRcSrc(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n\n    _rcSrc = *prc;\n    if (_rcSrc.FEmpty())\n    {\n        _rcSrc.xpRight = _rcSrc.xpLeft + 1;\n        _rcSrc.ypBottom = _rcSrc.ypTop + 1;\n    }\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Get the destination rectangle.\n***************************************************************************/\nvoid GNV::GetRcDst(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    PT pt;\n\n    *prc = _rcDst;\n    _pgpt->GetPtBase(&pt);\n    prc->Offset(pt.xp, pt.yp);\n}\n\n/***************************************************************************\n    Set the destination rectangle.  Also opens up the vis rc and clipping\n    and sets default font and pen values.\n***************************************************************************/\nvoid GNV::SetRcDst(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    PT pt;\n\n    _rcDst = *prc;\n    if (_rcDst.FEmpty())\n    {\n        _rcDst.xpRight = _rcDst.xpLeft + 1;\n        _rcDst.ypBottom = _rcDst.ypTop + 1;\n    }\n    _pgpt->GetPtBase(&pt);\n    _rcDst.Offset(-pt.xp, -pt.yp);\n    _gdd.prcsClip = pvNil;\n    _rcVis.Max();\n\n    _dsf.onn = vntl.OnnSystem();\n    _dsf.grfont = fontNil;\n    _dsf.dyp = vpappb->DypTextDef();\n    _dsf.tah = tahLeft;\n    _dsf.tav = tavTop;\n    _gdd.dxpPen = _gdd.dypPen = 1;\n\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Set the visible rectangle.  When ClipRc is called, the rc is first\n    intersected with the vis rc.  Passing pvNil opens up the vis rectangle\n    (so there is no natural clipping).  This should be called _after_\n    SetRcDst, since SetRcDst opens up the vis rc.  This also opens the\n    clipping to the vis rc.\n***************************************************************************/\nvoid GNV::SetRcVis(RC *prc)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prc);\n\n    if (prc == pvNil)\n    {\n        _rcVis.Max();\n        _gdd.prcsClip = pvNil;\n    }\n    else\n    {\n        _rcVis = *prc;\n        _rcVis.Map(&_rcSrc, &_rcDst);\n        _rcsClip = RCS(_rcVis);\n        _gdd.prcsClip = &_rcsClip;\n    }\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Intersect the current vis rectangle with the given rectangle and make\n    that the new vis rectangle.  Opens the clipping to the vis rectangle\n    also.\n***************************************************************************/\nvoid GNV::IntersectRcVis(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    RC rc;\n\n    rc = *prc;\n    rc.Map(&_rcSrc, &_rcDst);\n    _rcVis.FIntersect(&rc);\n    _rcsClip = RCS(_rcVis);\n    _gdd.prcsClip = &_rcsClip;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Set the clipping (in source coordinates).  If prc is pvNil, opens up\n    the clipping (to the vis rectangle).  Otherwise, sets the clipping\n    to the intersection of the vis rectangle and *prc.\n***************************************************************************/\nvoid GNV::ClipRc(RC *prc)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prc);\n\n    RC rc;\n\n    if (prc == pvNil)\n    {\n        rc.Max();\n        if (rc == _rcVis)\n        {\n            // no clipping\n            _gdd.prcsClip = pvNil;\n            return;\n        }\n        rc = _rcVis;\n    }\n    else\n    {\n        rc = *prc;\n        rc.Map(&_rcSrc, &_rcDst);\n        rc.FIntersect(&_rcVis);\n    }\n\n    _rcsClip = RCS(rc);\n    _gdd.prcsClip = &_rcsClip;\n}\n\n/***************************************************************************\n    Clip to the source rectangle.\n***************************************************************************/\nvoid GNV::ClipToSrc(void)\n{\n    AssertThis(0);\n    ClipRc(&_rcSrc);\n}\n\n/***************************************************************************\n    Set the pen size (in source coordinates).\n***************************************************************************/\nvoid GNV::SetPenSize(long dxpPen, long dypPen)\n{\n    AssertThis(0);\n    AssertIn(dxpPen, 0, kswMax);\n    AssertIn(dypPen, 0, kswMax);\n    _gdd.dxpPen = LwMulDivAway(dxpPen, _rcDst.Dxp(), _rcSrc.Dxp());\n    _gdd.dypPen = LwMulDivAway(dypPen, _rcDst.Dyp(), _rcSrc.Dyp());\n}\n\n/***************************************************************************\n    Set the current font info.\n***************************************************************************/\nvoid GNV::SetFont(long onn, ulong grfont, long dypFont, long tah, long tav)\n{\n    AssertThis(0);\n    _dsf.onn = onn;\n    _dsf.grfont = grfont;\n    _dsf.dyp = LwMulDivAway(dypFont, _rcDst.Dyp(), _rcSrc.Dyp());\n    _dsf.tah = tah;\n    _dsf.tav = tav;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Set the current font.\n***************************************************************************/\nvoid GNV::SetOnn(long onn)\n{\n    AssertThis(0);\n    _dsf.onn = onn;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Set the current font style.\n***************************************************************************/\nvoid GNV::SetFontStyle(ulong grfont)\n{\n    AssertThis(0);\n    _dsf.grfont = grfont;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Set the current font size.\n***************************************************************************/\nvoid GNV::SetFontSize(long dyp)\n{\n    AssertThis(0);\n    _dsf.dyp = LwMulDivAway(dyp, _rcDst.Dyp(), _rcSrc.Dyp());\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Set the current font alignment.\n***************************************************************************/\nvoid GNV::SetFontAlign(long tah, long tav)\n{\n    AssertThis(0);\n    _dsf.tah = tah;\n    _dsf.tav = tav;\n    AssertThis(0);\n}\n\n/******************************************************************************\n    Set the current font.  Font size must be specified in Dst units.\n******************************************************************************/\nvoid GNV::SetDsf(DSF *pdsf)\n{\n    AssertThis(0);\n    AssertPo(pdsf, 0);\n\n    _dsf = *pdsf;\n    AssertThis(0);\n}\n\n/******************************************************************************\n    Get the current font.  Font size is specified in Dst units.\n******************************************************************************/\nvoid GNV::GetDsf(DSF *pdsf)\n{\n    AssertThis(0);\n    AssertVarMem(pdsf);\n    *pdsf = _dsf;\n}\n\n/******************************************************************************\n    Draw some text.\n******************************************************************************/\nvoid GNV::DrawRgch(achar *prgch, long cch, long xp, long yp, ACR acrFore, ACR acrBack)\n{\n    AssertThis(0);\n    AssertIn(cch, 0, kcbMax);\n    AssertPvCb(prgch, cch);\n    AssertPo(&acrFore, 0);\n    AssertPo(&acrBack, 0);\n\n    PTS pts;\n\n    if (cch == 0)\n        return;\n\n    _gdd.acrFore = acrFore;\n    _gdd.acrBack = acrBack;\n    _MapPtPts(xp, yp, &pts);\n    _pgpt->DrawRgch(prgch, cch, pts, &_gdd, &_dsf);\n}\n\n/***************************************************************************\n    Draw the given string.\n***************************************************************************/\nvoid GNV::DrawStn(PSTN pstn, long xp, long yp, ACR acrFore, ACR acrBack)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    AssertPo(&acrFore, 0);\n    AssertPo(&acrBack, 0);\n\n    DrawRgch(pstn->Prgch(), pstn->Cch(), xp, yp, acrFore, acrBack);\n}\n\n/******************************************************************************\n    Return the bounding box of the text.  If the GNV has any scaling, this\n    is approximate.  This even works if cch is 0 (just gives the height).\n******************************************************************************/\nvoid GNV::GetRcFromRgch(RC *prc, achar *prgch, long cch, long xp, long yp)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertIn(cch, 0, kcbMax);\n    AssertPvCb(prgch, cch);\n\n    PTS pts;\n    RCS rcs;\n\n    _MapPtPts(xp, yp, &pts);\n    _pgpt->GetRcsFromRgch(&rcs, prgch, cch, pts, &_dsf);\n    *prc = rcs;\n    prc->Map(&_rcDst, &_rcSrc);\n}\n\n/******************************************************************************\n    Return the bounding box of the text.  If the GNV has any scaling, this\n    is approximate.  This even works if the string is empty (gives the height).\n******************************************************************************/\nvoid GNV::GetRcFromStn(RC *prc, PSTN pstn, long xp, long yp)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertPo(pstn, 0);\n\n    GetRcFromRgch(prc, pstn->Prgch(), pstn->Cch(), xp, yp);\n}\n\n/***************************************************************************\n    Copy bits from a GNV to this one.\n***************************************************************************/\nvoid GNV::CopyPixels(PGNV pgnvSrc, RC *prcSrc, RC *prcDst)\n{\n    AssertThis(0);\n    AssertPo(pgnvSrc, 0);\n    AssertVarMem(prcSrc);\n    AssertVarMem(prcDst);\n    RCS rcsSrc, rcsDst;\n\n    if (!pgnvSrc->_FMapRcRcs(prcSrc, &rcsSrc) || !_FMapRcRcs(prcDst, &rcsDst))\n        return;\n    _pgpt->CopyPixels(pgnvSrc->_pgpt, &rcsSrc, &rcsDst, &_gdd);\n}\n\nulong _mpgfdgrfpt[4] = {fptNegateXp, fptNil, fptNegateYp | fptTranspose, fptTranspose};\n\nulong _mpgfdgrfptInv[4] = {fptNegateXp, fptNil, fptNegateXp | fptTranspose, fptTranspose};\n\n/***************************************************************************\n    Get the old palette in *ppglclrOld, allocate a transitionary palette\n    in *ppglclrTrans, and get init the palette animation.  On failure set\n    the new palette and set *ppglclrOld and *ppglclrTrans to nil.\n    If cbitPixel is not zero and not the depth of this device, this sets\n    the palette and returns false.\n***************************************************************************/\nbool GNV::_FInitPaletteTrans(PGL pglclr, PGL *ppglclrOld, PGL *ppglclrTrans, long cbitPixel)\n{\n    AssertNilOrPo(pglclr, 0);\n    AssertVarMem(ppglclrOld);\n    AssertVarMem(ppglclrTrans);\n    long cclr = pvNil == pglclr ? 256 : pglclr->IvMac();\n\n    *ppglclrOld = pvNil;\n    *ppglclrTrans = pvNil;\n\n    // get the current palette and set up the temporary transitionary palette\n    if (0 != cbitPixel && _pgpt->CbitPixel() != cbitPixel || pvNil == (*ppglclrOld = GPT::PglclrGetPalette()) ||\n        0 == (cclr = LwMin((*ppglclrOld)->IvMac(), cclr)) || pvNil == (*ppglclrTrans = GL::PglNew(size(CLR), cclr)))\n    {\n        ReleasePpo(ppglclrOld);\n        if (pvNil != pglclr)\n            GPT::SetActiveColors(pglclr, fpalIdentity);\n        return fFalse;\n    }\n\n    AssertDo((*ppglclrTrans)->FSetIvMac(cclr), 0);\n    GPT::SetActiveColors(*ppglclrOld, fpalIdentity | fpalInitAnim);\n    return fTrue;\n}\n\n/***************************************************************************\n    Transition the palette.  Merge pglclrOld and pglclrNew into pglclrTrans\n    and animate the palette to pglclrTrans.  If either source palette is nil,\n    *pclrSub is used in place of the nil palette.  acrSub must be an RGB color.\n***************************************************************************/\nvoid GNV::_PaletteTrans(PGL pglclrOld, PGL pglclrNew, long lwNum, long lwDen, PGL pglclrTrans, CLR *pclrSub)\n{\n    AssertNilOrPo(pglclrOld, 0);\n    AssertNilOrPo(pglclrNew, 0);\n    AssertIn(lwDen, 1, kcbMax);\n    AssertIn(lwNum, 0, lwDen + 1);\n    AssertNilOrVarMem(pclrSub);\n\n    long iclr;\n    CLR clrOld, clrNew;\n    CLR clrSub;\n\n    iclr = pglclrTrans->IvMac();\n    if (pvNil != pglclrOld)\n        iclr = LwMin(pglclrOld->IvMac(), iclr);\n    if (pvNil != pglclrNew)\n        iclr = LwMin(pglclrNew->IvMac(), iclr);\n    if (pvNil != pclrSub)\n        clrSub = *pclrSub;\n    else\n        ClearPb(&clrSub, size(clrSub));\n\n    while (iclr-- > 0)\n    {\n        clrOld = clrNew = clrSub;\n        if (pvNil != pglclrOld)\n            pglclrOld->Get(iclr, &clrOld);\n        if (pvNil != pglclrNew)\n            pglclrNew->Get(iclr, &clrNew);\n\n        clrOld.bRed += (byte)LwMulDiv((long)clrNew.bRed - clrOld.bRed, lwNum, lwDen);\n        clrOld.bGreen += (byte)LwMulDiv((long)clrNew.bGreen - clrOld.bGreen, lwNum, lwDen);\n        clrOld.bBlue += (byte)LwMulDiv((long)clrNew.bBlue - clrOld.bBlue, lwNum, lwDen);\n        pglclrTrans->Put(iclr, &clrOld);\n    }\n\n    GPT::SetActiveColors(pglclrTrans, fpalIdentity | fpalAnimate);\n}\n\n/***************************************************************************\n    Create a temporary GNV that is a copy of the given rectangle in this\n    GNV.  This is used for several transitions.\n***************************************************************************/\nbool GNV::_FEnsureTempGnv(PGNV *ppgnv, RC *prc)\n{\n    PGPT pgpt;\n    PGNV pgnv;\n\n    if (pvNil == (pgpt = GPT::PgptNewOffscreen(prc, 8)) || pvNil == (pgnv = NewObj GNV(pgpt)))\n    {\n        ReleasePpo(&pgpt);\n        *ppgnv = pvNil;\n        return fFalse;\n    }\n\n    ReleasePpo(&pgpt);\n    pgnv->CopyPixels(this, prc, prc);\n    GPT::Flush();\n    *ppgnv = pgnv;\n    return fTrue;\n}\n\n/***************************************************************************\n    Wipe the source gnv onto this one.  If acrFill is not kacrClear, first\n    wipe acrFill on.  The source and destination rectangles must be the same\n    size.  gfd indicates which direction the wipe is.  If pglclr is not\n    nil and acrFill is clear, the palette transition is gradual.\n***************************************************************************/\nvoid GNV::Wipe(long gfd, ACR acrFill, PGNV pgnvSrc, RC *prcSrc, RC *prcDst, ulong dts, PGL pglclr)\n{\n    AssertThis(0);\n    AssertPo(&acrFill, 0);\n    AssertPo(pgnvSrc, 0);\n    AssertVarMem(prcSrc);\n    AssertVarMem(prcDst);\n    AssertNilOrPo(pglclr, 0);\n\n    ulong grfpt, grfptInv;\n    ulong tsStart, dtsT;\n    long dxp, dxpTot;\n    long cact;\n    RC rcSrc, rcDst;\n    RC rc1, rc2;\n    PGL pglclrOld = pvNil;\n    PGL pglclrTrans = pvNil;\n\n    Assert(prcSrc->Dyp() == prcDst->Dyp() && prcSrc->Dxp() == prcDst->Dxp(), \"rc's are scaled\");\n\n    GPT::Flush();\n    if (!FIn(dts, 1, kdtsMaxTrans))\n        dts = kdtsSecond;\n\n    for (cact = 0; cact < 2; cact++)\n    {\n        grfpt = _mpgfdgrfpt[gfd & 0x03];\n        grfptInv = _mpgfdgrfptInv[gfd & 0x03];\n        gfd >>= 2;\n\n        if (cact == 0)\n        {\n            if (kacrClear == acrFill)\n                continue;\n        }\n        else if (pvNil != pglclr && !_FInitPaletteTrans(pglclr, &pglclrOld, &pglclrTrans, 8))\n        {\n            pglclr = pvNil; // so we don't try to transition\n        }\n\n        tsStart = TsCurrent();\n        rcSrc = *prcSrc;\n        rcDst = *prcDst;\n        rcSrc.Transform(grfpt);\n        rcDst.Transform(grfpt);\n        dxpTot = rcDst.Dxp();\n        for (dxp = 0; dxp < dxpTot;)\n        {\n            rc1 = rcSrc;\n            rc2 = rcDst;\n            rc1.xpLeft = rcSrc.xpLeft + dxp;\n            rc2.xpLeft = rcDst.xpLeft + dxp;\n            dtsT = LwMin(TsCurrent() - tsStart, dts);\n            dxp = LwMulDiv(dxpTot, dtsT, dts);\n            rc1.xpRight = rcSrc.xpLeft + dxp;\n            rc2.xpRight = rcDst.xpLeft + dxp;\n\n            if (cact == 1 && pglclr != pvNil)\n                _PaletteTrans(pglclrOld, pglclr, dtsT, dts, pglclrTrans);\n\n            if (!rc2.FEmpty())\n            {\n                rc1.Transform(grfptInv);\n                rc2.Transform(grfptInv);\n                if (cact == 0)\n                    FillRc(&rc2, acrFill);\n                else\n                    CopyPixels(pgnvSrc, &rc1, &rc2);\n                GPT::Flush();\n            }\n        }\n\n        if (pvNil != pglclr)\n        {\n            // set the palette\n            GPT::SetActiveColors(pglclr, fpalIdentity);\n            pglclr = pvNil; // so we don't transition during the second wipe\n        }\n    }\n\n    ReleasePpo(&pglclrOld);\n    ReleasePpo(&pglclrTrans);\n}\n\n/***************************************************************************\n    Slide the source gnv onto this one.  The source and destination\n    rectangles must be the same size.\n***************************************************************************/\nvoid GNV::Slide(long gfd, ACR acrFill, PGNV pgnvSrc, RC *prcSrc, RC *prcDst, ulong dts, PGL pglclr)\n{\n    AssertThis(0);\n    AssertPo(&acrFill, 0);\n    AssertPo(pgnvSrc, 0);\n    AssertVarMem(prcSrc);\n    AssertVarMem(prcDst);\n    AssertNilOrPo(pglclr, 0);\n\n    ulong grfpt, grfptInv;\n    ulong dtsT, tsStart;\n    long cact;\n    long dxp, dxpTot, dxpOld;\n    RC rcSrc, rcDst;\n    RC rc1, rc2;\n    PGNV pgnv;\n    PT dpt;\n    PGL pglclrOld = pvNil;\n    PGL pglclrTrans = pvNil;\n\n    Assert(prcSrc->Dyp() == prcDst->Dyp() && prcSrc->Dxp() == prcDst->Dxp(), \"rc's are scaled\");\n\n    // allocate the offscreen port and copy the destination into it.\n    if (!_FEnsureTempGnv(&pgnv, prcDst))\n    {\n        if (pvNil != pglclr)\n            GPT::SetActiveColors(pglclr, fpalIdentity);\n        CopyPixels(pgnvSrc, prcSrc, prcDst);\n        GPT::Flush();\n        return;\n    }\n\n    if (!FIn(dts, 1, kdtsMaxTrans))\n        dts = kdtsSecond;\n\n    for (cact = 0; cact < 2; cact++)\n    {\n        grfpt = _mpgfdgrfpt[gfd & 0x03];\n        grfptInv = _mpgfdgrfptInv[gfd & 0x03];\n        gfd >>= 2;\n\n        if (cact == 0)\n        {\n            if (kacrClear == acrFill)\n                continue;\n        }\n        else if (pvNil != pglclr && !_FInitPaletteTrans(pglclr, &pglclrOld, &pglclrTrans))\n        {\n            pglclr = pvNil; // so we don't try to transition\n        }\n\n        tsStart = TsCurrent();\n        rcSrc = *prcSrc;\n        rcDst = *prcDst;\n        rcSrc.Transform(grfpt);\n        rcDst.Transform(grfpt);\n        dxpTot = rcDst.Dxp();\n        for (dxp = 0; dxp < dxpTot;)\n        {\n            dxpOld = dxp;\n            dtsT = LwMin(TsCurrent() - tsStart, dts);\n            dxp = LwMulDiv(dxpTot, dtsT, dts);\n\n            if (dxp != dxpOld)\n            {\n                // scroll the stuff that's already there\n                dpt.xp = dxp - dxpOld;\n                dpt.yp = 0;\n                dpt.Transform(grfptInv);\n                pgnv->ScrollRc(prcDst, dpt.xp, dpt.yp);\n\n                // copy in the new stuff\n                rc1 = rcSrc;\n                rc2 = rcDst;\n                rc1.xpLeft = rc1.xpRight - dxp;\n                rc1.xpRight -= dxpOld;\n                rc2.xpRight = rc2.xpLeft + dxp - dxpOld;\n                rc1.Transform(grfptInv);\n                rc2.Transform(grfptInv);\n                if (cact == 0)\n                    pgnv->FillRc(&rc2, acrFill);\n                else\n                    pgnv->CopyPixels(pgnvSrc, &rc1, &rc2);\n            }\n\n            if (pvNil != pglclr && 1 == cact)\n                _PaletteTrans(pglclrOld, pglclr, dtsT, dts, pglclrTrans);\n\n            if (dxp != dxpOld)\n            {\n                // copy the result to the destination\n                CopyPixels(pgnv, prcDst, prcDst);\n                GPT::Flush();\n            }\n        }\n\n        if (pvNil != pglclr)\n        {\n            // set the palette\n            GPT::SetActiveColors(pglclr, fpalIdentity);\n\n            // if we're not in 8 bit and cact is 1, copy the pixels so we\n            // make sure we've drawn the picture after the last palette change\n            if (1 == cact && _pgpt->CbitPixel() != 8)\n            {\n                CopyPixels(pgnv, prcDst, prcDst);\n                GPT::Flush();\n            }\n            pglclr = pvNil; // so we don't transition during the second wipe\n        }\n    }\n\n    ReleasePpo(&pgnv);\n    ReleasePpo(&pglclrOld);\n    ReleasePpo(&pglclrTrans);\n}\n\n// klwPrime must be a prime and klwRoot must be a primitive root for klwPrime.\n// the code under #ifdef SPECIAL_PRIME below assumes that klwPrime is\n// (2^16 + 1) and klwRoot is (2 ^15 - 1).  If you change klwPrime and/or\n// klwRoot, make sure that SPECIAL_PRIME is not defined.\n\n#define SPECIAL_PRIME\n#define klwPrime 65537 // a prime\n#define klwRoot 32767  // a primitive root for the prime\n\n/***************************************************************************\n    Returns the next quasi-random number for Dissolve.\n***************************************************************************/\ninline long _LwNextDissolve(long lw)\n{\n    AssertIn(lw, 1, klwPrime);\n\n#ifdef SPECIAL_PRIME\n\n    Assert(klwPrime == 0x00010001, 0);\n    Assert(klwRoot == 0x00007FFF, 0);\n\n    // multiply by 2^15 - 1\n    lw = (lw << 15) - lw;\n\n    // mod by 2^16 + 1\n    lw = (lw & 0x0000FFFFL) - (long)((ulong)lw >> 16);\n    if (lw < 0)\n        lw += klwPrime;\n\n#else //! SPECIAL_PRIME\n\n    LwMulDivMod(lw, klwRoot, klwPrime, &lw);\n\n#endif //! SPECIAL_PRIME\n\n    return lw;\n}\n\n/***************************************************************************\n    Dissolve the source gnv into this one.  If acrFill is not kacrClear,\n    first dissolve into a solid acrFill, then into the source. The source\n    and destination rectangles must be the same size.  If pgnvSrc is nil,\n    just dissolve into the solid color.  Each portion is done in dts time.\n***************************************************************************/\nvoid GNV::Dissolve(long crcWidth, long crcHeight, ACR acrFill, PGNV pgnvSrc, RC *prcSrc, RC *prcDst, ulong dts,\n                   PGL pglclr)\n{\n    AssertThis(0);\n    AssertPo(&acrFill, 0);\n    AssertNilOrPo(pgnvSrc, 0);\n    AssertNilOrVarMem(prcSrc);\n    AssertVarMem(prcDst);\n    AssertNilOrPo(pglclr, 0);\n    AssertIn(crcWidth, 0, kcbMax);\n    AssertIn(crcHeight, 0, kcbMax);\n\n    ulong tsStart, dtsT;\n    byte bFill;\n    long cbRowSrc, cbRowDst;\n    RND rnd;\n    long lw, cact, irc, crc, crcFill, crcT;\n    RC rc1, rc2;\n    bool fOnScreen;\n    long dibExtra, dibRow, ibExtra;\n    byte *pbRow;\n    byte *prgbDst = pvNil;\n    byte *prgbSrc = pvNil;\n    PGNV pgnv = pvNil;\n    PGL pglclrOld = pvNil;\n    PGL pglclrTrans = pvNil;\n\n    if (prcDst->FEmpty())\n        return;\n\n    if (crcWidth <= 0 || crcHeight <= 0)\n    {\n        // do off screen pixel level dissolve\n        fOnScreen = fFalse;\n\n        // allocate the offscreen port and copy the destination into it.\n        if (pgnvSrc != pvNil)\n        {\n            PGPT pgptSrc;\n\n            AssertVarMem(prcSrc);\n            Assert(prcSrc->Dyp() == prcDst->Dyp() && prcSrc->Dxp() == prcDst->Dxp(), \"rc's are scaled\");\n            pgptSrc = pgnvSrc->Pgpt();\n            if (pgptSrc->CbitPixel() != 8 || pvNil == (prgbSrc = pgptSrc->PrgbLockPixels(&rc2)))\n            {\n                Bug(\"Can't dissolve from this GPT\");\n                goto LFail;\n            }\n            rc1 = *prcSrc;\n            rc1.Map(&pgnvSrc->_rcSrc, &pgnvSrc->_rcDst);\n            if (!rc2.FContains(&rc1))\n            {\n                Bug(\"Source rectangle is outside the source bitmap\");\n                goto LFail;\n            }\n            cbRowSrc = pgptSrc->CbRow();\n            prgbSrc += LwMul(rc1.ypTop - rc2.ypTop, cbRowSrc) + rc1.xpLeft - rc2.xpLeft;\n        }\n\n        if (!_FEnsureTempGnv(&pgnv, prcDst))\n        {\n        LFail:\n            if (pvNil != prgbSrc && pvNil != pgnvSrc)\n                pgnvSrc->Pgpt()->Unlock();\n\n            if (pvNil != pglclr)\n                GPT::SetActiveColors(pglclr, fpalIdentity);\n            if (pvNil != pgnvSrc)\n                CopyPixels(pgnvSrc, prcSrc, prcDst);\n            else\n                FillRc(prcDst, acrFill);\n            GPT::Flush();\n            return;\n        }\n        prgbDst = pgnv->Pgpt()->PrgbLockPixels();\n        cbRowDst = pgnv->Pgpt()->CbRow();\n\n        if (acrFill != kacrClear)\n        {\n            // get the byte value to fill with\n            byte bT = prgbDst[0];\n\n            rc1.Set(prcDst->xpLeft, prcDst->ypTop, prcDst->xpLeft + 1, prcDst->ypTop + 1);\n            pgnv->FillRc(&rc1, acrFill);\n            GPT::Flush();\n            bFill = prgbDst[0];\n            prgbDst[0] = bT;\n        }\n\n        crcWidth = cbRowDst;\n        crcHeight = prcDst->Dyp();\n        crcFill = LwMul(crcWidth, crcHeight) + prcDst->Dxp() - cbRowDst;\n\n        dibExtra = (klwPrime - 1) % crcWidth;\n        dibRow = ((klwPrime - 1) / crcWidth) * cbRowSrc;\n    }\n    else\n    {\n        // on screen dissolve\n        fOnScreen = fTrue;\n        crcWidth = LwMin(prcDst->Dxp(), crcWidth);\n        crcHeight = LwMin(prcDst->Dyp(), crcHeight);\n        crcFill = LwMul(crcWidth, crcHeight);\n    }\n\n    if (!FIn(dts, 1, kdtsMaxTrans))\n        dts = kdtsSecond;\n\n    // the first time through, dissolve to the color; the second time\n    // through dissolve to the source bitmap\n    for (cact = 0; cact < 2; cact++)\n    {\n        if (cact == 0)\n        {\n            if (kacrClear == acrFill)\n                continue;\n        }\n        else\n        {\n            if (pvNil == pgnvSrc)\n                goto LSetPalette;\n            if (pvNil != pglclr && !_FInitPaletteTrans(pglclr, &pglclrOld, &pglclrTrans, fOnScreen ? 8 : 0))\n            {\n                pglclr = pvNil; // so we don't try to transition\n            }\n        }\n\n        // We start with lw a random value between 1 and (klwPrime - 1)\n        // (inclusive). Subsequent values of lw are computed as\n        // lw = lw * klwRoot % klwPrime. Because klwRoot is a primitive root\n        // of unity for klwPrime, lw will take on all values from 1 thru\n        // (klwPrime - 1) in seemingly random order.\n\n        irc = rnd.LwNext(crcFill);\n        lw = (crcFill - irc - 1) % (klwPrime - 1) + 1;\n\n        if (!fOnScreen && cact != 0)\n        {\n            // pbRow points to the row of prgbSrc that the current source\n            // pixel is in.  ibExtra is the offset of the source pixel\n            // into the row (the \"xp\" coordinate of the source pixel).\n            // dibRow and dibExtra are for finding the source pixel\n            // incrementally.  When we subtract (klwPrime - 1) from irc,\n            // we subtract dibRow from pbRow and dibExtra from ibExtra.\n            // If ibExtra goes negative, we add cbRowSrc to pbRow and\n            // crcWidth to ibExtra.\n\n            ibExtra = irc % crcWidth;\n            pbRow = prgbSrc + (irc / crcWidth) * cbRowSrc;\n        }\n\n        tsStart = TsCurrent();\n        for (crc = 0; crc < crcFill;)\n        {\n            dtsT = LwMin(TsCurrent() - tsStart, dts);\n            crcT = LwMulDiv(crcFill, dtsT, dts) - crc;\n            if (crcT <= 0)\n                goto LPaletteTrans;\n            crc += crcT;\n\n            if (fOnScreen)\n            {\n                for (; crcT > 0; crcT--)\n                {\n                    // find the next rectangle to fill\n                    for (irc -= klwPrime - 1; irc < 0; irc = crcFill - lw)\n                        lw = _LwNextDissolve(lw);\n\n                    rc1.SetToCell(prcDst, crcWidth, crcHeight, irc % crcWidth, irc / crcWidth);\n                    if (cact == 0)\n                        FillRc(&rc1, acrFill);\n                    else\n                    {\n                        rc2 = rc1;\n                        rc2.Map(prcDst, prcSrc);\n                        CopyPixels(pgnvSrc, &rc2, &rc1);\n                    }\n                }\n                goto LPaletteTrans;\n            }\n\n            if (cact == 0)\n            {\n                // fill with bFill\n                for (; crcT > 0; crcT--)\n                {\n                    // find the next pixel to fill\n                    for (irc -= klwPrime - 1; irc < 0; irc = crcFill - lw)\n                        lw = _LwNextDissolve(lw);\n                    prgbDst[irc] = bFill;\n                }\n                goto LBlastToScreen;\n            }\n\n            // cact == 1, fill from prgbSrc\n            for (; crcT > 0; crcT--)\n            {\n                // find the next rectangle to fill\n                irc -= klwPrime - 1;\n                if (irc >= 0)\n                {\n                    pbRow -= dibRow;\n                    ibExtra -= dibExtra;\n                    if (ibExtra < 0)\n                    {\n                        pbRow -= cbRowSrc;\n                        ibExtra += crcWidth;\n                    }\n                }\n                else\n                {\n                    do\n                    {\n                        lw = _LwNextDissolve(lw);\n                    } while (0 > (irc = crcFill - lw));\n\n#ifdef IN_80386\n                    __asm\n                        {                         // ibExtra = irc % crcWidth;\n                         // pbRow = prgbSrc + (irc / crcWidth) * cbRowSrc;\n\t\t\t\t\t\tmov\t\tedx,irc\n\t\t\t\t\t\tmovzx\teax,dx\n\t\t\t\t\t\tshr\t\tedx,16\n\t\t\t\t\t\tdiv\t\tWORD PTR crcWidth // 16 bit divide for speed\n\t\t\t\t\t\timul\teax,cbRowSrc\n\t\t\t\t\t\tmov\t\tibExtra,edx\n\t\t\t\t\t\tadd\t\teax,prgbSrc\n\t\t\t\t\t\tmov\t\tpbRow,eax\n                        }\n#else  //! IN_80386\n                    ibExtra = irc % crcWidth;\n                    pbRow = prgbSrc + (irc / crcWidth) * cbRowSrc;\n#endif //! IN_80386\n                }\n\n                prgbDst[irc] = pbRow[ibExtra];\n            }\n\n        LBlastToScreen:\n            CopyPixels(pgnv, prcDst, prcDst);\n            GPT::Flush();\n\n        LPaletteTrans:\n            if (cact == 1 && pglclr != pvNil)\n                _PaletteTrans(pglclrOld, pglclr, dtsT, dts, pglclrTrans);\n        }\n\n    LSetPalette:\n        if (pvNil != pglclr)\n        {\n            // set the palette\n            GPT::SetActiveColors(pglclr, fpalIdentity);\n\n            // if we're not in 8 bit and cact is 1, copy the pixels so we\n            // make sure we've drawn the picture after the last palette change\n            if (pvNil != pgnv && 1 == cact && _pgpt->CbitPixel() != 8)\n            {\n                CopyPixels(pgnv, prcDst, prcDst);\n                GPT::Flush();\n            }\n            pglclr = pvNil; // so we don't transition during the second wipe\n        }\n    }\n\n    if (pvNil != prgbDst)\n        pgnv->Pgpt()->Unlock();\n    if (pvNil != prgbSrc && pvNil != pgnvSrc)\n        pgnvSrc->Pgpt()->Unlock();\n    ReleasePpo(&pgnv);\n    ReleasePpo(&pglclrOld);\n    ReleasePpo(&pglclrTrans);\n}\n\n/***************************************************************************\n    Fade the palette to color acrFade, copy the pixels from pgnvSrc to\n    this gnv, then fade to the new palette or original palette.  Each fade\n    is given dts time.  Asserts that acrFade is an rgb color.  cactMax is\n    the maximum number of palette interpolations to do.  It doesn't make\n    sense for this to be bigger than 256.  If it's zero, we'll use 256.\n***************************************************************************/\nvoid GNV::Fade(long cactMax, ACR acrFade, PGNV pgnvSrc, RC *prcSrc, RC *prcDst, ulong dts, PGL pglclr)\n{\n    AssertThis(0);\n    AssertIn(cactMax, 0, 257);\n    AssertPo(&acrFade, facrRgb);\n    AssertPo(pgnvSrc, 0);\n    AssertVarMem(prcSrc);\n    AssertVarMem(prcDst);\n    AssertNilOrPo(pglclr, 0);\n\n    ulong tsStart;\n    long cact, cactOld;\n    CLR clr;\n    PGL pglclrOld = pvNil;\n    PGL pglclrTrans = pvNil;\n\n    cactMax = (cactMax <= 0) ? 256 : LwMin(cactMax, 256);\n\n    if (!_FInitPaletteTrans(pglclr, &pglclrOld, &pglclrTrans, 8))\n    {\n        CopyPixels(pgnvSrc, prcSrc, prcDst);\n        GPT::Flush();\n        return;\n    }\n\n    GPT::Flush();\n\n    if (!FIn(dts, 1, kdtsMaxTrans))\n        dts = kdtsSecond;\n\n    acrFade.GetClr(&clr);\n\n    tsStart = TsCurrent();\n    for (cact = 0; cact < cactMax;)\n    {\n        cactOld = cact;\n        cact = LwMulDiv(cactMax, LwMin(TsCurrent() - tsStart, dts), dts);\n        if (cactOld < cact)\n            _PaletteTrans(pglclrOld, pvNil, cact, cactMax, pglclrTrans, &clr);\n    }\n\n    CopyPixels(pgnvSrc, prcSrc, prcDst);\n    GPT::Flush();\n\n    if (pvNil == pglclr)\n        pglclr = pglclrOld;\n\n    tsStart = TsCurrent();\n    for (cact = 0; cact < cactMax;)\n    {\n        cactOld = cact;\n        cact = LwMulDiv(cactMax, LwMin(TsCurrent() - tsStart, dts), dts);\n        if (cactOld < cact)\n            _PaletteTrans(pvNil, pglclr, cact, cactMax, pglclrTrans, &clr);\n    }\n\n    GPT::SetActiveColors(pglclr, fpalIdentity);\n    ReleasePpo(&pglclrOld);\n    ReleasePpo(&pglclrTrans);\n}\n\n/***************************************************************************\n    Open and/or close a rectangular iris onto the gnvSrc with an\n    intermediate color of acrFill (if not clear).  xp, yp are the focus\n    point of the iris (in destination coordinates).\n***************************************************************************/\nvoid GNV::Iris(long gfd, long xp, long yp, ACR acrFill, PGNV pgnvSrc, RC *prcSrc, RC *prcDst, ulong dts, PGL pglclr)\n{\n    AssertThis(0);\n    AssertPo(&acrFill, 0);\n    AssertPo(pgnvSrc, 0);\n    AssertVarMem(prcSrc);\n    AssertVarMem(prcDst);\n    AssertNilOrPo(pglclr, 0);\n\n    ulong tsStart, dtsT;\n    RC rc, rcOld, rcDst;\n    PT pt, ptBase;\n    long cact;\n    bool fOpen;\n    PREGN pregn, pregnClip;\n    PGL pglclrOld = pvNil;\n    PGL pglclrTrans = pvNil;\n\n    GPT::Flush();\n\n    if (pvNil == (pregn = REGN::PregnNew(prcDst)))\n        goto LFail;\n\n    if (!FIn(dts, 1, kdtsMaxTrans))\n        dts = kdtsSecond;\n\n    _pgpt->GetPtBase(&ptBase);\n\n    pt.xp = LwBound(xp, prcDst->xpLeft, prcDst->xpRight + 1);\n    pt.yp = LwBound(yp, prcDst->ypTop, prcDst->ypBottom + 1);\n    pt.Map(&_rcSrc, &_rcDst);\n    pt += ptBase;\n    rcDst = *prcDst;\n    rcDst.Map(&_rcSrc, &_rcDst);\n    rcDst.Offset(ptBase.xp, ptBase.yp);\n\n    for (cact = 0; cact < 2; cact++)\n    {\n        if (cact == 0)\n        {\n            if (kacrClear == acrFill)\n                continue;\n        }\n        else if (pvNil != pglclr && !_FInitPaletteTrans(pglclr, &pglclrOld, &pglclrTrans, 8))\n        {\n            pglclr = pvNil; // so we don't try to transition\n        }\n\n        fOpen = !(gfd & (1 << cact));\n        if (fOpen)\n            rc.Set(pt.xp, pt.yp, pt.xp, pt.yp);\n        else\n            rc = rcDst;\n\n        pregnClip = pvNil;\n        tsStart = TsCurrent();\n        for (dtsT = 0; dtsT < dts;)\n        {\n            rcOld = rc;\n            dtsT = LwMin(TsCurrent() - tsStart, dts);\n            if (!fOpen)\n                dtsT = dts - dtsT;\n            rc.xpLeft = pt.xp + LwMulDiv(rcDst.xpLeft - pt.xp, dtsT, dts);\n            rc.xpRight = pt.xp + LwMulDiv(rcDst.xpRight - pt.xp, dtsT, dts);\n            rc.ypTop = pt.yp + LwMulDiv(rcDst.ypTop - pt.yp, dtsT, dts);\n            rc.ypBottom = pt.yp + LwMulDiv(rcDst.ypBottom - pt.yp, dtsT, dts);\n            if (!fOpen)\n                dtsT = dts - dtsT;\n\n            if (cact == 1 && pglclr != pvNil)\n                _PaletteTrans(pglclrOld, pglclr, dtsT, dts, pglclrTrans);\n\n            if (rc == rcOld)\n                continue;\n\n            _pgpt->ClipToRegn(&pregnClip);\n            pregn->SetRc(fOpen ? &rc : &rcOld);\n            if (!pregn->FDiffRc(fOpen ? &rcOld : &rc) || pvNil != pregnClip && !pregn->FIntersect(pregnClip))\n            {\n                _pgpt->ClipToRegn(&pregnClip);\n                ReleasePpo(&pregn);\n            LFail:\n                if (pvNil != pglclr)\n                    GPT::SetActiveColors(pglclr, fpalIdentity);\n                CopyPixels(pgnvSrc, prcSrc, prcDst);\n                return;\n            }\n            _pgpt->ClipToRegn(&pregnClip);\n\n            _pgpt->ClipToRegn(&pregn);\n            if (cact == 0)\n                FillRc(prcDst, acrFill);\n            else\n                CopyPixels(pgnvSrc, prcSrc, prcDst);\n            GPT::Flush();\n            _pgpt->ClipToRegn(&pregn);\n        }\n\n        if (pvNil != pglclr)\n        {\n            // set the palette\n            GPT::SetActiveColors(pglclr, fpalIdentity);\n            pglclr = pvNil; // so we don't transition during the second iris\n        }\n    }\n\n    ReleasePpo(&pregn);\n    ReleasePpo(&pglclrOld);\n    ReleasePpo(&pglclrTrans);\n}\n\n/***************************************************************************\n    Draw the picture in the given rectangle.\n***************************************************************************/\nvoid GNV::DrawPic(PPIC ppic, RC *prc)\n{\n    AssertThis(0);\n    AssertPo(ppic, 0);\n    AssertVarMem(prc);\n    RCS rcs;\n\n    if (!_FMapRcRcs(prc, &rcs))\n        return;\n    _pgpt->DrawPic(ppic, &rcs, &_gdd);\n}\n\n/***************************************************************************\n    Draw the mbmp with reference point at the given point.\n***************************************************************************/\nvoid GNV::DrawMbmp(PMBMP pmbmp, long xp, long yp)\n{\n    AssertThis(0);\n    AssertPo(pmbmp, 0);\n    RC rc;\n    RCS rcs;\n\n    pmbmp->GetRc(&rc);\n    rc.Offset(xp - rc.xpLeft, yp - rc.ypTop);\n    if (!_FMapRcRcs(&rc, &rcs))\n        return;\n    _pgpt->DrawMbmp(pmbmp, &rcs, &_gdd);\n}\n\n/***************************************************************************\n    Draw the mbmp in the given rectangle.\n***************************************************************************/\nvoid GNV::DrawMbmp(PMBMP pmbmp, RC *prc)\n{\n    AssertThis(0);\n    AssertPo(pmbmp, 0);\n    AssertVarMem(prc);\n    RCS rcs;\n\n    if (!_FMapRcRcs(prc, &rcs))\n        return;\n    _pgpt->DrawMbmp(pmbmp, &rcs, &_gdd);\n}\n\n/***************************************************************************\n    Map a rectangle to a system rectangle.  Return true iff the result\n    is non-empty.\n***************************************************************************/\nbool GNV::_FMapRcRcs(RC *prc, RCS *prcs)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertVarMem(prcs);\n    RC rc = *prc;\n\n    rc.Map(&_rcSrc, &_rcDst);\n    *prcs = RCS(rc);\n    return prcs->left < prcs->right && prcs->top < prcs->bottom;\n}\n\n/***************************************************************************\n    Map an (xp, yp) pair to a system point.\n***************************************************************************/\nvoid GNV::_MapPtPts(long xp, long yp, PTS *ppts)\n{\n    AssertThis(0);\n    AssertVarMem(ppts);\n    PT pt(xp, yp);\n\n    pt.Map(&_rcSrc, &_rcDst);\n    *ppts = PTS(pt);\n}\n\n#ifdef MAC\n/***************************************************************************\n    Set the port associated with the GNV as the current port and set the\n    clipping as in the GNV and set the pen and fore/back color to defaults.\n***************************************************************************/\nvoid GNV::Set(void)\n{\n    AssertThis(0);\n    _pgpt->Set(_gdd.prcsClip);\n    ForeColor(blackColor);\n    BackColor(whiteColor);\n    PenNormal();\n}\n\n/***************************************************************************\n    Restore the port.  Balances a call to GNV::Set.\n***************************************************************************/\nvoid GNV::Restore(void)\n{\n    _pgpt->Restore();\n}\n#endif // MAC\n\n/***************************************************************************\n    Clip to the region specified by *ppregn.  *ppregn is set to the previous\n    clip region (may be pvNil).  The GPT takes over ownership of the region\n    and relinquishes ownership of the old region.\n***************************************************************************/\nvoid GPT::ClipToRegn(PREGN *ppregn)\n{\n    if (_ptBase.xp != 0 || _ptBase.yp != 0)\n    {\n        if (pvNil != *ppregn)\n            (*ppregn)->Offset(-_ptBase.xp, -_ptBase.yp);\n        if (pvNil != _pregnClip)\n            _pregnClip->Offset(_ptBase.xp, _ptBase.yp);\n    }\n    SwapVars(&_pregnClip, ppregn);\n    _fNewClip = fTrue;\n}\n\n/***************************************************************************\n    Set the base PT for the GPT.  This affects the mapping of any attached\n    GNVs.\n***************************************************************************/\nvoid GPT::SetPtBase(PT *ppt)\n{\n    AssertThis(0);\n    AssertVarMem(ppt);\n    _ptBase = *ppt;\n}\n\n/***************************************************************************\n    Get the base PT for the GPT.\n***************************************************************************/\nvoid GPT::GetPtBase(PT *ppt)\n{\n    AssertThis(0);\n    AssertVarMem(ppt);\n    *ppt = _ptBase;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Mark memory for the GPT.\n***************************************************************************/\nvoid GPT::MarkMem(void)\n{\n    AssertValid(0);\n    GPT_PAR::MarkMem();\n    MarkMemObj(_pregnClip);\n}\n\n/******************************************************************************\n    Assert the validity of a polygon descriptor.\n******************************************************************************/\nvoid OLY::AssertValid(ulong grf)\n{\n    AssertThisMem();\n    AssertPvCb(rgpts, LwMul(Cpts(), size(PTS)));\n}\n\n/******************************************************************************\n    Assert the validity of the font description.\n******************************************************************************/\nvoid DSF::AssertValid(ulong grf)\n{\n    AssertThisMem();\n    AssertIn(dyp, 1, kswMax);\n    AssertVar(vntl.FValidOnn(onn), \"Invalid onn\", &onn);\n    AssertIn(tah, 0, tahLim);\n    AssertIn(tav, 0, tavLim);\n}\n#endif // DEBUG\n\n/******************************************************************************\n    Initialize the graphics module.\n******************************************************************************/\nbool FInitGfx(void)\n{\n    return vntl.FInit();\n}\n\n/***************************************************************************\n    Construct a new font list.\n***************************************************************************/\nNTL::NTL(void)\n{\n    _pgst = pvNil;\n}\n\n/***************************************************************************\n    Destroy a font list.\n***************************************************************************/\nNTL::~NTL(void)\n{\n    ReleasePpo(&_pgst);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the font list.\n***************************************************************************/\nvoid NTL::AssertValid(ulong grf)\n{\n    NTL_PAR::AssertValid(0);\n    AssertPo(_pgst, 0);\n}\n\n/***************************************************************************\n    Mark memory for the font table.\n***************************************************************************/\nvoid NTL::MarkMem(void)\n{\n    AssertValid(0);\n    NTL_PAR::MarkMem();\n    MarkMemObj(_pgst);\n}\n\n/***************************************************************************\n    Return whether the font number is valid.\n***************************************************************************/\nbool NTL::FValidOnn(long onn)\n{\n    return pvNil != _pgst && onn >= 0 && onn < _pgst->IstnMac();\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Find the name of the given font.\n***************************************************************************/\nvoid NTL::GetStn(long onn, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    _pgst->GetStn(onn, pstn);\n}\n\n/***************************************************************************\n    Get the font number for the given font name.\n***************************************************************************/\nbool NTL::FGetOnn(PSTN pstn, long *ponn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    return _pgst->FFindStn(pstn, ponn, fgstUserSorted);\n}\n\n/***************************************************************************\n    Map a font name to an existing font.  Use platform information if\n    possible.\n    REVIEW shonk: implement font mapping for real.\n***************************************************************************/\nlong NTL::OnnMapStn(PSTN pstn, short osk)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    long onn;\n\n    if (!FGetOnn(pstn, &onn))\n        onn = _onnSystem;\n    return onn;\n}\n\n/***************************************************************************\n    Return the font number mac.\n***************************************************************************/\nlong NTL::OnnMac(void)\n{\n    AssertThis(0);\n    return _pgst->IstnMac();\n}\n\n/***************************************************************************\n    Create a new polygon by tracing the outline of this one with a\n    convex polygon.\n***************************************************************************/\nPOGN OGN::PognTraceOgn(POGN pogn, ulong grfogn)\n{\n    AssertThis(0);\n    AssertPo(pogn, 0);\n\n    POGN pognNew = PognTraceRgpt(pogn->PrgptLock(), pogn->IvMac(), grfogn);\n\n    pogn->Unlock();\n    return pognNew;\n}\n\n/***************************************************************************\n    Create a new polygon by tracing the outline of this one with a\n    convex polygon.\n***************************************************************************/\nPOGN OGN::PognTraceRgpt(PT *prgpt, long cpt, ulong grfogn)\n{\n    AssertThis(0);\n    AssertIn(cpt, 2, kcbMax);\n    AssertPvCb(prgpt, LwMul(cpt, size(PT)));\n\n    PT *prgptThis;\n    AEI aei;\n    long iptLast = IvMac() - 1;\n\n    if (2 > cpt || iptLast < 0)\n        return pvNil;\n\n    aei.prgpt = prgpt;\n    aei.cpt = cpt;\n    if (pvNil == (aei.pogn = PognNew(IvMac() * 2 + cpt)))\n        return pvNil;\n    aei.pogn->SetMinGrow(cpt);\n\n    prgptThis = PrgptLock();\n    if (iptLast == 0 || prgptThis[0] == prgptThis[1])\n    {\n        // if all the points of the polygon are the same, doing this ensures\n        // that we will encircle the pen\n        aei.ptCur = prgpt[0] + prgptThis[0];\n        if (!aei.pogn->FPush(&aei.ptCur))\n            goto LError;\n        aei.iptPenCur = 1;\n    }\n    else\n    {\n        aei.iptPenCur =\n            IptFindLeftmost(prgpt, cpt, prgptThis[0].xp - prgptThis[1].xp, prgptThis[0].yp - prgptThis[1].yp);\n    }\n    aei.ptCur = prgpt[aei.iptPenCur] + prgptThis[0];\n    if (!aei.pogn->FPush(&aei.ptCur))\n        goto LError;\n\n    // Walk to end, adding vertices.\n    for (aei.dipt = 1, aei.ipt = 0; aei.ipt < iptLast; aei.ipt++)\n    {\n        if (!_FAddEdge(&aei))\n            goto LError;\n    }\n    if (fognAutoClose & grfogn)\n    {\n        if (!_FAddEdge(&aei))\n            goto LError;\n        aei.ipt = 0;\n        aei.dipt = iptLast;\n        if (!_FAddEdge(&aei))\n            goto LError;\n    }\n\n    // Walk back to start.\n    for (aei.dipt = aei.ipt = iptLast; aei.ipt > 0; aei.ipt--)\n    {\n        if (!_FAddEdge(&aei))\n        {\n        LError:\n            ReleasePpo(&aei.pogn);\n            break;\n        }\n    }\n\n    Unlock();\n    if (pvNil != aei.pogn)\n        aei.pogn->FEnsureSpace(0, fgrpShrink);\n    return aei.pogn;\n}\n\n/***************************************************************************\n    Add the vertices encountered while walking an edge of the input polygon.\n***************************************************************************/\nbool OGN::_FAddEdge(AEI *paei)\n{\n    AssertVarMem(paei);\n    AssertIn(paei->cpt, 1, kcbMax);\n    AssertPvCb(paei->prgpt, LwMul(paei->cpt, size(PT)));\n    AssertPo(paei->pogn, 0);\n    AssertIn(paei->dipt, LwMin(IvMac() - 1, 1), LwMax(IvMac(), 2));\n    AssertIn(paei->ipt, 0, IvMac());\n    AssertIn(paei->iptPenCur, 0, paei->cpt);\n\n    PT *prgptThis = (PT *)QvGet(0); // Already locked in PognTraceRgpt().\n    long iptEnd = (paei->ipt + paei->dipt) % IvMac();\n    long iptPenNew = IptFindLeftmost(paei->prgpt, paei->cpt, prgptThis[iptEnd].xp - prgptThis[paei->ipt].xp,\n                                     prgptThis[iptEnd].yp - prgptThis[paei->ipt].yp);\n\n    // Add vertices from current to leftmost.\n    if (paei->iptPenCur != iptPenNew)\n    {\n        PT pt;\n        long ipt = paei->iptPenCur;\n        PT dpt = paei->ptCur - paei->prgpt[ipt];\n\n        do\n        {\n            ipt = (ipt + 1) % paei->cpt;\n            pt = paei->prgpt[ipt] + dpt;\n            if (!paei->pogn->FPush(&pt))\n                return fFalse;\n        } while (ipt != iptPenNew);\n    }\n\n    // Add vertex at endpoint.\n    paei->iptPenCur = iptPenNew;\n    paei->ptCur = prgptThis[iptEnd] + paei->prgpt[iptPenNew];\n    return paei->pogn->FPush(&paei->ptCur);\n}\n\n/***************************************************************************\n    Find the leftmost vertex of the rgpt looking down the vector.\n    dxp, dyp : Direction of vector to look down.\n***************************************************************************/\nlong IptFindLeftmost(PT *prgpt, long cpt, long dxp, long dyp)\n{\n    AssertPvCb(prgpt, LwMul(cpt, size(PT)));\n    AssertIn(cpt, 2, kcbMax);\n\n    long ipt, iptLeftmost;\n    long dzpMac; // Maximum cross product (z vector) found.\n    long dzp;\n\n    // reduces the chance of overflow\n    if (1 < (dzp = LwGcd(dxp, dyp)))\n    {\n        dxp /= dzp;\n        dyp /= dzp;\n    }\n\n    for (dzpMac = klwMin, ipt = 0; ipt < cpt; ipt++)\n    {\n        dzp = LwMul(dyp, prgpt[ipt].xp) - LwMul(dxp, prgpt[ipt].yp);\n        if (dzp > dzpMac)\n        {\n            dzpMac = dzp;\n            iptLeftmost = ipt;\n        }\n    }\n    return iptLeftmost;\n}\n\n/***************************************************************************\n    -- Allocate a new OGN and ensure that it has space for cptInit elements.\n***************************************************************************/\nPOGN OGN::PognNew(long cptInit)\n{\n    AssertIn(cptInit, 0, kcbMax);\n    POGN pogn;\n\n    if (pvNil == (pogn = NewObj OGN()))\n        return pvNil;\n    if (cptInit > 0 && !pogn->FEnsureSpace(cptInit, fgrpNil))\n    {\n        ReleasePpo(&pogn);\n        return pvNil;\n    }\n    AssertPo(pogn, 0);\n    return pogn;\n}\n\n/***************************************************************************\n    Constructor for OGN.\n***************************************************************************/\nOGN::OGN(void) : GL(size(PT))\n{\n    AssertThis(0);\n}\n\n/***************************************************************************\n    This does a 2x stretch blt, clipped to prcClip and pregnClip. The\n    clipping is expressed in destination coordinates.\n***************************************************************************/\nvoid DoubleStretch(byte *prgbSrc, long cbRowSrc, long dypSrc, RC *prcSrc, byte *prgbDst, long cbRowDst, long dypDst,\n                   long xpDst, long ypDst, RC *prcClip, PREGN pregnClip)\n{\n    AssertPvCb(prgbSrc, LwMul(cbRowSrc, dypSrc));\n    AssertPvCb(prgbDst, LwMul(cbRowDst, dypDst));\n    AssertVarMem(prcSrc);\n    Assert(prcSrc->xpLeft >= 0 && prcSrc->ypTop >= 0 && prcSrc->xpRight <= cbRowSrc && prcSrc->ypBottom <= dypSrc,\n           \"Source rectangle not in source bitmap!\");\n    AssertNilOrVarMem(prcClip);\n    AssertNilOrPo(pregnClip, 0);\n\n    long xpOn, xpOff, dypAdvance, dxpBase, yp;\n    bool fSecondRow;\n    REGSC regsc;\n    RC rcT(xpDst, ypDst, xpDst + 2 * prcSrc->Dxp(), ypDst + 2 * prcSrc->Dyp());\n    RC rcClip(0, 0, cbRowDst, dypDst);\n\n    if (!rcClip.FIntersect(&rcT))\n        return;\n    if (pvNil != prcClip && !rcClip.FIntersect(prcClip))\n        return;\n\n    // Set up the region scanner\n    if (pvNil != pregnClip)\n        regsc.Init(pregnClip, &rcClip);\n    else\n        regsc.InitRc(&rcClip, &rcClip);\n    dxpBase = rcClip.xpLeft - xpDst;\n\n    // move to rcClip.ypTop\n    yp = rcClip.ypTop;\n    prgbSrc += prcSrc->xpLeft + LwMul(prcSrc->ypTop + ((yp - ypDst) >> 1), cbRowSrc);\n    prgbDst += xpDst + LwMul(yp, cbRowDst);\n    fSecondRow = (yp - ypDst) & 1;\n\n    for (;;)\n    {\n        if (klwMax == (xpOn = regsc.XpCur()))\n        {\n            // empty strip of the region\n            dypAdvance = regsc.DypCur();\n            goto LAdvance;\n        }\n        xpOn += dxpBase;\n        if (fSecondRow || (regsc.DypCur() == 1))\n            goto LOneRow;\n\n        // copy two rows to the destination\n        for (;;)\n        {\n            xpOff = regsc.XpFetch() + dxpBase;\n            AssertIn(xpOff - 1, xpOn, rcClip.Dxp() + dxpBase);\n\n#ifdef IN_80386\n// copy two rows to the destination in native\n#define pbDstReg edi\n#define pbSrcReg esi\n#define pbDst2Reg ebx\n#define lwTReg edx\n\n            __asm {\n                // lwTReg = xpOn;\n                // pbDstReg = prgbDst + xpOn;\n                // pbSrcReg = prgbSrc + (xpOn >> 1);\n                // pbDst2Reg = pbDstReg + cbRowDst;\n\t\t\t\tmov\t\tlwTReg,xpOn\n\t\t\t\tmov\t\tpbSrcReg,lwTReg\n\t\t\t\tmov\t\tpbDstReg,lwTReg\n\t\t\t\tsar\t\tpbSrcReg,1\n\t\t\t\tadd\t\tpbDstReg,prgbDst\n\t\t\t\tadd\t\tpbSrcReg,prgbSrc\n\t\t\t\tmov\t\tpbDst2Reg,pbDstReg\n\t\t\t\tadd\t\tpbDst2Reg,cbRowDst\n\n                    // if (!(lwTReg & 1)) goto LGetCount2;\n\t\t\t\ttest\tlwTReg,1\n\t\t\t\tmov\t\tecx,xpOff\n\t\t\t\tjz\t\tLGetCount2\n\n                    // move the single leading byte\n                    // lwTReg++;\n                    // al = *pbSrcReg++;\n                    // *pbDstReg++ = al;\n                    // *pbDstReg2++ = al;\n\t\t\t\tinc\t\tlwTReg\n\t\t\t\tmov\t\tal,[pbSrcReg]\n\t\t\t\tinc\t\tpbSrcReg\n\t\t\t\tmov\t\t[pbDstReg],al\n\t\t\t\tinc\t\tpbDstReg\n\t\t\t\tmov\t\t[pbDst2Reg],al\n\t\t\t\tinc\t\tpbDst2Reg\n\nLGetCount2:\n                    // ecx = xpOff - lwTReg;\n                    // ecx >>= 1;\n                    // if (ecx <= 0) goto LLastByte2;\n\t\t\t\tsub\t\tecx,lwTReg\n\t\t\t\tsar\t\tecx,1\n\t\t\t\tjle\t\tLLastByte2\n\nLLoop2:\n                    // al = *pbSrcReg++;\n                    // ah = al;\n                    // *(short *)pbDstReg = ax;\n                    // *(short *)pbDst2Reg = ax;\n                    // pbDstReg += 2;\n                    // pbDst2Reg += 2;\n\t\t\t\tmov\t\tal,[pbSrcReg]\n\t\t\t\tinc\t\tpbSrcReg\n\t\t\t\tmov\t\tah,al\n\t\t\t\tmov\t\t[pbDstReg],ax\n\t\t\t\tadd\t\tpbDstReg,2\n\t\t\t\tmov\t\t[pbDst2Reg],ax\n\t\t\t\tadd\t\tpbDst2Reg,2\n\n                // if (--ecx != 0) goto LLoop2;\n\t\t\t\tloop\tLLoop2\n\nLLastByte2:\n                    // if (!(xpOff & 1)) goto LDone2;\n\t\t\t\ttest\txpOff,1\n\t\t\t\tjz\t\tLDone2\n\n                    // move the single trailing byte\n                    // al = *pbSrcReg;\n                    // *pbDstReg = al;\n                    // *pbDstReg2 = al;\n\t\t\t\tmov\t\tal,[pbSrcReg]\n\t\t\t\tmov\t\t[pbDstReg],al\n\t\t\t\tmov\t\t[pbDst2Reg],al\nLDone2:\n            }\n\n#undef pbDstReg\n#undef pbSrcReg\n#undef pbDst2Reg\n#undef lwTReg\n#else  //! IN_80386\n       // copy two rows to the destination in C code\n            byte *pbSrc = prgbSrc + (xpOn >> 1);\n            byte *pbDst = prgbDst + xpOn;\n            byte *pbDst2 = pbDst + cbRowDst;\n            byte bT;\n            long cactLoop;\n\n            if (xpOn & 1)\n            {\n                // do leading single byte\n                bT = *pbSrc++;\n                *pbDst++ = bT;\n                *pbDst2++ = bT;\n                xpOn++;\n            }\n\n            for (cactLoop = (xpOff - xpOn) >> 1; cactLoop > 0; cactLoop--)\n            {\n                bT = *pbSrc++;\n                pbDst[0] = bT;\n                pbDst[1] = bT;\n                pbDst += 2;\n                pbDst2[0] = bT;\n                pbDst2[1] = bT;\n                pbDst2 += 2;\n            }\n\n            if (xpOff & 1)\n            {\n                // do the trailing byte\n                bT = *pbSrc;\n                *pbDst = bT;\n                *pbDst2 = bT;\n            }\n#endif //! IN_80386\n\n            if (klwMax == (xpOn = regsc.XpFetch())) break;\n            xpOn += dxpBase;\n            AssertIn(xpOn - 1, xpOff, rcClip.Dxp() - 1 + dxpBase);\n        }\n        dypAdvance = 2;\n        goto LAdvance;\n\n    LOneRow:\n        // copy just one row to the destination\n        for (;;)\n        {\n            xpOff = regsc.XpFetch() + dxpBase;\n            AssertIn(xpOff - 1, xpOn, rcClip.Dxp() + dxpBase);\n\n#ifdef IN_80386\n// copy just one row to the destination in native\n#define pbDstReg edi\n#define pbSrcReg esi\n#define lwTReg edx\n\n            __asm {\n                // lwTReg = xpOn;\n                // pbDstReg = prgbDst + xpOn;\n                // pbSrcReg = prgbSrc + (xpOn >> 1);\n\t\t\t\tmov\t\tlwTReg,xpOn\n\t\t\t\tmov\t\tpbSrcReg,lwTReg\n\t\t\t\tmov\t\tpbDstReg,lwTReg\n\t\t\t\tsar\t\tpbSrcReg,1\n\t\t\t\tadd\t\tpbDstReg,prgbDst\n\t\t\t\tadd\t\tpbSrcReg,prgbSrc\n\n                    // if (!(lwTReg & 1)) goto LGetCount1;\n\t\t\t\ttest\tlwTReg,1\n\t\t\t\tmov\t\tecx,xpOff\n\t\t\t\tjz\t\tLGetCount1\n\n                    // move the single leading byte\n                    // lwTReg++;\n                    // al = *pbSrcReg++;\n                    // *pbDstReg++ = al;\n\t\t\t\tinc\t\tlwTReg\n\t\t\t\tmov\t\tal,[pbSrcReg]\n\t\t\t\tinc\t\tpbSrcReg\n\t\t\t\tinc\t\tpbDstReg\n\t\t\t\tmov\t\t[pbDstReg-1],al\n\nLGetCount1:\n                    // ecx = xpOff - lwTReg;\n                    // ecx >>= 1;\n                    // if (ecx <= 0) goto LLastByte1;\n\t\t\t\tsub\t\tecx,lwTReg\n\t\t\t\tsar\t\tecx,1\n\t\t\t\tjle\t\tLLastByte1\n\nLLoop1:\n                    // al = *pbSrcReg++;\n                    // ah = al;\n                    // *(short *)pbDstReg = ax;\n                    // pbDstReg += 2;\n\t\t\t\tmov\t\tal,[pbSrcReg]\n\t\t\t\tinc\t\tpbSrcReg\n\t\t\t\tadd\t\tpbDstReg,2\n\t\t\t\tmov\t\tah,al\n\t\t\t\tmov\t\t[pbDstReg-2],ax\n\n                    // if (--ecx != 0) goto LLoop1;\n\t\t\t\tloop\tLLoop1\n\nLLastByte1:\n                    // if (!(xpOff & 1)) goto LDone1;\n\t\t\t\ttest\txpOff,1\n\t\t\t\tjz\t\tLDone1\n\n                    // move the single trailing byte\n                    // al = *pbSrcReg;\n                    // *pbDstReg = al;\n\t\t\t\tmov\t\tal,[pbSrcReg]\n\t\t\t\tmov\t\t[pbDstReg],al\nLDone1:\n            }\n\n#undef pbDstReg\n#undef pbSrcReg\n#undef lwTReg\n#else  //! IN_80386\n       // copy just one row to the destination in C code\n            byte bT;\n            byte *pbSrc = prgbSrc + (xpOn >> 1);\n            byte *pbDst = prgbDst + xpOn;\n            long cactLoop;\n\n            if (xpOn & 1)\n            {\n                // do leading single byte\n                *pbDst++ = *pbSrc++;\n                xpOn++;\n            }\n\n            for (cactLoop = (xpOff - xpOn) >> 1; cactLoop > 0; cactLoop--)\n            {\n                bT = *pbSrc++;\n                pbDst[0] = bT;\n                pbDst[1] = bT;\n                pbDst += 2;\n            }\n\n            if (xpOff & 1)\n            {\n                // do the trailing byte\n                *pbDst = *pbSrc;\n            }\n#endif //! IN_80386\n\n            if (klwMax == (xpOn = regsc.XpFetch())) break;\n            xpOn += dxpBase;\n            AssertIn(xpOn - 1, xpOff, rcClip.Dxp() - 1 + dxpBase);\n        }\n        dypAdvance = 1;\n\n    LAdvance:\n        if ((yp += dypAdvance) >= rcClip.ypBottom)\n            break;\n        regsc.ScanNext(dypAdvance);\n        prgbDst += dypAdvance * cbRowDst;\n        prgbSrc += (dypAdvance >> 1) * cbRowSrc;\n        if (dypAdvance & 1)\n        {\n            if (fSecondRow)\n                prgbSrc += cbRowSrc;\n            fSecondRow = !fSecondRow;\n        }\n    }\n}\n\n/***************************************************************************\n    This does a 2x vertical and 1x horizontal stretch blt, clipped to prcClip\n    and pregnClip. The clipping is expressed in destination coordinates.\n***************************************************************************/\nvoid DoubleVertStretch(byte *prgbSrc, long cbRowSrc, long dypSrc, RC *prcSrc, byte *prgbDst, long cbRowDst, long dypDst,\n                       long xpDst, long ypDst, RC *prcClip, PREGN pregnClip)\n{\n    AssertPvCb(prgbSrc, LwMul(cbRowSrc, dypSrc));\n    AssertPvCb(prgbDst, LwMul(cbRowDst, dypDst));\n    AssertVarMem(prcSrc);\n    Assert(prcSrc->xpLeft >= 0 && prcSrc->ypTop >= 0 && prcSrc->xpRight <= cbRowSrc && prcSrc->ypBottom <= dypSrc,\n           \"Source rectangle not in source bitmap!\");\n    AssertNilOrVarMem(prcClip);\n    AssertNilOrPo(pregnClip, 0);\n\n    long xpOn, xpOff, dypAdvance, dxpBase, yp;\n    bool fSecondRow;\n    REGSC regsc;\n    RC rcT(xpDst, ypDst, xpDst + prcSrc->Dxp(), ypDst + 2 * prcSrc->Dyp());\n    RC rcClip(0, 0, cbRowDst, dypDst);\n\n    if (!rcClip.FIntersect(&rcT))\n        return;\n    if (pvNil != prcClip && !rcClip.FIntersect(prcClip))\n        return;\n\n    // Set up the region scanner\n    if (pvNil != pregnClip)\n        regsc.Init(pregnClip, &rcClip);\n    else\n        regsc.InitRc(&rcClip, &rcClip);\n    dxpBase = rcClip.xpLeft - xpDst;\n\n    // move to rcClip.ypTop\n    yp = rcClip.ypTop;\n    prgbSrc += prcSrc->xpLeft + LwMul(prcSrc->ypTop + ((yp - ypDst) >> 1), cbRowSrc);\n    prgbDst += xpDst + LwMul(yp, cbRowDst);\n    fSecondRow = (yp - ypDst) & 1;\n\n    for (;;)\n    {\n        if (klwMax == (xpOn = regsc.XpCur()))\n        {\n            // empty strip of the region\n            dypAdvance = regsc.DypCur();\n            goto LAdvance;\n        }\n        xpOn += dxpBase;\n        if (fSecondRow || (regsc.DypCur() == 1))\n            goto LOneRow;\n\n        // copy two rows to the destination\n        for (;;)\n        {\n            xpOff = regsc.XpFetch() + dxpBase;\n            AssertIn(xpOff - 1, xpOn, rcClip.Dxp() + dxpBase);\n\n#ifdef IN_80386\n\n            // copy two rows to the destination in native\n            __asm\n            {\n                // edi = prgbDst + xpOn;\n                // esi = eax = prgbSrc + xpOn;\n                // ebx = pbDstReg + cbRowDst;\n                // ecx = xpOff - xpOn\n\t\t\t\tmov\t\tedx,xpOn\n\t\t\t\tmov\t\tecx,xpOff\n\t\t\t\tmov\t\tedi,edx\n\t\t\t\tmov\t\tesi,edx\n\t\t\t\tsub\t\tecx,edx\n\t\t\t\tadd\t\tedi,prgbDst\n\t\t\t\tadd\t\tesi,prgbSrc\n\t\t\t\tmov\t\tebx,edi\n\t\t\t\tmov\t\teax,esi\n\t\t\t\tadd\t\tebx,cbRowDst\n\n                    // copy the first row\n\t\t\t\tmov\t\tedx,ecx\n\t\t\t\tshr\t\tecx,2\n\t\t\t\trep\t\tmovsd\n\t\t\t\tmov\t\tecx,edx\n\t\t\t\tand\t\tecx,3\n\t\t\t\trep\t\tmovsb\n\n                    // prepare to copy the second row\n\t\t\t\tmov\t\tesi,eax\n\t\t\t\tmov\t\tedi,ebx\n\t\t\t\tmov\t\tecx,edx\n\n                    // copy the second row\n\t\t\t\tshr\t\tecx,2\n\t\t\t\tand\t\tedx,3\n\t\t\t\trep\t\tmovsd\n\t\t\t\tmov\t\tecx,edx\n\t\t\t\trep\t\tmovsb\n            }\n\n#else //! IN_80386\n\n            // copy two rows to the destination in C code\n            CopyPb(prgbSrc + xpOn, prgbDst + xpOn, xpOff - xpOn);\n            CopyPb(prgbSrc + xpOn + cbRowDst, prgbDst + xpOn, xpOff - xpOn);\n\n#endif //! IN_80386\n\n            if (klwMax == (xpOn = regsc.XpFetch())) break;\n            xpOn += dxpBase;\n            AssertIn(xpOn - 1, xpOff, rcClip.Dxp() - 1 + dxpBase);\n        }\n        dypAdvance = 2;\n        goto LAdvance;\n\n    LOneRow:\n        // copy just one row to the destination\n        for (;;)\n        {\n            xpOff = regsc.XpFetch() + dxpBase;\n            AssertIn(xpOff - 1, xpOn, rcClip.Dxp() + dxpBase);\n\n#ifdef IN_80386\n\n            // copy one row to the destination in native\n            __asm\n            {\n                // edi = prgbDst + xpOn;\n                // esi = prgbSrc + xpOn;\n                // ecx = xpOff - xpOn\n\t\t\t\tmov\t\tedx,xpOn\n\t\t\t\tmov\t\tecx,xpOff\n\t\t\t\tmov\t\tedi,edx\n\t\t\t\tmov\t\tesi,edx\n\t\t\t\tsub\t\tecx,edx\n\t\t\t\tadd\t\tedi,prgbDst\n\t\t\t\tadd\t\tesi,prgbSrc\n\n                    // copy the row\n\t\t\t\tmov\t\tedx,ecx\n\t\t\t\tshr\t\tecx,2\n\t\t\t\tand\t\tedx,3\n\t\t\t\trep\t\tmovsd\n\t\t\t\tmov\t\tecx,edx\n\t\t\t\trep\t\tmovsb\n            }\n\n#else //! IN_80386\n\n            // copy one row to the destination in C code\n            CopyPb(prgbSrc + xpOn, prgbDst + xpOn, xpOff - xpOn);\n\n#endif //! IN_80386\n\n            if (klwMax == (xpOn = regsc.XpFetch())) break;\n            xpOn += dxpBase;\n            AssertIn(xpOn - 1, xpOff, rcClip.Dxp() - 1 + dxpBase);\n        }\n        dypAdvance = 1;\n\n    LAdvance:\n        if ((yp += dypAdvance) >= rcClip.ypBottom)\n            break;\n        regsc.ScanNext(dypAdvance);\n        prgbDst += dypAdvance * cbRowDst;\n        prgbSrc += (dypAdvance >> 1) * cbRowSrc;\n        if (dypAdvance & 1)\n        {\n            if (fSecondRow)\n                prgbSrc += cbRowSrc;\n            fSecondRow = !fSecondRow;\n        }\n    }\n}\n"
  },
  {
    "path": "kauai/src/gfx.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    GFX classes: graphics port (GPT), graphics environment (GNV)\n\n***************************************************************************/\n#ifndef GFX_H\n#define GFX_H\n\n/****************************************\n    Text and fonts.\n****************************************/\n// DeScription of a Font.\nstruct DSF\n{\n    long onn;     // Font number.\n    ulong grfont; // Font style.\n    long dyp;     // Font height in points.\n    long tah;     // Horizontal Text Alignment\n    long tav;     // Vertical Text Alignment\n\n    ASSERT\n};\n\n// fONT Styles - note that these match the Mac values\nenum\n{\n    fontNil = 0,\n    fontBold = 1,\n    fontItalic = 2,\n    fontUnderline = 4,\n    fontBoxed = 8,\n};\n\n// Horizontal Text Alignment.\nenum\n{\n    tahLeft,\n    tahCenter,\n    tahRight,\n    tahLim\n};\n\n// Vertical Text Alignment\nenum\n{\n    tavTop,\n    tavCenter,\n    tavBaseline,\n    tavBottom,\n    tavLim\n};\n\n/****************************************\n    Font List\n****************************************/\nconst long onnNil = -1;\n\n#ifdef WIN\nint CALLBACK _FEnumFont(LOGFONT *plgf, TEXTMETRIC *ptxm, ulong luType, LPARAM luParam);\n#endif // WIN\n\n#define NTL_PAR BASE\n#define kclsNTL 'NTL'\nclass NTL : public NTL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    NOCOPY(NTL)\n\n  private:\n#ifdef WIN\n    friend int CALLBACK _FEnumFont(LOGFONT *plgf, TEXTMETRIC *ptxm, ulong luType, LPARAM luParam);\n#endif // WIN\n    PGST _pgst;\n    long _onnSystem;\n\n  public:\n    NTL(void);\n    ~NTL(void);\n\n#ifdef WIN\n    HFONT HfntCreate(DSF *pdsf);\n#endif // WIN\n#ifdef MAC\n    short FtcFromOnn(long onn);\n#endif // MAC\n\n    bool FInit(void);\n    long OnnSystem(void)\n    {\n        return _onnSystem;\n    }\n    void GetStn(long onn, PSTN pstn);\n    bool FGetOnn(PSTN pstn, long *ponn);\n    long OnnMapStn(PSTN pstn, short osk = koskCur);\n    long OnnMac(void);\n    bool FFixedPitch(long onn);\n\n#ifdef DEBUG\n    bool FValidOnn(long onn);\n#endif // DEBUG\n};\nextern NTL vntl;\n\n/****************************************\n    Color and pattern\n****************************************/\n#ifdef WIN\ntypedef COLORREF SCR;\n#elif defined(MAC)\ntypedef RGBColor SCR;\n#endif //! MAC\n\n// NOTE: this matches the Windows RGBQUAD structure\nstruct CLR\n{\n    byte bBlue;\n    byte bGreen;\n    byte bRed;\n    byte bZero;\n};\n\n#ifdef DEBUG\nenum\n{\n    facrNil,\n    facrRgb = 1,\n    facrIndex = 2,\n};\n#endif // DEBUG\n\nenum\n{\n    kbNilAcr = 0,\n    kbRgbAcr = 1,\n    kbIndexAcr = 0xFE,\n    kbSpecialAcr = 0xFF\n};\n\nconst ulong kluAcrInvert = 0xFF000000L;\nconst ulong kluAcrClear = 0xFFFFFFFFL;\n\n// Abstract ColoR\nclass ACR\n{\n    friend class GPT;\n    ASSERT\n\n  private:\n    ulong _lu;\n\n#ifdef WIN\n    SCR _Scr(void);\n#endif // WIN\n#ifdef MAC\n    void _SetFore(void);\n    void _SetBack(void);\n#endif // MAC\n\n  public:\n    ACR(void)\n    {\n        _lu = 0;\n    }\n    ACR(CLR clr)\n    {\n        _lu = LwFromBytes(kbRgbAcr, clr.bRed, clr.bGreen, clr.bBlue);\n    }\n    void Set(CLR clr)\n    {\n        _lu = LwFromBytes(kbRgbAcr, clr.bRed, clr.bGreen, clr.bBlue);\n    }\n    ACR(byte bRed, byte bGreen, byte bBlue)\n    {\n        _lu = LwFromBytes(kbRgbAcr, bRed, bGreen, bBlue);\n    }\n    void Set(byte bRed, byte bGreen, byte bBlue)\n    {\n        _lu = LwFromBytes(kbRgbAcr, bRed, bGreen, bBlue);\n    }\n    ACR(byte iscr)\n    {\n        _lu = LwFromBytes(kbIndexAcr, 0, 0, iscr);\n    }\n    void SetToIndex(byte iscr)\n    {\n        _lu = LwFromBytes(kbIndexAcr, 0, 0, iscr);\n    }\n    ACR(bool fClear, bool fIgnored)\n    {\n        _lu = fClear ? kluAcrClear : kluAcrInvert;\n    }\n    void SetToClear(void)\n    {\n        _lu = kluAcrClear;\n    }\n    void SetToInvert(void)\n    {\n        _lu = kluAcrInvert;\n    }\n\n    void SetFromLw(long lw);\n    long LwGet(void) const;\n    void GetClr(CLR *pclr);\n\n    bool operator==(const ACR &acr) const\n    {\n        return _lu == acr._lu;\n    }\n    bool operator!=(const ACR &acr) const\n    {\n        return _lu != acr._lu;\n    }\n};\n\n#ifdef SYMC\nextern ACR kacrBlack;\nextern ACR kacrDkGray;\nextern ACR kacrGray;\nextern ACR kacrLtGray;\nextern ACR kacrWhite;\nextern ACR kacrRed;\nextern ACR kacrGreen;\nextern ACR kacrBlue;\nextern ACR kacrYellow;\nextern ACR kacrCyan;\nextern ACR kacrMagenta;\nextern ACR kacrClear;\nextern ACR kacrInvert;\n#else  //! SYMC\nconst ACR kacrBlack(0, 0, 0);\nconst ACR kacrDkGray(0x3F, 0x3F, 0x3F);\nconst ACR kacrGray(0x7F, 0x7F, 0x7F);\nconst ACR kacrLtGray(0xBF, 0xBF, 0xBF);\nconst ACR kacrWhite(kbMax, kbMax, kbMax);\nconst ACR kacrRed(kbMax, 0, 0);\nconst ACR kacrGreen(0, kbMax, 0);\nconst ACR kacrBlue(0, 0, kbMax);\nconst ACR kacrYellow(kbMax, kbMax, 0);\nconst ACR kacrCyan(0, kbMax, kbMax);\nconst ACR kacrMagenta(kbMax, 0, kbMax);\nconst ACR kacrClear(fTrue, fTrue);\nconst ACR kacrInvert(fFalse, fFalse);\n#endif //! SYMC\n\n// abstract pattern\nstruct APT\n{\n    byte rgb[8];\n\n    bool operator==(APT &apt)\n    {\n        return ((long *)rgb)[0] == ((long *)apt.rgb)[0] && ((long *)rgb)[1] == ((long *)apt.rgb)[1];\n    }\n    bool operator!=(APT &apt)\n    {\n        return ((long *)rgb)[0] != ((long *)apt.rgb)[0] || ((long *)rgb)[1] != ((long *)apt.rgb)[1];\n    }\n\n    void SetSolidFore(void)\n    {\n        ((long *)rgb)[0] = -1L;\n        ((long *)rgb)[1] = -1L;\n    }\n    bool FSolidFore(void)\n    {\n        return (((long *)rgb)[0] & ((long *)rgb)[1]) == -1L;\n    }\n    void SetSolidBack(void)\n    {\n        ((long *)rgb)[0] = 0L;\n        ((long *)rgb)[1] = 0L;\n    }\n    bool FSolidBack(void)\n    {\n        return (((long *)rgb)[0] | ((long *)rgb)[1]) == 0L;\n    }\n    void Invert(void)\n    {\n        ((long *)rgb)[0] = ~((long *)rgb)[0];\n        ((long *)rgb)[1] = ~((long *)rgb)[1];\n    }\n    void MoveOrigin(long dxp, long dyp);\n};\nextern APT vaptGray;\nextern APT vaptLtGray;\nextern APT vaptDkGray;\n\n/****************************************\n    Polygon structure - designed to be\n    compatible with the Mac's\n    Polygon.\n****************************************/\nstruct OLY // pOLYgon\n{\n#ifdef MAC\n    short cb; // size of the whole thing\n    RCS rcs;  // bounding rectangle\n    PTS rgpts[1];\n\n    long Cpts(void)\n    {\n        return (cb - offset(OLY, rgpts[0])) / size(PTS);\n    }\n#else  //! MAC\n    long cpts;\n    PTS rgpts[1];\n\n    long Cpts(void)\n    {\n        return cpts;\n    }\n#endif //! MAC\n\n    ASSERT\n};\nconst long kcbOlyBase = size(OLY) - size(PTS);\n\n/****************************************\n    High level polygon - a GL of PT's.\n****************************************/\nenum\n{\n    fognNil = 0,\n    fognAutoClose = 1,\n    fognLim\n};\n\ntypedef class OGN *POGN;\n#define OGN_PAR GL\n#define kclsOGN 'OGN'\nclass OGN : public OGN_PAR\n{\n    RTCLASS_DEC\n\n  private:\n    struct AEI // Add Edge Info.\n    {\n        PT *prgpt;\n        long cpt;\n        long iptPenCur;\n        PT ptCur;\n        POGN pogn;\n        long ipt;\n        long dipt;\n    };\n    bool _FAddEdge(AEI *paei);\n\n  protected:\n    OGN(void);\n\n  public:\n    PT *PrgptLock(long ipt = 0)\n    {\n        return (PT *)PvLock(ipt);\n    }\n    PT *QrgptGet(long ipt = 0)\n    {\n        return (PT *)QvGet(ipt);\n    }\n\n    POGN PognTraceOgn(POGN pogn, ulong grfogn);\n    POGN PognTraceRgpt(PT *prgpt, long cpt, ulong grfogn);\n\n    // static methods\n    static POGN PognNew(long cvInit = 0);\n};\n\nlong IptFindLeftmost(PT *prgpt, long cpt, long dxp, long dyp);\n\n/****************************************\n    Graphics drawing data - a parameter\n    to drawing apis in the GPT class\n****************************************/\nenum\n{\n    fgddNil = 0,\n    fgddFill = fgddNil,\n    fgddFrame = 1,\n    fgddPattern = 2,\n    fgddAutoClose = 4,\n};\n\n// graphics drawing data\nstruct GDD\n{\n    ulong grfgdd;  // what to do\n    APT apt;       // pattern to use\n    ACR acrFore;   // foreground color (used for solid fills also)\n    ACR acrBack;   // background color\n    long dxpPen;   // pen width (used if framing)\n    long dypPen;   // pen height\n    RCS *prcsClip; // clipping (may be pvNil)\n};\n\n/****************************************\n    Graphics environment\n****************************************/\n#define GNV_PAR BASE\n#define kclsGNV 'GNV'\nclass GNV : public GNV_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  private:\n    PGPT _pgpt; // the port\n\n    // coordinate mapping\n    RC _rcSrc;\n    RC _rcDst;\n\n    // current pen location and clipping\n    long _xp;\n    long _yp;\n    RCS _rcsClip;\n    RC _rcVis; // always clipped to - this is in Dst coordinates\n\n    // Current font\n    DSF _dsf;\n\n    // contains the current pen size and prcsClip\n    // this is passed to the GPT\n    GDD _gdd;\n\n    void _Init(PGPT pgpt);\n    bool _FMapRcRcs(RC *prc, RCS *prcs);\n    void _MapPtPts(long xp, long yp, PTS *ppts);\n    HQ _HqolyCreate(POGN pogn, ulong grfogn);\n    HQ _HqolyFrame(POGN pogn, ulong grfogn);\n\n    // transition related methods\n    bool _FInitPaletteTrans(PGL pglclr, PGL *ppglclrOld, PGL *ppglclrTrans, long cbitPixel = 0);\n    void _PaletteTrans(PGL pglclrOld, PGL pglclrNew, long lwNum, long lwDen, PGL pglclrTrans, CLR *pclrSub = pvNil);\n    bool _FEnsureTempGnv(PGNV *ppgnv, RC *prc);\n\n  public:\n    GNV(PGPT pgpt);\n    GNV(PGOB pgob);\n    GNV(PGOB pgob, PGPT pgpt);\n    ~GNV(void);\n\n    void SetGobRc(PGOB pgob);\n    PGPT Pgpt(void)\n    {\n        return _pgpt;\n    }\n#ifdef MAC\n    void Set(void);\n    void Restore(void);\n#endif // MAC\n#ifdef WIN\n    // this gross API is for AVI playback\n    void DrawDib(HDRAWDIB hdd, BITMAPINFOHEADER *pbi, RC *prc);\n#endif // WIN\n\n    void SetPenSize(long dxp, long dyp);\n\n    void FillRcApt(RC *prc, APT *papt, ACR acrFore, ACR acrBack);\n    void FillRc(RC *prc, ACR acr);\n    void FrameRcApt(RC *prc, APT *papt, ACR acrFore, ACR acrBack);\n    void FrameRc(RC *prc, ACR acr);\n    void HiliteRc(RC *prc, ACR acrBack);\n\n    void FillOvalApt(RC *prc, APT *papt, ACR acrFore, ACR acrBack);\n    void FillOval(RC *prc, ACR acr);\n    void FrameOvalApt(RC *prc, APT *papt, ACR acrFore, ACR acrBack);\n    void FrameOval(RC *prc, ACR acr);\n\n    void FillOgnApt(POGN pogn, APT *papt, ACR acrFore, ACR acrBack);\n    void FillOgn(POGN pogn, ACR acr);\n    void FrameOgnApt(POGN pogn, APT *papt, ACR acrFore, ACR acrBack);\n    void FrameOgn(POGN pogn, ACR acr);\n    void FramePolyLineApt(POGN pogn, APT *papt, ACR acrFore, ACR acrBack);\n    void FramePolyLine(POGN pogn, ACR acr);\n\n    void MoveTo(long xp, long yp)\n    {\n        _xp = xp;\n        _yp = yp;\n    }\n    void MoveRel(long dxp, long dyp)\n    {\n        _xp += dxp;\n        _yp += dyp;\n    }\n    void LineToApt(long xp, long yp, APT *papt, ACR acrFore, ACR acrBack)\n    {\n        LineApt(_xp, _yp, xp, yp, papt, acrFore, acrBack);\n    }\n    void LineTo(long xp, long yp, ACR acr)\n    {\n        Line(_xp, _yp, xp, yp, acr);\n    }\n    void LineRelApt(long dxp, long dyp, APT *papt, ACR acrFore, ACR acrBack)\n    {\n        LineApt(_xp, _yp, _xp + dxp, _yp + dyp, papt, acrFore, acrBack);\n    }\n    void LineRel(long dxp, long dyp, ACR acr)\n    {\n        Line(_xp, _yp, _xp + dxp, _yp + dyp, acr);\n    }\n    void LineApt(long xp1, long yp1, long xp2, long yp2, APT *papt, ACR acrFore, ACR acrBack);\n    void Line(long xp1, long yp1, long xp2, long yp2, ACR acr);\n\n    void ScrollRc(RC *prc, long dxp, long dyp, RC *prc1 = pvNil, RC *prc2 = pvNil);\n    static void GetBadRcForScroll(RC *prc, long dxp, long dyp, RC *prc1, RC *prc2);\n\n    // for mapping\n    void GetRcSrc(RC *prc);\n    void SetRcSrc(RC *prc);\n    void GetRcDst(RC *prc);\n    void SetRcDst(RC *prc);\n    void SetRcVis(RC *prc);\n    void IntersectRcVis(RC *prc);\n\n    // set clipping\n    void ClipRc(RC *prc);\n    void ClipToSrc(void);\n\n    // Text & font.\n    void SetFont(long onn, ulong grfont, long dypFont, long tah = tahLeft, long tav = tavTop);\n    void SetOnn(long onn);\n    void SetFontStyle(ulong grfont);\n    void SetFontSize(long dyp);\n    void SetFontAlign(long tah, long tav);\n    void GetDsf(DSF *pdsf);\n    void SetDsf(DSF *pdsf);\n    void DrawRgch(achar *prgch, long cch, long xp, long yp, ACR acrFore = kacrBlack, ACR acrBack = kacrClear);\n    void DrawStn(PSTN pstn, long xp, long yp, ACR acrFore = kacrBlack, ACR acrBack = kacrClear);\n    void GetRcFromRgch(RC *prc, achar *prgch, long cch, long xp = 0, long yp = 0);\n    void GetRcFromStn(RC *prc, PSTN pstn, long xp = 0, long yp = 0);\n\n    // bitmaps and pictures\n    void CopyPixels(PGNV pgnvSrc, RC *prcSrc, RC *prcDst);\n    void DrawPic(PPIC ppic, RC *prc);\n    void DrawMbmp(PMBMP pmbmp, long xp, long yp);\n    void DrawMbmp(PMBMP pmbmp, RC *prc);\n\n    // transitions\n    void Wipe(long gfd, ACR acrFill, PGNV pgnvSrc, RC *prcSrc, RC *prcDst, ulong dts, PGL pglclr = pvNil);\n    void Slide(long gfd, ACR acrFill, PGNV pgnvSrc, RC *prcSrc, RC *prcDst, ulong dts, PGL pglclr = pvNil);\n    void Dissolve(long crcWidth, long crcHeight, ACR acrFill, PGNV pgnvSrc, RC *prcSrc, RC *prcDst, ulong dts,\n                  PGL pglclr = pvNil);\n    void Fade(long cactMax, ACR acrFade, PGNV pgnvSrc, RC *prcSrc, RC *prcDst, ulong dts, PGL pglclr = pvNil);\n    void Iris(long gfd, long xp, long yp, ACR acrFill, PGNV pgnvSrc, RC *prcSrc, RC *prcDst, ulong dts,\n              PGL pglclr = pvNil);\n};\n\n// palette setting options\nenum\n{\n    fpalNil = 0,\n    fpalIdentity = 1, // make this an identity palette\n    fpalInitAnim = 2, // make the palette animatable\n    fpalAnimate = 4,  // animate the current palette with these colors\n};\n\n/****************************************\n    Graphics port\n****************************************/\n#define GPT_PAR BASE\n#define kclsGPT 'GPT'\nclass GPT : public GPT_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  private:\n    PREGN _pregnClip;\n    RC _rcClip;\n    PT _ptBase; // coordinates assigned to top-left of the GPT\n\n#ifdef WIN\n#ifdef DEBUG\n    static bool _fFlushGdi;\n#endif\n    static HPAL _hpal;\n    static HPAL _hpalIdentity;\n    static CLR *_prgclr;\n    static long _cclrPal;\n    static long _cactPalCur;\n    static long _cactFlush;\n    static bool _fPalettized; // whether the screen is palettized\n\n    HDC _hdc;\n    HWND _hwnd;\n    HBMP _hbmp;        // nil if not an offscreen port\n    byte *_prgbPixels; // nil if not a dib section port\n    long _cbitPixel;\n    long _cbRow;\n    RC _rcOff;      // bounding rectangle for a metafile or dib port\n    long _cactPal;  // which palette this port has selected\n    long _cactDraw; // last draw - for knowing when to call GdiFlush\n    long _cactLock; // lock count\n\n    // selected brush and its related info\n    enum // brush kind\n    {\n        bkNil,\n        bkApt,\n        bkAcr,\n        bkStock\n    };\n    HBRUSH _hbr;\n    long _bk;\n    APT _apt;   // for bkApt\n    ACR _acr;   // for bkAcr\n    int _wType; // for bkStock (stock brush)\n\n    HFONT _hfnt;\n    DSF _dsf;\n\n    bool _fNewClip : 1; // _pregnClip has changed\n    bool _fMetaFile : 1;\n    bool _fMapIndices : 1; // SelectPalette failed, map indices to RGBs\n    bool _fOwnPalette : 1; // this offscreen has its own palette\n\n    void _SetClip(RCS *prcsClip);\n    void _EnsurePalette(void);\n    void _SetTextProps(DSF *pdsf);\n    void _SetAptBrush(APT *papt);\n    void _SetAcrBrush(ACR acr);\n    void _SetStockBrush(int wType);\n\n    void _FillRcs(RCS *prcs);\n    void _FillOval(RCS *prcs);\n    void _FillPoly(OLY *poly);\n    void _FillRgn(HRGN *phrgn);\n    void _FrameRcsOval(RCS *prcs, GDD *pgdd, bool fOval);\n    SCR _Scr(ACR acr);\n\n    bool _FInit(HDC hdc);\n#endif // WIN\n\n#ifdef MAC\n    static HCLT _hcltDef;\n    static bool _fForcePalOnSys;\n    static HCLT _HcltUse(long cbitPixel);\n\n    // WARNING: the PPRT's below may be GWorldPtr's instead of GrafPtr's\n    // Only use SetGWorld or GetGWorld on these.  Don't assume they\n    // point to GrafPort's.\n    PPRT _pprt; // may be a GWorldPtr\n    HGD _hgd;\n    PPRT _pprtSav; // may be a GWorldPtr\n    HGD _hgdSav;\n    short _cactLock;  // lock count for pixels (if offscreen)\n    short _cbitPixel; // depth of bitmap (if offscreen)\n    bool _fSet : 1;\n    bool _fOffscreen : 1;\n    bool _fNoClip : 1;\n    bool _fNewClip : 1; //_pregnClip is new\n\n    // for picture based GPT's\n    RC _rcOff; // also valid for offscreen GPTs\n    HPIC _hpic;\n\n    HPIX _Hpix(void);\n    void _FillRcs(RCS *prcs);\n    void _FrameRcs(RCS *prcs);\n    void _FillOval(RCS *prcs);\n    void _FrameOval(RCS *prcs);\n    void _FillPoly(HQ *phqoly);\n    void _FramePoly(HQ *phqoly);\n    void _DrawLine(PTS *prgpts);\n    void _GetRcsFromRgch(RCS *prcs, achar *prgch, short cch, PTS *ppts, DSF *pdsf);\n#endif // MAC\n\n    // low level draw routine\n    typedef void (GPT::*PFNDRW)(void *);\n    void _Fill(void *pv, GDD *pgdd, PFNDRW pfn);\n\n    GPT(void)\n    {\n    }\n    ~GPT(void);\n\n  public:\n#ifdef WIN\n    static PGPT PgptNew(HDC hdc);\n    static PGPT PgptNewHwnd(HWND hwnd);\n\n    static long CclrSetPalette(HWND hwnd, bool fInval);\n\n    // this gross API is for AVI playback\n    void DrawDib(HDRAWDIB hdd, BITMAPINFOHEADER *pbi, RCS *prcs, GDD *pgdd);\n#endif // WIN\n#ifdef MAC\n    static PGPT PgptNew(PPRT pprt, HGD hgd = hNil);\n\n    static bool FCanScreen(long cbitPixel, bool fColor);\n    static bool FSetScreenState(long cbitPixel, bool tColor);\n    static void GetScreenState(long *pcbitPixel, bool *pfColor);\n\n    void Set(RCS *prcsClip);\n    void Restore(void);\n#endif // MAC\n#ifdef DEBUG\n    static void MarkStaticMem(void);\n#endif // DEBUG\n\n    static void SetActiveColors(PGL pglclr, ulong grfpal);\n    static PGL PglclrGetPalette(void);\n    static void Flush(void);\n\n    static PGPT PgptNewOffscreen(RC *prc, long cbitPixel);\n    static PGPT PgptNewPic(RC *prc);\n    PPIC PpicRelease(void);\n    void SetOffscreenColors(PGL pglclr = pvNil);\n\n    void ClipToRegn(PREGN *ppregn);\n    void SetPtBase(PT *ppt);\n    void GetPtBase(PT *ppt);\n\n    void DrawRcs(RCS *prcs, GDD *pgdd);\n    void HiliteRcs(RCS *prcs, GDD *pgdd);\n    void DrawOval(RCS *prcs, GDD *pgdd);\n    void DrawLine(PTS *ppts1, PTS *ppts2, GDD *pgdd);\n    void DrawPoly(HQ hqoly, GDD *pgdd);\n    void ScrollRcs(RCS *prcs, long dxp, long dyp, GDD *pgdd);\n\n    void DrawRgch(achar *prgch, long cch, PTS pts, GDD *pgdd, DSF *pdsf);\n    void GetRcsFromRgch(RCS *prcs, achar *prgch, long cch, PTS pts, DSF *pdsf);\n\n    void CopyPixels(PGPT pgptSrc, RCS *prcsSrc, RCS *prcsDst, GDD *pgdd);\n    void DrawPic(PPIC ppic, RCS *prcs, GDD *pgdd);\n    void DrawMbmp(PMBMP pmbmp, RCS *prcs, GDD *pgdd);\n\n    void Lock(void);\n    void Unlock(void);\n    byte *PrgbLockPixels(RC *prc = pvNil);\n    long CbRow(void);\n    long CbitPixel(void);\n};\n\n/****************************************\n    Regions\n****************************************/\nbool FCreateRgn(HRGN *phrgn, RC *prc);\nvoid FreePhrgn(HRGN *phrgn);\nbool FSetRectRgn(HRGN *phrgn, RC *prc);\nbool FUnionRgn(HRGN hrgnDst, HRGN hrgnSrc1, HRGN hrgnSrc2);\nbool FIntersectRgn(HRGN hrgnDst, HRGN hrgnSrc1, HRGN hrgnSrc2, bool *pfEmpty = pvNil);\nbool FDiffRgn(HRGN hrgnDst, HRGN hrgnSrc, HRGN hrgnSrcSub, bool *pfEmpty = pvNil);\nbool FRectRgn(HRGN hrgn, RC *prc = pvNil);\nbool FEmptyRgn(HRGN hrgn, RC *prc = pvNil);\nbool FEqualRgn(HRGN hrgn1, HRGN hrgn2);\n\n/****************************************\n    Misc.\n****************************************/\nbool FInitGfx(void);\n\n// stretch by a factor of 2 in each dimension.\nvoid DoubleStretch(byte *prgbSrc, long cbRowSrc, long dypSrc, RC *prcSrc, byte *prgbDst, long cbRowDst, long dypDst,\n                   long xpDst, long ypDst, RC *prcClip, PREGN pregnClip);\n\n// stretch by a factor of 2 in vertical direction only.\nvoid DoubleVertStretch(byte *prgbSrc, long cbRowSrc, long dypSrc, RC *prcSrc, byte *prgbDst, long cbRowDst, long dypDst,\n                       long xpDst, long ypDst, RC *prcClip, PREGN pregnClip);\n\n// Number of times that the palette has changed (via a call to CclrSetPalette\n// or SetActiveColors). This can be used by other modules to detect a palette\n// change.\nextern long vcactRealize;\n\n#endif //! GFX_H\n"
  },
  {
    "path": "kauai/src/gfxmac.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Mac specific graphics routines.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nHCLT GPT::_hcltDef;\nbool GPT::_fForcePalOnSys;\n\n#ifdef SYMC\nACR kacrBlack(0, 0, 0);\nACR kacrDkGray(0x3F, 0x3F, 0x3F);\nACR kacrGray(0x7F, 0x7F, 0x7F);\nACR kacrLtGray(0xBF, 0xBF, 0xBF);\nACR kacrWhite(kbMax, kbMax, kbMax);\nACR kacrRed(kbMax, 0, 0);\nACR kacrGreen(0, kbMax, 0);\nACR kacrBlue(0, 0, kbMax);\nACR kacrYellow(kbMax, kbMax, 0);\nACR kacrCyan(0, kbMax, kbMax);\nACR kacrMagenta(kbMax, 0, kbMax);\nACR kacrClear(fTrue, fTrue);\nACR kacrInvert(fFalse, fFalse);\n#endif // SYMC\n\n/***************************************************************************\n    Set the color as the current foreground color.\n***************************************************************************/\nvoid ACR::_SetFore(void)\n{\n    AssertThis(facrRgb | facrIndex);\n    SCR scr;\n    byte b;\n\n    if (B3Lw(_lu) == kbIndexAcr)\n        PmForeColor(B0Lw(_lu));\n    else\n    {\n        b = B2Lw(_lu);\n        scr.red = SwHighLow(b, b);\n        b = B1Lw(_lu);\n        scr.green = SwHighLow(b, b);\n        b = B0Lw(_lu);\n        scr.blue = SwHighLow(b, b);\n        RGBForeColor(&scr);\n    }\n}\n\n/***************************************************************************\n    Set the color as the current background color.\n***************************************************************************/\nvoid ACR::_SetBack(void)\n{\n    AssertThis(facrRgb | facrIndex);\n    SCR scr;\n    byte b;\n\n    if (B3Lw(_lu) == kbIndexAcr)\n        PmBackColor(B0Lw(_lu));\n    else\n    {\n        b = B2Lw(_lu);\n        scr.red = SwHighLow(b, b);\n        b = B1Lw(_lu);\n        scr.green = SwHighLow(b, b);\n        b = B0Lw(_lu);\n        scr.blue = SwHighLow(b, b);\n        RGBBackColor(&scr);\n    }\n}\n\n/***************************************************************************\n    Static method to flush any pending graphics operations.\n***************************************************************************/\nvoid GPT::Flush(void)\n{\n    // does nothing on Mac.\n}\n\n/***************************************************************************\n    Static method to set the current color table.\n    While using fpalIdentity the following cautions apply:\n\n        1) The following indexes are reserved by the system, so shouldn't be used:\n            { 0, 1, 3, 15, 255 } (Mac)\n            { 0 - 9; 246 - 255 } (Win).\n        2) While we're in the background, RGB values may get mapped to\n            the wrong indexes, so the colors will change when we move\n            to the foreground.  The solution is to always use indexed\n            based color while using fForceOnSystem.\n        3) This should only be called when we are the foreground app.\n\n    REVIEW shonk: Mac: implement fpalInitAnim and fpalAnimate.\n***************************************************************************/\nvoid GPT::SetActiveColors(PGL pglclr, ulong grfpal)\n{\n    AssertNilOrPo(pglclr, 0);\n    long cclr, iclr, iv;\n    HPAL hpal, hpalOld;\n    SCR scr;\n    CLR clr;\n    HCLT hclt;\n    HWND hwnd;\n\n    if (hNil == (hclt = GetCTable(72)))\n        goto LFail;\n    (*hclt)->ctSeed = GetCTSeed();\n\n    // REVIEW shonk: Mac: does it work to call SetPalette with a nil palette?\n    if (pvNil != pglclr && 0 < (cclr = LwMin(256, pglclr->IvMac())))\n    {\n        if (hNil ==\n            (hpal = NewPalette((short)cclr, hNil, (grfpal & fpalIdentity) ? pmTolerant | pmExplicit : pmTolerant, 0)))\n        {\n            DisposeHandle((HN)hclt);\n        LFail:\n            PushErc(ercGfxCantSetPalette);\n            return;\n        }\n        for (iclr = 0; iclr < cclr; iclr++)\n        {\n            pglclr->Get(iclr, &clr);\n            scr.red = SwHighLow(clr.bRed, clr.bRed);\n            scr.green = SwHighLow(clr.bGreen, clr.bGreen);\n            scr.blue = SwHighLow(clr.bBlue, clr.bBlue);\n            SetEntryColor(hpal, (short)iclr, &scr);\n            (*hclt)->ctTable[iclr].rgb = scr;\n        }\n        if (grfpal & fpalIdentity)\n        {\n            // set the first entry to white (with just pmExplicit)\n            scr.red = scr.green = scr.blue = (ushort)-1;\n            SetEntryColor(hpal, 0, &scr);\n            SetEntryUsage(hpal, 0, pmExplicit, -1);\n            (*hclt)->ctTable[0].rgb = scr;\n\n            // set all possible ending entries to black (with just pmExplicit)\n            scr.red = scr.green = scr.blue = 0;\n            for (iv = 1; iv <= 8; iv <<= 1)\n            {\n                iclr = (1 << iv) - 1;\n                if (iclr < cclr)\n                {\n                    SetEntryColor(hpal, (short)iclr, &scr);\n                    SetEntryUsage(hpal, (short)iclr, pmExplicit, -1);\n                }\n                (*hclt)->ctTable[iclr].rgb = scr;\n            }\n        }\n    }\n    else\n        hpal = hNil;\n\n    hpalOld = GetPalette(PPRT(-1));\n    SetPalette(PPRT(-1), hpal, fFalse);\n\n    // activate the palette\n    if (hNil != (hwnd = (HWND)FrontWindow()))\n        ActivatePalette((PPRT)hwnd);\n    else\n    {\n        // to activate the palette, create a window offscreen and then destroy it\n        RCS rcs;\n\n        rcs = qd.screenBits.bounds;\n        rcs.top = qd.screenBits.bounds.top + GetMBarHeight() / 2;\n        rcs.left = (qd.screenBits.bounds.left + qd.screenBits.bounds.right) / 2;\n        rcs.bottom = rcs.top + 1;\n        rcs.right = rcs.left + 1;\n        hwnd = (HWND)NewCWindow(pvNil, &rcs, (byte *)\"\\p\", fTrue, plainDBox, GrafPtr(-1), fTrue, 0);\n        if (hNil != hwnd)\n            DisposeWindow((PPRT)hwnd);\n    }\n\n    if (hNil != hpalOld)\n        DisposePalette(hpalOld);\n    if (hNil != _hcltDef)\n        DisposeHandle((HN)_hcltDef);\n    _hcltDef = hclt;\n    _fForcePalOnSys = FPure(grfpal & fpalIdentity);\n}\n\n/***************************************************************************\n    Static method to determine if the main screen supports this depth\n    and color status.\n***************************************************************************/\nbool GPT::FCanScreen(long cbitPixel, bool fColor)\n{\n    if (cbitPixel == 24)\n        cbitPixel = 32;\n\n    // assert that cbitPixel is in {1,2,4,8,16,32}\n    AssertIn(cbitPixel, 1, 33);\n    AssertVar((cbitPixel & (cbitPixel - 1)) == 0, \"bad cbitPixel value\", &cbitPixel);\n    HGD hgd;\n\n    if (hNil == (hgd = GetMainDevice()))\n        return fFalse;\n    return HasDepth(hgd, (short)cbitPixel, 1, fColor ? 1 : 0) != 0;\n}\n\n/***************************************************************************\n    Static method to attempt to set the depth and/or color status of the\n    main screen (the one with the menu bar).\n***************************************************************************/\nbool GPT::FSetScreenState(long cbitPixel, bool tColor)\n{\n    if (cbitPixel == 24)\n        cbitPixel = 32;\n\n    // assert that cbitPixel is in {0,1,2,4,8,16,32}\n    AssertIn(cbitPixel, 0, 33);\n    AssertVar((cbitPixel & (cbitPixel - 1)) == 0, \"bad cbitPixel value\", &cbitPixel);\n    AssertT(tColor);\n    HGD hgd;\n    short swT;\n\n    if (hNil == (hgd = GetMainDevice()))\n        return fFalse;\n    if (0 == cbitPixel)\n        cbitPixel = (*(*hgd)->gdPMap)->pixelSize;\n    swT = (tColor == tYes || tColor == tMaybe && TestDeviceAttribute(hgd, gdDevType)) ? 1 : 0;\n    if (0 == HasDepth(hgd, (short)cbitPixel, 1, swT))\n        return fFalse;\n    return (noErr == SetDepth(hgd, (short)cbitPixel, 1, swT));\n}\n\n/***************************************************************************\n    Static method to get the state of the main screen.\n***************************************************************************/\nvoid GPT::GetScreenState(long *pcbitPixel, bool *pfColor)\n{\n    AssertVarMem(pcbitPixel);\n    AssertVarMem(pfColor);\n    HGD hgd;\n\n    if (hNil == (hgd = GetMainDevice()))\n    {\n        *pcbitPixel = 0;\n        *pfColor = fFalse;\n    }\n    else\n    {\n        *pcbitPixel = (*(*hgd)->gdPMap)->pixelSize;\n        *pfColor = FPure(TestDeviceAttribute(hgd, gdDevType));\n    }\n}\n\n/***************************************************************************\n    Static method to create a new GPT.\n***************************************************************************/\nPGPT GPT::PgptNew(PPRT pprt, HGD hgd)\n{\n    AssertVarMem(pprt);\n    AssertNilOrVarMem(hgd);\n    PGPT pgpt;\n\n    if (pvNil == (pgpt = NewObj GPT))\n        return pvNil;\n\n    pgpt->_pprt = pprt;\n    pgpt->_hgd = hgd;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for a port.\n***************************************************************************/\nGPT::~GPT(void)\n{\n    if (_fOffscreen)\n    {\n        Assert(_cactLock == 0, \"pixels are still locked for GWorld being freed\");\n        if (hNil != _hpic)\n        {\n            Set(pvNil);\n            ClosePicture();\n            Restore();\n            KillPicture(_hpic);\n            _hpic = hNil;\n        }\n        DisposeGWorld((PGWR)_pprt);\n    }\n    ReleasePpo(&_pregnClip);\n}\n\n/***************************************************************************\n    Return the clut that should be used for off-screen GPT's.\n***************************************************************************/\nHCLT GPT::_HcltUse(long cbitPixel)\n{\n    HGD hgd;\n    HCLT hclt;\n\n    if (cbitPixel > 8)\n        return hNil;\n\n    if (_fForcePalOnSys)\n    {\n        if (hNil == (hgd = GetMainDevice()) || hNil == (hclt = (*(*hgd)->gdPMap)->pmTable))\n        {\n            Warn(\"Can't get Main Device's color table\");\n        }\n        else if ((*hclt)->ctSize + 1 >= (1 << cbitPixel))\n            return hclt;\n    }\n    return _hcltDef;\n}\n\n/***************************************************************************\n    Static method to create an offscreen port.\n***************************************************************************/\nPGPT GPT::PgptNewOffscreen(RC *prc, long cbitPixel)\n{\n    AssertVarMem(prc);\n    Assert(!prc->FEmpty(), \"empty rc for offscreen\");\n    PGWR pgwr;\n    RCS rcs;\n    PGPT pgpt;\n\n    if (cbitPixel == 24)\n        cbitPixel = 32;\n\n    // assert that cbitPixel is in {1,2,4,8,16,32}\n    AssertIn(cbitPixel, 1, 33);\n    AssertVar((cbitPixel & (cbitPixel - 1)) == 0, \"bad cbitPixel value\", &cbitPixel);\n\n    rcs = *prc;\n    if (noErr != NewGWorld(&pgwr, (short)cbitPixel, &rcs, _HcltUse(cbitPixel), hNil, 0))\n        return pvNil;\n\n    if (pvNil == (pgpt = PgptNew((PPRT)pgwr)))\n        DisposeGWorld(pgwr);\n    else\n    {\n        pgpt->_fOffscreen = fTrue;\n        pgpt->_rcOff = *prc;\n        pgpt->_cbitPixel = (short)cbitPixel;\n    }\n\n    return pgpt;\n}\n\n/***************************************************************************\n    If this is an offscreen bitmap, return the pointer to the pixels and\n    optionally get the bounds. Must balance with a call to Unlock().\n***************************************************************************/\nbyte *GPT::PrgbLockPixels(RC *prc)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prc);\n    HPIX hpix;\n\n    if (!_fOffscreen)\n        return pvNil;\n\n    Lock();\n    hpix = _Hpix();\n    if (pvNil != prc)\n        *prc = _rcOff;\n\n    return (byte *)(*hpix)->baseAddr;\n}\n\n/***************************************************************************\n    If this is an offscreen bitmap, return the number of bytes per row.\n***************************************************************************/\nlong GPT::CbRow(void)\n{\n    AssertThis(0);\n    HPIX hpix;\n\n    if (!_fOffscreen)\n        return 0;\n    hpix = _Hpix();\n    return (*hpix)->rowBytes & 0x7FFF;\n}\n\n/***************************************************************************\n    If this is an offscreen bitmap, return the number of bits per pixel.\n***************************************************************************/\nlong GPT::CbitPixel(void)\n{\n    AssertThis(0);\n\n    if (!_fOffscreen)\n        return 0;\n    return _cbitPixel;\n}\n\n/***************************************************************************\n    Static method to create a PICT and its an associated GPT.\n    This should be balanced with a call to PpicRelease().\n***************************************************************************/\nPGPT GPT::PgptNewPic(RC *prc)\n{\n    AssertVarMem(prc);\n    Assert(!prc->FEmpty(), \"empty rectangle for metafile GPT\");\n    PGPT pgpt;\n    RCS rcs;\n    RC rc(0, 0, 1, 1);\n\n    if (pvNil == (pgpt = PgptNewOffscreen(&rc, 8)))\n        return pvNil;\n\n    rcs = RCS(*prc);\n    pgpt->Set(&rcs);\n    pgpt->_rcOff = *prc;\n    pgpt->_hpic = OpenPicture(&rcs);\n    pgpt->Restore();\n    if (hNil == pgpt->_hpic)\n    {\n        ReleasePpo(&pgpt);\n        return pvNil;\n    }\n    return pgpt;\n}\n\n/***************************************************************************\n    Closes a metafile based GPT and returns the picture produced from\n    drawing into the GPT.\n***************************************************************************/\nPPIC GPT::PpicRelease(void)\n{\n    AssertThis(0);\n    PPIC ppic;\n    RCS rcs;\n\n    if (hNil == _hpic)\n    {\n        Bug(\"not a Pict GPT\");\n        goto LRelease;\n    }\n\n    Set(pvNil);\n    ClosePicture();\n    Restore();\n    rcs = (*_hpic)->picFrame;\n    if (EmptyRect(&rcs) || pvNil == (ppic = PIC::PpicNew(_hpic, &_rcOff)))\n    {\n        KillPicture(_hpic);\n        _hpic = hNil;\n    LRelease:\n        Release();\n        return pvNil;\n    }\n    _hpic = hNil;\n    Release();\n    return ppic;\n}\n\n/***************************************************************************\n    Fill or frame a rectangle.\n***************************************************************************/\nvoid GPT::DrawRcs(RCS *prcs, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertVarMem(prcs);\n    AssertVarMem(pgdd);\n    PFNDRW pfn;\n\n    pfn = (pgdd->grfgdd & fgddFrame) ? (PFNDRW)_FrameRcs : (PFNDRW)_FillRcs;\n    _Fill(prcs, pgdd, pfn);\n}\n\n/***************************************************************************\n    Callback (PFNDRW) to fill a rectangle.\n***************************************************************************/\nvoid GPT::_FillRcs(RCS *prcs)\n{\n    AssertVarMem(prcs);\n    PaintRect(prcs);\n}\n\n/***************************************************************************\n    Callback (PFNDRW) to frame a rectangle.\n***************************************************************************/\nvoid GPT::_FrameRcs(RCS *prcs)\n{\n    AssertVarMem(prcs);\n    FrameRect(prcs);\n}\n\n/***************************************************************************\n    Hilite the rectangle by reversing white and the system hilite color.\n***************************************************************************/\nvoid GPT::HiliteRcs(RCS *prcs, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertVarMem(prcs);\n    AssertVarMem(pgdd);\n\n    Set(pgdd->prcsClip);\n    ForeColor(blackColor);\n    pgdd->acrBack._SetBack();\n    *(byte *)0x938 &= 0x7f; /* use color highlighting */\n    InvertRect(prcs);\n    Restore();\n}\n\n/***************************************************************************\n    Fill or frame an oval.\n***************************************************************************/\nvoid GPT::DrawOval(RCS *prcs, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertVarMem(prcs);\n    AssertVarMem(pgdd);\n    PFNDRW pfn;\n\n    pfn = (pgdd->grfgdd & fgddFrame) ? (PFNDRW)_FrameOval : (PFNDRW)_FillOval;\n    _Fill(prcs, pgdd, pfn);\n}\n\n/***************************************************************************\n    Callback (PFNDRW) to fill an oval.\n***************************************************************************/\nvoid GPT::_FillOval(RCS *prcs)\n{\n    AssertVarMem(prcs);\n    PaintOval(prcs);\n}\n\n/***************************************************************************\n    Callback (PFNDRW) to frame an oval.\n***************************************************************************/\nvoid GPT::_FrameOval(RCS *prcs)\n{\n    AssertVarMem(prcs);\n    FrameOval(prcs);\n}\n\n/***************************************************************************\n    Fill or frame a polygon.\n***************************************************************************/\nvoid GPT::DrawPoly(HQ hqoly, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertHq(hqoly);\n    AssertVarMem(pgdd);\n    PFNDRW pfn;\n\n    pfn = (pgdd->grfgdd & fgddFrame) ? (PFNDRW)_FramePoly : (PFNDRW)_FillPoly;\n    _Fill(&hqoly, pgdd, pfn);\n}\n\n/***************************************************************************\n    Callback (PFNDRW) to fill a polygon.\n***************************************************************************/\nvoid GPT::_FillPoly(HQ *phqoly)\n{\n    AssertVarMem(phqoly);\n    AssertHq(*phqoly);\n    PaintPoly((PolyHandle)*phqoly);\n}\n\n/***************************************************************************\n    Callback (PFNDRW) to frame a polygon.\n***************************************************************************/\nvoid GPT::_FramePoly(HQ *phqoly)\n{\n    AssertVarMem(phqoly);\n    AssertHq(*phqoly);\n    FramePoly((PolyHandle)*phqoly);\n}\n\n/***************************************************************************\n    Draw a line.\n***************************************************************************/\nvoid GPT::DrawLine(PTS *ppts1, PTS *ppts2, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertVarMem(ppts1);\n    AssertVarMem(ppts2);\n    AssertVarMem(pgdd);\n    PTS rgpts[2];\n\n    rgpts[0] = *ppts1;\n    rgpts[1] = *ppts2;\n    _Fill(rgpts, pgdd, (PFNDRW)_DrawLine);\n}\n\n/***************************************************************************\n    Callback (PFNDRW) to draw a line.\n***************************************************************************/\nvoid GPT::_DrawLine(PTS *prgpts)\n{\n    AssertPvCb(prgpts, 2 * size(PTS));\n    MoveTo(prgpts[0].h, prgpts[0].v);\n    LineTo(prgpts[1].h, prgpts[1].v);\n}\n\n/***************************************************************************\n    Low level routine to fill/frame a shape.\n***************************************************************************/\nvoid GPT::_Fill(void *pv, GDD *pgdd, PFNDRW pfn)\n{\n    ACR acrFore = pgdd->acrFore;\n\n    Set(pgdd->prcsClip);\n    if (pgdd->grfgdd & fgddFrame)\n        PenSize((short)pgdd->dxpPen, (short)pgdd->dypPen);\n    if (pgdd->grfgdd & fgddPattern)\n    {\n        // pattern fill\n        APT apt = pgdd->apt;\n        ACR acrBack = pgdd->acrBack;\n\n        // check for a solid pattern\n        if (apt.FSolidFore() || acrFore == acrBack)\n            goto LSolid;\n        if (apt.FSolidBack())\n        {\n            acrFore = acrBack;\n            goto LSolid;\n        }\n\n        Assert(acrFore != acrBack, \"fore and back colors still equal!\");\n        // Make sure we have one of these forms:\n        //   (*, *)\n        //   (clear, *)\n        //   (invert, *)\n        //   (invert, clear)\n        if (acrBack == kacrInvert || acrBack == kacrClear && acrFore != kacrInvert)\n        {\n            // swap them and invert the pattern\n            acrFore = acrBack;\n            acrBack = pgdd->acrFore;\n            apt.Invert();\n        }\n\n        PenPat((Pattern *)apt.rgb);\n        if (acrFore == kacrInvert)\n        {\n            // do (invert, clear)\n            PenMode(patXor);\n            ForeColor(blackColor);\n            (this->*pfn)(pv);\n            if (acrBack != kacrClear)\n            {\n                // need (invert, *), have already done (invert, clear)\n                // so still need to do (clear, *)\n                goto LClear;\n            }\n        }\n        else if (acrFore == kacrClear)\n        {\n        LClear:\n            // do (clear, *)\n            PenMode(notPatOr);\n            acrBack._SetFore();\n            (this->*pfn)(pv);\n        }\n        else\n        {\n            // do (*, *)\n            PenMode(patCopy);\n            acrFore._SetFore();\n            acrBack._SetBack();\n            (this->*pfn)(pv);\n        }\n    }\n    else\n    {\n        // solid color\n    LSolid:\n        if (acrFore == kacrClear)\n            goto LDone; // nothing to do\n\n        PenPat(&qd.black);\n        if (acrFore == kacrInvert)\n        {\n            PenMode(patXor);\n            ForeColor(blackColor);\n        }\n        else\n        {\n            PenMode(patCopy);\n            acrFore._SetFore();\n        }\n        (this->*pfn)(pv);\n    }\n\nLDone:\n    Restore();\n}\n\n/***************************************************************************\n    Scroll the given rectangle.\n***************************************************************************/\nvoid GPT::ScrollRcs(RCS *prcs, long dxp, long dyp, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertVarMem(prcs);\n    AssertVarMem(pgdd);\n    HRGN hrgn;\n\n    Set(pgdd->prcsClip);\n    if (hNil == (hrgn = NewRgn()))\n        PushErc(ercGfxCantDraw);\n    else\n    {\n        ScrollRect(prcs, (short)dxp, (short)dyp, hrgn);\n        DisposeRgn(hrgn);\n    }\n    Restore();\n}\n\n/***************************************************************************\n    Draw the text.\n***************************************************************************/\nvoid GPT::DrawRgch(achar *prgch, long cch, PTS pts, GDD *pgdd, DSF *pdsf)\n{\n    AssertThis(0);\n    AssertIn(cch, 0, kcbMax);\n    AssertPvCb(prgch, cch);\n    AssertVarMem(pgdd);\n    AssertPo(pdsf, 0);\n\n    ACR acrFore, acrBack;\n    RCS rcs;\n    RCS *prcs = pvNil;\n\n    if (pdsf->grfont & fontBoxed)\n        prcs = &rcs;\n    Set(pgdd->prcsClip);\n    _GetRcsFromRgch(prcs, prgch, (short)cch, &pts, pdsf);\n    acrFore = pgdd->acrFore;\n    acrBack = pgdd->acrBack;\n\n    ForeColor(blackColor);\n    BackColor(whiteColor);\n    if (acrFore == kacrInvert)\n    {\n        // do (invert, clear)\n        TextMode(srcXor);\n        MoveTo(pts.h, pts.v);\n        DrawText(prgch, 0, (short)cch);\n    }\n    else if (acrFore != kacrClear)\n    {\n        acrFore._SetFore();\n        if (acrBack != kacrClear && acrBack != kacrInvert)\n        {\n            TextMode(srcCopy);\n            acrBack._SetBack();\n            goto LDraw;\n        }\n        TextMode(srcOr);\n        MoveTo(pts.h, pts.v);\n        DrawText(prgch, 0, (short)cch);\n        ForeColor(blackColor);\n    }\n\n    if (acrBack == kacrInvert)\n    {\n        TextMode(notSrcXor);\n        goto LDraw;\n    }\n    else if (acrBack != kacrClear)\n    {\n        TextMode(notSrcCopy);\n        acrBack._SetFore();\n    LDraw:\n        MoveTo(pts.h, pts.v);\n        DrawText(prgch, 0, (short)cch);\n    }\n\n    if (pdsf->grfont & fontBoxed)\n    {\n        GDD gdd = *pgdd;\n\n        gdd.dxpPen = gdd.dypPen = 1;\n        gdd.grfgdd = fgddFrame | fgddPattern;\n        gdd.apt = vaptGray;\n        gdd.apt.MoveOrigin(-_ptBase.xp, -_ptBase.yp);\n        gdd.acrBack = kacrClear;\n        DrawRcs(&rcs, &gdd);\n    }\n    Restore();\n}\n\n/***************************************************************************\n    Get the bounding text rectangle (in port coordinates).\n***************************************************************************/\nvoid GPT::GetRcsFromRgch(RCS *prcs, achar *prgch, long cch, PTS pts, DSF *pdsf)\n{\n    Set(pvNil);\n    _GetRcsFromRgch(prcs, prgch, (short)cch, &pts, pdsf);\n    Restore();\n}\n\n/***************************************************************************\n    Set the text properties in the current port and get the bounding\n    rectangle for the text.\n\n    -- On input:\n        -- ppts : Text origin, relative position is determined by tah and tav.\n    -- On output:\n        -- ppts : Text origin, relative to (left, baseline).\n        -- prcs : Bounding box.\n\n    prcs may be nil (saves a call to TextWidth if tah is tahLeft).\n***************************************************************************/\nvoid GPT::_GetRcsFromRgch(RCS *prcs, achar *prgch, short cch, PTS *ppts, DSF *pdsf)\n{\n    AssertNilOrVarMem(prcs);\n    AssertIn(cch, 0, kcbMax);\n    AssertPvCb(prgch, cch);\n    AssertVarMem(ppts);\n    AssertPo(pdsf, 0);\n\n    FontInfo fin;\n    short xpLeft, ypTop;\n    short dyp;\n    short dxp;\n    short ftc;\n\n    // REVIEW shonk: avoid small font sizes (the OS will crash) - is this true\n    // on newer machines (020 and better)?\n    ftc = vntl.FtcFromOnn(pdsf->onn);\n    TextFont(ftc);\n    TextFace((short)pdsf->grfont);\n    TextSize((short)pdsf->dyp);\n\n    dxp = (pvNil == prcs && pdsf->tah == tahLeft) ? 0 : TextWidth(prgch, 0, cch);\n\n    xpLeft = ppts->h;\n    ypTop = ppts->v;\n    switch (pdsf->tah)\n    {\n    case tahCenter:\n        xpLeft -= dxp / 2;\n        break;\n\n    case tahRight:\n        xpLeft -= dxp;\n        break;\n    }\n\n    GetFontInfo(&fin);\n    dyp = fin.ascent + fin.descent;\n    switch (pdsf->tav)\n    {\n    case tavBaseline:\n        ypTop -= fin.ascent;\n        break;\n\n    case tavCenter:\n        ypTop -= dyp / 2;\n        break;\n\n    case tavBottom:\n        ypTop -= dyp;\n        break;\n    }\n\n    if (pvNil != prcs)\n    {\n        prcs->left = xpLeft;\n        prcs->top = ypTop;\n        prcs->right = xpLeft + dxp;\n        prcs->bottom = ypTop + dyp;\n    }\n    ppts->h = xpLeft;\n    ppts->v = ypTop + fin.ascent;\n}\n\n/***************************************************************************\n    Lock the pixels for the port if this is an offscreen PixMap.\n    Must be balanced by a call to Unlock.\n***************************************************************************/\nvoid GPT::Lock(void)\n{\n    if (_fOffscreen && 0 == _cactLock++)\n    {\n        AssertDo(LockPixels(GetGWorldPixMap((PGWR)_pprt)), \"couldn't lock gworld pixmap pixels\");\n    }\n}\n\n/***************************************************************************\n    Unlock the pixels for the port if this is an offscreen PixMap.\n***************************************************************************/\nvoid GPT::Unlock(void)\n{\n    if (_fOffscreen && 0 >= --_cactLock)\n    {\n        Assert(0 == _cactLock, \"Unmatched Unlock call\");\n        UnlockPixels(GetGWorldPixMap((PGWR)_pprt));\n        _cactLock = 0;\n    }\n}\n\n/***************************************************************************\n    Select our graf-port and device.  Must be balanced by a call to\n    Restore.  Set/Restore combinations are nestable for distinct ports\n    (but not for the same port).  If this is a picture GPT, intersect\n    the clipping with _rcOff.\n***************************************************************************/\nvoid GPT::Set(RCS *prcsClip)\n{\n    HCLT hclt;\n    RC rc, rcT;\n    RCS rcs;\n    HRGN hrgn = hNil;\n\n    Assert(!_fSet, \"this port is already set\");\n    Lock();\n    GetGWorld((PGWR *)&_pprtSav, &_hgdSav);\n    SetGWorld((PGWR)_pprt, _hgd);\n\n    if (pvNil == prcsClip)\n        rc.Max();\n    else\n        rc = RC(*prcsClip);\n\n    if (hNil != _hpic)\n    {\n        // in a picture GPT, clip to the bounding rectangle\n        rc.FIntersect(&_rcOff);\n    }\n\n    if (_fNewClip || rc != _rcClip)\n    {\n        // have to set the clipping\n        if (pvNil == _pregnClip)\n            rcT = rc;\n        else\n        {\n            if (!_pregnClip->FIsRc(&rcT) && hNil == (hrgn = _pregnClip->HrgnEnsure()))\n            {\n                Warn(\"clipping to region failed\");\n            }\n            rcT.FIntersect(&rc);\n        }\n\n        rcs = RCS(rcT);\n        ClipRect(&rcs);\n        if (hNil != hrgn)\n        {\n            HRGN hrgnClip = qd.thePort->clipRgn;\n            SectRgn(hrgnClip, hrgn, hrgnClip);\n        }\n        _fNewClip = fFalse;\n        _rcClip = rc;\n    }\n\n    if (_fOffscreen && hNil != (hclt = _HcltUse(_cbitPixel)))\n    {\n        HPIX hpix = ((PCPRT)qd.thePort)->portPixMap;\n        if ((*(*hpix)->pmTable)->ctSeed != (*hclt)->ctSeed)\n        {\n            // change the color table without doing any color mapping\n            // REVIEW shonk: not sure we want to use UpdateGWorld - it does pixel mapping\n            // REVIEW shonk: does UpdateGWorld just copy the color table or does it do\n            // other stuff, including changing the seed?\n            NewCode();\n            long lw;\n            RCS rcs = _rcOff;\n\n            // REVIEW shonk: check for errors\n            lw = UpdateGWorld((PGWR *)&_pprt, _cbitPixel, &rcs, hclt, hNil, keepLocal);\n        }\n    }\n    _fSet = fTrue;\n}\n\n/***************************************************************************\n    Restores the saved port and device (from a call to Set).\n***************************************************************************/\nvoid GPT::Restore(void)\n{\n    if (!_fSet)\n    {\n        Bug(\"Unmatched restore\");\n        return;\n    }\n\n#ifdef DEBUG\n    PPRT pprt;\n    HGD hgd;\n\n    GetGWorld((PGWR *)&pprt, &hgd);\n    Assert(pprt == _pprt, \"why aren't we set - someone didn't restore\");\n    Assert(hgd == _hgd || _hgd == hNil, \"gdevice set wrong\");\n#endif // DEBUG\n\n    SetGWorld((PGWR)_pprtSav, _hgdSav);\n    Unlock();\n    _fSet = fFalse;\n}\n\n/***************************************************************************\n    Return the PixMapHandle for the given port.\n***************************************************************************/\nHPIX GPT::_Hpix(void)\n{\n    if (_fOffscreen)\n        return GetGWorldPixMap((PGWR)_pprt);\n    return ((PCPRT)_pprt)->portPixMap;\n}\n\n/***************************************************************************\n    Copy bits from pgptSrc to this GPT.\n***************************************************************************/\nvoid GPT::CopyPixels(PGPT pgptSrc, RCS *prcsSrc, RCS *prcsDst, GDD *pgdd)\n{\n    Set(pgdd->prcsClip);\n    ForeColor(blackColor);\n    BackColor(whiteColor);\n    pgptSrc->Lock();\n    CopyBits((PBMP)*pgptSrc->_Hpix(), (PBMP)*_Hpix(), prcsSrc, prcsDst, srcCopy, hNil);\n    pgptSrc->Unlock();\n    Restore();\n}\n\n/***************************************************************************\n    Draw the picture in the given rectangle.\n***************************************************************************/\nvoid GPT::DrawPic(PPIC ppic, RCS *prcs, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertPo(ppic, 0);\n    AssertVarMem(prcs);\n    AssertVarMem(pgdd);\n\n    Set(pgdd->prcsClip);\n    DrawPicture(ppic->Hpic(), prcs);\n    Restore();\n}\n\n/***************************************************************************\n    Draw the masked bitmap in the given rectangle with reference point\n    *ppts.  pgdd->prcsClip is the clipping rectangle.\n***************************************************************************/\nvoid GPT::DrawMbmp(PMBMP pmbmp, RCS *prcs, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertPo(pmbmp, 0);\n    AssertVarMem(prcs);\n    AssertVarMem(pgdd);\n    RC rc, rcT;\n    HPIX hpix;\n\n    // REVIEW shonk: fix DrawMbmp to use the rcs.\n\n    pmbmp->GetRc(&rc);\n    rc.Offset(prcs->left, prcs->top);\n    if (pvNil != pgdd->prcsClip)\n    {\n        rcT = *pgdd->prcsClip;\n        if (!rc.FIntersect(&rcT))\n            return;\n    }\n\n    if (_cbitPixel == 8)\n    {\n        rcT = _rcOff;\n        Assert(rcT.xpLeft == 0 && rcT.ypTop == 0, \"bad _rcOff\");\n        if (!rc.FIntersect(&rcT))\n            return;\n\n        Lock();\n        hpix = _Hpix();\n        pmbmp->Draw((byte *)(*hpix)->baseAddr, (*hpix)->rowBytes & 0x7FFF, rcT.Dyp(), prcs->left, prcs->top, &rc,\n                    _pregnClip);\n        Unlock();\n    }\n    else\n    {\n        // need to create a temporary offscreen GPT for the Mask, set the Mask\n        // area to white in this GPT, then create an offscreen GPT for the\n        // actual MBMP graphic, then blt these to this GPT.\n        PT ptDst;\n        PGPT pgpt;\n        RCS rcsDst;\n        RCS rcsSrc;\n\n        ptDst = rc.PtTopLeft();\n        rcsDst = RCS(rc);\n        rc.OffsetToOrigin();\n        if (pvNil == (pgpt = GPT::PgptNewOffscreen(&rc, 1)))\n        {\n            Warn(\"Drawing MBMP failed\");\n            return;\n        }\n        Assert(pgpt->_rcOff == rc, 0);\n        pgpt->Lock();\n        hpix = pgpt->_Hpix();\n        pmbmp->DrawMask((byte *)(*hpix)->baseAddr, (*hpix)->rowBytes & 0x7FFF, rc.Dyp(), prcs->left - ptDst.xp,\n                        prcs->top - ptDst.yp);\n\n        // set the mask bits to black\n        Set(pgdd->prcsClip);\n        ForeColor(blackColor);\n        BackColor(whiteColor);\n        rcsSrc = RCS(rc);\n        CopyBits((PBMP)*hpix, (PBMP)*_Hpix(), &rcsSrc, &rcsDst, srcBic, hNil);\n        Restore();\n        pgpt->Unlock();\n        ReleasePpo(&pgpt);\n\n        if (pvNil == (pgpt = GPT::PgptNewOffscreen(&rc, 8)))\n        {\n            Warn(\"Drawing MBMP failed\");\n            return;\n        }\n        pgpt->Set(pvNil);\n        EraseRect(&rcsSrc);\n        pgpt->Restore();\n\n        if (pvNil != _pregnClip)\n            _pregnClip->Offset(-ptDst.xp, -ptDst.yp);\n        pgpt->Lock();\n        hpix = pgpt->_Hpix();\n        pmbmp->Draw((byte *)(*hpix)->baseAddr, (*hpix)->rowBytes & 0x7FFF, rc.Dyp(), prcs->left - ptDst.xp,\n                    prcs->top - ptDst.yp, &rc, _pregnClip);\n        if (pvNil != _pregnClip)\n            _pregnClip->Offset(ptDst.xp, ptDst.yp);\n\n        Set(pgdd->prcsClip);\n        ForeColor(blackColor);\n        BackColor(whiteColor);\n        CopyBits((PBMP)*hpix, (PBMP)*_Hpix(), &rcsSrc, &rcsDst, srcOr, hNil);\n        Restore();\n        pgpt->Unlock();\n        ReleasePpo(&pgpt);\n    }\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Test the validity of the port.\n***************************************************************************/\nvoid GPT::AssertValid(ulong grf)\n{\n    GPT_PAR::AssertValid(0);\n    AssertIn(_cactRef, 1, kcbMax);\n    AssertVarMem(_pprt);\n    AssertNilOrVarMem(_hgd);\n    AssertNilOrVarMem(_pprtSav);\n    AssertNilOrVarMem(_hgdSav);\n}\n\n/***************************************************************************\n    Static method to mark static GPT memory.\n***************************************************************************/\nvoid GPT::MarkStaticMem(void)\n{\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Initialize the font table.\n***************************************************************************/\nbool NTL::FInit(void)\n{\n    MenuHandle hmenu;\n    achar st[kcbMaxSt];\n    short ftc;\n    long ftcT;\n    long cstz, istz;\n\n    hmenu = NewMenu(1001, (byte *)\"\\pFont\");\n    AddResMenu(hmenu, 'FONT');\n    cstz = CountMItems(hmenu);\n    if ((_pgst = GST::PgstNew(size(long), cstz + 1, (cstz + 1) * 15)) == pvNil)\n        goto LFail;\n\n    for (istz = 0; istz < cstz; istz++)\n    {\n        GetItem(hmenu, istz + 1, (byte *)st);\n        GetFNum((byte *)st, &ftc);\n        ftcT = ftc;\n        AssertDo(!_pgst->FFindSt(st, &istz, fgstUserSorted), \"font already found!\");\n        if (!_pgst->FInsertSt(istz, st, &ftcT))\n            goto LFail;\n    }\n\n    // add the system font\n    GetFontName(0, (byte *)st);\n    ftcT = 0;\n    if (!_pgst->FFindSt(st, &_onnSystem, fgstUserSorted) && !_pgst->FInsertSt(_onnSystem, st, &ftcT))\n    {\n    LFail:\n        PushErc(ercGfxNoFontList);\n        return fFalse;\n    }\n\n    _pgst->FEnsureSpace(0, 0, fgrpShrink);\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the system font code for this font number.\n***************************************************************************/\nshort NTL::FtcFromOnn(long onn)\n{\n    AssertThis(0);\n    long ftc;\n\n    _pgst->GetExtra(onn, &ftc);\n    return (short)ftc;\n}\n\n/***************************************************************************\n    Return true iff the font is a fixed pitch font.\n***************************************************************************/\nbool NTL::FFixedPitch(long onn)\n{\n#ifdef REVIEW // shonk: implement FFixedPitch on Mac\n    AssertThis(0);\n    Assert(FValidOnn(onn), \"bad onn\");\n    LOGFONT lgf;\n\n    _pgst->GetExtra(onn, &lgf);\n    return (lgf.lfPitchAndFamily & 0x03) == FIXED_PITCH;\n#else\n    return fFalse;\n#endif\n}\n\n/***************************************************************************\n    Create a new rectangular region.  If prc is nil, the region will be\n    empty.\n***************************************************************************/\nbool FCreateRgn(HRGN *phrgn, RC *prc)\n{\n    AssertVarMem(phrgn);\n    AssertNilOrVarMem(prc);\n\n    if (pvNil == (*phrgn = NewRgn()))\n        return fFalse;\n    if (pvNil != prc && !prc->FEmpty())\n    {\n        RCS rcs = *prc;\n        RectRgn(*phrgn, &rcs);\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Free the region and set *phrgn to nil.\n***************************************************************************/\nvoid FreePhrgn(HRGN *phrgn)\n{\n    AssertVarMem(phrgn);\n\n    if (*phrgn != hNil)\n    {\n        DisposeRgn(*phrgn);\n        *phrgn = hNil;\n    }\n}\n\n/***************************************************************************\n    Make the region rectangular.  If prc is nil, the region will be empty.\n    If *phrgn is hNil, creates the region.  *phrgn may change even if\n    *phrgn is not nil.\n***************************************************************************/\nbool FSetRectRgn(HRGN *phrgn, RC *prc)\n{\n    AssertVarMem(phrgn);\n    AssertNilOrVarMem(prc);\n\n    if (hNil == *phrgn)\n        return FCreateRgn(phrgn, prc);\n\n    if (pvNil == prc)\n        SetEmptyRgn(*phrgn);\n    else\n    {\n        RCS rcs = *prc;\n        RectRgn(*phrgn, &rcs);\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Put the union of hrgnSrc1 and hrgnSrc2 into hrgnDst.  The parameters\n    need not be distinct.  Returns success/failure.\n***************************************************************************/\nbool FUnionRgn(HRGN hrgnDst, HRGN hrgnSrc1, HRGN hrgnSrc2)\n{\n    Assert(hNil != hrgnDst, \"null dst\");\n    Assert(hNil != hrgnSrc1, \"null src1\");\n    Assert(hNil != hrgnSrc2, \"null src2\");\n    UnionRgn(hrgnSrc1, hrgnSrc2, hrgnDst);\n    return QDError() == noErr;\n}\n\n/***************************************************************************\n    Put the intersection of hrgnSrc1 and hrgnSrc2 into hrgnDst.  The parameters\n    need not be distinct.  Returns success/failure.\n***************************************************************************/\nbool FIntersectRgn(HRGN hrgnDst, HRGN hrgnSrc1, HRGN hrgnSrc2, bool *pfEmpty)\n{\n    Assert(hNil != hrgnDst, \"null dst\");\n    Assert(hNil != hrgnSrc1, \"null src1\");\n    Assert(hNil != hrgnSrc2, \"null src2\");\n    SectRgn(hrgnSrc1, hrgnSrc2, hrgnDst);\n    if (pvNil != pfEmpty)\n        *pfEmpty = EmptyRgn(hrgnDst);\n    return QDError() == noErr;\n}\n\n/***************************************************************************\n    Put hrgnSrc - hrgnSrcSub into hrgnDst.  The parameters need not be\n    distinct.  Returns success/failure.\n***************************************************************************/\nbool FDiffRgn(HRGN hrgnDst, HRGN hrgnSrc, HRGN hrgnSrcSub)\n{\n    Assert(hNil != hrgnDst, \"null dst\");\n    Assert(hNil != hrgnSrc, \"null src\");\n    Assert(hNil != hrgnSrcSub, \"null srcSub\");\n    DiffRgn(hrgnSrc, hrgnSrcSub, hrgnDst);\n    return QDError() == noErr;\n}\n\n/***************************************************************************\n    Determine if the region is rectangular and put the bounding rectangle\n    in *prc (if not nil).\n***************************************************************************/\nbool FRectRgn(HRGN hrgn, RC *prc)\n{\n    Assert(hNil != hrgn, \"null rgn\");\n    Assert((*hrgn)->rgnSize >= 10, \"bad region\");\n\n    if (pvNil != prc)\n    {\n        RCS rcs = (*hrgn)->rgnBBox;\n        *prc = rcs;\n    }\n    return (*hrgn)->rgnSize == 10;\n}\n\n/***************************************************************************\n    Return true iff the region is empty.\n***************************************************************************/\nbool FEmptyRgn(HRGN hrgn, RC *prc)\n{\n    Assert(hNil != hrgn, \"null rgn\");\n\n    if (pvNil != prc)\n    {\n        RCS rcs = (*hrgn)->rgnBBox;\n        *prc = rcs;\n    }\n    return EmptyRgn(hrgn);\n}\n\n/***************************************************************************\n    Return true iff the two regions are equal.\n***************************************************************************/\nbool FEqualRgn(HRGN hrgn1, HRGN hrgn2)\n{\n    Assert(hNil != hrgn1, \"null rgn1\");\n    Assert(hNil != hrgn2, \"null rgn2\");\n    return EqualRgn(hrgn1, hrgn2);\n}\n"
  },
  {
    "path": "kauai/src/gfxwin.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Windows specific graphics routines.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nconst SCR kscrBlack = PALETTERGB(0, 0, 0);\nconst SCR kscrWhite = PALETTERGB(0xFF, 0xFF, 0xFF);\n\nHPAL GPT::_hpal = hNil;\nHPAL GPT::_hpalIdentity = hNil;\nlong GPT::_cclrPal = 0;\nCLR *GPT::_prgclr = pvNil;\nlong GPT::_cactPalCur = 0;\nlong GPT::_cactFlush = 1;\nbool GPT::_fPalettized = fFalse;\n\n#ifdef DEBUG\nbool GPT::_fFlushGdi;\n#define _Flush()                                                                                                       \\\n    if (_fFlushGdi)                                                                                                    \\\n        Flush();                                                                                                       \\\n    else                                                                                                               \\\n        _cactDraw = _cactFlush\n#else\n#define _Flush() _cactDraw = _cactFlush\n#endif // DEBUG\n\nHRGN _HrgnNew(RCS *prcs, bool fOval);\n\n/***************************************************************************\n    Creates a rectangular or oval region according to fOval.\n***************************************************************************/\nHRGN _HrgnNew(RCS *prcs, long dxpInset, long dypInset, bool fOval)\n{\n    AssertVarMem(prcs);\n    return fOval ? CreateEllipticRgn(prcs->left + dxpInset, prcs->top + dypInset, prcs->right - dxpInset,\n                                     prcs->bottom - dypInset)\n                 : CreateRectRgn(prcs->left + dxpInset, prcs->top + dypInset, prcs->right - dxpInset,\n                                 prcs->bottom - dypInset);\n}\n\n/***************************************************************************\n    Get a system color from the abstract color.\n***************************************************************************/\nSCR ACR::_Scr(void)\n{\n    AssertThis(facrRgb | facrIndex);\n    return B3Lw(_lu) == kbIndexAcr ? PALETTEINDEX(B0Lw(_lu)) : PALETTERGB(B2Lw(_lu), B1Lw(_lu), B0Lw(_lu));\n}\n\n/***************************************************************************\n    Draw a DIB using DrawDibDraw.\n***************************************************************************/\nvoid GNV::DrawDib(HDRAWDIB hdd, BITMAPINFOHEADER *pbi, RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(pbi);\n    AssertVarMem(prc);\n\n    RCS rcs;\n\n    if (!_FMapRcRcs(prc, &rcs))\n        return;\n\n    _pgpt->DrawDib(hdd, pbi, &rcs, &_gdd);\n}\n\n/***************************************************************************\n    Static method to flush any pending graphics operations.\n***************************************************************************/\nvoid GPT::Flush(void)\n{\n    GdiFlush();\n    _cactFlush++;\n}\n\n/***************************************************************************\n    These are the standard windows static colors. We use these on\n    non-palettized displays.\n***************************************************************************/\nstatic PALETTEENTRY _rgpe[20] = {\n    {0, 0, 0, 0},          {0x80, 0, 0, 0},       {0, 0x80, 0, 0},       {0x80, 0x80, 0, 0},    {0, 0, 0x80, 0},\n    {0x80, 0, 0x80, 0},    {0, 0x80, 0x80, 0},    {0xC0, 0xC0, 0xC0, 0}, {0xC0, 0xDC, 0xC0, 0}, {0xA6, 0xCA, 0xF0, 0},\n\n    {0xFF, 0xFB, 0xF0, 0}, {0xA0, 0xA0, 0xA4, 0}, {0x80, 0x80, 0x80, 0}, {0xFF, 0, 0, 0},       {0, 0xFF, 0, 0},\n    {0xFF, 0xFF, 0, 0},    {0, 0, 0xFF, 0},       {0xFF, 0, 0xFF, 0},    {0, 0xFF, 0xFF, 0},    {0xFF, 0xFF, 0xFF, 0},\n\n};\n\n/***************************************************************************\n    Static method to set the current color table.\n    While using fpalIdentity the following cautions apply:\n\n        1) The following indexes are reserved by the system, so shouldn't be used:\n            { 0, 1, 3, 15, 255 } (Mac)\n            { 0 - 9; 246 - 255 } (Win).\n        2) While we're in the background, RGB values may get mapped to\n            the wrong indexes, so the colors will change when we move\n            to the foreground.  The solution is to always use indexed\n            based color while using fpalIdentity.\n        3) This should only be called when we are the foreground app.\n\n    fpalInitAnim makes all non-reserved colors animatable.\n    fpalAnimate means animate the palette with the new colors, don't do\n        a normal palette set.\n***************************************************************************/\nvoid GPT::SetActiveColors(PGL pglclr, ulong grfpal)\n{\n    AssertNilOrPo(pglclr, 0);\n    Assert(pvNil == pglclr || pglclr->CbEntry() == size(CLR), \"wrong CbEntry\");\n    byte rgb[size(LOGPALETTE) + 256 * size(PALETTEENTRY)];\n    LOGPALETTE *ppal = (LOGPALETTE *)rgb;\n    PALETTEENTRY pe;\n    long ipe, ipeLim;\n    long cclr;\n    CLR clr;\n    byte rgbT[256 / 8];\n\n    if (pvNil == _prgclr)\n    {\n        if (hNil == vwig.hdcApp)\n        {\n            Bug(\"Setting palette before vwig.hdcApp is set\");\n            return;\n        }\n        if (!FAllocPv((void **)&_prgclr, LwMul(256, size(CLR)), fmemNil, mprNormal))\n        {\n            PushErc(ercGfxCantSetPalette);\n            return;\n        }\n        _fPalettized = FPure(GetDeviceCaps(vwig.hdcApp, RASTERCAPS) & RC_PALETTE);\n    }\n\n    if (grfpal & fpalInitAnim)\n        grfpal &= ~fpalAnimate;\n\n    ppal->palVersion = 0x0300;\n    if (hNil == _hpal && _fPalettized)\n    {\n        grfpal &= ~fpalAnimate;\n\n        // hack to make sure we don't share index space with a small palette\n        // see the MSDN article \"The Palette Manager: How and Why\"\n        pe.peRed = pe.peGreen = pe.peBlue = 0;\n        pe.peFlags = PC_NOCOLLAPSE;\n        for (ipe = 0; ipe < 256; ipe++)\n            ppal->palPalEntry[ipe] = pe;\n        ppal->palNumEntries = 256;\n        if (hNil == (_hpal = CreatePalette(ppal)))\n        {\n            PushErc(ercGfxCantSetPalette);\n            return;\n        }\n        SelectPalette(vwig.hdcApp, _hpal, fTrue);\n        RealizePalette(vwig.hdcApp);\n        _cclrPal = 256;\n    }\n\n    // need to resize the palette and fill in the entries\n    if (pglclr == pvNil || 0 == (cclr = LwMin(pglclr->IvMac(), 256)))\n    {\n        if (grfpal & fpalAnimate)\n            return;\n\n        if (!_fPalettized)\n        {\n            _cclrPal = 0;\n            goto LDone;\n        }\n\n        if (_cclrPal > 0)\n        {\n            GetSystemPaletteEntries(vwig.hdcApp, 0, 1, ppal->palPalEntry);\n            SetPaletteEntries(_hpal, 0, 1, ppal->palPalEntry);\n            AssertDo(ResizePalette(_hpal, 1), \"shrinking palette failed\");\n            _cclrPal = 0;\n        }\n        SelectPalette(vwig.hdcApp, _hpal, fFalse);\n        RealizePalette(vwig.hdcApp);\n        goto LDone;\n    }\n\n    if (grfpal & fpalAnimate)\n        cclr = LwMin(cclr, _cclrPal);\n    else if (cclr > _cclrPal && _fPalettized && !ResizePalette(_hpal, cclr))\n    {\n        PushErc(ercGfxCantSetPalette);\n        return;\n    }\n\n    ClearPb(rgbT, size(rgbT));\n    if (grfpal & fpalIdentity)\n    {\n        // get the first 10 and last 10 system palette entries\n        // (the static colors)\n        if (_fPalettized)\n        {\n            // the screen is palettized - get them from the screen\n            GetSystemPaletteEntries(vwig.hdcApp, 0, 10, ppal->palPalEntry);\n            GetSystemPaletteEntries(vwig.hdcApp, 246, 10, ppal->palPalEntry + 246);\n        }\n        else\n        {\n            // the screen is non-palettized - get the standard colors.\n            Assert(size(_rgpe[0]) == size(ppal->palPalEntry[0]), 0);\n            CopyPb(_rgpe, ppal->palPalEntry, 10 * size(_rgpe[0]));\n            CopyPb(_rgpe + 10, ppal->palPalEntry + 246, 10 * size(_rgpe[0]));\n        }\n\n        clr.bZero = 0;\n        for (ipe = 0; ipe < 256; ipe++)\n        {\n            if (ipe == 10)\n                ipe = 246;\n            pe = ppal->palPalEntry[ipe];\n            clr.bRed = pe.peRed;\n            clr.bGreen = pe.peGreen;\n            clr.bBlue = pe.peBlue;\n            _prgclr[ipe] = clr;\n            rgbT[IbFromIbit(pe.peRed)] |= Fbit(pe.peRed);\n        }\n    }\n\n    pe.peFlags = (grfpal & (fpalInitAnim | fpalAnimate)) ? PC_RESERVED : PC_NOCOLLAPSE;\n    ipeLim = LwMin(cclr, 246);\n    for (ipe = 10; ipe < ipeLim; ipe++)\n    {\n        pglclr->Get(ipe, &clr);\n        clr.bZero = 0;\n        if (rgbT[IbFromIbit(clr.bRed)] & Fbit(clr.bRed))\n        {\n            // have to tweak the red component\n            while (clr.bRed > 0 && (rgbT[IbFromIbit(clr.bRed)] & Fbit(clr.bRed)))\n                clr.bRed--;\n            while (rgbT[IbFromIbit(clr.bRed)] & Fbit(clr.bRed))\n                clr.bRed++;\n        }\n        _prgclr[ipe] = clr;\n        pe.peRed = clr.bRed;\n        pe.peGreen = clr.bGreen;\n        pe.peBlue = clr.bBlue;\n        ppal->palPalEntry[ipe] = pe;\n    }\n\n    if (_fPalettized)\n    {\n        if (grfpal & fpalAnimate)\n        {\n            // starting at 10 and doing LwMin(cclr - 10, 236) is necessary\n            // to work around a stupid GDI bug.\n            AnimatePalette(_hpal, 10, LwMin(cclr - 10, 236), ppal->palPalEntry + 10);\n        }\n        else\n        {\n            SetPaletteEntries(_hpal, 0, cclr, ppal->palPalEntry);\n            if (cclr < _cclrPal)\n                AssertDo(ResizePalette(_hpal, cclr), \"Shrinking palette failed\");\n            _cclrPal = cclr;\n            SelectPalette(vwig.hdcApp, _hpal, fFalse);\n            RealizePalette(vwig.hdcApp);\n        }\n    }\n    else\n        _cclrPal = cclr;\n\nLDone:\n    _cactPalCur++;\n    vcactRealize++;\n}\n\n/***************************************************************************\n    Static method to create a new pglclr containing the current palette.\n***************************************************************************/\nPGL GPT::PglclrGetPalette(void)\n{\n    PGL pglclr;\n\n    if (pvNil == (pglclr = GL::PglNew(size(CLR), _cclrPal)))\n        return pvNil;\n\n    AssertDo(pglclr->FSetIvMac(_cclrPal), 0);\n    CopyPb(_prgclr, pglclr->QvGet(0), LwMul(size(CLR), _cclrPal));\n    return pglclr;\n}\n\n/***************************************************************************\n    We've gotten a WM_QUERYNEWPALETTE or WM_PALETTECHANGED message, so\n    select and realize our palette.\n***************************************************************************/\nlong GPT::CclrSetPalette(HWND hwnd, bool fInval)\n{\n    HDC hdc;\n    long lwRet;\n\n    vcactRealize++;\n    if (hNil == _hpal)\n        return 0;\n\n    hdc = GetDC(hwnd);\n    SelectPalette(hdc, _hpal, fFalse);\n    if ((lwRet = RealizePalette(hdc)) > 0 && fInval)\n    {\n        HWND hwndT, hwndT2;\n\n        for (hwndT = hwnd;;)\n        {\n            InvalidateRect(hwndT, pvNil, fFalse);\n            if (hNil != (hwndT2 = GetWindow(hwndT, GW_CHILD)))\n            {\n                hwndT = hwndT2;\n                continue;\n            }\n            while (hwndT != hwnd && hNil == (hwndT2 = GetWindow(hwndT, GW_HWNDNEXT)))\n            {\n                hwndT = GetParent(hwndT);\n                if (hwndT == hNil)\n                {\n                    Bug(\"why doesn't the window have a parent?\");\n                    break;\n                }\n            }\n            if (hwndT == hwnd || hwndT == hNil)\n                break;\n            hwndT = hwndT2;\n        }\n    }\n    ReleaseDC(hwnd, hdc);\n    return lwRet;\n}\n\n/***************************************************************************\n    Static method to create a new GPT for an HDC.\n***************************************************************************/\nPGPT GPT::PgptNew(HDC hdc)\n{\n    Assert(hNil != hdc, \"Null hdc\");\n    PGPT pgpt;\n\n    if (hNil == hdc || pvNil == (pgpt = NewObj GPT))\n        return pvNil;\n\n    if (!pgpt->_FInit(hdc))\n        ReleasePpo(&pgpt);\n\n    AssertNilOrPo(pgpt, 0);\n    return pgpt;\n}\n\n/***************************************************************************\n    Static method to create a new GPT for a window.\n***************************************************************************/\nPGPT GPT::PgptNewHwnd(HWND hwnd)\n{\n    Assert(hNil != hwnd, \"Null hwnd\");\n    HDC hdc;\n    PGPT pgpt;\n\n    if (hNil == hwnd || hNil == (hdc = GetDC(hwnd)))\n    {\n        PushErc(ercOomGdi);\n        return pvNil;\n    }\n\n    if (pvNil == (pgpt = PgptNew(hdc)))\n    {\n        ReleaseDC(hwnd, hdc);\n        return pvNil;\n    }\n\n    pgpt->_hwnd = hwnd;\n    AssertPo(pgpt, 0);\n    return pgpt;\n}\n\n/***************************************************************************\n    Initialize the GPT.\n***************************************************************************/\nbool GPT::_FInit(HDC hdc)\n{\n    Assert(hNil != hdc, \"Null hdc\");\n    HPEN hpen;\n    HBRUSH hbr;\n    HFONT hfnt;\n    HGDIOBJ hobj;\n\n    _hdc = hdc;\n    hpen = (HPEN)GetStockObject(NULL_PEN);\n    Assert(hpen != hNil, \"GetStockObject(NULL_PEN) failed\");\n    if (hNil != (hobj = SelectObject(_hdc, hpen)))\n        DeleteObject(hobj);\n\n    hbr = (HBRUSH)GetStockObject(WHITE_BRUSH);\n    Assert(hbr != hNil, \"GetStockObject(WHITE_BRUSH) failed\");\n    if (hNil != (hobj = SelectObject(_hdc, hbr)))\n        DeleteObject(hobj);\n\n    hfnt = (HFONT)GetStockObject(SYSTEM_FONT);\n    Assert(hfnt != hNil, \"GetStockObject(SYSTEM_FONT) failed\");\n    if (hNil != (hobj = SelectObject(_hdc, hfnt)))\n        DeleteObject(hobj);\n    _dsf.tah = tahLim;\n    _dsf.tav = tavLim;\n\n    _rcClip.Max();\n    SelectClipRgn(_hdc, hNil);\n    SetPolyFillMode(_hdc, WINDING);\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Destructor for a port.\n***************************************************************************/\nGPT::~GPT(void)\n{\n    Assert(_cactLock == 0, \"pixels are still locked!\");\n    if (_fMetaFile)\n    {\n        if (hNil != _hdc)\n        {\n            HPIC hpic;\n\n            hpic = CloseEnhMetaFile(_hdc);\n            if (hNil != hpic)\n                DeleteEnhMetaFile(hpic);\n        }\n        goto LDeleteObjects;\n    }\n    if (hNil != _hbmp)\n    {\n        DeleteDC(_hdc);\n        DeleteObject(_hbmp);\n\n    LDeleteObjects:\n        if (hNil != _hbr)\n            DeleteObject(_hbr);\n        if (hNil != _hfnt)\n            DeleteObject(_hfnt);\n    }\n    else if (hNil != _hwnd)\n        ReleaseDC(_hwnd, _hdc);\n\n    ReleasePpo(&_pregnClip);\n}\n\n/***************************************************************************\n    Get the system color for this abstract color.\n***************************************************************************/\nSCR GPT::_Scr(ACR acr)\n{\n    SCR scr;\n    long iclr;\n    CLR clr;\n\n    if (!_fMapIndices && _fPalettized)\n        return acr._Scr();\n\n    scr = acr._Scr();\n    if (B3Lw(scr) != 1 || pvNil == _prgclr)\n        return scr;\n\n    iclr = SwLow(scr);\n    if (!FIn(iclr, 0, _cclrPal))\n        return scr;\n    clr = _prgclr[iclr];\n    return RGB(clr.bRed, clr.bGreen, clr.bBlue);\n}\n\n/***************************************************************************\n    Static method to create an offscreen port.\n***************************************************************************/\nPGPT GPT::PgptNewOffscreen(RC *prc, long cbitPixel)\n{\n    AssertVarMem(prc);\n    Assert(!prc->FEmpty(), \"empty rectangle for offscreen\");\n    PGPT pgpt;\n    HDC hdc, hdcT;\n    HBMP hbmp, hbmpOld;\n    BITMAPINFO *pbmi;\n    long cclr, cbRow, lwUsage;\n    void *pvBits;\n\n    // assert that cbitPixel is in {1,4,8,16,24,32}\n    AssertIn(cbitPixel, 1, 33);\n    AssertVar(cbitPixel == 32 || (1L << cbitPixel) & 0x01010112, \"bad cbitPixel value\", &cbitPixel);\n\n    hdc = CreateCompatibleDC(vwig.hdcApp);\n    if (hNil == hdc)\n        return pvNil;\n\n    if (cbitPixel > 8)\n        cclr = 0;\n    else\n        cclr = 1L << cbitPixel;\n\n    // the three longs are for 16 and 32 bit dibs.\n    if (!FAllocPv((void **)&pbmi,\n                  size(BITMAPINFO) + LwMul(cclr, LwMax(size(short), size(RGBQUAD))) + LwMul(3, size(long)), fmemClear,\n                  mprNormal))\n    {\n        goto LFail;\n    }\n\n    pbmi->bmiHeader.biSize = size(BITMAPINFOHEADER);\n    pbmi->bmiHeader.biWidth = prc->Dxp();\n    pbmi->bmiHeader.biHeight = -prc->Dyp();\n    pbmi->bmiHeader.biPlanes = 1;\n    pbmi->bmiHeader.biBitCount = (short)cbitPixel;\n    pbmi->bmiHeader.biCompression = (cbitPixel == 16 || cbitPixel == 32) ? BI_BITFIELDS : BI_RGB;\n    cbRow = LwRoundAway(LwMulDivAway(prc->Dxp(), cbitPixel, 8), size(long));\n    pbmi->bmiHeader.biSizeImage = LwMul(prc->Dyp(), cbRow);\n    pbmi->bmiHeader.biXPelsPerMeter = 0;\n    pbmi->bmiHeader.biYPelsPerMeter = 0;\n    pbmi->bmiHeader.biClrUsed = cclr;\n    pbmi->bmiHeader.biClrImportant = 0;\n\n    lwUsage = DIB_RGB_COLORS;\n    if (cclr == 0)\n    {\n        long *plw = (long *)&pbmi->bmiColors;\n\n        // set the masks\n        if (cbitPixel == 16)\n        {\n            *plw++ = 0x7C00;\n            *plw++ = 0x03E0;\n            *plw++ = 0x001F;\n        }\n        else if (cbitPixel == 32)\n        {\n            *plw++ = 0x00FF0000;\n            *plw++ = 0x0000FF00;\n            *plw++ = 0x000000FF;\n        }\n    }\n    else if (cclr == 2)\n    {\n        pbmi->bmiColors[1].rgbBlue = 0xFF;\n        pbmi->bmiColors[1].rgbGreen = 0xFF;\n        pbmi->bmiColors[1].rgbRed = 0xFF;\n    }\n    else\n    {\n        if (_hpalIdentity == hNil)\n        {\n            LOGPALETTE *ppal;\n            PALETTEENTRY pe;\n            long ipe;\n\n            if (!FAllocPv((void **)&ppal, size(LOGPALETTE) + 256 * size(PALETTEENTRY), fmemNil, mprNormal))\n            {\n                FreePpv((void **)&pbmi);\n                goto LFail;\n            }\n\n            ppal->palVersion = 0x0300;\n            pe.peRed = pe.peGreen = pe.peBlue = 0;\n            pe.peFlags = PC_EXPLICIT;\n            for (ipe = 0; ipe < 256; ipe++)\n            {\n                *(short *)&pe = (short)ipe;\n                ppal->palPalEntry[ipe] = pe;\n            }\n            ppal->palNumEntries = 256;\n            _hpalIdentity = CreatePalette(ppal);\n            FreePpv((void **)&ppal);\n            if (_hpalIdentity == hNil)\n            {\n                FreePpv((void **)&pbmi);\n                goto LFail;\n            }\n        }\n        if (_prgclr != pvNil)\n        {\n            CopyPb(_prgclr, pbmi->bmiColors, LwMul(LwMin(cclr, _cclrPal), size(RGBQUAD)));\n        }\n        else\n        {\n            short *psw = (short *)pbmi->bmiColors;\n            long isw;\n\n            lwUsage = DIB_PAL_COLORS;\n            for (isw = 0; isw < cclr;)\n                *psw++ = (short)isw++;\n        }\n    }\n\n    hdcT = GetDC(hNil);\n    Assert(hNil != hdcT, \"Failed to GetDC(hNil)\");\n    hbmp = CreateDIBSection(hdcT, pbmi, lwUsage, &pvBits, hNil, 0);\n    ReleaseDC(NULL, hdcT);\n\n    FreePpv((void **)&pbmi);\n\n    if (hNil == hbmp)\n        goto LFail;\n    if (pvNil == (pgpt = PgptNew(hdc)))\n    {\n        DeleteObject(hbmp);\n    LFail:\n        DeleteDC(hdc);\n        return pvNil;\n    }\n\n    AssertDo(hbmpOld = (HBMP)SelectObject(hdc, hbmp), \"cannot select bitmap\");\n    DeleteObject(hbmpOld);\n\n    pgpt->_hbmp = hbmp;\n    pgpt->_prgbPixels = (byte *)pvBits;\n    pgpt->_cbitPixel = cbitPixel;\n    pgpt->_cbRow = cbRow;\n    pgpt->_ptBase = prc->PtTopLeft();\n    pgpt->_rcOff = *prc;\n    pgpt->_rcOff.OffsetToOrigin();\n    SelectPalette(hdc, _hpalIdentity, fFalse);\n    RealizePalette(hdc);\n    pgpt->_cactPal = _cactPalCur;\n\n    return pgpt;\n}\n\n/***************************************************************************\n    Set the color table of an offscreen GPT.\n***************************************************************************/\nvoid GPT::SetOffscreenColors(PGL pglclr)\n{\n    AssertThis(0);\n    AssertNilOrPo(pglclr, 0);\n\n    if (hNil == _hbmp)\n    {\n        Bug(\"Can't set the palette of this port!\");\n        return;\n    }\n\n    if (pvNil == pglclr)\n    {\n        if (!_fOwnPalette)\n            return;\n\n        _fOwnPalette = fFalse;\n        _cactPal = -1; // so we'll set the colors in _EnsurePalette\n        return;\n    }\n\n    if (FIn(_cbitPixel, 2, 9))\n    {\n        SetDIBColorTable(_hdc, 0, LwMin(pglclr->IvMac(), 1L << _cbitPixel), (RGBQUAD *)pglclr->PvLock(0));\n        pglclr->Unlock();\n        _fOwnPalette = fTrue;\n    }\n}\n\n/***************************************************************************\n    If this is an offscreen bitmap, return the pointer to the pixels and\n    optionally get the bounds. Must balance with a call to Unlock().\n***************************************************************************/\nbyte *GPT::PrgbLockPixels(RC *prc)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prc);\n\n    if (hNil == _hbmp)\n        return pvNil;\n\n    if (_cactDraw >= _cactFlush)\n    {\n        Assert(_cactDraw == _cactFlush, \"why is _cactDraw > _cactFlush?\");\n        Flush();\n    }\n    if (pvNil != prc)\n        *prc = _rcOff;\n    Lock();\n    return _prgbPixels;\n}\n\n/***************************************************************************\n    If this is an offscreen bitmap, return the number of bytes per row.\n***************************************************************************/\nlong GPT::CbRow(void)\n{\n    AssertThis(0);\n\n    if (hNil == _hbmp)\n        return 0;\n    return _cbRow;\n}\n\n/***************************************************************************\n    Return the number of bits per pixel for the GPT.\n***************************************************************************/\nlong GPT::CbitPixel(void)\n{\n    AssertThis(0);\n\n    if (hNil == _hbmp && 0 == _cbitPixel && (RC_PALETTE & GetDeviceCaps(_hdc, RASTERCAPS)))\n    {\n        _cbitPixel = GetDeviceCaps(_hdc, BITSPIXEL) * GetDeviceCaps(_hdc, PLANES);\n    }\n\n    return _cbitPixel;\n}\n\n/***************************************************************************\n    Lock the pixels if this is an offscreen bitmap. Must be balanced by a\n    call to Unlock.\n***************************************************************************/\nvoid GPT::Lock(void)\n{\n    AssertThis(0);\n    _cactLock++;\n}\n\n/***************************************************************************\n    Unlock the pixels if this is an offscreen bitmap.\n***************************************************************************/\nvoid GPT::Unlock(void)\n{\n    if (--_cactLock < 0)\n    {\n        Bug(\"Unmatched unlock call\");\n        _cactLock = 0;\n    }\n}\n\n/***************************************************************************\n    Static method to create a metafile dc and its an associated GPT.\n    This should be balanced with a call to PpicRelease().\n***************************************************************************/\nPGPT GPT::PgptNewPic(RC *prc)\n{\n    AssertVarMem(prc);\n    Assert(!prc->FEmpty(), \"empty rectangle for metafile GPT\");\n    PGPT pgpt;\n    RCS rcs;\n    HDC hdc;\n\n    // NOTE: have to use nil for the rect because GDI is messed up -\n    // the rect is supposed to be in hi-metric but the transform seems\n    // to be totally random (scaled by approximately 129/4 in one\n    // direction and 125/4 in the other, but this is not exact).\n    hdc = CreateEnhMetaFile(pvNil, pvNil, pvNil /*&rcs*/, pvNil);\n    if (hNil == hdc)\n        return pvNil;\n\n    // fill the bounding rectangle with the null brush so the metafile\n    // is at least the given size.\n    rcs = *prc;\n    rcs.right++; // empirical GDI hack\n    rcs.bottom++;\n    FillRect(hdc, &rcs, (HBRUSH)GetStockObject(NULL_BRUSH));\n\n    if (pvNil == (pgpt = PgptNew(hdc)))\n    {\n        HPIC hpic;\n        if (hNil != (hpic = CloseEnhMetaFile(hdc)))\n            DeleteEnhMetaFile(hpic);\n        return pvNil;\n    }\n\n    pgpt->_fMetaFile = fTrue;\n    pgpt->_rcOff = *prc;\n    return pgpt;\n}\n\n/***************************************************************************\n    Closes a metafile based GPT and returns the picture produced from\n    drawing into the GPT.\n***************************************************************************/\nPPIC GPT::PpicRelease(void)\n{\n    AssertThis(0);\n    PPIC ppic;\n    HPIC hpic;\n\n    if (!_fMetaFile)\n    {\n        Bug(\"not a MetaFile GPT\");\n        goto LFail;\n    }\n    if (hNil == _hdc)\n    {\n        Bug(\"_hdc already nil\");\n        goto LFail;\n    }\n\n    hpic = CloseEnhMetaFile(_hdc);\n    _hdc = hNil;\n    if (hNil == hpic)\n        goto LFail;\n    if (pvNil == (ppic = PIC::PpicNew(hpic, &_rcOff)))\n    {\n        DeleteEnhMetaFile(hpic);\n    LFail:\n        Release();\n        return pvNil;\n    }\n    Release();\n    return ppic;\n}\n\n/***************************************************************************\n    Hilites the rectangle by inverting.\n***************************************************************************/\nvoid GPT::HiliteRcs(RCS *prcs, GDD *pgdd)\n{\n    AssertThis(0);\n    _SetClip(pgdd->prcsClip);\n    InvertRect(_hdc, prcs);\n    _Flush();\n}\n\n/***************************************************************************\n    Fill/frame a rectangle with a 2-color pattern or solid color.\n***************************************************************************/\nvoid GPT::DrawRcs(RCS *prcs, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertVarMem(prcs);\n    AssertVarMem(pgdd);\n    if (!(pgdd->grfgdd & fgddFrame) || pgdd->dxpPen * 2 >= prcs->right - prcs->left ||\n        pgdd->dypPen * 2 >= prcs->bottom - prcs->top)\n    {\n        // just fill it\n        _Fill(prcs, pgdd, (PFNDRW)&GPT::_FillRcs);\n    }\n    else\n        _FrameRcsOval(prcs, pgdd, fFalse);\n}\n\n/***************************************************************************\n    Fill/frame a rectangle with a 2-color pattern or solid color.\n***************************************************************************/\nvoid GPT::DrawOval(RCS *prcs, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertVarMem(prcs);\n    AssertVarMem(pgdd);\n    if (!(pgdd->grfgdd & fgddFrame) || pgdd->dxpPen * 2 >= prcs->right - prcs->left ||\n        pgdd->dypPen * 2 >= prcs->bottom - prcs->top)\n    {\n        // just fill it\n        _Fill(prcs, pgdd, (PFNDRW)&GPT::_FillOval);\n    }\n    else\n        _FrameRcsOval(prcs, pgdd, fTrue);\n}\n\n/***************************************************************************\n    Frames either an RCS or an oval.  Client should have already handled\n    the case when the pen is big enough to fill the entire rcs/oval.\n***************************************************************************/\nvoid GPT::_FrameRcsOval(RCS *prcs, GDD *pgdd, bool fOval)\n{\n    Assert((pgdd->grfgdd & fgddFrame) && pgdd->dxpPen * 2 < prcs->right - prcs->left &&\n               pgdd->dypPen * 2 < prcs->bottom - prcs->top,\n           \"use solid fill\");\n\n    // Create a region for the area to fill.  This is faster than\n    // using a polygon.\n    HRGN hrgnInside, hrgnOutside;\n\n    if (hNil == (hrgnOutside = _HrgnNew(prcs, 0, 0, fOval)))\n    {\n        hrgnInside = hNil;\n        goto LError;\n    }\n\n    if (hNil == (hrgnInside = _HrgnNew(prcs, pgdd->dxpPen, pgdd->dypPen, fOval)))\n        goto LError;\n\n    switch (CombineRgn(hrgnOutside, hrgnInside, hrgnOutside, RGN_XOR))\n    {\n    default:\n        _Fill(&hrgnOutside, pgdd, (PFNDRW)&GPT::_FillRgn);\n        break;\n\n    case NULLREGION:\n        break;\n\n    case ERROR:\n    LError:\n        PushErc(ercOomGdi);\n        PushErc(ercGfxCantDraw);\n        break;\n    }\n\n    if (hNil != hrgnInside)\n        DeleteObject(hrgnInside);\n    if (hNil != hrgnOutside)\n        DeleteObject(hrgnOutside);\n}\n\n/***************************************************************************\n    Fill/frame a polygon with a 2-color pattern or solid color.\n***************************************************************************/\nvoid GPT::DrawPoly(HQ hqoly, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertHq(hqoly);\n    AssertVarMem(pgdd);\n\n    _Fill(PvLockHq(hqoly), pgdd, (PFNDRW)&GPT::_FillPoly);\n    UnlockHq(hqoly);\n}\n\n/***************************************************************************\n    Draw a line.\n***************************************************************************/\nvoid GPT::DrawLine(PTS *ppts1, PTS *ppts2, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertVarMem(ppts1);\n    AssertVarMem(ppts2);\n    AssertVarMem(pgdd);\n\n    // create an OLY to fill\n    long dxp, dyp, dypPen;\n    PTS *pptsDst;\n    byte rgbOly[kcbOlyBase + 6 * size(PTS)];\n    OLY *poly = (OLY *)rgbOly;\n\n    poly->cpts = 6;\n\n    if (ppts2->x < ppts1->x)\n    {\n        // swap them\n        PTS *pptsT;\n\n        pptsT = ppts2;\n        ppts2 = ppts1;\n        ppts1 = pptsT;\n    }\n    Assert(ppts2->x >= ppts1->x, \"points still not in order\");\n\n    dxp = ppts2->x - ppts1->x;\n    dyp = ppts2->y - ppts1->y;\n    dypPen = pgdd->dypPen;\n\n    pptsDst = poly->rgpts;\n    *pptsDst = *ppts1;\n    if (dyp < 0)\n    {\n        dypPen = -dypPen;\n        pptsDst[1].x = pptsDst[0].x;\n        pptsDst[1].y = pptsDst[0].y - dypPen;\n        pptsDst++;\n    }\n    pptsDst[1].x = pptsDst[0].x + pgdd->dxpPen;\n    pptsDst[1].y = pptsDst[0].y;\n    pptsDst++;\n    pptsDst[1].x = pptsDst[0].x + dxp;\n    pptsDst[1].y = pptsDst[0].y + dyp;\n    pptsDst++;\n    pptsDst[1].x = pptsDst[0].x;\n    pptsDst[1].y = pptsDst[0].y + dypPen;\n    pptsDst++;\n    pptsDst[1].x = pptsDst[0].x - pgdd->dxpPen;\n    pptsDst[1].y = pptsDst[0].y;\n    if (dyp >= 0)\n    {\n        pptsDst++;\n        pptsDst[1].x = pptsDst[0].x - dxp;\n        pptsDst[1].y = pptsDst[0].y - dyp;\n    }\n    Assert(pptsDst == &poly->rgpts[4], \"wrote off end of OLY\");\n\n    _Fill(poly, pgdd, (PFNDRW)&GPT::_FillPoly);\n}\n\n/***************************************************************************\n    Low level call back to fill a rectangle.  Assumes the current pen\n    is NULL and the brush is set as desired.\n***************************************************************************/\nvoid GPT::_FillRcs(RCS *prcs)\n{\n    AssertVarMem(prcs);\n\n    Rectangle(_hdc, prcs->left, prcs->top, prcs->right + 1, prcs->bottom + 1);\n    _Flush();\n}\n\n/***************************************************************************\n    Low level call back to fill an oval (ellipse).  Assumes the current\n    pen is NULL and the brush is set as desired.\n***************************************************************************/\nvoid GPT::_FillOval(RCS *prcs)\n{\n    AssertVarMem(prcs);\n\n    Ellipse(_hdc, prcs->left, prcs->top, prcs->right + 1, prcs->bottom + 1);\n    _Flush();\n}\n\n/***************************************************************************\n    Low level call back to fill a region.  Assumes the current pen is\n    NULL and the brush is set as desired.\n***************************************************************************/\nvoid GPT::_FillRgn(HRGN *phrgn)\n{\n    AssertVarMem(phrgn);\n\n    FillRgn(_hdc, *phrgn, _hbr);\n    _Flush();\n}\n\n/***************************************************************************\n    Low level call back to fill a polygon.  Assumes the current pen is\n    NULL and the brush is set as desired.\n***************************************************************************/\nvoid GPT::_FillPoly(OLY *poly)\n{\n    AssertVarMem(poly);\n\n    Polygon(_hdc, poly->rgpts, poly->cpts);\n    _Flush();\n}\n\n/***************************************************************************\n    Make sure the clipping is set to this rectangle and make sure the\n    palette is selected.\n***************************************************************************/\nvoid GPT::_SetClip(RCS *prcsClip)\n{\n    AssertNilOrVarMem(prcsClip);\n    RC rc, rcT;\n\n    if (pvNil == prcsClip)\n        rc.Max();\n    else\n        rc = RC(*prcsClip);\n\n    if (_fMetaFile)\n    {\n        // in a metafile GPT, clip to the bounding rectangle\n        rc.FIntersect(&_rcOff);\n    }\n\n    if (_fNewClip || rc != _rcClip)\n    {\n        // have to set the clipping\n        if (_fNewClip || !_rcClip.FMax())\n        {\n            // have to first set the clipping to the _pregnClip\n            HRGN hrgn;\n\n            if (pvNil == _pregnClip)\n                SelectClipRgn(_hdc, hNil);\n            else if (_pregnClip->FIsRc(&rcT) || hNil == (hrgn = _pregnClip->HrgnEnsure()))\n            {\n                rcT.FIntersect(&rc);\n                SelectClipRgn(_hdc, hNil);\n                IntersectClipRect(_hdc, rcT.xpLeft, rcT.ypTop, rcT.xpRight, rcT.ypBottom);\n                _rcClip = rc;\n                goto LClipSet;\n            }\n            else\n                SelectClipRgn(_hdc, hrgn);\n        }\n\n        if (!rc.FMax())\n        {\n            IntersectClipRect(_hdc, rc.xpLeft, rc.ypTop, rc.xpRight, rc.ypBottom);\n        }\n\n    LClipSet:\n        _fNewClip = fFalse;\n        _rcClip = rc;\n    }\n\n    _EnsurePalette();\n}\n\n/***************************************************************************\n    Make sure the palette is set up correctly in this GPT.\n***************************************************************************/\nvoid GPT::_EnsurePalette(void)\n{\n    if (_cactPal == _cactPalCur || pvNil == _prgclr)\n        return;\n\n    if (_prgbPixels != pvNil)\n    {\n        if (!_fOwnPalette && FIn(_cbitPixel, 2, 9))\n        {\n            SetDIBColorTable(_hdc, 0, LwMin(_cclrPal, 1L << _cbitPixel), (RGBQUAD *)_prgclr);\n        }\n    }\n    else if (!_fMapIndices && hNil != _hpal)\n    {\n        if (!SelectPalette(_hdc, _hpal, fFalse))\n            _fMapIndices = fTrue;\n        else\n            RealizePalette(_hdc);\n    }\n    _cactPal = _cactPalCur;\n}\n\n/***************************************************************************\n    Low level routine to fill an object with a color.\n***************************************************************************/\nvoid GPT::_Fill(void *pv, GDD *pgdd, PFNDRW pfn)\n{\n    ACR acrFore;\n\n    acrFore = pgdd->acrFore;\n    _SetClip(pgdd->prcsClip);\n\n    if (pgdd->grfgdd & fgddPattern)\n    {\n        // patterned fill\n        ACR acrBack = pgdd->acrBack;\n        APT apt = pgdd->apt;\n\n        // check for a solid pattern\n        if (apt.FSolidFore() || acrFore == acrBack)\n            goto LFill;\n        if (apt.FSolidBack())\n        {\n            acrFore = acrBack;\n            goto LFill;\n        }\n\n        Assert(acrFore != acrBack, \"fore and back colors still equal!\");\n        // Make sure we have one of these forms:\n        //   (*, *)\n        //   (clear, *)\n        //   (invert, *)\n        //   (invert, clear)\n        if (acrBack == kacrInvert || acrBack == kacrClear && acrFore != kacrInvert)\n        {\n            // swap them and invert the pattern\n            acrFore = acrBack;\n            acrBack = pgdd->acrFore;\n            apt.Invert();\n        }\n\n        // set the correct brush\n        _SetAptBrush(&apt);\n\n        if (acrFore == kacrInvert)\n        {\n            // do (invert, clear)\n            SetTextColor(_hdc, kscrWhite);\n            SetBkColor(_hdc, kscrBlack);\n\n            SetROP2(_hdc, R2_XORPEN);\n            (this->*pfn)(pv);\n\n            if (acrBack != kacrClear)\n            {\n                // need (invert, *), have already done (invert, clear)\n                // so still need to do (clear, *)\n                goto LClear;\n            }\n        }\n        else if (acrFore == kacrClear)\n        {\n        LClear:\n            // do (clear, *)\n            SetTextColor(_hdc, kscrWhite);\n            SetBkColor(_hdc, kscrBlack);\n            SetROP2(_hdc, R2_MERGENOTPEN);\n            (this->*pfn)(pv);\n\n            SetBkColor(_hdc, _Scr(acrBack));\n            SetROP2(_hdc, R2_MASKPEN);\n            (this->*pfn)(pv);\n        }\n        else\n        {\n            // do (*, *)\n            SetTextColor(_hdc, _Scr(acrFore));\n            SetBkColor(_hdc, _Scr(acrBack));\n            SetROP2(_hdc, R2_COPYPEN);\n            (this->*pfn)(pv);\n        }\n    }\n    else\n    {\n        // solid color fill\n    LFill:\n        if (acrFore == kacrClear)\n            return; // nothing to do\n\n        if (acrFore == kacrInvert)\n        {\n            _SetStockBrush(WHITE_BRUSH);\n            SetROP2(_hdc, R2_XORPEN);\n        }\n        else\n        {\n            _SetAcrBrush(acrFore);\n            SetROP2(_hdc, R2_COPYPEN);\n        }\n        (this->*pfn)(pv);\n    }\n}\n\n/***************************************************************************\n    Scroll a rectangle.\n***************************************************************************/\nvoid GPT::ScrollRcs(RCS *prcs, long dxp, long dyp, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertVarMem(prcs);\n    AssertVarMem(pgdd);\n\n    _SetClip(pgdd->prcsClip);\n    ScrollDC(_hdc, dxp, dyp, prcs, prcs, hNil, pvNil);\n    _Flush();\n}\n\n/***************************************************************************\n    Draw some text.\n***************************************************************************/\nvoid GPT::DrawRgch(achar *prgch, long cch, PTS pts, GDD *pgdd, DSF *pdsf)\n{\n    AssertThis(0);\n    AssertIn(cch, 0, kcbMax);\n    AssertPvCb(prgch, cch);\n    AssertVarMem(pgdd);\n    AssertPo(pdsf, 0);\n\n    ACR acrFore, acrBack;\n    RCS rcs;\n\n    _SetClip(pgdd->prcsClip);\n    acrBack = pgdd->acrBack;\n    if (acrBack == kacrInvert || (pdsf->grfont & fontBoxed) || pdsf->tav == tavCenter)\n    {\n        // GetRcsFromRgch calls _SetTextProps, so we don't need to here\n        GetRcsFromRgch(&rcs, prgch, cch, pts, pdsf);\n        if (acrBack == kacrInvert)\n        {\n            GDD gdd = *pgdd;\n\n            acrBack = kacrClear;\n            gdd.grfgdd = fgddFill;\n            gdd.acrFore = kacrInvert;\n            DrawRcs(&rcs, &gdd);\n        }\n    }\n    else\n        _SetTextProps(pdsf);\n\n    if (acrBack == kacrClear)\n        SetBkMode(_hdc, TRANSPARENT);\n    else\n    {\n        SetBkMode(_hdc, OPAQUE);\n        SetBkColor(_hdc, _Scr(acrBack));\n    }\n\n    if (pgdd->acrFore == kacrClear || pgdd->acrFore == kacrInvert)\n    {\n        BugVar(\"Unsupported DrawRgch() foreground color\", &pgdd->acrFore);\n        acrFore = kacrBlack;\n    }\n    else\n        acrFore = pgdd->acrFore;\n    SetTextColor(_hdc, _Scr(acrFore));\n\n    // Windows won't vertically center via text alignment flags, so we need\n    // to do it ourselves.\n    if (pdsf->tav == tavCenter)\n        pts.y = rcs.top;\n\n    TextOut(_hdc, pts.x, pts.y, prgch, cch);\n    _Flush();\n\n    if (pdsf->grfont & fontBoxed)\n    {\n        GDD gdd = *pgdd;\n\n        gdd.dxpPen = gdd.dypPen = 1;\n        gdd.grfgdd = fgddFrame | fgddPattern;\n        gdd.apt = vaptGray;\n        gdd.apt.MoveOrigin(-_ptBase.xp, -_ptBase.yp);\n        gdd.acrBack = kacrClear;\n        DrawRcs(&rcs, &gdd);\n    }\n}\n\n/***************************************************************************\n    Get the bounding text rectangle.\n***************************************************************************/\nvoid GPT::GetRcsFromRgch(RCS *prcs, achar *prgch, long cch, PTS pts, DSF *pdsf)\n{\n    AssertThis(0);\n    AssertVarMem(prcs);\n    AssertIn(cch, 0, kcbMax);\n    AssertPvCb(prgch, cch);\n    AssertPo(pdsf, 0);\n\n    SIZE dpt;\n    TEXTMETRIC txm;\n    long dxp, dyp;\n\n    _SetTextProps(pdsf);\n    GetTextMetrics(_hdc, &txm);\n    txm.tmHeight += txm.tmExternalLeading;\n    GetTextExtentPoint32(_hdc, prgch, cch, &dpt);\n\n    switch (pdsf->tav)\n    {\n    default:\n        BugVar(\"bogus vertical alignment\", &pdsf->tav);\n        // Fall through.\n\n    case tavTop:\n        dyp = 0;\n        break;\n\n    case tavCenter:\n        dyp = -(txm.tmHeight / 2);\n        break;\n\n    case tavBaseline:\n        dyp = -txm.tmAscent;\n        break;\n\n    case tavBottom:\n        dyp = -txm.tmHeight;\n        break;\n    }\n\n    switch (pdsf->tah)\n    {\n    default:\n        BugVar(\"bogus horizontal alignment\", &pdsf->tah);\n        // Fall through.\n\n    case tahLeft:\n        dxp = 0;\n        break;\n\n    case tahCenter:\n        dxp = -dpt.cx / 2;\n        break;\n\n    case tahRight:\n        dxp = -dpt.cx;\n        break;\n    }\n    prcs->left = pts.x + dxp;\n    prcs->right = pts.x + dpt.cx + dxp;\n    prcs->top = pts.y + dyp;\n    prcs->bottom = pts.y + txm.tmHeight + dyp;\n}\n\n/***************************************************************************\n    Select a monochrome patterned brush corresponding to the APT.\n***************************************************************************/\nvoid GPT::_SetAptBrush(APT *papt)\n{\n    AssertVarMem(papt);\n    short rgw[8];\n    long iw;\n    HBRUSH hbr;\n    HBITMAP hbmp;\n\n    if (_bk == bkApt && _apt == *papt)\n        return;\n\n    // create and select the brush\n    for (iw = 0; iw < 8; iw++)\n        rgw[iw] = ~papt->rgb[iw];\n    if (hNil == (hbmp = CreateBitmap(8, 8, 1, 1, rgw)))\n        goto LError;\n    hbr = CreatePatternBrush(hbmp);\n    DeleteObject(hbmp);\n    if (hNil == hbr)\n        goto LError;\n    if (!SelectObject(_hdc, hbr))\n    {\n        DeleteObject(hbr);\n    LError:\n        PushErc(ercOomGdi);\n        return;\n    }\n    if (hNil != _hbr)\n        DeleteObject(_hbr);\n    _hbr = hbr;\n    _bk = bkApt;\n    _apt = *papt;\n}\n\n/***************************************************************************\n    Select a solid brush corresponding to the acr.\n***************************************************************************/\nvoid GPT::_SetAcrBrush(ACR acr)\n{\n    HBRUSH hbr;\n\n    if (_bk == bkAcr && _acr == acr)\n        return;\n\n    if (hNil == (hbr = CreateSolidBrush(_Scr(acr))))\n        goto LError;\n    if (!SelectObject(_hdc, hbr))\n    {\n        DeleteObject(hbr);\n    LError:\n        PushErc(ercOomGdi);\n        return;\n    }\n    if (hNil != _hbr)\n        DeleteObject(_hbr);\n    _hbr = hbr;\n    _bk = bkAcr;\n    _acr = acr;\n}\n\n/***************************************************************************\n    Select a stock brush.\n***************************************************************************/\nvoid GPT::_SetStockBrush(int wType)\n{\n    HBRUSH hbr;\n\n    if (_bk == bkStock && _wType == wType)\n        return;\n\n    if (hNil == (hbr = (HBRUSH)GetStockObject(wType)))\n        goto LError;\n    if (!SelectObject(_hdc, hbr))\n    {\n        DeleteObject(hbr);\n    LError:\n        PushErc(ercOomGdi);\n        return;\n    }\n    if (hNil != _hbr)\n        DeleteObject(_hbr);\n    _hbr = hbr;\n    _bk = bkStock;\n    _wType = wType;\n}\n\n/***************************************************************************\n    Select a font corresponding to the DSF.  Also, set the alignment as\n    specified in the DSF.\n***************************************************************************/\nvoid GPT::_SetTextProps(DSF *pdsf)\n{\n    AssertPo(pdsf, 0);\n    static int _mptahw[] = {\n        TA_LEFT,   // tahLeft\n        TA_CENTER, // tahCenter\n        TA_RIGHT   // tahRight\n    };\n    static _mptavw[] = {\n        TA_TOP,      // tavTop\n        TA_TOP,      // tavCenter + code\n        TA_BASELINE, // tavBaseline\n        TA_BOTTOM    // tavBottom\n    };\n\n    HFONT hfnt;\n\n    if (_hfnt != hNil && pdsf->onn == _dsf.onn && pdsf->grfont == _dsf.grfont && pdsf->dyp == _dsf.dyp)\n    {\n        goto LSetAlignment;\n    }\n\n    if (hNil == (hfnt = vntl.HfntCreate(pdsf)))\n        goto LError;\n    if (!SelectObject(_hdc, hfnt))\n    {\n        DeleteObject(hfnt);\n    LError:\n        PushErc(ercGfxCantSetFont);\n        return;\n    }\n    if (hNil != _hfnt)\n        DeleteObject(_hfnt);\n    _hfnt = hfnt;\n    _dsf.onn = pdsf->onn;\n    _dsf.grfont = pdsf->grfont;\n    _dsf.dyp = pdsf->dyp;\n\nLSetAlignment:\n    // Set the text alignment.\n    if (pdsf->tav != _dsf.tav || pdsf->tah != _dsf.tah)\n    {\n        SetTextAlign(_hdc, _mptahw[pdsf->tah] | _mptavw[pdsf->tav]);\n        _dsf.tah = pdsf->tah;\n        _dsf.tav = pdsf->tav;\n    }\n}\n\n/***************************************************************************\n    Copy bits from pgptSrc to this GPT.\n***************************************************************************/\nvoid GPT::CopyPixels(PGPT pgptSrc, RCS *prcsSrc, RCS *prcsDst, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertPo(pgptSrc, 0);\n    AssertVarMem(prcsSrc);\n    AssertVarMem(prcsDst);\n    AssertVarMem(pgdd);\n    long dxpSrc, dxpDst;\n\n    // see if we're doing an offscreen (2x, 2x) stretch or (1x, 2x) stretch -\n    // optimize for these\n    if (pgptSrc->_cbitPixel == 8 && _cbitPixel == 8 &&\n        ((dxpSrc = prcsSrc->right - prcsSrc->left) == (dxpDst = prcsDst->right - prcsDst->left) ||\n         2 * dxpSrc == dxpDst) &&\n        2 * (prcsSrc->bottom - prcsSrc->top) == prcsDst->bottom - prcsDst->top && !pgptSrc->_fOwnPalette &&\n        !_fOwnPalette)\n    {\n        RC rcClip;\n        RC rcDouble(*prcsDst);\n        RC rcSrc(*prcsSrc);\n\n        if (!rcSrc.FIntersect(&pgptSrc->_rcOff))\n            return;\n\n        if (dxpSrc == dxpDst)\n        {\n            rcDouble.xpLeft += rcSrc.xpLeft - prcsSrc->left;\n            rcDouble.xpRight += rcSrc.xpRight - prcsSrc->right;\n        }\n        else\n        {\n            rcDouble.xpLeft += 2 * (rcSrc.xpLeft - prcsSrc->left);\n            rcDouble.xpRight += 2 * (rcSrc.xpRight - prcsSrc->right);\n        }\n        rcDouble.ypTop += 2 * (rcSrc.ypTop - prcsSrc->top);\n        rcDouble.ypBottom += 2 * (rcSrc.ypBottom - prcsSrc->bottom);\n\n        if (pvNil != pgdd->prcsClip)\n        {\n            rcClip = *pgdd->prcsClip;\n            if (!rcClip.FIntersect(&rcDouble))\n                return;\n        }\n        else\n            rcClip = rcDouble;\n\n        if (_cactDraw >= _cactFlush || pgptSrc->_cactDraw >= _cactFlush)\n            Flush();\n\n        if (dxpSrc == dxpDst)\n        {\n            DoubleVertStretch(pgptSrc->_prgbPixels, pgptSrc->_cbRow, pgptSrc->_rcOff.Dyp(), &rcSrc, _prgbPixels, _cbRow,\n                              _rcOff.Dyp(), prcsDst->left, prcsDst->top, &rcClip, _pregnClip);\n        }\n        else\n        {\n            DoubleStretch(pgptSrc->_prgbPixels, pgptSrc->_cbRow, pgptSrc->_rcOff.Dyp(), &rcSrc, _prgbPixels, _cbRow,\n                          _rcOff.Dyp(), prcsDst->left, prcsDst->top, &rcClip, _pregnClip);\n        }\n        return;\n    }\n\n    // see if we're doing an offscreen double vertical stretch, ie 2x in the\n    // vertical direction, 1x in horizontal - optimize for this\n    if (pgptSrc->_cbitPixel == 8 && _cbitPixel == 8 &&\n        2 * (prcsSrc->right - prcsSrc->left) == prcsDst->right - prcsDst->left &&\n        2 * (prcsSrc->bottom - prcsSrc->top) == prcsDst->bottom - prcsDst->top && !pgptSrc->_fOwnPalette &&\n        !_fOwnPalette)\n    {\n        RC rcClip;\n        RC rcDouble(*prcsDst);\n        RC rcSrc(*prcsSrc);\n\n        if (!rcSrc.FIntersect(&pgptSrc->_rcOff))\n            return;\n\n        rcDouble.xpLeft += 2 * (rcSrc.xpLeft - prcsSrc->left);\n        rcDouble.ypTop += 2 * (rcSrc.ypTop - prcsSrc->top);\n        rcDouble.xpRight += 2 * (rcSrc.xpRight - prcsSrc->right);\n        rcDouble.ypBottom += 2 * (rcSrc.ypBottom - prcsSrc->bottom);\n\n        if (pvNil != pgdd->prcsClip)\n        {\n            rcClip = *pgdd->prcsClip;\n            if (!rcClip.FIntersect(&rcDouble))\n                return;\n        }\n        else\n            rcClip = rcDouble;\n\n        if (_cactDraw >= _cactFlush || pgptSrc->_cactDraw >= _cactFlush)\n            Flush();\n        DoubleStretch(pgptSrc->_prgbPixels, pgptSrc->_cbRow, pgptSrc->_rcOff.Dyp(), &rcSrc, _prgbPixels, _cbRow,\n                      _rcOff.Dyp(), prcsDst->left, prcsDst->top, &rcClip, _pregnClip);\n        return;\n    }\n\n    SetTextColor(_hdc, kscrWhite);\n    SetBkColor(_hdc, kscrBlack);\n\n    _SetClip(pgdd->prcsClip);\n    pgptSrc->_EnsurePalette();\n    SetStretchBltMode(_hdc, COLORONCOLOR);\n    StretchBlt(_hdc, prcsDst->left, prcsDst->top, prcsDst->right - prcsDst->left, prcsDst->bottom - prcsDst->top,\n               pgptSrc->_hdc, prcsSrc->left, prcsSrc->top, prcsSrc->right - prcsSrc->left,\n               prcsSrc->bottom - prcsSrc->top, SRCCOPY);\n\n    // we need to set the source's _cactDraw to _cactFlush because its bits\n    // are referenced in the GDI queue until a flush occurs - so if we\n    // write over them, the wrong stuff gets blasted to the destination.\n    pgptSrc->_cactDraw = _cactFlush;\n    _Flush();\n}\n\n/***************************************************************************\n    Draw the picture in the given rectangle.\n***************************************************************************/\nvoid GPT::DrawPic(PPIC ppic, RCS *prcs, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertPo(ppic, 0);\n    AssertVarMem(prcs);\n    AssertVarMem(pgdd);\n    int wLevel;\n\n    _SetClip(pgdd->prcsClip);\n    if ((wLevel = SaveDC(_hdc)) == 0)\n    {\n        PushErc(ercGfxCantDraw);\n        return;\n    }\n\n    PlayEnhMetaFile(_hdc, ppic->Hpic(), prcs);\n    RestoreDC(_hdc, wLevel);\n    _Flush();\n}\n\n/***************************************************************************\n    Draw the masked bitmap in the given rectangle.  pgdd->prcsClip is the\n    clipping rectangle.\n***************************************************************************/\nvoid GPT::DrawMbmp(PMBMP pmbmp, RCS *prcs, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertPo(pmbmp, 0);\n    AssertVarMem(prcs);\n    AssertVarMem(pgdd);\n    RC rcSrc, rcDst, rcClip;\n\n    rcDst = *prcs;\n    if (pvNil != pgdd->prcsClip)\n    {\n        rcClip = *pgdd->prcsClip;\n        if (!rcClip.FIntersect(&rcDst))\n            return;\n    }\n    else\n        rcClip = rcDst;\n    pmbmp->GetRc(&rcSrc);\n    if (rcSrc.FEmpty())\n        return;\n\n    if (_cbitPixel == 8 && rcSrc.Dxp() == rcDst.Dxp() && rcSrc.Dyp() == rcDst.Dyp())\n    {\n        Assert(_hbmp != hNil, 0);\n        Assert(_rcOff.xpLeft == 0 && _rcOff.ypTop == 0, \"bad _rcOff\");\n        if (!rcClip.FIntersect(&_rcOff))\n            return;\n\n        if (_cactDraw >= _cactFlush)\n        {\n            Assert(_cactDraw == _cactFlush, \"why is _cactDraw > _cactFlush?\");\n            Flush();\n        }\n        pmbmp->Draw(_prgbPixels, _cbRow, _rcOff.Dyp(), rcDst.xpLeft - rcSrc.xpLeft, rcDst.ypTop - rcSrc.ypTop, &rcClip,\n                    _pregnClip);\n    }\n    else\n    {\n        // need to create a temporary offscreen GPT for the Mask, set the Mask\n        // area to white in this GPT, then create an offscreen GPT for the\n        // actual MBMP graphic, then blt to this GPT.\n        PT ptSrc;\n        PGPT pgpt;\n\n        SetTextColor(_hdc, kscrWhite);\n        SetBkColor(_hdc, kscrBlack);\n\n        ptSrc = rcSrc.PtTopLeft();\n        rcSrc.OffsetToOrigin();\n        if (pvNil == (pgpt = GPT::PgptNewOffscreen(&rcSrc, 1)))\n        {\n            Warn(\"Drawing MBMP failed\");\n            return;\n        }\n        Assert(pgpt->_rcOff == rcSrc, 0);\n        pmbmp->DrawMask(pgpt->_prgbPixels, pgpt->_cbRow, rcSrc.Dyp(), -ptSrc.xp, -ptSrc.yp, &rcSrc);\n\n        // set the mask bits to white\n        _SetClip(pgdd->prcsClip);\n        StretchBlt(_hdc, rcDst.xpLeft, rcDst.ypTop, rcDst.Dxp(), rcDst.Dyp(), pgpt->_hdc, 0, 0, rcSrc.Dxp(),\n                   rcSrc.Dyp(), SRCPAINT);\n        ReleasePpo(&pgpt);\n\n        if (pvNil == (pgpt = GPT::PgptNewOffscreen(&rcSrc, 8)))\n        {\n            Warn(\"Drawing MBMP failed\");\n            return;\n        }\n        RCS rcs = rcSrc;\n        FillRect(pgpt->_hdc, &rcs, (HBRUSH)GetStockObject(WHITE_BRUSH));\n\n        Flush();\n        pmbmp->Draw(pgpt->_prgbPixels, pgpt->_cbRow, rcSrc.Dyp(), -ptSrc.xp, -ptSrc.yp, &rcSrc);\n\n        StretchBlt(_hdc, rcDst.xpLeft, rcDst.ypTop, rcDst.Dxp(), rcDst.Dyp(), pgpt->_hdc, 0, 0, rcSrc.Dxp(),\n                   rcSrc.Dyp(), SRCAND);\n        ReleasePpo(&pgpt);\n    }\n}\n\n/***************************************************************************\n    Draw a dib using DrawDibDraw.\n***************************************************************************/\nvoid GPT::DrawDib(HDRAWDIB hdd, BITMAPINFOHEADER *pbi, RCS *prcs, GDD *pgdd)\n{\n    AssertThis(0);\n    AssertVarMem(pbi);\n    AssertVarMem(prcs);\n    AssertVarMem(pgdd);\n\n    SetTextColor(_hdc, kscrWhite);\n    SetBkColor(_hdc, kscrBlack);\n\n    _SetClip(pgdd->prcsClip);\n    DrawDibDraw(hdd, _hdc, prcs->left, prcs->top, prcs->right - prcs->left, prcs->bottom - prcs->top, pbi, pvNil, 0, 0,\n                -1, -1, DDF_BACKGROUNDPAL);\n    _Flush();\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Test the validity of the port.\n***************************************************************************/\nvoid GPT::AssertValid(ulong grf)\n{\n    GPT_PAR::AssertValid(0);\n    HBRUSH hbr;\n    HFONT hfnt;\n\n    AssertIn(_cactRef, 1, kcbMax);\n    AssertIn(_cactDraw, 0, _cactFlush + 1);\n    if (hNil != _hwnd)\n        AssertVar(IsWindow(_hwnd), \"Invalid window handle\", &_hwnd);\n    if (hNil == _hdc)\n    {\n        Assert(_fMetaFile, \"No DC\");\n        return;\n    }\n\n    if (hNil != _hbr)\n    {\n        hbr = (HBRUSH)SelectObject(_hdc, _hbr);\n        if (hbr != hNil)\n            AssertVar(hbr == _hbr, \"internal brush mismatch\", &hbr);\n    }\n    if (hNil != _hfnt)\n    {\n        hfnt = (HFONT)SelectObject(_hdc, _hfnt);\n        if (hfnt != hNil)\n            AssertVar(hfnt == _hfnt, \"Internal logical font mismatch\", &hfnt);\n    }\n}\n\n/***************************************************************************\n    Static method to mark static GPT memory.\n***************************************************************************/\nvoid GPT::MarkStaticMem(void)\n{\n    MarkPv(_prgclr);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Enumerate the system fonts and build the font list.\n***************************************************************************/\nbool NTL::FInit(void)\n{\n    Assert(hNil != vwig.hdcApp, \"No DC\");\n\n    LOGFONT lgf;\n    HFONT hfnt;\n\n    if (pvNil == (_pgst = GST::PgstNew(offset(LOGFONT, lfFaceName))))\n        goto LFail;\n\n    // Make sure to explicitly add the system font since EnumFonts() won't.\n    // System font always has font number 0.\n    AssertDo(hNil != (hfnt = (HFONT)GetStockObject(SYSTEM_FONT)), \"Can't get system font\");\n    AssertDo(GetObject(hfnt, size(lgf), &lgf) != 0, \"Can't get logical font\");\n    if (!_pgst->FAddRgch(lgf.lfFaceName, CchSz(lgf.lfFaceName), &lgf) ||\n        !EnumFonts(vwig.hdcApp, pvNil, _FEnumFont, (LPARAM)_pgst))\n    {\n    LFail:\n        PushErc(ercGfxNoFontList);\n        return fFalse;\n    }\n    AssertDo(_pgst->FFindRgch(lgf.lfFaceName, CchSz(lgf.lfFaceName), &_onnSystem, fgstUserSorted),\n             \"system font not found!\");\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    -- Font enumuration callback.\n    -- If font is TrueType, it is added to the GST.\n***************************************************************************/\nint CALLBACK _FEnumFont(LOGFONT *plgf, TEXTMETRIC *ptxm, ulong luType, LPARAM luParam)\n{\n    long istz;\n    PGST pgst = (PGST)luParam;\n    AssertPo(pgst, 0);\n\n    if (luType != TRUETYPE_FONTTYPE)\n        return fTrue;\n\n    AssertDo(!pgst->FFindRgch(plgf->lfFaceName, CchSz(plgf->lfFaceName), &istz, fgstUserSorted),\n             \"font already in list!\");\n    return pgst->FInsertRgch(istz, plgf->lfFaceName, CchSz(plgf->lfFaceName), plgf);\n}\n\n/***************************************************************************\n    -- Create a logical GDI font from the given font attributes.\n***************************************************************************/\nHFONT NTL::HfntCreate(DSF *pdsf)\n{\n    AssertThis(0);\n    AssertPo(pdsf, 0);\n    LOGFONT lgf;\n    long cch;\n\n    _pgst->GetExtra(pdsf->onn, &lgf);\n    _pgst->GetRgch(pdsf->onn, lgf.lfFaceName, size(lgf.lfFaceName) - 1, &cch);\n    lgf.lfFaceName[cch] = 0;\n    lgf.lfItalic = FPure(pdsf->grfont & fontItalic);\n    lgf.lfWeight = (pdsf->grfont & fontBold) ? FW_BOLD : FW_NORMAL;\n    lgf.lfUnderline = FPure(pdsf->grfont & fontUnderline);\n    lgf.lfHeight = -pdsf->dyp;\n    lgf.lfWidth = 0;\n    return CreateFontIndirect(&lgf);\n}\n\n/***************************************************************************\n    Return true iff the font is a fixed pitch font.\n***************************************************************************/\nbool NTL::FFixedPitch(long onn)\n{\n    AssertThis(0);\n    Assert(FValidOnn(onn), \"bad onn\");\n    LOGFONT lgf;\n\n    _pgst->GetExtra(onn, &lgf);\n    return (lgf.lfPitchAndFamily & 0x03) == FIXED_PITCH;\n}\n\n/***************************************************************************\n    Create a new rectangular region.  If prc is nil, the region will be\n    empty.\n***************************************************************************/\nbool FCreateRgn(HRGN *phrgn, RC *prc)\n{\n    AssertVarMem(phrgn);\n    AssertNilOrVarMem(prc);\n    RCS rcs;\n\n    if (pvNil == prc)\n        ClearPb(&rcs, size(rcs));\n    else\n        rcs = *prc;\n\n    *phrgn = CreateRectRgnIndirect(&rcs);\n    return *phrgn != hNil;\n}\n\n/***************************************************************************\n    Free the region and set *phrgn to nil.\n***************************************************************************/\nvoid FreePhrgn(HRGN *phrgn)\n{\n    AssertVarMem(phrgn);\n\n    if (*phrgn != hNil)\n    {\n        DeleteObject(*phrgn);\n        *phrgn = hNil;\n    }\n}\n\n/***************************************************************************\n    Make the region rectangular.  If prc is nil, the region will be empty.\n    If *phrgn is hNil, creates the region.  *phrgn may change even if\n    *phrgn is not nil.\n***************************************************************************/\nbool FSetRectRgn(HRGN *phrgn, RC *prc)\n{\n    AssertVarMem(phrgn);\n    AssertNilOrVarMem(prc);\n\n    if (hNil == *phrgn)\n        return FCreateRgn(phrgn, prc);\n    if (pvNil == prc)\n        return SetRectRgn(*phrgn, 0, 0, 0, 0);\n    return SetRectRgn(*phrgn, prc->xpLeft, prc->ypTop, prc->xpRight, prc->ypBottom);\n}\n\n/***************************************************************************\n    Put the union of hrgnSrc1 and hrgnSrc2 into hrgnDst.  The parameters\n    need not be distinct.  Returns success/failure.\n***************************************************************************/\nbool FUnionRgn(HRGN hrgnDst, HRGN hrgnSrc1, HRGN hrgnSrc2)\n{\n    Assert(hNil != hrgnDst, \"null dst\");\n    Assert(hNil != hrgnSrc1, \"null src1\");\n    Assert(hNil != hrgnSrc2, \"null src2\");\n    return ERROR != CombineRgn(hrgnDst, hrgnSrc1, hrgnSrc2, RGN_OR);\n}\n\n/***************************************************************************\n    Put the intersection of hrgnSrc1 and hrgnSrc2 into hrgnDst.  The parameters\n    need not be distinct.  Returns success/failure.\n***************************************************************************/\nbool FIntersectRgn(HRGN hrgnDst, HRGN hrgnSrc1, HRGN hrgnSrc2, bool *pfEmpty)\n{\n    Assert(hNil != hrgnDst, \"null dst\");\n    Assert(hNil != hrgnSrc1, \"null src1\");\n    Assert(hNil != hrgnSrc2, \"null src2\");\n    long lw;\n\n    lw = CombineRgn(hrgnDst, hrgnSrc1, hrgnSrc2, RGN_AND);\n    if (ERROR == lw)\n        return fFalse;\n    if (pvNil != pfEmpty)\n        *pfEmpty = (lw == NULLREGION);\n    return fTrue;\n}\n\n/***************************************************************************\n    Put hrgnSrc - hrgnSrcSub into hrgnDst.  The parameters need not be\n    distinct.  Returns success/failure.\n***************************************************************************/\nbool FDiffRgn(HRGN hrgnDst, HRGN hrgnSrc, HRGN hrgnSrcSub, bool *pfEmpty)\n{\n    Assert(hNil != hrgnDst, \"null dst\");\n    Assert(hNil != hrgnSrc, \"null src\");\n    Assert(hNil != hrgnSrcSub, \"null srcSub\");\n    long lw;\n\n    lw = CombineRgn(hrgnDst, hrgnSrc, hrgnSrcSub, RGN_DIFF);\n    if (ERROR == lw)\n        return fFalse;\n    if (pvNil != pfEmpty)\n        *pfEmpty = (lw == NULLREGION);\n    return fTrue;\n}\n\n/***************************************************************************\n    Determine if the region is rectangular and put the bounding rectangle\n    in *prc (if not nil).\n***************************************************************************/\nbool FRectRgn(HRGN hrgn, RC *prc)\n{\n    Assert(hNil != hrgn, \"null rgn\");\n    RCS rcs;\n    bool fRet;\n\n    fRet = GetRgnBox(hrgn, &rcs) != COMPLEXREGION;\n    if (pvNil != prc)\n        *prc = rcs;\n    return fRet;\n}\n\n/***************************************************************************\n    Return true iff the region is empty.\n***************************************************************************/\nbool FEmptyRgn(HRGN hrgn, RC *prc)\n{\n    Assert(hNil != hrgn, \"null rgn\");\n    RCS rcs;\n    bool fRet;\n\n    fRet = GetRgnBox(hrgn, &rcs) == NULLREGION;\n    if (pvNil != prc)\n        *prc = rcs;\n    return fRet;\n}\n\n/***************************************************************************\n    Return true iff the two regions are equal.\n***************************************************************************/\nbool FEqualRgn(HRGN hrgn1, HRGN hrgn2)\n{\n    Assert(hNil != hrgn1, \"null rgn1\");\n    Assert(hNil != hrgn2, \"null rgn2\");\n    return EqualRgn(hrgn1, hrgn2);\n}\n"
  },
  {
    "path": "kauai/src/gob.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Graphics object code.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nBEGIN_CMD_MAP(GOB, CMH)\nON_CID_GEN(cidKey, &GOB::FCmdKeyCore, pvNil)\nON_CID_GEN(cidSelIdle, &GOB::FCmdSelIdle, pvNil)\nON_CID_ME(cidActivateSel, &GOB::FCmdActivateSel, pvNil)\nON_CID_ME(cidBadKey, &GOB::FCmdBadKeyCore, pvNil)\nON_CID_ME(cidCloseWnd, &GOB::FCmdCloseWnd, pvNil)\nON_CID_ME(cidMouseDown, &GOB::FCmdTrackMouseCore, pvNil)\nON_CID_ME(cidTrackMouse, &GOB::FCmdTrackMouseCore, pvNil)\nON_CID_ME(cidMouseMove, &GOB::FCmdMouseMoveCore, pvNil)\nEND_CMD_MAP_NIL()\n\nRTCLASS(GOB)\nRTCLASS(GTE)\n\nlong GOB::_ginDefGob = kginSysInval;\nlong GOB::_gridLast;\n\n/***************************************************************************\n    Fill in the elements of the GCB.\n***************************************************************************/\nvoid GCB::Set(long hid, PGOB pgob, ulong grfgob, long gin, RC *prcAbs, RC *prcRel)\n{\n    Assert(hidNil != hid, \"bad hid\");\n    AssertNilOrPo(pgob, 0);\n    _hid = hid;\n    _pgob = pgob;\n    _grfgob = grfgob;\n    _gin = gin;\n    if (pvNil == prcAbs)\n        _rcAbs.Zero();\n    else\n        _rcAbs = *prcAbs;\n    if (pvNil == prcRel)\n        _rcRel.Zero();\n    else\n        _rcRel = *prcRel;\n}\n\n/***************************************************************************\n    Static method to shut down all GOBs.\n***************************************************************************/\nvoid GOB::ShutDown(void)\n{\n    while (pvNil != _pgobScreen)\n    {\n        _pgobScreen->FAttachHwnd(hNil);\n\n        // freeing the _pgobScreen also updates _pgobScreen to its sibling.\n        // _pgobScreen is really the root of the forest.\n        _pgobScreen->Release();\n    }\n}\n\n/***************************************************************************\n    Constructor for a graphics object.  pgob is either the parent of the new\n    gob or a sibling, according to (grfgob & fgobSibling).\n***************************************************************************/\nGOB::GOB(PGCB pgcb) : CMH(pgcb->_hid)\n{\n    _Init(pgcb);\n}\n\n/***************************************************************************\n    Initialize the gob.\n***************************************************************************/\nvoid GOB::_Init(PGCB pgcb)\n{\n    AssertVarMem(pgcb);\n    AssertNilOrPo(pgcb->_pgob, 0);\n\n    _grid = ++_gridLast;\n    _ginDefault = pgcb->_gin;\n    _fCreating = fTrue;\n\n    if (pvNil == pgcb->_pgob)\n    {\n        Assert(pvNil == _pgobScreen, \"screen gob already created\");\n        _pgobScreen = this;\n    }\n    else if (pgcb->_grfgob & fgobSibling)\n    {\n        AssertPo(pgcb->_pgob, 0);\n        _pgobPar = pgcb->_pgob->_pgobPar;\n        _pgobSib = pgcb->_pgob->_pgobSib;\n        pgcb->_pgob->_pgobSib = this;\n    }\n    else\n    {\n        AssertPo(pgcb->_pgob, 0);\n        _pgobPar = pgcb->_pgob;\n        _pgobSib = pgcb->_pgob->_pgobChd;\n        pgcb->_pgob->_pgobChd = this;\n    }\n\n    if (pvNil != _pgobPar)\n        _pgpt = _pgobPar->_pgpt;\n    SetPos(&pgcb->_rcAbs, &pgcb->_rcRel);\n    AssertThis(0);\n\n    _fCreating = fFalse;\n}\n\n/***************************************************************************\n    Constructor for GOB.\n***************************************************************************/\nGOB::GOB(long hid) : CMH(hid)\n{\n    GCB gcb(hid, GOB::PgobScreen());\n    _Init(&gcb);\n}\n\n/***************************************************************************\n    First tells the app that the gob is dying; then calls Release on all direct\n    child gobs of this GOB; then calls delete on itself.\n***************************************************************************/\nvoid GOB::Release(void)\n{\n    AssertThis(0);\n    PGOB pgob;\n\n    if (--_cactRef > 0)\n        return;\n\n    // Mark this gob as being freed (may already be marked)\n    _fFreeing = fTrue;\n\n    // invalidate\n    if (pvNil == _pgobPar || !_pgobPar->_fFreeing)\n        InvalRc(pvNil);\n\n    while (pvNil != (pgob = _pgobChd))\n        pgob->Release();\n\n    delete this;\n}\n\n/***************************************************************************\n    Destructor for the graphics object class.\n***************************************************************************/\nGOB::~GOB(void)\n{\n    AssertThis(0);\n    PGOB *ppgob;\n\n    // remove it from the sibling list\n    Assert(pvNil == _pgobChd, \"gob still has children\");\n    for (ppgob = pvNil != _pgobPar ? &_pgobPar->_pgobChd : &_pgobScreen; *ppgob != this && pvNil != *ppgob;\n         ppgob = &(*ppgob)->_pgobSib)\n    {\n    }\n    if (*ppgob == this)\n        *ppgob = _pgobSib;\n    else\n        Bug(\"corrupt gob tree\");\n\n    // nuke its port and hwnd\n    if (pvNil != _pgpt && (pvNil == _pgobPar || _pgpt != _pgobPar->_pgpt))\n        ReleasePpo(&_pgpt);\n    if (_hwnd != hNil)\n        _DestroyHwnd(_hwnd);\n    ReleasePpo(&_pglrtvm);\n    ReleasePpo(&_pcurs);\n}\n\n/***************************************************************************\n    Called by OS specific code when an hwnd is activated or deactivated.\n    We inform the entire gob subtree for the hwnd so individual elements\n    can do whatever is necessary.  This is a static member function.\n***************************************************************************/\nvoid GOB::ActivateHwnd(HWND hwnd, bool fActive)\n{\n    PGOB pgob;\n\n    if (pvNil == (pgob = PgobFromHwnd(hwnd)))\n        return;\n\n    // if it's becoming active, bring it to the front in our gob tree.\n    if (fActive)\n        pgob->SendBehind(pvNil);\n\n    GTE gte;\n    ulong grfgte;\n\n    gte.Init(pgob, fgteBackToFront);\n    while (gte.FNextGob(&pgob, &grfgte, fgteNil))\n    {\n        if (grfgte & fgtePre)\n            pgob->_ActivateHwnd(fActive);\n    }\n}\n\n/***************************************************************************\n    Make this the first child of its parent.  Doesn't invalidate anything.\n***************************************************************************/\nvoid GOB::BringToFront(void)\n{\n    AssertThis(0);\n    SendBehind(pvNil);\n}\n\n/***************************************************************************\n    Put this GOB behind the given sibling.  If pgobBehind is nil, does\n    the equivalent of a BringToFront.  Asserts that pgobBehind and this\n    gob have the same parent.  Does no invalidation.\n***************************************************************************/\nvoid GOB::SendBehind(PGOB pgobBehind)\n{\n    AssertThis(0);\n    AssertNilOrPo(pgobBehind, 0);\n    PGOB pgob;\n\n    if (pvNil != pgobBehind && pgobBehind->_pgobPar != _pgobPar)\n    {\n        Bug(\"don't have the same parent\");\n        return;\n    }\n\n    pgob = PgobPrevSib();\n    if (pgob == pgobBehind)\n        return; // nothing to do\n\n    // take this gob out of the sibling list\n    if (pvNil == pgob)\n    {\n        Assert(_pgobPar->_pgobChd == this, \"corrupt GOB tree\");\n        _pgobPar->_pgobChd = _pgobSib;\n    }\n    else\n    {\n        Assert(pgob->_pgobSib == this, \"corrupt GOB tree\");\n        pgob->_pgobSib = _pgobSib;\n    }\n\n    // now insert it after pgobBehind\n    if (pvNil == pgobBehind)\n    {\n        _pgobSib = _pgobPar->_pgobChd;\n        _pgobPar->_pgobChd = this;\n    }\n    else\n    {\n        _pgobSib = pgobBehind->_pgobSib;\n        pgobBehind->_pgobSib = this;\n        AssertPo(pgobBehind, 0);\n    }\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Invalidate the given rc in this gob.  If gin is ginNil, nothing is done.\n    If gin is kginRedraw, the area is redraw.  If gin is kginMark, the area\n    is marked dirty at the framework level.  If gin is kginSysInval, the\n    area is marked dirty at the operating system level.  In all cases,\n    passing pvNil for prc affects the whole gob.\n***************************************************************************/\nvoid GOB::InvalRc(RC *prc, long gin)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prc);\n    PT dpt;\n    RC rc;\n    PGOB pgob;\n    RCS rcs;\n\n    if (kginDefault == gin)\n    {\n        gin = _ginDefault;\n        if (kginDefault == gin)\n            gin = _ginDefGob;\n    }\n\n    if (ginNil == gin)\n        return;\n\n    GetRcVis(&rc, cooLocal);\n    if (pvNil != prc)\n        rc.FIntersect(prc);\n    if (rc.FEmpty())\n        return;\n\n    for (pgob = this; pvNil != pgob && pgob->_hwnd == hNil; pgob = pgob->_pgobPar)\n    {\n        rc.Offset(pgob->_rcCur.xpLeft, pgob->_rcCur.ypTop);\n    }\n    if (pvNil == pgob)\n        return;\n\n    switch (gin)\n    {\n    default:\n        Bug(\"bad gin value\");\n        break;\n\n    case kginDraw:\n        // do this so we do whatever the app does during a normal draw, such\n        // as drawing offscreen....\n        vpappb->UpdateHwnd(pgob->_hwnd, &rc);\n        break;\n\n    case kginMark:\n        vpappb->MarkRc(&rc, pgob);\n        break;\n\n    case kginSysInval:\n        rcs = RCS(rc);\n        InvalHwndRcs(pgob->_hwnd, &rcs);\n        break;\n    }\n}\n\n/***************************************************************************\n    Validate the given rc in this gob.  If gin is ginNil, nothing is done.\n    If gin is kginRedraw, the area is validated at both the framework level\n    and the system level.  If gin is kginMark or kginSysInval, the area is\n    validated only at the given level.  In any case, passing pvNil for prc\n    affects the whole gob.\n***************************************************************************/\nvoid GOB::ValidRc(RC *prc, long gin)\n{\n    AssertThis(0);\n    RC rc;\n    PT dpt;\n    PGOB pgob;\n\n    if (kginDefault == gin)\n    {\n        gin = _ginDefault;\n        if (kginDefault == gin)\n            gin = _ginDefGob;\n    }\n\n    if (ginNil == gin)\n        return;\n\n    GetRcVis(&rc, cooLocal);\n    if (pvNil != prc)\n        rc.FIntersect(prc);\n    if (rc.FEmpty())\n        return;\n\n    for (pgob = this; pvNil != pgob && pgob->_hwnd == hNil; pgob = pgob->_pgobPar)\n    {\n        rc.Offset(pgob->_rcCur.xpLeft, pgob->_rcCur.ypTop);\n    }\n    if (pvNil == pgob)\n        return;\n\n    if (gin != kginSysInval)\n    {\n        // do a framework level validation\n        vpappb->UnmarkRc(&rc, pgob);\n    }\n\n    if (gin != kginMark)\n    {\n        // do a system level validation\n        RCS rcs;\n\n        rcs = RCS(rc);\n        ValidHwndRcs(pgob->_hwnd, &rcs);\n    }\n}\n\n/***************************************************************************\n    Get the dirty portion of this gob.  Return true iff the dirty rectangle\n    is non-empty.  If gin is kginDraw, gets the union of the marked area\n    and system-invalidated area.\n***************************************************************************/\nbool GOB::FGetRcInval(RC *prc, long gin)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    RC rc;\n    PGOB pgob;\n    PT dpt(0, 0);\n\n    prc->Zero();\n    if (kginDefault == gin)\n    {\n        gin = _ginDefault;\n        if (kginDefault == gin)\n            gin = _ginDefGob;\n    }\n\n    GetRcVis(&rc, cooLocal);\n    if (rc.FEmpty() || ginNil == gin)\n        return fFalse;\n\n    for (pgob = this; pvNil != pgob && pgob->_hwnd == hNil; pgob = pgob->_pgobPar)\n    {\n        dpt.Offset(pgob->_rcCur.xpLeft, pgob->_rcCur.ypTop);\n    }\n    rc.Offset(dpt.xp, dpt.yp);\n    if (pvNil == pgob)\n        return fFalse;\n\n    if (kginSysInval != gin)\n    {\n        // get any marked area\n        vpappb->FGetMarkedRc(pgob->_hwnd, prc);\n    }\n\n    if (kginMark != gin)\n    {\n        // get any system invalidated area\n        RCS rcs;\n        RC rcT;\n\n#ifdef WIN\n        GetUpdateRect(pgob->_hwnd, &rcs, fFalse);\n#endif // WIN\n#ifdef MAC\n        PPRT pprt;\n\n        rcs = (*pgob->_hwnd->updateRgn)->rgnBBox;\n        GetPort(&pprt);\n        SetPort(&pgob->_hwnd->port);\n        GlobalToLocal((PTS *)&rcs);\n        GlobalToLocal((PTS *)&rcs + 1);\n        SetPort(pprt);\n#endif // MAC\n        rcT = RC(rcs);\n        if (rcT.FIntersect(&rc))\n            prc->Union(&rcT);\n    }\n    prc->Offset(-dpt.xp, -dpt.yp);\n\n    return !prc->FEmpty();\n}\n\n/***************************************************************************\n    Scrolls the given rectangle in the GOB.  Translates any invalid portion.\n    Handles this being covered by any GOBs or system windows.  If prc is\n    nil, the entire content rectangle is used.\n***************************************************************************/\nvoid GOB::Scroll(RC *prc, long dxp, long dyp, long gin, RC *prcBad1, RC *prcBad2)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prc);\n    AssertNilOrVarMem(prcBad1);\n    AssertNilOrVarMem(prcBad2);\n    RC rc, rcBad1, rcBad2, rcInval, rcT;\n    PT dpt(0, 0);\n    PGOB pgob, pgobT;\n    GTE gte;\n    ulong grfgte, grfgteIn;\n    bool fFound;\n\n    if (kginDefault == gin)\n    {\n        gin = _ginDefault;\n        if (kginDefault == gin)\n            gin = _ginDefGob;\n    }\n\n    if (pvNil != prcBad1)\n        prcBad1->Zero();\n    if (pvNil != prcBad2)\n        prcBad2->Zero();\n\n    if (dxp == 0 && dyp == 0)\n        return;\n\n    GetRcVis(&rc, cooLocal);\n    if (pvNil != prc && !rc.FIntersect(prc))\n        return;\n\n    for (pgob = this; pvNil != pgob && pgob->_hwnd == hNil; pgob = pgob->_pgobPar)\n    {\n        dpt.Offset(pgob->_rcCur.xpLeft, pgob->_rcCur.ypTop);\n    }\n    rc.Offset(dpt.xp, dpt.yp);\n    if (pvNil == pgob)\n        return;\n\n    // check for GOBs on top of this one.\n    gte.Init(pgob, fgteBackToFront);\n    fFound = fFalse;\n    grfgteIn = fgteNil;\n    while (gte.FNextGob(&pgobT, &grfgte, grfgteIn))\n    {\n        if (!(grfgte & fgtePre))\n            continue;\n\n        if (!fFound)\n        {\n            fFound = pgobT == this;\n            continue;\n        }\n        pgobT->GetRc(&rcT, cooHwnd);\n        if (rcT.FIntersect(&rc))\n        {\n            // there is a GOB on top of this one, just invalidate the\n            // rectangle to be scrolled\n            pgob->ValidRc(&rc, kginDraw);\n            pgob->InvalRc(&rc, gin);\n            if (pvNil != prcBad1)\n                prcBad1->OffsetCopy(&rc, -dpt.xp, -dpt.yp);\n            return;\n        }\n        grfgteIn = fgteSkipToSib;\n    }\n\n    // translate any marked area\n    if (FGetRcInval(&rcT, kginMark))\n    {\n        // something is marked\n        rcT.Offset(dpt.xp, dpt.yp);\n        if (rcT.FIntersect(&rc))\n        {\n            pgob->ValidRc(&rcT, kginMark);\n            rcT.Offset(dxp, dyp);\n            if (rcT.FIntersect(&rc))\n                pgob->InvalRc(&rcT, kginMark);\n        }\n    }\n\n#ifdef WIN\n    // SW_INVALIDATE invalidates any uncovered stuff and translates any\n    // previously invalid stuff\n    RCS rcs = RCS(rc);\n    ScrollWindowEx(pgob->_hwnd, dxp, dyp, pvNil, &rcs, hNil, pvNil, SW_INVALIDATE);\n\n    // compute the bad rectangles\n    GNV::GetBadRcForScroll(&rc, dxp, dyp, &rcBad1, &rcBad2);\n\n    if (pvNil != prcBad1)\n        prcBad1->OffsetCopy(&rcBad1, -dpt.xp, -dpt.yp);\n    if (pvNil != prcBad2)\n        prcBad2->OffsetCopy(&rcBad2, -dpt.xp, -dpt.yp);\n\n    switch (gin)\n    {\n    default:\n        Bug(\"bad gin\");\n        break;\n    case kginDraw:\n        UpdateWindow(pgob->_hwnd);\n        break;\n    case kginSysInval:\n        break;\n    case kginMark:\n        vpappb->MarkRc(&rcBad1, pgob);\n        vpappb->MarkRc(&rcBad2, pgob);\n        // fall through\n    case ginNil:\n        if (!rcBad1.FEmpty())\n        {\n            rcs = RCS(rcBad1);\n            ValidateRect(pgob->_hwnd, &rcs);\n        }\n        if (!rcBad2.FEmpty())\n        {\n            rcs = RCS(rcBad2);\n            ValidateRect(pgob->_hwnd, &rcs);\n        }\n        break;\n    }\n#endif // WIN\n#ifdef MAC\n    HRGN hrgn;\n\n    // Make sure the vis region intersected with the rectangle to scroll is\n    // a rectangle\n    if (!FCreateRgn(&hrgn, &rc) || !FIntersectRgn(hrgn, pgob->_hwnd->port.visRgn, hrgn) || !FRectRgn(hrgn, &rc))\n    {\n        // there is something on top of this one, just invalidate the\n        // rectangle to be scrolled\n        FreePhrgn(&hrgn);\n        pgob->ValidRc(&rc, kginDraw);\n        pgob->InvalRc(&rc, gin);\n        if (pvNil != prcBad1)\n            prcBad1->OffsetCopy(&rc, -dpt.xp, -dpt.yp);\n        return;\n    }\n    FreePhrgn(&hrgn);\n\n    GNV gnv(pgob);\n    gnv.ScrollRc(&rc, dxp, dyp, &rcBad1, &rcBad2);\n\n    // translate any invalid area\n    if (FGetRcInval(&rcT, kginSysInval))\n    {\n        // something is invalid\n        rcT.Offset(dpt.xp, dpt.yp);\n        if (rcT.FIntersect(&rc))\n        {\n            pgob->ValidRc(&rcT, kginSysInval);\n            rcT.Offset(dxp, dyp);\n            if (rcT.FIntersect(&rc))\n                pgob->InvalRc(&rcT, kginSysInval);\n        }\n    }\n\n    if (pvNil != prcBad1)\n        prcBad1->OffsetCopy(&rcBad1, -dpt.xp, -dpt.yp);\n    if (pvNil != prcBad2)\n        prcBad2->OffsetCopy(&rcBad2, -dpt.xp, -dpt.yp);\n\n    switch (gin)\n    {\n    default:\n        Bug(\"bad gin\");\n        // fall through\n    case ginNil:\n        break;\n    case kginDraw:\n        vpappb->MarkRc(&rcBad1, pgob);\n        vpappb->MarkRc(&rcBad2, pgob);\n        vpappb->UpdateMarked();\n        break;\n    case kginSysInval:\n        pgob->InvalRc(&rcBad1);\n        pgob->InvalRc(&rcBad2);\n        break;\n    case kginMark:\n        vpappb->MarkRc(&rcBad1, pgob);\n        vpappb->MarkRc(&rcBad2, pgob);\n        break;\n    }\n#endif // MAC\n}\n\n/***************************************************************************\n    Draw the gob and its children into the given port.  If the pgpt is nil,\n    use the GOB's UI (natural) port.  If the prc is pvNil, use the GOB's\n    rectangle based at (0, 0).  If prcClip is not nil, only GOB's that\n    intersect prcClip will be drawn.  prcClip is in the GOB's local\n    coordinates.\n***************************************************************************/\nvoid GOB::DrawTree(PGPT pgpt, RC *prc, RC *prcClip, ulong grfgob)\n{\n    AssertThis(0);\n    AssertNilOrPo(pgpt, 0);\n    AssertNilOrVarMem(prc);\n    AssertNilOrVarMem(prcClip);\n    RC rcSrc, rcClip, rcSrcGob, rcClipGob, rcVis, rc;\n    // to translate from this->local to pgob->local coordinates add dpt\n    PT dpt;\n\n    if (pgpt == pvNil && (pgpt = _pgpt) == pvNil)\n    {\n        Bug(\"no port to draw to\");\n        return;\n    }\n    if (pvNil != prc && prc->FEmpty())\n        return;\n\n    dpt = _rcCur.PtTopLeft();\n\n    // get the source and clip rectangles in local (this) coordinates\n    rcSrc = _rcCur;\n    if (rcSrc.FEmpty())\n        return;\n    rcSrc.OffsetToOrigin();\n    if (pvNil == prcClip)\n        rcClip = rcSrc;\n    else if (!rcClip.FIntersect(prcClip, &rcSrc))\n        return;\n\n    GNV gnv(pgpt);\n    GTE gte;\n    ulong grfgte, grfgteIn;\n    PGOB pgob;\n\n    gte.Init(this, fgteBackToFront);\n    grfgteIn = fgteNil;\n    while (gte.FNextGob(&pgob, &grfgte, grfgteIn))\n    {\n        if (pgob->_pgpt != _pgpt || pgob->_rcCur.FEmpty())\n            goto LNextSib;\n\n        grfgteIn = fgteNil;\n        if (grfgte & fgtePre)\n        {\n            if (grfgob & (fgobAutoVis | fgobUseVis))\n            {\n                pgob->GetRcVis(&rcVis, cooLocal);\n                if (rcVis.FEmpty())\n                    goto LNextSib;\n            }\n\n            // get the source and clip rectangles in local (pgob) coordinates\n            rcSrcGob = pgob->_rcCur;\n            dpt.xp -= rcSrcGob.xpLeft;\n            dpt.yp -= rcSrcGob.ypTop;\n            rcSrcGob.OffsetToOrigin();\n            rcClipGob = rcClip + dpt;\n            if (!rcClipGob.FIntersect(&rcSrcGob))\n                goto LOffsetNextSib;\n\n            // set the source rectangle\n            gnv.SetRcSrc(&rcSrcGob);\n\n            // set the dest rc\n            rc = rcSrcGob - dpt;\n            if (pvNil != prc)\n                rc.Map(&rcSrc, prc);\n            gnv.SetRcDst(&rc);\n\n            // set the vis rectangle\n            if (grfgob & (fgobAutoVis | fgobUseVis))\n            {\n                if (!rcVis.FIntersect(&rcClipGob))\n                {\n                LOffsetNextSib:\n                    dpt.xp += pgob->_rcCur.xpLeft;\n                    dpt.yp += pgob->_rcCur.ypTop;\n                LNextSib:\n                    grfgteIn = fgteSkipToSib;\n                    continue;\n                }\n\n                if (!(grfgob & fgobUseVis) && rcSrcGob == rcVis)\n                    gnv.SetRcVis(pvNil);\n                else\n                    gnv.SetRcVis(&rcVis);\n                rcClipGob = rcVis;\n            }\n\n            // draw the gob\n            pgob->Draw(&gnv, &rcClipGob);\n        }\n        if (grfgte & fgtePost)\n        {\n            dpt.xp += pgob->_rcCur.xpLeft;\n            dpt.yp += pgob->_rcCur.ypTop;\n        }\n    }\n}\n\n/***************************************************************************\n    Draw the gob and its children into the given port.  If the pgpt is nil,\n    use the GOB's UI (natural) port.  If the prc is pvNil, use the GOB's\n    rectangle based at (0, 0).  Only GOB's that intersect pregn will be\n    drawn.  pregn is in the GOB's local coordinates.\n***************************************************************************/\nvoid GOB::DrawTreeRgn(PGPT pgpt, RC *prc, REGN *pregn, ulong grfgob)\n{\n    AssertThis(0);\n    AssertNilOrPo(pgpt, 0);\n    AssertNilOrVarMem(prc);\n    AssertPo(pregn, 0);\n    RC rcSrc, rcSrcGob, rcClipGob, rcVis, rc;\n    // to translate from this->local to pgob->local coordinates add dpt\n    PT dpt;\n\n    if (pgpt == pvNil && (pgpt = _pgpt) == pvNil)\n    {\n        Bug(\"no port to draw to\");\n        return;\n    }\n    if (pvNil != prc && prc->FEmpty())\n        return;\n    if (pregn->FEmpty())\n        return;\n\n    dpt = _rcCur.PtTopLeft();\n\n    // get the source rectangle and clip region in local (this) coordinates\n    rcSrc = _rcCur;\n    rcSrc.OffsetToOrigin();\n    if (rcSrc.FEmpty())\n        return;\n\n    GNV gnv(pgpt);\n    GTE gte;\n    ulong grfgte, grfgteIn;\n    PGOB pgob;\n    PREGN pregnClip;\n    PREGN pregnClipGob = pvNil;\n\n    if (pvNil == (pregnClip = REGN::PregnNew(&rcSrc)) || pvNil == (pregnClipGob = REGN::PregnNew()) ||\n        !pregnClip->FIntersect(pregn))\n    {\n        goto LFail;\n    }\n    if (pregnClip->FEmpty())\n        goto LDone;\n\n    gte.Init(this, fgteBackToFront);\n    grfgteIn = fgteNil;\n    while (gte.FNextGob(&pgob, &grfgte, grfgteIn))\n    {\n        if (pgob->_pgpt != _pgpt || pgob->_rcCur.FEmpty())\n            goto LNextSib;\n\n        grfgteIn = fgteNil;\n        if (grfgte & fgtePre)\n        {\n            if (grfgob & (fgobAutoVis | fgobUseVis))\n            {\n                pgob->GetRcVis(&rcVis, cooLocal);\n                if (rcVis.FEmpty())\n                    goto LNextSib;\n            }\n\n            // get the source and clip rectangles in local (pgob) coordinates\n            rcSrcGob = pgob->_rcCur;\n            dpt.xp -= rcSrcGob.xpLeft;\n            dpt.yp -= rcSrcGob.ypTop;\n            rcSrcGob.OffsetToOrigin();\n\n            pregnClipGob->SetRc(&rcSrcGob);\n            pregnClipGob->Offset(-dpt.xp, -dpt.yp);\n            if (!pregnClipGob->FIntersect(pregnClip))\n                goto LFail;\n            if (pregnClipGob->FEmpty(&rcClipGob))\n                goto LOffsetNextSib;\n\n            rcClipGob.Offset(dpt.xp, dpt.yp);\n\n            // set the source rectangle\n            gnv.SetRcSrc(&rcSrcGob);\n\n            // set the dest rc\n            rc = rcSrcGob - dpt;\n            if (pvNil != prc)\n                rc.Map(&rcSrc, prc);\n            gnv.SetRcDst(&rc);\n\n            // set the vis rectangle\n            if (grfgob & (fgobAutoVis | fgobUseVis))\n            {\n                if (!rcVis.FIntersect(&rcClipGob))\n                {\n                LOffsetNextSib:\n                    dpt.xp += pgob->_rcCur.xpLeft;\n                    dpt.yp += pgob->_rcCur.ypTop;\n                LNextSib:\n                    grfgteIn = fgteSkipToSib;\n                    continue;\n                }\n\n                if (!(grfgob & fgobUseVis) && rcSrcGob == rcVis)\n                    gnv.SetRcVis(pvNil);\n                else\n                    gnv.SetRcVis(&rcVis);\n            }\n\n            // draw the gob\n            // NOTE: we use pregn and not pregnClip or pregnClipGob for speed.\n            // Using pregn, the cached hrgn stuff kicks in to only require\n            // one hrgn creation. If we use pregnClip we only have one hrgn\n            // creation here, but another one when the offscreen bitmap is\n            // copied to the screen. Using pregnClipGob would cause lots\n            // of hregn creations.\n            pgpt->ClipToRegn(&pregn);\n            pgob->Draw(&gnv, &rcClipGob);\n            pgpt->ClipToRegn(&pregn);\n        }\n        if (grfgte & fgtePost)\n        {\n            dpt.xp += pgob->_rcCur.xpLeft;\n            dpt.yp += pgob->_rcCur.ypTop;\n        }\n    }\n\nLDone:\n    ReleasePpo(&pregnClip);\n    ReleasePpo(&pregnClipGob);\n    return;\n\nLFail:\n    pregn->FEmpty(&rc);\n    DrawTree(pgpt, prc, &rc, grfgob);\n}\n\n/***************************************************************************\n    Draw the GOB into the given graphics environment.  On entry, the source\n    rectangle of the GNV is set to (0, 0, dxp, dyp), where dxp and dyp are\n    the width and height of the gob.  The gob is free to change the source\n    rectangle, but should not touch the destination rectangle.\n***************************************************************************/\nvoid GOB::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Make this gob fill up its parent's interior.\n***************************************************************************/\nvoid GOB::Maximize(void)\n{\n    AssertThis(0);\n    _rcAbs.Zero();\n    _rcRel.xpLeft = _rcRel.ypTop = krelZero;\n    _rcRel.xpRight = _rcRel.ypBottom = krelOne;\n    _SetRcCur();\n}\n\n/***************************************************************************\n    Set the gob's position.  Invalidates both the old and new position.\n***************************************************************************/\nvoid GOB::SetPos(RC *prcAbs, RC *prcRel)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prcAbs);\n    AssertNilOrVarMem(prcRel);\n    if (prcAbs == pvNil)\n        _rcAbs.Zero();\n    else\n        _rcAbs = *prcAbs;\n\n    if (prcRel == pvNil)\n        _rcRel.Zero();\n    else\n        _rcRel = *prcRel;\n\n    _SetRcCur();\n}\n\n/***************************************************************************\n    Get the gob's position.\n***************************************************************************/\nvoid GOB::GetPos(RC *prcAbs, RC *prcRel)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prcAbs);\n    AssertNilOrVarMem(prcRel);\n    if (pvNil != prcAbs)\n        *prcAbs = _rcAbs;\n    if (pvNil != prcRel)\n        *prcRel = _rcRel;\n}\n\n/***************************************************************************\n    Set the gob's rectangle from its hwnd.\n***************************************************************************/\nvoid GOB::SetRcFromHwnd(void)\n{\n    AssertThis(0);\n    Assert(_hwnd != hNil, \"no hwnd\");\n    _SetRcCur();\n}\n\n/***************************************************************************\n    Get the bounding rectangle of the gob in the given coordinates.\n***************************************************************************/\nvoid GOB::GetRc(RC *prc, long coo)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    PT dpt;\n\n    *prc = _rcCur;\n    _HwndGetDptFromCoo(&dpt, coo);\n    prc->Offset(dpt.xp - _rcCur.xpLeft, dpt.yp - _rcCur.ypTop);\n}\n\n/***************************************************************************\n    Get the visible rectangle of the gob in the given coordinates.\n***************************************************************************/\nvoid GOB::GetRcVis(RC *prc, long coo)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    PT dpt;\n\n    *prc = _rcVis;\n    _HwndGetDptFromCoo(&dpt, coo);\n    prc->Offset(dpt.xp - _rcCur.xpLeft, dpt.yp - _rcCur.ypTop);\n}\n\n/***************************************************************************\n    Get the rectangle for the gob in cooHwnd coordinates and return the\n    enclosing hwnd (if there is one).  This is a protected API.\n***************************************************************************/\nHWND GOB::_HwndGetRc(RC *prc)\n{\n    PT dpt;\n    HWND hwnd;\n\n    *prc = _rcCur;\n    hwnd = _HwndGetDptFromCoo(&dpt, cooHwnd);\n    prc->Offset(dpt.xp - _rcCur.xpLeft, dpt.yp - _rcCur.ypTop);\n    return hwnd;\n}\n\n/***************************************************************************\n    Return the hwnd that contains this GOB.\n***************************************************************************/\nHWND GOB::HwndContainer(void)\n{\n    AssertThis(0);\n    PGOB pgob = this;\n\n    while (pvNil != pgob)\n    {\n        if (hNil != pgob->_hwnd)\n            return pgob->_hwnd;\n        pgob = pgob->_pgobPar;\n    }\n    return hNil;\n}\n\n/***************************************************************************\n    Map a point from cooSrc coordinates to cooDst coordinates (relative\n    to the gob).\n***************************************************************************/\nvoid GOB::MapPt(PT *ppt, long cooSrc, long cooDst)\n{\n    AssertThis(0);\n    AssertVarMem(ppt);\n    PT dpt;\n\n    _HwndGetDptFromCoo(&dpt, cooSrc);\n    ppt->xp -= dpt.xp;\n    ppt->yp -= dpt.yp;\n    _HwndGetDptFromCoo(&dpt, cooDst);\n    ppt->xp += dpt.xp;\n    ppt->yp += dpt.yp;\n}\n\n/***************************************************************************\n    Map an rc from cooSrc coordinates to cooDst coordinates (relative to\n    the gob).\n***************************************************************************/\nvoid GOB::MapRc(RC *prc, long cooSrc, long cooDst)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    PT dpt;\n\n    _HwndGetDptFromCoo(&dpt, cooSrc);\n    prc->Offset(-dpt.xp, -dpt.yp);\n    _HwndGetDptFromCoo(&dpt, cooDst);\n    prc->Offset(dpt.xp, dpt.yp);\n}\n\n/***************************************************************************\n    Get the dxp and dyp to map from local coordinates to coo coordinates.\n    If coo is cooHwnd or cooGlobal, also return the containing hwnd\n    (otherwise return hNil).\n***************************************************************************/\nHWND GOB::_HwndGetDptFromCoo(PT *pdpt, long coo)\n{\n    PGOB pgob, pgobT;\n    HWND hwnd = hNil;\n\n    switch (coo)\n    {\n    default:\n        Assert(coo == cooLocal, \"bad coo\");\n        pdpt->xp = pdpt->yp = 0;\n        break;\n\n    case cooParent:\n        pdpt->xp = _rcCur.xpLeft;\n        pdpt->yp = _rcCur.ypTop;\n        break;\n\n    case cooGpt:\n        pdpt->xp = pdpt->yp = 0;\n        for (pgob = this; (pgobT = pgob->_pgobPar) != pvNil && pgobT->_pgpt == _pgpt; pgob = pgobT)\n        {\n            pdpt->xp += pgob->_rcCur.xpLeft;\n            pdpt->yp += pgob->_rcCur.ypTop;\n        }\n        break;\n\n    case cooHwnd:\n    case cooGlobal:\n        pdpt->xp = pdpt->yp = 0;\n        for (pgob = this; pgob != pvNil && pgob->_hwnd == hNil; pgob = pgob->_pgobPar)\n        {\n            pdpt->xp += pgob->_rcCur.xpLeft;\n            pdpt->yp += pgob->_rcCur.ypTop;\n        }\n        if (pvNil != pgob)\n            hwnd = pgob->_hwnd;\n        if (cooGlobal == coo && hNil != hwnd)\n        {\n            // Map from Hwnd to screen\n            PTS pts;\n            pts = PTS(*pdpt);\n#ifdef WIN\n            ClientToScreen(hwnd, &pts);\n#endif // WIN\n#ifdef MAC\n            PPRT pprt;\n            GetPort(&pprt);\n            SetPort(&hwnd->port);\n            LocalToGlobal(&pts);\n            SetPort(pprt);\n#endif // MAC\n            *pdpt = PT(pts);\n        }\n        break;\n    }\n\n    return hwnd;\n}\n\n/***************************************************************************\n    Get the minimum and maximum size for a gob.\n***************************************************************************/\nvoid GOB::GetMinMax(RC *prcMinMax)\n{\n    prcMinMax->xpLeft = prcMinMax->ypTop = 0;\n    // yes kswMax for safety\n    prcMinMax->xpRight = prcMinMax->ypBottom = kswMax;\n}\n\n/***************************************************************************\n    Static method to find the gob containing the given point (in global\n    coordinates).  If the mouse isn't over a GOB, this returns pvNil and\n    sets *pptLocal to the passed in (xp, yp).\n***************************************************************************/\nPGOB GOB::PgobFromPtGlobal(long xp, long yp, PT *pptLocal)\n{\n    AssertNilOrVarMem(pptLocal);\n    HWND hwnd;\n    PTS pts;\n    PGOB pgob;\n\n#ifdef MAC\n    PPRT pprt;\n\n    pts.h = (short)xp;\n    pts.v = (short)yp;\n    if (inContent != FindWindow(pts, (WindowPtr *)&hwnd) || hNil == hwnd || pvNil == (pgob = PgobFromHwnd(hwnd)))\n    {\n        if (pvNil != pptLocal)\n        {\n            pptLocal->xp = xp;\n            pptLocal->yp = yp;\n        }\n        return pvNil;\n    }\n    GetPort(&pprt);\n    SetPort(&hwnd->port);\n    GlobalToLocal(&pts);\n    SetPort(pprt);\n    return pgob->PgobFromPt(pts.h, pts.v, pptLocal);\n#endif // MAC\n#ifdef WIN\n    pts.x = xp;\n    pts.y = yp;\n    if (hNil == (hwnd = WindowFromPoint(pts)) || pvNil == (pgob = PgobFromHwnd(hwnd)))\n    {\n        if (pvNil != pptLocal)\n        {\n            pptLocal->xp = xp;\n            pptLocal->yp = yp;\n        }\n        return pvNil;\n    }\n    ScreenToClient(hwnd, &pts);\n    return pgob->PgobFromPt(pts.x, pts.y, pptLocal);\n#endif // WIN\n}\n\n/***************************************************************************\n    Determine which gob in the tree starting with this GOB the given point\n    is in.  This may return pvNil if no gob claims to contain the given\n    point.  xp, yp is assumed to be in this gob's parent's coordinates.\n    This is recursive, so a GOB can build it's own world and hit testing\n    method.\n***************************************************************************/\nPGOB GOB::PgobFromPt(long xp, long yp, PT *pptLocal)\n{\n    AssertThis(0);\n\n    xp -= _rcCur.xpLeft;\n    yp -= _rcCur.ypTop;\n\n    if (FPtInBounds(xp, yp))\n    {\n        // the point is in our bounding rectangle, so give the children\n        // a whack at it\n        PGOB pgob, pgobT;\n\n        for (pgob = _pgobChd; pvNil != pgob; pgob = pgob->_pgobSib)\n        {\n            if (pvNil != (pgobT = pgob->PgobFromPt(xp, yp, pptLocal)))\n                return pgobT;\n        }\n    }\n\n    // call FPtIn whether or not FInBounds returned true so a parent can will some\n    // extra space to a child\n    if (FPtIn(xp, yp))\n    {\n        if (pptLocal != pvNil)\n        {\n            pptLocal->xp = xp;\n            pptLocal->yp = yp;\n        }\n        return this;\n    }\n\n    return pvNil;\n}\n\n/***************************************************************************\n    Determine whether the given point (in this gob's local coordinates)\n    is in this gob. This will be subclassed by all non-rectangular gobs\n    (including ones that don't want to respond to the mouse at all).\n    We handle tool tips here to avoid bugs of omission and for convenience.\n***************************************************************************/\nbool GOB::FPtIn(long xp, long yp)\n{\n    AssertThis(0);\n    RC rc;\n\n    // tool tips and their children are \"invisible\".\n    if (khidToolTip == Hid())\n        return fFalse;\n\n    GetRc(&rc, cooLocal);\n    return rc.FPtIn(xp, yp);\n}\n\n/***************************************************************************\n    Determine whether the given point (in this gob's local coordinates)\n    is in this gob's bounding rectangle.  This indicates whether it's OK to\n    ask the GOB's children whether the point is in them.  This will be\n    subclassed by all GOBs that don't want to respond to the mouse.  We\n    handle tool tips here to avoid bugs of omission and for convenience.\n    If this returns false, PgobFromPt will still call FPtIn.\n***************************************************************************/\nbool GOB::FPtInBounds(long xp, long yp)\n{\n    AssertThis(0);\n    RC rc;\n\n    // tool tips and their children are \"invisible\".\n    if (khidToolTip == Hid())\n        return fFalse;\n\n    GetRc(&rc, cooLocal);\n    return rc.FPtIn(xp, yp);\n}\n\n/***************************************************************************\n    Default mouse down handler just enqueues a cidActivateSel, cidSelIdle and\n    a cidTrackMouse command.\n***************************************************************************/\nvoid GOB::MouseDown(long xp, long yp, long cact, ulong grfcust)\n{\n    AssertThis(0);\n    Assert(grfcust & fcustMouse, \"grfcust wrong\");\n    CMD_MOUSE cmd;\n\n    vpcex->EnqueueCid(cidActivateSel, this);\n    vpcex->EnqueueCid(cidSelIdle, pvNil, pvNil, fTrue, Hid());\n    cmd.cid = cidMouseDown;\n    cmd.pcmh = this;\n    cmd.pgg = pvNil;\n    cmd.xp = xp;\n    cmd.yp = yp;\n    cmd.grfcust = grfcust;\n    cmd.cact = cact;\n    vpcex->EnqueueCmd((PCMD)&cmd);\n}\n\n/***************************************************************************\n    Set the _rcCur values based on _rcAbs and _rcRel.  If there is an OS\n    window associated with this GOB, set _rcCur based on the hwnd.\n    Invalidates the old and new rectangles.\n***************************************************************************/\nvoid GOB::_SetRcCur(void)\n{\n    PGOB pgob;\n    GTE gte;\n    ulong grfgte;\n    RC rc, rcVis;\n\n    // invalidate the original rc\n    InvalRc(pvNil);\n\n    gte.Init(this, fgteNil);\n    while (gte.FNextGob(&pgob, &grfgte, fgteNil))\n    {\n        if (!(grfgte & fgtePre))\n            continue;\n\n        // get the new rc and the rcVis of the parent (in the parent's local\n        // coordinates)\n\n        if (pgob->_hwnd != hNil)\n        {\n            RCS rcs;\n\n            GetClientRect(pgob->_hwnd, &rcs);\n            rc = rcs;\n            rcVis.Max();\n        }\n        else if (pgob->_pgobPar != pvNil)\n        {\n            long dxp;\n            long dyp;\n\n            dxp = pgob->_pgobPar->_rcCur.Dxp();\n            dyp = pgob->_pgobPar->_rcCur.Dyp();\n            rc.xpLeft = pgob->_rcAbs.xpLeft + LwMulDiv(dxp, pgob->_rcRel.xpLeft, krelOne);\n            rc.ypTop = pgob->_rcAbs.ypTop + LwMulDiv(dyp, pgob->_rcRel.ypTop, krelOne);\n            rc.xpRight = pgob->_rcAbs.xpRight + LwMulDiv(dxp, pgob->_rcRel.xpRight, krelOne);\n            rc.ypBottom = pgob->_rcAbs.ypBottom + LwMulDiv(dyp, pgob->_rcRel.ypBottom, krelOne);\n            pgob->_pgobPar->GetRcVis(&rcVis, cooLocal);\n        }\n        else\n        {\n            rc = pgob->_rcAbs;\n            rcVis.Max();\n        }\n\n        // intersect the parents visible portion with the new rc to get\n        // this gob's visible portion\n        rcVis.FIntersect(&rc);\n\n        pgob->_rcCur = rc;\n        pgob->_rcVis = rcVis;\n\n        if (grfgte & fgteRoot)\n        {\n            // invalidate the new rectangle - we do it here so children\n            // can draw and validate themselves if they want\n            InvalRc(pvNil);\n        }\n\n        // tell the gob that it has a new rectangle\n        pgob->_NewRc();\n    }\n}\n\n/***************************************************************************\n    Return the previous sibling for the gob.\n***************************************************************************/\nPGOB GOB::PgobPrevSib(void)\n{\n    PGOB pgob;\n\n    pgob = _pgobPar == pvNil ? _pgobScreen : _pgobPar->_pgobChd;\n    if (pgob == this)\n        return pvNil;\n\n    for (; pgob != pvNil && pgob->_pgobSib != this; pgob = pgob->_pgobSib)\n        ;\n\n    if (pgob == pvNil)\n    {\n        Bug(\"corrupt gob tree\");\n        return pvNil;\n    }\n    Assert(pgob->_pgobSib == this, \"wrong logic\");\n    return pgob;\n}\n\n/***************************************************************************\n    Return the last child of the gob.\n***************************************************************************/\nPGOB GOB::PgobLastChild(void)\n{\n    PGOB pgob;\n\n    if ((pgob = _pgobChd) == pvNil)\n        return pvNil;\n\n    for (; pgob->_pgobSib != pvNil; pgob = pgob->_pgobSib)\n        ;\n\n    Assert(pgob->_pgobSib == pvNil, \"wrong logic\");\n    return pgob;\n}\n\n/***************************************************************************\n    Create a new MDI window and attach it to the gob.\n***************************************************************************/\nbool GOB::FCreateAndAttachMdi(PSTN pstnTitle)\n{\n    AssertThis(0);\n    AssertPo(pstnTitle, 0);\n    HWND hwnd;\n\n    if ((hwnd = _HwndNewMdi(pstnTitle)) == hNil)\n        return fFalse;\n    if (!FAttachHwnd(hwnd))\n    {\n        _DestroyHwnd(hwnd);\n        return fFalse;\n    }\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Static method: find the currently active MDI gob.\n***************************************************************************/\nPGOB GOB::PgobMdiActive(void)\n{\n    HWND hwnd;\n\n    if (hNil == (hwnd = HwndMdiActive()))\n        return pvNil;\n    return PgobFromHwnd(hwnd);\n}\n\n/***************************************************************************\n    Static method: find the first gob of the given class in the screen's gob\n    tree.\n***************************************************************************/\nPGOB GOB::PgobFromClsScr(long cls)\n{\n    if (pvNil == _pgobScreen)\n        return pvNil;\n    return _pgobScreen->PgobFromCls(cls);\n}\n\n/***************************************************************************\n    Find a gob in this gob's subtree that is of the given class.\n***************************************************************************/\nPGOB GOB::PgobFromCls(long cls)\n{\n    AssertThis(0);\n    GTE gte;\n    ulong grfgte;\n    PGOB pgob;\n\n    gte.Init(this, fgteNil);\n    while (gte.FNextGob(&pgob, &grfgte, fgteNil))\n    {\n        if (pgob->FIs(cls))\n            return pgob;\n    }\n    return pvNil;\n}\n\n/***************************************************************************\n    Find a direct child of this gob of the given class.\n***************************************************************************/\nPGOB GOB::PgobChildFromCls(long cls)\n{\n    AssertThis(0);\n    PGOB pgob;\n\n    for (pgob = _pgobChd; pvNil != pgob; pgob = pgob->_pgobSib)\n    {\n        if (pgob->FIs(cls))\n            return pgob;\n    }\n    return pvNil;\n}\n\n/***************************************************************************\n    Find a gob of the given class in the parent chain of this gob.\n***************************************************************************/\nPGOB GOB::PgobParFromCls(long cls)\n{\n    AssertThis(0);\n    PGOB pgob;\n\n    for (pgob = _pgobPar; pvNil != pgob; pgob = pgob->_pgobPar)\n    {\n        if (pgob->FIs(cls))\n            return pgob;\n    }\n    return pvNil;\n}\n\n/***************************************************************************\n    Static method: find the first gob with the given hid in the screen's gob\n    tree.\n***************************************************************************/\nPGOB GOB::PgobFromHidScr(long hid)\n{\n    Assert(hid != hidNil, \"nil hid\");\n    if (pvNil == _pgobScreen)\n        return pvNil;\n\n    return _pgobScreen->PgobFromHid(hid);\n}\n\n/***************************************************************************\n    Find a gob in this gobs subtree having the given hid.\n***************************************************************************/\nPGOB GOB::PgobFromHid(long hid)\n{\n    AssertThis(0);\n    GTE gte;\n    ulong grfgte;\n    PGOB pgob;\n\n    gte.Init(this, fgteNil);\n    while (gte.FNextGob(&pgob, &grfgte, fgteNil))\n    {\n        if (pgob->Hid() == hid)\n            return pgob;\n    }\n    return pvNil;\n}\n\n/***************************************************************************\n    Find a direct child of this gob having the given hid.\n***************************************************************************/\nPGOB GOB::PgobChildFromHid(long hid)\n{\n    AssertThis(0);\n    PGOB pgob;\n\n    for (pgob = _pgobChd; pvNil != pgob; pgob = pgob->_pgobSib)\n    {\n        if (pgob->Hid() == hid)\n            return pgob;\n    }\n    return pvNil;\n}\n\n/***************************************************************************\n    Find a gob with the given hid in the parent chain of this gob.\n***************************************************************************/\nPGOB GOB::PgobParFromHid(long hid)\n{\n    AssertThis(0);\n    PGOB pgob;\n\n    for (pgob = _pgobPar; pvNil != pgob; pgob = pgob->_pgobPar)\n    {\n        if (pgob->Hid() == hid)\n            return pgob;\n    }\n    return pvNil;\n}\n\n/***************************************************************************\n    Find a gob in this gobs subtree having the given gob run-time id.\n***************************************************************************/\nPGOB GOB::PgobFromGrid(long grid)\n{\n    AssertThis(0);\n    GTE gte;\n    ulong grfgte;\n    PGOB pgob;\n\n    gte.Init(this, fgteNil);\n    while (gte.FNextGob(&pgob, &grfgte, fgteNil))\n    {\n        if (pgob->Grid() == grid)\n            return pgob;\n    }\n    return pvNil;\n}\n\n/***************************************************************************\n    Handles a close command.\n***************************************************************************/\nbool GOB::FCmdCloseWnd(PCMD pcmd)\n{\n    AssertThis(0);\n    Release();\n    return fTrue;\n}\n\n/***************************************************************************\n    Handles a mouse track command.\n***************************************************************************/\nbool GOB::FCmdTrackMouse(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Command function to handle a key stroke.\n***************************************************************************/\nbool GOB::FCmdKey(PCMD_KEY pcmd)\n{\n    return fFalse;\n}\n\n/***************************************************************************\n    Command function to handle a bad key command (sent by a child to\n    its parent).\n***************************************************************************/\nbool GOB::FCmdBadKey(PCMD_BADKEY pcmd)\n{\n    return fFalse;\n}\n\n/***************************************************************************\n    Do selection idle processing.  Make sure the selection is on or off\n    according to rglw[0] (non-zero means on) and set rglw[0] to false.\n    Always return false.\n***************************************************************************/\nbool GOB::FCmdSelIdle(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Activate the selection.  Default does nothing.\n***************************************************************************/\nbool GOB::FCmdActivateSel(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    return fFalse;\n}\n\n/***************************************************************************\n    The mouse moved in this GOB, set the cursor.\n***************************************************************************/\nbool GOB::FCmdMouseMove(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    vpappb->SetCurs(_pcurs);\n    return fTrue;\n}\n\n/***************************************************************************\n    Drag the rectangle, restricting to [zpMin, zpLim).  While zp is in\n    [zpMinActive, zpLimActive), the bar is filled with solid invert, otherwise\n    with patterned (50%) invert.\n***************************************************************************/\nlong GOB::ZpDragRc(RC *prc, bool fVert, long zp, long zpMin, long zpLim, long zpMinActive, long zpLimActive)\n{\n    RC rcBound, rcActive;\n    PT pt, dpt;\n    bool fActive, fActiveNew, fDown;\n    GNV gnv(this);\n\n    if (fVert)\n    {\n        pt.xp = 0;\n        pt.yp = zp;\n        rcBound.Set(0, zpMin, 1, zpLim);\n        rcActive.Set(0, zpMinActive, 1, zpLimActive);\n    }\n    else\n    {\n        pt.xp = zp;\n        pt.yp = 0;\n        rcBound.Set(zpMin, 0, zpLim, 1);\n        rcActive.Set(zpMinActive, 0, zpLimActive, 1);\n    }\n\n    // draw the initial bar\n    fActive = rcActive.FPtIn(pt.xp, pt.yp);\n    if (fActive)\n        gnv.FillRc(prc, kacrInvert);\n    else\n        gnv.FillRcApt(prc, &vaptGray, kacrInvert, kacrClear);\n\n    for (;;)\n    {\n        GetPtMouse(&dpt, &fDown);\n        if (!fDown)\n            break;\n\n        // pin the pt to rcBound\n        rcBound.PinPt(&dpt);\n        Assert(dpt.xp == 0 || dpt.yp == 0, \"bad pinned point\");\n        if (pt == dpt)\n            continue;\n\n        // move the bar\n        fActiveNew = rcActive.FPtIn(dpt.xp, dpt.yp);\n        dpt -= pt;\n        if (FPure(fActive) == FPure(fActiveNew))\n        {\n            // invert the two pieces of the difference between\n            // the new and old rectangles\n            RC rc1, rc2;\n            long dzp;\n\n            rc1 = *prc;\n            if (fVert)\n                rc1.Transform(fptTranspose);\n            rc2 = rc1;\n            Assert(dpt.xp == 0 || dpt.yp == 0, \"bad pinned point\");\n            dzp = dpt.xp + dpt.yp;\n            rc1.Offset(dzp, 0);\n            if (dzp < 0)\n                SortLw(&rc1.xpRight, &rc2.xpLeft);\n            else\n                SortLw(&rc2.xpRight, &rc1.xpLeft);\n            if (fVert)\n            {\n                rc1.Transform(fptTranspose);\n                rc2.Transform(fptTranspose);\n            }\n            if (fActive)\n            {\n                gnv.FillRc(&rc1, kacrInvert);\n                gnv.FillRc(&rc2, kacrInvert);\n            }\n            else\n            {\n                gnv.FillRcApt(&rc1, &vaptGray, kacrInvert, kacrClear);\n                gnv.FillRcApt(&rc2, &vaptGray, kacrInvert, kacrClear);\n            }\n            *prc += dpt;\n        }\n        else if (fActive)\n        {\n            // just draw the two\n            gnv.FillRc(prc, kacrInvert);\n            *prc += dpt;\n            gnv.FillRcApt(prc, &vaptGray, kacrInvert, kacrClear);\n        }\n        else\n        {\n            // just draw the two\n            gnv.FillRcApt(prc, &vaptGray, kacrInvert, kacrClear);\n            *prc += dpt;\n            gnv.FillRc(prc, kacrInvert);\n        }\n        fActive = fActiveNew;\n        pt += dpt;\n    }\n\n    // erase the current bar\n    if (fActive)\n        gnv.FillRc(prc, kacrInvert);\n    else\n        gnv.FillRcApt(prc, &vaptGray, kacrInvert, kacrClear);\n    return fVert ? pt.yp : pt.xp;\n}\n\n/***************************************************************************\n    Set the cursor for this GOB to pcurs.\n***************************************************************************/\nvoid GOB::SetCurs(PCURS pcurs)\n{\n    AssertThis(0);\n    AssertNilOrPo(pcurs, 0);\n\n    SwapVars(&pcurs, &_pcurs);\n    if (pvNil != _pcurs)\n        _pcurs->AddRef();\n    ReleasePpo(&pcurs);\n}\n\n/***************************************************************************\n    Set the cursor for this GOB as indicated.\n***************************************************************************/\nvoid GOB::SetCursCno(PRCA prca, CNO cno)\n{\n    AssertPo(prca, 0);\n    PCURS pcurs;\n\n    if (pvNil == (pcurs = (PCURS)prca->PbacoFetch(kctgCursor, cno, CURS::FReadCurs)))\n    {\n        Warn(\"cursor not found\");\n        return;\n    }\n    SetCurs(pcurs);\n    ReleasePpo(&pcurs);\n}\n\n/***************************************************************************\n    Return the address of the variable list belonging to this gob.  When the\n    gob is freed, the pointer is no longer valid.\n***************************************************************************/\nPGL *GOB::Ppglrtvm(void)\n{\n    AssertThis(0);\n    return &_pglrtvm;\n}\n\n/***************************************************************************\n    Put up a tool tip if this GOB has one.\n***************************************************************************/\nbool GOB::FEnsureToolTip(PGOB *ppgobCurTip, long xpMouse, long ypMouse)\n{\n    AssertThis(0);\n    AssertVarMem(ppgobCurTip);\n    AssertNilOrPo(*ppgobCurTip, 0);\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Return the state of the GOB. Must be non-zero.\n***************************************************************************/\nlong GOB::LwState(void)\n{\n    AssertThis(0);\n    return 1;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the GOB.\n***************************************************************************/\nvoid GOB::AssertValid(ulong grf)\n{\n    GOB_PAR::AssertValid(0);\n    if (hNil != _hwnd)\n    {\n        Assert(0 == _rcCur.xpLeft && 0 == _rcCur.ypTop, \"_hwnd based gob not at (0, 0)\");\n    }\n    if (pvNil != _pgpt)\n    {\n        AssertPo(_pgpt, 0);\n    }\n}\n\n/***************************************************************************\n    Mark memory referenced by the gob.\n***************************************************************************/\nvoid GOB::MarkMem(void)\n{\n    AssertValid(0);\n    GOB_PAR::MarkMem();\n    MarkMemObj(_pgpt);\n    MarkMemObj(_pglrtvm);\n}\n\n/***************************************************************************\n    Mark memory for this gob and all descendent gobs.\n***************************************************************************/\nvoid GOB::MarkGobTree(void)\n{\n    GTE gte;\n    PGOB pgob;\n    ulong grfgte;\n\n    gte.Init(this, fgteNil);\n    while (gte.FNextGob(&pgob, &grfgte, fgteNil))\n    {\n        if (grfgte & fgtePre)\n            pgob->MarkMem();\n    }\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for a GOB tree enumerator.\n***************************************************************************/\nGTE::GTE(void)\n{\n    _es = esDone;\n}\n\n/***************************************************************************\n    Initialize a GOB tree enumerator.\n***************************************************************************/\nvoid GTE::Init(PGOB pgob, ulong grfgte)\n{\n    _pgobRoot = pgob;\n    _pgobCur = pvNil;\n    _fBackWards = FPure(grfgte & fgteBackToFront);\n    _es = pgob == pvNil ? esDone : esStart;\n}\n\n/***************************************************************************\n    Goes to the next node in the sub tree being enumerated.  Returns false\n    iff the enumeration is done.\n***************************************************************************/\nbool GTE::FNextGob(PGOB *ppgob, ulong *pgrfgteOut, ulong grfgte)\n{\n    PGOB pgobT;\n\n    *pgrfgteOut = fgteNil;\n    switch (_es)\n    {\n    case esStart:\n        _pgobCur = _pgobRoot;\n        *pgrfgteOut |= fgteRoot;\n        goto LCheckForKids;\n\n    case esGoDown:\n        if (!(grfgte & fgteSkipToSib))\n        {\n            pgobT = _fBackWards ? _pgobCur->PgobLastChild() : _pgobCur->_pgobChd;\n            if (pgobT != pvNil)\n            {\n                _pgobCur = pgobT;\n                goto LCheckForKids;\n            }\n        }\n        // fall through\n    case esGoRight:\n        // go to the sibling (if there is one) or parent\n        if (_pgobCur == _pgobRoot)\n        {\n            _es = esDone;\n            return fFalse;\n        }\n        pgobT = _fBackWards ? _pgobCur->PgobPrevSib() : _pgobCur->_pgobSib;\n        if (pgobT != pvNil)\n        {\n            _pgobCur = pgobT;\n        LCheckForKids:\n            *pgrfgteOut |= fgtePre;\n            if (_pgobCur->_pgobChd == pvNil)\n            {\n                *pgrfgteOut |= fgtePost;\n                _es = esGoRight;\n            }\n            else\n                _es = esGoDown;\n        }\n        else\n        {\n            // no more siblings, go to parent\n            _pgobCur = _pgobCur->_pgobPar;\n            *pgrfgteOut |= fgtePost;\n            if (_pgobCur == _pgobRoot)\n            {\n                _es = esDone;\n                *pgrfgteOut |= fgteRoot;\n            }\n            else\n                _es = esGoRight;\n        }\n        break;\n\n    case esDone:\n        return fFalse;\n    }\n\n    *ppgob = _pgobCur;\n    return fTrue;\n}\n"
  },
  {
    "path": "kauai/src/gob.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Graphic object class.\n\n***************************************************************************/\n#ifndef GOB_H\n#define GOB_H\n\nenum\n{\n    fgobNil = 0,\n    fgobSibling = 1,    // for Constructors\n    fgobEnsureHwnd = 2, // for FInitScreen\n    fgobNoVis = 0,      // for DrawTree\n    fgobAutoVis = 4,    // for DrawTree\n    fgobUseVis = 8,     // for DrawTree\n};\n\n// GOB invalidation types\nenum\n{\n    ginNil,\n    kginDraw,\n    kginMark,\n    kginSysInval,\n    kginDefault\n};\n\nconst long krelOne = 0x00010000L; // denominator for relative rectangles\nconst long krelZero = 0;\n\n#ifdef MAC\ninline void GetClientRect(HWND hwnd, RCS *prcs)\n{\n    *prcs = hwnd->port.portRect;\n}\ninline void InvalHwndRcs(HWND hwnd, RCS *prcs)\n{\n    PPRT pprt;\n\n    GetPort(&pprt);\n    SetPort(&hwnd->port);\n    InvalRect(prcs);\n    SetPort(pprt);\n}\ninline void ValidHwndRcs(HWND hwnd, RCS *prcs)\n{\n    PPRT pprt;\n\n    GetPort(&pprt);\n    SetPort(&hwnd->port);\n    ValidRect(prcs);\n    SetPort(pprt);\n}\n#endif // MAC\n#ifdef WIN\ninline void InvalHwndRcs(HWND hwnd, RCS *prcs)\n{\n    InvalidateRect(hwnd, prcs, fFalse);\n}\ninline void ValidHwndRcs(HWND hwnd, RCS *prcs)\n{\n    ValidateRect(hwnd, prcs);\n}\n#endif // WIN\n\n// coordinates\nenum\n{\n    cooLocal,  // top-left is (0,0)\n    cooParent, // relative to parent\n    cooGpt,    // relative to the UI port\n    cooHwnd,   // relative to the enclosing hwnd\n    cooGlobal, // global coordinates\n    cooLim\n};\n\n/****************************************\n    GOB creation block\n****************************************/\nstruct GCB\n{\n    long _hid;\n    PGOB _pgob;\n    ulong _grfgob;\n    long _gin;\n    RC _rcAbs;\n    RC _rcRel;\n\n    GCB(void)\n    {\n    }\n    GCB(long hid, PGOB pgob, ulong grfgob = fgobNil, long gin = kginDefault, RC *prcAbs = pvNil, RC *prcRel = pvNil)\n    {\n        Set(hid, pgob, grfgob, gin, prcAbs, prcRel);\n    }\n    void Set(long hid, PGOB pgob, ulong grfgob = fgobNil, long gin = kginDefault, RC *prcAbs = pvNil,\n             RC *prcRel = pvNil);\n};\ntypedef GCB *PGCB;\n\n/****************************************\n    Graphics object\n****************************************/\n#define GOB_PAR CMH\n#define kclsGOB 'GOB'\nclass GOB : public GOB_PAR\n{\n    RTCLASS_DEC\n    CMD_MAP_DEC(GOB)\n    ASSERT\n    MARKMEM\n\n    friend class GTE;\n\n  private:\n    static PGOB _pgobScreen;\n\n    HWND _hwnd;   // the OS window (may be nil)\n    PGPT _pgpt;   // the graphics port (may be shared with _pgobPar)\n    PCURS _pcurs; // the cursor to show over this gob\n\n    RC _rcCur; // current position\n    RC _rcVis; // current visible rectangle (in its parent)\n    RC _rcAbs; //_rcAbs and _rcRel describe the position of this\n    RC _rcRel; // gob in its parent.\n\n    // tree management\n    PGOB _pgobPar;\n    PGOB _pgobChd;\n    PGOB _pgobSib;\n\n    // variables\n    PGL _pglrtvm;\n\n    void _SetRcCur(void);\n    HWND _HwndGetDptFromCoo(PT *pdpt, long coo);\n\n  protected:\n    static long _ginDefGob;\n    static long _gridLast;\n\n    long _grid;\n    long _ginDefault : 8;\n    long _fFreeing : 1;\n    long _fCreating : 1;\n\n    ~GOB(void);\n\n    static HWND _HwndNewMdi(PSTN pstnTitle);\n    static void _DestroyHwnd(HWND hwnd);\n\n    void _Init(PGCB pgcb);\n    HWND _HwndGetRc(RC *prc);\n    virtual void _NewRc(void)\n    {\n    }\n    virtual void _ActivateHwnd(bool fActive)\n    {\n    }\n\n  public:\n    static bool FInitScreen(ulong grfgob, long ginDef);\n    static void ShutDown(void);\n    static PGOB PgobScreen(void)\n    {\n        return _pgobScreen;\n    }\n    static PGOB PgobFromHwnd(HWND hwnd);\n    static PGOB PgobFromClsScr(long cls);\n    static PGOB PgobFromHidScr(long hid);\n    static void MakeHwndActive(HWND hwnd);\n    static void ActivateHwnd(HWND hwnd, bool fActive);\n    static HWND HwndMdiActive(void);\n    static PGOB PgobMdiActive(void);\n    static PGOB PgobFromPtGlobal(long xp, long yp, PT *pptLocal = pvNil);\n    static long GinDefault(void)\n    {\n        return _ginDefGob;\n    }\n\n    GOB(GCB *pgcb);\n    GOB(long hid);\n    virtual void Release(void);\n\n    // hwnd stuff\n    bool FAttachHwnd(HWND hwnd);\n    bool FCreateAndAttachMdi(PSTN pstnTitle);\n    HWND Hwnd(void)\n    {\n        return _hwnd;\n    }\n    HWND HwndContainer(void);\n    virtual void GetMinMax(RC *prcMinMax);\n    void SetHwndName(PSTN pstn);\n\n    // unique gob run-time id.\n    long Grid(void)\n    {\n        return _grid;\n    }\n\n    // tree management\n    PGOB PgobPar(void)\n    {\n        return _pgobPar;\n    }\n    PGOB PgobFirstChild(void)\n    {\n        return _pgobChd;\n    }\n    PGOB PgobLastChild(void);\n    PGOB PgobNextSib(void)\n    {\n        return _pgobSib;\n    }\n    PGOB PgobPrevSib(void);\n    PGOB PgobFromCls(long cls);\n    PGOB PgobChildFromCls(long cls);\n    PGOB PgobParFromCls(long cls);\n    PGOB PgobFromHid(long hid);\n    PGOB PgobChildFromHid(long hid);\n    PGOB PgobParFromHid(long hid);\n    PGOB PgobFromGrid(long grid);\n    void BringToFront(void);\n    void SendBehind(PGOB pgobBefore);\n\n    // rectangle management\n    void SetPos(RC *prcAbs, RC *prcRel = pvNil);\n    void GetPos(RC *prcAbs, RC *prcRel);\n    void GetRc(RC *prc, long coo);\n    void GetRcVis(RC *prc, long coo);\n    void SetRcFromHwnd(void);\n    virtual void Maximize(void);\n\n    void MapPt(PT *ppt, long cooSrc, long cooDst);\n    void MapRc(RC *prc, long cooSrc, long cooDst);\n\n    // variables\n    virtual PGL *Ppglrtvm(void);\n\n    PGPT Pgpt(void)\n    {\n        return _pgpt;\n    }\n    void InvalRc(RC *prc, long gin = kginDefault);\n    void ValidRc(RC *prc, long gin = kginDefault);\n    bool FGetRcInval(RC *prc, long gin = kginDefault);\n    void Scroll(RC *prc, long dxp, long dyp, long gin, RC *prcBad1 = pvNil, RC *prcBad2 = pvNil);\n\n    virtual void Clean(void);\n    virtual void DrawTree(PGPT pgpt, RC *prc, RC *prcUpdate, ulong grfgob);\n    virtual void DrawTreeRgn(PGPT pgpt, RC *prc, REGN *pregn, ulong grfgob);\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n\n    // mouse handling and hit testing\n    void GetPtMouse(PT *ppt, bool *pfDown);\n    virtual PGOB PgobFromPt(long xp, long yp, PT *pptLocal = pvNil);\n    virtual bool FPtIn(long xp, long yp);\n    virtual bool FPtInBounds(long xp, long yp);\n    virtual void MouseDown(long xp, long yp, long cact, ulong grfcust);\n    virtual long ZpDragRc(RC *prc, bool fVert, long zp, long zpMin, long zpLim, long zpMinActive, long zpLimActive);\n    void SetCurs(PCURS pcurs);\n    void SetCursCno(PRCA prca, CNO cno);\n\n#ifdef MAC\n    virtual void TrackGrow(PEVT pevt);\n#endif // MAC\n\n    // command functions\n    virtual bool FCmdCloseWnd(PCMD pcmd);\n    virtual bool FCmdTrackMouse(PCMD_MOUSE pcmd);\n    bool FCmdTrackMouseCore(PCMD pcmd)\n    {\n        return FCmdTrackMouse((PCMD_MOUSE)pcmd);\n    }\n    virtual bool FCmdMouseMove(PCMD_MOUSE pcmd);\n    bool FCmdMouseMoveCore(PCMD pcmd)\n    {\n        return FCmdMouseMove((PCMD_MOUSE)pcmd);\n    }\n\n    // key commands\n    virtual bool FCmdKey(PCMD_KEY pcmd);\n    bool FCmdKeyCore(PCMD pcmd)\n    {\n        return FCmdKey((PCMD_KEY)pcmd);\n    }\n    virtual bool FCmdBadKey(PCMD_BADKEY pcmd);\n    bool FCmdBadKeyCore(PCMD pcmd)\n    {\n        return FCmdBadKey((PCMD_BADKEY)pcmd);\n    }\n    virtual bool FCmdSelIdle(PCMD pcmd);\n    virtual bool FCmdActivateSel(PCMD pcmd);\n\n    // tool tips\n    virtual bool FEnsureToolTip(PGOB *ppgobCurTip, long xpMouse, long ypMouse);\n\n    // gob state (for automated testing)\n    virtual long LwState(void);\n\n#ifdef DEBUG\n    void MarkGobTree(void);\n#endif // DEBUG\n};\n\n/****************************************\n    Gob Tree Enumerator\n****************************************/\nenum\n{\n    // inputs\n    fgteNil = 0x0000,\n    fgteSkipToSib = 0x0001,   // legal to FNextGob\n    fgteBackToFront = 0x0002, // legal to Init\n\n    // outputs\n    fgtePre = 0x0010,\n    fgtePost = 0x0020,\n    fgteRoot = 0x0040\n};\n\n#define GTE_PAR BASE\n#define kclsGTE 'GTE'\nclass GTE : public GTE_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  private:\n    // enumeration states\n    enum\n    {\n        esStart,\n        esGoDown,\n        esGoRight,\n        esDone\n    };\n\n    long _es;\n    bool _fBackWards; // which way to walk sibling lists\n    PGOB _pgobRoot;\n    PGOB _pgobCur;\n\n  public:\n    GTE(void);\n    void Init(PGOB pgob, ulong grfgte);\n    bool FNextGob(PGOB *ppgob, ulong *pgrfgteOut, ulong grfgteIn);\n};\n\n#endif //! GOB_H\n"
  },
  {
    "path": "kauai/src/gobmac.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Graphic object class.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nPGOB GOB::_pgobScreen;\n\n#define kswKindGob 0x526F\n\n/***************************************************************************\n    Create the screen gob.  If fgobEnsureHwnd is set, ensures that the\n    screen gob has an OS window associated with it.\n***************************************************************************/\nbool GOB::FInitScreen(ulong grfgob, long ginDef)\n{\n    PGOB pgob;\n\n    switch (ginDef)\n    {\n    case kginDraw:\n    case kginMark:\n    case kginSysInval:\n        _ginDefGob = ginDef;\n        break;\n    }\n\n    if ((pgob = NewObj GOB(khidScreen)) == pvNil)\n        return fFalse;\n    Assert(pgob == _pgobScreen, 0);\n\n    if (grfgob & fgobEnsureHwnd)\n    {\n        // REVIEW shonk: create the hwnd and attach it\n        RawRtn();\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Make the GOB a wrapper for the given system window.\n***************************************************************************/\nbool GOB::FAttachHwnd(HWND hwnd)\n{\n    if (_hwnd != hNil)\n    {\n        ReleasePpo(&_pgpt);\n        // don't destroy the hwnd\n        _hwnd = hNil;\n        _hwnd->refCon = 0;\n    }\n    if (hwnd != hNil)\n    {\n        if ((_pgpt = GPT::PgptNew(&hwnd->port)) == pvNil)\n            return fFalse;\n        _hwnd = hwnd;\n        if (_hwnd->windowKind != dialogKind)\n            _hwnd->windowKind = kswKindGob;\n        _hwnd->refCon = (long)this;\n        SetRcFromHwnd();\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Find the GOB associated with the given hwnd (if there is one).\n***************************************************************************/\nPGOB GOB::PgobFromHwnd(HWND hwnd)\n{\n    Assert(hwnd != hNil, \"nil hwnd\");\n    PGOB pgob;\n\n    if (hwnd->windowKind != kswKindGob && hwnd->windowKind != dialogKind)\n        return pvNil;\n    pgob = (PGOB)hwnd->refCon;\n    AssertNilOrPo(pgob, 0);\n    return pgob;\n}\n\n/***************************************************************************\n    Static method to get the next\n***************************************************************************/\nHWND GOB::HwndMdiActive(void)\n{\n    HWND hwnd;\n\n    if (hNil == (hwnd = (HWND)FrontWindow()))\n        return hNil;\n    if (hwnd->windowKind < userKind)\n        return hNil;\n    if (pvNil != _pgobScreen && _pgobScreen->_hwnd == hwnd)\n        return hNil;\n    return hwnd;\n}\n\n/***************************************************************************\n    Creates a new MDI window and returns it.  This is normally then\n    attached to a gob.\n***************************************************************************/\nHWND GOB::_HwndNewMdi(PSTZ pstzTitle)\n{\n    HWND hwnd;\n    RCS rcs;\n    static long _cact = 0;\n\n    rcs = qd.screenBits.bounds;\n    rcs.top += GetMBarHeight() + 25; // menu bar and title\n    rcs.left += 5;\n    rcs.right -= 105;\n    rcs.bottom -= 105;\n    OffsetRect(&rcs, _cact * 20, _cact * 20);\n    _cact = (_cact + 1) % 5;\n\n    hwnd = (HWND)NewCWindow(pvNil, &rcs, (byte *)pstzTitle, fTrue, documentProc, GrafPtr(-1), fTrue, 0);\n    if (hNil != hwnd && pvNil != vpmubCur)\n        vpmubCur->FAddListCid(cidChooseWnd, (long)hwnd, pstzTitle);\n    return hwnd;\n}\n\n/***************************************************************************\n    Destroy an hwnd.\n***************************************************************************/\nvoid GOB::_DestroyHwnd(HWND hwnd)\n{\n    if (pvNil != vpmubCur)\n        vpmubCur->FRemoveListCid(cidChooseWnd, (long)hwnd);\n    DisposeWindow((PPRT)hwnd);\n}\n\n/***************************************************************************\n    The grow area has been hit, track it and resize the window.\n***************************************************************************/\nvoid GOB::TrackGrow(PEVT pevt)\n{\n    Assert(_hwnd != hNil, \"gob has no hwnd\");\n    Assert(pevt->what == mouseDown, \"wrong EVT\");\n\n    long lw;\n    RC rc;\n    RCS rcs;\n\n    GetMinMax(&rc);\n    rcs = RCS(rc);\n    if ((lw = GrowWindow(&_hwnd->port, pevt->where, &rcs)) != 0)\n    {\n        SizeWindow(&_hwnd->port, SwLow(lw), SwHigh(lw), fFalse);\n        _SetRcCur();\n    }\n}\n\n/***************************************************************************\n    Gets the current mouse location in this gob's coordinates (if ppt is\n    not nil) and determines if the mouse button is down (if pfDown is\n    not nil).\n***************************************************************************/\nvoid GOB::GetPtMouse(PT *ppt, bool *pfDown)\n{\n    if (ppt != pvNil)\n    {\n        PTS pts;\n        long xp, yp;\n        PGOB pgob;\n        PPRT pprtSav, pprt;\n\n        xp = yp = 0;\n        for (pgob = this; pgob != pvNil && pgob->_hwnd == hNil; pgob = pgob->_pgobPar)\n        {\n            xp += pgob->_rcCur.xpLeft;\n            yp += pgob->_rcCur.ypTop;\n        }\n\n        if (pvNil != pgob)\n            pprt = &pgob->_hwnd->port;\n        else\n            GetWMgrPort(&pprt);\n        GetPort(&pprtSav);\n        SetPort(pprt);\n        GetMouse(&pts);\n        SetPort(pprtSav);\n\n        *ppt = pts;\n        ppt->xp -= xp;\n        ppt->yp -= yp;\n    }\n    if (pfDown != pvNil)\n        *pfDown = FPure(Button());\n}\n\n/***************************************************************************\n    Makes sure the GOB is clean (no update is pending).\n***************************************************************************/\nvoid GOB::Clean(void)\n{\n    AssertThis(0);\n    HWND hwnd;\n    RC rc, rcT;\n    RCS rcs;\n    PPRT pprt;\n\n    if (hNil == (hwnd = _HwndGetRc(&rc)))\n        return;\n\n    vpappb->InvalMarked(hwnd);\n    rcs = (*hwnd->updateRgn)->rgnBBox;\n    GetPort(&pprt);\n    SetPort(&hwnd->port);\n    GlobalToLocal((PTS *)&rcs);\n    GlobalToLocal((PTS *)&rcs + 1);\n    rcT = rcs;\n    if (!rc.FIntersect(&rcT))\n    {\n        SetPort(pprt);\n        return;\n    }\n\n    BeginUpdate(&hwnd->port);\n    vpappb->UpdateHwnd(hwnd, &rc);\n    EndUpdate(&hwnd->port);\n    SetPort(pprt);\n}\n\n/***************************************************************************\n    Set the window name.\n***************************************************************************/\nvoid GOB::SetHwndName(PSTZ pstz)\n{\n    if (hNil == _hwnd)\n    {\n        Bug(\"GOB doesn't have an hwnd\");\n        return;\n    }\n    if (pvNil != vpmubCur)\n    {\n        vpmubCur->FChangeListCid(cidChooseWnd, (long)_hwnd, pvNil, (long)_hwnd, pstz);\n    }\n    SetWTitle(&_hwnd->port, (byte *)pstz);\n}\n\n/***************************************************************************\n    Static method.  If this hwnd is one of our MDI windows, make it the\n    active MDI window.\n***************************************************************************/\nvoid GOB::MakeHwndActive(HWND hwnd)\n{\n    Assert(hwnd != hNil, \"nil hwnd\");\n    GTE gte;\n    ulong grfgte;\n    PGOB pgob;\n\n    gte.Init(_pgobScreen, fgteNil);\n    while (gte.FNextGob(&pgob, &grfgte, fgteNil))\n    {\n        if (pgob->_hwnd == hwnd)\n        {\n            SelectWindow(&hwnd->port);\n            return;\n        }\n    }\n}\n"
  },
  {
    "path": "kauai/src/gobwin.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Graphic object class.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nPGOB GOB::_pgobScreen;\n\n/***************************************************************************\n    Create the screen gob.  If fgobEnsureHwnd is set, ensures that the\n    screen gob has an OS window associated with it.\n***************************************************************************/\nbool GOB::FInitScreen(ulong grfgob, long ginDef)\n{\n    PGOB pgob;\n    GCB gcb(khidScreen, pvNil);\n\n    switch (ginDef)\n    {\n    case kginDraw:\n    case kginMark:\n    case kginSysInval:\n        _ginDefGob = ginDef;\n        break;\n    }\n\n    if (pvNil == (pgob = NewObj GOB(&gcb)))\n        return fFalse;\n    Assert(pgob == _pgobScreen, 0);\n\n    if (!pgob->FAttachHwnd(vwig.hwndApp))\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Make the GOB a wrapper for the given system window.\n***************************************************************************/\nbool GOB::FAttachHwnd(HWND hwnd)\n{\n    if (_hwnd != hNil)\n    {\n        ReleasePpo(&_pgpt);\n        // don't destroy the hwnd - the caller must do that\n        _hwnd = hNil;\n    }\n    if (hwnd != hNil)\n    {\n        if (pvNil == (_pgpt = GPT::PgptNewHwnd(hwnd)))\n            return fFalse;\n        _hwnd = hwnd;\n        SetRcFromHwnd();\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Find the GOB associated with the given hwnd (if there is one).\n***************************************************************************/\nPGOB GOB::PgobFromHwnd(HWND hwnd)\n{\n    // NOTE: we used to use SetProp and GetProp for this, but profiling\n    // indicated that GetProp is very slow.\n    Assert(hwnd != hNil, \"nil hwnd\");\n    GTE gte;\n    ulong grfgte;\n    PGOB pgob;\n\n    gte.Init(_pgobScreen, fgteNil);\n    while (gte.FNextGob(&pgob, &grfgte, fgteNil))\n    {\n        if (pgob->_hwnd == hwnd)\n            return pgob;\n    }\n    return pvNil;\n}\n\n/***************************************************************************\n    Return the active MDI window.\n***************************************************************************/\nHWND GOB::HwndMdiActive(void)\n{\n    if (vwig.hwndClient == hNil)\n        return hNil;\n\n    return (HWND)SendMessage(vwig.hwndClient, WM_MDIGETACTIVE, 0, 0);\n}\n\n/***************************************************************************\n    Creates a new MDI window and returns it.  This is normally then\n    attached to a gob.\n***************************************************************************/\nHWND GOB::_HwndNewMdi(PSTN pstnTitle)\n{\n    AssertPo(pstnTitle, 0);\n    HWND hwnd, hwndT;\n    long lwStyle;\n\n    if (vwig.hwndClient == hNil)\n    {\n        // create the client first\n        CLIENTCREATESTRUCT ccs;\n        RCS rcs;\n\n        ccs.hWindowMenu = hNil;\n        ccs.idFirstChild = 1;\n        GetClientRect(vwig.hwndApp, &rcs);\n        Assert(rcs.left == 0 && rcs.top == 0, 0);\n        vwig.hwndClient = CreateWindow(PszLit(\"MDICLIENT\"), NULL, WS_CHILD | WS_CLIPCHILDREN | WS_VISIBLE, 0, 0,\n                                       rcs.right, rcs.bottom, vwig.hwndApp, NULL, vwig.hinst, (LPVOID)&ccs);\n        if (vwig.hwndClient == hNil)\n            return hNil;\n    }\n\n    lwStyle = MDIS_ALLCHILDSTYLES | WS_CHILD | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_SYSMENU | WS_CAPTION |\n              WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX;\n    hwndT = HwndMdiActive();\n    if (hNil == hwndT || IsZoomed(hwndT))\n        lwStyle |= WS_MAXIMIZE;\n\n    hwnd = CreateMDIWindow(PszLit(\"MDI\"), pstnTitle->Psz(), lwStyle, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,\n                           CW_USEDEFAULT, vwig.hwndClient, vwig.hinst, 0L);\n    if (hNil != hwnd && pvNil != vpmubCur)\n        vpmubCur->FAddListCid(cidChooseWnd, (long)hwnd, pstnTitle);\n    return hwnd;\n}\n\n/***************************************************************************\n    Destroy an hwnd.\n***************************************************************************/\nvoid GOB::_DestroyHwnd(HWND hwnd)\n{\n    if (hwnd == vwig.hwndApp)\n    {\n        Bug(\"can't destroy app window\");\n        return;\n    }\n    if (GetParent(hwnd) == vwig.hwndClient && vwig.hwndClient != hNil)\n    {\n        if (pvNil != vpmubCur)\n            vpmubCur->FRemoveListCid(cidChooseWnd, (long)hwnd);\n        SendMessage(vwig.hwndClient, WM_MDIDESTROY, (WPARAM)hwnd, 0);\n    }\n    else\n        DestroyWindow(hwnd);\n}\n\n/***************************************************************************\n    Gets the current mouse location in this gob's coordinates (if ppt is\n    not nil) and determines if the mouse button is down (if pfDown is\n    not nil).\n***************************************************************************/\nvoid GOB::GetPtMouse(PT *ppt, bool *pfDown)\n{\n    AssertThis(0);\n    if (ppt != pvNil)\n    {\n        PTS pts;\n        long xp, yp;\n        PGOB pgob;\n\n        xp = yp = 0;\n        for (pgob = this; pgob != pvNil && pgob->_hwnd == hNil; pgob = pgob->_pgobPar)\n        {\n            xp += pgob->_rcCur.xpLeft;\n            yp += pgob->_rcCur.ypTop;\n        }\n        GetCursorPos(&pts);\n        if (pgob != pvNil)\n            ScreenToClient(pgob->_hwnd, &pts);\n        *ppt = PT(pts);\n        ppt->xp -= xp;\n        ppt->yp -= yp;\n    }\n    if (pfDown != pvNil)\n        *pfDown = GetAsyncKeyState(VK_LBUTTON) < 0;\n}\n\n/***************************************************************************\n    Makes sure the GOB is clean (no update is pending).\n***************************************************************************/\nvoid GOB::Clean(void)\n{\n    AssertThis(0);\n    HWND hwnd;\n    RC rc, rcT;\n    RCS rcs;\n\n    if (hNil == (hwnd = _HwndGetRc(&rc)))\n        return;\n\n    vpappb->InvalMarked(hwnd);\n    GetUpdateRect(hwnd, &rcs, fFalse);\n    rcT = RC(rcs);\n    if (rc.FIntersect(&rcT))\n        UpdateWindow(hwnd);\n}\n\n/***************************************************************************\n    Set the window name.\n***************************************************************************/\nvoid GOB::SetHwndName(PSTN pstn)\n{\n    if (hNil == _hwnd)\n    {\n        Bug(\"GOB doesn't have an hwnd\");\n        return;\n    }\n    if (pvNil != vpmubCur)\n    {\n        vpmubCur->FChangeListCid(cidChooseWnd, (long)_hwnd, pvNil, (long)_hwnd, pstn);\n    }\n    SetWindowText(_hwnd, pstn->Psz());\n}\n\n/***************************************************************************\n    If this is one of our MDI windows, make it the active MDI window.\n***************************************************************************/\nvoid GOB::MakeHwndActive(HWND hwnd)\n{\n    if (IsWindow(hwnd) && GetParent(hwnd) == vwig.hwndClient && vwig.hwndClient != hNil)\n        SendMessage(vwig.hwndClient, WM_MDIACTIVATE, (WPARAM)hwnd, 0);\n}\n"
  },
  {
    "path": "kauai/src/groups.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Basic collection classes:\n        General List (GL), Allocated List (AL),\n        General Group (GG), Allocated Group (AG),\n        General String Table (GST), Allocated String Table (AST).\n\n        BASE ---> GRPB -+-> GLB -+-> GL\n                        |        +-> AL\n                        |\n                        +-> GGB -+-> GG\n                        |        +-> AG\n                        |\n                        +-> GSTB-+-> GST\n                                 +-> AST\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\nRTCLASS(GRPB)\nRTCLASS(GLB)\nRTCLASS(GL)\nRTCLASS(AL)\nRTCLASS(GGB)\nRTCLASS(GG)\nRTCLASS(AG)\n\n/***************************************************************************\n    GRPB:  Manages two sections of data.  Currently the two sections are\n    in two separate hq's, but they could be in one without affecting the\n    clients.  The actual data in the two sections is determined by the\n    subclass (client).  This class just manages resizing the data sections.\n***************************************************************************/\n\n/***************************************************************************\n    Destructor for GRPB.  Frees the hq.\n***************************************************************************/\nGRPB::~GRPB(void)\n{\n    AssertThis(0);\n    FreePhq(&_hqData1);\n    FreePhq(&_hqData2);\n}\n\n/***************************************************************************\n    Ensure that the two sections are at least the given cb's large.\n    if (grfgrp & fgrpShrink), makes them exact.\n***************************************************************************/\nbool GRPB::_FEnsureSizes(long cbMin1, long cbMin2, ulong grfgrp)\n{\n    AssertThis(0);\n    Assert(cbMin1 >= 0 && cbMin2 >= 0, \"negative sizes\");\n\n    if (grfgrp & fgrpShrink)\n    {\n        // shrink anything that's too big\n        if (cbMin1 == 0)\n        {\n            FreePhq(&_hqData1);\n            _cb1 = 0;\n        }\n        else if (cbMin1 < _cb1)\n        {\n            FResizePhq(&_hqData1, cbMin1, fmemNil, mprNormal);\n            _cb1 = cbMin1;\n        }\n\n        if (cbMin2 == 0)\n        {\n            FreePhq(&_hqData2);\n            _cb2 = 0;\n        }\n        else if (cbMin2 < _cb2)\n        {\n            FResizePhq(&_hqData2, cbMin2, fmemNil, mprNormal);\n            _cb2 = cbMin2;\n        }\n    }\n\n    if (cbMin1 > _cb1 && !_FEnsureHqCb(&_hqData1, cbMin1, _cbMinGrow1, &_cb1))\n        return fFalse;\n    if (cbMin2 > _cb2 && !_FEnsureHqCb(&_hqData2, cbMin2, _cbMinGrow2, &_cb2))\n        return fFalse;\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Ensure that the given HQ is large enough.\n***************************************************************************/\nbool GRPB::_FEnsureHqCb(HQ *phq, long cb, long cbMinGrow, long *pcb)\n{\n    AssertVarMem(phq);\n    AssertIn(cbMinGrow, 0, kcbMax);\n    AssertVarMem(pcb);\n    AssertIn(*pcb, 0, kcbMax);\n\n    // limit the size\n    if ((ulong)cb >= kcbMax)\n        return fFalse;\n\n    AssertIn(cb, *pcb + 1, kcbMax);\n    if (hqNil != *phq)\n    {\n        // resize an existing hq\n        AssertHq(*phq);\n\n        if ((cbMinGrow += *pcb) > cb && FResizePhq(phq, cbMinGrow, fmemNil, mprForSpeed))\n        {\n            *pcb = cbMinGrow;\n            return fTrue;\n        }\n        else if (FResizePhq(phq, cb, fmemNil, mprNormal))\n        {\n            *pcb = cb;\n            return fTrue;\n        }\n        return fFalse;\n    }\n\n    // just allocate the thing\n    Assert(*pcb == 0, \"bad cb\");\n    if (cbMinGrow > cb && FAllocHq(phq, cbMinGrow, fmemNil, mprForSpeed))\n    {\n        *pcb = cbMinGrow;\n        return fTrue;\n    }\n    else if (FAllocHq(phq, cb, fmemNil, mprNormal))\n    {\n        *pcb = cb;\n        return fTrue;\n    }\n    return fFalse;\n}\n\n/***************************************************************************\n    Make the given GRPB a duplicate of this one.\n***************************************************************************/\nbool GRPB::_FDup(PGRPB pgrpbDst, long cb1, long cb2)\n{\n    AssertThis(0);\n    AssertPo(pgrpbDst, 0);\n    AssertIn(cb1, 0, kcbMax);\n    AssertIn(cb2, 0, kcbMax);\n\n    if (!pgrpbDst->_FEnsureSizes(cb1, cb2, fgrpShrink))\n        return fFalse;\n\n    if (cb1 > 0)\n        CopyPb(_Qb1(0), pgrpbDst->_Qb1(0), cb1);\n    if (cb2 > 0)\n        CopyPb(_Qb2(0), pgrpbDst->_Qb2(0), cb2);\n\n    pgrpbDst->_cbMinGrow1 = _cbMinGrow1;\n    pgrpbDst->_cbMinGrow2 = _cbMinGrow2;\n    pgrpbDst->_ivMac = _ivMac;\n\n    AssertPo(pgrpbDst, 0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Write a group to a flo.\n***************************************************************************/\nbool GRPB::FWriteFlo(PFLO pflo, short bo, short osk)\n{\n    BLCK blck(pflo);\n    return FWrite(&blck, bo, osk);\n}\n\n/***************************************************************************\n    Write the GRPB data to the block.  First write the (pv, cb), then\n    cb1 bytes from the first section and cb2 bytes from the second.\n***************************************************************************/\nbool GRPB::_FWrite(PBLCK pblck, void *pv, long cb, long cb1, long cb2)\n{\n    AssertPo(pblck, 0);\n    AssertIn(cb, 1, kcbMax);\n    AssertPvCb(pv, cb);\n    AssertIn(cb1, 0, _cb1 + 1);\n    AssertIn(cb2, 0, _cb2 + 1);\n\n    bool fRet = fFalse;\n\n    if (pblck->Cb() != cb + cb1 + cb2)\n    {\n        Bug(\"blck wrong size\");\n        return fFalse;\n    }\n    if (!pblck->FWriteRgb(pv, cb, 0))\n        return fFalse;\n\n    if (cb1 > 0)\n    {\n        fRet = pblck->FWriteRgb(PvLockHq(_hqData1), cb1, cb);\n        UnlockHq(_hqData1);\n        if (!fRet)\n            return fFalse;\n    }\n    if (cb2 > 0)\n    {\n        fRet = pblck->FWriteRgb(PvLockHq(_hqData2), cb2, cb + cb1);\n        UnlockHq(_hqData2);\n        if (!fRet)\n            return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Read the two sections of data from the given location in the given\n    block.\n***************************************************************************/\nbool GRPB::_FReadData(PBLCK pblck, long cb1, long cb2, long ib)\n{\n    AssertPo(pblck, fblckUnpacked);\n    AssertIn(cb1, 0, kcbMax);\n    AssertIn(cb2, 0, kcbMax);\n\n    bool fRet;\n\n    if (cb1 == 0 && cb2 == 0)\n        return fTrue;\n    if (!_FEnsureSizes(cb1, cb2, fgrpNil))\n        return fFalse;\n\n    if (cb1 > 0)\n    {\n        fRet = pblck->FReadRgb(PvLockHq(_hqData1), cb1, ib);\n        UnlockHq(_hqData1);\n        if (!fRet)\n            return fFalse;\n    }\n    if (cb2 > 0)\n    {\n        fRet = pblck->FReadRgb(PvLockHq(_hqData2), cb2, ib + cb1);\n        UnlockHq(_hqData2);\n        if (!fRet)\n            return fFalse;\n    }\n\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the grpb stuff.\n***************************************************************************/\nvoid GRPB::AssertValid(ulong grfobj)\n{\n    GRPB_PAR::AssertValid(grfobj | fobjAllocated);\n    AssertIn(_cb1, 0, kcbMax);\n    AssertIn(_cb2, 0, kcbMax);\n    Assert((_cb1 == 0) == (_hqData1 == hqNil), \"cb's don't match _hqData1\");\n    Assert((_cb2 == 0) == (_hqData2 == hqNil), \"cb's don't match _hqData2\");\n    Assert(_hqData1 == hqNil || CbOfHq(_hqData1) == _cb1, \"_hqData1 wrong size\");\n    Assert(_hqData2 == hqNil || CbOfHq(_hqData2) == _cb2, \"_hqData2 wrong size\");\n}\n\n/***************************************************************************\n    Mark the _hqData blocks.\n***************************************************************************/\nvoid GRPB::MarkMem(void)\n{\n    AssertThis(0);\n    GRPB_PAR::MarkMem();\n    MarkHq(_hqData1);\n    MarkHq(_hqData2);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    GLB:  Base class for GL (general list) and AL (general allocated list).\n    The list data goes in section 1.  The GL class doesn't use section 2.\n    The AL class uses section 2 for a bit array indicating whether an entry\n    is free or in use.\n***************************************************************************/\n\n/***************************************************************************\n    Constructor for the list base.\n***************************************************************************/\nGLB::GLB(long cb)\n{\n    AssertIn(cb, 0, kcbMax);\n    _cbEntry = cb;\n\n    // use some reasonable values for _cbMinGrow* - code can always set\n    // set these to something else\n    _cbMinGrow1 = 128;\n    _cbMinGrow2 = 16;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Return a volatile pointer to a list entry.\n    NOTE: don't assert !FFree(iv) for allocated lists.\n***************************************************************************/\nvoid *GLB::QvGet(long iv)\n{\n    AssertThis(0);\n    AssertIn(iv, 0, _ivMac + 1);\n    return (0 == _ivMac) ? pvNil : _Qb1(LwMul(iv, _cbEntry));\n}\n\n/***************************************************************************\n    Get the data for the iv'th element in the GLB.\n***************************************************************************/\nvoid GLB::Get(long iv, void *pv)\n{\n    AssertThis(0);\n    AssertIn(iv, 0, _ivMac);\n    AssertPvCb(pv, _cbEntry);\n    CopyPb(QvGet(iv), pv, _cbEntry);\n}\n\n/***************************************************************************\n    Put data into the iv'th element in the GLB.\n***************************************************************************/\nvoid GLB::Put(long iv, void *pv)\n{\n    AssertThis(0);\n    AssertIn(iv, 0, _ivMac);\n    AssertPvCb(pv, _cbEntry);\n    CopyPb(pv, QvGet(iv), _cbEntry);\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Lock the data and return a pointer to the ith item.\n***************************************************************************/\nvoid *GLB::PvLock(long iv)\n{\n    Lock();\n    return QvGet(iv);\n}\n\n/***************************************************************************\n    Set the minimum that a GL should grow by.\n***************************************************************************/\nvoid GLB::SetMinGrow(long cvAdd)\n{\n    AssertThis(0);\n    AssertIn(cvAdd, 0, kcbMax);\n\n    _cbMinGrow1 = CbRoundToLong(LwMul(cvAdd, _cbEntry));\n    _cbMinGrow2 = CbRoundToLong(LwDivAway(cvAdd, 8));\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a list (GL or AL).\n***************************************************************************/\nvoid GLB::AssertValid(ulong grfobj)\n{\n    GLB_PAR::AssertValid(grfobj);\n    AssertIn(_cbEntry, 1, kcbMax);\n    AssertIn(_ivMac, 0, kcbMax);\n    Assert(_Cb1() >= LwMul(_cbEntry, _ivMac), \"array area too small\");\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Allocate a new list and ensure that it has space for cvInit elements.\n***************************************************************************/\nPGL GL::PglNew(long cb, long cvInit)\n{\n    AssertIn(cb, 1, kcbMax);\n    AssertIn(cvInit, 0, kcbMax);\n    PGL pgl;\n\n    if ((pgl = NewObj GL(cb)) == pvNil)\n        return pvNil;\n    if (cvInit > 0 && !pgl->FEnsureSpace(cvInit, fgrpNil))\n    {\n        ReleasePpo(&pgl);\n        return pvNil;\n    }\n    AssertPo(pgl, 0);\n    return pgl;\n}\n\n/***************************************************************************\n    Read a list from a block and return it.\n***************************************************************************/\nPGL GL::PglRead(PBLCK pblck, short *pbo, short *posk)\n{\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(pbo);\n    AssertNilOrVarMem(posk);\n    PGL pgl;\n\n    /* the use of 4 for the cb is bogus, but _FRead overwrites the cb anyway */\n    if ((pgl = NewObj GL(4)) == pvNil)\n        goto LFail;\n    if (!pgl->_FRead(pblck, pbo, posk))\n    {\n        ReleasePpo(&pgl);\n    LFail:\n        TrashVar(pbo);\n        TrashVar(posk);\n        return pvNil;\n    }\n    AssertPo(pgl, 0);\n    return pgl;\n}\n\n/***************************************************************************\n    Read a list from file and return it.\n***************************************************************************/\nPGL GL::PglRead(PFIL pfil, FP fp, long cb, short *pbo, short *posk)\n{\n    BLCK blck(pfil, fp, cb);\n    return PglRead(&blck, pbo, posk);\n}\n\n/***************************************************************************\n    Constructor for GL.\n***************************************************************************/\nGL::GL(long cb) : GLB(cb)\n{\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Provided for completeness (all GRPB's have an FFree routine).\n    Returns false iff iv is a valid index for the GL.\n***************************************************************************/\nbool GL::FFree(long iv)\n{\n    AssertThis(0);\n    return !FIn(iv, 0, _ivMac);\n}\n\n/***************************************************************************\n    Duplicate this GL.\n***************************************************************************/\nPGL GL::PglDup(void)\n{\n    AssertThis(0);\n    PGL pgl;\n\n    if (pvNil == (pgl = PglNew(_cbEntry)))\n        return pvNil;\n\n    if (!_FDup(pgl, LwMul(_ivMac, _cbEntry), 0))\n        ReleasePpo(&pgl);\n\n    AssertNilOrPo(pgl, 0);\n    return pgl;\n}\n\n// List on file\nstruct GLF\n{\n    short bo;\n    short osk;\n    long cbEntry;\n    long ivMac;\n};\nconst BOM kbomGlf = 0x5F000000L;\n\n/***************************************************************************\n    Return the amount of space on file needed for the list.\n***************************************************************************/\nlong GL::CbOnFile(void)\n{\n    AssertThis(0);\n    return size(GLF) + LwMul(_cbEntry, _ivMac);\n}\n\n/***************************************************************************\n    Write the list to disk.\n***************************************************************************/\nbool GL::FWrite(PBLCK pblck, short bo, short osk)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n    Assert(kboCur == bo || kboOther == bo, \"bad bo\");\n    AssertOsk(osk);\n\n    GLF glf;\n\n    glf.bo = kboCur;\n    glf.osk = osk;\n    glf.cbEntry = _cbEntry;\n    glf.ivMac = _ivMac;\n    if (kboOther == bo)\n    {\n        SwapBytesBom(&glf, kbomGlf);\n        Assert(glf.bo == bo, \"wrong bo\");\n        Assert(glf.osk == osk, \"osk not invariant under byte swapping\");\n    }\n    return _FWrite(pblck, &glf, size(glf), LwMul(_cbEntry, _ivMac), 0);\n}\n\n/***************************************************************************\n    Read list data from disk.\n***************************************************************************/\nbool GL::_FRead(PBLCK pblck, short *pbo, short *posk)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(pbo);\n    AssertNilOrVarMem(posk);\n\n    GLF glf;\n    long cb;\n    bool fRet = fFalse;\n\n    if (!pblck->FUnpackData())\n        goto LFail;\n\n    cb = pblck->Cb();\n    if (cb < size(glf))\n        goto LBug;\n\n    if (!pblck->FReadRgb(&glf, size(glf), 0))\n        goto LFail;\n\n    if (pbo != pvNil)\n        *pbo = glf.bo;\n    if (posk != pvNil)\n        *posk = glf.osk;\n\n    if (glf.bo == kboOther)\n        SwapBytesBom(&glf, kbomGlf);\n\n    cb -= size(glf);\n    if (glf.bo != kboCur || glf.cbEntry <= 0 || glf.ivMac < 0 || cb != glf.cbEntry * glf.ivMac)\n    {\n    LBug:\n        Warn(\"file corrupt or not a GL\");\n        goto LFail;\n    }\n\n    _cbEntry = glf.cbEntry;\n    _ivMac = glf.ivMac;\n    fRet = _FReadData(pblck, cb, 0, size(glf));\n\nLFail:\n    TrashVarIf(!fRet, pbo);\n    TrashVarIf(!fRet, posk);\n    return fRet;\n}\n\n/***************************************************************************\n    Insert some items into a list at position iv.  iv should be <= IvMac().\n***************************************************************************/\nbool GL::FInsert(long iv, void *pv, long cv)\n{\n    AssertThis(0);\n    AssertIn(iv, 0, _ivMac + 1);\n    AssertIn(cv, 1, kcbMax);\n    AssertNilOrPvCb(pv, LwMul(cv, _cbEntry));\n\n    byte *qb;\n    long cbTot, cbIns, ibIns;\n\n    cbTot = LwMul(_ivMac + cv, _cbEntry);\n    cbIns = LwMul(cv, _cbEntry);\n    ibIns = LwMul(iv, _cbEntry);\n    if (cbTot > _Cb1() && !_FEnsureSizes(cbTot, 0, fgrpNil))\n        return fFalse;\n\n    qb = _Qb1(ibIns);\n    if (iv < _ivMac)\n        BltPb(qb, qb + cbIns, cbTot - cbIns - ibIns);\n    if (pvNil != pv)\n        CopyPb(pv, qb, cbIns);\n    _ivMac += cv;\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Delete an element from the list.  This changes the indices of all\n    later elements.\n***************************************************************************/\nvoid GL::Delete(long iv)\n{\n    AssertThis(0);\n    Delete(iv, 1);\n}\n\n/***************************************************************************\n    Delete a range of elements.  This changes the indices of all later\n    elements.\n***************************************************************************/\nvoid GL::Delete(long ivMin, long cv)\n{\n    AssertThis(0);\n    AssertIn(ivMin, 0, _ivMac);\n    AssertIn(cv, 1, _ivMac - ivMin + 1);\n\n    if (ivMin < (_ivMac -= cv))\n    {\n        byte *qb = _Qb1(LwMul(ivMin, _cbEntry));\n        BltPb(qb + LwMul(cv, _cbEntry), qb, LwMul(_ivMac - ivMin, _cbEntry));\n    }\n    TrashPvCb(_Qb1(LwMul(_ivMac, _cbEntry)), LwMul(cv, _cbEntry));\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Move the entry at ivSrc to be immediately before the element that is\n    currently at ivTarget.  If ivTarget > ivSrc, the entry actually ends\n    up at (ivTarget - 1) and the entry at ivTarget doesn't move.  If\n    ivTarget < ivSrc, the entry ends up at ivTarget and the entry at\n    ivTarget moves to (ivTarget + 1).  Everything in between is shifted\n    appropriately.  ivTarget is allowed to be equal to IvMac().\n***************************************************************************/\nvoid GL::Move(long ivSrc, long ivTarget)\n{\n    AssertThis(0);\n    AssertIn(ivSrc, 0, _ivMac);\n    AssertIn(ivTarget, 0, _ivMac + 1);\n\n    MoveElement(_Qb1(0), _cbEntry, ivSrc, ivTarget);\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Add an element to the end of the list.  Returns the location in *piv.\n    On failure, returns false and *piv is undefined.\n***************************************************************************/\nbool GL::FAdd(void *pv, long *piv)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(piv);\n\n    if (piv != pvNil)\n        *piv = _ivMac;\n    if (!FInsert(_ivMac, pv))\n    {\n        TrashVar(piv);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Stack operation.  Returns fFalse on stack underflow.\n***************************************************************************/\nbool GL::FPop(void *pv)\n{\n    AssertThis(0);\n    AssertNilOrPvCb(pv, _cbEntry);\n\n    if (_ivMac == 0)\n    {\n        TrashPvCb(pv, _cbEntry);\n        return fFalse;\n    }\n    if (pv != pvNil)\n        Get(_ivMac - 1, pv);\n    _ivMac--;\n    TrashPvCb(_Qb1(LwMul(_ivMac, _cbEntry)), _cbEntry);\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the number of elements.  Used rarely (to add a block of elements\n    at a time or to \"zero out\" a list.\n***************************************************************************/\nbool GL::FSetIvMac(long ivMacNew)\n{\n    AssertThis(0);\n    AssertIn(ivMacNew, 0, kcbMax);\n    long cb;\n\n    if (ivMacNew > _ivMac)\n    {\n        if (ivMacNew > kcbMax / _cbEntry)\n        {\n            Bug(\"who's trying to allocate a list this big?\");\n            return fFalse;\n        }\n\n        cb = LwMul(ivMacNew, _cbEntry);\n        if (cb > _Cb1() && !_FEnsureSizes(cb, 0, fgrpNil))\n            return fFalse;\n        TrashPvCb(_Qb1(LwMul(_ivMac, _cbEntry)), LwMul(ivMacNew - _ivMac, _cbEntry));\n    }\n#ifdef DEBUG\n    else if (ivMacNew < _ivMac)\n    {\n        TrashPvCb(_Qb1(LwMul(ivMacNew, _cbEntry)), LwMul(_ivMac - ivMacNew, _cbEntry));\n    }\n#endif // DEBUG\n\n    _ivMac = ivMacNew;\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Make sure there is room for at least cvAdd additional entries. If\n    fgrpShrink is set, will shrink the list if it has more than cvAdd\n    available entries.\n***************************************************************************/\nbool GL::FEnsureSpace(long cvAdd, ulong grfgrp)\n{\n    AssertThis(0);\n    AssertIn(cvAdd, 0, kcbMax);\n\n    // limit the size of the list\n    if (cvAdd > kcbMax / _cbEntry - _ivMac)\n    {\n        Bug(\"who's trying to allocate a list this big?\");\n        return fFalse;\n    }\n\n    return _FEnsureSizes(LwMul(cvAdd + _ivMac, _cbEntry), 0, grfgrp);\n}\n\n/***************************************************************************\n    Allocate a new allocated list and ensure that it has space for\n    cvInit elements.\n***************************************************************************/\nPAL AL::PalNew(long cb, long cvInit)\n{\n    AssertIn(cb, 1, kcbMax);\n    AssertIn(cvInit, 0, kcbMax);\n    PAL pal;\n\n    if ((pal = NewObj AL(cb)) == pvNil)\n        return pvNil;\n    if (cvInit > 0 && !pal->FEnsureSpace(cvInit, fgrpNil))\n    {\n        ReleasePpo(&pal);\n        return pvNil;\n    }\n    AssertPo(pal, 0);\n    return pal;\n}\n\n/***************************************************************************\n    Read an allocated list from the block and return it.\n***************************************************************************/\nPAL AL::PalRead(PBLCK pblck, short *pbo, short *posk)\n{\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(pbo);\n    AssertNilOrVarMem(posk);\n\n    PAL pal;\n\n    /* the use of 4 for the cb is bogus, but _FRead overwrites the cb anyway */\n    if ((pal = NewObj AL(4)) == pvNil)\n        goto LFail;\n    if (!pal->_FRead(pblck, pbo, posk))\n    {\n        ReleasePpo(&pal);\n    LFail:\n        TrashVar(pbo);\n        TrashVar(posk);\n        return pvNil;\n    }\n    AssertPo(pal, 0);\n    return pal;\n}\n\n/***************************************************************************\n    Read an allocated list from file and return it.\n***************************************************************************/\nPAL AL::PalRead(PFIL pfil, FP fp, long cb, short *pbo, short *posk)\n{\n    BLCK blck(pfil, fp, cb);\n    return PalRead(&blck, pbo, posk);\n}\n\n/***************************************************************************\n    Constructor for AL (allocated list) class.\n***************************************************************************/\nAL::AL(long cb) : GLB(cb)\n{\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    Duplicate this AL.\n***************************************************************************/\nPAL AL::PalDup(void)\n{\n    AssertThis(fobjAssertFull);\n    PAL pal;\n\n    if (pvNil == (pal = PalNew(_cbEntry)))\n        return pvNil;\n\n    if (!_FDup(pal, LwMul(_ivMac, _cbEntry), CbFromCbit(_ivMac)))\n        ReleasePpo(&pal);\n    else\n        pal->_cvFree = _cvFree;\n\n    AssertNilOrPo(pal, fobjAssertFull);\n    return pal;\n}\n\n// Allocated list on file\nstruct ALF\n{\n    short bo;\n    short osk;\n    long cbEntry;\n    long ivMac;\n    long cvFree;\n};\nconst BOM kbomAlf = 0x5FC00000L;\n\n/***************************************************************************\n    Return the amount of space on file needed for the list.\n***************************************************************************/\nlong AL::CbOnFile(void)\n{\n    AssertThis(fobjAssertFull);\n\n    return size(ALF) + LwMul(_cbEntry, _ivMac) + CbFromCbit(_ivMac);\n}\n\n/***************************************************************************\n    Write the list to disk.\n***************************************************************************/\nbool AL::FWrite(PBLCK pblck, short bo, short osk)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pblck, 0);\n    Assert(kboCur == bo || kboOther == bo, \"bad bo\");\n    AssertOsk(osk);\n\n    ALF alf;\n\n    alf.bo = kboCur;\n    alf.osk = osk;\n    alf.cbEntry = _cbEntry;\n    alf.ivMac = _ivMac;\n    alf.cvFree = _cvFree;\n    if (kboOther == bo)\n    {\n        SwapBytesBom(&alf, kbomAlf);\n        Assert(alf.bo == bo, \"wrong bo\");\n        Assert(alf.osk == osk, \"osk not invariant under byte swapping\");\n    }\n    return _FWrite(pblck, &alf, size(alf), LwMul(_cbEntry, _ivMac), CbFromCbit(_ivMac));\n}\n\n/***************************************************************************\n    Read allocated list data from the block.\n***************************************************************************/\nbool AL::_FRead(PBLCK pblck, short *pbo, short *posk)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(pbo);\n    AssertNilOrVarMem(posk);\n\n    ALF alf;\n    long cbT;\n    long cb;\n    bool fRet = fFalse;\n\n    if (!pblck->FUnpackData())\n        goto LFail;\n\n    cb = pblck->Cb();\n    if (cb < size(alf))\n        goto LBug;\n\n    if (!pblck->FReadRgb(&alf, size(alf), 0))\n        goto LFail;\n\n    if (pbo != pvNil)\n        *pbo = alf.bo;\n    if (posk != pvNil)\n        *posk = alf.osk;\n\n    if (alf.bo == kboOther)\n        SwapBytesBom(&alf, kbomAlf);\n\n    cb -= size(alf);\n    cbT = alf.cbEntry * alf.ivMac;\n    if (alf.bo != kboCur || alf.cbEntry <= 0 || alf.ivMac < 0 || cb != cbT + CbFromCbit(alf.ivMac) ||\n        alf.cvFree >= LwMax(1, alf.ivMac))\n    {\n    LBug:\n        Warn(\"file corrupt or not an AL\");\n        goto LFail;\n    }\n\n    _cbEntry = alf.cbEntry;\n    _ivMac = alf.ivMac;\n    _cvFree = alf.cvFree;\n    fRet = _FReadData(pblck, cbT, cb - cbT, size(alf));\n\nLFail:\n    TrashVarIf(!fRet, pbo);\n    TrashVarIf(!fRet, posk);\n    return fRet;\n}\n\n/***************************************************************************\n    Delete all entries in the AL.\n***************************************************************************/\nvoid AL::DeleteAll(void)\n{\n    _ivMac = 0;\n    _cvFree = 0;\n}\n\n/***************************************************************************\n    Returns whether the given element of the allocated list is free.\n***************************************************************************/\nbool AL::FFree(long iv)\n{\n    AssertThis(0);\n    AssertIn(iv, 0, _ivMac);\n    return (iv < _ivMac) && !(*_Qgrfbit(iv) & Fbit(iv));\n}\n\n/***************************************************************************\n    Make sure there is room for at least cvAdd additional entries.  If\n    fgrpShrink is set, will try to shrink the list if it has more than\n    cvAdd available entries.\n***************************************************************************/\nbool AL::FEnsureSpace(long cvAdd, ulong grfgrp)\n{\n    AssertIn(cvAdd, 0, kcbMax);\n    AssertThis(0);\n\n    // limit the size of the list\n    cvAdd = LwMax(0, cvAdd - _cvFree);\n    if (cvAdd > kcbMax / _cbEntry - _ivMac)\n    {\n        Bug(\"who's trying to allocate a list this big?\");\n        return fFalse;\n    }\n\n    return _FEnsureSizes(LwMul(cvAdd + _ivMac, _cbEntry), CbFromCbit(cvAdd + _ivMac), grfgrp);\n}\n\n/***************************************************************************\n    Add an element to the list.\n***************************************************************************/\nbool AL::FAdd(void *pv, long *piv)\n{\n    AssertThis(fobjAssertFull);\n    AssertPvCb(pv, _cbEntry);\n    AssertNilOrVarMem(piv);\n\n    long iv;\n\n    if (_cvFree > 0)\n    {\n        /* find the first free one */\n        byte grfbit;\n        byte *qgrfbit, *qrgb;\n\n        for (qgrfbit = qrgb = _Qgrfbit(0); *qgrfbit == 0xFF; qgrfbit++)\n            ;\n        iv = (qgrfbit - qrgb) * 8;\n        for (grfbit = *qgrfbit; grfbit & 1; iv++, grfbit >>= 1)\n            ;\n        _cvFree--;\n    }\n    else\n    {\n        if (!FEnsureSpace(1, fgrpNil))\n        {\n            TrashVar(piv);\n            return fFalse;\n        }\n        iv = _ivMac++;\n    }\n    AssertIn(iv, 0, _ivMac);\n\n    /* mark the item used */\n    *_Qgrfbit(iv) |= Fbit(iv);\n    Assert(!FFree(iv), \"why is this marked free?\");\n    Put(iv, pv);\n    if (piv != pvNil)\n        *piv = iv;\n\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Delete element iv from an allocated list.\n***************************************************************************/\nvoid AL::Delete(long iv)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(iv, 0, _ivMac);\n    Assert(!FFree(iv), \"already free!\");\n\n    // trash the thing\n    TrashPvCb(QvGet(iv), _cbEntry);\n\n    *_Qgrfbit(iv) &= ~Fbit(iv);\n    _cvFree++;\n\n    if (iv != _ivMac - 1)\n    {\n        AssertThis(fobjAssertFull);\n        return;\n    }\n\n    // the last element was deleted, find the new _ivMac\n    if (_ivMac <= _cvFree)\n    {\n        // none left, just nuke everything\n        _ivMac = _cvFree = 0;\n    }\n    else\n    {\n        // find the new _ivMac\n        byte fbit;\n        byte *qgrfbit = _Qgrfbit(iv);\n\n        while (iv >= 0)\n        {\n            fbit = Fbit(iv);\n            if ((*qgrfbit & ((fbit << 1) - 1)) == 0) // check all bits from fbit on down\n            {\n                iv = (iv & ~0x0007L) - 1;\n                qgrfbit--;\n            }\n            else if (!(*qgrfbit & fbit)) // check for the ith bit\n                iv--;\n            else\n                break;\n        }\n        iv++;\n        Assert(_cvFree >= _ivMac - iv, \"everything is free!?\");\n        _cvFree -= _ivMac - iv;\n        _ivMac = iv;\n    }\n    AssertThis(fobjAssertFull);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Check the validity of an allocated list.\n***************************************************************************/\nvoid AL::AssertValid(ulong grfobj)\n{\n    long cT, iv;\n\n    AL_PAR::AssertValid(0);\n    Assert(_Cb2() >= CbFromCbit(_ivMac), \"flag area too small\");\n    if (grfobj & fobjAssertFull)\n    {\n        for (cT = 0, iv = _ivMac; iv--;)\n        {\n            if ((*_Qgrfbit(iv) & Fbit(iv)) == 0)\n                cT++;\n        }\n        Assert(cT == _cvFree, \"_cvFree is wrong\");\n    }\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for GGB class.\n***************************************************************************/\nGGB::GGB(long cbFixed, bool fAllowFree)\n{\n    AssertIn(cbFixed, 0, kcbMax);\n    _clocFree = fAllowFree ? 0 : cvNil;\n    _cbFixed = cbFixed;\n\n    // use some reasonable values for _cbMinGrow* - code can always set\n    // set these to something else\n    _cbMinGrow1 = LwMin(1024, 16 * cbFixed);\n    _cbMinGrow2 = 16 * size(LOC);\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    Duplicate the group.\n***************************************************************************/\nbool GGB::_FDup(PGGB pggbDst)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pggbDst, fobjAssertFull);\n    Assert(_cbFixed == pggbDst->_cbFixed, \"why do these have different sized fixed portions?\");\n\n    if (!GGB_PAR::_FDup(pggbDst, _bvMac, LwMul(_ivMac, size(LOC))))\n        return fFalse;\n\n    pggbDst->_bvMac = _bvMac;\n    pggbDst->_clocFree = _clocFree;\n    pggbDst->_cbFixed = _cbFixed;\n    AssertPo(pggbDst, fobjAssertFull);\n\n    return fTrue;\n}\n\n// group on file\nstruct GGF\n{\n    short bo;\n    short osk;\n    long ilocMac;\n    long bvMac;\n    long clocFree;\n    long cbFixed;\n};\nconst BOM kbomGgf = 0x5FF00000L;\n\n/***************************************************************************\n    Return the amount of space on file needed for the group.\n***************************************************************************/\nlong GGB::CbOnFile(void)\n{\n    AssertThis(fobjAssertFull);\n    return size(GGF) + LwMul(_ivMac, size(LOC)) + _bvMac;\n}\n\n/***************************************************************************\n    Write the group to disk.  The client must ensure that the data in the\n    GGB has the correct byte order (as specified by the bo).\n***************************************************************************/\nbool GGB::FWrite(PBLCK pblck, short bo, short osk)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pblck, 0);\n    Assert(kboCur == bo || kboOther == bo, \"bad bo\");\n    AssertOsk(osk);\n\n    GGF ggf;\n    bool fRet;\n\n    ggf.bo = kboCur;\n    ggf.osk = osk;\n    ggf.ilocMac = _ivMac;\n    ggf.bvMac = _bvMac;\n    ggf.clocFree = _clocFree;\n    ggf.cbFixed = _cbFixed;\n    AssertBomRglw(kbomLoc, size(LOC));\n    if (kboOther == bo)\n    {\n        // swap the stuff\n        SwapBytesBom(&ggf, kbomGgf);\n        Assert(ggf.bo == bo, \"wrong bo\");\n        Assert(ggf.osk == osk, \"osk not invariant under byte swapping\");\n        SwapBytesRglw(_Qb2(0), LwMulDiv(_ivMac, size(LOC), size(long)));\n    }\n    fRet = _FWrite(pblck, &ggf, size(ggf), _bvMac, LwMul(_ivMac, size(LOC)));\n    if (kboOther == bo)\n    {\n        // swap the rgloc back\n        SwapBytesRglw(_Qb2(0), LwMulDiv(_ivMac, size(LOC), size(long)));\n    }\n    return fRet;\n}\n\n/***************************************************************************\n    Read group data from disk.\n***************************************************************************/\nbool GGB::_FRead(PBLCK pblck, short *pbo, short *posk)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(pbo);\n    AssertNilOrVarMem(posk);\n\n    GGF ggf;\n    long cbT;\n    short bo;\n    long cb;\n    bool fRet = fFalse;\n\n    if (!pblck->FUnpackData())\n        goto LFail;\n\n    cb = pblck->Cb();\n    if (cb < size(ggf))\n        goto LBug;\n\n    if (!pblck->FReadRgb(&ggf, size(ggf), 0))\n        goto LFail;\n\n    if (pbo != pvNil)\n        *pbo = ggf.bo;\n    if (posk != pvNil)\n        *posk = ggf.osk;\n\n    if ((bo = ggf.bo) == kboOther)\n        SwapBytesBom(&ggf, kbomGgf);\n\n    cb -= size(ggf);\n    cbT = ggf.ilocMac * size(LOC);\n    if (ggf.bo != kboCur || ggf.bvMac < 0 || ggf.ilocMac < 0 || cb != cbT + ggf.bvMac || ggf.cbFixed < 0 ||\n        ggf.cbFixed >= kcbMax || (ggf.clocFree == cvNil) != (_clocFree == cvNil) ||\n        ggf.clocFree != cvNil && (ggf.clocFree < 0 || ggf.clocFree >= ggf.ilocMac))\n    {\n    LBug:\n        Warn(\"file corrupt or not a GGB\");\n        goto LFail;\n    }\n\n    _ivMac = ggf.ilocMac;\n    _bvMac = ggf.bvMac;\n    _clocFree = ggf.clocFree;\n    _cbFixed = ggf.cbFixed;\n    fRet = _FReadData(pblck, cb - cbT, cbT, size(ggf));\n    AssertBomRglw(kbomLoc, size(LOC));\n    if (bo == kboOther && fRet)\n    {\n        // adjust the byte order on the loc's.\n        SwapBytesRglw(_Qb2(0), LwMulDiv(_ivMac, size(LOC), size(long)));\n    }\n\nLFail:\n    TrashVarIf(!fRet, pbo);\n    TrashVarIf(!fRet, posk);\n    return fRet;\n}\n\n/***************************************************************************\n    Returns true iff the loc.bv is nil or iloc is out of range.\n***************************************************************************/\nbool GGB::FFree(long iv)\n{\n    AssertBaseThis(0);\n    AssertIn(iv, 0, kcbMax);\n    LOC *qloc;\n\n    if (!FIn(iv, 0, _ivMac))\n        return fTrue;\n    qloc = _Qloc(iv);\n    Assert(FIn(qloc->bv, 0, _bvMac) && FIn(qloc->cb, LwMax(_cbFixed, 1), _bvMac - qloc->bv + 1) ||\n               0 == qloc->cb && (0 == qloc->bv || bvNil == qloc->bv),\n           \"bad loc\");\n    return bvNil == qloc->bv;\n}\n\n/***************************************************************************\n    Ensures that there is room to add at least cvAdd new entries with\n    a total of cbAdd bytes (among the variable parts of the elements).\n    If there is more than enough room and fgrpShrink is passed, the GST\n    will shrink.\n***************************************************************************/\nbool GGB::FEnsureSpace(long cvAdd, long cbAdd, ulong grfgrp)\n{\n    AssertThis(0);\n    AssertIn(cvAdd, 0, kcbMax);\n    AssertIn(cbAdd, 0, kcbMax);\n\n    long clocAdd;\n\n    if (cvNil == _clocFree)\n        clocAdd = cvAdd;\n    else\n        clocAdd = LwMax(0, cvAdd - _clocFree);\n\n    // we waste at most (size(long) - 1) bytes per element\n    if (clocAdd > kcbMax / size(LOC) - _ivMac || cvAdd > (kcbMax / (_cbFixed + size(long) - 1)) - _bvMac ||\n        cbAdd > kcbMax - _bvMac - cvAdd * (_cbFixed + size(long) - 1))\n    {\n        Bug(\"why is this group growing so large?\");\n        return fFalse;\n    }\n\n    return _FEnsureSizes(_bvMac + cbAdd + LwMul(cvAdd, _cbFixed + size(long) - 1), LwMul(_ivMac + clocAdd, size(LOC)),\n                         grfgrp);\n}\n\n/***************************************************************************\n    Set the minimum that a GGB should grow by.\n***************************************************************************/\nvoid GGB::SetMinGrow(long cvAdd, long cbAdd)\n{\n    AssertThis(0);\n    AssertIn(cvAdd, 0, kcbMax);\n    AssertIn(cbAdd, 0, kcbMax);\n\n    _cbMinGrow1 = CbRoundToLong(cbAdd + LwMul(cvAdd, _cbFixed + size(long) - 1));\n    _cbMinGrow2 = LwMul(cvAdd, size(LOC));\n}\n\n/***************************************************************************\n    Private api to remove a block of bytes.\n***************************************************************************/\nvoid GGB::_RemoveRgb(long bv, long cb)\n{\n    AssertBaseThis(0);\n    AssertIn(bv, 0, _bvMac);\n    AssertIn(cb, 1, _bvMac - bv + 1);\n    Assert(cb == CbRoundToLong(cb), \"cb not divisible by size(long)\");\n    byte *qb;\n\n    if (bv + cb < _bvMac)\n    {\n        qb = _Qb1(bv);\n        BltPb(qb + cb, qb, _bvMac - bv - cb);\n        _AdjustLocs(bv + 1, _bvMac + 1, -cb);\n    }\n    else\n        _bvMac -= cb;\n    TrashPvCb(_Qb1(_bvMac), cb);\n}\n\n/***************************************************************************\n    Private api to remove a block of bytes.\n***************************************************************************/\nvoid GGB::_AdjustLocs(long bvMin, long bvLim, long dcb)\n{\n    AssertBaseThis(0);\n    AssertIn(bvMin, 0, _bvMac + 2);\n    AssertIn(bvLim, bvMin, _bvMac + 2);\n    AssertIn(dcb, -_bvMac, kcbMax);\n    Assert((dcb % size(long)) == 0, \"dcb not divisible by size(long)\");\n    long cloc;\n    LOC *qloc;\n\n    if (FIn(_bvMac, bvMin, bvLim))\n        _bvMac += dcb;\n    for (qloc = _Qloc(0), cloc = _ivMac; cloc > 0; cloc--, qloc++)\n    {\n        if (bvNil == qloc->bv)\n            continue;\n        if (FIn(qloc->bv, bvMin, bvLim))\n            qloc->bv += dcb;\n        AssertIn(qloc->bv, 0, _bvMac);\n    }\n}\n\n/***************************************************************************\n    Returns a volative pointer the the fixed sized data in the element.\n    If pcbVar is not nil, fills *pcbVar with the size of the variable part.\n***************************************************************************/\nvoid *GGB::QvFixedGet(long iv, long *pcbVar)\n{\n    AssertThis(0);\n    AssertIn(_cbFixed, 1, kcbMax);\n    AssertIn(iv, 0, _ivMac);\n    Assert(!FFree(iv), \"element free!\");\n    AssertNilOrVarMem(pcbVar);\n\n    LOC loc;\n\n    loc = *_Qloc(iv);\n    if (pcbVar != pvNil)\n        *pcbVar = loc.cb - _cbFixed;\n    AssertIn(loc.cb, _cbFixed, _bvMac - loc.bv + 1);\n    return _Qb1(loc.bv);\n}\n\n/***************************************************************************\n    Lock the data and return a pointer to the fixed sized data.\n***************************************************************************/\nvoid *GGB::PvFixedLock(long iv, long *pcbVar)\n{\n    AssertThis(0);\n    Lock();\n    return QvFixedGet(iv, pcbVar);\n}\n\n/***************************************************************************\n    Get the fixed sized data for the element.\n***************************************************************************/\nvoid GGB::GetFixed(long iv, void *pv)\n{\n    AssertThis(0);\n    AssertIn(_cbFixed, 1, kcbMax);\n    AssertIn(iv, 0, _ivMac);\n    Assert(!FFree(iv), \"element free!\");\n    AssertPvCb(pv, _cbFixed);\n\n    LOC loc;\n\n    loc = *_Qloc(iv);\n    AssertIn(loc.cb, _cbFixed, _bvMac - loc.bv + 1);\n    CopyPb(_Qb1(loc.bv), pv, _cbFixed);\n}\n\n/***************************************************************************\n    Put the fixed sized data for the element.\n***************************************************************************/\nvoid GGB::PutFixed(long iv, void *pv)\n{\n    AssertThis(0);\n    AssertIn(_cbFixed, 1, kcbMax);\n    AssertIn(iv, 0, _ivMac);\n    Assert(!FFree(iv), \"element free!\");\n    AssertPvCb(pv, _cbFixed);\n\n    LOC loc;\n\n    loc = *_Qloc(iv);\n    AssertIn(loc.cb, _cbFixed, _bvMac - loc.bv + 1);\n    CopyPb(pv, _Qb1(loc.bv), _cbFixed);\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Return the length of the variable part of the iv'th element.\n***************************************************************************/\nlong GGB::Cb(long iv)\n{\n    AssertThis(0);\n    AssertIn(iv, 0, _ivMac);\n    Assert(!FFree(iv), \"element free!\");\n\n    return _Qloc(iv)->cb - _cbFixed;\n}\n\n/***************************************************************************\n    Return a volatile pointer to the variable part of the iv'th element.\n    If pcb is not nil, sets *pcb to the length of the (variable part of the)\n    item.\n***************************************************************************/\nvoid *GGB::QvGet(long iv, long *pcb)\n{\n    AssertThis(0);\n    AssertIn(iv, 0, _ivMac);\n    Assert(!FFree(iv), \"element free!\");\n    AssertNilOrVarMem(pcb);\n\n    LOC loc;\n\n    loc = *_Qloc(iv);\n    if (pcb != pvNil)\n        *pcb = loc.cb - _cbFixed;\n    AssertIn(loc.cb, _cbFixed, _bvMac - loc.bv + 1);\n    return _Qb1(loc.bv + _cbFixed);\n}\n\n/***************************************************************************\n    Lock the data and return a pointer to the (variable part of the) iv'th\n    item.  If pcb is not nil, sets *pcb to the length of the (variable part\n    of the) item.\n***************************************************************************/\nvoid *GGB::PvLock(long iv, long *pcb)\n{\n    AssertThis(0);\n    Lock();\n    return QvGet(iv, pcb);\n}\n\n/***************************************************************************\n    Copy the (variable part of the) iv'th element to pv.\n***************************************************************************/\nvoid GGB::Get(long iv, void *pv)\n{\n    AssertThis(0);\n    AssertIn(iv, 0, _ivMac);\n    Assert(!FFree(iv), \"element free!\");\n\n    LOC loc;\n\n    loc = *_Qloc(iv);\n    AssertPvCb(pv, loc.cb - _cbFixed);\n    CopyPb(_Qb1(loc.bv + _cbFixed), pv, loc.cb - _cbFixed);\n}\n\n/***************************************************************************\n    Copy *pv to the (variable part of the) iv'th element.\n***************************************************************************/\nvoid GGB::Put(long iv, void *pv)\n{\n    AssertThis(0);\n    AssertIn(iv, 0, _ivMac);\n    Assert(!FFree(iv), \"element free!\");\n\n    LOC loc;\n\n    loc = *_Qloc(iv);\n    AssertPvCb(pv, loc.cb - _cbFixed);\n    CopyPb(pv, _Qb1(loc.bv + _cbFixed), loc.cb - _cbFixed);\n}\n\n/***************************************************************************\n    Replace the (variable part of the) iv'th element with the stuff in pv\n    (cb bytes worth).  pv may be nil (effectively resizing the block).\n***************************************************************************/\nbool GGB::FPut(long iv, long cb, void *pv)\n{\n    AssertThis(0);\n    AssertIn(iv, 0, _ivMac);\n    Assert(!FFree(iv), \"element free!\");\n    AssertIn(cb, 0, kcbMax);\n\n    long cbCur = Cb(iv);\n\n    if (cb > cbCur)\n    {\n        if (!FInsertRgb(iv, cbCur, cb - cbCur, pvNil))\n            return fFalse;\n    }\n    else if (cb < cbCur)\n        DeleteRgb(iv, cb, cbCur - cb);\n\n    if (pv != pvNil && cb > 0)\n    {\n        AssertPvCb(pv, cb);\n        CopyPb(pv, QvGet(iv), cb);\n    }\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Get a portion of the element.\n***************************************************************************/\nvoid GGB::GetRgb(long iv, long bv, long cb, void *pv)\n{\n    AssertThis(0);\n    AssertIn(iv, 0, _ivMac);\n    Assert(!FFree(iv), \"element free!\");\n    AssertPvCb(pv, cb);\n\n    LOC loc;\n\n    bv += _cbFixed;\n    loc = *_Qloc(iv);\n    AssertIn(bv, _cbFixed, loc.cb);\n    AssertIn(cb, 1, loc.cb - bv + 1);\n\n    CopyPb(_Qb1(loc.bv + bv), pv, cb);\n}\n\n/***************************************************************************\n    Put a portion of the element.\n***************************************************************************/\nvoid GGB::PutRgb(long iv, long bv, long cb, void *pv)\n{\n    AssertThis(0);\n    AssertIn(iv, 0, _ivMac);\n    Assert(!FFree(iv), \"element free!\");\n    AssertPvCb(pv, cb);\n\n    LOC loc;\n\n    bv += _cbFixed;\n    loc = *_Qloc(iv);\n    AssertIn(bv, _cbFixed, loc.cb);\n    AssertIn(cb, 1, loc.cb - bv + 1);\n\n    CopyPb(pv, _Qb1(loc.bv + bv), cb);\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Remove a portion of element iv (can't be all of it).\n***************************************************************************/\nvoid GGB::DeleteRgb(long iv, long bv, long cb)\n{\n    AssertThis(0);\n    AssertIn(iv, 0, _ivMac);\n    Assert(!FFree(iv), \"element free!\");\n\n    LOC loc;\n    LOC *qloc;\n    long cbDel;\n    byte *qb;\n\n    bv += _cbFixed;\n    loc = *_Qloc(iv);\n    AssertIn(bv, _cbFixed, loc.cb);\n    AssertIn(cb, 1, loc.cb - bv + 1);\n\n    if (bv + cb < loc.cb)\n    {\n        // shift usable stuff down\n        qb = _Qb1(loc.bv + bv);\n        BltPb(qb + cb, qb, loc.cb - bv - cb);\n    }\n\n    // determine the number of bytes to nuke\n    cbDel = CbRoundToLong(loc.cb) - CbRoundToLong(loc.cb - cb);\n    if (cbDel > 0)\n        _RemoveRgb(loc.bv + loc.cb - cb, cbDel);\n\n    qloc = _Qloc(iv);\n    if (0 == (qloc->cb -= cb))\n    {\n        Assert(_cbFixed == 0, \"oops!\");\n        qloc->bv = 0; // empty element\n    }\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Insert cb new bytes at location bv into the iv'th element.  pv may\n    be nil.\n***************************************************************************/\nbool GGB::FInsertRgb(long iv, long bv, long cb, void *pv)\n{\n    AssertThis(0);\n    AssertIn(iv, 0, _ivMac);\n    Assert(!FFree(iv), \"element free!\");\n    AssertIn(cb, 1, kcbMax);\n\n    LOC loc;\n    long cbAdd;\n    byte *qb;\n\n    bv += _cbFixed;\n    loc = *_Qloc(iv);\n    AssertIn(bv, _cbFixed, loc.cb + 1);\n    if (loc.cb == 0)\n        loc.bv = _bvMac;\n\n    // need to add this many bytes to _bvMac\n    cbAdd = CbRoundToLong(loc.cb + cb) - CbRoundToLong(loc.cb);\n    if (cbAdd > 0)\n    {\n        long bvT;\n\n        if (!_FEnsureSizes(_bvMac + cbAdd, LwMul(_ivMac, size(LOC)), fgrpNil))\n            return fFalse;\n\n        // move later entries back\n        bvT = loc.bv + CbRoundToLong(loc.cb);\n        if (bvT < _bvMac)\n        {\n            qb = _Qb1(bvT);\n            BltPb(qb, qb + cbAdd, _bvMac - bvT);\n            _AdjustLocs(loc.bv + 1, _bvMac + 1, cbAdd);\n        }\n        else\n            _bvMac += cbAdd;\n    }\n\n    // move data within this element\n    if (bv < loc.cb)\n    {\n        qb = _Qb1(loc.bv + bv);\n        BltPb(qb, qb + cb, loc.cb - bv);\n    }\n\n    if (pv != pvNil)\n    {\n        AssertPvCb(pv, cb);\n        CopyPb(pv, _Qb1(loc.bv + bv), cb);\n    }\n    else\n        TrashPvCb(_Qb1(loc.bv + bv), cb);\n\n    // copy the entire loc in case loc.bv got set to _bvMac (if the item was empty)\n    loc.cb += cb;\n    *_Qloc(iv) = loc;\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Move cb bytes from position bvSrc in ivSrc to position bvDst in ivDst.\n    This can fail only because of the padding used for each entry (at most\n    size(long) additional bytes will need to be allocated).\n***************************************************************************/\nbool GGB::FMoveRgb(long ivSrc, long bvSrc, long ivDst, long bvDst, long cb)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(ivSrc, 0, _ivMac);\n    Assert(!FFree(ivSrc), \"element free!\");\n    AssertIn(ivDst, 0, _ivMac);\n    Assert(!FFree(ivDst), \"element free!\");\n    AssertIn(bvSrc, 0, Cb(ivSrc) + 1);\n    AssertIn(cb, 0, Cb(ivSrc) + 1 - bvSrc);\n    AssertIn(bvDst, 0, Cb(ivDst) + 1);\n\n    LOC *qloc;\n    LOC locSrc, locDst;\n    long cbMove, cbT;\n\n    locSrc = *_Qloc(ivSrc);\n    locDst = *_Qloc(ivDst);\n\n    // determine the number of bytes to resize by\n    cbT = (CbRoundToLong(locDst.cb + cb) - CbRoundToLong(locDst.cb)) -\n          (CbRoundToLong(locSrc.cb) - CbRoundToLong(locSrc.cb - cb));\n    if (cbT > 0)\n    {\n        Assert(cb % size(long) != 0, \"why are we here when cb is a multiple of size(long)?\");\n        if (!_FEnsureSizes(_bvMac + cbT, LwMul(_ivMac, size(LOC)), fgrpNil))\n            return fFalse;\n    }\n\n    // move most of the bytes\n    cbMove = LwRoundToward(cb, size(long));\n    AssertIn(cb, cbMove, cbMove + size(long));\n    if (cbMove > 0)\n    {\n        long bv1 = locSrc.bv + bvSrc + _cbFixed;\n        long bv2 = locDst.bv + bvDst + _cbFixed;\n\n        qloc = _Qloc(ivSrc);\n        if (0 == (qloc->cb -= cbMove))\n        {\n            Assert(_cbFixed == 0, \"what?\");\n            qloc->bv = 0;\n        }\n        qloc = _Qloc(ivDst);\n        if (qloc->cb == 0)\n        {\n            Assert(_cbFixed == 0, \"what?\");\n            bv2 = qloc->bv = _bvMac;\n        }\n        qloc->cb += cbMove;\n        if (bv1 < bv2)\n        {\n            SwapBlocks(_Qb1(bv1), cbMove, bv2 - bv1 - cbMove);\n            _AdjustLocs(locSrc.bv + 1, locDst.bv + 1, -cbMove);\n        }\n        else\n        {\n            SwapBlocks(_Qb1(bv2), bv1 - bv2, cbMove);\n            _AdjustLocs(locDst.bv + 1, locSrc.bv + 1, cbMove);\n        }\n        AssertThis(fobjAssertFull);\n    }\n\n    // move the last few bytes\n    if (cb > cbMove)\n    {\n        byte rgb[size(long)];\n\n        GetRgb(ivSrc, bvSrc, cb - cbMove, rgb);\n        DeleteRgb(ivSrc, bvSrc, cb - cbMove);\n        AssertDo(FInsertRgb(ivDst, bvDst + cbMove, cb - cbMove, rgb), \"logic error caused failure\");\n    }\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Append the variable data of ivSrc to ivDst, and delete ivSrc.\n\n    NOTE: this is kind of goofy.  The only time FMoveRgb could possibly\n    fail if we just do the naive thing (FMoveRgb the entire var data,\n    then delete the source element) is if _cbFixed is not a multiple\n    of size(long).\n***************************************************************************/\nvoid GGB::Merge(long ivSrc, long ivDst)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(ivSrc, 0, _ivMac);\n    Assert(!FFree(ivSrc), \"element free!\");\n    AssertIn(ivDst, 0, _ivMac);\n    Assert(!FFree(ivDst), \"element free!\");\n    Assert(ivSrc != ivDst, \"can't merge an element with itself!\");\n    long cb, cbMove, bv;\n    byte rgb[size(long)];\n\n    cb = Cb(ivSrc);\n    cbMove = LwRoundToward(cb, size(long));\n    if (cb > cbMove)\n        GetRgb(ivSrc, cbMove, cb - cbMove, rgb); // get the tail bytes\n\n    bv = Cb(ivDst);\n    if (cbMove > 0)\n    {\n        // move the main section\n        AssertDo(FMoveRgb(ivSrc, 0, ivDst, bv, cbMove), \"why did FMoveRgb fail?\");\n    }\n\n    // delete the source item\n    Delete(ivSrc);\n    if (ivSrc < ivDst)\n        ivDst--;\n\n    if (cb > cbMove)\n    {\n        // insert the remaining few bytes - there should already be room\n        // for these\n        AssertDo(FInsertRgb(ivDst, bv + cbMove, cb - cbMove, rgb), \"why did FInsertRgb fail?\");\n    }\n    AssertThis(fobjAssertFull);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Validate a group.\n***************************************************************************/\nvoid GGB::AssertValid(ulong grfobj)\n{\n    LOC loc;\n    long iloc;\n    long cbTot, clocFree;\n\n    GGB_PAR::AssertValid(grfobj);\n    AssertIn(_ivMac, 0, kcbMax);\n    AssertIn(_bvMac, 0, kcbMax);\n    Assert(_Cb1() >= _bvMac, \"group area too small\");\n    Assert(_Cb2() >= LwMul(_ivMac, size(LOC)), \"rgloc area too small\");\n    Assert(_clocFree == cvNil || _clocFree == 0 || _clocFree > 0 && _clocFree < _ivMac, \"_clocFree is wrong\");\n    AssertIn(_cbFixed, 0, kcbMax);\n\n    if (grfobj & fobjAssertFull)\n    {\n        for (clocFree = cbTot = iloc = 0; iloc < _ivMac; iloc++)\n        {\n            loc = *_Qloc(iloc);\n            if (bvNil == loc.bv)\n            {\n                Assert(iloc < _ivMac - 1, \"Last element free\");\n                Assert(loc.cb == 0, \"bad cb in free loc\");\n                clocFree++;\n                continue;\n            }\n            AssertIn(loc.cb, _cbFixed, _bvMac + 1);\n            AssertIn(loc.bv, 0, _bvMac);\n            Assert(loc.cb > 0 || loc.bv == 0, \"zero sized item doesn't have zero bv\");\n            loc.cb = CbRoundToLong(loc.cb);\n            Assert(loc.bv + loc.cb <= _bvMac, \"loc extends past _bvMac\");\n            cbTot += loc.cb;\n        }\n        Assert(cbTot == _bvMac, \"group wrong size\");\n        Assert(clocFree == _clocFree || _clocFree == cvNil && clocFree == 0, \"bad _clocFree\");\n    }\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Allocate a new group with room for at least cvInit elements containing\n    at least cbInit bytes worth of (total) space.\n***************************************************************************/\nPGG GG::PggNew(long cbFixed, long cvInit, long cbInit)\n{\n    AssertIn(cbFixed, 0, kcbMax);\n    AssertIn(cvInit, 0, kcbMax);\n    AssertIn(cbInit, 0, kcbMax);\n\n    PGG pgg;\n\n    if ((pgg = NewObj GG(cbFixed)) == pvNil)\n        return pvNil;\n    if ((cvInit > 0 || cbInit > 0) && !pgg->FEnsureSpace(cvInit, cbInit, fgrpNil))\n    {\n        ReleasePpo(&pgg);\n        return pvNil;\n    }\n    AssertPo(pgg, fobjAssertFull);\n    return pgg;\n}\n\n/***************************************************************************\n    Read a group from a block and return it.\n***************************************************************************/\nPGG GG::PggRead(PBLCK pblck, short *pbo, short *posk)\n{\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(pbo);\n    AssertNilOrVarMem(posk);\n\n    PGG pgg;\n\n    if ((pgg = NewObj GG(0)) == pvNil)\n        goto LFail;\n    if (!pgg->_FRead(pblck, pbo, posk))\n    {\n        ReleasePpo(&pgg);\n    LFail:\n        TrashVar(pbo);\n        TrashVar(posk);\n        return pvNil;\n    }\n    AssertPo(pgg, fobjAssertFull);\n    return pgg;\n}\n\n/***************************************************************************\n    Read a group from file and return it.\n***************************************************************************/\nPGG GG::PggRead(PFIL pfil, FP fp, long cb, short *pbo, short *posk)\n{\n    BLCK blck(pfil, fp, cb);\n    return PggRead(&blck, pbo, posk);\n}\n\n/***************************************************************************\n    Duplicate this GG.\n***************************************************************************/\nPGG GG::PggDup(void)\n{\n    AssertThis(0);\n    PGG pgg;\n\n    if (pvNil == (pgg = PggNew(_cbFixed)))\n        return pvNil;\n\n    if (!_FDup(pgg))\n        ReleasePpo(&pgg);\n\n    AssertNilOrPo(pgg, 0);\n    return pgg;\n}\n\n/***************************************************************************\n    Insert an element into the group.\n***************************************************************************/\nbool GG::FInsert(long iv, long cb, void *pv, void *pvFixed)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(cb, 0, kcbMax);\n    AssertIn(iv, 0, _ivMac + 1);\n\n    byte *qb;\n    LOC loc;\n    LOC *qloc;\n\n    cb += _cbFixed;\n    loc.cb = cb;\n    loc.bv = cb == 0 ? 0 : _bvMac;\n    cb = CbRoundToLong(cb);\n\n    if (!_FEnsureSizes(_bvMac + cb, LwMul(_ivMac + 1, size(LOC)), fgrpNil))\n        return fFalse;\n\n    // make room for the entry\n    qloc = _Qloc(iv);\n    if (iv < _ivMac)\n        BltPb(qloc, qloc + 1, LwMul(_ivMac - iv, size(LOC)));\n    *qloc = loc;\n\n    if (pvNil != pv && cb > 0)\n    {\n        AssertPvCb(pv, cb - _cbFixed);\n        qb = _Qb1(loc.bv);\n        TrashPvCb(qb, _cbFixed);\n        CopyPb(pv, qb + _cbFixed, loc.cb - _cbFixed);\n        TrashPvCb(qb + loc.cb, cb - loc.cb);\n    }\n    else\n        TrashPvCb(_Qb1(loc.bv), cb);\n\n    if (pvNil != pvFixed)\n    {\n        Assert(_cbFixed > 0, \"why is pvFixed not nil?\");\n        AssertPvCb(pvFixed, _cbFixed);\n        qb = _Qb1(loc.bv);\n        CopyPb(pvFixed, qb, _cbFixed);\n    }\n\n    _bvMac += cb;\n    _ivMac++;\n\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Takes cv entries from pggSrc at ivSrc and inserts (a copy of) them into\n    this GG at ivDst.\n***************************************************************************/\nbool GG::FCopyEntries(PGG pggSrc, long ivSrc, long ivDst, long cv)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pggSrc, 0);\n    AssertIn(cv, 0, pggSrc->IvMac() + 1);\n    AssertIn(ivSrc, 0, pggSrc->IvMac() + 1 - cv);\n    AssertIn(ivDst, 0, _ivMac + 1);\n    long cb, cbFixed, iv, ivLim;\n    LOC loc;\n    byte *pb;\n\n    if ((cbFixed = pggSrc->CbFixed()) != CbFixed())\n    {\n        Bug(\"Groups have different fixed sizes\");\n        return fFalse;\n    }\n    if (pggSrc == this)\n    {\n        Bug(\"Cant insert from same group\");\n        return fFalse;\n    }\n\n    cb = 0;\n    for (iv = ivSrc, ivLim = ivSrc + cv; iv < ivLim; iv++)\n        cb += pggSrc->Cb(iv);\n\n    if (!FEnsureSpace(cv, cb))\n        return fFalse;\n\n    pggSrc->Lock();\n    for (iv = ivSrc; iv < ivLim; iv++)\n    {\n        loc = *pggSrc->_Qloc(iv);\n        pb = pggSrc->_Qb1(loc.bv);\n        AssertDo(FInsert(ivDst + iv - ivSrc, loc.cb - cbFixed, pb + cbFixed, cbFixed == 0 ? pvNil : pb), 0);\n    }\n    pggSrc->Unlock();\n\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Append an element to the group.\n***************************************************************************/\nbool GG::FAdd(long cb, long *piv, void *pv, void *pvFixed)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(piv);\n\n    if (piv != pvNil)\n        *piv = _ivMac;\n    if (!FInsert(_ivMac, cb, pv, pvFixed))\n    {\n        TrashVar(piv);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Delete an element from the group.\n***************************************************************************/\nvoid GG::Delete(long iv)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(iv, 0, _ivMac);\n    LOC *qloc;\n    LOC loc;\n\n    qloc = _Qloc(iv);\n    loc = *qloc;\n    if (iv < --_ivMac)\n        BltPb(qloc + 1, qloc, LwMul(_ivMac - iv, size(LOC)));\n    TrashPvCb(_Qloc(_ivMac), size(LOC));\n    if (loc.cb > 0)\n        _RemoveRgb(loc.bv, CbRoundToLong(loc.cb));\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    Move the entry at ivSrc to be immediately before the element that is\n    currently at ivTarget.  If ivTarget > ivSrc, the entry actually ends\n    up at (ivTarget - 1) and the entry at ivTarget doesn't move.  If\n    ivTarget < ivSrc, the entry ends up at ivTarget and the entry at\n    ivTarget moves to (ivTarget + 1).  Everything in between is shifted\n    appropriately.  ivTarget is allowed to be equal to IvMac().\n***************************************************************************/\nvoid GG::Move(long ivSrc, long ivTarget)\n{\n    AssertThis(0);\n    AssertIn(ivSrc, 0, _ivMac);\n    AssertIn(ivTarget, 0, _ivMac + 1);\n\n    MoveElement(_Qloc(0), size(LOC), ivSrc, ivTarget);\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Swap two elements in a GG.\n***************************************************************************/\nvoid GG::Swap(long iv1, long iv2)\n{\n    AssertThis(0);\n    AssertIn(iv1, 0, _ivMac);\n    AssertIn(iv2, 0, _ivMac);\n\n    SwapPb(_Qloc(iv1), _Qloc(iv2), size(LOC));\n    AssertThis(0);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Validate a group.\n***************************************************************************/\nvoid GG::AssertValid(ulong grfobj)\n{\n    GG_PAR::AssertValid(grfobj);\n    AssertVar(_clocFree == cvNil, \"bad _clocFree in GG\", &_clocFree);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Allocate a new allocated group with romm for at least cvInit elements\n    containing at least cbInit bytes worth of (total) space.\n***************************************************************************/\nPAG AG::PagNew(long cbFixed, long cvInit, long cbInit)\n{\n    AssertIn(cbFixed, 0, kcbMax);\n    AssertIn(cvInit, 0, kcbMax);\n    AssertIn(cbInit, 0, kcbMax);\n\n    PAG pag;\n\n    if ((pag = NewObj AG(cbFixed)) == pvNil)\n        return pvNil;\n    if ((cvInit > 0 || cbInit > 0) && !pag->FEnsureSpace(cvInit, cbInit, fgrpNil))\n    {\n        ReleasePpo(&pag);\n        return pvNil;\n    }\n    AssertPo(pag, fobjAssertFull);\n    return pag;\n}\n\n/***************************************************************************\n    Read an allocated group from a block and return it.\n***************************************************************************/\nPAG AG::PagRead(PBLCK pblck, short *pbo, short *posk)\n{\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(pbo);\n    AssertNilOrVarMem(posk);\n\n    PAG pag;\n\n    if ((pag = NewObj AG(0)) == pvNil)\n        goto LFail;\n    if (!pag->_FRead(pblck, pbo, posk))\n    {\n        ReleasePpo(&pag);\n    LFail:\n        TrashVar(pbo);\n        TrashVar(posk);\n        return pvNil;\n    }\n    AssertPo(pag, fobjAssertFull);\n    return pag;\n}\n\n/***************************************************************************\n    Read an allocated group from file and return it.\n***************************************************************************/\nPAG AG::PagRead(PFIL pfil, FP fp, long cb, short *pbo, short *posk)\n{\n    BLCK blck(pfil, fp, cb);\n    return PagRead(&blck, pbo, posk);\n}\n\n/***************************************************************************\n    Duplicate this AG.\n***************************************************************************/\nPAG AG::PagDup(void)\n{\n    AssertThis(0);\n    PAG pag;\n\n    if (pvNil == (pag = PagNew(_cbFixed)))\n        return pvNil;\n\n    if (!_FDup(pag))\n        ReleasePpo(&pag);\n\n    AssertNilOrPo(pag, 0);\n    return pag;\n}\n\n/***************************************************************************\n    Add an element to the allocated group.\n***************************************************************************/\nbool AG::FAdd(long cb, long *piv, void *pv, void *pvFixed)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(cb, 0, kcbMax);\n    AssertNilOrVarMem(piv);\n\n    long iloc;\n    byte *qb;\n    LOC loc;\n    LOC *qloc;\n\n    cb += _cbFixed;\n    AssertIn(cb, 0, kcbMax);\n\n    if (0 < _clocFree)\n    {\n        // find the first free element\n        qloc = _Qloc(0);\n        for (iloc = 0; iloc < _ivMac; iloc++, qloc++)\n        {\n            if (qloc->bv == bvNil)\n                break;\n        }\n        Assert(iloc < _ivMac - 1, \"_clocFree wrong\");\n        _clocFree--;\n    }\n    else\n        iloc = _ivMac;\n    if (iloc == _ivMac)\n        _ivMac++;\n\n    loc.cb = cb;\n    loc.bv = cb == 0 ? 0 : _bvMac;\n    cb = CbRoundToLong(cb);\n\n    if (!_FEnsureSizes(_bvMac + cb, LwMul(_ivMac, size(LOC)), fgrpNil))\n    {\n        if (iloc == _ivMac - 1)\n            _ivMac--;\n        else\n            _clocFree++;\n        TrashVar(piv);\n        return fFalse;\n    }\n\n    // fill in the loc and copy the data\n    *_Qloc(iloc) = loc;\n    if (pv != pvNil)\n    {\n        AssertPvCb(pv, cb - _cbFixed);\n        qb = _Qb1(loc.bv);\n        TrashPvCb(qb, _cbFixed);\n        CopyPb(pv, qb + _cbFixed, loc.cb - _cbFixed);\n        TrashPvCb(qb + loc.cb, cb - loc.cb);\n    }\n    else\n        TrashPvCb(_Qb1(loc.bv), cb);\n\n    if (pvNil != pvFixed)\n    {\n        Assert(_cbFixed > 0, \"why is pvFixed not nil?\");\n        AssertPvCb(pvFixed, _cbFixed);\n        qb = _Qb1(loc.bv);\n        CopyPb(pvFixed, qb, _cbFixed);\n    }\n\n    _bvMac += cb;\n    if (pvNil != piv)\n        *piv = iloc;\n\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Delete an element from the group.\n***************************************************************************/\nvoid AG::Delete(long iv)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(iv, 0, _ivMac);\n    Assert(!FFree(iv), \"entry already free!\");\n\n    LOC *qloc;\n    LOC loc;\n\n    qloc = _Qloc(iv);\n    loc = *qloc;\n\n    if (iv == _ivMac - 1)\n    {\n        // move _ivMac back past any free entries on the end\n        while (--_ivMac > 0 && (--qloc)->bv == bvNil)\n            _clocFree--;\n        TrashPvCb(_Qloc(_ivMac), LwMul(iv - _ivMac + 1, size(LOC)));\n    }\n    else\n    {\n        qloc->bv = bvNil;\n        qloc->cb = 0;\n        _clocFree++;\n    }\n    if (loc.cb > 0)\n        _RemoveRgb(loc.bv, CbRoundToLong(loc.cb));\n    AssertThis(fobjAssertFull);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Validate a group.\n***************************************************************************/\nvoid AG::AssertValid(ulong grfobj)\n{\n    AG_PAR::AssertValid(grfobj);\n    AssertIn(_clocFree, 0, LwMax(1, _ivMac));\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/groups.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Basic collection classes:\n        General List (GL), Allocated List (AL),\n        General Group (GG), Allocated Group (AG),\n        General String Table (GST), Allocated String Table (AST).\n\n        BASE ---> GRPB -+-> GLB -+-> GL\n                        |        +-> AL\n                        |\n                        +-> GGB -+-> GG\n                        |        +-> AG\n                        |\n                        +-> GSTB-+-> GST\n                                 +-> AST\n\n***************************************************************************/\n#ifndef GROUPS_H\n#define GROUPS_H\n\nenum\n{\n    fgrpNil = 0,\n    fgrpShrink = 1,\n};\n\n/****************************************\n    GRPB is a virtual class supporting\n    all group classes\n****************************************/\n#define GRPB_PAR BASE\n#define kclsGRPB 'GRPB'\nclass GRPB : public GRPB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  private:\n    long _cb1;\n    long _cb2;\n    HQ _hqData1;\n    HQ _hqData2;\n\n    bool _FEnsureHqCb(HQ *phq, long cb, long cbMinGrow, long *pcb);\n\n  protected:\n    long _cbMinGrow1;\n    long _cbMinGrow2;\n    long _ivMac;\n\n    byte *_Qb1(long ib)\n    {\n        return (byte *)QvFromHq(_hqData1) + ib;\n    }\n    byte *_Qb2(long ib)\n    {\n        return (byte *)QvFromHq(_hqData2) + ib;\n    }\n    long _Cb1(void)\n    {\n        return _cb1;\n    }\n    long _Cb2(void)\n    {\n        return _cb2;\n    }\n    bool _FEnsureSizes(long cbMin1, long cbMin2, ulong grfgrp);\n    bool _FWrite(PBLCK pblck, void *pv, long cb, long cb1, long cb2);\n    bool _FReadData(PBLCK pblck, long ib, long cb1, long cb2);\n    bool _FDup(PGRPB pgrpbDst, long cb1, long cb2);\n\n    GRPB(void)\n    {\n    }\n\n  public:\n    ~GRPB(void);\n\n    void Lock(void)\n    {\n        if (_hqData1 != hqNil)\n            PvLockHq(_hqData1);\n    }\n    void Unlock(void)\n    {\n        if (_hqData1 != hqNil)\n            UnlockHq(_hqData1);\n    }\n    long IvMac(void)\n    {\n        return _ivMac;\n    }\n    virtual bool FFree(long iv) = 0;\n    virtual void Delete(long iv) = 0;\n\n    // writing\n    virtual bool FWriteFlo(PFLO pflo, short bo = kboCur, short osk = koskCur);\n    virtual bool FWrite(PBLCK pblck, short bo = kboCur, short osk = koskCur) = 0;\n    virtual long CbOnFile(void) = 0;\n};\n\n/****************************************\n    GLB is a virtual class supporting\n    GL and AL\n****************************************/\n#define GLB_PAR GRPB\n#define kclsGLB 'GLB'\nclass GLB : public GLB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    long _cbEntry;\n\n    GLB(long cb);\n\n  public:\n    long CbEntry(void)\n    {\n        return _cbEntry;\n    }\n    void *QvGet(long iv);\n    void Get(long iv, void *pv);\n    void Put(long iv, void *pv);\n    void *PvLock(long iv);\n    void SetMinGrow(long cvAdd);\n\n    virtual bool FAdd(void *pv, long *piv = pvNil) = 0;\n};\n\n/****************************************\n    GL is the basic dynamic array\n****************************************/\n#define GL_PAR GLB\n#define kclsGL 'GL'\nclass GL : public GL_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    GL(long cb);\n    bool _FRead(PBLCK pblck, short *pbo, short *posk);\n\n  public:\n    // static methods\n    static PGL PglNew(long cb, long cvInit = 0);\n    static PGL PglRead(PBLCK pblck, short *pbo = pvNil, short *posk = pvNil);\n    static PGL PglRead(PFIL pfil, FP fp, long cb, short *pbo = pvNil, short *posk = pvNil);\n\n    // duplication\n    PGL PglDup(void);\n\n    // methods required by parent class\n    virtual bool FAdd(void *pv, long *piv = pvNil);\n    virtual void Delete(long iv);\n    virtual bool FWrite(PBLCK pblck, short bo = kboCur, short osk = koskCur);\n    virtual long CbOnFile(void);\n    virtual bool FFree(long iv);\n\n    // new methods\n    void Delete(long iv, long cv);\n    bool FInsert(long iv, void *pv = pvNil, long cv = 1);\n    bool FSetIvMac(long ivMacNew);\n    bool FEnsureSpace(long cvAdd, ulong grfgrp = fgrpNil);\n    void Move(long ivSrc, long ivTarget);\n    bool FPush(void *pv)\n    {\n        return FInsert(_ivMac, pv);\n    }\n    bool FPop(void *pv = pvNil);\n    bool FEnqueue(void *pv)\n    {\n        return FInsert(0, pv);\n    }\n    bool FDequeue(void *pv = pvNil)\n    {\n        return FPop(pv);\n    }\n};\n\n/****************************************\n    Allocated (fixed index) list class\n****************************************/\n#define AL_PAR GLB\n#define kclsAL 'AL'\nclass AL : public AL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  private:\n    long _cvFree;\n\n  private:\n    // section 2 of the data contains a bit array\n    byte *_Qgrfbit(long iv)\n    {\n        return _Qb2(IbFromIbit(iv));\n    }\n\n  protected:\n    AL(long cb);\n    bool _FRead(PBLCK pblck, short *pbo, short *posk);\n\n  public:\n    // static methods\n    static PAL PalNew(long cb, long cvInit = 0);\n    static PAL PalRead(PBLCK pblck, short *pbo = pvNil, short *posk = pvNil);\n    static PAL PalRead(PFIL pfil, FP fp, long cb, short *pbo = pvNil, short *posk = pvNil);\n\n    // duplication\n    PAL PalDup(void);\n\n    // methods required by parent class\n    virtual bool FAdd(void *pv, long *piv = pvNil);\n    virtual void Delete(long iv);\n    virtual bool FWrite(PBLCK pblck, short bo = kboCur, short osk = koskCur);\n    virtual long CbOnFile(void);\n    virtual bool FFree(long iv);\n\n    // new methods\n    bool FEnsureSpace(long cvAdd, ulong grfgrp = fgrpNil);\n    void DeleteAll(void);\n};\n\n/****************************************\n    GGB is a virtual class supporting\n    GG and AG\n****************************************/\nconst BOM kbomLoc = 0xF0000000;\n#define GGB_PAR GRPB\n#define kclsGGB 'GGB'\nclass GGB : public GGB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    struct LOC\n    {\n        long bv;\n        long cb;\n    };\n\n    long _bvMac;\n    long _clocFree;\n    long _cbFixed;\n\n  protected:\n    GGB(long cbFixed, bool fAllowFree);\n\n    void _RemoveRgb(long bv, long cb);\n    void _AdjustLocs(long bvMin, long bvLim, long dcb);\n    LOC *_Qloc(long iloc)\n    {\n        return (LOC *)_Qb2(LwMul(iloc, size(LOC)));\n    }\n    bool _FRead(PBLCK pblck, short *pbo, short *posk);\n\n    bool _FDup(PGGB pggbDst);\n\n  public:\n    // methods required by parent class\n    virtual bool FWrite(PBLCK pblck, short bo = kboCur, short osk = koskCur);\n    virtual long CbOnFile(void);\n    virtual bool FFree(long iv);\n\n    bool FEnsureSpace(long cvAdd, long cbAdd, ulong grfgrp = fgrpNil);\n    void SetMinGrow(long cvAdd, long cbAdd);\n\n    virtual bool FAdd(long cb, long *piv = pvNil, void *pv = pvNil, void *pvFixed = pvNil) = 0;\n\n    // access to the fixed portion\n    long CbFixed(void)\n    {\n        return _cbFixed;\n    }\n    void *QvFixedGet(long iv, long *pcbVar = pvNil);\n    void *PvFixedLock(long iv, long *pcbVar = pvNil);\n    void GetFixed(long iv, void *pv);\n    void PutFixed(long iv, void *pv);\n\n    // access to the variable portion\n    long Cb(long iv);\n    void *QvGet(long iv, long *pcb = pvNil);\n    void *PvLock(long iv, long *pcb = pvNil);\n    void Get(long iv, void *pv);\n    void Put(long iv, void *pv);\n    bool FPut(long iv, long cb, void *pv);\n    void GetRgb(long iv, long bv, long cb, void *pv);\n    void PutRgb(long iv, long bv, long cb, void *pv);\n    void DeleteRgb(long iv, long bv, long cb);\n    bool FInsertRgb(long iv, long bv, long cb, void *pv);\n    bool FMoveRgb(long ivSrc, long bvSrc, long ivDst, long bvDst, long cb);\n    void Merge(long ivSrc, long ivDst);\n};\n\n/****************************************\n    General Group - based on GGB\n****************************************/\n#define GG_PAR GGB\n#define kclsGG 'GG'\nclass GG : public GG_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    GG(long cbFixed) : GGB(cbFixed, fFalse)\n    {\n    }\n\n  public:\n    // static methods\n    static PGG PggNew(long cbFixed = 0, long cvInit = 0, long cbInit = 0);\n    static PGG PggRead(PBLCK pblck, short *pbo = pvNil, short *posk = pvNil);\n    static PGG PggRead(PFIL pfil, FP fp, long cb, short *pbo = pvNil, short *posk = pvNil);\n\n    // duplication\n    PGG PggDup(void);\n\n    // methods required by parent class\n    virtual bool FAdd(long cb, long *piv = pvNil, void *pv = pvNil, void *pvFixed = pvNil);\n    virtual void Delete(long iv);\n\n    // new methods\n    bool FInsert(long iv, long cb, void *pv = pvNil, void *pvFixed = pvNil);\n    bool FCopyEntries(PGG pggSrc, long ivSrc, long ivDst, long cv);\n    void Move(long ivSrc, long ivTarget);\n    void Swap(long iv1, long iv2);\n};\n\n/****************************************\n    Allocated Group - based on GGB\n****************************************/\n#define AG_PAR GGB\n#define kclsAG 'AG'\nclass AG : public AG_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    AG(long cbFixed) : GGB(cbFixed, fTrue)\n    {\n    }\n\n  public:\n    // static methods\n    static PAG PagNew(long cbFixed = 0, long cvInit = 0, long cbInit = 0);\n    static PAG PagRead(PBLCK pblck, short *pbo = pvNil, short *posk = pvNil);\n    static PAG PagRead(PFIL pfil, FP fp, long cb, short *pbo = pvNil, short *posk = pvNil);\n\n    // duplication\n    PAG PagDup(void);\n\n    // methods required by parent class\n    virtual bool FAdd(long cb, long *piv = pvNil, void *pv = pvNil, void *pvFixed = pvNil);\n    virtual void Delete(long iv);\n};\n\n/****************************************\n    String table classes\n****************************************/\nenum\n{\n    fgstNil = 0,\n    fgstSorted = 1,\n    fgstUserSorted = 2,\n    fgstAllowFree = 4,\n};\n\nconst long kcchMaxGst = kcchMaxStn;\n\n/****************************************\n    GSTB is a virtual class supporting\n    GST and AST.\n****************************************/\n#define GSTB_PAR GRPB\n#define kclsGSTB 'GSTB'\nclass GSTB : public GSTB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    long _cbEntry;\n    long _bstMac;\n    long _cbstFree; // this is cvNil for non-allocated GSTBs\n\n  protected:\n    GSTB(long cbExtra, ulong grfgst);\n\n    long _Bst(long ibst)\n    {\n        return *(long *)_Qb2(LwMul(ibst, _cbEntry));\n    }\n    long *_Qbst(long ibst)\n    {\n        return (long *)_Qb2(LwMul(ibst, _cbEntry));\n    }\n    PST _Qst(long ibst);\n    void _RemoveSt(long bst);\n    void _AppendRgch(achar *prgch, long cch);\n    void _SwapBytesRgbst(void);\n    void _TranslateGrst(short osk, bool fToCur);\n    bool _FTranslateGrst(short osk);\n    bool _FRead(PBLCK pblck, short *pbo, short *posk);\n\n    bool _FDup(PGSTB pgstbDst);\n\n  public:\n    // methods required by parent class\n    virtual bool FWrite(PBLCK pblck, short bo = kboCur, short osk = koskCur);\n    virtual long CbOnFile(void);\n    virtual bool FFree(long istn);\n\n    bool FEnsureSpace(long cstnAdd, long cchAdd, ulong grfgrp = fgrpNil);\n    void SetMinGrow(long cstnAdd, long cchAdd);\n\n    virtual bool FAddRgch(achar *prgch, long cch, void *pvExtra = pvNil, long *pistn = pvNil) = 0;\n    virtual bool FFindRgch(achar *prgch, long cch, long *pistn, ulong grfgst = fgstNil);\n\n    long IstnMac(void)\n    {\n        return _ivMac;\n    }\n    long CbExtra(void)\n    {\n        return _cbEntry - size(long);\n    }\n\n    bool FAddStn(PSTN pstn, void *pvExtra = pvNil, long *pistn = pvNil);\n    bool FPutRgch(long istn, achar *prgch, long cch);\n    bool FPutStn(long istn, PSTN pstn);\n    void GetRgch(long istn, achar *prgch, long cchMax, long *pcch);\n    void GetStn(long istn, PSTN pstn);\n    bool FFindStn(PSTN pstn, long *pistn, ulong grfgst = fgstNil);\n\n    void GetExtra(long istn, void *pv);\n    void PutExtra(long istn, void *pv);\n    bool FFindExtra(void *prgbFind, PSTN pstn = pvNil, long *pistn = pvNil);\n};\n\n/****************************************\n    String table\n****************************************/\n#define GST_PAR GSTB\n#define kclsGST 'GST'\nclass GST : public GST_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    GST(long cbExtra) : GSTB(cbExtra, fgstNil)\n    {\n    }\n\n  public:\n    // static methods\n    static PGST PgstNew(long cbExtra = 0, long cstnInit = 0, long cchInit = 0);\n    static PGST PgstRead(PBLCK pblck, short *pbo = pvNil, short *posk = pvNil);\n    static PGST PgstRead(PFIL pfil, FP fp, long cb, short *pbo = pvNil, short *posk = pvNil);\n\n    // duplication\n    PGST PgstDup(void);\n\n    // methods required by parent class\n    virtual bool FAddRgch(achar *prgch, long cch, void *pvExtra = pvNil, long *pistn = pvNil);\n    virtual bool FFindRgch(achar *prgch, long cch, long *pistn, ulong grfgst = fgstNil);\n    virtual void Delete(long istn);\n\n    // new methods\n    bool FInsertRgch(long istn, achar *prgch, long cch, void *pvExtra = pvNil);\n    bool FInsertStn(long istn, PSTN pstn, void *pvExtra = pvNil);\n    void Move(long istnSrc, long istnDst);\n};\n\n/****************************************\n    Allocated string table\n****************************************/\n#define AST_PAR GSTB\n#define kclsAST 'AST'\nclass AST : public AST_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    AST(long cbExtra) : GSTB(cbExtra, fgstAllowFree)\n    {\n    }\n\n  public:\n    // static methods\n    static PAST PastNew(long cbExtra = 0, long cstnInit = 0, long cchInit = 0);\n    static PAST PastRead(PBLCK pblck, short *pbo = pvNil, short *posk = pvNil);\n    static PAST PastRead(PFIL pfil, FP fp, long cb, short *pbo = pvNil, short *posk = pvNil);\n\n    // duplication\n    PAST PastDup(void);\n\n    // methods required by parent class\n    virtual bool FAddRgch(achar *prgch, long cch, void *pvExtra = pvNil, long *pistn = pvNil);\n    virtual void Delete(long istn);\n};\n\n#endif //! GROUPS_H\n"
  },
  {
    "path": "kauai/src/groups2.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ******\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Basic collection classes (continued from groups.cpp):\n        General List (GL), Allocated List (AL),\n        General Group (GG), Allocated Group (AG),\n        General String Table (GST), Allocated String Table (AST).\n\n        BASE ---> GRPB -+-> GLB -+-> GL\n                        |        +-> AL\n                        |\n                        +-> GGB -+-> GG\n                        |        +-> AG\n                        |\n                        +-> GSTB-+-> GST\n                                 +-> AST\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\nRTCLASS(GSTB)\nRTCLASS(GST)\nRTCLASS(AST)\n\n/***************************************************************************\n    Constructor for a base string table.\n***************************************************************************/\nGSTB::GSTB(long cbExtra, ulong grfgst)\n{\n    AssertIn(cbExtra, 0, kcbMax);\n    Assert(cbExtra % size(long) == 0, \"cbExtra not multiple of size(long)\");\n\n    _cbEntry = cbExtra + size(long);\n    _cbstFree = (grfgst & fgstAllowFree) ? 0 : cvNil;\n\n    // use some reasonable values for _cbMinGrow* - code can always set\n    // set these to something else\n    _cbMinGrow1 = 120;\n    _cbMinGrow2 = 12 * _cbEntry;\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    Duplicate the string table.\n***************************************************************************/\nbool GSTB::_FDup(PGSTB pgstbDst)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pgstbDst, fobjAssertFull);\n    Assert(_cbEntry == pgstbDst->_cbEntry, \"why do these have different sized entries?\");\n\n    if (!GSTB_PAR::_FDup(pgstbDst, _bstMac, LwMul(_cbEntry, _ivMac)))\n        return fFalse;\n\n    pgstbDst->_cbEntry = _cbEntry;\n    pgstbDst->_bstMac = _bstMac;\n    pgstbDst->_cbstFree = _cbstFree;\n    AssertPo(pgstbDst, fobjAssertFull);\n\n    return fTrue;\n}\n\n// string table on file\nstruct GSTF\n{\n    short bo;\n    short osk;\n    long cbEntry;\n    long ibstMac;\n    long bstMac;\n    long cbstFree;\n};\nconst BOM kbomGstf = 0x5FF00000L;\n\n/***************************************************************************\n    Return the amount of space on file needed for the string table.\n***************************************************************************/\nlong GSTB::CbOnFile(void)\n{\n    AssertThis(0);\n    return size(GSTF) + LwMul(_ivMac, _cbEntry) + _bstMac;\n}\n\n/***************************************************************************\n    Write the string table to disk.  It is the client's responsibility to\n    ensure that the extra data has the given byte order (bo) and osk.\n    If the osk has a different character size than the current one, the\n    strings are actually saved in the corresponding osk with the same sized\n    characters.\n***************************************************************************/\nbool GSTB::FWrite(PBLCK pblck, short bo, short osk)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pblck, 0);\n    Assert(kboCur == bo || kboOther == bo, \"bad bo\");\n    AssertOsk(osk);\n\n    GSTF gstf;\n    bool fRet;\n\n    if (osk != koskCur)\n    {\n        switch (osk)\n        {\n        case koskSbMac:\n        case koskUniMac:\n            osk = koskMac;\n            break;\n\n        case koskSbWin:\n        case koskUniWin:\n            osk = koskWin;\n            break;\n\n        default:\n            Bug(\"unknown osk\");\n            return fFalse;\n        }\n    }\n\n    gstf.bo = kboCur;\n    gstf.osk = osk;\n    gstf.cbEntry = _cbEntry;\n    gstf.ibstMac = _ivMac;\n    gstf.bstMac = _bstMac;\n    gstf.cbstFree = _cbstFree;\n    if (kboOther == bo)\n    {\n        SwapBytesBom(&gstf, kbomGstf);\n        Assert(gstf.osk == osk, \"osk not invariant under byte swapping\");\n        _SwapBytesRgbst();\n    }\n    if (koskCur != osk)\n        _TranslateGrst(osk, fFalse);\n    fRet = _FWrite(pblck, &gstf, size(gstf), _bstMac, LwMul(_cbEntry, _ivMac));\n    if (koskCur != osk)\n        _TranslateGrst(osk, fTrue);\n    if (kboOther == bo)\n        _SwapBytesRgbst();\n    return fRet;\n}\n\n/***************************************************************************\n    Read string table data from a block.\n***************************************************************************/\nbool GSTB::_FRead(PBLCK pblck, short *pbo, short *posk)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(pbo);\n    AssertNilOrVarMem(posk);\n\n    GSTF gstf;\n    long cbT;\n    short bo;\n    long cb;\n    bool fRet = fFalse;\n\n    if (!pblck->FUnpackData())\n        goto LFail;\n\n    cb = pblck->Cb();\n    if (cb < size(gstf))\n        goto LBug;\n\n    if (!pblck->FReadRgb(&gstf, size(gstf), 0))\n        goto LFail;\n\n    if (pbo != pvNil)\n        *pbo = gstf.bo;\n    if (posk != pvNil)\n        *posk = gstf.osk;\n\n    if ((bo = gstf.bo) == kboOther)\n        SwapBytesBom(&gstf, kbomGstf);\n\n    cb -= size(gstf);\n    // don't use LwMul, in case the file is corrupted, we don't want to assert,\n    // we should detect it below.\n    cbT = gstf.cbEntry * gstf.ibstMac;\n    if (gstf.bo != kboCur || !FIn(gstf.cbEntry, size(long), kcbMax) || (gstf.cbEntry % size(long)) != 0 ||\n        !FIn(gstf.ibstMac, 0, kcbMax) || !FIn(gstf.bstMac, gstf.ibstMac - LwMax(0, gstf.cbstFree), kcbMax) ||\n        cb != cbT + gstf.bstMac || (gstf.cbstFree == cvNil) != (_cbstFree == cvNil) ||\n        gstf.cbstFree != cvNil && !FIn(gstf.cbstFree, 0, LwMax(1, gstf.ibstMac)))\n    {\n    LBug:\n        Warn(\"file corrupt or not a GSTB\");\n        goto LFail;\n    }\n\n    _cbEntry = gstf.cbEntry;\n    _ivMac = gstf.ibstMac;\n    _bstMac = gstf.bstMac;\n    _cbstFree = gstf.cbstFree;\n    fRet = _FReadData(pblck, cb - cbT, cbT, size(gstf));\n    if (fRet)\n    {\n        if (bo == kboOther)\n            _SwapBytesRgbst();\n        if (koskCur != gstf.osk)\n            fRet = _FTranslateGrst(gstf.osk);\n    }\n\nLFail:\n    TrashVarIf(!fRet, pbo);\n    TrashVarIf(!fRet, posk);\n    return fRet;\n}\n\n/***************************************************************************\n    Ensures that there is room to add at least cstnAdd new strings with\n    a total of cchAdd characters.  If there is more than enough room and\n    fgrpShrink is passed, the GSTB may shrink.\n***************************************************************************/\nbool GSTB::FEnsureSpace(long cstnAdd, long cchAdd, ulong grfgrp)\n{\n    AssertThis(0);\n    AssertIn(cstnAdd, 0, kcbMax);\n    AssertIn(cchAdd, 0, kcbMax);\n    long cbstAdd;\n    long cbAdd = cchAdd * size(achar);\n\n    if (cvNil == _cbstFree)\n        cbstAdd = cstnAdd;\n    else\n        cbstAdd = LwMax(0, cstnAdd - _cbstFree);\n    if (cbstAdd > kcbMax / _cbEntry - _ivMac || cstnAdd > kcbMax - _bstMac || cbAdd > kcbMax - _bstMac - cstnAdd)\n    {\n        Bug(\"why is this string table growing so large?\");\n        return fFalse;\n    }\n\n    return _FEnsureSizes(_bstMac + cbAdd + cstnAdd, LwMul(_ivMac + cbstAdd, _cbEntry), grfgrp);\n}\n\n/***************************************************************************\n    Set the minimum that a GSTB should grow by.\n***************************************************************************/\nvoid GSTB::SetMinGrow(long cstnAdd, long cchAdd)\n{\n    AssertThis(0);\n    AssertIn(cstnAdd, 0, kcbMax);\n    AssertIn(cchAdd, 0, kcbMax);\n\n    _cbMinGrow1 = CbRoundToLong(cchAdd * size(achar) + cstnAdd);\n    _cbMinGrow2 = LwMul(cstnAdd, _cbEntry);\n}\n\n/***************************************************************************\n    Append an stn to string table.\n***************************************************************************/\nbool GSTB::FAddStn(PSTN pstn, void *pvExtra, long *pistn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    return FAddRgch(pstn->Prgch(), pstn->Cch(), pvExtra, pistn);\n}\n\n/***************************************************************************\n    Replace the ith string.\n***************************************************************************/\nbool GSTB::FPutRgch(long istn, achar *prgch, long cch)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(istn, 0, _ivMac);\n    Assert(!FFree(istn), \"string entry is free!\");\n    AssertIn(cch, 0, kcchMaxGst + 1);\n    AssertPvCb(prgch, cch * size(achar));\n\n    long cchOld;\n    long bstOld;\n    achar *qst;\n\n    qst = _Qst(istn);\n    if ((cchOld = CchSt(qst)) == cch)\n    {\n        CopyPb(prgch, PrgchSt(qst), cch * size(achar));\n        goto LDone;\n    }\n    if (cchOld < cch && !_FEnsureSizes(_bstMac + (cch - cchOld) * size(achar), LwMul(_ivMac, _cbEntry), fgrpNil))\n    {\n        return fFalse;\n    }\n\n    // remove the old one\n    bstOld = _Bst(istn);\n    _RemoveSt(bstOld);\n\n    // append the new one\n    *_Qbst(istn) = _bstMac;\n    _AppendRgch(prgch, cch);\n\nLDone:\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Replace the ith string with stn.\n***************************************************************************/\nbool GSTB::FPutStn(long istn, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    return FPutRgch(istn, pstn->Prgch(), pstn->Cch());\n}\n\n/***************************************************************************\n    Get up to cchMax characters for the istn'th string.\n***************************************************************************/\nvoid GSTB::GetRgch(long istn, achar *prgch, long cchMax, long *pcch)\n{\n    AssertThis(0);\n    AssertIn(istn, 0, _ivMac);\n    Assert(!FFree(istn), \"string entry is free!\");\n    AssertIn(cchMax, 0, kcbMax);\n    AssertPvCb(prgch, cchMax * size(achar));\n    AssertVarMem(pcch);\n    PST qst = _Qst(istn);\n\n    *pcch = LwMin(cchMax, CchSt(qst));\n    CopyPb(PrgchSt(qst), prgch, *pcch * size(achar));\n}\n\n/***************************************************************************\n    Get the ith string.\n***************************************************************************/\nvoid GSTB::GetStn(long istn, PSTN pstn)\n{\n    AssertThis(0);\n    AssertIn(istn, 0, _ivMac);\n    Assert(!FFree(istn), \"string entry is free!\");\n    AssertPo(pstn, 0);\n\n    pstn->SetSt(_Qst(istn));\n}\n\n/***************************************************************************\n    Find the given stn in the string table.\n***************************************************************************/\nbool GSTB::FFindStn(PSTN pstn, long *pistn, ulong grfgst)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    return FFindRgch(pstn->Prgch(), pstn->Cch(), pistn, grfgst);\n}\n\n/***************************************************************************\n    Search for the string in the string table.  This version does a linear\n    search.  GST overrides this to do a binary search if fgstSorted is\n    passed in grfgst.\n***************************************************************************/\nbool GSTB::FFindRgch(achar *prgch, long cch, long *pistn, ulong grfgst)\n{\n    AssertThis(0);\n    AssertIn(cch, 0, kcchMaxGst + 1);\n    AssertPvCb(prgch, cch * size(achar));\n    AssertVarMem(pistn);\n    long istn, bst;\n    PST qst;\n\n    for (istn = 0; istn < _ivMac; istn++)\n    {\n        bst = _Bst(istn);\n        if (bvNil == bst)\n        {\n            AssertIn(_cbstFree, 0, _ivMac);\n            Assert(istn < _ivMac - 1, \"last element free\");\n            continue;\n        }\n        AssertIn(bst, 0, _bstMac);\n        qst = (achar *)_Qb1(bst);\n        if (CchSt(qst) == cch && FEqualRgb(PrgchSt(qst), prgch, cch * size(achar)))\n        {\n            *pistn = istn;\n            return fTrue;\n        }\n    }\n    *pistn = istn;\n    return fFalse;\n}\n\n/***************************************************************************\n    Find the string with the given extra data in the string table.\n***************************************************************************/\nbool GSTB::FFindExtra(void *prgbFind, PSTN pstn, long *pistn)\n{\n    AssertThis(0);\n    AssertPvCb(prgbFind, CbExtra());\n    AssertNilOrPo(pstn, 0);\n    AssertNilOrVarMem(pistn);\n\n    long istn;\n    byte *qbExtra;\n    long cbExtra = CbExtra();\n    long ivMac = IvMac();\n\n    if (cbExtra == 0)\n    {\n        Bug(\"no extra data\");\n        TrashVar(pistn);\n        return fFalse;\n    }\n\n    for (istn = 0; istn < ivMac; istn++)\n    {\n        qbExtra = (byte *)_Qbst(istn) + size(long);\n        if (FEqualRgb(prgbFind, qbExtra, cbExtra))\n        {\n            if (pstn != pvNil)\n                GetStn(istn, pstn);\n            if (pistn != pvNil)\n                *pistn = istn;\n            return fTrue;\n        }\n    }\n\n    if (pvNil != pstn)\n        pstn->SetNil();\n    TrashVar(pistn);\n    return fFalse;\n}\n\n/***************************************************************************\n    Fetch the extra data for element istn.\n***************************************************************************/\nvoid GSTB::GetExtra(long istn, void *pv)\n{\n    AssertThis(0);\n    AssertIn(istn, 0, _ivMac);\n    Assert(!FFree(istn), \"string entry is free!\");\n    Assert(_cbEntry > size(long), \"no extra data\");\n    AssertPvCb(pv, _cbEntry - size(long));\n\n    byte *qb;\n\n    qb = (byte *)_Qbst(istn) + size(long);\n    CopyPb(qb, pv, _cbEntry - size(long));\n}\n\n/***************************************************************************\n    Put the extra data for element istn.\n***************************************************************************/\nvoid GSTB::PutExtra(long istn, void *pv)\n{\n    AssertThis(0);\n    AssertIn(istn, 0, _ivMac);\n    Assert(!FFree(istn), \"string entry is free!\");\n    Assert(_cbEntry > size(long), \"no extra data\");\n    AssertPvCb(pv, _cbEntry - size(long));\n\n    byte *qb;\n\n    qb = (byte *)_Qbst(istn) + size(long);\n    CopyPb(pv, qb, _cbEntry - size(long));\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Return a volatile pointer to the string given the ibst (not the bst).\n***************************************************************************/\nachar *GSTB::_Qst(long ibst)\n{\n    AssertIn(ibst, 0, _ivMac);\n    long bst = _Bst(ibst);\n    AssertIn(bst, 0, _bstMac);\n    return (achar *)_Qb1(bst);\n}\n\n/***************************************************************************\n    Private api to append the string.  It's assumed that the first block\n    is already big enough to accomodate the string.\n***************************************************************************/\nvoid GSTB::_AppendRgch(achar *prgch, long cch)\n{\n    AssertIn(cch, 0, kcchMaxGst + 1);\n    AssertPvCb(prgch, cch * size(achar));\n\n    achar *qch;\n\n    Assert(_Cb1() >= _bstMac + (cch + 1) * size(achar), \"first block not big enough\");\n    qch = (achar *)_Qb1(_bstMac);\n    *qch++ = (achar)cch;\n    CopyPb(prgch, qch, cch * size(achar));\n    _bstMac += (cch + 1) * size(achar);\n}\n\n/***************************************************************************\n    Private api to remove the string.\n***************************************************************************/\nvoid GSTB::_RemoveSt(long bst)\n{\n    AssertIn(bst, 0, _bstMac);\n\n    long cb;\n    byte *qb;\n\n    qb = _Qb1(bst);\n    cb = CchTotSt((PST)qb) * size(achar);\n    AssertIn(bst + cb, 0, _bstMac + 1);\n    if (bst + cb < _bstMac)\n    {\n        long cv;\n\n        BltPb(qb + cb, qb, _bstMac - bst - cb);\n        for (qb = _Qb2(0), cv = _ivMac; cv-- > 0; qb += _cbEntry)\n        {\n            if (*(long *)qb > bst)\n            {\n                Assert(*(long *)qb >= bst + cb, \"overlapping strings in GSTB\");\n                *(long *)qb -= cb;\n            }\n        }\n    }\n    _bstMac -= cb;\n}\n\n/***************************************************************************\n    Swap the bytes in the BST values.  Note that each bst is followed\n    by the extra data, so we can't just use SwapBytesRglw.\n***************************************************************************/\nvoid GSTB::_SwapBytesRgbst(void)\n{\n    if (size(long) == _cbEntry)\n        SwapBytesRglw(_Qb2(0), _ivMac);\n    else\n    {\n        long cbst;\n        byte *qb;\n\n        for (cbst = _ivMac, qb = _Qb2(0); cbst-- > 0; qb += _cbEntry)\n            SwapBytesRglw(qb, 1);\n    }\n}\n\n/***************************************************************************\n    Translate the strings to/from the platform osk.  This only works if\n    CbCharOsk(osk) == CbCharOsk(koskCur) (it asserts otherwise).\n***************************************************************************/\nvoid GSTB::_TranslateGrst(short osk, bool fToCur)\n{\n    AssertOsk(osk);\n    long bst;\n    byte *qb;\n\n    if (CbCharOsk(osk) != CbCharOsk(koskCur))\n    {\n        Bug(\"can't translate to this osk\");\n        return;\n    }\n\n    qb = _Qb1(0);\n    for (bst = 0; bst < _bstMac;)\n    {\n        TranslateSt((achar *)(qb + bst), osk, fToCur);\n        bst += CchTotSt((PST)(qb + bst)) * size(achar);\n    }\n}\n\n/***************************************************************************\n    Translate the strings to the current osk.\n***************************************************************************/\nbool GSTB::_FTranslateGrst(short osk)\n{\n    AssertOsk(osk);\n    void *pvSrc;\n    long cbSrc;\n    long cbChar;\n    long ibst, bstOld, cch;\n    long *qbst;\n    achar rgch[kcchMaxSt];\n    bool fRet = fFalse;\n\n    if ((cbChar = CbCharOsk(osk)) == CbCharOsk(koskCur))\n    {\n        _TranslateGrst(osk, fTrue);\n        return fTrue;\n    }\n\n    if (cbChar != size(schar) && cbChar != size(wchar))\n    {\n        Bug(\"unknown osk\");\n        return fFalse;\n    }\n\n    if (_bstMac == 0)\n        return fTrue;\n\n    if (!FAllocPv(&pvSrc, cbSrc = _bstMac, fmemNil, mprNormal))\n        return fFalse;\n\n    CopyPb(_Qb1(0), pvSrc, cbSrc);\n    _bstMac = 0;\n\n    for (ibst = 0; ibst < _ivMac; ibst++)\n    {\n        qbst = _Qbst(ibst);\n        bstOld = *qbst;\n        *qbst = _bstMac;\n\n        if (bstOld + cbChar > cbSrc)\n            goto LFail;\n\n        if (cbChar == size(schar))\n        {\n            schar chs = *(schar *)PvAddBv(pvSrc, bstOld);\n            cch = (long)(byte)chs;\n        }\n        else\n        {\n            wchar chw;\n            CopyPb(PvAddBv(pvSrc, bstOld), &chw, size(wchar));\n            if (osk == MacWin(koskUniWin, koskUniMac))\n                SwapBytesRgsw(&chw, 1);\n            cch = (long)(ushort)chw;\n        }\n\n        if (!FIn(cch, 0, kcchMaxSt + 1) || bstOld + (cch + 1) * cbChar > cbSrc)\n            goto LFail;\n\n        cch = CchTranslateRgb(PvAddBv(pvSrc, bstOld + cbChar), cch * cbChar, osk, rgch, kcchMaxSt);\n\n        if (!_FEnsureSizes(_bstMac + (cch + 1) * size(achar), LwMul(_ivMac, _cbEntry), fgrpNil))\n        {\n            goto LFail;\n        }\n        _AppendRgch(rgch, cch);\n    }\n\n    fRet = fTrue;\n    AssertDo(_FEnsureSizes(_bstMac, LwMul(_ivMac, _cbEntry), fgrpShrink), 0);\n\nLFail:\n    FreePpv(&pvSrc);\n    return fRet;\n}\n\n/***************************************************************************\n    Returns true iff ibst is out of range or the corresponding bst is\n    bvNil.\n***************************************************************************/\nbool GSTB::FFree(long istn)\n{\n    AssertIn(istn, 0, kcbMax);\n    long bst;\n\n    if (!FIn(istn, 0, _ivMac))\n        return fTrue;\n    bst = _Bst(istn);\n    Assert(bvNil == bst || FIn(bst, 0, _bstMac), \"bad bst\");\n    return bvNil == bst;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Validate a string table.\n***************************************************************************/\nvoid GSTB::AssertValid(ulong grfobj)\n{\n    long ibst;\n    long cchTot, cbstFree;\n    long bst;\n\n    GSTB_PAR::AssertValid(grfobj);\n    AssertIn(_cbEntry, size(long), kcbMax);\n    Assert(_cbEntry % size(long) == 0, \"_cbEntry bad\");\n    AssertIn(_ivMac, 0, kcbMax);\n    Assert(_Cb1() >= _bstMac, \"grst area too small\");\n    Assert(_Cb2() >= LwMul(_ivMac, _cbEntry), \"rgbst area too small\");\n    Assert(_cbstFree == cvNil || FIn(_cbstFree, 0, LwMax(1, _ivMac)), \"_cbstFree is wrong\");\n\n    if (grfobj & fobjAssertFull)\n    {\n        // it would be nice to assert that no strings overlap each other,\n        // but that's hard to do in linear time, so just assert that the\n        // grst is the correct size.\n        for (cbstFree = cchTot = ibst = 0; ibst < _ivMac; ibst++)\n        {\n            bst = _Bst(ibst);\n            if (bvNil == bst)\n            {\n                Assert(ibst < _ivMac - 1, \"last element free\");\n                cbstFree++;\n                continue;\n            }\n            AssertIn(bst, 0, _bstMac);\n            AssertSt((achar *)_Qb1(bst));\n            cchTot += CchTotSt((PST)_Qb1(bst));\n        }\n        Assert(cchTot * size(achar) == _bstMac, \"grst wrong size\");\n        Assert(cbstFree == _cbstFree || _cbstFree == cvNil && cbstFree == 0, \"bad _cbstFree\");\n    }\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Allocate a new string table and ensure that it has space for cstnInit\n    strings, totalling cchInit characters.\n***************************************************************************/\nPGST GST::PgstNew(long cbExtra, long cstnInit, long cchInit)\n{\n    AssertIn(cbExtra, 0, kcbMax);\n    Assert(cbExtra % size(long) == 0, \"cbExtra not multiple of size(long)\");\n    AssertIn(cstnInit, 0, kcbMax);\n    AssertIn(cchInit, 0, kcbMax);\n    PGST pgst;\n\n    if ((pgst = NewObj GST(cbExtra)) == pvNil)\n        return pvNil;\n    if ((cstnInit > 0 || cchInit > 0) && !pgst->FEnsureSpace(cstnInit, cchInit, fgrpNil))\n    {\n        ReleasePpo(&pgst);\n        return pvNil;\n    }\n    AssertPo(pgst, 0);\n    return pgst;\n}\n\n/***************************************************************************\n    Read a string table from a block and return it.\n***************************************************************************/\nPGST GST::PgstRead(PBLCK pblck, short *pbo, short *posk)\n{\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(pbo);\n    AssertNilOrVarMem(posk);\n\n    PGST pgst;\n\n    if ((pgst = NewObj GST(0)) == pvNil)\n        goto LFail;\n    if (!pgst->_FRead(pblck, pbo, posk))\n    {\n        ReleasePpo(&pgst);\n    LFail:\n        TrashVar(pbo);\n        TrashVar(posk);\n        return pvNil;\n    }\n    AssertPo(pgst, 0);\n    return pgst;\n}\n\n/***************************************************************************\n    Read a string table from file and return it.\n***************************************************************************/\nPGST GST::PgstRead(PFIL pfil, FP fp, long cb, short *pbo, short *posk)\n{\n    BLCK blck(pfil, fp, cb);\n    return PgstRead(&blck, pbo, posk);\n}\n\n/***************************************************************************\n    Duplicate this GST.\n***************************************************************************/\nPGST GST::PgstDup(void)\n{\n    AssertThis(0);\n    PGST pgst;\n\n    if (pvNil == (pgst = PgstNew(_cbEntry - size(long))))\n        return pvNil;\n\n    if (!_FDup(pgst))\n        ReleasePpo(&pgst);\n\n    AssertNilOrPo(pgst, 0);\n    return pgst;\n}\n\n/***************************************************************************\n    Append a string to the string table.\n***************************************************************************/\nbool GST::FAddRgch(achar *prgch, long cch, void *pvExtra, long *pistn)\n{\n    AssertThis(0);\n    AssertIn(cch, 0, kcchMaxGst + 1);\n    AssertPvCb(prgch, cch * size(achar));\n    AssertNilOrPvCb(pvExtra, _cbEntry - size(long));\n    AssertNilOrVarMem(pistn);\n\n    if (pistn != pvNil)\n        *pistn = _ivMac;\n    if (!FInsertRgch(_ivMac, prgch, cch, pvExtra))\n    {\n        TrashVar(pistn);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Find the given string and put its location in *pistn.  If it's not\n    there, fill *pistn with where it would be.  If fgstSorted or fgstUserSorted\n    is passed in, this does a binary search for the string; otherwise it\n    does a linear search.\n***************************************************************************/\nbool GST::FFindRgch(achar *prgch, long cch, long *pistn, ulong grfgst)\n{\n    AssertThis(0);\n    AssertIn(cch, 0, kcchMaxGst);\n    AssertPvCb(prgch, cch * size(achar));\n    AssertVarMem(pistn);\n\n    if (!(grfgst & (fgstSorted | fgstUserSorted)))\n        return GSTB::FFindRgch(prgch, cch, pistn, grfgst);\n\n    // the table should be sorted, so do a binary search\n    long ivMin, ivLim, iv;\n    ulong fcmp;\n    achar *qst;\n\n    for (ivMin = 0, ivLim = _ivMac; ivMin < ivLim;)\n    {\n        iv = (ivMin + ivLim) / 2;\n        qst = _Qst(iv);\n        if (grfgst & fgstUserSorted)\n            fcmp = FcmpCompareUserRgch(prgch, cch, PrgchSt(qst), CchSt(qst));\n        else\n            fcmp = FcmpCompareRgch(prgch, cch, PrgchSt(qst), CchSt(qst));\n\n        if (fcmp == fcmpLt)\n            ivLim = iv;\n        else if (fcmp == fcmpGt)\n            ivMin = iv + 1;\n        else\n        {\n            Assert(fcmp == fcmpEq, \"bad fcmp\");\n            *pistn = iv;\n            return fTrue;\n        }\n    }\n    // this is where it would be\n    *pistn = ivMin;\n    return fFalse;\n}\n\n/***************************************************************************\n    Insert a new entry into the string text.\n***************************************************************************/\nbool GST::FInsertRgch(long istn, achar *prgch, long cch, void *pvExtra)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(istn, 0, _ivMac + 1);\n    AssertIn(cch, 0, kcchMaxGst + 1);\n    AssertPvCb(prgch, cch * size(achar));\n    AssertNilOrPvCb(pvExtra, _cbEntry - size(long));\n\n    byte *qb;\n\n    if (!_FEnsureSizes(_bstMac + (cch + 1) * size(achar), LwMul(_ivMac + 1, _cbEntry), fgrpNil))\n    {\n        return fFalse;\n    }\n\n    // make room for the entry\n    qb = (byte *)_Qbst(istn);\n    if (istn < _ivMac)\n        BltPb(qb, qb + _cbEntry, LwMul(_ivMac - istn, _cbEntry));\n    *(long *)qb = _bstMac;\n    if (size(long) < _cbEntry)\n    {\n        qb += size(long);\n        if (pvExtra != pvNil)\n            CopyPb(pvExtra, qb, _cbEntry - size(long));\n        else\n            TrashPvCb(qb, _cbEntry - size(long));\n    }\n    else\n        Assert(pvNil == pvExtra, \"cbExtra is zero\");\n\n    _ivMac++;\n    // put the string in\n    _AppendRgch(prgch, cch);\n\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Insert an stn into the string table\n***************************************************************************/\nbool GST::FInsertStn(long istn, PSTN pstn, void *pvExtra)\n{\n    AssertThis(0);\n    AssertIn(istn, 0, _ivMac + 1);\n    AssertPo(pstn, 0);\n    AssertNilOrPvCb(pvExtra, _cbEntry - size(long));\n\n    return FInsertRgch(istn, pstn->Prgch(), pstn->Cch(), pvExtra);\n}\n\n/***************************************************************************\n    Delete the string at location istn.\n***************************************************************************/\nvoid GST::Delete(long istn)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(istn, 0, _ivMac);\n\n    byte *qb;\n    long bst;\n\n    qb = (byte *)_Qbst(istn);\n    bst = *(long *)qb;\n    if (istn < --_ivMac)\n        BltPb(qb + _cbEntry, qb, LwMul(_ivMac - istn, _cbEntry));\n    TrashPvCb(_Qbst(_ivMac), _cbEntry);\n    _RemoveSt(bst);\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    Move the entry at ivSrc to be immediately before the element that is\n    currently at ivTarget.  If ivTarget > ivSrc, the entry actually ends\n    up at (ivTarget - 1) and the entry at ivTarget doesn't move.  If\n    ivTarget < ivSrc, the entry ends up at ivTarget and the entry at\n    ivTarget moves to (ivTarget + 1).  Everything in between is shifted\n    appropriately.  ivTarget is allowed to be equal to IvMac().\n***************************************************************************/\nvoid GST::Move(long ivSrc, long ivTarget)\n{\n    AssertThis(0);\n    AssertIn(ivSrc, 0, _ivMac);\n    AssertIn(ivTarget, 0, _ivMac + 1);\n\n    MoveElement(_Qbst(0), _cbEntry, ivSrc, ivTarget);\n    AssertThis(0);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Validate a string table.\n***************************************************************************/\nvoid GST::AssertValid(ulong grfobj)\n{\n    GST_PAR::AssertValid(grfobj);\n    AssertVar(_cbstFree == cvNil, \"bad _cbstFree in GST\", &_cbstFree);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Allocate a new allocated string table and ensure that it has space for\n    cstnInit strings, totalling cchInit characters.\n***************************************************************************/\nPAST AST::PastNew(long cbExtra, long cstnInit, long cchInit)\n{\n    AssertIn(cbExtra, 0, kcbMax);\n    Assert(cbExtra % size(long) == 0, \"cbExtra not multiple of size(long)\");\n    AssertIn(cstnInit, 0, kcbMax);\n    AssertIn(cchInit, 0, kcbMax);\n    PAST past;\n\n    if ((past = NewObj AST(cbExtra)) == pvNil)\n        return pvNil;\n    if ((cstnInit > 0 || cchInit > 0) && !past->FEnsureSpace(cstnInit, cchInit, fgrpNil))\n    {\n        ReleasePpo(&past);\n        return pvNil;\n    }\n    AssertPo(past, 0);\n    return past;\n}\n\n/***************************************************************************\n    Read an allocated string table from a block and return it.\n***************************************************************************/\nPAST AST::PastRead(PBLCK pblck, short *pbo, short *posk)\n{\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(pbo);\n    AssertNilOrVarMem(posk);\n\n    PAST past;\n\n    if ((past = NewObj AST(0)) == pvNil)\n        goto LFail;\n    if (!past->_FRead(pblck, pbo, posk))\n    {\n        ReleasePpo(&past);\n    LFail:\n        TrashVar(pbo);\n        TrashVar(posk);\n        return pvNil;\n    }\n    AssertPo(past, 0);\n    return past;\n}\n\n/***************************************************************************\n    Read an allocated string table from file and return it.\n***************************************************************************/\nPAST AST::PastRead(PFIL pfil, FP fp, long cb, short *pbo, short *posk)\n{\n    BLCK blck;\n    return PastRead(&blck, pbo, posk);\n}\n\n/***************************************************************************\n    Duplicate this AST.\n***************************************************************************/\nPAST AST::PastDup(void)\n{\n    AssertThis(0);\n    PAST past;\n\n    if (pvNil == (past = PastNew(_cbEntry - size(long))))\n        return pvNil;\n\n    if (!_FDup(past))\n        ReleasePpo(&past);\n\n    AssertNilOrPo(past, 0);\n    return past;\n}\n\n/***************************************************************************\n    Append a string to the allocated string table.\n***************************************************************************/\nbool AST::FAddRgch(achar *prgch, long cch, void *pvExtra, long *pistn)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(cch, 0, kcchMaxGst + 1);\n    AssertPvCb(prgch, cch * size(achar));\n    AssertNilOrPvCb(pvExtra, _cbEntry - size(long));\n    AssertNilOrVarMem(pistn);\n\n    long ibst;\n    byte *qb;\n\n    if (_cbstFree > 0)\n    {\n        /* find the first free bst */\n        qb = _Qb2(0);\n        for (ibst = 0; ibst < _ivMac; ibst++, qb += _cbEntry)\n        {\n            if (*(long *)qb == bvNil)\n                break;\n        }\n        Assert(ibst < _ivMac - 1, \"_cbstFree is wrong\");\n        _cbstFree--;\n    }\n    else\n        ibst = _ivMac++;\n\n    if (!_FEnsureSizes(_bstMac + (cch + 1) * size(achar), LwMul(_ivMac, _cbEntry), fgrpNil))\n    {\n        if (ibst == _ivMac - 1)\n            _ivMac--;\n        else\n            _cbstFree++;\n        TrashVar(pistn);\n        return fFalse;\n    }\n\n    // fill in the bst and extra data\n    qb = (byte *)_Qbst(ibst);\n    *(long *)qb = _bstMac;\n    if (size(long) < _cbEntry)\n    {\n        qb += size(long);\n        if (pvExtra != pvNil)\n            CopyPb(pvExtra, qb, _cbEntry - size(long));\n        else\n            TrashPvCb(qb, _cbEntry - size(long));\n    }\n    else\n        Assert(pvNil == pvExtra, \"cbExtra is zero\");\n\n    // put the string in\n    _AppendRgch(prgch, cch);\n\n    if (pvNil != pistn)\n        *pistn = ibst;\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Delete the string at location istn.\n***************************************************************************/\nvoid AST::Delete(long istn)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(istn, 0, _ivMac);\n    Assert(!FFree(istn), \"entry already free!\");\n\n    byte *qb;\n    long bst;\n\n    qb = (byte *)_Qbst(istn);\n    bst = *(long *)qb;\n\n    if (istn == _ivMac - 1)\n    {\n        // move _ivMac back past any free entries on the end\n        while (--_ivMac > 0 && *(long *)(qb -= _cbEntry) == bvNil)\n            _cbstFree--;\n        TrashPvCb(_Qbst(_ivMac), LwMul(istn - _ivMac + 1, _cbEntry));\n    }\n    else\n    {\n        *(long *)qb = bvNil;\n        TrashPvCb(qb + size(long), _cbEntry - size(long));\n        _cbstFree++;\n    }\n    _RemoveSt(bst);\n    AssertThis(fobjAssertFull);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Validate a string table.\n***************************************************************************/\nvoid AST::AssertValid(ulong grfobj)\n{\n    AST_PAR::AssertValid(grfobj);\n    AssertIn(_cbstFree, 0, LwMax(1, _ivMac));\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/kcd2_386.c",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\nThis c file is compiled to a command-line exe which when run produces\nthe 80386 asm version of the KCD2 decompression code.\n\nRegister usage:\n    eax: source bytes\n    ebx: source address\n    edi: destination address\n    edx: working space\n    ecx: for rep movsb\n    esi: for rep movsb\n***************************************************************************/\n#include <stdbool.h>\n#include <stdlib.h>\n#include <stddef.h>\n#include <stdio.h>\n#include \"codkpri.h\"\n\nconst int kcbitMinMoveByDword = 3;\n\nconst bool fFalse = 0;\nconst bool fTrue = 1;\nstatic FILE *output = NULL;\n\nvoid Setup(void);\nvoid End(void);\nvoid Advance(long cb);\nvoid Test(long ibit);\nvoid Block(long ibit);\nvoid Literal(long ibit, bool fDword, bool fSingle);\nvoid Offset(long ibit, bool fDword, long cbit, long cbitOH, long dibBase, long cbBase);\nvoid Copy(long ibit, bool fDword);\n\nint main(int argc, char *argv[])\n{\n    if (argc != 2)\n    {\n        fprintf(stderr, \"usage: %s <filename>\", argv[0]);\n        return EXIT_FAILURE;\n    }\n\n    output = fopen(argv[1], \"w\");\n    if (output == NULL)\n    {\n        fprintf(stderr, \"could not open %s\", argv[1]);\n        return EXIT_FAILURE;\n    }\n\n    long ibit;\n\n    Setup();\n\n    for (ibit = 0; ibit < 8; ibit++)\n    {\n        if (kcbitMinMoveByDword <= kcbitMaxLenKcd2)\n        {\n            Literal(ibit, fTrue, fFalse);\n            Offset(ibit, fTrue, kcbitKcd2_0, 2, kdibMinKcd2_0, 1);\n            Offset(ibit, fTrue, kcbitKcd2_1, 3, kdibMinKcd2_1, 1);\n            Offset(ibit, fTrue, kcbitKcd2_2, 4, kdibMinKcd2_2, 1);\n            Offset(ibit, fTrue, kcbitKcd2_3, 4, kdibMinKcd2_3, 2);\n            Copy(ibit, fTrue);\n            fprintf(output, \"\tjmp LBlock%d\\n\", ibit);\n        }\n        Literal(ibit, fFalse, fTrue);\n        Literal(ibit, fFalse, fFalse);\n        Offset(ibit, fFalse, kcbitKcd2_0, 2, kdibMinKcd2_0, 1);\n        Offset(ibit, fFalse, kcbitKcd2_1, 3, kdibMinKcd2_1, 1);\n        Offset(ibit, fFalse, kcbitKcd2_2, 4, kdibMinKcd2_2, 1);\n        Offset(ibit, fFalse, kcbitKcd2_3, 4, kdibMinKcd2_3, 2);\n        Copy(ibit, fFalse);\n        Block(ibit);\n    }\n\n    End();\n    return 0;\n}\n\nvoid Setup(void)\n{\n    fprintf(output, \"\t// Setup\\n\"\n                    \"\tlong cbTot;\\n\"\n                    \"\tbyte *pbLimDst = (byte *)pvDst + cbDst;\\n\"\n                    \"\tbyte *pbLimSrc = (byte *)pvSrc + cbSrc - kcbTailKcd2;\\n\\n\"\n                    \"__asm\\n\"\n                    \"\t{\\n\"\n                    \"\tmov edi,pvDst\\n\"\n                    \"\tmov ebx,pvSrc\\n\"\n                    \"\tinc ebx\\n\");\n\n    Advance(4);\n\n    fprintf(output, \"\tjmp LBlock0\\n\");\n}\n\nvoid Copy(long ibit, bool fDword)\n{\n    if (fDword)\n        fprintf(output, \"\\n\t// Copy Dword %d\\nLCopyDword%d:\\n\", ibit, ibit);\n    else\n        fprintf(output, \"\\n\t// Copy Byte %d\\nLCopyByte%d:\\n\", ibit, ibit);\n\n    fprintf(output, \"#ifdef SAFETY\\n\"\n                    \"\tpush edx\\n\"\n                    \"\tlea edx,[edi+ecx]\\n\"\n                    \"\tcmp edx,pbLimDst\\n\"\n                    \"\tpop edx\\n\"\n                    \"\tja LFail\\n\"\n                    \"#endif //SAFETY\\n\");\n\n    fprintf(output, \"\tneg esi\\n\"\n                    \"\tadd esi,edi\\n\");\n\n    fprintf(output, \"#ifdef SAFETY\\n\"\n                    \"\tcmp esi,pvDst\\n\"\n                    \"\tjb LFail\\n\"\n                    \"#endif //SAFETY\\n\");\n\n    if (fDword)\n    {\n        fprintf(output, \"\tmov edx,ecx\\n\"\n                        \"\tshr ecx,2\\n\"\n                        \"\tand edx,3\\n\"\n                        \"\trep movsd\\n\"\n                        \"\tmov ecx,edx\\n\"\n                        \"\trep movsb\\n\");\n    }\n    else\n        fprintf(output, \"\trep movsb\\n\");\n}\n\nvoid End(void)\n{\n    fprintf(output, \"\\nLDone:\\n\"\n                    \"\tsub edi,pvDst\\n\"\n                    \"\tmov cbTot,edi\\n\"\n                    \"\t}\\n\\n\");\n}\n\nvoid Advance(long cb)\n{\n    switch (cb)\n    {\n    case 0:\n        break;\n    case 1:\n        fprintf(output, \"\tmov eax,[ebx-3]\\n\"\n                        \"\tinc ebx\\n\");\n        break;\n    case 2:\n        fprintf(output, \"\tmov eax,[ebx-2]\\n\"\n                        \"\tadd ebx,2\\n\");\n        break;\n    case 3:\n        fprintf(output, \"\tmov eax,[ebx-1]\\n\"\n                        \"\tadd ebx,3\\n\");\n        break;\n    case 4:\n        fprintf(output, \"\tmov eax,[ebx]\\n\"\n                        \"\tadd ebx,4\\n\");\n        break;\n    default:\n        fprintf(output, \"*** BUG\\n\");\n        break;\n    }\n}\n\nvoid Test(long ibit)\n{\n    if (ibit < 8)\n        fprintf(output, \"\ttest al,%d\\n\", 1 << ibit);\n    else if (ibit < 16)\n        fprintf(output, \"\ttest ah,%d\\n\", 1 << (ibit - 8));\n    else\n        fprintf(output, \"\ttest eax,%d\\n\", 1 << ibit);\n}\n\nvoid Block(long ibit)\n{\n    long cbit, ibitT;\n\n    fprintf(output, \"\\n\t// Block %d\\n\", ibit);\n    fprintf(output, \"LBlock%d:\\n\", ibit);\n\n    for (cbit = 0; cbit <= kcbitMaxLenKcd2; cbit++)\n    {\n        Test(ibit + cbit);\n        fprintf(output, \"\tjz LLen%d_%d\\n\", ibit, cbit);\n    }\n    fprintf(output, \"\tjmp LDone\\n\");\n\n    for (cbit = 0; cbit <= kcbitMaxLenKcd2; cbit++)\n    {\n        fprintf(output, \"LLen%d_%d:\\n\", ibit, cbit);\n        if (cbit == 0)\n            fprintf(output, \"\tmov ecx,1\\n\");\n        else\n        {\n            fprintf(output, \"\tmov ecx,eax\\n\");\n            fprintf(output, \"\tshr ecx,%d\\n\", ibit + cbit + 1);\n            fprintf(output, \"\tand ecx,%d\\n\", (1 << cbit) - 1);\n            fprintf(output, \"\tor ecx,%d\\n\", (1 << cbit));\n        }\n\n        ibitT = ibit + cbit + cbit + 1;\n        Advance(ibitT / 8);\n        ibitT &= 0x07;\n        Test(ibitT);\n        if (cbit == 0)\n            fprintf(output, \"\tjz LLitSingle%d\\n\", ibitT);\n        else if (cbit < kcbitMinMoveByDword)\n            fprintf(output, \"\tjz LLitByte%d\\n\", ibitT);\n        else\n            fprintf(output, \"\tjz LLitDword%d\\n\", ibitT);\n\n        Test(ibitT + 1);\n        if (cbit < kcbitMinMoveByDword)\n        {\n            fprintf(output, \"\tjz L%dBitOffByte%d\\n\", kcbitKcd2_0, ibitT);\n            Test(ibitT + 2);\n            fprintf(output, \"\tjz L%dBitOffByte%d\\n\", kcbitKcd2_1, ibitT);\n            Test(ibitT + 3);\n            fprintf(output, \"\tjz L%dBitOffByte%d\\n\", kcbitKcdc2, ibitT);\n            fprintf(output, \"\tjmp L%dBitOffByte%d\\n\", kcbitKcdc3, ibitT);\n        }\n        else\n        {\n            fprintf(output, \"\tjz L%dBitOffDword%d\\n\", kcbitKcd2_0, ibitT);\n            Test(ibitT + 2);\n            fprintf(output, \"\tjz L%dBitOffDword%d\\n\", kcbitKcd2_1, ibitT);\n            Test(ibitT + 3);\n            fprintf(output, \"\tjz L%dBitOffDword%d\\n\", kcbitKcdc2, ibitT);\n            fprintf(output, \"\tjmp L%dBitOffDword%d\\n\", kcbitKcdc3, ibitT);\n        }\n    }\n}\n\nvoid Offset(long ibit, bool fDword, long cbit, long cbitOH, long dibBase, long cbBase)\n{\n    ibit = (ibit - cbit - cbitOH) & 0x07;\n    if (fDword)\n        fprintf(output, \"\\nL%dBitOffDword%d:\\n\", cbit, ibit);\n    else\n        fprintf(output, \"\\nL%dBitOffByte%d:\\n\", cbit, ibit);\n\n    fprintf(output, \"\tmov esi,eax\\n\");\n    if (cbBase == 1)\n        fprintf(output, \"\tinc ecx\\n\");\n    else\n        fprintf(output, \"\tadd ecx,%d\\n\", cbBase);\n    fprintf(output, \"\tshr esi,%d\\n\", ibit + cbitOH);\n    fprintf(output, \"\tand esi,%d\\n\", (1 << cbit) - 1);\n    if (1 == dibBase)\n        fprintf(output, \"\tinc esi\\n\");\n    else\n        fprintf(output, \"\tadd esi,%d\\n\", dibBase);\n\n    ibit += cbitOH + cbit;\n    Advance(ibit / 8);\n    ibit &= 0x07;\n\n    if (fDword)\n    {\n        if (dibBase < 4 && fDword)\n        {\n            fprintf(output, \"\tcmp esi,4\\n\");\n            fprintf(output, \"\tjb LCopyByte%d\\n\", ibit);\n        }\n        fprintf(output, \"\tjmp LCopyDword%d\\n\", ibit);\n    }\n    else\n        fprintf(output, \"\tjmp LCopyByte%d\\n\", ibit);\n}\n\nvoid Literal(long ibit, bool fDword, bool fSingle)\n{\n    ibit = (ibit - 1) & 0x07;\n    if (fDword)\n        fprintf(output, \"\\nLLitDword%d:\\n\", ibit);\n    else if (fSingle)\n        fprintf(output, \"\\nLLitSingle%d:\\n\", ibit);\n    else\n        fprintf(output, \"\\nLLitByte%d:\\n\", ibit);\n\n    ibit++;\n    if (fSingle)\n    {\n        fprintf(output, \"#ifdef SAFETY\\n\"\n                        \"\tcmp edi,pbLimDst\\n\"\n                        \"\tjae LFail\\n\"\n                        \"#endif //SAFETY\\n\");\n\n        if (ibit == 8)\n        {\n            fprintf(output, \"\tmov [edi],ah\\n\"\n                            \"\tinc edi\\n\");\n        }\n        else\n        {\n            fprintf(output,\n                    \"\tmov edx,eax\\n\"\n                    \"\tshr edx,%d\\n\"\n                    \"\tmov [edi],dl\\n\"\n                    \"\tinc edi\\n\",\n                    ibit);\n        }\n\n        ibit += 8;\n        Advance(ibit / 8);\n        fprintf(output, \"\tjmp LBlock%d\\n\", ibit & 0x07);\n        return;\n    }\n\n    fprintf(output, \"#ifdef SAFETY\\n\"\n                    \"\tlea edx,[edi+ecx]\\n\"\n                    \"\tcmp edx,pbLimDst\\n\"\n                    \"\tja LFail\\n\"\n                    \"#endif //SAFETY\\n\");\n\n    if (ibit != 8)\n    {\n        // get the low bits of the last byte\n        fprintf(output, \"\tdec ecx\\n\");\n        fprintf(output, \"\tmov edx,eax\\n\");\n        fprintf(output, \"\tshr edx,%d\\n\", ibit);\n        fprintf(output, \"\tand edx,%d\\n\", (1 << (8 - ibit)) - 1);\n    }\n\n    fprintf(output, \"#ifdef SAFETY\\n\"\n                    \"\tlea esi,[ebx-3+ecx]\\n\"\n                    \"\tcmp esi,pbLimSrc\\n\"\n                    \"\tja LFail\\n\"\n                    \"\tsub esi,ecx\\n\"\n                    \"#else //!SAFETY\\n\"\n                    \"\tlea esi,[ebx-3]\\n\"\n                    \"#endif //!SAFETY\\n\");\n\n    if (fDword)\n    {\n        fprintf(output, \"\tmov eax,ecx\\n\"\n                        \"\tshr ecx,2\\n\"\n                        \"\tand eax,3\\n\"\n                        \"\trep movsd\\n\"\n                        \"\tmov ecx,eax\\n\"\n                        \"\trep movsb\\n\");\n    }\n    else\n        fprintf(output, \"\trep movsb\\n\");\n\n    fprintf(output, \"\tlea ebx,[esi+4]\\n\"\n                    \"\tmov eax,[esi]\\n\");\n\n    if (ibit != 8)\n    {\n        fprintf(output, \"\tmov esi,eax\\n\");\n        fprintf(output, \"\tshl esi,%d\\n\", 8 - ibit);\n        fprintf(output, \"\tor edx,esi\\n\"\n                        \"\tmov [edi],dl\\n\"\n                        \"\tinc edi\\n\");\n    }\n\n    fprintf(output, \"\tjmp LBlock%d\\n\", ibit & 0x07);\n}\n"
  },
  {
    "path": "kauai/src/kcdc_386.c",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\nThis c file is compiled to a command-line exe which when run produces\nthe 80386 asm version of the KCDC decompression code.\n\nRegister usage:\n    eax: source bytes\n    ebx: source address\n    edi: destination address\n    edx: working space\n    ecx: for rep movsb\n    esi: for rep movsb\n***************************************************************************/\n#include <stdbool.h>\n#include <stdlib.h>\n#include <stddef.h>\n#include <stdio.h>\n#include \"codkpri.h\"\n\nconst int kcbitMinMoveByDword = 3;\n\nconst bool fFalse = 0;\nconst bool fTrue = 1;\nstatic FILE *output = NULL;\n\nvoid Setup(void);\nvoid End(void);\nvoid Advance(long cb);\nvoid Test(long ibit);\nvoid Block(long ibit);\nvoid Literal(long ibit);\nvoid Offset(long ibit, long cbit, long dibBase, long cbBase);\nvoid GetLen(long ibit, bool fTestForDword);\nvoid CallCopy(long ibit, long cbit, bool fTestForDword);\nvoid Copy(long ibit, bool fDword);\n\nint main(int argc, char *argv[])\n{\n    if (argc != 2)\n    {\n        fprintf(stderr, \"usage: %s <filename>\", argv[0]);\n        return EXIT_FAILURE;\n    }\n    output = fopen(argv[1], \"w\");\n    if (output == NULL)\n    {\n        fprintf(stderr, \"could not open %s\", argv[1]);\n        return EXIT_FAILURE;\n    }\n\n    long ibit;\n\n    Setup();\n\n    for (ibit = 0; ibit < 8; ibit++)\n    {\n        if (kcbitMinMoveByDword <= kcbitMaxLenKcdc)\n        {\n            Copy(ibit, fTrue);\n            fprintf(output, \"\tjmp LBlock%d\\n\", ibit);\n        }\n        Copy(ibit, fFalse);\n        Block(ibit);\n    }\n\n    End();\n    return 0;\n}\n\nvoid Setup(void)\n{\n    fprintf(output, \"\t// Setup\\n\"\n                    \"\tlong cbTot;\\n\"\n                    \"\tbyte *pbLimDst = (byte *)pvDst + cbDst;\\n\\n\"\n                    \"__asm\\n\"\n                    \"\t{\\n\"\n                    \"\tmov edi,pvDst\\n\"\n                    \"\tmov ebx,pvSrc\\n\"\n                    \"\tinc ebx\\n\");\n\n    Advance(4);\n\n    fprintf(output, \"\tjmp LBlock0\\n\");\n}\n\nvoid Copy(long ibit, bool fDword)\n{\n    if (fDword)\n        fprintf(output, \"\\n\t// Copy Dword %d\\nLCopyDword%d:\\n\", ibit, ibit);\n    else\n        fprintf(output, \"\\n\t// Copy Byte %d\\nLCopyByte%d:\\n\", ibit, ibit);\n\n    fprintf(output, \"#ifdef SAFETY\\n\"\n                    \"\tpush edx\\n\"\n                    \"\tlea edx,[edi+ecx]\\n\"\n                    \"\tcmp edx,pbLimDst\\n\"\n                    \"\tpop edx\\n\"\n                    \"\tja LFail\\n\"\n                    \"#endif //SAFETY\\n\");\n\n    fprintf(output, \"\tneg esi\\n\"\n                    \"\tadd esi,edi\\n\");\n\n    fprintf(output, \"#ifdef SAFETY\\n\"\n                    \"\tcmp esi,pvDst\\n\"\n                    \"\tjb LFail\\n\"\n                    \"#endif //SAFETY\\n\");\n\n    if (fDword)\n    {\n        fprintf(output, \"\tmov edx,ecx\\n\"\n                        \"\tshr ecx,2\\n\"\n                        \"\tand edx,3\\n\"\n                        \"\trep movsd\\n\"\n                        \"\tmov ecx,edx\\n\"\n                        \"\trep movsb\\n\");\n    }\n    else\n        fprintf(output, \"\trep movsb\\n\");\n}\n\nvoid End(void)\n{\n    fprintf(output, \"\\nLDone:\\n\"\n                    \"\tsub edi,pvDst\\n\"\n                    \"\tmov cbTot,edi\\n\"\n                    \"\t}\\n\\n\");\n}\n\nvoid Advance(long cb)\n{\n    switch (cb)\n    {\n    case 0:\n        break;\n    case 1:\n        fprintf(output, \"\tmov eax,[ebx-3]\\n\"\n                        \"\tinc ebx\\n\");\n        break;\n    case 2:\n        fprintf(output, \"\tmov eax,[ebx-2]\\n\"\n                        \"\tadd ebx,2\\n\");\n        break;\n    case 3:\n        fprintf(output, \"\tmov eax,[ebx-1]\\n\"\n                        \"\tadd ebx,3\\n\");\n        break;\n    case 4:\n        fprintf(output, \"\tmov eax,[ebx]\\n\"\n                        \"\tadd ebx,4\\n\");\n        break;\n    default:\n        fprintf(output, \"*** BUG\\n\");\n        break;\n    }\n}\n\nvoid Test(long ibit)\n{\n    if (ibit < 8)\n        fprintf(output, \"\ttest al,%d\\n\", 1 << ibit);\n    else if (ibit < 16)\n        fprintf(output, \"\ttest ah,%d\\n\", 1 << (ibit - 8));\n    else\n        fprintf(output, \"\ttest eax,%d\\n\", 1 << ibit);\n}\n\nvoid Block(long ibit)\n{\n    fprintf(output, \"\\n\t// Block %d\\n\", ibit);\n    fprintf(output, \"LBlock%d:\\n\", ibit);\n\n    Test(ibit);\n    fprintf(output, \"\tjz LLiteral%d\\n\", ibit + 1);\n    Test(ibit + 1);\n    fprintf(output, \"\tjz L%dBit%d\\n\", kcbitKcdc0, ibit + 2);\n    Test(ibit + 2);\n    fprintf(output, \"\tjz L%dBit%d\\n\", kcbitKcdc1, ibit + 3);\n    Test(ibit + 3);\n    fprintf(output, \"\tjz L%dBit%d\\n\", kcbitKcdc2, ibit + 4);\n    fprintf(output, \"\tjmp L%dBit%d\\n\", kcbitKcdc3, ibit + 4);\n\n    Literal(ibit + 1);\n    Offset(ibit + 2, kcbitKcdc0, kdibMinKcdc0, 2);\n    Offset(ibit + 3, kcbitKcdc1, kdibMinKcdc1, 2);\n    Offset(ibit + 4, kcbitKcdc2, kdibMinKcdc2, 2);\n    Offset(ibit + 4, kcbitKcdc3, kdibMinKcdc3, 3);\n}\n\nvoid Literal(long ibit)\n{\n    fprintf(output, \"\\n\t// Literal %d\\n\", ibit);\n    fprintf(output, \"LLiteral%d:\\n\", ibit);\n\n    fprintf(output, \"#ifdef SAFETY\\n\"\n                    \"\tcmp edi,pbLimDst\\n\"\n                    \"\tjae LFail\\n\"\n                    \"#endif //SAFETY\\n\");\n\n    if (ibit == 8)\n    {\n        fprintf(output, \"\tmov [edi],ah\\n\"\n                        \"\tinc edi\\n\");\n    }\n    else\n    {\n        fprintf(output,\n                \"\tmov edx,eax\\n\"\n                \"\tshr edx,%d\\n\"\n                \"\tmov [edi],dl\\n\"\n                \"\tinc edi\\n\",\n                ibit);\n    }\n\n    ibit += 8;\n    Advance(ibit / 8);\n    fprintf(output, \"\tjmp LBlock%d\\n\", ibit & 0x07);\n}\n\nvoid Offset(long ibit, long cbit, long dibBase, long cbBase)\n{\n    fprintf(output, \"\\nL%dBit%d:\\n\", cbit, ibit);\n\n    fprintf(output, \"\tmov esi,eax\\n\");\n    fprintf(output, \"\tmov ecx,%d\\n\", cbBase);\n    fprintf(output, \"\tshr esi,%d\\n\", ibit);\n    fprintf(output, \"\tand esi,%d\\n\", (1 << cbit) - 1);\n\n    if (kcbitKcdc3 == cbit)\n    {\n        // Put in the test for being done\n        fprintf(output, \"\tcmp esi,%d\\n\", (1 << cbit) - 1);\n        fprintf(output, \"\tje LDone\\n\");\n    }\n\n    if (1 == dibBase)\n        fprintf(output, \"\tinc esi\\n\");\n    else\n        fprintf(output, \"\tadd esi,%d\\n\", dibBase);\n\n    ibit += cbit;\n    Advance(ibit / 8);\n    ibit &= 0x07;\n\n    GetLen(ibit, dibBase < sizeof(long));\n}\n\nvoid GetLen(long ibit, bool fTestForDword)\n{\n    static long _cactCall = 0;\n    long cbit;\n\n    _cactCall++;\n    for (cbit = 0; cbit <= kcbitMaxLenKcdc; cbit++)\n    {\n        Test(ibit + cbit);\n        fprintf(output, \"\tjz LLen%d_%d\\n\", _cactCall, cbit);\n    }\n    fprintf(output, \"\tjmp LFail\\n\");\n\n    for (cbit = 0; cbit <= kcbitMaxLenKcdc; cbit++)\n    {\n        fprintf(output, \"LLen%d_%d:\\n\", _cactCall, cbit);\n        if (cbit > 0)\n        {\n            fprintf(output, \"\tmov edx,eax\\n\");\n            fprintf(output, \"\tshr edx,%d\\n\", ibit + cbit + 1);\n            fprintf(output, \"\tadd ecx,%d\\n\", (1 << cbit) - 1);\n            fprintf(output, \"\tand edx,%d\\n\", (1 << cbit) - 1);\n            fprintf(output, \"\tadd ecx,edx\\n\");\n        }\n        CallCopy(ibit + cbit + cbit + 1, cbit, fTestForDword);\n    }\n}\n\nvoid CallCopy(long ibit, long cbit, bool fTestForDword)\n{\n    Advance(ibit / 8);\n    ibit &= 0x07;\n\n    if (cbit < kcbitMinMoveByDword)\n        fprintf(output, \"jmp LCopyByte%d\\n\", ibit);\n    else\n    {\n        if (fTestForDword)\n        {\n            fprintf(output, \"\tcmp esi,4\\n\");\n            fprintf(output, \"\tjb LCopyByte%d\\n\", ibit);\n        }\n        fprintf(output, \"\tjmp LCopyDword%d\\n\", ibit);\n    }\n}\n"
  },
  {
    "path": "kauai/src/keys.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Declarations related to key handling\n\n***************************************************************************/\n#ifndef KEYS_H\n#define KEYS_H\n\n#define vkNil 0\n\n#define kvkLeft MacWin(0x1C, VK_LEFT)\n#define kvkRight MacWin(0x1D, VK_RIGHT)\n#define kvkUp MacWin(0x1E, VK_UP)\n#define kvkDown MacWin(0x1F, VK_DOWN)\n#define kvkHome MacWin(0x01, VK_HOME)\n#define kvkEnd MacWin(0x04, VK_END)\n#define kvkPageUp MacWin(0x0B, VK_PRIOR)\n#define kvkPageDown MacWin(0x0C, VK_NEXT)\n\n#define kvkBack MacWin(0x08, VK_BACK)\n#define kvkDelete MacWin(0x7F, VK_DELETE)\n#define kvkReturn MacWin(0x0D, VK_RETURN)\n\n#endif //! KEYS_H\n"
  },
  {
    "path": "kauai/src/kiddef.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    KidFrame #defines that might get used by a source file for a tool, such\n    as source files for the chunky compiler.  This file should only contain\n    #defines, and the values for the #defines should be constant values\n    (no arithmetic).\n\n***************************************************************************/\n#ifndef KIDDEF_H\n#define KIDDEF_H\n\n/***************************************************************************\n    Cursor state constants.\n        bits 0-7 are reserved by Frame.\n        bits 8-15 are reserved by KidFrame.\n        bits 16-31 are reserved for application use.\n***************************************************************************/\n#define fcustChildGok 256\n#define fcustHotText 512 // over hot text in a help topic\n\n/***************************************************************************\n    Standard command handler IDs.\n        Frame reserves values < 10000.\n        KidFrame reserves values >= 10000 and < 20000.\n        Values >= 20000 can be used by the application.\n***************************************************************************/\n#define khidClokGokGen 10001   // for use by kidspace gobs\n#define khidClokGokReset 10002 // for use by kidspace gobs - resets on input\n\n#define khidLimKidFrame 20000\n\n/***************************************************************************\n    Chunky file constants.\n***************************************************************************/\n#define kctgGokd 'GOKD'\n#define kctgAnimation 'GLSC'\n#define kctgHelpTopic 'HTOP'\n#define kctgTile 'TILE'\n#define kctgEditControl 'EDIT' // help balloon edit control tag\n#define kctgFill 'FILL'\n#define kctgVideo 'VIDE'\n\n/***************************************************************************\n    GOK defines\n***************************************************************************/\n#define kdchidState 0x00010000 // this times the sno is the base chid\n#define ksnoInit 1\n\n// mouse state CHIDs - offsets from base chid\n#define kchidOnState 0x0001    // bit indicating on/off state (1 for on)\n#define kchidMouseState 0x0002 // bit indicating mouse state (1 for down)\n#define kchidUpOff 0x0000      // 00\n#define kchidUpOn 0x0001       // 01\n#define kchidDownOff 0x0002    // 10\n#define kchidDownOn 0x0003     // 11\n\n// mouse transition CHIDs - offsets from base chid\n// bit 4 set;  bits 2 & 3 are the from state; bits 1 & 0 are the to state\n// note that 00 - 10 is not allowed\n#define kchidTransBase 0x0010  // bit set for a transition state\n#define kchidMaskDst 0x0003    // mask of destination state\n#define kshSrcTrans 2          // number of bits to shift source state\n#define kchidEnterState 0x0010 // this is a transitionary chid\n#define kchidUpOffOn 0x0011    // 00 - 01 (roll on)\n#define kchidUpOnOff 0x0014    // 01 - 00 (roll off)\n#define kchidUpDownOn 0x0017   // 01 - 11 (mouse down event - start tracking)\n#define kchidDownUpOn 0x001D   // 11 - 01 (click event - stop tracking)\n#define kchidDownOnOff 0x001E  // 11 - 10 (continue tracking)\n#define kchidDownOffOn 0x001B  // 10 - 11 (continue tracking)\n#define kchidDownUpOff 0x0018  // 10 - 00 (stop mouse tracking)\n\n// script CHIDs - offsets from base chid\n#define kchidAlarm 0x0102\n\n// types of GOKs that can be created\n#define gokkNil 0\n#define gokkRectangle 1 // all odd gokk's are rectangular\n#define gokkNoHitThis 2 // this bit means it's invisible to the mouse\n#define gokkNoHitKids 4 // this bit means its childrean are invis to mouse\n#define gokkNoHit 6     // means it and its childrean are invis to mouse\n#define gokkNoSlip 8    // anims for this GOK shouldn't slip (by default)\n\n/***************************************************************************\n    Misc. constants\n***************************************************************************/\n#define kcnoToolTipNoAffect 0xFFFFFFFE\n\n/***************************************************************************\n    Error codes\n***************************************************************************/\n\n/**********************************************\n    20000 - 29999: KidFrame-issued error codes\n**********************************************/\n\n// 20000 - 20099: help errors\n#define ercHelpReadFailed 20000\n#define ercHelpSaveFailed 20001\n\n#endif //! KIDDEF_H\n"
  },
  {
    "path": "kauai/src/kidframe.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Standard KidFrame header file.\n\n***************************************************************************/\n#ifndef KIDFRAME_H\n#define KIDFRAME_H\n\n#include \"frame.h\"\n#include \"kiddef.h\"\n\n// forward declarations\ntypedef class WOKS *PWOKS;\ntypedef class SCEG *PSCEG;\ntypedef class GOK *PGOK;\ntypedef class HBAL *PHBAL;\ntypedef struct HTOP *PHTOP;\n\n#include \"scrcomg.h\"\n#include \"kidworld.h\"\n#include \"screxeg.h\"\n#include \"kidspace.h\"\n#include \"kidhelp.h\"\n\n#endif //! KIDFRAME_H\n"
  },
  {
    "path": "kauai/src/kidhelp.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Code for implementing help balloons in kidspace.\n\n***************************************************************************/\n#include \"kidframe.h\"\nASSERTNAME\n\nBEGIN_CMD_MAP(TXHG, TXRG)\nON_CID_GEN(cidSelIdle, pvNil, pvNil)\nON_CID_ME(cidActivateSel, pvNil, pvNil)\nEND_CMD_MAP_NIL()\n\nRTCLASS(TXHD)\nRTCLASS(TXHG)\nRTCLASS(HBAL)\nRTCLASS(HBTN)\n\nconst achar kchHelpString = '~';\n\n/***************************************************************************\n    Constructor for a help text document.\n***************************************************************************/\nTXHD::TXHD(PRCA prca, PDOCB pdocb, ulong grfdoc) : TXHD_PAR(pdocb, grfdoc)\n{\n    AssertPo(prca, 0);\n    _prca = prca;\n    _prca->AddRef();\n    _htop.cnoBalloon = cnoNil;\n    _htop.cnoScript = cnoNil;\n    _htop.ckiSnd.ctg = ctgNil;\n    _htop.ckiSnd.cno = cnoNil;\n}\n\n/***************************************************************************\n    Destructor for a help text document.\n***************************************************************************/\nTXHD::~TXHD(void)\n{\n    ReleasePpo(&_prca);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a TXHD.\n***************************************************************************/\nvoid TXHD::AssertValid(ulong grf)\n{\n    TXHD_PAR::AssertValid(0);\n    AssertPo(_prca, 0);\n}\n\n/***************************************************************************\n    Mark memory for the TXHD.\n***************************************************************************/\nvoid TXHD::MarkMem(void)\n{\n    AssertValid(0);\n    TXHD_PAR::MarkMem();\n    MarkMemObj(_prca);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Static method to read a help text document from the given (pcfl, ctg, cno)\n    and using the given prca as the source for pictures and buttons.\n***************************************************************************/\nPTXHD TXHD::PtxhdReadChunk(PRCA prca, PCFL pcfl, CTG ctg, CNO cno, PSTRG pstrg, ulong grftxhd)\n{\n    AssertPo(prca, 0);\n    AssertPo(pcfl, 0);\n    PTXHD ptxhd;\n\n    if (pvNil == (ptxhd = NewObj TXHD(prca)) || !ptxhd->_FReadChunk(pcfl, ctg, cno, pstrg, grftxhd))\n    {\n        PushErc(ercHelpReadFailed);\n        ReleasePpo(&ptxhd);\n    }\n\n    AssertNilOrPo(ptxhd, fobjAssertFull);\n    return ptxhd;\n}\n\n/***************************************************************************\n    Read the given chunk into this TXRD.\n***************************************************************************/\nbool TXHD::_FReadChunk(PCFL pcfl, CTG ctg, CNO cno, PSTRG pstrg, ulong grftxhd)\n{\n    AssertPo(pcfl, 0);\n    AssertNilOrPo(pstrg, 0);\n    BLCK blck;\n    KID kid;\n    HTOPF htopf;\n    long stid, lw;\n    long cp, cpMac, cpMin;\n    STN stn;\n    bool fRet = fFalse;\n\n    if (pcfl->FForest(ctg, cno))\n    {\n        CKI cki;\n\n        if (pvNil == (pcfl = pcfl->PcflReadForest(ctg, cno, fFalse)))\n            goto LFail;\n        if (!pcfl->FGetCkiCtg(ctg, 0, &cki))\n            goto LFail;\n        cno = cki.cno;\n    }\n    else\n        pcfl->AddRef();\n\n    // The old version of HTOP didn't have the ckiSnd - accept both old and new\n    // versions.\n    htopf.htop.ckiSnd.ctg = ctgNil;\n    htopf.htop.ckiSnd.cno = cnoNil;\n    if (!pcfl->FFind(ctg, cno, &blck) || !blck.FUnpackData() ||\n        size(HTOPF) != blck.Cb() && offset(HTOPF, htop.ckiSnd) != blck.Cb() || !blck.FRead(&htopf))\n    {\n        goto LFail;\n    }\n\n    if (htopf.bo == kboOther)\n        SwapBytesBom(&htopf.htop, kbomHtop);\n    else if (htopf.bo != kboCur)\n        goto LFail;\n\n    if (!pcfl->FGetKidChidCtg(ctg, cno, 0, kctgRichText, &kid))\n        goto LFail;\n\n    if (!TXHD_PAR::_FReadChunk(pcfl, kid.cki.ctg, kid.cki.cno, FPure(grftxhd & ftxhdCopyText)))\n    {\n        goto LFail;\n    }\n\n    if ((grftxhd & ftxhdExpandStrings) && pvNil != pstrg)\n    {\n        SetInternal();\n        SuspendUndo();\n        cpMac = CpMac();\n        for (cp = 0; cp < cpMac;)\n        {\n            if (_ChFetch(cp) != kchHelpString)\n            {\n                cp++;\n                continue;\n            }\n\n            cpMin = cp++;\n            for (stid = 0; cp < cpMac && FIn(lw = _ChFetch(cp) - '0', 0, 10); cp++)\n                stid = stid * 10 + lw;\n            if (!pstrg->FGet(stid, &stn))\n                Warn(\"string missing\");\n            if (FReplaceRgch(stn.Psz(), stn.Cch(), cpMin, cp - cpMin, fdocNil))\n            {\n                cp = cpMin + stn.Cch();\n                cpMac = CpMac();\n            }\n        }\n    }\n\n    fRet = fTrue;\n    _htop = htopf.htop;\n    AssertThis(0);\n\nLFail:\n    // Release our hold on the CFL\n    ReleasePpo(&pcfl);\n\n    return fRet;\n}\n\n/***************************************************************************\n    Do any necessary munging of the AG entry on open.  Return false if\n    we don't recognize this argument type.\n***************************************************************************/\nbool TXHD::_FOpenArg(long icact, byte sprm, short bo, short osk)\n{\n    CTG ctg;\n    CNO cno;\n    long cb;\n    long rglw[2];\n    long clw;\n\n    if (TXHD_PAR::_FOpenArg(icact, sprm, bo, osk))\n        return fTrue;\n\n    cb = _pagcact->Cb(icact);\n    switch (sprm)\n    {\n    case sprmGroup:\n        if (cb < size(byte) + size(CNO))\n            return fFalse;\n        if (bo == kboOther)\n        {\n            _pagcact->GetRgb(icact, size(byte), size(CNO), &cno);\n            SwapBytesRglw(&cno, 1);\n            _pagcact->PutRgb(icact, size(byte), size(CNO), &cno);\n        }\n        break;\n\n    case sprmObject:\n        if (cb < size(CTG))\n            return fFalse;\n        _pagcact->GetRgb(icact, 0, size(CTG), &ctg);\n        if (bo == kboOther)\n        {\n            SwapBytesRglw(&ctg, 1);\n            _pagcact->PutRgb(icact, 0, size(CTG), &ctg);\n        }\n        cb -= size(CTG);\n\n        switch (ctg)\n        {\n        case kctgMbmp:\n        case kctgEditControl:\n            clw = 1;\n            goto LSwapBytes;\n\n        case kctgGokd:\n            clw = 2;\n        LSwapBytes:\n            AssertIn(clw, 1, CvFromRgv(rglw) + 1);\n            if (cb < clw * size(long))\n                return fFalse;\n\n            if (bo == kboOther)\n            {\n                _pagcact->GetRgb(icact, size(CTG), clw * size(long), rglw);\n                SwapBytesRglw(rglw, clw);\n                _pagcact->PutRgb(icact, size(CTG), clw * size(long), rglw);\n            }\n            break;\n\n        default:\n            return fFalse;\n        }\n        break;\n\n    default:\n        return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Save a help topic to the given chunky file.  Fill in *pcki with where\n    we put the root chunk.\n***************************************************************************/\nbool TXHD::FSaveToChunk(PCFL pcfl, CKI *pcki, bool fRedirectText)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n    AssertVarMem(pcki);\n    BLCK blck;\n    CKI cki;\n    HTOPF htopf;\n\n    pcki->ctg = kctgHelpTopic;\n    htopf.bo = kboCur;\n    htopf.osk = koskCur;\n    htopf.htop = _htop;\n    if (!pcfl->FAdd(size(HTOPF), pcki->ctg, &pcki->cno, &blck))\n    {\n        PushErc(ercHelpSaveFailed);\n        return fFalse;\n    }\n    if (!blck.FWrite(&htopf))\n        goto LFail;\n\n    if (!TXHD_PAR::FSaveToChunk(pcfl, &cki, fRedirectText))\n        goto LFail;\n\n    // add the text chunk and write it\n    if (!pcfl->FAdoptChild(pcki->ctg, pcki->cno, cki.ctg, cki.cno))\n    {\n        pcfl->Delete(cki.ctg, cki.cno);\n    LFail:\n        pcfl->Delete(pcki->ctg, pcki->cno);\n        PushErc(ercHelpSaveFailed);\n        return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the bounding rectangle for the given object.\n***************************************************************************/\nbool TXHD::_FGetObjectRc(long icact, byte sprm, PGNV pgnv, PCHP pchp, RC *prc)\n{\n    AssertThis(0);\n    AssertIn(icact, 0, _pagcact->IvMac());\n    AssertIn(sprm, sprmMinObj, 0x100);\n    AssertPo(pgnv, 0);\n    AssertVarMem(pchp);\n    AssertVarMem(prc);\n    long cb;\n    PMBMP pmbmp;\n    PCRF pcrf;\n    KID kid;\n    long rglw[2];\n\n    if (sprmObject != sprm)\n        return fFalse;\n\n    Assert(size(CTG) == size(long), 0);\n    cb = _pagcact->Cb(icact);\n    if (cb < size(rglw))\n        return fFalse;\n    _pagcact->GetRgb(icact, 0, size(rglw), rglw);\n    switch ((CTG)rglw[0])\n    {\n    case kctgMbmp:\n        pmbmp = (PMBMP)_prca->PbacoFetch(rglw[0], rglw[1], MBMP::FReadMbmp);\n        goto LHaveMbmp;\n\n    case kctgGokd:\n        pcrf = _prca->PcrfFindChunk(rglw[0], rglw[1]);\n        if (pvNil == pcrf)\n            return fFalse;\n        if (!pcrf->Pcfl()->FGetKidChidCtg(rglw[0], rglw[1], 0x10000, kctgMbmp, &kid))\n        {\n            return fFalse;\n        }\n        pmbmp = (PMBMP)pcrf->PbacoFetch(kid.cki.ctg, kid.cki.cno, MBMP::FReadMbmp);\n    LHaveMbmp:\n        if (pvNil == pmbmp)\n            return fFalse;\n        pmbmp->GetRc(prc);\n        ReleasePpo(&pmbmp);\n        prc->Offset(-prc->xpLeft, -prc->ypBottom);\n        return fTrue;\n\n    case kctgEditControl:\n        pgnv->SetFont(pchp->onn, pchp->grfont, pchp->dypFont, tahLeft, tavBaseline);\n        pgnv->GetRcFromRgch(prc, pvNil, 0);\n        prc->Inset(0, -1);\n        prc->xpLeft = 0;\n        prc->xpRight = rglw[1];\n        return fTrue;\n\n    default:\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Draw the given object.\n***************************************************************************/\nbool TXHD::_FDrawObject(long icact, byte sprm, PGNV pgnv, long *pxp, long yp, PCHP pchp, RC *prcClip)\n{\n    AssertIn(icact, 0, _pagcact->IvMac());\n    Assert(sprm >= sprmObject, 0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(pxp);\n    AssertVarMem(pchp);\n    AssertVarMem(prcClip);\n    long cb;\n    RC rc;\n    PMBMP pmbmp;\n    PCRF pcrf;\n    KID kid;\n    long rglw[2];\n    bool fDrawMbmp = fTrue;\n\n    if (sprmObject != sprm)\n        return fFalse;\n\n    cb = _pagcact->Cb(icact);\n    if (cb < size(rglw))\n        return fFalse;\n    _pagcact->GetRgb(icact, 0, size(rglw), rglw);\n    switch ((CTG)rglw[0])\n    {\n    case kctgMbmp:\n        pmbmp = (PMBMP)_prca->PbacoFetch(rglw[0], rglw[1], MBMP::FReadMbmp);\n        goto LHaveMbmp;\n\n    case kctgGokd:\n        fDrawMbmp = !_fHideButtons;\n        pcrf = _prca->PcrfFindChunk(rglw[0], rglw[1]);\n        if (pvNil == pcrf)\n            return fFalse;\n        if (!pcrf->Pcfl()->FGetKidChidCtg(rglw[0], rglw[1], ChidFromSnoDchid(ksnoInit, 0), kctgMbmp, &kid))\n        {\n            return fFalse;\n        }\n        pmbmp = (PMBMP)pcrf->PbacoFetch(kid.cki.ctg, kid.cki.cno, MBMP::FReadMbmp);\n    LHaveMbmp:\n        if (pvNil == pmbmp)\n            return fFalse;\n        pmbmp->GetRc(&rc);\n        rc.Offset(*pxp - rc.xpLeft, yp - rc.ypBottom);\n        if (kacrClear != pchp->acrBack)\n            pgnv->FillRc(&rc, pchp->acrBack);\n        if (fDrawMbmp)\n            pgnv->DrawMbmp(pmbmp, &rc);\n        ReleasePpo(&pmbmp);\n        if (pchp->grfont & fontBoxed)\n        {\n            pgnv->SetPenSize(1, 1);\n            pgnv->FrameRcApt(&rc, &vaptGray, pchp->acrFore, kacrClear);\n        }\n        *pxp += rc.Dxp();\n        return fTrue;\n\n    case kctgEditControl:\n        pgnv->SetFont(pchp->onn, pchp->grfont, pchp->dypFont, tahLeft, tavBaseline);\n        pgnv->GetRcFromRgch(&rc, pvNil, 0, 0, yp);\n        rc.Inset(0, -1);\n        rc.xpLeft = *pxp;\n        rc.xpRight = rc.xpLeft + rglw[1];\n        *pxp = rc.xpRight;\n        pgnv->SetPenSize(1, 1);\n        pgnv->FrameRc(&rc, kacrBlack);\n        rc.Inset(1, 1);\n        pgnv->FillRc(&rc, pchp->acrBack);\n        return fTrue;\n\n    default:\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Insert a picture into the help text document.\n***************************************************************************/\nbool TXHD::FInsertPicture(CNO cno, void *pvExtra, long cbExtra, long cp, long ccpDel, PCHP pchp, ulong grfdoc)\n{\n    AssertThis(0);\n    AssertPvCb(pvExtra, cbExtra);\n    AssertIn(cp, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() - cp);\n    AssertNilOrVarMem(pchp);\n    CKI cki;\n    void *pv = &cki;\n    bool fRet = fFalse;\n\n    cki.ctg = kctgMbmp;\n    cki.cno = cno;\n    if (cbExtra > 0)\n    {\n        if (!FAllocPv(&pv, size(CKI) + cbExtra, fmemNil, mprNormal))\n            return fFalse;\n        CopyPb(&cki, pv, size(CKI));\n        CopyPb(pvExtra, PvAddBv(pv, size(CKI)), cbExtra);\n    }\n\n    fRet = FInsertObject(pv, size(CKI) + cbExtra, cp, ccpDel, pchp, grfdoc);\n\n    if (pv != &cki)\n        FreePpv(&pv);\n    return fRet;\n}\n\n/***************************************************************************\n    Insert a new button\n***************************************************************************/\nbool TXHD::FInsertButton(CNO cno, CNO cnoTopic, void *pvExtra, long cbExtra, long cp, long ccpDel, PCHP pchp,\n                         ulong grfdoc)\n{\n    AssertThis(0);\n    AssertPvCb(pvExtra, cbExtra);\n    AssertIn(cp, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() - cp);\n    AssertNilOrVarMem(pchp);\n    byte rgb[size(CKI) + size(long)];\n    CKI *pcki = (CKI *)rgb;\n    CNO *pcnoTopic = (CNO *)(pcki + 1);\n    ;\n    void *pv = rgb;\n    bool fRet = fFalse;\n\n    pcki->ctg = kctgGokd;\n    pcki->cno = cno;\n    *pcnoTopic = cnoTopic;\n    if (cbExtra > 0)\n    {\n        if (!FAllocPv(&pv, size(rgb) + cbExtra, fmemNil, mprNormal))\n            return fFalse;\n        CopyPb(rgb, pv, size(rgb));\n        CopyPb(pvExtra, PvAddBv(pv, size(rgb)), cbExtra);\n    }\n\n    fRet = FInsertObject(pv, size(rgb) + cbExtra, cp, ccpDel, pchp, grfdoc);\n\n    if (pv != rgb)\n        FreePpv(&pv);\n\n    return fRet;\n}\n\n/***************************************************************************\n    Group the given text into the given group.  lw == 0 indicates no group.\n    Any non-zero number is a group.\n***************************************************************************/\nbool TXHD::FGroupText(long cp1, long cp2, byte bGroup, CNO cnoTopic, PSTN pstnTopic)\n{\n    AssertThis(0);\n    AssertNilOrPo(pstnTopic, 0);\n    AssertIn(cp1, 0, CpMac());\n    AssertIn(cp2, 0, CpMac());\n    SPVM spvm;\n\n    SortLw(&cp1, &cp2);\n    if (cp1 == cp2)\n        return fTrue;\n\n    if (!FSetUndo(cp1, cp2, cp2 - cp1))\n        return fFalse;\n\n    spvm.sprm = sprmGroup;\n    spvm.lwMask = -1;\n    if (bGroup == 0)\n    {\n        // means no grouping\n        spvm.lw = 0;\n    }\n    else\n    {\n        byte rgb[size(byte) + size(CNO) + kcbMaxDataStn];\n        long cb = size(byte) + size(CNO);\n\n        rgb[0] = bGroup;\n        CopyPb(&cnoTopic, rgb + size(byte), size(CNO));\n        if (pvNil != pstnTopic && pstnTopic->Cch() > 0)\n        {\n            pstnTopic->GetData(rgb + cb);\n            cb += pstnTopic->CbData();\n        }\n\n        if (!_FEnsureInAg(sprmGroup, rgb, cb, &spvm.lw))\n        {\n            CancelUndo();\n            return fFalse;\n        }\n    }\n\n    if (!_pglmpe->FEnsureSpace(2))\n    {\n        _ReleaseRgspvm(&spvm, 1);\n        CancelUndo();\n        return fFalse;\n    }\n\n    _ApplyRgspvm(cp1, cp2 - cp1, &spvm, 1);\n    CommitUndo();\n\n    AssertThis(0);\n    InvalAllDdg(cp1, cp2 - cp1, cp2 - cp1);\n    return fTrue;\n}\n\n/***************************************************************************\n    Determine if the given cp is in a grouped text range.\n***************************************************************************/\nbool TXHD::FGrouped(long cp, long *pcpMin, long *pcpLim, byte *pbGroup, CNO *pcnoTopic, PSTN pstnTopic)\n{\n    AssertThis(0);\n    AssertIn(cp, 0, CpMac());\n    AssertNilOrVarMem(pcpMin);\n    AssertNilOrVarMem(pcpLim);\n    AssertNilOrVarMem(pbGroup);\n    AssertNilOrVarMem(pcnoTopic);\n    AssertNilOrPo(pstnTopic, 0);\n    MPE mpe;\n    byte bGroup = 0;\n\n    if (!_FFindMpe(_SpcpFromSprmCp(sprmGroup, cp), &mpe, pcpLim))\n    {\n        mpe.lw = 0;\n        mpe.spcp = 0;\n    }\n\n    if (mpe.lw > 0)\n    {\n        byte *prgb;\n        long cb;\n\n        prgb = (byte *)_pagcact->PvLock(mpe.lw - 1, &cb);\n        cb -= size(byte) + size(CNO); // group number, cnoTopic\n        if (cb < 0)\n            goto LFail;\n\n        bGroup = prgb[0];\n        if (bGroup == 0)\n        {\n        LFail:\n            Bug(\"bad group data\");\n            _pagcact->Unlock();\n            goto LNotGrouped;\n        }\n\n        if (pvNil != pcnoTopic)\n            CopyPb(prgb + size(byte), pcnoTopic, size(CNO));\n        if (pvNil != pstnTopic)\n        {\n            if (cb > 0)\n                pstnTopic->FSetData(prgb + size(byte) + size(CNO), cb);\n            else\n                pstnTopic->SetNil();\n        }\n        _pagcact->Unlock();\n    }\n    else\n    {\n    LNotGrouped:\n        if (pvNil != pcnoTopic)\n            *pcnoTopic = cnoNil;\n        if (pvNil != pstnTopic)\n            pstnTopic->SetNil();\n    }\n\n    if (pvNil != pbGroup)\n        *pbGroup = bGroup;\n    if (pvNil != pcpMin)\n        *pcpMin = _CpFromSpcp(mpe.spcp);\n\n    return bGroup != 0;\n}\n\n/***************************************************************************\n    Get the help topic information.\n***************************************************************************/\nvoid TXHD::GetHtop(PHTOP phtop)\n{\n    AssertThis(0);\n    AssertVarMem(phtop);\n\n    *phtop = _htop;\n}\n\n/***************************************************************************\n    Set the topic info.\n***************************************************************************/\nvoid TXHD::SetHtop(PHTOP phtop)\n{\n    AssertThis(0);\n    AssertVarMem(phtop);\n\n    _htop = *phtop;\n    SetDirty();\n}\n\n/***************************************************************************\n    Constructor for a TXHG.\n***************************************************************************/\nTXHG::TXHG(PWOKS pwoks, PTXHD ptxhd, PGCB pgcb) : TXRG(ptxhd, pgcb)\n{\n    AssertBaseThis(0);\n    AssertPo(pwoks, 0);\n\n    _pwoks = pwoks;\n}\n\n/***************************************************************************\n    Create a new help topic display gob.\n***************************************************************************/\nPTXHG TXHG::PtxhgNew(PWOKS pwoks, PTXHD ptxhd, PGCB pgcb)\n{\n    PTXHG ptxhg;\n\n    if (pvNil == (ptxhg = NewObj TXHG(pwoks, ptxhd, pgcb)))\n        return pvNil;\n    if (!ptxhg->_FInit())\n    {\n        ReleasePpo(&ptxhg);\n        return pvNil;\n    }\n    return ptxhg;\n}\n\n/***************************************************************************\n    Inititalize the display gob for a help balloon topic.\n***************************************************************************/\nbool TXHG::_FInit(void)\n{\n    AssertBaseThis(0);\n    PRCA prca;\n    long cp, cb;\n    void *pv;\n    CKI *pcki;\n    long dxp;\n    CNO cno;\n    long xp, ypBase;\n    CNO cnoTopic;\n    byte bGroup;\n    long lwMax;\n    RTVN rtvn;\n    long hid;\n    CHP chp;\n    RC rc;\n    EDPAR edpar;\n    STN stn;\n    PTXHD ptxhd = Ptxhd();\n\n    if (!TXHG_PAR::_FInit())\n        return fFalse;\n\n    // find the max of the group numbers\n    lwMax = 0;\n    for (cp = 0; cp < ptxhd->CpMac();)\n    {\n        ptxhd->FGrouped(cp, pvNil, &cp, &bGroup);\n        lwMax = LwMax((long)bGroup, lwMax);\n    }\n\n    // find a base hid that covers lwMax buttons\n    _hidBase = 0;\n    if (lwMax > 0)\n    {\n        _hidBase = CMH::HidUnique(lwMax) - 1;\n        stn = PszLit(\"_gidBase\");\n        rtvn.SetFromStn(&stn);\n        if (!FAssignRtvm(PgobPar()->Ppglrtvm(), &rtvn, _hidBase))\n            return fFalse;\n    }\n\n    prca = Ptxhd()->Prca();\n    for (cp = 0; Ptxhd()->FFetchObject(cp, &cp, &pv, &cb); cp++)\n    {\n        if (pvNil == pv)\n            continue;\n\n        if (cb < size(CTG))\n            goto LContinue;\n\n        switch (*(CTG *)pv)\n        {\n        case kctgEditControl:\n            if (cb < size(ECOS))\n                goto LContinue;\n            dxp = ((ECOS *)pv)->dxp;\n            FreePpv(&pv);\n\n            // get the bounding rectangle\n            _GetXpYpFromCp(cp, pvNil, pvNil, &xp, &ypBase, fFalse);\n            _FetchChp(cp, &chp);\n            _pgnv->SetFont(chp.onn, chp.grfont, chp.dypFont, tahLeft, tavBaseline);\n            _pgnv->GetRcFromRgch(&rc, pvNil, 0);\n            rc.Offset(0, ypBase + chp.dypOffset);\n            rc.xpLeft = xp + 1;\n            rc.xpRight = xp + dxp - 1;\n\n            Ptxhd()->FGrouped(cp, pvNil, pvNil, &bGroup);\n            if (bGroup == 0 || _pwoks->PcmhFromHid(hid = _hidBase + bGroup) != pvNil)\n            {\n                hid = CMH::HidUnique();\n            }\n            if (chp.acrBack == kacrClear)\n                chp.acrBack = kacrWhite;\n            edpar.Set(hid, this, fgobNil, kginMark, &rc, pvNil, chp.onn, chp.grfont, chp.dypFont, tahLeft, tavTop,\n                      chp.acrFore, chp.acrBack);\n            if (pvNil == EDSL::PedslNew(&edpar))\n                return fFalse;\n            break;\n\n        case kctgGokd:\n            if (cb < size(CKI) + size(CNO))\n                goto LContinue;\n            pcki = (CKI *)pv;\n            cno = pcki->cno;\n            cnoTopic = *(CNO *)(pcki + 1);\n            FreePpv(&pv);\n\n            _GetXpYpFromCp(cp, pvNil, pvNil, &xp, &ypBase, fFalse);\n            _FetchChp(cp, &chp);\n            Ptxhd()->FGrouped(cp, pvNil, pvNil, &bGroup, cnoTopic == cnoNil ? &cnoTopic : pvNil);\n            if (bGroup == 0 || _pwoks->PcmhFromHid(hid = _hidBase + bGroup) != pvNil)\n            {\n                hid = CMH::HidUnique();\n            }\n            if (pvNil == HBTN::PhbtnNew(_pwoks, this, hid, cno, prca, bGroup, cnoTopic, xp, ypBase + chp.dypOffset))\n            {\n                return fFalse;\n            }\n            break;\n\n        default:\n        LContinue:\n            FreePpv(&pv);\n            break;\n        }\n    }\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Return whether the point is over hot (marked text).\n***************************************************************************/\nbool TXHG::FPtIn(long xp, long yp)\n{\n    AssertThis(0);\n\n    if (!TXHG_PAR::FPtIn(xp, yp))\n        return fFalse;\n    return FGroupFromPt(xp, yp);\n}\n\n/***************************************************************************\n    Track the mouse.\n***************************************************************************/\nbool TXHG::FCmdTrackMouse(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    pcmd->grfcust = _pwoks->GrfcustAdjust(pcmd->grfcust);\n    if (pcmd->cid == cidMouseDown)\n    {\n        // first response to mouse down\n        Assert(vpcex->PgobTracking() == pvNil, \"mouse already being tracked!\");\n\n        if (!FGroupFromPt(pcmd->xp, pcmd->yp, &_bTrack, &_cnoTrack))\n            return fTrue;\n\n        vpcex->TrackMouse(this);\n        SetCursor(pcmd->grfcust);\n        _grfcust = pcmd->grfcust;\n    }\n    else\n    {\n        Assert(vpcex->PgobTracking() == this, \"not tracking mouse!\");\n        Assert(pcmd->cid == cidTrackMouse, 0);\n        if (!(pcmd->grfcust & fcustMouse))\n        {\n            byte bGroup;\n            CNO cnoTopic;\n            vpcex->EndMouseTracking();\n\n            if (FGroupFromPt(pcmd->xp, pcmd->yp, &bGroup, &cnoTopic) && bGroup == _bTrack && cnoTopic == _cnoTrack)\n            {\n                DoHit(bGroup, cnoTopic, _grfcust, hidNil);\n            }\n        }\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    An edit control got a bad key.\n***************************************************************************/\nbool TXHG::FCmdBadKey(PCMD_BADKEY pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (!FIn(pcmd->hid, _hidBase + 1, _hidBase + 257))\n        return fFalse;\n\n    pcmd->grfcust = _pwoks->GrfcustAdjust(pcmd->grfcust);\n    _FRunScript((byte)(pcmd->hid - _hidBase), pcmd->grfcust, pcmd->hid, (achar)pcmd->ch);\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the number of the group text that the given point is in.\n***************************************************************************/\nbool TXHG::FGroupFromPt(long xp, long yp, byte *pbGroup, CNO *pcnoTopic)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pbGroup);\n    AssertNilOrVarMem(pcnoTopic);\n    long cp;\n\n    if (!_FGetCpFromPt(xp, yp, &cp, fFalse))\n        return 0;\n    return Ptxhd()->FGrouped(cp, pvNil, pvNil, pbGroup, pcnoTopic);\n}\n\n/***************************************************************************\n    A child button was hit, take action.\n***************************************************************************/\nvoid TXHG::DoHit(byte bGroup, CNO cnoTopic, ulong grfcust, long hidHit)\n{\n    AssertThis(0);\n    long lwRet = 0;\n\n    // run the script\n    if (!_FRunScript(bGroup, grfcust, hidHit, chNil, cnoTopic, &lwRet))\n        return;\n\n    if (cnoNil != cnoTopic && !lwRet)\n        _pwoks->PhbalNew(PgobPar()->PgobPar(), Ptxhd()->Prca(), cnoTopic);\n}\n\n/***************************************************************************\n    Run the script. Returns false iff the TXHG doesn't exist after\n    running the script.\n***************************************************************************/\nbool TXHG::_FRunScript(byte bGroup, ulong grfcust, long hidHit, achar ch, CNO cnoTopic, long *plwRet)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(plwRet);\n\n    PSCPT pscpt;\n    PSCEG psceg;\n    HTOP htop;\n    bool fRet = fTrue;\n    PTXHD ptxhd = Ptxhd();\n    PRCA prca = ptxhd->Prca();\n\n    if (pvNil != plwRet)\n        *plwRet = 0;\n\n    ptxhd->GetHtop(&htop);\n    if (cnoNil == htop.cnoScript)\n        return fTrue;\n\n    pscpt = (PSCPT)prca->PbacoFetch(kctgScript, htop.cnoScript, SCPT::FReadScript);\n    if (pvNil != pscpt && pvNil != (psceg = _pwoks->PscegNew(prca, this)))\n    {\n        AssertPo(pscpt, 0);\n        AssertPo(psceg, 0);\n\n        PWOKS pwoks = _pwoks;\n        long grid = Grid();\n        long rglw[5];\n\n        rglw[0] = (long)bGroup;\n        rglw[1] = grfcust;\n        rglw[2] = hidHit;\n        rglw[3] = (long)(byte)ch;\n        rglw[4] = cnoTopic;\n\n        // be careful not to use TXHG variables here in case the TXHG is\n        // freed while the script is running.\n        if (!psceg->FRunScript(pscpt, rglw, 5, plwRet) && pvNil != plwRet)\n            *plwRet = 0;\n        ReleasePpo(&psceg);\n\n        fRet = (this == pwoks->PgobFromGrid(grid));\n    }\n    ReleasePpo(&pscpt);\n\n    return fRet;\n}\n\n/***************************************************************************\n    This handles cidMouseMove.\n***************************************************************************/\nbool TXHG::FCmdMouseMove(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    ulong grfcust = _pwoks->GrfcustAdjust(pcmd->grfcust);\n\n    if (FGroupFromPt(pcmd->xp, pcmd->yp))\n        grfcust |= fcustHotText;\n\n    SetCursor(grfcust);\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the cursor for this TXHG and the given cursor state.\n***************************************************************************/\nvoid TXHG::SetCursor(ulong grfcust)\n{\n    AssertThis(0);\n    PGOB pgob;\n\n    for (pgob = this;;)\n    {\n        pgob = pgob->PgobPar();\n        if (pvNil == pgob)\n        {\n            vpappb->SetCurs(pvNil);\n            break;\n        }\n        if (pgob->FIs(kclsGOK))\n        {\n            ((PGOK)pgob)->SetCursor(grfcust | fcustChildGok);\n            break;\n        }\n    }\n}\n\n/***************************************************************************\n    Create a new help topic balloon based on the given topic number.\n***************************************************************************/\nPHBAL HBAL::PhbalCreate(PWOKS pwoks, PGOB pgobPar, PRCA prca, CNO cnoTopic, PHTOP phtop)\n{\n    AssertPo(pwoks, 0);\n    AssertPo(pgobPar, 0);\n    AssertPo(prca, 0);\n    AssertNilOrVarMem(phtop);\n    PCRF pcrf;\n    PTXHD ptxhd;\n    PHBAL phbal;\n\n    pcrf = prca->PcrfFindChunk(kctgHelpTopic, cnoTopic);\n    if (pvNil == pcrf)\n        return pvNil;\n\n    ptxhd = TXHD::PtxhdReadChunk(prca, pcrf->Pcfl(), kctgHelpTopic, cnoTopic, pwoks->Pstrg());\n    if (pvNil == ptxhd)\n        return pvNil;\n\n    ptxhd->HideButtons();\n    phbal = PhbalNew(pwoks, pgobPar, prca, ptxhd, phtop);\n    ReleasePpo(&ptxhd);\n\n    return phbal;\n}\n\n/***************************************************************************\n    Static method to create a new help balloon based on the given help\n    topic document and htop.\n***************************************************************************/\nPHBAL HBAL::PhbalNew(PWOKS pwoks, PGOB pgobPar, PRCA prca, PTXHD ptxhd, PHTOP phtop)\n{\n    AssertPo(pwoks, 0);\n    AssertPo(pgobPar, 0);\n    AssertPo(ptxhd, 0);\n    AssertPo(prca, 0);\n    AssertNilOrVarMem(phtop);\n    HTOP htop;\n    GCB gcb;\n    PHBAL phbal;\n    long grid;\n\n    ptxhd->GetHtop(&htop);\n    if (pvNil != phtop)\n    {\n        // merge the given htop with the topic's htop.\n        if (cnoNil != phtop->cnoBalloon)\n            htop.cnoBalloon = phtop->cnoBalloon;\n        if (hidNil != phtop->hidThis)\n            htop.hidThis = phtop->hidThis;\n        if (hidNil != phtop->hidTarget)\n            htop.hidTarget = phtop->hidTarget;\n        if (cnoNil != phtop->cnoScript)\n            htop.cnoScript = phtop->cnoScript;\n        htop.dxp += phtop->dxp;\n        htop.dyp += phtop->dyp;\n        if (cnoNil != phtop->ckiSnd.cno && ctgNil != phtop->ckiSnd.ctg)\n            htop.ckiSnd = phtop->ckiSnd;\n    }\n\n    if (htop.hidThis == hidNil)\n        htop.hidThis = CMH::HidUnique();\n    else if (pvNil != (phbal = (PHBAL)pwoks->PcmhFromHid(htop.hidThis)))\n    {\n        if (!phbal->FIs(kclsHBAL))\n        {\n            Bug(\"command handler with this ID already exists\");\n            return pvNil;\n        }\n\n        AssertPo(phbal, 0);\n\n#ifdef REVIEW // shonk: this makes little sense and is bug-prone\n        if (htop.cnoBalloon == phbal->_pgokd->Cno() && prca == phbal->_prca)\n        {\n            // same hid, same GOKD, same prca, so just change the topic\n            if (!phbal->FSetTopic(ptxhd, &htop, prca))\n                return pvNil;\n            return phbal;\n        }\n#endif // REVIEW\n\n        // free the balloon and create the new one.\n        ReleasePpo(&phbal);\n    }\n\n    gcb.Set(htop.hidThis, pgobPar, fgobNil, kginMark);\n    if (pvNil == (phbal = NewObj HBAL(&gcb)))\n        return pvNil;\n    grid = phbal->Grid();\n\n    if (!phbal->_FInit(pwoks, ptxhd, &htop, prca))\n    {\n        ReleasePpo(&phbal);\n        return pvNil;\n    }\n\n    if (!phbal->_FEnterState(ksnoInit))\n    {\n        Warn(\"HBAL immediately destroyed!\");\n        return pvNil;\n    }\n\n    // initialize the topic\n    phbal->_ptxhg->DoHit(0, cnoNil, fcustNil, hidNil);\n    if (phbal != pwoks->PgobFromGrid(grid))\n    {\n        Warn(\"HBAL immediately destroyed 2!\");\n        return pvNil;\n    }\n\n    AssertPo(phbal, 0);\n    return phbal;\n}\n\n/***************************************************************************\n    Constructor for a help balloon.\n***************************************************************************/\nHBAL::HBAL(GCB *pgcb) : HBAL_PAR(pgcb)\n{\n}\n\n/***************************************************************************\n    Initialize the help balloon.\n***************************************************************************/\nbool HBAL::_FInit(PWOKS pwoks, PTXHD ptxhd, HTOP *phtop, PRCA prca)\n{\n    AssertBaseThis(0);\n    AssertPo(ptxhd, 0);\n    AssertVarMem(phtop);\n    AssertPo(prca, 0);\n\n    if (!HBAL_PAR::_FInit(pwoks, phtop->cnoBalloon, prca))\n        return fFalse;\n\n    return _FSetTopic(ptxhd, phtop, prca);\n}\n\n/***************************************************************************\n    Set the topic for this balloon.  Returns false if setting the topic\n    fails or if the balloon is instantly killed by a script.\n***************************************************************************/\nbool HBAL::FSetTopic(PTXHD ptxhd, PHTOP phtop, PRCA prca)\n{\n    AssertThis(0);\n    AssertPo(ptxhd, 0);\n    AssertVarMem(phtop);\n    AssertPo(prca, 0);\n\n    if (!_FSetTopic(ptxhd, phtop, prca))\n        return fFalse;\n\n    return _FEnterState(ksnoInit);\n}\n\n/***************************************************************************\n    Set the topic in the help balloon.  Don't enter the initial state.\n***************************************************************************/\nbool HBAL::_FSetTopic(PTXHD ptxhd, PHTOP phtop, PRCA prca)\n{\n    AssertBaseThis(0);\n    AssertPo(ptxhd, 0);\n    AssertVarMem(phtop);\n    AssertPo(prca, 0);\n\n    PGOB pgob;\n    GCB gcb;\n    PT pt, ptReg;\n    STN stn;\n    RTVN rtvn;\n    PTXHG ptxhgSave = _ptxhg;\n\n    // create the topic DDG.\n    gcb.Set(CMH::HidUnique(), this, fgobNil, kginMark);\n    if (pvNil == (_ptxhg = TXHG::PtxhgNew(_pwoks, ptxhd, &gcb)))\n        goto LFail;\n\n    // set the sound variables\n    stn = PszLit(\"_ctgSound\");\n    rtvn.SetFromStn(&stn);\n    if (!FAssignRtvm(_ptxhg->Ppglrtvm(), &rtvn, phtop->ckiSnd.ctg))\n        goto LFail;\n    stn = PszLit(\"_cnoSound\");\n    rtvn.SetFromStn(&stn);\n    if (!FAssignRtvm(_ptxhg->Ppglrtvm(), &rtvn, phtop->ckiSnd.cno))\n    {\n    LFail:\n        ReleasePpo(&_ptxhg);\n\n        // restore the previous topic DDG\n        _ptxhg = ptxhgSave;\n        return fFalse;\n    }\n    ReleasePpo(&ptxhgSave);\n\n    _ptxhg->GetNaturalSize(&_dxpPref, &_dypPref);\n    if (hidNil == phtop->hidTarget || pvNil == (pgob = _pwoks->PgobFromHid(phtop->hidTarget)))\n    {\n        pgob = PgobPar();\n    }\n\n    if (pgob->FIs(kclsGOK))\n        ((PGOK)pgob)->GetPtReg(&pt);\n    else\n    {\n        RC rc;\n\n        pgob->GetRc(&rc, cooParent);\n        pt.xp = rc.XpCenter();\n        pt.yp = rc.YpCenter();\n    }\n    pgob->MapPt(&pt, cooParent, cooGlobal);\n\n    // point the balloon at the gob\n    PgobPar()->MapPt(&pt, cooGlobal, cooLocal);\n    GetPtReg(&ptReg);\n    _SetGorp(_pgorp, pt.xp - ptReg.xp + phtop->dxp, pt.yp - ptReg.yp + phtop->dyp);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Our representation is changing, so make sure we stay inside our parent\n    and reposition the TXHG.\n***************************************************************************/\nvoid HBAL::_SetGorp(PGORP pgorp, long dxp, long dyp)\n{\n    RC rc1, rc2, rc3;\n\n    HBAL_PAR::_SetGorp(pgorp, dxp, dyp);\n\n    // make sure we stay inside our parent\n    GetRc(&rc1, cooParent);\n    PgobPar()->GetRc(&rc2, cooLocal);\n    rc3.FIntersect(&rc1, &rc2);\n    if (rc3 != rc1)\n    {\n        rc1.PinToRc(&rc2);\n        SetPos(&rc1);\n    }\n\n    // position the TXHG.\n    GetRcContent(&rc1);\n    rc2.Set(0, 0, _dxpPref, _dypPref);\n    rc2.CenterOnRc(&rc1);\n    _ptxhg->SetPos(&rc2);\n}\n\n/***************************************************************************\n    Constructor for a help balloon button.\n***************************************************************************/\nHBTN::HBTN(GCB *pgcb) : HBTN_PAR(pgcb)\n{\n}\n\n/***************************************************************************\n    Create a new help balloon button\n***************************************************************************/\nPHBTN HBTN::PhbtnNew(PWOKS pwoks, PGOB pgobPar, long hid, CNO cno, PRCA prca, byte bGroup, CNO cnoTopic, long xpLeft,\n                     long ypBottom)\n{\n    AssertPo(pwoks, 0);\n    AssertNilOrPo(pgobPar, 0);\n    Assert(hid != hidNil, \"nil ID\");\n    AssertPo(prca, 0);\n    GCB gcb;\n    PHBTN phbtn;\n    RC rcAbs;\n\n    if (pvNil != pwoks->PcmhFromHid(hid))\n    {\n        Bug(\"command handler with this ID already exists\");\n        return pvNil;\n    }\n\n    gcb.Set(hid, pgobPar, fgobNil, kginMark);\n    if (pvNil == (phbtn = NewObj HBTN(&gcb)))\n        return pvNil;\n\n    phbtn->_bGroup = bGroup;\n    phbtn->_cnoTopic = cnoTopic;\n    if (!phbtn->_FInit(pwoks, cno, prca))\n    {\n        ReleasePpo(&phbtn);\n        return pvNil;\n    }\n\n    if (!phbtn->_FEnterState(ksnoInit))\n    {\n        Warn(\"GOK immediately destroyed!\");\n        return pvNil;\n    }\n    phbtn->GetRc(&rcAbs, cooParent);\n    rcAbs.Offset(xpLeft - rcAbs.xpLeft, ypBottom - rcAbs.ypBottom);\n    phbtn->SetPos(&rcAbs, pvNil);\n\n    AssertPo(phbtn, 0);\n    return phbtn;\n}\n\n/***************************************************************************\n    Test whether the given point is in this button or its related text.\n***************************************************************************/\nbool HBTN::FPtIn(long xp, long yp)\n{\n    AssertThis(0);\n    PTXHG ptxhg;\n    PT pt(xp, yp);\n    byte bGroup;\n    CNO cnoTopic;\n\n    if (HBTN_PAR::FPtIn(xp, yp))\n        return fTrue;\n\n    if (_bGroup == 0 || !PgobPar()->FIs(kclsTXHG))\n        return fFalse;\n\n    ptxhg = (PTXHG)PgobPar();\n    MapPt(&pt, cooLocal, cooParent);\n\n    if (!ptxhg->FGroupFromPt(pt.xp, pt.yp, &bGroup, &cnoTopic))\n        return fFalse;\n    return bGroup == _bGroup && cnoTopic == _cnoTopic;\n}\n\n/***************************************************************************\n    The button has been clicked on.  Tell the TXHG to do its thing.\n***************************************************************************/\nbool HBTN::FCmdClicked(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PTXHG ptxhg;\n    long hid = Hid();\n\n    if (!PgobPar()->FIs(kclsTXHG))\n    {\n        Bug(\"why isn't my parent a TXHG?\");\n        return fTrue;\n    }\n\n    ptxhg = (PTXHG)PgobPar();\n    ptxhg->DoHit(_bGroup, _cnoTopic, pcmd->grfcust, hid);\n\n    return fTrue;\n}\n"
  },
  {
    "path": "kauai/src/kidhelp.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Code for implementing help balloons in kidspace.\n\n***************************************************************************/\n#ifndef KIDHELP_H\n#define KIDHELP_H\n\n/***************************************************************************\n    Help topic construction information.\n***************************************************************************/\nstruct HTOP\n{\n    CNO cnoBalloon;\n    long hidThis;\n    long hidTarget;\n    CNO cnoScript;\n    long dxp;\n    long dyp;\n    CKI ckiSnd;\n};\ntypedef HTOP *PHTOP;\nconst BOM kbomHtop = 0xFFF00000;\n\n// help topic on file\nstruct HTOPF\n{\n    short bo;\n    short osk;\n    HTOP htop;\n};\n\n// edit control object\nstruct ECOS\n{\n    CTG ctg;  // kctgEditControl\n    long dxp; // width\n};\n\n/***************************************************************************\n    Help text document\n***************************************************************************/\nenum\n{\n    ftxhdNil = 0,\n    ftxhdCopyText = 1,\n    ftxhdExpandStrings = 2,\n};\n\ntypedef class TXHD *PTXHD;\n#define TXHD_PAR TXRD\n#define kclsTXHD 'TXHD'\nclass TXHD : public TXHD_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    enum\n    {\n        sprmGroup = 64, // grouped (hot) text - uses the AG\n    };\n\n    PRCA _prca;         // source of pictures and buttons\n    HTOP _htop;         // our gob creation information\n    bool _fHideButtons; // whether to draw buttons\n\n    TXHD(PRCA prca, PDOCB pdocb = pvNil, ulong grfdoc = fdocNil);\n    ~TXHD(void);\n\n    virtual bool _FReadChunk(PCFL pcfl, CTG ctg, CNO cno, PSTRG pstrg = pvNil, ulong grftxhd = ftxhdNil);\n    virtual bool _FOpenArg(long icact, byte sprm, short bo, short osk);\n    virtual bool _FGetObjectRc(long icact, byte sprm, PGNV pgnv, PCHP pchp, RC *prc);\n    virtual bool _FDrawObject(long icact, byte sprm, PGNV pgnv, long *pxp, long yp, PCHP pchp, RC *prcClip);\n\n  public:\n    static PTXHD PtxhdReadChunk(PRCA prca, PCFL pcfl, CTG ctg, CNO cno, PSTRG pstrg = pvNil,\n                                ulong grftxhd = ftxhdExpandStrings);\n\n    virtual bool FSaveToChunk(PCFL pcfl, CKI *pcki, bool fRedirectText = fFalse);\n\n    bool FInsertPicture(CNO cno, void *pvExtra, long cbExtra, long cp, long ccpDel, PCHP pchp = pvNil,\n                        ulong grfdoc = fdocUpdate);\n    bool FInsertButton(CNO cno, CNO cnoTopic, void *pvExtra, long cbExtra, long cp, long ccpDel, PCHP pchp = pvNil,\n                       ulong grfdoc = fdocUpdate);\n    PRCA Prca(void)\n    {\n        return _prca;\n    }\n    bool FGroupText(long cp1, long cp2, byte bGroup, CNO cnoTopic = cnoNil, PSTN pstnTopic = pvNil);\n    bool FGrouped(long cp, long *pcpMin = pvNil, long *pcpLim = pvNil, byte *pbGroup = pvNil, CNO *pcnoTopic = pvNil,\n                  PSTN pstnTopic = pvNil);\n\n    void GetHtop(PHTOP phtop);\n    void SetHtop(PHTOP phtop);\n    void HideButtons(bool fHide = fTrue)\n    {\n        _fHideButtons = FPure(fHide);\n    }\n};\n\n/***************************************************************************\n    A runtime DDG for a help topic.\n***************************************************************************/\ntypedef class TXHG *PTXHG;\n#define TXHG_PAR TXRG\n#define kclsTXHG 'TXHG'\nclass TXHG : public TXHG_PAR\n{\n    RTCLASS_DEC\n    CMD_MAP_DEC(TXHG)\n\n  protected:\n    byte _bTrack;\n    CNO _cnoTrack;\n    long _hidBase;\n    ulong _grfcust;\n    PWOKS _pwoks;\n\n    TXHG(PWOKS pwoks, PTXHD ptxhd, PGCB pgcb);\n    virtual bool _FInit(void);\n    virtual bool _FRunScript(byte bGroup, ulong grfcust, long hidHit, achar ch, CNO cnoTopic = cnoNil,\n                             long *plwRet = pvNil);\n\n  public:\n    static PTXHG PtxhgNew(PWOKS pwoks, PTXHD ptxhd, PGCB pgcb);\n\n    PTXHD Ptxhd(void)\n    {\n        return (PTXHD)_ptxtb;\n    }\n    virtual bool FPtIn(long xp, long yp);\n    virtual bool FCmdTrackMouse(PCMD_MOUSE pcmd);\n    virtual bool FCmdMouseMove(PCMD_MOUSE pcmd);\n    virtual bool FCmdBadKey(PCMD_BADKEY pcmd);\n    virtual bool FGroupFromPt(long xp, long yp, byte *pbGroup = pvNil, CNO *pcnoTopic = pvNil);\n    virtual void DoHit(byte bGroup, CNO cnoTopic, ulong grfcust, long hidHit);\n    virtual void SetCursor(ulong grfcust);\n};\n\n/***************************************************************************\n    Help balloon.\n***************************************************************************/\ntypedef class HBAL *PHBAL;\n#define HBAL_PAR GOK\n#define kclsHBAL 'HBAL'\nclass HBAL : public HBAL_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    PTXHG _ptxhg;\n\n    HBAL(GCB *pgcb);\n    virtual void _SetGorp(PGORP pgorp, long dxp, long dyp);\n    virtual bool _FInit(PWOKS pwoks, PTXHD ptxhd, HTOP *phtop, PRCA prca);\n    virtual bool _FSetTopic(PTXHD ptxhd, PHTOP phtop, PRCA prca);\n\n  public:\n    static PHBAL PhbalCreate(PWOKS pwoks, PGOB pgobPar, PRCA prca, CNO cnoTopic, PHTOP phtop = pvNil);\n    static PHBAL PhbalNew(PWOKS pwoks, PGOB pgobPar, PRCA prca, PTXHD ptxhd, PHTOP phtop = pvNil);\n\n    virtual bool FSetTopic(PTXHD ptxhd, PHTOP phtop, PRCA prca);\n};\n\n/***************************************************************************\n    Help balloon button.\n***************************************************************************/\ntypedef class HBTN *PHBTN;\n#define HBTN_PAR GOK\n#define kclsHBTN 'HBTN'\nclass HBTN : public HBTN_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    HBTN(GCB *pgcb);\n\n    byte _bGroup;\n    CNO _cnoTopic;\n\n  public:\n    static PHBTN PhbtnNew(PWOKS pwoks, PGOB pgobPar, long hid, CNO cno, PRCA prca, byte bGroup, CNO cnoTopic,\n                          long xpLeft, long ypBottom);\n\n    virtual bool FPtIn(long xp, long yp);\n    virtual bool FCmdClicked(PCMD_MOUSE pcmd);\n};\n\n#endif //! KIDHELP_H\n"
  },
  {
    "path": "kauai/src/kidspace.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Kidspace class implementations.\n\n***************************************************************************/\n#include \"kidframe.h\"\nASSERTNAME\n\nRTCLASS(GOK)\nRTCLASS(GORP)\nRTCLASS(GORF)\nRTCLASS(GORB)\nRTCLASS(GORT)\nRTCLASS(GORV)\n\nBEGIN_CMD_MAP(GOK, GOB)\nON_CID_ME(cidClicked, &GOK::FCmdClickedCore, pvNil)\nON_CID_ME(cidAlarm, &GOK::FCmdAlarm, pvNil)\nON_CID_ME(cidRollOff, &GOK::FCmdMouseMoveCore, pvNil)\nON_CID_ALL(cidKey, &GOK::FCmdAll, pvNil)\nON_CID_ALL(cidSelIdle, &GOK::FCmdAll, pvNil)\nEND_CMD_MAP(&GOK::FCmdAll, pvNil, kgrfcmmAll)\n\nconst long kcmhlGok = -10000;\n\n/***************************************************************************\n    Create a new kidspace gob as described in the GOKD with given cno\n    in the given RCA.\n***************************************************************************/\nPGOK GOK::PgokNew(PWOKS pwoks, PGOB pgobPar, long hid, PGOKD pgokd, PRCA prca)\n{\n    AssertPo(pgobPar, 0);\n    AssertPo(pgokd, 0);\n    AssertPo(prca, 0);\n    GCB gcb;\n    PGOK pgok;\n\n    if (hidNil == hid)\n    {\n        Bug(\"nil handler id\");\n        return pvNil;\n    }\n\n    gcb.Set(hid, pgobPar, fgobNil, kginMark);\n    if (pvNil == (pgok = NewObj GOK(&gcb)))\n        return pvNil;\n\n    if (!pgok->_FInit(pwoks, pgokd, prca))\n    {\n        ReleasePpo(&pgok);\n        return pvNil;\n    }\n    if (!pgok->_FEnterState(ksnoInit))\n    {\n        Warn(\"GOK immediately destroyed!\");\n        return pvNil;\n    }\n\n    AssertPo(pgok, 0);\n    return pgok;\n}\n\n/***************************************************************************\n    Static method to find the GOB that should be before a new GOK with\n    this zp.\n***************************************************************************/\nPGOB GOK::_PgobBefore(PGOB pgobPar, long zp)\n{\n    AssertPo(pgobPar, 0);\n    PGOB pgobBefore, pgobT;\n\n    // find the place in the GOB tree to put the GOK.\n    for (pgobBefore = pvNil, pgobT = pgobPar->PgobFirstChild(); pgobT != pvNil; pgobT = pgobT->PgobNextSib())\n    {\n        if (pgobT->FIs(kclsGOK))\n        {\n            if (((PGOK)pgobT)->_zp <= zp)\n                break;\n            pgobBefore = pgobT;\n        }\n    }\n    return pgobBefore;\n}\n\n/***************************************************************************\n    Constructor for the Kidspace graphic object.\n***************************************************************************/\nGOK::GOK(GCB *pgcb) : GOB(pgcb)\n{\n    _chidAnim = chidNil;\n    _siiSound = siiNil;\n    _siiMouse = siiNil;\n    _hidToolTipSrc = Hid();\n    _gmsCur = gmsNil;\n}\n\n/***************************************************************************\n    Destructor for a GOK.\n***************************************************************************/\nGOK::~GOK(void)\n{\n    if (vpsndm != pvNil)\n    {\n        if (siiNil != _siiSound)\n            vpsndm->Stop(_siiSound);\n        if (siiNil != _siiMouse)\n            vpsndm->Stop(_siiMouse);\n    }\n\n    if (_fStream)\n    {\n        if (pvNil != _pgokd)\n            _pgokd->SetCrep(crepToss);\n    }\n\n    ReleasePpo(&_pgokd);\n    ReleasePpo(&_pcrf);\n    ReleasePpo(&_prca);\n    ReleasePpo(&_pscegAnim);\n    ReleasePpo(&_pgorp);\n    ReleasePpo(&_pglcmflt);\n}\n\n/***************************************************************************\n    Initialize this GOK given the cno for the gokd.\n***************************************************************************/\nbool GOK::_FInit(PWOKS pwoks, CNO cno, PRCA prca)\n{\n    AssertBaseThis(0);\n    AssertPo(pwoks, 0);\n    AssertPo(prca, 0);\n    PGOKD pgokd;\n    bool fRet;\n\n    if (pvNil == (pgokd = pwoks->PgokdFetch(kctgGokd, cno, prca)))\n        return fFalse;\n\n    fRet = _FInit(pwoks, pgokd, prca);\n    ReleasePpo(&pgokd);\n\n    return fRet;\n}\n\n/***************************************************************************\n    Initialize this GOK.\n***************************************************************************/\nbool GOK::_FInit(PWOKS pwoks, PGOKD pgokd, PRCA prca)\n{\n    AssertBaseThis(0);\n    AssertPo(pwoks, 0);\n    AssertPo(pgokd, 0);\n    AssertPo(prca, 0);\n    LOP lop;\n\n    _pwoks = pwoks;\n    _pgokd = pgokd;\n    _pgokd->AddRef();\n    _pgokd->GetLop(PgobPar()->Hid(), &lop);\n    _dxp = lop.xp;\n    _dyp = lop.yp;\n    _zp = klwMax;\n    _fRect = FPure(pgokd->Gokk() & gokkRectangle);\n    _fNoHit = FPure(pgokd->Gokk() & gokkNoHitThis);\n    _fNoHitKids = FPure(pgokd->Gokk() & gokkNoHitKids);\n    _fNoSlip = FPure(pgokd->Gokk() & gokkNoSlip);\n\n    _prca = prca;\n    _prca->AddRef();\n    _pcrf = pgokd->Pcrf();\n    _pcrf->AddRef();\n    AssertThis(0);\n    SetZPlane(lop.zp);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    This is a table of what relative chid value to use for the\n    representation in the given mouse tracking state. relative means that\n    the actual chid is gotten by putting the current gob state number in\n    the high word.\n***************************************************************************/\nconst CHID _mpgmschidRep[] = {\n    chidNil,\n\n    kchidEnterState, kchidUpOff,    kchidUpOffOn, kchidUpOnOff,   kchidUpOn,      kchidDownUpOff,\n\n    kchidUpDownOn,   kchidDownUpOn, kchidDownOn,  kchidDownOnOff, kchidDownOffOn, kchidDownOff,   chidNil,\n};\n\n/***************************************************************************\n    Return the chid value for the current mouse tracking state.\n***************************************************************************/\nCHID GOK::_ChidMouse(void)\n{\n    AssertThisMem();\n    CHID chid;\n\n    chid = _mpgmschidRep[_gmsCur];\n    if (chidNil != chid)\n        chid = ChidFromSnoDchid(_sno, chid);\n    return chid;\n}\n\n/***************************************************************************\n    These are the actions that can occur at transitions between mouse\n    tracking states.\n***************************************************************************/\nenum\n{\n    factNil = 0x0,\n    factEnqueueClick = 0x1,\n};\n\n/***************************************************************************\n    The following are the transition tables between the mouse tracking\n    states when given various input.\n***************************************************************************/\nstruct GMSE\n{\n    Debug(long gms;) long gmsDst;\n    ulong grfact;\n};\n\n#ifdef DEBUG\n#define _Gmse(gms, gmsDst, grfact)                                                                                     \\\n    {                                                                                                                  \\\n        gms, gmsDst, grfact                                                                                            \\\n    }\n#else //! DEBUG\n#define _Gmse(gms, gmsDst, grfact)                                                                                     \\\n    {                                                                                                                  \\\n        gmsDst, grfact                                                                                                 \\\n    }\n#endif //! DEBUG\n\n/***************************************************************************\n    what to do when an animation ends\n***************************************************************************/\nGMSE _mpgmsgmseEnd[] = {\n    _Gmse(gmsNil, kgmsEnterState, factNil),\n\n    _Gmse(kgmsEnterState, kgmsIdle, factNil), _Gmse(kgmsIdle, kgmsIdle, factNil),\n    _Gmse(kgmsRollOn, kgmsOn, factNil),       _Gmse(kgmsRollOff, kgmsIdle, factNil),\n    _Gmse(kgmsOn, kgmsOn, factNil),           _Gmse(kgmsReleaseOff, kgmsIdle, factNil),\n\n    _Gmse(kgmsPressOn, kgmsDownOn, factNil),  _Gmse(kgmsReleaseOn, kgmsWait, factEnqueueClick),\n    _Gmse(kgmsDownOn, kgmsDownOn, factNil),   _Gmse(kgmsDragOff, kgmsDownOff, factNil),\n    _Gmse(kgmsDragOn, kgmsDownOn, factNil),   _Gmse(kgmsDownOff, kgmsDownOff, factNil),\n    _Gmse(kgmsWait, kgmsWait, factNil),\n};\n\n/***************************************************************************\n    what to do when we get a cidMouseMove\n***************************************************************************/\nGMSE _mpgmsgmseMove[] = {\n    _Gmse(gmsNil, gmsNil, factNil),\n\n    _Gmse(kgmsEnterState, kgmsIdle, factNil),\n    _Gmse(kgmsIdle, kgmsRollOn, factNil),\n    _Gmse(kgmsRollOn, kgmsRollOn, factNil),\n    _Gmse(kgmsRollOff, kgmsIdle, factNil),\n    _Gmse(kgmsOn, kgmsOn, factNil),\n    _Gmse(kgmsReleaseOff, kgmsIdle, factNil),\n\n    // shouldn't get a cidMouseMove when tracking the mouse,\n    // so all of these cause asserts\n    _Gmse(kgmsPressOn, gmsNil, factNil),\n    _Gmse(kgmsReleaseOn, gmsNil, factNil),\n    _Gmse(kgmsDownOn, gmsNil, factNil),\n    _Gmse(kgmsDragOff, gmsNil, factNil),\n    _Gmse(kgmsDragOn, gmsNil, factNil),\n    _Gmse(kgmsDownOff, gmsNil, factNil),\n    _Gmse(kgmsWait, gmsNil, factNil),\n};\n\n/***************************************************************************\n    what to do when we get a cidRollOff\n***************************************************************************/\nGMSE _mpgmsgmseRollOff[] = {\n    _Gmse(gmsNil, gmsNil, factNil),\n\n    _Gmse(kgmsEnterState, kgmsEnterState, factNil),\n    _Gmse(kgmsIdle, kgmsIdle, factNil),\n    _Gmse(kgmsRollOn, kgmsOn, factNil),\n    _Gmse(kgmsRollOff, kgmsRollOff, factNil),\n    _Gmse(kgmsOn, kgmsRollOff, factNil),\n    _Gmse(kgmsReleaseOff, kgmsReleaseOff, factNil),\n\n    // shouldn't get a cidRollOff when tracking the mouse,\n    // so all of these cause asserts\n    _Gmse(kgmsPressOn, gmsNil, factNil),\n    _Gmse(kgmsReleaseOn, gmsNil, factNil),\n    _Gmse(kgmsDownOn, gmsNil, factNil),\n    _Gmse(kgmsDragOff, gmsNil, factNil),\n    _Gmse(kgmsDragOn, gmsNil, factNil),\n    _Gmse(kgmsDownOff, gmsNil, factNil),\n\n    // This one can happen if a modal comes up in response to our click\n    _Gmse(kgmsWait, kgmsOn, factNil),\n};\n\n/***************************************************************************\n    what to do when we get a cidMouseDown\n***************************************************************************/\nGMSE _mpgmsgmseMouseDown[] = {\n    _Gmse(gmsNil, gmsNil, factNil),\n\n    _Gmse(kgmsEnterState, kgmsIdle, factNil),\n    _Gmse(kgmsIdle, kgmsRollOn, factNil),\n    _Gmse(kgmsRollOn, kgmsOn, factNil),\n    _Gmse(kgmsRollOff, kgmsIdle, factNil),\n    _Gmse(kgmsOn, kgmsPressOn, factNil),\n    _Gmse(kgmsReleaseOff, kgmsIdle, factNil),\n\n    // shouldn't get a cidMouseDown when tracking the mouse,\n    // so all of these cause asserts\n    _Gmse(kgmsPressOn, gmsNil, factNil),\n    _Gmse(kgmsReleaseOn, gmsNil, factNil),\n    _Gmse(kgmsDownOn, gmsNil, factNil),\n    _Gmse(kgmsDragOff, gmsNil, factNil),\n    _Gmse(kgmsDragOn, gmsNil, factNil),\n    _Gmse(kgmsDownOff, gmsNil, factNil),\n    _Gmse(kgmsWait, gmsNil, factNil),\n};\n\n/***************************************************************************\n    what to do when we get a cidTrackMouse with button down and mouse on\n***************************************************************************/\nGMSE _mpgmsgmseDownOn[] = {\n    _Gmse(gmsNil, gmsNil, factNil),\n\n    // shouldn't get a cidTrackMouse when not tracking the mouse,\n    // so all of these cause asserts\n    _Gmse(kgmsEnterState, gmsNil, factNil),\n    _Gmse(kgmsIdle, gmsNil, factNil),\n    _Gmse(kgmsRollOn, gmsNil, factNil),\n    _Gmse(kgmsRollOff, gmsNil, factNil),\n    _Gmse(kgmsOn, gmsNil, factNil),\n    _Gmse(kgmsReleaseOff, gmsNil, factNil),\n\n    _Gmse(kgmsPressOn, kgmsPressOn, factNil),\n    _Gmse(kgmsReleaseOn, kgmsReleaseOn, factNil),\n    _Gmse(kgmsDownOn, kgmsDownOn, factNil),\n    _Gmse(kgmsDragOff, kgmsDownOff, factNil),\n    _Gmse(kgmsDragOn, kgmsDragOn, factNil),\n    _Gmse(kgmsDownOff, kgmsDragOn, factNil),\n    _Gmse(kgmsWait, kgmsOn, factNil),\n};\n\n/***************************************************************************\n    what to do when we get a cidTrackMouse with button down and mouse off\n***************************************************************************/\nGMSE _mpgmsgmseDownOff[] = {\n    _Gmse(gmsNil, gmsNil, factNil),\n\n    // shouldn't get a cidTrackMouse when not tracking the mouse,\n    // so all of these cause asserts\n    _Gmse(kgmsEnterState, gmsNil, factNil),\n    _Gmse(kgmsIdle, gmsNil, factNil),\n    _Gmse(kgmsRollOn, gmsNil, factNil),\n    _Gmse(kgmsRollOff, gmsNil, factNil),\n    _Gmse(kgmsOn, gmsNil, factNil),\n    _Gmse(kgmsReleaseOff, gmsNil, factNil),\n\n    _Gmse(kgmsPressOn, kgmsDownOn, factNil),\n    _Gmse(kgmsReleaseOn, kgmsReleaseOn, factNil),\n    _Gmse(kgmsDownOn, kgmsDragOff, factNil),\n    _Gmse(kgmsDragOff, kgmsDragOff, factNil),\n    _Gmse(kgmsDragOn, kgmsDownOn, factNil),\n    _Gmse(kgmsDownOff, kgmsDownOff, factNil),\n    _Gmse(kgmsWait, kgmsOn, factNil),\n};\n\n/***************************************************************************\n    what to do when we get a cidTrackMouse with button up and mouse on\n***************************************************************************/\nGMSE _mpgmsgmseUpOn[] = {\n    _Gmse(gmsNil, gmsNil, factNil),\n\n    // shouldn't get a cidTrackMouse when not tracking the mouse,\n    // so all of these cause asserts\n    _Gmse(kgmsEnterState, gmsNil, factNil),\n    _Gmse(kgmsIdle, gmsNil, factNil),\n    _Gmse(kgmsRollOn, gmsNil, factNil),\n    _Gmse(kgmsRollOff, gmsNil, factNil),\n    _Gmse(kgmsOn, gmsNil, factNil),\n    _Gmse(kgmsReleaseOff, gmsNil, factNil),\n\n    _Gmse(kgmsPressOn, kgmsDownOn, factNil),\n    _Gmse(kgmsReleaseOn, kgmsReleaseOn, factNil),\n    _Gmse(kgmsDownOn, kgmsReleaseOn, factNil),\n    _Gmse(kgmsDragOff, kgmsDownOff, factNil),\n    _Gmse(kgmsDragOn, kgmsDownOn, factNil),\n    _Gmse(kgmsDownOff, kgmsReleaseOff, factNil),\n    _Gmse(kgmsWait, kgmsOn, factNil),\n};\n\n/***************************************************************************\n    what to do when we get a cidTrackMouse with button up and mouse off\n***************************************************************************/\nGMSE _mpgmsgmseUpOff[] = {\n    _Gmse(gmsNil, gmsNil, factNil),\n\n    // shouldn't get a cidTrackMouse when not tracking the mouse,\n    // so all of these cause asserts\n    _Gmse(kgmsEnterState, gmsNil, factNil),\n    _Gmse(kgmsIdle, gmsNil, factNil),\n    _Gmse(kgmsRollOn, gmsNil, factNil),\n    _Gmse(kgmsRollOff, gmsNil, factNil),\n    _Gmse(kgmsOn, gmsNil, factNil),\n    _Gmse(kgmsReleaseOff, gmsNil, factNil),\n\n    _Gmse(kgmsPressOn, kgmsDownOn, factNil),\n    _Gmse(kgmsReleaseOn, kgmsReleaseOn, factNil),\n    _Gmse(kgmsDownOn, kgmsDragOff, factNil),\n    _Gmse(kgmsDragOff, kgmsDownOff, factNil),\n    _Gmse(kgmsDragOn, kgmsDownOn, factNil),\n    _Gmse(kgmsDownOff, kgmsReleaseOff, factNil),\n    _Gmse(kgmsWait, kgmsOn, factNil),\n};\n\n/***************************************************************************\n    We got some input, make sure the mouse tracking state is correct,\n    according to the given transition table.\n\n    CAUTION: this GOK may not exist on return. Returns false iff the GOK\n    doesn't exist on return.\n***************************************************************************/\nbool GOK::_FAdjustGms(GMSE *pmpgmsgmse)\n{\n    AssertThis(0);\n    GMSE gmse;\n    bool fStable = fTrue;\n    Debug(bool fFirst = fTrue;)\n\n        _DeferGorp(fTrue);\n    for (;; Debug(fFirst = fFalse))\n    {\n        gmse = pmpgmsgmse[_gmsCur];\n        Assert(gmse.gms == _gmsCur, \"bad gmse table\");\n\n        if (gmsNil == gmse.gmsDst || _gmsCur == gmse.gmsDst)\n        {\n            Assert(!fFirst || gmsNil != gmse.gmsDst, \"invalid change in gms\");\n\n            if (fStable)\n                break;\n\n            // use the done table from here on out\n            Assert(pmpgmsgmse != _mpgmsgmseEnd, \"bug in _mpgmsgmseEnd\");\n            pmpgmsgmse = _mpgmsgmseEnd;\n            continue;\n        }\n\n        if (!_FSetGmsCore(gmse.gmsDst, gmse.grfact, &fStable))\n            return fFalse;\n\n        if (fStable && _mpgmsgmseEnd == pmpgmsgmse)\n            break;\n\n        AssertThis(0);\n    }\n    _DeferGorp(fFalse);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the graphical mouse state. Note that the _gmsCur may end up different\n    than gms. This is similar to _FAdjustGms(_mpgmsgmseEnd), except that\n    the current representation is set before trying to advance.\n\n    CAUTION: this GOK may not exist on return. Returns false iff the GOK\n    doesn't exist on return.\n***************************************************************************/\nbool GOK::_FSetGms(long gms, ulong grfact)\n{\n    AssertThis(0);\n    AssertIn(gms, gmsNil, kgmsLim);\n    GMSE gmse;\n    bool fStable;\n\n    _DeferGorp(fTrue);\n    for (;;)\n    {\n        if (!_FSetGmsCore(gms, grfact, &fStable))\n            return fFalse;\n\n        if (fStable)\n            break;\n\n        Assert(_gmsCur == gms, \"bad _gmsCur\");\n\n        // Nothing was set so advance\n        gmse = _mpgmsgmseEnd[gms];\n        Assert(gmse.gms == gms, \"bad gmse table\");\n        Assert(gmse.gmsDst != gms, \"bad gmse table\");\n\n        // continue to the next state\n        gms = gmse.gmsDst;\n        grfact = gmse.grfact;\n    }\n    _DeferGorp(fFalse);\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the graphical mouse state. Note that _gmsCur may end up different\n    than gms. *pfStable is set to false iff the gms is an auto-advance gms\n    and the representation wasn't set (didn't exist or failed).\n\n    CAUTION: this GOK may not exist on return. Returns false iff the GOK\n    doesn't exist on return.\n***************************************************************************/\nbool GOK::_FSetGmsCore(long gms, ulong grfact, bool *pfStable)\n{\n    AssertThis(0);\n    AssertIn(gms, gmsNil, kgmsLim);\n    AssertVarMem(pfStable);\n    CHID chid;\n    CTG ctg;\n\n    // set the gms\n    _gmsCur = gms;\n\n    // do the actions\n    if (FIn(gms, kgmsMinTrack, kgmsLimTrack))\n    {\n        if (pvNil == vpcex->PgobTracking())\n            vpcex->TrackMouse(this);\n    }\n    else\n    {\n        if (this == vpcex->PgobTracking())\n            vpcex->EndMouseTracking();\n    }\n    if (grfact & factEnqueueClick)\n    {\n        CMD_MOUSE cmd;\n\n        ClearPb(&cmd, size(cmd));\n        cmd.cid = cidClicked;\n        cmd.pcmh = this;\n        cmd.grfcust = _grfcust;\n        cmd.cact = _cactMouse;\n        vpcex->EnqueueCmd((PCMD)&cmd);\n    }\n\n    // change the representation\n    ctg = (_mpgmsgmseEnd[gms].gmsDst == gms) ? ctgNil : kctgAnimation;\n    chid = _ChidMouse();\n    if (chidNil != chid)\n    {\n        if (!_FSetRep(chid, fgokMouseSound | fgokKillAnim, ctg, 0, 0, pfStable))\n        {\n            return fFalse;\n        }\n        // we're stable if we didn't require an animation or the rep was set\n        if (ctgNil == ctg)\n            *pfStable = fTrue;\n    }\n    else\n        *pfStable = (ctgNil == ctg);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Make the current graphical representation that indicated by the given\n    chid value (if not nil).\n\n    If ctg is not nil, only uses ctg representations. Moves the GOK by\n    (dxp, dyp). Fills *pfSet with whether the representation was\n    successfully set.\n\n    CAUTION: this GOK may not exist on return. Returns false iff the GOK\n    doesn't exist on return.\n***************************************************************************/\nbool GOK::_FSetRep(CHID chid, ulong grfgok, CTG ctg, long dxp, long dyp, bool *pfSet)\n{\n    AssertThis(0);\n    long ikid;\n    KID kid;\n    PGORP pgorp;\n    bool fSet = fFalse;\n    bool fKillAnim = FPure(grfgok & fgokKillAnim);\n    PCFL pcfl = _pcrf->Pcfl();\n\n    if (chidNil == chid)\n        goto LAdjust;\n\n    if (!(grfgok & fgokNoAnim) && (ctgNil == ctg || kctgAnimation == ctg))\n    {\n        // animations are allowed - try to start one\n        if (_chidAnim == chid && !(grfgok & fgokReset))\n        {\n            fSet = fTrue;\n            fKillAnim = fFalse;\n            goto LAdjust;\n        }\n\n        if (pcfl->FGetKidChidCtg(_pgokd->Ctg(), _pgokd->Cno(), chid, kctgAnimation, &kid))\n        {\n            PSCPT pscpt;\n            PSCEG psceg = pvNil;\n\n            if (pvNil != (pscpt = (PSCPT)_pcrf->PbacoFetch(kid.cki.ctg, kid.cki.cno, SCPT::FReadScript)) &&\n                pvNil != (psceg = _pwoks->PscegNew(_prca, this)) && psceg->FAttachScript(pscpt))\n            {\n                ReleasePpo(&pscpt);\n                if (pvNil != _pscegAnim)\n                {\n                    ReleasePpo(&_pscegAnim);\n                    _pwoks->PclokAnim()->RemoveCmh(this);\n                    _pwoks->PclokNoSlip()->RemoveCmh(this);\n                }\n                _pscegAnim = psceg;\n                fSet = fTrue;\n                fKillAnim = fFalse;\n                _chidAnim = chid;\n                if (!_FAdvanceFrame())\n                    return fFalse;\n                goto LAdjust;\n            }\n\n            Warn(\"Couldn't attach animation script\");\n            ReleasePpo(&psceg);\n            ReleasePpo(&pscpt);\n        }\n    }\n\n    if (kctgAnimation == ctg)\n        goto LAdjust;\n\n    for (pcfl->FGetIkid(_pgokd->Ctg(), _pgokd->Cno(), 0, 0, chid, &ikid);\n         pcfl->FGetKid(_pgokd->Ctg(), _pgokd->Cno(), ikid, &kid) && kid.chid == chid; ikid++)\n    {\n        if (ctgNil != ctg && ctg != kid.cki.ctg || kctgAnimation == kid.cki.ctg)\n        {\n            continue;\n        }\n\n        if (!(grfgok & fgokReset) && pvNil != _pgorp && FEqualRgb(&kid.cki, &_ckiGorp, size(CKI)))\n        {\n            fSet = fTrue;\n            break;\n        }\n\n        if (pvNil != (pgorp = _PgorpNew(_pcrf, kid.cki.ctg, kid.cki.cno)))\n        {\n            _SetGorp(pgorp, dxp, dyp);\n            ReleasePpo(&pgorp);\n            _ckiGorp = kid.cki;\n            dxp = dyp = 0;\n            fSet = fTrue;\n            break;\n        }\n    }\n\nLAdjust:\n    // reposition the GOK\n    if (dxp != 0 || dyp != 0)\n    {\n        RC rc;\n\n        GetRc(&rc, cooParent);\n        rc.Offset(dxp, dyp);\n        SetPos(&rc);\n    }\n\n    if (fKillAnim && fSet)\n    {\n        ReleasePpo(&_pscegAnim);\n        _pwoks->PclokAnim()->RemoveCmh(this);\n        _pwoks->PclokNoSlip()->RemoveCmh(this);\n        _chidAnim = chidNil;\n    }\n\n    if (grfgok & fgokMouseSound)\n        _PlayMouseSound(chid);\n\n    if (pvNil != pfSet)\n        *pfSet = fSet;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Run the next section of the animation script.\n***************************************************************************/\nbool GOK::_FAdvanceFrame(void)\n{\n    AssertThis(0);\n\n    bool fExists, fRet, fPaused;\n    PWOKS pwoks = _pwoks;\n    ulong dtim = 0;\n    PSCEG psceg = _pscegAnim;\n    long grid = Grid();\n\n    if (pvNil == psceg)\n    {\n        Bug(\"no animation\");\n        return fTrue;\n    }\n    AssertPo(psceg, 0);\n    psceg->AddRef();\n\n    _DeferGorp(fTrue);\n    for (;;)\n    {\n        fRet = psceg->FResume(pvNil, &fPaused);\n        fExists = (this == pwoks->PgobFromGrid(grid));\n\n        if (!fExists)\n        {\n            // this GOK went away\n            ReleasePpo(&psceg);\n            return fFalse;\n        }\n\n        AssertThis(0);\n        if (!fRet || !fPaused || pvNil == _pscegAnim)\n        {\n            // end the animation, but keep _chidAnim set, so we don't restart\n            // this animation until after the animation has been explicitly\n            // killed.\n            if (psceg == _pscegAnim)\n            {\n                ReleasePpo(&_pscegAnim);\n                _pwoks->PclokAnim()->RemoveCmh(this);\n                _pwoks->PclokNoSlip()->RemoveCmh(this);\n                ReleasePpo(&psceg);\n                if (!_FAdjustGms(_mpgmsgmseEnd))\n                    return fFalse;\n            }\n            else\n                ReleasePpo(&psceg);\n\n            goto LSetGorp;\n        }\n\n        if (!_fNoSlip)\n        {\n            _pwoks->PclokAnim()->FSetAlarm(_dtim, this);\n            break;\n        }\n\n        dtim += LwMax(1, _dtim);\n        if (dtim > _pwoks->PclokNoSlip()->DtimAlarm())\n        {\n            _pwoks->PclokNoSlip()->FSetAlarm(dtim, this);\n            break;\n        }\n    }\n    ReleasePpo(&psceg);\n\nLSetGorp:\n    _DeferGorp(fFalse);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Put the kidspace graphic object in the indicated state.\n\n    CAUTION: this GOK may not exist on return. Returns false iff the GOK\n    doesn't exist on return.\n***************************************************************************/\nbool GOK::_FEnterState(long sno)\n{\n    AssertThis(0);\n    AssertIn(sno, 0, kswMax);\n\n    struct GMMPE\n    {\n        Debug(long gms;) long gmsPar;\n    };\n\n#ifdef DEBUG\n#define _Gmmpe(gms, gmsPar)                                                                                            \\\n    {                                                                                                                  \\\n        gms, gmsPar                                                                                                    \\\n    }\n#else //! DEBUG\n#define _Gmmpe(gms, gmsPar)                                                                                            \\\n    {                                                                                                                  \\\n        gmsPar                                                                                                         \\\n    }\n#endif //! DEBUG\n\n    // this maps a gms to its parent in the natural traversal tree\n    static GMMPE _mpgmsgmmpe[] = {\n        _Gmmpe(gmsNil, gmsNil),\n\n        _Gmmpe(kgmsEnterState, gmsNil),\n        _Gmmpe(kgmsIdle, kgmsEnterState),\n        _Gmmpe(kgmsRollOn, kgmsIdle),\n        _Gmmpe(kgmsRollOff, kgmsOn),\n        _Gmmpe(kgmsOn, kgmsRollOn),\n        // Note: this is the only strange one - we can't go through kgmsDownOff\n        // because that would require tracking the mouse. If some other button\n        // is currently tracking, we couldn't start tracking and things might\n        // break. Thus, we just go through kgmsIdle.\n        _Gmmpe(kgmsReleaseOff, kgmsIdle),\n\n        _Gmmpe(kgmsPressOn, kgmsOn),\n        _Gmmpe(kgmsReleaseOn, kgmsDownOn),\n        _Gmmpe(kgmsDownOn, kgmsPressOn),\n        _Gmmpe(kgmsDragOff, kgmsDownOn),\n        _Gmmpe(kgmsDragOn, kgmsDownOff),\n        _Gmmpe(kgmsDownOff, kgmsDragOff),\n        _Gmmpe(kgmsWait, kgmsReleaseOn),\n    };\n\n    long rggms[kgmsLim];\n    long igms;\n    long gms, gmsPrev;\n    bool fStable;\n\n    for (gms = _gmsCur, igms = 0; gmsNil != gms;)\n    {\n        rggms[igms++] = gms;\n        Assert(gms == _mpgmsgmmpe[gms].gms, \"bad _mpgmsgmmpe\");\n        gms = _mpgmsgmmpe[gms].gmsPar;\n    }\n\n    // defer rep changes\n    _DeferGorp(fTrue);\n\n    // change the state number\n    _sno = (short)sno;\n\n    // put it in gmsNil\n    if (!_FSetGmsCore(gmsNil, factNil, &fStable))\n        return fFalse;\n\n    for (gmsPrev = gmsNil; igms-- > 0; gmsPrev = gms)\n    {\n        gms = rggms[igms];\n        if (gmsPrev != _gmsCur)\n            continue;\n\n        if (!_FSetGmsCore(gms, factNil, &fStable))\n            return fFalse;\n\n        AssertThis(0);\n    }\n\n    if (!fStable && !_FAdjustGms(_mpgmsgmseEnd))\n        return fFalse;\n\n    _DeferGorp(fFalse);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    See if the given point is in this GOK.\n***************************************************************************/\nbool GOK::FPtIn(long xp, long yp)\n{\n    AssertThis(0);\n    RC rc;\n\n    if (pvNil == _pgorp || _fNoHit || khidToolTip == Hid())\n        return fFalse;\n\n    GetRc(&rc, cooLocal);\n    if (!rc.FPtIn(xp, yp))\n        return fFalse;\n\n    if (_fRect)\n        return fTrue;\n\n    return _pgorp->FPtIn(xp, yp);\n}\n\n/***************************************************************************\n    See if the given point is in the rectangular bounds of this GOK (ie,\n    whether there's any chance the point is in a child of this GOK).\n***************************************************************************/\nbool GOK::FPtInBounds(long xp, long yp)\n{\n    AssertThis(0);\n    RC rc;\n\n    if (_fNoHitKids || khidToolTip == Hid())\n        return fFalse;\n\n    GetRc(&rc, cooLocal);\n    return rc.FPtIn(xp, yp);\n}\n\n/***************************************************************************\n    Draw the kidspace object.\n***************************************************************************/\nvoid GOK::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    RC rc;\n\n    if (pvNil != _pgorp)\n    {\n        GetRc(&rc, cooLocal);\n        if (rc.FIntersect(prcClip))\n            _pgorp->Draw(pgnv, prcClip);\n    }\n}\n\n/***************************************************************************\n    Respond to an alarm. If the clock is the animation clock or noslip clock\n    we advance the animation. Otherwise we run an associated script.\n    CAUTION: this GOK may not exist on return.\n***************************************************************************/\nbool GOK::FCmdAlarm(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CHID chid;\n    long hid = pcmd->rglw[0];\n\n    if (_pwoks->PclokAnim()->Hid() == hid || _pwoks->PclokNoSlip()->Hid() == hid)\n    {\n        if (pvNil != _pscegAnim)\n            _FAdvanceFrame();\n        else\n            Bug(\"Alarm sounding without an animation\");\n    }\n    else\n    {\n        chid = pcmd->rglw[2];\n        if (chidNil == chid || 0 == chid)\n            chid = ChidFromSnoDchid(_sno, kchidAlarm);\n        FRunScript(chid, &pcmd->rglw[0], 3);\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    For command filtering.\n    CAUTION: this GOK may not exist on return.\n***************************************************************************/\nbool GOK::FCmdAll(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CMFLT cmflt;\n    bool fFiltered;\n\n    if (pvNil == _pglcmflt)\n        return fFalse;\n\n    if (pvNil != pcmd->pcmh)\n    {\n        if (_FFindCmflt(pcmd->cid, pcmd->pcmh->Hid(), &cmflt) && _FFilterCmd(pcmd, cmflt.chidScript, &fFiltered))\n        {\n            return fFiltered;\n        }\n\n        if (_FFindCmflt(cidNil, pcmd->pcmh->Hid(), &cmflt) && _FFilterCmd(pcmd, cmflt.chidScript, &fFiltered))\n        {\n            return fFiltered;\n        }\n    }\n\n    if (_FFindCmflt(pcmd->cid, hidNil, &cmflt) && _FFilterCmd(pcmd, cmflt.chidScript, &fFiltered))\n    {\n        return fFiltered;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Determine if the command should be filtered out by calling the indicated\n    script and checking its return value. This returns true iff the command\n    is filtered out or the GOK goes away, in which case *pfFilter is set\n    to whether the command was filtered.\n***************************************************************************/\nbool GOK::_FFilterCmd(PCMD pcmd, CHID chidScript, bool *pfFilter)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    AssertVarMem(pfFilter);\n    long rglw[6];\n    long lw;\n    bool fGokExists;\n    tribool tRet;\n\n    rglw[0] = (pvNil == pcmd->pcmh) ? hidNil : pcmd->pcmh->Hid();\n    rglw[1] = pcmd->cid;\n    rglw[2] = pcmd->rglw[0];\n    rglw[3] = pcmd->rglw[1];\n    rglw[4] = pcmd->rglw[2];\n    rglw[5] = pcmd->rglw[3];\n    fGokExists = FRunScript(chidScript, rglw, 6, &lw, &tRet);\n    *pfFilter = FPure(lw) && tRet == tYes;\n\n    return !fGokExists || *pfFilter;\n}\n\n/***************************************************************************\n    Filter on a command id and/or a handler id. Either cid or hid may be\n    nil. To turn off filtering for a (cid, hid), use chidNil for chidScript.\n    If both cid and hid are nil, chidScript should be nil. If the cid, hid\n    and chidScript are all nil, we turn off all filtering.\n***************************************************************************/\nbool GOK::FFilterCidHid(long cid, long hid, CHID chidScript)\n{\n    AssertThis(0);\n    CMFLT cmflt;\n    long icmflt;\n    KID kid;\n\n    if (chidNil == chidScript ||\n        !_pcrf->Pcfl()->FGetKidChidCtg(_pgokd->Ctg(), _pgokd->Cno(), chidScript, kctgScript, &kid))\n    {\n        // turn off filtering\n        if (chidNil != chidScript)\n            Warn(\"script doesn't exist (for filtering)\");\n\n        if (cidNil != cid || hidNil != hid)\n        {\n            if (!_FFindCmflt(cid, hid, pvNil, &icmflt))\n                return fTrue;\n            _pglcmflt->Delete(icmflt);\n            if (0 < _pglcmflt->IvMac())\n                return fTrue;\n        }\n\n        // release the filters and remove ourself from the command handler list\n        ReleasePpo(&_pglcmflt);\n        vpcex->RemoveCmh(this, kcmhlGok);\n        return fTrue;\n    }\n\n    if (cidNil == cid && hidNil == hid)\n    {\n        Bug(\"can't filter on (cidNil, hidNil)!\");\n        return fFalse;\n    }\n\n    if (_FFindCmflt(cid, hid, &cmflt, &icmflt))\n    {\n        cmflt.chidScript = chidScript;\n        _pglcmflt->Put(icmflt, &cmflt);\n        return fTrue;\n    }\n\n    if (pvNil == _pglcmflt && pvNil == (_pglcmflt = GL::PglNew(size(CMFLT))))\n        return fFalse;\n\n    cmflt.cid = cid;\n    cmflt.hid = hid;\n    cmflt.chidScript = chidScript;\n    if (!_pglcmflt->FInsert(icmflt, &cmflt))\n        return fFalse;\n\n    vpcex->RemoveCmh(this, kcmhlGok);\n    return vpcex->FAddCmh(this, kcmhlGok, kgrfcmmAll);\n}\n\n/***************************************************************************\n    Look for the given (cid, hid) pair in the filtering map.\n***************************************************************************/\nbool GOK::_FFindCmflt(long cid, long hid, CMFLT *pcmflt, long *picmflt)\n{\n    AssertThis(0);\n    Assert(cid != cidNil || hid != hidNil, \"cid and hid are both nil!\");\n    AssertNilOrVarMem(pcmflt);\n    AssertNilOrVarMem(picmflt);\n    long ivMin, ivLim, iv;\n    CMFLT cmflt;\n\n    ivMin = 0;\n    if (pvNil != _pglcmflt)\n    {\n        for (ivLim = _pglcmflt->IvMac(); ivMin < ivLim;)\n        {\n            iv = (ivMin + ivLim) / 2;\n            _pglcmflt->Get(iv, &cmflt);\n            if (cmflt.cid < cid)\n                ivMin = iv + 1;\n            else if (cmflt.cid > cid)\n                ivLim = iv;\n            else if (cmflt.hid < hid)\n                ivMin = iv + 1;\n            else if (cmflt.hid > hid)\n                ivLim = iv;\n            else\n            {\n                if (pvNil != pcmflt)\n                    *pcmflt = cmflt;\n                if (pvNil != picmflt)\n                    *picmflt = iv;\n                return fTrue;\n            }\n        }\n    }\n\n    TrashVar(pcmflt);\n    if (pvNil != picmflt)\n        *picmflt = ivMin;\n    return fFalse;\n}\n\n/***************************************************************************\n    This handles cidMouseMove and cidRollOff.\n***************************************************************************/\nbool GOK::FCmdMouseMove(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    pcmd->grfcust = _pwoks->GrfcustAdjust(pcmd->grfcust);\n    if (pcmd->cid == cidRollOff)\n        _FAdjustGms(_mpgmsgmseRollOff);\n    else\n    {\n        Assert(cidMouseMove == pcmd->cid, \"unknown command\");\n        CUME cume;\n        bool fCanClick = _pgokd->FGetCume(pcmd->grfcust, _sno, &cume);\n\n        if (!_FAdjustGms(fCanClick ? _mpgmsgmseMove : _mpgmsgmseRollOff))\n            return fTrue;\n        SetCursor(pcmd->grfcust);\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the cursor for this GOK and the given cursor state.\n***************************************************************************/\nvoid GOK::SetCursor(ulong grfcust)\n{\n    AssertThis(0);\n    PGOK pgok;\n    PGOB pgob;\n    CUME cume;\n\n    for (pgok = this; !pgok->_pgokd->FGetCume(grfcust, _sno, &cume) || cume.cnoCurs == cnoNil; grfcust |= fcustChildGok)\n    {\n        for (pgob = pgok;;)\n        {\n            pgob = pgob->PgobPar();\n            if (pvNil == pgob)\n            {\n                vpappb->SetCurs(pvNil);\n                return;\n            }\n            if (pgob->FIs(kclsGOK))\n            {\n                pgok = (PGOK)pgob;\n                break;\n            }\n        }\n    }\n    vpappb->SetCursCno(pgok->_prca, cume.cnoCurs);\n}\n\n/***************************************************************************\n    Do mouse tracking.\n***************************************************************************/\nbool GOK::FCmdTrackMouse(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    pcmd->grfcust = _pwoks->GrfcustAdjust(pcmd->grfcust);\n    if (pcmd->cid == cidMouseDown)\n    {\n        // first response to mouse down\n        CUME cume;\n\n        if (!_pgokd->FGetCume(pcmd->grfcust, _sno, &cume))\n            return fTrue;\n\n        _grfcust = pcmd->grfcust;\n        _cactMouse = (short)pcmd->cact;\n        if (!_FAdjustGms(_mpgmsgmseMouseDown))\n            return fTrue;\n        SetCursor(pcmd->grfcust);\n    }\n    else\n    {\n        Assert(pcmd->cid == cidTrackMouse, 0);\n        bool fIn;\n        GMSE *pmpgmsgmse;\n\n        fIn = FPtIn(pcmd->xp, pcmd->yp);\n        if (pcmd->grfcust & fcustMouse)\n        {\n            // mouse is down\n            pmpgmsgmse = fIn ? _mpgmsgmseDownOn : _mpgmsgmseDownOff;\n        }\n        else\n        {\n            // mouse is up\n            pmpgmsgmse = fIn ? _mpgmsgmseUpOn : _mpgmsgmseUpOff;\n        }\n        if (!_FAdjustGms(pmpgmsgmse))\n            return fTrue;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Put up a tool tip if this GOK has one. Return true if tool tips are\n    still active.\n***************************************************************************/\nbool GOK::FEnsureToolTip(PGOB *ppgobCurTip, long xpMouse, long ypMouse)\n{\n    AssertThis(0);\n    AssertVarMem(ppgobCurTip);\n    AssertNilOrPo(*ppgobCurTip, 0);\n    CNO cno;\n    HTOP htop;\n    PGOK pgokSrc;\n\n    ReleasePpo(ppgobCurTip);\n    if (_hidToolTipSrc == Hid())\n        pgokSrc = this;\n    else\n    {\n        if (pvNil == (pgokSrc = (PGOK)_pwoks->PgobFromHid(_hidToolTipSrc)) || !pgokSrc->FIs(kclsGOK))\n        {\n            // abort tool tip mode\n            return fFalse;\n        }\n    }\n\n    if (cnoNil == (cno = pgokSrc->_CnoToolTip()))\n    {\n        // abort tool tip mode\n        return fFalse;\n    }\n\n    if (kcnoToolTipNoAffect == cno)\n    {\n        // return true to stay in tool tip mode, but don't put up a tool tip\n        return fTrue;\n    }\n\n    // put up the tool tip\n    htop.cnoBalloon = cnoNil;\n    htop.hidThis = khidToolTip;\n    htop.hidTarget = Hid();\n    htop.cnoScript = cnoNil;\n    htop.dxp = 0;\n    htop.dyp = 0;\n    htop.ckiSnd.ctg = ctgNil;\n    htop.ckiSnd.cno = cnoNil;\n\n    *ppgobCurTip = _pwoks->PhbalNew(pvNil, _prca, cno, &htop);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the cno for the our tool tip (given the current modifier state).\n***************************************************************************/\nCNO GOK::_CnoToolTip(void)\n{\n    AssertThis(0);\n    CUME cume;\n\n    if (!_pgokd->FGetCume(_pwoks->GrfcustCur(), _sno, &cume))\n        return cnoNil;\n\n    return cume.cnoTopic;\n}\n\n/***************************************************************************\n    Makes the GOK get its tool tip from the GOK having the given hid.\n***************************************************************************/\nvoid GOK::SetHidToolTip(long hidSrc)\n{\n    AssertThis(0);\n\n    _hidToolTipSrc = hidSrc;\n}\n\n/***************************************************************************\n    Get the state information for the GOK (for testing). High 16 bits are\n    the state number; next 14 bits are _gmsCur; low 2 bits are set.\n***************************************************************************/\nlong GOK::LwState(void)\n{\n    AssertThis(0);\n\n    return (_sno << 16) | (_gmsCur << 2) & 0x0000FFFF | 0x03;\n}\n\n/***************************************************************************\n    Get the registration point of the given GOK in its parent's coordinates.\n***************************************************************************/\nvoid GOK::GetPtReg(PT *ppt, long coo)\n{\n    AssertThis(0);\n    AssertVarMem(ppt);\n    RC rc;\n\n    if (coo == cooLocal)\n        rc.Zero();\n    else\n        GetRc(&rc, coo);\n    ppt->xp = rc.xpLeft + _dxp;\n    ppt->yp = rc.ypTop + _dyp;\n}\n\n/***************************************************************************\n    Get the \"content\" rectangle of this GOK. This is primarily for GOKs\n    that have a content area, such as help balloons and easels.\n***************************************************************************/\nvoid GOK::GetRcContent(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n\n    if (pvNil != _pgorp)\n        _pgorp->GetRcContent(prc);\n    else\n        GetRc(prc, cooLocal);\n}\n\n/***************************************************************************\n    Set the GOK's z plane.\n***************************************************************************/\nvoid GOK::SetZPlane(long zp)\n{\n    AssertThis(0);\n    PGOB pgobBefore;\n\n    if (_zp == zp)\n        return;\n\n    pgobBefore = _PgobBefore(PgobPar(), zp);\n    if (pgobBefore == this || pgobBefore == PgobPrevSib())\n    {\n        _zp = zp;\n        return;\n    }\n    SendBehind(pgobBefore);\n    InvalRc(pvNil);\n    _zp = zp;\n}\n\n/***************************************************************************\n    Set the slipping behavior of the GOK.\n***************************************************************************/\nvoid GOK::SetNoSlip(bool fNoSlip)\n{\n    AssertThis(0);\n\n    _fNoSlip = FPure(fNoSlip);\n}\n\n/***************************************************************************\n    If there is an attached script with the given chid value, run it.\n    Returns false iff the GOK no longer exists on return. *ptSuccess is\n    filled with tNo if the script doesn't exist, tMaybe if the script exists\n    but there was a failure, tYes if the script exists and running it\n    succeeded.\n    CAUTION: this GOK may not exist on return.\n***************************************************************************/\nbool GOK::FRunScript(CHID chid, long *prglw, long clw, long *plwReturn, tribool *ptSuccess)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(plwReturn);\n    KID kid;\n\n    if (!_pcrf->Pcfl()->FGetKidChidCtg(_pgokd->Ctg(), _pgokd->Cno(), chid, kctgScript, &kid))\n    {\n        if (pvNil != ptSuccess)\n            *ptSuccess = tNo;\n        return fTrue;\n    }\n\n    return FRunScriptCno(kid.cki.cno, prglw, clw, plwReturn, ptSuccess);\n}\n\n/***************************************************************************\n    If there is a script with the given cno, run it. Returns false iff\n    the GOK no longer exists on return. *ptSuccess is filled with tNo\n    if the script doesn't exist, tMaybe if the script exists but there\n    was a failure, tYes if the script exists and running it succeeded.\n    CAUTION: this GOK may not exist on return.\n***************************************************************************/\nbool GOK::FRunScriptCno(CNO cno, long *prglw, long clw, long *plwReturn, tribool *ptSuccess)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(plwReturn);\n    PSCPT pscpt;\n    bool fError, fExists;\n    tribool tRet;\n\n    fExists = fTrue;\n    pscpt = (PSCPT)_pcrf->PbacoFetch(kctgScript, cno, SCPT::FReadScript, &fError);\n    if (pvNil != pscpt)\n    {\n        AssertPo(pscpt, 0);\n        long grid = Grid();\n        PWOKS pwoks = _pwoks;\n        PSCEG psceg = _pwoks->PscegNew(_prca, this);\n\n        // be careful not to use GOK variables here in case the GOK is\n        // freed while the script is running.\n        if (pvNil != psceg && psceg->FRunScript(pscpt, prglw, clw, plwReturn))\n            tRet = tYes;\n        else\n            tRet = tMaybe;\n        ReleasePpo(&psceg);\n        ReleasePpo(&pscpt);\n\n        // see if this GOK still exists\n        fExists = (this == pwoks->PgobFromGrid(grid));\n    }\n    else\n        tRet = fError ? tMaybe : tNo;\n\n    if (pvNil != ptSuccess)\n        *ptSuccess = tRet;\n    return fExists;\n}\n\n/***************************************************************************\n    Change the current state of the GOK to the given state number.\n    CAUTION: this GOK may not exist on return.\n***************************************************************************/\nbool GOK::FChangeState(long sno)\n{\n    AssertThis(0);\n    AssertIn(sno, 0, kswMax);\n    return _FEnterState(sno);\n}\n\n/***************************************************************************\n    Set the representation to the given chid (if it's not nil).\n\n    Moves the GOK by dxp, dyp and sets its wait time for animation script\n    wake up to dtim (unless it's zero).\n    CAUTION: this GOK may not exist on return. Returns false iff the GOK\n    doesn't exist on return.\n***************************************************************************/\nbool GOK::FSetRep(CHID chid, ulong grfgok, CTG ctg, long dxp, long dyp, ulong dtim)\n{\n    AssertThis(0);\n\n    if (dtim != 0)\n        _dtim = dtim;\n    if (grfgok & fgokKillAnim)\n    {\n        if (!_FAdjustGms(_mpgmsgmseEnd))\n            return fTrue;\n    }\n    return _FSetRep(chid, grfgok, ctg, dxp, dyp);\n}\n\n/***************************************************************************\n    The GOK has been hit with the mouse, do the associated action.\n    CAUTION: this GOK may not exist on return.\n***************************************************************************/\nbool GOK::FCmdClicked(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    PGOK pgok;\n    PGOB pgob;\n    long rglw[3];\n    long lw;\n    tribool tRet;\n    CUME cume;\n    long hid = Hid();\n    long grid = Grid();\n\n    _DeferSnd(fTrue);\n    if (kgmsWait == _gmsCur)\n    {\n        if (!_FSetGms(kgmsOn, factNil))\n            return fTrue;\n    }\n\n    for (pgok = this;;)\n    {\n        if (pgok->_pgokd->FGetCume(pcmd->grfcust, _sno, &cume))\n            break;\n        pgob = pgok->PgobPar();\n        if (pvNil == pgob || !pgob->FIs(kclsGOK))\n        {\n            _DeferSnd(fFalse);\n            return fTrue;\n        }\n        pgok = (PGOK)pgob;\n    }\n\n    // do the action associated with a mouse click\n    rglw[0] = pcmd->grfcust;\n    rglw[1] = hid;\n    rglw[2] = pcmd->cact;\n\n    if (!pgok->FRunScript(cume.chidScript, rglw, 3, &lw, &tRet))\n        return fTrue;\n    if (cidNil != cume.cidDefault && (tYes != tRet || lw != 0))\n    {\n        // do the default action\n        vpcex->EnqueueCid(cume.cidDefault, pvNil, pvNil, pgok->Hid(), hid);\n    }\n\n    // undefer sound - be careful because this GOK may have gone away\n    if (this == pgok || (this == pgok->_pwoks->PgobFromGrid(grid)))\n        _DeferSnd(fFalse);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Make the current graphical representation that indicated by the given\n    chid value. If we're already in that representation, don't do anything,\n    ie, don't restart an animation.\n    CAUTION: this GOK may not exist on return. Returns false iff the GOK\n    doesn't exist on return.\n***************************************************************************/\nPGORP GOK::_PgorpNew(PCRF pcrf, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    typedef PGORP (*PFNGORP)(PGOK pgok, PCRF pcrf, CTG ctg, CNO cno);\n    PFNGORP pfngorp;\n\n    switch (ctg)\n    {\n    default:\n        return pvNil;\n\n    case kctgMbmp:\n    case kctgMask:\n        pfngorp = (PFNGORP)GORB::PgorbNew;\n        break;\n\n    case kctgFill:\n        pfngorp = (PFNGORP)GORF::PgorfNew;\n        break;\n\n    case kctgTile:\n        pfngorp = (PFNGORP)GORT::PgortNew;\n        break;\n\n    case kctgVideo:\n        pfngorp = (PFNGORP)GORV::PgorvNew;\n        break;\n    }\n\n    return (*pfngorp)(this, pcrf, ctg, cno);\n}\n\n/***************************************************************************\n    Set the current graphical representation to this one.\n***************************************************************************/\nvoid GOK::_SetGorp(PGORP pgorp, long dxp, long dyp)\n{\n    AssertThis(0);\n    AssertNilOrPo(pgorp, 0);\n    RC rc, rcNew;\n\n    if (_cactDeferGorp > 0)\n    {\n        if (pvNil != pgorp)\n        {\n            pgorp->AddRef();\n            pgorp->Stream(_fStream);\n        }\n        ReleasePpo(&_pgorp);\n        _pgorp = pgorp;\n\n        GetRc(&rc, cooParent);\n        rc.xpRight = rc.xpLeft;\n        rc.ypBottom = rc.ypTop;\n        rc.Offset(_dxp + dxp, _dyp + dyp);\n        _dxp = _dyp = 0;\n        SetPos(&rc, pvNil);\n        _fGorpDirty = fTrue;\n    }\n    else\n    {\n        if (pvNil != pgorp)\n        {\n            pgorp->AddRef();\n            pgorp->Stream(_fStream);\n            pgorp->SetDxpDyp(_dxpPref, _dypPref);\n            pgorp->GetRc(&rcNew);\n        }\n        else\n            rcNew.Zero();\n        ReleasePpo(&_pgorp);\n        _pgorp = pgorp;\n\n        GetRc(&rc, cooParent);\n        rc.OffsetCopy(&rcNew, _dxp + rc.xpLeft + dxp, _dyp + rc.ypTop + dyp);\n        _dxp = -rcNew.xpLeft;\n        _dyp = -rcNew.ypTop;\n\n        SetPos(&rc, pvNil);\n        if (pvNil != _pgorp)\n        {\n            _pgorp->GotoNfr(0);\n            _pgorp->FPlay();\n        }\n        _fGorpDirty = fFalse;\n    }\n}\n\n/***************************************************************************\n    Defer or finish defering marking and positioning the gorp.\n***************************************************************************/\nvoid GOK::_DeferGorp(bool fDefer)\n{\n    AssertThis(0);\n\n    if (fDefer)\n        _cactDeferGorp++;\n    else if (_cactDeferGorp > 0)\n    {\n        --_cactDeferGorp;\n        if (_cactDeferGorp == 0 && _fGorpDirty)\n            _SetGorp(_pgorp, 0, 0);\n    }\n    else\n        Bug(\"_cactDeferGorp is bad\");\n\n    _DeferSnd(fDefer);\n}\n\n/***************************************************************************\n    Start playing the current representation.\n***************************************************************************/\nbool GOK::FPlay(void)\n{\n    AssertThis(0);\n\n    return pvNil != _pgorp && _pgorp->FPlay();\n}\n\n/***************************************************************************\n    Return whether the current representation is being played.\n***************************************************************************/\nbool GOK::FPlaying(void)\n{\n    AssertThis(0);\n\n    return pvNil != _pgorp && _pgorp->FPlaying();\n}\n\n/***************************************************************************\n    Stop playing the current representation.\n***************************************************************************/\nvoid GOK::Stop(void)\n{\n    AssertThis(0);\n\n    if (pvNil != _pgorp)\n        _pgorp->Stop();\n}\n\n/***************************************************************************\n    Goto the given frame of the current representation.\n***************************************************************************/\nvoid GOK::GotoNfr(long nfr)\n{\n    AssertThis(0);\n\n    if (pvNil != _pgorp)\n    {\n        long nfrOld = _pgorp->NfrCur();\n        _pgorp->GotoNfr(nfr);\n        if (nfrOld != _pgorp->NfrCur())\n            InvalRc(pvNil, kginMark);\n    }\n}\n\n/***************************************************************************\n    Return the number of frames in the current representation.\n***************************************************************************/\nlong GOK::NfrMac(void)\n{\n    AssertThis(0);\n\n    return pvNil == _pgorp ? 0 : _pgorp->NfrMac();\n}\n\n/***************************************************************************\n    Return the current frame number of the current representation.\n***************************************************************************/\nlong GOK::NfrCur(void)\n{\n    AssertThis(0);\n\n    return pvNil == _pgorp ? 0 : _pgorp->NfrCur();\n}\n\n/***************************************************************************\n    Play a sound and attach the sound to this GOK so that when the GOK\n    goes away, the sound will be killed.\n***************************************************************************/\nlong GOK::SiiPlaySound(CTG ctg, CNO cno, long sqn, long vlm, long cactPlay, ulong dtsStart, long spr, long scl)\n{\n    AssertThis(0);\n\n    if (pvNil == vpsndm)\n        return siiNil;\n\n    if (siiNil != _siiSound)\n        vpsndm->Stop(_siiSound);\n\n    if (cnoNil != cno)\n    {\n        _siiSound = vpsndm->SiiPlay(_prca, ctg, cno, sqn, vlm, cactPlay, dtsStart, spr, scl);\n    }\n    else\n        _siiSound = siiNil;\n\n    return _siiSound;\n}\n\n/***************************************************************************\n    Defer or stop defering mouse sounds.\n***************************************************************************/\nvoid GOK::_DeferSnd(bool fDefer)\n{\n    AssertThis(0);\n\n    if (fDefer)\n        _cactDeferSnd++;\n    else if (_cactDeferSnd > 0)\n    {\n        --_cactDeferSnd;\n        if (_cactDeferSnd == 0 && _fMouseSndDirty)\n            SiiPlayMouseSound(_ckiMouseSnd.ctg, _ckiMouseSnd.cno);\n    }\n    else\n        Bug(\"_cactDeferSnd is bad\");\n}\n\n/***************************************************************************\n    Play a sound and attach the sound to this GOK as the mouse tracking\n    sound, so that when the GOK goes away and the mouse state changes,\n    the sound will be killed.\n***************************************************************************/\nlong GOK::SiiPlayMouseSound(CTG ctg, CNO cno)\n{\n    AssertThis(0);\n\n    _fMouseSndDirty = fFalse;\n    if (pvNil == vpsndm)\n        return siiNil;\n\n    if (siiNil != _siiMouse)\n        vpsndm->Stop(_siiMouse);\n\n    if (cnoNil != cno)\n        _siiMouse = vpsndm->SiiPlay(_prca, ctg, cno);\n    else\n        _siiMouse = siiNil;\n\n    return _siiMouse;\n}\n\n/***************************************************************************\n    Play a sound with the given chid as the current mouse tracking sound.\n***************************************************************************/\nvoid GOK::_PlayMouseSound(CHID chid)\n{\n    AssertThis(0);\n    KID kid;\n\n    if (pvNil == vpsndm)\n        return;\n\n    if (!_pcrf->Pcfl()->FGetKidChidCtg(_pgokd->Ctg(), _pgokd->Cno(), chid, kctgWave, &kid) &&\n        !_pcrf->Pcfl()->FGetKidChidCtg(_pgokd->Ctg(), _pgokd->Cno(), chid, kctgMidi, &kid))\n    {\n        return;\n    }\n\n    if (_cactDeferSnd > 0)\n    {\n        _ckiMouseSnd = kid.cki;\n        _fMouseSndDirty = fTrue;\n    }\n    else\n        SiiPlayMouseSound(kid.cki.ctg, kid.cki.cno);\n}\n\n/***************************************************************************\n    Our kidworld is being suspended. Make sure no AVIs or other things\n    are running.\n***************************************************************************/\nvoid GOK::Suspend(void)\n{\n    AssertThis(0);\n\n    if (pvNil != _pgorp)\n        _pgorp->Suspend();\n}\n\n/***************************************************************************\n    Our kidworld is being resumed. Undo anything we did in Suspend.\n***************************************************************************/\nvoid GOK::Resume(void)\n{\n    AssertThis(0);\n\n    if (pvNil != _pgorp)\n        _pgorp->Resume();\n}\n\n/***************************************************************************\n    The streaming property is being set or reset. If streaming is set, the\n    rep should get flushed when we're done with it.\n***************************************************************************/\nvoid GOK::Stream(bool fStream)\n{\n    AssertThis(0);\n    _fStream = FPure(fStream);\n\n    if (pvNil != _pgorp)\n        _pgorp->Stream(fStream);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a GOK.\n***************************************************************************/\nvoid GOK::AssertValid(ulong grf)\n{\n    GOK_PAR::AssertValid(0);\n    AssertPo(_pwoks, 0);\n    AssertNilOrPo(_pscegAnim, 0);\n    AssertPo(_pcrf, 0);\n    AssertPo(_prca, 0);\n    AssertNilOrPo(_pgorp, 0);\n    AssertNilOrPo(_pglcmflt, 0);\n    AssertIn(_gmsCur, gmsNil, kgmsLim);\n    if (FIn(_gmsCur, kgmsMinTrack, kgmsLimTrack))\n    {\n        Assert(vpcex->PgobTracking() == this || vpappb->CactModal() > 0, \"should be tracking the mouse\");\n    }\n    else\n    {\n        Assert(vpcex->PgobTracking() != this, \"shouldn't be tracking the mouse\");\n    }\n}\n\n/***************************************************************************\n    Mark memory for the GOK.\n***************************************************************************/\nvoid GOK::MarkMem(void)\n{\n    AssertValid(0);\n    GOK_PAR::MarkMem();\n    MarkMemObj(_pscegAnim);\n    MarkMemObj(_prca);\n    MarkMemObj(_pcrf);\n    MarkMemObj(_pgorp);\n    MarkMemObj(_pglcmflt);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Stub method for non-frame based representations.\n***************************************************************************/\nlong GORP::NfrMac(void)\n{\n    AssertThis(0);\n    return 0;\n}\n\n/***************************************************************************\n    Stub method for non-frame based representations.\n***************************************************************************/\nlong GORP::NfrCur(void)\n{\n    AssertThis(0);\n    return 0;\n}\n\n/***************************************************************************\n    Stub method for non-frame based representations.\n***************************************************************************/\nvoid GORP::GotoNfr(long nfr)\n{\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Stub method for non-frame based representations.\n***************************************************************************/\nbool GORP::FPlaying(void)\n{\n    AssertThis(0);\n    return fFalse;\n}\n\n/***************************************************************************\n    Stub method for non-frame based representations.\n***************************************************************************/\nbool GORP::FPlay(void)\n{\n    AssertThis(0);\n    return fFalse;\n}\n\n/***************************************************************************\n    Stub method for non-frame based representations.\n***************************************************************************/\nvoid GORP::Stop(void)\n{\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Stub method for non-frame based representations.\n***************************************************************************/\nvoid GORP::Suspend(void)\n{\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Stub method for non-frame based representations.\n***************************************************************************/\nvoid GORP::Resume(void)\n{\n    AssertThis(0);\n}\n\n/***************************************************************************\n    The streaming property is being set or reset. If streaming is set, we\n    should flush our stuff from the RCA cache when we're done with it.\n***************************************************************************/\nvoid GORP::Stream(bool fStream)\n{\n    AssertThis(0);\n}\n\n// a FILL chunk\nstruct GOKFL\n{\n    short bo;\n    short osk;\n    RC rc;\n    long lwAcrFore;\n    long lwAcrBack;\n    byte rgbPat[8];\n};\nconst BOM kbomGokfl = 0x5FFF0000;\n\n/***************************************************************************\n    Static method to create a new fill representation.\n***************************************************************************/\nPGORF GORF::PgorfNew(PGOK pgok, PCRF pcrf, CTG ctg, CNO cno)\n{\n    AssertPo(pgok, 0);\n    AssertPo(pcrf, 0);\n\n    GOKFL gokfl;\n    PCFL pcfl;\n    BLCK blck;\n    PGORF pgorf;\n\n    pcfl = pcrf->Pcfl();\n    if (!pcfl->FFind(ctg, cno, &blck) || !blck.FUnpackData() || blck.Cb() != size(GOKFL) || !blck.FRead(&gokfl))\n    {\n        Warn(\"couldn't load indicated fill\");\n        return pvNil;\n    }\n    if (kboOther == gokfl.bo)\n        SwapBytesBom(&gokfl, kbomGokfl);\n    if (kboCur != gokfl.bo)\n    {\n        Warn(\"Bad FILL chunk\");\n        return pvNil;\n    }\n\n    if (pvNil == (pgorf = NewObj GORF))\n        return pvNil;\n\n    pgorf->_acrFore.SetFromLw(gokfl.lwAcrFore);\n    pgorf->_acrBack.SetFromLw(gokfl.lwAcrBack);\n    CopyPb(gokfl.rgbPat, pgorf->_apt.rgb, size(gokfl.rgbPat));\n    pgorf->_rc = gokfl.rc;\n    pgorf->_dxp = gokfl.rc.Dxp();\n    pgorf->_dyp = gokfl.rc.Dyp();\n\n    AssertPo(pgorf, 0);\n    return pgorf;\n}\n\n/***************************************************************************\n    Fill the rectangle.\n***************************************************************************/\nvoid GORF::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    RC rc(0, 0, _dxp, _dyp);\n\n    if (rc.FIntersect(prcClip) && (_acrFore != kacrClear || _acrBack != kacrClear))\n    {\n        pgnv->FillRcApt(&rc, &_apt, _acrFore, _acrBack);\n    }\n}\n\n/***************************************************************************\n    Return whether the point is in the representation.\n***************************************************************************/\nbool GORF::FPtIn(long xp, long yp)\n{\n    AssertThis(0);\n    return FIn(xp, 0, _dxp) && FIn(yp, 0, _dyp);\n}\n\n/***************************************************************************\n    Set the internal state of the GORF to accomodate the given preferred\n    size of the content area.\n***************************************************************************/\nvoid GORF::SetDxpDyp(long dxpPref, long dypPref)\n{\n    AssertThis(0);\n    AssertIn(dxpPref, 0, kcbMax);\n    AssertIn(dypPref, 0, kcbMax);\n\n    if ((_dxp = dxpPref) == 0)\n        _dxp = _rc.Dxp();\n    if ((_dyp = dypPref) == 0)\n        _dyp = _rc.Dyp();\n}\n\n/***************************************************************************\n    Get the natural rectangle.\n***************************************************************************/\nvoid GORF::GetRc(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n\n    prc->Set(0, 0, _dxp, _dyp);\n    prc->CenterOnRc(&_rc);\n}\n\n/***************************************************************************\n    Get the interior content rectangle.\n***************************************************************************/\nvoid GORF::GetRcContent(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n\n    GetRc(prc);\n    prc->OffsetToOrigin();\n}\n\n/***************************************************************************\n    Create a new masked bitmap representation of a graphical object.\n***************************************************************************/\nPGORB GORB::PgorbNew(PGOK pgok, PCRF pcrf, CTG ctg, CNO cno)\n{\n    AssertPo(pgok, 0);\n    AssertPo(pcrf, 0);\n    PGORB pgorb;\n\n    if (pvNil == (pgorb = NewObj GORB))\n        return pvNil;\n\n    pgorb->_pcrf = pcrf;\n    pgorb->_pcrf->AddRef();\n    pgorb->_ctg = ctg;\n    pgorb->_cno = cno;\n    AssertPo(pgorb, 0);\n    return pgorb;\n}\n\n/***************************************************************************\n    Destructor for a GORB.\n***************************************************************************/\nGORB::~GORB(void)\n{\n    if (_fStream && pvNil != _pcrf && ctgNil != _ctg)\n        _pcrf->FSetCrep(crepToss, _ctg, _cno, MBMP::FReadMbmp);\n    ReleasePpo(&_pcrf);\n}\n\n/***************************************************************************\n    Draw the bitmap.\n***************************************************************************/\nvoid GORB::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    PMBMP pmbmp;\n    RC rc;\n\n    if (kctgMbmp != _ctg)\n        return;\n\n    if (pvNil != (pmbmp = (PMBMP)_pcrf->PbacoFetch(_ctg, _cno, MBMP::FReadMbmp)))\n    {\n        AssertPo(pmbmp, 0);\n        pmbmp->GetRc(&rc);\n        rc.OffsetToOrigin();\n        pgnv->DrawMbmp(pmbmp, &rc);\n        ReleasePpo(&pmbmp);\n    }\n    else\n        Warn(\"Couldn't load kidspace bitmap\");\n}\n\n/***************************************************************************\n    Return whether the point is in the bitmap.\n***************************************************************************/\nbool GORB::FPtIn(long xp, long yp)\n{\n    AssertThis(0);\n    PMBMP pmbmp;\n    RC rc;\n    bool fRet;\n\n    if (pvNil == (pmbmp = (PMBMP)_pcrf->PbacoFetch(_ctg, _cno, MBMP::FReadMbmp)))\n    {\n        Warn(\"Couldn't load kidspace bitmap\");\n        return fTrue;\n    }\n\n    AssertPo(pmbmp, 0);\n    pmbmp->GetRc(&rc);\n    fRet = pmbmp->FPtIn(xp + rc.xpLeft, yp + rc.ypTop);\n    ReleasePpo(&pmbmp);\n    return fRet;\n}\n\n/***************************************************************************\n    Set the internal state of the GORB to accomodate the given preferred\n    size of the content area.\n***************************************************************************/\nvoid GORB::SetDxpDyp(long dxpPref, long dypPref)\n{\n    AssertThis(0);\n    AssertIn(dxpPref, 0, kcbMax);\n    AssertIn(dypPref, 0, kcbMax);\n\n    // GORB's are not resizeable, so we do nothing\n}\n\n/***************************************************************************\n    Get the natural rectangle.\n***************************************************************************/\nvoid GORB::GetRc(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n\n    PMBMP pmbmp;\n\n    if (pvNil != (pmbmp = (PMBMP)_pcrf->PbacoFetch(_ctg, _cno, MBMP::FReadMbmp)))\n    {\n        AssertPo(pmbmp, 0);\n        pmbmp->GetRc(prc);\n        ReleasePpo(&pmbmp);\n    }\n    else\n    {\n        Warn(\"Couldn't load kidspace bitmap\");\n        prc->Zero();\n    }\n}\n\n/***************************************************************************\n    Get the interior content rectangle.\n***************************************************************************/\nvoid GORB::GetRcContent(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n\n    GetRc(prc);\n    prc->OffsetToOrigin();\n}\n\n/***************************************************************************\n    The streaming property is being set or reset. If streaming is set, we\n    should flush our stuff from the RCA cache when we're done with it.\n***************************************************************************/\nvoid GORB::Stream(bool fStream)\n{\n    AssertThis(0);\n    _fStream = FPure(fStream);\n}\n\n/***************************************************************************\n    Create a new tile representation.\n***************************************************************************/\nPGORT GORT::PgortNew(PGOK pgok, PCRF pcrf, CTG ctg, CNO cno)\n{\n    AssertPo(pgok, 0);\n    AssertPo(pcrf, 0);\n\n    GOTIL gotil;\n    PCFL pcfl;\n    BLCK blck;\n    PGORT pgort;\n    KID kid;\n\n    pcfl = pcrf->Pcfl();\n    if (!pcfl->FFind(ctg, cno, &blck) || !blck.FUnpackData() || blck.Cb() != size(GOTIL) || !blck.FRead(&gotil))\n    {\n        Warn(\"couldn't load indicated tile chunk\");\n        return pvNil;\n    }\n\n    if (kboOther == gotil.bo)\n        SwapBytesRgsw(&gotil, size(gotil) / size(short));\n\n#pragma warning(push)\n#pragma warning(disable : 4804)\n    if (kboCur != gotil.bo || gotil.rgdxp[idzpLeftBorder] < 0 || gotil.rgdxp[idzpRightBorder] < 0 ||\n        gotil.rgdxp[idzpLeft] < 0 || gotil.rgdxp[idzpRight] < 0 || gotil.rgdxp[idzpLeftFlex] < 0 ||\n        gotil.rgdxp[idzpRightFlex] < 0 || gotil.rgdxp[idzpLeftFlex] + gotil.rgdxp[idzpRightFlex] <= 0 ||\n        /* FIXME(bruxisma): This is comparing an integer with a boolean */\n        gotil.rgdxp[idzpLeftInc] < (gotil.rgdxp[idzpLeftFlex] > 0) ||\n        /* FIXME(bruxisma): This is comparing an integer with a boolean */\n        gotil.rgdxp[idzpRightInc] < (gotil.rgdxp[idzpRightFlex] > 0) ||\n        gotil.rgdxp[idzpLeftInc] > gotil.rgdxp[idzpLeftFlex] ||\n        gotil.rgdxp[idzpRightInc] > gotil.rgdxp[idzpRightFlex] ||\n\n        gotil.rgdyp[idzpLeftBorder] < 0 || gotil.rgdyp[idzpRightBorder] < 0 || gotil.rgdyp[idzpLeft] < 0 ||\n        gotil.rgdyp[idzpRight] < 0 || gotil.rgdyp[idzpLeftFlex] < 0 || gotil.rgdyp[idzpRightFlex] < 0 ||\n        gotil.rgdyp[idzpLeftFlex] + gotil.rgdyp[idzpRightFlex] <= 0 ||\n        /* FIXME(bruxisma): This is comparing an integer with a boolean */\n        gotil.rgdyp[idzpLeftInc] < (gotil.rgdyp[idzpLeftFlex] > 0) ||\n        /* FIXME(bruxisma): This is comparing an integer with a boolean */\n        gotil.rgdyp[idzpRightInc] < (gotil.rgdyp[idzpRightFlex] > 0) ||\n        gotil.rgdyp[idzpLeftInc] > gotil.rgdyp[idzpLeftFlex] || gotil.rgdyp[idzpRightInc] > gotil.rgdyp[idzpRightFlex])\n    {\n        Warn(\"Bad TILE chunk\");\n        return pvNil;\n    }\n#pragma warning(pop)\n    if (!pcfl->FGetKidChidCtg(ctg, cno, 0, kctgMbmp, &kid))\n    {\n        Warn(\"no child MBMP of TILE chunk\");\n        return pvNil;\n    }\n\n    if (pvNil == (pgort = NewObj GORT))\n        return pvNil;\n\n    CopyPb(gotil.rgdxp, pgort->_rgdxp, size(gotil.rgdxp));\n    CopyPb(gotil.rgdyp, pgort->_rgdyp, size(gotil.rgdyp));\n    pgort->_pcrf = pcrf;\n    pgort->_pcrf->AddRef();\n    pgort->_ctg = kid.cki.ctg;\n    pgort->_cno = kid.cki.cno;\n    pgort->_dxp = pgort->_rgdxp[idzpLeft] + pgort->_rgdxp[idzpMid] + pgort->_rgdxp[idzpRight];\n    pgort->_dyp = pgort->_rgdyp[idzpLeft] + pgort->_rgdyp[idzpMid] + pgort->_rgdyp[idzpRight];\n\n    AssertPo(pgort, 0);\n    return pgort;\n}\n\n/***************************************************************************\n    Destructor for a GORT.\n***************************************************************************/\nGORT::~GORT(void)\n{\n    if (_fStream && pvNil != _pcrf && ctgNil != _ctg)\n        _pcrf->FSetCrep(crepToss, _ctg, _cno, MBMP::FReadMbmp);\n    ReleasePpo(&_pcrf);\n}\n\n/***************************************************************************\n    Draw the GORT.\n***************************************************************************/\nvoid GORT::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    long ypLim, dyp;\n    PMBMP pmbmp;\n    RC rcRow;\n\n    if (pvNil == (pmbmp = (PMBMP)_pcrf->PbacoFetch(_ctg, _cno, MBMP::FReadMbmp)))\n    {\n        Warn(\"Couldn't load kidspace bitmap\");\n        return;\n    }\n\n    AssertPo(pmbmp, 0);\n    dyp = 0;\n\n    // draw the top row\n    ypLim = _rgdyp[idzpLeft] + _dypLeftFlex;\n    rcRow.Set(0, 0, _dxp, LwMin(ypLim, _rgdyp[idzpLeft] + _rgdyp[idzpLeftFlex]));\n    _DrawRow(pgnv, pmbmp, &rcRow, prcClip, 0, dyp);\n\n    // draw the top flex rows\n    dyp -= _rgdyp[idzpLeft];\n    while (rcRow.ypBottom < ypLim)\n    {\n        rcRow.ypTop = rcRow.ypBottom;\n        rcRow.ypBottom = LwMin(rcRow.ypTop + _rgdyp[idzpLeftFlex], ypLim);\n        _DrawRow(pgnv, pmbmp, &rcRow, prcClip, 0, dyp);\n    }\n\n    // draw the middle row\n    ypLim = rcRow.ypBottom + _rgdyp[idzpMid] + _dypRightFlex;\n    rcRow.ypTop = rcRow.ypBottom;\n    rcRow.ypBottom = LwMin(ypLim, rcRow.ypTop + _rgdyp[idzpMid] + _rgdyp[idzpRightFlex]);\n    dyp -= _rgdyp[idzpLeftFlex];\n    _DrawRow(pgnv, pmbmp, &rcRow, prcClip, 0, dyp);\n\n    // draw the bottom flex rows\n    dyp -= _rgdyp[idzpMid];\n    while (rcRow.ypBottom < ypLim)\n    {\n        rcRow.ypTop = rcRow.ypBottom;\n        rcRow.ypBottom = LwMin(rcRow.ypTop + _rgdyp[idzpRightFlex], ypLim);\n        _DrawRow(pgnv, pmbmp, &rcRow, prcClip, 0, dyp);\n    }\n\n    // draw the bottom row\n    rcRow.ypTop = rcRow.ypBottom;\n    rcRow.ypBottom = _dyp;\n    dyp -= _rgdyp[idzpRightFlex];\n    _DrawRow(pgnv, pmbmp, &rcRow, prcClip, 0, dyp);\n\n    ReleasePpo(&pmbmp);\n}\n\n/***************************************************************************\n    Draw a row of the tiled bitmap.\n***************************************************************************/\nvoid GORT::_DrawRow(PGNV pgnv, PMBMP pmbmp, RC *prcRow, RC *prcClip, long dxp, long dyp)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertPo(pmbmp, 0);\n    AssertVarMem(prcRow);\n    AssertVarMem(prcClip);\n    long xpLim;\n    RC rcClip, rc, rcMbmp;\n\n    if (!rcClip.FIntersect(prcRow, prcClip))\n        return;\n\n    pmbmp->GetRc(&rcMbmp);\n\n    // draw the left cell\n    xpLim = prcRow->xpLeft + _rgdxp[idzpLeft] + _dxpLeftFlex;\n    rc = *prcRow;\n    rc.xpRight = LwMin(xpLim, rc.xpLeft + _rgdxp[idzpLeft] + _rgdxp[idzpLeftFlex]);\n    dyp += rc.ypTop;\n    if (rcClip.FIntersect(prcClip, &rc))\n    {\n        pgnv->ClipRc(&rcClip);\n        rcMbmp.Offset(rc.xpLeft + dxp - rcMbmp.xpLeft, dyp - rcMbmp.ypTop);\n        pgnv->DrawMbmp(pmbmp, &rcMbmp);\n    }\n\n    // draw the left flex cells\n    dxp -= _rgdxp[idzpLeft];\n    while (rc.xpRight < xpLim)\n    {\n        rc.xpLeft = rc.xpRight;\n        rc.xpRight = LwMin(rc.xpLeft + _rgdxp[idzpLeftFlex], xpLim);\n        if (rcClip.FIntersect(prcClip, &rc))\n        {\n            pgnv->ClipRc(&rcClip);\n            rcMbmp.Offset(rc.xpLeft + dxp - rcMbmp.xpLeft, dyp - rcMbmp.ypTop);\n            pgnv->DrawMbmp(pmbmp, &rcMbmp);\n        }\n    }\n\n    // draw the middle cell\n    xpLim = rc.xpRight + _rgdxp[idzpMid] + _dxpRightFlex;\n    rc.xpLeft = rc.xpRight;\n    rc.xpRight = LwMin(xpLim, rc.xpLeft + _rgdxp[idzpMid] + _rgdxp[idzpRightFlex]);\n    dxp -= _rgdxp[idzpLeftFlex];\n    if (rcClip.FIntersect(prcClip, &rc))\n    {\n        pgnv->ClipRc(&rcClip);\n        rcMbmp.Offset(rc.xpLeft + dxp - rcMbmp.xpLeft, dyp - rcMbmp.ypTop);\n        pgnv->DrawMbmp(pmbmp, &rcMbmp);\n    }\n\n    // draw the right flex cells\n    dxp -= _rgdxp[idzpMid];\n    while (rc.xpRight < xpLim)\n    {\n        rc.xpLeft = rc.xpRight;\n        rc.xpRight = LwMin(rc.xpLeft + _rgdxp[idzpRightFlex], xpLim);\n        if (rcClip.FIntersect(prcClip, &rc))\n        {\n            pgnv->ClipRc(&rcClip);\n            rcMbmp.Offset(rc.xpLeft + dxp - rcMbmp.xpLeft, dyp - rcMbmp.ypTop);\n            pgnv->DrawMbmp(pmbmp, &rcMbmp);\n        }\n    }\n\n    // draw the right cell\n    rc.xpLeft = rc.xpRight;\n    rc.xpRight = prcRow->xpRight;\n    dxp -= _rgdxp[idzpRightFlex];\n    if (rcClip.FIntersect(prcClip, &rc))\n    {\n        pgnv->ClipRc(&rcClip);\n        rcMbmp.Offset(rc.xpLeft + dxp - rcMbmp.xpLeft, dyp - rcMbmp.ypTop);\n        pgnv->DrawMbmp(pmbmp, &rcMbmp);\n    }\n}\n\n/***************************************************************************\n    Do hit testing on a tiled bitmap.\n***************************************************************************/\nbool GORT::FPtIn(long xp, long yp)\n{\n    AssertThis(0);\n    PMBMP pmbmp;\n    RC rc;\n    bool fRet;\n\n    if (!FIn(xp, 0, _dxp) || !FIn(yp, 0, _dyp))\n        return fFalse;\n\n    if (pvNil == (pmbmp = (PMBMP)_pcrf->PbacoFetch(_ctg, _cno, MBMP::FReadMbmp)))\n    {\n        Warn(\"Couldn't load kidspace bitmap\");\n        return fTrue;\n    }\n    AssertPo(pmbmp, 0);\n\n    _MapZpToMbmp(&xp, _rgdxp, _dxpLeftFlex, _dxpRightFlex);\n    _MapZpToMbmp(&yp, _rgdyp, _dypLeftFlex, _dypRightFlex);\n\n    pmbmp->GetRc(&rc);\n    fRet = pmbmp->FPtIn(xp + rc.xpLeft, yp + rc.ypTop);\n    ReleasePpo(&pmbmp);\n    return fRet;\n}\n\n/***************************************************************************\n    Map the point from flexed coordinates to zero based mbmp coordinates\n    for hit testing.\n***************************************************************************/\nvoid GORT::_MapZpToMbmp(long *pzp, short *prgdzp, long dzpLeftFlex, long dzpRightFlex)\n{\n    AssertThis(0);\n    AssertVarMem(pzp);\n    AssertPvCb(prgdzp, LwMul(idzpLimGort, size(short)));\n    long dzp;\n\n    if (*pzp < (dzp = prgdzp[idzpLeft]))\n        ;\n    else if (*pzp < dzp + dzpLeftFlex)\n        *pzp = (*pzp - dzp) % prgdzp[idzpLeftFlex] + dzp;\n    else if ((*pzp += prgdzp[idzpLeftFlex] - dzpLeftFlex) < (dzp += prgdzp[idzpLeftFlex] + prgdzp[idzpMid]))\n    {\n    }\n    else if (*pzp < dzp + dzpRightFlex)\n        *pzp = (*pzp - dzp) % prgdzp[idzpRightFlex] + dzp;\n    else\n        *pzp += prgdzp[idzpRightFlex] - dzpRightFlex;\n}\n\n/***************************************************************************\n    Set the internal state of the GORT to accomodate the given preferred\n    size of the content area.\n***************************************************************************/\nvoid GORT::SetDxpDyp(long dxpPref, long dypPref)\n{\n    AssertThis(0);\n    AssertIn(dxpPref, 0, kcbMax);\n    AssertIn(dypPref, 0, kcbMax);\n\n    dxpPref += _rgdxp[idzpLeftBorder] + _rgdxp[idzpRightBorder];\n    dypPref += _rgdyp[idzpLeftBorder] + _rgdyp[idzpRightBorder];\n    _ComputeFlexZp(&_dxpLeftFlex, &_dxpRightFlex, dxpPref, _rgdxp);\n    _ComputeFlexZp(&_dypLeftFlex, &_dypRightFlex, dypPref, _rgdyp);\n    _dxp = _dxpLeftFlex + _dxpRightFlex + _rgdxp[idzpLeft] + _rgdxp[idzpMid] + _rgdxp[idzpRight];\n    _dyp = _dypLeftFlex + _dypRightFlex + _rgdyp[idzpLeft] + _rgdyp[idzpMid] + _rgdyp[idzpRight];\n}\n\n/***************************************************************************\n    Compute the flex values in one direction.\n***************************************************************************/\nvoid GORT::_ComputeFlexZp(long *pdzpLeftFlex, long *pdzpRightFlex, long dzp, short *prgdzp)\n{\n    AssertThis(0);\n    AssertVarMem(pdzpLeftFlex);\n    AssertVarMem(pdzpRightFlex);\n    AssertPvCb(prgdzp, LwMul(idzpLimGort, size(short)));\n\n    *pdzpRightFlex = LwMax(0, dzp - prgdzp[idzpLeft] - prgdzp[idzpMid] - prgdzp[idzpRight]);\n    *pdzpLeftFlex = LwMulDiv(*pdzpRightFlex, prgdzp[idzpLeftFlex], prgdzp[idzpLeftFlex] + prgdzp[idzpRightFlex]);\n    if (*pdzpLeftFlex > 0)\n    {\n        long dzpT = LwRoundToward(*pdzpLeftFlex, prgdzp[idzpLeftFlex]);\n        *pdzpLeftFlex = dzpT + LwMin(prgdzp[idzpLeftFlex], LwRoundAway(*pdzpLeftFlex - dzpT, prgdzp[idzpLeftInc]));\n    }\n    *pdzpRightFlex = LwMax(0, *pdzpRightFlex - *pdzpLeftFlex);\n    if (*pdzpRightFlex > 0)\n    {\n        long dzpT = LwRoundToward(*pdzpRightFlex, prgdzp[idzpRightFlex]);\n        *pdzpRightFlex = dzpT + LwMin(prgdzp[idzpRightFlex], LwRoundAway(*pdzpRightFlex - dzpT, prgdzp[idzpRightInc]));\n    }\n}\n\n/***************************************************************************\n    Get the bounding rectangle for the tiled bitmap.\n***************************************************************************/\nvoid GORT::GetRc(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    RC rc;\n    PT pt;\n    PMBMP pmbmp;\n\n    prc->Set(0, 0, _dxp, _dyp);\n    if (pvNil == (pmbmp = (PMBMP)_pcrf->PbacoFetch(_ctg, _cno, MBMP::FReadMbmp)))\n    {\n        Warn(\"Couldn't load kidspace bitmap\");\n        return;\n    }\n    AssertPo(pmbmp, 0);\n    pmbmp->GetRc(&rc);\n    ReleasePpo(&pmbmp);\n\n    pt.xp = -rc.xpLeft;\n    pt.yp = -rc.ypTop;\n\n    // map the point from the MBMP to the flexed rectangle, scaling\n    // proportionally if the point is in a flex portion of the MBMP\n    _MapZpFlex(&pt.xp, _rgdxp, _dxpLeftFlex, _dxpRightFlex);\n    _MapZpFlex(&pt.yp, _rgdyp, _dypLeftFlex, _dypRightFlex);\n\n    // now make pt the registration point\n    prc->Offset(-pt.xp, -pt.yp);\n}\n\n/***************************************************************************\n    Map the point from MBMP coordinates to flexed coordinates for setting the\n    registration point. WARNING: this is not the inverse of _MapZpToMbmp.\n***************************************************************************/\nvoid GORT::_MapZpFlex(long *pzp, short *prgdzp, long dzpLeftFlex, long dzpRightFlex)\n{\n    AssertThis(0);\n    AssertVarMem(pzp);\n    AssertPvCb(prgdzp, LwMul(idzpLimGort, size(short)));\n    long dzp;\n\n    if (*pzp < (dzp = prgdzp[idzpLeft]))\n        ;\n    else if (*pzp < dzp + prgdzp[idzpLeftFlex])\n        *pzp = LwMulDiv(*pzp - dzp, dzpLeftFlex, prgdzp[idzpLeftFlex]) + dzp;\n    else if ((*pzp += dzpLeftFlex - prgdzp[idzpLeftFlex]) < (dzp += dzpLeftFlex + prgdzp[idzpMid]))\n    {\n    }\n    else if (*pzp < dzp + prgdzp[idzpRightFlex])\n        *pzp = LwMulDiv(*pzp - dzp, dzpRightFlex, prgdzp[idzpRightFlex]) + dzp;\n    else\n        *pzp += dzpRightFlex - prgdzp[idzpRightFlex];\n}\n\n/***************************************************************************\n    Get the interior content rectangle.\n***************************************************************************/\nvoid GORT::GetRcContent(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n\n    prc->xpLeft = _rgdxp[idzpLeftBorder];\n    prc->xpRight = _dxp - _rgdxp[idzpRightBorder];\n    prc->ypTop = _rgdyp[idzpLeftBorder];\n    prc->ypBottom = _dyp - _rgdyp[idzpRightBorder];\n}\n\n/***************************************************************************\n    The streaming property is being set or reset. If streaming is set, we\n    should flush our stuff from the RCA cache when we're done with it.\n***************************************************************************/\nvoid GORT::Stream(bool fStream)\n{\n    AssertThis(0);\n    _fStream = FPure(fStream);\n}\n\n/***************************************************************************\n    Static method to create a new video representation.\n***************************************************************************/\nPGORV GORV::PgorvNew(PGOK pgok, PCRF pcrf, CTG ctg, CNO cno)\n{\n    AssertPo(pgok, 0);\n    AssertPo(pcrf, 0);\n    PGORV pgorv;\n\n    if (pvNil == (pgorv = NewObj GORV))\n        return pvNil;\n\n    if (!pgorv->_FInit(pgok, pcrf, ctg, cno))\n    {\n        ReleasePpo(&pgorv);\n        return pvNil;\n    }\n\n    AssertPo(pgorv, 0);\n    return pgorv;\n}\n\n/***************************************************************************\n    Initialize the GORV - load the movie indicated byt (pcrf, ctg, cno).\n***************************************************************************/\nbool GORV::_FInit(PGOK pgok, PCRF pcrf, CTG ctg, CNO cno)\n{\n    AssertPo(pgok, 0);\n    AssertBaseThis(0);\n\n    PCFL pcfl;\n    BLCK blck;\n    STN stn;\n    FNI fni;\n    RC rc;\n    byte bT;\n\n    pcfl = pcrf->Pcfl();\n    if (!pcfl->FFind(ctg, cno, &blck) || !blck.FUnpackData() || blck.Cb() < 2 || !blck.FReadRgb(&bT, 1, 0) ||\n        !stn.FRead(&blck, 1))\n    {\n        goto LFail;\n    }\n\n    if (!pgok->Pwoks()->FFindFile(&stn, &fni) || pvNil == (_pgvid = GVID::PgvidNew(&fni, pgok, bT)))\n    {\n    LFail:\n        Warn(\"couldn't load indicated video\");\n        return fFalse;\n    }\n\n    _pgvid->GetRc(&rc);\n    _dxp = rc.Dxp();\n    _dyp = rc.Dyp();\n    _fHwndBased = FPure(bT);\n    return fTrue;\n}\n\n/***************************************************************************\n    Destructor for a video representation.\n***************************************************************************/\nGORV::~GORV(void)\n{\n    ReleasePpo(&_pgvid);\n}\n\n/***************************************************************************\n    Draw the frame.\n***************************************************************************/\nvoid GORV::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    RC rc(0, 0, _dxp, _dyp);\n\n    _pgvid->Draw(pgnv, &rc);\n}\n\n/***************************************************************************\n    Return whether the point is in the representation.\n***************************************************************************/\nbool GORV::FPtIn(long xp, long yp)\n{\n    AssertThis(0);\n    return FIn(xp, 0, _dxp) && FIn(yp, 0, _dyp);\n}\n\n/***************************************************************************\n    Set the internal state of the GORF to accomodate the given preferred\n    size of the content area.\n***************************************************************************/\nvoid GORV::SetDxpDyp(long dxpPref, long dypPref)\n{\n    AssertThis(0);\n    AssertIn(dxpPref, 0, kcbMax);\n    AssertIn(dypPref, 0, kcbMax);\n    RC rc;\n\n    _pgvid->GetRc(&rc);\n    if ((_dxp = dxpPref) == 0)\n        _dxp = rc.Dxp();\n    if ((_dyp = dypPref) == 0)\n        _dyp = rc.Dyp();\n}\n\n/***************************************************************************\n    Get the natural rectangle.\n***************************************************************************/\nvoid GORV::GetRc(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n\n    prc->Set(0, 0, _dxp, _dyp);\n}\n\n/***************************************************************************\n    Get the interior content rectangle.\n***************************************************************************/\nvoid GORV::GetRcContent(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n\n    prc->Set(0, 0, _dxp, _dyp);\n}\n\n/***************************************************************************\n    Return the length of the video.\n***************************************************************************/\nlong GORV::NfrMac(void)\n{\n    AssertThis(0);\n    return _pgvid->NfrMac();\n}\n\n/***************************************************************************\n    Return the current frame of the video.\n***************************************************************************/\nlong GORV::NfrCur(void)\n{\n    AssertThis(0);\n    return _pgvid->NfrCur();\n}\n\n/***************************************************************************\n    Goto a particular frame.\n***************************************************************************/\nvoid GORV::GotoNfr(long nfr)\n{\n    AssertThis(0);\n    _pgvid->GotoNfr(nfr);\n}\n\n/***************************************************************************\n    Return whether the video is playing.\n***************************************************************************/\nbool GORV::FPlaying(void)\n{\n    AssertThis(0);\n    return (_cactSuspend > 0 && _fPlayOnResume) || _pgvid->FPlaying();\n}\n\n/***************************************************************************\n    Play from the current frame to the end.\n***************************************************************************/\nbool GORV::FPlay(void)\n{\n    AssertThis(0);\n    RC rc(0, 0, _dxp, _dyp);\n\n    if (_cactSuspend > 0 && _fHwndBased)\n        rc.Zero();\n    return _pgvid->FPlay(&rc);\n}\n\n/***************************************************************************\n    Stop playing.\n***************************************************************************/\nvoid GORV::Stop(void)\n{\n    AssertThis(0);\n    _pgvid->Stop();\n}\n\n/***************************************************************************\n    Suspend the video.\n***************************************************************************/\nvoid GORV::Suspend(void)\n{\n    AssertThis(0);\n\n    if (0 == _cactSuspend++)\n    {\n        _fPlayOnResume = FPure(_pgvid->FPlaying());\n        _pgvid->Stop();\n        if (_fHwndBased)\n        {\n            RC rc(0, 0, 0, 0);\n            _pgvid->SetRcPlay(&rc);\n        }\n    }\n}\n\n/***************************************************************************\n    Resume the video.\n***************************************************************************/\nvoid GORV::Resume(void)\n{\n    AssertThis(0);\n\n    if (0 == --_cactSuspend && _fPlayOnResume)\n    {\n        FPlay();\n        _fPlayOnResume = fFalse;\n    }\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a GORV.\n***************************************************************************/\nvoid GORV::AssertValid(ulong grf)\n{\n    GORV_PAR::AssertValid(0);\n    AssertPo(_pgvid, 0);\n}\n\n/***************************************************************************\n    Mark memory for the GORV.\n***************************************************************************/\nvoid GORV::MarkMem(void)\n{\n    AssertValid(0);\n    GORV_PAR::MarkMem();\n    MarkMemObj(_pgvid);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/kidspace.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Kidspace class declarations\n\n***************************************************************************/\n#ifndef KIDSPACE_H\n#define KIDSPACE_H\n\n#define ChidFromSnoDchid(sno, dchid) LwHighLow((short)(sno), (short)(dchid))\n\n/***************************************************************************\n    Graphical object representation.  A bitmap, fill, tiled bitmap, etc.\n***************************************************************************/\ntypedef class GORP *PGORP;\n#define GORP_PAR BASE\n#define kclsGORP 'GORP'\nclass GORP : public GORP_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    GORP(void)\n    {\n    }\n\n  public:\n    virtual void Draw(PGNV pgnv, RC *prcClip) = 0;\n    virtual bool FPtIn(long xp, long yp) = 0;\n    virtual void SetDxpDyp(long dxpPref, long dypPref) = 0;\n    virtual void GetRc(RC *prc) = 0;\n    virtual void GetRcContent(RC *prc) = 0;\n\n    virtual long NfrMac(void);\n    virtual long NfrCur(void);\n    virtual void GotoNfr(long nfr);\n    virtual bool FPlaying(void);\n    virtual bool FPlay(void);\n    virtual void Stop(void);\n    virtual void Suspend(void);\n    virtual void Resume(void);\n    virtual void Stream(bool fStream);\n};\n\n/***************************************************************************\n    Graphical object fill representation.\n***************************************************************************/\ntypedef class GORF *PGORF;\n#define GORF_PAR GORP\n#define kclsGORF 'GORF'\nclass GORF : public GORF_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    ACR _acrFore;\n    ACR _acrBack;\n    APT _apt;\n    RC _rc;\n    long _dxp;\n    long _dyp;\n\n  public:\n    static PGORF PgorfNew(PGOK pgok, PCRF pcrf, CTG ctg, CNO cno);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FPtIn(long xp, long yp);\n    virtual void SetDxpDyp(long dxpPref, long dypPref);\n    virtual void GetRc(RC *prc);\n    virtual void GetRcContent(RC *prc);\n};\n\n/***************************************************************************\n    Graphical object bitmap representation.\n***************************************************************************/\ntypedef class GORB *PGORB;\n#define GORB_PAR GORP\n#define kclsGORB 'GORB'\nclass GORB : public GORB_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    PCRF _pcrf;\n    CTG _ctg;\n    CNO _cno;\n    bool _fStream;\n\n    ~GORB(void);\n\n  public:\n    static PGORB PgorbNew(PGOK pgok, PCRF pcrf, CTG ctg, CNO cno);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FPtIn(long xp, long yp);\n    virtual void SetDxpDyp(long dxpPref, long dypPref);\n    virtual void GetRc(RC *prc);\n    virtual void GetRcContent(RC *prc);\n    virtual void Stream(bool fStream);\n};\n\n/***************************************************************************\n    Graphical object tiled bitmap representation.\n***************************************************************************/\nenum\n{\n    idzpLeftBorder,\n    idzpRightBorder,\n    idzpLeft,\n    idzpLeftFlex,\n    idzpLeftInc,\n    idzpMid,\n    idzpRightFlex,\n    idzpRightInc,\n    idzpRight,\n    idzpLimGort\n};\n\ntypedef class GORT *PGORT;\n#define GORT_PAR GORP\n#define kclsGORT 'GORT'\nclass GORT : public GORT_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    // a TILE chunk\n    struct GOTIL\n    {\n        short bo;\n        short osk;\n        short rgdxp[idzpLimGort];\n        short rgdyp[idzpLimGort];\n    };\n\n    PCRF _pcrf;\n    CTG _ctg;\n    CNO _cno;\n    short _rgdxp[idzpLimGort];\n    short _rgdyp[idzpLimGort];\n\n    long _dxpLeftFlex;\n    long _dxpRightFlex;\n    long _dypLeftFlex;\n    long _dypRightFlex;\n    long _dxp; // the total width\n    long _dyp; // the total height\n\n    bool _fStream;\n\n    ~GORT(void);\n    void _DrawRow(PGNV pgnv, PMBMP pmbmp, RC *prcRow, RC *prcClip, long dxp, long dyp);\n    void _ComputeFlexZp(long *pdzpLeftFlex, long *pdzpRightFlex, long dzp, short *prgdzp);\n    void _MapZpToMbmp(long *pzp, short *prgdzp, long dzpLeftFlex, long dzpRightFlex);\n    void _MapZpFlex(long *pzp, short *prgdzp, long dzpLeftFlex, long dzpRightFlex);\n\n  public:\n    static PGORT PgortNew(PGOK pgok, PCRF pcrf, CTG ctg, CNO cno);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FPtIn(long xp, long yp);\n    virtual void SetDxpDyp(long dxpPref, long dypPref);\n    virtual void GetRc(RC *prc);\n    virtual void GetRcContent(RC *prc);\n    virtual void Stream(bool fStream);\n};\n\n/***************************************************************************\n    Graphical object video representation.\n***************************************************************************/\ntypedef class GORV *PGORV;\n#define GORV_PAR GORP\n#define kclsGORV 'GORV'\nclass GORV : public GORV_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PGVID _pgvid;\n    long _dxp;\n    long _dyp;\n    long _cactSuspend;\n    bool _fHwndBased : 1;\n    bool _fPlayOnResume : 1;\n\n    ~GORV(void);\n\n    virtual bool _FInit(PGOK pgok, PCRF pcrf, CTG ctg, CNO cno);\n\n  public:\n    static PGORV PgorvNew(PGOK pgok, PCRF pcrf, CTG ctg, CNO cno);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FPtIn(long xp, long yp);\n    virtual void SetDxpDyp(long dxpPref, long dypPref);\n    virtual void GetRc(RC *prc);\n    virtual void GetRcContent(RC *prc);\n\n    virtual long NfrMac(void);\n    virtual long NfrCur(void);\n    virtual void GotoNfr(long nfr);\n    virtual bool FPlaying(void);\n    virtual bool FPlay(void);\n    virtual void Stop(void);\n    virtual void Suspend(void);\n    virtual void Resume(void);\n};\n\n/***************************************************************************\n    These are the mouse tracking states for kidspace gobs. gmsNil is an\n    illegal state used in the tables to signal that we should assert.\n\n    In the lists below, tracking indicates that when in the state, we are\n    tracking the mouse. These are static states:\n\n        kgmsIdle (mouse is not over us, _not_ tracking)\n        kgmsOn (mouse is over us, _not_ tracking)\n        kgmsDownOn (mouse is over us, tracking)\n        kgmsDownOff (mouse isn't over us, tracking)\n\n    These are auto-advance states (only animations are allowed):\n\n        kgmsEnterState (entering the state, _not_ tracking)\n        kgmsRollOn (mouse rolled onto us, _not_ tracking)\n        kgmsRollOff (mouse rolled off of us, _not_ tracking)\n        kgmsPressOn (mouse down on us, tracking)\n        kgmsReleaseOn (mouse up on us, tracking)\n        kgmsDragOff (mouse rolled off us, tracking)\n        kgmsDragOn (mouse rolled on us, tracking)\n        kgmsReleaseOff (mouse was released off us, _not_ tracking)\n\n    There is one special state: kgmsWait (tracking). This indicates that\n    we've completed a kgmsReleaseOn and are waiting for a cidClicked command\n    or a cidTrackMouse command to come through. If the former comes through,\n    we handle the click, stop tracking and advance to kgmsOn. If the latter,\n    the cidClicked was filtered out by someone else, so we stop tracking and\n    goto kgmsOn.\n\n***************************************************************************/\nenum\n{\n    gmsNil,\n\n    // non-tracking states\n    kgmsEnterState,\n    kgmsIdle,\n    kgmsRollOn,\n    kgmsRollOff,\n    kgmsOn,\n    kgmsReleaseOff,\n\n    // tracking states\n    kgmsMinTrack,\n    kgmsPressOn = kgmsMinTrack,\n    kgmsReleaseOn,\n    kgmsDownOn,\n    kgmsDragOff,\n    kgmsDragOn,\n    kgmsDownOff,\n    kgmsWait,\n    kgmsLimTrack,\n\n    kgmsLim = kgmsLimTrack\n};\n\n/***************************************************************************\n    Graphic Object in Kidspace.  Because of script invocation, the GOK\n    may be destroyed in just about every method of the GOK.  So most methods\n    return a boolean indicating whether the GOK still exists.\n***************************************************************************/\nenum\n{\n    fgokNil = 0,\n    fgokKillAnim = 1,   // kill current animation\n    fgokNoAnim = 2,     // don't launch an animation\n    fgokReset = 4,      // if the current rep is requested, totally reset it\n    fgokMouseSound = 8, // set the mouse sound as well\n};\n\ntypedef class GOK *PGOK;\n#define GOK_PAR GOB\n#define kclsGOK 'GOK'\nclass GOK : public GOK_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(GOK)\n\n  protected:\n    long _dxp; // offset from top-left to the registration point\n    long _dyp;\n    long _zp; // z-coord (for placing GOK's relative to this one)\n\n    long _dxpPref; // preferred size (if non-zero)\n    long _dypPref;\n\n    PWOKS _pwoks; // the kidspace world that this GOK belongs to\n    PRCA _prca;   // Chunky resource chain\n    PCRF _pcrf;   // Chunky resource file\n\n    short _sno;       // state number\n    short _cactMouse; // mouse click count of last mouse down\n    ulong _grfcust;   // cursor state at last mouse down\n    long _gmsCur;     // gob mouse tracking state\n\n    bool _fRect : 1;          // whether to use rectangular hit testing exclusively\n    bool _fNoHit : 1;         // invisible to the mouse\n    bool _fNoHitKids : 1;     // children of this GOK are invisible to the mouse\n    bool _fNoSlip : 1;        // animations shouldn't slip\n    bool _fGorpDirty : 1;     // whether the GORP changed while deferred\n    bool _fMouseSndDirty : 1; // whether playing the mouse sound was deferred\n    bool _fStream : 1;        // once we switch reps, we won't use this one again\n\n    long _cactDeferGorp; // defer marking and positioning the gorp\n    PGORP _pgorp;        // the graphical representation\n    CKI _ckiGorp;        // cki of the current gorp\n\n    long _dtim;       // current time increment for animation\n    PSCEG _pscegAnim; // animation script\n    CHID _chidAnim;   // chid of current animation\n\n    PGOKD _pgokd;\n\n    long _siiSound;     // sound to kill when we go away\n    long _siiMouse;     // mouse tracking sound - kill it when we go away\n    CKI _ckiMouseSnd;   // for deferred playing of the mouse sound\n    long _cactDeferSnd; // defer starting the mouse sound if this is > 0\n\n    // cid/hid filtering\n    struct CMFLT\n    {\n        long cid;\n        long hid;\n        CHID chidScript;\n    };\n    PGL _pglcmflt; // list of cmd filtering structs, sorted by cid\n\n    long _hidToolTipSrc; // get the tool tip info from this GOK\n\n    GOK(GCB *pgcb);\n    ~GOK(void);\n\n    static PGOB _PgobBefore(PGOB pgobPar, long zp);\n\n    virtual bool _FInit(PWOKS pwoks, PGOKD pgokd, PRCA prca);\n    virtual bool _FInit(PWOKS pwoks, CNO cno, PRCA prca);\n\n    virtual bool _FAdjustGms(struct GMSE *pmpgmsgmse);\n    virtual bool _FSetGmsCore(long gms, ulong grfact, bool *pfStable);\n    virtual bool _FSetGms(long gms, ulong grfact);\n\n    virtual bool _FEnterState(long sno);\n    virtual bool _FSetRep(CHID chid, ulong grfgok = fgokKillAnim, CTG ctg = ctgNil, long dxp = 0, long dyp = 0,\n                          bool *pfSet = pvNil);\n    virtual bool _FAdvanceFrame(void);\n\n    virtual void _SetGorp(PGORP pgorp, long dxp, long dyp);\n    virtual PGORP _PgorpNew(PCRF pcrf, CTG ctg, CNO cno);\n\n    bool _FFindCmflt(long cid, long hid, CMFLT *pcmflt = pvNil, long *picmflt = pvNil);\n    bool _FFilterCmd(PCMD pcmd, CHID chidScript, bool *pfFilter);\n    void _PlayMouseSound(CHID chid);\n    CNO _CnoToolTip(void);\n    CHID _ChidMouse(void);\n    void _DeferGorp(bool fDefer);\n    void _DeferSnd(bool fDefer);\n\n  public:\n    static PGOK PgokNew(PWOKS pwoks, PGOB pgobPar, long hid, PGOKD pgokd, PRCA prca);\n\n    PWOKS Pwoks(void)\n    {\n        return _pwoks;\n    }\n    long Sno(void)\n    {\n        return _sno;\n    }\n    void GetPtReg(PT *ppt, long coo = cooParent);\n    void GetRcContent(RC *prc);\n    long ZPlane(void)\n    {\n        return _zp;\n    }\n    void SetZPlane(long zp);\n    void SetNoSlip(bool fNoSlip);\n    void SetHidToolTip(long hidSrc);\n\n    virtual void SetCursor(ulong grfcust);\n    virtual bool FPtIn(long xp, long yp);\n    virtual bool FPtInBounds(long xp, long yp);\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FCmdTrackMouse(PCMD_MOUSE pcmd);\n    virtual bool FCmdAlarm(PCMD pcmd);\n    virtual bool FCmdMouseMove(PCMD_MOUSE pcmd);\n    virtual bool FCmdClicked(PCMD_MOUSE pcmd);\n    bool FCmdClickedCore(PCMD pcmd)\n    {\n        return FCmdClicked((PCMD_MOUSE)pcmd);\n    }\n    virtual bool FCmdAll(PCMD pcmd);\n    virtual bool FFilterCidHid(long cid, long hid, CHID chidScript);\n\n    virtual bool FEnsureToolTip(PGOB *ppgobCurTip, long xpMouse, long ypMouse);\n    virtual long LwState(void);\n\n    virtual bool FRunScript(CHID chid, long *prglw = pvNil, long clw = 0, long *plwReturn = pvNil,\n                            tribool *ptSuccess = pvNil);\n    virtual bool FRunScriptCno(CNO cno, long *prglw = pvNil, long clw = 0, long *plwReturn = pvNil,\n                               tribool *ptSuccess = pvNil);\n    virtual bool FChangeState(long sno);\n    virtual bool FSetRep(CHID chid, ulong grfgok = fgokKillAnim, CTG ctg = ctgNil, long dxp = 0, long dyp = 0,\n                         ulong dtim = 0);\n\n    virtual bool FPlay(void);\n    virtual bool FPlaying(void);\n    virtual void Stop(void);\n    virtual void GotoNfr(long nfr);\n    virtual long NfrMac(void);\n    virtual long NfrCur(void);\n\n    virtual long SiiPlaySound(CTG ctg, CNO cno, long sqn, long vlm, long cactPlay, ulong dtsStart, long spr, long scl);\n    virtual long SiiPlayMouseSound(CTG ctg, CNO cno);\n\n    virtual void Suspend(void);\n    virtual void Resume(void);\n    virtual void Stream(bool fStream);\n};\n\n#endif //! KIDSPACE_H\n"
  },
  {
    "path": "kauai/src/kidworld.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    This is a class that knows how to create GOKs, Help Balloons and\n    Kidspace script interpreters. It exists so an app can customize\n    default behavior.\n\n***************************************************************************/\n#include \"kidframe.h\"\nASSERTNAME\n\nRTCLASS(GOKD)\nRTCLASS(GKDS)\nRTCLASS(WOKS)\n\n/***************************************************************************\n    Static method to read a GKDS from the CRF. This is a CRF object reader.\n***************************************************************************/\nbool GKDS::FReadGkds(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    PGKDS pgkds;\n    GOKDF gokdf;\n    HQ hq;\n    LOP *qlop;\n    long cb;\n\n    *pcb = pblck->Cb(fTrue);\n    if (pvNil == ppbaco)\n        return fTrue;\n\n    if (!pblck->FUnpackData())\n        return fFalse;\n    *pcb = pblck->Cb();\n\n    if (*pcb < size(GOKDF) + size(LOP) || CbRoundToLong(*pcb) != *pcb)\n    {\n        Bug(\"Bad GOKD\");\n        return fFalse;\n    }\n\n    if (!pblck->FReadRgb(&gokdf, size(GOKDF), 0))\n        return fFalse;\n    if (gokdf.bo == kboOther)\n        SwapBytesBom(&gokdf, kbomGokdf);\n    else if (gokdf.bo != kboCur)\n    {\n        Bug(\"Bad GOKD 2\");\n        return fFalse;\n    }\n\n    if (!pblck->FMoveMin(size(gokdf)))\n        return fFalse;\n    hq = pblck->HqFree();\n    if (hqNil == hq)\n        return fFalse;\n    cb = CbOfHq(hq);\n\n    if (pvNil == (pgkds = NewObj GKDS))\n    {\n        FreePhq(&hq);\n        return fFalse;\n    }\n    pgkds->_hqData = hq;\n    pgkds->_gokk = gokdf.gokk;\n    if (gokdf.bo == kboOther)\n        SwapBytesRglw(QvFromHq(hq), cb / size(long));\n\n    qlop = (LOP *)QvFromHq(hq);\n    for (pgkds->_clop = 0;; qlop++)\n    {\n        if (cb < size(LOP))\n        {\n            Bug(\"Bad LOP list in GOKD\");\n            ReleasePpo(&pgkds);\n            return fFalse;\n        }\n        pgkds->_clop++;\n        cb -= size(LOP);\n        if (hidNil == qlop->hidPar)\n            break;\n    }\n    if ((cb % size(CUME)) != 0)\n    {\n        Bug(\"Bad CUME list in GOKD\");\n        ReleasePpo(&pgkds);\n        return fFalse;\n    }\n    pgkds->_ccume = cb / size(CUME);\n    *ppbaco = pgkds;\n    return fTrue;\n}\n\n/***************************************************************************\n    Destructor for a GKDS object.\n***************************************************************************/\nGKDS::~GKDS(void)\n{\n    FreePhq(&_hqData);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a GKDS.\n***************************************************************************/\nvoid GKDS::AssertValid(ulong grf)\n{\n    LOP *qrglop;\n\n    GKDS_PAR::AssertValid(0);\n    AssertHq(_hqData);\n    AssertIn(_clop, 0, kcbMax);\n    AssertIn(_ccume, 0, kcbMax);\n    Assert(LwMul(_clop, size(LOP)) + LwMul(_ccume, size(CUME)) == CbOfHq(_hqData), \"GKDS _hqData wrong size\");\n    qrglop = (LOP *)QvFromHq(_hqData);\n    Assert(qrglop[_clop - 1].hidPar == hidNil, \"bad rglop in GKDS\");\n}\n\n/***************************************************************************\n    Mark memory for the GKDS.\n***************************************************************************/\nvoid GKDS::MarkMem(void)\n{\n    AssertValid(0);\n    GKDS_PAR::MarkMem();\n    MarkHq(_hqData);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Return the GOK kind id.\n***************************************************************************/\nlong GKDS::Gokk(void)\n{\n    AssertThis(0);\n    return _gokk;\n}\n\n/***************************************************************************\n    Look for a cursor map entry in this GKDS.\n***************************************************************************/\nbool GKDS::FGetCume(ulong grfcust, long sno, CUME *pcume)\n{\n    AssertThis(0);\n    AssertVarMem(pcume);\n    CUME *qcume;\n    long ccume;\n    ulong fbitSno = (1L << (sno & 0x1F));\n\n    if (0 == _ccume)\n        return fFalse;\n\n    qcume = (CUME *)PvAddBv(QvFromHq(_hqData), LwMul(_clop, size(LOP)));\n    for (ccume = _ccume; ccume > 0; ccume--, qcume++)\n    {\n        if ((qcume->grfbitSno & fbitSno) && (qcume->grfcustMask & grfcust) == qcume->grfcust)\n        {\n            *pcume = *qcume;\n            return fTrue;\n        }\n    }\n    TrashVar(pcume);\n    return fFalse;\n}\n\n/***************************************************************************\n    Get the location map entry from the parent id.\n***************************************************************************/\nvoid GKDS::GetLop(long hidPar, LOP *plop)\n{\n    AssertThis(0);\n    AssertVarMem(plop);\n    LOP *qlop;\n\n    for (qlop = (LOP *)QvFromHq(_hqData);; qlop++)\n    {\n        if (hidNil == qlop->hidPar || hidPar == qlop->hidPar)\n            break;\n    }\n    *plop = *qlop;\n}\n\n/***************************************************************************\n    Constructor for a World of Kidspace GOB.\n***************************************************************************/\nWOKS::WOKS(GCB *pgcb, PSTRG pstrg)\n    : WOKS_PAR(pgcb), _clokAnim(CMH::HidUnique()), _clokNoSlip(CMH::HidUnique(), fclokNoSlip),\n      _clokGen(CMH::HidUnique()), _clokReset(CMH::HidUnique(), fclokReset)\n{\n    AssertThis(0);\n    AssertNilOrPo(pstrg, 0);\n\n    if (pvNil == pstrg)\n        pstrg = &_strg;\n    _pstrg = pstrg;\n    _pstrg->AddRef();\n\n    _clokAnim.Start(0);\n    _clokNoSlip.Start(0);\n    _clokGen.Start(0);\n    _clokReset.Start(0);\n}\n\n/***************************************************************************\n    Destructor for a kidspace world.\n***************************************************************************/\nWOKS::~WOKS(void)\n{\n    ReleasePpo(&_pstrg);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a WOKS.\n***************************************************************************/\nvoid WOKS::AssertValid(ulong grf)\n{\n    WOKS_PAR::AssertValid(0);\n    AssertPo(&_strg, 0);\n}\n\n/***************************************************************************\n    Mark memory for the WOKS.\n***************************************************************************/\nvoid WOKS::MarkMem(void)\n{\n    AssertValid(0);\n    WOKS_PAR::MarkMem();\n    MarkMemObj(&_strg);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Return whether the GOB is in this kidspace world.\n***************************************************************************/\nbool WOKS::FGobIn(PGOB pgob)\n{\n    AssertThis(0);\n    AssertPo(pgob, 0);\n\n    for (; pgob != this; pgob = pgob->PgobPar())\n    {\n        if (pgob == pvNil)\n            return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Get a GOKD from the given chunk.\n***************************************************************************/\nPGOKD WOKS::PgokdFetch(CTG ctg, CNO cno, PRCA prca)\n{\n    AssertThis(0);\n    AssertPo(prca, 0);\n\n    return (PGOKD)prca->PbacoFetch(ctg, cno, GKDS::FReadGkds);\n}\n\n/***************************************************************************\n    Create a new gob in this kidspace world.\n***************************************************************************/\nPGOK WOKS::PgokNew(PGOB pgobPar, long hid, CNO cnoGokd, PRCA prca)\n{\n    AssertThis(0);\n    AssertNilOrPo(pgobPar, 0);\n    PGOKD pgokd;\n    PGOK pgok;\n\n    if (pgobPar == pvNil)\n        pgobPar = this;\n    else if (!FGobIn(pgobPar))\n    {\n        // parent isn't in this kidspace world\n        Bug(\"Parent is not in this kidspace world\");\n        return pvNil;\n    }\n\n    if (hidNil == hid)\n        hid = CMH::HidUnique();\n    else if (pvNil != PcmhFromHid(hid))\n    {\n        BugVar(\"command handler with this ID already exists\", &hid);\n        return pvNil;\n    }\n\n    if (pvNil == (pgokd = PgokdFetch(kctgGokd, cnoGokd, prca)))\n        return pvNil;\n\n    pgok = GOK::PgokNew(this, pgobPar, hid, pgokd, prca);\n    ReleasePpo(&pgokd);\n\n    return pgok;\n}\n\n/***************************************************************************\n    Create a new script interpreter for this kidspace world.\n***************************************************************************/\nPSCEG WOKS::PscegNew(PRCA prca, PGOB pgob)\n{\n    AssertThis(0);\n    AssertPo(prca, 0);\n    AssertPo(pgob, 0);\n\n    return NewObj SCEG(this, prca, pgob);\n}\n\n/***************************************************************************\n    Create a new help balloon.\n***************************************************************************/\nPHBAL WOKS::PhbalNew(PGOB pgobPar, PRCA prca, CNO cnoTopic, PHTOP phtop)\n{\n    AssertThis(0);\n    AssertNilOrPo(pgobPar, 0);\n    AssertPo(prca, 0);\n    AssertNilOrVarMem(phtop);\n\n    if (pgobPar == pvNil)\n        pgobPar = this;\n    else if (!FGobIn(pgobPar))\n    {\n        // parent isn't in this kidspace world\n        Bug(\"Parent is not in this kidspace world\");\n        return pvNil;\n    }\n\n    return HBAL::PhbalCreate(this, pgobPar, prca, cnoTopic, phtop);\n}\n\n/***************************************************************************\n    Get the command handler for this hid.\n***************************************************************************/\nPCMH WOKS::PcmhFromHid(long hid)\n{\n    AssertThis(0);\n    PCMH pcmh;\n\n    switch (hid)\n    {\n    case hidNil:\n        return pvNil;\n\n    case khidApp:\n        return vpappb;\n    }\n\n    if (pvNil != (pcmh = PclokFromHid(hid)))\n        return pcmh;\n    return PgobFromHid(hid);\n}\n\n/***************************************************************************\n    Get the clock having the given hid.\n***************************************************************************/\nPCLOK WOKS::PclokFromHid(long hid)\n{\n    AssertThis(0);\n\n    if (khidClokGokGen == hid)\n        return &_clokGen;\n    if (khidClokGokReset == hid)\n        return &_clokReset;\n\n    return CLOK::PclokFromHid(hid);\n}\n\n/***************************************************************************\n    Get the parent gob of the given gob. This is here so a kidspace world\n    can limit what scripts can get to.\n***************************************************************************/\nPGOB WOKS::PgobParGob(PGOB pgob)\n{\n    AssertThis(0);\n    AssertPo(pgob, 0);\n\n    pgob = pgob->PgobPar();\n    if (pvNil == pgob || !FGobIn(pgob))\n        return pvNil;\n    return pgob;\n}\n\n/***************************************************************************\n    Find a file given a string.\n***************************************************************************/\nbool WOKS::FFindFile(PSTN pstnSrc, PFNI pfni)\n{\n    AssertThis(0);\n    AssertPo(pstnSrc, 0);\n    AssertPo(pfni, 0);\n\n    return pfni->FBuildFromPath(pstnSrc);\n}\n\n/***************************************************************************\n    Put up an alert (and don't return until it is dismissed).\n***************************************************************************/\ntribool WOKS::TGiveAlert(PSTN pstn, long bk, long cok)\n{\n    AssertThis(0);\n\n    return vpappb->TGiveAlertSz(pstn->Psz(), bk, cok);\n}\n\n/***************************************************************************\n    Put up an alert (and don't return until it is dismissed).\n***************************************************************************/\nvoid WOKS::Print(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    // REVIEW shonk: implement WOKS::Print better\n#ifdef WIN\n    OutputDebugString(pstn->Psz());\n    OutputDebugString(PszLit(\"\\n\"));\n#endif // WIN\n}\n\n/***************************************************************************\n    Return the current cursor state. This takes the frame cursor state from\n    vpappb and the rest from this kidspace world.\n***************************************************************************/\nulong WOKS::GrfcustCur(bool fAsynch)\n{\n    AssertThis(0);\n\n    return GrfcustAdjust(vpappb->GrfcustCur(fAsynch));\n}\n\n/***************************************************************************\n    Modify the current cursor state. This sets the frame values in vpappb\n    and the rest in this kidspace world.\n***************************************************************************/\nvoid WOKS::ModifyGrfcust(ulong grfcustOr, ulong grfcustXor)\n{\n    AssertThis(0);\n\n    // write all the bits to the app. Also adjust our internal _grfcust\n    vpappb->ModifyGrfcust(grfcustOr, grfcustXor);\n\n    _grfcust |= grfcustOr;\n    _grfcust ^= grfcustXor;\n}\n\n/***************************************************************************\n    Adjust the given grfcust (take the Frame bits from it and combine with\n    our other bits).\n***************************************************************************/\nulong WOKS::GrfcustAdjust(ulong grfcust)\n{\n    AssertThis(0);\n\n    grfcust &= kgrfcustFrame;\n    grfcust |= _grfcust & (kgrfcustKid | kgrfcustApp);\n    return grfcust;\n}\n\n/***************************************************************************\n    Do a modal help topic.\n***************************************************************************/\nbool WOKS::FModalTopic(PRCA prca, CNO cnoTopic, long *plwRet)\n{\n    AssertThis(0);\n    AssertPo(prca, 0);\n    AssertVarMem(plwRet);\n\n    GCB gcb;\n    PWOKS pwoksModal;\n    GTE gte;\n    PGOB pgob;\n    ulong grfgte;\n    bool fRet = fFalse;\n\n    gte.Init(this, fgteNil);\n    while (gte.FNextGob(&pgob, &grfgte, fgteNil))\n    {\n        if (!(grfgte & fgtePre) || !pgob->FIs(kclsGOK))\n            continue;\n\n        ((PGOK)pgob)->Suspend();\n    }\n\n    if (vpappb->FPushModal())\n    {\n        gcb.Set(CMH::HidUnique(), this, fgobNil, kginMark);\n        gcb._rcRel.Set(0, 0, krelOne, krelOne);\n\n        if (pvNil != (pwoksModal = NewObj WOKS(&gcb, _pstrg)))\n        {\n            vpsndm->PauseAll();\n            vpcex->SetModalGob(pwoksModal);\n            if (pvNil != pwoksModal->PhbalNew(pwoksModal, prca, cnoTopic))\n                fRet = FPure(vpappb->FModalLoop(plwRet));\n            vpcex->SetModalGob(pvNil);\n            vpsndm->ResumeAll();\n        }\n\n        ReleasePpo(&pwoksModal);\n        vpappb->PopModal();\n    }\n\n    gte.Init(this, fgteNil);\n    while (gte.FNextGob(&pgob, &grfgte, fgteNil))\n    {\n        if (!(grfgte & fgtePre) || !pgob->FIs(kclsGOK))\n            continue;\n\n        ((PGOK)pgob)->Resume();\n    }\n\n    return fRet;\n}\n"
  },
  {
    "path": "kauai/src/kidworld.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    This is a class that knows how to create GOKs, Help Balloons and\n    Kidspace script interpreters. It exists so an app can customize\n    default behavior.\n\n***************************************************************************/\n#ifndef KIDWORLD_H\n#define KIDWORLD_H\n\n/***************************************************************************\n    Base GOK descriptor.\n***************************************************************************/\n// location from parent map structure\nstruct LOP\n{\n    long hidPar;\n    long xp;\n    long yp;\n    long zp; // the z-plane number used for placing the GOK in the GOB tree\n};\n\n// cursor map entry\nstruct CUME\n{\n    ulong grfcustMask; // what cursor states this CUME is good for\n    ulong grfcust;\n    ulong grfbitSno; // what button states this CUME is good for\n    CNO cnoCurs;     // the cursor to use\n    CHID chidScript; // execution script (absolute)\n    long cidDefault; // default command\n    CNO cnoTopic;    // tool tip topic\n};\n\ntypedef class GOKD *PGOKD;\n#define GOKD_PAR BACO\n#define kclsGOKD 'GOKD'\nclass GOKD : public GOKD_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    GOKD(void)\n    {\n    }\n\n  public:\n    virtual long Gokk(void) = 0;\n    virtual bool FGetCume(ulong grfcust, long sno, CUME *pcume) = 0;\n    virtual void GetLop(long hidPar, LOP *plop) = 0;\n};\n\n/***************************************************************************\n    Standard GOK descriptor. Contains location information and cursor\n    map stuff.\n***************************************************************************/\n// GOK construction descriptor on file - these are stored in chunky resource files\nstruct GOKDF\n{\n    short bo;\n    short osk;\n    long gokk;\n    // LOP rglop[];\t\tends with a default entry (hidPar == hidNil)\n    // CUME rgcume[];\tthe cursor map\n};\nconst BOM kbomGokdf = 0x0C000000;\n\ntypedef class GKDS *PGKDS;\n#define GKDS_PAR GOKD\n#define kclsGKDS 'GKDS'\nclass GKDS : public GKDS_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    HQ _hqData;\n    long _gokk;\n    long _clop;\n    long _ccume;\n\n    GKDS(void)\n    {\n    }\n\n  public:\n    // An object reader for a GOKD.\n    static bool FReadGkds(PCRF pcrf, CTG ctg, CNO cno, BLCK *pblck, PBACO *ppbaco, long *pcb);\n    ~GKDS(void);\n\n    virtual long Gokk(void);\n    virtual bool FGetCume(ulong grfcust, long sno, CUME *pcume);\n    virtual void GetLop(long hidPar, LOP *plop);\n};\n\n/***************************************************************************\n    World of Kidspace class.\n***************************************************************************/\ntypedef class WOKS *PWOKS;\n#define WOKS_PAR GOB\n#define kclsWOKS 'WOKS'\nclass WOKS : public WOKS_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PSTRG _pstrg;\n    STRG _strg;\n    ulong _grfcust;\n\n    CLOK _clokAnim;\n    CLOK _clokNoSlip;\n    CLOK _clokGen;\n    CLOK _clokReset;\n\n  public:\n    WOKS(GCB *pgcb, PSTRG pstrg = pvNil);\n    ~WOKS(void);\n\n    PSTRG Pstrg(void)\n    {\n        return _pstrg;\n    }\n\n    virtual bool FGobIn(PGOB pgob);\n    virtual PGOKD PgokdFetch(CTG ctg, CNO cno, PRCA prca);\n    virtual PGOK PgokNew(PGOB pgobPar, long hid, CNO cno, PRCA prca);\n    virtual PSCEG PscegNew(PRCA prca, PGOB pgob);\n    virtual PHBAL PhbalNew(PGOB pgobPar, PRCA prca, CNO cnoTopic, PHTOP phtop = pvNil);\n    virtual PCMH PcmhFromHid(long hid);\n    virtual PGOB PgobParGob(PGOB pgob);\n    virtual bool FFindFile(PSTN pstnSrc, PFNI pfni);\n    virtual tribool TGiveAlert(PSTN pstn, long bk, long cok);\n    virtual void Print(PSTN pstn);\n\n    virtual ulong GrfcustCur(bool fAsynch = fFalse);\n    virtual void ModifyGrfcust(ulong grfcustOr, ulong grfcustXor);\n    virtual ulong GrfcustAdjust(ulong grfcust);\n\n    virtual bool FModalTopic(PRCA prca, CNO cnoTopic, long *plwRet);\n    virtual PCLOK PclokAnim(void)\n    {\n        return &_clokAnim;\n    }\n    virtual PCLOK PclokNoSlip(void)\n    {\n        return &_clokNoSlip;\n    }\n    virtual PCLOK PclokGen(void)\n    {\n        return &_clokGen;\n    }\n    virtual PCLOK PclokReset(void)\n    {\n        return &_clokReset;\n    }\n    virtual PCLOK PclokFromHid(long hid);\n};\n\n#endif //! KIDWORLD_H\n"
  },
  {
    "path": "kauai/src/lex.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Basic lexer class\n\n***************************************************************************/\n#include <stdio.h>\n#include \"util.h\"\nASSERTNAME\n\nRTCLASS(LEXB)\n\n// #line handling\nachar _szPoundLine[] = PszLit(\"#line\");\n#define kcchPoundLine (CvFromRgv(_szPoundLine) - 1)\n\nushort LEXB::_mpchgrfct[128] = {\n    // 0x00 - 0x07\n    fctNil,\n    fctNil,\n    fctNil,\n    fctNil,\n    fctNil,\n    fctNil,\n    fctNil,\n    fctNil,\n    // 0x08; 0x09=tab; 0x0A=line-feed; 0x0B; 0x0C; 0x0D=return; 0x0E; 0x0F\n    fctNil,\n    fctSpc,\n    fctSpc,\n    fctNil,\n    fctNil,\n    fctSpc,\n    fctNil,\n    fctNil,\n\n    // 0x10 - 0x17\n    fctNil,\n    fctNil,\n    fctNil,\n    fctNil,\n    fctNil,\n    fctNil,\n    fctNil,\n    fctNil,\n    // 0x18; 0x19; 0x1A=Ctrl-Z; 0x1B - 0x1F\n    fctNil,\n    fctNil,\n    fctSpc,\n    fctNil,\n    fctNil,\n    fctNil,\n    fctNil,\n    fctNil,\n\n    // space ! \" #\n    fctSpc,\n    fctOpr | fctOp1,\n    fctQuo,\n    fctOpr,\n    // $ % & '\n    fctOpr,\n    fctOpr | fctOp1,\n    fctOpr | fctOp1 | fctOp2,\n    fctQuo,\n    // ( ) * +\n    fctOpr,\n    fctOpr,\n    fctOpr | fctOp1,\n    fctOpr | fctOp1 | fctOp2,\n    // , - . /\n    fctOpr,\n    fctOpr | fctOp1 | fctOp2,\n    fctOpr,\n    fctOpr | fctOp1,\n\n    // 0 1 2 3\n    kgrfctDigit,\n    kgrfctDigit,\n    kgrfctDigit,\n    kgrfctDigit,\n    // 4 5 6 7\n    kgrfctDigit,\n    kgrfctDigit,\n    kgrfctDigit,\n    kgrfctDigit,\n    // 8 9 : ;\n    fctDec | fctHex,\n    fctDec | fctHex,\n    fctOpr | fctOp1 | fctOp2,\n    fctOpr,\n    // < = > ?\n    fctOpr | fctOp1 | fctOp2,\n    fctOpr | fctOp1 | fctOp2,\n    fctOpr | fctOp1 | fctOp2,\n    fctOpr,\n\n    // @ A B C\n    fctOpr,\n    fctUpp | fctHex,\n    fctUpp | fctHex,\n    fctUpp | fctHex,\n    // D E F G\n    fctUpp | fctHex,\n    fctUpp | fctHex,\n    fctUpp | fctHex,\n    fctUpp,\n    // H I J K L M N O\n    fctUpp,\n    fctUpp,\n    fctUpp,\n    fctUpp,\n    fctUpp,\n    fctUpp,\n    fctUpp,\n    fctUpp,\n\n    // P Q R S T U V W\n    fctUpp,\n    fctUpp,\n    fctUpp,\n    fctUpp,\n    fctUpp,\n    fctUpp,\n    fctUpp,\n    fctUpp,\n    // X Y Z [ \\ ] ^ _\n    fctUpp,\n    fctUpp,\n    fctUpp,\n    fctOpr,\n    fctOpr,\n    fctOpr,\n    fctOpr | fctOp1 | fctOp2,\n    fctUpp | fctLow,\n\n    // ` a b c\n    fctOpr,\n    fctLow | fctHex,\n    fctLow | fctHex,\n    fctLow | fctHex,\n    // d e f g\n    fctLow | fctHex,\n    fctLow | fctHex,\n    fctLow | fctHex,\n    fctLow,\n    // h i j k l m n o\n    fctLow,\n    fctLow,\n    fctLow,\n    fctLow,\n    fctLow,\n    fctLow,\n    fctLow,\n    fctLow,\n\n    // p q r s t u v w\n    fctLow,\n    fctLow,\n    fctLow,\n    fctLow,\n    fctLow,\n    fctLow,\n    fctLow,\n    fctLow,\n    // x y z {\n    fctLow,\n    fctLow,\n    fctLow,\n    fctOpr,\n    // | } ~ 0x7F=del\n    fctOpr | fctOp1 | fctOp2,\n    fctOpr,\n    fctOpr | fctOp1,\n    fctNil,\n};\n\n// token values for single characters\n#define kchMinTok ChLit('!')\nshort _rgtt[] = {\n    // ! \" # $ % & '\n    ttLNot, ttNil, ttPound, ttDollar, ttMod, ttBAnd, ttNil,\n    // ( ) * + , - . /\n    ttOpenParen, ttCloseParen, ttMul, ttAdd, ttComma, ttSub, ttDot, ttDiv,\n    // 0-7\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // 8 9 : ; < = > ?\n    ttNil, ttNil, ttColon, ttSemi, ttLt, ttAssign, ttGt, ttQuery,\n    // @ A-G\n    ttAt, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // H-O\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // P-W\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // X Y Z [ \\ ] ^ _\n    ttNil, ttNil, ttNil, ttOpenRef, ttBackSlash, ttCloseRef, ttBXor, ttNil,\n    // ` a-g\n    ttAccent, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // h-o\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // p-w\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // x y a { | } ~\n    ttNil, ttNil, ttNil, ttOpenBrace, ttBOr, ttCloseBrace, ttBNot};\nlong _TtFromCh(achar ch);\n\n/***************************************************************************\n    Return the token type of a single character operator.\n***************************************************************************/\nlong _TtFromCh(achar ch)\n{\n    AssertIn(ch, kchMinTok, kchMinTok + size(_rgtt) / size(_rgtt[0]));\n    return _rgtt[(byte)ch - kchMinTok];\n}\n\n#define kchMinDouble ChLit('&')\n#define kchLastDouble ChLit('|')\nshort _rgttDouble[] = {\n    // & '\n    ttLAnd, ttNil,\n    // ( ) * + , - . /\n    ttNil, ttNil, ttNil, ttInc, ttNil, ttDec, ttNil, ttNil,\n    // 0-7\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // 8 9 : ; < = > ?\n    ttNil, ttNil, ttScope, ttNil, ttShl, ttEq, ttShr, ttNil,\n    // @ A-G\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // H-O\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // P-W\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // X Y Z [ \\ ] ^ _\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttLXor, ttNil,\n    // ` a-g\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // h-o\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // p-w\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // x y a { |\n    ttNil, ttNil, ttNil, ttNil, ttLOr};\n\n#define kchMinEqual ChLit('!')\n#define kchLastEqual ChLit('|')\nshort _rgttEqual[] = {\n    // ! \" # $ % & '\n    ttNe, ttNil, ttNil, ttNil, ttAMod, ttABAnd, ttNil,\n    // ( ) * + , - . /\n    ttNil, ttNil, ttAMul, ttAAdd, ttNil, ttASub, ttNil, ttADiv,\n    // 0-7\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // 8 9 : ; < = > ?\n    ttNil, ttNil, ttNil, ttNil, ttLe, ttEq, ttGe, ttNil,\n    // @ A-G\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // H-O\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // P-W\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // X Y Z [ \\ ] ^ _\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttABXor, ttNil,\n    // ` a-g\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // h-o\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // p-w\n    ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil, ttNil,\n    // x y a { |\n    ttNil, ttNil, ttNil, ttNil, ttABOr};\nlong _TtFromChCh(achar ch1, achar ch2);\n\n/***************************************************************************\n    Return the token type of a double character token.\n***************************************************************************/\nlong _TtFromChCh(achar ch1, achar ch2)\n{\n    if (ch1 == ch2)\n    {\n        return FIn(ch1, kchMinDouble, kchLastDouble + 1) ? _rgttDouble[(byte)ch1 - kchMinDouble] : ttNil;\n    }\n\n    if (ch2 == ChLit('='))\n    {\n        return FIn(ch1, kchMinEqual, kchLastEqual + 1) ? _rgttEqual[ch1 - kchMinEqual] : ttNil;\n    }\n\n    if (ch1 == ChLit('-') && ch2 == ChLit('>'))\n        return ttArrow;\n\n    return ttNil;\n}\n\n/***************************************************************************\n    Constructor for the lexer.\n***************************************************************************/\nLEXB::LEXB(PFIL pfil, bool fUnionStrings)\n{\n    AssertPo(pfil, 0);\n\n    _pfil = pfil;\n    _pbsf = pvNil;\n    _pfil->AddRef();\n    _pfil->GetStnPath(&_stnFile);\n    _lwLine = 1;\n    _ichLine = 0;\n    _fpCur = 0;\n    _fpMac = pfil->FpMac();\n    _ichLim = _ichCur = 0;\n    _fLineStart = fTrue;\n    _fSkipToNextLine = fFalse;\n    _fUnionStrings = fUnionStrings;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Constructor for the lexer.\n***************************************************************************/\nLEXB::LEXB(PBSF pbsf, PSTN pstnFile, bool fUnionStrings)\n{\n    AssertPo(pbsf, 0);\n    AssertPo(pstnFile, 0);\n\n    _pfil = pvNil;\n    _pbsf = pbsf;\n    _pbsf->AddRef();\n    _stnFile = *pstnFile;\n    _lwLine = 1;\n    _ichLine = 0;\n    _fpCur = 0;\n    _fpMac = pbsf->IbMac();\n    _ichLim = _ichCur = 0;\n    _fLineStart = fTrue;\n    _fSkipToNextLine = fFalse;\n    _fUnionStrings = fUnionStrings;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for the lexer.\n***************************************************************************/\nLEXB::~LEXB(void)\n{\n    ReleasePpo(&_pfil);\n    ReleasePpo(&_pbsf);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a LEXB.\n***************************************************************************/\nvoid LEXB::AssertValid(ulong grf)\n{\n    LEXB_PAR::AssertValid(0);\n    AssertNilOrPo(_pfil, 0);\n    AssertNilOrPo(_pbsf, 0);\n    Assert((_pfil == pvNil) != (_pbsf == pvNil), \"exactly one of _pfil, _pbsf should be non-nil\");\n    AssertPo(&_stnFile, 0);\n    AssertIn(_lwLine, 0, kcbMax);\n    AssertIn(_ichLine, 0, kcbMax);\n    AssertIn(_fpCur, 0, _fpMac + 1);\n    AssertIn(_fpMac, 0, kcbMax);\n    AssertIn(_ichCur, 0, _ichLim + 1);\n    AssertIn(_ichLim, 0, size(_rgch) + 1);\n}\n\n/***************************************************************************\n    Mark memory for the LEXB.\n***************************************************************************/\nvoid LEXB::MarkMem(void)\n{\n    AssertValid(0);\n    LEXB_PAR::MarkMem();\n    MarkMemObj(_pfil);\n    MarkMemObj(_pbsf);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Get the current file that we're reading tokens from.\n***************************************************************************/\nvoid LEXB::GetStnFile(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    *pstn = _stnFile;\n}\n\n/***************************************************************************\n    Fetch some characters.  Don't advance the pointer into the file.  Can\n    fetch at most kcchLexbBuf characters at a time.\n***************************************************************************/\nbool LEXB::_FFetchRgch(achar *prgch, long cch)\n{\n    AssertThis(0);\n    AssertIn(cch, 1, kcchLexbBuf);\n    AssertPvCb(prgch, cch * size(achar));\n\n    if (_ichLim < _ichCur + cch)\n    {\n        // need to read some more data\n        long cchT;\n\n        if (_fpCur + (_ichCur + cch - _ichLim) * size(achar) > _fpMac)\n        {\n            // hit the eof\n            return fFalse;\n        }\n\n        // keep any valid characters\n        if (_ichCur < _ichLim)\n        {\n            BltPb(_rgch + _ichCur, _rgch, (_ichLim - _ichCur) * size(achar));\n            _ichLim -= _ichCur;\n        }\n        else\n            _ichLim = 0;\n        _ichCur = 0;\n\n        // read new stuff\n        cchT = LwMin((_fpMac - _fpCur) / size(achar), kcchLexbBuf - _ichLim);\n        AssertIn(cchT, cch - _ichLim, kcchLexbBuf + 1);\n        if (pvNil != _pfil)\n        {\n            AssertPo(_pfil, 0);\n            if (!_pfil->FReadRgb(_rgch + _ichLim, cchT * size(achar), _fpCur))\n            {\n                Warn(\"Error reading file, truncating logical file\");\n                _fpMac = _fpCur;\n                return fFalse;\n            }\n        }\n        else\n        {\n            AssertPo(_pbsf, 0);\n            _pbsf->FetchRgb(_fpCur, cchT * size(achar), _rgch + _ichLim);\n        }\n        _ichLim += cchT;\n        _fpCur += cchT * size(achar);\n        AssertIn(_ichLim, _ichCur + cch, kcchLexbBuf + 1);\n    }\n\n    // get the text\n    CopyPb(_rgch + _ichCur, prgch, cch * size(achar));\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Skip any white space at the current location in the buffer.  This\n    handles #line directives and comments.  Comments are not allowed on\n    the same line as a #line directive.\n***************************************************************************/\nbool LEXB::_FSkipWhiteSpace(void)\n{\n    AssertThis(0);\n    achar ch;\n    bool fStar, fSkipComment, fSlash;\n    long lwLineSav;\n    achar rgch[kcchPoundLine + 1];\n    STN stn;\n\n    fSkipComment = fFalse;\n    while (_FFetchRgch(&ch))\n    {\n        if ((_GrfctCh(ch) & fctSpc) || _fSkipToNextLine || fSkipComment)\n        {\n            _Advance();\n            if (kchReturn == ch)\n            {\n                _lwLine++;\n                _ichLine = 0;\n                _fLineStart = fTrue;\n                _fSkipToNextLine = fFalse;\n            }\n            else if (ChLit('\\xA') == ch && 1 == _ichLine)\n                _ichLine = 0;\n\n            if (fSkipComment)\n            {\n                if (fStar && ch == ChLit('/'))\n                    fSkipComment = fFalse;\n                fStar = (ch == ChLit('*'));\n            }\n            continue;\n        }\n\n        // not a white space character\n\n        // check for a comment\n        if (ChLit('/') == ch && _FFetchRgch(rgch, 2))\n        {\n            switch (rgch[1])\n            {\n            case ChLit('/'):\n                // line comment - skip characters until we hit a return\n                _Advance(2);\n                _fSkipToNextLine = fTrue;\n                continue;\n\n            case ChLit('*'):\n                // normal comment\n                _Advance(2);\n                fSkipComment = fTrue;\n                fStar = fFalse;\n                continue;\n            }\n        }\n\n        // if this is at the beginning of a line, check for a #line directive\n        if (!_fLineStart || (ch != _szPoundLine[0]) || !_FFetchRgch(rgch, kcchPoundLine + 1) ||\n            !FEqualRgb(rgch, _szPoundLine, kcchPoundLine) || !(_GrfctCh(rgch[kcchPoundLine]) & fctSpc))\n        {\n            _fLineStart = fFalse;\n            break;\n        }\n\n        // a #line directive - skip it and white space\n        _Advance(kcchPoundLine);\n        while (_FFetchRgch(&ch) && (_GrfctCh(ch) & fctSpc) && ch != kchReturn)\n            _Advance();\n\n        // read the line number\n        lwLineSav = _lwLine;\n        if (!_FFetchRgch(&ch) || !(_GrfctCh(ch) & fctDec))\n            goto LBadDirective;\n        _Advance();\n        _ReadNumber(&_lwLine, ch, 10, klwMax);\n        _lwLine--;\n\n        // skip white space (and make sure there is some)\n        if (!_FFetchRgch(&ch))\n            break; // eof\n        if (!(_GrfctCh(ch) & fctSpc))\n            goto LBadDirective;\n        while (_FFetchRgch(&ch) && (_GrfctCh(ch) & fctSpc) && ch != kchReturn)\n            _Advance();\n        if (!_FFetchRgch(&ch))\n            break; // eof\n        if (ch == kchReturn)\n            continue; // end of #line\n\n        // read file name\n        if (ch != ChLit('\"'))\n            goto LBadDirective;\n        _Advance();\n        stn.SetNil();\n        for (fSlash = fFalse;;)\n        {\n            if (!_FFetchRgch(&ch) || ch == kchReturn)\n                goto LBadDirective;\n            _Advance();\n            if (ch == ChLit('\"'))\n                break;\n            if (ch == ChLit('\\\\'))\n            {\n                // if this is the second of a pair of slashes, skip it\n                fSlash = !fSlash;\n                if (!fSlash)\n                    continue;\n            }\n            else\n                fSlash = fFalse;\n            stn.FAppendCh(ch);\n        }\n\n        // skip white space to end of line\n        if (!_FFetchRgch(&ch))\n            goto LSetFileName; // eof\n        if (!(_GrfctCh(ch) & fctSpc))\n            goto LBadDirective;\n        while (_FFetchRgch(&ch) && (_GrfctCh(ch) & fctSpc) && ch != kchReturn)\n            _Advance();\n        if (!_FFetchRgch(&ch))\n            goto LSetFileName; // eof\n        if (ch != kchReturn)\n        {\n        LBadDirective:\n            // Bad #line directive - restore the line number\n            _lwLine = lwLineSav;\n            return fFalse;\n        }\n        else\n        {\n        LSetFileName:\n            _stnFile = stn;\n        }\n    }\n\n    // if fSkipComment is true, we hit the eof in a comment\n    return !fSkipComment;\n}\n\n/***************************************************************************\n    Get the next token from the file.\n***************************************************************************/\nbool LEXB::FGetTok(PTOK ptok)\n{\n    AssertThis(0);\n    AssertVarMem(ptok);\n    achar ch, ch2;\n    ulong grfct;\n    long cch;\n\n    ptok->stn.SetNil();\n    if (!_FSkipWhiteSpace())\n    {\n        _fSkipToNextLine = fTrue;\n        goto LError;\n    }\n\n    if (!_FFetchRgch(&ch))\n    {\n        ptok->tt = ttNil;\n        return fFalse;\n    }\n    _Advance();\n\n    grfct = _GrfctCh(ch);\n    if (grfct & fctDec)\n    {\n        // numeric value\n        ptok->tt = ttLong;\n        if (ch == ChLit('0'))\n        {\n            // hex or octal\n            if (!_FFetchRgch(&ch))\n            {\n                ptok->lw = 0;\n                return fTrue;\n            }\n\n            if (ch == ChLit('x') || ch == ChLit('X'))\n            {\n                // hex\n                _Advance();\n                if (!_FReadHex(&ptok->lw))\n                    goto LError;\n            }\n            else\n            {\n                // octal\n                _ReadNumTok(ptok, ChLit('0'), 8, klwMax);\n            }\n        }\n        else\n        {\n            // decimal\n            _ReadNumTok(ptok, ch, 10, klwMax);\n        }\n\n        // check for bad termination\n        if (_FFetchRgch(&ch) && (_GrfctCh(ch) & (fctDec | fctUpp | fctLow | fctQuo)))\n        {\n            goto LError;\n        }\n        return fTrue;\n    }\n\n    if (grfct & fctQuo)\n    {\n        // single or double quote\n        if (ch == ChLit('\"'))\n        {\n            // string\n            ptok->tt = ttString;\n            for (;;)\n            {\n                if (!_FFetchRgch(&ch))\n                    goto LError;\n                _Advance();\n                switch (ch)\n                {\n                case kchReturn:\n                    goto LError;\n                case ChLit('\"'):\n                    // check for another string immediately following this one\n                    if (!_fUnionStrings)\n                        return fTrue;\n                    if (!_FSkipWhiteSpace())\n                    {\n                        _fSkipToNextLine = fTrue;\n                        goto LError;\n                    }\n                    if (!_FFetchRgch(&ch) || ch != ChLit('\"'))\n                        return fTrue;\n                    _Advance();\n                    break;\n                case ChLit('\\\\'):\n                    // control sequence\n                    if (!_FReadControlCh(&ch))\n                    {\n                        _fSkipToNextLine = fTrue;\n                        goto LError;\n                    }\n                    if (chNil != ch)\n                        ptok->stn.FAppendCh(ch);\n                    break;\n                default:\n                    ptok->stn.FAppendCh(ch);\n                    break;\n                }\n            }\n            Assert(fFalse, \"how'd we get here?\");\n        }\n\n        Assert(ch == ChLit('\\''), \"bad grfct\");\n        ptok->tt = ttLong;\n        ptok->lw = 0;\n        // ctg type long\n        for (cch = 0; cch < 5;)\n        {\n            if (!_FFetchRgch(&ch))\n                goto LError;\n            _Advance();\n            switch (ch)\n            {\n            case kchReturn:\n                goto LError;\n            case ChLit('\\''):\n                return fTrue;\n            case ChLit('\\\\'):\n                if (!_FReadControlCh(&ch))\n                {\n                    _fSkipToNextLine = fTrue;\n                    goto LError;\n                }\n                break;\n            }\n            ptok->lw = (ptok->lw << 8) + (byte)ch;\n            cch++;\n        }\n        // constant too long\n        goto LError;\n    }\n\n    if (grfct & fctOp1)\n    {\n        // check for multi character token\n        if (_FFetchRgch(&ch2) && (_GrfctCh(ch2) & fctOp2) && ttNil != (ptok->tt = _TtFromChCh(ch, ch2)))\n        {\n            _Advance();\n\n            // special case <<= and >>=\n            if ((ptok->tt == ttShr || ptok->tt == ttShl) && _FFetchRgch(&ch2) && ch2 == ChLit('='))\n            {\n                ptok->tt = (ptok->tt == ttShr) ? ttAShr : ttAShl;\n                _Advance();\n            }\n\n            return fTrue;\n        }\n    }\n\n    if (grfct & fctOpr)\n    {\n        /* single character token */\n        ptok->tt = _TtFromCh(ch);\n        Assert(ttNil != ptok->tt, \"bad table entry\");\n        return fTrue;\n    }\n\n    if (grfct & (fctLow | fctUpp))\n    {\n        // identifier\n        ptok->tt = ttName;\n        ptok->stn.FAppendCh(ch);\n        while (_FFetchRgch(&ch) && (_GrfctCh(ch) & (fctUpp | fctLow | fctDec)))\n        {\n            ptok->stn.FAppendCh(ch);\n            _Advance();\n        }\n        return fTrue;\n    }\n\nLError:\n    ptok->tt = ttError;\n    ptok->stn.SetNil();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the size of extra data associated with the last token returned.\n***************************************************************************/\nlong LEXB::CbExtra(void)\n{\n    AssertThis(0);\n    return 0;\n}\n\n/***************************************************************************\n    Get the extra data for the last token returned.\n***************************************************************************/\nvoid LEXB::GetExtra(void *pv)\n{\n    AssertThis(0);\n    Bug(\"no extra data\");\n}\n\n/***************************************************************************\n    Read a number.  The first character is passed in ch.  lwBase is the base\n    of the number (must be <= 10).\n***************************************************************************/\nvoid LEXB::_ReadNumber(long *plw, achar ch, long lwBase, long cchMax)\n{\n    AssertThis(0);\n    AssertVarMem(plw);\n    AssertIn(ch - ChLit('0'), 0, lwBase);\n    AssertIn(lwBase, 2, 11);\n\n    *plw = ch - ChLit('0');\n    while (--cchMax > 0 && _FFetchRgch(&ch) && (_GrfctCh(ch) & fctDec) && (ch - ChLit('0') < lwBase))\n    {\n        *plw = *plw * lwBase + (ch - ChLit('0'));\n        _Advance();\n    }\n}\n\n/***************************************************************************\n    Read in a hexadecimal value (without the 0x).\n***************************************************************************/\nbool LEXB::_FReadHex(long *plw)\n{\n    AssertThis(0);\n    AssertVarMem(plw);\n    achar ch;\n    ulong grfct;\n\n    *plw = 0;\n    if (!_FFetchRgch(&ch) || !((grfct = _GrfctCh(ch)) & fctHex))\n        return fFalse;\n\n    do\n    {\n        if (grfct & fctDec)\n            *plw = *plw * 16 + (ch - ChLit('0'));\n        else if (grfct & fctLow)\n            *plw = *plw * 16 + (10 + ch - ChLit('a'));\n        else\n        {\n            Assert(grfct & fctUpp, \"bad grfct\");\n            *plw = *plw * 16 + (10 + ch - ChLit('A'));\n        }\n        _Advance();\n    } while (_FFetchRgch(&ch) && ((grfct = _GrfctCh(ch)) & fctHex));\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Read a control character (eg, \\x3F).  This code assumes the \\ has\n    already been read.\n***************************************************************************/\nbool LEXB::_FReadControlCh(achar *pch)\n{\n    AssertThis(0);\n    AssertVarMem(pch);\n    // control sequence\n    achar ch;\n    long lw;\n\n    if (!_FFetchRgch(&ch))\n        return fFalse;\n    _Advance();\n\n    switch (ch)\n    {\n    case kchReturn:\n        while (_FFetchRgch(&ch) && ch == ChLit('\\xA'))\n            _Advance();\n        *pch = chNil;\n        break;\n    case ChLit('t'):\n        *pch = kchTab;\n        break;\n    case ChLit('n'):\n        *pch = kchReturn;\n        break;\n    case ChLit('x'):\n    case ChLit('X'):\n        if (!_FReadHex(&lw))\n            return fFalse;\n        *pch = (achar)lw;\n        break;\n    default:\n        if (_GrfctCh(ch) & fctOct)\n        {\n            _ReadNumber(&lw, ch, 8, 3);\n            *pch = (achar)lw;\n        }\n        else\n            *pch = ch;\n        break;\n    }\n    return fTrue;\n}\n"
  },
  {
    "path": "kauai/src/lex.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    A lexer for command scripts.\n\n***************************************************************************/\n#ifndef LEX_H\n#define LEX_H\n\nenum\n{\n    fctNil = 0,   // invalid character\n    fctLow = 1,   // lowercase letter\n    fctUpp = 2,   // uppercase letter\n    fctOct = 4,   // octal\n    fctDec = 8,   // digit\n    fctHex = 16,  // hex digit\n    fctSpc = 32,  // space character\n    fctOp1 = 64,  // first character of a multi-character operator\n    fctOp2 = 128, // last character of a multi-character operator\n    fctOpr = 256, // lone character operator\n    fctQuo = 512, // quote character\n};\n#define kgrfctDigit (fctOct | fctDec | fctHex)\n\nenum\n{\n    ttNil,\n    ttError,  // bad token\n    ttLong,   // numeric constant\n    ttName,   // identifier\n    ttString, // string constant\n\n    ttAdd,        // +\n    ttSub,        // -\n    ttMul,        // *\n    ttDiv,        // /\n    ttMod,        // %\n    ttInc,        // ++\n    ttDec,        // --\n    ttBOr,        // |\n    ttBAnd,       // &\n    ttBXor,       // ^\n    ttBNot,       // ~\n    ttShr,        // >>\n    ttShl,        // <<\n    ttLOr,        // ||\n    ttLAnd,       // &&\n    ttLXor,       // ^^\n    ttEq,         // ==\n    ttNe,         // !=\n    ttGt,         // >\n    ttGe,         // >=\n    ttLt,         // <\n    ttLe,         // <=\n    ttLNot,       // !\n    ttAssign,     // =\n    ttAAdd,       // +=\n    ttASub,       // -=\n    ttAMul,       // *=\n    ttADiv,       // /=\n    ttAMod,       // %=\n    ttABOr,       // |=\n    ttABAnd,      // &=\n    ttABXor,      // ^=\n    ttAShr,       // >>=\n    ttAShl,       // <<=\n    ttArrow,      // ->\n    ttDot,        // .\n    ttQuery,      // ?\n    ttColon,      // :\n    ttComma,      // ,\n    ttSemi,       // ;\n    ttOpenRef,    // [\n    ttCloseRef,   // ]\n    ttOpenParen,  // (\n    ttCloseParen, // )\n    ttOpenBrace,  // {\n    ttCloseBrace, // }\n    ttPound,      // #\n    ttDollar,     // $\n    ttAt,         // @\n    ttAccent,     // `\n    ttBackSlash,  // backslash character (\\)\n    ttScope,      // ::\n\n    ttLimBase\n};\n\nstruct TOK\n{\n    long tt;\n    long lw;\n    STN stn;\n};\ntypedef TOK *PTOK;\n\n/***************************************************************************\n    Base lexer.\n***************************************************************************/\n#define kcchLexbBuf 512\n\ntypedef class LEXB *PLEXB;\n#define LEXB_PAR BASE\n#define kclsLEXB 'LEXB'\nclass LEXB : public LEXB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    static ushort _mpchgrfct[];\n\n    PFIL _pfil; // exactly one of _pfil, _pbsf should be non-nil\n    PBSF _pbsf;\n    STN _stnFile;\n    long _lwLine;  // which line\n    long _ichLine; // which character on the line\n\n    FP _fpCur;\n    FP _fpMac;\n    long _ichLim;\n    long _ichCur;\n    achar _rgch[kcchLexbBuf];\n    bool _fLineStart : 1;\n    bool _fSkipToNextLine : 1;\n    bool _fUnionStrings : 1;\n\n    ulong _GrfctCh(achar ch)\n    {\n        return (uchar)ch < 128 ? _mpchgrfct[(byte)ch] : fctNil;\n    }\n    bool _FFetchRgch(achar *prgch, long cch = 1);\n    void _Advance(long cch = 1)\n    {\n        _ichCur += cch;\n        _ichLine += cch;\n    }\n    bool _FSkipWhiteSpace(void);\n    virtual void _ReadNumber(long *plw, achar ch, long lwBase, long cchMax);\n    virtual void _ReadNumTok(PTOK ptok, achar ch, long lwBase, long cchMax)\n    {\n        _ReadNumber(&ptok->lw, ch, lwBase, cchMax);\n    }\n    bool _FReadHex(long *plw);\n    bool _FReadControlCh(achar *pch);\n\n  public:\n    LEXB(PFIL pfil, bool fUnionStrings = fTrue);\n    LEXB(PBSF pbsf, PSTN pstnFile, bool fUnionStrings = fTrue);\n    ~LEXB(void);\n\n    virtual bool FGetTok(PTOK ptok);\n    virtual long CbExtra(void);\n    virtual void GetExtra(void *pv);\n\n    void GetStnFile(PSTN pstn);\n    long LwLine(void)\n    {\n        return _lwLine;\n    }\n    long IchLine(void)\n    {\n        return _ichLine;\n    }\n};\n\n#endif //! LEX_H\n"
  },
  {
    "path": "kauai/src/mac.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Mac standard header file - equivalent of windows.h.\n\n***************************************************************************/\n\n#ifndef SYMC\n/* Wings includes Mac headers explicitly (this isn't all of them): */\n// NOTE: avoid including Traps.h because it defines a bunch of stuff\n// that we use as methods!\n#define __TRAPS__\n\n#include <types.h>\n#include <errors.h>\n#include <osutils.h>  //types.h\n#include <memory.h>   //types.h\n#include <diskinit.h> //types.h\n#include <fonts.h>    //types.h\n#include <quickdra.h> //types.h, qdtext.h\n#include <qdoffscr.h> //quickdra.h\n#include <textedit.h> //quickdra.h\n#include <controls.h> //quickdra.h\n#include <menus.h>    //quickdra.h\n#include <events.h>   //types.h quickdra.h osutils.h\n#include <desk.h>     //types.h quickdra.h events.h\n#include <windows.h>  //quickdra.h events.h controls.h\n#include <palettes.h> //quickdra.h windows.h\n#include <dialogs.h>  //windows.h textedit.h\n#include <files.h>    //types.h osutils.h segload.h\n#include <resource.h> //types.h files.h\n#include <resource.h> //types.h files.h\n#include <folders.h>  //types.h files.h\n#include <finder.h>   //\n#include <standard.h> //types.h dialogs.h files.h\n#include <script.h>   //types.h quickdra.h intlreso.h\n#include <textutil.h> //types.h script.h osutils.h\n#include <lowmem.h>\n#else //! SYMC\n#include <script.h>\n#include <qdoffscreen.h>\n#include <palettes.h>\n#include <finder.h>\n#define __cdecl\n#define __pascal pascal\n#define GetDialogItem GetDItem\n#define GetDialogItemText GetIText\n#define SetDialogItemText SetIText\n#define UppercaseText(prgch, cch, scr) UpperText(prgch, cch)\n#define LowercaseText(prgch, cch, scr) LowerText(prgch, cch)\n#include <SysEqu.h>\ninline long LMGetHeapEnd(void)\n{\n    return *(long *)ApplLimit;\n}\ninline long LMGetCurrentA5(void)\n{\n    return *(long *)CurrentA5;\n}\n#endif //! SYMC\n\ntypedef GrafPort PRT;\ntypedef GrafPort *PPRT;\ntypedef CGrafPort *PCPRT;\ntypedef GDHandle HGD;\ntypedef WindowRecord SWND;\ntypedef SWND *HWND;\ntypedef RgnHandle HRGN;\ntypedef GWorldPtr PGWR;\ntypedef PixMapHandle HPIX;\ntypedef BitMap *PBMP;\ntypedef PicHandle HPIC;\ntypedef PaletteHandle HPAL;\ntypedef CTabHandle HCLT;\n"
  },
  {
    "path": "kauai/src/makefile",
    "content": "#---kauai.mak\n\n!IFNDEF MAKEFILE_KAUAI\nMAKEFILE_KAUAI = 1\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.def\n\n\n#KAUAI SOURCE DIRECTORIES\nKAUAI_SRC_DIR = $(KAUAI_ROOT)\\src\nKAUAI_TOOLS_DIR = $(KAUAI_ROOT)\\tools\n\n#KAUAI OBJ DIRECTORIES\nKAUAI_OBJ_ROOT_DIR = $(KAUAI_ROOT)\\obj\nKAUAI_OBJ_DIR = $(KAUAI_OBJ_ROOT_DIR)\\$(BLD_TYPE_DIR)\n\n!IF \"$(LOCAL_BUILD)\" == \"1\"\nTARGET_DIR =\n!ELSE # LOCAL_BUILD\nTARGET_DIR = $(KAUAI_OBJ_DIR)^\\\n!ENDIF # !LOCAL_BUILD\n\n\nKAUAI_TARGETS =\\\n    $(BASE_OBJS)\\\n    $(GROUP_OBJS)\\\n    $(FILE_OBJS)\\\n    $(STREAM_OBJS)\\\n    $(LEXER_OBJS)\\\n    $(SCRCOM_OBJS)\\\n    $(KIDCOM_OBJS)\\\n    $(SCREXE_OBJS)\\\n    $(MBMPIO_OBJS)\\\n    $(CHSE_OBJS)\\\n    $(CHCM_OBJS)\\\n    $(SOUND_OBJS)\\\n    $(VIDEO_OBJS)\\\n    $(GUI_OBJS)\\\n    $(DLG_OBJS)\\\n    $(CTL_OBJS)\\\n    $(DOC_OBJS)\\\n    $(RICHTEXT_OBJS)\\\n    $(TEXTEDIT_OBJS)\\\n    $(PLAINTEXT_OBJS)\\\n    $(KID_OBJS)\n\n\n\nUT_TARGETS =\\\n    $(BASE_OBJS)\\\n    $(GROUP_OBJS)\\\n    $(FILE_OBJS)\\\n    $(TARGET_DIR)ut.obj\\\n    $(TARGET_DIR)test.obj\\\n\n\nFT_TARGETS =\\\n    $(BASE_OBJS)\\\n    $(GROUP_OBJS)\\\n    $(FILE_OBJS)\\\n    $(GUI_OBJS)\\\n    $(DOC_OBJS)\\\n    $(STREAM_OBJS)\\\n    $(SOUND_OBJS)\\\n    $(DLG_OBJS)\\\n    $(CTL_OBJS)\\\n    $(TEXTEDIT_OBJS)\\\n    $(RICHTEXT_OBJS)\\\n    $(MBMPIO_OBJS)\\\n\t$(KAUAITEST_OBJS)\\\n    $(TARGET_DIR)ft.res\n\n\n\n#-Compile rules-------------------------------------------------------------\n\n\nPROGRAM_DATABASE = $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\kauai.pdb\nPRECOMPILED_HEADER = $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\kauai.pch\n\nCPPEXTRA = /Zi /Fd$(PROGRAM_DATABASE) /Fp$(PRECOMPILED_HEADER)\n\nSRC_DIR=$(KAUAI_SRC_DIR)\nOBJ_DIR=$(KAUAI_OBJ_DIR)\nTGT_NAME=Kauai\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.rul\n\n# REVIEW a-aarob (peted): why should Kauai src know how to build Kauai tools?\n#\n# SRC_DIR=$(KAUAI_TOOLS_DIR)\n# OBJ_DIR=$(KAUAI_OBJ_DIR)\n# TGT_NAME=Kauai Tools\n#\n# !INCLUDE $(KAUAI_ROOT)\\makefile.rul\n\n\n\n#-Targets-------------------------------------------------------------------\n\nALL_KAUAI = $(KAUAI_TARGETS) $(TARGET_DIR)FT.EXE $(TARGET_DIR)UT.EXE\nALL_TARGETS_ROOT = $(ALL_TARGETS_ROOT) $(ALL_KAUAI)\n\nCLEAN_KAUAI = CLEAN_KAUAI_OBJ CLEAN_UT CLEAN_FT\nCLEAN_TARGETS_ROOT = $(CLEAN_TARGETS_ROOT) $(CLEAN_KAUAI)\n\n\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\n!IF \"$(LOCAL_BUILD)\" != \"0\" && !DEFINED(MAKEFILE_KAUAI_TOOLS)\nALL: $(KAUAI_OBJ_DIR) $(ALL_KAUAI)\nCLEAN : $(CLEAN_KAUAI) ALL\n!ENDIF  # LOCAL_BUILD != 0\n\nKAUAI_OBJS : $(KAUAI_OBJ_DIR) $(KAUAI_TARGETS)\n\n$(KAUAI_OBJ_DIR) :\n    @echo Making Directories $(KAUAI_OBJ_DIR)...\n    if not exist $(KAUAI_OBJ_ROOT_DIR)/nul mkdir $(KAUAI_OBJ_ROOT_DIR)\n    if not exist $(KAUAI_OBJ_DIR)/nul mkdir $(KAUAI_OBJ_DIR)\n\n!ELSE # !LOCAL_BUILD\n\nKAUAI_OBJS : $(KAUAI_TARGETS)\n\n!ENDIF # LOCAL_BUILD\n\n\n$(KAUAI_OBJ_DIR)\\codkauai.obj: $(KAUAI_SRC_DIR)\\kcdc_386.h $(KAUAI_SRC_DIR)\\kcd2_386.h\n\n$(KAUAI_SRC_DIR)\\kcdc_386.h: $(TARGET_DIR)kcdc_386.exe\n\t$(TARGET_DIR)kcdc_386.exe $(KAUAI_SRC_DIR)\\kcdc_386.h\n\n$(TARGET_DIR)kcdc_386.exe: $(KAUAI_SRC_DIR)\\kcdc_386.c\n\tcl $(KAUAI_SRC_DIR)\\kcdc_386.c /Fe$(TARGET_DIR)kcdc_386.exe /Fo$(TARGET_DIR)kcdc_386.obj\n\n$(KAUAI_SRC_DIR)\\kcd2_386.h: $(TARGET_DIR)kcd2_386.exe\n\t$(TARGET_DIR)kcd2_386.exe $(KAUAI_SRC_DIR)\\kcd2_386.h\n\n$(TARGET_DIR)kcd2_386.exe: $(KAUAI_SRC_DIR)\\kcd2_386.c\n\tcl $(KAUAI_SRC_DIR)\\kcd2_386.c /Fe$(TARGET_DIR)kcd2_386.exe /Fo$(TARGET_DIR)kcd2_386.obj\n\n\nCLEAN_KAUAI_OBJ:\n    @echo <<delkauai.bat\n@echo off\nDEL /q dummy.nul $(KAUAI_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c delkauai.bat\n    del delkauai.bat\n\n\nCLEAN_UT:\n    @echo <<delut.bat\n@echo off\nDEL /q dummy.nul $(UT_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\nDEL /q dummy.nul $(TARGET_DIR)ut.obj 2>nul\nDEL /q dummy.nul $(TARGET_DIR)test.obj 2>nul\n<<KEEP\n    cmd /c delut.bat\n    del delut.bat\n\n\nCLEAN_FT:\n    @echo <<delft.bat\n@echo off\nDEL /q dummy.nul $(FT_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\nDEL /q dummy.nul $(TARGET_DIR)ft.obj 2>nul\nDEL /q dummy.nul $(TARGET_DIR)test.obj 2>nul\nDEL /q dummy.nul $(TARGET_DIR)ft.res 2>nul\n<<KEEP\n    cmd /c delft.bat\n    del delft.bat\n\n\n\n\n!IF \"$(TARGET_DIR)\" != \"\"\n\nUT : $(TARGET_DIR)ut.exe\nUT.EXE : $(TARGET_DIR)ut.exe\n$(TARGET_DIR)ut.exe: $(KAUAI_OBJ_DIR)\nFT : $(TARGET_DIR)ft.exe\nFT.EXE : $(TARGET_DIR)ft.exe\n$(TARGET_DIR)ft.exe: $(KAUAI_OBJ_DIR)\n\n!ENDIF # TARGET_DIR\n\n\n$(TARGET_DIR)ut.lnk : $(KAUAI_SRC_DIR)\\makefile $(KAUAI_ROOT)\\makefile.def\n    @echo <<$(TARGET_DIR)ut.lnk\n$(UT_TARGETS: =^\n)\n<<KEEP\n\n$(TARGET_DIR)ut.exe : $(UT_TARGETS) $(TARGET_DIR)ut.lnk\n    @echo Linking UT Objects...\n    $(LINK) -link $(LFLAGS_CONS) \\\n    -out:$(TARGET_DIR)ut.exe @$(TARGET_DIR)ut.lnk\n    $(CHKERR)\n\n\n\n\n$(TARGET_DIR)ft.lnk : $(KAUAI_SRC_DIR)\\makefile $(KAUAI_ROOT)\\makefile.def\n    @echo <<$(TARGET_DIR)ft.lnk\n$(FT_TARGETS: =^\n)\n<<KEEP\n\n$(TARGET_DIR)ft.exe : $(FT_TARGETS) $(TARGET_DIR)ft.lnk $(AUDIO_LIB)\n    @echo Linking FT Objects...\n    $(LINK) -link $(LFLAGS_GUI) \\\n    $(VFW32_LIB) \\\n    $(AUDIO_LIB) \\\n    -out:$(TARGET_DIR)ft.exe @$(TARGET_DIR)ft.lnk\n    $(CHKERR)\n\n!ENDIF  # !MAKEFILE_KAUAI\n"
  },
  {
    "path": "kauai/src/mbmp.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Masked bitmap routines that a tool might use.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nRTCLASS(MBMP)\n\n/***************************************************************************\n    Destructor for a masked bitmap.\n***************************************************************************/\nMBMP::~MBMP(void)\n{\n    AssertBaseThis(0);\n    FreePhq(&_hqrgb);\n}\n\n/***************************************************************************\n    Static method to create a new MBMP based on the given prgbPixels with\n    extracting rectangle *prc and transparent color bTransparent.  prgbPixels\n    should be a two-dimensional matrix of 8-bit pixels with width cbRow and\n    height dyp.  prc should be the desired extracting rectangle.  xp and yp\n    are the coordinates for the reference point of the MBMP (with (0,0) being\n    the upper-left corner).  bTransparent should be the pixel value for the\n    transparent color for the MBMP.\n***************************************************************************/\nPMBMP MBMP::PmbmpNew(byte *prgbPixels, long cbRow, long dyp, RC *prc, long xpRef, long ypRef, byte bTransparent,\n                     ulong grfmbmp, byte bDefault)\n{\n    AssertIn(cbRow, 1, kcbMax);\n    AssertIn(dyp, 1, kcbMax);\n    AssertPvCb(prgbPixels, LwMul(cbRow, dyp));\n    AssertVarMem(prc);\n    PMBMP pmbmp;\n\n    if (pvNil != (pmbmp = NewObj MBMP) &&\n        !pmbmp->_FInit(prgbPixels, cbRow, dyp, prc, xpRef, ypRef, bTransparent, grfmbmp, bDefault))\n    {\n        ReleasePpo(&pmbmp);\n    }\n    return pmbmp;\n}\n\n/***************************************************************************\n    Initialize the MBMP based on the given pixels.\n***************************************************************************/\nbool MBMP::_FInit(byte *prgbPixels, long cbRow, long dyp, RC *prc, long xpRef, long ypRef, byte bTransparent,\n                  ulong grfmbmp, byte bDefault)\n{\n    AssertIn(cbRow, 1, kcbMax);\n    AssertIn(dyp, 1, kcbMax);\n    AssertPvCb(prgbPixels, LwMul(cbRow, dyp));\n    AssertVarMem(prc);\n    Assert(!prc->FEmpty() && prc->xpLeft >= 0 && prc->xpRight <= cbRow && prc->ypTop >= 0 && prc->ypBottom <= dyp,\n           \"Invalid rectangle\");\n    short *qrgcb;\n    byte *pb, *pbRow, *pbLimRow;\n    byte *qbDst, *qbDstPrev;\n    long cbPixelData, cbPrev, cbOpaque, cbRun;\n    long dibRow;\n    bool fTrans, fMask;\n    long xpMin, xpLim, ypLim, xp, yp;\n    RC rc = *prc;\n\n    // allocate enough space for the rgcb\n    if (!FAllocHq(&_hqrgb, size(MBMPH) + LwMul(rc.Dyp(), size(short)), fmemNil, mprNormal))\n    {\n        return fFalse;\n    }\n\n    _Qmbmph()->fMask = fMask = FPure(grfmbmp & fmbmpMask);\n    _Qmbmph()->bFill = bDefault;\n    dibRow = (grfmbmp & fmbmpUpsideDown) ? -cbRow : cbRow;\n\n    // crop the bitmap and get an upper bound on the size of the pixel data\n    pbRow = prgbPixels + LwMul(cbRow, ((grfmbmp & fmbmpUpsideDown) ? dyp - rc.ypTop - 1 : rc.ypTop));\n    qrgcb = _Qrgcb();\n    xpMin = rc.xpRight;\n    xpLim = rc.xpLeft;\n    ypLim = rc.ypTop;\n    cbPixelData = 0;\n    for (yp = rc.ypTop; yp < rc.ypBottom; pbRow += dibRow, yp++)\n    {\n        pb = pbRow + rc.xpLeft;\n        pbLimRow = pbRow + rc.xpRight;\n        cbPrev = cbPixelData;\n        cbRun = cbOpaque = 0;\n        fTrans = fTrue;\n        for (;;)\n        {\n            // check for overflow or change in transparent status, or the\n            // end of the row\n            if (pb == pbLimRow || fTrans != (*pb == bTransparent) || cbRun == kbMax)\n            {\n                if (fTrans && pb == pbLimRow)\n                    break;\n                cbPixelData++;\n                if (!fTrans && cbRun > 0)\n                {\n                    xp = pb - pbRow;\n                    if (xpMin > xp - cbRun)\n                        xpMin = xp - cbRun;\n                    if (xpLim < xp)\n                        xpLim = xp;\n                    cbOpaque += cbRun;\n                    if (!fMask)\n                        cbPixelData += cbRun;\n                }\n                if (pb == pbLimRow)\n                    break;\n                cbRun = 0;\n                fTrans = !fTrans;\n            }\n            else\n            {\n                // Increment pixel count and go on to next pixel.\n                cbRun++;\n                pb++;\n            }\n        }\n\n        if (0 == cbOpaque)\n        {\n            // nothing in this row but transparent pixels\n            if (yp == rc.ypTop)\n                rc.ypTop++;\n            else\n                qrgcb[yp - rc.ypTop] = 0;\n            cbPixelData = cbPrev;\n        }\n        else\n        {\n            // set the row length in the rgcb.\n            AssertIn(cbPixelData - cbPrev, 2 + !fMask, kswMax + 1);\n            qrgcb[yp - rc.ypTop] = (short)(cbPixelData - cbPrev);\n            ypLim = yp + 1;\n        }\n    }\n    rc.ypBottom = ypLim;\n    rc.xpLeft = xpMin;\n    rc.xpRight = xpLim;\n    if (rc.FEmpty())\n    {\n        Warn(\"Empty source bitmap for MBMP\");\n        rc.Zero();\n    }\n\n    // reallocate the _hqrgb to the size actually needed\n    AssertIn(LwMul(rc.Dyp(), size(short)), 0, CbOfHq(_hqrgb) - size(MBMPH) + 1);\n\n    _cbRgcb = LwMul(rc.Dyp(), size(short));\n    if (!FResizePhq(&_hqrgb, _cbRgcb + size(MBMPH) + cbPixelData, fmemNil, mprNormal))\n    {\n        return fFalse;\n    }\n\n    // now actually construct the pixel data\n    qrgcb = _Qrgcb();\n    qbDst = (byte *)PvAddBv(qrgcb, _cbRgcb);\n    pbRow = prgbPixels + LwMul(cbRow, ((grfmbmp & fmbmpUpsideDown) ? dyp - rc.ypTop - 1 : rc.ypTop));\n    for (yp = rc.ypTop; yp < rc.ypBottom; pbRow += dibRow, yp++)\n    {\n        if (qrgcb[yp - rc.ypTop] == 0)\n        {\n            // empty row, no need to scan it\n            AssertIn(yp, rc.ypTop + 1, rc.ypBottom);\n            continue;\n        }\n\n        pb = pbRow + rc.xpLeft;\n        pbLimRow = pbRow + rc.xpRight;\n        qbDstPrev = qbDst;\n        cbRun = 0;\n        fTrans = fTrue;\n        for (;;)\n        {\n            // check for overflow or change in transparent status, or the\n            // end of the row\n            if (pb == pbLimRow || fTrans != (*pb == bTransparent) || cbRun == kbMax)\n            {\n                if (fTrans && pb == pbLimRow)\n                    break;\n                *qbDst++ = (byte)cbRun;\n                if (!fTrans)\n                {\n                    if (!fMask)\n                    {\n                        CopyPb(pb - cbRun, qbDst, cbRun);\n                        qbDst += cbRun;\n                    }\n                    if (pb == pbLimRow)\n                        break;\n                }\n                cbRun = 0;\n                fTrans = !fTrans;\n            }\n            else\n            {\n                // Increment pixel count and go on to next pixel.\n                cbRun++;\n                pb++;\n            }\n        }\n\n        // Set the row length in the rgcb.\n        cbRun = qbDst - qbDstPrev;\n        AssertIn(cbRun, 2 + !fMask, qrgcb[yp - rc.ypTop] + 1);\n        qrgcb[yp - rc.ypTop] = (short)cbRun;\n    }\n\n    // shrink _hqrgb to the actual size needed\n    cbRun = BvSubPvs(qbDst, QvFromHq(_hqrgb));\n    AssertIn(cbRun, 0, CbOfHq(_hqrgb) + 1);\n    AssertDo(FResizePhq(&_hqrgb, cbRun, fmemNil, mprNormal), \"shrinking failed!\");\n\n    // set the bounding rectangle of the MBMP\n    rc.Offset(-xpRef, -ypRef);\n    _Qmbmph()->rc = rc;\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/****************************************************************************\n    This function will read in a bitmap file and return a PMBMP made from it.\n    (xp, yp) will be the reference point of the mbmp [(0,0) is uppper-left].\n    All pixels with the same value as bTransparent will be read in as\n    transparent. The bitmap file must be uncompressed and have a bit depth\n    of 8.  The palette information is be ignored.\n****************************************************************************/\nPMBMP MBMP::PmbmpReadNative(FNI *pfni, byte bTransparent, long xp, long yp, ulong grfmbmp, byte bDefault)\n{\n    AssertPo(pfni, ffniFile);\n    byte *prgb;\n    RC rc;\n    long dxp, dyp;\n    bool fUpsideDown;\n    PMBMP pmbmp = pvNil;\n\n    if (!FReadBitmap(pfni, &prgb, pvNil, &dxp, &dyp, &fUpsideDown, bTransparent))\n        return pvNil;\n\n    rc.Set(0, 0, dxp, dyp);\n    pmbmp = MBMP::PmbmpNew(prgb, CbRoundToLong(rc.xpRight), rc.ypBottom, &rc, xp, yp, bTransparent,\n                           (fUpsideDown ? grfmbmp : grfmbmp ^ fmbmpUpsideDown), bDefault);\n    FreePpv((void **)&prgb);\n\n    return pmbmp;\n}\n\n/***************************************************************************\n    Read a masked bitmap from a block.  May free the block or modify it.\n***************************************************************************/\nPMBMP MBMP::PmbmpRead(PBLCK pblck)\n{\n    AssertPo(pblck, 0);\n    PMBMP pmbmp;\n    MBMPH *qmbmph;\n    long cbRgcb;\n    long cbTot;\n    bool fSwap;\n    RC rc;\n    HQ hqrgb = hqNil;\n\n    if (!pblck->FUnpackData())\n        return pvNil;\n    cbTot = pblck->Cb();\n\n    if (cbTot < size(MBMPH) || hqNil == (hqrgb = pblck->HqFree()))\n        return pvNil;\n\n    qmbmph = (MBMPH *)QvFromHq(hqrgb);\n    fSwap = (kboOther == qmbmph->bo);\n    if (fSwap)\n        SwapBytesBom(qmbmph, kbomMbmph);\n    else if (qmbmph->bo != kboCur)\n        goto LFail;\n\n    if (qmbmph->swReserved != 0 || qmbmph->cb != cbTot)\n        goto LFail;\n\n    rc = qmbmph->rc;\n    if (rc.FEmpty())\n    {\n        if (cbTot != size(MBMPH))\n            goto LFail;\n        qmbmph->rc.xpRight = rc.xpLeft;\n        qmbmph->rc.ypBottom = rc.ypTop;\n    }\n\n    cbRgcb = LwMul(rc.Dyp(), size(short));\n    if (size(MBMPH) + cbRgcb > cbTot)\n        goto LFail;\n\n    if (pvNil == (pmbmp = NewObj MBMP))\n    {\n    LFail:\n        FreePhq(&hqrgb);\n        return pvNil;\n    }\n\n    pmbmp->_cbRgcb = cbRgcb;\n    pmbmp->_hqrgb = hqrgb;\n\n    if (fSwap)\n    {\n        // swap bytes in the rgcb\n        SwapBytesRgsw(pmbmp->_Qrgcb(), rc.Dyp());\n    }\n\n#ifdef DEBUG\n    // verify the rgcb and rgb\n    long ccb, cb, dxp;\n    byte *qb;\n    bool fMask = pmbmp->_Qmbmph()->fMask;\n    short *qcb = pmbmp->_Qrgcb();\n    byte *qbRow = (byte *)PvAddBv(qcb, cbRgcb);\n\n    cbTot -= size(MBMPH) + cbRgcb;\n    for (ccb = rc.Dyp(); ccb-- > 0;)\n    {\n        cb = *qcb++;\n        if (!FIn(cb, 0, cbTot + 1))\n            goto LFailDebug;\n        cbTot -= cb;\n        qb = qbRow;\n        dxp = 0;\n        while (qb < qbRow + cb)\n        {\n            dxp += *qb++;\n            if (qb >= qbRow + cb)\n                break;\n            dxp += *qb;\n            if (fMask)\n                qb++;\n            else\n                qb += *qb + 1;\n        }\n        if (dxp > rc.Dxp() || qb != qbRow + cb)\n            goto LFailDebug;\n        qbRow = qb;\n    }\n    if (cbTot != 0)\n    {\n    LFailDebug:\n        Bug(\"Attempted to read bad MBMP\");\n        ReleasePpo(&pmbmp);\n    }\n#endif // DEBUG\n\n    AssertNilOrPo(pmbmp, 0);\n    return pmbmp;\n}\n\n/***************************************************************************\n    Return the total size on file.\n***************************************************************************/\nlong MBMP::CbOnFile(void)\n{\n    AssertThis(0);\n    return CbOfHq(_hqrgb);\n}\n\n/***************************************************************************\n    Write the masked bitmap (and its header) to the given block.\n***************************************************************************/\nbool MBMP::FWrite(PBLCK pblck)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n    MBMPH *qmbmph;\n\n    qmbmph = _Qmbmph();\n    qmbmph->bo = kboCur;\n    qmbmph->osk = koskCur;\n    qmbmph->swReserved = 0;\n    qmbmph->cb = CbOfHq(_hqrgb);\n\n    if (qmbmph->cb != pblck->Cb())\n    {\n        Bug(\"Wrong sized block\");\n        return fFalse;\n    }\n\n    if (!pblck->FWriteHq(_hqrgb, 0))\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the natural rectangle for the mbmp.\n***************************************************************************/\nvoid MBMP::GetRc(RC *prc)\n{\n    AssertThis(0);\n    *prc = _Qmbmph()->rc;\n}\n\n/***************************************************************************\n    Return whether the given (xp, yp) is in a non-transparent pixel of\n    the MBMP.  (xp, yp) should be given in MBMP coordinates.\n***************************************************************************/\nbool MBMP::FPtIn(long xp, long yp)\n{\n    AssertThis(0);\n    byte *qb, *qbLim;\n    short *qcb;\n    short cb;\n    MBMPH *qmbmph;\n\n    qmbmph = _Qmbmph();\n    if (!qmbmph->rc.FPtIn(xp, yp))\n        return fFalse;\n\n    qcb = _Qrgcb();\n    qb = (byte *)PvAddBv(qcb, _cbRgcb);\n    for (yp -= qmbmph->rc.ypTop; yp-- > 0;)\n        qb += *qcb++;\n\n    qbLim = qb + *qcb;\n    for (xp -= qmbmph->rc.xpLeft; qb < qbLim;)\n    {\n        if (0 > (xp -= *qb++) || qb >= qbLim)\n            break;\n        cb = *qb++;\n        if (0 > (xp -= cb))\n            return fTrue;\n        if (!qmbmph->fMask)\n            qb += cb;\n    }\n    Assert(qb <= qbLim, \"bad row in MBMP\");\n    return fFalse;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a MBMP.\n***************************************************************************/\nvoid MBMP::AssertValid(ulong grf)\n{\n    long ccb;\n    long cbTot;\n    short *qcb;\n    RC rc;\n\n    MBMP_PAR::AssertValid(0);\n    AssertHq(_hqrgb);\n\n    rc = _Qmbmph()->rc;\n    ccb = rc.Dyp();\n    Assert(_cbRgcb == LwMul(rc.Dyp(), size(short)), \"_cbRgcb wrong\");\n    cbTot = 0;\n    qcb = _Qrgcb();\n    while (ccb-- > 0)\n    {\n        AssertIn(*qcb, 0, kcbMax);\n        cbTot += *qcb++;\n    }\n    Assert(cbTot + _cbRgcb + size(MBMPH) == CbOfHq(_hqrgb), \"_hqrgb wrong size\");\n}\n\n/***************************************************************************\n    Mark memory for the MBMP.\n***************************************************************************/\nvoid MBMP::MarkMem(void)\n{\n    AssertValid(0);\n    MBMP_PAR::MarkMem();\n    MarkHq(_hqrgb);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    A PFNRPO to read an MBMP.\n***************************************************************************/\nbool MBMP::FReadMbmp(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, fblckReadable);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n    PMBMP pmbmp;\n\n    *pcb = pblck->Cb(fTrue);\n    if (pvNil == ppbaco)\n        return fTrue;\n\n    if (!pblck->FUnpackData())\n        goto LFail;\n    *pcb = pblck->Cb();\n\n    if (pvNil == (pmbmp = PmbmpRead(pblck)))\n    {\n    LFail:\n        TrashVar(ppbaco);\n        TrashVar(pcb);\n        return fFalse;\n    }\n    *ppbaco = pmbmp;\n    return fTrue;\n}\n\n/***************************************************************************\n    Given an FNI refering to a bitmap file, returns the interesting parts of\n    the header and the pixel data and palette.  Fails if the bitmap is not\n    8 bits, uncompressed.  Any or all of the output pointers may be nil.\n\n    input:\n        pfni\t--\tthe file from which to read the data\n\n    output:\n        The following variable parameters are valid only if FReadBitmap\n        returns true (*pprgb and *ppglclr will be nil if this fails):\n            pprgb\t\t\t-- pointer to the allocated memory for pixel data\n            ppglclr\t\t\t-- the palette\n            pdxp\t\t\t-- the width of the bitmap\n            pdyp\t\t\t-- the height of the bitmap\n            pfUpsideDown\t--\tfTrue if the bitmap is upside down\n        returns fTrue if it succeeds\n***************************************************************************/\nbool FReadBitmap(FNI *pfni, byte **pprgb, PGL *ppglclr, long *pdxp, long *pdyp, bool *pfUpsideDown, byte bTransparent)\n{\n    AssertPo(pfni, ffniFile);\n    AssertNilOrVarMem(pprgb);\n    AssertNilOrVarMem(ppglclr);\n    AssertNilOrVarMem(pdxp);\n    AssertNilOrVarMem(pdyp);\n    AssertNilOrVarMem(pfUpsideDown);\n\n#ifdef WIN\n#pragma pack(2) // the stupid bmfh is an odd number of shorts\n    struct BMH\n    {\n        BITMAPFILEHEADER bmfh;\n        BITMAPINFOHEADER bmih;\n    };\n#pragma pack()\n\n    PFIL pfil;\n    RC rc;\n    long fpMac, cbBitmap, cbSrc;\n    BMH bmh;\n    bool fRet, fRle;\n    FP fpCur = 0;\n\n    if (pvNil != pprgb)\n        *pprgb = pvNil;\n    if (pvNil != ppglclr)\n        *ppglclr = pvNil;\n\n    if (pvNil == (pfil = FIL::PfilOpen(pfni)))\n        return fFalse;\n    fpMac = pfil->FpMac();\n    if (size(BMH) >= fpMac || !pfil->FReadRgbSeq(&bmh, size(BMH), &fpCur))\n        goto LFail;\n\n    fRle = (bmh.bmih.biCompression == BI_RLE8);\n    cbSrc = bmh.bmih.biSizeImage;\n    if (((long)bmh.bmfh.bfSize != fpMac) || bmh.bmfh.bfType != 'MB' || !FIn(bmh.bmfh.bfOffBits, size(BMH), fpMac) ||\n        bmh.bmfh.bfReserved1 != 0 || bmh.bmfh.bfReserved2 != 0 || bmh.bmih.biSize != size(bmh.bmih) ||\n        bmh.bmih.biPlanes != 1)\n    {\n        Warn(\"bad bitmap file\");\n        goto LFail;\n    }\n    if (bmh.bmih.biBitCount != 8)\n    {\n        Warn(\"not an 8-bit bitmap\");\n        goto LFail;\n    }\n    if (bmh.bmih.biCompression != BI_RGB && !fRle || cbSrc != fpMac - (long)bmh.bmfh.bfOffBits && (cbSrc != 0 || fRle))\n    {\n        Warn(\"bad compression type or bitmap file is wrong length\");\n        goto LFail;\n    }\n\n    rc.Set(0, 0, bmh.bmih.biWidth, LwAbs(bmh.bmih.biHeight));\n    cbBitmap = CbRoundToLong(rc.xpRight) * rc.ypBottom;\n    if (rc.FEmpty())\n    {\n        Warn(\"Empty bitmap rectangle\");\n        goto LFail;\n    }\n    if (!fRle)\n    {\n        if (cbSrc == 0)\n            cbSrc = cbBitmap;\n        else if (cbSrc != cbBitmap)\n        {\n            Warn(\"Bitmap data wrong size\");\n            goto LFail;\n        }\n    }\n\n    if (pvNil != ppglclr)\n    {\n        // get the palette\n        if (bmh.bmih.biClrUsed != 0 && bmh.bmih.biClrUsed != 256)\n        {\n            Warn(\"palette is wrong size\");\n            goto LFail;\n        }\n\n        if (pvNil == (*ppglclr = GL::PglNew(size(CLR), 256)))\n            goto LFail;\n\n        AssertDo((*ppglclr)->FSetIvMac(256), 0);\n        fRet = pfil->FReadRgbSeq((*ppglclr)->PvLock(0), LwMul(size(CLR), 256), &fpCur);\n        (*ppglclr)->Unlock();\n        if (!fRet)\n            goto LFail;\n    }\n\n    if (pvNil == pprgb)\n        goto LDone;\n\n    if (fRle)\n    {\n        byte *pbSrc, *pbDst, *prgbSrc, *pbLimSrc, *pbLimDst;\n        byte bT;\n        long xp, cbT;\n        long cbRowDst = CbRoundToLong(rc.xpRight);\n\n        // get the source\n        if (!FAllocPv((void **)&prgbSrc, cbSrc, fmemNil, mprNormal))\n            goto LFail;\n\n        if (!pfil->FReadRgb(prgbSrc, cbSrc, bmh.bmfh.bfOffBits) ||\n            !FAllocPv((void **)pprgb, cbBitmap, fmemNil, mprNormal))\n        {\n            goto LBad;\n        }\n        pbDst = *pprgb;\n        pbSrc = prgbSrc;\n\n        pbLimSrc = pbSrc + cbSrc;\n        pbLimDst = pbDst + cbBitmap;\n        xp = 0;\n        for (;;)\n        {\n            if (2 > pbLimSrc - pbSrc)\n                goto LBad;\n\n            bT = *pbSrc++;\n            if (bT != 0)\n            {\n                if (bT > pbLimDst - pbDst || bT > cbRowDst - xp)\n                    goto LBad;\n                FillPb(pbDst, bT, *pbSrc++);\n                pbDst += bT;\n                xp += bT;\n                continue;\n            }\n\n            // escaped\n            bT = *pbSrc++;\n            switch (bT)\n            {\n            case 0:\n                // end of line\n                if (cbRowDst > xp)\n                    FillPb(pbDst, cbRowDst - xp, bTransparent);\n                pbDst += cbRowDst - xp;\n                xp = 0;\n                break;\n\n            case 1:\n                // end of bitmap\n                if (pbLimDst > pbDst)\n                    FillPb(pbDst, pbLimDst - pbDst, bTransparent);\n                goto LRleDone;\n\n            case 2:\n                // delta\n                if (2 > pbLimSrc - pbSrc)\n                    goto LBad;\n                cbT = pbSrc[0] + cbRowDst * pbSrc[1];\n                if (cbT > pbLimDst - pbDst || pbSrc[0] > cbRowDst - xp)\n                    goto LBad;\n                FillPb(pbDst, cbT, bTransparent);\n                pbDst += cbT;\n                xp += pbSrc[0];\n                pbSrc += 2;\n                break;\n\n            default:\n                // literal run\n                cbT = LwRoundAway(bT, 2);\n                if (cbT > pbLimSrc - pbSrc || bT > pbLimDst - pbDst || bT > cbRowDst - xp)\n                {\n                    goto LBad;\n                }\n                CopyPb(pbSrc, pbDst, bT);\n                pbDst += bT;\n                pbSrc += cbT;\n                xp += bT;\n                break;\n            }\n        }\n    LBad:\n        // rle encoding is bad\n        FreePpv((void **)&prgbSrc);\n        Warn(\"compressed bitmap is bad\");\n        goto LFail;\n\n    LRleDone:\n        FreePpv((void **)&prgbSrc);\n    }\n    else\n    {\n        // non-rle: get the bits\n        if (!FAllocPv((void **)pprgb, cbBitmap, fmemNil, mprNormal))\n            goto LFail;\n\n        if (!pfil->FReadRgb(*pprgb, cbBitmap, bmh.bmfh.bfOffBits))\n        {\n            FreePpv((void **)pprgb);\n        LFail:\n            PushErc(ercMbmpCantOpenBitmap);\n            if (pvNil != pprgb)\n                *pprgb = pvNil;\n            if (pvNil != ppglclr)\n                ReleasePpo(ppglclr);\n            TrashVar(pdxp);\n            TrashVar(pdyp);\n            TrashVar(pfUpsideDown);\n            ReleasePpo(&pfil);\n            return fFalse;\n        }\n    }\n\nLDone:\n    if (pvNil != pdxp)\n        *pdxp = bmh.bmih.biWidth;\n    if (pvNil != pdyp)\n        *pdyp = LwAbs(bmh.bmih.biHeight);\n    if (pvNil != pfUpsideDown)\n        *pfUpsideDown = bmh.bmih.biHeight < 0;\n    ReleasePpo(&pfil);\n    return fTrue;\n#endif // WIN\n#ifdef MAC\n    if (pvNil != pprgb)\n        *pprgb = pvNil;\n    if (pvNil != ppglclr)\n        *ppglclr = pvNil;\n\n    TrashVar(pdxp);\n    TrashVar(pdyp);\n    TrashVar(pfUpsideDown);\n    RawRtn(); // REVIEW peted: Mac FReadBitmap NYI\n    return fFalse;\n#endif // MAC\n}\n\n/***************************************************************************\n    Writes a given bitmap to a given file.\n\n    Arguments:\n        FNI *pfni         -- the name of the file to write\n        byte *prgb        -- the bits in the bitmap\n        PGL pglclr        -- the palette of the bitmap\n        long dxp          -- the width of the bitmap\n        long dyp          -- the height of the bitmap\n        bool fUpsideDown  -- indicates if the rows should be inverted\n\n    Returns: fTrue if it could write the file\n***************************************************************************/\nbool FWriteBitmap(FNI *pfni, byte *prgb, PGL pglclr, long dxp, long dyp, bool fUpsideDown)\n{\n    AssertPo(pfni, ffniFile);\n    AssertVarMem(prgb);\n    AssertPo(pglclr, 0);\n    Assert(pglclr->IvMac() == 256, \"Invalid color palette\");\n    Assert(dxp >= 0, \"Invalid width\");\n    Assert(dyp >= 0, \"Invalid height\");\n\n#ifdef WIN\n    Assert(pglclr->CbEntry() == size(RGBQUAD), \"Palette has different format from Windows\");\n\n#pragma pack(2) // the stupid bmfh is an odd number of shorts\n    struct BMH\n    {\n        BITMAPFILEHEADER bmfh;\n        BITMAPINFOHEADER bmih;\n    };\n#pragma pack()\n\n    bool fRet = fFalse;\n    long cbSrc;\n    PFIL pfil = pvNil;\n    FP fpCur = 0;\n    BMH bmh;\n\n    cbSrc = CbRoundToLong(dxp) * dyp;\n\n    /* Fill in the header */\n    bmh.bmfh.bfType = 'MB';\n    bmh.bmfh.bfSize = size(bmh) + LwMul(size(RGBQUAD), 256) + cbSrc;\n    bmh.bmfh.bfOffBits = size(bmh) + LwMul(size(RGBQUAD), 256);\n    bmh.bmfh.bfReserved1 = bmh.bmfh.bfReserved2 = 0;\n\n    bmh.bmih.biSize = size(bmh.bmih);\n    bmh.bmih.biWidth = dxp;\n    bmh.bmih.biHeight = dyp;\n    bmh.bmih.biPlanes = 1;\n    bmh.bmih.biBitCount = 8;\n    bmh.bmih.biCompression = BI_RGB;\n    bmh.bmih.biSizeImage = 0;\n    bmh.bmih.biXPelsPerMeter = 0;\n    bmh.bmih.biYPelsPerMeter = 0;\n    bmh.bmih.biClrUsed = 256;\n    bmh.bmih.biClrImportant = 256;\n\n    /* Write the header */\n    if (pvNil == (pfil = FIL::PfilCreate(pfni)))\n        goto LFail;\n    if (!pfil->FWriteRgbSeq(&bmh, size(BMH), &fpCur))\n        goto LFail;\n\n    /* Write the palette */\n    if (!pfil->FWriteRgbSeq(pglclr->PvLock(0), LwMul(size(CLR), 256), &fpCur))\n    {\n        pglclr->Unlock();\n        goto LFail;\n    }\n    pglclr->Unlock();\n\n    /* Write the bits */\n    Assert((ulong)fpCur == bmh.bmfh.bfOffBits, \"Current file pos is wrong\");\n    if (fUpsideDown)\n    {\n        byte *pbCur;\n        long cbRow = CbRoundToLong(dxp);\n\n        pbCur = prgb + dyp * cbRow;\n        fRet = fTrue;\n        while (pbCur > prgb && fRet)\n        {\n            pbCur -= cbRow;\n            fRet = pfil->FWriteRgbSeq(pbCur, cbRow, &fpCur);\n        }\n    }\n    else\n        fRet = pfil->FWriteRgbSeq(prgb, cbSrc, &fpCur);\n\nLFail:\n    if (pfil != pvNil)\n    {\n        if (!fRet)\n            pfil->SetTemp();\n        ReleasePpo(&pfil);\n    }\n    return fRet;\n#endif // WIN\n#ifdef MAC\n    RawRtn(); // REVIEW peted: Mac FWriteBitmap NYI\n    return fFalse;\n#endif // MAC\n}\n"
  },
  {
    "path": "kauai/src/mbmp.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Masked Bitmap management code declarations.\n\n***************************************************************************/\n#ifndef MBMP_H\n#define MBMP_H\n\nconst FTG kftgBmp = 'BMP';\n\nenum\n{\n    fmbmpNil = 0,\n    fmbmpUpsideDown = 1,\n    fmbmpMask = 2,\n};\n\ntypedef class MBMP *PMBMP;\n#define MBMP_PAR BACO\n#define kclsMBMP 'MBMP'\nclass MBMP : public MBMP_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    // rc (in the MBMPH) is the bounding rectangle of the mbmp. It implicitly\n    // holds the reference point.\n\n    // _hqrgb holds an MBMPH followed by an array of the length of each row\n    // (rgcb) followed by the actual pixel data. The rgcb is an array of shorts\n    // of length rc.Dyp(). We store the whole MBMPH in the _hqrgb so that\n    // loading the MBMP from a chunky file is fast. If the chunk is compressed,\n    // storing anything less than the full chunk in _hqrgb requires another blt.\n\n    // The pixel data is stored row by row with transparency encoded using\n    // an RLE scheme. For each row, the first byte is the number of consecutive\n    // tranparent pixels. The next byte is the number of consecutive\n    // non-transparent pixels (cb). The next cb bytes are the values of\n    // the non-transparent pixels. This order repeats itself for the rest of\n    // the row, and then the next row begins. Rows should never end with a\n    // transparent byte.\n\n    // If fMask is true, the non-transparent pixels are not in _hqrgb. Instead,\n    // all non-transparent pixels have the value bFill.\n    long _cbRgcb; // size of the rgcb portion of _hqrgb\n    HQ _hqrgb;    // MBMPH, short rgcb[_rc.Dyp()] followed by the pixel data\n\n    // MBMP header on file\n    struct MBMPH\n    {\n        short bo;\n        short osk;\n        byte fMask;\n        byte bFill;       // if fMask, the color value to use\n        short swReserved; // should be zero on file\n        RC rc;\n        long cb; // length of whole chunk, including the header\n    };\n\n    MBMP(void)\n    {\n    }\n    virtual bool _FInit(byte *prgbPixels, long cbRow, long dyp, RC *prc, long xpRef, long ypRef, byte bTransparent,\n                        ulong grfmbmp = fmbmpNil, byte bDefault = 0);\n\n    short *_Qrgcb(void)\n    {\n        return (short *)PvAddBv(QvFromHq(_hqrgb), size(MBMPH));\n    }\n    MBMPH *_Qmbmph(void)\n    {\n        return (MBMPH *)QvFromHq(_hqrgb);\n    }\n\n  public:\n    ~MBMP(void);\n\n    static PMBMP PmbmpNew(byte *prgbPixels, long cbRow, long dyp, RC *prc, long xpRef, long ypRef, byte bTransparent,\n                          ulong grfmbmp = fmbmpNil, byte bDefault = 0);\n    static PMBMP PmbmpReadNative(FNI *pfni, byte bTransparent = 0, long xp = 0, long yp = 0, ulong grfmbmp = fmbmpNil,\n                                 byte bDefault = 0);\n\n    static PMBMP PmbmpRead(PBLCK pblck);\n\n    void GetRc(RC *prc);\n    void Draw(byte *prgbPixels, long cbRow, long dyp, long xpRef, long ypRef, RC *prcClip = pvNil,\n              PREGN pregnClip = pvNil);\n    void DrawMask(byte *prgbPixels, long cbRow, long dyp, long xpRef, long ypRef, RC *prcClip = pvNil);\n    bool FPtIn(long xp, long yp);\n\n    virtual bool FWrite(PBLCK pblck);\n    virtual long CbOnFile(void);\n\n    // a chunky resource reader for an MBMP\n    static bool FReadMbmp(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n};\nconst BOM kbomMbmph = 0xAFFC0000;\n\n// reads a bitmap from the given file\nbool FReadBitmap(FNI *pfni, byte **pprgb, PGL *ppglclr, long *pdxp, long *pdyp, bool *pfUpsideDown,\n                 byte bTransparent = 0);\n\n// writes a bitmap file\nbool FWriteBitmap(FNI *pfni, byte *prgb, PGL pglclr, long dxp, long dyp, bool fUpsideDown = fTrue);\n\n#endif //! MBMP_H\n"
  },
  {
    "path": "kauai/src/mbmpgui.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Masked bitmap stuff that a GUI app might need.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\n/***************************************************************************\n    This routine is called to draw the masked bitmap onto prgbPixels.\n    cbRow and dyp are the respective width and height of prgbPixels.\n    xpRef and ypRef are the coordinates within the prgbPixels to place\n    the reference point of the MBMP.  The drawing will be clipped to both\n    prcClip and pregnClip, which may be nil.\n***************************************************************************/\nvoid MBMP::Draw(byte *prgbPixels, long cbRow, long dyp, long xpRef, long ypRef, RC *prcClip, PREGN pregnClip)\n{\n    AssertThis(0);\n    AssertIn(cbRow, 1, kcbMax);\n    AssertIn(dyp, 1, kcbMax);\n    AssertPvCb(prgbPixels, LwMul(cbRow, dyp));\n    AssertNilOrVarMem(prcClip);\n    AssertNilOrPo(pregnClip, 0);\n\n#ifdef IN_80386\n    // NOTE the \"rep movsd\" and \"rep movsb\" used for writing the bytes is\n    // responsible for most of the speed improvement of this over the straight\n    // C code.  The remaining asm gives us an additional 5 - 15 percent depending\n    // on the complexity of the transparency (the more complex, the more\n    // improvement over the C version).\n\n    long yp, dxpT, xpOn;\n    byte *qbRowSrc, *qbLastSrc, *pbOff;\n    short *qcb;\n    byte bFill;\n    long lwFill;\n    REGSC regsc;\n    RC rcClip(0, 0, cbRow, dyp);\n    MBMPH *qmbmph = _Qmbmph();\n    RC rcMbmp = qmbmph->rc;\n    bool fMask = qmbmph->fMask;\n\n    // Intersect prcClip with the boundary of prgbPixels.\n    if (pvNil != prcClip && !rcClip.FIntersect(prcClip))\n        return;\n\n    // Translate the mbmp's rc into coordinate system of prgbPixel's rc\n    rcMbmp.Offset(xpRef, ypRef);\n\n    // Intersect rcClip with mbmp's translated rc.\n    if (!rcClip.FIntersect(&rcMbmp))\n        return;\n\n    // Set up the region scanner\n    if (pvNil != pregnClip)\n        regsc.Init(pregnClip, &rcClip);\n    else\n        regsc.InitRc(&rcClip, &rcClip);\n\n    qcb = _Qrgcb();\n    qbRowSrc = (byte *)PvAddBv(qcb, _cbRgcb);\n    prgbPixels += LwMul(rcClip.ypTop, cbRow) + rcClip.xpLeft;\n    rcMbmp.Offset(-rcClip.xpLeft, -rcClip.ypTop);\n    rcClip.OffsetToOrigin();\n\n    if (fMask)\n    {\n        bFill = qmbmph->bFill;\n        lwFill = LwFromBytes(bFill, bFill, bFill, bFill);\n    }\n\n    // Step down through rgcb until to top of clipping rc\n    for (yp = rcMbmp.ypTop; yp < 0; yp++)\n        qbRowSrc += *qcb++;\n\n    // copy each row appropriately\n    for (;;)\n    {\n        if ((xpOn = regsc.XpCur()) == klwMax)\n        {\n            // empty strip of the region\n            long dypT;\n\n            dypT = regsc.DypCur();\n            if ((yp += dypT) >= rcClip.ypBottom)\n                break;\n            regsc.ScanNext(dypT);\n            prgbPixels += LwMul(dypT, cbRow);\n            for (; dypT > 0; dypT--)\n                qbRowSrc += *qcb++;\n            continue;\n        }\n        AssertIn(xpOn, 0, rcClip.xpRight);\n        pbOff = prgbPixels + LwMin(regsc.XpFetch(), rcClip.xpRight);\n\n        // register allocation:\n        // esi: qbSrc\n        // edi: pbDst\n        // ebx: pbOn\n        // edx: dxp\n        // eax: temp value\n\n#define qbSrc esi\n#define pbDst edi\n#define pbOn ebx\n#define dxp edx\n#define lwT eax\n\n        __asm {\n            // qbSrc = qbRowSrc;\n\t\t\tmov\t\tqbSrc,qbRowSrc\n\n                // lwT = *qcb++;\n\t\t\tmov\t\tlwT,qcb\n\t\t\tadd\t\tqcb,2\n\t\t\tmovzx\tlwT,WORD PTR[lwT]\n\n            // qbLastSrc = qbSrc + lwT\n\t\t\tlea\t\tlwT,DWORD PTR[qbSrc+lwT-1]\n\t\t\tmov\t\tqbLastSrc,lwT\n\n                // pbDst = prgbPixels + rcMbmp.xpLeft;\n                // pbOn = prgbPixels + xpOn;\n\t\t\tmov\t\tpbOn,xpOn\n\t\t\tmov\t\tpbDst,prgbPixels\n\t\t\tadd\t\tpbOn,pbDst\n\t\t\tadd\t\tpbDst,rcMbmp.xpLeft\n\n                // dxp = 0;\n\t\t\txor\t\tdxp,dxp\n\nLGetDxp:\n                // if (qbLastSrc <= qbSrc) goto LNextRow\n\t\t\tcmp\t\tqbLastSrc,qbSrc\n\t\t\tjbe\t\tLNextRow\n\n                // dxp = qbSrc[1]; pbDst += *qbSrc; qbSrc += 2;\n\t\t\tmovzx\tlwT,BYTE PTR[qbSrc]\n\t\t\tmovzx\tdxp,BYTE PTR[qbSrc+1]\n\t\t\tadd\t\tpbDst,lwT\n\t\t\tadd\t\tqbSrc,2\n\nLTestDxp:\n                // if (dxp == 0) goto LGetDxp\n\t\t\ttest\tdxp,dxp\n\t\t\tje\t\tLGetDxp\n\n                // if (pbDst + dxp > pbOn) goto LAfterOn;\n\t\t\tlea\t\tlwT,DWORD PTR[pbDst+dxp]\n\t\t\tcmp\t\tlwT,pbOn\n\t\t\tja\t\tLAfterOn\n\n                // pbDst += dxp;\n\t\t\tadd\t\tpbDst,dxp\n\n                // if (!fMask) qbSrc += dxp; goto LGetDxp\n\t\t\ttest\tfMask,-1L\n\t\t\tjnz\t\tLGetDxp\n\t\t\tadd\t\tqbSrc,dxp\n\t\t\tjmp\t\tLGetDxp\n\nLAfterOn:\n                // Assert(pbDst + dxp > pbOn, 0);\n                // if (pbDst < pbOff) goto LBeforeOff;\n\t\t\tcmp\t\tpbDst,pbOff\n\t\t\tjb\t\tLBeforeOff\n\n                // save the value of dxp across C code\n\t\t\tmov\t\tdxpT,dxp\n        }\n\n        // destination is after pbOff - need to advance the region scan\n        xpOn = regsc.XpFetch();\n        if (xpOn == klwMax)\n            goto LNextRow;\n        pbOff = prgbPixels + LwMin(regsc.XpFetch(), rcClip.xpRight);\n\n        __asm {\n            // restore the value of dxp\n\t\t\tmov\t\tdxp,dxpT\n\n                // pbOn = prgbPixels + xpOn;\n\t\t\tmov\t\tpbOn,prgbPixels\n\t\t\tadd\t\tpbOn,xpOn\n\n                // goto LTestDxp;\n\t\t\tjmp\t\tLTestDxp\n\nLBeforeOff:\n                // AssertIn(0, pbOn - pbDst - dxp + 1, pbOff - pbDst);\n                // if (pbOn <= pbDst) goto LDstAfterOn;\n\t\t\tcmp\t\tpbOn,pbDst\n\t\t\tjbe\t\tLDstAfterOn\n\n                // destination is before pbOn: use pbDst as a temporary value to\n                // store (pbDst - pbOn), which should be negative.\n                //\n                // pbDst -= pbOn;\n                // dxp += pbDst;\n\t\t\tsub\t\tpbDst,pbOn\n\t\t\tadd\t\tdxp,pbDst\n\n                // if (!fMask) qbSrc -= pbDst;\n\t\t\ttest\tfMask,-1L\n\t\t\tjnz\t\tLMask\n\t\t\tsub\t\tqbSrc,pbDst\n\nLMask:\n                // pbDst = pbOn;\n\t\t\tmov\t\tpbDst,pbOn\n\nLDstAfterOn:\n                // AssertIn(0, pbOn - pbDst, pbOff - pbDst);\n                // lwT = LwMin(dxp, pbOff - pbDst);\n\t\t\tmov\t\tlwT,pbOff\n\t\t\tsub\t\tlwT,pbDst\n\t\t\tcmp\t\tlwT,dxp\n\t\t\tjle\t\tLKeepLwT\n\t\t\tmov\t\tlwT,dxp\n\nLKeepLwT:\n                // dxp -= lwT;\n\t\t\tsub\t\tdxp,lwT\n\n                // if (fMask) goto LFill;\n\t\t\ttest\tfMask,-1L\n\t\t\tjnz\t\tLFill\n\n                // CopyPb(qbSrc, pbDst, lwT);\n                // qbSrc += lwT; pbDst += lwT;\n\n                // move the longs\n\t\t\tmov\t\tecx,lwT\n\t\t\tshr\t\tecx,2\n\t\t\trep\t\tmovsd\n\n                // move the extra bytes\n\t\t\tmov\t\tecx,lwT\n\t\t\tand\t\tecx,3\n\t\t\trep\t\tmovsb\n\n                // goto LTestDxp;\n\t\t\tjmp\t\tLTestDxp\n\nLFill:\n                // FillPb(pbDst, lwT, _bFill);\n                // pbDst += lwT;\n\t\t\tmov\t\tecx,lwT\n\t\t\tmov\t\teax,lwFill\n\n                // fill the longs\n\t\t\tmov\t\tdxpT,ecx\n\t\t\tshr\t\tecx,2\n\t\t\trep\t\tstosd\n\n                // fill the bytes\n\t\t\tmov\t\tecx,dxpT\n\t\t\tand\t\tecx,3\n\t\t\trep\t\tstosb\n\n                // goto LTestDxp;\n\t\t\tjmp\t\tLTestDxp\n        }\n\n#undef qbSrc\n#undef pbDst\n#undef pbOn\n#undef dxp\n#undef lwT\n\n    LNextRow:\n        if (++yp >= rcClip.ypBottom)\n            break;\n        regsc.ScanNext(1);\n\n        // advance row pointers\n        prgbPixels += cbRow;\n        qbRowSrc = qbLastSrc + 1;\n    }\n\n#else //! IN_80386\n\n    long yp, dxp, dypT, dxpT;\n    byte *qbRowSrc, *qbSrc, *qbLastSrc;\n    byte *pbOn, *pbOff, *pbDst;\n    short *qcb;\n    REGSC regsc;\n    RC rcClip(0, 0, cbRow, dyp);\n    MBMPH *qmbmph = _Qmbmph();\n    RC rcMbmp = qmbmph->rc;\n    bool fMask = qmbmph->fMask;\n\n    // Intersect prcClip with the boundary of prgbPixels.\n    if (pvNil != prcClip && !rcClip.FIntersect(prcClip))\n        return;\n\n    // Translate the mbmp's rc into coordinate system of prgbPixel's rc\n    rcMbmp.Offset(xpRef, ypRef);\n\n    // Intersect rcClip with mbmp's translated rc.\n    if (!rcClip.FIntersect(&rcMbmp))\n        return;\n\n    // Set up the region scanner\n    if (pvNil != pregnClip)\n        regsc.Init(pregnClip, &rcClip);\n    else\n        regsc.InitRc(&rcClip, &rcClip);\n\n    qcb = _Qrgcb();\n    qbRowSrc = (byte *)PvAddBv(qcb, _cbRgcb);\n    prgbPixels += LwMul(rcClip.ypTop, cbRow) + rcClip.xpLeft;\n    rcMbmp.Offset(-rcClip.xpLeft, -rcClip.ypTop);\n    rcClip.OffsetToOrigin();\n\n    // Step down through rgcb until to top of clipping rc\n    for (yp = rcMbmp.ypTop; yp < 0; yp++)\n        qbRowSrc += *qcb++;\n\n    // copy each row appropriately\n    for (;;)\n    {\n        if (regsc.XpCur() == klwMax)\n        {\n            // empty strip of the region\n            dypT = regsc.DypCur();\n            if ((yp += dypT) >= rcClip.ypBottom)\n                break;\n            regsc.ScanNext(dypT);\n            prgbPixels += LwMul(dypT, cbRow);\n            for (; dypT > 0; dypT--)\n                qbRowSrc += *qcb++;\n            continue;\n        }\n        AssertIn(regsc.XpCur(), 0, rcClip.xpRight);\n\n        qbLastSrc = (qbSrc = qbRowSrc) + *qcb++ - 1;\n        pbDst = prgbPixels + rcMbmp.xpLeft;\n        pbOn = prgbPixels + regsc.XpCur();\n        pbOff = prgbPixels + LwMin(rcClip.xpRight, regsc.XpFetch());\n\n        dxp = 0;\n        for (;;)\n        {\n            while (dxp == 0)\n            {\n                if (qbSrc >= qbLastSrc)\n                    goto LNextRow;\n                pbDst += *qbSrc++;\n                dxp = *qbSrc++;\n            }\n            if (pbDst + dxp <= pbOn)\n            {\n                pbDst += dxp;\n                if (!fMask)\n                    qbSrc += dxp;\n                dxp = 0;\n                continue;\n            }\n            Assert(pbDst + dxp > pbOn, 0);\n            if (pbDst >= pbOff)\n            {\n                // destination is after pbOff - need to advance the region scan\n                if (regsc.XpFetch() == klwMax)\n                    break;\n                pbOn = prgbPixels + regsc.XpCur();\n                pbOff = prgbPixels + LwMin(rcClip.xpRight, regsc.XpFetch());\n                continue;\n            }\n\n            AssertIn(0, pbOn - pbDst - dxp + 1, pbOff - pbDst);\n            if (pbOn > pbDst)\n            {\n                // destination is before pbOn\n                dxp -= pbOn - pbDst;\n                if (!fMask)\n                    qbSrc += pbOn - pbDst;\n                pbDst = pbOn;\n            }\n\n            AssertIn(0, pbOn - pbDst, pbOff - pbDst);\n            dxp -= (dxpT = LwMin(dxp, pbOff - pbDst));\n            if (fMask)\n            {\n                FillPb(pbDst, dxpT, qmbmph->bFill);\n                pbDst += dxpT;\n            }\n            else\n            {\n                while (dxpT--)\n                    *pbDst++ = *qbSrc++;\n            }\n        }\n\n    LNextRow:\n        if (++yp >= rcClip.ypBottom)\n            break;\n        regsc.ScanNext(1);\n\n        // advance row pointers\n        prgbPixels += cbRow;\n        qbRowSrc = qbLastSrc + 1;\n    }\n\n#endif //! IN_80386\n}\n\n/***************************************************************************\n    This routine is called to draw the masked bitmap as a mask onto\n    prgbPixels.  prgbPixels is assumed to be 1 bit deep.  Zeros are\n    written where the MBMP is transparent and ones are written where\n    it is non-transparent.\n***************************************************************************/\nvoid MBMP::DrawMask(byte *prgbPixels, long cbRow, long dyp, long xpRef, long ypRef, RC *prcClip)\n{\n    AssertThis(0);\n    AssertIn(cbRow, 1, kcbMax);\n    AssertIn(dyp, 1, kcbMax);\n    AssertPvCb(prgbPixels, LwMul(cbRow, dyp));\n    AssertNilOrVarMem(prcClip);\n\n    long yp, xp, dxp;\n    byte *qbRowSrc, *qbSrc, *qbLimSrc;\n    short *qcb;\n    bool fTrans;\n    long ib, ibNext;\n    byte bMask, bMaskNext;\n    MBMPH *qmbmph = _Qmbmph();\n    RC rcClip(0, 0, LwMul(cbRow, 8), dyp);\n    RC rcMbmp = qmbmph->rc;\n    bool fMask = qmbmph->fMask;\n\n    // Intersect prcClip with the boundary of prgbPixels.\n    if (pvNil != prcClip && !rcClip.FIntersect(prcClip))\n        return;\n\n    // Translate the mbmp's rc into coordinate system of prgbPixel's rc\n    rcMbmp.Offset(xpRef, ypRef);\n\n    // Intersect rcClip with mbmp's translated rc.\n    if (!rcClip.FIntersect(&rcMbmp))\n        return;\n\n    qcb = _Qrgcb();\n    qbRowSrc = (byte *)PvAddBv(qcb, _cbRgcb);\n    prgbPixels += LwMul(rcClip.ypTop, cbRow);\n\n    // Step down through rgcb until to top of clipping rc\n    for (yp = rcMbmp.ypTop; yp < rcClip.ypTop; yp++)\n        qbRowSrc += *qcb++;\n\n    // copy each row appropriately\n    for (; yp < rcClip.ypBottom; yp++)\n    {\n        qbLimSrc = qbRowSrc + *qcb++;\n        qbSrc = qbRowSrc;\n        xp = rcMbmp.xpLeft;\n        fTrans = fTrue;\n\n        // Step through row until at left edge of clipping rc\n        for (;;)\n        {\n            if (qbSrc >= qbLimSrc)\n            {\n                xp = rcClip.xpLeft;\n                dxp = rcClip.Dxp();\n                fTrans = fTrue;\n                break;\n            }\n            dxp = *qbSrc++;\n            if (!fTrans && !fMask)\n                qbSrc += dxp;\n            if (xp + dxp > rcClip.xpLeft)\n            {\n                dxp -= rcClip.xpLeft - xp;\n                xp = rcClip.xpLeft;\n                break;\n            }\n            xp += dxp;\n            fTrans = !fTrans;\n        }\n\n        while (xp < rcClip.xpRight)\n        {\n            if (xp + dxp > rcClip.xpRight)\n                dxp = rcClip.xpRight - xp;\n\n            if (dxp > 0)\n            {\n                // set or clear dxp bits\n                ib = xp >> 3;\n                bMask = 0xFF >> (xp & 0x07);\n                xp += dxp;\n                ibNext = xp >> 3;\n                bMaskNext = 0xFF >> (xp & 0x07);\n                if (ib == ibNext)\n                {\n                    if (fTrans)\n                        prgbPixels[ib] &= ~bMask | bMaskNext;\n                    else\n                        prgbPixels[ib] |= bMask & ~bMaskNext;\n                }\n                else\n                {\n                    if (fTrans)\n                        prgbPixels[ib] &= ~bMask;\n                    else\n                        prgbPixels[ib] |= bMask;\n                    if (ib + 1 < ibNext)\n                        FillPb(prgbPixels + ib + 1, ibNext - ib - 1, fTrans ? 0 : 0xFF);\n                    if (fTrans)\n                        prgbPixels[ibNext] &= bMaskNext;\n                    else\n                        prgbPixels[ibNext] |= ~bMaskNext;\n                }\n            }\n            if (xp >= rcClip.xpRight)\n                break;\n\n            if (qbSrc >= qbLimSrc)\n            {\n                dxp = rcClip.xpRight - xp;\n                fTrans = fTrue;\n            }\n            else\n            {\n                fTrans = !fTrans;\n                dxp = *qbSrc++;\n                if (!fTrans && !fMask)\n                    qbSrc += dxp;\n            }\n        }\n\n        // advance row pointers\n        prgbPixels += cbRow;\n        qbRowSrc = qbLimSrc;\n    }\n}\n"
  },
  {
    "path": "kauai/src/mdev2pri.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Private declarations for mididev2 (streamed midi).\n\n***************************************************************************/\n#ifndef MDEV2PRI_H\n#define MDEV2PRI_H\n\n// This corresponds to the Win95 MIDIEVENT structure (with no optional data).\n// We're using the older headers, so need to define our own.\nstruct MEV\n{\n    DWORD dwDeltaTime; // midi ticks between this and previous event\n    DWORD dwStreamID;  // reserved - must be zero\n    DWORD dwEvent;\n};\ntypedef MEV *PMEV;\n\n// This corresponds to the Win95 MIDIHDR structure.\n// We're using the older headers, so need to define our own.\nstruct MH\n{\n    byte *lpData;\n    DWORD dwBufferLength;\n    DWORD dwBytesRecorded;\n    DWORD dwUser;\n    DWORD dwFlags;\n    MH *lpNext;\n    DWORD reserved;\n    DWORD dwOffset;\n    DWORD dwReserved[8];\n};\ntypedef MH *PMH;\n\ntypedef MIDIHDR *PMHO;\n\n// A midi stream handle can be used as a midi out handle.\ntypedef HMIDIOUT HMS;\n\n/***************************************************************************\n    This is the midi stream cached object.\n***************************************************************************/\ntypedef class MDWS *PMDWS;\n#define MDWS_PAR BACO\n#define kclsMDWS 'MDWS'\nclass MDWS : public MDWS_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PGL _pglmev;\n    ulong _dts;\n\n    MDWS(void);\n    bool _FInit(PMIDS pmids);\n\n  public:\n    static bool FReadMdws(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n    static PMDWS PmdwsRead(PBLCK pblck);\n\n    ~MDWS(void);\n\n    ulong Dts(void)\n    {\n        return _dts;\n    }\n    void *PvLockData(long *pcb);\n    void UnlockData(void);\n};\n\n// forward declaration\ntypedef class MSMIX *PMSMIX;\ntypedef class MISI *PMISI;\n\n/***************************************************************************\n    Midi stream queue.\n***************************************************************************/\ntypedef class MSQUE *PMSQUE;\n#define MSQUE_PAR SNQUE\n#define kclsMSQUE 'msqu'\nclass MSQUE : public MSQUE_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    MUTX _mutx;     // restricts access to member variables\n    ulong _tsStart; // when we started the current sound\n    PMSMIX _pmsmix;\n\n    MSQUE(void);\n\n    virtual void _Enter(void);\n    virtual void _Leave(void);\n\n    virtual bool _FInit(PMSMIX pmsmix);\n    virtual PBACO _PbacoFetch(PRCA prca, CTG ctg, CNO cno);\n    virtual void _Queue(long isndinMin);\n    virtual void _PauseQueue(long isndinMin);\n    virtual void _ResumeQueue(long isndinMin);\n\n  public:\n    static PMSQUE PmsqueNew(PMSMIX pmsmix);\n    ~MSQUE(void);\n\n    void Notify(PMDWS pmdws);\n};\n\n/***************************************************************************\n    Midi Stream \"mixer\". It really just chooses which midi stream to play\n    (based on the (spr, sii) priority).\n***************************************************************************/\ntypedef class MSMIX *PMSMIX;\n#define MSMIX_PAR BASE\n#define kclsMSMIX 'msmx'\nclass MSMIX : public MSMIX_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    struct MSOS\n    {\n        PMSQUE pmsque;  // the \"channel\" or queue that the sound is on\n        PMDWS pmdws;    // the sound\n        long sii;       // its sound id (for a priority tie breaker)\n        long spr;       // its priority\n        long cactPlay;  // how many times to play the sound\n        ulong dts;      // length of this sound\n        ulong dtsStart; // position to start at\n        long vlm;       // volume to play at\n        ulong tsStart;  // when we \"started\" the sound (minus dtsStart)\n    };\n\n    // Mutex to protect our member variables\n    MUTX _mutx;\n    HN _hevt; // to notify the thread that the sound list changed\n    HN _hth;  // thread to terminate non-playing sounds\n\n    PMISI _pmisi; // the midi stream interface\n    PGL _pglmsos; // the list of current sounds, in priority order\n    long _cpvOut; // number of buffers submitted (0, 1, or 2)\n\n    PGL _pglmevKey;     // to accumulate state events for seeking\n    bool _fPlaying : 1; // whether we're currently playing the first stream\n    bool _fWaiting : 1; // we're waiting for our buffers to get returned\n    bool _fDone : 1;    // tells the aux thread to terminate\n\n    long _vlmBase;  // the base device volume\n    long _vlmSound; // the volume for the current sound\n\n    MSMIX(void);\n    bool _FInit(void);\n    void _StopStream(void);\n    bool _FGetKeyEvents(PMDWS pmdws, ulong dtsSeek, long *pcbSkip);\n    void _Restart(bool fNew = fFalse);\n    void _WaitForBuffers(void);\n    void _SubmitBuffers(ulong tsCur);\n\n    static void _MidiProc(ulong luUser, void *pvData, ulong luData);\n    void _Notify(void *pvData, PMDWS pmdws);\n\n    static ulong __stdcall _ThreadProc(void *pv);\n    ulong _LuThread(void);\n\n  public:\n    static PMSMIX PmsmixNew(void);\n    ~MSMIX(void);\n\n    bool FPlay(PMSQUE pmsque, PMDWS pmdws = pvNil, long sii = siiNil, long spr = 0, long cactPlay = 1,\n               ulong dtsStart = 0, long vlm = kvlmFull);\n\n    void Suspend(bool fSuspend);\n    void SetVlm(long vlm);\n    long VlmCur(void);\n};\n\n// Define these so we can use old (msvc 2.1) header files\n#ifndef MEVT_SHORTMSG\n#define MEVT_SHORTMSG ((BYTE)0x00) // parm = shortmsg for midiOutShortMsg\n#define MEVT_TEMPO ((BYTE)0x01)    // parm = new tempo in microsec/qn\n#define MEVT_NOP ((BYTE)0x02)      // parm = unused; does nothing\n#define MIDIPROP_SET 0x80000000L\n#define MIDIPROP_GET 0x40000000L\n#define MIDIPROP_TIMEDIV 0x00000001L\n#endif //! MEVT_SHORTMSG\n\n/***************************************************************************\n    The midi stream interface.\n***************************************************************************/\ntypedef void (*PFNMIDI)(ulong luUser, void *pvData, ulong luData);\n\ntypedef class MISI *PMISI;\n#define MISI_PAR BASE\n#define kclsMISI 'MISI'\nclass MISI : public MISI_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    HMS _hms;         // the midi stream handle\n    PFNMIDI _pfnCall; // call back function\n    ulong _luUser;    // user data to send back\n\n    // system volume level - to be saved and restored. The volume we set\n    // is always relative to this\n    tribool _tBogusDriver; // to indicate whether midiOutGetVolume really works\n    ulong _luVolSys;\n    long _vlmBase; // our current volume relative to _luVolSys.\n\n    MISI(PFNMIDI pfn, ulong luUser);\n\n    virtual bool _FOpen(void) = 0;\n    virtual bool _FClose(void) = 0;\n\n    void _Reset(void);\n    void _GetSysVol(void);\n    void _SetSysVol(ulong luVol);\n    void _SetSysVlm(void);\n\n  public:\n    virtual void SetVlm(long vlm);\n    virtual long VlmCur(void);\n\n    virtual bool FActive(void);\n    virtual bool FActivate(bool fActivate);\n\n    virtual bool FQueueBuffer(void *pvData, long cb, long ibStart, long cactPlay, ulong luData) = 0;\n    virtual void StopPlaying(void) = 0;\n};\n\n/***************************************************************************\n    The midiStreamStop API has a bug in it where it doesn't reset the\n    current \"buffer position\" so that after calling midiStreamStop, then\n    midiStreamOut and midiStreamRestart, the new buffer isn't played\n    immediately, but the system waits until the previous buffer position\n    expires before playing the new buffer.\n\n    When this bug is fixed, STREAM_BUG can be undefined.\n***************************************************************************/\n#define STREAM_BUG\n\n/***************************************************************************\n    The real midi stream interface.\n***************************************************************************/\ntypedef class WMS *PWMS;\n#define WMS_PAR MISI\n#define kclsWMS 'WMS'\nclass WMS : public WMS_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n#define kcmhMsir 2\n    struct MSIR\n    {\n        void *pvData;\n        long cb;\n        long cactPlay;\n        ulong luData;\n        long ibNext;\n\n        MH rgmh[kcmhMsir];\n        long rgibLim[kcmhMsir];\n    };\n    typedef MSIR *PMSIR;\n\n    MUTX _mutx;\n    HINSTANCE _hlib;\n    PGL _pglpmsir;\n    long _ipmsirCur;\n    long _cmhOut;\n\n    HN _hevt; // event to wake up the thread\n    HN _hth;  // thread to do callbacks and cleanup after a notify\n\n#ifdef STREAM_BUG\n    bool _fActive : 1;\n#endif               // STREAM_BUG\n    bool _fDone : 1; // tells the aux thread to terminate\n\n    MMRESULT(WINAPI *_pfnOpen)\n    (HMS *phms, LPUINT puDeviceID, DWORD cMidi, DWORD dwCallback, DWORD dwInstance, DWORD fdwOpen);\n    MMRESULT(WINAPI *_pfnClose)(HMS hms);\n    MMRESULT(WINAPI *_pfnProperty)(HMS hms, LPBYTE lpb, DWORD dwProperty);\n    MMRESULT(WINAPI *_pfnPosition)(HMS hms, LPMMTIME lpmmt, UINT cbmmt);\n    MMRESULT(WINAPI *_pfnOut)(HMS hms, LPMIDIHDR pmh, UINT cbmh);\n    MMRESULT(WINAPI *_pfnPause)(HMS hms);\n    MMRESULT(WINAPI *_pfnRestart)(HMS hms);\n    MMRESULT(WINAPI *_pfnStop)(HMS hms);\n\n    WMS(PFNMIDI pfn, ulong luUser);\n    bool _FInit(void);\n\n    virtual bool _FOpen(void);\n    virtual bool _FClose(void);\n\n    bool _FSubmit(PMH pmh);\n    void _DoCallBacks(void);\n    long _CmhSubmitBuffers(void);\n    void _ResetStream(void);\n\n    static void __stdcall _MidiProc(HMS hms, ulong msg, ulong luUser, ulong lu1, ulong lu2);\n    void _Notify(HMS hms, PMH pmh);\n\n    static ulong __stdcall _ThreadProc(void *pv);\n    ulong _LuThread(void);\n\n  public:\n    static PWMS PwmsNew(PFNMIDI pfn, ulong luUser);\n    ~WMS(void);\n\n#ifdef STREAM_BUG\n    virtual bool FActive(void);\n    virtual bool FActivate(bool fActivate);\n#endif // STREAM_BUG\n\n    virtual bool FQueueBuffer(void *pvData, long cb, long ibStart, long cactPlay, ulong luData);\n    virtual void StopPlaying(void);\n};\n\n/***************************************************************************\n    Our fake midi stream class.\n***************************************************************************/\ntypedef class OMS *POMS;\n#define OMS_PAR MISI\n#define kclsOMS 'OMS'\nclass OMS : public OMS_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    struct MSB\n    {\n        void *pvData;\n        long cb;\n        long ibStart;\n        long cactPlay;\n\n        ulong luData;\n    };\n\n    MUTX _mutx;\n    HN _hevt; // event to notify the thread that the stream data has changed\n    HN _hth;  // thread to play the stream data\n\n    bool _fChanged : 1; // the event has been signalled\n    bool _fStop : 1;    // tells the aux thread to stop all buffers\n    bool _fDone : 1;    // tells the aux thread to return\n\n    long _imsbCur;\n    PGL _pglmsb;\n    PMEV _pmev;\n    PMEV _pmevLim;\n    ulong _tsCur;\n\n    OMS(PFNMIDI pfn, ulong luUser);\n    bool _FInit(void);\n\n    virtual bool _FOpen(void);\n    virtual bool _FClose(void);\n\n    static ulong __stdcall _ThreadProc(void *pv);\n    ulong _LuThread(void);\n    void _ReleaseBuffers(void);\n\n  public:\n    static POMS PomsNew(PFNMIDI pfn, ulong luUser);\n    ~OMS(void);\n\n    virtual bool FQueueBuffer(void *pvData, long cb, long ibStart, long cactPlay, ulong luData);\n    virtual void StopPlaying(void);\n};\n\n#endif //! MDEV2PRI_H\n"
  },
  {
    "path": "kauai/src/memmac.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Macintosh memory management.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\n// REVIEW shonk: Mac: implement HQ statistics\n\n// HQ header - actually goes at the end of the hq.\nstruct HQH\n{\n#ifdef DEBUG\n    short swMagic;   // to detect memory trashing\n    short cactRef;   // for marking memory\n    schar *pszsFile; // source file that allocation request is coming from\n    long lwLine;     // line in file that allocation request is coming from\n    HQ hqPrev;       // previous hq in doubly linked list\n    HQ hqNext;       // next hq in doubly linked list\n#endif               // DEBUG\n    byte cactLock;   // lock count\n    byte cbExtra;    // count of extra bytes\n};\n\n#ifdef DEBUG\nHQ _hqFirst; // head of the doubly linked list\nlong vcactSuspendCheckPointers = 0;\n#endif // DEBUG\n\ninline void *_QvFromHq(HQ hq)\n{\n    return vadst.PvStrip(*(void **)hq);\n}\ninline HQH *_QhqhFromHq(HQ hq)\n{\n    return (HQH *)PvAddBv(vadst.PvStrip(*(void **)hq), GetHandleSize((HN)hq) - size(HQH));\n}\ninline HQH *_QhqhFromHqBv(HQ hq, long bv)\n{\n    return (HQH *)PvAddBv(vadst.PvStrip(*(void **)hq), bv);\n}\n\nlong __pascal _CbFreeStuff(long cb);\nADST vadst;\n\n/***************************************************************************\n    This is the GrowZone proc (a call back from the Mac OS memory manager).\n    If _fInAlloc is true, we don't do anything, cuz the code that's doing\n    the allocation will free stuff and try again.\n\n    If _fInAlloc is false, it probably means that the Toolbox is allocating\n    something, in which case, the priority is critical.\n\n    REVIEW shonk: should we just free an emergency buffer and return?\n***************************************************************************/\nlong __pascal _CbFreeStuff(long cb)\n{\n    if (_fInAlloc || pvNil == vpfnlib)\n        return 0;\n    _fInAlloc = fTrue;\n    cb = (*vpfnlib)(cb, mprCritical);\n    _fInAlloc = fFalse;\n    return cb;\n}\n\n/***************************************************************************\n    Constructor for the address stripper - overloaded to also set the\n    grow-zone proc.\n***************************************************************************/\nADST::ADST(void)\n{\n    _lwMaskAddress = (long)StripAddress((void *)0xFFFFFFFFL);\n    SetGrowZone(&_CbFreeStuff);\n}\n\n/***************************************************************************\n    Allocates a new moveable block.\n***************************************************************************/\n#ifdef DEBUG\nbool FAllocHqDebug(HQ *phq, long cb, ulong grfmem, long mpr, schar *pszsFile, long lwLine)\n#else  //! DEBUG\nbool FAllocHq(HQ *phq, long cb, ulong grfmem, long mpr)\n#endif //! DEBUG\n{\n    AssertVarMem(phq);\n    AssertIn(cb, 0, kcbMax);\n    HQH hqh;\n\n    if (_fInAlloc)\n    {\n        Bug(\"recursing in FAllocHq\");\n        goto LFail;\n    }\n\n#ifdef DEBUG\n    if (_hqFirst != hqNil)\n        AssertHq(_hqFirst);\n#endif // DEBUG\n\n    if (cb > kcbMax)\n    {\n        BugVar(\"who's allocating a humongous block?\", &cb);\n        goto LFail;\n    }\n\n    hqh.cbExtra = (-cb) & 3;\n    Assert((cb + hqh.cbExtra) % 4 == 0, 0);\n    // assert we don't overflow (the limit of kcbMax should ensure this)\n    Assert(cb + size(HQH) + hqh.cbExtra > cb, 0);\n\n    cb += hqh.cbExtra + size(HQH);\n    _fInAlloc = fTrue;\n    do\n    {\n        *phq = (grfmem & fmemClear) ? NewHandleClear(cb) : NewHandle(cb);\n    } while (hqNil == *phq && vpfnlib != pvNil && (*vpfnlib)(cb, mpr) > 0);\n    _fInAlloc = fFalse;\n\n    if (hqNil == *phq)\n    {\n    LFail:\n        *phq = hqNil;\n        PushErc(ercOomHq);\n        return fFalse;\n    }\n\n#ifdef DEBUG\n    if (!(grfmem & fmemClear))\n        FillPb(_QvFromHq(*phq), cb, kbGarbage);\n    hqh.swMagic = kswMagicMem;\n    hqh.pszsFile = pszsFile;\n    hqh.lwLine = lwLine;\n    hqh.hqPrev = hqNil;\n    hqh.hqNext = _hqFirst;\n    if (_hqFirst != hqNil)\n    {\n        Assert(_QhqhFromHq(_hqFirst)->hqPrev == hqNil, \"_hqFirst's prev is not nil\");\n        _QhqhFromHq(_hqFirst)->hqPrev = *phq;\n    }\n    _hqFirst = *phq;\n#endif // DEBUG\n    hqh.cactLock = 0;\n    *_QhqhFromHqBv(*phq, cb - size(HQH)) = hqh;\n    AssertHq(*phq);\n    return fTrue;\n}\n\n/***************************************************************************\n    Resizes the given hq.  *phq may change (on Windows).  If fhqClear,\n    clears any newly added space.\n***************************************************************************/\nbool FResizePhq(HQ *phq, long cb, ulong grfmem, long mpr)\n{\n    AssertVarMem(phq);\n    AssertHq(*phq);\n    AssertIn(cb, 0, kcbMax);\n    HQH hqh;\n    long cbOld;\n    bool fInAllocSave;\n    short err;\n\n    if (cb > kcbMax)\n    {\n        BugVar(\"who's resizing a humongous block?\", &cb);\n        goto LFail;\n    }\n    cbOld = GetHandleSize((HN)*phq) - size(HQH);\n    if (_fInAlloc && cb > cbOld)\n    {\n        Bug(\"recursing in FResizePhq\");\n        goto LFail;\n    }\n\n    hqh = *_QhqhFromHqBv(*phq, cbOld);\n    if (hqh.cactLock != 0)\n    {\n        Bug(\"Resizing locked HQ\");\n        goto LFail;\n    }\n\n#ifdef DEBUG\n    // trash the old stuff\n    if (cbOld > cb)\n        FillPb(PvAddBv(_QvFromHq(*phq), cb), cbOld + size(HQH) - cb, kbGarbage);\n#endif\n    cbOld -= hqh.cbExtra;\n\n    hqh.cbExtra = (-cb) & 3;\n    Assert((cb + hqh.cbExtra) % 4 == 0, 0);\n    // assert we don't overflow (the limit of kcbMax should ensure this)\n    Assert(cb + size(HQH) + hqh.cbExtra > cb, 0);\n\n    fInAllocSave = _fInAlloc;\n    _fInAlloc = true;\n    do\n    {\n        err = ErrSetHandleSize((HN)*phq, cb + hqh.cbExtra + size(HQH));\n    } while (err != noErr && cb > cbOld && vpfnlib != pvNil && (*vpfnlib)(cb - cbOld, mpr) > 0);\n    _fInAlloc = fInAllocSave;\n\n    if (err != noErr)\n    {\n    LFail:\n        AssertHq(*phq);\n        PushErc(ercOomHq);\n        return false;\n    }\n\n    if (cbOld < cb)\n    {\n        if (grfmem & fmemClear)\n            ClearPb(PvAddBv(_QvFromHq(*phq), cbOld), cb - cbOld);\n#ifdef DEBUG\n        else // trash the new stuff\n            FillPb(PvAddBv(_QvFromHq(*phq), cbOld), cb - cbOld, kbGarbage);\n\n        // trash the rest of the block\n        FillPb(PvAddBv(_QvFromHq(*phq), cb), hqh.cbExtra + size(HQH), kbGarbage);\n#endif // DEBUG\n    }\n    // put the HQH where it belongs\n    *_QhqhFromHqBv(*phq, cb + hqh.cbExtra) = hqh;\n\n    AssertHq(*phq);\n    return true;\n}\n\n/***************************************************************************\n    If hq is not nil, frees it.\n***************************************************************************/\nvoid FreePhq(HQ *phq)\n{\n    AssertVarMem(phq);\n\n    if (*phq == hqNil)\n        return;\n\n#ifdef DEBUG\n    AssertHq(*phq);\n    HQH hqh;\n\n    hqh = *_QhqhFromHq(*phq);\n    Assert(hqh.cactLock == 0, \"Freeing locked HQ\");\n\n    // update prev's next pointer\n    if (hqh.hqPrev == hqNil)\n    {\n        Assert(_hqFirst == *phq, \"prev is wrongly nil\");\n        _hqFirst = hqh.hqNext;\n    }\n    else\n    {\n        AssertHq(hqh.hqPrev);\n        Assert(_hqFirst != *phq, \"prev should be nil\");\n        _QhqhFromHq(hqh.hqPrev)->hqNext = hqh.hqNext;\n    }\n\n    // update next's prev pointer\n    if (hqh.hqNext != hqNil)\n    {\n        AssertHq(hqh.hqNext);\n        _QhqhFromHq(hqh.hqNext)->hqPrev = hqh.hqPrev;\n    }\n\n    // fill the block with garbage\n    FillPb(_QvFromHq(*phq), GetHandleSize((HN)*phq), kbGarbage);\n#endif // DEBUG\n\n    DisposHandle((HN)*phq);\n    *phq = hqNil;\n}\n\n/***************************************************************************\n    Return the size of the hq (the client area of the block).\n***************************************************************************/\nlong CbOfHq(HQ hq)\n{\n    AssertHq(hq);\n    long cbRaw;\n\n    cbRaw = GetHandleSize((HN)hq) - size(HQH);\n    return cbRaw - _QhqhFromHqBv(hq, cbRaw)->cbExtra;\n}\n\n/***************************************************************************\n    Copy an hq to a new block.\n***************************************************************************/\nbool FCopyHq(HQ hqSrc, HQ *phqDst, long mpr)\n{\n    AssertHq(hqSrc);\n    AssertVarMem(phqDst);\n    HQH *qhqh;\n    short err;\n\n    if (_fInAlloc)\n    {\n        Bug(\"recursing in FCopyHq\");\n        goto LFail;\n    }\n\n    *phqDst = hqSrc;\n    _fInAlloc = fTrue;\n    do\n    {\n        err = HandToHand((HN *)phqDst);\n    } while (err != noErr && vpfnlib != pvNil && (*vpfnlib)(CbOfHq(hqSrc), mpr) > 0);\n    _fInAlloc = fFalse;\n\n    if (err != noErr)\n    {\n    LFail:\n        *phqDst = hqNil;\n        PushErc(ercOomHq);\n        return fFalse;\n    }\n\n    qhqh = _QhqhFromHq(*phqDst);\n#ifdef DEBUG\n    qhqh->swMagic = kswMagicMem;\n    qhqh->pszsFile = __szsFile;\n    qhqh->lwLine = __LINE__;\n    qhqh->hqPrev = hqNil;\n    qhqh->hqNext = _hqFirst;\n    if (_hqFirst != hqNil)\n    {\n        Assert(_QhqhFromHq(_hqFirst)->hqPrev == hqNil, \"_hqFirst's prev is not nil\");\n        _QhqhFromHq(_hqFirst)->hqPrev = *phqDst;\n    }\n    _hqFirst = *phqDst;\n#endif // DEBUG\n    qhqh->cactLock = 0;\n\n    AssertHq(*phqDst);\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Returns a volatile pointer from an hq.\n***************************************************************************/\nvoid *QvFromHq(HQ hq)\n{\n    AssertHq(hq);\n    return _QvFromHq(hq);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Lock the hq and return a pointer to the data.\n***************************************************************************/\nvoid *PvLockHq(HQ hq)\n{\n    AssertHq(hq);\n    HQH *qhqh;\n\n    qhqh = _QhqhFromHq(hq);\n    if (qhqh->cactLock++ == 0)\n        HLock((HN)hq);\n    Assert(_QhqhFromHq(hq)->cactLock > 0, \"overflow in cactLock\");\n    return _QvFromHq(hq);\n}\n\n/***************************************************************************\n    Unlock the hq.  Asserts and does nothing if the lock count is zero.\n***************************************************************************/\nvoid UnlockHq(HQ hq)\n{\n    AssertHq(hq);\n    HQH *qhqh;\n\n    qhqh = _QhqhFromHq(hq);\n    Assert(qhqh->cactLock > 0, \"hq not locked\");\n    if (qhqh->cactLock > 0)\n    {\n        if (--qhqh->cactLock == 0)\n            HUnlock((HN)hq);\n    }\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert that a given hq is valid.\n***************************************************************************/\nvoid AssertHq(HQ hq)\n{\n    static void *_pvMinZone;\n    void *pvLimZone;\n    void *qv;\n    HQH hqh;\n    long cb;\n    short sw;\n\n    // make sure hq isn't nil or odd\n    if (hq == hqNil || (long(hq) & 1) != 0)\n    {\n        BugVar(\"hq is nil or odd\", &hq);\n        return;\n    }\n\n    // make sure *hq is not nil or odd\n    if ((qv = _QvFromHq(hq)) == pvNil || (long(qv) & 1) != 0)\n    {\n        BugVar(\"*hq is nil or odd\", &qv);\n        return;\n    }\n\n    // get the heap limits and make sure the hq is in it\n    if (pvNil == _pvMinZone)\n        _pvMinZone = ApplicZone();\n    pvLimZone = (void *)LMGetHeapEnd();\n\n    if (hq <= _pvMinZone || hq >= pvLimZone)\n    {\n        BugVar(\"hq not in application heap\", &hq);\n        return;\n    }\n\n    if ((qv = _QvFromHq(hq)) <= _pvMinZone || qv >= pvLimZone)\n    {\n        BugVar(\"*hq not in the appication heap\", &qv);\n        return;\n    }\n\n    cb = GetHandleSize((HN)hq);\n    AssertVar(cb >= size(HQH), \"hq block is too small\", &cb);\n    AssertVar(cb <= BvSubPvs(pvLimZone, _QvFromHq(hq)), \"hq block runs past end of heap\", &cb);\n\n    // verify the HQH\n    hqh = *_QhqhFromHqBv(hq, cb - size(HQH));\n    if (hqh.swMagic != kswMagicMem)\n    {\n        BugVar(\"end of hq block is trashed\", &hqh);\n        return;\n    }\n    AssertVar(cb >= size(HQH) + hqh.cbExtra, \"cbExtra or cb is wrong\", &cb);\n    sw = HGetState((HN)hq);\n    Assert((hqh.cactLock == 0) == !(sw & 0x0080), \"lock count is wrong\");\n    Assert((hqh.hqPrev == hqNil) == (hq == _hqFirst), \"hqPrev is wrong\");\n\n    // verify the links\n    if (hqh.hqPrev != hqNil)\n        Assert(_QhqhFromHq(hqh.hqPrev)->hqNext == hq, \"hqNext in prev is wrong\");\n    if (hqh.hqNext != hqNil)\n        Assert(_QhqhFromHq(hqh.hqNext)->hqPrev == hq, \"hqPrev in next is wrong\");\n}\n\n/***************************************************************************\n    Increment the ref count on an hq.\n***************************************************************************/\nvoid MarkHq(HQ hq)\n{\n    if (hq != hqNil)\n    {\n        AssertHq(hq);\n        _QhqhFromHq(hq)->cactRef++;\n    }\n}\n\n/***************************************************************************\n    Asserts on all unmarked HQs.\n***************************************************************************/\nvoid _AssertUnmarkedHqs(void)\n{\n    HQ hq;\n\n    for (hq = _hqFirst; hq != hqNil; hq = _QhqhFromHq(hq)->hqNext)\n    {\n        AssertHq(hq);\n        if (_QhqhFromHq(hq)->cactRef == 0)\n        {\n            HQH hqh;\n            long cb;\n            achar stz[kcbMaxStz];\n\n            cb = CbOfHq(hq);\n            hqh = *_QhqhFromHq(hq);\n            FFormatStzSz(stz, \"Lost hq of size %d allocated at line %d of file '%z'\", cb, hqh.lwLine, hqh.pszsFile);\n            Bug(PszStz(stz));\n        }\n    }\n}\n\n/***************************************************************************\n    Clears all reference counts.\n***************************************************************************/\nvoid _UnmarkAllHqs(void)\n{\n    HQ hq;\n\n    for (hq = _hqFirst; hq != hqNil; hq = _QhqhFromHq(hq)->hqNext)\n    {\n        AssertHq(hq);\n        _QhqhFromHq(hq)->cactRef = 0;\n    }\n}\n\n/***************************************************************************\n    Assert on obviously bogus pointers.  Assert that [pv, pv+cb) resides\n    in either the app zone or the system zone.  If cb is zero, pv can\n    be anything (including nil).\n***************************************************************************/\nvoid AssertPvCb(void *pv, long cb)\n{\n    static long _lwStrip;\n    static void *_pvMinZone, *_pvMinSysZone;\n    void *pvLimZone, *pvLimSysZone;\n    void *pvClean, *pvLim;\n\n    if (vcactSuspendCheckPointers != 0 || cb == 0)\n        return;\n\n    if (_pvMinZone == 0)\n    {\n        _pvMinZone = ApplicZone();\n        _pvMinSysZone = SystemZone();\n        _lwStrip = (long)StripAddress((void *)-1L);\n    }\n    pvLimZone = (void *)LMGetCurrentA5();\n    pvLimSysZone = (void *)(*(long *)_pvMinSysZone & _lwStrip);\n\n    pvClean = (void *)((long)pv & _lwStrip);\n    pvLim = PvAddBv(pvClean, cb);\n    if (pvClean < _pvMinZone || pvLim > pvLimZone)\n    {\n        AssertVar(pvClean >= _pvMinSysZone && pvLim <= pvLimSysZone, \"(pv,cb) not in app or sys zone\", &pv);\n    }\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/memwin.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Windows memory management.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\nstruct HQH\n{\n    long cb;       // size of client area\n    long cactLock; // lock count\n#ifdef DEBUG\n    long lwMagic; // for detecting memory trashing\n#endif            // DEBUG\n};\n\n#ifdef DEBUG\nlong vcactSuspendCheckPointers = 0;\n#endif // DEBUG\n\n/***************************************************************************\n    Allocates a new moveable block.\n***************************************************************************/\n#ifdef DEBUG\nbool FAllocHqDebug(HQ *phq, long cb, ulong grfmem, long mpr, PSZS pszsFile, long lwLine)\n#else  //! DEBUG\nbool FAllocHq(HQ *phq, long cb, ulong grfmem, long mpr)\n#endif //! DEBUG\n{\n    AssertVarMem(phq);\n    AssertIn(cb, 0, kcbMax);\n    HQH *phqh;\n\n    if (!FAllocPvDebug((void **)&phqh, cb + size(HQH), grfmem, mpr, pszsFile, lwLine, &vdmglob.dmaglHq))\n    {\n        PushErc(ercOomHq);\n        *phq = hqNil;\n    }\n    else\n    {\n        phqh->cb = cb;\n        phqh->cactLock = 0;\n        Debug(phqh->lwMagic = klwMagicMem;) *phq = (HQ)(phqh + 1);\n        AssertHq(*phq);\n    }\n\n    return pvNil != *phq;\n}\n\n/***************************************************************************\n    Resizes the given hq.  *phq may change.  If fmemClear, clears any\n    newly added space.\n***************************************************************************/\nbool FResizePhq(HQ *phq, long cb, ulong grfmem, long mpr)\n{\n    AssertVarMem(phq);\n    AssertHq(*phq);\n    AssertIn(cb, 0, kcbMax);\n    bool fRet = fFalse;\n    HQH *phqh = (HQH *)PvSubBv(*phq, size(HQH));\n\n    if (phqh->cactLock > 0)\n    {\n        Bug(\"Resizing locked HQ\");\n        PushErc(ercOomHq);\n    }\n    else if (!_FResizePpvDebug((void **)&phqh, cb + size(HQH), phqh->cb + size(HQH), grfmem, mpr, &vdmglob.dmaglHq))\n    {\n        PushErc(ercOomHq);\n        AssertHq(*phq);\n    }\n    else\n    {\n        phqh->cb = cb;\n        *phq = (HQ)(phqh + 1);\n        AssertHq(*phq);\n        fRet = fTrue;\n    }\n\n    return fRet;\n}\n\n/***************************************************************************\n    If hq is not nil, frees it.\n***************************************************************************/\nvoid FreePhq(HQ *phq)\n{\n    AssertVarMem(phq);\n\n    if (*phq == hqNil)\n        return;\n\n    AssertHq(*phq);\n    HQH *phqh = (HQH *)PvSubBv(*phq, size(HQH));\n    *phq = hqNil;\n    Assert(phqh->cactLock == 0, \"Freeing locked HQ\");\n\n    FreePpvDebug((void **)&phqh, &vdmglob.dmaglHq);\n}\n\n/***************************************************************************\n    Create a new HQ the same size as hqSrc and copy hqSrc into it.\n***************************************************************************/\nbool FCopyHq(HQ hqSrc, HQ *phqDst, long mpr)\n{\n    AssertHq(hqSrc);\n    AssertVarMem(phqDst);\n    long cb;\n\n    if (!FAllocHq(phqDst, cb = CbOfHq(hqSrc), fmemNil, mpr))\n        return fFalse;\n    CopyPb(QvFromHq(hqSrc), QvFromHq(*phqDst), cb);\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the size of the hq (the client area of the block).\n***************************************************************************/\nlong CbOfHq(HQ hq)\n{\n    AssertHq(hq);\n    HQH *phqh = (HQH *)PvSubBv(hq, size(HQH));\n    return phqh->cb;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Returns a volatile pointer from an hq.\n***************************************************************************/\nvoid *QvFromHq(HQ hq)\n{\n    AssertHq(hq);\n    return (void *)hq;\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Lock the hq and return a pointer to the data.\n***************************************************************************/\nvoid *PvLockHq(HQ hq)\n{\n    AssertHq(hq);\n    HQH *phqh = (HQH *)PvSubBv(hq, size(HQH));\n    phqh->cactLock++;\n    Assert(phqh->cactLock > 0, \"overflow in cactLock\");\n    return (void *)hq;\n}\n\n/***************************************************************************\n    Unlock the hq.  Asserts and does nothing if the lock count is zero.\n***************************************************************************/\nvoid UnlockHq(HQ hq)\n{\n    AssertHq(hq);\n    HQH *phqh = (HQH *)PvSubBv(hq, size(HQH));\n    Assert(phqh->cactLock > 0, \"hq not locked\");\n    if (phqh->cactLock > 0)\n        --phqh->cactLock;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert that a given hq is valid.\n***************************************************************************/\nvoid AssertHq(HQ hq)\n{\n    // make sure hq isn't nil\n    if (hq == hqNil)\n    {\n        Bug(\"hq is nil\");\n        return;\n    }\n\n    // verify the HQH\n    HQH *phqh = (HQH *)PvSubBv(hq, size(HQH));\n    if (phqh->lwMagic != klwMagicMem)\n    {\n        BugVar(\"beginning of hq block is trashed\", phqh);\n        return;\n    }\n    AssertIn(phqh->cactLock, 0, kcbMax);\n    AssertPvAlloced(phqh, phqh->cb + size(HQH));\n}\n\n/***************************************************************************\n    Increment the ref count on an hq.\n***************************************************************************/\nvoid MarkHq(HQ hq)\n{\n    if (hqNil != hq)\n    {\n        AssertHq(hq);\n        MarkPv(PvSubBv(hq, size(HQH)));\n    }\n}\n\n/***************************************************************************\n    Make sure we can access a pointer's memory.  If cb is 0, pv can be\n    anything (including nil).\n***************************************************************************/\nvoid AssertPvCb(void *pv, long cb)\n{\n    if (vcactSuspendCheckPointers == 0 && cb != 0)\n    {\n        // This assert has been disabled because AssertPvCb is called on pointers to\n        // globals which were previously read/write but are now read-only.\n\n        // AssertVar(!IsBadWritePtr(pv, cb), \"no write access to ptr\", &pv);\n        //  I (ShonK) am assuming that write access implies read access for\n        //  memory, so it would just be a waste of time to call this.\n        //  AssertVar(!IsBadReadPtr(pv, cb), \"no read access to ptr\", &pv);\n    }\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/menu.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Menu bar management.\n\n***************************************************************************/\n#ifndef MENU_H\n#define MENU_H\n\n// Menu Bar class\ntypedef class MUB *PMUB;\n#define MUB_PAR BASE\n#define kclsMUB 'MUB'\nclass MUB : public MUB_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n\n  private:\n#ifdef MAC\n    // System Menu\n    typedef MenuInfo SMU;\n\n    // System Menu Bar\n    struct SMB\n    {\n        ushort cmid;\n        ushort rgmid[1];\n    };\n\n    // Menu Item\n    struct MNI\n    {\n        long cid;\n        long lw0;\n    };\n\n    // Menu\n    struct MNU\n    {\n        long mid;\n        SMU **hnsmu;\n        PGL pglmni;\n    };\n\n    // menu list\n    struct MLST\n    {\n        long imnu;\n        long imniBase;\n        long cmni;\n        long cid;\n        bool fSeparator;\n    };\n\n    HN _hnmbar;\n    PGL _pglmnu;\n    PGL _pglmlst; // menu lists\n\n    bool _FInsertMni(long imnu, long imni, long cid, long lw0, PSTN pstn);\n    void _DeleteMni(long imnu, long imni);\n    bool _FFindMlst(long imnu, long imni, MLST *pmlst = pvNil, long *pimlst = pvNil);\n    bool _FGetCmdFromCode(long lwCode, CMD *pcmd);\n    void _Free(void);\n    bool _FFetchRes(ulong ridMenuBar);\n#endif // MAC\n\n#ifdef WIN\n    // menu list\n    struct MLST\n    {\n        HMENU hmenu;\n        long imniBase;\n        long wcidList;\n        long cid;\n        bool fSeparator;\n        PGL pgllw;\n    };\n\n    HMENU _hmenu; // the menu bar\n    long _cmnu;   // number of menus on the menu bar\n    PGL _pglmlst; // menu lists\n\n    bool _FInitLists(void);\n    bool _FFindMlst(long wcid, MLST *pmlst, long *pimlst = pvNil);\n    bool _FGetCmdForWcid(long wcid, PCMD pcmd);\n#endif // WIN\n\n  protected:\n    MUB(void)\n    {\n    }\n\n  public:\n    ~MUB(void);\n\n    static PMUB PmubNew(ulong ridMenuBar);\n\n    virtual void Set(void);\n    virtual void Clean(void);\n\n#ifdef MAC\n    virtual bool FDoClick(EVT *pevt);\n    virtual bool FDoKey(EVT *pevt);\n#endif // MAC\n#ifdef WIN\n    virtual void EnqueueWcid(long wcid);\n#endif // WIN\n\n    virtual bool FAddListCid(long cid, long lw0, PSTN pstn);\n    virtual bool FRemoveListCid(long cid, long lw0, PSTN pstn = pvNil);\n    virtual bool FChangeListCid(long cid, long lwOld, PSTN pstnOld, long lwNew, PSTN pstnNew);\n    virtual bool FRemoveAllListCid(long cid);\n};\n\nextern PMUB vpmubCur;\n\n#endif //! MENU_H\n"
  },
  {
    "path": "kauai/src/menumac.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Mac menu bar management.\n\n    REVIEW shonk: this is broken! Menu item names should be stored as STNs\n    in the GG, except for DA names, which should be raw schar's (since\n    they can have zeros in them).\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nconst achar kchCid = '#';\nconst achar kchList = '_';\nconst achar kchFontList = '$';\n\nPMUB vpmubCur;\nRTCLASS(MUB)\n\n/***************************************************************************\n    Destructor - make sure vpmubCur is not this mub.\n***************************************************************************/\nMUB::~MUB(void)\n{\n    // REVIEW shonk: free the _hnmbar\n    if (vpmubCur == this)\n        vpmubCur = pvNil;\n    _Free();\n}\n\n/***************************************************************************\n    Static method to load and set a new menu bar.\n***************************************************************************/\nPMUB MUB::PmubNew(ulong ridMenuBar)\n{\n    PMUB pmub;\n\n    if ((pmub = NewObj MUB) == pvNil)\n        return pvNil;\n\n    if (!pmub->_FFetchRes(ridMenuBar))\n    {\n        ReleasePpo(&pmub);\n        return pvNil;\n    }\n    AssertPo(pmub, 0);\n    return pmub;\n}\n\n/***************************************************************************\n    Frees all mem associated with the menu bar.\n***************************************************************************/\nvoid MUB::_Free(void)\n{\n    long imnu;\n    MNU mnu;\n\n    ReleasePpo(&_pglmlst);\n    if (_pglmnu == pvNil)\n        return;\n    for (imnu = _pglmnu->IvMac(); imnu-- != 0;)\n    {\n        _pglmnu->Get(imnu, &mnu);\n        ReleasePpo(&mnu.pglmni);\n    }\n    ReleasePpo(&_pglmnu);\n}\n\n/***************************************************************************\n    Loads the menu bar with the given resource id and makes this MUB the\n    current one.  Can only be called once per mub.\n***************************************************************************/\nbool MUB::_FFetchRes(ulong ridMenuBar)\n{\n    SMB **hnsmb;\n    MNU mnu;\n    long cmnu, imnu;\n\n    // get the menu list and record the menu id's\n    if ((hnsmb = (SMB **)GetResource('MBAR', (ushort)ridMenuBar)) == hNil)\n        return fFalse;\n\n    cmnu = (*hnsmb)->cmid;\n    if ((_pglmnu = GL::PglNew(size(MNU), cmnu)) == pvNil)\n        return fFalse;\n\n    mnu.hnsmu = hNil;\n    mnu.pglmni = pvNil;\n    for (imnu = 0; imnu < cmnu; imnu++)\n    {\n        mnu.mid = (*hnsmb)->rgmid[imnu];\n        AssertDo(_pglmnu->FInsert(imnu, &mnu), \"assured insert failed\");\n    }\n    ReleaseResource((HN)hnsmb);\n\n    // get the mbar and set it\n    if ((_hnmbar = GetNewMBar((ushort)ridMenuBar)) == hNil)\n        goto LFail;\n    SetMenuBar(_hnmbar);\n\n    for (imnu = 0; imnu < cmnu; imnu++)\n    {\n        long cmni, imni;\n        MNI mni;\n        long rtg;\n\n        _pglmnu->Get(imnu, &mnu);\n        if (hNil == (mnu.hnsmu = GetMHandle((ushort)mnu.mid)))\n            goto LFail;\n        cmni = CountMItems(mnu.hnsmu);\n        if ((mnu.pglmni = GL::PglNew(size(MNI), cmni)) == pvNil)\n            goto LFail;\n        _pglmnu->Put(imnu, &mnu);\n\n        for (imni = 0; imni < cmni; imni++)\n        {\n            achar stName[kcbMaxSt];\n            achar stz[kcbMaxStz];\n            achar *pch, *pchLim;\n            long cch;\n            achar chList;\n            MLST mlst;\n            long onn;\n\n            // This loop looks for kchCid and kchList in the menu name.\n            // Following a kchCid, it extracts the number (in ascii).\n            // Following a kchList, an optional resource type (rtg)\n            // is extracted.\n            rtg = 0;\n            mni.cid = cidNil;\n            mni.lw0 = 0;\n            GetItem(mnu.hnsmu, imni + 1, (byte *)stName);\n            pchLim = pvNil;\n            chList = chNil;\n            for (cch = CchSt(stName), pch = PrgchSt(stName); cch--; pch++)\n            {\n                if (pchLim != pvNil)\n                {\n                    AssertIn(*pch, '0', '9' + 1);\n                    mni.cid = mni.cid * 10 + *pch - '0';\n                }\n                else if (*pch == kchCid)\n                    pchLim = pch;\n                else if ((*pch == kchList || *pch == kchFontList) && pch == PrgchSt(stName))\n                    chList = *pch;\n                else if (kchList == chList)\n                    rtg = (rtg << 8) | *pch;\n            }\n\n            switch (chList)\n            {\n            default:\n                Assert(chList == chNil, \"unknown list type\");\n                // not a list\n                if (pchLim != pvNil)\n                {\n                    SetStCch(stName, pchLim - stName - 1);\n                    if (CchSt(stName) == 0)\n                    {\n                        SetStCch(stName, 1);\n                        stName[1] = ' ';\n                    }\n                    SetItem(mnu.hnsmu, imni + 1, (byte *)stName);\n                }\n                if (!mnu.pglmni->FInsert(imni, &mni))\n                    goto LFail;\n                break;\n\n            case kchFontList:\n                // insert all the fonts\n                mlst.fSeparator = (0 < imni);\n                mlst.cid = mni.cid;\n                mlst.imnu = imnu;\n                mlst.cmni = vntl.OnnMac();\n                if (!mlst.fSeparator)\n                {\n                    DelMenuItem(mnu.hnsmu, imni + 1);\n                    imni--;\n                    cmni--;\n                }\n                else\n                {\n                    SetItem(mnu.hnsmu, imni + 1, \"\\p-\");\n                    DisableItem(mnu.hnsmu, imni + 1);\n                    mni.cid = cidNil;\n                    if (!mnu.pglmni->FInsert(imni, &mni))\n                        goto LFail;\n                }\n                mlst.imniBase = imni + 1;\n\n                for (onn = 0; onn < mlst.cmni; onn++)\n                {\n                    vntl.GetStz(onn, stz);\n                    if (!_FInsertMni(imnu, ++imni, mlst.cid, 0, stz))\n                        goto LFail;\n                    cmni++;\n                }\n                goto LInsertMlst;\n\n            case kchList:\n                if (imni != cmni - 1)\n                {\n                    Assert(rtg == 0, \"a resource list can only be the last item in a menu\");\n                    rtg = 0;\n                }\n                mlst.fSeparator = 0 != rtg && 0 < imni;\n                mlst.cid = mni.cid;\n                mlst.imnu = imnu;\n                mlst.cmni = 0;\n                if (!mlst.fSeparator)\n                {\n                    DelMenuItem(mnu.hnsmu, imni + 1);\n                    imni--;\n                    cmni--;\n                }\n                else\n                {\n                    SetItem(mnu.hnsmu, imni + 1, \"\\p-\");\n                    DisableItem(mnu.hnsmu, imni + 1);\n                    mni.cid = cidNil;\n                    if (!mnu.pglmni->FInsert(imni, &mni))\n                        goto LFail;\n                }\n                mlst.imniBase = imni + 1;\n                if (0 != rtg)\n                {\n                    AddResMenu(mnu.hnsmu, rtg);\n                    mlst.cmni = cvNil;\n                }\n\n            LInsertMlst:\n                if (pvNil == _pglmlst && pvNil == (_pglmlst = GL::PglNew(size(MLST), 1)) || !_pglmlst->FPush(&mlst))\n                {\n                    goto LFail;\n                }\n                break;\n            }\n        }\n    }\n    DrawMenuBar();\n    vpmubCur = this;\n    return fTrue;\n\nLFail:\n    _Free();\n    if (pvNil != vpmubCur)\n        SetMenuBar(vpmubCur->_hnmbar);\n    return fFalse;\n}\n\n/***************************************************************************\n    Make this the current menu bar.\n***************************************************************************/\nvoid MUB::Set(void)\n{\n    AssertThis(0);\n    SetMenuBar(_hnmbar);\n    DrawMenuBar();\n    vpmubCur = this;\n}\n\n/***************************************************************************\n    Handle a mouse down event in the menu bar.\n***************************************************************************/\nbool MUB::FDoClick(EVT *pevt)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n    long lwCode;\n    CMD cmd;\n    bool fRet = fFalse;\n\n    Clean();\n    lwCode = MenuSelect(pevt->where);\n    if (SwHigh(lwCode) != 0 && _FGetCmdFromCode(lwCode, &cmd))\n    {\n        vpcex->EnqueueCmd(&cmd);\n        fRet = fTrue;\n    }\n    HiliteMenu(0);\n    return fRet;\n}\n\n/***************************************************************************\n    Handle a menu key event.\n***************************************************************************/\nbool MUB::FDoKey(EVT *pevt)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n    long lwCode;\n    CMD cmd;\n    bool fRet = fFalse;\n\n    Clean();\n    lwCode = MenuKey(pevt->message & charCodeMask);\n    if (SwHigh(lwCode) != 0 && _FGetCmdFromCode(lwCode, &cmd))\n    {\n        vpcex->EnqueueCmd(&cmd);\n        fRet = fTrue;\n    }\n    HiliteMenu(0);\n    return fRet;\n}\n\n/***************************************************************************\n    Make sure the menu's are clean - ie, items are enabled/disabled/marked\n    correctly.  Called immediately before dropping the menus.\n***************************************************************************/\nvoid MUB::Clean(void)\n{\n    AssertThis(0);\n    long imnu, imni;\n    ulong grfeds;\n    MNU mnu;\n    MNI mni;\n    CMD cmd;\n    achar st[kcbMaxSt];\n    long cch;\n\n    for (imnu = _pglmnu->IvMac(); imnu-- > 0;)\n    {\n        _pglmnu->Get(imnu, &mnu);\n        if ((imni = mnu.pglmni->IvMac()) == 0)\n            continue;\n\n        ClearPb(&cmd, size(cmd));\n        while (imni-- > 0)\n        {\n            mnu.pglmni->Get(imni, &mni);\n            if (mni.cid == cidNil)\n                continue;\n\n            cmd.cid = mni.cid;\n            cmd.rglw[0] = mni.lw0;\n\n            if (_FFindMlst(imnu, imni))\n            {\n                // need the item name in a GG\n                GetItem(mnu.hnsmu, imni + 1, (byte *)st);\n                cch = (long)*(byte *)st;\n                if ((cmd.pgg = GG::PggNew(0, 1, cch)) != pvNil)\n                    AssertDo(cmd.pgg->FInsert(0, cch, st + 1), 0);\n            }\n            grfeds = vpcex->GrfedsForCmd(&cmd);\n            ReleasePpo(&cmd.pgg);\n\n            if (grfeds & fedsEnable)\n                EnableItem(mnu.hnsmu, imni + 1);\n            else if (grfeds & fedsDisable)\n                DisableItem(mnu.hnsmu, imni + 1);\n\n            if (grfeds & kgrfedsMark)\n            {\n                SetItemMark(mnu.hnsmu, imni + 1,\n                            (grfeds & fedsCheck)    ? checkMark\n                            : (grfeds & fedsBullet) ? diamondMark\n                                                    : noMark);\n            }\n        }\n    }\n}\n\n/***************************************************************************\n    See if the given item is in a list.\n***************************************************************************/\nbool MUB::_FFindMlst(long imnu, long imni, MLST *pmlst, long *pimlst)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pmlst);\n    AssertNilOrVarMem(pimlst);\n    long imlst;\n    MLST mlst;\n\n    if (pvNil == _pglmlst)\n        return fFalse;\n\n    for (imlst = _pglmlst->IvMac(); imlst-- > 0;)\n    {\n        _pglmlst->Get(imlst, &mlst);\n        if (mlst.imnu == imnu && imni >= mlst.imniBase && (mlst.cmni == cvNil || imni < mlst.imniBase + mlst.cmni))\n        {\n            if (pvNil != pmlst)\n                *pmlst = mlst;\n            if (pvNil != pimlst)\n                *pimlst = imlst;\n            return fTrue;\n        }\n    }\n    TrashVar(pmlst);\n    TrashVar(pimlst);\n    return fFalse;\n}\n\n/***************************************************************************\n    Get a command struct for the command from the Mac menu item code.\n***************************************************************************/\nbool MUB::_FGetCmdFromCode(long lwCode, CMD *pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    long mid = SwHigh(lwCode);\n    long imni = SwLow(lwCode);\n    long cmni;\n    long imnu, cmnu;\n    MNU mnu;\n    MNI mni;\n    achar st[kcbMaxSt];\n    long cch;\n    bool fNeedName;\n    MLST mlst;\n\n    // the code is one-based\n    if (imni-- == 0)\n        return fFalse;\n\n    for (imnu = 0, cmnu = _pglmnu->IvMac();; imnu++)\n    {\n        if (imnu >= cmnu)\n            return fFalse;\n        _pglmnu->Get(imnu, &mnu);\n        if (mnu.mid == mid)\n            break;\n    }\n    cmni = mnu.pglmni->IvMac();\n\n    ClearPb(pcmd, size(*pcmd));\n    fNeedName = _FFindMlst(imnu, imni, &mlst);\n    if (imni < cmni)\n    {\n        mnu.pglmni->Get(imni, &mni);\n        if (mni.cid == cidNil)\n            return fFalse;\n        Assert(!fNeedName || mni.cid == mlst.cid, \"bad list item\");\n        pcmd->cid = mni.cid;\n        pcmd->rglw[0] = mni.lw0;\n    }\n    else if (!fNeedName)\n        return fFalse;\n    else\n        pcmd->cid = mlst.cid;\n\n    if (fNeedName)\n    {\n        // need the item name in a GG\n        GetItem(mnu.hnsmu, imni + 1, (byte *)st);\n        cch = (long)*(byte *)st;\n        if (pvNil == (pcmd->pgg = GG::PggNew(0, 1, cch)))\n            return fFalse;\n        AssertDo(pcmd->pgg->FInsert(0, cch, st + 1), 0);\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Adds an item identified by the given list cid, long parameter\n    and string.\n***************************************************************************/\nbool MUB::FAddListCid(long cid, long lw0, PSTZ pstz)\n{\n    AssertThis(0);\n    AssertStz(pstz);\n    long imlst;\n    MLST mlst;\n    long imnuPrev;\n    long dimni;\n    bool fSeparator;\n    bool fRet = fTrue;\n\n    if (pvNil == _pglmlst)\n        return fTrue;\n\n    imnuPrev = ivNil;\n    dimni = 0;\n    for (imlst = 0; imlst < _pglmlst->IvMac(); imlst++)\n    {\n        _pglmlst->Get(imlst, &mlst);\n        if (mlst.imnu == imnuPrev)\n        {\n            mlst.imniBase += dimni;\n            _pglmlst->Put(imlst, &mlst);\n        }\n        else\n        {\n            imnuPrev = mlst.imnu;\n            dimni = 0;\n        }\n        if (cid != mlst.cid || mlst.cmni == cvNil)\n            goto LAdjustSeparator;\n\n        if (!_FInsertMni(mlst.imnu, mlst.imniBase + mlst.cmni, cid, lw0, pstz))\n        {\n            fRet = fFalse;\n            goto LAdjustSeparator;\n        }\n        mlst.cmni++;\n        _pglmlst->Put(imlst, &mlst);\n        dimni++;\n\n    LAdjustSeparator:\n        fSeparator = mlst.imniBase > FPure(mlst.fSeparator) && (mlst.cmni > 0 || mlst.cmni == cvNil);\n        if (fSeparator && !mlst.fSeparator)\n        {\n            // add a separator\n            if (!_FInsertMni(mlst.imnu, mlst.imniBase, cidNil, 0,\n                             \"\\x2\"\n                             \"(-\"))\n                fRet = fFalse;\n            else\n            {\n                mlst.imniBase++;\n                mlst.fSeparator = fTrue;\n                _pglmlst->Put(imlst, &mlst);\n                dimni++;\n            }\n        }\n        else if (!fSeparator && mlst.fSeparator)\n        {\n            // delete a separator\n            _DeleteMni(mlst.imnu, --mlst.imniBase);\n            mlst.fSeparator = fFalse;\n            _pglmlst->Put(imlst, &mlst);\n            dimni--;\n        }\n    }\n\n    return fRet;\n}\n\n/***************************************************************************\n    Insert a new menu item.\n***************************************************************************/\nbool MUB::_FInsertMni(long imnu, long imni, long cid, long lw0, PSTZ pstz)\n{\n    AssertThis(0);\n    AssertIn(imnu, 0, _pglmnu->IvMac());\n    AssertStz(pstz);\n    MNU mnu;\n    MNI mni;\n    long cmni;\n\n    _pglmnu->Get(imnu, &mnu);\n    AssertPo(mnu.pglmni, 0);\n    AssertIn(imni, 0, mnu.pglmni->IvMac() + 1);\n    mni.cid = cid;\n    mni.lw0 = lw0;\n    if (!mnu.pglmni->FInsert(imni, &mni))\n        return fFalse;\n    cmni = CountMItems(mnu.hnsmu);\n    InsMenuItem(mnu.hnsmu, (byte *)pstz, (short)imni);\n    if (CountMItems(mnu.hnsmu) != cmni + 1)\n    {\n        mnu.pglmni->Delete(imni);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Delete a menu item.\n***************************************************************************/\nvoid MUB::_DeleteMni(long imnu, long imni)\n{\n    AssertThis(0);\n    AssertIn(imnu, 0, _pglmnu->IvMac());\n    MNU mnu;\n\n    _pglmnu->Get(imnu, &mnu);\n    AssertPo(mnu.pglmni, 0);\n    AssertIn(imni, 0, mnu.pglmni->IvMac());\n    mnu.pglmni->Delete(imni);\n    DelMenuItem(mnu.hnsmu, imni + 1);\n}\n\n/***************************************************************************\n    Removes all items identified by the given list cid, and long parameter\n    or string.  If pstz is non-nil, it is used to find the item.\n    If pstz is nil, lw0 is used to identify the item.\n***************************************************************************/\nbool MUB::FRemoveListCid(long cid, long lw0, PSTZ pstz)\n{\n    AssertThis(0);\n    AssertNilOrStz(pstz);\n    long imlst;\n    MLST mlst;\n    MNU mnu;\n    MNI mni;\n    achar st[kcbMaxSt];\n    long imnuPrev;\n    long dimni, imni;\n    bool fSeparator;\n    bool fRet = fTrue;\n\n    if (pvNil == _pglmlst)\n        return fTrue;\n\n    imnuPrev = ivNil;\n    dimni = 0;\n    for (imlst = 0; imlst < _pglmlst->IvMac(); imlst++)\n    {\n        _pglmlst->Get(imlst, &mlst);\n        if (mlst.imnu == imnuPrev)\n        {\n            mlst.imniBase += dimni;\n            Assert(mlst.imniBase >= FPure(mlst.fSeparator), \"bad imniBase\");\n            _pglmlst->Put(imlst, &mlst);\n        }\n        else\n        {\n            imnuPrev = mlst.imnu;\n            dimni = 0;\n            _pglmnu->Get(mlst.imnu, &mnu);\n        }\n        if (cid != mlst.cid || mlst.cmni <= 0)\n            goto LAdjustSeparator;\n\n        for (imni = mlst.imniBase; imni < mlst.imniBase + mlst.cmni; imni++)\n        {\n            if (pvNil == pstz)\n            {\n                mnu.pglmni->Get(imni, &mni);\n                Assert(mni.cid == mlst.cid, \"bad mni\");\n                if (mni.lw0 != lw0)\n                    continue;\n            }\n            else\n            {\n                GetItem(mnu.hnsmu, imni + 1, (byte *)st);\n                if (!FEqualSt(st, pstz))\n                    continue;\n            }\n            _DeleteMni(mlst.imnu, imni--);\n            mlst.cmni--;\n            _pglmlst->Put(imlst, &mlst);\n            dimni--;\n        }\n\n    LAdjustSeparator:\n        fSeparator = mlst.imniBase > FPure(mlst.fSeparator) && (mlst.cmni > 0 || mlst.cmni == cvNil);\n        if (fSeparator && !mlst.fSeparator)\n        {\n            // add a separator\n            if (!_FInsertMni(mlst.imnu, mlst.imniBase, cidNil, 0,\n                             \"\\x2\"\n                             \"(-\"))\n                fRet = fFalse;\n            else\n            {\n                mlst.imniBase++;\n                mlst.fSeparator = fTrue;\n                _pglmlst->Put(imlst, &mlst);\n                dimni++;\n            }\n        }\n        else if (!fSeparator && mlst.fSeparator)\n        {\n            // delete a separator\n            _DeleteMni(mlst.imnu, --mlst.imniBase);\n            mlst.fSeparator = fFalse;\n            _pglmlst->Put(imlst, &mlst);\n            dimni--;\n        }\n    }\n\n    return fRet;\n}\n\n/***************************************************************************\n    Removes all items identified by the given list cid.\n***************************************************************************/\nbool MUB::FRemoveAllListCid(long cid)\n{\n    AssertThis(0);\n    long imlst;\n    MLST mlst;\n    long imnuPrev;\n    long dimni;\n    bool fSeparator;\n    bool fRet = fTrue;\n\n    if (pvNil == _pglmlst)\n        return fTrue;\n\n    imnuPrev = ivNil;\n    dimni = 0;\n    for (imlst = 0; imlst < _pglmlst->IvMac(); imlst++)\n    {\n        _pglmlst->Get(imlst, &mlst);\n        if (mlst.imnu == imnuPrev)\n        {\n            mlst.imniBase += dimni;\n            Assert(mlst.imniBase >= FPure(mlst.fSeparator), \"bad imniBase\");\n            _pglmlst->Put(imlst, &mlst);\n        }\n        else\n        {\n            imnuPrev = mlst.imnu;\n            dimni = 0;\n        }\n        if (cid == mlst.cid)\n        {\n            while (mlst.cmni > 0)\n            {\n                _DeleteMni(mlst.imnu, mlst.imniBase);\n                mlst.cmni--;\n                dimni--;\n            }\n        }\n\n        fSeparator = mlst.imniBase > FPure(mlst.fSeparator) && (mlst.cmni > 0 || mlst.cmni == cvNil);\n        if (fSeparator && !mlst.fSeparator)\n        {\n            // add a separator\n            if (!_FInsertMni(mlst.imnu, mlst.imniBase, cidNil, 0,\n                             \"\\x2\"\n                             \"(-\"))\n                fRet = fFalse;\n            else\n            {\n                mlst.imniBase++;\n                mlst.fSeparator = fTrue;\n                _pglmlst->Put(imlst, &mlst);\n                dimni++;\n            }\n        }\n        else if (!fSeparator && mlst.fSeparator)\n        {\n            // delete a separator\n            _DeleteMni(mlst.imnu, --mlst.imniBase);\n            mlst.fSeparator = fFalse;\n            _pglmlst->Put(imlst, &mlst);\n            dimni--;\n        }\n    }\n\n    return fRet;\n}\n\n/***************************************************************************\n    Changes the long parameter and the menu text associated with a menu\n    list item.  If pstzOld is non-nil, it is used to find the item.\n    If pstzOld is nil, lwOld is used to identify the item.  In either case\n    lwNew is set as the new long parameter and if pstzNew is non-nil,\n    it is used as the new menu item text.\n***************************************************************************/\nbool MUB::FChangeListCid(long cid, long lwOld, PSTZ pstzOld, long lwNew, PSTZ pstzNew)\n{\n    AssertThis(0);\n    AssertNilOrStz(pstzOld);\n    AssertNilOrStz(pstzNew);\n    long imlst;\n    MLST mlst;\n    long imni;\n    MNI mni;\n    MNU mnu;\n    achar st[kcbMaxSt];\n\n    if (pvNil == _pglmlst)\n        return fTrue;\n\n    for (imlst = 0; imlst < _pglmlst->IvMac(); imlst++)\n    {\n        _pglmlst->Get(imlst, &mlst);\n        if (cid != mlst.cid || mlst.cmni <= 0)\n            continue;\n\n        for (imni = mlst.imniBase; imni < mlst.imniBase + mlst.cmni; imni++)\n        {\n            _pglmnu->Get(mlst.imnu, &mnu);\n            if (pvNil == pstzOld)\n            {\n                mnu.pglmni->Get(imni, &mni);\n                if (mni.lw0 != lwOld)\n                    continue;\n            }\n            else\n            {\n                GetItem(mnu.hnsmu, imni + 1, (byte *)st);\n                if (!FEqualSt(st, pstzOld))\n                    continue;\n                mnu.pglmni->Get(imni, &mni);\n            }\n            mni.lw0 = lwNew;\n            mnu.pglmni->Put(imni, &mni);\n            if (pvNil != pstzNew)\n            {\n                // change the string\n                SetItem(mnu.hnsmu, imni + 1, (byte *)pstzNew);\n            }\n        }\n    }\n\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Mark mem used by the menu bar.\n***************************************************************************/\nvoid MUB::MarkMem(void)\n{\n    AssertThis(0);\n    long imnu;\n    MNU mnu;\n\n    MUB_PAR::MarkMem();\n    MarkMemObj(_pglmnu);\n    if (_pglmnu == pvNil || (imnu = _pglmnu->IvMac()) == 0)\n        return;\n\n    while (imnu--)\n    {\n        _pglmnu->Get(imnu, &mnu);\n        MarkMemObj(mnu.pglmni);\n    }\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/menuwin.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Windows menu code.\n    REVIEW shonk: error codes\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nconst achar kchList = '_';\nconst achar kchFontList = '$';\n\nPMUB vpmubCur;\nRTCLASS(MUB)\n\n/***************************************************************************\n    Destructor - make sure vpmubCur is not this mub.\n***************************************************************************/\nMUB::~MUB(void)\n{\n    // REVIEW shonk: free mem and the _hmenu\n    if (vpmubCur == this)\n        vpmubCur = pvNil;\n}\n\n/***************************************************************************\n    Static method to load and set a new menu bar.\n***************************************************************************/\nPMUB MUB::PmubNew(ulong ridMenuBar)\n{\n    PMUB pmub;\n\n    if ((pmub = NewObj MUB) == pvNil)\n        return pvNil;\n    if ((pmub->_hmenu = LoadMenu(vwig.hinst, MIR(ridMenuBar))) == hNil)\n    {\n        ReleasePpo(&pmub);\n        return pvNil;\n    }\n    pmub->_cmnu = GetMenuItemCount(pmub->_hmenu);\n    if (!pmub->_FInitLists())\n    {\n        ReleasePpo(&pmub);\n        return pvNil;\n    }\n\n    pmub->Set();\n    return pmub;\n}\n\n/***************************************************************************\n    Make this the current menu bar.\n***************************************************************************/\nvoid MUB::Set(void)\n{\n    if (vwig.hwndClient != hNil)\n    {\n        Assert(IsWindow(vwig.hwndClient), \"bad client window\");\n        SendMessage(vwig.hwndClient, WM_MDISETMENU, (WPARAM)_hmenu, hNil);\n    }\n    else\n        SetMenu(vwig.hwndApp, _hmenu);\n\n    vpmubCur = this;\n}\n\n/***************************************************************************\n    Make sure the menu's are clean - ie, items are enabled/disabled/marked\n    correctly.  Called immediately before dropping the menus.\n***************************************************************************/\nvoid MUB::Clean(void)\n{\n    long imnu, imni, cmnu;\n    ulong grfeds;\n    HMENU hmenu;\n    long wcid;\n    CMD cmd;\n\n    // adjust for the goofy mdi window's menu\n    cmnu = GetMenuItemCount(_hmenu);\n    Assert(cmnu >= _cmnu, \"somebody took some menus out of the menu bar!\");\n\n    if (cmnu > _cmnu)\n    {\n        imnu = 1;\n        cmnu = _cmnu + 1;\n    }\n    else\n        imnu = 0;\n\n    for (; imnu < cmnu; imnu++)\n    {\n        if ((hmenu = GetSubMenu(_hmenu, imnu)) == hNil)\n            continue;\n\n        for (imni = GetMenuItemCount(hmenu); imni-- != 0;)\n        {\n            if ((wcid = GetMenuItemID(hmenu, imni)) == cidNil)\n                continue;\n\n            if (!_FGetCmdForWcid(wcid, &cmd))\n                grfeds = fedsDisable;\n            else\n            {\n                grfeds = vpcex->GrfedsForCmd(&cmd);\n                ReleasePpo(&cmd.pgg);\n            }\n\n            if (grfeds & fedsEnable)\n                EnableMenuItem(hmenu, imni, MF_BYPOSITION | MF_ENABLED);\n            else if (grfeds & fedsDisable)\n                EnableMenuItem(hmenu, imni, MF_BYPOSITION | MF_GRAYED);\n\n            if (grfeds & kgrfedsMark)\n            {\n                // REVIEW shonk: bullet doesn't work (uses a check mark)\n                CheckMenuItem(hmenu, imni,\n                              (grfeds & (fedsCheck | fedsBullet)) ? MF_BYPOSITION | MF_CHECKED\n                                                                  : MF_BYPOSITION | MF_UNCHECKED);\n            }\n        }\n    }\n}\n\n/***************************************************************************\n    The given wcid is the value Windows handed us in a WM_COMMAND message.\n    Remap it to a real command id and enqueue the result.\n***************************************************************************/\nvoid MUB::EnqueueWcid(long wcid)\n{\n    CMD cmd;\n\n    if (_FGetCmdForWcid(wcid, &cmd))\n        vpcex->EnqueueCmd(&cmd);\n}\n\n/***************************************************************************\n    Adds an item identified by the given list cid, long parameter\n    and string.\n***************************************************************************/\nbool MUB::FAddListCid(long cid, long lw0, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    long imlst, ilw;\n    MLST mlst;\n    HMENU hmenuPrev;\n    long dimni;\n    bool fSeparator;\n    bool fRet = true;\n\n    if (pvNil == _pglmlst)\n        return fTrue;\n\n    hmenuPrev = hNil;\n    dimni = 0;\n    for (imlst = 0; imlst < _pglmlst->IvMac(); imlst++)\n    {\n        _pglmlst->Get(imlst, &mlst);\n        if (mlst.hmenu == hmenuPrev)\n        {\n            mlst.imniBase += dimni;\n            _pglmlst->Put(imlst, &mlst);\n        }\n        else\n        {\n            hmenuPrev = mlst.hmenu;\n            dimni = 0;\n        }\n        if (cid != mlst.cid)\n            goto LAdjustSeparator;\n\n        if (pvNil == mlst.pgllw)\n        {\n            if (pvNil == (mlst.pgllw = GL::PglNew(size(long))))\n            {\n                fRet = fFalse;\n                goto LAdjustSeparator;\n            }\n            _pglmlst->Put(imlst, &mlst);\n            mlst.pgllw->SetMinGrow(10);\n        }\n\n        ilw = mlst.pgllw->IvMac();\n        if (!mlst.pgllw->FPush(&lw0))\n        {\n            fRet = fFalse;\n            goto LAdjustSeparator;\n        }\n        if (!InsertMenu(mlst.hmenu, mlst.imniBase + ilw, MF_BYPOSITION | MF_STRING, mlst.wcidList + ilw, pstn->Psz()))\n        {\n            fRet = fFalse;\n            AssertDo(mlst.pgllw->FPop(), 0);\n            goto LAdjustSeparator;\n        }\n        dimni++;\n\n    LAdjustSeparator:\n        fSeparator = mlst.imniBase > FPure(mlst.fSeparator) && pvNil != mlst.pgllw && mlst.pgllw->IvMac() > 0;\n        if (fSeparator && !mlst.fSeparator)\n        {\n            // add a separator\n            if (!InsertMenu(mlst.hmenu, mlst.imniBase, MF_BYPOSITION | MF_SEPARATOR, cidNil, pvNil))\n            {\n                fRet = false;\n            }\n            else\n            {\n                mlst.imniBase++;\n                mlst.fSeparator = true;\n                _pglmlst->Put(imlst, &mlst);\n                dimni++;\n            }\n        }\n        else if (!fSeparator && mlst.fSeparator)\n        {\n            // delete a separator\n            if (!DeleteMenu(mlst.hmenu, mlst.imniBase - 1, MF_BYPOSITION))\n                fRet = true;\n            else\n            {\n                mlst.imniBase--;\n                mlst.fSeparator = fFalse;\n                _pglmlst->Put(imlst, &mlst);\n                dimni--;\n            }\n        }\n    }\n\n    return fRet;\n}\n\n/***************************************************************************\n    Removes all items identified by the given list cid, and long parameter\n    or string.  If pstn is non-nil, it is used to find the item.\n    If pstn is nil, lw0 is used to identify the item.\n***************************************************************************/\nbool MUB::FRemoveListCid(long cid, long lw0, PSTN pstn)\n{\n    AssertThis(0);\n    AssertNilOrPo(pstn, 0);\n    long imlst, ilw, cch;\n    MLST mlst;\n    SZ sz;\n    HMENU hmenuPrev;\n    long dimni;\n    long lw;\n    bool fSeparator, fSetWcid;\n    bool fRet = fTrue;\n\n    if (pvNil == _pglmlst)\n        return fTrue;\n\n    hmenuPrev = hNil;\n    dimni = 0;\n    for (imlst = 0; imlst < _pglmlst->IvMac(); imlst++)\n    {\n        _pglmlst->Get(imlst, &mlst);\n        if (mlst.hmenu == hmenuPrev)\n        {\n            mlst.imniBase += dimni;\n            Assert(mlst.imniBase >= FPure(mlst.fSeparator), \"bad imniBase\");\n            _pglmlst->Put(imlst, &mlst);\n        }\n        else\n        {\n            hmenuPrev = mlst.hmenu;\n            dimni = 0;\n        }\n        if (cid != mlst.cid || pvNil == mlst.pgllw)\n            goto LAdjustSeparator;\n\n        fSetWcid = fFalse;\n        for (ilw = 0; ilw < mlst.pgllw->IvMac(); ilw++)\n        {\n            if (pvNil == pstn)\n            {\n                mlst.pgllw->Get(ilw, &lw);\n                if (lw != lw0)\n                    goto LSetWcid;\n            }\n            else\n            {\n                cch = GetMenuString(mlst.hmenu, mlst.imniBase + ilw, sz, kcchMaxSz, MF_BYPOSITION);\n                if (!pstn->FEqualRgch(sz, cch))\n                    goto LSetWcid;\n            }\n            if (!DeleteMenu(mlst.hmenu, mlst.imniBase + ilw, MF_BYPOSITION))\n            {\n                fRet = fFalse;\n            LSetWcid:\n                if (fSetWcid)\n                {\n                    cch = GetMenuString(mlst.hmenu, mlst.imniBase + ilw, sz, kcchMaxSz, MF_BYPOSITION);\n                    if (cch == 0 ||\n                        !ModifyMenu(mlst.hmenu, mlst.imniBase + ilw, MF_BYPOSITION, mlst.wcidList + ilw, sz))\n                    {\n                        fRet = fFalse;\n                    }\n                }\n                continue;\n            }\n\n            mlst.pgllw->Delete(ilw--);\n            dimni--;\n            fSetWcid = fTrue;\n        }\n\n    LAdjustSeparator:\n        fSeparator = mlst.imniBase > FPure(mlst.fSeparator) && pvNil != mlst.pgllw && mlst.pgllw->IvMac() > 0;\n        if (fSeparator && !mlst.fSeparator)\n        {\n            // add a separator\n            if (!InsertMenu(mlst.hmenu, mlst.imniBase, MF_BYPOSITION | MF_SEPARATOR, cidNil, pvNil))\n            {\n                fRet = fFalse;\n            }\n            else\n            {\n                mlst.imniBase++;\n                mlst.fSeparator = fTrue;\n                _pglmlst->Put(imlst, &mlst);\n                dimni++;\n            }\n        }\n        else if (!fSeparator && mlst.fSeparator)\n        {\n            // delete a separator\n            if (!DeleteMenu(mlst.hmenu, mlst.imniBase - 1, MF_BYPOSITION))\n                fRet = fFalse;\n            else\n            {\n                mlst.imniBase--;\n                mlst.fSeparator = fFalse;\n                _pglmlst->Put(imlst, &mlst);\n                dimni--;\n            }\n        }\n    }\n\n    return fRet;\n}\n\n/***************************************************************************\n    Removes all items identified by the given list cid.\n***************************************************************************/\nbool MUB::FRemoveAllListCid(long cid)\n{\n    AssertThis(0);\n    long imlst, ilw;\n    MLST mlst;\n    HMENU hmenuPrev;\n    long dimni;\n    bool fSeparator;\n    bool fRet = fTrue;\n\n    if (pvNil == _pglmlst)\n        return fTrue;\n\n    hmenuPrev = hNil;\n    dimni = 0;\n    for (imlst = 0; imlst < _pglmlst->IvMac(); imlst++)\n    {\n        _pglmlst->Get(imlst, &mlst);\n        if (mlst.hmenu == hmenuPrev)\n        {\n            mlst.imniBase += dimni;\n            Assert(mlst.imniBase >= FPure(mlst.fSeparator), \"bad imniBase\");\n            _pglmlst->Put(imlst, &mlst);\n        }\n        else\n        {\n            hmenuPrev = mlst.hmenu;\n            dimni = 0;\n        }\n        if (cid == mlst.cid && pvNil != mlst.pgllw)\n        {\n            for (ilw = 0; ilw < mlst.pgllw->IvMac(); ilw++)\n            {\n                if (!DeleteMenu(mlst.hmenu, mlst.imniBase + ilw, MF_BYPOSITION))\n                {\n                    fRet = fFalse;\n                    continue;\n                }\n                mlst.pgllw->Delete(ilw--);\n                dimni--;\n            }\n        }\n\n        fSeparator = mlst.imniBase > FPure(mlst.fSeparator) && pvNil != mlst.pgllw && mlst.pgllw->IvMac() > 0;\n        if (fSeparator && !mlst.fSeparator)\n        {\n            // add a separator\n            if (!InsertMenu(mlst.hmenu, mlst.imniBase, MF_BYPOSITION | MF_SEPARATOR, cidNil, pvNil))\n            {\n                fRet = fFalse;\n            }\n            else\n            {\n                mlst.imniBase++;\n                mlst.fSeparator = fTrue;\n                _pglmlst->Put(imlst, &mlst);\n                dimni++;\n            }\n        }\n        else if (!fSeparator && mlst.fSeparator)\n        {\n            // delete a separator\n            if (!DeleteMenu(mlst.hmenu, mlst.imniBase - 1, MF_BYPOSITION))\n                fRet = fFalse;\n            else\n            {\n                mlst.imniBase--;\n                mlst.fSeparator = fFalse;\n                _pglmlst->Put(imlst, &mlst);\n                dimni--;\n            }\n        }\n    }\n\n    return fRet;\n}\n\n/***************************************************************************\n    Changes the long parameter and the menu text associated with a menu\n    list item.  If pstnOld is non-nil, it is used to find the item.\n    If pstnOld is nil, lwOld is used to identify the item.  In either case\n    lwNew is set as the new long parameter and if pstnNew is non-nil,\n    it is used as the new menu item text.\n***************************************************************************/\nbool MUB::FChangeListCid(long cid, long lwOld, PSTN pstnOld, long lwNew, PSTN pstnNew)\n{\n    AssertThis(0);\n    AssertNilOrPo(pstnOld, 0);\n    AssertNilOrPo(pstnNew, 0);\n    long imlst, ilw, cch, lw;\n    MLST mlst;\n    SZ sz;\n    bool fRet = fTrue;\n\n    if (pvNil == _pglmlst)\n        return fTrue;\n\n    for (imlst = 0; imlst < _pglmlst->IvMac(); imlst++)\n    {\n        _pglmlst->Get(imlst, &mlst);\n        if (cid != mlst.cid || pvNil == mlst.pgllw)\n            continue;\n\n        for (ilw = 0; ilw < mlst.pgllw->IvMac(); ilw++)\n        {\n            if (pvNil == pstnOld)\n            {\n                mlst.pgllw->Get(ilw, &lw);\n                if (lw != lwOld)\n                    continue;\n            }\n            else\n            {\n                cch = GetMenuString(mlst.hmenu, mlst.imniBase + ilw, sz, kcchMaxSz, MF_BYPOSITION);\n                if (!pstnOld->FEqualRgch(sz, cch))\n                    continue;\n            }\n            if (pvNil != pstnNew)\n            {\n                // change the string\n                fRet = ModifyMenu(mlst.hmenu, mlst.imniBase + ilw, MF_BYPOSITION | MF_STRING, mlst.wcidList + ilw,\n                                  pstnNew->Psz()) &&\n                       fRet;\n            }\n            mlst.pgllw->Put(ilw, &lwNew);\n        }\n    }\n\n    return fRet;\n}\n\n/***************************************************************************\n    Fill in the CMD structure for the given wcid.\n***************************************************************************/\nbool MUB::_FGetCmdForWcid(long wcid, PCMD pcmd)\n{\n    AssertVarMem(pcmd);\n    MLST mlst;\n\n    ClearPb(pcmd, size(*pcmd));\n    if (wcid >= wcidListBase && _FFindMlst(wcid, &mlst))\n    {\n        long lw, cch;\n        SZ sz;\n        STN stn;\n\n        mlst.pgllw->Get(wcid - mlst.wcidList, &lw);\n        cch = GetMenuString(mlst.hmenu, mlst.imniBase + wcid - mlst.wcidList, sz, kcchMaxSz, MF_BYPOSITION);\n        stn = sz;\n        if (cch == 0 || (pcmd->pgg = GG::PggNew(0, 1, stn.CbData())) == pvNil)\n            return fFalse;\n        AssertDo(pcmd->pgg->FInsert(0, stn.CbData(), pvNil), 0);\n        stn.GetData(pcmd->pgg->PvLock(0));\n        pcmd->pgg->Unlock();\n        pcmd->cid = mlst.cid;\n        pcmd->rglw[0] = lw;\n    }\n    else\n        pcmd->cid = wcid;\n    return fTrue;\n}\n\n/***************************************************************************\n    See if the given item is in a list.\n***************************************************************************/\nbool MUB::_FFindMlst(long wcid, MLST *pmlst, long *pimlst)\n{\n    long imlst;\n    MLST mlst;\n\n    if (pvNil == _pglmlst)\n        return fFalse;\n\n    for (imlst = _pglmlst->IvMac(); imlst-- > 0;)\n    {\n        _pglmlst->Get(imlst, &mlst);\n        if (wcid < mlst.wcidList || pvNil == mlst.pgllw)\n            continue;\n        if (wcid < mlst.pgllw->IvMac() + mlst.wcidList)\n        {\n            if (pvNil != pmlst)\n                *pmlst = mlst;\n            if (pvNil != pimlst)\n                *pimlst = imlst;\n            return fTrue;\n        }\n    }\n    TrashVar(pmlst);\n    TrashVar(pimlst);\n    return fFalse;\n}\n\n/***************************************************************************\n    If the menu bar has a font list item or other list item, do the right\n    thing.\n***************************************************************************/\nbool MUB::_FInitLists(void)\n{\n    long imnu, imni, cmni, cmnu;\n    HMENU hmenu;\n    long cid;\n    MLST mlst;\n    SZ sz;\n    STN stn;\n    long onn;\n    long wcidList = wcidListBase;\n\n    cmnu = GetMenuItemCount(_hmenu);\n    Assert(cmnu == _cmnu, \"bad _cmnu\");\n\n    for (imnu = 0; imnu < cmnu; imnu++)\n    {\n        if ((hmenu = GetSubMenu(_hmenu, imnu)) == hNil)\n            continue;\n\n        for (cmni = GetMenuItemCount(hmenu), imni = 0; imni < cmni; imni++)\n        {\n            if ((cid = GetMenuItemID(hmenu, imni)) == cidNil)\n                continue;\n\n            if (1 != GetMenuString(hmenu, imni, sz, kcchMaxSz, MF_BYPOSITION))\n            {\n                continue;\n            }\n            switch (sz[0])\n            {\n            default:\n                break;\n\n            case kchFontList:\n                // insert all the fonts\n                mlst.fSeparator = (0 < imni);\n                if (!mlst.fSeparator)\n                {\n                    if (!DeleteMenu(hmenu, imni, MF_BYPOSITION))\n                        return fFalse;\n                    imni--;\n                    cmni--;\n                }\n                else if (!ModifyMenu(hmenu, imni, MF_BYPOSITION | MF_SEPARATOR, cidNil, pvNil))\n                {\n                    return fFalse;\n                }\n                mlst.imniBase = imni + 1;\n                mlst.hmenu = hmenu;\n                mlst.wcidList = wcidList;\n                wcidList += dwcidList;\n                mlst.cid = cid;\n                if (pvNil == (mlst.pgllw = GL::PglNew(size(long), vntl.OnnMac())))\n                    return fFalse;\n\n                for (onn = 0; onn < vntl.OnnMac(); onn++)\n                {\n                    vntl.GetStn(onn, &stn);\n                    if (!mlst.pgllw->FPush(&onn) ||\n                        !InsertMenu(hmenu, ++imni, MF_BYPOSITION | MF_STRING, mlst.wcidList + onn, stn.Psz()))\n                    {\n                        ReleasePpo(&mlst.pgllw);\n                        return fFalse;\n                    }\n                    cmni++;\n                }\n                goto LInsertMlst;\n\n            case kchList:\n                mlst.hmenu = hmenu;\n                mlst.imniBase = imni;\n                mlst.wcidList = wcidList;\n                wcidList += dwcidList;\n                mlst.cid = cid;\n                mlst.fSeparator = fFalse;\n                mlst.pgllw = pvNil;\n                if (!DeleteMenu(hmenu, imni, MF_BYPOSITION))\n                    return fFalse;\n                imni--;\n                cmni--;\n            LInsertMlst:\n                if (pvNil == _pglmlst && pvNil == (_pglmlst = GL::PglNew(size(MLST), 1)) || !_pglmlst->FPush(&mlst))\n                {\n                    ReleasePpo(&mlst.pgllw);\n                    return fFalse;\n                }\n                break;\n            }\n        }\n    }\n\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Mark mem used by the menu bar.\n***************************************************************************/\nvoid MUB::MarkMem(void)\n{\n    AssertThis(0);\n    long imlst;\n    MLST mlst;\n\n    MUB_PAR::MarkMem();\n    if (pvNil == _pglmlst)\n        return;\n\n    MarkMemObj(_pglmlst);\n    for (imlst = _pglmlst->IvMac(); imlst-- > 0;)\n    {\n        _pglmlst->Get(imlst, &mlst);\n        MarkMemObj(mlst.pgllw);\n    }\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/midi.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Midi stream and midi stream parser classes.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nRTCLASS(MSTP)\nRTCLASS(MIDS)\n\n/***************************************************************************\n    Constructor for a midi stream parser.\n***************************************************************************/\nMSTP::MSTP(void)\n{\n    AssertBaseThis(0);\n    _pmids = pvNil;\n}\n\n/***************************************************************************\n    Destructor for a midi stream parser.\n***************************************************************************/\nMSTP::~MSTP(void)\n{\n    AssertThis(0);\n\n    if (pvNil != _pmids)\n        UnlockHq(_pmids->_hqrgb);\n    ReleasePpo(&_pmids);\n}\n\n/***************************************************************************\n    Initialize this midi stream parser to the given midi stream and use the\n    given time as the start time.\n***************************************************************************/\nvoid MSTP::Init(PMIDS pmids, ulong tsStart, long lwTempo)\n{\n    AssertThis(0);\n    AssertNilOrPo(pmids, 0);\n\n    if (_pmids != pmids)\n    {\n        if (pvNil != _pmids)\n        {\n            UnlockHq(_pmids->_hqrgb);\n            ReleasePpo(&_pmids);\n        }\n        _pmids = pmids;\n        if (pvNil == _pmids)\n            return;\n        _pmids->AddRef();\n\n        _prgb = (byte *)PvLockHq(_pmids->_hqrgb);\n        _pbLim = _prgb + CbOfHq(_pmids->_hqrgb);\n    }\n    else if (pvNil == _pmids)\n        return;\n\n    _pbCur = _prgb;\n    _tsCur = tsStart;\n    _lwTempo = lwTempo;\n    _bStatus = 0;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Get the next midi event. If fAdvance is true, advance to the next event\n    after getting this one.\n***************************************************************************/\nbool MSTP::FGetEvent(PMIDEV pmidev, bool fAdvance)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pmidev);\n\n    byte bT;\n    byte *pbCur;\n    MIDEV midev;\n    long cbT;\n    long ibSend;\n    ulong tsCur;\n\n    ClearPb(&midev, size(midev));\n    midev.lwTempo = _lwTempo;\n    if (pvNil == _pmids)\n        goto LFail;\n\n    tsCur = _tsCur;\n    for (pbCur = _pbCur; midev.cb == 0;)\n    {\n        // read the delta time\n        if (!_FReadVar(&pbCur, (long *)&midev.ts) || pbCur >= _pbLim)\n            goto LFail;\n        tsCur += midev.ts;\n        midev.ts = tsCur;\n\n        if ((bT = *pbCur) & 0x80)\n        {\n            // status byte\n            _bStatus = bT;\n            pbCur++;\n        }\n\n        // NOTE: we never return running status\n        midev.rgbSend[0] = _bStatus;\n        ibSend = 1;\n\n        switch (_bStatus & 0xF0)\n        {\n        default:\n            goto LFail;\n\n        case 0x80: // note off\n        case 0x90: // note on\n        case 0xA0: // key pressure\n        case 0xB0: // control change\n        case 0xE0: // pitch wheel\n            goto LTwoBytes;\n\n        case 0xC0: // program change\n        case 0xD0: // channel pressure\n            goto LOneByte;\n\n        case 0xF0:\n            switch (_bStatus & 0x0F)\n            {\n            default:\n                // unknown opcode\n                goto LFail;\n\n            case 0x02:\n            LTwoBytes:\n                // 2 bytes worth of parameters\n                if (pbCur + 2 > _pbLim)\n                    goto LFail;\n                midev.rgbSend[ibSend++] = *pbCur++;\n                midev.rgbSend[ibSend++] = *pbCur++;\n                midev.cb = ibSend;\n                break;\n\n            case 0x01: // quarter frame\n            case 0x03: // song select\n            LOneByte:\n                // 1 byte worth of parameters\n                if (pbCur >= _pbLim)\n                    goto LFail;\n                midev.rgbSend[ibSend++] = *pbCur++;\n                midev.cb = ibSend;\n                break;\n\n            case 0x06:\n            case 0x08:\n            case 0x0A:\n            case 0x0B:\n            case 0x0C:\n            case 0x0E:\n                // no parameters\n                _bStatus = 0; // can't use running status on this!\n                midev.cb = ibSend;\n                break;\n\n            case 0x00:\n            case 0x07:\n                // system exclusive messages - ignore them\n                // read the length\n                if (!_FReadVar(&pbCur, &cbT) || !FIn(cbT - 1, 0, _pbLim - pbCur))\n                {\n                    goto LFail;\n                }\n                pbCur += cbT;\n                break;\n\n            case 0x0F:\n                // meta event\n                if (pbCur >= _pbLim)\n                    goto LFail;\n                bT = *pbCur++;\n                if (!_FReadVar(&pbCur, &cbT) || !FIn(cbT, 0, _pbLim - pbCur + 1))\n                {\n                    goto LFail;\n                }\n\n                switch (bT)\n                {\n                default:\n                    pbCur += cbT;\n                    break;\n\n                case 0x2F: // end of track\n                    goto LFail;\n\n                case 0x51: // tempo change\n                    if (cbT != 3)\n                        goto LFail;\n                    midev.lwTempo = LwFromBytes(0, pbCur[0], pbCur[1], pbCur[2]);\n                    if (fAdvance)\n                        _lwTempo = midev.lwTempo;\n                    pbCur += 3;\n                    goto LSend;\n                }\n                break;\n            }\n            break;\n        }\n    }\n\nLSend:\n    if (pvNil != pmidev)\n        *pmidev = midev;\n    if (fAdvance)\n    {\n        _pbCur = pbCur;\n        _tsCur = tsCur;\n    }\n    return fTrue;\n\nLFail:\n    _pbCur = _pbLim;\n    TrashVar(pmidev);\n    return fFalse;\n}\n\n/***************************************************************************\n    Read a variable length quantity.\n***************************************************************************/\nbool MSTP::_FReadVar(byte **ppbCur, long *plw)\n{\n    AssertThis(0);\n    AssertVarMem(ppbCur);\n\n    byte bT;\n\n    *plw = 0;\n    do\n    {\n        if (*ppbCur >= _pbLim)\n            return fFalse;\n        bT = *(*ppbCur)++;\n        *plw = (*plw << 7) + (bT & 0x7F);\n    } while (bT & 0x80);\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a MSTP.\n***************************************************************************/\nvoid MSTP::AssertValid(ulong grf)\n{\n    MSTP_PAR::AssertValid(0);\n    if (pvNil == _pmids)\n        return;\n\n    AssertPo(_pmids, 0);\n    Assert(_prgb == (byte *)QvFromHq(_pmids->_hqrgb), 0);\n    Assert(_pbLim == _prgb + CbOfHq(_pmids->_hqrgb), 0);\n    AssertIn(_pbCur - _prgb, 0, _pbLim - _prgb + 1);\n}\n\n/***************************************************************************\n    Mark memory for the MSTP.\n***************************************************************************/\nvoid MSTP::MarkMem(void)\n{\n    AssertValid(0);\n    MSTP_PAR::MarkMem();\n    MarkMemObj(_pmids);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for a midi stream object.\n***************************************************************************/\nMIDS::MIDS(void)\n{\n}\n\n/***************************************************************************\n    Destructor for a midi stream object.\n***************************************************************************/\nMIDS::~MIDS(void)\n{\n    FreePhq(&_hqrgb);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a MIDS.\n***************************************************************************/\nvoid MIDS::AssertValid(ulong grf)\n{\n    MIDS_PAR::AssertValid(0);\n    AssertHq(_hqrgb);\n}\n\n/***************************************************************************\n    Mark memory for the MIDS.\n***************************************************************************/\nvoid MIDS::MarkMem(void)\n{\n    AssertValid(0);\n    MIDS_PAR::MarkMem();\n    MarkHq(_hqrgb);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    A baco reader for a midi stream.\n***************************************************************************/\nbool MIDS::FReadMids(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, fblckReadable);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n    PMIDS pmids;\n\n    *pcb = pblck->Cb(fTrue);\n    if (pvNil == ppbaco)\n        return fTrue;\n\n    if (!pblck->FUnpackData())\n        goto LFail;\n    *pcb = pblck->Cb();\n\n    if (pvNil == (pmids = PmidsRead(pblck)))\n    {\n    LFail:\n        TrashVar(ppbaco);\n        TrashVar(pcb);\n        return fFalse;\n    }\n    *ppbaco = pmids;\n    return fTrue;\n}\n\n/***************************************************************************\n    Read a midi stream from the given block.\n***************************************************************************/\nPMIDS MIDS::PmidsRead(PBLCK pblck)\n{\n    AssertPo(pblck, 0);\n\n    PMIDS pmids;\n\n    if (pvNil == (pmids = NewObj MIDS))\n        return pvNil;\n\n    if (!pblck->FUnpackData() || !pblck->FReadHq(&pmids->_hqrgb))\n        ReleasePpo(&pmids);\n\n    AssertNilOrPo(pmids, 0);\n    return pmids;\n}\n\n/***************************************************************************\n    Read a native standard midi file and create a midi stream from it.\n***************************************************************************/\nPMIDS MIDS::PmidsReadNative(FNI *pfni)\n{\n    AssertPo(pfni, ffniFile);\n\n#pragma pack(1)\n    // Midi chunk header\n    struct MIDCHD\n    {\n        long lwSig;\n        long cb;\n    };\n#define kbomMidchd 0xF0000000\n\n    // Midi file header chunk - should be first chunk\n    struct MIDHED\n    {\n        MIDCHD midchd;\n        short swFmt;\n        short ctrk;\n        short swDiv;\n    };\n#define kbomMidhed 0xF5400000\n#pragma pack()\n\n    struct MIDTR\n    {\n        PMSTP pmstp;\n        MIDEV midevCur;\n    };\n\n    FLO flo;\n    FP fp;\n    MIDHED midhed;\n    MIDCHD midchd;\n    MIDTR midtr;\n    bool fSmpte;\n    BSM bsm;\n    RAT ratTempo;\n    ulong tsTempo, tsRawTempo, tsLast, ts, dts;\n    byte rgbT[5];\n    long cbT;\n    bool fSeq;\n    long imidtr, imidtrMin;\n    ulong tsMin;\n    PMIDS pmids = pvNil;\n    PGL pglmidtr = pvNil;\n\n    // open the file and set up the source flo\n    if (pvNil == (flo.pfil = FIL::PfilOpen(pfni)))\n        return pvNil;\n    flo.fp = 0;\n    flo.cb = flo.pfil->FpMac();\n\n    // get the header chunk\n    if (flo.cb < size(MIDHED) || !flo.FReadRgb(&midhed, size(midhed), 0))\n        goto LFail;\n\n        // byte order is always big endian\n#ifdef LITTLE_ENDIAN\n    SwapBytesBom(&midhed, kbomMidhed);\n#endif // LITTLE_ENDIAN\n\n    // make sure it's a valid header chunk\n    if (midhed.midchd.lwSig != 'MThd' || !FIn(midhed.midchd.cb + size(midchd), size(midhed), flo.cb))\n    {\n        goto LFail;\n    }\n\n    // allocate the list of tracks to parse\n    if (pvNil == (pglmidtr = GL::PglNew(size(MIDTR))))\n        goto LFail;\n\n    // build the track list...\n    for (fp = midhed.midchd.cb + size(midchd); fp < flo.cb;)\n    {\n        // read the next midi chunk header\n        if (fp + size(midchd) > flo.cb || !flo.FReadRgb(&midchd, size(midchd), fp))\n        {\n            goto LFail;\n        }\n        fp += size(midchd);\n\n#ifdef LITTLE_ENDIAN\n        SwapBytesBom(&midchd, kbomMidchd);\n#endif // LITTLE_ENDIAN\n\n        // make sure the chunk length is valid\n        if (!FIn(midchd.cb, 0, flo.cb - fp + 1))\n            goto LFail;\n\n        // if it's not a track chunk ignore it\n        if (midchd.lwSig != 'MTrk' || midchd.cb == 0)\n        {\n            fp += midchd.cb;\n            continue;\n        }\n\n        // wrap a midi stream object around the track data\n        if (pvNil == (pmids = NewObj MIDS) || !flo.FReadHq(&pmids->_hqrgb, midchd.cb, fp))\n        {\n            goto LFail;\n        }\n        fp += midchd.cb;\n\n        // create the midi stream parser for this stream\n        if (pvNil == (midtr.pmstp = NewObj MSTP))\n            goto LFail;\n        midtr.pmstp->Init(pmids, 0, 500000 /* microseconds per beat */);\n        ReleasePpo(&pmids);\n\n        // get the first event - if there isn't one, just free\n        // the stream parser and continue\n        if (!midtr.pmstp->FGetEvent(&midtr.midevCur))\n        {\n            ReleasePpo(&midtr.pmstp);\n            continue;\n        }\n\n        // add the track to the list\n        if (!pglmidtr->FAdd(&midtr))\n        {\n            ReleasePpo(&midtr.pmstp);\n            goto LFail;\n        }\n\n        if (midhed.swFmt != 1 && midhed.swFmt != 2)\n        {\n            // we're only supposed to have one track and we have it,\n            // so don't bother looking for more.\n            break;\n        }\n    }\n    ReleasePpo(&flo.pfil);\n\n    // make sure we have at least one track\n    if (pglmidtr->IvMac() == 0)\n        goto LFail;\n\n    // set the amount to grow the bsm by\n    bsm.SetMinGrow(1024);\n\n    if (FPure(fSmpte = (midhed.swDiv < 0)))\n    {\n        // SMPTE time\n        long fps = (byte)(-BHigh(midhed.swDiv));\n        long ctickFrame = BLow(midhed.swDiv);\n\n        if (fps == 29)\n            fps = 30; // 29 is 30 drop frame - 30 is close enough for us\n\n        if (ctickFrame <= 0 || fps <= 0)\n            goto LFail;\n        ratTempo.Set(1000, LwMul(fps, ctickFrame));\n    }\n    else\n    {\n        // midhed.swDiv is the number of ticks per beat.\n        if (midhed.swDiv == 0)\n            goto LFail;\n\n        // assume 120 beats per minute - gives us 500 ms per beat\n        ratTempo.Set(500, midhed.swDiv);\n    }\n\n    // merge the tracks or play them in sequence (according to fSeq).\n    fSeq = pglmidtr->IvMac() == 1 || midhed.swFmt == 2;\n\n    tsTempo = tsRawTempo = 0;\n    tsLast = 0;\n    if (fSeq)\n    {\n        imidtrMin = 0;\n        pglmidtr->Get(0, &midtr);\n    }\n\n    for (;;)\n    {\n        if (!fSeq)\n        {\n            // find the track with the next event\n            imidtrMin = ivNil;\n            tsMin = kluMax;\n            for (imidtr = 0; imidtr < pglmidtr->IvMac(); imidtr++)\n            {\n                pglmidtr->Get(imidtr, &midtr);\n                if (midtr.midevCur.ts < tsMin)\n                {\n                    tsMin = midtr.midevCur.ts;\n                    imidtrMin = imidtr;\n                }\n            }\n\n            Assert(imidtrMin != ivNil, 0);\n            pglmidtr->Get(imidtrMin, &midtr);\n        }\n\n        // get the time of this event\n        ts = ratTempo.LwScale(midtr.midevCur.ts - tsRawTempo) + tsTempo;\n\n        if (midtr.midevCur.cb == 0)\n        {\n            // just a tempo change\n            if (!fSmpte)\n            {\n                RAT ratTempoNew(midtr.midevCur.lwTempo, LwMul(1000, midhed.swDiv));\n\n                if (ratTempo != ratTempoNew)\n                {\n                    ratTempo = ratTempoNew;\n                    tsRawTempo = midtr.midevCur.ts;\n                    tsTempo = ts;\n                }\n            }\n        }\n        else\n        {\n            // write the time out - in variable format\n            Assert(midtr.midevCur.cb > 0, 0);\n            dts = ts - tsLast;\n            cbT = _CbEncodeLu(dts, rgbT);\n            if (!bsm.FReplace(rgbT, cbT, bsm.IbMac(), 0))\n                goto LFail;\n\n            if (!bsm.FReplace(midtr.midevCur.rgbSend, midtr.midevCur.cb, bsm.IbMac(), 0))\n            {\n                goto LFail;\n            }\n        }\n        tsLast = ts;\n\n        if (midtr.pmstp->FGetEvent(&midtr.midevCur))\n        {\n            if (!fSeq)\n                pglmidtr->Put(imidtrMin, &midtr);\n        }\n        else\n        {\n            // imidtrMin is empty\n            ReleasePpo(&midtr.pmstp);\n            pglmidtr->Delete(imidtrMin);\n            if (0 == pglmidtr->IvMac())\n                break;\n            if (fSeq)\n            {\n                tsTempo = tsLast;\n                tsRawTempo = 0;\n                pglmidtr->Get(0, &midtr);\n            }\n        }\n    }\n\n    if (pvNil != (pmids = NewObj MIDS) && FAllocHq(&pmids->_hqrgb, bsm.IbMac(), fmemNil, mprNormal))\n    {\n        bsm.FetchRgb(0, bsm.IbMac(), PvLockHq(pmids->_hqrgb));\n        UnlockHq(pmids->_hqrgb);\n    }\n    else\n    {\n    LFail:\n        ReleasePpo(&pmids);\n    }\n\n    // clean up stuff\n    ReleasePpo(&flo.pfil);\n    if (pvNil != pglmidtr)\n    {\n        while (pglmidtr->FPop(&midtr))\n            ReleasePpo(&midtr.pmstp);\n        ReleasePpo(&pglmidtr);\n    }\n\n    AssertNilOrPo(pmids, 0);\n    return pmids;\n}\n\n/***************************************************************************\n    Static method to convert a long to its midi file variable length\n    equivalent.\n***************************************************************************/\nlong MIDS::_CbEncodeLu(ulong lu, byte *prgb)\n{\n    AssertNilOrVarMem(prgb);\n\n    long ib;\n\n    if (pvNil != prgb)\n        prgb[0] = (byte)(lu & 0x7F);\n    for (ib = 1; (lu >>= 7) > 0; ib++)\n    {\n        if (pvNil != prgb)\n            prgb[ib] = (byte)((lu & 0x7F) | 0x80);\n    }\n    if (pvNil != prgb)\n        ReversePb(prgb, ib);\n    return ib;\n}\n\n/***************************************************************************\n    Write a midi stream to the given block.\n***************************************************************************/\nbool MIDS::FWrite(PBLCK pblck)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n\n    return pblck->FWriteHq(_hqrgb, 0);\n}\n\n/***************************************************************************\n    Return the length of this midi stream on file.\n***************************************************************************/\nlong MIDS::CbOnFile(void)\n{\n    AssertThis(0);\n\n    return CbOfHq(_hqrgb);\n}\n"
  },
  {
    "path": "kauai/src/midi.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Midi playback class.\n\n***************************************************************************/\n#ifndef MIDI_H\n#define MIDI_H\n\ntypedef class MIDS *PMIDS;\n\n// midi event\nstruct MIDEV\n{\n    ulong ts;     // time stamp of this event\n    long cb;      // number of bytes to send (in rgbSend)\n    long lwTempo; // the current tempo - at a tempo change, cb will be 0\n    union {\n        byte rgbSend[4]; // bytes to send if pvLong is nil\n        long lwSend;     // for convenience\n    };\n};\ntypedef MIDEV *PMIDEV;\n\n/***************************************************************************\n    Midi stream parser. Knows how to parse standard MIDI streams.\n***************************************************************************/\ntypedef class MSTP *PMSTP;\n#define MSTP_PAR BASE\n#define kclsMSTP 'MSTP'\nclass MSTP : public MSTP_PAR\n{\n    RTCLASS_DEC\n    NOCOPY(MSTP)\n    ASSERT\n    MARKMEM\n\n  protected:\n    ulong _tsCur;\n    long _lwTempo;\n    byte *_prgb;\n    byte *_pbLim;\n    byte *_pbCur;\n    byte _bStatus;\n\n    Debug(long _cactLongLock;) PMIDS _pmids;\n\n    bool _FReadVar(byte **ppbCur, long *plw);\n\n  public:\n    MSTP(void);\n    ~MSTP(void);\n\n    void Init(PMIDS pmids, ulong tsStart = 0, long lwTempo = 500000);\n    bool FGetEvent(PMIDEV pmidev, bool fAdvance = fTrue);\n};\n\n/***************************************************************************\n    Midi Stream object - this is like a MTrk chunk in a standard MIDI file,\n    with timing in milliseconds.\n***************************************************************************/\n#define MIDS_PAR BACO\n#define kclsMIDS 'MIDS'\nclass MIDS : public MIDS_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    HQ _hqrgb;\n\n    friend MSTP;\n\n    MIDS(void);\n\n    static long _CbEncodeLu(ulong lu, byte *prgb);\n\n  public:\n    static bool FReadMids(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n    static PMIDS PmidsRead(PBLCK pblck);\n    static PMIDS PmidsReadNative(FNI *pfni);\n    ~MIDS(void);\n\n    virtual bool FWrite(PBLCK pblck);\n    virtual long CbOnFile(void);\n};\n\n#endif //! MIDI_H\n"
  },
  {
    "path": "kauai/src/mididev.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    The midi player device.\n\n***************************************************************************/\n#include \"frame.h\"\n\n#include <climits>\n\nASSERTNAME\n\nRTCLASS(MIDP)\n\nconst long kdtsMinSlip = kdtsSecond / 30;\nconst long klwInfinite = klwMax;\n\n/***************************************************************************\n    Midi output object.\n***************************************************************************/\nenum\n{\n    fmidoNil = 0x0,\n    fmidoFirst = 0x1,\n    fmidoFastFwd = 0x2,\n};\n\ntypedef class MIDO *PMIDO;\n#define MIDO_PAR BASE\n#define kclsMIDO 'MIDO'\nclass MIDO : public MIDO_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    typedef HMIDIOUT HMO;\n\n    MUTX _mutx; // restricts access to member variables\n    HMO _hmo;   // the output device\n\n    // system volume level - to be saved and restored. The volume we set\n    // is always relative to this\n    ulong _luVolSys;\n\n    long _vlmBase; // our current volume relative to _luVolSys.\n    long _vlm;     // our current volume relative to _vlmBase\n\n    long _sii; // the sound that owns the _hmo\n    long _spr; // the priority of sound that owns the _hmo\n\n    bool _fRestart : 1; // whether the device needs reset\n    bool _fSetVol : 1;  // whether the volume needs set\n\n    void _GetSysVol(void);\n    void _SetSysVol(ulong luVol);\n    void _SetSysVlm(void);\n    void _Reset(void);\n\n  public:\n    MIDO(void);\n    ~MIDO(void);\n\n    void Suspend(bool fSuspend);\n    void SetVlm(long vlm);\n    long VlmCur(void);\n\n    bool FPlay(long sii, long spr, MIDEV *pmidev, long vlm, ulong grfmido);\n    void Transition(long siiOld, long siiNew, long sprNew);\n    void Close(long sii);\n};\n\nstatic MIDO _mido;\n\nRTCLASS(MIDO)\n\n/***************************************************************************\n    Constructor for the low level midi output device.\n***************************************************************************/\nMIDO::MIDO(void)\n{\n    _hmo = hNil;\n    _sii = siiNil;\n    _luVolSys = (ulong)(-1);\n    _vlmBase = _vlm = kvlmFull;\n    _fSetVol = fFalse;\n\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for the low level midi output device.\n***************************************************************************/\nMIDO::~MIDO(void)\n{\n    AssertThis(0);\n\n    _mutx.Enter();\n    Suspend(fTrue);\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Get the system volume level.\n***************************************************************************/\nvoid MIDO::_GetSysVol(void)\n{\n    Assert(hNil != _hmo, \"calling _VlmGetSys with nil _hmo\");\n\n    if (0 != midiOutGetVolume(_hmo, &_luVolSys))\n    {\n        // failed - assume full volume\n        _luVolSys = ULONG_MAX;\n    }\n}\n\n/***************************************************************************\n    Set the system volume level.\n***************************************************************************/\nvoid MIDO::_SetSysVol(ulong luVol)\n{\n    Assert(hNil != _hmo, \"calling _SetSysVol with nil _hmo\");\n    midiOutSetVolume(_hmo, luVol);\n}\n\n/***************************************************************************\n    Set the system volume level from the current values of _vlm, _vlmBase\n    and _luVolSys. We set the system volume to the result of scaling\n    _luVolSys by _vlm and _vlmBase.\n***************************************************************************/\nvoid MIDO::_SetSysVlm(void)\n{\n    ulong luVol;\n\n    luVol = LuVolScale(_luVolSys, _vlmBase);\n    luVol = LuVolScale(luVol, _vlm);\n    _SetSysVol(luVol);\n}\n\n/***************************************************************************\n    Reset the midi device. Assumes that the mutx is already ours.\n***************************************************************************/\nvoid MIDO::_Reset(void)\n{\n    AssertThis(0);\n\n    if (hNil != _hmo)\n    {\n        // Reset channel pressure and pitch wheel on all channels\n        MIDEV midev;\n        long iv;\n\n        midiOutReset(_hmo);\n\n        for (iv = 0; iv < 16; iv++)\n        {\n            midev.lwSend = 0;\n            midev.rgbSend[0] = (byte)(0xD0 | iv);\n            midiOutShortMsg(_hmo, midev.lwSend);\n\n            midev.rgbSend[0] = (byte)(0xE0 | iv);\n            midev.rgbSend[2] = 0x40;\n            midiOutShortMsg(_hmo, midev.lwSend);\n        }\n    }\n}\n\n/***************************************************************************\n    Release or grab the midi output device depending on fSuspend.\n***************************************************************************/\nvoid MIDO::Suspend(bool fSuspend)\n{\n    AssertThis(0);\n\n    _mutx.Enter();\n    if (FPure(fSuspend) != (hNil == _hmo))\n    {\n        if (fSuspend)\n        {\n            // kill all notes\n            _Reset();\n\n            // restore the volume level and free the device\n            _SetSysVol(_luVolSys);\n            midiOutClose(_hmo);\n            _hmo = hNil;\n        }\n        else\n        {\n            if (MMSYSERR_NOERROR == midiOutOpen(&_hmo, MIDI_MAPPER, 0, 0, CALLBACK_NULL))\n            {\n                _GetSysVol();\n            }\n            else\n            {\n                _hmo = hNil;\n                PushErc(ercSndMidiDeviceBusy);\n            }\n        }\n    }\n\n    _fSetVol = _fRestart = fTrue;\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Set the master volume for the device.\n***************************************************************************/\nvoid MIDO::SetVlm(long vlm)\n{\n    AssertThis(0);\n\n    if (vlm != _vlmBase)\n    {\n        _vlmBase = vlm;\n        _fSetVol = fTrue;\n    }\n}\n\n/***************************************************************************\n    Return the current master volume.\n***************************************************************************/\nlong MIDO::VlmCur(void)\n{\n    AssertThis(0);\n\n    return _vlmBase;\n}\n\n/***************************************************************************\n    Play the given midi event. Returns false iff the midi stream should be\n    started over from the beginning in fast forward mode.\n***************************************************************************/\nbool MIDO::FPlay(long sii, long spr, MIDEV *pmidev, long vlm, ulong grfmido)\n{\n    AssertThis(0);\n    AssertVarMem(pmidev);\n\n    // assume we don't have to restart\n    bool fRet = fTrue;\n\n    _mutx.Enter();\n\n    // see if this sound has higher priority than the current one\n    if (_sii == sii)\n        Assert(_spr == spr, 0);\n    else if (siiNil == _sii || spr >= _spr && (sii > _sii || spr > _spr))\n    {\n        // this sound is higher priority so play it.\n        _sii = sii;\n        _spr = spr;\n        _fRestart = fTrue;\n    }\n\n    // if this sound isn't the current one or the output we're deactivated\n    // just pretend we played the event\n    if (_sii != sii || hNil == _hmo)\n        goto LDone;\n\n    // If we need to restart, reset the device. If this is the first event\n    // in the stream, go ahead and play it - otherwise, return false to tell\n    // the client to restart.\n    if (_fRestart)\n    {\n        _Reset();\n        _fRestart = fFalse;\n\n        if (!(grfmido & fmidoFirst))\n        {\n            fRet = fFalse;\n            goto LDone;\n        }\n    }\n\n    // do fast forward filtering\n    if (grfmido & fmidoFastFwd)\n    {\n        // don't play notes or do other stuff that doesn't affect\n        // the (long term) device state.\n        switch (pmidev->rgbSend[0] & 0xF0)\n        {\n        default:\n            goto LDone;\n\n        case 0xB0: // control change\n        case 0xC0: // program change\n        case 0xD0: // channel pressure\n        case 0xF0: // special stuff\n            break;\n        }\n    }\n\n    // make sure the volume is set correctly\n    if (_fSetVol || _vlm != vlm)\n    {\n        _vlm = vlm;\n        _fSetVol = fFalse;\n        _SetSysVlm();\n    }\n\n    // finally, we can play the event\n    midiOutShortMsg(_hmo, pmidev->lwSend);\n\nLDone:\n    _mutx.Leave();\n\n    return fRet;\n}\n\n/***************************************************************************\n    siiOld is being replaced by siiNew.\n***************************************************************************/\nvoid MIDO::Transition(long siiOld, long siiNew, long sprNew)\n{\n    AssertThis(0);\n\n    _mutx.Enter();\n    if (_sii == siiOld && siiNil != siiOld)\n    {\n        _sii = siiNew;\n        _spr = sprNew;\n        _Reset();\n    }\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    sii is going away.\n***************************************************************************/\nvoid MIDO::Close(long sii)\n{\n    AssertThis(0);\n\n    _mutx.Enter();\n    if (_sii == sii && siiNil != sii)\n    {\n        _sii = siiNil;\n        if (hNil != _hmo)\n            _Reset();\n    }\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Midi player queue.\n***************************************************************************/\ntypedef class MPQUE *PMPQUE;\n#define MPQUE_PAR SNQUE\n#define kclsMPQUE 'mpqu'\nclass MPQUE : public MPQUE_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    HN _hevtQueue;  // the queue event object - to signal new input\n    bool _fChanged; // also signals new input - for extra protection\n    HN _hth;        // the thread handle\n\n    MUTX _mutx;    // mutex to restrict access to member variables\n    MSTP _mstp;    // midi stream parser\n    long _dtsSlip; // amount of time we've slipped by\n    long _sii;     // id and priority of sound we're currently serving\n    long _spr;\n    long _vlm;      // volume to play back at\n    MIDEV _midev;   // current midi event\n    ulong _tsStart; // time current sound was started\n    ulong _grfmido; // options for midi output device\n\n    bool _fMidevValid : 1; // is _midev valid?\n    bool _fDone : 1;       // should the thread terminate?\n\n    MPQUE(void);\n\n    virtual void _Enter(void);\n    virtual void _Leave(void);\n\n    virtual bool _FInit(void);\n    virtual PBACO _PbacoFetch(PRCA prca, CTG ctg, CNO cno);\n    virtual void _Queue(long isndinMin);\n    virtual void _PauseQueue(long isndinMin);\n    virtual void _ResumeQueue(long isndinMin);\n\n    static ulong __stdcall _ThreadProc(void *pv);\n\n    ulong _LuThread(void);\n    void _DoEvent(bool fRestart, long *pdtsWait);\n    bool _FGetEvt(void);\n    bool _FStartQueue(void);\n    void _PlayEvt(void);\n\n  public:\n    static PMPQUE PmpqueNew(void);\n    ~MPQUE(void);\n};\n\nRTCLASS(MPQUE)\n\n/***************************************************************************\n    MT: Constructor for a midi player queue.\n***************************************************************************/\nMPQUE::MPQUE(void)\n{\n}\n\n/***************************************************************************\n    MP: Destructor for a midi player queue.\n***************************************************************************/\nMPQUE::~MPQUE(void)\n{\n    AssertThis(0);\n\n    if (hNil != _hth)\n    {\n        // tell the thread to end and wait for it to finish\n        _fDone = fTrue;\n        SetEvent(_hevtQueue);\n        WaitForSingleObject(_hth, INFINITE);\n    }\n\n    _mutx.Enter();\n\n    if (hNil != _hevtQueue)\n        CloseHandle(_hevtQueue);\n\n    // clear the midi stream parser\n    _mstp.Init(pvNil);\n\n    _mutx.Leave();\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a MPQUE.\n***************************************************************************/\nvoid MPQUE::AssertValid(ulong grf)\n{\n    _mutx.Enter();\n\n    MPQUE_PAR::AssertValid(0);\n    AssertPo(&_mstp, 0);\n\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Mark memory for the MPQUE.\n***************************************************************************/\nvoid MPQUE::MarkMem(void)\n{\n    AssertValid(0);\n    MPQUE_PAR::MarkMem();\n\n    _mutx.Enter();\n    MarkMemObj(&_mstp);\n    _mutx.Leave();\n}\n#endif // DEBUG\n\n/***************************************************************************\n    MT: Static method to create a new midi player queue.\n***************************************************************************/\nPMPQUE MPQUE::PmpqueNew(void)\n{\n    PMPQUE pmpque;\n\n    if (pvNil == (pmpque = NewObj MPQUE))\n        return pvNil;\n\n    if (!pmpque->_FInit())\n        ReleasePpo(&pmpque);\n\n    AssertNilOrPo(pmpque, 0);\n    return pmpque;\n}\n\n/***************************************************************************\n    MT: Initialize the midi queue.\n***************************************************************************/\nbool MPQUE::_FInit(void)\n{\n    AssertBaseThis(0);\n    ulong luThread;\n\n    if (!MPQUE_PAR::_FInit())\n        return fFalse;\n\n    // create an auto-reset event to signal that the midi stream at\n    // the head of the queue has changed.\n    _hevtQueue = CreateEvent(pvNil, fFalse, fFalse, pvNil);\n    if (hNil == _hevtQueue)\n        return fFalse;\n\n    // create the thread in a suspended state\n    _hth = CreateThread(pvNil, 1024, MPQUE::_ThreadProc, this, CREATE_SUSPENDED, &luThread);\n    if (hNil == _hth)\n        return fFalse;\n    SetThreadPriority(_hth, THREAD_PRIORITY_TIME_CRITICAL);\n\n    // set other members\n    _sii = siiNil;\n\n    // start the thread\n    ResumeThread(_hth);\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Enter the critical section protecting member variables.\n***************************************************************************/\nvoid MPQUE::_Enter(void)\n{\n    _mutx.Enter();\n}\n\n/***************************************************************************\n    Leave the critical section protecting member variables.\n***************************************************************************/\nvoid MPQUE::_Leave(void)\n{\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    MT: Fetch the given sound chunk as a midi stream.\n***************************************************************************/\nPBACO MPQUE::_PbacoFetch(PRCA prca, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    AssertPo(prca, 0);\n\n    return prca->PbacoFetch(ctg, cno, &MIDS::FReadMids);\n}\n\n/***************************************************************************\n    The element at the head of the queue changed, notify the thread.\n***************************************************************************/\nvoid MPQUE::_Queue(long isndinMin)\n{\n    AssertThis(0);\n\n    _mutx.Enter();\n\n    if (_isndinCur == isndinMin)\n    {\n        // signal the thread that data changed\n        SetEvent(_hevtQueue);\n        _fChanged = fTrue;\n    }\n\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Pause the sound at the head of the queue.\n***************************************************************************/\nvoid MPQUE::_PauseQueue(long isndinMin)\n{\n    AssertThis(0);\n    SNDIN sndin;\n\n    _mutx.Enter();\n\n    if (_isndinCur == isndinMin && _pglsndin->IvMac() > _isndinCur)\n    {\n        _pglsndin->Get(_isndinCur, &sndin);\n        sndin.dtsStart = TsCurrentSystem() - _tsStart;\n        _pglsndin->Put(_isndinCur, &sndin);\n\n        _Queue(_isndinCur);\n    }\n\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Resume the sound at the head of the queue.\n***************************************************************************/\nvoid MPQUE::_ResumeQueue(long isndinMin)\n{\n    AssertThis(0);\n\n    _Queue(isndinMin);\n}\n\n/***************************************************************************\n    AT: Static method. Thread function for the midi thread object.\n***************************************************************************/\nulong __stdcall MPQUE::_ThreadProc(void *pv)\n{\n    PMPQUE pmpque = (PMPQUE)pv;\n\n    AssertPo(pmpque, 0);\n\n    return pmpque->_LuThread();\n}\n\n/***************************************************************************\n    AT: The midi playback thread.\n***************************************************************************/\nulong MPQUE::_LuThread(void)\n{\n    AssertThis(0);\n    bool fRestart;\n    long dtsWait = klwInfinite;\n\n    for (;;)\n    {\n        // wait until our time has expired or there is new data\n        fRestart =\n            dtsWait > 0 && WAIT_TIMEOUT != WaitForSingleObject(_hevtQueue, dtsWait == klwInfinite ? INFINITE : dtsWait);\n\n        // check to see if this thread should end\n        if (_fDone)\n            return 0;\n\n        _mutx.Enter();\n        if (_fChanged && !fRestart)\n            dtsWait = klwInfinite;\n        else\n        {\n            _fChanged = fFalse;\n            _DoEvent(fRestart, &dtsWait);\n        }\n        _mutx.Leave();\n    }\n}\n\n/***************************************************************************\n    Called when it's time to send the next midi event or when the queue\n    has changed. Assumes the mutx is already checked out.\n***************************************************************************/\nvoid MPQUE::_DoEvent(bool fRestart, long *pdtsWait)\n{\n    if (fRestart && !_FStartQueue())\n        *pdtsWait = klwInfinite;\n    else if (!_FGetEvt())\n    {\n        // we're done playing this tune, so start the next one\n        _isndinCur++;\n        *pdtsWait = _FStartQueue() ? 0 : klwInfinite;\n    }\n    else\n    {\n        // we have a valid midi event\n        *pdtsWait = (long)(_midev.ts - TsCurrentSystem());\n        if (*pdtsWait <= 0)\n        {\n            // go ahead and send it\n            if (*pdtsWait < -kdtsMinSlip && !(_grfmido & fmidoFastFwd))\n            {\n                _dtsSlip -= *pdtsWait;\n                *pdtsWait = 0;\n            }\n            _PlayEvt();\n        }\n        else\n            _grfmido &= ~fmidoFastFwd;\n    }\n}\n\n/***************************************************************************\n    AT: Start playing the sound at the head of the queue. Return non-zero\n    iff the queue wasn't empty. Note that the sound is left in the queue.\n***************************************************************************/\nbool MPQUE::_FStartQueue(void)\n{\n    SNDIN sndin;\n\n    _mutx.Enter();\n\n    // set up the midi stream parser (_mstp).\n    for (; _isndinCur < _pglsndin->IvMac(); _isndinCur++)\n    {\n        _pglsndin->Get(_isndinCur, &sndin);\n        AssertPo(sndin.pbaco, 0);\n        if (0 <= sndin.cactPause)\n            break;\n    }\n\n    if (_isndinCur < _pglsndin->IvMac() && 0 == sndin.cactPause)\n    {\n        // transition to the new tune\n        _mido.Transition(_sii, sndin.sii, sndin.spr);\n\n        _sii = sndin.sii;\n        _spr = sndin.spr;\n        _vlm = sndin.vlm;\n        _tsStart = TsCurrentSystem() - sndin.dtsStart;\n        _mstp.Init((PMIDS)sndin.pbaco, _tsStart);\n        _dtsSlip = TsCurrentSystem() - sndin.dtsStart - _tsStart;\n        _grfmido = fmidoNil;\n        _fMidevValid = fFalse;\n\n        if (sndin.dtsStart > 0)\n            _grfmido |= fmidoFastFwd;\n        if (sndin.pbaco != pvNil)\n            _grfmido |= fmidoFirst;\n    }\n    else\n    {\n        // close the old tune\n        _mido.Close(_sii);\n        _sii = siiNil;\n\n        sndin.pbaco = pvNil;\n        _mstp.Init(pvNil, 0);\n        _fMidevValid = fFalse;\n    }\n\n    _mutx.Leave();\n\n    return sndin.pbaco != pvNil;\n}\n\n/***************************************************************************\n    AT: Get the next event. Assumes we already have the mutex.\n***************************************************************************/\nbool MPQUE::_FGetEvt(void)\n{\n    AssertThis(0);\n    ulong ts;\n    SNDIN sndin;\n\n    if (_fMidevValid)\n        return fTrue;\n\n    ts = kluMax;\n    while (_mstp.FGetEvent(&_midev))\n    {\n        _midev.ts += _dtsSlip;\n\n        // skip empty events\n        if (_midev.cb > 0)\n        {\n            _fMidevValid = fTrue;\n            return fTrue;\n        }\n        ts = _midev.ts;\n    }\n\n    // see if we should repeat the current midi stream\n    _pglsndin->Get(_isndinCur, &sndin);\n    if (--sndin.cactPlay == 0)\n        return fFalse;\n    _pglsndin->Put(_isndinCur, &sndin);\n\n    _tsStart = TsCurrentSystem();\n    if (ts != kluMax && ts > _tsStart)\n        _tsStart = ts;\n\n    _mstp.Init((PMIDS)sndin.pbaco, _tsStart);\n    _dtsSlip = TsCurrentSystem() - _tsStart;\n    if (!_mstp.FGetEvent(&_midev))\n    {\n        // there's nothing in this midi stream\n        return fFalse;\n    }\n    _midev.ts += _dtsSlip;\n    _fMidevValid = fTrue;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    AT: Play the current event. Assumes we have the member mutex (_mutx).\n***************************************************************************/\nvoid MPQUE::_PlayEvt(void)\n{\n    AssertThis(0);\n    Assert(_fMidevValid, 0);\n\n    if (!_mido.FPlay(_sii, _spr, &_midev, _vlm, _grfmido))\n    {\n        // restart the stream in fast forward mode\n        SNDIN sndin;\n\n        _pglsndin->Get(_isndinCur, &sndin);\n        _mstp.Init((PMIDS)sndin.pbaco, _tsStart);\n        _grfmido |= fmidoFastFwd;\n    }\n    _fMidevValid = fFalse;\n    _grfmido &= ~fmidoFirst;\n}\n\n/***************************************************************************\n    Constructor for the midi player device.\n***************************************************************************/\nMIDP::MIDP(void)\n{\n}\n\n/***************************************************************************\n    Destructor for the midi player device.\n***************************************************************************/\nMIDP::~MIDP(void)\n{\n    _Suspend(fTrue);\n}\n\n/***************************************************************************\n    Static method to create the midiplayer device.\n***************************************************************************/\nPMIDP MIDP::PmidpNew(void)\n{\n    PMIDP pmidp;\n\n    if (pvNil == (pmidp = NewObj MIDP))\n        return pvNil;\n\n    if (!pmidp->_FInit())\n        ReleasePpo(&pmidp);\n\n    pmidp->_Suspend(!pmidp->_fActive || pmidp->_cactSuspend > 0);\n\n    AssertNilOrPo(pmidp, 0);\n    return pmidp;\n}\n\n/***************************************************************************\n    Allocate a new midi queue.\n***************************************************************************/\nPSNQUE MIDP::_PsnqueNew(void)\n{\n    AssertThis(0);\n\n    return MPQUE::PmpqueNew();\n}\n\n/***************************************************************************\n    Get or release the HMIDIOUT depending on fSuspend.\n***************************************************************************/\nvoid MIDP::_Suspend(bool fSuspend)\n{\n    _mido.Suspend(fSuspend);\n}\n\n/***************************************************************************\n    Set the volume.\n***************************************************************************/\nvoid MIDP::SetVlm(long vlm)\n{\n    AssertThis(0);\n\n    _mido.SetVlm(vlm);\n}\n\n/***************************************************************************\n    Get the volume.\n***************************************************************************/\nlong MIDP::VlmCur(void)\n{\n    AssertThis(0);\n\n    return _mido.VlmCur();\n}\n"
  },
  {
    "path": "kauai/src/mididev.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    The midi player sound device.\n\n***************************************************************************/\n#ifndef MIDIDEV_H\n#define MIDIDEV_H\n\n/***************************************************************************\n    The midi player.\n***************************************************************************/\ntypedef class MIDP *PMIDP;\n#define MIDP_PAR SNDMQ\n#define kclsMIDP 'MIDP'\nclass MIDP : public MIDP_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    MIDP(void);\n\n    virtual PSNQUE _PsnqueNew(void);\n    virtual void _Suspend(bool fSuspend);\n\n  public:\n    static PMIDP PmidpNew(void);\n    ~MIDP(void);\n\n    // inherited methods\n    virtual void SetVlm(long vlm);\n    virtual long VlmCur(void);\n};\n\n#endif //! MIDIDEV_H\n"
  },
  {
    "path": "kauai/src/mididev2.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    The midi player device using a Midi Stream.\n\n***************************************************************************/\n#include \"frame.h\"\n#include \"mdev2pri.h\"\nASSERTNAME\n\nRTCLASS(MDWS)\nRTCLASS(MSQUE)\nRTCLASS(MDPS)\nRTCLASS(MSMIX)\nRTCLASS(MISI)\nRTCLASS(WMS)\nRTCLASS(OMS)\n\nconst long kdtsMinSlip = kdtsSecond / 30;\nconst long kcbMaxWmsBuffer = 0x0000FFFF / size(MEV) * size(MEV);\n\n/***************************************************************************\n    Constructor for the midi stream device.\n***************************************************************************/\nMDPS::MDPS(void)\n{\n}\n\n/***************************************************************************\n    Destructor for the midi stream device.\n***************************************************************************/\nMDPS::~MDPS(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pmsmix);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a MDPS.\n***************************************************************************/\nvoid MDPS::AssertValid(ulong grf)\n{\n    MDPS_PAR::AssertValid(0);\n    AssertPo(_pmsmix, 0);\n}\n\n/***************************************************************************\n    Mark memory for the MDPS.\n***************************************************************************/\nvoid MDPS::MarkMem(void)\n{\n    AssertValid(0);\n    MDPS_PAR::MarkMem();\n    MarkMemObj(_pmsmix);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Static method to create the midi stream device.\n***************************************************************************/\nPMDPS MDPS::PmdpsNew(void)\n{\n    PMDPS pmdps;\n\n    if (pvNil == (pmdps = NewObj MDPS))\n        return pvNil;\n\n    if (!pmdps->_FInit())\n        ReleasePpo(&pmdps);\n\n    AssertNilOrPo(pmdps, 0);\n    return pmdps;\n}\n\n/***************************************************************************\n    Initialize the midi stream device.\n***************************************************************************/\nbool MDPS::_FInit(void)\n{\n    AssertBaseThis(0);\n\n    if (!MDPS_PAR::_FInit())\n        return fFalse;\n\n    // Create the midi stream output scheduler\n    if (pvNil == (_pmsmix = MSMIX::PmsmixNew()))\n        return fFalse;\n\n    _Suspend(_cactSuspend > 0 || !_fActive);\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Allocate a new midi stream queue.\n***************************************************************************/\nPSNQUE MDPS::_PsnqueNew(void)\n{\n    AssertThis(0);\n\n    return MSQUE::PmsqueNew(_pmsmix);\n}\n\n/***************************************************************************\n    Activate or deactivate the midi stream device.\n***************************************************************************/\nvoid MDPS::_Suspend(bool fSuspend)\n{\n    AssertThis(0);\n\n    _pmsmix->Suspend(fSuspend);\n}\n\n/***************************************************************************\n    Set the volume.\n***************************************************************************/\nvoid MDPS::SetVlm(long vlm)\n{\n    AssertThis(0);\n\n    _pmsmix->SetVlm(vlm);\n}\n\n/***************************************************************************\n    Get the current volume.\n***************************************************************************/\nlong MDPS::VlmCur(void)\n{\n    AssertThis(0);\n\n    return _pmsmix->VlmCur();\n}\n\n/***************************************************************************\n    Constructor for a midi stream object.\n***************************************************************************/\nMDWS::MDWS(void)\n{\n}\n\n/***************************************************************************\n    Destructor for a Win95 midi stream object.\n***************************************************************************/\nMDWS::~MDWS(void)\n{\n    ReleasePpo(&_pglmev);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a MDWS.\n***************************************************************************/\nvoid MDWS::AssertValid(ulong grf)\n{\n    MDWS_PAR::AssertValid(0);\n    AssertPo(_pglmev, 0);\n}\n\n/***************************************************************************\n    Mark memory for the MDWS.\n***************************************************************************/\nvoid MDWS::MarkMem(void)\n{\n    AssertValid(0);\n    MDWS_PAR::MarkMem();\n    MarkMemObj(_pglmev);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    A baco reader for a midi stream.\n***************************************************************************/\nbool MDWS::FReadMdws(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, fblckReadable);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n    PMDWS pmdws;\n\n    *pcb = pblck->Cb(fTrue);\n    if (pvNil == ppbaco)\n        return fTrue;\n\n    if (!pblck->FUnpackData())\n        goto LFail;\n\n    if (pvNil == (pmdws = PmdwsRead(pblck)))\n    {\n    LFail:\n        TrashVar(ppbaco);\n        TrashVar(pcb);\n        return fFalse;\n    }\n    *pcb = pmdws->_pglmev->IvMac() * size(MEV) + size(MDWS);\n\n    *ppbaco = pmdws;\n    return fTrue;\n}\n\n/***************************************************************************\n    Read a midi stream from the given block.\n***************************************************************************/\nPMDWS MDWS::PmdwsRead(PBLCK pblck)\n{\n    AssertPo(pblck, 0);\n\n    PMIDS pmids;\n    PMDWS pmdws;\n\n    if (pvNil == (pmids = MIDS::PmidsRead(pblck)))\n        return pvNil;\n\n    if (pvNil != (pmdws = NewObj MDWS) && !pmdws->_FInit(pmids))\n        ReleasePpo(&pmdws);\n\n    ReleasePpo(&pmids);\n    AssertNilOrPo(pmdws, 0);\n\n    return pmdws;\n}\n\n/***************************************************************************\n    Initialize the MDWS with the midi data in *pmids.\n***************************************************************************/\nbool MDWS::_FInit(PMIDS pmids)\n{\n    AssertPo(pmids, 0);\n\n    MSTP mstp;\n    ulong tsCur;\n    MEV rgmev[100];\n    PMEV pmev, pmevLim;\n    MIDEV midev;\n    bool fEvt;\n\n    if (pvNil == (_pglmev = GL::PglNew(size(MEV))))\n        return fFalse;\n\n    Assert(MEVT_SHORTMSG == 0, \"this code assumes MEVT_SHORTMSG is 0 and it's not\");\n\n    ClearPb(rgmev, size(rgmev));\n    pmev = rgmev;\n    pmevLim = rgmev + CvFromRgv(rgmev);\n\n    // use 1 second per quarter. We'll use 1000 ticks per quarter when\n    // setting up the stream. The net result is that milliseconds correspond\n    // to ticks, so no conversion is necessary here.\n    pmev->dwEvent = ((ulong)MEVT_TEMPO << 24) | 1000000;\n    pmev++;\n\n    mstp.Init(pmids, 0);\n    tsCur = 0;\n    for (;;)\n    {\n        fEvt = mstp.FGetEvent(&midev);\n        if (pmev >= pmevLim || !fEvt)\n        {\n            // append the MEVs in rgmev to the _pglmev\n            long imev, cmev;\n\n            imev = _pglmev->IvMac();\n            cmev = pmev - rgmev;\n            if (!_pglmev->FSetIvMac(imev + cmev))\n                return fFalse;\n            CopyPb(rgmev, _pglmev->QvGet(imev), LwMul(cmev, size(MEV)));\n            if (!fEvt)\n            {\n                // Add a final NOP so when we seek and there's only one\n                // event left, it's not an important one.\n                rgmev[0].dwDeltaTime = 0;\n                rgmev[0].dwStreamID = 0;\n                rgmev[0].dwEvent = (ulong)MEVT_NOP << 24;\n                if (!_pglmev->FAdd(&rgmev[0]))\n                    return fFalse;\n\n                _pglmev->FEnsureSpace(0, fgrpShrink);\n                break;\n            }\n            pmev = rgmev;\n        }\n\n        if (midev.cb > 0)\n        {\n            pmev->dwDeltaTime = midev.ts - tsCur;\n            pmev->dwEvent = midev.lwSend & 0x00FFFFFF;\n            pmev++;\n            tsCur = midev.ts;\n        }\n    }\n\n    _dts = tsCur;\n    return fTrue;\n}\n\n/***************************************************************************\n    Return a locked pointer to the data.\n***************************************************************************/\nvoid *MDWS::PvLockData(long *pcb)\n{\n    AssertThis(0);\n    AssertVarMem(pcb);\n\n    *pcb = LwMul(_pglmev->IvMac(), size(MEV));\n    return _pglmev->PvLock(0);\n}\n\n/***************************************************************************\n    Balance a call to PvLockData.\n***************************************************************************/\nvoid MDWS::UnlockData(void)\n{\n    AssertThis(0);\n\n    _pglmev->Unlock();\n}\n\n/***************************************************************************\n    Constructor for a midi stream queue.\n***************************************************************************/\nMSQUE::MSQUE(void)\n{\n}\n\n/***************************************************************************\n    Destructor for a midi stream queue.\n***************************************************************************/\nMSQUE::~MSQUE(void)\n{\n    if (pvNil != _pmsmix)\n    {\n        _pmsmix->FPlay(this);\n        ReleasePpo(&_pmsmix);\n    }\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a MSQUE.\n***************************************************************************/\nvoid MSQUE::AssertValid(ulong grf)\n{\n    MSQUE_PAR::AssertValid(0);\n    AssertPo(_pmsmix, 0);\n}\n\n/***************************************************************************\n    Mark memory for the MSQUE.\n***************************************************************************/\nvoid MSQUE::MarkMem(void)\n{\n    AssertValid(0);\n    MSQUE_PAR::MarkMem();\n    MarkMemObj(_pmsmix);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Static method to create a new midi stream queue.\n***************************************************************************/\nPMSQUE MSQUE::PmsqueNew(PMSMIX pmsmix)\n{\n    AssertPo(pmsmix, 0);\n    PMSQUE pmsque;\n\n    if (pvNil == (pmsque = NewObj MSQUE))\n        return pvNil;\n\n    if (!pmsque->_FInit(pmsmix))\n        ReleasePpo(&pmsque);\n\n    AssertNilOrPo(pmsque, 0);\n    return pmsque;\n}\n\n/***************************************************************************\n    Initialize the midi stream queue.\n***************************************************************************/\nbool MSQUE::_FInit(PMSMIX pmsmix)\n{\n    AssertPo(pmsmix, 0);\n    AssertBaseThis(0);\n\n    if (!MSQUE_PAR::_FInit())\n        return fFalse;\n\n    _pmsmix = pmsmix;\n    _pmsmix->AddRef();\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Enter the critical section protecting member variables.\n***************************************************************************/\nvoid MSQUE::_Enter(void)\n{\n    _mutx.Enter();\n}\n\n/***************************************************************************\n    Leave the critical section protecting member variables.\n***************************************************************************/\nvoid MSQUE::_Leave(void)\n{\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Fetch the given sound chunk as an MDWS.\n***************************************************************************/\nPBACO MSQUE::_PbacoFetch(PRCA prca, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    AssertPo(prca, 0);\n\n    return prca->PbacoFetch(ctg, cno, &MDWS::FReadMdws);\n}\n\n/***************************************************************************\n    An item was added to or deleted from the queue.\n***************************************************************************/\nvoid MSQUE::_Queue(long isndinMin)\n{\n    AssertThis(0);\n    SNDIN sndin;\n\n    _mutx.Enter();\n\n    if (_isndinCur == isndinMin && pvNil != _pglsndin)\n    {\n        for (; _isndinCur < _pglsndin->IvMac(); _isndinCur++)\n        {\n            _pglsndin->Get(_isndinCur, &sndin);\n            if (0 < sndin.cactPause)\n                break;\n\n            if (0 == sndin.cactPause && _pmsmix->FPlay(this, (PMDWS)sndin.pbaco, sndin.sii, sndin.spr, sndin.cactPlay,\n                                                       sndin.dtsStart, sndin.vlm))\n            {\n                _tsStart = TsCurrentSystem() - sndin.dtsStart;\n                goto LDone;\n            }\n        }\n\n        _pmsmix->FPlay(this);\n    }\n\nLDone:\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    One or more items in the queue were paused.\n***************************************************************************/\nvoid MSQUE::_PauseQueue(long isndinMin)\n{\n    AssertThis(0);\n    SNDIN sndin;\n\n    _mutx.Enter();\n\n    if (_isndinCur == isndinMin && _pglsndin->IvMac() > _isndinCur)\n    {\n        _pglsndin->Get(_isndinCur, &sndin);\n        sndin.dtsStart = TsCurrentSystem() - _tsStart;\n        _pglsndin->Put(_isndinCur, &sndin);\n\n        _Queue(isndinMin);\n    }\n\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    One or more items in the queue were resumed.\n***************************************************************************/\nvoid MSQUE::_ResumeQueue(long isndinMin)\n{\n    AssertThis(0);\n\n    _Queue(isndinMin);\n}\n\n/***************************************************************************\n    Called by the MSMIX to tell us that the indicated sound is done.\n    WARNING: this is called in an auxillary thread.\n***************************************************************************/\nvoid MSQUE::Notify(PMDWS pmdws)\n{\n    AssertThis(0);\n    SNDIN sndin;\n\n    _mutx.Enter();\n\n    if (pvNil != _pglsndin && _pglsndin->IvMac() > _isndinCur)\n    {\n        _pglsndin->Get(_isndinCur, &sndin);\n        if (pmdws == sndin.pbaco)\n        {\n            _isndinCur++;\n            _Queue(_isndinCur);\n        }\n    }\n\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Constructor for the midi stream output object.\n***************************************************************************/\nMSMIX::MSMIX(void)\n{\n    _vlmBase = kvlmFull;\n    _vlmSound = kvlmFull;\n}\n\n/***************************************************************************\n    Destructor for the midi stream output object.\n***************************************************************************/\nMSMIX::~MSMIX(void)\n{\n    Assert(pvNil == _pmisi || !_pmisi->FActive(), \"MISI still active!\");\n\n    if (hNil != _hth)\n    {\n        // tell the thread to end and wait for it to finish\n        _fDone = fTrue;\n        SetEvent(_hevt);\n        WaitForSingleObject(_hth, INFINITE);\n    }\n\n    if (hNil != _hevt)\n        CloseHandle(_hevt);\n\n    if (pvNil != _pglmsos)\n    {\n        Assert(_pglmsos->IvMac() == 0, \"MSMIX still has active sounds\");\n        ReleasePpo(&_pglmsos);\n    }\n    ReleasePpo(&_pmisi);\n    ReleasePpo(&_pglmevKey);\n}\n\n/***************************************************************************\n    Static method to create a new MSMIX.\n***************************************************************************/\nPMSMIX MSMIX::PmsmixNew(void)\n{\n    PMSMIX pmsmix;\n\n    if (pvNil == (pmsmix = NewObj MSMIX))\n        return pvNil;\n\n    if (!pmsmix->_FInit())\n        ReleasePpo(&pmsmix);\n\n    AssertNilOrPo(pmsmix, 0);\n    return pmsmix;\n}\n\n/***************************************************************************\n    Initialize the MSMIX - allocate the pglmsos and the midi stream api\n    object.\n***************************************************************************/\nbool MSMIX::_FInit(void)\n{\n    AssertBaseThis(0);\n    ulong luThread;\n\n    if (pvNil == (_pglmsos = GL::PglNew(size(MSOS))))\n        return fFalse;\n    _pglmsos->SetMinGrow(1);\n\n    if (pvNil == (_pmisi = WMS::PwmsNew(_MidiProc, (ulong)this)) &&\n        pvNil == (_pmisi = OMS::PomsNew(_MidiProc, (ulong)this)))\n    {\n        return fFalse;\n    }\n\n    if (hNil == (_hevt = CreateEvent(pvNil, fFalse, fFalse, pvNil)))\n        return fFalse;\n\n    // create the thread\n    if (hNil == (_hth = CreateThread(pvNil, 1024, MSMIX::_ThreadProc, this, 0, &luThread)))\n    {\n        return fFalse;\n    }\n\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a MSMIX.\n***************************************************************************/\nvoid MSMIX::AssertValid(ulong grf)\n{\n    MSMIX_PAR::AssertValid(0);\n    _mutx.Enter();\n    Assert(hNil != _hevt, \"nil event\");\n    Assert(hNil != _hth, \"nil thread\");\n    AssertPo(_pglmsos, 0);\n    AssertPo(_pmisi, 0);\n    AssertNilOrPo(_pglmevKey, 0);\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Mark memory for the MSMIX.\n***************************************************************************/\nvoid MSMIX::MarkMem(void)\n{\n    AssertValid(0);\n\n    MSMIX_PAR::MarkMem();\n\n    _mutx.Enter();\n    MarkMemObj(_pglmsos);\n    MarkMemObj(_pmisi);\n    MarkMemObj(_pglmevKey);\n    _mutx.Leave();\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Suspend or resume the midi stream mixer.\n***************************************************************************/\nvoid MSMIX::Suspend(bool fSuspend)\n{\n    AssertThis(0);\n\n    _mutx.Enter();\n\n    if (fSuspend)\n        _StopStream();\n    if (!_pmisi->FActivate(!fSuspend) && !fSuspend)\n        PushErc(ercSndMidiDeviceBusy);\n    _Restart();\n\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    If we're currently playing a midi stream stop it. Assumes the mutx is\n    already checked out exactly once.\n***************************************************************************/\nvoid MSMIX::_StopStream(void)\n{\n    AssertThis(0);\n\n    if (!_fPlaying)\n        return;\n\n    // set _fPlaying to false first so the call back knows that we're\n    // aborting the current stream - so it doesn't notify us.\n    _fPlaying = fFalse;\n\n    _pmisi->StopPlaying();\n\n    // Wait for the buffers to be returned\n    _fWaiting = fTrue;\n    _mutx.Leave();\n\n    while (_cpvOut > 0)\n        Sleep(0);\n\n    _mutx.Enter();\n    _fWaiting = fFalse;\n}\n\n/***************************************************************************\n    Set the volume for the midi stream output device.\n***************************************************************************/\nvoid MSMIX::SetVlm(long vlm)\n{\n    AssertThis(0);\n    ulong luHigh, luLow;\n\n    _mutx.Enter();\n\n    _vlmBase = vlm;\n    MulLu(_vlmBase, _vlmSound, &luHigh, &luLow);\n    _pmisi->SetVlm(LuHighLow(SuLow(luHigh), SuHigh(luLow)));\n\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Get the current volume.\n***************************************************************************/\nlong MSMIX::VlmCur(void)\n{\n    AssertThis(0);\n\n    return _vlmBase;\n}\n\n/***************************************************************************\n    Play the given midi stream from the indicated queue.\n***************************************************************************/\nbool MSMIX::FPlay(PMSQUE pmsque, PMDWS pmdws, long sii, long spr, long cactPlay, ulong dtsStart, long vlm)\n{\n    AssertThis(0);\n    AssertPo(pmsque, 0);\n    AssertNilOrPo(pmdws, 0);\n    long imsos;\n    MSOS msos;\n    bool fNew = fFalse;\n    bool fRet = fTrue;\n\n    if (pvNil != pmdws && pmdws->Dts() == 0)\n        return fFalse;\n\n    _mutx.Enter();\n\n    // stop any current midi stream on this msque\n    for (imsos = _pglmsos->IvMac(); imsos-- > 0;)\n    {\n        _pglmsos->Get(imsos, &msos);\n        if (msos.pmsque == pmsque)\n        {\n            if (0 == imsos)\n                _StopStream();\n            _pglmsos->Get(imsos, &msos);\n            _pglmsos->Delete(imsos);\n            break;\n        }\n    }\n\n    // start up the new midi stream\n    if (pvNil != pmdws)\n    {\n        // find the position to insert the new one\n        for (imsos = 0; imsos < _pglmsos->IvMac(); imsos++)\n        {\n            _pglmsos->Get(imsos, &msos);\n            if (msos.spr < spr || msos.spr == spr && msos.sii < sii)\n            {\n                // insert before the current one\n                break;\n            }\n        }\n\n        if (0 == imsos)\n        {\n            fNew = fTrue;\n            _StopStream();\n        }\n\n        ClearPb(&msos, size(msos));\n        msos.pmsque = pmsque;\n        msos.pmdws = pmdws;\n        msos.sii = sii;\n        msos.spr = spr;\n        msos.cactPlay = cactPlay;\n        msos.dts = pmdws->Dts();\n        msos.dtsStart = dtsStart;\n        msos.vlm = vlm;\n        msos.tsStart = TsCurrentSystem() - msos.dtsStart;\n\n        if (!_pglmsos->FInsert(imsos, &msos))\n        {\n            fRet = fFalse;\n            fNew = fFalse;\n        }\n    }\n\n    _Restart(fNew);\n\n    _mutx.Leave();\n    return fRet;\n}\n\n/***************************************************************************\n    The sound list changed so make sure we're playing the first tune.\n    Assumes the mutx is already checked out.\n***************************************************************************/\nvoid MSMIX::_Restart(bool fNew)\n{\n    AssertThis(0);\n\n    if (_pmisi->FActive() && !_fPlaying && _pglmsos->IvMac() > 0)\n    {\n        // start playing the first MSOS\n        MSOS msos;\n        ulong tsCur = TsCurrentSystem();\n\n        if (fNew)\n        {\n            _pglmsos->Get(0, &msos);\n            msos.tsStart = tsCur - msos.dtsStart;\n            _pglmsos->Put(0, &msos);\n        }\n        _SubmitBuffers(tsCur);\n    }\n\n    // signal the aux thread that the list changed\n    SetEvent(_hevt);\n}\n\n/***************************************************************************\n    Submit the buffer(s) for the current MSOS. Assumes the mutx is already\n    checked out.\n***************************************************************************/\nvoid MSMIX::_SubmitBuffers(ulong tsCur)\n{\n    Assert(!_fPlaying, \"already playing!\");\n    long cb, cbSkip;\n    MSOS msos;\n    long imsos;\n    void *pvData;\n    long cactSkip;\n\n    for (imsos = 0; imsos < _pglmsos->IvMac(); imsos++)\n    {\n        _pglmsos->Get(imsos, &msos);\n\n        cactSkip = (tsCur - msos.tsStart) / msos.dts;\n        if (cactSkip > 0)\n        {\n            ulong dtsSeek;\n\n            // we need to skip at least one loop of this sound\n            if (msos.cactPlay > 0 && (msos.cactPlay -= cactSkip) <= 0)\n                goto LTryNext;\n\n            dtsSeek = (tsCur - msos.tsStart) % msos.dts;\n            msos.tsStart = tsCur - dtsSeek;\n            _pglmsos->Put(imsos, &msos);\n        }\n\n        // Calling SetVlm causes us to tell the MISI about the new volume\n        _vlmSound = msos.vlm;\n        SetVlm(_vlmBase);\n\n        cbSkip = 0;\n        if (tsCur != msos.tsStart)\n        {\n            // have to seek into the stream\n            if (!_FGetKeyEvents(msos.pmdws, tsCur - msos.tsStart, &cbSkip))\n                goto LTryNext;\n\n            cb = LwMul(_pglmevKey->IvMac(), size(MEV));\n            if (0 < cb)\n            {\n                pvData = _pglmevKey->PvLock(0);\n                if (!_pmisi->FQueueBuffer(pvData, cb, 0, 1, 0))\n                {\n                    // streaming the key events failed\n                    _pglmevKey->Unlock();\n                    goto LTryNext;\n                }\n\n                _cpvOut++;\n                _fPlaying = fTrue;\n            }\n        }\n\n        _cpvOut++;\n        pvData = msos.pmdws->PvLockData(&cb);\n        if (_pmisi->FQueueBuffer(pvData, cb, cbSkip, msos.cactPlay, (ulong)msos.pmdws))\n        {\n            // it worked!\n            _fPlaying = fTrue;\n            break;\n        }\n\n        // submitting the buffer failed\n        msos.pmdws->UnlockData();\n        _cpvOut--;\n\n    LTryNext:\n        // make this one disappear\n        // stop the seek buffer from playing\n        _StopStream();\n\n        // make this MSOS have lowest possible priority and 0 time\n        // remaining to play - we'll move it to the end of _pglmsos\n        // in the code below.\n        msos.tsStart = tsCur - msos.dtsStart;\n        msos.cactPlay = 1;\n        msos.sii = klwMin;\n        msos.spr = klwMin;\n        _pglmsos->Put(imsos, &msos);\n    }\n\n    if (_fPlaying && imsos > 0)\n    {\n        // move the skipped ones to the end of the list\n        long cmsos = _pglmsos->IvMac();\n\n        AssertIn(imsos, 1, cmsos);\n        SwapBlocks(_pglmsos->QvGet(0), LwMul(imsos, size(MSOS)), LwMul(cmsos - imsos, size(MSOS)));\n    }\n}\n\n/***************************************************************************\n    Seek into the pmdws the given amount of time, and accumulate key events\n    in _pglmevKey.\n***************************************************************************/\nbool MSMIX::_FGetKeyEvents(PMDWS pmdws, ulong dtsSeek, long *pcbSkip)\n{\n    AssertPo(pmdws, 0);\n    AssertVarMem(pcbSkip);\n\n    // This keeps track of which events we've seen (so we only record the\n    // most recent one. We record tempo changes, program changes and\n    // controller changes.\n    struct MKEY\n    {\n        ushort grfbitProgram;\n        ushort grfbitChannelPressure;\n        ushort grfbitPitchWheel;\n        ushort fTempo : 1;\n\n        ushort rggrfbitControl[120];\n    };\n\n    MKEY mkey;\n    PMEV pmev;\n    PMEV pmevMin;\n    PMEV pmevLim;\n\n    MEV rgmev[100];\n    PMEV pmevDst;\n    PMEV pmevLimDst;\n\n    long cb;\n    ulong dts;\n    long igrfbit;\n    ushort fbit;\n    ushort *pgrfbit;\n    byte bT;\n\n    ClearPb(&mkey, size(mkey));\n    ClearPb(rgmev, size(rgmev));\n\n    if (pvNil == _pglmevKey && (pvNil == (_pglmevKey = GL::PglNew(size(MEV)))))\n        return fFalse;\n    _pglmevKey->FSetIvMac(0);\n\n    pmevMin = (PMEV)pmdws->PvLockData(&cb);\n    cb = LwRoundToward(cb, size(MEV));\n    pmevLim = (PMEV)PvAddBv(pmevMin, cb);\n\n    dts = 0;\n    for (pmev = pmevMin; pmev < pmevLim; pmev++)\n    {\n        dts += pmev->dwDeltaTime;\n        if (dts >= dtsSeek)\n            break;\n    }\n\n    if (pmev + 1 >= pmevLim)\n    {\n        // dtsSeek goes past the end!\n        goto LFail;\n    }\n\n    // get the destination pointer - this walks backwards\n    pmevLimDst = rgmev + CvFromRgv(rgmev);\n    pmevDst = pmevLimDst;\n\n    // put the first event in the key frame list with a smaller time\n    --pmevDst;\n    pmevDst->dwDeltaTime = dts - dtsSeek;\n    pmevDst->dwEvent = pmev->dwEvent;\n    *pcbSkip = BvSubPvs(pmev + 1, pmevMin);\n\n    for (;;)\n    {\n        if (pmevDst <= rgmev || pmev <= pmevMin)\n        {\n            // destination buffer is full - write it out\n            long cmev, cmevNew;\n            PMEV qrgmev;\n\n            cmev = _pglmevKey->IvMac();\n            cmevNew = pmevLimDst - pmevDst;\n\n            if (!_pglmevKey->FSetIvMac(cmev + cmevNew))\n            {\n            LFail:\n                _pglmevKey->FSetIvMac(0);\n                _pglmevKey->FEnsureSpace(0, fgrpShrink);\n                pmdws->UnlockData();\n                return fFalse;\n            }\n\n            qrgmev = (PMEV)_pglmevKey->QvGet(0);\n            BltPb(qrgmev, qrgmev + cmevNew, LwMul(cmev, size(MEV)));\n            CopyPb(pmevDst, qrgmev, LwMul(cmevNew, size(MEV)));\n\n            if (pmev <= pmevMin)\n                break;\n\n            pmevDst = pmevLimDst;\n        }\n\n        --pmev;\n        switch (pmev->dwEvent >> 24)\n        {\n        case MEVT_SHORTMSG:\n            bT = (byte)pmev->dwEvent;\n\n            // The high nibble of bT is the status value\n            // The low nibble is the channel\n            switch (bT & 0xF0)\n            {\n            case 0xB0: // control change\n                igrfbit = BHigh(SuLow(pmev->dwEvent));\n                if (!FIn(igrfbit, 0, CvFromRgv(mkey.rggrfbitControl)))\n                    break;\n                pgrfbit = &mkey.rggrfbitControl[igrfbit];\n                goto LTest;\n\n            case 0xC0: // program change\n                pgrfbit = &mkey.grfbitProgram;\n                goto LTest;\n\n            case 0xD0: // channel pressure\n                pgrfbit = &mkey.grfbitChannelPressure;\n                goto LTest;\n\n            case 0xE0: // pitch wheel\n                pgrfbit = &mkey.grfbitPitchWheel;\n            LTest:\n                fbit = 1 << (bT & 0x0F);\n                if (!(*pgrfbit & fbit))\n                {\n                    // first time we've seen this event on this channel\n                    *pgrfbit |= fbit;\n                    goto LCopy;\n                }\n                break;\n            }\n            break;\n\n        case MEVT_TEMPO:\n            if (!mkey.fTempo)\n            {\n                mkey.fTempo = fTrue;\n            LCopy:\n                pmevDst--;\n                pmevDst->dwDeltaTime = 0;\n                pmevDst->dwEvent = pmev->dwEvent;\n            }\n            break;\n        }\n    }\n\n    _pglmevKey->FEnsureSpace(0, fgrpShrink);\n    pmdws->UnlockData();\n    return fTrue;\n}\n\n/***************************************************************************\n    Call back from the midi stream stuff.\n***************************************************************************/\nvoid MSMIX::_MidiProc(ulong luUser, void *pvData, ulong luData)\n{\n    PMSMIX pmsmix;\n    PMDWS pmdws;\n\n    pmsmix = (PMSMIX)luUser;\n    AssertPo(pmsmix, 0);\n    pmdws = (PMDWS)luData;\n    AssertNilOrPo(pmdws, 0);\n\n    pmsmix->_Notify(pvData, pmdws);\n}\n\n/***************************************************************************\n    The midi stream is done with the given header.\n***************************************************************************/\nvoid MSMIX::_Notify(void *pvData, PMDWS pmdws)\n{\n    AssertNilOrPo(pmdws, 0);\n    MSOS msos;\n\n    _mutx.Enter();\n\n    Assert(_cpvOut > 0, \"what buffer is this?\");\n    _cpvOut--;\n    if (pvNil != pmdws)\n    {\n        AssertVar(_pglmsos->IvMac() > 0 && ((MSOS *)_pglmsos->QvGet(0))->pmdws == pmdws, \"Wrong pmdws\", &pmdws);\n        pmdws->UnlockData();\n    }\n    else if (pvNil != _pglmevKey && pvData == _pglmevKey->QvGet(0))\n        _pglmevKey->Unlock();\n    else\n    {\n        Bug(\"Bad pvData/pmdws combo\");\n    }\n\n    if (!_fPlaying)\n    {\n        // we don't need to notify or start the next sound.\n        _mutx.Leave();\n        return;\n    }\n\n    if (_fPlaying && _cpvOut == 0)\n    {\n        // all headers are in and we're supposed to be playing - so notify the\n        // previous pmdws and start up the next one.\n        _fPlaying = fFalse;\n        if (0 < _pglmsos->IvMac())\n        {\n            _pglmsos->Get(0, &msos);\n            _pglmsos->Delete(0);\n\n            _mutx.Leave();\n\n            // do the notify\n            msos.pmsque->Notify(msos.pmdws);\n\n            _mutx.Enter();\n        }\n\n        if (_pglmsos->IvMac() > 0)\n            _Restart();\n    }\n\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    AT: Static method. Thread function for the MSMIX object.\n***************************************************************************/\nulong __stdcall MSMIX::_ThreadProc(void *pv)\n{\n    PMSMIX pmsmix = (PMSMIX)pv;\n\n    AssertPo(pmsmix, 0);\n\n    return pmsmix->_LuThread();\n}\n\n/***************************************************************************\n    AT: This thread just sleeps until the next sound is due to expire, then\n    wakes up and nukes any expired sounds.\n***************************************************************************/\nulong MSMIX::_LuThread(void)\n{\n    AssertThis(0);\n    ulong tsCur;\n    long imsos;\n    MSOS msos;\n    long cactSkip;\n    ulong dtsNextStop = kluMax;\n\n    for (;;)\n    {\n        WaitForSingleObject(_hevt, dtsNextStop);\n\n        if (_fDone)\n            return 0;\n\n        _mutx.Enter();\n\n        if (_fWaiting)\n        {\n            // we're waiting for buffers to be returned, so don't touch\n            // anything!\n            dtsNextStop = 1;\n        }\n        else\n        {\n            // See if any sounds have expired...\n            tsCur = TsCurrentSystem();\n            dtsNextStop = kluMax;\n            for (imsos = _pglmsos->IvMac(); imsos-- > 0;)\n            {\n                if (imsos == 0 && _fPlaying)\n                    break;\n                _pglmsos->Get(imsos, &msos);\n\n                cactSkip = (tsCur - msos.tsStart) / msos.dts;\n                if (cactSkip > 0)\n                {\n                    ulong dtsSeek;\n\n                    if (msos.cactPlay > 0 && (msos.cactPlay -= cactSkip) <= 0)\n                    {\n                        // this sound is done\n                        _pglmsos->Delete(imsos);\n                        _mutx.Leave();\n\n                        // do the notify\n                        msos.pmsque->Notify(msos.pmdws);\n\n                        _mutx.Enter();\n                        dtsNextStop = 0;\n                        break;\n                    }\n\n                    // adjust the values in the MSOS\n                    dtsSeek = (tsCur - msos.tsStart) % msos.dts;\n                    msos.tsStart = tsCur - dtsSeek;\n                    _pglmsos->Put(imsos, &msos);\n                }\n\n                dtsNextStop = LuMin(dtsNextStop, msos.dts - (tsCur - msos.tsStart));\n            }\n        }\n\n        _mutx.Leave();\n    }\n}\n\n/***************************************************************************\n    Constructor for the MIDI stream interface.\n***************************************************************************/\nMISI::MISI(PFNMIDI pfn, ulong luUser)\n{\n    AssertBaseThis(0);\n    Assert(pvNil != pfn, 0);\n\n    _pfnCall = pfn;\n    _luUser = luUser;\n\n    _tBogusDriver = tMaybe;\n    _luVolSys = (ulong)(-1);\n    _vlmBase = kvlmFull;\n}\n\n/***************************************************************************\n    Reset the midi device.\n***************************************************************************/\nvoid MISI::_Reset(void)\n{\n    Assert(hNil != _hms, 0);\n    long iv;\n\n    midiOutReset(_hms);\n\n    // Reset channel pressure and pitch wheel on all channels.\n    // We shouldn't have to do this, but some drivers don't reset these.\n    for (iv = 0; iv < 16; iv++)\n    {\n        midiOutShortMsg(_hms, 0xD0 | iv);\n        midiOutShortMsg(_hms, 0x004000E0 | iv);\n    }\n}\n\n/***************************************************************************\n    Get the system volume level.\n***************************************************************************/\nvoid MISI::_GetSysVol(void)\n{\n    Assert(hNil != _hms, \"calling _GetSysVol with nil _hms\");\n    ulong lu0, lu1, lu2;\n\n    switch (_tBogusDriver)\n    {\n    case tYes:\n        // just use vluSysVolFake...\n        _luVolSys = vluSysVolFake;\n        return;\n\n    case tMaybe:\n        // need to determine if midiOutGetVolume really works for this\n        // driver.\n\n        // Some drivers will only ever tell us what we last gave them -\n        // irregardless of what the user has set the value to. Those drivers\n        // will always give us full volume the first time we ask.\n\n        // We also look for drivers that give us nonsense values.\n\n        if (0 != midiOutGetVolume(_hms, &_luVolSys) || _luVolSys == ULONG_MAX || 0 != midiOutSetVolume(_hms, 0ul) ||\n            0 != midiOutGetVolume(_hms, &lu0) || 0 != midiOutSetVolume(_hms, 0x7FFF7FFFul) ||\n            0 != midiOutGetVolume(_hms, &lu1) || 0 != midiOutSetVolume(_hms, 0xFFFFFFFFul) ||\n            0 != midiOutGetVolume(_hms, &lu2) || lu0 >= lu1 || lu1 >= lu2)\n        {\n            _tBogusDriver = tYes;\n            _luVolSys = vluSysVolFake;\n        }\n        else\n        {\n            _tBogusDriver = tNo;\n            vluSysVolFake = _luVolSys;\n        }\n        midiOutSetVolume(_hms, _luVolSys);\n        break;\n\n    default:\n        if (0 != midiOutGetVolume(_hms, &_luVolSys))\n        {\n            // failed - use the fake value\n            _luVolSys = vluSysVolFake;\n        }\n        else\n            vluSysVolFake = _luVolSys;\n        break;\n    }\n}\n\n/***************************************************************************\n    Set the system volume level.\n***************************************************************************/\nvoid MISI::_SetSysVol(ulong luVol)\n{\n    Assert(hNil != _hms, \"calling _SetSysVol with nil _hms\");\n    midiOutSetVolume(_hms, luVol);\n}\n\n/***************************************************************************\n    Set the system volume level from the current values of _vlmBase\n    and _luVolSys. We set the system volume to the result of scaling\n    _luVolSys by _vlmBase.\n***************************************************************************/\nvoid MISI::_SetSysVlm(void)\n{\n    ulong luVol;\n\n    luVol = LuVolScale(_luVolSys, _vlmBase);\n    _SetSysVol(luVol);\n}\n\n/***************************************************************************\n    Set the volume for the midi stream output device.\n***************************************************************************/\nvoid MISI::SetVlm(long vlm)\n{\n    AssertThis(0);\n\n    if (vlm != _vlmBase)\n    {\n        _vlmBase = vlm;\n        if (hNil != _hms)\n            _SetSysVlm();\n    }\n}\n\n/***************************************************************************\n    Get the current volume.\n***************************************************************************/\nlong MISI::VlmCur(void)\n{\n    AssertThis(0);\n\n    return _vlmBase;\n}\n\n/***************************************************************************\n    Return whether the midi stream output device is active.\n***************************************************************************/\nbool MISI::FActive(void)\n{\n    return hNil != _hms;\n}\n\n/***************************************************************************\n    Activate or deactivate the Midi stream output object.\n***************************************************************************/\nbool MISI::FActivate(bool fActivate)\n{\n    AssertThis(0);\n\n    return fActivate ? _FOpen() : _FClose();\n}\n\n/***************************************************************************\n    Constructor for the Win95 Midi stream class.\n***************************************************************************/\nWMS::WMS(PFNMIDI pfn, ulong luUser) : MISI(pfn, luUser)\n{\n}\n\n/***************************************************************************\n    Destructor for the Win95 Midi stream class.\n***************************************************************************/\nWMS::~WMS(void)\n{\n    if (hNil != _hth)\n    {\n        // tell the thread to end and wait for it to finish\n        _fDone = fTrue;\n        SetEvent(_hevt);\n        WaitForSingleObject(_hth, INFINITE);\n    }\n\n    if (hNil != _hevt)\n        CloseHandle(_hevt);\n\n    if (pvNil != _pglpmsir)\n    {\n        Assert(0 == _pglpmsir->IvMac(), \"WMS still has some active buffers\");\n        ReleasePpo(&_pglpmsir);\n    }\n    if (hNil != _hlib)\n    {\n        FreeLibrary(_hlib);\n        _hlib = hNil;\n    }\n}\n\n/***************************************************************************\n    Create a new WMS.\n***************************************************************************/\nPWMS WMS::PwmsNew(PFNMIDI pfn, ulong luUser)\n{\n    PWMS pwms;\n\n    if (pvNil == (pwms = NewObj WMS(pfn, luUser)))\n        return pvNil;\n\n    if (!pwms->_FInit())\n        ReleasePpo(&pwms);\n\n    return pwms;\n}\n\n/***************************************************************************\n    Initialize the WMS: get the addresses of the stream API.\n***************************************************************************/\nbool WMS::_FInit(void)\n{\n    OSVERSIONINFO osv;\n    ulong luThread;\n\n    // Make sure we're on Win95 and not NT, since the API exists on NT 3.51\n    // but it fails.\n    osv.dwOSVersionInfoSize = size(osv);\n    if (!GetVersionEx(&osv))\n        return fFalse;\n\n// Old header files don't have this defined!\n#ifndef VER_PLATFORM_WIN32_WINDOWS\n#define VER_PLATFORM_WIN32_WINDOWS 1\n#endif //! VER_PLATFORM_WIN32_WINDOWS\n\n    if (VER_PLATFORM_WIN32_WINDOWS != osv.dwPlatformId)\n    {\n        // don't bother trying - NT's scheduler works fine anyway.\n        return fFalse;\n    }\n\n    if (hNil == (_hlib = LoadLibrary(PszLit(\"WINMM.DLL\"))))\n        return fFalse;\n\n#define _Get(n)                                                                                                        \\\n    if (pvNil == (*(void **)&_pfn##n = (void *)GetProcAddress(_hlib, \"midiStream\" #n)))                                \\\n    {                                                                                                                  \\\n        return fFalse;                                                                                                 \\\n    }\n\n    _Get(Open);\n    _Get(Close);\n    _Get(Property);\n    _Get(Position);\n    _Get(Out);\n    _Get(Pause);\n    _Get(Restart);\n    _Get(Stop);\n\n#undef _Get\n\n    if (pvNil == (_pglpmsir = GL::PglNew(size(PMSIR))))\n        return fFalse;\n    _pglpmsir->SetMinGrow(1);\n\n    if (hNil == (_hevt = CreateEvent(pvNil, fFalse, fFalse, pvNil)))\n        return fFalse;\n\n    // create the thread\n    if (hNil == (_hth = CreateThread(pvNil, 1024, WMS::_ThreadProc, this, 0, &luThread)))\n    {\n        return fFalse;\n    }\n\n    AssertThis(0);\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a WMS.\n***************************************************************************/\nvoid WMS::AssertValid(ulong grf)\n{\n    WMS_PAR::AssertValid(0);\n    Assert(hNil != _hlib, 0);\n    long cpmsir;\n\n    _mutx.Enter();\n    Assert(hNil != _hevt, \"nil event\");\n    Assert(hNil != _hth, \"nil thread\");\n    AssertPo(_pglpmsir, 0);\n    cpmsir = _pglpmsir->IvMac();\n    Assert(_cmhOut >= 0, \"negative _cmhOut\");\n    AssertIn(_ipmsirCur, 0, cpmsir + 1);\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Mark memory for the WMS.\n***************************************************************************/\nvoid WMS::MarkMem(void)\n{\n    AssertValid(0);\n    PMSIR pmsir;\n    long ipmsir;\n\n    WMS_PAR::MarkMem();\n\n    _mutx.Enter();\n    for (ipmsir = _pglpmsir->IvMac(); ipmsir-- > 0;)\n    {\n        _pglpmsir->Get(ipmsir, &pmsir);\n        AssertVarMem(pmsir);\n        MarkPv(pmsir);\n    }\n    MarkMemObj(_pglpmsir);\n    _mutx.Leave();\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Opens the midi stream and sets the time division to 1000 ticks per\n    quarter note. It is assumed that the midi data has a tempo record\n    indicating 1 quarter note per second (1000000 microseconds per quarter).\n    The end result is that ticks are milliseconds.\n***************************************************************************/\nbool WMS::_FOpen(void)\n{\n    AssertThis(0);\n\n    // MIDIPROPTIMEDIV struct\n    struct MT\n    {\n        DWORD cbStruct;\n        DWORD dwTimeDiv;\n    };\n\n    MT mt;\n    UINT uT = MIDI_MAPPER;\n\n    _mutx.Enter();\n\n    if (hNil != _hms)\n        goto LDone;\n\n    if (MMSYSERR_NOERROR != (*_pfnOpen)(&_hms, &uT, 1, (ulong)_MidiProc, (ulong)this, CALLBACK_FUNCTION))\n    {\n        goto LFail;\n    }\n\n    // We set the time division to 1000 ticks per beat, so clients can\n    // use 1 beat per second and just use milliseconds for timing.\n    // We also un-pause the stream.\n    mt.cbStruct = size(mt);\n    mt.dwTimeDiv = 1000;\n\n    if (MMSYSERR_NOERROR != (*_pfnProperty)(_hms, (byte *)&mt, MIDIPROP_SET | MIDIPROP_TIMEDIV))\n    {\n        (*_pfnClose)(_hms);\n    LFail:\n        _hms = hNil;\n        _mutx.Leave();\n        return fFalse;\n    }\n\n    // we know there are no buffers submitted\n    AssertVar(_cmhOut == 0, \"why is _cmhOut non-zero?\", &_cmhOut);\n    _cmhOut = 0;\n\n    // get the system volume level\n    _GetSysVol();\n\n    // set our volume level\n    _SetSysVlm();\n\nLDone:\n    _mutx.Leave();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Close the midi stream.\n***************************************************************************/\nbool WMS::_FClose(void)\n{\n    AssertThis(0);\n\n    _mutx.Enter();\n\n    if (hNil == _hms)\n    {\n        _mutx.Leave();\n        return fTrue;\n    }\n\n    if (0 < _cmhOut)\n    {\n        BugVar(\"closing a stream that still has buffers!\", &_cmhOut);\n        _mutx.Leave();\n        return fFalse;\n    }\n\n    // reset the device\n    _Reset();\n\n    // restore the volume level\n    _SetSysVol(_luVolSys);\n\n    // free the device\n    (*_pfnClose)(_hms);\n    _hms = hNil;\n\n    _mutx.Leave();\n\n    return fTrue;\n}\n\n#ifdef STREAM_BUG\n/***************************************************************************\n    Just return the value of our flag, not (hNil != _hms).\n***************************************************************************/\nbool WMS::FActive(void)\n{\n    return _fActive;\n}\n\n/***************************************************************************\n    Need to set _fActive as well.\n***************************************************************************/\nbool WMS::FActivate(bool fActivate)\n{\n    bool fRet;\n\n    fRet = WMS_PAR::FActivate(fActivate);\n    if (fRet)\n        _fActive = FPure(fActivate);\n    return fRet;\n}\n#endif // STREAM_BUG\n\n/***************************************************************************\n    Reset the midi stream so it's ready to accept new input. Assumes we\n    already have the mutx.\n***************************************************************************/\nvoid WMS::_ResetStream(void)\n{\n    if (!FActive())\n        return;\n\n#ifdef STREAM_BUG\n    if (hNil == _hms)\n        _FOpen();\n    else\n    {\n        (*_pfnStop)(_hms);\n        _FClose();\n        _FOpen();\n    }\n#else  //! STREAM_BUG\n    (*_pfnStop)(_hms);\n    _Reset();\n#endif //! STREAM_BUG\n}\n\n/***************************************************************************\n    This submits a buffer and restarts the midi stream. If the data is\n    bigger than 64K, this (in conjunction with _Notify) deals with it.\n***************************************************************************/\nbool WMS::FQueueBuffer(void *pvData, long cb, long ibStart, long cactPlay, ulong luData)\n{\n    AssertThis(0);\n    AssertPvCb(pvData, cb);\n    AssertIn(ibStart, 0, cb);\n    Assert(cb % size(MEV) == 0, \"bad cb\");\n    Assert(ibStart % size(MEV) == 0, \"bad cb\");\n\n    long ipmsir;\n    PMSIR pmsir = pvNil;\n    bool fRet = fTrue;\n\n    _mutx.Enter();\n\n    if (hNil == _hms)\n        goto LFail;\n\n    if (!FAllocPv((void **)&pmsir, size(MSIR), fmemClear, mprNormal))\n        goto LFail;\n\n    pmsir->pvData = pvData;\n    pmsir->cb = cb;\n    pmsir->cactPlay = cactPlay;\n    pmsir->luData = luData;\n    pmsir->ibNext = ibStart;\n\n    if (_hms == hNil || !_pglpmsir->FAdd(&pmsir, &ipmsir))\n        goto LFail;\n\n    if (0 == _CmhSubmitBuffers() && ipmsir == 0)\n    {\n        // submitting the buffers failed\n        _pglpmsir->Delete(0);\n        _ipmsirCur = 0;\n    LFail:\n        FreePpv((void **)pmsir);\n        fRet = fFalse;\n    }\n\n    _mutx.Leave();\n\n    return fRet;\n}\n\n/***************************************************************************\n    Submits buffers. Assumes the _mutx is already ours.\n***************************************************************************/\nlong WMS::_CmhSubmitBuffers(void)\n{\n    PMSIR pmsir;\n    long cbMh;\n    PMH pmh;\n    long imh;\n    long cmh = 0;\n\n    while (_ipmsirCur < _pglpmsir->IvMac())\n    {\n        _pglpmsir->Get(_ipmsirCur, &pmsir);\n        if (pmsir->ibNext >= pmsir->cb)\n        {\n            // see if the sound should be repeated\n            if (pmsir->cactPlay == 1)\n            {\n                _ipmsirCur++;\n                continue;\n            }\n            pmsir->cactPlay--;\n            pmsir->ibNext = 0;\n        }\n\n        // see if one of the buffers is free\n        for (imh = 0;; imh++)\n        {\n            if (imh >= kcmhMsir)\n            {\n                // all buffers are busy\n                Assert(_cmhOut >= kcmhMsir, 0);\n                return cmh;\n            }\n            if (pmsir->rgibLim[imh] == 0)\n                break;\n        }\n\n        // fill the buffer and submit it\n        pmh = &pmsir->rgmh[imh];\n        pmh->lpData = (byte *)PvAddBv(pmsir->pvData, pmsir->ibNext);\n        cbMh = LwMin(pmsir->cb - pmsir->ibNext, kcbMaxWmsBuffer);\n        pmh->dwBufferLength = cbMh;\n        pmh->dwBytesRecorded = cbMh;\n        pmh->dwUser = (ulong)pmsir;\n        pmsir->ibNext += cbMh;\n        pmsir->rgibLim[imh] = pmsir->ibNext;\n\n        if (_FSubmit(pmh))\n            cmh++;\n        else\n        {\n            // just play the previous buffers and forget about this one\n            pmsir->ibNext = pmsir->cb;\n            pmsir->rgibLim[imh] = 0;\n            pmsir->cactPlay = 1;\n            _ipmsirCur++;\n        }\n    }\n\n    return cmh;\n}\n\n/***************************************************************************\n    Prepare and submit the given buffer. Assumes the mutx is ours.\n***************************************************************************/\nbool WMS::_FSubmit(PMH pmh)\n{\n    bool fRestart = (0 == _cmhOut);\n\n    if (hNil == _hms)\n        return fFalse;\n\n    // prepare and submit the buffer\n    if (MMSYSERR_NOERROR != midiOutPrepareHeader(_hms, (PMHO)pmh, sizeof(*pmh)))\n        return fFalse;\n\n    if (MMSYSERR_NOERROR != (*_pfnOut)(_hms, (PMHO)pmh, size(*pmh)))\n    {\n        midiOutUnprepareHeader(_hms, (PMHO)pmh, size(*pmh));\n        return fFalse;\n    }\n    _cmhOut++;\n\n    if (fRestart)\n        (*_pfnRestart)(_hms);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Stop the midi stream.\n***************************************************************************/\nvoid WMS::StopPlaying(void)\n{\n    AssertThis(0);\n\n    _mutx.Enter();\n\n    if (hNil != _hms && _cmhOut > 0)\n    {\n        (*_pfnStop)(_hms);\n        _ipmsirCur = _pglpmsir->IvMac();\n    }\n\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Call back from the midi stream. If the number of active buffers returns\n    to 0, this stops the midi stream. If the indicated sound is done,\n    we notify the client.\n***************************************************************************/\nvoid __stdcall WMS::_MidiProc(HMS hms, ulong msg, ulong luUser, ulong lu1, ulong lu2)\n{\n    PWMS pwms;\n    PMH pmh;\n\n    if (msg != MOM_DONE)\n        return;\n\n    pwms = (PWMS)luUser;\n    AssertPo(pwms, 0);\n    pmh = (PMH)lu1;\n    AssertVarMem(pmh);\n    pwms->_Notify(hms, pmh);\n}\n\n/***************************************************************************\n    The this-based callback.\n\n    The mmsys guys claim that it's illegal to call midiOutUnprepareHeader,\n    midiStreamStop and midiOutReset. So we just signal another thread to\n    do this work.\n***************************************************************************/\nvoid WMS::_Notify(HMS hms, PMH pmh)\n{\n    AssertThis(0);\n    Assert(hNil != hms, 0);\n    AssertVarMem(pmh);\n\n    PMSIR pmsir;\n    long imh;\n\n    _mutx.Enter();\n\n    Assert(hms == _hms, \"wrong hms\");\n\n    midiOutUnprepareHeader(hms, (PMHO)pmh, size(*pmh));\n    pmsir = (PMSIR)pmh->dwUser;\n    AssertVarMem(pmsir);\n    AssertPvCb(pmsir->pvData, pmsir->cb);\n\n    for (imh = 0;; imh++)\n    {\n        if (imh >= kcmhMsir)\n        {\n            Bug(\"corrupt msir\");\n            _mutx.Leave();\n            return;\n        }\n\n        if (pmh == &pmsir->rgmh[imh])\n            break;\n    }\n\n    Assert(pmh->lpData == PvAddBv(pmsir->pvData, pmsir->rgibLim[imh] - pmh->dwBufferLength), \"pmh->lpData is wrong\");\n\n    // mark this buffer free\n    pmsir->rgibLim[imh] = 0;\n\n    // fill and submit buffers\n    _CmhSubmitBuffers();\n\n    // update the submitted buffer count\n    --_cmhOut;\n\n    // wake up the auxillary thread to do callbacks and stop and reset\n    // the device it there's nothing more to play\n    SetEvent(_hevt);\n\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    AT: Static method. Thread function for the WMS object. This thread\n    just waits for the event to be triggered, indicating that we got\n    a callback from the midiStream stuff and it's time to do our callbacks.\n***************************************************************************/\nulong __stdcall WMS::_ThreadProc(void *pv)\n{\n    PWMS pwms = (PWMS)pv;\n\n    AssertPo(pwms, 0);\n\n    return pwms->_LuThread();\n}\n\n/***************************************************************************\n    AT: This thread just sleeps until the next sound is due to expire, then\n    wakes up and nukes any expired sounds.\n***************************************************************************/\nulong WMS::_LuThread(void)\n{\n    AssertThis(0);\n\n    for (;;)\n    {\n        WaitForSingleObject(_hevt, INFINITE);\n\n        if (_fDone)\n            return 0;\n\n        _mutx.Enter();\n\n        if (hNil != _hms && 0 == _cmhOut)\n            _ResetStream();\n\n        _DoCallBacks();\n\n        _mutx.Leave();\n    }\n}\n\n/***************************************************************************\n    Check for MSIRs that are done and do the callback on them and free them.\n    Assumes the _mutx is checked out exactly once.\n***************************************************************************/\nvoid WMS::_DoCallBacks()\n{\n    PMSIR pmsir;\n\n    AssertIn(_ipmsirCur, 0, _pglpmsir->IvMac() + 1);\n    while (0 < _ipmsirCur)\n    {\n        _pglpmsir->Get(0, &pmsir);\n\n        if (_cmhOut > 0)\n        {\n            // see if the MSIR is done\n            long imh;\n\n            for (imh = 0; imh < kcmhMsir; imh++)\n            {\n                if (0 < pmsir->rgibLim[imh])\n                {\n                    // this one is busy\n                    return;\n                }\n            }\n        }\n\n        // this one is done\n        _pglpmsir->Delete(0);\n        _ipmsirCur--;\n        _mutx.Leave();\n\n        // notify the client that we're done with the sound\n        (*_pfnCall)(_luUser, pmsir->pvData, pmsir->luData);\n        FreePpv((void **)&pmsir);\n\n        _mutx.Enter();\n        AssertIn(_ipmsirCur, 0, _pglpmsir->IvMac() + 1);\n    }\n}\n\n/***************************************************************************\n    Constructor for our own midi stream api implementation.\n***************************************************************************/\nOMS::OMS(PFNMIDI pfn, ulong luUser) : MISI(pfn, luUser)\n{\n}\n\n/***************************************************************************\n    Destructor for our midi stream.\n***************************************************************************/\nOMS::~OMS(void)\n{\n    if (hNil != _hth)\n    {\n        // tell the thread to end and wait for it to finish\n        _fDone = fTrue;\n        SetEvent(_hevt);\n        WaitForSingleObject(_hth, INFINITE);\n    }\n\n    _mutx.Enter();\n\n    if (hNil != _hevt)\n        CloseHandle(_hevt);\n\n    Assert(_hms == hNil, \"Still have an HMS\");\n    Assert(_pglmsb->IvMac() == 0, \"Still have some buffers\");\n    ReleasePpo(&_pglmsb);\n\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Create a new OMS.\n***************************************************************************/\nPOMS OMS::PomsNew(PFNMIDI pfn, ulong luUser)\n{\n    POMS poms;\n\n    if (pvNil == (poms = NewObj OMS(pfn, luUser)))\n        return pvNil;\n\n    if (!poms->_FInit())\n        ReleasePpo(&poms);\n\n    return poms;\n}\n\n/***************************************************************************\n    Initialize the OMS.\n***************************************************************************/\nbool OMS::_FInit(void)\n{\n    AssertBaseThis(0);\n    ulong luThread;\n\n    if (pvNil == (_pglmsb = GL::PglNew(size(MSB))))\n        return fFalse;\n    _pglmsb->SetMinGrow(1);\n\n    if (hNil == (_hevt = CreateEvent(pvNil, fFalse, fFalse, pvNil)))\n        return fFalse;\n\n    // create the thread in a suspended state\n    if (hNil == (_hth = CreateThread(pvNil, 1024, OMS::_ThreadProc, this, CREATE_SUSPENDED, &luThread)))\n    {\n        return fFalse;\n    }\n\n    SetThreadPriority(_hth, THREAD_PRIORITY_TIME_CRITICAL);\n\n    // start the thread\n    ResumeThread(_hth);\n\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a OMS.\n***************************************************************************/\nvoid OMS::AssertValid(ulong grf)\n{\n    OMS_PAR::AssertValid(0);\n\n    _mutx.Enter();\n    Assert(hNil != _hth, \"nil thread\");\n    Assert(hNil != _hevt, \"nil event\");\n    AssertPo(_pglmsb, 0);\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Mark memory for the OMS.\n***************************************************************************/\nvoid OMS::MarkMem(void)\n{\n    AssertValid(0);\n    OMS_PAR::MarkMem();\n\n    _mutx.Enter();\n    MarkMemObj(_pglmsb);\n    _mutx.Leave();\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Open the stream.\n***************************************************************************/\nbool OMS::_FOpen(void)\n{\n    AssertThis(0);\n\n    _mutx.Enter();\n\n    if (hNil != _hms)\n        goto LDone;\n\n    _fChanged = _fStop = fFalse;\n    if (MMSYSERR_NOERROR != midiOutOpen(&_hms, MIDI_MAPPER, 0, 0, CALLBACK_NULL))\n    {\n        _hms = hNil;\n        _mutx.Leave();\n        return fFalse;\n    }\n\n    // get the system volume level\n    _GetSysVol();\n\n    // set our volume level\n    _SetSysVlm();\n\nLDone:\n    _mutx.Leave();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Close the stream.\n***************************************************************************/\nbool OMS::_FClose(void)\n{\n    AssertThis(0);\n\n    _mutx.Enter();\n\n    if (hNil == _hms)\n    {\n        _mutx.Leave();\n        return fTrue;\n    }\n\n    if (_pglmsb->IvMac() > 0)\n    {\n        Bug(\"closing a stream that still has buffers!\");\n        _mutx.Leave();\n        return fFalse;\n    }\n\n    // reset the device\n    _Reset();\n\n    // restore the volume level\n    _SetSysVol(_luVolSys);\n\n    midiOutClose(_hms);\n    _hms = hNil;\n\n    _mutx.Leave();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Queue a buffer to the midi stream.\n***************************************************************************/\nbool OMS::FQueueBuffer(void *pvData, long cb, long ibStart, long cactPlay, ulong luData)\n{\n    AssertThis(0);\n    AssertPvCb(pvData, cb);\n    AssertIn(ibStart, 0, cb);\n    Assert(cb % size(MEV) == 0, \"bad cb\");\n    Assert(ibStart % size(MEV) == 0, \"bad cb\");\n\n    MSB msb;\n\n    _mutx.Enter();\n\n    if (hNil == _hms)\n        goto LFail;\n\n    msb.pvData = pvData;\n    msb.cb = cb;\n    msb.ibStart = ibStart;\n    msb.cactPlay = cactPlay;\n    msb.luData = luData;\n\n    if (!_pglmsb->FAdd(&msb))\n    {\n    LFail:\n        _mutx.Leave();\n        return fFalse;\n    }\n\n    if (1 == _pglmsb->IvMac())\n    {\n        // Start the buffer\n        SetEvent(_hevt);\n        _fChanged = fTrue;\n    }\n\n    _mutx.Leave();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Stop the stream and release all buffers. The buffer notifies are\n    asynchronous.\n***************************************************************************/\nvoid OMS::StopPlaying(void)\n{\n    AssertThis(0);\n\n    _mutx.Enter();\n\n    if (hNil != _hms)\n    {\n        _fStop = fTrue;\n        SetEvent(_hevt);\n        _fChanged = fTrue;\n    }\n\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    AT: Static method. Thread function for the midi stream object.\n***************************************************************************/\nulong __stdcall OMS::_ThreadProc(void *pv)\n{\n    POMS poms = (POMS)pv;\n\n    AssertPo(poms, 0);\n\n    return poms->_LuThread();\n}\n\n/***************************************************************************\n    AT: The midi stream playback thread.\n***************************************************************************/\nulong OMS::_LuThread(void)\n{\n    AssertThis(0);\n    MSB msb;\n    bool fChanged; // whether the event went off\n    ulong tsCur;\n    const long klwInfinite = klwMax;\n    long dtsWait = klwInfinite;\n\n    for (;;)\n    {\n        fChanged =\n            dtsWait > 0 && WAIT_TIMEOUT != WaitForSingleObject(_hevt, dtsWait == klwInfinite ? INFINITE : dtsWait);\n\n        if (_fDone)\n            return 0;\n\n        _mutx.Enter();\n        if (_fChanged && !fChanged)\n        {\n            // the event went off before we got the mutx.\n            dtsWait = klwInfinite;\n            goto LLoop;\n        }\n\n        _fChanged = fFalse;\n        if (!fChanged)\n        {\n            // play the event\n            if (_pmev < _pmevLim)\n            {\n                if (MEVT_SHORTMSG == (_pmev->dwEvent >> 24))\n                    midiOutShortMsg(_hms, _pmev->dwEvent & 0x00FFFFFF);\n\n                _pmev++;\n                if (_pmev >= _pmevLim)\n                    dtsWait = 0;\n                else\n                {\n                    ulong tsNew = TsCurrentSystem();\n\n                    tsCur += _pmev->dwDeltaTime;\n                    dtsWait = tsCur - tsNew;\n                    if (dtsWait < -kdtsMinSlip)\n                    {\n                        tsCur = tsNew;\n                        dtsWait = 0;\n                    }\n                }\n                goto LLoop;\n            }\n\n            // ran out of events in the current buffer - see if we should\n            // repeat it\n            _pglmsb->Get(0, &msb);\n            if (msb.cactPlay == 1)\n            {\n                _imsbCur = 1;\n                _ReleaseBuffers();\n            }\n            else\n            {\n                // repeat the current buffer\n                if (msb.cactPlay > 0)\n                    msb.cactPlay--;\n                msb.ibStart = 0;\n                _pglmsb->Put(0, &msb);\n            }\n        }\n        else if (_fStop)\n        {\n            // release all buffers\n            _fStop = fFalse;\n            _imsbCur = _pglmsb->IvMac();\n            _ReleaseBuffers();\n        }\n\n        if (0 == _pglmsb->IvMac())\n        {\n            // no buffers to play\n            dtsWait = klwInfinite;\n        }\n        else\n        {\n            // start playing the new buffers\n            _pglmsb->Get(0, &msb);\n            _pmev = (PMEV)PvAddBv(msb.pvData, msb.ibStart);\n            _pmevLim = (PMEV)PvAddBv(msb.pvData, msb.cb);\n            if (_pmev >= _pmevLim)\n                dtsWait = 0;\n            else\n            {\n                dtsWait = _pmev->dwDeltaTime;\n                tsCur = TsCurrentSystem() + dtsWait;\n            }\n        }\n    LLoop:\n        _mutx.Leave();\n    }\n}\n\n/***************************************************************************\n    Release all buffers up to _imsbCur. Assumes that we have the mutx\n    checked out exactly once.\n***************************************************************************/\nvoid OMS::_ReleaseBuffers(void)\n{\n    MSB msb;\n\n    if (_imsbCur >= _pglmsb->IvMac() && hNil != _hms)\n        _Reset();\n\n    while (_imsbCur > 0)\n    {\n        _pglmsb->Get(0, &msb);\n        _pglmsb->Delete(0);\n        _imsbCur--;\n\n        _mutx.Leave();\n\n        // call the notify proc\n        (*_pfnCall)(_luUser, msb.pvData, msb.luData);\n\n        _mutx.Enter();\n    }\n}\n"
  },
  {
    "path": "kauai/src/mididev2.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    The midi player sound device.\n\n***************************************************************************/\n#ifndef MIDIDEV2_H\n#define MIDIDEV2_H\n\ntypedef class MSMIX *PMSMIX;\n\n/***************************************************************************\n    The midi player using a Midi stream.\n***************************************************************************/\ntypedef class MDPS *PMDPS;\n#define MDPS_PAR SNDMQ\n#define kclsMDPS 'MDPS'\nclass MDPS : public MDPS_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PMSMIX _pmsmix;\n\n    MDPS(void);\n\n    virtual bool _FInit(void);\n    virtual PSNQUE _PsnqueNew(void);\n    virtual void _Suspend(bool fSuspend);\n\n  public:\n    static PMDPS PmdpsNew(void);\n    ~MDPS(void);\n\n    // inherited methods\n    virtual void SetVlm(long vlm);\n    virtual long VlmCur(void);\n};\n\n#endif //! MIDIDEV2_H\n"
  },
  {
    "path": "kauai/src/mssio.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    A message sink (MSNK) wrapper around a stdio file.\n\n***************************************************************************/\n#include <stdio.h>\n#include \"util.h\"\n#include \"mssio.h\"\nASSERTNAME\n\n/***************************************************************************\n    Constructor for a standard I/O message sink.\n***************************************************************************/\nMSSIO::MSSIO(FILE *pfile)\n{\n    _pfile = pfile;\n    _fError = fFalse;\n}\n\n/***************************************************************************\n    Prints a message to stderr.\n***************************************************************************/\nvoid MSSIO::ReportLine(PSZ psz)\n{\n    AssertThis(0);\n    AssertSz(psz);\n\n#ifdef UNICODE\n    _fError |= 0 > fwprintf(_pfile, PszLit(\"%s\\n\"), psz);\n#else\n    _fError |= 0 > fprintf(_pfile, \"%s\\n\", psz);\n#endif\n}\n\n/***************************************************************************\n    Dump a line to stdout.\n***************************************************************************/\nvoid MSSIO::Report(PSZ psz)\n{\n    AssertThis(0);\n    AssertSz(psz);\n\n#ifdef UNICODE\n    _fError |= 0 > fwprintf(_pfile, PszLit(\"%s\"), psz);\n#else\n    _fError |= 0 > fprintf(_pfile, \"%s\", psz);\n#endif\n}\n\n/***************************************************************************\n    Return whether there has been an error writing to this message sink.\n***************************************************************************/\nbool MSSIO::FError(void)\n{\n    AssertThis(0);\n    return _fError;\n}\n"
  },
  {
    "path": "kauai/src/mssio.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    A message sink (MSNK) wrapper around a stdio file.\n    Include <stdio.h> before including this file.\n\n***************************************************************************/\n#ifndef MSSIO_H\n#define MSSIO_H\n\n/***************************************************************************\n    Standard i/o message sink.\n***************************************************************************/\ntypedef class MSSIO *PMSSIO;\n#define MSSIO_PAR MSNK\nclass MSSIO : public MSSIO_PAR\n{\n  protected:\n    bool _fError;\n    FILE *_pfile;\n\n  public:\n    MSSIO(FILE *pfile);\n    virtual void ReportLine(PSTZ pstz);\n    virtual void Report(PSTZ pstz);\n    virtual bool FError(void);\n};\n\n#endif //! MSSIO_H\n"
  },
  {
    "path": "kauai/src/pic.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Common OS-independent picture routines.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nRTCLASS(PIC)\n\n/***************************************************************************\n    Static method to create a new PIC based on the given HPIC with\n    bounding rectangle *prc. If this fails, it is the callers responsibility\n    to free the hpic. If it succeeds, the ppic returned owns the hpic.\n***************************************************************************/\nPPIC PIC::PpicNew(HPIC hpic, RC *prc)\n{\n    Assert(hpic != hNil, \"nil hpic\");\n    AssertVarMem(prc);\n    PPIC ppic;\n\n    if (pvNil == (ppic = NewObj PIC))\n        return pvNil;\n\n    ppic->_hpic = hpic;\n    ppic->_rc = *prc;\n    AssertPo(ppic, 0);\n    return ppic;\n}\n\n/***************************************************************************\n    Get the natural rectangle for the picture.\n***************************************************************************/\nvoid PIC::GetRc(RC *prc)\n{\n    AssertThis(0);\n    *prc = _rc;\n}\n\n/***************************************************************************\n    Add the picture to the chunky file. The OS specific representation\n    will be a child of the chunk and have the given chid value.\n***************************************************************************/\nbool PIC::FAddToCfl(PCFL pcfl, CTG ctg, CNO *pcno, CHID chid)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n    AssertVarMem(pcno);\n    BLCK blck;\n    CNO cnoKid;\n    long cb;\n\n    if (!pcfl->FAdd(0, ctg, pcno))\n        return fFalse;\n    cb = CbOnFile();\n    if (!pcfl->FAddChild(ctg, *pcno, chid, cb, kctgPictNative, &cnoKid, &blck) || !FWrite(&blck))\n    {\n        pcfl->Delete(ctg, *pcno);\n        TrashVar(pcno);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Put the picture as the given ctg and cno in the chunky file. The\n    OS specific representation will be a child of the chunk and have the\n    given chid value.\n***************************************************************************/\nbool PIC::FPutInCfl(PCFL pcfl, CTG ctg, CNO cno, CHID chid)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n    bool fDelOnFail;\n    long ikid;\n    KID kid;\n    BLCK blck;\n    CNO cnoKid;\n    long cb;\n\n    fDelOnFail = !pcfl->FFind(ctg, cno);\n    if (!pcfl->FPut(0, ctg, cno))\n        goto LFail;\n    cb = CbOnFile();\n    if (!pcfl->FAddChild(ctg, cno, chid, cb, kctgPictNative, &cnoKid, &blck))\n        goto LFail;\n    if (!FWrite(&blck))\n    {\n        if (!fDelOnFail)\n            pcfl->DeleteChild(ctg, cno, kctgPictNative, cnoKid, chid);\n    LFail:\n        if (fDelOnFail)\n            pcfl->Delete(ctg, cno);\n        return fFalse;\n    }\n\n    // delete all other reps with the same ctg and chid\n    for (ikid = pcfl->Ckid(ctg, cno); ikid-- > 0;)\n    {\n        AssertDo(pcfl->FGetKid(ctg, cno, ikid, &kid), 0);\n        if (kid.cki.ctg == kctgPictNative && kid.chid == chid && kid.cki.cno != cnoKid)\n            pcfl->DeleteChild(ctg, cno, kid.cki.ctg, kid.cki.cno, kid.chid);\n    }\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a PIC.\n***************************************************************************/\nvoid PIC::AssertValid(ulong grf)\n{\n    PIC_PAR::AssertValid(0);\n    Assert(_hpic != hNil, \"bad hpic\");\n}\n#endif // DEBUG\n\n/***************************************************************************\n    A PFNRPO to read PIC 0 from a GRAF chunk.\n***************************************************************************/\nbool FReadMainPic(PCFL pcfl, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    PPIC ppic;\n\n    if (pvNil == ppbaco)\n    {\n        // REVIEW shonk: get a better estimate of the real size -\n        *pcb = 1;\n        return fTrue;\n    }\n\n    if (pvNil == (ppic = PIC::PpicFetch(pcfl, ctg, cno)))\n    {\n        TrashVar(pcb);\n        TrashVar(ppbaco);\n        return fFalse;\n    }\n\n    *pcb = ppic->CbOnFile();\n    *ppbaco = ppic;\n    return fTrue;\n}\n"
  },
  {
    "path": "kauai/src/pic.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Picture management code declarations.\n\n***************************************************************************/\n#ifndef PIC_H\n#define PIC_H\n\nconst FTG kftgPict = 'PICT';\nconst FTG kftgMeta = 'WMF';\nconst FTG kftgEnhMeta = 'EMF';\n\n/***************************************************************************\n    Picture class.  This is a wrapper around a system picture (Mac Pict or\n    Win MetaFile).\n***************************************************************************/\ntypedef class PIC *PPIC;\n#define PIC_PAR BACO\n#define kclsPIC 'PIC'\nclass PIC : public PIC_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    struct PICH\n    {\n        RC rc;\n        long cb;\n    };\n\n    HPIC _hpic;\n    RC _rc;\n\n    PIC(void);\n#ifdef WIN\n    static HPIC _HpicReadWmf(FNI *pfni);\n#endif // WIN\n\n  public:\n    ~PIC(void);\n\n    static PPIC PpicFetch(PCFL pcfl, CTG ctg, CNO cno, CHID chid = 0);\n    static PPIC PpicRead(PBLCK pblck);\n    static PPIC PpicReadNative(FNI *pfni);\n    static PPIC PpicNew(HPIC hpic, RC *prc);\n\n    void GetRc(RC *prc);\n    HPIC Hpic(void)\n    {\n        return _hpic;\n    }\n    bool FAddToCfl(PCFL pcfl, CTG ctg, CNO *pcno, CHID chid = 0);\n    bool FPutInCfl(PCFL pcfl, CTG ctg, CNO cno, CHID chid = 0);\n    virtual long CbOnFile(void);\n    virtual bool FWrite(PBLCK pblck);\n};\n\n// a chunky resource reader to read picture 0 from a GRAF chunk\nbool FReadMainPic(PCFL pcfl, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n\n#endif //! PIC_H\n"
  },
  {
    "path": "kauai/src/picmac.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Macintosh picture routines.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\n/***************************************************************************\n    Constructor for a picture.\n***************************************************************************/\nPIC::PIC(void)\n{\n    _hpic = hNil;\n    _rc.Zero();\n}\n\n/***************************************************************************\n    Destructor for a picture.\n***************************************************************************/\nPIC::~PIC(void)\n{\n    AssertBaseThis(0);\n    if (hNil != _hpic)\n        KillPicture(_hpic);\n}\n\n/***************************************************************************\n    Read a picture from a chunky file.  This routine only reads or converts\n    OS specific representations with the given chid value.\n***************************************************************************/\nPPIC PIC::PpicFetch(PCFL pcfl, CTG ctg, CNO cno, CHID chid)\n{\n    AssertPo(pcfl, 0);\n    KID kid;\n    BLCK blck;\n\n    if (!pcfl->FFind(ctg, cno))\n        return pvNil;\n    if (pcfl->FGetKidChidCtg(ctg, cno, chid, kctgMacPict, &kid) && pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n    {\n        return PpicRead(&blck);\n    }\n\n    // REVIEW shonk: convert another type to a Mac Pict...\n    return pvNil;\n}\n\n/***************************************************************************\n    Read a picture from a chunky file.  This routine only reads a system\n    specific pict (Mac PICT or Windows MetaFile) and its header.\n***************************************************************************/\nPPIC PIC::PpicRead(PBLCK pblck)\n{\n    AssertPo(pblck, fblckReadable);\n    HPIC hpic;\n    PICH pich;\n    PPIC ppic;\n    RC rc;\n    bool fT;\n\n    if (!pblck->FUnpackData() || pblck->Cb() <= size(PICH) + size(Picture) || !pblck->FReadRgb(&pich, size(PICH), 0) ||\n        pich.rc.FEmpty() || pich.cb != pblck->Cb())\n    {\n        return pvNil;\n    }\n    if (hNil == (hpic = (HPIC)NewHandle(pich.cb - size(PICH))))\n        return pvNil;\n    HLock((HN)hpic);\n    fT = pblck->FReadRgb(*hpic, pich.cb - size(PICH), size(PICH));\n    HUnlock((HN)hpic);\n    if (!fT || pvNil == (ppic = NewObj PIC))\n    {\n        KillPicture(hpic);\n        return pvNil;\n    }\n\n    ppic->_hpic = hpic;\n    ppic->_rc = pich.rc;\n    AssertPo(ppic, 0);\n    return ppic;\n}\n\n/***************************************************************************\n    Return the total size on file.\n***************************************************************************/\nlong PIC::CbOnFile(void)\n{\n    AssertThis(0);\n    return GetHandleSize((HN)_hpic) + size(PICH);\n}\n\n/***************************************************************************\n    Write the meta file (and its header) to the given BLCK.\n***************************************************************************/\nbool PIC::FWrite(PBLCK pblck)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n    long cb;\n    bool fT;\n    PICH pich;\n    achar ch;\n\n    cb = GetHandleSize((HN)_hpic);\n    if ((pich.cb = cb + size(PICH)) != pblck->Cb())\n        return fFalse;\n\n    ch = HGetState((HN)_hpic);\n    HLock((HN)_hpic);\n    pich.rc = _rc;\n    fT = pblck->FWriteRgb(&pich, size(PICH), 0) && pblck->FWriteRgb(*_hpic, cb, size(PICH));\n    HSetState((HN)_hpic, ch);\n    return fT;\n}\n\n/***************************************************************************\n    Static method to read the file as a native picture (PICT file on Mac).\n***************************************************************************/\nPPIC PIC::PpicReadNative(FNI *pfni)\n{\n    AssertPo(pfni, ffniFile);\n    PFIL pfil;\n    FP fpMac;\n    HPIC hpic;\n    PPIC ppic;\n    bool fT;\n    RCS rcs;\n\n    if (pfni->Ftg() != kftgPict || pvNil == (pfil = FIL::PfilOpen(pfni)))\n    {\n        return pvNil;\n    }\n\n    if (512 + size(Picture) >= (fpMac = pfil->FpMac()))\n        goto LFail;\n\n    if (hNil == (hpic = (HPIC)NewHandle(fpMac - 512)))\n    {\n    LFail:\n        ReleasePpo(&pfil);\n        return pvNil;\n    }\n\n    HLock((HN)hpic);\n    fT = pfil->FReadRgb(*hpic, fpMac - 512, 512);\n    rcs = (*hpic)->picFrame;\n    HUnlock((HN)hpic);\n    ReleasePpo(&pfil);\n    if (!fT || pvNil == (ppic = NewObj PIC))\n    {\n        DisposHandle((HN)hpic);\n        return pvNil;\n    }\n\n    ppic->_hpic = hpic;\n    ppic->_rc = RC(rcs);\n    AssertPo(ppic, 0);\n    return ppic;\n}\n"
  },
  {
    "path": "kauai/src/picwin.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Windows specific picture (metafile) routines.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\n/***************************************************************************\n    Constructor for a picture.\n***************************************************************************/\nPIC::PIC(void)\n{\n    _hpic = hNil;\n    _rc.Zero();\n}\n\n/***************************************************************************\n    Destructor for a picture.\n***************************************************************************/\nPIC::~PIC(void)\n{\n    AssertBaseThis(0);\n    if (hNil != _hpic)\n        DeleteEnhMetaFile(_hpic);\n}\n\n/***************************************************************************\n    Read a picture from a chunky file.  This routine only reads or converts\n    OS specific representations with the given chid value.\n***************************************************************************/\nPPIC PIC::PpicFetch(PCFL pcfl, CTG ctg, CNO cno, CHID chid)\n{\n    AssertPo(pcfl, 0);\n    BLCK blck;\n    KID kid;\n\n    if (!pcfl->FFind(ctg, cno))\n        return pvNil;\n    if (pcfl->FGetKidChidCtg(ctg, cno, chid, kctgMeta, &kid) && pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n    {\n        return PpicRead(&blck);\n    }\n\n    // REVIEW shonk: convert another type to a MetaFile...\n    return pvNil;\n}\n\n/***************************************************************************\n    Read a picture from a chunky file.  This routine only reads a system\n    specific pict (Mac PICT or Windows MetaFile) and its header.\n***************************************************************************/\nPPIC PIC::PpicRead(PBLCK pblck)\n{\n    AssertPo(pblck, fblckReadable);\n    HPIC hpic;\n    HQ hq;\n    PICH *ppich;\n    PPIC ppic;\n    RC rc;\n    long cb;\n\n    if (!pblck->FUnpackData())\n        return pvNil;\n\n    cb = pblck->Cb();\n    if (cb <= size(PICH))\n        return pvNil;\n\n    if (hqNil == (hq = pblck->HqFree()))\n        return pvNil;\n\n    ppich = (PICH *)PvLockHq(hq);\n    rc = ppich->rc;\n    if (rc.FEmpty() || ppich->cb != cb)\n        hpic = hNil;\n    else\n        hpic = SetEnhMetaFileBits(cb - size(PICH), (byte *)(ppich + 1));\n    UnlockHq(hq);\n    FreePhq(&hq);\n    if (hNil == hpic)\n        return pvNil;\n\n    if (pvNil == (ppic = NewObj PIC))\n    {\n        DeleteEnhMetaFile(hpic);\n        return pvNil;\n    }\n\n    ppic->_hpic = hpic;\n    ppic->_rc = rc;\n    AssertPo(ppic, 0);\n    return ppic;\n}\n\n/***************************************************************************\n    Return the total size on file.\n***************************************************************************/\nlong PIC::CbOnFile(void)\n{\n    AssertThis(0);\n    return GetEnhMetaFileBits(_hpic, 0, pvNil) + size(PICH);\n}\n\n/***************************************************************************\n    Write the meta file (and its header) to the given BLCK.\n***************************************************************************/\nbool PIC::FWrite(PBLCK pblck)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n    long cb, cbTot;\n    bool fT;\n    PICH *ppich;\n\n    cb = GetEnhMetaFileBits(_hpic, 0, pvNil);\n    if (cb == 0 || (cbTot = cb + size(PICH)) != pblck->Cb())\n        return fFalse;\n\n    if (!FAllocPv((void **)&ppich, cbTot, fmemNil, mprNormal))\n        return fFalse;\n    ppich->rc = _rc;\n    ppich->cb = cbTot;\n    fT = (GetEnhMetaFileBits(_hpic, cb, (byte *)(ppich + 1)) == (ulong)cb) && pblck->FWrite(ppich);\n    FreePpv((void **)&ppich);\n    return fT;\n}\n\n/***************************************************************************\n    Static method to read the file as a native picture (EMF or WMF file).\n***************************************************************************/\nPPIC PIC::PpicReadNative(FNI *pfni)\n{\n    AssertPo(pfni, ffniFile);\n    HPIC hpic;\n    PPIC ppic;\n    RC rc;\n    ENHMETAHEADER emh;\n    STN stn;\n\n    switch (pfni->Ftg())\n    {\n    default:\n        return pvNil;\n\n    case kftgMeta:\n        hpic = _HpicReadWmf(pfni);\n        break;\n\n    case kftgEnhMeta:\n        pfni->GetStnPath(&stn);\n        hpic = GetEnhMetaFile(stn.Psz());\n        break;\n    }\n\n    if (hNil == hpic)\n        return pvNil;\n\n    if (pvNil == (ppic = NewObj PIC))\n    {\n        DeleteEnhMetaFile(hpic);\n        return pvNil;\n    }\n\n    GetEnhMetaFileHeader(hpic, size(emh), &emh);\n    rc.Set(LwMulDiv(emh.rclFrame.left, 72, 2540), LwMulDiv(emh.rclFrame.top, 72, 2540),\n           LwMulDiv(emh.rclFrame.right, 72, 2540), LwMulDiv(emh.rclFrame.bottom, 72, 2540));\n\n    ppic->_hpic = hpic;\n    ppic->_rc = rc;\n    AssertPo(ppic, 0);\n    return ppic;\n}\n\n/* placeable metafile data definitions */\n#define lwMEFH 0x9AC6CDD7\n\n/* placeable metafile header */\ntypedef struct _MEFH\n{\n    DWORD lwKey;\n    short w1;\n    short xpLeft;\n    short ypTop;\n    short xpRight;\n    short ypBottom;\n    WORD w2;\n    DWORD dw1;\n    WORD w3;\n} MEFH;\n\n/***************************************************************************\n    Static method to read an old style WMF file.\n***************************************************************************/\nHPIC PIC::_HpicReadWmf(FNI *pfni)\n{\n    MEFH mefh;\n    METAHEADER mh;\n    HPIC hpic;\n    long lw;\n    long cb;\n    PFIL pfil;\n    void *pv;\n    bool fT;\n    FP fp;\n\n    const long kcbMefh = 22;\n    const long kcbMetaHeader = 18;\n\n    if (pvNil == (pfil = FIL::PfilOpen(pfni)))\n        return hNil;\n\n    // check for type of meta file\n    if (!pfil->FReadRgb(&lw, size(long), 0))\n        goto LFail;\n\n    // read placeable meta file header - NOTE: we can't just use size(MEFH) for\n    // the cb because the MEFH is padded to a long boundary by the compiler\n    fp = 0;\n    if (lw == lwMEFH && !pfil->FReadRgbSeq(&mefh, kcbMefh, &fp))\n        goto LFail;\n\n    // read METAHEADER structure - NOTE: we can't just use size(METAHEADER) for\n    // the cb because the METAHEADER is padded to a long boundary by the\n    // compiler\n    if (!pfil->FReadRgbSeq(&mh, kcbMetaHeader, &fp) || mh.mtVersion < 0x0300 || 2 * mh.mtHeaderSize != kcbMetaHeader ||\n        !FIn(cb = 2 * mh.mtSize, kcbMetaHeader + 1, kcbMax))\n    {\n        goto LFail;\n    }\n\n    if (!FAllocPv(&pv, cb, fmemNil, mprNormal))\n    {\n    LFail:\n        ReleasePpo(&pfil);\n        return hNil;\n    }\n\n    *(METAHEADER *)pv = mh;\n    fT = pfil->FReadRgbSeq(PvAddBv(pv, kcbMetaHeader), cb - kcbMetaHeader, &fp);\n    ReleasePpo(&pfil);\n\n    if (!fT)\n    {\n        FreePpv(&pv);\n        return hNil;\n    }\n\n    // convert the old style metafile to an enhanced metafile\n    hpic = SetWinMetaFileBits(cb, (byte *)pv, hNil, pvNil);\n    FreePpv(&pv);\n\n    return hpic;\n}\n"
  },
  {
    "path": "kauai/src/region.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Region code.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nRTCLASS(REGN)\nRTCLASS(REGSC)\n\nlong const kcdxpBlock = 100;\n\n/***************************************************************************\n    Region builder class.  For building the _pglxp of a region and getting\n    its bounding rectangle and _dxp value.\n***************************************************************************/\ntypedef class REGBL *PREGBL;\n#define REGBL_PAR BASE\n#define kclsREGBL 'rgbl'\nclass REGBL : public REGBL_PAR\n{\n  protected:\n    long _ypCur;\n    RC _rcRef;\n    RC _rc;\n    PGL _pglxp;\n    bool _fResize;\n\n    long _idypPrev;\n    long _idypCur;\n    long _ixpCur;\n\n  public:\n    REGBL(void)\n    {\n        _pglxp = pvNil;\n    }\n    ~REGBL(void)\n    {\n        ReleasePpo(&_pglxp);\n    }\n\n    bool FInit(RC *prcRef, PGL pglxp = pvNil);\n    bool FStartRow(long dyp, long cxpMax);\n    void EndRow(void);\n    void AddXp(long xp)\n    {\n        // can only be called while building a row.\n        AssertThis(0);\n        Assert(_idypCur != ivNil, \"calling AddXp outside a row\");\n        Assert(_ixpCur < _pglxp->IvMac(), \"overflow in AddXp\");\n\n        if (_rc.xpLeft > xp)\n            _rc.xpLeft = xp;\n        if (_rc.xpRight < xp)\n            _rc.xpRight = xp;\n        *(long *)_pglxp->QvGet(_ixpCur++) = xp;\n    }\n\n    bool FDone(void)\n    {\n        AssertThis(0);\n        return _ypCur >= _rcRef.ypBottom && _idypCur == ivNil;\n    }\n    PGL PglxpFree(RC *prc, long *pdxp);\n};\n\n/***************************************************************************\n    Initialize a region builder.\n***************************************************************************/\nbool REGBL::FInit(RC *prcRef, PGL pglxp)\n{\n    AssertVarMem(prcRef);\n    AssertNilOrPo(pglxp, 0);\n    Assert(!prcRef->FEmpty(), \"empty reference rectangle\");\n\n    ReleasePpo(&_pglxp);\n    if (pvNil != pglxp)\n    {\n        _pglxp = pglxp;\n        _pglxp->AddRef();\n        _fResize = fFalse;\n    }\n    else\n    {\n        if (pvNil == (_pglxp = GL::PglNew(size(long))))\n            return fFalse;\n        _pglxp->SetMinGrow(kcdxpBlock);\n        _fResize = fTrue;\n    }\n\n    _rcRef = *prcRef;\n    _ypCur = _rc.ypTop = _rc.ypBottom = prcRef->ypTop;\n    _rc.xpLeft = prcRef->Dxp();\n    _rc.xpRight = 0;\n\n    _idypPrev = _idypCur = ivNil;\n    _ixpCur = 0;\n    return fTrue;\n}\n\n/***************************************************************************\n    Begin a row.\n***************************************************************************/\nbool REGBL::FStartRow(long dyp, long cxpMax)\n{\n    AssertThis(0);\n    Assert(_idypCur == ivNil, \"row already started\");\n    AssertIn(dyp, 0, kcbMax);\n    Assert(_ypCur < _rcRef.ypBottom, \"already filled\");\n    AssertIn(cxpMax, 0, kcbMax);\n    long ivLim;\n\n    ivLim = _ixpCur + cxpMax + 2;\n    if (_fResize)\n    {\n        ivLim = LwRoundAway(ivLim, kcdxpBlock);\n        if (ivLim > _pglxp->IvMac() && !_pglxp->FSetIvMac(ivLim))\n        {\n            ReleasePpo(&_pglxp);\n            return fFalse;\n        }\n    }\n    else if (ivLim > _pglxp->IvMac())\n    {\n        Bug(\"overflowed provided pgl\");\n        return fFalse;\n    }\n\n    dyp = LwMin(dyp, _rcRef.ypBottom - _ypCur);\n    _idypCur = _ixpCur;\n    *(long *)_pglxp->QvGet(_ixpCur++) = dyp;\n    _ypCur += dyp;\n    return fTrue;\n}\n\n/***************************************************************************\n    End a row in the region builder.\n***************************************************************************/\nvoid REGBL::EndRow(void)\n{\n    AssertThis(0);\n    Assert((_ixpCur - _idypCur) & 1, \"not an even number of xp values\");\n    Assert(_ixpCur < _pglxp->IvMac(), \"overflow in EndRow\");\n    long czp;\n    long *qrgxp = (long *)_pglxp->QvGet(0);\n\n    qrgxp[_ixpCur++] = klwMax;\n    if ((czp = _ixpCur - _idypCur) > 2)\n        _rc.ypBottom = _ypCur;\n\n    // see if this row matches the last one\n    if (ivNil != _idypPrev && czp == _idypCur - _idypPrev &&\n        FEqualRgb(&qrgxp[_idypPrev + 1], &qrgxp[_idypCur + 1], (czp - 1) * size(long)))\n    {\n        // this row matches the previous row\n        qrgxp[_idypPrev] += qrgxp[_idypCur];\n        _ixpCur = _idypCur;\n    }\n    else if (0 == _idypCur && _ixpCur == 2)\n    {\n        // at the top and still empty\n        _rc.ypTop = _rc.ypBottom = _ypCur;\n        _ixpCur = 0;\n    }\n    else\n        _idypPrev = _idypCur;\n\n    _idypCur = ivNil;\n}\n\n/***************************************************************************\n    Clean up and return all the relevant information.\n***************************************************************************/\nPGL REGBL::PglxpFree(RC *prc, long *pdxp)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertVarMem(pdxp);\n    PGL pglxp;\n\n    // see if the last row is empty\n    if (_ypCur > _rc.ypBottom)\n    {\n        // last row is empty\n        _ixpCur = _idypPrev;\n    }\n\n    *pdxp = 0;\n    if (0 == _ixpCur)\n    {\n        // empty\n        Assert(_rc.FEmpty(), 0);\n        ReleasePpo(&_pglxp);\n        _rc.Zero();\n    }\n    else\n    {\n        Assert(!_rc.FEmpty(), 0);\n        if (_ixpCur <= 4)\n        {\n            // rectangular\n            ReleasePpo(&_pglxp);\n        }\n        else\n        {\n            AssertDo(_pglxp->FSetIvMac(_ixpCur), 0);\n            AssertDo(_pglxp->FEnsureSpace(0, fgrpShrink), 0);\n            *pdxp = -_rc.xpLeft;\n        }\n        _rc.Offset(_rcRef.xpLeft, 0);\n    }\n\n    *prc = _rc;\n    pglxp = _pglxp;\n    _pglxp = pvNil;\n    return pglxp;\n}\n\n/***************************************************************************\n    Constructor for the region scanner class.\n***************************************************************************/\nREGSC::REGSC(void)\n{\n    _pglxpSrc = pvNil;\n}\n\n/***************************************************************************\n    Destructor for the region scanner class.\n***************************************************************************/\nREGSC::~REGSC(void)\n{\n    Free();\n}\n\n/***************************************************************************\n    Release our hold on any memory.\n***************************************************************************/\nvoid REGSC::Free(void)\n{\n    if (pvNil != _pglxpSrc)\n    {\n        _pglxpSrc->Unlock();\n        ReleasePpo(&_pglxpSrc);\n    }\n}\n\n/***************************************************************************\n    Initializes a region scanner.  The scanner implicitly intersects the\n    region with *prcRel and returns xp values relative to prcRel->xpLeft.\n***************************************************************************/\nvoid REGSC::Init(PREGN pregn, RC *prcRel)\n{\n    RC rc = pregn->_rc;\n    rc.Offset(pregn->_dxp, 0);\n    _InitCore(pregn->_pglxp, &rc, prcRel);\n}\n\n/***************************************************************************\n    Initializes a region scanner with the given rectangle.\n***************************************************************************/\nvoid REGSC::InitRc(RC *prc, RC *prcRel)\n{\n    _InitCore(pvNil, prc, prcRel);\n}\n\n/***************************************************************************\n    Initializes a region scanner.  The scanner implicitly intersects the\n    region with *prcRel and returns xp values relative to prcRel->xpLeft.\n***************************************************************************/\nvoid REGSC::_InitCore(PGL pglxp, RC *prc, RC *prcRel)\n{\n    Free();\n\n    RC rc = *prc;\n    if (pvNil != (_pglxpSrc = pglxp))\n    {\n        _pglxpSrc->AddRef();\n        _pxpLimCur = (long *)_pglxpSrc->PvLock(0);\n        _pxpLimSrc = _pxpLimCur + _pglxpSrc->IvMac();\n    }\n    else\n    {\n        rc.FIntersect(prcRel);\n        _rgxpRect[0] = rc.Dyp();\n        _rgxpRect[1] = 0;\n        _rgxpRect[2] = rc.Dxp();\n        _rgxpRect[3] = klwMax;\n        _pxpLimCur = _rgxpRect;\n        _pxpLimSrc = _rgxpRect + 4;\n    }\n    _dxp = rc.xpLeft - prcRel->xpLeft;\n    _xpRight = prcRel->Dxp();\n\n    _dyp = rc.ypTop - prcRel->ypTop;\n    _dypTot = prcRel->Dyp();\n\n    // initialize to an empty row\n    _pxpLimRow = (_pxpMinRow = _pxpLimCur) - 1;\n    _xpMinRow = klwMax;\n\n    ScanNext(0);\n}\n\n/***************************************************************************\n    Scan the next horizontal strip of the region.\n***************************************************************************/\nvoid REGSC::_ScanNextCore(void)\n{\n    long dxpT;\n\n    Assert(_dyp <= 0, \"why is _ScanNextCore being called?\");\n    if (_dypTot <= 0)\n    {\n        // ran out of region!\n        goto LEndRegion;\n    }\n\n    for (;;)\n    {\n        // do the next scan\n        if (_pxpLimCur >= _pxpLimSrc)\n        {\n            // ran out of region!\n        LEndRegion:\n            // use kswMax, not klwMax, so clients can add this to\n            // another yp value without fear of overflow\n            _dyp = kswMax;\n            _pxpLimRow = (_pxpMinRow = _pxpLimCur = _pxpLimSrc) - 1;\n            _xpMinRow = klwMax;\n            return;\n        }\n        if ((_dyp += *_pxpLimCur++) > 0)\n            break;\n\n        // find the start of the next row\n        while (*_pxpLimCur != klwMax)\n        {\n            _pxpLimCur += 2;\n            Assert(_pxpLimCur < _pxpLimSrc && _pxpLimCur[-1] != klwMax, \"bad region 1\");\n        }\n        _pxpLimCur++;\n    }\n\n    //_pxpLimCur now points to the beginning of the correct row\n    // find the first xp value in our range\n    if (*_pxpLimCur < -_dxp)\n    {\n        do\n        {\n            _pxpLimCur += 2;\n            Assert(_pxpLimCur < _pxpLimSrc && _pxpLimCur[-1] != klwMax, \"bad region 2\");\n        } while (*_pxpLimCur < -_dxp);\n\n        // see if we went too far\n        if (_pxpLimCur[-1] > -_dxp)\n        {\n            _xpMinRow = 0;\n            _pxpMinRow = _pxpLimCur - 1;\n            goto LFindLim;\n        }\n    }\n    _xpMinRow = *_pxpLimCur++;\n\n    _pxpMinRow = _pxpLimCur;\n    if (_xpMinRow == klwMax)\n    {\n        // empty row\n        _pxpLimRow = _pxpLimCur - 1;\n        return;\n    }\n\n    if ((_xpMinRow += _dxp) >= _xpRight)\n    {\n        // empty row, but we need to find the start of the next row\n        AssertIn(_xpMinRow, 0, kcbMax);\n        Assert(*_pxpLimCur != klwMax, \"bad region 3\");\n\n        // find the start of the next row\n        _pxpLimCur++;\n        while (*_pxpLimCur != klwMax)\n        {\n            _pxpLimCur += 2;\n            Assert(_pxpLimCur < _pxpLimSrc && _pxpLimCur[-1] != klwMax, \"bad region 4\");\n        }\n        _pxpLimCur++;\n        _pxpLimRow = (_pxpMinRow = _pxpLimCur) - 1;\n        _xpMinRow = klwMax;\n        return;\n    }\n\n    Assert(*_pxpLimCur != klwMax, \"bad region 5\");\n    _pxpLimCur++;\n\nLFindLim:\n    dxpT = _xpRight - _dxp;\n    while (*_pxpLimCur < dxpT)\n    {\n        _pxpLimCur += 2;\n        Assert(_pxpLimCur < _pxpLimSrc && _pxpLimCur[-1] != klwMax, \"bad region 6\");\n    }\n    _pxpLimRow = _pxpLimCur;\n    while (*_pxpLimCur != klwMax)\n    {\n        _pxpLimCur += 2;\n        Assert(_pxpLimCur < _pxpLimSrc && _pxpLimCur[-1] != klwMax, \"bad region 6\");\n    }\n    _pxpLimCur++;\n    Assert((_pxpLimRow - _pxpMinRow) & 1, \"logic error above\");\n}\n\n/***************************************************************************\n    Static method to create a new region and set it to a rectangle.\n***************************************************************************/\nPREGN REGN::PregnNew(RC *prc)\n{\n    PREGN pregn;\n\n    if (pvNil == (pregn = NewObj REGN))\n        return pvNil;\n    if (pvNil != prc)\n        pregn->_rc = *prc;\n    AssertPo(pregn, 0);\n    return pregn;\n}\n\n/***************************************************************************\n    Destructor for a region.\n***************************************************************************/\nREGN::~REGN(void)\n{\n    ReleasePpo(&_pglxp);\n    FreePhrgn(&_hrgn);\n}\n\n/***************************************************************************\n    Make the region rectangular.\n***************************************************************************/\nvoid REGN::SetRc(RC *prc)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prc);\n\n    if (pvNil == prc)\n        _rc.Zero();\n    else\n        _rc = *prc;\n    ReleasePpo(&_pglxp);\n    FreePhrgn(&_hrgn);\n    _dxp = 0;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Offset the region.\n***************************************************************************/\nvoid REGN::Offset(long xp, long yp)\n{\n    AssertThis(0);\n    _rc.Offset(xp, yp);\n    _dptRgn.Offset(xp, yp);\n}\n\n/***************************************************************************\n    Return whether the region is empty and if prc is not nil, fill in *prc\n    with the region's bounding rectangle.\n***************************************************************************/\nbool REGN::FEmpty(RC *prc)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prc);\n\n    if (pvNil != prc)\n        *prc = _rc;\n    return _rc.FEmpty();\n}\n\n/***************************************************************************\n    Return whether the region is rectangular and if prc is not nil, fill in\n    *prc with the region's bounding rectangle.\n***************************************************************************/\nbool REGN::FIsRc(RC *prc)\n{\n    AssertThis(0);\n    if (pvNil != prc)\n        *prc = _rc;\n    return _pglxp == pvNil;\n}\n\n/***************************************************************************\n    Scale the x values of the region by the given amount.\n***************************************************************************/\nvoid REGN::Scale(long lwNumX, long lwDenX, long lwNumY, long lwDenY)\n{\n    AssertThis(0);\n    Assert(lwDenX > 0 && lwNumX >= 0, \"bad X scaling\");\n    Assert(lwDenY > 0 && lwNumY >= 0, \"bad Y scaling\");\n    RC rcScaled;\n    long yp, ypScaled, dyp, dypScaled;\n    long xp1, xp2;\n    RAT ratXp(lwNumX, lwDenX);\n    RAT ratYp(lwNumY, lwDenY);\n\n    rcScaled.xpLeft = ratXp.LwScale(_rc.xpLeft);\n    rcScaled.xpRight = ratXp.LwScale(_rc.xpRight);\n    rcScaled.ypTop = ratYp.LwScale(_rc.ypTop);\n    rcScaled.ypBottom = ratYp.LwScale(_rc.ypBottom);\n\n    if (rcScaled.FEmpty())\n    {\n        _rc.Zero();\n        ReleasePpo(&_pglxp);\n        return;\n    }\n\n    if (pvNil == _pglxp)\n    {\n        _rc = rcScaled;\n        _dxp = 0;\n        return;\n    }\n\n    REGSC regsc;\n    REGBL regbl;\n\n    regsc.Init(this, &_rc);\n    AssertDo(regbl.FInit(&rcScaled, _pglxp), 0);\n    yp = _rc.ypTop;\n    ypScaled = rcScaled.ypTop;\n\n    for (;;)\n    {\n        dyp = regsc.DypCur();\n        dypScaled = ratYp.LwScale(yp + dyp) - ypScaled;\n        yp += dyp;\n        if (dypScaled <= 0)\n        {\n            regsc.ScanNext(dyp);\n            continue;\n        }\n        ypScaled += dypScaled;\n\n        AssertDo(regbl.FStartRow(dypScaled, regsc.CxpCur()), 0);\n        if (regsc.XpCur() == klwMax)\n            goto LEndRow;\n\n        xp1 = ratXp.LwScale(regsc.XpCur());\n        xp2 = ratXp.LwScale(regsc.XpFetch());\n        for (;;)\n        {\n            if (xp1 >= xp2)\n            {\n                // empty run - ignore both values\n                if (regsc.XpFetch() == klwMax)\n                    break;\n                xp1 = ratXp.LwScale(regsc.XpCur());\n            }\n            else\n            {\n                // write xp1 and advance\n                regbl.AddXp(xp1);\n                xp1 = xp2;\n            }\n\n            // fetch a new xp2\n            if (regsc.XpFetch() == klwMax)\n            {\n                // write the last off\n                regbl.AddXp(xp1);\n                break;\n            }\n            xp2 = ratXp.LwScale(regsc.XpCur());\n        }\n\n    LEndRow:\n        regbl.EndRow();\n        if (regbl.FDone())\n            break;\n\n        regsc.ScanNext(dyp);\n    }\n\n    ReleasePpo(&_pglxp);\n    FreePhrgn(&_hrgn);\n\n    // force the region scanner to let go of the pglxp before the\n    // region builder tries to resize it.\n    regsc.Free();\n\n    _pglxp = regbl.PglxpFree(&_rc, &_dxp);\n}\n\n/***************************************************************************\n    Union the two regions and leave the result in this one.  If pregn2 is\n    nil, this region is used for pregn2.\n***************************************************************************/\nbool REGN::FUnion(PREGN pregn1, PREGN pregn2)\n{\n    AssertThis(0);\n    AssertPo(pregn1, 0);\n    AssertNilOrPo(pregn2, 0);\n    REGSC regsc1;\n    REGSC regsc2;\n    RC rc;\n\n    if (pvNil == pregn2)\n    {\n        if (pregn1->FEmpty())\n            return fTrue;\n        pregn2 = this;\n    }\n\n    rc.Union(&pregn1->_rc, &pregn2->_rc);\n    if (pvNil == pregn1->_pglxp && rc == pregn1->_rc || pvNil == pregn2->_pglxp && rc == pregn2->_rc)\n    {\n        // union is a rectangle\n        SetRc(&rc);\n        return fTrue;\n    }\n\n    regsc1.Init(pregn1, &rc);\n    regsc2.Init(pregn2, &rc);\n    return _FUnionCore(&rc, &regsc1, &regsc2);\n}\n\n/***************************************************************************\n    Union the given rectangle and region and leave the result in this region.\n    If pregn is nil, this region is used for pregn.\n***************************************************************************/\nbool REGN::FUnionRc(RC *prc, PREGN pregn)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertNilOrPo(pregn, 0);\n    REGSC regsc1;\n    REGSC regsc2;\n    RC rc;\n\n    if (pvNil == pregn)\n    {\n        if (prc->FEmpty())\n            return fTrue;\n        pregn = this;\n    }\n\n    rc.Union(prc, &pregn->_rc);\n    if (rc == *prc)\n    {\n        // *prc totally contains the region\n        SetRc(&rc);\n        return fTrue;\n    }\n\n    // if this one is rectangular and already contains *prc, then\n    // we're done\n    if (this == pregn && pvNil == _pglxp && rc == _rc)\n        return fTrue;\n\n    regsc1.InitRc(prc, &rc);\n    regsc2.Init(pregn, &rc);\n    return _FUnionCore(&rc, &regsc1, &regsc2);\n}\n\n/***************************************************************************\n    Core union routine.\n***************************************************************************/\nbool REGN::_FUnionCore(RC *prc, PREGSC pregsc1, PREGSC pregsc2)\n{\n    AssertThis(0);\n    AssertPo(pregsc1, 0);\n    AssertPo(pregsc2, 0);\n    void *pvSwap;\n    long dyp;\n    REGBL regbl;\n\n    if (!regbl.FInit(prc))\n        return fFalse;\n\n    for (;;)\n    {\n        dyp = LwMin(pregsc1->DypCur(), pregsc2->DypCur());\n        if (!regbl.FStartRow(dyp, pregsc1->CxpCur() + pregsc2->CxpCur()))\n            return fFalse;\n\n        for (;;)\n        {\n            Assert(FPure(pregsc1->FOn()) == FPure(pregsc2->FOn()), \"region scanners have different on/off states\");\n            if (pregsc1->XpCur() > pregsc2->XpCur())\n            {\n                // swap them\n                pvSwap = pregsc1;\n                pregsc1 = pregsc2;\n                pregsc2 = (PREGSC)pvSwap;\n            }\n            if (pregsc2->XpCur() == klwMax)\n                break;\n\n            if (pregsc1->FOn())\n            {\n                // both on\n                regbl.AddXp(pregsc1->XpCur());\n                pregsc1->XpFetch();\n                // 1 off, 2 on\n                if (pregsc1->XpCur() < pregsc2->XpCur())\n                {\n                    regbl.AddXp(pregsc1->XpCur());\n                    pregsc1->XpFetch();\n                    continue;\n                }\n                pregsc2->XpFetch();\n            }\n            else\n            {\n                // both off\n                pregsc1->XpFetch();\n                // 1 on, 2 off\n                if (pregsc1->XpCur() <= pregsc2->XpCur())\n                {\n                    pregsc1->XpFetch();\n                    continue;\n                }\n                regbl.AddXp(pregsc2->XpCur());\n                pregsc2->XpFetch();\n            }\n        }\n        Assert(pregsc1->FOn(), \"bad regions\");\n        Assert(pregsc2->XpCur() == klwMax, 0);\n\n        // copy the remainder of this row from pregsc1\n        while (pregsc1->XpCur() < klwMax)\n        {\n            regbl.AddXp(pregsc1->XpCur());\n            pregsc1->XpFetch();\n        }\n        Assert(pregsc1->FOn(), \"bad region\");\n\n        regbl.EndRow();\n        if (regbl.FDone())\n            break;\n\n        pregsc1->ScanNext(dyp);\n        pregsc2->ScanNext(dyp);\n    }\n\n    ReleasePpo(&_pglxp);\n    FreePhrgn(&_hrgn);\n\n    _pglxp = regbl.PglxpFree(&_rc, &_dxp);\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Intersect the two regions and leave the result in this one.  If pregn2\n    is nil, this region is used for pregn2.\n***************************************************************************/\nbool REGN::FIntersect(PREGN pregn1, PREGN pregn2)\n{\n    AssertThis(0);\n    AssertPo(pregn1, 0);\n    AssertNilOrPo(pregn2, 0);\n    REGSC regsc1;\n    REGSC regsc2;\n    RC rc;\n\n    if (pvNil == pregn2)\n        pregn2 = this;\n\n    if (!rc.FIntersect(&pregn1->_rc, &pregn2->_rc))\n    {\n        // result is empty\n        SetRc(&rc);\n        return fTrue;\n    }\n\n    // if pregn1 is rectangular and contains this one, then\n    // we're done\n    if (this == pregn2 && pvNil == pregn1->_pglxp && rc == _rc)\n        return fTrue;\n    if (pvNil == pregn1->_pglxp && pvNil == pregn2->_pglxp)\n    {\n        // both rectangles, so the intersection is a rectangle\n        SetRc(&rc);\n        return fTrue;\n    }\n\n    regsc1.Init(pregn1, &rc);\n    regsc2.Init(pregn2, &rc);\n    return _FIntersectCore(&rc, &regsc1, &regsc2);\n}\n\n/***************************************************************************\n    Intersect the given rectangle and region and leave the result in this\n    region.  If pregn is nil, this region is used for pregn.\n***************************************************************************/\nbool REGN::FIntersectRc(RC *prc, PREGN pregn)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertNilOrPo(pregn, 0);\n    REGSC regsc1;\n    REGSC regsc2;\n    RC rc;\n\n    if (pvNil == pregn)\n        pregn = this;\n\n    if (!rc.FIntersect(prc, &pregn->_rc))\n    {\n        // result is empty\n        SetRc(&rc);\n        return fTrue;\n    }\n\n    // if *prc contains this region, then we're done\n    if (this == pregn && rc == _rc)\n        return fTrue;\n    if (pvNil == pregn->_pglxp)\n    {\n        // both rectangles, so the intersection is a rectangle\n        SetRc(&rc);\n        return fTrue;\n    }\n\n    regsc1.InitRc(prc, &rc);\n    regsc2.Init(pregn, &rc);\n    return _FIntersectCore(&rc, &regsc1, &regsc2);\n}\n\n/***************************************************************************\n    Core intersect routine.\n***************************************************************************/\nbool REGN::_FIntersectCore(RC *prc, PREGSC pregsc1, PREGSC pregsc2)\n{\n    AssertThis(0);\n    AssertPo(pregsc1, 0);\n    AssertPo(pregsc2, 0);\n    long dyp;\n    void *pvSwap;\n    REGBL regbl;\n\n    if (!regbl.FInit(prc))\n        return fFalse;\n\n    for (;;)\n    {\n        dyp = LwMin(pregsc1->DypCur(), pregsc2->DypCur());\n        if (!regbl.FStartRow(dyp, pregsc1->CxpCur() + pregsc2->CxpCur()))\n            return fFalse;\n\n        while (pregsc1->XpCur() < klwMax && pregsc2->XpCur() < klwMax)\n        {\n            Assert(FPure(pregsc1->FOn()) == FPure(pregsc2->FOn()), \"region scanners have different on/off states\");\n            if (pregsc1->XpCur() > pregsc2->XpCur())\n            {\n                // swap them\n                pvSwap = pregsc1;\n                pregsc1 = pregsc2;\n                pregsc2 = (PREGSC)pvSwap;\n            }\n\n            // NOTE: this is pretty much the adjoint of what's in _FUnionCore - ie,\n            // swap the sense of FOn\n            if (pregsc1->FOn())\n            {\n                // both on\n                pregsc1->XpFetch();\n                // 1 off, 2 on\n                if (pregsc1->XpCur() <= pregsc2->XpCur())\n                {\n                    pregsc1->XpFetch();\n                    continue;\n                }\n                regbl.AddXp(pregsc2->XpCur());\n                pregsc2->XpFetch();\n            }\n            else\n            {\n                // both off\n                regbl.AddXp(pregsc1->XpCur());\n                pregsc1->XpFetch();\n                // 1 on, 2 off\n                if (pregsc1->XpCur() < pregsc2->XpCur())\n                {\n                    regbl.AddXp(pregsc1->XpCur());\n                    pregsc1->XpFetch();\n                    continue;\n                }\n                pregsc2->XpFetch();\n            }\n        }\n        Assert(pregsc1->FOn(), \"bad regions\");\n        regbl.EndRow();\n        if (regbl.FDone())\n            break;\n\n        pregsc1->ScanNext(dyp);\n        pregsc2->ScanNext(dyp);\n    }\n\n    ReleasePpo(&_pglxp);\n    FreePhrgn(&_hrgn);\n\n    _pglxp = regbl.PglxpFree(&_rc, &_dxp);\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Compute regn2 minus regn1 and put the result in this region.  If\n    pregn2 is nil, this region is used.\n***************************************************************************/\nbool REGN::FDiff(PREGN pregn1, PREGN pregn2)\n{\n    AssertThis(0);\n    AssertPo(pregn1, 0);\n    AssertNilOrPo(pregn2, 0);\n    REGSC regsc1;\n    REGSC regsc2;\n    RC rc, rcT;\n\n    if (pvNil == pregn2)\n    {\n        // use this region as the first operand\n        if (!rc.FIntersect(&_rc, &pregn1->_rc))\n            return fTrue;\n        pregn2 = this;\n    }\n\n    if (pregn2->_rc.FEmpty())\n    {\n        rc.Zero();\n        SetRc(&rc);\n        return fTrue;\n    }\n\n    rc = pregn2->_rc;\n    regsc1.Init(pregn1, &rc);\n    regsc2.Init(pregn2, &rc);\n    return _FDiffCore(&rc, &regsc2, &regsc1);\n}\n\n/***************************************************************************\n    Compute regn minus the given rectangle and put the result in this region.\n    If pregn is nil, this region is used.\n***************************************************************************/\nbool REGN::FDiffRc(RC *prc, PREGN pregn)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertNilOrPo(pregn, 0);\n    REGSC regsc1;\n    REGSC regsc2;\n    RC rc;\n\n    if (pvNil == pregn)\n    {\n        if (!rc.FIntersect(&_rc, prc))\n            return fTrue;\n        pregn = this;\n    }\n\n    if (pregn->_rc.FEmpty() || prc->FContains(&pregn->_rc))\n    {\n        // the rectangle contains the entire region or the region is empty\n        rc.Zero();\n        SetRc(&rc);\n        return fTrue;\n    }\n\n    rc = pregn->_rc;\n    regsc1.InitRc(prc, &rc);\n    regsc2.Init(pregn, &rc);\n    return _FDiffCore(&rc, &regsc2, &regsc1);\n}\n\n/***************************************************************************\n    Compute *prc minus the given region and put the result in this region.\n    If pregn is nil, this region is used.\n***************************************************************************/\nbool REGN::FDiffFromRc(RC *prc, PREGN pregn)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    AssertNilOrPo(pregn, 0);\n    REGSC regsc1;\n    REGSC regsc2;\n    RC rc;\n\n    if (pvNil == pregn)\n        pregn = this;\n\n    if (!rc.FIntersect(prc, &pregn->_rc))\n    {\n        SetRc(prc);\n        return fTrue;\n    }\n\n    if (pvNil == pregn->_pglxp && pregn->_rc.FContains(prc))\n    {\n        // the region is rectangle and contains *prc, so the diff is empty\n        rc.Zero();\n        SetRc(&rc);\n        return fTrue;\n    }\n\n    regsc1.InitRc(prc, prc);\n    regsc2.Init(pregn, prc);\n    return _FDiffCore(prc, &regsc1, &regsc2);\n}\n\n/***************************************************************************\n    Core diff routine.  Compute pregsc1 minus pregsc2.\n***************************************************************************/\nbool REGN::_FDiffCore(RC *prc, PREGSC pregsc1, PREGSC pregsc2)\n{\n    AssertThis(0);\n    AssertPo(pregsc1, 0);\n    AssertPo(pregsc2, 0);\n    long dyp;\n    long xp1, xp2;\n    REGBL regbl;\n\n    if (!regbl.FInit(prc))\n        return fFalse;\n\n    for (;;)\n    {\n        dyp = LwMin(pregsc1->DypCur(), pregsc2->DypCur());\n        if (!regbl.FStartRow(dyp, pregsc1->CxpCur() + pregsc2->CxpCur()))\n            return fFalse;\n\n        xp1 = pregsc1->XpCur();\n        xp2 = pregsc2->XpCur();\n        while (xp1 < klwMax)\n        {\n            if (pregsc1->FOn())\n            {\n                while (xp2 <= xp1)\n                    xp2 = pregsc2->XpFetch();\n\n                // xp1 < xp2\n                if (pregsc2->FOn())\n                {\n                    // both on\n                    regbl.AddXp(xp1);\n                }\n                xp1 = pregsc1->XpFetch();\n            }\n\n            Assert(!pregsc1->FOn(), \"why are we here?\");\n            if (!pregsc2->FOn())\n            {\n                // both off\n                if (xp1 <= xp2)\n                {\n                    xp1 = pregsc1->XpFetch();\n                    continue;\n                }\n\n                // xp2 < xp1\n                regbl.AddXp(xp2);\n                xp2 = pregsc2->XpFetch();\n            }\n\n            Assert(!pregsc1->FOn() && pregsc2->FOn(), \"we shouldn't be here\");\n            // 1 off, 2 on\n            if (xp2 < xp1)\n            {\n                regbl.AddXp(xp2);\n                xp2 = pregsc2->XpFetch();\n            }\n            else\n            {\n                regbl.AddXp(xp1);\n                xp1 = pregsc1->XpFetch();\n            }\n        }\n\n        Assert(pregsc1->FOn(), \"bad region\");\n        regbl.EndRow();\n        if (regbl.FDone())\n            break;\n\n        pregsc1->ScanNext(dyp);\n        pregsc2->ScanNext(dyp);\n    }\n\n    ReleasePpo(&_pglxp);\n    FreePhrgn(&_hrgn);\n\n    _pglxp = regbl.PglxpFree(&_rc, &_dxp);\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Create a system region that is equivalent to the given region.\n***************************************************************************/\nHRGN REGN::HrgnCreate(void)\n{\n#ifdef WIN\n    RGNDATAHEADER *prd;\n    RCS *prcs;\n    REGSC regsc;\n    long crcMac, crc;\n    HRGN hrgn;\n    long yp, dyp;\n\n    crcMac = _pglxp == pvNil ? 1 : _pglxp->IvMac() / 2;\n    if (!FAllocPv((void **)&prd, size(RGNDATAHEADER) + LwMul(crcMac, size(RECT)), fmemNil, mprNormal))\n    {\n        return hNil;\n    }\n\n    prcs = (RCS *)(prd + 1);\n    regsc.Init(this, &_rc);\n    crc = 0;\n    if (!_rc.FEmpty())\n    {\n        yp = _rc.ypTop;\n        for (;;)\n        {\n            dyp = regsc.DypCur();\n            while (regsc.XpCur() < klwMax)\n            {\n                prcs->left = regsc.XpCur() + _rc.xpLeft;\n                prcs->right = regsc.XpFetch() + _rc.xpLeft;\n                regsc.XpFetch();\n                prcs->top = yp;\n                prcs->bottom = yp + dyp;\n                prcs++;\n                crc++;\n            }\n            if ((yp += dyp) >= _rc.ypBottom)\n                break;\n            regsc.ScanNext(dyp);\n        }\n    }\n    AssertIn(crc, 0, crcMac + 1);\n    prd->dwSize = size(RGNDATAHEADER);\n    prd->iType = RDH_RECTANGLES;\n    prd->nCount = crc;\n    prd->nRgnSize = 0;\n    prd->rcBound = (RCS)_rc;\n\n    hrgn = ExtCreateRegion(pvNil, size(RGNDATAHEADER) + LwMul(crc, size(RECT)), (RGNDATA *)prd);\n    FreePpv((void **)&prd);\n    return hrgn;\n#endif // WIN\n#ifdef MAC\n    HRGN hrgn;\n\n    if (pvNil == _pglxp)\n    {\n        RCS rcs;\n\n        if (hNil == (hrgn = NewRgn()))\n            return hNil;\n        rcs = RCS(_rc);\n        RectRgn(hrgn, &rcs);\n        return hrgn;\n    }\n\n    REGSC regsc1;\n    REGSC regsc2;\n    RC rc;\n    long yp;\n    long cb;\n    long xp1, xp2;\n    short *psw;\n\n    regsc1.Init(this, &_rc);\n    rc = _rc;\n    rc.ypTop--;\n    regsc2.Init(this, &rc);\n    for (yp = _rc.ypTop, cb = size(Region);;)\n    {\n        cb += size(short);\n        xp1 = regsc1.XpCur();\n        xp2 = regsc2.XpCur();\n        for (;;)\n        {\n            if (xp1 == xp2)\n            {\n                if (xp1 == klwMax)\n                    break;\n                xp1 = regsc1.XpFetch();\n                xp2 = regsc2.XpFetch();\n                continue;\n            }\n            else if (xp1 < xp2)\n            {\n                cb += size(short);\n                xp1 = regsc1.XpFetch();\n            }\n            else\n            {\n                cb += size(short);\n                xp2 = regsc2.XpFetch();\n            }\n        }\n        cb += size(short);\n        if (yp >= _rc.ypBottom)\n            break;\n        yp += regsc1.DypCur();\n        regsc1.ScanNext(regsc1.DypCur());\n        regsc2.ScanNext(regsc2.DypCur());\n    }\n    cb += size(short);\n\n    if (hNil == (hrgn = (HRGN)NewHandle(cb)))\n        return hNil;\n\n    HLock((HN)hrgn);\n    (*hrgn)->rgnSize = (short)cb;\n    (*hrgn)->rgnBBox = RCS(_rc);\n\n    regsc1.Init(this, &_rc);\n    rc = _rc;\n    rc.ypTop--;\n    regsc2.Init(this, &rc);\n    for (yp = _rc.ypTop, psw = (short *)((*hrgn) + 1);;)\n    {\n        *psw++ = (short)yp;\n        xp1 = regsc1.XpCur();\n        xp2 = regsc2.XpCur();\n        for (;;)\n        {\n            if (xp1 == xp2)\n            {\n                if (xp1 == klwMax)\n                    break;\n                xp1 = regsc1.XpFetch();\n                xp2 = regsc2.XpFetch();\n                continue;\n            }\n            else if (xp1 < xp2)\n            {\n                *psw++ = (short)xp1;\n                xp1 = regsc1.XpFetch();\n            }\n            else\n            {\n                *psw++ = (short)xp2;\n                xp2 = regsc2.XpFetch();\n            }\n        }\n        *psw++ = 0x7FFF;\n        if (yp >= _rc.ypBottom)\n            break;\n        yp += regsc1.DypCur();\n        regsc1.ScanNext(regsc1.DypCur());\n        regsc2.ScanNext(regsc2.DypCur());\n    }\n    *psw++ = 0x7FFF;\n    Assert(psw == PvAddBv(*hrgn, cb), \"wrong size!\");\n    HUnlock((HN)hrgn);\n    return hrgn;\n#endif // MAC\n}\n\n/***************************************************************************\n    If we don't have a cached HRGN equivalent of this region, create one.\n    In either case return it.\n***************************************************************************/\nHRGN REGN::HrgnEnsure(void)\n{\n    if (hNil != _hrgn)\n    {\n        if (_dptRgn.xp != 0 || _dptRgn.yp != 0)\n        {\n            OffsetRgn(_hrgn, (short)_dptRgn.xp, (short)_dptRgn.yp);\n            _dptRgn.xp = _dptRgn.yp = 0;\n        }\n        return _hrgn;\n    }\n\n    _dptRgn.xp = _dptRgn.yp = 0;\n    _hrgn = HrgnCreate();\n    return _hrgn;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a REGN.\n***************************************************************************/\nvoid REGN::AssertValid(ulong grf)\n{\n    REGN_PAR::AssertValid(0);\n    AssertNilOrPo(_pglxp, 0);\n    Assert(_dxp <= 0, \"bad _dxp\");\n    Assert(_dxp == 0 || _pglxp != pvNil, \"_dxp should be zero\");\n    // REVIEW shonk: REGN::AssertValid: fill this in\n}\n\n/***************************************************************************\n    Mark memory for the REGN.\n***************************************************************************/\nvoid REGN::MarkMem(void)\n{\n    AssertValid(0);\n    REGN_PAR::MarkMem();\n    MarkMemObj(_pglxp);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/region.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Region stuff.\n\n***************************************************************************/\n#ifndef REGION_H\n#define REGION_H\n\ntypedef class REGSC *PREGSC;\n\n/***************************************************************************\n    The region class.\n***************************************************************************/\ntypedef class REGN *PREGN;\n#define REGN_PAR BASE\n#define kclsREGN 'REGN'\nclass REGN : public REGN_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    friend class REGSC;\n\n    // The _pglxp contains a bunch of rows.  Each row consists of:\n    // dyp, xp0, xp1, ..., klwMax.\n    // The dyp is the height of the strip in pixels, the xp's are boundary points\n    // The xp's are relative to _rc.xpLeft + _dxp. _pglxp is nil iff the region\n    // is strictly rectangular.\n    RC _rc;     // bounding rectangle\n    long _dxp;  // additional offset for xp values\n    PGL _pglxp; // region data - see above\n    HRGN _hrgn; // for HrgnEnsure\n    PT _dptRgn; // offset of _hrgn relative to this region\n\n    REGN(void)\n    {\n    }\n\n    bool _FUnionCore(RC *prc, PREGSC pregsc1, PREGSC pregsc2);\n    bool _FIntersectCore(RC *prc, PREGSC pregsc1, PREGSC pregsc2);\n    bool _FDiffCore(RC *prc, PREGSC pregsc1, PREGSC pregsc2);\n\n  public:\n    static PREGN PregnNew(RC *prc = pvNil);\n    ~REGN(void);\n\n    void SetRc(RC *prc = pvNil);\n    void Offset(long xp, long yp);\n    bool FEmpty(RC *prc = pvNil);\n    bool FIsRc(RC *prc = pvNil);\n    void Scale(long lwNumX, long lwDenX, long lwNumY, long lwDenY);\n\n    bool FUnion(PREGN pregn1, PREGN pregn2 = pvNil);\n    bool FUnionRc(RC *prc, PREGN pregn2 = pvNil);\n    bool FIntersect(PREGN pregn1, PREGN pregn2 = pvNil);\n    bool FIntersectRc(RC *prc, PREGN pregn = pvNil);\n    bool FDiff(PREGN pregn1, PREGN pregn2 = pvNil);\n    bool FDiffRc(RC *prc, PREGN pregn = pvNil);\n    bool FDiffFromRc(RC *prc, PREGN pregn = pvNil);\n\n    HRGN HrgnCreate(void);\n    HRGN HrgnEnsure(void);\n};\n\n/***************************************************************************\n    Region scanner class.\n***************************************************************************/\n#define REGSC_PAR BASE\n#define kclsREGSC 'rgsc'\nclass REGSC : public REGSC_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    PGL _pglxpSrc;    // the list of points\n    long *_pxpLimSrc; // the end of the list\n    long *_pxpLimCur; // the end of the current row\n\n    long _xpMinRow;   // the first xp value of the active part of the current row\n    long *_pxpMinRow; // the beginning of the active part of the currrent row\n    long *_pxpLimRow; // the end of the active part of the current row\n    long *_pxp;       // the current postion in the current row\n\n    long _dxp;     // this gets added to all source xp values\n    long _xpRight; // the right edge of the active area - left edge is 0\n\n    // current state\n    bool _fOn;    // whether the current xp is a transition to on or off\n    long _xp;     // the current xp\n    long _dyp;    // the remaining height that this scan is effective for\n    long _dypTot; // the remaining total height of the active area\n\n    // When scanning rectangles, _pglxpSrc will be nil and _pxpSrc et al will\n    // point into this.\n    long _rgxpRect[4];\n\n    void _InitCore(PGL pglxp, RC *prc, RC *prcRel);\n    void _ScanNextCore(void);\n\n  public:\n    REGSC(void);\n    ~REGSC(void);\n    void Free(void);\n\n    void Init(PREGN pregn, RC *prcRel);\n    void InitRc(RC *prc, RC *prcRel);\n    void ScanNext(long dyp)\n    {\n        _dypTot -= dyp;\n        if ((_dyp -= dyp) <= 0)\n            _ScanNextCore();\n        _pxp = _pxpMinRow;\n        _xp = _xpMinRow;\n        _fOn = fTrue;\n    }\n    long XpFetch(void)\n    {\n        if (_pxp < _pxpLimRow - 1)\n        {\n            _xp = _dxp + *_pxp++;\n            _fOn = !_fOn;\n        }\n        else if (_pxp < _pxpLimRow)\n        {\n            AssertH(_fOn);\n            _xp = LwMin(_xpRight, _dxp + *_pxp++);\n            _fOn = !_fOn;\n        }\n        else\n        {\n            _xp = klwMax;\n            _fOn = fTrue;\n        }\n        return _xp;\n    }\n\n    bool FOn(void)\n    {\n        return _fOn;\n    }\n    long XpCur(void)\n    {\n        return _xp;\n    }\n    long DypCur(void)\n    {\n        return _dyp;\n    }\n    long CxpCur(void)\n    {\n        return _pxpLimRow - _pxpMinRow + 1;\n    }\n};\n\n#endif //! REGION_H\n"
  },
  {
    "path": "kauai/src/rtxt.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Rich text document and associated DDG.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nRTCLASS(TXTB)\nRTCLASS(TXPD)\nRTCLASS(TXRD)\nRTCLASS(TXTG)\nRTCLASS(TXLG)\nRTCLASS(TXRG)\nRTCLASS(RTUN)\n\nBEGIN_CMD_MAP(TXRG, DDG)\nON_CID_GEN(cidPlain, &TXRG::FCmdApplyProperty, &TXRG::FEnablePropCmd)\nON_CID_GEN(cidBold, &TXRG::FCmdApplyProperty, &TXRG::FEnablePropCmd)\nON_CID_GEN(cidItalic, &TXRG::FCmdApplyProperty, &TXRG::FEnablePropCmd)\nON_CID_GEN(cidUnderline, &TXRG::FCmdApplyProperty, &TXRG::FEnablePropCmd)\nON_CID_GEN(cidJustifyLeft, &TXRG::FCmdApplyProperty, &TXRG::FEnablePropCmd)\nON_CID_GEN(cidJustifyCenter, &TXRG::FCmdApplyProperty, &TXRG::FEnablePropCmd)\nON_CID_GEN(cidJustifyRight, &TXRG::FCmdApplyProperty, &TXRG::FEnablePropCmd)\nON_CID_GEN(cidIndentNone, &TXRG::FCmdApplyProperty, &TXRG::FEnablePropCmd)\nON_CID_GEN(cidIndentFirst, &TXRG::FCmdApplyProperty, &TXRG::FEnablePropCmd)\nON_CID_GEN(cidIndentRest, &TXRG::FCmdApplyProperty, &TXRG::FEnablePropCmd)\nON_CID_GEN(cidIndentAll, &TXRG::FCmdApplyProperty, &TXRG::FEnablePropCmd)\nON_CID_GEN(cidChooseFont, &TXRG::FCmdApplyProperty, &TXRG::FEnablePropCmd)\nON_CID_GEN(cidChooseFontSize, &TXRG::FCmdApplyProperty, &TXRG::FEnablePropCmd)\nON_CID_GEN(cidChooseSubSuper, &TXRG::FCmdApplyProperty, &TXRG::FEnablePropCmd)\nEND_CMD_MAP_NIL()\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the rich text doc.\n***************************************************************************/\nvoid TXTB::AssertValid(ulong grfobj)\n{\n    achar ch;\n    long ibMac;\n    long cpMac;\n\n    TXTB_PAR::AssertValid(grfobj);\n    AssertPo(_pbsf, 0);\n    ibMac = _pbsf->IbMac();\n    cpMac = ibMac / size(achar);\n    Assert(ibMac % size(achar) == 0, \"ibMac not divisible by size(achar)\");\n    AssertIn(ibMac, size(achar), kcbMax);\n    AssertIn(_cpMinCache, 0, cpMac + 1);\n    AssertIn(_cpLimCache, 0, cpMac + 1);\n    AssertIn(_cpLimCache, _cpMinCache, _cpMinCache + size(_rgchCache) + 1);\n    AssertNilOrPo(_pfil, 0);\n    if (grfobj & fobjAssertFull)\n    {\n        _pbsf->FetchRgb(ibMac - size(achar), size(achar), &ch);\n        Assert(ch == kchReturn, \"stream doesn't end with a carriage return\");\n    }\n}\n\n/***************************************************************************\n    Mark memory for the TXTB.\n***************************************************************************/\nvoid TXTB::MarkMem(void)\n{\n    AssertThis(fobjAssertFull);\n    TXTB_PAR::MarkMem();\n    MarkMemObj(_pbsf);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for the base text document class\n***************************************************************************/\nTXTB::TXTB(PDOCB pdocb, ulong grfdoc) : TXTB_PAR(pdocb, grfdoc)\n{\n    _acrBack = kacrWhite;\n    _dxpDef = kdxpDocDef;\n}\n\n/***************************************************************************\n    Destructor for the base text document class\n***************************************************************************/\nTXTB::~TXTB(void)\n{\n    ReleasePpo(&_pbsf);\n    ReleasePpo(&_pfil);\n}\n\n/***************************************************************************\n    Initializer for the base text document class.\n***************************************************************************/\nbool TXTB::_FInit(PFNI pfni, PBSF pbsf, short osk)\n{\n    AssertNilOrPo(pfni, ffniFile);\n    AssertNilOrPo(pbsf, 0);\n    achar ch;\n\n    if (pvNil != pfni && pvNil == (_pfil = FIL::PfilOpen(pfni)))\n        return fFalse;\n\n    if (pvNil != pbsf)\n    {\n        if (osk != koskCur)\n        {\n            Bug(\"Can't translate a BSF\");\n            return fFalse;\n        }\n        if (pbsf->IbMac() % size(achar) != 0)\n        {\n            Bug(\"BSF has a partial character\");\n            return fFalse;\n        }\n        pbsf->AddRef();\n        _pbsf = pbsf;\n    }\n    else if (pvNil == (_pbsf = NewObj BSF))\n        return fFalse;\n    else if (!_FLoad(osk))\n        return fFalse;\n\n    // append a return character\n    ch = kchReturn;\n    if (!_pbsf->FReplace(&ch, size(achar), _pbsf->IbMac(), 0))\n        return fFalse;\n\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Load the document from its file\n***************************************************************************/\nbool TXTB::_FLoad(short osk)\n{\n    // initialize the BSF to just point to the file\n    FLO flo;\n    bool fRet = fFalse;\n\n    if (pvNil == (flo.pfil = _pfil) || 0 == (flo.cb = _pfil->FpMac()))\n        return fTrue;\n\n    flo.pfil->AddRef();\n    flo.fp = 0;\n    if (flo.FTranslate(osk))\n    {\n        fRet = flo.cb == 0 || _pbsf->FReplaceFlo(&flo, fFalse, 0, _pbsf->IbMac());\n    }\n\n    ReleasePpo(&flo.pfil);\n    return fRet;\n}\n\n/***************************************************************************\n    Return the length of the text in the text document.\n***************************************************************************/\nlong TXTB::CpMac(void)\n{\n    // Note: we don't do an AssertThis(0) here for debug performance\n    AssertThisMem();\n    AssertVarMem(_pbsf);\n    Assert(_pbsf->IbMac() % size(achar) == 0, \"IbMac() not divisible by size(achar)\");\n\n    return _pbsf->IbMac() / size(achar);\n}\n\n/***************************************************************************\n    Suspend undo. This increments a count.\n***************************************************************************/\nvoid TXTB::SuspendUndo(void)\n{\n    AssertThis(0);\n    _cactSuspendUndo++;\n}\n\n/***************************************************************************\n    Resume undo. This decrements a count.\n***************************************************************************/\nvoid TXTB::ResumeUndo(void)\n{\n    AssertThis(0);\n    Assert(_cactSuspendUndo > 0, \"bad _cactSuspendUndo\");\n    _cactSuspendUndo--;\n}\n\n/***************************************************************************\n    Set up undo for an action. If this succeeds, you must call either\n    CancelUndo or CommitUndo. Default TXTB doesn't create an undo record.\n***************************************************************************/\nbool TXTB::FSetUndo(long cp1, long cp2, long ccpIns)\n{\n    AssertThis(0);\n    AssertIn(cp1, 0, CpMac() + 1);\n    AssertIn(cp2, 0, CpMac() + 1);\n    AssertIn(ccpIns, 0, kcbMax);\n\n    _cactSuspendUndo++;\n    return fTrue;\n}\n\n/***************************************************************************\n    Cancel undo.\n***************************************************************************/\nvoid TXTB::CancelUndo(void)\n{\n    ResumeUndo();\n}\n\n/***************************************************************************\n    Commit the setup undo.\n***************************************************************************/\nvoid TXTB::CommitUndo(void)\n{\n    ResumeUndo();\n}\n\n/***************************************************************************\n    Increments the _cactCombineUndo counter. This is used to determine\n    whether the new undo record can be combined with the previous one\n    (during typing etc).\n***************************************************************************/\nvoid TXTB::BumpCombineUndo(void)\n{\n    AssertThis(0);\n    if (_cactSuspendUndo <= 0)\n        _cactCombineUndo++;\n}\n\n/***************************************************************************\n    Search for some text. If fCaseSensitive is false, we map prgch to all\n    lower case. The pcpLim parameter is in case we support regular\n    expressions in the future.\n***************************************************************************/\nbool TXTB::FFind(achar *prgch, long cch, long cpMin, long *pcpMin, long *pcpLim, bool fCaseSensitive)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(cch, 1, kcbMax);\n    AssertPvCb(prgch, cch * size(achar));\n    AssertIn(cpMin, 0, CpMac() + 1);\n    AssertVarMem(pcpMin);\n    AssertVarMem(pcpLim);\n    const long kcbCharSet = 256 / 8;\n    byte grfbitUsed[kcbCharSet];\n    long ibit;\n    achar *pch, *pchLast;\n    achar ch;\n    long cpT, cpMac;\n\n    if (!fCaseSensitive)\n        LowerRgch(prgch, cch);\n\n    cch--;\n    pchLast = prgch + cch;\n\n    // calculate the grfbitUsed bit field - indicating, which characters\n    // appear in the search string.\n    ClearPb(grfbitUsed, size(grfbitUsed));\n    for (pch = prgch; pch <= pchLast; pch++)\n    {\n        ibit = (long)(byte)*pch;\n        AssertIn(ibit, 0, 256);\n        grfbitUsed[IbFromIbit(ibit)] |= Fbit(ibit);\n    }\n\n    for (cpMac = CpMac(); (cpT = cpMin + cch) < cpMac;)\n    {\n        for (pch = pchLast;; cpT--, pch--)\n        {\n            // get the character and map it to lower case if we're doing\n            // a case insensitive search\n            ch = _ChFetch(cpT);\n            if (!fCaseSensitive)\n                ch = ChLower(ch);\n\n            // see if the character is used anywhere within the search string\n            ibit = (long)(byte)ch;\n            if (!(grfbitUsed[IbFromIbit(ibit)] & Fbit(ibit)))\n            {\n                // this character isn't anywhere in the search string,\n                // so we can jump by a lot.\n                cpMin = cpT + 1;\n                break;\n            }\n\n            // see if the character matches the corresponding character in\n            // the search string\n            if (ch != *pch)\n            {\n                // character doesn't match, just jump by one\n                cpMin++;\n                break;\n            }\n\n            // if cpT is back to cpMin, we've got a match\n            if (cpT == cpMin)\n            {\n                // we matched\n                *pcpMin = cpMin;\n                *pcpLim = cpMin + cch + 1;\n                return fTrue;\n            }\n        }\n    }\n\n    TrashVar(pcpMin);\n    TrashVar(pcpLim);\n    return fFalse;\n}\n\n/***************************************************************************\n    Turn the selection of this TXTB's active DDG off.\n***************************************************************************/\nvoid TXTB::HideSel(void)\n{\n    AssertThis(0);\n    PDDG pddg;\n\n    if (pvNil != (pddg = PddgActive()) && pddg->FIs(kclsTXTG))\n        ((PTXTG)pddg)->HideSel();\n}\n\n/***************************************************************************\n    Set the selection of this TXTB's active DDG to the given range.\n***************************************************************************/\nvoid TXTB::SetSel(long cpAnchor, long cpOther, long gin)\n{\n    AssertThis(0);\n    PDDG pddg;\n\n    if (pvNil != (pddg = PddgActive()) && pddg->FIs(kclsTXTG))\n        ((PTXTG)pddg)->SetSel(cpAnchor, cpOther, gin);\n}\n\n/***************************************************************************\n    Make sure the selection of this TXTB's acttive DDG is visible (at least\n    the _cpOther end of it).\n***************************************************************************/\nvoid TXTB::ShowSel(void)\n{\n    AssertThis(0);\n    PDDG pddg;\n\n    if (pvNil != (pddg = PddgActive()) && pddg->FIs(kclsTXTG))\n        ((PTXTG)pddg)->ShowSel();\n}\n\n/***************************************************************************\n    Fetch a character of the stream through the cache.\n***************************************************************************/\nvoid TXTB::_CacheRange(long cpMin, long cpLim)\n{\n    AssertThis(0);\n    AssertIn(cpMin, 0, CpMac() + 1);\n    AssertIn(cpLim, cpMin, CpMac() + 1);\n    AssertIn(cpLim - cpMin, 0, kcchMaxTxtbCache + 1);\n    long cpMac;\n\n    if (cpMin >= _cpMinCache && cpLim <= _cpLimCache)\n        return;\n\n    cpMac = CpMac();\n    if (_cpLimCache <= _cpMinCache)\n    {\n        // nothing currently cached\n        goto LNewCache;\n    }\n\n    if (cpMin < _cpMinCache)\n    {\n        long cpT;\n\n        if (_cpMinCache >= cpMin + kcchMaxTxtbCache)\n            goto LNewCache;\n\n        // keep front end of old stuff\n        cpT = LwMax(0, LwMin(cpMin, _cpLimCache - kcchMaxTxtbCache));\n        _cpLimCache = LwMin(cpT + kcchMaxTxtbCache, _cpLimCache);\n        BltPb(_rgchCache, _rgchCache + (_cpMinCache - cpT), (_cpLimCache - _cpMinCache) * size(achar));\n        _pbsf->FetchRgb(cpT * size(achar), (_cpMinCache - cpT) * size(achar), _rgchCache);\n        _cpMinCache = cpT;\n    }\n    else\n    {\n        Assert(cpLim > _cpLimCache, 0);\n        if (cpLim >= _cpLimCache + kcchMaxTxtbCache)\n        {\n        LNewCache:\n            // just cache around [cpMin, cpLim)\n            _cpMinCache = LwMax(0, LwMin((cpMin + cpLim - kcchMaxTxtbCache) / 2, cpMac - kcchMaxTxtbCache));\n            _cpLimCache = LwMin(_cpMinCache + kcchMaxTxtbCache, cpMac);\n            _pbsf->FetchRgb(_cpMinCache * size(achar), (_cpLimCache - _cpMinCache) * size(achar), _rgchCache);\n        }\n        else\n        {\n            // keep back end old stuff\n            long cpLimCache, cpMinCache;\n\n            cpLimCache = LwMin(cpMac, LwMax(cpLim, _cpMinCache + kcchMaxTxtbCache));\n            cpMinCache = LwMax(cpLimCache - kcchMaxTxtbCache, _cpMinCache);\n            if (cpMinCache != _cpMinCache)\n            {\n                BltPb(_rgchCache + (cpMinCache - _cpMinCache), _rgchCache, (_cpLimCache - cpMinCache) * size(achar));\n            }\n            _pbsf->FetchRgb(_cpLimCache * size(achar), (cpLimCache - _cpLimCache) * size(achar),\n                            _rgchCache + _cpLimCache - cpMinCache);\n            _cpMinCache = cpMinCache;\n            _cpLimCache = cpLimCache;\n        }\n    }\n}\n\n/***************************************************************************\n    Characters have changed, so fix the cache.\n***************************************************************************/\nvoid TXTB::_InvalCache(long cp, long ccpIns, long ccpDel)\n{\n    long dcpFront, dcpBack;\n\n    if (_cpLimCache <= cp || _cpLimCache <= _cpMinCache || ccpIns == 0 && ccpDel == 0)\n    {\n        // cache is before the edit or cache is already empty\n        return;\n    }\n\n    if (_cpMinCache >= cp + ccpDel)\n    {\n        // cache is after the edit\n        _cpMinCache += ccpIns - ccpDel;\n        _cpLimCache += ccpIns - ccpDel;\n        return;\n    }\n\n    dcpFront = cp - _cpMinCache;\n    dcpBack = _cpLimCache - cp - ccpDel;\n    if (dcpFront <= 0 && dcpBack <= 0)\n        _cpMinCache = _cpLimCache = 0;\n    else if (dcpFront >= dcpBack)\n    {\n        // keep the front end of the cache\n        _cpLimCache = cp;\n    }\n    else\n    {\n        // keep the tail end of the cache\n        BltPb(_rgchCache + cp + ccpDel - _cpMinCache, _rgchCache, dcpBack * size(achar));\n        _cpMinCache = cp + ccpIns;\n        _cpLimCache = _cpMinCache + dcpBack;\n    }\n}\n\n/***************************************************************************\n    Fetch a character of the stream through the cache.\n***************************************************************************/\nachar TXTB::_ChFetch(long cp)\n{\n    AssertThis(0);\n    AssertIn(cp, 0, CpMac() + 1);\n\n    if (!FIn(cp, _cpMinCache, _cpLimCache))\n    {\n        // not a cache hit\n        _CacheRange(cp, cp + 1);\n    }\n\n    return _rgchCache[cp - _cpMinCache];\n}\n\n/***************************************************************************\n    Fetch some characters from the text document.\n***************************************************************************/\nvoid TXTB::FetchRgch(long cp, long ccp, achar *prgch)\n{\n    AssertThis(0);\n    AssertIn(cp, 0, CpMac() + 1);\n    AssertIn(ccp, 0, CpMac() - cp + 1);\n    AssertPvCb(prgch, ccp * size(achar));\n    long ccpT;\n\n    while (ccp > 0)\n    {\n        ccpT = LwMin(ccp, kcchMaxTxtbCache);\n        _CacheRange(cp, cp + ccpT);\n        CopyPb(_rgchCache + cp - _cpMinCache, prgch, ccpT * size(achar));\n        prgch += ccpT;\n        cp += ccpT;\n        ccp -= ccpT;\n    }\n}\n\n/***************************************************************************\n    Returns non-zero iff cp is the beginning of a paragraph.\n***************************************************************************/\nbool TXTB::FMinPara(long cp)\n{\n    AssertThis(0);\n    ulong grfch;\n\n    if (cp <= 0)\n        return cp == 0;\n    if (cp >= CpMac())\n        return fFalse;\n    if (GrfchFromCh(_ChFetch(cp)) & fchIgnore)\n        return fFalse;\n\n    // return true iff the first non-ignore character we see\n    // is a break character\n    AssertIn(cp, 1, CpMac());\n    while (cp-- > 0)\n    {\n        grfch = GrfchFromCh(_ChFetch(cp));\n        if (fchBreak & grfch)\n            return fTrue;\n        if (!(fchIgnore & grfch))\n            return fFalse;\n    }\n\n    // just line feeds!\n    Warn(\"isolated line feeds\");\n    return fFalse;\n}\n\n/***************************************************************************\n    Find the beginning of the paragraph that cp is in. If cp <= 0,\n    returns 0. If cp >= CpMac(), returns the beginning of the last\n    paragraph.\n***************************************************************************/\nlong TXTB::CpMinPara(long cp)\n{\n    AssertThis(0);\n    ulong grfch;\n    long cpOrig;\n    long dcpLine = 1;\n\n    if (cp <= 0)\n        return 0;\n\n    if (cp >= CpMac())\n        cp = CpMac() - 1;\n    else if (GrfchFromCh(_ChFetch(cp)) & fchIgnore)\n        dcpLine++;\n    cpOrig = cp;\n\n    AssertIn(cp, 1, CpMac());\n    while (cp-- > 0)\n    {\n        grfch = GrfchFromCh(_ChFetch(cp));\n        if (fchBreak & grfch)\n        {\n            if (cp + dcpLine <= cpOrig)\n                return cp + dcpLine;\n            dcpLine = 1;\n        }\n        else if (fchIgnore & grfch)\n            dcpLine++;\n        else\n            dcpLine = 1;\n    }\n\n    return 0;\n}\n\n/***************************************************************************\n    Find the end of the paragraph that cp is in. If cp < 0, returns 0.\n    If cp >= CpMac(), returns CpMac().\n***************************************************************************/\nlong TXTB::CpLimPara(long cp)\n{\n    AssertThis(0);\n    ulong grfch;\n    bool fCr = fFalse;\n    long cpLim = CpMac();\n\n    if (cp < 0)\n        return 0;\n    if (cp >= cpLim)\n        return cpLim;\n\n    // cp should now be a legal index into the character stream\n    AssertIn(cp, 0, cpLim);\n    while (cp > 0 && (GrfchFromCh(_ChFetch(cp)) & fchIgnore))\n        cp--;\n\n    for (; cp < cpLim; cp++)\n    {\n        grfch = GrfchFromCh(_ChFetch(cp));\n        if (fchBreak & grfch)\n        {\n            if (fCr)\n                return cp;\n            fCr = fTrue;\n        }\n        else if (!(fchIgnore & grfch) && fCr)\n            return cp;\n    }\n    Assert(fCr, \"last character is not a return character\");\n    return cpLim;\n}\n\n/***************************************************************************\n    Return cp of the previous character, skipping line feed characters. If\n    fWord is true, skip to the beginning of a word.\n***************************************************************************/\nlong TXTB::CpPrev(long cp, bool fWord)\n{\n    AssertThis(0);\n    AssertIn(cp, 0, CpMac() + 1);\n\n    if (!fWord)\n    {\n        while (cp > 0 && (fchIgnore & GrfchFromCh(_ChFetch(--cp))))\n            ;\n    }\n    else\n    {\n        while (cp > 0 && ((fchIgnore | fchMayBreak) & GrfchFromCh(_ChFetch(cp - 1))))\n        {\n            cp--;\n        }\n        while (cp > 0 && !((fchIgnore | fchMayBreak) & GrfchFromCh(_ChFetch(cp - 1))))\n        {\n            cp--;\n        }\n    }\n\n    return cp;\n}\n\n/***************************************************************************\n    Return cp of the next character, skipping line feed characters. If\n    fWord is true, skip to the beginning of the next word.\n***************************************************************************/\nlong TXTB::CpNext(long cp, bool fWord)\n{\n    AssertThis(0);\n    AssertIn(cp, 0, CpMac() + 1);\n    long cpMac = CpMac();\n\n    if (cp >= cpMac)\n        return cpMac;\n\n    if (!fWord)\n    {\n        while (++cp < cpMac && (fchIgnore & GrfchFromCh(_ChFetch(cp))))\n            ;\n    }\n    else\n    {\n        while (cp < cpMac && !((fchIgnore | fchMayBreak) & GrfchFromCh(_ChFetch(cp))))\n        {\n            cp++;\n        }\n        while (cp < cpMac && ((fchIgnore | fchMayBreak) & GrfchFromCh(_ChFetch(cp))))\n        {\n            cp++;\n        }\n    }\n    return cp;\n}\n\n/***************************************************************************\n    Invalidate all DDGs on this text doc. Also dirties the document.\n    Should be called by any code that edits the document.\n***************************************************************************/\nvoid TXTB::InvalAllDdg(long cp, long ccpIns, long ccpDel, ulong grfdoc)\n{\n    AssertThis(0);\n    AssertIn(cp, 0, CpMac() + 1);\n    AssertIn(ccpIns, 0, CpMac() + 1 - cp);\n    AssertIn(ccpDel, 0, kcbMax);\n    long ipddg;\n    PDDG pddg;\n\n    // mark the document dirty\n    SetDirty();\n    if (fdocNil == grfdoc)\n        return;\n\n    // inform the DDGs\n    for (ipddg = 0; pvNil != (pddg = PddgGet(ipddg)); ipddg++)\n    {\n        if ((grfdoc & fdocUpdate) && pddg->FIs(kclsTXTG))\n            ((PTXTG)pddg)->InvalCp(cp, ccpIns, ccpDel);\n        else\n            pddg->InvalRc(pvNil);\n    }\n}\n\n/***************************************************************************\n    Set the background color of the document.\n***************************************************************************/\nvoid TXTB::SetAcrBack(ACR acr, ulong grfdoc)\n{\n    AssertThis(0);\n    AssertPo(&acr, 0);\n    Assert(acr != kacrInvert, \"can't use invert as a background color\");\n\n    if (_acrBack != acr)\n    {\n        _acrBack = acr;\n        SetDirty();\n        if (grfdoc & (fdocUpdate | fdocInval))\n            InvalAllDdg(0, 0, 0, fdocInval);\n    }\n}\n\n/***************************************************************************\n    Set the default width of the document.\n***************************************************************************/\nvoid TXTB::SetDxpDef(long dxp)\n{\n    AssertThis(0);\n    AssertIn(dxp, 1, kcbMax);\n    long cpMac;\n\n    if (_dxpDef == dxp)\n        return;\n\n    _dxpDef = dxp;\n    SetDirty();\n    HideSel();\n    cpMac = CpMac();\n    InvalAllDdg(0, cpMac, cpMac);\n}\n\n/***************************************************************************\n    Replace cp to cp + ccpDel with ccpIns characters from prgch. If ccpIns\n    is zero, prgch can be nil. The last character should never be replaced.\n***************************************************************************/\nbool TXTB::FReplaceRgch(void *prgch, long ccpIns, long cp, long ccpDel, ulong grfdoc)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(ccpIns, 0, kcbMax);\n    AssertPvCb(prgch, ccpIns * size(achar));\n    AssertIn(cp, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() - cp);\n\n    if (!_pbsf->FReplace(prgch, ccpIns * size(achar), cp * size(achar), ccpDel * size(achar)))\n    {\n        return fFalse;\n    }\n    _InvalCache(cp, ccpIns, ccpDel);\n    AssertThis(fobjAssertFull);\n    InvalAllDdg(cp, ccpIns, ccpDel, grfdoc);\n    return fTrue;\n}\n\n/***************************************************************************\n    Replace cp to cp + ccpDel with the characters in the given FLO.\n***************************************************************************/\nbool TXTB::FReplaceFlo(PFLO pflo, bool fCopy, long cp, long ccpDel, short osk, ulong grfdoc)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pflo, 0);\n    AssertIn(cp, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() - cp);\n    bool fRet = fFalse;\n    FLO flo = *pflo;\n\n    flo.pfil->AddRef();\n    if (flo.FTranslate(osk) &&\n        _pbsf->FReplaceFlo(&flo, fCopy && flo.pfil == pflo->pfil, cp * size(achar), ccpDel * size(achar)))\n    {\n        _InvalCache(cp, flo.cb / size(achar), ccpDel);\n        AssertThis(fobjAssertFull);\n        InvalAllDdg(cp, flo.cb / size(achar), ccpDel, grfdoc);\n        fRet = fTrue;\n    }\n\n    ReleasePpo(&flo.pfil);\n    return fRet;\n}\n\n/***************************************************************************\n    Replace cp to cpDst + ccpDel with ccpSrc characters from pbsfSrc starting\n    at cpSrc.\n***************************************************************************/\nbool TXTB::FReplaceBsf(PBSF pbsfSrc, long cpSrc, long ccpSrc, long cpDst, long ccpDel, ulong grfdoc)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pbsfSrc, 0);\n    AssertIn(cpSrc, 0, pbsfSrc->IbMac() / size(achar) + 1);\n    AssertIn(ccpSrc, 0, pbsfSrc->IbMac() / size(achar) + 1 - cpSrc);\n    AssertIn(cpDst, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() - cpDst);\n\n    if (!_pbsf->FReplaceBsf(pbsfSrc, cpSrc * size(achar), ccpSrc * size(achar), cpDst * size(achar),\n                            ccpDel * size(achar)))\n    {\n        return fFalse;\n    }\n    _InvalCache(cpDst, ccpSrc, ccpDel);\n    AssertThis(fobjAssertFull);\n    InvalAllDdg(cpDst, ccpSrc, ccpDel, grfdoc);\n    return fTrue;\n}\n\n/***************************************************************************\n    Replace cp to cpDst + ccpDel with ccpSrc characters from ptxtbSrc starting\n    at cpSrc.\n***************************************************************************/\nbool TXTB::FReplaceTxtb(PTXTB ptxtbSrc, long cpSrc, long ccpSrc, long cpDst, long ccpDel, ulong grfdoc)\n{\n    AssertPo(ptxtbSrc, 0);\n    AssertIn(cpSrc, 0, ptxtbSrc->CpMac() + 1);\n    AssertIn(ccpSrc, 0, ptxtbSrc->CpMac() + 1 - cpSrc);\n\n    return FReplaceBsf(ptxtbSrc->_pbsf, cpSrc, ccpSrc, cpDst, ccpDel, grfdoc);\n}\n\n/***************************************************************************\n    Get the bounds of an object - since plain text doesn't have objects,\n    just return false.\n***************************************************************************/\nbool TXTB::FGetObjectRc(long cp, PGNV pgnv, PCHP pchp, RC *prc)\n{\n    AssertThis(0);\n    AssertIn(cp, 0, CpMac());\n    AssertPo(pgnv, 0);\n    AssertVarMem(pchp);\n    AssertVarMem(prc);\n\n    TrashVar(prc);\n    return fFalse;\n}\n\n/***************************************************************************\n    Draw an object - since plain text doesn't have objects, just return\n    false.\n***************************************************************************/\nbool TXTB::FDrawObject(long cp, PGNV pgnv, long *pxp, long yp, PCHP pchp, RC *prcClip)\n{\n    AssertThis(0);\n    AssertIn(cp, 0, CpMac());\n    AssertPo(pgnv, 0);\n    AssertVarMem(pxp);\n    AssertVarMem(pchp);\n    AssertVarMem(prcClip);\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Get the current FNI for the doc. Return false if the doc is not\n    currently based on an FNI (it's a new doc or an internal one).\n***************************************************************************/\nbool TXTB::FGetFni(FNI *pfni)\n{\n    AssertThis(0);\n    AssertBasePo(pfni, 0);\n\n    if (pvNil == _pfil || _pfil->FTemp())\n        return fFalse;\n\n    _pfil->GetFni(pfni);\n    return fTrue;\n}\n\n/***************************************************************************\n    Export the text.\n***************************************************************************/\nvoid TXTB::ExportFormats(PCLIP pclip)\n{\n    AssertThis(0);\n    AssertPo(pclip, 0);\n    void *pv;\n    long ccp = CpMac() - 1;\n\n    if (ccp <= 0)\n        return;\n\n    if (!pclip->FInitExport())\n        return;\n\n    if (pvNil != (pv = pclip->PvExport(ccp * size(achar), kclfmText)))\n        _pbsf->FetchRgb(0, ccp * size(achar), pv);\n\n    pclip->EndExport();\n}\n\n/***************************************************************************\n    Constructor for plain text doc.\n***************************************************************************/\nTXPD::TXPD(PDOCB pdocb, ulong grfdoc) : TXPD_PAR(pdocb, grfdoc)\n{\n}\n\n/***************************************************************************\n    Static method to create a new plain text document.\n***************************************************************************/\nPTXPD TXPD::PtxpdNew(PFNI pfni, PBSF pbsf, short osk, PDOCB pdocb, ulong grfdoc)\n{\n    AssertNilOrPo(pfni, ffniFile);\n    AssertNilOrPo(pbsf, 0);\n    AssertNilOrPo(pdocb, 0);\n    PTXPD ptxpd;\n\n    if (pvNil != (ptxpd = NewObj TXPD(pdocb, grfdoc)) && !ptxpd->_FInit(pfni, pbsf, osk))\n    {\n        ReleasePpo(&ptxpd);\n    }\n    return ptxpd;\n}\n\n/***************************************************************************\n    Create a new TXLG to display the TXPD.\n***************************************************************************/\nPDDG TXPD::PddgNew(PGCB pgcb)\n{\n    AssertThis(fobjAssertFull);\n    long onn = vpappb->OnnDefFixed();\n    long dypFont = vpappb->DypTextDef();\n\n    return TXLG::PtxlgNew(this, pgcb, onn, fontNil, dypFont, 4);\n}\n\n/***************************************************************************\n    Save the document and optionally set this fni as the current one.\n    If the doc is currently based on an FNI, pfni may be nil, indicating\n    that this is a normal save (not save as). If pfni is not nil and\n    fSetFni is false, this just writes a copy of the doc but doesn't change\n    the doc one bit.\n***************************************************************************/\nbool TXPD::FSaveToFni(FNI *pfni, bool fSetFni)\n{\n    AssertThis(fobjAssertFull);\n    AssertNilOrPo(pfni, ffniFile);\n    FLO flo;\n    FNI fniT;\n\n    if (pvNil == pfni)\n    {\n        if (pvNil == _pfil)\n        {\n            Bug(\"Can't do a normal save - no file\");\n            return fFalse;\n        }\n        _pfil->GetFni(&fniT);\n        pfni = &fniT;\n        fSetFni = fTrue;\n    }\n\n    if (pvNil == (flo.pfil = FIL::PfilCreateTemp(pfni)))\n        goto LFail;\n\n    flo.fp = 0;\n    flo.cb = _pbsf->IbMac() - size(achar);\n#ifdef UNICODE\n    flo.cb += size(achar);\n    achar ch;\n\n    ch = kchwUnicode;\n    if (!flo.FWriteRgb(&ch, size(achar), 0))\n        goto LFail;\n    flo.fp += size(achar);\n    flo.cb -= size(achar);\n#endif // UNICODE\n\n    if (!_pbsf->FWriteRgb(&flo))\n        goto LFail;\n\n    // redirect the BSF to the new file\n    if (fSetFni)\n        _pbsf->FReplaceFlo(&flo, fFalse, 0, flo.cb);\n\n    if (!flo.pfil->FSetFni(pfni))\n    {\n    LFail:\n        ReleasePpo(&flo.pfil);\n        return fFalse;\n    }\n    flo.pfil->SetTemp(fFalse);\n\n    if (fSetFni)\n    {\n        ReleasePpo(&_pfil);\n        _pfil = flo.pfil;\n        _fDirty = fFalse;\n    }\n    else\n        ReleasePpo(&flo.pfil);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Constructor for a rich text document.\n***************************************************************************/\nTXRD::TXRD(PDOCB pdocb, ulong grfdoc) : TXRD_PAR(pdocb, grfdoc)\n{\n}\n\n/***************************************************************************\n    Destructor for a rich text document.\n***************************************************************************/\nTXRD::~TXRD(void)\n{\n    ReleasePpo(&_pglmpe);\n    ReleasePpo(&_pagcact);\n    ReleasePpo(&_pcfl);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a TXRD.\n***************************************************************************/\nvoid TXRD::AssertValid(ulong grfobj)\n{\n    TXRD_PAR::AssertValid(grfobj);\n    AssertPo(_pglmpe, 0);\n    AssertNilOrPo(_pagcact, 0);\n    AssertIn(_dypFontDef, 1, kswMax);\n    AssertIn(_pbsf->IbMac() / size(achar), 1, kcpMaxTxrd);\n\n    if (grfobj & fobjAssertFull)\n    {\n        MPE mpePrev, mpe;\n        long impe;\n\n        mpePrev.spcp = (ulong)-1;\n        for (impe = _pglmpe->IvMac(); impe-- > 0;)\n        {\n            _pglmpe->Get(impe, &mpe);\n            Assert(mpe.spcp < mpePrev.spcp, \"non-increasing mpe's\");\n            mpePrev = mpe;\n        }\n        // REVIEW shonk: TXRD::AssertValid: fill out\n    }\n}\n\n/***************************************************************************\n    Mark memory for the TXRD.\n***************************************************************************/\nvoid TXRD::MarkMem(void)\n{\n    AssertThis(fobjAssertFull);\n    TXRD_PAR::MarkMem();\n    MarkMemObj(_pglmpe);\n    MarkMemObj(_pagcact);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Static method to create or open a rich text document.\n***************************************************************************/\nPTXRD TXRD::PtxrdNew(PFNI pfni)\n{\n    AssertNilOrPo(pfni, ffniFile);\n    PTXRD ptxrd;\n\n    if (pvNil != (ptxrd = NewObj TXRD) && !ptxrd->_FInit(pfni))\n        ReleasePpo(&ptxrd);\n    return ptxrd;\n}\n\n/***************************************************************************\n    Initialize the rich text document.\n***************************************************************************/\nbool TXRD::_FInit(PFNI pfni, CTG ctg)\n{\n    AssertBaseThis(0);\n    AssertNilOrPo(pfni, 0);\n\n    if (pvNil != pfni)\n    {\n        PCFL pcfl;\n        CKI cki;\n\n        if (pvNil == (pcfl = CFL::PcflOpen(pfni, fcflNil)))\n        {\n            PushErc(ercRtxdReadFailed);\n            return fFalse;\n        }\n        if (!pcfl->FGetCkiCtg(ctg, 0, &cki) || !_FReadChunk(pcfl, cki.ctg, cki.cno, fFalse))\n        {\n            ReleasePpo(&pcfl);\n            PushErc(ercRtxdReadFailed);\n            return fFalse;\n        }\n        _pcfl = pcfl;\n        AssertThis(fobjAssertFull);\n        return fTrue;\n    }\n\n    if (!TXRD_PAR::_FInit())\n        return fFalse;\n    if (pvNil == (_pglmpe = GL::PglNew(size(MPE))))\n        return fFalse;\n    _pglmpe->SetMinGrow(10);\n    _onnDef = vpappb->OnnDefVariable();\n    _oskFont = koskCur;\n    vntl.GetStn(_onnDef, &_stnFontDef);\n\n    // NOTE: don't use vpappb->DypTextDef() so all TXRD's will have the\n    // same _dypFontDef unless explicitly changed in code.\n    _dypFontDef = 12;\n\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Static method to read a rich text document from a chunk.\n***************************************************************************/\nPTXRD TXRD::PtxrdReadChunk(PCFL pcfl, CTG ctg, CNO cno, bool fCopyText)\n{\n    AssertPo(pcfl, 0);\n    PTXRD ptxrd;\n\n    if (pvNil != (ptxrd = NewObj TXRD) && !ptxrd->_FReadChunk(pcfl, ctg, cno, fCopyText))\n    {\n        PushErc(ercRtxdReadFailed);\n        ReleasePpo(&ptxrd);\n    }\n    return ptxrd;\n}\n\n/***************************************************************************\n    Read the given chunk into this TXRD.\n***************************************************************************/\nbool TXRD::_FReadChunk(PCFL pcfl, CTG ctg, CNO cno, bool fCopyText)\n{\n    AssertPo(pcfl, 0);\n    BLCK blck;\n    FLO floText;\n    PFIL pfilT;\n    KID kid;\n    long icact;\n    long cact;\n    RDOP rdop;\n    short bo, osk;\n\n    if (!TXRD_PAR::_FInit())\n        return fFalse;\n\n    if (!pcfl->FFind(ctg, cno, &blck) || !blck.FUnpackData() || blck.Cb() < size(RDOP) ||\n        !blck.FReadRgb(&rdop, size(RDOP), 0))\n    {\n        return fFalse;\n    }\n\n    if (rdop.bo == kboOther)\n        SwapBytesBom(&rdop, kbomRdop);\n    else if (rdop.bo != kboCur)\n        return fFalse;\n\n    // do a sanity check on the default font size and width\n    if (!FIn(rdop.dypFont, 4, 256) || !FIn(rdop.dxpDef, 1, kcbMax))\n    {\n        Bug(\"bad default font size\");\n        return fFalse;\n    }\n    _dxpDef = rdop.dxpDef;\n    _dypFontDef = rdop.dypFont;\n    _acrBack.SetFromLw(rdop.lwAcrBack);\n\n    if (_stnFontDef.FRead(&blck, size(rdop)) && _stnFontDef.Cch() > 0)\n        _oskFont = rdop.oskFont;\n    else\n    {\n        _oskFont = koskCur;\n        _stnFontDef.SetNil();\n    }\n    _onnDef = vntl.OnnMapStn(&_stnFontDef, _oskFont);\n\n    // get the text\n    if (!pcfl->FGetKidChidCtg(ctg, cno, 0, kctgText, &kid) || !pcfl->FFindFlo(kid.cki.ctg, kid.cki.cno, &floText) ||\n        floText.cb < size(short) || !floText.FReadRgb(&osk, size(short), 0))\n    {\n        return fFalse;\n    }\n    floText.fp += size(short);\n    floText.cb -= size(short);\n    floText.pfil->AddRef();\n    pfilT = floText.pfil;\n    if (!floText.FTranslate(osk) || !_pbsf->FReplaceFlo(&floText, fCopyText && pfilT == floText.pfil, 0, CpMac() - 1))\n    {\n        ReleasePpo(&floText.pfil);\n        return fFalse;\n    }\n    ReleasePpo(&floText.pfil);\n\n    // get the text properties\n    if (!pcfl->FGetKidChidCtg(ctg, cno, 0, kctgTxtProps, &kid) || !pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck) ||\n        pvNil == (_pglmpe = GL::PglRead(&blck, &bo)) || size(MPE) != _pglmpe->CbEntry())\n    {\n        return fFalse;\n    }\n    if (bo == kboOther)\n    {\n        SwapBytesRglw(_pglmpe->QvGet(0), LwMul(_pglmpe->IvMac(), size(MPE)) / size(long));\n    }\n\n    // get the text property arguments\n    if (pcfl->FGetKidChidCtg(ctg, cno, 0, kctgTxtPropArgs, &kid))\n    {\n        if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck) || pvNil == (_pagcact = AG::PagRead(&blck, &bo, &osk)) ||\n            size(long) != _pagcact->CbFixed())\n        {\n            return fFalse;\n        }\n        for (icact = _pagcact->IvMac(); icact-- > 0;)\n        {\n            if (_pagcact->FFree(icact))\n                continue;\n            _pagcact->GetFixed(icact, &cact);\n            if (bo == kboOther)\n            {\n                SwapBytesRglw(&cact, 1);\n                _pagcact->PutFixed(icact, &cact);\n            }\n            if (!_FOpenArg(icact, B3Lw(cact), bo, osk))\n                return fFalse;\n        }\n    }\n\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Do any necessary munging of the AG entry on open. Return false if\n    we don't recognize this argument type.\n***************************************************************************/\nbool TXRD::_FOpenArg(long icact, byte sprm, short bo, short osk)\n{\n    AssertBaseThis(0);\n    long onn, cb;\n    byte *prgb;\n    STN stn;\n\n    cb = _pagcact->Cb(icact);\n    switch (sprm)\n    {\n    case sprmFont:\n        cb -= size(long) + size(short); // onn, osk\n        if (cb < 0)\n        {\n            Bug(\"bad font entry\");\n            return fFalse;\n        }\n        _pagcact->GetRgb(icact, size(long), size(short), &osk);\n        prgb = (byte *)PvAddBv(_pagcact->PvLock(icact), size(long) + size(short));\n        if (!stn.FSetData(prgb, cb))\n        {\n            Bug(\"bad font entry\");\n            _pagcact->Unlock();\n            return fFalse;\n        }\n        _pagcact->Unlock();\n\n        onn = vntl.OnnMapStn(&stn, osk);\n        _pagcact->PutRgb(icact, 0, size(long), &onn);\n        break;\n\n    default:\n        return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the current FNI for the doc. Return false if the doc is not\n    currently based on an FNI (it's a new doc or an internal one).\n***************************************************************************/\nbool TXRD::FGetFni(FNI *pfni)\n{\n    AssertThis(0);\n    AssertBasePo(pfni, 0);\n\n    if (pvNil == _pcfl)\n        return fFalse;\n\n    _pcfl->GetFni(pfni);\n    return fTrue;\n}\n\n/***************************************************************************\n    Ask the user what file they want to save to.\n***************************************************************************/\nbool TXRD::FGetFniSave(FNI *pfni)\n{\n    // REVIEW shonk: what file type to use on Mac?\n    AssertThis(0);\n    return FGetFniSaveMacro(pfni, 'CHN2',\n                            \"\\x9\"\n                            \"Save As: \",\n                            \"\", PszLit(\"All files\\0*.*\\0\"), vwig.hwndApp);\n}\n\n/***************************************************************************\n    Save the rich text document and optionally set this fni as the current\n    one. If the doc is currently based on an FNI, pfni may be nil, indicating\n    that this is a normal save (not save as). If pfni is not nil and\n    fSetFni is false, this just writes a copy of the doc but doesn't change\n    the doc one bit.\n***************************************************************************/\nbool TXRD::FSaveToFni(FNI *pfni, bool fSetFni)\n{\n    AssertThis(fobjAssertFull);\n    AssertNilOrPo(pfni, ffniFile);\n    FNI fni;\n    PCFL pcfl;\n    CKI cki;\n\n    if (pvNil == pfni)\n    {\n        if (pvNil == _pcfl)\n        {\n            Bug(\"Can't do a normal save - no file\");\n            return fFalse;\n        }\n        fSetFni = fTrue;\n        _pcfl->GetFni(&fni);\n        pfni = &fni;\n    }\n\n    if (pvNil == (pcfl = CFL::PcflCreateTemp(pfni)))\n        goto LFail;\n\n    if (!FSaveToChunk(pcfl, &cki, fSetFni) || !pcfl->FSave(kctgFramework, pvNil))\n        goto LFail;\n\n    if (!pcfl->FSetFni(pfni))\n    {\n    LFail:\n        ReleasePpo(&pcfl);\n        PushErc(ercRtxdSaveFailed);\n        return fFalse;\n    }\n    pcfl->SetTemp(fFalse);\n\n    if (fSetFni)\n    {\n        ReleasePpo(&_pcfl);\n        _pcfl = pcfl;\n        _fDirty = fFalse;\n    }\n    else\n        ReleasePpo(&pcfl);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Save a rich text document to the given chunky file. Fill in *pcki with\n    where we put the root chunk.\n***************************************************************************/\nbool TXRD::FSaveToChunk(PCFL pcfl, CKI *pcki, bool fRedirectText)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pcfl, 0);\n    AssertVarMem(pcki);\n    RDOP rdop;\n    BLCK blck, blckText;\n    CNO cno, cnoText;\n    long cb;\n    short osk = koskCur;\n\n    pcki->ctg = kctgRichText;\n    rdop.bo = kboCur;\n    rdop.oskFont = _oskFont;\n    rdop.dxpDef = _dxpDef;\n    rdop.dypFont = _dypFontDef;\n    rdop.lwAcrBack = _acrBack.LwGet();\n    cb = _stnFontDef.CbData();\n    if (!pcfl->FAdd(size(RDOP) + cb, pcki->ctg, &pcki->cno, &blck))\n    {\n        PushErc(ercRtxdSaveFailed);\n        return fFalse;\n    }\n    if (!blck.FWriteRgb(&rdop, size(RDOP), 0) || !_stnFontDef.FWrite(&blck, size(RDOP)))\n    {\n        goto LFail;\n    }\n\n    // add the text chunk and write it\n    if (!pcfl->FAddChild(pcki->ctg, pcki->cno, 0, _pbsf->IbMac() - size(achar) + size(short), kctgText, &cnoText,\n                         &blckText) ||\n        !blckText.FWriteRgb(&osk, size(short), 0))\n    {\n        goto LFail;\n    }\n    AssertDo(blckText.FMoveMin(size(short)), 0);\n    if (!_pbsf->FWriteRgb(&blckText))\n        goto LFail;\n\n    cb = _pglmpe->CbOnFile();\n    if (!pcfl->FAddChild(pcki->ctg, pcki->cno, 0, cb, kctgTxtProps, &cno, &blck) || !_pglmpe->FWrite(&blck))\n    {\n        goto LFail;\n    }\n\n    if (pvNil != _pagcact && 0 < _pagcact->IvMac())\n    {\n        cb = _pagcact->CbOnFile();\n        if (!pcfl->FAddChild(pcki->ctg, pcki->cno, 0, cb, kctgTxtPropArgs, &cno, &blck) || !_pagcact->FWrite(&blck))\n        {\n            goto LFail;\n        }\n    }\n\n    if (fRedirectText)\n    {\n        FLO flo;\n        AssertDo(blckText.FGetFlo(&flo), 0);\n        _pbsf->FReplaceFlo(&flo, fFalse, 0, _pbsf->IbMac() - size(achar));\n        ReleasePpo(&flo.pfil);\n    }\n    return fTrue;\n\nLFail:\n    pcfl->Delete(pcki->ctg, pcki->cno);\n    PushErc(ercRtxdSaveFailed);\n    return fFalse;\n}\n\n/***************************************************************************\n    Create a new TXRG to display the TXRD.\n***************************************************************************/\nPDDG TXRD::PddgNew(PGCB pgcb)\n{\n    AssertThis(fobjAssertFull);\n    return TXRG::PtxrgNew(this, pgcb);\n}\n\n/***************************************************************************\n    Look for an MPE for the given spcp. Return false iff there isn't one.\n    In either event, fill pimpe with where one would go if it did exist.\n***************************************************************************/\nbool TXRD::_FFindMpe(ulong spcp, MPE *pmpe, long *pcpLim, long *pimpe)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pmpe);\n    AssertNilOrVarMem(pcpLim);\n    AssertNilOrVarMem(pimpe);\n    long impe, impeMin, impeLim;\n    bool fRet;\n    MPE mpe;\n    byte sprm = _SprmFromSpcp(spcp);\n\n    for (impeMin = 0, impeLim = _pglmpe->IvMac(); impeMin < impeLim;)\n    {\n        impe = (impeMin + impeLim) / 2;\n        _pglmpe->Get(impe, &mpe);\n        if (mpe.spcp < spcp)\n            impeMin = impe + 1;\n        else if (mpe.spcp > spcp)\n            impeLim = impe;\n        else\n        {\n            impeMin = impe + 1;\n            goto LSuccess;\n        }\n    }\n\n    // assume there isn't one\n    if (pvNil != pimpe)\n        *pimpe = impeMin;\n    TrashVar(pmpe);\n    fRet = fFalse;\n\n    if (impeMin > 0)\n    {\n        _pglmpe->Get(impeMin - 1, &mpe);\n        if (_SprmFromSpcp(mpe.spcp) == sprm)\n        {\n        LSuccess:\n            if (pvNil != pimpe)\n                *pimpe = impeMin - 1;\n            if (pvNil != pmpe)\n                *pmpe = mpe;\n            fRet = fTrue;\n        }\n        else\n            Assert(_SprmFromSpcp(mpe.spcp) < sprm, 0);\n    }\n\n    if (pvNil != pcpLim)\n    {\n        *pcpLim = CpMac();\n        if (impeMin < _pglmpe->IvMac())\n        {\n            _pglmpe->Get(impeMin, &mpe);\n            if (_SprmFromSpcp(mpe.spcp) == sprm)\n                *pcpLim = _CpFromSpcp(mpe.spcp);\n        }\n    }\n    return fRet;\n}\n\n/***************************************************************************\n    Fetch the impe'th property, returning all the relevant info about it.\n***************************************************************************/\nbool TXRD::_FFetchProp(long impe, byte *psprm, long *plw, long *pcpMin, long *pcpLim)\n{\n    MPE mpe;\n\n    if (!FIn(impe, 0, _pglmpe->IvMac()))\n        return fFalse;\n\n    _pglmpe->Get(impe, &mpe);\n    if (pvNil != psprm)\n        *psprm = _SprmFromSpcp(mpe.spcp);\n    if (pvNil != plw)\n        *plw = mpe.lw;\n    if (pvNil != pcpMin)\n        *pcpMin = _CpFromSpcp(mpe.spcp);\n    if (pvNil != pcpLim)\n    {\n        *pcpLim = CpMac();\n        if (impe + 1 < _pglmpe->IvMac())\n        {\n            MPE mpeNext;\n\n            _pglmpe->Get(impe + 1, &mpeNext);\n            if (_SprmFromSpcp(mpeNext.spcp) == _SprmFromSpcp(mpe.spcp))\n                *pcpLim = _CpFromSpcp(mpeNext.spcp);\n        }\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Adjust the MPE's after an edit. This may involve deleting some MPE's\n    and/or updating the cp's.\n***************************************************************************/\nvoid TXRD::_AdjustMpe(long cp, long ccpIns, long ccpDel)\n{\n    AssertBaseThis(0);\n    AssertIn(cp, 0, CpMac());\n    AssertIn(ccpIns, 0, CpMac() - cp);\n    AssertIn(ccpDel, 0, kcbMax);\n    MPE *qmpe;\n    long impe, impeMin, cpT;\n    byte sprm;\n    bool fBefore, fKeep;\n\n    _cpMinChp = _cpLimChp = _cpMinPap = _cpLimPap = 0;\n    for (impe = 0; impe < _pglmpe->IvMac();)\n    {\n        qmpe = (MPE *)_pglmpe->QvGet(impe);\n        cpT = _CpFromSpcp(qmpe->spcp);\n        AssertIn(cpT, 0, kcpMaxTxrd);\n        if (cpT < cp)\n        {\n            impe++;\n            continue;\n        }\n        sprm = _SprmFromSpcp(qmpe->spcp);\n        if (cpT >= cp + ccpDel + (sprm < sprmMinObj))\n        {\n            AssertIn(cpT + ccpIns - ccpDel, 0, kcpMaxTxrd);\n            qmpe->spcp = _SpcpFromSprmCp(sprm, cpT + ccpIns - ccpDel);\n            impe++;\n            continue;\n        }\n        AssertIn(cpT, cp, cp + ccpDel + (sprm < sprmMinObj));\n\n        // special case object sprms\n        if (sprm >= sprmMinObj)\n        {\n            // delete it\n            AssertIn(cpT, cp, cp + ccpDel);\n            _ReleaseSprmLw(sprm, qmpe->lw);\n            _pglmpe->Delete(impe);\n            continue;\n        }\n\n        // fBefore indicates if the last MPE for this sprm should go at cp\n        // or at the beginning of the paragraph at or after cp + ccpIns.\n        // This is only used for paragraph sprms.\n        fBefore = (cpT == cp);\n\n        impeMin = impe;\n        while (cpT <= cp + ccpDel)\n        {\n            if (++impe >= _pglmpe->IvMac())\n                break;\n            qmpe = (MPE *)_pglmpe->QvGet(impe);\n            if (_SprmFromSpcp(qmpe->spcp) != sprm)\n                break;\n            cpT = _CpFromSpcp(qmpe->spcp);\n            AssertIn(cpT, 0, kcpMaxTxrd);\n        }\n\n        // the entries from impeMin to impe are all in or\n        // at the end of the deleted zone\n        Assert(impe > impeMin, \"no MPE's!\");\n\n        // fKeep indicates whether we kept the last MPE\n        fKeep = fTrue;\n        if (sprm < sprmMinPap)\n        {\n            // a character sprm - put the last one at cp + ccpIns\n            AssertIn(cp + ccpIns, 0, CpMac());\n            qmpe = (MPE *)_pglmpe->QvGet(--impe);\n            qmpe->spcp = _SpcpFromSprmCp(sprm, cp + ccpIns);\n        }\n        else if (fBefore)\n        {\n            // a paragraph sprm - the last one goes at cp\n            AssertIn(cp, 0, kcpMaxTxrd);\n            qmpe = (MPE *)_pglmpe->QvGet(--impe);\n            qmpe->spcp = _SpcpFromSprmCp(sprm, cp);\n        }\n        else\n        {\n            // a paragraph sprm - the last MPE goes at the beginning of the\n            // next paragraph (if there is one and it doesn't already have an MPE).\n            cpT = CpLimPara(cp + ccpIns - 1);\n            if (cpT < CpMac() &&\n                (impe >= _pglmpe->IvMac() || _SprmFromSpcp((qmpe = (MPE *)_pglmpe->QvGet(impe))->spcp) != sprm ||\n                 _CpFromSpcp(qmpe->spcp) + ccpIns - ccpDel > cpT))\n            {\n                // put the last one at cpT - if there isn't already one\n                AssertIn(cpT, 0, kcpMaxTxrd);\n                qmpe = (MPE *)_pglmpe->QvGet(--impe);\n                qmpe->spcp = _SpcpFromSprmCp(sprm, cpT);\n            }\n            else\n                fKeep = fFalse;\n        }\n\n        // delete all the previous ones\n        while (impeMin < impe)\n        {\n            qmpe = (MPE *)_pglmpe->QvGet(--impe);\n            _ReleaseSprmLw(sprm, qmpe->lw);\n            _pglmpe->Delete(impe);\n        }\n\n        // skip the one we kept at the end\n        if (fKeep)\n            impe++;\n    }\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Make sure there is an entry in the AG with the given data. If it's\n    already there, increment its reference count. Otherwise, set its\n    reference count to 1.\n***************************************************************************/\nbool TXRD::_FEnsureInAg(byte sprm, void *pv, long cb, long *pjv)\n{\n    AssertIn(cb, 1, kcbMax);\n    AssertPvCb(pv, cb);\n    AssertVarMem(pjv);\n    long cact, iv, cbT;\n    void *qv;\n\n    if (pvNil == _pagcact && pvNil == (_pagcact = AG::PagNew(size(long), 1, cb)))\n    {\n        TrashVar(pjv);\n        return fFalse;\n    }\n\n    // see if it's already there\n    for (iv = _pagcact->IvMac(); iv-- > 0;)\n    {\n        if (_pagcact->FFree(iv))\n            continue;\n        qv = _pagcact->QvGet(iv, &cbT);\n        if (cb != cbT)\n            continue;\n        if (FEqualRgb(qv, pv, cb))\n        {\n            _pagcact->GetFixed(iv, &cact);\n            if (B3Lw(cact) == sprm)\n            {\n                *pjv = iv + 1;\n                AssertIn(cact & 0x00FFFFFFL, 1, 0x00FFFFFFL);\n                cact++;\n                Assert(B3Lw(cact) == sprm, \"cact overflowed\");\n                _pagcact->PutFixed(iv, &cact);\n                return fTrue;\n            }\n        }\n    }\n\n    // need to add it\n    cact = (((ulong)sprm) << 24) | 1;\n    if (!_pagcact->FAdd(cb, pjv, pv, &cact))\n    {\n        TrashVar(pjv);\n        return fFalse;\n    }\n    (*pjv)++;\n    return fTrue;\n}\n\n/***************************************************************************\n    Decrement the reference count on the given element of the AG and if\n    the reference count becomes zero, delete the element.\n***************************************************************************/\nvoid TXRD::_ReleaseInAg(long jv)\n{\n    long cact, cactT;\n\n    if (pvNil == _pagcact || !FIn(jv, 1, _pagcact->IvMac() + 1) || _pagcact->FFree(jv - 1))\n    {\n        Bug(\"bad index into AG\");\n        return;\n    }\n\n    _pagcact->GetFixed(jv - 1, &cact);\n    cactT = cact & 0x00FFFFFFL;\n    if (--cactT <= 0)\n        _pagcact->Delete(jv - 1);\n    else\n    {\n        cact--;\n        _pagcact->PutFixed(jv - 1, &cact);\n    }\n}\n\n/***************************************************************************\n    Increment the reference count on the given element of the AG.\n***************************************************************************/\nvoid TXRD::_AddRefInAg(long jv)\n{\n    long cact;\n\n    if (pvNil == _pagcact || !FIn(jv, 1, _pagcact->IvMac() + 1) || _pagcact->FFree(jv - 1))\n    {\n        Bug(\"bad index into AG\");\n        return;\n    }\n\n    _pagcact->GetFixed(jv - 1, &cact);\n    AssertIn(cact & 0x00FFFFFFL, 1, 0x00FFFFFFL);\n    ++cact;\n    _pagcact->PutFixed(jv - 1, &cact);\n}\n\n/***************************************************************************\n    Static method: return true iff the given sprm has its argument in\n    the _pagcact.\n***************************************************************************/\nbool TXRD::_FSprmInAg(byte sprm)\n{\n    if (sprm < sprmMinChpClient || FIn(sprm, sprmMinPap, sprmMinPapClient))\n    {\n        // a base TXRD sprm\n        return sprm == sprmFont;\n    }\n\n    // The sprm is a client or object sprm. Even ones are in the AG, odd\n    // ones aren't. See note in rtxt.h where the sprms are defined.\n    return !(sprm & 1);\n}\n\n/***************************************************************************\n    If the sprm allocates stuff in the ag, release it. The inverse operation\n    of _AddRefSprmLw.\n***************************************************************************/\nvoid TXRD::_ReleaseSprmLw(byte sprm, long lw)\n{\n    if (lw > 0 && _FSprmInAg(sprm))\n        _ReleaseInAg(lw);\n}\n\n/***************************************************************************\n    If the sprm allocates stuff in the ag, addref it. The inverse operation\n    of _ReleaseSprmLw.\n***************************************************************************/\nvoid TXRD::_AddRefSprmLw(byte sprm, long lw)\n{\n    if (lw > 0 && _FSprmInAg(sprm))\n        _AddRefInAg(lw);\n}\n\n/***************************************************************************\n    Get an array of SPVM's that describe the differences between pchp and\n    pchpDiff. If pchpDiff is nil, pchp is just described. If this\n    succeeds, either _ApplyRgspvm or _ReleaseRgspvm should be called.\n***************************************************************************/\nbool TXRD::_FGetRgspvmFromChp(PCHP pchp, PCHP pchpDiff, SPVM *prgspvm, long *pcspvm)\n{\n    AssertVarMem(pchp);\n    AssertNilOrVarMem(pchpDiff);\n    AssertPvCb(prgspvm, LwMul(size(SPVM), sprmLimChp - sprmMinChp));\n    AssertVarMem(pcspvm);\n    byte sprm;\n    long ispvm;\n    SPVM spvm;\n\n    // first get the values and masks for the sprm's we have to deal with\n    ispvm = 0;\n    for (sprm = sprmMinChp; sprm < sprmLimChp; sprm++)\n    {\n        switch (_TGetLwFromChp(sprm, pchp, pchpDiff, &spvm.lw, &spvm.lwMask))\n        {\n        case tYes:\n            spvm.sprm = sprm;\n            prgspvm[ispvm++] = spvm;\n            break;\n        case tMaybe:\n            _ReleaseRgspvm(prgspvm, ispvm);\n            TrashVar(pcspvm);\n            return fFalse;\n        }\n    }\n\n    *pcspvm = ispvm;\n    return fTrue;\n}\n\n/***************************************************************************\n    Get an array of SPVM's that describe the differences between ppap and\n    ppapDiff. If ppapDiff is nil, ppap is just described. If this\n    succeeds, either _ApplyRgspvm or _ReleaseRgspvm should be called.\n***************************************************************************/\nbool TXRD::_FGetRgspvmFromPap(PPAP ppap, PPAP ppapDiff, SPVM *prgspvm, long *pcspvm)\n{\n    AssertVarMem(ppap);\n    AssertNilOrVarMem(ppapDiff);\n    AssertPvCb(prgspvm, LwMul(size(SPVM), sprmLimPap - sprmMinPap));\n    AssertVarMem(pcspvm);\n    byte sprm;\n    long ispvm;\n    SPVM spvm;\n\n    // first get the values and masks for the sprm's we have to deal with\n    ispvm = 0;\n    for (sprm = sprmMinPap; sprm < sprmLimPap; sprm++)\n    {\n        switch (_TGetLwFromPap(sprm, ppap, ppapDiff, &spvm.lw, &spvm.lwMask))\n        {\n        case tYes:\n            spvm.sprm = sprm;\n            prgspvm[ispvm++] = spvm;\n            break;\n        case tMaybe:\n            _ReleaseRgspvm(prgspvm, ispvm);\n            TrashVar(pcspvm);\n            return fFalse;\n        }\n    }\n\n    *pcspvm = ispvm;\n    return fTrue;\n}\n\n/***************************************************************************\n    Release the SPVM's.\n***************************************************************************/\nvoid TXRD::_ReleaseRgspvm(SPVM *prgspvm, long cspvm)\n{\n    AssertIn(cspvm, 0, kcbMax);\n    AssertPvCb(prgspvm, LwMul(size(SPVM), cspvm));\n    long ispvm;\n\n    for (ispvm = 0; ispvm < cspvm; ispvm++)\n        _ReleaseSprmLw(prgspvm[ispvm].sprm, prgspvm[ispvm].lw);\n}\n\n/***************************************************************************\n    Apply the SPVM's to the given range of characters. Assumes that the\n    inserts can't fail. If you call this, don't also call _ReleaseRgspvm.\n    The caller should have ensured that _pglmpe has room for 2 * cspvm\n    additional entries.\n***************************************************************************/\nvoid TXRD::_ApplyRgspvm(long cp, long ccp, SPVM *prgspvm, long cspvm)\n{\n    AssertIn(cp, 0, CpMac());\n    AssertIn(ccp, 1, CpMac() + 1 - cp);\n    MPE mpe, mpeT;\n    long lwRevert, lwLast;\n    long cpLimT, cpLim;\n    long ispvm, impe;\n    SPVM spvm;\n\n    _cpMinChp = _cpLimChp = _cpMinPap = _cpLimPap = 0;\n    cpLim = LwMin(cp + ccp, CpMac());\n    for (ispvm = cspvm; ispvm-- > 0;)\n    {\n        spvm = prgspvm[ispvm];\n        mpe.spcp = _SpcpFromSprmCp(spvm.sprm, cp);\n        mpe.lw = spvm.lw;\n\n        if (!_FFindMpe(mpe.spcp, &mpeT, pvNil, &impe))\n        {\n            // there are no MPE's for this sprm at or before this cp\n            lwRevert = 0;\n            if (mpe.lw != 0)\n            {\n                // add the mpe\n                _AddRefSprmLw(spvm.sprm, mpe.lw);\n                AssertDo(_pglmpe->FInsert(impe++, &mpe), 0);\n            }\n            lwLast = mpe.lw;\n        }\n        else\n        {\n            // see if the MPE we're in the range of starts before this cp\n            // or at it\n            lwRevert = mpeT.lw;\n            if (_CpFromSpcp(mpeT.spcp) < cp)\n            {\n                // before\n                impe++;\n                if (mpe.lw != mpeT.lw)\n                {\n                    // add an mpe\n                    mpeT.lw = mpe.lw | (mpeT.lw & ~spvm.lwMask);\n                    mpeT.spcp = mpe.spcp;\n                    _AddRefSprmLw(spvm.sprm, mpeT.lw);\n                    AssertDo(_pglmpe->FInsert(impe++, &mpeT), 0);\n                }\n                lwLast = mpeT.lw;\n            }\n            else\n            {\n                // at it - get the valid lwLast value\n                Assert(_CpFromSpcp(mpeT.spcp) == cp, 0);\n                lwLast = 0;\n                if (impe > 0)\n                {\n                    _pglmpe->Get(impe - 1, &mpeT);\n                    if (_SprmFromSpcp(mpeT.spcp) == spvm.sprm)\n                        lwLast = mpeT.lw;\n                }\n            }\n        }\n        _AddRefSprmLw(spvm.sprm, lwRevert);\n\n        // adjust all mpe's before cpLim\n        for (;;)\n        {\n            if (impe >= _pglmpe->IvMac())\n                goto LEndOfSprm;\n            _pglmpe->Get(impe, &mpeT);\n            if (_SprmFromSpcp(mpeT.spcp) != spvm.sprm)\n            {\n            LEndOfSprm:\n                cpLimT = CpMac();\n                break;\n            }\n            if ((cpLimT = _CpFromSpcp(mpeT.spcp)) >= cpLim)\n            {\n                // see if this MPE can be deleted\n                if (cpLimT == cpLim && lwLast == mpeT.lw)\n                {\n                    _ReleaseSprmLw(spvm.sprm, mpeT.lw);\n                    _pglmpe->Delete(impe);\n                }\n                break;\n            }\n\n            // modify the mpeT\n            _ReleaseSprmLw(spvm.sprm, lwRevert);\n            lwRevert = mpeT.lw;\n            mpeT.lw = mpe.lw | (mpeT.lw & ~spvm.lwMask);\n            // note: the ref count for this MPE was transferred to lwRevert,\n            // so a _ReleaseSprmLw call is not needed after the Delete and Put\n            // below\n            if (lwLast == mpeT.lw)\n                _pglmpe->Delete(impe);\n            else\n            {\n                _AddRefSprmLw(spvm.sprm, mpeT.lw);\n                _pglmpe->Put(impe++, &mpeT);\n                lwLast = mpeT.lw;\n            }\n        }\n\n        Assert(cpLimT >= cpLim, 0);\n        if (cpLimT > cpLim && lwRevert != lwLast)\n        {\n            // add another mpe at cpLim with lwRevert\n            mpeT.spcp = _SpcpFromSprmCp(spvm.sprm, cpLim);\n            mpeT.lw = lwRevert;\n            AssertDo(_pglmpe->FInsert(impe, &mpeT), 0);\n        }\n        else\n            _ReleaseSprmLw(spvm.sprm, lwRevert);\n        _ReleaseSprmLw(spvm.sprm, spvm.lw);\n    }\n}\n\n/***************************************************************************\n    Get the long associated with the sprm and the difference between the\n    two CHPs. pchpOld may be nil. *plwMask indicates which portion of\n    the lw is significant. Returns tYes or tNo depending on whether the\n    values of pchpOld and pchpNew differ for the given sprm. Returns\n    tMaybe on error.\n***************************************************************************/\ntribool TXRD::_TGetLwFromChp(byte sprm, PCHP pchpNew, PCHP pchpOld, long *plw, long *plwMask)\n{\n    AssertIn(sprm, sprmMinChp, sprmLimChp);\n    AssertVarMem(pchpNew);\n    AssertNilOrVarMem(pchpOld);\n    AssertVarMem(plw);\n    AssertVarMem(plwMask);\n\n    *plwMask = -1;\n    switch (sprm)\n    {\n    default:\n        *plwMask = 0;\n        break;\n\n    case sprmStyle:\n        *plw = LwHighLow((short)(pchpNew->dypFont - _dypFontDef),\n                         SwHighLow((byte)pchpNew->dypOffset, (byte)pchpNew->grfont));\n        if (pvNil != pchpOld)\n        {\n            *plwMask = LwHighLow(\n                -(pchpOld->dypFont != pchpNew->dypFont),\n                SwHighLow(-(pchpNew->dypOffset != pchpOld->dypOffset), (byte)(pchpOld->grfont ^ pchpNew->grfont)));\n        }\n        break;\n\n    case sprmFont:\n        if (pvNil != pchpOld && pchpOld->onn == pchpNew->onn)\n            *plwMask = 0;\n        else if (pchpNew->onn == _onnDef)\n            *plw = 0;\n        else\n        {\n            // data for sprmFont is: long onn, short osk, stn data\n            STN stn;\n            long cb;\n            short osk = koskCur;\n            byte rgb[kcbMaxDataStn + size(long) + size(short)];\n\n            CopyPb(&pchpNew->onn, rgb, size(long));\n            CopyPb(&osk, rgb + size(long), size(short));\n            vntl.GetStn(pchpNew->onn, &stn);\n            cb = size(long) + size(short);\n            stn.GetData(rgb + cb);\n            cb += stn.CbData();\n            if (!_FEnsureInAg(sprm, rgb, cb, plw))\n            {\n                *plwMask = 0;\n                TrashVar(plw);\n                return tMaybe;\n            }\n        }\n        break;\n\n    case sprmForeColor:\n        if (pvNil != pchpOld && pchpOld->acrFore == pchpNew->acrFore)\n            *plwMask = 0;\n        else\n            *plw = pchpNew->acrFore.LwGet() - kacrBlack.LwGet();\n        break;\n\n    case sprmBackColor:\n        if (pvNil != pchpOld && pchpOld->acrBack == pchpNew->acrBack)\n            *plwMask = 0;\n        else\n            *plw = pchpNew->acrBack.LwGet() - kacrClear.LwGet();\n        break;\n    }\n\n    if (0 != *plwMask)\n    {\n        *plw &= *plwMask;\n        return tYes;\n    }\n    TrashVar(plw);\n    return tNo;\n}\n\n/***************************************************************************\n    Get the character properties for the given character.\n***************************************************************************/\nvoid TXRD::FetchChp(long cp, PCHP pchp, long *pcpMin, long *pcpLim)\n{\n    AssertThis(0);\n    AssertIn(cp, 0, CpMac());\n    AssertVarMem(pchp);\n    AssertNilOrVarMem(pcpMin);\n    AssertNilOrVarMem(pcpLim);\n    MPE mpe;\n    byte sprm;\n    ulong spcp;\n    long cpLimT;\n    long cb;\n    bool fRet;\n\n    if (FIn(cp, _cpMinChp, _cpLimChp))\n        goto LDone;\n\n    _chp.Clear();\n    _chp.onn = _onnDef;\n    _chp.dypFont = _dypFontDef;\n    _chp.acrFore = kacrBlack;\n    _chp.acrBack = kacrClear;\n\n    _cpLimChp = CpMac();\n    _cpMinChp = 0;\n    for (sprm = sprmMinChp; sprm < sprmLimChp; sprm++)\n    {\n        spcp = _SpcpFromSprmCp(sprm, cp);\n        fRet = _FFindMpe(spcp, &mpe, &cpLimT);\n        _cpLimChp = LwMin(_cpLimChp, cpLimT);\n        if (!fRet)\n            continue;\n        _cpMinChp = LwMax(_cpMinChp, _CpFromSpcp(mpe.spcp));\n\n        switch (sprm)\n        {\n        case sprmStyle:\n            _chp.grfont = B0Lw(mpe.lw);\n            _chp.dypOffset = (long)(achar)B1Lw(mpe.lw);\n            _chp.dypFont += SwHigh(mpe.lw);\n            break;\n\n        case sprmFont:\n            if (mpe.lw > 0)\n            {\n                byte *qrgb;\n\n                qrgb = (byte *)_pagcact->QvGet(mpe.lw - 1, &cb);\n                cb -= size(long) + size(short); // onn, osk\n                if (!FIn(cb, 0, kcbMaxDataStn + 1))\n                {\n                    Warn(\"bad group element\");\n                    break;\n                }\n                CopyPb(qrgb, &_chp.onn, size(long));\n                Assert(vntl.FValidOnn(_chp.onn), \"invalid onn\");\n            }\n            break;\n\n        case sprmForeColor:\n            if (mpe.lw != 0)\n                _chp.acrFore.SetFromLw(kacrBlack.LwGet() + mpe.lw);\n            break;\n\n        case sprmBackColor:\n            if (mpe.lw != 0)\n                _chp.acrBack.SetFromLw(kacrClear.LwGet() + mpe.lw);\n            break;\n        }\n    }\n\nLDone:\n    *pchp = _chp;\n    if (pvNil != pcpMin)\n        *pcpMin = _cpMinChp;\n    if (pvNil != pcpLim)\n        *pcpLim = _cpLimChp;\n}\n\n/***************************************************************************\n    Apply the given character properties to the given range of characters.\n***************************************************************************/\nbool TXRD::FApplyChp(long cp, long ccp, PCHP pchp, PCHP pchpDiff, ulong grfdoc)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(cp, 0, CpMac() - 1);\n    AssertIn(ccp, 1, CpMac() - cp);\n    long cspvm;\n    SPVM rgspvm[sprmLimChp - sprmMinChp];\n    PRTUN prtun = pvNil;\n\n    BumpCombineUndo();\n    if (!FSetUndo(cp, cp + ccp, ccp))\n        return fFalse;\n\n    if (!_FGetRgspvmFromChp(pchp, pchpDiff, rgspvm, &cspvm))\n    {\n        CancelUndo();\n        return fFalse;\n    }\n\n    // now make sure that _pglmpe has enough room - we need at most 2\n    // entries per sprm.\n    if (!_pglmpe->FEnsureSpace(2 * cspvm))\n    {\n        _ReleaseRgspvm(rgspvm, cspvm);\n        CancelUndo();\n        AssertThis(fobjAssertFull);\n        return fFalse;\n    }\n\n    _ApplyRgspvm(cp, ccp, rgspvm, cspvm);\n    CommitUndo();\n    BumpCombineUndo();\n\n    AssertThis(fobjAssertFull);\n    InvalAllDdg(cp, ccp, ccp, grfdoc);\n    return fTrue;\n}\n\n/***************************************************************************\n    Find the bounds of the whole paragraphs overlapping the range\n    [*pcpMin, *pcpMin + *pccp). If fExpand is false, the bounds are of\n    whole paragraphs totally contained in the range, with the possible\n    exception of the trailing end of paragraph marker. If fExpand is\n    true, *pcpMin will only decrease and *pcpLim will only increase;\n    while if fExpand is false, *pcpMin will only increase and\n    *pcpLim may decrease or at most increase past an end of\n    paragraph marker and its associated line feed characters.\n***************************************************************************/\nvoid TXRD::_GetParaBounds(long *pcpMin, long *pcpLim, bool fExpand)\n{\n    AssertVarMem(pcpMin);\n    AssertVarMem(pcpLim);\n    AssertIn(*pcpMin, 0, CpMac());\n    AssertIn(*pcpLim, *pcpMin, CpMac() + 1);\n\n    if (fExpand)\n    {\n        *pcpLim = CpLimPara(*pcpLim - (*pcpLim > 0 && *pcpLim > *pcpMin));\n        *pcpMin = CpMinPara(*pcpMin);\n    }\n    else\n    {\n        if (!FMinPara(*pcpMin))\n            *pcpMin = CpLimPara(*pcpMin);\n        if (!FMinPara(*pcpLim))\n        {\n            *pcpLim = CpNext(*pcpLim);\n            if (*pcpLim < CpMac())\n                *pcpLim = CpMinPara(*pcpLim);\n        }\n    }\n}\n\n/***************************************************************************\n    Get the long associated with the sprm and the difference between the\n    two PAPs. ppapOld may be nil. *plwMask indicates which portion of\n    the lw is significant. Returns tYes or tNo depending on whether the\n    values of pchpOld and pchpNew differ for the given sprm. Returns\n    tMaybe on error.\n***************************************************************************/\ntribool TXRD::_TGetLwFromPap(byte sprm, PPAP ppapNew, PPAP ppapOld, long *plw, long *plwMask)\n{\n    AssertIn(sprm, sprmMinPap, sprmLimPap);\n    AssertVarMem(ppapNew);\n    AssertNilOrVarMem(ppapOld);\n    AssertVarMem(plw);\n\n    *plwMask = -1;\n    switch (sprm)\n    {\n    case sprmHorz:\n        if (pvNil != ppapOld)\n        {\n            if (ppapOld->jc == ppapNew->jc)\n                *plwMask &= 0x00FFFFFFL;\n            if (ppapOld->nd == ppapNew->nd)\n                *plwMask &= 0xFF00FFFFL;\n            if (ppapOld->dxpTab == ppapNew->dxpTab)\n                *plwMask &= 0xFFFF0000L;\n        }\n        *plw = LwHighLow(SwHighLow(ppapNew->jc, ppapNew->nd), ppapNew->dxpTab - kdxpTabDef);\n        break;\n    case sprmVert:\n        if (pvNil != ppapOld)\n        {\n            if (ppapOld->numLine == ppapNew->numLine)\n                *plwMask &= 0x0000FFFFL;\n            if (ppapOld->dypExtraLine == ppapNew->dypExtraLine)\n                *plwMask &= 0xFFFF0000L;\n        }\n        *plw = LwHighLow(ppapNew->numLine - kdenLine, ppapNew->dypExtraLine);\n        break;\n    case sprmAfter:\n        if (pvNil != ppapOld)\n        {\n            if (ppapOld->numAfter == ppapNew->numAfter)\n                *plwMask &= 0x0000FFFFL;\n            if (ppapOld->dypExtraAfter == ppapNew->dypExtraAfter)\n                *plwMask &= 0xFFFF0000L;\n        }\n        *plw = LwHighLow(ppapNew->numAfter - kdenAfter, ppapNew->dypExtraAfter);\n        break;\n    }\n\n    if (0 != *plwMask)\n    {\n        *plw &= *plwMask;\n        return tYes;\n    }\n    TrashVar(plw);\n    return tNo;\n}\n\n/***************************************************************************\n    Get the paragraph properties for the paragraph containing the given\n    character.\n***************************************************************************/\nvoid TXRD::FetchPap(long cp, PPAP ppap, long *pcpMin, long *pcpLim)\n{\n    AssertThis(0);\n    AssertIn(cp, 0, CpMac());\n    AssertVarMem(ppap);\n    AssertNilOrVarMem(pcpMin);\n    AssertNilOrVarMem(pcpLim);\n    MPE mpe;\n    byte sprm;\n    ulong spcp;\n    long cpLimT;\n    bool fRet;\n\n    if (FIn(cp, _cpMinPap, _cpLimPap))\n        goto LDone;\n\n    ClearPb(&_pap, size(PAP));\n    _pap.dxpTab = kdxpTabDef;\n    _pap.numLine = kdenLine;\n    _pap.numAfter = kdenAfter;\n\n    _cpLimPap = CpMac();\n    _cpMinPap = 0;\n    for (sprm = sprmMinPap; sprm < sprmLimPap; sprm++)\n    {\n        spcp = _SpcpFromSprmCp(sprm, cp);\n        fRet = _FFindMpe(spcp, &mpe, &cpLimT);\n        _cpLimPap = LwMin(_cpLimPap, cpLimT);\n        if (!fRet)\n            continue;\n        _cpMinPap = LwMax(_cpMinPap, _CpFromSpcp(mpe.spcp));\n\n        switch (sprm)\n        {\n        case sprmHorz:\n            _pap.jc = B3Lw(mpe.lw);\n            _pap.nd = B2Lw(mpe.lw);\n            _pap.dxpTab += SwLow(mpe.lw);\n            break;\n        case sprmVert:\n            _pap.numLine += SwHigh(mpe.lw);\n            _pap.dypExtraLine = SwLow(mpe.lw);\n            break;\n        case sprmAfter:\n            _pap.numAfter += SwHigh(mpe.lw);\n            _pap.dypExtraAfter = SwLow(mpe.lw);\n            break;\n        }\n    }\n\nLDone:\n    *ppap = _pap;\n    if (pvNil != pcpMin)\n        *pcpMin = _cpMinPap;\n    if (pvNil != pcpLim)\n        *pcpLim = _cpLimPap;\n}\n\n/***************************************************************************\n    Apply the given paragraph properties to the given range of characters.\n    If fExpand is true, the properties of the current paragraph containing\n    cp are set regardless of whether cp is at the beginning of the\n    paragraph.\n***************************************************************************/\nbool TXRD::FApplyPap(long cp, long ccp, PPAP ppap, PPAP ppapDiff, long *pcpMin, long *pcpLim, bool fExpand,\n                     ulong grfdoc)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(cp, 0, CpMac());\n    AssertIn(ccp, 0, CpMac() + 1 - cp);\n    AssertVarMem(ppap);\n    AssertNilOrVarMem(ppapDiff);\n    AssertNilOrVarMem(pcpMin);\n    AssertNilOrVarMem(pcpLim);\n    long cpLim;\n    long cspvm;\n    SPVM rgspvm[sprmLimPap - sprmMinPap];\n\n    // see if there are any paragraphs to deal with\n    cpLim = cp + ccp;\n    _GetParaBounds(&cp, &cpLim, fExpand);\n    if (pvNil != pcpMin)\n        *pcpMin = cp;\n    if (pvNil != pcpLim)\n        *pcpLim = cpLim;\n\n    if (cpLim <= cp)\n    {\n        // no paragraphs to affect\n        return fTrue;\n    }\n\n    BumpCombineUndo();\n    if (!FSetUndo(cp, cpLim, cpLim - cp))\n        return fFalse;\n\n    if (!_FGetRgspvmFromPap(ppap, ppapDiff, rgspvm, &cspvm))\n    {\n        CancelUndo();\n        return fFalse;\n    }\n\n    // now make sure that _pglmpe has enough room - we need at most 2\n    // entries per sprm.\n    if (!_pglmpe->FEnsureSpace(2 * cspvm))\n    {\n        _ReleaseRgspvm(rgspvm, cspvm);\n        CancelUndo();\n        AssertThis(fobjAssertFull);\n        return fFalse;\n    }\n\n    _ApplyRgspvm(cp, cpLim - cp, rgspvm, cspvm);\n    CommitUndo();\n    BumpCombineUndo();\n\n    AssertThis(fobjAssertFull);\n    InvalAllDdg(cp, cpLim - cp, cpLim - cp, grfdoc);\n    return fTrue;\n}\n\n/***************************************************************************\n    Set up undo for an action. If this succeeds, you must call either\n    CancelUndo or CommitUndo.\n***************************************************************************/\nbool TXRD::FSetUndo(long cp1, long cp2, long ccpIns)\n{\n    if (_cactSuspendUndo++ > 0 || _cundbMax == 0)\n        return fTrue;\n\n    Assert(_prtun == pvNil, \"why is there an active undo record?\");\n    if (cp1 == cp2 && ccpIns == 0)\n        return fTrue;\n\n    if (pvNil == (_prtun = RTUN::PrtunNew(_cactCombineUndo, this, cp1, cp2, ccpIns)))\n    {\n        ResumeUndo();\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Cancel undo.\n***************************************************************************/\nvoid TXRD::CancelUndo(void)\n{\n    ResumeUndo();\n    if (_cactSuspendUndo == 0)\n        ReleasePpo(&_prtun);\n}\n\n/***************************************************************************\n    Commit the setup undo.\n***************************************************************************/\nvoid TXRD::CommitUndo(void)\n{\n    PRTUN prtunPrev;\n\n    ResumeUndo();\n    if (_cactSuspendUndo != 0 || _prtun == pvNil)\n        return;\n\n    AssertPo(_prtun, 0);\n    // see if this one can be combined with the last one\n    if (_ipundbLimDone > 0)\n    {\n        _pglpundb->Get(_ipundbLimDone - 1, &prtunPrev);\n        if (prtunPrev->FIs(kclsRTUN) && prtunPrev->FCombine(_prtun))\n        {\n            ClearRedo();\n            goto LDone;\n        }\n    }\n    FAddUndo(_prtun);\n\nLDone:\n    ReleasePpo(&_prtun);\n}\n\n/***************************************************************************\n    Replace cp to cp + ccpDel with ccpIns characters from prgch. If ccpIns\n    is zero, prgch can be nil.\n***************************************************************************/\nbool TXRD::FReplaceRgch(void *prgch, long ccpIns, long cp, long ccpDel, ulong grfdoc)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(ccpIns, 0, kcbMax);\n    AssertPvCb(prgch, ccpIns * size(achar));\n    AssertIn(cp, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() - cp);\n\n    if (CpMac() + ccpIns >= kcpMaxTxrd)\n    {\n        PushErc(ercRtxdTooMuchText);\n        return fFalse;\n    }\n\n    if (!FSetUndo(cp, cp + ccpDel, ccpIns))\n        return fFalse;\n\n    if (!TXRD_PAR::FReplaceRgch(prgch, ccpIns, cp, ccpDel, fdocNil))\n    {\n        CancelUndo();\n        return fFalse;\n    }\n    _AdjustMpe(cp, ccpIns, ccpDel);\n    CommitUndo();\n    AssertThis(fobjAssertFull);\n    InvalAllDdg(cp, ccpIns, ccpDel, grfdoc);\n    return fTrue;\n}\n\n/***************************************************************************\n    Replace cp to cp + ccpDel with ccpIns characters from prgch, using\n    the given chp and pap. If ccpIns is zero, prgch can be nil. pchp\n    and/or ppap can be nil.\n***************************************************************************/\nbool TXRD::FReplaceRgch(void *prgch, long ccpIns, long cp, long ccpDel, PCHP pchp, PPAP ppap, ulong grfdoc)\n{\n    AssertThis(0);\n    AssertIn(ccpIns, 0, kcbMax);\n    AssertPvCb(prgch, ccpIns * size(achar));\n    AssertIn(cp, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() - cp);\n    AssertNilOrVarMem(pchp);\n    AssertNilOrVarMem(ppap);\n\n    return _FReplaceCore(prgch, pvNil, fFalse, pvNil, 0, ccpIns, cp, ccpDel, pchp, ppap, grfdoc);\n}\n\n/***************************************************************************\n    Replace cp to cp + ccpDel with ccpIns characters from prgch, pflo or pbsf,\n    using the given chp and pap. If ccpIns is zero, prgch can be nil. pchp\n    and/or ppap can be nil.\n***************************************************************************/\nbool TXRD::_FReplaceCore(void *prgch, PFLO pflo, bool fCopy, PBSF pbsf, long cpSrc, long ccpIns, long cp, long ccpDel,\n                         PCHP pchp, PPAP ppap, ulong grfdoc)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(ccpIns, 0, kcbMax);\n    AssertNilOrPvCb(prgch, ccpIns * size(achar));\n    AssertNilOrPo(pflo, 0);\n    AssertNilOrPo(pbsf, 0);\n    AssertIn(cp, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() - cp);\n    AssertNilOrVarMem(pchp);\n    AssertNilOrVarMem(ppap);\n    SPVM rgspvm[sprmLimChp - sprmMinChp + sprmLimPap - sprmMinPap];\n    long cspvmChp, cspvmPap;\n    long cpMinUndo, cpLimUndo;\n\n    if (CpMac() + ccpIns >= kcpMaxTxrd)\n    {\n        PushErc(ercRtxdTooMuchText);\n        return fFalse;\n    }\n\n    cpMinUndo = cp;\n    cpLimUndo = cp + ccpDel;\n\n    cspvmChp = cspvmPap = 0;\n    if (pvNil != pchp && ccpIns > 0 && !_FGetRgspvmFromChp(pchp, pvNil, rgspvm, &cspvmChp))\n    {\n        return fFalse;\n    }\n\n    if (pvNil != ppap && ccpIns > 0)\n    {\n        _GetParaBounds(&cpMinUndo, &cpLimUndo, fFalse);\n        if (cpMinUndo < cpLimUndo && !_FGetRgspvmFromPap(ppap, pvNil, rgspvm + cspvmChp, &cspvmPap))\n        {\n            goto LFail;\n        }\n        cpMinUndo = LwMin(cp, cpMinUndo);\n        cpLimUndo = LwMax(cp + ccpDel, cpLimUndo);\n    }\n\n    // now make sure that _pglmpe has enough room - we need at most 2\n    // entries per sprm.\n    if (!_pglmpe->FEnsureSpace(2 * (cspvmChp + cspvmPap)))\n        goto LFail;\n\n    if (!FSetUndo(cpMinUndo, cpLimUndo, cpLimUndo - cpMinUndo - ccpDel + ccpIns))\n        goto LFail;\n\n    if (pvNil != pflo)\n    {\n        Assert(cpSrc == 0 && ccpIns * size(achar) == pflo->cb, \"bad flo\");\n        if (!FReplaceFlo(pflo, fCopy, cp, ccpDel, koskCur, fdocNil))\n            goto LCancel;\n    }\n    else if (pvNil != pbsf)\n    {\n        if (!FReplaceBsf(pbsf, cpSrc, ccpIns, cp, ccpDel, fdocNil))\n            goto LCancel;\n    }\n    else\n    {\n        Assert(cpSrc == 0, \"bad cpSrc\");\n        AssertPvCb(prgch, ccpIns * size(achar));\n        if (!FReplaceRgch(prgch, ccpIns, cp, ccpDel, fdocNil))\n        {\n        LCancel:\n            CancelUndo();\n        LFail:\n            _ReleaseRgspvm(rgspvm, cspvmChp + cspvmPap);\n            return fFalse;\n        }\n    }\n\n    if (cspvmChp > 0)\n        _ApplyRgspvm(cp, ccpIns, rgspvm, cspvmChp);\n    if (cspvmPap > 0)\n    {\n        long cpMin = cp;\n        long cpLim = cp + ccpIns;\n\n        _GetParaBounds(&cpMin, &cpLim, fFalse);\n        Assert(cpMin >= cpMinUndo, \"new para before old one\");\n        Assert(cpLim <= cpLimUndo - ccpDel + ccpIns, \"new para after old one\");\n        _ApplyRgspvm(cpMin, cpLim - cpMin, rgspvm + cspvmChp, cspvmPap);\n    }\n    CommitUndo();\n\n    AssertThis(fobjAssertFull);\n    InvalAllDdg(cpMinUndo, cpLimUndo - cpMinUndo - ccpDel + ccpIns, cpLimUndo - cpMinUndo, grfdoc);\n    return fTrue;\n}\n\n/***************************************************************************\n    Replace cp to cp + ccpDel with the characters in the given FLO.\n***************************************************************************/\nbool TXRD::FReplaceFlo(PFLO pflo, bool fCopy, long cp, long ccpDel, short osk, ulong grfdoc)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pflo, 0);\n    AssertIn(cp, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() - cp);\n    long ccpIns;\n    FLO flo = *pflo;\n\n    flo.pfil->AddRef();\n    if (!flo.FTranslate(osk))\n        goto LFail;\n\n    ccpIns = flo.cb / size(achar);\n    if (CpMac() + ccpIns >= kcpMaxTxrd)\n    {\n        PushErc(ercRtxdTooMuchText);\n        goto LFail;\n    }\n\n    if (!FSetUndo(cp, cp + ccpDel, ccpIns))\n        goto LFail;\n\n    if (!TXRD_PAR::FReplaceFlo(&flo, fCopy, cp, ccpDel, koskCur, fdocNil))\n    {\n        CancelUndo();\n    LFail:\n        ReleasePpo(&flo.pfil);\n        return fFalse;\n    }\n    ReleasePpo(&flo.pfil);\n\n    _AdjustMpe(cp, ccpIns, ccpDel);\n    CommitUndo();\n    AssertThis(fobjAssertFull);\n    InvalAllDdg(cp, ccpIns, ccpDel, grfdoc);\n    return fTrue;\n}\n\n/***************************************************************************\n    Replace cp to cp + ccpDel with the characters in the given FLO, using\n    the given chp and pap. pchp and/or ppap can be nil.\n***************************************************************************/\nbool TXRD::FReplaceFlo(PFLO pflo, bool fCopy, long cp, long ccpDel, PCHP pchp, PPAP ppap, short osk, ulong grfdoc)\n{\n    AssertThis(0);\n    AssertPo(pflo, 0);\n    AssertIn(cp, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() - cp);\n    AssertNilOrVarMem(pchp);\n    AssertNilOrVarMem(ppap);\n    bool fRet;\n    FLO flo = *pflo;\n\n    flo.pfil->AddRef();\n    fRet = flo.FTranslate(osk) && _FReplaceCore(pvNil, &flo, fCopy && pflo->pfil == flo.pfil, pvNil, 0, pflo->cb, cp,\n                                                ccpDel, pchp, ppap, grfdoc);\n    ReleasePpo(&flo.pfil);\n    return fRet;\n}\n\n/***************************************************************************\n    Replace cp to cpDst + ccpDel with ccpSrc characters from pbsfSrc starting\n    at cpSrc.\n***************************************************************************/\nbool TXRD::FReplaceBsf(PBSF pbsfSrc, long cpSrc, long ccpSrc, long cpDst, long ccpDel, ulong grfdoc)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pbsfSrc, 0);\n    AssertIn(cpSrc, 0, pbsfSrc->IbMac() / size(achar) + 1);\n    AssertIn(ccpSrc, 0, pbsfSrc->IbMac() / size(achar) + 1 - cpSrc);\n    AssertIn(cpDst, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() - cpDst);\n\n    if (CpMac() + ccpSrc >= kcpMaxTxrd)\n    {\n        PushErc(ercRtxdTooMuchText);\n        return fFalse;\n    }\n\n    if (!FSetUndo(cpDst, cpDst + ccpDel, ccpSrc))\n        return fFalse;\n\n    if (!TXRD_PAR::FReplaceBsf(pbsfSrc, cpSrc, ccpSrc, cpDst, ccpDel, fdocNil))\n    {\n        CancelUndo();\n        return fFalse;\n    }\n\n    _AdjustMpe(cpDst, ccpSrc, ccpDel);\n    CommitUndo();\n    AssertThis(fobjAssertFull);\n    InvalAllDdg(cpDst, ccpSrc, ccpDel, grfdoc);\n    return fTrue;\n}\n\n/***************************************************************************\n    Replace cp to cpDst + ccpDel with ccpSrc characters from pbsfSrc starting\n    at cpSrc, using the given chp and pap. pchp and/or ppap can be nil.\n***************************************************************************/\nbool TXRD::FReplaceBsf(PBSF pbsfSrc, long cpSrc, long ccpSrc, long cpDst, long ccpDel, PCHP pchp, PPAP ppap,\n                       ulong grfdoc)\n{\n    AssertThis(0);\n    AssertPo(pbsfSrc, 0);\n    AssertIn(cpSrc, 0, pbsfSrc->IbMac() + 1);\n    AssertIn(ccpSrc, 0, pbsfSrc->IbMac() + 1 - cpSrc);\n    AssertIn(cpDst, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() - cpDst);\n    AssertNilOrVarMem(pchp);\n    AssertNilOrVarMem(ppap);\n\n    return _FReplaceCore(pvNil, pvNil, fFalse, pbsfSrc, cpSrc, ccpSrc, cpDst, ccpDel, pchp, ppap, grfdoc);\n}\n\n/***************************************************************************\n    Replace cp to cpDst + ccpDel with ccpSrc characters from pbsfSrc starting\n    at cpSrc, using the given chp and pap. pchp and/or ppap can be nil.\n***************************************************************************/\nbool TXRD::FReplaceTxtb(PTXTB ptxtbSrc, long cpSrc, long ccpSrc, long cpDst, long ccpDel, ulong grfdoc)\n{\n    AssertThis(0);\n    AssertPo(ptxtbSrc, 0);\n    AssertIn(cpSrc, 0, ptxtbSrc->CpMac() + 1);\n    AssertIn(ccpSrc, 0, ptxtbSrc->CpMac() + 1 - cpSrc);\n    AssertIn(cpDst, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() - cpDst);\n\n    // NOTE: this cast to PTXRD is just a rude hack to get around\n    // an oddity of C++. TXRD cannot access _pbsf in a TXTB, only in a TXRD.\n    // ptxtbSrc is probably not a TXRD, but the cast still works.\n    return FReplaceBsf(((PTXRD)ptxtbSrc)->_pbsf, cpSrc, ccpSrc, cpDst, ccpDel, grfdoc);\n}\n\n/***************************************************************************\n    Replace cp to cpDst + ccpDel with ccpSrc characters from pbsfSrc starting\n    at cpSrc, using the given chp and pap. pchp and/or ppap can be nil.\n***************************************************************************/\nbool TXRD::FReplaceTxtb(PTXTB ptxtbSrc, long cpSrc, long ccpSrc, long cpDst, long ccpDel, PCHP pchp, PPAP ppap,\n                        ulong grfdoc)\n{\n    AssertThis(0);\n    AssertPo(ptxtbSrc, 0);\n    AssertIn(cpSrc, 0, ptxtbSrc->CpMac() + 1);\n    AssertIn(ccpSrc, 0, ptxtbSrc->CpMac() + 1 - cpSrc);\n    AssertIn(cpDst, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() - cpDst);\n    AssertNilOrVarMem(pchp);\n    AssertNilOrVarMem(ppap);\n\n    // NOTE: this cast to PTXRD is just a rude hack to get around\n    // an oddity of C++. TXRD cannot access _pbsf in a TXTB, only in a TXRD.\n    // ptxtbSrc is probably not a TXRD, but the cast still works.\n    return _FReplaceCore(pvNil, pvNil, fFalse, ((PTXRD)ptxtbSrc)->_pbsf, cpSrc, ccpSrc, cpDst, ccpDel, pchp, ppap,\n                         grfdoc);\n}\n\n/***************************************************************************\n    Replace stuff in this document with stuff in the given document.\n    REVIEW shonk: this doesn't preserve font size if the two docs have\n    different default font sizes!\n***************************************************************************/\nbool TXRD::FReplaceTxrd(PTXRD ptxrd, long cpSrc, long ccpSrc, long cpDst, long ccpDel, ulong grfdoc)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(ptxrd, 0);\n    AssertIn(cpSrc, 0, ptxrd->CpMac());\n    AssertIn(ccpSrc, 0, ptxrd->CpMac() + 1 - cpSrc);\n    AssertIn(cpDst, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() + 1 - cpDst);\n    Assert(ptxrd != this, \"can't copy from a rich text doc to itself!\");\n    long dcp = 0;\n\n    // REVIEW shonk: is there an easy way to make this atomic?\n\n    if (CpMac() + ccpSrc >= kcpMaxTxrd)\n    {\n        PushErc(ercRtxdTooMuchText);\n        return fFalse;\n    }\n\n    if (!FSetUndo(cpDst, cpDst + ccpDel, ccpSrc))\n        return fFalse;\n\n    // protect the trailing EOP\n    if (cpDst + ccpDel == CpMac())\n    {\n#ifdef DEBUG\n        achar ch;\n        ptxrd->FetchRgch(cpSrc + ccpSrc - 1, 1, &ch);\n        Assert(ch == kchReturn, \"trying to replace trailing EOP\");\n#endif // DEBUG\n        Assert(ccpDel > 0 && ccpSrc > 0, \"bad parameters to FReplaceTxrd\");\n        ccpDel--;\n        ccpSrc--;\n        dcp = 1;\n    }\n\n    // insert the text\n    if ((ccpSrc > 0 || ccpDel > 0) && !FReplaceBsf(ptxrd->_pbsf, cpSrc, ccpSrc, cpDst, ccpDel, fdocNil))\n    {\n        CancelUndo();\n        return fFalse;\n    }\n\n    if (ccpSrc > 0)\n        _CopyProps(ptxrd, cpSrc, cpDst, ccpSrc, ccpSrc, 0, sprmMinPap);\n\n    if (ccpSrc + dcp > 0)\n    {\n        long ccpSrcPap;\n        long cpMinPap = cpDst;\n        long cpLimPap = cpDst + ccpSrc;\n\n        _GetParaBounds(&cpMinPap, &cpLimPap, fFalse);\n        ccpSrcPap = ccpSrc - cpMinPap + cpDst;\n        if (ccpSrcPap > 0 && cpMinPap < cpLimPap)\n        {\n            _CopyProps(ptxrd, cpSrc + cpMinPap - cpDst, cpMinPap, ccpSrcPap, cpLimPap - cpMinPap, sprmMinPap,\n                       sprmMinObj);\n        }\n    }\n\n    if (ccpSrc > 0)\n    {\n        // object properties\n        long cp;\n        byte sprm;\n        long impe, impeNew;\n        MPE mpe, mpeNew;\n        void *pv;\n        bool fRet;\n\n        ptxrd->_FFindMpe(_SpcpFromSprmCp(sprmMinObj, cpSrc), pvNil, pvNil, &impe);\n        while (impe < ptxrd->_pglmpe->IvMac())\n        {\n            ptxrd->_pglmpe->Get(impe++, &mpe);\n            cp = _CpFromSpcp(mpe.spcp);\n            if (!FIn(cp, cpSrc, cpSrc + ccpSrc))\n                continue;\n            sprm = _SprmFromSpcp(mpe.spcp);\n            mpeNew.spcp = _SpcpFromSprmCp(sprm, cpDst + cp - cpSrc);\n            pv = ptxrd->_pagcact->PvLock(mpe.lw - 1);\n            fRet = _FEnsureInAg(sprm, pv, ptxrd->_pagcact->Cb(mpe.lw - 1), &mpeNew.lw);\n            ptxrd->_pagcact->Unlock();\n            if (!fRet)\n                continue;\n\n            // insert the object sprm\n            if (_FFindMpe(mpeNew.spcp, pvNil, pvNil, &impeNew))\n                impeNew++;\n            if (!_pglmpe->FInsert(impeNew, &mpeNew))\n                _ReleaseInAg(mpeNew.lw);\n        }\n    }\n\n    CommitUndo();\n    AssertThis(fobjAssertFull);\n    InvalAllDdg(cpDst, ccpSrc + dcp, ccpDel + dcp, grfdoc);\n    return fTrue;\n}\n\n/***************************************************************************\n    Copy properties from a TXRD to this one. Properties from sprmMin to\n    sprmLim are copied.\n***************************************************************************/\nvoid TXRD::_CopyProps(PTXRD ptxrd, long cpSrc, long cpDst, long ccpSrc, long ccpDst, byte sprmMin, byte sprmLim)\n{\n    AssertThis(0);\n    AssertPo(ptxrd, 0);\n    AssertIn(cpSrc, 0, ptxrd->CpMac());\n    AssertIn(cpDst, 0, CpMac());\n    AssertIn(ccpSrc, 1, ptxrd->CpMac() + 1 - cpSrc);\n    AssertIn(ccpDst, 1, CpMac() + 1 - cpDst);\n    SPVM spvm;\n    byte sprm;\n    long impe;\n    long cpMin, cpLim;\n    bool fRet;\n    long lw;\n    long cb;\n    void *pv;\n\n    // zero the character properties over the inserted text\n    spvm.sprm = sprmNil;\n    spvm.lw = 0;\n    spvm.lwMask = -1;\n    _FFindMpe(_SpcpFromSprmCp(sprmMin, 0), pvNil, pvNil, &impe);\n    while (_FFetchProp(impe++, &sprm) && sprm < sprmLim)\n    {\n        if (spvm.sprm == sprm)\n            continue;\n        spvm.sprm = sprm;\n        if (_pglmpe->FEnsureSpace(2))\n            _ApplyRgspvm(cpDst, ccpDst, &spvm, 1);\n        else\n            Warn(\"growing _pglmpe failed\");\n    }\n\n    // apply the source properties\n    ptxrd->_FFindMpe(_SpcpFromSprmCp(sprmMin, 0), pvNil, pvNil, &impe);\n    while (ptxrd->_FFetchProp(impe++, &sprm, &lw, &cpMin, &cpLim) && sprm < sprmLim)\n    {\n        // if this MPE doesn't overlap our source range, ignore it.\n        if (cpLim <= cpSrc || cpMin >= cpSrc + ccpSrc)\n            continue;\n\n        // if this MPE goes to the end of the source range, also carry it\n        // to the end of the destination\n        if (cpLim >= cpSrc + ccpSrc)\n            cpLim = cpSrc + ccpDst;\n\n        // adjust the min and lim to destination cp values and restrict\n        // them to [cpDst, cpDst + ccpDst).\n        if ((cpMin += cpDst - cpSrc) < cpDst)\n            cpMin = cpDst;\n        if ((cpLim += cpDst - cpSrc) > cpDst + ccpDst)\n            cpLim = cpDst + ccpDst;\n\n        // if the range is empty, ignore it\n        if (cpMin >= cpLim)\n            continue;\n\n        spvm.sprm = sprm;\n        if (_FSprmInAg(sprm) && lw > 0)\n        {\n            cb = ptxrd->_pagcact->Cb(lw - 1);\n            pv = ptxrd->_pagcact->PvLock(lw - 1);\n            fRet = _FEnsureInAg(sprm, pv, cb, &spvm.lw);\n            ptxrd->_pagcact->Unlock();\n            if (!fRet)\n            {\n                Warn(\"ensure in ag failed\");\n                continue;\n            }\n        }\n        else\n            spvm.lw = lw;\n\n        if (_pglmpe->FEnsureSpace(2))\n            _ApplyRgspvm(cpMin, cpLim - cpMin, &spvm, 1);\n        else\n        {\n            Warn(\"growing _pglmpe failed\");\n            _ReleaseRgspvm(&spvm, 1);\n        }\n    }\n}\n\n/***************************************************************************\n    Find the first object at or after cpMin. Put its location in *pcp and\n    allocate a buffer to hold its extra data and put it in *ppv (if ppv is\n    not nil). If an object was found, but the buffer couldn't be allocated,\n    *ppv is set to nil.\n***************************************************************************/\nbool TXRD::FFetchObject(long cpMin, long *pcp, void **ppv, long *pcb)\n{\n    AssertThis(0);\n    AssertIn(cpMin, 0, CpMac());\n    AssertVarMem(pcp);\n    AssertNilOrVarMem(ppv);\n    AssertNilOrVarMem(pcb);\n\n    MPE mpe;\n    long impe;\n    long cb;\n    bool fRet;\n\n    fRet = _FFindMpe(_SpcpFromSprmCp(sprmObject, cpMin), &mpe, pcp, &impe);\n    if (fRet && cpMin == _CpFromSpcp(mpe.spcp))\n        *pcp = cpMin;\n    else if (*pcp >= CpMac())\n        return fFalse;\n    else\n    {\n        if (fRet)\n            impe++;\n        Assert(impe < _pglmpe->IvMac(), \"bad cpLim from _FFindMpe\");\n        _pglmpe->Get(impe, &mpe);\n        Assert(_CpFromSpcp(mpe.spcp) == *pcp, \"_FFindMpe messed up\");\n    }\n\n    if (pvNil != pcb)\n        *pcb = _pagcact->Cb(mpe.lw - 1);\n    if (pvNil != ppv)\n    {\n        mpe.lw--;\n        AssertIn(mpe.lw, 0, _pagcact->IvMac());\n        cb = _pagcact->Cb(mpe.lw);\n        if (FAllocPv(ppv, cb, fmemNil, mprNormal))\n            CopyPb((byte *)_pagcact->QvGet(mpe.lw), *ppv, cb);\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Insert a picture into the rich text document.\n***************************************************************************/\nbool TXRD::FInsertObject(void *pv, long cb, long cp, long ccpDel, PCHP pchp, ulong grfdoc)\n{\n    AssertThis(fobjAssertFull);\n    AssertPvCb(pv, cb);\n    AssertIn(cp, 0, CpMac());\n    AssertIn(ccpDel, 0, CpMac() - cp);\n    AssertNilOrVarMem(pchp);\n    SPVM rgspvm[sprmLimChp - sprmMinChp];\n    MPE mpe;\n    long impe;\n    achar ch = kchObject;\n    long cspvmChp = 0;\n\n    BumpCombineUndo();\n    if (!FSetUndo(cp, cp + ccpDel, 1))\n        return fFalse;\n\n    mpe.spcp = _SpcpFromSprmCp(sprmObject, cp);\n    if (!_FEnsureInAg(sprmObject, pv, cb, &mpe.lw))\n        goto LFail;\n\n    if (pvNil != pchp && !_FGetRgspvmFromChp(pchp, pvNil, rgspvm, &cspvmChp))\n        goto LFail;\n\n    // now make sure that _pglmpe has enough room - we need at most 2\n    // entries per sprm, plus one for the object\n    if (!_pglmpe->FEnsureSpace(2 * cspvmChp + 1))\n        goto LFail;\n\n    if (!FReplaceRgch(&ch, 1, cp, ccpDel, fdocNil))\n    {\n        _ReleaseRgspvm(rgspvm, cspvmChp);\n    LFail:\n        _ReleaseSprmLw(sprmObject, mpe.lw);\n        CancelUndo();\n        return fFalse;\n    }\n\n    if (cspvmChp > 0)\n        _ApplyRgspvm(cp, 1, rgspvm, cspvmChp);\n\n    // insert the object sprm\n    if (_FFindMpe(mpe.spcp, pvNil, pvNil, &impe))\n        impe++;\n    AssertDo(_pglmpe->FInsert(impe, &mpe), \"should have been ensured\");\n    CommitUndo();\n    BumpCombineUndo();\n\n    AssertThis(fobjAssertFull);\n    InvalAllDdg(cp, 1, ccpDel, grfdoc);\n    return fTrue;\n}\n\n/***************************************************************************\n    Insert a picture into the rich text document.\n***************************************************************************/\nbool TXRD::FApplyObjectProps(void *pv, long cb, long cp, ulong grfdoc)\n{\n    AssertThis(fobjAssertFull);\n    AssertPvCb(pv, cb);\n    AssertIn(cp, 0, CpMac());\n    MPE mpe;\n    long impe;\n    long lwOld;\n\n    if (!_FFindMpe(_SpcpFromSprmCp(sprmObject, cp), &mpe, pvNil, &impe) || cp != _CpFromSpcp(mpe.spcp))\n    {\n        Bug(\"cp not an object\");\n        return fFalse;\n    }\n\n    BumpCombineUndo();\n    if (!FSetUndo(cp, cp + 1, 1))\n        return fFalse;\n\n    lwOld = mpe.lw;\n    if (!_FEnsureInAg(sprmObject, pv, cb, &mpe.lw))\n    {\n        CancelUndo();\n        return fFalse;\n    }\n\n    _pglmpe->Put(impe, &mpe);\n    _ReleaseSprmLw(sprmObject, lwOld);\n    CommitUndo();\n    BumpCombineUndo();\n\n    AssertThis(fobjAssertFull);\n    InvalAllDdg(cp, 1, 1, grfdoc);\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the bounds of an object.\n***************************************************************************/\nbool TXRD::FGetObjectRc(long cp, PGNV pgnv, PCHP pchp, RC *prc)\n{\n    AssertThis(0);\n    AssertIn(cp, 0, CpMac());\n    AssertPo(pgnv, 0);\n    AssertVarMem(pchp);\n    AssertVarMem(prc);\n    MPE mpe;\n    ulong spcp = _SpcpFromSprmCp(sprmObject, cp);\n\n    if (!_FFindMpe(spcp, &mpe) || _CpFromSpcp(mpe.spcp) != cp)\n        return fFalse;\n\n    return _FGetObjectRc(mpe.lw - 1, _SprmFromSpcp(mpe.spcp), pgnv, pchp, prc);\n}\n\n/***************************************************************************\n    Get the object bounds from the AG entry.\n***************************************************************************/\nbool TXRD::_FGetObjectRc(long icact, byte sprm, PGNV pgnv, PCHP pchp, RC *prc)\n{\n    AssertIn(icact, 0, _pagcact->IvMac());\n    Assert(sprm >= sprmObject, 0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(pchp);\n    AssertVarMem(prc);\n\n    // TXRD has no acceptable object types\n    TrashVar(prc);\n    return fFalse;\n}\n\n/***************************************************************************\n    Draw an object.\n***************************************************************************/\nbool TXRD::FDrawObject(long cp, PGNV pgnv, long *pxp, long yp, PCHP pchp, RC *prcClip)\n{\n    AssertThis(0);\n    AssertIn(cp, 0, CpMac());\n    AssertPo(pgnv, 0);\n    AssertVarMem(pxp);\n    AssertVarMem(pchp);\n    AssertVarMem(prcClip);\n    MPE mpe;\n    ulong spcp = _SpcpFromSprmCp(sprmObject, cp);\n\n    if (!_FFindMpe(spcp, &mpe) || _CpFromSpcp(mpe.spcp) != cp)\n        return fFalse;\n\n    return _FDrawObject(mpe.lw - 1, _SprmFromSpcp(mpe.spcp), pgnv, pxp, yp, pchp, prcClip);\n}\n\n/***************************************************************************\n    Draw the object.\n***************************************************************************/\nbool TXRD::_FDrawObject(long icact, byte sprm, PGNV pgnv, long *pxp, long yp, PCHP pchp, RC *prcClip)\n{\n    AssertIn(icact, 0, _pagcact->IvMac());\n    Assert(sprm >= sprmObject, 0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(pxp);\n    AssertVarMem(pchp);\n    AssertVarMem(prcClip);\n\n    // TXRD has no acceptable object types\n    return fFalse;\n}\n\n/***************************************************************************\n    Create a new rich text undo object for the given rich text document.\n***************************************************************************/\nPRTUN RTUN::PrtunNew(long cactCombine, PTXRD ptxrd, long cp1, long cp2, long ccpIns)\n{\n    AssertPo(ptxrd, 0);\n    AssertIn(cp1, 0, ptxrd->CpMac() + 1);\n    AssertIn(cp2, 0, ptxrd->CpMac() + 1);\n    AssertIn(ccpIns, 0, kcbMax);\n    PRTUN prtun;\n\n    SortLw(&cp1, &cp2);\n    AssertIn(cp1, 0, ptxrd->CpMac());\n    if (pvNil == (prtun = NewObj RTUN))\n        return pvNil;\n\n    prtun->_cactCombine = cactCombine;\n    prtun->_cpMin = cp1;\n    prtun->_ccpIns = ccpIns;\n    if (cp1 < cp2)\n    {\n        // copy the piece of the txrd.\n        if (pvNil == (prtun->_ptxrd = TXRD::PtxrdNew(pvNil)))\n            goto LFail;\n        prtun->_ptxrd->SetInternal();\n        prtun->_ptxrd->SuspendUndo();\n        if (!prtun->_ptxrd->FReplaceTxrd(ptxrd, cp1, cp2 - cp1, 0, 0))\n        {\n        LFail:\n            ReleasePpo(&prtun);\n        }\n    }\n\n    AssertNilOrPo(prtun, 0);\n    return prtun;\n}\n\n/***************************************************************************\n    Destructor for a rich text undo object.\n***************************************************************************/\nRTUN::~RTUN(void)\n{\n    ReleasePpo(&_ptxrd);\n}\n\n/***************************************************************************\n    Undo this rich text undo object on the given document.\n***************************************************************************/\nbool RTUN::FUndo(PDOCB pdocb)\n{\n    AssertThis(0);\n    AssertPo(pdocb, 0);\n    PTXRD ptxrd;\n    long ccpIns;\n    PTXRD ptxrdNew = pvNil;\n\n    if (!pdocb->FIs(kclsTXRD))\n        goto LAssert;\n    ptxrd = (PTXRD)pdocb;\n    AssertPo(ptxrd, 0);\n\n    if (!FIn(_cpMin, 0, ptxrd->CpMac()) || !FIn(_ccpIns, 0, ptxrd->CpMac() + 1 - _cpMin))\n    {\n    LAssert:\n        Bug(\"This rich text undo object cannot be applied to this document\");\n        return fFalse;\n    }\n\n    if (_ccpIns > 0)\n    {\n        // copy the piece of the txrd.\n        if (pvNil == (ptxrdNew = TXRD::PtxrdNew(pvNil)))\n            return fFalse;\n        ptxrdNew->SetInternal();\n        ptxrdNew->SuspendUndo();\n        if (!ptxrdNew->FReplaceTxrd(ptxrd, _cpMin, _ccpIns, 0, 0))\n            goto LFail;\n    }\n\n    ptxrd->SuspendUndo();\n    ptxrd->HideSel();\n    if (pvNil == _ptxrd)\n    {\n        ccpIns = 0;\n        if (!ptxrd->FReplaceRgch(pvNil, 0, _cpMin, _ccpIns))\n            goto LFail;\n    }\n    else\n    {\n        ccpIns = _ptxrd->CpMac() - 1;\n        if (!ptxrd->FReplaceTxrd(_ptxrd, 0, ccpIns, _cpMin, _ccpIns))\n        {\n        LFail:\n            ReleasePpo(&ptxrdNew);\n            ptxrd->ResumeUndo();\n            return fFalse;\n        }\n    }\n    ptxrd->ResumeUndo();\n    ptxrd->SetSel(_cpMin, _cpMin + ccpIns, ginNil);\n    ptxrd->ShowSel();\n    ptxrd->SetSel(_cpMin + ccpIns, _cpMin + ccpIns);\n\n    ReleasePpo(&_ptxrd);\n    _ptxrd = ptxrdNew;\n    _ccpIns = ccpIns;\n    return fTrue;\n}\n\n/***************************************************************************\n    Redo this rich text undo object on the given document.\n***************************************************************************/\nbool RTUN::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n    return FUndo(pdocb);\n}\n\n/***************************************************************************\n    If possible, combine the given rtun with this one. Returns success.\n***************************************************************************/\nbool RTUN::FCombine(PRTUN prtun)\n{\n    AssertThis(0);\n    AssertPo(prtun, 0);\n    long ccp;\n\n    // if the _cactCombine numbers are different, they can't be combined\n    if (prtun->_cactCombine != _cactCombine)\n        return fFalse;\n\n    // if the new record doesn't delete anything and the new text is\n    // at the end of the old text, just adjust _ccpIns.\n    if (prtun->_ptxrd == pvNil && _cpMin + _ccpIns == prtun->_cpMin)\n    {\n        _ccpIns += prtun->_ccpIns;\n        return fTrue;\n    }\n\n    // if either of the new records inserts anything, we can't combine the two\n    if (prtun->_ccpIns != 0 || _ccpIns != 0)\n        return fFalse;\n\n    // handle repeated delete keys\n    AssertPo(_ptxrd, 0);\n    AssertPo(prtun->_ptxrd, 0);\n    ccp = prtun->_ptxrd->CpMac() - 1;\n    if (prtun->_cpMin == _cpMin)\n    {\n        return _ptxrd->FReplaceTxrd(prtun->_ptxrd, 0, ccp, _ptxrd->CpMac() - 1, 0);\n    }\n\n    // handle repeated backspace keys\n    if (prtun->_cpMin + ccp == _cpMin)\n    {\n        if (!_ptxrd->FReplaceTxrd(prtun->_ptxrd, 0, ccp, 0, 0))\n            return fFalse;\n        _cpMin = prtun->_cpMin;\n        return fTrue;\n    }\n\n    return fFalse;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a RTUN.\n***************************************************************************/\nvoid RTUN::AssertValid(ulong grf)\n{\n    RTUN_PAR::AssertValid(grf);\n    AssertNilOrPo(_ptxrd, 0);\n    AssertIn(_cpMin, 0, kcbMax);\n    AssertIn(_ccpIns, 0, kcbMax);\n    Assert(_ccpIns > 0 || _ptxrd != pvNil, \"empty RTUN\");\n}\n\n/***************************************************************************\n    Mark memory for the RTUN.\n***************************************************************************/\nvoid RTUN::MarkMem(void)\n{\n    AssertThis(fobjAssertFull);\n    RTUN_PAR::MarkMem();\n    MarkMemObj(_ptxrd);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/rtxt.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Rich text document and supporting views.\n\n***************************************************************************/\n#ifndef RTXT_H\n#define RTXT_H\n\n/***************************************************************************\n    Character properties - if you change this, make sure to update\n    FetchChp and _TGetLwFromChp.\n***************************************************************************/\nstruct CHP\n{\n    ulong grfont;   // bold, italic, etc\n    long onn;       // which font\n    long dypFont;   // size of the font\n    long dypOffset; // sub/superscript (-128 to 127)\n    ACR acrFore;    // text color\n    ACR acrBack;    // background color\n\n    void Clear(void)\n    {\n        ClearPb(this, offset(CHP, acrFore));\n        acrFore = kacrBlack;\n        acrBack = kacrBlack;\n    }\n};\ntypedef CHP *PCHP;\n\n/***************************************************************************\n    Paragraph properties - if you change these, make sure to update\n    FetchPap and _TGetLwFromPap.  The dypExtraLine and numLine fields are\n    used to change the height of lines from their default.  The line height\n    used is calculated as (numLine / 256) * dyp + dypExtraLine, where dyp\n    is the natural height of the line.\n***************************************************************************/\nenum\n{\n    jcMin,\n    jcLeft = jcMin,\n    jcRight,\n    jcCenter,\n    jcLim\n};\n\nenum\n{\n    ndMin,\n    ndNone = ndMin,\n    ndFirst, // just on the left\n    ndRest,  // just on the left\n    ndAll,   // on both sides\n    ndLim\n};\n\nstruct PAP\n{\n    byte jc;\n    byte nd;\n    short dxpTab;\n    short numLine;\n    short dypExtraLine;\n    short numAfter;\n    short dypExtraAfter;\n};\ntypedef PAP *PPAP;\nconst short kdenLine = 256;\nconst short kdenAfter = 256;\nconst short kdxpTabDef = (kdzpInch / 4);\nconst short kdxpDocDef = (kdzpInch * 6);\n\nconst achar kchObject = 1;\n\n/***************************************************************************\n    Generic text document base class\n***************************************************************************/\nconst long kcchMaxTxtbCache = 512;\ntypedef class TXTB *PTXTB;\n#define TXTB_PAR DOCB\n#define kclsTXTB 'TXTB'\nclass TXTB : public TXTB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PFIL _pfil;\n    PBSF _pbsf;\n    ACR _acrBack;\n    long _dxpDef; // default width of the document\n    long _cpMinCache;\n    long _cpLimCache;\n    achar _rgchCache[kcchMaxTxtbCache];\n\n    long _cactSuspendUndo; // > 0 means don't set up undo records.\n    long _cactCombineUndo; // determines whether we can combine undo records.\n\n    TXTB(PDOCB pdocb = pvNil, ulong grfdoc = fdocNil);\n    ~TXTB(void);\n    virtual bool _FInit(PFNI pfni = pvNil, PBSF pbsf = pvNil, short osk = koskCur);\n    virtual bool _FLoad(short osk = koskCur);\n    virtual achar _ChFetch(long cp);\n    virtual void _CacheRange(long cpMin, long cpLim);\n    virtual void _InvalCache(long cp, long ccpIns, long ccpDel);\n\n  public:\n    virtual void InvalAllDdg(long cp, long ccpIns, long ccpDel, ulong grfdoc = fdocUpdate);\n\n    // REVIEW shonk: this is needed for using a text document as input to a lexer.\n    // The bsf returned is read-only!!!!\n    PBSF Pbsf(void)\n    {\n        AssertThis(0);\n        return _pbsf;\n    }\n\n    long CpMac(void);\n    bool FMinPara(long cp);\n    long CpMinPara(long cp);\n    long CpLimPara(long cp);\n    long CpPrev(long cp, bool fWord = fFalse);\n    long CpNext(long cp, bool fWord = fFalse);\n    ACR AcrBack(void)\n    {\n        return _acrBack;\n    }\n    void SetAcrBack(ACR acr, ulong grfdoc = fdocUpdate);\n    long DxpDef(void)\n    {\n        return _dxpDef;\n    }\n    virtual void SetDxpDef(long dxp);\n\n    virtual void FetchRgch(long cp, long ccp, achar *prgch);\n    virtual bool FReplaceRgch(void *prgch, long ccpIns, long cp, long ccpDel, ulong grfdoc = fdocUpdate);\n    virtual bool FReplaceFlo(PFLO pflo, bool fCopy, long cp, long ccpDel, short osk = koskCur,\n                             ulong grfdoc = fdocUpdate);\n    virtual bool FReplaceBsf(PBSF pbsfSrc, long cpSrc, long ccpSrc, long cpDst, long ccpDel, ulong grfdoc = fdocUpdate);\n    virtual bool FReplaceTxtb(PTXTB ptxtbSrc, long cpSrc, long ccpSrc, long cpDst, long ccpDel,\n                              ulong grfdoc = fdocUpdate);\n    virtual bool FGetObjectRc(long cp, PGNV pgnv, PCHP pchp, RC *prc);\n    virtual bool FDrawObject(long cp, PGNV pgnv, long *pxp, long yp, PCHP pchp, RC *prcClip);\n\n    virtual bool FGetFni(FNI *pfni);\n\n    virtual void HideSel(void);\n    virtual void SetSel(long cp1, long cp2, long gin = kginDraw);\n    virtual void ShowSel(void);\n\n    virtual void SuspendUndo(void);\n    virtual void ResumeUndo(void);\n    virtual bool FSetUndo(long cp1, long cp2, long ccpIns);\n    virtual void CancelUndo(void);\n    virtual void CommitUndo(void);\n    virtual void BumpCombineUndo(void);\n\n    virtual bool FFind(achar *prgch, long cch, long cpStart, long *pcpMin, long *pcpLim, bool fCaseSensitive = fFalse);\n\n    virtual void ExportFormats(PCLIP pclip);\n};\n\n/***************************************************************************\n    Plain text document class\n***************************************************************************/\ntypedef class TXPD *PTXPD;\n#define TXPD_PAR TXTB\n#define kclsTXPD 'TXPD'\nclass TXPD : public TXPD_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    TXPD(PDOCB pdocb = pvNil, ulong grfdoc = fdocNil);\n\n  public:\n    static PTXPD PtxpdNew(PFNI pfni = pvNil, PBSF pbsf = pvNil, short osk = koskCur, PDOCB pdocb = pvNil,\n                          ulong grfdoc = fdocNil);\n\n    virtual PDDG PddgNew(PGCB pgcb);\n    virtual bool FSaveToFni(FNI *pfni, bool fSetFni);\n};\n\n/***************************************************************************\n    Rich text document class.\n***************************************************************************/\nconst long kcpMaxTxrd = 0x00800000; // 8MB\ntypedef class RTUN *PRTUN;\n\ntypedef class TXRD *PTXRD;\n#define TXRD_PAR TXTB\n#define kclsTXRD 'TXRD'\nclass TXRD : public TXRD_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    // WARNING: changing these values affects the file format\n    // NOTE: Originally, _FSprmInAg was a virtual TXRD method called to\n    // determine if a sprm stored its value in the AG. This didn't work\n    // well when a subclass had a sprm in an AG (it broke undo for that\n    // sprm). To fix this I (shonk) made _FSprmInAg static and made it\n    // know exactly which sprms use the AG. For sprms in the client range\n    // or above sprmMinObj, odd ones are _not_ in the AG and even ones _are_\n    // in the AG. I couldn't just use the odd/even rule throughout the\n    // range, because that would have required changing values of old\n    // sprms, which would have broken existing rich text documents.\n    enum\n    {\n        sprmNil = 0,\n\n        // character properties\n        sprmMinChp = 1,\n        sprmStyle = 1,     // bold, italic, etc, font size, dypOffset\n        sprmFont = 2,      // font - in the AG\n        sprmForeColor = 3, // foreground color\n        sprmBackColor = 4, // background color\n        sprmLimChp,\n\n        // client character properties start at 64\n        sprmMinChpClient = 64, // for subclassed character properties\n\n        // paragraph properties\n        sprmMinPap = 128,\n        sprmHorz = 128,  // justification, indenting and dxpTab\n        sprmVert = 129,  // numLine and dypExtraLine\n        sprmAfter = 130, // numAfter and dypExtraAfter\n        sprmLimPap,\n\n        // client paragraph properties\n        sprmMinPapClient = 160, // for subclassed paragraph properties\n\n        // objects - these apply to a single character, not a range\n        sprmMinObj = 192,\n        sprmObject = 192,\n    };\n\n    // map property entry\n    struct MPE\n    {\n        ulong spcp; // sprm in the high byte and cp in the low 3 bytes\n        long lw;    // the associated value - meaning depends on the sprm,\n                    // but 0 is _always_ the default\n    };\n\n    // sprm, value, mask triple\n    struct SPVM\n    {\n        byte sprm;\n        long lw;\n        long lwMask;\n    };\n\n    // rich text document properties\n    struct RDOP\n    {\n        short bo;\n        short oskFont;\n        long dxpDef;\n        long dypFont;\n        long lwAcrBack;\n        // byte rgbStnFont[]; font name\n    };\n#define kbomRdop 0x5FC00000\n\n    PCFL _pcfl;\n    PGL _pglmpe;\n    PAG _pagcact; // for sprm's that have more than a long's worth of data\n\n    long _onnDef; // default font and font size\n    long _dypFontDef;\n    short _oskFont;  // osk for the default font\n    STN _stnFontDef; // name of default font\n\n    // cached CHP and PAP (from FetchChp and FetchPap)\n    CHP _chp;\n    long _cpMinChp, _cpLimChp;\n    PAP _pap;\n    long _cpMinPap, _cpLimPap;\n\n    // current undo record\n    PRTUN _prtun;\n\n    TXRD(PDOCB pdocb = pvNil, ulong grfdoc = fdocNil);\n    ~TXRD(void);\n    bool _FInit(PFNI pfni = pvNil, CTG ctg = kctgRichText);\n    virtual bool _FReadChunk(PCFL pcfl, CTG ctg, CNO cno, bool fCopyText);\n    virtual bool _FOpenArg(long icact, byte sprm, short bo, short osk);\n\n    ulong _SpcpFromSprmCp(byte sprm, long cp)\n    {\n        return ((ulong)sprm << 24) | (cp & 0x00FFFFFF);\n    }\n    byte _SprmFromSpcp(ulong spcp)\n    {\n        return B3Lw(spcp);\n    }\n    long _CpFromSpcp(ulong spcp)\n    {\n        return (long)(spcp & 0x00FFFFFF);\n    }\n    bool _FFindMpe(ulong spcp, MPE *pmpe, long *pcpLim = pvNil, long *pimpe = pvNil);\n    bool _FFetchProp(long impe, byte *psprm, long *plw = pvNil, long *pcpMin = pvNil, long *pcpLim = pvNil);\n    bool _FEnsureInAg(byte sprm, void *pv, long cb, long *pjv);\n    void _ReleaseInAg(long jv);\n    void _AddRefInAg(long jv);\n    void _ReleaseSprmLw(byte sprm, long lw);\n    void _AddRefSprmLw(byte sprm, long lw);\n    tribool _TGetLwFromChp(byte sprm, PCHP pchpNew, PCHP pchpOld, long *plw, long *plwMask);\n    tribool _TGetLwFromPap(byte sprm, PPAP ppapNew, PPAP ppapOld, long *plw, long *plwMask);\n    bool _FGetRgspvmFromChp(PCHP pchp, PCHP pchpDiff, SPVM *prgspvm, long *pcspvm);\n    bool _FGetRgspvmFromPap(PPAP ppap, PPAP ppapDiff, SPVM *prgspvm, long *pcspvm);\n    void _ReleaseRgspvm(SPVM *prgspvm, long cspvm);\n    void _ApplyRgspvm(long cp, long ccp, SPVM *prgspvm, long cspvm);\n    void _GetParaBounds(long *pcpMin, long *pccp, bool fExpand);\n    void _AdjustMpe(long cp, long ccpIns, long ccpDel);\n    void _CopyProps(PTXRD ptxrd, long cpSrc, long cpDst, long ccpSrc, long ccpDst, byte sprmMin, byte sprmLim);\n\n    virtual bool _FGetObjectRc(long icact, byte sprm, PGNV pgnv, PCHP pchp, RC *prc);\n    virtual bool _FDrawObject(long icact, byte sprm, PGNV pgnv, long *pxp, long yp, PCHP pchp, RC *prcClip);\n\n    bool _FReplaceCore(void *prgch, PFLO pflo, bool fCopy, PBSF pbsf, long cpSrc, long ccpIns, long cp, long ccpDel,\n                       PCHP pchp, PPAP ppap, ulong grfdoc);\n\n    static bool _FSprmInAg(byte sprm);\n\n  public:\n    static PTXRD PtxrdNew(PFNI pfni = pvNil);\n    static PTXRD PtxrdReadChunk(PCFL pcfl, CTG ctg, CNO cno, bool fCopyText = fTrue);\n\n    virtual PDDG PddgNew(PGCB pgcb);\n\n    void FetchChp(long cp, PCHP pchp, long *pcpMin = pvNil, long *pcpLim = pvNil);\n    void FetchPap(long cp, PPAP ppap, long *pcpMin = pvNil, long *pcpLim = pvNil);\n\n    bool FApplyChp(long cp, long ccp, PCHP pchp, PCHP pchpDiff = pvNil, ulong grfdoc = fdocUpdate);\n    bool FApplyPap(long cp, long ccp, PPAP ppap, PPAP ppapDiff, long *pcpMin = pvNil, long *pcpLim = pvNil,\n                   bool fExpand = fTrue, ulong grfdoc = fdocUpdate);\n\n    virtual bool FReplaceRgch(void *prgch, long ccpIns, long cp, long ccpDel, ulong grfdoc = fdocUpdate);\n    virtual bool FReplaceFlo(PFLO pflo, bool fCopy, long cp, long ccpDel, short osk = koskCur,\n                             ulong grfdoc = fdocUpdate);\n    virtual bool FReplaceBsf(PBSF pbsfSrc, long cpSrc, long ccpSrc, long cpDst, long ccpDel, ulong grfdoc = fdocUpdate);\n    virtual bool FReplaceTxtb(PTXTB ptxtbSrc, long cpSrc, long ccpSrc, long cpDst, long ccpDel,\n                              ulong grfdoc = fdocUpdate);\n    bool FReplaceRgch(void *prgch, long ccpIns, long cp, long ccpDel, PCHP pchp, PPAP ppap = pvNil,\n                      ulong grfdoc = fdocUpdate);\n    bool FReplaceFlo(PFLO pflo, bool fCopy, long cp, long ccpDel, PCHP pchp, PPAP ppap = pvNil, short osk = koskCur,\n                     ulong grfdoc = fdocUpdate);\n    bool FReplaceBsf(PBSF pbsfSrc, long cpSrc, long ccpSrc, long cpDst, long ccpDel, PCHP pchp, PPAP ppap = pvNil,\n                     ulong grfdoc = fdocUpdate);\n    bool FReplaceTxtb(PTXTB ptxtbSrc, long cpSrc, long ccpSrc, long cpDst, long ccpDel, PCHP pchp, PPAP ppap = pvNil,\n                      ulong grfdoc = fdocUpdate);\n    bool FReplaceTxrd(PTXRD ptxrd, long cpSrc, long ccpSrc, long cpDst, long ccpDel, ulong grfdoc = fdocUpdate);\n\n    bool FFetchObject(long cpMin, long *pcp, void **ppv = pvNil, long *pcb = pvNil);\n    virtual bool FInsertObject(void *pv, long cb, long cp, long ccpDel, PCHP pchp = pvNil, ulong grfdoc = fdocUpdate);\n    virtual bool FApplyObjectProps(void *pv, long cb, long cp, ulong grfdoc = fdocUpdate);\n\n    virtual bool FGetObjectRc(long cp, PGNV pgnv, PCHP pchp, RC *prc);\n    virtual bool FDrawObject(long cp, PGNV pgnv, long *pxp, long yp, PCHP pchp, RC *prcClip);\n\n    virtual bool FGetFni(FNI *pfni);\n    virtual bool FGetFniSave(FNI *pfni);\n    virtual bool FSaveToFni(FNI *pfni, bool fSetFni);\n    virtual bool FSaveToChunk(PCFL pcfl, CKI *pcki, bool fRedirectText = fFalse);\n\n    virtual bool FSetUndo(long cp1, long cp2, long ccpIns);\n    virtual void CancelUndo(void);\n    virtual void CommitUndo(void);\n};\n\n/***************************************************************************\n    Rich text undo object.\n***************************************************************************/\ntypedef class RTUN *PRTUN;\n#define RTUN_PAR UNDB\n#define kclsRTUN 'RTUN'\nclass RTUN : public RTUN_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    long _cactCombine; // RTUNs with different values can't be combined\n    PTXRD _ptxrd;      // copy of replaced text\n    long _cpMin;       // where the text came from in the original RTXD\n    long _ccpIns;      // how many characters the original text was replaced with\n\n  public:\n    static PRTUN PrtunNew(long cactCombine, PTXRD ptxrd, long cp1, long cp2, long ccpIns);\n    ~RTUN(void);\n\n    virtual bool FUndo(PDOCB pdocb);\n    virtual bool FDo(PDOCB pdocb);\n\n    bool FCombine(PRTUN prtun);\n};\n\n/***************************************************************************\n    Text document display GOB - DDG for a TXTB.\n***************************************************************************/\nconst long kdxpIndentTxtg = (kdzpInch / 8);\nconst long kcchMaxLineTxtg = 512;\ntypedef class TRUL *PTRUL;\n\nenum\n{\n    ftxtgNil = 0,\n    ftxtgNoColor = 1,\n};\n\ntypedef class TXTG *PTXTG;\n#define TXTG_PAR DDG\n#define kclsTXTG 'TXTG'\nclass TXTG : public TXTG_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    // line information\n    struct LIN\n    {\n        long cpMin;  // the cp of the first character in this line\n        long dypTot; // the total height of lines up to this line\n        short ccp;\n        short xpLeft;\n        short dyp;\n        short dypAscent;\n    };\n\n    PTXTB _ptxtb;\n    PGL _pgllin;\n    long _ilinDisp;\n    long _cpDisp;\n    long _dypDisp;\n    long _ilinInval; // LINs from here on have wrong cpMin and dypTot values\n    PGNV _pgnv;\n\n    // the selection\n    long _cpAnchor;\n    long _cpOther;\n    ulong _tsSel;\n    long _xpSel;\n    bool _fSelOn : 1;\n    bool _fXpValid : 1;\n    bool _fMark : 1;\n    bool _fClear : 1;\n    bool _fSelByWord : 1;\n\n    // the ruler\n    PTRUL _ptrul;\n\n    TXTG(PTXTB ptxtb, PGCB pgcb);\n    ~TXTG(void);\n\n    virtual bool _FInit(void);\n    virtual void _Activate(bool fActive);\n\n    virtual long _DxpDoc(void);\n    virtual void _FetchChp(long cp, PCHP pchp, long *pcpMin = pvNil, long *pcpLim = pvNil) = 0;\n    virtual void _FetchPap(long cp, PPAP ppap, long *pcpMin = pvNil, long *pcpLim = pvNil) = 0;\n\n    void _CalcLine(long cpMin, long dyp, LIN *plin);\n    void _Reformat(long cp, long ccpIns, long ccpDel, long *pyp = pvNil, long *pdypIns = pvNil, long *pdypDel = pvNil);\n    void _ReformatAndDraw(long cp, long ccpIns, long ccpDel);\n\n    void _FetchLin(long ilin, LIN *plin, long *pilinActual = pvNil);\n    void _FindCp(long cpFind, LIN *plin, long *pilin = pvNil, bool fCalcLines = fTrue);\n    void _FindDyp(long dypFind, LIN *plin, long *pilin = pvNil, bool fCalcLines = fTrue);\n\n    bool _FGetCpFromPt(long xp, long yp, long *pcp, bool fClosest = fTrue);\n    bool _FGetCpFromXp(long xp, LIN *plin, long *pcp, bool fClosest = fTrue);\n    void _GetXpYpFromCp(long cp, long *pypMin, long *pypLim, long *pxp, long *pdypBaseLine = pvNil, bool fView = fTrue);\n    long _DxpFromCp(long cpLine, long cp);\n    void _SwitchSel(bool fOn, long gin = kginDraw);\n    void _InvertSel(PGNV pgnv, long gin = kginDraw);\n    void _InvertCpRange(PGNV pgnv, long cp1, long cp2, long gin = kginDraw);\n\n    virtual long _ScvMax(bool fVert);\n    virtual void _Scroll(long scaHorz, long scaVert, long scvHorz = 0, long scvVert = 0);\n    virtual void _ScrollDxpDyp(long dxp, long dyp);\n    virtual long _DypTrul(void);\n    virtual PTRUL _PtrulNew(PGCB pgcb);\n    virtual void _DrawLinExtra(PGNV pgnv, RC *prcClip, LIN *plin, long dxp, long yp, ulong grftxtg);\n\n  public:\n    virtual void DrawLines(PGNV pgnv, RC *prcClip, long dxp, long dyp, long ilinMin, long ilinLim = klwMax,\n                           ulong grftxtg = ftxtgNil);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FCmdTrackMouse(PCMD_MOUSE pcmd);\n    virtual bool FCmdKey(PCMD_KEY pcmd);\n    virtual bool FCmdSelIdle(PCMD pcmd);\n    virtual void InvalCp(long cp, long ccpIns, long ccpDel);\n\n    virtual void HideSel(void);\n    virtual void GetSel(long *pcpAnchor, long *pcpOther);\n    virtual void SetSel(long cpAnchor, long cpOther, long gin = kginDraw);\n    virtual bool FReplace(achar *prgch, long cch, long cp1, long cp2);\n    void ShowSel(void);\n    PTXTB Ptxtb(void)\n    {\n        return _ptxtb;\n    }\n\n    virtual void ShowRuler(bool fShow = fTrue);\n    virtual void SetDxpTab(long dxp);\n    virtual void SetDxpDoc(long dxp);\n    virtual void GetNaturalSize(long *pdxp, long *pdyp);\n};\n\n/***************************************************************************\n    Line text document display gob\n***************************************************************************/\ntypedef class TXLG *PTXLG;\n#define TXLG_PAR TXTG\n#define kclsTXLG 'TXLG'\nclass TXLG : public TXLG_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    // the font\n    long _onn;\n    ulong _grfont;\n    long _dypFont;\n    long _dxpChar;\n    long _cchTab;\n\n    TXLG(PTXTB ptxtb, PGCB pgcb, long onn, ulong grfont, long dypFont, long cchTab);\n\n    virtual long _DxpDoc(void);\n    virtual void _FetchChp(long cp, PCHP pchp, long *pcpMin = pvNil, long *pcpLim = pvNil);\n    virtual void _FetchPap(long cp, PPAP ppap, long *pcpMin = pvNil, long *pcpLim = pvNil);\n\n    // clipboard support\n    virtual bool _FCopySel(PDOCB *ppdocb = pvNil);\n    virtual void _ClearSel(void);\n    virtual bool _FPaste(PCLIP pclip, bool fDoIt, long cid);\n\n  public:\n    static PTXLG PtxlgNew(PTXTB ptxtb, PGCB pgcb, long onn, ulong grfont, long dypFont, long cchTab);\n\n    virtual void SetDxpTab(long dxp);\n    virtual void SetDxpDoc(long dxp);\n};\n\n/***************************************************************************\n    Rich text document display gob\n***************************************************************************/\ntypedef class TXRG *PTXRG;\n#define TXRG_PAR TXTG\n#define kclsTXRG 'TXRG'\nclass TXRG : public TXRG_PAR\n{\n    RTCLASS_DEC\n    CMD_MAP_DEC(TXRG)\n    ASSERT\n\n  protected:\n    TXRG(PTXRD ptxrd, PGCB pgcb);\n\n    CHP _chpIns;\n    bool _fValidChp;\n\n    virtual void _FetchChp(long cp, PCHP pchp, long *pcpMin = pvNil, long *pcpLim = pvNil);\n    virtual void _FetchPap(long cp, PPAP ppap, long *pcpMin = pvNil, long *pcpLim = pvNil);\n\n    virtual bool _FGetOtherSize(long *pdypFont);\n    virtual bool _FGetOtherSubSuper(long *pdypOffset);\n\n    // clipboard support\n    virtual bool _FCopySel(PDOCB *ppdocb = pvNil);\n    virtual void _ClearSel(void);\n    virtual bool _FPaste(PCLIP pclip, bool fDoIt, long cid);\n\n    void _FetchChpSel(long cp1, long cp2, PCHP pchp);\n    void _EnsureChpIns(void);\n\n  public:\n    static PTXRG PtxrgNew(PTXRD ptxrd, PGCB pgcb);\n\n    virtual void SetSel(long cpAnchor, long cpOther, long gin = kginDraw);\n    virtual bool FReplace(achar *prgch, long cch, long cp1, long cp2);\n    virtual bool FApplyChp(PCHP pchp, PCHP pchpDiff = pvNil);\n    virtual bool FApplyPap(PPAP ppap, PPAP ppapDiff = pvNil, bool fExpand = fTrue);\n\n    virtual bool FCmdApplyProperty(PCMD pcmd);\n    virtual bool FEnablePropCmd(PCMD pcmd, ulong *pgrfeds);\n    bool FSetColor(ACR *pacrFore, ACR *pacrBack);\n\n    virtual void SetDxpTab(long dxp);\n};\n\n/***************************************************************************\n    The ruler for a rich text document.\n***************************************************************************/\ntypedef class TRUL *PTRUL;\n#define TRUL_PAR GOB\n#define kclsTRUL 'TRUL'\nclass TRUL : public TRUL_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    TRUL(GCB *pgcb) : TRUL_PAR(pgcb)\n    {\n    }\n\n  public:\n    virtual void SetDxpTab(long dxpTab) = 0;\n    virtual void SetDxpDoc(long dxpDoc) = 0;\n    virtual void SetXpLeft(long xpLeft) = 0;\n};\n\n#endif //! RTXT_H\n"
  },
  {
    "path": "kauai/src/rtxt2.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Rich text document and associated DDG, continued\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nRTCLASS(TRUL)\n\nconst long kdxpMax = 0x01000000;\n\n/***************************************************************************\n    Character run data.\n***************************************************************************/\ntypedef struct CHRD *PCHRD;\nstruct CHRD\n{\n    long cpLim;\n    long cpLimDraw;\n    long xpLim;\n    long xpLimDraw;\n};\n\n/***************************************************************************\n    Character run class. This is used to format a line, draw a line,\n    map between cp and xp on a line, etc.\n***************************************************************************/\nconst long kcchMaxChr = 128;\nclass CHR\n{\n    ASSERT\n\n  private:\n    CHP _chp;\n    PAP _pap;\n    PTXTB _ptxtb;\n    PGNV _pgnv;\n    bool _fMustAdvance : 1;\n    bool _fBreak : 1;\n    bool _fObject : 1;\n\n    long _cpMin;\n    long _cpLim;\n    long _cpLimFetch;\n    long _xpMin;\n    long _xpBreak;\n\n    CHRD _chrd;\n    CHRD _chrdBop;\n\n    long _dypAscent;\n    long _dypDescent;\n\n    achar _rgch[kcchMaxChr];\n\n    bool _FFit(void);\n    void _SetToBop(void);\n    void _SkipIgnores(void);\n    void _DoTab(void);\n\n  public:\n    void Init(CHP *pchp, PAP *ppap, PTXTB ptxtb, PGNV pgnv, long cpMin, long cpLim, long xpBase, long xpLimLine,\n              long xpBreak);\n\n    void GetNextRun(bool fMustAdvance = fFalse);\n    bool FBreak(void)\n    {\n        return _fBreak;\n    }\n    void GetChrd(PCHRD pchrd, PCHRD pchrdBop = pvNil)\n    {\n        AssertNilOrVarMem(pchrd);\n        AssertNilOrVarMem(pchrdBop);\n\n        if (pvNil != pchrd)\n            *pchrd = _chrd;\n        if (pvNil != pchrdBop)\n            *pchrdBop = _chrdBop;\n    }\n    long DypAscent(void)\n    {\n        return _dypAscent;\n    }\n    long DypDescent(void)\n    {\n        return _dypDescent;\n    }\n    long XpMin(void)\n    {\n        return _xpMin;\n    }\n    long XpBreak(void)\n    {\n        return _xpBreak;\n    }\n    achar *Prgch(void)\n    {\n        return _rgch;\n    }\n    long CpMin(void)\n    {\n        return _cpMin;\n    }\n    bool FObject(void)\n    {\n        return _fObject;\n    }\n};\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a CHR.\n***************************************************************************/\nvoid CHR::AssertValid(ulong grf)\n{\n    AssertThisMem();\n    AssertPo(_ptxtb, 0);\n    AssertPo(_pgnv, 0);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Initialize the CHR.\n***************************************************************************/\nvoid CHR::Init(CHP *pchp, PAP *ppap, PTXTB ptxtb, PGNV pgnv, long cpMin, long cpLim, long xpBase, long xpLimLine,\n               long xpBreak)\n{\n    AssertVarMem(pchp);\n    AssertVarMem(ppap);\n    AssertPo(ptxtb, 0);\n    AssertPo(pgnv, 0);\n    AssertIn(cpMin, 0, ptxtb->CpMac());\n    AssertIn(cpLim, cpMin + 1, ptxtb->CpMac() + 1);\n    Assert(xpBase <= xpLimLine, \"xpBase > xpLimLine\");\n\n    RC rc;\n\n    _chp = *pchp;\n    _pap = *ppap;\n    _ptxtb = ptxtb;\n    _pgnv = pgnv;\n    _fBreak = fFalse;\n\n    _cpMin = cpMin;\n    _cpLim = cpLim;\n    _cpLimFetch = cpMin;\n    _xpMin = xpBase;\n    _xpBreak = LwMin(xpBreak, xpLimLine);\n\n    // apply any indenting\n    if (0 == xpBase)\n    {\n        switch (_pap.nd)\n        {\n        case ndFirst:\n            if (_ptxtb->FMinPara(_cpMin))\n                _xpMin += _pap.dxpTab;\n            break;\n        case ndRest:\n            if (!_ptxtb->FMinPara(_cpMin))\n                _xpMin += _pap.dxpTab;\n            break;\n        case ndAll:\n            _xpMin += _pap.dxpTab;\n            break;\n        }\n    }\n    if (ndAll == _pap.nd)\n        _xpBreak = LwMin(_xpBreak, xpLimLine - _pap.dxpTab);\n\n    _chrd.cpLim = _chrd.cpLimDraw = _cpMin;\n    _chrd.xpLim = _chrd.xpLimDraw = _xpMin;\n    _chrdBop = _chrd;\n\n    // get the vertical dimensions\n    _pgnv->SetFont(_chp.onn, _chp.grfont, _chp.dypFont, tahLeft, tavBaseline);\n\n#ifndef SOC_BUG_1500 // REVIEW shonk: Win95 bug workaround\n    // If we don't draw to the _pgnv before getting the metrics, the metrics\n    // can be different than after we draw!\n    achar ch = kchSpace;\n    _pgnv->DrawRgch(&ch, 1, 0, 0);\n#endif //! REVIEW\n\n    _pgnv->GetRcFromRgch(&rc, pvNil, 0);\n    _dypAscent = LwMax(0, -rc.ypTop - _chp.dypOffset);\n    _dypDescent = LwMax(0, rc.ypBottom + _chp.dypOffset);\n\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Get the next run (within the bounds we were inited with).\n***************************************************************************/\nvoid CHR::GetNextRun(bool fMustAdvance)\n{\n    AssertThis(0);\n    ulong grfch;\n    achar ch;\n    RC rc;\n\n    // Start the next run\n    if (FIn(_chrd.cpLim, _cpMin + 1, _cpLimFetch))\n        BltPb(_rgch + _chrd.cpLim - _cpMin, _rgch, _cpLimFetch - _chrd.cpLim);\n    _cpMin = _chrd.cpLimDraw = _chrd.cpLim;\n    _xpMin = _chrd.xpLimDraw = _chrd.xpLim;\n    _xpBreak = LwMax(_xpBreak, _xpMin);\n    _chrdBop = _chrd;\n\n    if (_cpMin >= _cpLim)\n        return;\n\n    // Refill the buffer\n    if (_cpLimFetch < _cpLim && _cpLimFetch < _cpMin + kcchMaxChr)\n    {\n        long cpFetch = LwMax(_cpMin, _cpLimFetch);\n\n        _cpLimFetch = LwMin(kcchMaxChr, _cpLim - _cpMin) + _cpMin;\n        _ptxtb->FetchRgch(cpFetch, _cpLimFetch - cpFetch, _rgch + cpFetch - _cpMin);\n    }\n\n    _fMustAdvance = FPure(fMustAdvance);\n    _fBreak = fFalse;\n    _fObject = fFalse;\n\n    _pgnv->SetFont(_chp.onn, _chp.grfont, _chp.dypFont, tahLeft, tavBaseline);\n    for (;;)\n    {\n        if (_chrd.cpLim >= _cpLimFetch || (fchIgnore & (grfch = GrfchFromCh(ch = _rgch[_chrd.cpLim - _cpMin]))))\n        {\n            // we're out of characters or this is an ignoreable character -\n            // return the run\n            if (!_FFit())\n                _SetToBop();\n            else\n                _SkipIgnores();\n            break;\n        }\n\n        if (grfch & fchTab)\n        {\n            // handle the string of tabs, then return the run\n            _DoTab();\n            break;\n        }\n\n        if (grfch & fchBreak)\n        {\n            // This line must break after this character - return the run.\n            if (!_FFit())\n            {\n                _SetToBop();\n                break;\n            }\n\n            _chrd.cpLim++;\n            _SkipIgnores();\n\n            // this is a BOP\n            _chrdBop = _chrd;\n            _fBreak = fTrue;\n            break;\n        }\n\n        if (grfch & fchMayBreak)\n        {\n            _chrd.cpLimDraw = ++_chrd.cpLim;\n            if (_FFit())\n            {\n                // this is a BOP\n                _chrdBop = _chrd;\n                continue;\n            }\n\n            _fBreak = fTrue;\n            if (grfch & fchWhiteOverhang)\n            {\n                // see if everything but this character fits\n                long xp = _chrd.xpLim;\n\n                _chrd.cpLimDraw--;\n                if (_FFit())\n                {\n                    // fits with the overhang\n                    _chrd.xpLim = xp;\n                    _chrdBop = _chrd;\n                    _SkipIgnores();\n                    break;\n                }\n            }\n\n            _SetToBop();\n            break;\n        }\n\n        if (kchObject == ch)\n        {\n            // this is an object character\n            if (_chrd.cpLim > _cpMin)\n            {\n                // return the run before processing the object - objects\n                // go in their own run.\n                if (!_FFit())\n                    _SetToBop();\n                else\n                    _chrdBop = _chrd;\n                break;\n            }\n\n            // return just the object (if it really is an object)\n            if (!_ptxtb->FGetObjectRc(_chrd.cpLim, _pgnv, &_chp, &rc))\n            {\n                // treat as a normal character\n                _chrd.cpLimDraw = ++_chrd.cpLim;\n                continue;\n            }\n\n            rc.Offset(0, _chp.dypOffset);\n            Assert(!rc.FEmpty() && rc.xpRight >= 0, \"bad rectangle for the object\");\n\n            if (fMustAdvance || _xpMin + rc.xpRight <= _xpBreak)\n            {\n                _fObject = fTrue;\n                _chrd.cpLimDraw = ++_chrd.cpLim;\n                _chrd.xpLim = _chrd.xpLimDraw = _xpMin + rc.xpRight;\n                _chrdBop = _chrd;\n\n                _dypAscent = LwMax(_dypAscent, -rc.ypTop);\n                _dypDescent = LwMax(_dypDescent, rc.ypBottom);\n\n                if (_xpMin + rc.xpRight >= _xpBreak)\n                    _fBreak = fTrue;\n                _SkipIgnores();\n            }\n            break;\n        }\n\n        // normal character\n        _chrd.cpLimDraw = ++_chrd.cpLim;\n    }\n\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Test whether everything from _cpMin to _chrd.cpLimDraw fits. Assumes the\n    font is set in the _pgnv.\n***************************************************************************/\nbool CHR::_FFit(void)\n{\n    AssertThis(0);\n    RC rc;\n\n    if (_chrd.cpLimDraw == _cpMin)\n        _chrd.xpLim = _chrd.xpLimDraw = _xpMin;\n    else\n    {\n        _pgnv->GetRcFromRgch(&rc, _rgch, _chrd.cpLimDraw - _cpMin);\n        _chrd.xpLim = _chrd.xpLimDraw = _xpMin + rc.Dxp();\n    }\n\n    return _chrd.xpLimDraw <= _xpBreak;\n}\n\n/***************************************************************************\n    Set the CHR to the last break opportunity. If there wasn't one and\n    _fMustAdvance is true, gobble as many characters as we can, but at least\n    one.\n***************************************************************************/\nvoid CHR::_SetToBop(void)\n{\n    AssertThis(0);\n\n    _fBreak = fTrue;\n    if (_chrdBop.cpLim <= _cpMin && _fMustAdvance)\n    {\n        // no break opportunity seen - gobble as many characters as we can,\n        // but at least one.\n        // do a binary search for the character to break at\n        Assert(_chrd.cpLimDraw > _cpMin, \"why is _chrd.cpLimDraw == _cpMin?\");\n\n        RC rc;\n        long ivMin, ivLim, iv;\n        long dxp = _xpBreak - _xpMin;\n\n        for (ivMin = 0, ivLim = _chrd.cpLimDraw - _cpMin; ivMin < ivLim;)\n        {\n            iv = (ivMin + ivLim) / 2 + 1;\n            AssertIn(iv, ivMin + 1, ivLim + 1);\n            _pgnv->GetRcFromRgch(&rc, _rgch, iv);\n            if (rc.Dxp() <= dxp)\n                ivMin = iv;\n            else\n                ivLim = iv - 1;\n        }\n        AssertIn(ivMin, 0, _chrd.cpLimDraw - _cpMin + 1);\n        if (ivMin == 0)\n        {\n            // nothing fits - use one character\n            ivMin = 1;\n        }\n\n        // set _chrd.cpLim and _chrd.cpLimDraw, then set the _xp values\n        _chrd.cpLim = _chrd.cpLimDraw = _cpMin + ivMin;\n        _FFit();\n    }\n    else\n        _chrd = _chrdBop;\n\n    _SkipIgnores();\n}\n\n/***************************************************************************\n    Skip any trailing ignore characters. Just changes _chrd.cpLim.\n***************************************************************************/\nvoid CHR::_SkipIgnores(void)\n{\n    AssertThis(0);\n\n    while (_chrd.cpLim < _cpLimFetch && (fchIgnore & GrfchFromCh(_rgch[_chrd.cpLim - _cpMin])))\n    {\n        _chrd.cpLim++;\n    }\n\n    if (_chrd.cpLim == _cpLimFetch)\n    {\n        achar ch;\n        long cpMac = _ptxtb->CpMac();\n\n        while (_chrd.cpLim < cpMac)\n        {\n            _ptxtb->FetchRgch(_chrd.cpLim, 1, &ch);\n            if (!(fchIgnore & GrfchFromCh(ch)))\n                return;\n            _chrd.cpLim++;\n        }\n    }\n}\n\n/***************************************************************************\n    Swallow as many tabs as possible.\n***************************************************************************/\nvoid CHR::_DoTab(void)\n{\n    AssertThis(0);\n\n    if (!_FFit())\n    {\n        _SetToBop();\n        return;\n    }\n\n    while (_chrd.cpLim < _cpLimFetch && (fchTab & GrfchFromCh(_rgch[_chrd.cpLim - _cpMin])))\n    {\n        _chrd.cpLim++;\n        _chrd.xpLim = LwRoundAway(_chrd.xpLim + 1, _pap.dxpTab);\n        if (_chrd.xpLim > _xpBreak)\n        {\n            // this tab would carry us over the edge.\n            if (_chrd.cpLim == _cpMin + 1 && _fMustAdvance)\n            {\n                // the line is empty, so we have to force the tab onto the line\n                _SkipIgnores();\n                _fBreak = fTrue;\n            }\n            else\n                _SetToBop();\n            return;\n        }\n\n        // this is a BOP\n        _chrd.xpLimDraw = _chrd.xpLim;\n        _chrdBop = _chrd;\n    }\n\n    _SkipIgnores();\n}\n\n/***************************************************************************\n    Constructor for the text document display GOB.\n***************************************************************************/\nTXTG::TXTG(PTXTB ptxtb, PGCB pgcb) : TXTG_PAR(ptxtb, pgcb)\n{\n    AssertBaseThis(0);\n    _ptxtb = ptxtb;\n    _fMark = (kginMark == pgcb->_gin || kginDefault == pgcb->_gin && kginMark == GOB::GinDefault());\n    _pgnv = pvNil;\n}\n\n/***************************************************************************\n    Destructor for TXTG.\n***************************************************************************/\nTXTG::~TXTG(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pgllin);\n    ReleasePpo(&_pgnv);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a TXTG.\n***************************************************************************/\nvoid TXTG::AssertValid(ulong grf)\n{\n    TXTG_PAR::AssertValid(0);\n    AssertPo(_pgllin, 0);\n    AssertIn(_ilinInval, 0, _pgllin->IvMac() + 1);\n    AssertPo(_pgnv, 0);\n    AssertNilOrPo(_ptrul, 0);\n    // REVIEW shonk: TXTG::AssertValid: fill out.\n}\n\n/***************************************************************************\n    Mark memory for the TXTG.\n***************************************************************************/\nvoid TXTG::MarkMem(void)\n{\n    AssertValid(0);\n    TXTG_PAR::MarkMem();\n    MarkMemObj(_pgllin);\n    MarkMemObj(_pgnv);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Initialize the text document display gob.\n***************************************************************************/\nbool TXTG::_FInit(void)\n{\n    AssertBaseThis(0);\n    PGPT pgpt;\n\n    if (!TXTG_PAR::_FInit())\n        return fFalse;\n    if (pvNil == (_pgllin = GL::PglNew(size(LIN))))\n        return fFalse;\n\n    // Allocate the GNV for formatting. Use an offscreen one iff _fMark\n    // is set.\n    if (_fMark)\n    {\n        RC rc(0, 0, 1, 1);\n\n        if (pvNil == (pgpt = GPT::PgptNewOffscreen(&rc, 8)))\n            return fFalse;\n    }\n    else\n    {\n        pgpt = Pgpt();\n        pgpt->AddRef();\n    }\n\n    _pgnv = NewObj GNV(this, pgpt);\n    ReleasePpo(&pgpt);\n\n    if (pvNil == _pgnv)\n        return fFalse;\n\n    _pgllin->SetMinGrow(20);\n    _ilinDisp = 0;\n    _cpDisp = 0;\n    _dypDisp = 0;\n    _ilinInval = 0;\n    if (_DxpDoc() > 0)\n    {\n        long cpMac = _ptxtb->CpMac();\n        _Reformat(0, cpMac, cpMac);\n    }\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Deactivate the TXTG - turn off the selection.\n***************************************************************************/\nvoid TXTG::_Activate(bool fActive)\n{\n    AssertThis(0);\n\n    TXTG_PAR::_Activate(fActive);\n    if (!fActive)\n        _SwitchSel(fFalse, kginSysInval);\n}\n\n/***************************************************************************\n    Get the LIN for the given ilin.  If ilin is past the end of _pgllin,\n    _CalcLine is called repeatedly and new lines are added to _pgllin.\n    The actual index of the returned line is put in *pilinActual (if not nil).\n***************************************************************************/\nvoid TXTG::_FetchLin(long ilin, LIN *plin, long *pilinActual)\n{\n    AssertThis(0);\n    AssertIn(ilin, 0, kcbMax);\n    AssertVarMem(plin);\n    AssertNilOrVarMem(pilinActual);\n\n    long cpLim, cpMac;\n    long dypTot;\n    LIN *qlin;\n    bool fAdd;\n    long ilinLim = LwMin(_pgllin->IvMac(), ilin + 1);\n\n    if (pvNil != pilinActual)\n        *pilinActual = ilin;\n\n    if (_ilinInval < ilinLim)\n    {\n        qlin = (LIN *)_pgllin->QvGet(_ilinInval);\n        if (_ilinInval == 0)\n        {\n            cpLim = 0;\n            dypTot = 0;\n        }\n        else\n        {\n            qlin--;\n            cpLim = qlin->cpMin + qlin->ccp;\n            dypTot = qlin->dypTot + qlin->dyp;\n            qlin++;\n        }\n\n        // adjust LINs up to ilinLim\n        for (; _ilinInval < ilinLim; _ilinInval++, qlin++)\n        {\n            qlin->cpMin = cpLim;\n            qlin->dypTot = dypTot;\n            cpLim += qlin->ccp;\n            dypTot += qlin->dyp;\n        }\n    }\n    Assert(_ilinInval >= ilinLim, 0);\n\n    if (ilin < _ilinInval)\n    {\n        *plin = *(LIN *)_pgllin->QvGet(ilin);\n        return;\n    }\n\n    Assert(ilinLim == _pgllin->IvMac(), 0);\n    if (ilinLim == 0)\n    {\n        cpLim = 0;\n        dypTot = 0;\n        ClearPb(plin, size(LIN));\n    }\n    else\n    {\n        // get the LIN in case we don't actuall calc any lines below\n        *plin = *(LIN *)_pgllin->QvGet(ilinLim - 1);\n        cpLim = plin->cpMin + plin->ccp;\n        dypTot = plin->dypTot + plin->dyp;\n    }\n\n    cpMac = _ptxtb->CpMac();\n    fAdd = fTrue;\n    for (; ilinLim <= ilin && cpLim < cpMac; ilinLim++)\n    {\n        _CalcLine(cpLim, dypTot, plin);\n        fAdd = fAdd && _pgllin->FAdd(plin);\n        cpLim += plin->ccp;\n        dypTot += plin->dyp;\n    }\n    _ilinInval = _pgllin->IvMac();\n    if (pvNil != pilinActual)\n        *pilinActual = ilinLim - 1;\n}\n\n/***************************************************************************\n    Find the LIN that contains the given cpFind. pilin and/or plin can be nil.\n    If fCalcLines is false, we won't calculate any new lines and the\n    returned LIN may be before cpFind.\n***************************************************************************/\nvoid TXTG::_FindCp(long cpFind, LIN *plin, long *pilin, bool fCalcLines)\n{\n    AssertThis(0);\n    AssertIn(cpFind, 0, _ptxtb->CpMac());\n    AssertNilOrVarMem(pilin);\n    AssertNilOrVarMem(plin);\n\n    LIN *qlin;\n    LIN lin;\n    long dypTot;\n    long cpLim;\n    long ilinMac;\n    bool fAdd;\n\n    // get the starting cp and dypTot values for _ilinInval\n    qlin = (LIN *)_pgllin->QvGet(_ilinInval);\n    if (_ilinInval == 0)\n    {\n        cpLim = 0;\n        dypTot = 0;\n    }\n    else\n    {\n        qlin--;\n        cpLim = qlin->cpMin + qlin->ccp;\n        dypTot = qlin->dypTot + qlin->dyp;\n        qlin++;\n    }\n\n    if (cpFind < cpLim)\n    {\n        // do a binary search to find the LIN containing cpFind\n        long ivMin, ivLim, iv;\n\n        for (ivMin = 0, ivLim = _ilinInval; ivMin < ivLim;)\n        {\n            iv = (ivMin + ivLim) / 2;\n            qlin = (LIN *)_pgllin->QvGet(iv);\n            if (cpFind < qlin->cpMin)\n                ivLim = iv;\n            else if (cpFind >= qlin->cpMin + qlin->ccp)\n                ivMin = iv + 1;\n            else\n            {\n                if (pvNil != pilin)\n                    *pilin = iv;\n                if (pvNil != plin)\n                    *plin = *qlin;\n                return;\n            }\n        }\n\n        Bug(\"Invalid LINs\");\n        cpLim = 0;\n        dypTot = 0;\n        _ilinInval = 0;\n    }\n\n    Assert(cpFind >= cpLim, \"why isn't cpFind >= cpLim?\");\n    if (_ilinInval < (ilinMac = _pgllin->IvMac()))\n    {\n        // adjust LINs up to cpFind\n        qlin = (LIN *)_pgllin->QvGet(_ilinInval);\n        for (; _ilinInval < ilinMac && cpFind >= cpLim; _ilinInval++, qlin++)\n        {\n            qlin->cpMin = cpLim;\n            qlin->dypTot = dypTot;\n            cpLim += qlin->ccp;\n            dypTot += qlin->dyp;\n        }\n\n        if (cpFind < cpLim)\n        {\n            AssertIn(cpFind, qlin[-1].cpMin, cpLim);\n            if (pvNil != pilin)\n                *pilin = _ilinInval - 1;\n            if (pvNil != plin)\n                *plin = qlin[-1];\n            return;\n        }\n    }\n    Assert(_ilinInval == ilinMac, \"why isn't _ilinInval == ilinMac?\");\n    Assert(cpFind >= cpLim, \"why isn't cpFind >= cpLim?\");\n\n    if (!fCalcLines)\n    {\n        if (pvNil != pilin)\n            *pilin = ilinMac - (ilinMac > 0);\n        if (pvNil != plin)\n        {\n            if (ilinMac > 0)\n                *plin = *(LIN *)_pgllin->QvGet(ilinMac - 1);\n            else\n                ClearPb(plin, size(LIN));\n        }\n        return;\n    }\n\n    // have to calculate some lines\n    for (fAdd = fTrue; cpFind >= cpLim; ilinMac++)\n    {\n        _CalcLine(cpLim, dypTot, &lin);\n        fAdd = fAdd && _pgllin->FAdd(&lin);\n        cpLim += lin.ccp;\n        dypTot += lin.dyp;\n    }\n    _ilinInval = _pgllin->IvMac();\n\n    if (pvNil != pilin)\n        *pilin = ilinMac - 1;\n    if (pvNil != plin)\n        *plin = lin;\n}\n\n/***************************************************************************\n    Find the LIN that contains the given dypFind value (measured from the top\n    of the document). pilin and/or plin can be nil.\n    If fCalcLines is false, we won't calculate any new lines and the\n    returned LIN may be before dypFind.\n***************************************************************************/\nvoid TXTG::_FindDyp(long dypFind, LIN *plin, long *pilin, bool fCalcLines)\n{\n    AssertThis(0);\n    AssertIn(dypFind, 0, kcbMax);\n    AssertNilOrVarMem(pilin);\n    AssertNilOrVarMem(plin);\n\n    LIN *qlin;\n    LIN lin;\n    long dypTot;\n    long cpLim, cpMac;\n    long ilinMac;\n    bool fAdd;\n\n    // get the starting cp and dypTot values for _ilinInval\n    qlin = (LIN *)_pgllin->QvGet(_ilinInval);\n    if (_ilinInval == 0)\n    {\n        cpLim = 0;\n        dypTot = 0;\n    }\n    else\n    {\n        qlin--;\n        cpLim = qlin->cpMin + qlin->ccp;\n        dypTot = qlin->dypTot + qlin->dyp;\n        qlin++;\n    }\n\n    if (dypFind < dypTot)\n    {\n        // do a binary search to find the LIN containing dypFind\n        long ivMin, ivLim, iv;\n\n        for (ivMin = 0, ivLim = _ilinInval; ivMin < ivLim;)\n        {\n            iv = (ivMin + ivLim) / 2;\n            qlin = (LIN *)_pgllin->QvGet(iv);\n            if (dypFind < qlin->dypTot)\n                ivLim = iv;\n            else if (dypFind >= qlin->dypTot + qlin->dyp)\n                ivMin = iv + 1;\n            else\n            {\n                if (pvNil != pilin)\n                    *pilin = iv;\n                if (pvNil != plin)\n                    *plin = *qlin;\n                return;\n            }\n        }\n\n        Bug(\"Invalid LINs\");\n        cpLim = 0;\n        dypTot = 0;\n        _ilinInval = 0;\n    }\n\n    Assert(dypFind >= dypTot, \"why isn't dypFind >= dypTot?\");\n    if (_ilinInval < (ilinMac = _pgllin->IvMac()))\n    {\n        // adjust LINs up to cp\n        qlin = (LIN *)_pgllin->QvGet(_ilinInval);\n        for (; _ilinInval < ilinMac && dypFind >= dypTot; _ilinInval++, qlin++)\n        {\n            qlin->cpMin = cpLim;\n            qlin->dypTot = dypTot;\n            cpLim += qlin->ccp;\n            dypTot += qlin->dyp;\n        }\n\n        if (dypFind < dypTot)\n        {\n            AssertIn(dypFind, qlin[-1].dypTot, dypTot);\n            if (pvNil != pilin)\n                *pilin = _ilinInval - 1;\n            if (pvNil != plin)\n                *plin = qlin[-1];\n            return;\n        }\n    }\n    Assert(_ilinInval == ilinMac, \"why isn't _ilinInval == ilinMac?\");\n    Assert(dypFind >= dypTot, \"why isn't dypFind >= dypTot?\");\n\n    if (!fCalcLines)\n    {\n        if (pvNil != pilin)\n            *pilin = ilinMac - (ilinMac > 0);\n        if (pvNil != plin)\n        {\n            if (ilinMac > 0)\n                *plin = *(LIN *)_pgllin->QvGet(ilinMac - 1);\n            else\n                ClearPb(plin, size(LIN));\n        }\n        return;\n    }\n\n    cpMac = _ptxtb->CpMac();\n    if (cpLim >= cpMac)\n    {\n        if (pvNil != plin)\n        {\n            // Get a valid lin.\n            if (ilinMac > 0)\n                _pgllin->Get(ilinMac - 1, &lin);\n            else\n                ClearPb(&lin, size(LIN));\n        }\n        _ilinInval = ilinMac;\n    }\n    else\n    {\n        Assert(dypFind >= dypTot && cpLim < cpMac, 0);\n        for (fAdd = fTrue; dypFind >= dypTot && cpLim < cpMac; ilinMac++)\n        {\n            _CalcLine(cpLim, dypTot, &lin);\n            fAdd = fAdd && _pgllin->FAdd(&lin);\n            cpLim += lin.ccp;\n            dypTot += lin.dyp;\n        }\n        _ilinInval = _pgllin->IvMac();\n    }\n\n    if (pvNil != pilin)\n        *pilin = ilinMac - 1;\n    if (pvNil != plin)\n        *plin = lin;\n}\n\n/***************************************************************************\n    Recalculate the _pgllin after an edit.  Sets *pyp, *pdypIns, *pdypDel\n    to indicate the vertical display space that was affected.\n***************************************************************************/\nvoid TXTG::_Reformat(long cp, long ccpIns, long ccpDel, long *pyp, long *pdypIns, long *pdypDel)\n{\n    AssertThis(0);\n    AssertIn(cp, 0, _ptxtb->CpMac());\n    AssertIn(ccpIns, 0, _ptxtb->CpMac() - cp + 1);\n    AssertIn(ccpDel, 0, kcbMax);\n    AssertNilOrVarMem(pyp);\n    AssertNilOrVarMem(pdypIns);\n    AssertNilOrVarMem(pdypDel);\n\n    long ypDel, dypDel, dypIns, dypCur;\n    long ccp, cpCur, cpNext, cpMac;\n    long ilin, ilinOld;\n    LIN linOld, lin, linT;\n\n    _fClear = _ptxtb->AcrBack() == kacrClear;\n    _fXpValid = fFalse;\n    cpMac = _ptxtb->CpMac();\n\n    // Find the LIN that contains cp (if there is one) - don't calc any lines\n    // to get the LIN.\n    _FindCp(cp, &linOld, &ilinOld, fFalse);\n\n    if (cp >= linOld.cpMin + linOld.ccp)\n    {\n        // the LIN for this cp was not cached - recalc from the beginning of\n        // the last lin.\n        ccpIns += cp - linOld.cpMin;\n        ccpDel += cp - linOld.cpMin;\n        cp = linOld.cpMin;\n    }\n    AssertIn(cp, linOld.cpMin, linOld.cpMin + linOld.ccp + (linOld.ccp == 0));\n\n    // make sure the previous line is formatted correctly\n    if (ilinOld > 0 && !_ptxtb->FMinPara(linOld.cpMin))\n    {\n        _FetchLin(ilinOld - 1, &lin);\n        _CalcLine(lin.cpMin, lin.dypTot, &linT);\n        if (linT.ccp != lin.ccp)\n        {\n            // edit affected previous line - so start\n            // formatting from there\n            ilinOld--;\n            linOld = lin;\n        }\n    }\n    AssertIn(cp, linOld.cpMin, cpMac);\n\n    // remove deleted lines\n    Assert(ilinOld <= _ilinInval, 0);\n    _ilinInval = ilinOld;\n    for (ccp = dypDel = 0; linOld.cpMin + ccp <= cp + ccpDel && ilinOld < _pgllin->IvMac();)\n    {\n        _pgllin->Get(ilinOld, &lin);\n        dypDel += lin.dyp;\n        ccp += lin.ccp;\n        _pgllin->Delete(ilinOld);\n    }\n\n    // insert the new lines\n    cpCur = linOld.cpMin;\n    dypCur = linOld.dypTot;\n\n    // cpNext is the cp of the next (possibly stale) LIN in _pgllin\n    if (ilinOld < _pgllin->IvMac())\n    {\n        cpNext = linOld.cpMin + ccp - ccpDel + ccpIns;\n        AssertIn(cpNext, linOld.cpMin, cpMac + 1);\n    }\n    else\n        cpNext = cpMac;\n\n    AssertIn(ilinOld, 0, _pgllin->IvMac() + 1);\n    dypIns = 0;\n    for (ilin = ilinOld;;)\n    {\n        AssertIn(cpCur, linOld.cpMin, cpMac + 1);\n        AssertIn(dypCur, linOld.dypTot, kcbMax);\n        while (cpNext < cpCur && ilin < _pgllin->IvMac())\n        {\n            _pgllin->Get(ilin, &lin);\n            _pgllin->Delete(ilin);\n            cpNext += lin.ccp;\n            dypDel += lin.dyp;\n        }\n        AssertIn(cpNext, cpCur, cpMac + 1);\n\n        if (ilin >= _pgllin->IvMac())\n        {\n            // no more LINs that might be preservable, so we may as well\n            // stop trying.\n            ilin = _pgllin->IvMac();\n            if (cpNext < cpMac)\n                dypDel = kswMax;\n            if (cpCur < cpMac)\n                dypIns = kswMax;\n            break;\n        }\n\n        AssertIn(ilin, 0, _pgllin->IvMac());\n        if (cpCur == cpNext)\n        {\n            // everything from here on should be correct - we still need to\n            // set _ilinDisp\n            break;\n        }\n\n        _CalcLine(cpCur, dypCur, &lin);\n        if (!_pgllin->FInsert(ilin, &lin))\n        {\n            AssertIn(ilin, 0, _pgllin->IvMac());\n            _pgllin->Get(ilin, &linT);\n            cpNext += linT.ccp;\n            dypDel += linT.dyp;\n            _pgllin->Put(ilin, &lin);\n        }\n\n        dypIns += lin.dyp;\n        cpCur += lin.ccp;\n        dypCur += lin.dyp;\n        ilin++;\n    }\n    _ilinInval = ilin;\n\n    if (_cpDisp <= linOld.cpMin)\n        ypDel = linOld.dypTot - _dypDisp;\n    else\n    {\n        if (_cpDisp > cp)\n        {\n            if (_cpDisp >= cp + ccpDel)\n                _cpDisp += ccpIns - ccpDel;\n            else if (_cpDisp >= cp + ccpIns)\n                _cpDisp = cp + ccpIns;\n        }\n        ypDel = 0;\n        _FindCp(_cpDisp, &lin, &_ilinDisp);\n        _cpDisp = lin.cpMin;\n        dypDel = LwMax(0, linOld.dypTot + dypDel - _dypDisp);\n        _dypDisp = lin.dypTot;\n        dypIns = LwMax(0, linOld.dypTot + dypIns - _dypDisp);\n    }\n\n    if (pvNil != pyp)\n        *pyp = ypDel;\n    if (pvNil != pdypIns)\n        *pdypIns = dypIns;\n    if (pvNil != pdypDel)\n        *pdypDel = dypDel;\n}\n\n/***************************************************************************\n    Calculate the end of the line, the left position of the line, the height\n    of the line and the ascent of the line.\n***************************************************************************/\nvoid TXTG::_CalcLine(long cpMin, long dypBase, LIN *plin)\n{\n    AssertThis(0);\n    AssertIn(cpMin, 0, _ptxtb->CpMac());\n    AssertVarMem(plin);\n\n    struct RUN\n    {\n        long cpLim;\n        long xpLim;\n        long dypAscent;\n        long dypDescent;\n    };\n\n    long dxpDoc;\n    PAP pap;\n    CHP chp;\n    long cpLimPap, cpLimChp;\n    CHR chr;\n    CHRD chrd, chrdBop;\n    RUN run, runSure, runT;\n\n    dxpDoc = _DxpDoc();\n    _FetchPap(cpMin, &pap, pvNil, &cpLimPap);\n\n    cpLimChp = cpMin;\n    run.cpLim = cpMin;\n    run.xpLim = 0;\n    run.dypAscent = run.dypDescent = 0;\n    runSure = run;\n\n    for (;;)\n    {\n        // make sure the chp is valid\n        if (run.cpLim >= cpLimChp)\n        {\n            _FetchChp(run.cpLim, &chp, pvNil, &cpLimChp);\n            cpLimChp = LwMin(cpLimChp, cpLimPap);\n            if (cpLimChp <= run.cpLim)\n            {\n                Bug(\"why is run.cpLim >= cpLimChp?\");\n                break;\n            }\n\n            chr.Init(&chp, &pap, _ptxtb, _pgnv, run.cpLim, cpLimChp, run.xpLim, dxpDoc, dxpDoc);\n        }\n\n        chr.GetNextRun(runSure.cpLim == cpMin);\n        chr.GetChrd(&chrd, &chrdBop);\n\n        if (chrd.cpLim == run.cpLim)\n        {\n            // didn't move forward - use runSure\n            Assert(runSure.cpLim > cpMin, \"why don't we have a BOP?\");\n            run = runSure;\n            break;\n        }\n\n        runT = run;\n        run.cpLim = chrd.cpLim;\n        run.xpLim = chrd.xpLimDraw;\n        run.dypAscent = LwMax(run.dypAscent, chr.DypAscent());\n        run.dypDescent = LwMax(run.dypDescent, chr.DypDescent());\n\n        if (chr.FBreak())\n        {\n            // we know that this is the end of the line - use run or runT\n            if (run.xpLim > chr.XpBreak() && runT.cpLim > cpMin)\n                run = runT;\n            break;\n        }\n\n        if (chrdBop.cpLim > runT.cpLim)\n        {\n            // put chrdBop info into runSure\n            runSure.cpLim = chrdBop.cpLim;\n            runSure.xpLim = chrdBop.xpLimDraw;\n            runSure.dypAscent = LwMax(runSure.dypAscent, chr.DypAscent());\n            runSure.dypDescent = LwMax(runSure.dypDescent, chr.DypDescent());\n        }\n    }\n\n    Assert(run.dypAscent > 0 || run.dypDescent > 0, \"bad run\");\n    Assert(run.cpLim > cpMin, \"why is cch zero?\");\n\n    switch (pap.jc)\n    {\n    default:\n        plin->xpLeft = 0;\n        break;\n    case jcRight:\n        plin->xpLeft = (short)(dxpDoc - run.xpLim);\n        break;\n    case jcCenter:\n        plin->xpLeft = (dxpDoc - run.xpLim) / 2;\n        break;\n    }\n\n    plin->ccp = (short)(run.cpLim - cpMin);\n    plin->dyp = (short)(run.dypAscent + run.dypDescent);\n    if (pap.numLine != kdenLine)\n        plin->dyp = (short)LwMulDiv(plin->dyp, pap.numLine, kdenLine);\n    plin->dyp += pap.dypExtraLine;\n    if (_ptxtb->FMinPara(run.cpLim) || run.cpLim == _ptxtb->CpMac())\n    {\n        if (pap.numAfter != kdenAfter)\n            plin->dyp = (short)LwMulDiv(plin->dyp, pap.numAfter, kdenAfter);\n        plin->dyp += pap.dypExtraAfter;\n    }\n    if (plin->dyp <= 0)\n        plin->dyp = 1;\n    plin->dypAscent = (short)run.dypAscent;\n    if (plin->dypAscent <= 0)\n        plin->dypAscent = 1;\n    plin->cpMin = cpMin;\n    plin->dypTot = dypBase;\n}\n\n/***************************************************************************\n    Get the cp that the point is in.  If fClosest is true, this finds the\n    cp boundary that the point is closest to (for traditional selection).\n    If fClosest is false, it finds the character that the point is over.\n***************************************************************************/\nbool TXTG::_FGetCpFromPt(long xp, long yp, long *pcp, bool fClosest)\n{\n    AssertThis(0);\n    AssertVarMem(pcp);\n\n    LIN lin;\n    RC rc;\n\n    GetRc(&rc, cooLocal);\n    if (!FIn(yp, 0, rc.ypBottom))\n        return fFalse;\n\n    _FindDyp(_dypDisp + yp, &lin);\n    if (_dypDisp + yp >= lin.dypTot + lin.dyp)\n    {\n        *pcp = _ptxtb->CpMac() - 1;\n        return fTrue;\n    }\n\n    // we've found the line, now get the cp on the line\n    return _FGetCpFromXp(xp, &lin, pcp, fClosest);\n}\n\n/***************************************************************************\n    Get the cp on the line given by *plin that the xp is in.  If fClosest\n    is true, this finds the cp boundary that the point is closest to (for\n    traditional selection).  If fClosest is false, it finds the character\n    that the xp is over. This only returns false if fClosest is false and\n    the xp is before the beginning of the line.\n***************************************************************************/\nbool TXTG::_FGetCpFromXp(long xp, LIN *plin, long *pcp, bool fClosest)\n{\n    AssertThis(0);\n    AssertVarMem(plin);\n    AssertIn(plin->cpMin, 0, _ptxtb->CpMac());\n    AssertVarMem(plin);\n    AssertIn(plin->ccp, 1, _ptxtb->CpMac() + 1 - plin->cpMin);\n    AssertVarMem(pcp);\n\n    CHP chp;\n    PAP pap;\n    CHR chr;\n    long cpCur, cpLimChp, cpLim;\n    long xpCur, dxpDoc;\n    CHRD chrd;\n\n    xp -= plin->xpLeft + kdxpIndentTxtg - _scvHorz;\n    if (xp <= 0)\n    {\n        *pcp = plin->cpMin;\n        return FPure(fClosest);\n    }\n\n    if (xp >= (dxpDoc = _DxpDoc()))\n    {\n        *pcp = _ptxtb->CpPrev(plin->cpMin + plin->ccp);\n        return fTrue;\n    }\n\n    cpLimChp = cpCur = plin->cpMin;\n    cpLim = cpCur + plin->ccp;\n    xpCur = 0;\n    _FetchPap(cpCur, &pap);\n\n    for (;;)\n    {\n        // make sure the chp is valid\n        if (cpCur >= cpLimChp)\n        {\n            if (cpCur >= cpLim)\n            {\n                // everything fit\n                *pcp = LwMax(plin->cpMin, _ptxtb->CpPrev(cpLim));\n                return fTrue;\n            }\n\n            _FetchChp(cpCur, &chp, pvNil, &cpLimChp);\n            cpLimChp = LwMin(cpLimChp, cpLim);\n            Assert(cpLimChp > cpCur, \"why is cpCur >= cpLimChp?\");\n            chr.Init(&chp, &pap, _ptxtb, _pgnv, cpCur, cpLimChp, xpCur, dxpDoc, xp);\n        }\n\n        chr.GetNextRun(fTrue);\n        chr.GetChrd(&chrd);\n\n        if (chr.FBreak() && (chrd.xpLim >= chr.XpBreak() || chrd.cpLim >= cpLim))\n        {\n            long cpPrev = _ptxtb->CpPrev(chrd.cpLim);\n\n            if (!fClosest || chrd.cpLim >= cpLim)\n                goto LPrev;\n\n            if (cpPrev > cpCur)\n            {\n                CHRD chrdT;\n\n                // get the length from cpCur to cpPrev\n                chr.Init(&chp, &pap, _ptxtb, _pgnv, cpCur, cpPrev, xpCur, dxpDoc, xp);\n                chr.GetNextRun(fTrue);\n                chr.GetChrd(&chrdT);\n                cpCur = chrdT.cpLim;\n                xpCur = chrdT.xpLim;\n            }\n\n            Assert(xp >= xpCur && chrd.xpLim >= xp, \"what?\");\n            if (xp - xpCur > chrd.xpLim - xp)\n            {\n                *pcp = chrd.cpLim;\n                return fTrue;\n            }\n        LPrev:\n            *pcp = LwMax(plin->cpMin, cpPrev);\n            return fTrue;\n        }\n        xpCur = chrd.xpLim;\n        cpCur = chrd.cpLim;\n    }\n}\n\n/***************************************************************************\n    Get the vertical bounds of the line containing cp and the horizontal\n    position of the cp on the line.  If fView is true, the values are in\n    view coordinates. If fView is false, the values are in logical values\n    (independent of the current scrolling of the view).\n***************************************************************************/\nvoid TXTG::_GetXpYpFromCp(long cp, long *pypMin, long *pypLim, long *pxp, long *pypBaseLine, bool fView)\n{\n    AssertThis(0);\n    AssertIn(cp, 0, _ptxtb->CpMac());\n    AssertNilOrVarMem(pypMin);\n    AssertNilOrVarMem(pypLim);\n    AssertNilOrVarMem(pxp);\n    AssertNilOrVarMem(pypBaseLine);\n\n    LIN lin;\n    long xp;\n\n    _FindCp(cp, &lin);\n    xp = lin.xpLeft;\n    if (fView)\n    {\n        lin.dypTot -= _dypDisp;\n        xp -= _scvHorz;\n    }\n\n    if (pvNil != pypMin)\n        *pypMin = lin.dypTot;\n    if (pvNil != pypLim)\n        *pypLim = lin.dypTot + lin.dyp;\n    if (pvNil != pxp)\n        *pxp = xp + _DxpFromCp(lin.cpMin, cp);\n    if (pvNil != pypBaseLine)\n        *pypBaseLine = lin.dypTot + lin.dypAscent;\n}\n\n/***************************************************************************\n    Find the xp location of the given cp. Assumes that cpLine is the start\n    of the line containing cp. This includes a buffer on the left of\n    kdxpIndentTxtg, but doesn't include centering or right justification\n    correction.\n***************************************************************************/\nlong TXTG::_DxpFromCp(long cpLine, long cp)\n{\n    AssertThis(0);\n    AssertIn(cpLine, 0, _ptxtb->CpMac());\n    AssertIn(cp, cpLine, _ptxtb->CpMac());\n\n    CHP chp;\n    PAP pap;\n    CHR chr;\n    long cpCur, cpLimChp, cpLim;\n    long xpCur;\n    CHRD chrd;\n\n    cpLimChp = cpCur = cpLine;\n    cpLim = cp + (cp == cpLine);\n    xpCur = 0;\n    _FetchPap(cpCur, &pap);\n\n    for (;;)\n    {\n        // make sure the chp is valid\n        if (cpCur >= cpLimChp)\n        {\n            _FetchChp(cpCur, &chp, pvNil, &cpLimChp);\n            cpLimChp = LwMin(cpLimChp, cpLim);\n            Assert(cpLimChp > cpCur, \"why is cpCur >= cpLimChp?\");\n            chr.Init(&chp, &pap, _ptxtb, _pgnv, cpCur, cpLimChp, xpCur, kdxpMax, kdxpMax);\n        }\n\n        chr.GetNextRun();\n        chr.GetChrd(&chrd);\n\n        if (chrd.cpLim >= cp || chr.FBreak())\n        {\n            if (cp == cpLine)\n                return chr.XpMin() + kdxpIndentTxtg;\n            else\n                return chrd.xpLim + kdxpIndentTxtg;\n        }\n        cpCur = chrd.cpLim;\n        xpCur = chrd.xpLim;\n    }\n}\n\n/***************************************************************************\n    Replaces the characters between cp1 and cp2 with the given ones.\n***************************************************************************/\nbool TXTG::FReplace(achar *prgch, long cch, long cp1, long cp2)\n{\n    AssertThis(0);\n    AssertIn(cch, 0, kcbMax);\n    AssertPvCb(prgch, cch);\n    AssertIn(cp1, 0, _ptxtb->CpMac());\n    AssertIn(cp2, 0, _ptxtb->CpMac());\n\n    HideSel();\n    SortLw(&cp1, &cp2);\n    if (!_ptxtb->FReplaceRgch(prgch, cch, cp1, cp2 - cp1))\n        return fFalse;\n\n    cp1 += cch;\n    SetSel(cp1, cp1);\n    ShowSel();\n    return fTrue;\n}\n\n/***************************************************************************\n    Invalidate the display from cp.  If we're the active TXTG, also redraw.\n***************************************************************************/\nvoid TXTG::InvalCp(long cp, long ccpIns, long ccpDel)\n{\n    AssertThis(0);\n    AssertIn(cp, 0, _ptxtb->CpMac() + 1);\n    AssertIn(ccpIns, 0, _ptxtb->CpMac() + 1 - cp);\n    AssertIn(ccpDel, 0, kcbMax);\n    Assert(!_fSelOn, \"selection is on in InvalCp!\");\n    long cpAnchor, cpOther;\n\n    // adjust the sel\n    cpAnchor = _cpAnchor;\n    cpOther = _cpOther;\n    FAdjustIv(&cpAnchor, cp, ccpIns, ccpDel);\n    FAdjustIv(&cpOther, cp, ccpIns, ccpDel);\n    if (cpAnchor != _cpAnchor || cpOther != _cpOther)\n        SetSel(cpAnchor, cpOther, ginNil);\n\n    _ReformatAndDraw(cp, ccpIns, ccpDel);\n\n    if (pvNil != _ptrul)\n    {\n        PAP pap;\n\n        _FetchPap(LwMin(_cpAnchor, _cpOther), &pap);\n        _ptrul->SetDxpTab(pap.dxpTab);\n        _ptrul->SetDxpDoc(_DxpDoc());\n    }\n}\n\n/***************************************************************************\n    Reformat the TXTG and update the display.  If this TXTG is not the\n    active one, the display is invalidated instead of updated.\n***************************************************************************/\nvoid TXTG::_ReformatAndDraw(long cp, long ccpIns, long ccpDel)\n{\n    RC rcLoc, rc;\n    long yp, dypIns, dypDel;\n    RC rcUpdate(0, 0, 0, 0);\n\n    // reformat\n    _Reformat(cp, ccpIns, ccpDel, &yp, &dypIns, &dypDel);\n\n    // determine the dirty rectangles and if we're active, update them\n    GetRc(&rcLoc, cooLocal);\n    if (!_fActive)\n    {\n        rc = rcLoc;\n        rc.ypTop = yp;\n        if (dypIns == dypDel)\n            rc.ypBottom = yp + dypIns;\n        InvalRc(&rc);\n        return;\n    }\n\n    rc = rcLoc;\n    rc.ypTop = yp;\n    rc.ypBottom = yp + dypIns;\n    if (dypIns != dypDel)\n    {\n        // Have some bits to blt vertically. If the background isn't clear,\n        // but _fMark is set, still do the scroll, since _fMark is intended\n        // to avoid flashing (allowing offscreen drawing) and scrolling doesn't\n        // flash anyway.\n        if (_fClear)\n            rc.ypBottom = rcLoc.ypBottom;\n        else\n        {\n            rc = rcLoc;\n            rc.ypTop = LwMax(rc.ypTop, yp + LwMin(dypIns, dypDel));\n            Scroll(&rc, 0, dypIns - dypDel, _fMark ? kginMark : kginDraw);\n            rc.ypBottom = rc.ypTop;\n            rc.ypTop = yp;\n        }\n    }\n\n    if (!rc.FEmpty())\n        InvalRc(&rc, _fClear || _fMark ? kginMark : kginDraw);\n\n    _fXpValid = fFalse;\n}\n\n/***************************************************************************\n    Perform a scroll according to scaHorz and scaVert.\n***************************************************************************/\nvoid TXTG::_Scroll(long scaHorz, long scaVert, long scvHorz, long scvVert)\n{\n    RC rc;\n    long dxp, dyp;\n\n    GetRc(&rc, cooLocal);\n    dxp = 0;\n    switch (scaHorz)\n    {\n    case scaPageUp:\n        dxp = -LwMulDiv(rc.Dxp(), 9, 10);\n        goto LHorz;\n    case scaPageDown:\n        dxp = LwMulDiv(rc.Dxp(), 9, 10);\n        goto LHorz;\n    case scaLineUp:\n        dxp = -rc.Dxp() / 10;\n        goto LHorz;\n    case scaLineDown:\n        dxp = rc.Dxp() / 10;\n        goto LHorz;\n    case scaToVal:\n        dxp = scvHorz - _scvHorz;\n    LHorz:\n        dxp = LwBound(_scvHorz + dxp, 0, _ScvMax(fFalse) + 1) - _scvHorz;\n        _scvHorz += dxp;\n\n        if (pvNil != _ptrul)\n            _ptrul->SetXpLeft(kdxpIndentTxtg - _scvHorz);\n        break;\n    }\n\n    dyp = 0;\n    if (scaVert != scaNil)\n    {\n        long cpT;\n        LIN lin, linDisp;\n        long ilin;\n        RC rc;\n\n        switch (scaVert)\n        {\n        case scaToVal:\n            cpT = LwBound(scvVert, 0, _ptxtb->CpMac());\n            _FindCp(cpT, &lin, &ilin);\n            dyp = lin.dypTot - _dypDisp;\n            _ilinDisp = ilin;\n            _cpDisp = lin.cpMin;\n            _dypDisp = lin.dypTot;\n            break;\n\n        case scaPageDown:\n            // scroll down a page\n            GetRc(&rc, cooLocal);\n            _FindDyp(rc.Dyp() + _dypDisp, &lin, &ilin);\n\n            if (lin.cpMin <= _cpDisp)\n            {\n                // we didn't go anywhere so force going down a line\n                _FetchLin(_ilinDisp + 1, &lin, &ilin);\n            }\n            else if (lin.dypTot + lin.dyp > _dypDisp + rc.Dyp() && ilin > _ilinDisp + 1)\n            {\n                // the line crosses the bottom of the ddg so back up one\n                Assert(ilin > 0, 0);\n                _FetchLin(ilin - 1, &lin, &ilin);\n            }\n\n            dyp = lin.dypTot - _dypDisp;\n            _ilinDisp = ilin;\n            _cpDisp = lin.cpMin;\n            _dypDisp = lin.dypTot;\n            break;\n\n        case scaLineDown:\n            // scroll down a line\n            _FetchLin(_ilinDisp + 1, &lin, &_ilinDisp);\n            dyp = lin.dypTot - _dypDisp;\n            _cpDisp = lin.cpMin;\n            _dypDisp = lin.dypTot;\n            break;\n\n        case scaPageUp:\n            // scroll down a page\n            if (_ilinDisp <= 0)\n                break;\n            GetRc(&rc, cooLocal);\n            _FetchLin(_ilinDisp, &linDisp);\n            Assert(linDisp.dypTot == _dypDisp, 0);\n\n            // determine where to scroll to - try to keep the top line\n            // visible, but scroll up at least one line\n            dyp = LwMax(0, linDisp.dypTot + linDisp.dyp - rc.Dyp());\n            _FindDyp(dyp, &lin, &ilin);\n            if (lin.cpMin >= linDisp.cpMin)\n            {\n                // we didn't go anywhere so force going up a line\n                _FetchLin(_ilinDisp - 1, &lin, &ilin);\n            }\n            else if (linDisp.dypTot + linDisp.dyp > lin.dypTot + rc.Dyp() && ilin < _ilinDisp - 1)\n            {\n                // the previous disp line crosses the bottom of the ddg, so move\n                // down one line\n                _FetchLin(ilin + 1, &lin, &ilin);\n            }\n\n            dyp = lin.dypTot - _dypDisp;\n            _ilinDisp = ilin;\n            _cpDisp = lin.cpMin;\n            _dypDisp = lin.dypTot;\n            break;\n\n        case scaLineUp:\n            // scroll up a line\n            if (_ilinDisp <= 0)\n                break;\n            _FetchLin(_ilinDisp - 1, &lin, &_ilinDisp);\n            dyp = lin.dypTot - _dypDisp;\n            _cpDisp = lin.cpMin;\n            _dypDisp = lin.dypTot;\n            break;\n        }\n\n        AssertIn(_cpDisp, 0, _ptxtb->CpMac());\n        _scvVert = _cpDisp;\n    }\n\n    _SetScrollValues();\n    if (dxp != 0 || dyp != 0)\n        _ScrollDxpDyp(dxp, dyp);\n}\n\n/***************************************************************************\n    Move the bits in the window.\n***************************************************************************/\nvoid TXTG::_ScrollDxpDyp(long dxp, long dyp)\n{\n    AssertThis(0);\n    RC rcLoc, rcBad1, rcBad2;\n\n    // determine the dirty rectangles and update them\n    GetRc(&rcLoc, cooLocal);\n    if (_fClear)\n    {\n        InvalRc(&rcLoc, kginMark);\n        vpappb->UpdateMarked();\n        return;\n    }\n\n    Scroll(&rcLoc, -dxp, -dyp, _fMark ? kginMark : kginDraw);\n    if (_fMark)\n        vpappb->UpdateMarked();\n}\n\n/***************************************************************************\n    Update the display of the document.\n***************************************************************************/\nvoid TXTG::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n\n    DrawLines(pgnv, prcClip, kdxpIndentTxtg - _scvHorz, 0, _ilinDisp);\n    if (_fSelOn)\n        _InvertSel(pgnv);\n    _SetScrollValues();\n}\n\n/***************************************************************************\n    Draws some lines of the document.\n***************************************************************************/\nvoid TXTG::DrawLines(PGNV pgnv, RC *prcClip, long dxp, long dyp, long ilinMin, long ilinLim, ulong grftxtg)\n{\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    CHP chp;\n    PAP pap;\n    CHR chr;\n    CHRD chrd;\n    RC rc;\n    long xpBase, xp, yp, xpChr, dxpDoc;\n    long cpLine, cpCur, cpLimChp, cpLim, cpLimLine;\n    LIN lin;\n    long ilin;\n\n    cpLim = _ptxtb->CpMac();\n    dxpDoc = _DxpDoc();\n    _FetchLin(ilinMin, &lin);\n    cpLine = lin.cpMin;\n\n    pgnv->FillRc(prcClip, _ptxtb->AcrBack());\n    yp = dyp;\n    for (ilin = ilinMin; ilin < ilinLim; ilin++)\n    {\n        if (yp >= prcClip->ypBottom || cpLine >= cpLim)\n            break;\n\n        _FetchLin(ilin, &lin);\n        if (yp + lin.dyp <= prcClip->ypTop)\n        {\n            yp += lin.dyp;\n            cpLine += lin.ccp;\n            continue;\n        }\n\n        _FetchPap(cpLine, &pap);\n        xpBase = lin.xpLeft + dxp;\n        cpLimChp = cpCur = cpLine;\n        cpLimLine = cpLine + lin.ccp;\n        xpChr = 0;\n\n        // draw the line\n        for (;;)\n        {\n            // make sure the chp is valid\n            if (cpCur >= cpLimChp)\n            {\n                _FetchChp(cpCur, &chp, pvNil, &cpLimChp);\n                cpLimChp = LwMin(cpLimChp, cpLimLine);\n                Assert(cpLimChp > cpCur, \"why is cpCur >= cpLimChp?\");\n                chr.Init(&chp, &pap, _ptxtb, _pgnv, cpCur, cpLimChp, xpChr, dxpDoc, dxpDoc);\n            }\n\n            chr.GetNextRun(fTrue);\n            chr.GetChrd(&chrd);\n\n            if (chrd.cpLimDraw > cpCur)\n            {\n                // draw some text\n                xp = xpBase + chr.XpMin();\n\n                if (chr.FObject())\n                {\n                    // draw the object\n                    _ptxtb->FDrawObject(chr.CpMin(), pgnv, &xp, yp + lin.dypAscent + chp.dypOffset, &chp, prcClip);\n                }\n                else\n                {\n                    pgnv->SetFont(chp.onn, chp.grfont, chp.dypFont, tahLeft, tavBaseline);\n\n                    pgnv->DrawRgch(chr.Prgch(), chrd.cpLimDraw - chr.CpMin(), xp, yp + lin.dypAscent + chp.dypOffset,\n                                   chp.acrFore, chp.acrBack);\n                }\n            }\n\n            if (chrd.cpLim >= cpLimLine || chr.FBreak())\n                break;\n\n            cpCur = chrd.cpLim;\n            xpChr = chrd.xpLim;\n        }\n\n        _DrawLinExtra(pgnv, prcClip, &lin, dxp, yp, grftxtg);\n\n        yp += lin.dyp;\n        cpLine = cpLimLine;\n    }\n}\n\n/***************************************************************************\n    Gives a subclass an opportunity to draw extra stuff associated with\n    the line. Default does nothing.\n***************************************************************************/\nvoid TXTG::_DrawLinExtra(PGNV pgnv, PRC prcClip, LIN *plin, long dxp, long yp, ulong grftxtg)\n{\n}\n\n/***************************************************************************\n    Handle a mousedown in the TXTG.\n***************************************************************************/\nbool TXTG::FCmdTrackMouse(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    RC rc;\n    long cp;\n    long scaHorz, scaVert;\n    long xp = pcmd->xp;\n    long yp = pcmd->yp;\n\n    if (pcmd->cid == cidMouseDown)\n    {\n        Assert(vpcex->PgobTracking() == pvNil, \"mouse already being tracked!\");\n        _fSelByWord = (pcmd->cact > 1) && !(pcmd->grfcust & fcustShift);\n        vpcex->TrackMouse(this);\n    }\n    else\n    {\n        Assert(vpcex->PgobTracking() == this, \"not tracking mouse!\");\n        Assert(pcmd->cid == cidTrackMouse, 0);\n    }\n\n    // do autoscrolling\n    GetRc(&rc, cooLocal);\n    if (!FIn(xp, rc.xpLeft, rc.xpRight))\n    {\n        scaHorz = (xp < rc.xpLeft) ? scaLineUp : scaLineDown;\n        xp = LwBound(xp, rc.xpLeft, rc.xpRight);\n    }\n    else\n        scaHorz = scaNil;\n    if (!FIn(yp, rc.ypTop, rc.ypBottom))\n    {\n        scaVert = (yp < rc.ypTop) ? scaLineUp : scaLineDown;\n        yp = LwBound(yp, rc.ypTop, rc.ypBottom);\n    }\n    else\n        scaVert = scaNil;\n    if (scaHorz != scaNil || scaVert != scaNil)\n        _Scroll(scaHorz, scaVert);\n\n    // set the selection\n    if (_FGetCpFromPt(xp, yp, &cp, !_fSelByWord))\n    {\n        if (pcmd->cid != cidMouseDown || (pcmd->grfcust & fcustShift))\n        {\n            if (_fSelByWord)\n            {\n                cp = (cp < _cpAnchor) ? _ptxtb->CpPrev(cp + 1, fTrue) : _ptxtb->CpNext(cp, fTrue);\n            }\n            SetSel(_cpAnchor, cp);\n        }\n        else\n        {\n            if (_fSelByWord)\n                cp = _ptxtb->CpPrev(cp + 1, fTrue);\n            SetSel(cp, _fSelByWord ? _ptxtb->CpNext(cp, fTrue) : cp);\n        }\n        _fXpValid = fFalse;\n    }\n    _SwitchSel(fTrue); // make sure the selection is on\n\n    if (!(pcmd->grfcust & fcustMouse))\n        vpcex->EndMouseTracking();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Do idle processing.  If this handler has the active selection, make sure\n    the selection is on or off according to rglw[0] (non-zero means on)\n    and set rglw[0] to false.  Always return false.\n***************************************************************************/\nbool TXTG::FCmdSelIdle(PCMD pcmd)\n{\n    AssertThis(0);\n\n    // if rglw[1] is this one's hid, don't change the sel state.\n    if (pcmd->rglw[1] != Hid())\n    {\n        if (!pcmd->rglw[0])\n            _SwitchSel(fFalse, kginDefault);\n        else if (_cpAnchor != _cpOther || _tsSel == 0)\n            _SwitchSel(fTrue);\n        else if (DtsCaret() < TsCurrent() - _tsSel)\n            _SwitchSel(!_fSelOn);\n    }\n    pcmd->rglw[0] = fFalse;\n    return fFalse;\n}\n\n/***************************************************************************\n    Get the current selection.\n***************************************************************************/\nvoid TXTG::GetSel(long *pcpAnchor, long *pcpOther)\n{\n    AssertThis(0);\n    AssertVarMem(pcpAnchor);\n    AssertVarMem(pcpOther);\n\n    *pcpAnchor = _cpAnchor;\n    *pcpOther = _cpOther;\n}\n\n/***************************************************************************\n    Set the selection.\n***************************************************************************/\nvoid TXTG::SetSel(long cpAnchor, long cpOther, long gin)\n{\n    AssertThis(0);\n    long cpMac = _ptxtb->CpMac();\n\n    cpAnchor = LwBound(cpAnchor, 0, cpMac);\n    cpOther = LwBound(cpOther, 0, cpMac);\n\n    if (cpAnchor == _cpAnchor && cpOther == _cpOther)\n        return;\n\n    if (_fSelOn)\n    {\n        if ((_fMark || _fClear) && gin == kginDraw)\n            gin = kginMark;\n        _pgnv->SetGobRc(this);\n        if (_cpAnchor != cpAnchor || _cpAnchor == _cpOther || cpAnchor == cpOther)\n        {\n            _InvertSel(_pgnv, gin);\n            _cpAnchor = cpAnchor;\n            _cpOther = cpOther;\n            _InvertSel(_pgnv, gin);\n            _tsSel = TsCurrent();\n        }\n        else\n        {\n            // they have the same anchor and neither is an insertion\n            _InvertCpRange(_pgnv, _cpOther, cpOther, gin);\n            _cpOther = cpOther;\n        }\n    }\n    else\n    {\n        _cpAnchor = cpAnchor;\n        _cpOther = cpOther;\n        _tsSel = 0L;\n    }\n}\n\n/***************************************************************************\n    Make sure the selection is visible (at least the _cpOther end of it).\n***************************************************************************/\nvoid TXTG::ShowSel(void)\n{\n    AssertThis(0);\n    long cpScroll;\n    long ilinOther, ilinAnchor, ilin;\n    long dxpScroll, dypSel;\n    long xpMin, xpLim;\n    RC rc;\n    LIN linOther, linAnchor, lin;\n    long cpAnchor = _cpAnchor;\n\n    // find the lines we want to show\n    _FindCp(_cpOther, &linOther, &ilinOther);\n    _FindCp(_cpAnchor, &linAnchor, &ilinAnchor);\n    linOther.dypTot -= _dypDisp;\n    linAnchor.dypTot -= _dypDisp;\n    GetRc(&rc, cooLocal);\n\n    cpScroll = _cpDisp;\n    if (!FIn(linOther.dypTot, 0, rc.Dyp() - linOther.dyp) || !FIn(linAnchor.dypTot, 0, rc.Dyp() - linAnchor.dyp))\n    {\n        if (_cpOther < cpAnchor)\n            dypSel = linAnchor.dypTot - linOther.dypTot + linAnchor.dyp;\n        else\n            dypSel = linOther.dypTot - linAnchor.dypTot + linOther.dyp;\n        if (dypSel > rc.Dyp())\n        {\n            // just show _cpOther\n            cpAnchor = _cpOther;\n            ilinAnchor = ilinOther;\n            linAnchor = linOther;\n            dypSel = linOther.dyp;\n        }\n\n        if (linOther.dypTot < 0 || linAnchor.dypTot < 0)\n        {\n            // scroll up\n            cpScroll = LwMin(linOther.cpMin, linAnchor.cpMin);\n        }\n        else if (linOther.dypTot + linOther.dyp >= rc.Dyp() || linAnchor.dypTot + linAnchor.dyp >= rc.Dyp())\n        {\n            // scroll down\n            ilin = LwMin(ilinOther, ilinAnchor);\n            cpScroll = LwMin(linOther.cpMin, linAnchor.cpMin);\n            dypSel = rc.Dyp() - dypSel;\n            for (;;)\n            {\n                if (--ilin < 0)\n                    break;\n                _FetchLin(ilin, &lin);\n                if (lin.dyp > dypSel)\n                    break;\n                cpScroll -= lin.ccp;\n                dypSel -= lin.dyp;\n            }\n        }\n    }\n\n    // now do the horizontal stuff\n    xpMin = _DxpFromCp(linOther.cpMin, _cpOther) + linOther.xpLeft - _scvHorz;\n    xpLim = _DxpFromCp(linAnchor.cpMin, cpAnchor) + linAnchor.xpLeft - _scvHorz;\n    if (LwAbs(xpLim - xpMin) > rc.Dxp())\n    {\n        // can't show both\n        if (xpMin > xpLim)\n        {\n            xpLim = xpMin;\n            xpMin = xpLim - rc.Dxp();\n        }\n        else\n            xpLim = xpMin + rc.Dxp();\n    }\n    else\n        SortLw(&xpMin, &xpLim);\n    dxpScroll = LwMax(LwMin(0, rc.xpRight - xpLim), rc.xpLeft - xpMin);\n\n    if (dxpScroll != 0 || cpScroll != _cpDisp)\n        _Scroll(scaToVal, scaToVal, _scvHorz - dxpScroll, cpScroll);\n}\n\n/***************************************************************************\n    Turn the selection off.\n***************************************************************************/\nvoid TXTG::HideSel(void)\n{\n    AssertThis(0);\n\n    if (!_fSelOn)\n        return;\n\n    _SwitchSel(fFalse);\n    _tsSel = 0;\n}\n\n/***************************************************************************\n    Turn the sel on or off according to fOn.\n***************************************************************************/\nvoid TXTG::_SwitchSel(bool fOn, long gin)\n{\n    AssertThis(0);\n\n    if (FPure(fOn) != FPure(_fSelOn))\n    {\n        if ((_fMark || _fClear) && gin == kginDraw)\n            gin = kginMark;\n        _pgnv->SetGobRc(this);\n        _InvertSel(_pgnv, gin);\n        _fSelOn = FPure(fOn);\n        _tsSel = TsCurrent();\n    }\n}\n\n/***************************************************************************\n    Invert the current selection.\n***************************************************************************/\nvoid TXTG::_InvertSel(PGNV pgnv, long gin)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    RC rc, rcT;\n\n    GetRc(&rc, cooLocal);\n    if (_cpAnchor == _cpOther)\n    {\n        // insertion bar\n        _GetXpYpFromCp(_cpAnchor, &rcT.ypTop, &rcT.ypBottom, &rcT.xpLeft);\n        rcT.xpRight = --rcT.xpLeft + 2;\n        if (rcT.FIntersect(&rc))\n        {\n            if (kginDraw == gin)\n                pgnv->FillRc(&rcT, kacrInvert);\n            else\n                InvalRc(&rcT, gin);\n        }\n    }\n    else\n        _InvertCpRange(pgnv, _cpAnchor, _cpOther, gin);\n}\n\n/***************************************************************************\n    Invert a range.\n***************************************************************************/\nvoid TXTG::_InvertCpRange(PGNV pgnv, long cp1, long cp2, long gin)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertIn(cp1, 0, _ptxtb->CpMac());\n    AssertIn(cp2, 0, _ptxtb->CpMac());\n    RC rc1, rc2, rcClip, rcT, rcDoc;\n\n    if (cp1 == cp2)\n        return;\n    SortLw(&cp1, &cp2);\n    _GetXpYpFromCp(cp1, &rc1.ypTop, &rc1.ypBottom, &rc1.xpLeft);\n    _GetXpYpFromCp(cp2, &rc2.ypTop, &rc2.ypBottom, &rc2.xpRight);\n    GetRc(&rcClip, cooLocal);\n    if (rc1.ypTop >= rcClip.ypBottom || rc2.ypBottom <= rcClip.ypTop)\n        return;\n\n    if (rc1.ypTop == rc2.ypTop && rc1.ypBottom == rc2.ypBottom)\n    {\n        // only one line involved\n        rc1.xpRight = rc2.xpRight;\n        if (rcT.FIntersect(&rc1, &rcClip))\n        {\n            if (kginDraw == gin)\n                pgnv->HiliteRc(&rcT, kacrWhite);\n            else\n                InvalRc(&rcT, gin);\n        }\n        return;\n    }\n\n    // invert the sel on the first line\n    rc1.xpRight = kdxpIndentTxtg - _scvHorz + _DxpDoc();\n    if (rcT.FIntersect(&rc1, &rcClip))\n    {\n        if (kginDraw == gin)\n            pgnv->HiliteRc(&rcT, kacrWhite);\n        else\n            InvalRc(&rcT, gin);\n    }\n\n    // invert the main rectangular block\n    rc1.xpLeft = kdxpIndentTxtg - _scvHorz;\n    rc1.ypTop = rc1.ypBottom;\n    rc1.ypBottom = rc2.ypTop;\n    if (rcT.FIntersect(&rc1, &rcClip))\n    {\n        if (kginDraw == gin)\n            pgnv->HiliteRc(&rcT, kacrWhite);\n        else\n            InvalRc(&rcT, gin);\n    }\n\n    // invert the last line\n    rc2.xpLeft = rc1.xpLeft;\n    if (rcT.FIntersect(&rc2, &rcClip))\n    {\n        if (kginDraw == gin)\n            pgnv->HiliteRc(&rcT, kacrWhite);\n        else\n            InvalRc(&rcT, gin);\n    }\n}\n\n/***************************************************************************\n    Handle a key down.\n***************************************************************************/\nbool TXTG::FCmdKey(PCMD_KEY pcmd)\n{\n    const long kcchInsBuf = 64;\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    ulong grfcust;\n    long vkDone;\n    long ichLim;\n    long cact;\n    long dcp, cpT;\n    CMD cmd;\n    LIN lin, linT;\n    long ilin, ilinT;\n    RC rc;\n    achar rgch[kcchInsBuf + 1];\n\n    // keep fetching characters until we get a cursor key, delete key or\n    // until the buffer is full.\n    vkDone = vkNil;\n    ichLim = 0;\n    do\n    {\n        grfcust = pcmd->grfcust;\n        switch (pcmd->vk)\n        {\n        // these keys all terminate the key fetching loop\n        case kvkHome:\n        case kvkEnd:\n        case kvkLeft:\n        case kvkRight:\n        case kvkUp:\n        case kvkDown:\n        case kvkPageUp:\n        case kvkPageDown:\n        case kvkDelete:\n        case kvkBack:\n            vkDone = pcmd->vk;\n            goto LInsert;\n\n        default:\n            if (chNil == pcmd->ch)\n                break;\n            for (cact = 0; cact < pcmd->cact && ichLim < kcchInsBuf; cact++)\n            {\n                rgch[ichLim++] = (achar)pcmd->ch;\n#ifdef WIN\n                if ((achar)pcmd->ch == kchReturn)\n                    rgch[ichLim++] = kchLineFeed;\n#endif // WIN\n            }\n            break;\n        }\n\n        pcmd = (PCMD_KEY)&cmd;\n    } while (ichLim < kcchInsBuf && vpcex->FGetNextKey(&cmd));\n\nLInsert:\n    if (ichLim > 0)\n    {\n        // have some characters to insert\n        FReplace(rgch, ichLim, _cpAnchor, _cpOther);\n    }\n\n    dcp = 0;\n    switch (vkDone)\n    {\n    case kvkHome:\n        if (grfcust & fcustCmd)\n            dcp = -_cpOther;\n        else\n        {\n            _FindCp(_cpOther, &lin);\n            dcp = lin.cpMin - _cpOther;\n        }\n        _fXpValid = fFalse;\n        goto LSetSel;\n\n    case kvkEnd:\n        if (grfcust & fcustCmd)\n            dcp = _ptxtb->CpMac() - _cpOther;\n        else\n        {\n            _FindCp(_cpOther, &lin);\n            cpT = _ptxtb->CpPrev(lin.cpMin + lin.ccp);\n            AssertIn(cpT, _cpOther, _ptxtb->CpMac());\n            dcp = cpT - _cpOther;\n        }\n        _fXpValid = fFalse;\n        goto LSetSel;\n\n    case kvkLeft:\n        dcp = _ptxtb->CpPrev(_cpOther, FPure(grfcust & fcustCmd)) - _cpOther;\n        _fXpValid = fFalse;\n        goto LSetSel;\n\n    case kvkRight:\n        dcp = _ptxtb->CpNext(_cpOther, FPure(grfcust & fcustCmd)) - _cpOther;\n        _fXpValid = fFalse;\n        goto LSetSel;\n\n    case kvkUp:\n    case kvkPageUp:\n    case kvkDown:\n    case kvkPageDown:\n        // get the LIN for _cpOther and make sure _xpSel is up to date\n        _FindCp(_cpOther, &lin, &ilin);\n        if (!_fXpValid)\n        {\n            // get the xp of _cpOther\n            _xpSel = lin.xpLeft + _DxpFromCp(lin.cpMin, _cpOther);\n            _fXpValid = fTrue;\n        }\n\n        switch (vkDone)\n        {\n        case kvkUp:\n            if (ilin == 0)\n            {\n                dcp = -_cpOther;\n                goto LSetSel;\n            }\n            _FetchLin(ilin - 1, &lin);\n            break;\n\n        case kvkPageUp:\n            if (ilin == 0)\n            {\n                dcp = -_cpOther;\n                goto LSetSel;\n            }\n            GetRc(&rc, cooLocal);\n            _FindDyp(LwMax(0, lin.dypTot - rc.Dyp() + lin.dyp), &linT, &ilinT);\n\n            if (linT.cpMin >= lin.cpMin)\n            {\n                // we didn't go anywhere so force going up a line\n                _FetchLin(ilin - 1, &lin);\n            }\n            else if (lin.dypTot + lin.dyp > linT.dypTot + rc.Dyp() && ilinT < ilin - 1)\n            {\n                // the previous line crosses the bottom of the ddg, so move\n                // down one line\n                _FetchLin(ilinT + 1, &lin);\n            }\n            else\n                lin = linT;\n            break;\n\n        case kvkDown:\n            if (lin.cpMin + lin.ccp >= _ptxtb->CpMac())\n            {\n                dcp = _ptxtb->CpMac() - _cpOther;\n                goto LSetSel;\n            }\n            _FetchLin(ilin + 1, &lin);\n            break;\n\n        case kvkPageDown:\n            if (lin.cpMin + lin.ccp >= _ptxtb->CpMac())\n            {\n                dcp = _ptxtb->CpMac() - _cpOther;\n                goto LSetSel;\n            }\n\n            GetRc(&rc, cooLocal);\n            _FindDyp(lin.dypTot + rc.Dyp(), &linT, &ilinT);\n\n            if (linT.cpMin <= lin.cpMin)\n            {\n                // we didn't go anywhere so force going down a line\n                _FetchLin(ilin + 1, &lin);\n            }\n            else if (linT.dypTot + linT.dyp > lin.dypTot + rc.Dyp() && ilinT > ilin + 1)\n            {\n                // the line crosses the bottom of the ddg so back up one line\n                Assert(ilinT > 0, 0);\n                _FetchLin(ilinT - 1, &lin);\n            }\n            else\n                lin = linT;\n            break;\n        }\n\n        // we have the line, now find the position on the line\n        _FGetCpFromXp(_xpSel - _scvHorz, &lin, &dcp);\n        dcp -= _cpOther;\n\n    LSetSel:\n        // move the selection\n        if (grfcust & fcustShift)\n        {\n            // extend selection\n            SetSel(_cpAnchor, _cpOther + dcp);\n            ShowSel();\n        }\n        else\n        {\n            cpT = _cpOther;\n            if (cpT == _cpAnchor || (grfcust & fcustCmd))\n                cpT += dcp;\n            else if ((dcp > 0) != (cpT > _cpAnchor))\n                cpT = _cpAnchor;\n            SetSel(cpT, cpT);\n            ShowSel();\n        }\n        break;\n\n    case kvkDelete:\n    case kvkBack:\n        if (_cpAnchor != _cpOther)\n            dcp = _cpOther - _cpAnchor;\n        else if (vkDone == kvkDelete)\n        {\n            dcp = _ptxtb->CpNext(_cpAnchor) - _cpAnchor;\n            if (_cpAnchor + dcp >= _ptxtb->CpMac())\n                dcp = 0;\n        }\n        else\n            dcp = _ptxtb->CpPrev(_cpAnchor) - _cpAnchor;\n        if (dcp != 0)\n            FReplace(pvNil, 0, _cpAnchor, _cpAnchor + dcp);\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the maximum scroll value for this view of the doc.\n***************************************************************************/\nlong TXTG::_ScvMax(bool fVert)\n{\n    RC rc;\n    long dxp;\n\n    if (fVert)\n        return _ptxtb->CpMac() - 1;\n\n    dxp = _DxpDoc() + 2 * kdxpIndentTxtg;\n    GetRc(&rc, cooLocal);\n    return LwMax(0, dxp - rc.Dxp());\n}\n\n/***************************************************************************\n    Return the logical width of the text \"page\".\n***************************************************************************/\nlong TXTG::_DxpDoc(void)\n{\n    return _ptxtb->DxpDef();\n}\n\n/***************************************************************************\n    Set the tab width.  Default does nothing.\n***************************************************************************/\nvoid TXTG::SetDxpTab(long dxp)\n{\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Set the document width.  Default calls SetDxpDef on the TXTB.\n***************************************************************************/\nvoid TXTG::SetDxpDoc(long dxp)\n{\n    AssertThis(0);\n    dxp = LwBound(dxp, 1, kcbMax);\n    _ptxtb->SetDxpDef(dxp);\n}\n\n/***************************************************************************\n    Show or hide the ruler.\n***************************************************************************/\nvoid TXTG::ShowRuler(bool fShow)\n{\n    AssertThis(0);\n    RC rcAbs, rcRel;\n    long dyp;\n\n    if (FPure(fShow) == (_ptrul != pvNil))\n        return;\n\n    dyp = _DypTrul();\n    if (fShow)\n    {\n        PGOB pgob;\n        GCB gcb;\n\n        pgob = PgobPar();\n        if (pvNil == pgob || !pgob->FIs(kclsDSG))\n            return;\n\n        GetPos(&rcAbs, &rcRel);\n        rcAbs.ypTop += dyp;\n        SetPos(&rcAbs, &rcRel);\n\n        rcRel.ypBottom = rcRel.ypTop;\n        rcAbs.ypBottom = rcAbs.ypTop;\n        rcAbs.ypTop -= dyp;\n        gcb.Set(HidUnique(), pgob, fgobNil, kginDefault, &rcAbs, &rcRel);\n\n        if (pvNil == (_ptrul = _PtrulNew(&gcb)))\n            goto LFail;\n    }\n    else\n    {\n        ReleasePpo(&_ptrul);\n    LFail:\n        GetPos(&rcAbs, &rcRel);\n        rcAbs.ypTop -= dyp;\n        SetPos(&rcAbs, &rcRel);\n    }\n}\n\n/***************************************************************************\n    Return the height of the ruler.\n***************************************************************************/\nlong TXTG::_DypTrul(void)\n{\n    AssertThis(0);\n    return 0;\n}\n\n/***************************************************************************\n    Create the ruler.\n***************************************************************************/\nPTRUL TXTG::_PtrulNew(PGCB pgcb)\n{\n    AssertThis(0);\n    return pvNil;\n}\n\n/***************************************************************************\n    Get the natural width and height of the view on the document.\n***************************************************************************/\nvoid TXTG::GetNaturalSize(long *pdxp, long *pdyp)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pdxp);\n    AssertNilOrVarMem(pdyp);\n    LIN lin;\n\n    if (pvNil != pdxp)\n        *pdxp = _DxpDoc() + 2 * kdxpIndentTxtg;\n    if (pvNil == pdyp)\n        return;\n\n    _FetchLin(kcbMax - 1, &lin);\n    *pdyp = lin.dypTot + lin.dyp;\n}\n\n/***************************************************************************\n    Constructor for the plain line text document display gob.\n***************************************************************************/\nTXLG::TXLG(PTXTB ptxtb, PGCB pgcb, long onn, ulong grfont, long dypFont, long cchTab) : TXLG_PAR(ptxtb, pgcb)\n{\n    RC rc;\n    achar ch = kchSpace;\n    GNV gnv(this);\n\n    gnv.SetFont(onn, fontNil, dypFont);\n    gnv.GetRcFromRgch(&rc, &ch, 1);\n    _dxpChar = rc.Dxp();\n    _onn = onn;\n    _grfont = grfont;\n    _dypFont = dypFont;\n    _cchTab = LwBound(cchTab, 1, kcbMax);\n}\n\n/***************************************************************************\n    Static method to create a new plain line text doc display gob.\n***************************************************************************/\nPTXLG TXLG::PtxlgNew(PTXTB ptxtb, PGCB pgcb, long onn, ulong grfont, long dypFont, long cchTab)\n{\n    PTXLG ptxlg;\n\n    if (pvNil == (ptxlg = NewObj TXLG(ptxtb, pgcb, onn, grfont, dypFont, cchTab)))\n        return pvNil;\n    if (!ptxlg->_FInit())\n    {\n        ReleasePpo(&ptxlg);\n        return pvNil;\n    }\n    ptxlg->Activate(fTrue);\n    return ptxlg;\n}\n\n/***************************************************************************\n    Get the width of the logical \"page\".  For a TXLG, this is some big\n    value, so we do no word wrap.\n***************************************************************************/\nlong TXLG::_DxpDoc(void)\n{\n    return kswMax;\n}\n\n/***************************************************************************\n    Set the tab width.\n***************************************************************************/\nvoid TXLG::SetDxpTab(long dxp)\n{\n    AssertThis(0);\n    long cch;\n\n    cch = LwBound(dxp / _dxpChar, 1, kswMax / _dxpChar);\n    if (cch != _cchTab)\n    {\n        _cchTab = cch;\n        InvalCp(0, _ptxtb->CpMac(), _ptxtb->CpMac());\n    }\n}\n\n/***************************************************************************\n    Set the document width.  Does nothing.\n***************************************************************************/\nvoid TXLG::SetDxpDoc(long dxp)\n{\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Get the character properties for display.  These are the same for all\n    characters in the TXLG.\n***************************************************************************/\nvoid TXLG::_FetchChp(long cp, PCHP pchp, long *pcpMin, long *pcpLim)\n{\n    AssertIn(cp, 0, _ptxtb->CpMac());\n    AssertVarMem(pchp);\n    AssertNilOrVarMem(pcpMin);\n    AssertNilOrVarMem(pcpLim);\n\n    pchp->Clear();\n    pchp->grfont = _grfont;\n    pchp->onn = _onn;\n    pchp->dypFont = _dypFont;\n    pchp->acrFore = kacrBlack;\n    pchp->acrBack = kacrWhite;\n    if (pvNil != pcpMin)\n        *pcpMin = 0;\n    if (pvNil != pcpLim)\n        *pcpLim = _ptxtb->CpMac();\n}\n\n/***************************************************************************\n    Get the paragraph properties for disply.  These are constant for all\n    characters in the TXLG.\n***************************************************************************/\nvoid TXLG::_FetchPap(long cp, PPAP ppap, long *pcpMin, long *pcpLim)\n{\n    AssertIn(cp, 0, _ptxtb->CpMac());\n    AssertVarMem(ppap);\n    AssertNilOrVarMem(pcpMin);\n    AssertNilOrVarMem(pcpLim);\n\n    ClearPb(ppap, size(PAP));\n    ppap->dxpTab = (short)LwMul(_cchTab, _dxpChar);\n    ppap->numLine = kdenLine;\n    ppap->numAfter = kdenAfter;\n    if (pvNil != pcpMin)\n        *pcpMin = 0;\n    if (pvNil != pcpLim)\n        *pcpLim = _ptxtb->CpMac();\n}\n\n/***************************************************************************\n    Copy the selection.\n***************************************************************************/\nbool TXLG::_FCopySel(PDOCB *ppdocb)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(ppdocb);\n    PTXPD ptxpd;\n\n    if (_cpAnchor == _cpOther)\n        return fFalse;\n\n    if (pvNil == ppdocb)\n        return fTrue;\n\n    if (pvNil != (ptxpd = TXPD::PtxpdNew(pvNil)))\n    {\n        long cpMin = LwMin(_cpAnchor, _cpOther);\n        long cpLim = LwMax(_cpAnchor, _cpOther);\n\n        ptxpd->SuspendUndo();\n        if (!ptxpd->FReplaceBsf(_ptxtb->Pbsf(), cpMin, cpLim - cpMin, 0, 0, fdocNil))\n        {\n            ReleasePpo(&ptxpd);\n        }\n        else\n            ptxpd->ResumeUndo();\n    }\n\n    *ppdocb = ptxpd;\n    return pvNil != *ppdocb;\n}\n\n/***************************************************************************\n    Delete the selection.\n***************************************************************************/\nvoid TXLG::_ClearSel(void)\n{\n    AssertThis(0);\n\n    FReplace(pvNil, 0, _cpAnchor, _cpOther);\n    ShowSel();\n}\n\n/***************************************************************************\n    Paste the selection.\n***************************************************************************/\nbool TXLG::_FPaste(PCLIP pclip, bool fDoIt, long cid)\n{\n    AssertThis(0);\n    AssertPo(pclip, 0);\n    long cp1, cp2;\n    long ccp;\n    PTXTB ptxtb;\n\n    if (cid != cidPaste || !pclip->FGetFormat(kclsTXTB))\n        return fFalse;\n\n    if (!fDoIt)\n        return fTrue;\n\n    if (!pclip->FGetFormat(kclsTXTB, (PDOCB *)&ptxtb))\n        return fFalse;\n\n    AssertPo(ptxtb, 0);\n    if ((ccp = ptxtb->CpMac() - 1) <= 0)\n    {\n        ReleasePpo(&ptxtb);\n        return fTrue;\n    }\n\n    HideSel();\n    cp1 = LwMin(_cpAnchor, _cpOther);\n    cp2 = LwMax(_cpAnchor, _cpOther);\n    if (!_ptxtb->FReplaceTxtb(ptxtb, 0, ccp, cp1, cp2 - cp1))\n    {\n        ReleasePpo(&ptxtb);\n        return fFalse;\n    }\n    ReleasePpo(&ptxtb);\n\n    cp1 += ccp;\n    SetSel(cp1, cp1);\n    ShowSel();\n    return fTrue;\n}\n\n/***************************************************************************\n    Constructor for a rich text document display gob.\n***************************************************************************/\nTXRG::TXRG(PTXRD ptxrd, PGCB pgcb) : TXRG_PAR(ptxrd, pgcb)\n{\n}\n\n/***************************************************************************\n    Create a new rich text document display GOB.\n***************************************************************************/\nPTXRG TXRG::PtxrgNew(PTXRD ptxrd, PGCB pgcb)\n{\n    PTXRG ptxrg;\n\n    if (pvNil == (ptxrg = NewObj TXRG(ptxrd, pgcb)))\n        return pvNil;\n    if (!ptxrg->_FInit())\n    {\n        ReleasePpo(&ptxrg);\n        return pvNil;\n    }\n    ptxrg->Activate(fTrue);\n    return ptxrg;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a TXRG.\n***************************************************************************/\nvoid TXRG::AssertValid(ulong grf)\n{\n    TXRG_PAR::AssertValid(0);\n    AssertNilOrPo(_ptrul, 0);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Get the character properties for displaying the given cp.\n***************************************************************************/\nvoid TXRG::_FetchChp(long cp, PCHP pchp, long *pcpMin, long *pcpLim)\n{\n    ((PTXRD)_ptxtb)->FetchChp(cp, pchp, pcpMin, pcpLim);\n}\n\n/***************************************************************************\n    Get the paragraph properties for displaying the given cp.\n***************************************************************************/\nvoid TXRG::_FetchPap(long cp, PPAP ppap, long *pcpMin, long *pcpLim)\n{\n    ((PTXRD)_ptxtb)->FetchPap(cp, ppap, pcpMin, pcpLim);\n}\n\n/***************************************************************************\n    Set the tab width for the currently selected paragraph(s).\n***************************************************************************/\nvoid TXRG::SetDxpTab(long dxp)\n{\n    AssertThis(0);\n    long cpMin, cpLim, cpAnchor, cpOther;\n    PAP papOld, papNew;\n\n    dxp = LwRoundClosest(dxp, kdzpInch / 8);\n    dxp = LwBound(dxp, kdzpInch / 8, 100 * kdzpInch);\n    ClearPb(&papOld, size(PAP));\n    papNew = papOld;\n\n    cpMin = LwMin(cpAnchor = _cpAnchor, cpOther = _cpOther);\n    cpLim = LwMax(_cpAnchor, _cpOther);\n\n    papNew.dxpTab = (short)dxp;\n    _SwitchSel(fFalse, ginNil);\n    if (!((PTXRD)_ptxtb)->FApplyPap(cpMin, cpLim - cpMin, &papNew, &papOld, &cpMin, &cpLim))\n    {\n        _SwitchSel(fTrue, kginMark);\n    }\n\n    SetSel(cpAnchor, cpOther);\n    ShowSel();\n}\n\n/***************************************************************************\n    Set the selection for the TXRG.  Invalidates _chpIns if the selection\n    changes.\n***************************************************************************/\nvoid TXRG::SetSel(long cpAnchor, long cpOther, long gin)\n{\n    AssertThis(0);\n    long cpMac = _ptxtb->CpMac();\n\n    cpAnchor = LwBound(cpAnchor, 0, cpMac);\n    cpOther = LwBound(cpOther, 0, cpMac);\n\n    if (cpAnchor == _cpAnchor && cpOther == _cpOther)\n        return;\n\n    _fValidChp = fFalse;\n    TXRG_PAR::SetSel(cpAnchor, cpOther, gin);\n    if (pvNil != _ptrul)\n    {\n        PAP pap;\n\n        _FetchPap(LwMin(_cpAnchor, _cpOther), &pap);\n        _ptrul->SetDxpTab(pap.dxpTab);\n    }\n}\n\n/***************************************************************************\n    Get the chp to use to replace the given range of characters. If the\n    range is empty and not at the beginning of a paragraph, gets the chp\n    of the previous character. Otherwise gets the chp of the character at\n    LwMin(cp1, cp2).\n***************************************************************************/\nvoid TXRG::_FetchChpSel(long cp1, long cp2, PCHP pchp)\n{\n    AssertThis(0);\n    AssertVarMem(pchp);\n\n    long cp = LwMin(cp1, cp2);\n\n    if (cp1 == cp2 && cp1 > 0)\n    {\n        if (!_ptxtb->FMinPara(cp) || _ptxtb->FMinPara(cp2 = _ptxtb->CpNext(cp)) || cp2 >= _ptxtb->CpMac())\n        {\n            cp = _ptxtb->CpPrev(cp);\n        }\n    }\n\n    // NOTE: don't just call _FetchChp here.  _FetchChp allows derived\n    // classes to modify the chp used for display without affecting the\n    // chp used for editing.  This chp is an editing chp.  Same note\n    // applies several other places in this file.\n    ((PTXRD)_ptxtb)->FetchChp(cp, pchp);\n}\n\n/***************************************************************************\n    Make sure the _chpIns is valid.\n***************************************************************************/\nvoid TXRG::_EnsureChpIns(void)\n{\n    AssertThis(0);\n\n    if (!_fValidChp)\n    {\n        _FetchChpSel(_cpAnchor, _cpOther, &_chpIns);\n        _fValidChp = fTrue;\n    }\n}\n\n/***************************************************************************\n    Replaces the characters between cp1 and cp2 with the given ones.\n***************************************************************************/\nbool TXRG::FReplace(achar *prgch, long cch, long cp1, long cp2)\n{\n    AssertIn(cch, 0, kcbMax);\n    AssertPvCb(prgch, cch);\n    AssertIn(cp1, 0, _ptxtb->CpMac());\n    AssertIn(cp2, 0, _ptxtb->CpMac());\n    CHP chp;\n    bool fSetChpIns = fFalse;\n\n    HideSel();\n    SortLw(&cp1, &cp2);\n    if (cp1 == LwMin(_cpAnchor, _cpOther) && cp2 == LwMax(_cpAnchor, _cpOther))\n    {\n        _EnsureChpIns();\n        chp = _chpIns;\n        fSetChpIns = fTrue;\n    }\n    else\n        _FetchChpSel(cp1, cp2, &chp);\n\n    if (!((PTXRD)_ptxtb)->FReplaceRgch(prgch, cch, cp1, cp2 - cp1, &chp))\n        return fFalse;\n\n    cp1 += cch;\n    SetSel(cp1, cp1);\n    ShowSel();\n\n    if (fSetChpIns)\n    {\n        // preserve the _chpIns\n        _chpIns = chp;\n        _fValidChp = fTrue;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Copy the selection.\n***************************************************************************/\nbool TXRG::_FCopySel(PDOCB *ppdocb)\n{\n    AssertNilOrVarMem(ppdocb);\n    PTXRD ptxrd;\n\n    if (_cpAnchor == _cpOther)\n        return fFalse;\n\n    if (pvNil == ppdocb)\n        return fTrue;\n\n    if (pvNil != (ptxrd = TXRD::PtxrdNew(pvNil)))\n    {\n        long cpMin = LwMin(_cpAnchor, _cpOther);\n        long cpLim = LwMax(_cpAnchor, _cpOther);\n\n        ptxrd->SuspendUndo();\n        if (!ptxrd->FReplaceTxrd((PTXRD)_ptxtb, cpMin, cpLim - cpMin, 0, 0, fdocNil))\n        {\n            ReleasePpo(&ptxrd);\n        }\n        else\n            ptxrd->ResumeUndo();\n    }\n\n    *ppdocb = ptxrd;\n    return pvNil != *ppdocb;\n}\n\n/***************************************************************************\n    Delete the selection.\n***************************************************************************/\nvoid TXRG::_ClearSel(void)\n{\n    FReplace(pvNil, 0, _cpAnchor, _cpOther);\n    ShowSel();\n}\n\n/***************************************************************************\n    Paste the selection.\n***************************************************************************/\nbool TXRG::_FPaste(PCLIP pclip, bool fDoIt, long cid)\n{\n    AssertThis(0);\n    long cp1, cp2;\n    long ccp;\n    PTXTB ptxtb;\n    bool fRet;\n\n    if (cid != cidPaste || !pclip->FGetFormat(kclsTXTB))\n        return fFalse;\n\n    if (!fDoIt)\n        return fTrue;\n\n    if (!pclip->FGetFormat(kclsTXRD, (PDOCB *)&ptxtb) && !pclip->FGetFormat(kclsTXTB, (PDOCB *)&ptxtb))\n    {\n        return fFalse;\n    }\n\n    AssertPo(ptxtb, 0);\n    if ((ccp = ptxtb->CpMac() - 1) <= 0)\n    {\n        ReleasePpo(&ptxtb);\n        return fTrue;\n    }\n\n    HideSel();\n    cp1 = LwMin(_cpAnchor, _cpOther);\n    cp2 = LwMax(_cpAnchor, _cpOther);\n    _ptxtb->BumpCombineUndo();\n    if (ptxtb->FIs(kclsTXRD))\n    {\n        fRet = ((PTXRD)_ptxtb)->FReplaceTxrd((PTXRD)ptxtb, 0, ccp, cp1, cp2 - cp1);\n    }\n    else\n    {\n        _EnsureChpIns();\n        fRet = ((PTXRD)_ptxtb)->FReplaceTxtb(ptxtb, 0, ccp, cp1, cp2 - cp1, &_chpIns);\n    }\n    ReleasePpo(&ptxtb);\n\n    if (fRet)\n    {\n        _ptxtb->BumpCombineUndo();\n        cp1 += ccp;\n        SetSel(cp1, cp1);\n        ShowSel();\n    }\n\n    return fRet;\n}\n\n/***************************************************************************\n    Apply the given character properties to the current selection.\n***************************************************************************/\nbool TXRG::FApplyChp(PCHP pchp, PCHP pchpDiff)\n{\n    AssertThis(0);\n    AssertVarMem(pchp);\n    AssertNilOrVarMem(pchpDiff);\n\n    long cpMin, cpLim, cpAnchor, cpOther;\n    ulong grfont;\n\n    cpMin = LwMin(cpAnchor = _cpAnchor, cpOther = _cpOther);\n    cpLim = LwMax(_cpAnchor, _cpOther);\n\n    if (cpMin == cpLim)\n    {\n        if (pvNil == pchpDiff)\n        {\n            _chpIns = *pchp;\n            _fValidChp = fTrue;\n            return fTrue;\n        }\n\n        _EnsureChpIns();\n        if (fontNil != (grfont = pchp->grfont ^ pchpDiff->grfont))\n            _chpIns.grfont = (_chpIns.grfont & ~grfont) | (pchp->grfont & grfont);\n        if (pchp->onn != pchpDiff->onn)\n            _chpIns.onn = pchp->onn;\n        if (pchp->dypFont != pchpDiff->dypFont)\n            _chpIns.dypFont = pchp->dypFont;\n        if (pchp->dypOffset != pchpDiff->dypOffset)\n            _chpIns.dypOffset = pchp->dypOffset;\n        if (pchp->acrFore != pchpDiff->acrFore)\n            _chpIns.acrFore = pchp->acrFore;\n        if (pchp->acrBack != pchpDiff->acrBack)\n            _chpIns.acrBack = pchp->acrBack;\n        AssertThis(0);\n        return fTrue;\n    }\n\n    _SwitchSel(fFalse, ginNil);\n    if (!((PTXRD)_ptxtb)->FApplyChp(cpMin, cpLim - cpMin, pchp, pchpDiff))\n    {\n        _SwitchSel(fTrue, kginMark);\n        return fFalse;\n    }\n    _fValidChp = fFalse;\n    SetSel(cpAnchor, cpOther);\n    ShowSel();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Apply the given paragraph properties to the current selection.\n***************************************************************************/\nbool TXRG::FApplyPap(PPAP ppap, PPAP ppapDiff, bool fExpand)\n{\n    AssertThis(0);\n    AssertVarMem(ppap);\n    AssertNilOrVarMem(ppapDiff);\n    long cpMin, cpLim, cpAnchor, cpOther;\n\n    cpMin = LwMin(cpAnchor = _cpAnchor, cpOther = _cpOther);\n    cpLim = LwMax(_cpAnchor, _cpOther);\n\n    _SwitchSel(fFalse, ginNil);\n    if (!((PTXRD)_ptxtb)->FApplyPap(cpMin, cpLim - cpMin, ppap, ppapDiff, pvNil, pvNil, fExpand))\n    {\n        _SwitchSel(fTrue, kginMark);\n        return fFalse;\n    }\n\n    SetSel(cpAnchor, cpOther);\n    ShowSel();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Apply a character or paragraph property\n***************************************************************************/\nbool TXRG::FCmdApplyProperty(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CHP chpOld, chpNew;\n    PAP papOld, papNew;\n    long onn;\n    STN stn;\n\n    ClearPb(&papOld, size(PAP));\n    papNew = papOld;\n\n    _EnsureChpIns();\n    chpOld = chpNew = _chpIns;\n\n    switch (pcmd->cid)\n    {\n    case cidPlain:\n        chpNew.grfont = fontNil;\n        chpOld.grfont = (ulong)~fontNil;\n        goto LApplyChp;\n    case cidBold:\n        chpNew.grfont ^= fontBold;\n        goto LApplyChp;\n    case cidItalic:\n        chpNew.grfont ^= fontItalic;\n        goto LApplyChp;\n    case cidUnderline:\n        chpNew.grfont ^= fontUnderline;\n        goto LApplyChp;\n    case cidChooseFont:\n        if (pvNil == pcmd->pgg || pcmd->pgg->IvMac() != 1 || !stn.FSetData(pcmd->pgg->QvGet(0), pcmd->pgg->Cb(0)))\n        {\n            break;\n        }\n        if (!vntl.FGetOnn(&stn, &onn))\n            break;\n        chpNew.onn = onn;\n        chpOld.onn = ~onn;\n        goto LApplyChp;\n    case cidChooseSubSuper:\n        // the amount to offset by is pcmd->rglw[0] ^ (1L << 31), so 0 can be\n        // used to indicate that we're to ask the user.\n        if (pcmd->rglw[0] == 0)\n        {\n            long dyp = _chpIns.dypOffset;\n\n            // ask the user for the amount to sub/superscript by\n            if (!_FGetOtherSubSuper(&dyp))\n                return fTrue;\n            pcmd->rglw[0] = dyp ^ (1L << 31);\n        }\n        chpNew.dypOffset = pcmd->rglw[0] ^ (1L << 31);\n        chpOld.dypOffset = ~chpNew.dypOffset;\n        goto LApplyChp;\n    case cidChooseFontSize:\n        if (pcmd->rglw[0] == 0)\n        {\n            long dyp = _chpIns.dypFont;\n\n            // ask the user for the font size\n            if (!_FGetOtherSize(&dyp))\n                return fTrue;\n            pcmd->rglw[0] = dyp;\n        }\n        if (!FIn(pcmd->rglw[0], 6, 256))\n            return fTrue;\n        chpNew.dypFont = pcmd->rglw[0];\n        chpOld.dypFont = ~pcmd->rglw[0];\n    LApplyChp:\n        FApplyChp(&chpNew, &chpOld);\n        break;\n\n    case cidJustifyLeft:\n        papNew.jc = jcLeft;\n        papOld.jc = jcLim;\n        goto LApplyPap;\n    case cidJustifyCenter:\n        papNew.jc = jcCenter;\n        papOld.jc = jcLim;\n        goto LApplyPap;\n    case cidJustifyRight:\n        papNew.jc = jcRight;\n        papOld.jc = jcLim;\n        goto LApplyPap;\n    case cidIndentNone:\n        papNew.nd = ndNone;\n        papOld.nd = ndLim;\n        goto LApplyPap;\n    case cidIndentFirst:\n        papNew.nd = ndFirst;\n        papOld.nd = ndLim;\n        goto LApplyPap;\n    case cidIndentRest:\n        papNew.nd = ndRest;\n        papOld.nd = ndLim;\n        goto LApplyPap;\n    case cidIndentAll:\n        papNew.nd = ndAll;\n        papOld.nd = ndLim;\n    LApplyPap:\n        FApplyPap(&papNew, &papOld);\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Get a font size from the user.\n***************************************************************************/\nbool TXRG::_FGetOtherSize(long *pdypFont)\n{\n    AssertThis(0);\n    AssertVarMem(pdypFont);\n\n    TrashVar(pdypFont);\n    return fFalse;\n}\n\n/***************************************************************************\n    Get the amount to sub/superscript from the user.\n***************************************************************************/\nbool TXRG::_FGetOtherSubSuper(long *pdypOffset)\n{\n    AssertThis(0);\n    AssertVarMem(pdypOffset);\n\n    TrashVar(pdypOffset);\n    return fFalse;\n}\n\n/***************************************************************************\n    Apply a character or paragraph property\n***************************************************************************/\nbool TXRG::FSetColor(ACR *pacrFore, ACR *pacrBack)\n{\n    AssertThis(0);\n    AssertNilOrPo(pacrFore, 0);\n    AssertNilOrPo(pacrBack, 0);\n    CHP chp, chpDiff;\n\n    chp.Clear();\n    chpDiff.Clear();\n\n    if (pvNil != pacrFore)\n    {\n        chp.acrFore = *pacrFore;\n        chpDiff.acrFore.SetToInvert();\n        if (chpDiff.acrFore == chp.acrFore)\n            chpDiff.acrFore.SetToClear();\n    }\n    if (pvNil != pacrBack)\n    {\n        chp.acrBack = *pacrBack;\n        chpDiff.acrBack.SetToInvert();\n        if (chpDiff.acrBack == chp.acrBack)\n            chpDiff.acrBack.SetToClear();\n    }\n\n    return FApplyChp(&chp, &chpDiff);\n}\n\n/***************************************************************************\n    Enable, check/uncheck property commands.\n***************************************************************************/\nbool TXRG::FEnablePropCmd(PCMD pcmd, ulong *pgrfeds)\n{\n    PAP pap;\n    bool fCheck;\n    STN stn, stnT;\n\n    _EnsureChpIns();\n    ((PTXRD)_ptxtb)->FetchPap(LwMin(_cpAnchor, _cpOther), &pap);\n\n    switch (pcmd->cid)\n    {\n    case cidPlain:\n        fCheck = (_chpIns.grfont == fontNil);\n        break;\n    case cidBold:\n        fCheck = FPure(_chpIns.grfont & fontBold);\n        break;\n    case cidItalic:\n        fCheck = FPure(_chpIns.grfont & fontItalic);\n        break;\n    case cidUnderline:\n        fCheck = FPure(_chpIns.grfont & fontUnderline);\n        break;\n\n    case cidChooseFont:\n        if (pvNil == pcmd->pgg || pcmd->pgg->IvMac() != 1)\n            break;\n        if (!stnT.FSetData(pcmd->pgg->PvLock(0), pcmd->pgg->Cb(0)))\n        {\n            pcmd->pgg->Unlock();\n            break;\n        }\n        pcmd->pgg->Unlock();\n        vntl.GetStn(_chpIns.onn, &stn);\n        fCheck = stn.FEqual(&stnT);\n        break;\n\n    case cidChooseFontSize:\n        fCheck = (_chpIns.dypFont == pcmd->rglw[0]);\n        break;\n    case cidChooseSubSuper:\n        fCheck = (_chpIns.dypOffset == (pcmd->rglw[0] ^ (1L << 31)));\n        break;\n\n    case cidJustifyLeft:\n        fCheck = (pap.jc == jcLeft);\n        break;\n    case cidJustifyCenter:\n        fCheck = (pap.jc == jcCenter);\n        break;\n    case cidJustifyRight:\n        fCheck = (pap.jc == jcRight);\n        break;\n    case cidIndentNone:\n        fCheck = (pap.nd == ndNone);\n        break;\n    case cidIndentFirst:\n        fCheck = (pap.nd == ndFirst);\n        break;\n    case cidIndentRest:\n        fCheck = (pap.nd == ndRest);\n        break;\n    case cidIndentAll:\n        fCheck = (pap.nd == ndAll);\n        break;\n    }\n    *pgrfeds = fCheck ? fedsEnable | fedsCheck : fedsEnable | fedsUncheck;\n\n    return fTrue;\n}\n"
  },
  {
    "path": "kauai/src/scrcom.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Script compiler.  This supports a post-fix (RPN-style) stack base\n    \"assembly\" language and an in-fix (standard) higher level language similar\n    to \"C\" in its operator set and syntax.  The only data type supported\n    is 32 bit signed integers.  The SCCB class can also \"disassemble\"\n    a script.  Compilation is case sensitive.  The in-fix compiler supports\n    all valid \"C\" expressions not involving arrays, pointers or structures,\n    including the ternary operator (?:).  Supported control structures\n    include While and If blocks, with the following syntax:\n\n        While (exp);\n            // statements\n        End;\n\n        If (exp);\n            // statements\n        Elif (exp);\n            // statements\n        Else;\n            // statements\n        End;\n\n    The semicolons after the keywords are required (they make compilation\n    easier); the Elif and Else clauses are (of course) optional.  A \"Break;\"\n    primitive is also supported to exit a While loop early.  The in-fix\n    compiler also supports \"IfGoto(exp, label$);\" and \"Goto(label$);\".  These\n    are compiled directly to single op-codes (plus operands) so are treated\n    differently than the control structures.  See the _rgarop array below\n    for other function-like primitives supported by the in-fix compiler.\n\n    Label references appear in the in-fix source as a name followed by a $ sign,\n    eg, \"Goto(label$);\".  Label definitions are a name followed by an @ sign.\n\n    In the post-fix source, label references are $label and label definitions\n    are @label.\n\n    Local variables as well as sub-class defined \"this\" variables and remote\n    variables are supported.  Variables are not declared, are case sensitive\n    and have 8 significant characters.  During execution, if a variable is used\n    before being assigned to, its value is 0 and a warning is generated.\n\n    For in-fix compilation, \"this\" variables are preceeded by a period and\n    remote variables are preceeded by \"exp->\" where exp is a valid numeric\n    expression.  The -> operator has very high precedence, so it's common\n    to have () around the expression.\n\n    For post-fix compilation, this variables are again prefixed by a period\n    and remote variables are preceeded by a ~.  Remote variable accesses use\n    the top stack value for their \"address\".  Use the < operator to push a\n    variable and > to pop the top stack value into a variable.  Constants\n    in the source are automatically pushed.  Here's a sample post-fix script\n    that computes the 10th Fibonacci number and stores it in a remote variable.\n    The in-fix equivalent is given in the comments.  Of course, an in-fix\n    version of this could use a While loop.\n\n        1 Dup >a >b 10 >n\t\t\t// a = b = 1; n = 10;\n        $LTest Go\t\t\t\t\t// Goto (LTest$);\n    @LLoop\t\t\t\t\t\t\t// LLoop@\n        <a Dup <b Add >a >b\t\t\t// temp = a; a += b; b = temp;\n    @LTest\t\t\t\t\t\t\t// LTest@\n        $LLoop <n Dec Dup >n GoNz\t// IfGoto (--n, LLoop$);\n        <a 100 >~answer\t\t\t\t// 100->answer = a;\n\n\n    A compiled script consists of a GL of longs.  Each long is one of 3 types:\n\n        1) an opcode that acts on a variable:\n            byte : opcode\n            byte : number of immediate longs that follow (at least 1)\n            short: 2 bytes of rtvn data, the other 4 bytes are in the next long\n        2) an opcode that doesn't involve a variable:\n            byte : 0\n            byte : number of immediate longs that follow\n            short: opcode\n        3) immediate data\n\n    After executing an opcode that doesn't jump, the immediate data is placed on\n    the execution stack en-masse.  In the case of a variable opcode, the first\n    long is used as part of the rtvn, so isn't placed on the stack.\n\n    Label references are considered immediate data and consist of\n    kbLabel in the high byte and the destination index (into the gl) in\n    the low 3 bytes.\n\n    The first long in the GL is version number information (a dver).\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\nRTCLASS(SCCB)\n\n// common error messages\nPSZ _pszOom = PszLit(\"Out of memory\");\nPSZ _pszSyntax = PszLit(\"Syntax error\");\n\n// name to op lookup table for post-fix compilation\nSZOP _rgszop[] = {\n    {kopAdd, PszLit(\"Add\")},\n    {kopSub, PszLit(\"Sub\")},\n    {kopMul, PszLit(\"Mul\")},\n    {kopDiv, PszLit(\"Div\")},\n    {kopMod, PszLit(\"Mod\")},\n    {kopAbs, PszLit(\"Abs\")},\n    {kopNeg, PszLit(\"Neg\")},\n    {kopInc, PszLit(\"Inc\")},\n    {kopDec, PszLit(\"Dec\")},\n    {kopRnd, PszLit(\"Rnd\")},\n    {kopMulDiv, PszLit(\"MulDiv\")},\n    {kopBAnd, PszLit(\"BAnd\")},\n    {kopBOr, PszLit(\"BOr\")},\n    {kopBXor, PszLit(\"BXor\")},\n    {kopBNot, PszLit(\"BNot\")},\n    {kopLXor, PszLit(\"LXor\")},\n    {kopLNot, PszLit(\"LNot\")},\n    {kopEq, PszLit(\"Eq\")},\n    {kopNe, PszLit(\"Ne\")},\n    {kopGt, PszLit(\"Gt\")},\n    {kopLt, PszLit(\"Lt\")},\n    {kopGe, PszLit(\"Ge\")},\n    {kopLe, PszLit(\"Le\")},\n    {kopDup, PszLit(\"Dup\")},\n    {kopPop, PszLit(\"Pop\")},\n    {kopSwap, PszLit(\"Swap\")},\n    {kopRot, PszLit(\"Rot\")},\n    {kopRev, PszLit(\"Rev\")},\n    {kopDupList, PszLit(\"DupList\")},\n    {kopPopList, PszLit(\"PopList\")},\n    {kopRndList, PszLit(\"RndList\")},\n    {kopSelect, PszLit(\"Select\")},\n    {kopGoEq, PszLit(\"GoEq\")},\n    {kopGoNe, PszLit(\"GoNe\")},\n    {kopGoGt, PszLit(\"GoGt\")},\n    {kopGoLt, PszLit(\"GoLt\")},\n    {kopGoGe, PszLit(\"GoGe\")},\n    {kopGoLe, PszLit(\"GoLe\")},\n    {kopGoZ, PszLit(\"GoZ\")},\n    {kopGoNz, PszLit(\"GoNz\")},\n    {kopGo, PszLit(\"Go\")},\n    {kopExit, PszLit(\"Exit\")},\n    {kopReturn, PszLit(\"Return\")},\n    {kopSetReturn, PszLit(\"SetReturn\")},\n    {kopShuffle, PszLit(\"Shuffle\")},\n    {kopShuffleList, PszLit(\"ShuffleList\")},\n    {kopNextCard, PszLit(\"NextCard\")},\n    {kopMatch, PszLit(\"Match\")},\n    {kopPause, PszLit(\"Pause\")},\n    {kopCopyStr, PszLit(\"CopyStr\")},\n    {kopMoveStr, PszLit(\"MoveStr\")},\n    {kopNukeStr, PszLit(\"NukeStr\")},\n    {kopMergeStrs, PszLit(\"MergeStrs\")},\n    {kopScaleTime, PszLit(\"ScaleTime\")},\n    {kopNumToStr, PszLit(\"NumToStr\")},\n    {kopStrToNum, PszLit(\"StrToNum\")},\n    {kopConcatStrs, PszLit(\"ConcatStrs\")},\n    {kopLenStr, PszLit(\"LenStr\")},\n    {kopCopySubStr, PszLit(\"CopySubStr\")},\n    {opNil, pvNil},\n};\n\n// name to op look up table for in-fix compilation\nAROP _rgarop[] = {\n    {kopAbs, PszLit(\"Abs\"), 1, 0, 0, fFalse},\n    {kopRnd, PszLit(\"Rnd\"), 1, 0, 0, fFalse},\n    {kopMulDiv, PszLit(\"MulDiv\"), 3, 0, 0, fFalse},\n    {kopRndList, PszLit(\"RndList\"), 0, 1, 1, fFalse},\n    {kopSelect, PszLit(\"Select\"), 1, 1, 1, fFalse},\n    {kopGoNz, PszLit(\"IfGoto\"), 2, 0, 0, fTrue},\n    {kopGo, PszLit(\"Goto\"), 1, 0, 0, fTrue},\n    {kopExit, PszLit(\"Exit\"), 0, 0, 0, fTrue},\n    {kopReturn, PszLit(\"Return\"), 1, 0, 0, fTrue},\n    {kopSetReturn, PszLit(\"SetReturn\"), 1, 0, 0, fTrue},\n    {kopShuffle, PszLit(\"Shuffle\"), 1, 0, 0, fTrue},\n    {kopShuffleList, PszLit(\"ShuffleList\"), 0, 1, 1, fTrue},\n    {kopNextCard, PszLit(\"NextCard\"), 0, 0, 0, fFalse},\n    {kopMatch, PszLit(\"Match\"), 2, 2, 1, fFalse},\n    {kopPause, PszLit(\"Pause\"), 0, 0, 0, fTrue},\n    {kopCopyStr, PszLit(\"CopyStr\"), 2, 0, 0, fFalse},\n    {kopMoveStr, PszLit(\"MoveStr\"), 2, 0, 0, fFalse},\n    {kopNukeStr, PszLit(\"NukeStr\"), 1, 0, 0, fTrue},\n    {kopMergeStrs, PszLit(\"MergeStrs\"), 2, 0, 0, fTrue},\n    {kopScaleTime, PszLit(\"ScaleTime\"), 1, 0, 0, fTrue},\n    {kopNumToStr, PszLit(\"NumToStr\"), 2, 0, 0, fFalse},\n    {kopStrToNum, PszLit(\"StrToNum\"), 3, 0, 0, fFalse},\n    {kopConcatStrs, PszLit(\"ConcatStrs\"), 3, 0, 0, fFalse},\n    {kopLenStr, PszLit(\"LenStr\"), 1, 0, 0, fFalse},\n    {kopCopySubStr, PszLit(\"CopySubStr\"), 4, 0, 0, fFalse},\n    {opNil, pvNil, 0, 0, 0, fTrue},\n};\n\nPSZ _rgpszKey[] = {\n    PszLit(\"If\"), PszLit(\"Elif\"), PszLit(\"Else\"), PszLit(\"End\"), PszLit(\"While\"), PszLit(\"Break\"), PszLit(\"Continue\"),\n};\n\nenum\n{\n    kipszIf,\n    kipszElif,\n    kipszElse,\n    kipszEnd,\n    kipszWhile,\n    kipszBreak,\n    kipszContinue,\n};\n\n// An opcode long can be followed by at most 255 immediate values\n#define kclwLimPush 256\n\n// operator flags - for in-fix compilation\nenum\n{\n    fopNil = 0,\n    fopOp = 1,         // an operator\n    fopAssign = 2,     // an assignment operator\n    fopPostAssign = 4, // unary operator acts after using the value\n    fopFunction = 8,   // a function\n    fopArray = 16,     // an array reference\n};\n\n// expression tree node - for in-fix compilation\nstruct ETN\n{\n    short tt;     // the token type\n    short op;     // operator (or function) to generate\n    short opl;    // operator precedence level\n    short grfop;  // flags\n    long lwValue; // value if a ttLong; an istn if a ttName\n    long ietn1;   // indices into _pgletnTree for the operands\n    long ietn2;\n    long ietn3;\n    long cetnDeep; // depth of the etn tree to here\n};\n\n// control structure types - these are the keywords that are followed\n// by a condition (which is why Else is not here).\nenum\n{\n    cstNil,\n    cstIf,\n    cstElif,\n    cstWhile,\n};\n\n// control structure descriptor\nstruct CSTD\n{\n    long cst;\n    long lwLabel1;  // use depends on cst\n    long lwLabel2;  // use depends on cst\n    long lwLabel3;  // use depends on cst\n    PGL pgletnTree; // for while loops - the expression tree\n    long ietnTop;   // the top of the expression tree\n};\n\n/***************************************************************************\n    Constructor for a script compiler.\n***************************************************************************/\nSCCB::SCCB(void)\n{\n    AssertBaseThis(0);\n    _plexb = pvNil;\n    _pscpt = pvNil;\n    _pgletnTree = pvNil;\n    _pgletnStack = pvNil;\n    _pglcstd = pvNil;\n    _pgstNames = pvNil;\n    _pgstLabel = pvNil;\n    _pgstReq = pvNil;\n    _pmsnk = pvNil;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for a script compiler.\n***************************************************************************/\nSCCB::~SCCB(void)\n{\n    AssertThis(0);\n    _Free();\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a SCCB.\n***************************************************************************/\nvoid SCCB::AssertValid(ulong grf)\n{\n    SCCB_PAR::AssertValid(0);\n    AssertNilOrPo(_plexb, 0);\n    AssertNilOrPo(_pscpt, 0);\n    AssertNilOrPo(_pgletnTree, 0);\n    AssertNilOrPo(_pgletnStack, 0);\n    AssertNilOrPo(_pglcstd, 0);\n    AssertNilOrPo(_pgstNames, 0);\n    AssertNilOrPo(_pgstLabel, 0);\n    AssertNilOrPo(_pgstReq, 0);\n    AssertNilOrPo(_pmsnk, 0);\n}\n\n/***************************************************************************\n    Mark memory for the SCCB.\n***************************************************************************/\nvoid SCCB::MarkMem(void)\n{\n    AssertValid(0);\n\n    SCCB_PAR::MarkMem();\n    MarkMemObj(_plexb);\n    MarkMemObj(_pscpt);\n    MarkMemObj(_pgletnTree);\n    MarkMemObj(_pgletnStack);\n    if (pvNil != _pglcstd)\n    {\n        long icstd;\n        CSTD cstd;\n\n        MarkMemObj(_pglcstd);\n        for (icstd = _pglcstd->IvMac(); icstd-- > 0;)\n        {\n            _pglcstd->Get(icstd, &cstd);\n            MarkMemObj(cstd.pgletnTree);\n        }\n    }\n    MarkMemObj(_pgstNames);\n    MarkMemObj(_pgstLabel);\n    MarkMemObj(_pgstReq);\n    MarkMemObj(_pmsnk);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Initializes the script compiler to compile the stream from the given\n    lexer object.  pmsnk is a message sink for error reporting.\n***************************************************************************/\nbool SCCB::_FInit(PLEXB plexb, bool fInFix, PMSNK pmsnk)\n{\n    AssertThis(0);\n    AssertPo(plexb, 0);\n    AssertPo(pmsnk, 0);\n    long lw;\n\n    _Free();\n    _fError = fFalse;\n    _fHitEnd = fFalse;\n    _plexb = plexb;\n    _plexb->AddRef();\n    _pmsnk = pmsnk;\n    _pmsnk->AddRef();\n\n    if (fInFix)\n    {\n        // in-fix compilation requires an expression stack, expression parse\n        // tree and a control structure stack\n        if (pvNil == (_pgletnTree = GL::PglNew(size(ETN))) || pvNil == (_pgletnStack = GL::PglNew(size(ETN))) ||\n            pvNil == (_pglcstd = GL::PglNew(size(CSTD))))\n        {\n            _Free();\n            return fFalse;\n        }\n        _pgletnTree->SetMinGrow(100);\n        _pgletnStack->SetMinGrow(100);\n    }\n\n    if (pvNil == (_pscpt = NewObj SCPT) || pvNil == (_pscpt->_pgllw = GL::PglNew(size(long))))\n    {\n        ReleasePpo(&_pscpt);\n    }\n    else\n        _pscpt->_pgllw->SetMinGrow(100);\n\n    // code starts at slot 1 because the version numbers are in slot 0.\n    _ilwOpLast = 1;\n\n    // compiled code must start with an operator\n    _fForceOp = fTrue;\n\n    // put version info in the script\n    lw = LwHighLow(_SwCur(), _SwBack());\n    if (pvNil == _pscpt || !_pscpt->_pgllw->FPush(&lw))\n        _ReportError(_pszOom);\n\n    _lwLastLabel = 0; // for internal labels\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Free all memory hanging off this SCCB.\n***************************************************************************/\nvoid SCCB::_Free(void)\n{\n    AssertThis(0);\n    CSTD cstd;\n\n    ReleasePpo(&_pscpt);\n    ReleasePpo(&_plexb);\n    ReleasePpo(&_pmsnk);\n    ReleasePpo(&_pgstLabel);\n    ReleasePpo(&_pgstReq);\n    ReleasePpo(&_pgletnTree);\n    ReleasePpo(&_pgletnStack);\n    if (pvNil != _pglcstd)\n    {\n        while (_pglcstd->FPop(&cstd))\n            ReleasePpo(&cstd.pgletnTree);\n        ReleasePpo(&_pglcstd);\n    }\n    ReleasePpo(&_pgstNames);\n}\n\n/***************************************************************************\n    Compile a script given a lexer object.  Compilation is terminated when\n    the lexer's stream is exhausted or token ttEnd is encountered.  ttEnd\n    allows scripts to be embedded in source for other tools (such as\n    chomp.exe).\n***************************************************************************/\nPSCPT SCCB::PscptCompileLex(PLEXB plexb, bool fInFix, PMSNK pmsnk, long ttEnd)\n{\n    AssertThis(0);\n    AssertPo(plexb, 0);\n    AssertPo(pmsnk, 0);\n    PSCPT pscpt;\n\n    if (!_FInit(plexb, fInFix, pmsnk))\n        return pvNil;\n    _ttEnd = ttEnd;\n\n    if (fInFix)\n        _CompileIn();\n    else\n        _CompilePost();\n\n    // link all the label requests with the labels\n    if (pvNil != _pgstReq)\n    {\n        AssertPo(_pgstReq, 0);\n        long istn;\n        long lw, ilw;\n        STN stn;\n\n        for (istn = _pgstReq->IstnMac(); istn-- > 0;)\n        {\n            _pgstReq->GetStn(istn, &stn);\n            if (!_FFindLabel(&stn, &lw))\n            {\n                // undefined label\n                _ReportError(PszLit(\"Undefined label\"));\n            }\n            else if (pvNil != _pscpt)\n            {\n                AssertPo(_pscpt, 0);\n                _pgstReq->GetExtra(istn, &ilw);\n                Assert(B3Lw(lw) == kbLabel, 0);\n                AssertIn(ilw, 1, _pscpt->_pgllw->IvMac());\n                _pscpt->_pgllw->Put(ilw, &lw);\n            }\n        }\n    }\n\n    pscpt = _pscpt;\n    _pscpt = pvNil;\n    _Free();\n    return pscpt;\n}\n\n/***************************************************************************\n    Compile the given text file and return the executable script.\n    Uses the in-fix or post-fix compiler according to fInFix.\n***************************************************************************/\nPSCPT SCCB::PscptCompileFil(PFIL pfil, bool fInFix, PMSNK pmsnk)\n{\n    AssertThis(0);\n    AssertPo(pfil, 0);\n    AssertPo(pmsnk, 0);\n    PSCPT pscpt;\n    PLEXB plexb;\n\n    if (pvNil == (plexb = NewObj LEXB(pfil)))\n        return pvNil;\n    pscpt = PscptCompileLex(plexb, fInFix, pmsnk);\n    ReleasePpo(&plexb);\n    return pscpt;\n}\n\n/***************************************************************************\n    Compile a script from the given text file name.\n***************************************************************************/\nPSCPT SCCB::PscptCompileFni(FNI *pfni, bool fInFix, PMSNK pmsnk)\n{\n    AssertPo(pfni, ffniFile);\n    AssertPo(pmsnk, 0);\n    PFIL pfil;\n    PSCPT pscpt;\n\n    if (pvNil == (pfil = FIL::PfilOpen(pfni)))\n        return pvNil;\n    pscpt = PscptCompileFil(pfil, fInFix, pmsnk);\n    ReleasePpo(&pfil);\n    return pscpt;\n}\n\n/***************************************************************************\n    Get the next token.  Returns false if the token is a _ttEnd.\n***************************************************************************/\nbool SCCB::_FGetTok(PTOK ptok)\n{\n    AssertBaseThis(0);\n    AssertPo(_plexb, 0);\n    if (_fHitEnd || !_plexb->FGetTok(ptok) || ptok->tt == _ttEnd)\n    {\n        _fHitEnd = fTrue;\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the current version number of the script compiler.  This is\n    a virtual method so subclasses of SCCB can provide their own\n    version numbers.\n***************************************************************************/\nshort SCCB::_SwCur(void)\n{\n    AssertBaseThis(0);\n    return kswCurSccb;\n}\n\n/***************************************************************************\n    Return the back version number of the script compiler.  Versions\n    back to here can read this script.\n***************************************************************************/\nshort SCCB::_SwBack(void)\n{\n    AssertBaseThis(0);\n    return kswBackSccb;\n}\n\n/***************************************************************************\n    Return the min version number of the script compiler.  We can read\n    scripts back to this version.\n***************************************************************************/\nshort SCCB::_SwMin(void)\n{\n    AssertBaseThis(0);\n    return kswMinSccb;\n}\n\n/***************************************************************************\n    An error occured.  Report it to the message sink.\n***************************************************************************/\nvoid SCCB::_ReportError(PSZ psz)\n{\n    AssertThis(0);\n    AssertPo(_plexb, 0);\n    AssertPo(_pmsnk, 0);\n    STN stn;\n    STN stnFile;\n\n    ReleasePpo(&_pscpt);\n    _fError = fTrue;\n    _plexb->GetStnFile(&stnFile);\n    stn.FFormatSz(PszLit(\"%s(%d:%d) : error : %z\"), &stnFile, _plexb->LwLine(), _plexb->IchLine() + 1, psz);\n    _pmsnk->ReportLine(stn.Psz());\n}\n\n/***************************************************************************\n    The given long is immediate data to be pushed onto the execution stack.\n***************************************************************************/\nvoid SCCB::_PushLw(long lw)\n{\n    AssertThis(0);\n\n    if (_fError)\n        return;\n\n    AssertPo(_pscpt, 0);\n    if (_fForceOp || _pscpt->_pgllw->IvMac() - _ilwOpLast >= kclwLimPush)\n        _PushOp(opNil);\n    if (!_fError && !_pscpt->_pgllw->FPush(&lw))\n        _ReportError(_pszOom);\n}\n\n/***************************************************************************\n    \"Push\" a string constant.  Puts the string in the string table and emits\n    code to push the corresponding internal variable.\n***************************************************************************/\nvoid SCCB::_PushString(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    RTVN rtvn;\n    long istn;\n\n    if (_fError)\n        return;\n\n    AssertPo(_pscpt, 0);\n    if (pvNil == _pscpt->_pgstLiterals && pvNil == (_pscpt->_pgstLiterals = GST::PgstNew()) ||\n        !_pscpt->_pgstLiterals->FAddStn(pstn, pvNil, &istn))\n    {\n        _ReportError(_pszOom);\n        return;\n    }\n\n    rtvn.lu1 = 0;\n    rtvn.lu2 = istn;\n    _PushVarOp(kopPushLocVar, &rtvn);\n}\n\n/***************************************************************************\n    Add an opcode to the compiled script.\n***************************************************************************/\nvoid SCCB::_PushOp(long op)\n{\n    AssertThis(0);\n    Assert((long)(short)op == op, \"bad opcode\");\n    long lw;\n\n    if (_fError)\n        return;\n\n    AssertPo(_pscpt, 0);\n    _EndOp(); // complete the previous opcode\n    _ilwOpLast = _pscpt->_pgllw->IvMac();\n    lw = LwHighLow(0, (short)op);\n    if (!_pscpt->_pgllw->FPush(&lw))\n        _ReportError(_pszOom);\n    _fForceOp = fFalse;\n}\n\n/***************************************************************************\n    Close out an opcode by setting the number of immediate longs that follow.\n***************************************************************************/\nvoid SCCB::_EndOp(void)\n{\n    AssertThis(0);\n    long ilw;\n    long lw;\n\n    if (_fError)\n        return;\n\n    AssertPo(_pscpt, 0);\n    ilw = _pscpt->_pgllw->IvMac();\n    if (_ilwOpLast < ilw - 1)\n    {\n        // set the count of longs in the previous op\n        AssertIn(ilw - _ilwOpLast - 1, 1, kclwLimPush);\n        _pscpt->_pgllw->Get(_ilwOpLast, &lw);\n        lw = LwHighLow(SuHighLow(B3Lw(lw), (byte)(ilw - _ilwOpLast - 1)), SuLow(lw));\n        _pscpt->_pgllw->Put(_ilwOpLast, &lw);\n    }\n}\n\n/***************************************************************************\n    Add an opcode that acts on a variable.\n***************************************************************************/\nvoid SCCB::_PushVarOp(long op, RTVN *prtvn)\n{\n    AssertThis(0);\n    Assert((long)(byte)op == op, \"bad opcode\");\n    AssertVarMem(prtvn);\n    long lw;\n\n    _PushOp(opNil); // push a nil op, then fill it in below\n    if (_fError)\n        return;\n\n    // the high byte is op, the low word is part of the rtvn, the rest of the\n    // rtvn is in the next long\n    AssertPo(_pscpt, 0);\n    Assert(SuHigh(prtvn->lu1) == 0, \"bad rtvn\");\n    lw = prtvn->lu1 | (op << 24);\n    _pscpt->_pgllw->Put(_ilwOpLast, &lw);\n    if (!_pscpt->_pgllw->FPush(&prtvn->lu2))\n        _ReportError(_pszOom);\n}\n\n/***************************************************************************\n    Look up the indicated label and put it's location in *plwLoc.\n***************************************************************************/\nbool SCCB::_FFindLabel(PSTN pstn, long *plwLoc)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    AssertVarMem(plwLoc);\n    long istn;\n\n    if (pvNil == _pgstLabel || !_pgstLabel->FFindStn(pstn, &istn, fgstSorted))\n    {\n        TrashVar(plwLoc);\n        return fFalse;\n    }\n    _pgstLabel->GetExtra(istn, plwLoc);\n    return fTrue;\n}\n\n/***************************************************************************\n    Add the given label, giving it the current location.\n***************************************************************************/\nvoid SCCB::_AddLabel(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    long lw;\n    long istn;\n\n    if (pvNil == _pgstLabel && pvNil == (_pgstLabel = GST::PgstNew(size(long), 5, 100)))\n    {\n        _ReportError(_pszOom);\n        return;\n    }\n    if (_pgstLabel->FFindStn(pstn, &istn, fgstSorted))\n    {\n        _ReportError(PszLit(\"duplicate label\"));\n        return;\n    }\n    lw = LwFromBytes(kbLabel, 0, 0, 0);\n    if (pvNil != _pscpt)\n    {\n        AssertPo(_pscpt, 0);\n        lw |= _pscpt->_pgllw->IvMac();\n    }\n    Assert(B3Lw(lw) == kbLabel, 0);\n\n    // a label must address an opcode, not immediate data\n    _fForceOp = fTrue;\n\n    if (!_pgstLabel->FInsertStn(istn, pstn, &lw))\n        _ReportError(_pszOom);\n}\n\n/***************************************************************************\n    Add the label request to the request gst and put an immediate value\n    of 0 in the compiled script.  When compilation is finished, we'll\n    write the actual value for the label.\n***************************************************************************/\nvoid SCCB::_PushLabelRequest(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    long lw;\n\n    if (_fError)\n        return;\n\n    if (pvNil == _pgstReq && pvNil == (_pgstReq = GST::PgstNew(size(long), 10, 200)))\n    {\n        _ReportError(_pszOom);\n        return;\n    }\n    _PushLw(0);\n    if (_fError)\n        return;\n\n    AssertPo(_pscpt, 0);\n    lw = _pscpt->_pgllw->IvMac() - 1;\n    if (!_pgstReq->FAddStn(pstn, &lw))\n        _ReportError(_pszOom);\n}\n\n/***************************************************************************\n    Add an internal label.  These are numeric to avoid conflicting with\n    a user defined label.\n***************************************************************************/\nvoid SCCB::_AddLabelLw(long lw)\n{\n    AssertThis(0);\n    STN stn;\n\n    stn.FFormatSz(PszLit(\"0%x\"), lw);\n    _AddLabel(&stn);\n}\n\n/***************************************************************************\n    Push an internal label request.\n***************************************************************************/\nvoid SCCB::_PushLabelRequestLw(long lw)\n{\n    AssertThis(0);\n    STN stn;\n\n    stn.FFormatSz(PszLit(\"0%x\"), lw);\n    _PushLabelRequest(&stn);\n}\n\n/***************************************************************************\n    Find the opcode that corresponds to the given stn.\n***************************************************************************/\nlong SCCB::_OpFromStn(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    return _OpFromStnRgszop(pstn, _rgszop);\n}\n\n/***************************************************************************\n    Check the pstn against the strings in the prgszop and return the\n    corresponding op code.\n***************************************************************************/\nlong SCCB::_OpFromStnRgszop(PSTN pstn, SZOP *prgszop)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    AssertVarMem(prgszop);\n    SZOP *pszop;\n\n    for (pszop = prgszop; pszop->psz != pvNil; pszop++)\n    {\n        if (pstn->FEqualSz(pszop->psz))\n            return pszop->op;\n    }\n    return opNil;\n}\n\n/***************************************************************************\n    Find the string corresponding to the given opcode.  This is used during\n    disassembly.\n***************************************************************************/\nbool SCCB::_FGetStnFromOp(long op, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    return _FGetStnFromOpRgszop(op, pstn, _rgszop);\n}\n\n/***************************************************************************\n    Check the op against the ops in the prgszop and return the corresponding\n    string.\n***************************************************************************/\nbool SCCB::_FGetStnFromOpRgszop(long op, PSTN pstn, SZOP *prgszop)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    AssertVarMem(prgszop);\n    SZOP *pszop;\n\n    for (pszop = prgszop; pszop->psz != pvNil; pszop++)\n    {\n        if (op == pszop->op)\n        {\n            *pstn = pszop->psz;\n            return fTrue;\n        }\n    }\n    pstn->SetNil();\n    return fFalse;\n}\n\n/***************************************************************************\n    Compile the post-fix script source in _plexb.\n***************************************************************************/\nvoid SCCB::_CompilePost(void)\n{\n    AssertThis(0);\n    AssertPo(_plexb, 0);\n    TOK tok;\n    long op;\n    RTVN rtvn;\n\n    while (_FGetTok(&tok))\n    {\n        switch (tok.tt)\n        {\n        default:\n            _ReportError(_pszSyntax);\n            break;\n\n        case ttLong:\n            _PushLw(tok.lw);\n            break;\n\n        case ttString:\n            _PushString(&tok.stn);\n            break;\n\n        case ttSub:\n            // handle unary minus on constants only\n            if (!_FGetTok(&tok) || tok.tt != ttLong)\n                _ReportError(_pszSyntax);\n            else\n                _PushLw(-tok.lw);\n            break;\n\n        case ttName:\n            op = _OpFromStn(&tok.stn);\n            if (opNil == op)\n                _ReportError(PszLit(\"Unknown name\"));\n            else\n                _PushOp(op);\n            break;\n\n        case ttGt:\n            // pop into a variable\n            if (!_FGetTok(&tok))\n            {\n                _ReportError(_pszSyntax);\n                break;\n            }\n            op = kopPopLocVar;\n            switch (tok.tt)\n            {\n            case ttBNot:\n                op = kopPopRemoteVar;\n                goto LGetName;\n            case ttDot:\n                op = kopPopThisVar;\n                goto LGetName;\n            case ttScope:\n                op = kopPopGlobalVar;\n                goto LGetName;\n            }\n            goto LAcceptName;\n\n        case ttLt:\n            // push a variable\n            if (!_FGetTok(&tok))\n            {\n                _ReportError(_pszSyntax);\n                break;\n            }\n            op = kopPushLocVar;\n            switch (tok.tt)\n            {\n            case ttBNot:\n                op = kopPushRemoteVar;\n                goto LGetName;\n            case ttDot:\n                op = kopPushThisVar;\n                goto LGetName;\n            case ttScope:\n                op = kopPushGlobalVar;\n            LGetName:\n                if (!_FGetTok(&tok))\n                {\n                    _ReportError(_pszSyntax);\n                    break;\n                }\n                break;\n            }\n\n        LAcceptName:\n            if (tok.tt == ttBAnd)\n            {\n                // an array access\n                op += kopPushLocArray - kopPushLocVar;\n                if (!_FGetTok(&tok))\n                {\n                    _ReportError(_pszSyntax);\n                    break;\n                }\n            }\n            if (tok.tt == ttName && _OpFromStn(&tok.stn) == opNil)\n            {\n                rtvn.SetFromStn(&tok.stn);\n                _PushVarOp(op, &rtvn);\n            }\n            else\n                _ReportError(PszLit(\"Variable expected\"));\n            break;\n\n        case ttDollar:\n            // label reference\n            if (_FGetTok(&tok) && tok.tt == ttName && _OpFromStn(&tok.stn) == opNil)\n            {\n                _PushLabelRequest(&tok.stn);\n            }\n            else\n                _ReportError(_pszSyntax);\n            break;\n\n        case ttAt:\n            // label definition\n            if (_FGetTok(&tok) && tok.tt == ttName && _OpFromStn(&tok.stn) == opNil)\n            {\n                _AddLabel(&tok.stn);\n            }\n            else\n                _ReportError(_pszSyntax);\n            break;\n        }\n    }\n\n    // complete the last opcode\n    _EndOp();\n}\n\n/***************************************************************************\n    In-fix compiler declarations and tables.\n***************************************************************************/\n\n// operator precedence levels\nenum\n{\n    oplNil = 0,\n    koplComma,\n    koplAssign,\n    koplColon,\n    koplLOr,\n    koplLXor,\n    koplLAnd,\n    koplBOr,\n    koplBXor,\n    koplBAnd,\n    koplEq,\n    koplRel,\n    koplShift,\n    koplAdd,\n    koplMul,\n    koplPreUn,\n    koplPostUn,\n    koplGroup,\n    koplNumber,\n    koplRemoteName,\n    koplThisName,\n    koplGlobalName,\n    koplArrayName,\n    koplName,\n    koplMax\n};\n\n// token-operator map entry\nstruct TOME\n{\n    short tt;\n    short grfop;\n    short op;\n    short oplResolve;\n    short oplMinRes;\n    short ttPop;\n    short oplPush;\n};\n\n#define _TomeCore(tt, grfop, op, oplRes, oplMin, ttPop, oplPush)                                                       \\\n    {                                                                                                                  \\\n        tt, grfop, op, oplRes, oplMin, ttPop, oplPush                                                                  \\\n    }\n#define _TomeRes(tt, op, oplRes)                                                                                       \\\n    {                                                                                                                  \\\n        tt, fopOp, op, oplRes, oplRes, ttNil, oplRes                                                                   \\\n    }\n#define _TomePush(tt, op, oplPush)                                                                                     \\\n    {                                                                                                                  \\\n        tt, fopOp, op, oplNil, oplNil, ttNil, oplPush                                                                  \\\n    }\n\n// following a non-operator\nTOME _rgtomeExp[] = {\n    _TomeCore(ttOpenParen, fopOp | fopFunction, opNil, koplName, koplName, ttNil, oplNil), // function call\n    _TomeCore(ttCloseParen, fopNil, opNil, koplComma, koplComma, ttOpenParen, koplGroup),\n    _TomeCore(ttOpenRef, fopOp | fopArray, opNil, koplName, koplName, ttNil, oplNil), // array reference\n    _TomeCore(ttCloseRef, fopNil, opNil, koplComma, koplComma, ttOpenRef, koplArrayName),\n\n    _TomeRes(ttAdd, kopAdd, koplAdd), _TomeRes(ttSub, kopSub, koplAdd), _TomeRes(ttMul, kopMul, koplMul),\n    _TomeRes(ttDiv, kopDiv, koplMul), _TomeRes(ttMod, kopMod, koplMul),\n    _TomeCore(ttInc, fopAssign | fopPostAssign, kopInc, koplRemoteName, koplRemoteName, ttNil, koplPostUn),\n    _TomeCore(ttDec, fopAssign | fopPostAssign, kopDec, koplRemoteName, koplRemoteName, ttNil, koplPostUn),\n    _TomeRes(ttBOr, kopBOr, koplBOr), _TomeRes(ttBAnd, kopBAnd, koplBAnd), _TomeRes(ttBXor, kopBXor, koplBXor),\n    _TomeRes(ttShr, kopShr, koplShift), _TomeRes(ttShl, kopShl, koplShift), _TomeRes(ttLOr, opNil, koplLOr),\n    _TomeRes(ttLAnd, opNil, koplLAnd), _TomeRes(ttLXor, kopLXor, koplLXor), _TomeRes(ttEq, kopEq, koplEq),\n    _TomeRes(ttNe, kopNe, koplEq), _TomeRes(ttGt, kopGt, koplRel), _TomeRes(ttGe, kopGe, koplRel),\n    _TomeRes(ttLt, kopLt, koplRel), _TomeRes(ttLe, kopLe, koplRel),\n\n    _TomeCore(ttAssign, fopAssign | fopOp, opNil, koplAssign + 1, koplRemoteName, ttNil, koplAssign),\n    _TomeCore(ttAAdd, fopAssign | fopOp, kopAdd, koplAssign + 1, koplRemoteName, ttNil, koplAssign),\n    _TomeCore(ttASub, fopAssign | fopOp, kopSub, koplAssign + 1, koplRemoteName, ttNil, koplAssign),\n    _TomeCore(ttAMul, fopAssign | fopOp, kopMul, koplAssign + 1, koplRemoteName, ttNil, koplAssign),\n    _TomeCore(ttADiv, fopAssign | fopOp, kopDiv, koplAssign + 1, koplRemoteName, ttNil, koplAssign),\n    _TomeCore(ttAMod, fopAssign | fopOp, kopMod, koplAssign + 1, koplRemoteName, ttNil, koplAssign),\n    _TomeCore(ttABOr, fopAssign | fopOp, kopBOr, koplAssign + 1, koplRemoteName, ttNil, koplAssign),\n    _TomeCore(ttABAnd, fopAssign | fopOp, kopBAnd, koplAssign + 1, koplRemoteName, ttNil, koplAssign),\n    _TomeCore(ttABXor, fopAssign | fopOp, kopBXor, koplAssign + 1, koplRemoteName, ttNil, koplAssign),\n    _TomeCore(ttAShr, fopAssign | fopOp, kopShr, koplAssign + 1, koplRemoteName, ttNil, koplAssign),\n    _TomeCore(ttAShl, fopAssign | fopOp, kopShl, koplAssign + 1, koplRemoteName, ttNil, koplAssign),\n\n    _TomeCore(ttQuery, fopOp, opNil, koplLOr, koplLOr, ttNil, oplNil),\n    _TomeCore(ttColon, fopOp, opNil, koplComma, koplComma, ttQuery, koplColon), _TomeRes(ttComma, opNil, koplComma),\n    _TomeCore(ttArrow, fopOp, opNil, koplGroup, koplGroup, ttNil, koplRemoteName),\n    _TomeCore(ttDollar, fopNil, opNil, koplName, koplName, ttNil, koplNumber),\n    _TomeCore(ttAt, fopNil, opNil, koplComma, koplName, ttNil, koplComma),\n\n    // end of list marker\n    _TomeRes(ttNil, opNil, oplNil)};\n\n// following an operator\nTOME _rgtomeOp[] = {\n    _TomeCore(ttName, fopNil, opNil, oplNil, oplNil, ttNil, koplName),\n    _TomeCore(ttLong, fopNil, opNil, oplNil, oplNil, ttNil, koplNumber),\n    _TomeCore(ttString, fopNil, opNil, oplNil, oplNil, ttNil, koplNumber),\n    _TomeCore(ttOpenParen, fopOp, opNil, oplNil, oplNil, ttNil, oplNil),            // grouping\n    _TomeCore(ttCloseParen, fopNil, opNil, oplNil, oplNil, ttOpenParen, koplGroup), // empty group\n\n    _TomePush(ttSub, kopNeg, koplPreUn), _TomePush(ttLNot, kopLNot, koplPreUn), _TomePush(ttBNot, kopBNot, koplPreUn),\n    _TomeCore(ttInc, fopOp | fopAssign, kopInc, oplNil, oplNil, ttNil, koplPreUn),\n    _TomeCore(ttDec, fopOp | fopAssign, kopDec, oplNil, oplNil, ttNil, koplPreUn), _TomePush(ttAdd, opNil, koplPreUn),\n\n    _TomePush(ttDot, opNil, koplThisName), _TomePush(ttScope, opNil, koplGlobalName),\n\n    // end of list marker\n    _TomeRes(ttNil, opNil, oplNil)};\n\n/***************************************************************************\n    Find the TOME corresponding to this token and fOp.\n***************************************************************************/\nTOME *_PtomeFromTt(long tt, bool fOp)\n{\n    TOME *ptome;\n\n    for (ptome = fOp ? _rgtomeOp : _rgtomeExp; ttNil != ptome->tt; ptome++)\n    {\n        if (tt == ptome->tt)\n            return ptome;\n    }\n    return pvNil;\n}\n\n/***************************************************************************\n    Resolve the ETN stack to something at the given opl.\n***************************************************************************/\nbool SCCB::_FResolveToOpl(long opl, long oplMin, long *pietn)\n{\n    AssertThis(0);\n    AssertIn(opl, oplNil + 1, koplMax);\n    AssertIn(oplMin, oplNil, koplMax);\n    AssertPo(_pgletnStack, 0);\n    AssertPo(_pgletnTree, 0);\n    AssertVarMem(pietn);\n    ETN etn, etnT;\n    long ietn, cetn;\n\n    _pgletnStack->Get(_pgletnStack->IvMac() - 1, &etn);\n    if (etn.grfop & fopOp)\n    {\n        Bug(\"I think this will only happen if a table entry is wrong\");\n        _ReportError(_pszSyntax);\n        return fFalse;\n    }\n\n    for (;;)\n    {\n        cetn = _pgletnStack->IvMac();\n        Assert(cetn > 1, \"bad stack\");\n        Assert(((ETN *)_pgletnStack->QvGet(cetn - 1))->opl >= opl, \"bad opl on top of stack\");\n        _pgletnStack->Get(cetn - 2, &etn);\n        if (etn.opl < opl)\n            break;\n\n        AssertDo(_pgletnStack->FPop(&etnT), 0);\n        if (!_FAddToTree(&etnT, &ietn))\n        {\n            _ReportError(_pszOom);\n            return fFalse;\n        }\n        if (ietn == ivNil)\n            return fFalse;\n\n        if (etn.ietn1 == ivNil)\n            etn.ietn1 = ietn;\n        else if (etn.ietn2 == ivNil)\n            etn.ietn2 = ietn;\n        else\n        {\n            Assert(etn.ietn3 == ivNil, \"bad etn\");\n            etn.ietn3 = ietn;\n        }\n        etn.grfop &= ~fopOp;\n        _pgletnStack->Put(cetn - 2, &etn);\n    }\n\n    AssertDo(_pgletnStack->FPop(&etnT), 0);\n    if (etnT.opl < oplMin)\n    {\n        _ReportError(_pszSyntax);\n        return fFalse;\n    }\n    if (!_FAddToTree(&etnT, pietn))\n    {\n        _ReportError(_pszOom);\n        return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    See if we can simplify the expression because of constant operands and\n    other optimizations, then add it to the tree.  Most of this routine\n    is not necessary for non-optimized compilation.  This routine could\n    be simplified to nuke () groupings and unary plus operators and just\n    add the rest to _pgletnTree.\n***************************************************************************/\nbool SCCB::_FAddToTree(ETN *petn, long *pietn)\n{\n    AssertThis(0);\n    AssertVarMem(petn);\n    AssertVarMem(pietn);\n    long lw1, lw2, lw;\n    bool fConst1, fConst2;\n    ETN etnT1, etnT2, etn;\n    long ietnConst;\n    bool fCommute = fFalse;\n\n    Assert((petn->ietn3 == ivNil || petn->ietn2 != ivNil) && (petn->ietn2 == ivNil || petn->ietn1 != ivNil), \"bad etn\");\n\n    // get rid of non-function call groupings - they aren't necessary in\n    // the parse tree.\n    if (petn->op == opNil && petn->tt == ttCloseParen)\n    {\n        if (petn->grfop & fopFunction)\n            goto LAdd;\n        Assert(petn->ietn2 == ivNil, \"shouldn't be a second operand\");\n        if (petn->ietn1 == ivNil)\n        {\n            _ReportError(_pszSyntax);\n            *pietn = ivNil;\n            return fTrue;\n        }\n        *pietn = petn->ietn1;\n        return fTrue;\n    }\n\n    if (petn->ietn3 != ivNil || petn->ietn1 == ivNil)\n        goto LAdd;\n\n    // one or two operands\n    fConst1 = _FConstEtn(petn->ietn1, &lw1);\n    if (petn->ietn2 == ivNil)\n    {\n        // unary operators\n\n        // nuke unary plus operator\n        if (ttAdd == petn->tt && opNil == petn->op)\n        {\n            *pietn = petn->ietn1;\n            return fTrue;\n        }\n\n        if (!fConst1)\n            goto LAdd;\n\n        // optimize unary operators with constant operand\n        switch (petn->op)\n        {\n        default:\n            goto LAdd;\n\n        case kopNeg:\n            lw = -lw1;\n            break;\n        case kopBNot:\n            lw = ~lw1;\n            break;\n        case kopLNot:\n            lw = !lw1;\n            break;\n        }\n        *pietn = ietnConst = petn->ietn1;\n        goto LSetConst;\n    }\n\n    // two operands - determine if they are constants\n    fConst2 = _FConstEtn(petn->ietn2, &lw2);\n    if (fConst1 && fConst2)\n    {\n        // optimize binary operators with both operands constants\n        if (petn->op == opNil)\n        {\n            switch (petn->tt)\n            {\n            default:\n                goto LAdd;\n            case ttLOr:\n                lw = lw1 || lw2;\n                break;\n            case ttLAnd:\n                lw = lw1 && lw2;\n                break;\n            }\n        }\n        else if (!_FCombineConstValues(petn->op, lw1, lw2, &lw))\n            goto LAdd;\n\n        *pietn = ietnConst = petn->ietn1;\n        goto LSetConst;\n    }\n\n    // try to combine operand subtrees for the binary operators that are\n    // commutative and associative\n    Assert(!fConst1 || !fConst2, 0);\n    switch (petn->op)\n    {\n    default:\n        break;\n\n    case kopSub:\n        if (!fConst2)\n            break;\n\n        // the second argument is constant, but the first is not, so negate the\n        // constant and change the operator to kopAdd\n        _pgletnTree->Get(petn->ietn2, &etnT2);\n        etnT2.lwValue = -etnT2.lwValue;\n        _pgletnTree->Put(petn->ietn2, &etnT2);\n        petn->op = kopAdd;\n        // fall thru\n    case kopAdd:\n    case kopMul:\n    case kopBOr:\n    case kopBAnd:\n    case kopBXor:\n    case kopLXor:\n        // get the two etn's\n        fCommute = fTrue;\n        _pgletnTree->Get(petn->ietn1, &etnT1);\n        _pgletnTree->Get(petn->ietn2, &etnT2);\n\n        if (fConst1)\n        {\n            // first operand is constant, so swap them\n            Assert(!fConst2, 0);\n            SwapVars(&petn->ietn1, &petn->ietn2);\n            SwapVars(&fConst1, &fConst2);\n            SwapVars(&etnT1, &etnT2);\n        }\n\n        if (fConst2)\n        {\n            // the second is constant\n            // see if the first has the same op as petn\n            if (etnT1.op != petn->op)\n                break;\n\n            // see if the first one has a constant second operand\n            if (!_FConstEtn(etnT1.ietn2, &lw1))\n                break;\n\n            // all we have to do is modify the first one's second operand\n            AssertDo(_FCombineConstValues(petn->op, lw1, etnT2.lwValue, &lw), 0);\n            *pietn = petn->ietn1;\n            ietnConst = etnT1.ietn2;\n            goto LSetConst;\n        }\n\n        // neither operand is constant\n        Assert(!fConst1 && !fConst2, 0);\n\n        // see if the right operands of the operands are constant\n        fConst1 = (etnT1.op == petn->op) && _FConstEtn(etnT1.ietn2, &lw1);\n        fConst2 = (etnT2.op == petn->op) && _FConstEtn(etnT2.ietn2, &lw2);\n\n        if (fConst1 && fConst2)\n        {\n            // both are constant\n            AssertDo(_FCombineConstValues(petn->op, lw1, lw2, &lw), 0);\n            *pietn = petn->ietn2;\n            etnT1.ietn2 = etnT2.ietn1;\n            etnT2.ietn1 = petn->ietn1;\n            _SetDepth(&etnT1, fTrue);\n            _pgletnTree->Put(petn->ietn1, &etnT1);\n            ietnConst = etnT2.ietn2;\n            _SetDepth(&etnT2);\n            Assert(ietnConst == etnT2.ietn2, \"why did _SetDepth move this?\");\n            _pgletnTree->Put(petn->ietn2, &etnT2);\n        LSetConst:\n            _pgletnTree->Get(ietnConst, &etn);\n            Assert(opNil == etn.op && ttLong == etn.tt, 0);\n            Assert(etn.cetnDeep == 1, 0);\n            etn.lwValue = lw;\n            _pgletnTree->Put(ietnConst, &etn);\n            return fTrue;\n        }\n\n        if (fConst1)\n        {\n            // only the first is constant\n            SwapVars(&etnT1.ietn2, &petn->ietn2);\n            _SetDepth(&etnT1, fTrue);\n            _pgletnTree->Put(petn->ietn1, &etnT1);\n            break;\n        }\n\n        if (fConst2)\n        {\n            // only the second is constant\n            goto LPivot;\n        }\n\n        // neither is constant\n        Assert(!fConst1 && !fConst2, 0);\n        if ((etnT1.op == petn->op) == (etnT2.op == petn->op))\n        {\n            // both the same as petn->op or both different, let _SetDepth\n            // do its thing\n            break;\n        }\n\n        if (etnT1.op == petn->op)\n        {\n            if (etnT2.ietn1 == ivNil)\n                break;\n            // swap them\n            SwapVars(&petn->ietn1, &petn->ietn2);\n            SwapVars(&etnT1, &etnT2);\n        }\n\n        Assert(etnT1.op != petn->op && etnT2.op == petn->op, 0);\n        // determine if we want to pivot or swap\n        _pgletnTree->Get(etnT2.ietn2, &etn);\n        if (etn.cetnDeep > etnT1.cetnDeep)\n        {\n            // swap them\n            SwapVars(&petn->ietn1, &petn->ietn2);\n        }\n        else\n        {\n        LPivot:\n            // pivot\n            Assert(etnT2.op == petn->op, 0);\n            etn = *petn;\n            etn.ietn2 = etnT2.ietn2;\n            etn.ietn1 = petn->ietn2;\n            etnT2.ietn2 = etnT2.ietn1;\n            etnT2.ietn1 = petn->ietn1;\n            _SetDepth(&etnT2, fTrue);\n            _pgletnTree->Put(petn->ietn2, &etnT2);\n            petn = &etn;\n        }\n        break;\n    }\n\nLAdd:\n    _SetDepth(petn, fCommute);\n    return _pgletnTree->FAdd(petn, pietn);\n}\n\n/***************************************************************************\n    Set the depth of the ETN from its children.  If fCommute is true and\n    the first two children are non-nil, puts the deepest child first.\n***************************************************************************/\nvoid SCCB::_SetDepth(ETN *petn, bool fCommute)\n{\n    AssertThis(0);\n    AssertVarMem(petn);\n    AssertPo(_pgletnTree, 0);\n    ETN etn1, etn2;\n\n    if (fCommute && petn->ietn1 != ivNil && petn->ietn2 != ivNil)\n    {\n        // put the deeper guy on the left\n        _pgletnTree->Get(petn->ietn1, &etn1);\n        _pgletnTree->Get(petn->ietn2, &etn2);\n        if (etn1.cetnDeep < etn2.cetnDeep ||\n            etn1.cetnDeep == etn2.cetnDeep && etn1.op == petn->op && etn2.op != petn->op)\n        {\n            // swap them\n            SwapVars(&petn->ietn1, &petn->ietn2);\n            SwapVars(&etn1, &etn2);\n        }\n        // put as much stuff on the left as we can\n        while (etn2.op == petn->op)\n        {\n            etn1 = etn2;\n            etn1.ietn1 = petn->ietn1;\n            etn1.ietn2 = etn2.ietn1;\n            petn->ietn1 = petn->ietn2;\n            petn->ietn2 = etn2.ietn2;\n            _SetDepth(&etn1, fTrue);\n            _pgletnTree->Put(petn->ietn1, &etn1);\n            _pgletnTree->Get(petn->ietn2, &etn2);\n        }\n    }\n\n    petn->cetnDeep = 1;\n    if (petn->ietn1 != ivNil)\n    {\n        _pgletnTree->Get(petn->ietn1, &etn1);\n        petn->cetnDeep = LwMax(petn->cetnDeep, etn1.cetnDeep + 1);\n        if (petn->ietn2 != ivNil)\n        {\n            _pgletnTree->Get(petn->ietn2, &etn2);\n            petn->cetnDeep = LwMax(petn->cetnDeep, etn2.cetnDeep + 1);\n            if (petn->ietn3 != ivNil)\n            {\n                _pgletnTree->Get(petn->ietn3, &etn1);\n                petn->cetnDeep = LwMax(petn->cetnDeep, etn1.cetnDeep + 1);\n            }\n        }\n    }\n}\n\n/***************************************************************************\n    Return true iff the given etn is constant.  If so, set *plw to its\n    value.\n***************************************************************************/\nbool SCCB::_FConstEtn(long ietn, long *plw)\n{\n    AssertThis(0);\n    AssertVarMem(plw);\n    AssertPo(_pgletnTree, 0);\n    ETN etn;\n\n    if (ietn != ivNil)\n    {\n        AssertIn(ietn, 0, _pgletnTree->IvMac());\n        _pgletnTree->Get(ietn, &etn);\n        if (etn.op == opNil && etn.tt == ttLong)\n        {\n            *plw = etn.lwValue;\n            return fTrue;\n        }\n    }\n    TrashVar(plw);\n    return fFalse;\n}\n\n/***************************************************************************\n    Combine the constant values lw1 and lw2 using the given operator.\n    Put the result in *plw.  Return false if we can't combine the values\n    using op.\n***************************************************************************/\nbool SCCB::_FCombineConstValues(long op, long lw1, long lw2, long *plw)\n{\n    AssertBaseThis(0);\n    AssertVarMem(plw);\n\n    switch (op)\n    {\n    default:\n        return fFalse;\n\n    case kopAdd:\n        *plw = lw1 + lw2;\n        break;\n    case kopSub:\n        *plw = lw1 - lw2;\n        break;\n    case kopMul:\n        *plw = lw1 * lw2;\n        break;\n    case kopDiv:\n    case kopMod:\n        if (lw2 == 0)\n        {\n            _ReportError(PszLit(\"divide by zero\"));\n            *plw = 0;\n        }\n        else\n            *plw = op == kopDiv ? lw1 / lw2 : lw1 % lw2;\n        break;\n    case kopShr:\n        *plw = (ulong)lw1 >> lw2;\n        break;\n    case kopShl:\n        *plw = (ulong)lw1 << lw2;\n        break;\n    case kopBOr:\n        *plw = lw1 | lw2;\n        break;\n    case kopBAnd:\n        *plw = lw1 & lw2;\n        break;\n    case kopBXor:\n        *plw = lw1 ^ lw2;\n        break;\n    case kopLXor:\n        *plw = FPure(lw1) != FPure(lw2);\n        break;\n    case kopEq:\n        *plw = lw1 == lw2;\n        break;\n    case kopNe:\n        *plw = lw1 != lw2;\n        break;\n    case kopGt:\n        *plw = lw1 > lw2;\n        break;\n    case kopLt:\n        *plw = lw1 < lw2;\n        break;\n    case kopGe:\n        *plw = lw1 >= lw2;\n        break;\n    case kopLe:\n        *plw = lw1 <= lw2;\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Emit code for the expression tree with top at ietnTop.  If pclwArg\n    is not nil, we are pushing function arguments, so the comma operator\n    has to keep the values of both its operands.  Otherwise, the comma\n    operator discards the value of its left operand.\n\n    Values of grfscc include fsccTop, indicating whether a control structure\n    primitive is legal, and fsccWantVoid, indicating whether the emitted\n    code should (not) leave a value on the execution stack.  If fsccTop\n    is set, fsccWantVoid should also be set.\n\n    This is highly recursive, so limit the stack space needed.\n***************************************************************************/\nvoid SCCB::_EmitCode(long ietnTop, ulong grfscc, long *pclwArg)\n{\n    AssertThis(0);\n    AssertPo(_pgletnTree, 0);\n    AssertIn(ietnTop, 0, _pgletnTree->IvMac());\n    Assert(!(grfscc & fsccTop) || (grfscc & fsccWantVoid), \"fsccTop but not fsccWantVoid set\");\n    AssertNilOrVarMem(pclwArg);\n    ETN etn;\n    RTVN rtvn;\n    long opPush, opPop;\n    long clwStack;\n    long lw1, lw2;\n    long cst;\n\n    _pgletnTree->Get(ietnTop, &etn);\n\n    // all non-nil operands should come before any nils\n    Assert((etn.ietn3 == ivNil || etn.ietn2 != ivNil) && (etn.ietn2 == ivNil || etn.ietn1 != ivNil), \"bad etn\");\n\n    if (etn.grfop & fopAssign)\n    {\n        // an operator that changes the value of a variable\n        Assert(ivNil != etn.ietn1, \"nil ietn1\");\n        Assert(ivNil == etn.ietn3, \"non-nil ietn3\");\n\n        // if we're doing an operation before assigning (eg, +=),\n        // push the variable first\n        if (etn.op != opNil)\n        {\n            _EmitVarAccess(etn.ietn1, &rtvn, &opPush, &opPop, &clwStack);\n            if (clwStack == 1)\n                _PushOp(kopDup); // duplicate the variable access id\n            else if (clwStack > 0)\n            {\n                _PushLw(clwStack);\n                _PushOp(kopDupList);\n            }\n            _PushVarOp(opPush, &rtvn);\n        }\n\n        // generate the second operand\n        if (etn.ietn2 != ivNil)\n            _EmitCode(etn.ietn2, fsccNil, pvNil);\n\n        // do the operation (if not post-inc or post-dec)\n        if (etn.op != opNil && !(etn.grfop & fopPostAssign))\n            _PushOp(etn.op);\n\n        // duplicate the result\n        if (!(grfscc & fsccWantVoid))\n            _PushOp(kopDup);\n\n        // do the operation if post-inc or post-dec\n        if (etn.op != opNil && (etn.grfop & fopPostAssign))\n            _PushOp(etn.op);\n\n        // pop the result into the variable\n        if (etn.op == opNil)\n            _EmitVarAccess(etn.ietn1, &rtvn, pvNil, &opPop, pvNil);\n        else if (clwStack == 1)\n        {\n            // need to bring the variable access result to the top\n            if (grfscc & fsccWantVoid)\n                _PushOp(kopSwap);\n            else\n            {\n                // top two items on the stack are the result\n                _PushLw(3);\n                _PushOp(kopRev);\n            }\n        }\n        else if (clwStack > 0)\n        {\n            // top one or two values are the result, next\n            // clwStack values are the variable access values.\n            _PushLw(clwStack + 1 + !(grfscc & fsccWantVoid));\n            _PushLw(clwStack);\n            _PushOp(kopRot);\n        }\n\n        _PushVarOp(opPop, &rtvn);\n        return;\n    }\n\n    if (opNil != etn.op)\n    {\n        if (ivNil != etn.ietn1)\n        {\n            _EmitCode(etn.ietn1, fsccNil, pvNil);\n            if (ivNil != etn.ietn2)\n            {\n                _EmitCode(etn.ietn2, fsccNil, pvNil);\n                if (ivNil != etn.ietn3)\n                    _EmitCode(etn.ietn3, fsccNil, pvNil);\n            }\n        }\n        _PushOp(etn.op);\n        if (grfscc & fsccWantVoid)\n            _PushOp(kopPop);\n        return;\n    }\n\n    // special cases\n    switch (etn.tt)\n    {\n    default:\n        Bug(\"what is this?\");\n        break;\n    case ttName:\n        // first check for a control structure keyword\n        if (_FHandleCst(ietnTop))\n        {\n            // if we're not at the top of the parse tree, it's an error\n            if (!(grfscc & fsccTop))\n                _ReportError(_pszSyntax);\n            break;\n        }\n        // fall thru\n    case ttCloseRef:\n    case ttDot:\n    case ttScope:\n    case ttArrow:\n        // handle pushing a variable\n        _EmitVarAccess(ietnTop, &rtvn, &opPush, pvNil, pvNil);\n        _PushVarOp(opPush, &rtvn);\n        if (grfscc & fsccWantVoid)\n            _PushOp(kopPop);\n        break;\n    case ttLong:\n        // push a constant\n        Assert(ivNil == etn.ietn1, \"non-nil ietn1\");\n        if (!(grfscc & fsccWantVoid))\n            _PushLw(etn.lwValue);\n        break;\n    case ttString:\n        // \"push\" a constant string\n        Assert(ivNil == etn.ietn1, \"non-nil ietn1\");\n        if (!(grfscc & fsccWantVoid))\n            _PushStringIstn(etn.lwValue);\n        break;\n    case ttDollar:\n        // label reference\n        Assert(ivNil != etn.ietn1, \"nil ietn1\");\n        Assert(ivNil == etn.ietn2, \"non-nil ietn2\");\n        if (!(grfscc & fsccWantVoid))\n            _PushLabelRequestIetn(etn.ietn1);\n        break;\n    case ttAt:\n        // label declaration\n        Assert(ivNil != etn.ietn1, \"nil ietn1\");\n        Assert(ivNil == etn.ietn2, \"non-nil ietn2\");\n        Assert(grfscc & fsccTop, \"fsccTop not set for label\");\n        _AddLabelIetn(etn.ietn1);\n        break;\n    case ttCloseParen:\n        // a function call or control structure\n        Assert(etn.grfop & fopFunction, 0);\n        Assert(ivNil != etn.ietn1, \"nil ietn1\");\n        Assert(ivNil == etn.ietn3, \"non-nil ietn3\");\n\n        if ((grfscc & fsccTop) && cstNil != (cst = _CstFromName(etn.ietn1)))\n        {\n            // control structure\n            _BeginCst(cst, etn.ietn2);\n        }\n        else\n        {\n            // get the arguments and count them\n            long clwArg;\n\n            if (etn.ietn2 == ivNil)\n                clwArg = 0;\n            else\n            {\n                clwArg = 1;\n                _EmitCode(etn.ietn2, fsccNil, &clwArg);\n            }\n            _PushOpFromName(etn.ietn1, grfscc, clwArg);\n        }\n        break;\n    case ttComma:\n        if (pvNil != pclwArg)\n        {\n            // we're pushing function arguments\n            Assert(!(grfscc & fsccWantVoid), \"bad comma request\");\n\n            // push function arguments from right to left!\n            _EmitCode(etn.ietn2, fsccNil, pclwArg);\n            (*pclwArg)++;\n            _EmitCode(etn.ietn1, fsccNil, pclwArg);\n        }\n        else\n        {\n            _EmitCode(etn.ietn1, fsccWantVoid, pvNil);\n            _EmitCode(etn.ietn2, grfscc & ~fsccTop, pvNil);\n        }\n        break;\n    case ttColon:\n        // ternary operator\n        Assert(ivNil != etn.ietn3, \"nil ietn3\");\n        _PushLabelRequestLw(lw1 = ++_lwLastLabel);\n        _EmitCode(etn.ietn1, fsccNil, pvNil);\n        _PushOp(kopGoNz);\n        _EmitCode(etn.ietn3, grfscc & ~fsccTop, pvNil);\n        _PushLabelRequestLw(lw2 = ++_lwLastLabel);\n        _PushOp(kopGo);\n        _AddLabelLw(lw1);\n        _EmitCode(etn.ietn2, grfscc & ~fsccTop, pvNil);\n        _AddLabelLw(lw2);\n        break;\n    case ttLOr:\n        // logical or - handles short circuiting\n        if (!(grfscc & fsccWantVoid))\n            _PushLw(1); // assume true\n        _PushLabelRequestLw(lw1 = ++_lwLastLabel);\n        _EmitCode(etn.ietn1, fsccNil, pvNil);\n        _PushOp(kopGoNz);\n        if (!(grfscc & fsccWantVoid))\n            _PushLabelRequestLw(lw1);\n        _EmitCode(etn.ietn2, grfscc & ~fsccTop, pvNil);\n        if (!(grfscc & fsccWantVoid))\n        {\n            _PushOp(kopGoNz);\n            _PushOp(kopDec);\n        }\n        _AddLabelLw(lw1);\n        break;\n    case ttLAnd:\n        // logical and - handles short circuiting\n        if (!(grfscc & fsccWantVoid))\n            _PushLw(0); // assume false\n        _PushLabelRequestLw(lw1 = ++_lwLastLabel);\n        _EmitCode(etn.ietn1, fsccNil, pvNil);\n        _PushOp(kopGoZ);\n        if (!(grfscc & fsccWantVoid))\n            _PushLabelRequestLw(lw1);\n        _EmitCode(etn.ietn2, grfscc & ~fsccTop, pvNil);\n        if (!(grfscc & fsccWantVoid))\n        {\n            _PushOp(kopGoZ);\n            _PushOp(kopInc);\n        }\n        _AddLabelLw(lw1);\n        break;\n    }\n}\n\n/***************************************************************************\n    If the etn is for a control structure, return the cst.\n***************************************************************************/\nlong SCCB::_CstFromName(long ietn)\n{\n    AssertThis(0);\n    long istn;\n    STN stn;\n\n    _GetIstnNameFromIetn(ietn, &istn);\n    _GetStnFromIstn(istn, &stn);\n    if (stn.FEqualSz(_rgpszKey[kipszIf]))\n        return cstIf;\n    if (stn.FEqualSz(_rgpszKey[kipszElif]))\n        return cstElif;\n    if (stn.FEqualSz(_rgpszKey[kipszWhile]))\n        return cstWhile;\n\n    return cstNil;\n}\n\n/***************************************************************************\n    Begin a new control structure.\n***************************************************************************/\nvoid SCCB::_BeginCst(long cst, long ietn)\n{\n    AssertThis(0);\n    AssertPo(_pglcstd, 0);\n    CSTD cstd;\n    CSTD cstdPrev;\n    long cetn;\n\n    ClearPb(&cstd, size(cstd));\n    cstd.cst = cst;\n    cstd.lwLabel1 = ++_lwLastLabel;\n    switch (cst)\n    {\n    default:\n        Bug(\"why are we here?\");\n        return;\n\n    case cstWhile:\n        // we do jump optimized loops (putting the conditional at the end).\n        // label 1 is where Continue jumps to\n        cstd.ietnTop = ietn;\n        if (ietn == ivNil)\n        {\n            // no conditional expression, an \"infinite\" loop\n            _AddLabelLw(cstd.lwLabel1);\n        }\n        else\n        {\n            // copy the etn tree\n            cetn = _pgletnTree->IvMac();\n            if (pvNil == (cstd.pgletnTree = GL::PglNew(size(ETN), cetn)))\n            {\n                _ReportError(_pszOom);\n                return;\n            }\n            AssertDo(cstd.pgletnTree->FSetIvMac(cetn), 0);\n            CopyPb(_pgletnTree->QvGet(0), cstd.pgletnTree->QvGet(0), LwMul(cetn, size(ETN)));\n\n            // jump to where the condition will be\n            _PushLabelRequestLw(cstd.lwLabel1);\n            _PushOp(kopGo);\n\n            // add the label for the top of the loop\n            cstd.lwLabel2 = ++_lwLastLabel;\n            _AddLabelLw(cstd.lwLabel2);\n        }\n        break;\n\n    case cstIf:\n        // label 1 is used for where to jump if the condition fails\n        goto LTest;\n\n    case cstElif:\n        // label 1 is used for where to jump if the condition fails\n        // label 2 is used for the end of the entire if block\n        cstd.cst = cstIf;\n        if (_pglcstd->FPop(&cstdPrev))\n        {\n            if (cstdPrev.cst != cstIf)\n            {\n                _pglcstd->FPush(&cstdPrev);\n                goto LError;\n            }\n        }\n        else\n        {\n        LError:\n            _ReportError(PszLit(\"unexpected Elif\"));\n            ClearPb(&cstdPrev, size(cstdPrev));\n            cstdPrev.cst = cstIf;\n            cstdPrev.lwLabel1 = ++_lwLastLabel;\n        }\n\n        // emit code for jumping to the end of the if block\n        cstd.lwLabel2 = cstdPrev.lwLabel2;\n        if (0 == cstd.lwLabel2)\n            cstd.lwLabel2 = ++_lwLastLabel;\n        _PushLabelRequestLw(cstd.lwLabel2);\n        _PushOp(kopGo);\n\n        // add label that previous condition jumps to on failure\n        _AddLabelLw(cstdPrev.lwLabel1);\n\n    LTest:\n        // emit code for the expression testing\n        _PushLabelRequestLw(cstd.lwLabel1);\n        if (ietn == ivNil)\n            _ReportError(_pszSyntax);\n        else\n            _EmitCode(ietn, fsccNil, pvNil);\n        _PushOp(kopGoZ);\n        break;\n    }\n\n    // put the cstd on the stack\n    if (!_pglcstd->FPush(&cstd))\n        _ReportError(_pszOom);\n}\n\n/***************************************************************************\n    If this name token is \"End\", \"Break\", \"Continue\" or \"Else\", deal with it\n    and return true.\n***************************************************************************/\nbool SCCB::_FHandleCst(long ietn)\n{\n    AssertThis(0);\n    AssertPo(_pglcstd, 0);\n    long istn;\n    STN stn;\n    CSTD cstd;\n    long icstd;\n    long *plwLabel;\n\n    _GetIstnNameFromIetn(ietn, &istn);\n    _GetStnFromIstn(istn, &stn);\n    if (stn.FEqualSz(_rgpszKey[kipszElse]))\n    {\n        // an Else\n        if (0 == (icstd = _pglcstd->IvMac()))\n        {\n            _ReportError(PszLit(\"unexpected Else\"));\n            return fTrue;\n        }\n        _pglcstd->Get(--icstd, &cstd);\n        if (cstd.cst != cstIf)\n        {\n            _ReportError(PszLit(\"unexpected Else\"));\n            return fTrue;\n        }\n\n        // emit code to jump to the end of the if block\n        if (0 == cstd.lwLabel2)\n            cstd.lwLabel2 = ++_lwLastLabel;\n        _PushLabelRequestLw(cstd.lwLabel2);\n        _PushOp(kopGo);\n\n        // add label that previous condition jumps to on failure\n        _AddLabelLw(cstd.lwLabel1);\n\n        cstd.cst = cstNil; // so we don't accept another else\n        cstd.lwLabel1 = cstd.lwLabel2;\n        _pglcstd->Put(icstd, &cstd);\n        return fTrue;\n    }\n\n    if (stn.FEqualSz(_rgpszKey[kipszBreak]))\n    {\n        // a Break - label 3 is where a Break jumps to\n        plwLabel = &cstd.lwLabel3;\n        goto LWhileJump;\n    }\n\n    if (stn.FEqualSz(_rgpszKey[kipszContinue]))\n    {\n        // a Continue - label 1 is where a Continue jumps to\n        plwLabel = &cstd.lwLabel1;\n\n    LWhileJump:\n        // find the enclosing While\n        for (icstd = _pglcstd->IvMac();;)\n        {\n            if (icstd-- <= 0)\n            {\n                _ReportError(plwLabel == &cstd.lwLabel1 ? PszLit(\"unexpected Continue\") : PszLit(\"unexpected Break\"));\n                return fTrue;\n            }\n            _pglcstd->Get(icstd, &cstd);\n            if (cstd.cst == cstWhile)\n                break;\n        }\n\n        if (*plwLabel == 0)\n        {\n            Assert(plwLabel == &cstd.lwLabel3, 0);\n            *plwLabel = ++_lwLastLabel;\n            _pglcstd->Put(icstd, &cstd);\n        }\n        _PushLabelRequestLw(*plwLabel);\n        _PushOp(kopGo);\n        return fTrue;\n    }\n\n    if (stn.FEqualSz(_rgpszKey[kipszEnd]))\n    {\n        // an End\n        if (!_pglcstd->FPop(&cstd))\n        {\n            _ReportError(PszLit(\"unexpected End\"));\n            return fTrue;\n        }\n\n        switch (cstd.cst)\n        {\n        case cstWhile:\n            if (cstd.ietnTop == ivNil)\n            {\n                // an \"infinite\" loop - jump to the top\n                Assert(cstd.pgletnTree == pvNil, 0);\n                Assert(cstd.lwLabel2 == 0, 0);\n                _PushLabelRequestLw(cstd.lwLabel1);\n                _PushOp(kopGo);\n            }\n            else\n            {\n                AssertPo(cstd.pgletnTree, 0);\n                _AddLabelLw(cstd.lwLabel1);\n\n                // emit code for the expression testing\n                _PushLabelRequestLw(cstd.lwLabel2);\n                SwapVars(&_pgletnTree, &cstd.pgletnTree);\n                _EmitCode(cstd.ietnTop, fsccNil, pvNil);\n                SwapVars(&_pgletnTree, &cstd.pgletnTree);\n                ReleasePpo(&cstd.pgletnTree);\n                _PushOp(kopGoNz);\n            }\n\n            // add the Break label if it was used\n            if (cstd.lwLabel3 != 0)\n                _AddLabelLw(cstd.lwLabel3);\n            break;\n\n        case cstIf:\n            if (cstd.lwLabel2 != 0)\n                _AddLabelLw(cstd.lwLabel2);\n            _AddLabelLw(cstd.lwLabel1);\n            break;\n\n        default:\n            Assert(cstd.cst == cstNil, \"bad cstd\");\n            _AddLabelLw(cstd.lwLabel1);\n            break;\n        }\n\n        return fTrue;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Generate the code that handles remote variable access and fill\n    *popPush and *popPop with the appropriate op-codes (kopPushLocVar, etc).\n    Sets *pclwStack to the number of longs on the stack used to access the\n    variable (iff the variable is a remote variable or an array access).\n    Fills in *prtvn.\n***************************************************************************/\nvoid SCCB::_EmitVarAccess(long ietn, RTVN *prtvn, long *popPush, long *popPop, long *pclwStack)\n{\n    AssertThis(0);\n    AssertPo(_pgletnTree, 0);\n    AssertIn(ietn, 0, _pgletnTree->IvMac());\n    AssertVarMem(prtvn);\n    AssertNilOrVarMem(popPush);\n    AssertNilOrVarMem(popPop);\n    AssertNilOrVarMem(pclwStack);\n    ETN etn;\n    long opPop, opPush;\n    long clwStack = 0;\n\n    _pgletnTree->Get(ietn, &etn);\n    switch (etn.tt)\n    {\n    default:\n        opPop = kopPopLocVar;\n        opPush = kopPushLocVar;\n        break;\n\n    case ttDot:\n        Assert(etn.opl == koplThisName, \"bad this name etn\");\n        Assert(etn.ietn1 != ivNil && etn.ietn2 == ivNil, \"bad this name etn 2\");\n        ietn = etn.ietn1;\n        opPop = kopPopThisVar;\n        opPush = kopPushThisVar;\n        break;\n\n    case ttScope:\n        Assert(etn.opl == koplGlobalName, \"bad global name etn\");\n        Assert(etn.ietn1 != ivNil && etn.ietn2 == ivNil, \"bad global name etn 2\");\n        ietn = etn.ietn1;\n        opPop = kopPopGlobalVar;\n        opPush = kopPushGlobalVar;\n        break;\n\n    case ttArrow:\n        Assert(etn.opl == koplRemoteName, \"bad remote name etn\");\n        Assert(etn.ietn1 != ivNil && etn.ietn2 != ivNil && etn.ietn3 == ivNil, \"bad remote name etn 2\");\n        _EmitCode(etn.ietn1, fsccNil, pvNil);\n        clwStack++;\n        ietn = etn.ietn2;\n        opPop = kopPopRemoteVar;\n        opPush = kopPushRemoteVar;\n        break;\n    }\n\n    _pgletnTree->Get(ietn, &etn);\n    if (etn.tt == ttCloseRef)\n    {\n        // an array reference\n        Assert(etn.opl == koplArrayName, \"bad array name etn\");\n        Assert(etn.ietn1 != ivNil && etn.ietn2 != ivNil && etn.ietn3 == ivNil, \"bad array name etn 2\");\n        _EmitCode(etn.ietn2, fsccNil, pvNil);\n        clwStack++;\n        ietn = etn.ietn1;\n        opPop += kopPopLocArray - kopPopLocVar;\n        opPush += kopPushLocArray - kopPushLocVar;\n    }\n\n    _GetIstnNameFromIetn(ietn, &etn.lwValue);\n    _GetRtvnFromName(etn.lwValue, prtvn);\n\n    if (pvNil != pclwStack)\n        *pclwStack = clwStack;\n    if (pvNil != popPush)\n        *popPush = opPush;\n    if (pvNil != popPop)\n        *popPop = opPop;\n}\n\n/***************************************************************************\n    Push the opcode for a function and verify parameters and return type.\n***************************************************************************/\nvoid SCCB::_PushOpFromName(long ietn, ulong grfscc, long clwArg)\n{\n    AssertThis(0);\n    long istn;\n    STN stn;\n    long op, clwFixed, clwVar, cactMinVar;\n    bool fVoid;\n\n    _GetIstnNameFromIetn(ietn, &istn);\n    _GetStnFromIstn(istn, &stn);\n    if (!_FGetOpFromName(&stn, &op, &clwFixed, &clwVar, &cactMinVar, &fVoid))\n        _ReportError(PszLit(\"unknown function\"));\n    else if (clwArg < clwFixed || clwVar == 0 && clwArg > clwFixed ||\n             clwVar != 0 && (((clwArg - clwFixed) % clwVar) != 0 || (clwArg - clwFixed) / clwVar < cactMinVar))\n    {\n        _ReportError(PszLit(\"Wrong number of parameters\"));\n    }\n    else if (!(grfscc & fsccWantVoid) && fVoid)\n        _ReportError(PszLit(\"Using void return value\"));\n    else\n    {\n        if (clwVar > 0)\n            _PushLw((clwArg - clwFixed) / clwVar);\n        _PushOp(op);\n        if ((grfscc & fsccWantVoid) && !fVoid)\n            _PushOp(kopPop); // toss the return value\n    }\n}\n\n/***************************************************************************\n    Find the string in the given rgarop and get the associated parameter\n    and return type information.\n***************************************************************************/\nbool SCCB::_FGetArop(PSTN pstn, AROP *prgarop, long *pop, long *pclwFixed, long *pclwVar, long *pcactMinVar,\n                     bool *pfVoid)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    AssertVarMem(prgarop);\n    AssertVarMem(pop);\n    AssertVarMem(pclwFixed);\n    AssertVarMem(pclwVar);\n    AssertVarMem(pcactMinVar);\n    AssertVarMem(pfVoid);\n    AROP *parop;\n\n    for (parop = prgarop; parop->psz != pvNil; parop++)\n    {\n        if (pstn->FEqualSz(parop->psz))\n        {\n            *pop = parop->op;\n            *pclwFixed = parop->clwFixed;\n            *pclwVar = parop->clwVar;\n            *pcactMinVar = parop->cactMinVar;\n            *pfVoid = parop->fVoid;\n            return fTrue;\n        }\n    }\n    return fFalse;\n}\n\n/***************************************************************************\n    See if the given name is a function and give argument and return type\n    information.\n***************************************************************************/\nbool SCCB::_FGetOpFromName(PSTN pstn, long *pop, long *pclwFixed, long *pclwVar, long *pcactMinVar, bool *pfVoid)\n{\n    AssertThis(0);\n    return _FGetArop(pstn, _rgarop, pop, pclwFixed, pclwVar, pcactMinVar, pfVoid);\n}\n\n/***************************************************************************\n    Add the given string to _pgstNames.\n***************************************************************************/\nvoid SCCB::_AddNameRef(PSTN pstn, long *pistn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    AssertVarMem(pistn);\n\n    if (pvNil == _pgstNames && pvNil == (_pgstNames = GST::PgstNew(0, 5, 100)))\n    {\n        *pistn = 0;\n        _ReportError(_pszOom);\n        return;\n    }\n    // can't sort, because then indices can change\n    if (_pgstNames->FFindStn(pstn, pistn, fgstNil))\n        return;\n    if (!_pgstNames->FInsertStn(*pistn, pstn))\n        _ReportError(_pszOom);\n}\n\n/***************************************************************************\n    Make sure (assert) the given ietn is a name and get the istn for the name.\n***************************************************************************/\nvoid SCCB::_GetIstnNameFromIetn(long ietn, long *pistn)\n{\n    AssertThis(0);\n    AssertPo(_pgletnTree, 0);\n    AssertIn(ietn, 0, _pgletnTree->IvMac());\n    AssertVarMem(pistn);\n    ETN etn;\n\n    _pgletnTree->Get(ietn, &etn);\n    Assert(etn.tt == ttName && etn.opl == koplName && etn.op == opNil && etn.ietn1 == ivNil && etn.ietn2 == ivNil &&\n               etn.ietn3 == ivNil,\n           \"bad name etn\");\n    *pistn = etn.lwValue;\n}\n\n/***************************************************************************\n    Get the rtvn for the given string (in _pgstNames).\n***************************************************************************/\nvoid SCCB::_GetStnFromIstn(long istn, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    if (pvNil == _pgstNames || !FIn(istn, 0, _pgstNames->IstnMac()))\n    {\n        Assert(_fError, \"bad istn\");\n        pstn->SetNil();\n        return;\n    }\n    _pgstNames->GetStn(istn, pstn);\n}\n\n/***************************************************************************\n    Get the rtvn for the given string (in _pgstNames).\n***************************************************************************/\nvoid SCCB::_GetRtvnFromName(long istn, RTVN *prtvn)\n{\n    AssertThis(0);\n    AssertVarMem(prtvn);\n    STN stn;\n\n    _GetStnFromIstn(istn, &stn);\n    if (_FKeyWord(&stn))\n        _ReportError(PszLit(\"Using keyword as variable\"));\n    prtvn->SetFromStn(&stn);\n}\n\n/***************************************************************************\n    Determine if the given string is a keyword.\n***************************************************************************/\nbool SCCB::_FKeyWord(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    long op, clwFixed, clwVar, cactMinVar;\n    bool fVoid;\n    long ipsz;\n\n    if (_FGetOpFromName(pstn, &op, &clwFixed, &clwVar, &cactMinVar, &fVoid))\n        return fTrue;\n    for (ipsz = CvFromRgv(_rgpszKey); ipsz-- > 0;)\n    {\n        if (pstn->FEqualSz(_rgpszKey[ipsz]))\n            return fTrue;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Push a label request using the name in the given ietn.\n***************************************************************************/\nvoid SCCB::_PushLabelRequestIetn(long ietn)\n{\n    AssertThis(0);\n    long istn;\n    STN stn;\n\n    _GetIstnNameFromIetn(ietn, &istn);\n    _GetStnFromIstn(istn, &stn);\n    _PushLabelRequest(&stn);\n}\n\n/***************************************************************************\n    Add the label here.\n***************************************************************************/\nvoid SCCB::_AddLabelIetn(long ietn)\n{\n    AssertThis(0);\n    long istn;\n    STN stn;\n\n    _GetIstnNameFromIetn(ietn, &istn);\n    _GetStnFromIstn(istn, &stn);\n    _AddLabel(&stn);\n}\n\n/***************************************************************************\n    \"Push\" a string constant that is currently in the name string table.\n***************************************************************************/\nvoid SCCB::_PushStringIstn(long istn)\n{\n    AssertThis(0);\n    STN stn;\n\n    _GetStnFromIstn(istn, &stn);\n    _PushString(&stn);\n}\n\n/***************************************************************************\n    Compile the in-fix script source.\n***************************************************************************/\nvoid SCCB::_CompileIn(void)\n{\n    AssertThis(0);\n    AssertPo(_plexb, 0);\n    AssertPo(_pgletnStack, 0);\n    AssertPo(_pgletnTree, 0);\n    TOK tok;\n    TOME *ptome;\n    ETN etn, etnT;\n    long ietn;\n    bool fDone;\n\n    // push the new record\n    ClearPb(&etn, size(etn));\n    etn.tt = ttNil;\n    etn.grfop = fopOp;\n    if (!_pgletnStack->FPush(&etn))\n    {\n        _ReportError(_pszOom);\n        return;\n    }\n\n    for (;;)\n    {\n        fDone = !_FGetTok(&tok);\n        if (fDone || tok.tt == ttSemi)\n        {\n            // end of a statement - emit the code\n            if (_pgletnStack->IvMac() > 1)\n            {\n                // non-empty statement\n                if (!_FResolveToOpl(koplComma, koplComma, &ietn))\n                {\n                    Assert(_fError, \"why wasn't an error reported?\");\n                    _pgletnStack->FSetIvMac(1);\n                }\n                else if (_pgletnStack->IvMac() != 1)\n                {\n                    _ReportError(_pszSyntax);\n                    _pgletnStack->FSetIvMac(1);\n                }\n                else\n                    _EmitCode(ietn, fsccTop | fsccWantVoid, pvNil);\n            }\n            _pgletnTree->FSetIvMac(0);\n            if (fDone)\n            {\n                _EndOp();\n                if (_pglcstd->IvMac() != 0)\n                    _ReportError(PszLit(\"unexpected end of source\"));\n                break;\n            }\n            continue;\n        }\n\n        _pgletnStack->Get(_pgletnStack->IvMac() - 1, &etn);\n        ptome = _PtomeFromTt(tok.tt, etn.grfop & fopOp);\n        if (pvNil == ptome)\n        {\n            _ReportError(_pszSyntax);\n            goto LNextLine;\n        }\n\n        ClearPb(&etn, size(etn));\n        etn.tt = (short)tok.tt;\n        etn.lwValue = tok.lw;\n        etn.op = ptome->op;\n        etn.opl = ptome->oplPush;\n        etn.grfop = ptome->grfop;\n        etn.ietn1 = etn.ietn2 = etn.ietn3 = ivNil;\n        if (tok.tt == ttName || tok.tt == ttString)\n            _AddNameRef(&tok.stn, &etn.lwValue);\n\n        // resolve\n        if (oplNil != ptome->oplResolve)\n        {\n            if (!_FResolveToOpl(ptome->oplResolve, ptome->oplMinRes, &etn.ietn1))\n            {\n                Assert(_fError, \"error not set\");\n                goto LNextLine;\n            }\n        }\n\n        // pop an operator\n        if (ttNil != ptome->ttPop)\n        {\n            if (!_pgletnStack->FPop(&etnT) || etnT.tt != ptome->ttPop || !(etnT.grfop & fopOp))\n            {\n                _ReportError(_pszSyntax);\n                goto LNextLine;\n            }\n            Assert(etnT.ietn2 == ivNil, \"bad etn\");\n            if (etnT.ietn1 != ivNil)\n            {\n                etn.ietn2 = etn.ietn1;\n                etn.ietn1 = etnT.ietn1;\n                if (etnT.grfop & fopFunction)\n                    etn.grfop |= fopFunction;\n            }\n        }\n\n        // push the new record\n        if (!_pgletnStack->FPush(&etn))\n        {\n            _ReportError(_pszOom);\n            goto LNextLine;\n        }\n\n        if (tok.tt == ttAt)\n        {\n            // label declaration - emit the code\n            if (!_FResolveToOpl(koplComma, koplComma, &ietn))\n            {\n                Assert(_fError, \"error not set\");\n                goto LNextLine;\n            }\n            if (_pgletnStack->IvMac() != 1)\n            {\n                _ReportError(_pszSyntax);\n            LNextLine:\n                // start parsing after the next semi-colon\n                while (_FGetTok(&tok) && tok.tt != ttSemi)\n                    ;\n                _pgletnStack->FSetIvMac(1);\n            }\n            else\n                _EmitCode(ietn, fsccTop | fsccWantVoid, pvNil);\n            _pgletnTree->FSetIvMac(0);\n        }\n    }\n}\n\n/***************************************************************************\n    Disassemble the script into a message sink (MSNK) and return whether\n    there was an error.\n***************************************************************************/\nbool SCCB::FDisassemble(PSCPT pscpt, PMSNK pmsnk, PMSNK pmsnkError)\n{\n    AssertThis(0);\n    AssertPo(pscpt, 0);\n    AssertPo(pmsnk, 0);\n    AssertPo(pmsnkError, 0);\n    RTVN rtvn;\n    long ilwMac, ilw, clwPush;\n    long lw;\n    long op;\n    STN stn;\n    DVER dver;\n    PGL pgllw = pscpt->_pgllw;\n    PSZ pszError = pvNil;\n    AssertPo(pgllw, 0);\n    Assert(pgllw->CbEntry() == size(long), \"bad script\");\n\n    ilwMac = pgllw->IvMac();\n    if (ilwMac < 1)\n    {\n        pszError = PszLit(\"No version numbers on script\");\n        goto LFail;\n    }\n\n    // check the version\n    pgllw->Get(0, &lw);\n    dver.Set(SwHigh(lw), SwLow(lw));\n    if (!dver.FReadable(_SwCur(), _SwMin()))\n    {\n        pszError = PszLit(\"Script version doesn't match script compiler version\");\n        goto LFail;\n    }\n\n    for (ilw = 1;;)\n    {\n        // write the label\n        stn.FFormatSz(PszLit(\"@L_%04x \"), ilw);\n        pmsnk->Report(stn.Psz());\n        if (ilw >= ilwMac)\n            break;\n\n        pgllw->Get(ilw++, &lw);\n        clwPush = B2Lw(lw);\n        if (!FIn(clwPush, 0, ilwMac - ilw + 1))\n        {\n            pszError = PszLit(\"bad instruction\");\n            goto LFail;\n        }\n\n        // write the op string\n        if (opNil != (op = B3Lw(lw)))\n        {\n            // this instruction acts on a variable\n            if (clwPush == 0)\n            {\n                pszError = PszLit(\"bad var instruction\");\n                goto LFail;\n            }\n            clwPush--;\n            rtvn.lu1 = (ulong)SuLow(lw);\n            pgllw->Get(ilw++, &rtvn.lu2);\n            if (rtvn.lu1 == 0)\n            {\n                if (op != kopPushLocVar)\n                {\n                    pszError = PszLit(\"bad variable\");\n                    goto LFail;\n                }\n\n                // string literal\n                if (pvNil == pscpt->_pgstLiterals || !FIn(rtvn.lu2, 0, pscpt->_pgstLiterals->IvMac()))\n                {\n                    pszError = PszLit(\"bad internal variable\");\n                    goto LFail;\n                }\n                pscpt->_pgstLiterals->GetStn(rtvn.lu2, &stn);\n                stn.FExpandControls();\n                pmsnk->Report(PszLit(\"\\\"\"));\n                pmsnk->Report(stn.Psz());\n                pmsnk->Report(PszLit(\"\\\" \"));\n            }\n            else\n            {\n                bool fArray = fFalse;\n\n                if (FIn(op, kopMinArray, kopLimArray))\n                {\n                    op += kopPushLocVar - kopPushLocArray;\n                    fArray = fTrue;\n                }\n\n                stn.SetNil();\n                switch (op)\n                {\n                case kopPushLocVar:\n                    stn.FAppendCh(ChLit('<'));\n                    break;\n                case kopPopLocVar:\n                    stn.FAppendCh(ChLit('>'));\n                    break;\n                case kopPushThisVar:\n                    stn.FAppendSz(PszLit(\"<.\"));\n                    break;\n                case kopPopThisVar:\n                    stn.FAppendSz(PszLit(\">.\"));\n                    break;\n                case kopPushGlobalVar:\n                    stn.FAppendSz(PszLit(\"<::\"));\n                    break;\n                case kopPopGlobalVar:\n                    stn.FAppendSz(PszLit(\">::\"));\n                    break;\n                case kopPushRemoteVar:\n                    stn.FAppendSz(PszLit(\"<~\"));\n                    break;\n                case kopPopRemoteVar:\n                    stn.FAppendSz(PszLit(\">~\"));\n                    break;\n                default:\n                    pszError = PszLit(\"bad var op\");\n                    goto LFail;\n                }\n                if (fArray)\n                    stn.FAppendCh(ChLit('&'));\n                pmsnk->Report(stn.Psz());\n\n                rtvn.GetStn(&stn);\n                stn.FAppendCh(kchSpace);\n                pmsnk->Report(stn.Psz());\n            }\n        }\n        else if (opNil != (op = SuLow(lw)))\n        {\n            // normal opcode\n            if (!_FGetStnFromOp(op, &stn))\n            {\n                pszError = PszLit(\"bad op in script\");\n            LFail:\n                if (pmsnkError != pvNil && pszError != pvNil)\n                    pmsnkError->ReportLine(pszError);\n                return fFalse;\n            }\n            stn.FAppendCh(kchSpace);\n            pmsnk->Report(stn.Psz());\n        }\n\n        // dump the stack stuff\n        while (clwPush-- > 0)\n        {\n            pgllw->Get(ilw++, &lw);\n            if (B3Lw(lw) == kbLabel && FIn(lw &= 0x00FFFFFF, 1, ilwMac + 1))\n            {\n                // REVIEW shonk: label identification: this isn't foolproof\n                stn.FFormatSz(PszLit(\"$L_%04x \"), lw);\n                pmsnk->Report(stn.Psz());\n            }\n            else\n            {\n                stn.FFormatSz(PszLit(\"%d /*0x%x*/ \"), lw, lw);\n                pmsnk->Report(stn.Psz());\n            }\n        }\n        pmsnk->ReportLine(PszLit(\"\"));\n    }\n    pmsnk->ReportLine(PszLit(\"\"));\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the values of the RTVN from the given stn.  Only the first 8\n    characters of the stn are significant.  The high word of lu1 is\n    guaranteed to be zero.\n***************************************************************************/\nvoid RTVN::SetFromStn(PSTN pstn)\n{\n    AssertThisMem();\n    AssertPo(pstn, 0);\n    byte rgb[8];\n    byte bT;\n    long lw, ib, ibDst, cbit;\n    long cch = pstn->Cch();\n    PSZ psz = pstn->Psz();\n\n    // There are 52 letters, plus 10 digits, plus the underscore character,\n    // giving a total of 63 valid identifier characters.  We encode these\n    // from 1 to 63 and pack them into 6 bits each.  This lets us put 8\n    // characters in 6 bytes.  We pad the result with 0's.\n\n    ClearPb(rgb, 8);\n    ibDst = 0;\n    cbit = 8;\n    for (ib = 0; ib < 8; ib++)\n    {\n        // map the character to its encoded value\n        if (ib >= cch)\n            bT = 0;\n        else\n        {\n            bT = (byte)(schar)psz[ib];\n            if (FIn(bT, '0', '9' + 1))\n                bT -= '0' - 1;\n            else if (FIn(bT, 'A', 'Z' + 1))\n                bT -= 'A' - 11;\n            else if (FIn(bT, 'a', 'z' + 1))\n                bT -= 'a' - 37;\n            else\n            {\n                Assert(bT == '_', \"bad identifier\");\n                bT = 63;\n            }\n        }\n\n        // pack the encoded value into its 6 bit slot\n        AssertIn(bT, 0, 64);\n        lw = (long)bT << (cbit + 2);\n        rgb[ibDst] = rgb[ibDst] & (-1L << cbit) | B1Lw(lw);\n        if ((cbit += 2) <= 8)\n            rgb[++ibDst] = B0Lw(lw);\n        else\n            cbit -= 8;\n    }\n\n    // put the bytes together into the rtvn's ulongs.\n    lu1 = LwFromBytes(0, 0, rgb[0], rgb[1]);\n    lu2 = LwFromBytes(rgb[2], rgb[3], rgb[4], rgb[5]);\n}\n\n/***************************************************************************\n    Get the variable name that an rtvn stores.\n***************************************************************************/\nvoid RTVN::GetStn(PSTN pstn)\n{\n    AssertThisMem();\n    AssertPo(pstn, 0);\n    byte rgb[8];\n    byte bT;\n    long ib;\n\n    // unpack the individual bytes\n    rgb[0] = (byte)((lu1 & 0x0000FC00) >> 10);\n    rgb[1] = (byte)((lu1 & 0x000003F0) >> 4);\n    rgb[2] = (byte)(((lu1 & 0x0000000F) << 2) | ((lu2 & 0xC0000000) >> 30));\n    rgb[3] = (byte)((lu2 & 0x3F000000) >> 24);\n    rgb[4] = (byte)((lu2 & 0x00FC0000) >> 18);\n    rgb[5] = (byte)((lu2 & 0x0003F000) >> 12);\n    rgb[6] = (byte)((lu2 & 0x00000FC0) >> 6);\n    rgb[7] = (byte)(lu2 & 0x0000003F);\n\n    // convert the bytes to characters and append them to the stn\n    pstn->SetNil();\n    for (ib = 0; ib < 8; ib++)\n    {\n        bT = rgb[ib];\n        if (bT == 0)\n            break;\n        if (FIn(bT, 1, 11))\n            bT += '0' - 1;\n        else if (FIn(bT, 11, 37))\n            bT += 'A' - 11;\n        else if (FIn(bT, 37, 63))\n            bT += 'a' - 37;\n        else\n        {\n            Assert(bT == 63, 0);\n            bT = '_';\n        }\n        pstn->FAppendCh((achar)bT);\n    }\n\n    if (lu1 & 0xFFFF0000)\n    {\n        STN stn;\n\n        stn.FFormatSz(PszLit(\"[%d]\"), SuHigh(lu1));\n        pstn->FAppendStn(&stn);\n    }\n}\n"
  },
  {
    "path": "kauai/src/scrcom.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Script compiler declarations.\n\n***************************************************************************/\n#ifndef SCRCOM_H\n#define SCRCOM_H\n\n/***************************************************************************\n    Opcodes for scripts - these are the opcodes that can actually exist in\n    script.  They don't necessarily map directly to the compiler's notion of\n    an operator.\n***************************************************************************/\n// if you change this enum, bump the version numbers below\nenum\n{\n    opNil,\n\n    // ops that act on variables come first\n    kopPushLocVar,\n    kopPopLocVar,\n    kopPushThisVar,\n    kopPopThisVar,\n    kopPushGlobalVar,\n    kopPopGlobalVar,\n    kopPushRemoteVar,\n    kopPopRemoteVar,\n\n    kopMinArray = 0x80,\n    kopPushLocArray = kopMinArray,\n    kopPopLocArray,\n    kopPushThisArray,\n    kopPopThisArray,\n    kopPushGlobalArray,\n    kopPopGlobalArray,\n    kopPushRemoteArray,\n    kopPopRemoteArray,\n    kopLimArray,\n\n    kopLimVarSccb = kopLimArray,\n\n    // ops that just act on the stack - no variables\n    //  for the comments below, a is the top value on the execution stack\n    //  b is the next to top value on the stack, and c is next on the stack\n    kopAdd = 0x100, // addition: b + a\n    kopSub,         // subtraction: b - a\n    kopMul,         // multiplication: b * a\n    kopDiv,         // integer division: b / a\n    kopMod,         // mod: b % a\n    kopNeg,         // unary negation: -a\n    kopInc,         // unary increment: a + 1\n    kopDec,         // unary decrement: a - 1\n    kopShr,         // shift right: b >> a\n    kopShl,         // shift left: b << a\n    kopBOr,         // bitwise or: b | a\n    kopBAnd,        // bitwise and: b & a\n    kopBXor,        // bitwise exclusive or: b ^ a\n    kopBNot,        // unary bitwise not: ~a\n    kopLXor,        // logical exclusive or: (b != 0) != (a != 0)\n    kopLNot,        // unary logical not: !a\n    kopEq,          // equality: b == a\n    kopNe,          // not equal: b != a\n    kopGt,          // greater than: b > a\n    kopLt,          // less than: b < a\n    kopGe,          // greater or equal: b >= a\n    kopLe,          // less or equal: b <= a\n\n    kopAbs,         // unary absolute value: LwAbs(a)\n    kopRnd,         // a random number between 0 and a - 1 (inclusive)\n    kopMulDiv,      // a * b / c without loss of precision\n    kopDup,         // duplicates the top value\n    kopPop,         // discards the top value\n    kopSwap,        // swaps the top two values\n    kopRot,         // rotates b values by a (c is placed a slots deeper in the stack)\n    kopRev,         // reverses the next a slots on the stack\n    kopDupList,     // duplicates the next a slots on the stack\n    kopPopList,     // pops the next a slots on the stack\n    kopRndList,     // picks one of the next a stack values at random\n    kopSelect,      // picks the b'th entry among the next a stack values\n    kopGoEq,        // if (b == a) jumps to label c\n    kopGoNe,        // if (b != a) jumps to label c\n    kopGoGt,        // if (b > a) jumps to label c\n    kopGoLt,        // if (b < a) jumps to label c\n    kopGoGe,        // if (b >= a) jumps to label c\n    kopGoLe,        // if (b <= a) jumps to label c\n    kopGoZ,         // if (a == 0) jumps to label b\n    kopGoNz,        // if (a != 0) jumps to label b\n    kopGo,          // jumps to label a\n    kopExit,        // terminates the script\n    kopReturn,      // terminates the script with return value a\n    kopSetReturn,   // sets the return value to a\n    kopShuffle,     // shuffles the numbers 0,1,..,a-1 for calls to NextCard\n    kopShuffleList, // shuffles the top a values for calls to NextCard\n    kopNextCard,    // returns the next value from the shuffled values\n                    // when all values have been used, the values are reshuffled\n    kopMatch,       // a is a count of pairs, b is the key, c is the default value\n                    // if b matches the first of any of the a pairs, the second\n                    // value of the pair is pushed. if not, c is pushed.\n    kopPause,       // pause the script (can be resumed later from C code)\n    kopCopyStr,     // copy a string within the registry\n    kopMoveStr,     // move a string within the registry\n    kopNukeStr,     // delete a string from the registry\n    kopMergeStrs,   // merge a string table into the registry\n    kopScaleTime,   // scale the application clock\n    kopNumToStr,    // convert a number to a decimal string\n    kopStrToNum,    // convert a string to a number\n    kopConcatStrs,  // concatenate two strings\n    kopLenStr,      // return the number of characters in the string\n    kopCopySubStr,  // copy a piece of the string\n\n    kopLimSccb\n};\n\n// structure to map a string to an opcode (post-fix)\nstruct SZOP\n{\n    long op;\n    PSZ psz;\n};\n\n// structure to map a string to an opcode and argument information (in-fix)\nstruct AROP\n{\n    long op;\n    PSZ psz;\n    long clwFixed;   // number of fixed arguments\n    long clwVar;     // number of arguments per variable group\n    long cactMinVar; // minimum number of variable groups\n    bool fVoid;      // return a value?\n};\n\n// script version numbers\n// if you bump these, also bump the numbers in scrcomg.h\nconst short kswCurSccb = 0xA;  // this version\nconst short kswBackSccb = 0xA; // we can be read back to this version\nconst short kswMinSccb = 0xA;  // we can read back to this version\n\n// high byte of a label value\nconst byte kbLabel = 0xCC;\n\n/***************************************************************************\n    Run-time variable name.  The first 8 characters of the name are\n    significant.  These 8 characters are packed into lu2 and the low\n    2 bytes of lu1, so clients can store the info in 6 bytes. The high\n    2 bytes of lu1 are used for array subscripts.\n***************************************************************************/\nstruct RTVN\n{\n    ulong lu1;\n    ulong lu2;\n\n    void SetFromStn(PSTN pstn);\n    void GetStn(PSTN pstn);\n};\n\n/***************************************************************************\n    The script compiler base class.\n***************************************************************************/\ntypedef class SCCB *PSCCB;\n#define SCCB_PAR BASE\n#define kclsSCCB 'SCCB'\nclass SCCB : public SCCB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    enum\n    {\n        fsccNil = 0,\n        fsccWantVoid = 1,\n        fsccTop = 2\n    };\n\n    PLEXB _plexb;       // the lexer\n    PSCPT _pscpt;       // the script we're building\n    PGL _pgletnTree;    // expression tree (in-fix only)\n    PGL _pgletnStack;   // token stack for building expression tree (in-fix only)\n    PGL _pglcstd;       // control structure stack (in-fix only)\n    PGST _pgstNames;    // encountered names (in-fix only)\n    PGST _pgstLabel;    // encountered labels, sorted, extra long is label value\n    PGST _pgstReq;      // label references, extra long is address of reference\n    long _ilwOpLast;    // address of the last opcode\n    long _lwLastLabel;  // for internal temporary labels\n    bool _fError : 1;   // whether an error has occured during compiling\n    bool _fForceOp : 1; // when pushing a constant, make sure the last long\n                        // is an opcode (because a label references this loc)\n    bool _fHitEnd : 1;  // we've exhausted our input stream\n    long _ttEnd;        // stop compiling when we see this\n    PMSNK _pmsnk;       // the message sink - for error reporting when compiling\n\n    bool _FInit(PLEXB plexb, bool fInFix, PMSNK pmsnk);\n    void _Free(void);\n\n    // general compilation methods\n    void _PushLw(long lw);\n    void _PushString(PSTN pstn);\n    void _PushOp(long op);\n    void _EndOp(void);\n    void _PushVarOp(long op, RTVN *prtvn);\n    bool _FFindLabel(PSTN pstn, long *plwLoc);\n    void _AddLabel(PSTN pstn);\n    void _PushLabelRequest(PSTN pstn);\n    void _AddLabelLw(long lw);\n    void _PushLabelRequestLw(long lw);\n\n    virtual void _ReportError(PSZ psz);\n    virtual short _SwCur(void);\n    virtual short _SwBack(void);\n    virtual short _SwMin(void);\n\n    virtual bool _FGetTok(PTOK ptok);\n\n    // post-fix compiler routines\n    virtual void _CompilePost(void);\n    long _OpFromStnRgszop(PSTN pstn, SZOP *prgszop);\n    virtual long _OpFromStn(PSTN pstn);\n    bool _FGetStnFromOpRgszop(long op, PSTN pstn, SZOP *prgszop);\n    virtual bool _FGetStnFromOp(long op, PSTN pstn);\n\n    // in-fix compiler routines\n    virtual void _CompileIn(void);\n    bool _FResolveToOpl(long opl, long oplMin, long *pietn);\n    void _EmitCode(long ietnTop, ulong grfscc, long *pclwArg);\n    void _EmitVarAccess(long ietn, RTVN *prtvn, long *popPush, long *popPop, long *pclwStack);\n    virtual bool _FGetOpFromName(PSTN pstn, long *pop, long *pclwFixed, long *pclwVar, long *pcactMinVar, bool *pfVoid);\n    bool _FGetArop(PSTN pstn, AROP *prgarop, long *pop, long *pclwFixed, long *pclwVar, long *pcactMinVar,\n                   bool *pfVoid);\n    void _PushLabelRequestIetn(long ietn);\n    void _AddLabelIetn(long ietn);\n    void _PushOpFromName(long ietn, ulong grfscc, long clwArg);\n    void _GetIstnNameFromIetn(long ietn, long *pistn);\n    void _GetRtvnFromName(long istn, RTVN *prtvn);\n    bool _FKeyWord(PSTN pstn);\n    void _GetStnFromIstn(long istn, PSTN pstn);\n    void _AddNameRef(PSTN pstn, long *pistn);\n    long _CstFromName(long ietn);\n    void _BeginCst(long cst, long ietn);\n    bool _FHandleCst(long ietn);\n    bool _FAddToTree(struct ETN *petn, long *pietn);\n    bool _FConstEtn(long ietn, long *plw);\n    bool _FCombineConstValues(long op, long lw1, long lw2, long *plw);\n    void _SetDepth(struct ETN *petn, bool fCommute = fFalse);\n    void _PushStringIstn(long istn);\n\n  public:\n    SCCB(void);\n    ~SCCB(void);\n\n    virtual PSCPT PscptCompileLex(PLEXB plexb, bool fInFix, PMSNK pmsnk, long ttEnd = ttNil);\n    virtual PSCPT PscptCompileFil(PFIL pfil, bool fInFix, PMSNK pmsnk);\n    virtual PSCPT PscptCompileFni(FNI *pfni, bool fInFix, PMSNK pmsnk);\n    virtual bool FDisassemble(PSCPT pscpt, PMSNK pmsnk, PMSNK pmsnkError = pvNil);\n};\n\n#endif //! SCRCOM_H\n"
  },
  {
    "path": "kauai/src/scrcomg.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Script compiler for gob based scripts.  The real compilation is\n    done at the SCCB class level.  The SCCG class just provides mapping\n    of identifiers to opcodes for GOB specific script primitives.\n\n***************************************************************************/\n#include \"kidframe.h\"\nASSERTNAME\n\nRTCLASS(SCCG)\n\nSZOP _rgszopSccg[] = {\n    {kopCreateChildGob, PszLit(\"CreateChildGob\")},\n    {kopCreateChildThis, PszLit(\"CreateChildThis\")},\n    {kopDestroyGob, PszLit(\"DestroyGob\")},\n    {kopDestroyThis, PszLit(\"DestroyThis\")},\n    {kopResizeGob, PszLit(\"ResizeGob\")},\n    {kopResizeThis, PszLit(\"ResizeThis\")},\n    {kopMoveRelGob, PszLit(\"MoveRelGob\")},\n    {kopMoveRelThis, PszLit(\"MoveRelThis\")},\n    {kopMoveAbsGob, PszLit(\"MoveAbsGob\")},\n    {kopMoveAbsThis, PszLit(\"MoveAbsThis\")},\n    {kopGidThis, PszLit(\"GidThis\")},\n    {kopGidParGob, PszLit(\"GidParGob\")},\n    {kopGidParThis, PszLit(\"GidParThis\")},\n    {kopGidNextSib, PszLit(\"GidNextSib\")},\n    {kopGidPrevSib, PszLit(\"GidPrevSib\")},\n    {kopGidChild, PszLit(\"GidChild\")},\n    {kopFGobExists, PszLit(\"FGobExists\")},\n    {kopCreateClock, PszLit(\"CreateClock\")},\n    {kopDestroyClock, PszLit(\"DestroyClock\")},\n    {kopStartClock, PszLit(\"StartClock\")},\n    {kopStopClock, PszLit(\"StopClock\")},\n    {kopTimeCur, PszLit(\"TimeCur\")},\n    {kopSetAlarm, PszLit(\"SetAlarm\")},\n    {kopEnqueueCid, PszLit(\"EnqueueCid\")},\n    {kopAlert, PszLit(\"Alert\")},\n    {kopRunScriptGob, PszLit(\"RunScriptGob\")},\n    {kopRunScriptThis, PszLit(\"RunScriptThis\")},\n    {kopStateGob, PszLit(\"StateGob\")},\n    {kopStateThis, PszLit(\"StateThis\")},\n    {kopChangeStateGob, PszLit(\"ChangeStateGob\")},\n    {kopChangeStateThis, PszLit(\"ChangeStateThis\")},\n    {kopAnimateGob, PszLit(\"AnimateGob\")},\n    {kopAnimateThis, PszLit(\"AnimateThis\")},\n    {kopSetPictureGob, PszLit(\"SetPictureGob\")},\n    {kopSetPictureThis, PszLit(\"SetPictureThis\")},\n    {kopSetRepGob, PszLit(\"SetRepGob\")},\n    {kopSetRepThis, PszLit(\"SetRepThis\")},\n    {kopXMouseGob, PszLit(\"XMouseGob\")},\n    {kopXMouseThis, PszLit(\"XMouseThis\")},\n    {kopYMouseGob, PszLit(\"YMouseGob\")},\n    {kopYMouseThis, PszLit(\"YMouseThis\")},\n    {kopGidUnique, PszLit(\"GidUnique\")},\n    {kopXGob, PszLit(\"XGob\")},\n    {kopXThis, PszLit(\"XThis\")},\n    {kopYGob, PszLit(\"YGob\")},\n    {kopYThis, PszLit(\"YThis\")},\n    {kopZGob, PszLit(\"ZGob\")},\n    {kopZThis, PszLit(\"ZThis\")},\n    {kopSetZGob, PszLit(\"SetZGob\")},\n    {kopSetZThis, PszLit(\"SetZThis\")},\n    {kopSetColorTable, PszLit(\"SetColorTable\")},\n    {kopCell, PszLit(\"Cell\")},\n    {kopCellNoPause, PszLit(\"CellNoPause\")},\n    {kopGetModifierState, PszLit(\"GetModifierState\")},\n    {kopChangeModifierState, PszLit(\"ChangeModifierState\")},\n    {kopCreateHelpGob, PszLit(\"CreateHelpGob\")},\n    {kopCreateHelpThis, PszLit(\"CreateHelpThis\")},\n    {kopTransition, PszLit(\"Transition\")},\n    {kopGetEdit, PszLit(\"GetEdit\")},\n    {kopSetEdit, PszLit(\"SetEdit\")},\n    {kopAlertStr, PszLit(\"AlertStr\")},\n    {kopGetProp, PszLit(\"GetProp\")},\n    {kopSetProp, PszLit(\"SetProp\")},\n    {kopLaunch, PszLit(\"Launch\")},\n    {kopPlayGob, PszLit(\"PlayGob\")},\n    {kopPlayThis, PszLit(\"PlayThis\")},\n    {kopPlayingGob, PszLit(\"PlayingGob\")},\n    {kopPlayingThis, PszLit(\"PlayingThis\")},\n    {kopStopGob, PszLit(\"StopGob\")},\n    {kopStopThis, PszLit(\"StopThis\")},\n    {kopCurFrameGob, PszLit(\"CurFrameGob\")},\n    {kopCurFrameThis, PszLit(\"CurFrameThis\")},\n    {kopCountFramesGob, PszLit(\"CountFramesGob\")},\n    {kopCountFramesThis, PszLit(\"CountFramesThis\")},\n    {kopGotoFrameGob, PszLit(\"GotoFrameGob\")},\n    {kopGotoFrameThis, PszLit(\"GotoFrameThis\")},\n    {kopFilterCmdsGob, PszLit(\"FilterCmdsGob\")},\n    {kopFilterCmdsThis, PszLit(\"FilterCmdsThis\")},\n    {kopDestroyChildrenGob, PszLit(\"DestroyChildrenGob\")},\n    {kopDestroyChildrenThis, PszLit(\"DestroyChildrenThis\")},\n    {kopPlaySoundThis, PszLit(\"PlaySoundThis\")},\n    {kopPlaySoundGob, PszLit(\"PlaySoundGob\")},\n    {kopStopSound, PszLit(\"StopSound\")},\n    {kopStopSoundClass, PszLit(\"StopSoundClass\")},\n    {kopPlayingSound, PszLit(\"PlayingSound\")},\n    {kopPlayingSoundClass, PszLit(\"PlayingSoundClass\")},\n    {kopPauseSound, PszLit(\"PauseSound\")},\n    {kopPauseSoundClass, PszLit(\"PauseSoundClass\")},\n    {kopResumeSound, PszLit(\"ResumeSound\")},\n    {kopResumeSoundClass, PszLit(\"ResumeSoundClass\")},\n    {kopPlayMouseSoundGob, PszLit(\"PlayMouseSoundGob\")},\n    {kopPlayMouseSoundThis, PszLit(\"PlayMouseSoundThis\")},\n    {kopRunScriptCnoGob, PszLit(\"RunScriptCnoGob\")},\n    {kopRunScriptCnoThis, PszLit(\"RunScriptCnoThis\")},\n    {kopWidthGob, PszLit(\"WidthGob\")},\n    {kopWidthThis, PszLit(\"WidthThis\")},\n    {kopHeightGob, PszLit(\"HeightGob\")},\n    {kopHeightThis, PszLit(\"HeightThis\")},\n    {kopSetNoSlipGob, PszLit(\"SetNoSlipGob\")},\n    {kopSetNoSlipThis, PszLit(\"SetNoSlipThis\")},\n    {kopFIsDescendent, PszLit(\"FIsDescendent\")},\n    {kopPrint, PszLit(\"Print\")},\n    {kopPrintStr, PszLit(\"PrintStr\")},\n    {kopSetMasterVolume, PszLit(\"SetMasterVolume\")},\n    {kopGetMasterVolume, PszLit(\"GetMasterVolume\")},\n    {kopStartLongOp, PszLit(\"StartLongOp\")},\n    {kopEndLongOp, PszLit(\"EndLongOp\")},\n    {kopSetToolTipSourceGob, PszLit(\"SetToolTipSourceGob\")},\n    {kopSetToolTipSourceThis, PszLit(\"SetToolTipSourceThis\")},\n    {kopSetAlarmGob, PszLit(\"SetAlarmGob\")},\n    {kopSetAlarmThis, PszLit(\"SetAlarmThis\")},\n    {kopModalHelp, PszLit(\"ModalHelp\")},\n    {kopFlushUserEvents, PszLit(\"FlushUserEvents\")},\n    {kopStreamGob, PszLit(\"StreamGob\")},\n    {kopStreamThis, PszLit(\"StreamThis\")},\n    {kopPrintStat, PszLit(\"PrintStat\")},\n    {kopPrintStrStat, PszLit(\"PrintStrStat\")},\n\n    {opNil, pvNil},\n};\n\nAROP _rgaropSccg[] = {\n    {kopCreateChildGob, PszLit(\"CreateChildGob\"), 3, 0, 0, fFalse},\n    {kopCreateChildThis, PszLit(\"CreateChildThis\"), 2, 0, 0, fFalse},\n    {kopDestroyGob, PszLit(\"DestroyGob\"), 1, 0, 0, fTrue},\n    {kopDestroyThis, PszLit(\"DestroyThis\"), 0, 0, 0, fTrue},\n    {kopResizeGob, PszLit(\"ResizeGob\"), 3, 0, 0, fTrue},\n    {kopResizeThis, PszLit(\"ResizeThis\"), 2, 0, 0, fTrue},\n    {kopMoveRelGob, PszLit(\"MoveRelGob\"), 3, 0, 0, fTrue},\n    {kopMoveRelThis, PszLit(\"MoveRelThis\"), 2, 0, 0, fTrue},\n    {kopMoveAbsGob, PszLit(\"MoveAbsGob\"), 3, 0, 0, fTrue},\n    {kopMoveAbsThis, PszLit(\"MoveAbsThis\"), 2, 0, 0, fTrue},\n    {kopGidThis, PszLit(\"GidThis\"), 0, 0, 0, fFalse},\n    {kopGidParGob, PszLit(\"GidParGob\"), 1, 0, 0, fFalse},\n    {kopGidParThis, PszLit(\"GidParThis\"), 0, 0, 0, fFalse},\n    {kopGidNextSib, PszLit(\"GidNextSib\"), 1, 0, 0, fFalse},\n    {kopGidPrevSib, PszLit(\"GidPrevSib\"), 1, 0, 0, fFalse},\n    {kopGidChild, PszLit(\"GidChild\"), 1, 0, 0, fFalse},\n    {kopFGobExists, PszLit(\"FGobExists\"), 1, 0, 0, fFalse},\n    {kopCreateClock, PszLit(\"CreateClock\"), 1, 0, 0, fFalse},\n    {kopDestroyClock, PszLit(\"DestroyClock\"), 1, 0, 0, fTrue},\n    {kopStartClock, PszLit(\"StartClock\"), 2, 0, 0, fTrue},\n    {kopStopClock, PszLit(\"StopClock\"), 1, 0, 0, fTrue},\n    {kopTimeCur, PszLit(\"TimeCur\"), 1, 0, 0, fFalse},\n    {kopSetAlarm, PszLit(\"SetAlarm\"), 2, 0, 0, fTrue},\n    {kopEnqueueCid, PszLit(\"EnqueueCid\"), 6, 0, 0, fTrue},\n    {kopAlert, PszLit(\"Alert\"), 0, 1, 1, fTrue},\n    {kopRunScriptGob, PszLit(\"RunScriptGob\"), 2, 1, 0, fFalse},\n    {kopRunScriptThis, PszLit(\"RunScriptThis\"), 1, 1, 0, fFalse},\n    {kopStateGob, PszLit(\"StateGob\"), 1, 0, 0, fFalse},\n    {kopStateThis, PszLit(\"StateThis\"), 0, 0, 0, fFalse},\n    {kopChangeStateGob, PszLit(\"ChangeStateGob\"), 2, 0, 0, fTrue},\n    {kopChangeStateThis, PszLit(\"ChangeStateThis\"), 1, 0, 0, fTrue},\n    {kopAnimateGob, PszLit(\"AnimateGob\"), 2, 0, 0, fTrue},\n    {kopAnimateThis, PszLit(\"AnimateThis\"), 1, 0, 0, fTrue},\n    {kopSetPictureGob, PszLit(\"SetPictureGob\"), 2, 0, 0, fTrue},\n    {kopSetPictureThis, PszLit(\"SetPictureThis\"), 1, 0, 0, fTrue},\n    {kopSetRepGob, PszLit(\"SetRepGob\"), 2, 0, 0, fTrue},\n    {kopSetRepThis, PszLit(\"SetRepThis\"), 1, 0, 0, fTrue},\n    {kopXMouseGob, PszLit(\"XMouseGob\"), 1, 0, 0, fFalse},\n    {kopXMouseThis, PszLit(\"XMouseThis\"), 0, 0, 0, fFalse},\n    {kopYMouseGob, PszLit(\"YMouseGob\"), 1, 0, 0, fFalse},\n    {kopYMouseThis, PszLit(\"YMouseThis\"), 0, 0, 0, fFalse},\n    {kopGidUnique, PszLit(\"GidUnique\"), 0, 0, 0, fFalse},\n    {kopXGob, PszLit(\"XGob\"), 1, 0, 0, fFalse},\n    {kopXThis, PszLit(\"XThis\"), 0, 0, 0, fFalse},\n    {kopYGob, PszLit(\"YGob\"), 1, 0, 0, fFalse},\n    {kopYThis, PszLit(\"YThis\"), 0, 0, 0, fFalse},\n    {kopZGob, PszLit(\"ZGob\"), 1, 0, 0, fFalse},\n    {kopZThis, PszLit(\"ZThis\"), 0, 0, 0, fFalse},\n    {kopSetZGob, PszLit(\"SetZGob\"), 2, 0, 0, fTrue},\n    {kopSetZThis, PszLit(\"SetZThis\"), 1, 0, 0, fTrue},\n    {kopSetColorTable, PszLit(\"SetColorTable\"), 1, 0, 0, fTrue},\n    {kopCell, PszLit(\"Cell\"), 4, 0, 0, fTrue},\n    {kopCellNoPause, PszLit(\"CellNoPause\"), 4, 0, 0, fTrue},\n    {kopGetModifierState, PszLit(\"GetModifierState\"), 0, 0, 0, fFalse},\n    {kopChangeModifierState, PszLit(\"ChangeModifierState\"), 2, 0, 0, fTrue},\n    {kopCreateHelpGob, PszLit(\"CreateHelpGob\"), 2, 0, 0, fFalse},\n    {kopCreateHelpThis, PszLit(\"CreateHelpThis\"), 1, 0, 0, fFalse},\n    {kopTransition, PszLit(\"Transition\"), 5, 0, 0, fTrue},\n    {kopGetEdit, PszLit(\"GetEdit\"), 2, 0, 0, fTrue},\n    {kopSetEdit, PszLit(\"SetEdit\"), 2, 0, 0, fTrue},\n    {kopAlertStr, PszLit(\"AlertStr\"), 0, 1, 1, fTrue},\n    {kopGetProp, PszLit(\"GetProp\"), 1, 0, 0, fFalse},\n    {kopSetProp, PszLit(\"SetProp\"), 2, 0, 0, fTrue},\n    {kopLaunch, PszLit(\"Launch\"), 1, 0, 0, fFalse},\n    {kopPlayGob, PszLit(\"PlayGob\"), 1, 0, 0, fTrue},\n    {kopPlayThis, PszLit(\"PlayThis\"), 0, 0, 0, fTrue},\n    {kopPlayingGob, PszLit(\"PlayingGob\"), 1, 0, 0, fFalse},\n    {kopPlayingThis, PszLit(\"PlayingThis\"), 0, 0, 0, fFalse},\n    {kopStopGob, PszLit(\"StopGob\"), 1, 0, 0, fTrue},\n    {kopStopThis, PszLit(\"StopThis\"), 0, 0, 0, fTrue},\n    {kopCurFrameGob, PszLit(\"CurFrameGob\"), 1, 0, 0, fFalse},\n    {kopCurFrameThis, PszLit(\"CurFrameThis\"), 0, 0, 0, fFalse},\n    {kopCountFramesGob, PszLit(\"CountFramesGob\"), 1, 0, 0, fFalse},\n    {kopCountFramesThis, PszLit(\"CountFramesThis\"), 0, 0, 0, fFalse},\n    {kopGotoFrameGob, PszLit(\"GotoFrameGob\"), 2, 0, 0, fTrue},\n    {kopGotoFrameThis, PszLit(\"GotoFrameThis\"), 1, 0, 0, fTrue},\n    {kopFilterCmdsGob, PszLit(\"FilterCmdsGob\"), 4, 0, 0, fTrue},\n    {kopFilterCmdsThis, PszLit(\"FilterCmdsThis\"), 3, 0, 0, fTrue},\n    {kopDestroyChildrenGob, PszLit(\"DestroyChildrenGob\"), 1, 0, 0, fTrue},\n    {kopDestroyChildrenThis, PszLit(\"DestroyChildrenThis\"), 0, 0, 0, fTrue},\n    {kopPlaySoundThis, PszLit(\"PlaySoundThis\"), 7, 0, 0, fFalse},\n    {kopPlaySoundGob, PszLit(\"PlaySoundGob\"), 8, 0, 0, fFalse},\n    {kopStopSound, PszLit(\"StopSound\"), 1, 0, 0, fTrue},\n    {kopStopSoundClass, PszLit(\"StopSoundClass\"), 2, 0, 0, fTrue},\n    {kopPlayingSound, PszLit(\"PlayingSound\"), 1, 0, 0, fFalse},\n    {kopPlayingSoundClass, PszLit(\"PlayingSoundClass\"), 2, 0, 0, fFalse},\n    {kopPauseSound, PszLit(\"PauseSound\"), 1, 0, 0, fTrue},\n    {kopPauseSoundClass, PszLit(\"PauseSoundClass\"), 2, 0, 0, fTrue},\n    {kopResumeSound, PszLit(\"ResumeSound\"), 1, 0, 0, fTrue},\n    {kopResumeSoundClass, PszLit(\"ResumeSoundClass\"), 2, 0, 0, fTrue},\n    {kopPlayMouseSoundGob, PszLit(\"PlayMouseSoundGob\"), 3, 0, 0, fTrue},\n    {kopPlayMouseSoundThis, PszLit(\"PlayMouseSoundThis\"), 2, 0, 0, fTrue},\n    {kopRunScriptCnoGob, PszLit(\"RunScriptCnoGob\"), 2, 1, 0, fFalse},\n    {kopRunScriptCnoThis, PszLit(\"RunScriptCnoThis\"), 1, 1, 0, fFalse},\n    {kopWidthGob, PszLit(\"WidthGob\"), 1, 0, 0, fFalse},\n    {kopWidthThis, PszLit(\"WidthThis\"), 0, 0, 0, fFalse},\n    {kopHeightGob, PszLit(\"HeightGob\"), 1, 0, 0, fFalse},\n    {kopHeightThis, PszLit(\"HeightThis\"), 0, 0, 0, fFalse},\n    {kopSetNoSlipGob, PszLit(\"SetNoSlipGob\"), 2, 0, 0, fTrue},\n    {kopSetNoSlipThis, PszLit(\"SetNoSlipThis\"), 1, 0, 0, fTrue},\n    {kopFIsDescendent, PszLit(\"FIsDescendent\"), 2, 0, 0, fFalse},\n    {kopPrint, PszLit(\"Print\"), 0, 1, 1, fTrue},\n    {kopPrintStr, PszLit(\"PrintStr\"), 0, 1, 1, fTrue},\n    {kopSetMasterVolume, PszLit(\"SetMasterVolume\"), 1, 0, 0, fTrue},\n    {kopGetMasterVolume, PszLit(\"GetMasterVolume\"), 0, 0, 0, fFalse},\n    {kopStartLongOp, PszLit(\"StartLongOp\"), 0, 0, 0, fTrue},\n    {kopEndLongOp, PszLit(\"EndLongOp\"), 1, 0, 0, fTrue},\n    {kopSetToolTipSourceGob, PszLit(\"SetToolTipSourceGob\"), 2, 0, 0, fTrue},\n    {kopSetToolTipSourceThis, PszLit(\"SetToolTipSourceThis\"), 1, 0, 0, fTrue},\n    {kopSetAlarmGob, PszLit(\"SetAlarmGob\"), 4, 0, 0, fTrue},\n    {kopSetAlarmThis, PszLit(\"SetAlarmThis\"), 3, 0, 0, fTrue},\n    {kopModalHelp, PszLit(\"ModalHelp\"), 2, 0, 0, fFalse},\n    {kopFlushUserEvents, PszLit(\"FlushUserEvents\"), 1, 0, 0, fTrue},\n    {kopStreamGob, PszLit(\"StreamGob\"), 2, 0, 0, fTrue},\n    {kopStreamThis, PszLit(\"StreamThis\"), 1, 0, 0, fTrue},\n    {kopPrintStat, PszLit(\"PrintStat\"), 0, 1, 1, fTrue},\n    {kopPrintStrStat, PszLit(\"PrintStrStat\"), 0, 1, 1, fTrue},\n\n    {opNil, pvNil, 0, 0, 0, fTrue},\n};\n\n/***************************************************************************\n    Map a string to an operator.\n***************************************************************************/\nlong SCCG::_OpFromStn(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    long op;\n    if (opNil != (op = _OpFromStnRgszop(pstn, _rgszopSccg)))\n        return op;\n    return SCCG_PAR::_OpFromStn(pstn);\n}\n\n/***************************************************************************\n    Map an op code to a string.\n***************************************************************************/\nbool SCCG::_FGetStnFromOp(long op, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    if (_FGetStnFromOpRgszop(op, pstn, _rgszopSccg))\n        return fTrue;\n    return SCCG_PAR::_FGetStnFromOp(op, pstn);\n}\n\n/***************************************************************************\n    Map a string to an operator with argument information (for in-fix\n    compiler).\n***************************************************************************/\nbool SCCG::_FGetOpFromName(PSTN pstn, long *pop, long *pclwFixed, long *pclwVar, long *pcactMinVar, bool *pfVoid)\n{\n    if (_FGetArop(pstn, _rgaropSccg, pop, pclwFixed, pclwVar, pcactMinVar, pfVoid))\n    {\n        return fTrue;\n    }\n    return SCCG_PAR::_FGetOpFromName(pstn, pop, pclwFixed, pclwVar, pcactMinVar, pfVoid);\n}\n\n/***************************************************************************\n    Return the current version number of the script compiler.\n***************************************************************************/\nshort SCCG::_SwCur(void)\n{\n    return kswCurSccg;\n}\n\n/***************************************************************************\n    Return the back version number of the script compiler.  Versions\n    back to here can read this script.\n***************************************************************************/\nshort SCCG::_SwBack(void)\n{\n    return kswBackSccg;\n}\n\n/***************************************************************************\n    Return the min version number of the script compiler.  We can read\n    scripts back to this version.\n***************************************************************************/\nshort SCCG::_SwMin(void)\n{\n    return kswMinSccg;\n}\n"
  },
  {
    "path": "kauai/src/scrcomg.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Script compiler for the gob based scripts.\n\n***************************************************************************/\n#ifndef SCRCOMG_H\n#define SCRCOMG_H\n\n// if you change this enum, bump the version numbers below\nenum\n{\n    kopCreateChildGob = 0x1000,\n    kopCreateChildThis,\n    kopDestroyGob,\n    kopDestroyThis,\n    kopResizeGob,\n    kopResizeThis,\n    kopMoveRelGob,\n    kopMoveRelThis,\n    kopMoveAbsGob,\n    kopMoveAbsThis,\n    kopGidThis,\n    kopGidParGob,\n    kopGidParThis,\n    kopGidNextSib,\n    kopGidPrevSib,\n    kopGidChild,\n    kopFGobExists,\n    kopCreateClock,\n    kopDestroyClock,\n    kopStartClock,\n    kopStopClock,\n    kopTimeCur,\n    kopSetAlarm,\n    kopEnqueueCid,\n    kopAlert,\n    kopRunScriptGob,\n    kopRunScriptThis,\n    kopStateGob,\n    kopStateThis,\n    kopChangeStateGob,\n    kopChangeStateThis,\n    kopAnimateGob,\n    kopAnimateThis,\n    kopSetPictureGob,\n    kopSetPictureThis,\n    kopSetRepGob,\n    kopSetRepThis,\n    kopUNUSED100,\n    kopUNUSED101,\n    kopRunScriptCnoGob,\n    kopRunScriptCnoThis,\n    kopXMouseGob,\n    kopXMouseThis,\n    kopYMouseGob,\n    kopYMouseThis,\n    kopGidUnique,\n    kopXGob,\n    kopXThis,\n    kopYGob,\n    kopYThis,\n    kopZGob,\n    kopZThis,\n    kopSetZGob,\n    kopSetZThis,\n    kopSetColorTable,\n    kopCell,\n    kopCellNoPause,\n    kopGetModifierState,\n    kopChangeModifierState,\n    kopCreateHelpGob,\n    kopCreateHelpThis,\n    kopTransition,\n    kopGetEdit,\n    kopSetEdit,\n    kopAlertStr,\n    kopGetProp,\n    kopSetProp,\n    kopLaunch,\n    kopPlayGob,\n    kopPlayThis,\n    kopPlayingGob,\n    kopPlayingThis,\n    kopStopGob,\n    kopStopThis,\n    kopCurFrameGob,\n    kopCurFrameThis,\n    kopCountFramesGob,\n    kopCountFramesThis,\n    kopGotoFrameGob,\n    kopGotoFrameThis,\n    kopFilterCmdsGob,\n    kopFilterCmdsThis,\n    kopDestroyChildrenGob,\n    kopDestroyChildrenThis,\n    kopPlaySoundThis,\n    kopPlaySoundGob,\n    kopStopSound,\n    kopStopSoundClass,\n    kopPlayingSound,\n    kopPlayingSoundClass,\n    kopPauseSound,\n    kopPauseSoundClass,\n    kopResumeSound,\n    kopResumeSoundClass,\n    kopPlayMouseSoundThis,\n    kopPlayMouseSoundGob,\n    kopWidthGob,\n    kopWidthThis,\n    kopHeightGob,\n    kopHeightThis,\n    kopSetNoSlipGob,\n    kopSetNoSlipThis,\n    kopFIsDescendent,\n    kopPrint,\n    kopPrintStr,\n    kopSetMasterVolume,\n    kopGetMasterVolume,\n    kopStartLongOp,\n    kopEndLongOp,\n    kopSetToolTipSourceGob,\n    kopSetToolTipSourceThis,\n    kopSetAlarmGob,\n    kopSetAlarmThis,\n    kopModalHelp,\n    kopFlushUserEvents,\n    kopStreamGob,\n    kopStreamThis,\n    kopPrintStat,\n    kopPrintStrStat,\n\n    kopLimSccg\n};\n\nconst short kswCurSccg = 0x101D;  // this version\nconst short kswBackSccg = 0x101D; // we can be read back to this version\nconst short kswMinSccg = 0x1015;  // we can read back to this version\n\n/****************************************\n    Gob based script compiler\n****************************************/\ntypedef class SCCG *PSCCG;\n#define SCCG_PAR SCCB\n#define kclsSCCG 'SCCG'\nclass SCCG : public SCCG_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    virtual short _SwCur(void);\n    virtual short _SwBack(void);\n    virtual short _SwMin(void);\n\n    virtual long _OpFromStn(PSTN pstn);\n    virtual bool _FGetOpFromName(PSTN pstn, long *pop, long *pclwFixed, long *pclwVar, long *pcactMinVar, bool *pfVoid);\n    virtual bool _FGetStnFromOp(long op, PSTN pstn);\n};\n\n#endif //! SCRCOMG_H\n"
  },
  {
    "path": "kauai/src/screxe.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Script interpreter.  See scrcom.cpp for an explanation of the format\n    of compiled scripts.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\nRTCLASS(SCEB)\nRTCLASS(SCPT)\nRTCLASS(STRG)\n\n#ifdef DEBUG\n// these strings are for debug only error messages\nstatic STN _stn;\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for the script interpreter.\n***************************************************************************/\nSCEB::SCEB(PRCA prca, PSTRG pstrg)\n{\n    AssertNilOrPo(prca, 0);\n    AssertNilOrPo(pstrg, 0);\n\n    _pgllwStack = pvNil;\n    _pglrtvm = pvNil;\n    _pscpt = pvNil;\n    _fPaused = fFalse;\n\n    _prca = prca;\n    if (pvNil != _prca)\n        _prca->AddRef();\n    _pstrg = pstrg;\n    if (pvNil != _pstrg)\n        _pstrg->AddRef();\n\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructor for the script interpreter.\n***************************************************************************/\nSCEB::~SCEB(void)\n{\n    Free();\n    ReleasePpo(&_prca);\n    ReleasePpo(&_pstrg);\n}\n\n/***************************************************************************\n    Free our claim to all this stuff.\n***************************************************************************/\nvoid SCEB::Free(void)\n{\n    AssertThis(0);\n\n    // nuke literal strings left in the global string table\n    if (pvNil != _pscpt && pvNil != _pstrg && pvNil != _pscpt->_pgstLiterals && pvNil != _pglrtvm)\n    {\n        RTVN rtvn;\n        long stid;\n\n        rtvn.lu1 = 0;\n        for (rtvn.lu2 = _pscpt->_pgstLiterals->IvMac(); rtvn.lu2-- > 0;)\n        {\n            if (FFindRtvm(_pglrtvm, &rtvn, &stid, pvNil))\n                _pstrg->Delete(stid);\n        }\n    }\n\n    ReleasePpo(&_pgllwStack);\n    ReleasePpo(&_pglrtvm);\n    ReleasePpo(&_pscpt);\n    _fPaused = fFalse;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a SCEB.\n***************************************************************************/\nvoid SCEB::AssertValid(ulong grfsceb)\n{\n    SCEB_PAR::AssertValid(0);\n    if (grfsceb & fscebRunnable)\n    {\n        Assert(pvNil != _pgllwStack, \"nil stack\");\n        Assert(pvNil != _pscpt, \"nil script\");\n        Assert(_ilwMac == _pscpt->_pgllw->IvMac(), 0);\n        AssertIn(_ilwCur, 1, _ilwMac + 1);\n        Assert(!_fError, 0);\n    }\n    AssertNilOrPo(_pgllwStack, 0);\n    AssertNilOrPo(_pscpt, 0);\n    AssertNilOrPo(_pglrtvm, 0);\n    AssertNilOrPo(_pstrg, 0);\n    AssertNilOrPo(_prca, 0);\n}\n\n/***************************************************************************\n    Mark memory for the SCEB.\n***************************************************************************/\nvoid SCEB::MarkMem(void)\n{\n    AssertValid(0);\n    SCEB_PAR::MarkMem();\n    MarkMemObj(_pgllwStack);\n    MarkMemObj(_pscpt);\n    MarkMemObj(_pglrtvm);\n    MarkMemObj(_prca);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Run the given script.  (prglw, clw) is the list of parameters for the\n    script.\n***************************************************************************/\nbool SCEB::FRunScript(PSCPT pscpt, long *prglw, long clw, long *plwReturn, bool *pfPaused)\n{\n    AssertThis(0);\n    return FAttachScript(pscpt, prglw, clw) && FResume(plwReturn, pfPaused);\n}\n\n/***************************************************************************\n    Attach a script to this SCEB and pause the script.\n***************************************************************************/\nbool SCEB::FAttachScript(PSCPT pscpt, long *prglw, long clw)\n{\n    AssertThis(0);\n    AssertPo(pscpt, 0);\n    AssertIn(clw, 0, kcbMax);\n    AssertPvCb(prglw, LwMul(clw, size(long)));\n    long lw;\n    DVER dver;\n\n    Free();\n    _lwReturn = 0;\n    _fError = fFalse;\n\n    // create the stack GL\n    if (pvNil == (_pgllwStack = GL::PglNew(size(long), 10)))\n        goto LFail;\n    _pgllwStack->SetMinGrow(10);\n\n    // stake our claim on the code GL.\n    _pscpt = pscpt;\n    _pscpt->AddRef();\n\n    // check the version\n    // get and check the version number\n    if ((_ilwMac = _pscpt->_pgllw->IvMac()) < 1)\n    {\n        Bug(\"No version info on script\");\n        goto LFail;\n    }\n    _pscpt->_pgllw->Get(0, &lw);\n    dver.Set(SwHigh(lw), SwLow(lw));\n    if (!dver.FReadable(_SwCur(), _SwMin()))\n    {\n        Bug(\"Script version doesn't match script interpreter version\");\n        goto LFail;\n    }\n\n    // add the parameters and literal strings\n    if (clw > 0)\n        _AddParameters(prglw, clw);\n    if (pvNil != _pscpt->_pgstLiterals && !_fError)\n        _AddStrings(_pscpt->_pgstLiterals);\n\n    if (_fError)\n    {\n    LFail:\n        Free();\n        return fFalse;\n    }\n\n    // set the pc and claim we're paused\n    _ilwCur = 1;\n    _fPaused = fTrue;\n    AssertThis(fscebRunnable);\n    return fTrue;\n}\n\n/***************************************************************************\n    Resume a paused script.\n***************************************************************************/\nbool SCEB::FResume(long *plwReturn, bool *pfPaused)\n{\n    AssertThis(fscebRunnable);\n    AssertNilOrVarMem(plwReturn);\n    AssertNilOrVarMem(pfPaused);\n    RTVN rtvn;\n    long ilw, clwPush;\n    long lw;\n    long op;\n\n    TrashVar(plwReturn);\n    TrashVar(pfPaused);\n    if (!_fPaused || _fError)\n    {\n        Bug(\"script not paused\");\n        goto LFail;\n    }\n\n    AssertIn(_ilwCur, 1, _ilwMac + 1);\n    for (_fPaused = fFalse; _ilwCur < _ilwMac && !_fError && !_fPaused;)\n    {\n        lw = *(long *)_pscpt->_pgllw->QvGet(_ilwCur++);\n        clwPush = B2Lw(lw);\n        if (!FIn(clwPush, 0, _ilwMac - _ilwCur + 1))\n        {\n            Bug(\"bad instruction\");\n            goto LFail;\n        }\n\n        ilw = _ilwCur;\n        if (opNil != (op = B3Lw(lw)))\n        {\n            // this instruction acts on a variable\n            if (clwPush == 0)\n            {\n                Bug(\"bad var instruction\");\n                goto LFail;\n            }\n            clwPush--;\n            rtvn.lu1 = (ulong)lw & 0x0000FFFF;\n            rtvn.lu2 = *(ulong *)_pscpt->_pgllw->QvGet(_ilwCur++);\n            ilw = _ilwCur;\n            if (!_FExecVarOp(op, &rtvn))\n                goto LFail;\n        }\n        else if (opNil != (op = SuLow(lw)))\n        {\n            // normal opcode\n            if (!_FExecOp(op))\n                goto LFail;\n        }\n\n        // push the stack stuff (if we didn't do a jump)\n        if (clwPush > 0 && ilw == _ilwCur)\n        {\n            ilw = _pgllwStack->IvMac();\n            if (!_pgllwStack->FSetIvMac(ilw + clwPush))\n            {\n            LFail:\n                _Error(fFalse);\n                break;\n            }\n            CopyPb(_pscpt->_pgllw->QvGet(_ilwCur), _pgllwStack->QvGet(ilw), LwMul(clwPush, size(long)));\n            _ilwCur += clwPush;\n        }\n    }\n\n    if (_ilwCur >= _ilwMac || _fError)\n        _fPaused = fFalse;\n    if (!_fPaused)\n        Free();\n    if (!_fError && pvNil != plwReturn)\n        *plwReturn = _lwReturn;\n    if (pvNil != pfPaused)\n        *pfPaused = _fPaused;\n\n    AssertThis(0);\n    return !_fError;\n}\n\n/***************************************************************************\n    Put the parameters in the local variable list.\n***************************************************************************/\nvoid SCEB::_AddParameters(long *prglw, long clw)\n{\n    AssertThis(0);\n    AssertIn(clw, 1, kcbMax);\n    AssertPvCb(prglw, LwMul(clw, size(long)));\n    STN stn;\n    long ilw;\n    RTVN rtvn;\n\n    // put the parameters in the local variable gl\n    stn = PszLit(\"_cparm\");\n    rtvn.SetFromStn(&stn);\n    _AssignVar(&_pglrtvm, &rtvn, clw);\n    stn = PszLit(\"_parm\");\n    rtvn.SetFromStn(&stn);\n    for (ilw = 0; ilw < clw; ilw++)\n    {\n        rtvn.lu1 = LwHighLow(SwLow(ilw), SwLow(rtvn.lu1));\n        _AssignVar(&_pglrtvm, &rtvn, prglw[ilw]);\n    }\n}\n\n/***************************************************************************\n    Put the literal strings into the registry.  And assign the string id's\n    to the internal string variables.\n***************************************************************************/\nvoid SCEB::_AddStrings(PGST pgst)\n{\n    AssertThis(0);\n    AssertPo(pgst, 0);\n    RTVN rtvn;\n    long stid;\n    STN stn;\n\n    if (pvNil == _pstrg)\n    {\n        _Error(fFalse);\n        return;\n    }\n\n    rtvn.lu1 = 0;\n    for (rtvn.lu2 = 0; (long)rtvn.lu2 < pgst->IvMac(); rtvn.lu2++)\n    {\n        pgst->GetStn(rtvn.lu2, &stn);\n        if (!_pstrg->FAdd(&stid, &stn))\n        {\n            _Error(fFalse);\n            break;\n        }\n        _AssignVar(&_pglrtvm, &rtvn, stid);\n        if (_fError)\n        {\n            _pstrg->Delete(stid);\n            break;\n        }\n    }\n}\n\n/***************************************************************************\n    Return the current version number of the script compiler.\n***************************************************************************/\nshort SCEB::_SwCur(void)\n{\n    AssertBaseThis(0);\n    return kswCurSccb;\n}\n\n/***************************************************************************\n    Return the min version number of the script compiler.  Read can read\n    scripts back to this version.\n***************************************************************************/\nshort SCEB::_SwMin(void)\n{\n    AssertBaseThis(0);\n    return kswMinSccb;\n}\n\n/***************************************************************************\n    Execute an instruction that has a variable as an argument.\n***************************************************************************/\nbool SCEB::_FExecVarOp(long op, RTVN *prtvn)\n{\n    AssertThis(0);\n    AssertVarMem(prtvn);\n    long lw;\n\n    if (FIn(op, kopMinArray, kopLimArray))\n    {\n        // an array access, munge the rtvn\n        lw = _LwPop();\n        if (_fError)\n            return fFalse;\n        prtvn->lu1 = LwHighLow(SwLow(lw), SwLow(prtvn->lu1));\n        op += kopPushLocVar - kopPushLocArray;\n    }\n\n    switch (op)\n    {\n    case kopPushLocVar:\n        _PushVar(_pglrtvm, prtvn);\n        break;\n    case kopPopLocVar:\n        _AssignVar(&_pglrtvm, prtvn, _LwPop());\n        break;\n    case kopPushThisVar:\n        _PushVar(_PglrtvmThis(), prtvn);\n        break;\n    case kopPopThisVar:\n        _AssignVar(_PpglrtvmThis(), prtvn, _LwPop());\n        break;\n    case kopPushGlobalVar:\n        _PushVar(_PglrtvmGlobal(), prtvn);\n        break;\n    case kopPopGlobalVar:\n        _AssignVar(_PpglrtvmGlobal(), prtvn, _LwPop());\n        break;\n    case kopPushRemoteVar:\n        lw = _LwPop();\n        if (!_fError)\n            _PushVar(_PglrtvmRemote(lw), prtvn);\n        break;\n    case kopPopRemoteVar:\n        lw = _LwPop();\n        if (!_fError)\n            _AssignVar(_PpglrtvmRemote(lw), prtvn, _LwPop());\n        break;\n    default:\n        _Error(fTrue);\n        break;\n    }\n    return !_fError;\n}\n\n/***************************************************************************\n    Execute an instruction.\n***************************************************************************/\nbool SCEB::_FExecOp(long op)\n{\n    AssertThis(0);\n    double dou;\n    long lw1, lw2, lw3;\n\n    // OP's that don't have any arguments\n    switch (op)\n    {\n    case kopExit:\n        // jump to the end\n        _ilwCur = _ilwMac;\n        return fTrue;\n    case kopNextCard:\n        _Push(vsflUtil.LwNext(0));\n        return fTrue;\n    case kopPause:\n        _fPaused = fTrue;\n        return fTrue;\n    }\n\n    // OP's that have at least one argument\n    lw1 = _LwPop();\n    switch (op)\n    {\n    case kopAdd:\n        _Push(_LwPop() + lw1);\n        break;\n    case kopSub:\n        _Push(_LwPop() - lw1);\n        break;\n    case kopMul:\n        _Push(_LwPop() * lw1);\n        break;\n    case kopDiv:\n        if (lw1 == 0)\n            _Error(fTrue);\n        else\n            _Push(_LwPop() / lw1);\n        break;\n    case kopMod:\n        if (lw1 == 0)\n            _Error(fTrue);\n        else\n            _Push(_LwPop() % lw1);\n        break;\n    case kopNeg:\n        _Push(-lw1);\n        break;\n    case kopInc:\n        _Push(lw1 + 1);\n        break;\n    case kopDec:\n        _Push(lw1 - 1);\n        break;\n    case kopShr:\n        _Push((ulong)_LwPop() >> lw1);\n        break;\n    case kopShl:\n        _Push((ulong)_LwPop() << lw1);\n        break;\n    case kopBOr:\n        _Push(_LwPop() | lw1);\n        break;\n    case kopBAnd:\n        _Push(_LwPop() & lw1);\n        break;\n    case kopBXor:\n        _Push(_LwPop() ^ lw1);\n        break;\n    case kopBNot:\n        _Push(~lw1);\n        break;\n    case kopLXor:\n        _Push(FPure(_LwPop()) != FPure(lw1));\n        break;\n    case kopLNot:\n        _Push(!lw1);\n        break;\n    case kopEq:\n        _Push(_LwPop() == lw1);\n        break;\n    case kopNe:\n        _Push(_LwPop() != lw1);\n        break;\n    case kopGt:\n        _Push(_LwPop() > lw1);\n        break;\n    case kopLt:\n        _Push(_LwPop() < lw1);\n        break;\n    case kopGe:\n        _Push(_LwPop() >= lw1);\n        break;\n    case kopLe:\n        _Push(_LwPop() <= lw1);\n        break;\n    case kopAbs:\n        _Push(LwAbs(lw1));\n        break;\n    case kopRnd:\n        if (lw1 <= 0)\n            _Error(fTrue);\n        else\n            _Push(vrndUtil.LwNext(lw1));\n        break;\n    case kopMulDiv:\n        lw2 = _LwPop();\n        lw3 = _LwPop();\n        if (lw3 == 0)\n            _Error(fTrue);\n        else\n        {\n            dou = (double)lw1 * lw2 / lw3;\n            if (dou < (double)klwMin || dou > (double)klwMax)\n                _Error(fTrue);\n            else\n                _Push((long)dou);\n        }\n        break;\n    case kopDup:\n        _Push(lw1);\n        _Push(lw1);\n        break;\n    case kopPop:\n        break;\n    case kopSwap:\n        lw2 = _LwPop();\n        _Push(lw1);\n        _Push(lw2);\n        break;\n    case kopRot:\n        lw2 = _LwPop();\n        _Rotate(lw2, lw1);\n        break;\n    case kopRev:\n        _Reverse(lw1);\n        break;\n    case kopDupList:\n        _DupList(lw1);\n        break;\n    case kopPopList:\n        _PopList(lw1);\n        break;\n    case kopRndList:\n        _RndList(lw1);\n        break;\n    case kopSelect:\n        _Select(lw1, _LwPop());\n        break;\n    case kopGoEq:\n        lw1 = (_LwPop() == lw1);\n        goto LGoNz;\n    case kopGoNe:\n        lw1 = (_LwPop() != lw1);\n        goto LGoNz;\n    case kopGoGt:\n        lw1 = (_LwPop() > lw1);\n        goto LGoNz;\n    case kopGoLt:\n        lw1 = (_LwPop() < lw1);\n        goto LGoNz;\n    case kopGoGe:\n        lw1 = (_LwPop() >= lw1);\n        goto LGoNz;\n    case kopGoLe:\n        lw1 = (_LwPop() <= lw1);\n        goto LGoNz;\n    case kopGoZ:\n        lw1 = !lw1;\n        // fall through\n    case kopGoNz:\n    LGoNz:\n        lw2 = _LwPop();\n        // labels should have their high byte equal to kbLabel\n        if (B3Lw(lw2) != kbLabel || (lw2 &= 0x00FFFFFF) > _ilwMac)\n            _Error(fTrue);\n        else if (lw1 != 0)\n        {\n            // perform the goto\n            _ilwCur = lw2;\n        }\n        break;\n    case kopGo:\n        // labels should have their high byte equal to kbLabel\n        if (B3Lw(lw1) != kbLabel || (lw1 &= 0x00FFFFFF) > _ilwMac)\n            _Error(fTrue);\n        else\n        {\n            // perform the goto\n            _ilwCur = lw1;\n        }\n        break;\n    case kopReturn:\n        // jump to the end\n        _ilwCur = _ilwMac;\n        // fall through\n    case kopSetReturn:\n        _lwReturn = lw1;\n        break;\n    case kopShuffle:\n        if (lw1 <= 0)\n            _Error(fTrue);\n        else\n            vsflUtil.Shuffle(lw1);\n        break;\n    case kopShuffleList:\n        if (lw1 <= 0)\n            _Error(fTrue);\n        else\n        {\n            long *prglw;\n\n            _pgllwStack->Lock();\n            prglw = _QlwGet(lw1);\n            if (pvNil != prglw)\n                vsflUtil.ShuffleRglw(lw1, prglw);\n            _pgllwStack->Unlock();\n        }\n        break;\n    case kopMatch:\n        _Match(lw1);\n        break;\n    case kopCopyStr:\n        _CopySubStr(lw1, 0, kcchMaxStn, _LwPop());\n        break;\n    case kopMoveStr:\n        if (pvNil == _pstrg)\n            _Error(fTrue);\n        else if (_pstrg->FMove(lw1, lw2 = _LwPop()))\n            _Push(lw2);\n        else\n            _Push(stidNil);\n        break;\n    case kopNukeStr:\n        if (pvNil == _pstrg)\n            _Error(fTrue);\n        else\n            _pstrg->Delete(lw1);\n        break;\n    case kopMergeStrs:\n        _MergeStrings(lw1, _LwPop());\n        break;\n    case kopScaleTime:\n        vpusac->Scale(lw1);\n        break;\n    case kopNumToStr:\n        _NumToStr(lw1, _LwPop());\n        break;\n    case kopStrToNum:\n        lw2 = _LwPop();\n        _StrToNum(lw1, lw2, _LwPop());\n        break;\n    case kopConcatStrs:\n        lw2 = _LwPop();\n        _ConcatStrs(lw1, lw2, _LwPop());\n        break;\n    case kopLenStr:\n        _LenStr(lw1);\n        break;\n    case kopCopySubStr:\n        lw2 = _LwPop();\n        lw3 = _LwPop();\n        _CopySubStr(lw1, lw2, lw3, _LwPop());\n        break;\n\n    default:\n        _Error(fTrue);\n        break;\n    }\n\n    return !_fError;\n}\n\n/***************************************************************************\n    Pop a long off the stack.\n***************************************************************************/\nlong SCEB::_LwPop(void)\n{\n    long lw, ilw;\n\n    if (_fError)\n        return 0;\n\n    // this is faster than just doing FPop\n    if ((ilw = _pgllwStack->IvMac()) == 0)\n    {\n        _Error(fTrue);\n        return 0;\n    }\n    lw = *(long *)_pgllwStack->QvGet(--ilw);\n    AssertDo(_pgllwStack->FSetIvMac(ilw), 0);\n    return lw;\n}\n\n/***************************************************************************\n    Get a pointer to the element that is clw elements down from the top.\n***************************************************************************/\nlong *SCEB::_QlwGet(long clw)\n{\n    long ilwMac;\n\n    if (_fError)\n        return pvNil;\n    ilwMac = _pgllwStack->IvMac();\n    if (!FIn(clw, 1, ilwMac + 1))\n    {\n        _Error(fTrue);\n        return pvNil;\n    }\n    return (long *)_pgllwStack->QvGet(ilwMac - clw);\n}\n\n/***************************************************************************\n    Register an error.\n***************************************************************************/\nvoid SCEB::_Error(bool fAssert)\n{\n    AssertThis(0);\n    if (!_fError)\n    {\n        Assert(!fAssert, \"Runtime error in script\");\n        Debug(_WarnSz(PszLit(\"Runtime error\")));\n        _fError = fTrue;\n    }\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Emits a warning with the given format string and optional parameters.\n***************************************************************************/\nvoid SCEB::_WarnSz(PSZ psz, ...)\n{\n    AssertThis(0);\n    AssertSz(psz);\n    STN stn1, stn2;\n    SZS szs;\n\n    stn1.FFormatRgch(psz, CchSz(psz), (ulong *)(&psz + 1));\n    stn2.FFormatSz(PszLit(\"Script ('%f', 0x%x, %d): %s\"), _pscpt->Ctg(), _pscpt->Cno(), _ilwCur, &stn1);\n    stn2.GetSzs(szs);\n    Warn(szs);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Rotate clwTot entries on the stack left by clwShift positions.\n***************************************************************************/\nvoid SCEB::_Rotate(long clwTot, long clwShift)\n{\n    AssertThis(0);\n    long *qlw;\n\n    if (clwTot == 0 || clwTot == 1)\n        return;\n\n    qlw = _QlwGet(clwTot);\n    if (qlw != pvNil)\n    {\n        clwShift %= clwTot;\n        if (clwShift < 0)\n            clwShift += clwTot;\n        AssertIn(clwShift, 0, clwTot);\n        if (clwShift != 0)\n        {\n            SwapBlocks(qlw, LwMul(clwShift, size(long)), LwMul(clwTot - clwShift, size(long)));\n        }\n    }\n}\n\n/***************************************************************************\n    Reverse clw entries on the stack.\n***************************************************************************/\nvoid SCEB::_Reverse(long clw)\n{\n    AssertThis(0);\n    long *qlw, *qlw2;\n    long lw;\n\n    if (clw == 0 || clw == 1)\n        return;\n\n    qlw = _QlwGet(clw);\n    if (qlw != pvNil)\n    {\n        for (qlw2 = qlw + clw - 1; qlw2 > qlw;)\n        {\n            lw = *qlw;\n            *qlw++ = *qlw2;\n            *qlw2-- = lw;\n        }\n    }\n}\n\n/***************************************************************************\n    Duplicate clw entries on the stack.\n***************************************************************************/\nvoid SCEB::_DupList(long clw)\n{\n    AssertThis(0);\n    long *qlw;\n\n    if (clw == 0)\n        return;\n\n    //_QlwGet checks for bad values of clw\n    if (_QlwGet(clw) == pvNil)\n        return;\n\n    if (!_pgllwStack->FSetIvMac(_pgllwStack->IvMac() + clw))\n        _Error(fFalse);\n    else\n    {\n        qlw = _QlwGet(clw * 2);\n        Assert(qlw != pvNil, \"why did _QlwGet fail?\");\n        CopyPb(qlw, qlw + clw, LwMul(clw, size(long)));\n    }\n}\n\n/***************************************************************************\n    Removes clw entries from the stack.\n***************************************************************************/\nvoid SCEB::_PopList(long clw)\n{\n    AssertThis(0);\n    long ilwMac;\n\n    if (clw == 0 || _fError)\n        return;\n\n    ilwMac = _pgllwStack->IvMac();\n    if (!FIn(clw, 1, ilwMac + 1))\n        _Error(fTrue);\n    else\n        AssertDo(_pgllwStack->FSetIvMac(ilwMac - clw), \"why fail?\");\n}\n\n/***************************************************************************\n    Select the ilw'th entry from the top clw entries.  ilw is indexed from\n    the top entry in and is zero based.\n***************************************************************************/\nvoid SCEB::_Select(long clw, long ilw)\n{\n    AssertThis(0);\n    long *qlw;\n\n    if (pvNil == (qlw = _QlwGet(clw)))\n        return;\n\n    if (!FIn(ilw, 0, clw))\n        _Error(fTrue);\n    else if (clw > 1)\n    {\n        qlw[0] = qlw[clw - 1 - ilw];\n        _PopList(clw - 1);\n    }\n}\n\n/***************************************************************************\n    The top value is the key, the next is the default return, then come\n    clw pairs of test values and return values.  If the key matches a\n    test value, push the correspongind return value.  Otherwise, push\n    the default return value.\n***************************************************************************/\nvoid SCEB::_Match(long clw)\n{\n    AssertThis(0);\n    long *qrglw;\n    long lwKey, lwPush, ilwTest;\n\n    lwKey = _LwPop();\n    lwPush = _LwPop();\n    if (pvNil == (qrglw = _QlwGet(2 * clw)))\n        return;\n\n    // start at high memory (top of the stack).\n    for (ilwTest = 2 * clw - 1; ilwTest > 0; ilwTest -= 2)\n    {\n        if (qrglw[ilwTest] == lwKey)\n        {\n            lwPush = qrglw[ilwTest - 1];\n            break;\n        }\n    }\n    qrglw[0] = lwPush;\n    _PopList(2 * clw - 1);\n}\n\n/***************************************************************************\n    Generates a random entry from a list of numbers on the stack.\n***************************************************************************/\nvoid SCEB::_RndList(long clw)\n{\n    AssertThis(0);\n\n    if (clw <= 0)\n        _Error(fTrue);\n    else\n        _Select(clw, vrndUtil.LwNext(clw));\n}\n\n/***************************************************************************\n    Copy the string from stidSrc to stidDst.\n***************************************************************************/\nvoid SCEB::_CopySubStr(long stidSrc, long ichMin, long cch, long stidDst)\n{\n    AssertThis(0);\n    STN stn;\n\n    if (pvNil == _pstrg)\n        _Error(fTrue);\n\n    if (_fError)\n        return;\n\n    if (!_pstrg->FGet(stidSrc, &stn))\n        Debug(_WarnSz(PszLit(\"Source string doesn't exist (stid = %d)\"), stidSrc));\n\n    if (ichMin > 0)\n        stn.Delete(0, ichMin);\n    if (cch < stn.Cch())\n        stn.Delete(cch);\n    if (!_pstrg->FPut(stidDst, &stn))\n    {\n        Debug(_WarnSz(PszLit(\"Setting dst string failed\")));\n        _Push(stidNil);\n    }\n    else\n        _Push(stidDst);\n}\n\n/***************************************************************************\n    Concatenate two strings and put the result in a third. Push the id\n    of the destination.\n***************************************************************************/\nvoid SCEB::_ConcatStrs(long stidSrc1, long stidSrc2, long stidDst)\n{\n    AssertThis(0);\n    STN stn1, stn2;\n\n    if (pvNil == _pstrg)\n        _Error(fTrue);\n\n    if (_fError)\n        return;\n\n    if (!_pstrg->FGet(stidSrc1, &stn1))\n    {\n        Debug(_WarnSz(PszLit(\"Source string 1 doesn't exist (stid = %d)\"), stidSrc1));\n    }\n\n    if (!_pstrg->FGet(stidSrc2, &stn2))\n    {\n        Debug(_WarnSz(PszLit(\"Source string 2 doesn't exist (stid = %d)\"), stidSrc2));\n    }\n\n    stn1.FAppendStn(&stn2);\n    if (!_pstrg->FPut(stidDst, &stn1))\n    {\n        Debug(_WarnSz(PszLit(\"Setting dst string failed\")));\n        _Push(stidNil);\n    }\n    else\n        _Push(stidDst);\n}\n\n/***************************************************************************\n    Push the length of the given string.\n***************************************************************************/\nvoid SCEB::_LenStr(long stid)\n{\n    AssertThis(0);\n    STN stn;\n\n    if (pvNil == _pstrg)\n        _Error(fTrue);\n\n    if (!_pstrg->FGet(stid, &stn))\n    {\n        Debug(_WarnSz(PszLit(\"Source string doesn't exist (stid = %d)\"), stid));\n    }\n\n    _Push(stn.Cch());\n}\n\n/***************************************************************************\n    CRF reader function to read a string registry string table.\n***************************************************************************/\nbool _FReadStringReg(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, fblckReadable);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n    PGST pgst;\n    PCABO pcabo;\n    short bo;\n\n    *pcb = pblck->Cb(fTrue);\n    if (pvNil == ppbaco)\n        return fTrue;\n\n    if (!pblck->FUnpackData())\n        return fFalse;\n    *pcb = pblck->Cb();\n\n    if (pvNil == (pgst = GST::PgstRead(pblck, &bo)) || pgst->CbExtra() != size(long))\n    {\n        goto LFail;\n    }\n\n    if (kboOther == bo)\n    {\n        long istn, stid;\n\n        for (istn = pgst->IvMac(); istn-- > 0;)\n        {\n            pgst->GetExtra(istn, &stid);\n            SwapBytesRglw(&stid, 1);\n            pgst->PutExtra(istn, &stid);\n        }\n    }\n\n    if (pvNil == (pcabo = NewObj CABO(pgst)))\n    {\n    LFail:\n        ReleasePpo(&pgst);\n        TrashVar(pcb);\n        TrashVar(ppbaco);\n        return fFalse;\n    }\n\n    *ppbaco = pcabo;\n    return fTrue;\n}\n\n/***************************************************************************\n    Merge a string table into the string registry.\n***************************************************************************/\nvoid SCEB::_MergeStrings(CNO cno, RSC rsc)\n{\n    AssertThis(0);\n    PCABO pcabo;\n    PGST pgst;\n    long istn, stid;\n    STN stn;\n    bool fFail;\n\n    if (_fError)\n        return;\n\n    if (pvNil == _pstrg)\n    {\n        Bug(\"no string registry to put the string in\");\n        _Error(fFalse);\n        return;\n    }\n\n    if (pvNil == _prca)\n    {\n        Bug(\"no rca to read string table from\");\n        _Error(fFalse);\n        return;\n    }\n\n    if (pvNil == (pcabo = (PCABO)_prca->PbacoFetch(kctgStringReg, cno, &_FReadStringReg, pvNil, rsc)))\n    {\n        Debug(_WarnSz(PszLit(\"Reading string table failed (cno = 0x%x)\"), cno));\n        return;\n    }\n\n    Assert(pcabo->po->FIs(kclsGST), 0);\n    pgst = (PGST)pcabo->po;\n    Assert(pgst->CbExtra() == size(long), 0);\n\n    fFail = fFalse;\n    for (istn = pgst->IvMac(); istn-- > 0;)\n    {\n        pgst->GetStn(istn, &stn);\n        pgst->GetExtra(istn, &stid);\n        fFail |= !_pstrg->FPut(stid, &stn);\n    }\n\n#ifdef DEBUG\n    if (fFail)\n        _WarnSz(PszLit(\"Merging string table failed\"));\n#endif // DEBUG\n\n    pcabo->SetCrep(crepTossFirst);\n    ReleasePpo(&pcabo);\n}\n\n/***************************************************************************\n    Convert a number to a string and add the string to the registry.\n***************************************************************************/\nvoid SCEB::_NumToStr(long lw, long stid)\n{\n    AssertThis(0);\n    STN stn;\n\n    if (pvNil == _pstrg)\n        _Error(fTrue);\n\n    if (_fError)\n        return;\n\n    stn.FFormatSz(PszLit(\"%d\"), lw);\n    if (!_pstrg->FPut(stid, &stn))\n    {\n        Debug(_WarnSz(PszLit(\"Putting string in registry failed\")));\n        stid = stidNil;\n    }\n    _Push(stid);\n}\n\n/***************************************************************************\n    Convert a string to a number and push the result. If the string is\n    empty, push lwEmpty; if there is an error, push lwError.\n***************************************************************************/\nvoid SCEB::_StrToNum(long stid, long lwEmpty, long lwError)\n{\n    AssertThis(0);\n    STN stn;\n    long lw;\n\n    if (pvNil == _pstrg)\n        _Error(fTrue);\n\n    if (_fError)\n        return;\n\n    _pstrg->FGet(stid, &stn);\n    if (0 == stn.Cch())\n        lw = lwEmpty;\n    else if (!stn.FGetLw(&lw, 0))\n        lw = lwError;\n    _Push(lw);\n}\n\n/***************************************************************************\n    Push the value of a variable onto the runtime stack.\n***************************************************************************/\nvoid SCEB::_PushVar(PGL pglrtvm, RTVN *prtvn)\n{\n    AssertThis(0);\n    AssertVarMem(prtvn);\n    AssertNilOrPo(pglrtvm, 0);\n    long lw;\n\n    if (_fError)\n        return;\n\n    if (pvNil == pglrtvm || !FFindRtvm(pglrtvm, prtvn, &lw, pvNil))\n    {\n#ifdef DEBUG\n        prtvn->GetStn(&_stn);\n        _WarnSz(PszLit(\"Pushing uninitialized script variable: %s\"), &_stn);\n#endif // DEBUG\n        _Push(0);\n    }\n    else\n        _Push(lw);\n}\n\n/***************************************************************************\n    Pop the top value off the runtime stack into a variable.\n***************************************************************************/\nvoid SCEB::_AssignVar(PGL *ppglrtvm, RTVN *prtvn, long lw)\n{\n    AssertThis(0);\n    AssertVarMem(prtvn);\n    AssertNilOrVarMem(ppglrtvm);\n\n    if (_fError)\n        return;\n\n    if (pvNil == ppglrtvm)\n    {\n        _Error(fTrue);\n        return;\n    }\n\n    if (!FAssignRtvm(ppglrtvm, prtvn, lw))\n        _Error(fFalse);\n}\n\n/***************************************************************************\n    Get the variable map for \"this\" object.\n***************************************************************************/\nPGL SCEB::_PglrtvmThis(void)\n{\n    PGL *ppgl = _PpglrtvmThis();\n    if (pvNil == ppgl)\n        return pvNil;\n    return *ppgl;\n}\n\n/***************************************************************************\n    Get the adress of the variable map master pointer for \"this\" object\n    (so we can create the variable map if need be).\n***************************************************************************/\nPGL *SCEB::_PpglrtvmThis(void)\n{\n    return pvNil;\n}\n\n/***************************************************************************\n    Get the variable map for \"global\" variables.\n***************************************************************************/\nPGL SCEB::_PglrtvmGlobal(void)\n{\n    PGL *ppgl = _PpglrtvmGlobal();\n    if (pvNil == ppgl)\n        return pvNil;\n    return *ppgl;\n}\n\n/***************************************************************************\n    Get the adress of the variable map master pointer for \"global\" variables\n    (so we can create the variable map if need be).\n***************************************************************************/\nPGL *SCEB::_PpglrtvmGlobal(void)\n{\n    return pvNil;\n}\n\n/***************************************************************************\n    Get the variable map for a remote object.\n***************************************************************************/\nPGL SCEB::_PglrtvmRemote(long lw)\n{\n    PGL *ppgl = _PpglrtvmRemote(lw);\n    if (pvNil == ppgl)\n        return pvNil;\n    return *ppgl;\n}\n\n/***************************************************************************\n    Get the adress of the variable map master pointer for a remote object\n    (so we can create the variable map if need be).\n***************************************************************************/\nPGL *SCEB::_PpglrtvmRemote(long lw)\n{\n    return pvNil;\n}\n\n/***************************************************************************\n    Find a RTVM in the pglrtvm.  Assumes the pglrtvm is sorted by rtvn.\n    If the RTVN is not in the GL, sets *pirtvm to where it would be if\n    it were.\n***************************************************************************/\nbool FFindRtvm(PGL pglrtvm, RTVN *prtvn, long *plw, long *pirtvm)\n{\n    AssertPo(pglrtvm, 0);\n    AssertVarMem(prtvn);\n    AssertNilOrVarMem(plw);\n    AssertNilOrVarMem(pirtvm);\n    RTVM *qrgrtvm, *qrtvm;\n    long irtvm, irtvmMin, irtvmLim;\n\n    qrgrtvm = (RTVM *)pglrtvm->QvGet(0);\n    for (irtvmMin = 0, irtvmLim = pglrtvm->IvMac(); irtvmMin < irtvmLim;)\n    {\n        irtvm = (irtvmMin + irtvmLim) / 2;\n        qrtvm = qrgrtvm + irtvm;\n        if (qrtvm->rtvn.lu1 < prtvn->lu1)\n            irtvmMin = irtvm + 1;\n        else if (qrtvm->rtvn.lu1 > prtvn->lu1)\n            irtvmLim = irtvm;\n        else if (qrtvm->rtvn.lu2 < prtvn->lu2)\n            irtvmMin = irtvm + 1;\n        else if (qrtvm->rtvn.lu2 > prtvn->lu2)\n            irtvmLim = irtvm;\n        else\n        {\n            // we found it\n            if (pvNil != plw)\n                *plw = qrtvm->lwValue;\n            if (pvNil != pirtvm)\n                *pirtvm = irtvm;\n            return fTrue;\n        }\n    }\n    TrashVar(plw);\n    if (pvNil != pirtvm)\n        *pirtvm = irtvmMin;\n    return fFalse;\n}\n\n/***************************************************************************\n    Put the given value into a runtime variable.\n***************************************************************************/\nbool FAssignRtvm(PGL *ppglrtvm, RTVN *prtvn, long lw)\n{\n    AssertVarMem(ppglrtvm);\n    AssertNilOrPo(*ppglrtvm, 0);\n    AssertVarMem(prtvn);\n    RTVM rtvm;\n    long irtvm;\n\n    rtvm.lwValue = lw;\n    rtvm.rtvn = *prtvn;\n    if (pvNil == *ppglrtvm)\n    {\n        if (pvNil == (*ppglrtvm = GL::PglNew(size(RTVM))))\n            return fFalse;\n        (*ppglrtvm)->SetMinGrow(10);\n        irtvm = 0;\n    }\n    else if (FFindRtvm(*ppglrtvm, prtvn, pvNil, &irtvm))\n    {\n        (*ppglrtvm)->Put(irtvm, &rtvm);\n        return fTrue;\n    }\n\n    return (*ppglrtvm)->FInsert(irtvm, &rtvm);\n}\n\n/***************************************************************************\n    A chunky resource reader to read a script.\n***************************************************************************/\nbool SCPT::FReadScript(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, fblckReadable);\n    AssertNilOrVarMem(ppbaco);\n\n    *pcb = pblck->Cb(fTrue);\n    if (pvNil == ppbaco)\n        return fTrue;\n\n    *ppbaco = PscptRead(pcrf->Pcfl(), ctg, cno);\n    return pvNil != *ppbaco;\n}\n\n/***************************************************************************\n    Static method to read a script.\n***************************************************************************/\nPSCPT SCPT::PscptRead(PCFL pcfl, CTG ctg, CNO cno)\n{\n    AssertPo(pcfl, 0);\n    short bo;\n    KID kid;\n    BLCK blck;\n    PSCPT pscpt = pvNil;\n    PGL pgllw = pvNil;\n    PGST pgst = pvNil;\n\n    if (!pcfl->FFind(ctg, cno, &blck))\n        goto LFail;\n\n    if (pvNil == (pgllw = GL::PglRead(&blck, &bo)) || pgllw->CbEntry() != size(long))\n    {\n        goto LFail;\n    }\n    if (pcfl->FGetKidChidCtg(ctg, cno, 0, kctgScriptStrs, &kid))\n    {\n        if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck) || pvNil == (pgst = GST::PgstRead(&blck)))\n        {\n            goto LFail;\n        }\n    }\n    if (pvNil == (pscpt = NewObj SCPT))\n    {\n    LFail:\n        ReleasePpo(&pgllw);\n        ReleasePpo(&pgst);\n        return pvNil;\n    }\n\n    if (kboOther == bo)\n        SwapBytesRglw(pgllw->QvGet(0), pgllw->IvMac());\n    pscpt->_pgllw = pgllw;\n    pscpt->_pgstLiterals = pgst;\n    return pscpt;\n}\n\n/***************************************************************************\n    Destructor for a script.\n***************************************************************************/\nSCPT::~SCPT(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pgllw);\n    ReleasePpo(&_pgstLiterals);\n}\n\n/***************************************************************************\n    Save the script to the given chunky file.\n***************************************************************************/\nbool SCPT::FSaveToChunk(PCFL pcfl, CTG ctg, CNO cno, bool fPack)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n    BLCK blck;\n    CNO cnoT, cnoStrs;\n    long cb;\n\n    // write the script chunk\n    cb = _pgllw->CbOnFile();\n    if (!blck.FSetTemp(cb) || !_pgllw->FWrite(&blck))\n        return fFalse;\n    if (fPack)\n        blck.FPackData();\n\n    if (!pcfl->FFind(ctg, cno))\n    {\n        // chunk doesn't exist, just write it\n        if (!pcfl->FPutBlck(&blck, ctg, cnoT = cno))\n            return fFalse;\n    }\n    else\n    {\n        // chunk already exists - add a new temporary one\n        if (!pcfl->FAddBlck(&blck, ctg, &cnoT))\n            return fFalse;\n    }\n\n    // write the string table if there is one.  The cno for this is allocated\n    // via FAdd.\n    if (pvNil != _pgstLiterals)\n    {\n        cb = _pgstLiterals->CbOnFile();\n        if (!blck.FSetTemp(cb) || !_pgstLiterals->FWrite(&blck))\n            goto LFail;\n        if (fPack)\n            blck.FPackData();\n\n        if (!pcfl->FAddBlck(&blck, kctgScriptStrs, &cnoStrs))\n            goto LFail;\n        if (!pcfl->FAdoptChild(ctg, cnoT, kctgScriptStrs, cnoStrs))\n        {\n            pcfl->Delete(kctgScriptStrs, cnoStrs);\n        LFail:\n            pcfl->Delete(ctg, cnoT);\n            return fFalse;\n        }\n    }\n\n    // swap the data and children of the temporary chunk and the destination\n    if (cno != cnoT)\n    {\n        pcfl->SwapData(ctg, cno, ctg, cnoT);\n        pcfl->SwapChildren(ctg, cno, ctg, cnoT);\n        pcfl->Delete(ctg, cnoT);\n    }\n\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a SCPT.\n***************************************************************************/\nvoid SCPT::AssertValid(ulong grf)\n{\n    SCPT_PAR::AssertValid(0);\n    AssertPo(_pgllw, 0);\n    AssertNilOrPo(_pgstLiterals, 0);\n}\n\n/***************************************************************************\n    Mark memory for the SCPT.\n***************************************************************************/\nvoid SCPT::MarkMem(void)\n{\n    AssertValid(0);\n    SCPT_PAR::MarkMem();\n    MarkMemObj(_pgllw);\n    MarkMemObj(_pgstLiterals);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for the runtime string registry.\n***************************************************************************/\nSTRG::STRG(void)\n{\n    _pgst = pvNil;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Constructor for the runtime string registry.\n***************************************************************************/\nSTRG::~STRG(void)\n{\n    AssertThis(0);\n    ReleasePpo(&_pgst);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a STRG.\n***************************************************************************/\nvoid STRG::AssertValid(ulong grf)\n{\n    STRG_PAR::AssertValid(0);\n    AssertNilOrPo(_pgst, 0);\n}\n\n/***************************************************************************\n    Mark memory for the STRG.\n***************************************************************************/\nvoid STRG::MarkMem(void)\n{\n    AssertValid(0);\n    STRG_PAR::MarkMem();\n    MarkMemObj(_pgst);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Put the string in the registry with the given string id.\n***************************************************************************/\nbool STRG::FPut(long stid, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    long istn;\n\n    if (!_FEnsureGst())\n        return fFalse;\n\n    if (_FFind(stid, &istn))\n        return _pgst->FPutStn(istn, pstn);\n\n    return _pgst->FInsertStn(istn, pstn, &stid);\n}\n\n/***************************************************************************\n    Get the string with the given string id.  If the string isn't in the\n    registry, sets pstn to an empty string and returns false.\n***************************************************************************/\nbool STRG::FGet(long stid, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    long istn;\n\n    if (!_FFind(stid, &istn))\n    {\n        pstn->SetNil();\n        return fFalse;\n    }\n\n    _pgst->GetStn(istn, pstn);\n    return fTrue;\n}\n\n/***************************************************************************\n    Add a string to the registry, assigning it an unused id.  The assigned\n    id's are not repeated in the near future.  All assigned id's have their\n    high bit set.\n***************************************************************************/\nbool STRG::FAdd(long *pstid, PSTN pstn)\n{\n    AssertThis(0);\n    AssertVarMem(pstid);\n    AssertPo(pstn, 0);\n    long istn;\n\n    for (;;)\n    {\n        _stidLast = (_stidLast + 1) | 0x80000000L;\n        if (!_FFind(_stidLast, &istn))\n            break;\n    }\n\n    *pstid = _stidLast;\n    return FPut(_stidLast, pstn);\n}\n\n/***************************************************************************\n    Delete a string from the registry.\n***************************************************************************/\nvoid STRG::Delete(long stid)\n{\n    AssertThis(0);\n    long istn;\n\n    if (_FFind(stid, &istn))\n        _pgst->Delete(istn);\n}\n\n/***************************************************************************\n    Change the id of a string from stidSrc to stidDst.  If stidDst already\n    exists, it is replaced.  Returns false if the source string doesn't\n    exist.  Can't fail if the source does exist.\n***************************************************************************/\nbool STRG::FMove(long stidSrc, long stidDst)\n{\n    AssertThis(0);\n    long istnSrc, istnDst;\n\n    if (stidSrc == stidDst)\n        return _FFind(stidSrc, &istnSrc);\n\n    if (!_FFind(stidDst, &istnSrc))\n        return fFalse;\n\n    if (_FFind(stidDst, &istnDst))\n    {\n        _pgst->Delete(istnDst);\n        if (istnSrc > istnDst)\n            istnSrc--;\n    }\n\n    _pgst->PutExtra(istnSrc, &stidDst);\n    _pgst->Move(istnSrc, istnDst);\n    return fTrue;\n}\n\n/***************************************************************************\n    Do a binary search for the string id.  Returns true iff the string is\n    in the registry.  In either case, sets *pistn with where the string\n    should go.\n***************************************************************************/\nbool STRG::_FFind(long stid, long *pistn)\n{\n    AssertThis(0);\n    AssertVarMem(pistn);\n    long ivMin, ivLim, iv;\n    long stidT;\n\n    if (pvNil == _pgst)\n    {\n        *pistn = 0;\n        return fFalse;\n    }\n\n    for (ivMin = 0, ivLim = _pgst->IvMac(); ivMin < ivLim;)\n    {\n        iv = (ivMin + ivLim) / 2;\n        _pgst->GetExtra(iv, &stidT);\n        if (stidT < stid)\n            ivMin = iv + 1;\n        else if (stidT > stid)\n            ivLim = iv;\n        else\n        {\n            *pistn = iv;\n            return fTrue;\n        }\n    }\n\n    *pistn = ivMin;\n    return fFalse;\n}\n\n/***************************************************************************\n    Make sure the GST exists.\n***************************************************************************/\nbool STRG::_FEnsureGst(void)\n{\n    AssertThis(0);\n\n    if (pvNil != _pgst)\n        return fTrue;\n    _pgst = GST::PgstNew(size(long));\n    AssertThis(0);\n\n    return pvNil != _pgst;\n}\n"
  },
  {
    "path": "kauai/src/screxe.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Script interpreter.  See scrcom.h and scrcom.cpp for the script\n    compiler and an explanation of what a compiled script consists of.\n\n***************************************************************************/\n#ifndef SCREXE_H\n#define SCREXE_H\n\n/****************************************\n    Run-Time Variable Map structure\n****************************************/\nstruct RTVM\n{\n    RTVN rtvn;\n    long lwValue;\n};\n\nbool FFindRtvm(PGL pglrtvm, RTVN *prtvn, long *plwValue, long *pirtvm);\nbool FAssignRtvm(PGL *ppglrtvm, RTVN *prtvn, long lw);\n\n/***************************************************************************\n    A script.  This is here rather than in scrcom.* because scrcom is\n    rarely included in shipping products, but screxe.* is.\n***************************************************************************/\ntypedef class SCPT *PSCPT;\n#define SCPT_PAR BACO\n#define kclsSCPT 'SCPT'\nclass SCPT : public SCPT_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    PGL _pgllw;\n    PGST _pgstLiterals;\n\n    SCPT(void)\n    {\n    }\n\n    friend class SCEB;\n    friend class SCCB;\n\n  public:\n    static bool FReadScript(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n    static PSCPT PscptRead(PCFL pcfl, CTG ctg, CNO cno);\n    ~SCPT(void);\n\n    bool FSaveToChunk(PCFL pcfl, CTG ctg, CNO cno, bool fPack = fFalse);\n};\n\n/***************************************************************************\n    Runtime string registry.\n***************************************************************************/\ntypedef class STRG *PSTRG;\n#define STRG_PAR BASE\n#define kclsSTRG 'STRG'\nclass STRG : public STRG_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    NOCOPY(STRG)\n\n  protected:\n    long _stidLast;\n    PGST _pgst;\n\n    bool _FFind(long stid, long *pistn);\n    bool _FEnsureGst(void);\n\n  public:\n    STRG(void);\n    ~STRG(void);\n\n    bool FPut(long stid, PSTN pstn);\n    bool FGet(long stid, PSTN pstn);\n    bool FAdd(long *pstid, PSTN pstn);\n    bool FMove(long stidSrc, long stidDst);\n    void Delete(long stid);\n};\n\n/***************************************************************************\n    The script interpreter.\n***************************************************************************/\nenum\n{\n    fscebNil = 0,\n    fscebRunnable = 1,\n};\n\ntypedef class SCEB *PSCEB;\n#define SCEB_PAR BASE\n#define kclsSCEB 'SCEB'\nclass SCEB : public SCEB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PRCA _prca; // the chunky resource file list (may be nil)\n    PSTRG _pstrg;\n    PGL _pgllwStack;   // the execution stack\n    PGL _pglrtvm;      // the local variables\n    PSCPT _pscpt;      // the script\n    long _ilwMac;      // the length of the script\n    long _ilwCur;      // the current location in the script\n    bool _fError : 1;  // an error has occured\n    bool _fPaused : 1; // if we're paused\n    long _lwReturn;    // the return value from the script\n\n    void _Push(long lw)\n    {\n        if (!_fError && !_pgllwStack->FPush(&lw))\n            _Error(fFalse);\n    }\n    long _LwPop(void);\n    long *_QlwGet(long clw);\n    void _Error(bool fAssert);\n\n    void _Rotate(long clwTot, long clwShift);\n    void _Reverse(long clw);\n    void _DupList(long clw);\n    void _PopList(long clw);\n    void _Select(long clw, long ilw);\n    void _RndList(long clw);\n    void _Match(long clw);\n    void _CopySubStr(long stidSrc, long ichMin, long cch, long stidDst);\n    void _MergeStrings(CNO cno, RSC rsc);\n    void _NumToStr(long lw, long stid);\n    void _StrToNum(long stid, long lwEmpty, long lwError);\n    void _ConcatStrs(long stidSrc1, long stidSrc2, long stidDst);\n    void _LenStr(long stid);\n\n    virtual void _AddParameters(long *prglw, long clw);\n    virtual void _AddStrings(PGST pgst);\n    virtual bool _FExecVarOp(long op, RTVN *prtvn);\n    virtual bool _FExecOp(long op);\n    virtual void _PushVar(PGL pglrtvm, RTVN *prtvn);\n    virtual void _AssignVar(PGL *ppglrtvm, RTVN *prtvn, long lw);\n    virtual PGL _PglrtvmThis(void);\n    virtual PGL *_PpglrtvmThis(void);\n    virtual PGL _PglrtvmGlobal(void);\n    virtual PGL *_PpglrtvmGlobal(void);\n    virtual PGL _PglrtvmRemote(long lw);\n    virtual PGL *_PpglrtvmRemote(long lw);\n\n    virtual short _SwCur(void);\n    virtual short _SwMin(void);\n\n#ifdef DEBUG\n    void _WarnSz(PSZ psz, ...);\n#endif // DEBUG\n\n  public:\n    SCEB(PRCA prca = pvNil, PSTRG pstrg = pvNil);\n    ~SCEB(void);\n\n    virtual bool FRunScript(PSCPT pscpt, long *prglw = pvNil, long clw = 0, long *plwReturn = pvNil,\n                            bool *pfPaused = pvNil);\n    virtual bool FResume(long *plwReturn = pvNil, bool *pfPaused = pvNil);\n    virtual bool FAttachScript(PSCPT pscpt, long *prglw = pvNil, long clw = 0);\n    virtual void Free(void);\n};\n\n#endif //! SCREXE_H\n"
  },
  {
    "path": "kauai/src/screxeg.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Script interpreter for GOB based scripts.\n\n***************************************************************************/\n#include \"kidframe.h\"\nASSERTNAME\n\nRTCLASS(SCEG)\n\n#ifdef DEBUG\n// these strings are for debug only error messages\nstatic STN _stn;\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for a GOB based script interpreter. We don't just keep\n    the pgob in case the GOB goes away while the script is running.\n***************************************************************************/\nSCEG::SCEG(PWOKS pwoks, PRCA prca, PGOB pgob) : SCEG_PAR(prca, pwoks->Pstrg())\n{\n    AssertPo(pwoks, 0);\n    AssertPo(prca, 0);\n    AssertPo(pgob, 0);\n\n    _pwoks = pwoks;\n    _hid = pgob->Hid();\n    _grid = pgob->Grid();\n    _pgob = pvNil;\n\n    AssertThis(0);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a SCEG.\n***************************************************************************/\nvoid SCEG::AssertValid(ulong grf)\n{\n    SCEG_PAR::AssertValid(0);\n    Assert(hidNil != _hid, 0);\n    AssertPo(_pwoks, 0);\n    Assert(_prca != pvNil, 0);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    The script is being resumed, so set _pgob to nil (don't know whether\n    it exists).\n***************************************************************************/\nbool SCEG::FResume(long *plwReturn, bool *pfPaused)\n{\n    GobMayDie();\n    return SCEG_PAR::FResume(plwReturn, pfPaused);\n}\n\n/***************************************************************************\n    Return the gob that corresponds to this script interpreter.\n***************************************************************************/\nPGOB SCEG::_PgobThis(void)\n{\n    AssertThis(0);\n\n    if (pvNil != _pgob)\n    {\n        AssertPo(_pgob, 0);\n        Assert(_pgob->Grid() == _grid, \"bad value of _pgob\");\n        return _pgob;\n    }\n\n    _pgob = _pwoks->PgobFromGrid(_grid);\n    return _pgob;\n}\n\n/***************************************************************************\n    Return the gob that is accessible to this script interpreter and has\n    the given hid.\n***************************************************************************/\nPGOB SCEG::_PgobFromHid(long hid)\n{\n    AssertThis(0);\n\n    if (hid == _hid)\n        return _PgobThis();\n\n    return _pwoks->PgobFromHid(hid);\n}\n\n/***************************************************************************\n    Return the address of the variable table for the GOB associated with\n    this script interpreter.\n***************************************************************************/\nPGL *SCEG::_PpglrtvmThis(void)\n{\n    PGOB pgob = _PgobThis();\n\n    if (pvNil == pgob)\n        return pvNil;\n    return pgob->Ppglrtvm();\n}\n\n/***************************************************************************\n    Return the address of the variable table for the WOKS associated with\n    this script interpreter.\n***************************************************************************/\nPGL *SCEG::_PpglrtvmGlobal(void)\n{\n    AssertThis(0);\n\n    return _pwoks->Ppglrtvm();\n}\n\n/***************************************************************************\n    Return the address of the variable table for the GOB with given hid.\n***************************************************************************/\nPGL *SCEG::_PpglrtvmRemote(long lw)\n{\n    PGOB pgob = _PgobFromHid(lw);\n\n    if (pvNil == pgob)\n        return pvNil;\n    return pgob->Ppglrtvm();\n}\n\n/***************************************************************************\n    Return the current version number of the script compiler.\n***************************************************************************/\nshort SCEG::_SwCur(void)\n{\n    return kswCurSccg;\n}\n\n/***************************************************************************\n    Return the min version number of the script compiler. Read can read\n    scripts back to this version.\n***************************************************************************/\nshort SCEG::_SwMin(void)\n{\n    return kswMinSccg;\n}\n\n/***************************************************************************\n    Execute a script command.\n***************************************************************************/\nbool SCEG::_FExecOp(long op)\n{\n    CMD cmd;\n    PGOB pgob;\n    PCLOK pclok;\n    long hid;\n    long dtim;\n    long dxp, dyp;\n    long lw1, lw2, lw3, lw4, clw;\n    long *qrglw;\n    void *pv;\n\n    hid = _hid; // for \"this\" operations\n    switch (op)\n    {\n    case kopDestroyGob:\n        hid = _LwPop();\n        // fall through\n    case kopDestroyThis:\n        if (!_fError && pvNil != (pgob = _PgobFromHid(hid)))\n        {\n            GobMayDie();\n            if (pgob == _pwoks)\n            {\n                Debug(_WarnSz(PszLit(\"Can't Destroy WOKS - destroying all its children\")));\n                PGOB pgobT;\n\n                while (pvNil != (pgobT = pgob->PgobFirstChild()))\n                    ReleasePpo(&pgobT);\n            }\n            else\n                ReleasePpo(&pgob);\n        }\n        break;\n\n    case kopCreateChildGob:\n        hid = _LwPop();\n        // fall through\n    case kopCreateChildThis:\n        lw1 = _LwPop();\n        lw2 = _LwPop();\n        pgob = pvNil;\n        if (!_fError && pvNil != (pgob = _PgobFromHid(hid)))\n        {\n            GobMayDie();\n            pgob = _pwoks->PgokNew(pgob, lw1, lw2, _prca);\n        }\n        else\n        {\n            Debug(_WarnSz(PszLit(\"Missing parent GOB for CreateChild(Gob|This) (gid = %d)\"), hid));\n        }\n        _Push(pvNil == pgob ? hidNil : pgob->Hid());\n        break;\n\n    case kopCreateHelpGob:\n        hid = _LwPop();\n        // fall through\n    case kopCreateHelpThis:\n        lw1 = _LwPop();\n        pgob = pvNil;\n        if (!_fError && pvNil != (pgob = _PgobFromHid(hid)))\n        {\n            GobMayDie();\n            pgob = _pwoks->PhbalNew(pgob, _prca, lw1);\n        }\n        else\n        {\n            Debug(_WarnSz(PszLit(\"Missing parent GOB for CreateHelp(Gob|This) (gid = %d)\"), hid));\n        }\n        _Push(pvNil == pgob ? hidNil : pgob->Hid());\n        break;\n\n    case kopResizeGob:\n        hid = _LwPop();\n        // fall through\n    case kopResizeThis:\n        dxp = _LwPop();\n        dyp = _LwPop();\n        // REVIEW shonk: should we handle hwnd based gob's?\n        if (!_fError && pvNil != (pgob = _PgobFromHid(hid)) && hNil == pgob->Hwnd())\n        {\n            RC rc;\n\n            pgob->GetRc(&rc, cooParent);\n            rc.xpRight = rc.xpLeft + LwMax(0, dxp);\n            rc.ypBottom = rc.ypTop + LwMax(0, dyp);\n            pgob->SetPos(&rc, pvNil);\n        }\n        else\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for Resize(Gob|This) (gid = %d)\"), hid));\n        }\n        break;\n\n    case kopMoveRelGob:\n        hid = _LwPop();\n        // fall through\n    case kopMoveRelThis:\n        dxp = _LwPop();\n        dyp = _LwPop();\n        // REVIEW shonk: should we handle hwnd based gob's?\n        if (!_fError && pvNil != (pgob = _PgobFromHid(hid)) && hNil == pgob->Hwnd())\n        {\n            RC rc;\n\n            pgob->GetRc(&rc, cooParent);\n            rc.Offset(dxp, dyp);\n            pgob->SetPos(&rc, pvNil);\n        }\n        else\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for MoveRel(Gob|This) (gid = %d)\"), hid));\n        }\n        break;\n\n    case kopMoveAbsGob:\n        hid = _LwPop();\n        // fall through\n    case kopMoveAbsThis:\n        dxp = _LwPop();\n        dyp = _LwPop();\n        // REVIEW shonk: should we handle hwnd based gob's?\n        if (!_fError && pvNil != (pgob = _PgobFromHid(hid)) && hNil == pgob->Hwnd())\n        {\n            RC rc;\n\n            pgob->GetRc(&rc, cooParent);\n            if (pgob->FIs(kclsGOK))\n            {\n                PT pt;\n                ((PGOK)pgob)->GetPtReg(&pt, cooLocal);\n                dxp -= pt.xp;\n                dyp -= pt.yp;\n            }\n            rc.Offset(dxp - rc.xpLeft, dyp - rc.ypTop);\n            pgob->SetPos(&rc, pvNil);\n        }\n        else\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for MoveAbs(Gob|This) (gid = %d)\"), hid));\n        }\n        break;\n\n    case kopRunScriptGob:\n    case kopRunScriptThis:\n    case kopRunScriptCnoGob:\n    case kopRunScriptCnoThis:\n        clw = _LwPop(); // the number of parameters\n        if (kopRunScriptGob == op || kopRunScriptCnoGob == op)\n            hid = _LwPop();\n        lw1 = _LwPop(); // the chid of the script\n        if (_fError)\n            break;\n\n        if (clw > 0)\n        {\n            if (pvNil == _QlwGet(clw))\n                break;\n            if (!FAllocPv(&pv, LwMul(size(long), clw), fmemNil, mprNormal))\n            {\n                Debug(_WarnSz(PszLit(\"OOM attempting to run script\")));\n                _PopList(clw);\n                clw = 0;\n                pv = pvNil;\n            }\n            else\n            {\n                CopyPb(_QlwGet(clw), pv, LwMul(size(long), clw));\n                ReverseRglw(pv, clw);\n                _PopList(clw);\n            }\n        }\n        else\n            pv = pvNil;\n\n        if (pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for RunScript[Cno](Gob|This) (gid = %d)\"), hid));\n            lw2 = 0;\n        }\n        else\n        {\n            tribool tRet;\n\n            GobMayDie();\n            if (kopRunScriptCnoGob == op || kopRunScriptCnoThis == op)\n                ((PGOK)pgob)->FRunScriptCno(lw1, (long *)pv, clw, &lw2, &tRet);\n            else\n                ((PGOK)pgob)->FRunScript(lw1, (long *)pv, clw, &lw2, &tRet);\n            if (tYes != tRet)\n            {\n                Debug(_WarnSz(PszLit(\"Running script failed (chid = 0x%x, gid = %d)\"), lw1, hid));\n                lw2 = 0;\n            }\n        }\n        FreePpv(&pv);\n        _Push(lw2);\n        break;\n\n    case kopChangeStateGob:\n        hid = _LwPop();\n        // fall through\n    case kopChangeStateThis:\n        lw1 = _LwPop();\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK) || !FIn(lw1, 0, kswMax))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB or state out of range for \")\n                              PszLit(\"ChangeState(Gob|This) (gid = %d, sno = %d)\"),\n                          hid, lw1));\n        }\n        else\n        {\n            GobMayDie();\n            ((PGOK)pgob)->FChangeState(lw1);\n        }\n        break;\n\n    case kopAnimateGob:\n        hid = _LwPop();\n        // fall through\n    case kopAnimateThis:\n        lw1 = _LwPop();\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for Animate(Gob|This) (gid = %d)\"), hid));\n        }\n        else\n        {\n            GobMayDie();\n            ((PGOK)pgob)->FSetRep(lw1, fgokNil, kctgAnimation);\n        }\n        break;\n\n    case kopSetPictureGob:\n        hid = _LwPop();\n        // fall through\n    case kopSetPictureThis:\n        lw1 = _LwPop();\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for SetPicture(Gob|This) (gid = %d)\"), hid));\n        }\n        else\n        {\n            GobMayDie();\n            ((PGOK)pgob)->FSetRep(lw1, fgokKillAnim, kctgMbmp);\n        }\n        break;\n\n    case kopSetRepGob:\n        hid = _LwPop();\n        // fall through\n    case kopSetRepThis:\n        lw1 = _LwPop();\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for SetRep(Gob|This) (gid = %d)\"), hid));\n        }\n        else\n        {\n            GobMayDie();\n            ((PGOK)pgob)->FSetRep(lw1);\n        }\n        break;\n\n    case kopStateGob:\n        hid = _LwPop();\n        // fall through\n    case kopStateThis:\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK))\n        {\n            lw1 = 0;\n            Debug(_WarnSz(PszLit(\"Missing GOB for State(Gob|This) (gid = %d)\"), hid));\n        }\n        else\n            lw1 = ((PGOK)pgob)->Sno();\n        _Push(lw1);\n        break;\n\n    case kopGidThis:\n        _Push(_hid);\n        break;\n\n    case kopGidParGob:\n        hid = _LwPop();\n        // fall through\n    case kopGidParThis:\n        if (pvNil != (pgob = _PgobFromHid(hid)))\n            pgob = _pwoks->PgobParGob(pgob);\n        _Push(pvNil == pgob ? hidNil : pgob->Hid());\n        break;\n\n    case kopGidNextSib:\n        if (pvNil != (pgob = _PgobFromHid(_LwPop())))\n            pgob = pgob->PgobNextSib();\n        _Push(pvNil == pgob ? hidNil : pgob->Hid());\n        break;\n\n    case kopGidPrevSib:\n        if (pvNil != (pgob = _PgobFromHid(_LwPop())))\n            pgob = pgob->PgobPrevSib();\n        _Push(pvNil == pgob ? hidNil : pgob->Hid());\n        break;\n\n    case kopGidChild:\n        if (pvNil != (pgob = _PgobFromHid(_LwPop())))\n            pgob = pgob->PgobFirstChild();\n        _Push(pvNil == pgob ? hidNil : pgob->Hid());\n        break;\n\n    case kopFGobExists:\n        pgob = _PgobFromHid(_LwPop());\n        _Push(pvNil != pgob);\n        break;\n\n    case kopEnqueueCid:\n        cmd.cid = _LwPop();\n        cmd.pgg = pvNil;\n        hid = _LwPop();\n        if (hidNil == hid)\n            cmd.pcmh = pvNil;\n        else\n            cmd.pcmh = _pwoks->PcmhFromHid(hid);\n        cmd.rglw[0] = _LwPop();\n        cmd.rglw[1] = _LwPop();\n        cmd.rglw[2] = _LwPop();\n        cmd.rglw[3] = _LwPop();\n        if (!_fError)\n            vpcex->EnqueueCmd(&cmd);\n        break;\n\n    case kopAlert:\n    case kopPrint:\n    case kopPrintStat:\n    case kopAlertStr:\n    case kopPrintStr:\n    case kopPrintStrStat:\n        GobMayDie();\n        _DoAlert(op);\n        break;\n\n    case kopCreateClock:\n        hid = _LwPop();\n        if (hidNil != hid && pvNil != (pclok = _pwoks->PclokFromHid(hid)))\n        {\n            Debug(_WarnSz(PszLit(\"Clock already exists - incrementing ref count (hid = %d)\"), hid));\n            pclok->AddRef();\n        }\n        else\n        {\n            if (hidNil == hid)\n                hid = CMH::HidUnique();\n            if (pvNil == NewObj CLOK(hid))\n                hid = hidNil;\n        }\n        _Push(hid);\n        break;\n\n    case kopDestroyClock:\n        if (pvNil != (pclok = _pwoks->PclokFromHid(_LwPop())))\n            ReleasePpo(&pclok);\n        break;\n\n    case kopStartClock:\n        hid = _LwPop();\n        lw1 = _LwPop();\n        if (!_fError && pvNil != (pclok = _pwoks->PclokFromHid(hid)))\n            pclok->Start(lw1);\n        else\n        {\n            Debug(_WarnSz(PszLit(\"Missing clock for StartClock (hid = %d)\"), hid));\n        }\n        break;\n\n    case kopStopClock:\n        if (pvNil != (pclok = _pwoks->PclokFromHid(_LwPop())))\n            pclok->Stop();\n        else\n        {\n            Debug(_WarnSz(PszLit(\"Missing clock for StopClock (hid = %d)\"), hid));\n        }\n        break;\n\n    case kopTimeCur:\n        if (pvNil != (pclok = _pwoks->PclokFromHid(_LwPop())))\n            _Push(pclok->TimCur());\n        else\n        {\n            Debug(_WarnSz(PszLit(\"Missing clock for TimeCur (hid = %d)\"), hid));\n            _Push(0);\n        }\n        break;\n\n    case kopSetAlarmGob:\n        hid = _LwPop();\n    case kopSetAlarmThis:\n    case kopSetAlarm:\n        lw1 = _LwPop();\n        dtim = _LwPop();\n        if (kopSetAlarm == op)\n            lw2 = chidNil;\n        else\n            lw2 = _LwPop();\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || pvNil == (pclok = _pwoks->PclokFromHid(lw1)) ||\n            !pclok->FSetAlarm(dtim, pgob, lw2))\n        {\n            Debug(_WarnSz(PszLit(\"Setting Alarm failed (hid = %d)\"), lw1));\n        }\n        break;\n\n    case kopXMouseGob:\n    case kopYMouseGob:\n        hid = _LwPop();\n        // fall through\n    case kopXMouseThis:\n    case kopYMouseThis:\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for (X|Y)Mouse(Gob|This) (gid = %d)\"), hid));\n            _Push(0);\n        }\n        else\n        {\n            PT pt;\n            bool fDown;\n            pgob->GetPtMouse(&pt, &fDown);\n            _Push(op == kopXMouseThis || op == kopXMouseGob ? pt.xp : pt.yp);\n        }\n        break;\n\n    case kopGidUnique:\n        _Push(CMH::HidUnique());\n        break;\n\n    case kopXGob:\n    case kopYGob:\n        hid = _LwPop();\n        // fall through\n    case kopXThis:\n    case kopYThis:\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for (X|Y)(Gob|This) (gid = %d)\"), hid));\n            _Push(0);\n        }\n        else if (pgob->FIs(kclsGOK))\n        {\n            PT pt;\n            ((PGOK)pgob)->GetPtReg(&pt);\n            _Push(op == kopXThis || op == kopXGob ? pt.xp : pt.yp);\n        }\n        else\n        {\n            RC rc;\n            pgob->GetRc(&rc, cooParent);\n            _Push(op == kopXThis || op == kopXGob ? rc.xpLeft : rc.ypTop);\n        }\n        break;\n\n    case kopZGob:\n        hid = _LwPop();\n        // fall through\n    case kopZThis:\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for Z(Gob|This) (gid = %d)\"), hid));\n            _Push(0);\n        }\n        else\n            _Push(((PGOK)pgob)->ZPlane());\n        break;\n\n    case kopSetZGob:\n        hid = _LwPop();\n        // fall through\n    case kopSetZThis:\n        lw1 = _LwPop();\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for SetZ(Gob|This) (gid = %d)\"), hid));\n        }\n        else\n            ((PGOK)pgob)->SetZPlane(lw1);\n        break;\n\n    case kopSetColorTable:\n        _SetColorTable(_LwPop());\n        break;\n\n    case kopCell:\n        _fPaused = fTrue;\n        // fall through\n    case kopCellNoPause:\n        lw1 = _LwPop();\n        dxp = _LwPop();\n        dyp = _LwPop();\n        dtim = _LwPop();\n        if (_fError || pvNil == (pgob = _PgobThis()))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for Cell[NoPause] (gid = %d)\"), hid));\n        }\n        else\n        {\n            GobMayDie();\n            ((PGOK)pgob)->FSetRep(lw1, fgokNoAnim, ctgNil, dxp, dyp, dtim);\n        }\n        break;\n\n    case kopGetModifierState:\n        _Push(_pwoks->GrfcustCur());\n        break;\n\n    case kopChangeModifierState:\n        lw1 = _LwPop();\n        lw2 = _LwPop();\n        if (!_fError)\n            _pwoks->ModifyGrfcust(lw1, lw2);\n        break;\n\n    case kopTransition:\n        lw1 = _LwPop();\n        lw2 = _LwPop();\n        dtim = _LwPop();\n        lw3 = _LwPop();\n        lw4 = _LwPop();\n        if (!_fError)\n        {\n            ACR acr;\n            PGL pglclr = _PglclrGet((CNO)lw4);\n            acr.SetFromLw(lw3);\n            vpappb->SetGft(lw1, lw2, LuMulDiv(dtim, kdtsSecond, kdtimSecond), pglclr, acr);\n            ReleasePpo(&pglclr);\n        }\n        break;\n\n    case kopGetEdit:\n        lw1 = _LwPop();\n        _DoEditControl(lw1, _LwPop(), fTrue);\n        break;\n\n    case kopSetEdit:\n        lw1 = _LwPop();\n        _DoEditControl(lw1, _LwPop(), fFalse);\n        break;\n\n    case kopGetProp:\n        lw1 = _LwPop();\n        if (!_fError)\n        {\n            GobMayDie();\n            if (!vpappb->FGetProp(lw1, &lw2))\n            {\n                Debug(_WarnSz(PszLit(\"GetProp failed (prid = %d)\"), lw1));\n                lw2 = 0;\n            }\n            _Push(lw2);\n        }\n        break;\n\n    case kopSetProp:\n        lw1 = _LwPop();\n        lw2 = _LwPop();\n        GobMayDie();\n        if (!_fError && !vpappb->FSetProp(lw1, lw2))\n        {\n            Debug(_WarnSz(PszLit(\"SetProp failed (prid = %d, val = %d)\"), lw1, lw2));\n        }\n        break;\n\n    case kopLaunch:\n        lw1 = _LwPop();\n        GobMayDie();\n        if (!_fError)\n            _Push(_FLaunch(lw1));\n        break;\n\n    case kopPlayGob:\n        hid = _LwPop();\n        // fall through\n    case kopPlayThis:\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for Play(Gob|This) (gid = %d)\"), hid));\n        }\n        else\n            ((PGOK)pgob)->FPlay();\n        break;\n\n    case kopPlayingGob:\n        hid = _LwPop();\n        // fall through\n    case kopPlayingThis:\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for Playing(Gob|This) (gid = %d)\"), hid));\n            _Push(fFalse);\n        }\n        else\n            _Push(((PGOK)pgob)->FPlaying());\n        break;\n\n    case kopStopGob:\n        hid = _LwPop();\n        // fall through\n    case kopStopThis:\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for Stop(Gob|This) (gid = %d)\"), hid));\n        }\n        else\n            ((PGOK)pgob)->Stop();\n        break;\n\n    case kopCurFrameGob:\n        hid = _LwPop();\n        // fall through\n    case kopCurFrameThis:\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for (CurFrame(Gob|This) (gid = %d)\"), hid));\n            _Push(0);\n        }\n        else\n            _Push(((PGOK)pgob)->NfrCur());\n        break;\n\n    case kopCountFramesGob:\n        hid = _LwPop();\n        // fall through\n    case kopCountFramesThis:\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for CountFrames(Gob|This) (gid = %d)\"), hid));\n            _Push(0);\n        }\n        else\n            _Push(((PGOK)pgob)->NfrMac());\n        break;\n\n    case kopGotoFrameGob:\n        hid = _LwPop();\n        // fall through\n    case kopGotoFrameThis:\n        lw1 = _LwPop();\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for GotoFrame(Gob|This) (gid = %d)\"), hid));\n        }\n        else\n            ((PGOK)pgob)->GotoNfr(lw1);\n        break;\n\n    case kopFilterCmdsGob:\n        hid = _LwPop();\n        // fall through\n    case kopFilterCmdsThis:\n        lw1 = _LwPop();\n        lw2 = _LwPop();\n        lw3 = _LwPop();\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for FilterCmds(Gob|This) (gid = %d)\"), hid));\n        }\n        else if (!((PGOK)pgob)->FFilterCidHid(lw1, lw2, lw3))\n        {\n            Debug(_WarnSz(PszLit(\"Filtering failed (gid = %d)\"), hid));\n        }\n        break;\n\n    case kopDestroyChildrenGob:\n        hid = _LwPop();\n        // fall through\n    case kopDestroyChildrenThis:\n        if (!_fError && pvNil != (pgob = _PgobFromHid(hid)))\n        {\n            PGOB pgobT;\n\n            GobMayDie();\n            while (pvNil != (pgobT = pgob->PgobFirstChild()))\n                ReleasePpo(&pgobT);\n        }\n        break;\n\n    case kopPlaySoundGob:\n        hid = _LwPop();\n        // fall through\n    case kopPlaySoundThis:\n        lw1 = siiNil;\n        if (!_fError)\n        {\n            pgob = (hidNil == hid) ? pvNil : _PgobFromHid(hid);\n\n            if (pvNil != pgob && pgob->FIs(kclsGOK))\n            {\n                if (pvNil != (qrglw = _QlwGet(7)))\n                {\n                    lw1 = ((PGOK)pgob)\n                              ->SiiPlaySound(qrglw[6], qrglw[5], qrglw[4], qrglw[3], qrglw[2], 0, qrglw[1], qrglw[0]);\n                }\n            }\n            else\n            {\n#ifdef DEBUG\n                if (hidNil != hid)\n                {\n                    _WarnSz(PszLit(\"No GOK for PlaySound(Gob|This) (gid = %d)\"), hid);\n                }\n#endif // DEBUG\n\n                if (pvNil != vpsndm && pvNil != (qrglw = _QlwGet(7)))\n                {\n                    lw1 =\n                        vpsndm->SiiPlay(_prca, qrglw[6], qrglw[5], qrglw[4], qrglw[3], qrglw[2], 0, qrglw[1], qrglw[0]);\n                }\n            }\n            _PopList(7);\n        }\n        _Push(lw1);\n        break;\n\n    case kopStopSound:\n        lw1 = _LwPop();\n        if (!_fError && pvNil != vpsndm)\n            vpsndm->Stop(lw1);\n        break;\n\n    case kopStopSoundClass:\n        lw1 = _LwPop();\n        lw2 = _LwPop();\n        if (!_fError && pvNil != vpsndm)\n            vpsndm->StopAll(lw1, lw2);\n        break;\n\n    case kopPlayingSound:\n        lw1 = _LwPop();\n        if (!_fError && pvNil != vpsndm)\n            _Push(vpsndm->FPlaying(lw1));\n        break;\n\n    case kopPlayingSoundClass:\n        lw1 = _LwPop();\n        lw2 = _LwPop();\n        if (!_fError && pvNil != vpsndm)\n            _Push(vpsndm->FPlayingAll(lw1, lw2));\n        break;\n\n    case kopPauseSound:\n        lw1 = _LwPop();\n        if (!_fError && pvNil != vpsndm)\n            vpsndm->Pause(lw1);\n        break;\n\n    case kopPauseSoundClass:\n        lw1 = _LwPop();\n        lw2 = _LwPop();\n        if (!_fError && pvNil != vpsndm)\n            vpsndm->PauseAll(lw1, lw2);\n        break;\n\n    case kopResumeSound:\n        lw1 = _LwPop();\n        if (!_fError && pvNil != vpsndm)\n            vpsndm->Resume(lw1);\n        break;\n\n    case kopResumeSoundClass:\n        lw1 = _LwPop();\n        lw2 = _LwPop();\n        if (!_fError && pvNil != vpsndm)\n            vpsndm->ResumeAll(lw1, lw2);\n        break;\n\n    case kopPlayMouseSoundGob:\n        hid = _LwPop();\n        // fall through\n    case kopPlayMouseSoundThis:\n        lw1 = _LwPop();\n        lw2 = _LwPop();\n        if (!_fError && pvNil != (pgob = _PgobFromHid(hid)) && pgob->FIs(kclsGOK))\n        {\n            _Push(((PGOK)pgob)->SiiPlayMouseSound(lw1, lw2));\n        }\n        else\n            _Push(siiNil);\n        break;\n\n    case kopWidthGob:\n    case kopHeightGob:\n        hid = _LwPop();\n        // fall thru\n    case kopWidthThis:\n    case kopHeightThis:\n        if (!_fError && pvNil != (pgob = _PgobFromHid(hid)))\n        {\n            RC rc;\n\n            pgob->GetRc(&rc, cooLocal);\n            if (kopWidthGob == op || kopWidthThis == op)\n                _Push(rc.Dxp());\n            else\n                _Push(rc.Dyp());\n        }\n        else\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for (Width|Height)(Gob|This) (gid = %d)\"), hid));\n            _Push(0);\n        }\n        break;\n\n    case kopSetNoSlipGob:\n        hid = _LwPop();\n        // fall through\n    case kopSetNoSlipThis:\n        lw1 = _LwPop();\n        if (!_fError && pvNil != (pgob = _PgobFromHid(hid)) && pgob->FIs(kclsGOK))\n        {\n            ((PGOK)pgob)->SetNoSlip(lw1);\n        }\n        else\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for SetNoSlip(Gob|This) (gid = %d)\"), hid));\n        }\n        break;\n\n    case kopFIsDescendent:\n        lw1 = _LwPop();\n        lw2 = _LwPop();\n        if (!_fError)\n        {\n            PGOB pgobPar = _PgobFromHid(lw2);\n\n            if (pvNil == pgobPar || pvNil == (pgob = _PgobFromHid(lw1)))\n                _Push(0);\n            else\n            {\n                while (pgob != pvNil && pgob != pgobPar)\n                    pgob = _pwoks->PgobParGob(pgob);\n                _Push(pgob == pgobPar);\n            }\n        }\n        break;\n\n    case kopSetMasterVolume:\n        lw1 = _LwPop();\n        if (!_fError && pvNil != vpsndm)\n            vpsndm->SetVlm(lw1);\n        break;\n\n    case kopGetMasterVolume:\n        if (pvNil != vpsndm)\n            _Push(vpsndm->VlmCur());\n        else\n            _Push(0);\n        break;\n\n    case kopStartLongOp:\n        vpappb->BeginLongOp();\n        break;\n\n    case kopEndLongOp:\n        vpappb->EndLongOp(_LwPop());\n        break;\n\n    case kopSetToolTipSourceGob:\n        hid = _LwPop();\n        // fall through\n    case kopSetToolTipSourceThis:\n        lw1 = _LwPop();\n        if (!_fError && pvNil != (pgob = _PgobFromHid(hid)) && pgob->FIs(kclsGOK))\n        {\n            ((PGOK)pgob)->SetHidToolTip(lw1);\n        }\n        else\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for SetToolTipSource(Gob|This) (gid = %d)\"), hid));\n        }\n        break;\n\n    case kopModalHelp:\n        lw1 = _LwPop();\n        lw2 = _LwPop();\n        if (!_fError)\n        {\n            GobMayDie();\n            if (_pwoks->FModalTopic(_prca, lw1, &lw3))\n                lw2 = lw3;\n            _Push(lw2);\n        }\n        break;\n\n    case kopFlushUserEvents:\n        vpappb->FlushUserEvents(_LwPop());\n        break;\n\n    case kopStreamGob:\n        hid = _LwPop();\n        // fall through\n    case kopStreamThis:\n        lw1 = _LwPop();\n        if (_fError || pvNil == (pgob = _PgobFromHid(hid)) || !pgob->FIs(kclsGOK))\n        {\n            Debug(_WarnSz(PszLit(\"Missing GOB for Stream(Gob|This) (gid = %d)\"), hid));\n        }\n        else\n            ((PGOK)pgob)->Stream(FPure(lw1));\n        break;\n\n    default:\n        return SCEG_PAR::_FExecOp(op);\n    }\n\n    return !_fError;\n}\n\n/***************************************************************************\n    Put up an alert containing a list of numbers.\n***************************************************************************/\nvoid SCEG::_DoAlert(long op)\n{\n    STN stn1;\n    STN stn2;\n    long lw;\n    bool fStrings;\n    long clw = _LwPop();\n\n    switch (op)\n    {\n    default:\n        return;\n\n#ifdef CHUNK_STATS\n    case kopPrintStat:\n#endif // CHUNK_STATS\n    case kopAlert:\n    case kopPrint:\n        fStrings = fFalse;\n        break;\n\n#ifdef CHUNK_STATS\n    case kopPrintStrStat:\n#endif // CHUNK_STATS\n    case kopAlertStr:\n    case kopPrintStr:\n        fStrings = fTrue;\n        break;\n    }\n\n    if (fStrings && pvNil == _pstrg)\n    {\n        _Error(fTrue);\n        return;\n    }\n\n    stn1.FFormatSz(PszLit(\"Script Message ('%f', 0x%x, %d): \"), _pscpt->Ctg(), _pscpt->Cno(), _ilwCur);\n\n    while (clw-- > 0)\n    {\n        lw = _LwPop();\n        if (fStrings)\n            _pstrg->FGet(lw, &stn2);\n        else\n            stn2.FFormatSz(PszLit(\"%d (0x%x) \"), lw, lw);\n        stn1.FAppendStn(&stn2);\n    }\n\n    switch (op)\n    {\n#ifdef CHUNK_STATS\n    case kopPrintStat:\n    case kopPrintStrStat:\n        CFL::DumpStn(&stn1);\n        break;\n#endif // CHUNK_STATS\n\n    case kopAlert:\n    case kopAlertStr:\n        _pwoks->TGiveAlert(&stn1, bkOk, cokInformation);\n        break;\n\n    case kopPrint:\n    case kopPrintStr:\n        _pwoks->Print(&stn1);\n        break;\n    }\n}\n\n/***************************************************************************\n    Get or set the string in an edit control.\n***************************************************************************/\nvoid SCEG::_DoEditControl(long hid, long stid, bool fGet)\n{\n    PEDCB pedcb;\n    long cch;\n    achar rgch[kcchMaxStn];\n    STN stn;\n\n    if (_fError || pvNil == (pedcb = (PEDCB)_PgobFromHid(hid)) || !pedcb->FIs(kclsEDCB))\n    {\n        Debug(_WarnSz(PszLit(\"Missing edit control for (Get|Set)Edit (gid = %d)\"), hid));\n        return;\n    }\n\n    if (pvNil == _pstrg)\n    {\n        _Error(fTrue);\n        return;\n    }\n\n    cch = pedcb->IchMac();\n    if (fGet)\n    {\n        cch = pedcb->CchFetch(rgch, 0, LwMin(kcchMaxStn, cch));\n        stn.SetRgch(rgch, cch);\n        _pstrg->FPut(stid, &stn);\n    }\n    else\n    {\n        _pstrg->FGet(stid, &stn);\n        pedcb->FReplace(stn.Psz(), stn.Cch(), 0, cch);\n    }\n}\n\n/***************************************************************************\n    Set the current color table.\n***************************************************************************/\nvoid SCEG::_SetColorTable(CNO cno)\n{\n    PGL pglclr;\n\n    if (pvNil == (pglclr = _PglclrGet(cno)))\n        return;\n\n    GPT::SetActiveColors(pglclr, fpalIdentity);\n    ReleasePpo(&pglclr);\n}\n\n/***************************************************************************\n    Read the indicated color table and return a reference to it.\n***************************************************************************/\nPGL SCEG::_PglclrGet(CNO cno)\n{\n    PCABO pcabo;\n    PGL pglclr;\n\n    if (cnoNil == cno)\n        return pvNil;\n\n    pcabo = (PCABO)_prca->PbacoFetch(kctgColorTable, cno, FReadColorTable);\n    if (pvNil == pcabo)\n        return pvNil;\n\n    pglclr = (PGL)pcabo->po;\n    AssertPo(pglclr, 0);\n    pglclr->AddRef();\n    pcabo->SetCrep(crepTossFirst);\n    ReleasePpo(&pcabo);\n\n    return pglclr;\n}\n\n/***************************************************************************\n    A chunky resource reader to read a color table. Wraps the color table in\n    a CABO.\n***************************************************************************/\nbool FReadColorTable(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    PCABO pcabo;\n    PGL pglclr = pvNil;\n\n    *pcb = pblck->Cb(fTrue);\n    if (pvNil == ppbaco)\n        return fTrue;\n\n    if (!pblck->FUnpackData())\n        goto LFail;\n    *pcb = pblck->Cb();\n\n    if (pvNil == (pglclr = GL::PglRead(pblck)) || pglclr->CbEntry() != size(CLR))\n        goto LFail;\n\n    if (pvNil == (pcabo = NewObj CABO(pglclr)))\n    {\n    LFail:\n        ReleasePpo(&pglclr);\n        TrashVar(pcb);\n        TrashVar(ppbaco);\n        return fFalse;\n    }\n\n    *ppbaco = pcabo;\n    return fTrue;\n}\n\n/***************************************************************************\n    Launch an app with the given command line. Return true iff the launch\n    was successful.\n***************************************************************************/\nbool SCEG::_FLaunch(long stid)\n{\n    AssertThis(0);\n    STN stn;\n\n    if (pvNil == _pstrg)\n    {\n        _Error(fTrue);\n        return fFalse;\n    }\n\n    if (!_pstrg->FGet(stid, &stn))\n    {\n        Debug(_WarnSz(PszLit(\"String missing for Launch (stid = %d)\"), stid));\n        Warn(\"string missing\");\n        return fFalse;\n    }\n\n#ifdef WIN\n    STARTUPINFO sui;\n    PROCESS_INFORMATION pi;\n\n    ClearPb(&sui, size(sui));\n    sui.cb = size(sui);\n\n    return CreateProcess(pvNil, stn.Psz(), pvNil, pvNil, fFalse, DETACHED_PROCESS, pvNil, pvNil, &sui, &pi);\n#else  //! WIN\n    RawRtn(); // REVIEW shonk: Mac: implement SCEG::_FLaunch\n    return fFalse;\n#endif //! WIN\n}\n"
  },
  {
    "path": "kauai/src/screxeg.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Script interpreter for the gob based scripts.\n\n***************************************************************************/\n#ifndef SCREXEG_H\n#define SCREXEG_H\n\n/****************************************\n    Gob based script interpreter\n****************************************/\ntypedef class SCEG *PSCEG;\n#define SCEG_PAR SCEB\n#define kclsSCEG 'SCEG'\nclass SCEG : public SCEG_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    // CAUTION: _pgob may be nil (even if the gob still exists)! Always access\n    // thru _PgobThis.  When something is done that may cause the gob to be\n    // freed (such as calling another script), set this to nil.\n    PGOB _pgob;\n    long _hid;    // the handler id of the initialization gob\n    long _grid;   // the unique gob run-time id of the initialization gob\n    PWOKS _pwoks; // the kidspace world this script belongs to\n\n    virtual PGOB _PgobThis(void);\n    virtual PGOB _PgobFromHid(long hid);\n\n    virtual bool _FExecOp(long op);\n    virtual PGL *_PpglrtvmThis(void);\n    virtual PGL *_PpglrtvmGlobal(void);\n    virtual PGL *_PpglrtvmRemote(long lw);\n\n    virtual short _SwCur(void);\n    virtual short _SwMin(void);\n\n    void _DoAlert(long op);\n    void _SetColorTable(CHID chid);\n    void _DoEditControl(long hid, long stid, bool fGet);\n    PGL _PglclrGet(CNO cno);\n    bool _FLaunch(long stid);\n\n  public:\n    SCEG(PWOKS pwoks, PRCA prca, PGOB pgob);\n\n    void GobMayDie(void)\n    {\n        _pgob = pvNil;\n    }\n    virtual bool FResume(long *plwReturn = pvNil, bool *pfPaused = pvNil);\n};\n\n// a Chunky resource reader for a color table\nbool FReadColorTable(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n\n#endif //! SCREXEG_H\n"
  },
  {
    "path": "kauai/src/sndam.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Audioman based sound classes.\n\n***************************************************************************/\n#include \"frame.h\"\n#include \"audioman.h\"\n#include \"sndampri.h\"\nASSERTNAME\n\n// CHECK_AUDIO_DEVCAPS turns on using waveOutGetDevCaps to check for\n// audio device characteristics, to workaround AudioMan 1.0 always returning\n// whatever device was asked for, regardless if device actually supports format.\n// In case of asking for a 16 bit device, and there is only an 8 bit device, the\n// open will succeed, causing sub-optimal audioman performance on an 8 bit card.\n// With AudioMan 1.5, this should go away.\n#define CHECK_AUDIO_DEVCAPS\n\n// Initialize the maximum mem footprint of wave sounds.\nlong SDAM::vcbMaxMemWave = 40 * 1024;\n\nstatic IAMMixer *_pamix; // the audioman mixer\nstatic ulong _luGroup;   // the group number\nstatic bool _fGrouped;   // whether new sounds are grouped\nstatic long _cactGroup;  // group nesting count\n\nstatic ulong _luFormat;    // format mixer is in\nstatic ulong _luCacheTime; // buffer size for mixer\n\nRTCLASS(SDAM)\nRTCLASS(CAMS)\nRTCLASS(AMQUE)\n\n/***************************************************************************\n    Constructor for a streamed block.\n***************************************************************************/\nSTBL::STBL(void)\n{\n    AssertThisMem();\n\n    // WARNING: this is not allocated using our NewObj because STBL is not\n    // based on BASE. So fields are not automatically initialized to 0.\n    _cactRef = 1;\n    _ib = 0;\n}\n\n/***************************************************************************\n    Destructor for a streamed block.\n***************************************************************************/\nSTBL::~STBL(void)\n{\n    AssertThisMem();\n}\n\n/***************************************************************************\n    QueryInterface for STBL.\n***************************************************************************/\nSTDMETHODIMP STBL::QueryInterface(REFIID riid, void **ppv)\n{\n    AssertThis(0);\n\n    if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IStream))\n    {\n        *ppv = (void *)this;\n        AddRef();\n        return S_OK;\n    }\n\n    *ppv = pvNil;\n    return E_NOINTERFACE;\n}\n\n/***************************************************************************\n    Increment the reference count.\n***************************************************************************/\nSTDMETHODIMP_(ULONG) STBL::AddRef(void)\n{\n    AssertThis(0);\n    return ++_cactRef;\n}\n\n/***************************************************************************\n    Decrement the reference count.\n***************************************************************************/\nSTDMETHODIMP_(ULONG) STBL::Release(void)\n{\n    AssertThis(0);\n    long cactRef;\n\n    if ((cactRef = --_cactRef) == 0)\n        delete this;\n    return cactRef;\n}\n\n/***************************************************************************\n    Read some stuff.\n***************************************************************************/\nSTDMETHODIMP STBL::Read(void *pv, ULONG cb, ULONG *pcb)\n{\n    AssertThis(0);\n    AssertPvCb(pv, cb);\n    AssertNilOrVarMem(pcb);\n\n    cb = LwMin(_blck.Cb() - _ib, cb);\n    if (_blck.FReadRgb(pv, cb, _ib))\n    {\n        _ib += cb;\n        if (pvNil != pcb)\n            *pcb = cb;\n        return NOERROR;\n    }\n\n    if (pvNil != pcb)\n        *pcb = 0;\n    return ResultFromScode(STG_E_READFAULT);\n}\n\n/***************************************************************************\n    Seek to a place.\n***************************************************************************/\nSTDMETHODIMP STBL::Seek(LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(plibNewPosition);\n\n    switch (dwOrigin)\n    {\n    case STREAM_SEEK_SET:\n        break;\n\n    case STREAM_SEEK_CUR:\n        dlibMove.QuadPart += _ib;\n        break;\n\n    case STREAM_SEEK_END:\n        dlibMove.QuadPart += _blck.Cb();\n        break;\n    }\n\n    if (dlibMove.QuadPart < 0 || dlibMove.QuadPart > _blck.Cb())\n    {\n        if (pvNil != plibNewPosition)\n            plibNewPosition->QuadPart = _ib;\n        return E_INVALIDARG;\n    }\n\n    _ib = (long)dlibMove.QuadPart;\n    if (pvNil != plibNewPosition)\n        plibNewPosition->QuadPart = _ib;\n    return S_OK;\n}\n\n/***************************************************************************\n    Static method to create a new stream wrapper around a flo.\n***************************************************************************/\nPSTBL STBL::PstblNew(FLO *pflo, bool fPacked)\n{\n    AssertPo(pflo, ffloReadable);\n    PSTBL pstbl;\n    BLCK blck;\n    PBLCK pblck;\n\n    if (pvNil == (pstbl = new STBL))\n        return pvNil;\n\n    pblck = &pstbl->_blck;\n    if (fPacked)\n    {\n        // unpack the block\n        pblck->Set(pflo, fPacked);\n        if (!pblck->FUnpackData())\n        {\n            delete pstbl;\n            return pvNil;\n        }\n\n        // see if it's too big to keep in memory\n        if (pstbl->CbMem() > SDAM::vcbMaxMemWave)\n        {\n            // try to put the sound on disk\n            HQ hq = pblck->HqFree();\n\n            AssertHq(hq);\n            if (pblck->FSetTemp(CbOfHq(hq), fTrue) && pblck->FWriteHq(hq, 0))\n            {\n                FreePhq(&hq);\n            }\n            else\n                pblck->SetHq(&hq);\n        }\n    }\n    else\n    {\n        // see if it's on a removeable disk\n        FNI fni;\n\n        pflo->pfil->GetFni(&fni);\n        if (fni.Grfvk() & (fvkFloppy | fvkCD | fvkRemovable))\n        {\n            // cache to the hard drive or memory, depending on the size\n            BLCK blck(pflo);\n\n            if (!pblck->FSetTemp(pflo->cb, blck.Cb() + size(STBL) > SDAM::vcbMaxMemWave) || !blck.FWriteToBlck(pblck))\n            {\n                delete pstbl;\n                return pvNil;\n            }\n        }\n        else\n            pblck->Set(pflo);\n    }\n\n    AssertPo(pstbl, 0);\n    return pstbl;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a STBL.\n***************************************************************************/\nvoid STBL::AssertValid(ulong grf)\n{\n    AssertThisMem();\n    AssertPo(&_blck, 0);\n    AssertIn(_ib, 0, _blck.Cb() + 1);\n}\n\n/***************************************************************************\n    Mark memory for the STBL.\n***************************************************************************/\nvoid STBL::MarkMem(void)\n{\n    AssertValid(0);\n    MarkMemObj(&_blck);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for a cached AudioMan sound.\n***************************************************************************/\nCAMS::CAMS(void)\n{\n    AssertBaseThis(fobjAllocated);\n}\n\n/***************************************************************************\n    Destructor for a cached AudioMan sound.\n***************************************************************************/\nCAMS::~CAMS(void)\n{\n    AssertBaseThis(fobjAllocated);\n    ReleasePpo(&psnd);\n    ReleasePpo(&_pstbl);\n}\n\n/***************************************************************************\n    Static BACO reader method to put together a Cached AudioMan sound.\n***************************************************************************/\nbool CAMS::FReadCams(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n    FLO flo;\n    bool fPacked;\n    PCAMS pcams = pvNil;\n    PSTBL pstbl = pvNil;\n\n    *pcb = size(CAMS) + size(STBL);\n    if (pvNil == ppbaco)\n        return fTrue;\n\n    *ppbaco = pvNil;\n    if (!pcrf->Pcfl()->FFindFlo(ctg, cno, &flo))\n        return fFalse;\n\n    fPacked = pcrf->Pcfl()->FPacked(ctg, cno);\n    if (pvNil == (pstbl = STBL::PstblNew(&flo, fPacked)))\n        return fFalse;\n\n    *pcb = size(CAMS) + pstbl->CbMem();\n    if (pvNil == (pcams = NewObj CAMS) || FAILED(AllocSoundFromStream(&pcams->psnd, pstbl, fTrue, pvNil)))\n    {\n        ReleasePpo(&pcams);\n    }\n\n    if (pvNil != pcams)\n        pcams->_pstbl = pstbl;\n    else\n        ReleasePpo(&pstbl);\n\n    AssertNilOrPo(pcams, 0);\n    *ppbaco = pcams;\n\n    return pvNil != *ppbaco;\n}\n\n/***************************************************************************\n    Static BACO reader method to put together a Cached AudioMan sound.\n***************************************************************************/\nPCAMS CAMS::PcamsNewLoop(PCAMS pcamsSrc, long cactPlay)\n{\n    AssertPo(pcamsSrc, 0);\n    Assert(cactPlay != 1, \"bad loop count\");\n    PCAMS pcams = pvNil;\n\n    if (pvNil == (pcams = NewObj CAMS) || FAILED(AllocLoopFilter(&pcams->psnd, pcamsSrc->psnd, cactPlay - 1)))\n    {\n        ReleasePpo(&pcams);\n    }\n\n    if (pvNil != pcams)\n    {\n        pcams->_pstbl = pcamsSrc->_pstbl;\n        pcams->_pstbl->AddRef();\n    }\n\n    AssertNilOrPo(pcams, 0);\n    return pcams;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a CAMS.\n***************************************************************************/\nvoid CAMS::AssertValid(ulong grf)\n{\n    CAMS_PAR::AssertValid(0);\n    AssertPo(_pstbl, 0);\n    Assert(psnd != pvNil, 0);\n}\n\n/***************************************************************************\n    Mark memory for the CAMS.\n***************************************************************************/\nvoid CAMS::MarkMem(void)\n{\n    AssertValid(0);\n    CAMS_PAR::MarkMem();\n    if (pvNil != _pstbl)\n        _pstbl->MarkMem();\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for our notify sink.\n***************************************************************************/\nAMNOT::AMNOT(void)\n{\n    _cactRef = 1;\n    _pamque = pvNil;\n}\n\n/***************************************************************************\n    Set the AMQUE that we're to notify.\n***************************************************************************/\nvoid AMNOT::Set(PAMQUE pamque)\n{\n    AssertNilOrVarMem(pamque);\n    _pamque = pamque;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a AMNOT.\n***************************************************************************/\nvoid AMNOT::AssertValid(ulong grf)\n{\n    AssertThisMem();\n    AssertNilOrVarMem(_pamque);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    QueryInterface for AMNOT.\n***************************************************************************/\nSTDMETHODIMP AMNOT::QueryInterface(REFIID riid, void **ppv)\n{\n    AssertThis(0);\n\n    if (IsEqualIID(riid, IID_IUnknown) || IsEqualIID(riid, IID_IAMNotifySink))\n    {\n        *ppv = (void *)this;\n        AddRef();\n        return S_OK;\n    }\n\n    *ppv = pvNil;\n    return E_NOINTERFACE;\n}\n\n/***************************************************************************\n    Increment the reference count.\n***************************************************************************/\nSTDMETHODIMP_(ULONG) AMNOT::AddRef(void)\n{\n    AssertThis(0);\n    return ++_cactRef;\n}\n\n/***************************************************************************\n    Decrement the reference count.\n***************************************************************************/\nSTDMETHODIMP_(ULONG) AMNOT::Release(void)\n{\n    AssertThis(0);\n    long cactRef;\n\n    if ((cactRef = --_cactRef) == 0)\n        delete this;\n    return cactRef;\n}\n\n/***************************************************************************\n    The indicated sound is done. Just tell the AMQUE that we got a notify.\n***************************************************************************/\nSTDMETHODIMP_(void) AMNOT::OnCompletion(LPSOUND pSound, DWORD dwPosition)\n{\n    AssertThis(0);\n\n    if (pvNil != _pamque)\n        _pamque->Notify(pSound);\n}\n\n/***************************************************************************\n    Constructor for an audioman queue.\n***************************************************************************/\nAMQUE::AMQUE(void)\n{\n}\n\n/***************************************************************************\n    Destructor for an audioman queue.\n***************************************************************************/\nAMQUE::~AMQUE(void)\n{\n    if (pvNil != _pchan)\n        StopAll();\n    ReleasePpo(&_pchan);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a AMQUE.\n***************************************************************************/\nvoid AMQUE::AssertValid(ulong grf)\n{\n    AMQUE_PAR::AssertValid(0);\n    Assert(pvNil != _pchan, 0);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Static method to create a new audioman queue.\n***************************************************************************/\nPAMQUE AMQUE::PamqueNew(void)\n{\n    PAMQUE pamque;\n\n    if (pvNil == (pamque = NewObj AMQUE))\n        return pvNil;\n\n    if (!pamque->_FInit())\n        ReleasePpo(&pamque);\n\n    AssertNilOrPo(pamque, 0);\n    return pamque;\n}\n\n/***************************************************************************\n    Initialize the audioman queue. Allocate the audioman channel and the\n    _pglsndin.\n***************************************************************************/\nbool AMQUE::_FInit(void)\n{\n    AssertBaseThis(0);\n\n    if (!AMQUE_PAR::_FInit())\n        return fFalse;\n\n    if (FAILED(_pamix->AllocChannel(&_pchan)))\n    {\n        _pchan = pvNil;\n        return fFalse;\n    }\n    if (pvNil == _pchan)\n    {\n        Bug(\"Audioman messed up!\");\n        return fFalse;\n    }\n\n    _amnot.Set(this);\n    if (FAILED(_pchan->RegisterNotify(&_amnot, NOTIFYSINK_ONCOMPLETION)))\n        return fFalse;\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Enter the critical section protecting member variables.\n***************************************************************************/\nvoid AMQUE::_Enter(void)\n{\n    _mutx.Enter();\n}\n\n/***************************************************************************\n    Leave the critical section protecting member variables.\n***************************************************************************/\nvoid AMQUE::_Leave(void)\n{\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Fetch the given sound chunk as a CAMS.\n***************************************************************************/\nPBACO AMQUE::_PbacoFetch(PRCA prca, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    AssertPo(prca, 0);\n\n    return prca->PbacoFetch(ctg, cno, &CAMS::FReadCams);\n}\n\n/***************************************************************************\n    An item was added to or deleted from the queue.\n***************************************************************************/\nvoid AMQUE::_Queue(long isndinMin)\n{\n    AssertThis(0);\n    SNDIN sndin;\n    long isndin;\n\n    _Enter();\n\n    if (pvNil != _pglsndin)\n    {\n        PCAMS pcams;\n\n        for (isndin = isndinMin; isndin < _pglsndin->IvMac(); isndin++)\n        {\n            _pglsndin->Get(isndin, &sndin);\n\n            if (1 == sndin.cactPlay)\n                continue;\n\n            // put a loop filter around it to get seamless sample based looping\n            if (pvNil != (pcams = CAMS::PcamsNewLoop((PCAMS)sndin.pbaco, sndin.cactPlay)))\n            {\n                sndin.cactPlay = 1; // now it's just one sound\n                ReleasePpo(&sndin.pbaco);\n                sndin.pbaco = pcams;\n                _pglsndin->Put(isndin, &sndin);\n            }\n        }\n    }\n\n    if (_isndinCur == isndinMin && pvNil != _pglsndin)\n    {\n        for (; _isndinCur < _pglsndin->IvMac(); _isndinCur++)\n        {\n            _pglsndin->Get(_isndinCur, &sndin);\n            if (0 <= sndin.cactPause)\n                break;\n        }\n\n        if (_isndinCur < _pglsndin->IvMac() && 0 == sndin.cactPause)\n        {\n            // stop the channel\n            _pchan->Stop();\n\n            // set the volume\n            _pchan->SetVolume(LuVolScale((ulong)(-1), sndin.vlm));\n\n            // if the sound is in memory\n            if (((PCAMS)sndin.pbaco)->FInMemory())\n            {\n                // set the sound source, with no cache (Since it's in memory)\n                _pchan->SetSoundSrc(((PCAMS)sndin.pbaco)->psnd);\n            }\n            else\n            {\n                CacheConfig cc;\n                cc.dwSize = size(cc);\n                cc.fSrcFormat = fTrue;\n                cc.lpFormat = pvNil;\n                cc.dwFormat = _luFormat;\n                cc.dwCacheTime = 2 * _luCacheTime;\n\n                // set the sound src, using cache cause it's not in memory\n                _pchan->SetCachedSrc(((PCAMS)sndin.pbaco)->psnd, &cc);\n            }\n\n            // if there is a starting offset, apply it\n            if (sndin.dtsStart != 0)\n                _pchan->SetTimePos(sndin.dtsStart);\n\n            if (!_fGrouped || FAILED(_pamix->EnlistGroup(_pchan, _luGroup)))\n            {\n                // start the channel\n                _pchan->Play();\n            }\n\n            _tsStart = TsCurrentSystem() - sndin.dtsStart;\n        }\n        else\n        {\n            _pchan->Stop();\n            _pchan->SetSoundSrc(pvNil);\n        }\n    }\n\n    _Leave();\n}\n\n/***************************************************************************\n    One or more items in the queue were paused.\n***************************************************************************/\nvoid AMQUE::_PauseQueue(long isndinMin)\n{\n    AssertThis(0);\n    SNDIN sndin;\n\n    _mutx.Enter();\n\n    if (_isndinCur == isndinMin && _pglsndin->IvMac() > _isndinCur)\n    {\n        _pglsndin->Get(_isndinCur, &sndin);\n        sndin.dtsStart = TsCurrentSystem() - _tsStart;\n        _pglsndin->Put(_isndinCur, &sndin);\n\n        _Queue(isndinMin);\n    }\n\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    One or more items in the queue were resumed.\n***************************************************************************/\nvoid AMQUE::_ResumeQueue(long isndinMin)\n{\n    AssertThis(0);\n\n    _Queue(isndinMin);\n}\n\n/***************************************************************************\n    Called by our notify sink to tell us that the indicated sound is done.\n    WARNING: this is called in an auxillary thread.\n***************************************************************************/\nvoid AMQUE::Notify(LPSOUND psnd)\n{\n    AssertThis(0);\n    SNDIN sndin;\n\n    _Enter();\n\n    if (pvNil != _pglsndin && _pglsndin->IvMac() > _isndinCur)\n    {\n        _pglsndin->Get(_isndinCur, &sndin);\n        if (psnd == ((PCAMS)sndin.pbaco)->psnd)\n        {\n            if (--sndin.cactPlay == 0)\n            {\n                _isndinCur++;\n                _Queue(_isndinCur);\n            }\n            else\n            {\n                // play the sound again\n                _pglsndin->Put(_isndinCur, &sndin);\n                _pchan->SetSoundSrc(((PCAMS)sndin.pbaco)->psnd);\n                _tsStart = TsCurrentSystem();\n            }\n        }\n    }\n\n    _Leave();\n}\n\n/***************************************************************************\n    Constructor for the audioman device.\n***************************************************************************/\nSDAM::SDAM(void)\n{\n    _vlm = kvlmFull;\n    _luVolSys = (ulong)(-1);\n}\n\n/***************************************************************************\n    Destructor for the audioman device.\n***************************************************************************/\nSDAM::~SDAM(void)\n{\n    AssertBaseThis(0);\n\n    if (_fAudioManInited && 0 == _pamix->Release())\n        _pamix = pvNil;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a SDAM.\n***************************************************************************/\nvoid SDAM::AssertValid(ulong grf)\n{\n    SDAM_PAR::AssertValid(0);\n    Assert(_pamix != pvNil, 0);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Static method to create the audioman device.\n***************************************************************************/\nPSDAM SDAM::PsdamNew(long wav)\n{\n    PSDAM psdam;\n\n    if (pvNil == (psdam = NewObj SDAM))\n        return pvNil;\n\n    if (!psdam->_FInit(wav))\n        ReleasePpo(&psdam);\n\n    AssertNilOrPo(psdam, 0);\n    return psdam;\n}\n\nstatic long _mpwavfmt[] = {\n    WAVE_FORMAT_1M08, WAVE_FORMAT_2M08, WAVE_FORMAT_4M08, WAVE_FORMAT_1S08, WAVE_FORMAT_2S08, WAVE_FORMAT_4S08,\n    WAVE_FORMAT_1M16, WAVE_FORMAT_2M16, WAVE_FORMAT_4M16, WAVE_FORMAT_1S16, WAVE_FORMAT_2S16, WAVE_FORMAT_4S16,\n};\n\n#ifdef CHECK_AUDIO_DEVCAPS\n/******************************************************************************\n\n@func   WORD | wHaveWaveDevice |\n\n        Do we have a wave device capable of playing the passed PCM format(s).\n\n@parm  DWORD | dwFormats | WAVE formats needed to be supported.  These can be\n                            a bitwise combination of WAVE_FORMAT_???? flags\n                            which are defined in mmsystem.h.  If you don't\n                            care what formats are supported you can pass zero.\n\n******************************************************************************/\n\nbool FHaveWaveDevice(DWORD dwReqFormats)\n{\n    WORD wNumWavDev;\n    WAVEOUTCAPS WOC;\n    WORD wDevID;\n    WORD wErr;\n\n    // Determine how many WAVE devices are in the user's system\n    wNumWavDev = waveOutGetNumDevs();\n\n    // If there are none, return indicating that\n    if (0 == wNumWavDev)\n        return (fFalse);\n\n    // Cycle through the WAVE devices to determine if any support\n    // the desired format.\n    for (wDevID = 0; wDevID < wNumWavDev; wDevID++)\n    {\n        wErr = waveOutGetDevCaps(wDevID, &WOC, sizeof(WAVEOUTCAPS));\n\n        // If we obtain a WAVE device's capabilities OK\n        // and it supports the desired format\n        if ((0 == wErr) && ((WOC.dwFormats & dwReqFormats) == dwReqFormats))\n        {\n            // then return success - we have a device that supports what we want\n            return fTrue;\n        }\n    }\n\n    // it doesn't support this device\n    return fFalse;\n}\n#endif\n\n/***************************************************************************\n    Initialize the audioman device.\n***************************************************************************/\nbool SDAM::_FInit(long wav)\n{\n    AssertBaseThis(0);\n    MIXERCONFIG mixc;\n    ADVMIXCONFIG amxc;\n\n    if (!SDAM_PAR::_FInit())\n        return fFalse;\n\n    // get IAMMixer interface\n    if (pvNil != _pamix)\n    {\n        _pamix->AddRef();\n        _fAudioManInited = fTrue;\n    }\n    else\n    {\n        if (pvNil == (_pamix = GetAudioManMixer()))\n            return fFalse;\n        _fAudioManInited = fTrue;\n\n        // REVIEW shonk: what values should we use?\n        mixc.dwSize = size(mixc);\n        mixc.lpFormat = pvNil;\n        if (!FIn(wav, 0, kwavLim))\n            wav = kwav22M16;\n        mixc.dwFormat = _mpwavfmt[wav];\n        amxc.dwSize = size(amxc);\n        amxc.uVoices = 12;\n        amxc.fRemixEnabled = fTrue;\n        amxc.uBufferTime = 600;\n\n#ifdef CHECK_AUDIO_DEVCAPS\n        // if we don't have a device of this format...\n        if (!FHaveWaveDevice(mixc.dwFormat))\n        {\n            // failed, so try dropping to 8 bit\n            wav += kwav22M8 - kwav22M16;\n            if (!FIn(wav, 0, kwavLim))\n                return fFalse;\n            mixc.dwFormat = _mpwavfmt[wav];\n            // we'll try to open at 8, cause if the card doesn't\n            // support it, then WAVE_MAPPER will actually convert\n            // to the 8 bit format.\n        }\n\n        _luFormat = mixc.dwFormat;\n        _luCacheTime = amxc.uBufferTime;\n\n        // initialize it (done only once...)\n        if (FAILED(_pamix->Init(vwig.hinst, pvNil, &mixc, &amxc)))\n            return fFalse;\n#else\n        _luFormat = mixc.dwFormat;\n        _luCacheTime = amxc.uBufferTime;\n\n        // initialize it (done only once...)\n        if (FAILED(_pamix->Init(vwig.hinst, pvNil, &mixc, &amxc)))\n        {\n            // failed, so try at 8 bit\n            wav += kwav22M8 - kwav22M16;\n            if (!FIn(wav, 0, kwavLim))\n                return fFalse;\n            if (FAILED(_pamix->Init(vwig.hinst, pvNil, &mixc, &amxc)))\n                return fFalse;\n        }\n#endif\n        if (FAILED(_pamix->Activate(fTrue)))\n            return fFalse;\n    }\n\n    _Suspend(_cactSuspend > 0 || !_fActive);\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Allocate a new audioman queue.\n***************************************************************************/\nPSNQUE SDAM::_PsnqueNew(void)\n{\n    AssertThis(0);\n\n    return AMQUE::PamqueNew();\n}\n\n/***************************************************************************\n    Activate or deactivate audioman.\n***************************************************************************/\nvoid SDAM::_Suspend(bool fSuspend)\n{\n    AssertThis(0);\n\n    if (fSuspend)\n        _pamix->SetMixerVolume(_luVolSys);\n\n    if (FAILED(_pamix->Suspend(fSuspend)) && !fSuspend)\n        PushErc(ercSndamWaveDeviceBusy);\n    else if (!fSuspend)\n    {\n        // becoming active\n        _pamix->GetMixerVolume(&_luVolSys);\n        vluSysVolFake = _luVolSys;\n        _pamix->SetMixerVolume(LuVolScale(_luVolSys, _vlm));\n    }\n}\n\n/***************************************************************************\n    Set the volume.\n***************************************************************************/\nvoid SDAM::SetVlm(long vlm)\n{\n    AssertThis(0);\n\n    if (_vlm != vlm)\n    {\n        _vlm = vlm;\n        if (_cactSuspend <= 0 && _fActive)\n            _pamix->SetMixerVolume(LuVolScale(_luVolSys, vlm));\n    }\n}\n\n/***************************************************************************\n    Get the current volume.\n***************************************************************************/\nlong SDAM::VlmCur(void)\n{\n    AssertThis(0);\n\n    return _vlm;\n}\n\n/***************************************************************************\n    Begin a synchronization group.\n***************************************************************************/\nvoid SDAM::BeginSynch(void)\n{\n    AssertThis(0);\n\n    if (0 == _cactGroup++)\n        _fGrouped = SUCCEEDED(_pamix->AllocGroup(&_luGroup));\n}\n\n/***************************************************************************\n    End a synchronization group.\n***************************************************************************/\nvoid SDAM::EndSynch(void)\n{\n    AssertThis(0);\n\n    if ((0 == --_cactGroup) && _fGrouped)\n    {\n        _pamix->StartGroup(_luGroup, fTrue);\n        _pamix->FreeGroup(_luGroup);\n        _fGrouped = fFalse;\n    }\n}\n"
  },
  {
    "path": "kauai/src/sndam.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Audioman sound support. Contains the audioman sound sink, audioman\n    channel and audioman cached sound classes.\n\n***************************************************************************/\n#ifndef SNDAM_H\n#define SNDAM_H\n\n// allowable formats for the audioman device\n// WARNING: code assumes that (kwav*16 - kwav*8) is constant!\nenum\n{\n    kwav11M8,\n    kwav22M8,\n    kwav44M8,\n    kwav11S8,\n    kwav22S8,\n    kwav44S8,\n    kwav11M16,\n    kwav22M16,\n    kwav44M16,\n    kwav11S16,\n    kwav22S16,\n    kwav44S16,\n    kwavLim\n};\n\n/***************************************************************************\n    Audioman sound device class.\n***************************************************************************/\ntypedef class SDAM *PSDAM;\n#define SDAM_PAR SNDMQ\n#define kclsSDAM 'SDAM'\nclass SDAM : public SDAM_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    ulong _luVolSys;\n    long _vlm;\n    bool _fAudioManInited : 1;\n\n    SDAM(void);\n    virtual bool _FInit(long wav);\n\n    // inherited methods\n    virtual PSNQUE _PsnqueNew(void);\n    virtual void _Suspend(bool fSuspend);\n\n  public:\n    static long vcbMaxMemWave;\n\n    static PSDAM PsdamNew(long wav);\n    ~SDAM(void);\n\n    virtual void SetVlm(long vlm);\n    virtual long VlmCur(void);\n    virtual void BeginSynch(void);\n    virtual void EndSynch(void);\n};\n\n#endif //! SNDAM_H\n"
  },
  {
    "path": "kauai/src/sndampri.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Private audioman sound device header file.\n\n***************************************************************************/\n#ifndef SNDAMPRI_H\n#define SNDAMPRI_H\n\n/***************************************************************************\n    IStream interface for a BLCK.\n***************************************************************************/\ntypedef class STBL *PSTBL;\n#define STBL_PAR IStream\nclass STBL : public STBL_PAR\n{\n    ASSERT\n    MARKMEM\n\n  protected:\n    long _cactRef;\n    long _ib;\n    BLCK _blck;\n\n    STBL(void);\n    ~STBL(void);\n\n  public:\n    // IUnknown methods\n    STDMETHODIMP QueryInterface(REFIID riid, void **ppv);\n    STDMETHODIMP_(ULONG) AddRef(void);\n    STDMETHODIMP_(ULONG) Release(void);\n\n    // IStream methods\n    STDMETHODIMP Read(void *pv, ULONG cb, ULONG *pcb);\n    STDMETHODIMP Write(VOID const *pv, ULONG cb, ULONG *pcb)\n    {\n        if (pvNil != pcb)\n            *pcb = 0;\n        return E_NOTIMPL;\n    }\n    STDMETHODIMP Seek(LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition);\n    STDMETHODIMP SetSize(ULARGE_INTEGER libNewSize)\n    {\n        return E_NOTIMPL;\n    }\n    STDMETHODIMP CopyTo(IStream *pStm, ULARGE_INTEGER cb, ULARGE_INTEGER *pcbRead, ULARGE_INTEGER *pcbWritten)\n    {\n        if (pvNil != pcbRead)\n            pcbRead->LowPart = pcbRead->HighPart = 0;\n        if (pvNil != pcbWritten)\n            pcbWritten->LowPart = pcbWritten->HighPart = 0;\n        return E_NOTIMPL;\n    }\n    STDMETHODIMP Commit(DWORD grfCommitFlags)\n    {\n        return E_NOTIMPL;\n    }\n    STDMETHODIMP Revert(void)\n    {\n        return E_NOTIMPL;\n    }\n    STDMETHODIMP LockRegion(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType)\n    {\n        return E_NOTIMPL;\n    }\n    STDMETHODIMP UnlockRegion(ULARGE_INTEGER libOffset, ULARGE_INTEGER cb, DWORD dwLockType)\n    {\n        return E_NOTIMPL;\n    }\n    STDMETHODIMP Stat(STATSTG *pstatstg, DWORD grfStatFlag)\n    {\n        return E_NOTIMPL;\n    }\n    STDMETHODIMP Clone(THIS_ IStream **ppstm)\n    {\n        *ppstm = pvNil;\n        return E_NOTIMPL;\n    }\n\n    static PSTBL PstblNew(FLO *pflo, bool fPacked);\n    long CbMem(void)\n    {\n        return size(STBL) + _blck.CbMem();\n    }\n    bool FInMemory(void)\n    {\n        return _blck.CbMem() > 0;\n    }\n};\n\n/***************************************************************************\n    Cached AudioMan Sound.\n***************************************************************************/\ntypedef class CAMS *PCAMS;\n#define CAMS_PAR BACO\n#define kclsCAMS 'CAMS'\nclass CAMS : public CAMS_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    // this is just so we can do a MarkMemObj on it while AudioMan has it\n    PSTBL _pstbl;\n\n    CAMS(void);\n\n  public:\n    ~CAMS(void);\n    static PCAMS PcamsNewLoop(PCAMS pcamsSrc, long cactPlay);\n\n    IAMSound *psnd; // the sound to use\n\n    static bool FReadCams(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb);\n    bool FInMemory(void)\n    {\n        return _pstbl->FInMemory();\n    }\n};\n\n/***************************************************************************\n    Notify sink class.\n***************************************************************************/\ntypedef class AMQUE *PAMQUE; // forward declaration\n\ntypedef class AMNOT *PAMNOT;\n#define AMNOT_PAR IAMNotifySink\nclass AMNOT : public AMNOT_PAR\n{\n    ASSERT\n\n  protected:\n    long _cactRef;\n    PAMQUE _pamque; // the amque to notify\n\n  public:\n    // IUnknown methods\n    STDMETHODIMP QueryInterface(REFIID riid, void **ppv);\n    STDMETHODIMP_(ULONG) AddRef(void);\n    STDMETHODIMP_(ULONG) Release(void);\n\n    // IAMNotifySink methods\n    STDMETHODIMP_(void) OnStart(LPSOUND pSound, DWORD dwPosition)\n    {\n    }\n    STDMETHODIMP_(void) OnCompletion(LPSOUND pSound, DWORD dwPosition);\n    STDMETHODIMP_(void) OnError(LPSOUND pSound, DWORD dwPosition, HRESULT hrError)\n    {\n    }\n    STDMETHODIMP_(void) OnSyncObject(LPSOUND pSound, DWORD dwPosition, void *pvObject)\n    {\n    }\n\n    AMNOT(void);\n    void Set(PAMQUE pamque);\n};\n\n/***************************************************************************\n    Audioman queue.\n***************************************************************************/\n#define AMQUE_PAR SNQUE\n#define kclsAMQUE 'amqu'\nclass AMQUE : public AMQUE_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    MUTX _mutx;         // restricts access to member variables\n    IAMChannel *_pchan; // the audioman channel\n    ulong _tsStart;     // when we started the current sound\n    AMNOT _amnot;       // notify sink\n\n    AMQUE(void);\n\n    virtual void _Enter(void);\n    virtual void _Leave(void);\n\n    virtual bool _FInit(void);\n    virtual PBACO _PbacoFetch(PRCA prca, CTG ctg, CNO cno);\n    virtual void _Queue(long isndinMin);\n    virtual void _PauseQueue(long isndinMin);\n    virtual void _ResumeQueue(long isndinMin);\n\n  public:\n    static PAMQUE PamqueNew(void);\n    ~AMQUE(void);\n\n    void Notify(LPSOUND psnd);\n};\n\n#endif //! SNDAMPRI_H\n"
  },
  {
    "path": "kauai/src/sndm.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Sound manager class implementation.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nRTCLASS(SNDV)\nRTCLASS(SNDM)\nRTCLASS(SNDMQ)\nRTCLASS(SNQUE)\n\nlong SNDV::_siiLast;\n\n/***************************************************************************\n    This is the volume to use as the system volume if it is determined\n    by a device that the system lies when asked what the current\n    volume setting is. Eg, for many drivers, midiOutGetVolume on Win95\n    always returns full volume. When we determine that this is the case,\n    we'll use this value instead. Any device that determines that its\n    reading is valid should set this so other devices can use the same\n    value.\n***************************************************************************/\nulong vluSysVolFake = (ulong)-1;\n\n/***************************************************************************\n    Start a synchronized group.\n***************************************************************************/\nvoid SNDV::BeginSynch(void)\n{\n}\n\n/***************************************************************************\n    End a synchronized group.\n***************************************************************************/\nvoid SNDV::EndSynch(void)\n{\n}\n\n/***************************************************************************\n    Constructor for the sound manager.\n***************************************************************************/\nSNDM::SNDM(void)\n{\n}\n\n/***************************************************************************\n    Destructor for the sound manager.\n***************************************************************************/\nSNDM::~SNDM(void)\n{\n    AssertBaseThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    if (pvNil != _pglsndmpe)\n    {\n        for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n        {\n            _pglsndmpe->Get(isndmpe, &sndmpe);\n            ReleasePpo(&sndmpe.psndv);\n        }\n        ReleasePpo(&_pglsndmpe);\n    }\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a SNDM.\n***************************************************************************/\nvoid SNDM::AssertValid(ulong grf)\n{\n    SNDM_PAR::AssertValid(0);\n    AssertPo(_pglsndmpe, 0);\n}\n\n/***************************************************************************\n    Mark memory for the SNDM.\n***************************************************************************/\nvoid SNDM::MarkMem(void)\n{\n    AssertValid(0);\n    long isndmpe;\n    SNDMPE sndmpe;\n\n    SNDM_PAR::MarkMem();\n    MarkMemObj(_pglsndmpe);\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        MarkMemObj(sndmpe.psndv);\n    }\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Create the sound manager.\n***************************************************************************/\nPSNDM SNDM::PsndmNew(void)\n{\n    PSNDM psndm;\n\n    if (pvNil == (psndm = NewObj SNDM))\n        return pvNil;\n\n    if (!psndm->_FInit())\n        ReleasePpo(&psndm);\n\n    AssertNilOrPo(psndm, 0);\n    return psndm;\n}\n\n/***************************************************************************\n    Initialize the sound manager.\n***************************************************************************/\nbool SNDM::_FInit(void)\n{\n    AssertBaseThis(0);\n\n    if (pvNil == (_pglsndmpe = GL::PglNew(size(SNDMPE))))\n        return fFalse;\n\n    _pglsndmpe->SetMinGrow(1);\n    _fActive = fTrue;\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Find the device that sounds of the given ctg are to be played on.\n***************************************************************************/\nbool SNDM::_FFindCtg(CTG ctg, SNDMPE *psndmpe, long *pisndmpe)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(psndmpe);\n    AssertNilOrVarMem(pisndmpe);\n    long isndmpe;\n    SNDMPE sndmpe;\n\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        if (sndmpe.ctg == ctg)\n        {\n            if (pvNil != psndmpe)\n                *psndmpe = sndmpe;\n            if (pvNil != pisndmpe)\n                *pisndmpe = isndmpe;\n            return fTrue;\n        }\n    }\n\n    TrashVar(psndmpe);\n    if (pvNil != pisndmpe)\n        *pisndmpe = _pglsndmpe->IvMac();\n    return fFalse;\n}\n\n/***************************************************************************\n    Add a device to the device map to handle the particular ctg.\n***************************************************************************/\nbool SNDM::FAddDevice(CTG ctg, PSNDV psndv)\n{\n    AssertThis(0);\n    AssertPo(psndv, 0);\n    SNDMPE sndmpe;\n    long isndmpe;\n    long cact;\n\n    psndv->AddRef();\n    if (_FFindCtg(ctg, &sndmpe, &isndmpe))\n    {\n        ReleasePpo(&sndmpe.psndv);\n        sndmpe.psndv = psndv;\n        _pglsndmpe->Put(isndmpe, &sndmpe);\n    }\n    else\n    {\n        sndmpe.ctg = ctg;\n        sndmpe.psndv = psndv;\n        if (!_pglsndmpe->FInsert(isndmpe, &sndmpe))\n        {\n            ReleasePpo(&psndv);\n            return fFalse;\n        }\n    }\n\n    psndv->Activate(_fActive);\n    for (cact = 0; cact < _cactSuspend; cact++)\n        psndv->Suspend(fTrue);\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the sound device that is registered for the given ctg.\n***************************************************************************/\nPSNDV SNDM::PsndvFromCtg(CTG ctg)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n\n    if (!_FFindCtg(ctg, &sndmpe))\n        return pvNil;\n\n    return sndmpe.psndv;\n}\n\n/***************************************************************************\n    Remove the sound device for the given ctg.\n***************************************************************************/\nvoid SNDM::RemoveSndv(CTG ctg)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    if (!_FFindCtg(ctg, &sndmpe, &isndmpe))\n        return;\n\n    _pglsndmpe->Delete(isndmpe);\n    ReleasePpo(&sndmpe.psndv);\n}\n\n/***************************************************************************\n    Return whether the sound manager is active.\n***************************************************************************/\nbool SNDM::FActive(void)\n{\n    AssertThis(0);\n\n    return _fActive;\n}\n\n/***************************************************************************\n    Activate or deactivate the sound manager.\n***************************************************************************/\nvoid SNDM::Activate(bool fActive)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    if (FPure(fActive) == FPure(_fActive))\n        return;\n\n    _fActive = FPure(fActive);\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        sndmpe.psndv->Activate(fActive);\n    }\n}\n\n/***************************************************************************\n    Suspend or resume the sound manager.\n***************************************************************************/\nvoid SNDM::Suspend(bool fSuspend)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    if (fSuspend)\n        _cactSuspend++;\n    else\n        _cactSuspend--;\n\n    Assert(_cactSuspend >= FPure(fSuspend), \"bad _cactSuspend\");\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        sndmpe.psndv->Suspend(fSuspend);\n    }\n}\n\n/***************************************************************************\n    Set the volume of all the devices.\n***************************************************************************/\nvoid SNDM::SetVlm(long vlm)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        sndmpe.psndv->SetVlm(vlm);\n    }\n}\n\n/***************************************************************************\n    Get the max of the volumes of all the devices.\n***************************************************************************/\nlong SNDM::VlmCur(void)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n    long vlm;\n\n    vlm = 0;\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        vlm = LwMax(vlm, sndmpe.psndv->VlmCur());\n    }\n\n    return vlm;\n}\n\n/***************************************************************************\n    Play the given sound.\n***************************************************************************/\nlong SNDM::SiiPlay(PRCA prca, CTG ctg, CNO cno, long sqn, long vlm, long cactPlay, ulong dtsStart, long spr, long scl)\n{\n    AssertThis(0);\n    AssertPo(prca, 0);\n    SNDMPE sndmpe;\n\n    if (!_FFindCtg(ctg, &sndmpe))\n        return _SiiAlloc();\n\n    return sndmpe.psndv->SiiPlay(prca, ctg, cno, sqn, vlm, cactPlay, dtsStart, spr, scl);\n}\n\n/***************************************************************************\n    Stop the given sound instance.\n***************************************************************************/\nvoid SNDM::Stop(long sii)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        sndmpe.psndv->Stop(sii);\n    }\n}\n\n/***************************************************************************\n    Stop all sounds of the given queue and class (one or both may be nil).\n***************************************************************************/\nvoid SNDM::StopAll(long sqn, long scl)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        sndmpe.psndv->StopAll(sqn, scl);\n    }\n}\n\n/***************************************************************************\n    Pause the given sound.\n***************************************************************************/\nvoid SNDM::Pause(long sii)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        sndmpe.psndv->Pause(sii);\n    }\n}\n\n/***************************************************************************\n    Pause all sounds of the given queue and class (one or both may be nil).\n***************************************************************************/\nvoid SNDM::PauseAll(long sqn, long scl)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        sndmpe.psndv->PauseAll(sqn, scl);\n    }\n}\n\n/***************************************************************************\n    Resume the given sound.\n***************************************************************************/\nvoid SNDM::Resume(long sii)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        sndmpe.psndv->Resume(sii);\n    }\n}\n\n/***************************************************************************\n    Resume all sounds of the given queue and class (one or both may be nil).\n***************************************************************************/\nvoid SNDM::ResumeAll(long sqn, long scl)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        sndmpe.psndv->ResumeAll(sqn, scl);\n    }\n}\n\n/***************************************************************************\n    Return whether the given sound is playing.\n***************************************************************************/\nbool SNDM::FPlaying(long sii)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        if (sndmpe.psndv->FPlaying(sii))\n            return fTrue;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Return whether any sounds of the given queue and class are playing\n    (one or both of (sqn, scl) may be nil).\n***************************************************************************/\nbool SNDM::FPlayingAll(long sqn, long scl)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        if (sndmpe.psndv->FPlayingAll(sqn, scl))\n            return fTrue;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Free anything that's no longer in use.\n***************************************************************************/\nvoid SNDM::Flush(void)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        sndmpe.psndv->Flush();\n    }\n}\n\n/***************************************************************************\n    Start a synchronized group.\n***************************************************************************/\nvoid SNDM::BeginSynch(void)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        sndmpe.psndv->BeginSynch();\n    }\n}\n\n/***************************************************************************\n    End a synchronized group.\n***************************************************************************/\nvoid SNDM::EndSynch(void)\n{\n    AssertThis(0);\n    SNDMPE sndmpe;\n    long isndmpe;\n\n    for (isndmpe = 0; isndmpe < _pglsndmpe->IvMac(); isndmpe++)\n    {\n        _pglsndmpe->Get(isndmpe, &sndmpe);\n        sndmpe.psndv->EndSynch();\n    }\n}\n\n/***************************************************************************\n    A convenient base class for a multiple queue sound device.\n***************************************************************************/\n\n/***************************************************************************\n    Destructor for a multiple queue sound device.\n***************************************************************************/\nSNDMQ::~SNDMQ(void)\n{\n    AssertBaseThis(0);\n    long isnqd;\n    SNQD snqd;\n\n    if (pvNil != _pglsnqd)\n    {\n        for (isnqd = 0; isnqd < _pglsnqd->IvMac(); isnqd++)\n        {\n            _pglsnqd->Get(isnqd, &snqd);\n            ReleasePpo(&snqd.psnque);\n        }\n        ReleasePpo(&_pglsnqd);\n    }\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a SNDMQ.\n***************************************************************************/\nvoid SNDMQ::AssertValid(ulong grf)\n{\n    SNDMQ_PAR::AssertValid(0);\n    AssertPo(_pglsnqd, 0);\n}\n\n/***************************************************************************\n    Mark memory for the SNDMQ.\n***************************************************************************/\nvoid SNDMQ::MarkMem(void)\n{\n    AssertValid(0);\n    long isnqd;\n    SNQD snqd;\n\n    SNDMQ_PAR::MarkMem();\n    MarkMemObj(_pglsnqd);\n    for (isnqd = 0; isnqd < _pglsnqd->IvMac(); isnqd++)\n    {\n        _pglsnqd->Get(isnqd, &snqd);\n        MarkMemObj(snqd.psnque);\n    }\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Initialize the multiple queue device.\n***************************************************************************/\nbool SNDMQ::_FInit(void)\n{\n    AssertBaseThis(0);\n\n    if (pvNil == (_pglsnqd = GL::PglNew(size(SNQD))))\n        return fFalse;\n\n    _fActive = fTrue;\n    AssertThis(0);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Ensure a queue exists for the given sqn and return it.\n***************************************************************************/\nbool SNDMQ::_FEnsureQueue(long sqn, SNQD *psnqd, long *pisnqd)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(psnqd);\n    AssertNilOrVarMem(pisnqd);\n\n    long isnqd, isnqdEmpty;\n    SNQD snqd;\n\n    isnqdEmpty = ivNil;\n    for (isnqd = _pglsnqd->IvMac(); isnqd-- > 0;)\n    {\n        _pglsnqd->Get(isnqd, &snqd);\n        if (snqd.sqn == sqn && sqn != ksqnNone)\n        {\n            // we found it\n            goto LFound;\n        }\n\n        if (ivNil == isnqdEmpty && !snqd.psnque->FPlayingAll())\n        {\n            // here's an empty queue\n            isnqdEmpty = isnqd;\n            if (sqn == ksqnNone)\n                break;\n        }\n    }\n\n    if (ivNil != (isnqd = isnqdEmpty))\n    {\n        _pglsnqd->Get(isnqd, &snqd);\n        snqd.sqn = sqn;\n        _pglsnqd->Put(isnqd, &snqd);\n        goto LFound;\n    }\n\n    snqd.sqn = sqn;\n    if (pvNil == (snqd.psnque = _PsnqueNew()) || !_pglsnqd->FAdd(&snqd, &isnqd))\n    {\n        ReleasePpo(&snqd.psnque);\n        TrashVar(psnqd);\n        TrashVar(pisnqd);\n        return fFalse;\n    }\n\nLFound:\n    if (pvNil != psnqd)\n        *psnqd = snqd;\n    if (pvNil != pisnqd)\n        *pisnqd = isnqd;\n    return fTrue;\n}\n\n/***************************************************************************\n    Return whether the device is active.\n***************************************************************************/\nbool SNDMQ::FActive(void)\n{\n    AssertThis(0);\n\n    return _fActive;\n}\n\n/***************************************************************************\n    Activate or deactivate the device.\n***************************************************************************/\nvoid SNDMQ::Activate(bool fActive)\n{\n    AssertThis(0);\n\n    if (FPure(fActive) == FPure(_fActive))\n        return;\n\n    _fActive = FPure(fActive);\n    _Suspend(_cactSuspend > 0 || !_fActive);\n}\n\n/***************************************************************************\n    Suspend or resume the device.\n***************************************************************************/\nvoid SNDMQ::Suspend(bool fSuspend)\n{\n    AssertThis(0);\n\n    if (fSuspend)\n        _cactSuspend++;\n    else\n        _cactSuspend--;\n\n    Assert(_cactSuspend >= FPure(fSuspend), \"bad _cactSuspend\");\n    _Suspend(_cactSuspend > 0 || !_fActive);\n}\n\n/***************************************************************************\n    Play the given sound.\n***************************************************************************/\nlong SNDMQ::SiiPlay(PRCA prca, CTG ctg, CNO cno, long sqn, long vlm, long cactPlay, ulong dtsStart, long spr, long scl)\n{\n    AssertThis(0);\n    AssertPo(prca, 0);\n    long isnqd;\n    SNQD snqd;\n    long sii = _SiiAlloc();\n\n    if (sqn == sqnNil)\n        sqn = ksqnNone;\n\n    if (_FEnsureQueue(sqn, &snqd, &isnqd))\n    {\n        snqd.psnque->Enqueue(sii, prca, ctg, cno, vlm, cactPlay, dtsStart, spr, scl);\n    }\n    else\n        Warn(\"couldn't allocate queue\");\n\n    return sii;\n}\n\n/***************************************************************************\n    Stop the given sound instance.\n***************************************************************************/\nvoid SNDMQ::Stop(long sii)\n{\n    AssertThis(0);\n    long isnqd;\n    SNQD snqd;\n\n    for (isnqd = 0; isnqd < _pglsnqd->IvMac(); isnqd++)\n    {\n        _pglsnqd->Get(isnqd, &snqd);\n        snqd.psnque->Stop(sii);\n    }\n}\n\n/***************************************************************************\n    Stop all sounds of the given queue and class (one or both may be nil).\n***************************************************************************/\nvoid SNDMQ::StopAll(long sqn, long scl)\n{\n    AssertThis(0);\n    long isnqd;\n    SNQD snqd;\n\n    for (isnqd = 0; isnqd < _pglsnqd->IvMac(); isnqd++)\n    {\n        _pglsnqd->Get(isnqd, &snqd);\n        if (sqnNil == sqn || snqd.sqn == sqn)\n            snqd.psnque->StopAll(scl);\n    }\n}\n\n/***************************************************************************\n    Pause the given sound.\n***************************************************************************/\nvoid SNDMQ::Pause(long sii)\n{\n    AssertThis(0);\n    long isnqd;\n    SNQD snqd;\n\n    for (isnqd = 0; isnqd < _pglsnqd->IvMac(); isnqd++)\n    {\n        _pglsnqd->Get(isnqd, &snqd);\n        snqd.psnque->Pause(sii);\n    }\n}\n\n/***************************************************************************\n    Pause all sounds of the given queue and class (one or both may be nil).\n***************************************************************************/\nvoid SNDMQ::PauseAll(long sqn, long scl)\n{\n    AssertThis(0);\n    long isnqd;\n    SNQD snqd;\n\n    for (isnqd = 0; isnqd < _pglsnqd->IvMac(); isnqd++)\n    {\n        _pglsnqd->Get(isnqd, &snqd);\n        if (sqnNil == sqn || snqd.sqn == sqn)\n            snqd.psnque->PauseAll(scl);\n    }\n}\n\n/***************************************************************************\n    Resume the given sound.\n***************************************************************************/\nvoid SNDMQ::Resume(long sii)\n{\n    AssertThis(0);\n    long isnqd;\n    SNQD snqd;\n\n    for (isnqd = 0; isnqd < _pglsnqd->IvMac(); isnqd++)\n    {\n        _pglsnqd->Get(isnqd, &snqd);\n        snqd.psnque->Resume(sii);\n    }\n}\n\n/***************************************************************************\n    Resume all sounds of the given queue and class (one or both may be nil).\n***************************************************************************/\nvoid SNDMQ::ResumeAll(long sqn, long scl)\n{\n    AssertThis(0);\n    long isnqd;\n    SNQD snqd;\n\n    for (isnqd = 0; isnqd < _pglsnqd->IvMac(); isnqd++)\n    {\n        _pglsnqd->Get(isnqd, &snqd);\n        if (sqnNil == sqn || snqd.sqn == sqn)\n            snqd.psnque->ResumeAll(scl);\n    }\n}\n\n/***************************************************************************\n    Return whether the given sound is playing.\n***************************************************************************/\nbool SNDMQ::FPlaying(long sii)\n{\n    AssertThis(0);\n    long isnqd;\n    SNQD snqd;\n\n    for (isnqd = 0; isnqd < _pglsnqd->IvMac(); isnqd++)\n    {\n        _pglsnqd->Get(isnqd, &snqd);\n        if (snqd.psnque->FPlaying(sii))\n            return fTrue;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Return whether any sounds of the given queue and class are playing\n    (one or both of (sqn, scl) may be nil).\n***************************************************************************/\nbool SNDMQ::FPlayingAll(long sqn, long scl)\n{\n    AssertThis(0);\n    long isnqd;\n    SNQD snqd;\n\n    for (isnqd = 0; isnqd < _pglsnqd->IvMac(); isnqd++)\n    {\n        _pglsnqd->Get(isnqd, &snqd);\n        if ((sqnNil == sqn || snqd.sqn == sqn) && snqd.psnque->FPlayingAll(scl))\n        {\n            return fTrue;\n        }\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Free anything that's no longer being used.\n***************************************************************************/\nvoid SNDMQ::Flush()\n{\n    AssertThis(0);\n    long isnqd;\n    SNQD snqd;\n\n    // Don't free the last channel\n    for (isnqd = _pglsnqd->IvMac(); isnqd-- > 0;)\n    {\n        _pglsnqd->Get(isnqd, &snqd);\n        snqd.psnque->Flush();\n        if (!snqd.psnque->FPlayingAll() && _pglsnqd->IvMac() > 1)\n        {\n            ReleasePpo(&snqd.psnque);\n            _pglsnqd->Delete(isnqd);\n        }\n    }\n}\n\n/***************************************************************************\n    Constructor for an sound queue.\n***************************************************************************/\nSNQUE::SNQUE(void)\n{\n}\n\n/***************************************************************************\n    Destructor for an sound queue.\n***************************************************************************/\nSNQUE::~SNQUE(void)\n{\n    AssertBaseThis(0);\n\n    _Enter();\n    if (pvNil != _pglsndin)\n    {\n        long isndin;\n        SNDIN sndin;\n\n        for (isndin = _pglsndin->IvMac(); isndin-- > 0;)\n        {\n            _pglsndin->Get(isndin, &sndin);\n            ReleasePpo(&sndin.pbaco);\n        }\n        ReleasePpo(&_pglsndin);\n    }\n    _Leave();\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a SNQUE.\n***************************************************************************/\nvoid SNQUE::AssertValid(ulong grf)\n{\n    SNQUE_PAR::AssertValid(0);\n\n    _Enter();\n    AssertPo(_pglsndin, 0);\n    AssertIn(_isndinCur, 0, _pglsndin->IvMac() + 1);\n    _Leave();\n}\n\n/***************************************************************************\n    Mark memory for the SNQUE.\n***************************************************************************/\nvoid SNQUE::MarkMem(void)\n{\n    AssertValid(0);\n    long isndin;\n    SNDIN sndin;\n\n    SNQUE_PAR::MarkMem();\n\n    _Enter();\n    MarkMemObj(_pglsndin);\n    for (isndin = 0; isndin < _pglsndin->IvMac(); isndin++)\n    {\n        _pglsndin->Get(isndin, &sndin);\n        MarkMemObj(sndin.pbaco);\n    }\n    _Leave();\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Initialize the sound queue. Allocate the _pglsndin.\n***************************************************************************/\nbool SNQUE::_FInit(void)\n{\n    AssertBaseThis(0);\n\n    if (pvNil == (_pglsndin = GL::PglNew(size(SNDIN))))\n        return fFalse;\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Enter any critical section that's necessary to ensure access to\n    member variables.\n***************************************************************************/\nvoid SNQUE::_Enter(void)\n{\n    AssertBaseThis(0);\n}\n\n/***************************************************************************\n    Leave any critical section that's necessary to ensure access to\n    member variables.\n***************************************************************************/\nvoid SNQUE::_Leave(void)\n{\n    AssertBaseThis(0);\n}\n\n/***************************************************************************\n    Free any sounds below _isndinCur.\n***************************************************************************/\nvoid SNQUE::_Flush(void)\n{\n    AssertThis(0);\n    SNDIN sndin;\n\n    _Enter();\n\n    while (_isndinCur > 0)\n    {\n        _isndinCur--;\n        _pglsndin->Get(_isndinCur, &sndin);\n        _pglsndin->Delete(_isndinCur);\n        ReleasePpo(&sndin.pbaco);\n    }\n\n    _Leave();\n}\n\n/***************************************************************************\n    Put the given sound on the queue.\n***************************************************************************/\nvoid SNQUE::Enqueue(long sii, PRCA prca, CTG ctg, CNO cno, long vlm, long cactPlay, ulong dtsStart, long spr, long scl)\n{\n    AssertThis(0);\n    AssertPo(prca, 0);\n    SNDIN sndin;\n    long isndin;\n\n    if (pvNil == (sndin.pbaco = _PbacoFetch(prca, ctg, cno)))\n        return;\n\n    _Enter();\n    _Flush();\n\n    sndin.sii = sii;\n    sndin.vlm = vlm;\n    sndin.cactPlay = cactPlay;\n    sndin.dtsStart = dtsStart;\n    sndin.spr = spr;\n    sndin.scl = scl;\n    sndin.cactPause = 0;\n    if (!_pglsndin->FAdd(&sndin, &isndin))\n    {\n        ReleasePpo(&sndin.pbaco);\n        _Leave();\n        return;\n    }\n\n    _Queue(isndin);\n\n    _Leave();\n}\n\n/***************************************************************************\n    Return the priority of the frontmost sound in the queue.\n***************************************************************************/\nlong SNQUE::SprCur(void)\n{\n    AssertThis(0);\n    SNDIN sndin;\n    long spr;\n\n    _Enter();\n    _Flush();\n\n    if (_pglsndin->IvMac() >= _isndinCur)\n        spr = klwMin;\n    else\n    {\n        _pglsndin->Get(_isndinCur, &sndin);\n        spr = sndin.spr;\n    }\n\n    _Leave();\n    return spr;\n}\n\n/***************************************************************************\n    If the given sound is in our queue, nuke it.\n***************************************************************************/\nvoid SNQUE::Stop(long sii)\n{\n    AssertThis(0);\n    long isndin;\n    SNDIN sndin;\n\n    _Enter();\n    _Flush();\n\n    for (isndin = _pglsndin->IvMac(); isndin-- > _isndinCur;)\n    {\n        _pglsndin->Get(isndin, &sndin);\n        if (sndin.sii == sii)\n        {\n            if (0 <= sndin.cactPause)\n            {\n                sndin.cactPause = -1;\n                _pglsndin->Put(isndin, &sndin);\n                _Queue(isndin);\n            }\n\n            _Leave();\n            return;\n        }\n    }\n\n    _Leave();\n}\n\n/***************************************************************************\n    Nuke all sounds of the given sound class. sclNil means nuke all.\n***************************************************************************/\nvoid SNQUE::StopAll(long scl)\n{\n    AssertThis(0);\n    long isndin;\n    SNDIN sndin;\n    long isndinMin = klwMax;\n\n    _Enter();\n    _Flush();\n\n    for (isndin = _pglsndin->IvMac(); isndin-- > _isndinCur;)\n    {\n        _pglsndin->Get(isndin, &sndin);\n        if (0 <= sndin.cactPause && (sclNil == scl || sndin.scl == scl))\n        {\n            sndin.cactPause = -1;\n            _pglsndin->Put(isndin, &sndin);\n            isndinMin = isndin;\n        }\n    }\n\n    if (isndinMin < klwMax)\n        _Queue(isndinMin);\n\n    _Leave();\n}\n\n/***************************************************************************\n    If the given sound is in our queue, pause it.\n***************************************************************************/\nvoid SNQUE::Pause(long sii)\n{\n    AssertThis(0);\n    long isndin;\n    SNDIN sndin;\n\n    _Enter();\n    _Flush();\n\n    for (isndin = _pglsndin->IvMac(); isndin-- > _isndinCur;)\n    {\n        _pglsndin->Get(isndin, &sndin);\n        if (sndin.sii == sii)\n        {\n            if (0 <= sndin.cactPause)\n            {\n                sndin.cactPause++;\n                _pglsndin->Put(isndin, &sndin);\n                if (1 == sndin.cactPause)\n                    _PauseQueue(isndin);\n            }\n\n            _Leave();\n            return;\n        }\n    }\n\n    _Leave();\n}\n\n/***************************************************************************\n    Pause all sounds of the given sound class. sclNil means nuke all.\n***************************************************************************/\nvoid SNQUE::PauseAll(long scl)\n{\n    AssertThis(0);\n    long isndin;\n    SNDIN sndin;\n    long isndinMin = klwMax;\n\n    _Enter();\n    _Flush();\n\n    for (isndin = _pglsndin->IvMac(); isndin-- > _isndinCur;)\n    {\n        _pglsndin->Get(isndin, &sndin);\n        if (0 <= sndin.cactPause && (sclNil == scl || sndin.scl == scl))\n        {\n            if (0 == sndin.cactPause++)\n                isndinMin = isndin;\n            _pglsndin->Put(isndin, &sndin);\n        }\n    }\n\n    if (isndinMin < klwMax)\n        _PauseQueue(isndinMin);\n\n    _Leave();\n}\n\n/***************************************************************************\n    If the given sound is in our queue, make sure it's not paused.\n***************************************************************************/\nvoid SNQUE::Resume(long sii)\n{\n    AssertThis(0);\n    long isndin;\n    SNDIN sndin;\n\n    _Enter();\n    _Flush();\n\n    for (isndin = _pglsndin->IvMac(); isndin-- > _isndinCur;)\n    {\n        _pglsndin->Get(isndin, &sndin);\n        if (sndin.sii == sii)\n        {\n            if (0 < sndin.cactPause)\n            {\n                sndin.cactPause--;\n                _pglsndin->Put(isndin, &sndin);\n                if (0 == sndin.cactPause)\n                    _ResumeQueue(isndin);\n            }\n\n            _Leave();\n            return;\n        }\n    }\n\n    _Leave();\n}\n\n/***************************************************************************\n    Resume all sounds of the given sound class. sclNil means nuke all.\n***************************************************************************/\nvoid SNQUE::ResumeAll(long scl)\n{\n    AssertThis(0);\n    long isndin;\n    SNDIN sndin;\n    long isndinMin = klwMax;\n\n    _Enter();\n    _Flush();\n\n    for (isndin = _pglsndin->IvMac(); isndin-- > _isndinCur;)\n    {\n        _pglsndin->Get(isndin, &sndin);\n        if (0 < sndin.cactPause && (sclNil == scl || sndin.scl == scl))\n        {\n            if (0 == --sndin.cactPause)\n                isndinMin = isndin;\n            _pglsndin->Put(isndin, &sndin);\n        }\n    }\n\n    if (isndinMin < klwMax)\n        _ResumeQueue(isndinMin);\n\n    _Leave();\n}\n\n/***************************************************************************\n    Return whether the given sound is in our queue.\n***************************************************************************/\nbool SNQUE::FPlaying(long sii)\n{\n    AssertThis(0);\n    long isndin;\n    SNDIN sndin;\n\n    _Enter();\n    _Flush();\n\n    for (isndin = _pglsndin->IvMac(); isndin-- > _isndinCur;)\n    {\n        _pglsndin->Get(isndin, &sndin);\n        if (sndin.sii == sii)\n        {\n            _Leave();\n            return 0 <= sndin.cactPause;\n        }\n    }\n\n    _Leave();\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Return whether any sounds of the given sound class are in our queue.\n    sclNil means any sounds at all.\n***************************************************************************/\nbool SNQUE::FPlayingAll(long scl)\n{\n    AssertThis(0);\n    long isndin;\n    SNDIN sndin;\n\n    _Enter();\n    _Flush();\n\n    for (isndin = _pglsndin->IvMac(); isndin-- > _isndinCur;)\n    {\n        _pglsndin->Get(isndin, &sndin);\n        if (0 <= sndin.cactPause && (sclNil == scl || sndin.scl == scl))\n        {\n            _Leave();\n            return fTrue;\n        }\n    }\n\n    _Leave();\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Free anything that's not being used. This should only be called from\n    the main thread.\n***************************************************************************/\nvoid SNQUE::Flush(void)\n{\n    AssertThis(0);\n\n    _Flush();\n}\n\n/***************************************************************************\n    Scale the given system volume by the given Kauai volume.\n***************************************************************************/\nulong LuVolScale(ulong luVol, long vlm)\n{\n    Assert(kvlmFull == 0x10000, \"this code assumes kvlmFull is 0x10000\");\n    ulong luHigh, luLow;\n    ushort suHigh, suLow;\n\n    MulLu(SuLow(luVol), vlm, &luHigh, &luLow);\n    suLow = (luHigh > 0) ? (ushort)(-1) : SuHigh(luLow);\n\n    MulLu(SuHigh(luVol), vlm, &luHigh, &luLow);\n    suHigh = (luHigh > 0) ? (ushort)(-1) : SuHigh(luLow);\n\n    return LuHighLow(suHigh, suLow);\n}\n"
  },
  {
    "path": "kauai/src/sndm.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Sound Management class for WAVE and MIDI support\n\n***************************************************************************/\n#ifndef SNDM_H\n#define SNDM_H\n\nconst long siiNil = 0;\nconst FTG kftgMidi = MacWin('MIDI', 'MID'); // REVIEW shonk: Mac: file type\nconst FTG kftgWave = MacWin('WAVE', 'WAV'); // REVIEW shonk: Mac: file type\n\n/***************************************************************************\n    Sound device - like audioman or our midi player.\n***************************************************************************/\ntypedef class SNDV *PSNDV;\n#define SNDV_PAR BASE\n#define kclsSNDV 'SNDV'\nclass SNDV : public SNDV_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    static long _siiLast;\n\n    static long _SiiAlloc(void)\n    {\n        return ++_siiLast;\n    }\n\n  public:\n    virtual bool FActive(void) = 0;\n    virtual void Activate(bool fActive) = 0; // boolean state\n    virtual void Suspend(bool fSuspend) = 0; // reference count\n    virtual void SetVlm(long vlm) = 0;\n    virtual long VlmCur(void) = 0;\n\n    virtual long SiiPlay(PRCA prca, CTG ctg, CNO cno, long sqn = ksqnNone, long vlm = kvlmFull, long cactPlay = 1,\n                         ulong dtsStart = 0, long spr = 0, long scl = sclNil) = 0;\n\n    virtual void Stop(long sii) = 0;\n    virtual void StopAll(long sqn = sqnNil, long scl = sclNil) = 0;\n\n    virtual void Pause(long sii) = 0;\n    virtual void PauseAll(long sqn = sqnNil, long scl = sclNil) = 0;\n\n    virtual void Resume(long sii) = 0;\n    virtual void ResumeAll(long sqn = sqnNil, long scl = sclNil) = 0;\n\n    virtual bool FPlaying(long sii) = 0;\n    virtual bool FPlayingAll(long sqn = sqnNil, long scl = sclNil) = 0;\n\n    virtual void Flush(void) = 0;\n    virtual void BeginSynch(void);\n    virtual void EndSynch(void);\n};\n\n/****************************************\n    Sound manager class\n****************************************/\ntypedef class SNDM *PSNDM;\n#define SNDM_PAR SNDV\n#define kclsSNDM 'SNDM'\nclass SNDM : public SNDM_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    struct SNDMPE\n    {\n        CTG ctg;\n        PSNDV psndv;\n    };\n\n    PGL _pglsndmpe; // sound type to device mapper\n\n    long _cactSuspend;  // nesting level for suspending\n    bool _fActive : 1;  // whether the app is active\n    bool _fFreeing : 1; // we're in the destructor\n\n    SNDM(void);\n    bool _FInit(void);\n    bool _FFindCtg(CTG ctg, SNDMPE *psndmpe, long *pisndmpe = pvNil);\n\n  public:\n    static PSNDM PsndmNew(void);\n    ~SNDM(void);\n\n    // new methods\n    virtual bool FAddDevice(CTG ctg, PSNDV psndv);\n    virtual PSNDV PsndvFromCtg(CTG ctg);\n    virtual void RemoveSndv(CTG ctg);\n\n    // inherited methods\n    virtual bool FActive(void);\n    virtual void Activate(bool fActive);\n    virtual void Suspend(bool fSuspend);\n    virtual void SetVlm(long vlm);\n    virtual long VlmCur(void);\n\n    virtual long SiiPlay(PRCA prca, CTG ctg, CNO cno, long sqn = ksqnNone, long vlm = kvlmFull, long cactPlay = 1,\n                         ulong dtsStart = 0, long spr = 0, long scl = sclNil);\n\n    virtual void Stop(long sii);\n    virtual void StopAll(long sqn = sqnNil, long scl = sclNil);\n\n    virtual void Pause(long sii);\n    virtual void PauseAll(long sqn = sqnNil, long scl = sclNil);\n\n    virtual void Resume(long sii);\n    virtual void ResumeAll(long sqn = sqnNil, long scl = sclNil);\n\n    virtual bool FPlaying(long sii);\n    virtual bool FPlayingAll(long sqn = sqnNil, long scl = sclNil);\n\n    virtual void Flush(void);\n    virtual void BeginSynch(void);\n    virtual void EndSynch(void);\n};\n\n/***************************************************************************\n    A useful base class for devices that support multiple queues.\n***************************************************************************/\ntypedef class SNQUE *PSNQUE;\n\ntypedef class SNDMQ *PSNDMQ;\n#define SNDMQ_PAR SNDV\n#define kclsSNDMQ 'snmq'\nclass SNDMQ : public SNDMQ_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    // queue descriptor\n    struct SNQD\n    {\n        PSNQUE psnque;\n        long sqn;\n    };\n\n    PGL _pglsnqd; // the queues\n\n    long _cactSuspend;\n    bool _fActive : 1;\n\n    virtual bool _FInit(void);\n    virtual bool _FEnsureQueue(long sqn, SNQD *psnqd, long *pisnqd);\n\n    virtual PSNQUE _PsnqueNew(void) = 0;\n    virtual void _Suspend(bool fSuspend) = 0;\n\n  public:\n    ~SNDMQ(void);\n\n    // inherited methods\n    virtual bool FActive(void);\n    virtual void Activate(bool fActive);\n    virtual void Suspend(bool fSuspend);\n\n    virtual long SiiPlay(PRCA prca, CTG ctg, CNO cno, long sqn = ksqnNone, long vlm = kvlmFull, long cactPlay = 1,\n                         ulong dtsStart = 0, long spr = 0, long scl = sclNil);\n\n    virtual void Stop(long sii);\n    virtual void StopAll(long sqn = sqnNil, long scl = sclNil);\n\n    virtual void Pause(long sii);\n    virtual void PauseAll(long sqn = sqnNil, long scl = sclNil);\n\n    virtual void Resume(long sii);\n    virtual void ResumeAll(long sqn = sqnNil, long scl = sclNil);\n\n    virtual bool FPlaying(long sii);\n    virtual bool FPlayingAll(long sqn = sqnNil, long scl = sclNil);\n\n    virtual void Flush(void);\n};\n\n/***************************************************************************\n    The sound instance structure.\n***************************************************************************/\nstruct SNDIN\n{\n    PBACO pbaco;    // the sound to play\n    long sii;       // the sound instance id\n    long vlm;       // volume to play at\n    long cactPlay;  // how many times to play\n    ulong dtsStart; // offset to start at\n    long spr;       // sound priority\n    long scl;       // sound class\n\n    // 0 means play, < 0 means skip, > 0 means pause\n    long cactPause;\n};\n\n/***************************************************************************\n    Sound queue for a SNDMQ\n***************************************************************************/\n#define SNQUE_PAR BASE\n#define kclsSNQUE 'snqu'\nclass SNQUE : public SNQUE_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PGL _pglsndin;   // the queue\n    long _isndinCur; // SNDIN that we should be playing\n\n    SNQUE(void);\n\n    virtual bool _FInit(void);\n    virtual void _Queue(long isndinMin) = 0;\n    virtual void _PauseQueue(long isndinMin) = 0;\n    virtual void _ResumeQueue(long isndinMin) = 0;\n    virtual PBACO _PbacoFetch(PRCA prca, CTG ctg, CNO cno) = 0;\n\n    virtual void _Enter(void);\n    virtual void _Leave(void);\n    virtual void _Flush(void);\n\n  public:\n    ~SNQUE(void);\n\n    void Enqueue(long sii, PRCA prca, CTG ctg, CNO cno, long vlm, long cactPlay, ulong dtsStart, long spr, long scl);\n\n    long SprCur(void);\n    void Stop(long sii);\n    void StopAll(long scl = sclNil);\n    void Pause(long sii);\n    void PauseAll(long scl = sclNil);\n    void Resume(long sii);\n    void ResumeAll(long scl = sclNil);\n    bool FPlaying(long sii);\n    bool FPlayingAll(long scl = sclNil);\n    void Flush(void);\n};\n\nextern ulong LuVolScale(ulong luVolSys, long vlm);\nextern ulong vluSysVolFake;\n\n#endif //! SNDM_H\n"
  },
  {
    "path": "kauai/src/spell.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Spell checker support using CSAPI compliant spell checkers.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nRTCLASS(SPLC)\n\n/***************************************************************************\n    Constructor for the spell checker.\n***************************************************************************/\nSPLC::SPLC(void)\n{\n}\n\n/***************************************************************************\n    Destructor for the spell checker.\n***************************************************************************/\nSPLC::~SPLC(void)\n{\n    AssertThis(0);\n\n    if (_fSplidValid)\n    {\n        if (_fMdrsValid)\n            SpellCloseMdr(_splid, &_mdrs);\n        if (_fUdrValid)\n            SpellCloseUdr(_splid, _udr, fTrue);\n        SpellTerminate(_splid, fTrue);\n    }\n\n#ifdef WIN\n    if (hNil != _hlib)\n        FreeLibrary(_hlib);\n#endif // WIN\n}\n\n/***************************************************************************\n    Static method to create a new spell checker.\n***************************************************************************/\nPSPLC SPLC::PsplcNew(SC_LID sclid, PSTN pstnCustom)\n{\n    PSPLC psplc;\n    AssertNilOrPo(pstnCustom, 0);\n\n    if (pvNil == (psplc = NewObj SPLC))\n        return pvNil;\n\n    if (!psplc->_FInit(sclid, pstnCustom))\n        ReleasePpo(&psplc);\n\n    AssertNilOrPo(psplc, 0);\n    return psplc;\n}\n\n/***************************************************************************\n    Initializes the spell checker - finds the dll, loads the default\n    dictionary.\n***************************************************************************/\nbool SPLC::_FInit(SC_LID sclid, PSTN pstnCustom)\n{\n    AssertThis(0);\n    AssertNilOrPo(pstnCustom, 0);\n\n    SC_WSC wsc;\n    FNI fni;\n\n    if (!_FEnsureDll(sclid))\n        return fFalse;\n\n    ClearPb(&wsc, size(wsc));\n    wsc.bHyphenHard = '-';\n    wsc.bEmDash = 151;\n    wsc.bEnDash = 150;\n    wsc.bEllipsis = 133;\n    wsc.rgParaBreak[0] = kchReturn;\n    Win(wsc.rgParaBreak[1] = kchLineFeed;)\n\n        if (secNOERRORS != SpellInit(&_splid, &wsc)) return fFalse;\n    _fSplidValid = fTrue;\n\n    if (!_FEnsureMainDict(sclid, &fni))\n        return fFalse;\n    if (pvNil != pstnCustom && !_FEnsureUserDict(pstnCustom, &fni))\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Find the spelling dll and link the functions we need.\n***************************************************************************/\nbool SPLC::_FEnsureDll(SC_LID sclid)\n{\n    AssertThis(0);\n\n#ifdef WIN\n    AssertVar(_hlib == hNil, \"why is _hlib not nil?\", &_hlib);\n\n    HKEY hkey;\n    long cb, lwType;\n    STN stn;\n    SZ sz;\n\n    stn.FFormatSz(PszLit(\"SOFTWARE\\\\Microsoft\\\\Shared Tools\\\\Proofing Tools\") PszLit(\"\\\\Spelling\\\\%d\\\\Normal\"), sclid);\n    if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_LOCAL_MACHINE, stn.Psz(), 0, KEY_QUERY_VALUE, &hkey))\n    {\n        goto LError;\n    }\n\n    if (ERROR_SUCCESS != RegQueryValueEx(hkey, PszLit(\"Engine\"), pvNil, (ulong *)&lwType, pvNil, (ulong *)&cb) ||\n        lwType != REG_SZ || cb >= size(sz) ||\n        ERROR_SUCCESS != RegQueryValueEx(hkey, PszLit(\"Engine\"), pvNil, (ulong *)&lwType, (byte *)sz, (ulong *)&cb))\n    {\n        RegCloseKey(hkey);\n        goto LError;\n    }\n    RegCloseKey(hkey);\n\n    if (hNil == (_hlib = LoadLibrary(sz)))\n        goto LError;\n\n    if (pvNil == (*(void **)&_pfnInit = (void *)GetProcAddress(_hlib, MIR(2))) ||\n        pvNil == (*(void **)&_pfnOptions = (void *)GetProcAddress(_hlib, MIR(3))) ||\n        pvNil == (*(void **)&_pfnCheck = (void *)GetProcAddress(_hlib, MIR(4))) ||\n        pvNil == (*(void **)&_pfnTerminate = (void *)GetProcAddress(_hlib, MIR(5))) ||\n        pvNil == (*(void **)&_pfnOpenMdr = (void *)GetProcAddress(_hlib, MIR(7))) ||\n        pvNil == (*(void **)&_pfnOpenUdr = (void *)GetProcAddress(_hlib, MIR(8))) ||\n        pvNil == (*(void **)&_pfnAddUdr = (void *)GetProcAddress(_hlib, MIR(9))) ||\n        pvNil == (*(void **)&_pfnAddChangeUdr = (void *)GetProcAddress(_hlib, MIR(10))) ||\n        pvNil == (*(void **)&_pfnClearUdr = (void *)GetProcAddress(_hlib, MIR(12))) ||\n        pvNil == (*(void **)&_pfnCloseMdr = (void *)GetProcAddress(_hlib, MIR(15))) ||\n        pvNil == (*(void **)&_pfnCloseUdr = (void *)GetProcAddress(_hlib, MIR(16))))\n    {\n        goto LError;\n    }\n\n    AssertThis(0);\n    return fTrue;\n\nLError:\n    PushErc(ercSpellNoDll);\n    return fFalse;\n\n#else  //! WIN\n    RawRtn(); // REVIEW shonk: Mac: implement _FEnsureDll\n    return fFalse;\n#endif //! WIN\n}\n\n/***************************************************************************\n    Find the main dictionary and load it\n***************************************************************************/\nbool SPLC::_FEnsureMainDict(SC_LID sclid, PFNI pfni)\n{\n    AssertThis(0);\n    AssertNilOrPo(pfni, 0);\n\n#ifdef WIN\n    HKEY hkey;\n    long cb, lwType;\n    STN stn;\n    SZ sz;\n\n    stn.FFormatSz(PszLit(\"SOFTWARE\\\\Microsoft\\\\Shared Tools\\\\Proofing Tools\") PszLit(\"\\\\Spelling\\\\%d\\\\Normal\"), sclid);\n    if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_LOCAL_MACHINE, stn.Psz(), 0, KEY_QUERY_VALUE, &hkey))\n    {\n        goto LError;\n    }\n\n    if (ERROR_SUCCESS != RegQueryValueEx(hkey, PszLit(\"Dictionary\"), pvNil, (ulong *)&lwType, pvNil, (ulong *)&cb) ||\n        lwType != REG_SZ || cb >= size(sz) ||\n        ERROR_SUCCESS != RegQueryValueEx(hkey, PszLit(\"Dictionary\"), pvNil, (ulong *)&lwType, (byte *)sz, (ulong *)&cb))\n    {\n        RegCloseKey(hkey);\n        goto LError;\n    }\n    RegCloseKey(hkey);\n\n    if (pvNil != pfni)\n    {\n        STN stn = sz;\n\n        if (!pfni->FBuildFromPath(&stn))\n            goto LError;\n    }\n\n    if (!_FLoadDictionary(sclid, sz, &_mdrs))\n        goto LError;\n    _fMdrsValid = fTrue;\n\n    AssertThis(0);\n    return fTrue;\n\nLError:\n    PushErc(ercSpellNoDict);\n    return fFalse;\n\n#else  //! WIN\n    RawRtn(); // REVIEW shonk: Mac: implement _FEnsureMainDict\n    return fFalse;\n#endif //! WIN\n}\n\n/***************************************************************************\n    Find the main dictionary and load it\n***************************************************************************/\nbool SPLC::_FEnsureUserDict(PSTN pstnCustom, PFNI pfniDef)\n{\n    AssertThis(0);\n    AssertPo(pstnCustom, 0);\n\n#ifdef WIN\n    HKEY hkey;\n    long cb, lwType;\n    SZ sz;\n    STN stn;\n    FNI fni;\n\n    if (ERROR_SUCCESS != RegOpenKeyEx(HKEY_LOCAL_MACHINE, PszLit(\"SOFTWARE\\\\Microsoft\\\\Shared Tools Location\"), 0,\n                                      KEY_QUERY_VALUE, &hkey))\n    {\n        goto LNoKey;\n    }\n\n    if (ERROR_SUCCESS != RegQueryValueEx(hkey, PszLit(\"PROOF\"), pvNil, (ulong *)&lwType, pvNil, (ulong *)&cb) ||\n        lwType != REG_SZ || cb >= size(sz) ||\n        ERROR_SUCCESS != RegQueryValueEx(hkey, PszLit(\"PROOF\"), pvNil, (ulong *)&lwType, (byte *)sz, (ulong *)&cb))\n    {\n        RegCloseKey(hkey);\n    LNoKey:\n        if (pvNil == pfniDef)\n            goto LError;\n        fni = *pfniDef;\n    }\n    else\n    {\n        RegCloseKey(hkey);\n\n        stn = sz;\n        if (!fni.FBuildFromPath(&stn, kftgDir))\n            goto LError;\n    }\n\n    if (!fni.FSetLeaf(pstnCustom, kftgDictionary))\n        goto LError;\n    fni.GetStnPath(&stn);\n    if (!_FLoadUserDictionary(stn.Psz(), &_udr, fTrue))\n        goto LError;\n    _fUdrValid = fTrue;\n\n    AssertThis(0);\n    return fTrue;\n\nLError:\n    PushErc(ercSpellNoUserDict);\n    return fFalse;\n\n#else  //! WIN\n    RawRtn(); // REVIEW shonk: Mac: implement _FEnsureUserDict\n    return fFalse;\n#endif //! WIN\n}\n\n/***************************************************************************\n    Load a particular dictionary given its path.\n***************************************************************************/\nbool SPLC::_FLoadDictionary(SC_LID sclid, PSZ psz, SC_MDRS *pmdrs)\n{\n    AssertThis(0);\n    AssertSz(psz);\n    AssertVarMem(pmdrs);\n\n    if (!_fSplidValid)\n    {\n        Bug(\"spell checker not initialized\");\n        return fFalse;\n    }\n\n    if (secNOERRORS != SpellOpenMdr(_splid, psz, pvNil, fFalse, fTrue, sclid, pmdrs))\n    {\n        return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Load a particular user dictionary given its path.\n***************************************************************************/\nbool SPLC::_FLoadUserDictionary(PSZ psz, SC_UDR *pudr, bool fCreate)\n{\n    AssertThis(0);\n    AssertSz(psz);\n    AssertVarMem(pudr);\n    SC_BOOL fReadOnly;\n\n    if (!_fSplidValid)\n    {\n        Bug(\"spell checker not initialized\");\n        return fFalse;\n    }\n\n    if (secNOERRORS != SpellOpenUdr(_splid, psz, FPure(fCreate), IgnoreAlwaysProp, pudr, &fReadOnly))\n    {\n        return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Set spelling options.\n***************************************************************************/\nbool SPLC::FSetOptions(ulong grfsplc)\n{\n    AssertThis(0);\n\n    if (!_fSplidValid)\n    {\n        Bug(\"spell checker not initialized\");\n        return fFalse;\n    }\n\n    if (secNOERRORS != SpellOptions(_splid, grfsplc))\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Check the spelling of stuff in the given buffer.\n***************************************************************************/\nbool SPLC::FCheck(achar *prgch, long cch, long *pichMinBad, long *pichLimBad, PSTN pstnReplace, long *pscrs)\n{\n    AssertThis(0);\n    AssertIn(cch, 0, ksuMax);\n    AssertPvCb(prgch, cch * size(achar));\n    AssertVarMem(pichMinBad);\n    AssertVarMem(pichLimBad);\n    AssertPo(pstnReplace, 0);\n    AssertVarMem(pscrs);\n\n    SC_SIB sib;\n    SC_SRB srb;\n    SC_SEC sec;\n    SZ sz;\n    byte bRate;\n\n    pstnReplace->SetNil();\n    *pichMinBad = *pichLimBad = cch;\n    if (!_fSplidValid)\n    {\n        Bug(\"spell checker not initialized\");\n        return fFalse;\n    }\n\n    ClearPb(&sib, size(sib));\n    sib.cch = (ushort)cch;\n    sib.lrgch = prgch;\n    sib.cMdr = 1;\n    sib.lrgMdr = &_mdrs.mdr;\n    if (_fUdrValid)\n    {\n        sib.cUdr = 1;\n        sib.lrgUdr = &_udr;\n    }\n\n    ClearPb(&srb, size(srb));\n    srb.lrgsz = sz;\n    srb.cch = size(sz) / size(achar);\n    srb.lrgbRating = &bRate;\n    srb.cbRate = 1;\n\n    sec = SpellCheck(_splid, sccVerifyBuffer, &sib, &srb);\n\n    if (sec != secNOERRORS)\n        return fFalse;\n\n    *pscrs = srb.scrs;\n    switch (srb.scrs)\n    {\n    case scrsNoErrors:\n        return fTrue;\n\n    case scrsReturningChangeAlways:\n    case scrsReturningChangeOnce:\n        *pstnReplace = srb.lrgsz;\n        break;\n    }\n\n    *pichMinBad = srb.ichError;\n    *pichLimBad = srb.ichError + srb.cchError;\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the istn'th suggestion for the given word.\n***************************************************************************/\nbool SPLC::FSuggest(achar *prgch, long cch, bool fFirst, PSTN pstn)\n{\n    AssertThis(0);\n    AssertIn(cch, 1, ksuMax);\n    AssertPvCb(prgch, cch * size(achar));\n    AssertPo(pstn, 0);\n\n    SC_SIB sib;\n    SC_SRB srb;\n    SC_SEC sec;\n    SC_CC sccc;\n\n    pstn->SetNil();\n    if (!_fSplidValid)\n    {\n        Bug(\"spell checker not initialized\");\n        return fFalse;\n    }\n\n    if (!fFirst && _ichSuggest < CvFromRgv(_rgchSuggest) && _rgchSuggest[_ichSuggest] != 0)\n    {\n        // have another suggestion in the buffer\n        *pstn = _rgchSuggest + _ichSuggest;\n        _ichSuggest += CchSz(_rgchSuggest + _ichSuggest) + 1;\n        return fTrue;\n    }\n\n    ClearPb(&sib, size(sib));\n    sib.cch = (ushort)cch;\n    sib.lrgch = prgch;\n    sib.cMdr = 1;\n    sib.lrgMdr = &_mdrs.mdr;\n    if (_fUdrValid)\n    {\n        sib.cUdr = 1;\n        sib.lrgUdr = &_udr;\n    }\n\n    ClearPb(&srb, size(srb));\n    srb.lrgsz = _rgchSuggest;\n    srb.cch = CvFromRgv(_rgchSuggest);\n\n    _ichSuggest = 0;\n    sccc = fFirst ? sccSuggest : sccSuggestMore;\n    for (;; sccc = sccSuggestMore)\n    {\n        ClearPb(_rgchSuggest, size(_rgchSuggest));\n\n        sec = SpellCheck(_splid, sccc, &sib, &srb);\n        if (sec != secNOERRORS)\n        {\n            // invalidate the buffer\n            _ichSuggest = CvFromRgv(_rgchSuggest);\n            return fFalse;\n        }\n\n        switch (srb.scrs)\n        {\n        case scrsNoMoreSuggestions:\n            // invalidate the buffer\n            _ichSuggest = CvFromRgv(_rgchSuggest);\n            return fFalse;\n\n        default:\n            if (srb.csz > 0)\n            {\n                *pstn = _rgchSuggest;\n                _ichSuggest = CchSz(_rgchSuggest) + 1;\n                return fTrue;\n            }\n            break;\n        }\n    }\n}\n\n/***************************************************************************\n    Add this word to the ignore all list.\n***************************************************************************/\nbool SPLC::FIgnoreAll(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    if (!_fSplidValid)\n    {\n        Bug(\"spell checker not initialized\");\n        return fFalse;\n    }\n\n    return secNOERRORS == SpellAddUdr(_splid, udrIgnoreAlways, pstn->Psz());\n}\n\n/***************************************************************************\n    Add this word pair to the change once list.\n***************************************************************************/\nbool SPLC::FChange(PSTN pstnSrc, PSTN pstnDst, bool fAll)\n{\n    AssertThis(0);\n    AssertPo(pstnSrc, 0);\n    AssertPo(pstnDst, 0);\n\n    if (!_fSplidValid)\n    {\n        Bug(\"spell checker not initialized\");\n        return fFalse;\n    }\n\n    return secNOERRORS ==\n           SpellAddChangeUdr(_splid, fAll ? udrChangeAlways : udrChangeOnce, pstnSrc->Psz(), pstnDst->Psz());\n}\n\n/***************************************************************************\n    Add this word pair to the user dictionary.\n***************************************************************************/\nbool SPLC::FAddToUser(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    if (!_fUdrValid)\n    {\n        Bug(\"user dictionary not loaded\");\n        return fFalse;\n    }\n\n    return secNOERRORS == SpellAddUdr(_splid, _udr, pstn->Psz());\n}\n\n/***************************************************************************\n    Add this word to the ignore all list.\n***************************************************************************/\nvoid SPLC::FlushIgnoreList(void)\n{\n    AssertThis(0);\n\n    if (!_fSplidValid)\n    {\n        Bug(\"spell checker not initialized\");\n        return;\n    }\n\n    SpellClearUdr(_splid, udrIgnoreAlways);\n}\n\n/***************************************************************************\n    Add this word pair to the change once list.\n***************************************************************************/\nvoid SPLC::FlushChangeList(bool fAll)\n{\n    AssertThis(0);\n\n    if (!_fSplidValid)\n    {\n        Bug(\"spell checker not initialized\");\n        return;\n    }\n\n    SpellClearUdr(_splid, fAll ? udrChangeAlways : udrChangeOnce);\n}\n\n/***************************************************************************\n    These are the stubs for the dll entry points.\n***************************************************************************/\n#ifdef WIN\n/***************************************************************************\n    Stub for SpellInit\n***************************************************************************/\nSC_SEC SPLC::SpellInit(SC_SPLID *psplid, SC_WSC *pwsc)\n{\n    AssertThis(0);\n\n    if (pvNil == _pfnInit)\n    {\n        Bug(\"nil _pfnInit\");\n        return secModuleError;\n    }\n\n    return (*_pfnInit)(psplid, pwsc);\n}\n\n/***************************************************************************\n    Stub for SpellOptions\n***************************************************************************/\nSC_SEC SPLC::SpellOptions(SC_SPLID splid, long grfso)\n{\n    AssertThis(0);\n\n    if (pvNil == _pfnOptions)\n    {\n        Bug(\"nil _pfnOptions\");\n        return secModuleError;\n    }\n\n    return (*_pfnOptions)(splid, grfso);\n}\n\n/***************************************************************************\n    Stub for SpellCheck\n***************************************************************************/\nSC_SEC SPLC::SpellCheck(SC_SPLID splid, SC_CC sccc, LPSC_SIB psib, LPSC_SRB psrb)\n{\n    AssertThis(0);\n\n    if (pvNil == _pfnCheck)\n    {\n        Bug(\"nil _pfnCheck\");\n        return secModuleError;\n    }\n\n    return (*_pfnCheck)(splid, sccc, psib, psrb);\n}\n\n/***************************************************************************\n    Stub for SpellTerminate\n***************************************************************************/\nSC_SEC SPLC::SpellTerminate(SC_SPLID splid, SC_BOOL fForce)\n{\n    AssertThis(0);\n\n    if (pvNil == _pfnTerminate)\n    {\n        Bug(\"nil _pfnTerminate\");\n        return secModuleError;\n    }\n\n    return (*_pfnTerminate)(splid, fForce);\n}\n\n/***************************************************************************\n    Stub for SpellOpenMdr\n***************************************************************************/\nSC_SEC SPLC::SpellOpenMdr(SC_SPLID splid, LPSC_PATH ppath, LPSC_PATH ppathExclude, SC_BOOL fCreateExclude,\n                          SC_BOOL fCache, SC_LID sclidExpected, LPSC_MDRS pmdrs)\n{\n    AssertThis(0);\n\n    if (pvNil == _pfnOpenMdr)\n    {\n        Bug(\"nil _pfnOpenMdr\");\n        return secModuleError;\n    }\n\n    return (*_pfnOpenMdr)(splid, ppath, ppathExclude, fCreateExclude, fCache, sclidExpected, pmdrs);\n}\n\n/***************************************************************************\n    Stub for SpellOpenUdr\n***************************************************************************/\nSC_SEC SPLC::SpellOpenUdr(SC_SPLID splid, LPSC_PATH ppath, SC_BOOL fCreate, SC_WORD udrprop, SC_UDR *pudr,\n                          SC_BOOL *pfReadOnly)\n{\n    AssertThis(0);\n\n    if (pvNil == _pfnOpenUdr)\n    {\n        Bug(\"nil _pfnOpenUdr\");\n        return secModuleError;\n    }\n\n    return (*_pfnOpenUdr)(splid, ppath, fCreate, udrprop, pudr, pfReadOnly);\n}\n\n/***************************************************************************\n    Add a word to the given user dictionary\n***************************************************************************/\nSC_SEC SPLC::SpellAddUdr(SC_SPLID splid, SC_UDR udr, SC_CHAR *pszAdd)\n{\n    AssertThis(0);\n\n    if (pvNil == _pfnAddUdr)\n    {\n        Bug(\"nil _pfnAddUdr\");\n        return secModuleError;\n    }\n\n    return (*_pfnAddUdr)(splid, udr, pszAdd);\n}\n\n/***************************************************************************\n    Add a word pair to the given user dictionary\n***************************************************************************/\nSC_SEC SPLC::SpellAddChangeUdr(SC_SPLID splid, SC_UDR udr, SC_CHAR *pszAdd, SC_CHAR *pszChange)\n{\n    AssertThis(0);\n\n    if (pvNil == _pfnAddChangeUdr)\n    {\n        Bug(\"nil _pfnAddChangeUdr\");\n        return secModuleError;\n    }\n\n    return (*_pfnAddChangeUdr)(splid, udr, pszAdd, pszChange);\n}\n\n/***************************************************************************\n    Stub for SpellClearUdr\n***************************************************************************/\nSC_SEC SPLC::SpellClearUdr(SC_SPLID splid, SC_UDR udr)\n{\n    AssertThis(0);\n\n    if (pvNil == _pfnClearUdr)\n    {\n        Bug(\"nil _pfnClearUdr\");\n        return secModuleError;\n    }\n\n    return (*_pfnClearUdr)(splid, udr);\n}\n\n/***************************************************************************\n    Stub for SpellCloseMdr\n***************************************************************************/\nSC_SEC SPLC::SpellCloseMdr(SC_SPLID splid, LPSC_MDRS pmdrs)\n{\n    AssertThis(0);\n\n    if (pvNil == _pfnCloseMdr)\n    {\n        Bug(\"nil _pfnCloseMdr\");\n        return secModuleError;\n    }\n\n    return (*_pfnCloseMdr)(splid, pmdrs);\n}\n\n/***************************************************************************\n    Stub for SpellCloseUdr\n***************************************************************************/\nSC_SEC SPLC::SpellCloseUdr(SC_SPLID splid, SC_UDR udr, SC_BOOL fForce)\n{\n    AssertThis(0);\n\n    if (pvNil == _pfnCloseUdr)\n    {\n        Bug(\"nil _pfnCloseUdr\");\n        return secModuleError;\n    }\n\n    return (*_pfnCloseUdr)(splid, udr, fForce);\n}\n#endif // WIN\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a SPLC.\n***************************************************************************/\nvoid SPLC::AssertValid(ulong grf)\n{\n    SPLC_PAR::AssertValid(0);\n}\n\n/***************************************************************************\n    Mark memory for the SPLC.\n***************************************************************************/\nvoid SPLC::MarkMem(void)\n{\n    AssertValid(0);\n    SPLC_PAR::MarkMem();\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/spell.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Spell checker support using CSAPI compliant spell checkers.\n\n***************************************************************************/\n#ifndef SPELL_H\n#define SPELL_H\n\n// REVIEW shonk: dictionary type on Mac\nconst FTG kftgDictionary = MacWin('DICT', 'DIC');\n\n// include the standard spell checker API header\n#ifdef WIN\n#define NT\n#endif // WIN\n\nextern \"C\"\n{\n#include \"csapi.h\"\n};\n\nenum\n{\n    fsplcNil = 0,\n    fsplcSuggestFromUserDict = soSuggestFromUserDict,\n    fsplcIgnoreAllCaps = soIgnoreAllCaps,\n    fsplcIgnoreMixedDigits = soIgnoreMixedDigits,\n    fsplcIgnoreRomanNumerals = soIgnoreRomanNumerals,\n    fsplcFindUncappedSentences = soFindUncappedSentences,\n    fsplcFindMissingSpaces = soFindMissingSpaces,\n    fsplcFindRepeatWord = soFindRepeatWord,\n    fsplcFindExtraSpaces = soFindExtraSpaces,\n    fsplcFindSpacesBeforePunc = soFindSpacesBeforePunc,\n    fsplcFindSpacesAfterPunc = soFindSpacesAfterPunc,\n    fsplcFindInitialNumerals = soFindInitialNumerals,\n    fsplcQuickSuggest = soQuickSuggest,\n    fsplcUseAllOpenUdr = soUseAllOpenUdr,\n    fsplcSglStepSugg = soSglStepSugg,\n    fsplcIgnoreSingleLetter = soIgnoreSingleLetter,\n};\n\ntypedef class SPLC *PSPLC;\n#define SPLC_PAR BASE\n#define kclsSPLC 'SPLC'\nclass SPLC : public SPLC_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    bool _fSplidValid : 1;\n    bool _fMdrsValid : 1;\n    bool _fUdrValid : 1;\n    ulong _splid;\n    SC_MDRS _mdrs;\n    SC_UDR _udr;\n\n    achar _rgchSuggest[512];\n    long _ichSuggest;\n\n#ifdef WIN\n    HINSTANCE _hlib;\n\n    SC_SEC(__cdecl *_pfnInit)(SC_SPLID *psplid, SC_WSC *pwsc);\n    SC_SEC(__cdecl *_pfnOptions)(SC_SPLID splid, long grfso);\n    SC_SEC(__cdecl *_pfnCheck)(SC_SPLID splid, SC_CC sccc, LPSC_SIB psib, LPSC_SRB psrb);\n    SC_SEC(__cdecl *_pfnTerminate)(SC_SPLID splid, SC_BOOL fForce);\n    SC_SEC(__cdecl *_pfnOpenMdr)\n    (SC_SPLID splid, LPSC_PATH ppath, LPSC_PATH ppathExclude, SC_BOOL fCreateExclude, SC_BOOL fCache,\n     SC_LID lidExpected, LPSC_MDRS pmdrs);\n    SC_SEC(__cdecl *_pfnOpenUdr)\n    (SC_SPLID splid, LPSC_PATH ppath, SC_BOOL fCreate, SC_WORD udrprop, SC_UDR *pudr, SC_BOOL *pfReadOnly);\n    SC_SEC(__cdecl *_pfnAddUdr)(SC_SPLID splid, SC_UDR udr, SC_CHAR *pszAdd);\n    SC_SEC(__cdecl *_pfnAddChangeUdr)(SC_SPLID splid, SC_UDR udr, SC_CHAR *pszAdd, SC_CHAR *pszChange);\n    SC_SEC(__cdecl *_pfnClearUdr)(SC_SPLID splid, SC_UDR udr);\n    SC_SEC(__cdecl *_pfnCloseMdr)(SC_SPLID splid, LPSC_MDRS pmdrs);\n    SC_SEC(__cdecl *_pfnCloseUdr)(SC_SPLID splid, SC_UDR udr, SC_BOOL fForce);\n\n    // SC_SEC SpellVer(SC_WORD *pwVer, SC_WORD *pwEngine, SC_WORD *pwType);\n    SC_SEC SpellInit(SC_SPLID *psplid, SC_WSC *pwsc);\n    SC_SEC SpellOptions(SC_SPLID splid, long grfso);\n    SC_SEC SpellCheck(SC_SPLID splid, SC_CC sccc, LPSC_SIB psib, LPSC_SRB psrb);\n    SC_SEC SpellTerminate(SC_SPLID splid, SC_BOOL fForce);\n    // SC_SEC SpellVerifyMdr(LPSC_PATH ppath, SC_LID lidExpected, SC_LID *plid);\n    SC_SEC SpellOpenMdr(SC_SPLID splid, LPSC_PATH ppath, LPSC_PATH ppathExclude, SC_BOOL fCreateExclude, SC_BOOL fCache,\n                        SC_LID lidExpected, LPSC_MDRS pmdrs);\n    SC_SEC SpellOpenUdr(SC_SPLID splid, LPSC_PATH ppath, SC_BOOL fCreate, SC_WORD udrprop, SC_UDR *pudr,\n                        SC_BOOL *pfReadOnly);\n    SC_SEC SpellAddUdr(SC_SPLID splid, SC_UDR udr, SC_CHAR *pszAdd);\n    SC_SEC SpellAddChangeUdr(SC_SPLID splid, SC_UDR udr, SC_CHAR *pszAdd, SC_CHAR *pszChange);\n    // SC_SEC SpellDelUdr(SC_SPLID splid, SC_UDR udr, SC_CHAR *pszDel);\n    SC_SEC SpellClearUdr(SC_SPLID splid, SC_UDR udr);\n    // SC_SEC SpellGetSizeUdr(SC_SPLID splid, SC_UDR udr, int *pcsz);\n    // SC_SEC SpellGetListUdr(SC_SPLID splid, SC_UDR udr, SC_WORD iszStart,\n    //\tLPSC_SRB psrb);\n    SC_SEC SpellCloseMdr(SC_SPLID splid, LPSC_MDRS pmdrs);\n    SC_SEC SpellCloseUdr(SC_SPLID splid, SC_UDR udr, SC_BOOL fForce);\n#endif // WIN\n\n    SPLC(void);\n    virtual bool _FInit(SC_LID sclid, PSTN pstnCustom = pvNil);\n    virtual bool _FEnsureDll(SC_LID sclid);\n    virtual bool _FEnsureMainDict(SC_LID sclid, PFNI pfniDic = pvNil);\n    virtual bool _FEnsureUserDict(PSTN pstnCustom, PFNI pfniDef = pvNil);\n    virtual bool _FLoadDictionary(SC_LID sclid, PSZ psz, SC_MDRS *pmdrs);\n    virtual bool _FLoadUserDictionary(PSZ psz, SC_UDR *pudr, bool fCreate = fFalse);\n\n  public:\n    ~SPLC(void);\n    static PSPLC PsplcNew(SC_LID sclid, PSTN pstnCustom = pvNil);\n\n    virtual bool FSetOptions(ulong grfsplc);\n    virtual bool FCheck(achar *prgch, long cch, long *pichMinBad, long *pichLimBad, PSTN pstn, long *pscrs);\n    virtual bool FSuggest(achar *prgch, long cch, bool fFirst, PSTN pstn);\n\n    virtual bool FIgnoreAll(PSTN pstn);\n    virtual bool FChange(PSTN pstnSrc, PSTN pstnDst, bool fAll);\n    virtual bool FAddToUser(PSTN pstn);\n\n    virtual void FlushIgnoreList(void);\n    virtual void FlushChangeList(bool fAll);\n};\n\n#endif //! SPELL_H\n"
  },
  {
    "path": "kauai/src/stream.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Stream classes.  BSM is totally in memory.  BSF allows a stream\n    to have pieces in files and other pieces in memory.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\n// min size of initial piece on file\nconst long kcbMinFloFile = 2048;\n\nRTCLASS(BSM)\nRTCLASS(BSF)\n\n/***************************************************************************\n    Constructor for an in-memory byte stream.\n***************************************************************************/\nBSM::BSM(void)\n{\n    _hqrgb = hqNil;\n    _ibMac = 0;\n    _cbMinGrow = 0;\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    Destructor for an in-memory byte stream.\n***************************************************************************/\nBSM::~BSM(void)\n{\n    AssertThis(fobjAssertFull);\n\n    FreePhq(&_hqrgb);\n}\n\n/***************************************************************************\n    Set the amount to grow by.\n***************************************************************************/\nvoid BSM::SetMinGrow(long cb)\n{\n    AssertThis(0);\n    AssertIn(cb, 0, kcbMax);\n\n    _cbMinGrow = cb;\n}\n\n/***************************************************************************\n    Make sure there is at least cb bytes of space.  If fShrink is true,\n    the amount of memory allocated by the BSM may decrease.\n***************************************************************************/\nbool BSM::FEnsureSpace(long cb, bool fShrink)\n{\n    AssertThis(0);\n\n    return _FEnsureSize(_ibMac + cb, fShrink);\n}\n\n/***************************************************************************\n    Return a locked pointer into the byte stream.  The stream is stored\n    contiguously.\n***************************************************************************/\nvoid *BSM::PvLock(long ib)\n{\n    AssertThis(0);\n    AssertIn(ib, 0, _ibMac + 1);\n\n    if (hqNil == _hqrgb)\n        return pvNil;\n    return PvAddBv(PvLockHq(_hqrgb), ib);\n}\n\n/***************************************************************************\n    Unlock the stream.\n***************************************************************************/\nvoid BSM::Unlock(void)\n{\n    AssertThis(0);\n\n    if (hqNil != _hqrgb)\n        UnlockHq(_hqrgb);\n}\n\n/***************************************************************************\n    Fetch some bytes from the stream.\n***************************************************************************/\nvoid BSM::FetchRgb(long ib, long cb, void *prgb)\n{\n    AssertThis(0);\n    AssertIn(ib, 0, _ibMac + 1);\n    AssertIn(cb, 0, _ibMac + 1 - ib);\n    AssertPvCb(prgb, cb);\n\n    if (cb > 0)\n        CopyPb(PvAddBv(QvFromHq(_hqrgb), ib), prgb, cb);\n}\n\n/***************************************************************************\n    Replace the range [ib,ib + cbDel) with cbIns bytes from prgb.  If cbIns\n    is zero, prgb may be nil.\n***************************************************************************/\nbool BSM::FReplace(void *prgb, long cbIns, long ib, long cbDel)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(cbIns, 0, kcbMax);\n    AssertPvCb(prgb, cbIns);\n    AssertIn(ib, 0, _ibMac + 1);\n    AssertIn(cbDel, 0, _ibMac + 1 - ib);\n    byte *qrgb;\n\n    if (!_FEnsureSize(_ibMac + cbIns - cbDel, fFalse))\n        return fFalse;\n\n    qrgb = (byte *)QvFromHq(_hqrgb);\n    if (ib < _ibMac - cbDel && cbDel != cbIns)\n        BltPb(qrgb + ib + cbDel, qrgb + ib + cbIns, _ibMac - cbDel - ib);\n    if (cbIns > 0)\n        CopyPb(prgb, qrgb + ib, cbIns);\n    _ibMac += cbIns - cbDel;\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Write the byte stream to a file.\n***************************************************************************/\nbool BSM::FWriteRgb(PFLO pflo, long ib)\n{\n    AssertThis(0);\n    AssertPo(pflo, 0);\n    BLCK blck(pflo);\n\n    return FWriteRgb(&blck, ib);\n}\n\n/***************************************************************************\n    Write the byte stream to a block.\n***************************************************************************/\nbool BSM::FWriteRgb(PBLCK pblck, long ib)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pblck, 0);\n    AssertIn(ib, 0, CbOfHq(_hqrgb) - pblck->Cb() + 1);\n    bool fRet;\n\n    if (ib + pblck->Cb() > _ibMac)\n    {\n        Bug(\"blck is too big\");\n        return fFalse;\n    }\n    if (pblck->Cb() == 0)\n        return fTrue;\n    fRet = pblck->FWrite(PvAddBv(PvLockHq(_hqrgb), ib));\n    UnlockHq(_hqrgb);\n    return fRet;\n}\n\n/***************************************************************************\n    Make sure the hq is at least cbMin bytes.  If fShrink is true, make the\n    hq exactly cbMin bytes long.\n***************************************************************************/\nbool BSM::_FEnsureSize(long cbMin, bool fShrink)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(cbMin, 0, kcbMax);\n    long cb = hqNil == _hqrgb ? 0 : CbOfHq(_hqrgb);\n\n    if (cbMin <= cb && (!fShrink || cbMin == cb))\n        return fTrue;\n\n    if (cbMin == 0)\n    {\n        if (fShrink)\n            FreePhq(&_hqrgb);\n        return fTrue;\n    }\n\n    if (hqNil == _hqrgb)\n    {\n        return FAllocHq(&_hqrgb, LwMax(cbMin, _cbMinGrow), fmemNil, mprNormal) ||\n               _cbMinGrow > cbMin && FAllocHq(&_hqrgb, cbMin, fmemNil, mprNormal);\n    }\n\n    return FResizePhq(&_hqrgb, LwMax(cbMin, cb + _cbMinGrow), fmemNil, mprNormal) ||\n           cb + _cbMinGrow > cbMin && FResizePhq(&_hqrgb, cbMin, fmemNil, mprNormal);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a byte stream (BSF).\n***************************************************************************/\nvoid BSM::AssertValid(ulong grf)\n{\n    BSM_PAR::AssertValid(grf);\n    AssertIn(_ibMac, 0, kcbMax);\n    AssertIn(_cbMinGrow, 0, kcbMax);\n    if (_ibMac > 0)\n    {\n        AssertHq(_hqrgb);\n        AssertIn(_ibMac, 0, CbOfHq(_hqrgb) + 1);\n    }\n    else if (hqNil != _hqrgb)\n        AssertHq(_hqrgb);\n}\n\n/***************************************************************************\n    Mark memory for the BSM.\n***************************************************************************/\nvoid BSM::MarkMem(void)\n{\n    AssertValid(fobjAssertFull);\n    BSM_PAR::MarkMem();\n    MarkHq(_hqrgb);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for a stream.\n***************************************************************************/\nBSF::BSF(void)\n{\n    _pggflo = pvNil;\n    _ibMac = 0;\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    Destructor for a stream.\n***************************************************************************/\nBSF::~BSF(void)\n{\n    AssertThis(fobjAssertFull);\n    long iflo;\n    FLO flo;\n\n    if (0 < _ibMac)\n    {\n        // release all our reference counts\n        for (iflo = _pggflo->IvMac(); iflo-- > 0;)\n        {\n            _pggflo->GetFixed(iflo, &flo);\n            if (pvNil != flo.pfil)\n                ReleasePpo(&flo.pfil);\n        }\n    }\n    ReleasePpo(&_pggflo);\n}\n\n/***************************************************************************\n    Find the flo that contains the given ib and assign *pib the postion\n    of the first byte in the flo and *pcb the size of the flo.\n***************************************************************************/\nlong BSF::_IfloFind(long ib, long *pib, long *pcb)\n{\n    AssertBaseThis(0);\n    AssertIn(ib, 0, _ibMac + 1);\n    AssertVarMem(pib);\n    AssertNilOrVarMem(pcb);\n    long iflo, cb;\n    FLO flo;\n\n    iflo = 0;\n    if (_ibMac > 0)\n    {\n        for (cb = ib; iflo < _pggflo->IvMac(); iflo++)\n        {\n            _pggflo->GetFixed(iflo, &flo);\n            if (flo.cb > cb)\n            {\n                *pib = ib - cb;\n                if (pvNil != pcb)\n                    *pcb = flo.cb;\n                return iflo;\n            }\n            cb -= flo.cb;\n        }\n    }\n    *pib = _ibMac;\n    if (pvNil != pcb)\n        *pcb = 0;\n    return iflo;\n}\n\n/***************************************************************************\n    Make sure ib is on a piece boundary.\n***************************************************************************/\nbool BSF::_FEnsureSplit(long ib, long *piflo)\n{\n    AssertBaseThis(0);\n    AssertIn(ib, 0, _ibMac + 1);\n    AssertNilOrVarMem(piflo);\n    long iflo, ibMin, cbT;\n    FLO flo;\n\n    if (pvNil == _pggflo)\n    {\n        if (pvNil == (_pggflo = GG::PggNew(size(FLO))))\n            return fFalse;\n        // REVIEW shonk: what values should we use for SetMinGrow?\n        //_pggflo->SetMinGrow(2, 100);\n    }\n\n    iflo = _IfloFind(ib, &ibMin, &cbT);\n    AssertIn(ib, ibMin, ibMin + cbT + (ibMin == _ibMac));\n    if (ib == ibMin)\n    {\n        if (pvNil != piflo)\n            *piflo = iflo;\n        return fTrue;\n    }\n\n    _pggflo->GetFixed(iflo, &flo);\n    Assert(cbT == flo.cb, 0);\n\n    cbT = ib - ibMin;\n    flo.cb -= cbT;\n    if (pvNil != flo.pfil)\n        flo.fp += cbT;\n    if (!_pggflo->FInsert(iflo + 1, 0, pvNil, &flo))\n    {\n        TrashVar(piflo);\n        return fFalse;\n    }\n    if (pvNil == flo.pfil && !_pggflo->FMoveRgb(iflo, cbT, iflo + 1, 0, flo.cb))\n    {\n        _pggflo->Delete(iflo + 1);\n        TrashVar(piflo);\n        return fFalse;\n    }\n    flo.cb = cbT;\n    if (pvNil != flo.pfil)\n    {\n        flo.fp -= cbT;\n        flo.pfil->AddRef();\n    }\n    _pggflo->PutFixed(iflo, &flo);\n    if (pvNil != piflo)\n        *piflo = iflo + 1;\n    return fTrue;\n}\n\n/***************************************************************************\n    Enumerate over all pieces spanning ibMin to ibLim and attempt to merge\n    any adjacent ones.\n***************************************************************************/\nvoid BSF::_AttemptMerge(long ibMin, long ibLim)\n{\n    AssertBaseThis(0);\n    AssertIn(ibMin, 0, _ibMac + 1);\n    AssertIn(ibLim, ibMin, _ibMac + 1);\n    long iflo, ib;\n    FLO flo, floT;\n\n    if (pvNil == _pggflo)\n        return;\n\n    iflo = _IfloFind(LwMax(0, ibMin - 1), &ib);\n    while (ib < ibLim && iflo < _pggflo->IvMac() - 1)\n    {\n        _pggflo->GetFixed(iflo, &flo);\n        _pggflo->GetFixed(iflo + 1, &floT);\n        if (flo.pfil != floT.pfil || pvNil != flo.pfil && flo.fp + flo.cb != floT.fp)\n        {\n            // cant merge them, try the next\n            iflo++;\n            ib += flo.cb;\n            continue;\n        }\n\n        if (pvNil == flo.pfil)\n            _pggflo->Merge(iflo + 1, iflo);\n        else\n        {\n            // merge the two file based flo's\n            _pggflo->Delete(iflo + 1);\n            ReleasePpo(&floT.pfil);\n            AssertPo(flo.pfil, 0);\n        }\n        flo.cb += floT.cb;\n        _pggflo->PutFixed(iflo, &flo);\n    }\n}\n\n/***************************************************************************\n    Replace a range in this bsf with the range in the given bsf.  This\n    does the complete insertion, then the deletion.\n***************************************************************************/\nbool BSF::FReplaceBsf(PBSF pbsfSrc, long ibSrc, long cbSrc, long ibDst, long cbDel)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pbsfSrc, 0);\n    AssertIn(ibSrc, 0, pbsfSrc->_ibMac + 1);\n    AssertIn(cbSrc, 0, pbsfSrc->_ibMac + 1 - ibSrc);\n    AssertIn(ibDst, 0, _ibMac + 1);\n    AssertIn(cbDel, 0, _ibMac + 1 - ibDst);\n\n    long ifloMinSrc, ifloLimSrc, ifloMinWhole, ifloDst, iflo;\n    long ibMinSrc, ibLimSrc, ibMinWhole, ib;\n    long cbMinFlo, cbLimFlo, cbIns, cbT;\n    FLO flo;\n    byte *pb;\n    bool fRet;\n\n    // REVIEW shonk: if we're only inserting a non-file piece of pbsfSrc, should\n    // we optimize and redirect this to FReplace?\n\n    if (cbSrc == 0 && cbDel == 0)\n        return fTrue;\n\n    // make sure the piece table exists and is split at ibDst\n    if (!_FEnsureSplit(ibDst, &ifloDst))\n        return fFalse;\n\n    // cbIns is the number of bytes already inserted (for cleanup)\n    cbIns = 0;\n\n    // get the flo's to insert\n    ifloMinSrc = pbsfSrc->_IfloFind(ibSrc, &ibMinSrc, &cbMinFlo);\n    ifloLimSrc = pbsfSrc->_IfloFind(ibSrc + cbSrc, &ibLimSrc, &cbLimFlo);\n\n    if (ifloMinSrc < ifloLimSrc)\n    {\n        // first insert the whole pieces\n        if (ibSrc > ibMinSrc)\n        {\n            ifloMinWhole = ifloMinSrc + 1;\n            ibMinWhole = ibMinSrc + cbMinFlo;\n        }\n        else\n        {\n            ifloMinWhole = ifloMinSrc;\n            ibMinWhole = ibMinSrc;\n        }\n        if (ifloMinWhole < ifloLimSrc)\n        {\n            if (!_pggflo->FCopyEntries(pbsfSrc->_pggflo, ifloMinWhole, ifloDst, ifloLimSrc - ifloMinWhole))\n            {\n                goto LFail;\n            }\n            cbIns = ibLimSrc - ibMinWhole;\n            _ibMac += cbIns;\n\n            // adjust the usage counts on the file pieces\n            for (iflo = ifloDst + ifloLimSrc - ifloMinWhole; iflo-- > ifloDst;)\n            {\n                _pggflo->GetFixed(iflo, &flo);\n                if (pvNil != flo.pfil)\n                    flo.pfil->AddRef();\n            }\n        }\n\n        // insert the front piece\n        if (ifloMinSrc < ifloMinWhole)\n        {\n            cbT = cbMinFlo - ibSrc + ibMinSrc;\n            pbsfSrc->_pggflo->GetFixed(ifloMinSrc, &flo);\n            if (pvNil == flo.pfil)\n            {\n                // a memory piece\n                pb = (byte *)pbsfSrc->_pggflo->PvLock(ifloMinSrc);\n                fRet = FReplace(pb + ibSrc - ibMinSrc, cbT, ibDst, 0);\n                pbsfSrc->_pggflo->Unlock();\n            }\n            else\n            {\n                // a file piece\n                flo.fp += ibSrc - ibMinSrc;\n                flo.cb = cbT;\n                fRet = FReplaceFlo(&flo, fFalse, ibDst, 0);\n            }\n            if (!fRet)\n                goto LFail;\n            cbIns += cbT;\n        }\n        else\n            _AttemptMerge(ibDst, ibDst);\n    }\n\n    // insert the back piece\n    Assert(ibLimSrc <= ibSrc + cbSrc, 0);\n    if (ibLimSrc < ibSrc + cbSrc || cbDel > 0)\n    {\n        ib = LwMax(ibSrc, ibLimSrc);\n        cbT = ibSrc + cbSrc - ib;\n        Assert(cbIns + cbT == cbSrc, \"didn't insert the correct amount!\");\n        if (cbT <= 0)\n            fRet = FReplace(pvNil, 0, ibDst + cbIns, cbDel);\n        else\n        {\n            pbsfSrc->_pggflo->GetFixed(ifloLimSrc, &flo);\n            if (pvNil == flo.pfil)\n            {\n                // a memory piece\n                pb = (byte *)pbsfSrc->_pggflo->PvLock(ifloLimSrc);\n                fRet = FReplace(pb + ib - ibLimSrc, cbT, ibDst + cbIns, cbDel);\n                pbsfSrc->_pggflo->Unlock();\n            }\n            else\n            {\n                // a file piece\n                flo.fp += ib - ibLimSrc;\n                flo.cb = cbT;\n                fRet = FReplaceFlo(&flo, fFalse, ibDst + cbIns, cbDel);\n            }\n        }\n        if (!fRet)\n        {\n        LFail:\n            if (cbIns > 0)\n                AssertDo(FReplace(pvNil, 0, ibDst, cbIns), \"cleanup failed!\");\n            AssertThis(fobjAssertFull);\n            return fFalse;\n        }\n    }\n    else\n    {\n        Assert(cbIns == cbSrc, \"didn't insert the correct amount!\");\n        _AttemptMerge(ibDst + cbSrc, ibDst + cbSrc);\n    }\n\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Replace the range [ib, ib + cbDel) with cbIns bytes from prgb.\n***************************************************************************/\nbool BSF::FReplace(void *prgb, long cbIns, long ib, long cbDel)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(ib, 0, _ibMac + 1);\n    AssertIn(cbDel, 0, _ibMac - ib + 1);\n    AssertIn(cbIns, 0, kcbMax);\n    AssertPvCb(prgb, cbIns);\n    long ibT;\n    long iflo, cbT;\n    FLO flo;\n\n    if (cbDel == 0 && cbIns == 0)\n        return fTrue;\n\n    // make sure the _pggflo exists\n    if (!_FEnsureSplit(0))\n        return fFalse;\n\n    // get the flo of interest and the ibMin of the flo\n    iflo = _IfloFind(ib, &ibT);\n\n    // from here on, ibT is the offset into the current flo (iflo)\n    ibT = ib - ibT;\n\n    // if ib is in a file flo, split it\n    if (ibT > 0)\n    {\n        _pggflo->GetFixed(iflo, &flo);\n        if (pvNil != flo.pfil)\n        {\n            if (!_FEnsureSplit(ib, &iflo))\n                goto LFail;\n            ibT = 0;\n        }\n    }\n    if (cbIns > 0 && !_pggflo->FEnsureSpace(1, cbIns))\n    {\n    LFail:\n        _AttemptMerge(ib, ib);\n        AssertThis(fobjAssertFull);\n        return fFalse;\n    }\n\n    if (ibT > 0 && cbDel > 0)\n    {\n        // we need to start deleting in the middle of a piece\n        _pggflo->GetFixed(iflo, &flo);\n        Assert(pvNil == flo.pfil, \"why wasn't this flo split?\");\n        if (ibT + cbDel < flo.cb)\n        {\n            // deleting just part of this piece and no others\n            _pggflo->DeleteRgb(iflo, ibT, cbDel);\n            flo.cb -= cbDel;\n            _pggflo->PutFixed(iflo, &flo);\n            _ibMac -= cbDel;\n            cbDel = 0;\n        }\n        else\n        {\n            // deleting to the end of this piece\n            cbT = flo.cb - ibT;\n            _pggflo->DeleteRgb(iflo, ibT, cbT);\n            flo.cb = ibT;\n            _pggflo->PutFixed(iflo, &flo);\n            _ibMac -= cbT;\n            cbDel -= cbT;\n            iflo++;\n            ibT = 0;\n        }\n    }\n\n    Assert(ibT == 0 || cbDel == 0, \"wrong ib\");\n    while (cbDel > 0 && iflo < _pggflo->IvMac())\n    {\n        // deleting from the beginning of the flo\n        _pggflo->GetFixed(iflo, &flo);\n        if (cbDel < flo.cb)\n        {\n            // just remove the first part\n            if (pvNil != flo.pfil)\n                flo.fp += cbDel;\n            else\n                _pggflo->DeleteRgb(iflo, 0, cbDel);\n            flo.cb -= cbDel;\n            _ibMac -= cbDel;\n            cbDel = 0;\n            _pggflo->PutFixed(iflo, &flo);\n        }\n        else\n        {\n            // delete the whole flo\n            ReleasePpo(&flo.pfil);\n            _pggflo->Delete(iflo);\n            cbDel -= flo.cb;\n            _ibMac -= flo.cb;\n        }\n    }\n\n    // now insert the new stuff\n    if (cbIns > 0)\n    {\n        if (iflo < _pggflo->IvMac())\n        {\n            _pggflo->GetFixed(iflo, &flo);\n            if (pvNil == flo.pfil)\n                goto LInsertInMem;\n        }\n        Assert(ibT == 0, \"wrong ib 2\");\n        if (iflo > 0)\n        {\n            // see if the previous flow is a memory one\n            _pggflo->GetFixed(iflo - 1, &flo);\n            if (pvNil == flo.pfil)\n            {\n                iflo--;\n                ibT = flo.cb;\n            LInsertInMem:\n                AssertDo(_pggflo->FInsertRgb(iflo, ibT, cbIns, prgb), \"this shouldn't fail!\");\n                flo.cb += cbIns;\n                _pggflo->PutFixed(iflo, &flo);\n                _ibMac += cbIns;\n                goto LTryMerge;\n            }\n        }\n        // create a new memory flo\n        flo.pfil = pvNil;\n        flo.cb = cbIns;\n        flo.fp = 0;\n        AssertDo(_pggflo->FInsert(iflo, cbIns, prgb, &flo), \"why fail?\");\n        _ibMac += cbIns;\n    }\n\nLTryMerge:\n    _AttemptMerge(ib, ib + cbIns);\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Replace the range [ib, ib + cbDel) with the flo.\n***************************************************************************/\nbool BSF::FReplaceFlo(PFLO pflo, bool fCopy, long ib, long cbDel)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pflo, ffloReadable);\n    AssertIn(ib, 0, _ibMac + 1);\n    AssertIn(cbDel, 0, _ibMac - ib + 1);\n    long iflo;\n    FLO flo;\n    bool fRet;\n\n    if (pflo->cb <= 0)\n        return FReplace(pvNil, 0, ib, cbDel);\n\n    if (pflo->cb < kcbMinFloFile)\n    {\n        // use a memory piece\n        HQ hq;\n\n        if (!pflo->FReadHq(&hq))\n            return fFalse;\n        fRet = FReplace(PvLockHq(hq), pflo->cb, ib, cbDel);\n        UnlockHq(hq);\n        FreePhq(&hq);\n        return fRet;\n    }\n\n    // insert a file flo\n    if (fCopy)\n    {\n        if (pvNil == (flo.pfil = FIL::PfilCreateTemp()))\n            return fFalse;\n        flo.cb = pflo->cb;\n        flo.fp = 0;\n        if (!pflo->FCopy(&flo))\n        {\n            ReleasePpo(&flo.pfil);\n            AssertThis(fobjAssertFull);\n            return fFalse;\n        }\n        pflo = &flo;\n    }\n    else\n        pflo->pfil->AddRef();\n\n    if (!_FEnsureSplit(ib, &iflo) || !_pggflo->FInsert(iflo, 0, pvNil, pflo))\n    {\n        pflo->pfil->Release();\n        _AttemptMerge(ib, ib);\n        AssertThis(fobjAssertFull);\n        return fFalse;\n    }\n\n    _ibMac += pflo->cb;\n    if (cbDel > 0)\n    {\n        // this shouldn't fail because we've already ensured a split\n        // at ib + pflo->cb\n        AssertDo(FReplace(pvNil, 0, ib + pflo->cb, cbDel), 0);\n    }\n    _AttemptMerge(ib, ib + pflo->cb);\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Fetch cb bytes from position ib into prgb.\n***************************************************************************/\nvoid BSF::FetchRgb(long ib, long cb, void *prgb)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(ib, 0, _ibMac + 1);\n    AssertIn(cb, 0, _ibMac - ib + 1);\n    AssertPvCb(prgb, cb);\n    long iflo, cbT, ibMin;\n    FLO flo;\n\n    iflo = _IfloFind(ib, &ibMin);\n    ib -= ibMin;\n    for (; cb > 0 && iflo < _pggflo->IvMac(); iflo++)\n    {\n        _pggflo->GetFixed(iflo, &flo);\n        Assert(flo.cb > ib, \"_IfloFind messed up\");\n\n        // get min(cb, flo.cb - ib) bytes from position ib\n        // then set ib to 0 and update cb\n        cbT = LwMin(cb, flo.cb - ib);\n        if (pvNil == flo.pfil)\n        {\n            // the data is in the GG\n            Assert(_pggflo->Cb(iflo) == flo.cb, \"group element wrong size\");\n            _pggflo->GetRgb(iflo, ib, cbT, prgb);\n        }\n        else\n        {\n            // the data is on file\n            if (!flo.FReadRgb(prgb, cbT, ib))\n            {\n                Warn(\"read failed in fetch\");\n                FillPb(prgb, cbT, kbGarbage);\n            }\n        }\n        prgb = PvAddBv(prgb, cbT);\n        ib = 0;\n        cb -= cbT;\n    }\n}\n\n/***************************************************************************\n    Write a portion of a BSF to the given flo.\n***************************************************************************/\nbool BSF::FWriteRgb(PFLO pflo, long ib)\n{\n    AssertThis(0);\n    AssertPo(pflo, 0);\n    BLCK blck(pflo);\n\n    return FWriteRgb(&blck, ib);\n}\n\n/***************************************************************************\n    Write a portion of a BSF to the given block.\n***************************************************************************/\nbool BSF::FWriteRgb(PBLCK pblck, long ib)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pblck, 0);\n    AssertIn(ib, 0, _ibMac + 1);\n    AssertIn(pblck->Cb(), 0, kcbMax);\n    long iflo;\n    FLO flo;\n    long cb, ibT, ibDst;\n    long cbWrite = pblck->Cb();\n    bool fRet = fTrue;\n\n    if (ib + cbWrite > _ibMac)\n    {\n        Bug(\"blck is too big\");\n        return fFalse;\n    }\n\n    if (cbWrite <= 0)\n        return fTrue;\n\n    iflo = _IfloFind(ib, &ibT);\n    ib -= ibT;\n    _pggflo->Lock();\n    AssertDo(pblck->FMoveLim(-cbWrite), 0);\n    for (ibDst = 0; fRet && ibDst < cbWrite && iflo < _pggflo->IvMac(); iflo++)\n    {\n        Assert(pblck->Cb() == 0, 0);\n        _pggflo->GetFixed(iflo, &flo);\n        Assert(flo.cb > ib, \"_IfloFind messed up\");\n\n        // write min(cbWrite, flo.cb - ib) bytes from position ib\n        // then set ib to 0 and update cbWrite\n        cb = LwMin(cbWrite, flo.cb - ib);\n        AssertDo(pblck->FMoveLim(cb), 0);\n        Assert(pblck->Cb() == cb, 0);\n        if (pvNil == flo.pfil)\n        {\n            // the data is in the GG\n            Assert(_pggflo->Cb(iflo) == flo.cb, \"group element wrong size\");\n            fRet = pblck->FWrite(PvAddBv(_pggflo->QvGet(iflo), ib));\n        }\n        else\n        {\n            // the data is on file\n            BLCK blck(flo.pfil, flo.fp + ib, cb);\n            fRet = blck.FWriteToBlck(pblck);\n        }\n        ib = 0;\n        ibDst += cb;\n        AssertDo(pblck->FMoveMin(cb), 0);\n    }\n    Assert(!fRet || ibDst == cbWrite, \"wrong number of bytes written!\");\n    Assert(pblck->Cb() == 0, 0);\n    AssertDo(pblck->FMoveMin(-ibDst), 0);\n    AssertDo(pblck->FMoveLim(cbWrite - ibDst), 0);\n    Assert(pblck->Cb() == cbWrite, 0);\n    _pggflo->Unlock();\n\n    return fRet;\n}\n\n/***************************************************************************\n    Write the stream out to a temp file and redirect the stream to just\n    refernce the temp file.  This makes the stream's memory footprint\n    minimal.\n***************************************************************************/\nbool BSF::FCompact(void)\n{\n    AssertThis(fobjAssertFull);\n    FLO flo;\n    bool fRet = fFalse;\n\n    if (_ibMac == 0 || _pggflo->IvMac() == 1 && _pggflo->Cb(1) == 0)\n    {\n        fRet = fTrue;\n        goto LShrinkGg;\n    }\n\n    if (pvNil == (flo.pfil = FIL::PfilCreateTemp()))\n        goto LShrinkGg;\n\n    flo.fp = 0;\n    flo.cb = _ibMac;\n    fRet = FWriteRgb(&flo) && FReplaceFlo(&flo, fFalse, 0, _ibMac);\n    ReleasePpo(&flo.pfil);\n\nLShrinkGg:\n    if (pvNil != _pggflo)\n        _pggflo->FEnsureSpace(0, fgrpShrink);\n\n    AssertThis(fobjAssertFull);\n    return fRet;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a byte stream (BSF).\n***************************************************************************/\nvoid BSF::AssertValid(ulong grfobj)\n{\n    BSF_PAR::AssertValid(grfobj);\n    if (pvNil == _pggflo)\n    {\n        AssertVar(0 == _ibMac, \"wrong _ibMac\", &_ibMac);\n        return;\n    }\n    AssertPo(_pggflo, 0);\n    if (!(grfobj & fobjAssertFull))\n        return;\n\n    long cb, cbT, iflo;\n    FLO flo;\n\n    for (cb = 0, iflo = _pggflo->IvMac(); iflo-- > 0;)\n    {\n        _pggflo->GetFixed(iflo, &flo);\n        cbT = _pggflo->Cb(iflo);\n        if (pvNil == flo.pfil)\n            Assert(cbT == flo.cb, \"wrong sized entry\");\n        else\n        {\n            AssertPo(flo.pfil, 0);\n            Assert(cbT == 0, \"wrong sized file entry\");\n            AssertIn(flo.fp, 0, kcbMax);\n            AssertIn(flo.cb, 0, kcbMax);\n            cbT = flo.cb;\n        }\n        cb += cbT;\n    }\n    AssertVar(cb == _ibMac, \"bad _ibMac\", &_ibMac);\n}\n\n/***************************************************************************\n    Mark memory for the BSF.\n***************************************************************************/\nvoid BSF::MarkMem(void)\n{\n    AssertThis(fobjAssertFull);\n    BSF_PAR::MarkMem();\n    MarkMemObj(_pggflo);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/stream.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Stream classes.\n\n    A BSM is a byte stream in memory.  The data is stored contiguously, so\n    should be used only for relatively small streams.\n\n    A BSF is a byte stream with pieces stored in files and other pieces\n    stored in memory.\n\n***************************************************************************/\n#ifndef STREAM_H\n#define STREAM_H\n\n/***************************************************************************\n    Byte stream in memory.  The entire stream is in contiguous memory.\n***************************************************************************/\ntypedef class BSM *PBSM;\n#define BSM_PAR BASE\n#define kclsBSM 'BSM'\nclass BSM : public BSM_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    NOCOPY(BSM)\n\n  protected:\n    HQ _hqrgb;\n    long _ibMac;\n    long _cbMinGrow;\n\n    bool _FEnsureSize(long cbMin, bool fShrink);\n\n  public:\n    BSM(void);\n    ~BSM(void);\n\n    void SetMinGrow(long cb);\n    bool FEnsureSpace(long cb, bool fShrink);\n    void *PvLock(long ib);\n    void Unlock(void);\n\n    long IbMac(void)\n    {\n        return _ibMac;\n    }\n    void FetchRgb(long ib, long cb, void *prgb);\n    bool FReplace(void *prgb, long cbIns, long ib, long cbDel);\n    bool FWriteRgb(PFLO pflo, long ib = 0);\n    bool FWriteRgb(PBLCK pblck, long ib = 0);\n};\n\n/***************************************************************************\n    Byte stream on file.  Parts of the stream may be in files.\n***************************************************************************/\ntypedef class BSF *PBSF;\n#define BSF_PAR BASE\n#define kclsBSF 'BSF'\nclass BSF : public BSF_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    NOCOPY(BSF)\n\n  protected:\n    PGG _pggflo;\n    long _ibMac;\n\n    long _IfloFind(long ib, long *pib, long *pcb = pvNil);\n    bool _FEnsureSplit(long ib, long *piflo = pvNil);\n    void _AttemptMerge(long ibMin, long ibLim);\n    bool _FReplaceCore(void *prgb, long cbIns, PFLO pflo, long ib, long cbDel);\n\n  public:\n    BSF(void);\n    ~BSF(void);\n\n    long IbMac(void)\n    {\n        return _ibMac;\n    }\n    void FetchRgb(long ib, long cb, void *prgb);\n    bool FReplace(void *prgb, long cbIns, long ib, long cbDel);\n    bool FReplaceFlo(PFLO pflo, bool fCopy, long ib, long cbDel);\n    bool FReplaceBsf(PBSF pbsfSrc, long ibSrc, long cbSrc, long ibDst, long cbDel);\n    bool FWriteRgb(PFLO pflo, long ib = 0);\n    bool FWriteRgb(PBLCK pblck, long ib = 0);\n    bool FCompact(void);\n};\n\n#endif //! STREAM_H\n"
  },
  {
    "path": "kauai/src/stub.cpp",
    "content": "extern \"C\" __declspec(dllexport) void __cdecl _adj_fdiv_r()\n{\n}\nextern \"C\" int _adjust_fdiv{};\n"
  },
  {
    "path": "kauai/src/test.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai test app\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Test code used in both ut and ft.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\n#ifdef DEBUG\nextern void CheckForLostMem(BASE *po);\n#else //! DEBUG\n#define CheckForLostMem(po)\n#endif //! DEBUG\n\nvoid TestInt(void);\nvoid TestMem(void);\nvoid TestGl(void);\nvoid TestFni(void);\nvoid TestFil(void);\nvoid TestGg(void);\nvoid TestCfl(void);\nvoid TestErs(void);\nvoid TestCrf(void);\n\n/******************************************************************************\n    Test util code.\n******************************************************************************/\nvoid TestUtil(void)\n{\n    Bug(\"Assert Test\");\n    long lw = 0x12345678;\n    BugVar(\"AssertVar test\", &lw);\n\n    TestInt();\n    TestMem();\n    TestErs();\n    TestGl();\n    TestGg();\n    // TestFni();\n    // TestFil();\n    // TestCfl();\n    TestCrf();\n}\n\n/***************************************************************************\n    Test utilint stuff.\n***************************************************************************/\nvoid TestInt(void)\n{\n    AssertDo(SwHigh(0x12345678) == (short)0x1234, 0);\n    AssertDo(SwHigh(0xABCDEF01) == (short)0xABCD, 0);\n    AssertDo(SwLow(0x12345678) == (short)0x5678, 0);\n    AssertDo(SwLow(0xABCDEF01) == (short)0xEF01, 0);\n\n    AssertDo(LwHighLow(0x1234, 0x5678) == 0x12345678, 0);\n    AssertDo(LwHighLow((short)0xABCD, (short)0xEF01) == 0xABCDEF01, 0);\n\n    AssertDo(BHigh(0x1234) == 0x12, 0);\n    AssertDo(BHigh((short)0xABCD) == 0xAB, 0);\n    AssertDo(BLow(0x1234) == 0x34, 0);\n    AssertDo(BLow((short)0xABCD) == 0xCD, 0);\n\n    AssertDo(SwHighLow(0x12, 0x56) == (short)0x1256, 0);\n    AssertDo(SwHighLow(0xAB, 0xEF) == (short)0xABEF, 0);\n\n    AssertDo(SwMin(kswMax, kswMin) == kswMin, 0);\n    AssertDo(SwMin(kswMin, kswMax) == kswMin, 0);\n    AssertDo(SwMax(kswMax, kswMin) == kswMax, 0);\n    AssertDo(SwMax(kswMin, kswMax) == kswMax, 0);\n\n    AssertDo(SuMin(ksuMax, 0) == 0, 0);\n    AssertDo(SuMin(0, ksuMax) == 0, 0);\n    AssertDo(SuMax(ksuMax, 0) == ksuMax, 0);\n    AssertDo(SuMax(0, ksuMax) == ksuMax, 0);\n\n    AssertDo(LwMin(klwMax, klwMin) == klwMin, 0);\n    AssertDo(LwMin(klwMin, klwMax) == klwMin, 0);\n    AssertDo(LwMax(klwMax, klwMin) == klwMax, 0);\n    AssertDo(LwMax(klwMin, klwMax) == klwMax, 0);\n\n    AssertDo(LuMin(kluMax, 0) == 0, 0);\n    AssertDo(LuMin(0, kluMax) == 0, 0);\n    AssertDo(LuMax(kluMax, 0) == kluMax, 0);\n    AssertDo(LuMax(0, kluMax) == kluMax, 0);\n\n    AssertDo(SwAbs(kswMax) == kswMax, 0);\n    AssertDo(SwAbs(kswMin) == -kswMin, 0);\n    AssertDo(LwAbs(klwMax) == klwMax, 0);\n    AssertDo(LwAbs(klwMin) == -klwMin, 0);\n\n    AssertDo(LwMulSw(kswMax, kswMax) == 0x3FFF0001, 0);\n    AssertDo(LwMulSw(kswMin, kswMin) == 0x3FFF0001, 0);\n    AssertDo(LwMulSw(kswMax, kswMin) == -0x3FFF0001, 0);\n\n    AssertDo(LwMulDiv(klwMax, klwMax, klwMin) == klwMin, 0);\n    AssertDo(LwMulDiv(klwMax, klwMin, klwMax) == klwMin, 0);\n\n    AssertDo(CbRoundToLong(0) == 0, 0);\n    AssertDo(CbRoundToLong(1) == 4, 0);\n    AssertDo(CbRoundToLong(2) == 4, 0);\n    AssertDo(CbRoundToLong(3) == 4, 0);\n    AssertDo(CbRoundToLong(4) == 4, 0);\n    AssertDo(CbRoundToLong(5) == 8, 0);\n\n    AssertDo(CbRoundToShort(0) == 0, 0);\n    AssertDo(CbRoundToShort(1) == 2, 0);\n    AssertDo(CbRoundToShort(2) == 2, 0);\n    AssertDo(CbRoundToShort(3) == 4, 0);\n    AssertDo(CbRoundToShort(4) == 4, 0);\n    AssertDo(CbRoundToShort(5) == 6, 0);\n\n    AssertDo(LwGcd(10000, 350) == 50, 0);\n    AssertDo(LwGcd(10000, -560) == 80, 0);\n\n    AssertDo(FcmpCompareFracs(50000, 30000, 300000, 200000) == fcmpGt, 0);\n    AssertDo(FcmpCompareFracs(-50000, 30000, -300000, 200000) == fcmpLt, 0);\n    AssertDo(FcmpCompareFracs(-50000, 30000, 300000, 200000) == fcmpLt, 0);\n    AssertDo(FcmpCompareFracs(50000, 30000, -300000, 200000) == fcmpGt, 0);\n    AssertDo(FcmpCompareFracs(50000, 30000, 500000, 300000) == fcmpEq, 0);\n    AssertDo(FcmpCompareFracs(0x1FFF0000, 0x10, 0x11000000, 0x10) == fcmpGt, 0);\n}\n\n/***************************************************************************\n    Test the memory manager.\n***************************************************************************/\nvoid TestMem(void)\n{\n#define kchq 18\n    static HQ rghq[kchq]; // static so it's initially zeros\n    HQ hqT, hq;\n    long cb, ihq;\n\n    for (ihq = 0; ihq < kchq; ihq++)\n    {\n        cb = (1L << ihq) - 1 + ihq;\n        if (!FAllocHq(&hq, cb, fmemNil, mprDebug))\n        {\n            BugVar(\"HqAlloc failed on size:\", &cb);\n            break;\n        }\n        rghq[ihq] = hq;\n        AssertDo(CbOfHq(hq) == cb, 0);\n\n        FillPb(QvFromHq(hq), cb, (byte)cb);\n        if (cb > 0)\n        {\n            AssertDo(*(byte *)QvFromHq(hq) == (byte)cb, 0);\n            AssertDo(*(byte *)PvAddBv(QvFromHq(hq), cb - 1) == (byte)cb, 0);\n        }\n\n        AssertDo(PvLockHq(hq) == QvFromHq(hq), 0);\n        if (!FCopyHq(hq, &hqT, mprDebug))\n            Bug(\"FCopyHq failed\");\n        else\n        {\n            AssertDo(CbOfHq(hqT) == cb, 0);\n            if (cb > 0)\n            {\n                AssertDo(*(byte *)QvFromHq(hqT) == (byte)cb, 0);\n                AssertDo(*(byte *)PvAddBv(QvFromHq(hqT), cb - 1) == (byte)cb, 0);\n            }\n            FreePhq(&hqT);\n        }\n        Assert(hqT == hqNil, 0);\n        FreePhq(&hqT);\n\n        UnlockHq(hq);\n    }\n\n    for (ihq = 0; ihq < kchq; ihq++)\n    {\n        hq = rghq[ihq];\n        if (hqNil == hq)\n            break;\n        cb = CbOfHq(hq);\n        if (!FResizePhq(&rghq[ihq], 2 * cb, fmemClear, mprDebug))\n        {\n            Bug(\"FResizePhq failed\");\n            break;\n        }\n        hq = rghq[ihq];\n        if (cb > 0)\n        {\n            AssertDo(*(byte *)QvFromHq(hq) == (byte)cb, 0);\n            AssertDo(*(byte *)PvAddBv(QvFromHq(hq), cb - 1) == (byte)cb, 0);\n            AssertDo(*(byte *)PvAddBv(QvFromHq(hq), cb) == 0, 0);\n            AssertDo(*(byte *)PvAddBv(QvFromHq(hq), 2 * cb - 1) == 0, 0);\n        }\n    }\n\n    for (ihq = 0; ihq < kchq; ihq++)\n    {\n        if (hqNil != rghq[ihq])\n        {\n            cb = (1L << (kchq - 1 - ihq)) - 1 + (kchq - 1 - ihq);\n            AssertDo(FResizePhq(&rghq[ihq], cb, fmemNil, mprDebug), \"FResizePhq failed\");\n        }\n        FreePhq(&rghq[ihq]);\n    }\n}\n\n/***************************************************************************\n    Test list code.\n***************************************************************************/\nvoid TestGl(void)\n{\n    short sw;\n    long isw;\n    short *qsw;\n    PGL pglsw;\n\n    pglsw = GL::PglNew(size(short));\n    if (pvNil == pglsw)\n    {\n        Bug(\"PglNew failed\");\n        return;\n    }\n\n    for (sw = 0; sw < 10; sw++)\n    {\n        AssertDo(pglsw->FAdd(&sw, &isw), 0);\n        AssertDo(isw == sw, 0);\n    }\n    AssertDo(pglsw->IvMac() == 10, 0);\n\n    for (isw = 0; isw < 10; isw++)\n    {\n        qsw = (short *)pglsw->QvGet(isw);\n        AssertDo(*qsw == isw, 0);\n        pglsw->Get(isw, &sw);\n        AssertDo(sw == isw, 0);\n    }\n\n    for (isw = 10; isw > 0;)\n        pglsw->Delete(isw -= 2);\n    AssertDo(pglsw->IvMac() == 5, 0);\n\n    for (isw = 0; isw < 5; isw++)\n    {\n        pglsw->Get(isw, &sw);\n        AssertDo(sw == isw * 2 + 1, 0);\n        sw = (short)isw * 100;\n        pglsw->Put(isw, &sw);\n        qsw = (short *)pglsw->QvGet(isw);\n        AssertDo(*qsw == isw * 100, 0);\n        *qsw = (short)isw;\n    }\n\n    AssertDo(pglsw->IvMac() == 5, 0);\n    AssertDo(pglsw->FEnsureSpace(0, fgrpShrink), 0);\n    AssertDo(pglsw->IvMac() == 5, 0);\n\n    for (isw = 5; isw-- != 0;)\n    {\n        sw = (short)isw;\n        pglsw->FInsert(isw, &sw);\n    }\n\n    AssertDo(pglsw->IvMac() == 10, 0);\n    for (isw = 10; isw-- != 0;)\n    {\n        pglsw->Get(isw, &sw);\n        AssertDo(sw == isw / 2, 0);\n    }\n\n    ReleasePpo(&pglsw);\n}\n\n/***************************************************************************\n    Test the fni code.\n***************************************************************************/\nvoid TestFni(void)\n{\n    FNI fni1, fni2;\n    STN stn1, stn2, stn3;\n\n    AssertDo(fni1.FGetTemp(), 0);\n    AssertDo(fni1.Ftg() == vftgTemp, 0);\n    AssertDo(!fni1.FDir(), 0);\n    fni2 = fni1;\n    fni1.GetLeaf(&stn3);\n    fni2.GetLeaf(&stn2);\n    AssertDo(stn3.FEqual(&stn2), 0);\n\n    AssertDo(fni1.FSetLeaf(pvNil, kftgDir), 0);\n    AssertDo(fni1.FDir(), 0);\n    AssertDo(fni1.Ftg() == kftgDir, 0);\n\n    AssertDo(fni1.FUpDir(&stn1, ffniNil), 0);\n    AssertDo(fni1.FUpDir(&stn2, ffniMoveToDir), 0);\n    AssertDo(stn1.FEqual(&stn2), 0);\n    AssertDo(!fni1.FSameDir(&fni2), 0);\n    AssertDo(!fni1.FEqual(&fni2), 0);\n    AssertDo(fni1.Ftg() == kftgDir, 0);\n    AssertDo(fni1.FDownDir(&stn1, ffniNil), 0);\n    AssertDo(!fni1.FSameDir(&fni2), 0);\n    AssertDo(fni1.FDownDir(&stn1, ffniMoveToDir), 0);\n    AssertDo(fni1.FSameDir(&fni2), 0);\n    AssertDo(fni1.FSetLeaf(&stn3, vftgTemp), 0);\n\n    AssertDo(fni1.FEqual(&fni2), 0);\n    AssertDo(fni1.TExists() == tNo, 0);\n    AssertDo(fni2.FSetLeaf(pvNil, kftgDir), 0);\n    AssertDo(fni2.FGetUnique(vftgTemp), 0);\n    AssertDo(!fni1.FEqual(&fni2), 0);\n}\n\n/***************************************************************************\n    File test code.\n***************************************************************************/\nvoid TestFil(void)\n{\n    PFIL pfil;\n    FNI fni;\n\n    while (FGetFniSaveMacro(&fni, 'TEXT',\n                            \"\\x9\"\n                            \"Save As: \",\n                            \"\\x4\"\n                            \"Junk\",\n                            PszLit(\"All files\\0*.*\\0\"), NULL))\n    {\n        AssertDo(fni.TExists() == tNo, 0);\n        pfil = FIL::PfilCreate(&fni);\n        AssertPo(pfil, 0);\n        AssertDo(pfil->FSetFpMac(100), 0);\n        AssertDo(pfil->FpMac() == 100, 0);\n        AssertDo(pfil->FWriteRgb(&fni, size(fni), 0), 0);\n        pfil->SetTemp(fTrue);\n        pfil->Mark();\n        ReleasePpo(&pfil);\n    }\n\n    FIL::CloseUnmarked();\n    FIL::ClearMarks();\n    FIL::CloseUnmarked();\n}\n\n/***************************************************************************\n    Test the group api.\n***************************************************************************/\nvoid TestGg(void)\n{\n    PGG pgg;\n    ulong grf;\n    long cb, iv;\n    byte *qb;\n    PSZ psz = PszLit(\"0123456789ABCDEFG\");\n    achar rgch[100];\n\n    AssertDo((pgg = GG::PggNew(0)) != pvNil, 0);\n    for (iv = 0; iv < 10; iv++)\n    {\n        AssertDo(pgg->FInsert(iv / 2, iv + 1, psz), 0);\n    }\n    AssertDo(pgg->FAdd(16, &iv, psz), 0);\n    AssertDo(iv == 10, 0);\n    AssertDo(pgg->IvMac() == 11, 0);\n\n    grf = 0;\n    for (iv = pgg->IvMac(); iv--;)\n    {\n        cb = pgg->Cb(iv);\n        qb = (byte *)pgg->QvGet(iv);\n        AssertDo(FEqualRgb(psz, qb, cb), 0);\n        grf |= 1L << cb;\n        if (cb & 1)\n            pgg->Delete(iv);\n    }\n    AssertDo(grf == 0x000107FE, 0);\n\n    grf = 0;\n    for (iv = pgg->IvMac(); iv--;)\n    {\n        cb = pgg->Cb(iv);\n        AssertDo(!(cb & 1), 0);\n        pgg->Get(iv, rgch);\n        qb = (byte *)pgg->QvGet(iv);\n        AssertDo(FEqualRgb(rgch, qb, cb), 0);\n        AssertDo(FEqualRgb(rgch, psz, cb), 0);\n        grf |= 1L << cb;\n        CopyPb(psz, rgch + cb, cb);\n        AssertDo(pgg->FPut(iv, cb + cb, rgch), 0);\n    }\n    AssertDo(grf == 0x00010554, 0);\n\n    grf = 0;\n    for (iv = pgg->IvMac(); iv--;)\n    {\n        cb = pgg->Cb(iv);\n        AssertDo(!(cb & 3), 0);\n        cb /= 2;\n        grf |= 1L << cb;\n        pgg->DeleteRgb(iv, LwMin(cb, iv), cb);\n\n        qb = (byte *)pgg->QvGet(iv);\n        AssertDo(FEqualRgb(psz, qb, cb), 0);\n    }\n    AssertDo(grf == 0x00010554, 0);\n    ReleasePpo(&pgg);\n}\n\n/***************************************************************************\n    Test the chunky file stuff.\n***************************************************************************/\nvoid TestCfl(void)\n{\n    enum\n    {\n        relPaul,\n        relMarge,\n        relTig,\n        relCarl,\n        relPriscilla,\n        relGreg,\n        relShon,\n        relClaire,\n        relMike,\n        relStephen,\n        relBaby,\n        relCathy,\n        relJoshua,\n        relRachel,\n        relLim\n    };\n\n    struct EREL\n    {\n        CTG ctg;\n        CNO cno;\n        PSZ psz;\n        short relPar1, relPar2;\n    };\n\n    const CTG kctgLan = 0x41414141;\n    const CTG kctgKatz = 0x42424242;\n    const CTG kctgSandy = 0x43434343;\n    EREL dnrel[relLim] = {\n        {kctgLan, 0, PszLit(\"Paul\"), relLim, relLim},         {kctgLan, 0, PszLit(\"Marge\"), relLim, relLim},\n        {kctgLan, 0, PszLit(\"Tig\"), relPaul, relMarge},       {kctgKatz, 0, PszLit(\"Carl\"), relLim, relLim},\n        {kctgKatz, 0, PszLit(\"Priscilla\"), relLim, relLim},   {kctgKatz, 0, PszLit(\"Greg\"), relCarl, relPriscilla},\n        {kctgKatz, 0, PszLit(\"Shon\"), relCarl, relPriscilla}, {kctgKatz, 0, PszLit(\"Claire\"), relPaul, relMarge},\n        {kctgKatz, 0, PszLit(\"Mike\"), relCarl, relPriscilla}, {kctgKatz, 0, PszLit(\"Stephen\"), relGreg, relLim},\n        {kctgKatz, 0, PszLit(\"Baby\"), relShon, relClaire},    {kctgSandy, 0, PszLit(\"Cathy\"), relCarl, relPriscilla},\n        {kctgSandy, 0, PszLit(\"Joshua\"), relCathy, relLim},   {kctgSandy, 0, PszLit(\"Rachel\"), relCathy, relLim},\n    };\n\n    FNI fni, fniDst;\n    PCFL pcfl, pcflDst;\n    BLCK blck;\n    short rel;\n    long icki;\n    CNO cno;\n    CKI cki;\n    EREL *perel, *perelPar;\n    STN stn;\n    achar rgch[kcchMaxSz];\n\n    while (FGetFniSaveMacro(&fni, 'TEXT',\n                            \"\\x9\"\n                            \"Save As: \",\n                            \"\\x4\"\n                            \"Junk\",\n                            PszLit(\"All files\\0*.*\\0\"), NULL))\n    {\n        AssertDo((pcfl = CFL::PcflCreate(&fni, fcflNil)) != pvNil, 0);\n        AssertDo(fniDst.FGetTemp(), 0);\n        AssertDo((pcflDst = CFL::PcflCreate(&fniDst, fcflNil)) != pvNil, 0);\n\n        for (rel = 0; rel < relLim; rel++)\n        {\n            perel = &dnrel[rel];\n            AssertDo(pcfl->FAddPv(perel->psz, CchSz(perel->psz), perel->ctg, &perel->cno), 0);\n            stn = perel->psz;\n            AssertDo(pcfl->FSetName(perel->ctg, perel->cno, &stn), 0);\n            if (perel->relPar1 < relLim)\n            {\n                perelPar = &dnrel[perel->relPar1];\n                AssertDo(pcfl->FAdoptChild(perelPar->ctg, perelPar->cno, perel->ctg, perel->cno), 0);\n            }\n            if (perel->relPar2 < relLim)\n            {\n                perelPar = &dnrel[perel->relPar2];\n                AssertDo(pcfl->FAdoptChild(perelPar->ctg, perelPar->cno, perel->ctg, perel->cno), 0);\n            }\n            AssertDo(pcfl->FCopy(perel->ctg, perel->cno, pcflDst, &cno), \"copy failed\");\n        }\n        AssertDo(pcfl->Ccki() == 14, 0);\n        for (rel = 0; rel < relLim; rel++)\n        {\n            perel = &dnrel[rel];\n            pcfl->FGetName(perel->ctg, perel->cno, &stn);\n            AssertDo(FEqualRgb(stn.Prgch(), perel->psz, stn.Cch()), 0);\n            AssertDo(pcfl->FFind(perel->ctg, perel->cno, &blck), 0);\n            AssertDo(blck.FRead(rgch), 0);\n            AssertDo(FEqualRgb(rgch, perel->psz, CchSz(perel->psz) * size(achar)), 0);\n        }\n\n        // copy all the chunks - they should already be there, but this\n        // should set up all the child links\n        for (rel = 0; rel < relLim; rel++)\n        {\n            perel = &dnrel[rel];\n            AssertDo(pcfl->FCopy(perel->ctg, perel->cno, pcflDst, &cno), \"copy failed\");\n        }\n        AssertPo(pcflDst, fcflFull);\n\n        // this should delete relShon, but not relBaby\n        perelPar = &dnrel[relCarl];\n        perel = &dnrel[relShon];\n        pcfl->DeleteChild(perelPar->ctg, perelPar->cno, perel->ctg, perel->cno);\n        perelPar = &dnrel[relPriscilla];\n        pcfl->DeleteChild(perelPar->ctg, perelPar->cno, perel->ctg, perel->cno);\n        AssertDo(pcfl->Ccki() == 13, 0);\n\n        // this should delete relGreg and relStephen\n        perelPar = &dnrel[relCarl];\n        perel = &dnrel[relGreg];\n        pcfl->DeleteChild(perelPar->ctg, perelPar->cno, perel->ctg, perel->cno);\n        perelPar = &dnrel[relPriscilla];\n        pcfl->DeleteChild(perelPar->ctg, perelPar->cno, perel->ctg, perel->cno);\n        AssertDo(pcfl->Ccki() == 11, 0);\n\n        // this should delete relCarl, relPriscilla, relCathy, relJoshua,\n        // relRachel and relMike\n        pcfl->Delete(perelPar->ctg, perelPar->cno);\n        perelPar = &dnrel[relCarl];\n        pcfl->Delete(perelPar->ctg, perelPar->cno);\n        AssertDo(pcfl->Ccki() == 5, 0);\n\n        for (icki = 0; pcfl->FGetCki(icki, &cki); icki++)\n        {\n            AssertDo(pcfl->FGetName(cki.ctg, cki.cno, &stn), 0);\n            AssertDo(pcfl->FFind(cki.ctg, cki.cno, &blck), 0);\n            AssertDo(blck.FRead(rgch), 0);\n            AssertDo(FEqualRgb(rgch, stn.Prgch(), stn.Cch() * size(achar)), 0);\n            AssertDo(stn.Cch() * size(achar) == blck.Cb(), 0);\n        }\n\n        // copy all the chunks back\n        for (icki = 0; pcflDst->FGetCki(icki, &cki); icki++)\n        {\n            AssertDo(pcflDst->FCopy(cki.ctg, cki.cno, pcfl, &cno), \"copy failed\");\n        }\n        AssertPo(pcfl, fcflFull);\n        AssertDo(pcfl->Ccki() == 14, 0);\n        ReleasePpo(&pcflDst);\n\n        AssertDo(pcfl->FSave(BigLittle('JUNK', 'KNUJ'), pvNil), 0);\n        ReleasePpo(&pcfl);\n    }\n\n    while (FGetFniOpenMacro(&fni, pvNil, 0, PszLit(\"All files\\0*.*\\0\"), NULL))\n    {\n        AssertDo(fni.TExists() == tYes, 0);\n        pcfl = CFL::PcflOpen(&fni, fcflNil);\n        if (pcfl == pvNil)\n            continue;\n        AssertPo(pcfl, 0);\n        if (FGetFniSaveMacro(&fni, 'TEXT',\n                             \"\\x9\"\n                             \"Save As: \",\n                             \"\\x4\"\n                             \"Junk\",\n                             PszLit(\"All files\\0*.*\\0\"), NULL))\n        {\n            AssertDo(pcfl->FSave(BigLittle('JUNK', 'KNUJ'), &fni), 0);\n        }\n        ReleasePpo(&pcfl);\n    }\n\n    CFL::CloseUnmarked();\n    CFL::ClearMarks();\n    CFL::CloseUnmarked();\n}\n\n/******************************************************************************\n    Test the error registration code.\n******************************************************************************/\nvoid TestErs(void)\n{\n    const long cercTest = 30;\n    long erc, ercT;\n\n    vpers->Clear();\n    Assert(vpers->Cerc() == 0, \"bad count of error codes on stack\");\n\n    for (erc = 0; erc < cercTest; erc++)\n    {\n        Assert(vpers->Cerc() == LwMin(erc, kcerdMax), \"bad count of error codes on stack\");\n        PushErc(erc);\n        AssertVar(vpers->FIn(erc), \"error code not found\", &erc);\n    }\n\n    for (erc = cercTest - 1; vpers->FIn(erc); erc--)\n        ;\n    AssertVar(erc == cercTest - kcerdMax - 1, \"lost error code\", &erc);\n\n    for (erc = 0; erc < vpers->Cerc(); erc++)\n    {\n        AssertVar((ercT = vpers->ErcGet(erc)) == cercTest - kcerdMax + erc, \"invalid error code\", &ercT);\n    }\n\n    for (erc = cercTest - 1; vpers->FPop(&ercT); erc--)\n        AssertVar(ercT == erc, \"bogus error code returned\", &ercT);\n    AssertVar(erc == cercTest - kcerdMax - 1, \"lost error code\", &erc);\n\n    for (erc = 0; erc < cercTest; erc++)\n    {\n        Assert(vpers->Cerc() == LwMin(erc, kcerdMax), \"bad count of error codes on stack\");\n        PushErc(erc);\n        AssertVar(vpers->FIn(erc), \"error code not found\", &erc);\n    }\n    vpers->Clear();\n    Assert(vpers->Cerc() == 0, \"bad count of error codes on stack\");\n}\n\n/******************************************************************************\n    Test chunky resource file\n******************************************************************************/\nvoid TestCrf(void)\n{\n    const CNO cnoLim = 10;\n    FNI fni;\n    CTG ctg = 'JUNK';\n    CNO cno;\n    PGHQ rgpghq[cnoLim];\n    PCFL pcfl;\n    PCRF pcrf;\n    HQ hq;\n    PGHQ pghq;\n\n    if (!fni.FGetTemp() || pvNil == (pcfl = CFL::PcflCreate(&fni, fcflWriteEnable | fcflTemp)))\n    {\n        Bug(\"creating chunky file failed\");\n        return;\n    }\n\n    for (cno = 0; cno < cnoLim; cno++)\n    {\n        AssertDo(pcfl->FPutPv(\"Test string\", 11, ctg, cno), 0);\n    }\n\n    if (pvNil == (pcrf = CRF::PcrfNew(pcfl, 50)))\n    {\n        Bug(\"creating CRF failed\");\n        ReleasePpo(&pcfl);\n        return;\n    }\n    ReleasePpo(&pcfl);\n\n    for (cno = 0; cno < cnoLim; cno++)\n        pcrf->TLoad(ctg, cno, GHQ::FReadGhq, rscNil, 10);\n\n    for (cno = 0; cno < cnoLim; cno++)\n        pcrf->TLoad(ctg, cno, GHQ::FReadGhq, rscNil, 20);\n\n    for (cno = 0; cno < cnoLim; cno++)\n        pcrf->TLoad(ctg, cno, GHQ::FReadGhq, rscNil, 20 + cno);\n\n    for (cno = 0; cno < cnoLim; cno++)\n    {\n        pghq = (PGHQ)pcrf->PbacoFetch(ctg, cno, GHQ::FReadGhq);\n        if (pvNil == pghq)\n            continue;\n        hq = pghq->hq;\n        Assert(CbOfHq(hq) == 11, \"wrong length\");\n        Assert(FEqualRgb(QvFromHq(hq), \"Test string\", 11), \"bad bytes\");\n        ReleasePpo(&pghq);\n    }\n\n    for (cno = 0; cno < cnoLim; cno++)\n    {\n        pghq = (PGHQ)pcrf->PbacoFetch(ctg, cno, GHQ::FReadGhq);\n        rgpghq[cno] = pghq;\n        if (pvNil == pghq)\n            continue;\n        hq = pghq->hq;\n        Assert(CbOfHq(hq) == 11, \"wrong length\");\n        Assert(FEqualRgb(QvFromHq(hq), \"Test string\", 11), \"bad bytes\");\n    }\n\n    for (cno = 0; cno < cnoLim; cno++)\n    {\n        ReleasePpo(&rgpghq[cno]);\n    }\n\n    ReleasePpo(&pcrf);\n}\n"
  },
  {
    "path": "kauai/src/text.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Text management classes.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nRTCLASS(EDCB)\nRTCLASS(EDSL)\nRTCLASS(EDPL)\nRTCLASS(EDML)\nRTCLASS(EDMW)\n\nconst long kdxpInsetEdcb = 2;\nconst long kdxpInsetSled = 2;\n\n/***************************************************************************\n    Constructor for edit control parameter block.\n***************************************************************************/\nEDPAR::EDPAR(long hid, PGOB pgob, ulong grfgob, long gin, RC *prcAbs, RC *prcRel, long onn, ulong grfont, long dypFont,\n             long tah, long tav, ACR acrFore, ACR acrBack, long cmhl)\n    : _gcb(hid, pgob, grfgob, gin, prcAbs, prcRel)\n{\n    _onn = onn;\n    _grfont = grfont;\n    _dypFont = dypFont;\n    _tah = tah;\n    _tav = tav;\n    _acrFore = acrFore;\n    _acrBack = acrBack;\n    _cmhl = cmhl;\n}\n\n/***************************************************************************\n    Set the data in the EDPAR.\n***************************************************************************/\nvoid EDPAR::Set(long hid, PGOB pgob, ulong grfgob, long gin, RC *prcAbs, RC *prcRel, long onn, ulong grfont,\n                long dypFont, long tah, long tav, ACR acrFore, ACR acrBack, long cmhl)\n{\n    _gcb.Set(hid, pgob, grfgob, gin, prcAbs, prcRel);\n    _onn = onn;\n    _grfont = grfont;\n    _dypFont = dypFont;\n    _tah = tah;\n    _tav = tav;\n    _acrFore = acrFore;\n    _acrBack = acrBack;\n    _cmhl = cmhl;\n}\n\n/***************************************************************************\n    Set the font portion of the EDPAR.\n***************************************************************************/\nvoid EDPAR::SetFont(long onn, ulong grfont, long dypFont, long tah, long tav, ACR acrFore, ACR acrBack)\n{\n    _onn = onn;\n    _grfont = grfont;\n    _dypFont = dypFont;\n    _tah = tah;\n    _tav = tav;\n    _acrFore = acrFore;\n    _acrBack = acrBack;\n}\n\n/***************************************************************************\n    Constructor for edit control.\n***************************************************************************/\nEDCB::EDCB(PGCB pgcb, long cmhl) : GOB(pgcb)\n{\n    AssertBaseThis(0);\n    _cmhl = cmhl;\n    _fMark = (kginMark == pgcb->_gin || kginDefault == pgcb->_gin && kginMark == GOB::GinDefault());\n    _pgnv = pvNil;\n}\n\n/***************************************************************************\n    Constructor for edit control.\n***************************************************************************/\nEDCB::~EDCB(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pgnv);\n}\n\n/***************************************************************************\n    Initialize the edit control.\n***************************************************************************/\nbool EDCB::_FInit(void)\n{\n    AssertBaseThis(0);\n    PGPT pgpt;\n\n    if (_fMark)\n    {\n        RC rc(0, 0, 1, 1);\n\n        if (pvNil == (pgpt = GPT::PgptNewOffscreen(&rc, 8)))\n            return fFalse;\n    }\n    else\n    {\n        pgpt = Pgpt();\n        pgpt->AddRef();\n    }\n\n    _pgnv = NewObj GNV(this, pgpt);\n    ReleasePpo(&pgpt);\n\n    return pvNil != _pgnv;\n}\n\n/***************************************************************************\n    Draw the contents of the gob.\n***************************************************************************/\nvoid EDCB::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    long ln, lnLast;\n    RC rc;\n\n    _GetRcContent(&rc);\n    if (rc.FIntersect(prcClip))\n    {\n        pgnv->IntersectRcVis(&rc);\n        ln = _LnFromYp(prcClip->ypTop);\n        lnLast = _LnFromYp(prcClip->ypBottom - 1);\n\n        for (; ln <= lnLast; ln++)\n            _DrawLine(pgnv, ln);\n        if (_fSelOn)\n            _InvertSel(pgnv);\n    }\n}\n\n/***************************************************************************\n    Handle a mousedown in the edit control.\n***************************************************************************/\nbool EDCB::FCmdTrackMouse(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    long ln, ich;\n\n    if (pcmd->cid == cidMouseDown)\n    {\n        Assert(vpcex->PgobTracking() == pvNil, \"mouse already being tracked!\");\n        vpcex->TrackMouse(this);\n        _fSelByWord = (pcmd->cact > 1) && !(pcmd->grfcust & fcustShift);\n    }\n    else\n    {\n        Assert(vpcex->PgobTracking() == this, \"not tracking mouse!\");\n        Assert(pcmd->cid == cidTrackMouse, 0);\n    }\n\n    ln = _LnFromYp(pcmd->yp);\n    ich = _IchFromLnXp(ln, pcmd->xp, !_fSelByWord);\n    ich = LwBound(ich, 0, IchMac() + 1);\n    if (pcmd->cid != cidMouseDown || (pcmd->grfcust & fcustShift))\n    {\n        if (_fSelByWord)\n        {\n            ich = (ich < _ichAnchor) ? _IchPrev(ich + 1, fTrue) : _IchNext(ich, fTrue);\n        }\n        SetSel(_ichAnchor, ich);\n    }\n    else\n    {\n        if (_fSelByWord)\n            ich = _IchPrev(ich + 1, fTrue);\n        SetSel(ich, _fSelByWord ? _IchNext(ich, fTrue) : ich);\n    }\n    _fXpValid = fFalse;\n    _SwitchSel(fTrue); // make sure the selection is on\n    ShowSel(fFalse);\n\n    if (!(pcmd->grfcust & fcustMouse))\n        vpcex->EndMouseTracking();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle a key down.\n***************************************************************************/\nbool EDCB::FCmdKey(PCMD_KEY pcmd)\n{\n    const long kcchInsBuf = 64;\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    ulong grfcust;\n    long vkDone;\n    long dich, ichLim;\n    long dlnSel, ln, lnMac;\n    long cact;\n    CMD cmd;\n    achar rgch[kcchInsBuf + 1];\n    bool fPage;\n\n    // keep fetching characters until we get a cursor key, delete key or\n    // until the buffer is full.\n    vkDone = vkNil;\n    ichLim = 0;\n    do\n    {\n        grfcust = pcmd->grfcust;\n        switch (pcmd->vk)\n        {\n        // these keys all terminate the key fetching loop\n        case kvkHome:\n        case kvkEnd:\n        case kvkLeft:\n        case kvkRight:\n        case kvkUp:\n        case kvkDown:\n        case kvkPageUp:\n        case kvkPageDown:\n        case kvkDelete:\n        case kvkBack:\n            vkDone = pcmd->vk;\n            goto LInsert;\n\n        default:\n            if (chNil == pcmd->ch)\n                break;\n            if (!_FFilterCh((achar)pcmd->ch))\n            {\n                cmd = *(CMD *)pcmd;\n                cmd.cid = cidBadKey;\n                cmd.pcmh = PgobPar();\n                ((PCMD_BADKEY)&cmd)->hid = Hid();\n                vpcex->PushCmd(&cmd);\n                goto LInsert;\n            }\n\n            for (cact = 0; cact < pcmd->cact && ichLim < kcchInsBuf; cact++)\n            {\n                rgch[ichLim++] = (achar)pcmd->ch;\n#ifdef WIN\n                if ((achar)pcmd->ch == kchReturn)\n                    rgch[ichLim++] = kchLineFeed;\n#endif // WIN\n            }\n            break;\n        }\n\n        pcmd = (PCMD_KEY)&cmd;\n    } while (ichLim < kcchInsBuf && vpcex->FGetNextKey(&cmd));\n\nLInsert:\n    if (ichLim > 0)\n    {\n        // have some characters to insert\n        FReplace(rgch, ichLim, _ichAnchor, _ichOther);\n    }\n\n    dich = 0;\n    fPage = fFalse;\n    switch (vkDone)\n    {\n    case kvkHome:\n        if (grfcust & fcustCmd)\n            dich = -_ichOther;\n        else\n            dich = _IchMinLn(_LnFromIch(_ichOther)) - _ichOther;\n        _fXpValid = fFalse;\n        goto LSetSel;\n\n    case kvkEnd:\n        if (grfcust & fcustCmd)\n            dich = IchMac() - _ichOther;\n        else\n        {\n            dich = _IchMinLn(_LnFromIch(_ichOther) + 1);\n            dich = _IchPrev(dich) - _ichOther;\n        }\n        _fXpValid = fFalse;\n        goto LSetSel;\n\n    case kvkLeft:\n        dich = _IchPrev(_ichOther, FPure(grfcust & fcustCmd)) - _ichOther;\n        _fXpValid = fFalse;\n        goto LSetSel;\n\n    case kvkRight:\n        dich = _IchNext(_ichOther, FPure(grfcust & fcustCmd)) - _ichOther;\n        _fXpValid = fFalse;\n        goto LSetSel;\n\n    case kvkPageUp:\n        fPage = fTrue;\n    case kvkUp:\n        dlnSel = -1;\n        goto LMoveVert;\n    case kvkPageDown:\n        fPage = fTrue;\n    case kvkDown:\n        dlnSel = 1;\n    LMoveVert:\n        lnMac = _LnMac();\n        ln = _LnFromIch(_ichOther);\n\n        if (dlnSel < 0 && ln == 0)\n        {\n            // do the same as the home key\n            dich = -_ichOther;\n            _fXpValid = fFalse;\n        }\n        else if (dlnSel > 0 && ln >= lnMac - 1)\n        {\n            // do the same as the end key\n            dich = IchMac() - _ichOther;\n            _fXpValid = fFalse;\n        }\n        else\n        {\n            if (!_fXpValid)\n            {\n                _xpSel = _XpFromIch(_ichOther) - _xp;\n                _fXpValid = fTrue;\n            }\n            if (fPage)\n            {\n                // determine dlnSel\n                RC rc;\n                long yp, dyp;\n\n                _GetRcContent(&rc);\n                yp = _YpFromLn(ln);\n                dyp = _YpFromLn(ln + 1) - yp;\n                dyp = rc.Dyp() - dyp;\n                Assert(LwAbs(dlnSel) == 1, \"bad dlnSel\");\n                yp = yp + dlnSel * dyp; // the target yp\n                dlnSel = dlnSel * LwMax(1, LwAbs(_LnFromYp(yp) - ln));\n            }\n            // to play it safe...\n            ln = LwBound(ln + dlnSel, 0, lnMac);\n            dich = _IchFromLnXp(ln, _xpSel + _xp) - _ichOther;\n        }\n\n    LSetSel:\n        // move the selection\n        if (grfcust & fcustShift)\n        {\n            // extend selection\n            SetSel(_ichAnchor, _ichOther + dich);\n            ShowSel();\n        }\n        else\n        {\n            long ichT = _ichOther;\n\n            if (ichT == _ichAnchor || (grfcust & fcustCmd))\n                ichT += dich;\n            else if ((dich > 0) != (ichT > _ichAnchor))\n                ichT = _ichAnchor;\n            SetSel(ichT, ichT);\n            ShowSel();\n        }\n        break;\n\n    case kvkDelete:\n    case kvkBack:\n        if (_ichAnchor != _ichOther)\n            dich = _ichOther - _ichAnchor;\n        else if (vkDone == kvkDelete)\n            dich = _IchNext(_ichAnchor) - _ichAnchor;\n        else\n            dich = _IchPrev(_ichAnchor) - _ichAnchor;\n        if (dich != 0)\n            FReplace(pvNil, 0, _ichAnchor, _ichAnchor + dich);\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Do idle processing.  If this handler has the active selection, make sure\n    the selection is on or off according to rglw[0] (non-zero means on)\n    and set rglw[0] to false.  Always return false.\n***************************************************************************/\nbool EDCB::FCmdSelIdle(PCMD pcmd)\n{\n    AssertThis(0);\n\n    // if rglw[1] is this one's hid, don't change the sel state.\n    if (pcmd->rglw[1] != Hid())\n    {\n        if (!pcmd->rglw[0])\n            _SwitchSel(fFalse, kginDefault);\n        else if (_ichAnchor != _ichOther || _tsSel == 0)\n            _SwitchSel(fTrue);\n        else if (DtsCaret() < TsCurrent() - _tsSel)\n            _SwitchSel(!_fSelOn);\n    }\n    pcmd->rglw[0] = fFalse;\n    return fFalse;\n}\n\n/***************************************************************************\n    Handle an activate sel command.\n***************************************************************************/\nbool EDCB::FCmdActivateSel(PCMD pcmd)\n{\n    Activate(fTrue);\n    return fTrue;\n}\n\n/***************************************************************************\n    Either make the selection for the EDCB active or inactive.\n***************************************************************************/\nvoid EDCB::Activate(bool fActive)\n{\n    AssertThis(0);\n    vpcex->RemoveCmh(this, _cmhl);\n    if (fActive)\n        vpcex->FAddCmh(this, _cmhl);\n    else\n        _SwitchSel(fFalse, kginDefault);\n}\n\n/***************************************************************************\n    Get the rectangle that is to contain the text.  This allows derived\n    classes to have borders, etc.\n***************************************************************************/\nvoid EDCB::_GetRcContent(RC *prc)\n{\n    GetRc(prc, cooLocal);\n}\n\n/***************************************************************************\n    Set the vis for the GNV to be the intersection of the GOB's vis and\n    the content rc.\n***************************************************************************/\nvoid EDCB::_InitGnv(PGNV pgnv)\n{\n    RC rc;\n\n    _GetRcContent(&rc);\n    pgnv->IntersectRcVis(&rc);\n}\n\n/***************************************************************************\n    The rectangle has changed - show the selection.\n***************************************************************************/\nvoid EDCB::_NewRc(void)\n{\n    ShowSel(fTrue, ginNil);\n}\n\n/***************************************************************************\n    Set the selection.\n***************************************************************************/\nvoid EDCB::SetSel(long ichAnchor, long ichOther, long gin)\n{\n    AssertThis(0);\n    long ichMac = IchMac();\n\n    ichAnchor = LwBound(ichAnchor, 0, ichMac + 1);\n    ichOther = LwBound(ichOther, 0, ichMac + 1);\n\n    if (ichAnchor == _ichAnchor && ichOther == _ichOther)\n        return;\n\n    if (_fSelOn)\n    {\n        if ((_fMark || _fClear) && gin == kginDraw)\n            gin = kginMark;\n        _InitGnv(_pgnv);\n        if (_ichAnchor != ichAnchor || _ichAnchor == _ichOther || ichAnchor == ichOther)\n        {\n            _InvertSel(_pgnv, gin);\n            _ichAnchor = ichAnchor;\n            _ichOther = ichOther;\n            _InvertSel(_pgnv, gin);\n            _tsSel = TsCurrent();\n        }\n        else\n        {\n            // they have the same anchor and neither is an insertion\n            _InvertIchRange(_pgnv, _ichOther, ichOther, gin);\n            _ichOther = ichOther;\n        }\n    }\n    else\n    {\n        _ichAnchor = ichAnchor;\n        _ichOther = ichOther;\n        _tsSel = 0L;\n    }\n}\n\n/***************************************************************************\n    Turn the sel on or off according to fOn.\n***************************************************************************/\nvoid EDCB::_SwitchSel(bool fOn, long gin)\n{\n    AssertThis(0);\n\n    if (FPure(fOn) != FPure(_fSelOn))\n    {\n        if ((_fMark || _fClear) && gin == kginDraw)\n            gin = kginMark;\n        _InitGnv(_pgnv);\n        _InvertSel(_pgnv, gin);\n        _fSelOn = FPure(fOn);\n        _tsSel = TsCurrent();\n    }\n}\n\n/***************************************************************************\n    Make sure the selection is visible (or at least _ichOther is).\n***************************************************************************/\nvoid EDCB::ShowSel(bool fForceJustification, long gin)\n{\n    AssertThis(0);\n    long ln, lnHope;\n    long dxpScroll, dypScroll;\n    long zpMin, zpLim;\n    RC rc;\n    long ichAnchor = _ichAnchor;\n\n    // find the lines we want to show\n    ln = _LnFromIch(_ichOther);\n    lnHope = _LnFromIch(ichAnchor);\n    _GetRcContent(&rc);\n    rc.Inset(kdxpInsetEdcb, 0);\n\n    // find the height needed to display these\n    zpMin = _YpFromLn(LwMin(ln, lnHope));\n    zpLim = _YpFromLn(LwMax(ln, lnHope) + 1);\n    if (zpLim > zpMin + rc.Dyp() && ln != lnHope)\n    {\n        // can't show both\n        if (lnHope > ln)\n        {\n            zpMin = _YpFromLn(ln);\n            zpLim = zpMin + rc.Dyp();\n        }\n        else\n        {\n            zpLim = _YpFromLn(ln + 1);\n            zpMin = zpLim - rc.Dyp();\n        }\n        ichAnchor = _ichOther;\n    }\n    dypScroll = fForceJustification ? -_yp : 0;\n    dypScroll = LwMax(LwMin(dypScroll, rc.ypBottom - zpLim), rc.ypTop - zpMin);\n\n    // now do the horizontal stuff\n    zpMin = _XpFromIch(_ichOther);\n    zpLim = _XpFromIch(ichAnchor);\n    if (LwAbs(zpLim - zpMin) > rc.Dxp())\n    {\n        // can't show both\n        if (zpMin > zpLim)\n        {\n            zpLim = zpMin;\n            zpMin = zpLim - rc.Dxp();\n        }\n        else\n            zpLim = zpMin + rc.Dxp();\n    }\n    else\n        SortLw(&zpMin, &zpLim);\n    dxpScroll = fForceJustification ? -_xp : 0;\n    dxpScroll = LwMax(LwMin(dxpScroll, rc.xpRight - zpLim), rc.xpLeft - zpMin);\n\n    if (dxpScroll != 0 || dypScroll != 0)\n    {\n        if ((_fMark || _fClear) && gin == kginDraw)\n            gin = kginMark;\n        _Scroll(dxpScroll, dypScroll, gin);\n    }\n}\n\n/***************************************************************************\n    Invert the current selection.\n***************************************************************************/\nvoid EDCB::_InvertSel(PGNV pgnv, long gin)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    RC rc, rcT;\n    long ln;\n\n    if (_ichAnchor == _ichOther)\n    {\n        // insertion bar\n        ln = _LnFromIch(_ichAnchor);\n        rc.xpLeft = _XpFromIch(_ichAnchor) - 1;\n        rc.xpRight = rc.xpLeft + 2;\n        rc.ypTop = _YpFromLn(ln);\n        rc.ypBottom = _YpFromLn(ln + 1);\n        _GetRcContent(&rcT);\n        if (rcT.FIntersect(&rc))\n        {\n            if (kginDraw == gin)\n                pgnv->FillRc(&rcT, kacrInvert);\n            else\n                InvalRc(&rcT, gin);\n        }\n    }\n    else\n        _InvertIchRange(pgnv, _ichAnchor, _ichOther, gin);\n}\n\n/***************************************************************************\n    Invert a range.\n***************************************************************************/\nvoid EDCB::_InvertIchRange(PGNV pgnv, long ich1, long ich2, long gin)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertIn(ich1, 0, IchMac() + 1);\n    AssertIn(ich2, 0, IchMac() + 1);\n    RC rc, rcClip, rcT;\n    long ln1, ln2, xp2;\n\n    if (ich1 == ich2)\n        return;\n    SortLw(&ich1, &ich2);\n    ln1 = _LnFromIch(ich1);\n    ln2 = _LnFromIch(ich2);\n\n    _GetRcContent(&rcClip);\n    rc.xpLeft = _XpFromIch(ich1);\n    rc.ypTop = _YpFromLn(ln1);\n    rc.ypBottom = _YpFromLn(ln1 + 1);\n    xp2 = _XpFromIch(ich2);\n\n    if (ln2 == ln1)\n    {\n        // only one line involved\n        rc.xpRight = xp2;\n        if (rcT.FIntersect(&rc, &rcClip))\n        {\n            if (kginDraw == gin)\n                _HiliteRc(pgnv, &rcT);\n            else\n                InvalRc(&rcT, gin);\n        }\n        return;\n    }\n\n    // invert the sel on the first line\n    rc.xpRight = rcClip.xpRight;\n    if (rcT.FIntersect(&rc, &rcClip))\n    {\n        if (kginDraw == gin)\n            _HiliteRc(pgnv, &rcT);\n        else\n            InvalRc(&rcT, gin);\n    }\n\n    // invert the main rectangular block\n    rc.xpLeft = rcClip.xpLeft;\n    rc.ypTop = rc.ypBottom;\n    rc.ypBottom = _YpFromLn(ln2);\n    if (rcT.FIntersect(&rc, &rcClip))\n    {\n        if (kginDraw == gin)\n            _HiliteRc(pgnv, &rcT);\n        else\n            InvalRc(&rcT, gin);\n    }\n\n    // invert the last line\n    rc.ypTop = rc.ypBottom;\n    rc.ypBottom = _YpFromLn(ln2 + 1);\n    rc.xpRight = xp2;\n    if (rcT.FIntersect(&rc, &rcClip))\n    {\n        if (kginDraw == gin)\n            _HiliteRc(pgnv, &rcT);\n        else\n            InvalRc(&rcT, gin);\n    }\n}\n\n/***************************************************************************\n    Update the correct lines on screen.\n***************************************************************************/\nvoid EDCB::_UpdateLn(long ln, long clnIns, long clnDel, long dypDel, long gin)\n{\n    AssertThis(0);\n    AssertIn(ln, 0, _LnMac());\n    AssertIn(clnIns, 0, _LnMac() + 1 - ln);\n    AssertIn(clnDel, 0, kcbMax);\n    AssertIn(dypDel, 0, kcbMax);\n    RC rcLoc, rc;\n    long yp, dypIns;\n    long lnMac = _LnFromIch(IchMac());\n\n    _GetRcContent(&rcLoc);\n\n    yp = _YpFromLn(ln);\n    dypIns = _YpFromLn(ln + clnIns) - yp;\n    rc = rcLoc;\n    rc.ypTop = yp;\n    rc.ypBottom = yp + dypIns;\n    if (lnMac > ln + clnIns - clnDel && dypIns != dypDel)\n    {\n        // Have some bits to blt vertically. If the background isn't clear,\n        // but _fMark is set, still do the scroll, since _fMark is intended\n        // to avoid flashing (allowing offscreen drawing) and scrolling\n        // doesn't flash anyway.\n        if (_fClear && kginDraw == gin)\n            gin = kginMark;\n\n        if (kginDraw != gin)\n            rc.ypBottom = rcLoc.ypBottom;\n        else\n        {\n            if (_fMark)\n                gin = kginMark;\n\n            rc = rcLoc;\n            rc.ypTop = LwMax(rc.ypTop, yp + LwMin(dypIns, dypDel));\n            Scroll(&rc, 0, dypIns - dypDel, gin);\n            rc.ypBottom = rc.ypTop;\n            rc.ypTop = yp;\n        }\n    }\n    else if ((_fMark || _fClear) && gin == kginDraw)\n        gin = kginMark;\n\n    if (!rc.FEmpty())\n        InvalRc(&rc, gin);\n\n    ShowSel(fTrue, gin);\n    _fXpValid = fFalse;\n}\n\n/***************************************************************************\n    Scroll the text in the edit control.\n***************************************************************************/\nvoid EDCB::_Scroll(long dxp, long dyp, long gin)\n{\n    AssertThis(0);\n    RC rc;\n\n    _xp += dxp;\n    _yp += dyp;\n    _GetRcContent(&rc);\n    Scroll(&rc, dxp, dyp, gin);\n}\n\n/***************************************************************************\n    Return the yp for the given character.\n***************************************************************************/\nlong EDCB::_YpFromIch(long ich)\n{\n    return _YpFromLn(_LnFromIch(ich));\n}\n\n/***************************************************************************\n    Return the single character at ich.\n***************************************************************************/\nachar EDCB::_ChFetch(long ich)\n{\n    AssertThis(0);\n    AssertIn(ich, 0, IchMac());\n    achar ch;\n\n    CchFetch(&ch, ich, 1);\n    return ch;\n}\n\n/***************************************************************************\n    Return ich of the previous character, skipping line feed characters. If\n    fWord is true, skip to the beginning of a word.\n***************************************************************************/\nlong EDCB::_IchPrev(long ich, bool fWord)\n{\n    AssertThis(0);\n    AssertIn(ich, 0, IchMac() + 2);\n\n    if (ich > IchMac())\n        return IchMac();\n\n    if (!fWord)\n    {\n        while (ich > 0 && (fchIgnore & GrfchFromCh(_ChFetch(--ich))))\n            ;\n    }\n    else\n    {\n        while (ich > 0 && ((fchIgnore | fchMayBreak) & GrfchFromCh(_ChFetch(ich - 1))))\n        {\n            ich--;\n        }\n        while (ich > 0 && !((fchIgnore | fchMayBreak) & GrfchFromCh(_ChFetch(ich - 1))))\n        {\n            ich--;\n        }\n    }\n\n    return ich;\n}\n\n/***************************************************************************\n    Return ich of the next character, skipping line feed characters. If\n    fWord is true, skip to the beginning of the next word.\n***************************************************************************/\nlong EDCB::_IchNext(long ich, bool fWord)\n{\n    AssertThis(0);\n    AssertIn(ich, 0, IchMac() + 1);\n    long ichMac = IchMac();\n\n    if (ich >= ichMac)\n        return ichMac;\n\n    if (!fWord)\n    {\n        while (++ich < ichMac && (fchIgnore & GrfchFromCh(_ChFetch(ich))))\n            ;\n    }\n    else\n    {\n        while (ich < ichMac && !((fchIgnore | fchMayBreak) & GrfchFromCh(_ChFetch(ich))))\n        {\n            ich++;\n        }\n        while (ich < ichMac && ((fchIgnore | fchMayBreak) & GrfchFromCh(_ChFetch(ich))))\n        {\n            ich++;\n        }\n    }\n    return ich;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the EDCB\n***************************************************************************/\nvoid EDCB::AssertValid(ulong grf)\n{\n    EDCB_PAR::AssertValid(0);\n    AssertIn(_ichAnchor, 0, kcbMax);\n    AssertIn(_ichOther, 0, kcbMax);\n    AssertPo(_pgnv, 0);\n    // REVIEW shonk: fill in EDCB::AssertValid\n}\n\n/***************************************************************************\n    Mark memory for the EDML.\n***************************************************************************/\nvoid EDCB::MarkMem(void)\n{\n    AssertValid(0);\n    EDCB_PAR::MarkMem();\n    MarkMemObj(_pgnv);\n}\n#endif\n\n/***************************************************************************\n    Constructor for plain edit control.\n***************************************************************************/\nEDPL::EDPL(PEDPAR pedpar) : EDCB(&pedpar->_gcb, pedpar->_cmhl)\n{\n    // inputs are all asserted in AssertThis\n    _onn = pedpar->_onn;\n    _grfont = pedpar->_grfont;\n    _dypFont = pedpar->_dypFont;\n    _tah = pedpar->_tah;\n    _tav = pedpar->_tav;\n    _acrFore = pedpar->_acrFore;\n    _acrBack = pedpar->_acrBack;\n    _fClear = kacrClear == _acrBack;\n\n    _dypLine = 0;\n}\n\n/***************************************************************************\n    Initialize the EDPL.\n***************************************************************************/\nbool EDPL::_FInit(void)\n{\n    AssertBaseThis(0);\n    RC rc;\n\n    if (!EDPL_PAR::_FInit())\n        return fFalse;\n\n    // get the _dypLine value\n    _pgnv->SetFont(_onn, _grfont, _dypFont, _tah);\n    _pgnv->GetRcFromRgch(&rc, pvNil, 0, 0, 0);\n    _dypLine = rc.Dyp();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the yp for the given line.\n***************************************************************************/\nlong EDPL::_YpFromLn(long ln)\n{\n    AssertThis(0);\n    AssertIn(ln, 0, _LnMac() + 1);\n    RC rc;\n\n    _GetRcContent(&rc);\n    switch (_tav)\n    {\n    default:\n        return rc.ypTop + _yp + LwMul(ln, _dypLine);\n    case tavBottom:\n        return rc.ypBottom + _yp - LwMul(_LnMac() - ln, _dypLine);\n    case tavCenter:\n        return rc.YpCenter() + _yp - LwMul(_LnMac(), _dypLine) / 2 + LwMul(ln, _dypLine);\n    }\n}\n\n/***************************************************************************\n    Return which line the yp belongs in.\n***************************************************************************/\nlong EDPL::_LnFromYp(long yp)\n{\n    AssertThis(0);\n    long yp0 = _YpFromLn(0);\n    return LwBound((yp - yp0) / _dypLine, 0, _LnMac() + 1);\n}\n\n/***************************************************************************\n    Hilite the rectangle.\n***************************************************************************/\nvoid EDPL::_HiliteRc(PGNV pgnv, RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n    pgnv->HiliteRc(prc, _acrBack);\n}\n\n/***************************************************************************\n    Return the xp for the given character.\n***************************************************************************/\nlong EDPL::_XpFromIch(long ich)\n{\n    AssertThis(0);\n    AssertIn(ich, 0, IchMac() + 1);\n    RC rc;\n    achar *prgch;\n    long ln, ichMin, cch;\n    long xp = _XpOrigin();\n\n    ln = _LnFromIch(ich);\n    ichMin = _IchMinLn(ln);\n    if (!_FLockLn(ln, &prgch, &cch))\n        return xp;\n    AssertPvCb(prgch, cch * size(achar));\n    AssertIn(ich, ichMin, ichMin + cch + 1);\n\n    _pgnv->SetFont(_onn, _grfont, _dypFont, _tah);\n    if (tahLeft != _tah)\n    {\n        RC rcAll;\n\n        _pgnv->GetRcFromRgch(&rcAll, prgch, cch, xp, _yp);\n        xp = rcAll.xpLeft;\n        _pgnv->SetFontAlign(tahLeft, tavTop);\n    }\n    _pgnv->GetRcFromRgch(&rc, prgch, ich - ichMin, xp, _yp);\n    _UnlockLn(ln, prgch);\n\n    return rc.xpRight;\n}\n\n/***************************************************************************\n    Find the character that the xp is in on the given line. If fClosest is\n    true, this finds the character boundary that the point is closest to\n    (for traditional selection). If fClosest is false, it finds the character\n    that the xp value is over.\n***************************************************************************/\nlong EDPL::_IchFromLnXp(long ln, long xp, bool fClosest)\n{\n    AssertThis(0);\n    long xpT;\n    long ich;\n    long ichMin = _IchMinLn(ln);\n    long ichMinLn = ichMin;\n    long ichLim = _IchPrev(_IchMinLn(ln + 1));\n\n    while (ichMin < ichLim)\n    {\n        ich = (ichMin + ichLim) / 2;\n        xpT = _XpFromIch(ich);\n        if (xpT < xp)\n            ichMin = ich + 1;\n        else\n            ichLim = ich;\n    }\n\n    ich = LwMax(ichMinLn, _IchPrev(ichMin));\n    if (fClosest && ich < ichMin)\n    {\n        // determine whether we should return ich or _IchNext(ich).\n        if ((ichLim = _IchNext(ich)) <= ichMin && LwAbs(xp - _XpFromIch(ichLim)) < LwAbs(xp - _XpFromIch(ich)))\n        {\n            ich = ichLim;\n        }\n    }\n    return ich;\n}\n\n/***************************************************************************\n    Draw the given line in the given GNV.\n***************************************************************************/\nvoid EDPL::_DrawLine(PGNV pgnv, long ln)\n{\n    AssertThis(0);\n    AssertIn(ln, 0, _LnMac() + 1);\n    RC rcSrc;\n    achar *prgch;\n    long cch;\n    long ypTop;\n\n    _GetRcContent(&rcSrc);\n    ypTop = _YpFromLn(ln);\n    if (_FLockLn(ln, &prgch, &cch))\n    {\n        AssertPvCb(prgch, cch * size(achar));\n        long xp = _XpOrigin();\n\n        pgnv->SetFont(_onn, _grfont, _dypFont, _tah);\n        if (ln > 0)\n            rcSrc.ypTop = ypTop;\n        rcSrc.ypBottom = _YpFromLn(ln + 1);\n        pgnv->FillRc(&rcSrc, _acrBack);\n        pgnv->DrawRgch(prgch, cch, xp, ypTop, _acrFore, _acrBack);\n        _UnlockLn(ln, prgch);\n    }\n    else\n    {\n        // fill to the bottom\n        rcSrc.ypTop = ypTop;\n        pgnv->FillRc(&rcSrc, _acrBack);\n    }\n}\n\n/***************************************************************************\n    Return the origin for drawing text.\n***************************************************************************/\nlong EDPL::_XpOrigin(void)\n{\n    AssertThis(0);\n    RC rc;\n\n    _GetRcContent(&rc);\n    switch (_tah)\n    {\n    default:\n        return rc.xpLeft + _xp + kdxpInsetEdcb;\n    case tahRight:\n        return rc.xpRight + _xp - kdxpInsetEdcb;\n    case tahCenter:\n        return rc.XpCenter() + _xp;\n    }\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a single-line edit control.\n***************************************************************************/\nvoid EDPL::AssertValid(ulong grf)\n{\n    EDPL_PAR::AssertValid(0);\n    Assert(vntl.FValidOnn(_onn), 0);\n    AssertIn(_dypFont, 1, kswMax);\n    AssertIn(_tah, 0, tahLim);\n    AssertIn(_tav, 0, tavLim);\n    Assert(_tav != tavBaseline, \"baseline not supported\");\n    AssertPo(&_acrFore, facrRgb | facrIndex);\n    AssertPo(&_acrBack, facrRgb | facrIndex);\n    AssertIn(_dypLine, 1, kcbMax);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for single line edit control.\n***************************************************************************/\nEDSL::EDSL(PEDPAR pedpar) : EDPL(pedpar)\n{\n    AssertBaseThis(0);\n}\n\n/***************************************************************************\n    Create a new EDSL (single line edit control).\n***************************************************************************/\nPEDSL EDSL::PedslNew(PEDPAR pedpar)\n{\n    PEDSL pedsl;\n\n    if (pvNil == (pedsl = NewObj EDSL(pedpar)))\n        return pvNil;\n\n    if (!pedsl->_FInit())\n        ReleasePpo(&pedsl);\n\n    AssertNilOrPo(pedsl, 0);\n    return pedsl;\n}\n\n/***************************************************************************\n    Get a pointer to the characters for the given line.\n***************************************************************************/\nbool EDSL::_FLockLn(long ln, achar **pprgch, long *pcch)\n{\n    AssertBaseThis(0);\n    AssertVarMem(pprgch);\n    AssertVarMem(pcch);\n    if (ln > 0)\n    {\n        *pprgch = pvNil;\n        *pcch = 0;\n        return fFalse;\n    }\n\n    *pcch = _cch;\n    *pprgch = _rgch;\n    return fTrue;\n}\n\n/***************************************************************************\n    Unlock a line.\n***************************************************************************/\nvoid EDSL::_UnlockLn(long ln, achar *prgch)\n{\n    AssertBaseThis(0);\n    Assert(prgch == _rgch, \"bad call to _UnlockLn\");\n}\n\n/***************************************************************************\n    Return the line that ich is on.\n***************************************************************************/\nlong EDSL::_LnFromIch(long ich)\n{\n    AssertBaseThis(0);\n    AssertIn(ich, 0, kcbMax);\n    return ich <= IchMac() ? 0 : 1;\n}\n\n/***************************************************************************\n    Return the first ich for the given line.\n***************************************************************************/\nlong EDSL::_IchMinLn(long ln)\n{\n    AssertBaseThis(0);\n    return ln == 0 ? 0 : IchMac() + 1;\n}\n\n/***************************************************************************\n    Return the number of characters.\n***************************************************************************/\nlong EDSL::IchMac(void)\n{\n    AssertBaseThis(0);\n    return _cch;\n}\n\n/***************************************************************************\n    Return the number of lines.\n***************************************************************************/\nlong EDSL::_LnMac(void)\n{\n    AssertBaseThis(0);\n    return 1;\n}\n\n/***************************************************************************\n    Replace the characters between ich1 and ich2 with those in (prgch, cchIns).\n    Calls _UpdateLn() to clean up the display.\n***************************************************************************/\nbool EDSL::FReplace(achar *prgch, long cchIns, long ich1, long ich2, long gin)\n{\n    AssertThis(0);\n    AssertIn(cchIns, 0, kcbMax);\n    AssertPvCb(prgch, cchIns * size(achar));\n    AssertIn(ich1, 0, IchMac() + 1);\n    AssertIn(ich2, 0, IchMac() + 1);\n\n    ich1 = LwBound(ich1, 0, _cch + 1);\n    ich2 = LwBound(ich2, 0, _cch + 1);\n    if (ich1 == ich2 && cchIns == 0)\n        return fTrue;\n\n    _SwitchSel(fFalse, gin);\n    _tsSel = 0;\n    if (ich1 != ich2)\n    {\n        SortLw(&ich1, &ich2);\n        if (_cch > ich2)\n            BltPb(_rgch + ich2, _rgch + ich1, _cch - ich2);\n        _cch -= (ich2 - ich1);\n        _ichAnchor = _ichOther = ich1;\n    }\n\n    cchIns = LwBound(cchIns, 0, kcchMaxEdsl - ich1);\n    if (0 < cchIns)\n    {\n        if (_cch > kcchMaxEdsl - cchIns)\n            _cch = kcchMaxEdsl - cchIns;\n        if (_cch > ich1)\n            BltPb(_rgch + ich1, _rgch + ich1 + cchIns, _cch - ich1);\n        CopyPb(prgch, _rgch + ich1, cchIns);\n        _cch += cchIns;\n        _ichAnchor = _ichOther = ich1 + cchIns;\n    }\n\n    _UpdateLn(0, 1, 1, _dypLine, gin);\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    If this is a character we can't accept, return false.\n***************************************************************************/\nbool EDSL::_FFilterCh(achar ch)\n{\n    return !(fchControl & GrfchFromCh(ch));\n}\n\n/***************************************************************************\n    Get the text in the edit control.\n***************************************************************************/\nvoid EDSL::GetStn(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    pstn->SetRgch(_rgch, _cch);\n}\n\n/***************************************************************************\n    Set the text in the edit control.  Sets the selection to an insertion\n    point at the end of the text.\n***************************************************************************/\nvoid EDSL::SetStn(PSTN pstn, long gin)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    FReplace(pstn->Prgch(), pstn->Cch(), 0, IchMac(), gin);\n}\n\n/***************************************************************************\n    Get some text.\n***************************************************************************/\nlong EDSL::CchFetch(achar *prgch, long ich, long cchWant)\n{\n    AssertThis(0);\n    AssertIn(cchWant, 0, kcbMax);\n    AssertIn(ich, 0, IchMac() + 1);\n    AssertPvCb(prgch, cchWant * size(achar));\n\n    if (0 < (cchWant = LwBound(cchWant, 0, IchMac() + 1 - ich)))\n        CopyPb(_rgch + ich, prgch, cchWant);\n    return cchWant;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a single-line edit control.\n***************************************************************************/\nvoid EDSL::AssertValid(ulong grf)\n{\n    long ich;\n\n    EDSL_PAR::AssertValid(0);\n    AssertIn(_cch, 0, kcchMaxEdsl + 1);\n    for (ich = _cch; ich-- > 0;)\n    {\n        Assert(_rgch[ich] != 0, \"null character in EDSL\");\n    }\n    AssertIn(_ichAnchor, 0, _cch + 1);\n    AssertIn(_ichOther, 0, _cch + 1);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for multi line edit control.\n***************************************************************************/\nEDML::EDML(PEDPAR pedpar) : EDPL(pedpar)\n{\n    _bsm.SetMinGrow(256);\n}\n\nEDML::~EDML(void)\n{\n    ReleasePpo(&_pglich);\n}\n\n/***************************************************************************\n    Create a new EDML (multi line edit control).\n***************************************************************************/\nPEDML EDML::PedmlNew(PEDPAR pedpar)\n{\n    PEDML pedml;\n\n    if (pvNil == (pedml = NewObj EDML(pedpar)))\n        return pvNil;\n    if (!pedml->_FInit())\n    {\n        ReleasePpo(&pedml);\n        return pvNil;\n    }\n    AssertPo(pedml, 0);\n    return pedml;\n}\n\n/***************************************************************************\n    Initialize the multi line edit control.\n***************************************************************************/\nbool EDML::_FInit(void)\n{\n    long ich;\n\n    if (pvNil == (_pglich = GL::PglNew(size(long))))\n        return fFalse;\n    _pglich->SetMinGrow(20);\n    ich = 0;\n    return _pglich->FPush(&ich);\n}\n\n/***************************************************************************\n    Get a pointer to the characters for the given line.\n***************************************************************************/\nbool EDML::_FLockLn(long ln, achar **pprgch, long *pcch)\n{\n    AssertThis(0);\n    AssertIn(ln, 0, _pglich->IvMac() + 1);\n    AssertVarMem(pprgch);\n    AssertVarMem(pcch);\n    long ich;\n\n    if (ln >= _pglich->IvMac())\n    {\n        *pprgch = pvNil;\n        *pcch = 0;\n        return fFalse;\n    }\n\n    _pglich->Get(ln, &ich);\n    if (ln + 1 == _pglich->IvMac())\n        *pcch = IchMac() - ich;\n    else\n    {\n        long ichT;\n\n        _pglich->Get(ln + 1, pcch);\n        ichT = LwMax(ich, _IchPrev(*pcch));\n        if (ichT < *pcch && ((fchControl | fchMayBreak) & GrfchFromCh(_ChFetch(ichT))))\n        {\n            // don't include the break character(s)\n            *pcch = ichT;\n        }\n        *pcch -= ich;\n    }\n    *pprgch = (achar *)_bsm.PvLock(ich * size(achar));\n    return fTrue;\n}\n\n/***************************************************************************\n    Unlock a line.\n***************************************************************************/\nvoid EDML::_UnlockLn(long ln, achar *prgch)\n{\n    AssertThis(0);\n    _bsm.Unlock();\n}\n\n/***************************************************************************\n    Return the line that ich is on.\n***************************************************************************/\nlong EDML::_LnFromIch(long ich)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(ich, 0, IchMac() + 1);\n    long lnMin, lnLim, ln;\n    long ichT;\n\n    if (ich > IchMac())\n    {\n        Bug(\"Why did this happen?\");\n        return _pglich->IvMac();\n    }\n\n    for (lnMin = 0, lnLim = _pglich->IvMac(); lnMin < lnLim;)\n    {\n        ln = (lnMin + lnLim) / 2;\n        _pglich->Get(ln, &ichT);\n        if (ich < ichT)\n            lnLim = ln;\n        else if (ich > ichT)\n            lnMin = ln + 1;\n        else\n            return ln;\n    }\n    Assert(lnMin > 0, \"bad lnMin\");\n    return lnMin - 1;\n}\n\n/***************************************************************************\n    Return the first ich for the given line.\n***************************************************************************/\nlong EDML::_IchMinLn(long ln)\n{\n    AssertThis(0);\n    long ich;\n\n    if (ln >= _pglich->IvMac())\n        return IchMac() + 1;\n    _pglich->Get(ln, &ich);\n    return ich;\n}\n\n/***************************************************************************\n    Return the number of characters.\n***************************************************************************/\nlong EDML::IchMac(void)\n{\n    AssertBaseThis(0);\n    Assert(_bsm.IbMac() % size(achar) == 0, \"ibMac not divisible by size(achar)\");\n    return _bsm.IbMac() / size(achar);\n}\n\n/***************************************************************************\n    Return the number of lines.\n***************************************************************************/\nlong EDML::_LnMac(void)\n{\n    AssertThis(0);\n    return _pglich->IvMac();\n}\n\n/***************************************************************************\n    Replace the characters between ich1 and ich2 with those in (prgch, cchIns).\n    Calls _UpdateLn() to clean up the display.\n***************************************************************************/\nbool EDML::FReplace(achar *prgch, long cchIns, long ich1, long ich2, long gin)\n{\n    AssertThis(fobjAssertFull);\n    AssertIn(cchIns, 0, kcbMax);\n    AssertPvCb(prgch, cchIns * size(achar));\n    AssertIn(ich1, 0, IchMac() + 1);\n    AssertIn(ich2, 0, IchMac() + 1);\n    long lnMin, clnDel, clnDel2, clnIns, ln;\n    long dich;\n    long ypOld, ypNew;\n\n    ich1 = LwBound(ich1, 0, dich = IchMac() + 1);\n    ich2 = LwBound(ich2, 0, dich);\n    if (ich1 == ich2 && cchIns == 0)\n        return fTrue;\n\n    SortLw(&ich1, &ich2);\n    lnMin = _LnFromIch(ich1);\n    clnDel = _LnFromIch(ich2) - lnMin;\n    ypOld = _YpFromLn(lnMin);\n\n    // estimate the number of inserted lines\n    clnIns = _ClnEstimate(prgch, cchIns);\n    if (clnIns > clnDel && !_pglich->FEnsureSpace(clnIns - clnDel))\n        return fFalse;\n\n    _SwitchSel(fFalse, gin);\n    _tsSel = 0;\n    if (!_FReplaceCore(prgch, cchIns, ich1, ich2 - ich1))\n        return fFalse;\n\n    // delete lines { lnMin + 1, ..., lnMin + clnDel }\n    for (ln = lnMin + clnDel; ln > lnMin; ln--)\n        _pglich->Delete(ln);\n\n    // adjust the ich's further in the _pglich\n    if (0 != (dich = cchIns - ich2 + ich1))\n    {\n        long *pich;\n        long lnLim;\n\n        pich = (long *)_pglich->QvGet(++ln);\n        for (lnLim = _pglich->IvMac(); ln < lnLim; ln++, pich++)\n            *pich += dich;\n    }\n\n    // update the selection\n    _ichAnchor = _ichOther = ich1 + cchIns;\n\n    // reformat the lines\n    ln = _LnReformat(lnMin, &clnDel2, &clnIns);\n    clnDel += clnDel2;\n\n    // keep the text in the same position vertically\n    ypNew = _YpFromLn(lnMin);\n    _yp += ypOld - ypNew;\n\n    _UpdateLn(ln, clnIns + 1, clnDel + 1, LwMul(_dypLine, clnDel + 1), gin);\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n    Do a replace operation just on the text.\n***************************************************************************/\nbool EDML::_FReplaceCore(achar *prgch, long cchIns, long ich, long cchDel)\n{\n    return _bsm.FReplace(prgch, cchIns, ich, cchDel);\n}\n\n/***************************************************************************\n    Estimate the number of new lines (exact for a simple EDML).\n***************************************************************************/\nlong EDML::_ClnEstimate(achar *prgch, long cch)\n{\n    long cln;\n    long ich;\n\n    cln = 0;\n    for (ich = 0; ich < cch; ich++)\n    {\n        if (fchBreak & GrfchFromCh(prgch[ich]))\n            cln++;\n    }\n    return cln;\n}\n\n/***************************************************************************\n    Find new line starts starting at lnMin.\n***************************************************************************/\nlong EDML::_LnReformat(long lnMin, long *pclnDel, long *pclnIns)\n{\n    long ln;\n    long ichPrev;\n    long ich = _IchMinLn(lnMin);\n    long ichNext = _IchMinLn(lnMin + 1);\n\n    ln = lnMin + 1;\n    while ((ich = _IchNext(ichPrev = ich)) < ichNext && ichPrev < ich)\n    {\n        if (fchBreak & GrfchFromCh(_ChFetch(ichPrev)))\n        {\n            if (!_pglich->FInsert(ln, &ich))\n            {\n                Warn(\"format failed\");\n                break;\n            }\n            ln++;\n        }\n    }\n    *pclnDel = 0;\n    *pclnIns = ln - lnMin - 1;\n    return lnMin;\n}\n\n/***************************************************************************\n    If this is a character we can't accept, return false.\n***************************************************************************/\nbool EDML::_FFilterCh(achar ch)\n{\n    ulong grfch = GrfchFromCh(ch);\n\n    return !(fchControl & grfch) || (fchBreak & grfch);\n}\n\n/***************************************************************************\n    Get some text.\n***************************************************************************/\nlong EDML::CchFetch(achar *prgch, long ich, long cchWant)\n{\n    AssertThis(0);\n    AssertIn(cchWant, 0, kcbMax);\n    AssertIn(ich, 0, IchMac() + 1);\n    AssertPvCb(prgch, cchWant * size(achar));\n\n    if (0 < (cchWant = LwBound(cchWant, 0, IchMac() + 1 - ich)))\n        _bsm.FetchRgb(ich, cchWant, prgch);\n    return cchWant;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a multi-line edit control.\n***************************************************************************/\nvoid EDML::AssertValid(ulong grf)\n{\n    EDML_PAR::AssertValid(0);\n    AssertPo(_pglich, 0);\n    AssertPo(&_bsm, 0);\n    AssertIn(_pglich->IvMac(), 1, kcbMax);\n\n    long ibMac = _bsm.IbMac();\n    long ichMac = ibMac / size(achar);\n\n    Assert(ibMac % size(achar) == 0, \"ibMac not a divisible by size(achar)\");\n    AssertIn(_ichAnchor, 0, ichMac + 1);\n    AssertIn(_ichOther, 0, ichMac + 1);\n\n    if (grf & fobjAssertFull)\n    {\n        long ichPrev, ich, ln;\n\n        ichPrev = ichMac + 1;\n        for (ln = _pglich->IvMac(); ln-- > 0;)\n        {\n            _pglich->Get(ln, &ich);\n            AssertIn(ich, 0, ichPrev);\n            ichPrev = ich;\n        }\n        Assert(ichPrev == 0, \"bad first ich\");\n    }\n}\n\n/***************************************************************************\n    Mark memory for the EDML.\n***************************************************************************/\nvoid EDML::MarkMem(void)\n{\n    AssertValid(0);\n    EDML_PAR::MarkMem();\n    MarkMemObj(&_bsm);\n    MarkMemObj(_pglich);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for multi line edit control.\n***************************************************************************/\nEDMW::EDMW(PEDPAR pedpar) : EDML(pedpar)\n{\n}\n\n/***************************************************************************\n    Create a new multi-line wrapping edit control.\n***************************************************************************/\nPEDMW EDMW::PedmwNew(PEDPAR pedpar)\n{\n    PEDMW pedmw;\n\n    if (pvNil == (pedmw = NewObj EDMW(pedpar)))\n        return pvNil;\n    if (!pedmw->_FInit())\n    {\n        ReleasePpo(&pedmw);\n        return pvNil;\n    }\n    AssertPo(pedmw, 0);\n    return pedmw;\n}\n\n/***************************************************************************\n    Return an estimate of how many new lines there are in the text to insert.\n***************************************************************************/\nlong EDMW::_ClnEstimate(achar *prgch, long cch)\n{\n    // the common case\n    if (cch <= 1)\n        return 1;\n\n    RC rc;\n    long dxp, cln;\n\n    _GetRcContent(&rc);\n    rc.Inset(kdxpInsetEdcb, 0);\n    dxp = LwMax(10, rc.Dxp());\n    _pgnv->SetFont(_onn, _grfont, _dypFont);\n    _pgnv->GetRcFromRgch(&rc, prgch, cch);\n    cln = LwMin(cch, 2 * rc.Dxp() / dxp);\n\n    return cln + EDML::_ClnEstimate(prgch, cch);\n}\n\n/***************************************************************************\n    Determine the line starts from line lnMin on.  This may also affect\n    lnMin's line start.  Returns the first line that changed (1 less than\n    the first line start that changed).\n***************************************************************************/\nlong EDMW::_LnReformat(long lnMin, long *pclnDel, long *pclnIns)\n{\n    const long kcichMax = 128;\n    long rgich[kcichMax];\n    RC rc;\n    long dxp;\n    long ich, cich, ivMin, ivLim, iv, ichNew;\n    long iichCur;\n    long lnCur;\n    ulong grfch;\n    achar *prgch;\n    long clnIns = 0, clnDel = 0;\n\n    _GetRcContent(&rc);\n    rc.Inset(kdxpInsetEdcb, 0);\n    dxp = rc.Dxp();\n    _pgnv->SetFont(_onn, _grfont, _dypFont, _tah);\n    ich = _IchMinLn(lnMin);\n    Assert((ich > 0) == (lnMin > 0), \"bad beginning\");\n    prgch = (achar *)_bsm.PvLock(0);\n    cich = _CichGetBreakables(prgch, ich, rgich, kcichMax);\n    Assert(cich > 0, \"bad cich\");\n\n    if (lnMin > 0 && !(fchBreak & GrfchFromCh(prgch[_IchPrev(ich)])))\n    {\n        // see if some of the text will fit on the previous line\n        long ichPrev = _IchMinLn(lnMin - 1);\n\n        _pgnv->GetRcFromRgch(&rc, prgch + ichPrev, rgich[0] - ichPrev);\n        if (rc.Dxp() <= dxp)\n        {\n            // need to reformat the previous line\n            _pglich->Delete(lnMin);\n            clnDel++;\n            ich = ichPrev;\n            lnMin--;\n            cich = _CichGetBreakables(prgch, ich, rgich, kcichMax);\n        }\n    }\n\n    lnCur = lnMin + 1;\n    for (iichCur = 0;;)\n    {\n        if (ich > rgich[cich - 1])\n        {\n            cich = _CichGetBreakables(prgch, ich, rgich, kcichMax);\n            iichCur = 0;\n        }\n        while (cich == kcichMax)\n        {\n            _pgnv->GetRcFromRgch(&rc, prgch + ich, rgich[cich - 1] - ich);\n            if (rc.Dxp() >= dxp)\n                break;\n            // keep the last one and refill\n            rgich[0] = rgich[cich - 1];\n            cich = _CichGetBreakables(prgch, rgich[0], rgich + 1, kcichMax - 1);\n            iichCur = 0;\n        }\n\n        for (ivMin = iichCur, ivLim = cich; ivMin < ivLim;)\n        {\n            iv = (ivMin + ivLim) / 2;\n            _pgnv->GetRcFromRgch(&rc, prgch + ich, rgich[iv] - ich);\n            if (rc.Dxp() > dxp)\n                ivLim = iv;\n            else\n                ivMin = iv + 1;\n        }\n\n        if (ivMin == iichCur)\n        {\n            // have to break a non-breaking stream - oh well\n            for (ivMin = ich, ivLim = rgich[iichCur]; ivMin < ivLim;)\n            {\n                iv = (ivMin + ivLim) / 2;\n                _pgnv->GetRcFromRgch(&rc, prgch + ich, iv - ich);\n                if (rc.Dxp() > dxp)\n                    ivLim = iv;\n                else\n                    ivMin = iv + 1;\n            }\n            Assert(ivMin >= ich, \"bad ivMin\");\n            ichNew = _IchPrev(ivMin);\n        }\n        else\n        {\n            // we found our break location\n            Assert(rgich[ivMin - 1] >= ich, \"bad entry in rgich\");\n            ichNew = rgich[ivMin - 1];\n            iichCur = ivMin;\n        }\n\n        if (ichNew <= ich)\n            ichNew = _IchNext(ich);\n\n        if (ichNew >= IchMac())\n        {\n            // we've run out of text - delete all remaining lines\n            clnDel += _pglich->IvMac() - lnCur;\n            AssertDo(_pglich->FSetIvMac(lnCur), 0);\n            break; // we're done\n        }\n\n        grfch = GrfchFromCh(_ChFetch(ichNew));\n        if ((fchBreak | fchMayBreak) & grfch)\n            ichNew = _IchNext(ichNew);\n        ich = ichNew;\n\n        while (lnCur < _pglich->IvMac())\n        {\n            _pglich->Get(lnCur, &iv);\n            if (ich < iv)\n                break;\n            if (ich == iv)\n                goto LDone; // we're done\n            // delete this line start\n            _pglich->Delete(lnCur);\n            clnDel++;\n        }\n\n        if (!_pglich->FInsert(lnCur, &ich))\n        {\n            Warn(\"memory failure in EDMW::_LnReformat\");\n            break;\n        }\n        clnIns++;\n        lnCur++;\n    }\n\nLDone:\n    *pclnDel = clnDel;\n    *pclnIns = clnIns;\n    _bsm.Unlock();\n    return lnMin;\n}\n\n/***************************************************************************\n    Get the locations of possible breaking characters from prgch + ich.\n    Doesn't continue past a return character.  Return the number of locations\n    found.\n***************************************************************************/\nlong EDMW::_CichGetBreakables(achar *prgch, long ich, long *prgich, long cichMax)\n{\n    AssertIn(ich, 0, IchMac() + 1);\n    AssertPvCb(prgch, IchMac() * size(achar));\n    AssertPvCb(prgich, LwMul(cichMax, size(long)));\n    long cich;\n    ulong grfch;\n\n    for (cich = 0; ich < IchMac(); ich++)\n    {\n        grfch = GrfchFromCh(prgch[ich]);\n        if (grfch & fchBreak)\n        {\n            prgich[cich++] = ich;\n            return cich;\n        }\n        if (grfch & fchMayBreak)\n        {\n            prgich[cich++] = ich;\n            if (cich >= cichMax)\n                return cich;\n        }\n    }\n\n    // add the end of stream loaction\n    Assert(cich < cichMax, \"what?\");\n    prgich[cich++] = IchMac();\n    return cich;\n}\n\n/***************************************************************************\n    The size of the GOB changed - relayout.\n***************************************************************************/\nvoid EDMW::_NewRc(void)\n{\n    AssertThis(0);\n    long clnDel, clnIns;\n\n    AssertDo(_pglich->FSetIvMac(1), 0);\n    _LnReformat(0, &clnDel, &clnIns);\n    ShowSel(fTrue, ginNil);\n}\n"
  },
  {
    "path": "kauai/src/text.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Header file for edit controls and rich text editing.\n\n***************************************************************************/\n#ifndef TEXT_H\n#define TEXT_H\n\n// edit control parameters\ntypedef class EDPAR *PEDPAR;\nclass EDPAR\n{\n  public:\n    GCB _gcb;\n    long _onn;\n    ulong _grfont;\n    long _dypFont;\n    long _tah;\n    long _tav;\n    ACR _acrFore;\n    ACR _acrBack;\n    long _cmhl;\n\n    EDPAR(void)\n    {\n    }\n    EDPAR(long hid, PGOB pgob, ulong grfgob, long gin, RC *prcAbs, RC *prcRel, long onn, ulong grfont, long dypFont,\n          long tah = tahLeft, long tav = tavTop, ACR acrFore = kacrBlack, ACR acrBack = kacrWhite, long cmhl = 0);\n\n    void Set(long hid, PGOB pgob, ulong grfgob, long gin, RC *prcAbs, RC *prcRel, long onn, ulong grfont, long dypFont,\n             long tah = tahLeft, long tav = tavTop, ACR acrFore = kacrBlack, ACR acrBack = kacrWhite, long cmhl = 0);\n    void SetFont(long onn, ulong grfont, long dypFont, long tah = tahLeft, long tav = tavTop, ACR acrFore = kacrBlack,\n                 ACR acrBack = kacrWhite);\n};\n\n/***************************************************************************\n    Edit control base class.\n***************************************************************************/\ntypedef class EDCB *PEDCB;\n#define EDCB_PAR GOB\n#define kclsEDCB 'EDCB'\nclass EDCB : public EDCB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    // handler level\n    long _cmhl;\n\n    // the selection\n    PGNV _pgnv;\n    long _ichAnchor;\n    long _ichOther;\n    bool _fSelOn : 1;\n    bool _fXpValid : 1;\n    bool _fSelByWord : 1;\n    bool _fMark : 1;\n    bool _fClear : 1;\n\n    ulong _tsSel;\n    long _xpSel; // for avoiding migration when changing selection by lines\n\n    // the origin\n    long _xp;\n    long _yp;\n\n    EDCB(PGCB pgcb, long cmhl);\n\n    virtual bool _FInit(void);\n\n    // pure virtual functions\n    virtual long _LnFromIch(long ich) = 0;\n    virtual long _IchMinLn(long ln) = 0;\n    virtual long _XpFromIch(long ich) = 0;\n    virtual long _YpFromIch(long ich);\n    virtual long _YpFromLn(long ln) = 0;\n    virtual long _LnFromYp(long yp) = 0;\n    virtual long _IchFromLnXp(long ln, long xp, bool fClosest = fTrue) = 0;\n    virtual long _LnMac(void) = 0;\n    virtual void _DrawLine(PGNV pgnv, long ln) = 0;\n    virtual void _HiliteRc(PGNV pgnv, RC *prc) = 0;\n    virtual bool _FFilterCh(achar ch) = 0;\n\n    void _SwitchSel(bool fOn, long gin = kginDraw);\n    void _InvertSel(PGNV pgnv, long gin = kginDraw);\n    void _InvertIchRange(PGNV pgnv, long ich1, long ich2, long gin = kginDraw);\n    void _Scroll(long dxp, long dyp, long gin = kginDraw);\n    void _UpdateLn(long ln, long clnIns, long dlnDel, long dypDel, long gin = kginDraw);\n    long _IchPrev(long ich, bool fWord = fFalse);\n    long _IchNext(long ich, bool fWord = fFalse);\n    achar _ChFetch(long ich);\n\n    virtual void _NewRc(void);\n\n    virtual void _GetRcContent(RC *prc);\n    virtual void _InitGnv(PGNV pgnv);\n\n  public:\n    ~EDCB(void);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FCmdTrackMouse(PCMD_MOUSE pcmd);\n    virtual bool FCmdKey(PCMD_KEY pcmd);\n    virtual bool FCmdSelIdle(PCMD pcmd);\n    virtual bool FCmdActivateSel(PCMD pcmd);\n    virtual void Activate(bool fActive);\n\n    long IchAnchor(void)\n    {\n        return _ichAnchor;\n    }\n    long IchOther(void)\n    {\n        return _ichOther;\n    }\n    void SetSel(long ichAnchor, long ichOther, long gin = kginDraw);\n    void ShowSel(bool fForceJustification = fTrue, long gin = kginDraw);\n\n    virtual long IchMac(void) = 0;\n    virtual bool FReplace(achar *prgch, long cchIns, long ich1, long ich2, long gin = kginDraw) = 0;\n    virtual long CchFetch(achar *prgch, long ich, long cchWant) = 0;\n};\n\n/***************************************************************************\n    Plain edit control - virtual class supporting single line and multi\n    line edit controls with a single font.\n***************************************************************************/\ntypedef class EDPL *PEDPL;\n#define EDPL_PAR EDCB\n#define kclsEDPL 'EDPL'\nclass EDPL : public EDPL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    // drawing parameters\n    long _onn;\n    ulong _grfont;\n    long _dypFont;\n    long _tah;\n    long _tav;\n    ACR _acrFore;\n    ACR _acrBack;\n    long _dypLine;\n\n    EDPL(PEDPAR pedpar);\n\n    // methods of EDCB\n    virtual bool _FInit(void);\n    virtual long _XpFromIch(long ich);\n    virtual long _YpFromLn(long ln);\n    virtual long _LnFromYp(long yp);\n    virtual long _IchFromLnXp(long ln, long xp, bool fClosest = fTrue);\n    virtual void _DrawLine(PGNV pgnv, long ln);\n    virtual void _HiliteRc(PGNV pgnv, RC *prc);\n\n    long _XpOrigin(void);\n    virtual bool _FLockLn(long ln, achar **pprgch, long *pcch) = 0;\n    virtual void _UnlockLn(long ln, achar *prgch) = 0;\n};\n\n/***************************************************************************\n    Single line edit control.\n***************************************************************************/\nconst long kcchMaxEdsl = kcchMaxStn;\n\ntypedef class EDSL *PEDSL;\n#define EDSL_PAR EDPL\n#define kclsEDSL 'EDSL'\nclass EDSL : public EDSL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    // the text\n    long _cch;\n    achar _rgch[kcchMaxEdsl];\n\n    EDSL(PEDPAR pedpar);\n\n    // methods of EDCB\n    virtual long _LnFromIch(long ich);\n    virtual long _IchMinLn(long ln);\n    virtual long _LnMac(void);\n    virtual bool _FFilterCh(achar ch);\n\n    // methods of EDPL\n    virtual bool _FLockLn(long ln, achar **pprgch, long *pcch);\n    virtual void _UnlockLn(long ln, achar *prgch);\n\n  public:\n    static PEDSL PedslNew(PEDPAR pedpar);\n\n    virtual long IchMac(void);\n    virtual bool FReplace(achar *prgch, long cchIns, long ich1, long ich2, long gin = kginDraw);\n    virtual long CchFetch(achar *prgch, long ich, long cchWant);\n\n    // additional text APIs\n    void GetStn(PSTN pstn);\n    void SetStn(PSTN pstn, long gin = kginDraw);\n};\n\n/***************************************************************************\n    Multi line edit control.\n***************************************************************************/\ntypedef class EDML *PEDML;\n#define EDML_PAR EDPL\n#define kclsEDML 'EDML'\nclass EDML : public EDML_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    // the text\n    BSM _bsm;\n    PGL _pglich;\n\n    EDML(PEDPAR pedpar);\n\n    // methods of EDCB\n    virtual bool _FInit(void);\n    virtual long _LnFromIch(long ich);\n    virtual long _IchMinLn(long ln);\n    virtual long _LnMac(void);\n    virtual bool _FFilterCh(achar ch);\n\n    // methods of EDPL\n    virtual bool _FLockLn(long ln, achar **pprgch, long *pcch);\n    virtual void _UnlockLn(long ln, achar *prgch);\n\n    virtual long _ClnEstimate(achar *prgch, long cch);\n    virtual long _LnReformat(long lnMin, long *pclnDel, long *pclnIns);\n    virtual bool _FReplaceCore(achar *prgch, long cchIns, long ich, long cchDel);\n\n  public:\n    static PEDML PedmlNew(PEDPAR pedpar);\n    ~EDML(void);\n\n    virtual long IchMac(void);\n    virtual bool FReplace(achar *prgch, long cchIns, long ich1, long ich2, long gin = kginDraw);\n    virtual long CchFetch(achar *prgch, long ich, long cchWant);\n};\n\n/***************************************************************************\n    Multi line wrapping edit control.\n***************************************************************************/\ntypedef class EDMW *PEDMW;\n#define EDMW_PAR EDML\n#define kclsEDMW 'EDMW'\nclass EDMW : public EDMW_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    EDMW(PEDPAR pedpar);\n\n    // methods EDMW\n    virtual long _ClnEstimate(achar *prgch, long cch);\n    virtual long _LnReformat(long lnMin, long *pclnDel, long *pclnIns);\n\n    long _CichGetBreakables(achar *prgch, long ich, long *prgich, long cichMax);\n    virtual void _NewRc(void);\n\n  public:\n    static PEDMW PedmwNew(PEDPAR pedpar);\n};\n\n#endif //! TEXT_H\n"
  },
  {
    "path": "kauai/src/textdoc.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    For editing a text file or text stream as a document.  Unlike the edit\n    controls in text.h/text.cpp, all the text need not be in memory (this\n    uses a BSF) and there can be multiple views on the same text.\n\n***************************************************************************/\n#include \"frame.h\"\nASSERTNAME\n\nRTCLASS(TXDC)\nRTCLASS(TXDD)\n\n/***************************************************************************\n    Constructor for a text document.\n***************************************************************************/\nTXDC::TXDC(PDOCB pdocb, ulong grfdoc) : DOCB(pdocb, grfdoc)\n{\n    _pbsf = pvNil;\n    _pfil = pvNil;\n}\n\n/***************************************************************************\n    Destructor for a text document.\n***************************************************************************/\nTXDC::~TXDC(void)\n{\n    ReleasePpo(&_pbsf);\n    ReleasePpo(&_pfil);\n}\n\n/***************************************************************************\n    Create a new document based on the given text file and or text stream.\n***************************************************************************/\nPTXDC TXDC::PtxdcNew(PFNI pfni, PBSF pbsf, PDOCB pdocb, ulong grfdoc)\n{\n    AssertNilOrPo(pfni, ffniFile);\n    AssertNilOrPo(pbsf, 0);\n    AssertNilOrPo(pdocb, 0);\n    PTXDC ptxdc;\n\n    if (pvNil == (ptxdc = NewObj TXDC(pdocb, grfdoc)))\n        return pvNil;\n\n    if (!ptxdc->_FInit(pfni, pbsf))\n        ReleasePpo(&ptxdc);\n\n    return ptxdc;\n}\n\n/***************************************************************************\n    Initialize the TXDC.\n***************************************************************************/\nbool TXDC::_FInit(PFNI pfni, PBSF pbsf)\n{\n    AssertNilOrPo(pfni, ffniFile);\n    AssertNilOrPo(pbsf, 0);\n\n    if (pvNil != pfni)\n    {\n        if (pvNil == (_pfil = FIL::PfilOpen(pfni)))\n            return fFalse;\n    }\n\n    if (pvNil != pbsf)\n    {\n        pbsf->AddRef();\n        _pbsf = pbsf;\n    }\n    else if (pvNil == (_pbsf = NewObj BSF))\n        return fFalse;\n    else if (pvNil != _pfil && _pfil->FpMac() > 0)\n    {\n        // initialize the BSF to just point to the file\n        FLO flo;\n\n        flo.pfil = _pfil;\n        flo.fp = 0;\n        flo.cb = _pfil->FpMac();\n        if (!_pbsf->FReplaceFlo(&flo, fFalse, 0, 0))\n            return fFalse;\n    }\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Create a new TXDD to display the TXDC.\n***************************************************************************/\nPDDG TXDC::PddgNew(PGCB pgcb)\n{\n    AssertThis(0);\n    return TXDD::PtxddNew(this, pgcb, _pbsf, vpappb->OnnDefFixed(), fontNil, vpappb->DypTextDef());\n}\n\n/***************************************************************************\n    Get the current FNI for the doc.  Return false if the doc is not\n    currently based on an FNI (it's a new doc or an internal one).\n***************************************************************************/\nbool TXDC::FGetFni(FNI *pfni)\n{\n    AssertThis(0);\n    AssertBasePo(pfni, 0);\n    if (pvNil == _pfil || _pfil->FTemp())\n        return fFalse;\n\n    _pfil->GetFni(pfni);\n    return fTrue;\n}\n\n/***************************************************************************\n    Save the document and optionally set this fni as the current one.\n    If the doc is currently based on an FNI, pfni may be nil, indicating\n    that this is a normal save (not save as).  If pfni is not nil and\n    fSetFni is false, this just writes a copy of the doc but doesn't change\n    the doc one bit.\n***************************************************************************/\nbool TXDC::FSaveToFni(FNI *pfni, bool fSetFni)\n{\n    AssertThis(0);\n    AssertNilOrPo(pfni, ffniFile);\n    FLO flo;\n    FNI fniT;\n\n    if (pvNil == pfni)\n    {\n        if (pvNil == _pfil)\n        {\n            Bug(\"Can't do a normal save - no file\");\n            return fFalse;\n        }\n        _pfil->GetFni(&fniT);\n        pfni = &fniT;\n        fSetFni = fTrue;\n    }\n\n    if (pvNil == (flo.pfil = FIL::PfilCreateTemp(pfni)))\n        goto LFail;\n\n    flo.fp = 0;\n    flo.cb = _pbsf->IbMac();\n    if (!_pbsf->FWriteRgb(&flo))\n        goto LFail;\n\n    // redirect the BSF to the new file\n    if (fSetFni)\n        _pbsf->FReplaceFlo(&flo, fFalse, 0, flo.cb);\n\n    if (!flo.pfil->FSetFni(pfni))\n    {\n    LFail:\n        ReleasePpo(&flo.pfil);\n        return fFalse;\n    }\n    flo.pfil->SetTemp(fFalse);\n\n    if (fSetFni)\n    {\n        ReleasePpo(&_pfil);\n        _pfil = flo.pfil;\n        _fDirty = fFalse;\n    }\n    else\n        ReleasePpo(&flo.pfil);\n\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a TXDC.\n***************************************************************************/\nvoid TXDC::AssertValid(ulong grf)\n{\n    TXDC_PAR::AssertValid(0);\n    AssertPo(_pbsf, 0);\n    AssertNilOrPo(_pfil, 0);\n}\n\n/***************************************************************************\n    Mark memory for the TXDC.\n***************************************************************************/\nvoid TXDC::MarkMem(void)\n{\n    AssertValid(0);\n    TXDC_PAR::MarkMem();\n    MarkMemObj(_pbsf);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for a text document display gob.\n***************************************************************************/\nTXDD::TXDD(PDOCB pdocb, PGCB pgcb, PBSF pbsf, long onn, ulong grfont, long dypFont) : DDG(pdocb, pgcb)\n{\n    AssertPo(pbsf, 0);\n    Assert(vntl.FValidOnn(onn), \"bad onn\");\n    AssertIn(dypFont, 1, kswMax);\n\n    _pbsf = pbsf;\n    _onn = onn;\n    _grfont = grfont;\n    _dypFont = dypFont;\n\n    // get the _dypLine and _dxpTab values\n    RC rc;\n    achar ch = kchSpace;\n    GNV gnv(this);\n\n    gnv.SetFont(_onn, _grfont, _dypFont);\n    gnv.GetRcFromRgch(&rc, &ch, 1, 0, 0);\n    _dypLine = rc.Dyp();\n    _dxpTab = LwMul(rc.Dxp(), 4);\n}\n\n/***************************************************************************\n    Destructor for TXDD.\n***************************************************************************/\nTXDD::~TXDD(void)\n{\n    ReleasePpo(&_pglichStarts);\n}\n\n/***************************************************************************\n    Create a new TXDD.\n***************************************************************************/\nPTXDD TXDD::PtxddNew(PDOCB pdocb, PGCB pgcb, PBSF pbsf, long onn, ulong grfont, long dypFont)\n{\n    PTXDD ptxdd;\n\n    if (pvNil == (ptxdd = NewObj TXDD(pdocb, pgcb, pbsf, onn, grfont, dypFont)))\n        return pvNil;\n\n    if (!ptxdd->_FInit())\n    {\n        ReleasePpo(&ptxdd);\n        return pvNil;\n    }\n    ptxdd->Activate(fTrue);\n\n    AssertPo(ptxdd, 0);\n    return ptxdd;\n}\n\n/***************************************************************************\n    Initialize the TXDD.\n***************************************************************************/\nbool TXDD::_FInit(void)\n{\n    long ib;\n\n    if (!TXDD_PAR::_FInit())\n        return fFalse;\n    if (pvNil == (_pglichStarts = GL::PglNew(size(long))))\n        return fFalse;\n\n    _pglichStarts->SetMinGrow(20);\n    ib = 0;\n    if (!_pglichStarts->FPush(&ib))\n        return fFalse;\n    _Reformat(0);\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    The TXDD has changed sizes, set the _clnDisp.\n***************************************************************************/\nvoid TXDD::_NewRc(void)\n{\n    AssertThis(0);\n    RC rc;\n\n    GetRc(&rc, cooLocal);\n    _clnDisp = LwMax(1, LwDivAway(rc.Dyp(), _dypLine));\n    _clnDispWhole = LwMax(1, rc.Dyp() / _dypLine);\n    _Reformat(_clnDisp);\n    TXDD_PAR::_NewRc();\n}\n\n/***************************************************************************\n    Deactivate the TXDD - turn off the selection.\n***************************************************************************/\nvoid TXDD::_Activate(bool fActive)\n{\n    AssertThis(0);\n    TXDD_PAR::_Activate(fActive);\n    if (!fActive)\n        _SwitchSel(fFalse, fFalse);\n}\n\n/***************************************************************************\n    Find new line starts starting at lnMin.\n***************************************************************************/\nvoid TXDD::_Reformat(long lnMin, long *pclnIns, long *pclnDel)\n{\n    AssertThis(0);\n    AssertIn(lnMin, 0, kcbMax);\n    long ich, ichT;\n    long ln, clnIns, clnDel;\n\n    lnMin = LwMin(lnMin, _pglichStarts->IvMac() - 1);\n    ich = *_QichLn(lnMin);\n    clnIns = clnDel = 0;\n    for (ln = lnMin + 1; ln <= _clnDisp; ln++)\n    {\n        if (!_FFindNextLineStart(ich, &ich))\n        {\n            _pglichStarts->FSetIvMac(ln);\n            return;\n        }\n\n        // delete starts that are before ich\n        for (;;)\n        {\n            if (ln >= _pglichStarts->IvMac())\n                break;\n            ichT = *_QichLn(ln);\n            if (ichT == ich)\n                goto LDone;\n            if (ichT > ich)\n                break;\n            _pglichStarts->Delete(ln);\n            clnDel++;\n        }\n\n        // add the new line start\n        if (!_pglichStarts->FInsert(ln, &ich))\n        {\n            if (ln >= _pglichStarts->IvMac())\n            {\n                Warn(\"Reformatting failed\");\n                return;\n            }\n            *_QichLn(ln) = ich;\n        }\n        clnIns++;\n    }\n\nLDone:\n    // truncate the list of line starts\n    if (_pglichStarts->IvMac() > _clnDisp + 1)\n        _pglichStarts->FSetIvMac(_clnDisp + 1);\n    if (pvNil != pclnIns)\n        *pclnIns = clnIns;\n    if (pvNil != pclnDel)\n        *pclnDel = clnDel;\n}\n\n/***************************************************************************\n    Find new line starts starting at lnMin.\n***************************************************************************/\nvoid TXDD::_ReformatEdit(long ichMinEdit, long cchIns, long cchDel, long *plnNew, long *pclnIns, long *pclnDel)\n{\n    AssertThis(0);\n    AssertIn(ichMinEdit, 0, kcbMax);\n    AssertIn(cchIns, 0, _pbsf->IbMac() - ichMinEdit + 1);\n    AssertIn(cchDel, 0, kcbMax);\n    AssertNilOrVarMem(plnNew);\n    AssertNilOrVarMem(pclnIns);\n    AssertNilOrVarMem(pclnDel);\n    long ich;\n    long ln, clnDel;\n\n    // if the first displayed character was affected, reset it\n    // to a valid line start\n    if (FIn(*_QichLn(0) - 1, ichMinEdit, ichMinEdit + cchDel))\n    {\n        AssertDo(_FFindLineStart(ichMinEdit, &ich), 0);\n        *_QichLn(0) = ich;\n    }\n\n    // skip unaffected lines\n    for (ln = 0; ln < _pglichStarts->IvMac() && *_QichLn(ln) <= ichMinEdit; ln++)\n        ;\n\n    clnDel = 0;\n    if (cchDel > 0)\n    {\n        // remove any deleted lines\n        while (ln < _pglichStarts->IvMac() && *_QichLn(ln) <= ichMinEdit + cchDel)\n        {\n            _pglichStarts->Delete(ln);\n            clnDel++;\n        }\n    }\n\n    if (cchIns != cchDel)\n    {\n        long lnT;\n\n        for (lnT = ln; lnT < _pglichStarts->IvMac(); lnT++)\n            *_QichLn(lnT) += cchIns - cchDel;\n    }\n\n    _Reformat(LwMax(0, ln - 1), pclnIns);\n    _Reformat(_clnDisp);\n    if (pvNil != plnNew)\n        *plnNew = ln;\n    if (pvNil != pclnDel)\n        *pclnDel = clnDel;\n}\n\n/***************************************************************************\n    Fetch a character of the stream through the cache.\n***************************************************************************/\nbool TXDD::_FFetchCh(long ich, achar *pch)\n{\n    AssertThis(0);\n    AssertIn(_ichMinCache, 0, _pbsf->IbMac() + 1);\n    AssertIn(_ichLimCache, _ichMinCache, _pbsf->IbMac() + 1);\n\n    if (!FIn(ich, _ichMinCache, _ichLimCache))\n    {\n        // not a cache hit\n        long ichMinCache, ichLimCache;\n        long ichLim = _pbsf->IbMac();\n\n        if (!FIn(ich, 0, ichLim))\n        {\n            TrashVar(pch);\n            return fFalse;\n        }\n\n        // need to fetch some characters - try to center ich in the new cached data\n        ichMinCache = LwMax(0, LwMin(ich - size(_rgchCache) / 2, ichLim - size(_rgchCache)));\n        ichLimCache = LwMin(ichLim, ichMinCache + size(_rgchCache));\n        AssertIn(ich, ichMinCache, ichLimCache);\n\n        // see if we can use some of the currently cached characters\n        if (_ichMinCache >= _ichLimCache)\n            goto LFetchAll;\n        if (FIn(_ichMinCache, ich, ichLimCache))\n        {\n            if (ichLimCache > _ichLimCache)\n            {\n                ichLimCache = _ichLimCache;\n                ichMinCache = LwMax(0, ichLimCache - size(_rgchCache));\n            }\n            BltPb(_rgchCache, _rgchCache + (_ichMinCache - ichMinCache), ichLimCache - _ichMinCache);\n            _pbsf->FetchRgb(ichMinCache, _ichMinCache - ichMinCache, _rgchCache);\n        }\n        else if (FIn(_ichLimCache, ichMinCache, ich + 1))\n        {\n            if (ichMinCache < _ichMinCache)\n            {\n                ichMinCache = _ichMinCache;\n                ichLimCache = LwMin(ichLim, ichMinCache + size(_rgchCache));\n            }\n            BltPb(_rgchCache + (ichMinCache - _ichMinCache), _rgchCache, _ichLimCache - ichMinCache);\n            _pbsf->FetchRgb(_ichLimCache, ichLimCache - _ichLimCache, _rgchCache + (_ichLimCache - ichMinCache));\n        }\n        else\n        {\n        LFetchAll:\n            _pbsf->FetchRgb(ichMinCache, ichLimCache - ichMinCache, _rgchCache);\n        }\n        _ichMinCache = ichMinCache;\n        _ichLimCache = ichLimCache;\n        AssertIn(ich, _ichMinCache, _ichLimCache);\n    }\n\n    *pch = _rgchCache[ich - _ichMinCache];\n    return fTrue;\n}\n\n/***************************************************************************\n    Find the start of the line that ich is on.\n***************************************************************************/\nbool TXDD::_FFindLineStart(long ich, long *pich)\n{\n    AssertThis(0);\n    AssertVarMem(pich);\n    achar ch;\n    long dichLine = 0;\n    long ichOrig = ich;\n\n    if (ich > 0 && _FFetchCh(ich, &ch) && ch == kchLineFeed)\n        dichLine++;\n\n    for (;;)\n    {\n        if (!_FFetchCh(--ich, &ch))\n        {\n            if (ich == -1)\n            {\n                *pich = 0;\n                return fTrue;\n            }\n            TrashVar(pich);\n            return fFalse;\n        }\n\n        switch (ch)\n        {\n        case kchLineFeed:\n            dichLine++;\n            break;\n        case kchReturn:\n            if ((*pich = ich + 1 + dichLine) <= ichOrig)\n                return fTrue;\n            // fall through\n        default:\n            dichLine = 0;\n            break;\n        }\n    }\n    Bug(\"How did we get here?\");\n}\n\n/***************************************************************************\n    Find the next line start after ich.  If prgch is not nil, fills it\n    with the characters between ich and the line start (but not more\n    than cchMax characters).\n***************************************************************************/\nbool TXDD::_FFindNextLineStart(long ich, long *pich, achar *prgch, long cchMax)\n{\n    AssertThis(0);\n    AssertVarMem(pich);\n    AssertIn(cchMax, 0, kcbMax);\n    achar ch;\n    bool fCr = fFalse;\n\n    if (pvNil != prgch)\n        AssertPvCb(prgch, cchMax);\n    else\n        cchMax = 0;\n\n    for (;; ich++)\n    {\n        if (!_FFetchCh(ich, &ch))\n        {\n            if (fCr && ich == _pbsf->IbMac())\n            {\n                *pich = ich;\n                return fTrue;\n            }\n            TrashVar(pich);\n            return fFalse;\n        }\n\n        switch (ch)\n        {\n        case kchLineFeed:\n            break;\n        case kchReturn:\n            if (!fCr)\n            {\n                fCr = fTrue;\n                break;\n            }\n            // fall through\n        default:\n            if (fCr)\n            {\n                *pich = ich;\n                return fTrue;\n            }\n            break;\n        }\n\n        if (cchMax > 0)\n        {\n            *prgch++ = ch;\n            cchMax--;\n        }\n    }\n    Bug(\"how did we get here?\");\n}\n\n/***************************************************************************\n    Find the start of the line that ich is on.  This routine assumes\n    that _pglichStarts is valid and tries to use it.\n***************************************************************************/\nbool TXDD::_FFindLineStartCached(long ich, long *pich)\n{\n    AssertThis(0);\n    long ln = _LnFromIch(ich);\n\n    if (FIn(ln, 0, _clnDisp))\n    {\n        *pich = *_QichLn(ln);\n        return fTrue;\n    }\n    return _FFindLineStart(ich, pich);\n}\n\n/***************************************************************************\n    Find the next line start after ich.  If prgch is not nil, fills it\n    with the characters between ich and the line start (but not more\n    than cchMax characters).\n***************************************************************************/\nbool TXDD::_FFindNextLineStartCached(long ich, long *pich, achar *prgch, long cchMax)\n{\n    AssertThis(0);\n    if (pvNil == prgch || cchMax == 0)\n    {\n        long ln = _LnFromIch(ich);\n\n        if (FIn(ln, 0, _pglichStarts->IvMac() - 1))\n        {\n            *pich = *_QichLn(ln + 1);\n            return fTrue;\n        }\n    }\n\n    return _FFindNextLineStart(ich, pich, prgch, cchMax);\n}\n\n/***************************************************************************\n    Draw the contents of the gob.\n***************************************************************************/\nvoid TXDD::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    RC rc;\n    long yp;\n    long ln, lnLim;\n    long cchDraw;\n    achar rgch[kcchMaxLine];\n\n    GetRc(&rc, cooLocal);\n    if (!rc.FIntersect(prcClip))\n        return;\n\n    pgnv->SetFont(_onn, _grfont, _dypFont);\n    ln = rc.ypTop / _dypLine;\n    yp = LwMul(ln, _dypLine);\n    lnLim = LwMin(_pglichStarts->IvMac(), LwDivAway(rc.ypBottom, _dypLine));\n    for (; ln < lnLim; yp += _dypLine)\n    {\n        _FetchLineLn(ln++, rgch, size(rgch), &cchDraw);\n        _DrawLine(pgnv, prcClip, yp, rgch, cchDraw);\n    }\n    rc.ypTop = yp;\n    pgnv->FillRc(&rc, kacrWhite);\n    if (_fSelOn)\n        _InvertSel(pgnv, fTrue);\n}\n\n/***************************************************************************\n    Fetch the characters for the given line.\n***************************************************************************/\nvoid TXDD::_FetchLineLn(long ln, achar *prgch, long cchMax, long *pcch, long *pichMin)\n{\n    AssertThis(0);\n    long ichMin, ichLim;\n\n    ichMin = _IchMinLn(ln);\n    ichLim = _IchMinLn(ln + 1);\n    *pcch = LwMin(cchMax, ichLim - ichMin);\n    _pbsf->FetchRgb(ichMin, *pcch, prgch);\n    if (pvNil != pichMin)\n        *pichMin = ichMin;\n}\n\n/***************************************************************************\n    Fetch the characters for the given line.\n***************************************************************************/\nvoid TXDD::_FetchLineIch(long ich, achar *prgch, long cchMax, long *pcch, long *pichMin)\n{\n    AssertThis(0);\n    long ichMin, ichLim;\n\n    AssertDo(_FFindLineStartCached(ich, &ichMin), 0);\n    if (!_FFindNextLineStartCached(ichMin, &ichLim, prgch, cchMax))\n        ichLim = _pbsf->IbMac();\n    *pcch = LwMin(cchMax, ichLim - ichMin);\n    if (pvNil != pichMin)\n        *pichMin = ichMin;\n}\n\n/***************************************************************************\n    Draw the line in the given GNV.\n***************************************************************************/\nvoid TXDD::_DrawLine(PGNV pgnv, RC *prcClip, long yp, achar *prgch, long cch)\n{\n    AssertThis(0);\n    long xp, xpOrigin, xpPrev;\n    long ich, ichMin;\n    RC rc;\n\n    xpPrev = 0;\n    xp = xpOrigin = kdxpIndentTxdd - _scvHorz;\n    ich = 0;\n    while (ich < cch)\n    {\n        while (ich < cch)\n        {\n            switch (prgch[ich])\n            {\n            case kchTab:\n                xp = xpOrigin + LwRoundAway(xp - xpOrigin + 1, _dxpTab);\n                break;\n            case kchReturn:\n            case kchLineFeed:\n                break;\n            default:\n                goto LNonWhite;\n            }\n            ich++;\n        }\n\n    LNonWhite:\n        // erase any blank portion of the line\n        if (xp > xpPrev && xp > prcClip->xpLeft && xpPrev < prcClip->xpRight)\n        {\n            rc.Set(xpPrev, yp, xp, yp + _dypLine);\n            pgnv->FillRc(&rc, kacrWhite);\n        }\n\n        ichMin = ich;\n        while (ich < cch)\n        {\n            switch (prgch[ich])\n            {\n            case kchTab:\n            case kchReturn:\n            case kchLineFeed:\n                goto LEndRun;\n            }\n            ich++;\n        }\n\n    LEndRun:\n        if (ich > ichMin)\n        {\n            pgnv->GetRcFromRgch(&rc, prgch + ichMin, ich - ichMin);\n            if (xp + rc.Dxp() > prcClip->xpLeft && xp < prcClip->xpRight)\n                pgnv->DrawRgch(prgch + ichMin, ich - ichMin, xp, yp, kacrBlack, kacrWhite);\n            xp += rc.Dxp();\n        }\n        xpPrev = xp;\n    }\n\n    // erase any remaining portion of the line\n    if (xpPrev < prcClip->xpRight)\n    {\n        rc.Set(xpPrev, yp, prcClip->xpRight, yp + _dypLine);\n        pgnv->FillRc(&rc, kacrWhite);\n    }\n}\n\n/***************************************************************************\n    Return the maximum scroll value for this view of the doc.\n***************************************************************************/\nlong TXDD::_ScvMax(bool fVert)\n{\n    if (fVert)\n    {\n        long ich;\n\n        if (!_FFindLineStartCached(_pbsf->IbMac() - 1, &ich))\n            ich = 0;\n        return ich;\n    }\n\n    return LwMul(_dxpTab, 100);\n}\n\n/***************************************************************************\n    Perform a scroll according to scaHorz and scaVert.\n***************************************************************************/\nvoid TXDD::_Scroll(long scaHorz, long scaVert, long scvHorz, long scvVert)\n{\n    AssertThis(0);\n    RC rc;\n    long dxp, dyp;\n\n    GetRc(&rc, cooLocal);\n    dxp = 0;\n    switch (scaHorz)\n    {\n    default:\n        Assert(scaHorz == scaNil, \"bad scaHorz\");\n        break;\n    case scaPageUp:\n        dxp = -LwMulDiv(rc.Dxp(), 9, 10);\n        goto LHorz;\n    case scaPageDown:\n        dxp = LwMulDiv(rc.Dxp(), 9, 10);\n        goto LHorz;\n    case scaLineUp:\n        dxp = -rc.Dxp() / 10;\n        goto LHorz;\n    case scaLineDown:\n        dxp = rc.Dxp() / 10;\n        goto LHorz;\n    case scaToVal:\n        dxp = scvHorz - _scvHorz;\n    LHorz:\n        dxp = LwBound(_scvHorz + dxp, 0, _ScvMax(fFalse) + 1) - _scvHorz;\n        _scvHorz += dxp;\n        break;\n    }\n\n    dyp = 0;\n    if (scaVert != scaNil)\n    {\n        long ichMin;\n        long ichMinNew;\n        long cln;\n        long ichT;\n\n        ichMin = *_QichLn(0);\n        switch (scaVert)\n        {\n        default:\n            Bug(\"bad scaVert\");\n            ichMinNew = ichMin;\n            break;\n        case scaToVal:\n            scvVert = LwBound(scvVert, 0, _ScvMax(fTrue) + 1);\n            AssertDo(_FFindLineStartCached(scvVert, &ichMinNew), 0);\n\n            for (cln = 0, ichT = LwMin(ichMin, ichMinNew);\n                 cln < _clnDisp && _FFindNextLineStartCached(ichT, &ichT) && (ichT <= ichMin || ichT <= ichMinNew);)\n            {\n                cln++;\n            }\n\n            if (ichMin > ichMinNew)\n                cln = -cln;\n            dyp = LwMul(cln, _dypLine);\n            break;\n\n        case scaPageDown:\n            cln = LwMax(1, _clnDispWhole - 1);\n            goto LDown;\n        case scaLineDown:\n            cln = 1;\n        LDown:\n            cln = LwMin(cln, _pglichStarts->IvMac() - 1);\n            dyp = LwMul(cln, _dypLine);\n            ichMinNew = *_QichLn(cln);\n            break;\n\n        case scaPageUp:\n            cln = LwMax(1, _clnDispWhole - 1);\n            goto LUp;\n        case scaLineUp:\n            cln = 1;\n        LUp:\n            ichMinNew = ichMin;\n            while (cln-- > 0 && _FFindLineStart(ichMinNew - 1, &ichT))\n            {\n                dyp -= _dypLine;\n                ichMinNew = ichT;\n            }\n            break;\n        }\n        _scvVert = ichMinNew;\n        if (ichMinNew != ichMin)\n        {\n            *_QichLn(0) = ichMinNew;\n            _Reformat(0);\n            _Reformat(_clnDisp);\n        }\n    }\n\n    _SetScrollValues();\n    if (dxp != 0 || dyp != 0)\n        _ScrollDxpDyp(dxp, dyp);\n}\n\n/***************************************************************************\n    Do idle processing.  If this handler has the active selection, make sure\n    the selection is on or off according to rglw[0] (non-zero means on)\n    and set rglw[0] to false.  Always return false.\n***************************************************************************/\nbool TXDD::FCmdSelIdle(PCMD pcmd)\n{\n    AssertThis(0);\n\n    // if rglw[1] is this one's hid, don't change the sel state.\n    if (pcmd->rglw[1] != Hid())\n    {\n        if (!pcmd->rglw[0])\n            _SwitchSel(fFalse, fFalse);\n        else if (_ichAnchor != _ichOther || _tsSel == 0)\n            _SwitchSel(fTrue, fTrue);\n        else if (DtsCaret() < TsCurrent() - _tsSel)\n            _SwitchSel(!_fSelOn, fTrue);\n    }\n    pcmd->rglw[0] = fFalse;\n    return fFalse;\n}\n\n/***************************************************************************\n    Set the selection.\n***************************************************************************/\nvoid TXDD::SetSel(long ichAnchor, long ichOther, bool fDraw)\n{\n    AssertThis(0);\n    long ichMac = _pbsf->IbMac();\n\n    ichAnchor = LwBound(ichAnchor, 0, ichMac + 1);\n    ichOther = LwBound(ichOther, 0, ichMac + 1);\n\n    if (ichAnchor == _ichAnchor && ichOther == _ichOther)\n        return;\n\n    if (_fSelOn)\n    {\n        GNV gnv(this);\n\n        if (_ichAnchor != ichAnchor || _ichAnchor == _ichOther || ichAnchor == ichOther)\n        {\n            _InvertSel(&gnv, fDraw);\n            _ichAnchor = ichAnchor;\n            _ichOther = ichOther;\n            _InvertSel(&gnv, fDraw);\n            _tsSel = TsCurrent();\n        }\n        else\n        {\n            // they have the same anchor and neither is an insertion\n            _InvertIchRange(&gnv, _ichOther, ichOther, fDraw);\n            _ichOther = ichOther;\n        }\n    }\n    else\n    {\n        _ichAnchor = ichAnchor;\n        _ichOther = ichOther;\n        _tsSel = 0L;\n    }\n}\n\n/***************************************************************************\n    Turn the sel on or off according to fOn.\n***************************************************************************/\nvoid TXDD::_SwitchSel(bool fOn, bool fDraw)\n{\n    AssertThis(0);\n    if (FPure(fOn) != FPure(_fSelOn))\n    {\n        GNV gnv(this);\n\n        _InvertSel(&gnv, fDraw);\n        _fSelOn = FPure(fOn);\n        _tsSel = TsCurrent();\n    }\n}\n\n/***************************************************************************\n    Invert the current selection.\n***************************************************************************/\nvoid TXDD::_InvertSel(PGNV pgnv, bool fDraw)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    RC rc, rcT;\n    long ln;\n\n    if (_ichAnchor == _ichOther)\n    {\n        // insertion bar\n        ln = _LnFromIch(_ichAnchor);\n        if (!FIn(ln, 0, _clnDisp))\n            return;\n\n        rc.xpLeft = _XpFromLnIch(pgnv, ln, _ichAnchor) - 1;\n        rc.xpRight = rc.xpLeft + 2;\n        rc.ypTop = LwMul(ln, _dypLine);\n        rc.ypBottom = rc.ypTop + _dypLine;\n        GetRc(&rcT, cooLocal);\n        if (rcT.FIntersect(&rc))\n        {\n            if (fDraw)\n                pgnv->FillRc(&rcT, kacrInvert);\n            else\n                InvalRc(&rcT, kginMark);\n        }\n    }\n    else\n        _InvertIchRange(pgnv, _ichAnchor, _ichOther, fDraw);\n}\n\n/***************************************************************************\n    Invert a range.\n***************************************************************************/\nvoid TXDD::_InvertIchRange(PGNV pgnv, long ich1, long ich2, bool fDraw)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertIn(ich1, 0, _pbsf->IbMac() + 1);\n    AssertIn(ich2, 0, _pbsf->IbMac() + 1);\n    RC rc, rcClip, rcT;\n    long ln1, ln2, xp2;\n\n    if (ich1 == ich2)\n        return;\n    SortLw(&ich1, &ich2);\n    ln1 = _LnFromIch(ich1);\n    ln2 = _LnFromIch(ich2);\n    if (ln1 >= _clnDisp || ln2 < 0)\n        return;\n\n    GetRc(&rcClip, cooLocal);\n    rc.xpLeft = _XpFromLnIch(pgnv, ln1, ich1);\n    rc.ypTop = LwMul(ln1, _dypLine);\n    rc.ypBottom = LwMul(ln1 + 1, _dypLine);\n    xp2 = _XpFromLnIch(pgnv, ln2, ich2);\n\n    if (ln2 == ln1)\n    {\n        // only one line involved\n        rc.xpRight = xp2;\n        if (rcT.FIntersect(&rc, &rcClip))\n        {\n            if (fDraw)\n                pgnv->HiliteRc(&rcT, kacrWhite);\n            else\n                InvalRc(&rcT);\n        }\n        return;\n    }\n\n    // invert the sel on the first line\n    rc.xpRight = rcClip.xpRight;\n    if (rcT.FIntersect(&rc, &rcClip))\n    {\n        if (fDraw)\n            pgnv->HiliteRc(&rcT, kacrWhite);\n        else\n            InvalRc(&rcT);\n    }\n\n    // invert the main rectangular block\n    rc.xpLeft = kdxpIndentTxdd - _scvHorz;\n    rc.ypTop = rc.ypBottom;\n    rc.ypBottom = LwMul(ln2, _dypLine);\n    if (rcT.FIntersect(&rc, &rcClip))\n    {\n        if (fDraw)\n            pgnv->HiliteRc(&rcT, kacrWhite);\n        else\n            InvalRc(&rcT);\n    }\n\n    // invert the last line\n    rc.ypTop = rc.ypBottom;\n    rc.ypBottom = LwMul(ln2 + 1, _dypLine);\n    rc.xpRight = xp2;\n    if (rcT.FIntersect(&rc, &rcClip))\n    {\n        if (fDraw)\n            pgnv->HiliteRc(&rcT, kacrWhite);\n        else\n            InvalRc(&rcT);\n    }\n}\n\n/***************************************************************************\n    Find the line in the TXDD that is displaying the given ich.  Returns -1\n    if the ich is before the first displayed ich and returns _clnDisp if\n    ich is after the last displayed ich.\n***************************************************************************/\nlong TXDD::_LnFromIch(long ich)\n{\n    AssertThis(0);\n    long lnMin, lnLim, ln;\n    long ichT;\n\n    lnMin = 0;\n    lnLim = LwMin(_clnDisp + 1, _pglichStarts->IvMac());\n    while (lnMin < lnLim)\n    {\n        ln = (lnMin + lnLim) / 2;\n        ichT = *_QichLn(ln);\n        if (ichT < ich)\n            lnMin = ln + 1;\n        else if (ichT > ich)\n            lnLim = ln;\n        else\n            return ln;\n    }\n\n    return lnMin - 1;\n}\n\n/***************************************************************************\n    Return the ich of the first character on the given line.  If ln < 0,\n    returns 0; if ln >= _clnDisp, returns IbMac().\n***************************************************************************/\nlong TXDD::_IchMinLn(long ln)\n{\n    AssertThis(0);\n    long ich;\n\n    if (ln < 0)\n        return 0;\n    if (ln >= _pglichStarts->IvMac())\n        return _pbsf->IbMac();\n    ich = *_QichLn(ln);\n    return ich;\n}\n\n/***************************************************************************\n    Return the xp location of the given ich on the given line.\n***************************************************************************/\nlong TXDD::_XpFromLnIch(PGNV pgnv, long ln, long ich)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    RC rc;\n    long cch, ichT;\n    achar rgch[kcchMaxLine];\n\n    if (!FIn(ln, 0, LwMin(_clnDisp, _pglichStarts->IvMac())))\n        return 0;\n\n    ichT = *_QichLn(ln);\n    _FetchLineLn(ln, rgch, LwMin(ich - ichT, size(rgch)), &cch);\n    return _XpFromRgch(pgnv, rgch, cch);\n}\n\n/***************************************************************************\n    Return the xp location of the given ich.\n***************************************************************************/\nlong TXDD::_XpFromIch(long ich)\n{\n    AssertThis(0);\n    long ichMin, cch;\n    achar rgch[kcchMaxLine];\n\n    if (!_FFindLineStartCached(ich, &ichMin))\n        return 0;\n\n    GNV gnv(this);\n\n    cch = LwMin(size(rgch), ich - ichMin);\n    _pbsf->FetchRgb(ichMin, cch, rgch);\n    return _XpFromRgch(&gnv, rgch, cch);\n}\n\n/***************************************************************************\n    Return the xp location of the end of the given (rgch, cch), assuming\n    it starts at the beginning of a line.\n***************************************************************************/\nlong TXDD::_XpFromRgch(PGNV pgnv, achar *prgch, long cch)\n{\n    AssertThis(0);\n    long xp, xpOrigin;\n    long ich, ichMin;\n    RC rc;\n\n    pgnv->SetFont(_onn, _grfont, _dypFont);\n    xp = xpOrigin = kdxpIndentTxdd - _scvHorz;\n    ich = 0;\n    while (ich < cch)\n    {\n        while (ich < cch)\n        {\n            switch (prgch[ich])\n            {\n            case kchTab:\n                xp = xpOrigin + LwRoundAway(xp - xpOrigin + 1, _dxpTab);\n                break;\n            case kchReturn:\n            case kchLineFeed:\n                break;\n            default:\n                goto LNonWhite;\n            }\n            ich++;\n        }\n\n    LNonWhite:\n        ichMin = ich;\n        while (ich < cch)\n        {\n            switch (prgch[ich])\n            {\n            case kchTab:\n            case kchReturn:\n            case kchLineFeed:\n                goto LEndRun;\n            }\n            ich++;\n        }\n\n    LEndRun:\n        if (ich > ichMin)\n        {\n            pgnv->GetRcFromRgch(&rc, prgch + ichMin, ich - ichMin);\n            xp += rc.Dxp();\n        }\n    }\n\n    return xp;\n}\n\n/***************************************************************************\n    Find the character that is closest to xp on the given line.\n***************************************************************************/\nlong TXDD::_IchFromLnXp(long ln, long xp)\n{\n    AssertThis(0);\n    long ichMin, cch;\n    achar rgch[kcchMaxLine];\n\n    if (ln < 0)\n        return 0;\n\n    _FetchLineLn(ln, rgch, size(rgch), &cch, &ichMin);\n    return _IchFromRgchXp(rgch, cch, ichMin, xp);\n}\n\n/***************************************************************************\n    Find the character that is closest to xp on the same line as the given\n    character.\n***************************************************************************/\nlong TXDD::_IchFromIchXp(long ich, long xp)\n{\n    AssertThis(0);\n    long ichMin, cch;\n    achar rgch[kcchMaxLine];\n\n    _FetchLineIch(ich, rgch, size(rgch), &cch, &ichMin);\n    return _IchFromRgchXp(rgch, cch, ichMin, xp);\n}\n\n/***************************************************************************\n    Find the character that is closest to xp on the given line.\n***************************************************************************/\nlong TXDD::_IchFromRgchXp(achar *prgch, long cch, long ichMinLine, long xp)\n{\n    AssertThis(0);\n    long xpT;\n    long ich, ichMin, ichLim;\n    GNV gnv(this);\n\n    while (cch > 0 && (prgch[cch - 1] == kchReturn || prgch[cch - 1] == kchLineFeed))\n        cch--;\n    ichLim = ichMinLine + cch;\n    ichMin = ichMinLine;\n    while (ichMin < ichLim)\n    {\n        ich = (ichMin + ichLim) / 2;\n        xpT = _XpFromRgch(&gnv, prgch, ich - ichMinLine);\n        if (xpT < xp)\n            ichMin = ich + 1;\n        else\n            ichLim = ich;\n    }\n    if (ichMin > ichMinLine && LwAbs(xp - _XpFromRgch(&gnv, prgch, ichMin - 1 - ichMinLine)) <\n                                   LwAbs(xp - _XpFromRgch(&gnv, prgch, ichMin - ichMinLine)))\n    {\n        ichMin--;\n    }\n    return ichMin;\n}\n\n/***************************************************************************\n    Make sure the selection is visible (or at least _ichOther is).\n***************************************************************************/\nvoid TXDD::ShowSel(bool fDraw)\n{\n    AssertThis(0);\n    long ln, lnHope;\n    long dxpScroll, dichScroll;\n    long xpMin, xpLim;\n    RC rc;\n    long ichAnchor = _ichAnchor;\n\n    // find the lines we want to show\n    ln = _LnFromIch(_ichOther);\n    lnHope = _LnFromIch(ichAnchor);\n    GetRc(&rc, cooLocal);\n\n    dichScroll = 0;\n    if (!FIn(ln, 0, _clnDispWhole) || !FIn(lnHope, 0, _clnDispWhole))\n    {\n        // count the number of lines between _ichOther and ichAnchor\n        long ichMinLine, ich;\n        long ichMin = LwMin(ichAnchor, _ichOther);\n        long ichLim = LwMax(ichAnchor, _ichOther);\n        long cln = 0;\n\n        AssertDo(_FFindLineStartCached(ichMin, &ichMinLine), 0);\n        for (ich = ichMin; cln < _clnDispWhole && _FFindNextLineStartCached(ich, &ich) && ich < ichLim; cln++)\n        {\n        }\n\n        if (cln >= _clnDispWhole)\n        {\n            // just show _ichOther\n            AssertDo(_FFindLineStartCached(_ichOther, &ichMinLine), 0);\n            ichAnchor = _ichOther;\n            lnHope = ln;\n            cln = 0;\n        }\n\n        if (ln < 0 || lnHope < 0)\n        {\n            // scroll up\n            dichScroll = ichMinLine - _scvVert;\n        }\n        else if (ln >= _clnDispWhole || lnHope >= _clnDispWhole)\n        {\n            // scroll down\n            cln = LwMax(0, _clnDispWhole - cln - 1);\n\n            // move cln lines back from ichMinLine\n            while (cln-- > 0 && _FFindLineStartCached(ichMinLine - 1, &ichMin))\n                ichMinLine = ichMin;\n            dichScroll = ichMinLine - _scvVert;\n        }\n    }\n\n    // now do the horizontal stuff\n    xpMin = _XpFromIch(_ichOther);\n    xpLim = _XpFromIch(ichAnchor);\n    if (LwAbs(xpLim - xpMin) > rc.Dxp())\n    {\n        // can't show both\n        if (xpMin > xpLim)\n        {\n            xpLim = xpMin;\n            xpMin = xpLim - rc.Dxp();\n        }\n        else\n            xpLim = xpMin + rc.Dxp();\n    }\n    else\n        SortLw(&xpMin, &xpLim);\n    dxpScroll = LwMax(LwMin(0, rc.xpRight - xpLim), rc.xpLeft - xpMin);\n\n    if (dxpScroll != 0 || dichScroll != 0)\n    {\n        _Scroll(scaToVal, scaToVal, _scvHorz - dxpScroll, _scvVert + dichScroll);\n    }\n}\n\n/***************************************************************************\n    Handle a mousedown in the TXDD.\n***************************************************************************/\nbool TXDD::FCmdTrackMouse(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    RC rc;\n    long ich;\n    long scaHorz, scaVert;\n    long xp = pcmd->xp;\n    long yp = pcmd->yp;\n\n    if (pcmd->cid == cidMouseDown)\n    {\n        Assert(vpcex->PgobTracking() == pvNil, \"mouse already being tracked!\");\n        vpcex->TrackMouse(this);\n    }\n    else\n    {\n        Assert(vpcex->PgobTracking() == this, \"not tracking mouse!\");\n        Assert(pcmd->cid == cidTrackMouse, 0);\n    }\n\n    // do autoscrolling\n    GetRc(&rc, cooLocal);\n    if (!FIn(xp, rc.xpLeft, rc.xpRight))\n    {\n        scaHorz = (xp < rc.xpLeft) ? scaLineUp : scaLineDown;\n        xp = LwBound(xp, rc.xpLeft, rc.xpRight);\n    }\n    else\n        scaHorz = scaNil;\n    if (!FIn(yp, rc.ypTop, rc.ypBottom))\n    {\n        scaVert = (yp < rc.ypTop) ? scaLineUp : scaLineDown;\n        yp = LwBound(yp, rc.ypTop, rc.ypBottom);\n    }\n    else\n        scaVert = scaNil;\n    if (scaHorz != scaNil || scaVert != scaNil)\n        _Scroll(scaHorz, scaVert);\n\n    // set the selection\n    ich = _IchFromLnXp(yp / _dypLine, xp);\n    if (pcmd->cid != cidMouseDown || (pcmd->grfcust & fcustShift))\n        SetSel(_ichAnchor, ich, fTrue);\n    else\n        SetSel(ich, ich, fTrue);\n    _SwitchSel(fTrue, fTrue); // make sure the selection is on\n    ShowSel(fTrue);\n\n    if (!(pcmd->grfcust & fcustMouse))\n        vpcex->EndMouseTracking();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle a key down.\n***************************************************************************/\nbool TXDD::FCmdKey(PCMD_KEY pcmd)\n{\n    AssertThis(0);\n    const long kcchInsBuf = 64;\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    ulong grfcust;\n    long vkDone;\n    long dich, dln, ichLim, ichT, ichMin;\n    achar ch;\n    long cact;\n    CMD cmd;\n    achar rgch[kcchInsBuf + 1];\n\n    // keep fetching characters until we get a cursor key, delete key or\n    // until the buffer is full.\n    vkDone = vkNil;\n    ichLim = 0;\n    do\n    {\n        grfcust = pcmd->grfcust;\n        switch (pcmd->vk)\n        {\n        // these keys all terminate the key fetching loop\n        case kvkHome:\n        case kvkEnd:\n        case kvkLeft:\n        case kvkRight:\n        case kvkUp:\n        case kvkDown:\n        case kvkPageUp:\n        case kvkPageDown:\n        case kvkDelete:\n        case kvkBack:\n            vkDone = pcmd->vk;\n            goto LInsert;\n\n        default:\n            if (chNil == pcmd->ch)\n                break;\n            for (cact = 0; cact < pcmd->cact && ichLim < kcchInsBuf; cact++)\n            {\n                rgch[ichLim++] = (achar)pcmd->ch;\n#ifdef WIN\n                if ((achar)pcmd->ch == kchReturn)\n                    rgch[ichLim++] = kchLineFeed;\n#endif // WIN\n            }\n            break;\n        }\n\n        pcmd = (PCMD_KEY)&cmd;\n    } while (ichLim < kcchInsBuf && vpcex->FGetNextKey(&cmd));\n\nLInsert:\n    if (ichLim > 0)\n    {\n        // have some characters to insert\n        FReplace(rgch, ichLim, _ichAnchor, _ichOther, fTrue);\n    }\n\n    dich = 0;\n    dln = 0;\n    switch (vkDone)\n    {\n    case kvkHome:\n        if (grfcust & fcustCmd)\n            dich = -_pbsf->IbMac() - ichLim - 1;\n        else if (_FFindLineStartCached(_ichOther, &ichT))\n            dich = ichT - _ichOther;\n        _fXpValid = fFalse;\n        goto LSetSel;\n    case kvkEnd:\n        if (grfcust & fcustCmd)\n            dich = _pbsf->IbMac() + ichLim + 1;\n        else\n        {\n            if (!_FFindNextLineStartCached(_ichOther, &ichT))\n                ichT = _pbsf->IbMac();\n\n            // don't advance past trailing line feed and return characters\n            while (ichT > _ichOther && _FFetchCh(ichT - 1, &ch) && (ch == kchReturn || ch == kchLineFeed))\n            {\n                ichT--;\n            }\n            dich = ichT - _ichOther;\n        }\n        _fXpValid = fFalse;\n        goto LSetSel;\n    case kvkLeft:\n        dich = -1;\n        while (_FFetchCh(_ichOther + dich, &ch) && ch == kchLineFeed)\n            dich--;\n        _fXpValid = fFalse;\n        goto LSetSel;\n    case kvkRight:\n        dich = 1;\n        while (_FFetchCh(_ichOther + dich, &ch) && ch == kchLineFeed)\n            dich++;\n        _fXpValid = fFalse;\n        goto LSetSel;\n\n    case kvkUp:\n        dln = -1;\n        goto LLineSel;\n    case kvkDown:\n        dln = 1;\n        goto LLineSel;\n    case kvkPageUp:\n        dln = -LwMax(1, _clnDispWhole - 1);\n        goto LLineSel;\n    case kvkPageDown:\n        dln = LwMax(1, _clnDispWhole - 1);\n    LLineSel:\n        if (!_fXpValid)\n        {\n            // get the xp of _ichOther\n            _xpSel = _XpFromIch(_ichOther) + _scvHorz;\n            _fXpValid = fTrue;\n        }\n        if (dln > 0)\n        {\n            ichMin = _ichOther;\n            while (dln-- > 0 && _FFindNextLineStartCached(ichMin, &ichT))\n                ichMin = ichT;\n            if (dln >= 0)\n            {\n                // goto end of doc\n                dich = _pbsf->IbMac() - _ichOther;\n                _fXpValid = fFalse;\n            }\n            else\n                goto LFindIch;\n        }\n        else\n        {\n            AssertDo(_FFindLineStartCached(_ichOther, &ichT), 0);\n            ichMin = ichT;\n            while (dln++ < 0 && _FFindLineStartCached(ichMin - 1, &ichT))\n                ichMin = ichT;\n            if (dln <= 0)\n            {\n                // goto top of doc\n                dich = -_ichOther;\n                _fXpValid = fFalse;\n            }\n            else\n            {\n            LFindIch:\n                // ichMin is the start of the line to move the selection to\n                dich = _IchFromIchXp(ichMin, _xpSel - _scvHorz) - _ichOther;\n            }\n        }\n    LSetSel:\n        // move the selection\n        if (grfcust & fcustShift)\n        {\n            // extend selection\n            SetSel(_ichAnchor, _ichOther + dich, fTrue);\n            ShowSel(fTrue);\n        }\n        else\n        {\n            long ichAnchor = _ichAnchor;\n\n            if (ichAnchor == _ichOther)\n                ichAnchor += dich;\n            else if ((dich > 0) != (ichAnchor > _ichOther))\n                ichAnchor = _ichOther;\n            SetSel(ichAnchor, ichAnchor, fTrue);\n            ShowSel(fTrue);\n        }\n        break;\n\n    case kvkDelete:\n        dich = 1;\n        goto LDelete;\n    case kvkBack:\n        dich = -1;\n    LDelete:\n        if (_ichAnchor != _ichOther)\n            dich = _ichOther - _ichAnchor;\n        else\n            dich = LwBound(_ichAnchor + dich, 0, _pbsf->IbMac() + 1) - _ichAnchor;\n        if (dich != 0)\n            FReplace(pvNil, 0, _ichAnchor, _ichAnchor + dich, fTrue);\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Replaces the characters between ich1 and ich2 with the given ones.\n***************************************************************************/\nbool TXDD::FReplace(achar *prgch, long cch, long ich1, long ich2, bool fDraw)\n{\n    AssertThis(0);\n    _SwitchSel(fFalse, fTrue);\n    SortLw(&ich1, &ich2);\n    if (!_pbsf->FReplace(prgch, cch, ich1, ich2 - ich1))\n        return fFalse;\n\n    _InvalAllTxdd(ich1, cch, ich2 - ich1);\n    ich1 += cch;\n    SetSel(ich1, ich1, fTrue);\n    ShowSel(fTrue);\n    return fTrue;\n}\n\n/***************************************************************************\n    Invalidate all TXDDs on this text doc.  Also dirties the document.\n    Should be called by any code that edits the document.\n***************************************************************************/\nvoid TXDD::_InvalAllTxdd(long ich, long cchIns, long cchDel)\n{\n    AssertThis(0);\n    long ipddg;\n    PDDG pddg;\n\n    // mark the document dirty\n    _pdocb->SetDirty();\n\n    // inform the TXDDs\n    for (ipddg = 0; pvNil != (pddg = _pdocb->PddgGet(ipddg)); ipddg++)\n    {\n        if (pddg->FIs(kclsTXDD))\n            ((PTXDD)pddg)->_InvalIch(ich, cchIns, cchDel);\n    }\n}\n\n/***************************************************************************\n    Invalidate the display from ich.  If we're the active TXDD, also redraw.\n***************************************************************************/\nvoid TXDD::_InvalIch(long ich, long cchIns, long cchDel)\n{\n    AssertThis(0);\n    Assert(!_fSelOn, \"why is the sel on during an invalidation?\");\n    RC rcLoc, rc;\n    long ichAnchor, ichOther;\n    long lnNew, clnIns, clnDel;\n    long yp, dypIns, dypDel;\n\n    // adjust the sel\n    ichAnchor = _ichAnchor;\n    ichOther = _ichOther;\n    FAdjustIv(&ichAnchor, ich, cchIns, cchDel);\n    FAdjustIv(&ichOther, ich, cchIns, cchDel);\n    if (ichAnchor != _ichAnchor || ichOther != _ichOther)\n        SetSel(ichAnchor, ichOther, fFalse);\n\n    // adjust the cache\n    if (_ichLimCache > _ichMinCache)\n    {\n        if (FPure(_ichLimCache <= ich) != FPure(_ichMinCache <= ich) ||\n            FPure(_ichLimCache >= ich + cchDel) != FPure(_ichMinCache >= ich + cchDel) ||\n            !FAdjustIv(&_ichLimCache, ich, cchIns, cchDel) || !FAdjustIv(&_ichMinCache, ich, cchIns, cchDel))\n        {\n            _ichMinCache = _ichLimCache = 0;\n        }\n    }\n\n    // reformat\n    _ReformatEdit(ich, cchIns, cchDel, &lnNew, &clnIns, &clnDel);\n    if (lnNew > 0)\n    {\n        lnNew--;\n        clnIns++;\n        clnDel++;\n    }\n\n    // determine the dirty rectangles and if we're active, update them\n    GetRc(&rcLoc, cooLocal);\n    if (!_fActive)\n    {\n        rc = rcLoc;\n        rc.ypTop = LwMul(lnNew, _dypLine);\n        if (clnIns == clnDel)\n            rc.ypBottom = LwMul(lnNew + clnIns, _dypLine);\n        InvalRc(&rc);\n        return;\n    }\n\n    dypIns = LwMul(clnIns, _dypLine);\n    dypDel = LwMul(clnDel, _dypLine);\n    yp = LwMul(lnNew, _dypLine);\n    rc = rcLoc;\n    rc.ypTop = yp;\n    rc.ypBottom = yp + LwMin(dypIns, dypDel);\n    if (_clnDisp > lnNew + clnIns - clnDel && clnIns != clnDel)\n    {\n        // have some bits to blt vertically\n        rc = rcLoc;\n        rc.ypTop = yp + LwMin(dypIns, dypDel);\n        Scroll(&rc, 0, dypIns - dypDel, kginDraw);\n        rc.ypBottom = rc.ypTop;\n        rc.ypTop = yp;\n    }\n    if (!rc.FEmpty())\n        InvalRc(&rc, kginDraw);\n\n    _fXpValid = fFalse;\n}\n\n/***************************************************************************\n    If ppdocb != pvNil, copy the selection to a new document and return\n    true.  If ppdocb == pvNil just return whether the selection is\n    non-empty.\n***************************************************************************/\nbool TXDD::_FCopySel(PDOCB *ppdocb)\n{\n    AssertThis(0);\n    PTXDC ptxdc;\n    long ich1, ich2;\n\n    if ((ich1 = _ichOther) == (ich2 = _ichAnchor))\n        return fFalse;\n\n    if (pvNil == ppdocb)\n        return fTrue;\n\n    SortLw(&ich1, &ich2);\n    if (pvNil != (ptxdc = TXDC::PtxdcNew()))\n    {\n        if (!ptxdc->Pbsf()->FReplaceBsf(_pbsf, ich1, ich2 - ich1, 0, 0))\n            ReleasePpo(&ptxdc);\n    }\n\n    *ppdocb = ptxdc;\n    return pvNil != *ppdocb;\n}\n\n/***************************************************************************\n    Clear (delete) the current selection.\n***************************************************************************/\nvoid TXDD::_ClearSel(void)\n{\n    AssertThis(0);\n    FReplace(pvNil, 0, _ichAnchor, _ichOther, fTrue);\n}\n\n/***************************************************************************\n    Paste the given doc into this one.\n***************************************************************************/\nbool TXDD::_FPaste(PCLIP pclip, bool fDoIt, long cid)\n{\n    AssertThis(0);\n    AssertPo(pclip, 0);\n    long ich1, ich2, cch;\n    PTXDC ptxdc;\n    PBSF pbsf;\n\n    if (cidPaste != cid || !pclip->FGetFormat(kclsTXDC))\n        return fFalse;\n\n    if (!fDoIt)\n        return fTrue;\n\n    if (!pclip->FGetFormat(kclsTXDC, (PDOCB *)&ptxdc))\n        return fFalse;\n\n    AssertPo(ptxdc, 0);\n    if (pvNil == (pbsf = ptxdc->Pbsf()) || 0 >= (cch = pbsf->IbMac()))\n    {\n        ReleasePpo(&ptxdc);\n        return fTrue;\n    }\n\n    _SwitchSel(fFalse, fTrue);\n    ich1 = _ichAnchor;\n    ich2 = _ichOther;\n    SortLw(&ich1, &ich2);\n\n    if (!_pbsf->FReplaceBsf(pbsf, 0, cch, ich1, ich2 - ich1))\n    {\n        ReleasePpo(&ptxdc);\n        return fFalse;\n    }\n    ReleasePpo(&ptxdc);\n\n    _InvalAllTxdd(ich1, cch, ich2 - ich1);\n    ich1 += cch;\n    SetSel(ich1, ich1, fTrue);\n    ShowSel(fTrue);\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a TXDD.\n***************************************************************************/\nvoid TXDD::AssertValid(ulong grf)\n{\n    // REVIEW shonk: fill in more\n    TXDD_PAR::AssertValid(0);\n    AssertPo(_pbsf, 0);\n    AssertPo(_pglichStarts, 0);\n}\n\n/***************************************************************************\n    Mark memory for the TXDD.\n***************************************************************************/\nvoid TXDD::MarkMem(void)\n{\n    AssertValid(0);\n    TXDD_PAR::MarkMem();\n    MarkMemObj(_pbsf);\n    MarkMemObj(_pglichStarts);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/textdoc.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    For editing a text file or text stream as a document.  Unlike the edit\n    controls in text.h/text.cpp, all the text need not be in memory (this\n    uses a BSF) and there can be multiple views on the same text.\n\n***************************************************************************/\n#ifndef TEXTDOC_H\n#define TEXTDOC_H\n\n/***************************************************************************\n    Text document.  A doc wrapper for a BSF.\n***************************************************************************/\ntypedef class TXDC *PTXDC;\n#define TXDC_PAR DOCB\n#define kclsTXDC 'TXDC'\nclass TXDC : public TXDC_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PBSF _pbsf;\n    PFIL _pfil;\n\n    TXDC(PDOCB pdocb = pvNil, ulong grfdoc = fdocNil);\n    ~TXDC(void);\n    bool _FInit(PFNI pfni = pvNil, PBSF pbsf = pvNil);\n\n  public:\n    static PTXDC PtxdcNew(PFNI pfni = pvNil, PBSF pbsf = pvNil, PDOCB pdocb = pvNil, ulong grfdoc = fdocNil);\n\n    PBSF Pbsf(void)\n    {\n        return _pbsf;\n    }\n\n    virtual PDDG PddgNew(PGCB pgcb);\n    virtual bool FGetFni(FNI *pfni);\n    virtual bool FSaveToFni(FNI *pfni, bool fSetFni);\n};\n\n/***************************************************************************\n    Text document display GOB - DDG for a TXDC.\n***************************************************************************/\nconst long kcchMaxLine = 512;\nconst long kdxpIndentTxdd = 5;\n\ntypedef class TXDD *PTXDD;\n#define TXDD_PAR DDG\n#define kclsTXDD 'TXDD'\nclass TXDD : public TXDD_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PBSF _pbsf;\n    long _clnDisp;\n    long _clnDispWhole;\n    PGL _pglichStarts;\n\n    // the selection\n    long _ichAnchor;\n    long _ichOther;\n    bool _fSelOn : 1;\n    ulong _tsSel;\n    long _xpSel;\n    bool _fXpValid;\n\n    // the font\n    long _onn;\n    ulong _grfont;\n    long _dypFont;\n    long _dypLine;\n    long _dxpTab;\n\n    // the cache\n    achar _rgchCache[kcchMaxLine];\n    long _ichMinCache;\n    long _ichLimCache;\n\n    TXDD(PDOCB pdocb, PGCB pgcb, PBSF pbsf, long onn, ulong grfont, long dypFont);\n    ~TXDD(void);\n    virtual bool _FInit(void);\n    virtual void _NewRc(void);\n    virtual void _Activate(bool fActive);\n\n    void _Reformat(long lnMin, long *pclnIns = pvNil, long *pclnDel = pvNil);\n    void _ReformatEdit(long ichMinEdit, long cchIns, long cchDel, long *pln, long *pclnIns = pvNil,\n                       long *pclnDel = pvNil);\n    bool _FFetchCh(long ich, achar *pch);\n    void _FetchLineLn(long ln, achar *prgch, long cchMax, long *pcch, long *pichMin = pvNil);\n    void _FetchLineIch(long ich, achar *prgch, long cchMax, long *pcch, long *pichMin = pvNil);\n    bool _FFindNextLineStart(long ich, long *pich, achar *prgch = pvNil, long cchMax = 0);\n    bool _FFindLineStart(long ich, long *pich);\n    bool _FFindNextLineStartCached(long ich, long *pich, achar *prgch = pvNil, long cchMax = 0);\n    bool _FFindLineStartCached(long ich, long *pich);\n    void _DrawLine(PGNV pgnv, RC *prcClip, long yp, achar *prgch, long cch);\n    void _SwitchSel(bool fOn, bool fDraw);\n    void _InvertSel(PGNV pgnv, bool fDraw);\n    void _InvertIchRange(PGNV pgnv, long ich1, long ich2, bool fDraw);\n    long _LnFromIch(long ich);\n    long _IchMinLn(long ln);\n    long _XpFromLnIch(PGNV pgnv, long ln, long ich);\n    long _XpFromIch(long ich);\n    long _XpFromRgch(PGNV pgnv, achar *prgch, long cch);\n    long _IchFromLnXp(long ln, long xp);\n    long _IchFromIchXp(long ich, long xp);\n    long _IchFromRgchXp(achar *prgch, long cch, long ichMinLine, long xp);\n\n    long *_QichLn(long ln)\n    {\n        return (long *)_pglichStarts->QvGet(ln);\n    }\n\n    void _InvalAllTxdd(long ich, long cchIns, long cchDel);\n    void _InvalIch(long ich, long cchIns, long cchDel);\n\n    // scrolling support\n    virtual long _ScvMax(bool fVert);\n    virtual void _Scroll(long scaHorz, long scaVert, long scvHorz = 0, long scvVert = 0);\n\n    // clipboard support\n    virtual bool _FCopySel(PDOCB *ppdocb = pvNil);\n    virtual void _ClearSel(void);\n    virtual bool _FPaste(PCLIP pclip, bool fDoIt, long cid);\n\n  public:\n    static PTXDD PtxddNew(PDOCB pdocb, PGCB pgcb, PBSF pbsf, long onn, ulong grfont, long dypFont);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FCmdTrackMouse(PCMD_MOUSE pcmd);\n    virtual bool FCmdKey(PCMD_KEY pcmd);\n    virtual bool FCmdSelIdle(PCMD pcmd);\n\n    void SetSel(long ichAnchor, long ichOther, bool fDraw);\n    void ShowSel(bool fDraw);\n    bool FReplace(achar *prgch, long cch, long ich1, long ich2, bool fDraw);\n};\n\n#endif //! TEXTDOC_H\n"
  },
  {
    "path": "kauai/src/ut.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai test app\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Utility tester.\n\n***************************************************************************/\n#include \"util.h\"\n#include <stdio.h>\nASSERTNAME\n\nvoid TestUtil(void);\nvoid CheckForLostMem(void);\nbool FFindPrime(long lwMax, long lwMaxRoot, long *plwPrime, long *plwRoot);\n\n/***************************************************************************\n    Call test routines.\n***************************************************************************/\nvoid __cdecl main(long cpszs, char **prgpszs)\n{\n#ifdef REVIEW // shonk: for counting lines\n    FNE fne;\n    FNI fniDir, fni;\n    FTG rgftg[2];\n    byte rgb[512];\n    FP fpMac, fp;\n    long cbTot, clnTot, ib, cbT, cln;\n    PFIL pfil;\n    STN stn;\n\n    if (!fniDir.FGetOpen(\"All files\\0*.*\\0\", hNil))\n        return;\n\n    fniDir.FSetLeaf(pvNil, kftgDir);\n    rgftg[0] = 'H';\n    rgftg[1] = 'CPP';\n    if (!fne.FInit(&fniDir, rgftg, 2))\n        return;\n\n    cbTot = 0;\n    clnTot = 0;\n    while (fne.FNextFni(&fni))\n    {\n        fni.GetStnPath(&stn);\n\n        if (pvNil == (pfil = FIL::PfilOpen(&fni)))\n            return;\n        fpMac = pfil->FpMac();\n        cbTot += fpMac;\n\n        fp = 0;\n        cln = 0;\n        while (fp < fpMac)\n        {\n            cbT = LwMin(fpMac - fp, size(rgb));\n            if (!pfil->FReadRgbSeq(rgb, cbT, &fp))\n                return;\n            for (ib = 0; ib < cbT; ib++)\n            {\n                if (rgb[ib] == kchReturn)\n                    cln++;\n            }\n        }\n        clnTot += cln;\n        printf(\"%s: %d, %d\\n\", stn.Psz(), cln, fpMac);\n    }\n\n    printf(\"Total bytes: %d;  Total lines: %d\\n\", cbTot, clnTot);\n#endif // REVIEW\n\n#ifndef REVIEW // shonk: for finding a prime and a primitive root for the prime\n    long lwPrime, lwRoot, lw;\n    STN stn;\n\n    lwPrime = 6000;\n    if (cpszs > 1)\n    {\n        stn.SetSzs(prgpszs[1]);\n        if (stn.FGetLw(&lw) && FIn(lw, 2, kcbMax))\n            lwPrime = lw;\n    }\n    lwRoot = lwPrime / 2;\n    if (cpszs > 2)\n    {\n        stn.SetSzs(prgpszs[2]);\n        if (stn.FGetLw(&lw) && FIn(lw, 2, kcbMax))\n            lwRoot = lw;\n    }\n\n    if (FFindPrime(lwPrime, lwRoot, &lwPrime, &lwRoot))\n        printf(\"prime = %ld, primitive root = %ld\\n\", lwPrime, lwRoot);\n#endif // REVIEW\n\n#ifdef REVIEW // shonk: general testing stuff\n    CheckForLostMem();\n    TestUtil();\n    CheckForLostMem();\n#endif\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Returning true breaks into the debugger.\n***************************************************************************/\nbool FAssertProc(PSZS pszsFile, long lwLine, PSZS pszsMsg, void *pv, long cb)\n{\n    printf(\"An assert occurred: \\n\\r\");\n    if (pszsMsg != pvNil)\n        printf(\"   Msg: %s\\n\\r\", pszsMsg);\n    if (pv != pvNil)\n    {\n        printf(\"   Address %x\\n\\r\", pv);\n        if (cb != 0)\n        {\n            printf(\"   Value: \");\n            switch (cb)\n            {\n            default: {\n                byte *pb;\n                byte *pbLim;\n\n                for (pb = (byte *)pv, pbLim = pb + cb; pb < pbLim; pb++)\n                    printf(\"%2x\", (int)*pb);\n            }\n            break;\n\n            case 2:\n                printf(\"%4x\", (int)*(short *)pv);\n                break;\n\n            case 4:\n                printf(\"%8x\", *(long *)pv);\n                break;\n            }\n            printf(\"\\n\\r\");\n        }\n    }\n    printf(\"   File: %s\\n\\r\", pszsFile);\n    printf(\"   Line: %ld\\n\\r\", lwLine);\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Callback from util for warnings.\n***************************************************************************/\nvoid WarnProc(PSZS pszsFile, long lwLine, PSZS pszsMsg)\n{\n    printf(\"Warning\\n\\r\");\n    if (pszsMsg != pvNil)\n        printf(\"   Msg: %s\\n\\r\", pszsMsg);\n    printf(\"   File: %s\\n\\r\", pszsFile);\n    printf(\"   Line: %ld\\n\\r\", lwLine);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Unmarks all hqs, marks all hqs known to be in use, then asserts\n    on all unmarked hqs.\n***************************************************************************/\nvoid CheckForLostMem(void)\n{\n    UnmarkAllMem();\n    UnmarkAllObjs();\n\n    MarkUtilMem(); // marks all util memory\n\n    AssertUnmarkedMem();\n    AssertUnmarkedObjs();\n}\n\n/***************************************************************************\n    Find the largest prime that is less than lwMax and find a primitive root\n    for it.\n***************************************************************************/\nbool FFindPrime(long lwMax, long lwMaxRoot, long *plwPrime, long *plwRoot)\n{\n    AssertIn(lwMax, 3, kcbMax);\n    AssertVarMem(plwPrime);\n    AssertVarMem(plwRoot);\n    byte *prgb;\n    long cb;\n    long lw, ibit, lwT, clwHit;\n\n    // make sure lwMax is even.\n    lwMax = (lwMax + 1) & ~1;\n\n    cb = LwDivAway(lwMax, 16);\n    if (!FAllocPv((void **)&prgb, cb, fmemClear, mprNormal))\n        return fFalse;\n\n    for (lw = 3; lw < lwMax / 3; lw += 2)\n    {\n        ibit = lw / 2;\n        if (prgb[ibit / 8] & (1 << (ibit % 8)))\n            continue;\n\n        for (lwT = 3 * lw; lwT < lwMax; lwT += 2 * lw)\n        {\n            ibit = lwT / 2;\n            prgb[ibit / 8] |= (1 << (ibit % 8));\n        }\n    }\n\n    for (lw = lwMax - 1;; lw -= 2)\n    {\n        ibit = lw / 2;\n        if (!(prgb[ibit / 8] & (1 << (ibit % 8))))\n            break;\n    }\n\n    *plwPrime = lw;\n    FreePpv((void **)&prgb);\n\n    for (lw = LwMin(lwMaxRoot, *plwPrime - 1);; lw--)\n    {\n        if (lw <= 1)\n        {\n            Assert(lw > 1, \"bug\");\n            break;\n        }\n        for (lwT = lw, clwHit = 0;;)\n        {\n            clwHit++;\n            LwMulDivMod(lwT, lw, *plwPrime, &lwT);\n            if (lwT == lw)\n                break;\n        }\n        if (clwHit == *plwPrime - 1)\n            break;\n    }\n\n    *plwRoot = lw;\n    return fTrue;\n}\n"
  },
  {
    "path": "kauai/src/util.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Core routines for the utility layer.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\n#ifdef DEBUG\n/***************************************************************************\n    Mark all util-level memory and objects.\n***************************************************************************/\nvoid MarkUtilMem(void)\n{\n    PCFL pcfl;\n    PFIL pfil;\n\n    MarkMemObj(&vsflUtil);\n    MarkMemObj(&vrndUtil);\n    MarkMemObj(&vkcdcUtil);\n    MarkMemObj(&vcodmUtil);\n    MarkMemObj(vpcodmUtil);\n\n    for (pcfl = CFL::PcflFirst(); pcfl != pvNil; pcfl = pcfl->PcflNext())\n        MarkMemObj(pcfl);\n\n    for (pfil = FIL::PfilFirst(); pfil != pvNil; pfil = pfil->PfilNext())\n        MarkMemObj(pfil);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/util.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Main include file for util files.\n\n***************************************************************************/\n#ifndef UTIL_H\n#define UTIL_H\n#include <stddef.h>\n\n// define the endian-ness\n#ifdef IN_80386\n#define LITTLE_ENDIAN\n#endif // IN_80386\n\n#ifdef LITTLE_ENDIAN\n#define BigLittle(a, b) b\n#define Big(a)\n#define Little(a) a\n#else //! LITTLE_ENDIAN\n#define BigLittle(a, b) a\n#define Big(a) a\n#define Little(a)\n#endif //! LITTLE_ENDIAN\n\n#ifdef MAC\n\n#include \"mac.h\"\n\n#elif defined(WIN)\n\n#define CONST // so we don't have to use const everywhere that Windows wants it\n\n#ifdef UNICODE\n#define _UNICODE\n#endif // UNICODE\n\n// windef.h typedef's PSZ to char *, this fools it into using PSZS instead\n#define PSZ PSZS\n#include <windows.h>\n#include <windowsx.h>\n#include <vfw.h>\n#undef PSZ\n\n#define MIR(foo) MAKEINTRESOURCE(foo)\ntypedef HBITMAP HBMP;\ntypedef HENHMETAFILE HPIC;\ntypedef HPALETTE HPAL;\ntypedef HCURSOR HCRS;\n#define hBadWin INVALID_HANDLE_VALUE // some windows APIs return this\n\n#endif // WIN\n\n#define size(foo) ((long)sizeof(foo))\n#define offset(FOO, field) ((int)&((FOO *)0)->field)\n#define CvFromRgv(rgv) (size(rgv) / size(rgv[0]))\n#define BLOCK\n\n#ifdef DEBUG\n#define priv\n#else //! DEBUG\n#define priv static\n#endif //! DEBUG\n\n// standard scalar types\ntypedef unsigned char byte;\nconst byte kbMax = 0xFF;\nconst byte kbMin = 0;\n\ntypedef unsigned short ushort;\nconst short kswMax = (short)0x7FFF;\nconst short kswMin = -kswMax; // so -kswMin is positive\nconst ushort ksuMax = 0xFFFF;\nconst ushort ksuMin = 0;\n\ntypedef unsigned int uint;\n\ntypedef unsigned long ulong;\nconst long klwMax = 0x7FFFFFFF;\nconst long klwMin = -klwMax; // so -klwMin is positive\nconst ulong kluMax = 0xFFFFFFFF;\nconst ulong kluMin = 0;\n\n// typedef int bool;\n\n// standard character types:\n// schar - short (skinny) character (1 byte)\n// wchar - wide character (unicode)\n// achar - application character\n#ifdef MAC\ntypedef byte schar;\nconst schar kschMax = (schar)0xFF;\nconst schar kschMin = (schar)0;\n#else  //! MAC\ntypedef char schar;\nconst schar kschMax = (schar)0x7F;\nconst schar kschMin = (schar)0x80;\n#endif //! MAC\ntypedef ushort wchar;\nconst wchar kwchMax = ksuMax;\nconst wchar kwchMin = ksuMin;\n#ifdef UNICODE\ntypedef wchar achar;\ntypedef unsigned short uchar;\nconst achar kchMax = kwchMax;\nconst achar kchMin = kwchMin;\n#define PszLit(sz) L##sz\n#define ChLit(ch) L##ch\n#else //! UNICODE\ntypedef schar achar;\ntypedef unsigned char uchar;\nconst achar kchMax = kschMax;\nconst achar kchMin = kschMin;\n#define PszLit(sz) sz\n#define ChLit(ch) ch\n#endif //! UNICODE\n\ntypedef class GRPB *PGRPB;\ntypedef class GLB *PGLB;\ntypedef class GL *PGL;\ntypedef class AL *PAL;\ntypedef class GGB *PGGB;\ntypedef class GG *PGG;\ntypedef class AG *PAG;\ntypedef class GSTB *PGSTB;\ntypedef class GST *PGST;\ntypedef class AST *PAST;\ntypedef class SCPT *PSCPT;\ntypedef class BLCK *PBLCK;\n\n#include \"framedef.h\"\n#include \"debug.h\"\n#include \"base.h\"\n#include \"utilint.h\"\n#include \"utilcopy.h\"\n#include \"utilstr.h\"\n#include \"utilmem.h\"\n#include \"fni.h\"\n#include \"file.h\"\n#include \"groups.h\"\n#include \"utilerro.h\"\n#include \"chunk.h\"\n#include \"utilrnd.h\"\n#include \"crf.h\"\n#include \"codec.h\"\n\n// optional\n#include \"stream.h\"\n#include \"lex.h\"\n#include \"scrcom.h\"\n#include \"screxe.h\"\n#include \"chse.h\"\n#include \"midi.h\"\n\n#include \"utilglob.h\"\n\n#endif //! UTIL_H\n"
  },
  {
    "path": "kauai/src/utilcopy.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Data movement routines.\n    WARNING: Must be in a fixed (pre-loaded) seg on Mac.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\n/***************************************************************************\n    Fill a block with a specific byte value.\n***************************************************************************/\nvoid FillPb(void *pv, long cb, byte b)\n{\n    AssertIn(cb, 0, kcbMax);\n    AssertPvCb(pv, cb);\n\n#ifdef IN_80386\n\n    __asm {\n        // Setup the registers for using REP STOS instruction to set memory.\n        // NOTE: Alignment does not effect the speed of STOS.\n        //\n        // edi -> memory to set\n        // eax = value to store in destination\n        // direction flag is clear for auto-increment\n\n\t\tmov\t\tedi,pv\n\t\tmov\t\tal,b\n\n            // set the longs\n\t\tmov\t\tecx,cb\n\t\tshr\t\tecx,2\n\t\tjz\t\tLBytes\n\n\t\tshl\t\teax,8\n\t\tmov\t\tal,b\n\t\tmov\t\tebx,eax\n\t\tshl\t\teax,16\n\t\tmov\t\tax,bx\n\n\t\trep\t\tstosd\n\n                // set the extra bytes\nLBytes:\n\t\tmov\t\tecx,cb\n\t\tand\t\tecx,3\n\t\trep\t\tstosb\n    }\n\n#else //! IN_80386\n\n    byte *pb;\n\n    for (pb = (byte *)pv; cb != 0; cb--)\n        *pb++ = b;\n\n#endif //! IN_80386\n}\n\n/***************************************************************************\n    Clear a block.\n***************************************************************************/\nvoid ClearPb(void *pv, long cb)\n{\n    AssertIn(cb, 0, kcbMax);\n    AssertPvCb(pv, cb);\n\n#ifdef IN_80386\n\n    __asm\n        {// Setup the registers for using REP STOS instruction to set memory.\n         // NOTE: Alignment does not effect the speed of STOS.\n         //\n         // edi -> memory to set\n         // eax = value to store in destination\n         // direction flag is clear for auto-increment\n\n\t\tmov\t\tedi,pv\n\t\txor\t\teax,eax\n\n             // clear the longs\n\t\tmov\t\tecx,cb\n\t\tshr\t\tecx,2\n\t\trep\t\tstosd\n\n             // clear the extra bytes\n\t\tmov\t\tecx,cb\n\t\tand\t\tecx,3\n\t\trep\t\tstosb\n        }\n\n#else //! IN_80386\n\n    byte *pb;\n\n    for (pb = (byte *)pv; cb != 0; cb--)\n        *pb++ = 0;\n\n#endif //! IN_80386\n}\n\n/***************************************************************************\n    Reverse a block. Useful for exchanging two blocks or avoiding\n    recursion.\n***************************************************************************/\nvoid ReversePb(void *pv, long cb)\n{\n    AssertIn(cb, 0, kcbMax);\n    AssertPvCb(pv, cb);\n\n#ifdef IN_80386\n\n    __asm {\n        // esi - high end of block\n        // edi - low end of block\n        // ecx - number of bytes to swap\n\n\t\tmov\t\tedi,pv\n\t\tmov\t\tesi,edi\n\t\tadd\t\tesi,cb\n\t\tmov\t\tecx,cb\n\t\tshr\t\tecx,1\n\n\t\tor\t\tecx,ecx\n\t\tjz\t\tLDone\n\nLLoop:\n\t\tdec\t\tesi\n\t\tmov\t\tal,[edi]\n\t\tmov\t\tbl,[esi]\n\t\tmov\t\t[edi],bl\n\t\tmov\t\t[esi],al\n\n\t\tinc\t\tedi\n\t\tdec\t\tecx\n\t\tjnz\t\tLLoop\nLDone:\n    }\n\n#else //! IN_80386\n\n    byte *pb1, *pb2;\n    byte b;\n\n    for (pb2 = (pb1 = (byte *)pv) + cb - 1; pb1 < pb2;)\n    {\n        b = *pb1;\n        *pb1++ = *pb2;\n        *pb2-- = b;\n    }\n\n#endif //! IN_80386\n}\n\n/***************************************************************************\n    Reverse a list of shorts.\n***************************************************************************/\nvoid ReverseRgsw(void *pv, long csw)\n{\n    AssertIn(csw, 0, kcbMax);\n    AssertPvCb(pv, csw * size(short));\n\n#ifdef IN_80386\n\n    __asm {\n        // esi - high end of block\n        // edi - low end of block\n        // ecx - number of shorts to swap\n\n\t\tmov\t\tedi,pv\n\t\tmov\t\tesi,edi\n\t\tmov\t\tecx,csw\n\t\tshl\t\tecx,1\n\t\tadd\t\tesi,ecx\n\t\tshr\t\tecx,2\n\n\t\tor\t\tecx,ecx\n\t\tjz\t\tLDone\n\nLLoop:\n\t\tsub\t\tesi,2\n\t\tmov\t\tax,[edi]\n\t\tmov\t\tbx,[esi]\n\t\tmov\t\t[edi],bx\n\t\tmov\t\t[esi],ax\n\n\t\tadd\t\tedi,2\n\t\tdec\t\tecx\n\t\tjnz\t\tLLoop\nLDone:\n    }\n\n#else //! IN_80386\n\n    long *psw1, *psw2;\n    long sw;\n\n    for (psw2 = (psw1 = reinterpret_cast<long *>(pv)) + csw - 1; psw1 < psw2;)\n    {\n        sw = *psw1;\n        *psw1++ = *psw2;\n        *psw2-- = sw;\n    }\n\n#endif //! IN_80386\n}\n\n/***************************************************************************\n    Reverse a list of longs.\n***************************************************************************/\nvoid ReverseRglw(void *pv, long clw)\n{\n    AssertIn(clw, 0, kcbMax);\n    AssertPvCb(pv, clw * size(long));\n\n#ifdef IN_80386\n\n    __asm {\n        // esi - high end of block\n        // edi - low end of block\n        // ecx - number of longs to swap\n\n\t\tmov\t\tedi,pv\n\t\tmov\t\tesi,edi\n\t\tmov\t\tecx,clw\n\t\tshl\t\tecx,2\n\t\tadd\t\tesi,ecx\n\t\tshr\t\tecx,3\n\n\t\tor\t\tecx,ecx\n\t\tjz\t\tLDone\n\nLLoop:\n\t\tsub\t\tesi,4\n\t\tmov\t\teax,[edi]\n\t\tmov\t\tebx,[esi]\n\t\tmov\t\t[edi],ebx\n\t\tmov\t\t[esi],eax\n\n\t\tadd\t\tedi,4\n\t\tdec\t\tecx\n\t\tjnz\t\tLLoop\nLDone:\n    }\n\n#else //! IN_80386\n\n    long *plw1, *plw2;\n    long lw;\n\n    for (plw2 = (plw1 = (long *)pv) + clw - 1; plw1 < plw2;)\n    {\n        lw = *plw1;\n        *plw1++ = *plw2;\n        *plw2-- = lw;\n    }\n\n#endif //! IN_80386\n}\n\n/***************************************************************************\n    Swap two adjacent blocks of size cb1 and cb2 respectively.\n***************************************************************************/\nvoid SwapBlocks(void *pv, long cb1, long cb2)\n{\n    AssertIn(cb1, 0, kcbMax);\n    AssertIn(cb2, 0, kcbMax);\n    AssertPvCb(pv, cb1 + cb2);\n\n    ReversePb(pv, cb1);\n    ReversePb(PvAddBv(pv, cb1), cb2);\n    ReversePb(pv, cb1 + cb2);\n}\n\n/***************************************************************************\n    Swap the contents of two blocks of the same size.\n***************************************************************************/\nvoid SwapPb(void *pv1, void *pv2, long cb)\n{\n    AssertPvCb(pv1, cb);\n    AssertPvCb(pv2, cb);\n    AssertIn(cb, 0, kcbMax);\n\n#ifdef IN_80386\n\n    __asm {\n        // edi -> memory to swap, first pointer\n        // esi -> memory to swap, second pointer\n\n\t\tmov\t\tedi,pv1\n\t\tmov\t\tesi,pv2\n\n\t\tmov\t\tecx,cb\n\t\tshr\t\tecx,2\n\t\tjz\t\tLBytes\n\nLLongLoop:\n\t\tmov\t\teax,[edi]\n\t\tmov\t\tebx,[esi]\n\t\tmov\t\t[edi],ebx\n\t\tmov\t\t[esi],eax\n\n\t\tadd\t\tedi,4\n\t\tadd\t\tesi,4\n\t\tdec\t\tecx\n\t\tjnz\t\tLLongLoop;\n\nLBytes:\n\t\tmov\t\tecx,cb\n\t\tand\t\tecx,3\n\t\tjz\t\tLDone\n\nLByteLoop:\n\t\tmov\t\tal,[edi]\n\t\tmov\t\tbl,[esi]\n\t\tmov\t\t[edi],bl\n\t\tmov\t\t[esi],al\n\t\tinc\t\tedi\n\t\tinc\t\tesi\n\t\tdec\t\tecx\n\t\tjnz\t\tLByteLoop\n\nLDone:\n    }\n\n#else //! IN_80386\n\n    byte *pb1 = (byte *)pv1;\n    byte *pb2 = (byte *)pv2;\n    byte b;\n\n    Assert(pb1 + cb <= pb2 || pb2 + cb <= pb1, \"blocks overlap\");\n    while (cb-- > 0)\n    {\n        b = *pb1;\n        *pb1++ = *pb2;\n        *pb2++ = b;\n    }\n\n#endif //! IN_80386\n}\n\n/***************************************************************************\n    Move the entry at ivSrc to be immediately before the element that is\n    currently at ivTarget. If ivTarget > ivSrc, the entry actually ends\n    up at (ivTarget - 1) and the entry at ivTarget doesn't move. If\n    ivTarget < ivSrc, the entry ends up at ivTarget and the entry at\n    ivTarget moves to (ivTarget + 1). Everything in between is shifted\n    appropriately. prgv is the array of elements and cbElement is the\n    size of each element.\n***************************************************************************/\nvoid MoveElement(void *prgv, long cbElement, long ivSrc, long ivTarget)\n{\n    AssertIn(cbElement, 0, kcbMax);\n    AssertIn(ivSrc, 0, kcbMax);\n    AssertIn(ivTarget, 0, kcbMax);\n    AssertPvCb(prgv, LwMul(cbElement, ivSrc + 1));\n    AssertPvCb(prgv, LwMul(cbElement, ivTarget));\n\n    if (ivTarget == ivSrc || ivTarget == ivSrc + 1)\n        return;\n\n    // swap the blocks\n    if (ivSrc < ivTarget)\n    {\n        SwapBlocks(PvAddBv(prgv, LwMul(ivSrc, cbElement)), cbElement, LwMul(ivTarget - 1 - ivSrc, cbElement));\n    }\n    else\n    {\n        SwapBlocks(PvAddBv(prgv, LwMul(ivTarget, cbElement)), LwMul(ivSrc - ivTarget, cbElement), cbElement);\n    }\n}\n\n/***************************************************************************\n    Check for equality of two blocks.\n***************************************************************************/\nbool FEqualRgb(void *pv1, void *pv2, long cb)\n{\n    AssertIn(cb, 0, kcbMax);\n    AssertPvCb(pv1, cb);\n    AssertPvCb(pv2, cb);\n\n#ifdef IN_80386\n\n    tribool fRet;\n\n    __asm {\n        // edi -> memory to compare, first pointer\n        // esi -> memory to compare, second pointer\n\n\t\txor\t\teax,eax // assume false return\n\t\tmov\t\tedi,pv1\n\t\tmov\t\tesi,pv2\n\n            // compare longs\n\t\tmov\t\tecx,cb // (ecx) = length in bytes\n\t\tshr\t\tecx,2 // (ecx) = length in longs\n\t\trepe\tcmpsd // compare longs\n\t\tjnz\t\tLDone // mismatch, go report\n\n                // compare extra bytes\n\t\tmov\t\tecx,cb\n\t\tand\t\tecx,3 // (ecx) = length mod 4\n\t\trepe\tcmpsb // compare odd bytes\n\t\tjnz\t\tLDone // mismatch, go report\n\n\t\tinc\t\teax // successful compare\n\nLDone:\n\t\tmov\t\tfRet,eax\n    }\n\n    return fRet;\n\n#else //! IN_80386\n\n    byte *pb1 = (byte *)pv1;\n    byte *pb2 = (byte *)pv2;\n\n    while (cb != 0 && *pb1++ == *pb2++)\n        cb--;\n    return cb == 0;\n\n#endif //! IN_80386\n}\n\n/***************************************************************************\n    Compare the two buffers byte for byte and return a the number of bytes\n    that match.\n***************************************************************************/\nlong CbEqualRgb(void *pv1, void *pv2, long cb)\n{\n    AssertIn(cb, 0, kcbMax);\n    AssertPvCb(pv1, cb);\n    AssertPvCb(pv2, cb);\n\n#ifdef IN_80386\n\n    byte *pb;\n\n    __asm {\n        // edi -> memory to swap, first pointer\n        // esi -> memory to swap, second pointer\n\n\t\tmov\t\tedi,pv1\n\t\tmov\t\tesi,pv2\n\n            // compare extra bytes.\n\t\tmov\t\tecx,cb\n\t\tand\t\tecx,3 // (ecx) = length mod 4\n\t\trepe\tcmpsb // compare odd bytes\n\t\tjnz\t\tLMiss // mismatch, go report how far we got\n\n                // compare longs\n\t\tmov\t\tecx,cb // (ecx) = length in bytes\n\t\tshr\t\tecx,2 // (ecx) = length in longs\n\t\trepe\tcmpsd // compare longs\n\t\tjz\t\tLHit // matched all the way\n\n                // esi (and edi) points to the long after the one which caused the\n                // mismatch. Back up 1 long and find the byte. Since we know the\n                // long didn't match, we can assume one of the bytes won't.\n\t\tsub\t\tesi,4 // back up\n\t\tsub\t\tedi,4 // back up\n\t\tmov\t\tecx,5 // ensure that ecx doesn't count out\n\t\trepe\tcmpsb // find mismatch byte\n\n            // esi points to the byte after the one that did not match.\nLMiss:\n\t\tdec\t\tesi\n\t\tdec\t\tedi\n\t\tmov\t\tpb,edi\n    }\n\n    return pb - (byte *)pv1;\n\nLHit:\n    // We matched all the way to the end.\n    return cb;\n\n#else //! IN_80386\n\n    byte *pb1 = (byte *)pv1;\n    byte *pb2 = (byte *)pv2;\n\n    for (; cb-- > 0 && *pb1 == *pb2; pb1++, pb2++)\n        ;\n    return pb1 - (byte *)pv1;\n\n#endif //! IN_80386\n}\n\n/***************************************************************************\n    Compare the two buffers byte for byte and return an fcmp indicating\n    their relationship to each other.\n***************************************************************************/\nulong FcmpCompareRgb(void *pv1, void *pv2, long cb)\n{\n    AssertIn(cb, 0, kcbMax);\n    AssertPvCb(pv1, cb);\n    AssertPvCb(pv2, cb);\n\n    long cbMatch = CbEqualRgb(pv1, pv2, cb);\n\n    AssertIn(cbMatch, 0, cb + 1);\n    if (cb == cbMatch)\n        return fcmpEq;\n\n    return ((byte *)pv1)[cbMatch] < ((byte *)pv2)[cbMatch] ? fcmpLt : fcmpGt;\n}\n\n/***************************************************************************\n    Copy data without overlap.\n****************************************************************************/\nvoid CopyPb(void *pv1, void *pv2, long cb)\n{\n    AssertIn(cb, 0, kcbMax);\n    AssertPvCb(pv1, cb);\n    AssertPvCb(pv2, cb);\n    Assert((byte *)pv1 + cb <= (byte *)pv2 || (byte *)pv2 + cb <= (byte *)pv1, \"blocks overlap\");\n\n#ifdef IN_80386\n\n    __asm\n        {// Setup the registers for using REP MOVS instruction to move memory.\n         //\n         // esi -> memory to move\n         // edi -> destination of move\n         // direction flag is clear for auto-increment\n\t\tmov\t\tesi,pv1\n\t\tmov\t\tedi,pv2\n\n             // move the longs\n\t\tmov\t\tecx,cb\n\t\tshr\t\tecx,2\n\t\trep\t\tmovsd\n\n             // move the extra bytes\n\t\tmov\t\tecx,cb\n\t\tand\t\tecx,3\n\t\trep\t\tmovsb\n        }\n\n#else //! IN_80386\n\n    byte *pb1 = (byte *)pv1;\n    byte *pb2 = (byte *)pv2;\n\n    while (cb-- != 0)\n        *pb2++ = *pb1++;\n\n#endif //! IN_80386\n}\n\n/***************************************************************************\n    Copy data with possible overlap.\n***************************************************************************/\nvoid BltPb(void *pv1, void *pv2, long cb)\n{\n    AssertIn(cb, 0, kcbMax);\n    AssertPvCb(pv1, cb);\n    AssertPvCb(pv2, cb);\n\n#ifdef IN_80386\n\n    __asm {\n        // Setup the registers for using REP MOVS instruction to move memory.\n        //\n        // esi -> memory to move\n        // edi -> destination of move\n        // direction flag is clear for auto-increment\n\n\t\tmov\t\tesi,pv1\n\t\tmov\t\tedi,pv2\n\t\tmov\t\tecx,cb\n\n\t\tcmp\t\tesi,edi\n\t\tja\t\tLForward // if source > destination\n\t\tje\t\tLDone // if source == destination\n\n                // source < destination, see if they overlap\n\t\tmov\t\teax,edi\n\t\tsub\t\teax,esi\n\t\tcmp\t\tecx,eax\n\t\tjbe\t\tLForward\n\n            // they overlap with source < destination, so have to do a backward copy\n\t\tstd\n\t\tadd\t\tesi,ecx\n\t\tadd\t\tedi,ecx\n\t\tdec\t\tesi\n\t\tdec\t\tedi\n\n            // move the extra bytes\n\t\tand\t\tecx,3\n\t\trep\t\tmovsb\n\n            // move the longs\n\t\tmov\t\tecx,cb\n\t\tshr\t\tecx,2\n\t\tjz\t\tLDone\n\t\tsub\t\tesi,3\n\t\tsub\t\tedi,3\n\t\trep\t\tmovsd\n\t\tjmp\t\tLDone\n\nLForward:\n            // move the longs\n\t\tshr\t\tecx,2\n\t\trep\t\tmovsd\n\n            // move the extra bytes\n\t\tmov\t\tecx,cb\n\t\tand\t\tecx,3\n\t\trep\t\tmovsb\n\nLDone:\n\t\tcld\n    }\n\n#else //! IN_80386\n\n    byte *pb1 = (byte *)pv1;\n    byte *pb2 = (byte *)pv2;\n\n    if (pb1 > pb2)\n    {\n        while (cb-- != 0)\n            *pb2++ = *pb1++;\n    }\n    else\n    {\n        pb1 += cb;\n        pb2 += cb;\n        while (cb-- != 0)\n            *--pb2 = *--pb1;\n    }\n\n#endif //! IN_80386\n}\n"
  },
  {
    "path": "kauai/src/utilcopy.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Data movement declarations\n\n***************************************************************************/\n#ifndef UTILCOPY_H\n#define UTILCOPY_H\n\nvoid BltPb(void *pv1, void *pv2, long cb);\nvoid CopyPb(void *pv1, void *pv2, long cb);\nvoid ClearPb(void *pv, long cb);\nvoid FillPb(void *pv1, long cb, byte b);\nvoid ReversePb(void *pv, long cb);\nvoid ReverseRgsw(void *pv, long csw);\nvoid ReverseRglw(void *pv, long clw);\nvoid SwapBlocks(void *pv, long cb1, long cb2);\nvoid SwapPb(void *pv1, void *pv2, long cb);\nvoid MoveElement(void *prgv, long cbElement, long ivSrc, long ivTarget);\nbool FEqualRgb(void *pv1, void *pv2, long cb);\nlong CbEqualRgb(void *pv1, void *pv2, long cbMax);\nulong FcmpCompareRgb(void *pv1, void *pv2, long cb);\n\n#ifdef DEBUG\n#define SwapVars(pv1, pv2)                                                                                             \\\n    if (size(*pv1) != size(*pv2))                                                                                      \\\n        Bug(\"sizes don't match\");                                                                                      \\\n    else                                                                                                               \\\n        SwapPb(pv1, pv2, size(*pv1))\n#else //! DEBUG\n#define SwapVars(pv1, pv2) SwapPb(pv1, pv2, size(*pv1))\n#endif //! DEBUG\n\n#endif // UTILCOPY_H\n"
  },
  {
    "path": "kauai/src/utilerro.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Error registration and reporting.  Uses a stack of error code.\n    Not based on lists (which seem like an obvious choice), since we don't\n    want to do any allocation when registering an error.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\nERS _ers;\nERS *vpers = &_ers;\n\nRTCLASS(ERS)\n\n/***************************************************************************\n    Initialize the error code stack.\n***************************************************************************/\nERS::ERS(void)\n{\n    _cerd = 0;\n}\n\n/***************************************************************************\n    Push an error code onto the stack.  If overflow occurs, blt the top\n    kcerdMax - 1 entries down by one (and lose the bottom entry).\n***************************************************************************/\n#ifdef DEBUG\nvoid ERS::Push(long erc, PSZS pszsFile, long lwLine)\n#else  //! DEBUG\nvoid ERS::Push(long erc)\n#endif //! DEBUG\n{\n    AssertThis(0);\n\n#ifdef DEBUG\n    STN stn;\n    SZS szs;\n\n    stn.FFormatSz(PszLit(\"Error %d\"), erc);\n    stn.GetSzs(szs);\n    WarnProc(pszsFile, lwLine, szs);\n#endif // DEBUG\n\n    _mutx.Enter();\n\n    if (_cerd > 0 && erc == _rgerd[_cerd - 1].erc)\n        goto LDone;\n\n    if (_cerd == kcerdMax)\n    {\n        Warn(\"Warning: error code stack has filled\");\n        BltPb(_rgerd + 1, _rgerd, LwMul(size(_rgerd[0]), kcerdMax - 1));\n        _cerd--;\n    }\n#ifdef DEBUG\n    _rgerd[_cerd].pszsFile = pszsFile;\n    _rgerd[_cerd].lwLine = lwLine;\n#endif // DEBUG\n    _rgerd[_cerd++].erc = erc;\n\nLDone:\n    _mutx.Leave();\n\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Pop the top error from the stack.  Return fFalse if underflow.\n***************************************************************************/\nbool ERS::FPop(long *perc)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(perc);\n\n    _mutx.Enter();\n\n    if (_cerd == 0)\n    {\n        TrashVar(perc);\n        _mutx.Leave();\n        return fFalse;\n    }\n    --_cerd;\n    if (pvNil != perc)\n        *perc = _rgerd[_cerd].erc;\n\n    _mutx.Leave();\n    AssertThis(0);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Clear the error stack.\n***************************************************************************/\nvoid ERS::Clear(void)\n{\n    AssertThis(0);\n\n    _mutx.Enter();\n    _cerd = 0;\n    _mutx.Leave();\n}\n\n/***************************************************************************\n    Return the size of the error stack.\n***************************************************************************/\nlong ERS::Cerc(void)\n{\n    AssertThis(0);\n    return _cerd;\n}\n\n/***************************************************************************\n    See if the given error code is on the stack.\n***************************************************************************/\nbool ERS::FIn(long erc)\n{\n    AssertThis(0);\n    long ierd;\n\n    _mutx.Enter();\n    for (ierd = 0; ierd < _cerd; ierd++)\n    {\n        if (_rgerd[ierd].erc == erc)\n        {\n            _mutx.Leave();\n            return fTrue;\n        }\n    }\n    _mutx.Leave();\n    return fFalse;\n}\n\n/***************************************************************************\n    Return the i'th entry.\n***************************************************************************/\nlong ERS::ErcGet(long ierc)\n{\n    AssertThis(0);\n    long erc;\n\n    _mutx.Enter();\n    if (!::FIn(ierc, 0, _cerd))\n        erc = ercNil;\n    else\n        erc = _rgerd[ierc].erc;\n    _mutx.Leave();\n\n    return erc;\n}\n\n/***************************************************************************\n    Flush all instances of the given error code from the error stack.\n***************************************************************************/\nvoid ERS::Flush(long erc)\n{\n    AssertThis(0);\n    long ierdSrc, ierdDst;\n\n    _mutx.Enter();\n    for (ierdSrc = ierdDst = 0; ierdSrc < _cerd; ierdSrc++)\n    {\n        if (_rgerd[ierdSrc].erc != erc)\n        {\n            if (ierdDst < ierdSrc)\n                _rgerd[ierdDst] = _rgerd[ierdSrc];\n            ierdDst++;\n        }\n    }\n    _cerd = ierdDst;\n    _mutx.Leave();\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the error stack is valid.\n***************************************************************************/\nvoid ERS::AssertValid(ulong grf)\n{\n    ERS_PAR::AssertValid(0);\n    AssertIn(_cerd, 0, kcerdMax + 1);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/utilerro.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/******************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Error registration and reporting.  All error codes go here.\n\n******************************************************************************/\n#ifndef UTILERROR_H\n#define UTILERROR_H\n\nconst long kcerdMax = 20;\n\n/***************************************************************************\n    Error stack class\n***************************************************************************/\n#define ERS_PAR BASE\n#define kclsERS 'ERS'\nclass ERS : public ERS_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  private:\n    struct ERD\n    {\n        long erc;\n#ifdef DEBUG\n        PSZS pszsFile;\n        long lwLine;\n#endif // DEBUG\n    };\n\n    MUTX _mutx;\n    long _cerd;\n    ERD _rgerd[kcerdMax];\n\n  public:\n    ERS(void);\n\n#ifdef DEBUG\n    virtual void Push(long erc, schar *pszsFile, long lwLine);\n#else  //! DEBUG\n    virtual void Push(long erc);\n#endif //! DEBUG\n    virtual bool FPop(long *perc = pvNil);\n    virtual bool FIn(long erc);\n    virtual long Cerc(void);\n    virtual long ErcGet(long ierc);\n    virtual void Clear(void);\n    virtual void Flush(long erc);\n};\n\nextern ERS *vpers;\n\n#ifdef DEBUG\n#define PushErc(erc) vpers->Push(erc, __szsFile, __LINE__)\n#else //! DEBUG\n#define PushErc(erc) vpers->Push(erc)\n#endif //! DEBUG\n\n#endif //! UTILERROR_H\n"
  },
  {
    "path": "kauai/src/utilglob.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Contains the declarations of all globals used by util. The order of the\n    globals within this file is critical. C++ specifies that constructors\n    get called in source order within a module. It leaves construction\n    order unspecified between modules. The mutexes at the top of this\n    file should be constructed before anything else in the app. One way\n    to guarantee this is for all globals to be in a single module. The\n    app's global .cpp file can include utilglob.cpp (before any of its\n    global declarations).\n\n    For the MSVC tools, constructors seem to be executed in link order.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\nRTCLASS(USAC)\n\n// Allocate globals in utilglob before any other globals to avoid crashes on exit\n#pragma init_seg(lib)\n\n#ifdef DEBUG\n// protects our debug linked list object management\nMUTX vmutxBase;\n#endif // DEBUG\n\nMUTX vmutxMem;\n\n// Shuffler and random number generator for the script interpreter\nSFL vsflUtil;\nRND vrndUtil;\n\n// Standard Kauai codec\nKCDC vkcdcUtil;\n\n// Standard compression manager - gets initialized with the standard\n// Kauai codec. Clients can add additional codecs or redirect vpcodmUtil\n// to a different compression manager with their own codecs\nCODM vcodmUtil(&vkcdcUtil, kcfmtKauai2);\nPCODM vpcodmUtil = &vcodmUtil;\n\n// Standard scalable application clok.\nUSAC _usac;\nPUSAC vpusac = &_usac;\n\n#ifdef DEBUG\n\n// Debug memory globals\nDMGLOB vdmglob;\n\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/utilglob.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    These are globals common to the util layer.\n\n***************************************************************************/\n#ifndef UTILGLOB_H\n#define UTILGLOB_H\n\n/***************************************************************************\n    Universal scalable application clock and other time stuff\n***************************************************************************/\nconst ulong kdtsSecond = MacWin(60, 1000);\nconst ulong kluTimeScaleNormal = 0x00010000;\n\ntypedef class USAC *PUSAC;\n#define USAC_PAR BASE\n#define kclsUSAC 'USAC'\nclass USAC : public USAC_PAR\n{\n    RTCLASS_DEC\n\n  private:\n    ulong _tsBaseSys; // base system time\n    ulong _tsBaseApp; // base application time\n    ulong _luScale;\n\n  public:\n    USAC(void);\n\n    ulong TsCur(void);\n    void Scale(ulong luScale);\n    ulong LuScale(void)\n    {\n        return _luScale;\n    }\n    void Jump(ulong dtsJump)\n    {\n        _tsBaseApp += dtsJump;\n    }\n};\n\nextern PUSAC vpusac;\n\ninline ulong TsCurrent(void)\n{\n    return vpusac->TsCur();\n}\ninline ulong TsCurrentSystem(void)\n{\n    // n.b. WIN: timeGetTime is more accurate than GetTickCount\n    return MacWin(TickCount(), timeGetTime());\n}\ninline ulong DtsCaret(void)\n{\n    return MacWin(GetCaretTime(), GetCaretBlinkTime());\n}\n\n/***************************************************************************\n    Mutexes to protect various global linked lists, etc.\n***************************************************************************/\n#ifdef DEBUG\nextern MUTX vmutxBase;\n#endif // DEBUG\nextern MUTX vmutxMem;\n\n/***************************************************************************\n    Global random number generator and shuffler. These are used by the\n    script interpreter.\n***************************************************************************/\nextern SFL vsflUtil;\nextern RND vrndUtil;\n\n/***************************************************************************\n    Global standard Kauai codec, compression manager, and pointer to\n    a compression manager. The blck-level compression uses vpcodmUtil.\n    Clients are free to redirect this to their own compression manager.\n***************************************************************************/\nextern KCDC vkcdcUtil;\nextern CODM vcodmUtil;\nextern PCODM vpcodmUtil;\n\n/***************************************************************************\n    Debug memory globals\n***************************************************************************/\n#ifdef DEBUG\nextern DMGLOB vdmglob;\n#endif // DEBUG\n\n#endif //! UTILGLOB_H\n"
  },
  {
    "path": "kauai/src/utilint.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Integer, rectangle and point utilities.\n    WARNING: Must be in a fixed (pre-loaded) seg on Mac.\n\n***************************************************************************/\n#include \"util.h\"\n\n#include <cmath>\n\nASSERTNAME\n\n/***************************************************************************\n    Calculates the GCD of two longs.\n***************************************************************************/\nlong LwGcd(long lw1, long lw2)\n{\n    return LuGcd(LwAbs(lw1), LwAbs(lw2));\n}\n\n/***************************************************************************\n    Calculates the GCD of two unsigned longs.\n***************************************************************************/\nulong LuGcd(ulong lu1, ulong lu2)\n{\n    // Euclidean algorithm - keep mod'ing until we hit zero\n    if (lu1 == 0)\n    {\n        // if both are zero, return 1.\n        return lu2 == 0 ? 1 : lu2;\n    }\n\n    for (;;)\n    {\n        lu2 %= lu1;\n        if (lu2 == 0)\n            return lu1 == 0 ? 1 : lu1;\n        lu1 %= lu2;\n        if (lu1 == 0)\n            return lu2;\n    }\n}\n\n/***************************************************************************\n    Sort the two longs so the smaller is in *plw1.\n***************************************************************************/\nvoid SortLw(long *plw1, long *plw2)\n{\n    if (*plw1 > *plw2)\n    {\n        long lwT = *plw1;\n        *plw1 = *plw2;\n        *plw2 = lwT;\n    }\n}\n\n#ifndef MC_68020 // 68020 version in utilmc.asm\n#ifndef IN_80386 // 80386 version inline in utilint.h\n/***************************************************************************\n    Multiply lw by lwMul and divide by lwDiv without losing precision.\n***************************************************************************/\nlong LwMulDiv(long lw, long lwMul, long lwDiv)\n{\n    Assert(lwDiv != 0, \"divide by zero error\");\n    double dou;\n\n    dou = (double)lw * lwMul / lwDiv;\n    Assert(dou <= klwMax && dou >= klwMin, \"overflow in LwMulDiv\");\n    return (long)dou;\n}\n\n/***************************************************************************\n    Return the quotient and set *plwRem to the remainder when (lw * lwMul)\n    is divided by lwDiv.\n***************************************************************************/\nlong LwMulDivMod(long lw, long lwMul, long lwDiv, long *plwRem)\n{\n    Assert(lwDiv != 0, \"moding by 0\");\n    AssertVarMem(plwRem);\n    double dou;\n\n    dou = (double)lw * lwMul;\n    *plwRem = static_cast<long>(std::fmod(dou, lwDiv));\n    dou /= lwDiv;\n    Assert(dou <= klwMax && dou >= klwMin, \"overflow in LwMulDiv\");\n    return (long)dou;\n}\n#endif // IN_80386\n\n/***************************************************************************\n    Multiply two longs to get a 64 bit (signed) result.\n***************************************************************************/\nvoid MulLw(long lw1, long lw2, long *plwHigh, ulong *pluLow)\n{\n#ifdef IN_80386\n    __asm\n    {\n\t\tmov\t\teax,lw1\n\t\timul\tlw2\n\t\tmov\t\tebx,plwHigh\n\t\tmov\t\t[ebx],edx\n\t\tmov\t\tebx,pluLow\n\t\tmov\t\t[ebx],eax\n    }\n#else  //! IN_80386\n    double dou;\n    bool fNeg;\n\n    fNeg = 0 > (dou = (double)lw1 * lw2);\n    if (fNeg)\n        dou = -dou;\n    *plwHigh = (long)(dou / ((double)0x10000 * 0x10000));\n    *pluLow = dou - *plwHigh * ((double)0x10000 * 0x10000);\n    if (fNeg)\n    {\n        if (*pluLow == 0)\n            *plwHigh = -*plwHigh;\n        else\n        {\n            *pluLow = -*pluLow;\n            *plwHigh = ~*plwHigh;\n        }\n    }\n#endif //! IN_80386\n}\n\n/***************************************************************************\n    Multiply lu by luMul and divide by luDiv without losing precision.\n***************************************************************************/\nulong LuMulDiv(ulong lu, ulong luMul, ulong luDiv)\n{\n    Assert(luDiv != 0, \"divide by zero error\");\n\n#ifdef IN_80386\n    // REVIEW shonk: this will fault on overflow!\n    __asm\n    {\n\t\tmov\t\teax,lu\n\t\tmul\t\tluMul\n\t\tdiv\t\tluDiv\n\t\tmov\t\tlu,eax\n    }\n    return lu;\n#else  //! IN_80386\n    double dou;\n\n    dou = (double)lu * luMul / luDiv;\n    Assert(dou <= kluMax && dou >= 0, \"overflow in LuMulDiv\");\n    return (ulong)dou;\n#endif //! IN_80386\n}\n\n/***************************************************************************\n    Multiply two unsigned longs to get a 64 bit (unsigned) result.\n***************************************************************************/\nvoid MulLu(ulong lu1, ulong lu2, ulong *pluHigh, ulong *pluLow)\n{\n#ifdef IN_80386\n    __asm\n    {\n\t\tmov\t\teax,lu1\n\t\tmul\t\tlu2\n\t\tmov\t\tebx,pluHigh\n\t\tmov\t\t[ebx],edx\n\t\tmov\t\tebx,pluLow\n\t\tmov\t\t[ebx],eax\n    }\n#else  //! IN_80386\n    double dou;\n\n    dou = (double)lu1 * lu2;\n    *pluHigh = (ulong)(dou / ((double)0x10000 * 0x10000));\n    *pluLow = dou - *pluHigh * ((double)0x10000 * 0x10000);\n#endif //! IN_80386\n}\n#endif //! MC_68020\n\n/***************************************************************************\n    Does a multiply and divide without losing precision, rounding away from\n    zero during the divide.\n***************************************************************************/\nlong LwMulDivAway(long lw, long lwMul, long lwDiv)\n{\n    Assert(lwDiv != 0, \"divide by zero error\");\n    long lwT, lwRem;\n\n    lwT = LwMulDivMod(lw, lwMul, lwDiv, &lwRem);\n    if (lwRem != 0)\n    {\n        // divide wasn't exact\n        if (lwT < 0)\n            lwT--;\n        else\n            lwT++;\n    }\n\n    return lwT;\n}\n\n/***************************************************************************\n    Does a multiply and divide without losing precision, rounding away from\n    zero during the divide.\n***************************************************************************/\nulong LuMulDivAway(ulong lu, ulong luMul, ulong luDiv)\n{\n    Assert(luDiv != 0, \"divide by zero error\");\n    ulong luT;\n\n    // get rid of common factors\n    if (1 < (luT = LuGcd(lu, luDiv)))\n    {\n        lu /= luT;\n        luDiv /= luT;\n    }\n    if (1 < (luT = LuGcd(luMul, luDiv)))\n    {\n        luMul /= luT;\n        luDiv /= luT;\n    }\n\n    return LuMulDiv(lu, luMul, luDiv) + (luDiv > 1);\n}\n\n/***************************************************************************\n    Returns lwNum divided by lwDen rounded away from zero.\n***************************************************************************/\nlong LwDivAway(long lwNum, long lwDen)\n{\n    Assert(lwDen != 0, \"divide by zero\");\n\n    // make sure lwDen is greater than zero\n    if (lwDen < 0)\n    {\n        lwDen = -lwDen;\n        lwNum = -lwNum;\n    }\n    if (lwNum < 0)\n        lwNum -= (lwDen - 1);\n    else\n        lwNum += (lwDen - 1);\n    return lwNum / lwDen;\n}\n\n/***************************************************************************\n    Returns lwNum divided by lwDen rounded toward the closest integer.\n***************************************************************************/\nlong LwDivClosest(long lwNum, long lwDen)\n{\n    Assert(lwDen != 0, \"divide by zero\");\n\n    // make sure lwDen is greater than zero\n    if (lwDen < 0)\n    {\n        lwDen = -lwDen;\n        lwNum = -lwNum;\n    }\n    if (lwNum < 0)\n        lwNum -= lwDen / 2;\n    else\n        lwNum += lwDen / 2;\n    return lwNum / lwDen;\n}\n\n/***************************************************************************\n    Rounds lwSrc to a multiple of lwBase.  The rounding is done away from\n    zero.  Equivalent to LwDivAway(lwSrc, lwBase) * lwBase.\n***************************************************************************/\nlong LwRoundAway(long lwSrc, long lwBase)\n{\n    Assert(lwBase != 0, \"divide by zero\");\n\n    // make sure lwBase is greater than zero\n    if (lwBase < 0)\n        lwBase = -lwBase;\n    if (lwSrc < 0)\n        lwSrc -= (lwBase - 1);\n    else\n        lwSrc += (lwBase - 1);\n    return lwSrc - (lwSrc % lwBase);\n}\n\n/***************************************************************************\n    Rounds lwSrc to a multiple of lwBase.  The rounding is done toward zero.\n    Equivalent to (lwSrc / lwBase) * lwBase.\n***************************************************************************/\nlong LwRoundToward(long lwSrc, long lwBase)\n{\n    Assert(lwBase != 0, \"divide by zero\");\n\n    // make sure lwBase is greater than zero\n    if (lwBase < 0)\n        lwBase = -lwBase;\n    return lwSrc - (lwSrc % lwBase);\n}\n\n/***************************************************************************\n    Rounds lwSrc to the closest multiple of lwBase.\n    Equivalent to LwDivClosest(lwSrc, lwBase) * lwBase.\n***************************************************************************/\nlong LwRoundClosest(long lwSrc, long lwBase)\n{\n    Assert(lwBase != 0, \"divide by zero\");\n\n    // make sure lwBase is greater than zero\n    if (lwBase < 0)\n        lwBase = -lwBase;\n    if (lwSrc < 0)\n        lwSrc -= lwBase / 2;\n    else\n        lwSrc += lwBase / 2;\n    return lwSrc - (lwSrc % lwBase);\n}\n\n/***************************************************************************\n    Returns fcmpGt, fcmpEq or fcmpLt according to whether (lwNum1 / lwDen2)\n    is greater than, equal to or less than (lwNum2 / lwDen2).\n***************************************************************************/\nulong FcmpCompareFracs(long lwNum1, long lwDen1, long lwNum2, long lwDen2)\n{\n    long lwHigh1, lwHigh2; // must be signed\n    ulong luLow1, luLow2;  // must be unsigned\n\n    MulLw(lwNum1, lwDen2, &lwHigh1, &luLow1);\n    MulLw(lwNum2, lwDen1, &lwHigh2, &luLow2);\n\n    if (lwHigh1 > lwHigh2)\n        return fcmpGt;\n    if (lwHigh1 < lwHigh2)\n        return fcmpLt;\n\n    // the high 32 bits are the same, so just compare the low 32 bits\n    // (as unsigned longs)\n    Assert(lwHigh1 == lwHigh2, 0);\n    if (luLow1 > luLow2)\n        return fcmpGt;\n    if (luLow1 < luLow2)\n        return fcmpLt;\n    return fcmpEq;\n}\n\n/***************************************************************************\n    Adjusts an index after an edit.  *piv is the index to adjust, iv is\n    the index where the edit occurred, cvIns is the number of things inserted\n    and cvDel is the number deleted.  Returns true iff *piv is not in\n    (iv, iv + cvDel).  If *piv is in this interval, mins *piv with iv + cvIns\n    and returns false.\n***************************************************************************/\nbool FAdjustIv(long *piv, long iv, long cvIns, long cvDel)\n{\n    AssertVarMem(piv);\n    AssertIn(iv, 0, kcbMax);\n    AssertIn(cvIns, 0, kcbMax);\n    AssertIn(cvDel, 0, kcbMax);\n\n    if (*piv <= iv)\n        return fTrue;\n    if (*piv < iv + cvDel)\n    {\n        *piv = LwMin(*piv, iv + cvIns);\n        return fFalse;\n    }\n    *piv += cvIns - cvDel;\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Multiplies two longs.  Asserts on overflow.\n***************************************************************************/\nlong LwMul(long lw1, long lw2)\n{\n    if (lw1 == 0)\n        return 0;\n    Assert((lw1 * lw2) / lw1 == lw2, \"overflow\");\n    return lw1 * lw2;\n}\n\n/***************************************************************************\n    Asserts that the lw is >= lwMin and < lwLim.\n***************************************************************************/\nvoid AssertIn(long lw, long lwMin, long lwLim)\n{\n    Assert(lw >= lwMin, \"long too small\");\n    Assert(lw < lwLim, \"long too big\");\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Swap bytes in pv according to bom.  bom consists of up to 16\n    2-bit opcodes (packed from hi bit to low bit).  The high bit of\n    each opcode indicates a long field (1) or short field (0).  The low\n    bit of each opcode indicates whether the bytes are to be swapped\n    in the field (1) or left alone (0).\n***************************************************************************/\nvoid SwapBytesBom(void *pv, BOM bom)\n{\n    byte b;\n    byte *pb = (byte *)pv;\n\n    Assert(size(short) == 2 && size(long) == 4, \"code broken\");\n    while (bom != 0)\n    {\n        if (bom & 0x80000000L)\n        {\n            // long field\n            AssertPvCb(pb, 4);\n            if (bom & 0x40000000L)\n            {\n                b = pb[3];\n                pb[3] = pb[0];\n                pb[0] = b;\n                b = pb[2];\n                pb[2] = pb[1];\n                pb[1] = b;\n            }\n            pb += 4;\n        }\n        else\n        {\n            // short field\n            AssertPvCb(pb, 2);\n            if (bom & 0x40000000L)\n            {\n                b = pb[1];\n                pb[1] = pb[0];\n                pb[0] = b;\n            }\n            pb += 2;\n        }\n        bom <<= 2;\n    }\n}\n\n/***************************************************************************\n    Swap bytes within an array of short words.\n***************************************************************************/\nvoid SwapBytesRgsw(void *psw, long csw)\n{\n    AssertIn(csw, 0, kcbMax);\n    AssertPvCb(psw, LwMul(csw, size(short)));\n\n    byte b;\n    byte *pb = (byte *)psw;\n\n    Assert(size(short) == 2, \"code broken\");\n    for (; csw > 0; csw--, pb += 2)\n    {\n        b = pb[1];\n        pb[1] = pb[0];\n        pb[0] = b;\n    }\n}\n\n/***************************************************************************\n    Swap bytes within an array of long words.\n***************************************************************************/\nvoid SwapBytesRglw(void *plw, long clw)\n{\n    AssertIn(clw, 0, kcbMax);\n    AssertPvCb(plw, LwMul(clw, size(long)));\n\n    byte b;\n    byte *pb = (byte *)plw;\n\n    Assert(size(long) == 4, \"code broken\");\n    for (; clw > 0; clw--, pb += 4)\n    {\n        b = pb[3];\n        pb[3] = pb[0];\n        pb[0] = b;\n        b = pb[2];\n        pb[2] = pb[1];\n        pb[1] = b;\n    }\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Asserts that the given BOM indicates a struct having cb/size(long) longs\n    to be swapped (so SwapBytesRglw can legally be used on an array of\n    these).\n***************************************************************************/\nvoid AssertBomRglw(BOM bom, long cb)\n{\n    BOM bomT;\n    long clw;\n\n    clw = cb / size(long);\n    Assert(cb == clw * size(long), \"cb is not a multiple of size(long)\");\n    AssertIn(clw, 1, 17);\n    bomT = -1L << 2 * (16 - clw);\n    Assert(bomT == bom, \"wrong bom\");\n}\n\n/***************************************************************************\n    Asserts that the given BOM indicates a struct having cb/size(short) shorts\n    to be swapped (so SwapBytesRgsw can legally be used on an array of\n    these).\n***************************************************************************/\nvoid AssertBomRgsw(BOM bom, long cb)\n{\n    BOM bomT;\n    long csw;\n\n    csw = cb / size(short);\n    Assert(cb == csw * size(short), \"cb is not a multiple of size(short)\");\n    AssertIn(csw, 1, 17);\n    bomT = 0x55555555 << 2 * (16 - csw);\n    Assert(bomT == bom, \"wrong bom\");\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Truncates a util point to a system point.\n    REVIEW shonk: should we assert on truncation?  Should we truncate\n    on windows?\n***************************************************************************/\nPT::operator PTS(void)\n{\n    AssertThisMem();\n    PTS pts;\n\n    MacWin(pts.h, pts.x) = SwTruncLw(xp);\n    MacWin(pts.v, pts.y) = SwTruncLw(yp);\n    return pts;\n}\n\n/***************************************************************************\n    Copies a system point to a util point.\n***************************************************************************/\nPT &PT::operator=(PTS &pts)\n{\n    AssertThisMem();\n    xp = MacWin(pts.h, pts.x);\n    yp = MacWin(pts.v, pts.y);\n    return *this;\n}\n\n/***************************************************************************\n    Map a point from prcSrc coordinates to prcDst coordinates.\n***************************************************************************/\nvoid PT::Map(RC *prcSrc, RC *prcDst)\n{\n    AssertThisMem();\n    AssertVarMem(prcSrc);\n    AssertVarMem(prcDst);\n    long dzpSrc, dzpDst;\n\n    if ((dzpDst = prcDst->Dxp()) == (dzpSrc = prcSrc->Dxp()))\n    {\n        AssertVar(dzpSrc > 0, \"empty map rectangle\", prcSrc);\n        xp += prcDst->xpLeft - prcSrc->xpLeft;\n    }\n    else\n    {\n        AssertVar(dzpSrc > 0, \"empty map rectangle\", prcSrc);\n        xp = prcDst->xpLeft + LwMulDiv(xp - prcSrc->xpLeft, dzpDst, dzpSrc);\n    }\n    if ((dzpDst = prcDst->Dyp()) == (dzpSrc = prcSrc->Dyp()))\n    {\n        AssertVar(dzpSrc > 0, \"empty map rectangle\", prcSrc);\n        yp += prcDst->ypTop - prcSrc->ypTop;\n    }\n    else\n    {\n        AssertVar(dzpSrc > 0, \"empty map rectangle\", prcSrc);\n        yp = prcDst->ypTop + LwMulDiv(yp - prcSrc->ypTop, dzpDst, dzpSrc);\n    }\n}\n\n/***************************************************************************\n    Map a point from prcSrc coordinates to prcDst coordinates.\n***************************************************************************/\nPT PT::PtMap(RC *prcSrc, RC *prcDst)\n{\n    AssertThisMem();\n    PT pt = *this;\n    pt.Map(prcSrc, prcDst);\n    return pt;\n}\n\n/***************************************************************************\n    Transform the xp and yp values according to grfpt.  Negating comes\n    before transposition.\n***************************************************************************/\nvoid PT::Transform(ulong grfpt)\n{\n    AssertThisMem();\n    long zp;\n\n    if (grfpt & fptNegateXp)\n        xp = -xp;\n    if (grfpt & fptNegateYp)\n        yp = -yp;\n    if (grfpt & fptTranspose)\n    {\n        zp = xp;\n        xp = yp;\n        yp = zp;\n    }\n}\n\n/***************************************************************************\n    Check for equality, special casing empty.\n***************************************************************************/\nbool RC::operator==(RC &rc)\n{\n    AssertThisMem();\n\n    if (FEmpty())\n        return rc.FEmpty();\n\n    return xpLeft == rc.xpLeft && ypTop == rc.ypTop && xpRight == rc.xpRight && ypBottom == rc.ypBottom;\n}\n\n/***************************************************************************\n    Check for non-equality, special casing empty.\n***************************************************************************/\nbool RC::operator!=(RC &rc)\n{\n    AssertThisMem();\n\n    if (FEmpty())\n        return !rc.FEmpty();\n\n    return xpLeft != rc.xpLeft || ypTop != rc.ypTop || xpRight != rc.xpRight || ypBottom != rc.ypBottom;\n}\n\n/***************************************************************************\n    Unionize the rects.\n***************************************************************************/\nvoid RC::Union(RC *prc1, RC *prc2)\n{\n    AssertThisMem();\n    AssertVarMem(prc1);\n    AssertVarMem(prc2);\n\n    *this = *prc1;\n    Union(prc2);\n}\n\n/***************************************************************************\n    Unionize the rects.\n***************************************************************************/\nvoid RC::Union(RC *prc)\n{\n    AssertThisMem();\n    AssertVarMem(prc);\n\n    // if a rect is empty, it shouldn't contribute to the union\n    if (!prc->FEmpty())\n    {\n        if (FEmpty())\n            *this = *prc;\n        else\n        {\n            xpLeft = LwMin(xpLeft, prc->xpLeft);\n            xpRight = LwMax(xpRight, prc->xpRight);\n            ypTop = LwMin(ypTop, prc->ypTop);\n            ypBottom = LwMax(ypBottom, prc->ypBottom);\n        }\n    }\n}\n\n/***************************************************************************\n    Intersect the rects and return whether the result is non-empty.\n***************************************************************************/\nbool RC::FIntersect(RC *prc1, RC *prc2)\n{\n    AssertThisMem();\n    AssertVarMem(prc1);\n    AssertVarMem(prc2);\n\n    xpLeft = LwMax(prc1->xpLeft, prc2->xpLeft);\n    xpRight = LwMin(prc1->xpRight, prc2->xpRight);\n    ypTop = LwMax(prc1->ypTop, prc2->ypTop);\n    ypBottom = LwMin(prc1->ypBottom, prc2->ypBottom);\n\n    if (FEmpty())\n    {\n        Zero();\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Intersect this rect with the given rect and return whether the result\n    is non-empty.\n***************************************************************************/\nbool RC::FIntersect(RC *prc)\n{\n    AssertThisMem();\n    AssertVarMem(prc);\n\n    xpLeft = LwMax(xpLeft, prc->xpLeft);\n    xpRight = LwMin(xpRight, prc->xpRight);\n    ypTop = LwMax(ypTop, prc->ypTop);\n    ypBottom = LwMin(ypBottom, prc->ypBottom);\n\n    if (FEmpty())\n    {\n        Zero();\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Inset a rectangle (into another)\n***************************************************************************/\nvoid RC::InsetCopy(RC *prc, long dxp, long dyp)\n{\n    AssertThisMem();\n    AssertVarMem(prc);\n\n    xpLeft = prc->xpLeft + dxp;\n    xpRight = prc->xpRight - dxp;\n    ypTop = prc->ypTop + dyp;\n    ypBottom = prc->ypBottom - dyp;\n}\n\n/***************************************************************************\n    Inset a rectangle (in place)\n***************************************************************************/\nvoid RC::Inset(long dxp, long dyp)\n{\n    AssertThisMem();\n\n    xpLeft += dxp;\n    xpRight -= dxp;\n    ypTop += dyp;\n    ypBottom -= dyp;\n}\n\n/***************************************************************************\n    Map this rectangle through the two rectangles (from prcSrc\n    coordinates to prcDst coordinates).  This cannot be either prcSrc\n    or prcDst.\n***************************************************************************/\nvoid RC::Map(RC *prcSrc, RC *prcDst)\n{\n    AssertThisMem();\n    AssertVarMem(prcSrc);\n    AssertVarMem(prcDst);\n    long dzpSrc, dzpDst;\n\n    if ((dzpDst = prcDst->Dxp()) == (dzpSrc = prcSrc->Dxp()))\n    {\n        AssertVar(dzpSrc > 0, \"empty map rectangle\", prcSrc);\n        xpLeft += prcDst->xpLeft - prcSrc->xpLeft;\n        xpRight += prcDst->xpLeft - prcSrc->xpLeft;\n    }\n    else\n    {\n        AssertVar(dzpSrc > 0, \"empty map rectangle\", prcSrc);\n        xpLeft = prcDst->xpLeft + LwMulDiv(xpLeft - prcSrc->xpLeft, dzpDst, dzpSrc);\n        xpRight = prcDst->xpLeft + LwMulDiv(xpRight - prcSrc->xpLeft, dzpDst, dzpSrc);\n    }\n    if ((dzpDst = prcDst->Dyp()) == (dzpSrc = prcSrc->Dyp()))\n    {\n        AssertVar(dzpSrc > 0, \"empty map rectangle\", prcSrc);\n        ypTop += prcDst->ypTop - prcSrc->ypTop;\n        ypBottom += prcDst->ypTop - prcSrc->ypTop;\n    }\n    else\n    {\n        AssertVar(dzpSrc > 0, \"empty map rectangle\", prcSrc);\n        ypTop = prcDst->ypTop + LwMulDiv(ypTop - prcSrc->ypTop, dzpDst, dzpSrc);\n        ypBottom = prcDst->ypTop + LwMulDiv(ypBottom - prcSrc->ypTop, dzpDst, dzpSrc);\n    }\n}\n\n/***************************************************************************\n    Transform the xp and yp values according to grfpt.  Negating comes\n    before transposition.\n***************************************************************************/\nvoid RC::Transform(ulong grfpt)\n{\n    AssertThisMem();\n    long zp;\n\n    if (grfpt & fptNegateXp)\n    {\n        zp = xpLeft;\n        xpLeft = -xpRight;\n        xpRight = -zp;\n    }\n    if (grfpt & fptNegateYp)\n    {\n        zp = ypTop;\n        ypTop = -ypBottom;\n        ypBottom = -zp;\n    }\n    if (grfpt & fptTranspose)\n    {\n        zp = xpLeft;\n        xpLeft = ypTop;\n        ypTop = zp;\n        zp = xpRight;\n        xpRight = ypBottom;\n        ypBottom = zp;\n    }\n}\n\n/***************************************************************************\n    Move a rectangle (into another)\n***************************************************************************/\nvoid RC::OffsetCopy(RC *prc, long dxp, long dyp)\n{\n    AssertThisMem();\n    AssertVarMem(prc);\n\n    xpLeft = prc->xpLeft + dxp;\n    xpRight = prc->xpRight + dxp;\n    ypTop = prc->ypTop + dyp;\n    ypBottom = prc->ypBottom + dyp;\n}\n\n/***************************************************************************\n    Move a rectangle (in place)\n***************************************************************************/\nvoid RC::Offset(long dxp, long dyp)\n{\n    AssertThisMem();\n\n    xpLeft += dxp;\n    xpRight += dxp;\n    ypTop += dyp;\n    ypBottom += dyp;\n}\n\n/***************************************************************************\n    Move the rectangle so the top left is (0, 0).\n***************************************************************************/\nvoid RC::OffsetToOrigin(void)\n{\n    AssertThisMem();\n\n    xpRight -= xpLeft;\n    ypBottom -= ypTop;\n    xpLeft = ypTop = 0;\n}\n\n/***************************************************************************\n    Move this rectangle so it is centered over *prcBase.\n***************************************************************************/\nvoid RC::CenterOnRc(RC *prcBase)\n{\n    AssertThisMem();\n    AssertVarMem(prcBase);\n    long dxp = Dxp();\n    long dyp = Dyp();\n\n    xpLeft = (prcBase->xpLeft + prcBase->xpRight - dxp) / 2;\n    xpRight = xpLeft + dxp;\n    ypTop = (prcBase->ypTop + prcBase->ypBottom - dyp) / 2;\n    ypBottom = ypTop + dyp;\n}\n\n/***************************************************************************\n    Centers this rectangle on (xp, yp).\n***************************************************************************/\nvoid RC::CenterOnPt(long xp, long yp)\n{\n    AssertThisMem();\n    long dxp = Dxp();\n    long dyp = Dyp();\n\n    xpLeft = xp - dxp / 2;\n    xpRight = xpLeft + dxp;\n    ypTop = yp - dyp / 2;\n    ypBottom = ypTop + dyp;\n}\n\n/***************************************************************************\n    Center this rectangle over *prcBase.  If it doesn't fit inside *prcBase,\n    scale it down so it does.\n***************************************************************************/\nvoid RC::SqueezeIntoRc(RC *prcBase)\n{\n    AssertThisMem();\n    AssertVarMem(prcBase);\n\n    if (Dxp() <= prcBase->Dxp() && Dyp() <= prcBase->Dyp())\n        CenterOnRc(prcBase);\n    else\n        StretchToRc(prcBase);\n}\n\n/***************************************************************************\n    Scale this rectangle proportionally (and translate it) so it is centered\n    on *prcBase and as large as possible but still inside *prcBase.\n***************************************************************************/\nvoid RC::StretchToRc(RC *prcBase)\n{\n    AssertThisMem();\n    AssertVarMem(prcBase);\n    long dxp = Dxp();\n    long dyp = Dyp();\n    long dxpBase = prcBase->Dxp();\n    long dypBase = prcBase->Dyp();\n\n    if (dxp <= 0 || dyp <= 0)\n    {\n        Bug(\"empty rc to stretch\");\n        Zero();\n        return;\n    }\n\n    if (FcmpCompareFracs(dxp, dyp, dxpBase, dypBase) & fcmpLt)\n    {\n        // height dominated\n        dxp = LwMulDiv(dxp, dypBase, dyp);\n        dyp = dypBase;\n    }\n    else\n    {\n        // width dominated\n        dyp = LwMulDiv(dyp, dxpBase, dxp);\n        dxp = dxpBase;\n    }\n    xpRight = xpLeft + dxp;\n    ypBottom = ypTop + dyp;\n    CenterOnRc(prcBase);\n}\n\n/***************************************************************************\n    Determine if the given point is in the rectangle\n***************************************************************************/\nbool RC::FPtIn(long xp, long yp)\n{\n    AssertThisMem();\n\n    return xp >= xpLeft && xp < xpRight && yp >= ypTop && yp < ypBottom;\n}\n\n/***************************************************************************\n    Pin the point to the rectangle.\n***************************************************************************/\nvoid RC::PinPt(PT *ppt)\n{\n    AssertThisMem();\n    AssertVarMem(ppt);\n\n    ppt->xp = LwBound(ppt->xp, xpLeft, xpRight);\n    ppt->yp = LwBound(ppt->yp, ypTop, ypBottom);\n}\n\n/***************************************************************************\n    Pin this rectangle to the given one.\n***************************************************************************/\nvoid RC::PinToRc(RC *prc)\n{\n    AssertThisMem();\n    AssertVarMem(prc);\n    long dxp, dyp;\n\n    dxp = LwMax(LwMin(0, prc->xpRight - xpRight), prc->xpLeft - xpLeft);\n    dyp = LwMax(LwMin(0, prc->ypBottom - ypBottom), prc->ypTop - ypTop);\n    if (dxp != 0 || dyp != 0)\n        Offset(dxp, dyp);\n}\n\n/***************************************************************************\n    Copies a system rectangle to a util rectangle.\n***************************************************************************/\nRC &RC::operator=(RCS &rcs)\n{\n    AssertThisMem();\n\n    xpLeft = (long)rcs.left;\n    xpRight = (long)rcs.right;\n    ypTop = (long)rcs.top;\n    ypBottom = (long)rcs.bottom;\n    return *this;\n}\n\n/***************************************************************************\n    Truncates util rectangle to a system rectangle.\n    REVIEW shonk: should we assert on truncation?\n***************************************************************************/\nRC::operator RCS(void)\n{\n    AssertThisMem();\n    RCS rcs;\n\n    rcs.left = SwTruncLw(xpLeft);\n    rcs.right = SwTruncLw(xpRight);\n    rcs.top = SwTruncLw(ypTop);\n    rcs.bottom = SwTruncLw(ypBottom);\n    return rcs;\n}\n\n/***************************************************************************\n    Return the area of the rectangle.\n***************************************************************************/\nlong RC::LwArea(void)\n{\n    AssertThisMem();\n\n    if (FEmpty())\n        return 0;\n    return LwMul(xpRight - xpLeft, ypBottom - ypTop);\n}\n\n/***************************************************************************\n    Return whether this rectangle fully contains *prc.\n***************************************************************************/\nbool RC::FContains(RC *prc)\n{\n    AssertThisMem();\n    AssertVarMem(prc);\n\n    return prc->FEmpty() ||\n           prc->xpLeft >= xpLeft && prc->xpRight <= xpRight && prc->ypTop >= ypTop && prc->ypBottom <= ypBottom;\n}\n\n/***************************************************************************\n    Imagine *prcSrc divided into a crcWidth by crcHeight grid.  This sets\n    this rc to the (ircWidth, ircHeight) cell of the grid.  prcSrc cannot\n    be equal to this.\n***************************************************************************/\nvoid RC::SetToCell(RC *prcSrc, long crcWidth, long crcHeight, long ircWidth, long ircHeight)\n{\n    AssertThisMem();\n    AssertVarMem(prcSrc);\n    AssertIn(crcWidth, 1, kcbMax);\n    AssertIn(crcHeight, 1, kcbMax);\n    AssertIn(ircWidth, 0, crcWidth);\n    AssertIn(ircHeight, 0, crcHeight);\n    Assert(this != prcSrc, \"this can't be prcSrc\");\n\n    xpLeft = prcSrc->xpLeft + LwMulDiv(prcSrc->Dxp(), ircWidth, crcWidth);\n    xpRight = prcSrc->xpLeft + LwMulDiv(prcSrc->Dxp(), ircWidth + 1, crcWidth);\n    ypTop = prcSrc->ypTop + LwMulDiv(prcSrc->Dyp(), ircHeight, crcHeight);\n    ypBottom = prcSrc->ypTop + LwMulDiv(prcSrc->Dyp(), ircHeight + 1, crcHeight);\n}\n\n/***************************************************************************\n    Determines which cell the given (xp, yp) is in.  This is essentially\n    the inverse of SetToCell.\n***************************************************************************/\nbool RC::FMapToCell(long xp, long yp, long crcWidth, long crcHeight, long *pircWidth, long *pircHeight)\n{\n    AssertThisMem();\n    AssertIn(crcWidth, 1, kcbMax);\n    AssertIn(crcHeight, 1, kcbMax);\n    AssertVarMem(pircWidth);\n    AssertVarMem(pircHeight);\n\n    if (!FPtIn(xp, yp))\n        return fFalse;\n    *pircWidth = LwMulDiv(xp - xpLeft, crcWidth, Dxp());\n    *pircHeight = LwMulDiv(yp - ypTop, crcHeight, Dyp());\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Asserts the validity of a fraction.\n***************************************************************************/\nvoid RAT::AssertValid(ulong grf)\n{\n    AssertIn(_lwDen, 1, klwMax);\n    long lwGcd = LwGcd(_lwNum, _lwDen);\n    Assert(lwGcd == 1, \"fraction not in lowest terms\");\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for the master clock.\n***************************************************************************/\nUSAC::USAC(void)\n{\n    AssertThisMem();\n    _tsBaseSys = MacWin(TickCount(), timeGetTime());\n    _tsBaseApp = 0;\n    _luScale = kluTimeScaleNormal;\n}\n\n/***************************************************************************\n    Return the current application time.\n***************************************************************************/\nulong USAC::TsCur(void)\n{\n    AssertThisMem();\n    ulong dtsSys = TsCurrentSystem() - _tsBaseSys;\n\n    if (_luScale != kluTimeScaleNormal)\n    {\n        ulong luHigh;\n        MulLu(dtsSys, _luScale, &luHigh, &dtsSys);\n        dtsSys = LwHighLow(SuLow(luHigh), SuHigh(dtsSys));\n    }\n\n    return _tsBaseApp + dtsSys;\n}\n\n/***************************************************************************\n    Scale the time.\n***************************************************************************/\nvoid USAC::Scale(ulong luScale)\n{\n    AssertThisMem();\n    ulong tsSys, dts;\n\n    if (luScale == _luScale)\n        return;\n\n    // set the _tsBaseSys and _tsBaseApp to now and set _luScale to luScale.\n    tsSys = TsCurrentSystem();\n    dts = tsSys - _tsBaseSys;\n    if (_luScale != kluTimeScaleNormal)\n    {\n        ulong luHigh;\n        MulLu(dts, _luScale, &luHigh, &dts);\n        dts = LwHighLow(SuLow(luHigh), SuHigh(dts));\n    }\n    _tsBaseApp += dts;\n    _tsBaseSys = tsSys;\n    _luScale = luScale;\n}\n\n/***************************************************************************\n    Set the DVER structure.\n***************************************************************************/\nvoid DVER::Set(short swCur, short swBack)\n{\n    _swBack = swBack;\n    _swCur = swCur;\n}\n\n/***************************************************************************\n    Determines if the DVER structure is compatible with (swCur and swMin).\n    Asserts that 0 <= swMin <= swCur.\n***************************************************************************/\nbool DVER::FReadable(short swCur, short swMin)\n{\n    AssertIn(_swBack, 0, _swCur + 1);\n    AssertIn(_swCur, 0, kswMax);\n    AssertIn(swMin, 0, swCur + 1);\n    AssertIn(swCur, 0, kswMax);\n    return _swCur >= swMin && _swBack <= swCur;\n}\n"
  },
  {
    "path": "kauai/src/utilint.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Scalar, rectangle and point declarations\n\n***************************************************************************/\n#ifndef UTILINT_H\n#define UTILINT_H\n\n/****************************************\n    Scalar constants\n****************************************/\nconst bool fTrue = 1;\nconst bool fFalse = 0;\nenum tribool\n{\n    tNo,\n    tYes,\n    tMaybe,\n    tLim\n};\n#define AssertT(t) AssertIn(t, 0, tLim)\n\n// standard comparison flags\nenum\n{\n    fcmpEq = 0x0001,\n    fcmpGt = 0x0002,\n    fcmpLt = 0x0004,\n};\nconst ulong kgrfcmpGe = (fcmpEq | fcmpGt);\nconst ulong kgrfcmpLe = (fcmpEq | fcmpLt);\nconst ulong kgrfcmpNe = (fcmpGt | fcmpLt);\n\n#define FPure(f) ((f) != fFalse)\n#define ivNil (-1L)\n#define bvNil (-1L)\n#define cvNil (-1L)\n#define pvNil 0\n\n/****************************************\n    Memory access asserts\n****************************************/\n#ifdef DEBUG\nvoid AssertPvCb(void *pv, long cb);\ninline void AssertNilOrPvCb(void *pv, long cb)\n{\n    if (pv != pvNil)\n        AssertPvCb(pv, cb);\n}\n#else //! DEBUG\n#define AssertPvCb(pv, cb)\n#define AssertNilOrPvCb(pv, cb)\n#endif //! DEBUG\n\n#define AssertThisMem() AssertPvCb(this, size(*this))\n#define AssertVarMem(pvar) AssertPvCb(pvar, size(*(pvar)))\n#define AssertNilOrVarMem(pvar) AssertNilOrPvCb(pvar, size(*(pvar)))\n\n/****************************************\n    Scalar APIs\n****************************************/\ninline bool FIn(long lw, long lwMin, long lwLim)\n{\n    return lw >= lwMin && lw < lwLim;\n}\ninline long LwBound(long lw, long lwMin, long lwMax)\n{\n    return lw < lwMin ? lwMin : lw >= lwMax ? lwMax - 1 : lw;\n}\nvoid SortLw(long *plw1, long *plw2);\n\ninline short SwHigh(long lw)\n{\n    return (short)(lw >> 16);\n}\ninline short SwLow(long lw)\n{\n    return (short)lw;\n}\ninline long LwHighLow(short swHigh, short swLow)\n{\n    return ((long)swHigh << 16) | (long)(ushort)swLow;\n}\ninline ulong LuHighLow(ushort suHigh, ushort suLow)\n{\n    return ((ulong)suHigh << 16) | (ulong)suLow;\n}\ninline byte B0Lw(long lw)\n{\n    return (byte)lw;\n}\ninline byte B1Lw(long lw)\n{\n    return (byte)(lw >> 8);\n}\ninline byte B2Lw(long lw)\n{\n    return (byte)(lw >> 16);\n}\ninline byte B3Lw(long lw)\n{\n    return (byte)(lw >> 24);\n}\ninline long LwFromBytes(byte b3, byte b2, byte b1, byte b0)\n{\n    return ((long)b3 << 24) | ((long)b2 << 16) | ((long)b1 << 8) | (long)b0;\n}\n\ninline ushort SuHigh(long lw)\n{\n    return (ushort)((ulong)lw >> 16);\n}\ninline ushort SuLow(long lw)\n{\n    return (ushort)lw;\n}\n\ninline byte BHigh(short sw)\n{\n    return (byte)((ushort)sw >> 8);\n}\ninline byte BLow(short sw)\n{\n    return (byte)sw;\n}\ninline short SwHighLow(byte bHigh, byte bLow)\n{\n    return ((short)bHigh << 8) | (short)bLow;\n}\ninline ushort SuHighLow(byte bHigh, byte bLow)\n{\n    return ((ushort)bHigh << 8) | (ushort)bLow;\n}\n\ninline short SwTruncLw(long lw)\n{\n    return lw <= kswMax ? (lw >= kswMin ? (short)lw : kswMin) : kswMax;\n}\ninline short SwMin(short sw1, short sw2)\n{\n    return sw1 < sw2 ? sw1 : sw2;\n}\ninline short SwMax(short sw1, short sw2)\n{\n    return sw1 >= sw2 ? sw1 : sw2;\n}\ninline ushort SuMin(ushort su1, ushort su2)\n{\n    return su1 < su2 ? su1 : su2;\n}\ninline ushort SuMax(ushort su1, ushort su2)\n{\n    return su1 >= su2 ? su1 : su2;\n}\ninline long LwMin(long lw1, long lw2)\n{\n    return lw1 < lw2 ? lw1 : lw2;\n}\ninline long LwMax(long lw1, long lw2)\n{\n    return lw1 >= lw2 ? lw1 : lw2;\n}\ninline ulong LuMin(ulong lu1, ulong lu2)\n{\n    return lu1 < lu2 ? lu1 : lu2;\n}\ninline ulong LuMax(ulong lu1, ulong lu2)\n{\n    return lu1 >= lu2 ? lu1 : lu2;\n}\n\ninline short SwAbs(short sw)\n{\n    return sw < 0 ? -sw : sw;\n}\ninline long LwAbs(long lw)\n{\n    return lw < 0 ? -lw : lw;\n}\n\ninline long LwMulSw(short sw1, short sw2)\n{\n    return (long)sw1 * sw2;\n}\n\n#ifdef MC_68020\n\n/***************************************************************************\n    Motorola 68020 routines.\n***************************************************************************/\nextern \"C\"\n{\n    long __cdecl LwMulDiv(long lw, long lwMul, long lwDiv);\n    void __cdecl MulLw(long lw1, long lw2, long *plwHigh, ulong *pluLow);\n    ulong __cdecl LuMulDiv(ulong lu, ulong luMul, ulong luDiv);\n    void __cdecl MulLu(ulong lu1, ulong lu2, ulong *pluHigh, ulong *pluLow);\n}\nlong LwMulDivMod(long lw, long lwMul, long lwDiv, long *plwRem);\n\n#elif defined(IN_80386)\n\n/***************************************************************************\n    Intel 80386 routines.\n***************************************************************************/\ninline long LwMulDiv(long lw, long lwMul, long lwDiv)\n{\n    AssertH(lwDiv != 0);\n    __asm\n    {\n\t\tmov\t\teax,lw\n\t\timul\tlwMul\n\t\tidiv\tlwDiv\n\t\tmov\t\tlw,eax\n    }\n    return lw;\n}\n\ninline long LwMulDivMod(long lw, long lwMul, long lwDiv, long *plwRem)\n{\n    AssertH(lwDiv != 0);\n    AssertVarMem(plwRem);\n    __asm\n    {\n\t\tmov\t\teax,lw\n\t\timul\tlwMul\n\t\tidiv\tlwDiv\n\t\tmov\t\tecx,plwRem\n\t\tmov\t\tDWORD PTR[ecx],edx\n\t\tmov\t\tlw,eax\n    }\n    return lw;\n}\n\nvoid MulLw(long lw1, long lw2, long *plwHigh, ulong *pluLow);\nulong LuMulDiv(ulong lu, ulong luMul, ulong luDiv);\nvoid MulLu(ulong lu1, ulong lu2, ulong *pluHigh, ulong *pluLow);\n\n#else //! MC_68020 && !IN_80386\n\n/***************************************************************************\n    Other processors.  These generally use floating point.\n***************************************************************************/\nlong LwMulDiv(long lw, long lwMul, long lwDiv);\nlong LwMulDivMod(long lw, long lwMul, long lwDiv, long *plwRem);\nvoid MulLw(long lw1, long lw2, long *plwHigh, ulong *pluLow);\nulong LuMulDiv(ulong lu, ulong luMul, ulong luDiv);\nvoid MulLu(ulong lu1, ulong lu2, ulong *pluHigh, ulong *pluLow);\n\n#endif //! MC_68020 && !IN_80386\n\nlong LwMulDivAway(long lw, long lwMul, long lwDiv);\nulong LuMulDivAway(ulong lu, ulong luMul, ulong luDiv);\n\nulong FcmpCompareFracs(long lwNum1, long lwDen1, long lwNum2, long lwDen2);\n\nlong LwDivAway(long lwNum, long lwDen);\nlong LwDivClosest(long lwNum, long lwDen);\nlong LwRoundAway(long lwSrc, long lwBase);\nlong LwRoundToward(long lwSrc, long lwBase);\nlong LwRoundClosest(long lwSrc, long lwBase);\n\ninline long CbRoundToLong(long cb)\n{\n    return (cb + size(long) - 1) & ~(long)(size(long) - 1);\n}\ninline long CbRoundToShort(long cb)\n{\n    return (cb + size(short) - 1) & ~(long)(size(short) - 1);\n}\ninline long CbFromCbit(long cbit)\n{\n    return (cbit + 7) / 8;\n}\ninline byte Fbit(long ibit)\n{\n    return 1 << (ibit & 0x0007);\n}\ninline long IbFromIbit(long ibit)\n{\n    return ibit >> 3;\n}\n\nlong LwGcd(long lw1, long lw2);\nulong LuGcd(ulong lu1, ulong lu2);\n\nbool FAdjustIv(long *piv, long iv, long cvIns, long cvDel);\n\n#ifdef DEBUG\nvoid AssertIn(long lw, long lwMin, long lwLim);\nlong LwMul(long lw1, long lw2);\n#else //! DEBUG\n#define AssertIn(lw, lwMin, lwLim)\ninline long LwMul(long lw1, long lw2)\n{\n    return lw1 * lw2;\n}\n#endif //! DEBUG\n\n/****************************************\n    Byte Swapping\n****************************************/\n\n// byte order mask\ntypedef ulong BOM;\n\nvoid SwapBytesBom(void *pv, BOM bom);\nvoid SwapBytesRgsw(void *psw, long csw);\nvoid SwapBytesRglw(void *plw, long clw);\n\nconst BOM bomNil = 0;\nconst BOM kbomSwapShort = 0x40000000;\nconst BOM kbomSwapLong = 0xC0000000;\nconst BOM kbomLeaveShort = 0x00000000;\nconst BOM kbomLeaveLong = 0x80000000;\n\n/* You can chain up to 16 of these (2 bits each) */\n#define BomField(bomNew, bomLast) ((bomNew) | ((bomLast) >> 2))\n\n#ifdef DEBUG\nvoid AssertBomRglw(BOM bom, long cb);\nvoid AssertBomRgsw(BOM bom, long cb);\n#else //! DEBUG\n#define AssertBomRglw(bom, cb)\n#define AssertBomRgsw(bom, cb)\n#endif //! DEBUG\n\n/****************************************\n    OS level rectangle and point\n****************************************/\n\n#ifdef MAC\ntypedef Rect RCS;\ntypedef Point PTS;\n#elif defined(WIN)\ntypedef RECT RCS;\ntypedef POINT PTS;\n#endif // WIN\n\n/****************************************\n    Rectangle and point stuff\n****************************************/\n// options for PT::Transform and RC::Transform\nenum\n{\n    fptNil,\n    fptNegateXp = 1,  // negate xp values (and swap them in an RC)\n    fptNegateYp = 2,  // negate yp values (and swap them in an RC)\n    fptTranspose = 4, // swap xp and yp values (done after negating)\n};\n\nclass RC;\ntypedef class RC *PRC;\n\nclass PT\n{\n  public:\n    long xp;\n    long yp;\n\n  public:\n    // constructors\n    PT(void)\n    {\n    }\n    PT(long xpT, long ypT)\n    {\n        xp = xpT, yp = ypT;\n    }\n\n    // for assigning to/from a PTS\n    operator PTS(void);\n    PT &operator=(PTS &pts);\n    PT(PTS &pts)\n    {\n        *this = pts;\n    }\n\n    // interaction with other points\n    bool operator==(PT &pt)\n    {\n        return xp == pt.xp && yp == pt.yp;\n    }\n    bool operator!=(PT &pt)\n    {\n        return xp != pt.xp || yp != pt.yp;\n    }\n    PT operator+(PT &pt)\n    {\n        return PT(xp + pt.xp, yp + pt.yp);\n    }\n    PT operator-(PT &pt)\n    {\n        return PT(xp - pt.xp, yp - pt.yp);\n    }\n    PT &operator+=(PT &pt)\n    {\n        xp += pt.xp;\n        yp += pt.yp;\n        return *this;\n    }\n    PT &operator-=(PT &pt)\n    {\n        xp -= pt.xp;\n        yp -= pt.yp;\n        return *this;\n    }\n    void Offset(long dxp, long dyp)\n    {\n        xp += dxp;\n        yp += dyp;\n    }\n\n    // map the point from prcSrc to prcDst coordinates\n    void Map(RC *prcSrc, RC *prcDst);\n    PT PtMap(RC *prcSrc, RC *prcDst);\n\n    void Transform(ulong grfpt);\n};\n\nclass RC\n{\n  public:\n    long xpLeft;\n    long ypTop;\n    long xpRight;\n    long ypBottom;\n\n  public:\n    // constructors\n    RC(void)\n    {\n    }\n    RC(long xpLeftT, long ypTopT, long xpRightT, long ypBottomT)\n    {\n        AssertThisMem();\n        xpLeft = xpLeftT;\n        ypTop = ypTopT;\n        xpRight = xpRightT;\n        ypBottom = ypBottomT;\n    }\n\n    // for assigning to/from an RCS\n    operator RCS(void);\n    RC &operator=(RCS &rcs);\n    RC(RCS &rcs)\n    {\n        *this = rcs;\n    }\n\n    void Zero(void)\n    {\n        AssertThisMem();\n        xpLeft = ypTop = xpRight = ypBottom = 0;\n    }\n    void Set(long xp1, long yp1, long xp2, long yp2)\n    {\n        AssertThisMem();\n        xpLeft = xp1;\n        ypTop = yp1;\n        xpRight = xp2;\n        ypBottom = yp2;\n    }\n    // use klwMin / 2 and klwMax / 2 so Dxp and Dyp are correct\n    void Max(void)\n    {\n        AssertThisMem();\n        xpLeft = ypTop = klwMin / 2;\n        xpRight = ypBottom = klwMax / 2;\n    }\n    bool FMax(void)\n    {\n        AssertThisMem();\n        return xpLeft == klwMin / 2 && ypTop == klwMin / 2 && xpRight == klwMax / 2 && ypBottom == klwMax / 2;\n    }\n\n    // interaction with other rc's and pt's\n    bool operator==(RC &rc);\n    bool operator!=(RC &rc);\n    RC &operator+=(PT &pt)\n    {\n        xpLeft += pt.xp;\n        ypTop += pt.yp;\n        xpRight += pt.xp;\n        ypBottom += pt.yp;\n        return *this;\n    }\n    RC &operator-=(PT &pt)\n    {\n        xpLeft -= pt.xp;\n        ypTop -= pt.yp;\n        xpRight -= pt.xp;\n        ypBottom -= pt.yp;\n        return *this;\n    }\n    RC operator+(PT &pt)\n    {\n        return RC(xpLeft + pt.xp, ypTop + pt.yp, xpRight + pt.xp, ypBottom + pt.yp);\n    }\n    RC operator-(PT &pt)\n    {\n        return RC(xpLeft - pt.xp, ypTop - pt.yp, xpRight - pt.xp, ypBottom - pt.yp);\n    }\n    PT PtTopLeft(void)\n    {\n        return PT(xpLeft, ypTop);\n    }\n    PT PtBottomRight(void)\n    {\n        return PT(xpRight, ypBottom);\n    }\n    PT PtTopRight(void)\n    {\n        return PT(xpRight, ypTop);\n    }\n    PT PtBottomLeft(void)\n    {\n        return PT(xpLeft, ypBottom);\n    }\n\n    // map the rectangle from prcSrc to prcDst coordinates\n    void Map(RC *prcSrc, RC *prcDst);\n\n    void Transform(ulong grfpt);\n\n    long Dxp(void)\n    {\n        AssertThisMem();\n        return xpRight - xpLeft;\n    }\n    long Dyp(void)\n    {\n        AssertThisMem();\n        return ypBottom - ypTop;\n    }\n    long XpCenter(void)\n    {\n        AssertThisMem();\n        return (xpLeft + xpRight) / 2;\n    }\n    long YpCenter(void)\n    {\n        AssertThisMem();\n        return (ypTop + ypBottom) / 2;\n    }\n    bool FEmpty(void)\n    {\n        AssertThisMem();\n        return ypBottom <= ypTop || xpRight <= xpLeft;\n    }\n\n    void CenterOnRc(RC *prcBase);\n    void CenterOnPt(long xp, long yp);\n    bool FIntersect(RC *prc1, RC *prc2);\n    bool FIntersect(RC *prc);\n    bool FPtIn(long xp, long yp);\n    void InsetCopy(RC *prc, long dxp, long dyp);\n    void Inset(long dxp, long dyp);\n    void OffsetCopy(RC *prc, long dxp, long dyp);\n    void Offset(long dxp, long dyp);\n    void OffsetToOrigin(void);\n    void PinPt(PT *ppt);\n    void PinToRc(RC *prc);\n    void SqueezeIntoRc(RC *prcBase);\n    void StretchToRc(RC *prcBase);\n    void Union(RC *prc1, RC *prc2);\n    void Union(RC *prc);\n    long LwArea(void);\n    bool FContains(RC *prc);\n    void SetToCell(RC *prcSrc, long crcWidth, long crcHeight, long ircWidth, long ircHeight);\n    bool FMapToCell(long xp, long yp, long crcWidth, long crcHeight, long *pircWidth, long *pircHeight);\n};\n\n/****************************************\n    fractions (ratio/rational)\n****************************************/\nclass RAT\n{\n    ASSERT\n\n  private:\n    long _lwNum;\n    long _lwDen;\n\n    // the third argument of this constructor is bogus.  This constructor is\n    // provided so the GCD calculation can be skipped when we already know\n    // the numerator and denominator are relatively prime.\n    RAT(long lwNum, long lwDen, long lwJunk)\n    {\n        // lwNum and lwDen are already relatively prime\n        if (lwDen > 0)\n        {\n            _lwNum = lwNum;\n            _lwDen = lwDen;\n        }\n        else\n        {\n            _lwNum = -lwNum;\n            _lwDen = -lwDen;\n        }\n        AssertThis(0);\n    }\n\n  public:\n    // constructors\n    RAT(void)\n    {\n        _lwDen = 0;\n    }\n    RAT(long lw)\n    {\n        _lwNum = lw;\n        _lwDen = 1;\n    }\n    RAT(long lwNum, long lwDen)\n    {\n        Set(lwNum, lwDen);\n    }\n    void Set(long lwNum, long lwDen)\n    {\n        long lwGcd = LwGcd(lwNum, lwDen);\n        if (lwDen < 0)\n            lwGcd = -lwGcd;\n        _lwNum = lwNum / lwGcd;\n        _lwDen = lwDen / lwGcd;\n        AssertThis(0);\n    }\n\n    // unary minus\n    RAT operator-(void) const\n    {\n        return RAT(-_lwNum, _lwDen, 0);\n    }\n\n    // access functions\n    long LwNumerator(void)\n    {\n        return _lwNum;\n    }\n    long LwDenominator(void)\n    {\n        return _lwDen;\n    }\n    long LwAway(void)\n    {\n        return LwDivAway(_lwNum, _lwDen);\n    }\n    long LwToward(void)\n    {\n        return _lwNum / _lwDen;\n    }\n    long LwClosest(void)\n    {\n        return LwDivClosest(_lwNum, _lwDen);\n    }\n\n    operator long(void)\n    {\n        return _lwNum / _lwDen;\n    }\n\n    // applying to a long (as a multiplicative operator)\n    long LwScale(long lw)\n    {\n        return (_lwNum != _lwDen) ? LwMulDiv(lw, _lwNum, _lwDen) : lw;\n    }\n    long LwUnscale(long lw)\n    {\n        return (_lwNum != _lwDen) ? LwMulDiv(lw, _lwDen, _lwNum) : lw;\n    }\n\n    // operator functions\n    friend RAT operator+(const RAT &rat1, const RAT &rat2);\n    friend RAT operator+(const RAT &rat, long lw)\n    {\n        return RAT(rat._lwNum + LwMul(rat._lwDen, lw), rat._lwDen);\n    }\n    friend RAT operator+(long lw, const RAT &rat)\n    {\n        return RAT(rat._lwNum + LwMul(rat._lwDen, lw), rat._lwDen);\n    }\n\n    friend RAT operator-(const RAT &rat1, const RAT &rat2)\n    {\n        return rat1 + (-rat2);\n    }\n    friend RAT operator-(const RAT &rat, long lw)\n    {\n        return RAT(rat._lwNum + LwMul(rat._lwDen, -lw), rat._lwDen);\n    }\n    friend RAT operator-(long lw, const RAT &rat)\n    {\n        return RAT(rat._lwNum + LwMul(rat._lwDen, -lw), rat._lwDen);\n    }\n\n    friend RAT operator*(const RAT &rat1, const RAT &rat2)\n    {\n        long lwGcd1 = LwGcd(rat1._lwNum, rat2._lwDen);\n        long lwGcd2 = LwGcd(rat1._lwDen, rat2._lwNum);\n        return RAT(LwMul(rat1._lwNum / lwGcd1, rat2._lwNum / lwGcd2), LwMul(rat1._lwDen / lwGcd2, rat2._lwDen / lwGcd1),\n                   0);\n    }\n    friend RAT operator*(const RAT &rat, long lw)\n    {\n        long lwGcd = LwGcd(rat._lwDen, lw);\n        return RAT(LwMul(lw / lwGcd, rat._lwNum), rat._lwDen / lwGcd, 0);\n    }\n    friend RAT operator*(long lw, const RAT &rat)\n    {\n        long lwGcd = LwGcd(rat._lwDen, lw);\n        return RAT(LwMul(lw / lwGcd, rat._lwNum), rat._lwDen / lwGcd, 0);\n    }\n\n    friend RAT operator/(const RAT &rat1, const RAT &rat2)\n    {\n        long lwGcd1 = LwGcd(rat1._lwNum, rat2._lwNum);\n        long lwGcd2 = LwGcd(rat1._lwDen, rat2._lwDen);\n        return RAT(LwMul(rat1._lwNum / lwGcd1, rat2._lwDen / lwGcd2), LwMul(rat1._lwDen / lwGcd2, rat2._lwNum / lwGcd1),\n                   0);\n    }\n    friend RAT operator/(const RAT &rat, long lw)\n    {\n        long lwGcd = LwGcd(rat._lwNum, lw);\n        return RAT(rat._lwNum / lwGcd, LwMul(lw / lwGcd, rat._lwDen), 0);\n    }\n    friend RAT operator/(long lw, const RAT &rat)\n    {\n        long lwGcd = LwGcd(rat._lwNum, lw);\n        return RAT(LwMul(lw / lwGcd, rat._lwDen), rat._lwNum / lwGcd, 0);\n    }\n\n    friend int operator==(const RAT &rat1, const RAT &rat2)\n    {\n        return rat1._lwNum == rat2._lwNum && rat1._lwDen == rat2._lwDen;\n    }\n    friend int operator==(const RAT &rat, long lw)\n    {\n        return rat._lwDen == 1 && rat._lwNum == lw;\n    }\n    friend int operator==(long lw, const RAT &rat)\n    {\n        return rat._lwDen == 1 && rat._lwNum == lw;\n    }\n\n    friend int operator!=(const RAT &rat1, const RAT &rat2)\n    {\n        return rat1._lwNum != rat2._lwNum || rat1._lwDen != rat2._lwDen;\n    }\n    friend int operator!=(const RAT &rat, long lw)\n    {\n        return rat._lwDen != 1 || rat._lwNum != lw;\n    }\n    friend int operator!=(long lw, const RAT &rat)\n    {\n        return rat._lwDen != 1 || rat._lwNum != lw;\n    }\n\n    // operator methods\n    RAT &operator=(long lw)\n    {\n        _lwNum = lw;\n        _lwDen = 1;\n        return *this;\n    }\n\n    RAT &operator+=(const RAT &rat)\n    {\n        *this = *this + rat;\n        return *this;\n    }\n    RAT &operator+=(long lw)\n    {\n        *this = *this + lw;\n        return *this;\n    }\n\n    RAT &operator-=(const RAT &rat)\n    {\n        *this = *this - rat;\n        return *this;\n    }\n    RAT &operator-=(long lw)\n    {\n        *this = *this + (-lw);\n        return *this;\n    }\n\n    RAT &operator*=(const RAT &rat)\n    {\n        *this = *this * rat;\n        return *this;\n    }\n    RAT &operator*=(long lw)\n    {\n        *this = *this * lw;\n        return *this;\n    }\n\n    RAT &operator/=(const RAT &rat)\n    {\n        *this = *this / rat;\n        return *this;\n    }\n    RAT &operator/=(long lw)\n    {\n        *this = *this / lw;\n        return *this;\n    }\n};\n\n/***************************************************************************\n    Data versioning utility\n***************************************************************************/\nstruct DVER\n{\n    short _swCur;\n    short _swBack;\n\n    void Set(short swCur, short swBack);\n    bool FReadable(short swCur, short swMin);\n};\n\n#endif // UTILINT_H\n"
  },
  {
    "path": "kauai/src/utilmc.asm",
    "content": ";\n;\tAuthor: ShonK\n;\tProject: Kauai\n;\tReviewed:\n;\tCopyright (c) Microsoft Corporation\n;\n;\tAsm code for the MC_68020 build.\n;\n\n\n\tcode\n\n;\tlong LwMulDiv(long lw, long lwMul, long lwDiv)\n;\n;\tMultiply lw by lwMul and divide by lwDiv without losing precision.\n;\tAssumes a 68020 or better.\ncProc LwMulDiv,PUBLIC,,0\n;\tparmD\tlw\n;\tparmD\tlwMul\n;\tparmD\tlwDiv\ncBegin nogen\n\tmove.l\t4(a7),d0\t;lw\n\t;following hex is: muls.l\t8(A7),d1:d0\n\tdc.w\t0x4C2F\n\tdc.w\t0x0C01\n\tdc.w\t0x0008\n\t;following hex is: divs.l\t0x0C(A7),d1:d0\n\tdc.w\t0x4C6F\n\tdc.w\t0x0C01\n\tdc.w\t0x000C\n\trts\ncEnd nogen\n\n\n;\tvoid MulLw(long lw1, long lw2, long *plwHigh, ulong *pluLow)\n;\n;\tMultiplies 2 longs to get a 64 bit (signed) value.  Assumes a 68020\n;\tor better.\ncProc MulLw,PUBLIC,,0\n;\tparmD\tlw1\n;\tparmD\tlw2\n;\tparmD\tplwHigh\n;\tparmD\tpluLow\ncBegin nogen\n\tmove.l\t4(a7),d0\t;lw1\n\t;following hex is: muls.l\t8(A7),d1:d0\n\tdc.w\t0x4C2F\n\tdc.w\t0x0C01\n\tdc.w\t0x0008\n\tmove.l\t0x0C(a7),a0\t;plwHigh\n\tmove.l\td1,(a0)\n\tmove.l\t0x10(a7),a0\t;pluLow\n\tmove.l\td0,(a0)\n\trts\ncEnd nogen\n\n\n;\tulong LuMulDiv(ulong lu, ulong luMul, ulong luDiv)\n;\n;\tMultiply lu by luMul and divide by luDiv without losing precision.\n;\tAssumes a 68020 or better.\ncProc LuMulDiv,PUBLIC,,0\n;\tparmD\tlu\n;\tparmD\tluMul\n;\tparmD\tluDiv\ncBegin nogen\n\tmove.l\t4(a7),d0\t;lw\n\t;following hex is: mulu.l\t8(A7),d1:d0\n\tdc.w\t0x4C2F\n\tdc.w\t0x0401\n\tdc.w\t0x0008\n\t;following hex is: divu.l\t0x0C(A7),d1:d0\n\tdc.w\t0x4C6F\n\tdc.w\t0x0401\n\tdc.w\t0x000C\n\trts\ncEnd nogen\n\n\n;\tvoid MulLu(long lu1, long lu2, ulong *pluHigh, ulong *pluLow)\n;\n;\tMultiplies 2 unsigned longs to get a 64 bit (unsigned) value.  Assumes a\n;\t68020 or better.\ncProc MulLu,PUBLIC,,0\n;\tparmD\tlu1\n;\tparmD\tlu2\n;\tparmD\tpluHigh\n;\tparmD\tpluLow\ncBegin nogen\n\tmove.l\t4(a7),d0\t;lu1\n\t;following hex is: mulu.l\t8(A7),d1:d0\n\tdc.w\t0x4C2F\n\tdc.w\t0x0401\n\tdc.w\t0x0008\n\tmove.l\t0x0C(a7),a0\t;pluHigh\n\tmove.l\td1,(a0)\n\tmove.l\t0x10(a7),a0\t;pluLow\n\tmove.l\td0,(a0)\n\trts\ncEnd nogen\n\n\n"
  },
  {
    "path": "kauai/src/utilmem.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Shared (between Mac and Win) memory allocation routines.\n\n    The APIs in this module implement fixed block (non-moveable,\n    non-resizeable) memory management.  On win, we use GlobalAlloc; on Mac\n    we use ::operator new.  The win hq is based on FAllocPv.  The mac\n    hq is a Mac handle.  _FResizePpv is win only (needed for\n    resizing HQs) and considered private to the memory management code\n    (if the implementation of Win HQs changes, it will go away).\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\n#ifdef DEBUG\nconst long kclwStackMbh = 5;\n\n// memory block header\nstruct MBH\n{\n    long cb;                      // size of block, including header and footer\n    PSZS pszsFile;                // source file that allocation request is coming from\n    long lwLine;                  // line in file that allocation request is coming from\n    long lwThread;                // thread id\n    MBH *pmbhPrev;                // previous allocated block (in doubly linked list)\n    MBH *pmbhNext;                // next allocated block\n    long rglwStack[kclwStackMbh]; // the EBP/A6 chain\n    short cactRef;                // for marking memory\n    short swMagic;                // magic number, to detect memory trashing\n};\n\n// memory block footer\nstruct MBF\n{\n    short swMagic; // magic number, to detect memory trashing\n};\n\nMBH *_pmbhFirst; // head of the doubly linked list\n\npriv void _LinkMbh(MBH *pmbh);\npriv void _UnlinkMbh(MBH *pmbh, MBH *pmbhOld);\npriv void _AssertMbh(MBH *pmbh);\n#endif // DEBUG\n\n#ifdef MAC\n#define malloc(cb) ::operator new(cb)\n#define free(pv) delete (pv)\n#endif // MAC\n#ifdef WIN\n#define malloc(cb) (void *)GlobalAlloc(GMEM_FIXED, cb)\n#define free(pv) GlobalFree((HGLOBAL)pv)\n#define _msize(pv) GlobalSize((HGLOBAL)pv)\n#define realloc(pv, cb) (void *)GlobalReAlloc((HGLOBAL)pv, cb, GMEM_MOVEABLE)\n#endif // WIN\n\nPFNLIB vpfnlib = pvNil;\nbool _fInLiberator = fFalse;\n\n#ifdef DEBUG\n/***************************************************************************\n    Do simulated failure testing.\n***************************************************************************/\nbool DMAGL::FFail(void)\n{\n    bool fRet = fFalse;\n\n    vmutxMem.Enter();\n    if (cactFail > 0)\n    {\n        if (cactDo <= 0)\n        {\n            cactFail--;\n            fRet = fTrue;\n        }\n        else\n            cactDo--;\n    }\n    vmutxMem.Leave();\n\n    return fRet;\n}\n\n/***************************************************************************\n    Update values after an allocation\n***************************************************************************/\nvoid DMAGL::Allocate(long cbT)\n{\n    vmutxMem.Enter();\n    if (cvRun < ++cv)\n        cvRun = cv;\n    cvTot++;\n    if (cbRun < (cb += cbT))\n        cbRun = cb;\n    vmutxMem.Leave();\n}\n\n/***************************************************************************\n    Update values after a resize\n***************************************************************************/\nvoid DMAGL::Resize(long dcb)\n{\n    vmutxMem.Enter();\n    if (cbRun < (cb += dcb))\n        cbRun = cb;\n    vmutxMem.Leave();\n}\n\n/***************************************************************************\n    Update values after a block is freed\n***************************************************************************/\nvoid DMAGL::Free(long cbT)\n{\n    --cv;\n    cb -= cbT;\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Allocates a fixed block.\n***************************************************************************/\n#ifdef DEBUG\nbool FAllocPvDebug(void **ppv, long cb, ulong grfmem, long mpr, PSZS pszsFile, long lwLine, DMAGL *pdmagl)\n#else  //! DEBUG\nbool FAllocPv(void **ppv, long cb, ulong grfmem, long mpr)\n#endif //! DEBUG\n{\n    AssertVarMem(ppv);\n    AssertIn(cb, 0, kcbMax);\n    long cbFree;\n\n    if (cb > kcbMax)\n    {\n        BugVar(\"who's allocating a humongous block?\", &cb);\n        goto LFail;\n    }\n\n#ifdef DEBUG\n    // do simulated failure\n    if (pdmagl->FFail())\n        goto LFail;\n\n    vmutxMem.Enter();\n    if (pvNil != _pmbhFirst)\n        _AssertMbh(_pmbhFirst);\n    vmutxMem.Leave();\n\n    Assert(cb + size(MBH) + size(MBF) > cb, 0);\n    cb += size(MBH) + size(MBF);\n#endif // DEBUG\n\n    for (;;)\n    {\n        *ppv = malloc(cb);\n        if (pvNil != *ppv || pvNil == vpfnlib)\n            break;\n\n        vmutxMem.Enter();\n        if (_fInLiberator)\n            cbFree = 0;\n        else\n        {\n            _fInLiberator = fTrue;\n            vmutxMem.Leave();\n            cbFree = (*vpfnlib)(cb, mpr);\n            vmutxMem.Enter();\n            _fInLiberator = fFalse;\n        }\n        vmutxMem.Leave();\n\n        if (cbFree <= 0)\n            break;\n    }\n\n    if (pvNil == *ppv)\n    {\n    LFail:\n        *ppv = pvNil;\n        PushErc(ercOomPv);\n        return fFalse;\n    }\n\n    if (grfmem & fmemClear)\n        ClearPb(*ppv, cb);\n#ifdef DEBUG\n    else\n        FillPb(*ppv, cb, kbGarbage);\n\n    // fill in the header\n    MBH *pmbh = (MBH *)*ppv;\n    *ppv = pmbh + 1;\n    pmbh->cb = cb;\n    pmbh->swMagic = kswMagicMem;\n    pmbh->pszsFile = pszsFile;\n    pmbh->lwLine = lwLine;\n    pmbh->lwThread = LwThreadCur();\n\n#ifdef WIN\n    // follow the EBP chain....\n    long *plw;\n    long ilw;\n\n    __asm { mov plw,ebp }\n    for (ilw = 0; ilw < kclwStackMbh; ilw++)\n    {\n        if (pvNil == plw || IsBadReadPtr(plw, 2 * size(long)) || *plw <= (long)plw)\n        {\n            pmbh->rglwStack[ilw] = 0;\n            plw = pvNil;\n        }\n        else\n        {\n            pmbh->rglwStack[ilw] = plw[1];\n            plw = (long *)*plw;\n        }\n    }\n#endif // WIN\n\n    // write the footer\n    MBF mbf;\n    mbf.swMagic = kswMagicMem;\n    CopyPb(&mbf, PvAddBv(pmbh, cb - size(MBF)), size(MBF));\n\n    // link the block\n    _LinkMbh(pmbh);\n\n    // update statistics\n    pdmagl->Allocate(cb - size(MBF) - size(MBH));\n\n    AssertPvAlloced(*ppv, cb - size(MBF) - size(MBH));\n#endif // DEBUG\n\n    return fTrue;\n}\n\n#ifdef WIN\n/***************************************************************************\n    Resizes the given block.  *ppv may change.  If fmemClear, clears any\n    newly added space.\n***************************************************************************/\n#ifdef DEBUG\nbool _FResizePpvDebug(void **ppv, long cbNew, long cbOld, ulong grfmem, long mpr, DMAGL *pdmagl)\n#else  //! DEBUG\nbool _FResizePpv(void **ppv, long cbNew, long cbOld, ulong grfmem, long mpr)\n#endif //! DEBUG\n{\n    AssertVarMem(ppv);\n    AssertIn(cbNew, 0, kcbMax);\n    AssertIn(cbOld, 0, kcbMax);\n    AssertPvAlloced(*ppv, cbOld);\n    long cbFree;\n    void *pvNew, *pvOld;\n\n#ifdef DEBUG\n    MBH *pmbh = (MBH *)PvSubBv(*ppv, size(MBH));\n    _AssertMbh(pmbh);\n#endif // DEBUG\n\n    if (cbNew > kcbMax)\n    {\n        BugVar(\"who's resizing a humongous block?\", &cbNew);\n        goto LFail;\n    }\n\n    pvOld = *ppv;\n#ifdef DEBUG\n    // do simulated failure - we can only fail if the block is growing\n    if (cbNew > cbOld && pdmagl->FFail())\n        goto LFail;\n\n    // assert we don't overflow (the limit of kcbMax should ensure this)\n    Assert(cbOld + size(MBH) + size(MBF) > cbOld, 0);\n    Assert(cbNew + size(MBH) + size(MBF) > cbNew, 0);\n    cbOld += size(MBH) + size(MBF);\n    cbNew += size(MBH) + size(MBF);\n    AssertVar(pmbh->cb == cbOld, \"bad cbOld value passed to _FResizePpv\", &cbOld);\n\n    // trash the old stuff\n    if (cbOld > cbNew)\n        FillPb(PvAddBv(pmbh, cbNew), cbOld - cbNew, kbGarbage);\n    pvOld = pmbh;\n#endif // DEBUG\n\n    for (;;)\n    {\n        pvNew = realloc(pvOld, cbNew);\n\n        if (pvNil != pvNew || pvNil == vpfnlib)\n            break;\n\n        vmutxMem.Enter();\n        if (_fInLiberator)\n            cbFree = 0;\n        else\n        {\n            _fInLiberator = fTrue;\n            vmutxMem.Leave();\n            cbFree = (*vpfnlib)(cbNew - cbOld, mpr);\n            vmutxMem.Enter();\n            _fInLiberator = fFalse;\n        }\n        vmutxMem.Leave();\n\n        if (cbFree <= 0)\n            break;\n    }\n\n    if (pvNil == pvNew)\n    {\n        Assert(cbOld < cbNew, \"why did shrinking fail?\");\n    LFail:\n        AssertPvAlloced(*ppv, cbOld - size(MBH) - size(MBF));\n        PushErc(ercOomPv);\n\n        return fFalse;\n    }\n    *ppv = pvNew;\n\n    if ((grfmem & fmemClear) && cbOld < cbNew)\n    {\n        // Clear the new stuff\n        ClearPb(PvAddBv(pvNew, cbOld), cbNew - cbOld);\n    }\n\n#ifdef DEBUG\n    if ((grfmem & fmemClear) && cbOld < cbNew)\n        ClearPb(PvAddBv(pvNew, cbOld - size(MBF)), size(MBF));\n    else if (cbOld < cbNew)\n    {\n        // fill the new stuff with garbage\n        FillPb(PvAddBv(pvNew, cbOld - size(MBF)), cbNew - cbOld + size(MBF), kbGarbage);\n    }\n\n    // update the header\n    if (pvNew != pmbh)\n    {\n        _UnlinkMbh((MBH *)pvNew, pmbh);\n        pmbh = (MBH *)pvNew;\n        _LinkMbh(pmbh);\n    }\n    *ppv = pmbh + 1;\n    pmbh->cb = cbNew;\n\n    // write the footer\n    MBF mbf;\n    mbf.swMagic = kswMagicMem;\n    CopyPb(&mbf, PvAddBv(pmbh, cbNew - size(MBF)), size(MBF));\n    AssertPvAlloced(*ppv, cbNew - size(MBF) - size(MBH));\n\n    // update statistics\n    pdmagl->Resize(cbNew - cbOld);\n#endif // DEBUG\n\n    return fTrue;\n}\n#endif // WIN\n\n/***************************************************************************\n    If *ppv is not nil, frees it and sets *ppv to nil.\n***************************************************************************/\n#ifdef DEBUG\nvoid FreePpvDebug(void **ppv, DMAGL *pdmagl)\n#else  //! DEBUG\nvoid FreePpv(void **ppv)\n#endif //! DEBUG\n{\n    AssertVarMem(ppv);\n    if (*ppv == pvNil)\n        return;\n\n#ifdef DEBUG\n    MBH *pmbh = (MBH *)PvSubBv(*ppv, size(MBH));\n    _AssertMbh(pmbh);\n    _UnlinkMbh(pmbh, pmbh);\n\n    // update statistics\n    pdmagl->Free(pmbh->cb - size(MBF) - size(MBH));\n\n    // fill the block with garbage before freeing it\n    FillPb(pmbh, pmbh->cb, kbGarbage);\n    *ppv = pmbh;\n#endif // DEBUG\n\n    free(*ppv);\n    *ppv = pvNil;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Link the Mbh into the debug-only doubly linked list.\n***************************************************************************/\npriv void _LinkMbh(MBH *pmbh)\n{\n    AssertVarMem(pmbh);\n\n    vmutxMem.Enter();\n    pmbh->pmbhPrev = pvNil;\n    pmbh->pmbhNext = _pmbhFirst;\n    if (_pmbhFirst != pvNil)\n    {\n        Assert(_pmbhFirst->pmbhPrev == pvNil, \"_pmbhFirst's prev is not nil\");\n        _pmbhFirst->pmbhPrev = pmbh;\n    }\n    _pmbhFirst = pmbh;\n    vmutxMem.Leave();\n}\n\n/***************************************************************************\n    Unlink the MBH from the debug-only doubly linked list.  pmbhOld is the\n    previous value of the linked block.  pmbhOld may not be a valid pointer\n    now (when mem is resized).\n***************************************************************************/\npriv void _UnlinkMbh(MBH *pmbh, MBH *pmbhOld)\n{\n    AssertVarMem(pmbh);\n    Assert(pmbhOld != pvNil, 0);\n\n    vmutxMem.Enter();\n    // update prev's next pointer\n    if (pvNil == pmbh->pmbhPrev)\n    {\n        Assert(_pmbhFirst == pmbhOld, \"prev is wrongly nil\");\n        _pmbhFirst = pmbh->pmbhNext;\n    }\n    else\n    {\n        Assert(_pmbhFirst != pmbhOld, \"prev should be nil\");\n        Assert(pmbh->pmbhPrev->pmbhNext == pmbhOld, \"prev's next wrong\");\n        pmbh->pmbhPrev->pmbhNext = pmbh->pmbhNext;\n    }\n\n    // update next's prev pointer\n    if (pvNil != pmbh->pmbhNext)\n    {\n        Assert(pmbh->pmbhNext->pmbhPrev == pmbhOld, \"next's prev wrong\");\n        pmbh->pmbhNext->pmbhPrev = pmbh->pmbhPrev;\n    }\n    vmutxMem.Leave();\n}\n\n/***************************************************************************\n    Validate the MBH and the block that it is the head of.\n***************************************************************************/\nvoid _AssertMbh(MBH *pmbh)\n{\n    short sw;\n\n    if (vcactSuspendCheckPointers != 0)\n        return;\n\n    vmutxMem.Enter();\n    AssertVarMem(pmbh);\n    Assert(pmbh->swMagic == kswMagicMem, \"bad magic number\");\n    AssertIn(pmbh->cb - size(MBH) - size(MBF), 0, kcbMax);\n    Win(Assert(pmbh->cb <= (long)_msize(pmbh), \"bigger than malloced block\");) AssertPvCb(pmbh, pmbh->cb);\n    if (pmbh->pmbhPrev != pvNil)\n    {\n        AssertVarMem(pmbh->pmbhPrev);\n        Assert(pmbh->pmbhPrev->pmbhNext == pmbh, \"wrong next in prev\");\n        Assert(pmbh != _pmbhFirst, \"first has prev!\");\n    }\n    if (pmbh->pmbhNext != pvNil)\n    {\n        AssertVarMem(pmbh->pmbhNext);\n        Assert(pmbh->pmbhNext->pmbhPrev == pmbh, \"wrong prev in next\");\n    }\n\n    ((byte *)&sw)[0] = *(byte *)PvAddBv(pmbh, pmbh->cb - 2);\n    ((byte *)&sw)[1] = *(byte *)PvAddBv(pmbh, pmbh->cb - 1);\n    Assert(sw == kswMagicMem, \"bad tail magic number\");\n    vmutxMem.Leave();\n}\n\n/***************************************************************************\n    Assert the validity of an allocated fixed block.  Cb is the size.\n    If cb is unknown, pass cvNil.\n***************************************************************************/\nvoid AssertPvAlloced(void *pv, long cb)\n{\n    if (vcactSuspendCheckPointers != 0)\n        return;\n\n    Assert(pv != pvNil, \"nil pv\");\n    MBH *pmbh = (MBH *)PvSubBv(pv, size(MBH));\n    _AssertMbh(pmbh);\n    if (cb != cvNil)\n        Assert(pmbh->cb == cb + size(MBH) + size(MBF), \"wrong cb\");\n}\n\n/***************************************************************************\n    Asserts on unmarked blocks.\n***************************************************************************/\nvoid AssertUnmarkedMem(void)\n{\n    MBH *pmbh;\n    long lwThread = LwThreadCur();\n\n    // enter the critical section\n    vmutxMem.Enter();\n\n    for (pmbh = _pmbhFirst; pmbh != pvNil; pmbh = pmbh->pmbhNext)\n    {\n        _AssertMbh(pmbh);\n        if (pmbh->cactRef == 0 && pmbh->lwThread == lwThread)\n        {\n            STN stn;\n            SZS szs;\n\n            stn.FFormatSz(PszLit(\"\\nLost block: size=%d, StackTrace=(use map file)\"), pmbh->cb);\n            stn.GetSzs(szs);\n\n            if (FAssertProc(pmbh->pszsFile, pmbh->lwLine, szs, pmbh->rglwStack, kclwStackMbh * size(long)))\n            {\n                Debugger();\n            }\n        }\n    }\n    Mac(_AssertUnmarkedHqs();)\n\n        // leave the critical section\n        vmutxMem.Leave();\n}\n\n/***************************************************************************\n    Clears all marks on memory blocks.\n***************************************************************************/\nvoid UnmarkAllMem(void)\n{\n    MBH *pmbh;\n    long lwThread = LwThreadCur();\n\n    // enter the critical section\n    vmutxMem.Enter();\n\n    for (pmbh = _pmbhFirst; pmbh != pvNil; pmbh = pmbh->pmbhNext)\n    {\n        _AssertMbh(pmbh);\n        if (pmbh->lwThread == lwThread)\n            pmbh->cactRef = 0;\n    }\n    Mac(_UnmarkAllHqs();)\n\n        // leave the critical section\n        vmutxMem.Leave();\n}\n\n/***************************************************************************\n    Increment the ref count on an allocated pv.\n***************************************************************************/\nvoid MarkPv(void *pv)\n{\n    if (pvNil != pv)\n    {\n        AssertPvAlloced(pv, cvNil);\n        MBH *pmbh = (MBH *)PvSubBv(pv, size(MBH));\n        pmbh->cactRef++;\n    }\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/utilmem.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Memory handling\n\n***************************************************************************/\n#ifndef UTILMEM_H\n#define UTILMEM_H\n\n// used for asserts and limiting memory\nconst byte kbGarbage = 0xA3;    // new blocks are filled with this\nconst long kcbMax = 0x08000000; // 128 Megabytes\nconst short kswMagicMem = (short)0xA253;\nconst long klwMagicMem = (long)0xA253A253;\n\n/***************************************************************************\n    When an allocation fails, vpfnlib is called to free some memory (if it's\n    not nil).\n***************************************************************************/\ntypedef long (*PFNLIB)(long cb, long mpr);\nextern PFNLIB vpfnlib;\nextern bool _fInAlloc;\n\n/****************************************\n    OS memory handles and management\n****************************************/\n#ifdef MAC\ntypedef Handle HN;\n// version of SetHandleSize that returns an error code\ninline short ErrSetHandleSize(HN hn, Size cb)\n{\n    SetHandleSize(hn, cb);\n    return MemError();\n}\n\n// address stipper\nclass ADST\n{\n  private:\n    long _lwMaskAddress;\n\n  public:\n    ADST(void);\n\n    void *PvStrip(void *pv)\n    {\n        return (void *)((long)pv & _lwMaskAddress);\n    }\n};\nextern ADST vadst;\n\n#elif defined(WIN)\ntypedef HGLOBAL HN;\n#endif\n\n/****************************************\n    Moveable/resizeable memory management\n****************************************/\ntypedef void *HQ;\n#define hNil 0\n#define hqNil ((HQ)0)\n\n// memory request priority\nenum\n{\n    // lower priority\n    mprDebug,\n    mprForSpeed,\n    mprNormal,\n    mprCritical,\n    // higher priority\n};\n\n// memory allocation options\nenum\n{\n    fmemNil = 0,\n    fmemClear = 1,\n};\n\nvoid FreePhq(HQ *phq);\nlong CbOfHq(HQ hq);\nbool FCopyHq(HQ hqSrc, HQ *phqDst, long mpr);\nbool FResizePhq(HQ *phq, long cb, ulong grfmem, long mpr);\nvoid *PvLockHq(HQ hq);\nvoid UnlockHq(HQ hq);\n\n#ifdef DEBUG\n\n// debug memory allocator globals\n// enter vmutxMem before modifying these...\nstruct DMAGL\n{\n    long cv;    // number of allocations\n    long cvTot; // total number of allocations over all time\n    long cvRun; // running max of cv\n    long cb;    // total size of allocations\n    long cbRun; // running max of cb\n\n    long cactDo;   // number of times to succeed before failing\n    long cactFail; // number of times to fail\n\n    bool FFail(void);\n    void Allocate(long cbT);\n    void Resize(long dcb);\n    void Free(long cbT);\n};\n\n// debug memory globals\nstruct DMGLOB\n{\n    DMAGL dmaglBase; // for NewObj\n    DMAGL dmaglHq;   // for HQs\n    DMAGL dmaglPv;   // for FAllocPv, etc\n};\nextern DMGLOB vdmglob;\n\nextern long vcactSuspendCheckPointers;\n#define SuspendCheckPointers() vcactSuspendCheckPointers++;\n#define ResumeCheckPointers() vcactSuspendCheckPointers--;\n\nbool FAllocHqDebug(HQ *phq, long cb, ulong grfmem, long mpr, schar *pszsFile, long lwLine);\n#define FAllocHq(phq, cb, grfmem, mpr) FAllocHqDebug(phq, cb, grfmem, mpr, __szsFile, __LINE__)\nvoid *QvFromHq(HQ hq);\n\nvoid AssertHq(HQ hq);\nvoid MarkHq(HQ hq);\n#ifdef MAC\nvoid _AssertUnmarkedHqs(void);\nvoid _UnmarkAllHqs(void);\n#endif // MAC\n\n#else //! DEBUG\n\n#define FAllocHqDebug(phq, cb, grfmem, mpr, pszsFile, luLine) FAllocHq(phq, cb, grfmem, mpr)\nbool FAllocHq(HQ *phq, long cb, ulong grfmem, long mpr);\n#ifdef MAC\ninline void *QvFromHq(HQ hq)\n{\n    return vadst.PvStrip(*(void **)hq);\n}\n#elif defined(WIN)\ninline void *QvFromHq(HQ hq)\n{\n    return (void *)hq;\n}\n#endif // WIN\n\n#define AssertHq(hq)\n#define MarkHq(hq)\n\n#endif //! DEBUG\n\n/****************************************\n    Fixed (non-moveable) memory.\n****************************************/\n#ifdef DEBUG\n\n// allocation routine\nbool FAllocPvDebug(void **ppv, long cb, ulong grfmem, long mpr, schar *pszsFile, long lwLine, DMAGL *pdmagl);\n#define FAllocPv(ppv, cb, grfmem, mpr) FAllocPvDebug(ppv, cb, grfmem, mpr, __szsFile, __LINE__, &vdmglob.dmaglPv)\n\n// resizing routine - WIN only\n#ifdef WIN\nbool _FResizePpvDebug(void **ppv, long cbNew, long cbOld, ulong grfmem, long mpr, DMAGL *pdmagl);\n#endif // WIN\n\n// freeing routine\nvoid FreePpvDebug(void **ppv, DMAGL *pdmagl);\n#define FreePpv(ppv) FreePpvDebug(ppv, &vdmglob.dmaglPv)\n\nvoid AssertPvAlloced(void *pv, long cb);\nvoid AssertUnmarkedMem(void);\nvoid UnmarkAllMem(void);\nvoid MarkPv(void *pv);\n\n#else //! DEBUG\n\n#define SuspendCheckPointers()\n#define ResumeCheckPointers()\n\n// allocation routine\n#define FAllocPvDebug(ppv, cb, grfmem, mpr, pszsFile, luLine, pdmagl) FAllocPv(ppv, cb, grfmem, mpr)\nbool FAllocPv(void **ppv, long cb, ulong grfmem, long mpr);\n\n// resizing routine - WIN only\n#ifdef WIN\n#define _FResizePpvDebug(ppv, cbNew, cbOld, grfmem, mpr, pdmagl) _FResizePpv(ppv, cbNew, cbOld, grfmem, mpr)\nbool _FResizePpv(void **ppv, long cbNew, long cbOld, ulong grfmem, long mpr);\n#endif // WIN\n\n// freeing routine\n#define FreePpvDebug(ppv, pdmagl) FreePpv(ppv)\nvoid FreePpv(void **ppv);\n\n#define AssertPvAlloced(pv, cb)\n#define AssertUnmarkedMem()\n#define UnmarkAllMem()\n#define MarkPv(pv)\n#endif //! DEBUG\n\n/****************************************\n    Memory trashing\n****************************************/\n#ifdef DEBUG\n\n#define TrashVar(pfoo)                                                                                                 \\\n    if (pvNil != (pfoo))                                                                                               \\\n        FillPb(pfoo, size(*(pfoo)), kbGarbage);                                                                        \\\n    else                                                                                                               \\\n        (void)0\n#define TrashVarIf(f, pfoo)                                                                                            \\\n    if ((f) && pvNil != (pfoo))                                                                                        \\\n        FillPb(pfoo, size(*(pfoo)), kbGarbage);                                                                        \\\n    else                                                                                                               \\\n        (void)0\n#define TrashPvCb(pv, cb)                                                                                              \\\n    if (pvNil != (pv))                                                                                                 \\\n        FillPb(pv, cb, kbGarbage);                                                                                     \\\n    else                                                                                                               \\\n        (void)0\n#define TrashPvCbIf(f, pv, cb)                                                                                         \\\n    if ((f) && pvNil != (pv))                                                                                          \\\n        FillPb(pv, cb, kbGarbage);                                                                                     \\\n    else                                                                                                               \\\n        (void)0\n\n#else //! DEBUG\n\n#define TrashVar(pfoo)\n#define TrashVarIf(f, pfoo)\n#define TrashPvCb(pv, cb)\n#define TrashPvCbIf(f, pv, cb)\n\n#endif //! DEBUG\n\n/****************************************\n    Pointer arithmetic\n****************************************/\ninline void *PvAddBv(void *pv, long bv)\n{\n    return (byte *)pv + bv;\n}\ninline void *PvSubBv(void *pv, long bv)\n{\n    return (byte *)pv - bv;\n}\ninline long BvSubPvs(void *pv1, void *pv2)\n{\n    return (byte *)pv1 - (byte *)pv2;\n}\n\n/****************************************\n    Mutex (critical section) object\n****************************************/\ntypedef class MUTX *PMUTX;\nclass MUTX\n{\n  protected:\n#ifdef WIN\n    CRITICAL_SECTION _crit;\n#endif // WIN\n\n  public:\n    MUTX(void)\n    {\n        Win(InitializeCriticalSection(&_crit);)\n    }\n    ~MUTX(void)\n    {\n        Win(DeleteCriticalSection(&_crit);)\n    }\n\n    void Enter(void)\n    {\n        Win(EnterCriticalSection(&_crit);)\n    }\n    void Leave(void)\n    {\n        Win(LeaveCriticalSection(&_crit);)\n    }\n};\n\nextern MUTX vmutxMem;\n\n/****************************************\n    Current thread id\n****************************************/\ninline long LwThreadCur(void)\n{\n    return MacWin(0, GetCurrentThreadId());\n}\n\n#endif //! UTILMEM_H\n"
  },
  {
    "path": "kauai/src/utilrnd.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Some \"random\" stuff\n\n***************************************************************************/\n#include \"util.h\"\n\nASSERTNAME\n\nRTCLASS(RND)\nRTCLASS(SFL)\n\n/***************************************************************************\n    Constructs a pseudo-random number generator.  If luSeed is zero,\n    generates a seed from the current system time (TsCurrentSystem).\n***************************************************************************/\nRND::RND(ulong luSeed)\n{\n    if (0 == luSeed)\n    {\n        luSeed = TsCurrentSystem();\n        SwapBytesRglw((long *)&luSeed, 1);\n    }\n    _luSeed = luSeed;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Return the next pseudo-random number within the range 0 to lwLim - 1,\n    inclusive.\n***************************************************************************/\nlong RND::LwNext(long lwLim)\n{\n    AssertThis(0);\n    AssertIn(lwLim, 1, kcbMax);\n\n    // high bits are more random than the low ones\n    // See Knuth vol 2, page 102, line 24 of table 1.\n    // value of kdluRand doesn't matter much\n    const ulong kluRandMul = 1566083941L;\n    const long kdluRand = 2531011L;\n    long lw;\n\n    _luSeed = _luSeed * kluRandMul + kdluRand;\n\n    // multiply lw by lwLim and divide by 2^32\n#ifdef IN_80386\n    ulong luSeedT = _luSeed;\n    __asm\n    {\n\t\tmov\t\teax,luSeedT\n\t\tmul\t\tlwLim\n\t\tmov\t\tlw,edx\n    }\n#else  //! IN_80386\n    double dou;\n\n    dou = (double)_luSeed * lwLim / (double)0x40000000 / 4;\n    lw = (long)dou;\n#endif //! IN_80386\n\n    Assert(lw < lwLim, \"random number out of range\");\n    return lw;\n}\n\n/***************************************************************************\n    Constructs a shuffled array.\n***************************************************************************/\nSFL::SFL(ulong luSeed) : RND(luSeed)\n{\n    _clw = 0;\n    _ilw = 0;\n    _fCustom = fFalse;\n    _hqrglw = hqNil;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Destructs a shuffled array.\n***************************************************************************/\nSFL::~SFL(void)\n{\n    AssertThis(0);\n    FreePhq(&_hqrglw);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a SFL.\n***************************************************************************/\nvoid SFL::AssertValid(ulong grf)\n{\n    SFL_PAR::AssertValid(0);\n    if (_hqrglw != hqNil)\n    {\n        AssertHq(_hqrglw);\n        Assert(CbOfHq(_hqrglw) == LwMul(_clw, size(long)), \"HQ wrong size\");\n    }\n    else\n        Assert(0 == _clw, \"_clw wrong\");\n}\n\n/***************************************************************************\n    Mark memory for the SFL.\n***************************************************************************/\nvoid SFL::MarkMem(void)\n{\n    AssertValid(0);\n    SFL_PAR::MarkMem();\n    MarkHq(_hqrglw);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Shuffle the numbers [0, lwLim).\n***************************************************************************/\nvoid SFL::Shuffle(long lwLim)\n{\n    AssertThis(0);\n    AssertIn(lwLim, 0, kcbMax);\n    long ilw;\n    long *qrglw;\n\n    if (!_FEnsureHq(lwLim))\n        return;\n    _ilw = 0;\n    Assert(_clw == lwLim, \"wrong _clw\");\n\n    qrglw = (long *)QvFromHq(_hqrglw);\n    // fill the array with [0, _clw)\n    for (ilw = 0; ilw < _clw; ilw++)\n        qrglw[ilw] = ilw;\n\n    _fCustom = fFalse;\n    _ShuffleCore();\n}\n\n/***************************************************************************\n    Fill the SFL with the values in prglw and shuffle them.\n***************************************************************************/\nvoid SFL::ShuffleRglw(long clw, long *prglw)\n{\n    AssertThis(0);\n    AssertIn(clw, 0, kcbMax);\n    AssertPvCb(prglw, LwMul(clw, size(long)));\n\n    if (!_FEnsureHq(clw))\n        return;\n    _ilw = 0;\n    Assert(_clw == clw, \"wrong _clw\");\n\n    // fill the HQ with the stuff in prglw\n    CopyPb(prglw, QvFromHq(_hqrglw), LwMul(clw, size(long)));\n\n    _fCustom = fTrue;\n    _ShuffleCore();\n}\n\n/***************************************************************************\n    Shuffle the entries in the HQ.\n***************************************************************************/\nvoid SFL::_ShuffleCore(void)\n{\n    AssertThis(0);\n    Assert(_clw > 0, 0);\n    long lw;\n    long ilw, ilwSwap;\n    long *qrglw;\n\n    // swap stuff\n    qrglw = (long *)QvFromHq(_hqrglw);\n    for (ilw = _clw; --ilw > 0;)\n    {\n        ilwSwap = RND::LwNext(ilw + 1);\n        if (ilwSwap < ilw)\n        {\n            lw = qrglw[ilw];\n            qrglw[ilw] = qrglw[ilwSwap];\n            qrglw[ilwSwap] = lw;\n        }\n    }\n}\n\n/***************************************************************************\n    Make sure the HQ is the correct size and set clw appropriately.\n***************************************************************************/\nbool SFL::_FEnsureHq(long clw)\n{\n    AssertThis(0);\n    AssertIn(clw, 0, kcbMax);\n\n    if (clw <= 0)\n        goto LFail;\n\n    if (_hqrglw == hqNil && !FAllocHq(&_hqrglw, LwMul(_clw = clw, size(long)), fmemNil, mprNormal))\n    {\n        goto LFail;\n    }\n    if (clw != _clw && !FResizePhq(&_hqrglw, LwMul(_clw = clw, size(long)), fmemNil, mprNormal))\n    {\n    LFail:\n        // we are low on memory, so be nice and give some up\n        FreePhq(&_hqrglw);\n        _clw = 0;\n        AssertThis(0);\n        return fFalse;\n        ;\n    }\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Returns the next number in a shuffled array of numbers.  If lwLim is\n    zero, uses the numbers already in the SFL.  Otherwise, numbers\n    range from 0 to (lwLim - 1), inclusive.\n***************************************************************************/\nlong SFL::LwNext(long lwLim)\n{\n    AssertThis(0);\n    AssertIn(lwLim, 0, kcbMax);\n\n    if (lwLim > 0 && (lwLim != _clw || _fCustom))\n    {\n        // need to reshuffle with standard values\n        Shuffle(lwLim);\n        _ilw = 0;\n        if (0 == _clw)\n        {\n            // shuffling failed, just use the regular random number\n            return RND::LwNext(lwLim);\n        }\n    }\n    else if (_clw == 0)\n    {\n        // no values in the HQ, just return 0\n        _ilw = 0;\n        return 0;\n    }\n    else if (_ilw >= _clw)\n    {\n        // need to reshuffle the values already in the HQ\n        _ShuffleCore();\n        _ilw = 0;\n    }\n\n    AssertIn(_ilw, 0, _clw);\n    return ((long *)QvFromHq(_hqrglw))[_ilw++];\n}\n"
  },
  {
    "path": "kauai/src/utilrnd.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    Random number generator and shuffler stuff.\n\n***************************************************************************/\n#ifndef UTILRND_H\n#define UTILRND_H\n\n/***************************************************************************\n    A pseudo-random number generator. LwNext returns values from 0 to\n    (lwLim - 1), inclusive.\n***************************************************************************/\ntypedef class RND *PRND;\n#define RND_PAR BASE\n#define kclsRND 'RND'\nclass RND : public RND_PAR\n{\n    RTCLASS_DEC\n    NOCOPY(RND)\n\n  protected:\n    ulong _luSeed;\n\n  public:\n    RND(ulong luSeed = 0L);\n    virtual long LwNext(long lwLim);\n};\n\n/***************************************************************************\n    A shuffled array of numbers.\n***************************************************************************/\ntypedef class SFL *PSFL;\n#define SFL_PAR RND\n#define kclsSFL 'SFL'\nclass SFL : public SFL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    NOCOPY(SFL)\n\n  protected:\n    long _clw;\n    long _ilw;\n    HQ _hqrglw;\n    bool _fCustom; // false iff the values in the hq are [0, _clw)\n\n    bool _FEnsureHq(long clw);\n    void _ShuffleCore(void);\n\n  public:\n    SFL(ulong luSeed = 0L);\n    ~SFL(void);\n    void Shuffle(long lwLim);\n    void ShuffleRglw(long clw, long *prglw);\n\n    virtual long LwNext(long lwLim = 0);\n};\n\n#endif // UTILRND_H\n"
  },
  {
    "path": "kauai/src/utilstr.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    String manipulation.\n    WARNING: Must be in a fixed (pre-loaded) seg on Mac.\n\n***************************************************************************/\n#include \"util.h\"\nASSERTNAME\n\n#include \"chtrans.h\"\n\nconst achar vrgchHex[] = PszLit(\"0123456789ABCDEF\");\n\n/***************************************************************************\n    Constructor for a string based on another string.\n***************************************************************************/\nSTN::STN(STN &stnSrc)\n{\n    AssertPo(&stnSrc, 0);\n\n    CopyPb(stnSrc._rgch, _rgch, (stnSrc.Cch() + 2) * size(achar));\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Constructor for a string based on an sz.\n***************************************************************************/\nSTN::STN(PSZ pszSrc)\n{\n    long cch = LwBound(CchSz(pszSrc), 0, kcchMaxStn + 1);\n\n    AssertIn(cch, 0, kcchMaxStn + 1);\n    CopyPb(pszSrc, _rgch + 1, cch * size(achar));\n    _rgch[0] = (achar)cch;\n    _rgch[cch + 1] = 0;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Assignment of one string to another.\n***************************************************************************/\nSTN &STN::operator=(STN &stnSrc)\n{\n    AssertThis(0);\n    AssertPo(&stnSrc, 0);\n\n    CopyPb(stnSrc._rgch, _rgch, (stnSrc.Cch() + 2) * size(achar));\n    AssertThis(0);\n    return *this;\n}\n\n/***************************************************************************\n    Set the string to the given array of characters.\n***************************************************************************/\nvoid STN::SetRgch(achar *prgchSrc, long cch)\n{\n    AssertThis(0);\n    AssertIn(cch, 0, kcbMax);\n    AssertPvCb(prgchSrc, cch * size(achar));\n\n    if (cch > kcchMaxStn)\n        cch = kcchMaxStn;\n\n    if (cch > 0)\n        CopyPb(prgchSrc, _rgch + 1, cch * size(achar));\n    else\n        cch = 0; // for safety\n\n    _rgch[0] = (achar)cch;\n    _rgch[cch + 1] = 0;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Put the zero terminated short character string into the STN.\n***************************************************************************/\nvoid STN::SetSzs(PSZS pszsSrc)\n{\n    AssertThis(0);\n    AssertVarMem(pszsSrc);\n\n#ifdef UNICODE\n#ifdef WIN\n    // REVIEW shonk: is this correct?\n    long cch = MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, pszsSrc, -1, _rgch + 1, kcchMaxStn);\n\n    AssertIn(cch, 1, kcchMaxStn + 1);\n    _rgch[0] = (achar)(cch - 1);\n    _rgch[cch] = 0;\n#endif // WIN\n#ifdef MAC\n    RawRtn(); // REVIEW shonk: Mac: implement\n#endif        // MAC\n#else         //! UNICODE\n    SetSz(pszsSrc);\n#endif        // UNICODE\n}\n\n/***************************************************************************\n    Delete (at most) cch characters starting at position ich.\n***************************************************************************/\nvoid STN::Delete(long ich, long cch)\n{\n    AssertThis(0);\n    AssertIn(cch, 0, kcbMax);\n    long cchCur = Cch();\n\n    if (!FIn(ich, 0, cchCur))\n    {\n        Assert(ich == cchCur, \"Bad character position to delete from\");\n        return;\n    }\n\n    if (ich + cch >= cchCur)\n    {\n        // delete to the end of the string\n        _rgch[0] = (achar)ich;\n        _rgch[ich + 1] = 0;\n    }\n    else\n    {\n        BltPb(_rgch + ich + cch + 1, _rgch + ich + 1, (cchCur - ich - cch) * size(achar));\n        _rgch[0] = (achar)(cchCur - cch);\n        _rgch[cchCur - cch + 1] = 0;\n    }\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Append some characters to the end of the string.\n***************************************************************************/\nbool STN::FAppendRgch(achar *prgchSrc, long cch)\n{\n    AssertThis(0);\n    AssertIn(cch, 0, kcbMax);\n    AssertPvCb(prgchSrc, cch * size(achar));\n    bool fRet = fTrue;\n    long cchCur = Cch();\n\n    if (cch > kcchMaxStn - cchCur)\n    {\n        cch = kcchMaxStn - cchCur;\n        fRet = fFalse;\n    }\n\n    if (cch > 0)\n    {\n        CopyPb(prgchSrc, _rgch + cchCur + 1, cch * size(achar));\n        _rgch[0] = (achar)(cchCur + cch);\n        _rgch[cchCur + cch + 1] = 0;\n    }\n\n    AssertThis(0);\n    return fRet;\n}\n\n/***************************************************************************\n    Insert some characters into the middle of a string.\n***************************************************************************/\nbool STN::FInsertRgch(long ich, achar *prgchSrc, long cch)\n{\n    AssertThis(0);\n    AssertIn(cch, 0, kcbMax);\n    AssertPvCb(prgchSrc, cch * size(achar));\n    bool fRet = fTrue;\n    long cchCur = Cch();\n\n    ich = LwBound(ich, 0, cchCur + 1);\n    if (cch > kcchMaxStn - ich)\n    {\n        cchCur = ich;\n        cch = kcchMaxStn - ich;\n        fRet = fFalse;\n    }\n    else if (cch > kcchMaxStn - cchCur)\n    {\n        cchCur = kcchMaxStn - cch - ich;\n        fRet = fFalse;\n    }\n\n    Assert(cchCur + cch <= kcchMaxStn, 0);\n    if (cch > 0)\n    {\n        if (cchCur > ich)\n        {\n            BltPb(_rgch + ich + 1, _rgch + ich + cch + 1, (cchCur - ich) * size(achar));\n        }\n        CopyPb(prgchSrc, _rgch + ich + 1, cch * size(achar));\n        _rgch[0] = (achar)(cchCur + cch);\n        _rgch[cchCur + cch + 1] = 0;\n    }\n\n    AssertThis(0);\n    return fRet;\n}\n\n/***************************************************************************\n    Test whether the given rgch is equal to this string.  This does bytewise\n    compare - not user level comparison.\n***************************************************************************/\nbool STN::FEqualRgch(achar *prgch, long cch)\n{\n    AssertThis(0);\n    AssertIn(cch, 0, kcbMax);\n    AssertPvCb(prgch, cch * size(achar));\n\n    return cch == Cch() && FEqualRgb(_rgch + 1, prgch, cch * size(achar));\n}\n\n/***************************************************************************\n    Do user level string equality testing with the options given in grfstn.\n***************************************************************************/\nbool STN::FEqualUserRgch(achar *prgch, long cch, ulong grfstn)\n{\n    AssertThis(0);\n    AssertIn(cch, 0, kcbMax);\n    AssertPvCb(prgch, cch * size(achar));\n\n    return ::FEqualUserRgch(Prgch(), Cch(), prgch, cch, grfstn);\n}\n\n/***************************************************************************\n    Return the buffer size needed by GetData, or the block size needed\n    by STN::FWrite.\n***************************************************************************/\nlong STN::CbData(void)\n{\n    AssertThis(0);\n\n    return size(short) + (Cch() + 2) * size(achar);\n}\n\n/***************************************************************************\n    Get the streamed data for the stn. pv should point to a buffer\n    CbData() bytes long.\n***************************************************************************/\nvoid STN::GetData(void *pv)\n{\n    AssertThis(0);\n    AssertPvCb(pv, CbData());\n    short osk = koskCur;\n\n    CopyPb(&osk, pv, size(short));\n    CopyPb(_rgch, PvAddBv(pv, size(short)), (Cch() + 2) * size(achar));\n}\n\n/***************************************************************************\n    Writes the string data to the given block starting at position ib.\n***************************************************************************/\nbool STN::FWrite(PBLCK pblck, long ib)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n    long cbWrite = CbData();\n    long cbTot = pblck->Cb();\n    short osk = koskCur;\n\n    if (!FIn(ib, 0, cbTot - cbWrite + 1))\n    {\n        Bug(\"BLCK is not big enough\");\n        return fFalse;\n    }\n\n    if (!pblck->FWriteRgb(&osk, size(osk), ib))\n        return fFalse;\n    if (!pblck->FWriteRgb(_rgch, cbWrite - size(short), ib + size(short)))\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the string from the given data.\n***************************************************************************/\nbool STN::FSetData(void *pv, long cbMax, long *pcbRead)\n{\n    AssertThis(0);\n    AssertIn(cbMax, 0, kcbMax);\n    AssertPvCb(pv, cbMax);\n    AssertNilOrVarMem(pcbRead);\n    long cch, ich, ibT, cbT;\n    wchar chw;\n    short osk;\n\n    ibT = 0;\n    if (cbMax < size(short) + ibT)\n        goto LFail;\n    CopyPb(pv, &osk, size(short));\n    ibT += size(short);\n\n    if (osk == koskCur)\n    {\n        // no translation needed - read the length prefix\n        if (cbMax < ibT + size(achar))\n            goto LFail;\n        CopyPb(PvAddBv(pv, ibT), &_rgch[0], size(achar));\n        ibT += size(achar);\n        cch = (long)(uchar)_rgch[0];\n        if (!FIn(cch, 0, kcchMaxStn + 1))\n            goto LFail;\n\n        // read the rest of the string\n        cbT = size(achar) * (cch + 1);\n        if (cbMax < ibT + cbT)\n            goto LFail;\n        CopyPb(PvAddBv(pv, ibT), _rgch + 1, cbT);\n        ibT += cbT;\n\n        // make sure the terminating zero is there\n        if (_rgch[cch + 1] != 0)\n            goto LFail;\n\n        goto LCheck;\n    }\n\n    switch (CbCharOsk(osk))\n    {\n    case size(schar):\n        if (ibT + 2 > cbMax)\n            goto LFail;\n\n        cch = (long)(byte) * (schar *)PvAddBv(pv, ibT++);\n        if (cch > kcchMaxStn || ibT + cch >= cbMax || *(schar *)PvAddBv(pv, ibT + cch) != 0)\n        {\n            goto LFail;\n        }\n        _rgch[0] = (achar)CchTranslateRgb(PvAddBv(pv, ibT), cch, osk, _rgch + 1, kcchMaxStn);\n        ibT += cch + 1;\n\n        cch = (long)(uchar)_rgch[0];\n        _rgch[cch + 1] = 0;\n        goto LCheck;\n\n    case size(wchar):\n        if (ibT + 2 * size(wchar) > cbMax)\n            goto LFail;\n        CopyPb(PvAddBv(pv, ibT), &chw, size(wchar));\n        ibT += size(wchar);\n\n        if (osk == MacWin(koskUniWin, koskUniMac))\n            SwapBytesRgsw(&chw, 1);\n        cch = (long)(ushort)chw;\n\n        if (cch > kcchMaxStn || ibT + (cch + 1) * size(wchar) > cbMax)\n            goto LFail;\n        CopyPb(PvAddBv(pv, ibT + cch * size(wchar)), &chw, size(wchar));\n        if (chw != 0)\n            goto LFail;\n        _rgch[0] = (achar)CchTranslateRgb(PvAddBv(pv, ibT), cch * size(wchar), osk, _rgch + 1, kcchMaxStn);\n        ibT += (cch + 1) * size(wchar);\n\n        cch = (long)(uchar)_rgch[0];\n        _rgch[cch + 1] = 0;\n\n    LCheck:\n        // make sure there aren't any other zeros.\n        for (ich = 1; ich <= cch; ich++)\n        {\n            if (_rgch[ich] == 0)\n                goto LFail;\n        }\n        if (pvNil != pcbRead)\n            *pcbRead = ibT;\n        else if (ibT != cbMax)\n            goto LFail;\n        AssertThis(0);\n        return fTrue;\n\n    default:\n    LFail:\n        PushErc(ercStnRead);\n        Warn(\"bad STN data\");\n        SetNil();\n        TrashVar(pcbRead);\n        return fFalse;\n    }\n}\n\n/***************************************************************************\n    Read a string from a block.\n***************************************************************************/\nbool STN::FRead(PBLCK pblck, long ib, long *pcbRead)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(pcbRead);\n\n    long cch, ich, ibT, cbT, cbMax;\n    short osk;\n    schar chs;\n    wchar chw;\n    byte rgb[kcbMaxDataStn];\n\n    if (!pblck->FUnpackData())\n        return fFalse;\n    cbMax = pblck->Cb();\n\n    ibT = ib;\n    if (cbMax < size(short) + ibT || !pblck->FReadRgb(&osk, size(short), ibT))\n        goto LFail;\n    ibT += size(short);\n\n    if (osk == koskCur)\n    {\n        // no translation needed - read the length prefix\n        if (cbMax < ibT + size(achar) || !pblck->FReadRgb(&_rgch[0], size(achar), ibT))\n        {\n            goto LFail;\n        }\n        ibT += size(achar);\n        cch = (long)(uchar)_rgch[0];\n        if (!FIn(cch, 0, kcchMaxStn + 1))\n            goto LFail;\n\n        // read the rest of the string\n        cbT = size(achar) * (cch + 1);\n        if (cbMax < ibT + cbT || !pblck->FReadRgb(_rgch + 1, cbT, ibT))\n            goto LFail;\n        ibT += cbT;\n\n        // make sure the terminating zero is there\n        if (_rgch[cch + 1] != 0)\n            goto LFail;\n\n        goto LCheck;\n    }\n\n    switch (CbCharOsk(osk))\n    {\n    case size(schar):\n        if (ibT + 2 > cbMax || !pblck->FReadRgb(&chs, 1, ibT++))\n            goto LFail;\n        cch = (long)(byte)chs;\n        if (cch > kcchMaxStn || ibT + cch >= cbMax || !pblck->FReadRgb(rgb, cch + 1, ibT) || rgb[cch] != 0)\n        {\n            goto LFail;\n        }\n        ibT += cch + 1;\n        _rgch[0] = (achar)CchTranslateRgb(rgb, cch, osk, _rgch + 1, kcchMaxStn);\n\n        cch = (long)(uchar)_rgch[0];\n        _rgch[cch + 1] = 0;\n        goto LCheck;\n\n    case size(wchar):\n        if (ibT + 2 * size(wchar) > cbMax || !pblck->FReadRgb(&chw, size(wchar), ibT))\n        {\n            goto LFail;\n        }\n        ibT += size(wchar);\n\n        if (osk == MacWin(koskUniWin, koskUniMac))\n            SwapBytesRgsw(&chw, 1);\n        cch = (long)(ushort)chw;\n\n        if (cch > kcchMaxStn || ibT + (cch + 1) * size(wchar) > cbMax ||\n            !pblck->FReadRgb(rgb, (cch + 1) * size(wchar), ibT) || ((wchar *)rgb)[cch] != 0)\n        {\n            goto LFail;\n        }\n        ibT += (cch + 1) * size(wchar);\n        _rgch[0] = (achar)CchTranslateRgb(rgb, cch * size(wchar), osk, _rgch + 1, kcchMaxStn);\n\n        cch = (long)(uchar)_rgch[0];\n        _rgch[cch + 1] = 0;\n\n    LCheck:\n        // make sure there aren't any other zeros.\n        for (ich = 1; ich <= cch; ich++)\n        {\n            if (_rgch[ich] == 0)\n                goto LFail;\n        }\n        if (pvNil != pcbRead)\n            *pcbRead = ibT;\n        else if (ibT != cbMax)\n            goto LFail;\n        AssertThis(0);\n        return fTrue;\n\n    default:\n    LFail:\n        PushErc(ercStnRead);\n        Warn(\"bad STN data or read failure\");\n        SetNil();\n        TrashVar(pcbRead);\n        return fFalse;\n    }\n}\n\n/***************************************************************************\n    Get a zero terminated short string from this string.\n***************************************************************************/\nvoid STN::GetSzs(PSZS pszs)\n{\n    AssertThis(0);\n    AssertPvCb(pszs, kcchTotSz);\n\n#ifdef UNICODE\n#ifdef WIN\n    long cchs = WideCharToMultiByte(CP_ACP, 0, _rgch + 1, -1, pszs, kcchMaxSz, pvNil, pvNil);\n\n    pszs[cchs] = 0;\n#endif // WIN\n#ifdef MAC\n    RawRtn(); // REVIEW shonk: Mac: implement\n    pszs[0] = 0;\n#endif // MAC\n#else  //! UNICODE\n    CopyPb(_rgch + 1, pszs, Cch() + 1);\n#endif // UNICODE\n}\n\n/***************************************************************************\n    Format this string using the given template string and any additional\n    parameters (ala sprintf).  All parameters are assumed to be 4 bytes long.\n\n    Returns false if the string ended up being too long to fit in an stn.\n    The following controls are supported:\n\n    %c (long)achar\n    %s pstn\n    %z psz\n    %d signed decimal (long)\n    %u unsigned decimal (long)\n    %x hex\n    %f long as a 4 character value: 'xxxx' (ala FTG and CTG values)\n    %% a percent sign\n\n    Supports the following options, in this order:\n\n        Argument reordering ('<', 0 based decimal number, '>')\n        Left justify ('-')\n        Explicit plus sign ('+')\n        Zero padding instead of space padding ('0')\n        Minimum field width (decimal number)\n\n    These all go between the '%' and the control letter.  Note that argument\n    reordering affects everything after the reordered arg in the control\n    string.  Eg, \"%<1>d %<0>d %d %d\"  will use arguments in the order\n    { 1, 0, 1, 2 }.  If you just want to switch two arguments, the one\n    following needs a number also.  So the above example would be\n    \"%<1>d %<0>d %<2>d %d\", producing { 1, 0, 2, 3 }.\n\n    WARNING: all arguments should be 4 bytes long.\n***************************************************************************/\nbool STN::FFormat(PSTN pstnFormat, ...)\n{\n    AssertThis(0);\n    AssertPo(pstnFormat, 0);\n\n    return FFormatRgch(pstnFormat->Prgch(), pstnFormat->Cch(), (ulong *)(&pstnFormat + 1));\n}\n\n/***************************************************************************\n    See comments for STN::FFormat\n***************************************************************************/\nbool STN::FFormatSz(PSZ pszFormat, ...)\n{\n    AssertThis(0);\n    AssertSz(pszFormat);\n\n    return FFormatRgch(pszFormat, CchSz(pszFormat), (ulong *)(&pszFormat + 1));\n}\n\n/***************************************************************************\n    Core routine for sprintf functionality.\n***************************************************************************/\nbool STN::FFormatRgch(achar *prgchFormat, long cchFormat, ulong *prgluData)\n{\n    AssertThis(0);\n    AssertIn(cchFormat, 0, kcchMaxStn + 1);\n    AssertPvCb(prgchFormat, cchFormat * size(achar));\n    AssertVarMem(prgluData);\n\n    // Data Write Order - these dwo values are pcode for when to add what\n    enum\n    {\n        dwoPadFirst = 0x0321,\n        dwoPadSecond = 0x0312,\n        dwoPadLast = 0x0132\n    };\n    achar *pchOut, *pchOutLim;\n    achar *pchIn, *pchInLim;\n    long cch;\n    long cchMin;\n    long ivArg;\n    ulong lu, luRad;\n    achar ch;\n    achar rgchT[kcchMaxStn];\n    achar *prgchTerm;\n    achar chSign, chPad;\n    ulong dwo;\n    PSTN pstn;\n    bool fRet = fFalse;\n\n    pchInLim = (pchIn = prgchFormat) + cchFormat;\n    pchOutLim = (pchOut = _rgch + 1) + kcchMaxStn;\n    ivArg = 0;\n    while (pchIn < pchInLim && pchOut < pchOutLim)\n    {\n        if ((ch = *pchIn++) != ChLit('%'))\n        {\n            *pchOut++ = ch;\n            continue;\n        }\n\n        // pre-fetch the next character\n        if (pchIn >= pchInLim)\n            goto LBug;\n        ch = *pchIn++;\n        if (ch == ChLit('%'))\n        {\n            *pchOut++ = ChLit('%');\n            continue;\n        }\n\n        dwo = dwoPadFirst;\n        chSign = 0;\n        chPad = kchSpace;\n\n        if (ch == ChLit('<'))\n        {\n            ivArg = 0;\n            for (;;)\n            {\n                if (ch < ChLit('0') || ch > ChLit('9'))\n                    break;\n                ivArg = ivArg * 10 + ch - ChLit('0');\n\n                // pre-fetch the next character\n                if (pchIn >= pchInLim)\n                    goto LBug;\n                ch = *pchIn++;\n            }\n            if (ch != ChLit('>'))\n                goto LBug;\n        }\n\n        // get qualifiers (print sign, left justify, etc)\n        for (;;)\n        {\n            switch (ch)\n            {\n            default:\n                goto LGetCchMin;\n            case ChLit('-'):\n                dwo = dwoPadLast;\n                break;\n            case ChLit('+'):\n                chSign = ChLit('+');\n                break;\n            case ChLit('0'):\n                chPad = ChLit('0');\n                dwo = dwoPadSecond;\n                break;\n            }\n\n            // pre-fetch the next character\n            if (pchIn >= pchInLim)\n                goto LBug;\n            ch = *pchIn++;\n        }\n\n    LGetCchMin:\n        cchMin = 0;\n        for (;;)\n        {\n            if (ch < ChLit('0') || ch > ChLit('9'))\n                break;\n            cchMin = cchMin * 10 + ch - ChLit('0');\n\n            // pre-fetch the next character\n            if (pchIn >= pchInLim)\n                goto LBug;\n            ch = *pchIn++;\n        }\n\n        // code after the switch assumes that prgchTerm points to the\n        // characters to add to the stream and cch is the number of characters\n        AssertPvCb(prgluData, LwMul(ivArg + 1, size(ulong)));\n        lu = prgluData[ivArg++];\n        prgchTerm = rgchT;\n        switch (ch)\n        {\n        case ChLit('c'):\n            rgchT[0] = (achar)lu;\n            cch = 1;\n            break;\n\n        case ChLit('s'):\n            pstn = (PSTN)lu;\n            AssertPo(pstn, 0);\n            prgchTerm = pstn->Prgch();\n            cch = pstn->Cch();\n            break;\n\n        case ChLit('z'):\n            AssertSz((achar *)lu);\n            prgchTerm = (achar *)lu;\n            cch = CchSz(prgchTerm);\n            break;\n\n        case ChLit('f'):\n            for (cch = 4; cch-- > 0; lu >>= 8)\n            {\n                ch = (achar)(byte)lu;\n                if (0 == ch)\n                    ch = 1;\n                rgchT[cch] = ch;\n            }\n            cch = 4;\n            break;\n\n        case ChLit('x'):\n            // if cchMin is not 0, don't make it longer than cchMin\n            if (cchMin > 0 && cchMin < 8)\n                lu &= (1L << (cchMin * 4)) - 1;\n            luRad = 16;\n            goto LUnsigned;\n\n        case ChLit('d'):\n            if ((long)lu < 0)\n            {\n                chSign = ChLit('-');\n                lu = -(long)lu;\n            }\n            luRad = 10;\n            goto LUnsigned;\n\n        case ChLit('u'):\n            luRad = 10;\n        LUnsigned:\n            prgchTerm = rgchT + CvFromRgv(rgchT);\n            cch = 0;\n            do\n            {\n                *--prgchTerm = vrgchHex[lu % luRad];\n                cch++;\n                lu /= luRad;\n            } while (lu != 0);\n            break;\n\n        default:\n        LBug:\n            Bug(\"bad format string\");\n            goto LFail;\n        }\n\n        // set cchMin to the number of characters to pad\n        cchMin = LwMax(0, cchMin - cch - (chSign != 0));\n        if (pchOutLim - pchOut <= cch + cchMin + (chSign != 0))\n        {\n            // overflowed the output buffer\n            goto LFail;\n        }\n\n        // arrange the sign, padding and rgch according to dwo\n        while (dwo != 0)\n        {\n            switch (dwo & 0x0F)\n            {\n            case 1: // add padding\n                for (; cchMin > 0; cchMin--)\n                    *pchOut++ = chPad;\n                break;\n\n            case 2: // add the sign\n                if (chSign != 0)\n                    *pchOut++ = chSign;\n                break;\n\n            case 3: // add the text\n                CopyPb(prgchTerm, pchOut, cch * size(achar));\n                pchOut += cch;\n                break;\n\n            default:\n                BugVar(\"bad dwo value\", &dwo);\n                break;\n            }\n\n            dwo >>= 4;\n        }\n\n        Assert(pchOut <= pchOutLim, \"bad logic above - overflowed the rgch\");\n    }\n\n    fRet = pchIn == pchInLim;\nLFail:\n    cch = pchOut - _rgch - 1;\n    AssertIn(cch, 0, kcchMaxStn + 1);\n    _rgch[0] = (achar)cch;\n    _rgch[cch + 1] = 0;\n    return fRet;\n}\n\n/***************************************************************************\n    Parses the STN as a number.  If lwBase is 0, automatically determines\n    the base as one of 10, 8 or 16 (as in standard C) and allows leading\n    spaces, '+' and '-' signs, and trailing spaces.  Doesn't deal with\n    overflow.\n***************************************************************************/\nbool STN::FGetLw(long *plw, long lwBase)\n{\n    AssertThis(0);\n    AssertVarMem(plw);\n    AssertIn(lwBase, 0, 36);\n    Assert(lwBase != 1, \"base can't be 1\");\n    long lwDigit;\n    achar ch;\n    bool fNegative = fFalse;\n    PSZ psz = Psz();\n\n    if (lwBase < 2)\n    {\n        for (;; psz++)\n        {\n            switch (*psz)\n            {\n            case ChLit('-'):\n                fNegative = !fNegative;\n                continue;\n\n            case ChLit('+'):\n            case kchSpace:\n                continue;\n            }\n            break;\n        }\n    }\n\n    *plw = 0;\n    if (*psz == 0)\n        goto LFail;\n\n    // determine the base if lwBase is zero\n    if (0 == lwBase)\n    {\n        // determine the base\n        if (ChLit('0') == psz[0])\n        {\n            psz++;\n            if (ChLit('x') == psz[0] || ChLit('X') == psz[0])\n            {\n                psz++;\n                lwBase = 16;\n            }\n            else\n                lwBase = 8;\n        }\n        else\n            lwBase = 10;\n    }\n\n    while (0 != (ch = *psz++))\n    {\n        if (FIn(ch, ChLit('0'), ChLit('9') + 1))\n            lwDigit = ch - ChLit('0');\n        else\n        {\n            if (FIn(ch, ChLit('A'), ChLit('Z') + 1))\n                ch += ChLit('a') - ChLit('A');\n            else if (!FIn(ch, ChLit('a'), ChLit('z') + 1))\n            {\n                // not a letter, so only spaces should follow\n                for (; ch != 0; ch = *psz++)\n                {\n                    if (ch != kchSpace)\n                        goto LFail;\n                }\n                break;\n            }\n            lwDigit = ch - ChLit('a') + 10;\n        }\n\n        if (lwDigit > lwBase)\n        {\n        LFail:\n            TrashVar(plw);\n            return fFalse;\n        }\n        *plw = *plw * lwBase + lwDigit;\n    }\n\n    if (fNegative)\n        *plw = -*plw;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Doubles any backslash characters in the string and replaces \" literals\n    with \\\".\n***************************************************************************/\nbool STN::FExpandControls(void)\n{\n    AssertThis(0);\n    achar rgch[kcchMaxStn];\n    achar *pchSrc, *pchDst, *pchLim, ch;\n    long cch;\n    bool fAny;\n    bool fRet = fFalse;\n\n    fAny = fFalse;\n    pchSrc = Psz();\n    pchDst = rgch;\n    pchLim = pchDst + kcchMaxStn;\n    for (cch = Cch(); cch-- > 0;)\n    {\n        if (pchDst >= pchLim)\n            goto LFail;\n        ch = *pchSrc++;\n        switch (ch)\n        {\n        case kchTab:\n            ch = ChLit('t');\n            goto LExpand;\n        case kchReturn:\n            ch = ChLit('n');\n            goto LExpand;\n        case ChLit('\\\\'):\n        case ChLit('\"'):\n        LExpand:\n            if (pchDst + 1 >= pchLim)\n                goto LFail;\n            *pchDst++ = ChLit('\\\\');\n            fAny = fTrue;\n            break;\n        }\n        *pchDst++ = ch;\n    }\n    fRet = fTrue;\n\nLFail:\n    if (fAny)\n        SetRgch(rgch, pchDst - rgch);\n\n    return fRet;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a STN.\n***************************************************************************/\nvoid STN::AssertValid(ulong grf)\n{\n    AssertThisMem();\n\n    achar *pch;\n    long cch = (long)(uchar)_rgch[0];\n\n    AssertIn(cch, 0, kcchMaxStn + 1);\n    Assert(_rgch[cch + 1] == 0, \"missing termination byte\");\n\n    for (pch = _rgch + 1; *pch != 0; pch++)\n        ;\n\n    Assert(pch - _rgch == cch + 1, \"internal null characters\");\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Check the validity of an st (make sure no zeros are in it).\n***************************************************************************/\nbool FValidSt(PST pst)\n{\n    AssertVarMem(pst);\n    achar *pch;\n    long cch = (long)(uchar)pst[0];\n\n    if (!FIn(cch, 0, kcchMaxSt + 1))\n        return fFalse;\n\n    AssertPvCb(pst, (cch + kcchExtraSt) * size(achar));\n    for (pch = PrgchSt(pst); cch > 0 && *pch != 0; cch--, pch++)\n        ;\n    return (cch == 0);\n}\n\n/***************************************************************************\n    Check the validity of an stz\n***************************************************************************/\nbool FValidStz(PSTZ pstz)\n{\n    AssertVarMem(pstz);\n    return FValidSt(pstz) && 0 == PszStz(pstz)[CchSt(pstz)];\n}\n\n/***************************************************************************\n    Find the length of a zero terminated string.\n***************************************************************************/\nlong CchSz(PSZ psz)\n{\n    // WARNING: don't call AssertSz, since AssertSz calls CchSz!\n    AssertVarMem(psz);\n    achar *pch;\n\n    for (pch = psz; *pch != 0; pch++)\n        ;\n    Assert(pch - psz <= kcchMaxSz, \"sz too long\");\n    AssertPvCb(psz, (pch - psz + 1) * size(achar));\n    return pch - psz;\n}\n\n/***************************************************************************\n    Do string equality testing.  This does byte-wise comparison for\n    internal (non-user) use only!\n***************************************************************************/\nbool FEqualRgch(achar *prgch1, long cch1, achar *prgch2, long cch2)\n{\n    AssertIn(cch1, 0, kcbMax);\n    AssertPvCb(prgch1, cch1 * size(achar));\n    AssertIn(cch2, 0, kcbMax);\n    AssertPvCb(prgch2, cch2 * size(achar));\n\n    return cch1 == cch2 && FEqualRgb(prgch1, prgch2, cch1 * size(achar));\n}\n\n/***************************************************************************\n    Do string comparison for sorting.  This is byte-wise for internal\n    (non-user) sorting only!  The sorting is byte-order independent.\n    fcmpLt means that string 1 is less than string 2.\n***************************************************************************/\nulong FcmpCompareRgch(achar *prgch1, long cch1, achar *prgch2, long cch2)\n{\n    AssertIn(cch1, 0, kcbMax);\n    AssertPvCb(prgch1, cch1 * size(achar));\n    AssertIn(cch2, 0, kcbMax);\n    AssertPvCb(prgch2, cch2 * size(achar));\n    long ich, cbTot, cbMatch;\n\n    if (cch1 < cch2)\n        return fcmpLt;\n    if (cch1 > cch2)\n        return fcmpGt;\n\n    cbTot = cch1 * size(achar);\n    cbMatch = CbEqualRgb(prgch1, prgch2, cbTot);\n    AssertIn(cbMatch, 0, cbTot + 1);\n    if (cbTot == cbMatch)\n        return fcmpEq;\n\n    ich = cbMatch / size(achar);\n    Assert(prgch1[ich] != prgch2[ich], 0);\n\n    return prgch1[ich] < prgch2[ich] ? fcmpLt : fcmpGt;\n}\n\n/***************************************************************************\n    User level equality testing of strings.\n***************************************************************************/\nbool FEqualUserRgch(achar *prgch1, long cch1, achar *prgch2, long cch2, ulong grfstn)\n{\n    AssertIn(cch1, 0, kcbMax);\n    AssertPvCb(prgch1, cch1 * size(achar));\n    AssertIn(cch2, 0, kcbMax);\n    AssertPvCb(prgch2, cch2 * size(achar));\n    long cchBuf;\n    achar rgch1[kcchMaxStn];\n    achar rgch2[kcchMaxStn];\n\n    // REVIEW shonk: implement for real\n    if (!(grfstn & fstnIgnoreCase))\n        return cch1 == cch2 && FEqualRgb(prgch1, prgch2, cch1 * size(achar));\n\n    if (cch1 != cch2)\n        return fFalse;\n\n    while (cch1 > 0)\n    {\n        cchBuf = LwMin(kcchMaxStn, cch1);\n        CopyPb(prgch1, rgch1, cchBuf * size(achar));\n        CopyPb(prgch2, rgch2, cchBuf * size(achar));\n#ifdef WIN\n        CharUpperBuff(rgch1, cchBuf);\n        CharUpperBuff(rgch2, cchBuf);\n#else  //! WIN\n        RawRtn(); // REVIEW shonk: Mac: implement\n#endif //! WIN\n        if (!FEqualRgb(rgch1, rgch2, cchBuf * size(achar)))\n            return fFalse;\n        prgch1 += cchBuf;\n        prgch2 += cchBuf;\n        cch1 -= cchBuf;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Do user level string comparison with the given options.\n***************************************************************************/\nulong FcmpCompareUserRgch(achar *prgch1, long cch1, achar *prgch2, long cch2, ulong grfstn)\n{\n    AssertIn(cch1, 0, kcbMax);\n    AssertPvCb(prgch1, cch1 * size(achar));\n    AssertIn(cch2, 0, kcbMax);\n    AssertPvCb(prgch2, cch2 * size(achar));\n\n#ifdef WIN\n    long lw;\n\n    lw =\n        CompareString(LOCALE_USER_DEFAULT, (grfstn & fstnIgnoreCase) ? NORM_IGNORECASE : 0, prgch1, cch1, prgch2, cch2);\n    switch (lw)\n    {\n    case 1:\n        return fcmpLt;\n    case 2:\n        return fcmpEq;\n    case 3:\n        return fcmpGt;\n    default:\n        Bug(\"why did CompareString fail?\");\n        return FcmpCompareRgch(prgch1, cch1, prgch2, cch2);\n    }\n#else  //! WIN\n    RawRtn();     // REVIEW shonk: Mac: implement for real\n    return FcmpCompareRgch(prgch1, cch1, prgch2, cch2);\n#endif //! WIN\n}\n\n/***************************************************************************\n    Map an array of short characters to upper case equivalents.\n***************************************************************************/\nvoid UpperRgchs(schar *prgchs, long cchs)\n{\n    AssertIn(cchs, 0, kcbMax);\n    AssertPvCb(prgchs, cchs);\n    long ichs;\n    static bool _fInited;\n\n    if (!_fInited)\n    {\n        for (ichs = 0; ichs < 256; ichs++)\n            _mpchschsUpper[ichs] = (byte)ichs;\n        MacWin(UppercaseText(_mpchschsUpper, 256, smSystemScript), CharUpperBuffA(_mpchschsUpper, 256));\n        _fInited = fTrue;\n    }\n\n    for (; cchs-- != 0; prgchs++)\n        *prgchs = _mpchschsUpper[(byte)*prgchs];\n}\n\n/***************************************************************************\n    Map an array of characters to lower case equivalents.\n***************************************************************************/\nvoid LowerRgchs(schar *prgchs, long cchs)\n{\n    AssertIn(cchs, 0, kcbMax);\n    AssertPvCb(prgchs, cchs);\n    long ichs;\n    static bool _fInited;\n\n    if (!_fInited)\n    {\n        for (ichs = 0; ichs < 256; ichs++)\n            _mpchschsLower[ichs] = (byte)ichs;\n        MacWin(LowercaseText(_mpchschsLower, 256, smSystemScript), CharLowerBuffA(_mpchschsLower, 256));\n        _fInited = fTrue;\n    }\n\n    for (; cchs-- != 0; prgchs++)\n        *prgchs = _mpchschsLower[(byte)*prgchs];\n}\n\n/***************************************************************************\n    Map an array of unicode characters to upper case equivalents.\n***************************************************************************/\nvoid UpperRgchw(wchar *prgchw, long cchw)\n{\n    AssertIn(cchw, 0, kcbMax);\n    AssertPvCb(prgchw, cchw * size(wchar));\n\n#if defined(WIN)\n#if defined(UNICODE)\n    CharUpperBuffW(prgchw, cchw);\n#else\n    CharUpperBuffA(reinterpret_cast<char *>(prgchw), cchw);\n#endif //! UNICODE\n#else  //! WIN\n    RawRtn(); // REVIEW shonk: Mac: implement UpperRgchw\n#endif //! WIN\n}\n\n/***************************************************************************\n    Map an array of unicode characters to lower case equivalents.\n***************************************************************************/\nvoid LowerRgchw(wchar *prgchw, long cchw)\n{\n    AssertIn(cchw, 0, kcbMax);\n    AssertPvCb(prgchw, cchw * size(wchar));\n\n    AssertIn(cchw, 0, kcbMax);\n    AssertPvCb(prgchw, cchw * size(wchar));\n\n#if defined(WIN)\n#if defined(UNICODE)\n    CharLowerBuffW(prgchw, cchw);\n#else\n    CharLowerBuffA(reinterpret_cast<char *>(prgchw), cchw);\n#endif\n#else  //! WIN\n    RawRtn(); // REVIEW shonk: Mac: implement UpperRgchw\n#endif //! WIN\n}\n\n/***************************************************************************\n    Translate text from the indicated source character set to koskCur.\n***************************************************************************/\nlong CchTranslateRgb(void *pvSrc, long cbSrc, short oskSrc, achar *prgchDst, long cchMaxDst)\n{\n    AssertPvCb(pvSrc, cbSrc);\n    AssertOsk(oskSrc);\n    AssertPvCb(prgchDst, cchMaxDst * size(achar));\n    long cchT;\n\n#ifdef WIN\n#ifdef UNICODE\n\n    switch (oskSrc)\n    {\n    default:\n        return 0;\n\n    case koskSbWin:\n    case koskSbMac:\n        return MultiByteToWideChar(oskSrc == koskSbWin ? CP_ACP : CP_MACCP, MB_PRECOMPOSED, (LPSTR)pvSrc, cbSrc,\n                                   prgchDst, cchMaxDst);\n\n    case koskUniMac:\n        if (cbSrc % size(wchar) != 0)\n            return 0;\n\n        cchT = cbSrc / size(wchar);\n        if (0 == cchMaxDst)\n            return cchT;\n        if (cchT > cchMaxDst)\n            return 0;\n\n        CopyPb(pvSrc, prgchDst, cchT * size(achar));\n        SwapBytesRgsw(prgchDst, cchT);\n        return cchT;\n    }\n\n#else //! UNICODE\n\n    achar *pchSrc, *pchDst;\n\n    switch (oskSrc)\n    {\n    default:\n        return 0;\n\n    case koskSbMac:\n        if (0 == cchMaxDst)\n            return cbSrc;\n        if (cbSrc > cchMaxDst)\n            return 0;\n\n        pchSrc = (achar *)pvSrc;\n        for (pchDst = prgchDst, cchT = cbSrc; cchT > 0; cchT--)\n        {\n            byte bT = (byte)*pchSrc++;\n            if (bT >= (byte)0x80)\n                *pchDst++ = _mpchschsMacToWin[bT - (byte)0x80];\n            else\n                *pchDst++ = (achar)bT;\n        }\n        return cbSrc;\n\n    case koskUniWin:\n    case koskUniMac:\n        if (cbSrc % size(wchar) != 0)\n            return 0;\n\n        // swap byte order\n        if (oskSrc == koskUniMac)\n            SwapBytesRgsw(pvSrc, cbSrc / size(wchar));\n\n        cchT = WideCharToMultiByte(CP_ACP, 0, (LPWSTR)pvSrc, cbSrc / size(wchar), prgchDst, cchMaxDst, pvNil, pvNil);\n\n        if (oskSrc == koskUniMac)\n            SwapBytesRgsw(pvSrc, cbSrc / size(wchar));\n        return cchT;\n    }\n\n#endif //! UNICODE\n#endif // WIN\n\n#ifdef MAC\n#ifdef UNICODE\n\n    long cchDst;\n    schar *pchsSrc;\n    achar *pchDst;\n\n    switch (oskSrc)\n    {\n    default:\n        return 0;\n\n    case koskSbWin:\n        if (0 == cchMaxDst)\n            return cbSrc;\n        if (cbSrc > cchMaxDst)\n            return 0;\n\n        pchsSrc = (schar *)pvSrc;\n        for (pchDst = prgch, cchT = cbSrc; cchT > 0; cchT--)\n            *pchDst++ = (achar)(byte)*pchsSrc++;\n        return cbSrc;\n\n    case koskSbMac:\n        if (0 == cchMaxDst)\n            return cbSrc;\n        if (cbSrc > cchMaxDst)\n            return 0;\n\n        pchsSrc = (schar *)pvSrc;\n        for (pchDst = prgch, cchT = cbSrc; cchT > 0; cchT--)\n            pchsSrc = (schar *)pvSrc;\n        {\n            byte bT = (byte)*pchsSrc++;\n            if (bT >= (byte)0x80)\n                *pchDst++ = (achar)_mpchschsMacToWin[bT - (byte)0x80];\n            else\n                *pchDst++ = (achar)bT;\n        }\n        return cbSrc;\n\n    case koskUniWin:\n        if (cbSrc % size(wchar) != 0)\n            return 0;\n\n        cchT = cbSrc / size(wchar);\n        if (0 == cchMaxDst)\n            return cchT;\n        if (cchT > cchMaxDst)\n            return 0;\n\n        CopyPb(pvSrc, prgchDst, cchT * size(achar));\n        SwapBytesRgsw(prgchDst, cchT);\n        return cchT;\n    }\n\n#else //! UNICODE\n\n    achar *pchSrc, *pchDst;\n\n    switch (oskSrc)\n    {\n    default:\n        return fFalse;\n\n    case koskSbWin:\n        if (0 == cchMaxDst)\n            return cbSrc;\n        if (cbSrc > cchMaxDst)\n            return 0;\n\n        pchSrc = (achar *)pvSrc;\n        for (pchDst = prgchDst, cchT = cbSrc; cchT > 0; cchT--)\n        {\n            byte bT = (byte)*pchSrc++;\n            if (bT >= (byte)0x80)\n                *pchDst++ = _mpchschsWinToMac[bT - (byte)0x80];\n            else\n                *pchDst++ = (achar)bT;\n        }\n        return cbSrc;\n\n    case koskUniWin:\n    case koskUniMac:\n        RawRtn(); // REVIEW shonk: Mac: implement koskUniWin, koskUniMac -> koskSbMac\n        return 0;\n    }\n\n#endif //! UNICODE\n#endif // MAC\n}\n\n/***************************************************************************\n    Translates a string between the current platform and another.  If fToCur\n    is true, the translation is from osk to koskCur, otherwise from koskCur\n    to osk.\n***************************************************************************/\nvoid TranslateRgch(achar *prgch, long cch, short osk, bool fToCur)\n{\n    AssertPvCb(prgch, cch);\n    AssertOsk(osk);\n    Assert(osk == koskMac || osk == koskWin, \"TranslateRgch can't handle this osk\");\n\n    if (koskCur == osk)\n        return;\n\n#ifdef UNICODE\n    // for unicode, we just have to change the byte ordering\n    SwapBytesRgsw(prgch, cch);\n#else  //! UNICODE\n    auto pmpchschs = MacWin(!fToCur, fToCur) ? _mpchschsMacToWin : _mpchschsWinToMac;\n\n    for (; cch > 0; cch--, prgch++)\n    {\n        if ((byte)*prgch >= (byte)0x80)\n            *prgch = pmpchschs[(byte)*prgch - (byte)0x80];\n    }\n#endif //! UNICODE\n}\n\n/***************************************************************************\n    Return the type of the character.\n    This must follow these implications:\n        fchBreak -> fchMayBreak\n        fchBreak -> fchControl\n        fchIgnore -> fchControl\n\n    REVIEW shonk: make GrfchFromCh handle all unicode characters.\n***************************************************************************/\nulong GrfchFromCh(achar ch)\n{\n    switch ((uchar)ch)\n    {\n    case kchReturn:\n        return fchBreak | fchMayBreak | fchControl;\n\n    case kchLineFeed:\n        return fchIgnore | fchControl;\n\n    case kchTab:\n        return fchTab | fchMayBreak | fchControl;\n\n    case kchSpace:\n        return fchWhiteOverhang | fchMayBreak;\n\n#ifdef REVIEW // shonk: implement correctly once we get the tables from MSKK.\n#ifdef UNICODE\n    // REVIEW shonk: others? 148\n    case (uchar)',':\n    case (uchar)'.':\n    case (uchar)')':\n    case (uchar)']':\n    case (uchar)'}':\n    case (uchar)':':\n    case (uchar)';':\n    case (uchar)'?':\n    case (uchar)'!':\n    case (uchar)'.':\n    case (uchar)',':\n        return fchTestBreak;\n#endif // UNICODE\n#endif // REVIEW\n\n    case 0x7F:\n        return fchControl;\n\n    default:\n        if ((uchar)ch < kchSpace)\n            return fchControl;\n\n        return fchNil;\n    }\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Validate an osk.\n***************************************************************************/\nvoid AssertOsk(short osk)\n{\n    switch (osk)\n    {\n    case koskSbMac:\n    case koskSbWin:\n    case koskUniMac:\n    case koskUniWin:\n        break;\n    default:\n        BugVar(\"bad osk\", &osk);\n    }\n}\n\n/***************************************************************************\n    Check the validity of an st (make sure no zeros are in it).\n***************************************************************************/\nvoid AssertSt(PST pst)\n{\n    Assert(FValidSt(pst), \"bad st\");\n}\n\n/***************************************************************************\n    Check the validity of an stz.\n***************************************************************************/\nvoid AssertStz(PSTZ pstz)\n{\n    Assert(FValidStz(pstz), \"bad stz\");\n}\n\n/***************************************************************************\n    Make sure the sz isn't too long.\n***************************************************************************/\nvoid AssertSz(PSZ psz)\n{\n    // CchSz does all the asserting we need\n    long cch = CchSz(psz);\n}\n\n/***************************************************************************\n    Check the validity of an st, nil is allowed.\n***************************************************************************/\nvoid AssertNilOrSt(PST pst)\n{\n    if (pst != pvNil)\n        AssertSt(pst);\n}\n\n/***************************************************************************\n    Check the validity of an stz, nil is allowed.\n***************************************************************************/\nvoid AssertNilOrStz(PSTZ pstz)\n{\n    if (pstz != pvNil)\n        AssertStz(pstz);\n}\n\n/***************************************************************************\n    Check the validity of an sz, nil is allowed.\n***************************************************************************/\nvoid AssertNilOrSz(PSZ psz)\n{\n    if (psz != pvNil)\n        AssertSz(psz);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/utilstr.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Reviewed:\n    Copyright (c) Microsoft Corporation\n\n    String manipulation declarations.\n\n    We use four types of strings: stn, stz, st, sz.  Unless there's good reason\n    not to, all code should use stn's.\n\n    sz - zero terminated (standard C) string.\n    st - length byte prefixed (standard Pascal) string.\n    stz - zero terminated and length prefixed string.\n    stn - string class.\n\n***************************************************************************/\n#ifndef UTILSTR_H\n#define UTILSTR_H\n\n/***************************************************************************\n    OS kind for string translation - these should always have their high\n    and low bytes equal.\n***************************************************************************/\nconst short oskNil = 0; // signifies unknown\nconst short koskSbMac = 0x0202;\nconst short koskSbWin = 0x0303;\nconst short koskUniMac = 0x0404; // big endian unicode\nconst short koskUniWin = 0x0505; // little endian unicode\n\n#ifdef UNICODE\nconst short koskMac = koskUniMac;\nconst short koskWin = koskUniWin;\n#else  //! UNICODE\nconst short koskMac = koskSbMac;\nconst short koskWin = koskSbWin;\n#endif //! UNICODE\nconst short koskCur = MacWin(koskMac, koskWin);\nconst short koskSb = MacWin(koskSbMac, koskSbWin);\nconst short koskUni = MacWin(koskUniMac, koskUniWin);\n\n#ifdef DEBUG\nvoid AssertOsk(short osk);\n#else //! DEBUG\n#define AssertOsk(osk)\n#endif //! DEBUG\n\n/***************************************************************************\n    Return the number of bytes a character occupies in the given osk.\n***************************************************************************/\ninline long CbCharOsk(short osk)\n{\n    switch (osk)\n    {\n    case koskSbMac:\n    case koskSbWin:\n        return size(schar);\n\n    case koskUniMac:\n    case koskUniWin:\n        return size(wchar);\n\n    default:\n        return 0;\n    }\n}\n\n/***************************************************************************\n    Constants\n***************************************************************************/\nconst achar chNil = ChLit('\\x0');\nconst achar kchReturn = ChLit('\\xD');\nconst achar kchLineFeed = ChLit('\\xA');\nconst achar kchTab = ChLit('\\x9');\nconst achar kchSpace = ChLit(' ');\nconst wchar kchwUnicode = 0xFEFF;\nconst wchar kchwUnicodeSwap = 0xFFFE;\n\nconst long kcchMaxSz = 255;\nconst long kcchMaxSt = 255;\nconst long kcchMaxStz = 255;\nconst long kcchExtraSz = 1;\nconst long kcchExtraSt = 1;\nconst long kcchExtraStz = 2;\nconst long kcchTotSz = kcchMaxSz + kcchExtraSz;\nconst long kcchTotSt = kcchMaxSt + kcchExtraSt;\nconst long kcchTotStz = kcchMaxStz + kcchExtraStz;\n\nconst long kcchMaxStn = 255;\nconst long kcbMaxDataStn = kcchTotStz * size(wchar) + size(short);\n\nenum\n{\n    fstnNil = 0,\n    fstnIgnoreCase,\n};\n\n/***************************************************************************\n    String types\n***************************************************************************/\ntypedef achar *PSZ;\ntypedef achar *PST;\ntypedef achar *PSTZ;\ntypedef achar SZ[kcchTotSz];\ntypedef achar ST[kcchTotSt];\ntypedef achar STZ[kcchTotStz];\ntypedef schar *PSZS;\ntypedef schar SZS[kcchTotSz];\n\n/***************************************************************************\n    String related asserts\n***************************************************************************/\n#ifdef DEBUG\nvoid AssertRgch(achar *prgch, long cch);\nvoid AssertStz(PSTZ pstz);\nvoid AssertSt(PST pst);\nvoid AssertSz(PSZ psz);\nvoid AssertNilOrSz(PSZ psz);\n#else\n#define AssertRgch(prgch, cch)\n#define AssertStz(pstz)\n#define AssertSt(pst)\n#define AssertSz(psz)\n#define AssertNilOrSz(psz)\n#endif\n\n/***************************************************************************\n    Testing validity of an stz or st\n***************************************************************************/\nbool FValidStz(PSTZ pstz);\nbool FValidSt(PST pst);\n\n/***************************************************************************\n    Cch means the number of characters (not including prefix and termination\n    bytes) and CchTot means the total number of characters including\n    overhead.\n***************************************************************************/\nlong CchSz(PSZ psz);\ninline long CchTotSz(PSZ psz)\n{\n    return CchSz(psz) + kcchExtraSz;\n}\ninline long CchSt(PST pst)\n{\n    AssertSt(pst);\n    return (long)(byte)pst[0];\n}\ninline long CchTotSt(PST pst)\n{\n    AssertSt(pst);\n    return (long)(byte)pst[0] + kcchExtraSt;\n}\ninline long CchStz(PSTZ pstz)\n{\n    AssertStz(pstz);\n    return (long)(byte)pstz[0];\n}\ninline long CchTotStz(PSTZ pstz)\n{\n    AssertStz(pstz);\n    return (long)(byte)pstz[0] + kcchExtraStz;\n}\n\ninline achar *PrgchSt(PST pst)\n{\n    return pst + 1;\n}\ninline PSZ PszStz(PSTZ pstz)\n{\n    return pstz + 1;\n}\n\n/***************************************************************************\n    Byte-wise comparison and sorting.\n    WARNING: these don't do normal UI level compares they do byte-wise\n    comparison, including any length and/or terminating bytes and should\n    be used only for internal sorting (for binary search etc).\n***************************************************************************/\nbool FEqualRgch(achar *prgch1, long cch1, achar *prgch2, long cch2);\nulong FcmpCompareRgch(achar *prgch1, long cch1, achar *prgch2, long cch2);\n\n/***************************************************************************\n    User level (case insensitive, locale aware) comparison and sorting.\n***************************************************************************/\nbool FEqualUserRgch(achar *prgch1, long cch1, achar *prgch2, long cch2, ulong grfstn = fstnIgnoreCase);\nulong FcmpCompareUserRgch(achar *prgch1, long cch1, achar *prgch2, long cch2, ulong grfstn = fstnIgnoreCase);\n\n/***************************************************************************\n    Upper and lower case utilies\n***************************************************************************/\nvoid UpperRgchs(schar *prgchs, long cchs);\nvoid LowerRgchs(schar *prgchs, long cchs);\ninline schar ChsUpper(schar chs)\n{\n    UpperRgchs(&chs, 1);\n    return chs;\n}\ninline schar ChsLower(schar chs)\n{\n    LowerRgchs(&chs, 1);\n    return chs;\n}\nvoid UpperRgchw(wchar *prgchw, long cchw);\nvoid LowerRgchw(wchar *prgchw, long cchw);\ninline wchar ChwUpper(wchar chw)\n{\n    UpperRgchw(&chw, 1);\n    return chw;\n}\ninline wchar ChwLower(wchar chw)\n{\n    LowerRgchw(&chw, 1);\n    return chw;\n}\n\n#ifdef UNICODE\ninline void UpperRgch(achar *prgch, long cch)\n{\n    UpperRgchw(prgch, cch);\n}\ninline void LowerRgch(achar *prgch, long cch)\n{\n    LowerRgchw(prgch, cch);\n}\ninline achar ChUpper(achar ch)\n{\n    UpperRgchw(&ch, 1);\n    return ch;\n}\ninline achar ChLower(achar ch)\n{\n    LowerRgchw(&ch, 1);\n    return ch;\n}\n#else  //! UNICODE\ninline void UpperRgch(achar *prgch, long cch)\n{\n    UpperRgchs(prgch, cch);\n}\ninline void LowerRgch(achar *prgch, long cch)\n{\n    LowerRgchs(prgch, cch);\n}\ninline achar ChUpper(achar ch)\n{\n    UpperRgchs(&ch, 1);\n    return ch;\n}\ninline achar ChLower(achar ch)\n{\n    LowerRgchs(&ch, 1);\n    return ch;\n}\n#endif //! UNICODE\n\n/***************************************************************************\n    Translation from one OS to another (eg, Win to Mac, single byte to\n    unicode, etc).\n***************************************************************************/\nlong CchTranslateRgb(void *pvSrc, long cbSrc, short oskSrc, achar *prgchDst, long cchMaxDst);\n\n/***************************************************************************\n    These APIs assert if osk specifies a different sized character than\n    koskCur uses.\n***************************************************************************/\nvoid TranslateRgch(achar *prgch, long cch, short osk, bool fToCur = fTrue);\ninline void TranslateSt(PST pst, short osk, bool fToCur = fTrue)\n{\n    TranslateRgch(pst + 1, CchSt(pst), osk, fToCur);\n}\ninline void TranslateStz(PSTZ pstz, short osk, bool fToCur = fTrue)\n{\n    TranslateRgch(pstz + 1, CchStz(pstz), osk, fToCur);\n}\ninline void TranslateSz(PSZ psz, short osk, bool fToCur = fTrue)\n{\n    TranslateRgch(psz, CchSz(psz), osk, fToCur);\n}\n\n/***************************************************************************\n    Testing for type of character.\n***************************************************************************/\nenum\n{\n    fchNil = 0x00,\n\n    // can overhang the end of a line and doesn't need to be draw\n    fchWhiteOverhang = 0x01,\n\n    // should break a line\n    fchBreak = 0x02,\n\n    // may break a line\n    fchMayBreak = 0x04,\n\n    // should be totally ignored (and not draw)\n    fchIgnore = 0x08,\n\n    // some sort of control character\n    fchControl = 0x10,\n\n    // a tab character\n    fchTab = 0x20,\n};\n\nulong GrfchFromCh(achar ch);\n\n/***************************************************************************\n    The hexadecimal digits 0 - 9, A - F.\n***************************************************************************/\nextern const achar vrgchHex[];\n\n/***************************************************************************\n    General string class.\n***************************************************************************/\ntypedef class STN *PSTN;\nclass STN\n{\n    ASSERT\n\n  private:\n    achar _rgch[kcchMaxStn + 2];\n\n  public:\n    STN(void)\n    {\n        _rgch[0] = _rgch[1] = 0;\n        AssertThis(0);\n    }\n    STN(STN &stnSrc);\n    STN(PSZ pszSrc);\n\n    // pointers to the data - these should be considered readonly!\n    achar *Prgch(void)\n    {\n        AssertThis(0);\n        return _rgch + 1;\n    }\n    PSZ Psz(void)\n    {\n        AssertThis(0);\n        return _rgch + 1;\n    }\n    PST Pst(void)\n    {\n        AssertThis(0);\n        return _rgch;\n    }\n    PSTZ Pstz(void)\n    {\n        AssertThis(0);\n        return _rgch;\n    }\n    long Cch(void)\n    {\n        AssertThis(0);\n        return (uchar)_rgch[0];\n    }\n\n    // setting the string\n    void SetNil(void)\n    {\n        AssertThis(0);\n        _rgch[0] = _rgch[1] = 0;\n    }\n    void SetRgch(achar *prgchSrc, long cch);\n    void SetSz(PSZ pszSrc)\n    {\n        SetRgch(pszSrc, CchSz(pszSrc));\n    }\n    void SetSt(PST pstSrc)\n    {\n        SetRgch(PrgchSt(pstSrc), CchSt(pstSrc));\n    }\n    void SetStz(PSTZ pstzSrc)\n    {\n        SetRgch(PszStz(pstzSrc), CchStz(pstzSrc));\n    }\n    void SetSzs(PSZS pszsSrc);\n\n    // assignment operators\n    STN &operator=(STN &stnSrc);\n    STN &operator=(PSZ pszSrc)\n    {\n        SetSz(pszSrc);\n        return *this;\n    }\n\n    // getting the string into a buffer\n    void GetRgch(achar *prgchDst)\n    {\n        AssertThis(0);\n        CopyPb(Prgch(), prgchDst, Cch() * size(achar));\n    }\n    void GetSz(PSZ pszDst)\n    {\n        AssertThis(0);\n        CopyPb(Psz(), pszDst, (Cch() + kcchExtraSz) * size(achar));\n    }\n    void GetSt(PST pstDst)\n    {\n        AssertThis(0);\n        CopyPb(Pst(), pstDst, (Cch() + kcchExtraSt) * size(achar));\n    }\n    void GetStz(PSTZ pstzDst)\n    {\n        AssertThis(0);\n        CopyPb(Pstz(), pstzDst, (Cch() + kcchExtraStz) * size(achar));\n    }\n    void GetSzs(PSZS pszs);\n\n    // modifying the string\n    void Delete(long ich, long cch = kcchMaxStn);\n    bool FAppendRgch(achar *prgchSrc, long cch);\n    bool FAppendCh(achar chSrc)\n    {\n        return FAppendRgch(&chSrc, 1);\n    }\n    bool FAppendSz(achar *pszSrc)\n    {\n        return FAppendRgch(pszSrc, CchSz(pszSrc));\n    }\n    bool FAppendStn(PSTN pstnSrc)\n    {\n        return FAppendRgch(pstnSrc->Prgch(), pstnSrc->Cch());\n    }\n    bool FInsertRgch(long ich, achar *prgchSrc, long cch);\n    bool FInsertCh(long ich, achar chSrc)\n    {\n        return FInsertRgch(ich, &chSrc, 1);\n    }\n    bool FInsertStn(long ich, PSTN pstnSrc)\n    {\n        return FInsertRgch(ich, pstnSrc->Prgch(), pstnSrc->Cch());\n    }\n\n    // for testing equality\n    bool FEqualRgch(achar *prgch, long cch);\n    bool FEqualSz(PSZ psz)\n    {\n        return FEqualRgch(psz, CchSz(psz));\n    }\n    bool FEqual(PSTN pstn)\n    {\n        return FEqualRgch(pstn->Prgch(), pstn->Cch());\n    }\n    bool FEqualUserRgch(achar *prgch, long cch, ulong grfstn = fstnIgnoreCase);\n    bool FEqualUserSz(PSZ psz, ulong grfstn = fstnIgnoreCase)\n    {\n        return FEqualUserRgch(psz, CchSz(psz), grfstn);\n    }\n    bool FEqualUser(PSTN pstn, ulong grfstn = fstnIgnoreCase)\n    {\n        return FEqualUserRgch(pstn->Prgch(), pstn->Cch(), grfstn);\n    }\n\n    // for sorting\n    ulong FcmpCompare(PSTN pstn)\n    {\n        return ::FcmpCompareRgch(Prgch(), Cch(), pstn->Prgch(), pstn->Cch());\n    }\n    ulong FcmpCompareUser(PSTN pstn, ulong grfstn = fstnIgnoreCase)\n    {\n        return ::FcmpCompareUserRgch(Prgch(), Cch(), pstn->Prgch(), pstn->Cch(), grfstn);\n    }\n\n    // storing and retrieving strings to other buffers (or file).\n    long CbData(void);\n    void GetData(void *pv);\n    bool FSetData(void *pv, long cbMax, long *pcbRead = pvNil);\n    bool FWrite(PBLCK pblck, long ib);\n    bool FRead(PBLCK pblck, long ib, long *pcbRead = pvNil);\n\n    bool FFormat(PSTN pstnFormat, ...);\n    bool FFormatSz(PSZ pszFormat, ...);\n    bool FFormatRgch(achar *prgchFormat, long cchFormat, ulong *prgluData);\n    bool FGetLw(long *plw, long lwBase = 0);\n    bool FExpandControls(void);\n};\n\n#endif // UTILSTR_H\n"
  },
  {
    "path": "kauai/src/video.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Graphical video object implementation.\n\n***************************************************************************/\n#include \"frame.h\"\n#ifdef WIN\n#include \"mciavi.h\"\n#endif // WIN\nASSERTNAME\n\nRTCLASS(GVID)\nRTCLASS(GVDS)\nRTCLASS(GVDW)\n\nBEGIN_CMD_MAP_BASE(GVDS)\nEND_CMD_MAP(&GVDS::FCmdAll, pvNil, kgrfcmmAll)\n\nconst long kcmhlGvds = kswMin; // put videos at the head of the list\n\n/***************************************************************************\n    Create a video - either an HWND based one, or just a video stream,\n    depending on fHwndBased. pgobBase is assumed to be valid for the life\n    of the video.\n***************************************************************************/\nPGVID GVID::PgvidNew(PFNI pfni, PGOB pgobBase, bool fHwndBased, long hid)\n{\n    AssertPo(pfni, ffniFile);\n    AssertPo(pgobBase, 0);\n\n    if (fHwndBased)\n        return GVDW::PgvdwNew(pfni, pgobBase, hid);\n    return GVDS::PgvdsNew(pfni, pgobBase, hid);\n}\n\n/***************************************************************************\n    Constructor for a generic video.\n***************************************************************************/\nGVID::GVID(long hid) : GVID_PAR(hid)\n{\n    AssertBaseThis(0);\n}\n\n/***************************************************************************\n    Constructor for video stream class.\n***************************************************************************/\nGVDS::GVDS(long hid) : GVDS_PAR(hid)\n{\n    AssertBaseThis(0);\n\n#ifdef WIN\n    AVIFileInit();\n#endif // WIN\n}\n\n/***************************************************************************\n    Destructor for video stream class.\n***************************************************************************/\nGVDS::~GVDS(void)\n{\n    AssertBaseThis(0);\n\n#ifdef WIN\n    if (hNil != _hdd)\n        DrawDibClose(_hdd);\n    if (pvNil != _pavig)\n        AVIStreamGetFrameClose(_pavig);\n    if (pvNil != _pavis)\n        AVIStreamRelease(_pavis);\n    if (pvNil != _pavif)\n        AVIFileRelease(_pavif);\n\n    AVIFileExit();\n#endif // WIN\n}\n\n/***************************************************************************\n    Initialize a video stream object.\n***************************************************************************/\nbool GVDS::_FInit(PFNI pfni, PGOB pgobBase)\n{\n    AssertBaseThis(0);\n    AssertPo(pfni, ffniFile);\n    AssertPo(pgobBase, 0);\n\n#ifdef WIN\n    STN stn;\n    AVIFILEINFO afi;\n\n    _pgobBase = pgobBase;\n    pfni->GetStnPath(&stn);\n    if (0 != AVIFileOpen(&_pavif, stn.Psz(), OF_READ | OF_SHARE_DENY_WRITE, pvNil))\n    {\n        _pavif = pvNil;\n        goto LFail;\n    }\n\n    if (0 != AVIFileGetStream(_pavif, &_pavis, streamtypeVIDEO, 0))\n    {\n        _pavis = pvNil;\n        goto LFail;\n    }\n\n    if (pvNil == (_pavig = AVIStreamGetFrameOpen(_pavis, pvNil)))\n        goto LFail;\n\n    if (0 != AVIFileInfo(_pavif, &afi, size(afi)))\n        goto LFail;\n\n    _dxp = afi.dwWidth;\n    _dyp = afi.dwHeight;\n\n    if (0 > (_nfrMac = AVIStreamLength(_pavis)))\n        goto LFail;\n\n    if (0 > (_dnfr = AVIStreamStart(_pavis)))\n        goto LFail;\n\n    if (hNil == (_hdd = DrawDibOpen()))\n    {\n    LFail:\n        PushErc(ercCantOpenVideo);\n        return fFalse;\n    }\n    _nfrCur = 0;\n    _nfrMarked = -1;\n    return fTrue;\n#else  //! WIN\n    RawRtn();\n    return fFalse;\n#endif //! WIN\n}\n\n/***************************************************************************\n    Create a new video stream object.\n***************************************************************************/\nPGVDS GVDS::PgvdsNew(PFNI pfni, PGOB pgobBase, long hid)\n{\n    AssertPo(pfni, ffniFile);\n    PGVDS pgvds;\n\n    if (hid == hidNil)\n        hid = CMH::HidUnique();\n\n    if (pvNil == (pgvds = NewObj GVDS(hid)))\n        return pvNil;\n\n    if (!pgvds->_FInit(pfni, pgobBase))\n    {\n        ReleasePpo(&pgvds);\n        return pvNil;\n    }\n\n    return pgvds;\n}\n\n/***************************************************************************\n    Return the number of frames in the video.\n***************************************************************************/\nlong GVDS::NfrMac(void)\n{\n    AssertThis(0);\n    return _nfrMac;\n}\n\n/***************************************************************************\n    Return the current frame of the video.\n***************************************************************************/\nlong GVDS::NfrCur(void)\n{\n    AssertThis(0);\n    return _nfrCur;\n}\n\n/***************************************************************************\n    Advance to a particular frame.  If we are playing, stop playing.  This\n    only changes internal state and doesn't mark anything.\n***************************************************************************/\nvoid GVDS::GotoNfr(long nfr)\n{\n    AssertThis(0);\n    AssertIn(nfr, 0, _nfrMac);\n\n    Stop();\n    _nfrCur = nfr;\n}\n\n/***************************************************************************\n    Return whether or not the video is playing.\n***************************************************************************/\nbool GVDS::FPlaying(void)\n{\n    AssertThis(0);\n    return _fPlaying;\n}\n\n/***************************************************************************\n    Start playing at the current frame.  This assumes the gob is valid\n    until the video is stopped or nuked.  The gob should call this video's\n    Draw method in its Draw method.\n***************************************************************************/\nbool GVDS::FPlay(RC *prc)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prc);\n\n    Stop();\n    if (!vpcex->FAddCmh(this, kcmhlGvds, kgrfcmmAll))\n        return fFalse;\n\n    SetRcPlay(prc);\n    _fPlaying = fTrue;\n\n#ifdef WIN\n    _tsPlay = TsCurrent() - AVIStreamSampleToTime(_pavis, _nfrCur + _dnfr);\n#endif // WIN\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the rectangle to play into.\n***************************************************************************/\nvoid GVDS::SetRcPlay(RC *prc)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prc);\n\n    if (pvNil == prc)\n        _rcPlay.Set(0, 0, _dxp, _dyp);\n    else\n        _rcPlay = *prc;\n}\n\n/***************************************************************************\n    Stop playing.\n***************************************************************************/\nvoid GVDS::Stop(void)\n{\n    AssertThis(0);\n\n    vpcex->RemoveCmh(this, kcmhlGvds);\n    _fPlaying = fFalse;\n}\n\n/***************************************************************************\n    Intercepts all commands, so we get to play our movie no matter what.\n***************************************************************************/\nbool GVDS::FCmdAll(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (!_fPlaying)\n    {\n        Stop();\n        return fFalse;\n    }\n\n    // update _nfrCur\n#ifdef WIN\n    _nfrCur = AVIStreamTimeToSample(_pavis, TsCurrent() - _tsPlay) - _dnfr;\n    if (_nfrCur >= _nfrMac)\n        _nfrCur = _nfrMac - 1;\n    else if (_nfrCur < 0)\n        _nfrCur = 0;\n#endif // WIN\n\n    if (_nfrCur != _nfrMarked)\n    {\n        _pgobBase->InvalRc(&_rcPlay, kginMark);\n        _nfrMarked = _nfrCur;\n    }\n    if (_nfrCur >= _nfrMac - 1)\n        Stop();\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Call this to draw the current state of the video image.\n***************************************************************************/\nvoid GVDS::Draw(PGNV pgnv, RC *prc)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prc);\n    RC rc;\n\n#ifdef WIN\n    BITMAPINFOHEADER *pbi;\n\n    if (pvNil == (pbi = (BITMAPINFOHEADER *)AVIStreamGetFrame(_pavig, _nfrCur + _dnfr)))\n    {\n        return;\n    }\n\n    pgnv->DrawDib(_hdd, pbi, prc);\n#endif // WIN\n}\n\n/***************************************************************************\n    Get the normal rectangle for the movie (top-left at (0, 0)).\n***************************************************************************/\nvoid GVDS::GetRc(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n\n    prc->Set(0, 0, _dxp, _dyp);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a GVDS.\n***************************************************************************/\nvoid GVDS::AssertValid(ulong grf)\n{\n    GVDS_PAR::AssertValid(0);\n    AssertPo(_pgobBase, 0);\n    // REVIEW shonk: fill in GVDS::AssertValid\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Create a new video window.\n***************************************************************************/\nPGVDW GVDW::PgvdwNew(PFNI pfni, PGOB pgobBase, long hid)\n{\n    AssertPo(pfni, ffniFile);\n    PGVDW pgvdw;\n\n    if (hid == hidNil)\n        hid = CMH::HidUnique();\n\n    if (pvNil == (pgvdw = NewObj GVDW(hid)))\n        return pvNil;\n\n    if (!pgvdw->_FInit(pfni, pgobBase))\n    {\n        ReleasePpo(&pgvdw);\n        return pvNil;\n    }\n\n    return pgvdw;\n}\n\n/***************************************************************************\n    Constructor for a video window.\n***************************************************************************/\nGVDW::GVDW(long hid) : GVDW_PAR(hid)\n{\n    AssertBaseThis(0);\n}\n\n/***************************************************************************\n    Destructor for a video window.\n***************************************************************************/\nGVDW::~GVDW(void)\n{\n    AssertBaseThis(0);\n\n#ifdef WIN\n    if (_fDeviceOpen)\n    {\n        MCI_GENERIC_PARMS mci;\n        PSNDV psndv;\n\n        mciSendCommand(_lwDevice, MCI_CLOSE, MCI_WAIT, (long)&mci);\n        if (pvNil != vpsndm && pvNil != (psndv = vpsndm->PsndvFromCtg(kctgWave)))\n        {\n            psndv->Suspend(fFalse);\n        }\n    }\n#endif // WIN\n}\n\n/***************************************************************************\n    Initialize the GVDW.\n***************************************************************************/\nbool GVDW::_FInit(PFNI pfni, PGOB pgobBase)\n{\n    AssertPo(pfni, ffniFile);\n    AssertPo(pgobBase, 0);\n\n    _pgobBase = pgobBase;\n\n#ifdef WIN\n    MCI_ANIM_OPEN_PARMS mciOpen;\n    MCI_STATUS_PARMS mciStatus;\n    MCI_ANIM_RECT_PARMS mciRect;\n    STN stn;\n    PSNDV psndv;\n\n    pfni->GetStnPath(&stn);\n\n    ClearPb(&mciOpen, size(mciOpen));\n    mciOpen.lpstrDeviceType = PszLit(\"avivideo\");\n    mciOpen.lpstrElementName = stn.Psz();\n    mciOpen.dwStyle = WS_CHILD | WS_CLIPSIBLINGS | WS_DISABLED;\n    mciOpen.hWndParent = _pgobBase->HwndContainer();\n    if (0 != mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE | MCI_OPEN_ELEMENT | MCI_ANIM_OPEN_PARENT | MCI_ANIM_OPEN_WS,\n                            (long)&mciOpen))\n    {\n        goto LFail;\n    }\n    _lwDevice = mciOpen.wDeviceID;\n    _fDeviceOpen = fTrue;\n    if (pvNil != vpsndm && pvNil != (psndv = vpsndm->PsndvFromCtg(kctgWave)))\n    {\n        psndv->Suspend(fTrue);\n    }\n\n    // get the hwnd\n    ClearPb(&mciStatus, size(mciStatus));\n    // REVIEW shonk: mmsystem.h defines MCI_ANIM_STATUS_HWND as 0x00004003,\n    // which doesn't give us the hwnd. 4001 does!\n    mciStatus.dwItem = 0x00004001;\n    if (0 != mciSendCommand(_lwDevice, MCI_STATUS, MCI_STATUS_ITEM, (long)&mciStatus))\n    {\n        goto LFail;\n    }\n    _hwndMovie = (HWND)mciStatus.dwReturn;\n\n    // get the length\n    ClearPb(&mciStatus, size(mciStatus));\n    mciStatus.dwItem = MCI_STATUS_LENGTH;\n    mciStatus.dwTrack = 1;\n    if (0 != mciSendCommand(_lwDevice, MCI_STATUS, MCI_STATUS_ITEM, (long)&mciStatus))\n    {\n        goto LFail;\n    }\n    _nfrMac = mciStatus.dwReturn;\n\n    // get the rectangle\n    if (0 != mciSendCommand(_lwDevice, MCI_WHERE, MCI_ANIM_WHERE_SOURCE, (long)&mciRect))\n    {\n        goto LFail;\n    }\n    _rcPlay = (RC)mciRect.rc;\n    _dxp = _rcPlay.Dxp();\n    _dyp = _rcPlay.Dyp();\n\n    mciSendCommand(_lwDevice, MCI_REALIZE, MCI_ANIM_REALIZE_BKGD, 0);\n    _cactPal = vcactRealize;\n\n    return fTrue;\n\nLFail:\n#endif // WIN\n\n#ifdef MAC\n    RawRtn(); // REVIEW shonk: Mac: implement GVDW::_FInit\n#endif        // MAC\n\n    PushErc(ercCantOpenVideo);\n    return fFalse;\n}\n\n/***************************************************************************\n    Return the number of frames in the video.\n***************************************************************************/\nlong GVDW::NfrMac(void)\n{\n    AssertThis(0);\n\n    return _nfrMac;\n}\n\n/***************************************************************************\n    Return the current frame of the video.\n***************************************************************************/\nlong GVDW::NfrCur(void)\n{\n    AssertThis(0);\n\n#ifdef WIN\n    MCI_STATUS_PARMS mciStatus;\n\n    // get the position\n    ClearPb(&mciStatus, size(mciStatus));\n    mciStatus.dwItem = MCI_STATUS_POSITION;\n    mciStatus.dwTrack = 1;\n    if (0 != mciSendCommand(_lwDevice, MCI_STATUS, MCI_STATUS_ITEM, (long)&mciStatus))\n    {\n        Warn(\"getting position failed\");\n        return 0;\n    }\n    return mciStatus.dwReturn;\n#endif // WIN\n\n#ifdef MAC\n    RawRtn(); // REVIEW shonk: Mac: implement GVDW::NfrCur\n    return 0;\n#endif // MAC\n}\n\n/***************************************************************************\n    Advance to a particular frame.  If we are playing, stop playing.  This\n    only changes internal state and doesn't mark anything.\n***************************************************************************/\nvoid GVDW::GotoNfr(long nfr)\n{\n    AssertThis(0);\n    AssertIn(nfr, 0, _nfrMac);\n\n#ifdef WIN\n    MCI_SEEK_PARMS mciSeek;\n\n    ClearPb(&mciSeek, size(mciSeek));\n    mciSeek.dwTo = nfr;\n    if (0 != mciSendCommand(_lwDevice, MCI_SEEK, MCI_TO, (long)&mciSeek))\n    {\n        Warn(\"seeking failed\");\n    }\n#endif // WIN\n\n#ifdef MAC\n    RawRtn(); // REVIEW shonk: Mac: implement GVDW::GotoNfr\n#endif        // MAC\n}\n\n/***************************************************************************\n    Return whether or not the video is playing.\n***************************************************************************/\nbool GVDW::FPlaying(void)\n{\n    AssertThis(0);\n\n    if (!_fPlaying)\n        return fFalse;\n\n#ifdef WIN\n    MCI_STATUS_PARMS mciStatus;\n\n    // get the mode\n    ClearPb(&mciStatus, size(mciStatus));\n    mciStatus.dwItem = MCI_STATUS_MODE;\n    mciStatus.dwTrack = 1;\n    if (0 == mciSendCommand(_lwDevice, MCI_STATUS, MCI_STATUS_ITEM, (long)&mciStatus) &&\n        (MCI_MODE_STOP == mciStatus.dwReturn || MCI_MODE_PAUSE == mciStatus.dwReturn))\n    {\n        _fPlaying = fFalse;\n    }\n#endif // WIN\n\n#ifdef MAC\n    RawRtn(); // REVIEW shonk: Mac: implement GVDW::NfrCur\n#endif        // MAC\n\n    return _fPlaying;\n}\n\n/***************************************************************************\n    Start playing at the current frame.  This assumes the gob is valid\n    until the video is stopped or nuked.  The gob should call this video's\n    Draw method in its Draw method.\n***************************************************************************/\nbool GVDW::FPlay(RC *prc)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prc);\n\n    Stop();\n\n#ifdef WIN\n    MCI_ANIM_PLAY_PARMS mciPlay;\n\n    // get the play rectangle\n    SetRcPlay(prc);\n\n    // position the hwnd\n    _SetRc();\n\n    // start the movie playing\n    ClearPb(&mciPlay, size(mciPlay));\n    if (0 != mciSendCommand(_lwDevice, MCI_PLAY, MCI_MCIAVI_PLAY_WINDOW, (long)&mciPlay))\n    {\n        return fFalse;\n    }\n    _fPlaying = fTrue;\n\n    return fTrue;\n#endif // WIN\n\n#ifdef MAC\n    RawRtn(); // REVIEW shonk: Mac: implement GVDW::NfrCur\n    return fFalse;\n#endif // MAC\n}\n\n/***************************************************************************\n    Set the rectangle to play into.\n***************************************************************************/\nvoid GVDW::SetRcPlay(RC *prc)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(prc);\n\n    if (pvNil == prc)\n        _rcPlay.Set(0, 0, _dxp, _dyp);\n    else\n        _rcPlay = *prc;\n}\n\n/***************************************************************************\n    Stop playing.\n***************************************************************************/\nvoid GVDW::Stop(void)\n{\n    AssertThis(0);\n\n    if (!_fPlaying)\n        return;\n\n#ifdef WIN\n    MCI_GENERIC_PARMS mciPause;\n\n    ClearPb(&mciPause, size(mciPause));\n    mciSendCommand(_lwDevice, MCI_PAUSE, 0, (long)&mciPause);\n#endif // WIN\n\n#ifdef MAC\n    RawRtn(); // REVIEW shonk: Mac: implement GVDW::Stop\n#endif        // MAC\n    _fPlaying = fFalse;\n}\n\n/***************************************************************************\n    Call this to draw the current state of the video image.\n***************************************************************************/\nvoid GVDW::Draw(PGNV pgnv, RC *prc)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prc);\n\n    _SetRc();\n}\n\n/***************************************************************************\n    Position the hwnd associated with the video to match the GOB's position.\n***************************************************************************/\nvoid GVDW::_SetRc(void)\n{\n    AssertThis(0);\n    RC rcGob, rc;\n\n    _pgobBase->GetRc(&rcGob, cooHwnd);\n    rc = _rcPlay;\n    rc.Offset(rcGob.xpLeft, rcGob.ypTop);\n    if (_rc != rc || !_fVisible)\n    {\n#ifdef WIN\n        MoveWindow(_hwndMovie, rc.xpLeft, rc.ypTop, rc.Dxp(), rc.Dyp(), fTrue);\n        if (!_fVisible)\n        {\n            MCI_ANIM_WINDOW_PARMS mciWindow;\n\n            // show the playback window\n            ClearPb(&mciWindow, size(mciWindow));\n            mciWindow.nCmdShow = SW_SHOW;\n            mciSendCommand(_lwDevice, MCI_WINDOW, MCI_ANIM_WINDOW_STATE, (long)&mciWindow);\n            _fVisible = fTrue;\n        }\n#endif // WIN\n\n#ifdef MAC\n        RawRtn(); // REVIEW shonk: Mac: implement GVDW::_SetRc\n#endif            // MAC\n        _rc = rc;\n    }\n\n    if (_cactPal != vcactRealize)\n    {\n#ifdef WIN\n        mciSendCommand(_lwDevice, MCI_REALIZE, MCI_ANIM_REALIZE_BKGD, 0);\n#endif // WIN\n#ifdef MAC\n        RawRtn(); // REVIEW shonk: Mac: implement GVDW::_SetRc\n#endif            // MAC\n        _cactPal = vcactRealize;\n    }\n}\n\n/***************************************************************************\n    Get the normal rectangle for the movie (top-left at (0, 0)).\n***************************************************************************/\nvoid GVDW::GetRc(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n\n    prc->Set(0, 0, _dxp, _dyp);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a GVDW.\n***************************************************************************/\nvoid GVDW::AssertValid(ulong grf)\n{\n    GVDW_PAR::AssertValid(0);\n    Assert(_hwndMovie != hNil, 0);\n    AssertPo(_pgobBase, 0);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/src/video.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Video playback.\n\n***************************************************************************/\n#ifndef VIDEO_H\n#define VIDEO_H\n\n/***************************************************************************\n    Generic video class. This is an interface that supports the GVDS\n    (video stream) and GVDW (video window) classes.\n***************************************************************************/\ntypedef class GVID *PGVID;\n#define GVID_PAR CMH\n#define kclsGVID 'GVID'\nclass GVID : public GVID_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    GVID(long hid);\n    ~GVID(void)\n    {\n    }\n\n  public:\n    static PGVID PgvidNew(PFNI pfni, PGOB pgobBase, bool fHwndBased = fFalse, long hid = hidNil);\n\n    virtual long NfrMac(void) = 0;\n    virtual long NfrCur(void) = 0;\n    virtual void GotoNfr(long nfr) = 0;\n\n    virtual bool FPlaying(void) = 0;\n    virtual bool FPlay(RC *prc = pvNil) = 0;\n    virtual void Stop(void) = 0;\n\n    virtual void Draw(PGNV pgnv, RC *prc) = 0;\n    virtual void GetRc(RC *prc) = 0;\n    virtual void SetRcPlay(RC *prc) = 0;\n};\n\n/****************************************\n    Video stream class.\n****************************************/\ntypedef class GVDS *PGVDS;\n#define GVDS_PAR GVID\n#define kclsGVDS 'GVDS'\nclass GVDS : public GVDS_PAR\n{\n    RTCLASS_DEC\n    CMD_MAP_DEC(GVDS)\n    ASSERT\n\n  protected:\n    long _nfrMac;\n    long _nfrCur;\n    long _nfrMarked;\n    long _dxp;\n    long _dyp;\n\n    PGOB _pgobBase;\n    RC _rcPlay;\n    ulong _tsPlay;\n\n    bool _fPlaying;\n\n#ifdef WIN\n    long _dnfr;\n    PAVIFILE _pavif;\n    PAVISTREAM _pavis;\n    PGETFRAME _pavig;\n    HDRAWDIB _hdd;\n#endif // WIN\n\n    GVDS(long hid);\n    ~GVDS(void);\n\n    virtual bool _FInit(PFNI pfni, PGOB pgobBase);\n\n  public:\n    static PGVDS PgvdsNew(PFNI pfni, PGOB pgobBase, long hid = hidNil);\n\n    virtual long NfrMac(void);\n    virtual long NfrCur(void);\n    virtual void GotoNfr(long nfr);\n\n    virtual bool FPlaying(void);\n    virtual bool FPlay(RC *prc = pvNil);\n    virtual void Stop(void);\n\n    virtual void Draw(PGNV pgnv, RC *prc);\n    virtual void GetRc(RC *prc);\n    virtual void SetRcPlay(RC *prc);\n\n    virtual bool FCmdAll(PCMD pcmd);\n};\n\n/****************************************\n    Video in a window class.\n****************************************/\ntypedef class GVDW *PGVDW;\n#define GVDW_PAR GVID\n#define kclsGVDW 'GVDW'\nclass GVDW : public GVDW_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    HWND _hwndMovie;\n    long _lwDevice;\n    long _dxp;\n    long _dyp;\n    RC _rc;\n    RC _rcPlay;\n    long _nfrMac;\n    PGOB _pgobBase;\n    long _cactPal;\n\n    bool _fDeviceOpen : 1;\n    bool _fPlaying : 1;\n    bool _fVisible : 1;\n\n    GVDW(long hid);\n    ~GVDW(void);\n\n    virtual bool _FInit(PFNI pfni, PGOB pgobBase);\n    virtual void _SetRc(void);\n\n  public:\n    static PGVDW PgvdwNew(PFNI pfni, PGOB pgobBase, long hid = hidNil);\n\n    virtual long NfrMac(void);\n    virtual long NfrCur(void);\n    virtual void GotoNfr(long nfr);\n\n    virtual bool FPlaying(void);\n    virtual bool FPlay(RC *prc = pvNil);\n    virtual void Stop(void);\n\n    virtual void Draw(PGNV pgnv, RC *prc);\n    virtual void GetRc(RC *prc);\n    virtual void SetRcPlay(RC *prc);\n};\n\n#endif //! VIDEO_H\n"
  },
  {
    "path": "kauai/tools/chdoc.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Chunky editor document management\n\n***************************************************************************/\n#include \"ched.h\"\nASSERTNAME\n\nBEGIN_CMD_MAP(DCD, DDG)\nON_CID_GEN(cidAddChunk, &DCD::FCmdAddChunk, pvNil)\nON_CID_GEN(cidAddPicChunk, &DCD::FCmdAddPicChunk, pvNil)\nON_CID_GEN(cidAddMbmpChunk, &DCD::FCmdAddBitmapChunk, pvNil)\nON_CID_GEN(cidAddMaskChunk, &DCD::FCmdAddBitmapChunk, pvNil)\nON_CID_GEN(cidCompilePostScript, &DCD::FCmdImportScript, pvNil)\nON_CID_GEN(cidCompileInScript, &DCD::FCmdImportScript, pvNil)\nON_CID_GEN(cidTestScript, &DCD::FCmdTestScript, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidRunScriptCache, &DCD::FCmdTestScript, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidAddFileChunk, &DCD::FCmdAddFileChunk, pvNil)\nON_CID_GEN(cidAdoptChunk, &DCD::FCmdAdoptChunk, pvNil)\nON_CID_GEN(cidDeleteChunk, &DCD::FCmdDeleteChunk, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidUndeleteChunk, &DCD::FCmdDeleteChunk, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidUnadoptChunk, &DCD::FCmdUnadoptChunk, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidEditNatural, &DCD::FCmdEditChunk, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidEditHex, &DCD::FCmdEditChunk, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidEditGL, &DCD::FCmdEditChunk, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidEditAL, &DCD::FCmdEditChunk, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidEditGG, &DCD::FCmdEditChunk, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidEditAG, &DCD::FCmdEditChunk, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidEditGST, &DCD::FCmdEditChunk, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidEditAST, &DCD::FCmdEditChunk, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidEditPic, &DCD::FCmdEditChunk, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidEditMbmp, &DCD::FCmdEditChunk, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidPlaySound, &DCD::FCmdEditChunk, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidStopSound, &DCD::FCmdStopSound, pvNil)\nON_CID_GEN(cidDisassembleScript, &DCD::FCmdDisasmScript, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidEditChunkInfo, &DCD::FCmdEditChunkInfo, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidChangeChid, &DCD::FCmdChangeChid, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidSetColorTable, &DCD::FCmdSetColorTable, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidFilterChunk, &DCD::FCmdFilterChunk, pvNil)\nON_CID_GEN(cidPack, &DCD::FCmdPack, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidTogglePack, &DCD::FCmdPack, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidCloneChunk, &DCD::FCmdCloneChunk, &DCD::FEnableDcdCmd)\nON_CID_GEN(cidReopen, &DCD::FCmdReopen, pvNil)\nEND_CMD_MAP_NIL()\n\nBEGIN_CMD_MAP(TSCG, GOB)\nON_CID_GEN(cidClose, &GOB::FCmdCloseWnd, pvNil)\nEND_CMD_MAP_NIL()\n\nbool _FGetCtg(PDLG pdlg, long idit, CTG *pctg);\nvoid _PutCtgStn(PDLG pdlg, long idit, CTG ctg);\n\nRTCLASS(DOC)\nRTCLASS(DOCE)\nRTCLASS(DCLB)\nRTCLASS(DCD)\nRTCLASS(SEL)\nRTCLASS(TSCG)\n\n/****************************************\n    Add Chunk dialog\n****************************************/\nenum\n{\n    kiditOkInfo,\n    kiditCancelInfo,\n    kiditCtgInfo,\n    kiditCnoInfo,\n    kiditNameInfo,\n    kiditLimInfo\n};\n\n// add chunk data\nstruct ADCD\n{\n    PCFL pcfl;\n    bool fCkiValid;\n    CKI cki;\n};\n\nbool _FDlgAddChunk(PDLG pdlg, long *pidit, void *pv);\n\n/***************************************************************************\n    Dialog proc for Add Chunk dialog. pv should be a padcd.\n***************************************************************************/\nbool _FDlgAddChunk(PDLG pdlg, long *pidit, void *pv)\n{\n    AssertPo(pdlg, 0);\n    AssertVarMem(pidit);\n    CTG ctg;\n    long lw;\n    bool fEmpty;\n    ADCD *padcd = (ADCD *)pv;\n\n    switch (*pidit)\n    {\n    case kiditCancelInfo:\n        return fTrue; // dismiss the dialog\n\n    case kiditOkInfo:\n        if (!pdlg->FGetValues(0, kiditLimInfo))\n        {\n            *pidit = ivNil;\n            return fTrue;\n        }\n        if (!_FGetCtg(pdlg, kiditCtgInfo, &ctg))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"CTG is bad\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditCtgInfo);\n            return fFalse;\n        }\n        if (!pdlg->FGetLwFromEdit(kiditCnoInfo, &lw, &fEmpty) && !fEmpty)\n        {\n            vpappb->TGiveAlertSz(PszLit(\"CNO is bad\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditCnoInfo);\n            return fFalse;\n        }\n        AssertPo(padcd->pcfl, 0);\n        if (!fEmpty && (!padcd->fCkiValid || ctg != padcd->cki.ctg || lw != (long)padcd->cki.cno) &&\n            padcd->pcfl->FFind(ctg, lw))\n        {\n            tribool tRet = vpappb->TGiveAlertSz(PszLit(\"A chunk with this CTG & CNO\")\n                                                    PszLit(\" already exists. Replace the existing chunk?\"),\n                                                bkYesNoCancel, cokQuestion);\n\n            switch (tRet)\n            {\n            case tMaybe:\n                *pidit = kiditCancelInfo;\n                return fTrue;\n\n            case tNo:\n                pdlg->SelectDit(kiditCnoInfo);\n                return fFalse;\n            }\n        }\n        return fTrue;\n\n    default:\n        break;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Constructor for DOC class.\n***************************************************************************/\nDOC::DOC(void)\n{\n    _pcfl = pvNil;\n}\n\n/***************************************************************************\n    Destructor for DOC class.\n***************************************************************************/\nDOC::~DOC(void)\n{\n    ReleasePpo(&_pcfl);\n}\n\n/***************************************************************************\n    Static method to create a new document based on the given fni.\n    Use pfni == pvNil to create a new file, non-nil to open an\n    existing file.\n***************************************************************************/\nPDOC DOC::PdocNew(FNI *pfni)\n{\n    PCFL pcfl;\n    PDOC pdoc;\n\n    if (pvNil == pfni)\n        pcfl = CFL::PcflCreateTemp();\n    else\n    {\n        AssertPo(pfni, ffniFile);\n\n        // make sure no other docs are based on this pcfl.\n        if (pvNil != DOCB::PdocbFromFni(pfni))\n            return pvNil;\n        pcfl = CFL::PcflOpen(pfni, fcflNil);\n    }\n\n    if (pvNil == pcfl)\n        return pvNil;\n\n    if (pvNil == (pdoc = NewObj DOC()))\n    {\n        ReleasePpo(&pcfl);\n        return pvNil;\n    }\n\n    pdoc->_pcfl = pcfl;\n    AssertPo(pdoc, 0);\n    return pdoc;\n}\n\n/***************************************************************************\n    Create a new DDG for the doc.\n***************************************************************************/\nPDDG DOC::PddgNew(PGCB pgcb)\n{\n    AssertThis(0);\n    return DCD::PdcdNew(this, _pcfl, pgcb);\n}\n\n/***************************************************************************\n    Get the current FNI for the doc. Return false if the doc is not\n    currently based on an FNI (it's a new doc or an internal one).\n***************************************************************************/\nbool DOC::FGetFni(FNI *pfni)\n{\n    AssertThis(0);\n    AssertBasePo(pfni, 0);\n    if (_pcfl->FTemp())\n        return fFalse;\n\n    _pcfl->GetFni(pfni);\n    return fTrue;\n}\n\n/***************************************************************************\n    Save the document and optionally set this fni as the current one.\n    If the doc is currently based on an FNI, pfni may be nil, indicating\n    that this is a normal save (not save as). If pfni is not nil and\n    fSetFni is false, this just writes a copy of the doc but doesn't change\n    the doc one bit.\n***************************************************************************/\nbool DOC::FSaveToFni(FNI *pfni, bool fSetFni)\n{\n    AssertThis(0);\n    if (!fSetFni && pvNil != pfni)\n    {\n        if (!_pcfl->FSaveACopy(kctgChed, pfni))\n            goto LFail;\n        return fTrue;\n    }\n\n    if (!_pcfl->FSave(kctgChed, pfni))\n    {\n    LFail:\n        vpappb->TGiveAlertSz(PszLit(\"Saving chunky file failed!\"), bkOk, cokExclamation);\n        return fFalse;\n    }\n\n    _fDirty = fFalse;\n    _pcfl->SetTemp(fFalse);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Ask the user what file they want to save to.\n***************************************************************************/\nbool DOC::FGetFniSave(FNI *pfni)\n{\n    AssertThis(0);\n    return FGetFniSaveMacro(pfni, 'CHN2',\n                            \"\\x9\"\n                            \"Save As: \",\n                            \"\", PszLit(\"All files\\0*.*\\0\"), vwig.hwndApp);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the DOC.\n***************************************************************************/\nvoid DOC::AssertValid(ulong grf)\n{\n    DOC_PAR::AssertValid(grf);\n    AssertPo(_pcfl, 0);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for chunk editing doc.\n***************************************************************************/\nDOCE::DOCE(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno) : DOCB(pdocb)\n{\n    _pcfl = pcfl;\n    _ctg = ctg;\n    _cno = cno;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Initialize the DOCH - initialize the stream.\n***************************************************************************/\nbool DOCE::_FInit(void)\n{\n    BLCK blck;\n\n    if (!_pcfl->FFind(_ctg, _cno, &blck))\n    {\n        Bug(\"Chunk not found\");\n        return fFalse;\n    }\n    if (!_FRead(&blck))\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Static method to look for a DOCE for the given chunk.\n***************************************************************************/\nPDOCE DOCE::PdoceFromChunk(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno)\n{\n    PDOCE pdoce;\n\n    for (pdocb = pdocb->PdocbChd(); pvNil != pdocb; pdocb = pdocb->PdocbSib())\n    {\n        if (!pdocb->FIs(kclsDOCE))\n            continue;\n        pdoce = (PDOCE)pdocb;\n        AssertPo(pdoce, 0);\n        if (pdoce->_pcfl == pcfl && pdoce->_ctg == ctg && pdoce->_cno == cno)\n            return pdoce;\n    }\n    return pvNil;\n}\n\n/***************************************************************************\n    Static method: For all DOCE children of the DOCB, checks if the chunk\n    still exists and nukes the DOCE if not.\n***************************************************************************/\nvoid DOCE::CloseDeletedDoce(PDOCB pdocb)\n{\n    PDOCB pdocbNext;\n    PDOCE pdoce;\n\n    for (pdocb = pdocb->PdocbChd(); pvNil != pdocb; pdocb = pdocbNext)\n    {\n        pdocbNext = pdocb->PdocbSib();\n        if (!pdocb->FIs(kclsDOCE))\n            continue;\n        pdoce = (PDOCE)pdocb;\n        // NOTE: can't assert the pdoce here because the chunk may be gone\n        // AssertPo(pdoce, 0);\n        AssertPo(pdoce->_pcfl, 0);\n        if (!pdoce->_pcfl->FFind(pdoce->_ctg, pdoce->_cno))\n            pdoce->CloseAllDdg();\n        else\n            AssertPo(pdoce, 0);\n    }\n}\n\n/***************************************************************************\n    Get the name of the item document.\n***************************************************************************/\nvoid DOCE::GetName(PSTN pstn)\n{\n    AssertThis(0);\n    STN stn;\n\n    stn.FFormatSz(PszLit(\": %f %08x\"), _ctg, _cno);\n    _pdocbPar->GetName(pstn);\n    pstn->FAppendStn(&stn);\n}\n\n/***************************************************************************\n    Save the document. Handles cidSave, cidSaveAs and cidSaveCopy.\n***************************************************************************/\nbool DOCE::FSave(long cid)\n{\n    AssertThis(0);\n    CTG ctg;\n    CNO cno;\n    bool fCreated = fFalse;\n    PDLG pdlg = pvNil;\n\n    switch (cid)\n    {\n    case cidSave:\n        ctg = _ctg;\n        cno = _cno;\n        break;\n\n    case cidSaveAs:\n    case cidSaveCopy:\n        long idit;\n        long lw;\n        ADCD adcd;\n\n        // put up the dialog\n        adcd.pcfl = _pcfl;\n        adcd.fCkiValid = fTrue;\n        adcd.cki.ctg = _ctg;\n        adcd.cki.cno = _cno;\n        pdlg = DLG::PdlgNew(dlidChunkInfo, _FDlgAddChunk, &adcd);\n        if (pvNil == pdlg)\n            goto LCancel;\n        _PutCtgStn(pdlg, kiditCtgInfo, _ctg);\n        idit = kiditCnoInfo;\n        idit = pdlg->IditDo(idit);\n        if (idit != kiditOkInfo)\n            goto LCancel;\n\n        if (!_FGetCtg(pdlg, kiditCtgInfo, &ctg) || !pdlg->FGetLwFromEdit(kiditCnoInfo, &lw, &fCreated) && !fCreated)\n        {\n            goto LFail;\n        }\n        ReleasePpo(&pdlg);\n        cno = lw;\n\n        if (fCreated)\n        {\n            if (!_pcfl->FAdd(0, ctg, &cno))\n                goto LFail;\n        }\n        break;\n\n    default:\n        return fFalse;\n    }\n\n    if (_FSaveToChunk(ctg, cno, cid != cidSaveCopy))\n    {\n        PDOCB pdocb;\n        PDDG pddg;\n\n        if (pvNil != (pdocb = PdocbPar()) && pvNil != (pddg = pdocb->PddgGet(0)) && pddg->FIs(kclsDCD))\n        {\n            ((PDCD)pddg)->InvalAllDcd(pdocb, _pcfl);\n        }\n        if (cid != cidSaveCopy)\n            UpdateName();\n        return fTrue;\n    }\n\n    // saving failed\n    if (fCreated)\n        _pcfl->Delete(ctg, cno);\n\nLFail:\n    vpappb->TGiveAlertSz(PszLit(\"Saving chunk failed\"), bkOk, cokExclamation);\nLCancel:\n    ReleasePpo(&pdlg);\n    return fFalse;\n}\n\n/***************************************************************************\n    Save the chunk data to a chunk.\n***************************************************************************/\nbool DOCE::_FSaveToChunk(CTG ctg, CNO cno, bool fRedirect)\n{\n    AssertThis(0);\n    CNO cnoT;\n    CKI cki;\n    BLCK blck;\n    long cb = _CbOnFile();\n\n    // if the chunk already exists, add a temporary chunk, swap the data\n    // between the two chunks, then delete the temporary chunk.\n    // if the chunk doesn't yet exist, create it.\n    if (!_pcfl->FFind(ctg, cno))\n    {\n        cnoT = cno;\n        if (!_pcfl->FPut(cb, ctg, cno, &blck))\n            return fFalse;\n    }\n    else if (!_pcfl->FAdd(cb, ctg, &cnoT, &blck))\n        return fFalse;\n\n    if (!_FWrite(&blck, fRedirect))\n    {\n        _pcfl->Delete(ctg, cnoT);\n        return fFalse;\n    }\n\n    if (cno != cnoT)\n    {\n        _pcfl->SwapData(ctg, cno, ctg, cnoT);\n        _pcfl->Delete(ctg, cnoT);\n    }\n\n    if (fRedirect)\n    {\n        _ctg = ctg;\n        _cno = cno;\n        _fDirty = fFalse;\n    }\n\n    // need to invalidate the line\n    cki.ctg = ctg;\n    cki.cno = cno;\n    DCD::InvalAllDcd(_pdocbPar, _pcfl, &cki);\n\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of an object.\n***************************************************************************/\nvoid DOCE::AssertValid(ulong grf)\n{\n    DOCE_PAR::AssertValid(0);\n    AssertPo(_pcfl, 0);\n    Assert(_pcfl->FFind(_ctg, _cno), \"chunk not in CFL\");\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for a DCLB.\n***************************************************************************/\nDCLB::DCLB(PDOCB pdocb, PGCB pgcb) : DDG(pdocb, pgcb)\n{\n    achar ch;\n    RC rc;\n    GNV gnv(this);\n\n    _dypHeader = 0;\n    _onn = vpappb->OnnDefFixed();\n    gnv.SetOnn(_onn);\n    ch = 'A';\n    gnv.GetRcFromRgch(&rc, &ch, 1, 0, 0);\n    _dypLine = rc.Dyp();\n    _dxpChar = rc.Dxp();\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Return the ln that corresponds with the given yp value. If yp is in\n    the header, returns lnNil.\n***************************************************************************/\nlong DCLB::_LnFromYp(long yp)\n{\n    AssertThis(0);\n    if (yp < _dypHeader)\n        return lnNil;\n    return _scvVert + (yp - _dypHeader) / _dypLine;\n}\n\n/***************************************************************************\n    Perform a scroll according to scaHorz and scaVert.\n***************************************************************************/\nvoid DCLB::_Scroll(long scaHorz, long scaVert, long scvHorz, long scvVert)\n{\n    AssertThis(0);\n    RC rc;\n    long dscvHorz, dscvVert;\n    long dxp, dyp;\n\n    _GetContent(&rc);\n    dscvHorz = dscvVert = 0;\n    dxp = 0;\n    switch (scaHorz)\n    {\n    case scaPageUp:\n        dscvHorz = -LwMax(1, LwMulDiv(rc.Dxp(), 9, 10) / _dxpChar);\n        goto LHorz;\n    case scaPageDown:\n        dscvHorz = LwMax(1, LwMulDiv(rc.Dxp(), 9, 10) / _dxpChar);\n        goto LHorz;\n    case scaLineUp:\n        dscvHorz = -LwMax(1, rc.Dxp() / 10 / _dxpChar);\n        goto LHorz;\n    case scaLineDown:\n        dscvHorz = LwMax(1, rc.Dxp() / 10 / _dxpChar);\n        goto LHorz;\n    case scaToVal:\n        dscvHorz = scvHorz - _scvHorz;\n    LHorz:\n        dscvHorz = LwBound(_scvHorz + dscvHorz, 0, _ScvMax(fFalse) + 1) - _scvHorz;\n        _scvHorz += dscvHorz;\n        dxp = LwMul(dscvHorz, _dxpChar);\n        break;\n    }\n\n    dyp = 0;\n    switch (scaVert)\n    {\n    case scaPageUp:\n        dscvVert = -LwMax(1, rc.Dyp() / _dypLine - 1);\n        goto LVert;\n    case scaPageDown:\n        dscvVert = LwMax(1, rc.Dyp() / _dypLine - 1);\n        goto LVert;\n    case scaLineUp:\n        dscvVert = -1;\n        goto LVert;\n    case scaLineDown:\n        dscvVert = 1;\n        goto LVert;\n    case scaToVal:\n        dscvVert = scvVert - _scvVert;\n    LVert:\n        dscvVert = LwBound(_scvVert + dscvVert, 0, _ScvMax(fTrue) + 1) - _scvVert;\n        _scvVert += dscvVert;\n        dyp = LwMul(dscvVert, _dypLine);\n        break;\n    }\n\n    _SetScrollValues();\n    if (dxp != 0 || dyp != 0)\n        _ScrollDxpDyp(dxp, dyp);\n}\n\n/***************************************************************************\n    Move the bits in the window.\n***************************************************************************/\nvoid DCLB::_ScrollDxpDyp(long dxp, long dyp)\n{\n    AssertThis(0);\n    RC rc;\n\n    _GetContent(&rc);\n    Scroll(&rc, -dxp, -dyp, kginDraw);\n    if (0 != dxp)\n    {\n        // scroll the header\n        rc.ypTop = 0;\n        rc.ypBottom = _dypHeader - 1;\n        Scroll(&rc, -dxp, 0, kginDraw);\n    }\n}\n\n/***************************************************************************\n    Get the content part of the DCLB minus header (and any future footer).\n***************************************************************************/\nvoid DCLB::_GetContent(RC *prc)\n{\n    GetRc(prc, cooLocal);\n    prc->ypTop += _dypHeader;\n}\n\n/***************************************************************************\n    Fill in reasonable minimum and maximum sizes.\n***************************************************************************/\nvoid DCLB::GetMinMax(RC *prcMinMax)\n{\n    prcMinMax->xpLeft = 20 * _dxpChar;\n    prcMinMax->ypTop = _dypHeader + 2 * _dypLine;\n    prcMinMax->xpRight = kswMax;\n    prcMinMax->ypBottom = kswMax;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of an object.\n***************************************************************************/\nvoid DCLB::AssertValid(ulong grf)\n{\n    DCLB_PAR::AssertValid(0);\n    AssertIn(_dypLine, 1, 1000);\n    AssertIn(_dxpChar, 1, 1000);\n    AssertIn(_dypHeader, 0, 1000);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for the DCD.\n***************************************************************************/\nDCD::DCD(PDOCB pdocb, PCFL pcfl, PGCB pgcb) : DCLB(pdocb, pgcb), _sel(pcfl)\n{\n    _pcfl = pcfl;\n    _dypBorder = 1;\n    _dypLine += _dypBorder;\n    _dypHeader = _dypLine;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Static method to create a new DCD.\n***************************************************************************/\nPDCD DCD::PdcdNew(PDOCB pdocb, PCFL pcfl, PGCB pgcb)\n{\n    PDCD pdcd;\n\n    if (pvNil == (pdcd = NewObj DCD(pdocb, pcfl, pgcb)))\n        return pvNil;\n\n    if (!pdcd->_FInit())\n    {\n        ReleasePpo(&pdcd);\n        return pvNil;\n    }\n    pdcd->Activate(fTrue);\n\n    AssertPo(pdcd, 0);\n    return pdcd;\n}\n\n/***************************************************************************\n    We're being activated or deactivated, invert the sel.\n***************************************************************************/\nvoid DCD::_Activate(bool fActive)\n{\n    AssertThis(0);\n    DDG::_Activate(fActive);\n\n    GNV gnv(this);\n    _DrawSel(&gnv);\n}\n\n/***************************************************************************\n    Static method: should be called by any code that edits the pcfl.\n    *pcki and *pkid should be at or before the first line modified.\n    pcki and pkid can be nil.\n***************************************************************************/\nvoid DCD::InvalAllDcd(PDOCB pdocb, PCFL pcfl, CKI *pcki, KID *pkid)\n{\n    AssertPo(pdocb, 0);\n    AssertPo(pcfl, 0);\n    AssertNilOrVarMem(pcki);\n    AssertNilOrVarMem(pkid);\n    long ipddg;\n    PDDG pddg;\n    PDCD pdcd;\n\n    // mark the document dirty\n    pdocb->SetDirty();\n\n    // inform the DCDs\n    for (ipddg = 0; pvNil != (pddg = pdocb->PddgGet(ipddg)); ipddg++)\n    {\n        if (!pddg->FIs(kclsDCD))\n            continue;\n        pdcd = (PDCD)pddg;\n        AssertPo(pdcd, 0);\n        if (pdcd->_pcfl == pcfl)\n            pdcd->_InvalCkiKid(pcki, pkid);\n    }\n}\n\n/***************************************************************************\n    Invalidate the display from (pcki, pkid) to the end of the display. If\n    we're the active DCD, also redraw.\n***************************************************************************/\nvoid DCD::_InvalCkiKid(CKI *pcki, KID *pkid)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pcki);\n    AssertNilOrVarMem(pkid);\n    RC rc;\n    long lnMin;\n\n    // we need to recalculate the lnLim\n    _sel.InvalLim();\n\n    if (pvNil != pcki)\n    {\n        SEL sel = _sel;\n\n        sel.FSetCkiKid(pcki, pkid, fFalse);\n        lnMin = sel.Ln();\n    }\n    else\n        lnMin = lnNil;\n\n    // correct the sel\n    if (lnNil != _sel.Ln() && _sel.Ln() >= lnMin)\n        _sel.Adjust();\n\n    GetRc(&rc, cooLocal);\n    rc.ypTop = LwMax(0, _YpFromLn(lnMin) - _dypBorder);\n    if (rc.FEmpty())\n        return;\n\n    if (_fActive)\n    {\n        ValidRc(&rc, kginDraw);\n        InvalRc(&rc, kginDraw);\n    }\n    else\n        InvalRc(&rc);\n}\n\n/***************************************************************************\n    Draw the chunk list\n***************************************************************************/\nvoid DCD::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    STN stn;\n    STN stnT;\n    RC rc;\n    long yp, xp;\n    long ikid, cckiRef;\n    CKI cki;\n    KID kid;\n    BLCK blck;\n    ulong grfsel;\n    SEL sel = _sel;\n\n    pgnv->ClipRc(prcClip);\n    pgnv->SetOnn(_onn);\n\n    xp = _XpFromIch(0);\n    // draw the header\n    rc = *prcClip;\n    rc.ypTop = 0;\n    rc.ypBottom = _dypHeader - _dypBorder;\n    pgnv->FillRc(&rc, kacrWhite);\n    stn.FFormatSz(PszLit(\"LPF  PARS   SIZE     (CHID)   CTG     CNO     Name   Lines: %d\"), _sel.LnLim());\n    pgnv->DrawStn(&stn, xp, 0);\n    rc = *prcClip;\n    rc.ypTop = _dypHeader - _dypBorder;\n    rc.ypBottom = _dypHeader;\n    pgnv->FillRc(&rc, kacrBlack);\n\n    // use the sel to find the first (icki, ikid) to draw\n    if (!sel.FSetLn(_LnFromYp(LwMax(prcClip->ypTop, _dypHeader))))\n    {\n        // no visible lines\n        rc = *prcClip;\n        rc.ypTop = _dypHeader;\n        pgnv->FillRc(&rc, kacrWhite);\n        return;\n    }\n\n    for (yp = _YpFromLn(sel.Ln()); yp < prcClip->ypBottom;)\n    {\n        if (sel.Ln() == lnNil)\n        {\n            rc = *prcClip;\n            rc.ypTop = yp;\n            pgnv->FillRc(&rc, kacrWhite);\n            break;\n        }\n\n        grfsel = sel.GrfselGetCkiKid(&cki, &kid);\n        rc = *prcClip;\n        rc.ypTop = yp;\n        rc.ypBottom = yp + _dypLine;\n        pgnv->FillRc(&rc, kacrWhite);\n        if (grfsel & fselKid)\n        {\n            stn.FFormatSz(PszLit(\"                    %08x  %f  %08x\"), kid.chid, kid.cki.ctg, kid.cki.cno);\n            pgnv->DrawStn(&stn, xp, yp);\n            yp += _dypLine;\n        }\n        else\n        {\n            Assert(grfsel & fselCki, \"bad grfsel\");\n\n            // draw the cki description\n            _pcfl->FFind(cki.ctg, cki.cno, &blck);\n            _pcfl->FGetName(cki.ctg, cki.cno, &stnT);\n            cckiRef = _pcfl->CckiRef(cki.ctg, cki.cno);\n            ikid = _pcfl->Ckid(cki.ctg, cki.cno);\n\n            stn.FFormatSz(PszLit(\"%c%c%c  %3d  %08x  --------  %f  %08x  \\\"%s\\\"\"),\n                          _pcfl->FLoner(cki.ctg, cki.cno) ? ChLit('L') : ChLit(' '),\n                          blck.FPacked() ? ChLit('P') : ChLit(' '),\n                          _pcfl->FForest(cki.ctg, cki.cno) ? ChLit('F') : ChLit(' '), cckiRef, blck.Cb(fTrue), cki.ctg,\n                          cki.cno, &stnT);\n            pgnv->DrawStn(&stn, xp, yp);\n            yp += _dypLine;\n        }\n\n        sel.FAdvance();\n\n        // draw seperating line\n        if (yp > _dypHeader)\n        {\n            rc = *prcClip;\n            rc.ypTop = yp - _dypBorder;\n            rc.ypBottom = yp;\n            pgnv->FillRc(&rc, (sel.Ikid() == ivNil) ? kacrGray : kacrWhite);\n        }\n    }\n\n    // draw the selection\n    if (_fActive)\n        _DrawSel(pgnv);\n}\n\n/***************************************************************************\n    Hilite the selection (if there is one)\n***************************************************************************/\nvoid DCD::_DrawSel(PGNV pgnv)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    RC rc;\n    long ln;\n\n    if (lnNil == (ln = _sel.Ln()))\n        return;\n\n    pgnv->GetRcSrc(&rc);\n    rc.ypTop = _YpFromLn(ln);\n    rc.ypBottom = rc.ypTop + _dypLine - _dypBorder;\n    rc.ypTop = LwMax(rc.ypTop, _dypHeader);\n    pgnv->HiliteRc(&rc, kacrWhite);\n}\n\n/***************************************************************************\n    Set the selection to the given ln.\n***************************************************************************/\nvoid DCD::_SetSel(long ln, CKI *pcki, KID *pkid)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pcki);\n    AssertNilOrVarMem(pkid);\n    SEL sel = _sel;\n\n    if (pvNil != pcki)\n    {\n        Assert(lnNil == ln, \"ln and pcki both not nil\");\n        sel.FSetCkiKid(pcki, pkid);\n    }\n    else\n    {\n        Assert(pvNil == pkid, 0);\n        sel.FSetLn(ln);\n    }\n\n    if (_sel.Ln() == sel.Ln())\n        return;\n\n    GNV gnv(this);\n\n    // erase the old sel\n    if (_fActive)\n        _DrawSel(&gnv);\n\n    // set the new sel and draw it\n    _sel = sel;\n    if (_fActive)\n        _DrawSel(&gnv);\n}\n\n/***************************************************************************\n    Scroll the sel into view.\n***************************************************************************/\nvoid DCD::_ShowSel(void)\n{\n    AssertThis(0);\n    RC rc;\n    long ln, lnLim;\n\n    if (lnNil == (ln = _sel.Ln()))\n        _Scroll(scaNil, scaToVal, 0, _scvVert);\n    else if (ln < _scvVert)\n        _Scroll(scaNil, scaToVal, 0, ln);\n    else\n    {\n        _GetContent(&rc);\n        lnLim = LwMax(_scvVert + 1, _LnFromYp(rc.ypBottom));\n        if (ln >= lnLim)\n            _Scroll(scaNil, scaToVal, 0, _scvVert + ln + 1 - lnLim);\n    }\n}\n\n/***************************************************************************\n    Handle a mouse down in our content.\n***************************************************************************/\nvoid DCD::MouseDown(long xp, long yp, long cact, ulong grfcust)\n{\n    AssertThis(0);\n    PGOB pgob;\n    PDCD pdcd, pdcdNew;\n    PT pt, ptT;\n    bool fDown;\n    long ln, lnNew;\n    CKI cki, ckiNew;\n    KID kid;\n    ulong grfsel;\n\n    ln = _sel.Ln();\n    if (lnNil != (lnNew = _LnFromYp(yp)))\n    {\n        _SetSel(lnNew);\n        grfsel = _sel.GrfselGetCkiKid(&cki, &kid);\n        if ((grfsel & fselCki) && !(grfsel & fselKid))\n        {\n            kid.cki = cki;\n            kid.chid = 0;\n        }\n        lnNew = _sel.Ln();\n    }\n\n    if (!_fActive)\n        Activate(fTrue);\n\n    if (lnNil == lnNew)\n        return;\n\n    // handle a control/command click--edit chunk information/change CHID\n    if (grfcust & fcustCmd)\n    {\n        _SetSel(lnNil);\n        if (grfsel & fselKid)\n        {\n            if (_FChangeChid(&cki, &kid))\n                InvalAllDcd(_pdocb, _pcfl);\n            _SetSel(lnNil, &cki, &kid);\n            _ShowSel();\n        }\n        else\n        {\n            if (_FEditChunkInfo(&cki))\n                InvalAllDcd(_pdocb, _pcfl);\n            _SetSel(lnNil, &cki);\n            _ShowSel();\n        }\n        return;\n    }\n\n    // handle a double click - edit or goto the item\n    if (cact > 1 && ln == lnNew)\n    {\n        if (!(grfsel & fselKid))\n            _EditCki(&cki, cidEditNatural);\n        else\n        {\n            _SetSel(lnNil, &kid.cki);\n            _ShowSel();\n        }\n        return;\n    }\n\n    pt.xp = xp;\n    pt.yp = yp;\n    pdcd = pvNil;\n    ln = lnNil;\n    for (fDown = fTrue; fDown; GetPtMouse(&pt, &fDown))\n    {\n        ptT = pt;\n        MapPt(&ptT, cooLocal, cooGlobal);\n        pgob = GOB::PgobFromPtGlobal(ptT.xp, ptT.yp, &ptT);\n        if (pgob != this && (pvNil == pgob || !pgob->FIs(kclsDCD) || _pcfl != ((PDCD)pgob)->_pcfl))\n        {\n            pdcdNew = pvNil;\n        }\n        else\n        {\n            pdcdNew = (PDCD)pgob;\n            lnNew = pdcdNew->_LnFromYp(ptT.yp);\n\n            SEL sel = pdcdNew->_sel;\n            sel.FSetLn(lnNew);\n            grfsel = sel.GrfselGetCkiKid(&ckiNew, pvNil);\n\n            if (!(grfsel & fselCki) || tNo != _pcfl->TIsDescendent(kid.cki.ctg, kid.cki.cno, ckiNew.ctg, ckiNew.cno) ||\n                (pdcdNew == this && _sel.Ln() == sel.Ln()))\n            {\n                pdcdNew = pvNil;\n            }\n            else\n            {\n                if (grfsel & fselKid)\n                    sel.FSetCkiKid(&ckiNew);\n                lnNew = sel.Ln();\n                if (lnNew < pdcdNew->_scvVert)\n                    pdcdNew = pvNil;\n            }\n        }\n        if (pvNil == pdcdNew)\n            lnNew = lnNil;\n\n        if (pdcd != pdcdNew || ln != lnNew)\n        {\n            // target change\n            if (pvNil != pdcdNew)\n                pdcdNew->_HiliteLn(lnNew);\n            if (pvNil != pdcd)\n                pdcd->_HiliteLn(ln);\n            pdcd = pdcdNew;\n            ln = lnNew;\n        }\n    }\n    if (pvNil != pdcd)\n    {\n        pdcd->_HiliteLn(ln);\n        if (pdcd != this || ln != _sel.Ln())\n            _FDoAdoptChunkDlg(&ckiNew, &kid);\n    }\n}\n\n/***************************************************************************\n    Hilite the line (to indicate a drag target)\n***************************************************************************/\nvoid DCD::_HiliteLn(long ln)\n{\n    AssertThis(0);\n    RC rc;\n    GNV gnv(this);\n\n    gnv.GetRcSrc(&rc);\n    rc.ypTop = _YpFromLn(ln);\n    rc.ypBottom = rc.ypTop + _dypLine - _dypBorder;\n    gnv.SetPenSize(2 * _dypBorder, 2 * _dypBorder);\n    gnv.FrameRcApt(&rc, &vaptGray, kacrInvert, kacrClear);\n}\n\n/***************************************************************************\n    Reopen the file - nuking all changes since last saved.\n***************************************************************************/\nbool DCD::FCmdReopen(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertPo(pcmd, 0);\n    PDOCB pdocb;\n    CKI cki;\n    KID kid;\n    ulong grfsel;\n    long lnOld;\n\n    if (tYes != vpappb->TGiveAlertSz(PszLit(\"Nuke all changes since the last save?\"), bkYesNo, cokQuestion))\n    {\n        return fTrue;\n    }\n\n    grfsel = _sel.GrfselGetCkiKid(&cki, &kid);\n    lnOld = _sel.Ln();\n    _SetSel(lnNil);\n\n    if (!_pcfl->FReopen())\n    {\n        _SetSel(lnOld);\n        return fTrue;\n    }\n\n    InvalAllDcd(_pdocb, _pcfl);\n    if (lnNil != lnOld)\n    {\n        _SetSel(lnNil, &cki, (grfsel & fselKid) ? &kid : pvNil);\n        _ShowSel();\n    }\n\n    // get rid of all child documents\n    while (pvNil != (pdocb = _pdocb->PdocbChd()))\n    {\n        pdocb->CloseAllDdg();\n        if (pdocb == _pdocb->PdocbChd())\n        {\n            //\tREVIEW shonk: Release: is this the right thing to do?  What if\n            // someone else has a reference count to this child DOCB?\n            Bug(\"why wasn't this child doc released?\");\n            ReleasePpo(&pdocb);\n        }\n    }\n\n    _pdocb->SetDirty(fFalse);\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle key input.\n***************************************************************************/\nbool DCD::FCmdKey(PCMD_KEY pcmd)\n{\n    AssertThis(0);\n    long ln, lnLim, lnNew, cln;\n    ulong grfsel;\n    KID kid;\n    CKI cki;\n    RC rc;\n\n    ln = _sel.Ln();\n    lnLim = _sel.LnLim();\n    switch (pcmd->vk)\n    {\n    case kvkDown:\n        lnNew = (0 > ln) ? 0 : (ln + 1) % lnLim;\n        goto LChangeSel;\n\n    case kvkUp:\n        lnNew = (0 > ln) ? lnLim - 1 : (ln + lnLim - 1) % lnLim;\n        goto LChangeSel;\n\n    case kvkPageUp:\n    case kvkPageDown:\n        _GetContent(&rc);\n        cln = LwMax(1, rc.Dyp() / _dypLine - 1);\n        if (pcmd->vk == kvkPageDown)\n            lnNew = LwMin(lnLim - 1, lnNil == ln ? cln : ln + cln);\n        else\n            lnNew = LwMax(0, lnNil == ln ? 0 : ln - cln);\n        goto LChangeSel;\n\n    case kvkHome:\n        lnNew = 0;\n        goto LChangeSel;\n\n    case kvkEnd:\n        lnNew = lnLim - 1;\n    LChangeSel:\n        if (lnLim == 0)\n        {\n            Assert(lnNil == ln, \"no lines, but non-nil sel\");\n            break;\n        }\n\n        AssertIn(lnNew, 0, lnLim);\n        _SetSel(lnNew);\n        _ShowSel();\n        break;\n\n    case kvkDelete:\n    case kvkBack:\n        _ClearSel();\n        break;\n\n    case kvkReturn:\n        grfsel = _sel.GrfselGetCkiKid(&cki, &kid);\n        if (pcmd->grfcust & fcustCmd)\n        {\n            _SetSel(lnNil);\n            if (grfsel & fselKid)\n            {\n                if (_FChangeChid(&cki, &kid))\n                    InvalAllDcd(_pdocb, _pcfl);\n                _SetSel(lnNil, &cki, &kid);\n                _ShowSel();\n            }\n            else\n            {\n                if (_FEditChunkInfo(&cki))\n                    InvalAllDcd(_pdocb, _pcfl);\n                _SetSel(lnNil, &cki);\n                _ShowSel();\n            }\n        }\n        else\n        {\n            if (grfsel & fselKid)\n            {\n                _SetSel(lnNil, &kid.cki);\n                _ShowSel();\n            }\n            else if (grfsel & fselCki)\n            {\n                // edit the chunk\n                _ShowSel();\n                _EditCki(&cki, cidEditNatural);\n            }\n        }\n        break;\n\n    default:\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the maximum for the indicated scroll bar.\n***************************************************************************/\nlong DCD::_ScvMax(bool fVert)\n{\n    AssertThis(0);\n\n    if (fVert)\n    {\n        RC rc;\n\n        _GetContent(&rc);\n        return LwMax(0, _sel.LnLim() - rc.Dyp() / _dypLine + 1);\n    }\n    return 320;\n}\n\n/***************************************************************************\n    Handle enabling/disabling DCD commands.\n***************************************************************************/\nbool DCD::FEnableDcdCmd(PCMD pcmd, ulong *pgrfeds)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    AssertVarMem(pgrfeds);\n    CKI cki;\n\n    switch (pcmd->cid)\n    {\n    case cidUnadoptChunk:\n    case cidChangeChid:\n        if (ivNil == _sel.Ikid())\n            goto LDisable;\n        break;\n\n    case cidPlaySound:\n        if (fselCki != _sel.GrfselGetCkiKid(&cki, pvNil))\n            goto LDisable;\n        if (cki.ctg != kctgWave && cki.ctg != kctgMidi)\n            goto LDisable;\n        break;\n\n    case cidDeleteChunk:\n    case cidUndeleteChunk:\n    case cidEditNatural:\n    case cidEditHex:\n    case cidEditGL:\n    case cidEditAL:\n    case cidEditGG:\n    case cidEditAG:\n    case cidEditGST:\n    case cidEditAST:\n    case cidEditPic:\n    case cidEditMbmp:\n    case cidTestScript:\n    case cidRunScriptCache:\n    case cidDisassembleScript:\n    case cidEditChunkInfo:\n    case cidSetColorTable:\n    case cidPack:\n    case cidTogglePack:\n    case cidCloneChunk:\n        if (fselCki != _sel.GrfselGetCkiKid(pvNil, pvNil))\n            goto LDisable;\n        break;\n\n    default:\n        BugVar(\"unhandled command in FEnableDcdCmd\", &pcmd->cid);\n    LDisable:\n        *pgrfeds = fedsDisable;\n        return fTrue;\n    }\n\n    *pgrfeds = fedsEnable;\n    return fTrue;\n}\n\n/***************************************************************************\n    Put up the dialog and add the chunk.\n***************************************************************************/\nbool DCD::_FAddChunk(CTG ctgDef, CKI *pcki, bool *pfCreated)\n{\n    AssertVarMem(pcki);\n    AssertVarMem(pfCreated);\n    long idit;\n    long lw;\n    bool fEmpty;\n    PDLG pdlg;\n    ADCD adcd;\n    STN stn;\n\n    // put up the dialog\n    adcd.pcfl = _pcfl;\n    adcd.fCkiValid = fFalse;\n    pdlg = DLG::PdlgNew(dlidChunkInfo, _FDlgAddChunk, &adcd);\n    if (pvNil == pdlg)\n        goto LCancel;\n    if (ctgNil != ctgDef)\n    {\n        _PutCtgStn(pdlg, kiditCtgInfo, ctgDef);\n        idit = kiditCnoInfo;\n    }\n    else\n        idit = kiditCtgInfo;\n    idit = pdlg->IditDo(idit);\n    if (idit != kiditOkInfo)\n        goto LCancel;\n\n    if (!_FGetCtg(pdlg, kiditCtgInfo, &pcki->ctg) || !pdlg->FGetLwFromEdit(kiditCnoInfo, &lw, &fEmpty) && !fEmpty)\n    {\n        goto LFail;\n    }\n    pcki->cno = lw;\n    pdlg->GetStn(kiditNameInfo, &stn);\n    ReleasePpo(&pdlg);\n\n    if (fEmpty)\n    {\n        if (!_pcfl->FAdd(0, pcki->ctg, &pcki->cno))\n            goto LFail;\n        *pfCreated = fTrue;\n    }\n    else\n    {\n        *pfCreated = !_pcfl->FFind(pcki->ctg, pcki->cno);\n        if (*pfCreated && !_pcfl->FPut(0, pcki->ctg, pcki->cno))\n        {\n        LFail:\n            vpappb->TGiveAlertSz(PszLit(\"Writing chunk failed\"), bkOk, cokExclamation);\n        LCancel:\n            ReleasePpo(&pdlg);\n            TrashVar(pcki);\n            TrashVar(pfCreated);\n            return fFalse;\n        }\n    }\n    if (stn.Cch() != 0)\n    {\n        if (!_pcfl->FSetName(pcki->ctg, pcki->cno, &stn))\n            Warn(\"can't set name\");\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle command to add a chunk.\n***************************************************************************/\nbool DCD::FCmdAddChunk(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CKI cki;\n    long lnOld;\n    bool fCreated;\n\n    // save and clear the sel\n    lnOld = _sel.Ln();\n    _SetSel(lnNil);\n\n    if (!_FAddChunk(ctgNil, &cki, &fCreated))\n    {\n        pcmd->cid = cidNil; // don't record\n        _SetSel(lnOld);\n        return fTrue;\n    }\n\n    InvalAllDcd(_pdocb, _pcfl);\n    _SetSel(lnNil, &cki);\n    _ShowSel();\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle command to add a chunk.\n***************************************************************************/\nbool DCD::FCmdAddPicChunk(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CKI cki;\n    BLCK blck;\n    long cb;\n    long lnOld;\n    FNI fni;\n    bool fCreated;\n    PPIC ppic = pvNil;\n\n    // save and clear the sel\n    lnOld = _sel.Ln();\n    _SetSel(lnNil);\n\n    // get the fni of the file to add\n    Mac(FTG ftg = 'PICT';) if (!FGetFniOpenMacro(&fni, &ftg, 1, PszLit(\"MetaFiles\\0*.EMF;*.WMF\\0\"), vwig.hwndApp))\n    {\n        goto LCancel;\n    }\n    if (pvNil == (ppic = PIC::PpicReadNative(&fni)))\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Reading picture file failed\"), bkOk, cokExclamation);\n        goto LCancel;\n    }\n\n    // add the chunk and write the data\n    if (!_FAddChunk(kctgPictNative, &cki, &fCreated))\n        goto LCancel;\n    cb = ppic->CbOnFile();\n    if (!_pcfl->FPut(cb, cki.ctg, cki.cno, &blck) || !ppic->FWrite(&blck))\n    {\n        if (fCreated)\n            _pcfl->Delete(cki.ctg, cki.cno);\n        vpappb->TGiveAlertSz(PszLit(\"Writing chunk failed\"), bkOk, cokExclamation);\n    LCancel:\n        ReleasePpo(&ppic);\n        pcmd->cid = cidNil; // don't record\n        _SetSel(lnOld);\n        return fTrue;\n    }\n    ReleasePpo(&ppic);\n\n    InvalAllDcd(_pdocb, _pcfl);\n    _SetSel(lnNil, &cki);\n    _ShowSel();\n    return fTrue;\n}\n\n/***************************************************************************\n    Masked bitmap dialog\n***************************************************************************/\nenum\n{\n    kiditOkMbmp,\n    kiditCancelMbmp,\n    kiditPixelMbmp,\n    kiditXPosMbmp,\n    kiditYPosMbmp,\n    kiditDefaultMbmp,\n    kiditLimMbmp\n};\nbool _FDlgMbmp(PDLG pdlg, long *pidit, void *pv);\n\n/****************************************************************************\n    Dialog proc for input of transparent pixel value and reference point\n****************************************************************************/\nbool _FDlgMbmp(PDLG pdlg, long *pidit, void *pv)\n{\n    AssertPo(pdlg, 0);\n    AssertVarMem(pidit);\n    long lw;\n\n    switch (*pidit)\n    {\n    case kiditCancelMbmp:\n        return fTrue;\n    case kiditOkMbmp:\n        if (!pdlg->FGetValues(0, kiditLimMbmp))\n        {\n            *pidit = ivNil;\n            return fTrue;\n        }\n        if (!pdlg->FGetLwFromEdit(kiditPixelMbmp, &lw) || !FIn(lw, 0, (long)kbMax + 1))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"The transparent pixel value must be \") PszLit(\"between 0 and 255.\"), bkOk,\n                                 cokStop);\n            pdlg->SelectDit(kiditPixelMbmp);\n            return fFalse;\n        }\n        if (!pdlg->FGetLwFromEdit(kiditXPosMbmp, &lw))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"The X Position must be an integer.\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditXPosMbmp);\n            return fFalse;\n        }\n        if (!pdlg->FGetLwFromEdit(kiditYPosMbmp, &lw))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"The Y Position must be an integer.\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditYPosMbmp);\n            return fFalse;\n        }\n        return fTrue;\n    default:\n        break;\n    }\n    return fFalse;\n}\n\n/***************************************************************************\n    Handle command to add Mbmp or chunk.\n***************************************************************************/\nbool DCD::FCmdAddBitmapChunk(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CKI cki;\n    BLCK blck;\n    long lw;\n    long lnOld;\n    FNI fni;\n    bool fCreated;\n    byte bTransparent;\n    long xp, yp;\n    bool fMask = pcmd->cid != cidAddMbmpChunk;\n    PBACO pbaco = pvNil;\n    CTG ctg;\n    PDLG pdlg = pvNil;\n\n    // save and clear the sel\n    lnOld = _sel.Ln();\n    _SetSel(lnNil);\n\n    // get the fni of the file to add\n    Mac(FTG ftg = '\\0BMP';) // REVIEW shonk: this is bogus\n        if (!FGetFniOpenMacro(&fni, &ftg, 1, PszLit(\"Bitmaps\\0*.BMP\\0\"), vwig.hwndApp)) goto LCancel;\n\n    // get the transparent pixel value\n    pdlg = DLG::PdlgNew(dlidMbmp, _FDlgMbmp);\n    if (pvNil == pdlg)\n        goto LCancel;\n    // put up the initial values\n    pdlg->FPutLwInEdit(kiditPixelMbmp, 0);\n    pdlg->FPutLwInEdit(kiditXPosMbmp, 0);\n    pdlg->FPutLwInEdit(kiditYPosMbmp, 0);\n    if (pdlg->IditDo(kiditPixelMbmp) != kiditOkMbmp)\n        goto LErrDlg;\n    if (!pdlg->FGetLwFromEdit(kiditPixelMbmp, &lw) || !FIn(lw, 0, (long)kbMax + 1))\n    {\n        goto LErrDlg;\n    }\n    bTransparent = (byte)lw;\n\n    if (!pdlg->FGetLwFromEdit(kiditXPosMbmp, &lw))\n        goto LErrDlg;\n    xp = lw;\n    if (!pdlg->FGetLwFromEdit(kiditXPosMbmp, &lw))\n    {\n    LErrDlg:\n        ReleasePpo(&pdlg);\n        goto LCancel;\n    }\n    yp = lw;\n    ReleasePpo(&pdlg);\n\n    if (pvNil == (pbaco = MBMP::PmbmpReadNative(&fni, bTransparent, xp, yp, fMask ? fmbmpMask : fmbmpNil)))\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Reading bitmap file failed\"), bkOk, cokExclamation);\n        goto LCancel;\n    }\n    ctg = fMask ? kctgMask : kctgMbmp;\n\n    // add the chunk and write the data\n    if (!_FAddChunk(ctg, &cki, &fCreated))\n        goto LCancel;\n\n    if (!_pcfl->FPut(pbaco->CbOnFile(), cki.ctg, cki.cno, &blck) || !pbaco->FWrite(&blck))\n    {\n        if (fCreated)\n            _pcfl->Delete(cki.ctg, cki.cno);\n        vpappb->TGiveAlertSz(PszLit(\"Writing chunk failed\"), bkOk, cokExclamation);\n    LCancel:\n        ReleasePpo(&pbaco);\n        pcmd->cid = cidNil; // don't record\n        _SetSel(lnOld);\n        return fTrue;\n    }\n    ReleasePpo(&pbaco);\n\n    InvalAllDcd(_pdocb, _pcfl);\n    _SetSel(lnNil, &cki);\n    _ShowSel();\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle command to add a chunk that is a copy of a file's contents.\n***************************************************************************/\nbool DCD::FCmdAddFileChunk(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CKI cki;\n    PFIL pfil;\n    BLCK blck;\n    long lnOld;\n    FNI fni;\n    bool fCreated;\n\n    // save and clear the sel\n    lnOld = _sel.Ln();\n    _SetSel(lnNil);\n\n    // get the fni of the file to add\n    if (!FGetFniOpenMacro(&fni, pvNil, 0, PszLit(\"All files\\0*.*\\0\"), vwig.hwndApp))\n        goto LCancel;\n    if (pvNil == (pfil = FIL::PfilOpen(&fni)))\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Opening file failed\"), bkOk, cokExclamation);\n        goto LCancel;\n    }\n    blck.Set(pfil, 0, pfil->FpMac());\n    ReleasePpo(&pfil);\n\n    // add the chunk and write the data\n    if (!_FAddChunk(ctgNil, &cki, &fCreated))\n        goto LCancel;\n    if (!_pcfl->FPutBlck(&blck, cki.ctg, cki.cno))\n    {\n        if (fCreated)\n            _pcfl->Delete(cki.ctg, cki.cno);\n        vpappb->TGiveAlertSz(PszLit(\"Writing chunk failed\"), bkOk, cokExclamation);\n    LCancel:\n        pcmd->cid = cidNil; // don't record\n        _SetSel(lnOld);\n        return fTrue;\n    }\n\n    InvalAllDcd(_pdocb, _pcfl);\n    _SetSel(lnNil, &cki);\n    _ShowSel();\n    return fTrue;\n}\n\n/**************************************************************************\n    Edit Chunk Information dialog\n**************************************************************************/\n\n// This struct is needed so _FDlgEditChunkInfo() has access to the chunk\n// and chunky file and so _FDlgChangeChunk() has access to the parent and\n// child chunks and the chunky file.\nstruct CLAN\n{\n    CKI cki;\n    KID kid;\n    PCFL pcfl;\n};\n\nbool _FDlgEditChunkInfo(PDLG pdlg, long *pidit, void *pv);\n\n/**************************************************************************\n    Dialog proc for Edit Chunk Info dialog. *pv should be a CLAN *, with\n    the cki and pcfl fields filled in (the kid field is not used).\n**************************************************************************/\nbool _FDlgEditChunkInfo(PDLG pdlg, long *pidit, void *pv)\n{\n    AssertPo(pdlg, 0);\n    AssertVarMem(pidit);\n    CKI cki;\n    long lw;\n    bool fEmpty;\n    CLAN *pclan = (CLAN *)pv;\n    AssertVarMem(pclan);\n    AssertPo(pclan->pcfl, 0);\n\n    switch (*pidit)\n    {\n    case kiditCancelInfo:\n        return fTrue; // dismiss the dialog\n    case kiditOkInfo:\n        if (!pdlg->FGetValues(0, kiditLimInfo))\n        {\n            *pidit = ivNil;\n            return fTrue;\n        }\n\n        // check the chunk\n        if (!_FGetCtg(pdlg, kiditCtgInfo, &cki.ctg))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"CTG is bad\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditCtgInfo);\n            return fFalse;\n        }\n        if (!pdlg->FGetLwFromEdit(kiditCnoInfo, &lw, &fEmpty))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"CNO is bad\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditCnoInfo);\n            return fFalse;\n        }\n        cki.cno = lw;\n        if (pclan->pcfl->FFind(cki.ctg, cki.cno) && (cki.ctg != pclan->cki.ctg || cki.cno != pclan->cki.cno))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"That CTG/CNO pair already exists\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditCtgInfo);\n            return fFalse;\n        }\n        return fTrue;\n    default:\n        break;\n    }\n    return fFalse;\n}\n\n/****************************************************************************\n    Put up the dialog with initial values and edit the chunk. This function\n    will update *pckiOld to contain the new ctg and cno values.\n****************************************************************************/\nbool DCD::_FEditChunkInfo(CKI *pckiOld)\n{\n    AssertVarMem(pckiOld);\n    long idit;\n    long lw;\n    PDLG pdlg;\n    STN stn;\n    CLAN clan;\n    CKI cki;\n\n    clan.pcfl = _pcfl;\n    clan.cki = *pckiOld;\n    TrashVar(&clan.kid);\n    // put up the dialog\n    pdlg = DLG::PdlgNew(dlidChunkInfo, _FDlgEditChunkInfo, &clan);\n    if (pvNil == pdlg)\n        return fFalse;\n\n    // set the initial values\n    idit = kiditCtgInfo;\n    _PutCtgStn(pdlg, kiditCtgInfo, pckiOld->ctg);\n    pdlg->FPutLwInEdit(kiditCnoInfo, pckiOld->cno);\n    _pcfl->FGetName(pckiOld->ctg, pckiOld->cno, &stn);\n    pdlg->FPutStn(kiditNameInfo, &stn);\n\n    idit = pdlg->IditDo(idit);\n    if (idit != kiditOkInfo || !_FGetCtg(pdlg, kiditCtgInfo, &cki.ctg) || !pdlg->FGetLwFromEdit(kiditCnoInfo, &lw))\n    {\n        ReleasePpo(&pdlg);\n        return fFalse;\n    }\n    pdlg->GetStn(kiditNameInfo, &stn);\n    ReleasePpo(&pdlg);\n    cki.cno = lw;\n\n    if (cki.ctg != pckiOld->ctg || cki.cno != pckiOld->cno)\n        _pcfl->Move(pckiOld->ctg, pckiOld->cno, cki.ctg, cki.cno);\n\n    // set the original cki to the new cki so the caller has the new chunk\n    pckiOld->ctg = cki.ctg;\n    pckiOld->cno = cki.cno;\n\n    if (!_pcfl->FSetName(cki.ctg, cki.cno, &stn))\n        Warn(\"can't set new name\");\n\n    return fTrue;\n}\n\n/**************************************************************************\n    Handle command to edit chunk information.\n**************************************************************************/\nbool DCD::FCmdEditChunkInfo(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CKI cki;\n    long lnOld;\n\n    // record, save, and clear the sel\n    if (fselCki != _sel.GrfselGetCkiKid(&cki, pvNil))\n        goto LFail;\n    lnOld = _sel.Ln();\n    _SetSel(lnNil);\n\n    if (!_FEditChunkInfo(&cki))\n    {\n        _SetSel(lnOld);\n    LFail:\n        pcmd->cid = cidNil; // don't record\n        return fTrue;\n    }\n\n    // refresh the window and reset the selection\n    InvalAllDcd(_pdocb, _pcfl);\n    _SetSel(lnNil, &cki);\n    _ShowSel();\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle command to delete a chunk.\n***************************************************************************/\nbool DCD::FCmdDeleteChunk(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CKI cki;\n\n    if (fselCki != _sel.GrfselGetCkiKid(&cki, pvNil))\n        goto LCancel;\n\n    if (pcmd->cid == cidDeleteChunk)\n    {\n        _pcfl->SetLoner(cki.ctg, cki.cno, fFalse);\n        DOCE::CloseDeletedDoce(_pdocb);\n        InvalAllDcd(_pdocb, _pcfl);\n        _ShowSel();\n    }\n    else\n    {\n        _pcfl->SetLoner(cki.ctg, cki.cno, fTrue);\n        InvalAllDcd(_pdocb, _pcfl, &cki);\n        _ShowSel();\n    }\n\n    return fTrue;\n\nLCancel:\n    pcmd->cid = cidNil; // don't record\n    return fTrue;\n}\n\n/**************************************************************************\n    Change CHID dialog\n**************************************************************************/\nenum\n{\n    kiditOkChid,\n    kiditCancelChid,\n    kiditChidChid,\n    kiditLimChid\n};\n\nbool _FDlgChangeChid(PDLG pdlg, long *pidit, void *pv);\n\n/**************************************************************************\n    Dialog proc for Change CHID dialog.\n**************************************************************************/\nbool _FDlgChangeChid(PDLG pdlg, long *pidit, void *pv)\n{\n    AssertPo(pdlg, 0);\n    AssertVarMem(pidit);\n    CHID chid;\n    long lw;\n    long ikid;\n    CLAN *pclan = (CLAN *)pv;\n    AssertVarMem(pclan);\n    AssertPo(pclan->pcfl, 0);\n\n    switch (*pidit)\n    {\n    case kiditCancelChid:\n        return fTrue; // dismiss the dialog\n    case kiditOkChid:\n        if (!pdlg->FGetValues(kiditChidChid, kiditLimChid))\n        {\n            *pidit = ivNil;\n            return fTrue;\n        }\n\n        // get the new chid\n        if (!pdlg->FGetLwFromEdit(kiditChidChid, &lw))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"CHID value is bad\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditChidChid);\n            return fFalse;\n        }\n        chid = lw;\n\n        // check the new chid to make sure that the CTG/CNO/new CHID does not\n        // already exist\n        if (pclan->pcfl->FGetIkid(pclan->cki.ctg, pclan->cki.cno, pclan->kid.cki.ctg, pclan->kid.cki.cno, chid,\n                                  &ikid) &&\n            chid != pclan->kid.chid)\n        {\n            vpappb->TGiveAlertSz(PszLit(\"This parent/child relationship already exists.\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditChidChid);\n            return fFalse;\n        }\n        return fTrue;\n    default:\n        break;\n    }\n    return fFalse;\n}\n\n/****************************************************************************\n    Put up the dialog with initial values and change the CHID. *pkid will be\n    affected to reflect this change.\n****************************************************************************/\nbool DCD::_FChangeChid(CKI *pcki, KID *pkid)\n{\n    AssertVarMem(pcki);\n    AssertVarMem(pkid);\n    long idit;\n    CHID chid;\n    PDLG pdlg;\n    long lw;\n    CLAN clan;\n\n    clan.cki = *pcki;\n    clan.kid = *pkid;\n    clan.pcfl = _pcfl;\n\n    // put up the dialog\n    pdlg = DLG::PdlgNew(dlidChangeChid, _FDlgChangeChid, &clan);\n    if (pvNil == pdlg)\n        return fFalse;\n\n    // set the initial value\n    pdlg->FPutLwInEdit(kiditChidChid, pkid->chid);\n\n    idit = pdlg->IditDo(kiditChidChid);\n    if (idit != kiditOkChid || !pdlg->FGetLwFromEdit(kiditChidChid, &lw))\n    {\n        ReleasePpo(&pdlg);\n        return fFalse;\n    }\n    chid = lw;\n    ReleasePpo(&pdlg);\n\n    // If new CHID is different, unadopt and adopt child to change CHID.\n    // This is easier than directly changing the GG which keeps track of the\n    // parent and its children.\n    if (chid != pkid->chid)\n    {\n        _pcfl->ChangeChid(pcki->ctg, pcki->cno, pkid->cki.ctg, pkid->cki.cno, pkid->chid, chid);\n        // set the new CHID so the caller has the right kid\n        pkid->chid = chid;\n    }\n\n    return fTrue;\n}\n\n/**************************************************************************\n    Handle command to change the CHID.\n**************************************************************************/\nbool DCD::FCmdChangeChid(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CKI cki;\n    KID kid;\n    long lnOld;\n\n    // record, save, and clear the sel\n    if (ivNil == _sel.Icki() || ivNil == _sel.Ikid())\n        goto LFail;\n    _sel.GrfselGetCkiKid(&cki, &kid);\n    lnOld = _sel.Ln();\n    _SetSel(lnNil);\n\n    if (!_FChangeChid(&cki, &kid))\n    {\n        _SetSel(lnOld);\n    LFail:\n        pcmd->cid = cidNil; // don't record\n        return fTrue;\n    }\n\n    InvalAllDcd(_pdocb, _pcfl);\n    _SetSel(lnNil, &cki, &kid);\n    _ShowSel();\n    return fTrue;\n}\n\n/****************************************\n    Adopt Chunk dialog\n****************************************/\nenum\n{\n    kiditOkAdopt,\n    kiditCancelAdopt,\n    kiditCtgParAdopt,\n    kiditCnoParAdopt,\n    kiditCtgChdAdopt,\n    kiditCnoChdAdopt,\n    kiditChidAdopt,\n    kiditLimAdopt\n};\nbool _FDlgAdoptChunk(PDLG pdlg, long *pidit, void *pv);\n\n/***************************************************************************\n    Dialog proc for Adopt Chunk dialog.\n***************************************************************************/\nbool _FDlgAdoptChunk(PDLG pdlg, long *pidit, void *pv)\n{\n    AssertPo(pdlg, 0);\n    AssertVarMem(pidit);\n    long lw;\n    CKI cki;\n    KID kid;\n    long ikid;\n    bool fEmpty;\n    PCFL pcfl = (PCFL)pv;\n\n    AssertPo(pcfl, 0);\n    switch (*pidit)\n    {\n    case kiditCancelAdopt:\n        return fTrue; // dismiss the dialog\n\n    case kiditOkAdopt:\n        if (!pdlg->FGetValues(0, kiditLimAdopt))\n        {\n            *pidit = ivNil;\n            return fTrue;\n        }\n\n        // check the parent\n        if (!_FGetCtg(pdlg, kiditCtgParAdopt, &cki.ctg))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Parent CTG is bad\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditCtgParAdopt);\n            return fFalse;\n        }\n        if (!pdlg->FGetLwFromEdit(kiditCnoParAdopt, &lw))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Parent CNO is bad\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditCnoParAdopt);\n            return fFalse;\n        }\n        cki.cno = lw;\n        if (!pcfl->FFind(cki.ctg, cki.cno))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Parent chunk doesn't exist\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditCtgParAdopt);\n            return fFalse;\n        }\n\n        // check the child\n        if (!_FGetCtg(pdlg, kiditCtgChdAdopt, &kid.cki.ctg))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Child CTG is bad\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditCtgChdAdopt);\n            return fFalse;\n        }\n        if (!pdlg->FGetLwFromEdit(kiditCnoChdAdopt, &lw))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Child CNO is bad\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditCnoChdAdopt);\n            return fFalse;\n        }\n        kid.cki.cno = lw;\n        if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Child chunk doesn't exist\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditCtgChdAdopt);\n            return fFalse;\n        }\n\n        // check the chid\n        if (!pdlg->FGetLwFromEdit(kiditChidAdopt, &lw, &fEmpty) && !fEmpty)\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Child ID value is bad\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditChidAdopt);\n            return fFalse;\n        }\n        kid.chid = lw;\n\n        // see if this child-parent relationship already exists\n        if (pcfl->FGetIkid(cki.ctg, cki.cno, kid.cki.ctg, kid.cki.cno, kid.chid, &ikid) && !fEmpty)\n        {\n            vpappb->TGiveAlertSz(PszLit(\"This parent/child relationship already exists.\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditChidAdopt);\n            return fFalse;\n        }\n\n        // see if a loop would be formed\n        if (pcfl->TIsDescendent(kid.cki.ctg, kid.cki.cno, cki.ctg, cki.cno))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Adopting this child would form a loop\")\n                                     PszLit(\" in the chunky file graph structure\"),\n                                 bkOk, cokStop);\n            return fFalse;\n        }\n\n        return fTrue;\n\n    default:\n        break;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Put up and handle the adopt dialog with the given initial values\n    (if not nil).\n***************************************************************************/\nbool DCD::_FDoAdoptChunkDlg(CKI *pcki, KID *pkid)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pcki);\n    AssertNilOrVarMem(pkid);\n    long idit;\n    CKI cki;\n    KID kid;\n    long lnOld;\n    long lw1, lw2, lw3;\n    bool fEmptyChid;\n    PDLG pdlg = pvNil;\n\n    // put up the dialog\n    pdlg = DLG::PdlgNew(dlidAdoptChunk, _FDlgAdoptChunk, _pcfl);\n    if (pvNil == pdlg)\n        return fFalse;\n\n    // set the initial values\n    idit = kiditCtgParAdopt;\n    if (pvNil != pcki)\n    {\n        _PutCtgStn(pdlg, kiditCtgParAdopt, pcki->ctg);\n        pdlg->FPutLwInEdit(kiditCnoParAdopt, pcki->cno);\n        idit = kiditCtgChdAdopt;\n    }\n    if (pvNil != pkid)\n    {\n        _PutCtgStn(pdlg, kiditCtgChdAdopt, pkid->cki.ctg);\n        pdlg->FPutLwInEdit(kiditCnoChdAdopt, pkid->cki.cno);\n        pdlg->FPutLwInEdit(kiditChidAdopt, pkid->chid);\n        idit = kiditChidAdopt;\n    }\n\n    // save and clear the old sel\n    lnOld = _sel.Ln();\n    _SetSel(lnNil);\n\n    idit = pdlg->IditDo(idit);\n    if (idit != kiditOkAdopt)\n        goto LCancel;\n\n    if (!_FGetCtg(pdlg, kiditCtgParAdopt, &cki.ctg) || !pdlg->FGetLwFromEdit(kiditCnoParAdopt, &lw1) ||\n        !_FGetCtg(pdlg, kiditCtgChdAdopt, &kid.cki.ctg) || !pdlg->FGetLwFromEdit(kiditCnoChdAdopt, &lw2) ||\n        !pdlg->FGetLwFromEdit(kiditChidAdopt, &lw3, &fEmptyChid) && !fEmptyChid)\n    {\n        goto LFail;\n    }\n    ReleasePpo(&pdlg);\n    cki.cno = lw1;\n    kid.cki.cno = lw2;\n    kid.chid = lw3;\n\n    if (!_pcfl->FFind(cki.ctg, cki.cno) || !_pcfl->FFind(kid.cki.ctg, kid.cki.cno))\n    {\n        goto LFail;\n    }\n    if (!_pcfl->FAdoptChild(cki.ctg, cki.cno, kid.cki.ctg, kid.cki.cno, kid.chid))\n    {\n    LFail:\n        vpappb->TGiveAlertSz(PszLit(\"Adopting chunk failed.\"), bkOk, cokExclamation);\n    LCancel:\n        ReleasePpo(&pdlg);\n        _SetSel(lnOld);\n        return fFalse;\n    }\n\n    InvalAllDcd(_pdocb, _pcfl);\n    _SetSel(lnNil, &cki, &kid);\n    _ShowSel();\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle command to adopt a chunk.\n***************************************************************************/\nbool DCD::FCmdAdoptChunk(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CKI cki;\n    CKI *pcki;\n    PDLG pdlg = pvNil;\n\n    if (fselCki & _sel.GrfselGetCkiKid(&cki, pvNil))\n        pcki = &cki;\n    else\n        pcki = pvNil;\n\n    if (!_FDoAdoptChunkDlg(pcki, pvNil))\n        pcmd->cid = cidNil;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle command to unadopt a chunk.\n***************************************************************************/\nbool DCD::FCmdUnadoptChunk(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CKI cki;\n    KID kid;\n\n    if (!(_sel.GrfselGetCkiKid(&cki, &kid) & fselKid))\n    {\n        pcmd->cid = cidNil; // don't record\n        return fTrue;\n    }\n\n    _pcfl->DeleteChild(cki.ctg, cki.cno, kid.cki.ctg, kid.cki.cno, kid.chid);\n\n    InvalAllDcd(_pdocb, _pcfl);\n    _ShowSel();\n    return fTrue;\n}\n\n/***************************************************************************\n    Handles commands to edit a chunk.\n***************************************************************************/\nbool DCD::FCmdEditChunk(PCMD pcmd)\n{\n    CKI cki;\n\n    if (fselCki != _sel.GrfselGetCkiKid(&cki, pvNil))\n        return fFalse;\n\n    _EditCki(&cki, pcmd->cid);\n    return fTrue;\n}\n\n/***************************************************************************\n    Opens a window onto the CKI's data.\n***************************************************************************/\nvoid DCD::_EditCki(CKI *pcki, long cid)\n{\n    AssertThis(0);\n    AssertVarMem(pcki);\n    PDOCE pdoce;\n    long cls;\n    CTG ctg;\n\n    // check for a doce already open on the chunk.\n    if (pvNil != (pdoce = DOCE::PdoceFromChunk(_pdocb, _pcfl, pcki->ctg, pcki->cno)))\n    {\n        pdoce->ActivateDmd();\n        return;\n    }\n\n    switch (cid)\n    {\n    case cidEditNatural:\n        ctg = pcki->ctg;\n\n        // handle 4 character ctg's\n        switch (ctg)\n        {\n        case kctgPictNative:\n            goto LPic;\n        case kctgMbmp:\n        case kctgMask:\n            goto LMbmp;\n        case kctgWave:\n        case kctgMidi:\n            goto LSound;\n        default:\n            break;\n        }\n\n        // handle 3 character ctg's\n        ctg = ctg & 0xFFFFFF00L | 0x00000020L;\n        switch (ctg)\n        {\n        case kctgGst:\n            cls = kclsGST;\n            goto LDocg;\n        case kctgAst:\n            cls = kclsAST;\n            goto LDocg;\n        default:\n            break;\n        }\n\n        // handle 2 character ctg's\n        ctg = ctg & 0xFFFF0000L | 0x00002020L;\n        switch (ctg)\n        {\n        case kctgGl:\n            cls = kclsGL;\n            goto LDocg;\n        case kctgAl:\n            cls = kclsAL;\n            goto LDocg;\n        case kctgGg:\n            cls = kclsGG;\n            goto LDocg;\n        case kctgAg:\n            cls = kclsAG;\n            goto LDocg;\n        default:\n            break;\n        }\n        // fall through\n    case cidEditHex:\n    LHex:\n        cid = cidEditHex;\n        pdoce = DOCH::PdochNew(_pdocb, _pcfl, pcki->ctg, pcki->cno);\n        break;\n\n    case cidEditGL:\n        cls = kclsGL;\n        goto LDocg;\n    case cidEditAL:\n        cls = kclsAL;\n        goto LDocg;\n    case cidEditGG:\n        cls = kclsGG;\n        goto LDocg;\n    case cidEditAG:\n        cls = kclsAG;\n        goto LDocg;\n    case cidEditGST:\n        cls = kclsGST;\n        goto LDocg;\n    case cidEditAST:\n        cls = kclsAST;\n    LDocg:\n        pdoce = DOCG::PdocgNew(_pdocb, _pcfl, pcki->ctg, pcki->cno, cls);\n        break;\n\n    case cidEditPic:\n    LPic:\n        pdoce = DOCPIC::PdocpicNew(_pdocb, _pcfl, pcki->ctg, pcki->cno);\n        break;\n    case cidEditMbmp:\n    LMbmp:\n        pdoce = DOCMBMP::PdocmbmpNew(_pdocb, _pcfl, pcki->ctg, pcki->cno);\n        break;\n\n    case cidPlaySound:\n    LSound:\n        if ((pcki->ctg == kctgMidi || pcki->ctg == kctgWave) && pvNil != vpsndm)\n        {\n            // play once\n            PCRF pcrf;\n\n            if (pvNil == (pcrf = CRF::PcrfNew(_pcfl, 1)))\n            {\n                ReleasePpo(&pcrf);\n                // edit as hex\n                break;\n            }\n\n            vpsndm->SiiPlay(pcrf, pcki->ctg, pcki->cno);\n            ReleasePpo(&pcrf);\n            return;\n        }\n\n        // edit as hex\n        break;\n\n    default:\n        BugVar(\"unknown cid\", &cid);\n        return;\n    }\n\n    if (pvNil == pdoce)\n    {\n        if (cid == cidEditNatural)\n        {\n            // our guess at a natural type may have been wrong, so just\n            // edit as hex\n            goto LHex;\n        }\n        else if (cid != cidEditHex)\n        {\n            vpappb->TGiveAlertSz(PszLit(\"This chunk doesn't fit that format.\"), bkOk, cokInformation);\n        }\n        return;\n    }\n\n    pdoce->PdmdNew();\n    ReleasePpo(&pdoce);\n}\n\n/***************************************************************************\n    Handle command to compile and add a script chunk.\n***************************************************************************/\nbool DCD::FCmdImportScript(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    SCCG sccg;\n    CKI cki;\n    long lnOld;\n    FNI fni;\n    bool fCreated;\n    MSFIL msfil;\n    PSCPT pscpt = pvNil;\n\n    // save and clear the sel\n    lnOld = _sel.Ln();\n    _SetSel(lnNil);\n\n    // get the fni of the file to add\n    Mac(FTG ftg = 'TEXT';) if (!FGetFniOpenMacro(&fni, &ftg, 1, PszLit(\"All files\\0*.*\\0\"), vwig.hwndApp)) goto LCancel;\n    if (pvNil == (pscpt = sccg.PscptCompileFni(&fni, pcmd->cid == cidCompileInScript, &msfil)))\n    {\n        // if the error file isn't empty, open it\n        vpappb->TGiveAlertSz(PszLit(\"Compiling script failed\"), bkOk, cokExclamation);\n        pcmd->cid = cidNil; // don't record\n        _SetSel(lnOld);\n        OpenSinkDoc(&msfil);\n        return fTrue;\n    }\n\n    // add the chunk and write the data\n    if (!_FAddChunk(kctgScript, &cki, &fCreated))\n        goto LCancel;\n    if (!pscpt->FSaveToChunk(_pcfl, cki.ctg, cki.cno))\n    {\n        if (fCreated)\n            _pcfl->Delete(cki.ctg, cki.cno);\n        vpappb->TGiveAlertSz(PszLit(\"Writing chunk failed\"), bkOk, cokExclamation);\n    LCancel:\n        ReleasePpo(&pscpt);\n        pcmd->cid = cidNil; // don't record\n        _SetSel(lnOld);\n        return fTrue;\n    }\n    ReleasePpo(&pscpt);\n\n    InvalAllDcd(_pdocb, _pcfl, &cki);\n    _SetSel(lnNil, &cki);\n    _ShowSel();\n    return fTrue;\n}\n\n/***************************************************************************\n    Draw routine for a test-script gob - just erase the gob.\n***************************************************************************/\nvoid TSCG::Draw(PGNV pgnv, RC *prcClip)\n{\n    pgnv->FillRc(prcClip, kacrWhite);\n}\n\nenum\n{\n    kiditOkScript,\n    kiditCancelScript,\n    kiditSizeScript,\n    kiditLimScript\n};\n\n/***************************************************************************\n    Open a new window and run a script in it.\n***************************************************************************/\nbool DCD::FCmdTestScript(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CKI cki;\n    long cbCache;\n\n    if (fselCki != _sel.GrfselGetCkiKid(&cki, pvNil))\n        return fFalse;\n\n    if (pcmd->cid == cidRunScriptCache)\n    {\n        // get the cache size from the user\n        PDLG pdlg;\n\n        // get the cache size\n        pdlg = DLG::PdlgNew(dlidScriptCache);\n        if (pvNil == pdlg)\n            return fTrue;\n\n        // put up the initial values\n        pdlg->FPutLwInEdit(kiditSizeScript, 3072);\n        if (pdlg->IditDo(kiditSizeScript) != kiditOkScript)\n            goto LCancel;\n        if (!pdlg->FGetLwFromEdit(kiditPixelMbmp, &cbCache) || !FIn(cbCache, 0, kcbMax / 1024))\n        {\n        LCancel:\n            ReleasePpo(&pdlg);\n            return fTrue;\n        }\n        cbCache *= 1024;\n        ReleasePpo(&pdlg);\n    }\n    else\n        cbCache = 0x00300000L;\n\n    FTestScript(cki.ctg, cki.cno, cbCache);\n    return fTrue;\n}\n\n/***************************************************************************\n    Command handler to Edit a WAVE chunk\n***************************************************************************/\nbool DCD::FCmdStopSound(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (pvNil != vpsndm)\n        vpsndm->StopAll();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Command handler to pack or unpack (toggle) a chunk.  Also handle just\n    toggling the packed flag.\n***************************************************************************/\nbool DCD::FCmdPack(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CKI cki;\n    bool fPack;\n\n    if (fselCki != _sel.GrfselGetCkiKid(&cki, pvNil))\n        return fFalse;\n\n    fPack = !_pcfl->FPacked(cki.ctg, cki.cno);\n    if (cidPack == pcmd->cid)\n    {\n        // actually pack or unpack the data\n        if (fPack ? _pcfl->FPackData(cki.ctg, cki.cno) : _pcfl->FUnpackData(cki.ctg, cki.cno))\n        {\n            InvalAllDcd(_pdocb, _pcfl, &cki);\n        }\n        else\n        {\n            vpappb->TGiveAlertSz(fPack ? PszLit(\"Packing failed - chunk may be incompressible...\")\n                                       : PszLit(\"Unpacking failed - chunk may be corrupt\"),\n                                 bkOk, cokExclamation);\n        }\n    }\n    else\n    {\n        // just toggle the packed flag\n        _pcfl->SetPacked(cki.ctg, cki.cno, fPack);\n        InvalAllDcd(_pdocb, _pcfl, &cki);\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Run a script. Make the crf cache cbCache large.\n***************************************************************************/\nbool DCD::FTestScript(CTG ctg, CNO cno, long cbCache)\n{\n    AssertThis(0);\n    AssertIn(cbCache, 0, kcbMax);\n    STN stn;\n    PTSCG ptscg;\n    PSCPT pscpt = pvNil;\n    PSCEG psceg = pvNil;\n    PCRF pcrf = pvNil;\n\n    GCB gcb(khidMdi, GOB::PgobScreen());\n    if (pvNil == (ptscg = NewObj TSCG(&gcb)))\n        goto LFail;\n    vpcex->FAddCmh(ptscg, 0);\n\n    stn.FFormatSz(PszLit(\"Run Script: %f %08x\"), ctg, cno);\n    if (!ptscg->FCreateAndAttachMdi(&stn) || pvNil == (pcrf = CRF::PcrfNew(_pcfl, cbCache)) ||\n        pvNil == (psceg = ptscg->PscegNew(pcrf, ptscg)) ||\n        pvNil == (pscpt = (PSCPT)pcrf->PbacoFetch(ctg, cno, SCPT::FReadScript)) || !psceg->FRunScript(pscpt))\n    {\n    LFail:\n        vpappb->TGiveAlertSz(PszLit(\"Running script failed\"), bkOk, cokExclamation);\n    }\n\n    ReleasePpo(&psceg);\n    ReleasePpo(&pcrf);\n    ReleasePpo(&pscpt);\n    return fFalse;\n}\n\n/***************************************************************************\n    Disassemble a script and display it in a new window.\n***************************************************************************/\nbool DCD::FCmdDisasmScript(PCMD pcmd)\n{\n    CKI cki;\n    PSCPT pscpt;\n    SCCG sccg;\n    FNI fni;\n    MSFIL msfil, msfilError;\n\n    if (fselCki != _sel.GrfselGetCkiKid(&cki, pvNil))\n        return fFalse;\n\n    if (pvNil == (pscpt = SCPT::PscptRead(_pcfl, cki.ctg, cki.cno)))\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Error reading script (or it's not a script)\"), bkOk, cokExclamation);\n        return fTrue;\n    }\n\n    if (!sccg.FDisassemble(pscpt, &msfil, &msfilError))\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Error disassembling script\"), bkOk, cokExclamation);\n        OpenSinkDoc(&msfilError);\n    }\n    else\n        OpenSinkDoc(&msfil);\n    ReleasePpo(&pscpt);\n    return fTrue;\n}\n\n/***************************************************************************\n    Copy the selection to a new document.\n***************************************************************************/\nbool DCD::_FCopySel(PDOCB *ppdocb)\n{\n    AssertNilOrVarMem(ppdocb);\n    CKI cki;\n    PDOC pdoc;\n\n    if (fselCki != _sel.GrfselGetCkiKid(&cki, pvNil))\n        return fFalse;\n\n    if (pvNil == ppdocb)\n        return fTrue;\n\n    if (pvNil != (pdoc = DOC::PdocNew(pvNil)))\n    {\n        if (!_pcfl->FCopy(cki.ctg, cki.cno, pdoc->Pcfl(), &cki.cno))\n            ReleasePpo(&pdoc);\n    }\n\n    *ppdocb = pdoc;\n    return pvNil != *ppdocb;\n}\n\n/***************************************************************************\n    Delete the current selection.\n***************************************************************************/\nvoid DCD::_ClearSel(void)\n{\n    ulong grfsel;\n    CMD cmd;\n\n    grfsel = _sel.GrfselGetCkiKid(pvNil, pvNil);\n    if (!(grfsel & fselCki))\n        return;\n    ClearPb(&cmd, size(cmd));\n    cmd.pcmh = this;\n    if (grfsel & fselKid)\n        cmd.cid = cidUnadoptChunk;\n    else\n        cmd.cid = cidDeleteChunk;\n    FDoCmd(&cmd);\n    ReleasePpo(&cmd.pgg);\n}\n\n/***************************************************************************\n    Paste all non-child chunk of the given document into the current document.\n    REVIEW shonk: should this delete the current selection?\n    REVIEW shonk: is there an easy way to make this atomic?\n***************************************************************************/\nbool DCD::_FPaste(PCLIP pclip, bool fDoIt, long cid)\n{\n    AssertThis(0);\n    AssertPo(pclip, 0);\n    PDOC pdoc;\n    PCFL pcfl;\n    long icki;\n    CKI cki, ckiSel;\n    bool fFailed = fFalse;\n\n    if (!pclip->FGetFormat(kclsDOC))\n        return fFalse;\n\n    if (!fDoIt)\n        return fTrue;\n\n    if (!pclip->FGetFormat(kclsDOC, (PDOCB *)&pdoc))\n        return fFalse;\n\n    if (pvNil == (pcfl = pdoc->Pcfl()) || pcfl->Ccki() <= 0)\n    {\n        ReleasePpo(&pdoc);\n        return fTrue;\n    }\n\n    _SetSel(lnNil);\n    for (icki = 0; pcfl->FGetCki(icki, &cki); icki++)\n    {\n        if (!pcfl->FLoner(cki.ctg, cki.cno))\n            continue;\n        if (cid == cidPasteSpecial)\n            fFailed |= !pcfl->FClone(cki.ctg, cki.cno, _pcfl, &ckiSel.cno);\n        else\n            fFailed |= !pcfl->FCopy(cki.ctg, cki.cno, _pcfl, &ckiSel.cno);\n        ckiSel.ctg = cki.ctg;\n    }\n\n    InvalAllDcd(_pdocb, _pcfl);\n    ReleasePpo(&pdoc);\n\n    if (fFailed)\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Couldn't paste everything\"), bkOk, cokExclamation);\n    }\n    else\n    {\n        _SetSel(lnNil, &ckiSel);\n        _ShowSel();\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Use the selected chunk as the current color table.\n***************************************************************************/\nbool DCD::FCmdSetColorTable(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CKI cki;\n    BLCK blck;\n    PGL pglclr;\n\n    if (fselCki != _sel.GrfselGetCkiKid(&cki, pvNil))\n        return fFalse;\n    if (!_pcfl->FFind(cki.ctg, cki.cno, &blck))\n        return fFalse;\n\n    if (pvNil != (pglclr = GL::PglRead(&blck)) && pglclr->CbEntry() == size(CLR))\n        GPT::SetActiveColors(pglclr, fpalIdentity);\n\n    ReleasePpo(&pglclr);\n    return fTrue;\n}\n\nenum\n{\n    kiditOkFilter,\n    kiditCancelFilter,\n    kiditHideKidsFilter,\n    kiditHideListFilter,\n    kiditCtgEditFilter,\n    kiditLimFilter,\n};\n\n/***************************************************************************\n    Change the filtering.\n***************************************************************************/\nbool DCD::FCmdFilterChunk(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    STN stn;\n    STN stnT;\n    PDLG pdlg;\n    ulong grfsel;\n    CKI cki;\n    KID kid;\n    CTG ctg;\n    long ictg;\n    achar *prgch;\n    achar chQuote, *psz;\n\n    grfsel = _sel.GrfselGetCkiKid(&cki, &kid);\n    _SetSel(lnNil);\n\n    // put up the dialog\n    pdlg = DLG::PdlgNew(dlidFilter);\n    if (pvNil == pdlg)\n        goto LCancel;\n\n    stn.SetNil();\n    for (ictg = 0; _sel.FGetCtgFilter(ictg, &ctg); ictg++)\n    {\n        stnT.FFormatSz(PszLit(\"'%f'\"), ctg);\n        if (stn.Cch() > 0)\n            stn.FAppendCh(kchSpace);\n        stn.FAppendStn(&stnT);\n    }\n\n    pdlg->FPutStn(kiditCtgEditFilter, &stn);\n    pdlg->PutCheck(kiditHideKidsFilter, _sel.FHideKids());\n    pdlg->PutCheck(kiditHideListFilter, _sel.FHideList());\n\n    if (kiditOkFilter != pdlg->IditDo(kiditCtgEditFilter))\n        goto LCancel;\n\n    // set the filtering on the sel\n    _sel.HideKids(pdlg->FGetCheck(kiditHideKidsFilter));\n    _sel.HideList(pdlg->FGetCheck(kiditHideListFilter));\n\n    pdlg->GetStn(kiditCtgEditFilter, &stn);\n    _sel.FreeFilterList();\n    for (psz = stn.Psz();;)\n    {\n        while (*psz == kchSpace)\n            psz++;\n        if (!*psz)\n            break;\n\n        stnT.SetNil();\n        chQuote = 0;\n        while (*psz && (chQuote != 0 || *psz != kchSpace))\n        {\n            if (chQuote == 0 && (*psz == ChLit('\"') || *psz == ChLit('\\'')))\n                chQuote = *psz;\n            if (*psz == chQuote)\n                chQuote = 0;\n            else\n                stnT.FAppendCh(*psz);\n            psz++;\n        }\n\n        if (stnT.Cch() == 0)\n            continue;\n\n        while (stnT.Cch() < 4)\n            stnT.FAppendCh(kchSpace);\n        prgch = stnT.Psz();\n        ctg = LwFromBytes((byte)prgch[0], (byte)prgch[1], (byte)prgch[2], (byte)prgch[3]);\n        _sel.FAddCtgFilter(ctg);\n    }\n\nLCancel:\n    ReleasePpo(&pdlg);\n    _InvalCkiKid();\n    _SetSel(lnNil, (grfsel & fselCki) ? &cki : pvNil, (grfsel & fselKid) ? &kid : pvNil);\n    _ShowSel();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Clone a chunk and its subgraph\n***************************************************************************/\nbool DCD::FCmdCloneChunk(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    CKI cki, ckiNew;\n\n    if (fselCki != _sel.GrfselGetCkiKid(&cki, pvNil))\n        goto LFail;\n\n    _SetSel(lnNil);\n    ckiNew.ctg = cki.ctg;\n    if (!_pcfl->FClone(cki.ctg, cki.cno, _pcfl, &ckiNew.cno))\n    {\n        _SetSel(lnNil, &cki);\n        vpappb->TGiveAlertSz(PszLit(\"Cloning failed\"), bkOk, cokExclamation);\n    LFail:\n        pcmd->cid = cidNil; // don't record\n        return fTrue;\n    }\n\n    InvalAllDcd(_pdocb, _pcfl);\n    _SetSel(lnNil, &ckiNew);\n    _ShowSel();\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of an object.\n***************************************************************************/\nvoid DCD::AssertValid(ulong grf)\n{\n    DCD_PAR::AssertValid(0);\n    AssertPo(&_sel, 0);\n    AssertPo(_pcfl, 0);\n}\n\n/***************************************************************************\n    Mark memory for the DCD.\n***************************************************************************/\nvoid DCD::MarkMem(void)\n{\n    AssertValid(0);\n    DCD_PAR::MarkMem();\n    _sel.MarkMem();\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Parses the stn as a ctg. Pads with spaces. Fails if pstn is longer\n    than 4 characters or empty.\n***************************************************************************/\nbool FGetCtgFromStn(CTG *pctg, PSTN pstn)\n{\n    achar rgch[4];\n\n    AssertVarMem(pctg);\n    AssertPo(pstn, 0);\n\n    if (!FIn(pstn->Cch(), 1, 5))\n    {\n        TrashVar(pctg);\n        return fFalse;\n    }\n    rgch[0] = rgch[1] = rgch[2] = rgch[3] = kchSpace;\n    CopyPb(pstn->Psz(), rgch, pstn->Cch() * size(achar));\n\n    // first character becomes the high byte\n    *pctg = LwFromBytes((byte)rgch[0], (byte)rgch[1], (byte)rgch[2], (byte)rgch[3]);\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the indicated edit item from the dialog and convert it to a CTG.\n    Pads with spaces. Fails if the text in the edit item is longer\n    than 4 characters or empty.\n***************************************************************************/\nbool _FGetCtg(PDLG pdlg, long idit, CTG *pctg)\n{\n    AssertPo(pdlg, 0);\n    AssertVarMem(pctg);\n    STN stn;\n\n    pdlg->GetStn(idit, &stn);\n    return FGetCtgFromStn(pctg, &stn);\n}\n\n/***************************************************************************\n    Put the ctg into the indicated edit item.\n***************************************************************************/\nvoid _PutCtgStn(PDLG pdlg, long idit, CTG ctg)\n{\n    AssertPo(pdlg, 0);\n    STN stn;\n\n    stn.FFormatSz(PszLit(\"%f\"), ctg);\n    pdlg->FPutStn(idit, &stn);\n}\n\n/***************************************************************************\n    Constructor for SEL class.\n***************************************************************************/\nSEL::SEL(PCFL pcfl)\n{\n    AssertPo(pcfl, 0);\n    _pcfl = pcfl;\n    _lnLim = lnNil;\n    _pglctg = pvNil;\n    _SetNil();\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Constructor for a selection based on another selection. If the source\n    selection is filtered, this selection will share the same filter list.\n***************************************************************************/\nSEL::SEL(SEL &selT)\n{\n    _pglctg = pvNil;\n    *this = selT;\n}\n\n/***************************************************************************\n    Destructor for a selection. Release the GL of ctg's to filter on.\n***************************************************************************/\nSEL::~SEL(void)\n{\n    ReleasePpo(&_pglctg);\n}\n\n/***************************************************************************\n    Assignment operator from one selection to another. If the source\n    selection is filtered, this selection will share the same filter list.\n***************************************************************************/\nSEL &SEL::operator=(SEL &selT)\n{\n    PGL pglctgOld = _pglctg;\n\n    SEL_PAR::operator=(selT);\n    CopyPb(PvAddBv(&selT, size(SEL_PAR)), PvAddBv(this, size(SEL_PAR)), size(SEL) - size(SEL_PAR));\n    if (pvNil != _pglctg)\n        _pglctg->AddRef();\n    ReleasePpo(&pglctgOld);\n    return *this;\n}\n\n/***************************************************************************\n    Set the selection to a nil selection.\n***************************************************************************/\nvoid SEL::_SetNil(void)\n{\n    _icki = ivNil;\n    _ikid = ivNil;\n    _ln = lnNil;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Get the cki and kid. Return which of the elements are valid. One or\n    both of pcki, pkid may be nil.\n***************************************************************************/\nulong SEL::GrfselGetCkiKid(CKI *pcki, KID *pkid)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pcki);\n    AssertNilOrVarMem(pkid);\n\n    TrashVar(pcki);\n    TrashVar(pkid);\n    if (ivNil == _icki)\n        return fselNil;\n    if (pvNil != pcki)\n        *pcki = _cki;\n    if (ivNil == _ikid)\n        return fselCki;\n    if (pvNil != pkid)\n        *pkid = _kid;\n    return fselCki | fselKid;\n}\n\n/***************************************************************************\n    Set the selection to the given line. Return true iff the resulting\n    selection is not nil.\n***************************************************************************/\nbool SEL::FSetLn(long ln)\n{\n    AssertThis(0);\n    Assert(ln == lnNil || ln >= 0 && ln < kcbMax, \"bad ln\");\n\n    if (ln == _ln)\n        return fTrue;\n\n    if (lnNil == ln || lnNil != _lnLim && ln >= _lnLim)\n    {\n        _SetNil();\n        return fFalse;\n    }\n\n    if (_ln > ln)\n    {\n        if (_ln - ln < ln)\n        {\n            // move backwards\n            SuspendAssertValid();\n            SuspendCheckPointers();\n            while (_ln > ln)\n                AssertDo(FRetreat(), 0);\n            ResumeAssertValid();\n            ResumeCheckPointers();\n            return fTrue;\n        }\n        _SetNil();\n    }\n\n    Assert(_ln < ln, \"what?\");\n    SuspendAssertValid();\n    SuspendCheckPointers();\n    while (_ln < ln)\n    {\n        if (!FAdvance())\n            return fFalse;\n    }\n    ResumeCheckPointers();\n    ResumeAssertValid();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the number of active lines in the sel.\n***************************************************************************/\nlong SEL::LnLim(void)\n{\n    AssertThis(0);\n\n    if (lnNil == _lnLim)\n    {\n        SEL sel = *this;\n\n        _lnLim = (lnNil == _ln) ? 0 : _ln + 1;\n        SuspendAssertValid();\n        SuspendCheckPointers();\n        while (sel.FAdvance())\n            _lnLim++;\n        ResumeAssertValid();\n        ResumeCheckPointers();\n    }\n    return _lnLim;\n}\n\n/***************************************************************************\n    Advance the selection to the next item. If the selection is nil,\n    advances it to the first item. Returns false and makes the selection\n    nil iff there is no next item.\n***************************************************************************/\nbool SEL::FAdvance(void)\n{\n    AssertThis(0);\n\n    if (lnNil == _ln)\n    {\n        _ln = 0;\n        _icki = 0;\n    }\n    else\n    {\n        _ln++;\n        if (!_fHideKids)\n        {\n            // check for the next child\n            for (_ikid = (ivNil == _ikid) ? 0 : _ikid + 1; _pcfl->FGetKid(_cki.ctg, _cki.cno, _ikid, &_kid); _ikid++)\n            {\n                if (_FFilter(_kid.cki.ctg, _kid.cki.cno))\n                    return fTrue;\n            }\n        }\n        _icki++;\n    }\n\n    _ikid = ivNil;\n    for (; _pcfl->FGetCki(_icki, &_cki); _icki++)\n    {\n        if (_FFilter(_cki.ctg, _cki.cno))\n            return fTrue;\n    }\n\n    _SetNil();\n    return fFalse;\n}\n\n/***************************************************************************\n    Move the selection to the previous item. If the selection is nil or\n    at the first item, this sets the selection nil and returns false.\n***************************************************************************/\nbool SEL::FRetreat(void)\n{\n    AssertThis(0);\n\n    if (lnNil == _ln)\n        return fFalse;\n    if (0 == _ln)\n        goto LSetNil;\n\n    _ln--;\n    if (ivNil == _ikid)\n    {\n        // find the previous cki\n        do\n        {\n            if (_icki-- <= 0)\n            {\n                Bug(\"initial _ln was wrong\");\n            LSetNil:\n                _SetNil();\n                return fFalse;\n            }\n            AssertDo(_pcfl->FGetCki(_icki, &_cki, &_ikid), 0);\n        } while (!_FFilter(_cki.ctg, _cki.cno));\n\n        if (_ikid == 0 || _fHideKids)\n        {\n            _ikid = ivNil;\n            return fTrue;\n        }\n    }\n\n    // move to the previous child\n    while (--_ikid >= 0)\n    {\n        AssertDo(_pcfl->FGetKid(_cki.ctg, _cki.cno, _ikid, &_kid), 0);\n        if (_FFilter(_kid.cki.ctg, _kid.cki.cno))\n            return fTrue;\n    }\n    _ikid = ivNil;\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the selection to represent *pcki, *pkid. pkid may be nil. If\n    fExact is false, this sets the sel to the last item at or before\n    the given (pcki, pkid).\n***************************************************************************/\nbool SEL::FSetCkiKid(CKI *pcki, KID *pkid, bool fExact)\n{\n    AssertThis(0);\n    AssertVarMem(pcki);\n    AssertNilOrVarMem(pkid);\n\n    _cki = *pcki;\n    _icki = 0;\n    if (pvNil == pkid)\n        _ikid = ivNil;\n    else\n    {\n        _kid = *pkid;\n        _ikid = 0;\n    }\n    _ln = 0;\n\n    Adjust(fExact);\n    AssertThis(0);\n    return ivNil != _icki;\n}\n\n/***************************************************************************\n    Adjust the sel after an edit to the doc. Assume icki and ikid are wrong\n    (except as indicators of invalid cki and kid fields), and assume ln\n    is wrong. If fExact is false and the current (cki, kid) is no longer\n    in the CFL or our filtering on it, we select the item immediately before\n    where this one would be.\n***************************************************************************/\nvoid SEL::Adjust(bool fExact)\n{\n    AssertPo(_pcfl, 0);\n    long icki, ikid;\n\n    if (ivNil == _icki)\n        goto LSetNil;\n\n    // get the icki and ikid\n    if (!_pcfl->FGetIcki(_cki.ctg, _cki.cno, &icki) || !_FFilter(_cki.ctg, _cki.cno))\n    {\n        if (fExact)\n            goto LSetNil;\n        ikid = ivNil;\n    }\n    else if (ivNil != (ikid = _ikid))\n    {\n        if (_fHideKids)\n        {\n            if (fExact)\n                goto LSetNil;\n            ikid = ivNil;\n        }\n        else if (!_pcfl->FGetIkid(_cki.ctg, _cki.cno, _kid.cki.ctg, _kid.cki.cno, _kid.chid, &ikid) && fExact)\n        {\n        LSetNil:\n            _SetNil();\n            return;\n        }\n    }\n\n    // find the icki and ikid\n    _SetNil();\n    SEL sel = *this;\n\n    SuspendAssertValid();\n    SuspendCheckPointers();\n    while (sel.FAdvance())\n    {\n        if (sel._icki >= icki && (sel._icki > icki || sel._ikid > ikid))\n            break;\n        *this = sel;\n    }\n    ResumeAssertValid();\n    ResumeCheckPointers();\n\n    if (fExact && (_icki != icki || _ikid != ikid))\n        _SetNil();\n}\n\n/***************************************************************************\n    Hide or show children according to fHide.\n***************************************************************************/\nvoid SEL::HideKids(bool fHide)\n{\n    AssertThis(0);\n\n    if (FPure(fHide) == _fHideKids)\n        return;\n    _fHideKids = FPure(fHide);\n    Adjust();\n}\n\n/***************************************************************************\n    Hide or show the filter list according to fHide.\n***************************************************************************/\nvoid SEL::HideList(bool fHide)\n{\n    AssertThis(0);\n\n    if (FPure(fHide) == _fHideList)\n        return;\n    _fHideList = FPure(fHide);\n    Adjust();\n}\n\n/***************************************************************************\n    Get the ictg'th ctg that we're filtering on.\n***************************************************************************/\nbool SEL::FGetCtgFilter(long ictg, CTG *pctg)\n{\n    AssertThis(0);\n    AssertVarMem(pctg);\n\n    if (pvNil == _pglctg || !FIn(ictg, 0, _pglctg->IvMac()))\n        return fFalse;\n    _pglctg->Get(ictg, pctg);\n    return fTrue;\n}\n\n/***************************************************************************\n    Reset the filter list to be empty.\n***************************************************************************/\nvoid SEL::FreeFilterList(void)\n{\n    AssertThis(0);\n\n    if (pvNil != _pglctg)\n    {\n        ReleasePpo(&_pglctg);\n        Adjust();\n    }\n}\n\n/***************************************************************************\n    Add an element to the filter list.\n***************************************************************************/\nbool SEL::FAddCtgFilter(CTG ctg)\n{\n    AssertThis(0);\n\n    if (pvNil == _pglctg && pvNil == (_pglctg = GL::PglNew(size(CTG), 1)))\n        return fFalse;\n    if (!_pglctg->FAdd(&ctg))\n        return fFalse;\n    Adjust();\n    return fTrue;\n}\n\n/***************************************************************************\n    Return true iff (ctg, cno) passes our filtering criteria.\n***************************************************************************/\nbool SEL::_FFilter(CTG ctg, CNO cno)\n{\n    long cctg;\n    CTG *qctg;\n\n    if (pvNil == _pglctg || 0 == (cctg = _pglctg->IvMac()))\n        return fTrue;\n\n    for (qctg = (CTG *)_pglctg->QvGet(0); cctg-- > 0; qctg++)\n    {\n        if (*qctg == ctg)\n            return !_fHideList;\n    }\n\n    return _fHideList;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the sel.\n***************************************************************************/\nvoid SEL::AssertValid(ulong grf)\n{\n    SEL_PAR::AssertValid(0);\n    AssertPo(_pcfl, 0);\n    Assert((_ln == lnNil) == (_icki == ivNil && _ikid == ivNil), \"nil values not in sync\");\n    AssertNilOrPo(_pglctg, 0);\n}\n\n/***************************************************************************\n    Mark memory for the SEL.\n***************************************************************************/\nvoid SEL::MarkMem(void)\n{\n    AssertValid(0);\n    SEL_PAR::MarkMem();\n    MarkMemObj(_pglctg);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/tools/chdoc.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    CHED document class\n\n***************************************************************************/\n#ifndef CHDOC_H\n#define CHDOC_H\n\ntypedef class DOC *PDOC;\ntypedef class DOCE *PDOCE;\ntypedef class DOCH *PDOCH;\ntypedef class DOCG *PDOCG;\ntypedef class DOCI *PDOCI;\ntypedef class DOCPIC *PDOCPIC;\ntypedef class DOCMBMP *PDOCMBMP;\ntypedef class SEL *PSEL;\ntypedef class DCD *PDCD;\ntypedef class DCH *PDCH;\ntypedef class DCGB *PDCGB;\ntypedef class DCGL *PDCGL;\ntypedef class DCGG *PDCGG;\ntypedef class DCST *PDCST;\ntypedef class DCPIC *PDCPIC;\ntypedef class DCMBMP *PDCMBMP;\n\nbool FGetCtgFromStn(CTG *pctg, PSTN pstn);\n\n#define lnNil (-1L)\n\n/***************************************************************************\n\n    Various document classes. DOC is the chunky file based document.\n    DOCE is a virtual class for documents that represent an individual\n    chunk in a DOC. A DOCE is a child document of a DOC. All other\n    document classes in this header are derived from DOCE.\n\n***************************************************************************/\n\n/***************************************************************************\n    chunky file doc\n***************************************************************************/\n#define DOC_PAR DOCB\n#define kclsDOC 'DOC'\nclass DOC : public DOC_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    PCFL _pcfl; // the chunky file\n\n    DOC(void);\n    ~DOC(void);\n\n  public:\n    static PDOC PdocNew(FNI *pfni);\n\n    PCFL Pcfl(void)\n    {\n        return _pcfl;\n    }\n    virtual PDDG PddgNew(PGCB pgcb);\n    virtual bool FGetFni(FNI *pfni);\n    virtual bool FGetFniSave(FNI *pfni);\n    virtual bool FSaveToFni(FNI *pfni, bool fSetFni);\n};\n\n/***************************************************************************\n    Chunky editing doc - abstract class for editing a single chunk in a\n    Chunky file. An instance of this class is a child doc of a DOC. Many\n    document classes below are all derived from this.\n***************************************************************************/\n#define DOCE_PAR DOCB\n#define kclsDOCE 'DOCE'\nclass DOCE : public DOCE_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    PCFL _pcfl; // which chunk is being edited\n    CTG _ctg;\n    CNO _cno;\n\n    DOCE(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno);\n    bool _FInit(void);\n\n    virtual bool _FSaveToChunk(CTG ctg, CNO cno, bool fRedirect);\n    virtual bool _FWrite(PBLCK pblck, bool fRedirect) = 0;\n    virtual long _CbOnFile(void) = 0;\n    virtual bool _FRead(PBLCK pblck) = 0;\n\n  public:\n    static PDOCE PdoceFromChunk(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno);\n    static void CloseDeletedDoce(PDOCB pdocb);\n\n    virtual void GetName(PSTN pstn);\n    virtual bool FSave(long cid);\n};\n\n/***************************************************************************\n    Hex editor document - for editing any chunk as a hex stream.\n***************************************************************************/\n#define DOCH_PAR DOCE\n#define kclsDOCH 'DOCH'\nclass DOCH : public DOCH_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    BSF _bsf; // the byte stream\n\n    DOCH(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno);\n    virtual bool _FWrite(PBLCK pblck, bool fRedirect);\n    virtual long _CbOnFile(void);\n    virtual bool _FRead(PBLCK pblck);\n\n  public:\n    static PDOCH PdochNew(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno);\n    virtual PDDG PddgNew(PGCB pgcb);\n};\n\n/***************************************************************************\n    Group editor document - for editing GL, AL, GG, AG, GST, and AST.\n***************************************************************************/\n#define DOCG_PAR DOCE\n#define kclsDOCG 'DOCG'\nclass DOCG : public DOCG_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PGRPB _pgrpb;\n    long _cls; // which class the group belongs to\n    short _bo;\n    short _osk;\n\n    DOCG(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno, long cls);\n    ~DOCG(void);\n    virtual bool _FWrite(PBLCK pblck, bool fRedirect);\n    virtual long _CbOnFile(void);\n    virtual bool _FRead(PBLCK pblck);\n\n  public:\n    static PDOCG PdocgNew(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno, long cls);\n    virtual PDDG PddgNew(PGCB pgcb);\n\n    PDOCI PdociFromItem(long iv, long dln);\n    void CloseDeletedDoci(long iv, long cvDel);\n    PGRPB Pgrpb(void)\n    {\n        return _pgrpb;\n    }\n};\n\n/***************************************************************************\n    Item hex editor document - for editing an item in a GRPB. An instance\n    of this class is normally a child doc of a DOCG (but doesn't have to be).\n***************************************************************************/\n#define DOCI_PAR DOCB\n#define kclsDOCI 'DOCI'\nclass DOCI : public DOCI_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PGRPB _pgrpb; // the group the data came from and gets written to.\n    long _cls;\n    long _iv; // which item is being edited\n    long _dln;\n    bool _fFixed; // indicates if the data is fixed length\n    BSF _bsf;     // the byte stream we're editing\n\n    DOCI(PDOCB pdocb, PGRPB pgrpb, long cls, long iv, long dln);\n    bool _FInit(void);\n\n    virtual bool _FSaveToItem(long iv, bool fRedirect);\n    virtual bool _FWrite(long iv);\n    virtual HQ _HqRead();\n\n  public:\n    static PDOCI PdociNew(PDOCB pdocb, PGRPB pgrpb, long cls, long iv, long dln);\n    virtual PDDG PddgNew(PGCB pgcb);\n\n    long Iv(void)\n    {\n        return _iv;\n    }\n    long Dln(void)\n    {\n        return _dln;\n    }\n\n    virtual void GetName(PSTN pstn);\n    virtual bool FSave(long cid);\n};\n\n/***************************************************************************\n    Picture display document.\n***************************************************************************/\n#define DOCPIC_PAR DOCE\n#define kclsDOCPIC 'dcpc'\nclass DOCPIC : public DOCPIC_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PPIC _ppic;\n\n    DOCPIC(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno);\n    ~DOCPIC(void);\n\n    virtual bool _FWrite(PBLCK pblck, bool fRedirect);\n    virtual long _CbOnFile(void);\n    virtual bool _FRead(PBLCK pblck);\n\n  public:\n    static PDOCPIC PdocpicNew(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno);\n\n    virtual PDDG PddgNew(PGCB pgcb);\n    PPIC Ppic(void)\n    {\n        return _ppic;\n    }\n};\n\n/***************************************************************************\n    MBMP display document.\n***************************************************************************/\n#define DOCMBMP_PAR DOCE\n#define kclsDOCMBMP 'docm'\nclass DOCMBMP : public DOCMBMP_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PMBMP _pmbmp;\n\n    DOCMBMP(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno);\n    ~DOCMBMP(void);\n\n    virtual bool _FWrite(PBLCK pblck, bool fRedirect);\n    virtual long _CbOnFile(void);\n    virtual bool _FRead(PBLCK pblck);\n\n  public:\n    static PDOCMBMP PdocmbmpNew(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno);\n\n    virtual PDDG PddgNew(PGCB pgcb);\n    PMBMP Pmbmp(void)\n    {\n        return _pmbmp;\n    }\n};\n\n/***************************************************************************\n    Document editing window classes follow. These are all DDG's.\n    Most are also DCLB's (the first class defined below).  DCLB is\n    an abstract class that handles a line based editing window.\n    The DCD class is for displaying a DOC (chunky file document).\n***************************************************************************/\n\n/***************************************************************************\n    abstract class for line based document windows\n***************************************************************************/\n#define DCLB_PAR DDG\n#define kclsDCLB 'DCLB'\nclass DCLB : public DCLB_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    long _onn;       // fixed width font to use\n    long _dypHeader; // height of the header\n    long _dypLine;   // height of one line\n    long _dxpChar;   // width of a character\n\n    DCLB(PDOCB pdocb, PGCB pgcb);\n    virtual void _Scroll(long scaHorz, long scaVert, long scvHorz = 0, long scvVert = 0);\n    virtual void _ScrollDxpDyp(long dxp, long dyp);\n    virtual void GetMinMax(RC *prcMinMax);\n\n    long _YpFromLn(long ln)\n    {\n        return LwMul(ln - _scvVert, _dypLine) + _dypHeader;\n    }\n    long _XpFromIch(long ich)\n    {\n        return LwMul(ich - _scvHorz + 1, _dxpChar);\n    }\n    long _LnFromYp(long yp);\n\n    void _GetContent(RC *prc);\n};\n\n/***************************************************************************\n    SEL: used to track a selection in a chunky file doc\n***************************************************************************/\nenum\n{\n    fselNil = 0,\n    fselCki = 1,\n    fselKid = 2\n};\n\n#define SEL_PAR BASE\n#define kclsSEL 'SEL'\nclass SEL : public SEL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PCFL _pcfl;\n    long _icki;\n    long _ikid;\n    CKI _cki;\n    KID _kid;\n    long _ln;\n    long _lnLim;         // this is lnNil if we haven't yet calculated the lim\n    PGL _pglctg;         // the ctgs to filter on\n    bool _fHideList : 1; // whether to hide the ctgs in the list or show them\n    bool _fHideKids : 1; // whether to hide the kids\n\n    void _SetNil(void);\n    bool _FFilter(CTG ctg, CNO cno);\n\n  public:\n    SEL(PCFL pcfl);\n    SEL(SEL &selT);\n    ~SEL(void);\n    SEL &operator=(SEL &selT);\n\n    void Adjust(bool fExact = fFalse);\n\n    long Icki(void)\n    {\n        return _icki;\n    }\n    long Ikid(void)\n    {\n        return _ikid;\n    }\n    long Ln(void)\n    {\n        return _ln;\n    }\n    ulong GrfselGetCkiKid(CKI *pcki, KID *pkid);\n\n    bool FSetLn(long ln);\n    bool FAdvance(void);\n    bool FRetreat(void);\n    bool FSetCkiKid(CKI *pcki, KID *pkid = pvNil, bool fExact = fTrue);\n    long LnLim(void);\n    void InvalLim(void)\n    {\n        _lnLim = lnNil;\n    }\n\n    bool FHideKids(void)\n    {\n        return _fHideKids;\n    }\n    void HideKids(bool fHide);\n\n    bool FHideList(void)\n    {\n        return _fHideList;\n    }\n    void HideList(bool fHide);\n    bool FGetCtgFilter(long ictg, CTG *pctg);\n    void FreeFilterList(void);\n    bool FAddCtgFilter(CTG ctg);\n};\n\n/***************************************************************************\n    Display for chunky document - displays a DOC.\n***************************************************************************/\n#define DCD_PAR DCLB\n#define kclsDCD 'DCD'\nclass DCD : public DCD_PAR\n{\n    RTCLASS_DEC\n    CMD_MAP_DEC(DCD)\n    ASSERT\n    MARKMEM\n\n  protected:\n    long _dypBorder; // height of border (included in _dypLine)\n    PCFL _pcfl;      // the chunky file\n    SEL _sel;        // the current selection\n\n    DCD(PDOCB pdocb, PCFL pcfl, PGCB pgcb);\n    void _DrawSel(PGNV pgnv);\n    void _HiliteLn(long ln);\n    void _SetSel(long ln, CKI *pcki = pvNil, KID *pkid = pvNil);\n    void _ShowSel(void);\n\n    virtual void _Activate(bool fActive);\n    virtual long _ScvMax(bool fVert);\n    bool _FAddChunk(CTG ctgDef, CKI *pcki, bool *pfCreated);\n    bool _FEditChunkInfo(CKI *pckiOld);\n    bool _FChangeChid(CKI *pcki, KID *pkid);\n\n    bool _FDoAdoptChunkDlg(CKI *pcki, KID *pkid);\n    void _EditCki(CKI *pcki, long cid);\n\n    void _InvalCkiKid(CKI *pcki = pvNil, KID *pkid = pvNil);\n\n    // clipboard support\n    virtual bool _FCopySel(PDOCB *ppdocb = pvNil);\n    virtual void _ClearSel(void);\n    virtual bool _FPaste(PCLIP pclip, bool fDoIt, long cid);\n\n  public:\n    static PDCD PdcdNew(PDOCB pdocb, PCFL pcfl, PGCB pgcb);\n    static void InvalAllDcd(PDOCB pdocb, PCFL pcfl, CKI *pcki = pvNil, KID *pkid = pvNil);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual void MouseDown(long xp, long yp, long cact, ulong grfcust);\n    virtual bool FCmdKey(PCMD_KEY pcmd);\n\n    virtual bool FEnableDcdCmd(PCMD pcmd, ulong *pgrfeds);\n    virtual bool FCmdAddChunk(PCMD pcmd);\n    virtual bool FCmdDeleteChunk(PCMD pcmd);\n    virtual bool FCmdAdoptChunk(PCMD pcmd);\n    virtual bool FCmdUnadoptChunk(PCMD pcmd);\n    virtual bool FCmdEditChunk(PCMD pcmd);\n    virtual bool FCmdAddPicChunk(PCMD pcmd);\n    virtual bool FCmdAddBitmapChunk(PCMD pcmd);\n    virtual bool FCmdImportScript(PCMD pcmd);\n    virtual bool FCmdTestScript(PCMD pcmd);\n    virtual bool FCmdDisasmScript(PCMD pcmd);\n    virtual bool FCmdAddFileChunk(PCMD pcmd);\n    virtual bool FCmdEditChunkInfo(PCMD pcmd);\n    virtual bool FCmdChangeChid(PCMD pcmd);\n    virtual bool FCmdSetColorTable(PCMD pcmd);\n    virtual bool FCmdFilterChunk(PCMD pcmd);\n    virtual bool FCmdPack(PCMD pcmd);\n    virtual bool FCmdStopSound(PCMD pcmd);\n    virtual bool FCmdCloneChunk(PCMD pcmd);\n    virtual bool FCmdReopen(PCMD pcmd);\n\n    bool FTestScript(CTG ctg, CNO cno, long cbCache = 0x00300000L);\n    bool FPlayMidi(CTG ctg, CNO cno);\n    bool FPlayWave(CTG ctg, CNO cno);\n};\n\n/***************************************************************************\n    Display chunk in hex - displays a BSF (byte stream), but\n    doesn't necessarily display a DOCH.\n***************************************************************************/\n#define DCH_PAR DCLB\n#define kclsDCH 'DCH'\nclass DCH : public DCH_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PBSF _pbsf;   // the byte stream\n    long _cbLine; // number of bytes per line\n\n    // the selection\n    long _ibAnchor;\n    long _ibOther;\n\n    bool _fSelOn : 1;    // selection is showing\n    bool _fRightSel : 1; // selection if on a line boundary is at the right edge\n    bool _fHalfSel : 1;  // second half of hex character is selected\n    bool _fHexSel : 1;   // hex area active\n    bool _fFixed : 1;    // indicates if the data is fixed length\n\n    DCH(PDOCB pdocb, PBSF pbsf, bool fFixed, PGCB pgcb);\n\n    virtual void _Activate(bool fActive);\n    virtual long _ScvMax(bool fVert);\n\n    long _IchFromCb(long cb, bool fHex, bool fNoTrailSpace = fFalse);\n    long _XpFromCb(long cb, bool fHex, bool fNoTrailSpace = fFalse);\n    long _XpFromIb(long ib, bool fHex);\n    long _YpFromIb(long ib);\n    long _IbFromPt(long xp, long yp, tribool *ptHex, bool *pfRight = pvNil);\n\n    void _SetSel(long ibAnchor, long ibOther, bool fRight);\n    void _SetHalfSel(long ib);\n    void _SetHexSel(bool fHex);\n    void _SwitchSel(bool fOn);\n    void _ShowSel(void);\n    void _InvertSel(PGNV pgnv);\n    void _InvertIbRange(PGNV pgnv, long ib1, long ib2, bool fHex);\n\n    bool _FReplace(byte *prgb, long cb, long ibMin, long ibLim, bool fHalfSel = fFalse);\n    void _InvalAllDch(long ib, long cbIns, long cbDel);\n    void _InvalIb(long ib, long cbIns, long cbDel);\n\n    void _DrawHeader(PGNV pgnv);\n\n    // clipboard support\n    virtual bool _FCopySel(PDOCB *ppdocb = pvNil);\n    virtual void _ClearSel(void);\n    virtual bool _FPaste(PCLIP pclip, bool fDoIt, long cid);\n\n  public:\n    static PDCH PdchNew(PDOCB pdocb, PBSF pbsf, bool fFixed, PGCB pgcb);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual void MouseDown(long xp, long yp, long cact, ulong grfcust);\n    virtual bool FCmdKey(PCMD_KEY pcmd);\n};\n\n/***************************************************************************\n    Virtual class that supports displaying a group chunk - displays a GRPB.\n    Usually displays a DOCG, but doesn't have to.\n***************************************************************************/\n#define DCGB_PAR DCLB\n#define kclsDCGB 'DCGB'\nclass DCGB : public DCGB_PAR\n{\n    RTCLASS_DEC\n    CMD_MAP_DEC(DCGB)\n    ASSERT\n    MARKMEM\n\n  protected:\n    long _dypBorder;  // height of border (included in _dypLine)\n    long _clnItem;    // number of lines for each item\n    long _ivCur;      // which item is selected\n    long _dlnCur;     // which line in the item is selected\n    PGRPB _pgrpb;     // the group we're displaying\n    long _cls;        // the class of the group\n    bool _fAllocated; // whether the class is allocated or general\n\n    DCGB(PDOCB pdocb, PGRPB pgrpb, long cls, long clnItem, PGCB pgcb);\n\n    virtual void _Activate(bool fActive);\n    virtual long _ScvMax(bool fVert);\n    long _YpFromIvDln(long iv, long dln)\n    {\n        return _YpFromLn(LwMul(iv, _clnItem) + dln);\n    }\n    long _LnFromIvDln(long iv, long dln)\n    {\n        return LwMul(iv, _clnItem) + dln;\n    }\n    long _LnLim(void)\n    {\n        return LwMul(_pgrpb->IvMac(), _clnItem);\n    }\n    void _SetSel(long ln);\n    void _ShowSel(void);\n    void _DrawSel(PGNV pgnv);\n    void _InvalIv(long iv, long cvIns, long cvDel);\n    void _EditIvDln(long iv, long dln);\n    void _DeleteIv(long iv);\n\n  public:\n    static void InvalAllDcgb(PDOCB pdocb, PGRPB pgrpb, long iv, long cvIns, long cvDel);\n    virtual bool FCmdKey(PCMD_KEY pcmd);\n    virtual void MouseDown(long xp, long yp, long cact, ulong grfcust);\n\n    virtual bool FEnableDcgbCmd(PCMD pcmd, ulong *pgrfeds);\n    virtual bool FCmdEditItem(PCMD pcmd);\n    virtual bool FCmdDeleteItem(PCMD pcmd);\n    virtual bool FCmdAddItem(PCMD pcmd) = 0;\n};\n\n/***************************************************************************\n    Display GL or AL chunk.\n***************************************************************************/\n#define DCGL_PAR DCGB\n#define kclsDCGL 'DCGL'\nclass DCGL : public DCGL_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    DCGL(PDOCB pdocb, PGLB pglb, long cls, PGCB pgcb);\n\n  public:\n    static PDCGL PdcglNew(PDOCB pdocb, PGLB pglb, long cls, PGCB pgcb);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FCmdAddItem(PCMD pcmd);\n};\n\n/***************************************************************************\n    Display GG or AG chunk.\n***************************************************************************/\n#define DCGG_PAR DCGB\n#define kclsDCGG 'DCGG'\nclass DCGG : public DCGG_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    DCGG(PDOCB pdocb, PGGB pggb, long cls, PGCB pgcb);\n\n  public:\n    static PDCGG PdcggNew(PDOCB pdocb, PGGB pggb, long cls, PGCB pgcb);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FCmdAddItem(PCMD pcmd);\n};\n\n/***************************************************************************\n    Display GST or AST chunk.\n***************************************************************************/\n#define DCST_PAR DCGB\n#define kclsDCST 'DCST'\nclass DCST : public DCST_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    DCST(PDOCB pdocb, PGSTB pgstb, long cls, PGCB pgcb);\n\n  public:\n    static PDCST PdcstNew(PDOCB pdocb, PGSTB pgstb, long cls, PGCB pgcb);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FCmdAddItem(PCMD pcmd);\n};\n\n/***************************************************************************\n    Display a picture chunk.\n***************************************************************************/\n#define DCPIC_PAR DDG\n#define kclsDCPIC 'dpic'\nclass DCPIC : public DCPIC_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PPIC _ppic;\n\n    DCPIC(PDOCB pdocb, PPIC ppic, PGCB pgcb);\n    virtual void GetMinMax(RC *prcMinMax);\n\n  public:\n    static PDCPIC PdcpicNew(PDOCB pdocb, PPIC ppic, PGCB pgcb);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n};\n\n/***************************************************************************\n    Display a MBMP chunk.\n***************************************************************************/\n#define DCMBMP_PAR DDG\n#define kclsDCMBMP 'dmbp'\nclass DCMBMP : public DCMBMP_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PMBMP _pmbmp;\n\n    DCMBMP(PDOCB pdocb, PMBMP pmbmp, PGCB pgcb);\n    virtual void GetMinMax(RC *prcMinMax);\n\n  public:\n    static PDCMBMP PdcmbmpNew(PDOCB pdocb, PMBMP pmbmp, PGCB pgcb);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n};\n\n/***************************************************************************\n    Main Kidspace world for testing a script.\n***************************************************************************/\ntypedef class TSCG *PTSCG;\n#define TSCG_PAR WOKS\n#define kclsTSCG 'TSCG'\nclass TSCG : public TSCG_PAR\n{\n    RTCLASS_DEC\n    CMD_MAP_DEC(TSCG)\n\n  public:\n    TSCG(PGCB pgcb) : TSCG_PAR(pgcb)\n    {\n    }\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n};\n\n/***************************************************************************\n    Text doc for the chunky editor.\n***************************************************************************/\ntypedef class CHTXD *PCHTXD;\n#define CHTXD_PAR TXPD\n#define kclsCHTXD 'chtx'\nclass CHTXD : public CHTXD_PAR\n{\n  protected:\n    CHTXD(PDOCB pdocb = pvNil, ulong grfdoc = fdocNil);\n\n  public:\n    static PCHTXD PchtxdNew(PFNI pfni = pvNil, PBSF pbsf = pvNil, short osk = koskCur, PDOCB pdocb = pvNil,\n                            ulong grfdoc = fdocNil);\n\n    virtual PDDG PddgNew(PGCB pgcb);\n};\n\n/***************************************************************************\n    Text display gob for the chunky editor.\n***************************************************************************/\ntypedef class CHTDD *PCHTDD;\n#define CHTDD_PAR TXLG\n#define kclsCHTDD 'chtd'\nclass CHTDD : public CHTDD_PAR\n{\n    CMD_MAP_DEC(CHTDD)\n\n  protected:\n    CHTDD(PTXTB ptxtb, PGCB pgcb, long onn, ulong grfont, long dypFont, long cchTab);\n\n  public:\n    static PCHTDD PchtddNew(PTXTB ptxtb, PGCB pgcb, long onn, ulong grfont, long dypFont, long cchTab);\n\n    virtual bool FCmdCompileChunky(PCMD pcmd);\n    virtual bool FCmdCompileScript(PCMD pcmd);\n};\n\nvoid OpenSinkDoc(PMSFIL pmsfil);\n\n#endif //! CHDOC_H\n"
  },
  {
    "path": "kauai/tools/ched.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Chunky editor.\n\n***************************************************************************/\n#include \"ched.h\"\nASSERTNAME\n\nBEGIN_CMD_MAP(APP, APPB)\nON_CID_GEN(cidNew, &APP::FCmdOpen, pvNil)\nON_CID_GEN(cidOpen, &APP::FCmdOpen, pvNil)\nON_CID_GEN(cidNewText, &APP::FCmdOpen, pvNil)\nON_CID_GEN(cidOpenText, &APP::FCmdOpen, pvNil)\nEND_CMD_MAP_NIL()\n\nAPP vapp;\n\nRTCLASS(APP)\n\n/***************************************************************************\n    Main for a frame app.\n***************************************************************************/\nvoid FrameMain(void)\n{\n    vapp.Run(fappNil, fgobNil, kginDefault);\n}\n\n/***************************************************************************\n    Initialize the APP - do the command line parsing thing.\n***************************************************************************/\nbool APP::_FInit(ulong grfapp, ulong grfgob, long ginDef)\n{\n    if (!APP_PAR::_FInit(grfapp, grfgob, ginDef))\n        return fFalse;\n\n#ifdef WIN\n    // parse the command line and load any resource files and help files\n    FNI fni;\n    STN stn;\n    bool fQuote, fScript, fSkip;\n    PDMD pdmd;\n    PDDG pddg;\n    PDOCB pdocb;\n    long lw;\n    PSZ psz = vwig.pszCmdLine;\n\n    fSkip = fTrue;\n    fScript = fFalse;\n    for (;;)\n    {\n        while (*psz == kchSpace)\n            psz++;\n        if (!*psz)\n            break;\n\n        stn.SetNil();\n        fQuote = fFalse;\n        while (*psz && (fQuote || *psz != kchSpace))\n        {\n            if (*psz == ChLit('\"'))\n                fQuote = !fQuote;\n            else\n                stn.FAppendCh(*psz);\n            psz++;\n        }\n\n        if (stn.Cch() == 0)\n            continue;\n\n        if (fSkip)\n        {\n            // application path\n            fSkip = fFalse;\n            continue;\n        }\n\n        if (stn.Cch() == 2 && (stn.Psz()[0] == ChLit('/') || stn.Psz()[0] == ChLit('-')))\n        {\n            // command line switch\n            switch (stn.Psz()[1])\n            {\n            case ChLit('s'):\n                fScript = fTrue;\n                break;\n            }\n            continue;\n        }\n\n        if (fScript)\n        {\n            // this arg should be a cno\n            fScript = fFalse;\n            if (!stn.FGetLw(&lw))\n                continue;\n\n            if (pvNil == (pdmd = DMD::PdmdTop()))\n                continue;\n            if (pvNil == (pddg = pdmd->Pdocb()->PddgActive()) || !pddg->FIs(kclsDCD))\n            {\n                continue;\n            }\n            ((PDCD)pddg)->FTestScript(kctgScript, lw);\n            continue;\n        }\n\n        if (!fni.FBuildFromPath(&stn) || fni.Ftg() == kftgDir)\n            continue;\n\n        if (pvNil != (pdocb = DOCB::PdocbFromFni(&fni)))\n        {\n            pdocb->ActivateDmd();\n            continue;\n        }\n        if (pvNil == (pdocb = (PDOCB)DOC::PdocNew(&fni)))\n            continue;\n        pdocb->PdmdNew();\n        ReleasePpo(&pdocb);\n    }\n#endif // WIN\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the name for the frame tester app.\n***************************************************************************/\nvoid APP::GetStnAppName(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n#ifdef UNICODE\n    STN stnDate;\n    STN stnTime;\n\n    stnDate.SetSzs(__DATE__);\n    stnTime.SetSzs(__TIME__);\n    pstn->FFormatSz(Debug(PszLit(\"Debug \")) PszLit(\"Ched (Unicode; %s; %s)\"), &stnDate, &stnTime);\n#else  //! UNICODE\n    *pstn = Debug(\"Debug \") \"Ched (Ansi; \" __DATE__ \"; \" __TIME__ \")\";\n#endif //! UNICODE\n}\n\n/***************************************************************************\n    Update the given window.  *prc is the bounding rectangle of the update\n    region.\n***************************************************************************/\nvoid APP::UpdateHwnd(HWND hwnd, RC *prc, ulong grfapp)\n{\n    AssertThis(0);\n    PGOB pgob;\n\n    if (pvNil == (pgob = GOB::PgobFromHwnd(hwnd)))\n        return;\n\n    // for script windows, do offscreen updating\n    if (pgob->FIs(kclsTSCG))\n        grfapp |= fappOffscreen;\n\n    APP_PAR::UpdateHwnd(hwnd, prc, grfapp);\n}\n\n/***************************************************************************\n    Do a fast update of the gob and its descendents into the given gpt.\n***************************************************************************/\nvoid APP::_FastUpdate(PGOB pgob, PREGN pregnClip, ulong grfapp, PGPT pgpt)\n{\n    AssertThis(0);\n    AssertPo(pgob, 0);\n    AssertPo(pregnClip, 0);\n    AssertNilOrPo(pgpt, 0);\n\n    if (pgob->FIs(kclsTSCG))\n        grfapp |= fappOffscreen;\n\n    APP_PAR::_FastUpdate(pgob, pregnClip, grfapp, pgpt);\n}\n\n/***************************************************************************\n    Open an existing or new chunky file for editing.\n    Handles cidNew and cidOpen.\n***************************************************************************/\nbool APP::FCmdOpen(PCMD pcmd)\n{\n    FNI fni;\n    FNI *pfni;\n    PDOCB pdocb;\n\n    pfni = pvNil;\n    switch (pcmd->cid)\n    {\n    default:\n        Bug(\"why are we here?\");\n        return fTrue;\n\n    case cidOpen:\n        // do the standard dialog\n        if (!FGetFniOpenMacro(&fni, pvNil, 0, PszLit(\"Chunky Files\\0*.chk;*.cfl\\0All Files\\0*.*\\0\"), vwig.hwndApp))\n        {\n            return fTrue;\n        }\n        pfni = &fni;\n        if (pvNil != (pdocb = DOCB::PdocbFromFni(&fni)))\n        {\n            pdocb->ActivateDmd();\n            return fTrue;\n        }\n        // fall through\n    case cidNew:\n        pdocb = (PDOCB)DOC::PdocNew(pfni);\n        break;\n\n    case cidOpenText:\n        // do the standard dialog\n        if (!FGetFniOpenMacro(&fni, pvNil, 0, PszLit(\"Text Files\\0*.txt;*.cht\\0All Files\\0*.*\\0\"), vwig.hwndApp))\n        {\n            return fTrue;\n        }\n        pfni = &fni;\n        if (pvNil != (pdocb = DOCB::PdocbFromFni(&fni)))\n        {\n            pdocb->ActivateDmd();\n            return fTrue;\n        }\n        // fall through\n    case cidNewText:\n        pdocb = (PDOCB)CHTXD::PchtxdNew(pfni, pvNil, oskNil);\n        break;\n    }\n\n    if (pvNil == pdocb)\n        return fTrue;\n\n    pdocb->PdmdNew();\n    ReleasePpo(&pdocb);\n\n    return fTrue;\n}\n"
  },
  {
    "path": "kauai/tools/ched.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Chunky editor main header file\n\n***************************************************************************/\n#ifndef CHED_H\n#define CHED_H\n\n#include \"kidframe.h\"\n#include \"chedres.h\"\n\n// creator type for the chunky editor\n#define kctgChed 'CHED'\n\n#include \"chdoc.h\"\n\n#define APP_PAR APPB\n#define kclsAPP 'APP'\nclass APP : public APP_PAR\n{\n    RTCLASS_DEC\n    CMD_MAP_DEC(APP)\n\n  protected:\n    virtual bool _FInit(ulong grfapp, ulong grfgob, long ginDef);\n    virtual void _FastUpdate(PGOB pgob, PREGN pregnClip, ulong grfapp = fappNil, PGPT pgpt = pvNil);\n\n  public:\n    virtual void GetStnAppName(PSTN pstn);\n    virtual void UpdateHwnd(HWND hwnd, RC *prc, ulong grfapp = fappNil);\n\n    virtual bool FCmdOpen(PCMD pcmd);\n};\n\n#endif //! CHED_H\n"
  },
  {
    "path": "kauai/tools/ched.rc",
    "content": "//Microsoft Visual C++ generated resource script.\n//\n#include \"chedres.h\"\n\n#define APSTUDIO_READONLY_SYMBOLS\n/////////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 2 resource.\n//\n#define APSTUDIO_HIDDEN_SYMBOLS\n#include \"windows.h\"\n#undef APSTUDIO_HIDDEN_SYMBOLS\n#include \"framedef.h\"\n\n/////////////////////////////////////////////////////////////////////////////\n#undef APSTUDIO_READONLY_SYMBOLS\n\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Menu\n//\n\n128 MENU DISCARDABLE \nBEGIN\n    POPUP \"&File\"\n    BEGIN\n        MENUITEM \"&New\\tCtrl+N\",                cidNew\n        MENUITEM \"&Open...\\tCtrl+O\",            cidOpen\n        MENUITEM \"&Reopen\",                     cidReopen\n        MENUITEM SEPARATOR\n        MENUITEM \"New &Text\",                   cidNewText\n        MENUITEM \"Open T&ext...\",               cidOpenText\n        MENUITEM SEPARATOR\n        MENUITEM \"&Close\\tCtrl+W\",              cidClose\n        MENUITEM \"Sa&ve and Close  \\tCtrl+E\",   cidSaveAndClose\n        MENUITEM \"&Save\\tCtrl+S\",               cidSave\n        MENUITEM \"Save &As...\",                 cidSaveAs\n        MENUITEM \"Save a Cop&y...\",             cidSaveCopy\n        MENUITEM SEPARATOR\n        MENUITEM \"E&xit\\tCtrl+Q\",               cidQuit\n    END\n    POPUP \"&Edit\"\n    BEGIN\n        MENUITEM \"&Undo\\tCtrl+Z\",               cidUndo\n        MENUITEM \"&Redo\\tCtrl+A\",               cidRedo\n        MENUITEM SEPARATOR\n        MENUITEM \"Cu&t\\tCtrl+X\",                cidCut\n        MENUITEM \"&Copy\\tCtrl+C\",               cidCopy\n        MENUITEM \"&Paste\\tCtrl+V\",              cidPaste\n        MENUITEM \"Paste Clo&ne\\tCtrl+K\",        cidPasteSpecial\n        MENUITEM \"&Delete\\tDel\",                cidClear\n        MENUITEM SEPARATOR\n        MENUITEM \"&Show Clipboard\",             cidShowClipboard\n    END\n    POPUP \"&Chunk\"\n    BEGIN\n        MENUITEM \"&New Chunk...\",               cidAddChunk\n        MENUITEM \"&Delete Chunk\",               cidDeleteChunk\n        MENUITEM \"&Undelete Chunk\",             cidUndeleteChunk\n        MENUITEM \"Clone Chunk\\tCtrl+L\",         cidCloneChunk\n        MENUITEM SEPARATOR\n        MENUITEM \"Fil&ter...\",                  cidFilterChunk\n        MENUITEM \"&Edit Chunk Information...\\tCtrl+Enter\", cidEditChunkInfo\n        MENUITEM \"C&hange CHID...\\tCtrl+Enter\", cidChangeChid\n        MENUITEM SEPARATOR\n        MENUITEM \"&Add Child...\",               cidAdoptChunk\n        MENUITEM \"De&lete Child\",               cidUnadoptChunk\n        MENUITEM SEPARATOR\n        MENUITEM \"Pac&k / Unpack\",              cidPack\n        MENUITEM \"T&oggle Pack Flag\",           cidTogglePack\n        MENUITEM SEPARATOR\n        MENUITEM \"Import &Bitmap...\",           cidAddMbmpChunk\n        MENUITEM \"Import &Mask...\",             cidAddMaskChunk\n        MENUITEM \"Import &Picture...\",          cidAddPicChunk\n        MENUITEM \"Import &File...\",             cidAddFileChunk\n        MENUITEM SEPARATOR\n        MENUITEM \"Compile &Script...\",          cidCompileInScript\n        MENUITEM \"Assemble Sc&ript...\",         cidCompilePostScript\n        MENUITEM SEPARATOR\n        MENUITEM \"&Compile To Chunky File\",     cidCompileChunky\n        MENUITEM \"Compile Script (&GLOP)\",      cidCompileScript\n        MENUITEM \"Assemble Scr&ipt (GLOP)\",     cidAssembleScript\n    END\n    POPUP \"Edit &As\"\n    BEGIN\n        MENUITEM \"Use as &Color Table (GLCR)\",  cidSetColorTable\n        MENUITEM \"Run Script (GLO&P) (3MB)\\tCtrl+R\", cidTestScript\n        MENUITEM \"R&un Script (GLOP)...\\tCtrl+T\", cidRunScriptCache\n        MENUITEM \"&Disassemble Script (GLOP)\",  cidDisassembleScript\n        MENUITEM SEPARATOR\n        MENUITEM \"&Natural\\tEnter\",             cidEditNatural\n        MENUITEM \"&Hex\\tCtrl+H\",                cidEditHex\n        MENUITEM SEPARATOR\n        MENUITEM \"General &List (GL)\",          cidEditGL\n        MENUITEM \"Allocated L&ist (AL)\",        cidEditAL\n        MENUITEM \"General &Group (GG)\",         cidEditGG\n        MENUITEM \"Allocated G&roup (AG)\",       cidEditAG\n        MENUITEM \"General &String Table (GST)\", cidEditGST\n        MENUITEM \"Allocated S&tring Table (AST)\", cidEditAST\n        MENUITEM SEPARATOR\n        MENUITEM \"Picture (&META)\",             cidEditPic\n        MENUITEM \"Masked Bitmap (M&BMP)\",       cidEditMbmp\n        MENUITEM \"Play Sound (&WAVE or MIDI)\",  cidPlaySound\n        MENUITEM \"St&op Sound\",                 cidStopSound\n    END\n    POPUP \"&Item\"\n    BEGIN\n        MENUITEM \"&Insert\",                     cidInsertItem\n        MENUITEM \"&Add\",                        cidAddItem\n        MENUITEM \"&Delete\",                     cidDeleteItem\n    END\n    POPUP \"&Window\"\n    BEGIN\n        MENUITEM \"_\",                           cidChooseWnd\n    END\nEND\n\n\n#ifdef APSTUDIO_INVOKED\n/////////////////////////////////////////////////////////////////////////////\n//\n// TEXTINCLUDE\n//\n\n1 TEXTINCLUDE DISCARDABLE \nBEGIN\n    \"chedres.h\\0\"\nEND\n\n2 TEXTINCLUDE DISCARDABLE \nBEGIN\n    \"#define APSTUDIO_HIDDEN_SYMBOLS\\r\\n\"\n    \"#include \"\"windows.h\"\"\\r\\n\"\n    \"#undef APSTUDIO_HIDDEN_SYMBOLS\\r\\n\"\n    \"#include \"\"framedef.h\"\"\\r\\n\"\n    \"\\0\"\nEND\n\n3 TEXTINCLUDE DISCARDABLE \nBEGIN\n    \"#include \"\"frame.rc\"\"\\r\\n\"\n    \"\\0\"\nEND\n\n/////////////////////////////////////////////////////////////////////////////\n#endif    // APSTUDIO_INVOKED\n\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Dialog\n//\n\ndlidChunkInfo DIALOG DISCARDABLE  50, 50, 185, 71\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Chunk Info\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"&OK\",1,111,9,50,14\n    PUSHBUTTON      \"&Cancel\",2,111,29,50,14\n    EDITTEXT        3,55,10,40,12,ES_AUTOHSCROLL\n    EDITTEXT        4,55,30,40,12,ES_AUTOHSCROLL\n    EDITTEXT        5,55,50,106,12,ES_AUTOHSCROLL\n    RTEXT           \"CTG:\",10,15,10,30,8\n    RTEXT           \"CNO:\",11,15,30,30,8\n    RTEXT           \"Name:\",12,18,52,28,8\nEND\n\ndlidAdoptChunk DIALOG DISCARDABLE  50, 50, 201, 118\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Adopt Chunk\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"&OK\",1,145,10,50,14\n    PUSHBUTTON      \"&Cancel\",2,145,30,50,14\n    EDITTEXT        3,80,10,40,12,ES_AUTOHSCROLL\n    EDITTEXT        4,80,30,40,12,ES_AUTOHSCROLL\n    EDITTEXT        5,80,55,40,12,ES_AUTOHSCROLL\n    EDITTEXT        6,80,75,40,12,ES_AUTOHSCROLL\n    EDITTEXT        7,80,95,40,12,ES_AUTOHSCROLL\n    RTEXT           \"Parent CTG:\",100,15,10,55,8\n    RTEXT           \"Parent CNO:\",101,15,30,55,8\n    RTEXT           \"Child CTG:\",102,15,55,55,8\n    RTEXT           \"Child CNO:\",dlidAdoptChunk,15,75,55,8\n    RTEXT           \"CHID:\",104,15,95,55,8\nEND\n\ndlidGlbNew DIALOG DISCARDABLE  100, 100, 185, 68\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"New GL/AL\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",1,129,6,50,14\n    PUSHBUTTON      \"Cancel\",2,129,25,50,14\n    EDITTEXT        3,70,40,43,12,ES_AUTOHSCROLL\n    LTEXT           \"Enter the size (in bytes) of each element of the GL/AL.\",\n                    4,10,10,113,20\n    RTEXT           \"Size:\",5,25,42,35,8\nEND\n\ndlidGgbNew DIALOG DISCARDABLE  100, 100, 185, 78\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"New GG/AG\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",1,129,6,50,14\n    PUSHBUTTON      \"Cancel\",2,129,25,50,14\n    EDITTEXT        3,65,50,43,12,ES_AUTOHSCROLL\n    LTEXT           \"Enter the size (in bytes) of the fixed-sized portion of each element of the GG/AG.\",\n                    4,10,5,113,30\n    RTEXT           \"Size:\",5,25,52,35,8\nEND\n\ndlidGstbNew DIALOG DISCARDABLE  100, 100, 185, 78\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"New GST/AST\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",1,129,6,50,14\n    PUSHBUTTON      \"Cancel\",2,129,25,50,14\n    EDITTEXT        3,70,50,43,12,ES_AUTOHSCROLL\n    LTEXT           \"Enter the size (in LONGs) of the extra data for each element of the GST/AST.\",\n                    4,10,10,113,30\n    RTEXT           \"Size:\",5,25,52,35,8\nEND\n\ndlidChangeChid DIALOG DISCARDABLE  50, 50, 121, 42\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Change CHID\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"&OK\",1,7,20,50,14\n    PUSHBUTTON      \"&Cancel\",2,63,20,50,14\n    EDITTEXT        3,57,4,40,12,ES_AUTOHSCROLL\n    RTEXT           \"CHID:\",10,14,6,39,8\nEND\n\ndlidMbmp DIALOG DISCARDABLE  50, 50, 167, 69\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Masked Bitmap\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",1,26,50,50,14\n    PUSHBUTTON      \"Cancel\",2,91,50,50,14\n    EDITTEXT        3,122,3,40,12,ES_AUTOHSCROLL\n    EDITTEXT        4,35,33,40,12,ES_AUTOHSCROLL\n    EDITTEXT        5,106,32,40,12,ES_AUTOHSCROLL\n    LTEXT           \"Transparent Pixel Value (0 ... 255):\",10,3,4,119,13\n    LTEXT           \"Reference Point [upper left is (0,0)]:\",11,16,18,125,12\n    LTEXT           \"X Pos:\",12,9,34,25,7\n    LTEXT           \"Y Pos:\",13,81,34,24,7\nEND\n\ndlidFilter DIALOG DISCARDABLE  100, 100, 185, 92\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Filter Chunks\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDOK,129,6,50,14\n    PUSHBUTTON      \"Cancel\",IDCANCEL,129,23,50,14\n    CONTROL         \"Hide &Children\",3,\"Button\",BS_AUTOCHECKBOX | WS_TABSTOP,\n                    13,10,94,10\n    CONTROL         \"&Hide Listed Chunks\",4,\"Button\",BS_AUTOCHECKBOX | \n                    WS_TABSTOP,13,29,94,10\n    EDITTEXT        5,34,56,132,12,ES_AUTOHSCROLL\n    RTEXT           \"CTGs:\",6,6,58,24,7\nEND\n\ndlidScriptCache DIALOG DISCARDABLE  0, 0, 211, 56\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Run Script\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",1,155,6,50,14\n    PUSHBUTTON      \"Cancel\",2,155,23,50,14\n    EDITTEXT        3,85,17,40,12,ES_AUTOHSCROLL\n    RTEXT           \"Cache Size (in KB):\",4,12,19,71,9\nEND\n\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Accelerator\n//\n\nacidMain ACCELERATORS DISCARDABLE \nBEGIN\n    \"A\",            cidRedo,                VIRTKEY, CONTROL, NOINVERT\n    \"C\",            cidCopy,                VIRTKEY, CONTROL, NOINVERT\n    \"E\",            cidSaveAndClose,        VIRTKEY, CONTROL, NOINVERT\n    \"H\",            cidEditHex,             VIRTKEY, CONTROL, NOINVERT\n    \"K\",            cidPasteSpecial,        VIRTKEY, CONTROL, NOINVERT\n    \"L\",            cidCloneChunk,          VIRTKEY, CONTROL, NOINVERT\n    \"N\",            cidNew,                 VIRTKEY, CONTROL, NOINVERT\n    \"O\",            cidOpen,                VIRTKEY, CONTROL, NOINVERT\n    \"Q\",            cidQuit,                VIRTKEY, CONTROL, NOINVERT\n    \"R\",            cidTestScript,          VIRTKEY, CONTROL, NOINVERT\n    \"S\",            cidSave,                VIRTKEY, CONTROL, NOINVERT\n    \"T\",            cidRunScriptCache,      VIRTKEY, CONTROL, NOINVERT\n    \"V\",            cidPaste,               VIRTKEY, CONTROL, NOINVERT\n    \"W\",            cidClose,               VIRTKEY, CONTROL, NOINVERT\n    \"X\",            cidCut,                 VIRTKEY, CONTROL, NOINVERT\n    \"Z\",            cidUndo,                VIRTKEY, CONTROL, NOINVERT\nEND\n\n\n#ifndef APSTUDIO_INVOKED\n/////////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 3 resource.\n//\n#include \"frame.rc\"\n\n/////////////////////////////////////////////////////////////////////////////\n#endif    // not APSTUDIO_INVOKED\n\n"
  },
  {
    "path": "kauai/tools/chedres.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//{{NO_DEPENDENCIES}}\n// Microsoft Visual C++ generated include file.\n// Used by ched.rc\n//\n#define dlidChunkInfo 200\n#define dlidAdoptChunk 201\n#define dlidGlbNew 202\n#define dlidGgbNew 203\n#define dlidGstbNew 204\n#define dlidChangeChid 205\n#define dlidMbmp 206\n#define dlidFilter 207\n#define dlidScriptCache 208\n#define cidAddChunk 40010\n#define cidAdoptChunk 40011\n#define cidUnadoptChunk 40012\n#define cidDeleteChunk 40013\n#define cidUndeleteChunk 40014\n#define cidEditHex 40016\n#define cidEditGL 40017\n#define cidEditNatural 40018\n#define cidEditAL 40019\n#define cidEditGG 40020\n#define cidEditAG 40021\n#define cidEditGST 40022\n#define cidEditAST 40023\n#define cidInsertItem 40024\n#define cidAddItem 40025\n#define cidDeleteItem 40026\n#define cidEditPic 40027\n#define cidAddPicChunk 40028\n#define cidCompilePostScript 40029\n#define cidAddFileChunk 40030\n#define cidTestScript 40031\n#define cidCompileInScript 40032\n#define cidNewText 40033\n#define cidOpenText 40034\n#define cidDisassembleScript 40035\n#define cidEditChunkInfo 40036\n#define cidChangeChid 40037\n#define cidAddMbmpChunk 40038\n#define cidEditMbmp 40039\n#define cidSetColorTable 40040\n#define cidCompileChunky 40043\n#define cidCompileScript 40044\n#define cidAssembleScript 40045\n#define cidAddMaskChunk 40046\n#define cidFilterChunk 40049\n#define cidPlaySound 40051\n#define cidPack 40054\n#define cidTogglePack 40055\n#define cidStopSound 40056\n#define cidCloneChunk 40058\n#define cidRunScriptCache 40059\n#define cidReopen 40060\n\n// Next default values for new objects\n//\n#ifdef APSTUDIO_INVOKED\n#ifndef APSTUDIO_READONLY_SYMBOLS\n#define _APS_NEXT_RESOURCE_VALUE 209\n#define _APS_NEXT_COMMAND_VALUE 40061\n#define _APS_NEXT_CONTROL_VALUE 1019\n#define _APS_NEXT_SYMED_VALUE 128\n#endif\n#endif\n"
  },
  {
    "path": "kauai/tools/chelp.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Help authoring tool.\n\n***************************************************************************/\n#include \"chelp.h\"\nASSERTNAME\n\nBEGIN_CMD_MAP(APP, APPB)\nON_CID_GEN(cidNew, &APP::FCmdOpen, pvNil)\nON_CID_GEN(cidOpen, &APP::FCmdOpen, pvNil)\nON_CID_GEN(cidOpenText, &APP::FCmdOpen, pvNil)\nON_CID_GEN(cidOpenRichText, &APP::FCmdOpen, pvNil)\nON_CID_GEN(cidLoadResFile, &APP::FCmdLoadResFile, pvNil)\nON_CID_GEN(cidChooseLanguage, &APP::FCmdChooseLanguage, &APP::FEnableChooseLanguage)\nEND_CMD_MAP_NIL()\n\nBEGIN_CMD_MAP(LIG, GOB)\nON_CID_ME(cidDoScroll, &LIG::FCmdScroll, pvNil)\nON_CID_ME(cidEndScroll, &LIG::FCmdScroll, pvNil)\nEND_CMD_MAP_NIL()\n\nAPP vapp;\n\nRTCLASS(APP)\nRTCLASS(LIG)\nRTCLASS(LID)\nRTCLASS(CCG)\nRTCLASS(CCGT)\n\nSTRG _strg;\nPSTRG vpstrg;\nSC_LID vsclid = ksclidAmerican;\nPSPLC vpsplc;\n\n/***************************************************************************\n    Main for a frame app.\n***************************************************************************/\nvoid FrameMain(void)\n{\n    vpstrg = &_strg;\n    vapp.Run(fappNil, fgobNil, kginDefault);\n    ReleasePpo(&vpsplc);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a APP.\n***************************************************************************/\nvoid APP::AssertValid(ulong grf)\n{\n    APP_PAR::AssertValid(0);\n    AssertNilOrPo(_pcrm, 0);\n    AssertNilOrPo(_plidPicture, 0);\n    AssertNilOrPo(_plidButton, 0);\n}\n\n/***************************************************************************\n    Mark memory for the APP.\n***************************************************************************/\nvoid APP::MarkMem(void)\n{\n    AssertValid(0);\n    APP_PAR::MarkMem();\n    MarkMemObj(_pcrm);\n    MarkMemObj(_plidPicture);\n    MarkMemObj(_plidButton);\n    MarkMemObj(&_strg);\n    MarkMemObj(vpsplc);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Initialize the app.  Add some stuff to the menus and do the command\n    line parsing thing.\n***************************************************************************/\nbool APP::_FInit(ulong grfapp, ulong grfgob, long ginDef)\n{\n    static long _rgdypFont[] = {10, 11, 12, 13, 14, 15, 16, 17, 18, 20, 22, 24, 28, 32, 36, 0};\n\n    struct LANG\n    {\n        PSZ psz;\n        long sclid;\n    };\n    static LANG _rglang[] = {\n        {PszLit(\"American\"), ksclidAmerican},\n        {PszLit(\"Australian\"), ksclidAustralian},\n        {PszLit(\"British\"), ksclidBritish},\n\n        {PszLit(\"German\"), ksclidGerman},\n        {PszLit(\"Swiss German\"), ksclidSwissGerman},\n\n        {PszLit(\"French\"), ksclidFrench},\n        {PszLit(\"French Canadian\"), ksclidFrenchCanadian},\n\n        {PszLit(\"Spanish\"), ksclidSpanish},\n        {PszLit(\"Catalan\"), ksclidCatalan},\n\n        {PszLit(\"Italian\"), ksclidItalian},\n\n        {PszLit(\"Other...\"), 0},\n    };\n\n    long iv, dyp;\n    STN stn;\n\n    if (!APP_PAR::_FInit(grfapp, grfgob, ginDef))\n        return fFalse;\n\n    vpmubCur->FRemoveAllListCid(cidChooseFontSize);\n    stn = PszLit(\"Other...\");\n    vpmubCur->FAddListCid(cidChooseFontSize, 0, &stn);\n    for (iv = 0; (dyp = _rgdypFont[iv]) != 0; iv++)\n    {\n        stn.FFormatSz(PszLit(\"%d\"), dyp);\n        vpmubCur->FAddListCid(cidChooseFontSize, dyp, &stn);\n    }\n\n    for (iv = 0; iv < CvFromRgv(_rglang); iv++)\n    {\n        stn = _rglang[iv].psz;\n        vpmubCur->FAddListCid(cidChooseLanguage, _rglang[iv].sclid, &stn);\n    }\n\n#ifdef WIN\n    // parse the command line and load any resource files and help files\n    FNI fni;\n    bool fQuote, fRes, fSkip;\n    PSZ psz = vwig.pszCmdLine;\n\n    // skip the first token since it is the path\n    fSkip = fTrue;\n    fRes = fFalse;\n    for (;;)\n    {\n        while (*psz == kchSpace)\n            psz++;\n        if (!*psz)\n            break;\n\n        stn.SetNil();\n        fQuote = fFalse;\n        while (*psz && (fQuote || *psz != kchSpace))\n        {\n            if (*psz == ChLit('\"'))\n                fQuote = !fQuote;\n            else\n                stn.FAppendCh(*psz);\n            psz++;\n        }\n\n        if (stn.Cch() == 0)\n            continue;\n\n        if (fSkip)\n        {\n            fSkip = fFalse;\n            continue;\n        }\n\n        if (stn.Cch() == 2 && (stn.Psz()[0] == ChLit('/') || stn.Psz()[0] == ChLit('-')))\n        {\n            // command line switch\n            switch (stn.Psz()[1])\n            {\n            case ChLit('r'):\n            case ChLit('R'):\n                fRes = fTrue;\n                break;\n            }\n            continue;\n        }\n\n        if (!fni.FBuildFromPath(&stn) || fni.Ftg() == kftgDir)\n        {\n            fRes = fFalse;\n            continue;\n        }\n\n        if (fRes)\n            FLoadResFile(&fni);\n        else\n            FOpenDocFile(&fni);\n        fRes = fFalse;\n    }\n#endif // WIN\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the name for the help editor app.\n***************************************************************************/\nvoid APP::GetStnAppName(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n#ifdef UNICODE\n    STN stnDate;\n    STN stnTime;\n\n    stnDate.SetSzs(__DATE__);\n    stnTime.SetSzs(__TIME__);\n    pstn->FFormatSz(Debug(PszLit(\"Debug \")) PszLit(\"Chelp (Unicode; %s; %s)\"), &stnDate, &stnTime);\n#else  //! UNICODE\n    *pstn = Debug(\"Debug \") \"Chelp (Ansi; \" __DATE__ \"; \" __TIME__ \")\";\n#endif //! UNICODE\n}\n\n/***************************************************************************\n    Update the given window.  *prc is the bounding rectangle of the update\n    region.\n***************************************************************************/\nvoid APP::UpdateHwnd(HWND hwnd, RC *prc, ulong grfapp)\n{\n    AssertThis(0);\n    PGOB pgob;\n\n    if (pvNil == (pgob = GOB::PgobFromHwnd(hwnd)))\n        return;\n\n    // for text windows, do offscreen updating\n    if (pgob->FIs(kclsDMD) && ((PDMD)pgob)->Pdocb()->FIs(kclsTXRD))\n        grfapp |= fappOffscreen;\n\n    APP_PAR::UpdateHwnd(hwnd, prc, grfapp);\n}\n\n/***************************************************************************\n    Do a fast update of the gob and its descendents into the given gpt.\n***************************************************************************/\nvoid APP::_FastUpdate(PGOB pgob, PREGN pregnClip, ulong grfapp, PGPT pgpt)\n{\n    AssertThis(0);\n\n    // for text windows, do offscreen updating\n    if (pgob->FIs(kclsDMD) && ((PDMD)pgob)->Pdocb()->FIs(kclsTXRD))\n        grfapp |= fappOffscreen;\n\n    APP_PAR::_FastUpdate(pgob, pregnClip, grfapp, pgpt);\n}\n\n/***************************************************************************\n    Open an existing or new chunky file for editing.\n    Handles cidNew and cidOpen.\n***************************************************************************/\nbool APP::FCmdOpen(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    FNI fni;\n    FNI *pfni;\n\n    pfni = pvNil;\n    switch (pcmd->cid)\n    {\n    default:\n        Bug(\"why are we here?\");\n        return fTrue;\n\n    case cidOpen:\n        // do the standard dialog\n        if (!FGetFniOpenMacro(&fni, pvNil, 0, PszLit(\"Kid Help Files\\0*.khp;*.chk\\0All Files\\0*.*\\0\"), vwig.hwndApp))\n        {\n            return fTrue;\n        }\n        pfni = &fni;\n        break;\n\n    case cidOpenText:\n        // do the standard dialog\n        if (!FGetFniOpenMacro(&fni, pvNil, 0, PszLit(\"Text files\\0*.txt\\0All Files\\0*.*\\0\"), vwig.hwndApp))\n        {\n            return fTrue;\n        }\n        pfni = &fni;\n        break;\n\n    case cidOpenRichText:\n        // do the standard dialog\n        if (!FGetFniOpenMacro(&fni, pvNil, 0, PszLit(\"Rich Text files\\0*.rtx\\0All Files\\0*.*\\0\"), vwig.hwndApp))\n        {\n            return fTrue;\n        }\n        pfni = &fni;\n        break;\n\n    case cidNew:\n        break;\n    }\n\n    FOpenDocFile(pfni, pcmd->cid);\n    return fTrue;\n}\n\n/***************************************************************************\n    Load a document file.\n***************************************************************************/\nbool APP::FOpenDocFile(PFNI pfni, long cid)\n{\n    AssertThis(0);\n    AssertNilOrPo(pfni, 0);\n    bool fRet;\n    PDOCB pdocb;\n    PHEDO phedo;\n    PTXRD ptxrd;\n\n    if (pvNil != pfni && pvNil != (pdocb = DOCB::PdocbFromFni(pfni)))\n    {\n        pdocb->ActivateDmd();\n        return fTrue;\n    }\n\n    pdocb = pvNil;\n    switch (cid)\n    {\n    case cidOpenText:\n        if (pvNil == (ptxrd = TXRD::PtxrdNew(pvNil)))\n            return fFalse;\n\n        fRet = fFalse;\n        if (pvNil != pfni)\n        {\n            FLO flo;\n\n            if (pvNil == (flo.pfil = FIL::PfilOpen(pfni)))\n                goto LFail;\n            flo.fp = 0;\n            flo.cb = flo.pfil->FpMac();\n\n            fRet = ptxrd->FReplaceFlo(&flo, fTrue, 0, 0);\n            ReleasePpo(&flo.pfil);\n            if (!fRet)\n            {\n            LFail:\n                ReleasePpo(&ptxrd);\n                return fFalse;\n            }\n        }\n        pdocb = ptxrd;\n        break;\n\n    case cidOpenRichText:\n        if (pvNil == (pdocb = TXRD::PtxrdNew(pfni)))\n            return fFalse;\n        break;\n\n    default:\n        if (pvNil == _pcrm && pvNil == (_pcrm = CRM::PcrmNew(1)))\n            return fFalse;\n        if (pvNil == _plidPicture && pvNil == (_plidPicture = LID::PlidNew(_pcrm, kctgMbmp)))\n        {\n            return fFalse;\n        }\n        if (pvNil == _plidButton &&\n            pvNil == (_plidButton = LID::PlidNew(_pcrm, kctgGokd, ChidFromSnoDchid(ksnoInit, 0))))\n        {\n            return fFalse;\n        }\n\n        phedo = HEDO::PhedoNew(pfni, _pcrm);\n        if (pvNil == phedo)\n            return fFalse;\n        pdocb = phedo;\n        break;\n    }\n\n    fRet = (pdocb->PdmdNew() != pvNil);\n    ReleasePpo(&pdocb);\n\n    return fRet;\n}\n\n/***************************************************************************\n    Open an existing or new chunky file for editing.\n    Handles cidNew and cidOpen.\n***************************************************************************/\nbool APP::FCmdLoadResFile(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    FNI fni;\n\n    if (!FGetFniOpenMacro(&fni, pvNil, 0, PszLit(\"Chunky Resource Files\\0*.chk\\0All Files\\0*.*\\0\"), vwig.hwndApp))\n    {\n        return fTrue;\n    }\n\n    FLoadResFile(&fni);\n    return fTrue;\n}\n\n/***************************************************************************\n    Load a resource file.\n***************************************************************************/\nbool APP::FLoadResFile(PFNI pfni)\n{\n    AssertThis(0);\n    AssertPo(pfni, ffniFile);\n    PCFL pcfl;\n    long ipcrf;\n    PCRF pcrf;\n    BLCK blck;\n\n    if (pvNil == _pcrm && pvNil == (_pcrm = CRM::PcrmNew(1)))\n        return fFalse;\n\n    if (pvNil == (pcfl = CFL::PcflOpen(pfni, fcflNil)))\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Can't open that file\"), bkOk, cokStop);\n        return fFalse;\n    }\n\n    // see if it's already in the crm.\n    for (ipcrf = _pcrm->Ccrf(); ipcrf-- > 0;)\n    {\n        pcrf = _pcrm->PcrfGet(ipcrf);\n        if (pcfl == pcrf->Pcfl())\n            return fTrue;\n    }\n\n    if (!_pcrm->FAddCfl(pcfl, 0x100000L))\n    {\n        ReleasePpo(&pcfl);\n        return fFalse;\n    }\n\n    if (pcfl->FGetCkiCtg(kctgColorTable, 0, pvNil, pvNil, &blck))\n    {\n        PGL pglclr;\n\n        if (pvNil != (pglclr = GL::PglRead(&blck)) && pglclr->CbEntry() == size(CLR))\n        {\n            GPT::SetActiveColors(pglclr, fpalIdentity);\n        }\n        ReleasePpo(&pglclr);\n    }\n    ReleasePpo(&pcfl);\n\n    if (pvNil != _plidPicture)\n        _plidPicture->FRefresh();\n    if (pvNil != _plidButton)\n        _plidButton->FRefresh();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Check or uncheck the language as appropriate.\n***************************************************************************/\nbool APP::FEnableChooseLanguage(PCMD pcmd, ulong *pgrfeds)\n{\n    AssertThis(0);\n    AssertPo(pcmd, 0);\n    AssertVarMem(pgrfeds);\n\n    *pgrfeds = fedsEnable | fedsUncheck;\n    if (vsclid == pcmd->rglw[0])\n        *pgrfeds = fedsEnable | fedsCheck;\n\n    return fTrue;\n}\n\nenum\n{\n    kiditOkLang,\n    kiditCancelLang,\n    kiditCodeLang,\n    kiditLimLang\n};\n\n/***************************************************************************\n    Command to choose the language (for spelling).\n***************************************************************************/\nbool APP::FCmdChooseLanguage(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertPo(pcmd, 0);\n\n    if (pcmd->rglw[0] == 0)\n    {\n        // ask the user\n        PDLG pdlg;\n        bool fRet;\n\n        if (pvNil == (pdlg = DLG::PdlgNew(dlidFontSize)))\n            return fTrue;\n\n        pdlg->FPutLwInEdit(kiditCodeLang, vsclid);\n        if (kiditOkLang != pdlg->IditDo(kiditCodeLang))\n        {\n            ReleasePpo(&pdlg);\n            return fFalse;\n        }\n\n        fRet = pdlg->FGetLwFromEdit(kiditCodeLang, &pcmd->rglw[0]);\n        ReleasePpo(&pdlg);\n        if (!fRet)\n            return fTrue;\n    }\n\n    if ((SC_LID)pcmd->rglw[0] == vsclid)\n        return fTrue;\n\n    ReleasePpo(&vpsplc);\n    vsclid = (SC_LID)pcmd->rglw[0];\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Create a new LIG for the given help text document.\n***************************************************************************/\nPLIG APP::PligNew(bool fButton, PGCB pgcb, PTXHD ptxhd)\n{\n    PLID plid = fButton ? _plidButton : _plidPicture;\n\n    if (pvNil == plid)\n        return pvNil;\n    return LIG::PligNew(plid, pgcb, ptxhd);\n}\n\n/***************************************************************************\n    Constructor for the list display gob.\n***************************************************************************/\nLID::LID(void) : LID_PAR()\n{\n}\n\n/***************************************************************************\n    Desctructor for the list display gob.\n***************************************************************************/\nLID::~LID(void)\n{\n    ReleasePpo(&_pcrm);\n    ReleasePpo(&_pglcach);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a LID.\n***************************************************************************/\nvoid LID::AssertValid(ulong grf)\n{\n    LID_PAR::AssertValid(0);\n    AssertPo(_pcrm, 0);\n    AssertPo(_pglcach, 0);\n}\n\n/***************************************************************************\n    Mark memory for the LIG.\n***************************************************************************/\nvoid LID::MarkMem(void)\n{\n    AssertValid(0);\n    LID_PAR::MarkMem();\n    MarkMemObj(_pcrm);\n    MarkMemObj(_pglcach);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Static method to create a new list document.\n***************************************************************************/\nPLID LID::PlidNew(PCRM pcrm, CTG ctg, CHID chid)\n{\n    AssertPo(pcrm, 0);\n    PLID plid;\n\n    if (pvNil == (plid = NewObj LID))\n        return pvNil;\n\n    if (!plid->_FInit(pcrm, ctg, chid))\n        ReleasePpo(&plid);\n\n    return plid;\n}\n\n/***************************************************************************\n    Initialization for the list document.\n***************************************************************************/\nbool LID::_FInit(PCRM pcrm, CTG ctg, CHID chid)\n{\n    AssertPo(pcrm, 0);\n    GCB gcb;\n\n    if (pvNil == (_pglcach = GL::PglNew(size(CACH))))\n        return fFalse;\n    _pglcach->SetMinGrow(100);\n\n    _pcrm = pcrm;\n    _pcrm->AddRef();\n    _ctg = ctg;\n    _chid = chid;\n\n    return FRefresh();\n}\n\n/***************************************************************************\n    Rebuild the list and update the DDGs.  The pcrm has changed.\n***************************************************************************/\nbool LID::FRefresh(void)\n{\n    AssertThis(0);\n    long ipcrf, icki;\n    CACH cach, cachT;\n    PCRF pcrf;\n    PCFL pcfl;\n    CKI cki;\n    long ivMin, ivLim, iv;\n    KID kid;\n    long ipddg;\n    PDDG pddg;\n    bool fRet = fFalse;\n\n    _pglcach->FSetIvMac(0);\n    for (ipcrf = 0; ipcrf < _pcrm->Ccrf(); ipcrf++)\n    {\n        pcrf = _pcrm->PcrfGet(ipcrf);\n        pcfl = pcrf->Pcfl();\n        for (icki = 0; pcfl->FGetCkiCtg(_ctg, icki, &cki); icki++)\n        {\n            cach.pcrf = pcrf;\n            cach.cno = cach.cnoMbmp = cki.cno;\n            if (kctgMbmp != _ctg)\n            {\n                if (!pcfl->FGetKidChidCtg(_ctg, cki.cno, _chid, kctgMbmp, &kid))\n                    continue;\n                cach.cnoMbmp = kid.cki.cno;\n            }\n\n            // determine where this cno goes.\n            for (ivMin = 0, ivLim = _pglcach->IvMac(); ivMin < ivLim;)\n            {\n                iv = (ivMin + ivLim) / 2;\n                _pglcach->Get(iv, &cachT);\n                if (cachT.cno < cach.cno)\n                    ivMin = iv + 1;\n                else\n                    ivLim = iv;\n            }\n            if (ivMin < _pglcach->IvMac())\n            {\n                _pglcach->Get(ivMin, &cachT);\n                if (cachT.cno == cach.cno)\n                    continue;\n            }\n            if (!_pglcach->FInsert(ivMin, &cach))\n                goto LFail;\n        }\n    }\n    fRet = fTrue;\nLFail:\n\n    // invalidate the LIGs\n    for (ipddg = 0; pvNil != (pddg = PddgGet(ipddg)); ipddg++)\n    {\n        Assert(pddg->FIs(kclsLIG), 0);\n        ((PLIG)pddg)->Refresh();\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the number of items in the list.\n***************************************************************************/\nlong LID::Ccki(void)\n{\n    AssertThis(0);\n    return _pglcach->IvMac();\n}\n\n/***************************************************************************\n    Get the CKI for the indicated item.\n***************************************************************************/\nvoid LID::GetCki(long icki, CKI *pcki, PCRF *ppcrf)\n{\n    AssertThis(0);\n    AssertIn(icki, 0, _pglcach->IvMac());\n    AssertVarMem(pcki);\n    AssertNilOrVarMem(ppcrf);\n    CACH cach;\n\n    _pglcach->Get(icki, &cach);\n    pcki->ctg = _ctg;\n    pcki->cno = cach.cno;\n    if (pvNil != ppcrf)\n        *ppcrf = cach.pcrf;\n}\n\n/***************************************************************************\n    Get an MBMP for the indicated item.\n***************************************************************************/\nPMBMP LID::PmbmpGet(long icki)\n{\n    AssertThis(0);\n    AssertIn(icki, 0, _pglcach->IvMac());\n    CACH cach;\n\n    _pglcach->Get(icki, &cach);\n    return (PMBMP)cach.pcrf->PbacoFetch(kctgMbmp, cach.cnoMbmp, MBMP::FReadMbmp);\n}\n\n/***************************************************************************\n    Constructor for the list display gob.\n***************************************************************************/\nLIG::LIG(PLID plid, GCB *pgcb) : LIG_PAR(plid, pgcb)\n{\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a LIG.\n***************************************************************************/\nvoid LIG::AssertValid(ulong grf)\n{\n    LIG_PAR::AssertValid(0);\n    AssertPo(_pscb, 0);\n    AssertPo(_ptxhd, 0);\n    AssertIn(_dypCell, 1, kswMax);\n}\n\n/***************************************************************************\n    Mark memory for the LIG.\n***************************************************************************/\nvoid LIG::MarkMem(void)\n{\n    AssertValid(0);\n    LIG_PAR::MarkMem();\n    MarkMemObj(_ptxhd);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Static method to create a new list display gob.\n***************************************************************************/\nPLIG LIG::PligNew(PLID plid, GCB *pgcb, PTXHD ptxhd, long dypCell)\n{\n    AssertPo(plid, 0);\n    AssertVarMem(pgcb);\n    AssertPo(ptxhd, 0);\n    AssertIn(dypCell, 1, kswMax);\n    PLIG plig;\n\n    if (pvNil == (plig = NewObj LIG(plid, pgcb)))\n        return pvNil;\n\n    if (!plig->_FInit(ptxhd, dypCell))\n        ReleasePpo(&plig);\n\n    return plig;\n}\n\n/***************************************************************************\n    Return the LID for this LIG.\n***************************************************************************/\nPLID LIG::Plid(void)\n{\n    AssertPo(_pdocb, 0);\n    Assert(_pdocb->FIs(kclsLID), 0);\n    return (PLID)_pdocb;\n}\n\n/***************************************************************************\n    Initialization for the list display gob.\n***************************************************************************/\nbool LIG::_FInit(PTXHD ptxhd, long dypCell)\n{\n    AssertPo(ptxhd, 0);\n    AssertIn(dypCell, 1, kswMax);\n    GCB gcb;\n\n    if (!LIG_PAR::_FInit())\n        return fFalse;\n\n    _ptxhd = ptxhd;\n    _dypCell = dypCell;\n\n    gcb.Set(khidVScroll, this);\n    gcb._rcRel.Set(krelOne, 0, krelOne, krelOne);\n    gcb._rcAbs.Set(-SCB::DxpNormal(), -1, 0, 1 - kdxpFrameCcg);\n    if (pvNil == (_pscb = SCB::PscbNew(&gcb, fscbVert, 0, 0, Plid()->Ccki() - 1)))\n    {\n        return fFalse;\n    }\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    The LID has changed, reset the scroll bounds and invalidate the display\n    area.\n***************************************************************************/\nvoid LIG::Refresh(void)\n{\n    AssertThis(0);\n    long val;\n\n    InvalRc(pvNil);\n    val = LwMax(0, LwMin(_pscb->Val(), Plid()->Ccki() - 1));\n    _pscb->SetValMinMax(val, 0, Plid()->Ccki() - 1);\n}\n\n/***************************************************************************\n    Draw the list.\n***************************************************************************/\nvoid LIG::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    RC rc, rcT, rcCell, rcClip;\n    long icki;\n    PMBMP pmbmp;\n    PLID plid;\n    long ccki;\n\n    plid = Plid();\n    ccki = plid->Ccki();\n\n    GetRc(&rc, cooLocal);\n    rcT = rc;\n    rc.ypBottom = rcT.ypTop = rcT.ypBottom - kdxpFrameCcg;\n    pgnv->FillRc(&rcT, kacrBlack);\n    _pscb->GetRc(&rcT, cooParent);\n    rc.xpRight = rcT.xpLeft;\n\n    rcCell = rc;\n    if (!rc.FIntersect(prcClip))\n        return;\n\n    pgnv->FillRc(&rc, kacrWhite);\n    rcCell.ypTop = LwRoundToward(rc.ypTop, _dypCell);\n    icki = _pscb->Val() + rcCell.ypTop / _dypCell;\n    for (; rcCell.ypTop < rc.ypBottom && icki < ccki; rcCell.ypTop += _dypCell, icki++)\n    {\n        rcCell.ypBottom = rcCell.ypTop + _dypCell;\n        pmbmp = plid->PmbmpGet(icki);\n        if (pvNil == pmbmp)\n            continue;\n        pmbmp->GetRc(&rcT);\n        rcT.CenterOnRc(&rcCell);\n        if (rcClip.FIntersect(&rc, &rcCell))\n        {\n            pgnv->ClipRc(&rcClip);\n            pgnv->DrawMbmp(pmbmp, &rcT);\n        }\n        ReleasePpo(&pmbmp);\n    }\n}\n\n/***************************************************************************\n    Handles a scroll command.\n***************************************************************************/\nbool LIG::FCmdScroll(PCMD pcmd)\n{\n    long dval, val;\n    RC rc, rcT;\n\n    GetRc(&rc, cooLocal);\n    rc.ypBottom -= kdxpFrameCcg;\n    _pscb->GetRc(&rcT, cooParent);\n    rc.xpRight = rcT.xpLeft;\n    val = _pscb->Val();\n    switch (pcmd->cid)\n    {\n    case cidDoScroll:\n        switch (pcmd->rglw[1])\n        {\n        default:\n            Bug(\"unknown sca\");\n            return fTrue;\n        case scaLineUp:\n            dval = -1;\n            break;\n        case scaPageUp:\n            dval = -LwMax(1, rc.Dyp() / _dypCell - 1);\n            break;\n        case scaLineDown:\n            dval = 1;\n            break;\n        case scaPageDown:\n            dval = LwMax(1, rc.Dyp() / _dypCell - 1);\n            break;\n        case scaToVal:\n            dval = pcmd->rglw[2] - val;\n            break;\n        }\n        break;\n\n    case cidEndScroll:\n        dval = pcmd->rglw[1] - val;\n        break;\n    }\n\n    dval = LwMax(0, LwMin(dval + val, _pscb->ValMax())) - val;\n    if (dval == 0)\n        return fTrue;\n\n    _pscb->SetVal(val + dval);\n    Scroll(&rc, 0, -dval * _dypCell, kginDraw);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    The mouse was clicked in the LIG.  Insert the object in the active\n    DDG.\n***************************************************************************/\nvoid LIG::MouseDown(long xp, long yp, long cact, ulong grfcust)\n{\n    AssertThis(0);\n    long icki;\n    CKI cki;\n    RC rc, rcT;\n    PHETG phetg;\n    PCRF pcrf;\n    PLID plid;\n\n    plid = (PLID)_pdocb;\n    Assert(plid->FIs(kclsLID), 0);\n    AssertPo(plid, 0);\n\n    GetRc(&rc, cooLocal);\n    _pscb->GetRc(&rcT, cooParent);\n    rc.xpRight = rcT.xpLeft;\n    if (!rc.FPtIn(xp, yp))\n        return;\n\n    icki = _pscb->Val() + yp / _dypCell;\n    if (!FIn(icki, 0, plid->Ccki()))\n        return;\n\n    phetg = (PHETG)_ptxhd->PddgActive();\n    if (pvNil == phetg || !phetg->FIs(kclsHETG))\n        return;\n    plid->GetCki(icki, &cki, &pcrf);\n\n    switch (cki.ctg)\n    {\n    case kctgMbmp:\n        phetg->FInsertPicture(pcrf, cki.ctg, cki.cno);\n        break;\n\n    case kctgGokd:\n        phetg->FInsertButton(pcrf, cki.ctg, cki.cno);\n        break;\n    }\n}\n\n/***************************************************************************\n    Constructor for the CCG.\n***************************************************************************/\nCCG::CCG(GCB *pgcb, PTXHD ptxhd, bool fForeColor, long cacrRow) : CCG_PAR(pgcb)\n{\n    AssertPo(ptxhd, 0);\n    AssertIn(cacrRow, 1, 257);\n    _ptxhd = ptxhd;\n    _cacrRow = cacrRow;\n    _fForeColor = FPure(fForeColor);\n}\n\n/***************************************************************************\n    Handle mousedown in a CCG.  Set the foreground or background color of\n    the text in the active of DDG of the ptxhd.\n***************************************************************************/\nvoid CCG::MouseDown(long xp, long yp, long cact, ulong grfcust)\n{\n    AssertThis(0);\n    PHETG phetg;\n    ACR acr;\n\n    if (!_FGetAcrFromPt(xp, yp, &acr))\n        return;\n\n    phetg = (PHETG)_ptxhd->PddgActive();\n    if (pvNil != phetg && phetg->FIs(kclsHETG))\n        phetg->FSetColor(_fForeColor ? &acr : pvNil, _fForeColor ? pvNil : &acr);\n}\n\n/***************************************************************************\n    Draw the Color chooser gob.\n***************************************************************************/\nvoid CCG::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    long crcHeight, ircHeight, ircWidth;\n    long iscr;\n    RC rc, rcT;\n    ACR acr;\n\n    GetRc(&rc, cooLocal);\n    rc.ypTop -= kdxpFrameCcg;\n    rc.xpLeft -= kdxpFrameCcg;\n    pgnv->SetPenSize(kdxpFrameCcg, kdxpFrameCcg);\n    pgnv->FrameRc(&rc, kacrBlack);\n    rc.Inset(kdxpFrameCcg, kdxpFrameCcg);\n    pgnv->FillRc(&rc, kacrWhite);\n    rc.Inset(kdxpFrameCcg, kdxpFrameCcg);\n\n    crcHeight = LwDivAway(257, _cacrRow);\n    for (iscr = 0, ircHeight = 0; ircHeight < crcHeight; ircHeight++)\n    {\n        for (ircWidth = 0; ircWidth < _cacrRow; ircWidth++, iscr++)\n        {\n            rcT.SetToCell(&rc, _cacrRow, crcHeight, ircWidth, ircHeight);\n            switch (iscr)\n            {\n            default:\n                acr.SetToIndex((byte)iscr);\n                pgnv->FillRc(&rcT, acr);\n                break;\n\n            case 0:\n                pgnv->FillRc(&rcT, kacrBlack);\n                break;\n\n            case 256:\n                if (!_fForeColor)\n                    pgnv->FillRcApt(&rcT, &vaptGray, kacrBlack, kacrWhite);\n                return;\n            }\n        }\n    }\n}\n\n/***************************************************************************\n    Map the given point to a color.\n***************************************************************************/\nbool CCG::_FGetAcrFromPt(long xp, long yp, ACR *pacr, RC *prc, long *piscr)\n{\n    AssertThis(0);\n    AssertVarMem(pacr);\n    AssertNilOrVarMem(prc);\n    AssertNilOrVarMem(piscr);\n    RC rc;\n    long iscr;\n    long ircWidth, ircHeight;\n\n    GetRc(&rc, cooLocal);\n    rc.ypTop += kdxpFrameCcg;\n    rc.xpLeft += kdxpFrameCcg;\n    rc.ypBottom -= 2 * kdxpFrameCcg;\n    rc.xpRight -= 2 * kdxpFrameCcg;\n    if (!rc.FMapToCell(xp, yp, _cacrRow, LwDivAway(257, _cacrRow), &ircWidth, &ircHeight))\n    {\n        TrashVar(prc);\n        TrashVar(piscr);\n        return fFalse;\n    }\n\n    iscr = LwMul(ircHeight, _cacrRow) + ircWidth;\n    switch (iscr)\n    {\n    default:\n        if (!FIn(iscr, 1, 256))\n            return fFalse;\n        pacr->SetToIndex((byte)iscr);\n        break;\n\n    case 0:\n        *pacr = kacrBlack;\n        break;\n\n    case 256:\n        if (_fForeColor)\n            return fFalse;\n        pacr->SetToClear();\n        break;\n    }\n\n    if (pvNil != prc)\n    {\n        prc->SetToCell(&rc, _cacrRow, LwDivAway(257, _cacrRow), ircWidth, ircHeight);\n    }\n    if (pvNil != piscr)\n        *piscr = iscr;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Put up the CCG's tool tip.\n***************************************************************************/\nbool CCG::FEnsureToolTip(PGOB *ppgobCurTip, long xpMouse, long ypMouse)\n{\n    AssertThis(0);\n    AssertVarMem(ppgobCurTip);\n    AssertNilOrPo(*ppgobCurTip, 0);\n    RC rc;\n    ACR acr;\n\n    ReleasePpo(ppgobCurTip);\n\n    GCB gcb(khidToolTip, this, fgobNil, kginMark);\n    *ppgobCurTip = NewObj CCGT(&gcb, kacrBlack);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    When the mouse moves over the CCG, update the tool tip.\n***************************************************************************/\nbool CCG::FCmdMouseMove(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    PCCGT pccgt;\n    RC rc, rcOld;\n    ACR acr;\n    STN stn;\n    long iscr;\n\n    if (pvNil == (pccgt = (PCCGT)PgobFromHid(khidToolTip)) || !pccgt->FIs(kclsCCGT))\n    {\n        return fTrue;\n    }\n\n    if (!_FGetAcrFromPt(pcmd->xp, pcmd->yp, &acr, &rc, &iscr))\n    {\n        rc.Zero();\n        acr = kacrBlack;\n    }\n    else\n    {\n        rc.ypBottom = rc.ypTop;\n        rc.ypTop -= 30;\n        rc.Inset(-20, 0);\n        if (acr == kacrClear)\n            stn = PszLit(\" Clear \");\n        else\n            stn.FFormatSz(PszLit(\" %d \"), iscr);\n    }\n\n    if (rc.ypTop < 0 && pcmd->yp < rc.Dyp())\n        rc.Offset(0, 60);\n    GetRc(&rcOld, cooLocal);\n    rcOld.ypBottom -= kdxpFrameCcg;\n    rcOld.xpRight -= kdxpFrameCcg;\n    rc.PinToRc(&rcOld);\n    pccgt->GetPos(&rcOld, pvNil);\n    if (rcOld != rc)\n        pccgt->SetPos(&rc);\n    pccgt->SetAcr(acr, &stn);\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a CCG.\n***************************************************************************/\nvoid CCG::AssertValid(ulong grf)\n{\n    CCG_PAR::AssertValid(0);\n    AssertPo(_ptxhd, 0);\n    AssertIn(_cacrRow, 1, 257);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for color chooser tool tip.\n***************************************************************************/\nCCGT::CCGT(PGCB pgcb, ACR acr, PSTN pstn) : CCGT_PAR(pgcb)\n{\n    AssertBaseThis(0);\n    _acr = acr;\n    if (pvNil != pstn)\n        _stn = *pstn;\n}\n\n/***************************************************************************\n    Set the color for the tool tip.\n***************************************************************************/\nvoid CCGT::SetAcr(ACR acr, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(&acr, 0);\n    AssertNilOrPo(pstn, 0);\n\n    if (_acr != acr || pvNil == pstn && _stn.Cch() > 0 || !_stn.FEqual(pstn))\n    {\n        _acr = acr;\n        if (pvNil == pstn)\n            _stn.SetNil();\n        else\n            _stn = *pstn;\n        InvalRc(pvNil, kginMark);\n    }\n}\n\n/***************************************************************************\n    Draw the color tool tip.\n***************************************************************************/\nvoid CCGT::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    RC rc;\n    ACR acr;\n\n    GetRc(&rc, cooLocal);\n    pgnv->SetPenSize(1, 1);\n    pgnv->FrameRc(&rc, kacrBlack);\n    rc.Inset(1, 1);\n    pgnv->FrameRc(&rc, kacrWhite);\n    rc.Inset(1, 1);\n    if (_acr == kacrClear)\n        pgnv->FillRcApt(&rc, &vaptGray, kacrBlack, kacrWhite);\n    else\n        pgnv->FillRc(&rc, _acr);\n\n    if (_stn.Cch() > 0)\n    {\n        pgnv->ClipRc(&rc);\n        pgnv->SetFont(vpappb->OnnDefVariable(), fontBold, 12, tahCenter, tavCenter);\n        if (_acr == kacrClear)\n        {\n            pgnv->DrawStn(&_stn, rc.XpCenter(), rc.YpCenter(), kacrBlack, kacrWhite);\n        }\n        else\n            pgnv->DrawStn(&_stn, rc.XpCenter(), rc.YpCenter(), _acr, kacrInvert);\n    }\n}\n"
  },
  {
    "path": "kauai/tools/chelp.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Main include file for the help authoring tool.\n\n***************************************************************************/\n#ifndef CHELP_H\n#define CHELP_H\n\n#include \"kidframe.h\"\n#include \"chelpexp.h\"\n#include \"chelpres.h\"\n\nextern PSTRG vpstrg;\nextern SC_LID vsclid;\nextern PSPLC vpsplc;\n\nenum\n{\n    khidLigButton = khidLimFrame,\n    khidLigPicture,\n};\n\n// creator type for the help editor\n#define kctgChelp 'CHLP'\n\ntypedef class LID *PLID;\ntypedef class LIG *PLIG;\ntypedef class HETD *PHETD;\n\n/***************************************************************************\n    App class\n***************************************************************************/\n#define APP_PAR APPB\n#define kclsAPP 'APP'\nclass APP : public APP_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(APP)\n\n  protected:\n    PCRM _pcrm;\n    PLID _plidPicture;\n    PLID _plidButton;\n\n    virtual bool _FInit(ulong grfapp, ulong grfgob, long ginDef);\n    virtual void _FastUpdate(PGOB pgob, PREGN pregnClip, ulong grfapp = fappNil, PGPT pgpt = pvNil);\n\n  public:\n    virtual void GetStnAppName(PSTN pstn);\n    virtual void UpdateHwnd(HWND hwnd, RC *prc, ulong grfapp = fappNil);\n\n    virtual bool FCmdOpen(PCMD pcmd);\n    virtual bool FCmdLoadResFile(PCMD pcmd);\n    virtual bool FCmdChooseLanguage(PCMD pcmd);\n    virtual bool FEnableChooseLanguage(PCMD pcmd, ulong *pgrfeds);\n\n    PLIG PligNew(bool fButton, PGCB pgcb, PTXHD ptxhd);\n    bool FLoadResFile(PFNI pfni);\n    bool FOpenDocFile(PFNI pfni, long cid = cidOpen);\n};\nextern APP vapp;\n\n/***************************************************************************\n    List document\n***************************************************************************/\n#define LID_PAR DOCB\n#define kclsLID 'LID'\nclass LID : public LID_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    struct CACH\n    {\n        PCRF pcrf;\n        CNO cno;\n        CNO cnoMbmp;\n    };\n\n    PCRM _pcrm;   // where to look for the chunks\n    CTG _ctg;     // what ctg to look for\n    CHID _chid;   // what chid value the MBMP should be at (if _ctg is not MBMP)\n    PGL _pglcach; // list of the chunks that we found\n\n    LID(void);\n    ~LID(void);\n\n    bool _FInit(PCRM pcrm, CTG ctg, CHID chid);\n\n  public:\n    static PLID PlidNew(PCRM pcrm, CTG ctg, CHID chid = 0);\n\n    bool FRefresh(void);\n    long Ccki(void);\n    void GetCki(long icki, CKI *pcki, PCRF *ppcrf = pvNil);\n    PMBMP PmbmpGet(long icki);\n};\n\n/***************************************************************************\n    List display gob\n***************************************************************************/\nconst long kdxpCellLig = kdzpInch * 2;\nconst long kdypCellLig = kdzpInch;\n\ntypedef class LIG *PLIG;\n#define LIG_PAR DDG\n#define kclsLIG 'LIG'\nclass LIG : public LIG_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n    CMD_MAP_DEC(LIG)\n\n  protected:\n    PTXHD _ptxhd;  // the document to put the chunk in\n    PSCB _pscb;    // our scroll bar\n    long _dypCell; // how tall are our cells\n\n    LIG(PLID plid, GCB *pgcb);\n    bool _FInit(PTXHD ptxhd, long dypCell);\n\n  public:\n    static PLIG PligNew(PLID plid, GCB *pgcb, PTXHD ptxhd, long dypCell = kdypCellLig);\n\n    PLID Plid(void);\n    void Refresh(void);\n    virtual void MouseDown(long xp, long yp, long cact, ulong grfcust);\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FCmdScroll(PCMD pcmd);\n};\n\n/***************************************************************************\n    Color chooser GOB.\n***************************************************************************/\nconst long kcacrCcg = 8;\nconst long kdxpCcg = 78;\nconst long kdxpFrameCcg = 2;\n\ntypedef class CCG *PCCG;\n#define CCG_PAR GOB\n#define kclsCCG 'CCG'\nclass CCG : public CCG_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    PTXHD _ptxhd;     // the document to put the color in\n    long _cacrRow;    // how many colors to put on a row\n    bool _fForeColor; // whether this sets the foreground or background color\n\n    bool _FGetAcrFromPt(long xp, long yp, ACR *pacr, RC *prc = pvNil, long *piscr = pvNil);\n\n  public:\n    CCG(GCB *pgcb, PTXHD ptxhd, bool fForeColor, long cacrRow = kcacrCcg);\n\n    virtual void MouseDown(long xp, long yp, long cact, ulong grfcust);\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FCmdMouseMove(PCMD_MOUSE pcmd);\n\n    virtual bool FEnsureToolTip(PGOB *ppgobCurTip, long xpMouse, long ypMouse);\n};\n\n/***************************************************************************\n    Color chooser tool tip.\n***************************************************************************/\ntypedef class CCGT *PCCGT;\n#define CCGT_PAR GOB\n#define kclsCCGT 'CCGT'\nclass CCGT : public CCGT_PAR\n{\n    RTCLASS_DEC\n\n  protected:\n    ACR _acr;\n    STN _stn;\n\n  public:\n    CCGT(PGCB pgcb, ACR acr = kacrBlack, PSTN pstn = pvNil);\n\n    void SetAcr(ACR acr, PSTN pstn = pvNil);\n    ACR AcrCur(void)\n    {\n        return _acr;\n    }\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n};\n\n/***************************************************************************\n    Help editor doc - consists of a CFL containing (possibly) multiple\n    topics.\n***************************************************************************/\ntypedef class HEDO *PHEDO;\n#define HEDO_PAR DOCB\n#define kclsHEDO 'HEDO'\nclass HEDO : public HEDO_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    PCFL _pcfl; // the chunky file\n    PRCA _prca; // the resources\n\n    HEDO(void);\n    ~HEDO(void);\n\n  public:\n    static PHEDO PhedoNew(FNI *pfni, PRCA prca);\n\n    PCFL Pcfl(void)\n    {\n        return _pcfl;\n    }\n    PRCA Prca(void)\n    {\n        return _prca;\n    }\n    virtual PDDG PddgNew(PGCB pgcb);\n    virtual bool FGetFni(FNI *pfni);\n    virtual bool FGetFniSave(FNI *pfni);\n    virtual bool FSaveToFni(FNI *pfni, bool fSetFni);\n\n    virtual void InvalAllDdg(CNO cno);\n    virtual bool FExportText(void);\n    virtual void DoFindNext(PHETD phetd, CNO cno, bool fAdvance = fTrue);\n\n    virtual PHETD PhetdOpenNext(PHETD phetd);\n    virtual PHETD PhetdOpenPrev(PHETD phetd);\n};\n\n/***************************************************************************\n    TSEL: used to track a selection in a chunky file doc\n***************************************************************************/\n#define TSEL_PAR BASE\n#define kclsTSEL 'TSEL'\nclass TSEL : public TSEL_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    PCFL _pcfl;\n    long _icki;\n    CNO _cno;\n\n    void _SetNil(void);\n\n  public:\n    TSEL(PCFL pcfl);\n\n    void Adjust(void);\n\n    long Icki(void)\n    {\n        return _icki;\n    }\n    CNO Cno(void)\n    {\n        return _cno;\n    }\n\n    bool FSetIcki(long icki);\n    bool FSetCno(CNO cno);\n};\n\n/***************************************************************************\n    Help editor document display GOB - displays a HEDO.\n***************************************************************************/\ntypedef class HEDG *PHEDG;\n#define HEDG_PAR DDG\n#define kclsHEDG 'HEDG'\nclass HEDG : public HEDG_PAR\n{\n    RTCLASS_DEC\n    CMD_MAP_DEC(HEDG)\n    ASSERT\n\n  protected:\n    long _onn;       // fixed width font to use\n    long _dypHeader; // height of the header\n    long _dypLine;   // height of one line\n    long _dxpChar;   // width of a character\n    long _dypBorder; // height of border (included in _dypLine)\n    PCFL _pcfl;      // the chunky file\n    TSEL _tsel;      // the selection\n\n    HEDG(PHEDO phedo, PCFL pcfl, PGCB pgcb);\n    virtual void _Scroll(long scaHorz, long scaVert, long scvHorz = 0, long scvVert = 0);\n    virtual void _ScrollDxpDyp(long dxp, long dyp);\n\n    long _YpFromIcki(long icki)\n    {\n        return LwMul(icki - _scvVert, _dypLine) + _dypHeader;\n    }\n    long _XpFromIch(long ich)\n    {\n        return LwMul(ich - _scvHorz + 1, _dxpChar);\n    }\n    long _IckiFromYp(long yp);\n    void _GetContent(RC *prc);\n\n    void _DrawSel(PGNV pgnv);\n    void _SetSel(long icki, CNO cno = cnoNil);\n    void _ShowSel(void);\n    void _EditTopic(CNO cno);\n\n    virtual void _Activate(bool fActive);\n    virtual long _ScvMax(bool fVert);\n\n    // clipboard support\n    virtual bool _FCopySel(PDOCB *ppdocb = pvNil);\n    virtual void _ClearSel(void);\n    virtual bool _FPaste(PCLIP pclip, bool fDoIt, long cid);\n\n#ifdef WIN\n    void _StartPage(PGNV pgnv, PSTN pstnDoc, long lwPage, RC *prcPage, long onn);\n#endif // WIN\n\n  public:\n    static PHEDG PhedgNew(PHEDO phedo, PCFL pcfl, PGCB pgcb);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual void MouseDown(long xp, long yp, long cact, ulong grfcust);\n    virtual bool FCmdKey(PCMD_KEY pcmd);\n\n    virtual void InvalCno(CNO cno);\n    virtual bool FEnableHedgCmd(PCMD pcmd, ulong *pgrfeds);\n    virtual bool FCmdNewTopic(PCMD pcmd);\n    virtual bool FCmdEditTopic(PCMD pcmd);\n    virtual bool FCmdDeleteTopic(PCMD pcmd);\n    virtual bool FCmdExport(PCMD pcmd);\n    virtual bool FCmdFind(PCMD pcmd);\n    virtual bool FCmdPrint(PCMD pcmd);\n    virtual bool FCmdCheckSpelling(PCMD pcmd);\n    virtual bool FCmdDump(PCMD pcmd);\n\n    PHEDO Phedo(void)\n    {\n        return (PHEDO)_pdocb;\n    }\n};\n\n/***************************************************************************\n    Help editor topic doc - for editing a single topic in a HEDO.\n    An instance of this class is a child doc of a HEDO.\n***************************************************************************/\n#define HETD_PAR TXHD\n#define kclsHETD 'HETD'\nclass HETD : public HETD_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    PCFL _pcfl; // which chunk is being edited\n    CNO _cno;\n    PGST _pgst;   // string versions of stuff in HTOP\n    STN _stnDesc; // description\n\n    HETD(PDOCB pdocb, PRCA prca, PCFL pcfl, CNO cno);\n    ~HETD(void);\n\n    virtual bool _FReadChunk(PCFL pcfl, CTG ctg, CNO cno, bool fCopyText);\n\n  public:\n    static PHETD PhetdNew(PDOCB pdocb, PRCA prca, PCFL pcfl, CNO cno);\n    static PHETD PhetdFromChunk(PDOCB pdocb, CNO cno);\n    static void CloseDeletedHetd(PDOCB pdocb);\n\n    virtual PDMD PdmdNew(void);\n    virtual PDDG PddgNew(PGCB pgcb);\n    virtual void GetName(PSTN pstn);\n    virtual bool FSave(long cid);\n\n    virtual bool FSaveToChunk(PCFL pcfl, CKI *pcki, bool fRedirectText = fFalse);\n\n    void EditHtop(void);\n    bool FDoFind(long cpMin, long *pcpMin, long *pcpLim);\n    bool FDoReplace(long cp1, long cp2, long *pcpMin, long *pcpLim);\n\n    PHEDO Phedo(void)\n    {\n        return (PHEDO)PdocbPar();\n    }\n    CNO Cno(void)\n    {\n        return _cno;\n    }\n\n    void GetHtopStn(long istn, PSTN pstn);\n};\n\n/***************************************************************************\n    DDG for an HETD.  Help text document editing gob.\n***************************************************************************/\ntypedef class HETG *PHETG;\n#define HETG_PAR TXRG\n#define kclsHETG 'HETG'\nclass HETG : public HETG_PAR\n{\n    RTCLASS_DEC\n    CMD_MAP_DEC(HETG)\n\n  protected:\n    HETG(PHETD phetd, PGCB pgcb);\n\n    // clipboard support\n    virtual bool _FCopySel(PDOCB *ppdocb = pvNil);\n\n    // override these so we can put up our dialogs\n    virtual bool _FGetOtherSize(long *pdypFont);\n    virtual bool _FGetOtherSubSuper(long *pdypOffset);\n\n    // we have our own ruler\n    virtual long _DypTrul(void);\n    virtual PTRUL _PtrulNew(PGCB pgcb);\n\n    // override _DrawLinExtra so we can put boxes around grouped text.\n    virtual void _DrawLinExtra(PGNV pgnv, PRC prcClip, LIN *plin, long dxp, long yp, ulong grftxtg);\n\n  public:\n    static PHETG PhetgNew(PHETD phetd, PGCB pgcb);\n\n    virtual void InvalCp(long cp, long ccpIns, long ccpDel);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FInsertPicture(PCRF pcrf, CTG ctg, CNO cno);\n    virtual bool FInsertButton(PCRF pcrf, CTG ctg, CNO cno);\n\n    virtual bool FCmdGroupText(PCMD pcmd);\n    virtual bool FCmdFormatPicture(PCMD pcmd);\n    virtual bool FCmdFormatButton(PCMD pcmd);\n    virtual bool FEnableHetgCmd(PCMD pcmd, ulong *pgrfeds);\n    virtual bool FCmdEditHtop(PCMD pcmd);\n    virtual bool FCmdInsertEdit(PCMD pcmd);\n    virtual bool FCmdFormatEdit(PCMD pcmd);\n    virtual bool FCmdFind(PCMD pcmd);\n    virtual bool FCmdPrint(PCMD pcmd);\n    virtual bool FCmdLineSpacing(PCMD pcmd);\n    virtual bool FCmdNextTopic(PCMD pcmd);\n    virtual bool FCmdCheckSpelling(PCMD pcmd);\n    virtual bool FCmdFontDialog(PCMD pcmd);\n\n    virtual bool FCheckSpelling(long *pcactChanges);\n\n    PHETD Phetd(void)\n    {\n        return (PHETD)_ptxtb;\n    }\n\n    long DypLine(long ilin);\n};\n\nconst long kstidFind = 1;\nconst long kstidReplace = 2;\n\n/***************************************************************************\n    The ruler for a help text document.\n***************************************************************************/\ntypedef class HTRU *PHTRU;\n#define HTRU_PAR TRUL\n#define kclsHTRU 'HTRU'\nclass HTRU : public HTRU_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n\n  protected:\n    // ruler track type\n    enum\n    {\n        rttNil,\n        krttTab,\n        krttDoc\n    };\n\n    PTXTG _ptxtg;\n    long _dxpTab;\n    long _dxpDoc;\n    long _dyp;\n    long _xpLeft;\n    long _dxpTrack;\n    long _rtt;\n    long _onn;\n    long _dypFont;\n    ulong _grfont;\n\n    HTRU(GCB *pgcb, PTXTG ptxtg);\n\n  public:\n    static PHTRU PhtruNew(GCB *pgcb, PTXTG ptxtg, long dxpTab, long dxpDoc, long dypDoc, long xpLeft, long onn,\n                          long dypFont, ulong grfont);\n\n    virtual void Draw(PGNV pgnv, RC *prcClip);\n    virtual bool FCmdTrackMouse(PCMD_MOUSE pcmd);\n\n    virtual void SetDxpTab(long dxpTab);\n    virtual void SetDxpDoc(long dxpDoc);\n    virtual void SetXpLeft(long xpLeft);\n\n    virtual void SetDypHeight(long dyp);\n};\n\n#endif //! CHELP_H\n"
  },
  {
    "path": "kauai/tools/chelp.rc",
    "content": "//Microsoft Visual C++ generated resource script.\n//\n#include \"chelpres.h\"\n\n#define APSTUDIO_READONLY_SYMBOLS\n/////////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 2 resource.\n//\n#define APSTUDIO_HIDDEN_SYMBOLS\n#include \"windows.h\"\n#undef APSTUDIO_HIDDEN_SYMBOLS\n#include \"framedef.h\"\n\n/////////////////////////////////////////////////////////////////////////////\n#undef APSTUDIO_READONLY_SYMBOLS\n\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Menu\n//\n\n128 MENU DISCARDABLE \nBEGIN\n    POPUP \"&File\"\n    BEGIN\n        MENUITEM \"&New\\tCtrl+N\",                cidNew\n        MENUITEM \"&Open...\\tCtrl+O\",            cidOpen\n        MENUITEM \"Open &Text...\",               cidOpenText\n        MENUITEM \"Open &Rich Text...\",          cidOpenRichText\n        MENUITEM \"&Load Resources...\",          cidLoadResFile\n        MENUITEM SEPARATOR\n        MENUITEM \"&Close\\tCtrl+W\",              cidClose\n        MENUITEM \"Sa&ve and Close  \\tCtrl+E\",   cidSaveAndClose\n        MENUITEM \"&Save\\tCtrl+S\",               cidSave\n        MENUITEM \"Save &As...\",                 cidSaveAs\n        MENUITEM \"Save a Cop&y...\",             cidSaveCopy\n        MENUITEM \"&Export Text...\",             cidExportText\n        MENUITEM \"&Dump Text...\",               cidDumpText\n        MENUITEM SEPARATOR\n        MENUITEM \"&Print...\\tCtrl+P\",           cidPrint\n        MENUITEM SEPARATOR\n        MENUITEM \"E&xit\\tCtrl+Q\",               cidQuit\n    END\n    POPUP \"&Edit\"\n    BEGIN\n        MENUITEM \"&Undo\\tCtrl+Z\",               cidUndo\n        MENUITEM \"&Redo\\tCtrl+A\",               cidRedo\n        MENUITEM SEPARATOR\n        MENUITEM \"Cu&t\\tCtrl+X\",                cidCut\n        MENUITEM \"&Copy\\tCtrl+C\",               cidCopy\n        MENUITEM \"&Paste\\tCtrl+V\",              cidPaste\n        MENUITEM \"&Delete\\tDel\",                cidClear\n        MENUITEM SEPARATOR\n        MENUITEM \"&Show Clipboard\",             cidShowClipboard\n        MENUITEM SEPARATOR\n        MENUITEM \"&Find...\\tCtrl+F\",            cidFind\n        MENUITEM \"Find A&gain\\tCtrl+G\",         cidFindAgain\n        MENUITEM \"Find in &Next Topic\\tCtrl+Y\", cidFindNextTopic\n        MENUITEM \"R&eplace then Find\\tCtrl+H\",  cidReplaceFind\n        MENUITEM \"Rep&lace Selection\\tCtrl+J\",  cidReplace\n        MENUITEM SEPARATOR\n        MENUITEM \"C&heck Spelling\",             cidSpellCheck\n        MENUITEM \"_\",                           cidChooseLanguage\n    END\n    POPUP \"To&pic\"\n    BEGIN\n        MENUITEM \"&New\",                        cidNewTopic\n        MENUITEM \"&Delete\\tDel\",                cidDeleteTopic\n        MENUITEM \"&Edit\\tEnter\",                cidEditTopic\n        MENUITEM \"Ne&xt Topic\\tCtrl+Shift+N\",   cidNextTopic\n        MENUITEM \"&Previous Topic\\tCtrl+Shift+B\", cidPrevTopic\n        MENUITEM SEPARATOR\n        MENUITEM \"Edit &Info...\\tCtrl+Shift+I\", cidEditHtop\n        MENUITEM \"Insert Edit &Control...\\tCtrl+Shift+E\", cidInsertEdit\n    END\n    POPUP \"Forma&t\"\n    BEGIN\n        MENUITEM \"&Plain\\tCtrl+Shift+P\",        cidPlain\n        MENUITEM \"&Bold\\tCtrl+B\",               cidBold\n        MENUITEM \"&Italic\\tCtrl+I\",             cidItalic\n        MENUITEM \"&Underline\\tCtrl+U\",          cidUnderline\n        MENUITEM SEPARATOR\n        MENUITEM \"Pic&ture...\",                 cidFormatPicture\n        MENUITEM \"Butt&on...\",                  cidFormatButton\n        MENUITEM \"&Edit Control...\",            cidFormatEdit\n        MENUITEM \"&Group...\",                   cidGroupText\n        MENUITEM \"&Vertical Adjustment...\",     cidChooseSubSuper\n        MENUITEM \"Li&ne Spacing...\",            cidLineSpacing\n        MENUITEM SEPARATOR\n        MENUITEM \"&Left Justify\\tCtrl+L\",       cidJustifyLeft\n        MENUITEM \"&Center Justify\\tCtrl+T\",     cidJustifyCenter\n        MENUITEM \"&Right Justify\\tCtrl+R\",      cidJustifyRight\n        MENUITEM SEPARATOR\n        MENUITEM \"No In&dent\",                  cidIndentNone\n        MENUITEM \"Indent &First\",               cidIndentFirst\n        MENUITEM \"Indent Re&st\",                cidIndentRest\n        MENUITEM \"Indent &All\",                 cidIndentAll\n        MENUITEM \"_\",                           cidChooseFontSize\n    END\n    POPUP \"F&ont\"\n    BEGIN\n        MENUITEM \"Choose F&ont...\\tCtrl+Shift+F\", cidFontDialog\n        MENUITEM \"$\",                           cidChooseFont\n    END\n    POPUP \"&Window\"\n    BEGIN\n        MENUITEM \"_\",                           cidChooseWnd\n    END\nEND\n\n\n#ifdef APSTUDIO_INVOKED\n/////////////////////////////////////////////////////////////////////////////\n//\n// TEXTINCLUDE\n//\n\n1 TEXTINCLUDE DISCARDABLE \nBEGIN\n    \"chelpres.h\\0\"\nEND\n\n2 TEXTINCLUDE DISCARDABLE \nBEGIN\n    \"#define APSTUDIO_HIDDEN_SYMBOLS\\r\\n\"\n    \"#include \"\"windows.h\"\"\\r\\n\"\n    \"#undef APSTUDIO_HIDDEN_SYMBOLS\\r\\n\"\n    \"#include \"\"framedef.h\"\"\\r\\n\"\n    \"\\0\"\nEND\n\n3 TEXTINCLUDE DISCARDABLE \nBEGIN\n    \"#include \"\"frame.rc\"\"\\r\\n\"\n    \"\\0\"\nEND\n\n/////////////////////////////////////////////////////////////////////////////\n#endif    // APSTUDIO_INVOKED\n\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Accelerator\n//\n\nacidMain ACCELERATORS DISCARDABLE \nBEGIN\n    \"A\",            cidRedo,                VIRTKEY, CONTROL, NOINVERT\n    \"B\",            cidBold,                VIRTKEY, CONTROL, NOINVERT\n    \"B\",            cidPrevTopic,           VIRTKEY, SHIFT, CONTROL, \n                                                    NOINVERT\n    \"C\",            cidCopy,                VIRTKEY, CONTROL, NOINVERT\n    \"E\",            cidSaveAndClose,        VIRTKEY, CONTROL, NOINVERT\n    \"E\",            cidInsertEdit,          VIRTKEY, SHIFT, CONTROL, \n                                                    NOINVERT\n    \"F\",            cidFind,                VIRTKEY, CONTROL, NOINVERT\n    \"F\",            cidFontDialog,          VIRTKEY, SHIFT, CONTROL, \n                                                    NOINVERT\n    \"G\",            cidFindAgain,           VIRTKEY, CONTROL, NOINVERT\n    \"H\",            cidReplaceFind,         VIRTKEY, CONTROL, NOINVERT\n    \"I\",            cidItalic,              VIRTKEY, CONTROL, NOINVERT\n    \"I\",            cidEditHtop,            VIRTKEY, SHIFT, CONTROL, \n                                                    NOINVERT\n    \"J\",            cidReplace,             VIRTKEY, CONTROL, NOINVERT\n    \"L\",            cidJustifyLeft,         VIRTKEY, CONTROL, NOINVERT\n    \"N\",            cidNew,                 VIRTKEY, CONTROL, NOINVERT\n    \"N\",            cidNextTopic,           VIRTKEY, SHIFT, CONTROL, \n                                                    NOINVERT\n    \"O\",            cidOpen,                VIRTKEY, CONTROL, NOINVERT\n    \"P\",            cidPrint,               VIRTKEY, CONTROL, NOINVERT\n    \"P\",            cidPlain,               VIRTKEY, SHIFT, CONTROL, \n                                                    NOINVERT\n    \"Q\",            cidQuit,                VIRTKEY, CONTROL, NOINVERT\n    \"R\",            cidJustifyRight,        VIRTKEY, CONTROL, NOINVERT\n    \"S\",            cidSave,                VIRTKEY, CONTROL, NOINVERT\n    \"T\",            cidJustifyCenter,       VIRTKEY, CONTROL, NOINVERT\n    \"U\",            cidUnderline,           VIRTKEY, CONTROL, NOINVERT\n    \"V\",            cidPaste,               VIRTKEY, CONTROL, NOINVERT\n    \"W\",            cidClose,               VIRTKEY, CONTROL, NOINVERT\n    \"X\",            cidCut,                 VIRTKEY, CONTROL, NOINVERT\n    \"Y\",            cidFindNextTopic,       VIRTKEY, CONTROL, NOINVERT\n    \"Z\",            cidUndo,                VIRTKEY, CONTROL, NOINVERT\nEND\n\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Dialog\n//\n\ndlidFormatPicture DIALOG DISCARDABLE  100, 100, 185, 49\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Picture Properties\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",1,129,7,50,14\n    PUSHBUTTON      \"Cancel\",2,129,25,50,14\n    EDITTEXT        3,42,11,70,12,ES_AUTOHSCROLL\n    RTEXT           \"Name:\",4,10,12,27,9\nEND\n\ndlidFormatButton DIALOG DISCARDABLE  100, 100, 214, 67\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Button Properties\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDOK,147,6,50,14\n    PUSHBUTTON      \"Cancel\",IDCANCEL,147,25,50,14\n    EDITTEXT        3,76,8,62,12,ES_AUTOHSCROLL\n    RTEXT           \"Resource Name:\",6,8,11,65,10\n    EDITTEXT        4,76,27,62,12,ES_AUTOHSCROLL\n    RTEXT           \"Topic Number:\",7,9,30,64,10\n    EDITTEXT        5,76,46,62,12,ES_AUTOHSCROLL\n    RTEXT           \"Topic Name:\",8,16,49,57,10\nEND\n\ndlidGroupText DIALOG DISCARDABLE  100, 100, 255, 77\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Group Text\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",1,187,6,50,14\n    PUSHBUTTON      \"Cancel\",2,187,22,50,14\n    EDITTEXT        3,123,11,40,12,ES_AUTOHSCROLL\n    EDITTEXT        4,123,30,40,12,ES_AUTOHSCROLL\n    EDITTEXT        5,123,49,112,12,ES_AUTOHSCROLL\n    RTEXT           \"Group Number (0 for none):\",10,5,12,112,10\n    RTEXT           \"Topic Number:\",11,20,31,97,9\n    RTEXT           \"TopicName:\",12,20,51,97,9\nEND\n\ndlidTopicInfo DIALOG DISCARDABLE  100, 100, 357, 203\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Topic Information\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",1,284,6,50,14\n    PUSHBUTTON      \"Cancel\",2,284,22,50,14\n    EDITTEXT        3,77,9,48,12,ES_AUTOHSCROLL\n    EDITTEXT        4,165,9,102,12,ES_AUTOHSCROLL\n    EDITTEXT        5,165,26,102,12,ES_AUTOHSCROLL\n    EDITTEXT        6,77,43,48,12,ES_AUTOHSCROLL\n    EDITTEXT        7,165,43,102,12,ES_AUTOHSCROLL\n    EDITTEXT        8,77,60,48,12,ES_AUTOHSCROLL\n    EDITTEXT        9,165,60,102,12,ES_AUTOHSCROLL\n    EDITTEXT        10,77,77,48,12,ES_AUTOHSCROLL\n    EDITTEXT        11,165,77,102,12,ES_AUTOHSCROLL\n    EDITTEXT        12,77,100,36,12,ES_AUTOHSCROLL\n    EDITTEXT        13,165,100,40,12,ES_AUTOHSCROLL\n    EDITTEXT        14,165,120,102,12,ES_AUTOHSCROLL\n    EDITTEXT        15,77,139,36,12,ES_AUTOHSCROLL\n    EDITTEXT        16,77,156,48,12,ES_AUTOHSCROLL\n    EDITTEXT        17,165,156,102,12,ES_AUTOHSCROLL\n    EDITTEXT        18,165,176,40,12,ES_AUTOHSCROLL\n    RTEXT           \"Balloon (GOKD)#:\",100,2,11,72,8\n    RTEXT           \"Name:\",101,128,11,35,8\n    RTEXT           \"Topic Name:\",102,100,28,63,8\n    RTEXT           \"Gob ID #:\",103,14,45,60,8\n    RTEXT           \"Name:\",104,132,45,31,8\n    RTEXT           \"Target Gob ID #:\",105,7,62,67,8\n    RTEXT           \"Name:\",106,129,62,34,8\n    RTEXT           \"Script #:\",107,14,79,60,8\n    RTEXT           \"Name:\",108,126,79,37,8\n    RTEXT           \"X Offset:\",109,17,102,57,7\n    RTEXT           \"Y Offset:\",110,118,102,45,7\n    RTEXT           \"Topic Description:\",111,82,123,82,8\n    RTEXT           \"Sound CTG:\",112,16,141,58,7\n    RTEXT           \"Sound CNO:\",115,14,158,60,8\n    RTEXT           \"Name:\",116,130,158,33,8\n    RTEXT           \"Topic Width (Pixels):\",114,77,178,85,9\nEND\n\ndlidFontSize DIALOG DISCARDABLE  100, 100, 185, 49\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Font size\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",1,129,6,50,14\n    PUSHBUTTON      \"Cancel\",2,129,23,50,14\n    EDITTEXT        3,59,11,33,12,ES_AUTOHSCROLL\n    RTEXT           \"Size:\",4,24,13,30,7\nEND\n\ndlidSubSuper DIALOG DISCARDABLE  100, 100, 210, 50\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Subscript/Superscript\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",1,147,6,50,14\n    PUSHBUTTON      \"Cancel\",2,147,23,50,14\n    EDITTEXT        3,90,11,33,12,ES_AUTOHSCROLL\n    RTEXT           \"Offset (0 to 127):\",5,10,13,77,10\n    CONTROL         \"&Superscript\",4,\"Button\",BS_AUTOCHECKBOX | WS_TABSTOP,\n                    48,31,63,10\nEND\n\ndlidFormatEdit DIALOG DISCARDABLE  100, 100, 166, 48\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Format Edit Control\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",1,102,6,50,14\n    PUSHBUTTON      \"Cancel\",2,102,23,50,14\n    EDITTEXT        3,39,10,40,12,ES_AUTOHSCROLL\n    RTEXT           \"Width:\",20,5,12,30,7\nEND\n\ndlidFind DIALOG DISCARDABLE  100, 100, 212, 84\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Find\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",1,134,6,50,14\n    PUSHBUTTON      \"Cancel\",2,134,23,50,14\n    EDITTEXT        3,42,9,81,12,ES_AUTOHSCROLL\n    EDITTEXT        4,42,26,81,12,ES_AUTOHSCROLL\n    CONTROL         \"&Case Sensitive\",5,\"Button\",BS_AUTOCHECKBOX | \n                    WS_TABSTOP,41,49,99,10\n    CONTROL         \"&All Topics\",6,\"Button\",BS_AUTOCHECKBOX | WS_TABSTOP,41,\n                    63,99,10\n    RTEXT           \"Find:\",10,6,11,33,7\n    RTEXT           \"Replace:\",11,3,27,36,10\nEND\n\ndlidSpacing DIALOG DISCARDABLE  100, 100, 185, 100\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Line & Para Spacing\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",1,129,6,50,14\n    PUSHBUTTON      \"Cancel\",2,129,23,50,14\n    EDITTEXT        3,78,9,40,12,ES_AUTOHSCROLL\n    EDITTEXT        4,78,31,40,12,ES_AUTOHSCROLL\n    EDITTEXT        5,78,53,40,12,ES_AUTOHSCROLL\n    EDITTEXT        6,78,75,40,12,ES_AUTOHSCROLL\n    RTEXT           \"Line Extra:\",7,5,11,70,9\n    RTEXT           \"Line Numerator:\",8,5,33,70,9\n    RTEXT           \"Para Extra:\",9,5,55,70,9\n    RTEXT           \"Para Numerator:\",10,5,77,70,9\nEND\n\ndlidCheckSpelling DIALOG DISCARDABLE  100, 100, 250, 136\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Spelling\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"&Ignore\",1,194,6,50,14\n    PUSHBUTTON      \"Cancel\",2,194,23,50,14\n    PUSHBUTTON      \"&Change\",3,194,51,50,14\n    PUSHBUTTON      \"C&hange All\",4,194,68,50,14\n    PUSHBUTTON      \"I&gnore All\",5,194,98,50,14\n    PUSHBUTTON      \"&Add\",6,194,115,50,14\n    COMBOBOX        7,68,37,81,87,CBS_SIMPLE | WS_VSCROLL | WS_TABSTOP\n    EDITTEXT        8,73,13,92,12,ES_AUTOHSCROLL | ES_READONLY | WS_DISABLED | \n                    NOT WS_TABSTOP\n    RTEXT           \"Change To:\",100,10,39,54,10\n    RTEXT           \"Not in Dictionary:\",101,6,14,65,10\nEND\n\ndlidChooseLanguage DIALOG DISCARDABLE  100, 100, 185, 49\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Language\"\nFONT 10, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",1,129,6,50,14\n    PUSHBUTTON      \"Cancel\",2,129,23,50,14\n    EDITTEXT        3,84,11,33,12,ES_AUTOHSCROLL\n    RTEXT           \"Language Code:\",4,3,13,78,10\nEND\n\ndlidChooseFont DIALOG DISCARDABLE  0, 0, 235, 195\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Choose Font\"\nFONT 8, \"System\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",1,179,9,50,14\n    PUSHBUTTON      \"Cancel\",2,179,28,50,14\n    COMBOBOX        3,44,12,118,166,CBS_SIMPLE | WS_VSCROLL | WS_TABSTOP\n    RTEXT           \"Font:\",10,6,15,34,11\nEND\n\n\n#ifndef APSTUDIO_INVOKED\n/////////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 3 resource.\n//\n#include \"frame.rc\"\n\n/////////////////////////////////////////////////////////////////////////////\n#endif    // not APSTUDIO_INVOKED\n\n"
  },
  {
    "path": "kauai/tools/chelpdmp.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Tool to dump chomp source for the help topics contained in a chunky\n    file.\n\n***************************************************************************/\n#include <stdio.h>\n#include \"util.h\"\n#include \"mssio.h\"\n#include \"chelpexp.h\"\nASSERTNAME\n\n/***************************************************************************\n    Main routine.  Returns non-zero iff there's an error.\n***************************************************************************/\nint __cdecl main(int cpszs, char *prgpszs[])\n{\n    schar chs;\n    STN stn;\n    FNI fni;\n    PFIL pfil = pvNil;\n    PMSNK pmsnk = pvNil;\n    PCFL pcflSrc = pvNil;\n\n#ifdef UNICODE\n    fprintf(stderr,\n            \"\\nMicrosoft (R) Chunky Help Dump Utility (Unicode; \" Debug(\"Debug; \") __DATE__ \"; \" __TIME__ \")\\n\");\n#else  //! UNICODE\n    fprintf(stderr, \"\\nMicrosoft (R) Chunky Help Dump Utility (Ansi; \" Debug(\"Debug; \") __DATE__ \"; \" __TIME__ \")\\n\");\n#endif //! UNICODE\n    fprintf(stderr, \"Copyright (C) Microsoft Corp 1995. All rights reserved.\\n\\n\");\n\n    for (prgpszs++; --cpszs > 0; prgpszs++)\n    {\n        chs = (*prgpszs)[0];\n        if (chs == '/' || chs == '-')\n        {\n            // no command line switches\n            goto LUsage;\n        }\n        else if (pvNil == pcflSrc)\n        {\n            // this is the first file name\n            stn.SetSzs(*prgpszs);\n            if (!fni.FBuildFromPath(&stn))\n            {\n                fprintf(stderr, \"Error: Bad file name: %s\\n\\n\", *prgpszs);\n                goto LUsage;\n            }\n            if (pvNil == (pcflSrc = CFL::PcflOpen(&fni, fcflNil)))\n            {\n                fprintf(stderr, \"Error: Couldn't open %s\\n\\n\", *prgpszs);\n                goto LUsage;\n            }\n            fni.SetNil();\n        }\n        else if (fni.Ftg() == ftgNil)\n        {\n            // get the destination file name\n            stn.SetSzs(*prgpszs);\n            if (!fni.FBuildFromPath(&stn))\n            {\n                fprintf(stderr, \"Error: Bad file name: %s\\n\\n\", *prgpszs);\n                goto LUsage;\n            }\n        }\n        else\n        {\n            fprintf(stderr, \"Too many file names\");\n            goto LUsage;\n        }\n    }\n\n    if (pvNil == pcflSrc)\n        goto LUsage;\n\n    if (fni.Ftg() == ftgNil)\n        pmsnk = NewObj MSSIO(stdout);\n    else\n    {\n        if (pvNil == (pfil = FIL::PfilCreate(&fni)))\n        {\n            fprintf(stderr, \"Couldn't create destination file\");\n            goto LFail;\n        }\n        pmsnk = NewObj MSFIL(pfil);\n    }\n\n    if (pvNil == pmsnk)\n    {\n        fprintf(stderr, \"Memory failure\");\n        goto LFail;\n    }\n\n    // do the export\n    if (!FExportHelpText(pcflSrc, pmsnk))\n    {\n        fprintf(stderr, \"Dump failed\");\n        goto LFail;\n    }\n\n    FIL::ShutDown();\n    return 0;\n\nLUsage:\n    // print usage\n    fprintf(stderr, \"%s\", \"Usage:  chelpdmp <srcFile> [<dstFile>]\\n\\n\");\n\nLFail:\n    if (pvNil != pfil)\n        pfil->SetTemp();\n    FIL::ShutDown();\n    return 1;\n}\n\n#ifdef DEBUG\nbool _fEnableWarnings = fTrue;\n\n/***************************************************************************\n    Warning proc called by Warn() macro\n***************************************************************************/\nvoid WarnProc(PSZS pszsFile, long lwLine, PSZS pszsMessage)\n{\n    if (_fEnableWarnings)\n    {\n        fprintf(stderr, \"%s(%ld) : warning\", pszsFile, lwLine);\n        if (pszsMessage != pvNil)\n        {\n            fprintf(stderr, \": %s\", pszsMessage);\n        }\n        fprintf(stderr, \"\\n\");\n    }\n}\n\n/***************************************************************************\n    Returning true breaks into the debugger.\n***************************************************************************/\nbool FAssertProc(PSZS pszsFile, long lwLine, PSZS pszsMessage, void *pv, long cb)\n{\n    fprintf(stderr, \"An assert occurred: \\n\");\n    if (pszsMessage != pvNil)\n        fprintf(stderr, \"   Message: %s\\n\", pszsMessage);\n    if (pv != pvNil)\n    {\n        fprintf(stderr, \"   Address %x\\n\", pv);\n        if (cb != 0)\n        {\n            fprintf(stderr, \"   Value: \");\n            switch (cb)\n            {\n            default: {\n                byte *pb;\n                byte *pbLim;\n\n                for (pb = (byte *)pv, pbLim = pb + cb; pb < pbLim; pb++)\n                    fprintf(stderr, \"%02x\", (int)*pb);\n            }\n            break;\n\n            case 2:\n                fprintf(stderr, \"%04x\", (int)*(short *)pv);\n                break;\n\n            case 4:\n                fprintf(stderr, \"%08lx\", *(long *)pv);\n                break;\n            }\n            printf(\"\\n\");\n        }\n    }\n    fprintf(stderr, \"   File: %s\\n\", pszsFile);\n    fprintf(stderr, \"   Line: %ld\\n\", lwLine);\n\n    return fFalse;\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/tools/chelpexp.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Routines to export help topics to chomp input format.\n\n***************************************************************************/\n#include \"kidframe.h\"\n#include \"chelpexp.h\"\nASSERTNAME\n\nstatic bool _FWriteHelpChunk(PCFL pcfl, PCHSE pchse, KID *pkid, CKI *pckiPar);\nstatic bool _FWriteHelpPropAg(PCFL pcfl, PCHSE pchse, KID *pkid, CKI *pckiPar);\nstatic void _AppendHelpStnLw(PSTN pstn, PGST pgst, long istn, long lw);\n\n/***************************************************************************\n    Export the help topics in their textual representation for compilation\n    by chomp.\n    REVIEW shonk: this code is a major hack and very fragile.\n***************************************************************************/\nbool FExportHelpText(PCFL pcfl, PMSNK pmsnk)\n{\n    AssertPo(pcfl, 0);\n\n    BLCK blck;\n    PGST pgst;\n    long icki;\n    CKI cki, ckiPar;\n    KID kid;\n    CGE cge;\n    ulong grfcge;\n    HTOPF htopf;\n    CHSE chse;\n    STN stn, stnT;\n    bool fRet = fFalse;\n\n    chse.Init(pmsnk);\n\n    chse.DumpSz(PszLit(\"#undef __HELP_NAME\"));\n    chse.DumpSz(PszLit(\"#undef __HELP_SYMBOL\"));\n    chse.DumpSz(PszLit(\"#undef __HELP_PACK\"));\n    chse.DumpSz(PszLit(\"#undef __HELP_PACK2\"));\n\n    chse.DumpSz(PszLit(\"#ifdef NO_HELP_NAMES\"));\n    chse.DumpSz(PszLit(\"#define __HELP_NAME(name) \\\"\\\"\"));\n    chse.DumpSz(PszLit(\"#else\"));\n    chse.DumpSz(PszLit(\"#define __HELP_NAME(name) name\"));\n    chse.DumpSz(PszLit(\"#endif\"));\n\n    chse.DumpSz(PszLit(\"#ifdef NO_HELP_SYMBOLS\"));\n    chse.DumpSz(PszLit(\"#define __HELP_SYMBOL(stuff)\"));\n    chse.DumpSz(PszLit(\"#else\"));\n    chse.DumpSz(PszLit(\"#define __HELP_SYMBOL(stuff) stuff\"));\n    chse.DumpSz(PszLit(\"#endif\"));\n\n    chse.DumpSz(PszLit(\"#ifdef PACK_HELP\"));\n    chse.DumpSz(PszLit(\"#define __HELP_PACK PACK\"));\n    chse.DumpSz(PszLit(\"#else\"));\n    chse.DumpSz(PszLit(\"#define __HELP_PACK\"));\n    chse.DumpSz(PszLit(\"#endif\"));\n\n    chse.DumpSz(PszLit(\"#ifdef HELP_SINGLE_CHUNK\"));\n    chse.DumpSz(PszLit(\"#define __HELP_PACK2\"));\n    chse.DumpSz(PszLit(\"#else\"));\n    chse.DumpSz(PszLit(\"#define __HELP_PACK2 __HELP_PACK\"));\n    chse.DumpSz(PszLit(\"#endif\"));\n\n    pgst = pvNil;\n    for (icki = 0; pcfl->FGetCkiCtg(kctgHelpTopic, icki, &cki); icki++)\n    {\n        // read the string table if it's there\n        if (pcfl->FGetKidChidCtg(cki.ctg, cki.cno, 0, kctgGst, &kid) &&\n            (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck) || pvNil == (pgst = GST::PgstRead(&blck)) ||\n             pgst->IvMac() != 6 && (pgst->IvMac() != 5 || !pgst->FAddRgch(PszLit(\"\"), 0))))\n        {\n            goto LFail;\n        }\n\n        // read the topic\n        if (!pcfl->FFind(cki.ctg, cki.cno, &blck) || !blck.FUnpackData() || blck.Cb() != size(HTOPF) ||\n            !blck.FRead(&htopf))\n        {\n            goto LFail;\n        }\n        if (htopf.bo == kboOther)\n            SwapBytesBom(&htopf.htop, kbomHtop);\n        else if (htopf.bo != kboCur)\n            goto LFail;\n\n        // dump the htop's cno definition\n        chse.DumpSz(PszLit(\"\"));\n        stn.FFormatSz(PszLit(\"SET _help_%x_%x=\"), cki.ctg, cki.cno);\n        _AppendHelpStnLw(&stn, pgst, 1, cki.cno);\n        chse.DumpSz(stn.Psz());\n\n        // dump the single chunk prefix\n        pcfl->FGetName(cki.ctg, cki.cno, &stnT);\n        stnT.FExpandControls();\n        chse.DumpSz(PszLit(\"\"));\n        chse.DumpSz(PszLit(\"#ifdef HELP_SINGLE_CHUNK\"));\n        stn.FFormatSz(PszLit(\"CHUNK('%f', _help_%x_%x, __HELP_NAME(\\\"%s\\\")) __HELP_PACK\"), cki.ctg, cki.ctg, cki.cno,\n                      &stnT);\n        chse.DumpSz(stn.Psz());\n        chse.DumpSz(PszLit(\"SUBFILE\"));\n        chse.DumpSz(PszLit(\"#endif //HELP_SINGLE_CHUNK\"));\n        stn.FAppendCh(ChLit('2'));\n\n        // dump the HTOPF\n        chse.DumpSz(PszLit(\"\"));\n        chse.DumpSz(stn.Psz());\n\n        stn = PszLit(\"\\tBO OSK LONG\");\n        _AppendHelpStnLw(&stn, pgst, 0, htopf.htop.cnoBalloon);\n        _AppendHelpStnLw(&stn, pgst, 2, htopf.htop.hidThis);\n        _AppendHelpStnLw(&stn, pgst, 3, htopf.htop.hidTarget);\n        _AppendHelpStnLw(&stn, pgst, 4, htopf.htop.cnoScript);\n        stnT.FFormatSz(PszLit(\" 0x%x 0x%x 0x%x\"), htopf.htop.dxp, htopf.htop.dyp, htopf.htop.ckiSnd.ctg);\n        stn.FAppendStn(&stnT);\n        _AppendHelpStnLw(&stn, pgst, 5, htopf.htop.ckiSnd.cno);\n        chse.DumpSz(stn.Psz());\n        ReleasePpo(&pgst);\n\n        chse.DumpSz(PszLit(\"ENDCHUNK\"));\n\n        // dump child chunks\n        cge.Init(pcfl, cki.ctg, cki.cno);\n        while (cge.FNextKid(&kid, &ckiPar, &grfcge, fcgeNil))\n        {\n            if (fcgeError & grfcge)\n                goto LFail;\n\n            if ((fcgeRoot & grfcge) || !(fcgePre & grfcge))\n                continue;\n\n            chse.DumpSz(PszLit(\"\"));\n            if (kid.cki.ctg == kctgTxtPropArgs)\n            {\n                // special handling of argument AG\n                if (!_FWriteHelpPropAg(pcfl, &chse, &kid, &ckiPar))\n                    goto LFail;\n            }\n            else\n            {\n                if (kid.cki.ctg == kctgGst)\n                {\n                    // put \"#ifndef NO_HELP_SYMBOLS\" before it\n                    chse.DumpSz(PszLit(\"#ifndef NO_HELP_SYMBOLS\"));\n                }\n                if (!_FWriteHelpChunk(pcfl, &chse, &kid, &ckiPar))\n                    goto LFail;\n                if (kid.cki.ctg == kctgGst)\n                {\n                    // put \"#endif //!NO_HELP_SYMBOLS\" after it\n                    chse.DumpSz(PszLit(\"#endif //!NO_HELP_SYMBOLS\"));\n                }\n            }\n        }\n\n        chse.DumpSz(PszLit(\"\"));\n        chse.DumpSz(PszLit(\"#ifdef HELP_SINGLE_CHUNK\"));\n        chse.DumpSz(PszLit(\"ENDCHUNK\"));\n        chse.DumpSz(PszLit(\"#endif //HELP_SINGLE_CHUNK\"));\n        chse.DumpSz(PszLit(\"\"));\n    }\n\n    fRet = fTrue;\n\nLFail:\n    chse.Uninit();\n    ReleasePpo(&pgst);\n\n    return fRet;\n}\n\n/***************************************************************************\n    Dump a chunk as text to the given chse.\n***************************************************************************/\nbool _FWriteHelpChunk(PCFL pcfl, PCHSE pchse, KID *pkid, CKI *pckiPar)\n{\n    AssertPo(pcfl, 0);\n    AssertPo(pchse, 0);\n    AssertVarMem(pkid);\n    AssertVarMem(pckiPar);\n\n    STN stn;\n    STN stnT;\n    BLCK blck;\n\n    if (!pcfl->FFind(pkid->cki.ctg, pkid->cki.cno, &blck))\n        return fFalse;\n\n    // dump the CHUNK declaration\n    pchse->DumpSz(PszLit(\"SET _help_cno++\"));\n    stn.FFormatSz(PszLit(\"SET _help_%x_%x=_help_cno\"), pkid->cki.ctg, pkid->cki.cno);\n    pchse->DumpSz(stn.Psz());\n    pcfl->FGetName(pkid->cki.ctg, pkid->cki.cno, &stnT);\n    stnT.FExpandControls();\n    stn.FFormatSz(PszLit(\"CHUNK('%f', _help_cno, __HELP_NAME(\\\"%s\\\")) __HELP_PACK2\"), pkid->cki.ctg, &stnT);\n    pchse->DumpSz(stn.Psz());\n\n    // dump the PARENT declaration\n    stn.FFormatSz(PszLit(\"PARENT('%f', _help_%x_%x, 0x%x)\"), pckiPar->ctg, pckiPar->ctg, pckiPar->cno, pkid->chid);\n    pchse->DumpSz(stn.Psz());\n\n    if (pkid->cki.ctg == kctgGst)\n    {\n        PGST pgst;\n        short bo, osk;\n        bool fPacked = blck.FPacked();\n        bool fRet;\n\n        pgst = GST::PgstRead(&blck, &bo, &osk);\n        if (pvNil == pgst)\n            return fFalse;\n\n        if (fPacked)\n            pchse->DumpSz(PszLit(\"PACK\"));\n\n        if (bo != kboCur)\n            pchse->DumpSz(MacWin(PszLit(\"WINBO\"), PszLit(\"MACBO\")));\n\n        fRet = pchse->FDumpStringTable(pgst);\n        ReleasePpo(&pgst);\n\n        if (bo != kboCur)\n            pchse->DumpSz(MacWin(PszLit(\"MACBO\"), PszLit(\"WINBO\")));\n        if (!fRet)\n            return fFalse;\n    }\n    else\n    {\n        // dump the data\n        pchse->DumpBlck(&blck);\n    }\n\n    // dump the ENDCHUNK\n    pchse->DumpSz(PszLit(\"ENDCHUNK\"));\n    return fTrue;\n}\n\n/***************************************************************************\n    Write the property AG.  This requires special processing\n***************************************************************************/\nbool _FWriteHelpPropAg(PCFL pcfl, PCHSE pchse, KID *pkid, CKI *pckiPar)\n{\n    AssertPo(pcfl, 0);\n    AssertPo(pchse, 0);\n    AssertVarMem(pkid);\n    AssertVarMem(pckiPar);\n\n    PAG pag;\n    short bo, osk;\n    STN stn, stnT, stnT2;\n    byte rgb[2 * kcbMaxDataStn];\n    BLCK blck;\n    long iv, lw, cb, ib, cbRead;\n    CKI cki;\n\n    pag = pvNil;\n    if (!pcfl->FFind(pkid->cki.ctg, pkid->cki.cno, &blck) || pvNil == (pag = AG::PagRead(&blck, &bo, &osk)) ||\n        bo != kboCur || osk != koskCur || size(long) != pag->CbFixed())\n    {\n        ReleasePpo(&pag);\n        return fFalse;\n    }\n\n    // dump the CHUNK declaration\n    pchse->DumpSz(PszLit(\"SET _help_cno++\"));\n    stn.FFormatSz(PszLit(\"SET _help_%x_%x=_help_cno\"), pkid->cki.ctg, pkid->cki.cno);\n    pchse->DumpSz(stn.Psz());\n    pcfl->FGetName(pkid->cki.ctg, pkid->cki.cno, &stnT);\n    stnT.FExpandControls();\n    stn.FFormatSz(PszLit(\"CHUNK('%f', _help_cno, __HELP_NAME(\\\"%s\\\")) __HELP_PACK2\"), pkid->cki.ctg, &stnT);\n    pchse->DumpSz(stn.Psz());\n\n    // dump the PARENT declaration\n    stn.FFormatSz(PszLit(\"PARENT('%f', _help_%x_%x, 0x%x)\"), pckiPar->ctg, pckiPar->ctg, pckiPar->cno, pkid->chid);\n    pchse->DumpSz(stn.Psz());\n\n    // dump the AG declaration\n    pchse->DumpSz(PszLit(\"AG(4)\"));\n\n    // dump the items\n    for (iv = 0; iv < pag->IvMac(); iv++)\n    {\n        if (pag->FFree(iv))\n        {\n            pchse->DumpSz(PszLit(\"\\tFREE\"));\n            continue;\n        }\n\n        pag->GetFixed(iv, &lw);\n        stn.FFormatSz(PszLit(\"\\tITEM LONG 0x%x\"), lw);\n        pchse->DumpSz(stn.Psz());\n\n        cb = pag->Cb(iv);\n        if (0 == cb)\n            continue;\n\n        switch (B3Lw(lw))\n        {\n        case 64: // sprmGroup\n            if (cb <= size(byte) + size(CNO))\n                goto LWriteCore;\n            if (cb > size(rgb))\n            {\n                Bug(\"bad group data\");\n                goto LWriteCore;\n            }\n\n            pag->GetRgb(iv, 0, cb, rgb);\n            ib = size(byte) + size(CNO);\n            if (!stnT.FSetData(rgb + ib, cb - ib) || stnT.Cch() == 0)\n            {\n                Bug(\"bad group data\");\n                goto LWriteCore;\n            }\n\n            stn.FFormatSz(PszLit(\"\\t\\tVAR BYTE %d LONG %s __HELP_SYMBOL( STN \\\"\"), (long)rgb[0], &stnT);\n            stnT.FExpandControls();\n            stn.FAppendStn(&stnT);\n            stn.FAppendSz(PszLit(\"\\\" )\"));\n            pchse->DumpSz(stn.Psz());\n            break;\n\n        case 192: // sprmObject\n            if (cb <= size(CKI))\n                goto LWriteCore;\n\n            // an object\n            pag->GetRgb(iv, 0, size(CKI), &cki);\n            switch (cki.ctg)\n            {\n            default:\n                goto LWriteCore;\n\n            case kctgMbmp:\n                ib = size(CKI);\n                if (ib >= cb)\n                    goto LWriteCore;\n                if ((cb -= ib) > kcbMaxDataStn)\n                {\n                    Bug(\"bad picture data\");\n                    goto LWriteCore;\n                }\n                pag->GetRgb(iv, ib, cb, rgb);\n                if (!stnT.FSetData(rgb, cb) || stnT.Cch() == 0)\n                {\n                    Bug(\"bad picture data 2\");\n                    goto LWriteCore;\n                }\n                stn.FFormatSz(PszLit(\"\\t\\tVAR LONG '%f' %s __HELP_SYMBOL( STN \\\"\"), cki.ctg, &stnT);\n                stnT.FExpandControls();\n                stn.FAppendStn(&stnT);\n                stn.FAppendSz(PszLit(\"\\\" )\"));\n                pchse->DumpSz(stn.Psz());\n                break;\n\n            case kctgGokd:\n                ib = size(CKI) + size(long);\n                if (ib >= cb)\n                    goto LWriteCore;\n                if ((cb -= ib) > size(rgb))\n                {\n                    Bug(\"bad button data\");\n                    goto LWriteCore;\n                }\n                pag->GetRgb(iv, ib, cb, rgb);\n                if (!stnT.FSetData(rgb, cb, &cbRead) || cbRead >= cb || !stnT2.FSetData(rgb + cbRead, cb - cbRead))\n                {\n                    Bug(\"bad picture data 2\");\n                    goto LWriteCore;\n                }\n                stn.FFormatSz(PszLit(\"\\t\\tVAR LONG '%f' \"), cki.ctg);\n                if (stnT.Cch() > 0)\n                {\n                    stn.FAppendStn(&stnT);\n                    stnT.FExpandControls();\n                }\n                else\n                {\n                    stnT.FFormatSz(PszLit(\"0x%x\"), cki.cno);\n                    stn.FAppendStn(&stnT);\n                    stnT.SetNil();\n                }\n                stn.FAppendCh(kchSpace);\n                if (stnT2.Cch() > 0)\n                {\n                    stn.FAppendStn(&stnT2);\n                    stnT2.FExpandControls();\n                }\n                else\n                {\n                    pag->GetRgb(iv, size(CKI), size(long), &lw);\n                    stnT2.FFormatSz(PszLit(\"0x%x\"), lw);\n                    stn.FAppendStn(&stnT2);\n                    stnT2.SetNil();\n                }\n                stn.FAppendSz(PszLit(\" __HELP_SYMBOL( STN \"));\n                if (stnT.Cch() > 0)\n                {\n                    stn.FAppendCh(ChLit('\"'));\n                    stn.FAppendStn(&stnT);\n                    stn.FAppendSz(PszLit(\"\\\" \"));\n                }\n                if (stnT2.Cch() > 0)\n                {\n                    if (stnT.Cch() > 0)\n                        stn.FAppendSz(PszLit(\"; \"));\n                    stn.FAppendCh(ChLit('\"'));\n                    stn.FAppendStn(&stnT2);\n                    stn.FAppendSz(PszLit(\"\\\" \"));\n                }\n                stn.FAppendCh(ChLit(')'));\n                pchse->DumpSz(stn.Psz());\n                break;\n            }\n            break;\n\n        default:\n        LWriteCore:\n            // just write the data\n            pchse->DumpSz(PszLit(\"\\t\\tVAR\"));\n            pchse->DumpRgb(pag->PvLock(iv), cb, 3);\n            pag->Unlock();\n            break;\n        }\n    }\n\n    // dump the ENDCHUNK\n    ReleasePpo(&pag);\n    pchse->DumpSz(PszLit(\"ENDCHUNK\"));\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Append a string or number.\n***************************************************************************/\nvoid _AppendHelpStnLw(PSTN pstn, PGST pgst, long istn, long lw)\n{\n    AssertPo(pstn, 0);\n    AssertNilOrPo(pgst, 0);\n    STN stn;\n\n    stn.SetNil();\n    if (pvNil != pgst)\n        pgst->GetStn(istn, &stn);\n    if (stn.Cch() == 0)\n        stn.FFormatSz(PszLit(\" 0x%x\"), lw);\n    else\n        pstn->FAppendCh(kchSpace);\n    pstn->FAppendStn(&stn);\n}\n"
  },
  {
    "path": "kauai/tools/chelpexp.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Chunky help exporting. Only one API is exported by this module. It\n    writes chomp source for the help topics contained in a chunky file.\n\n***************************************************************************/\n#ifndef CHELPEXP_H\n#define CHELPEXP_H\n\nbool FExportHelpText(PCFL pcfl, PMSNK pmsnk);\n\n#endif //! CHELPEXP_H\n"
  },
  {
    "path": "kauai/tools/chelpres.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//{{NO_DEPENDENCIES}}\n// Microsoft Visual C++ generated include file.\n// Used by chelp.rc\n//\n#define dlidInsertPicture 208\n#define dlidFormatPicture 208\n#define dlidInsertButton 209\n#define dlidFormatButton 209\n#define dlidGroupText 210\n#define dlidTopicInfo 211\n#define dlidFontSize 212\n#define dlidSubSuper 213\n#define dlidFormatEdit 214\n#define dlidFind 215\n#define dlidSpacing 217\n#define dlidCheckSpelling 218\n#define dlidChooseLanguage 219\n#define dlidChooseFont 220\n#define cidOpenRichText 40047\n#define cidLoadResFile 40048\n#define cidNewTopic 40049\n#define cidDeleteTopic 40050\n#define cidEditTopic 40051\n#define cidGroupText 40052\n#define cidUngroupText 40053\n#define cidEditHtop 40054\n#define cidExportText 40055\n#define cidFormatPicture 40056\n#define cidFormatButton 40057\n#define cidFormatEdit 40058\n#define cidInsertEdit 40059\n#define cidFind 40060\n#define cidFindAgain 40061\n#define cidReplace 40062\n#define cidReplaceFind 40063\n#define cidFindNextTopic 40064\n#define cidFormatDocument 40065\n#define cidOpenText 40066\n#define cidLineSpacing 40067\n#define cidNextTopic 40068\n#define cidPrevTopic 40069\n#define cidSpellCheck 40070\n#define cidDumpText 40071\n#define cidChooseLanguage 40072\n#define cidFontDialog 40073\n\n// Next default values for new objects\n//\n#ifdef APSTUDIO_INVOKED\n#ifndef APSTUDIO_READONLY_SYMBOLS\n#define _APS_NEXT_RESOURCE_VALUE 221\n#define _APS_NEXT_COMMAND_VALUE 40074\n#define _APS_NEXT_CONTROL_VALUE 1044\n#define _APS_NEXT_SYMED_VALUE 128\n#endif\n#endif\n"
  },
  {
    "path": "kauai/tools/chgrp.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Handles editing a chunk consisting of a group\n    (GL, AL, GG, AG, GST, AST)\n\n***************************************************************************/\n#include \"ched.h\"\nASSERTNAME\n\n#define kcbMaxDispGrp 16\n\nbool _FDlgGrpbNew(PDLG pdlg, long *pidit, void *pv);\n\nBEGIN_CMD_MAP(DCGB, DDG)\nON_CID_GEN(cidEditNatural, &DCGB::FCmdEditItem, &DCGB::FEnableDcgbCmd)\nON_CID_GEN(cidEditHex, &DCGB::FCmdEditItem, &DCGB::FEnableDcgbCmd)\nON_CID_GEN(cidInsertItem, &DCGB::FCmdAddItem, &DCGB::FEnableDcgbCmd)\nON_CID_GEN(cidAddItem, &DCGB::FCmdAddItem, pvNil)\nON_CID_GEN(cidDeleteItem, &DCGB::FCmdDeleteItem, &DCGB::FEnableDcgbCmd)\nEND_CMD_MAP_NIL()\n\nRTCLASS(DOCG)\nRTCLASS(DOCI)\nRTCLASS(DCGB)\nRTCLASS(DCGL)\nRTCLASS(DCGG)\nRTCLASS(DCST)\n\n/***************************************************************************\n    Constructor for a group document.  cls indicates which group class\n    the edited chunk belongs to.  cls should be one of GL, AL, GG, AG,\n    GST, AST.\n***************************************************************************/\nDOCG::DOCG(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno, long cls) : DOCE(pdocb, pcfl, ctg, cno)\n{\n    _pgrpb = pvNil;\n    _cls = cls;\n}\n\n/***************************************************************************\n    Destructor for DOCG.  Free the GRPB.\n***************************************************************************/\nDOCG::~DOCG(void)\n{\n    ReleasePpo(&_pgrpb);\n}\n\n/***************************************************************************\n    Static method to create a new document based on a group in a chunk.\n    Asserts that there are no other editing docs open on this chunk.\n***************************************************************************/\nPDOCG DOCG::PdocgNew(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno, long cls)\n{\n    AssertPo(pdocb, 0);\n    AssertPo(pcfl, 0);\n\n    Assert(pvNil == DOCE::PdoceFromChunk(pdocb, pcfl, ctg, cno), \"DOCE already exists for the chunk\");\n    PDOCG pdocg;\n\n    if (pvNil == (pdocg = NewObj DOCG(pdocb, pcfl, ctg, cno, cls)))\n        return pvNil;\n    if (!pdocg->_FInit())\n    {\n        ReleasePpo(&pdocg);\n        return pvNil;\n    }\n    AssertPo(pdocg, 0);\n    return pdocg;\n}\n\nenum\n{\n    kiditOkGrpbNew,\n    kiditCancelGrpbNew,\n    kiditSizeGrpbNew,\n    kiditLimGrpbNew\n};\n\n/***************************************************************************\n    Dialog proc for Adopt Chunk dialog.\n***************************************************************************/\nbool _FDlgGrpbNew(PDLG pdlg, long *pidit, void *pv)\n{\n    AssertPo(pdlg, 0);\n    AssertVarMem(pidit);\n    long cb;\n    bool fEmpty;\n\n    switch (*pidit)\n    {\n    case kiditCancelGrpbNew:\n        return fTrue; // dismiss the dialog\n\n    case kiditOkGrpbNew:\n        if (!pdlg->FGetValues(0, kiditLimGrpbNew))\n        {\n            *pidit = ivNil;\n            return fTrue;\n        }\n\n        // check the size\n        if (!pdlg->FGetLwFromEdit(kiditSizeGrpbNew, &cb, &fEmpty) && !fEmpty || !FIn(cb, *(long *)pv, kcbMax))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Bad Size\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditSizeGrpbNew);\n            return fFalse;\n        }\n        return fTrue;\n\n    default:\n        break;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Read the group from the given flo.\n***************************************************************************/\nbool DOCG::_FRead(PBLCK pblck)\n{\n    AssertPo(pblck, 0);\n    Assert(pvNil == _pgrpb, \"group not nil\");\n\n    if (0 == pblck->Cb(fTrue))\n    {\n        // create a new one - need to ask for a size from the user\n        PDLG pdlg;\n        long dlid, idit;\n        long cb, cbMin;\n        bool fEmpty;\n\n        // determine which dialog to use\n        cbMin = 0;\n        switch (_cls)\n        {\n        case kclsGL:\n        case kclsAL:\n            dlid = dlidGlbNew;\n            cbMin = 1;\n            break;\n        case kclsGG:\n        case kclsAG:\n            dlid = dlidGgbNew;\n            break;\n        case kclsGST:\n        case kclsAST:\n            dlid = dlidGstbNew;\n            break;\n        default:\n            BugVar(\"bad cls value\", &_cls);\n            return fFalse;\n        }\n\n        pdlg = DLG::PdlgNew(dlid, _FDlgGrpbNew, &cbMin);\n        pdlg->FPutLwInEdit(kiditSizeGrpbNew, cbMin);\n        if (pvNil == pdlg)\n            goto LFail;\n        idit = pdlg->IditDo(kiditSizeGrpbNew);\n        if (idit != kiditOkGrpbNew)\n            goto LFail;\n\n        if (!pdlg->FGetLwFromEdit(kiditSizeGrpbNew, &cb, &fEmpty) && !fEmpty || !FIn(cb, cbMin, kcbMax / size(long)))\n        {\n            goto LFail;\n        }\n\n        switch (_cls)\n        {\n        case kclsGL:\n            _pgrpb = GL::PglNew(cb);\n            break;\n        case kclsAL:\n            _pgrpb = AL::PalNew(cb);\n            break;\n        case kclsGG:\n            _pgrpb = GG::PggNew(cb);\n            break;\n        case kclsAG:\n            _pgrpb = AG::PagNew(cb);\n            break;\n        case kclsGST:\n            _pgrpb = GST::PgstNew(cb * size(long));\n            break;\n        case kclsAST:\n            _pgrpb = AST::PastNew(cb * size(long));\n            break;\n        default:\n            BugVar(\"bad cls value\", &_cls);\n            return fFalse;\n        }\n    LFail:\n        ReleasePpo(&pdlg);\n        _bo = kboCur;\n        _osk = koskCur;\n        _fDirty = fTrue;\n    }\n    else\n    {\n        switch (_cls)\n        {\n        case kclsGL:\n            _pgrpb = GL::PglRead(pblck, &_bo, &_osk);\n            break;\n        case kclsAL:\n            _pgrpb = AL::PalRead(pblck, &_bo, &_osk);\n            break;\n        case kclsGG:\n            _pgrpb = GG::PggRead(pblck, &_bo, &_osk);\n            break;\n        case kclsAG:\n            _pgrpb = AG::PagRead(pblck, &_bo, &_osk);\n            break;\n        case kclsGST:\n            _pgrpb = GST::PgstRead(pblck, &_bo, &_osk);\n            break;\n        case kclsAST:\n            _pgrpb = AST::PastRead(pblck, &_bo, &_osk);\n            break;\n        default:\n            BugVar(\"bad cls value\", &_cls);\n            return fFalse;\n        }\n    }\n\n    return pvNil != _pgrpb;\n}\n\n/***************************************************************************\n    Create a new DDG onto the document.\n***************************************************************************/\nPDDG DOCG::PddgNew(PGCB pgcb)\n{\n    AssertThis(0);\n    PDDG pddg;\n\n    pddg = pvNil;\n    switch (_cls)\n    {\n    case kclsGL:\n    case kclsAL:\n        pddg = DCGL::PdcglNew(this, (PGLB)_pgrpb, _cls, pgcb);\n        break;\n    case kclsGG:\n    case kclsAG:\n        pddg = DCGG::PdcggNew(this, (PGGB)_pgrpb, _cls, pgcb);\n        break;\n    case kclsGST:\n    case kclsAST:\n        pddg = DCST::PdcstNew(this, (PGSTB)_pgrpb, _cls, pgcb);\n        break;\n    default:\n        BugVar(\"bad cls value\", &_cls);\n        break;\n    }\n    return pddg;\n}\n\n/***************************************************************************\n    Write the group to disk.\n***************************************************************************/\nbool DOCG::_FWrite(PBLCK pblck, bool fRedirect)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n    return _pgrpb->FWrite(pblck, _bo, _osk);\n}\n\n/***************************************************************************\n    Get the size of the group on file.\n***************************************************************************/\nlong DOCG::_CbOnFile(void)\n{\n    AssertThis(0);\n    return _pgrpb->CbOnFile();\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of an object.\n***************************************************************************/\nvoid DOCG::AssertValid(ulong grf)\n{\n    DOCG_PAR::AssertValid(0);\n    AssertPo(_pgrpb, 0);\n    Assert(_pgrpb->FIs(_cls), \"group doesn't match cls\");\n    switch (_cls)\n    {\n    case kclsGL:\n    case kclsAL:\n    case kclsGG:\n    case kclsAG:\n    case kclsGST:\n    case kclsAST:\n        break;\n    default:\n        BugVar(\"bad cls value\", &_cls);\n        break;\n    }\n}\n\n/***************************************************************************\n    Mark memory for the DOCG.\n***************************************************************************/\nvoid DOCG::MarkMem(void)\n{\n    AssertValid(0);\n    DOCG_PAR::MarkMem();\n    MarkMemObj(_pgrpb);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for a DCGB.\n***************************************************************************/\nDCGB::DCGB(PDOCB pdocb, PGRPB pgrpb, long cls, long clnItem, PGCB pgcb) : DCLB(pdocb, pgcb)\n{\n    AssertIn(clnItem, 1, 10);\n    _dypBorder = 1;\n    _dypLine = _dypLine + _dypBorder;\n    _clnItem = clnItem;\n    _ivCur = ivNil;\n    _dlnCur = 0;\n    _pgrpb = pgrpb;\n    _cls = cls;\n    switch (_cls)\n    {\n    default:\n#ifdef DEBUG\n        BugVar(\"bad cls value\", &_cls);\n    case kclsGL:\n    case kclsGG:\n    case kclsGST:\n#endif // DEBUG\n        _fAllocated = fFalse;\n        break;\n    case kclsAL:\n    case kclsAG:\n    case kclsAST:\n        _fAllocated = fTrue;\n        break;\n    }\n}\n\n/***************************************************************************\n    Static method to invalidate all DCGB's on this GRPB.  Also dirties the\n    document.  Should be called by any code that edits the document.\n***************************************************************************/\nvoid DCGB::InvalAllDcgb(PDOCB pdocb, PGRPB pgrpb, long iv, long cvIns, long cvDel)\n{\n    long ipddg;\n    PDDG pddg;\n    PDCGB pdcgb;\n\n    // mark the document dirty\n    pdocb->SetDirty();\n\n    // inform the DCGB's\n    for (ipddg = 0; pvNil != (pddg = pdocb->PddgGet(ipddg)); ipddg++)\n    {\n        if (!pddg->FIs(kclsDCGB))\n            continue;\n        pdcgb = (PDCGB)pddg;\n        if (pdcgb->_pgrpb == pgrpb)\n            pdcgb->_InvalIv(iv, cvIns, cvDel);\n    }\n}\n\n/***************************************************************************\n    Invalidate the display from iv to the end of the display.  If we're\n    the active DCGB, also redraw.\n***************************************************************************/\nvoid DCGB::_InvalIv(long iv, long cvIns, long cvDel)\n{\n    AssertThis(0);\n    AssertIn(iv, 0, kcbMax);\n    AssertIn(cvIns, 0, kcbMax);\n    AssertIn(cvDel, 0, kcbMax);\n    RC rc;\n\n    // adjust the sel\n    if (_ivCur > iv)\n    {\n        if (_ivCur < iv + cvDel)\n        {\n            _ivCur = ivNil;\n            _dlnCur = 0;\n        }\n        else\n            _ivCur += cvIns - cvDel;\n    }\n\n    // caclculate the invalid rectangle\n    GetRc(&rc, cooLocal);\n    rc.ypTop = _YpFromIvDln(iv, 0);\n    if (cvIns == cvDel)\n        rc.ypBottom = _YpFromIvDln(iv + cvIns, 0);\n\n    if (rc.FEmpty())\n        return;\n\n    if (_fActive)\n    {\n        ValidRc(&rc, kginDraw);\n        InvalRc(&rc, kginDraw);\n    }\n    else\n        InvalRc(&rc);\n}\n\n/***************************************************************************\n    We're being activated or deactivated so invert the sel.\n***************************************************************************/\nvoid DCGB::_Activate(bool fActive)\n{\n    AssertThis(0);\n    DDG::_Activate(fActive);\n\n    GNV gnv(this);\n    _DrawSel(&gnv);\n}\n\n/***************************************************************************\n    Return the max for the scroll bar.\n***************************************************************************/\nlong DCGB::_ScvMax(bool fVert)\n{\n    AssertThis(0);\n    RC rc;\n    long ichLim;\n\n    _GetContent(&rc);\n    if (fVert)\n    {\n        return LwMax(0, LwMul(_clnItem, _pgrpb->IvMac()) - rc.Dyp() / _dypLine + 1);\n    }\n\n    ichLim = 3 * kcbMaxDispGrp + kcbMaxDispGrp / 4 + 12;\n    return LwMax(0, ichLim - rc.Dxp() / _dxpChar);\n}\n\n/***************************************************************************\n    Set the selection to the given line.\n***************************************************************************/\nvoid DCGB::_SetSel(long ln)\n{\n    AssertThis(0);\n    long iv, dln;\n\n    if (ln < 0 || ln >= _LnLim())\n    {\n        Assert(ln == lnNil, \"bad non-nil selection requested\");\n        iv = ivNil;\n        dln = 0;\n    }\n    else\n    {\n        iv = ln / _clnItem;\n        dln = ln % _clnItem;\n    }\n\n    if (_ivCur == iv && _dlnCur == dln)\n        return;\n\n    if (_fActive)\n    {\n        GNV gnv(this);\n\n        // erase the old sel\n        if (_fActive)\n            _DrawSel(&gnv);\n\n        // set the new sel and draw it\n        _ivCur = iv;\n        _dlnCur = dln;\n        if (_fActive)\n            _DrawSel(&gnv);\n    }\n    else\n    {\n        // just set the new selection\n        _ivCur = iv;\n        _dlnCur = dln;\n    }\n}\n\n/***************************************************************************\n    Scroll the sel into view.\n***************************************************************************/\nvoid DCGB::_ShowSel(void)\n{\n    AssertThis(0);\n    RC rc;\n    long cln, ln;\n\n    if (ivNil == _ivCur)\n        return;\n\n    ln = _LnFromIvDln(_ivCur, _dlnCur) - _scvVert;\n    if (ln < 0)\n        _Scroll(scaNil, scaToVal, 0, _scvVert + ln);\n    else\n    {\n        _GetContent(&rc);\n        cln = LwMax(1, rc.Dyp() / _dypLine);\n        if (ln >= cln)\n            _Scroll(scaNil, scaToVal, 0, _scvVert + ln - cln + 1);\n    }\n}\n\n/***************************************************************************\n    Hilite the selection (if there is one)\n***************************************************************************/\nvoid DCGB::_DrawSel(PGNV pgnv)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    RC rc;\n\n    if (ivNil != _ivCur)\n    {\n        pgnv->GetRcSrc(&rc);\n        rc.ypTop = _YpFromIvDln(_ivCur, _dlnCur);\n        rc.ypBottom = rc.ypTop + _dypLine - _dypBorder;\n        pgnv->HiliteRc(&rc, kacrWhite);\n    }\n}\n\n/***************************************************************************\n    Handle key input.\n***************************************************************************/\nbool DCGB::FCmdKey(PCMD_KEY pcmd)\n{\n    AssertThis(0);\n    long ln, lnLim, lnNew, cln;\n    RC rc;\n\n    ln = _LnFromIvDln(_ivCur, _dlnCur);\n    lnLim = _LnLim();\n    switch (pcmd->vk)\n    {\n    case kvkDown:\n        lnNew = (0 > ln) ? 0 : (ln + 1) % lnLim;\n        goto LChangeSel;\n\n    case kvkUp:\n        lnNew = (0 > ln) ? lnLim - 1 : (ln + lnLim - 1) % lnLim;\n        goto LChangeSel;\n\n    case kvkPageUp:\n    case kvkPageDown:\n        _GetContent(&rc);\n        cln = LwMax(1, rc.Dyp() / _dypLine - 1);\n        if (pcmd->vk == kvkPageDown)\n            lnNew = LwMin(lnLim - 1, lnNil == ln ? cln : ln + cln);\n        else\n            lnNew = LwMax(0, lnNil == ln ? 0 : ln - cln);\n        goto LChangeSel;\n\n    case kvkHome:\n        lnNew = 0;\n        goto LChangeSel;\n\n    case kvkEnd:\n        lnNew = lnLim - 1;\n    LChangeSel:\n        if (lnLim == 0)\n        {\n            Assert(lnNil == ln, \"no lines, but non-nil sel\");\n            break;\n        }\n\n        AssertIn(lnNew, 0, lnLim);\n        _SetSel(lnNew);\n        _ShowSel();\n        break;\n\n    case kvkDelete:\n    case kvkBack:\n        if (ivNil != _ivCur && !_pgrpb->FFree(_ivCur))\n            _DeleteIv(_ivCur);\n        break;\n\n    default:\n        switch (pcmd->ch)\n        {\n        case kchReturn:\n            if (ivNil != _ivCur && !_pgrpb->FFree(_ivCur))\n                _EditIvDln(_ivCur, _dlnCur);\n            break;\n        }\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle mouse-down in a DCGB - track the mouse and select the last\n    item the mouse is over.\n***************************************************************************/\nvoid DCGB::MouseDown(long xp, long yp, long cact, ulong grfcust)\n{\n    AssertThis(0);\n    bool fDown;\n    PT pt, ptT;\n    long ln, ivCur, dlnCur;\n    RC rc;\n\n    // do this before the activate to avoid flashing the selection\n    ivCur = _ivCur;\n    dlnCur = _dlnCur;\n    ln = _LnFromYp(yp);\n    if (ln >= _LnLim())\n        ln = lnNil;\n    _SetSel(ln);\n\n    if (!_fActive)\n        Activate(fTrue);\n\n    if (cact > 1 && ivCur == _ivCur && dlnCur == _dlnCur && _ivCur != ivNil && !_pgrpb->FFree(_ivCur))\n    {\n        // edit the thing\n        _EditIvDln(_ivCur, _dlnCur);\n        return;\n    }\n\n    Clean();\n    _GetContent(&rc);\n    for (GetPtMouse(&pt, &fDown); fDown; GetPtMouse(&pt, &fDown))\n    {\n        if (!rc.FPtIn(pt.xp, pt.yp))\n        {\n            // do autoscroll\n            ptT = pt;\n            rc.PinPt(&pt);\n            _Scroll(scaToVal, scaToVal, _scvHorz + LwDivAway(ptT.xp - pt.xp, _dxpChar),\n                    _scvVert + LwDivAway(ptT.yp - pt.yp, _dypLine));\n        }\n        if (!rc.FPtIn(pt.xp, pt.yp) || (ln = _LnFromYp(pt.yp)) >= _LnLim())\n            ln = lnNil;\n        _SetSel(ln);\n    }\n}\n\n/***************************************************************************\n    Handle enabling/disabling commands.\n***************************************************************************/\nbool DCGB::FEnableDcgbCmd(PCMD pcmd, ulong *pgrfeds)\n{\n    bool fT;\n\n    switch (pcmd->cid)\n    {\n    case cidEditNatural:\n    case cidEditHex:\n    case cidDeleteItem:\n        fT = (ivNil != _ivCur) && !_pgrpb->FFree(_ivCur);\n        break;\n\n    case cidInsertItem:\n        fT = (ivNil != _ivCur) && !_fAllocated;\n        break;\n\n    default:\n        BugVar(\"unhandled cid\", &pcmd->cid);\n        fT = fFalse;\n        break;\n    }\n\n    *pgrfeds = fT ? fedsEnable : fedsDisable;\n    return fTrue;\n}\n\n/***************************************************************************\n    Handles commands to edit the current line of the group.\n***************************************************************************/\nbool DCGB::FCmdEditItem(PCMD pcmd)\n{\n    if (ivNil == _ivCur)\n        return fFalse;\n\n    _EditIvDln(_ivCur, _dlnCur);\n    return fTrue;\n}\n\n/***************************************************************************\n    Edit the indicated line of the group.\n***************************************************************************/\nvoid DCGB::_EditIvDln(long iv, long dln)\n{\n    PDOCI pdoci;\n\n    if (pvNil == (pdoci = DOCI::PdociNew(_pdocb, _pgrpb, _cls, iv, dln)))\n        return;\n\n    pdoci->PdmdNew();\n    ReleasePpo(&pdoci);\n}\n\n/***************************************************************************\n    Handle cidDeleteItem.\n***************************************************************************/\nbool DCGB::FCmdDeleteItem(PCMD pcmd)\n{\n    _DeleteIv(_ivCur);\n    return fTrue;\n}\n\n/***************************************************************************\n    Delete the indicated item.\n***************************************************************************/\nvoid DCGB::_DeleteIv(long iv)\n{\n    long ivMac;\n\n    if (ivNil == iv || _pgrpb->FFree(iv))\n        return;\n\n    // turn off the selection, delete the element and invalidate stuff\n    _SetSel(lnNil);\n    _pgrpb->Delete(iv);\n    ivMac = _pgrpb->IvMac();\n    if (iv < ivMac)\n    {\n        InvalAllDcgb(_pdocb, _pgrpb, iv, _fAllocated ? 1 : 0, 1);\n        _SetSel(_LnFromIvDln(iv, 0));\n    }\n    else\n    {\n        InvalAllDcgb(_pdocb, _pgrpb, ivMac, 0, iv - ivMac + 1);\n        if (ivMac > 0)\n            _SetSel(_LnFromIvDln(ivMac - 1, 0));\n    }\n    _ShowSel();\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a DCGB.\n***************************************************************************/\nvoid DCGB::AssertValid(ulong grf)\n{\n    // REVIEW shonk: fill out\n    DCGB_PAR::AssertValid(0);\n    AssertPo(_pgrpb, 0);\n}\n\n/***************************************************************************\n    Mark memory for the DCGB.\n***************************************************************************/\nvoid DCGB::MarkMem(void)\n{\n    AssertValid(0);\n    DCGB_PAR::MarkMem();\n    MarkMemObj(_pgrpb);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for the DCGL class.  This class displays (and allows\n    editing of) a GL or AL.\n***************************************************************************/\nDCGL::DCGL(PDOCB pdocb, PGLB pglb, long cls, PGCB pgcb) : DCGB(pdocb, pglb, cls, 1, pgcb)\n{\n}\n\n/***************************************************************************\n    Static method to create a new DCGL for the GL or AL.\n***************************************************************************/\nPDCGL DCGL::PdcglNew(PDOCB pdocb, PGLB pglb, long cls, PGCB pgcb)\n{\n    AssertVar(cls == kclsGL || cls == kclsAL, \"bad cls\", &cls);\n    PDCGL pdcgl;\n\n    if (pvNil == (pdcgl = NewObj DCGL(pdocb, pglb, cls, pgcb)))\n        return pvNil;\n\n    if (!pdcgl->_FInit())\n    {\n        ReleasePpo(&pdcgl);\n        return pvNil;\n    }\n    pdcgl->Activate(fTrue);\n\n    AssertPo(pdcgl, 0);\n    return pdcgl;\n}\n\n/***************************************************************************\n    Draw the contents of the DCGL.\n***************************************************************************/\nvoid DCGL::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    PGLB pglb;\n    STN stn;\n    byte rgb[kcbMaxDispGrp];\n    long ivMac, iv;\n    long cbDisp, cbEntry;\n    long xp, yp, ibT;\n    byte bT;\n\n    pgnv->ClipRc(prcClip);\n    pgnv->FillRc(prcClip, kacrWhite);\n    pgnv->SetOnn(_onn);\n\n    pglb = (PGLB)_pgrpb;\n    ivMac = pglb->IvMac();\n    xp = _XpFromIch(0);\n    cbDisp = cbEntry = pglb->CbEntry();\n    if (cbDisp > kcbMaxDispGrp)\n    {\n        // the rest will be filled with periods to indicate that\n        // not everything is displayed\n        cbDisp = kcbMaxDispGrp - 2;\n    }\n\n    iv = _LnFromYp(LwMax(_dypHeader, prcClip->ypTop));\n    yp = _YpFromIvDln(iv, 0);\n\n    for (; iv < ivMac && yp < prcClip->ypBottom; iv++)\n    {\n        if (pglb->FFree(iv))\n        {\n            stn.FFormatSz(PszLit(\"%5d)  FREE\"), iv);\n            goto LDisplay;\n        }\n\n        CopyPb(pglb->QvGet(iv), rgb, cbDisp);\n\n        // first comes the item number\n        stn.FFormatSz(PszLit(\"%5d) \"), iv);\n\n        // now add the bytes in hex, with a space after every four bytes\n        for (ibT = 0; ibT < cbDisp; ibT++)\n        {\n            bT = rgb[ibT];\n            if ((ibT & 0x03) == 0)\n                stn.FAppendCh(kchSpace);\n            stn.FAppendCh(vrgchHex[(bT >> 4) & 0x0F]);\n            stn.FAppendCh(vrgchHex[bT & 0x0F]);\n        }\n        // add the periods\n        if (cbDisp < cbEntry)\n            stn.FAppendSz(PszLit(\"....\"));\n        stn.FAppendSz(PszLit(\"  \"));\n\n        // now comes the ascii characters.\n        for (ibT = 0; ibT < cbDisp; ibT++)\n        {\n            bT = rgb[ibT];\n            if (bT < 32 || bT == 0x7F)\n                bT = '?';\n            stn.FAppendCh((achar)bT);\n        }\n        // add the periods\n        if (cbDisp < cbEntry)\n            stn.FAppendSz(PszLit(\"..\"));\n\n    LDisplay:\n        pgnv->DrawStn(&stn, xp, yp);\n        yp += _dypLine;\n    }\n\n    // draw the selection\n    if (_fActive)\n        _DrawSel(pgnv);\n}\n\n/***************************************************************************\n    Handle cidAddItem and cidInsertItem.\n***************************************************************************/\nbool DCGL::FCmdAddItem(PCMD pcmd)\n{\n    HQ hq;\n    long cb;\n    void *pv;\n    long ivNew;\n    bool fT;\n    PGLB pglb;\n\n    pglb = (PGLB)_pgrpb;\n    cb = pglb->CbEntry();\n    if (!FAllocHq(&hq, cb, fmemClear, mprNormal))\n        return fTrue;\n\n    pv = PvLockHq(hq);\n    fT = fFalse;\n    switch (pcmd->cid)\n    {\n    case cidAddItem:\n        fT = pglb->FAdd(pv, &ivNew);\n        break;\n    case cidInsertItem:\n        if (_fAllocated)\n            break;\n        Assert(pglb->FIs(kclsGL), \"bad grpb\");\n        fT = ((PGL)pglb)->FInsert(ivNew = _ivCur, pv);\n    }\n    UnlockHq(hq);\n    FreePhq(&hq);\n    if (!fT)\n        return fTrue;\n\n    // turn off the selection and invalidate stuff\n    _SetSel(lnNil);\n    InvalAllDcgb(_pdocb, pglb, ivNew, 1, (_fAllocated && ivNew == pglb->IvMac() - 1) ? 1 : 0);\n    _SetSel(_LnFromIvDln(ivNew, 0));\n    _ShowSel();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Constructor for the DCGG class.  This class displays (and allows\n    editing of) a GG or AG.\n***************************************************************************/\nDCGG::DCGG(PDOCB pdocb, PGGB pggb, long cls, PGCB pgcb) : DCGB(pdocb, pggb, cls, pggb->CbFixed() > 0 ? 2 : 1, pgcb)\n{\n}\n\n/***************************************************************************\n    Static method to create a new DCGG for the GG or AG.\n***************************************************************************/\nPDCGG DCGG::PdcggNew(PDOCB pdocb, PGGB pggb, long cls, PGCB pgcb)\n{\n    AssertVar(cls == kclsGG || cls == kclsAG, \"bad cls\", &cls);\n    PDCGG pdcgg;\n\n    if (pvNil == (pdcgg = NewObj DCGG(pdocb, pggb, cls, pgcb)))\n        return pvNil;\n\n    if (!pdcgg->_FInit())\n    {\n        ReleasePpo(&pdcgg);\n        return pvNil;\n    }\n    pdcgg->Activate(fTrue);\n\n    AssertPo(pdcgg, 0);\n    return pdcgg;\n}\n\n/***************************************************************************\n    Draw the contents of the DCGL.\n***************************************************************************/\nvoid DCGG::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    PGGB pggb;\n    STN stn;\n    byte rgb[kcbMaxDispGrp];\n    long ivMac, iv, dln;\n    long cbDisp, cbEntry;\n    long xp, yp, ibT;\n    byte bT;\n    RC rc;\n\n    pgnv->ClipRc(prcClip);\n    pgnv->GetRcSrc(&rc);\n    pgnv->FillRc(prcClip, kacrWhite);\n    pgnv->SetOnn(_onn);\n\n    pggb = (PGGB)_pgrpb;\n    ivMac = pggb->IvMac();\n    xp = _XpFromIch(0);\n\n    iv = _LnFromYp(LwMax(_dypHeader, prcClip->ypTop)) / _clnItem;\n    yp = _YpFromIvDln(iv, 0);\n\n    for (; iv < ivMac && yp < prcClip->ypBottom; iv++)\n    {\n        if (pggb->FFree(iv))\n        {\n            stn.FFormatSz(PszLit(\"%5d)  FREE\"), iv);\n            pgnv->DrawStn(&stn, xp, yp);\n            yp += _clnItem * _dypLine;\n            goto LDrawBorder;\n        }\n\n        for (dln = 0; dln < _clnItem; dln++)\n        {\n            if (dln == 0)\n                cbEntry = pggb->Cb(iv);\n            else\n                cbEntry = pggb->CbFixed();\n            if ((cbDisp = cbEntry) > kcbMaxDispGrp)\n            {\n                // the rest will be filled with periods to indicate that\n                // not everything is displayed\n                cbDisp = kcbMaxDispGrp - 2;\n            }\n\n            if (dln == 0)\n            {\n                CopyPb(pggb->QvGet(iv), rgb, cbDisp);\n                stn.FFormatSz(PszLit(\"%5d) \"), iv);\n            }\n            else\n            {\n                CopyPb(pggb->QvFixedGet(iv), rgb, cbDisp);\n                stn = PszLit(\"       \");\n            }\n\n            // now add the bytes in hex, with a space after every four bytes\n            for (ibT = 0; ibT < cbDisp; ibT++)\n            {\n                bT = rgb[ibT];\n                if ((ibT & 0x03) == 0)\n                    stn.FAppendCh(kchSpace);\n                stn.FAppendCh(vrgchHex[(bT >> 4) & 0x0F]);\n                stn.FAppendCh(vrgchHex[bT & 0x0F]);\n            }\n            // add the periods\n            if (cbDisp < cbEntry)\n                stn.FAppendSz(PszLit(\"....\"));\n            else if (cbDisp < kcbMaxDispGrp)\n            {\n                for (; ibT < kcbMaxDispGrp; ibT++)\n                {\n                    stn.FAppendRgch(PszLit(\"   \"), (ibT & 0x03) == 0 ? 3 : 2);\n                }\n            }\n            stn.FAppendSz(PszLit(\"  \"));\n\n            // now comes the ascii characters.\n            for (ibT = 0; ibT < cbDisp; ibT++)\n            {\n                bT = rgb[ibT];\n                if (bT < 32 || bT == 0x7F)\n                    bT = '?';\n                stn.FAppendCh((achar)bT);\n            }\n            // add the periods\n            if (cbDisp < cbEntry)\n                stn.FAppendSz(PszLit(\"..\"));\n\n            pgnv->DrawStn(&stn, xp, yp);\n            yp += _dypLine;\n        }\n    LDrawBorder:\n        rc.ypTop = yp - _dypBorder;\n        rc.ypBottom = yp;\n        pgnv->FillRc(&rc, kacrBlack);\n    }\n\n    // draw the selection\n    if (_fActive)\n        _DrawSel(pgnv);\n}\n\n/***************************************************************************\n    Handle cidAddItem and cidInsertItem.\n***************************************************************************/\nbool DCGG::FCmdAddItem(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    long cb;\n    long ivNew;\n    bool fT;\n    PGGB pggb;\n\n    pggb = (PGGB)_pgrpb;\n    cb = (pggb->CbFixed() == 0);\n\n    fT = fFalse;\n    switch (pcmd->cid)\n    {\n    case cidAddItem:\n        fT = pggb->FAdd(cb, &ivNew);\n        break;\n    case cidInsertItem:\n        if (_fAllocated)\n            break;\n        Assert(pggb->FIs(kclsGG), \"bad grpb\");\n        fT = ((PGG)pggb)->FInsert(ivNew = _ivCur, cb);\n    }\n    if (!fT)\n        return fTrue;\n\n    if (cb > 0)\n        ClearPb(pggb->QvGet(ivNew), cb);\n    else\n        ClearPb(pggb->QvFixedGet(ivNew), pggb->CbFixed());\n\n    // turn off the selection and invalidate stuff\n    _SetSel(lnNil);\n    InvalAllDcgb(_pdocb, pggb, ivNew, 1, (_fAllocated && ivNew == pggb->IvMac() - 1) ? 1 : 0);\n    _SetSel(_LnFromIvDln(ivNew, 0));\n    _ShowSel();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Constructor for the DCST class.  This class displays (and allows\n    editing of) a GST or AST.\n***************************************************************************/\nDCST::DCST(PDOCB pdocb, PGSTB pgstb, long cls, PGCB pgcb) : DCGB(pdocb, pgstb, cls, pgstb->CbExtra() > 0 ? 2 : 1, pgcb)\n{\n}\n\n/***************************************************************************\n    Static method to create a new DCST for the GST or AST.\n***************************************************************************/\nPDCST DCST::PdcstNew(PDOCB pdocb, PGSTB pgstb, long cls, PGCB pgcb)\n{\n    AssertVar(cls == kclsGST || cls == kclsAST, \"bad cls\", &cls);\n    PDCST pdcst;\n\n    if (pvNil == (pdcst = NewObj DCST(pdocb, pgstb, cls, pgcb)))\n        return pvNil;\n\n    if (!pdcst->_FInit())\n    {\n        ReleasePpo(&pdcst);\n        return pvNil;\n    }\n    pdcst->Activate(fTrue);\n\n    AssertPo(pdcst, 0);\n    return pdcst;\n}\n\n/***************************************************************************\n    Draw the contents of the DCGL.\n***************************************************************************/\nvoid DCST::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    PGSTB pgstb;\n    STN stn;\n    STN stnT;\n    byte rgb[1024];\n    long ivMac, iv;\n    long cbDisp, cbExtra;\n    long xp, yp, ibT;\n    byte bT;\n    RC rc;\n    HQ hqExtra = hqNil;\n    byte *pbExtra = rgb;\n\n    Assert(size(rgb) >= kcbMaxDispGrp, \"rgb too small\");\n    pgnv->ClipRc(prcClip);\n    pgnv->GetRcSrc(&rc);\n    pgnv->FillRc(prcClip, kacrWhite);\n    pgnv->SetOnn(_onn);\n\n    pgstb = (PGSTB)_pgrpb;\n    if (size(rgb) < (cbExtra = pgstb->CbExtra()))\n    {\n        if (FAllocHq(&hqExtra, cbExtra, fmemNil, mprNormal))\n            pbExtra = (byte *)PvLockHq(hqExtra);\n        else\n            pbExtra = pvNil;\n    }\n\n    if ((cbDisp = cbExtra) > kcbMaxDispGrp)\n    {\n        // the rest will be filled with periods to indicate that\n        // not everything is displayed\n        cbDisp = kcbMaxDispGrp - 2;\n    }\n\n    ivMac = pgstb->IvMac();\n    xp = _XpFromIch(0);\n\n    iv = _LnFromYp(LwMax(_dypHeader, prcClip->ypTop)) / _clnItem;\n    yp = _YpFromIvDln(iv, 0);\n\n    for (; iv < ivMac && yp < prcClip->ypBottom; iv++)\n    {\n        if (pgstb->FFree(iv))\n        {\n            stn.FFormatSz(PszLit(\"%5d)  FREE\"), iv);\n            pgnv->DrawStn(&stn, xp, yp);\n            goto LDrawBorder;\n        }\n\n        pgstb->GetStn(iv, &stnT);\n        stn.FFormatSz(PszLit(\"%5d)  \\\"%s\\\"\"), iv, &stnT);\n        pgnv->DrawStn(&stn, xp, yp);\n\n        if (_clnItem > 1 && pvNil != pbExtra)\n        {\n            pgstb->GetExtra(iv, pbExtra);\n            stn = PszLit(\"       \");\n\n            // now add the bytes in hex, with a space after every four bytes\n            for (ibT = 0; ibT < cbDisp; ibT++)\n            {\n                bT = pbExtra[ibT];\n                if ((ibT & 0x03) == 0)\n                    stn.FAppendCh(kchSpace);\n                stn.FAppendCh(vrgchHex[(bT >> 4) & 0x0F]);\n                stn.FAppendCh(vrgchHex[bT & 0x0F]);\n            }\n            // add the periods\n            if (cbDisp < cbExtra)\n                stn.FAppendSz(PszLit(\"....\"));\n            stn.FAppendSz(PszLit(\"  \"));\n\n            // now comes the ascii characters.\n            for (ibT = 0; ibT < cbDisp; ibT++)\n            {\n                bT = pbExtra[ibT];\n                if (bT < 32 || bT == 0x7F)\n                    bT = '?';\n                stn.FAppendCh((achar)bT);\n            }\n            // add the periods\n            if (cbDisp < cbExtra)\n                stn.FAppendSz(PszLit(\"..\"));\n\n            pgnv->DrawStn(&stn, xp, yp + _dypLine);\n        }\n\n    LDrawBorder:\n        yp += _clnItem * _dypLine;\n        rc.ypTop = yp - _dypBorder;\n        rc.ypBottom = yp;\n        pgnv->FillRc(&rc, kacrBlack);\n    }\n\n    if (hqNil != hqExtra)\n    {\n        UnlockHq(hqExtra);\n        FreePhq(&hqExtra);\n    }\n\n    // draw the selection\n    if (_fActive)\n        _DrawSel(pgnv);\n}\n\n/***************************************************************************\n    Handle cidAddItem and cidInsertItem.\n***************************************************************************/\nbool DCST::FCmdAddItem(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    long ivNew;\n    bool fT;\n    PGSTB pgstb;\n    HQ hq;\n    long cb;\n    STN stn;\n\n    stn.SetNil();\n    pgstb = (PGSTB)_pgrpb;\n    fT = fFalse;\n    switch (pcmd->cid)\n    {\n    case cidAddItem:\n        fT = pgstb->FAddStn(&stn, pvNil, &ivNew);\n        break;\n    case cidInsertItem:\n        if (_fAllocated)\n            break;\n        Assert(pgstb->FIs(kclsGST), \"bad grpb\");\n        fT = ((PGST)pgstb)->FInsertStn(ivNew = _ivCur, &stn, pvNil);\n    }\n    if (!fT)\n        return fTrue;\n\n    if ((cb = pgstb->CbExtra()) > 0 && FAllocHq(&hq, cb, fmemClear, mprNormal))\n    {\n        pgstb->PutExtra(ivNew, PvLockHq(hq));\n        UnlockHq(hq);\n        FreePhq(&hq);\n    }\n\n    // turn off the selection and invalidate stuff\n    _SetSel(lnNil);\n    InvalAllDcgb(_pdocb, pgstb, ivNew, 1, (_fAllocated && ivNew == pgstb->IvMac() - 1) ? 1 : 0);\n    _SetSel(_LnFromIvDln(ivNew, 0));\n    _ShowSel();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Constructor for DOCI.  DOCI holds an item in a GRPB contained in a\n    chunky file.  Doesn't free the GRPB when the doc goes away.\n***************************************************************************/\nDOCI::DOCI(PDOCB pdocb, PGRPB pgrpb, long cls, long iv, long dln) : DOCB(pdocb)\n{\n    AssertPo(pgrpb, 0);\n    AssertVar(pgrpb->FIs(cls), \"wrong cls value\", &cls);\n    AssertIn(iv, 0, pgrpb->IvMac());\n    _pgrpb = pgrpb;\n    _cls = cls;\n    _iv = iv;\n    _dln = dln;\n}\n\n/***************************************************************************\n    Static member to create a new DOCI.\n***************************************************************************/\nPDOCI DOCI::PdociNew(PDOCB pdocb, PGRPB pgrpb, long cls, long iv, long dln)\n{\n    AssertPo(pgrpb, 0);\n    AssertPo(pdocb, 0);\n\n    PDOCI pdoci;\n\n    if (pvNil == (pdoci = NewObj DOCI(pdocb, pgrpb, cls, iv, dln)))\n        return pvNil;\n    if (!pdoci->_FInit())\n    {\n        ReleasePpo(&pdoci);\n        return pvNil;\n    }\n    AssertPo(pdoci, 0);\n    return pdoci;\n}\n\n/***************************************************************************\n    Reads the data (from the GRPB) and initializes the stream.\n***************************************************************************/\nbool DOCI::_FInit(void)\n{\n    bool fRet;\n    HQ hq;\n    long cb;\n\n    if (hqNil == (hq = _HqRead()))\n        return fFalse;\n\n    if (0 < (cb = CbOfHq(hq)))\n    {\n        fRet = _bsf.FReplace(PvLockHq(hq), cb, 0, 0);\n        UnlockHq(hq);\n    }\n    else\n        fRet = fTrue;\n    FreePhq(&hq);\n    return fRet;\n}\n\n/***************************************************************************\n    Create a new DDG for this doc.\n***************************************************************************/\nPDDG DOCI::PddgNew(PGCB pgcb)\n{\n    return DCH::PdchNew(this, &_bsf, _fFixed, pgcb);\n}\n\n/***************************************************************************\n    Get the document's name.\n***************************************************************************/\nvoid DOCI::GetName(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    STN stn;\n\n    stn.FFormatSz(PszLit(\": item %d\"), _iv);\n    _pdocbPar->GetName(pstn);\n    pstn->FAppendStn(&stn);\n}\n\n/***************************************************************************\n    Handle saving.  This is a virtual member of DOCB.\n***************************************************************************/\nbool DOCI::FSave(long cid)\n{\n    AssertThis(0);\n    long iv;\n\n    switch (cid)\n    {\n    case cidSave:\n        iv = _iv;\n        break;\n\n    case cidSaveAs:\n    case cidSaveCopy:\n        RawRtn(); // REVIEW shonk: implement\n        return fFalse;\n\n    default:\n        return fFalse;\n    }\n\n    return _FSaveToItem(iv, cid != cidSaveCopy);\n}\n\n/***************************************************************************\n    Save the data to an item.\n***************************************************************************/\nbool DOCI::_FSaveToItem(long iv, bool fRedirect)\n{\n    if (!_FWrite(iv))\n        return fFalse;\n\n    // REVIEW shonk: update window names\n    if (fRedirect)\n    {\n        _iv = iv;\n        _fDirty = fFalse;\n    }\n\n    DCGB::InvalAllDcgb(_pdocbPar, _pgrpb, iv, 1, 1);\n    return fTrue;\n}\n\n/***************************************************************************\n    Write the data to the GRPB at the given item number.\n***************************************************************************/\nbool DOCI::_FWrite(long iv)\n{\n    long cb;\n    HQ hq;\n    void *pv;\n    bool fRet;\n\n    cb = _bsf.IbMac();\n    if (!FAllocHq(&hq, LwMax(1, cb), fmemNil, mprNormal))\n        return fFalse;\n    _bsf.FetchRgb(0, cb, pv = PvLockHq(hq));\n    fRet = fTrue;\n    switch (_cls)\n    {\n    case kclsGL:\n    case kclsAL:\n        Assert(cb == ((PGLB)_pgrpb)->CbEntry(), \"bad cb in GL/AL\");\n        ((PGLB)_pgrpb)->Put(iv, pv);\n        break;\n    case kclsGG:\n    case kclsAG:\n        if (_dln == 0)\n            fRet = ((PGGB)_pgrpb)->FPut(iv, cb, pv);\n        else\n        {\n            Assert(cb == ((PGGB)_pgrpb)->CbFixed(), \"bad cb in GG/AG\");\n            ((PGGB)_pgrpb)->PutFixed(iv, pv);\n        }\n        break;\n    case kclsGST:\n    case kclsAST:\n        if (_dln == 0)\n        {\n            cb = LwMin(cb, kcchMaxStz);\n            fRet = ((PGSTB)_pgrpb)->FPutRgch(iv, (achar *)pv, cb / size(achar));\n        }\n        else\n        {\n            Assert(cb == ((PGSTB)_pgrpb)->CbExtra(), \"bad cb in GST/AST\");\n            ((PGSTB)_pgrpb)->PutExtra(iv, pv);\n        }\n        break;\n    default:\n        BugVar(\"bad cls value\", &_cls);\n        fRet = fFalse;\n        break;\n    }\n    UnlockHq(hq);\n    FreePhq(&hq);\n\n    return fRet;\n}\n\n/***************************************************************************\n    Read the data from the GRPB and return it in an hq.  Also set the\n    _fFixed flag (which indicates if the data is fixed length).\n***************************************************************************/\nHQ DOCI::_HqRead(void)\n{\n    long cb;\n    HQ hq;\n    void *pv;\n    STN stn;\n\n    _fFixed = fTrue;\n    switch (_cls)\n    {\n    case kclsGL:\n    case kclsAL:\n        cb = ((PGLB)_pgrpb)->CbEntry();\n        break;\n    case kclsGG:\n    case kclsAG:\n        if (_dln == 0)\n        {\n            cb = ((PGGB)_pgrpb)->Cb(_iv);\n            _fFixed = fFalse;\n        }\n        else\n            cb = ((PGGB)_pgrpb)->CbFixed();\n        break;\n    case kclsGST:\n    case kclsAST:\n        if (_dln == 0)\n        {\n            ((PGSTB)_pgrpb)->GetStn(_iv, &stn);\n            cb = stn.Cch() * size(achar);\n            _fFixed = fFalse;\n        }\n        else\n            cb = ((PGSTB)_pgrpb)->CbExtra();\n        break;\n    default:\n        BugVar(\"bad cls value\", &_cls);\n        return hqNil;\n    }\n\n    if (!FAllocHq(&hq, cb, fmemNil, mprNormal))\n        return hqNil;\n    pv = PvLockHq(hq);\n\n    switch (_cls)\n    {\n    case kclsGL:\n    case kclsAL:\n        ((PGLB)_pgrpb)->Get(_iv, pv);\n        break;\n    case kclsGG:\n    case kclsAG:\n        if (_dln == 0)\n            ((PGGB)_pgrpb)->Get(_iv, pv);\n        else\n            ((PGGB)_pgrpb)->GetFixed(_iv, pv);\n        break;\n    case kclsGST:\n    case kclsAST:\n        if (_dln == 0)\n            CopyPb(stn.Prgch(), pv, stn.Cch() * size(achar));\n        else\n            ((PGSTB)_pgrpb)->GetExtra(_iv, pv);\n        break;\n    }\n    UnlockHq(hq);\n    return hq;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a DOCI.\n***************************************************************************/\nvoid DOCI::AssertValid(ulong grf)\n{\n    DOCI_PAR::AssertValid(0);\n    AssertPo(_pgrpb, 0);\n}\n\n/***************************************************************************\n    Mark memory for the DOCI.\n***************************************************************************/\nvoid DOCI::MarkMem(void)\n{\n    AssertValid(0);\n    DOCI_PAR::MarkMem();\n    MarkMemObj(_pgrpb);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/tools/chhex.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Classes for the hex editor.\n\n***************************************************************************/\n#include \"ched.h\"\nASSERTNAME\n\n#define kcbMaxLineDch 16\n\n/***************************************************************************\n    A document class that holds a stream and is naturally displayed by the\n    hex editor (DCH).  Used for the clipboard.\n***************************************************************************/\ntypedef class DHEX *PDHEX;\n#define DHEX_PAR DOCB\n#define kclsDHEX 'DHEX'\nclass DHEX : public DHEX_PAR\n{\n    RTCLASS_DEC\n    ASSERT\n    MARKMEM\n\n  protected:\n    BSF _bsf;\n\n    DHEX(PDOCB pdocb = pvNil, ulong grfdoc = fdocNil) : DHEX_PAR(pdocb, grfdoc)\n    {\n    }\n\n  public:\n    static PDHEX PdhexNew(void);\n\n    PBSF Pbsf(void)\n    {\n        return &_bsf;\n    }\n\n    virtual PDDG PddgNew(PGCB pgcb);\n};\n\nRTCLASS(DCH)\nRTCLASS(DOCH)\nRTCLASS(DHEX)\n\n/***************************************************************************\n    Static method to create a new text stream document to be displayed\n    by the hex editor.\n***************************************************************************/\nPDHEX DHEX::PdhexNew(void)\n{\n    PDHEX pdhex;\n\n    if (pvNil == (pdhex = NewObj DHEX()))\n        return pvNil;\n\n    return pdhex;\n}\n\n/***************************************************************************\n    Create a new DCH displaying this stream.\n***************************************************************************/\nPDDG DHEX::PddgNew(PGCB pgcb)\n{\n    return DCH::PdchNew(this, &_bsf, fFalse, pgcb);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a DHEX.\n***************************************************************************/\nvoid DHEX::AssertValid(ulong grf)\n{\n    DHEX_PAR::AssertValid(0);\n    AssertPo(&_bsf, 0);\n}\n\n/***************************************************************************\n    Mark memory for the DHEX.\n***************************************************************************/\nvoid DHEX::MarkMem(void)\n{\n    AssertValid(0);\n    DHEX_PAR::MarkMem();\n    MarkMemObj(&_bsf);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for the DCH.\n***************************************************************************/\nDCH::DCH(PDOCB pdocb, PBSF pbsf, bool fFixed, PGCB pgcb) : DCLB(pdocb, pgcb)\n{\n    _pbsf = pbsf;\n    _cbLine = kcbMaxLineDch;\n    _dypHeader = _dypLine + 1;\n    _fFixed = FPure(fFixed);\n}\n\n/***************************************************************************\n    Static method to create a new DCH.\n***************************************************************************/\nPDCH DCH::PdchNew(PDOCB pdocb, PBSF pbsf, bool fFixed, PGCB pgcb)\n{\n    PDCH pdch;\n\n    if (pvNil == (pdch = NewObj DCH(pdocb, pbsf, fFixed, pgcb)))\n        return pvNil;\n\n    if (!pdch->_FInit())\n    {\n        ReleasePpo(&pdch);\n        return pvNil;\n    }\n    pdch->Activate(fTrue);\n\n    AssertPo(pdch, 0);\n    return pdch;\n}\n\n/***************************************************************************\n    We're being activated or deactivated, invert the sel.\n***************************************************************************/\nvoid DCH::_Activate(bool fActive)\n{\n    AssertThis(0);\n    RC rc;\n\n    DDG::_Activate(fActive);\n    GetRc(&rc, cooLocal);\n    rc.ypBottom = _dypHeader;\n    InvalRc(&rc);\n    _SwitchSel(fActive);\n}\n\n/***************************************************************************\n    Draw the Hex doc in the port.\n***************************************************************************/\nvoid DCH::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    STN stn;\n    byte rgb[kcbMaxLineDch];\n    RC rc, rcSrc;\n    long xp, yp, cb, ib, cbT, ibT;\n    byte bT;\n\n    pgnv->ClipRc(prcClip);\n    pgnv->GetRcSrc(&rcSrc);\n    pgnv->SetOnn(_onn);\n\n    if (prcClip->ypTop < _dypHeader)\n        _DrawHeader(pgnv);\n\n    Assert(_cbLine <= size(rgb), \"lines too long\");\n    cb = _pbsf->IbMac();\n    xp = _XpFromIch(0);\n    ib = LwMul(_cbLine, _LnFromYp(LwMax(_dypHeader, prcClip->ypTop)));\n    yp = _YpFromIb(ib);\n    rc.xpLeft = _XpFromCb(_cbLine, fFalse);\n    rc.xpRight = prcClip->xpRight;\n    rc.ypTop = yp;\n    rc.ypBottom = prcClip->ypBottom;\n    pgnv->FillRc(&rc, kacrWhite);\n    if (xp > 0)\n    {\n        // erase to the left of the text\n        rc.xpLeft = 0;\n        rc.xpRight = xp;\n        pgnv->FillRc(&rc, kacrWhite);\n    }\n\n    for (; ib < cb && yp < prcClip->ypBottom; ib += _cbLine)\n    {\n        cbT = LwMin(_cbLine, cb - ib);\n        _pbsf->FetchRgb(ib, cbT, rgb);\n\n        // first comes the address of the first byte of the line\n        stn.FFormatSz(PszLit(\"%08x \"), ib);\n\n        // now add the line's bytes in hex, with a space after every\n        // four bytes\n        for (ibT = 0; ibT < cbT; ibT++)\n        {\n            bT = rgb[ibT];\n            if ((ibT & 0x03) == 0)\n                stn.FAppendCh(kchSpace);\n            stn.FAppendCh(vrgchHex[(bT >> 4) & 0x0F]);\n            stn.FAppendCh(vrgchHex[bT & 0x0F]);\n        }\n        // pad the line with spaces\n        if (ibT < _cbLine)\n        {\n            ibT = _cbLine - ibT;\n            ibT = 2 * ibT + ibT / 4;\n            while (ibT-- > 0)\n                stn.FAppendCh(kchSpace);\n        }\n        stn.FAppendSz(PszLit(\"  \"));\n\n        // now comes the ascii characters.\n        for (ibT = 0; ibT < cbT; ibT++)\n        {\n            bT = rgb[ibT];\n            if (bT < 32 || bT == 0x7F)\n                bT = '?';\n            stn.FAppendCh((achar)bT);\n        }\n        // pad the line with spaces\n        while (ibT++ < _cbLine)\n            stn.FAppendCh(kchSpace);\n\n        pgnv->DrawStn(&stn, xp, yp, kacrBlack, kacrWhite);\n        yp += _dypLine;\n    }\n    if (yp < prcClip->ypBottom)\n    {\n        rc = rcSrc;\n        rc.ypTop = yp;\n        pgnv->FillRc(&rc, kacrWhite);\n    }\n\n    // draw the selection\n    if (_fSelOn)\n        _InvertSel(pgnv);\n}\n\n/***************************************************************************\n    Draw the header for the DCH.\n***************************************************************************/\nvoid DCH::_DrawHeader(PGNV pgnv)\n{\n    STN stn;\n    RC rc, rcSrc;\n\n    pgnv->SetOnn(_onn);\n    pgnv->GetRcSrc(&rcSrc);\n\n    // erase the first part of the line\n    rc.xpLeft = 0;\n    rc.xpRight = _XpFromIch(0);\n    rc.ypTop = 0;\n    rc.ypBottom = _dypLine;\n    pgnv->FillRc(&rc, kacrWhite);\n\n    // draw the text\n    stn.FFormatSz(PszLit(\"%08x\"), _pbsf->IbMac());\n    pgnv->DrawStn(&stn, rc.xpRight, 0, kacrBlack, kacrWhite);\n\n    // erase the rest of the line\n    rc.xpLeft = _XpFromIch(8);\n    rc.xpRight = rcSrc.xpRight;\n    pgnv->FillRc(&rc, kacrWhite);\n\n    // draw the _fHex Marker\n    rc.xpLeft = _XpFromCb(0, _fHexSel);\n    rc.xpRight = rc.xpLeft + rc.Dyp();\n    rc.Inset(rc.Dyp() / 6, rc.Dyp() / 6);\n    if (_fActive)\n        pgnv->FillRc(&rc, kacrBlack);\n    else\n        pgnv->FillRcApt(&rc, &vaptGray, kacrBlack, kacrWhite);\n\n    // draw the line seperating the header from the data\n    rc = rcSrc;\n    rc.ypTop = _dypHeader - 1;\n    rc.ypBottom = _dypHeader;\n    pgnv->FillRc(&rc, kacrBlack);\n}\n\n/***************************************************************************\n    Handle key input.\n***************************************************************************/\nbool DCH::FCmdKey(PCMD_KEY pcmd)\n{\n    AssertThis(0);\n    ulong grfcust;\n    long dibSel, dibDel, ibLim;\n    long cact;\n    CMD cmd;\n    byte rgb[64], bT;\n    bool fRight = fFalse;\n\n    // keep fetching characters until we get a cursor key, delete key or\n    // until the buffer is full.\n    dibSel = 0;\n    dibDel = 0;\n    ibLim = 0;\n    do\n    {\n        switch (pcmd->vk)\n        {\n        case kvkHome:\n            dibSel = -_pbsf->IbMac() - ibLim - 1;\n            break;\n        case kvkEnd:\n            dibSel = _pbsf->IbMac() + ibLim + 1;\n            break;\n        case kvkLeft:\n            dibSel = -1;\n            break;\n        case kvkRight:\n            dibSel = 1;\n            fRight = fTrue;\n            break;\n        case kvkUp:\n            dibSel = -_cbLine;\n            fRight = _fRightSel;\n            break;\n        case kvkDown:\n            dibSel = _cbLine;\n            fRight = _fRightSel;\n            break;\n\n        case kvkDelete:\n            if (!_fFixed)\n                dibDel = 1;\n            break;\n        case kvkBack:\n            if (!_fFixed)\n                dibDel = -1;\n            break;\n\n        default:\n            if (chNil == pcmd->ch)\n                break;\n            if (!_fHexSel)\n                bT = (byte)pcmd->ch;\n            else\n            {\n                // hex typing\n                if (FIn(pcmd->ch, '0', '9' + 1))\n                    bT = pcmd->ch - '0';\n                else if (FIn(pcmd->ch, 'A', 'F' + 1))\n                    bT = pcmd->ch - 'A' + 10;\n                else if (FIn(pcmd->ch, 'a', 'f' + 1))\n                    bT = pcmd->ch - 'a' + 10;\n                else\n                    break;\n            }\n            for (cact = 0; cact < pcmd->cact && ibLim < size(rgb); cact++)\n                rgb[ibLim++] = bT;\n            break;\n        }\n\n        grfcust = pcmd->grfcust;\n        pcmd = (PCMD_KEY)&cmd;\n    } while (0 == dibSel && 0 == dibDel && ibLim < size(rgb) && vpcex->FGetNextKey(&cmd));\n\n    if (ibLim > 0)\n    {\n        // have some characters to insert\n        if (!_fHexSel)\n        {\n            // just straight characters to insert\n            _FReplace(rgb, ibLim, _ibAnchor, _ibOther);\n        }\n        else\n        {\n            // hex typing\n            byte bT;\n            long ibSrc, ibDst;\n            long ibAnchor = _ibAnchor;\n\n            if (_fHalfSel && ibAnchor > 0)\n            {\n                // complete the byte\n                _pbsf->FetchRgb(--ibAnchor, 1, &bT);\n                rgb[0] = (bT & 0xF0) | (rgb[0] & 0x0F);\n                ibSrc = 1;\n            }\n            else\n                ibSrc = 0;\n\n            for (ibDst = ibSrc; ibSrc + 1 < ibLim; ibSrc += 2)\n                rgb[ibDst++] = (rgb[ibSrc] << 4) | (rgb[ibSrc + 1] & 0x0F);\n\n            if (ibSrc < ibLim)\n            {\n                Assert(ibSrc + 1 == ibLim, 0);\n                rgb[ibDst++] = rgb[ibSrc] << 4;\n            }\n\n            _FReplace(rgb, ibDst, ibAnchor, _ibOther, ibSrc < ibLim);\n        }\n    }\n\n    if (dibSel != 0)\n    {\n        // move the selection\n        if (grfcust & fcustShift)\n        {\n            // extend selection\n            _SetSel(_ibAnchor, _ibOther + dibSel, fRight);\n            _ShowSel();\n        }\n        else\n        {\n            long ibOther = _ibOther;\n            long ibAnchor = _ibAnchor;\n\n            if (_fHalfSel)\n            {\n                if (dibSel < 0)\n                {\n                    ibAnchor--;\n                    fRight = fFalse;\n                }\n                else\n                    fRight = fTrue;\n            }\n            else if (ibAnchor == ibOther)\n                ibAnchor += dibSel;\n            else if ((dibSel > 0) != (ibAnchor > ibOther))\n            {\n                ibAnchor = ibOther;\n                fRight = dibSel > 0;\n            }\n            _SetSel(ibAnchor, ibAnchor, fRight);\n            _ShowSel();\n        }\n    }\n    else if (dibDel != 0)\n    {\n        if (_ibAnchor != _ibOther)\n            dibDel = _ibOther - _ibAnchor;\n        else\n            dibDel = LwBound(_ibAnchor + dibDel, 0, _pbsf->IbMac() + 1) - _ibAnchor;\n        if (dibDel != 0)\n            _FReplace(pvNil, 0, _ibAnchor, _ibAnchor + dibDel);\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Replaces the bytes between ib1 and ib2 with the given bytes.\n***************************************************************************/\nbool DCH::_FReplace(byte *prgb, long cb, long ib1, long ib2, bool fHalfSel)\n{\n    _SwitchSel(fFalse);\n    SortLw(&ib1, &ib2);\n    if (_fFixed)\n    {\n        cb = LwMin(cb, _pbsf->IbMac() - ib1);\n        ib2 = ib1 + cb;\n    }\n    if (!_pbsf->FReplace(prgb, cb, ib1, ib2 - ib1))\n        return fFalse;\n\n    _InvalAllDch(ib1, cb, ib2 - ib1);\n    ib1 += cb;\n    if (fHalfSel)\n        _SetHalfSel(ib1);\n    else\n        _SetSel(ib1, ib1, fFalse /*REVIEW shonk*/);\n    _ShowSel();\n    return fTrue;\n}\n\n/***************************************************************************\n    Invalidate all DCHs on this byte stream.  Also dirties the document.\n    Should be called by any code that edits the document.\n***************************************************************************/\nvoid DCH::_InvalAllDch(long ib, long cbIns, long cbDel)\n{\n    AssertThis(0);\n    long ipddg;\n    PDDG pddg;\n\n    // mark the document dirty\n    _pdocb->SetDirty();\n\n    // inform the DCDs\n    for (ipddg = 0; pvNil != (pddg = _pdocb->PddgGet(ipddg)); ipddg++)\n    {\n        if (pddg->FIs(kclsDCH))\n            ((PDCH)pddg)->_InvalIb(ib, cbIns, cbDel);\n    }\n}\n\n/***************************************************************************\n    Invalidate the display from ib to the end of the display.  If we're\n    the active DCH, also redraw.\n***************************************************************************/\nvoid DCH::_InvalIb(long ib, long cbIns, long cbDel)\n{\n    AssertThis(0);\n    Assert(!_fSelOn, \"why is the sel on during an invalidation?\");\n    RC rc;\n    long ibAnchor, ibOther;\n\n    // adjust the sel\n    ibAnchor = _ibAnchor;\n    ibOther = _ibOther;\n    FAdjustIv(&ibAnchor, ib, cbIns, cbDel);\n    FAdjustIv(&ibOther, ib, cbIns, cbDel);\n    if (ibAnchor != _ibAnchor || ibOther != _ibOther)\n        _SetSel(ibAnchor, ibOther, _fRightSel);\n\n    // caclculate the invalid rectangle\n    GetRc(&rc, cooLocal);\n    rc.ypTop = _YpFromIb(ib);\n    if (cbIns == cbDel)\n        rc.ypBottom = rc.ypTop + _dypLine;\n\n    if (rc.FEmpty())\n        return;\n\n    if (_fActive)\n    {\n        ValidRc(&rc, kginDraw);\n        InvalRc(&rc, kginDraw);\n    }\n    else\n        InvalRc(&rc);\n\n    if (cbIns != cbDel)\n    {\n        // invalidate the length\n        GetRc(&rc, cooLocal);\n        rc.xpLeft = _XpFromIch(0);\n        rc.xpRight = _XpFromIch(8);\n        rc.ypTop = 0;\n        rc.ypBottom = _dypHeader;\n        InvalRc(&rc);\n    }\n}\n\n/***************************************************************************\n    Turn the selection on or off.\n***************************************************************************/\nvoid DCH::_SwitchSel(bool fOn)\n{\n    if (FPure(fOn) != FPure(_fSelOn))\n    {\n        GNV gnv(this);\n        _InvertSel(&gnv);\n        _fSelOn = FPure(fOn);\n    }\n}\n\n/***************************************************************************\n    Make sure the ibOther of the selection is visible.  If possible, show\n    both ends of the selection.\n***************************************************************************/\nvoid DCH::_ShowSel(void)\n{\n    long ln, lnHope, cln, dscv;\n    RC rc;\n\n    // find the line we definitely need to show\n    ln = _ibOther / _cbLine;\n    if (_ibOther % _cbLine == 0 && ln > 0)\n    {\n        // may have to adjust ln down by one\n        if (_ibAnchor < _ibOther || _ibAnchor == _ibOther && _fRightSel)\n            ln--;\n    }\n\n    // find the other end of the selection - which we hope to be able to show\n    lnHope = _ibAnchor / _cbLine;\n\n    _GetContent(&rc);\n    cln = LwMax(1, rc.Dyp() / _dypLine);\n    if (LwAbs(ln - lnHope) >= cln)\n        lnHope = ln; // can't show both\n\n    if (FIn(ln, _scvVert, _scvVert + cln) && FIn(lnHope, _scvVert, _scvVert + cln))\n    {\n        // both are showing\n        return;\n    }\n\n    Assert(LwAbs(lnHope - ln) < cln, \"ln and lnHope too far apart\");\n    SortLw(&ln, &lnHope);\n    if (ln < _scvVert)\n        dscv = ln - _scvVert;\n    else\n    {\n        dscv = lnHope - _scvVert - cln + 1;\n        Assert(dscv > 0, \"bad dscv (bad logic above)\");\n    }\n    _Scroll(scaNil, scaToVal, 0, _scvVert + dscv);\n}\n\n/***************************************************************************\n    Invert the selection.  Doesn't touch _fSelOn.\n***************************************************************************/\nvoid DCH::_InvertSel(PGNV pgnv)\n{\n    Assert(!_fFixed || _ibAnchor == _ibOther, \"non-ins sel in fixed\");\n    long cb;\n    RC rcClip;\n    RC rc, rcT;\n\n    _GetContent(&rcClip);\n    if (_fFixed && _pbsf->IbMac() > 0 && !_fHalfSel)\n    {\n        rc.xpLeft = _XpFromIb(_ibAnchor, fTrue);\n        rc.xpRight = rc.xpLeft + 2 * _dxpChar;\n        rc.ypTop = _YpFromIb(_ibAnchor);\n        rc.ypBottom = rc.ypTop + _dypLine;\n        if (rcT.FIntersect(&rc, &rcClip))\n            pgnv->HiliteRc(&rcT, kacrWhite);\n\n        rc.xpLeft = _XpFromIb(_ibAnchor, fFalse);\n        rc.xpRight = rc.xpLeft + _dxpChar;\n        if (rcT.FIntersect(&rc, &rcClip))\n            pgnv->HiliteRc(&rcT, kacrWhite);\n    }\n    else if (_ibAnchor == _ibOther)\n    {\n        // insertion or half sel\n        Assert(!_fHalfSel || _fRightSel, \"_fHalfSel set but not _fRightSel\");\n        cb = _ibAnchor % _cbLine;\n        if (_fRightSel && cb == 0 && _ibAnchor > 0)\n        {\n            rc.ypTop = _YpFromIb(_ibAnchor - 1);\n            cb = _cbLine;\n        }\n        else\n            rc.ypTop = _YpFromIb(_ibAnchor);\n        rc.ypBottom = rc.ypTop + _dypLine;\n\n        // do the hex sel\n        rc.xpLeft = _XpFromCb(cb, fTrue, _fRightSel);\n        if (_fHalfSel && _ibAnchor > 0)\n        {\n            rc.xpRight = rc.xpLeft;\n            rc.xpLeft -= _dxpChar;\n            if (rcT.FIntersect(&rc, &rcClip))\n                pgnv->HiliteRc(&rcT, kacrWhite);\n        }\n        else\n        {\n            rc.xpRight = --rc.xpLeft + 2;\n            if (rcT.FIntersect(&rc, &rcClip))\n                pgnv->FillRc(&rcT, kacrInvert);\n        }\n\n        // do the ascii sel\n        rc.xpLeft = _XpFromCb(cb, fFalse) - 1;\n        rc.xpRight = rc.xpLeft + 2;\n        if (rcT.FIntersect(&rc, &rcClip))\n            pgnv->FillRc(&rcT, kacrInvert);\n    }\n    else\n    {\n        _InvertIbRange(pgnv, _ibAnchor, _ibOther, fTrue);\n        _InvertIbRange(pgnv, _ibAnchor, _ibOther, fFalse);\n    }\n}\n\n/***************************************************************************\n    Inverts a range on screen.  Does not mark insertion bars or half sels.\n***************************************************************************/\nvoid DCH::_InvertIbRange(PGNV pgnv, long ib1, long ib2, bool fHex)\n{\n    long ibMin, ibMac;\n    long xp2, yp2;\n    RC rc, rcT, rcClip;\n\n    ibMin = _scvVert * _cbLine;\n    ibMac = _pbsf->IbMac();\n    ib1 = LwBound(ib1, ibMin, ibMac + 1);\n    ib2 = LwBound(ib2, ibMin, ibMac + 1);\n\n    if (ib1 == ib2)\n        return;\n    SortLw(&ib1, &ib2);\n\n    _GetContent(&rcClip);\n    rc.xpLeft = _XpFromIb(ib1, fHex);\n    rc.ypTop = _YpFromIb(ib1);\n    xp2 = _XpFromIb(ib2, fHex);\n    yp2 = _YpFromIb(ib2);\n\n    rc.ypBottom = rc.ypTop + _dypLine;\n    if (yp2 == rc.ypTop)\n    {\n        // only one line involved\n        rc.xpRight = xp2;\n        if (rcT.FIntersect(&rc, &rcClip))\n            pgnv->HiliteRc(&rcT, kacrWhite);\n        return;\n    }\n\n    // invert the sel on the first line\n    rc.xpRight = _XpFromCb(_cbLine, fHex);\n    if (rcT.FIntersect(&rc, &rcClip))\n        pgnv->HiliteRc(&rcT, kacrWhite);\n\n    // invert the main rectangular block\n    rc.xpLeft = _XpFromCb(0, fHex);\n    rc.ypTop += _dypLine;\n    rc.ypBottom = yp2;\n    if (rcT.FIntersect(&rc, &rcClip))\n        pgnv->HiliteRc(&rcT, kacrWhite);\n\n    // invert the last line\n    rc.ypTop = yp2;\n    rc.ypBottom = yp2 + _dypLine;\n    rc.xpRight = xp2;\n    if (rcT.FIntersect(&rc, &rcClip))\n        pgnv->HiliteRc(&rcT, kacrWhite);\n}\n\n/***************************************************************************\n    Select the second half of the byte before ib.\n***************************************************************************/\nvoid DCH::_SetHalfSel(long ib)\n{\n    ib = LwBound(ib, 0, _pbsf->IbMac() + 1);\n    if (ib == 0)\n    {\n        _SetSel(ib, ib, fFalse);\n        return;\n    }\n\n    GNV gnv(this);\n    if (_fSelOn)\n    {\n        // turn off the sel\n        _InvertSel(&gnv);\n        _fSelOn = fFalse;\n    }\n    _ibAnchor = _ibOther = ib;\n    _fHalfSel = fTrue;\n    _fRightSel = fTrue;\n    if (_fActive)\n    {\n        _InvertSel(&gnv);\n        _fSelOn = fTrue;\n    }\n}\n\n/***************************************************************************\n    Set the selection.  fRight is ignored for non-insertion bar selections.\n***************************************************************************/\nvoid DCH::_SetSel(long ibAnchor, long ibOther, bool fRight)\n{\n    long ibMac = _pbsf->IbMac();\n    GNV gnv(this);\n\n    if (_fFixed && ibMac > 0)\n    {\n        ibOther = ibAnchor = LwBound(ibOther, 0, ibMac);\n        fRight = fFalse;\n    }\n    else\n    {\n        ibAnchor = LwBound(ibAnchor, 0, ibMac + 1);\n        ibOther = LwBound(ibOther, 0, ibMac + 1);\n        if (ibAnchor == ibOther)\n        {\n            if (fRight && ibAnchor == 0)\n                fRight = fFalse;\n            else if (!fRight && ibAnchor == ibMac)\n                fRight = fTrue;\n        }\n        else\n            fRight = fFalse;\n    }\n\n    if (!_fHalfSel && ibAnchor == _ibAnchor && ibOther == _ibOther && FPure(fRight) == FPure(_fRightSel))\n    {\n        goto LDrawSel;\n    }\n\n    if (_fSelOn)\n    {\n        if (_ibAnchor != ibAnchor || _ibAnchor == _ibOther || ibAnchor == ibOther)\n        {\n            _InvertSel(&gnv);\n            _fSelOn = fFalse;\n        }\n        else\n        {\n            // they have the same anchor and neither is an insertion\n            _InvertIbRange(&gnv, _ibOther, ibOther, fTrue);\n            _InvertIbRange(&gnv, _ibOther, ibOther, fFalse);\n        }\n    }\n\n    _ibAnchor = ibAnchor;\n    _ibOther = ibOther;\n    _fRightSel = FPure(fRight);\n    _fHalfSel = fFalse;\n\nLDrawSel:\n    if (!_fSelOn && _fActive)\n    {\n        _InvertSel(&gnv);\n        _fSelOn = fTrue;\n    }\n}\n\n/***************************************************************************\n    Changes the selection type from hex to ascii or vice versa.\n***************************************************************************/\nvoid DCH::_SetHexSel(bool fHex)\n{\n    if (FPure(fHex) == FPure(_fHexSel))\n        return;\n    _fHexSel = FPure(fHex);\n\n    GNV gnv(this);\n    _DrawHeader(&gnv);\n}\n\n/***************************************************************************\n    Find the column for the given horizontal byte position.  cb is the number\n    of bytes in from the left edge.  fHex indicates whether we want the\n    position in the hex area or the ascii area.  fNoTrailSpace is ignored if\n    fHex is false.  If fHex is true, fNoTrailSpace indicates whether a\n    trailing space should be included (if the cb is divisible by 4).\n***************************************************************************/\nlong DCH::_IchFromCb(long cb, bool fHex, bool fNoTrailSpace)\n{\n    AssertIn(cb, 0, _cbLine + 1);\n\n    // skip over the address\n    long ich = 10;\n\n    if (fHex)\n    {\n        // account for the spaces every four hex digits\n        ich += 2 * cb + cb / 4;\n        if (fNoTrailSpace && (cb % 4) == 0 && cb > 0)\n            ich--;\n    }\n    else\n    {\n        // skip over the hex area\n        ich += 2 * _cbLine + _cbLine / 4 + 1 + cb;\n    }\n    return ich;\n}\n\n/***************************************************************************\n    Find the xp for the given byte.  fHex indicates whether we want the\n    postion in the hex area or the ascii area.\n***************************************************************************/\nlong DCH::_XpFromIb(long ib, bool fHex)\n{\n    return _XpFromIch(_IchFromCb(ib % _cbLine, fHex));\n}\n\n/***************************************************************************\n    Find the xp for the given horizontal byte position.  cb is the number\n    of bytes in from the left edge.  fHex indicates whether we want the\n    postion in the hex area or the ascii area.\n***************************************************************************/\nlong DCH::_XpFromCb(long cb, bool fHex, bool fNoTrailSpace)\n{\n    return _XpFromIch(_IchFromCb(cb, fHex, fNoTrailSpace));\n}\n\n/***************************************************************************\n    Find the yp for the given byte.\n***************************************************************************/\nlong DCH::_YpFromIb(long ib)\n{\n    AssertIn(ib, 0, kcbMax);\n    return LwMul((ib / _cbLine) - _scvVert, _dypLine) + _dypHeader;\n}\n\n/***************************************************************************\n    Finds the byte that the given point is over.  *ptHex is both input and\n    output.  If *ptHex is tMaybe on input, it will be set to tYes or tNo on\n    output (unless the point is not in the edit area of the DCH).  If *ptHex\n    is tYes or tNo on input, the ib is determined using *ptHex.\n***************************************************************************/\nlong DCH::_IbFromPt(long xp, long yp, tribool *ptHex, bool *pfRight)\n{\n    AssertVarMem(ptHex);\n    AssertNilOrVarMem(pfRight);\n\n    RC rc;\n    long cbMin, cbLim, cb, ib;\n    long xpFind, xpT;\n    bool fHex;\n\n    _GetContent(&rc);\n    if (!rc.FPtIn(xp, yp))\n        return ivNil;\n\n    if (*ptHex == tMaybe)\n    {\n        xpT = (_XpFromCb(_cbLine, fTrue, fTrue) + _XpFromCb(0, fFalse)) / 2;\n        if (xp <= xpT)\n            *ptHex = tYes;\n        else\n            *ptHex = tNo;\n    }\n\n    xpFind = xp - _dxpChar;\n    if (*ptHex == tYes)\n    {\n        if (_fFixed)\n            xpFind -= _dxpChar;\n        fHex = fTrue;\n    }\n    else\n    {\n        if (!_fFixed)\n            xpFind = xp - _dxpChar / 2;\n        fHex = fFalse;\n    }\n\n    for (cbMin = 0, cbLim = _cbLine; cbMin < cbLim;)\n    {\n        cb = (cbMin + cbLim) / 2;\n        xpT = _XpFromCb(cb, fHex);\n        if (xpT < xpFind)\n            cbMin = cb + 1;\n        else\n            cbLim = cb;\n    }\n    if (_fFixed && cbMin == _cbLine)\n        cbMin--;\n    ib = cbMin + _cbLine * _LnFromYp(yp);\n    ib = LwMin(ib, _pbsf->IbMac());\n    if (pvNil != pfRight)\n        *pfRight = cbMin == _cbLine;\n    return ib;\n}\n\n/***************************************************************************\n    Handle a mouse down in our content.\n***************************************************************************/\nvoid DCH::MouseDown(long xp, long yp, long cact, ulong grfcust)\n{\n    AssertThis(0);\n    tribool tHex;\n    bool fDown, fRight;\n    PT pt, ptT;\n    long ib;\n    RC rc;\n\n    // doing this before the activate avoids flashing the old selection\n    tHex = tMaybe;\n    ib = _IbFromPt(xp, yp, &tHex, &fRight);\n    if (ivNil != ib)\n        _SetSel((grfcust & fcustShift) ? _ibAnchor : ib, ib, fRight);\n\n    if (!_fActive)\n        Activate(fTrue);\n\n    if (ivNil == ib)\n        return;\n\n    _SetHexSel(tYes == tHex);\n\n    Clean();\n    _GetContent(&rc);\n    for (GetPtMouse(&pt, &fDown); fDown; GetPtMouse(&pt, &fDown))\n    {\n        if (!rc.FPtIn(pt.xp, pt.yp))\n        {\n            // do autoscroll\n            ptT = pt;\n            rc.PinPt(&pt);\n            _Scroll(scaToVal, scaToVal, _scvHorz + LwDivAway(ptT.xp - pt.xp, _dxpChar),\n                    _scvVert + LwDivAway(ptT.yp - pt.yp, _dypLine));\n        }\n\n        ib = _IbFromPt(pt.xp, pt.yp, &tHex, &fRight);\n        if (ivNil != ib)\n            _SetSel(_ibAnchor, ib, fRight);\n    }\n}\n\n/***************************************************************************\n    Return the maximum for the indicated scroll bar.\n***************************************************************************/\nlong DCH::_ScvMax(bool fVert)\n{\n    RC rc;\n\n    _GetContent(&rc);\n    return LwMax(0, fVert ? (_pbsf->IbMac() + _cbLine - 1) / _cbLine + 1 - rc.Dyp() / _dypLine\n                          : _IchFromCb(_cbLine, fFalse) + 2 - rc.Dxp() / _dxpChar);\n}\n\n/***************************************************************************\n    Copy the selection.\n***************************************************************************/\nbool DCH::_FCopySel(PDOCB *ppdocb)\n{\n    PDHEX pdhex;\n    long ib1, ib2;\n\n    ib1 = _ibOther;\n    ib2 = _fFixed ? _pbsf->IbMac() : _ibAnchor;\n    if (_ibOther == ib2)\n        return fFalse;\n\n    if (pvNil == ppdocb)\n        return fTrue;\n\n    SortLw(&ib1, &ib2);\n    if (pvNil != (pdhex = DHEX::PdhexNew()))\n    {\n        if (!pdhex->Pbsf()->FReplaceBsf(_pbsf, ib1, ib2 - ib1, 0, 0))\n            ReleasePpo(&pdhex);\n    }\n\n    *ppdocb = pdhex;\n    return pvNil != *ppdocb;\n}\n\n/***************************************************************************\n    Clear (delete) the selection.\n***************************************************************************/\nvoid DCH::_ClearSel(void)\n{\n    _FReplace(pvNil, 0, _ibAnchor, _ibOther, fFalse);\n}\n\n/***************************************************************************\n    Paste over the selection.\n***************************************************************************/\nbool DCH::_FPaste(PCLIP pclip, bool fDoIt, long cid)\n{\n    AssertThis(0);\n    AssertPo(pclip, 0);\n    long ib1, ib2, cb;\n    PDOCB pdocb;\n    PBSF pbsf;\n\n    if (cidPaste != cid)\n        return fFalse;\n\n    if (!pclip->FGetFormat(kclsDHEX) && !pclip->FGetFormat(kclsTXTB))\n        return fFalse;\n\n    if (!fDoIt)\n        return fTrue;\n\n    if (pclip->FGetFormat(kclsDHEX, &pdocb))\n    {\n        if (pvNil == (pbsf = ((PDHEX)pdocb)->Pbsf()) || 0 >= (cb = pbsf->IbMac()))\n        {\n            ReleasePpo(&pdocb);\n            return fFalse;\n        }\n    }\n    else if (pclip->FGetFormat(kclsTXTB, &pdocb))\n    {\n        if (pvNil == (pbsf = ((PTXTB)pdocb)->Pbsf()) || 0 >= (cb = pbsf->IbMac() - size(achar)))\n        {\n            ReleasePpo(&pdocb);\n            return fFalse;\n        }\n    }\n    else\n        return fFalse;\n\n    ib1 = _ibAnchor;\n    ib2 = _ibOther;\n    _SwitchSel(fFalse);\n    SortLw(&ib1, &ib2);\n    if (_fFixed)\n    {\n        cb = LwMin(cb, _pbsf->IbMac() - ib1);\n        ib2 = ib1 + cb;\n    }\n    if (!_pbsf->FReplaceBsf(pbsf, 0, cb, ib1, ib2 - ib1))\n    {\n        ReleasePpo(&pdocb);\n        return fFalse;\n    }\n\n    _InvalAllDch(ib1, cb, ib2 - ib1);\n    ib1 += cb;\n    _SetSel(ib1, ib1, fFalse /*REVIEW shonk*/);\n    _ShowSel();\n\n    ReleasePpo(&pdocb);\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of an object.\n***************************************************************************/\nvoid DCH::AssertValid(ulong grf)\n{\n    DCH_PAR::AssertValid(0);\n    AssertPo(_pbsf, 0);\n    AssertIn(_cbLine, 1, kcbMaxLineDch + 1);\n    AssertIn(_ibAnchor, 0, kcbMax);\n    AssertIn(_ibOther, 0, kcbMax);\n}\n\n/***************************************************************************\n    Mark memory for the DCH.\n***************************************************************************/\nvoid DCH::MarkMem(void)\n{\n    AssertValid(0);\n    DCH_PAR::MarkMem();\n    MarkMemObj(_pbsf);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for a chunk hex editing doc.\n***************************************************************************/\nDOCH::DOCH(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno) : DOCE(pdocb, pcfl, ctg, cno)\n{\n}\n\n/***************************************************************************\n    Creates a new hex editing doc based on the given chunk.  Asserts that\n    there are no open editing docs based on the chunk.\n***************************************************************************/\nPDOCH DOCH::PdochNew(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno)\n{\n    AssertPo(pdocb, 0);\n    AssertPo(pcfl, 0);\n\n    Assert(pvNil == DOCE::PdoceFromChunk(pdocb, pcfl, ctg, cno), \"DOCE already exists for the chunk\");\n    PDOCH pdoch;\n\n    if (pvNil == (pdoch = NewObj DOCH(pdocb, pcfl, ctg, cno)))\n        return pvNil;\n    if (!pdoch->_FInit())\n    {\n        ReleasePpo(&pdoch);\n        return pvNil;\n    }\n    AssertPo(pdoch, 0);\n    return pdoch;\n}\n\n/***************************************************************************\n    Initialize the stream from the given flo.\n***************************************************************************/\nbool DOCH::_FRead(PBLCK pblck)\n{\n    FLO flo;\n    bool fRet;\n\n    if (!pblck->FUnpackData())\n        return fFalse;\n\n    if (pvNil == (flo.pfil = FIL::PfilCreateTemp()))\n        return fFalse;\n    flo.fp = 0;\n    flo.cb = pblck->Cb();\n\n    if (!pblck->FWriteToFlo(&flo))\n    {\n        ReleasePpo(&flo.pfil);\n        return fFalse;\n    }\n    fRet = _bsf.FReplaceFlo(&flo, fFalse, 0, _bsf.IbMac());\n    ReleasePpo(&flo.pfil);\n\n    return fRet;\n}\n\n/***************************************************************************\n    Create a new DDG for the doc.\n***************************************************************************/\nPDDG DOCH::PddgNew(PGCB pgcb)\n{\n    AssertThis(0);\n    return DCH::PdchNew(this, &_bsf, fFalse, pgcb);\n}\n\n/***************************************************************************\n    Returns the length of the data on file\n***************************************************************************/\nlong DOCH::_CbOnFile(void)\n{\n    AssertThis(0);\n    return _bsf.IbMac();\n}\n\n/***************************************************************************\n    Writes the data and returns success/failure.\n***************************************************************************/\nbool DOCH::_FWrite(PBLCK pblck, bool fRedirect)\n{\n    AssertThis(0);\n    if (!_bsf.FWriteRgb(pblck))\n        return fFalse;\n    _FRead(pblck);\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of an object.\n***************************************************************************/\nvoid DOCH::AssertValid(ulong grf)\n{\n    DOCH_PAR::AssertValid(0);\n    AssertPo(&_bsf, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the DOCH.\n***************************************************************************/\nvoid DOCH::MarkMem(void)\n{\n    AssertThis(0);\n    DOCH_PAR::MarkMem();\n    MarkMemObj(&_bsf);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/tools/chmbmp.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/****************************************************************************\n\n    DOCMBMP methods.\n\n****************************************************************************/\n#include \"ched.h\"\nASSERTNAME\n\nRTCLASS(DOCMBMP)\nRTCLASS(DCMBMP)\n\n/****************************************************************************\n    Constructor for a MBMP document.\n****************************************************************************/\nDOCMBMP::DOCMBMP(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno) : DOCE(pdocb, pcfl, ctg, cno)\n{\n    _pmbmp = pvNil;\n}\n\n/****************************************************************************\n    Destructor for a MBMP document.\n****************************************************************************/\nDOCMBMP::~DOCMBMP(void)\n{\n    ReleasePpo(&_pmbmp);\n}\n\n/****************************************************************************\n    Static method to create a new MBMP document.\n****************************************************************************/\nPDOCMBMP DOCMBMP::PdocmbmpNew(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno)\n{\n    PDOCMBMP pdocmbmp;\n\n    if (pvNil == (pdocmbmp = NewObj DOCMBMP(pdocb, pcfl, ctg, cno)))\n        return pvNil;\n    if (!pdocmbmp->_FInit())\n    {\n        ReleasePpo(&pdocmbmp);\n        return pvNil;\n    }\n    AssertPo(pdocmbmp, 0);\n    return pdocmbmp;\n}\n\n/****************************************************************************\n    Create a new display gob for the MBMP document.\n****************************************************************************/\nPDDG DOCMBMP::PddgNew(PGCB pgcb)\n{\n    return DCMBMP::PdcmbmpNew(this, _pmbmp, pgcb);\n}\n\n/***************************************************************************\n    Return the size of the thing on file.\n***************************************************************************/\nlong DOCMBMP::_CbOnFile(void)\n{\n    return _pmbmp->CbOnFile();\n}\n\n/****************************************************************************\n    Write the data out.\n****************************************************************************/\nbool DOCMBMP::_FWrite(PBLCK pblck, bool fRedirect)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n\n    return _pmbmp->FWrite(pblck);\n}\n\n/*****************************************************************************\n    Read the MBMP.\n*****************************************************************************/\nbool DOCMBMP::_FRead(PBLCK pblck)\n{\n    Assert(pvNil == _pmbmp, \"losing existing MBMP\");\n    AssertPo(pblck, 0);\n\n    _pmbmp = MBMP::PmbmpRead(pblck);\n    return pvNil != _pmbmp;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a DOCMBMP.\n***************************************************************************/\nvoid DOCMBMP::AssertValid(ulong grf)\n{\n    DOCMBMP_PAR::AssertValid(0);\n    AssertPo(_pmbmp, 0);\n}\n\n/***************************************************************************\n    Mark memory for the DOCMBMP.\n***************************************************************************/\nvoid DOCMBMP::MarkMem(void)\n{\n    AssertValid(0);\n    DOCMBMP_PAR::MarkMem();\n    MarkMemObj(_pmbmp);\n}\n#endif // DEBUG\n\n/*****************************************************************************\n    Constructor for a pic display gob.\n*****************************************************************************/\nDCMBMP::DCMBMP(PDOCB pdocb, PMBMP pmbmp, PGCB pgcb) : DDG(pdocb, pgcb)\n{\n    _pmbmp = pmbmp;\n}\n\n/*****************************************************************************\n    Get the min-max for a DCMBMP.\n*****************************************************************************/\nvoid DCMBMP::GetMinMax(RC *prcMinMax)\n{\n    prcMinMax->Set(0, 0, kswMax, kswMax);\n}\n\n/*****************************************************************************\n    Static method to create a new DCMBMP.\n*****************************************************************************/\nPDCMBMP DCMBMP::PdcmbmpNew(PDOCB pdocb, PMBMP pmbmp, PGCB pgcb)\n{\n    PDCMBMP pdcmbmp;\n\n    if (pvNil == (pdcmbmp = NewObj DCMBMP(pdocb, pmbmp, pgcb)))\n        return pvNil;\n\n    if (!pdcmbmp->_FInit())\n    {\n        ReleasePpo(&pdcmbmp);\n        return pvNil;\n    }\n    pdcmbmp->Activate(fTrue);\n\n    AssertPo(pdcmbmp, 0);\n    return pdcmbmp;\n}\n\n/***************************************************************************\n    Draw the MBMP.\n***************************************************************************/\nvoid DCMBMP::Draw(PGNV pgnv, RC *prcClip)\n{\n    RC rcMbmp, rcDdg;\n\n    // retrieve appropriate rectangles\n    GetRc(&rcDdg, cooLocal);\n    _pmbmp->GetRc(&rcMbmp);\n    rcMbmp.CenterOnRc(&rcDdg);\n\n    // erase *prcClip\n    pgnv->FillRc(prcClip, kacrWhite);\n    pgnv->FillRcApt(&rcMbmp, &vaptLtGray, kacrLtGray, kacrWhite);\n\n    // draw mbmp in GPT\n    pgnv->DrawMbmp(_pmbmp, &rcMbmp);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a DCMBMP.\n***************************************************************************/\nvoid DCMBMP::AssertValid(ulong grf)\n{\n    DCMBMP_PAR::AssertValid(0);\n    AssertPo(_pmbmp, 0);\n}\n\n/***************************************************************************\n    Mark memory for the DCMBMP.\n***************************************************************************/\nvoid DCMBMP::MarkMem(void)\n{\n    AssertValid(0);\n    DCMBMP_PAR::MarkMem();\n    MarkMemObj(_pmbmp);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/tools/chmerge.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Tool to merge two or more chunky files.\n\n***************************************************************************/\n#include <stdio.h>\n#include \"util.h\"\nASSERTNAME\n\n/***************************************************************************\n    Main routine.  Returns non-zero iff there's an error.\n***************************************************************************/\nint __cdecl main(int cpszs, char *prgpszs[])\n{\n    schar chs;\n    STN stn;\n    FNI fniSrc, fniT;\n    CKI cki;\n    long icki;\n    CNO cnoDst;\n    PCFL pcflSrc;\n    bool fPreOrder = fFalse;\n    PCFL pcflMerge = pvNil;\n\n#ifdef UNICODE\n    fprintf(stderr,\n            \"\\nMicrosoft (R) Chunky File Merge Utility (Unicode; \" Debug(\"Debug; \") __DATE__ \"; \" __TIME__ \")\\n\");\n#else  //! UNICODE\n    fprintf(stderr, \"\\nMicrosoft (R) Chunky File Merge Utility (Ansi; \" Debug(\"Debug; \") __DATE__ \"; \" __TIME__ \")\\n\");\n#endif //! UNICODE\n    fprintf(stderr, \"Copyright (C) Microsoft Corp 1995. All rights reserved.\\n\\n\");\n\n    for (prgpszs++; --cpszs > 0; prgpszs++)\n    {\n        chs = (*prgpszs)[0];\n        if (chs == '/' || chs == '-')\n        {\n            // -r means final chunks should be layed out in subgraph pre-order\n            switch ((*prgpszs)[1])\n            {\n            case 'r':\n            case 'R':\n                fPreOrder = fTrue;\n                if (pvNil != pcflMerge)\n                {\n                    fprintf(stderr, \"-r must come before any file names\");\n                    goto LUsage;\n                }\n\n                if (pvNil == (pcflMerge = CFL::PcflCreateTemp()))\n                    goto LFail;\n                break;\n\n            default:\n                goto LUsage;\n            }\n        }\n        else if (pvNil == pcflMerge)\n        {\n            // this is the first file name\n            stn.SetSzs(*prgpszs);\n            if (!fniSrc.FBuildFromPath(&stn))\n            {\n                fprintf(stderr, \"Error: Bad file name: %s\\n\\n\", *prgpszs);\n                goto LUsage;\n            }\n            if (pvNil == (pcflMerge = CFL::PcflOpen(&fniSrc, fcflNil)))\n            {\n                fprintf(stderr, \"Error: Couldn't open %s\\n\\n\", *prgpszs);\n                goto LUsage;\n            }\n            fniSrc.SetNil();\n        }\n        else\n        {\n            // open the file to merge into pcflMerge\n            stn.SetSzs(*prgpszs);\n            if (!fniT.FBuildFromPath(&stn))\n            {\n                fprintf(stderr, \"Error: Bad file name: %s\\n\\n\", *prgpszs);\n                goto LUsage;\n            }\n            if (fniSrc.Ftg() == ftgNil)\n            {\n                fniSrc = fniT;\n                continue;\n            }\n\n            // merge fniSrc into pcflMerge\n            if (pvNil == (pcflSrc = CFL::PcflOpen(&fniSrc, fcflNil)))\n            {\n                fprintf(stderr, \"Error: Couldn't open %s\\n\\n\", *prgpszs);\n                goto LUsage;\n            }\n            fniSrc = fniT;\n\n            for (icki = 0; pcflSrc->FGetCki(icki, &cki); icki++)\n            {\n                if (!pcflSrc->FLoner(cki.ctg, cki.cno))\n                    continue;\n                if (!pcflSrc->FCopy(cki.ctg, cki.cno, pcflMerge, &cnoDst))\n                {\n                    fprintf(stderr, \"Error: Copying chunk failed\\n\\n\");\n                    goto LFail;\n                }\n                if (cnoDst != cki.cno)\n                {\n                    fprintf(stderr, \"Error: Duplicate chunks: '%c%c%c%c', 0x%08X\\n\", B3Lw(cki.ctg), B2Lw(cki.ctg),\n                            B1Lw(cki.ctg), B0Lw(cki.ctg), cki.cno);\n                }\n            }\n            ReleasePpo(&pcflSrc);\n        }\n    }\n\n    if (fniSrc.Ftg() == ftgNil)\n    {\n        fprintf(stderr, \"Error: Not enough chunky files\\n\\n\");\n        goto LUsage;\n    }\n\n    if (fPreOrder)\n    {\n        FLO floSrc, floDst;\n\n        if (!pcflMerge->FSave('CHMR'))\n            goto LFail;\n        pcflMerge->GetFni(&fniT);\n        if (pvNil == (floSrc.pfil = FIL::PfilFromFni(&fniT)))\n        {\n            Bug(\"what happened?\");\n            goto LFail;\n        }\n        floSrc.fp = 0;\n        floSrc.cb = floSrc.pfil->FpMac();\n\n        if (pvNil == (floDst.pfil = FIL::PfilCreate(&fniSrc)))\n            goto LFail;\n        floDst.fp = 0;\n        floDst.cb = floSrc.cb;\n\n        if (!floSrc.FCopy(&floDst))\n        {\n            floDst.pfil->SetTemp(fTrue);\n            goto LFail;\n        }\n    }\n    else\n    {\n        // do a save as of the file that we merged into.\n        if (!pcflMerge->FSave('CHMR', &fniSrc))\n            goto LFail;\n    }\n\n    FIL::ShutDown();\n    return 0;\n\nLUsage:\n    // print usage\n    fprintf(stderr, \"%s\", \"Usage:  chmerge [-r] <srcFile0> [<srcFile1> ...] <dstFile>\\n\\n\");\n\nLFail:\n    FIL::ShutDown();\n    fprintf(stderr, \"Something failed\\n\");\n    return 1;\n}\n\n#ifdef DEBUG\nbool _fEnableWarnings = fTrue;\n\n/***************************************************************************\n    Warning proc called by Warn() macro\n***************************************************************************/\nvoid WarnProc(PSZS pszsFile, long lwLine, PSZS pszsMessage)\n{\n    if (_fEnableWarnings)\n    {\n        fprintf(stderr, \"%s(%ld) : warning\", pszsFile, lwLine);\n        if (pszsMessage != pvNil)\n        {\n            fprintf(stderr, \": %s\", pszsMessage);\n        }\n        fprintf(stderr, \"\\n\");\n    }\n}\n\n/***************************************************************************\n    Returning true breaks into the debugger.\n***************************************************************************/\nbool FAssertProc(PSZS pszsFile, long lwLine, PSZS pszsMessage, void *pv, long cb)\n{\n    fprintf(stderr, \"An assert occurred: \\n\");\n    if (pszsMessage != pvNil)\n        fprintf(stderr, \"   Message: %s\\n\", pszsMessage);\n    if (pv != pvNil)\n    {\n        fprintf(stderr, \"   Address %x\\n\", pv);\n        if (cb != 0)\n        {\n            fprintf(stderr, \"   Value: \");\n            switch (cb)\n            {\n            default: {\n                byte *pb;\n                byte *pbLim;\n\n                for (pb = (byte *)pv, pbLim = pb + cb; pb < pbLim; pb++)\n                    fprintf(stderr, \"%02x\", (int)*pb);\n            }\n            break;\n\n            case 2:\n                fprintf(stderr, \"%04x\", (int)*(short *)pv);\n                break;\n\n            case 4:\n                fprintf(stderr, \"%08lx\", *(long *)pv);\n                break;\n            }\n            printf(\"\\n\");\n        }\n    }\n    fprintf(stderr, \"   File: %s\\n\", pszsFile);\n    fprintf(stderr, \"   Line: %ld\\n\", lwLine);\n\n    return fFalse;\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/tools/chomp.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    CHOMP.CPP\n    Main routine for Chomp, the chunky compiler\n\n***************************************************************************/\n#include \"chomp.h\"\nASSERTNAME\n\n/***************************************************************************\n    Main routine for the stand-alone chunky compiler.  Returns non-zero\n    iff there's an error.\n***************************************************************************/\nint __cdecl main(int cpszs, char *prgpszs[])\n{\n    FNI fniSrc, fniDst;\n    PCFL pcfl;\n    STN stn;\n    char *pszs;\n    MSSIO mssioError(stderr);\n    bool fCompile = fTrue;\n\n#ifdef UNICODE\n    fprintf(stderr, \"\\nMicrosoft (R) Chunky File Compiler (Unicode; \" Debug(\"Debug; \") __DATE__ \"; \" __TIME__ \")\\n\");\n#else  //! UNICODE\n    fprintf(stderr, \"\\nMicrosoft (R) Chunky File Compiler (Ansi; \" Debug(\"Debug; \") __DATE__ \"; \" __TIME__ \")\\n\");\n#endif //! UNICODE\n    fprintf(stderr, \"Copyright (C) Microsoft Corp 1995. All rights reserved.\\n\\n\");\n\n    for (prgpszs++; --cpszs > 0; prgpszs++)\n    {\n        pszs = *prgpszs;\n        if (pszs[0] == '-' || pszs[0] == '/')\n        {\n            // option\n            switch (pszs[1])\n            {\n            case 'c':\n            case 'C':\n                fCompile = fTrue;\n                break;\n\n            case 'd':\n            case 'D':\n                fCompile = fFalse;\n                break;\n\n            default:\n                fprintf(stderr, \"Bad command line option\\n\\n\");\n                goto LUsage;\n            }\n\n            if (pszs[2] != 0)\n            {\n                fprintf(stderr, \"Bad command line option\\n\\n\");\n                goto LUsage;\n            }\n            continue;\n        }\n\n        if (fniDst.Ftg() != ftgNil)\n        {\n            fprintf(stderr, \"Too many files specified\\n\\n\");\n            goto LUsage;\n        }\n        stn.SetSzs(pszs);\n        if (!fniDst.FBuildFromPath(&stn))\n        {\n            fprintf(stderr, \"Bad file name\\n\\n\");\n            goto LUsage;\n        }\n        if (fniSrc.Ftg() == ftgNil)\n        {\n            fniSrc = fniDst;\n            fniDst.SetNil();\n        }\n    }\n\n    if (fniSrc.Ftg() == ftgNil)\n    {\n        fprintf(stderr, \"Missing source file name\\n\\n\");\n        goto LUsage;\n    }\n\n    if (fCompile)\n    {\n        CHCM chcm;\n\n        if (fniDst.Ftg() == ftgNil)\n        {\n            fprintf(stderr, \"Missing destination file name\\n\\n\");\n            goto LUsage;\n        }\n        pcfl = chcm.PcflCompile(&fniSrc, &fniDst, &mssioError);\n        FIL::ShutDown();\n        return pvNil == pcfl;\n    }\n    else\n    {\n        bool fRet;\n        MSSIO mssioDump(stdout);\n        MSFIL msfilDump;\n        CHDC chdc;\n\n        if (pvNil == (pcfl = CFL::PcflOpen(&fniSrc, fcflNil)))\n        {\n            fprintf(stderr, \"Couldn't open source file as a chunky file\\n\\n\");\n            goto LUsage;\n        }\n\n        if (fniDst.Ftg() != ftgNil)\n        {\n            PFIL pfil;\n\n            if (pvNil == (pfil = FIL::PfilCreate(&fniDst)))\n            {\n                fprintf(stderr, \"Couldn't create destination file\\n\\n\");\n                FIL::ShutDown();\n                return 1;\n            }\n            msfilDump.SetFile(pfil);\n        }\n\n        fRet = chdc.FDecompile(pcfl, fniDst.Ftg() == ftgNil ? (PMSNK)&mssioDump : (PMSNK)&msfilDump, &mssioError);\n        ReleasePpo(&pcfl);\n        FIL::ShutDown();\n        return !fRet;\n    }\n\n    // print usage\nLUsage:\n    fprintf(stderr, \"%s\",\n            \"Usage:\\n\"\n            \"   chomp [/c] <srcTextFile> <dstChunkFile>  - compile chunky file\\n\"\n            \"   chomp /d <srcChunkFile> [<dstTextFile>]  - decompile chunky file\\n\\n\");\n\n    FIL::ShutDown();\n    return 1;\n}\n\n#ifdef DEBUG\nbool _fEnableWarnings = fTrue;\n\n/***************************************************************************\n    Warning proc called by Warn() macro\n***************************************************************************/\nvoid WarnProc(PSZS pszsFile, long lwLine, PSZS pszsMessage)\n{\n    if (_fEnableWarnings)\n    {\n        fprintf(stderr, \"%s(%ld) : warning\", pszsFile, lwLine);\n        if (pszsMessage != pvNil)\n        {\n            fprintf(stderr, \": %s\", pszsMessage);\n        }\n        fprintf(stderr, \"\\n\");\n    }\n}\n\n/***************************************************************************\n    Returning true breaks into the debugger.\n***************************************************************************/\nbool FAssertProc(PSZS pszsFile, long lwLine, PSZS pszsMessage, void *pv, long cb)\n{\n    fprintf(stderr, \"An assert occurred: \\n\");\n    if (pszsMessage != pvNil)\n        fprintf(stderr, \"   Message: %s\\n\", pszsMessage);\n    if (pv != pvNil)\n    {\n        fprintf(stderr, \"   Address %x\\n\", pv);\n        if (cb != 0)\n        {\n            fprintf(stderr, \"   Value: \");\n            switch (cb)\n            {\n            default: {\n                byte *pb;\n                byte *pbLim;\n\n                for (pb = (byte *)pv, pbLim = pb + cb; pb < pbLim; pb++)\n                    fprintf(stderr, \"%02x\", (int)*pb);\n            }\n            break;\n\n            case 2:\n                fprintf(stderr, \"%04x\", (int)*(short *)pv);\n                break;\n\n            case 4:\n                fprintf(stderr, \"%08lx\", *(long *)pv);\n                break;\n            }\n            printf(\"\\n\");\n        }\n    }\n    fprintf(stderr, \"   File: %s\\n\", pszsFile);\n    fprintf(stderr, \"   Line: %ld\\n\", lwLine);\n\n    return fFalse;\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/tools/chomp.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    CHOMP.H\n    Header file for Chomp, the chunky compiler\n\n***************************************************************************/\n#ifndef CHOMP_H\n#define CHOMP_H\n\n#include <stdio.h>\n#include \"frame.h\"\n#include \"mssio.h\"\n\n#endif //! CHOMP_H\n"
  },
  {
    "path": "kauai/tools/chpic.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    DOCPIC methods.\n\n***************************************************************************/\n#include \"ched.h\"\nASSERTNAME\n\nRTCLASS(DOCPIC)\nRTCLASS(DCPIC)\n\n/***************************************************************************\n    Constructor for picture document.\n***************************************************************************/\nDOCPIC::DOCPIC(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno) : DOCE(pdocb, pcfl, ctg, cno)\n{\n    _ppic = pvNil;\n}\n\n/***************************************************************************\n    Destructor for picture document.\n***************************************************************************/\nDOCPIC::~DOCPIC(void)\n{\n    ReleasePpo(&_ppic);\n}\n\n/***************************************************************************\n    Static method to create a new picture document.\n***************************************************************************/\nPDOCPIC DOCPIC::PdocpicNew(PDOCB pdocb, PCFL pcfl, CTG ctg, CNO cno)\n{\n    DOCPIC *pdocpic;\n\n    if (pvNil == (pdocpic = NewObj DOCPIC(pdocb, pcfl, ctg, cno)))\n        return pvNil;\n    if (!pdocpic->_FInit())\n    {\n        ReleasePpo(&pdocpic);\n        return pvNil;\n    }\n    AssertPo(pdocpic, 0);\n    return pdocpic;\n}\n\n/***************************************************************************\n    Create a new display gob for the document.\n***************************************************************************/\nPDDG DOCPIC::PddgNew(PGCB pgcb)\n{\n    return DCPIC::PdcpicNew(this, _ppic, pgcb);\n}\n\n/***************************************************************************\n    Return the size of the thing on file.\n***************************************************************************/\nlong DOCPIC::_CbOnFile(void)\n{\n    return _ppic->CbOnFile();\n}\n\n/***************************************************************************\n    Write the data out.\n***************************************************************************/\nbool DOCPIC::_FWrite(PBLCK pblck, bool fRedirect)\n{\n    AssertThis(0);\n    AssertPo(pblck, 0);\n\n    return _ppic->FWrite(pblck);\n}\n\n/***************************************************************************\n    Read the PIC.\n***************************************************************************/\nbool DOCPIC::_FRead(PBLCK pblck)\n{\n    Assert(_ppic == pvNil, \"losing existing PIC\");\n    AssertPo(pblck, 0);\n\n    _ppic = PIC::PpicRead(pblck);\n    return _ppic != pvNil;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a DOCPIC.\n***************************************************************************/\nvoid DOCPIC::AssertValid(ulong grf)\n{\n    DOCPIC_PAR::AssertValid(0);\n    AssertPo(_ppic, 0);\n}\n\n/***************************************************************************\n    Mark memory for the DOCPIC.\n***************************************************************************/\nvoid DOCPIC::MarkMem(void)\n{\n    AssertValid(0);\n    DOCPIC_PAR::MarkMem();\n    MarkMemObj(_ppic);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for a pic display gob.\n***************************************************************************/\nDCPIC::DCPIC(PDOCB pdocb, PPIC ppic, PGCB pgcb) : DDG(pdocb, pgcb)\n{\n    _ppic = ppic;\n}\n\n/***************************************************************************\n    Get the min-max for a DCPIC.\n***************************************************************************/\nvoid DCPIC::GetMinMax(RC *prcMinMax)\n{\n    prcMinMax->Set(20, 20, kswMax, kswMax);\n}\n\n/***************************************************************************\n    Static method to create a new DCPIC.\n***************************************************************************/\nPDCPIC DCPIC::PdcpicNew(PDOCB pdocb, PPIC ppic, PGCB pgcb)\n{\n    PDCPIC pdcpic;\n\n    if (pvNil == (pdcpic = NewObj DCPIC(pdocb, ppic, pgcb)))\n        return pvNil;\n\n    if (!pdcpic->_FInit())\n    {\n        ReleasePpo(&pdcpic);\n        return pvNil;\n    }\n    pdcpic->Activate(fTrue);\n\n    AssertPo(pdcpic, 0);\n    return pdcpic;\n}\n\n/***************************************************************************\n    Draw the picture.\n***************************************************************************/\nvoid DCPIC::Draw(PGNV pgnv, RC *prcClip)\n{\n    RC rc, rcSrc;\n\n    pgnv->GetRcSrc(&rcSrc);\n    pgnv->FillRc(&rcSrc, kacrWhite);\n    _ppic->GetRc(&rc);\n    rcSrc.Inset(5, 5);\n    rc.StretchToRc(&rcSrc);\n    pgnv->DrawPic(_ppic, &rc);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a DCPIC.\n***************************************************************************/\nvoid DCPIC::AssertValid(ulong grf)\n{\n    DCPIC_PAR::AssertValid(0);\n    AssertPo(_ppic, 0);\n}\n\n/***************************************************************************\n    Mark memory for the DCPIC.\n***************************************************************************/\nvoid DCPIC::MarkMem(void)\n{\n    AssertValid(0);\n    DCPIC_PAR::MarkMem();\n    MarkMemObj(_ppic);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/tools/chtop.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Chunky help topic editor documents and their DDGs.\n\n***************************************************************************/\n#include \"chelp.h\"\nASSERTNAME\n\nRTCLASS(HEDO)\nRTCLASS(TSEL)\nRTCLASS(HEDG)\nRTCLASS(HETD)\nRTCLASS(HETG)\nRTCLASS(HTRU)\n\n#ifndef UNICODE\n#define SPELL\n#else // UNICODE\n#undef SPELL\n#endif // UNICODE\n\nBEGIN_CMD_MAP(HEDG, DDG)\nON_CID_GEN(cidDeleteTopic, &HEDG::FCmdDeleteTopic, &HEDG::FEnableHedgCmd)\nON_CID_GEN(cidEditTopic, &HEDG::FCmdEditTopic, &HEDG::FEnableHedgCmd)\nON_CID_GEN(cidNewTopic, &HEDG::FCmdNewTopic, pvNil)\nON_CID_GEN(cidExportText, &HEDG::FCmdExport, pvNil)\nON_CID_GEN(cidFind, &HEDG::FCmdFind, &HEDG::FEnableHedgCmd)\nON_CID_GEN(cidFindAgain, &HEDG::FCmdFind, &HEDG::FEnableHedgCmd)\nON_CID_GEN(cidPrint, &HEDG::FCmdPrint, &HEDG::FEnableHedgCmd)\nON_CID_GEN(cidSpellCheck, &HEDG::FCmdCheckSpelling, &HEDG::FEnableHedgCmd)\nON_CID_GEN(cidDumpText, &HEDG::FCmdDump, &HEDG::FEnableHedgCmd)\nEND_CMD_MAP_NIL()\n\nBEGIN_CMD_MAP(HETG, TXRG)\nON_CID_GEN(cidGroupText, &HETG::FCmdGroupText, &HETG::FEnableHetgCmd)\nON_CID_GEN(cidLineSpacing, &HETG::FCmdLineSpacing, pvNil)\nON_CID_GEN(cidFormatPicture, &HETG::FCmdFormatPicture, &HETG::FEnableHetgCmd)\nON_CID_GEN(cidFormatButton, &HETG::FCmdFormatButton, &HETG::FEnableHetgCmd)\nON_CID_GEN(cidFormatEdit, &HETG::FCmdFormatEdit, &HETG::FEnableHetgCmd)\nON_CID_GEN(cidInsertEdit, &HETG::FCmdInsertEdit, pvNil)\nON_CID_GEN(cidEditHtop, &HETG::FCmdEditHtop, pvNil)\nON_CID_GEN(cidNextTopic, &HETG::FCmdNextTopic, pvNil)\nON_CID_GEN(cidPrevTopic, &HETG::FCmdNextTopic, pvNil)\nON_CID_GEN(cidFind, &HETG::FCmdFind, pvNil)\nON_CID_GEN(cidFindAgain, &HETG::FCmdFind, &HETG::FEnableHetgCmd)\nON_CID_GEN(cidReplace, &HETG::FCmdFind, &HETG::FEnableHetgCmd)\nON_CID_GEN(cidReplaceFind, &HETG::FCmdFind, &HETG::FEnableHetgCmd)\nON_CID_GEN(cidFindNextTopic, &HETG::FCmdFind, pvNil)\nON_CID_GEN(cidPrint, &HETG::FCmdPrint, pvNil)\nON_CID_GEN(cidSpellCheck, &HETG::FCmdCheckSpelling, pvNil)\nON_CID_GEN(cidSaveAs, pvNil, pvNil)\nON_CID_GEN(cidSaveCopy, pvNil, pvNil)\nON_CID_GEN(cidFontDialog, &HETG::FCmdFontDialog, pvNil)\nEND_CMD_MAP_NIL()\n\nbool _fCaseSensitive;\n\nvoid _TokenizeStn(PSTN pstn);\nbool _FDoFindDlg(void);\n\n/***************************************************************************\n    Constructor for HEDO class.\n***************************************************************************/\nHEDO::HEDO(void)\n{\n}\n\n/***************************************************************************\n    Destructor for HEDO class.\n***************************************************************************/\nHEDO::~HEDO(void)\n{\n    ReleasePpo(&_pcfl);\n}\n\n/***************************************************************************\n    Static method to create a new document based on the given fni.\n    Use pfni == pvNil to create a new file, non-nil to open an\n    existing file.\n***************************************************************************/\nPHEDO HEDO::PhedoNew(FNI *pfni, PRCA prca)\n{\n    AssertNilOrPo(pfni, ffniFile);\n    AssertPo(prca, 0);\n    PCFL pcfl;\n    PHEDO phedo;\n\n    if (pvNil == pfni)\n        pcfl = CFL::PcflCreateTemp();\n    else\n    {\n        AssertPo(pfni, ffniFile);\n\n        // make sure no other docs are based on this pcfl.\n        if (pvNil != DOCB::PdocbFromFni(pfni))\n            return pvNil;\n        pcfl = CFL::PcflOpen(pfni, fcflNil);\n    }\n\n    if (pvNil == pcfl)\n        return pvNil;\n\n    if (pvNil == (phedo = NewObj HEDO()))\n    {\n        ReleasePpo(&pcfl);\n        return pvNil;\n    }\n\n    phedo->_pcfl = pcfl;\n    phedo->_prca = prca;\n    AssertPo(phedo, 0);\n    return phedo;\n}\n\n/***************************************************************************\n    Create a new DDG for the HEDO.\n***************************************************************************/\nPDDG HEDO::PddgNew(PGCB pgcb)\n{\n    AssertThis(0);\n    return HEDG::PhedgNew(this, _pcfl, pgcb);\n}\n\n/***************************************************************************\n    Get the current FNI for the doc.  Return false if the doc is not\n    currently based on an FNI (it's a new doc or an internal one).\n***************************************************************************/\nbool HEDO::FGetFni(FNI *pfni)\n{\n    AssertThis(0);\n    AssertBasePo(pfni, 0);\n    if (_pcfl->FTemp())\n        return fFalse;\n\n    _pcfl->GetFni(pfni);\n    return fTrue;\n}\n\n/***************************************************************************\n    Save the document and optionally set this fni as the current one.\n    If the doc is currently based on an FNI, pfni may be nil, indicating\n    that this is a normal save (not save as).  If pfni is not nil and\n    fSetFni is false, this just writes a copy of the doc but doesn't change\n    the doc one bit.\n***************************************************************************/\nbool HEDO::FSaveToFni(FNI *pfni, bool fSetFni)\n{\n    AssertThis(0);\n    if (!fSetFni && pvNil != pfni)\n        return _pcfl->FSaveACopy(kctgChelp, pfni);\n\n    if (!_pcfl->FSave(kctgChelp, pfni))\n        return fFalse;\n\n    _fDirty = fFalse;\n    _pcfl->SetTemp(fFalse);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Ask the user what file they want to save to.\n***************************************************************************/\nbool HEDO::FGetFniSave(FNI *pfni)\n{\n    AssertThis(0);\n    AssertPo(pfni, 0);\n\n    return FGetFniSaveMacro(pfni, 'CHN2',\n                            \"\\x9\"\n                            \"Save As: \",\n                            \"\", PszLit(\"All files\\0*.*\\0\"), vwig.hwndApp);\n}\n\n/***************************************************************************\n    Invalidate all DDGs on this HEDO.  Also dirties the document.  Should be\n    called by any code that edits the document.\n***************************************************************************/\nvoid HEDO::InvalAllDdg(CNO cno)\n{\n    AssertThis(0);\n    long ipddg;\n    PDDG pddg;\n\n    // mark the document dirty\n    SetDirty();\n\n    // inform the DDGs\n    for (ipddg = 0; pvNil != (pddg = PddgGet(ipddg)); ipddg++)\n    {\n        if (pddg->FIs(kclsHEDG))\n            ((PHEDG)pddg)->InvalCno(cno);\n        else\n            pddg->InvalRc(pvNil);\n    }\n}\n\n/***************************************************************************\n    Export the help topics in their textual representation for compilation\n    by chomp.\n    REVIEW shonk: this code is a major hack and very fragile.\n***************************************************************************/\nbool HEDO::FExportText(void)\n{\n    AssertThis(0);\n    FNI fni;\n    PFIL pfil;\n    MSFIL msfil;\n\n    if (!FGetFniSaveMacro(&fni, 'TEXT',\n                          \"\\x9\"\n                          \"Save As: \",\n                          \"\", PszLit(\"Chomp files\\0*.cht\\0\"), vwig.hwndApp))\n    {\n        return fFalse;\n    }\n\n    if (pvNil == (pfil = FIL::PfilCreate(&fni)))\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Can't create destination file!\"), bkOk, cokExclamation);\n        return fFalse;\n    }\n\n    msfil.SetFile(pfil);\n\n    if (!FExportHelpText(_pcfl, &msfil))\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Exporting file failed\"), bkOk, cokExclamation);\n        pfil->SetTemp();\n        ReleasePpo(&pfil);\n        return fFalse;\n    }\n\n    ReleasePpo(&pfil);\n    return fTrue;\n}\n\n/***************************************************************************\n    Resume searching in the topic at or after the given one, according to\n    fAdvance.\n***************************************************************************/\nvoid HEDO::DoFindNext(PHETD phetd, CNO cno, bool fAdvance)\n{\n    AssertThis(0);\n    AssertNilOrPo(phetd, 0);\n    Assert(pvNil == phetd || phetd->PdocbPar() == this, \"bad topic doc\");\n    long cpMin, cpLim;\n    STN stn;\n    PHETG phetg;\n    PHETD phetdT;\n\n    if (!vpstrg->FGet(kstidFind, &stn) || stn.Cch() <= 0)\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Empty search string\"), bkOk, cokExclamation);\n        return;\n    }\n\n    if (cnoNil != cno)\n    {\n        if (pvNil != (phetd = HETD::PhetdFromChunk(this, cno)))\n            phetd->AddRef();\n        else if (pvNil == (phetd = HETD::PhetdNew(this, _prca, _pcfl, cno)))\n        {\n            // couldn't load the thing\n            return;\n        }\n    }\n    else if (pvNil != phetd)\n        phetd->AddRef();\n\n    if (fAdvance || pvNil == phetd)\n    {\n        phetdT = PhetdOpenNext(phetd);\n        ReleasePpo(&phetd);\n        phetd = phetdT;\n    }\n\n    while (pvNil != phetd)\n    {\n        // search phetd\n        AssertPo(phetd, 0);\n\n        if (phetd->FFind(stn.Prgch(), stn.Cch(), 0, &cpMin, &cpLim, _fCaseSensitive))\n        {\n            // found it!\n            if (phetd->Cddg() == 0)\n            {\n                // need to open a window onto the doc.\n                phetd->PdmdNew();\n            }\n            else\n                phetd->ActivateDmd();\n            phetg = (PHETG)phetd->PddgActive();\n            if (pvNil != phetg)\n            {\n                AssertPo(phetg, 0);\n                phetg->SetSel(cpMin, cpLim);\n                phetg->ShowSel();\n                ReleasePpo(&phetd);\n                return;\n            }\n        }\n\n        phetdT = PhetdOpenNext(phetd);\n        ReleasePpo(&phetd);\n        phetd = phetdT;\n    }\n}\n\n/***************************************************************************\n    Open the next topic subdocument.  If phetd is nil, open the first one.\n***************************************************************************/\nPHETD HEDO::PhetdOpenNext(PHETD phetd)\n{\n    AssertThis(0);\n    AssertNilOrPo(phetd, 0);\n    Assert(pvNil == phetd || phetd->PdocbPar() == this, \"bad topic doc\");\n    long icki;\n    CKI cki;\n    PDOCB pdocb;\n\n    if (pvNil == phetd)\n    {\n        // start the search\n        _pcfl->FGetIcki(kctgHelpTopic, 0, &icki);\n    }\n    else if (cnoNil != (cki.cno = phetd->Cno()))\n    {\n        _pcfl->FGetIcki(kctgHelpTopic, cki.cno + 1, &icki);\n        phetd = pvNil;\n    }\n\n    if (pvNil == (pdocb = phetd))\n    {\n        // icki is valid\n        if (_pcfl->FGetCki(icki, &cki) && cki.ctg == kctgHelpTopic)\n        {\n            if (pvNil != (phetd = HETD::PhetdFromChunk(this, cki.cno)))\n            {\n                phetd->AddRef();\n                return phetd;\n            }\n            return HETD::PhetdNew(this, _prca, _pcfl, cki.cno);\n        }\n\n        // we're done with the saved topics - get the first\n        // new unsaved one\n        if (pvNil == (pdocb = PdocbChd()))\n            return pvNil;\n        if (pdocb->FIs(kclsHETD) && ((PHETD)pdocb)->Cno() == cnoNil)\n        {\n            pdocb->AddRef();\n            return (PHETD)pdocb;\n        }\n    }\n\n    for (;;)\n    {\n        AssertPo(pdocb, 0);\n        pdocb = pdocb->PdocbSib();\n        if (pvNil == pdocb)\n            break;\n        if (pdocb->FIs(kclsHETD) && ((PHETD)pdocb)->Cno() == cnoNil)\n        {\n            pdocb->AddRef();\n            return (PHETD)pdocb;\n        }\n    }\n\n    return pvNil;\n}\n\n/***************************************************************************\n    Open the previous topic subdocument.  If phetd is nil, open the last one.\n***************************************************************************/\nPHETD HEDO::PhetdOpenPrev(PHETD phetd)\n{\n    AssertThis(0);\n    AssertNilOrPo(phetd, 0);\n    Assert(pvNil == phetd || phetd->PdocbPar() == this, \"bad topic doc\");\n    long icki;\n    CKI cki;\n    PDOCB pdocb;\n    PHETD phetdNew;\n\n    if (pvNil == phetd || (cki.cno = phetd->Cno()) == cnoNil)\n    {\n        // look for the last unsaved topic before phetd\n        phetdNew = pvNil;\n        for (pdocb = PdocbChd(); phetd != pdocb && pvNil != pdocb; pdocb = pdocb->PdocbSib())\n        {\n            if (pdocb->FIs(kclsHETD) && ((PHETD)pdocb)->Cno() == cnoNil)\n                phetdNew = (PHETD)pdocb;\n        }\n\n        if (pvNil != phetdNew)\n        {\n            AssertPo(phetdNew, 0);\n            phetdNew->AddRef();\n            return phetdNew;\n        }\n\n        _pcfl->FGetIcki(kctgHelpTopic + 1, 0, &icki);\n    }\n    else\n        _pcfl->FGetIcki(kctgHelpTopic, cki.cno, &icki);\n\n    if (icki > 0 && _pcfl->FGetCki(icki - 1, &cki) && cki.ctg == kctgHelpTopic)\n    {\n        if (pvNil != (phetdNew = HETD::PhetdFromChunk(this, cki.cno)))\n        {\n            phetdNew->AddRef();\n            return phetdNew;\n        }\n        return HETD::PhetdNew(this, _prca, _pcfl, cki.cno);\n    }\n\n    return pvNil;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the HEDO.\n***************************************************************************/\nvoid HEDO::AssertValid(ulong grf)\n{\n    HEDO_PAR::AssertValid(grf);\n    AssertPo(_pcfl, 0);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for TSEL class.\n***************************************************************************/\nTSEL::TSEL(PCFL pcfl)\n{\n    AssertPo(pcfl, 0);\n    _pcfl = pcfl;\n    _SetNil();\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Set the selection to a nil selection.\n***************************************************************************/\nvoid TSEL::_SetNil(void)\n{\n    _icki = ivNil;\n    _cno = cnoNil;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Set the selection to the given line.  Return true iff the resulting\n    selection is not nil.\n***************************************************************************/\nbool TSEL::FSetIcki(long icki)\n{\n    AssertThis(0);\n    CKI cki;\n\n    if (icki == ivNil || !_pcfl->FGetCkiCtg(kctgHelpTopic, icki, &cki))\n    {\n        _SetNil();\n        return fFalse;\n    }\n\n    _cno = cki.cno;\n    _icki = icki;\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the selection to the given cno.\n***************************************************************************/\nbool TSEL::FSetCno(CNO cno)\n{\n    AssertThis(0);\n\n    _cno = cno;\n    _icki = 0;\n\n    Adjust();\n    AssertThis(0);\n    return ivNil != _icki;\n}\n\n/***************************************************************************\n    Adjust the sel after an edit to the doc.  Assume icki is wrong\n    (except as indicators of invalid cno).\n***************************************************************************/\nvoid TSEL::Adjust(void)\n{\n    AssertPo(_pcfl, 0);\n    long dicki;\n\n    if (ivNil == _icki || !_pcfl->FGetIcki(kctgHelpTopic, _cno, &_icki))\n        _SetNil();\n    _pcfl->FGetIcki(kctgHelpTopic, 0, &dicki);\n    _icki -= dicki;\n    AssertThis(0);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the sel.\n***************************************************************************/\nvoid TSEL::AssertValid(ulong grf)\n{\n    TSEL_PAR::AssertValid(0);\n    AssertPo(_pcfl, 0);\n    Assert((_cno == cnoNil) == (_icki == ivNil), \"nil values not in sync\");\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for the HEDG.\n***************************************************************************/\nHEDG::HEDG(PHEDO phedo, PCFL pcfl, PGCB pgcb) : DDG(phedo, pgcb), _tsel(pcfl)\n{\n    AssertPo(pcfl, 0);\n    RC rc;\n    achar ch = kchSpace;\n    GNV gnv(this);\n\n    _pcfl = pcfl;\n\n    _onn = vpappb->OnnDefFixed();\n    gnv.SetOnn(_onn);\n    gnv.GetRcFromRgch(&rc, &ch, 1, 0, 0);\n    _dypLine = rc.Dyp();\n    _dxpChar = rc.Dxp();\n    _dypHeader = _dypLine;\n    AssertThis(0);\n}\n\n/***************************************************************************\n    Static method to create a new HEDG.\n***************************************************************************/\nPHEDG HEDG::PhedgNew(PHEDO phedo, PCFL pcfl, PGCB pgcb)\n{\n    PHEDG phedg;\n\n    if (pvNil == (phedg = NewObj HEDG(phedo, pcfl, pgcb)))\n        return pvNil;\n\n    if (!phedg->_FInit())\n    {\n        ReleasePpo(&phedg);\n        return pvNil;\n    }\n    phedg->Activate(fTrue);\n\n    AssertPo(phedg, 0);\n    return phedg;\n}\n\n/***************************************************************************\n    We're being activated or deactivated, invert the sel.\n***************************************************************************/\nvoid HEDG::_Activate(bool fActive)\n{\n    AssertThis(0);\n    DDG::_Activate(fActive);\n\n    GNV gnv(this);\n    _DrawSel(&gnv);\n}\n\n/***************************************************************************\n    Invalidate the display from cno to the end of the display.  If we're\n    the active HEDG, also redraw.\n***************************************************************************/\nvoid HEDG::InvalCno(CNO cno)\n{\n    AssertThis(0);\n    long icki, ickiT;\n    RC rc;\n\n    // we need to recalculate the lnLim\n    _pcfl->FGetIcki(kctgHelpTopic, cno, &icki);\n    _pcfl->FGetIcki(kctgHelpTopic, 0, &ickiT);\n    icki -= ickiT;\n\n    // correct the sel\n    ickiT = _tsel.Icki();\n    if (ivNil != ickiT && ickiT >= icki)\n        _tsel.Adjust();\n\n    GetRc(&rc, cooLocal);\n    rc.ypTop = LwMax(0, _YpFromIcki(icki));\n    if (rc.FEmpty())\n        return;\n\n    if (_fActive)\n    {\n        ValidRc(&rc, kginDraw);\n        InvalRc(&rc, kginDraw);\n    }\n    else\n        InvalRc(&rc);\n}\n\n/***************************************************************************\n    Draw the topic list.\n***************************************************************************/\nvoid HEDG::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    STN stn, stnT;\n    RC rc;\n    long yp, xp;\n    long icki;\n    CKI cki;\n\n    pgnv->ClipRc(prcClip);\n    pgnv->FillRc(prcClip, kacrWhite);\n    pgnv->SetOnn(_onn);\n    xp = _XpFromIch(0);\n\n    // draw the header\n    stn = PszLit(\"  Hex         CNO     Name\");\n    pgnv->DrawStn(&stn, xp, 0);\n    pgnv->GetRcSrc(&rc);\n    rc.ypTop = _dypHeader - 1;\n    rc.ypBottom = _dypHeader;\n    pgnv->FillRc(&rc, kacrBlack);\n\n    // use the sel to find the first icki to draw\n    icki = _IckiFromYp(LwMax(prcClip->ypTop, _dypHeader));\n    for (yp = _YpFromIcki(icki); yp < prcClip->ypBottom && _pcfl->FGetCkiCtg(kctgHelpTopic, icki, &cki); icki++)\n    {\n        // draw the cki description\n        _pcfl->FGetName(cki.ctg, cki.cno, &stnT);\n        stn.FFormatSz(PszLit(\"%08x %10d   \\\"%s\\\"\"), cki.cno, cki.cno, &stnT);\n        pgnv->DrawStn(&stn, xp, yp);\n        yp += _dypLine;\n    }\n\n    // draw the selection\n    if (_fActive)\n        _DrawSel(pgnv);\n}\n\n/***************************************************************************\n    Hilite the selection (if there is one)\n***************************************************************************/\nvoid HEDG::_DrawSel(PGNV pgnv)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    RC rc;\n    long icki;\n\n    if (ivNil == (icki = _tsel.Icki()))\n        return;\n\n    pgnv->GetRcSrc(&rc);\n    rc.ypTop = _YpFromIcki(icki);\n    rc.ypBottom = rc.ypTop + _dypLine;\n    rc.ypTop = LwMax(rc.ypTop, _dypHeader);\n    pgnv->HiliteRc(&rc, kacrWhite);\n}\n\n/***************************************************************************\n    Set the selection to the given icki or cno.  If cno is not cnoNil,\n    this uses the cno, otherwise it uses the icki.  If both are nil, it\n    clears the selection.\n***************************************************************************/\nvoid HEDG::_SetSel(long icki, CNO cno)\n{\n    AssertThis(0);\n\n    if (cnoNil != cno)\n    {\n        TSEL tsel(_pcfl);\n\n        tsel.FSetCno(cno);\n        icki = tsel.Icki();\n    }\n\n    if (_tsel.Icki() == icki)\n        return;\n\n    GNV gnv(this);\n\n    // erase the old sel\n    if (_fActive)\n        _DrawSel(&gnv);\n\n    // set the new sel and draw it\n    _tsel.FSetIcki(icki);\n    if (_fActive)\n        _DrawSel(&gnv);\n}\n\n/***************************************************************************\n    Scroll the sel into view.\n***************************************************************************/\nvoid HEDG::_ShowSel(void)\n{\n    AssertThis(0);\n    RC rc;\n    long icki, ccki;\n\n    if (ivNil == (icki = _tsel.Icki()))\n        return;\n\n    if (icki < _scvVert)\n        _Scroll(scaNil, scaToVal, 0, icki);\n    else\n    {\n        _GetContent(&rc);\n        ccki = LwMax(_scvVert + 1, _IckiFromYp(rc.ypBottom));\n        if (icki >= ccki)\n            _Scroll(scaNil, scaToVal, 0, _scvVert + icki + 1 - ccki);\n    }\n}\n\n/***************************************************************************\n    Handle a mouse down in our content.\n***************************************************************************/\nvoid HEDG::MouseDown(long xp, long yp, long cact, ulong grfcust)\n{\n    AssertThis(0);\n    long icki, ickiNew;\n\n    if (ivNil != (ickiNew = _IckiFromYp(yp)))\n    {\n        if ((icki = _tsel.Icki()) != ickiNew)\n            _SetSel(ickiNew);\n        ickiNew = _tsel.Icki();\n    }\n\n    if (!_fActive)\n        Activate(fTrue);\n\n    if (ivNil == ickiNew)\n        return;\n\n    if (cact > 1 && icki == ickiNew)\n        _EditTopic(_tsel.Cno());\n}\n\n/***************************************************************************\n    Handle key input.\n***************************************************************************/\nbool HEDG::FCmdKey(PCMD_KEY pcmd)\n{\n    AssertThis(0);\n    long icki, ccki, ickiNew, cckiPage;\n    RC rc;\n\n    icki = _tsel.Icki();\n    ccki = _pcfl->CckiCtg(kctgHelpTopic);\n    switch (pcmd->vk)\n    {\n    case kvkDown:\n        ickiNew = (0 > icki) ? 0 : (icki + 1) % ccki;\n        goto LChangeSel;\n\n    case kvkUp:\n        ickiNew = (0 > icki) ? ccki - 1 : (icki + ccki - 1) % ccki;\n        goto LChangeSel;\n\n    case kvkPageUp:\n    case kvkPageDown:\n        _GetContent(&rc);\n        cckiPage = LwMax(1, rc.Dyp() / _dypLine - 1);\n        if (pcmd->vk == kvkPageDown)\n            ickiNew = LwMin(ccki - 1, ivNil == icki ? cckiPage : icki + cckiPage);\n        else\n            ickiNew = LwMax(0, ivNil == icki ? 0 : icki - cckiPage);\n        goto LChangeSel;\n\n    case kvkHome:\n        ickiNew = 0;\n        goto LChangeSel;\n\n    case kvkEnd:\n        ickiNew = ccki - 1;\n    LChangeSel:\n        if (ccki == 0)\n        {\n            Assert(ivNil == icki, \"no lines, but non-nil sel\");\n            break;\n        }\n\n        AssertIn(ickiNew, 0, ccki);\n        _SetSel(ickiNew);\n        _ShowSel();\n        break;\n\n    case kvkDelete:\n    case kvkBack:\n        if (ivNil != icki &&\n            tYes == vpappb->TGiveAlertSz(PszLit(\"Are you sure you want to delete this topic?\"), bkYesNo, cokQuestion))\n        {\n            _ClearSel();\n        }\n        break;\n\n    case kvkReturn:\n        // edit the topic\n        if (ivNil != icki)\n            _EditTopic(_tsel.Cno());\n        break;\n\n    default:\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the maximum for the indicated scroll bar.\n***************************************************************************/\nlong HEDG::_ScvMax(bool fVert)\n{\n    AssertThis(0);\n    if (fVert)\n    {\n        RC rc;\n\n        _GetContent(&rc);\n        return LwMax(0, _pcfl->CckiCtg(kctgHelpTopic) - rc.Dyp() / _dypLine + 1);\n    }\n    return 320;\n}\n\n/***************************************************************************\n    Handle enabling/disabling HEDG commands.\n***************************************************************************/\nbool HEDG::FEnableHedgCmd(PCMD pcmd, ulong *pgrfeds)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    AssertVarMem(pgrfeds);\n    CKI cki;\n    STN stn;\n\n    *pgrfeds = fedsEnable;\n    switch (pcmd->cid)\n    {\n    default:\n        if (ivNil == _tsel.Icki())\n            *pgrfeds = fedsDisable;\n        break;\n\n    case cidFindAgain:\n        if (!vpstrg->FGet(kstidFind, &stn) || stn.Cch() <= 0)\n            *pgrfeds = fedsDisable;\n        // fall thru\n    case cidFind:\n    case cidPrint:\n    case cidSpellCheck:\n    case cidDumpText:\n        if (!_pcfl->FGetCkiCtg(kctgHelpTopic, 0, &cki) && pvNil == Phedo()->PdocbChd())\n        {\n            *pgrfeds = fedsDisable;\n        }\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle command to delete a chunk.\n***************************************************************************/\nbool HEDG::FCmdDeleteTopic(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    _ClearSel();\n    return fTrue;\n}\n\n/***************************************************************************\n    Handles commands to edit a topic.\n***************************************************************************/\nbool HEDG::FCmdEditTopic(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (ivNil == _tsel.Icki())\n        return fTrue;\n\n    _EditTopic(_tsel.Cno());\n    return fTrue;\n}\n\n/***************************************************************************\n    Create and edit a new topic in the help file.\n***************************************************************************/\nbool HEDG::FCmdNewTopic(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    _EditTopic(cnoNil);\n    return fTrue;\n}\n\n/***************************************************************************\n    Create and edit a new topic in the help file.\n***************************************************************************/\nbool HEDG::FCmdExport(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    Phedo()->FExportText();\n    return fTrue;\n}\n\n/***************************************************************************\n    Opens a window onto the given topic.\n***************************************************************************/\nvoid HEDG::_EditTopic(CNO cno)\n{\n    AssertThis(0);\n    PHETD phetd;\n\n    // check for a hetd already open on the chunk.\n    if (cnoNil != cno && pvNil != (phetd = HETD::PhetdFromChunk(_pdocb, cno)))\n    {\n        phetd->ActivateDmd();\n        return;\n    }\n\n    phetd = HETD::PhetdNew(_pdocb, Phedo()->Prca(), _pcfl, cno);\n    if (pvNil != phetd)\n        phetd->PdmdNew();\n\n    ReleasePpo(&phetd);\n}\n\n/***************************************************************************\n    Copy the selection to a new document.\n***************************************************************************/\nbool HEDG::_FCopySel(PDOCB *ppdocb)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(ppdocb);\n    CNO cno;\n    PHEDO phedo;\n\n    if (ivNil == _tsel.Icki())\n        return fFalse;\n\n    if (pvNil == ppdocb)\n        return fTrue;\n\n    if (pvNil != (phedo = HEDO::PhedoNew(pvNil, Phedo()->Prca())) &&\n        !_pcfl->FCopy(kctgHelpTopic, _tsel.Cno(), phedo->Pcfl(), &cno))\n    {\n        ReleasePpo(&phedo);\n    }\n\n    *ppdocb = phedo;\n    return pvNil != *ppdocb;\n}\n\n/***************************************************************************\n    Delete the current selection.\n***************************************************************************/\nvoid HEDG::_ClearSel(void)\n{\n    AssertThis(0);\n    CNO cno;\n\n    if (ivNil == _tsel.Icki())\n        return;\n\n    cno = _tsel.Cno();\n    _pcfl->Delete(kctgHelpTopic, cno);\n    Phedo()->InvalAllDdg(cno);\n    HETD::CloseDeletedHetd(_pdocb);\n}\n\n/***************************************************************************\n    Paste all the topics of the given document into the current document.\n***************************************************************************/\nbool HEDG::_FPaste(PCLIP pclip, bool fDoIt, long cid)\n{\n    AssertThis(0);\n    AssertPo(pclip, 0);\n    PHEDO phedo;\n    PCFL pcfl;\n    long icki;\n    CKI cki;\n    CNO cnoSel;\n    bool fFailed = fFalse;\n\n    if (cidPaste != cid || !pclip->FGetFormat(kclsHEDO))\n        return fFalse;\n\n    if (!fDoIt)\n        return fTrue;\n\n    if (!pclip->FGetFormat(kclsHEDO, (PDOCB *)&phedo))\n        return fFalse;\n\n    if (pvNil == (pcfl = phedo->Pcfl()) || pcfl->CckiCtg(kctgHelpTopic) <= 0)\n    {\n        ReleasePpo(&phedo);\n        return fTrue;\n    }\n\n    _SetSel(ivNil);\n    for (icki = 0; pcfl->FGetCkiCtg(kctgHelpTopic, icki, &cki); icki++)\n        fFailed |= !pcfl->FClone(cki.ctg, cki.cno, _pcfl, &cnoSel);\n\n    Phedo()->InvalAllDdg(0);\n    if (fFailed)\n        vpappb->TGiveAlertSz(PszLit(\"Couldn't paste everything\"), bkOk, cokExclamation);\n    else\n    {\n        _SetSel(ivNil, cnoSel);\n        _ShowSel();\n    }\n\n    ReleasePpo(&phedo);\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the content part of the HEDG minus header (and any future footer).\n***************************************************************************/\nvoid HEDG::_GetContent(RC *prc)\n{\n    GetRc(prc, cooLocal);\n    prc->ypTop += _dypHeader;\n}\n\n/***************************************************************************\n    Return the icki that corresponds with the given yp value.  If yp is in\n    the header, returns ivNil.\n***************************************************************************/\nlong HEDG::_IckiFromYp(long yp)\n{\n    AssertThis(0);\n    if (yp < _dypHeader)\n        return ivNil;\n    return _scvVert + (yp - _dypHeader) / _dypLine;\n}\n\n/***************************************************************************\n    Perform a scroll according to scaHorz and scaVert.\n***************************************************************************/\nvoid HEDG::_Scroll(long scaHorz, long scaVert, long scvHorz, long scvVert)\n{\n    AssertThis(0);\n    RC rc;\n    long dscvHorz, dscvVert;\n    long dxp, dyp;\n\n    _GetContent(&rc);\n    dscvHorz = dscvVert = 0;\n    dxp = 0;\n    switch (scaHorz)\n    {\n    case scaPageUp:\n        dscvHorz = -LwMax(1, LwMulDiv(rc.Dxp(), 9, 10) / _dxpChar);\n        goto LHorz;\n    case scaPageDown:\n        dscvHorz = LwMax(1, LwMulDiv(rc.Dxp(), 9, 10) / _dxpChar);\n        goto LHorz;\n    case scaLineUp:\n        dscvHorz = -LwMax(1, rc.Dxp() / 10 / _dxpChar);\n        goto LHorz;\n    case scaLineDown:\n        dscvHorz = LwMax(1, rc.Dxp() / 10 / _dxpChar);\n        goto LHorz;\n    case scaToVal:\n        dscvHorz = scvHorz - _scvHorz;\n    LHorz:\n        dscvHorz = LwBound(_scvHorz + dscvHorz, 0, _ScvMax(fFalse) + 1) - _scvHorz;\n        _scvHorz += dscvHorz;\n        dxp = LwMul(dscvHorz, _dxpChar);\n        break;\n    }\n\n    dyp = 0;\n    switch (scaVert)\n    {\n    case scaPageUp:\n        dscvVert = -LwMax(1, rc.Dyp() / _dypLine - 1);\n        goto LVert;\n    case scaPageDown:\n        dscvVert = LwMax(1, rc.Dyp() / _dypLine - 1);\n        goto LVert;\n    case scaLineUp:\n        dscvVert = -1;\n        goto LVert;\n    case scaLineDown:\n        dscvVert = 1;\n        goto LVert;\n    case scaToVal:\n        dscvVert = scvVert - _scvVert;\n    LVert:\n        dscvVert = LwBound(_scvVert + dscvVert, 0, _ScvMax(fTrue) + 1) - _scvVert;\n        _scvVert += dscvVert;\n        dyp = LwMul(dscvVert, _dypLine);\n        break;\n    }\n\n    _SetScrollValues();\n    if (dxp != 0 || dyp != 0)\n        _ScrollDxpDyp(dxp, dyp);\n}\n\n/***************************************************************************\n    Move the bits in the window.\n***************************************************************************/\nvoid HEDG::_ScrollDxpDyp(long dxp, long dyp)\n{\n    AssertThis(0);\n    RC rc;\n\n    _GetContent(&rc);\n    Scroll(&rc, -dxp, -dyp, kginDraw);\n    if (0 != dxp)\n    {\n        // scroll the header\n        rc.ypTop = 0;\n        rc.ypBottom = _dypHeader - 1;\n        Scroll(&rc, -dxp, 0, kginDraw);\n    }\n}\n\n/***************************************************************************\n    Do a find in some topics.\n***************************************************************************/\nbool HEDG::FCmdFind(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    switch (pcmd->cid)\n    {\n    case cidFind:\n        if (!_FDoFindDlg())\n            break;\n        // fall thru\n    case cidFindAgain:\n        Phedo()->DoFindNext(pvNil, _tsel.Cno(), fFalse);\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Print some topics.\n***************************************************************************/\nbool HEDG::FCmdPrint(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n#ifdef WIN\n    const long kdypFontTitle = 9;\n    const long kdzpBox = 2;\n    long icki;\n    CKI cki;\n    PDOCB pdocb;\n    PRINTDLG pd;\n    DOCINFO di;\n    STN stn, stnT;\n    STN stnDoc;\n    RC rcPage, rcSrc, rcDst, rcT;\n    long onnDef;\n    long yp, ypTopic;\n    long dxpTopic;\n    long dypLine, dyp;\n    long ilin;\n    HTOP htop;\n\n    PHETD phetd = pvNil;\n    PHETG phetg = pvNil;\n    PGPT pgpt = pvNil;\n    PGNV pgnv = pvNil;\n    long lwPage = 1;\n    bool fInPage = fFalse;\n    PHEDO phedo = Phedo();\n\n    // set up the print dialog structure\n    ClearPb(&pd, size(pd));\n    pd.lStructSize = size(pd);\n    pd.Flags = PD_RETURNDC | PD_HIDEPRINTTOFILE | PD_NOPAGENUMS | PD_NOSELECTION | PD_USEDEVMODECOPIES;\n    pd.hwndOwner = vwig.hwndApp;\n\n    if (!PrintDlg(&pd))\n        goto LFail;\n\n    // see if the device supports BitBlt\n    if (!(GetDeviceCaps(pd.hDC, RASTERCAPS) & RC_BITBLT))\n        goto LFail;\n\n    if (pvNil == (pgpt = GPT::PgptNew(pd.hDC)))\n        goto LFail;\n    if (pvNil == (pgnv = NewObj GNV(pgpt)))\n        goto LFail;\n\n    rcDst.Zero();\n    rcDst.xpRight = GetDeviceCaps(pd.hDC, LOGPIXELSX);\n    rcDst.ypBottom = GetDeviceCaps(pd.hDC, LOGPIXELSY);\n    pgnv->SetRcDst(&rcDst);\n    rcSrc.Zero();\n    rcSrc.xpRight = kdzpInch;\n    rcSrc.ypBottom = kdzpInch;\n    pgnv->SetRcSrc(&rcSrc);\n\n    phedo->GetName(&stnDoc);\n    di.cbSize = size(di);\n    di.lpszDocName = stnDoc.Psz();\n    di.lpszOutput = pvNil;\n\n    if (SP_ERROR == StartDoc(pd.hDC, &di))\n        goto LFail;\n\n    rcPage.Set(0, 0, GetDeviceCaps(pd.hDC, HORZRES), GetDeviceCaps(pd.hDC, VERTRES));\n    rcPage.Map(&rcDst, &rcSrc);\n    rcPage.Inset(kdzpInch, kdzpInch);\n    onnDef = vpappb->OnnDefVariable();\n\n    if (0 >= StartPage(pd.hDC))\n        goto LFail;\n    yp = rcPage.ypTop;\n\n    _StartPage(pgnv, &stnDoc, lwPage++, &rcPage, onnDef);\n\n    // set the topic info font and get its height\n    pgnv->SetFont(onnDef, fontNil, kdypFontTitle, tahLeft, tavTop);\n    pgnv->GetRcFromRgch(&rcT, pvNil, 0, 0, 0);\n    dypLine = rcT.Dyp();\n\n    // print the topics\n    for (icki = 0, pdocb = pvNil;;)\n    {\n        if (ivNil != icki && _pcfl->FGetCkiCtg(kctgHelpTopic, icki++, &cki))\n        {\n            // get a saved topic\n            if (pvNil != (phetd = HETD::PhetdFromChunk(phedo, cki.cno)))\n                phetd->AddRef();\n            else if (pvNil == (phetd = HETD::PhetdNew(phedo, phedo->Prca(), _pcfl, cki.cno)))\n            {\n                // couldn't load the thing\n                continue;\n            }\n        }\n        else\n        {\n            // get an unsaved topic\n            icki = ivNil;\n            if (pvNil == pdocb)\n                pdocb = Phedo()->PdocbChd();\n            else\n                pdocb = pdocb->PdocbSib();\n\n            if (pvNil == pdocb)\n                break;\n            AssertPo(pdocb, 0);\n            if (!pdocb->FIs(kclsHETD) || ((PHETD)pdocb)->Cno() != cnoNil)\n                continue;\n            phetd = (PHETD)pdocb;\n        }\n        AssertPo(phetd, 0);\n\n        if (pvNil == (phetg = (PHETG)phetd->PddgGet(0)))\n        {\n            // need to open a window onto the doc.\n            GCB gcb(khidDdg, this);\n            if (pvNil == (phetg = (PHETG)phetd->PddgNew(&gcb)))\n                goto LFail;\n        }\n        else\n            phetg->AddRef();\n        AssertPo(phetg, 0);\n        phetd->GetHtop(&htop);\n        dxpTopic = phetd->DxpDef();\n\n        if (yp > rcPage.ypTop)\n        {\n            // see if we should start a new page before the topic\n            yp += 3 * dypLine;\n\n            if (yp + phetg->DypLine(0) + dypLine * 3 > rcPage.ypBottom)\n            {\n                // start a new page\n                if (0 >= EndPage(pd.hDC))\n                    goto LFail;\n                if (0 >= StartPage(pd.hDC))\n                    goto LFail;\n                yp = rcPage.ypTop;\n                _StartPage(pgnv, &stnDoc, lwPage++, &rcPage, onnDef);\n            }\n        }\n\n        // draw the topic header stuff\n        rcT = rcPage;\n        rcT.ypTop = yp;\n        rcT.ypBottom = yp + 3 * dypLine;\n        rcT.Inset(-3, -3);\n\n        pgnv->SetFont(onnDef, fontNil, kdypFontTitle, tahLeft, tavTop);\n        phetd->GetHtopStn(1, &stnT);\n        stn.FFormatSz(PszLit(\"Topic 0x%08x (%s): \"), phetd->Cno(), &stnT);\n        phetd->GetHtopStn(-1, &stnT);\n        stn.FAppendStn(&stnT);\n        pgnv->DrawStn(&stn, rcPage.xpLeft, yp);\n        yp += dypLine;\n\n        phetd->GetHtopStn(4, &stnT);\n        stn.FFormatSz(PszLit(\"Script: 0x%08x (%s);  Sound: '%f', 0x%08x (\"), htop.cnoScript, &stnT, htop.ckiSnd.ctg,\n                      htop.ckiSnd.cno);\n        phetd->GetHtopStn(5, &stnT);\n        stn.FAppendStn(&stnT);\n        stn.FAppendCh(ChLit(')'));\n        pgnv->DrawStn(&stn, rcPage.xpLeft, yp);\n        yp += dypLine;\n\n        stn.FFormatSz(PszLit(\"Topic Width: %d\"), dxpTopic);\n        pgnv->DrawStn(&stn, rcPage.xpLeft, yp);\n        yp += 2 * dypLine;\n\n        ypTopic = yp;\n        pgnv->SetPenSize(1, 1);\n        pgnv->FrameRc(&rcT, kacrBlack);\n\n        // draw the start box\n        rcT.Set(rcPage.xpLeft, yp - kdzpBox, rcPage.xpLeft + dxpTopic, yp);\n        pgnv->FillRc(&rcT, kacrBlack);\n\n        // draw the lines\n        for (ilin = 0;; ilin++)\n        {\n            dyp = phetg->DypLine(ilin);\n            if (0 >= dyp)\n                break;\n\n            if (ilin > 0 && yp + dyp > rcPage.ypBottom)\n            {\n                // end the page and start a new one\n                ypTopic = -1;\n\n                // draw the topic end box\n                rcT.Set(rcPage.xpLeft, yp, rcPage.xpLeft + dxpTopic, yp + kdzpBox / 2);\n                pgnv->FillRcApt(&rcT, &vaptGray, kacrGray, kacrWhite);\n\n                if (0 >= EndPage(pd.hDC))\n                    goto LFail;\n                if (0 >= StartPage(pd.hDC))\n                    goto LFail;\n                yp = rcPage.ypTop;\n\n                // draw the start box\n                rcT.Set(rcPage.xpLeft, yp - kdzpBox / 2, rcPage.xpLeft + dxpTopic, yp);\n                pgnv->FillRcApt(&rcT, &vaptGray, kacrGray, kacrWhite);\n\n                _StartPage(pgnv, &stnDoc, lwPage++, &rcPage, onnDef);\n            }\n\n            phetg->DrawLines(pgnv, &rcPage, rcPage.xpLeft, yp, ilin, ilin + 1, ftxtgNoColor);\n            yp += dyp;\n        }\n\n        // draw the topic end box\n        rcT.Set(rcPage.xpLeft, yp, rcPage.xpLeft + dxpTopic, yp + kdzpBox);\n        pgnv->FillRc(&rcT, kacrBlack);\n\n        ReleasePpo(&phetg);\n        ReleasePpo(&phetd);\n    }\n\n    if (0 >= EndPage(pd.hDC))\n        goto LFail;\n\n    // end the print job\n    if (0 >= EndDoc(pd.hDC))\n    {\n    LFail:\n        vpappb->TGiveAlertSz(PszLit(\"Printing failed\"), bkOk, cokExclamation);\n        ReleasePpo(&phetd);\n        ReleasePpo(&phetg);\n    }\n\n    if (pd.hDC != hNil)\n        DeleteDC(pd.hDC);\n    if (pd.hDevMode != hNil)\n        GlobalFree(pd.hDevMode);\n    if (pd.hDevNames != hNil)\n        GlobalFree(pd.hDevNames);\n    ReleasePpo(&pgnv);\n    ReleasePpo(&pgpt);\n#endif // WIN\n\n    return fTrue;\n}\n\n#ifdef WIN\n/***************************************************************************\n    Print the page number and document name.\n***************************************************************************/\nvoid HEDG::_StartPage(PGNV pgnv, PSTN pstnDoc, long lwPage, RC *prcPage, long onn)\n{\n    STN stn;\n\n    // draw the document name and page number\n    pgnv->SetFont(onn, fontNil, 10, tahLeft, tavTop);\n    pgnv->DrawStn(pstnDoc, prcPage->xpLeft, prcPage->ypBottom + 12);\n    stn.FFormatSz(PszLit(\"- %d -\"), lwPage);\n    pgnv->SetFont(onn, fontNil, 10, tahCenter, tavTop);\n    pgnv->DrawStn(&stn, prcPage->XpCenter(), prcPage->ypBottom + 12);\n}\n#endif // WIN\n\n/***************************************************************************\n    Check spelling in topics from the selected one on.\n***************************************************************************/\nbool HEDG::FCmdCheckSpelling(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n#ifdef SPELL\n    CNO cno;\n    PDMD pdmd;\n    long cactT;\n    PHETD phetd, phetdT;\n    PHETG phetg;\n    long cactTotal = 0;\n    bool fContinue = fTrue;\n    PHEDO phedo = Phedo();\n\n    cno = _tsel.Cno();\n    if (cnoNil == cno)\n        phetd = phedo->PhetdOpenNext(pvNil);\n    else\n    {\n        if (pvNil != (phetd = HETD::PhetdFromChunk(phedo, cno)))\n            phetd->AddRef();\n        else\n            phetd = HETD::PhetdNew(phedo, phedo->Prca(), _pcfl, cno);\n    }\n\n    if (pvNil != vpsplc)\n    {\n        vpsplc->FlushIgnoreList();\n        vpsplc->FlushChangeList(fTrue);\n    }\n\n    while (pvNil != phetd)\n    {\n        // check phetd\n        AssertPo(phetd, 0);\n\n        if (phetd->Cddg() == 0)\n        {\n            // need to open a window onto the doc.\n            pdmd = phetd->PdmdNew();\n        }\n        else\n        {\n            phetd->ActivateDmd();\n            pdmd = pvNil;\n        }\n\n        phetg = (PHETG)phetd->PddgActive();\n        if (pvNil != phetg)\n        {\n            AssertPo(phetg, 0);\n            fContinue = phetg->FCheckSpelling(&cactT);\n            cactTotal += cactT;\n        }\n\n        if (pdmd != pvNil)\n        {\n            if (phetd->FQueryCloseDmd(pdmd))\n                ReleasePpo(&pdmd);\n        }\n\n        phetdT = fContinue ? phedo->PhetdOpenNext(phetd) : pvNil;\n        ReleasePpo(&phetd);\n        phetd = phetdT;\n    }\n\n    if (fContinue)\n    {\n        STN stn;\n\n        if (cactTotal == 0)\n            stn = PszLit(\"No corrections made.\");\n        else\n            stn.FFormatSz(PszLit(\"Corrected %d words.\"), cactTotal);\n        vpappb->TGiveAlertSz(stn.Psz(), bkOk, cokExclamation);\n    }\n#else  //! SPELL\n    vpappb->TGiveAlertSz(PszLit(\"Spell checking not available\"), bkOk, cokExclamation);\n#endif //! SPELL\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Dump the text of all topics.\n***************************************************************************/\nbool HEDG::FCmdDump(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    const long kcchMax = 1024;\n    achar rgch[kcchMax];\n    const long kcchEop = MacWin(1, 2);\n    achar rgchEop[] = {kchReturn, kchLineFeed};\n    long icki;\n    CKI cki;\n    PDOCB pdocb;\n    FNI fni;\n    PFIL pfil;\n    long cpMac;\n    long cp;\n    long cch;\n    bool fFirst;\n    FP fpCur;\n\n    PHETD phetd = pvNil;\n    PHEDO phedo = Phedo();\n\n    if (!FGetFniSaveMacro(&fni, kftgText, \"\\pFile to dump text to:\", \"\\pDump\", PszLit(\"Text Files\\0*.txt\\0\"),\n                          vwig.hwndApp))\n    {\n        return fTrue;\n    }\n\n    if (pvNil == (pfil = FIL::PfilCreate(&fni)))\n        return fTrue;\n    fpCur = 0;\n\n#ifdef UNICODE\n    rgch[0] = kchwUnicode;\n    pfil->FWriteRgbSeq(rgch, size(achar), &fpCur);\n#endif // UNICODE\n\n    // dump the topics\n    for (icki = 0, pdocb = pvNil, fFirst = fTrue;;)\n    {\n        if (ivNil != icki && _pcfl->FGetCkiCtg(kctgHelpTopic, icki++, &cki))\n        {\n            // get a saved topic\n            if (pvNil != (phetd = HETD::PhetdFromChunk(phedo, cki.cno)))\n                phetd->AddRef();\n            else if (pvNil == (phetd = HETD::PhetdNew(phedo, phedo->Prca(), _pcfl, cki.cno)))\n            {\n                // couldn't load the thing\n                continue;\n            }\n        }\n        else\n        {\n            // get an unsaved topic\n            icki = ivNil;\n            if (pvNil == pdocb)\n                pdocb = Phedo()->PdocbChd();\n            else\n                pdocb = pdocb->PdocbSib();\n\n            if (pvNil == pdocb)\n                break;\n            AssertPo(pdocb, 0);\n            if (!pdocb->FIs(kclsHETD) || ((PHETD)pdocb)->Cno() != cnoNil)\n                continue;\n            phetd = (PHETD)pdocb;\n        }\n        AssertPo(phetd, 0);\n\n        if (!fFirst)\n        {\n            pfil->FWriteRgbSeq(rgchEop, kcchEop, &fpCur);\n            pfil->FWriteRgbSeq(PszLit(\"------------------------------\"), 30 * size(achar), &fpCur);\n            pfil->FWriteRgbSeq(rgchEop, kcchEop, &fpCur);\n            pfil->FWriteRgbSeq(rgchEop, kcchEop, &fpCur);\n        }\n        else\n            fFirst = fFalse;\n\n        cpMac = phetd->CpMac() - 1;\n        for (cp = 0; cp < cpMac; cp += cch)\n        {\n            cch = LwMin(cpMac - cp, kcchMax);\n            phetd->FetchRgch(cp, cch, rgch);\n            pfil->FWriteRgbSeq(rgch, cch * size(achar), &fpCur);\n        }\n\n        pfil->FWriteRgbSeq(rgchEop, kcchEop, &fpCur);\n        ReleasePpo(&phetd);\n    }\n\n    ReleasePpo(&pfil);\n\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of an object.\n***************************************************************************/\nvoid HEDG::AssertValid(ulong grf)\n{\n    HEDG_PAR::AssertValid(0);\n    AssertPo(&_tsel, 0);\n    AssertPo(_pcfl, 0);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Static method:  For all HETD children of the DOCB, checks if the chunk\n    still exists and nukes the HETD if not.\n***************************************************************************/\nvoid HETD::CloseDeletedHetd(PDOCB pdocb)\n{\n    PDOCB pdocbNext;\n    PHETD phetd;\n\n    for (pdocb = pdocb->PdocbChd(); pvNil != pdocb; pdocb = pdocbNext)\n    {\n        pdocbNext = pdocb->PdocbSib();\n        if (!pdocb->FIs(kclsHETD))\n            continue;\n        phetd = (PHETD)pdocb;\n        // NOTE: can't assert the phetd here because the chunk may be gone\n        // AssertPo(phetd, 0);\n        AssertBasePo(phetd, 0);\n        AssertNilOrPo(phetd->_pcfl, 0);\n        if (phetd->_cno != cnoNil && pvNil != phetd->_pcfl && !phetd->_pcfl->FFind(kctgHelpTopic, phetd->_cno))\n        {\n            phetd->CloseAllDdg();\n        }\n        else\n            AssertPo(phetd, 0);\n    }\n}\n\n/***************************************************************************\n    Static method to look for a HETD for the given chunk.\n***************************************************************************/\nPHETD HETD::PhetdFromChunk(PDOCB pdocb, CNO cno)\n{\n    AssertPo(pdocb, 0);\n    Assert(cnoNil != cno, 0);\n    PHETD phetd;\n\n    for (pdocb = pdocb->PdocbChd(); pvNil != pdocb; pdocb = pdocb->PdocbSib())\n    {\n        if (!pdocb->FIs(kclsHETD))\n            continue;\n        phetd = (PHETD)pdocb;\n        AssertPo(phetd, 0);\n        if (phetd->_cno == cno)\n            return phetd;\n    }\n    return pvNil;\n}\n\n/***************************************************************************\n    Constructor for a help topic document.\n***************************************************************************/\nHETD::HETD(PDOCB pdocb, PRCA prca, PCFL pcfl, CNO cno) : TXHD(prca, pdocb)\n{\n    AssertNilOrPo(pcfl, 0);\n    _pcfl = pcfl;\n    _cno = cno;\n}\n\n/***************************************************************************\n    Destructor for a help topic editing document.\n***************************************************************************/\nHETD::~HETD(void)\n{\n    ReleasePpo(&_pgst);\n}\n\n/***************************************************************************\n    Static method to read a help topic document from the given\n    (pcfl, cno) and using the given prca as the source for pictures\n    and buttons.\n***************************************************************************/\nPHETD HETD::PhetdNew(PDOCB pdocb, PRCA prca, PCFL pcfl, CNO cno)\n{\n    AssertNilOrPo(pdocb, 0);\n    AssertPo(prca, 0);\n    AssertNilOrPo(pcfl, 0);\n    Assert(pcfl != pvNil || cnoNil == cno, \"non-nil cno with nil CFL\");\n    PHETD phetd;\n\n    if (pvNil == (phetd = NewObj HETD(pdocb, prca, pcfl, cno)))\n        return pvNil;\n\n    if ((cnoNil == cno) ? !phetd->_FInit() : !phetd->_FReadChunk(pcfl, kctgHelpTopic, cno, fTrue))\n    {\n        PushErc(ercHelpReadFailed);\n        ReleasePpo(&phetd);\n        return pvNil;\n    }\n\n    if (cnoNil == cno)\n        phetd->_dxpDef = 200;\n\n    // force the default font to be Comic Sans MS\n    phetd->_stnFontDef = PszLit(\"Comic Sans MS\");\n    if (!vntl.FGetOnn(&phetd->_stnFontDef, &phetd->_onnDef))\n        phetd->_onnDef = vpappb->OnnDefVariable();\n    phetd->_oskFont = koskCur;\n\n    // force the background color to clear\n    phetd->SetAcrBack(kacrClear);\n\n    return phetd;\n}\n\n/***************************************************************************\n    Read the given chunk into this TXRD.\n***************************************************************************/\nbool HETD::_FReadChunk(PCFL pcfl, CTG ctg, CNO cno, bool fCopyText)\n{\n    AssertPo(pcfl, 0);\n    BLCK blck;\n    KID kid;\n\n    if (!HETD_PAR::_FReadChunk(pcfl, ctg, cno, pvNil, fCopyText ? ftxhdCopyText : ftxhdNil))\n    {\n        return fFalse;\n    }\n\n    if (pcfl->FGetKidChidCtg(ctg, cno, 0, kctgGst, &kid))\n    {\n        // read the string table\n        if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck) || pvNil == (_pgst = GST::PgstRead(&blck)) ||\n            _pgst->IvMac() != 6 && (_pgst->IvMac() != 5 || !_pgst->FAddRgch(PszLit(\"\"), 0)))\n        {\n            return fFalse;\n        }\n    }\n\n    pcfl->FGetName(ctg, cno, &_stnDesc);\n\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the name of the document.\n***************************************************************************/\nvoid HETD::GetName(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    if (pvNil == _pdocbPar)\n        HETD_PAR::GetName(pstn);\n    else\n    {\n        STN stn;\n\n        if (cnoNil == _cno)\n        {\n            if (_cactUntitled == 0)\n                _cactUntitled = ++_cactLast;\n            stn.FFormatSz(PszLit(\": Untitled Topic %d\"), _cactUntitled);\n        }\n        else if (pvNil != _pdocbPar)\n            stn.FFormatSz(PszLit(\": Topic %08x\"), _cno);\n\n        _pdocbPar->GetName(pstn);\n        pstn->FAppendStn(&stn);\n    }\n}\n\n/***************************************************************************\n    Save the document.  Handles only cidSave.  Asserts on cidSaveAs and\n    cidSaveCopy.\n***************************************************************************/\nbool HETD::FSave(long cid)\n{\n    AssertThis(0);\n    CKI cki;\n\n    if (cidSave != cid)\n    {\n        Bug(\"Bad cid\");\n        return fFalse;\n    }\n\n    if (pvNil == _pcfl)\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Can't save this topic - it doesn't belong to a topic file\"), bkOk, cokExclamation);\n        return fFalse;\n    }\n\n    if (!FSaveToChunk(_pcfl, &cki, fFalse))\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Saving topic failed\"), bkOk, cokExclamation);\n        return fFalse;\n    }\n\n    Assert(cki.ctg == kctgHelpTopic, \"wrong ctg\");\n    if (cnoNil != _cno)\n    {\n        _pcfl->Delete(kctgHelpTopic, _cno);\n        _pcfl->Move(cki.ctg, cki.cno, kctgHelpTopic, _cno);\n    }\n    else\n        _cno = cki.cno;\n\n    _pcfl->FSetName(cki.ctg, _cno, &_stnDesc);\n\n    _fDirty = fFalse;\n    if (Phedo() != pvNil)\n        Phedo()->InvalAllDdg(0);\n    UpdateName();\n    return fTrue;\n}\n\n/***************************************************************************\n    Save a help topic to the given chunky file.  Fill in *pcki with where\n    we put the root chunk.\n***************************************************************************/\nbool HETD::FSaveToChunk(PCFL pcfl, CKI *pcki, bool fRedirectText)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n    AssertVarMem(pcki);\n    BLCK blck;\n    CNO cno;\n\n    if (!HETD_PAR::FSaveToChunk(pcfl, pcki, fRedirectText))\n        return fFalse;\n\n    if (pvNil != _pgst)\n    {\n        // add the string table chunk and write it\n        if (!pcfl->FAddChild(pcki->ctg, pcki->cno, 0, _pgst->CbOnFile(), kctgGst, &cno, &blck) || !_pgst->FWrite(&blck))\n        {\n            pcfl->Delete(pcki->ctg, pcki->cno);\n            PushErc(ercHelpSaveFailed);\n            return fFalse;\n        }\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Create a new Document MDI window for this help topic.\n***************************************************************************/\nPDMD HETD::PdmdNew(void)\n{\n    AssertThis(0);\n    PDMD pdmd;\n    PGOB pgob;\n    RC rcRel, rcAbs;\n    long dxpLig, ypT;\n    GCB gcb;\n\n    if (pvNil == (pdmd = HETD_PAR::PdmdNew()))\n        return pvNil;\n\n    dxpLig = kdxpCellLig + SCB::DxpNormal();\n    if (pvNil == (pgob = pdmd->PgobFromHid(khidDmw)))\n        goto LFail;\n    pgob->GetPos(&rcAbs, &rcRel);\n    rcAbs.xpLeft += dxpLig + kdxpCcg;\n    pgob->SetPos(&rcAbs, &rcRel);\n\n    rcRel.xpRight = rcRel.xpLeft;\n    ypT = rcRel.ypBottom;\n    rcRel.ypBottom = rcRel.YpCenter();\n\n    rcAbs.xpRight = rcAbs.xpLeft;\n    rcAbs.xpLeft = rcAbs.xpRight - kdxpCcg;\n    rcAbs.ypTop = 0;\n    rcAbs.ypBottom = kdxpFrameCcg / 2;\n    gcb.Set(CMH::HidUnique(), pgob, fgobSibling, kginDefault, &rcAbs, &rcRel);\n    if (pvNil == NewObj CCG(&gcb, this, fTrue))\n        goto LFail;\n\n    rcAbs.xpRight = rcAbs.xpLeft;\n    rcAbs.xpLeft = rcAbs.xpRight - dxpLig;\n    gcb.Set(khidLigButton, pgob, fgobSibling, kginDefault, &rcAbs, &rcRel);\n    if (pvNil == vapp.PligNew(fTrue, &gcb, this))\n        goto LFail;\n\n    rcAbs.ypTop = rcAbs.ypBottom;\n    rcAbs.ypBottom = kdxpFrameCcg;\n    rcRel.ypTop = rcRel.ypBottom;\n    rcRel.ypBottom = ypT;\n    gcb.Set(khidLigPicture, pgob, fgobSibling, kginDefault, &rcAbs, &rcRel);\n    if (pvNil == vapp.PligNew(fFalse, &gcb, this))\n        goto LFail;\n\n    rcAbs.xpLeft = rcAbs.xpRight;\n    rcAbs.xpRight = rcAbs.xpLeft + kdxpCcg;\n    gcb.Set(CMH::HidUnique(), pgob, fgobSibling, kginDefault, &rcAbs, &rcRel);\n    if (pvNil == NewObj CCG(&gcb, this, fFalse))\n    {\n    LFail:\n        ReleasePpo(&pdmd);\n        return pvNil;\n    }\n\n    AssertPo(pdmd, 0);\n    return pdmd;\n}\n\n/***************************************************************************\n    Create a new DDG for the HETD.\n***************************************************************************/\nPDDG HETD::PddgNew(PGCB pgcb)\n{\n    AssertThis(0);\n    return HETG::PhetgNew(this, pgcb);\n}\n\nenum\n{\n    kiditOkTopic,\n    kiditCancelTopic,\n    kiditBalnTopic,\n    kiditBalnStnTopic,\n    kiditHtopStnTopic,\n    kiditHidTopic,\n    kiditHidStnTopic,\n    kiditHidTargetTopic,\n    kiditHidTargetStnTopic,\n    kiditScriptTopic,\n    kiditScriptStnTopic,\n    kiditDxpTopic,\n    kiditDypTopic,\n    kiditDescriptionTopic,\n    kiditCtgSoundTopic,\n    kiditCnoSoundTopic,\n    kiditCnoSoundStnTopic,\n    kiditWidthTopic,\n    kiditLimTopic\n};\n\n/***************************************************************************\n    Put up a dialog for the user to edit the help topic properties.\n***************************************************************************/\nvoid HETD::EditHtop(void)\n{\n    AssertThis(0);\n    PDLG pdlg;\n    long dxp;\n    STN stn;\n\n    if (pvNil == (pdlg = DLG::PdlgNew(dlidTopicInfo)))\n        return;\n\n    if (pvNil != _pgst)\n    {\n        // initialize the string fields\n        _pgst->GetStn(0, &stn);\n        pdlg->FPutStn(kiditBalnStnTopic, &stn);\n        _pgst->GetStn(1, &stn);\n        pdlg->FPutStn(kiditHtopStnTopic, &stn);\n        _pgst->GetStn(2, &stn);\n        pdlg->FPutStn(kiditHidStnTopic, &stn);\n        _pgst->GetStn(3, &stn);\n        pdlg->FPutStn(kiditHidTargetStnTopic, &stn);\n        _pgst->GetStn(4, &stn);\n        pdlg->FPutStn(kiditScriptStnTopic, &stn);\n        _pgst->GetStn(5, &stn);\n        pdlg->FPutStn(kiditCnoSoundStnTopic, &stn);\n    }\n    else if (pvNil == (_pgst = GST::PgstNew(0, 6, 0)))\n        return;\n    else\n    {\n        stn.SetNil();\n        if (!_pgst->FAddStn(&stn) || !_pgst->FAddStn(&stn) || !_pgst->FAddStn(&stn) || !_pgst->FAddStn(&stn) ||\n            !_pgst->FAddStn(&stn) || !_pgst->FAddStn(&stn))\n        {\n            ReleasePpo(&_pgst);\n            return;\n        }\n    }\n\n    pdlg->FPutStn(kiditDescriptionTopic, &_stnDesc);\n\n    // initialize the numeric fields\n    pdlg->FPutLwInEdit(kiditBalnTopic, _htop.cnoBalloon);\n    pdlg->FPutLwInEdit(kiditHidTopic, _htop.hidThis);\n    pdlg->FPutLwInEdit(kiditHidTargetTopic, _htop.hidTarget);\n    pdlg->FPutLwInEdit(kiditScriptTopic, _htop.cnoScript);\n    pdlg->FPutLwInEdit(kiditDxpTopic, _htop.dxp);\n    pdlg->FPutLwInEdit(kiditDypTopic, _htop.dyp);\n    if (_htop.ckiSnd.ctg == ctgNil)\n        stn = PszLit(\"WAVE\");\n    else\n        stn.FFormatSz(PszLit(\"%f\"), _htop.ckiSnd.ctg);\n    pdlg->FPutStn(kiditCtgSoundTopic, &stn);\n    pdlg->FPutLwInEdit(kiditCnoSoundTopic, _htop.ckiSnd.cno);\n    pdlg->FPutLwInEdit(kiditWidthTopic, DxpDef());\n\n    if (kiditOkTopic != pdlg->IditDo(kiditBalnTopic))\n    {\n        ReleasePpo(&pdlg);\n        return;\n    }\n\n    if (!pdlg->FGetLwFromEdit(kiditBalnTopic, (long *)&_htop.cnoBalloon))\n        _htop.cnoBalloon = cnoNil;\n    if (!pdlg->FGetLwFromEdit(kiditHidTopic, &_htop.hidThis))\n        _htop.hidThis = hidNil;\n    if (!pdlg->FGetLwFromEdit(kiditHidTargetTopic, &_htop.hidTarget))\n        _htop.hidTarget = hidNil;\n    if (!pdlg->FGetLwFromEdit(kiditScriptTopic, (long *)&_htop.cnoScript))\n        _htop.cnoScript = cnoNil;\n    if (!pdlg->FGetLwFromEdit(kiditDxpTopic, &_htop.dxp))\n        _htop.dxp = 0;\n    if (!pdlg->FGetLwFromEdit(kiditDypTopic, &_htop.dyp))\n        _htop.dyp = 0;\n    if (pdlg->FGetLwFromEdit(kiditWidthTopic, &dxp) && FIn(dxp, 1, kcbMax))\n        SetDxpDef(dxp);\n\n    if (!pdlg->FGetLwFromEdit(kiditCnoSoundTopic, (long *)&_htop.ckiSnd.cno))\n    {\n        _htop.ckiSnd.cno = cnoNil;\n        _htop.ckiSnd.ctg = kctgWave;\n    }\n    else\n    {\n        pdlg->GetStn(kiditCtgSoundTopic, &stn);\n        if (!FIn(stn.Cch(), 1, 5))\n        {\n            _htop.ckiSnd.cno = cnoNil;\n            _htop.ckiSnd.ctg = kctgWave;\n        }\n        else\n        {\n            achar rgch[4];\n\n            rgch[0] = rgch[1] = rgch[2] = rgch[3] = kchSpace;\n            stn.GetRgch(rgch);\n\n            // first character becomes the high byte\n            _htop.ckiSnd.ctg = LwFromBytes((byte)rgch[0], (byte)rgch[1], (byte)rgch[2], (byte)rgch[3]);\n        }\n    }\n\n    pdlg->GetStn(kiditBalnStnTopic, &stn);\n    _TokenizeStn(&stn);\n    _pgst->FPutStn(0, &stn);\n    pdlg->GetStn(kiditHtopStnTopic, &stn);\n    _TokenizeStn(&stn);\n    _pgst->FPutStn(1, &stn);\n    pdlg->GetStn(kiditHidStnTopic, &stn);\n    _TokenizeStn(&stn);\n    _pgst->FPutStn(2, &stn);\n    pdlg->GetStn(kiditHidTargetStnTopic, &stn);\n    _TokenizeStn(&stn);\n    _pgst->FPutStn(3, &stn);\n    pdlg->GetStn(kiditScriptStnTopic, &stn);\n    _TokenizeStn(&stn);\n    _pgst->FPutStn(4, &stn);\n    pdlg->GetStn(kiditCnoSoundStnTopic, &stn);\n    _TokenizeStn(&stn);\n    _pgst->FPutStn(5, &stn);\n    pdlg->GetStn(kiditDescriptionTopic, &_stnDesc);\n    ReleasePpo(&pdlg);\n\n    SetDirty();\n}\n\n/***************************************************************************\n    Do a search on this topic document.\n***************************************************************************/\nbool HETD::FDoFind(long cpMin, long *pcpMin, long *pcpLim)\n{\n    AssertThis(0);\n    AssertVarMem(pcpMin);\n    AssertVarMem(pcpLim);\n    STN stn;\n\n    if (!vpstrg->FGet(kstidFind, &stn) || stn.Cch() == 0 ||\n        !FFind(stn.Psz(), stn.Cch(), cpMin, pcpMin, pcpLim, _fCaseSensitive))\n    {\n        TrashVar(pcpMin);\n        TrashVar(pcpLim);\n        return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Do a replace on this topic document.\n***************************************************************************/\nbool HETD::FDoReplace(long cp1, long cp2, long *pcpMin, long *pcpLim)\n{\n    AssertThis(0);\n    AssertVarMem(pcpMin);\n    AssertVarMem(pcpLim);\n    STN stn;\n\n    SortLw(&cp1, &cp2);\n    vpstrg->FGet(kstidReplace, &stn);\n    *pcpMin = cp1;\n    *pcpLim = cp1 + stn.Cch();\n    HideSel();\n    return FReplaceRgch(stn.Psz(), stn.Cch(), cp1, cp2 - cp1);\n}\n\n/***************************************************************************\n    Get a string corresponding to an entry in the HTOP. -1 means get the\n    topic description.\n***************************************************************************/\nvoid HETD::GetHtopStn(long istn, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    if (istn == -1)\n        *pstn = _stnDesc;\n    else if (pvNil != _pgst && istn < _pgst->IvMac())\n        _pgst->GetStn(istn, pstn);\n    else\n        pstn->SetNil();\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a HETD.\n***************************************************************************/\nvoid HETD::AssertValid(ulong grf)\n{\n    HETD_PAR::AssertValid(0);\n    AssertNilOrPo(_pcfl, 0);\n    Assert(cnoNil == _cno || pvNil != _pcfl && _pcfl->FFind(kctgHelpTopic, _cno), \"bad _cno\");\n    AssertNilOrPo(_pgst, 0);\n}\n\n/***************************************************************************\n    Mark memory for the HETD.\n***************************************************************************/\nvoid HETD::MarkMem(void)\n{\n    AssertValid(0);\n    HETD_PAR::MarkMem();\n    MarkMemObj(_pgst);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for a help text editing gob.\n***************************************************************************/\nHETG::HETG(PHETD phetd, PGCB pgcb) : HETG_PAR(phetd, pgcb)\n{\n    _fMark = fTrue;\n}\n\n/***************************************************************************\n    Create a new help text editing gob.\n***************************************************************************/\nPHETG HETG::PhetgNew(PHETD phetd, PGCB pgcb)\n{\n    AssertPo(phetd, 0);\n    AssertVarMem(pgcb);\n    PHETG phetg;\n\n    if (pvNil == (phetg = NewObj HETG(phetd, pgcb)))\n        return pvNil;\n    if (!phetg->_FInit())\n    {\n        ReleasePpo(&phetg);\n        return pvNil;\n    }\n    phetg->ShowRuler();\n    phetg->Activate(fTrue);\n    return phetg;\n}\n\n/***************************************************************************\n    Return the height of the ruler.\n***************************************************************************/\nlong HETG::_DypTrul(void)\n{\n    AssertThis(0);\n    return kdzpInch / 2 + 1;\n}\n\n/***************************************************************************\n    Create the ruler.\n***************************************************************************/\nPTRUL HETG::_PtrulNew(PGCB pgcb)\n{\n    AssertThis(0);\n    PAP pap;\n    long dyp;\n\n    _FetchPap(LwMin(_cpAnchor, _cpOther), &pap);\n    GetNaturalSize(pvNil, &dyp);\n    return HTRU::PhtruNew(pgcb, this, pap.dxpTab, _DxpDoc(), dyp, kdxpIndentTxtg - _scvHorz, vpappb->OnnDefVariable(),\n                          12, fontNil);\n}\n\nenum\n{\n    kiditOkPicture,\n    kiditCancelPicture,\n    kiditNamePicture,\n    kiditLimPicture\n};\n\n/***************************************************************************\n    Insert a picture into the help text document.\n***************************************************************************/\nbool HETG::FInsertPicture(PCRF pcrf, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    AssertPo(pcrf, 0);\n    Assert(ctg == kctgMbmp, \"bad mbmp chunk\");\n    long cpMin, cpLim;\n    PDLG pdlg;\n    STN stn;\n    long cb;\n    byte rgb[kcbMaxDataStn];\n\n    pdlg = DLG::PdlgNew(dlidFormatPicture);\n    if (pvNil == pdlg)\n        return fFalse;\n\n    pcrf->Pcfl()->FGetName(ctg, cno, &stn);\n    _TokenizeStn(&stn);\n    pdlg->FPutStn(kiditNamePicture, &stn);\n\n    _SwitchSel(fFalse, ginNil);\n    cpMin = LwMin(_cpAnchor, _cpOther);\n    cpLim = LwMax(_cpAnchor, _cpOther);\n\n    if (kiditOkPicture != pdlg->IditDo(kiditNamePicture))\n    {\n        ReleasePpo(&pdlg);\n        goto LFail;\n    }\n\n    pdlg->GetStn(kiditNamePicture, &stn);\n    _TokenizeStn(&stn);\n    cb = stn.CbData();\n    stn.GetData(rgb);\n    ReleasePpo(&pdlg);\n\n    if (Phetd()->FInsertPicture(cno, rgb, cb, cpMin, cpLim - cpMin, _fValidChp ? &_chpIns : pvNil))\n    {\n        cpMin++;\n        SetSel(cpMin, cpMin);\n    }\n    else\n    {\n    LFail:\n        _SwitchSel(fTrue, kginMark);\n    }\n\n    ShowSel();\n    return fTrue;\n}\n\nenum\n{\n    kiditOkButton,\n    kiditCancelButton,\n    kiditNameButton,\n    kiditTopicButton,\n    kiditTopicNameButton,\n    kiditLimButton\n};\n\nbool _FDlgFormatButton(PDLG pdlg, long *pidit, void *pv);\n\n/***************************************************************************\n    Dialog proc for formatting a button.\n***************************************************************************/\nbool _FDlgFormatButton(PDLG pdlg, long *pidit, void *pv)\n{\n    AssertPo(pdlg, 0);\n    AssertVarMem(pidit);\n    long lw;\n\n    switch (*pidit)\n    {\n    case kiditCancelButton:\n        return fTrue; // dismiss the dialog\n\n    case kiditOkButton:\n        if (!pdlg->FGetValues(0, kiditLimButton))\n        {\n            *pidit = ivNil;\n            return fTrue;\n        }\n        if (!pdlg->FGetLwFromEdit(kiditTopicButton, &lw))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Topic number is bad\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditTopicButton);\n            return fFalse;\n        }\n        return fTrue;\n\n    default:\n        break;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Insert a button into the help text document.\n***************************************************************************/\nbool HETG::FInsertButton(PCRF pcrf, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    AssertPo(pcrf, 0);\n    Assert(ctg == kctgGokd, \"bad button chunk\");\n    long cpMin, cpLim;\n    long lw;\n    PDLG pdlg;\n    STN stn;\n    byte rgb[2 * kcbMaxDataStn];\n    long cb;\n\n    pdlg = DLG::PdlgNew(dlidFormatButton, _FDlgFormatButton);\n    if (pvNil == pdlg)\n        return fFalse;\n\n    pcrf->Pcfl()->FGetName(ctg, cno, &stn);\n    _TokenizeStn(&stn);\n    pdlg->FPutStn(kiditNameButton, &stn);\n    pdlg->FPutLwInEdit(kiditTopicButton, cnoNil);\n\n    _SwitchSel(fFalse, ginNil);\n    cpMin = LwMin(_cpAnchor, _cpOther);\n    cpLim = LwMax(_cpAnchor, _cpOther);\n\n    if (kiditOkButton != pdlg->IditDo(kiditNameButton) || !pdlg->FGetLwFromEdit(kiditTopicButton, &lw))\n    {\n        ReleasePpo(&pdlg);\n        goto LFail;\n    }\n\n    pdlg->GetStn(kiditNameButton, &stn);\n    _TokenizeStn(&stn);\n    cb = stn.CbData();\n    stn.GetData(rgb);\n    pdlg->GetStn(kiditTopicNameButton, &stn);\n    _TokenizeStn(&stn);\n    stn.GetData(rgb + cb);\n    cb += stn.CbData();\n    ReleasePpo(&pdlg);\n\n    if (Phetd()->FInsertButton(cno, (CNO)lw, rgb, cb, cpMin, cpLim - cpMin, _fValidChp ? &_chpIns : pvNil))\n    {\n        cpMin++;\n        SetSel(cpMin, cpMin);\n    }\n    else\n    {\n    LFail:\n        _SwitchSel(fTrue, kginMark);\n    }\n\n    ShowSel();\n    return fTrue;\n}\n\nenum\n{\n    kiditOkEdit,\n    kiditCancelEdit,\n    kiditWidthEdit,\n    kiditLimEdit\n};\n\nbool _FDlgFormatEdit(PDLG pdlg, long *pidit, void *pv);\n\n/***************************************************************************\n    Dialog proc for formatting an edit control.\n***************************************************************************/\nbool _FDlgFormatEdit(PDLG pdlg, long *pidit, void *pv)\n{\n    AssertPo(pdlg, 0);\n    AssertVarMem(pidit);\n    long lw;\n\n    switch (*pidit)\n    {\n    case kiditCancelEdit:\n        return fTrue; // dismiss the dialog\n\n    case kiditOkEdit:\n        if (!pdlg->FGetValues(0, kiditLimEdit))\n        {\n            *pidit = ivNil;\n            return fTrue;\n        }\n        if (!pdlg->FGetLwFromEdit(kiditWidthEdit, &lw) || !FIn(lw, 10, 20000))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Width is bad\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditWidthEdit);\n            return fFalse;\n        }\n        return fTrue;\n\n    default:\n        break;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Insert a text edit control into the help text document.\n***************************************************************************/\nbool HETG::FCmdInsertEdit(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    long cpMin, cpLim;\n    PDLG pdlg;\n    ECOS ecos;\n\n    ecos.ctg = 'EDIT';\n    pdlg = DLG::PdlgNew(dlidFormatEdit, _FDlgFormatEdit);\n    if (pvNil == pdlg)\n        return fFalse;\n\n    _SwitchSel(fFalse, ginNil);\n    cpMin = LwMin(_cpAnchor, _cpOther);\n    cpLim = LwMax(_cpAnchor, _cpOther);\n\n    if (kiditOkEdit != pdlg->IditDo(kiditWidthEdit))\n        goto LFail;\n\n    if (!pdlg->FGetLwFromEdit(kiditWidthEdit, &ecos.dxp))\n        goto LFail;\n    ReleasePpo(&pdlg);\n\n    if (Phetd()->FInsertObject(&ecos, size(ecos), cpMin, cpLim - cpMin, _fValidChp ? &_chpIns : pvNil))\n    {\n        cpMin++;\n        SetSel(cpMin, cpMin);\n    }\n    else\n    {\n    LFail:\n        ReleasePpo(&pdlg);\n        _SwitchSel(fTrue, kginMark);\n    }\n\n    ShowSel();\n    return fTrue;\n}\n\n/***************************************************************************\n    Copy the selection.\n***************************************************************************/\nbool HETG::_FCopySel(PDOCB *ppdocb)\n{\n    AssertNilOrVarMem(ppdocb);\n    PHETD phetd;\n\n    if (_cpAnchor == _cpOther)\n        return fFalse;\n\n    if (pvNil == ppdocb)\n        return fTrue;\n\n    if (pvNil != (phetd = HETD::PhetdNew(pvNil, Phetd()->Prca(), pvNil, cnoNil)))\n    {\n        long cpMin = LwMin(_cpAnchor, _cpOther);\n        long cpLim = LwMax(_cpAnchor, _cpOther);\n\n        phetd->SetInternal();\n        phetd->SuspendUndo();\n        if (!phetd->FReplaceTxrd((PTXRD)_ptxtb, cpMin, cpLim - cpMin, 0, 0, fdocNil))\n        {\n            ReleasePpo(&phetd);\n        }\n        else\n            phetd->ResumeUndo();\n    }\n\n    *ppdocb = phetd;\n    return pvNil != *ppdocb;\n}\n\n/***************************************************************************\n    Draw extra stuff for the line. In our case we put a box around grouped\n    text.\n***************************************************************************/\nvoid HETG::_DrawLinExtra(PGNV pgnv, PRC prcClip, LIN *plin, long dxp, long yp, ulong grftxtg)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    AssertVarMem(plin);\n    long cp, cpLimBox;\n    long cpLim = plin->cpMin + plin->ccp;\n    PHETD phetd = Phetd();\n    RC rc;\n\n    for (cp = plin->cpMin; cp < cpLim;)\n    {\n        if (phetd->FGrouped(cp, pvNil, &cpLimBox))\n        {\n            rc.ypTop = yp;\n            rc.ypBottom = yp + plin->dyp;\n            rc.xpLeft = plin->xpLeft + dxp + _DxpFromCp(plin->cpMin, cp) - kdxpIndentTxtg;\n            if (cpLimBox >= cpLim)\n                rc.xpRight = dxp + _DxpDoc();\n            else\n            {\n                rc.xpRight = plin->xpLeft + dxp + _DxpFromCp(plin->cpMin, cpLimBox) - kdxpIndentTxtg;\n            }\n            pgnv->SetPenSize(1, 1);\n            pgnv->FrameRcApt(&rc, &vaptGray, kacrInvert, kacrClear);\n        }\n        cp = cpLimBox;\n    }\n}\n\n/***************************************************************************\n    Draw the view on the help topic.\n***************************************************************************/\nvoid HETG::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    RC rc;\n    APT apt = {0x88, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x00};\n\n    GetRc(&rc, cooLocal);\n    pgnv->FillRcApt(prcClip, &apt, kacrLtGray, kacrWhite);\n    HETG_PAR::Draw(pgnv, prcClip);\n}\n\nenum\n{\n    kiditOkGroupText,\n    kiditCancelGroupText,\n    kiditLwGroupText,\n    kiditTopicGroupText,\n    kiditTopicStnGroupText,\n    kiditLimGroupText,\n};\n\n/***************************************************************************\n    Handle grouping text.\n***************************************************************************/\nbool HETG::FCmdGroupText(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    long cpAnchor, cpOther;\n    PDLG pdlg;\n    CNO cnoTopic;\n    STN stnTopic;\n    byte bGroup;\n    long lw;\n\n    if (_cpAnchor == _cpOther)\n        return fTrue;\n\n    _SwitchSel(fFalse, ginNil);\n    pdlg = DLG::PdlgNew(dlidGroupText);\n    if (pvNil == pdlg)\n        goto LCancel;\n    Phetd()->FGrouped(LwMin(_cpAnchor, _cpOther), pvNil, pvNil, &bGroup, &cnoTopic, &stnTopic);\n    pdlg->FPutLwInEdit(kiditLwGroupText, (long)bGroup);\n    pdlg->FPutLwInEdit(kiditTopicGroupText, cnoTopic);\n    _TokenizeStn(&stnTopic);\n    pdlg->FPutStn(kiditTopicStnGroupText, &stnTopic);\n    if (kiditOkGroupText != pdlg->IditDo(kiditLwGroupText))\n    {\n        ReleasePpo(&pdlg);\n        goto LCancel;\n    }\n    if (!pdlg->FGetLwFromEdit(kiditLwGroupText, &lw) || !FIn(lw, 0, 256))\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Group number must be between 0 and 255!\"), bkOk, cokExclamation);\n        lw = 0;\n    }\n    bGroup = (byte)lw;\n    if (bGroup != 0)\n    {\n        pdlg->GetStn(kiditTopicStnGroupText, &stnTopic);\n        _TokenizeStn(&stnTopic);\n        if (!pdlg->FGetLwFromEdit(kiditTopicGroupText, &lw))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Topic number was bad!\"), bkOk, cokExclamation);\n            cnoTopic = cnoNil;\n        }\n        else\n            cnoTopic = lw;\n    }\n    ReleasePpo(&pdlg);\n\n    if (Phetd()->FGroupText(cpAnchor = _cpAnchor, cpOther = _cpOther, bGroup, cnoTopic, &stnTopic))\n    {\n        SetSel(cpAnchor, cpOther);\n        ShowSel();\n    }\n    else\n    {\n    LCancel:\n        _SwitchSel(fTrue, kginMark);\n    }\n\n    return fTrue;\n}\n\nenum\n{\n    kiditOkSpace,\n    kiditCancelSpace,\n    kiditExtraLineSpace,\n    kiditNumLineSpace,\n    kiditExtraAfterSpace,\n    kiditNumAfterSpace,\n    kiditLimSpace,\n};\n\n/***************************************************************************\n    Put up the line & paragraph spacing dialog and handle any changes.\n***************************************************************************/\nbool HETG::FCmdLineSpacing(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    PDLG pdlg;\n    PAP pap, papOld;\n    long lw;\n\n    pdlg = DLG::PdlgNew(dlidSpacing);\n    if (pvNil == pdlg)\n        return fTrue;\n    _FetchPap(LwMin(_cpAnchor, _cpOther), &pap);\n    pdlg->FPutLwInEdit(kiditExtraLineSpace, pap.dypExtraLine);\n    pdlg->FPutLwInEdit(kiditNumLineSpace, pap.numLine);\n    pdlg->FPutLwInEdit(kiditExtraAfterSpace, pap.dypExtraAfter);\n    pdlg->FPutLwInEdit(kiditNumAfterSpace, pap.numAfter);\n\n    if (kiditOkSpace != pdlg->IditDo(kiditExtraLineSpace))\n    {\n        ReleasePpo(&pdlg);\n        return fTrue;\n    }\n\n    papOld = pap;\n    if (pdlg->FGetLwFromEdit(kiditExtraLineSpace, &lw))\n    {\n        pap.dypExtraLine = (short)lw;\n        papOld.dypExtraLine = (short)~lw;\n    }\n    if (pdlg->FGetLwFromEdit(kiditNumLineSpace, &lw))\n    {\n        pap.numLine = (short)lw;\n        papOld.numLine = (short)~lw;\n    }\n    if (pdlg->FGetLwFromEdit(kiditExtraAfterSpace, &lw))\n    {\n        pap.dypExtraAfter = (short)lw;\n        papOld.dypExtraAfter = (short)~lw;\n    }\n    if (pdlg->FGetLwFromEdit(kiditNumAfterSpace, &lw))\n    {\n        pap.numAfter = (short)lw;\n        papOld.numAfter = (short)~lw;\n    }\n    ReleasePpo(&pdlg);\n\n    FApplyPap(&pap, &papOld);\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle enabling/disabling HETG commands.\n***************************************************************************/\nbool HETG::FEnableHetgCmd(PCMD pcmd, ulong *pgrfeds)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    AssertVarMem(pgrfeds);\n    void *pv;\n    long cp, cpT, cb;\n    STN stn;\n\n    *pgrfeds = fedsDisable;\n    switch (pcmd->cid)\n    {\n    default:\n        if (_cpAnchor != _cpOther)\n            *pgrfeds = fedsEnable;\n        break;\n\n    case cidFormatPicture:\n    case cidFormatButton:\n    case cidFormatEdit:\n        if (LwAbs(_cpAnchor - _cpOther) > 1)\n            break;\n        cp = LwMin(_cpAnchor, _cpOther);\n        if (!Phetd()->FFetchObject(cp, &cpT, &pv, &cb))\n            break;\n        if (cp == cpT && cb >= size(CKI))\n        {\n            switch (*(CTG *)pv)\n            {\n            case kctgMbmp:\n                if (pcmd->cid == cidFormatPicture)\n                    *pgrfeds = fedsEnable;\n                break;\n            case kctgGokd:\n                if (pcmd->cid == cidFormatButton)\n                    *pgrfeds = fedsEnable;\n                break;\n            case kctgEditControl:\n                if (pcmd->cid == cidFormatEdit)\n                    *pgrfeds = fedsEnable;\n                break;\n            }\n        }\n        FreePpv(&pv);\n        break;\n\n    case cidFindAgain:\n    case cidReplace:\n    case cidReplaceFind:\n        if (vpstrg->FGet(kstidFind, &stn) && stn.Cch() > 0)\n            *pgrfeds = fedsEnable;\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Allow the user to edit the properties of an embedded picture.\n***************************************************************************/\nbool HETG::FCmdFormatPicture(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    void *pv;\n    PDLG pdlg;\n    long cp, cpT, cb;\n    byte rgb[size(CKI) + kcbMaxDataStn];\n    STN stn;\n    CKI *pcki = (CKI *)rgb;\n\n    if (LwAbs(_cpAnchor - _cpOther) > 1)\n        return fTrue;\n\n    cp = LwMin(_cpAnchor, _cpOther);\n    if (!Phetd()->FFetchObject(cp, &cpT, &pv, &cb))\n        return fTrue;\n\n    if (cp != cpT || !FIn(cb, size(CKI), size(rgb) + 1) || ((CKI *)pv)->ctg != kctgMbmp)\n    {\n        FreePpv(&pv);\n        return fFalse;\n    }\n\n    CopyPb(pv, rgb, cb);\n    FreePpv(&pv);\n\n    pdlg = DLG::PdlgNew(dlidFormatPicture);\n    if (pvNil == pdlg)\n        return fFalse;\n\n    if (cb > size(CKI) && stn.FSetData(rgb + size(CKI), cb - size(CKI)))\n    {\n        _TokenizeStn(&stn);\n        pdlg->FPutStn(kiditNamePicture, &stn);\n    }\n\n    _SwitchSel(fFalse, ginNil);\n    if (kiditOkPicture != pdlg->IditDo(kiditNamePicture))\n    {\n        ReleasePpo(&pdlg);\n        goto LFail;\n    }\n\n    pdlg->GetStn(kiditNamePicture, &stn);\n    _TokenizeStn(&stn);\n    cb = stn.CbData() + size(CKI);\n    stn.GetData(rgb + size(CKI));\n    ReleasePpo(&pdlg);\n\n    if (Phetd()->FApplyObjectProps(rgb, cb, cp))\n        SetSel(cp, cp + 1);\n    else\n    {\n    LFail:\n        _SwitchSel(fTrue, kginMark);\n    }\n\n    ShowSel();\n    return fTrue;\n}\n\n/***************************************************************************\n    Allow the user to edit the properties of an embedded button.\n***************************************************************************/\nbool HETG::FCmdFormatButton(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    void *pv;\n    PDLG pdlg;\n    long cp, cpT, cb, ib, cbRead;\n    STN stn;\n    byte rgb[size(CKI) + size(long) + 2 * kcbMaxDataStn];\n    CKI *pcki = (CKI *)rgb;\n    long *plw = (long *)(pcki + 1);\n\n    if (LwAbs(_cpAnchor - _cpOther) > 1)\n        return fTrue;\n\n    cp = LwMin(_cpAnchor, _cpOther);\n    if (!Phetd()->FFetchObject(cp, &cpT, &pv, &cb))\n        return fTrue;\n\n    if (cp != cpT || !FIn(cb, size(CKI) + size(long), size(rgb) + 1) || ((CKI *)pv)->ctg != kctgGokd)\n    {\n        FreePpv(&pv);\n        return fFalse;\n    }\n\n    CopyPb(pv, rgb, cb);\n    FreePpv(&pv);\n\n    pdlg = DLG::PdlgNew(dlidFormatButton, _FDlgFormatButton);\n    if (pvNil == pdlg)\n        return fFalse;\n\n    ib = size(CKI) + size(long);\n    if (cb > ib && stn.FSetData(rgb + ib, cb - ib, &cbRead))\n    {\n        _TokenizeStn(&stn);\n        pdlg->FPutStn(kiditNameButton, &stn);\n        if ((ib += cbRead) < cb && stn.FSetData(rgb + ib, cb - ib))\n        {\n            _TokenizeStn(&stn);\n            pdlg->FPutStn(kiditTopicNameButton, &stn);\n        }\n    }\n    pdlg->FPutLwInEdit(kiditTopicButton, *plw);\n\n    _SwitchSel(fFalse, ginNil);\n    if (kiditOkButton != pdlg->IditDo(kiditNameButton) || !pdlg->FGetLwFromEdit(kiditTopicButton, plw))\n    {\n        ReleasePpo(&pdlg);\n        goto LFail;\n    }\n\n    pdlg->GetStn(kiditNameButton, &stn);\n    _TokenizeStn(&stn);\n    ib = size(CKI) + size(long);\n    stn.GetData(rgb + ib);\n    ib += stn.CbData();\n    pdlg->GetStn(kiditTopicNameButton, &stn);\n    _TokenizeStn(&stn);\n    stn.GetData(rgb + ib);\n    ib += stn.CbData();\n    ReleasePpo(&pdlg);\n\n    if (Phetd()->FApplyObjectProps(rgb, ib, cp))\n        SetSel(cp, cp + 1);\n    else\n    {\n    LFail:\n        _SwitchSel(fTrue, kginMark);\n    }\n\n    ShowSel();\n    return fTrue;\n}\n\n/***************************************************************************\n    Allow the user to edit the properties of an embedded edit control.\n***************************************************************************/\nbool HETG::FCmdFormatEdit(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    void *pv;\n    PDLG pdlg;\n    long cp, cpT, cb;\n    ECOS ecos;\n\n    if (LwAbs(_cpAnchor - _cpOther) > 1)\n        return fTrue;\n\n    cp = LwMin(_cpAnchor, _cpOther);\n    if (!Phetd()->FFetchObject(cp, &cpT, &pv, &cb))\n        return fTrue;\n\n    if (cp != cpT || cb != size(ecos) || *(CTG *)pv != kctgEditControl)\n    {\n        FreePpv(&pv);\n        return fFalse;\n    }\n\n    CopyPb(pv, &ecos, size(ecos));\n    FreePpv(&pv);\n\n    pdlg = DLG::PdlgNew(dlidFormatEdit, _FDlgFormatEdit);\n    if (pvNil == pdlg)\n        return fFalse;\n\n    pdlg->FPutLwInEdit(kiditWidthEdit, ecos.dxp);\n\n    _SwitchSel(fFalse, ginNil);\n    if (kiditOkEdit != pdlg->IditDo(kiditWidthEdit) || !pdlg->FGetLwFromEdit(kiditWidthEdit, &ecos.dxp))\n    {\n        ReleasePpo(&pdlg);\n        goto LFail;\n    }\n    ReleasePpo(&pdlg);\n\n    if (Phetd()->FApplyObjectProps(&ecos, size(ecos), cp))\n        SetSel(cp, cp + 1);\n    else\n    {\n    LFail:\n        _SwitchSel(fTrue, kginMark);\n    }\n\n    ShowSel();\n    return fTrue;\n}\n\n/***************************************************************************\n    Edit the topic info.\n***************************************************************************/\nbool HETG::FCmdEditHtop(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    Phetd()->EditHtop();\n    return fTrue;\n}\n\n/***************************************************************************\n    Open the next or previous topic.\n***************************************************************************/\nbool HETG::FCmdNextTopic(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PHETD phetd;\n    PHETD phetdThis = Phetd();\n    PHEDO phedo = phetdThis->Phedo();\n\n    if (pvNil == phedo)\n        return fTrue;\n\n    phetd = pcmd->cid == cidNextTopic ? phedo->PhetdOpenNext(phetdThis) : phedo->PhetdOpenPrev(phetdThis);\n    if (pvNil == phetd)\n    {\n        phetd = pcmd->cid == cidNextTopic ? phedo->PhetdOpenNext(pvNil) : phedo->PhetdOpenPrev(pvNil);\n    }\n\n    if (pvNil == phetd || phetd == phetdThis)\n    {\n        ReleasePpo(&phetd);\n        return fTrue;\n    }\n\n    if (phetdThis->Cno() == cnoNil || phetdThis->FDirty())\n        phetdThis = pvNil;\n\n    // open a DMD onto the topic\n    if (phetd->Cddg() == 0)\n    {\n        // need to open a window onto the doc.\n        if (phetd->PdmdNew() != pvNil && pvNil != phetdThis)\n            phetdThis->CloseAllDdg();\n    }\n    else\n    {\n        phetd->ActivateDmd();\n        if (pvNil != phetd->PddgActive() && pvNil != phetdThis)\n            phetdThis->CloseAllDdg();\n    }\n\n    ReleasePpo(&phetd);\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle cidFind and cidFindAgain.  Search for some text.\n***************************************************************************/\nbool HETG::FCmdFind(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    long cpMin, cpLim;\n    PHETD phetd;\n\n    switch (pcmd->cid)\n    {\n    case cidReplace:\n    case cidReplaceFind:\n        if (!Phetd()->FDoReplace(_cpAnchor, _cpOther, &cpMin, &cpLim))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Replace failed.\"), bkOk, cokStop);\n            break;\n        }\n        SetSel(cpMin, cpLim);\n        ShowSel();\n        if (pcmd->cid == cidReplace)\n            break;\n        vpappb->UpdateMarked();\n        cpMin = LwMin(cpMin + 1, cpLim);\n        goto LFind;\n\n    case cidFind:\n        if (!_FDoFindDlg())\n            break;\n        cpMin = LwMin(_cpAnchor, _cpOther);\n        goto LFind;\n\n    case cidFindAgain:\n        cpMin = LwMin(_cpAnchor, _cpOther);\n        cpMin = LwMin(cpMin + 1, LwMax(_cpAnchor, _cpOther));\n    LFind:\n        if (!Phetd()->FDoFind(cpMin, &cpMin, &cpLim))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Search string not found.\"), bkOk, cokStop);\n            break;\n        }\n        SetSel(cpMin, cpLim);\n        ShowSel();\n        break;\n\n    case cidFindNextTopic:\n        phetd = Phetd();\n        if (phetd->Phedo() != pvNil)\n            phetd->Phedo()->DoFindNext(phetd, phetd->Cno());\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle printing of a topic.\n***************************************************************************/\nbool HETG::FCmdPrint(PCMD pcmd)\n{\n#ifdef WIN\n    PRINTDLG pd;\n    DOCINFO di;\n    PGPT pgpt = pvNil;\n    PGNV pgnv = pvNil;\n    STN stn;\n    RC rc;\n\n    // set up the print dialog structure\n    ClearPb(&pd, size(pd));\n    pd.lStructSize = size(pd);\n    pd.Flags = PD_RETURNDC | PD_HIDEPRINTTOFILE | PD_NOPAGENUMS | PD_NOSELECTION | PD_USEDEVMODECOPIES;\n    pd.hwndOwner = vwig.hwndApp;\n\n    if (!PrintDlg(&pd))\n        goto LFail;\n\n    // see if the device supports BitBlt\n    if (!(GetDeviceCaps(pd.hDC, RASTERCAPS) & RC_BITBLT))\n        goto LFail;\n\n    if (pvNil == (pgpt = GPT::PgptNew(pd.hDC)))\n        goto LFail;\n    if (pvNil == (pgnv = NewObj GNV(pgpt)))\n        goto LFail;\n\n    rc.Zero();\n    rc.xpRight = GetDeviceCaps(pd.hDC, LOGPIXELSX);\n    rc.ypBottom = GetDeviceCaps(pd.hDC, LOGPIXELSY);\n    pgnv->SetRcDst(&rc);\n    rc.xpRight = kdzpInch;\n    rc.ypBottom = kdzpInch;\n    pgnv->SetRcSrc(&rc);\n\n    Phetd()->GetName(&stn);\n    di.cbSize = size(di);\n    di.lpszDocName = stn.Psz();\n    di.lpszOutput = pvNil;\n\n    if (SP_ERROR == StartDoc(pd.hDC, &di))\n        goto LFail;\n\n    if (0 >= StartPage(pd.hDC))\n        goto LFail;\n\n    rc.Set(0, 0, GetDeviceCaps(pd.hDC, HORZRES), GetDeviceCaps(pd.hDC, VERTRES));\n    rc.Inset(kdzpInch, kdzpInch);\n\n    DrawLines(pgnv, &rc, rc.xpLeft, rc.ypTop, 0, klwMax, ftxtgNoColor);\n\n    if (0 >= EndPage(pd.hDC))\n        goto LFail;\n\n    if (0 >= EndDoc(pd.hDC))\n    {\n    LFail:\n        vpappb->TGiveAlertSz(PszLit(\"Printing failed\"), bkOk, cokExclamation);\n    }\n\n    if (pd.hDC != hNil)\n        DeleteDC(pd.hDC);\n    if (pd.hDevMode != hNil)\n        GlobalFree(pd.hDevMode);\n    if (pd.hDevNames != hNil)\n        GlobalFree(pd.hDevNames);\n    ReleasePpo(&pgnv);\n    ReleasePpo(&pgpt);\n#endif // WIN\n\n    return fTrue;\n}\n\nenum\n{\n    kiditIgnoreSpell,\n    kiditCancelSpell,\n    kiditChangeSpell,\n    kiditChangeAllSpell,\n    kiditIgnoreAllSpell,\n    kiditAddSpell,\n    kiditComboSpell,\n    kiditBadSpell,\n    kiditLimSpell\n};\n\n/***************************************************************************\n    Spell check the topic.\n***************************************************************************/\nbool HETG::FCmdCheckSpelling(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n#ifdef SPELL\n    STN stn;\n    long cactChanges;\n\n    if (pvNil != vpsplc)\n    {\n        vpsplc->FlushIgnoreList();\n        vpsplc->FlushChangeList(fTrue);\n    }\n\n    if (FCheckSpelling(&cactChanges))\n    {\n        if (cactChanges == 0)\n            stn = PszLit(\"No corrections made.\");\n        else\n            stn.FFormatSz(PszLit(\"Corrected %d words.\"), cactChanges);\n        vpappb->TGiveAlertSz(stn.Psz(), bkOk, cokExclamation);\n    }\n#else  //! SPELL\n    vpappb->TGiveAlertSz(PszLit(\"Spell checking not available\"), bkOk, cokExclamation);\n#endif //! SPELL\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Spell check the topic.\n***************************************************************************/\nbool HETG::FCheckSpelling(long *pcactChanges)\n{\n    AssertThis(0);\n    AssertVarMem(pcactChanges);\n\n#ifdef SPELL\n    achar rgch[1024];\n    long cpMin, cpMac;\n    long cchBuf;\n    long ichMin, ichLim;\n    long idit;\n    long cstn;\n    STN stnSrc, stnDst;\n    long scrs;\n    PDLG pdlg = pvNil;\n\n    *pcactChanges = 0;\n    if (pvNil == vpsplc)\n    {\n        if (ksclidAmerican == vsclid)\n            stnSrc = PszLit(\"Chelp\");\n        else\n            stnSrc.FFormatSz(PszLit(\"Chp%d\"), vsclid);\n\n        if (pvNil == (vpsplc = SPLC::PsplcNew(vsclid, &stnSrc)))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Couldn't load the main dictionary\"), bkOk, cokExclamation);\n            return fFalse;\n        }\n    }\n\n    cpMin = 0;\n    cpMac = _ptxtb->CpMac() - 1;\n\n    for (cchBuf = 0; cpMin < cpMac;)\n    {\n        if (cchBuf <= 0)\n        {\n            // fetch more text\n            if ((cchBuf = CvFromRgv(rgch)) + cpMin < cpMac)\n            {\n                // make sure we end on a word boundary\n                long cpT = _ptxtb->CpPrev(cpMin + cchBuf, fTrue);\n                if (cpT > cpMin)\n                    cchBuf = cpT - cpMin;\n            }\n            else\n                cchBuf = cpMac - cpMin;\n\n            AssertIn(cchBuf, 1, CvFromRgv(rgch) + 1);\n            _ptxtb->FetchRgch(cpMin, cchBuf, rgch);\n        }\n        AssertIn(cchBuf, 1, CvFromRgv(rgch) + 1);\n\n        if (!vpsplc->FCheck(rgch, cchBuf, &ichMin, &ichLim, &stnDst, &scrs))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Spell checking failed!\"), bkOk, cokExclamation);\n            return fFalse;\n        }\n\n        if (ichMin >= cchBuf || ichMin >= ichLim)\n        {\n            cpMin += cchBuf;\n            cchBuf = 0;\n            continue;\n        }\n\n        // misspelled word\n        SetSel(cpMin + ichMin, cpMin + ichLim);\n\n        if (scrs == scrsReturningChangeAlways)\n        {\n            // change all word - change it and continue on\n            goto LChange;\n        }\n\n        // put up the dialog\n        if (pvNil == pdlg && pvNil == (pdlg = DLG::PdlgNew(dlidCheckSpelling)))\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Couldn't create spelling dialog!\"), bkOk, cokExclamation);\n            return fFalse;\n        }\n\n        stnSrc.SetRgch(rgch + ichMin, ichLim - ichMin);\n        pdlg->FPutStn(kiditBadSpell, &stnSrc);\n        if (scrs == scrsReturningChangeOnce)\n            pdlg->FPutStn(kiditComboSpell, &stnDst);\n        else\n            pdlg->FPutStn(kiditComboSpell, &stnSrc);\n\n        // fill in the suggestions\n        pdlg->ClearList(kiditComboSpell);\n        for (cstn = 0; cstn < 20 && vpsplc->FSuggest(rgch + ichMin, ichLim - ichMin, cstn == 0, &stnDst); cstn++)\n        {\n            pdlg->FAddToList(kiditComboSpell, &stnDst);\n        }\n\n        Clean();\n        idit = pdlg->IditDo(kiditComboSpell);\n\n        switch (idit)\n        {\n        default:\n            Bug(\"unknown button\");\n            ReleasePpo(&pdlg);\n            return fFalse;\n\n        case kiditAddSpell:\n            vpsplc->FAddToUser(&stnSrc);\n            goto LIgnore;\n\n        case kiditIgnoreAllSpell:\n            vpsplc->FIgnoreAll(&stnSrc);\n            // fall thru\n        case kiditIgnoreSpell:\n        LIgnore:\n            if (cchBuf > ichLim)\n                BltPb(rgch + ichLim, rgch, (cchBuf - ichLim) * size(achar));\n            cchBuf -= ichLim;\n            cpMin += ichLim;\n            break;\n\n        case kiditChangeSpell:\n        case kiditChangeAllSpell:\n            pdlg->GetStn(kiditComboSpell, &stnDst);\n            if (!stnDst.FEqualRgch(rgch + ichMin, ichLim - ichMin))\n            {\n                // tell the spell checker that we're doing a change\n                vpsplc->FChange(&stnSrc, &stnDst, idit == kiditChangeAllSpell);\n\n            LChange:\n                (*pcactChanges)++;\n                HideSel();\n                if (!_ptxtb->FReplaceRgch(stnDst.Prgch(), stnDst.Cch(), cpMin + ichMin, ichLim - ichMin))\n                {\n                    vpappb->TGiveAlertSz(PszLit(\"Couldn't replace wrong word!\"), bkOk, cokExclamation);\n                    ReleasePpo(&pdlg);\n                    return fFalse;\n                }\n            }\n\n            if (cchBuf > ichLim)\n                BltPb(rgch + ichLim, rgch, (cchBuf - ichLim) * size(achar));\n            cchBuf -= ichLim;\n            cpMac += stnDst.Cch() + ichMin - ichLim;\n            cpMin += stnDst.Cch() + ichMin;\n            break;\n\n        case kiditCancelSpell:\n            ReleasePpo(&pdlg);\n            return fFalse;\n        }\n    }\n\n    ReleasePpo(&pdlg);\n#else  //! SPELL\n    vpappb->TGiveAlertSz(PszLit(\"Spell checking not available\"), bkOk, cokExclamation);\n    *pcactChanges = 0;\n#endif //! SPELL\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle idle stuff - update the ruler with our new height.\n***************************************************************************/\nvoid HETG::InvalCp(long cp, long ccpIns, long ccpDel)\n{\n    AssertThis(0);\n    long dyp;\n\n    HETG_PAR::InvalCp(cp, ccpIns, ccpDel);\n    if (pvNil == _ptrul || !_ptrul->FIs(kclsHTRU))\n        return;\n\n    GetNaturalSize(pvNil, &dyp);\n    ((PHTRU)_ptrul)->SetDypHeight(dyp);\n}\n\nenum\n{\n    kiditOkSize,\n    kiditCancelSize,\n    kiditSizeSize,\n    kiditLimSize\n};\n\n/***************************************************************************\n    Get a font size from the user.\n***************************************************************************/\nbool HETG::_FGetOtherSize(long *pdypFont)\n{\n    AssertThis(0);\n    AssertVarMem(pdypFont);\n    PDLG pdlg;\n    bool fRet;\n\n    if (pvNil == (pdlg = DLG::PdlgNew(dlidFontSize)))\n        return fFalse;\n\n    pdlg->FPutLwInEdit(kiditSizeSize, *pdypFont);\n\n    if (kiditOkSize != pdlg->IditDo(kiditSizeSize))\n    {\n        ReleasePpo(&pdlg);\n        return fFalse;\n    }\n\n    fRet = pdlg->FGetLwFromEdit(kiditSizeSize, pdypFont);\n    ReleasePpo(&pdlg);\n    return fRet;\n}\n\nenum\n{\n    kiditOkOffset,\n    kiditCancelOffset,\n    kiditSizeOffset,\n    kiditSuperOffset,\n    kiditLimOffset\n};\n\n/***************************************************************************\n    Get the amount to sub/superscript from the user.\n***************************************************************************/\nbool HETG::_FGetOtherSubSuper(long *pdypOffset)\n{\n    AssertThis(0);\n    AssertVarMem(pdypOffset);\n    PDLG pdlg;\n    bool fRet;\n\n    if (pvNil == (pdlg = DLG::PdlgNew(dlidSubSuper)))\n        return fFalse;\n\n    pdlg->FPutLwInEdit(kiditSizeSize, LwAbs(*pdypOffset));\n    pdlg->PutCheck(kiditSuperOffset, *pdypOffset < 0);\n\n    if (kiditOkOffset != pdlg->IditDo(kiditSizeOffset))\n    {\n        ReleasePpo(&pdlg);\n        return fFalse;\n    }\n\n    fRet = pdlg->FGetLwFromEdit(kiditSizeOffset, pdypOffset);\n    if (pdlg->FGetCheck(kiditSuperOffset))\n        *pdypOffset = -*pdypOffset;\n    ReleasePpo(&pdlg);\n    return fRet;\n}\n\n/***************************************************************************\n    Get the height of a particular line. Returns 0 if the line is past\n    the end of the document.\n***************************************************************************/\nlong HETG::DypLine(long ilin)\n{\n    AssertThis(0);\n    AssertIn(ilin, 0, kcbMax);\n    LIN lin;\n    long ilinT;\n\n    _FetchLin(ilin, &lin, &ilinT);\n    if (ilin > ilinT)\n        return 0;\n\n    return LwMax(1, lin.dyp);\n}\n\n/***************************************************************************\n    Constructor for a text ruler.\n***************************************************************************/\nHTRU::HTRU(GCB *pgcb, PTXTG ptxtg) : HTRU_PAR(pgcb)\n{\n    AssertPo(ptxtg, 0);\n    _ptxtg = ptxtg;\n}\n\n/***************************************************************************\n    Create a new text ruler.\n***************************************************************************/\nPHTRU HTRU::PhtruNew(GCB *pgcb, PTXTG ptxtg, long dxpTab, long dxpDoc, long dypDoc, long xpLeft, long onn, long dypFont,\n                     ulong grfont)\n{\n    AssertVarMem(pgcb);\n    AssertPo(ptxtg, 0);\n    AssertIn(dxpTab, 1, kcbMax);\n    AssertIn(dxpDoc, 1, kcbMax);\n    PHTRU phtru;\n\n    if (pvNil == (phtru = NewObj HTRU(pgcb, ptxtg)))\n        return pvNil;\n\n    phtru->_dxpTab = dxpTab;\n    phtru->_dxpDoc = dxpDoc;\n    phtru->_dyp = dypDoc;\n    phtru->_xpLeft = xpLeft;\n    phtru->_onn = onn;\n    phtru->_dypFont = dypFont;\n    phtru->_grfont = grfont;\n    AssertPo(phtru, 0);\n    return phtru;\n}\n\n/***************************************************************************\n    Draw the ruler.\n***************************************************************************/\nvoid HTRU::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    RC rc, rcT;\n    STN stn;\n\n    GetRc(&rc, cooLocal);\n    pgnv->SetPenSize(0, 1);\n    pgnv->FrameRc(&rc, kacrBlack);\n    rc.Inset(0, 1);\n    pgnv->FillRc(&rc, kacrWhite);\n\n    rcT = rc;\n    rcT.ypTop = rc.YpCenter();\n    rcT.ypBottom = rcT.ypTop + 1;\n    pgnv->FillRc(&rcT, kacrBlack);\n\n    stn.FFormatSz(PszLit(\"Width = %d; Tab = %d; Height = %d\"), _dxpDoc, _dxpTab, _dyp);\n    pgnv->SetFont(_onn, _grfont, _dypFont);\n    pgnv->DrawStn(&stn, rc.xpLeft + 8, rc.ypTop);\n\n    rc.ypTop = rcT.ypBottom;\n    rcT = rc;\n    rcT.xpLeft = _xpLeft - 1;\n    rcT.xpRight = _xpLeft + 1;\n    pgnv->FillRcApt(&rcT, &vaptGray, kacrBlack, kacrWhite);\n\n    rcT.Offset(_dxpDoc, 0);\n    pgnv->FillRc(&rcT, kacrBlack);\n\n    rcT.Inset(0, 2);\n    rcT.Offset(_dxpTab - _dxpDoc, 0);\n    pgnv->FillRc(&rcT, kacrBlack);\n}\n\n/***************************************************************************\n    Track the mouse.\n***************************************************************************/\nbool HTRU::FCmdTrackMouse(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (pcmd->cid == cidMouseDown)\n    {\n        Assert(vpcex->PgobTracking() == pvNil, \"mouse already being tracked!\");\n        RC rc;\n\n        GetRc(&rc, cooLocal);\n        if (pcmd->yp < rc.YpCenter())\n        {\n            _rtt = rttNil;\n            return fTrue;\n        }\n\n        if (LwAbs(pcmd->xp - _xpLeft - _dxpTab) < 3)\n        {\n            _rtt = krttTab;\n            _dxpTrack = _dxpTab - pcmd->xp;\n        }\n        else if (LwAbs(pcmd->xp - _xpLeft - _dxpDoc) < 3)\n        {\n            _rtt = krttDoc;\n            _dxpTrack = _dxpDoc - pcmd->xp;\n        }\n        else\n        {\n            _rtt = rttNil;\n            return fTrue;\n        }\n        vpcex->TrackMouse(this);\n    }\n    else\n    {\n        Assert(vpcex->PgobTracking() == this, \"not tracking mouse!\");\n        Assert(pcmd->cid == cidTrackMouse, 0);\n        Assert(_rtt != rttNil, \"no track type\");\n    }\n\n    switch (_rtt)\n    {\n    case krttTab:\n        _ptxtg->SetDxpTab(pcmd->xp + _dxpTrack);\n        break;\n    case krttDoc:\n        _ptxtg->SetDxpDoc(pcmd->xp + _dxpTrack);\n        break;\n    }\n\n    if (pcmd->cid == cidMouseDown)\n        _ptxtg->Ptxtb()->SuspendUndo();\n\n    if (!(pcmd->grfcust & fcustMouse))\n    {\n        _ptxtg->Ptxtb()->ResumeUndo();\n        vpcex->EndMouseTracking();\n        _rtt = rttNil;\n    }\n\n    return fTrue;\n}\n\nenum\n{\n    kiditOkFont,\n    kiditCancelFont,\n    kiditComboFont,\n    kiditLimFont\n};\n\n/***************************************************************************\n    Give the fonts in a dialog.\n***************************************************************************/\nbool HETG::FCmdFontDialog(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    PDLG pdlg;\n    CHP chpNew, chpOld;\n    STN stn;\n    long onn;\n\n    if (pvNil == (pdlg = DLG::PdlgNew(dlidChooseFont)))\n        return fTrue;\n\n    // fill in the font list\n    pdlg->ClearList(kiditComboFont);\n    for (onn = 0; onn < vntl.OnnMac(); onn++)\n    {\n        vntl.GetStn(onn, &stn);\n        pdlg->FAddToList(kiditComboFont, &stn);\n    }\n\n    _EnsureChpIns();\n    vntl.GetStn(_chpIns.onn, &stn);\n    pdlg->FPutStn(kiditComboFont, &stn);\n\n    if (kiditOkFont == pdlg->IditDo(kiditComboFont))\n    {\n        pdlg->GetStn(kiditComboFont, &stn);\n        if (vntl.FGetOnn(&stn, &onn))\n        {\n            chpNew.Clear();\n            chpOld.Clear();\n            chpNew.onn = onn;\n            chpOld.onn = ~onn;\n            FApplyChp(&chpNew, &chpOld);\n        }\n    }\n    ReleasePpo(&pdlg);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the tab width.\n***************************************************************************/\nvoid HTRU::SetDxpTab(long dxpTab)\n{\n    AssertThis(0);\n    if (dxpTab == _dxpTab)\n        return;\n\n    _dxpTab = dxpTab;\n    AssertThis(0);\n    InvalRc(pvNil, kginMark);\n}\n\n/***************************************************************************\n    Set the document width.\n***************************************************************************/\nvoid HTRU::SetDxpDoc(long dxpDoc)\n{\n    AssertThis(0);\n    if (dxpDoc == _dxpDoc)\n        return;\n\n    _dxpDoc = dxpDoc;\n    AssertThis(0);\n    InvalRc(pvNil, kginMark);\n}\n\n/***************************************************************************\n    Change the location of the left edge of the document.\n***************************************************************************/\nvoid HTRU::SetXpLeft(long xpLeft)\n{\n    AssertThis(0);\n    if (xpLeft == _xpLeft)\n        return;\n\n    _xpLeft = xpLeft;\n    AssertThis(0);\n    InvalRc(pvNil, kginMark);\n}\n\n/***************************************************************************\n    Set the text height.\n***************************************************************************/\nvoid HTRU::SetDypHeight(long dyp)\n{\n    AssertThis(0);\n    if (dyp == _dyp)\n        return;\n\n    _dyp = dyp;\n    AssertThis(0);\n    InvalRc(pvNil, kginMark);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of a HTRU.\n***************************************************************************/\nvoid HTRU::AssertValid(ulong grf)\n{\n    HTRU_PAR::AssertValid(0);\n    AssertPo(_ptxtg, 0);\n    AssertIn(_dxpTab, 1, kcbMax);\n    AssertIn(_dxpDoc, 1, kcbMax);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Munge the string so it is a valid token or empty.\n***************************************************************************/\nvoid _TokenizeStn(PSTN pstn)\n{\n    AssertPo(pstn, 0);\n    bool fDigitOk;\n    SZ sz;\n    achar ch;\n    achar *pch;\n\n    fDigitOk = fFalse;\n    pstn->GetSz(sz);\n    for (pch = sz; *pch; pch++, fDigitOk = fTrue)\n    {\n        ch = *pch;\n        if (!FIn(ch, ChLit('A'), ChLit('Z') + 1) && !FIn(ch, ChLit('a'), ChLit('z') + 1))\n        {\n            if (!fDigitOk || !FIn(ch, ChLit('0'), ChLit('9') + 1))\n            {\n                *pch = ChLit('_');\n            }\n        }\n    }\n    *pch = 0;\n    *pstn = sz;\n}\n\nenum\n{\n    kiditOkFind,\n    kiditCancelFind,\n    kiditFindFind,\n    kiditReplaceFind,\n    kiditCaseSensitiveFind,\n    kiditLimFind\n};\n\nbool _FDlgFind(PDLG pdlg, long *pidit, void *pv);\n\n/***************************************************************************\n    Dialog proc for searching.\n***************************************************************************/\nbool _FDlgFind(PDLG pdlg, long *pidit, void *pv)\n{\n    AssertPo(pdlg, 0);\n    AssertVarMem(pidit);\n    STN stn;\n\n    switch (*pidit)\n    {\n    case kiditCancelFind:\n        return fTrue; // dismiss the dialog\n\n    case kiditOkFind:\n        if (!pdlg->FGetValues(0, kiditLimFind))\n        {\n            *pidit = ivNil;\n            return fTrue;\n        }\n        pdlg->GetStn(kiditFindFind, &stn);\n        if (stn.Cch() <= 0)\n        {\n            vpappb->TGiveAlertSz(PszLit(\"Empty search string\"), bkOk, cokStop);\n            pdlg->SelectDit(kiditFindFind);\n            return fFalse;\n        }\n        return fTrue;\n\n    default:\n        break;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Do the find dialog.  Return true if the user OK'ed the dialog.\n***************************************************************************/\nbool _FDoFindDlg(void)\n{\n    PDLG pdlg;\n    STN stn;\n    bool fRet = fFalse;\n\n    if (pvNil == (pdlg = DLG::PdlgNew(dlidFind, _FDlgFind)))\n        return fFalse;\n    vpstrg->FGet(kstidFind, &stn);\n    pdlg->FPutStn(kiditFindFind, &stn);\n    vpstrg->FGet(kstidReplace, &stn);\n    pdlg->FPutStn(kiditReplaceFind, &stn);\n    pdlg->PutCheck(kiditCaseSensitiveFind, _fCaseSensitive);\n\n    if (kiditOkFind != pdlg->IditDo(kiditFindFind))\n        goto LFail;\n    pdlg->GetStn(kiditFindFind, &stn);\n    if (stn.Cch() <= 0)\n        goto LFail;\n    vpstrg->FPut(kstidFind, &stn);\n    pdlg->GetStn(kiditReplaceFind, &stn);\n    vpstrg->FPut(kstidReplace, &stn);\n    _fCaseSensitive = FPure(pdlg->FGetCheck(kiditCaseSensitiveFind));\n    fRet = fTrue;\n\nLFail:\n    ReleasePpo(&pdlg);\n\n    return fRet;\n}\n"
  },
  {
    "path": "kauai/tools/chtxt.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Chunky editor text document management\n\n***************************************************************************/\n#include \"ched.h\"\nASSERTNAME\n\n/***************************************************************************\n    Constructor for a chunky text doc.\n***************************************************************************/\nCHTXD::CHTXD(PDOCB pdocb, ulong grfdoc) : CHTXD_PAR(pdocb, grfdoc)\n{\n}\n\n/***************************************************************************\n    Create a new chunky text doc.\n***************************************************************************/\nPCHTXD CHTXD::PchtxdNew(PFNI pfni, PBSF pbsf, short osk, PDOCB pdocb, ulong grfdoc)\n{\n    AssertNilOrPo(pfni, ffniFile);\n    AssertNilOrPo(pbsf, 0);\n    AssertNilOrPo(pdocb, 0);\n    PCHTXD pchtxd;\n\n    if (pvNil == (pchtxd = NewObj CHTXD(pdocb, grfdoc)))\n        return pvNil;\n\n    if (!pchtxd->_FInit(pfni, pbsf, osk))\n        ReleasePpo(&pchtxd);\n\n    return pchtxd;\n}\n\n/***************************************************************************\n    Create a new document display gob for the chunky text doc.\n***************************************************************************/\nPDDG CHTXD::PddgNew(PGCB pgcb)\n{\n    return CHTDD::PchtddNew(this, pgcb, vpappb->OnnDefFixed(), fontNil, vpappb->DypTextDef(), 4);\n}\n\nBEGIN_CMD_MAP(CHTDD, DDG)\nON_CID_GEN(cidCompileChunky, &CHTDD::FCmdCompileChunky, pvNil)\nON_CID_GEN(cidCompileScript, &CHTDD::FCmdCompileScript, pvNil)\nON_CID_GEN(cidAssembleScript, &CHTDD::FCmdCompileScript, pvNil)\nEND_CMD_MAP_NIL()\n\n/***************************************************************************\n    Constructor.\n***************************************************************************/\nCHTDD::CHTDD(PTXTB ptxtb, PGCB pgcb, long onn, ulong grfont, long dypFont, long cchTab)\n    : CHTDD_PAR(ptxtb, pgcb, onn, grfont, dypFont, cchTab)\n{\n    _fMark = fFalse;\n}\n\n/***************************************************************************\n    Create a new one.\n***************************************************************************/\nPCHTDD CHTDD::PchtddNew(PTXTB ptxtb, PGCB pgcb, long onn, ulong grfont, long dypFont, long cchTab)\n{\n    PCHTDD pchtdd;\n\n    if (pvNil == (pchtdd = NewObj CHTDD(ptxtb, pgcb, onn, grfont, dypFont, cchTab)))\n    {\n        return pvNil;\n    }\n\n    if (!pchtdd->_FInit())\n    {\n        ReleasePpo(&pchtdd);\n        return pvNil;\n    }\n    pchtdd->Activate(fTrue);\n\n    AssertPo(pchtdd, 0);\n    return pchtdd;\n}\n\n/***************************************************************************\n    Compile this text file into a chunky file and open it.\n***************************************************************************/\nbool CHTDD::FCmdCompileChunky(PCMD pcmd)\n{\n    FNI fni;\n    PCFL pcfl;\n    STN stnFile;\n    MSFIL msfil;\n    CHCM chcm;\n    PDOC pdoc;\n\n    if (!fni.FGetTemp())\n        return fTrue;\n\n    Ptxtb()->GetName(&stnFile);\n    pcfl = chcm.PcflCompile(Ptxtb()->Pbsf(), &stnFile, &fni, &msfil);\n    if (pvNil == pcfl)\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Compiling chunky file failed\"), bkOk, cokExclamation);\n        pcmd->cid = cidNil; // don't record\n\n        // if the error file isn't empty, open it\n        OpenSinkDoc(&msfil);\n        return fTrue;\n    }\n    pdoc = DOC::PdocNew(&fni);\n    pcfl->SetTemp(fTrue);\n    ReleasePpo(&pcfl);\n    if (pvNil == pdoc)\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Can't open new chunky file\"), bkOk, cokExclamation);\n        pcmd->cid = cidNil; // don't record\n        return fTrue;\n    }\n    pdoc->PdmdNew();\n    ReleasePpo(&pdoc);\n    return fTrue;\n}\n\n/***************************************************************************\n    Compile this text file into a script and put it in a chunky file and\n    open it.\n***************************************************************************/\nbool CHTDD::FCmdCompileScript(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    SCCG sccg;\n    MSFIL msfil;\n    STN stnFile;\n    PSCPT pscpt;\n    PDOC pdoc = pvNil;\n\n    Ptxtb()->GetName(&stnFile);\n    LEXB lexb(Ptxtb()->Pbsf(), &stnFile);\n    pscpt = sccg.PscptCompileLex(&lexb, pcmd->cid == cidCompileScript, &msfil);\n    if (pvNil == pscpt)\n    {\n        vpappb->TGiveAlertSz(PszLit(\"Compiling script failed\"), bkOk, cokExclamation);\n        pcmd->cid = cidNil; // don't record\n\n        // if the error file isn't empty, open it\n        OpenSinkDoc(&msfil);\n        return fTrue;\n    }\n\n    // add the chunk and write the data\n    if (pvNil == (pdoc = DOC::PdocNew(pvNil)))\n        goto LFail;\n\n    if (!pscpt->FSaveToChunk(pdoc->Pcfl(), kctgScript, 0))\n    {\n    LFail:\n        vpappb->TGiveAlertSz(PszLit(\"Can't create new chunky file\"), bkOk, cokExclamation);\n        ReleasePpo(&pscpt);\n        ReleasePpo(&pdoc);\n        pcmd->cid = cidNil; // don't record\n        return fTrue;\n    }\n    ReleasePpo(&pscpt);\n\n    pdoc->PdmdNew();\n    ReleasePpo(&pdoc);\n    return fTrue;\n}\n\n/***************************************************************************\n    Open the file based message sink file as a chunky text document.\n***************************************************************************/\nvoid OpenSinkDoc(PMSFIL pmsfil)\n{\n    PDOCB pdocb;\n    PFIL pfil;\n    FNI fni;\n    bool fTemp;\n\n    if (pvNil == (pfil = pmsfil->PfilRelease()))\n        return;\n    if (pfil->FpMac() == 0)\n    {\n        ReleasePpo(&pfil);\n        return;\n    }\n    pfil->GetFni(&fni);\n    fTemp = pfil->FTemp();\n    pdocb = (PDOCB)CHTXD::PchtxdNew(&fni);\n    pfil->SetTemp(fTemp);\n    ReleasePpo(&pfil);\n    if (pvNil != pdocb)\n    {\n        pdocb->PdmdNew();\n        ReleasePpo(&pdocb);\n    }\n}\n"
  },
  {
    "path": "kauai/tools/kpack.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Command line tool to pack or unpack a file.\n\n***************************************************************************/\n#include <stdio.h>\n#include \"frame.h\"\nASSERTNAME\n\nbool _FGetLwFromSzs(PSZS pszs, long *plw);\n\n/***************************************************************************\n    Main routine.  Returns non-zero iff there's an error.\n***************************************************************************/\nint __cdecl main(int cpszs, char *prgpszs[])\n{\n    FNI fniSrc, fniDst;\n    STN stn;\n    char chs;\n    FLO floSrc, floDst;\n    long lwSig;\n    BLCK blck;\n    bool fPacked;\n    bool fCompress = fTrue;\n    long cfni = 0;\n    long cfmt = vpcodmUtil->CfmtDefault();\n\n#ifdef UNICODE\n    fprintf(stderr, \"\\nMicrosoft (R) Kauai Pack Utility (Unicode; \" Debug(\"Debug; \") __DATE__ \"; \" __TIME__ \")\\n\");\n#else  //! UNICODE\n    fprintf(stderr, \"\\nMicrosoft (R) Kauai Pack Utility (Ansi; \" Debug(\"Debug; \") __DATE__ \"; \" __TIME__ \")\\n\");\n#endif //! UNICODE\n    fprintf(stderr, \"Copyright (C) Microsoft Corp 1995. All rights reserved.\\n\\n\");\n\n    floSrc.pfil = pvNil;\n    floDst.pfil = pvNil;\n    for (prgpszs++; --cpszs > 0; prgpszs++)\n    {\n        chs = (*prgpszs)[0];\n        if (chs == '/' || chs == '-')\n        {\n            switch ((*prgpszs)[1])\n            {\n            case 'd':\n            case 'D':\n                fCompress = fFalse;\n                break;\n\n            case 'c':\n            case 'C':\n                fCompress = fTrue;\n                switch ((*prgpszs)[2])\n                {\n                case '\\0':\n                    cfmt = vpcodmUtil->CfmtDefault();\n                    break;\n                case '0':\n                    cfmt = cfmtNil;\n                    break;\n                case '1':\n                    cfmt = kcfmtKauai;\n                    break;\n                case '2':\n                    cfmt = kcfmtKauai2;\n                    break;\n                default:\n                    fprintf(stderr, \"Bad compression format\\n\\n\");\n                    goto LUsage;\n                }\n                break;\n\n            case 'p':\n            case 'P':\n                fCompress = fTrue;\n                if (cpszs <= 0 || !_FGetLwFromSzs(prgpszs[1], &cfmt))\n                {\n                    fprintf(stderr, \"Bad compression format\\n\\n\");\n                    goto LUsage;\n                }\n                cpszs--;\n                prgpszs++;\n                break;\n\n            default:\n                goto LUsage;\n            }\n        }\n        else if (cfni >= 2)\n        {\n            fprintf(stderr, \"Too many file names\\n\\n\");\n            goto LUsage;\n        }\n        else\n        {\n            stn.SetSzs(prgpszs[0]);\n            if (!fniDst.FBuildFromPath(&stn))\n            {\n                fprintf(stderr, \"Bad file name\\n\\n\");\n                goto LUsage;\n            }\n            if (cfni == 0)\n                fniSrc = fniDst;\n            cfni++;\n        }\n    }\n\n    if (cfni != 2)\n    {\n        fprintf(stderr, \"Wrong number of file names\\n\\n\");\n        goto LUsage;\n    }\n\n    if (fCompress && cfmtNil != cfmt && !vpcodmUtil->FCanDo(cfmt, fTrue))\n    {\n        fprintf(stderr, \"Bad compression type\\n\\n\");\n        goto LUsage;\n    }\n\n    if (pvNil == (floSrc.pfil = FIL::PfilOpen(&fniSrc)))\n    {\n        fprintf(stderr, \"Can't open source file\\n\\n\");\n        goto LFail;\n    }\n    floSrc.fp = 0;\n    floSrc.cb = floSrc.pfil->FpMac();\n\n    if (fniDst.FEqual(&fniSrc) || pvNil == (floDst.pfil = FIL::PfilCreate(&fniDst)))\n    {\n        fprintf(stderr, \"Can't create destination file\\n\\n\");\n        goto LFail;\n    }\n\n    if (!fCompress)\n    {\n        long lwSwapped;\n\n        if (floSrc.cb < size(long))\n            goto LBadSrc;\n\n        if (!floSrc.FReadRgb(&lwSig, size(long), 0))\n        {\n            fprintf(stderr, \"Reading source file failed\\n\\n\");\n            goto LFail;\n        }\n\n        lwSwapped = lwSig;\n        SwapBytesRglw(&lwSwapped, 1);\n        if (lwSig == klwSigPackedFile || lwSwapped == klwSigPackedFile)\n            fPacked = fTrue;\n        else if (lwSig == klwSigUnpackedFile || lwSwapped == klwSigUnpackedFile)\n            fPacked = fFalse;\n        else\n        {\n        LBadSrc:\n            fprintf(stderr, \"Source file is not packed\\n\\n\");\n            goto LFail;\n        }\n\n        blck.Set(floSrc.pfil, size(long), floSrc.cb - size(long), fPacked);\n        if (fPacked && !blck.FUnpackData())\n        {\n            fprintf(stderr, \"Unpacking source failed\\n\\n\");\n            goto LFail;\n        }\n\n        floDst.fp = 0;\n        floDst.cb = blck.Cb();\n    }\n    else\n    {\n        blck.Set(floSrc.pfil, 0, floSrc.cb, fFalse);\n        if (cfmtNil != cfmt)\n            blck.FPackData(cfmt);\n\n        // write the signature\n        if (blck.FPacked())\n            lwSig = klwSigPackedFile;\n        else\n            lwSig = klwSigUnpackedFile;\n        if (!floDst.pfil->FWriteRgb(&lwSig, size(long), 0))\n        {\n            fprintf(stderr, \"Writing destination failed\\n\\n\");\n            goto LFail;\n        }\n\n        floDst.fp = size(long);\n        floDst.cb = blck.Cb(fTrue);\n    }\n\n    if (!blck.FWriteToFlo(&floDst, fTrue))\n    {\n        fprintf(stderr, \"Writing destination failed\\n\\n\");\n        goto LFail;\n    }\n\n    ReleasePpo(&floSrc.pfil);\n    ReleasePpo(&floDst.pfil);\n    FIL::ShutDown();\n    return 0;\n\nLUsage:\n    // print usage\n    fprintf(stderr, \"%s\", \"Usage:  kpack [-d] [-c[0|1|2]] [-p <format>] <srcFile> <dstFile>\\n\\n\");\n\nLFail:\n    if (pvNil != floDst.pfil)\n        floDst.pfil->SetTemp();\n    ReleasePpo(&floDst.pfil);\n    ReleasePpo(&floSrc.pfil);\n\n    FIL::ShutDown();\n    return 1;\n}\n\n/***************************************************************************\n    Get a long value from a string. If the string isn't a number and the\n    length is <= 4, assumes the characters are to be packed into a long\n    (ala CTGs and FTGs).\n***************************************************************************/\nbool _FGetLwFromSzs(PSZS pszs, long *plw)\n{\n    STN stn;\n    long ich;\n\n    stn.SetSzs(pszs);\n    if (stn.FGetLw(plw))\n        return fTrue;\n\n    if (stn.Cch() > 4)\n        return fFalse;\n\n    *plw = 0;\n    for (ich = 0; ich < stn.Cch(); ich++)\n        *plw = (*plw << 8) + (byte)stn.Prgch()[ich];\n\n    return fTrue;\n}\n\n#ifdef DEBUG\nbool _fEnableWarnings = fTrue;\n\n/***************************************************************************\n    Warning proc called by Warn() macro\n***************************************************************************/\nvoid WarnProc(PSZS pszsFile, long lwLine, PSZS pszsMessage)\n{\n    if (_fEnableWarnings)\n    {\n        fprintf(stderr, \"%s(%ld) : warning\", pszsFile, lwLine);\n        if (pszsMessage != pvNil)\n        {\n            fprintf(stderr, \": %s\", pszsMessage);\n        }\n        fprintf(stderr, \"\\n\");\n    }\n}\n\n/***************************************************************************\n    Returning true breaks into the debugger.\n***************************************************************************/\nbool FAssertProc(PSZS pszsFile, long lwLine, PSZS pszsMessage, void *pv, long cb)\n{\n    fprintf(stderr, \"An assert occurred: \\n\");\n    if (pszsMessage != pvNil)\n        fprintf(stderr, \"   Message: %s\\n\", pszsMessage);\n    if (pv != pvNil)\n    {\n        fprintf(stderr, \"   Address %x\\n\", pv);\n        if (cb != 0)\n        {\n            fprintf(stderr, \"   Value: \");\n            switch (cb)\n            {\n            default: {\n                byte *pb;\n                byte *pbLim;\n\n                for (pb = (byte *)pv, pbLim = pb + cb; pb < pbLim; pb++)\n                    fprintf(stderr, \"%02x\", (int)*pb);\n            }\n            break;\n\n            case 2:\n                fprintf(stderr, \"%04x\", (int)*(short *)pv);\n                break;\n\n            case 4:\n                fprintf(stderr, \"%08lx\", *(long *)pv);\n                break;\n            }\n            printf(\"\\n\");\n        }\n    }\n    fprintf(stderr, \"   File: %s\\n\", pszsFile);\n    fprintf(stderr, \"   Line: %ld\\n\", lwLine);\n\n    return fFalse;\n}\n#endif // DEBUG\n"
  },
  {
    "path": "kauai/tools/makefile",
    "content": "#---tools.mak\n#\n# Builds Ched, Chelp, and Chomp\n\n!IFNDEF MAKEFILE_KAUAI_TOOLS\nMAKEFILE_KAUAI_TOOLS = 1\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.def\n\n\n#KAUAI SOURCE DIRECTORIES\nKAUAI_SRC_DIR = $(KAUAI_ROOT)\\src\nKAUAI_TOOLS_DIR = $(KAUAI_ROOT)\\tools\n\n#KAUAI OBJ DIRECTORIES\nKAUAI_OBJ_ROOT_DIR = $(KAUAI_ROOT)\\obj\nKAUAI_OBJ_DIR = $(KAUAI_OBJ_ROOT_DIR)\\$(BLD_TYPE_DIR)\n\n!IF \"$(LOCAL_BUILD)\" == \"1\"\nTARGET_DIR =\n!ELSE # LOCAL_BUILD\nTARGET_DIR = $(KAUAI_OBJ_DIR)^\\\n!ENDIF\n\nCHED_TARGETS =\\\n    $(BASE_OBJS)\\\n    $(FILE_OBJS)\\\n    $(GUI_OBJS)\\\n    $(KID_OBJS)\\\n    $(KIDCOM_OBJS)\\\n    $(PLAINTEXT_OBJS)\\\n    $(DOC_OBJS)\\\n    $(CHCM_OBJS)\\\n    $(LEXER_OBJS)\\\n    $(CHSE_OBJS)\\\n    $(STREAM_OBJS)\\\n    $(SCRCOM_OBJS)\\\n    $(SCREXE_OBJS)\\\n    $(GROUP_OBJS)\\\n    $(RICHTEXT_OBJS)\\\n    $(SOUND_OBJS)\\\n    $(DLG_OBJS)\\\n    $(CTL_OBJS)\\\n    $(VIDEO_OBJS)\\\n    $(TEXTEDIT_OBJS)\\\n    $(MBMPIO_OBJS)\\\n    $(CHED_OBJS)\\\n    $(TARGET_DIR)ched.res\n\n\n\nCHELP_TARGETS =\\\n    $(BASE_OBJS)\\\n    $(GUI_OBJS)\\\n    $(GROUP_OBJS)\\\n    $(MBMPIO_OBJS)\\\n    $(SOUND_OBJS)\\\n    $(VIDEO_OBJS)\\\n    $(KID_OBJS)\\\n    $(SCREXE_OBJS)\\\n    $(RICHTEXT_OBJS)\\\n    $(DOC_OBJS)\\\n    $(STREAM_OBJS)\\\n    $(FILE_OBJS)\\\n    $(CHSE_OBJS)\\\n    $(DLG_OBJS)\\\n    $(SCRCOM_OBJS)\\\n    $(LEXER_OBJS)\\\n    $(CTL_OBJS)\\\n    $(TEXTEDIT_OBJS)\\\n!IF \"$(UNICODE)\" == \"\"\n    $(SPELL_OBJS)\\\n!ENDIF\n    $(CHELP_OBJS)\\\n    $(TARGET_DIR)chelp.res\n\n\n\n#Chomp Special Case\n#Needs only pic*.cpp from Kauai Gui Objs\n\nPIC_OBJS =\\\n!IF \"$(ARCH)\" == \"WIN\"\n    $(TARGET_DIR)picwin.obj\\\n!ELSEIF \"$(ARCH)\" == \"MAC\"\n    $(TARGET_DIR)picmac.obj\\\n!ENDIF\n    $(TARGET_DIR)pic.obj\n\n\nCHOMP_TARGETS =\\\n    $(BASE_OBJS)\\\n    $(FILE_OBJS)\\\n    $(CHCM_OBJS)\\\n    $(CHSE_OBJS)\\\n    $(GROUP_OBJS)\\\n    $(LEXER_OBJS)\\\n    $(STREAM_OBJS)\\\n    $(KIDCOM_OBJS)\\\n    $(SCRCOM_OBJS)\\\n    $(SCREXE_OBJS)\\\n    $(MBMPIO_OBJS)\\\n    $(KAUAI_OBJ_DIR)\\midi.obj\\\n    $(PIC_OBJS)\\\n    $(CHOMP_OBJS)\n\n\nMKMBMP_TARGETS =\\\n    $(BASE_OBJS)\\\n    $(FILE_OBJS)\\\n    $(GROUP_OBJS)\\\n    $(MBMPIO_OBJS)\\\n    $(TARGET_DIR)mkmbmp.obj\n\n\nKPACK_TARGETS =\\\n    $(BASE_OBJS)\\\n    $(FILE_OBJS)\\\n    $(GROUP_OBJS)\\\n    $(TARGET_DIR)kpack.obj\n\n\nCHMERGE_TARGETS =\\\n    $(BASE_OBJS)\\\n    $(FILE_OBJS)\\\n    $(GROUP_OBJS)\\\n    $(TARGET_DIR)chmerge.obj\\\n\n\nCHELPDMP_TARGETS =\\\n    $(BASE_OBJS)\\\n    $(FILE_OBJS)\\\n    $(GROUP_OBJS)\\\n    $(LEXER_OBJS)\\\n    $(STREAM_OBJS)\\\n    $(SCRCOM_OBJS)\\\n    $(SCREXE_OBJS)\\\n    $(CHSE_OBJS)\\\n    $(TARGET_DIR)chelpdmp.obj\\\n    $(TARGET_DIR)chelpexp.obj\\\n    $(TARGET_DIR)mssio.obj\n\n\n#-Compile rules-------------------------------------------------------------\n\n\nPROGRAM_DATABASE = $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\kauai.pdb\nPRECOMPILED_HEADER = $(KAUAI_ROOT)\\obj\\$(BLD_TYPE_DIR)\\kauai.pch\n\nCPPEXTRA = /Zi /Fd$(PROGRAM_DATABASE) /Fp$(PRECOMPILED_HEADER)\n\n!INCLUDE $(KAUAI_ROOT)\\src\\makefile\n\nSRC_DIR = $(KAUAI_TOOLS_DIR)\nOBJ_DIR = $(KAUAI_OBJ_DIR)\nTGT_NAME = Kauai Tools\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.rul\n\n\n#-Targets-------------------------------------------------------------------\n\nALL_KAUAI_TOOLS = $(TARGET_DIR)ched.exe \\\n                  $(TARGET_DIR)chelp.exe \\\n                  $(TARGET_DIR)chomp.exe \\\n                  $(TARGET_DIR)mkmbmp.exe \\\n                  $(TARGET_DIR)kpack.exe \\\n                  $(TARGET_DIR)chmerge.exe \\\n                  $(TARGET_DIR)chelpdmp.exe\n\nALL_TARGETS_ROOT = $(ALL_TARGETS_ROOT) $(ALL_KAUAI_TOOLS)\n\nCLEAN_KAUAI_TOOLS = CLEAN_CHED CLEAN_CHELP CLEAN_CHOMP CLEAN_MKMBMP CLEAN_KPACK CLEAN_CHMERGE CLEAN_CHELPDMP\nCLEAN_TARGETS_ROOT = $(CLEAN_TARGETS_ROOT) $(CLEAN_KAUAI_TOOLS)\n\n\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\n!IF \"$(LOCAL_BUILD)\" != \"0\"\n\n# Kauai src\\makefile knows how to make this dir\n# $(KAUAI_OBJ_DIR) :\n#   @echo Making Directories $(KAUAI_OBJ_DIR)...\n#    if not exist $(KAUAI_OBJ_ROOT_DIR)/nul mkdir $(KAUAI_OBJ_ROOT_DIR)\n#    if not exist $(KAUAI_OBJ_DIR)/nul mkdir $(KAUAI_OBJ_DIR)\nALL: $(KAUAI_OBJ_DIR) $(ALL_KAUAI_TOOLS)\nCLEAN : RM ALL\nRM :\n        @echo Cleaning $(KAUAI_OBJ_DIR)\\ directory\n        @DEL /q $(KAUAI_OBJ_DIR)\\*.obj 2>nul\n        @DEL /q $(KAUAI_OBJ_DIR)\\*.pch 2>nul\n        @DEL /q $(KAUAI_OBJ_DIR)\\*.pdb 2>nul\n        @DEL /q $(KAUAI_OBJ_DIR)\\*.exe 2>nul\n        @DEL /q $(KAUAI_OBJ_DIR)\\*.res 2>nul\n        @DEL /q $(KAUAI_OBJ_DIR)\\*.cod 2>nul\n        @DEL /q $(KAUAI_OBJ_DIR)\\*.map 2>nul\n        @DEL /q $(KAUAI_OBJ_DIR)\\*.lib 2>nul\n        @DEL /q $(KAUAI_OBJ_DIR)\\*.i   2>nul\n        @DEL /q $(KAUAI_OBJ_DIR)\\*.lnk 2>nul\n\n\n!ENDIF # LOCAL_BUILD != 0\n\nRMOBJ : $(CLEAN_KAUAI_TOOLS)\n\n!ENDIF  # !LOCAL_BUILD\n\n\n\nCLEAN_CHED:\n    @echo <<delched.bat\n@echo off\nDEL /q dummy.nul $(CHED_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c delched.bat\n    del delched.bat\n\n\nCLEAN_CHELP:\n    @echo <<delchelp.bat\n@echo off\nDEL /q dummy.nul $(CHELP_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c delchelp.bat\n    del delchelp.bat\n\n\nCLEAN_CHOMP:\n    @echo <<delchomp.bat\n@echo off\nDEL /q dummy.nul $(CHOMP_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c delchomp.bat\n    del delchomp.bat\n\n\nCLEAN_MKMBMP:\n    @echo <<delmkmb.bat\n@echo off\nDEL /q dummy.nul $(MKMBMP_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c delmkmb.bat\n    del delmkmb.bat\n\n\nCLEAN_KPACK:\n    @echo <<delmkmb.bat\n@echo off\nDEL /q dummy.nul $(KPACK_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c delmkmb.bat\n    del delmkmb.bat\n\n\nCLEAN_CHMERGE:\n    @echo <<dchmerge.bat\n@echo off\nDEL /q dummy.nul $(CHMERGE_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c dchmerge.bat\n    del dchmerge.bat\n\n\nCLEAN_CHELPDMP:\n    @echo <<delchdmp.bat\n@echo off\nDEL /q dummy.nul $(CHELPDMP_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c delchdmp.bat\n    del delchdmp.bat\n\n\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\nCHED : $(TARGET_DIR)ched.exe\nCHED.EXE : $(TARGET_DIR)ched.exe\n$(TARGET_DIR)ched.exe: $(KAUAI_OBJ_DIR)\n\nCHELP : $(TARGET_DIR)chelp.exe\nCHELP.EXE : $(TARGET_DIR)chelp.exe\n$(TARGET_DIR)chelp.exe : $(KAUAI_OBJ_DIR)\n\nCHOMP : $(TARGET_DIR)chomp.exe\nCHOMP.EXE : $(TARGET_DIR)chomp.exe\n$(TARGET_DIR)chomp.exe : $(KAUAI_OBJ_DIR)\n\nMKMBMP : $(TARGET_DIR)mkmbmp.exe\nMKMBMP.EXE : $(TARGET_DIR)mkmbmp.exe\n$(TARGET_DIR)mkmbmp.exe : $(KAUAI_OBJ_DIR)\n\nKPACK : $(TARGET_DIR)kpack.exe\nKPACK.EXE : $(TARGET_DIR)kpack.exe\n$(TARGET_DIR)kpack.exe : $(KAUAI_OBJ_DIR)\n\nCHMERGE : $(TARGET_DIR)chmerge.exe\nCHMERGE.EXE : $(TARGET_DIR)chmerge.exe\n$(TARGET_DIR)chmerge.exe : $(KAUAI_OBJ_DIR)\n\nCHELPDMP : $(TARGET_DIR)chelpdmp.exe\nCHELPDMP.EXE : $(TARGET_DIR)chelpdmp.exe\n$(TARGET_DIR)chelpdmp.exe : $(KAUAI_OBJ_DIR)\n\n!ENDIF  # !LOCAL_BUILD\n\n\n$(TARGET_DIR)ched.lnk : $(KAUAI_TOOLS_DIR)\\makefile $(KAUAI_ROOT)\\makefile.def\n    @echo <<$(TARGET_DIR)ched.lnk\n$(CHED_TARGETS: =^\n)\n<<KEEP\n\n$(TARGET_DIR)ched.exe : $(CHED_TARGETS) $(TARGET_DIR)ched.lnk $(AUDIO_LIB)\n    @echo Linking Ched Objects...\n    $(LINK) -link $(LFLAGS_GUI) \\\n    $(VFW32_LIB) \\\n    $(AUDIO_LIB) \\\n     -out:$(TARGET_DIR)ched.exe @$(TARGET_DIR)ched.lnk\n    $(CHKERR)\n\n\n\n$(TARGET_DIR)chelp.lnk : $(KAUAI_TOOLS_DIR)\\makefile $(KAUAI_ROOT)\\makefile.def\n    @echo <<$(TARGET_DIR)chelp.lnk\n$(CHELP_TARGETS: =^\n)\n<<KEEP\n\n$(TARGET_DIR)chelp.exe : $(CHELP_TARGETS) $(TARGET_DIR)chelp.lnk $(AUDIO_LIB)\n    @echo Linking Chelp Objects...\n    $(LINK) -link $(LFLAGS_GUI) \\\n    $(VFW32_LIB) \\\n    $(AUDIO_LIB)\\\n    -out:$(TARGET_DIR)chelp.exe @$(TARGET_DIR)chelp.lnk\n    $(CHKERR)\n\n\n\n$(TARGET_DIR)chomp.lnk : $(KAUAI_TOOLS_DIR)\\makefile $(KAUAI_ROOT)\\makefile.def\n    @echo <<$(TARGET_DIR)chomp.lnk\n$(CHOMP_TARGETS: =^\n)\n<<KEEP\n\n$(TARGET_DIR)chomp.exe : $(CHOMP_TARGETS) $(TARGET_DIR)chomp.lnk\n    @echo Linking Chomp Objects...\n    $(LINK) -link $(LFLAGS_CONS) \\\n    -out:$(TARGET_DIR)chomp.exe @$(TARGET_DIR)chomp.lnk\n    $(CHKERR)\n\n\n\n$(TARGET_DIR)mkmbmp.lnk : $(KAUAI_TOOLS_DIR)\\makefile $(KAUAI_ROOT)\\makefile.def\n    @echo <<$(TARGET_DIR)mkmbmp.lnk\n$(MKMBMP_TARGETS: =^\n)\n<<KEEP\n\n$(TARGET_DIR)mkmbmp.exe : $(MKMBMP_TARGETS) $(TARGET_DIR)mkmbmp.lnk\n    @echo Linking Mkmbmp Objects...\n    $(LINK) -link $(LFLAGS_CONS) \\\n    -out:$(TARGET_DIR)mkmbmp.exe @$(TARGET_DIR)mkmbmp.lnk\n    $(CHKERR)\n\n\n$(TARGET_DIR)kpack.lnk : $(KAUAI_TOOLS_DIR)\\makefile $(KAUAI_ROOT)\\makefile.def\n    @echo <<$(TARGET_DIR)kpack.lnk\n$(KPACK_TARGETS: =^\n)\n<<KEEP\n\n$(TARGET_DIR)kpack.exe : $(KPACK_TARGETS) $(TARGET_DIR)kpack.lnk\n    @echo Linking KPack Objects...\n    $(LINK) -link $(LFLAGS_CONS) \\\n    -out:$(TARGET_DIR)kpack.exe @$(TARGET_DIR)kpack.lnk\n    $(CHKERR)\n\n\n$(TARGET_DIR)chmerge.lnk : $(KAUAI_TOOLS_DIR)\\makefile $(KAUAI_ROOT)\\makefile.def\n    @echo <<$(TARGET_DIR)chmerge.lnk\n$(CHMERGE_TARGETS: =^\n)\n<<KEEP\n\n$(TARGET_DIR)chmerge.exe : $(CHMERGE_TARGETS) $(TARGET_DIR)chmerge.lnk\n    @echo Linking Chmerge Objects...\n    $(LINK) -link $(LFLAGS_CONS) \\\n    -out:$(TARGET_DIR)chmerge.exe @$(TARGET_DIR)chmerge.lnk\n    $(CHKERR)\n\n\n$(TARGET_DIR)chelpdmp.lnk : $(KAUAI_TOOLS_DIR)\\makefile $(KAUAI_ROOT)\\makefile.def\n    @echo <<$(TARGET_DIR)chelpdmp.lnk\n$(CHELPDMP_TARGETS: =^\n)\n<<KEEP\n\n$(TARGET_DIR)chelpdmp.exe : $(CHELPDMP_TARGETS) $(TARGET_DIR)chelpdmp.lnk\n    @echo Linking ChelpDmp Objects...\n    $(LINK) -link $(LFLAGS_CONS) \\\n    -out:$(TARGET_DIR)chelpdmp.exe @$(TARGET_DIR)chelpdmp.lnk\n    $(CHKERR)\n\n\n!ENDIF  # !MAKEFILE_KAUAI_TOOLS\n"
  },
  {
    "path": "kauai/tools/mkmbmp.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Kauai\n    Copyright (c) Microsoft Corporation\n\n    Command line tool to make an mbmp from a bitmap file and optionally\n    compress it.\n\n***************************************************************************/\n#include <stdio.h>\n#include \"frame.h\"\nASSERTNAME\n\nbool _FGetLwFromSzs(PSZS pszs, long *plw);\n\n/***************************************************************************\n    Main routine.  Returns non-zero iff there's an error.\n***************************************************************************/\nint __cdecl main(int cpszs, char *prgpszs[])\n{\n    FNI fniSrc, fniDst;\n    STN stn;\n    char chs;\n    FLO flo;\n    long lwSig;\n    PMBMP pmbmp = pvNil;\n    long cfni = 0;\n    long xp = 0;\n    long yp = 0;\n    long lwTrans = 0;\n    long cfmt = cfmtNil;\n\n#ifdef UNICODE\n    fprintf(stderr, \"\\nMicrosoft (R) Make Mbmp Utility (Unicode; \" Debug(\"Debug; \") __DATE__ \"; \" __TIME__ \")\\n\");\n#else  //! UNICODE\n    fprintf(stderr, \"\\nMicrosoft (R) Make Mbmp Utility (Ansi; \" Debug(\"Debug; \") __DATE__ \"; \" __TIME__ \")\\n\");\n#endif //! UNICODE\n    fprintf(stderr, \"Copyright (C) Microsoft Corp 1995. All rights reserved.\\n\\n\");\n\n    flo.pfil = pvNil;\n    for (prgpszs++; --cpszs > 0; prgpszs++)\n    {\n        chs = (*prgpszs)[0];\n        if (chs == '/' || chs == '-')\n        {\n            switch ((*prgpszs)[1])\n            {\n            case 'c':\n            case 'C':\n                switch ((*prgpszs)[2])\n                {\n                case '\\0':\n                    cfmt = vpcodmUtil->CfmtDefault();\n                    break;\n                case '0':\n                    cfmt = cfmtNil;\n                    break;\n                case '1':\n                    cfmt = kcfmtKauai;\n                    break;\n                case '2':\n                    cfmt = kcfmtKauai2;\n                    break;\n                default:\n                    fprintf(stderr, \"Bad compression format\\n\\n\");\n                    goto LUsage;\n                }\n                break;\n\n            case 'p':\n            case 'P':\n                if (cpszs <= 0 || !_FGetLwFromSzs(prgpszs[1], &cfmt))\n                {\n                    fprintf(stderr, \"Bad compression format\\n\\n\");\n                    goto LUsage;\n                }\n                cpszs--;\n                prgpszs++;\n                break;\n\n            case 'o':\n            case 'O':\n                // get the coordinates of the reference point\n                if (cpszs < 2)\n                    goto LUsage;\n                cpszs -= 2;\n                stn.SetSzs(prgpszs[1]);\n                if (!stn.FGetLw(&xp))\n                    goto LUsage;\n                stn.SetSzs(prgpszs[2]);\n                if (!stn.FGetLw(&yp))\n                    goto LUsage;\n                prgpszs += 2;\n                break;\n\n            case 't':\n            case 'T':\n                // get the transparent pixel value\n                if (cpszs < 1)\n                    goto LUsage;\n                cpszs--;\n                stn.SetSzs(prgpszs[1]);\n                if (!stn.FGetLw(&lwTrans))\n                    goto LUsage;\n                prgpszs++;\n                break;\n\n            default:\n                goto LUsage;\n            }\n        }\n        else if (cfni >= 2)\n        {\n            fprintf(stderr, \"Too many file names\\n\\n\");\n            goto LUsage;\n        }\n        else\n        {\n            stn.SetSzs(prgpszs[0]);\n            if (!fniDst.FBuildFromPath(&stn))\n            {\n                fprintf(stderr, \"Bad file name\\n\\n\");\n                goto LUsage;\n            }\n            if (cfni == 0)\n                fniSrc = fniDst;\n            cfni++;\n        }\n    }\n\n    if (cfni != 2)\n    {\n        fprintf(stderr, \"Wrong number of file names\\n\\n\");\n        goto LUsage;\n    }\n\n    if (cfmtNil != cfmt && !vpcodmUtil->FCanDo(cfmt, fTrue))\n    {\n        fprintf(stderr, \"Bad compression type\\n\\n\");\n        goto LUsage;\n    }\n\n    pmbmp = MBMP::PmbmpReadNative(&fniSrc, B0Lw(lwTrans), xp, yp);\n    if (pvNil == pmbmp)\n    {\n        fprintf(stderr, \"reading bitmap failed\\n\\n\");\n        goto LFail;\n    }\n\n    if (pvNil == (flo.pfil = FIL::PfilCreate(&fniDst)))\n    {\n        fprintf(stderr, \"Couldn't create destination file\\n\\n\");\n        goto LFail;\n    }\n    flo.fp = size(long);\n    flo.cb = pmbmp->CbOnFile();\n\n    if (cfmtNil != cfmt)\n    {\n        BLCK blck;\n\n        if (!blck.FSetTemp(flo.cb) || !pmbmp->FWrite(&blck))\n        {\n            fprintf(stderr, \"allocation failure\\n\\n\");\n            goto LFail;\n        }\n        ReleasePpo(&pmbmp);\n        if (!blck.FPackData(cfmt))\n            lwSig = klwSigUnpackedFile;\n        else\n        {\n            lwSig = klwSigPackedFile;\n            flo.cb = blck.Cb(fTrue);\n        }\n        if (!flo.pfil->FWriteRgb(&lwSig, size(long), 0) || !blck.FWriteToFlo(&flo, fTrue))\n        {\n            fprintf(stderr, \"writing to destination file failed\\n\\n\");\n            goto LFail;\n        }\n    }\n    else\n    {\n        lwSig = klwSigUnpackedFile;\n        if (!flo.pfil->FWriteRgb(&lwSig, size(long), 0) || !pmbmp->FWriteFlo(&flo))\n        {\n            fprintf(stderr, \"writing to destination file failed\\n\\n\");\n            goto LFail;\n        }\n        ReleasePpo(&pmbmp);\n    }\n\n    ReleasePpo(&flo.pfil);\n    FIL::ShutDown();\n    return 0;\n\nLUsage:\n    // print usage\n    fprintf(stderr, \"%s\",\n            \"Usage:  mkmbmp [-c[0|1|2]] [-p <format>] [-o <x> <y>] [-t <b>] <srcBitmapFile> <dstMbmpFile>\\n\\n\");\n\nLFail:\n    ReleasePpo(&pmbmp);\n    if (pvNil != flo.pfil)\n        flo.pfil->SetTemp();\n    ReleasePpo(&flo.pfil);\n\n    FIL::ShutDown();\n    return 1;\n}\n\n/***************************************************************************\n    Get a long value from a string. If the string isn't a number and the\n    length is <= 4, assumes the characters are to be packed into a long\n    (ala CTGs and FTGs).\n***************************************************************************/\nbool _FGetLwFromSzs(PSZS pszs, long *plw)\n{\n    STN stn;\n    long ich;\n\n    stn.SetSzs(pszs);\n    if (stn.FGetLw(plw))\n        return fTrue;\n\n    if (stn.Cch() > 4)\n        return fFalse;\n\n    *plw = 0;\n    for (ich = 0; ich < stn.Cch(); ich++)\n        *plw = (*plw << 8) + (byte)stn.Prgch()[ich];\n\n    return fTrue;\n}\n\n#ifdef DEBUG\nbool _fEnableWarnings = fTrue;\n\n/***************************************************************************\n    Warning proc called by Warn() macro\n***************************************************************************/\nvoid WarnProc(PSZS pszsFile, long lwLine, PSZS pszsMessage)\n{\n    if (_fEnableWarnings)\n    {\n        fprintf(stderr, \"%s(%ld) : warning\", pszsFile, lwLine);\n        if (pszsMessage != pvNil)\n        {\n            fprintf(stderr, \": %s\", pszsMessage);\n        }\n        fprintf(stderr, \"\\n\");\n    }\n}\n\n/***************************************************************************\n    Returning true breaks into the debugger.\n***************************************************************************/\nbool FAssertProc(PSZS pszsFile, long lwLine, PSZS pszsMessage, void *pv, long cb)\n{\n    fprintf(stderr, \"An assert occurred: \\n\");\n    if (pszsMessage != pvNil)\n        fprintf(stderr, \"   Message: %s\\n\", pszsMessage);\n    if (pv != pvNil)\n    {\n        fprintf(stderr, \"   Address %x\\n\", pv);\n        if (cb != 0)\n        {\n            fprintf(stderr, \"   Value: \");\n            switch (cb)\n            {\n            default: {\n                byte *pb;\n                byte *pbLim;\n\n                for (pb = (byte *)pv, pbLim = pb + cb; pb < pbLim; pb++)\n                    fprintf(stderr, \"%02x\", (int)*pb);\n            }\n            break;\n\n            case 2:\n                fprintf(stderr, \"%04x\", (int)*(short *)pv);\n                break;\n\n            case 4:\n                fprintf(stderr, \"%08lx\", *(long *)pv);\n                break;\n            }\n            printf(\"\\n\");\n        }\n    }\n    fprintf(stderr, \"   File: %s\\n\", pszsFile);\n    fprintf(stderr, \"   Line: %ld\\n\", lwLine);\n\n    return fFalse;\n}\n#endif // DEBUG\n"
  },
  {
    "path": "makefile",
    "content": "#--- $(SOC_ROOT)\\makefile.mak\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.def\n\n!INCLUDE $(SOC_ROOT)\\version.def\n\n\n.SILENT:\n\nALL: ENSURE_OBJ_DIR ALL_BREN ALL_SRC ALL_TOOLS\n\n\nALL_BREN:\n    cd $(SOC_ROOT)\\bren\n    @echo Making Bren All...\n    $(MAKE) /NOLOGO all\n    cd $(SOC_ROOT)\n\n\nALL_SRC:\n    cd $(SOC_ROOT)\\src\n    @echo Making Soc\\src All...\n    $(MAKE) /NOLOGO all\n    cd $(SOC_ROOT)\n\n\nALL_TOOLS:\n    cd $(SOC_ROOT)\\tools\n    @echo Making Soc\\tools All...\n    $(MAKE) /NOLOGO all\n    cd $(SOC_ROOT)\n\nSOC_OBJ_ROOT_DIR = $(SOC_ROOT)\\obj\nSOC_OBJ_DIR = $(SOC_OBJ_ROOT_DIR)\\$(BLD_TYPE_DIR)\nDIST_ROOT = $(SOC_ROOT)\\DIST\n\nENSURE_OBJ_DIR:\n    if not exist $(SOC_OBJ_ROOT_DIR)/nul mkdir $(SOC_OBJ_ROOT_DIR)\n    if not exist $(SOC_OBJ_DIR)/nul mkdir $(SOC_OBJ_DIR)\n\nDIST: ALL_SRC\n    -mkdir $(DIST_ROOT) 2>nul\n    -mkdir $(DIST_ROOT)\\\"Microsoft Kids\"\n    -mkdir $(DIST_ROOT)\\\"Microsoft Kids\"\\\"3D Movie Maker\"\n    -mkdir $(DIST_ROOT)\\\"Microsoft Kids\"\\Users\"\n    -mkdir $(DIST_ROOT)\\\"Microsoft Kids\"\\Users\\Melanie\"\n    copy /Y $(SOC_ROOT)\\cd9\\*.* $(DIST_ROOT)\\\"Microsoft Kids\"\\\"3D Movie Maker\"\n    copy /Y $(SOC_OBJ_DIR)\\*.chk $(DIST_ROOT)\\\"Microsoft Kids\"\\\"3D Movie Maker\"\n    copy /Y $(SOC_OBJ_DIR)\\3dmovie.exe $(DIST_ROOT)\\\n\nZIP: DIST\n    cd $(DIST_ROOT)\n    7z a -r 3DMMForever_$(RELEASE_VERSION).zip 3dmovie.exe \"Microsoft Kids\"\n\nCLEAN: CLEAN_REST CLEAN_BREN BUILD_REST\n\n\nCLEAN_BREN:\n    cd $(SOC_ROOT)\\bren\n    @echo Making Bren Clean...\n    $(MAKE) /NOLOGO clean\n    cd $(SOC_ROOT)\n\n\nCLEAN_REST:\n    @echo Cleaning $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\ directory\n    del /q $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.obj 2>nul\n    del /q $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.pch 2>nul\n    del /q $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.pdb 2>nul\n    del /q $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.exe 2>nul\n    del /q $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.res 2>nul\n    del /q $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.chk 2>nul\n    del /q $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.cht 2>nul\n    del /q $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.cod 2>nul\n    del /q $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.map 2>nul\n    del /q $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.thd 2>nul\n    del /q $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.lib 2>nul\n    del /q $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.i   2>nul\n    del /q $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.lnk 2>nul\n\n\nBUILD_REST:\n    cd $(SOC_ROOT)\\src\n    @echo Making Src Clean...\n    $(MAKE) /NOLOGO\n    cd $(SOC_ROOT)\\tools\n    @echo Making Tools Clean...\n    $(MAKE) /NOLOGO\n    cd $(SOC_ROOT)\n\n\u001a"
  },
  {
    "path": "makefile.kmk",
    "content": "# makefile.kmk\n#\n# This is the makefile used by kmake.bat.  It knows how to build everything\n# in Socrates.\n\nLOCAL_BUILD=1\n\n# Included files should append targets as follows:\n#   *** Any target that should be executed for a clean should be appended\n#     to \"CLEAN_TARGETS_ROOT\"\n#   *** Any target that should be built by default should be appended to\n#     \"ALL_TARGETS_ROOT\".  Note that there *will* be targets defined which\n#     should not be appended to this, because they are only interesting\n#     when used as dependents to something else.\n\nCLEAN_TARGETS_ROOT=\nALL_TARGETS_ROOT=\n\n#############################################################################\n## Process ERRLVL                                                          ##\n#############################################################################\n\n# CHKERR is used in any build rule that should cause the build to stop\n!IF \"$(ERRLVL)\" == \"FATAL\"\nCHKERR=@@if errorlevel 1 goto error\n!ELSE\nCHKERR=@@if errorlevel 1 (echo Removing goodmake.log & rm goodmake.log)\n!ENDIF\n\n# CHKERRW is used in any build rule that should report an error, but should\n# never cause the build to stop, even if ERRLVL == FATAL\nCHKERRW=@@if errorlevel 1 (echo Removing goodmake.log & rm goodmake.log)\n\n.SUFFIXES: .cpp .asm .c .obj .rc\n\n# NOTE: we don't want to build all Kauai targets; we use Kauai's makefiles\n# only for their dependencies.  Also, we don't want Kauai sources built in\n# our current directory.\n\n!IF \"$(ALL_TARGETS_ROOT)\" != \"\"\n!ERROR Should not have any ALL targets defined yet\n!ENDIF\n\n!IF \"$(CLEAN_TARGETS_ROOT)\" != \"\"\n!ERROR Should not have any CLEAN targets defined yet\n!ENDIF\n\nLOCAL_BUILD=0\n\n# These guys always get built elsewhere\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.def\n\n!INCLUDE $(KAUAI_ROOT)\\src\\makefile\n\n# Bren gets built elsewhere, but should still be cleaned as part of a SOC clean\nALL_TARGETS_ROOT=\nCLEAN_TARGETS_ROOT=\n\n!INCLUDE $(SOC_ROOT)\\bren\\makefile\n\nLOCAL_BUILD=1\n\n!INCLUDE $(SOC_ROOT)\\src\\engine\\makefile\n\n!INCLUDE $(SOC_ROOT)\\src\\studio\\makefile\n\n!IF \"$(TYPE)\" == \"DBSHIP\" || \"$(TYPE)\" == \"SHIP\" || \"$(BLDG_DEBUG)\" != \"\"\n!INCLUDE $(SOC_ROOT)\\src\\building\\makefile\n!ENDIF\n\n!IF \"$(TYPE)\" == \"DBSHIP\" || \"$(TYPE)\" == \"SHIP\" || \"$(HELP_DEBUG)\" != \"\"\n!INCLUDE $(SOC_ROOT)\\src\\help\\makefile\n!ENDIF\n\n!IF \"$(TYPE)\" == \"DBSHIP\" || \"$(TYPE)\" == \"SHIP\" || \"$(HELPA_DEBUG)\" != \"\"\n!INCLUDE $(SOC_ROOT)\\src\\helpaud\\makefile\n!ENDIF\n\n!IF \"$(TYPE)\" == \"DBSHIP\" || \"$(TYPE)\" == \"SHIP\" || \"$(SHARED_DEBUG)\" != \"\"\n!INCLUDE $(SOC_ROOT)\\src\\shared\\makefile\n!ENDIF\n\n!INCLUDE $(SOC_ROOT)\\tools\\makefile\n\n#  Leave this name blank, since it's hardly ever correct anyway\nTGT_NAME=\n\n# NOTE: unlike the other \"CLEAN\" targets, this does not actually do a build.\n# This is intentional (BY DESIGN).\nCLEAN: CLEAN_BREN_OBJ\n    -del $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.obj 2> nul\n    -del $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.pch 2> nul\n    -del $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.pdb 2> nul\n    -del $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.exe 2> nul\n    -del $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.res 2> nul\n    -del $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.chk 2> nul\n    -del $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.cht 2> nul\n    -del $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.cod 2> nul\n    -del $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.map 2> nul\n    -del $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.thd 2> nul\n    -del $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.lib 2> nul\n    -del $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.lnk 2> nul\n    -del $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.ilk 2> nul\n    -del $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.i   2> nul\n    -del $(SOC_ROOT)\\obj\\$(BLD_TYPE_DIR)\\*.thd 2> nul\n\nCLEAN_BY_FILE: $(CLEAN_TARGETS_ROOT)\n    @echo on\n\n\nALL: $(ALL_TARGETS_ROOT)\n"
  },
  {
    "path": "makefile.rul",
    "content": "# Use this file to automatically declare rules for a group of targets.\n# Set the \"SRC_DIR\" variable to the appropriate directory, set OBJ_DIR\n# to the appropriate target directory and then include this file.\n\n# If the \"LOCAL_BUILD\" variable is defined and set to \"1\", this indicates that\n# we're already cd'd to the target directory.  This allows nmake to use a much\n# simpler set of make rules.\n\n#-Compile rules-------------------------------------------------------------\n\n\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\n!IF \"$(LOCAL_BUILD)\" != \"0\"\n\n{$(SRC_DIR)}.cpp.obj:\n    @nmake /NOLOGO $(OBJ_DIR)\\%|fF.obj\n\n{$(SRC_DIR)}.cpp.exe:\n    @nmake /NOLOGO $(OBJ_DIR)\\%|fF.exe\n\n{$(SRC_DIR)}.asm.obj:\n    @nmake /NOLOGO $(OBJ_DIR)\\%|fF.obj\n\n{$(SRC_DIR)}.rc.res:\n    @nmake /NOLOGO $(OBJ_DIR)\\%|fF.res\n\n{$(SRC_DIR)}.cht.chk:\n    @nmake /NOLOGO $(OBJ_DIR)\\%|fF.chk\n\n{$(SRC_DIR)}.cht.thd:\n    @nmake /NOLOGO $(OBJ_DIR)\\%|fF.chk\n\n{$(SRC_DIR)}.cpp.i:\n    @nmake /NOLOGO $(OBJ_DIR)\\%|fF.i\n\n{$(SRC_DIR)}.cpp.cod:\n    @nmake /NOLOGO $(OBJ_DIR)\\%|fF.cod\n\n!ENDIF # LOCAL_BUILD != 0\n\n\n{$(SRC_DIR)}.cpp{$(OBJ_DIR)}.obj:\n    !@echo Compiling $(TGT_NAME) Src... $<\n    $(CPP) $(CPPFLAGS) /Zi /Fd$(SOC_OBJ_DIR)\\soc.pdb /Fp$(SOC_OBJ_DIR)\\soc.pch /Fo$@ $(DEFS) $<\n    $(CHKERR)\n\n\n{$(SRC_DIR)}.c{$(OBJ_DIR)}.obj:\n    !@echo Compiling $(TGT_NAME) Src... $<\n    $(CPP) $(CPPFLAGS) /Zi /Fd$(SOC_OBJ_DIR)\\soc.pdb /Fp$(SOC_OBJ_DIR)\\soc.pch /Fo$@ $(DEFS) $<\n    $(CHKERR)\n\n\n{$(SRC_DIR)}.asm{$(OBJ_DIR)}.obj:\n    !@echo Compiling $(TGT_NAME) Assembly Src... $<\n    $(ASM) $(ASMFLAGS) /Fo$@ $(DEFS) $<\n    $(CHKERR)\n\n\n{$(SRC_DIR)}.rc{$(OBJ_DIR)}.res:\n    !@echo Compiling $(TGT_NAME) Resource... $<\n    $(RC) $(DEFS) /Fo$@ $<\n    $(CHKERR)\n\n\n{$(SRC_DIR)}.cht{$(OBJ_DIR)}.chk:\n    cl /E -I%|pF -I$(@D) $(DEFS) /Tp$< > $*.i\n    $(CHKERR)\n    $(CHOMP) $*.i $@\n    $(CHKERR)\n\n{$(SRC_DIR)}.cht{$(OBJ_DIR)}.thd:\n    cl /E -I%|pF -I$(@D) $(DEFS) /Tp$< > $*.i\n    $(CHKERR)\n    $(CHOMP) $*.i $@\n    $(CHKERR)\n\n{$(SRC_DIR)}.cpp{$(OBJ_DIR)}.i:\n    !@echo Compiling $(TGT_NAME) Src... $<\n    $(CPP) /E $(DEFS) $< > $@\n    $(CHKERR)\n\n\n{$(SRC_DIR)}.cpp{$(OBJ_DIR)}.cod:\n    !@echo Compiling $(TGT_NAME) Src... $<\n    $(CPP) /FAcs $(CPPFLAGS) /Zi /Fd$(SOC_OBJ_DIR)\\soc.pdb /Fp$(SOC_OBJ_DIR)\\soc.pch $(DEFS) /Fa$@  $<\n    $(CHKERR)\n\n\n!ELSE   # !LOCAL_BUILD\n\n\n{$(SRC_DIR)}.cpp.obj:\n    $(CPP) $(CPPFLAGS) /Zi /Fdsoc.pdb /Fpsoc.pch $(DEFS) $<\n    $(CHKERR)\n\n{$(SRC_DIR)}.c.obj:\n    $(CPP) $(CPPFLAGS) /Zi /Fdsoc.pdb /Fpsoc.pch $(DEFS) $<\n    $(CHKERR)\n\n{$(SRC_DIR)}.asm.obj:\n   $(ASM) $(ASMFLAGS) /Fo$@ $(DEFS) $<\n\n{$(SRC_DIR)}.rc.res:\n    $(RC) $(DEFS) /Fo$@ $<\n    $(CHKERR)\n\n{$(SRC_DIR)}.cht.chk:\n    cl /P -I%|pF -I. $(DEFS) /Tp$<\n    $(CHKERR)\n    $(CHOMP) $(@B).i $@\n    $(CHKERR)\n\n{$(SRC_DIR)}.cht.thd:\n    cl /P -I%|pF -I. $(DEFS) /Tp$<\n    $(CHKERR)\n    $(CHOMP) $(@B).i $@\n    $(CHKERR)\n\n{$(SRC_DIR)}.cpp.i:\n    $(CPP) /P $(DEFS) $<\n    $(CHKERR)\n\n{$(SRC_DIR)}.cpp.cod:\n    $(CPP) /FAcs $(CPPFLAGS) /Zi /Fdsoc.pdb /Fpsoc.pch $(DEFS) /Fa$@  $<\n    $(CHKERR)\n\n\n!ENDIF  # LOCAL_BUILD\n"
  },
  {
    "path": "setvars.bat",
    "content": ":: Copyright (c) Microsoft Corporation.\n:: Licensed under the MIT License.\n\n:: Variables documented in README.md\n\n:: Setup the Socrates Directory Environment Variable\nset SOC_ROOT=%cd%\n:: Setup the Kauai dir that's needed by most things\nset KAUAI_ROOT=%SOC_ROOT%\\kauai\n:: Update includes to cover whats needed\nset include=%include%;%SOC_ROOT%\\INC;%SOC_ROOT%\\BREN\\INC;%KAUAI_ROOT%\\SRC;%SOC_ROOT%\\SRC\n\n:: Set project\nset PROJ=SOC\n\n:: Set operating system to compile for\nset ARCH=WIN\n\n:: Uncomment this to compile for Unicode\n:: set UNICODE=1\n\n:: Set build type\nset TYPE=DBSHIP\n\n:: Use optimized assembly for Intel 80386\nset CHIP=IN_80386\n\n:: BLD_TYPE_DIR will be set automatically"
  },
  {
    "path": "src/building/backstag.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\nWAVE_CHUNK( \"building\\sound\\backstag\\GOIDA.wav\", kwavVO40 )\nWAVE_CHUNK( \"building\\sound\\backstag\\GOSTU.wav\", kwavVO41 )\nWAVE_CHUNK( \"building\\sound\\backstag\\GOPRJ.wav\", kwavVO43 )\n\nOBJECT( \"Backstage: mczee!\", kgobBackstageMcZee, 200, kcrsHand1 )\n\n\t// -------------------------------------------------------------\n\t// State 1: Default creation state.  And the dispatch state.  \n\t// Use the global kstEntry to decide which state to enter next.\n\t// ------------------------------------------------------------- \n\t\n\tREP_ANIM( CHID( kst1, krepEnterAnimation ), \"Backstage McZee dispatch.\" )\n\t\tASSERT((GLOBAL(kstEntry) >= kst2 && GLOBAL(kstEntry) <= kst6) ||\n\t\t\t\tGLOBAL(kstEntry) == 10);\n\n\t\t// The following flag will control whether or not mczee audio accompanies \n\t\t// balloon creation. ie. in toggling help on and off McZee doesn't keep talking!\n\t\t// If set to false, Mz audio and then the flag is set to TRUE.  If true, no audio\n\t\t// This is reset each time you create the lobby object.\n\t\t\n\t\t.f1sthelp=fFalse;\n\t\t.fLipsink = fFalse;\n\n\t\t// If we're doing the quick passthru to the Studio, we want to go\n\t\t// directly into the Tools.\n\t\tIf (GLOBAL(kstEntry) == kst6);\n\t\t\t.nxtPlcState = kst2;\n\t\tEnd;\n\n\t\tChangeStateThis(GLOBAL(kstEntry));\n\n\tENDCHUNK\n\n\t// -------------------------------------------------------------------\n\t// State 2:  The waiting McZee state, where the help balloon pops.\n\t// Click McZee: turns help on and off\n\t// Exits:  Click doors to enter other rooms.\n\t// -------------------------------------------------------------------\n\t \n\tREP_ANIM( CHID( kst2, krepDefault ), \"Backstage. Entry 2. Wait state and map\" )\n\t\tPLAYMIDI( kmidBackstage );\n\n\t\tIf( GLOBAL( fBackstagePS ) );\n\t\t\tSETKEYS(kflgBuildingMin);\n\t\t\tSETGLOBAL( fBackstagePS, fFalse );\n\t\t\tWAIT_FOR_TRANSITION();\t\t\t// Wait for a complete palette transition. \n\t\t\tCreateChildGob( kgobBackstage1, kgobBackstageMcZeeAVI, kgobBackstageMcZeeAVI );\n\t\t\tWhile( PlayingGob( kgobBackstageMcZeeAVI ));\n\t\t\t\tCell( kcellNull, 0,0, 6 );\t// Cell command being used as a timer.\n\t\t\tEnd;\n\t\t\tDestroyGob( kgobBackstageMcZeeAVI );\n\t\t\tSETKEYS(kflgBuildingAll);\n\t\tEnd;\n\n\t\tIf( !FGobExists( kgobBackstage1Bag ) );\n\t\t\tCreateChildGob( kgobBackstage1, kgobBackstage1Bag, kgobBackstage1Bag );\t\t\n\t\tEnd;\n\n\t\tCell( kcell101, 0, 0, 0 );\t// This cell is necessary to give this state a representation if\n\t\t\t\t\t\t\t\t\t// the AVI does not play.  A representation is needed for the help\n\t\t\t\t\t\t\t\t\t// balloon to position itself properly.\n\n\t\t// Help stuff\n\t\tIf( GLOBAL(fHelpOn) );\n\t\t\tCreateHelpGob( kgobBackstage1, ktpcBackstage );\n\t\tElif( GLOBAL( fBkstg1stHelp ) ); \n\t\t\tSETGLOBAL( fBkstg1stHelp, fFalse );\n \t\t\tSETGLOBAL( fHelpOn, fTrue );\n\t\t\tCreateHelpGob( kgobBackstage1, ktpcBackstage );\n\t\tEnd;\n\n\t\tWhile( fTrue );\n\t\t\tIf( .fLipsink );\n\t\t\t   \t.fLipsink = fFalse;\n\t\t\t\tcnt = kcell501;\n\t\t\t\tVOICE( kwavVO59, ktpcVO59 );\n\t\t\t\tWhile( cnt < kcell520 );\n\t\t\t\t\tCell( cnt++, 0, 0, 6);                                  \n\t\t\t\tEnd;\n\t\t\tEnd;\n\n\t\t\tcnt = kcell1;\n\t\t\tWhile( cnt <= kcell12 );\n\t\t\t\tCell( cnt, 0,0, 6 );\n\t\t\t\tcnt++;\n\t\t\tEnd;\n\n\t\t\trnd=Rnd(10);\n\t\t\tIf( rnd == 0 );\n\t\t\t  \tcnt = kcell21;\n\t\t\t\tWhile( cnt <= kcell32 );\n\t\t\t\t\tCell( cnt, 0,0, 6 );\n\t\t\t\t\tcnt++;\n\t\t\t\tEnd;\n\t\t\tElif( rnd == 1 );\n\t\t\t  \tcnt = kcell32;\n\t\t\t\tWhile( cnt >= kcell21 );\n\t\t\t\t\tCell( cnt, 0,0, 6 );\n\t\t\t\t\tcnt--;\n\t\t\t\tEnd;\n\t\t\tElif( rnd == 2 );\n\t\t\t  \t// spin faster and faster and faster!\n\t\t\t\tCell( kcell21, 0,0, 11 );\n\t\t\t\tCell( kcell22, 0,0, 10 );\n\t\t\t\tCell( kcell23, 0,0, 9 );\n\t\t\t\tCell( kcell24, 0,0, 8 );\n\t\t\t\tCell( kcell25, 0,0, 7 );\n\t\t\t\tCell( kcell26, 0,0, 6 );\n\n\t\t\t\tCell( kcell27, 0,0, 4 );\n\t\t\t\tCell( kcell28, 0,0, 4 );\n\t\t\t\tCell( kcell29, 0,0, 4 );\n\t\t\t\tCell( kcell30, 0,0, 4 );\n\t\t\t\tCell( kcell23, 0,0, 4 );\n\t\t\t\tCell( kcell24, 0,0, 4 );\n\t\t\t\tCell( kcell25, 0,0, 4 );\n\t\t\t\tCell( kcell26, 0,0, 4 );\n\n\t\t\t\tCell( kcell27, 0,0, 6 );\n\t\t\t\tCell( kcell28, 0,0, 7 );\n\t\t\t\tCell( kcell29, 0,0, 8 );\n\t\t\t\tCell( kcell30, 0,0, 9 );\n\t\t\t\tCell( kcell31, 0,0, 10 );\n\t\t\t\tCell( kcell32, 0,0, 11 );\n\t\t\tEnd;\n\t\tEnd;\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst3, krepDefault ), \"Studio welcome\" )\n\t\tPLAYMIDI( kmidStudio );\n\t\tWAIT_FOR_TRANSITION();\t\t\t// Wait for a complete palette transition. \n\t\tCreateChildGob( kgobBackstage1, kgobBackstageMcZeeAVI3, kgobBackstageMcZeeAVI3 );\t\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tWhile( PlayingGob( kgobBackstageMcZeeAVI3 ));\n\t\t\tCell( kcellNull, 0,0, 6 );\t// Cell command being used as a timer.\n\t\tEnd;\n\t\tDestroyGob( kgobBackstageMcZeeAVI3 );\t\t\t \n\t\tNEXTPLACE1(kgobStudio1, kst2 );\n\tENDCHUNK\n\n\tREP_ANIM(CHID(kst4, krepDefault), \"Ideas welcome\")\n\t\tPLAYMIDI( kmidIdeas );\n\t\tWAIT_FOR_TRANSITION();\t\t\t// Wait for a complete palette transition. \n\t\tCreateChildGob( kgobBackstage1, kgobBackstageMcZeeAVI2, kgobBackstageMcZeeAVI2 );\t\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tWhile( PlayingGob( kgobBackstageMcZeeAVI2 ));\n\t\t\tCell( kcellNull, 0,0, 6 );\t// Cell command being used as a timer.\n\t\tEnd;\n\t\tDestroyGob( kgobBackstageMcZeeAVI2 );\t\t\t \n\t\tNEXTPLACE1(kgobInspiration1, kst2 );\n\tENDCHUNK\n\t\t\n\tREP_ANIM( CHID(kst5, krepDefault), \"Projects welcome\")\n\t\tPLAYMIDI( kmidProject );\n\t\tWAIT_FOR_TRANSITION();\t\t\t// Wait for a complete palette transition. \n\t\tCreateChildGob( kgobBackstage1, kgobBackstageMcZeeAVI1, kgobBackstageMcZeeAVI1 );\t\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tWhile( PlayingGob( kgobBackstageMcZeeAVI1 ));\n\t\t\tCell( kcellNull, 0,0, 6 );\t// Cell command being used as a timer.\n\t\tEnd;\n\t\tDestroyGob( kgobBackstageMcZeeAVI1 );\t\t\t \n\t\tNEXTPLACE1(kgobProjects1, kst1);\n\tENDCHUNK\n\n\tREP_ANIM( CHID(kst6, krepDefault), \"Plunger opens studio\")\n\t\tCell( kcell21, 0,0, 1 );\t\t// draw one cell (to place McZee)\n\t\tIf( !FGobExists( kgobBackstage1Bag ) );\n\t\t\tCreateChildGob( kgobBackstage1, kgobBackstage1Bag, kgobBackstage1Bag );\t\t\n\t\tEnd;\n\t\tWAIT_FOR_TRANSITION();\t\t\t// Wait for a complete palette transition. \n\n\t\t// destroy the help balloon\n\t\tSETGLOBAL( fHelpOn, fFalse );\n\t\tDestroyGob( kgobBalloon1d );   // This destroys the balloon that holds the tip\n\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tPLAYMIDI( kmidStudio );\n\t\n\t\tCreateChildGob( kgobBackstage1, kgobBackstageMcZeeAVI6, kgobBackstageMcZeeAVI6 );\t\n\t\tWhile( PlayingGob( kgobBackstageMcZeeAVI6 ));\n\t\t\tCell( kcellNull, 0,0, 6 );\t// Cell command being used as a timer.\n\t\tEnd;\n\t\tDestroyGob( kgobBackstageMcZeeAVI6 );\t\t\t \n\t\tNEXTPLACE1( kgobStudio1, .nxtPlcState );\t// The next state is determined from\n\tENDCHUNK\t\t\t\t\t\t\t\t\t\t// the entry state into this place.\n\n\tREP_ANIM( CHID( kst8, krepDefault ), \"Plunger opens ideas\" )\n\t\t// destroy the help balloon\n\t\tSETGLOBAL( fHelpOn, fFalse );\n\t\tDestroyGob( kgobBalloon1d );   // This destroys the balloon that holds the tip\n\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tPLAYMIDI( kmidIdeas );\n\t\tCreateChildGob( kgobBackstage1, kgobBackstageMcZeeAVI4, kgobBackstageMcZeeAVI4 );\t\n\t\tWhile( PlayingGob( kgobBackstageMcZeeAVI4 ));\n\t\t\tCell( kcellNull, 0,0, 6 );\t// Cell command being used as a timer.\n\t\tEnd;\n\t\tDestroyGob( kgobBackstageMcZeeAVI4 );\t\t\t \n\t\tNEXTPLACE1( kgobInspiration1, kst2 );\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst9, krepDefault ), \"Plunger opens projects\" )\n\t\t// destroy the help balloon\n\t\tSETGLOBAL( fHelpOn, fFalse );\n\t\tDestroyGob( kgobBalloon1d );   // This destroys the balloon that holds the tip\n\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tPLAYMIDI( kmidProject );\n\t\tCreateChildGob( kgobBackstage1, kgobBackstageMcZeeAVI5, kgobBackstageMcZeeAVI5 );\t\n\t\tWhile( PlayingGob( kgobBackstageMcZeeAVI5 ));\n\t\t\tCell( kcellNull, 0,0, 6 );\t// Cell command being used as a timer.\n\t\tEnd;\n\t\tDestroyGob( kgobBackstageMcZeeAVI5 );\t\t\t \n\t\tNEXTPLACE1( kgobProjects1, kst1 );\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst10, krepDefault ), \"Camera pull to backstage\" )\n\t\tCell( kcell401, 0,0, 6 );\t\t// This first cell is full screen so put it up and fade into it.\n\t\tWAIT_FOR_TRANSITION();\t\t\t// Wait for a complete palette transition. \n\t\tPLAYMIDI( kmidBackstage );\n\t\tcnt=kcell402;\n\t\tWhile( cnt <= kcell421 );\n\t\t\tCell( cnt++, 0,0, 6 );\t\n\t\tEnd;\n\n\t\t// The above animation ends with McZee off stage.  If the long\n\t\t// intro (1 time per session) animation is going to play, it ends \n\t\t// with\tMcZee in the idle loop.  Otherwise a short animation is need \n\t\t// to bring McZee from off screen to the idle loop.\n\t\t// Here is the \"Otherwise\" animation:\n\t\tIf( !GLOBAL( fBackstagePS ) );\n \t\t\tcnt=kcell451;\n\t\t\tCreateChildGob( kgobBackstage1, kgobBackstage1Bag, kgobBackstage1Bag );\t\t\n\t\t\tChangeStateGob( kgobBackstage1Bag, kst2 );\n\t\t\tCreateChildGob( kgobBackstage1, kgobBackstage1Shadow, kgobBackstage1Shadow );\t\t\n\t\t\tWhile( cnt <= kcell484 );\n\t\t\t\tCell( cnt++, 0,0, 8 );\t\n\t\t\tEnd;\n\t\tEnd;\n\n\t\tChangeStateThis( kst2 );\n\tENDCHUNK\n\n\tCLICK_SCRIPT(\"Clicked Mz, toggle help\")\n\t\tIf( GLOBAL( fHelpOn ) );\n\t\t\tSETGLOBAL( fHelpOn, fFalse );\n\t\t\tDestroyGob( kgobBalloon1d );  \t// This destroys the balloon that holds the tip\n\t\tElse;\n\t\t\tSETGLOBAL( fHelpOn, fTrue );\n\t\t\tCreateHelpGob( kgobBackstage1, ktpcBackstage );\n\t\tEnd;\n\tENDCHUNK\n\tREP_RECT( kcellNull, \"No representation.\", 0,0,1,1 )\n\t#include \"mzbkstg.seq\"\n\n\nHELP_SCRIPT( ktpcBackstage )\n \tIf( _parm[0] == 0 );\n\t\tIf( !kgobBackstageMcZee->f1sthelp );\t\t\n\t\t\tkgobBackstageMcZee->fLipsink = fTrue;\n\t\t\tkgobBackstageMcZee->f1sthelp = fTrue;\n\t\tEnd;\n\tElif( _parm[0] == 1 );\t\t// Work on a project.\n\t\tDestroyGob( kgobBalloon1d );\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tChangeStateGob( kgobBackstageMcZee, kst9 );\n\n\tElif( _parm[0] == 2 );\t\t// Get ideas for your movie.\n\t\tDestroyGob( kgobBalloon1d );\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tChangeStateGob( kgobBackstageMcZee, kst8 );\n\n\tElif( _parm[0] == 3 );\t\t// Work on your own movie.\n\t\tDestroyGob( kgobBalloon1d );\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tkgobBackstageMcZee->nxtPlcState\t= kst2;\n\t\tChangeStateGob( kgobBackstageMcZee, kst6 );\n\tEnd;\nENDCHUNK\n\nOBJECT( \"Project room opening door\", kgobProjectDoor, 150, kcrsArrow1 )\n\tREP_ANIM( CHID( kst1, krepEnterAnimation ), \"Ideas rm door opening anim\" )\n\t\tcnt=kcell1;\n\t\tWhile( cnt <= kcell16 );\n\t\t\tCell( cnt++, 0,0, 6 );\t\t\n\t\tEnd;\n\tENDCHUNK\n\t#include \"PrDoor.seq\"\n\nOBJECT( \"Studio room opening door\", kgobStudioDoor, 150, kcrsArrow1 )\n\tREP_ANIM( CHID( kst1, krepEnterAnimation ), \"Ideas rm door opening anim\" )\n\t\tcnt=kcell1;\n\t\tWhile( cnt <= kcell16 );\n\t\t\tCell( cnt++, 0,0, 6 );\t\n\t\tEnd;\n\tENDCHUNK\n\t#include \"StDoor.seq\"\n\nOBJECT( \"Ideas room opening door\", kgobIdeaDoor, 150, kcrsArrow1 )\n\tREP_ANIM( CHID( kst1, krepEnterAnimation ), \"Ideas rm door opening anim\" )\n\t\tcnt=kcell1;\n\t\tWhile( cnt <= kcell18 );\n\t\t\tCell( cnt++, 0,0, 6 );\t\n\t\tEnd;\n\tENDCHUNK\n\t#include \"IdDoor.seq\"\n\n OBJECT( \"Mz's carpet bag\", kgobBackstage1Bag, 150, kcrsArrow1 )\n\tREP_PPMBMP( CHID( kst1, krepDefault ), \"building\\pbm\\backstag\\bag12.pbm\" )\n \tREP_ANIM( CHID( kst2, krepDefault ), \"Backstage carpet bag anim\" )\n\t\tcnt=kcell1;\n\t\tWhile( cnt <= kcell20 );\n\t\t\tCell( cnt++, 0,0, 8 );\t\t\n\t\tEnd;\n\t\tChangeStateThis( kst1 );\n\tENDCHUNK\n\t#include \"BkstgBag.seq\"\n \n OBJECT( \"Mz's shadow\", kgobBackstage1Shadow, 150, kcrsArrow1 )\n \tREP_ANIM( CHID( kst1, krepDefault ), \"Backstage shadow anim\" )\n\t\tcnt=kcell1;\n\t\tWhile( cnt <= kcell34 );\n\t\t\tCell( cnt++, 0,0, 8 );\t\t\n\t\tEnd;\n\t\tDestroyThis();\n\tENDCHUNK\n\t#include \"BkShdw.seq\"\n\n//------------------------------------------------------------------\n// The long backstage welcome.  An AVI sequence.\n//------------------------------------------------------------------\nOBJECTREG( \"Backstage McZee AVI\", kgobBackstageMcZeeAVI, 0, 0, 200, kcrsHand1 )\n\tREP_VIDEO( CHID1( krepDefault ), \"backstag.avi\", fTrue )\n\tCLICK_SCRIPT( \"click McZee AVI\" )\n\t\t\tDestroyThis();\n\tENDCHUNK\n\nOBJECTREG( \"AVI1\", kgobBackstageMcZeeAVI1, 0, 0, 100, kcrsArrow1 )\n\tREP_VIDEO( CHID1( krepDefault ), \"05LOGN4.AVI\", fTrue )\n\nOBJECTREG( \"AVI2\", kgobBackstageMcZeeAVI2, 0, 0, 100, kcrsArrow1 )\n\tREP_VIDEO( CHID1( krepDefault ), \"LOGN5.AVI\", fTrue )\n\nOBJECTREG( \"AVI3\", kgobBackstageMcZeeAVI3, 0, 0, 100, kcrsArrow1 )\n\tREP_VIDEO( CHID1( krepDefault ), \"LOGN06.AVI\", fTrue )\n\nOBJECTREG( \"AVI4\", kgobBackstageMcZeeAVI4, 0, 0, 100, kcrsArrow1 )\n\tREP_VIDEO( CHID1( krepDefault ), \"GOIDA.AVI\", fTrue )\n\nOBJECTREG( \"AVI5\", kgobBackstageMcZeeAVI5, 0, 0, 100, kcrsArrow1 )\n\tREP_VIDEO( CHID1( krepDefault ), \"GOPRJ.AVI\", fTrue )\n\nOBJECTREG( \"AVI6\", kgobBackstageMcZeeAVI6, 0, 0, 100, kcrsArrow1 )\n\tREP_VIDEO( CHID1( krepDefault ), \"GOSTU.AVI\", fTrue )\n\n\n\nOBJECT( \"bs1 - inspiration door\", kgobBackstage1Insp, 150, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\backstag\\Bkstgdr1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"bkstg2 : click insp. door\" )\n\t\tChangeStateGob( kgobBackstageMcZee, kst8 );\n\tENDCHUNK\n\n// -----------------------------------------------------\nOBJECT( \"bs1 - studio door\", kgobBackstage1Studio, 150, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\backstag\\Bkstgdr2.bmp\",0 ,0 )\n\tCLICK_SCRIPT( \"bkstg2 : click studio door\" )\n\t\tkgobBackstageMcZee->nxtPlcState\t= kst1;\n\t\tChangeStateGob( kgobBackstageMcZee, kst6 );\n\tENDCHUNK\n\n// -----------------------------------------------------\nOBJECT( \"bs1 - projects door\", kgobBackstage1Proj, 150, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\backstag\\Bkstgdr3.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"bs2 : click projects door\" )\n\t\tChangeStateGob( kgobBackstageMcZee, kst9 );\n\tENDCHUNK\n\n"
  },
  {
    "path": "src/building/bkshdw.seq",
    "content": "REP_PPMBMP( kcell1, \"building\\pbm\\backstag\\shdw1.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\backstag\\shdw2.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\backstag\\shdw3.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\backstag\\shdw4.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\backstag\\shdw5.pbm\" )\nREP_PPMBMP( kcell6, \"building\\pbm\\backstag\\shdw6.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\backstag\\shdw7.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\backstag\\shdw8.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\backstag\\shdw9.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\backstag\\shdw10.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\backstag\\shdw11.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\backstag\\shdw12.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\backstag\\shdw13.pbm\" )\nREP_PPMBMP( kcell14, \"building\\pbm\\backstag\\shdw14.pbm\" )\nREP_PPMBMP( kcell15, \"building\\pbm\\backstag\\shdw15.pbm\" )\nREP_PPMBMP( kcell16, \"building\\pbm\\backstag\\shdw16.pbm\" )\nREP_PPMBMP( kcell17, \"building\\pbm\\backstag\\shdw17.pbm\" )\nREP_PPMBMP( kcell18, \"building\\pbm\\backstag\\shdw18.pbm\" )\nREP_PPMBMP( kcell19, \"building\\pbm\\backstag\\shdw19.pbm\" )\nREP_PPMBMP( kcell20, \"building\\pbm\\backstag\\shdw20.pbm\" )\nREP_PPMBMP( kcell21, \"building\\pbm\\backstag\\shdw21.pbm\" )\nREP_PPMBMP( kcell22, \"building\\pbm\\backstag\\shdw22.pbm\" )\nREP_PPMBMP( kcell23, \"building\\pbm\\backstag\\shdw23.pbm\" )\nREP_PPMBMP( kcell24, \"building\\pbm\\backstag\\shdw24.pbm\" )\nREP_PPMBMP( kcell25, \"building\\pbm\\backstag\\shdw25.pbm\" )\nREP_PPMBMP( kcell26, \"building\\pbm\\backstag\\shdw26.pbm\" )\nREP_PPMBMP( kcell27, \"building\\pbm\\backstag\\shdw27.pbm\" )\nREP_PPMBMP( kcell28, \"building\\pbm\\backstag\\shdw28.pbm\" )\nREP_PPMBMP( kcell29, \"building\\pbm\\backstag\\shdw29.pbm\" )\nREP_PPMBMP( kcell30, \"building\\pbm\\backstag\\shdw30.pbm\" )\nREP_PPMBMP( kcell31, \"building\\pbm\\backstag\\shdw31.pbm\" )\nREP_PPMBMP( kcell32, \"building\\pbm\\backstag\\shdw32.pbm\" )\nREP_PPMBMP( kcell33, \"building\\pbm\\backstag\\shdw33.pbm\" )\nREP_PPMBMP( kcell34, \"building\\pbm\\backstag\\shdw34.pbm\" )\n\n"
  },
  {
    "path": "src/building/bkstgbag.seq",
    "content": "REP_PPMBMP( kcell1, \"building\\pbm\\backstag\\bag1.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\backstag\\bag2.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\backstag\\bag3.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\backstag\\bag4.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\backstag\\bag5.pbm\" )\nREP_PPMBMP( kcell6, \"building\\pbm\\backstag\\bag6.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\backstag\\bag7.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\backstag\\bag8.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\backstag\\bag9.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\backstag\\bag10.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\backstag\\bag11.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\backstag\\bag12.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\backstag\\bag13.pbm\" )\nREP_PPMBMP( kcell14, \"building\\pbm\\backstag\\bag14.pbm\" )\nREP_PPMBMP( kcell15, \"building\\pbm\\backstag\\bag15.pbm\" )\nREP_PPMBMP( kcell16, \"building\\pbm\\backstag\\bag16.pbm\" )\nREP_PPMBMP( kcell17, \"building\\pbm\\backstag\\bag17.pbm\" )\nREP_PPMBMP( kcell18, \"building\\pbm\\backstag\\bag18.pbm\" )\nREP_PPMBMP( kcell19, \"building\\pbm\\backstag\\bag19.pbm\" )\nREP_PPMBMP( kcell20, \"building\\pbm\\backstag\\bag20.pbm\" )\n"
  },
  {
    "path": "src/building/bldghd.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// ---------------------------------------------------------\n// HD component of the building file\n// ---------------------------------------------------------\n\n// ---------------------------------------------------------\n// Project macros and definitions\n// ---------------------------------------------------------\n#define PACKALL\n\n#include \"kidgs.chh\"\n\n// ---------------------------------------------------------\n// Object definitions shared between studio and building\n// ---------------------------------------------------------\n\n#include <stdiodef.h>\n\n// ---------------------------------------------------------\n// Building object definitions\n// ---------------------------------------------------------\n\n#include \"socdefn.h\"\n\n// needed to get definition for ksclBuilding..\n#include \"projmain.h\"\t\t\t\t\t\t\t\t\t\n// ---------------------------------------------------------\n// Start up stuff.\n// ---------------------------------------------------------\n\n#include \"sharutil.chh\"\n#include \"biopage.chh\"\n\n// Init macro values\nSTARTCHUNKS( 0x00040000 )\n\n// This script gets called each time the building is loaded.  This includes\n// application startup as well as subsequent Studio=>Building transitions.\nSCRIPTCHUNK( \"Start application\" , kcnoStartApp )\n\n\t::fInStudio = fFalse;\n\tFilterCmdsGob(kgobUtil, cidLoadStudioFailed, kidNil, chidNil);\n\n\tkgobGoto = GetProp(kpridBuildingGob);\n\tDEBUGCMD(PrintStr(\"Starting Building with kpridBuildingGob = \",\n\t\t\tNumToStr(kgobGoto, \"\"), \"; kpridBuildingState = \",\n\t\t\tNumToStr(GetProp(kpridBuildingState), \"\")));\n\tASSERT(kgobGoto != 0);\n\tASSERT(GetProp(kpridBuildingState) >= kst1);\n\n\t// Any portfolio stuff the studio was doing should be cleared here.\n\tEnqueueCid(cidPortfolioClear, 0, 0,0,0,0);\n\n\t// Go to the specified gob.\n\t// Note: kstEntry is set by LOADTOOLS on the way out of the building\n\t// so it should be valid here.\n\tSETGLOBAL(kstEntry, GetProp(kpridBuildingState));\n\tNEXTPLACE1(kgobGoto, GLOBAL(kstEntry));\n\n\t// Normally, the Studio filters for these, but if we're in the building,\n\t// the studio doesn't exist, so we need to trap them.  Make sure this\n\t// trap is turned off when the studio is created again.\n\tFilterCmdsGob(kgobUtil, cidOpen, kidNil, kchidScript6);\n\tFilterCmdsGob(kgobUtil, cidNew, kidNil, kchidScript6);\n\tFilterCmdsGob(kgobUtil, cidLoadStudioDoc, kidNil, kchidScript6);\n\n\tEndLongOp(fTrue);\t// If the studio set the wait cursor, turn it off.\n\tENABLEACCEL(fTrue);\nENDCHUNK\n\n\n// ---------------------------------------------------------\n// Get definitions for shared stuff - eg. bio pages\n// ---------------------------------------------------------\n#include \"biopage.chh\"\n\n// ---------------------------------------------------------\n// Now include all of the chunks/components.\n// ---------------------------------------------------------\n\n#include \"palette.cht\"\n\n\n// ---------------------------------------------------------\n// shared building components\n// ---------------------------------------------------------\n\n#include \"navbars.cht\"\n#include \"music.cht\"\n#include \"portfol.cht\"\n\n// ---------------------------------------------------------\n// all of the 'places' - each file includes all views\n// ---------------------------------------------------------\n#include \"login.cht\"\n\n// ---------------------------------------------------------\n// Street scene (the whole thing)\n\n#include \"street.cht\"\n\n// ---------------------------------------------------------\n// ticket booth\n// ----------------------------------------------------------\n// Definitions for the ticket booth place '1' - far off view\n// ----------------------------------------------------------\n\nOBJECT( \"ticket1-far view\",  kgobTicket1, 0, kcrsHand1 )\n\tREP_PPMBMP( CHID1( krepDefault ), \"building\\pbm\\ticket\\ticket1.pbm\" )\n\tCREATE_SCRIPT( \"ticket1: create\" )\n\t\tSETPALETTE( kpalSocTicket );\n\t\tSETKEYS(kflgBuildingMin);\n\n\t\tPLAYMIDI_LOOP( cnoNil );\t// no music\n\n\t\tCreateChildThis( kgobTicket1Doors, kgobTicket1Doors );\n\t\tCreateChildThis( kgobTicket1Waiter, kgobTicket1Waiter );\n\tENDCHUNK\n\tCLICK_SCRIPT( \"ticket1: anything clicked\" )\n\t\tNEXTPLACE1( kgobTicket2, kst2 );\n\tENDCHUNK\n\n\n// -------------------------------------------------------\n// Definitions for the ticket booth place 2- close up view\n// -------------------------------------------------------\nOBJECT( \"ticket2-zoom view\",  kgobTicket2, 0, kcrsArrow1 )\n\tREP_PPMBMP( CHID1( krepDefault ), \"building\\pbm\\ticket\\ticket2.pbm\" )\n\tCREATE_SCRIPT( \"ticket2 created\" )\n\t\tSETPALETTE( kpalSocTicket );\n\t\tSETKEYS(kflgBuildingAll);\n\t\tPLAYMIDI( cnoNil );\n\t\tCreateChildThis( kgobTicket2McZee, kgobTicket2McZee );\n\t\tCreateChildThis( kgobTicket2Exit, kgobTicket2Exit );\n\t\tCreateChildThis( kgobTicket2Map, kgobTicket2Map );\n\t\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\t\t\t\n\t\tCreateChildThis( kgobTic1m1, kgobTic1m1 );\n\tENDCHUNK\n\n#ifdef DEBUG\n\t// If we needed to implement multiple-state entries from the map to the\n\t// ticket booth, we would use this routine.  For now, ASSERT that it doesn't\n\t// get used.\n\tCHILD_SCRIPT(\"Backstage1:Dispatch\", kchidScript0)\n\t\tASSERT(fFalse);\n\tENDCHUNK\n#endif\t// DEBUG\n\n// -------------------------------------------------------\n// lobby \n\nOBJECT( \"lobby1-front view\",  kgobLobby1, 0, kcrsArrow1 )\n\tREP_PPMBMP( CHID1( krepDefault ), \"building\\pbm\\lobby\\lobby1.pbm\" )\n\tCREATE_SCRIPT( \"lobby1 startup\" )\n\n\t\tSETPALETTE( kpalSocLobby );\n\t\tSETKEYS(kflgBuildingAll);\n\t\tPLAYMIDI( kmidLobby );\n\n\t\t.fExitLobby=fFalse;\t\t// if set: triggers McZee to cycle out\n\n\t\tCreateChildThis( kgobNavbarLeft, \tkgobNavbarLeft);\n\t\tCreateChildThis( kgobNavbarDown, \tkgobNavbarDown );\n\t\tCreateChildThis( kgobNavbarRight, \tkgobNavbarRight ); \n\t\tCreateChildThis( kgobLobby1Door,\tkgobLobby1Door );\n\t\tCreateChildThis( kgobLobby1Poster3, kgobLobby1Poster3 );\n\t\tCreateChildThis( kgobLobby1Poster4, kgobLobby1Poster4 );\n\t\tCreateChildThis( kgobLobby1McZee,  \tkgobLobby1McZee );\n\t\tCreateChildThis( kgobLobby1m1, \t\tkgobLobby1m1 );\n\tENDCHUNK\n\n#ifdef DEBUG\n\t// If we needed to implement multiple-state entries from the map to the\n\t// lobby, we would use this routine.  For now, ASSERT that it doesn't\n\t// get used.\n\tCHILD_SCRIPT(\"Backstage1:Dispatch\", kchidScript0)\n\t\tASSERT(fFalse);\n\tENDCHUNK\n#endif\t// DEBUG\n\n\n// ------------------------------------------------------------------------\n// Stuff for view #2 of lobby.\n// ------------------------------------------------------------------------\nOBJECT( \"lobby-back view\",  kgobLobby2, 0, kcrsArrow1 )\n\tREP_PPMBMP( CHID1( krepDefault ), \"building\\pbm\\lobby\\lobby2.pbm\" )\n\tCREATE_SCRIPT( \"lobby2 startup\" )\n\t\tSETPALETTE( kpalSocLobby );\n\t\tSETKEYS(kflgBuildingAll);\n\t\tPLAYMIDI( kmidLobby );\n\t\tCreateChildThis( kgobNavbarLeft, kgobNavbarLeft);\n\t\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\t\tCreateChildThis( kgobNavbarRight, kgobNavbarRight ); \n\t\tCreateChildThis( kgobLobby2Doors, kgobLobby2Doors );\n\t\tCreateChildThis( kgobLobby2Map, kgobLobby2Map );\n\t\tCreateChildThis( kgobLobby2Exit, kgobLobby2Exit );\n\tENDCHUNK\n\n// ------------------------------------------------------------------------\n// Waiting area\n\n#include \"waiting.cht\"\n\n// ------------------------------------------------------------------------\n// Snackbar backgrounds\n\nOBJECT( \"snackbar\", kgobSnackBar, 0, kcrsArrow1 )\nREP_PPMBMP( CHID1( krepDefault),  \"building\\pbm\\snackbar\\snackbr2.pbm\" )\nCREATE_SCRIPT( \"snackbar create\" )\n\tSETPALETTE( kpalSocLobby );\n\tSETKEYS(kflgBuildingAll);\n\tPLAYMIDI( kmidLobby );\n\tCreateChildThis( kgobSnackbarMczee, kgobSnackbarMczee );\n\tCreateChildThis( kgobNavbarLeft, kgobNavbarLeft);\n\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\tCreateChildThis( kgobNavbarRight, kgobNavbarRight ); \n\tCreateChildThis( kgobLobby3m1, kgobLobby3m1 );\n\tCreateChildThis( kgobLobby3m2, kgobLobby3m2 );\nENDCHUNK\n\n\n// ------------------------------------------------------------------------\n// Theatre\n\nOBJECT( \"theatre1\",  kgobTheatre1, 0, kcrsArrow1 )\n\tREP_RECT(CHID(kst1, krepDefault), \"Theatre1 State1 Rep\", 0, 0, 640, 480)\n \tREP_PPMBMP(CHID(kst2, krepDefault),  \"building\\pbm\\theatre\\theatre1.pbm\")\n\tREP_PPMBMP(CHID(kst3, krepDefault),  \"building\\pbm\\theatre\\the1dark.pbm\")\n\tCREATE_SCRIPT( \"theatre1: create\" )\n\t\tDEBUGCMD(PrintStr(\"Creating Theatre1\"));\n\t\tSETPALETTE( kpalSocTheatre);\n\t\tSETKEYS(kflgBuildingAll);\n\t\tPLAYMIDI( kmidTheatre );\n\t\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\t\tCreateChildThis( kgobTheatre1LeftDoor, kgobTheatre1LeftDoor );\n\t\tCreateChildThis( kgobTheatre1RightDoor, kgobTheatre1RightDoor );\n\t\tCreateChildThis( kgobTheatre1McZee,\tkgobTheatre1McZee );\n\t\tChangeStateThis(kst2);\n\tENDCHUNK\n\n#ifdef DEBUG\n\t// If we needed to implement multiple-state entries from the map to the\n\t// theatre, we would use this routine.  For now, ASSERT that it doesn't\n\t// get used.\n\tCHILD_SCRIPT(\"Backstage1:Dispatch\", kchidScript0)\n\t\tASSERT(fFalse);\n\tENDCHUNK\n#endif\t// DEBUG\n\n\n// ---------------------------------------------------------\n// back view of the theatre & its objects\n// ---------------------------------------------------------\nOBJECT( \"theatre2\", kgobTheatre2, 0, kcrsArrow1 )\n\tREP_PPMBMP( CHID1( krepDefault ),  \"building\\pbm\\theatre\\theatre2.pbm\" )\n\tCREATE_SCRIPT( \"theatre2: create\" )\n\t\tSETPALETTE( kpalSocTheatre );\n\t\tSETKEYS(kflgBuildingAll);\n\t\tPLAYMIDI( kmidTheatre );\n\t\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\t\tCreateChildThis( kgobTheatre2Door, kgobTheatre2Door );\n\t\tCreateChildThis( kgobTheatre2Map, kgobTheatre2Map );\n\t\tCreateChildThis( kgobTheatre2Exit, kgobTheatre2Exit );\n\t\tCreateChildThis( kgobTheater2m1, kgobTheater2m1 );\n\t\tCreateChildThis( kgobTheater2m2, kgobTheater2m2 );\n\t\tCreateChildThis( kgobTheater2m3, kgobTheater2m3 );\n\tENDCHUNK\n\n\n// ---------------------------------------------------------\n// front left view of the theatre & its objects\n// ---------------------------------------------------------\nOBJECT( \"theatre3\", kgobTheatre3, 0, kcrsArrow1 )\n\tREP_PPMBMP( CHID1( krepDefault ),  \"building\\pbm\\theatre\\theatre3.pbm\" )\n\tCREATE_SCRIPT( \"theatre3: create\")\n\t\tSETPALETTE( kpalSocTheatre );\n\t\tSETKEYS(kflgBuildingAll);\n\t\tPLAYMIDI( kmidTheatre );\n\t\tCreateChildThis( kgobTheatre3Right, kgobTheatre3Right );\n\t\tCreateChildThis( kgobTheatre3Door, kgobTheatre3Door );\n\t\tCreateChildThis( kgobTheatre3Map, kgobTheatre3Exit );\n\t\tCreateChildThis( kgobTheatre3Exit, kgobTheatre3Map );\n\tENDCHUNK\n\n// ---------------------------------------------------------\n// Front right view of the theatre & its objects\n// ---------------------------------------------------------\nOBJECT( \"theatre4\",  kgobTheatre4, 0, kcrsArrow1 )\n\tREP_PPMBMP( CHID1( krepDefault ), \"building\\pbm\\theatre\\theatre4.pbm\" )\n\tCREATE_SCRIPT( \"theatre4: create\" )\n\t\tASSERT(GLOBAL(kstEntry) >= kst2 && GLOBAL(kstEntry) <= kst4);\n\t\tDEBUGCMD( PrintStr(\"Create theatre4 object\") );\n\t\tSETPALETTE( kpalSocTheatre );\n\t\tSETKEYS(kflgBuildingAll);\n\t\tPLAYMIDI( kmidTheatre );\n\n\t\t// If GLOBAL(kstEntry) == 2 don't run the pass thru Mz\n\n\t\tIf (GLOBAL(kstEntry) == kst3);\n\t\t\t.nxtPlcState = kst3;\n\t\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\t\tCreateChildThis( kgobTheatre4McZee, kgobTheatre4McZee );\n\t\tElif (GLOBAL(kstEntry) == kst4);\n\t\t\t.nxtPlcState = kst6;\n\t\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\t\tCreateChildThis( kgobTheatre4McZee, kgobTheatre4McZee );\n\t\tEnd;\n\n\t\t// Create the rest of the objects in this sceen\n\t\tCreateChildThis( kgobTheatre4Left, kgobTheatre4Left );\n\t\tCreateChildThis( kgobTheatre4Door, kgobTheatre4Door );\n\t\tCreateChildThis( kgobTheatre4Map, kgobTheatre4Exit );\n\t\tCreateChildThis( kgobTheatre4Exit, kgobTheatre4Map );\n\tENDCHUNK\n\n\tCHILD_SCRIPT(\"Theater4 McZee call back.\", kchidScript1 )\n\t\tNEXTPLACE1( kgobBackstage1, .nxtPlcState );\n\tENDCHUNK \n\n\n// backstage stuff\n\n// -----------------------------------------------------\n// Backstage view 1 & objects\n// -----------------------------------------------------\n\nOBJECT( \"backstage\", kgobBackstage1, 0, kcrsArrow1 )\n\tCREATE_SCRIPT( \"backstage1 : startup\" )\n\t\tSETPALETTE( kpalSocBackstage );\n\t\tSETKEYS(kflgBuildingAll);\n\t\t\n\t\t//\tThere are many pass through animations in backstag.cht\n\t\t//\twhich require MIDI other than Backstage MIDI so it is \n\t\t//\tmore efficent to play MIDI based on McZees state.\n\t\t//\t\tPLAYMIDI( cnoNil );\n\n\t\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\t\tCreateChildThis( kgobBackstage1Insp, kgobBackstage1Insp );\n\t\tCreateChildThis( kgobBackstage1Studio, kgobBackstage1Studio );\n\t\tCreateChildThis( kgobBackstage1Proj, kgobBackstage1Proj );\n\t\tCreateChildThis( kgobBackstageMcZee, kgobBackstageMcZee );\n\tENDCHUNK\n\tREP_PPMBMP( CHID1( krepDefault ), \"building\\pbm\\backstag\\backstg1.pbm\" )\n\n#ifdef DEBUG\n\t// If we needed to implement multiple-state entries from the map to the\n\t// backstage, we would use this routine.  For now, ASSERT that it doesn't\n\t// get used.\n\tCHILD_SCRIPT(\"Backstage1:Dispatch\", kchidScript0)\n\t\tASSERT(fFalse);\n\tENDCHUNK\n#endif\t// DEBUG\n\nOBJECT( \"backstage view 2 \", kgobBackstage2, 0, kcrsArrow1 )\n\tREP_PPMBMP( CHID1( krepDefault ), \"building\\pbm\\backstag\\backstg2.pbm\" )\n\tCREATE_SCRIPTST( \"startup\", kst1 )\n\t\tSETPALETTE( kpalSocBackstage );\n\t\tSETKEYS(kflgBuildingAll);\n\t\tPLAYMIDI( kmidBackstage );\n\t\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\t\tCreateChildThis( kgobBackstage2Right, kgobBackstage2Right );\n\t\tCreateChildThis( kgobBackstage2Left, kgobBackstage2Left );\n\t\tCreateChildThis( kgobBackstage2Map, kgobBackstage2Map );\n\t\tCreateChildThis( kgobBackstage2Exit, kgobBackstage2Exit );\n\t\t// bio page hotspots\n\t\tCreateChildThis( kgobBackstage2m1, kgobBackstage2m1 );\n\tENDCHUNK\n\n// -----------------------------------------------------\n// Backstage view 2, and objects\n// -----------------------------------------------------\n\n// -----------------------------------------------------\nOBJECT( \"bs2 - left door\", kgobBackstage2Left, 33, kcrsLeft )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\backstag\\bk2ltdr2.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"bs2 left door clicked!\" )\n\t\tNEXTPLACE1( kgobTheatre4, kst2 );\n\tENDCHUNK\n\n// -----------------------------------------------------\nOBJECT( \"bs2 - right door\", kgobBackstage2Right, 33, kcrsRight)\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\backstag\\bk2rtdr2.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"bs2 right door clicked!\" )\n\t\tNEXTPLACE1( kgobTheatre3, kst1 );\n\tENDCHUNK\n\n// -----------------------------------------------------\nOBJECT( \"backstage2 map\", kgobBackstage2Map, 44, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\backstag\\bk2map.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"backstage2 map clicked\" ) \n\t\tCreateChildGob( GET_CURRENTPLACE(), kgobMapMain, kgobMapMain );\n\tENDCHUNK\n\n// -----------------------------------------------------\nOBJECT( \"backstage2 exit\", kgobBackstage2Exit, 44, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\backstag\\bk2quit.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"backstage2 exit clicked\" ) \n\t\tQUITAPP();\n\tENDCHUNK\n\nOBJECT( \"Biopage 40 mask\",  kgobBackstage2m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\backstag\\bkstg2m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf( fBIO_AVAIL( 40 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 40 );\n\t\t\tBIO_CREATEBOOK( 40, fFalse, kgobBackstage2 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\n\n\n// Inspiration (Ideas) room\n\nOBJECT( \"inspiration view 1\", kgobInspiration1, 0, kcrsArrow1 )\n\tREP_PPMBMP( CHID1(krepDefault), \"building\\pbm\\inspirat\\inspir1.pbm\" )\n\tCREATE_SCRIPTST( \"startup\", kst1 )\n\t\tSETKEYS(kflgBuildingAll);\n\t\tSETPALETTE( kpalSocInspiration );\n\t\tPLAYMIDI( kmidIdeas );\n\t\tCreateChildThis( kgobNavbarLeft, kgobNavbarLeft);\n\t\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\t\tCreateChildThis( kgobNavbarRight, kgobNavbarRight );\n\t\tCreateChildThis( kgobSplotMachine, kgobSplotMachine ); \n\t\tCreateChildThis( kgobTalentBook, kgobTalentBook ); \n\t\tCreateChildThis( kgobInsp1McZee, kgobInsp1McZee );\n\t\tCreateChildThis( kgobIdea1m1, kgobIdea1m1 );\t// bio hotspot\n\n\t\t// If we've come to this room without navigating through\n\t\t// the back stage area, then don't play the long back stage \n\t\t// introduction when we do go there.  This is to maintain\n\t\t// continuity with reguard to where characters are in the building\n\t\t// at the time of the backstage long introduction. \n\t\tSETGLOBAL( fBackstagePS, fFalse );\n\tENDCHUNK\n\n\tCHILD_SCRIPT(\"Inspiration1:Dispatch\", kchidScript0)\n\t\t// Inspiration McZee never hangs out in kst1, so switching to kst1 is\n\t\t// guaranteed to run his dispatch state.\n\t\tChangeStateGob(kgobInsp1McZee, kst1);\n\tENDCHUNK\n\n// -----------------------------------------------------\n// Inspiration 2 - back view\n// -----------------------------------------------------\nOBJECT( \"inspiration view 2\", kgobInspiration2, 0, kcrsArrow1 )\nREP_PPMBMP( CHID1(krepDefault), \"building\\pbm\\inspirat\\inspir2.pbm\" )\nCREATE_SCRIPT( \"startup\" )\n\tSETPALETTE( kpalSocInspiration );\n\tSETKEYS(kflgBuildingAll);\n\tPLAYMIDI( kmidIdeas );\n\tCreateChildThis( kgobNavbarLeft, kgobNavbarLeft);\n\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\tCreateChildThis( kgobNavbarRight, kgobNavbarRight ); \n\tCreateChildThis( kgobInsp2Doors, kgobInsp2Doors );\n\tCreateChildThis( kgobInsp2Map, kgobInsp2Map );\n\tCreateChildThis( kgobInsp2Exit, kgobInsp2Exit );\n\t\n\tCreateChildThis( kgobIdea2m1, kgobIdea2m1 );\nENDCHUNK\n\n// -----------------------------------------------------\n// Inspiration 3 - left view\n// -----------------------------------------------------\nOBJECT( \"inspiration view 3\",  kgobInspiration3, 0, kcrsArrow1 )\nREP_PPMBMP( CHID1(krepDefault), \"building\\pbm\\inspirat\\inspir3.pbm\" )\nCREATE_SCRIPT( \"startup\" )\n\tSETPALETTE( kpalSocInspiration );\n\tSETKEYS(kflgBuildingAll);\n\tPLAYMIDI( kmidIdeas );\n\tCreateChildThis( kgobNavbarLeft, kgobNavbarLeft);\n\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\tCreateChildThis( kgobNavbarRight, kgobNavbarRight ); \n\n\tCreateChildThis( kgobIdea3m1, kgobIdea3m1 );\n\tCreateChildThis( kgobIdea3m2, kgobIdea3m2 );\n\tCreateChildThis( kgobIdea3m3, kgobIdea3m3 );\nENDCHUNK\n\n// -----------------------------------------------------\n// Inspiration 4 - right view\n// -----------------------------------------------------\nOBJECT( \"inspiration view 4\",  kgobInspiration4, 0, kcrsArrow1 )\n\tREP_PPMBMP( CHID1(krepDefault), \"building\\pbm\\inspirat\\inspir4.pbm\" )\n\tCREATE_SCRIPT( \"startup\" )\n\t\tSETPALETTE( kpalSocInspiration );\n\t\tSETKEYS(kflgBuildingAll);\n\t\tPLAYMIDI( kmidIdeas );\n\t\tCreateChildThis( kgobNavbarLeft, kgobNavbarLeft);\n\t\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\t\tCreateChildThis( kgobNavbarRight, kgobNavbarRight ); \n\t\n\t\tCreateChildThis( kgobIdea4m1, kgobIdea4m1 );\n\t\tCreateChildThis( kgobIdea4m2, kgobIdea4m2 );\n\t\tCreateChildThis( kgobIdea4m3, kgobIdea4m3 );\n\tENDCHUNK\n\n// Studio \n\n// -----------------------------------------------------\n// Studio 1 - front view\n// -----------------------------------------------------\n\nOBJECT( \"studio view 1\",  kgobStudio1, 0, kcrsArrow1 )\nREP_PPMBMP( CHID1( krepDefault),\"building\\pbm\\studio\\studio1.pbm\" )\nREP_PPMBMP( CHID( kst2, krepDefault),\"building\\pbm\\studio\\studio1b.pbm\" )\t// state 2=tools background\nCREATE_SCRIPT( \"studio1: startup\" )\n\tASSERT(GLOBAL(kstEntry) == kst1 || GLOBAL(kstEntry) == kst2);\n\n\tSETPALETTE( kpalSocStudio );\n\tSETKEYS(kflgBuildingAll);\n\n\tCreateChildThis( kgobNavbarLeft, kgobNavbarLeft);\n\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\tCreateChildThis( kgobNavbarRight, kgobNavbarRight ); \n\tCreateChildThis( kgobStudio1Tools, kgobStudio1Tools );\n\tCreateChildThis( kgobStudio1McZee, kgobStudio1McZee );\n\tCreateChildThis( kgobStdo1m1, kgobStdo1m1 );\n\n\t// If we've come to this room without navigating through\n\t// the back stage area, then don't play the long back stage \n\t// introduction when we do go there.  This is to maintain\n\t// continuity with reguard to where characters are in the building\n\t// at the time of the backstage long introduction. \n\tSETGLOBAL( fBackstagePS, fFalse );\n\n\tRunScriptThis(kchidScript0);\n\nENDCHUNK\n\nCHILD_SCRIPT(\"Studio1:Dispatch\", kchidScript0)\n\tIf (GLOBAL(kstEntry) == kst1);\t// Normal Entry\n\t\t// Turn help off and dispatch McZee directly to the waiting state.\n\t\tPLAYMIDI( kmidStudio );\n\t\tSETGLOBAL(fHelpOn, fFalse);\n\t\tChangeStateGob(kgobStudio1McZee, kst2 );\n\tElse;\t\t\t\t\t\t\t// Pass through to tools.\n\t\tPLAYMIDI( cnoNil );\t\t// stop any random MIDI that's going\n\t\tChangeStateGob( kgobStudio1Tools, kst2 );\t\t// launch toolbox (sproing) and proceed into tools.\n\tEnd;\nENDCHUNK\n\n\n// -----------------------------------------------------\n// Studio 2 - back view (doors to backstage)\n// -----------------------------------------------------\n\nOBJECT( \"studio view 2 \",  kgobStudio2, 0, kcrsArrow1 )\nREP_PPMBMP( CHID1( krepDefault), \"building\\pbm\\studio\\studio2.pbm\" )\nCREATE_SCRIPT( \"studio2: startup\" )\n\tSETPALETTE( kpalSocStudio );\n\tSETKEYS(kflgBuildingAll);\n\tPLAYMIDI( kmidStudio );\n\tCreateChildThis( kgobNavbarLeft, kgobNavbarLeft);\n\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\tCreateChildThis( kgobNavbarRight, kgobNavbarRight ); \n\tCreateChildThis( kgobStudio2Doors, kgobStudio2Doors );\n\tCreateChildThis( kgobStudio2Map, kgobStudio2Map );\n\tCreateChildThis( kgobStudio2ExitWord, kgobStudio2ExitWord);\n\tCreateChildThis( kgobStudio2Exit, kgobStudio2Exit);\n\n\tCreateChildThis( kgobStdo2m1, kgobStdo2m1 );\n\tCreateChildThis( kgobStdo2m2, kgobStdo2m2 );\n\tCreateChildThis( kgobStdo2m3, kgobStdo2m3 );\nENDCHUNK\n\n// -----------------------------------------------------\n// Studio 3 - (3 o'clock view)\n// -----------------------------------------------------\n\n\nOBJECT( \"studio view 3 \",  kgobStudio3, 0, kcrsArrow1 )\nREP_PPMBMP( CHID1( krepDefault), \"building\\pbm\\studio\\studio3.pbm\" )\nCREATE_SCRIPT( \"studio3 : startup\" )\n\tSETPALETTE( kpalSocStudio );\n\tSETKEYS(kflgBuildingAll);\n\tPLAYMIDI( kmidStudio );\n\tCreateChildThis( kgobNavbarLeft, kgobNavbarLeft);\n\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\tCreateChildThis( kgobNavbarRight, kgobNavbarRight ); \n\n\tCreateChildThis( kgobStdo3m1, kgobStdo3m1 );\n\tCreateChildThis( kgobStdo3m2, kgobStdo3m2 );\n\tCreateChildThis( kgobStdo3m3, kgobStdo3m3 );\nENDCHUNK\n\n// -----------------------------------------------------\n// Studio 4 - (9 o'clock view)\n// -----------------------------------------------------\n\nOBJECT( \"studio view 4\",  kgobStudio4, 0, kcrsArrow1 )\nREP_PPMBMP( CHID1( krepDefault), \"building\\pbm\\studio\\studio4.pbm\" )\nCREATE_SCRIPT( \"studio4: startup\" )\n\tSETPALETTE( kpalSocStudio );\n\tSETKEYS(kflgBuildingAll);\n\tPLAYMIDI( kmidStudio );\n\t\n\tCreateChildThis( kgobNavbarLeft, kgobNavbarLeft);\n\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\tCreateChildThis( kgobNavbarRight, kgobNavbarRight ); \n\n\tCreateChildThis( kgobStdo4m1, kgobStdo4m1 );\n\tCreateChildThis( kgobStdo4m2, kgobStdo4m2 );\n\tCreateChildThis( kgobStdo4m3, kgobStdo4m3 );\n\tCreateChildThis( kgobStdo4m4, kgobStdo4m4 );\nENDCHUNK\n\n\n\n// Projects room\n\nOBJECT( \"projects view 1\", kgobProjects1, 0, kcrsArrow1 )\nREP_PPMBMP( CHID1( krepDefault ),  \"building\\pbm\\projects\\project1.pbm\" )\nCREATE_SCRIPT( \"projects1: startup\" )\n\t\n\t// Projects1 states:\tkst1 == Entry from another room;\n\t//\t\t\t\t\t\tkst2 == Entry from elsewhere in Projects room.\n\t//\t\t\t\t\t\tkst3 == talking\n\t//\t\t\t\t\t\tkst4 == launching logo (TV)\n\t//\t\t\t\t\t\tkst5 == launching movie tips\n\n\tASSERT(GLOBAL(kstEntry) == kst1 || GLOBAL(kstEntry) == kst2 || \n\t\tGLOBAL(kstEntry) == kst4 || GLOBAL(kstEntry) == kst5  );\n\n\tSETPALETTE( kpalSocProjects );\n\tSETKEYS(kflgBuildingAll);\n\tPLAYMIDI( kmidProject );\n\tCreateChildThis( kgobNavbarLeft, kgobNavbarLeft);\n\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\tCreateChildThis( kgobNavbarRight, kgobNavbarRight );\n\n\t// Create objects in the view. (monitors + anims)\n\tCreateChildThis(kgobProj1Mon1, kgobProj1Mon1);\n\tCreateChildThis(kgobProj1Mon2, kgobProj1Mon2);\n\tCreateChildThis(kgobTvViewL, kgobTvViewL );\n\tCreateChildThis(kgobTvViewR, kgobTvViewR );\n\tCreateChildThis( kgobPrjt1m1, kgobPrjt1m1 );\t// bio page 37 hs.\n\n\t// Create Melanie, and start her up in the correct state.\n\t// Her states are 1 == hidden; 2 == wait state; 3 == intro.\n\tCreateChildThis(kgobProj1Melanie, kgobProj1Melanie);\n\n\t// If we've come to this room without navigating through\n\t// the back stage area, then don't play the long back stage \n\t// introduction when we do go there.  This is to maintain\n\t// continuity with reguard to where characters are in the building\n\t// at the time of the backstage long introduction. \n\tSETGLOBAL( fBackstagePS, fFalse );\n\n\t// Run the dispatch script.\n\tRunScriptThis(kchidScript0);\n\nENDCHUNK\n\nCHILD_SCRIPT(\"Projects1:Dispatch\", kchidScript0)\n\n\tenter = GLOBAL( kstEntry );\n\tIf( enter == kst4 );\n\t\t// fake user click on the logo wizard monitor\n\t\tEnqueueCid( cidClicked, kgobProj1Mon1, 0,0,0,0 );\t\n\tElif( enter == kst5 );\n\t\t// fake user click on the movie techniques monitor\n\t\tEnqueueCid( cidClicked, kgobProj1Mon2, 0,0,0,0 );\n\tEnd;\n\n\t// Until clicked on, Melanie always starts in her wait state.  If we're\n\t// coming from elsewhere in the Projects room (kst2), leave the help in\n\t// its current state; otherwise make sure it's off at this point.\n\n\tIf ( enter != kst1 );\n\t\tSETGLOBAL(fHelpOn, fFalse);\n\tEnd;\n\tChangeStateGob(kgobProj1Melanie, kst2);\n\nENDCHUNK\n\n\n// -----------------------------------------------------\n// Projects 2 - back view, and objects\n// Called Projects Backwall on the flowchart.\n// -----------------------------------------------------\n\nOBJECT( \"projects view 2 \", kgobProjects2, 0, kcrsArrow1 )\nREP_PPMBMP( CHID1( krepDefault ),  \"building\\pbm\\projects\\project2.pbm\" )\nCREATE_SCRIPT( \"projects2: startup\" )\n\tSETPALETTE( kpalSocProjects );\n\tSETKEYS(kflgBuildingAll);\n\tPLAYMIDI( kmidProject );\n\tCreateChildThis( kgobNavbarLeft, kgobNavbarLeft);\n\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\tCreateChildThis( kgobNavbarRight, kgobNavbarRight ); \n\tCreateChildThis( kgobProj2Doors, kgobProj2Doors );\n\tCreateChildThis( kgobProj2Exit, kgobProj2Exit );\n\tCreateChildThis( kgobProj2Map, kgobProj2Map );\n\n\tCreateChildThis( kgobPrjt2m1, kgobPrjt2m1 );\n\tCreateChildThis( kgobPrjt2m2, kgobPrjt2m2 );\n\tCreateChildThis( kgobPrjt2m3, kgobPrjt2m3 );\n\tCreateChildThis( kgobPrjt2m4, kgobPrjt2m4 );\nENDCHUNK\n\n// -----------------------------------------------------\n// Projects 3 - right (3o'clock) view, and objects\n// Called Projects Right on the flowchart.\n// -----------------------------------------------------\nOBJECT( \"projects view 3\",  kgobProjects3, 0, kcrsArrow1 )\nREP_PPMBMP( CHID1( krepDefault ),  \"building\\pbm\\projects\\project3.pbm\" )\nCREATE_SCRIPT( \"projects3: startup\" )\n\tSETPALETTE( kpalSocProjects );\n\tSETKEYS(kflgBuildingAll);\n\tPLAYMIDI( kmidProject );\n\tCreateChildThis( kgobNavbarLeft, kgobNavbarLeft);\n\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\tCreateChildThis( kgobNavbarRight, kgobNavbarRight ); \nENDCHUNK\n\n// -----------------------------------------------------\n// Projects 4 - left (9 o'clock) view, and objects\n// Called Projects Left on the flowchart.\n// -----------------------------------------------------\nOBJECT( \"projects view 4\",  kgobProjects4, 0, kcrsArrow1 )\nREP_PPMBMP( CHID1( krepDefault ),  \"building\\pbm\\projects\\project4.pbm\" )\nCREATE_SCRIPT( \"projects4: startup\" )\n\tSETPALETTE( kpalSocProjects );\n\tSETKEYS(kflgBuildingAll);\n\tPLAYMIDI( kmidProject );\n\tCreateChildThis( kgobNavbarLeft, kgobNavbarLeft);\n\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\tCreateChildThis( kgobNavbarRight, kgobNavbarRight ); \n\n\tCreateChildThis( kgobPrjt4m1, kgobPrjt4m1 );\n\tCreateChildThis( kgobPrjt4m2, kgobPrjt4m2 );\n\tCreateChildThis( kgobPrjt4m3, kgobPrjt4m3 );\nENDCHUNK\n\n// put the imaginpolis backgrounds on here (for now)\nOBJECT( \"imaginopolis\",  kgobImagin, 0, kcrsArrow1 )\n\tCREATE_ANIMST( \"imagin: full sequence\", kst1 )\n\t\tSETKEYS(kflgBuildingMin);\n\t\tSETPALETTE( kpalImaginopolis );\t\t\t// palette\n\t\tPLAYMIDI( cnoNil );\t\t\t// roller coaster music\n\t\tCreateChildThis( kgobMcZeeRoller, kgobMcZeeRoller );\n\tENDCHUNK\n\tREP_PPMBMP( CHID( kst1, krepDefault ),  \"building\\pbm\\imagin\\back1.pbm\" )\n\tREP_PPMBMP( CHID( kst2, krepDefault ),  \"building\\pbm\\imagin\\back2.pbm\" )\n\tREP_PPMBMP( CHID( kst3, krepDefault ),  \"building\\pbm\\imagin\\back3.pbm\" )\n\tREP_PPMBMP( CHID( kst4, krepDefault ),  \"building\\pbm\\imagin\\back4.pbm\" )\n\tREP_PPMBMP( CHID( kst5, krepDefault ),  \"building\\pbm\\imagin\\back5.pbm\" )\n"
  },
  {
    "path": "src/building/building.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// ---------------------------------------------------------\n// main build script for Socrates\n//\n// Revisions:\n//\n// mm-dd-yy\n// 11-18-94     *****         - Created\n// 02-17-95     *****         - cleaned up\n// 02-27-95     *****         - Made to use KIDSGS.H;\n//                               removed secret passage\n// 04-26-95\t\tScottR\t\t\t- Removed path information from include files.\n// 04-28-95\t\tScottR\t\t\t- Changed _gob to kgob\n// 05-16-95\t\tScottR\t\t\t- Renamed socrates.cht to building.cht\n// 05-16-85\t\t*****\t\t\t- temp adding string initialization\n// ---------------------------------------------------------\n\n// ---------------------------------------------------------\n// Project macros and definitions\n// ---------------------------------------------------------\n\n#include \"kidgs.chh\"\n\n// ---------------------------------------------------------\n// Object definitions shared between studio and building\n// ---------------------------------------------------------\n\n#include <stdiodef.h>\n\n// ---------------------------------------------------------\n// Building object definitions\n// ---------------------------------------------------------\n\n#include <socdefn.h>\n\t\t\t\t\t\t\t\t\t\n// ---------------------------------------------------------\n// Start up stuff.\n// ---------------------------------------------------------\n\n// Init macro values\nSTARTCHUNKS( 0x00030000 )\n\n// ---------------------------------------------------------\n// main utility object\n// ---------------------------------------------------------\n\n#include \"sharutil.chh\"\n#include \"biopage.chh\"\n\n// ---------------------------------------------------------\n// Get definitions for shared stuff - eg. bio pages\n// ---------------------------------------------------------\n#include \"biopage.chh\"\n\n// ---------------------------------------------------------\n// some needed help defines -- REALLLY!\n#include \"projmain.h\"\n\n// ---------------------------------------------------------\n// all of the 'places' - each file includes all views\n// ---------------------------------------------------------\n\n#include \"ticket.cht\"\n#include \"imagin.cht\"\n#include \"lobby.cht\"\n#include \"snackbar.cht\"\n#include \"theatre.cht\"\n#include \"backstag.cht\"\n#include \"inspirat.cht\"\n#include \"studiobg.cht\"\n#include \"projects.cht\"\n\n\n"
  },
  {
    "path": "src/building/cursors.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// ------------------------------------------------------------------------\n// cursor definitions... to be included after STARTCHUNKY command\n// ------------------------------------------------------------------------\n\nCURSORCHUNK( \"building\\cursors\\crs1018.cur\", kcrsHand1 )\nCURSORCHUNK( \"building\\cursors\\crs128.cur\", kcrsArrow1 )\nCURSORCHUNK( \"building\\cursors\\crs142.cur\", kcrsWand1 )\nCURSORCHUNK( \"building\\cursors\\crs143.cur\", kcrsStar )\nCURSORCHUNK( \"building\\cursors\\left.cur\", kcrsLeft )\nCURSORCHUNK( \"building\\cursors\\right.cur\", kcrsRight )\nCURSORCHUNK( \"building\\cursors\\down.cur\", kcrsDown )\nCURSORCHUNK( \"building\\cursors\\up.cur\", kcrsUp )\nCURSORCHUNK( \"building\\cursors\\turn1.cur\", kcrsTurn1 )\n\n"
  },
  {
    "path": "src/building/entstate.txt",
    "content": "Description of entry states for building rooms.  **Indicates this state is\nused in the MAPENTRY and NAVBARENTRY macros.\n\n\nTICKET2\n=======\nkst2            Entry from Ticket1.\nkst3    **      Map entry.\n\nMcZee States:\nkst1            Dispatch state.\nkst2            Air guitar animation.\nkst3            Wait state, intro/help animation.\n\n\nLOBBY1\n======\nkst2    **      Wait state.\nkst3            Do lobby intro -- coming from ticket booth.\nkst5            Passing through the lobby.\n\nMcZee States:\nkst1            Dispatch state.\nkst2            Wait state.\nkst3            Unicycle ride.\nkst4            Lobby welcome.\nkst5            Passing through the Lobby.\nkst6            Lobby=>Theatre transition.\n\n\nTHEATRE1\n========\nkst4    **      Wait state.\nkst5            Movie loaded before coming to theatre.\nkst7            Lean onto stage ==> moves into wait state.\n\nMcZee States:\nkst1            Dispatch state.\nkst2            McZee leans onto stage animation.\nkst3            McZee leaves the stage animation.\nkst4            Wait state.\nkst5            Movie loaded? Shadow puppet animation; else dispatch.\nkst6            Help1 animation.\nkst7            Open the portfolio.\nkst8            Movie paused animation.\nkst9            Movie done animation.\nkst10           Close the portfolio.\nkst11           Let's explore animation.\nkst12           McZee Null representation.\n\nMovie Object States:\nkst1\t\t\tDispatch state.\nkst2\t\t\tEntry state -- There is a movie ready to be played.\nkst3\t\t\tEntry state -- Count down to movie playing.\nkst4\t\t\tMovie playing.\nkst5\t\t\tMovie done.\nkst6\t\t\tMovie paused.\n\n\nTHEATRE4\n========\nkst2\t**\t\tWait state.\nkst3\t\t\tPassing through on the way to Backstage with state kst3.\nkst4\t\t\tPassing through on the way to Backstage with state kst7.\n\n\nBACKSTAGE1\n==========\nkst2    **      Wait state.\nkst3            Passing through to Studio state kst2.\nkst4            Passing through to Ideas Room.\nkst5            Passing through to Projects Room.\nkst6\t\t\tShort pass through to Studio state kst2.\nkst10\t\t\tAnimate into wait state.\n\nMcZee States:\nkst1            Dispatch state.\nkst2            Wait state.\nkst3            Passing through to Studio state kst2.\nkst4            Passing through to Ideas Room.\nkst5            Passing through to Projects Room.\nkst6            Backstage=>Studio transition.\nkst8            Backstage=>Ideas Room transition.\nkst9            Backstage=>Projects Room transition.\nkst10\t\t\tMcZee animates from offstage into wait state.\n\n\nSTUDIO1\n=======\nkst1    **      Normal entry.\nkst2            Pass through to tools.  Do tools intro if necessary.\n\nMcZee States:\nkst1            NULL representation.\nkst2            Wait state.\nkst3            McZee Studio Intro.\nkst4            McZee anim to Tools, Tools Intro.\nkst5\t\t\tLoad tools.\n\n\nINSPIRATION1\n============\nkst2\t\t\tWait state.\nkst6\t**\t\tEnter via map or navbars -- leave help in current state.\n\t\t\t\tOtherwise, same as kst2.\nkst7\t\t\tStart the Splot Machine.\nkst8\t\t\tStart the Talent Book.\n\nMcZee States:\nkst1\t\t\tDispatch state.\nkst2\t\t\tWait state.\nkst3\t\t\tIdeas Room intro.\nkst5\t\t\tNULL representation.\nkst7\t\t\tIdeas Room=>Splot Machine transition.\nkst8\t\t\tIdeas Room=>Talent Book transition.\n\n\nPROJECTS1\n=========\nkst1    **      Entry from another room -- turn help off on entry.\nkst2\t\t\tEntry from elsewhere in Projects room -- leave help in\n\t\t\t\tcurrent state.\n\nMelanie States:\nkst1            NULL representation.\nkst2            Wait state.\nkst3            Projects Room intro.\n\n"
  },
  {
    "path": "src/building/iddoor.seq",
    "content": "\nREP_PPMBMP( kcell1, \"building\\pbm\\backstag\\door47.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\backstag\\door48.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\backstag\\door49.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\backstag\\door50.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\backstag\\door51.pbm\" )\nREP_PPMBMP( kcell1, \"building\\pbm\\backstag\\door52.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\backstag\\door53.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\backstag\\door54.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\backstag\\door55.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\backstag\\door56.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\backstag\\door57.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\backstag\\door58.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\backstag\\door59.pbm\" )\nREP_PPMBMP( kcell14, \"building\\pbm\\backstag\\door60.pbm\" )\nREP_PPMBMP( kcell15, \"building\\pbm\\backstag\\door61.pbm\" )\nREP_PPMBMP( kcell16, \"building\\pbm\\backstag\\door62.pbm\" )\nREP_PPMBMP( kcell17, \"building\\pbm\\backstag\\door63.pbm\" )\nREP_PPMBMP( kcell18, \"building\\pbm\\backstag\\door64.pbm\" )\n\n"
  },
  {
    "path": "src/building/imagin.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// ---------------------------------------------------------\n// Definitions for the imaginopolis sequence \n// ---------------------------------------------------------\n\n\nOBJECT( \"closet\",  kgobCloset, 0, kcrsArrow1 )\n\tCREATE_ANIMST( \"closet: full sequence\", kst1 )\n\t\tSETKEYS(kflgBuildingMin);\n\t\tSETPALETTE( kpalImaginopolis );\n\t\tPLAYMIDI( cnoNil );\t// midi is part of AVI now.\n\t\tCreateChildThis( kgobMcZeePacker, kgobMcZeePacker );\n\tENDCHUNK\n\tREP_ANIM( CHID1( krepDefault ), \"closet, default\" )\n\t\t// look to see if the McZee gob is playing AVI\n\n\t\tCell( kcell1, 0,0, 1 );\t\t// show at start\n\t\tWhile( PlayingGob( kgobMcZeePacker ));\n\t\t\tCell( kcell1, 0, 0, 10 );\t// poll at 1/6ths of a second\n\t\tEnd; \n\t\tNEXTPLACE1( kgobImagin, kst1 );\n\tENDCHUNK\n\tREP_PPMBMP( kcell1,  \"building\\pbm\\imagin\\closet2.pbm\" )\n\n// The following object is the mczee packing AVI\n// The closet watches for the AVI to finish, then continues on to\n// the next shot / avi / place\n\nOBJECTREG( \"closet: mczee!\", kgobMcZeePacker, 0, 0, 111, kcrsArrow1 )\n\tREP_VIDEO( CHID1( krepDefault ), \"logn1.avi\", fTrue )\n\n\n\nWAVE_CHUNK( \"building\\sound\\imagin\\rllrcstr.wav\", kwavRollerCoaster )\n\n\nOBJECT( \"roller mczee!\", kgobMcZeeRoller, 111, kcrsArrow1 )\n\t// Include all mczee cells as children reps of roller mczee\n\tREP_ANIM( CHID1( krepDefault ), \"imagin:mczee on roller\")\n  \t\tcnt = kcell1;\n\t\tCell( cnt++, 0,0, 1 );\t// draw the first cell\n\t\tVOICE( kwavRollerCoaster, 0 );\t\t   \n\t\tSetNoSlipThis( fTrue );\t\t// we can now drop frames!\n\t\tWhile( cnt < kcell100 );\n\t\t\t// make the background go in sync with us.\n\t\t\t\n\t\t\tIf( cnt == kcell26 );\n\t\t\t\tChangeStateGob( kgobImagin, kst2 );\n\t\t\tElif( cnt == kcell40 );\n\t\t\t\tChangeStateGob( kgobImagin, kst3 );\n\t\t\tElif( cnt == kcell56 );\n\t\t\t\tChangeStateGob( kgobImagin, kst4 );\n\t\t\tElif( cnt == kcell63 );\n\t\t\t\tChangeStateGob( kgobImagin, kst5 );\n\t\t\tEnd;\n\t\t\tCell( cnt, 0,0, 6 );\n\t\t\t++cnt;\n\t\tEnd;\n  \t\tNEXTPLACE1( kgobStreet, kst1 );\n\tENDCHUNK\t\t\t\n\t#include \"mzroller.seq\" \n"
  },
  {
    "path": "src/building/inspirat.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// -----------------------------------------------------\n//\tINSPIRAT.CHT\n//\n//\t Copyright (C) Microsoft Corporation 1995.\n//\t All Rights reserved.\n//\n// -----------------------------------------------------\n//\tModule Intent:\n//\n//\tContains the kauai script code for the Ideas Room and\n//\tthe Splot Machine.\n//\n// \tRevisions:\n// \n// \tmm-dd-yy\n// \t??-??-94    *****         - Created\n// \t05-16-95\t*****\t\t\t- remove GLOBAL( delay ) \n// -----------------------------------------------------\n\n\nWAVE_CHUNK( \"building\\sound\\inspirat\\idea1a.wav\", kwavIdea1a\t)\nWAVE_CHUNK( \"building\\sound\\inspirat\\idea1b.wav\", kwavIdea1b\t)\nWAVE_CHUNK( \"building\\sound\\inspirat\\idea2.wav\", kwavIdea2\t)\nWAVE_CHUNK( \"building\\sound\\inspirat\\idea3.wav\", kwavIdea3\t)\nWAVE_CHUNK( \"building\\sound\\inspirat\\idea4.wav\", kwavIdea4\t)\n\nOBJECTREG(\"ticketbooth - dance\", kgobIdeaMcZeeAVI1, 0, 0, 999, kcrsHand1)\n\tREP_VIDEO( CHID1( krepDefault ), \"idea2.avi\", fTrue )\t// the into animation\n\tCREATE_SCRIPT( \"created\" )\n\t\tFilterCmdsThis( cidMouseDown, kidNil, kchidScript1);\n\tENDCHUNK\n\tCHILD_SCRIPT( \"mouse down\", kchidScript1  )\n\t\t// stop playing... the polling will catch and remove us.\n\t\tStopThis();\t\n\tENDCHUNK\t\t\n\tCLICK_SCRIPT( \"clicked ideas room intro\" )\n\t\t// stop playing... the polling will catch and remove us\n\t\tStopThis();\t\n\tENDCHUNK\n\n// the \"let's make a movie!\" avi\nOBJECTREG(\"ticketbooth - dance\", kgobIdeaMcZeeAVI2, 0, 0, 999, kcrsHand1)\n\tREP_VIDEO( CHID1( krepDefault ), \"idea3.avi\", fTrue )\t// the into animation\n\n\n// the \"check out actors in the talent book\" avi\nOBJECTREG(\"ticketbooth - dance\", kgobIdeaMcZeeAVI3, 0, 0, 999, kcrsHand1)\n\tREP_VIDEO( CHID1( krepDefault ), \"idea4.avi\", fTrue )\t// the into animation\n\n\nOBJECT( \"inspir1: mczee\",  kgobInsp1McZee, 100, kcrsHand1 )\n\t#include \"mzinsp.seq\" \n\tREP_RECT( kcell90, \"No representation.\", 0, 0, 1, 1 )\n\tREP_ANIM( CHID( kst1, krepDefault ), \"inspir1: mczee talking animation\" )\n\t\tASSERT(GLOBAL(kstEntry) == kst2 || GLOBAL(kstEntry) == kst6 || GLOBAL( kstEntry) == kst7 || GLOBAL( kstEntry) == kst8 );\n\n\t\tIf (GLOBAL(kstEntry) == kst6);\t// If entering via kst6 leave the\n\t\t\tSETGLOBAL(kstEntry, kst2);\t// GLOBAL help in whatever state it\n\t\t\t\t\t\t\t\t\t\t// was in. This state is used to allow\n\t    \t\t\t\t\t\t\t\t// the help balloon to come back up\n\t\t\t\t\t\t\t\t\t\t// when navigating around the Ideas\n\t\t\t\t\t\t\t\t\t\t// room.\n\t\tElse;\n\t\t\tSETGLOBAL( fHelpOn, fFalse );\t// Help does not come on automatically\n\t\t\t\t  \t\t\t\t\t\t\t// in this room (If comming from another room).\t \n\t\tEnd;\t\t     \t\t\t\t\t// If the flag is set turn it off.\n\n\t\t.fEnableAccel = fFalse;\n\n\t\tChangeStateThis(GLOBAL(kstEntry));\n\tENDCHUNK\n\n   \tREP_ANIM( CHID( kst2, krepDefault ), \"Ideas room: Wait state\" )\n\t\tcnt=kcell41;\n\t\tCell( cnt, 0,0, 0 );\n\n\t\tWAIT_FOR_TRANSITION();\t\t// can trans here from the map\n\n\t\tIf( GLOBAL(fHelpOn) );\t  // If help flag is on, put up the help balloon.\n\t\t\tCreateHelpGob( kgobInspiration1, ktpcIdeas );\n\t\tEnd;\n\n\t\tWhile (fTrue);\n\t\t\tWhile( cnt <= kcell47 );\t// Loop back and forth through\n\t\t\t\tCell( cnt++, 0, 0, 9);  \t// these 6 cells to get smooth\n\t\t\tEnd;\t   \t\t\t\t  \t// waiting animation.\n\t\t\t\t\t\t\t\t\t  \t// Trying 9/60 sec between cells for\n\t\t\tcnt = kcell46;\t\t\t  \t// this particular animation.\n\t\t\tWhile( cnt >= kcell42 );\n\t\t\t\tCell( cnt--, 0, 0, 9);\n\t\t\tEnd;\n\n\t\t\tSetNoSlipThis( fTrue );\t\t// we can now drop frames!\n\t\t\trnd = Rnd( 100 );\n\t\t\tIf( rnd < 20 );\t\n\t\t\t\tIf( rnd < 14 );\n\t\t\t \t\tVOICE( kwavIdea1a, ktpcIdea1 );\n\t\t\t\t\tcnt=kcell1;\n\t\t\t\t\tWhile( cnt < kcell15 );\n\t\t\t\t\t\tCell( cnt++, 0, 0, 6 );\n\t\t\t\t\tEnd;\n\t\t\t\t\tENDVOICE();\n\t\t\t\tEnd;\n\t\t\t\tIf( rnd > 5 );\n\t\t\t\t\tcnt=kcell15;\n\t\t\t\t\tWhile( cnt <= kcell41 );\n\t\t\t\t\t\tIf( cnt == kcell19 );\n\t\t\t \t\t\t\tVOICE( kwavIdea1b, ktpcIdea1b );\n\t\t\t\t\t\tEnd;\n\t\t\t\t\t\tCell( cnt++, 0, 0, 6 );\n\t\t\t\t\tEnd;\n\t\t\t\t\tENDVOICE();\n\t\t\t\tEnd;\n\t\t\tEnd;\n\t\t\tSetNoSlipThis( fFalse );\t\t// don't drop frames now\n\t\tEnd;\n\n\tENDCHUNK\n\n \tREP_ANIM(CHID(kst3, krepDefault), \"Ideas room intro.\")\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tCell( kcell101, 0,0, 1 );\n\t\tWAIT_FOR_TRANSITION();\t// If a transition is occuring wait \n\t\tCreateChildGob( GidParThis(), kgobIdeaMcZeeAVI1, kgobIdeaMcZeeAVI1 );\n\t\tCell( kcell101,0,0, 100 );\t// wait for init\n\t\t\n\t\t// watch it and proceed appropriately\n\t\tWhile( PlayingGob( kgobIdeaMcZeeAVI1 ));\n\t\t\tCell( kcell101, 0, 0, 10 );\t// poll at 1/6ths of a second\n\t\tEnd; \n\t\tDestroyGob( kgobIdeaMcZeeAVI1 );\n\t\tENABLEHOTSPOTS(kflgBuildingAll);\n\t\tChangeStateThis( kst2 );\t\t// go to idle\n\tENDCHUNK\n\n   \tREP_ANIM( CHID( kst5, krepDefault ), \"Ideas room Null representation.\" )\n\n\t\t// COMMENT: Wait for the splot machine or talent book to disappear\n\t\t// COMMENT: Polling!  Yuck!\n\t\t// This is done for the sake of the biopages. Since they're used in\n\t\t// other places as well (including the studio), we can't have it\n\t\t// reset the ideas room to a reasonable state on exit. So we do it\n\t\t// here.  The splot machine just uses this method because it's here\n\t\t// anyway.\n\n\t\tCell( kcell41,0,0, 1 );\n\n\t\t// Don't start looking until gobs exist!\n\t\tWhile ( !FGobExists(kgobBioPage) && !FGobExists(kgobSplotMachineObj) );\n\t\t\tCell( 0,0,0, 50 );\n\t\tEnd;\n\n\t\tWhile( FGobExists(kgobBioPage) || FGobExists(kgobSplotMachineObj) );\n\t\t\t// blank cell\n\t\t\tCell( 0,0,0, 50 );\n\t\tEnd;\n\n\t\t// Reenable accelerator keys\n\t\tIf (.fEnableAccel);\n\t\t\tENABLEACCEL(fFalse);\n\t\t\t.fEnableAccel = fFalse;\n\t\tEnd;\n\n\t\t// Reenable hotspots/keys and go back to idle animation\n\t\tENABLEHOTSPOTS(kflgBuildingAll);\n\t\tChangeStateThis( kst2 );\n\tENDCHUNK;\n\n//  REP_ANIM( CHID( kst6, krepDefault ), \"Map and navbar entry\" )\n\t\t// There is no need for an actual state 6, the Flag kstEntry being\n\t\t// set to kst6 is used to direct entry to kst2 with the global help\n\t\t// flag unmodified. This is needed because entry into the Ideas room\n\t\t// from another room sets the global help off if it is on.\n\n   \tREP_ANIM( CHID( kst7, krepDefault ), \"Start the splot machine\" )\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tCell( kcell351, 0,0, 1 );\n\t\tWAIT_FOR_TRANSITION();\t// If a transition is occuring wait \n\t\tCreateChildGob( GidParThis(), kgobIdeaMcZeeAVI2, kgobIdeaMcZeeAVI2 );\n\t\tCell( kcell351,0,0, 100 );\t// wait for init\n\t\t\n\t\t// watch it and proceed appropriately\n\t\tWhile( PlayingGob( kgobIdeaMcZeeAVI2 ));\n\t\t\tCell( kcell351, 0, 0, 10 );\t// poll at 1/6ths of a second\n\t\tEnd; \n\t\tDestroyGob( kgobIdeaMcZeeAVI2 );\n\t\tENABLEHOTSPOTS(kflgBuildingAll);\n\n\t\tDISABLEACCEL(fFalse);\n\t\t.fEnableAccel = fTrue;\n\t\t// SETPALETTE( cnoNil );\t// assert that we no long don't have the inspiration room palette\n\t\tEnqueueCid(cidInvokeSplot, khidApp, kgobInspiration1, kgobSplotMachineObj, 0, 0);\n\t\tChangeStateThis( kst5 );\n\tENDCHUNK;\n\n   \tREP_ANIM( CHID( kst8, krepDefault ), \"Start the talent book\" )\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tCell( kcell401, 0,0, 1 );\n\t\tWAIT_FOR_TRANSITION();\t// If a transition is occuring wait \n\t\tCreateChildGob( GidParThis(), kgobIdeaMcZeeAVI3, kgobIdeaMcZeeAVI3 );\n\t\tCell( kcell401,0,0, 100 );\t// wait for init\n\t\t\n\t\t// watch it and proceed appropriately\n\t\tWhile( PlayingGob( kgobIdeaMcZeeAVI3 ));\n\t\t\tCell( kcell401, 0, 0, 10 );\t// poll at 1/6ths of a second\n\t\tEnd; \n\t\tDestroyGob( kgobIdeaMcZeeAVI3 );\n\t\tENABLEHOTSPOTS(kflgBuildingAll);\n\t\t// Okay... Set the transition to dissolve and create the book!\n\t\tTransition(kgftDissolve, 0, 60, Transparent, cnoNil );\n\t\t\n\t\t// Create  the BIO book, page 0 (TOC), with controls (fTrue)\n\t\tBIO_CREATEBOOK( 0, fTrue, kgobInspiration1 );\n\t\tChangeStateThis( kst5 );\n\tENDCHUNK;\n\n\n\tCLICK_SCRIPT(\"Clicked Mz, toggle help\")\n\t\tSetNoSlipThis( fFalse );\t\t// don't drop frames now\n\t\tIf( GLOBAL( fHelpOn ) == fFalse );\n\t\t\tSETGLOBAL( fHelpOn, fTrue );\n\t\t\tSETGLOBAL( fIdeasPS, fFalse );\n\t\t\tChangeStateGob( kgobInsp1McZee, kst3 );\n\t\tElif( GLOBAL( fHelpOn ) == fTrue && StateThis() == kst2); // McZee is in the wait state with help on.\n\t\t\tSETGLOBAL( fHelpOn, fFalse );\t\t\t\t\t\t  // Take down the help balloon.\n\t\t\tDestroyGob( kgobBalloon1e );\n\t\tElif( GLOBAL( fHelpOn ) == fTrue );\t// McZee is animating help information and is clicked.\n\t\t\tENDVOICE();\t\t\t\t\t\t// Go to the wait state with the help balloon up.\n\t\t\tChangeStateThis( kst2 );\n\t\tEnd;\n\tENDCHUNK\n\nHELP_SCRIPT( ktpcIdeas )\n \tIf( _parm[0] == 0 );\n\t\t// Do nothing\n\tElif( _parm[0] == 1 );\t\t// Start the Splot Machine.\n\t\tDestroyGob( kgobBalloon1e );\n\t\tChangeStateGob( kgobInsp1McZee, kst7 );\n\n\tElif( _parm[0] == 2 );\t\t// Look at the Talent book..\n\t\tDestroyGob( kgobBalloon1e );\n\t\tChangeStateGob( kgobInsp1McZee, kst8 );\n\tEnd;\nENDCHUNK\n\nOBJECT( \"Splot machine hot spot\",  kgobSplotMachine, 100, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\inspirat\\SplotMsk.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"Splot machine clicked\" )\n\t\tSETGLOBAL( fHelpOn, fFalse );\n\t\tIf( FGobExists( kgobBalloon1e ) );\n\t\t\tDestroyGob( kgobBalloon1e );\n\t\tEnd;\n\t\tENDVOICE();\n\t\tChangeStateGob( kgobInsp1McZee, kst7 );\n\tENDCHUNK\n\nOBJECT( \"Talent book hot spot\",  kgobTalentBook, 100, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\inspirat\\TalntMsk.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"Talent book clicked\" )\n\t\tSETGLOBAL( fHelpOn, fFalse );\n\t\tIf( FGobExists( kgobBalloon1e ) );\n\t\t\tDestroyGob( kgobBalloon1e );\n\t\tEnd;\n\t\tENDVOICE();\n\t\tChangeStateGob( kgobInsp1McZee, kst8 );\n\tENDCHUNK\n\n\nOBJECT( \"doors out\",  kgobInsp2Doors, 33, kcrsHand1 )\n\tREP_MASK( CHID1(krepDefault), \"building\\bitmaps\\inspirat\\ins2door.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"doors out clicked\" )\n\t\tNEXTPLACE1( kgobBackstage1, kst2 );\n\tENDCHUNK\n\nOBJECT( \"inspirat2 map\", kgobInsp2Map, 44, kcrsHand1 )\n\tREP_MASK( CHID1(krepDefault), \"building\\bitmaps\\inspirat\\ins2map.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"inspirat 2 map clicked\" ) \n\t\tCreateChildGob( GET_CURRENTPLACE(), kgobMapMain, kgobMapMain );\n\tENDCHUNK\n\nOBJECT( \"inspirat2 exit\",  kgobInsp2Exit, 44, kcrsHand1 )\n\tREP_MASK( CHID1(krepDefault), \"building\\bitmaps\\inspirat\\ins2quit.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"inspirat 2 exit clicked\" ) \n\t\tQUITAPP();\n\tENDCHUNK\n\n// -----------------------------------------------------\n// The splot machine\n// -----------------------------------------------------\nOBJECT( \"Splot machine object\", kgobSplotMachineObj, 1000, kcrsArrow1 )\n\tREP_PPMBMP( CHID1(krepDefault), \"building\\pbm\\inspirat\\splot0.pbm\" )\n\tCREATE_SCRIPT( \"startup\" )\n\t\tPLAYMIDI( cnoNil );\n\t\tCreateChildThis( kgobBSplot1, kgobBSplot1 );\n\t\tCreateChildThis( kgobBSplot2, kgobBSplot2 );\n\t\tCreateChildThis( kgobBSplot3, kgobBSplot3 ); \n\t\tCreateChildThis( kgobBSplot4, kgobBSplot4 );\n\t\tCreateChildThis( kgobBSplot5, kgobBSplot5 );\n\t\tCreateChildThis( kgobBSplot6, kgobBSplot6 );\n\t\tCreateChildThis( kgobBSplot7, kgobBSplot7 );\n\t\tCreateChildThis( kgobSplotView, kgobSplotView );\n\t\tCreateHelpThis(\tktpcSplotIdea );\n\t\tEnqueueCid(cidSplotInit, kgobSplotMachineObj, kgobSplotView, 0, 0, 0);\n\t\tCreateChildThis( kgobSplotGlass, kgobSplotGlass );\n\tENDCHUNK\n\n\nOBJECTREG( \"Splot Mach. Glass\", kgobSplotGlass, 0, 0, 100, kcrsArrow1 )\n\tREP_RECT( CHID1( krepDefault), \"rectangle\", 48, 95, 591, 401 )\n\n// -----------------------------------------------------\n// The splot movie view\n// -----------------------------------------------------\nGOBCHUNK( \"Splot movie view\", kgobSplotView, kgokkRectHit)\n\tDEFAULT_POSITION( 0, 0, 0 )\n\tACTION(fcustNil, fcustNil, fgrfstNone, kcrsArrow1, chidNil, cidNil, cnoNil)\nENDCHUNK\n\tREP_RECT(CHID1(krepDefault), \"Splot View\", 48, 95, 591, 401 )\n\n\n// -----------------------------------------------------\n// Button BSplot1 \"Generate a movie Idea\" \n// -----------------------------------------------------\nGOBCHUNK(\"BSplot1 button\", kgobBSplot1, kgokkRectHit )\n\tDEFAULT_POSITION( 600, 194, 0 )\n\tACTION(fcustNil, fcustNil, fgrfst1, kcrsHand1, CHID(kst1, kchidClick), cidNil, cnoNil)\nENDCHUNK\n\n\tREP_PPMBMP( kcell2, \"building\\pbm\\inspirat\\bigarm2.pbm\" )\n\tREP_PPMBMP( kcell3, \"building\\pbm\\inspirat\\bigarm3.pbm\" )\n\tREP_PPMBMP( kcell4, \"building\\pbm\\inspirat\\bigarm4.pbm\" )\n\n\tREP_PPMBMP( CHID(kst1, krepDefault), \"building\\pbm\\inspirat\\bigarm1.pbm\")\t // Disabled button\n\n\tREP_PPMBMP( CHID(kst1, kchidDownOn), \"building\\pbm\\inspirat\\bigarm5.pbm\")\t// Clicked button\n\n\tREP_ANIM( CHID(kst1, kchidUpDownOn), \"On button, mouse Up to Down transition\")\n\t\tCell( kcell2, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell4, 0, 0, 9 );\n\tENDCHUNK\t\n\t\n\tREP_ANIM( CHID(kst1, kchidDownOffOn), \"Mouse down, Off to On button transition\")\n\t\tCell( kcell2, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell4, 0, 0, 9 );\n\tENDCHUNK\t\n\n\tREP_ANIM( CHID(kst1, kchidDownUpOn), \"On button, mouse Down to Up transition\")\n\t\tCell( kcell4, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell2, 0, 0, 9 );\n\t\tCell( CHID(kst1, krepDefault), 0, 0, 9 ); \n\tENDCHUNK\t\n\t\n\tREP_ANIM( CHID(kst1, kchidDownOnOff), \"Mouse down, On to Off button transition\")\n\t\tCell( kcell4, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell2, 0, 0, 9 );\n\t\tCell( CHID(kst1, krepDefault), 0, 0, 9 ); \n\tENDCHUNK\t\n\tREP_WAVE( CHID( kst1, krepClicked ), \"building\\sound\\inspirat\\splthndl.wav\" );\n\t\n\tCHILD_SCRIPT(\"BSplot1 script\", CHID(kst1, kchidClick))\n\t\tChangeStateGob( kgobBSplot2, kst2 );\t\t\t   // These activate the\n\t\tChangeStateGob( kgobBSplot3, kst2 );\t\t\t   // the fine tuning buttons.\n\t\tChangeStateGob( kgobBSplot4, kst2 );\n\t\tChangeStateGob( kgobBSplot5, kst2 );\n\t\t\n\t\tChangeStateGob( kgobBSplot6, kst2 );\t\t\t// enable the tools button\n\t\tEnqueueCid(cidSplotDo, kgobSplotMachineObj, 1, 1, 1, 1);\n\t\tEnqueueCid(cidSplotUpdate, kgobSplotMachineObj, 0, 0, 0, 0);\n\t\tIf( FGobExists( kgobCalloutBalloon4 ) );\n\t\t\tDestroyGob(\tkgobCalloutBalloon4 );\t \t\t\t// Destroy the help balloon and\n\t\t\tCreateHelpGob(\tGidParThis(), ktpcSplotIdea2 );\t// next balloon\n\t\tEnd;\t\t\t\t\t\t\t\t\t // it's contents.\n\tENDCHUNK\n\t\n\n// -----------------------------------------------------\n// Button BSplot2 \"Generate new Actors/Props\"\n// -----------------------------------------------------\nGOBCHUNK(\"BSplot2 button\", kgobBSplot2, kgokkRectHit)\n\tDEFAULT_POSITION( 427, 2, 0 )\n\tACTION(fcustNil, fcustNil, fgrfst1, kcrsArrow1, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfst2, kcrsHand1, CHID(kst2, kchidClick), cidNil, cnoNil)\nENDCHUNK\n\tREP_PPMBMP( kcell2, \"building\\pbm\\inspirat\\actarm2.pbm\" );\n\tREP_PPMBMP( kcell3, \"building\\pbm\\inspirat\\actarm3.pbm\" );\n\tREP_PPMBMP( kcell4, \"building\\pbm\\inspirat\\actarm4.pbm\" );\n\n\tREP_PPMBMP( CHID(kst1, krepDefault), \"building\\pbm\\inspirat\\actarm1.pbm\")\t \t// Disabled button\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\n\tREP_PPMBMP( CHID(kst2, kchidDownOn), \"building\\pbm\\inspirat\\actarm5.pbm\")\t// Clicked button\n\n\tREP_ANIM( CHID(kst2, kchidUpDownOn), \"On button, mouse Up to Down transition\")\n\t\tCell( kcell2, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell4, 0, 0, 9 );\n\tENDCHUNK\t\n\t\n\tREP_ANIM( CHID(kst2, kchidDownOffOn), \"Mouse down, Off to On button transition\")\n\t\tCell( kcell2, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell4, 0, 0, 9 );\n\tENDCHUNK\t\n\n\tREP_ANIM( CHID(kst2, kchidDownUpOn), \"On button, mouse Down to Up transition\")\n\t\tCell( kcell4, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell2, 0, 0, 9 );\n\t\tCell( CHID(kst2, krepDefault), 0, 0, 9 ); \n\tENDCHUNK\t\n\t\n\tREP_ANIM( CHID(kst2, kchidDownOnOff), \"Mouse down, On to Off button transition\")\n\t\tCell( kcell4, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell2, 0, 0, 9 );\n\t\tCell( CHID(kst2, krepDefault), 0, 0, 9 ); \n\tENDCHUNK\t\n\tREP_WAVE( CHID( kst2, krepClicked ), \"building\\sound\\inspirat\\splthndl.wav\" );\n\t\t\n\tCHILD_SCRIPT(\"BSplot2 script\", CHID(kst2, kchidClick))\n\t\tIf( FGobExists( kgobCalloutBalloon4 ) );\t\t// takedown callouts\n\t\t\tDestroyGob(\tkgobCalloutBalloon4 );\t\n\t\tEnd;\t\n\t\tEnqueueCid(cidSplotDo, kgobSplotMachineObj, 0, 0, 1, 0);\n\t\tEnqueueCid(cidSplotUpdate, kgobSplotMachineObj, 0, 0, 0, 0);\n\tENDCHUNK\n\t\n\n// -----------------------------------------------------\n// Button BSplot3 \"Generate a new camera angle\"\n// -----------------------------------------------------\nGOBCHUNK(\"BSplot3 button\", kgobBSplot3, kgokkRectHit)\n\tDEFAULT_POSITION( 289, 2, 0 )\n\tACTION(fcustNil, fcustNil, fgrfst1, kcrsArrow1, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfst2, kcrsHand1, CHID(kst2, kchidClick), cidNil, cnoNil)\nENDCHUNK\n\tREP_WAVE( CHID( kst2, krepClicked ), \"building\\sound\\inspirat\\splthndl.wav\" );\n\tREP_PPMBMP( kcell2, \"building\\pbm\\inspirat\\cmrarm2.pbm\" );\n\tREP_PPMBMP( kcell3, \"building\\pbm\\inspirat\\cmrarm3.pbm\" );\n\tREP_PPMBMP( kcell4, \"building\\pbm\\inspirat\\cmrarm4.pbm\" );\n\n\tREP_PPMBMP( CHID(kst1, krepDefault), \"building\\pbm\\inspirat\\cmrarm1.pbm\")\t // Disabled button\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\n\tREP_PPMBMP( CHID(kst2, kchidDownOn), \"building\\pbm\\inspirat\\cmrarm5.pbm\")\t// Clicked button\n\n\tREP_ANIM( CHID(kst2, kchidUpDownOn), \"On button, mouse Up to Down transition\")\n\t\tCell( kcell2, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell4, 0, 0, 9 );\n\tENDCHUNK\t\n\t\n\tREP_ANIM( CHID(kst2, kchidDownOffOn), \"Mouse down, Off to On button transition\")\n\t\tCell( kcell2, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell4, 0, 0, 9 );\n\tENDCHUNK\t\n\n\tREP_ANIM( CHID(kst2, kchidDownUpOn), \"On button, mouse Down to Up transition\")\n\t\tCell( kcell4, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell2, 0, 0, 9 );\n\t\tCell( CHID(kst2, krepDefault), 0, 0, 9 ); \n\tENDCHUNK\t\n\t\n\tREP_ANIM( CHID(kst2, kchidDownOnOff), \"Mouse down, On to Off button transition\")\n\t\tCell( kcell4, 0, 0, 9 );\t\n\t\tCell( kcell2, 0, 0, 9 );\n\t\tCell( CHID(kst2, krepDefault), 0, 0, 9 ); \n\tENDCHUNK\t\n\t\t\n\tCHILD_SCRIPT(\"BSplot3 script\", CHID(kst2, kchidClick))\n\t\tIf( FGobExists( kgobCalloutBalloon4 ) );\t\t// takedown callouts\n\t\t\tDestroyGob(\tkgobCalloutBalloon4 );\t\n\t\tEnd;\t\n\n\t\tEnqueueCid(cidSplotDo, kgobSplotMachineObj, 0, 1, 0, 0);\n\t\tEnqueueCid(cidSplotUpdate, kgobSplotMachineObj, 0, 0, 0, 0);\n\tENDCHUNK\n\t\n\n// -----------------------------------------------------\n// Button BSplot4 \"Generate a new sound background\"\n// -----------------------------------------------------\nGOBCHUNK(\"BSplot4 button\", kgobBSplot4, kgokkRectHit)\n\tDEFAULT_POSITION( 566, 2, 0 )\n\tACTION(fcustNil, fcustNil, fgrfst1, kcrsArrow1, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfst2, kcrsHand1, CHID(kst2, kchidClick), cidNil, cnoNil)\nENDCHUNK\n\tREP_WAVE( CHID( kst2, krepClicked ), \"building\\sound\\inspirat\\splthndl.wav\" );\n\tREP_PPMBMP( kcell2, \"building\\pbm\\inspirat\\muscarm2.pbm\" );\n\tREP_PPMBMP( kcell3, \"building\\pbm\\inspirat\\muscarm3.pbm\" );\n\tREP_PPMBMP( kcell4, \"building\\pbm\\inspirat\\muscarm4.pbm\" );\n\n\tREP_PPMBMP( CHID(kst1, krepDefault), \"building\\pbm\\inspirat\\muscarm1.pbm\")\t \t// Disabled button\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\n\tREP_PPMBMP( CHID(kst2, kchidDownOn), \"building\\pbm\\inspirat\\muscarm5.pbm\")\t// Clicked button\n\n\tREP_ANIM( CHID(kst2, kchidUpDownOn), \"On button, mouse Up to Down transition\")\n\t\tCell( kcell2, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell4, 0, 0, 9 );\n\tENDCHUNK\t\n\t\n\tREP_ANIM( CHID(kst2, kchidDownOffOn), \"Mouse down, Off to On button transition\")\n\t\tCell( kcell2, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell4, 0, 0, 9 );\n\tENDCHUNK\t\n\n\tREP_ANIM( CHID(kst2, kchidDownUpOn), \"On button, mouse Down to Up transition\")\n\t\tCell( kcell4, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell2, 0, 0, 9 );\n\t\tCell( CHID(kst2, krepDefault), 0, 0, 9 ); \n\tENDCHUNK\t\n\t\n\tREP_ANIM( CHID(kst2, kchidDownOnOff), \"Mouse down, On to Off button transition\")\n\t\tCell( kcell4, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell2, 0, 0, 9 );\n\t\tCell( CHID(kst2, krepDefault), 0, 0, 9 ); \n\tENDCHUNK\t\n\t\t\n\tCHILD_SCRIPT(\"BSplot4 script\", CHID(kst2, kchidClick))\n\t\tIf( FGobExists( kgobCalloutBalloon4 ) );\t\t// takedown callouts\n\t\t\tDestroyGob(\tkgobCalloutBalloon4 );\t\n\t\tEnd;\t\n\n\t\tEnqueueCid(cidSplotDo, kgobSplotMachineObj, 0, 0, 0, 1);\n\t\tEnqueueCid(cidSplotUpdate, kgobSplotMachineObj, 0, 0, 0, 0);\n\tENDCHUNK \n\t\n\n// -----------------------------------------------------\n// Button BSplot5 \"Generate a new background\"\n// -----------------------------------------------------\nGOBCHUNK(\"BSplot5 button\", kgobBSplot5, kgokkRectHit)\n\tDEFAULT_POSITION( 146, 1, 0 )\n\tACTION(fcustNil, fcustNil, fgrfst1, kcrsArrow1, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfst2, kcrsHand1, CHID(kst2, kchidClick), cidNil, cnoNil)\nENDCHUNK\n\tREP_WAVE( CHID( kst2, krepClicked ), \"building\\sound\\inspirat\\splthndl.wav\" );\n\tREP_PPMBMP( kcell2, \"building\\pbm\\inspirat\\scnarm2.pbm\" );\n\tREP_PPMBMP( kcell3, \"building\\pbm\\inspirat\\scnarm3.pbm\" );\n\tREP_PPMBMP( kcell4, \"building\\pbm\\inspirat\\scnarm4.pbm\" );\n\n\tREP_PPMBMP( CHID(kst1, krepDefault), \"building\\pbm\\inspirat\\scnarm1.pbm\")\t \t// Disabled button\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\n\tREP_PPMBMP( CHID(kst2, kchidDownOn), \"building\\pbm\\inspirat\\scnarm5.pbm\")\t// Clicked button\n\n\tREP_ANIM( CHID(kst2, kchidUpDownOn), \"On button, mouse Up to Down transition\")\n\t\tCell( kcell2, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell4, 0, 0, 9 );\n\tENDCHUNK\t\n\t\n\tREP_ANIM( CHID(kst2, kchidDownOffOn), \"Mouse down, Off to On button transition\")\n\t\tCell( kcell2, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell4, 0, 0, 9 );\n\tENDCHUNK\t\n\n\tREP_ANIM( CHID(kst2, kchidDownUpOn), \"On button, mouse Down to Up transition\")\n\t\tCell( kcell4, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell2, 0, 0, 9 );\n\t\tCell( CHID(kst2, krepDefault), 0, 0, 9 ); \n\tENDCHUNK\t\n\t\n\tREP_ANIM( CHID(kst2, kchidDownOnOff), \"Mouse down, On to Off button transition\")\n\t\tCell( kcell4, 0, 0, 9 );\t\n\t\tCell( kcell3, 0, 0, 9 );\t\n\t\tCell( kcell2, 0, 0, 9 );\n\t\tCell( CHID(kst2, krepDefault), 0, 0, 9 ); \n\tENDCHUNK\t\n\t\t\n\tCHILD_SCRIPT(\"BSplot5 script\", CHID(kst2, kchidClick))\n\t\tIf( FGobExists( kgobCalloutBalloon4 ) );\t\t// takedown callouts\n\t\t\tDestroyGob(\tkgobCalloutBalloon4 );\t\n\t\tEnd;\t\n\n\t\tEnqueueCid(cidSplotDo, kgobSplotMachineObj, 1, 0, 0, 0);\n\t\tEnqueueCid(cidSplotUpdate, kgobSplotMachineObj, 0, 0, 0, 0);\n\tENDCHUNK\n\t\n\n// -----------------------------------------------------\n// Button BSplot6 \"Invoke the studio tools\"\n// -----------------------------------------------------\n\nGOBCHUNK(\"BSplot6 button\", kgobBSplot6, kgokkRectHit)\n\tDEFAULT_POSITION( 471, 426, 0 )\n\tACTION(fcustNil, fcustNil, fgrfst1, kcrsArrow1, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID(kst2, kchidClick), cidNil, cnoNil)\nENDCHUNK\n\tREP_PPMBMP( CHID(kst1, krepDefault), \"building\\pbm\\inspirat\\toolboxd.pbm\")\t \t// Enabled button up\n\tREP_PPMBMP( CHID(kst2, krepDefault), \"building\\pbm\\inspirat\\toolbox1.pbm\")\t \t// Enabled button up\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepMouseDnOff))\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepMouseUpOn))\n\n\tREP_PPMBMP( CHID(kst2, krepMouseDnOn), \"building\\pbm\\inspirat\\toolbox2.pbm\")\t// Clicked button\n\n\tCHILD_SCRIPT(\"BSplot6 script\", CHID(kst2, kchidClick))\n\t\t// set up a transition\n\t\tIf( FGobExists( kgobCalloutBalloon4 ) );\t\t// takedown callouts\n\t\t\tDestroyGob(\tkgobCalloutBalloon4 );\t\n\t\tEnd;\t\n\t\t// Transition(kgftDissolve, 0, kTransitionTime, Transparent, kpalSocInspiration  );\n\t\tEnqueueCid(cidSplotOk, kgobSplotMachineObj, 0, 0, 0, 0);\n\t\t// Reenable accelerator keys. Any other way out of the splot machine\n\t\t// is handled by the polling in McZee's null representation script.\n\t\tENABLEACCEL(fFalse);\n\t\tLOADTOOLS(kgobInspiration1, kst2, chidNil);\n\tENDCHUNK\n\n// -----------------------------------------------------\n// Button BSplot7 \"Cancel out of the splot machine\"\n// -----------------------------------------------------\nGOBCHUNK(\"BSplot7 button\", kgobBSplot7, kgokkRectHit)\n\tDEFAULT_POSITION( 521, 426, 0 )\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID(kst1, kchidClick), cidNil, cnoNil)\nENDCHUNK\n\n\tREP_PPMBMP( CHID(kst1, krepDefault), \"building\\pbm\\inspirat\\cancel1.pbm\")\t \t// Enabled button up\n\tADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseDnOff))\n\tADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseUpOn))\n\n\tREP_PPMBMP( CHID(kst1, krepMouseDnOn), \"building\\pbm\\inspirat\\cancel2.pbm\")\t// Clicked button\n\n\tCHILD_SCRIPT(\"BSplot7 script\", CHID(kst1, kchidClick))\n\t\tIf( FGobExists( kgobCalloutBalloon4 ) );\t\t// takedown callouts\n\t\t\tDestroyGob(\tkgobCalloutBalloon4 );\t\n\t\tEnd;\t\n\t\tEnqueueCid(cidSplotCancel, kgobSplotMachineObj, 0, 0, 0, 0);\n\tENDCHUNK\n\n\n\n//--------------------------------------------------------\n// Bio page hotspots\n//--------------------------------------------------------\n\nOBJECT( \"Biopage 39 mask\",  kgobIdea1m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\inspirat\\idea1m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf( fBIO_AVAIL( 39 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 39 );\n\t\t\tBIO_CREATEBOOK( 39, fFalse, kgobInspiration1 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\n\nOBJECT( \"Biopage 7 mask\",  kgobIdea4m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\inspirat\\idea4m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf( fBIO_AVAIL( 7 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 7 );\n\t\t\tBIO_CREATEBOOK( 7, fFalse, kgobInspiration4);\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 8 mask\",  kgobIdea4m2, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\inspirat\\idea4m2.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf( fBIO_AVAIL( 8 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 8 );\n\t\t\tBIO_CREATEBOOK( 8, fFalse, kgobInspiration4);\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 9 mask\",  kgobIdea4m3, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\inspirat\\idea4m3.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 9 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 9 );\n\t\t\tBIO_CREATEBOOK( 9, fFalse, kgobInspiration4);\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 10 mask\",  kgobIdea3m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\inspirat\\idea3m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 10 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 10 );\n\t\t\tBIO_CREATEBOOK( 10, fFalse, kgobInspiration3);\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 11 mask\",  kgobIdea3m2, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\inspirat\\idea3m2.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 11 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 11 );\n\t\t\tBIO_CREATEBOOK( 11, fFalse, kgobInspiration3);\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 12 mask\",  kgobIdea3m3, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\inspirat\\idea3m3.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 12 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 12 );\n\t\t\tBIO_CREATEBOOK( 12, fFalse, kgobInspiration3);\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 13 mask\",  kgobIdea2m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\inspirat\\idea2m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 13 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 13 );\n\t\t\tBIO_CREATEBOOK( 13, fFalse, kgobInspiration2 );\n\t\tEnd;\t\t\n\tENDCHUNK\n"
  },
  {
    "path": "src/building/lobby.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// -----------------------------------------------------\n//\tLOBBY.CHT\n//\n//\t Copyright (C) Microsoft Corporation 1995.\n//\t All Rights reserved.\n//\n// -----------------------------------------------------\n//\tModule Intent:\n//\n//\tContains the kauai script code for the Lobby.\n//\n//\n// \tRevisions:\n// \n// \tmm-dd-yy\n// \t??-??-94    *****         - Created\n// \t\n// -----------------------------------------------------\n\n// ------------------------------------------------------------------------\n// Stuff for View #1 of lobby\n// ------------------------------------------------------------------------\n\nWAVE_CHUNK( \"building\\sound\\lobby\\bingo.wav\", kwavBingo )\nWAVE_CHUNK( \"building\\sound\\lobby\\04_logn3.wav\", kwav04_logn3 )\nWAVE_CHUNK( \"building\\sound\\lobby\\VO57A.wav\", kwavVO57A\t)\nWAVE_CHUNK( \"building\\sound\\lobby\\VO57aa.wav\", kwavVO57AA\t)\nWAVE_CHUNK( \"building\\sound\\lobby\\VO58.wav\", kwavVO58\t)\nWAVE_CHUNK( \"building\\sound\\lobby\\VO59.wav\", kwavVO59\t)\n\n\n\nOBJECT( \"lobby1: mczee!\", kgobLobby1McZee, 111, kcrsHand1 )\n\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\t// State 1: Default creation state.  And the dispatch state.  \n\t// Use the global kstEntry to decide which state to enter next.\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\t\n\tREP_ANIM( CHID( kst1, krepEnterAnimation ), \"lobby1: McZee!\")\n\t\tASSERT(GLOBAL(kstEntry) == 2 || GLOBAL(kstEntry) == 3 ||\n\t\t\t\tGLOBAL(kstEntry) == 5);\n\n\t\tfFirstLoop = fTrue;\t\t\t// Initialistaion ( used in state 2 )\n\n\t\t// The following flag will control whether or not mczee audio accompanies \n\t\t// balloon creation. ie. in toggling help on and off McZee doesn't keep starting!\n\t\t// If set to false, it does and this is then set to TRUE.  If true, no audio\n\t\t// This is reset each time you create the lobby object.\n\t\t.f1sthelp=fTrue;\t\n\t   \t.fLipsink = fFalse;\n\n\t\tIf( GLOBAL( fLobby1PS ) && GLOBAL( kstEntry ) == kst2 );// If this is the first time coming to this room\n\t\t\tChangeStateThis( kst3 );\t\t\t\t\t\t\t// then see McZee's WILD and ZANEY entrance first.\n\t\tElse;\n\t\t\tChangeStateThis(GLOBAL(kstEntry));\n\t\tEnd;\n\tENDCHUNK\n\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\t// State 2:  The looping McZee state, where the help balloon pops.\n\t// Click McZee: turns help on and off\n\t// Exits:  If theatre door clicked : kgobLobby1->fExitLobby set if so\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\t \n\tREP_ANIM( CHID( kst2, krepDefault ), \"lobby1:Wait state. Entry 2 (from map).\")\n\t\tDEBUGCMD( PrintStr(\"Lobby Mz: State 2\") );\n\n\t\tCell( kcell184, 0,0, 6);\t // This is needed for proper placement of the help balloon.\n\n\t\tIf( GLOBAL(fHelpOn) );\n\t\t\tCreateHelpGob( kgobLobby1, ktpcLobbyTip );\n\t\tElif( GLOBAL( fLob1stHelp ) ); \n\t\t\tSETGLOBAL( fLob1stHelp, fFalse );\n \t\t\tSETGLOBAL( fHelpOn, fTrue );\n\t\t\tCreateHelpGob( kgobLobby1, ktpcLobbyTip );\n\t\tEnd;\n\t\t\n\t\tfFirstLoop = fTrue;\n\t\tWhile( !kgobLobby1->fExitLobby );\n\t\t\t\n\t\t\t// The waitng loop.\n\n\t\t\t// The idle loop cycle here makes use of animation\n\t\t\t// not specficly designed for looping.  The use of \n\t\t\t// cells for looping is as follows:\n\t\t\t// Traverse the cells kcell184 to kcell199,\tthen\n\t\t\t// kcell198 to kcell185.\n\t\t\t// The lipsink animation starts after kcell199, it is\n\t\t\t// kcell401 to kcell423,  these are the origional cells 157 to 179\n\t\t\t// with lip sinking added and the reason its those particular cells\n\t\t\t// is a somewhat long story.\n\t\t\t// At the end of the lip sinking I pick up with cell 180\n\t\t\t// to get smoothly back to cell 184 and the start of the looping\n\t\t\t// cycle.\n\n\t\t\tIf( !fFirstLoop );\n\t\t\t\tIf( .fLipsink );\n\t\t\t\t   \t.fLipsink = fFalse;\n\t\t\t\t\tcnt = kcell401;\n\t\t\t\t\tVOICE( kwavVO59, ktpcVO59 );\n\t\t\t\t\tWhile( cnt < kcell423 );\n\t\t\t\t\t\tCell( cnt++, 0, 0, 6);                                  \n\t\t\t\t\tEnd;\n\t\t\t\t\tCell( kcell180, 0, 0, 7);                                  \n\t\t\t\t\tCell( kcell181, 0, 0, 8);                                  \n\t\t\t\t\tCell( kcell182, 0, 0, 8);                                  \n\t\t\t\t\tCell( kcell183, 0, 0, 7);                                  \n\t\t\t\tElse;\n\t\t\t\t\tcnt = kcell198;\n\t\t\t\t\tWhile( cnt > kcell184 );\n\t\t\t\t\t\tCell( cnt--, 0, 0, 6);\n\t\t\t\t\tEnd;\n\t\t\t\tEnd;\n\t\t\tEnd;\n\t\t\tfFirstLoop = fFalse;\n \n\t\t\tcnt = kcell184;\n\t\t\tWhile( cnt < kcell200 );\n\t\t\t\tCell( cnt++, 0, 0, 6);                                  \n\t\t\tEnd;\n\n\n\t\t\tIf( !kgobLobby1->fExitLobby );\n\t\t\t\t// McZee randomly tosses the carpet bag in the air.\n\t\t\t\tIf( Rnd(100) < 20 );\n\t\t\t\t\tWhile( cnt < kcell218 );\n\t\t\t\t\t\tCell( cnt++, 0, 0, 6);\n\t\t\t\t\tEnd;\n\n\t\t\t\t\t// If McZee is to remain in the looping state he must catch \n\t\t\t\t\t// the carpet bag on his foot.  This one frame makes a good catch\n\t\t\t\t\t// animation.\n\n\t\t\t\t\tIf( !kgobLobby1->fExitLobby );\t// This \"If\" is here because McZee could be clicked\n\t\t\t\t\t\tCell( kcell203, 0, 0, 6);\t// in this part of the animation.\t\t\t\n\t\t\t\t\tEnd;\n\t\t\t\tEnd;\n\t\t\tElse;\n\t\t\t\tCell( kcell203, 0, 0, 6);\n\t\t\t\tCell( kcell5, 0, 0, 6);\t  // fork217 cell\n\t\t\t\tCell( kcell217, 0, 0, 6);\n\t\t\tEnd;\n\n\t\t\tENDVOICE();\n\t\tEnd;\n\n\n\t\tChangeStateThis( kst6 );\n\tENDCHUNK\n\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\t// State 3: Uniride to loop position decision point\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\tREP_ANIM( CHID( kst3, krepDefault  ), \"lobby1. UniRide to loop position, entry point.\" )\n\t\tDEBUGCMD( PrintStr(\"Lobby Mz: State 3\") );\n\t\t// fLobby1PS --- PS = Per Session.  See flowchart for gory details.\n\t\tIf( !GLOBAL( fLobby1PS ) );\t // Not the 1st time here this session.\n\t\t\tDEBUGCMD( PrintStr(\"flag fLobby1PS = fFalse\") );\n\t\t\tIf( GLOBAL( fMovie ) );\n\t\t\t\tDEBUGCMD( PrintStr(\"flag fMovie = fTrue\") );\n\t\t\t\tPLAYMIDI( kmidTheatre );\n\t\t\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\t\t\tCell( kcell178, 0,0, 6);\n\t\t\t\tWAIT_FOR_TRANSITION();\t\t\n\n\t\t\t\tcnt = kcell178;\n\t\t\t\tWhile( cnt < kcell218 );\t\t // Do a loop then go to the pass thru sequence.\n\t\t\t\t\tCell( cnt++, 0,0, 6);\n\t\t\t\tEnd;\n\n\t\t\t\tChangeStateThis( kst6 );\t\n\t\t\tElse;\n\t\t\t\tChangeStateThis( kst2 );\n\t\t\tEnd;\n\t\tElse;\t\t\t\t\t\t\t\t\t // The 1st time in this room.\n\t\t\tSETGLOBAL( fLobby1PS, fFalse );\t\t // Reset the flag and show animation.\t\t\n\t\t\tIf( GLOBAL( fMovie ) );\n\t\t\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\t\t\tPLAYMIDI( kmidTheatre );\t\t // This is by design, for a nointerruptible animation\n\t\t\tEnd;\t\t\t\t\t\t\t\t // play the MIDI of the place thats next.\n\t\t\tcnt = kcell10;\n\t\t\tCell( kcell10, 0,0, 6);\n\t\t\tWAIT_FOR_TRANSITION();\t\t\n\t\t\tWhile( cnt < kcell117 );\n\t\t\t\tIf( cnt == kcell31 );\n\t\t\t\t\tVOICE( kwavVO57A, ktpcVO57A );\n\t\t\t\tElif( cnt == kcell57 );\n\t\t\t\t\tVOICE( kwavVO57AA, ktpcVO57AA );\n\t\t\t\tEnd;\n\t\t\t\tCell( cnt++, 0,0, 6);\n\t\t\tEnd;\n\n\t\t\tENDVOICE();\n\n\t\t\tIf( GLOBAL( fMovie ) );\n\n\t\t\t\tcnt = kcell202;\n\t\t\t\tWhile( cnt < kcell218 );\t\t // Segway to the exit seqence.\n\t\t\t\t\tCell( cnt++, 0,0, 6);\n\t\t\t\tEnd;\n\n\t\t\t\tChangeStateThis( kst6 );\n\t\t\tElse;\t\t\t\n\t\t\t\tChangeStateThis( kst4 );\n\t\t\tEnd;\n\t\tEnd;\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst4, krepDefault ), \"lobby1: Lobby welcome.\")\n\t\tDEBUGCMD( PrintStr(\"Lobby Mz: State 4\") );\n\t\tcnt = kcell117;\n\t\tCell( kcell117, 0,0, 1);\n\t\tWAIT_FOR_TRANSITION();\t\t\n\n\t\tVOICE( kwavVO58, ktpcVO58 );\n\t\tWhile( cnt < kcell184 );\n\t\t\tCell( cnt++, 0,0, 6);\n\t\tEnd;\n\n\t\tENDVOICE();\n\n\t\tChangeStateThis( kst2 );\n\tENDCHUNK\n \t\n\tREP_ANIM( CHID( kst5, krepDefault ), \"lobby1: Pass thru\")\n\t\tDEBUGCMD( PrintStr(\"Lobby Mz: State 5\") );\n\t\t// ***** 9.4.95 - this is now an AVI sequence\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tPLAYMIDI( kmidTheatre );\n\t\tCell( kcell302, 0, 0, 1);\n\t\tWAIT_FOR_TRANSITION();\n\t\tCreateChildGob( kgobLobby1, kgobLobbyAVI, kgobLobbyAVI );\n\n\t\t// delay while AVI queues up then watch it and proceed appropriately\n\t\tCell( kcell302, 0,0, 100 );\n\t\tWhile( PlayingGob( kgobLobbyAVI ));\n\t\t\tCell( kcell302, 0, 0, 10 );\t// poll at 1/6ths of a second\n\t\tEnd; \n\t\tENABLEHOTSPOTS(kflgBuildingAll);\n\t\tNEXTPLACE1( kgobTheatre1, kst7 );\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst6, krepDefault ), \"lobby1: Exit state.\")\n\t\tDEBUGCMD( PrintStr(\"Lobby Mz: State 6\") );\n\t\tcnt = kcell219;\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tWhile( cnt < kcell260 );\n\t\t\tCell( cnt++, 0,0, 6);\n\t\tEnd;\n\t\tNEXTPLACE1( kgobTheatre1, kst5 );\n\tENDCHUNK\n\n\tCLICK_SCRIPT(\"Clicked Mz, toggle help\")\n\t\tDEBUGCMD( PrintStr(\"Lobby Mz: Clicked\") );\n\t\tIf( StateThis() != kst2 );\t// If not in the wait state..\n\t\t\tChangeStateThis( kst2 );// go to the wait state.\n\t\t\tSETGLOBAL( fHelpOn, fTrue );\t\t\n\t\tElif( GLOBAL( fHelpOn ) );\n\t\t\tSETGLOBAL( fHelpOn, fFalse );\n\t\t\tDestroyGob( kgobBalloon1d );   // This destroys the balloon that holds the tip\n\t\tElse;\n\t\t\tSETGLOBAL( fHelpOn, fTrue );\n\t\t\tCreateHelpGob( kgobLobby1, ktpcLobbyTip );\n\t\tEnd;\n\tENDCHUNK\n\n\tREP_PPMBMP( kcell5, \"building\\pbm\\lobby\\fork217.pbm\" )\n \t#include \"mzlobby.seq\" // include all mczee cells\n\nOBJECTREG(\"McZee 04logn3 - AVI \", kgobLobbyAVI, 0, 0, 999, kcrsArrow1)\n\tREP_VIDEO( CHID1( krepDefault ), \"04logn3.avi\", fTrue )\n\n\n\nHELP_SCRIPT( ktpcLobbyTip )\n \tIf( _parm[0] == 0 );\n\t\tIf( kgobLobby1McZee->f1sthelp );\n\t\t\tkgobLobby1McZee->fLipsink = fTrue;\n\t\t\tkgobLobby1McZee->f1sthelp = fFalse;\n\t\tEnd;\n\t\tExit();\n\tElif( _parm[0] == 1 );\t\t// clicked \"go to theatre\"\n\t\tDestroyGob( kgobBalloon1d );\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tkgobLobby1->fExitLobby=fTrue;\n\n\tElif( _parm[0] == 2 );\t\t// go to the snackbar.\n\n\t\t// Don't need to DestroyGob here because the whole\n\t\t// lobby object is being destroyed.\n\n\t\tNEXTPLACE1( kgobSnackBar, kst1 );\n\tEnd;\nENDCHUNK\n\t\nOBJECT( \"theatre door\", kgobLobby1Door, 33, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\lobby\\lob1door.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"theatre door clicked\" )\n\t\tIf(\t!kgobLobby1->fExitLobby );  \t// Prevents repeat strikes\n\t\t\tPLAYMIDI( kmidTheatre );\n\t\t\tIf( GLOBAL( fHelpOn ) );  \t\t\t// If help is up, remove for exit, but don't change the flag.\n\t\t\t\tDestroyGob( kgobBalloon1d );   \t// If it was up it should be up in the next room.\n\t\t\tEnd;\n\t\t\tIf( StateGob(kgobLobby1McZee) != kst2 );  // The user has asked to go to the theater during\n\t\t\t\tNEXTPLACE1( kgobTheatre1, kst5 );\t  // a string of animation sequences.  Stop the seqences\n\t\t\tElse;\t\t\t\t\t\t\t\t\t  // and go to the theater.\n\t\t\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\t\t\tkgobLobby1->fExitLobby=fTrue;  // This allows a smooth exit from the wait state.\n\t\t\tEnd;\t\n\t\tEnd;\n\tENDCHUNK\n\n\n// poster 3 = bio page # 35\nOBJECT( \"poster #3\",  kgobLobby1Poster3, 45, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\lobby\\poster3.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 35 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 35 );\n\t\t\tBIO_CREATEBOOK( 35, fFalse, kgobLobby1 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\n// poster 4 = bio page #36\nOBJECT( \"poster #4\",  kgobLobby1Poster4, 45, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\lobby\\poster4.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 36 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 36 );\n\t\t\tBIO_CREATEBOOK( 36, fFalse, kgobLobby1 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\n// back view\n\nOBJECT( \"lobby 2 doors\",  kgobLobby2Doors, 22, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),\"building\\bitmaps\\lobby\\lob2door.bmp\", 0, 0 ) \n\tCLICK_SCRIPT( \"lobby2 doors clicked\" )\n\t\tNEXTPLACE1( kgobTicket1, kst1 );\n\tENDCHUNK\n\nOBJECT( \"lobby2 map\",  kgobLobby2Map, 44, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\lobby\\lob2map.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"lobby 2 map clicked\" ) \n\t\tCreateChildGob( GET_CURRENTPLACE(), kgobMapMain, kgobMapMain );\n\tENDCHUNK\n\nOBJECT( \"lobby2 exit\", kgobLobby2Exit, 44, kcrsHand1 )\n\tREP_RECT( CHID1( krepDefault ), \"exit sign\", 403, 187, 429, 204 )\n\tCLICK_SCRIPT( \"lobby 2 exit clicked\" ) \n\t\tQUITAPP();\n\tENDCHUNK\n\nOBJECT( \"Biopage 30 mask\",  kgobLobby1m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\lobby\\lobby1m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 30 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 30 );\n\t\t\tBIO_CREATEBOOK( 30, fFalse, kgobLobby1 );\n\t\tEnd;\t\t\n\tENDCHUNK\n"
  },
  {
    "path": "src/building/login.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// -----------------------------------------------------\n// Script code for login place\n// -----------------------------------------------------\n\nOBJECT( \"login: main view\",  kgobLogin, 0, kcrsArrow1 )\n\tREP_PPMBMP( CHID1( krepDefault), \"building\\pbm\\login\\login.pbm\" )\n\tCREATE_ANIM( \"login : create\" )\n\t\tSETPALETTE( kpalImaginopolis );\n\t\tSETKEYS(kflgBuildingMin);\n\t\tSETGLOBAL( fTrans, fFalse );  // No palette transition.\n\t\tCreateHelpThis( ktpcLoginChoice );\n\tENDCHUNK\n\n\t//----------------------------------------------------------\n\t// This function is called when the user calls up the Portfolio via\n\t// CTRL+O and then closes it by pressing either Cancel or OK.  The\n\t// Portfolio is opened in the Keyboard handler in Script6.\n\t//\n\t//\t\t_parm[2] is fTrue if the user pressed OK; fFalse if they\n\t//\t\t\t\tpressed Cancel.\n\t//----------------------------------------------------------\n\tCHILD_SCRIPT(\"Login place: Portfolio Callback\", kchidScript2)\n\t\t// End this filter as it is no longer required.\n\t\tFilterCmdsThis(cidPortfolioClosed, cidNil, chidNil);\n\t\tIf (_parm[2]);\t// User clicked OK\n\t\t\tLOADTOOLS(kgobStudio1, kst1, chidNil);\n\t\tEnd;\n\tENDCHUNK\n\n\nHELP_SCRIPT( ktpcLoginChoice )\n\tIf( _parm[0] == 0 );\t\t// startup script invocation.  Do nothing\n\t\tExit();\t\n\t\n\tElif( _parm[0] == 1 );\t  \t// choice 1  - Create a New Movie\n\t\tNEXTPLACE1(kgobStudio1, kst2);\n\n\tElif( _parm[0] == 2 );\t// choice 2 : Work on an old Movie\n\n\t\t// Bring up the Movie Open portfolio.\n   \t\tEnqueueCid(cidPortfolioOpen, 0, kpfPortOpenMovie, 0, 0, 0);\n\t\t// tell login to watch for the cid indicating that the portfolio has been closed.\n\t\tFilterCmdsGob( kgobLogin, cidPortfolioClosed, cidNil, kchidScript2);\n\t\n\tElif( _parm[0] == 3 ); \t// choice 3 : Watch a movie\n\t\tNEXTPLACE1( kgobLobby1, kst5 );\t\n\n\tElif( _parm[0] == 4 ); \t// choice 4 : Make a movie with Melanie\n\t\tNEXTPLACE1(kgobBackstage1, kst5);\n\n\tElif( _parm[0] == 5 ); \t// choice 5 : Get an idea for a movie\n\t\tNEXTPLACE1(kgobBackstage1, kst4);\n\n\tElif( _parm[0] == 6 );\t// choice 6 : Goto Imaginopolis\n\t\tNEXTPLACE1( kgobCloset, kst1 );\n\n\tElif( _parm[0] == 7 );\t// choice 6 : QUIT!\n\t\tQUITAPP();\n\tEnd;\nENDCHUNK\n\n\n\n"
  },
  {
    "path": "src/building/makefile",
    "content": "#---building.mak\n\n!IFNDEF MAKEFILE_BUILDING\nMAKEFILE_BUILDING = 1\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.def\n\n#BUILDING SOURCE DIRECTORY\nBLDG_SRC_DIR = $(SOC_ROOT)\\src\\building\n\n#SOC OBJ DIRECTORY\nSOC_OBJ_ROOT_DIR = $(SOC_ROOT)\\obj\nSOC_OBJ_DIR = $(SOC_OBJ_ROOT_DIR)\\$(BLD_TYPE_DIR)\n\n!IF \"$(LOCAL_BUILD)\" == \"1\"\nTARGET_DIR =\n!ELSE # LOCAL_BUILD\nTARGET_DIR = $(SOC_OBJ_DIR)^\\\n!ENDIF # !LOCAL_BUILD\n\n\nSOC_HEADER_FILES = \\\n\t$(SOC_ROOT)\\inc\\kidgs.chh \\\n\t$(SOC_ROOT)\\inc\\assert.chh \\\n\t$(SOC_ROOT)\\inc\\kidgsdef.h \\\n\t$(KAUAI_ROOT)\\src\\kiddef.h \\\n\t$(KAUAI_ROOT)\\src\\framedef.h \\\n\t$(SOC_ROOT)\\inc\\stdiodef.h \\\n\t$(SOC_ROOT)\\inc\\socdef.h \\\n\t$(SOC_ROOT)\\inc\\buildgob.h \\\n\t$(SOC_ROOT)\\inc\\sharedef.h \\\n\t$(SOC_ROOT)\\inc\\sharutil.chh\n\nBLDG_CHH_FILES = $(BLDG_SRC_DIR)\\socdefn.h\n\nBLDG_CHT_FILES = \\\n    $(BLDG_SRC_DIR)\\backstag.cht\\\n    $(BLDG_SRC_DIR)\\building.cht\\\n    $(BLDG_SRC_DIR)\\imagin.cht\\\n    $(BLDG_SRC_DIR)\\inspirat.cht\\\n    $(BLDG_SRC_DIR)\\lobby.cht\\\n    $(BLDG_SRC_DIR)\\login.cht\\\n    $(BLDG_SRC_DIR)\\navbars.cht\\\n    $(BLDG_SRC_DIR)\\palette.cht\\\n    $(BLDG_SRC_DIR)\\projects.cht\\\n    $(BLDG_SRC_DIR)\\snackbar.cht\\\n    $(BLDG_SRC_DIR)\\street.cht\\\n    $(BLDG_SRC_DIR)\\studiobg.cht\\\n    $(BLDG_SRC_DIR)\\theatre.cht\\\n    $(BLDG_SRC_DIR)\\ticket.cht\\\n    $(BLDG_SRC_DIR)\\waiting.cht\n\nBLDG_CHUNK_TARGETS =\\\n    $(TARGET_DIR)building.chk\n\nBLDGHD_CHT_FILES = \\\n    $(BLDG_SRC_DIR)\\bldghd.cht\n\nBLDGHD_CHUNK_TARGETS =\\\n    $(TARGET_DIR)bldghd.chk\n\n\n#-Compile rules-------------------------------------------------------------\n\n\n#OLD .cht.chk RULES\n#{$(BLDG_SRC_DIR)}.cht{$(SOC_OBJ_DIR)}.chk:\n#    SET INCLUDE=$(BLDG_SRC_DIR)\\pbm;$(BLDG_SRC_DIR)\\bitmaps;$(BLDG_SRC_DIR)\\sound;$(INCLUDE)\n#    cl /P -I$(BLDG_SRC_DIR) $(DEFS) /Tp$<\n#    $(CHOMP) $(BLDG_SRC_DIR)\\$(@B).i $*.chk\n\n\n#{$(BLDG_SRC_DIR)}.cht{$(SOC_OBJ_DIR)}.chk:\n#    SET INCLUDE=$(BLDG_SRC_DIR)\\pbm;$(BLDG_SRC_DIR)\\bitmaps;$(BLDG_SRC_DIR)\\sound;$(INCLUDE)\n#    cl /E -I$(SOC_OBJ_DIR) $(DEFS) /Tp$< > $(SOC_OBJ_DIR)\\%|fF.i\n#    $(CHOMP) $(SOC_OBJ_DIR)\\$(@B).i $*.chk\n\nSRC_DIR = $(BLDG_SRC_DIR)\nOBJ_DIR = $(SOC_OBJ_DIR)\n!INCLUDE $(SOC_ROOT)\\makefile.rul\n\n#-Targets-------------------------------------------------------------------\n\nALL_BLDG = $(TARGET_DIR)building.chk  $(TARGET_DIR)bldghd.chk\nALL_TARGETS_ROOT = $(ALL_TARGETS_ROOT) $(ALL_BLDG)\n\nCLEAN_BLDG = CLEAN_BLDG_CHUNKS\nCLEAN_TARGETS_ROOT = $(CLEAN_TARGETS_ROOT) $(CLEAN_BLDG)\n\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\n!IF \"$(LOCAL_BUILD)\" != \"0\"\n\nbuilding.chk : ALL\n\nALL: $(SOC_OBJ_DIR) BLDG_CONTENT\nCLEAN: CLEAN_BLDG_CHUNKS ALL\n\n!ENDIF # LOCAL_BUILD != 0\n\n$(SOC_OBJ_DIR) :\n    @echo Making Directories $(SOC_OBJ_DIR)...\n    if not exist $(SOC_OBJ_ROOT_DIR)/nul mkdir $(SOC_OBJ_ROOT_DIR)\n    if not exist $(SOC_OBJ_DIR)/nul mkdir $(SOC_OBJ_DIR)\n\n!ENDIF # LOCAL_BUILD != 1\n\n\nCLEAN_BLDG_CHUNKS:\n    @echo <<delchunk.bat\n@echo off\nDEL /q dummy.nul $(BLDG_CHUNK_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    call delchunk.bat\n\n\n#\n#Create Studio Chunky Files\n#\nBLDG_CONTENT: $(SOC_OBJ_DIR)\\building.chk $(SOC_OBJ_DIR)\\bldghd.chk \n\n$(TARGET_DIR)building.chk : $(BLDG_CHT_FILES)\n\n$(TARGET_DIR)bldghd.chk : $(BLDGHD_CHT_FILES)\n\n\n!ENDIF  # !MAKEFILE_BUILDING\n"
  },
  {
    "path": "src/building/melproj1.seq",
    "content": "// Animation sequence for Melanie in the Projects room.\n// \n\n// PPMBMP = pre packed.\n\nREP_PPMBMP ( kcell1, \"building\\pbm\\projects\\mel1.pbm\")\nREP_PPMBMP ( kcell2, \"building\\pbm\\projects\\mel2.pbm\")\nREP_PPMBMP ( kcell3, \"building\\pbm\\projects\\mel3.pbm\")\nREP_PPMBMP ( kcell4, \"building\\pbm\\projects\\mel4.pbm\")\nREP_PPMBMP ( kcell5, \"building\\pbm\\projects\\mel5.pbm\")\nREP_PPMBMP ( kcell6, \"building\\pbm\\projects\\mel6.pbm\")\nREP_PPMBMP ( kcell7, \"building\\pbm\\projects\\mel7.pbm\")\nREP_PPMBMP ( kcell8, \"building\\pbm\\projects\\mel8.pbm\")\nREP_PPMBMP ( kcell9, \"building\\pbm\\projects\\mel9.pbm\")\nREP_PPMBMP ( kcell10, \"building\\pbm\\projects\\mel10.pbm\")\nREP_PPMBMP ( kcell11, \"building\\pbm\\projects\\mel11.pbm\")\nREP_PPMBMP ( kcell12, \"building\\pbm\\projects\\mel12.pbm\")\nREP_PPMBMP ( kcell13, \"building\\pbm\\projects\\mel13.pbm\")\nREP_PPMBMP ( kcell14, \"building\\pbm\\projects\\mel14.pbm\")\nREP_PPMBMP ( kcell15, \"building\\pbm\\projects\\mel15.pbm\")\nREP_PPMBMP ( kcell16, \"building\\pbm\\projects\\mel16.pbm\")\nREP_PPMBMP ( kcell17, \"building\\pbm\\projects\\mel17.pbm\")\nREP_PPMBMP ( kcell18, \"building\\pbm\\projects\\mel18.pbm\")\nREP_PPMBMP ( kcell19, \"building\\pbm\\projects\\mel19.pbm\")\nREP_PPMBMP ( kcell20, \"building\\pbm\\projects\\mel20.pbm\")\nREP_PPMBMP ( kcell21, \"building\\pbm\\projects\\mel21.pbm\")\nREP_PPMBMP ( kcell22, \"building\\pbm\\projects\\mel22.pbm\")\nREP_PPMBMP ( kcell23, \"building\\pbm\\projects\\mel23.pbm\")\nREP_PPMBMP ( kcell24, \"building\\pbm\\projects\\mel24.pbm\")\nREP_PPMBMP ( kcell25, \"building\\pbm\\projects\\mel25.pbm\")\nREP_PPMBMP ( kcell26, \"building\\pbm\\projects\\mel26.pbm\")\nREP_PPMBMP ( kcell27, \"building\\pbm\\projects\\mel27.pbm\")\nREP_PPMBMP ( kcell28, \"building\\pbm\\projects\\mel28.pbm\")\nREP_PPMBMP ( kcell29, \"building\\pbm\\projects\\mel29.pbm\")\nREP_PPMBMP ( kcell30, \"building\\pbm\\projects\\mel30.pbm\")\nREP_PPMBMP ( kcell31, \"building\\pbm\\projects\\mel31.pbm\")\nREP_PPMBMP ( kcell32, \"building\\pbm\\projects\\mel32.pbm\")\nREP_PPMBMP ( kcell33, \"building\\pbm\\projects\\mel33.pbm\")\nREP_PPMBMP ( kcell34, \"building\\pbm\\projects\\mel34.pbm\")\nREP_PPMBMP ( kcell35, \"building\\pbm\\projects\\mel35.pbm\")\nREP_PPMBMP ( kcell36, \"building\\pbm\\projects\\mel36.pbm\")\nREP_PPMBMP ( kcell37, \"building\\pbm\\projects\\mel37.pbm\")\nREP_PPMBMP ( kcell38, \"building\\pbm\\projects\\mel38.pbm\")\nREP_PPMBMP ( kcell39, \"building\\pbm\\projects\\mel39.pbm\")\nREP_PPMBMP ( kcell40, \"building\\pbm\\projects\\mel40.pbm\")\nREP_PPMBMP ( kcell41, \"building\\pbm\\projects\\mel41.pbm\")\nREP_PPMBMP ( kcell42, \"building\\pbm\\projects\\mel42.pbm\")\nREP_PPMBMP ( kcell43, \"building\\pbm\\projects\\mel43.pbm\")\nREP_PPMBMP ( kcell44, \"building\\pbm\\projects\\mel44.pbm\")\nREP_PPMBMP ( kcell45, \"building\\pbm\\projects\\mel45.pbm\")\nREP_PPMBMP ( kcell46, \"building\\pbm\\projects\\mel46.pbm\")\nREP_PPMBMP ( kcell47, \"building\\pbm\\projects\\mel47.pbm\")\nREP_PPMBMP ( kcell48, \"building\\pbm\\projects\\mel48.pbm\")\nREP_PPMBMP ( kcell49, \"building\\pbm\\projects\\mel49.pbm\")\nREP_PPMBMP ( kcell50, \"building\\pbm\\projects\\mel50.pbm\")\nREP_PPMBMP ( kcell51, \"building\\pbm\\projects\\mel51.pbm\")\nREP_PPMBMP ( kcell52, \"building\\pbm\\projects\\mel52.pbm\")\nREP_PPMBMP ( kcell53, \"building\\pbm\\projects\\mel53.pbm\")\nREP_PPMBMP ( kcell54, \"building\\pbm\\projects\\mel54.pbm\")\nREP_PPMBMP ( kcell55, \"building\\pbm\\projects\\mel55.pbm\")\nREP_PPMBMP ( kcell56, \"building\\pbm\\projects\\mel56.pbm\")\nREP_PPMBMP ( kcell57, \"building\\pbm\\projects\\mel57.pbm\")\nREP_PPMBMP ( kcell58, \"building\\pbm\\projects\\mel58.pbm\")\nREP_PPMBMP ( kcell59, \"building\\pbm\\projects\\mel59.pbm\")\nREP_PPMBMP ( kcell60, \"building\\pbm\\projects\\mel60.pbm\")\nREP_PPMBMP ( kcell61, \"building\\pbm\\projects\\mel61.pbm\")\nREP_PPMBMP ( kcell62, \"building\\pbm\\projects\\mel62.pbm\")\nREP_PPMBMP ( kcell63, \"building\\pbm\\projects\\mel63.pbm\")\nREP_PPMBMP ( kcell64, \"building\\pbm\\projects\\mel64.pbm\")\nREP_PPMBMP ( kcell65, \"building\\pbm\\projects\\mel65.pbm\")\nREP_PPMBMP ( kcell66, \"building\\pbm\\projects\\mel66.pbm\")\nREP_PPMBMP ( kcell67, \"building\\pbm\\projects\\mel67.pbm\")\nREP_PPMBMP ( kcell68, \"building\\pbm\\projects\\mel68.pbm\")\nREP_PPMBMP ( kcell69, \"building\\pbm\\projects\\mel69.pbm\")\nREP_PPMBMP ( kcell70, \"building\\pbm\\projects\\mel70.pbm\")\nREP_PPMBMP ( kcell71, \"building\\pbm\\projects\\mel71.pbm\")\nREP_PPMBMP ( kcell72, \"building\\pbm\\projects\\mel72.pbm\")\nREP_PPMBMP ( kcell73, \"building\\pbm\\projects\\mel73.pbm\")\nREP_PPMBMP ( kcell74, \"building\\pbm\\projects\\mel74.pbm\")\nREP_PPMBMP ( kcell75, \"building\\pbm\\projects\\mel75.pbm\")\nREP_PPMBMP ( kcell76, \"building\\pbm\\projects\\mel76.pbm\")\nREP_PPMBMP ( kcell77, \"building\\pbm\\projects\\mel77.pbm\")\nREP_PPMBMP ( kcell78, \"building\\pbm\\projects\\mel78.pbm\")\nREP_PPMBMP ( kcell79, \"building\\pbm\\projects\\mel79.pbm\")\nREP_PPMBMP ( kcell80, \"building\\pbm\\projects\\mel80.pbm\")\nREP_PPMBMP ( kcell81, \"building\\pbm\\projects\\mel81.pbm\")\nREP_PPMBMP ( kcell82, \"building\\pbm\\projects\\mel82.pbm\")\nREP_PPMBMP ( kcell83, \"building\\pbm\\projects\\mel83.pbm\")\nREP_PPMBMP ( kcell84, \"building\\pbm\\projects\\mel84.pbm\")\nREP_PPMBMP ( kcell85, \"building\\pbm\\projects\\mel85.pbm\")\nREP_PPMBMP ( kcell86, \"building\\pbm\\projects\\mel86.pbm\")\nREP_PPMBMP ( kcell87, \"building\\pbm\\projects\\mel87.pbm\")\nREP_PPMBMP ( kcell88, \"building\\pbm\\projects\\mel88.pbm\")\nREP_PPMBMP ( kcell89, \"building\\pbm\\projects\\mel89.pbm\")\nREP_PPMBMP ( kcell90, \"building\\pbm\\projects\\mel90.pbm\")\nREP_PPMBMP ( kcell91, \"building\\pbm\\projects\\mel91.pbm\")\nREP_PPMBMP ( kcell92, \"building\\pbm\\projects\\mel92.pbm\")\nREP_PPMBMP ( kcell93, \"building\\pbm\\projects\\mel93.pbm\")\nREP_PPMBMP ( kcell94, \"building\\pbm\\projects\\mel94.pbm\")\nREP_PPMBMP ( kcell95, \"building\\pbm\\projects\\mel95.pbm\")\nREP_PPMBMP ( kcell96, \"building\\pbm\\projects\\mel96.pbm\")\nREP_PPMBMP ( kcell97, \"building\\pbm\\projects\\mel97.pbm\")\nREP_PPMBMP ( kcell98, \"building\\pbm\\projects\\mel98.pbm\")\nREP_PPMBMP ( kcell99, \"building\\pbm\\projects\\mel99.pbm\")\nREP_PPMBMP ( kcell100, \"building\\pbm\\projects\\mel100.pbm\")\nREP_PPMBMP ( kcell101, \"building\\pbm\\projects\\mel101.pbm\")\nREP_PPMBMP ( kcell102, \"building\\pbm\\projects\\mel102.pbm\")\nREP_PPMBMP ( kcell103, \"building\\pbm\\projects\\mel103.pbm\")\nREP_PPMBMP ( kcell104, \"building\\pbm\\projects\\mel104.pbm\")\nREP_PPMBMP ( kcell105, \"building\\pbm\\projects\\mel105.pbm\")\nREP_PPMBMP ( kcell106, \"building\\pbm\\projects\\mel106.pbm\")\nREP_PPMBMP ( kcell107, \"building\\pbm\\projects\\mel107.pbm\")\nREP_PPMBMP ( kcell108, \"building\\pbm\\projects\\mel108.pbm\")\nREP_PPMBMP ( kcell109, \"building\\pbm\\projects\\mel109.pbm\")\nREP_PPMBMP ( kcell110, \"building\\pbm\\projects\\mel110.pbm\")\nREP_PPMBMP ( kcell111, \"building\\pbm\\projects\\mel111.pbm\")\nREP_PPMBMP ( kcell112, \"building\\pbm\\projects\\mel112.pbm\")\nREP_PPMBMP ( kcell113, \"building\\pbm\\projects\\mel113.pbm\")\nREP_PPMBMP ( kcell114, \"building\\pbm\\projects\\mel114.pbm\")\nREP_PPMBMP ( kcell115, \"building\\pbm\\projects\\mel115.pbm\")\nREP_PPMBMP ( kcell116, \"building\\pbm\\projects\\mel116.pbm\")\nREP_PPMBMP ( kcell117, \"building\\pbm\\projects\\mel117.pbm\")\nREP_PPMBMP ( kcell118, \"building\\pbm\\projects\\mel118.pbm\")\nREP_PPMBMP ( kcell119, \"building\\pbm\\projects\\mel119.pbm\")\nREP_PPMBMP ( kcell120, \"building\\pbm\\projects\\mel120.pbm\")\nREP_PPMBMP ( kcell121, \"building\\pbm\\projects\\mel121.pbm\")\nREP_PPMBMP ( kcell122, \"building\\pbm\\projects\\mel122.pbm\")\nREP_PPMBMP ( kcell123, \"building\\pbm\\projects\\mel123.pbm\")\nREP_PPMBMP ( kcell124, \"building\\pbm\\projects\\mel124.pbm\")\nREP_PPMBMP ( kcell125, \"building\\pbm\\projects\\mel125.pbm\")\nREP_PPMBMP ( kcell126, \"building\\pbm\\projects\\mel126.pbm\")\nREP_PPMBMP ( kcell127, \"building\\pbm\\projects\\mel127.pbm\")\nREP_PPMBMP ( kcell128, \"building\\pbm\\projects\\mel128.pbm\")\nREP_PPMBMP ( kcell129, \"building\\pbm\\projects\\mel129.pbm\")\nREP_PPMBMP ( kcell130, \"building\\pbm\\projects\\mel130.pbm\")\nREP_PPMBMP ( kcell131, \"building\\pbm\\projects\\mel131.pbm\")\nREP_PPMBMP ( kcell132, \"building\\pbm\\projects\\mel132.pbm\")\nREP_PPMBMP ( kcell133, \"building\\pbm\\projects\\mel133.pbm\")\nREP_PPMBMP ( kcell134, \"building\\pbm\\projects\\mel134.pbm\")\nREP_PPMBMP ( kcell135, \"building\\pbm\\projects\\mel135.pbm\")\nREP_PPMBMP ( kcell136, \"building\\pbm\\projects\\mel136.pbm\")\nREP_PPMBMP ( kcell137, \"building\\pbm\\projects\\mel137.pbm\")\nREP_PPMBMP ( kcell138, \"building\\pbm\\projects\\mel138.pbm\")\nREP_PPMBMP ( kcell139, \"building\\pbm\\projects\\mel139.pbm\")\nREP_PPMBMP ( kcell140, \"building\\pbm\\projects\\mel140.pbm\")\nREP_PPMBMP ( kcell141, \"building\\pbm\\projects\\mel141.pbm\")\nREP_PPMBMP ( kcell142, \"building\\pbm\\projects\\mel142.pbm\")\nREP_PPMBMP ( kcell143, \"building\\pbm\\projects\\mel143.pbm\")\nREP_PPMBMP ( kcell144, \"building\\pbm\\projects\\mel144.pbm\")\nREP_PPMBMP ( kcell145, \"building\\pbm\\projects\\mel145.pbm\")\nREP_PPMBMP ( kcell146, \"building\\pbm\\projects\\mel146.pbm\")\nREP_PPMBMP ( kcell147, \"building\\pbm\\projects\\mel147.pbm\")\nREP_PPMBMP ( kcell148, \"building\\pbm\\projects\\mel148.pbm\")\nREP_PPMBMP ( kcell149, \"building\\pbm\\projects\\mel149.pbm\")\nREP_PPMBMP ( kcell150, \"building\\pbm\\projects\\mel150.pbm\")\nREP_PPMBMP ( kcell151, \"building\\pbm\\projects\\mel151.pbm\")\nREP_PPMBMP ( kcell152, \"building\\pbm\\projects\\mel152.pbm\")\nREP_PPMBMP ( kcell153, \"building\\pbm\\projects\\mel153.pbm\")\nREP_PPMBMP ( kcell154, \"building\\pbm\\projects\\mel154.pbm\")\nREP_PPMBMP ( kcell155, \"building\\pbm\\projects\\mel155.pbm\")\nREP_PPMBMP ( kcell156, \"building\\pbm\\projects\\mel156.pbm\")\nREP_PPMBMP ( kcell157, \"building\\pbm\\projects\\mel157.pbm\")\nREP_PPMBMP ( kcell158, \"building\\pbm\\projects\\mel158.pbm\")\nREP_PPMBMP ( kcell159, \"building\\pbm\\projects\\mel159.pbm\")\nREP_PPMBMP ( kcell160, \"building\\pbm\\projects\\mel160.pbm\")\nREP_PPMBMP ( kcell161, \"building\\pbm\\projects\\mel161.pbm\")\nREP_PPMBMP ( kcell162, \"building\\pbm\\projects\\mel162.pbm\")\nREP_PPMBMP ( kcell163, \"building\\pbm\\projects\\mel163.pbm\")\nREP_PPMBMP ( kcell164, \"building\\pbm\\projects\\mel164.pbm\")\nREP_PPMBMP ( kcell165, \"building\\pbm\\projects\\mel165.pbm\")\nREP_PPMBMP ( kcell166, \"building\\pbm\\projects\\mel166.pbm\")\nREP_PPMBMP ( kcell167, \"building\\pbm\\projects\\mel167.pbm\")\nREP_PPMBMP ( kcell168, \"building\\pbm\\projects\\mel168.pbm\")\nREP_PPMBMP ( kcell169, \"building\\pbm\\projects\\mel169.pbm\")\nREP_PPMBMP ( kcell170, \"building\\pbm\\projects\\mel170.pbm\")\nREP_PPMBMP ( kcell171, \"building\\pbm\\projects\\mel171.pbm\")\nREP_PPMBMP ( kcell172, \"building\\pbm\\projects\\mel172.pbm\")\nREP_PPMBMP ( kcell173, \"building\\pbm\\projects\\mel173.pbm\")\nREP_PPMBMP ( kcell174, \"building\\pbm\\projects\\mel174.pbm\")\nREP_PPMBMP ( kcell175, \"building\\pbm\\projects\\mel175.pbm\")\nREP_PPMBMP ( kcell176, \"building\\pbm\\projects\\mel176.pbm\")\nREP_PPMBMP ( kcell177, \"building\\pbm\\projects\\mel177.pbm\")\nREP_PPMBMP ( kcell178, \"building\\pbm\\projects\\mel178.pbm\")\nREP_PPMBMP ( kcell179, \"building\\pbm\\projects\\mel179.pbm\")\nREP_PPMBMP ( kcell180, \"building\\pbm\\projects\\mel180.pbm\")\nREP_PPMBMP ( kcell181, \"building\\pbm\\projects\\mel181.pbm\")\nREP_PPMBMP ( kcell182, \"building\\pbm\\projects\\mel182.pbm\")\nREP_PPMBMP ( kcell183, \"building\\pbm\\projects\\mel183.pbm\")\n\nREP_PPMBMP ( kcell201, \"building\\pbm\\projects\\melcy1.pbm\")\nREP_PPMBMP ( kcell202, \"building\\pbm\\projects\\melcy2.pbm\")\nREP_PPMBMP ( kcell203, \"building\\pbm\\projects\\melcy3.pbm\")\nREP_PPMBMP ( kcell204, \"building\\pbm\\projects\\melcy4.pbm\")\nREP_PPMBMP ( kcell205, \"building\\pbm\\projects\\melcy5.pbm\")\nREP_PPMBMP ( kcell206, \"building\\pbm\\projects\\melcy6.pbm\")\nREP_PPMBMP ( kcell207, \"building\\pbm\\projects\\melcy7.pbm\")\nREP_PPMBMP ( kcell208, \"building\\pbm\\projects\\melcy8.pbm\")\nREP_PPMBMP ( kcell209, \"building\\pbm\\projects\\melcy9.pbm\")\nREP_PPMBMP ( kcell210, \"building\\pbm\\projects\\melcy10.pbm\")\nREP_PPMBMP ( kcell211, \"building\\pbm\\projects\\melcy11.pbm\")\nREP_PPMBMP ( kcell212, \"building\\pbm\\projects\\melcy12.pbm\")\nREP_PPMBMP ( kcell213, \"building\\pbm\\projects\\melcy13.pbm\")\nREP_PPMBMP ( kcell214, \"building\\pbm\\projects\\melcy14.pbm\")\nREP_PPMBMP ( kcell215, \"building\\pbm\\projects\\melcy15.pbm\")\nREP_PPMBMP ( kcell216, \"building\\pbm\\projects\\melcy16.pbm\")\nREP_PPMBMP ( kcell217, \"building\\pbm\\projects\\melcy17.pbm\")\nREP_PPMBMP ( kcell218, \"building\\pbm\\projects\\melcy18.pbm\")\nREP_PPMBMP ( kcell219, \"building\\pbm\\projects\\melcy19.pbm\")\nREP_PPMBMP ( kcell220, \"building\\pbm\\projects\\melcy20.pbm\")\n\nREP_PPMBMP ( kcell301, \"building\\pbm\\projects\\mel301.pbm\")\nREP_PPMBMP ( kcell302, \"building\\pbm\\projects\\mel302.pbm\")\nREP_PPMBMP ( kcell303, \"building\\pbm\\projects\\mel303.pbm\")\nREP_PPMBMP ( kcell304, \"building\\pbm\\projects\\mel304.pbm\")\nREP_PPMBMP ( kcell305, \"building\\pbm\\projects\\mel305.pbm\")\nREP_PPMBMP ( kcell306, \"building\\pbm\\projects\\mel306.pbm\")\nREP_PPMBMP ( kcell307, \"building\\pbm\\projects\\mel307.pbm\")\nREP_PPMBMP ( kcell308, \"building\\pbm\\projects\\mel308.pbm\")\nREP_PPMBMP ( kcell309, \"building\\pbm\\projects\\mel309.pbm\")\nREP_PPMBMP ( kcell310, \"building\\pbm\\projects\\mel310.pbm\")\nREP_PPMBMP ( kcell311, \"building\\pbm\\projects\\mel311.pbm\")\nREP_PPMBMP ( kcell312, \"building\\pbm\\projects\\mel312.pbm\")\nREP_PPMBMP ( kcell313, \"building\\pbm\\projects\\mel313.pbm\")\nREP_PPMBMP ( kcell314, \"building\\pbm\\projects\\mel314.pbm\")\nREP_PPMBMP ( kcell315, \"building\\pbm\\projects\\mel315.pbm\")\nREP_PPMBMP ( kcell316, \"building\\pbm\\projects\\mel316.pbm\")\nREP_PPMBMP ( kcell317, \"building\\pbm\\projects\\mel317.pbm\")\nREP_PPMBMP ( kcell318, \"building\\pbm\\projects\\mel318.pbm\")\nREP_PPMBMP ( kcell319, \"building\\pbm\\projects\\mel319.pbm\")\nREP_PPMBMP ( kcell320, \"building\\pbm\\projects\\mel320.pbm\")\nREP_PPMBMP ( kcell321, \"building\\pbm\\projects\\mel321.pbm\")\nREP_PPMBMP ( kcell322, \"building\\pbm\\projects\\mel322.pbm\")\nREP_PPMBMP ( kcell323, \"building\\pbm\\projects\\mel323.pbm\")\nREP_PPMBMP ( kcell324, \"building\\pbm\\projects\\mel324.pbm\")\nREP_PPMBMP ( kcell325, \"building\\pbm\\projects\\mel325.pbm\")\nREP_PPMBMP ( kcell326, \"building\\pbm\\projects\\mel326.pbm\")\n"
  },
  {
    "path": "src/building/music.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// ------------------------------------------------------------------------\n// music definitions\n// ------------------------------------------------------------------------\n\nMIDI_CHUNK( \"building\\sound\\backstag\\bakstage.mid\", kmidBackstage );\nMIDI_CHUNK( \"building\\sound\\ticket\\boothjam.mid\", \tkmidBoothjam );\nMIDI_CHUNK( \"building\\sound\\imagin\\closet.mid\",\t\tkmidCloset );\nMIDI_CHUNK( \"building\\sound\\imagin\\coaster.mid\", \tkmidCoaster );\nMIDI_CHUNK( \"building\\sound\\inspirat\\ideas.mid\", \tkmidIdeas );\nMIDI_CHUNK( \"building\\sound\\ticket\\jamloop.mid\", \tkmidJamloop );\nMIDI_CHUNK( \"building\\sound\\lobby\\lobby.mid\", \t\tkmidLobby );\nMIDI_CHUNK( \"building\\sound\\projects\\project.mid\", \tkmidProject );\nMIDI_CHUNK( \"building\\sound\\snackbar\\snack.mid\", \tkmidSnack );\nMIDI_CHUNK( \"building\\sound\\studio\\studio.mid\", \tkmidStudio );\nMIDI_CHUNK( \"building\\sound\\login\\tag.mid\", \t\tkmidTag );\nMIDI_CHUNK( \"building\\sound\\theatre\\theater.mid\", \tkmidTheatre );\nMIDI_CHUNK( \"building\\sound\\imagin\\coaster.mid\", \tkmidRollerCoaster );\n"
  },
  {
    "path": "src/building/mzbkstag.seq",
    "content": "REP_PPMBMP( kcell50, \"backstag\\door.seq47.pbm\" )\nREP_PPMBMP( kcell51, \"backstag\\door.seq48.pbm\" )\nREP_PPMBMP( kcell52, \"backstag\\door.seq49.pbm\" )\nREP_PPMBMP( kcell53, \"backstag\\door.seq50.pbm\" )\nREP_PPMBMP( kcell54, \"backstag\\door.seq51.pbm\" )\nREP_PPMBMP( kcell55, \"backstag\\door.seq52.pbm\" )\nREP_PPMBMP( kcell56, \"backstag\\door.seq53.pbm\" )\nREP_PPMBMP( kcell57, \"backstag\\door.seq54.pbm\" )\nREP_PPMBMP( kcell58, \"backstag\\door.seq55.pbm\" )\nREP_PPMBMP( kcell59, \"backstag\\door.seq56.pbm\" )\nREP_PPMBMP( kcell60, \"backstag\\door.seq57.pbm\" )\nREP_PPMBMP( kcell61, \"backstag\\door.seq58.pbm\" )\nREP_PPMBMP( kcell62, \"backstag\\door.seq59.pbm\" )\nREP_PPMBMP( kcell63, \"backstag\\door.seq60.pbm\" )\nREP_PPMBMP( kcell64, \"backstag\\door.seq61.pbm\" )\nREP_PPMBMP( kcell65, \"backstag\\door.seq62.pbm\" )\nREP_PPMBMP( kcell66, \"backstag\\door.seq63.pbm\" )\nREP_PPMBMP( kcell67, \"backstag\\door.seq64.pbm\" )\nREP_PPMBMP( kcell51, \"backstag\\door.seq47.pbm\" )\nREP_PPMBMP( kcell52, \"backstag\\door.seq48.pbm\" )\nREP_PPMBMP( kcell53, \"backstag\\door.seq49.pbm\" )\nREP_PPMBMP( kcell54, \"backstag\\door.seq50.pbm\" )\nREP_PPMBMP( kcell55, \"backstag\\door.seq51.pbm\" )\nREP_PPMBMP( kcell56, \"backstag\\door.seq52.pbm\" )\nREP_PPMBMP( kcell57, \"backstag\\door.seq53.pbm\" )\nREP_PPMBMP( kcell58, \"backstag\\door.seq54.pbm\" )\nREP_PPMBMP( kcell59, \"backstag\\door.seq55.pbm\" )\nREP_PPMBMP( kcell60, \"backstag\\door.seq56.pbm\" )\nREP_PPMBMP( kcell61, \"backstag\\door.seq57.pbm\" )\nREP_PPMBMP( kcell62, \"backstag\\door.seq58.pbm\" )\nREP_PPMBMP( kcell63, \"backstag\\door.seq59.pbm\" )\nREP_PPMBMP( kcell64, \"backstag\\door.seq60.pbm\" )\nREP_PPMBMP( kcell65, \"backstag\\door.seq61.pbm\" )\nREP_PPMBMP( kcell66, \"backstag\\door.seq62.pbm\" )\nREP_PPMBMP( kcell67, \"backstag\\door.seq63.pbm\" )\nREP_PPMBMP( kcell68, \"backstag\\door.seq64.pbm\" )\n"
  },
  {
    "path": "src/building/mzbkstg.seq",
    "content": "REP_PPMBMP( kcell1, \"building\\pbm\\backstag\\lpcell1.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\backstag\\lpcell2.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\backstag\\lpcell3.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\backstag\\lpcell4.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\backstag\\lpcell5.pbm\" )\nREP_PPMBMP( kcell6, \"building\\pbm\\backstag\\lpcell6.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\backstag\\lpcell7.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\backstag\\lpcell8.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\backstag\\lpcell9.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\backstag\\lpcell10.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\backstag\\lpcell11.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\backstag\\lpcell12.pbm\" )\n\nREP_PPMBMP( kcell21, \"building\\pbm\\backstag\\evcell1.pbm\" )\nREP_PPMBMP( kcell22, \"building\\pbm\\backstag\\evcell2.pbm\" )\nREP_PPMBMP( kcell23, \"building\\pbm\\backstag\\evcell3.pbm\" )\nREP_PPMBMP( kcell24, \"building\\pbm\\backstag\\evcell4.pbm\" )\nREP_PPMBMP( kcell25, \"building\\pbm\\backstag\\evcell5.pbm\" )\nREP_PPMBMP( kcell26, \"building\\pbm\\backstag\\evcell6.pbm\" )\nREP_PPMBMP( kcell27, \"building\\pbm\\backstag\\evcell7.pbm\" )\nREP_PPMBMP( kcell28, \"building\\pbm\\backstag\\evcell8.pbm\" )\nREP_PPMBMP( kcell29, \"building\\pbm\\backstag\\evcell9.pbm\" )\nREP_PPMBMP( kcell30, \"building\\pbm\\backstag\\evcell10.pbm\" )\nREP_PPMBMP( kcell31, \"building\\pbm\\backstag\\evcell11.pbm\" )\nREP_PPMBMP( kcell32, \"building\\pbm\\backstag\\evcell12.pbm\" )\n\nREP_PPMBMP( kcell101, \"building\\pbm\\backstag\\idmz1.pbm\" )\nREP_PPMBMP( kcell102, \"building\\pbm\\backstag\\idmz2.pbm\" )\nREP_PPMBMP( kcell103, \"building\\pbm\\backstag\\idmz3.pbm\" )\nREP_PPMBMP( kcell104, \"building\\pbm\\backstag\\idmz4.pbm\" )\nREP_PPMBMP( kcell105, \"building\\pbm\\backstag\\idmz5.pbm\" )\nREP_PPMBMP( kcell106, \"building\\pbm\\backstag\\idmz6.pbm\" )\nREP_PPMBMP( kcell107, \"building\\pbm\\backstag\\idmz7.pbm\" )\nREP_PPMBMP( kcell108, \"building\\pbm\\backstag\\idmz8.pbm\" )\nREP_PPMBMP( kcell109, \"building\\pbm\\backstag\\idmz9.pbm\" )\nREP_PPMBMP( kcell110, \"building\\pbm\\backstag\\idmz10.pbm\" )\nREP_PPMBMP( kcell111, \"building\\pbm\\backstag\\idmz11.pbm\" )\nREP_PPMBMP( kcell112, \"building\\pbm\\backstag\\idmz12.pbm\" )\nREP_PPMBMP( kcell113, \"building\\pbm\\backstag\\idmz13.pbm\" )\nREP_PPMBMP( kcell114, \"building\\pbm\\backstag\\idmz14.pbm\" )\nREP_PPMBMP( kcell115, \"building\\pbm\\backstag\\idmz15.pbm\" )\nREP_PPMBMP( kcell116, \"building\\pbm\\backstag\\idmz16.pbm\" )\nREP_PPMBMP( kcell117, \"building\\pbm\\backstag\\idmz17.pbm\" )\nREP_PPMBMP( kcell118, \"building\\pbm\\backstag\\idmz18.pbm\" )\nREP_PPMBMP( kcell119, \"building\\pbm\\backstag\\idmz19.pbm\" )\nREP_PPMBMP( kcell120, \"building\\pbm\\backstag\\idmz20.pbm\" )\nREP_PPMBMP( kcell121, \"building\\pbm\\backstag\\idmz21.pbm\" )\nREP_PPMBMP( kcell122, \"building\\pbm\\backstag\\idmz22.pbm\" )\nREP_PPMBMP( kcell123, \"building\\pbm\\backstag\\idmz23.pbm\" )\nREP_PPMBMP( kcell124, \"building\\pbm\\backstag\\idmz24.pbm\" )\nREP_PPMBMP( kcell125, \"building\\pbm\\backstag\\idmz25.pbm\" )\nREP_PPMBMP( kcell126, \"building\\pbm\\backstag\\idmz26.pbm\" )\nREP_PPMBMP( kcell127, \"building\\pbm\\backstag\\idmz27.pbm\" )\nREP_PPMBMP( kcell128, \"building\\pbm\\backstag\\idmz28.pbm\" )\nREP_PPMBMP( kcell129, \"building\\pbm\\backstag\\idmz29.pbm\" )\nREP_PPMBMP( kcell130, \"building\\pbm\\backstag\\idmz30.pbm\" )\nREP_PPMBMP( kcell131, \"building\\pbm\\backstag\\idmz31.pbm\" )\nREP_PPMBMP( kcell132, \"building\\pbm\\backstag\\idmz32.pbm\" )\nREP_PPMBMP( kcell133, \"building\\pbm\\backstag\\idmz33.pbm\" )\nREP_PPMBMP( kcell134, \"building\\pbm\\backstag\\idmz34.pbm\" )\nREP_PPMBMP( kcell135, \"building\\pbm\\backstag\\idmz35.pbm\" )\nREP_PPMBMP( kcell136, \"building\\pbm\\backstag\\idmz36.pbm\" )\nREP_PPMBMP( kcell137, \"building\\pbm\\backstag\\idmz37.pbm\" )\nREP_PPMBMP( kcell138, \"building\\pbm\\backstag\\idmz38.pbm\" )\nREP_PPMBMP( kcell139, \"building\\pbm\\backstag\\idmz39.pbm\" )\nREP_PPMBMP( kcell140, \"building\\pbm\\backstag\\idmz40.pbm\" )\nREP_PPMBMP( kcell141, \"building\\pbm\\backstag\\idmz41.pbm\" )\nREP_PPMBMP( kcell142, \"building\\pbm\\backstag\\idmz42.pbm\" )\nREP_PPMBMP( kcell143, \"building\\pbm\\backstag\\idmz43.pbm\" )\nREP_PPMBMP( kcell144, \"building\\pbm\\backstag\\idmz44.pbm\" )\nREP_PPMBMP( kcell145, \"building\\pbm\\backstag\\idmz45.pbm\" )\nREP_PPMBMP( kcell146, \"building\\pbm\\backstag\\idmz46.pbm\" )\nREP_PPMBMP( kcell147, \"building\\pbm\\backstag\\idmz47.pbm\" )\nREP_PPMBMP( kcell148, \"building\\pbm\\backstag\\idmz48.pbm\" )\nREP_PPMBMP( kcell149, \"building\\pbm\\backstag\\idmz49.pbm\" )\nREP_PPMBMP( kcell150, \"building\\pbm\\backstag\\idmz50.pbm\" )\nREP_PPMBMP( kcell151, \"building\\pbm\\backstag\\idmz51.pbm\" )\nREP_PPMBMP( kcell152, \"building\\pbm\\backstag\\idmz52.pbm\" )\nREP_PPMBMP( kcell153, \"building\\pbm\\backstag\\idmz53.pbm\" )\nREP_PPMBMP( kcell154, \"building\\pbm\\backstag\\idmz54.pbm\" )\nREP_PPMBMP( kcell155, \"building\\pbm\\backstag\\idmz55.pbm\" )\nREP_PPMBMP( kcell156, \"building\\pbm\\backstag\\idmz56.pbm\" )\nREP_PPMBMP( kcell157, \"building\\pbm\\backstag\\idmz57.pbm\" )\nREP_PPMBMP( kcell158, \"building\\pbm\\backstag\\idmz58.pbm\" )\nREP_PPMBMP( kcell159, \"building\\pbm\\backstag\\idmz59.pbm\" )\nREP_PPMBMP( kcell160, \"building\\pbm\\backstag\\idmz60.pbm\" )\nREP_PPMBMP( kcell161, \"building\\pbm\\backstag\\idmz61.pbm\" )\nREP_PPMBMP( kcell162, \"building\\pbm\\backstag\\idmz62.pbm\" )\nREP_PPMBMP( kcell163, \"building\\pbm\\backstag\\idmz63.pbm\" )\nREP_PPMBMP( kcell164, \"building\\pbm\\backstag\\idmz64.pbm\" )\nREP_PPMBMP( kcell165, \"building\\pbm\\backstag\\idmz65.pbm\" )\nREP_PPMBMP( kcell166, \"building\\pbm\\backstag\\idmz66.pbm\" )\nREP_PPMBMP( kcell167, \"building\\pbm\\backstag\\idmz67.pbm\" )\nREP_PPMBMP( kcell168, \"building\\pbm\\backstag\\idmz68.pbm\" )\nREP_PPMBMP( kcell169, \"building\\pbm\\backstag\\idmz69.pbm\" )\n\nREP_PPMBMP( kcell201, \"building\\pbm\\backstag\\gostu1.pbm\" )\nREP_PPMBMP( kcell202, \"building\\pbm\\backstag\\gostu2.pbm\" )\nREP_PPMBMP( kcell203, \"building\\pbm\\backstag\\gostu3.pbm\" )\nREP_PPMBMP( kcell204, \"building\\pbm\\backstag\\gostu4.pbm\" )\nREP_PPMBMP( kcell205, \"building\\pbm\\backstag\\gostu5.pbm\" )\nREP_PPMBMP( kcell206, \"building\\pbm\\backstag\\gostu6.pbm\" )\nREP_PPMBMP( kcell207, \"building\\pbm\\backstag\\gostu7.pbm\" )\nREP_PPMBMP( kcell208, \"building\\pbm\\backstag\\gostu8.pbm\" )\nREP_PPMBMP( kcell209, \"building\\pbm\\backstag\\gostu9.pbm\" )\nREP_PPMBMP( kcell210, \"building\\pbm\\backstag\\gostu10.pbm\" )\nREP_PPMBMP( kcell211, \"building\\pbm\\backstag\\gostu11.pbm\" )\nREP_PPMBMP( kcell212, \"building\\pbm\\backstag\\gostu12.pbm\" )\nREP_PPMBMP( kcell213, \"building\\pbm\\backstag\\gostu13.pbm\" )\nREP_PPMBMP( kcell214, \"building\\pbm\\backstag\\gostu14.pbm\" )\nREP_PPMBMP( kcell215, \"building\\pbm\\backstag\\gostu15.pbm\" )\nREP_PPMBMP( kcell216, \"building\\pbm\\backstag\\gostu16.pbm\" )\nREP_PPMBMP( kcell217, \"building\\pbm\\backstag\\gostu17.pbm\" )\nREP_PPMBMP( kcell218, \"building\\pbm\\backstag\\gostu18.pbm\" )\nREP_PPMBMP( kcell219, \"building\\pbm\\backstag\\gostu19.pbm\" )\nREP_PPMBMP( kcell220, \"building\\pbm\\backstag\\gostu20.pbm\" )\nREP_PPMBMP( kcell221, \"building\\pbm\\backstag\\gostu21.pbm\" )\nREP_PPMBMP( kcell222, \"building\\pbm\\backstag\\gostu22.pbm\" )\nREP_PPMBMP( kcell223, \"building\\pbm\\backstag\\gostu23.pbm\" )\nREP_PPMBMP( kcell224, \"building\\pbm\\backstag\\gostu24.pbm\" )\nREP_PPMBMP( kcell225, \"building\\pbm\\backstag\\gostu25.pbm\" )\nREP_PPMBMP( kcell226, \"building\\pbm\\backstag\\gostu26.pbm\" )\nREP_PPMBMP( kcell227, \"building\\pbm\\backstag\\gostu27.pbm\" )\nREP_PPMBMP( kcell228, \"building\\pbm\\backstag\\gostu28.pbm\" )\nREP_PPMBMP( kcell229, \"building\\pbm\\backstag\\gostu29.pbm\" )\nREP_PPMBMP( kcell230, \"building\\pbm\\backstag\\gostu30.pbm\" )\nREP_PPMBMP( kcell231, \"building\\pbm\\backstag\\gostu31.pbm\" )\nREP_PPMBMP( kcell232, \"building\\pbm\\backstag\\gostu32.pbm\" )\nREP_PPMBMP( kcell233, \"building\\pbm\\backstag\\gostu33.pbm\" )\nREP_PPMBMP( kcell234, \"building\\pbm\\backstag\\gostu34.pbm\" )\nREP_PPMBMP( kcell235, \"building\\pbm\\backstag\\gostu35.pbm\" )\nREP_PPMBMP( kcell236, \"building\\pbm\\backstag\\gostu36.pbm\" )\nREP_PPMBMP( kcell237, \"building\\pbm\\backstag\\gostu37.pbm\" )\nREP_PPMBMP( kcell238, \"building\\pbm\\backstag\\gostu38.pbm\" )\nREP_PPMBMP( kcell239, \"building\\pbm\\backstag\\gostu39.pbm\" )\nREP_PPMBMP( kcell240, \"building\\pbm\\backstag\\gostu40.pbm\" )\nREP_PPMBMP( kcell241, \"building\\pbm\\backstag\\gostu41.pbm\" )\nREP_PPMBMP( kcell242, \"building\\pbm\\backstag\\gostu42.pbm\" )\nREP_PPMBMP( kcell243, \"building\\pbm\\backstag\\gostu43.pbm\" )\nREP_PPMBMP( kcell244, \"building\\pbm\\backstag\\gostu44.pbm\" )\nREP_PPMBMP( kcell245, \"building\\pbm\\backstag\\gostu45.pbm\" )\nREP_PPMBMP( kcell246, \"building\\pbm\\backstag\\gostu46.pbm\" )\nREP_PPMBMP( kcell247, \"building\\pbm\\backstag\\gostu47.pbm\" )\nREP_PPMBMP( kcell248, \"building\\pbm\\backstag\\gostu48.pbm\" )\nREP_PPMBMP( kcell249, \"building\\pbm\\backstag\\gostu49.pbm\" )\nREP_PPMBMP( kcell250, \"building\\pbm\\backstag\\gostu50.pbm\" )\nREP_PPMBMP( kcell251, \"building\\pbm\\backstag\\gostu51.pbm\" )\nREP_PPMBMP( kcell252, \"building\\pbm\\backstag\\gostu52.pbm\" )\nREP_PPMBMP( kcell253, \"building\\pbm\\backstag\\gostu53.pbm\" )\nREP_PPMBMP( kcell254, \"building\\pbm\\backstag\\gostu54.pbm\" )\nREP_PPMBMP( kcell255, \"building\\pbm\\backstag\\gostu55.pbm\" )\nREP_PPMBMP( kcell256, \"building\\pbm\\backstag\\gostu56.pbm\" )\nREP_PPMBMP( kcell257, \"building\\pbm\\backstag\\gostu57.pbm\" )\nREP_PPMBMP( kcell258, \"building\\pbm\\backstag\\gostu58.pbm\" )\nREP_PPMBMP( kcell259, \"building\\pbm\\backstag\\gostu59.pbm\" )\nREP_PPMBMP( kcell260, \"building\\pbm\\backstag\\gostu60.pbm\" )\nREP_PPMBMP( kcell261, \"building\\pbm\\backstag\\gostu61.pbm\" )\nREP_PPMBMP( kcell262, \"building\\pbm\\backstag\\gostu62.pbm\" )\nREP_PPMBMP( kcell263, \"building\\pbm\\backstag\\gostu63.pbm\" )\nREP_PPMBMP( kcell264, \"building\\pbm\\backstag\\gostu64.pbm\" )\nREP_PPMBMP( kcell265, \"building\\pbm\\backstag\\gostu65.pbm\" )\nREP_PPMBMP( kcell266, \"building\\pbm\\backstag\\gostu66.pbm\" )\nREP_PPMBMP( kcell267, \"building\\pbm\\backstag\\gostu67.pbm\" )\nREP_PPMBMP( kcell268, \"building\\pbm\\backstag\\gostu68.pbm\" )\nREP_PPMBMP( kcell269, \"building\\pbm\\backstag\\gostu69.pbm\" )\n\nREP_PPMBMP( kcell301, \"building\\pbm\\backstag\\gopmz1.pbm\" )\nREP_PPMBMP( kcell302, \"building\\pbm\\backstag\\gopmz2.pbm\" )\nREP_PPMBMP( kcell303, \"building\\pbm\\backstag\\gopmz3.pbm\" )\nREP_PPMBMP( kcell304, \"building\\pbm\\backstag\\gopmz4.pbm\" )\nREP_PPMBMP( kcell305, \"building\\pbm\\backstag\\gopmz5.pbm\" )\nREP_PPMBMP( kcell306, \"building\\pbm\\backstag\\gopmz6.pbm\" )\nREP_PPMBMP( kcell307, \"building\\pbm\\backstag\\gopmz7.pbm\" )\nREP_PPMBMP( kcell308, \"building\\pbm\\backstag\\gopmz8.pbm\" )\nREP_PPMBMP( kcell309, \"building\\pbm\\backstag\\gopmz9.pbm\" )\nREP_PPMBMP( kcell310, \"building\\pbm\\backstag\\gopmz10.pbm\" )\nREP_PPMBMP( kcell311, \"building\\pbm\\backstag\\gopmz11.pbm\" )\nREP_PPMBMP( kcell312, \"building\\pbm\\backstag\\gopmz12.pbm\" )\nREP_PPMBMP( kcell313, \"building\\pbm\\backstag\\gopmz13.pbm\" )\nREP_PPMBMP( kcell314, \"building\\pbm\\backstag\\gopmz14.pbm\" )\nREP_PPMBMP( kcell315, \"building\\pbm\\backstag\\gopmz15.pbm\" )\nREP_PPMBMP( kcell316, \"building\\pbm\\backstag\\gopmz16.pbm\" )\nREP_PPMBMP( kcell317, \"building\\pbm\\backstag\\gopmz17.pbm\" )\nREP_PPMBMP( kcell318, \"building\\pbm\\backstag\\gopmz18.pbm\" )\nREP_PPMBMP( kcell319, \"building\\pbm\\backstag\\gopmz19.pbm\" )\nREP_PPMBMP( kcell320, \"building\\pbm\\backstag\\gopmz20.pbm\" )\nREP_PPMBMP( kcell321, \"building\\pbm\\backstag\\gopmz21.pbm\" )\nREP_PPMBMP( kcell322, \"building\\pbm\\backstag\\gopmz22.pbm\" )\nREP_PPMBMP( kcell323, \"building\\pbm\\backstag\\gopmz23.pbm\" )\nREP_PPMBMP( kcell324, \"building\\pbm\\backstag\\gopmz24.pbm\" )\nREP_PPMBMP( kcell325, \"building\\pbm\\backstag\\gopmz25.pbm\" )\nREP_PPMBMP( kcell326, \"building\\pbm\\backstag\\gopmz26.pbm\" )\nREP_PPMBMP( kcell327, \"building\\pbm\\backstag\\gopmz27.pbm\" )\nREP_PPMBMP( kcell328, \"building\\pbm\\backstag\\gopmz28.pbm\" )\nREP_PPMBMP( kcell329, \"building\\pbm\\backstag\\gopmz29.pbm\" )\nREP_PPMBMP( kcell330, \"building\\pbm\\backstag\\gopmz30.pbm\" )\nREP_PPMBMP( kcell331, \"building\\pbm\\backstag\\gopmz31.pbm\" )\nREP_PPMBMP( kcell332, \"building\\pbm\\backstag\\gopmz32.pbm\" )\nREP_PPMBMP( kcell333, \"building\\pbm\\backstag\\gopmz33.pbm\" )\nREP_PPMBMP( kcell334, \"building\\pbm\\backstag\\gopmz34.pbm\" )\nREP_PPMBMP( kcell335, \"building\\pbm\\backstag\\gopmz35.pbm\" )\nREP_PPMBMP( kcell336, \"building\\pbm\\backstag\\gopmz36.pbm\" )\nREP_PPMBMP( kcell337, \"building\\pbm\\backstag\\gopmz37.pbm\" )\nREP_PPMBMP( kcell338, \"building\\pbm\\backstag\\gopmz38.pbm\" )\nREP_PPMBMP( kcell339, \"building\\pbm\\backstag\\gopmz39.pbm\" )\nREP_PPMBMP( kcell340, \"building\\pbm\\backstag\\gopmz40.pbm\" )\nREP_PPMBMP( kcell341, \"building\\pbm\\backstag\\gopmz41.pbm\" )\nREP_PPMBMP( kcell342, \"building\\pbm\\backstag\\gopmz42.pbm\" )\nREP_PPMBMP( kcell343, \"building\\pbm\\backstag\\gopmz43.pbm\" )\nREP_PPMBMP( kcell344, \"building\\pbm\\backstag\\gopmz44.pbm\" )\nREP_PPMBMP( kcell345, \"building\\pbm\\backstag\\gopmz45.pbm\" )\nREP_PPMBMP( kcell346, \"building\\pbm\\backstag\\gopmz46.pbm\" )\nREP_PPMBMP( kcell347, \"building\\pbm\\backstag\\gopmz47.pbm\" )\nREP_PPMBMP( kcell348, \"building\\pbm\\backstag\\gopmz48.pbm\" )\nREP_PPMBMP( kcell349, \"building\\pbm\\backstag\\gopmz49.pbm\" )\nREP_PPMBMP( kcell350, \"building\\pbm\\backstag\\gopmz50.pbm\" )\nREP_PPMBMP( kcell351, \"building\\pbm\\backstag\\gopmz51.pbm\" )\nREP_PPMBMP( kcell352, \"building\\pbm\\backstag\\gopmz52.pbm\" )\nREP_PPMBMP( kcell353, \"building\\pbm\\backstag\\gopmz53.pbm\" )\nREP_PPMBMP( kcell354, \"building\\pbm\\backstag\\gopmz54.pbm\" )\nREP_PPMBMP( kcell355, \"building\\pbm\\backstag\\gopmz55.pbm\" )\nREP_PPMBMP( kcell356, \"building\\pbm\\backstag\\gopmz56.pbm\" )\nREP_PPMBMP( kcell357, \"building\\pbm\\backstag\\gopmz57.pbm\" )\nREP_PPMBMP( kcell358, \"building\\pbm\\backstag\\gopmz58.pbm\" )\nREP_PPMBMP( kcell359, \"building\\pbm\\backstag\\gopmz59.pbm\" )\nREP_PPMBMP( kcell360, \"building\\pbm\\backstag\\gopmz60.pbm\" )\nREP_PPMBMP( kcell361, \"building\\pbm\\backstag\\gopmz61.pbm\" )\nREP_PPMBMP( kcell362, \"building\\pbm\\backstag\\gopmz62.pbm\" )\nREP_PPMBMP( kcell363, \"building\\pbm\\backstag\\gopmz63.pbm\" )\nREP_PPMBMP( kcell364, \"building\\pbm\\backstag\\gopmz64.pbm\" )\nREP_PPMBMP( kcell365, \"building\\pbm\\backstag\\gopmz65.pbm\" )\nREP_PPMBMP( kcell366, \"building\\pbm\\backstag\\gopmz66.pbm\" )\nREP_PPMBMP( kcell367, \"building\\pbm\\backstag\\gopmz67.pbm\" )\nREP_PPMBMP( kcell368, \"building\\pbm\\backstag\\gopmz68.pbm\" )\nREP_PPMBMP( kcell369, \"building\\pbm\\backstag\\gopmz69.pbm\" )\nREP_PPMBMP( kcell370, \"building\\pbm\\backstag\\gopmz70.pbm\" )\nREP_PPMBMP( kcell371, \"building\\pbm\\backstag\\gopmz71.pbm\" )\nREP_PPMBMP( kcell372, \"building\\pbm\\backstag\\gopmz72.pbm\" )\nREP_PPMBMP( kcell373, \"building\\pbm\\backstag\\gopmz73.pbm\" )\nREP_PPMBMP( kcell374, \"building\\pbm\\backstag\\gopmz74.pbm\" )\n\nREP_PPMBMP( kcell401, \"building\\pbm\\backstag\\tbth5_1.pbm\" )\nREP_PPMBMP( kcell402, \"building\\pbm\\backstag\\tbth5_2.pbm\" )\nREP_PPMBMP( kcell403, \"building\\pbm\\backstag\\tbth5_3.pbm\" )\nREP_PPMBMP( kcell404, \"building\\pbm\\backstag\\tbth5_4.pbm\" )\nREP_PPMBMP( kcell405, \"building\\pbm\\backstag\\tbth5_5.pbm\" )\nREP_PPMBMP( kcell406, \"building\\pbm\\backstag\\tbth5_6.pbm\" )\nREP_PPMBMP( kcell407, \"building\\pbm\\backstag\\tbth5_7.pbm\" )\nREP_PPMBMP( kcell408, \"building\\pbm\\backstag\\tbth5_8.pbm\" )\nREP_PPMBMP( kcell409, \"building\\pbm\\backstag\\tbth5_9.pbm\" )\nREP_PPMBMP( kcell410, \"building\\pbm\\backstag\\tbth5_10.pbm\" )\nREP_PPMBMP( kcell411, \"building\\pbm\\backstag\\tbth5_11.pbm\" )\nREP_PPMBMP( kcell412, \"building\\pbm\\backstag\\tbth5_12.pbm\" )\nREP_PPMBMP( kcell413, \"building\\pbm\\backstag\\tbth5_13.pbm\" )\nREP_PPMBMP( kcell414, \"building\\pbm\\backstag\\tbth5_14.pbm\" )\nREP_PPMBMP( kcell415, \"building\\pbm\\backstag\\tbth5_15.pbm\" )\nREP_PPMBMP( kcell416, \"building\\pbm\\backstag\\tbth5_16.pbm\" )\nREP_PPMBMP( kcell417, \"building\\pbm\\backstag\\tbth5_17.pbm\" )\nREP_PPMBMP( kcell418, \"building\\pbm\\backstag\\tbth5_18.pbm\" )\nREP_PPMBMP( kcell419, \"building\\pbm\\backstag\\tbth5_19.pbm\" )\nREP_PPMBMP( kcell420, \"building\\pbm\\backstag\\tbth5_20.pbm\" )\n\nREP_PPMBMP( kcell451, \"building\\pbm\\backstag\\tbth6_1.pbm\" )\nREP_PPMBMP( kcell452, \"building\\pbm\\backstag\\tbth6_2.pbm\" )\nREP_PPMBMP( kcell453, \"building\\pbm\\backstag\\tbth6_3.pbm\" )\nREP_PPMBMP( kcell454, \"building\\pbm\\backstag\\tbth6_4.pbm\" )\nREP_PPMBMP( kcell455, \"building\\pbm\\backstag\\tbth6_5.pbm\" )\nREP_PPMBMP( kcell456, \"building\\pbm\\backstag\\tbth6_6.pbm\" )\nREP_PPMBMP( kcell457, \"building\\pbm\\backstag\\tbth6_7.pbm\" )\nREP_PPMBMP( kcell458, \"building\\pbm\\backstag\\tbth6_8.pbm\" )\nREP_PPMBMP( kcell459, \"building\\pbm\\backstag\\tbth6_9.pbm\" )\nREP_PPMBMP( kcell460, \"building\\pbm\\backstag\\tbth6_10.pbm\" )\nREP_PPMBMP( kcell461, \"building\\pbm\\backstag\\tbth6_11.pbm\" )\nREP_PPMBMP( kcell462, \"building\\pbm\\backstag\\tbth6_12.pbm\" )\nREP_PPMBMP( kcell463, \"building\\pbm\\backstag\\tbth6_13.pbm\" )\nREP_PPMBMP( kcell464, \"building\\pbm\\backstag\\tbth6_14.pbm\" )\nREP_PPMBMP( kcell465, \"building\\pbm\\backstag\\tbth6_15.pbm\" )\nREP_PPMBMP( kcell466, \"building\\pbm\\backstag\\tbth6_16.pbm\" )\nREP_PPMBMP( kcell467, \"building\\pbm\\backstag\\tbth6_17.pbm\" )\nREP_PPMBMP( kcell468, \"building\\pbm\\backstag\\tbth6_18.pbm\" )\nREP_PPMBMP( kcell469, \"building\\pbm\\backstag\\tbth6_19.pbm\" )\nREP_PPMBMP( kcell470, \"building\\pbm\\backstag\\tbth6_20.pbm\" )\nREP_PPMBMP( kcell471, \"building\\pbm\\backstag\\tbth6_21.pbm\" )\nREP_PPMBMP( kcell472, \"building\\pbm\\backstag\\tbth6_22.pbm\" )\nREP_PPMBMP( kcell473, \"building\\pbm\\backstag\\tbth6_23.pbm\" )\nREP_PPMBMP( kcell474, \"building\\pbm\\backstag\\tbth6_24.pbm\" )\nREP_PPMBMP( kcell475, \"building\\pbm\\backstag\\tbth6_25.pbm\" )\nREP_PPMBMP( kcell476, \"building\\pbm\\backstag\\tbth6_26.pbm\" )\nREP_PPMBMP( kcell477, \"building\\pbm\\backstag\\tbth6_27.pbm\" )\nREP_PPMBMP( kcell478, \"building\\pbm\\backstag\\tbth6_28.pbm\" )\nREP_PPMBMP( kcell479, \"building\\pbm\\backstag\\tbth6_29.pbm\" )\nREP_PPMBMP( kcell480, \"building\\pbm\\backstag\\tbth6_30.pbm\" )\nREP_PPMBMP( kcell481, \"building\\pbm\\backstag\\tbth6_31.pbm\" )\nREP_PPMBMP( kcell482, \"building\\pbm\\backstag\\tbth6_32.pbm\" )\nREP_PPMBMP( kcell483, \"building\\pbm\\backstag\\tbth6_33.pbm\" )\nREP_PPMBMP( kcell484, \"building\\pbm\\backstag\\tbth6_34.pbm\" )\n\nREP_PPMBMP( kcell501, \"building\\pbm\\backstag\\speak1.pbm\" )\nREP_PPMBMP( kcell502, \"building\\pbm\\backstag\\speak2.pbm\" )\nREP_PPMBMP( kcell503, \"building\\pbm\\backstag\\speak3.pbm\" )\nREP_PPMBMP( kcell504, \"building\\pbm\\backstag\\speak4.pbm\" )\nREP_PPMBMP( kcell505, \"building\\pbm\\backstag\\speak5.pbm\" )\nREP_PPMBMP( kcell506, \"building\\pbm\\backstag\\speak6.pbm\" )\nREP_PPMBMP( kcell507, \"building\\pbm\\backstag\\speak7.pbm\" )\nREP_PPMBMP( kcell508, \"building\\pbm\\backstag\\speak8.pbm\" )\nREP_PPMBMP( kcell509, \"building\\pbm\\backstag\\speak9.pbm\" )\nREP_PPMBMP( kcell510, \"building\\pbm\\backstag\\speak10.pbm\" )\nREP_PPMBMP( kcell511, \"building\\pbm\\backstag\\speak11.pbm\" )\nREP_PPMBMP( kcell512, \"building\\pbm\\backstag\\speak12.pbm\" )\nREP_PPMBMP( kcell513, \"building\\pbm\\backstag\\speak13.pbm\" )\nREP_PPMBMP( kcell514, \"building\\pbm\\backstag\\speak14.pbm\" )\nREP_PPMBMP( kcell515, \"building\\pbm\\backstag\\speak15.pbm\" )\nREP_PPMBMP( kcell516, \"building\\pbm\\backstag\\speak16.pbm\" )\nREP_PPMBMP( kcell517, \"building\\pbm\\backstag\\speak17.pbm\" )\nREP_PPMBMP( kcell518, \"building\\pbm\\backstag\\speak18.pbm\" )\nREP_PPMBMP( kcell519, \"building\\pbm\\backstag\\speak19.pbm\" )\nREP_PPMBMP( kcell520, \"building\\pbm\\backstag\\speak20.pbm\" )\n"
  },
  {
    "path": "src/building/mzinsp.seq",
    "content": "REP_PPMBMP( kcell1, \"building\\pbm\\inspirat\\lpmz1.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\inspirat\\lpmz2.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\inspirat\\lpmz3.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\inspirat\\lpmz4.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\inspirat\\lpmz5.pbm\" )\nREP_PPMBMP( kcell6, \"building\\pbm\\inspirat\\lpmz6.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\inspirat\\lpmz7.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\inspirat\\lpmz8.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\inspirat\\lpmz9.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\inspirat\\lpmz10.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\inspirat\\lpmz11.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\inspirat\\lpmz12.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\inspirat\\lpmz13.pbm\" )\nREP_PPMBMP( kcell14, \"building\\pbm\\inspirat\\lpmz14.pbm\" )\nREP_PPMBMP( kcell15, \"building\\pbm\\inspirat\\lpmz15.pbm\" )\nREP_PPMBMP( kcell16, \"building\\pbm\\inspirat\\lpmz16.pbm\" )\nREP_PPMBMP( kcell17, \"building\\pbm\\inspirat\\lpmz17.pbm\" )\nREP_PPMBMP( kcell18, \"building\\pbm\\inspirat\\lpmz18.pbm\" )\nREP_PPMBMP( kcell19, \"building\\pbm\\inspirat\\lpmz19.pbm\" )\nREP_PPMBMP( kcell20, \"building\\pbm\\inspirat\\lpmz20.pbm\" )\nREP_PPMBMP( kcell21, \"building\\pbm\\inspirat\\lpmz21.pbm\" )\nREP_PPMBMP( kcell22, \"building\\pbm\\inspirat\\lpmz22.pbm\" )\nREP_PPMBMP( kcell23, \"building\\pbm\\inspirat\\lpmz23.pbm\" )\nREP_PPMBMP( kcell24, \"building\\pbm\\inspirat\\lpmz24.pbm\" )\nREP_PPMBMP( kcell25, \"building\\pbm\\inspirat\\lpmz25.pbm\" )\nREP_PPMBMP( kcell26, \"building\\pbm\\inspirat\\lpmz26.pbm\" )\nREP_PPMBMP( kcell27, \"building\\pbm\\inspirat\\lpmz27.pbm\" )\nREP_PPMBMP( kcell28, \"building\\pbm\\inspirat\\lpmz28.pbm\" )\nREP_PPMBMP( kcell29, \"building\\pbm\\inspirat\\lpmz29.pbm\" )\nREP_PPMBMP( kcell30, \"building\\pbm\\inspirat\\lpmz30.pbm\" )\nREP_PPMBMP( kcell31, \"building\\pbm\\inspirat\\lpmz31.pbm\" )\nREP_PPMBMP( kcell32, \"building\\pbm\\inspirat\\lpmz32.pbm\" )\nREP_PPMBMP( kcell33, \"building\\pbm\\inspirat\\lpmz33.pbm\" )\nREP_PPMBMP( kcell34, \"building\\pbm\\inspirat\\lpmz34.pbm\" )\nREP_PPMBMP( kcell35, \"building\\pbm\\inspirat\\lpmz35.pbm\" )\nREP_PPMBMP( kcell36, \"building\\pbm\\inspirat\\lpmz36.pbm\" )\nREP_PPMBMP( kcell37, \"building\\pbm\\inspirat\\lpmz37.pbm\" )\nREP_PPMBMP( kcell38, \"building\\pbm\\inspirat\\lpmz38.pbm\" )\nREP_PPMBMP( kcell39, \"building\\pbm\\inspirat\\lpmz39.pbm\" )\nREP_PPMBMP( kcell40, \"building\\pbm\\inspirat\\lpmz40.pbm\" )\nREP_PPMBMP( kcell41, \"building\\pbm\\inspirat\\lpmz41.pbm\" )\nREP_PPMBMP( kcell42, \"building\\pbm\\inspirat\\lpmz42.pbm\" )\nREP_PPMBMP( kcell43, \"building\\pbm\\inspirat\\lpmz43.pbm\" )\nREP_PPMBMP( kcell44, \"building\\pbm\\inspirat\\lpmz44.pbm\" )\nREP_PPMBMP( kcell45, \"building\\pbm\\inspirat\\lpmz45.pbm\" )\nREP_PPMBMP( kcell46, \"building\\pbm\\inspirat\\lpmz46.pbm\" )\nREP_PPMBMP( kcell47, \"building\\pbm\\inspirat\\lpmz47.pbm\" )\n\nREP_PPMBMP( kcell100, \"building\\pbm\\inspirat\\sq2mz1.pbm\" )\nREP_PPMBMP( kcell101, \"building\\pbm\\inspirat\\sq2mz2.pbm\" )\nREP_PPMBMP( kcell102, \"building\\pbm\\inspirat\\sq2mz3.pbm\" )\nREP_PPMBMP( kcell103, \"building\\pbm\\inspirat\\sq2mz4.pbm\" )\nREP_PPMBMP( kcell104, \"building\\pbm\\inspirat\\sq2mz5.pbm\" )\nREP_PPMBMP( kcell105, \"building\\pbm\\inspirat\\sq2mz6.pbm\" )\nREP_PPMBMP( kcell106, \"building\\pbm\\inspirat\\sq2mz7.pbm\" )\nREP_PPMBMP( kcell107, \"building\\pbm\\inspirat\\sq2mz8.pbm\" )\nREP_PPMBMP( kcell108, \"building\\pbm\\inspirat\\sq2mz9.pbm\" )\nREP_PPMBMP( kcell109, \"building\\pbm\\inspirat\\sq2mz10.pbm\" )\nREP_PPMBMP( kcell110, \"building\\pbm\\inspirat\\sq2mz11.pbm\" )\nREP_PPMBMP( kcell111, \"building\\pbm\\inspirat\\sq2mz12.pbm\" )\nREP_PPMBMP( kcell112, \"building\\pbm\\inspirat\\sq2mz13.pbm\" )\nREP_PPMBMP( kcell113, \"building\\pbm\\inspirat\\sq2mz14.pbm\" )\nREP_PPMBMP( kcell114, \"building\\pbm\\inspirat\\sq2mz15.pbm\" )\nREP_PPMBMP( kcell115, \"building\\pbm\\inspirat\\sq2mz16.pbm\" )\nREP_PPMBMP( kcell116, \"building\\pbm\\inspirat\\sq2mz17.pbm\" )\nREP_PPMBMP( kcell117, \"building\\pbm\\inspirat\\sq2mz18.pbm\" )\nREP_PPMBMP( kcell118, \"building\\pbm\\inspirat\\sq2mz19.pbm\" )\nREP_PPMBMP( kcell119, \"building\\pbm\\inspirat\\sq2mz20.pbm\" )\nREP_PPMBMP( kcell120, \"building\\pbm\\inspirat\\sq2mz21.pbm\" )\nREP_PPMBMP( kcell121, \"building\\pbm\\inspirat\\sq2mz22.pbm\" )\nREP_PPMBMP( kcell122, \"building\\pbm\\inspirat\\sq2mz23.pbm\" )\nREP_PPMBMP( kcell123, \"building\\pbm\\inspirat\\sq2mz24.pbm\" )\nREP_PPMBMP( kcell124, \"building\\pbm\\inspirat\\sq2mz25.pbm\" )\nREP_PPMBMP( kcell125, \"building\\pbm\\inspirat\\sq2mz26.pbm\" )\nREP_PPMBMP( kcell126, \"building\\pbm\\inspirat\\sq2mz27.pbm\" )\nREP_PPMBMP( kcell127, \"building\\pbm\\inspirat\\sq2mz28.pbm\" )\nREP_PPMBMP( kcell128, \"building\\pbm\\inspirat\\sq2mz29.pbm\" )\nREP_PPMBMP( kcell129, \"building\\pbm\\inspirat\\sq2mz30.pbm\" )\nREP_PPMBMP( kcell130, \"building\\pbm\\inspirat\\sq2mz31.pbm\" )\nREP_PPMBMP( kcell131, \"building\\pbm\\inspirat\\sq2mz32.pbm\" )\nREP_PPMBMP( kcell132, \"building\\pbm\\inspirat\\sq2mz33.pbm\" )\nREP_PPMBMP( kcell133, \"building\\pbm\\inspirat\\sq2mz34.pbm\" )\nREP_PPMBMP( kcell134, \"building\\pbm\\inspirat\\sq2mz35.pbm\" )\nREP_PPMBMP( kcell135, \"building\\pbm\\inspirat\\sq2mz36.pbm\" )\nREP_PPMBMP( kcell136, \"building\\pbm\\inspirat\\sq2mz37.pbm\" )\nREP_PPMBMP( kcell137, \"building\\pbm\\inspirat\\sq2mz38.pbm\" )\nREP_PPMBMP( kcell138, \"building\\pbm\\inspirat\\sq2mz39.pbm\" )\nREP_PPMBMP( kcell139, \"building\\pbm\\inspirat\\sq2mz40.pbm\" )\nREP_PPMBMP( kcell140, \"building\\pbm\\inspirat\\sq2mz41.pbm\" )\nREP_PPMBMP( kcell141, \"building\\pbm\\inspirat\\sq2mz42.pbm\" )\nREP_PPMBMP( kcell142, \"building\\pbm\\inspirat\\sq2mz43.pbm\" )\nREP_PPMBMP( kcell143, \"building\\pbm\\inspirat\\sq2mz44.pbm\" )\nREP_PPMBMP( kcell144, \"building\\pbm\\inspirat\\sq2mz45.pbm\" )\nREP_PPMBMP( kcell145, \"building\\pbm\\inspirat\\sq2mz46.pbm\" )\nREP_PPMBMP( kcell146, \"building\\pbm\\inspirat\\sq2mz47.pbm\" )\nREP_PPMBMP( kcell147, \"building\\pbm\\inspirat\\sq2mz48.pbm\" )\nREP_PPMBMP( kcell148, \"building\\pbm\\inspirat\\sq2mz49.pbm\" )\nREP_PPMBMP( kcell149, \"building\\pbm\\inspirat\\sq2mz50.pbm\" )\nREP_PPMBMP( kcell150, \"building\\pbm\\inspirat\\sq2mz51.pbm\" )\nREP_PPMBMP( kcell151, \"building\\pbm\\inspirat\\sq2mz52.pbm\" )\nREP_PPMBMP( kcell152, \"building\\pbm\\inspirat\\sq2mz53.pbm\" )\nREP_PPMBMP( kcell153, \"building\\pbm\\inspirat\\sq2mz54.pbm\" )\nREP_PPMBMP( kcell154, \"building\\pbm\\inspirat\\sq2mz55.pbm\" )\nREP_PPMBMP( kcell155, \"building\\pbm\\inspirat\\sq2mz56.pbm\" )\nREP_PPMBMP( kcell156, \"building\\pbm\\inspirat\\sq2mz57.pbm\" )\nREP_PPMBMP( kcell157, \"building\\pbm\\inspirat\\sq2mz58.pbm\" )\nREP_PPMBMP( kcell158, \"building\\pbm\\inspirat\\sq2mz59.pbm\" )\nREP_PPMBMP( kcell159, \"building\\pbm\\inspirat\\sq2mz60.pbm\" )\nREP_PPMBMP( kcell160, \"building\\pbm\\inspirat\\sq2mz61.pbm\" )\nREP_PPMBMP( kcell161, \"building\\pbm\\inspirat\\sq2mz62.pbm\" )\nREP_PPMBMP( kcell162, \"building\\pbm\\inspirat\\sq2mz63.pbm\" )\nREP_PPMBMP( kcell163, \"building\\pbm\\inspirat\\sq2mz64.pbm\" )\nREP_PPMBMP( kcell164, \"building\\pbm\\inspirat\\sq2mz65.pbm\" )\nREP_PPMBMP( kcell165, \"building\\pbm\\inspirat\\sq2mz66.pbm\" )\nREP_PPMBMP( kcell166, \"building\\pbm\\inspirat\\sq2mz67.pbm\" )\nREP_PPMBMP( kcell167, \"building\\pbm\\inspirat\\sq2mz68.pbm\" )\nREP_PPMBMP( kcell168, \"building\\pbm\\inspirat\\sq2mz69.pbm\" )\nREP_PPMBMP( kcell169, \"building\\pbm\\inspirat\\sq2mz70.pbm\" )\nREP_PPMBMP( kcell170, \"building\\pbm\\inspirat\\sq2mz71.pbm\" )\nREP_PPMBMP( kcell171, \"building\\pbm\\inspirat\\sq2mz72.pbm\" )\nREP_PPMBMP( kcell172, \"building\\pbm\\inspirat\\sq2mz73.pbm\" )\nREP_PPMBMP( kcell173, \"building\\pbm\\inspirat\\sq2mz74.pbm\" )\nREP_PPMBMP( kcell174, \"building\\pbm\\inspirat\\sq2mz75.pbm\" )\nREP_PPMBMP( kcell175, \"building\\pbm\\inspirat\\sq2mz76.pbm\" )\nREP_PPMBMP( kcell176, \"building\\pbm\\inspirat\\sq2mz77.pbm\" )\nREP_PPMBMP( kcell177, \"building\\pbm\\inspirat\\sq2mz78.pbm\" )\nREP_PPMBMP( kcell178, \"building\\pbm\\inspirat\\sq2mz79.pbm\" )\nREP_PPMBMP( kcell179, \"building\\pbm\\inspirat\\sq2mz80.pbm\" )\nREP_PPMBMP( kcell180, \"building\\pbm\\inspirat\\sq2mz81.pbm\" )\nREP_PPMBMP( kcell181, \"building\\pbm\\inspirat\\sq2mz82.pbm\" )\nREP_PPMBMP( kcell182, \"building\\pbm\\inspirat\\sq2mz83.pbm\" )\nREP_PPMBMP( kcell183, \"building\\pbm\\inspirat\\sq2mz84.pbm\" )\nREP_PPMBMP( kcell184, \"building\\pbm\\inspirat\\sq2mz85.pbm\" )\nREP_PPMBMP( kcell185, \"building\\pbm\\inspirat\\sq2mz86.pbm\" )\nREP_PPMBMP( kcell186, \"building\\pbm\\inspirat\\sq2mz87.pbm\" )\nREP_PPMBMP( kcell187, \"building\\pbm\\inspirat\\sq2mz88.pbm\" )\nREP_PPMBMP( kcell188, \"building\\pbm\\inspirat\\sq2mz89.pbm\" )\nREP_PPMBMP( kcell189, \"building\\pbm\\inspirat\\sq2mz90.pbm\" )\nREP_PPMBMP( kcell190, \"building\\pbm\\inspirat\\sq2mz91.pbm\" )\nREP_PPMBMP( kcell191, \"building\\pbm\\inspirat\\sq2mz92.pbm\" )\nREP_PPMBMP( kcell192, \"building\\pbm\\inspirat\\sq2mz93.pbm\" )\nREP_PPMBMP( kcell193, \"building\\pbm\\inspirat\\sq2mz94.pbm\" )\nREP_PPMBMP( kcell194, \"building\\pbm\\inspirat\\sq2mz95.pbm\" )\nREP_PPMBMP( kcell195, \"building\\pbm\\inspirat\\sq2mz96.pbm\" )\nREP_PPMBMP( kcell196, \"building\\pbm\\inspirat\\sq2mz97.pbm\" )\nREP_PPMBMP( kcell197, \"building\\pbm\\inspirat\\sq2mz98.pbm\" )\nREP_PPMBMP( kcell198, \"building\\pbm\\inspirat\\sq2mz99.pbm\" )\nREP_PPMBMP( kcell199, \"building\\pbm\\inspirat\\sq2mz100.pbm\" )\nREP_PPMBMP( kcell200, \"building\\pbm\\inspirat\\sq2mz101.pbm\" )\nREP_PPMBMP( kcell201, \"building\\pbm\\inspirat\\sq2mz102.pbm\" )\nREP_PPMBMP( kcell202, \"building\\pbm\\inspirat\\sq2mz103.pbm\" )\nREP_PPMBMP( kcell203, \"building\\pbm\\inspirat\\sq2mz104.pbm\" )\nREP_PPMBMP( kcell204, \"building\\pbm\\inspirat\\sq2mz105.pbm\" )\nREP_PPMBMP( kcell205, \"building\\pbm\\inspirat\\sq2mz106.pbm\" )\nREP_PPMBMP( kcell206, \"building\\pbm\\inspirat\\sq2mz107.pbm\" )\nREP_PPMBMP( kcell207, \"building\\pbm\\inspirat\\sq2mz108.pbm\" )\nREP_PPMBMP( kcell208, \"building\\pbm\\inspirat\\sq2mz109.pbm\" )\nREP_PPMBMP( kcell209, \"building\\pbm\\inspirat\\sq2mz110.pbm\" )\nREP_PPMBMP( kcell210, \"building\\pbm\\inspirat\\sq2mz111.pbm\" )\nREP_PPMBMP( kcell211, \"building\\pbm\\inspirat\\sq2mz112.pbm\" )\nREP_PPMBMP( kcell212, \"building\\pbm\\inspirat\\sq2mz113.pbm\" )\nREP_PPMBMP( kcell213, \"building\\pbm\\inspirat\\sq2mz114.pbm\" )\nREP_PPMBMP( kcell214, \"building\\pbm\\inspirat\\sq2mz115.pbm\" )\nREP_PPMBMP( kcell215, \"building\\pbm\\inspirat\\sq2mz116.pbm\" )\nREP_PPMBMP( kcell216, \"building\\pbm\\inspirat\\sq2mz117.pbm\" )\nREP_PPMBMP( kcell217, \"building\\pbm\\inspirat\\sq2mz118.pbm\" )\nREP_PPMBMP( kcell218, \"building\\pbm\\inspirat\\sq2mz119.pbm\" )\nREP_PPMBMP( kcell219, \"building\\pbm\\inspirat\\sq2mz120.pbm\" )\nREP_PPMBMP( kcell220, \"building\\pbm\\inspirat\\sq2mz121.pbm\" )\nREP_PPMBMP( kcell221, \"building\\pbm\\inspirat\\sq2mz122.pbm\" )\nREP_PPMBMP( kcell222, \"building\\pbm\\inspirat\\sq2mz123.pbm\" )\nREP_PPMBMP( kcell223, \"building\\pbm\\inspirat\\sq2mz124.pbm\" )\nREP_PPMBMP( kcell224, \"building\\pbm\\inspirat\\sq2mz125.pbm\" )\nREP_PPMBMP( kcell225, \"building\\pbm\\inspirat\\sq2mz126.pbm\" )\nREP_PPMBMP( kcell226, \"building\\pbm\\inspirat\\sq2mz127.pbm\" )\nREP_PPMBMP( kcell227, \"building\\pbm\\inspirat\\sq2mz128.pbm\" )\nREP_PPMBMP( kcell228, \"building\\pbm\\inspirat\\sq2mz129.pbm\" )\nREP_PPMBMP( kcell229, \"building\\pbm\\inspirat\\sq2mz130.pbm\" )\nREP_PPMBMP( kcell230, \"building\\pbm\\inspirat\\sq2mz131.pbm\" )\nREP_PPMBMP( kcell231, \"building\\pbm\\inspirat\\sq2mz132.pbm\" )\nREP_PPMBMP( kcell232, \"building\\pbm\\inspirat\\sq2mz133.pbm\" )\nREP_PPMBMP( kcell233, \"building\\pbm\\inspirat\\sq2mz134.pbm\" )\nREP_PPMBMP( kcell234, \"building\\pbm\\inspirat\\sq2mz135.pbm\" )\nREP_PPMBMP( kcell235, \"building\\pbm\\inspirat\\sq2mz136.pbm\" )\nREP_PPMBMP( kcell236, \"building\\pbm\\inspirat\\sq2mz137.pbm\" )\nREP_PPMBMP( kcell237, \"building\\pbm\\inspirat\\sq2mz138.pbm\" )\nREP_PPMBMP( kcell238, \"building\\pbm\\inspirat\\sq2mz139.pbm\" )\nREP_PPMBMP( kcell239, \"building\\pbm\\inspirat\\sq2mz140.pbm\" )\nREP_PPMBMP( kcell240, \"building\\pbm\\inspirat\\sq2mz141.pbm\" )\nREP_PPMBMP( kcell241, \"building\\pbm\\inspirat\\sq2mz142.pbm\" )\nREP_PPMBMP( kcell242, \"building\\pbm\\inspirat\\sq2mz143.pbm\" )\nREP_PPMBMP( kcell243, \"building\\pbm\\inspirat\\sq2mz144.pbm\" )\nREP_PPMBMP( kcell244, \"building\\pbm\\inspirat\\sq2mz145.pbm\" )\nREP_PPMBMP( kcell245, \"building\\pbm\\inspirat\\sq2mz146.pbm\" )\nREP_PPMBMP( kcell246, \"building\\pbm\\inspirat\\sq2mz147.pbm\" )\nREP_PPMBMP( kcell247, \"building\\pbm\\inspirat\\sq2mz148.pbm\" )\nREP_PPMBMP( kcell248, \"building\\pbm\\inspirat\\sq2mz149.pbm\" )\nREP_PPMBMP( kcell249, \"building\\pbm\\inspirat\\sq2mz150.pbm\" )\nREP_PPMBMP( kcell250, \"building\\pbm\\inspirat\\sq2mz151.pbm\" )\nREP_PPMBMP( kcell251, \"building\\pbm\\inspirat\\sq2mz152.pbm\" )\nREP_PPMBMP( kcell252, \"building\\pbm\\inspirat\\sq2mz153.pbm\" )\nREP_PPMBMP( kcell253, \"building\\pbm\\inspirat\\sq2mz154.pbm\" )\nREP_PPMBMP( kcell254, \"building\\pbm\\inspirat\\sq2mz155.pbm\" )\nREP_PPMBMP( kcell255, \"building\\pbm\\inspirat\\sq2mz156.pbm\" )\nREP_PPMBMP( kcell256, \"building\\pbm\\inspirat\\sq2mz157.pbm\" )\nREP_PPMBMP( kcell257, \"building\\pbm\\inspirat\\sq2mz158.pbm\" )\nREP_PPMBMP( kcell258, \"building\\pbm\\inspirat\\sq2mz159.pbm\" )\nREP_PPMBMP( kcell259, \"building\\pbm\\inspirat\\sq2mz160.pbm\" )\nREP_PPMBMP( kcell260, \"building\\pbm\\inspirat\\sq2mz161.pbm\" )\nREP_PPMBMP( kcell261, \"building\\pbm\\inspirat\\sq2mz162.pbm\" )\nREP_PPMBMP( kcell262, \"building\\pbm\\inspirat\\sq2mz163.pbm\" )\nREP_PPMBMP( kcell263, \"building\\pbm\\inspirat\\sq2mz164.pbm\" )\nREP_PPMBMP( kcell264, \"building\\pbm\\inspirat\\sq2mz165.pbm\" )\nREP_PPMBMP( kcell265, \"building\\pbm\\inspirat\\sq2mz166.pbm\" )\nREP_PPMBMP( kcell266, \"building\\pbm\\inspirat\\sq2mz167.pbm\" )\nREP_PPMBMP( kcell267, \"building\\pbm\\inspirat\\sq2mz168.pbm\" )\nREP_PPMBMP( kcell268, \"building\\pbm\\inspirat\\sq2mz169.pbm\" )\nREP_PPMBMP( kcell269, \"building\\pbm\\inspirat\\sq2mz170.pbm\" )\nREP_PPMBMP( kcell270, \"building\\pbm\\inspirat\\sq2mz171.pbm\" )\nREP_PPMBMP( kcell271, \"building\\pbm\\inspirat\\sq2mz172.pbm\" )\nREP_PPMBMP( kcell272, \"building\\pbm\\inspirat\\sq2mz173.pbm\" )\nREP_PPMBMP( kcell273, \"building\\pbm\\inspirat\\sq2mz174.pbm\" )\nREP_PPMBMP( kcell274, \"building\\pbm\\inspirat\\sq2mz175.pbm\" )\nREP_PPMBMP( kcell275, \"building\\pbm\\inspirat\\sq2mz176.pbm\" )\nREP_PPMBMP( kcell276, \"building\\pbm\\inspirat\\sq2mz177.pbm\" )\nREP_PPMBMP( kcell277, \"building\\pbm\\inspirat\\sq2mz178.pbm\" )\nREP_PPMBMP( kcell278, \"building\\pbm\\inspirat\\sq2mz179.pbm\" )\nREP_PPMBMP( kcell279, \"building\\pbm\\inspirat\\sq2mz180.pbm\" )\nREP_PPMBMP( kcell280, \"building\\pbm\\inspirat\\sq2mz181.pbm\" )\nREP_PPMBMP( kcell281, \"building\\pbm\\inspirat\\sq2mz182.pbm\" )\nREP_PPMBMP( kcell282, \"building\\pbm\\inspirat\\sq2mz183.pbm\" )\nREP_PPMBMP( kcell283, \"building\\pbm\\inspirat\\sq2mz184.pbm\" )\nREP_PPMBMP( kcell284, \"building\\pbm\\inspirat\\sq2mz185.pbm\" )\nREP_PPMBMP( kcell285, \"building\\pbm\\inspirat\\sq2mz186.pbm\" )\nREP_PPMBMP( kcell286, \"building\\pbm\\inspirat\\sq2mz187.pbm\" )\nREP_PPMBMP( kcell287, \"building\\pbm\\inspirat\\sq2mz188.pbm\" )\nREP_PPMBMP( kcell288, \"building\\pbm\\inspirat\\sq2mz189.pbm\" )\nREP_PPMBMP( kcell289, \"building\\pbm\\inspirat\\sq2mz190.pbm\" )\nREP_PPMBMP( kcell290, \"building\\pbm\\inspirat\\sq2mz191.pbm\" )\nREP_PPMBMP( kcell291, \"building\\pbm\\inspirat\\sq2mz192.pbm\" )\nREP_PPMBMP( kcell292, \"building\\pbm\\inspirat\\sq2mz193.pbm\" )\nREP_PPMBMP( kcell293, \"building\\pbm\\inspirat\\sq2mz194.pbm\" )\nREP_PPMBMP( kcell294, \"building\\pbm\\inspirat\\sq2mz195.pbm\" )\nREP_PPMBMP( kcell295, \"building\\pbm\\inspirat\\sq2mz196.pbm\" )\nREP_PPMBMP( kcell296, \"building\\pbm\\inspirat\\sq2mz197.pbm\" )\nREP_PPMBMP( kcell297, \"building\\pbm\\inspirat\\sq2mz198.pbm\" )\nREP_PPMBMP( kcell298, \"building\\pbm\\inspirat\\sq2mz199.pbm\" )\nREP_PPMBMP( kcell299, \"building\\pbm\\inspirat\\sq2mz200.pbm\" )\nREP_PPMBMP( kcell300, \"building\\pbm\\inspirat\\sq2mz201.pbm\" )\n\nREP_PPMBMP( kcell350, \"building\\pbm\\inspirat\\sq3mz1.pbm\" )\nREP_PPMBMP( kcell351, \"building\\pbm\\inspirat\\sq3mz2.pbm\" )\nREP_PPMBMP( kcell352, \"building\\pbm\\inspirat\\sq3mz3.pbm\" )\nREP_PPMBMP( kcell353, \"building\\pbm\\inspirat\\sq3mz4.pbm\" )\nREP_PPMBMP( kcell354, \"building\\pbm\\inspirat\\sq3mz5.pbm\" )\nREP_PPMBMP( kcell355, \"building\\pbm\\inspirat\\sq3mz6.pbm\" )\nREP_PPMBMP( kcell356, \"building\\pbm\\inspirat\\sq3mz7.pbm\" )\nREP_PPMBMP( kcell357, \"building\\pbm\\inspirat\\sq3mz8.pbm\" )\nREP_PPMBMP( kcell358, \"building\\pbm\\inspirat\\sq3mz9.pbm\" )\nREP_PPMBMP( kcell359, \"building\\pbm\\inspirat\\sq3mz10.pbm\" )\nREP_PPMBMP( kcell360, \"building\\pbm\\inspirat\\sq3mz11.pbm\" )\nREP_PPMBMP( kcell361, \"building\\pbm\\inspirat\\sq3mz12.pbm\" )\nREP_PPMBMP( kcell362, \"building\\pbm\\inspirat\\sq3mz13.pbm\" )\nREP_PPMBMP( kcell363, \"building\\pbm\\inspirat\\sq3mz14.pbm\" )\nREP_PPMBMP( kcell364, \"building\\pbm\\inspirat\\sq3mz15.pbm\" )\nREP_PPMBMP( kcell365, \"building\\pbm\\inspirat\\sq3mz16.pbm\" )\nREP_PPMBMP( kcell366, \"building\\pbm\\inspirat\\sq3mz17.pbm\" )\nREP_PPMBMP( kcell367, \"building\\pbm\\inspirat\\sq3mz18.pbm\" )\nREP_PPMBMP( kcell368, \"building\\pbm\\inspirat\\sq3mz19.pbm\" )\nREP_PPMBMP( kcell369, \"building\\pbm\\inspirat\\sq3mz20.pbm\" )\nREP_PPMBMP( kcell370, \"building\\pbm\\inspirat\\sq3mz21.pbm\" )\nREP_PPMBMP( kcell371, \"building\\pbm\\inspirat\\sq3mz22.pbm\" )\nREP_PPMBMP( kcell372, \"building\\pbm\\inspirat\\sq3mz23.pbm\" )\nREP_PPMBMP( kcell373, \"building\\pbm\\inspirat\\sq3mz24.pbm\" )\nREP_PPMBMP( kcell374, \"building\\pbm\\inspirat\\sq3mz25.pbm\" )\nREP_PPMBMP( kcell375, \"building\\pbm\\inspirat\\sq3mz26.pbm\" )\nREP_PPMBMP( kcell376, \"building\\pbm\\inspirat\\sq3mz27.pbm\" )\nREP_PPMBMP( kcell377, \"building\\pbm\\inspirat\\sq3mz28.pbm\" )\nREP_PPMBMP( kcell378, \"building\\pbm\\inspirat\\sq3mz29.pbm\" )\nREP_PPMBMP( kcell379, \"building\\pbm\\inspirat\\sq3mz30.pbm\" )\nREP_PPMBMP( kcell380, \"building\\pbm\\inspirat\\sq3mz31.pbm\" )\nREP_PPMBMP( kcell381, \"building\\pbm\\inspirat\\sq3mz32.pbm\" )\n\nREP_PPMBMP( kcell400, \"building\\pbm\\inspirat\\sq4mz1.pbm\" )\nREP_PPMBMP( kcell401, \"building\\pbm\\inspirat\\sq4mz2.pbm\" )\nREP_PPMBMP( kcell402, \"building\\pbm\\inspirat\\sq4mz3.pbm\" )\nREP_PPMBMP( kcell403, \"building\\pbm\\inspirat\\sq4mz4.pbm\" )\nREP_PPMBMP( kcell404, \"building\\pbm\\inspirat\\sq4mz5.pbm\" )\nREP_PPMBMP( kcell405, \"building\\pbm\\inspirat\\sq4mz6.pbm\" )\nREP_PPMBMP( kcell406, \"building\\pbm\\inspirat\\sq4mz7.pbm\" )\nREP_PPMBMP( kcell407, \"building\\pbm\\inspirat\\sq4mz8.pbm\" )\nREP_PPMBMP( kcell408, \"building\\pbm\\inspirat\\sq4mz9.pbm\" )\nREP_PPMBMP( kcell409, \"building\\pbm\\inspirat\\sq4mz10.pbm\" )\nREP_PPMBMP( kcell410, \"building\\pbm\\inspirat\\sq4mz11.pbm\" )\nREP_PPMBMP( kcell411, \"building\\pbm\\inspirat\\sq4mz12.pbm\" )\nREP_PPMBMP( kcell412, \"building\\pbm\\inspirat\\sq4mz13.pbm\" )\nREP_PPMBMP( kcell413, \"building\\pbm\\inspirat\\sq4mz14.pbm\" )\nREP_PPMBMP( kcell414, \"building\\pbm\\inspirat\\sq4mz15.pbm\" )\nREP_PPMBMP( kcell415, \"building\\pbm\\inspirat\\sq4mz16.pbm\" )\nREP_PPMBMP( kcell416, \"building\\pbm\\inspirat\\sq4mz17.pbm\" )\nREP_PPMBMP( kcell417, \"building\\pbm\\inspirat\\sq4mz18.pbm\" )\nREP_PPMBMP( kcell418, \"building\\pbm\\inspirat\\sq4mz19.pbm\" )\nREP_PPMBMP( kcell419, \"building\\pbm\\inspirat\\sq4mz20.pbm\" )\nREP_PPMBMP( kcell420, \"building\\pbm\\inspirat\\sq4mz21.pbm\" )\nREP_PPMBMP( kcell421, \"building\\pbm\\inspirat\\sq4mz22.pbm\" )\nREP_PPMBMP( kcell422, \"building\\pbm\\inspirat\\sq4mz23.pbm\" )\nREP_PPMBMP( kcell423, \"building\\pbm\\inspirat\\sq4mz24.pbm\" )\nREP_PPMBMP( kcell424, \"building\\pbm\\inspirat\\sq4mz25.pbm\" )\nREP_PPMBMP( kcell425, \"building\\pbm\\inspirat\\sq4mz26.pbm\" )\nREP_PPMBMP( kcell426, \"building\\pbm\\inspirat\\sq4mz27.pbm\" )\nREP_PPMBMP( kcell427, \"building\\pbm\\inspirat\\sq4mz28.pbm\" )\nREP_PPMBMP( kcell428, \"building\\pbm\\inspirat\\sq4mz29.pbm\" )\nREP_PPMBMP( kcell429, \"building\\pbm\\inspirat\\sq4mz30.pbm\" )\n"
  },
  {
    "path": "src/building/mzlobby.seq",
    "content": "// Animation sequence for l1mz in lobby, on unicycle.\n// \n\n// PPMBMP = pre packed.\n\nREP_PPMBMP( kcell10, \"building\\pbm\\lobby\\l1mz10.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\lobby\\l1mz11.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\lobby\\l1mz12.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\lobby\\l1mz13.pbm\" )\nREP_PPMBMP( kcell14, \"building\\pbm\\lobby\\l1mz14.pbm\" )\nREP_PPMBMP( kcell15, \"building\\pbm\\lobby\\l1mz15.pbm\" )\nREP_PPMBMP( kcell16, \"building\\pbm\\lobby\\l1mz16.pbm\" )\nREP_PPMBMP( kcell17, \"building\\pbm\\lobby\\l1mz17.pbm\" )\nREP_PPMBMP( kcell18, \"building\\pbm\\lobby\\l1mz18.pbm\" )\nREP_PPMBMP( kcell19, \"building\\pbm\\lobby\\l1mz19.pbm\" )\nREP_PPMBMP( kcell20, \"building\\pbm\\lobby\\l1mz20.pbm\" )\nREP_PPMBMP( kcell21, \"building\\pbm\\lobby\\l1mz21.pbm\" )\nREP_PPMBMP( kcell22, \"building\\pbm\\lobby\\l1mz22.pbm\" )\nREP_PPMBMP( kcell23, \"building\\pbm\\lobby\\l1mz23.pbm\" )\nREP_PPMBMP( kcell24, \"building\\pbm\\lobby\\l1mz24.pbm\" )\nREP_PPMBMP( kcell25, \"building\\pbm\\lobby\\l1mz25.pbm\" )\nREP_PPMBMP( kcell26, \"building\\pbm\\lobby\\l1mz26.pbm\" )\nREP_PPMBMP( kcell27, \"building\\pbm\\lobby\\l1mz27.pbm\" )\nREP_PPMBMP( kcell28, \"building\\pbm\\lobby\\l1mz28.pbm\" )\nREP_PPMBMP( kcell29, \"building\\pbm\\lobby\\l1mz29.pbm\" )\nREP_PPMBMP( kcell30, \"building\\pbm\\lobby\\l1mz30.pbm\" )\nREP_PPMBMP( kcell31, \"building\\pbm\\lobby\\l1mz31.pbm\" )\nREP_PPMBMP( kcell32, \"building\\pbm\\lobby\\l1mz32.pbm\" )\nREP_PPMBMP( kcell33, \"building\\pbm\\lobby\\l1mz33.pbm\" )\nREP_PPMBMP( kcell34, \"building\\pbm\\lobby\\l1mz34.pbm\" )\nREP_PPMBMP( kcell35, \"building\\pbm\\lobby\\l1mz35.pbm\" )\nREP_PPMBMP( kcell36, \"building\\pbm\\lobby\\l1mz36.pbm\" )\nREP_PPMBMP( kcell37, \"building\\pbm\\lobby\\l1mz37.pbm\" )\nREP_PPMBMP( kcell38, \"building\\pbm\\lobby\\l1mz38.pbm\" )\nREP_PPMBMP( kcell39, \"building\\pbm\\lobby\\l1mz39.pbm\" )\nREP_PPMBMP( kcell40, \"building\\pbm\\lobby\\l1mz40.pbm\" )\nREP_PPMBMP( kcell41, \"building\\pbm\\lobby\\l1mz41.pbm\" )\nREP_PPMBMP( kcell42, \"building\\pbm\\lobby\\l1mz42.pbm\" )\nREP_PPMBMP( kcell43, \"building\\pbm\\lobby\\l1mz43.pbm\" )\nREP_PPMBMP( kcell44, \"building\\pbm\\lobby\\l1mz44.pbm\" )\nREP_PPMBMP( kcell45, \"building\\pbm\\lobby\\l1mz45.pbm\" )\nREP_PPMBMP( kcell46, \"building\\pbm\\lobby\\l1mz46.pbm\" )\nREP_PPMBMP( kcell47, \"building\\pbm\\lobby\\l1mz47.pbm\" )\nREP_PPMBMP( kcell48, \"building\\pbm\\lobby\\l1mz48.pbm\" )\nREP_PPMBMP( kcell49, \"building\\pbm\\lobby\\l1mz49.pbm\" )\nREP_PPMBMP( kcell50, \"building\\pbm\\lobby\\l1mz50.pbm\" )\nREP_PPMBMP( kcell51, \"building\\pbm\\lobby\\l1mz51.pbm\" )\nREP_PPMBMP( kcell52, \"building\\pbm\\lobby\\l1mz52.pbm\" )\nREP_PPMBMP( kcell53, \"building\\pbm\\lobby\\l1mz53.pbm\" )\nREP_PPMBMP( kcell54, \"building\\pbm\\lobby\\l1mz54.pbm\" )\nREP_PPMBMP( kcell55, \"building\\pbm\\lobby\\l1mz55.pbm\" )\nREP_PPMBMP( kcell56, \"building\\pbm\\lobby\\l1mz56.pbm\" )\nREP_PPMBMP( kcell57, \"building\\pbm\\lobby\\l1mz57.pbm\" )\nREP_PPMBMP( kcell58, \"building\\pbm\\lobby\\l1mz58.pbm\" )\nREP_PPMBMP( kcell59, \"building\\pbm\\lobby\\l1mz59.pbm\" )\nREP_PPMBMP( kcell60, \"building\\pbm\\lobby\\l1mz60.pbm\" )\nREP_PPMBMP( kcell61, \"building\\pbm\\lobby\\l1mz61.pbm\" )\nREP_PPMBMP( kcell62, \"building\\pbm\\lobby\\l1mz62.pbm\" )\nREP_PPMBMP( kcell63, \"building\\pbm\\lobby\\l1mz63.pbm\" )\nREP_PPMBMP( kcell64, \"building\\pbm\\lobby\\l1mz64.pbm\" )\nREP_PPMBMP( kcell65, \"building\\pbm\\lobby\\l1mz65.pbm\" )\nREP_PPMBMP( kcell66, \"building\\pbm\\lobby\\l1mz66.pbm\" )\nREP_PPMBMP( kcell67, \"building\\pbm\\lobby\\l1mz67.pbm\" )\nREP_PPMBMP( kcell68, \"building\\pbm\\lobby\\l1mz68.pbm\" )\nREP_PPMBMP( kcell69, \"building\\pbm\\lobby\\l1mz69.pbm\" )\nREP_PPMBMP( kcell70, \"building\\pbm\\lobby\\l1mz70.pbm\" )\nREP_PPMBMP( kcell71, \"building\\pbm\\lobby\\l1mz71.pbm\" )\nREP_PPMBMP( kcell72, \"building\\pbm\\lobby\\l1mz72.pbm\" )\nREP_PPMBMP( kcell73, \"building\\pbm\\lobby\\l1mz73.pbm\" )\nREP_PPMBMP( kcell74, \"building\\pbm\\lobby\\l1mz74.pbm\" )\nREP_PPMBMP( kcell75, \"building\\pbm\\lobby\\l1mz75.pbm\" )\nREP_PPMBMP( kcell76, \"building\\pbm\\lobby\\l1mz76.pbm\" )\nREP_PPMBMP( kcell77, \"building\\pbm\\lobby\\l1mz77.pbm\" )\nREP_PPMBMP( kcell78, \"building\\pbm\\lobby\\l1mz78.pbm\" )\nREP_PPMBMP( kcell79, \"building\\pbm\\lobby\\l1mz79.pbm\" )\nREP_PPMBMP( kcell80, \"building\\pbm\\lobby\\l1mz80.pbm\" )\nREP_PPMBMP( kcell81, \"building\\pbm\\lobby\\l1mz81.pbm\" )\nREP_PPMBMP( kcell82, \"building\\pbm\\lobby\\l1mz82.pbm\" )\nREP_PPMBMP( kcell83, \"building\\pbm\\lobby\\l1mz83.pbm\" )\nREP_PPMBMP( kcell84, \"building\\pbm\\lobby\\l1mz84.pbm\" )\nREP_PPMBMP( kcell85, \"building\\pbm\\lobby\\l1mz85.pbm\" )\nREP_PPMBMP( kcell86, \"building\\pbm\\lobby\\l1mz86.pbm\" )\nREP_PPMBMP( kcell87, \"building\\pbm\\lobby\\l1mz87.pbm\" )\nREP_PPMBMP( kcell88, \"building\\pbm\\lobby\\l1mz88.pbm\" )\nREP_PPMBMP( kcell89, \"building\\pbm\\lobby\\l1mz89.pbm\" )\nREP_PPMBMP( kcell90, \"building\\pbm\\lobby\\l1mz90.pbm\" )\nREP_PPMBMP( kcell91, \"building\\pbm\\lobby\\l1mz91.pbm\" )\nREP_PPMBMP( kcell92, \"building\\pbm\\lobby\\l1mz92.pbm\" )\nREP_PPMBMP( kcell93, \"building\\pbm\\lobby\\l1mz93.pbm\" )\nREP_PPMBMP( kcell94, \"building\\pbm\\lobby\\l1mz94.pbm\" )\nREP_PPMBMP( kcell95, \"building\\pbm\\lobby\\l1mz95.pbm\" )\nREP_PPMBMP( kcell96, \"building\\pbm\\lobby\\l1mz96.pbm\" )\nREP_PPMBMP( kcell97, \"building\\pbm\\lobby\\l1mz97.pbm\" )\nREP_PPMBMP( kcell98, \"building\\pbm\\lobby\\l1mz98.pbm\" )\nREP_PPMBMP( kcell99, \"building\\pbm\\lobby\\l1mz99.pbm\" )\nREP_PPMBMP( kcell100, \"building\\pbm\\lobby\\l1mz100.pbm\" )\nREP_PPMBMP( kcell101, \"building\\pbm\\lobby\\l1mz101.pbm\" )\nREP_PPMBMP( kcell102, \"building\\pbm\\lobby\\l1mz102.pbm\" )\nREP_PPMBMP( kcell103, \"building\\pbm\\lobby\\l1mz103.pbm\" )\nREP_PPMBMP( kcell104, \"building\\pbm\\lobby\\l1mz104.pbm\" )\nREP_PPMBMP( kcell105, \"building\\pbm\\lobby\\l1mz105.pbm\" )\nREP_PPMBMP( kcell106, \"building\\pbm\\lobby\\l1mz106.pbm\" )\nREP_PPMBMP( kcell107, \"building\\pbm\\lobby\\l1mz107.pbm\" )\nREP_PPMBMP( kcell108, \"building\\pbm\\lobby\\l1mz108.pbm\" )\nREP_PPMBMP( kcell109, \"building\\pbm\\lobby\\l1mz109.pbm\" )\nREP_PPMBMP( kcell110, \"building\\pbm\\lobby\\l1mz110.pbm\" )\nREP_PPMBMP( kcell111, \"building\\pbm\\lobby\\l1mz111.pbm\" )\nREP_PPMBMP( kcell112, \"building\\pbm\\lobby\\l1mz112.pbm\" )\nREP_PPMBMP( kcell113, \"building\\pbm\\lobby\\l1mz113.pbm\" )\nREP_PPMBMP( kcell114, \"building\\pbm\\lobby\\l1mz114.pbm\" )\nREP_PPMBMP( kcell115, \"building\\pbm\\lobby\\l1mz115.pbm\" )\nREP_PPMBMP( kcell116, \"building\\pbm\\lobby\\l1mz116.pbm\" )\nREP_PPMBMP( kcell117, \"building\\pbm\\lobby\\l1mz117.pbm\" )\nREP_PPMBMP( kcell118, \"building\\pbm\\lobby\\l1mz118.pbm\" )\nREP_PPMBMP( kcell119, \"building\\pbm\\lobby\\l1mz119.pbm\" )\nREP_PPMBMP( kcell120, \"building\\pbm\\lobby\\l1mz120.pbm\" )\nREP_PPMBMP( kcell121, \"building\\pbm\\lobby\\l1mz121.pbm\" )\nREP_PPMBMP( kcell122, \"building\\pbm\\lobby\\l1mz122.pbm\" )\nREP_PPMBMP( kcell123, \"building\\pbm\\lobby\\l1mz123.pbm\" )\nREP_PPMBMP( kcell124, \"building\\pbm\\lobby\\l1mz124.pbm\" )\nREP_PPMBMP( kcell125, \"building\\pbm\\lobby\\l1mz125.pbm\" )\nREP_PPMBMP( kcell126, \"building\\pbm\\lobby\\l1mz126.pbm\" )\nREP_PPMBMP( kcell127, \"building\\pbm\\lobby\\l1mz127.pbm\" )\nREP_PPMBMP( kcell128, \"building\\pbm\\lobby\\l1mz128.pbm\" )\nREP_PPMBMP( kcell129, \"building\\pbm\\lobby\\l1mz129.pbm\" )\nREP_PPMBMP( kcell130, \"building\\pbm\\lobby\\l1mz130.pbm\" )\nREP_PPMBMP( kcell131, \"building\\pbm\\lobby\\l1mz131.pbm\" )\nREP_PPMBMP( kcell132, \"building\\pbm\\lobby\\l1mz132.pbm\" )\nREP_PPMBMP( kcell133, \"building\\pbm\\lobby\\l1mz133.pbm\" )\nREP_PPMBMP( kcell134, \"building\\pbm\\lobby\\l1mz134.pbm\" )\nREP_PPMBMP( kcell135, \"building\\pbm\\lobby\\l1mz135.pbm\" )\nREP_PPMBMP( kcell136, \"building\\pbm\\lobby\\l1mz136.pbm\" )\nREP_PPMBMP( kcell137, \"building\\pbm\\lobby\\l1mz137.pbm\" )\nREP_PPMBMP( kcell138, \"building\\pbm\\lobby\\l1mz138.pbm\" )\nREP_PPMBMP( kcell139, \"building\\pbm\\lobby\\l1mz139.pbm\" )\nREP_PPMBMP( kcell140, \"building\\pbm\\lobby\\l1mz140.pbm\" )\nREP_PPMBMP( kcell141, \"building\\pbm\\lobby\\l1mz141.pbm\" )\nREP_PPMBMP( kcell142, \"building\\pbm\\lobby\\l1mz142.pbm\" )\nREP_PPMBMP( kcell143, \"building\\pbm\\lobby\\l1mz143.pbm\" )\nREP_PPMBMP( kcell144, \"building\\pbm\\lobby\\l1mz144.pbm\" )\nREP_PPMBMP( kcell145, \"building\\pbm\\lobby\\l1mz145.pbm\" )\nREP_PPMBMP( kcell146, \"building\\pbm\\lobby\\l1mz146.pbm\" )\nREP_PPMBMP( kcell147, \"building\\pbm\\lobby\\l1mz147.pbm\" )\nREP_PPMBMP( kcell148, \"building\\pbm\\lobby\\l1mz148.pbm\" )\nREP_PPMBMP( kcell149, \"building\\pbm\\lobby\\l1mz149.pbm\" )\nREP_PPMBMP( kcell150, \"building\\pbm\\lobby\\l1mz150.pbm\" )\nREP_PPMBMP( kcell151, \"building\\pbm\\lobby\\l1mz151.pbm\" )\nREP_PPMBMP( kcell152, \"building\\pbm\\lobby\\l1mz152.pbm\" )\nREP_PPMBMP( kcell153, \"building\\pbm\\lobby\\l1mz153.pbm\" )\nREP_PPMBMP( kcell154, \"building\\pbm\\lobby\\l1mz154.pbm\" )\nREP_PPMBMP( kcell155, \"building\\pbm\\lobby\\l1mz155.pbm\" )\nREP_PPMBMP( kcell156, \"building\\pbm\\lobby\\l1mz156.pbm\" )\nREP_PPMBMP( kcell157, \"building\\pbm\\lobby\\l1mz157.pbm\" )\nREP_PPMBMP( kcell158, \"building\\pbm\\lobby\\l1mz158.pbm\" )\nREP_PPMBMP( kcell159, \"building\\pbm\\lobby\\l1mz159.pbm\" )\nREP_PPMBMP( kcell160, \"building\\pbm\\lobby\\l1mz160.pbm\" )\nREP_PPMBMP( kcell161, \"building\\pbm\\lobby\\l1mz161.pbm\" )\nREP_PPMBMP( kcell162, \"building\\pbm\\lobby\\l1mz162.pbm\" )\nREP_PPMBMP( kcell163, \"building\\pbm\\lobby\\l1mz163.pbm\" )\nREP_PPMBMP( kcell164, \"building\\pbm\\lobby\\l1mz164.pbm\" )\nREP_PPMBMP( kcell165, \"building\\pbm\\lobby\\l1mz165.pbm\" )\nREP_PPMBMP( kcell166, \"building\\pbm\\lobby\\l1mz166.pbm\" )\nREP_PPMBMP( kcell167, \"building\\pbm\\lobby\\l1mz167.pbm\" )\nREP_PPMBMP( kcell168, \"building\\pbm\\lobby\\l1mz168.pbm\" )\nREP_PPMBMP( kcell169, \"building\\pbm\\lobby\\l1mz169.pbm\" )\nREP_PPMBMP( kcell170, \"building\\pbm\\lobby\\l1mz170.pbm\" )\nREP_PPMBMP( kcell171, \"building\\pbm\\lobby\\l1mz171.pbm\" )\nREP_PPMBMP( kcell172, \"building\\pbm\\lobby\\l1mz172.pbm\" )\nREP_PPMBMP( kcell173, \"building\\pbm\\lobby\\l1mz173.pbm\" )\nREP_PPMBMP( kcell174, \"building\\pbm\\lobby\\l1mz174.pbm\" )\nREP_PPMBMP( kcell175, \"building\\pbm\\lobby\\l1mz175.pbm\" )\nREP_PPMBMP( kcell176, \"building\\pbm\\lobby\\l1mz176.pbm\" )\nREP_PPMBMP( kcell177, \"building\\pbm\\lobby\\l1mz177.pbm\" )\nREP_PPMBMP( kcell178, \"building\\pbm\\lobby\\l1mz178.pbm\" )\nREP_PPMBMP( kcell179, \"building\\pbm\\lobby\\l1mz179.pbm\" )\nREP_PPMBMP( kcell180, \"building\\pbm\\lobby\\l1mz180.pbm\" )\nREP_PPMBMP( kcell181, \"building\\pbm\\lobby\\l1mz181.pbm\" )\nREP_PPMBMP( kcell182, \"building\\pbm\\lobby\\l1mz182.pbm\" )\nREP_PPMBMP( kcell183, \"building\\pbm\\lobby\\l1mz183.pbm\" )\nREP_PPMBMP( kcell184, \"building\\pbm\\lobby\\l1mz184.pbm\" )\nREP_PPMBMP( kcell185, \"building\\pbm\\lobby\\l1mz185.pbm\" )\nREP_PPMBMP( kcell186, \"building\\pbm\\lobby\\l1mz186.pbm\" )\nREP_PPMBMP( kcell187, \"building\\pbm\\lobby\\l1mz187.pbm\" )\nREP_PPMBMP( kcell188, \"building\\pbm\\lobby\\l1mz188.pbm\" )\nREP_PPMBMP( kcell189, \"building\\pbm\\lobby\\l1mz189.pbm\" )\nREP_PPMBMP( kcell190, \"building\\pbm\\lobby\\l1mz190.pbm\" )\nREP_PPMBMP( kcell191, \"building\\pbm\\lobby\\l1mz191.pbm\" )\nREP_PPMBMP( kcell192, \"building\\pbm\\lobby\\l1mz192.pbm\" )\nREP_PPMBMP( kcell193, \"building\\pbm\\lobby\\l1mz193.pbm\" )\nREP_PPMBMP( kcell194, \"building\\pbm\\lobby\\l1mz194.pbm\" )\nREP_PPMBMP( kcell195, \"building\\pbm\\lobby\\l1mz195.pbm\" )\nREP_PPMBMP( kcell196, \"building\\pbm\\lobby\\l1mz196.pbm\" )\nREP_PPMBMP( kcell197, \"building\\pbm\\lobby\\l1mz197.pbm\" )\nREP_PPMBMP( kcell198, \"building\\pbm\\lobby\\l1mz198.pbm\" )\nREP_PPMBMP( kcell199, \"building\\pbm\\lobby\\l1mz199.pbm\" )\nREP_PPMBMP( kcell200, \"building\\pbm\\lobby\\l1mz200.pbm\" )\nREP_PPMBMP( kcell201, \"building\\pbm\\lobby\\l1mz201.pbm\" )\nREP_PPMBMP( kcell202, \"building\\pbm\\lobby\\l1mz202.pbm\" )\nREP_PPMBMP( kcell203, \"building\\pbm\\lobby\\l1mz203.pbm\" )\nREP_PPMBMP( kcell204, \"building\\pbm\\lobby\\l1mz204.pbm\" )\nREP_PPMBMP( kcell205, \"building\\pbm\\lobby\\l1mz205.pbm\" )\nREP_PPMBMP( kcell206, \"building\\pbm\\lobby\\l1mz206.pbm\" )\nREP_PPMBMP( kcell207, \"building\\pbm\\lobby\\l1mz207.pbm\" )\nREP_PPMBMP( kcell208, \"building\\pbm\\lobby\\l1mz208.pbm\" )\nREP_PPMBMP( kcell209, \"building\\pbm\\lobby\\l1mz209.pbm\" )\nREP_PPMBMP( kcell210, \"building\\pbm\\lobby\\l1mz210.pbm\" )\nREP_PPMBMP( kcell211, \"building\\pbm\\lobby\\l1mz211.pbm\" )\nREP_PPMBMP( kcell212, \"building\\pbm\\lobby\\l1mz212.pbm\" )\nREP_PPMBMP( kcell213, \"building\\pbm\\lobby\\l1mz213.pbm\" )\nREP_PPMBMP( kcell214, \"building\\pbm\\lobby\\l1mz214.pbm\" )\nREP_PPMBMP( kcell215, \"building\\pbm\\lobby\\l1mz215.pbm\" )\nREP_PPMBMP( kcell216, \"building\\pbm\\lobby\\l1mz216.pbm\" )\nREP_PPMBMP( kcell217, \"building\\pbm\\lobby\\l1mz217.pbm\" )\nREP_PPMBMP( kcell218, \"building\\pbm\\lobby\\l1mz218.pbm\" )\nREP_PPMBMP( kcell219, \"building\\pbm\\lobby\\l1mz219.pbm\" )\nREP_PPMBMP( kcell220, \"building\\pbm\\lobby\\l1mz220.pbm\" )\nREP_PPMBMP( kcell221, \"building\\pbm\\lobby\\l1mz221.pbm\" )\nREP_PPMBMP( kcell222, \"building\\pbm\\lobby\\l1mz222.pbm\" )\nREP_PPMBMP( kcell223, \"building\\pbm\\lobby\\l1mz223.pbm\" )\nREP_PPMBMP( kcell224, \"building\\pbm\\lobby\\l1mz224.pbm\" )\nREP_PPMBMP( kcell225, \"building\\pbm\\lobby\\l1mz225.pbm\" )\nREP_PPMBMP( kcell226, \"building\\pbm\\lobby\\l1mz226.pbm\" )\nREP_PPMBMP( kcell227, \"building\\pbm\\lobby\\l1mz227.pbm\" )\nREP_PPMBMP( kcell228, \"building\\pbm\\lobby\\l1mz228.pbm\" )\nREP_PPMBMP( kcell229, \"building\\pbm\\lobby\\l1mz229.pbm\" )\nREP_PPMBMP( kcell230, \"building\\pbm\\lobby\\l1mz230.pbm\" )\nREP_PPMBMP( kcell231, \"building\\pbm\\lobby\\l1mz231.pbm\" )\nREP_PPMBMP( kcell232, \"building\\pbm\\lobby\\l1mz232.pbm\" )\nREP_PPMBMP( kcell233, \"building\\pbm\\lobby\\l1mz233.pbm\" )\nREP_PPMBMP( kcell234, \"building\\pbm\\lobby\\l1mz234.pbm\" )\nREP_PPMBMP( kcell235, \"building\\pbm\\lobby\\l1mz235.pbm\" )\nREP_PPMBMP( kcell236, \"building\\pbm\\lobby\\l1mz236.pbm\" )\nREP_PPMBMP( kcell237, \"building\\pbm\\lobby\\l1mz237.pbm\" )\nREP_PPMBMP( kcell238, \"building\\pbm\\lobby\\l1mz238.pbm\" )\nREP_PPMBMP( kcell239, \"building\\pbm\\lobby\\l1mz239.pbm\" )\nREP_PPMBMP( kcell240, \"building\\pbm\\lobby\\l1mz240.pbm\" )\nREP_PPMBMP( kcell241, \"building\\pbm\\lobby\\l1mz241.pbm\" )\nREP_PPMBMP( kcell242, \"building\\pbm\\lobby\\l1mz242.pbm\" )\nREP_PPMBMP( kcell243, \"building\\pbm\\lobby\\l1mz243.pbm\" )\nREP_PPMBMP( kcell244, \"building\\pbm\\lobby\\l1mz244.pbm\" )\nREP_PPMBMP( kcell245, \"building\\pbm\\lobby\\l1mz245.pbm\" )\nREP_PPMBMP( kcell246, \"building\\pbm\\lobby\\l1mz246.pbm\" )\nREP_PPMBMP( kcell247, \"building\\pbm\\lobby\\l1mz247.pbm\" )\nREP_PPMBMP( kcell248, \"building\\pbm\\lobby\\l1mz248.pbm\" )\nREP_PPMBMP( kcell249, \"building\\pbm\\lobby\\l1mz249.pbm\" )\nREP_PPMBMP( kcell250, \"building\\pbm\\lobby\\l1mz250.pbm\" )\nREP_PPMBMP( kcell251, \"building\\pbm\\lobby\\l1mz251.pbm\" )\nREP_PPMBMP( kcell252, \"building\\pbm\\lobby\\l1mz252.pbm\" )\nREP_PPMBMP( kcell253, \"building\\pbm\\lobby\\l1mz253.pbm\" )\nREP_PPMBMP( kcell254, \"building\\pbm\\lobby\\l1mz254.pbm\" )\nREP_PPMBMP( kcell255, \"building\\pbm\\lobby\\l1mz255.pbm\" )\nREP_PPMBMP( kcell256, \"building\\pbm\\lobby\\l1mz256.pbm\" )\nREP_PPMBMP( kcell257, \"building\\pbm\\lobby\\l1mz257.pbm\" )\nREP_PPMBMP( kcell258, \"building\\pbm\\lobby\\l1mz258.pbm\" )\nREP_PPMBMP( kcell259, \"building\\pbm\\lobby\\l1mz259.pbm\" )\nREP_PPMBMP( kcell260, \"building\\pbm\\lobby\\l1mz260.pbm\" )\n\nREP_PPMBMP( kcell301, \"building\\pbm\\lobby\\l3mz1.pbm\" )\nREP_PPMBMP( kcell302, \"building\\pbm\\lobby\\l3mz2.pbm\" )\nREP_PPMBMP( kcell303, \"building\\pbm\\lobby\\l3mz3.pbm\" )\nREP_PPMBMP( kcell304, \"building\\pbm\\lobby\\l3mz4.pbm\" )\nREP_PPMBMP( kcell305, \"building\\pbm\\lobby\\l3mz5.pbm\" )\nREP_PPMBMP( kcell306, \"building\\pbm\\lobby\\l3mz6.pbm\" )\nREP_PPMBMP( kcell307, \"building\\pbm\\lobby\\l3mz7.pbm\" )\nREP_PPMBMP( kcell308, \"building\\pbm\\lobby\\l3mz8.pbm\" )\nREP_PPMBMP( kcell309, \"building\\pbm\\lobby\\l3mz9.pbm\" )\nREP_PPMBMP( kcell310, \"building\\pbm\\lobby\\l3mz10.pbm\" )\nREP_PPMBMP( kcell311, \"building\\pbm\\lobby\\l3mz11.pbm\" )\nREP_PPMBMP( kcell312, \"building\\pbm\\lobby\\l3mz12.pbm\" )\nREP_PPMBMP( kcell313, \"building\\pbm\\lobby\\l3mz13.pbm\" )\nREP_PPMBMP( kcell314, \"building\\pbm\\lobby\\l3mz14.pbm\" )\nREP_PPMBMP( kcell315, \"building\\pbm\\lobby\\l3mz15.pbm\" )\nREP_PPMBMP( kcell316, \"building\\pbm\\lobby\\l3mz16.pbm\" )\nREP_PPMBMP( kcell317, \"building\\pbm\\lobby\\l3mz17.pbm\" )\nREP_PPMBMP( kcell318, \"building\\pbm\\lobby\\l3mz18.pbm\" )\nREP_PPMBMP( kcell319, \"building\\pbm\\lobby\\l3mz19.pbm\" )\nREP_PPMBMP( kcell320, \"building\\pbm\\lobby\\l3mz20.pbm\" )\nREP_PPMBMP( kcell321, \"building\\pbm\\lobby\\l3mz21.pbm\" )\nREP_PPMBMP( kcell322, \"building\\pbm\\lobby\\l3mz22.pbm\" )\nREP_PPMBMP( kcell323, \"building\\pbm\\lobby\\l3mz23.pbm\" )\nREP_PPMBMP( kcell324, \"building\\pbm\\lobby\\l3mz24.pbm\" )\nREP_PPMBMP( kcell325, \"building\\pbm\\lobby\\l3mz25.pbm\" )\nREP_PPMBMP( kcell326, \"building\\pbm\\lobby\\l3mz26.pbm\" )\nREP_PPMBMP( kcell327, \"building\\pbm\\lobby\\l3mz27.pbm\" )\nREP_PPMBMP( kcell328, \"building\\pbm\\lobby\\l3mz28.pbm\" )\nREP_PPMBMP( kcell329, \"building\\pbm\\lobby\\l3mz29.pbm\" )\nREP_PPMBMP( kcell330, \"building\\pbm\\lobby\\l3mz30.pbm\" )\nREP_PPMBMP( kcell331, \"building\\pbm\\lobby\\l3mz31.pbm\" )\nREP_PPMBMP( kcell332, \"building\\pbm\\lobby\\l3mz32.pbm\" )\nREP_PPMBMP( kcell333, \"building\\pbm\\lobby\\l3mz33.pbm\" )\nREP_PPMBMP( kcell334, \"building\\pbm\\lobby\\l3mz34.pbm\" )\nREP_PPMBMP( kcell335, \"building\\pbm\\lobby\\l3mz35.pbm\" )\nREP_PPMBMP( kcell336, \"building\\pbm\\lobby\\l3mz36.pbm\" )\nREP_PPMBMP( kcell337, \"building\\pbm\\lobby\\l3mz37.pbm\" )\nREP_PPMBMP( kcell338, \"building\\pbm\\lobby\\l3mz38.pbm\" )\nREP_PPMBMP( kcell339, \"building\\pbm\\lobby\\l3mz39.pbm\" )\nREP_PPMBMP( kcell340, \"building\\pbm\\lobby\\l3mz40.pbm\" )\nREP_PPMBMP( kcell341, \"building\\pbm\\lobby\\l3mz41.pbm\" )\nREP_PPMBMP( kcell342, \"building\\pbm\\lobby\\l3mz42.pbm\" )\nREP_PPMBMP( kcell343, \"building\\pbm\\lobby\\l3mz43.pbm\" )\nREP_PPMBMP( kcell344, \"building\\pbm\\lobby\\l3mz44.pbm\" )\nREP_PPMBMP( kcell345, \"building\\pbm\\lobby\\l3mz45.pbm\" )\nREP_PPMBMP( kcell346, \"building\\pbm\\lobby\\l3mz46.pbm\" )\nREP_PPMBMP( kcell347, \"building\\pbm\\lobby\\l3mz47.pbm\" )\nREP_PPMBMP( kcell348, \"building\\pbm\\lobby\\l3mz48.pbm\" )\nREP_PPMBMP( kcell349, \"building\\pbm\\lobby\\l3mz49.pbm\" )\nREP_PPMBMP( kcell350, \"building\\pbm\\lobby\\l3mz50.pbm\" )\nREP_PPMBMP( kcell351, \"building\\pbm\\lobby\\l3mz51.pbm\" )\nREP_PPMBMP( kcell352, \"building\\pbm\\lobby\\l3mz52.pbm\" )\nREP_PPMBMP( kcell353, \"building\\pbm\\lobby\\l3mz53.pbm\" )\nREP_PPMBMP( kcell354, \"building\\pbm\\lobby\\l3mz54.pbm\" )\nREP_PPMBMP( kcell355, \"building\\pbm\\lobby\\l3mz55.pbm\" )\nREP_PPMBMP( kcell356, \"building\\pbm\\lobby\\l3mz56.pbm\" )\nREP_PPMBMP( kcell357, \"building\\pbm\\lobby\\l3mz57.pbm\" )\nREP_PPMBMP( kcell358, \"building\\pbm\\lobby\\l3mz58.pbm\" )\nREP_PPMBMP( kcell359, \"building\\pbm\\lobby\\l3mz59.pbm\" )\nREP_PPMBMP( kcell360, \"building\\pbm\\lobby\\l3mz60.pbm\" )\nREP_PPMBMP( kcell361, \"building\\pbm\\lobby\\l3mz61.pbm\" )\nREP_PPMBMP( kcell362, \"building\\pbm\\lobby\\l3mz62.pbm\" )\nREP_PPMBMP( kcell363, \"building\\pbm\\lobby\\l3mz63.pbm\" )\nREP_PPMBMP( kcell364, \"building\\pbm\\lobby\\l3mz64.pbm\" )\nREP_PPMBMP( kcell365, \"building\\pbm\\lobby\\l3mz65.pbm\" )\nREP_PPMBMP( kcell366, \"building\\pbm\\lobby\\l3mz66.pbm\" )\nREP_PPMBMP( kcell367, \"building\\pbm\\lobby\\l3mz67.pbm\" )\nREP_PPMBMP( kcell368, \"building\\pbm\\lobby\\l3mz68.pbm\" )\nREP_PPMBMP( kcell369, \"building\\pbm\\lobby\\l3mz69.pbm\" )\nREP_PPMBMP( kcell370, \"building\\pbm\\lobby\\l3mz70.pbm\" )\n\nREP_PPMBMP( kcell401, \"building\\pbm\\lobby\\lipsk157.pbm\" )\nREP_PPMBMP( kcell402, \"building\\pbm\\lobby\\lipsk158.pbm\" )\nREP_PPMBMP( kcell403, \"building\\pbm\\lobby\\lipsk159.pbm\" )\nREP_PPMBMP( kcell404, \"building\\pbm\\lobby\\lipsk160.pbm\" )\nREP_PPMBMP( kcell405, \"building\\pbm\\lobby\\lipsk161.pbm\" )\nREP_PPMBMP( kcell406, \"building\\pbm\\lobby\\lipsk162.pbm\" )\nREP_PPMBMP( kcell407, \"building\\pbm\\lobby\\lipsk163.pbm\" )\nREP_PPMBMP( kcell408, \"building\\pbm\\lobby\\lipsk164.pbm\" )\nREP_PPMBMP( kcell409, \"building\\pbm\\lobby\\lipsk165.pbm\" )\nREP_PPMBMP( kcell410, \"building\\pbm\\lobby\\lipsk166.pbm\" )\nREP_PPMBMP( kcell411, \"building\\pbm\\lobby\\lipsk167.pbm\" )\nREP_PPMBMP( kcell412, \"building\\pbm\\lobby\\lipsk168.pbm\" )\nREP_PPMBMP( kcell413, \"building\\pbm\\lobby\\lipsk169.pbm\" )\nREP_PPMBMP( kcell414, \"building\\pbm\\lobby\\lipsk170.pbm\" )\nREP_PPMBMP( kcell415, \"building\\pbm\\lobby\\lipsk171.pbm\" )\nREP_PPMBMP( kcell416, \"building\\pbm\\lobby\\lipsk172.pbm\" )\nREP_PPMBMP( kcell417, \"building\\pbm\\lobby\\lipsk173.pbm\" )\nREP_PPMBMP( kcell418, \"building\\pbm\\lobby\\lipsk174.pbm\" )\nREP_PPMBMP( kcell419, \"building\\pbm\\lobby\\lipsk175.pbm\" )\nREP_PPMBMP( kcell420, \"building\\pbm\\lobby\\lipsk176.pbm\" )\nREP_PPMBMP( kcell421, \"building\\pbm\\lobby\\lipsk177.pbm\" )\nREP_PPMBMP( kcell422, \"building\\pbm\\lobby\\lipsk178.pbm\" )\nREP_PPMBMP( kcell423, \"building\\pbm\\lobby\\lipsk179.pbm\" )\n"
  },
  {
    "path": "src/building/mzpack.seq",
    "content": "REP_PPMBMP( kcell1, \"building\\pbm\\imagin\\fcell001.pbm\"  )\nREP_PPMBMP( kcell2, \"building\\pbm\\imagin\\fcell002.pbm\"  )\nREP_PPMBMP( kcell3, \"building\\pbm\\imagin\\fcell003.pbm\"  )\nREP_PPMBMP( kcell4, \"building\\pbm\\imagin\\fcell004.pbm\"  )\nREP_PPMBMP( kcell5, \"building\\pbm\\imagin\\fcell005.pbm\"  )\nREP_PPMBMP( kcell6, \"building\\pbm\\imagin\\fcell006.pbm\"  )\nREP_PPMBMP( kcell7, \"building\\pbm\\imagin\\fcell007.pbm\"  )\nREP_PPMBMP( kcell8, \"building\\pbm\\imagin\\fcell008.pbm\"  )\nREP_PPMBMP( kcell9, \"building\\pbm\\imagin\\fcell009.pbm\"  )\nREP_PPMBMP( kcell10, \"building\\pbm\\imagin\\fcell010.pbm\"  )\nREP_PPMBMP( kcell11, \"building\\pbm\\imagin\\fcell011.pbm\"  )\nREP_PPMBMP( kcell12, \"building\\pbm\\imagin\\fcell012.pbm\"  )\nREP_PPMBMP( kcell13, \"building\\pbm\\imagin\\fcell013.pbm\"  )\nREP_PPMBMP( kcell14, \"building\\pbm\\imagin\\fcell014.pbm\"  )\nREP_PPMBMP( kcell15, \"building\\pbm\\imagin\\fcell015.pbm\"  )\nREP_PPMBMP( kcell16, \"building\\pbm\\imagin\\fcell016.pbm\"  )\nREP_PPMBMP( kcell17, \"building\\pbm\\imagin\\fcell017.pbm\"  )\nREP_PPMBMP( kcell18, \"building\\pbm\\imagin\\fcell018.pbm\"  )\nREP_PPMBMP( kcell19, \"building\\pbm\\imagin\\fcell019.pbm\"  )\nREP_PPMBMP( kcell20, \"building\\pbm\\imagin\\fcell020.pbm\"  )\nREP_PPMBMP( kcell21, \"building\\pbm\\imagin\\fcell021.pbm\"  )\nREP_PPMBMP( kcell22, \"building\\pbm\\imagin\\fcell022.pbm\"  )\nREP_PPMBMP( kcell23, \"building\\pbm\\imagin\\fcell023.pbm\"  )\nREP_PPMBMP( kcell24, \"building\\pbm\\imagin\\fcell024.pbm\"  )\nREP_PPMBMP( kcell25, \"building\\pbm\\imagin\\fcell025.pbm\"  )\nREP_PPMBMP( kcell26, \"building\\pbm\\imagin\\fcell026.pbm\"  )\nREP_PPMBMP( kcell27, \"building\\pbm\\imagin\\fcell027.pbm\"  )\nREP_PPMBMP( kcell28, \"building\\pbm\\imagin\\fcell028.pbm\"  )\nREP_PPMBMP( kcell29, \"building\\pbm\\imagin\\fcell029.pbm\"  )\nREP_PPMBMP( kcell30, \"building\\pbm\\imagin\\fcell030.pbm\"  )\nREP_PPMBMP( kcell31, \"building\\pbm\\imagin\\fcell031.pbm\"  )\nREP_PPMBMP( kcell32, \"building\\pbm\\imagin\\fcell032.pbm\"  )\nREP_PPMBMP( kcell33, \"building\\pbm\\imagin\\fcell033.pbm\"  )\nREP_PPMBMP( kcell34, \"building\\pbm\\imagin\\fcell034.pbm\"  )\nREP_PPMBMP( kcell35, \"building\\pbm\\imagin\\fcell035.pbm\"  )\nREP_PPMBMP( kcell36, \"building\\pbm\\imagin\\fcell036.pbm\"  )\nREP_PPMBMP( kcell37, \"building\\pbm\\imagin\\fcell037.pbm\"  )\nREP_PPMBMP( kcell38, \"building\\pbm\\imagin\\fcell038.pbm\"  )\nREP_PPMBMP( kcell39, \"building\\pbm\\imagin\\fcell039.pbm\"  )\nREP_PPMBMP( kcell40, \"building\\pbm\\imagin\\fcell040.pbm\"  )\nREP_PPMBMP( kcell41, \"building\\pbm\\imagin\\fcell041.pbm\"  )\nREP_PPMBMP( kcell42, \"building\\pbm\\imagin\\fcell042.pbm\"  )\nREP_PPMBMP( kcell43, \"building\\pbm\\imagin\\fcell043.pbm\"  )\nREP_PPMBMP( kcell44, \"building\\pbm\\imagin\\fcell044.pbm\"  )\nREP_PPMBMP( kcell45, \"building\\pbm\\imagin\\fcell045.pbm\"  )\nREP_PPMBMP( kcell46, \"building\\pbm\\imagin\\fcell046.pbm\"  )\nREP_PPMBMP( kcell47, \"building\\pbm\\imagin\\fcell047.pbm\"  )\nREP_PPMBMP( kcell48, \"building\\pbm\\imagin\\fcell048.pbm\"  )\nREP_PPMBMP( kcell49, \"building\\pbm\\imagin\\fcell049.pbm\"  )\nREP_PPMBMP( kcell50, \"building\\pbm\\imagin\\fcell050.pbm\"  )\nREP_PPMBMP( kcell51, \"building\\pbm\\imagin\\fcell051.pbm\"  )\nREP_PPMBMP( kcell52, \"building\\pbm\\imagin\\fcell052.pbm\"  )\nREP_PPMBMP( kcell53, \"building\\pbm\\imagin\\fcell053.pbm\"  )\nREP_PPMBMP( kcell54, \"building\\pbm\\imagin\\fcell054.pbm\"  )\nREP_PPMBMP( kcell55, \"building\\pbm\\imagin\\fcell055.pbm\"  )\nREP_PPMBMP( kcell56, \"building\\pbm\\imagin\\fcell056.pbm\"  )\nREP_PPMBMP( kcell57, \"building\\pbm\\imagin\\fcell057.pbm\"  )\nREP_PPMBMP( kcell58, \"building\\pbm\\imagin\\fcell058.pbm\"  )\nREP_PPMBMP( kcell59, \"building\\pbm\\imagin\\fcell059.pbm\"  )\nREP_PPMBMP( kcell60, \"building\\pbm\\imagin\\fcell060.pbm\"  )\nREP_PPMBMP( kcell61, \"building\\pbm\\imagin\\fcell061.pbm\"  )\nREP_PPMBMP( kcell62, \"building\\pbm\\imagin\\fcell062.pbm\"  )\nREP_PPMBMP( kcell63, \"building\\pbm\\imagin\\fcell063.pbm\"  )\nREP_PPMBMP( kcell64, \"building\\pbm\\imagin\\fcell064.pbm\"  )\nREP_PPMBMP( kcell65, \"building\\pbm\\imagin\\fcell065.pbm\"  )\nREP_PPMBMP( kcell66, \"building\\pbm\\imagin\\fcell066.pbm\"  )\nREP_PPMBMP( kcell67, \"building\\pbm\\imagin\\fcell067.pbm\"  )\nREP_PPMBMP( kcell68, \"building\\pbm\\imagin\\fcell068.pbm\"  )\nREP_PPMBMP( kcell69, \"building\\pbm\\imagin\\fcell069.pbm\"  )\nREP_PPMBMP( kcell70, \"building\\pbm\\imagin\\fcell070.pbm\"  )\nREP_PPMBMP( kcell71, \"building\\pbm\\imagin\\fcell071.pbm\"  )\nREP_PPMBMP( kcell72, \"building\\pbm\\imagin\\fcell072.pbm\"  )\nREP_PPMBMP( kcell73, \"building\\pbm\\imagin\\fcell073.pbm\"  )\nREP_PPMBMP( kcell74, \"building\\pbm\\imagin\\fcell074.pbm\"  )\nREP_PPMBMP( kcell75, \"building\\pbm\\imagin\\fcell075.pbm\"  )\nREP_PPMBMP( kcell76, \"building\\pbm\\imagin\\fcell076.pbm\"  )\nREP_PPMBMP( kcell77, \"building\\pbm\\imagin\\fcell077.pbm\"  )\nREP_PPMBMP( kcell78, \"building\\pbm\\imagin\\fcell078.pbm\"  )\nREP_PPMBMP( kcell79, \"building\\pbm\\imagin\\fcell079.pbm\"  )\nREP_PPMBMP( kcell80, \"building\\pbm\\imagin\\fcell080.pbm\"  )\nREP_PPMBMP( kcell81, \"building\\pbm\\imagin\\fcell081.pbm\"  )\nREP_PPMBMP( kcell82, \"building\\pbm\\imagin\\fcell082.pbm\"  )\nREP_PPMBMP( kcell83, \"building\\pbm\\imagin\\fcell083.pbm\"  )\nREP_PPMBMP( kcell84, \"building\\pbm\\imagin\\fcell084.pbm\"  )\nREP_PPMBMP( kcell85, \"building\\pbm\\imagin\\fcell085.pbm\"  )\nREP_PPMBMP( kcell86, \"building\\pbm\\imagin\\fcell086.pbm\"  )\nREP_PPMBMP( kcell87, \"building\\pbm\\imagin\\fcell087.pbm\"  )\nREP_PPMBMP( kcell88, \"building\\pbm\\imagin\\fcell088.pbm\"  )\nREP_PPMBMP( kcell89, \"building\\pbm\\imagin\\fcell089.pbm\"  )\nREP_PPMBMP( kcell90, \"building\\pbm\\imagin\\fcell090.pbm\"  )\nREP_PPMBMP( kcell91, \"building\\pbm\\imagin\\fcell091.pbm\"  )\nREP_PPMBMP( kcell92, \"building\\pbm\\imagin\\fcell092.pbm\"  )\nREP_PPMBMP( kcell93, \"building\\pbm\\imagin\\fcell093.pbm\"  )\nREP_PPMBMP( kcell94, \"building\\pbm\\imagin\\fcell094.pbm\"  )\nREP_PPMBMP( kcell95, \"building\\pbm\\imagin\\fcell095.pbm\"  )\nREP_PPMBMP( kcell96, \"building\\pbm\\imagin\\fcell096.pbm\"  )\nREP_PPMBMP( kcell97, \"building\\pbm\\imagin\\fcell097.pbm\"  )\nREP_PPMBMP( kcell98, \"building\\pbm\\imagin\\fcell098.pbm\"  )\nREP_PPMBMP( kcell99, \"building\\pbm\\imagin\\fcell099.pbm\"  )\nREP_PPMBMP( kcell100, \"building\\pbm\\imagin\\fcell100.pbm\"  )\nREP_PPMBMP( kcell101, \"building\\pbm\\imagin\\fcell101.pbm\"  )\nREP_PPMBMP( kcell102, \"building\\pbm\\imagin\\fcell102.pbm\"  )\nREP_PPMBMP( kcell103, \"building\\pbm\\imagin\\fcell103.pbm\"  )\nREP_PPMBMP( kcell104, \"building\\pbm\\imagin\\fcell104.pbm\"  )\nREP_PPMBMP( kcell105, \"building\\pbm\\imagin\\fcell105.pbm\"  )\nREP_PPMBMP( kcell106, \"building\\pbm\\imagin\\fcell106.pbm\"  )\nREP_PPMBMP( kcell107, \"building\\pbm\\imagin\\fcell107.pbm\"  )\nREP_PPMBMP( kcell108, \"building\\pbm\\imagin\\fcell108.pbm\"  )\nREP_PPMBMP( kcell109, \"building\\pbm\\imagin\\fcell109.pbm\"  )\nREP_PPMBMP( kcell110, \"building\\pbm\\imagin\\fcell110.pbm\"  )\nREP_PPMBMP( kcell111, \"building\\pbm\\imagin\\fcell111.pbm\"  )\nREP_PPMBMP( kcell112, \"building\\pbm\\imagin\\fcell112.pbm\"  )\nREP_PPMBMP( kcell113, \"building\\pbm\\imagin\\fcell113.pbm\"  )\nREP_PPMBMP( kcell114, \"building\\pbm\\imagin\\fcell114.pbm\"  )\nREP_PPMBMP( kcell115, \"building\\pbm\\imagin\\fcell115.pbm\"  )\nREP_PPMBMP( kcell116, \"building\\pbm\\imagin\\fcell116.pbm\"  )\nREP_PPMBMP( kcell117, \"building\\pbm\\imagin\\fcell117.pbm\"  )\nREP_PPMBMP( kcell118, \"building\\pbm\\imagin\\fcell118.pbm\"  )\nREP_PPMBMP( kcell119, \"building\\pbm\\imagin\\fcell119.pbm\"  )\nREP_PPMBMP( kcell120, \"building\\pbm\\imagin\\fcell120.pbm\"  )\nREP_PPMBMP( kcell121, \"building\\pbm\\imagin\\fcell121.pbm\"  )\nREP_PPMBMP( kcell122, \"building\\pbm\\imagin\\fcell122.pbm\"  )\nREP_PPMBMP( kcell123, \"building\\pbm\\imagin\\fcell123.pbm\"  )\nREP_PPMBMP( kcell124, \"building\\pbm\\imagin\\fcell124.pbm\"  )\nREP_PPMBMP( kcell125, \"building\\pbm\\imagin\\fcell125.pbm\"  )\nREP_PPMBMP( kcell126, \"building\\pbm\\imagin\\fcell126.pbm\"  )\nREP_PPMBMP( kcell127, \"building\\pbm\\imagin\\fcell127.pbm\"  )\nREP_PPMBMP( kcell128, \"building\\pbm\\imagin\\fcell128.pbm\"  )\nREP_PPMBMP( kcell129, \"building\\pbm\\imagin\\fcell129.pbm\"  )\nREP_PPMBMP( kcell130, \"building\\pbm\\imagin\\fcell130.pbm\"  )\nREP_PPMBMP( kcell131, \"building\\pbm\\imagin\\fcell131.pbm\"  )\nREP_PPMBMP( kcell132, \"building\\pbm\\imagin\\fcell132.pbm\"  )\nREP_PPMBMP( kcell133, \"building\\pbm\\imagin\\fcell133.pbm\"  )\nREP_PPMBMP( kcell134, \"building\\pbm\\imagin\\fcell134.pbm\"  )\nREP_PPMBMP( kcell135, \"building\\pbm\\imagin\\fcell135.pbm\"  )\nREP_PPMBMP( kcell136, \"building\\pbm\\imagin\\fcell136.pbm\"  )\nREP_PPMBMP( kcell137, \"building\\pbm\\imagin\\fcell137.pbm\"  )\nREP_PPMBMP( kcell138, \"building\\pbm\\imagin\\fcell138.pbm\"  )\nREP_PPMBMP( kcell139, \"building\\pbm\\imagin\\fcell139.pbm\"  )\nREP_PPMBMP( kcell140, \"building\\pbm\\imagin\\fcell140.pbm\"  )\nREP_PPMBMP( kcell141, \"building\\pbm\\imagin\\fcell141.pbm\"  )\nREP_PPMBMP( kcell142, \"building\\pbm\\imagin\\fcell142.pbm\"  )\nREP_PPMBMP( kcell143, \"building\\pbm\\imagin\\fcell143.pbm\"  )\nREP_PPMBMP( kcell144, \"building\\pbm\\imagin\\fcell144.pbm\"  )\nREP_PPMBMP( kcell145, \"building\\pbm\\imagin\\fcell145.pbm\"  )\nREP_PPMBMP( kcell146, \"building\\pbm\\imagin\\fcell146.pbm\"  )\nREP_PPMBMP( kcell147, \"building\\pbm\\imagin\\fcell147.pbm\"  )\nREP_PPMBMP( kcell148, \"building\\pbm\\imagin\\fcell148.pbm\"  )\nREP_PPMBMP( kcell149, \"building\\pbm\\imagin\\fcell149.pbm\"  )\nREP_PPMBMP( kcell150, \"building\\pbm\\imagin\\fcell150.pbm\"  )\nREP_PPMBMP( kcell151, \"building\\pbm\\imagin\\fcell151.pbm\"  )\nREP_PPMBMP( kcell152, \"building\\pbm\\imagin\\fcell152.pbm\"  )\nREP_PPMBMP( kcell153, \"building\\pbm\\imagin\\fcell153.pbm\"  )\nREP_PPMBMP( kcell154, \"building\\pbm\\imagin\\fcell154.pbm\"  )\nREP_PPMBMP( kcell155, \"building\\pbm\\imagin\\fcell155.pbm\"  )\nREP_PPMBMP( kcell156, \"building\\pbm\\imagin\\fcell156.pbm\"  )\nREP_PPMBMP( kcell157, \"building\\pbm\\imagin\\fcell157.pbm\"  )\nREP_PPMBMP( kcell158, \"building\\pbm\\imagin\\fcell158.pbm\"  )\nREP_PPMBMP( kcell159, \"building\\pbm\\imagin\\fcell159.pbm\"  )\nREP_PPMBMP( kcell160, \"building\\pbm\\imagin\\fcell160.pbm\"  )\nREP_PPMBMP( kcell161, \"building\\pbm\\imagin\\fcell161.pbm\"  )\nREP_PPMBMP( kcell162, \"building\\pbm\\imagin\\fcell162.pbm\"  )\nREP_PPMBMP( kcell163, \"building\\pbm\\imagin\\fcell163.pbm\"  )\nREP_PPMBMP( kcell164, \"building\\pbm\\imagin\\fcell164.pbm\"  )\nREP_PPMBMP( kcell165, \"building\\pbm\\imagin\\fcell165.pbm\"  )\nREP_PPMBMP( kcell166, \"building\\pbm\\imagin\\fcell166.pbm\"  )\nREP_PPMBMP( kcell167, \"building\\pbm\\imagin\\fcell167.pbm\"  )\nREP_PPMBMP( kcell168, \"building\\pbm\\imagin\\fcell168.pbm\"  )\nREP_PPMBMP( kcell169, \"building\\pbm\\imagin\\fcell169.pbm\"  )\nREP_PPMBMP( kcell170, \"building\\pbm\\imagin\\fcell170.pbm\"  )\nREP_PPMBMP( kcell171, \"building\\pbm\\imagin\\fcell171.pbm\"  )\nREP_PPMBMP( kcell172, \"building\\pbm\\imagin\\fcell172.pbm\"  )\nREP_PPMBMP( kcell173, \"building\\pbm\\imagin\\fcell173.pbm\"  )\nREP_PPMBMP( kcell174, \"building\\pbm\\imagin\\fcell174.pbm\"  )\nREP_PPMBMP( kcell175, \"building\\pbm\\imagin\\fcell175.pbm\"  )\nREP_PPMBMP( kcell176, \"building\\pbm\\imagin\\fcell176.pbm\"  )\nREP_PPMBMP( kcell177, \"building\\pbm\\imagin\\fcell177.pbm\"  )\nREP_PPMBMP( kcell178, \"building\\pbm\\imagin\\fcell178.pbm\"  )\nREP_PPMBMP( kcell179, \"building\\pbm\\imagin\\fcell179.pbm\"  )\nREP_PPMBMP( kcell180, \"building\\pbm\\imagin\\fcell180.pbm\"  )\nREP_PPMBMP( kcell181, \"building\\pbm\\imagin\\fcell181.pbm\"  )\nREP_PPMBMP( kcell182, \"building\\pbm\\imagin\\fcell182.pbm\"  )\nREP_PPMBMP( kcell183, \"building\\pbm\\imagin\\fcell183.pbm\"  )\nREP_PPMBMP( kcell184, \"building\\pbm\\imagin\\fcell184.pbm\"  )\nREP_PPMBMP( kcell185, \"building\\pbm\\imagin\\fcell185.pbm\"  )\nREP_PPMBMP( kcell186, \"building\\pbm\\imagin\\fcell186.pbm\"  )\nREP_PPMBMP( kcell187, \"building\\pbm\\imagin\\fcell187.pbm\"  )\nREP_PPMBMP( kcell188, \"building\\pbm\\imagin\\fcell188.pbm\"  )\nREP_PPMBMP( kcell189, \"building\\pbm\\imagin\\fcell189.pbm\"  )\nREP_PPMBMP( kcell190, \"building\\pbm\\imagin\\fcell190.pbm\"  )\nREP_PPMBMP( kcell191, \"building\\pbm\\imagin\\fcell191.pbm\"  )\nREP_PPMBMP( kcell192, \"building\\pbm\\imagin\\fcell192.pbm\"  )\nREP_PPMBMP( kcell193, \"building\\pbm\\imagin\\fcell193.pbm\"  )\nREP_PPMBMP( kcell194, \"building\\pbm\\imagin\\fcell194.pbm\"  )\nREP_PPMBMP( kcell195, \"building\\pbm\\imagin\\fcell195.pbm\"  )\nREP_PPMBMP( kcell196, \"building\\pbm\\imagin\\fcell196.pbm\"  )\nREP_PPMBMP( kcell197, \"building\\pbm\\imagin\\fcell197.pbm\"  )\nREP_PPMBMP( kcell198, \"building\\pbm\\imagin\\fcell198.pbm\"  )\nREP_PPMBMP( kcell199, \"building\\pbm\\imagin\\fcell199.pbm\"  )\nREP_PPMBMP( kcell200, \"building\\pbm\\imagin\\fcell200.pbm\"  )\nREP_PPMBMP( kcell201, \"building\\pbm\\imagin\\fcell201.pbm\"  )\nREP_PPMBMP( kcell202, \"building\\pbm\\imagin\\fcell202.pbm\"  )\nREP_PPMBMP( kcell203, \"building\\pbm\\imagin\\fcell203.pbm\"  )\nREP_PPMBMP( kcell204, \"building\\pbm\\imagin\\fcell204.pbm\"  )\nREP_PPMBMP( kcell205, \"building\\pbm\\imagin\\fcell205.pbm\"  )\nREP_PPMBMP( kcell206, \"building\\pbm\\imagin\\fcell206.pbm\"  )\nREP_PPMBMP( kcell207, \"building\\pbm\\imagin\\fcell207.pbm\"  )\nREP_PPMBMP( kcell208, \"building\\pbm\\imagin\\fcell208.pbm\"  )\nREP_PPMBMP( kcell209, \"building\\pbm\\imagin\\fcell209.pbm\"  )\nREP_PPMBMP( kcell210, \"building\\pbm\\imagin\\fcell210.pbm\"  )\nREP_PPMBMP( kcell211, \"building\\pbm\\imagin\\fcell211.pbm\"  )\nREP_PPMBMP( kcell212, \"building\\pbm\\imagin\\fcell212.pbm\"  )\nREP_PPMBMP( kcell213, \"building\\pbm\\imagin\\fcell213.pbm\"  )\nREP_PPMBMP( kcell214, \"building\\pbm\\imagin\\fcell214.pbm\"  )\nREP_PPMBMP( kcell215, \"building\\pbm\\imagin\\fcell215.pbm\"  )\nREP_PPMBMP( kcell216, \"building\\pbm\\imagin\\fcell216.pbm\"  )\nREP_PPMBMP( kcell217, \"building\\pbm\\imagin\\fcell217.pbm\"  )\nREP_PPMBMP( kcell218, \"building\\pbm\\imagin\\fcell218.pbm\"  )\nREP_PPMBMP( kcell219, \"building\\pbm\\imagin\\fcell219.pbm\"  )\nREP_PPMBMP( kcell220, \"building\\pbm\\imagin\\fcell220.pbm\"  )\nREP_PPMBMP( kcell221, \"building\\pbm\\imagin\\fcell221.pbm\"  )\nREP_PPMBMP( kcell222, \"building\\pbm\\imagin\\fcell222.pbm\"  )\nREP_PPMBMP( kcell223, \"building\\pbm\\imagin\\fcell223.pbm\"  )\nREP_PPMBMP( kcell224, \"building\\pbm\\imagin\\fcell224.pbm\"  )\nREP_PPMBMP( kcell225, \"building\\pbm\\imagin\\fcell225.pbm\"  )\nREP_PPMBMP( kcell226, \"building\\pbm\\imagin\\fcell226.pbm\"  )\nREP_PPMBMP( kcell227, \"building\\pbm\\imagin\\fcell227.pbm\"  )\nREP_PPMBMP( kcell228, \"building\\pbm\\imagin\\fcell228.pbm\"  )\nREP_PPMBMP( kcell229, \"building\\pbm\\imagin\\fcell229.pbm\"  )\nREP_PPMBMP( kcell230, \"building\\pbm\\imagin\\fcell230.pbm\"  )\nREP_PPMBMP( kcell231, \"building\\pbm\\imagin\\fcell231.pbm\"  )\nREP_PPMBMP( kcell232, \"building\\pbm\\imagin\\fcell232.pbm\"  )\nREP_PPMBMP( kcell233, \"building\\pbm\\imagin\\fcell233.pbm\"  )\nREP_PPMBMP( kcell234, \"building\\pbm\\imagin\\fcell234.pbm\"  )\nREP_PPMBMP( kcell235, \"building\\pbm\\imagin\\fcell235.pbm\"  )\nREP_PPMBMP( kcell236, \"building\\pbm\\imagin\\fcell236.pbm\"  )\nREP_PPMBMP( kcell237, \"building\\pbm\\imagin\\fcell237.pbm\"  )\nREP_PPMBMP( kcell238, \"building\\pbm\\imagin\\fcell238.pbm\"  )\nREP_PPMBMP( kcell239, \"building\\pbm\\imagin\\fcell239.pbm\"  )\nREP_PPMBMP( kcell240, \"building\\pbm\\imagin\\fcell240.pbm\"  )\nREP_PPMBMP( kcell241, \"building\\pbm\\imagin\\fcell241.pbm\"  )\nREP_PPMBMP( kcell242, \"building\\pbm\\imagin\\fcell242.pbm\"  )\nREP_PPMBMP( kcell243, \"building\\pbm\\imagin\\fcell243.pbm\"  )\nREP_PPMBMP( kcell244, \"building\\pbm\\imagin\\fcell244.pbm\"  )\nREP_PPMBMP( kcell245, \"building\\pbm\\imagin\\fcell245.pbm\"  )\nREP_PPMBMP( kcell246, \"building\\pbm\\imagin\\fcell246.pbm\"  )\nREP_PPMBMP( kcell247, \"building\\pbm\\imagin\\fcell247.pbm\"  )\nREP_PPMBMP( kcell248, \"building\\pbm\\imagin\\fcell248.pbm\"  )\nREP_PPMBMP( kcell249, \"building\\pbm\\imagin\\fcell249.pbm\"  )\nREP_PPMBMP( kcell250, \"building\\pbm\\imagin\\fcell250.pbm\"  )\nREP_PPMBMP( kcell251, \"building\\pbm\\imagin\\fcell251.pbm\"  )\nREP_PPMBMP( kcell252, \"building\\pbm\\imagin\\fcell252.pbm\"  )\nREP_PPMBMP( kcell253, \"building\\pbm\\imagin\\fcell253.pbm\"  )\nREP_PPMBMP( kcell254, \"building\\pbm\\imagin\\fcell254.pbm\"  )\nREP_PPMBMP( kcell255, \"building\\pbm\\imagin\\fcell255.pbm\"  )\nREP_PPMBMP( kcell256, \"building\\pbm\\imagin\\fcell256.pbm\"  )\nREP_PPMBMP( kcell257, \"building\\pbm\\imagin\\fcell257.pbm\"  )\nREP_PPMBMP( kcell258, \"building\\pbm\\imagin\\fcell258.pbm\"  )\nREP_PPMBMP( kcell259, \"building\\pbm\\imagin\\fcell259.pbm\"  )\nREP_PPMBMP( kcell260, \"building\\pbm\\imagin\\fcell260.pbm\"  )\nREP_PPMBMP( kcell261, \"building\\pbm\\imagin\\fcell261.pbm\"  )\nREP_PPMBMP( kcell262, \"building\\pbm\\imagin\\fcell262.pbm\"  )\nREP_PPMBMP( kcell263, \"building\\pbm\\imagin\\fcell263.pbm\"  )\nREP_PPMBMP( kcell264, \"building\\pbm\\imagin\\fcell264.pbm\"  )\nREP_PPMBMP( kcell265, \"building\\pbm\\imagin\\fcell265.pbm\"  )\nREP_PPMBMP( kcell266, \"building\\pbm\\imagin\\fcell266.pbm\"  )\nREP_PPMBMP( kcell267, \"building\\pbm\\imagin\\fcell267.pbm\"  )\nREP_PPMBMP( kcell268, \"building\\pbm\\imagin\\fcell268.pbm\"  )\nREP_PPMBMP( kcell269, \"building\\pbm\\imagin\\fcell269.pbm\"  )\nREP_PPMBMP( kcell270, \"building\\pbm\\imagin\\fcell270.pbm\"  )\nREP_PPMBMP( kcell271, \"building\\pbm\\imagin\\fcell271.pbm\"  )\nREP_PPMBMP( kcell272, \"building\\pbm\\imagin\\fcell272.pbm\"  )\nREP_PPMBMP( kcell273, \"building\\pbm\\imagin\\fcell273.pbm\"  )\nREP_PPMBMP( kcell274, \"building\\pbm\\imagin\\fcell274.pbm\"  )\nREP_PPMBMP( kcell275, \"building\\pbm\\imagin\\fcell275.pbm\"  )\nREP_PPMBMP( kcell276, \"building\\pbm\\imagin\\fcell276.pbm\"  )\nREP_PPMBMP( kcell277, \"building\\pbm\\imagin\\fcell277.pbm\"  )\nREP_PPMBMP( kcell278, \"building\\pbm\\imagin\\fcell278.pbm\"  )\nREP_PPMBMP( kcell279, \"building\\pbm\\imagin\\fcell279.pbm\"  )\nREP_PPMBMP( kcell280, \"building\\pbm\\imagin\\fcell280.pbm\"  )\nREP_PPMBMP( kcell281, \"building\\pbm\\imagin\\fcell281.pbm\"  )\nREP_PPMBMP( kcell282, \"building\\pbm\\imagin\\fcell282.pbm\"  )\nREP_PPMBMP( kcell283, \"building\\pbm\\imagin\\fcell283.pbm\"  )\nREP_PPMBMP( kcell284, \"building\\pbm\\imagin\\fcell284.pbm\"  )\nREP_PPMBMP( kcell285, \"building\\pbm\\imagin\\fcell285.pbm\"  )\nREP_PPMBMP( kcell286, \"building\\pbm\\imagin\\fcell286.pbm\"  )\nREP_PPMBMP( kcell287, \"building\\pbm\\imagin\\fcell287.pbm\"  )\nREP_PPMBMP( kcell288, \"building\\pbm\\imagin\\fcell288.pbm\"  )\nREP_PPMBMP( kcell289, \"building\\pbm\\imagin\\fcell289.pbm\"  )\nREP_PPMBMP( kcell290, \"building\\pbm\\imagin\\fcell290.pbm\"  )\nREP_PPMBMP( kcell291, \"building\\pbm\\imagin\\fcell291.pbm\"  )\nREP_PPMBMP( kcell292, \"building\\pbm\\imagin\\fcell292.pbm\"  )\nREP_PPMBMP( kcell293, \"building\\pbm\\imagin\\fcell293.pbm\"  )\nREP_PPMBMP( kcell294, \"building\\pbm\\imagin\\fcell294.pbm\"  )\nREP_PPMBMP( kcell295, \"building\\pbm\\imagin\\fcell295.pbm\"  )\nREP_PPMBMP( kcell296, \"building\\pbm\\imagin\\fcell296.pbm\"  )\nREP_PPMBMP( kcell297, \"building\\pbm\\imagin\\fcell297.pbm\"  )\nREP_PPMBMP( kcell298, \"building\\pbm\\imagin\\fcell298.pbm\"  )\nREP_PPMBMP( kcell299, \"building\\pbm\\imagin\\fcell299.pbm\"  )\nREP_PPMBMP( kcell300, \"building\\pbm\\imagin\\fcell300.pbm\"  )\nREP_PPMBMP( kcell301, \"building\\pbm\\imagin\\fcell301.pbm\"  )\nREP_PPMBMP( kcell302, \"building\\pbm\\imagin\\fcell302.pbm\"  )\nREP_PPMBMP( kcell303, \"building\\pbm\\imagin\\fcell303.pbm\"  )\nREP_PPMBMP( kcell304, \"building\\pbm\\imagin\\fcell304.pbm\"  )\nREP_PPMBMP( kcell305, \"building\\pbm\\imagin\\fcell305.pbm\"  )\nREP_PPMBMP( kcell306, \"building\\pbm\\imagin\\fcell306.pbm\"  )\nREP_PPMBMP( kcell307, \"building\\pbm\\imagin\\fcell307.pbm\"  )\nREP_PPMBMP( kcell308, \"building\\pbm\\imagin\\fcell308.pbm\"  )\nREP_PPMBMP( kcell309, \"building\\pbm\\imagin\\fcell309.pbm\"  )\nREP_PPMBMP( kcell310, \"building\\pbm\\imagin\\fcell310.pbm\"  )\nREP_PPMBMP( kcell311, \"building\\pbm\\imagin\\fcell311.pbm\"  )\nREP_PPMBMP( kcell312, \"building\\pbm\\imagin\\fcell312.pbm\"  )\nREP_PPMBMP( kcell313, \"building\\pbm\\imagin\\fcell313.pbm\"  )\nREP_PPMBMP( kcell314, \"building\\pbm\\imagin\\fcell314.pbm\"  )\nREP_PPMBMP( kcell315, \"building\\pbm\\imagin\\fcell315.pbm\"  )\nREP_PPMBMP( kcell316, \"building\\pbm\\imagin\\fcell316.pbm\"  )\nREP_PPMBMP( kcell317, \"building\\pbm\\imagin\\fcell317.pbm\"  )\nREP_PPMBMP( kcell318, \"building\\pbm\\imagin\\fcell318.pbm\"  )\nREP_PPMBMP( kcell319, \"building\\pbm\\imagin\\fcell319.pbm\"  )\nREP_PPMBMP( kcell320, \"building\\pbm\\imagin\\fcell320.pbm\"  )\nREP_PPMBMP( kcell321, \"building\\pbm\\imagin\\fcell321.pbm\"  )\nREP_PPMBMP( kcell322, \"building\\pbm\\imagin\\fcell322.pbm\"  )\nREP_PPMBMP( kcell323, \"building\\pbm\\imagin\\fcell323.pbm\"  )\nREP_PPMBMP( kcell324, \"building\\pbm\\imagin\\fcell324.pbm\"  )\nREP_PPMBMP( kcell325, \"building\\pbm\\imagin\\fcell325.pbm\"  )\nREP_PPMBMP( kcell326, \"building\\pbm\\imagin\\fcell326.pbm\"  )\nREP_PPMBMP( kcell327, \"building\\pbm\\imagin\\fcell327.pbm\"  )\nREP_PPMBMP( kcell328, \"building\\pbm\\imagin\\fcell328.pbm\"  )\nREP_PPMBMP( kcell329, \"building\\pbm\\imagin\\fcell329.pbm\"  )\nREP_PPMBMP( kcell330, \"building\\pbm\\imagin\\fcell330.pbm\"  )\nREP_PPMBMP( kcell331, \"building\\pbm\\imagin\\fcell331.pbm\"  )\nREP_PPMBMP( kcell332, \"building\\pbm\\imagin\\fcell332.pbm\"  )\nREP_PPMBMP( kcell333, \"building\\pbm\\imagin\\fcell333.pbm\"  )\nREP_PPMBMP( kcell334, \"building\\pbm\\imagin\\fcell334.pbm\"  )\nREP_PPMBMP( kcell335, \"building\\pbm\\imagin\\fcell335.pbm\"  )\nREP_PPMBMP( kcell336, \"building\\pbm\\imagin\\fcell336.pbm\"  )\nREP_PPMBMP( kcell337, \"building\\pbm\\imagin\\fcell337.pbm\"  )\nREP_PPMBMP( kcell338, \"building\\pbm\\imagin\\fcell338.pbm\"  )\nREP_PPMBMP( kcell339, \"building\\pbm\\imagin\\fcell339.pbm\"  )\nREP_PPMBMP( kcell340, \"building\\pbm\\imagin\\fcell340.pbm\"  )\nREP_PPMBMP( kcell341, \"building\\pbm\\imagin\\fcell341.pbm\"  )\nREP_PPMBMP( kcell342, \"building\\pbm\\imagin\\fcell342.pbm\"  )\nREP_PPMBMP( kcell343, \"building\\pbm\\imagin\\fcell343.pbm\"  )\nREP_PPMBMP( kcell344, \"building\\pbm\\imagin\\fcell344.pbm\"  )\nREP_PPMBMP( kcell345, \"building\\pbm\\imagin\\fcell345.pbm\"  )\nREP_PPMBMP( kcell346, \"building\\pbm\\imagin\\fcell346.pbm\"  )\nREP_PPMBMP( kcell347, \"building\\pbm\\imagin\\fcell347.pbm\"  )\nREP_PPMBMP( kcell348, \"building\\pbm\\imagin\\fcell348.pbm\"  )\nREP_PPMBMP( kcell349, \"building\\pbm\\imagin\\fcell349.pbm\"  )\nREP_PPMBMP( kcell350, \"building\\pbm\\imagin\\fcell350.pbm\"  )\nREP_PPMBMP( kcell351, \"building\\pbm\\imagin\\fcell351.pbm\"  )\nREP_PPMBMP( kcell352, \"building\\pbm\\imagin\\fcell352.pbm\"  )\nREP_PPMBMP( kcell353, \"building\\pbm\\imagin\\fcell353.pbm\"  )\nREP_PPMBMP( kcell354, \"building\\pbm\\imagin\\fcell354.pbm\"  )\nREP_PPMBMP( kcell355, \"building\\pbm\\imagin\\fcell355.pbm\"  )\nREP_PPMBMP( kcell356, \"building\\pbm\\imagin\\fcell356.pbm\"  )\nREP_PPMBMP( kcell357, \"building\\pbm\\imagin\\fcell357.pbm\"  )\nREP_PPMBMP( kcell358, \"building\\pbm\\imagin\\fcell358.pbm\"  )\nREP_PPMBMP( kcell359, \"building\\pbm\\imagin\\fcell359.pbm\"  )\nREP_PPMBMP( kcell360, \"building\\pbm\\imagin\\fcell360.pbm\"  )\nREP_PPMBMP( kcell361, \"building\\pbm\\imagin\\fcell361.pbm\"  )\nREP_PPMBMP( kcell362, \"building\\pbm\\imagin\\fcell362.pbm\"  )\nREP_PPMBMP( kcell363, \"building\\pbm\\imagin\\fcell363.pbm\"  )\nREP_PPMBMP( kcell364, \"building\\pbm\\imagin\\fcell364.pbm\"  )\nREP_PPMBMP( kcell365, \"building\\pbm\\imagin\\fcell365.pbm\"  )\nREP_PPMBMP( kcell366, \"building\\pbm\\imagin\\fcell366.pbm\"  )\nREP_PPMBMP( kcell367, \"building\\pbm\\imagin\\fcell367.pbm\"  )\nREP_PPMBMP( kcell368, \"building\\pbm\\imagin\\fcell368.pbm\"  )\nREP_PPMBMP( kcell369, \"building\\pbm\\imagin\\fcell369.pbm\"  )\nREP_PPMBMP( kcell370, \"building\\pbm\\imagin\\fcell370.pbm\"  )\nREP_PPMBMP( kcell371, \"building\\pbm\\imagin\\fcell371.pbm\"  )\nREP_PPMBMP( kcell372, \"building\\pbm\\imagin\\fcell372.pbm\"  )\nREP_PPMBMP( kcell373, \"building\\pbm\\imagin\\fcell373.pbm\"  )\nREP_PPMBMP( kcell374, \"building\\pbm\\imagin\\fcell374.pbm\"  )\nREP_PPMBMP( kcell375, \"building\\pbm\\imagin\\fcell375.pbm\"  )\nREP_PPMBMP( kcell376, \"building\\pbm\\imagin\\fcell376.pbm\"  )\nREP_PPMBMP( kcell377, \"building\\pbm\\imagin\\fcell377.pbm\"  )\nREP_PPMBMP( kcell378, \"building\\pbm\\imagin\\fcell378.pbm\"  )\nREP_PPMBMP( kcell379, \"building\\pbm\\imagin\\fcell379.pbm\"  )\nREP_PPMBMP( kcell380, \"building\\pbm\\imagin\\fcell380.pbm\"  )\nREP_PPMBMP( kcell381, \"building\\pbm\\imagin\\fcell381.pbm\"  )\nREP_PPMBMP( kcell382, \"building\\pbm\\imagin\\fcell382.pbm\"  )\nREP_PPMBMP( kcell383, \"building\\pbm\\imagin\\fcell383.pbm\"  )\nREP_PPMBMP( kcell384, \"building\\pbm\\imagin\\fcell384.pbm\"  )\nREP_PPMBMP( kcell385, \"building\\pbm\\imagin\\fcell385.pbm\"  )\nREP_PPMBMP( kcell386, \"building\\pbm\\imagin\\fcell386.pbm\"  )\nREP_PPMBMP( kcell387, \"building\\pbm\\imagin\\fcell387.pbm\"  )\nREP_PPMBMP( kcell388, \"building\\pbm\\imagin\\fcell388.pbm\"  )\nREP_PPMBMP( kcell389, \"building\\pbm\\imagin\\fcell389.pbm\"  )\nREP_PPMBMP( kcell390, \"building\\pbm\\imagin\\fcell390.pbm\"  )\nREP_PPMBMP( kcell391, \"building\\pbm\\imagin\\fcell391.pbm\"  )\nREP_PPMBMP( kcell392, \"building\\pbm\\imagin\\fcell392.pbm\"  )\nREP_PPMBMP( kcell393, \"building\\pbm\\imagin\\fcell393.pbm\"  )\nREP_PPMBMP( kcell394, \"building\\pbm\\imagin\\fcell394.pbm\"  )\nREP_PPMBMP( kcell395, \"building\\pbm\\imagin\\fcell395.pbm\"  )\nREP_PPMBMP( kcell396, \"building\\pbm\\imagin\\fcell396.pbm\"  )\nREP_PPMBMP( kcell397, \"building\\pbm\\imagin\\fcell397.pbm\"  )\nREP_PPMBMP( kcell398, \"building\\pbm\\imagin\\fcell398.pbm\"  )\nREP_PPMBMP( kcell399, \"building\\pbm\\imagin\\fcell399.pbm\"  )\nREP_PPMBMP( kcell400, \"building\\pbm\\imagin\\fcell400.pbm\"  )\nREP_PPMBMP( kcell401, \"building\\pbm\\imagin\\fcell401.pbm\"  )\nREP_PPMBMP( kcell402, \"building\\pbm\\imagin\\fcell402.pbm\"  )\nREP_PPMBMP( kcell403, \"building\\pbm\\imagin\\fcell403.pbm\"  )\nREP_PPMBMP( kcell404, \"building\\pbm\\imagin\\fcell404.pbm\"  )\nREP_PPMBMP( kcell405, \"building\\pbm\\imagin\\fcell405.pbm\"  )\nREP_PPMBMP( kcell406, \"building\\pbm\\imagin\\fcell406.pbm\"  )\nREP_PPMBMP( kcell407, \"building\\pbm\\imagin\\fcell407.pbm\"  )\nREP_PPMBMP( kcell408, \"building\\pbm\\imagin\\fcell408.pbm\"  )\nREP_PPMBMP( kcell409, \"building\\pbm\\imagin\\fcell409.pbm\"  )\nREP_PPMBMP( kcell410, \"building\\pbm\\imagin\\fcell410.pbm\"  )\nREP_PPMBMP( kcell411, \"building\\pbm\\imagin\\fcell411.pbm\"  )\nREP_PPMBMP( kcell412, \"building\\pbm\\imagin\\fcell412.pbm\"  )\nREP_PPMBMP( kcell413, \"building\\pbm\\imagin\\fcell413.pbm\"  )\nREP_PPMBMP( kcell414, \"building\\pbm\\imagin\\fcell414.pbm\"  )\nREP_PPMBMP( kcell415, \"building\\pbm\\imagin\\fcell415.pbm\"  )\nREP_PPMBMP( kcell416, \"building\\pbm\\imagin\\fcell416.pbm\"  )\nREP_PPMBMP( kcell417, \"building\\pbm\\imagin\\fcell417.pbm\"  )\nREP_PPMBMP( kcell418, \"building\\pbm\\imagin\\fcell418.pbm\"  )\nREP_PPMBMP( kcell419, \"building\\pbm\\imagin\\fcell419.pbm\"  )\nREP_PPMBMP( kcell420, \"building\\pbm\\imagin\\fcell420.pbm\"  )\nREP_PPMBMP( kcell421, \"building\\pbm\\imagin\\fcell421.pbm\"  )\nREP_PPMBMP( kcell422, \"building\\pbm\\imagin\\fcell422.pbm\"  )\nREP_PPMBMP( kcell423, \"building\\pbm\\imagin\\fcell423.pbm\"  )\nREP_PPMBMP( kcell424, \"building\\pbm\\imagin\\fcell424.pbm\"  )\nREP_PPMBMP( kcell425, \"building\\pbm\\imagin\\fcell425.pbm\"  )\nREP_PPMBMP( kcell426, \"building\\pbm\\imagin\\fcell426.pbm\"  )\nREP_PPMBMP( kcell427, \"building\\pbm\\imagin\\fcell427.pbm\"  )\nREP_PPMBMP( kcell428, \"building\\pbm\\imagin\\fcell428.pbm\"  )\nREP_PPMBMP( kcell429, \"building\\pbm\\imagin\\fcell429.pbm\"  )\nREP_PPMBMP( kcell430, \"building\\pbm\\imagin\\fcell430.pbm\"  )\nREP_PPMBMP( kcell431, \"building\\pbm\\imagin\\fcell431.pbm\"  )\nREP_PPMBMP( kcell432, \"building\\pbm\\imagin\\fcell432.pbm\"  )\nREP_PPMBMP( kcell433, \"building\\pbm\\imagin\\fcell433.pbm\"  )\nREP_PPMBMP( kcell434, \"building\\pbm\\imagin\\fcell434.pbm\"  )\nREP_PPMBMP( kcell435, \"building\\pbm\\imagin\\fcell435.pbm\"  )\nREP_PPMBMP( kcell436, \"building\\pbm\\imagin\\fcell436.pbm\"  )\nREP_PPMBMP( kcell437, \"building\\pbm\\imagin\\fcell437.pbm\"  )\nREP_PPMBMP( kcell438, \"building\\pbm\\imagin\\fcell438.pbm\"  )\nREP_PPMBMP( kcell439, \"building\\pbm\\imagin\\fcell439.pbm\"  )\nREP_PPMBMP( kcell440, \"building\\pbm\\imagin\\fcell440.pbm\"  )\nREP_PPMBMP( kcell441, \"building\\pbm\\imagin\\fcell441.pbm\"  )\nREP_PPMBMP( kcell442, \"building\\pbm\\imagin\\fcell442.pbm\"  )\nREP_PPMBMP( kcell443, \"building\\pbm\\imagin\\fcell443.pbm\"  )\nREP_PPMBMP( kcell444, \"building\\pbm\\imagin\\fcell444.pbm\"  )\nREP_PPMBMP( kcell445, \"building\\pbm\\imagin\\fcell445.pbm\"  )\nREP_PPMBMP( kcell446, \"building\\pbm\\imagin\\fcell446.pbm\"  )\nREP_PPMBMP( kcell447, \"building\\pbm\\imagin\\fcell447.pbm\"  )\nREP_PPMBMP( kcell448, \"building\\pbm\\imagin\\fcell448.pbm\"  )\nREP_PPMBMP( kcell449, \"building\\pbm\\imagin\\fcell449.pbm\"  )\nREP_PPMBMP( kcell450, \"building\\pbm\\imagin\\fcell450.pbm\"  )\n"
  },
  {
    "path": "src/building/mzroller.seq",
    "content": "REP_PPMBMP( kcell1, \"building\\pbm\\imagin\\cell1.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\imagin\\cell2.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\imagin\\cell3.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\imagin\\cell4.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\imagin\\cell5.pbm\" )\nREP_PPMBMP( kcell6, \"building\\pbm\\imagin\\cell6.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\imagin\\cell7.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\imagin\\cell8.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\imagin\\cell9.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\imagin\\cell10.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\imagin\\cell11.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\imagin\\cell12.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\imagin\\cell13.pbm\" )\nREP_PPMBMP( kcell14, \"building\\pbm\\imagin\\cell14.pbm\" )\nREP_PPMBMP( kcell15, \"building\\pbm\\imagin\\cell15.pbm\" )\nREP_PPMBMP( kcell16, \"building\\pbm\\imagin\\cell16.pbm\" )\nREP_PPMBMP( kcell17, \"building\\pbm\\imagin\\cell17.pbm\" )\nREP_PPMBMP( kcell18,  \"building\\pbm\\imagin\\cell18.pbm\" )\nREP_PPMBMP( kcell19,  \"building\\pbm\\imagin\\cell19.pbm\" )\nREP_PPMBMP( kcell20,  \"building\\pbm\\imagin\\cell20.pbm\" )\nREP_PPMBMP( kcell21,  \"building\\pbm\\imagin\\cell21.pbm\" )\nREP_PPMBMP( kcell22,  \"building\\pbm\\imagin\\cell22.pbm\" )\nREP_PPMBMP( kcell23,  \"building\\pbm\\imagin\\cell23.pbm\" )\nREP_PPMBMP( kcell24,  \"building\\pbm\\imagin\\cell24.pbm\" )\nREP_PPMBMP( kcell25,  \"building\\pbm\\imagin\\cell25.pbm\" )\nREP_PPMBMP( kcell26,  \"building\\pbm\\imagin\\cell26.pbm\" )\nREP_PPMBMP( kcell27,  \"building\\pbm\\imagin\\cell27.pbm\" )\nREP_PPMBMP( kcell28,  \"building\\pbm\\imagin\\cell28.pbm\" )\nREP_PPMBMP( kcell29,  \"building\\pbm\\imagin\\cell29.pbm\" )\nREP_PPMBMP( kcell30,  \"building\\pbm\\imagin\\cell30.pbm\" )\nREP_PPMBMP( kcell31, \"building\\pbm\\imagin\\cell31.pbm\" )\nREP_PPMBMP( kcell32, \"building\\pbm\\imagin\\cell32.pbm\" )\nREP_PPMBMP( kcell33, \"building\\pbm\\imagin\\cell33.pbm\" )\nREP_PPMBMP( kcell34, \"building\\pbm\\imagin\\cell34.pbm\" )\nREP_PPMBMP( kcell35, \"building\\pbm\\imagin\\cell35.pbm\" )\nREP_PPMBMP( kcell36, \"building\\pbm\\imagin\\cell36.pbm\" )\nREP_PPMBMP( kcell37, \"building\\pbm\\imagin\\cell37.pbm\" )\nREP_PPMBMP( kcell38, \"building\\pbm\\imagin\\cell38.pbm\" )\nREP_PPMBMP( kcell39, \"building\\pbm\\imagin\\cell39.pbm\" )\nREP_PPMBMP( kcell40, \"building\\pbm\\imagin\\cell40.pbm\" )\nREP_PPMBMP( kcell41, \"building\\pbm\\imagin\\cell41.pbm\" )\nREP_PPMBMP( kcell42, \"building\\pbm\\imagin\\cell42.pbm\" )\nREP_PPMBMP( kcell43, \"building\\pbm\\imagin\\cell43.pbm\" )\nREP_PPMBMP( kcell44, \"building\\pbm\\imagin\\cell44.pbm\" )\nREP_PPMBMP( kcell45, \"building\\pbm\\imagin\\cell45.pbm\" )\nREP_PPMBMP( kcell46, \"building\\pbm\\imagin\\cell46.pbm\" )\nREP_PPMBMP( kcell47, \"building\\pbm\\imagin\\cell47.pbm\" )\nREP_PPMBMP( kcell48, \"building\\pbm\\imagin\\cell48.pbm\" )\nREP_PPMBMP( kcell49, \"building\\pbm\\imagin\\cell49.pbm\" )\nREP_PPMBMP( kcell50, \"building\\pbm\\imagin\\cell50.pbm\" )\nREP_PPMBMP( kcell51, \"building\\pbm\\imagin\\cell51.pbm\" )\nREP_PPMBMP( kcell52, \"building\\pbm\\imagin\\cell52.pbm\" )\nREP_PPMBMP( kcell53, \"building\\pbm\\imagin\\cell53.pbm\" )\nREP_PPMBMP( kcell54, \"building\\pbm\\imagin\\cell54.pbm\" )\nREP_PPMBMP( kcell55, \"building\\pbm\\imagin\\cell55.pbm\" )\nREP_PPMBMP( kcell56, \"building\\pbm\\imagin\\cell56.pbm\" )\nREP_PPMBMP( kcell57, \"building\\pbm\\imagin\\cell57.pbm\" )\nREP_PPMBMP( kcell58, \"building\\pbm\\imagin\\cell58.pbm\" )\nREP_PPMBMP( kcell59, \"building\\pbm\\imagin\\cell59.pbm\" )\nREP_PPMBMP( kcell60, \"building\\pbm\\imagin\\cell60.pbm\" )\nREP_PPMBMP( kcell61, \"building\\pbm\\imagin\\cell61.pbm\" )\nREP_PPMBMP( kcell62, \"building\\pbm\\imagin\\cell62.pbm\" )\nREP_PPMBMP( kcell63, \"building\\pbm\\imagin\\cell63.pbm\" )\nREP_PPMBMP( kcell64, \"building\\pbm\\imagin\\cell64.pbm\" )\nREP_PPMBMP( kcell65, \"building\\pbm\\imagin\\cell65.pbm\" )\nREP_PPMBMP( kcell66, \"building\\pbm\\imagin\\cell66.pbm\" )\nREP_PPMBMP( kcell67, \"building\\pbm\\imagin\\cell67.pbm\" )\nREP_PPMBMP( kcell68, \"building\\pbm\\imagin\\cell68.pbm\" )\nREP_PPMBMP( kcell69, \"building\\pbm\\imagin\\cell69.pbm\" )\nREP_PPMBMP( kcell70, \"building\\pbm\\imagin\\cell70.pbm\" )\nREP_PPMBMP( kcell71, \"building\\pbm\\imagin\\cell71.pbm\" )\nREP_PPMBMP( kcell72, \"building\\pbm\\imagin\\cell72.pbm\" )\nREP_PPMBMP( kcell73, \"building\\pbm\\imagin\\cell73.pbm\" )\nREP_PPMBMP( kcell74, \"building\\pbm\\imagin\\cell74.pbm\" )\nREP_PPMBMP( kcell75, \"building\\pbm\\imagin\\cell75.pbm\" )\nREP_PPMBMP( kcell76, \"building\\pbm\\imagin\\cell76.pbm\" )\nREP_PPMBMP( kcell77, \"building\\pbm\\imagin\\cell77.pbm\" )\nREP_PPMBMP( kcell78, \"building\\pbm\\imagin\\cell78.pbm\" )\nREP_PPMBMP( kcell79, \"building\\pbm\\imagin\\cell79.pbm\" )\nREP_PPMBMP( kcell80, \"building\\pbm\\imagin\\cell80.pbm\" )\nREP_PPMBMP( kcell81, \"building\\pbm\\imagin\\cell81.pbm\" )\nREP_PPMBMP( kcell82, \"building\\pbm\\imagin\\cell82.pbm\" )\nREP_PPMBMP( kcell83, \"building\\pbm\\imagin\\cell83.pbm\" )\nREP_PPMBMP( kcell84, \"building\\pbm\\imagin\\cell84.pbm\" )\n\t\t\t\t  \nREP_PPMBMP( kcell85, \"building\\pbm\\imagin\\cell85.pbm\" )\nREP_PPMBMP( kcell86, \"building\\pbm\\imagin\\cell86.pbm\" )\nREP_PPMBMP( kcell87, \"building\\pbm\\imagin\\cell87.pbm\" )\nREP_PPMBMP( kcell88, \"building\\pbm\\imagin\\cell88.pbm\" )\nREP_PPMBMP( kcell89, \"building\\pbm\\imagin\\cell89.pbm\" )\nREP_PPMBMP( kcell90, \"building\\pbm\\imagin\\cell90.pbm\" )\nREP_PPMBMP( kcell91, \"building\\pbm\\imagin\\cell91.pbm\" )\nREP_PPMBMP( kcell92, \"building\\pbm\\imagin\\cell92.pbm\" )\nREP_PPMBMP( kcell93, \"building\\pbm\\imagin\\cell93.pbm\" )\nREP_PPMBMP( kcell94, \"building\\pbm\\imagin\\cell94.pbm\" )\nREP_PPMBMP( kcell95, \"building\\pbm\\imagin\\cell95.pbm\" )\nREP_PPMBMP( kcell96, \"building\\pbm\\imagin\\cell96.pbm\" )\nREP_PPMBMP( kcell97, \"building\\pbm\\imagin\\cell97.pbm\" )\nREP_PPMBMP( kcell98, \"building\\pbm\\imagin\\cell98.pbm\" )\nREP_PPMBMP( kcell99, \"building\\pbm\\imagin\\cell99.pbm\" )\nREP_PPMBMP( kcell100, \"building\\pbm\\imagin\\cell100.pbm\" )\nREP_PPMBMP( kcell101, \"building\\pbm\\imagin\\cell101.pbm\" )\nREP_PPMBMP( kcell102, \"building\\pbm\\imagin\\cell102.pbm\" )\nREP_PPMBMP( kcell103, \"building\\pbm\\imagin\\cell103.pbm\" )\nREP_PPMBMP( kcell104, \"building\\pbm\\imagin\\cell104.pbm\" )\n\t\t\t\t  \n"
  },
  {
    "path": "src/building/mzstudio.seq",
    "content": "// Animation sequence for McZee in studio \n//\n// 1-68\t\tMcZee on the phone.\n// 69-139\tStudio Intro.\n// 301-416  Intro the tools\n\nREP_PPMBMP( kcell1, \"building\\pbm\\studio\\mczee1.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\studio\\mczee2.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\studio\\mczee3.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\studio\\mczee4.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\studio\\mczee5.pbm\" )\nREP_PPMBMP( kcell6, \"building\\pbm\\studio\\mczee6.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\studio\\mczee7.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\studio\\mczee8.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\studio\\mczee9.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\studio\\mczee10.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\studio\\mczee11.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\studio\\mczee12.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\studio\\mczee13.pbm\" )\nREP_PPMBMP( kcell14, \"building\\pbm\\studio\\mczee14.pbm\" )\nREP_PPMBMP( kcell15, \"building\\pbm\\studio\\mczee15.pbm\" )\nREP_PPMBMP( kcell16, \"building\\pbm\\studio\\mczee16.pbm\" )\nREP_PPMBMP( kcell17, \"building\\pbm\\studio\\mczee17.pbm\" )\nREP_PPMBMP( kcell18, \"building\\pbm\\studio\\mczee18.pbm\" )\nREP_PPMBMP( kcell19, \"building\\pbm\\studio\\mczee19.pbm\" )\nREP_PPMBMP( kcell20, \"building\\pbm\\studio\\mczee20.pbm\" )\nREP_PPMBMP( kcell21, \"building\\pbm\\studio\\mczee21.pbm\" )\nREP_PPMBMP( kcell22, \"building\\pbm\\studio\\mczee22.pbm\" )\nREP_PPMBMP( kcell23, \"building\\pbm\\studio\\mczee23.pbm\" )\nREP_PPMBMP( kcell24, \"building\\pbm\\studio\\mczee24.pbm\" )\nREP_PPMBMP( kcell25, \"building\\pbm\\studio\\mczee25.pbm\" )\nREP_PPMBMP( kcell26, \"building\\pbm\\studio\\mczee26.pbm\" )\nREP_PPMBMP( kcell27, \"building\\pbm\\studio\\mczee27.pbm\" )\nREP_PPMBMP( kcell28, \"building\\pbm\\studio\\mczee28.pbm\" )\nREP_PPMBMP( kcell29, \"building\\pbm\\studio\\mczee29.pbm\" )\nREP_PPMBMP( kcell30, \"building\\pbm\\studio\\mczee30.pbm\" )\nREP_PPMBMP( kcell31, \"building\\pbm\\studio\\mczee31.pbm\" )\nREP_PPMBMP( kcell32, \"building\\pbm\\studio\\mczee32.pbm\" )\nREP_PPMBMP( kcell33, \"building\\pbm\\studio\\mczee33.pbm\" )\nREP_PPMBMP( kcell34, \"building\\pbm\\studio\\mczee34.pbm\" )\nREP_PPMBMP( kcell35, \"building\\pbm\\studio\\mczee35.pbm\" )\nREP_PPMBMP( kcell36, \"building\\pbm\\studio\\mczee36.pbm\" )\nREP_PPMBMP( kcell37, \"building\\pbm\\studio\\mczee37.pbm\" )\nREP_PPMBMP( kcell38, \"building\\pbm\\studio\\mczee38.pbm\" )\nREP_PPMBMP( kcell39, \"building\\pbm\\studio\\mczee39.pbm\" )\nREP_PPMBMP( kcell40, \"building\\pbm\\studio\\mczee40.pbm\" )\nREP_PPMBMP( kcell41, \"building\\pbm\\studio\\mczee41.pbm\" )\nREP_PPMBMP( kcell42, \"building\\pbm\\studio\\mczee42.pbm\" )\nREP_PPMBMP( kcell43, \"building\\pbm\\studio\\mczee43.pbm\" )\nREP_PPMBMP( kcell44, \"building\\pbm\\studio\\mczee44.pbm\" )\nREP_PPMBMP( kcell45, \"building\\pbm\\studio\\mczee45.pbm\" )\nREP_PPMBMP( kcell46, \"building\\pbm\\studio\\mczee46.pbm\" )\nREP_PPMBMP( kcell47, \"building\\pbm\\studio\\mczee47.pbm\" )\nREP_PPMBMP( kcell48, \"building\\pbm\\studio\\mczee48.pbm\" )\nREP_PPMBMP( kcell49, \"building\\pbm\\studio\\mczee49.pbm\" )\nREP_PPMBMP( kcell50, \"building\\pbm\\studio\\mczee50.pbm\" )\nREP_PPMBMP( kcell51, \"building\\pbm\\studio\\mczee51.pbm\" )\nREP_PPMBMP( kcell52, \"building\\pbm\\studio\\mczee52.pbm\" )\nREP_PPMBMP( kcell53, \"building\\pbm\\studio\\mczee53.pbm\" )\nREP_PPMBMP( kcell54, \"building\\pbm\\studio\\mczee54.pbm\" )\nREP_PPMBMP( kcell55, \"building\\pbm\\studio\\mczee55.pbm\" )\nREP_PPMBMP( kcell56, \"building\\pbm\\studio\\mczee56.pbm\" )\nREP_PPMBMP( kcell57, \"building\\pbm\\studio\\mczee57.pbm\" )\nREP_PPMBMP( kcell58, \"building\\pbm\\studio\\mczee58.pbm\" )\nREP_PPMBMP( kcell59, \"building\\pbm\\studio\\mczee59.pbm\" )\nREP_PPMBMP( kcell60, \"building\\pbm\\studio\\mczee60.pbm\" )\nREP_PPMBMP( kcell61, \"building\\pbm\\studio\\mczee61.pbm\" )\nREP_PPMBMP( kcell62, \"building\\pbm\\studio\\mczee62.pbm\" )\nREP_PPMBMP( kcell63, \"building\\pbm\\studio\\mczee63.pbm\" )\nREP_PPMBMP( kcell64, \"building\\pbm\\studio\\mczee64.pbm\" )\nREP_PPMBMP( kcell65, \"building\\pbm\\studio\\mczee65.pbm\" )\nREP_PPMBMP( kcell66, \"building\\pbm\\studio\\mczee66.pbm\" )\nREP_PPMBMP( kcell67, \"building\\pbm\\studio\\mczee67.pbm\" )\nREP_PPMBMP( kcell68, \"building\\pbm\\studio\\mczee68.pbm\" )\nREP_PPMBMP( kcell69, \"building\\pbm\\studio\\mczee69.pbm\" )\nREP_PPMBMP( kcell70, \"building\\pbm\\studio\\mczee70.pbm\" )\nREP_PPMBMP( kcell71, \"building\\pbm\\studio\\mczee71.pbm\" )\nREP_PPMBMP( kcell72, \"building\\pbm\\studio\\mczee72.pbm\" )\nREP_PPMBMP( kcell73, \"building\\pbm\\studio\\mczee73.pbm\" )\nREP_PPMBMP( kcell74, \"building\\pbm\\studio\\mczee74.pbm\" )\nREP_PPMBMP( kcell75, \"building\\pbm\\studio\\mczee75.pbm\" )\nREP_PPMBMP( kcell76, \"building\\pbm\\studio\\mczee76.pbm\" )\nREP_PPMBMP( kcell77, \"building\\pbm\\studio\\mczee77.pbm\" )\nREP_PPMBMP( kcell78, \"building\\pbm\\studio\\mczee78.pbm\" )\nREP_PPMBMP( kcell79, \"building\\pbm\\studio\\mczee79.pbm\" )\nREP_PPMBMP( kcell80, \"building\\pbm\\studio\\mczee80.pbm\" )\nREP_PPMBMP( kcell81, \"building\\pbm\\studio\\mczee81.pbm\" )\nREP_PPMBMP( kcell82, \"building\\pbm\\studio\\mczee82.pbm\" )\nREP_PPMBMP( kcell83, \"building\\pbm\\studio\\mczee83.pbm\" )\nREP_PPMBMP( kcell84, \"building\\pbm\\studio\\mczee84.pbm\" )\nREP_PPMBMP( kcell85, \"building\\pbm\\studio\\mczee85.pbm\" )\nREP_PPMBMP( kcell86, \"building\\pbm\\studio\\mczee86.pbm\" )\nREP_PPMBMP( kcell87, \"building\\pbm\\studio\\mczee87.pbm\" )\nREP_PPMBMP( kcell88, \"building\\pbm\\studio\\mczee88.pbm\" )\nREP_PPMBMP( kcell89, \"building\\pbm\\studio\\mczee89.pbm\" )\nREP_PPMBMP( kcell90, \"building\\pbm\\studio\\mczee90.pbm\" )\nREP_PPMBMP( kcell91, \"building\\pbm\\studio\\mczee91.pbm\" )\nREP_PPMBMP( kcell92, \"building\\pbm\\studio\\mczee92.pbm\" )\nREP_PPMBMP( kcell93, \"building\\pbm\\studio\\mczee93.pbm\" )\nREP_PPMBMP( kcell94, \"building\\pbm\\studio\\mczee94.pbm\" )\nREP_PPMBMP( kcell95, \"building\\pbm\\studio\\mczee95.pbm\" )\nREP_PPMBMP( kcell96, \"building\\pbm\\studio\\mczee96.pbm\" )\nREP_PPMBMP( kcell97, \"building\\pbm\\studio\\mczee97.pbm\" )\nREP_PPMBMP( kcell98, \"building\\pbm\\studio\\mczee98.pbm\" )\nREP_PPMBMP( kcell99, \"building\\pbm\\studio\\mczee99.pbm\" )\nREP_PPMBMP( kcell100, \"building\\pbm\\studio\\mczee100.pbm\" )\nREP_PPMBMP( kcell101, \"building\\pbm\\studio\\mczee101.pbm\" )\nREP_PPMBMP( kcell102, \"building\\pbm\\studio\\mczee102.pbm\" )\nREP_PPMBMP( kcell103, \"building\\pbm\\studio\\mczee103.pbm\" )\nREP_PPMBMP( kcell104, \"building\\pbm\\studio\\mczee104.pbm\" )\nREP_PPMBMP( kcell105, \"building\\pbm\\studio\\mczee105.pbm\" )\nREP_PPMBMP( kcell106, \"building\\pbm\\studio\\mczee106.pbm\" )\nREP_PPMBMP( kcell107, \"building\\pbm\\studio\\mczee107.pbm\" )\nREP_PPMBMP( kcell108, \"building\\pbm\\studio\\mczee108.pbm\" )\nREP_PPMBMP( kcell109, \"building\\pbm\\studio\\mczee109.pbm\" )\nREP_PPMBMP( kcell110, \"building\\pbm\\studio\\mczee110.pbm\" )\nREP_PPMBMP( kcell111, \"building\\pbm\\studio\\mczee111.pbm\" )\nREP_PPMBMP( kcell112, \"building\\pbm\\studio\\mczee112.pbm\" )\nREP_PPMBMP( kcell113, \"building\\pbm\\studio\\mczee113.pbm\" )\nREP_PPMBMP( kcell114, \"building\\pbm\\studio\\mczee114.pbm\" )\nREP_PPMBMP( kcell115, \"building\\pbm\\studio\\mczee115.pbm\" )\nREP_PPMBMP( kcell116, \"building\\pbm\\studio\\mczee116.pbm\" )\nREP_PPMBMP( kcell117, \"building\\pbm\\studio\\mczee117.pbm\" )\nREP_PPMBMP( kcell118, \"building\\pbm\\studio\\mczee118.pbm\" )\nREP_PPMBMP( kcell119, \"building\\pbm\\studio\\mczee119.pbm\" )\nREP_PPMBMP( kcell120, \"building\\pbm\\studio\\mczee120.pbm\" )\nREP_PPMBMP( kcell121, \"building\\pbm\\studio\\mczee121.pbm\" )\nREP_PPMBMP( kcell122, \"building\\pbm\\studio\\mczee122.pbm\" )\nREP_PPMBMP( kcell123, \"building\\pbm\\studio\\mczee123.pbm\" )\nREP_PPMBMP( kcell124, \"building\\pbm\\studio\\mczee124.pbm\" )\nREP_PPMBMP( kcell125, \"building\\pbm\\studio\\mczee125.pbm\" )\nREP_PPMBMP( kcell126, \"building\\pbm\\studio\\mczee126.pbm\" )\nREP_PPMBMP( kcell127, \"building\\pbm\\studio\\mczee127.pbm\" )\nREP_PPMBMP( kcell128, \"building\\pbm\\studio\\mczee128.pbm\" )\nREP_PPMBMP( kcell129, \"building\\pbm\\studio\\mczee129.pbm\" )\nREP_PPMBMP( kcell130, \"building\\pbm\\studio\\mczee130.pbm\" )\nREP_PPMBMP( kcell131, \"building\\pbm\\studio\\mczee131.pbm\" )\nREP_PPMBMP( kcell132, \"building\\pbm\\studio\\mczee132.pbm\" )\nREP_PPMBMP( kcell133, \"building\\pbm\\studio\\mczee133.pbm\" )\nREP_PPMBMP( kcell134, \"building\\pbm\\studio\\mczee134.pbm\" )\nREP_PPMBMP( kcell135, \"building\\pbm\\studio\\mczee135.pbm\" )\nREP_PPMBMP( kcell136, \"building\\pbm\\studio\\mczee136.pbm\" )\nREP_PPMBMP( kcell137, \"building\\pbm\\studio\\mczee137.pbm\" )\nREP_PPMBMP( kcell138, \"building\\pbm\\studio\\mczee138.pbm\" )\n\n\n\t\t\t\t \nREP_PPMBMP( kcell451, \"building\\pbm\\studio\\cyc1.pbm\" )\nREP_PPMBMP( kcell452, \"building\\pbm\\studio\\cyc2.pbm\" )\nREP_PPMBMP( kcell453, \"building\\pbm\\studio\\cyc3.pbm\" )\nREP_PPMBMP( kcell454, \"building\\pbm\\studio\\cyc4.pbm\" )\nREP_PPMBMP( kcell455, \"building\\pbm\\studio\\cyc5.pbm\" )\nREP_PPMBMP( kcell456, \"building\\pbm\\studio\\cyc6.pbm\" )\nREP_PPMBMP( kcell457, \"building\\pbm\\studio\\cyc7.pbm\" )\nREP_PPMBMP( kcell458, \"building\\pbm\\studio\\cyc8.pbm\" )\nREP_PPMBMP( kcell459, \"building\\pbm\\studio\\cyc9.pbm\" )\nREP_PPMBMP( kcell460, \"building\\pbm\\studio\\cyc10.pbm\" )\nREP_PPMBMP( kcell461, \"building\\pbm\\studio\\cyc11.pbm\" )\nREP_PPMBMP( kcell462, \"building\\pbm\\studio\\cyc12.pbm\" )\nREP_PPMBMP( kcell463, \"building\\pbm\\studio\\cyc13.pbm\" )\nREP_PPMBMP( kcell464, \"building\\pbm\\studio\\cyc14.pbm\" )\nREP_PPMBMP( kcell465, \"building\\pbm\\studio\\cyc15.pbm\" )\nREP_PPMBMP( kcell466, \"building\\pbm\\studio\\cyc16.pbm\" )\nREP_PPMBMP( kcell467, \"building\\pbm\\studio\\cyc17.pbm\" )\nREP_PPMBMP( kcell468, \"building\\pbm\\studio\\cyc18.pbm\" )\nREP_PPMBMP( kcell469, \"building\\pbm\\studio\\cyc19.pbm\" )\nREP_PPMBMP( kcell470, \"building\\pbm\\studio\\cyc20.pbm\" )\nREP_PPMBMP( kcell471, \"building\\pbm\\studio\\cyc21.pbm\" )\nREP_PPMBMP( kcell472, \"building\\pbm\\studio\\cyc22.pbm\" )\nREP_PPMBMP( kcell473, \"building\\pbm\\studio\\cyc23.pbm\" )\nREP_PPMBMP( kcell474, \"building\\pbm\\studio\\cyc24.pbm\" )\nREP_PPMBMP( kcell475, \"building\\pbm\\studio\\cyc25.pbm\" )\nREP_PPMBMP( kcell476, \"building\\pbm\\studio\\cyc26.pbm\" )\nREP_PPMBMP( kcell477, \"building\\pbm\\studio\\cyc27.pbm\" )\nREP_PPMBMP( kcell478, \"building\\pbm\\studio\\cyc28.pbm\" )\nREP_PPMBMP( kcell479, \"building\\pbm\\studio\\cyc29.pbm\" )\nREP_PPMBMP( kcell480, \"building\\pbm\\studio\\cyc30.pbm\" )\nREP_PPMBMP( kcell481, \"building\\pbm\\studio\\cyc31.pbm\" )\nREP_PPMBMP( kcell482, \"building\\pbm\\studio\\cyc32.pbm\" )\nREP_PPMBMP( kcell483, \"building\\pbm\\studio\\cyc33.pbm\" )\nREP_PPMBMP( kcell484, \"building\\pbm\\studio\\cyc34.pbm\" )\nREP_PPMBMP( kcell485, \"building\\pbm\\studio\\cyc35.pbm\" )\nREP_PPMBMP( kcell486, \"building\\pbm\\studio\\cyc36.pbm\" )\nREP_PPMBMP( kcell487, \"building\\pbm\\studio\\cyc37.pbm\" )\nREP_PPMBMP( kcell488, \"building\\pbm\\studio\\cyc38.pbm\" )\nREP_PPMBMP( kcell489, \"building\\pbm\\studio\\cyc39.pbm\" )\nREP_PPMBMP( kcell490, \"building\\pbm\\studio\\cyc40.pbm\" )\nREP_PPMBMP( kcell491, \"building\\pbm\\studio\\cyc41.pbm\" )\nREP_PPMBMP( kcell492, \"building\\pbm\\studio\\cyc42.pbm\" )\nREP_PPMBMP( kcell493, \"building\\pbm\\studio\\cyc43.pbm\" )\nREP_PPMBMP( kcell494, \"building\\pbm\\studio\\cyc44.pbm\" )\nREP_PPMBMP( kcell495, \"building\\pbm\\studio\\cyc45.pbm\" )\nREP_PPMBMP( kcell496, \"building\\pbm\\studio\\cyc46.pbm\" )\nREP_PPMBMP( kcell497, \"building\\pbm\\studio\\cyc47.pbm\" )\nREP_PPMBMP( kcell498, \"building\\pbm\\studio\\cyc48.pbm\" )\nREP_PPMBMP( kcell499, \"building\\pbm\\studio\\cyc49.pbm\" )\nREP_PPMBMP( kcell500, \"building\\pbm\\studio\\cyc50.pbm\" )\nREP_PPMBMP( kcell501, \"building\\pbm\\studio\\cyc51.pbm\" )\nREP_PPMBMP( kcell502, \"building\\pbm\\studio\\cyc52.pbm\" )\nREP_PPMBMP( kcell503, \"building\\pbm\\studio\\cyc53.pbm\" )\nREP_PPMBMP( kcell504, \"building\\pbm\\studio\\cyc54.pbm\" )\nREP_PPMBMP( kcell505, \"building\\pbm\\studio\\cyc55.pbm\" )\nREP_PPMBMP( kcell506, \"building\\pbm\\studio\\cyc56.pbm\" )\nREP_PPMBMP( kcell507, \"building\\pbm\\studio\\cyc57.pbm\" )\nREP_PPMBMP( kcell508, \"building\\pbm\\studio\\cyc58.pbm\" )\nREP_PPMBMP( kcell509, \"building\\pbm\\studio\\cyc59.pbm\" )\nREP_PPMBMP( kcell510, \"building\\pbm\\studio\\cyc60.pbm\" )\nREP_PPMBMP( kcell511, \"building\\pbm\\studio\\cyc61.pbm\" )\nREP_PPMBMP( kcell512, \"building\\pbm\\studio\\cyc62.pbm\" )\nREP_PPMBMP( kcell513, \"building\\pbm\\studio\\cyc63.pbm\" )\nREP_PPMBMP( kcell514, \"building\\pbm\\studio\\cyc64.pbm\" )\nREP_PPMBMP( kcell515, \"building\\pbm\\studio\\cyc65.pbm\" )\nREP_PPMBMP( kcell516, \"building\\pbm\\studio\\cyc66.pbm\" )\nREP_PPMBMP( kcell517, \"building\\pbm\\studio\\cyc67.pbm\" )\nREP_PPMBMP( kcell518, \"building\\pbm\\studio\\cyc68.pbm\" )\n"
  },
  {
    "path": "src/building/mzthea.seq",
    "content": "// Animation sequences for the theater.\n\n// Prepacked.\n\n\n\nREP_PPMBMP( kcell1, \"building\\pbm\\theatre\\thr2a1.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\theatre\\thr2a2.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\theatre\\thr2a3.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\theatre\\thr2a4.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\theatre\\thr2a5.pbm\" )\nREP_PPMBMP( kcell6, \"building\\pbm\\theatre\\thr2a6.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\theatre\\thr2a7.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\theatre\\thr2a8.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\theatre\\thr2a9.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\theatre\\thr2a10.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\theatre\\thr2a11.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\theatre\\thr2a12.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\theatre\\thr2a13.pbm\" )\n\nREP_PPMBMP( kcell21, \"building\\pbm\\theatre\\thr2b1.pbm\" )\nREP_PPMBMP( kcell22, \"building\\pbm\\theatre\\thr2b2.pbm\" )\nREP_PPMBMP( kcell23, \"building\\pbm\\theatre\\thr2b3.pbm\" )\nREP_PPMBMP( kcell24, \"building\\pbm\\theatre\\thr2b4.pbm\" )\nREP_PPMBMP( kcell25, \"building\\pbm\\theatre\\thr2b5.pbm\" )\nREP_PPMBMP( kcell26, \"building\\pbm\\theatre\\thr2b6.pbm\" )\nREP_PPMBMP( kcell27, \"building\\pbm\\theatre\\thr2b7.pbm\" )\nREP_PPMBMP( kcell28, \"building\\pbm\\theatre\\thr2b8.pbm\" )\nREP_PPMBMP( kcell29, \"building\\pbm\\theatre\\thr2b9.pbm\" )\nREP_PPMBMP( kcell30, \"building\\pbm\\theatre\\thr2b10.pbm\" )\nREP_PPMBMP( kcell31, \"building\\pbm\\theatre\\thr2b11.pbm\" )\nREP_PPMBMP( kcell32, \"building\\pbm\\theatre\\thr2b12.pbm\" )\nREP_PPMBMP( kcell33, \"building\\pbm\\theatre\\thr2b13.pbm\" )\nREP_PPMBMP( kcell34, \"building\\pbm\\theatre\\thr2b14.pbm\" )\nREP_PPMBMP( kcell35, \"building\\pbm\\theatre\\thr2b15.pbm\" )\nREP_PPMBMP( kcell36, \"building\\pbm\\theatre\\thr2b16.pbm\" )\nREP_PPMBMP( kcell37, \"building\\pbm\\theatre\\thr2b17.pbm\" )\nREP_PPMBMP( kcell38, \"building\\pbm\\theatre\\thr2b18.pbm\" )\nREP_PPMBMP( kcell39, \"building\\pbm\\theatre\\thr2b19.pbm\" )\nREP_PPMBMP( kcell40, \"building\\pbm\\theatre\\thr2b20.pbm\" )\nREP_PPMBMP( kcell41, \"building\\pbm\\theatre\\thr2b21.pbm\" )\nREP_PPMBMP( kcell42, \"building\\pbm\\theatre\\thr2b22.pbm\" )\nREP_PPMBMP( kcell43, \"building\\pbm\\theatre\\thr2b23.pbm\" )\nREP_PPMBMP( kcell44, \"building\\pbm\\theatre\\thr2b24.pbm\" )\nREP_PPMBMP( kcell45, \"building\\pbm\\theatre\\thr2b25.pbm\" )\nREP_PPMBMP( kcell46, \"building\\pbm\\theatre\\thr2b26.pbm\" )\nREP_PPMBMP( kcell47, \"building\\pbm\\theatre\\thr2b27.pbm\" )\nREP_PPMBMP( kcell48, \"building\\pbm\\theatre\\thr2b28.pbm\" )\nREP_PPMBMP( kcell49, \"building\\pbm\\theatre\\thr2b29.pbm\" )\n\nREP_PPMBMP( kcell61, \"building\\pbm\\theatre\\thr2d1.pbm\" )\nREP_PPMBMP( kcell62, \"building\\pbm\\theatre\\thr2d2.pbm\" )\nREP_PPMBMP( kcell63, \"building\\pbm\\theatre\\thr2d3.pbm\" )\nREP_PPMBMP( kcell64, \"building\\pbm\\theatre\\thr2d4.pbm\" )\nREP_PPMBMP( kcell65, \"building\\pbm\\theatre\\thr2d5.pbm\" )\nREP_PPMBMP( kcell66, \"building\\pbm\\theatre\\thr2d6.pbm\" )\nREP_PPMBMP( kcell67, \"building\\pbm\\theatre\\thr2d7.pbm\" )\nREP_PPMBMP( kcell68, \"building\\pbm\\theatre\\thr2d8.pbm\" )\nREP_PPMBMP( kcell69, \"building\\pbm\\theatre\\thr2d9.pbm\" )\nREP_PPMBMP( kcell70, \"building\\pbm\\theatre\\thr2d10.pbm\" )\nREP_PPMBMP( kcell71, \"building\\pbm\\theatre\\thr2d11.pbm\" )\nREP_PPMBMP( kcell72, \"building\\pbm\\theatre\\thr2d12.pbm\" )\nREP_PPMBMP( kcell73, \"building\\pbm\\theatre\\thr2d13.pbm\" )\nREP_PPMBMP( kcell74, \"building\\pbm\\theatre\\thr2d14.pbm\" )\nREP_PPMBMP( kcell75, \"building\\pbm\\theatre\\thr2d15.pbm\" )\nREP_PPMBMP( kcell76, \"building\\pbm\\theatre\\thr2d16.pbm\" )\nREP_PPMBMP( kcell77, \"building\\pbm\\theatre\\thr2d17.pbm\" )\nREP_PPMBMP( kcell78, \"building\\pbm\\theatre\\thr2d18.pbm\" )\nREP_PPMBMP( kcell79, \"building\\pbm\\theatre\\thr2d19.pbm\" )\nREP_PPMBMP( kcell80, \"building\\pbm\\theatre\\thr2d20.pbm\" )\nREP_PPMBMP( kcell81, \"building\\pbm\\theatre\\thr2d21.pbm\" )\nREP_PPMBMP( kcell82, \"building\\pbm\\theatre\\thr2d22.pbm\" )\n\nREP_PPMBMP( kcell101, \"building\\pbm\\theatre\\thr2e1.pbm\" )\nREP_PPMBMP( kcell102, \"building\\pbm\\theatre\\thr2e2.pbm\" )\nREP_PPMBMP( kcell103, \"building\\pbm\\theatre\\thr2e3.pbm\" )\nREP_PPMBMP( kcell104, \"building\\pbm\\theatre\\thr2e4.pbm\" )\nREP_PPMBMP( kcell105, \"building\\pbm\\theatre\\thr2e5.pbm\" )\nREP_PPMBMP( kcell106, \"building\\pbm\\theatre\\thr2e6.pbm\" )\nREP_PPMBMP( kcell107, \"building\\pbm\\theatre\\thr2e7.pbm\" )\nREP_PPMBMP( kcell108, \"building\\pbm\\theatre\\thr2e8.pbm\" )\nREP_PPMBMP( kcell109, \"building\\pbm\\theatre\\thr2e9.pbm\" )\nREP_PPMBMP( kcell110, \"building\\pbm\\theatre\\thr2e10.pbm\" )\nREP_PPMBMP( kcell111, \"building\\pbm\\theatre\\thr2e11.pbm\" )\nREP_PPMBMP( kcell112, \"building\\pbm\\theatre\\thr2e12.pbm\" )\nREP_PPMBMP( kcell113, \"building\\pbm\\theatre\\thr2e13.pbm\" )\nREP_PPMBMP( kcell114, \"building\\pbm\\theatre\\thr2e14.pbm\" )\nREP_PPMBMP( kcell115, \"building\\pbm\\theatre\\thr2e15.pbm\" )\nREP_PPMBMP( kcell116, \"building\\pbm\\theatre\\thr2e16.pbm\" )\nREP_PPMBMP( kcell117, \"building\\pbm\\theatre\\thr2e17.pbm\" )\nREP_PPMBMP( kcell118, \"building\\pbm\\theatre\\thr2e18.pbm\" )\nREP_PPMBMP( kcell119, \"building\\pbm\\theatre\\thr2e19.pbm\" )\nREP_PPMBMP( kcell120, \"building\\pbm\\theatre\\thr2e20.pbm\" )\nREP_PPMBMP( kcell121, \"building\\pbm\\theatre\\thr2e21.pbm\" )\n\nREP_PPMBMP( kcell131, \"building\\pbm\\theatre\\thr2f1.pbm\" )\nREP_PPMBMP( kcell132, \"building\\pbm\\theatre\\thr2f2.pbm\" )\nREP_PPMBMP( kcell133, \"building\\pbm\\theatre\\thr2f3.pbm\" )\nREP_PPMBMP( kcell134, \"building\\pbm\\theatre\\thr2f4.pbm\" )\nREP_PPMBMP( kcell135, \"building\\pbm\\theatre\\thr2f5.pbm\" )\nREP_PPMBMP( kcell136, \"building\\pbm\\theatre\\thr2f6.pbm\" )\nREP_PPMBMP( kcell137, \"building\\pbm\\theatre\\thr2f7.pbm\" )\nREP_PPMBMP( kcell138, \"building\\pbm\\theatre\\thr2f8.pbm\" )\nREP_PPMBMP( kcell139, \"building\\pbm\\theatre\\thr2f9.pbm\" )\nREP_PPMBMP( kcell140, \"building\\pbm\\theatre\\thr2f10.pbm\" )\nREP_PPMBMP( kcell141, \"building\\pbm\\theatre\\thr2f11.pbm\" )\nREP_PPMBMP( kcell142, \"building\\pbm\\theatre\\thr2f12.pbm\" )\nREP_PPMBMP( kcell143, \"building\\pbm\\theatre\\thr2f13.pbm\" )\nREP_PPMBMP( kcell144, \"building\\pbm\\theatre\\thr2f14.pbm\" )\nREP_PPMBMP( kcell145, \"building\\pbm\\theatre\\thr2f15.pbm\" )\nREP_PPMBMP( kcell146, \"building\\pbm\\theatre\\thr2f16.pbm\" )\nREP_PPMBMP( kcell147, \"building\\pbm\\theatre\\thr2f17.pbm\" )\nREP_PPMBMP( kcell148, \"building\\pbm\\theatre\\thr2f18.pbm\" )\nREP_PPMBMP( kcell149, \"building\\pbm\\theatre\\thr2f19.pbm\" )\nREP_PPMBMP( kcell150, \"building\\pbm\\theatre\\thr2f20.pbm\" )\nREP_PPMBMP( kcell151, \"building\\pbm\\theatre\\thr2f21.pbm\" )\nREP_PPMBMP( kcell152, \"building\\pbm\\theatre\\thr2f22.pbm\" )\nREP_PPMBMP( kcell153, \"building\\pbm\\theatre\\thr2f23.pbm\" )\nREP_PPMBMP( kcell154, \"building\\pbm\\theatre\\thr2f24.pbm\" )\nREP_PPMBMP( kcell155, \"building\\pbm\\theatre\\thr2f25.pbm\" )\nREP_PPMBMP( kcell156, \"building\\pbm\\theatre\\thr2f26.pbm\" )\nREP_PPMBMP( kcell157, \"building\\pbm\\theatre\\thr2f27.pbm\" )\nREP_PPMBMP( kcell158, \"building\\pbm\\theatre\\thr2f28.pbm\" )\nREP_PPMBMP( kcell159, \"building\\pbm\\theatre\\thr2f29.pbm\" )\nREP_PPMBMP( kcell160, \"building\\pbm\\theatre\\thr2f30.pbm\" )\nREP_PPMBMP( kcell161, \"building\\pbm\\theatre\\thr2f31.pbm\" )\nREP_PPMBMP( kcell162, \"building\\pbm\\theatre\\thr2f32.pbm\" )\nREP_PPMBMP( kcell163, \"building\\pbm\\theatre\\thr2f33.pbm\" )\nREP_PPMBMP( kcell164, \"building\\pbm\\theatre\\thr2f34.pbm\" )\nREP_PPMBMP( kcell165, \"building\\pbm\\theatre\\thr2f35.pbm\" )\n\nREP_PPMBMP( kcell181, \"building\\pbm\\theatre\\thrcy1.pbm\" )\nREP_PPMBMP( kcell182, \"building\\pbm\\theatre\\thrcy2.pbm\" )\nREP_PPMBMP( kcell183, \"building\\pbm\\theatre\\thrcy3.pbm\" )\nREP_PPMBMP( kcell184, \"building\\pbm\\theatre\\thrcy4.pbm\" )\nREP_PPMBMP( kcell185, \"building\\pbm\\theatre\\thrcy5.pbm\" )\nREP_PPMBMP( kcell186, \"building\\pbm\\theatre\\thrcy6.pbm\" )\nREP_PPMBMP( kcell187, \"building\\pbm\\theatre\\thrcy7.pbm\" )\nREP_PPMBMP( kcell188, \"building\\pbm\\theatre\\thrcy8.pbm\" )\nREP_PPMBMP( kcell189, \"building\\pbm\\theatre\\thrcy9.pbm\" )\nREP_PPMBMP( kcell190, \"building\\pbm\\theatre\\thrcy10.pbm\" )\nREP_PPMBMP( kcell191, \"building\\pbm\\theatre\\thrcy11.pbm\" )\nREP_PPMBMP( kcell192, \"building\\pbm\\theatre\\thrcy12.pbm\" )\nREP_PPMBMP( kcell193, \"building\\pbm\\theatre\\thrcy13.pbm\" )\nREP_PPMBMP( kcell194, \"building\\pbm\\theatre\\thrcy14.pbm\" )\nREP_PPMBMP( kcell195, \"building\\pbm\\theatre\\thrcy15.pbm\" )\nREP_PPMBMP( kcell196, \"building\\pbm\\theatre\\thrcy16.pbm\" )\nREP_PPMBMP( kcell197, \"building\\pbm\\theatre\\thrcy17.pbm\" )\nREP_PPMBMP( kcell198, \"building\\pbm\\theatre\\thrcy18.pbm\" )\nREP_PPMBMP( kcell199, \"building\\pbm\\theatre\\thrcy19.pbm\" )\nREP_PPMBMP( kcell200, \"building\\pbm\\theatre\\thrcy20.pbm\" )\nREP_PPMBMP( kcell201, \"building\\pbm\\theatre\\thrcy21.pbm\" )\nREP_PPMBMP( kcell202, \"building\\pbm\\theatre\\thrcy22.pbm\" )\nREP_PPMBMP( kcell203, \"building\\pbm\\theatre\\thrcy23.pbm\" )\nREP_PPMBMP( kcell204, \"building\\pbm\\theatre\\thrcy24.pbm\" )\nREP_PPMBMP( kcell205, \"building\\pbm\\theatre\\thrcy25.pbm\" )\nREP_PPMBMP( kcell206, \"building\\pbm\\theatre\\thrcy26.pbm\" )\nREP_PPMBMP( kcell207, \"building\\pbm\\theatre\\thrcy27.pbm\" )\nREP_PPMBMP( kcell208, \"building\\pbm\\theatre\\thrcy28.pbm\" )\n\nREP_PPMBMP( kcell251, \"building\\pbm\\theatre\\thr1_1.pbm\" )\nREP_PPMBMP( kcell252, \"building\\pbm\\theatre\\thr1_2.pbm\" )\nREP_PPMBMP( kcell253, \"building\\pbm\\theatre\\thr1_3.pbm\" )\nREP_PPMBMP( kcell254, \"building\\pbm\\theatre\\thr1_4.pbm\" )\nREP_PPMBMP( kcell255, \"building\\pbm\\theatre\\thr1_5.pbm\" )\nREP_PPMBMP( kcell256, \"building\\pbm\\theatre\\thr1_6.pbm\" )\nREP_PPMBMP( kcell257, \"building\\pbm\\theatre\\thr1_7.pbm\" )\nREP_PPMBMP( kcell258, \"building\\pbm\\theatre\\thr1_8.pbm\" )\nREP_PPMBMP( kcell259, \"building\\pbm\\theatre\\thr1_9.pbm\" )\nREP_PPMBMP( kcell260, \"building\\pbm\\theatre\\thr1_10.pbm\" )\nREP_PPMBMP( kcell261, \"building\\pbm\\theatre\\thr1_11.pbm\" )\nREP_PPMBMP( kcell262, \"building\\pbm\\theatre\\thr1_12.pbm\" )\nREP_PPMBMP( kcell263, \"building\\pbm\\theatre\\thr1_13.pbm\" )\nREP_PPMBMP( kcell264, \"building\\pbm\\theatre\\thr1_14.pbm\" )\nREP_PPMBMP( kcell265, \"building\\pbm\\theatre\\thr1_15.pbm\" )\nREP_PPMBMP( kcell266, \"building\\pbm\\theatre\\thr1_16.pbm\" )\nREP_PPMBMP( kcell267, \"building\\pbm\\theatre\\thr1_17.pbm\" )\nREP_PPMBMP( kcell268, \"building\\pbm\\theatre\\thr1_18.pbm\" )\nREP_PPMBMP( kcell269, \"building\\pbm\\theatre\\thr1_19.pbm\" )\nREP_PPMBMP( kcell270, \"building\\pbm\\theatre\\thr1_20.pbm\" )\nREP_PPMBMP( kcell271, \"building\\pbm\\theatre\\thr1_21.pbm\" )\nREP_PPMBMP( kcell272, \"building\\pbm\\theatre\\thr1_22.pbm\" )\nREP_PPMBMP( kcell273, \"building\\pbm\\theatre\\thr1_23.pbm\" )\nREP_PPMBMP( kcell274, \"building\\pbm\\theatre\\thr1_24.pbm\" )\nREP_PPMBMP( kcell275, \"building\\pbm\\theatre\\thr1_25.pbm\" )\nREP_PPMBMP( kcell276, \"building\\pbm\\theatre\\thr1_26.pbm\" )\nREP_PPMBMP( kcell277, \"building\\pbm\\theatre\\thr1_27.pbm\" )\nREP_PPMBMP( kcell278, \"building\\pbm\\theatre\\thr1_28.pbm\" )\nREP_PPMBMP( kcell279, \"building\\pbm\\theatre\\thr1_29.pbm\" )\nREP_PPMBMP( kcell280, \"building\\pbm\\theatre\\thr1_30.pbm\" )\nREP_PPMBMP( kcell281, \"building\\pbm\\theatre\\thr1_31.pbm\" )\nREP_PPMBMP( kcell282, \"building\\pbm\\theatre\\thr1_32.pbm\" )\nREP_PPMBMP( kcell283, \"building\\pbm\\theatre\\thr1_33.pbm\" )\nREP_PPMBMP( kcell284, \"building\\pbm\\theatre\\thr1_34.pbm\" )\nREP_PPMBMP( kcell285, \"building\\pbm\\theatre\\thr1_35.pbm\" )\nREP_PPMBMP( kcell286, \"building\\pbm\\theatre\\thr1_36.pbm\" )\nREP_PPMBMP( kcell287, \"building\\pbm\\theatre\\thr1_37.pbm\" )\nREP_PPMBMP( kcell288, \"building\\pbm\\theatre\\thr1_38.pbm\" )\nREP_PPMBMP( kcell289, \"building\\pbm\\theatre\\thr1_39.pbm\" )\nREP_PPMBMP( kcell290, \"building\\pbm\\theatre\\thr1_40.pbm\" )\nREP_PPMBMP( kcell291, \"building\\pbm\\theatre\\thr1_41.pbm\" )\nREP_PPMBMP( kcell292, \"building\\pbm\\theatre\\thr1_42.pbm\" )\nREP_PPMBMP( kcell293, \"building\\pbm\\theatre\\thr1_43.pbm\" )\nREP_PPMBMP( kcell294, \"building\\pbm\\theatre\\thr1_44.pbm\" )\nREP_PPMBMP( kcell295, \"building\\pbm\\theatre\\thr1_45.pbm\" )\nREP_PPMBMP( kcell296, \"building\\pbm\\theatre\\thr1_46.pbm\" )\nREP_PPMBMP( kcell297, \"building\\pbm\\theatre\\thr1_47.pbm\" )\nREP_PPMBMP( kcell298, \"building\\pbm\\theatre\\thr1_48.pbm\" )\nREP_PPMBMP( kcell299, \"building\\pbm\\theatre\\thr1_49.pbm\" )\nREP_PPMBMP( kcell300, \"building\\pbm\\theatre\\thr1_50.pbm\" )\nREP_PPMBMP( kcell301, \"building\\pbm\\theatre\\thr1_51.pbm\" )\nREP_PPMBMP( kcell302, \"building\\pbm\\theatre\\thr1_52.pbm\" )\nREP_PPMBMP( kcell303, \"building\\pbm\\theatre\\thr1_53.pbm\" )\nREP_PPMBMP( kcell304, \"building\\pbm\\theatre\\thr1_54.pbm\" )\nREP_PPMBMP( kcell305, \"building\\pbm\\theatre\\thr1_55.pbm\" )\nREP_PPMBMP( kcell306, \"building\\pbm\\theatre\\thr1_56.pbm\" )\nREP_PPMBMP( kcell307, \"building\\pbm\\theatre\\thr1_57.pbm\" )\nREP_PPMBMP( kcell308, \"building\\pbm\\theatre\\thr1_58.pbm\" )\n\n"
  },
  {
    "path": "src/building/mzthea4.seq",
    "content": "\nREP_PPMBMP( kcell1, \"building\\pbm\\theatre\\thr4_1.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\theatre\\thr4_2.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\theatre\\thr4_3.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\theatre\\thr4_4.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\theatre\\thr4_5.pbm\" )\nREP_PPMBMP( kcell6, \"building\\pbm\\theatre\\thr4_6.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\theatre\\thr4_7.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\theatre\\thr4_8.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\theatre\\thr4_9.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\theatre\\thr4_10.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\theatre\\thr4_11.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\theatre\\thr4_12.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\theatre\\thr4_13.pbm\" )\nREP_PPMBMP( kcell14, \"building\\pbm\\theatre\\thr4_14.pbm\" )\nREP_PPMBMP( kcell15, \"building\\pbm\\theatre\\thr4_15.pbm\" )\nREP_PPMBMP( kcell16, \"building\\pbm\\theatre\\thr4_16.pbm\" )\nREP_PPMBMP( kcell17, \"building\\pbm\\theatre\\thr4_17.pbm\" )\nREP_PPMBMP( kcell18, \"building\\pbm\\theatre\\thr4_18.pbm\" )\nREP_PPMBMP( kcell19, \"building\\pbm\\theatre\\thr4_19.pbm\" )\nREP_PPMBMP( kcell20, \"building\\pbm\\theatre\\thr4_20.pbm\" )\nREP_PPMBMP( kcell21, \"building\\pbm\\theatre\\thr4_21.pbm\" )\nREP_PPMBMP( kcell22, \"building\\pbm\\theatre\\thr4_22.pbm\" )\nREP_PPMBMP( kcell23, \"building\\pbm\\theatre\\thr4_23.pbm\" )\nREP_PPMBMP( kcell24, \"building\\pbm\\theatre\\thr4_24.pbm\" )\nREP_PPMBMP( kcell25, \"building\\pbm\\theatre\\thr4_25.pbm\" )\nREP_PPMBMP( kcell26, \"building\\pbm\\theatre\\thr4_26.pbm\" )\nREP_PPMBMP( kcell27, \"building\\pbm\\theatre\\thr4_27.pbm\" )\nREP_PPMBMP( kcell28, \"building\\pbm\\theatre\\thr4_28.pbm\" )\nREP_PPMBMP( kcell29, \"building\\pbm\\theatre\\thr4_29.pbm\" )\nREP_PPMBMP( kcell30, \"building\\pbm\\theatre\\thr4_30.pbm\" )\nREP_PPMBMP( kcell31, \"building\\pbm\\theatre\\thr4_31.pbm\" )\nREP_PPMBMP( kcell32, \"building\\pbm\\theatre\\thr4_32.pbm\" )\nREP_PPMBMP( kcell33, \"building\\pbm\\theatre\\thr4_33.pbm\" )\nREP_PPMBMP( kcell34, \"building\\pbm\\theatre\\thr4_34.pbm\" )\nREP_PPMBMP( kcell35, \"building\\pbm\\theatre\\thr4_35.pbm\" )\nREP_PPMBMP( kcell36, \"building\\pbm\\theatre\\thr4_36.pbm\" )\nREP_PPMBMP( kcell37, \"building\\pbm\\theatre\\thr4_37.pbm\" )\nREP_PPMBMP( kcell38, \"building\\pbm\\theatre\\thr4_38.pbm\" )\nREP_PPMBMP( kcell39, \"building\\pbm\\theatre\\thr4_39.pbm\" )\nREP_PPMBMP( kcell40, \"building\\pbm\\theatre\\thr4_40.pbm\" )\nREP_PPMBMP( kcell41, \"building\\pbm\\theatre\\thr4_41.pbm\" )\nREP_PPMBMP( kcell42, \"building\\pbm\\theatre\\thr4_42.pbm\" )\nREP_PPMBMP( kcell43, \"building\\pbm\\theatre\\thr4_43.pbm\" )\nREP_PPMBMP( kcell44, \"building\\pbm\\theatre\\thr4_44.pbm\" )\nREP_PPMBMP( kcell45, \"building\\pbm\\theatre\\thr4_45.pbm\" )\nREP_PPMBMP( kcell46, \"building\\pbm\\theatre\\thr4_46.pbm\" )\nREP_PPMBMP( kcell47, \"building\\pbm\\theatre\\thr4_47.pbm\" )\nREP_PPMBMP( kcell48, \"building\\pbm\\theatre\\thr4_48.pbm\" )\nREP_PPMBMP( kcell49, \"building\\pbm\\theatre\\thr4_49.pbm\" )\nREP_PPMBMP( kcell50, \"building\\pbm\\theatre\\thr4_50.pbm\" )\nREP_PPMBMP( kcell51, \"building\\pbm\\theatre\\thr4_51.pbm\" )\nREP_PPMBMP( kcell52, \"building\\pbm\\theatre\\thr4_52.pbm\" )\nREP_PPMBMP( kcell53, \"building\\pbm\\theatre\\thr4_53.pbm\" )\nREP_PPMBMP( kcell54, \"building\\pbm\\theatre\\thr4_54.pbm\" )\n"
  },
  {
    "path": "src/building/navbars.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// ---------------------------------------------------------\n// Definitions for the navigation bar hotspots on the edge\n// of the screens.\n// ---------------------------------------------------------\n// BIG ASSUMPTION -- where there's a navbar, there's always\n// a Down navbar.\n\n//----------------------------------------------------------\n// Function to map a Place to an entry state\n// return value is kstState to use for navbar entry\n//----------------------------------------------------------\n#define NAVBARENTRY(_kgobPlc)\\\n\tMatch(\t_kgobPlc,\t\t\tkst1,\\\n\t\t\tkgobWaiting,\t\tkst1,\\\n\t\t\tkgobSnackBar,\t\tkst1,\\\n\t\t\tkgobLobby2,\t\t\tkst1,\\\n\t\t\tkgobLobby1,\t\t\tkst2,\\\n\t\t\tkgobTheatre2,\t\tkst1,\\\n\t\t\tkgobTheatre1,\t\tkst4,\\\n\t\t\tkgobBackstage1,\t\tkst2,\\\n\t\t\tkgobBackstage2,\t\tkst1,\\\n\t\t\tkgobStudio4,\t\tkst1,\\\n\t\t\tkgobStudio2,\t\tkst1,\\\n\t\t\tkgobStudio1,\t\tkst1,\\\n\t\t\tkgobStudio3,\t\tkst1,\\\n\t\t\tkgobInspiration4,\tkst1,\\\n\t\t\tkgobInspiration2,\tkst1,\\\n\t\t\tkgobInspiration1,\tkst6,\\\n\t\t\tkgobInspiration3,\tkst1,\\\n\t\t\tkgobTicket2,\t\tkst3,\\\n\t\t\tkgobProjects4,\t\tkst1,\\\n\t\t\tkgobProjects2,\t\tkst1,\\\n\t\t\tkgobProjects1,\t\tkst2,\\\n\t\t\tkgobProjects3,\t\tkst1  )\n\nGOBCHUNK( \"left nav. bar\", kgobNavbarLeft, 0 )\n\tDEFAULT_POSITION( 0,0, 400 )\n\tACTION( fcustNil, fcustNil, fgrfstAll, kcrsLeft, CHID1( kchidClick), cidNil, cnoNil )\nENDCHUNK\nREP_RECT( CHID1( krepDefault), \"left clicker\", 0, 0, 50, 480 )\nCLICK_SCRIPT( \"navbar clicked left\" )\n\tplc = GET_CURRENTPLACE();\n\tnxt = Match( plc, plc,\n\t\t\tkgobLobby1, \t\tkgobWaiting,\n\t\t\tkgobLobby2, \t\tkgobSnackBar,\n\t\t\tkgobWaiting, \t\tkgobLobby2,\n\t\t\tkgobSnackBar, \t\tkgobLobby1,\n\t\t\tkgobTheatre2, \t\tkgobTheatre1,\n\t\t\tkgobTheatre1, \t\tkgobTheatre2,\n\t\t\tkgobBackstage1, \tkgobBackstage2,\n\t\t\tkgobBackstage2, \tkgobBackstage1,\n\t\t\tkgobStudio1, \t\tkgobStudio4,\n\t\t\tkgobStudio2, \t\tkgobStudio3,\n\t\t\tkgobStudio3, \t\tkgobStudio1,\n\t\t\tkgobStudio4, \t\tkgobStudio2,\n\t\t\tkgobInspiration1, \tkgobInspiration4,\n\t\t\tkgobInspiration2, \tkgobInspiration3,\n\t\t\tkgobInspiration3, \tkgobInspiration1,\n\t\t\tkgobInspiration4, \tkgobInspiration2,\n\t\t\tkgobProjects1, \t\tkgobProjects4,\n\t\t\tkgobProjects2, \t\tkgobProjects3,\n\t\t\tkgobProjects3, \t\tkgobProjects1,\n\t\t\tkgobProjects4, \t\tkgobProjects2\n\t\t);\n\tASSERT(plc != nxt);\n\n\tTransition( gftNil, kgfdRight, 30, Transparent, cnoNil );\t\t\n\tNEXTPLACE1(nxt, NAVBARENTRY(nxt));\n\nENDCHUNK\n\nGOBCHUNK( \"right nav. bar\", kgobNavbarRight, 0 )\n\tDEFAULT_POSITION( 0, 0, 400 )\n\tACTION( fcustNil, fcustNil, fgrfstAll, kcrsRight, CHID1( kchidClick), cidNil, cnoNil )\nENDCHUNK\nREP_RECT( CHID1( krepDefault), \"right clicker\", 590, 0, 640, 480 )\nCLICK_SCRIPT( \"navbar clicked right\" )\n\tplc = GET_CURRENTPLACE();\n\tnxt = Match( plc, plc,\n\t\t\tkgobWaiting, \tkgobLobby1,\n\t\t\tkgobSnackBar,  \tkgobLobby2,\n\t\t\tkgobLobby2,\t\tkgobWaiting,\n\t\t\tkgobLobby1, \tkgobSnackBar,\n\t\t\tkgobTheatre2, \tkgobTheatre1,\n\t\t\tkgobTheatre1, \tkgobTheatre2 ,\n\t\t\tkgobBackstage1, kgobBackstage2,\n\t\t\tkgobBackstage2, kgobBackstage1,\n\t\t\tkgobStudio4, \tkgobStudio1,\n\t\t\tkgobStudio2, \tkgobStudio4,\n\t\t\tkgobStudio1, \tkgobStudio3,\n\t\t\tkgobStudio3, \tkgobStudio2,\n\t\t\tkgobInspiration4, kgobInspiration1,\n\t\t\tkgobInspiration2, kgobInspiration4,\n\t\t\tkgobInspiration1, kgobInspiration3,\n\t\t\tkgobInspiration3, kgobInspiration2,\n\t\t\tkgobProjects4, \tkgobProjects1,\n\t\t\tkgobProjects2, \tkgobProjects4,\n\t\t\tkgobProjects1, \tkgobProjects3,\n\t\t\tkgobProjects3, \tkgobProjects2\n\n\t\t);\n\n\tASSERT(plc != nxt);\n\n\tTransition( gftNil, kgfdLeft, 30, Transparent, cnoNil );\n\tNEXTPLACE1(nxt, NAVBARENTRY(nxt));\n\nENDCHUNK\n\nGOBCHUNK( \"bottom nav. bar\", kgobNavbarDown, 0 )\n\tDEFAULT_POSITION( 0, 430, 400 )\n\tACTION( fcustNil, fcustNil, fgrfstAll, kcrsTurn1, CHID1( kchidClick), cidNil, cnoNil )\nENDCHUNK\nREP_RECT( CHID1( krepDefault), \"bottom clicker\", 0, 0, 640, 50 )\nCLICK_SCRIPT( \"navbar clicked down\")\n\tplc = GET_CURRENTPLACE();\n\tnxt = Match( plc, plc,\n\t\t\tkgobWaiting, \tkgobSnackBar,\n\t\t\tkgobSnackBar,  \tkgobWaiting,\n\t\t\tkgobLobby2,\t\tkgobLobby1,\n\t\t\tkgobLobby1, \tkgobLobby2,\n\t\t\tkgobTheatre1, \tkgobTheatre2,\n\t\t\tkgobTheatre2, \tkgobTheatre1,\n\t\t\tkgobBackstage1, kgobBackstage2,\n\t\t\tkgobBackstage2, kgobBackstage1,\n\t\t\tkgobStudio1, \tkgobStudio2,\n\t\t\tkgobStudio2, \tkgobStudio1,\n\t\t\tkgobStudio3, \tkgobStudio4,\n\t\t\tkgobStudio4, \tkgobStudio3,\n\t\t\tkgobInspiration1, kgobInspiration2,\n\t\t\tkgobInspiration2, kgobInspiration1,\n\t\t\tkgobInspiration3, kgobInspiration4,\n\t\t\tkgobInspiration4, kgobInspiration3,\n\t\t\tkgobProjects1, \tkgobProjects2,\n\t\t\tkgobProjects2, \tkgobProjects1,\n\t\t\tkgobProjects3, \tkgobProjects4,\n\t\t\tkgobProjects4, \tkgobProjects3,\n\t\t\tkgobTicket2, kgobTicket1\n\n\t\t);\n\n\tASSERT(plc != nxt);\n\tTransition( gftNil, kgfdDown, 30, Transparent, cnoNil );\t\t\n\tNEXTPLACE1(nxt, NAVBARENTRY(nxt));\n\nENDCHUNK\n\n"
  },
  {
    "path": "src/building/palette.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// ------------------------------------------------------------------------\n// Read in all of the palettes\n// ------------------------------------------------------------------------\n\nPALETTECHUNK( \"Soc Base 140 Palette\", kpalSocBase, \"building\\bitmaps\\palette\\socbase.bmp\" )\nPALETTECHUNK( \"Soc Imaginoplis Palette\", kpalImaginopolis, \"building\\bitmaps\\palette\\imaginpl.bmp\" )\nPALETTECHUNK( \"Soc Ticket booth palette\", kpalSocTicket, \"building\\bitmaps\\palette\\ticketpl.bmp\" )\nPALETTECHUNK( \"Soc Lobby Palette\", kpalSocLobby, \"building\\bitmaps\\palette\\lobbypl.bmp\" )\nPALETTECHUNK( \"Soc Theatre Palette\", kpalSocTheatre, \"building\\bitmaps\\palette\\theatpl.bmp\" )\nPALETTECHUNK( \"Soc Backstage Palette\", kpalSocBackstage, \"building\\bitmaps\\palette\\bkstagpl.bmp\" )\nPALETTECHUNK( \"Soc Inspiration Palette\", kpalSocInspiration, \"building\\bitmaps\\palette\\insppl.bmp\" )\nPALETTECHUNK( \"Soc Projects Palette\", kpalSocProjects, \"building\\bitmaps\\palette\\projpal.bmp\" )\nPALETTECHUNK( \"Soc Studio Palette\", kpalSocStudio, \"building\\bitmaps\\palette\\studiopl.bmp\" )\n\nPALETTECHUNK( \"Soc Street Scene Palette\", kpalSocStreet, \"building\\bitmaps\\palette\\streetpl.bmp\" )\n\n"
  },
  {
    "path": "src/building/portfol.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#define PORTFOLIO( _var )\tkgobPortfolio->_var\n\n\nOBJECT( \"The portfolio\",  kgobPortfolio, 975, kcrsArrow1 )\n\tREP_RECT( CHID1( krepDefault ), \"portfolio back\", 0, 0, 640, 480)\n\tCREATE_SCRIPT( \"Portfolio script\" )\n\t\t.kidCallObj = kidNil;\n\t\t.chidCallScript = chidNil;\n\n\t    EnqueueCid(cidPortfolioOpen, 0, kpfPortOpenMovie, 0, kpfPortDirUsers, 0);\n\t\n\t\tFilterCmdsThis(cidPortfolioClosed, cidNil, kchidScript1);\n\tENDCHUNK\n\n\tCHILD_SCRIPT(\"Call back from the portfolio function\", kchidScript1);\n\t\tIf(_parm[2] == fTrue);\n\t\t//\tSend a message to the frame work that a movie has been selected.\n\t\t//\tEnqueueCid(cidEaselImport, kidSpltGlass, 0, 0, 0, 0);\n\t\t\tRunScriptGob( PORTFOLIO( kidCallObj ), PORTFOLIO( chidCallScript ), fTrue );\n\t\tElse;\n\t\t\tRunScriptGob( PORTFOLIO( kidCallObj ), PORTFOLIO( chidCallScript ), kidNil );\n\t\tEnd;\n\t\t\n\t\tDestroyGob( kgobPortfolio );\n\tENDCHUNK\n"
  },
  {
    "path": "src/building/prdoor.seq",
    "content": "REP_PPMBMP( kcell1, \"building\\pbm\\backstag\\Pdoor54.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\backstag\\Pdoor55.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\backstag\\Pdoor56.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\backstag\\Pdoor57.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\backstag\\Pdoor58.pbm\" )\nREP_PPMBMP( kcell6, \"building\\pbm\\backstag\\Pdoor59.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\backstag\\Pdoor60.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\backstag\\Pdoor61.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\backstag\\Pdoor62.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\backstag\\Pdoor63.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\backstag\\Pdoor64.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\backstag\\Pdoor65.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\backstag\\Pdoor66.pbm\" )\nREP_PPMBMP( kcell14, \"building\\pbm\\backstag\\Pdoor67.pbm\" )\nREP_PPMBMP( kcell15, \"building\\pbm\\backstag\\Pdoor68.pbm\" )\nREP_PPMBMP( kcell16, \"building\\pbm\\backstag\\Pdoor69.pbm\" )\n\n"
  },
  {
    "path": "src/building/prjmon1.seq",
    "content": "REP_PPMBMP( kcell2, \"building\\pbm\\projects\\tvlan1.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\projects\\tvlan2.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\projects\\tvlan3.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\projects\\tvlan4.pbm\" )\nREP_PPMBMP( kcell6, \"building\\pbm\\projects\\tvlan5.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\projects\\tvlan6.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\projects\\tvlan7.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\projects\\tvlan8.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\projects\\tvlan9.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\projects\\tvlan10.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\projects\\tvlan11.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\projects\\tvlan12.pbm\" )\nREP_PPMBMP( kcell14, \"building\\pbm\\projects\\tvlan13.pbm\" )\nREP_PPMBMP( kcell15, \"building\\pbm\\projects\\tvlan14.pbm\" )\nREP_PPMBMP( kcell16, \"building\\pbm\\projects\\tvlan15.pbm\" )\n"
  },
  {
    "path": "src/building/prjmon2.seq",
    "content": "\nREP_PPMBMP( kcell2, \"building\\pbm\\projects\\tvran1.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\projects\\tvran2.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\projects\\tvran3.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\projects\\tvran4.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\projects\\tvran5.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\projects\\tvran6.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\projects\\tvran7.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\projects\\tvran8.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\projects\\tvran9.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\projects\\tvran10.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\projects\\tvran11.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\projects\\tvran12.pbm\" )\nREP_PPMBMP( kcell14, \"building\\pbm\\projects\\tvran13.pbm\" )\nREP_PPMBMP( kcell15, \"building\\pbm\\projects\\tvran14.pbm\" )\nREP_PPMBMP( kcell16, \"building\\pbm\\projects\\tvran15.pbm\" )\n"
  },
  {
    "path": "src/building/projects.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\n*\n*  PROJECTS.CHT\n*\n*  Copyright (C) Microsoft Corporation 1995.\n*  All Rights reserved.\n*\n******************************************************************************\n*\n*  Module Intent\n*\n*  Contains all of the scripting for the Projects Room.\n*\n******************************************************************************\n*\n*  Revision History:  Created 05/08/95 by *****.\n*\n*\t06/07/95\t*****\tAdded Flowchart logic.\n*\n*****************************************************************************/\n\n// -----------------------------------------------------\n// Projects 1 - front view, and objects\n// Called Projects Main on the flowchart.\n// -----------------------------------------------------\n\nWAVE_CHUNK( \"building\\sound\\projects\\Prjt1.wav\", kwavPrjt1 )\n// WAVE_CHUNK( \"building\\sound\\projects\\Prjt2A.wav\", kwavPrjt2A )\nWAVE_CHUNK( \"building\\sound\\projects\\monitor.wav\", kwavPrjtMonitor )\n\nGOBCHUNK(\"melanie - AVI \", kgobMelAVI, gokkNoHitThis )\n\tDEFAULT_POSITION( 64, 140, 999 )\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\n\tREP_VIDEO( CHID1( krepDefault ), \"projt2.avi\", fTrue )\n\tCREATE_SCRIPT( \"created\" )\n\t\tFilterCmdsThis( cidMouseDown, kidNil, kchidScript1);\n\t\tFilterCmdsThis( cidMap, kidNil, kchidScript1 );\t\t// ctrl+M hotkey and\n\t\tFilterCmdsThis( cidNew, kidNil, kchidScript1 );\n\t\tFilterCmdsThis( cidOpen, kidNil, kchidScript1 );\n\tENDCHUNK\n\tCHILD_SCRIPT( \"mouse down\", kchidScript1  )\n\t\t// stop playing... the polling will catch and remove us.\n\t\tStopThis();\t\n\t\tDestroyThis();\t// destroy the AVI too\n\t\tReturn( fFalse );\t// don't eat the cidMouseDown message \n\tENDCHUNK\t\t\n\n\nOBJECT(\"projects1: mon1\", kgobProj1Mon1, 75, kcrsHand1)\n\tREP_PPMBMP( CHID(kst1, krepDefault ), \"building\\pbm\\projects\\prj1mon1.pbm\" )\n\tREP_ANIM(CHID(kst2, krepDefault ), \"projects1: monitor1\")\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tDEBUGCMD(PrintStr(\"Monitor1: animation\"));\n\t\t\n\t\tDestroyGob( kgobTvViewL );\n\t\t// Place this monitor at a higher Z depth than the right monitor and balloon\n\t\tSetZThis( 2160 );\n\t\tIf ( FGobExists(kgobBalloon1d));\t// destroy help balloon iff exists\n\t\t\tDestroyGob(kgobBalloon1d);\n\t\tEnd;\n\t\tVOICE( kwavPrjtMonitor, 0 );\n\t\tcnt = kcell2;\t\t\t\n\t\tCell( cnt++, 0, 0, 6 );\n\t\tSetNoSlipThis( fTrue );\t\t// we can now drop frames!\n\t\tWhile( cnt <= kcell16 );\n\t\t\tCell( cnt++, 0, 0, 6 );\n\t\t\t\n\t\tEnd;\n\t\t\n\t\tCreateChildGob( kgobProjects1, kgobFlyingLogos, kgobFlyingLogos);\n\tENDCHUNK\n\t\n\tCLICK_SCRIPT( \"projects1 monitor1 clicked\" )\n\t\tChangeStateThis( kst2 );\n\tENDCHUNK\n\t#include \"PrjMon1.seq\"\n\nOBJECTTY( \"Projects1: TV animation\", kgobTvViewL, 150, kcrsHand1, gokkNoHitThis )\n\tREP_MBMP( CHID(kst1, krepDefault ), \"building\\bitmaps\\projects\\holder1.bmp\"\t)\n\n\nOBJECT(\"projects1: mon2\", kgobProj1Mon2, 155, kcrsHand1)\n\tREP_PPMBMP( CHID(kst1, krepDefault ), \"building\\pbm\\projects\\prj1mon2.pbm\" )\n\tREP_ANIM(CHID(kst2, krepDefault ), \"projects1: monitor2\")\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tDEBUGCMD(PrintStr(\"Monitor2: animation\"));\n\t\t\n\t\tDestroyGob( kgobTvViewR );\n\t\t// Place this monitor at a higher Z depth than the right monitor and balloon\n\t\tSetZThis( 2160 );\n\n\t\tIf ( FGobExists(kgobBalloon1d));\t// destroy help balloon iff exists\n\t\t\tDestroyGob(kgobBalloon1d);\n\t\tEnd;\n\t\tVOICE( kwavPrjtMonitor, 0 );\n\t\tcnt = kcell2;\n\t\tCell( cnt++, 0, 0, 6 );\n\t\tSetNoSlipThis( fTrue );\t\t// we can now drop frames!\n\t\tWhile( cnt <= kcell16 );\n\t\t\tCell( cnt++, 0, 0, 6 );\n\t\tEnd;\n\t\tCreateChildGob(kgobProjects1, kgobMovieTech, kgobMovieTech);\n\tENDCHUNK\n\n\tCLICK_SCRIPT( \"projects1 monitor2 clicked\" )\n\t\tChangeStateThis( kst2 );\n\tENDCHUNK\n\t#include \"PrjMon2.seq\"\n\nOBJECTTY( \"Projects1: TV animation\", kgobTvViewR, 155, kcrsHand1, gokkNoHitThis )\n\tREP_MBMP( CHID(kst1, krepDefault ), \"building\\bitmaps\\projects\\holder2.bmp\"\t)\n\n// -----------------------------------------------------\n// Projects Main Melanie\n// -----------------------------------------------------\nOBJECT( \"projects1: melanie\", kgobProj1Melanie, 100, kcrsHand1 )\n \t#include \"melproj1.seq\" // include all melanie cells\n\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\t// State 1: Default and hidden state.\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\tREP_RECT(CHID(kst1, krepDefault), \"projects1:melanie\", 0, 0, 640, 480)\n\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\t// State 2: Wait state or been here before -- no intro.\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\tREP_ANIM( CHID(kst2, krepDefault), \"projects1: melanie\")\n\t\tDEBUGCMD(PrintStr(\"Melanie state 2 rep.\"));\n\t\tCell(kcell201, 0, 0, 0);\n\n\t\t// Help stuff\n\t\tIf (GLOBAL(fHelpOn));\n\t\t\tDEBUGCMD(PrintStr(\"Help is on.\"));\n\t\t\tCreateHelpGob(kgobProjects1, ktpcProject1);\n\t\tEnd;\n\t\t// Idle loop animation\n\t\tWhile( fTrue );\n\t\t\tVOICE( kwavPrjt1, 0 );\n\t\t\ti = kcell201;\n\t\t\tWhile (i <= kcell221 );\n\t\t\t\tCell(i, 0, 0, 6);\n\t\t\t\ti++;\n\t\t\tEnd;\n\t\t\tENDVOICE();\n\t\tEnd;\n\tENDCHUNK\n\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\t// State 3: First time to projects room this session -- run intro\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\tREP_ANIM(CHID(kst3, krepEnterAnimation), \"projects1: melanie\")\n\t\tDEBUGCMD(PrintStr(\"Melanie state 3 rep.\"));\n\n\t\t// create the avi object\n\t\t\n\t\tCreateChildGob( kgobProjects1, kgobMelAVI, kgobMelAVI );\n\n\t\t// delay while AVI queues up then watch it and proceed appropriately\n\t\tCell( kcell1, 0,0, 100 );\n\t\tWhile( PlayingGob( kgobMelAVI ));\n\t\t\tCell( kcell1, 0, 0, 10 );\t// poll at 1/6ths of a second\n\t\tEnd; \n\t\tIf( FGobExists( kgobMelAVI ));\n\t\t\tDestroyGob( kgobMelAVI );\n\t\tEnd;\n\n\t\t// Switch to wait state (State 2)\n\t\tSETGLOBAL(fHelpOn, fTrue);\n\t\tChangeStateThis(kst2);\n\tENDCHUNK\n\n\tCLICK_SCRIPT(\"Clicked Melanie: Toggle help\")\n\t\t// If Melanie is giving her intro, stop her and set help on.  The\n\t\t// Melanie kst2 animation will pop up the help balloon.\n\t\tIf (StateThis() == kst3);\n\t\t\tSETGLOBAL(fHelpOn, fTrue);\n\t\t\tENDVOICE();\n\t\t\tChangeStateThis(kst2);\n\t\t// Run the intro before showing the help.\n\t\tElif (!GLOBAL(fHelpOn));\t// Turning help on\n\t\t\tChangeStateThis(kst3);\n\t\tElse;\t\t\t\t\t// Turning help off\n\t\t\tSETGLOBAL(fHelpOn, fFalse);\n\t\t\tDestroyGob(kgobBalloon1d);   // This destroys the balloon that holds the tip\n\t\tEnd;\n\tENDCHUNK\n\nHELP_SCRIPT(ktpcProject1)\n \tIf (_parm[0] == 0);\n\t\tDEBUGCMD(PrintStr(\"On Help tip create...\"));\n\t\t// Maybe read the tip?\n\tElif (_parm[0] == 1);\t\t// FLYING LOGOS\n\t\tChangeStateGob( kgobProj1Mon1, kst2 );\n\t\t// CreateChildGob(kgobProjects1, kgobFlyingLogos, kgobFlyingLogos);\n \tElif (_parm[0] == 2);\t\t// MOVIE TECHNIQUES\n\t\tChangeStateGob( kgobProj1Mon2, kst2 );\n\tEnd;\nENDCHUNK\n\n\nOBJECT(\"FLYING LOGOS\", kgobFlyingLogos, 200, kcrsHand1)\n\tREP_RECT(CHID1(krepDefault), \"flying logos rect\", 0, 0, 640, 480)\n\tCREATE_SCRIPT(\"FLYING LOGOS startup\")\n\t\tDEBUGCMD(PrintStr(\"Creating FLYING LOGOS object.\"));\n\t\tENABLEHOTSPOTS(kflgBuildingAll);\t\t\n\t\t// turn guide help off\n\t\tSetProp(kpridStudioFlags, GetProp(kpridStudioFlags) & 0xfffffffe);\t\t\n\t\tDestroyGob(kgobBalloon1d);\n\t\tLOADTOOLS(kgobProjects1, kst2, kchidFlyingLogo);\n\tENDCHUNK\n\nOBJECT(\"MOVIE TECHNIQUES\", kgobMovieTech, 200, kcrsHand1)\n\tREP_RECT(CHID1(krepDefault), \"movie techniques rect\", 0, 0, 640, 480)\n\tCREATE_SCRIPT(\"MOVIE TECHNIQUES startup\")\n\t\tDEBUGCMD(PrintStr(\"Creating MOVIE TECHNIQUES object.\"));\n\t\tENABLEHOTSPOTS(kflgBuildingAll);\n\t\t// be sure guide help is off.\n\t\tSetProp(kpridStudioFlags, GetProp(kpridStudioFlags) & 0xfffffffe);\n\t\tDestroyGob(kgobBalloon1d);\n\t\tLOADTOOLS(kgobProjects1, kst2, kchidMovieTechniques);\n\tENDCHUNK\n\n\n\n\n// project back view object\n\nOBJECT( \"project2 map\",  kgobProj2Map, 44, kcrsHand1 )\nREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\projects\\prj2map.bmp\", 0, 0 )\nCLICK_SCRIPT( \"project 2 map clicked\" ) \n\tCreateChildGob( GET_CURRENTPLACE(), kgobMapMain, kgobMapMain );\nENDCHUNK\n\nOBJECT( \"project2 exit\",  kgobProj2Exit, 44, kcrsHand1 )\nREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\projects\\prj2exit.bmp\", 0, 0 )\nCLICK_SCRIPT( \"project 2 exit clicked\") \n\tQUITAPP();\nENDCHUNK\n\nOBJECT( \"doors out\",  kgobProj2Doors, 33, kcrsHand1 )\nREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\projects\\prj2door.bmp\", 0, 0 )\nCLICK_SCRIPT( \"project doors out clicked\" )\n\tNEXTPLACE1(kgobBackstage1, kst2);\nENDCHUNK\n\n\n//--------------------------------------------------------\n// Bio page hotspots\n//--------------------------------------------------------\n\nOBJECT( \"Biopage 37 mask\",  kgobPrjt1m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\projects\\p1mask.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 37 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 37 );\n\t\t\tBIO_CREATEBOOK( 37, fFalse, kgobProjects1 );\n\t\tEnd;\n\t\t\n\tENDCHUNK\n\n\nOBJECT( \"Biopage 34 mask\",  kgobPrjt2m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\projects\\prjt2m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 34 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 34 );\n\t\t\tBIO_CREATEBOOK( 34, fFalse, kgobProjects2 );\n\t\tEnd;\n\t\t\n\tENDCHUNK\n\n\n\nOBJECT( \"Biopage 1 mask\",  kgobPrjt2m2, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\projects\\prjt2m2.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 1 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 1 );\n\t\t\tBIO_CREATEBOOK( 1, fFalse, kgobProjects2 );\n\t\tEnd;\n\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 2 mask\",  kgobPrjt2m3, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\projects\\prjt2m3.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 2 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 2 );\n\t\t\tBIO_CREATEBOOK( 2, fFalse, kgobProjects2 );\n\t\tEnd;\n\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 3 mask\",  kgobPrjt2m4, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\projects\\prjt2m4.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 3 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 3 );\n\t\t\tBIO_CREATEBOOK( 3, fFalse, kgobProjects2 );\n\t\tEnd;\n\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 4 mask\",  kgobPrjt4m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\projects\\prjt4m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 4 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 4 );\n\t\t\tBIO_CREATEBOOK( 4, fFalse, kgobProjects4 );\n\t\tEnd;\n\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 5 mask\",  kgobPrjt4m2, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\projects\\prjt4m2.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 5 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 5 );\n\t\t\tBIO_CREATEBOOK( 5, fFalse, kgobProjects4 );\n\t\tEnd;\n\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 6 mask\",  kgobPrjt4m3, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\projects\\prjt4m3.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 6 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 6 );\n\t\t\tBIO_CREATEBOOK( 6, fFalse, kgobProjects4 );\n\t\tEnd;\n\t\t\n\tENDCHUNK\n"
  },
  {
    "path": "src/building/snackbar.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// -----------------------------------------------------\n// Snackbar and contents\n// -----------------------------------------------------\n\nWAVE_CHUNK( \"building\\sound\\snackbar\\VO60.wav\", kwavVO60 )\n//OBJECT( \"Snackbar McZee\", kgobSnackbarMczee, 0, kcrsHand1 )\nGOBCHUNK(\"Snackbar McZee\", kgobSnackbarMczee, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0 )\n\tACTION(fcustNil, fcustNil, fgrfst1, kcrsHand1, kchidScript0, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfst2, kcrsArrow1,chidNil, cidNil, cnoNil)\nENDCHUNK\n\tREP_ANIM( CHID( kst1, krepDefault ), \"Snackbar Idle\" )\n\t\tWhile( fTrue );\n\t\t\tcnt=kcell150;\n\t\t\tWhile( cnt <= kcell164 );\n\t\t\t\tCell( cnt++, 0, 0, 6 );\t\t\n\t\t\tEnd;\n\t\tEnd;\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst2, krepDefault ), \"Snackbar Mz anim\" )\n\t\tPLAYMIDI( cnoNil ); \t// stop and reset lobby MIDI if it's going\n\t\tVOICE( kwavVO60, 0 );\n\t\tcnt=kcell1;\n\t\tWhile( cnt <= kcell147 );\n\t\t\tCell( cnt++, 0, 0, 6 );\t\t\n\t\tEnd;\n\t\t//ENDVOICE();\n\t\tChangeStateThis( kst1 );\n\tENDCHUNK\n\n\tCHILD_SCRIPT( \"SnackBar McZee: clicked\", kchidScript0 )\n\t\tChangeStateThis( kst2 );\n\tENDCHUNK\n\t#include \"snackbar.seq\"\n\nOBJECT( \"Biopage 28 mask\",  kgobLobby3m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\lobby\\lobby2m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 28 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 28 );\n\t\t\tBIO_CREATEBOOK( 28, fFalse, kgobSnackBar );\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 29 mask\",  kgobLobby3m2, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\lobby\\lobby2m2.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 29 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 29 );\n\t\t\tBIO_CREATEBOOK( 29, fFalse, kgobSnackBar );\n\t\tEnd;\t\t\n\tENDCHUNK\n\n"
  },
  {
    "path": "src/building/snackbar.seq",
    "content": "REP_PPMBMP( kcell1, \"building\\pbm\\snackbar\\mczee1.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\snackbar\\mczee2.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\snackbar\\mczee3.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\snackbar\\mczee4.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\snackbar\\mczee5.pbm\" )\nREP_PPMBMP( kcell6, \"building\\pbm\\snackbar\\mczee6.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\snackbar\\mczee7.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\snackbar\\mczee8.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\snackbar\\mczee9.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\snackbar\\mczee10.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\snackbar\\mczee11.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\snackbar\\mczee12.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\snackbar\\mczee13.pbm\" )\nREP_PPMBMP( kcell14, \"building\\pbm\\snackbar\\mczee14.pbm\" )\nREP_PPMBMP( kcell15, \"building\\pbm\\snackbar\\mczee15.pbm\" )\nREP_PPMBMP( kcell16, \"building\\pbm\\snackbar\\mczee16.pbm\" )\nREP_PPMBMP( kcell17, \"building\\pbm\\snackbar\\mczee17.pbm\" )\nREP_PPMBMP( kcell18, \"building\\pbm\\snackbar\\mczee18.pbm\" )\nREP_PPMBMP( kcell19, \"building\\pbm\\snackbar\\mczee19.pbm\" )\nREP_PPMBMP( kcell20, \"building\\pbm\\snackbar\\mczee20.pbm\" )\nREP_PPMBMP( kcell21, \"building\\pbm\\snackbar\\mczee21.pbm\" )\nREP_PPMBMP( kcell22, \"building\\pbm\\snackbar\\mczee22.pbm\" )\nREP_PPMBMP( kcell23, \"building\\pbm\\snackbar\\mczee23.pbm\" )\nREP_PPMBMP( kcell24, \"building\\pbm\\snackbar\\mczee24.pbm\" )\nREP_PPMBMP( kcell25, \"building\\pbm\\snackbar\\mczee25.pbm\" )\nREP_PPMBMP( kcell26, \"building\\pbm\\snackbar\\mczee26.pbm\" )\nREP_PPMBMP( kcell27, \"building\\pbm\\snackbar\\mczee27.pbm\" )\nREP_PPMBMP( kcell28, \"building\\pbm\\snackbar\\mczee28.pbm\" )\nREP_PPMBMP( kcell29, \"building\\pbm\\snackbar\\mczee29.pbm\" )\nREP_PPMBMP( kcell30, \"building\\pbm\\snackbar\\mczee30.pbm\" )\nREP_PPMBMP( kcell31, \"building\\pbm\\snackbar\\mczee31.pbm\" )\nREP_PPMBMP( kcell32, \"building\\pbm\\snackbar\\mczee32.pbm\" )\nREP_PPMBMP( kcell33, \"building\\pbm\\snackbar\\mczee33.pbm\" )\nREP_PPMBMP( kcell34, \"building\\pbm\\snackbar\\mczee34.pbm\" )\nREP_PPMBMP( kcell35, \"building\\pbm\\snackbar\\mczee35.pbm\" )\nREP_PPMBMP( kcell36, \"building\\pbm\\snackbar\\mczee36.pbm\" )\nREP_PPMBMP( kcell37, \"building\\pbm\\snackbar\\mczee37.pbm\" )\nREP_PPMBMP( kcell38, \"building\\pbm\\snackbar\\mczee38.pbm\" )\nREP_PPMBMP( kcell39, \"building\\pbm\\snackbar\\mczee39.pbm\" )\nREP_PPMBMP( kcell40, \"building\\pbm\\snackbar\\mczee40.pbm\" )\nREP_PPMBMP( kcell41, \"building\\pbm\\snackbar\\mczee41.pbm\" )\nREP_PPMBMP( kcell42, \"building\\pbm\\snackbar\\mczee42.pbm\" )\nREP_PPMBMP( kcell43, \"building\\pbm\\snackbar\\mczee43.pbm\" )\nREP_PPMBMP( kcell44, \"building\\pbm\\snackbar\\mczee44.pbm\" )\nREP_PPMBMP( kcell45, \"building\\pbm\\snackbar\\mczee45.pbm\" )\nREP_PPMBMP( kcell46, \"building\\pbm\\snackbar\\mczee46.pbm\" )\nREP_PPMBMP( kcell47, \"building\\pbm\\snackbar\\mczee47.pbm\" )\nREP_PPMBMP( kcell48, \"building\\pbm\\snackbar\\mczee48.pbm\" )\nREP_PPMBMP( kcell49, \"building\\pbm\\snackbar\\mczee49.pbm\" )\nREP_PPMBMP( kcell50, \"building\\pbm\\snackbar\\mczee50.pbm\" )\nREP_PPMBMP( kcell51, \"building\\pbm\\snackbar\\mczee51.pbm\" )\nREP_PPMBMP( kcell52, \"building\\pbm\\snackbar\\mczee52.pbm\" )\nREP_PPMBMP( kcell53, \"building\\pbm\\snackbar\\mczee53.pbm\" )\nREP_PPMBMP( kcell54, \"building\\pbm\\snackbar\\mczee54.pbm\" )\nREP_PPMBMP( kcell55, \"building\\pbm\\snackbar\\mczee55.pbm\" )\nREP_PPMBMP( kcell56, \"building\\pbm\\snackbar\\mczee56.pbm\" )\nREP_PPMBMP( kcell57, \"building\\pbm\\snackbar\\mczee57.pbm\" )\nREP_PPMBMP( kcell58, \"building\\pbm\\snackbar\\mczee58.pbm\" )\nREP_PPMBMP( kcell59, \"building\\pbm\\snackbar\\mczee59.pbm\" )\nREP_PPMBMP( kcell60, \"building\\pbm\\snackbar\\mczee60.pbm\" )\nREP_PPMBMP( kcell61, \"building\\pbm\\snackbar\\mczee61.pbm\" )\nREP_PPMBMP( kcell62, \"building\\pbm\\snackbar\\mczee62.pbm\" )\nREP_PPMBMP( kcell63, \"building\\pbm\\snackbar\\mczee63.pbm\" )\nREP_PPMBMP( kcell64, \"building\\pbm\\snackbar\\mczee64.pbm\" )\nREP_PPMBMP( kcell65, \"building\\pbm\\snackbar\\mczee65.pbm\" )\nREP_PPMBMP( kcell66, \"building\\pbm\\snackbar\\mczee66.pbm\" )\nREP_PPMBMP( kcell67, \"building\\pbm\\snackbar\\mczee67.pbm\" )\nREP_PPMBMP( kcell68, \"building\\pbm\\snackbar\\mczee68.pbm\" )\nREP_PPMBMP( kcell69, \"building\\pbm\\snackbar\\mczee69.pbm\" )\nREP_PPMBMP( kcell70, \"building\\pbm\\snackbar\\mczee70.pbm\" )\nREP_PPMBMP( kcell71, \"building\\pbm\\snackbar\\mczee71.pbm\" )\nREP_PPMBMP( kcell72, \"building\\pbm\\snackbar\\mczee72.pbm\" )\nREP_PPMBMP( kcell73, \"building\\pbm\\snackbar\\mczee73.pbm\" )\nREP_PPMBMP( kcell74, \"building\\pbm\\snackbar\\mczee74.pbm\" )\nREP_PPMBMP( kcell75, \"building\\pbm\\snackbar\\mczee75.pbm\" )\nREP_PPMBMP( kcell76, \"building\\pbm\\snackbar\\mczee76.pbm\" )\nREP_PPMBMP( kcell77, \"building\\pbm\\snackbar\\mczee77.pbm\" )\nREP_PPMBMP( kcell78, \"building\\pbm\\snackbar\\mczee78.pbm\" )\nREP_PPMBMP( kcell79, \"building\\pbm\\snackbar\\mczee79.pbm\" )\nREP_PPMBMP( kcell80, \"building\\pbm\\snackbar\\mczee80.pbm\" )\nREP_PPMBMP( kcell81, \"building\\pbm\\snackbar\\mczee81.pbm\" )\nREP_PPMBMP( kcell82, \"building\\pbm\\snackbar\\mczee82.pbm\" )\nREP_PPMBMP( kcell83, \"building\\pbm\\snackbar\\mczee83.pbm\" )\nREP_PPMBMP( kcell84, \"building\\pbm\\snackbar\\mczee84.pbm\" )\nREP_PPMBMP( kcell85, \"building\\pbm\\snackbar\\mczee85.pbm\" )\nREP_PPMBMP( kcell86, \"building\\pbm\\snackbar\\mczee86.pbm\" )\nREP_PPMBMP( kcell87, \"building\\pbm\\snackbar\\mczee87.pbm\" )\nREP_PPMBMP( kcell88, \"building\\pbm\\snackbar\\mczee88.pbm\" )\nREP_PPMBMP( kcell89, \"building\\pbm\\snackbar\\mczee89.pbm\" )\nREP_PPMBMP( kcell90, \"building\\pbm\\snackbar\\mczee90.pbm\" )\nREP_PPMBMP( kcell91, \"building\\pbm\\snackbar\\mczee91.pbm\" )\nREP_PPMBMP( kcell92, \"building\\pbm\\snackbar\\mczee92.pbm\" )\nREP_PPMBMP( kcell93, \"building\\pbm\\snackbar\\mczee93.pbm\" )\nREP_PPMBMP( kcell94, \"building\\pbm\\snackbar\\mczee94.pbm\" )\nREP_PPMBMP( kcell95, \"building\\pbm\\snackbar\\mczee95.pbm\" )\nREP_PPMBMP( kcell96, \"building\\pbm\\snackbar\\mczee96.pbm\" )\nREP_PPMBMP( kcell97, \"building\\pbm\\snackbar\\mczee97.pbm\" )\nREP_PPMBMP( kcell98, \"building\\pbm\\snackbar\\mczee98.pbm\" )\nREP_PPMBMP( kcell99, \"building\\pbm\\snackbar\\mczee99.pbm\" )\nREP_PPMBMP( kcell100, \"building\\pbm\\snackbar\\mczee100.pbm\" )\nREP_PPMBMP( kcell101, \"building\\pbm\\snackbar\\mczee101.pbm\" )\nREP_PPMBMP( kcell102, \"building\\pbm\\snackbar\\mczee102.pbm\" )\nREP_PPMBMP( kcell103, \"building\\pbm\\snackbar\\mczee103.pbm\" )\nREP_PPMBMP( kcell104, \"building\\pbm\\snackbar\\mczee104.pbm\" )\nREP_PPMBMP( kcell105, \"building\\pbm\\snackbar\\mczee105.pbm\" )\nREP_PPMBMP( kcell106, \"building\\pbm\\snackbar\\mczee106.pbm\" )\nREP_PPMBMP( kcell107, \"building\\pbm\\snackbar\\mczee107.pbm\" )\nREP_PPMBMP( kcell108, \"building\\pbm\\snackbar\\mczee108.pbm\" )\nREP_PPMBMP( kcell109, \"building\\pbm\\snackbar\\mczee109.pbm\" )\nREP_PPMBMP( kcell110, \"building\\pbm\\snackbar\\mczee110.pbm\" )\nREP_PPMBMP( kcell111, \"building\\pbm\\snackbar\\mczee111.pbm\" )\nREP_PPMBMP( kcell112, \"building\\pbm\\snackbar\\mczee112.pbm\" )\nREP_PPMBMP( kcell113, \"building\\pbm\\snackbar\\mczee113.pbm\" )\nREP_PPMBMP( kcell114, \"building\\pbm\\snackbar\\mczee114.pbm\" )\nREP_PPMBMP( kcell115, \"building\\pbm\\snackbar\\mczee115.pbm\" )\nREP_PPMBMP( kcell116, \"building\\pbm\\snackbar\\mczee116.pbm\" )\nREP_PPMBMP( kcell117, \"building\\pbm\\snackbar\\mczee117.pbm\" )\nREP_PPMBMP( kcell118, \"building\\pbm\\snackbar\\mczee118.pbm\" )\nREP_PPMBMP( kcell119, \"building\\pbm\\snackbar\\mczee119.pbm\" )\nREP_PPMBMP( kcell120, \"building\\pbm\\snackbar\\mczee120.pbm\" )\nREP_PPMBMP( kcell121, \"building\\pbm\\snackbar\\mczee121.pbm\" )\nREP_PPMBMP( kcell122, \"building\\pbm\\snackbar\\mczee122.pbm\" )\nREP_PPMBMP( kcell123, \"building\\pbm\\snackbar\\mczee123.pbm\" )\nREP_PPMBMP( kcell124, \"building\\pbm\\snackbar\\mczee124.pbm\" )\nREP_PPMBMP( kcell125, \"building\\pbm\\snackbar\\mczee125.pbm\" )\nREP_PPMBMP( kcell126, \"building\\pbm\\snackbar\\mczee126.pbm\" )\nREP_PPMBMP( kcell127, \"building\\pbm\\snackbar\\mczee127.pbm\" )\nREP_PPMBMP( kcell128, \"building\\pbm\\snackbar\\mczee128.pbm\" )\nREP_PPMBMP( kcell129, \"building\\pbm\\snackbar\\mczee129.pbm\" )\nREP_PPMBMP( kcell130, \"building\\pbm\\snackbar\\mczee130.pbm\" )\nREP_PPMBMP( kcell131, \"building\\pbm\\snackbar\\mczee131.pbm\" )\nREP_PPMBMP( kcell132, \"building\\pbm\\snackbar\\mczee132.pbm\" )\nREP_PPMBMP( kcell133, \"building\\pbm\\snackbar\\mczee133.pbm\" )\nREP_PPMBMP( kcell134, \"building\\pbm\\snackbar\\mczee134.pbm\" )\nREP_PPMBMP( kcell135, \"building\\pbm\\snackbar\\mczee135.pbm\" )\nREP_PPMBMP( kcell136, \"building\\pbm\\snackbar\\mczee136.pbm\" )\nREP_PPMBMP( kcell137, \"building\\pbm\\snackbar\\mczee137.pbm\" )\nREP_PPMBMP( kcell138, \"building\\pbm\\snackbar\\mczee138.pbm\" )\nREP_PPMBMP( kcell139, \"building\\pbm\\snackbar\\mczee139.pbm\" )\nREP_PPMBMP( kcell140, \"building\\pbm\\snackbar\\mczee140.pbm\" )\nREP_PPMBMP( kcell141, \"building\\pbm\\snackbar\\mczee141.pbm\" )\nREP_PPMBMP( kcell142, \"building\\pbm\\snackbar\\mczee142.pbm\" )\nREP_PPMBMP( kcell143, \"building\\pbm\\snackbar\\mczee143.pbm\" )\nREP_PPMBMP( kcell144, \"building\\pbm\\snackbar\\mczee144.pbm\" )\nREP_PPMBMP( kcell145, \"building\\pbm\\snackbar\\mczee145.pbm\" )\nREP_PPMBMP( kcell146, \"building\\pbm\\snackbar\\mczee146.pbm\" )\nREP_PPMBMP( kcell147, \"building\\pbm\\snackbar\\mczee147.pbm\" )\n\nREP_PPMBMP( kcell150, \"building\\pbm\\snackbar\\cyc46.pbm\" )\nREP_PPMBMP( kcell151, \"building\\pbm\\snackbar\\cyc47.pbm\" )\nREP_PPMBMP( kcell152, \"building\\pbm\\snackbar\\cyc48.pbm\" )\nREP_PPMBMP( kcell153, \"building\\pbm\\snackbar\\cyc49.pbm\" )\nREP_PPMBMP( kcell154, \"building\\pbm\\snackbar\\cyc50.pbm\" )\nREP_PPMBMP( kcell155, \"building\\pbm\\snackbar\\cyc51.pbm\" )\nREP_PPMBMP( kcell156, \"building\\pbm\\snackbar\\cyc52.pbm\" )\nREP_PPMBMP( kcell157, \"building\\pbm\\snackbar\\cyc53.pbm\" )\nREP_PPMBMP( kcell158, \"building\\pbm\\snackbar\\cyc54.pbm\" )\nREP_PPMBMP( kcell159, \"building\\pbm\\snackbar\\cyc55.pbm\" )\nREP_PPMBMP( kcell160, \"building\\pbm\\snackbar\\cyc56.pbm\" )\nREP_PPMBMP( kcell161, \"building\\pbm\\snackbar\\cyc57.pbm\" )\nREP_PPMBMP( kcell162, \"building\\pbm\\snackbar\\cyc58.pbm\" )\nREP_PPMBMP( kcell163, \"building\\pbm\\snackbar\\cyc59.pbm\" )\nREP_PPMBMP( kcell164, \"building\\pbm\\snackbar\\cyc60.pbm\" )\n"
  },
  {
    "path": "src/building/stdoor.seq",
    "content": "REP_PPMBMP( kcell1, \"building\\pbm\\backstag\\Sdoor49.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\backstag\\Sdoor50.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\backstag\\Sdoor51.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\backstag\\Sdoor52.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\backstag\\Sdoor53.pbm\" )\nREP_PPMBMP( kcell6, \"building\\pbm\\backstag\\Sdoor54.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\backstag\\Sdoor55.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\backstag\\Sdoor56.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\backstag\\Sdoor57.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\backstag\\Sdoor58.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\backstag\\Sdoor59.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\backstag\\Sdoor60.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\backstag\\Sdoor61.pbm\" )\nREP_PPMBMP( kcell14, \"building\\pbm\\backstag\\Sdoor62.pbm\" )\nREP_PPMBMP( kcell15, \"building\\pbm\\backstag\\Sdoor63.pbm\" )\nREP_PPMBMP( kcell16, \"building\\pbm\\backstag\\Sdoor64.pbm\" )\n\n"
  },
  {
    "path": "src/building/street.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\n*\n*  STREET.CHT\n*\n*  Copyright (C) Microsoft Corporation 1995.\n*  All Rights reserved.\n*\n******************************************************************************\n*\n*  Module Intent\n*\n*  Animations for the \"street\" (aka manhole) sequence\n* \n******************************************************************************\n*\n*  Revision History:  Updated + added header 7/10/95 -*****\n*\n*****************************************************************************/\n\n// -----------------------------------------------------\n// Street scene place and objects\n// ---the street creates the McZee AVI object, then\n// polls until it's done.\n// -----------------------------------------------------\nOBJECTTY( \"street\", kgobStreet, 0, kcrsArrow1, gokkNoHitThis )\nREP_PPMBMP( kcell1, \"building\\pbm\\street\\street1.pbm\" )\nREP_ANIM( CHID1( krepDefault ), \"closet, default\" )\n\tSETGLOBAL( fTrans, fTrue );\n\tSETPALETTE( kpalSocStreet );\t// dissolve to new palette\n    Cell( kcell1, 0, 0, 60);   // draw + pause while dissolve o\n\n\tSetColorTable( kpalSocStreet );\t// make SURE the palette's set.\n\tCreateChildThis( kgobStreetMcZee, kgobStreetMcZee );\n\tCell( kcell1, 0, 0, 30 );\n\t\n\t// look to see if the McZee gob is playing AVI\n\tWhile( PlayingGob( kgobStreetMcZee ));\n\t\tCell( kcell1, 0, 0, 30 );\t// poll at 1/2ths of a second\n\tEnd; \t\t\t\t\t\t\t\t\t\t\t\t\t\n\tNEXTPLACE1( kgobTicket1, kst1 );\nENDCHUNK\n\nOBJECT( \"street: McZee AVI\",  kgobStreetMcZee, 10, kcrsArrow1 )\nREP_VIDEO( CHID1( krepDefault ), \"mhole2.avi\", fTrue )\n"
  },
  {
    "path": "src/building/studiobg.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// -----------------------------------------------------\n//\n// Revisions:\n// \n// mm-dd-yy\n// ??-??-94     *****         - Created\n// 05-16-95\t\t*****\t\t\t- cleanup\n// -----------------------------------------------------\n\nWAVE_CHUNK( \"building\\sound\\studio\\tvpop.wav\", kwavStudioTVPop)\nOBJECT( \"studio1: toolbox\",  kgobStudio1Tools, 120, kcrsHand1 )\n\tREP_PPMBMP( CHID1( krepDefault), \"building\\pbm\\studio\\st1tbx.pbm\" )\n\tREP_ANIM(CHID(kst2, krepDefault), \"Studio: Toolbox TV\")\n \t\t// disable hotspots and play the toolbox pop out.\n \t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tENDVOICE();\n \t\tcnt = kcell1;\n\t\tCell( cnt++, 0,0, 6 );\n\t\tVOICE( kwavStudioTVPop, 0 );\n\t\tCreateChildGob( kgobStudio1, kgobStudio1TV, kgobStudio1TV );\n\t\tWhile (cnt <= kcell6);\n\t\t\tCell(cnt++, 0,0, 6);\n\t\tEnd;\n\tENDCHUNK\n\tCLICK_SCRIPT( \"studio1: tbox click\" )\n\t\t// Go to the studio. - intro sequence it\n\t\tChangeStateThis( kst2 );\n\tENDCHUNK\n\t#include \"studioBx.seq\"\n\n\t\t\t\t\t\t\t\t\t\t\t\t // Z depth above help balloons which have depth of 800.\nOBJECT( \"studio1: toolbox anim\",  kgobStudio1TV, 810, kcrsHand1 )\n\tREP_ANIM(CHID(kst1, krepDefault), \"Studio: Toolbox TV\")\n \t\tcnt = kcell1;\n\t\tSetNoSlipThis( fTrue );\t\t// we can now drop frames!\n\t\tWhile (cnt <= kcell22);\n\t\t\tCell(cnt++, 0,0, 6);\n\t\tEnd;\n\t\tSetNoSlipThis( fFalse );\t// don't drop frames!\n\t\tCell( cnt, 0,0, 6 );\t\t// be sure and draw the last frame\t\t\n\t\tChangeStateGob( kgobStudio1McZee, kst4 );// played the intro\n\tENDCHUNK\n\t#include \"studioTv.seq\"\n\n// -----------------------------------------------------\n// Studio Main McZee\n// -----------------------------------------------------\n\n// Talking on the phone sounds.\nWAVE_CHUNK( \"building\\sound\\studio\\Std1A.wav\", kwavStd1A )\nWAVE_CHUNK( \"building\\sound\\studio\\VO97A.wav\", kwavVO97A )\nWAVE_CHUNK( \"building\\sound\\studio\\VO97B.wav\", kwavVO97B )\n// Intro sounds.\nWAVE_CHUNK( \"building\\sound\\studio\\Std1B.wav\", kwavStd1B )\n\n// intro in front of studio sound\nWAVE_CHUNK( \"building\\sound\\studio\\STD4.wav\", kwavStudioIntro )\n\n\nOBJECT(\"studio1: TOOLS INTRO \", kgobToolsIntroAVI, 999, kcrsHand1)\n\tREP_VIDEO( CHID1( krepDefault ), \"tools1.avi\", fTrue )\n\tCLICK_SCRIPT( \"clicked tools intro\" )\n\t\t// stop playing... the polling will catch and throw\n\t\t// us to the tools\n\t\tStopThis();\t\n\tENDCHUNK\n\n\n\nOBJECT(\"studio1: mczee\", kgobStudio1McZee, 111, kcrsHand1)\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\t// State 1: Default and hidden state.\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\tREP_RECT(CHID(kst1, krepDefault), \"studio1:mczee\", 0, 0, 0, 0)\n\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\t// State 2: Wait state.\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\tREP_ANIM(CHID(kst2, krepDefault), \"mczee talking on phone\")\n\t\tCell(kcell69, 0, 0, 120);\n\t\tWAIT_FOR_TRANSITION();\n\t\tWhile (fTrue);\n\t\t\t// Select one of the three phone animations at random.\n\t\t\tiAnimRnd = Rnd(3);\n\t\t\tIf (iAnimRnd == 0);\t\t// book talent\n\t\t\t\tkcellStart = kcell1;\n\t\t\t\tkcellEnd = kcell67;\n\t\t\tElif (iAnimRnd == 1);\t// on hold\n\t\t\t\tkcellStart = kcell36;\n\t\t\t\tkcellEnd = kcell67;\n\t\t\tElse;\t\t\t\t\t// deal\n\t\t\t\tkcellStart = kcell1;\n\t\t\t\tkcellEnd = kcell42;\n\t\t\tEnd;\n\n\t\t\tVOICE(kwavStd1A + iAnimRnd, ktpcStd1A + iAnimRnd);\n\n \t\t\ti = kcellStart;\n\t\t\tCell(i++, 0, 0, 6);\n\t\t\tSetNoSlipThis( fTrue );\t\t// we can now drop frames!\n\t\t\tWhile (i < kcellEnd);\n\t\t\t\tCell(i, 0, 0, 6);\n\t\t\t\ti++;\n\t\t\tEnd;\n\t\t\tSetNoSlipThis( fFalse );\t\t// we can now drop frames!\n\t\t\tCell( kcellEnd, 0,0, 6 );\n\n\t\t\t// McZee listening to the phone.\n\t\t\ti=kcell451;\n\t\t\tWhile (i <= kcell518);\n\t\t\t\tCell(i, 0, 0, 6);\n\t\t\t\ti++;\n\t\t\tEnd;\n\t\t\tENDVOICE();\n\t\tEnd;\n\tENDCHUNK\n\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\t// State 3: McZee Studio Intro/Help.  \"Hey --welcome to the studio!\"\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\tREP_ANIM(CHID(kst3, krepDefault), \"mczee intro\")\n\t\tVOICE(kwavStd1B, ktpcStd1B);\n \t\ti = kcell69;\n\t\tWhile (i <= kcell138);\n\t\t\tCell(i, 0,0, 6);\n\t\t\ti++;\n\t\tEnd;\n\t\tENDVOICE();\n  \t\tSETGLOBAL(fHelpOn, fFalse);\n  \t\tDestroyGob(kgobBalloon1d);   // This destroys the balloon that holds the tip\n\t\tChangeStateThis(kst2);\t// Back to wait state.\n\tENDCHUNK\n\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\t// State 4: McZee - take us into the tools (play intro anim of \n\t// talking in front of the tools if necessary)\n\t// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \n\tREP_ANIM(CHID(kst4, krepDefault), \"mczee intro\")\n\t\tPLAYMIDI( cnoNil );\t// stop midi\n\t\t//WAIT_FOR_TRANSITION();\n\t\tCell( CHID(kst1, krepDefault), 0,0, 1 );\t// hide mczee\n\t\tDestroyGob( kgobStudio1TV );\n\t\tDestroyGob( kgobStudio1Tools );\n\t\tChangeStateGob( kgobStudio1, kst2 );\t\t// switch to tools background in case AVI goes\n\n\t\tIf( ::fStdIntro );\n\t\t\t// if the users have already seen the studio intro, skip to tools\n\t\t\t// and make a new movie\n\t\t\tChangeStateGob( kgobStudio1McZee, kst5 );\n\t\t\tExit();\n\t\tEnd;\n \t\t\t\n \t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\t::fStdIntro = fTrue;\n\t\tENDVOICE();\n\t\tCreateChildGob( GidParThis(), kgobToolsIntroAVI, kgobToolsIntroAVI );\n\t\tCell( CHID(kst1, krepDefault),0,0, 100 );\t// pause for sufficient cue-up \n\t\tWhile( PlayingGob( kgobToolsIntroAVI ));\n\t\t\tCell( CHID(kst1, krepDefault), 0, 0, 10 );\t// poll at 1/6ths of a second\n\t\tEnd; \n\t\tSETGLOBAL( fStudioPS, fFalse );\n\t\tChangeStateThis( kst5 );\n\tENDCHUNK\n\t\n\tREP_ANIM( CHID(kst5, krepDefault), \"start tools\")\n\t\tDestroyThis();\t// Erase McZee to prevent palette flash\n\t\tENDVOICE();\t\t// Make sure McZee isn't talking\n\t\t\n\t\t// set a flag to tell the tools to play the annoying guided help sequence\n\t\tSetProp(kpridStudioFlags, GetProp(kpridStudioFlags) | 1);\n\t\tLOADTOOLS(kgobStudio1, kst1, chidNil);\n\tENDCHUNK\n\n\tCLICK_SCRIPT(\"Clicked McZee: Do help\")\n\t\tIf (!GLOBAL(fHelpOn));\t// Turning help on\n\t\t\tSETGLOBAL(fHelpOn, fTrue);\n   \t\t\tCreateHelpGob(kgobStudio1, ktpcStudio1);\n\t\t\tChangeStateThis(kst3);\n\t\tElse;\t\t\t\t\t// Turning help off\n  \t\t\tDestroyGob(kgobBalloon1d);   // This destroys the balloon that holds the tip\n\t\t\tENDVOICE();\n\t\t\tSETGLOBAL(fHelpOn, fFalse);\n\t\t\tChangeStateThis(kst2);\t// Back to wait state.\n\t\tEnd;\n\tENDCHUNK\n#include \"mzstudio.seq\"\t\t// include all mczee cells\n\n\nOBJECT( \"doors out\", kgobStudio2Doors, 33, kcrsHand1 )\nREP_MASK(CHID1(krepDefault), \"building\\bitmaps\\studio\\st2doors.bmp\", 0, 0)\nCLICK_SCRIPT( \"doors out clicked\" )\n\tNEXTPLACE1( kgobBackstage1, kst2 );\nENDCHUNK\n\nOBJECT( \"studio2 map\", kgobStudio2Map, 44, kcrsHand1 )\nREP_MASK(CHID1(krepDefault), \"building\\bitmaps\\studio\\st2map.bmp\", 0, 0)\nCLICK_SCRIPT( \"studio 2 map clicked\" ) \n\tCreateChildGob( GET_CURRENTPLACE(), kgobMapMain, kgobMapMain );\nENDCHUNK\n\nOBJECT( \"studio2 exit\",  kgobStudio2Exit, 45, kcrsHand1 )\nREP_MASK( CHID1( krepDefault), \"building\\bitmaps\\studio\\st2exit.bmp\", 0, 0 )\nCLICK_SCRIPT( \"studio 2 exit clicked\" ) \n\tQUITAPP();\nENDCHUNK\n\nOBJECT( \"studio2 exit word\",  kgobStudio2ExitWord, 44, kcrsHand1 )\nREP_PPMBMP( CHID1( krepDefault), \"building\\pbm\\studio\\st2exit.pbm\" )\n\n\n//------------------------------------------------------------\n//\tBio page hotspots\n//----------------------------------------------------------\nOBJECT( \"Biopage 38 mask\",  kgobStdo1m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\studio\\stdo1m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 38 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 38 );\n\t\t\tBIO_CREATEBOOK( 38, fFalse, kgobStudio1 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\n\n\nOBJECT( \"Biopage 14 mask\",  kgobStdo4m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\studio\\stdo4m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 14 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 14 );\n\t\t\tBIO_CREATEBOOK( 14, fFalse, kgobStudio4 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 15 mask\",  kgobStdo4m2, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\studio\\stdo4m2.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 15 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 15 );\n\t\t\tBIO_CREATEBOOK( 15, fFalse, kgobStudio4 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 16 mask\",  kgobStdo4m3, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\studio\\stdo4m3.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 16 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 16 );\n\t\t\tBIO_CREATEBOOK( 16, fFalse, kgobStudio4 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 17 mask\",  kgobStdo4m4, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\studio\\stdo4m4.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 17 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 17 );\n\t\t\tBIO_CREATEBOOK( 17, fFalse, kgobStudio4);\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 18 mask\",  kgobStdo3m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\studio\\stdo3m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 18 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 18 );\n\t\t\tBIO_CREATEBOOK( 18, fFalse, kgobStudio3 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 19 mask\",  kgobStdo3m2, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\studio\\stdo3m2.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 19 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 19 );\n\t\t\tBIO_CREATEBOOK( 19, fFalse, kgobStudio3 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 20 mask\",  kgobStdo3m3, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\studio\\stdo3m3.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 20 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 20 );\n\t\t\tBIO_CREATEBOOK( 20, fFalse, kgobStudio3 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 21 mask\",  kgobStdo2m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\studio\\stdo2m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 21 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 21 );\n\t\t\tBIO_CREATEBOOK( 21, fFalse, kgobStudio2 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 22 mask\",  kgobStdo2m2, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\studio\\stdo2m2.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 22 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 22 );\n\t\t\tBIO_CREATEBOOK( 22, fFalse, kgobStudio2 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 23 mask\",  kgobStdo2m3, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\studio\\stdo2m3.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 23 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 23 );\n\t\t\tBIO_CREATEBOOK( 23, fFalse, kgobStudio2 );\n\t\tEnd;\t\t\n\tENDCHUNK\n"
  },
  {
    "path": "src/building/studiobx.seq",
    "content": "REP_PPMBMP( kcell1, \"building\\pbm\\studio\\box1.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\studio\\box2.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\studio\\box3.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\studio\\box4.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\studio\\box5.pbm\" )\nREP_PPMBMP( kcell6, \"building\\pbm\\studio\\box6.pbm\" )\n"
  },
  {
    "path": "src/building/studiotv.seq",
    "content": "REP_PPMBMP( kcell1, \"building\\pbm\\studio\\tv1.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\studio\\tv2.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\studio\\tv3.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\studio\\tv4.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\studio\\tv5.pbm\" )\nREP_PPMBMP( kcell6, \"building\\pbm\\studio\\tv6.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\studio\\tv7.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\studio\\tv8.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\studio\\tv9.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\studio\\tv10.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\studio\\tv11.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\studio\\tv12.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\studio\\tv13.pbm\" )\nREP_PPMBMP( kcell14, \"building\\pbm\\studio\\tv14.pbm\" )\nREP_PPMBMP( kcell15, \"building\\pbm\\studio\\tv15.pbm\" )\nREP_PPMBMP( kcell16, \"building\\pbm\\studio\\tv16.pbm\" )\nREP_PPMBMP( kcell17, \"building\\pbm\\studio\\tv17.pbm\" )\nREP_PPMBMP( kcell18, \"building\\pbm\\studio\\tv18.pbm\" )\nREP_PPMBMP( kcell19, \"building\\pbm\\studio\\tv19.pbm\" )\nREP_PPMBMP( kcell20, \"building\\pbm\\studio\\tv20.pbm\" )\nREP_PPMBMP( kcell21, \"building\\pbm\\studio\\tv21.pbm\" )\nREP_PPMBMP( kcell22, \"building\\pbm\\studio\\tv22.pbm\" )\nREP_PPMBMP( kcell23, \"building\\pbm\\studio\\tv23.pbm\" )\nREP_PPMBMP( kcell24, \"building\\pbm\\studio\\tv24.pbm\" )\nREP_PPMBMP( kcell25, \"building\\pbm\\studio\\tv25.pbm\" )\n"
  },
  {
    "path": "src/building/theatre.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// -----------------------------------------------------\n//\tTHEATRE.CHT\n//\n//\t Copyright (C) Microsoft Corporation 1995.\n//\t All Rights reserved.\n//\n// -----------------------------------------------------\n//\tModule Intent:\n//\n//\tContains the kauai script code for the Theatre and Movie object.\n//\n//\n// \tRevisions:\n// \n// \tmm-dd-yy\n// \t??-??-94    *****         - Created\n// \t\n// -----------------------------------------------------\n// Notes: .MzNextAction is used in Theatre1McZee kst3 to determine what\n// should happen after McZee leaves the stage.  Here are the values:\n// \t\tkst20\tCreate a movie object.\n//\t\tkst21\tShort trip to Tools -- edit this movie.\n//\t\tkst22\tLonger trip to Tools -- create new movie.\n//\t\tkst23\tPress Play on movie object.\n//\t\tkst24\tMcZee goes into NULL rep.\n\n\n// Movie object dimensions.\n#define xLeftMovie\t\t48\n#define yTopMovie\t\t85\n#define xRightMovie\t\t592\n#define yBottomMovie\t391\n\n// ---------------------------------------------------------\n// kgobMovieClickFilter is similar to kgobGlass0 in the util object.  This\n// one is used to trap clicks while the movie object is up, but it allows\n// clicks to the movie controls and to McZee and his help balloons to go\n// through.\n// ---------------------------------------------------------\n#define SHOWMOVIECLICKFILTER(_fShow)\\\n\tIf (_fShow && !FGobExists(kgobMovieClickFilter));\\\n\t\tCreateChildGob(kgobTheatre1, kgobMovieClickFilter, kgobMovieClickFilter);\\\n\t\tSETKEYS(kflgBuildingMin);\\\n\t\tDISABLEACCEL(fFalse);\\\n\tElif (!_fShow && FGobExists(kgobMovieClickFilter));\\\n\t\tDestroyGob(kgobMovieClickFilter);\\\n\t\tSETKEYS(kflgBuildingAll);\\\n\t\tENABLEACCEL(fFalse);\\\n\tEnd\n\n// ---------------------------------------------------------\n// Macros used only in this file to create and destroy the movie object and\n// movie control objects.\n// ---------------------------------------------------------\n#define CREATEMOVIE()\t\\\n\tSHOWMOVIECLICKFILTER(fTrue);\\\n\tChangeStateGob(kgobTheatre1, kst3);\\\n\tCreateChildGob(kgobTheatre1, kgobMovie, kgobMovie);\\\n\tCreateChildGob(kgobTheatre1, kgobTheaterVolume, kgobTheaterVolume);\\\n\tCreateChildGob(kgobTheatre1, kgobPlayButton, kgobPlayButton);\\\n\tCreateChildGob(kgobTheatre1, kgobRewindButton, kgobRewindButton)\n\n\n#define DESTROYMOVIE()\t\\\n\tDEBUGCMD(PrintStr(\"Enqueuing TheaterClose\");)\\\n\tEnqueueCid(cidTheaterClose, 0, 0, 0, 0, 0);\\\n\tChangeStateGob(kgobTheatre1, kst2);\\\n\tDestroyGob(kgobMovie);\\\n\tDestroyGob(kgobTheaterVolume);\\\n\tDestroyGob(kgobPlayButton);\\\n\tDestroyGob(kgobRewindButton);\\\n\tSHOWMOVIECLICKFILTER(fFalse)\n\n\n// ---------------------------------------------------------\n// Main view of the theatre & its objects\n// ---------------------------------------------------------\n\nWAVE_CHUNK( \"building\\sound\\theatre\\30_thr4.wav\", kwav30_thr4 )\nWAVE_CHUNK( \"building\\sound\\theatre\\21_thr1a.wav\", kwav21_thr1a )\nWAVE_CHUNK( \"building\\sound\\theatre\\VO74B.wav\", kwavVO74B )\nWAVE_CHUNK( \"building\\sound\\theatre\\VO75.wav\", kwavVO75 )\nWAVE_CHUNK( \"building\\sound\\theatre\\VO76.wav\", kwavVO76 )\nWAVE_CHUNK( \"building\\sound\\theatre\\21_thr1b.wav\", kwav21_thr1b )\n\nOBJECT( \"Theater1 McZee\", kgobTheatre1McZee , 550, kcrsHand1 )\n\tREP_RECT( kcellNull, \"No representation.\", 0,0,1,1 )\n\t#include \"mzthea.seq\"\n\n \tREP_ANIM( CHID( kst1, krepEnterAnimation ), \"Theater1: McZee!\")\t \t\t\n\t\tDEBUGCMD( PrintStr(\"Theater McZee: State 1\") );\n\n\t\t// The only entry states are kst4, kst5, and kst7\n\t\tASSERT(GLOBAL(kstEntry) == kst4 || GLOBAL(kstEntry) == kst5 ||\n\t\t\t\tGLOBAL(kstEntry) == kst7);\n\n\t\t// Help is always on on entry -- bug #900.\n\t\tSETGLOBAL(fHelpOn, fTrue);\n\n\t\t.fHelpState = 1;\t// Useage: \tfHelpState=1: Sets help balloon to Theater help.\n\t\t\t\t\t\t\t// \t\t\tfHelpState=2: Sets help balloon to Movie help.\n\t\t.fWay = fFalse;\t\t// Flag is set in CHILD_SCRIPT kchidScript1 (the call back function\n\t\t\t\t\t\t\t// from the portfolio object) to direct what action to take after\n\t\t\t\t\t\t\t// the \"close portfolio animation\", state kst10.\n\t\t.MzNextAction = 0;\n\t\tWAIT_FOR_TRANSITION();\t// pause if there's a dissolve going on\n\t\tIf (GLOBAL(kstEntry) == kst7);\n\t\t\t.MzNextAction = kst7;\n\t\t\tSETGLOBAL(kstEntry, kst2);\n\t\tEnd;\n\n\t\tChangeStateThis(GLOBAL(kstEntry));\n\tENDCHUNK\n\n\t// The following 2 states, kst2 and kst3, are the animation for McZee leaning\n\t// on to the stage and leaving the stage respectively.  These are transition states\n\t// to other animations or actions.  The variable MzNextAction is used in the following manner.\n\t// From a state in the McZee object or in other objects, the variable MzNextAction is set to an\n\t// approite value and then this McZee object state is changed to kst2 or kst3 after\n\t// the animation is completed the next state or action is determined by the value\n\t// of the MzNextAction variable.\n\n\tREP_ANIM( CHID( kst2, krepDefault ), \"McZee leans onto the stage\" )\n\t\tDEBUGCMD( PrintStr(\"Theater McZee: State 2\") );\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\t// Animation \"thr2a\" (Mz leaning onto the stage).\n\t\tcnt=kcell1;\n\t\tWhile( cnt <= kcell13 );\n\t\t\tCell( cnt++, 0, 0, 6 );\n\t\tEnd;\n\t\tChangeStateThis( .MzNextAction );\n\tENDCHUNK \n\n\tREP_ANIM( CHID( kst3, krepDefault ), \"McZee leaves the stage\" )\n\t\tDEBUGCMD(PrintStr(\"Theater McZee: State 3\"));\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\n\t\t// Animation \"thr2a\" backwards.\n\t\tcnt=kcell14;\n\t\tWhile( cnt >= kcell1 );\n\t\t\tCell( cnt--, 0, 0, 6 );\n\t\tEnd;\n\t\tIf (FGobExists(kgobMovie));\n\t\t\tENABLEHOTSPOTS(kflgBuildingMin);\n\t\tElse;\n\t\t\tENABLEHOTSPOTS(kflgBuildingAll);\n\t\tEnd;\n\n\t\tIf( .MzNextAction == kst20 );\n\t\t\tSETGLOBAL(kstEntry, kst3);\n\n\t\t\t// If another movie was playing, destroy it before creating a\n\t\t\t// new one.\n\t\t\tIf (FGobExists(kgobMovie));\n\t\t\t\tDESTROYMOVIE();\n\t\t\tEnd;\n\t\t\tCREATEMOVIE();\n\n\t\tElif( .MzNextAction == kst21 );\n \t\t\tNEXTPLACE1( kgobTheatre4, kst4 );   // Pass through theater to backstage to studio to tools.\n\t\tElif( .MzNextAction == kst22 );\n\t\t\tNEXTPLACE1( kgobTheatre4, kst3 );\n\t\tElif( .MzNextAction == kst23 );\n \t\t\tChangeStateGob( kgobMovie, kst3 ); \n\t\tElif( .MzNextAction == kst24\t);\n \t\t\tChangeStateThis( kst12 ); \n\t\tEnd;\n\n\tENDCHUNK \n\n  \tREP_ANIM( CHID( kst4, krepDefault ), \"Wait state.\")\n\t\tDEBUGCMD( PrintStr(\"Theater McZee: State 4\") );\n\t\t\n\t\tIf (FGobExists(kgobMovie));\n\t\t\tENABLEHOTSPOTS(kflgBuildingMin);\n\t\tElse;\n\t\t\tENABLEHOTSPOTS(kflgBuildingAll);\n\t\tEnd;\n\n\t\tENDVOICE();\t\t\t\t\t\t\t\t// This is a precautionary ENDVOICE to\n\t\t\t\t\t\t\t\t\t\t\t\t// capture any sound channels left open.\n\t\tCell( kcell181, 0, 0, 6 );\t\n\t\tIf( GLOBAL( fHelpOn ) == fTrue );\n\t\t\tIf( .fHelpState == 1 );\n\t\t\t\tCreateHelpGob( kgobTheatre1, ktpcTheatre1 );\n\t\t\tElif( .fHelpState == 2);\n\t\t\t\tCreateHelpGob( kgobTheatre1, ktpcTheatre2 );\n\t\t\tEnd;\n\t\tEnd;\n\n\t\t// Waiting sequence\n\t\tWhile( fTrue );\n\t\t\tcnt = kcell181;\n\t\t\tWhile( cnt <= kcell208);\n\t\t\t\tCell( cnt++, 0, 0, 6 );\t\t\t\t\t \n\t\t\tEnd;\n\t\tEnd;\n\tENDCHUNK\t\n\n  \tREP_ANIM( CHID( kst5, krepDefault ), \"Decsion and shadow puppet.\")\n\t\tDEBUGCMD( PrintStr(\"Theater McZee: State 5\") );\n\t\tIf( GLOBAL( fMovie ) == fTrue );\n\t\t\tSETGLOBAL( fMovie, fFalse ); \t\t\t\t\n\t\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n \t\t\tWAIT_FOR_TRANSITION();\t   \t\t\t// Pause to allow transition to complete.\n\n\t\t\tVOICE( kwav21_thr1a, ktpc21_thr1a );\t\t\t\n\t\t\tcnt=kcell251;\t\t\t\t\t\t// Animation \"thr1_\" (Shadow puppet animation).\n\t\t\tWhile( cnt <= kcell308 );\n\t\t\t\tCell( cnt++, 0, 0, 6 );\n\t\t\tEnd;\n\t\t\tENDVOICE();\n\n\t\t\tENABLEHOTSPOTS(kflgBuildingMin);\n\t\t\tSETGLOBAL(kstEntry, kst3);\t\t\t// Set the entry point to the movie\tobject to kst3.\n\t\t\tCREATEMOVIE();\n\t\tElse;\n\t\t\t.fHelpState=1;\n\n\t\t\tIf( GLOBAL(fHelpOn)\t== fTrue );\n\t\t\t\t.MzNextAction = \tkst6;\t// Help1 animation after...\n\t\t\t\tChangeStateThis( kst2 ); \t// Leaning onto stage.\n\t\t\tElse;\n\t\t\t\t.MzNextAction = \tkst4;\t// Goto wait animation after...\n\t\t\t\tChangeStateThis( kst2 ); \t// Leaning onto stage.\n\t\t\tEnd;\n\n\t\tEnd; \n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst6, krepDefault ), \"Theater help1 animation\" )\n\t\tDEBUGCMD( PrintStr(\"Theater McZee: State 6\") );\n\t\tCell( kcell101, 0, 0, 6 );\n\n\t\tVOICE( kwavVO75, ktpcVO75 );\n\t\t// Animation \"thr2e\".\n\t\tcnt=kcell102;\n\t\tWhile( cnt <= kcell121 );\n\t\t\tCell( cnt++, 0, 0, 6 );\n\t\tEnd;\n\t\tENDVOICE();\n\n\t\tChangeStateThis( kst4 );\n\tENDCHUNK \n\n\tREP_ANIM( CHID( kst7, krepDefault ), \"Open the portfolio.\" )\n\t\tDEBUGCMD(PrintStr(\"Theater McZee: State 7\"));\n\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\n\t\t// Animation \"thr2d\".\n\t\tcnt=kcell61;\n\t\tWhile( cnt <= kcell81 );\n\t\t\tCell( cnt++, 0, 0, 6 );\n\t\tEnd;\n\n\n\t\t// Bring up the Movie Open portfolio.\n    \tEnqueueCid(cidPortfolioOpen, 0, kpfPortOpenMovie, 0, kpfPortDirUsers, 0);\n\t\n\t\t// Look out for the cid indicating that the portfolio has been closed.\n\t\tFilterCmdsThis(cidPortfolioClosed, cidNil, kchidScript1);\n\n\tENDCHUNK \n\n\tREP_ANIM( CHID( kst8, krepDefault ), \"Movie paused animation\" )\n\t\t.fHelpState=2;\n\t\tENABLEHOTSPOTS(kflgBuildingMin); // Enabeling hotspots here allows the help balloon to be\n\t\t\t\t\t\t\t  // preempted by clicking the play button again.\n\t\tDEBUGCMD( PrintStr(\"Theater McZee: State 8\") );\n\t\t// Using sequence \"thr2b\" in this state also.\n\t\tVOICE( kwavVO74B, ktpcVO74B );\n\t\tcnt=kcell21;\n\t\tWhile( cnt <= kcell49 );\n\t\t\tCell( cnt++, 0, 0, 6 );\n\t\tEnd;\n\t\tENDVOICE();\n\n \t\tSETGLOBAL( fHelpOn, fTrue );\n\n\t\tChangeStateThis( kst4 );\n\tENDCHUNK \n\n\tREP_ANIM( CHID( kst9, krepDefault ), \"Movie done animation\" )\n \t\t.fHelpState=2;\n\n\t\tDEBUGCMD( PrintStr(\"Theater McZee: State 9\") );\n\t\t// Animation \"thr2b\".\n\t\t\n\t\tVOICE( kwavVO74B, ktpcVO74B );\n\t\tcnt=kcell21;\n\t\tCell( cnt++, 0, 0, 6 );\n\t\tSetNoSlipThis( fTrue );\t\t// we can now drop frames!\n\t\tWhile( cnt <= kcell48 );\n\t\t\tCell( cnt++, 0, 0, 6 );\n\t\tEnd;\n\t\tSetNoSlipThis( fFalse);\t\t// don't drop frames\n\t\tCell( cnt++, 0, 0, 6 );\n\t\tENDVOICE();\n\n\t\tSETGLOBAL( fHelpOn, fTrue );\n\n\t\tChangeStateThis( kst4 );\n\tENDCHUNK \n\n   \tREP_ANIM( CHID( kst10, krepDefault ), \"Close the portfolio.\")\n\t\tDEBUGCMD( PrintStr(\"Theater McZee: State 10\") );\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\t// Destroy portfolio help.\n \t\tDestroyGob( kgobBalloon1a );\n\n\t\t// Animation back down thr2d.\n\t\tcnt=kcell81;\n\t\tWhile( cnt >= kcell61 );\n\t\t\tCell( cnt--, 0, 0, 6 );\n\t\tEnd;\t\t\t\t\t\t\t// This endvoice accompanies the voice\n\t\tENDVOICE();\t \t\t\t\t\t// macro started at the END of the open\n\t\t\t\t\t\t\t\t\t\t// portfolio animation (kst7).\t\t\t\t\t\t\t\t\t\n\t\tIf( .fWay == fTrue );\n\t\t\t.MzNextAction = kst20; \t\t// Being used as a flag only..\n\t\t\tChangeStateThis( kst3 ); \t// McZee leaves the stage.\n\t\tElse;\n\t\t\tSETGLOBAL(fHelpOn, fTrue);\n\t\t\tChangeStateThis( kst4 );\n\t\tEnd;\n\tENDCHUNK;\n\n\n  \tREP_ANIM( CHID( kst11, krepDefault ), \"Let explore animation\" )\n\t\tDEBUGCMD( PrintStr(\"Theater McZee: State 11\") );\n\t\t// Animation thr2f.\n\n\t\tVOICE( kwavVO76, ktpcVO76 );\n\t\tcnt=kcell131;\n\t\tCell( cnt++, 0, 0, 6 );\n\t\tSetNoSlipThis( fTrue );\t\t// we can now drop frames!\n\t\tWhile( cnt <= kcell164 );\n\t\t\tCell( cnt++, 0, 0, 6 );\n\t\tEnd;\n\t\tSetNoSlipThis( fFalse );\t\t// don't drop frames!\t\t\n\t\tCell( cnt++, 0, 0, 6 );\n\n\t\tENDVOICE();\n\n \t\tChangeStateThis( kst4 ); \n\tENDCHUNK \n\n    REP_ANIM( CHID( kst12, krepDefault ), \"Theater McZee null representation.\")\n\t\tDEBUGCMD( PrintStr(\"Theater McZee: State 12\") );\n\t\tCell( kcellNull, 0, 0, 0 );\n\tENDCHUNK \n\n\tCHILD_SCRIPT(\"kgobTheater1McZee Portfolio Callback\", kchidScript1)\n\t\t// End this filter as it is no longer required.\n\t\tFilterCmdsThis(cidPortfolioClosed, cidNil, chidNil);\n\t\t.fWay = _parm[2];\n\t\tIf (.fWay);\n\t\t\t// Hide the movie object until the movie has loaded.\n\t\t\tResizeGob(kgobMovie, 0, 0);\n\t\tEnd;\n\t\tENABLEHOTSPOTS(kflgBuildingAll);\n\t\tChangeStateThis(kst10);\t\n\tENDCHUNK\n\n\n\tCLICK_SCRIPT(\"Theatre Mz click.\")\t\t\n\t\tDEBUGCMD( PrintStr(\"Theater McZee: Click script\") );\n\t\tIf( StateThis() != kst4 );\t// If not in the wait state..\n\t\t\tSETGLOBAL( fHelpOn, fTrue );\n\t\t\tChangeStateThis( kst4 );// go to the wait state.\n\t\tElif( GLOBAL( fHelpOn ) == fFalse );\n\t\t\tSETGLOBAL( fHelpOn, fTrue );\n\t\t\tIf( .fHelpState == 1 );\n\t\t\t\tCreateHelpGob( kgobTheatre1, ktpcTheatre1 );\n\t\t\tElif( .fHelpState == 2);\n\t\t\t\tCreateHelpGob( kgobTheatre1, ktpcTheatre2 );\n\t\t\tEnd;\n\t\tEnd;\n\tENDCHUNK\n\t\t\nHELP_SCRIPT( ktpcTheatre1 )\n \tIf( _parm[0] == 0 );\n\t\t// Do nothing\n\tElif( _parm[0] == 1 );\t\t// Yes, see a movie.\n\t\tSETGLOBAL( fHelpOn, fFalse );\n\t\tDestroyGob( kgobBalloon1e );\n\t\tChangeStateGob( kgobTheatre1McZee, kst7 ); \n\tElif( _parm[0] == 2 );\t\t// No.\n\t\tSETGLOBAL( fHelpOn, fFalse );\n\t\tDestroyGob( kgobBalloon1e );\n\t\tChangeStateGob( kgobTheatre1McZee, kst11 ); \n\tEnd;\nENDCHUNK\n\nHELP_SCRIPT( ktpcTheatre2 )\n \tIf( _parm[0] == 0 );\n\t\t// Do nothing\n\tElif( _parm[0] == 1 );\t\t\t\t// Work on this movie.\n\t\tSETGLOBAL( fHelpOn, fFalse );\n\t\tDestroyGob( kgobBalloon1e );\n\t\tDESTROYMOVIE();\n\t\tkgobTheatre1McZee->MzNextAction = kst21;\n \t\tChangeStateGob( kgobTheatre1McZee, kst3 );\n\n\tElif( _parm[0] == 2 );\t\t\t\t// Create a new movie.\n\t\tSETGLOBAL( fHelpOn, fFalse );\n\t\tDestroyGob( kgobBalloon1e );\n\t\tDEBUGCMD(PrintStr(\"Enqueuing PortfolioClear\"));\n\t\tEnqueueCid(cidPortfolioClear, 0, 0,0,0,0);\n\t\tDESTROYMOVIE();\n\t\tkgobTheatre1McZee->MzNextAction = kst22;\n \t\tChangeStateGob( kgobTheatre1McZee, kst3);\n\n\tElif( _parm[0] == 3 );\t\t\t\t// See this movie again.\n\t\tSETGLOBAL( fHelpOn, fFalse );\n\t\tDestroyGob( kgobBalloon1e );\n\t\t// Rewind and play the movie.\n\t\tDEBUGCMD(PrintStr(\"Enqueuing TheaterRewind\"));\n\t\tEnqueueCid(cidTheaterRewind, 0, 0, 0, 0, 0);\n\t\tkgobTheatre1McZee->MzNextAction = kst23;\n  \t\tChangeStateGob( kgobTheatre1McZee, kst3 );\n\t\t\n\tElif (_parm[0] == 4);\t\t\t\t// Watch another movie.\n\t\tSETGLOBAL( fHelpOn, fFalse );\n\t\tDestroyGob( kgobBalloon1e );\n\t\tChangeStateGob( kgobTheatre1McZee, kst7 );\t// Open the portfolio book.\n\tElif( _parm[0] == 5 );\t\t\t\t// Stop watching movies.\n\t\tSETGLOBAL( fHelpOn, fFalse );\n\t\tDestroyGob( kgobBalloon1e );\n\t\tDEBUGCMD(PrintStr(\"Enqueuing PortfolioClear\"));\n\t\tEnqueueCid(cidPortfolioClear, 0, 0,0,0,0);\n\t\tDESTROYMOVIE();\n\t\tkgobTheatre1McZee->fHelpState=1;\n\t\tChangeStateGob( kgobTheatre1McZee, kst11 );\n\tEnd;\nENDCHUNK\n\nOBJECT( \"theatre1, left door\",   kgobTheatre1LeftDoor, 450, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\theatre\\leftdr.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"left door clicked\" )\n \t\tNEXTPLACE1( kgobTheatre3, kst2 );\n\tENDCHUNK\n\nOBJECT( \"theatre 1, right door\",   kgobTheatre1RightDoor, 450, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\theatre\\rightdr.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"theatre right fwd door\" )\n \t\tNEXTPLACE1( kgobTheatre4, kst2  );\n\tENDCHUNK\n\n//*******************************************************************************\n//*******************************************************************************\n//\t\t\t\tMovie Work Space object\n//*******************************************************************************\n\nOBJECT( \"Movie Work Space\",  kgobMovie, 400, kcrsArrow1 )\n\tREP_RECT(kcell4, \"Movie workspace dimensions\",\n\t\t\txLeftMovie, yTopMovie, xRightMovie, yBottomMovie)\n\tREP_ANIM( CHID( kst1, krepEnterAnimation ), \"lobby1: McZee!\")\n\t\tDEBUGCMD( PrintStr(\"Movie Work space: Entry state \", NumToStr(GLOBAL(kstEntry), \"\")));\n\t\tASSERT(GLOBAL(kstEntry) == kst2 || GLOBAL(kstEntry) == kst3);\n\n\t\tCell( kcell4, 0, 0, 0 );\n\n\t\t// Prepare to capture theatre success/failure cids.\n\t\tFilterCmdsThis(cidTheaterOpenCompleted, kidNil, kchidScript2);\n\t\tFilterCmdsThis(cidTheaterLoadCompleted, kidNil, kchidScript2);\n\n\t\t// Load the theatre object -- the movie will have to be loaded in\n\t\t// kchidScript2 when the OpenCompleted cid has been received.\n\t\tDEBUGCMD(PrintStr(\"Enqueuing TheaterOpen\"));\n\t\tEnqueueCid(cidTheaterOpen, 0, kgobMovie, 0, 0, 0);\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst2, krepDefault ), \"Movie ready.\")\n\t\tDEBUGCMD( PrintStr(\"Movie Work space: State 2\") );\n\t\tCell( kcell4, 0, 0, 0 ); \n\n\t\tIf( StateGob( kgobTheatre1McZee ) != kst12 );  \t// If McZee is not in the NULL state,\n\t\t\tkgobTheatre1McZee->MzNextAction = kst24;\t// McZee go's to a null state after \n\t\t\tChangeStateGob( kgobTheatre1McZee, kst3 ); \t// McZee leaves the stage.\n\t\tEnd;\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst3, krepDefault ), \"Count down.\")\n\t\tDEBUGCMD( PrintStr(\"Movie Work space: State 3\") );\n\t\tPLAYMIDI(cnoNil);\n\t\tCell( kcell4, 0, 0, 0 );\n\t\tChangeStateGob( kgobTheatre1McZee, kst12 );  \t// Put McZee in a null representation state.\n\t\tChangeStateGob( kgobPlayButton, kst2 );\t\t\t// Put the play button in the on state.\n\t\tChangeStateGob(kgobRewindButton, kst2);\n\t\tIf( .f1stMovie == fTrue );\n\t\t\t.f1stMovie = fFalse;\n\t\t\tWAIT_FOR_TRANSITION();\t\t\t\t\t\t// Wait for a complete palette transition. \n\t\t\t// Unhide the movie object.\n\t\t\tIf (HeightGob(kgobMovie) == 0);\n\t\t\t\tResizeGob(kgobMovie, xRightMovie-xLeftMovie, yBottomMovie-yTopMovie);\n\t\t\tEnd;\n\t\t\tCreateChildThis( kgobCountDn, kgobCountDn );\t\n\t\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\t\tWhile( PlayingGob( kgobCountDn ));\n\t\t\t\tCell( kcellNull, 0,0, 6 );\t\t\t\t// Cell command being used as a timer.\n\t\t\tEnd;\n\t\t\tDestroyGob( kgobCountDn );\n\t\t\tENABLEHOTSPOTS(kflgBuildingMin);\t\t \n\t\tEnd;\n\t\tChangeStateThis( kst4 );\t\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst4, krepDefault ), \"Movie playing.\")\n\t\tDEBUGCMD( PrintStr(\"Movie Work space: State 4\") );\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tPLAYMIDI(cnoNil);\n\t\tChangeStateGob( kgobPlayButton, kst2 );\t\t\t// Put the play button in the on state.\n\t\tChangeStateGob(kgobRewindButton, kst2);\n\n\t\tIf( StateGob( kgobTheatre1McZee ) != kst12 );  \t// If McZee is not in the NULL state,\n\t\t\tkgobTheatre1McZee->MzNextAction = kst24;\t// McZee go's to a null state after \n\t\t\tChangeStateGob( kgobTheatre1McZee, kst3 ); \t// McZee leaves the stage.\n\t\t\tWhile( StateGob( kgobTheatre1McZee ) != kst12 );\n\t\t\t\tCell( 0, 0, 0, 6 );\t\t\t\t\t\t// Pole the state of McZee to insure\n\t\t\tEnd;\n\t\tElse;\n\t\t\tENABLEHOTSPOTS(kflgBuildingMin);\t\t \n\t\tEnd;\n \t\tCell( kcell4, 0, 0, 0 );\n\t\t//--------------------------------------------------\n\t\t//\t\t\tPlay the movie\t (functionality)\n\t\t//--------------------------------------------------\n\t\tDEBUGCMD(PrintStr(\"Enqueuing TheaterPlay\"));\n\t\tEnqueueCid(cidTheaterPlay, 0, 0, 0, 0, 0);\n\n\t\t// Look out for the cid indicating that the movie has stopped.\n\t\tFilterCmdsThis(cidMviePlaying, cidNil, kchidScript1);\n\n \tENDCHUNK\n\n\tREP_ANIM( CHID( kst5, krepDefault ), \"Movie done.\")\n\t\tDEBUGCMD( PrintStr(\"Movie Work space: State 5\") );\n\t\tCell( kcell4, 0, 0, 0 );\n\t\tChangeStateGob(kgobPlayButton, kst1);\t\t\t// put play button in stopped\n\t\tChangeStateGob(kgobRewindButton, kst1);\t\t\t// position.\n\t\tkgobTheatre1McZee->MzNextAction = kst9;\n\t\tkgobTheatre1McZee->fHelpState = 2;\n\t\tChangeStateGob( kgobTheatre1McZee, kst2 );\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst6, krepDefault ), \"Movie paused.\")\n\t\tDEBUGCMD( PrintStr(\"Movie Work space: State 6\") );\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n \t\tCell( kcell4, 0, 0, 0 );\n\t\t//--------------------------------------------------\n\t\t//\t\t\tPause the movie\t (functionality)\n\t\t//--------------------------------------------------\n\t\t// There is no pause.  Just stop the movie and don't rewind.\n\t\tDEBUGCMD(PrintStr(\"kgobMovie kst6: Enqueuing TheaterStop\"));\n\t\tEnqueueCid(cidTheaterStop, 0, 0, 0, 0, 0);\n\t\tkgobTheatre1McZee->MzNextAction = kst8;\n\t\tkgobTheatre1McZee->fHelpState = 2;\n\t\tChangeStateGob( kgobTheatre1McZee, kst2 );\n\tENDCHUNK\n\n\tCHILD_SCRIPT(\"kgobMovie cidMviePlaying Callback\", kchidScript1)\n\t\t// Only take action if the movie has stopped.\n\t\tIf (!_parm[2] && StateGob(kgobPlayButton) == kst2);\n\t\t\tFilterCmdsThis(cidMviePlaying, cidNil, chidNil);\n\t\t\tChangeStateThis(kst5);\n\t\tEnd;\n\tENDCHUNK\n\n\tCHILD_SCRIPT(\"kgobMovie cidTheaterXCompleted Callback\", kchidScript2)\n\t\tIf (_parm[2] == fFalse);\t// Theater command failed.\n\t\t\t// TATR will have already alerted the user. We just need to lose\n\t\t\t// the movie object and put the theatre in a reasonable state.\n\t\t\tDEBUGCMD(PrintStr(\"Warning: cidTheaterLoad or cidTheaterOpen failed!\"));\n\t\t\tDEBUGCMD(PrintStr(\"Enqueuing PortfolioClear\"));\n\t\t\tEnqueueCid(cidPortfolioClear, 0, 0,0,0,0);\n\t\t\tDESTROYMOVIE();\n\t\t\tkgobTheatre1McZee->fHelpState=1;\n\t\t\tSETGLOBAL(fHelpOn, fTrue);\n\t\t\tChangeStateGob(kgobTheatre1McZee, kst4);\n\t\tElif (_parm[1] == cidTheaterOpenCompleted);\n\t\t\tDEBUGCMD(PrintStr(\"Enqueuing TheaterLoad\"));\n\t\t\tEnqueueCid(cidTheaterLoad, 0, 0, 0, 0, 0);\n\t\tElse;\n\t\t\t.f1stMovie=fTrue;\t\n\t\t\tChangeStateThis(GLOBAL(kstEntry));\n\t\tEnd;\n\tENDCHUNK\n\nOBJECTREG( \"Movie count down\", kgobCountDn, 0, 1, 150, kcrsArrow1 )\n\tREP_VIDEO( CHID1( krepDefault ), \"CNTDWN5.AVI\", fTrue )\n\n// Note, the movie controls need to be above the movie click filter, which\n// I've put at 450.\n\n// ---------------------------------------------------------\n// This object is used to lock out clicks while a movie is loaded.\n// ---------------------------------------------------------\nOBJECT(\"movie click filter\", kgobMovieClickFilter, 450, kcrsArrow1)\n\tREP_RECT(CHID1(krepDefault), \"movie click filter\", 0, 0, 640, 480)\n\n// --------------------------------------------------------------------------------\n// The thumbnail is the graphic indicator of volume level...\n// positioned within the slide path - not hittable\n// --------------------------------------------------------------------------------\nOBJECTTY( \"Theater - volume slider\",  kgobVolumeButton, 451, kcrsArrow1, kgokkRectNoHit )\n\tREP_PPMBMP( CHID1( krepDefault ), \"building\\pbm\\theatre\\thumb.pbm\" )\n\n#define _kdySlider 62  // Range the volume can slide in\n\nOBJECTREG( \"theater - volume slidepath\", kgobTheaterVolume, 9, 110, 451, kcrsHand1 )\n\tREP_RECT( CHID1( krepDefault), \"rectangle\", 0, 0, 12, 74 )\n\tCREATE_SCRIPT( \"create slidepath\")\n\t\tCreateChildThis( kgobVolumeButton, kgobVolumeButton  );\n\t\t// get initial volume value, move thumbnail\n\t\ty = _kdySlider  -(( GetMasterVolume() * _kdySlider )/ (2*kvlmFull));\n\t\tMoveAbsGob( kgobVolumeButton, 0, y );\n\tENDCHUNK\n\tREP_ANIM( CHID1( krepMouseDnOn), \"slider\")\t\n\t\t// repeat up to 30000 times.\n\t\t.siiLoop = PlaySoundThis(kctgWave, kwavDing, 2, 0x00010000, 30000, 1,\n\t\t\t\tksclBldgSound);\t\n\t\tWhile( 1 );\n\t\t\ty = YMouseThis();\n\t\t\tIf( y < 0 );\n\t\t\t\ty=0;\n\t\t\tElif\t( y > _kdySlider );\n\t\t\t\ty =_kdySlider;\n\t\t\tEnd;\t\n\t\t\n\t\t\t// move thumb slider\n\t\t\tMoveAbsGob( kgobVolumeButton, 0, y );\n\t\t\n\t\t\t// track new volume\n\t\t\tnewvol = ( (2*kvlmFull)* (_kdySlider-y) ) / _kdySlider;\t\n\t \t\n\t\t\t// set the volume\n\t\t\tSetMasterVolume( newvol );\t\n\t \t\n\t\t\t// Sample at 10/60ths of a second.\n\t\t\tCell(  0 , 0,0, 10 );\t\n\t\tEnd;\n\tENDCHUNK\n\tREP_ANIM( CHID1( kchidDownUpOn ), \"release on\" )\n\t\tStopSound( .siiLoop );\n\tENDCHUNK\n\tADOPT_ANIM( LAST_ANIM, CHID1( kchidDownUpOff ))\n\n\t#undef _kdySlider\n\nOBJECTREG( \"Movie play/stop button\", kgobPlayButton, 318, 7, 451, kcrsHand1 )\n\tREP_PPMBMP( CHID( kst1, krepDefault ), \"building\\pbm\\theatre\\play1.pbm\" )\n\tREP_PPMBMP( CHID( kst2, krepDefault ), \"building\\pbm\\theatre\\play2.pbm\" )\n\tCLICK_SCRIPT( \"Movie play/stop button clicked.\" )\n\t\t// Pressing play to start the movie...\n\t\tIf( StateThis() == kst1 ); \n\t\t\t// Take down help balloon if one is up.\n\t\t\tIf( FGobExists( kgobBalloon1e ) );\n\t\t\t\tDestroyGob( kgobBalloon1e );   // This destroys the balloon that holds the tip\n\t\t\tElif( FGobExists( kgobBalloon1a ) );\n\t\t\t\tDestroyGob( kgobBalloon1a );\n\t\t\tEnd; \n\t\t\n\t\t\t// Changing the movie state to 3 or 4 will cause the \"Play\"\n\t\t\t// command to be sent.\n\t\t\tIf( kgobMovie->f1stMovie == fTrue );\n\t\t\t\tChangeStateGob( kgobMovie, kst3 );\t\n\t\t\tElse;\n\t\t\t\tChangeStateGob( kgobMovie, kst4 );\n\t\t\tEnd;\n\t\t\tChangeStateThis( kst2 );\n\t\t\tChangeStateGob(kgobRewindButton, kst2);\n\t\t// Pressing stop to stop the movie...\n\t\tElse;\n\t\t\t// Changing the movie state to 6 will cause the \"Stop\" command\n\t\t\t// to be sent.\n\t\t\tChangeStateGob( kgobMovie, kst6 );\n\t\t\tChangeStateThis( kst1 );\n\t\t\tChangeStateGob(kgobRewindButton, kst1);\n\t\tEnd;\t\t\n\tENDCHUNK\t\t\n\nGOBCHUNK(\"Movie rewind button\", kgobRewindButton, kgokkNormal)\n\tDEFAULT_POSITION(293, 7, 451)\n\tACTION(fcustNil, fcustNil, fgrfstDefault, kcrsHand1, kchidScript1, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfst2, kcrsArrow1, chidNil, cidNil, cnoNil)\nENDCHUNK\n\tREP_PPMBMP( kcell1, \"building\\pbm\\theatre\\rewind1.pbm\" )\n\tREP_PPMBMP( kcell2, \"building\\pbm\\theatre\\rewind2.pbm\" )\n\n\tREP_ANIM( CHID( kst1, krepDefault ), \"Default\" )\n\t\tCell (kcell1, 0, 0, 0);\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst2, krepDefault ), \"Default\" )\n\t\tCell (kcell1, 0, 0, 0);\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst1, krepMouseDnOn ), \"Rewind down on\" )\n\t\tCell (kcell2, 0, 0, 0);\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst1, krepMouseDnOff ), \"Rewind down off\" )\n\t\tCell (kcell1, 0, 0, 0);\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst1, krepMouseUpOn ), \"Rewind up on\" )\n\t\tCell (kcell1, 0, 0, 0);\n\tENDCHUNK\n\n\tCHILD_SCRIPT(\"Rewind button clicked\", kchidScript1)\n\t\t// The movie should not be playing.\n\t\tASSERT(StateGob(kgobPlayButton) == kst1);\n\t\tIf( FGobExists( kgobBalloon1a ) );\n\t\t\tDestroyGob( kgobBalloon1a );\n\t\tEnd;\n\t\tIf (FGobExists(kgobBalloon1e));\n\t\t\tDestroyGob(kgobBalloon1e);\n\t\tEnd;\n\t\t// This'll start McZee leaving the stage if he's on it; otherwise, it\n\t\t// really just makes sure that we're not already in kst4 so changing\n\t\t// to kst4 later will actually do something.\n\t\tChangeStateGob(kgobMovie, kst2);\n\t\tDEBUGCMD(PrintStr(\"Enqueuing TheaterRewind\"));\n\t\tEnqueueCid(cidTheaterRewind, 0, 0, 0, 0, 0);\n\t\t// And start the movie playing again.\n\t\tChangeStateGob( kgobMovie, kst4 );\n\t\t\n\tENDCHUNK\n\n\nOBJECT( \"theatre 2, back door\",   kgobTheatre2Door, 50, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\theatre\\the2door.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"Theatre 2 back door clicked\" )\n \t\tNEXTPLACE1( kgobLobby2, kst2 );\n\tENDCHUNK\n\nOBJECT( \"theatre2 map\", kgobTheatre2Map, 50, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\theatre\\the2map.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"theatre 2 map clicked\" ) \n\t\tCreateChildGob( GET_CURRENTPLACE(), kgobMapMain, kgobMapMain );\n\tENDCHUNK\n\nOBJECT( \"theatre2 exit\",  kgobTheatre2Exit, 50, kcrsHand1 )\n\tREP_RECT( CHID1( krepDefault ),  \"exit sign\" , 420, 194, 445, 206 )\n\tCLICK_SCRIPT( \"theatre 2 exit clicked\" ) \n\t\tQUITAPP();\n\tENDCHUNK\n\n\n\nOBJECT( \"right screen\",  kgobTheatre3Right, 10, kcrsRight )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\theatre\\right.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"right screen clicked\" )\n \t\tNEXTPLACE1( kgobTheatre1, kst4 ); // Goto theatre1, wait state.\n\tENDCHUNK\n\nOBJECT( \"left front door\",  kgobTheatre3Door, 10, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\theatre\\bkleft.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"left front door clicked\" )\n\t\tNEXTPLACE1( kgobBackstage1, kst2 );\n\tENDCHUNK\n\t\nOBJECT( \"theatre3 map\",  kgobTheatre3Map, 44, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\theatre\\the3map.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"theatre 3 map clicked\") \n\t\tCreateChildGob( GET_CURRENTPLACE(), kgobMapMain, kgobMapMain );\n\tENDCHUNK\n\nOBJECT( \"theatre3 exit\",  kgobTheatre3Exit, 44, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\theatre\\the3quit.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"theatre 3 exit clicked\" ) \n\t\tQUITAPP();\n\tENDCHUNK\n\n\nOBJECT( \"Theater4 McZee\", kgobTheatre4McZee , 550, kcrsArrow1 )\n    REP_ANIM( CHID( kst1, krepDefault ), \"Theatre4 McZee pass thru!\")\n\t\tDEBUGCMD(PrintStr(\"Create theatre4 McZee\"));\n\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tVOICE( kwav30_thr4, ktpc30_thr4 );\n\t\tcnt = kcell1;\n\t\tWhile( cnt <= kcell44 );\n\t\t\tIf( cnt == kcell39 );\n\t\t\t\tCreateChildGob( kgobTheatre4, kgobThe4OpenDoor, kgobThe4OpenDoor );\n\t\t\tEnd;\n\t\t\tCell( cnt, 0, 0, 6 );\n\t\t\tcnt++;\n\t\tEnd;\n\t\tENDVOICE();\n\t\tDestroyThis();\n\t\tRunScriptGob( kgobTheatre4, kchidScript1 );\n\tENDCHUNK\n    #include \"mzthea4.seq\"\n\nOBJECT( \"Theatre  left door opening\", kgobThe4OpenDoor, 150, kcrsArrow1 )\n\tREP_ANIM( CHID( kst1, krepEnterAnimation ), \"Theatre4 door opening\" )\n\t\tPLAYMIDI( kmidTheatre );\n\t\tcnt=kcell1;\n\t\tWhile( cnt <= kcell5 );\n\t\t\tCell( cnt++, 0,0, 6 );\n\t\tEnd;\n\tENDCHUNK\n\tREP_PPMBMP( kcell1, \"building\\pbm\\theatre\\Ldoor49.pbm\" )\n\tREP_PPMBMP( kcell2, \"building\\pbm\\theatre\\Ldoor50.pbm\" )\n\tREP_PPMBMP( kcell3, \"building\\pbm\\theatre\\Ldoor51.pbm\" )\n\tREP_PPMBMP( kcell4, \"building\\pbm\\theatre\\Ldoor52.pbm\" )\n\tREP_PPMBMP( kcell5, \"building\\pbm\\theatre\\Ldoor53.pbm\" )\n\t\t\nOBJECT( \"left screen\",  kgobTheatre4Left, 10, kcrsLeft )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\theatre\\left.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"Left screen clicked\" )\n \t\tNEXTPLACE1( kgobTheatre1, kst4 );   // Goto theatre1, wait state.\n\tENDCHUNK\n\nOBJECT( \"right front door\",  kgobTheatre4Door, 10, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\theatre\\bkright.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"left front door clicked\" )\n\t\tNEXTPLACE1( kgobBackstage1, kst2 );\n\tENDCHUNK\n\t\nOBJECT( \"theatre4 map\",  kgobTheatre4Map, 44, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\theatre\\the4map.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"theatre 4 map clicked\" ) \n\t\tCreateChildGob( GET_CURRENTPLACE(), kgobMapMain, kgobMapMain );\n\tENDCHUNK\n\nOBJECT( \"theatre4 exit\",  kgobTheatre4Exit, 44, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\theatre\\the4quit.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"theatre 2 exit clicked\" ) \n\t\tQUITAPP();\n\tENDCHUNK\n\n//------------------------------------------------------------\n//\tBio page hotspots\n//----------------------------------------------------------\nOBJECT( \"Biopage 31 mask\",  kgobTheater2m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\theatre\\the2m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 31 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 31 );\n\t\t\tBIO_CREATEBOOK( 31, fFalse, kgobTheatre2 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 32 mask\",  kgobTheater2m2, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\theatre\\the2m2.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 32 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 32 );\n\t\t\tBIO_CREATEBOOK( 32, fFalse, kgobTheatre2 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 33 mask\",  kgobTheater2m3, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\theatre\\the2m3.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 33 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 33 );\n\t\t\tBIO_CREATEBOOK( 33, fFalse, kgobTheatre2 );\n\t\tEnd;\t\t\n\tENDCHUNK\n\n//Cleaning up defines that are only to be used in this file.\n#undef SHOWMOVIECLICKFILTER  \n#undef CREATEMOVIE  \n#undef DESTROYMOVIE\n"
  },
  {
    "path": "src/building/ticket.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// -----------------------------------------------------\n//\tTICKET.CHT\n//\n//\t Copyright (C) Microsoft Corporation 1995.\n//\t All Rights reserved.\n//\n// -----------------------------------------------------\n//\tModule Intent:\n//\n//\tContains the kauai script code for the Ticket Booth far off\n//\tand near sceens.\n//\n// \tRevisions:\n// \n// \tmm-dd-yy\n// \t??-??-94    *****         - Created\n// \t\n// -----------------------------------------------------\n\nWAVE_CHUNK( \"building\\sound\\ticket\\TKTBTH.wav\", kwavTKTBTH )\nWAVE_CHUNK( \"building\\sound\\ticket\\TBCY2.wav\", kwavTBCY2 )\nWAVE_CHUNK( \"building\\sound\\ticket\\TBTH3.wav\", kwavTBTH3 )\nWAVE_CHUNK( \"building\\sound\\ticket\\VO54.wav\", kwavVO54 )\nWAVE_CHUNK( \"building\\sound\\ticket\\VO56B.wav\", kwavVO56B )\nWAVE_CHUNK( \"building\\sound\\ticket\\tbfar.wav\", kwavTicketFar )\n\n\n// ----------------------------------------------------------\n// Doors leading into the lobby\n// ----------------------------------------------------------\nOBJECT( \"ticket1:doors in\", kgobTicket1Doors, 44, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ), \"building\\bitmaps\\ticket\\tik1drs.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"ticket booth doors clicked\" )\n\t\tIf( GetProp(kpridFirstTimeUser) && GLOBAL(fTicketPS) );\n\t\t\tSETGLOBAL( fTicketPS, fFalse );\n\t\t\tNEXTPLACE1( kgobTicket2, kst2 );\t\t// first time users must go to ticket booth.\n\t\tElse;\t\t\n\t\t\tNEXTPLACE1( kgobLobby1, kst3 );\n\t\tEnd;\n\tENDCHUNK\t\t\t\t\t\t\t\t\n\n// ----------------------------------------------------------\n// faded out McZee in booth, waiting for something to happen\n// CHANGE: 5.16 (*****) -- fixed.  Made nohit\n// ----------------------------------------------------------\nOBJECTTY( \"ticket1: mczee waiting\", kgobTicket1Waiter, 15, kcrsHand1, gokkNoHitThis )\n\tREP_ANIM( CHID1( krepDefault ),  \"ticket1: mczee waiting\")\n\t\tVOICE( kwavTicketFar, 0 );\n\t\ti = 5;\n\t\tWhile( --i );\n\t\t\tcnt = kcell1;\n\t\t\tWhile( cnt <= kcell22 );\n\t\t\t\tCell( cnt++, 0, 0, 6 );\n\t\t\tEnd;\n\t\tEnd;\n\t\tNEXTPLACE1( kgobTicket2, kst2 );\t// move into close view.\n\tENDCHUNK\n\t#include \"ticket1.seq\"\n\n// -------------------------------------------------------\n// Map behind McZee in the ticketbooth\n// -------------------------------------------------------\t  \nOBJECT( \"ticket2: map\", kgobTicket2Map, 10, kcrsHand1 )\n\tREP_RECT( CHID1( krepDefault ), \"Ticket2 map mask\", 155, 97, 236, 158 )\n\tCLICK_SCRIPT( \"ticket2: map clicked\" )\n\t\tCreateChildGob( GET_CURRENTPLACE(), kgobMapMain, kgobMapMain );\n\tENDCHUNK\n\n// -------------------------------------------------------\n// Exit button behind McZee in the ticketbooth\n// -------------------------------------------------------\nOBJECT( \"ticket2: exit\", kgobTicket2Exit, 10, kcrsHand1 )\n\tREP_RECT( CHID1( krepDefault ), \"Ticket2 exit button mask\", 173,31, 223, 61 )\n\tCLICK_SCRIPT( \"ticket2: exit clicked\" )\n\t\tQUITAPP();\n\tENDCHUNK\n\n// ----------------------------------------------------------------\n// McZee the ticket boy in the ticket booth...\n//----------------------------------------------------------------\nOBJECT( \"ticket2:mczee\", kgobTicket2McZee, 20, kcrsHand1 )\n\tREP_ANIM( CHID( kst1, krepEnterAnimation ), \"Ticket2: Dispatch state.\")\n\t\tASSERT(GLOBAL(kstEntry) == kst2 || GLOBAL(kstEntry) == kst3);\n\n\t\t.fWay = fFalse;\t  // A flag set by portfolio callback script and used in kst5.\n\t\tChangeStateThis(GLOBAL(kstEntry));\n\tENDCHUNK\n\n \t//----------------------------------------------------------------\n\t// Mczee playing air guitar\n\t//----------------------------------------------------------------\n\tREP_ANIM( CHID( kst2, krepDefault), \"ticket mczee animate\" )\n\t\t// create the animation\n\t\tPLAYMIDI( cnoNil );\t// stop music\n\t\tENDVOICE();\t\t\t// stop any talking\n\t\t\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tCell( kcell1, 0,0, 1 );\n\t\tWAIT_FOR_TRANSITION();\t// If a transition is occuring wait \n\t\tCreateChildGob( GidParThis(), kgobTicketMcZeeAVI, kgobTicketMcZeeAVI );\n\t\tCell( kcell1,0,0, 100 );\t// wait for init\n\t\t\n\t\t// watch it and proceed appropriately\n\t\tWhile( PlayingGob( kgobTicketMcZeeAVI ));\n\t\t\tCell( kcell1, 0, 0, 10 );\t// poll at 1/6ths of a second\n\t\tEnd; \n\t\tDestroyGob( kgobTicketMcZeeAVI );\n\t\tENABLEHOTSPOTS(kflgBuildingAll);\n\t\tChangeStateThis( kst3 );\t// proceed - give camera/etc\n\tENDCHUNK\n\n \t//----------------------------------------------------------------\n\t// Mczee presenting film and cans, choices\n\t//----------------------------------------------------------------\n\tREP_ANIM( CHID( kst3, krepDefault ), \"ticket:mczee (map entry)\" )\n\t\tENDVOICE();\n\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\t\tCell( kcell301, 0,0, 1 );\n\t\tWAIT_FOR_TRANSITION();\t// If a transition is occuring wait \n\t\tCreateChildGob( GidParThis(), kgobTicketMcZeeAVI2, kgobTicketMcZeeAVI2 );\n\t\tCell( kcell301,0,0, 100 );\t// wait for init\n\t\t\n\t\t// watch it and proceed appropriately\n\t\tWhile( PlayingGob( kgobTicketMcZeeAVI2 ));\n\t\t\tCell( kcell301, 0, 0, 10 );\t// poll at 1/6ths of a second\n\t\tEnd; \n\t\tDestroyGob( kgobTicketMcZeeAVI2 );\n\t\tENABLEHOTSPOTS(kflgBuildingAll);\n\t\tCreateChildGob( kgobTicket2, kgobTicket2Cans, kgobTicket2Cans );\n\t\tCreateChildGob( kgobTicket2, kgobTicket2Camera, kgobTicket2Camera );\t\t\t\t\t\t\n\t\tENABLEHOTSPOTS(kflgBuildingAll);\n\t\tChangeStateThis( kst4 );\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst4, krepDefault ), \"McZee waiting animation\" )\n\t\tCell( kcell301, 0,0,1 );\t// draw ourselves.\n\t\tWAIT_FOR_TRANSITION();\t\t// If a transition is occuring wait \n\n\t\tIf( !FGobExists( kgobTicket2Cans ) );\n\t\t\tCreateChildGob( kgobTicket2, kgobTicket2Cans, kgobTicket2Cans );\n\t\tEnd;\n\n \t\tIf( !FGobExists( kgobTicket2Camera ) );\n\t\t\tCreateChildGob( kgobTicket2, kgobTicket2Camera, kgobTicket2Camera );\n\t\tEnd;\n\n\t\tIf( GLOBAL(fHelpOn) );\n\t\t\tCreateHelpGob( kgobTicket2, ktpcTicketChoices );\n\t\tElif( GLOBAL( fTic1stHelp ) ); // If help has never been up before, put it up.\n\t\t\t// fTic1stHelp --- flag for turning help on first time per session.\t\t\n\t\t\tSETGLOBAL( fTic1stHelp, fFalse );\n \t\t\tSETGLOBAL( fHelpOn, fTrue );\n\t\t\tCreateHelpGob( kgobTicket2, ktpcTicketChoices );\n\t\tEnd;\n\n\n\t\tWhile( fTrue );\n\t\t\tcnt=kcell400;\n\t\t\tVOICE( kwavTBCY2, 0 );\n\t\t\tWhile( cnt <= kcell440 );\n\t\t\t\tCell( cnt++, 0, 0, 6);\n\t\t\tEnd;\n\t\t\tENDVOICE();\n\t\tEnd;\n\tENDCHUNK\n\n\tREP_ANIM( CHID( kst5, krepDefault ), \"McZee opening the portfolio\" )\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\n\t\tDEBUGCMD( PrintStr(\"Ticket McZee: State 5\") );\n\n\t\tSetZThis( 900  );\t\t  // Put the portfolio above help balloons.\n\t\tcnt=kcell551;\t\t\t\t// but not above the glass!\n\t\tVOICE( kwavVO54, 0 );\n\t\tWhile( cnt < kcell577 );\n\t\t\tCell( cnt++, 0, 0, 6 );\n\t\tEnd;\n\n\t\tCreateChildGob( kgobTicket2McZee, kgobPortfolio, kgobPortfolio );\n\t\tkgobPortfolio->kidCallObj = kgobTicket2McZee;\n\t\tkgobPortfolio->chidCallScript = kchidScript1;\n\tENDCHUNK \n\n   \tREP_ANIM( CHID( kst6, krepDefault ), \"McZee close the portfolio.\")\n\n\t\tDEBUGCMD( PrintStr(\"Ticket McZee: State 6\") );\n\n\t\tcnt=kcell576;\n\t\tWhile( cnt >= kcell551 );\n\t\t\tCell( cnt--, 0, 0, 6 );\n\t\tEnd;\n\n\t\tIf( .fWay );\n\t\t\tDEBUGCMD(PrintStr(\"flag fMovie is set to fTrue\"));\n\t\t\tSETGLOBAL( fMovie, fTrue ); // Movie is loaded.\n\t\t\tNEXTPLACE1( kgobLobby1, kst3 );\n\t\tElse;\n\t\t\tENABLEHOTSPOTS(kflgBuildingAll);\n\t\t\tSetZThis( 20 );\n\t\t\tChangeStateThis( kst4 );\n\t\tEnd;\n\tENDCHUNK;\n\t\n\tREP_ANIM( CHID( kst7, krepDefault), \"McZee starting camera pull to backstage\" )\n\t\tDISABLEHOTSPOTS(kflgBuildingMin);\n\n\t\tDEBUGCMD( PrintStr(\"Ticket McZee: State 7\") );\n\n\t\tIf( FGobExists( kgobBalloon1d ) );\n\t\t\tDestroyGob( kgobBalloon1d );\n\t\tEnd;\n\n\t\tSetZThis( 50 );\t\t\t// Put McZee in front of the other objects\n\t\t\t\t\t\t\t\t// in the ticket booth.\n\t\tcnt = kcell501;\n\t\tVOICE( kwavVO56B, 0 );\n\t\tWhile( cnt <= kcell527 );\n\t\t\tCell( cnt++, 0,0, 6 );\n\t\t\tIf( cnt == kcell511 );\n\t\t\t\tDestroyGob(\tkgobTicket2Camera );\n\t\t\tEnd;\n\t\tEnd;\n\t\tENDVOICE();\n\t\tSETGLOBAL( fTrans, fFalse );  // No palette transition.\n\t\tNEXTPLACE1( kgobBackstage1, kst10 );\n\tENDCHUNK\n\n\tCLICK_SCRIPT(\"Ticket Booth McZee: Click script\")\n\t\tIf( StateThis() != kst4 );\n\t\t\tChangeStateThis( kst4 );\n\t\t\tSETGLOBAL( fHelpOn, fTrue );\n\t\tElif( GLOBAL( fHelpOn ) );\t\t\t\t// McZee's clicked & help's on..turn it off.\n\t\t\tSETGLOBAL( fHelpOn, fFalse );\n\t\t\tDestroyGob( kgobBalloon1d );\n\t\tElse;\t\t\t\t\t\t\t\t\t// McZee's clicked & help's off..turn it on.\n\t\t\tSETGLOBAL( fHelpOn, fTrue );\n\t\t\tCreateHelpGob( kgobTicket2, ktpcTicketChoices );\n\t\tEnd;\n\tENDCHUNK\n\t\n\t// The following script is called back to from the portfolio\n\t// when it closes. \t\n\tCHILD_SCRIPT(\"Ticket2McZee child script\", kchidScript1 )\n\n\t\tIf( _parm[0] == kidNil );\t// USER CANCELLED PORTFOLIO\n\t\t\t.fWay = fFalse;\n\t\tElse;\t\t\t\t\t\t// USER CHOSE A MOVIE\n\t\t\t.fWay = fTrue;\n\t\tEnd;\n\t\tENDVOICE();\t\t\t\t\t// End the voiceover that started at state 5 (open portfolio).\n\t\tChangeStateThis( kst6 );\n\tENDCHUNK\n\t// McZee animation cells.  Keep them at the bottom of the object\n\t// for Kauai performance reasons.\n\t#include \"ticket.seq\"\n\n\n\nOBJECTREG(\"ticketbooth - dance\", kgobTicketMcZeeAVI, 132, 18, 999, kcrsHand1)\n\tREP_VIDEO( CHID1( krepDefault ), \"ticket1.avi\", fTrue )\n\tCREATE_SCRIPT( \"created\" )\n\t\tFilterCmdsThis( cidMouseDown, kidNil, kchidScript1);\n\tENDCHUNK\n\tCHILD_SCRIPT( \"mouse down\", kchidScript1  )\n\t\t// stop playing... the polling will catch and remove us.\n\t\tStopThis();\t\n\tENDCHUNK\t\t\n\tCLICK_SCRIPT( \"clicked ticketbooth intro\" )\n\t\t// stop playing... the polling will catch and remove us\n\t\tStopThis();\t\n\tENDCHUNK\n\nOBJECTREG(\"ticketbooth - present\", kgobTicketMcZeeAVI2, 0, 0, 999, kcrsHand1)\n\tREP_VIDEO( CHID1( krepDefault ), \"ticket2.avi\", fTrue )\n\tCREATE_SCRIPT( \"created\" )\n\t\tFilterCmdsThis( cidMouseDown, kidNil, kchidScript1);\n\tENDCHUNK\n\tCHILD_SCRIPT( \"mouse down\", kchidScript1  )\n\t\t// stop playing... the polling will catch and remove us.\n\t\tStopThis();\t\n\tENDCHUNK\t\t\n\tCLICK_SCRIPT( \"clicked ticketbooth intro\" )\n\t\t// stop playing... the polling will catch and remove us\n\t\tStopThis();\t\n\tENDCHUNK\n\n\n\n// ----------------------------------------------------\n// Help script to handle ticket booth choices\n// ----------------------------------------------------\nHELP_SCRIPT( ktpcTicketChoices )\n\tIf( _parm[0] == 2 );\t\t\t// See a movie choice.\n\t\tChangeStateGob( kgobTicket2McZee, kst5 );\n\tElif( _parm[0] == 1 );\t\t\t// Make\ta movie.\n\t\tChangeStateGob( kgobTicket2McZee, kst7 );\n\tEnd;\nENDCHUNK\n\n// ----------------------------------------------------\n// Film Cans McZee puts up on the counter\n// ----------------------------------------------------\nOBJECT( \"ticket2:film cans\", kgobTicket2Cans, 30, kcrsHand1 )\n\tREP_PPMBMP( CHID1( krepDefault ), \"building\\pbm\\ticket\\tik2cans.pbm\" )\n\tCLICK_SCRIPT( \"ticket2: films clicked\" )\n\t\t// Get portfolio selection\n\t\tChangeStateGob( kgobTicket2McZee, kst5 );\n\tENDCHUNK\n\n\n// ----------------------------------------------------\n// Camera McZee puts up on the counter\n// ----------------------------------------------------\nOBJECT( \"ticket2:camera clicked\",  kgobTicket2Camera, 30, kcrsHand1 )\n\tREP_PPMBMP( CHID1( krepDefault ), \"building\\pbm\\ticket\\tik2cam.pbm\" )\n\tCLICK_SCRIPT( \"ticket2: camera clicked\" )\n\t\tChangeStateGob( kgobTicket2McZee, kst7 );\n\tENDCHUNK\n\n\n//------------------------------------------------------------\n//\tBio page hotspots\n//----------------------------------------------------------\nOBJECT( \"Biopage 24 mask\",  kgobTic1m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\ticket\\tic1m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 24 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 24 );\n\t\t\tBIO_CREATEBOOK( 24, fFalse, kgobTicket2 );\n\t\tEnd;\t\t\n\tENDCHUNK\n"
  },
  {
    "path": "src/building/ticket.seq",
    "content": "REP_PPMBMP( kcell1, \"building\\pbm\\ticket\\mczee1.pbm\")\n\nREP_PPMBMP( kcell301, \"building\\pbm\\ticket\\tkmz1.pbm\")\nREP_PPMBMP( kcell302, \"building\\pbm\\ticket\\tkmz2.pbm\")\nREP_PPMBMP( kcell303, \"building\\pbm\\ticket\\tkmz3.pbm\")\nREP_PPMBMP( kcell304, \"building\\pbm\\ticket\\tkmz4.pbm\")\nREP_PPMBMP( kcell305, \"building\\pbm\\ticket\\tkmz5.pbm\")\nREP_PPMBMP( kcell306, \"building\\pbm\\ticket\\tkmz6.pbm\")\nREP_PPMBMP( kcell307, \"building\\pbm\\ticket\\tkmz7.pbm\")\nREP_PPMBMP( kcell308, \"building\\pbm\\ticket\\tkmz8.pbm\")\nREP_PPMBMP( kcell309, \"building\\pbm\\ticket\\tkmz9.pbm\")\nREP_PPMBMP( kcell310, \"building\\pbm\\ticket\\tkmz10.pbm\")\nREP_PPMBMP( kcell311, \"building\\pbm\\ticket\\tkmz11.pbm\")\nREP_PPMBMP( kcell312, \"building\\pbm\\ticket\\tkmz12.pbm\")\nREP_PPMBMP( kcell313, \"building\\pbm\\ticket\\tkmz13.pbm\")\nREP_PPMBMP( kcell314, \"building\\pbm\\ticket\\tkmz14.pbm\")\nREP_PPMBMP( kcell315, \"building\\pbm\\ticket\\tkmz15.pbm\")\nREP_PPMBMP( kcell316, \"building\\pbm\\ticket\\tkmz16.pbm\")\nREP_PPMBMP( kcell317, \"building\\pbm\\ticket\\tkmz17.pbm\")\nREP_PPMBMP( kcell318, \"building\\pbm\\ticket\\tkmz18.pbm\")\nREP_PPMBMP( kcell319, \"building\\pbm\\ticket\\tkmz19.pbm\")\nREP_PPMBMP( kcell320, \"building\\pbm\\ticket\\tkmz20.pbm\")\nREP_PPMBMP( kcell321, \"building\\pbm\\ticket\\tkmz21.pbm\")\nREP_PPMBMP( kcell322, \"building\\pbm\\ticket\\tkmz22.pbm\")\nREP_PPMBMP( kcell323, \"building\\pbm\\ticket\\tkmz23.pbm\")\nREP_PPMBMP( kcell324, \"building\\pbm\\ticket\\tkmz24.pbm\")\nREP_PPMBMP( kcell325, \"building\\pbm\\ticket\\tkmz25.pbm\")\nREP_PPMBMP( kcell326, \"building\\pbm\\ticket\\tkmz26.pbm\")\nREP_PPMBMP( kcell327, \"building\\pbm\\ticket\\tkmz27.pbm\")\nREP_PPMBMP( kcell328, \"building\\pbm\\ticket\\tkmz28.pbm\")\nREP_PPMBMP( kcell329, \"building\\pbm\\ticket\\tkmz29.pbm\")\nREP_PPMBMP( kcell330, \"building\\pbm\\ticket\\tkmz30.pbm\")\nREP_PPMBMP( kcell331, \"building\\pbm\\ticket\\tkmz31.pbm\")\nREP_PPMBMP( kcell332, \"building\\pbm\\ticket\\tkmz32.pbm\")\nREP_PPMBMP( kcell333, \"building\\pbm\\ticket\\tkmz33.pbm\")\nREP_PPMBMP( kcell334, \"building\\pbm\\ticket\\tkmz34.pbm\")\nREP_PPMBMP( kcell335, \"building\\pbm\\ticket\\tkmz35.pbm\")\nREP_PPMBMP( kcell336, \"building\\pbm\\ticket\\tkmz36.pbm\")\nREP_PPMBMP( kcell337, \"building\\pbm\\ticket\\tkmz37.pbm\")\nREP_PPMBMP( kcell338, \"building\\pbm\\ticket\\tkmz38.pbm\")\nREP_PPMBMP( kcell339, \"building\\pbm\\ticket\\tkmz39.pbm\")\nREP_PPMBMP( kcell340, \"building\\pbm\\ticket\\tkmz40.pbm\")\nREP_PPMBMP( kcell341, \"building\\pbm\\ticket\\tkmz41.pbm\")\nREP_PPMBMP( kcell342, \"building\\pbm\\ticket\\tkmz42.pbm\")\nREP_PPMBMP( kcell343, \"building\\pbm\\ticket\\tkmz43.pbm\")\nREP_PPMBMP( kcell344, \"building\\pbm\\ticket\\tkmz44.pbm\")\nREP_PPMBMP( kcell345, \"building\\pbm\\ticket\\tkmz45.pbm\")\nREP_PPMBMP( kcell346, \"building\\pbm\\ticket\\tkmz46.pbm\")\nREP_PPMBMP( kcell347, \"building\\pbm\\ticket\\tkmz47.pbm\")\nREP_PPMBMP( kcell348, \"building\\pbm\\ticket\\tkmz48.pbm\")\nREP_PPMBMP( kcell349, \"building\\pbm\\ticket\\tkmz49.pbm\")\nREP_PPMBMP( kcell350, \"building\\pbm\\ticket\\tkmz50.pbm\")\nREP_PPMBMP( kcell351, \"building\\pbm\\ticket\\tkmz51.pbm\")\nREP_PPMBMP( kcell352, \"building\\pbm\\ticket\\tkmz52.pbm\")\nREP_PPMBMP( kcell353, \"building\\pbm\\ticket\\tkmz53.pbm\")\nREP_PPMBMP( kcell354, \"building\\pbm\\ticket\\tkmz54.pbm\")\nREP_PPMBMP( kcell355, \"building\\pbm\\ticket\\tkmz55.pbm\")\nREP_PPMBMP( kcell356, \"building\\pbm\\ticket\\tkmz56.pbm\")\nREP_PPMBMP( kcell357, \"building\\pbm\\ticket\\tkmz57.pbm\")\nREP_PPMBMP( kcell358, \"building\\pbm\\ticket\\tkmz58.pbm\")\nREP_PPMBMP( kcell359, \"building\\pbm\\ticket\\tkmz59.pbm\")\nREP_PPMBMP( kcell360, \"building\\pbm\\ticket\\tkmz60.pbm\")\nREP_PPMBMP( kcell361, \"building\\pbm\\ticket\\tkmz61.pbm\")\nREP_PPMBMP( kcell362, \"building\\pbm\\ticket\\tkmz62.pbm\")\nREP_PPMBMP( kcell363, \"building\\pbm\\ticket\\tkmz63.pbm\")\nREP_PPMBMP( kcell364, \"building\\pbm\\ticket\\tkmz64.pbm\")\nREP_PPMBMP( kcell365, \"building\\pbm\\ticket\\tkmz65.pbm\")\nREP_PPMBMP( kcell366, \"building\\pbm\\ticket\\tkmz66.pbm\")\nREP_PPMBMP( kcell367, \"building\\pbm\\ticket\\tkmz67.pbm\")\nREP_PPMBMP( kcell368, \"building\\pbm\\ticket\\tkmz68.pbm\")\nREP_PPMBMP( kcell369, \"building\\pbm\\ticket\\tkmz69.pbm\")\nREP_PPMBMP( kcell370, \"building\\pbm\\ticket\\tkmz70.pbm\")\nREP_PPMBMP( kcell371, \"building\\pbm\\ticket\\tkmz71.pbm\")\nREP_PPMBMP( kcell372, \"building\\pbm\\ticket\\tkmz72.pbm\")\nREP_PPMBMP( kcell373, \"building\\pbm\\ticket\\tkmz73.pbm\")\nREP_PPMBMP( kcell374, \"building\\pbm\\ticket\\tkmz74.pbm\")\nREP_PPMBMP( kcell375, \"building\\pbm\\ticket\\tkmz75.pbm\")\n\nREP_PPMBMP( kcell401, \"building\\pbm\\ticket\\tkwait1.pbm\" )\nREP_PPMBMP( kcell402, \"building\\pbm\\ticket\\tkwait2.pbm\" )\nREP_PPMBMP( kcell403, \"building\\pbm\\ticket\\tkwait3.pbm\" )\nREP_PPMBMP( kcell404, \"building\\pbm\\ticket\\tkwait4.pbm\" )\nREP_PPMBMP( kcell405, \"building\\pbm\\ticket\\tkwait5.pbm\" )\nREP_PPMBMP( kcell406, \"building\\pbm\\ticket\\tkwait6.pbm\" )\nREP_PPMBMP( kcell407, \"building\\pbm\\ticket\\tkwait7.pbm\" )\nREP_PPMBMP( kcell408, \"building\\pbm\\ticket\\tkwait8.pbm\" )\nREP_PPMBMP( kcell409, \"building\\pbm\\ticket\\tkwait9.pbm\" )\nREP_PPMBMP( kcell410, \"building\\pbm\\ticket\\tkwait10.pbm\" )\nREP_PPMBMP( kcell411, \"building\\pbm\\ticket\\tkwait11.pbm\" )\nREP_PPMBMP( kcell412, \"building\\pbm\\ticket\\tkwait12.pbm\" )\nREP_PPMBMP( kcell413, \"building\\pbm\\ticket\\tkwait13.pbm\" )\nREP_PPMBMP( kcell414, \"building\\pbm\\ticket\\tkwait14.pbm\" )\nREP_PPMBMP( kcell415, \"building\\pbm\\ticket\\tkwait15.pbm\" )\nREP_PPMBMP( kcell416, \"building\\pbm\\ticket\\tkwait16.pbm\" )\nREP_PPMBMP( kcell417, \"building\\pbm\\ticket\\tkwait17.pbm\" )\nREP_PPMBMP( kcell418, \"building\\pbm\\ticket\\tkwait18.pbm\" )\nREP_PPMBMP( kcell419, \"building\\pbm\\ticket\\tkwait19.pbm\" )\nREP_PPMBMP( kcell420, \"building\\pbm\\ticket\\tkwait20.pbm\" )\nREP_PPMBMP( kcell421, \"building\\pbm\\ticket\\tkwait21.pbm\" )\nREP_PPMBMP( kcell422, \"building\\pbm\\ticket\\tkwait22.pbm\" )\nREP_PPMBMP( kcell423, \"building\\pbm\\ticket\\tkwait23.pbm\" )\nREP_PPMBMP( kcell424, \"building\\pbm\\ticket\\tkwait24.pbm\" )\nREP_PPMBMP( kcell425, \"building\\pbm\\ticket\\tkwait25.pbm\" )\nREP_PPMBMP( kcell426, \"building\\pbm\\ticket\\tkwait26.pbm\" )\nREP_PPMBMP( kcell427, \"building\\pbm\\ticket\\tkwait27.pbm\" )\nREP_PPMBMP( kcell428, \"building\\pbm\\ticket\\tkwait28.pbm\" )\nREP_PPMBMP( kcell429, \"building\\pbm\\ticket\\tkwait29.pbm\" )\nREP_PPMBMP( kcell430, \"building\\pbm\\ticket\\tkwait30.pbm\" )\nREP_PPMBMP( kcell431, \"building\\pbm\\ticket\\tkwait31.pbm\" )\nREP_PPMBMP( kcell432, \"building\\pbm\\ticket\\tkwait32.pbm\" )\nREP_PPMBMP( kcell433, \"building\\pbm\\ticket\\tkwait33.pbm\" )\nREP_PPMBMP( kcell434, \"building\\pbm\\ticket\\tkwait34.pbm\" )\nREP_PPMBMP( kcell435, \"building\\pbm\\ticket\\tkwait35.pbm\" )\nREP_PPMBMP( kcell436, \"building\\pbm\\ticket\\tkwait36.pbm\" )\nREP_PPMBMP( kcell437, \"building\\pbm\\ticket\\tkwait37.pbm\" )\nREP_PPMBMP( kcell438, \"building\\pbm\\ticket\\tkwait38.pbm\" )\nREP_PPMBMP( kcell439, \"building\\pbm\\ticket\\tkwait39.pbm\" )\nREP_PPMBMP( kcell440, \"building\\pbm\\ticket\\tkwait40.pbm\" )\n\nREP_PPMBMP( kcell501, \"building\\pbm\\ticket\\tbth5_1.pbm\" )\nREP_PPMBMP( kcell502, \"building\\pbm\\ticket\\tbth5_2.pbm\" )\nREP_PPMBMP( kcell503, \"building\\pbm\\ticket\\tbth5_3.pbm\" )\nREP_PPMBMP( kcell504, \"building\\pbm\\ticket\\tbth5_4.pbm\" )\nREP_PPMBMP( kcell505, \"building\\pbm\\ticket\\tbth5_5.pbm\" )\nREP_PPMBMP( kcell506, \"building\\pbm\\ticket\\tbth5_6.pbm\" )\nREP_PPMBMP( kcell507, \"building\\pbm\\ticket\\tbth5_7.pbm\" )\nREP_PPMBMP( kcell508, \"building\\pbm\\ticket\\tbth5_8.pbm\" )\nREP_PPMBMP( kcell509, \"building\\pbm\\ticket\\tbth5_9.pbm\" )\nREP_PPMBMP( kcell510, \"building\\pbm\\ticket\\tbth5_10.pbm\" )\nREP_PPMBMP( kcell511, \"building\\pbm\\ticket\\tbth5_11.pbm\" )\nREP_PPMBMP( kcell512, \"building\\pbm\\ticket\\tbth5_12.pbm\" )\nREP_PPMBMP( kcell513, \"building\\pbm\\ticket\\tbth5_13.pbm\" )\nREP_PPMBMP( kcell514, \"building\\pbm\\ticket\\tbth5_14.pbm\" )\nREP_PPMBMP( kcell515, \"building\\pbm\\ticket\\tbth5_15.pbm\" )\nREP_PPMBMP( kcell516, \"building\\pbm\\ticket\\tbth5_16.pbm\" )\nREP_PPMBMP( kcell517, \"building\\pbm\\ticket\\tbth5_17.pbm\" )\nREP_PPMBMP( kcell518, \"building\\pbm\\ticket\\tbth5_18.pbm\" )\nREP_PPMBMP( kcell519, \"building\\pbm\\ticket\\tbth5_19.pbm\" )\nREP_PPMBMP( kcell520, \"building\\pbm\\ticket\\tbth5_20.pbm\" )\nREP_PPMBMP( kcell521, \"building\\pbm\\ticket\\tbth5_21.pbm\" )\nREP_PPMBMP( kcell522, \"building\\pbm\\ticket\\tbth5_22.pbm\" )\nREP_PPMBMP( kcell523, \"building\\pbm\\ticket\\tbth5_23.pbm\" )\nREP_PPMBMP( kcell524, \"building\\pbm\\ticket\\tbth5_24.pbm\" )\nREP_PPMBMP( kcell525, \"building\\pbm\\ticket\\tbth5_25.pbm\" )\nREP_PPMBMP( kcell526, \"building\\pbm\\ticket\\tbth5_26.pbm\" )\nREP_PPMBMP( kcell527, \"building\\pbm\\ticket\\tbth5_27.pbm\" )\n\n\nREP_PPMBMP( kcell551, \"building\\pbm\\ticket\\tbth4_1.pbm\" )\nREP_PPMBMP( kcell552, \"building\\pbm\\ticket\\tbth4_2.pbm\" )\nREP_PPMBMP( kcell553, \"building\\pbm\\ticket\\tbth4_3.pbm\" )\nREP_PPMBMP( kcell554, \"building\\pbm\\ticket\\tbth4_4.pbm\" )\nREP_PPMBMP( kcell555, \"building\\pbm\\ticket\\tbth4_5.pbm\" )\nREP_PPMBMP( kcell556, \"building\\pbm\\ticket\\tbth4_6.pbm\" )\nREP_PPMBMP( kcell557, \"building\\pbm\\ticket\\tbth4_7.pbm\" )\nREP_PPMBMP( kcell558, \"building\\pbm\\ticket\\tbth4_8.pbm\" )\nREP_PPMBMP( kcell559, \"building\\pbm\\ticket\\tbth4_9.pbm\" )\nREP_PPMBMP( kcell560, \"building\\pbm\\ticket\\tbth4_10.pbm\" )\nREP_PPMBMP( kcell561, \"building\\pbm\\ticket\\tbth4_11.pbm\" )\nREP_PPMBMP( kcell562, \"building\\pbm\\ticket\\tbth4_12.pbm\" )\nREP_PPMBMP( kcell563, \"building\\pbm\\ticket\\tbth4_13.pbm\" )\nREP_PPMBMP( kcell564, \"building\\pbm\\ticket\\tbth4_14.pbm\" )\nREP_PPMBMP( kcell565, \"building\\pbm\\ticket\\tbth4_15.pbm\" )\nREP_PPMBMP( kcell566, \"building\\pbm\\ticket\\tbth4_16.pbm\" )\nREP_PPMBMP( kcell567, \"building\\pbm\\ticket\\tbth4_17.pbm\" )\nREP_PPMBMP( kcell568, \"building\\pbm\\ticket\\tbth4_18.pbm\" )\nREP_PPMBMP( kcell569, \"building\\pbm\\ticket\\tbth4_19.pbm\" )\nREP_PPMBMP( kcell570, \"building\\pbm\\ticket\\tbth4_20.pbm\" )\nREP_PPMBMP( kcell571, \"building\\pbm\\ticket\\tbth4_21.pbm\" )\nREP_PPMBMP( kcell572, \"building\\pbm\\ticket\\tbth4_22.pbm\" )\nREP_PPMBMP( kcell573, \"building\\pbm\\ticket\\tbth4_23.pbm\" )\nREP_PPMBMP( kcell574, \"building\\pbm\\ticket\\tbth4_24.pbm\" )\nREP_PPMBMP( kcell575, \"building\\pbm\\ticket\\tbth4_25.pbm\" )\nREP_PPMBMP( kcell576, \"building\\pbm\\ticket\\tbth4_26.pbm\" )\nREP_PPMBMP( kcell577, \"building\\pbm\\ticket\\tbth4_27.pbm\" )\n"
  },
  {
    "path": "src/building/ticket1.seq",
    "content": "REP_PPMBMP( kcell1, \"building\\pbm\\ticket\\tbth1_1.pbm\" )\nREP_PPMBMP( kcell2, \"building\\pbm\\ticket\\tbth1_2.pbm\" )\nREP_PPMBMP( kcell3, \"building\\pbm\\ticket\\tbth1_3.pbm\" )\nREP_PPMBMP( kcell4, \"building\\pbm\\ticket\\tbth1_4.pbm\" )\nREP_PPMBMP( kcell5, \"building\\pbm\\ticket\\tbth1_5.pbm\" )\nREP_PPMBMP( kcell6, \"building\\pbm\\ticket\\tbth1_6.pbm\" )\nREP_PPMBMP( kcell7, \"building\\pbm\\ticket\\tbth1_7.pbm\" )\nREP_PPMBMP( kcell8, \"building\\pbm\\ticket\\tbth1_8.pbm\" )\nREP_PPMBMP( kcell9, \"building\\pbm\\ticket\\tbth1_9.pbm\" )\nREP_PPMBMP( kcell10, \"building\\pbm\\ticket\\tbth1_10.pbm\" )\nREP_PPMBMP( kcell11, \"building\\pbm\\ticket\\tbth1_11.pbm\" )\nREP_PPMBMP( kcell12, \"building\\pbm\\ticket\\tbth1_12.pbm\" )\nREP_PPMBMP( kcell13, \"building\\pbm\\ticket\\tbth1_13.pbm\" )\nREP_PPMBMP( kcell14, \"building\\pbm\\ticket\\tbth1_14.pbm\" )\nREP_PPMBMP( kcell15, \"building\\pbm\\ticket\\tbth1_15.pbm\" )\nREP_PPMBMP( kcell16, \"building\\pbm\\ticket\\tbth1_16.pbm\" )\nREP_PPMBMP( kcell17, \"building\\pbm\\ticket\\tbth1_17.pbm\" )\nREP_PPMBMP( kcell18, \"building\\pbm\\ticket\\tbth1_18.pbm\" )\nREP_PPMBMP( kcell19, \"building\\pbm\\ticket\\tbth1_19.pbm\" )\nREP_PPMBMP( kcell20, \"building\\pbm\\ticket\\tbth1_20.pbm\" )\nREP_PPMBMP( kcell21, \"building\\pbm\\ticket\\tbth1_21.pbm\" )\nREP_PPMBMP( kcell22, \"building\\pbm\\ticket\\tbth1_22.pbm\" )\n"
  },
  {
    "path": "src/building/waiting.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// -----------------------------------------------------\n// Definitions for the waiting area in the lobby\n// -----------------------------------------------------\n\n\nOBJECT( \"waiting area\", kgobWaiting, 0, kcrsArrow1 )\nREP_PPMBMP( CHID1( krepDefault ),  \"building\\pbm\\waiting\\waiting.pbm\" )\nCREATE_SCRIPT( \"waiting: create\" )\n\tSETPALETTE( kpalSocLobby );\n\tSETKEYS(kflgBuildingAll);\n\tPLAYMIDI( kmidLobby );\n\n\tCreateChildThis( kgobNavbarLeft, kgobNavbarLeft);\n\tCreateChildThis( kgobNavbarDown, kgobNavbarDown );\n\tCreateChildThis( kgobNavbarRight, kgobNavbarRight ); \n\tCreateChildThis( kgobLobby2m1, kgobLobby2m1 );\n\tCreateChildThis( kgobLobby2m2, kgobLobby2m2 );\n\tCreateChildThis( kgobLobby2m3, kgobLobby2m3 );\nENDCHUNK\n\n//------------------------------------------------------------\n//\tBio page hotspots\n//----------------------------------------------------------\nOBJECT( \"Biopage 25 mask\",  kgobLobby2m1, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\lobby\\lobby3m1.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 25 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 25 );\n\t\t\tBIO_CREATEBOOK( 25, fFalse, kgobWaiting );\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 26 mask\",  kgobLobby2m2, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\lobby\\lobby3m2.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 26 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 26 );\n\t\t\tBIO_CREATEBOOK( 26, fFalse, kgobWaiting );\n\t\tEnd;\t\t\n\tENDCHUNK\n\nOBJECT( \"Biopage 27 mask\",  kgobLobby2m3, 0, kcrsHand1 )\n\tREP_MASK( CHID1( krepDefault ),  \"building\\bitmaps\\lobby\\lobby3m3.bmp\", 0, 0 )\n\tCLICK_SCRIPT( \"mask clicked\" ) \n\t\tIf(fBIO_AVAIL( 27 ) );\n\t\t\t// Bio Page already found\n\t\t\tPlaySoundThis(kctgWave, kwavBioAlreadyFound, 0, 0x00010000, 1, 0,\n\t\t\t\t\tksclBldgSound);\n\t\tElse;\n\t\t\tBIO_MARKFOUND( 27 );\n\t\t\tBIO_CREATEBOOK( 27, fFalse, kgobWaiting );\n\t\tEnd;\t\t\n\tENDCHUNK\n\n"
  },
  {
    "path": "src/engine/actor.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Actor Engine\n\n    Primary Author : *****\n    Review Status: Reviewed\n\n    Actors contain:\n    1. A path, pglrpt, which is a gl of route points, the nodes of the path.\n    2. An event list, pggaev, which is a list of variable size events\n        occurring on or between nodes on the path.\n    3. A motion match list of sounds applicable during the current action.\n    4. State variables\n\n    See Movie.doc for a detailed description of the functionality.\n\n    Routes consists of one or more subroutes which can be separately\n    translated, deleted, etc.\n\n    This is a *where* based model of editing.  Events occur at specified\n    locations along the path.  The path is linear between nodes.  Each\n    node represents the point at which the actor was located in the original\n    path recording session.  It is not redefined on resizing or motion fill.\n    Instead, the event list is edited.  The mouse input is however, smoothed\n    in movie before actor is called.\n\n    The one exception to events being executed based on location is the\n    aetAdd event, which is executed at its specified time.\n    Due to motion fill inheriting the static or non-static path property,\n    note that it is (no longer) possible for motion fill to cause an\n    actor to not reach the end of a subroute.\n\n    Misc comments:\n\n    Actors begin each subroute with the\tdefault costume, reimposed\n    automatically by the code at every new subroute.\tAny\n    initialization events are then CHANGE events, post applied via\n    events in the event stream.\tWhen a new subroute is created, the\n    new initialization events are copied from the previous subroute,\n    if one exists, and from the following subroute if no previous subroute\n    exists.\n\n    Subroutes can be pushed in time by record, rerecord, & sooner/later.\n    An actor is represented at at most one location at any given time.\n\n    All events located <= _rtelCur on the path are executed at the end\n    of any given frame. (See FGotoFrame()).\n\n    Each subroute has an aetAdd event as its first event in the event list.\n\n    Rotation transformations are absolute, not cumulative. The transformation\n    effective at the current frame is stored in _xfrm.  There are now two\n    fundamentally different types of rotation.  The aetRotF represent forward\n    rotation and have path orientation applied concurrently.  The aetRotH\n    apply to static segments only and do not have path orientation post\n    applied.  _xfrm represents both, and _fUseBmat34 flags (for each frame)\n    which transformation is to be applied when the body is positioned.\n    The aetRotH events take precedence over aetRotF events if both exist in the\n    same frame. This is necessary to allow the aetRotF events to control future\n    path rotation while still allowing single frame orientation.  The aetRotF\n    events nuke the aetRotH events, however, in order to allow the user to\n    visibly see the forward rotation currently being applied.\n\n    Costume changes are per body part set.\n\n    Freeze inhibits cel advancement.\n    Step size events control floating as well as cel advancement in place.\n    Each subpath is terminated with a step=0 and a freeze event.\n\n    Each actor is visible (not hidden, though possibly out of view) between\n    aetAdd and aetRem events.\n\n    The stretch events, aetPull, do not alter step size.  Uniform stretching,\n    aetSize events, do.\n\n    Move events are used to translate the path forward of the event by the\n    delta-xyz value in the event.  These are therefore cumulative, so that\n    (unlike rotations), a move at frame 50 followed by a move at frame 20\n    will result in frame 50 -to- end-of-subroute being translated by the sum\n    of the translations at frames 20 and 50.  Tweak events do not translate\n    the path, but instead change the current display location only.\n\n    This code carefully maintains wysiwyg.  There are two parts to this.\n    One part is the maintenance of exact location, so that if a recorded\n    actor follows a specific path (eg, through rather than into doorways)\n    that path is retained exactly.  A second part is that by <calculating>\n    exact locations (unaltered by numerical roundoff), a carefully edited\n    and synchronized actor will not end up one frame off in time on replay.\n    Both were considered high priority be design.\n\n    Actors currently proceed to the end of their path, taking a potentially\n    partial step at the end.  As a result, to maintain wysiwyg, actors\n    display at the location of aetActn and aetStep events.\n    NOTE: This UI decision probably added more complexity to the\n    code than it gained in UI functionality.  Had actors always\n    displayed only at full step increments, these scenarios would not\n    include wysiwyg issues.\n\n    Frame numbers are stored with the events, but are not guaranteed to be\n    correct for frame numbers larger than current frame _nfrmCur.\n    FComputeLifetime() guarantees these for all frames, but FComputeLifetime()\n    can fail -> the code should not rely on future nfrm values.\n\n    The route is translated by _dxyzFullRte in class ACTR.\n    Each subroute is additionally translated by _dxyzSubRte.\n    _dxyzRte combines the overall actor translation for efficiency only.\n\n***************************************************************************/\n#include \"frame.h\"\n#include \"soc.h\"\n\nASSERTNAME\n\nRTCLASS(ACTR)\n\n/***************************************************************************\n\n    Constructor for ACTR - private.\n\n***************************************************************************/\nACTR::ACTR(void)\n{\n    _arid = aridNil;\n    _tagTmpl.sid = ksidInvalid;\n    _tagSnd.sid = ksidInvalid;\n    _nfrmCur = _nfrmFirst = knfrmInvalid;\n    _nfrmLast = klwMin;\n    _fLifeDirty = fFalse;\n}\n\n/***************************************************************************\n\n    Destructor for an ACTR\n\n***************************************************************************/\nACTR::~ACTR(void)\n{\n    AssertBaseThis(0);\n\n    _CloseTags();\n    ReleasePpo(&_pbody);\n    ReleasePpo(&_pggaev);\n    ReleasePpo(&_pglrpt);\n    ReleasePpo(&_pglsmm);\n    ReleasePpo(&_ptmpl);\n}\n\n/***************************************************************************\n\n    Initialize the actor\n    The actor will not yet be grounded to any initial scene frame.\n\n***************************************************************************/\nbool ACTR::_FInit(TAG *ptagTmpl)\n{\n    AssertBaseThis(0);\n    AssertVarMem(ptagTmpl);\n\n    _ptmpl = (PTMPL)vptagm->PbacoFetch(ptagTmpl, TMPL::FReadTmpl);\n    if (pvNil == _ptmpl)\n        return fFalse;\n\n    AssertPo(_ptmpl, 0);\n    _tagTmpl = *ptagTmpl;\n    TAGM::DupTag(&_tagTmpl);\n\n    if (!_FCreateGroups())\n        return fFalse;\n\n    _SetStateRewound();\n    if (!_ptmpl->FGetGrfactn(0, &_grfactn))\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Initialize the transformation matrix & factors\n    (Sets the absolute scale = 1, and use the rest orientation)\n\n***************************************************************************/\nvoid ACTR::_InitXfrm(void)\n{\n    AssertThis(0);\n\n    _InitXfrmRot(&_xfrm.bmat34Fwd);\n    _InitXfrmRot(&_xfrm.bmat34Cur);\n    _xfrm.aevpull.rScaleX = rOne;\n    _xfrm.aevpull.rScaleY = rOne;\n    _xfrm.aevpull.rScaleZ = rOne;\n    _xfrm.rScaleStep = rOne;\n    _xfrm.xaPath = aZero;\n    _xfrm.yaPath = aZero;\n    _xfrm.zaPath = aZero;\n}\n\n/***************************************************************************\n\n    Initialize the rotation part of the transformation\n    The rest orientation is now applied post user-rotations so that\n    user rotations can be with respect to the actor's coordinate system\n\n***************************************************************************/\nvoid ACTR::_InitXfrmRot(BMAT34 *pbmat34)\n{\n    AssertThis(0);\n    AssertVarMem(pbmat34);\n    BrMatrix34Identity(pbmat34);\n}\n\n/***************************************************************************\n\n    Allocate a new actor\n    The actor is not attached to a scene until SetPscen is called.\n    The actor will not have an identifiable ID until SetArid is called.\n    Note that an actor which is not yet added to a scene is neither\n    grounded in time (_nfrmFirst) nor space (_dxyzFullRte).\n\n***************************************************************************/\nPACTR ACTR::PactrNew(TAG *ptagTmpl)\n{\n    AssertVarMem(ptagTmpl);\n\n    PACTR pactr;\n\n    if ((pactr = NewObj ACTR()) == pvNil)\n        return pvNil;\n\n    if (!pactr->_FInit(ptagTmpl))\n    {\n        ReleasePpo(&pactr);\n        return pvNil;\n    }\n\n    return pactr;\n}\n\n/***************************************************************************\n\n    Create the groups _pggaev, _pglrpt and _pglsmm\n\n***************************************************************************/\nbool ACTR::_FCreateGroups(void)\n{\n    AssertBaseThis(0);\n\n    if (pvNil == (_pggaev = GG::PggNew(size(AEV), kcaevInit, kcbVarAdd)))\n        return fFalse;\n\n    if (pvNil == (_pglrpt = GL::PglNew(size(RPT), kcrptGrow)))\n        return fFalse;\n    _pglrpt->SetMinGrow(kcrptGrow);\n\n    if (pvNil == (_pglsmm = GL::PglNew(size(SMM), kcsmmGrow)))\n        return fFalse;\n    _pglsmm->SetMinGrow(kcsmmGrow);\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Set the owning scene and the brender world for the body.\n\n***************************************************************************/\nvoid ACTR::SetPscen(SCEN *pscen)\n{\n    AssertBaseThis(0);\n\n    AssertVarMem(pscen);\n    Assert(_pscen == pvNil || _pscen == pscen, \"SetPscen logic error\");\n\n    if (_pscen != pvNil)\n    {\n        Assert(_pbody != pvNil, \"Bad body pointer\");\n        return;\n    }\n\n    Assert(_pbody == pvNil, \"Bad body pointer\");\n    _pscen = pscen;\n\n    // Create the body parts\n    if (pvNil == (_pbody = _ptmpl->PbodyCreate()))\n        return;\n\n    _pbody->SetBwld(pscen->Pmvie()->Pbwld());\n}\n\n/***************************************************************************\n\n    Hide the Actor and initialize the Actor State Variables\n\n***************************************************************************/\nvoid ACTR::_InitState(void)\n{\n    AssertBaseThis(0);\n\n    _Hide();\n    _fLifeDirty = fTrue;\n    if (_ptmpl != pvNil && _pbody != pvNil)\n        _ptmpl->FSetDefaultCost(_pbody);\n    _SetStateRewound();\n}\n\n/***************************************************************************\n\n    Set the actor state variables to the rewound position\n\n***************************************************************************/\nvoid ACTR::_SetStateRewound(void)\n{\n    AssertBaseThis(0);\n\n    _fFrozen = fFalse;\n    _fModeRecord = fFalse;\n    _anidCur = _celnCur = 0;\n    _rtelCur.irpt = 0;\n    _rtelCur.dwrOffset = rZero;\n    _rtelCur.dnfrm = -1;\n    if (_pglrpt->IvMac() > 0)\n    {\n        RPT rpt;\n        _pglrpt->Get(0, &rpt);\n        _xyzCur = rpt.xyz;\n    }\n\n    _iaevCur = 0;\n    _iaevActnCur = _iaevAddCur = ivNil;\n    _dwrStep = rZero;\n    _iaevFrmMin = 0;\n    _InitXfrm();\n}\n\n/***************************************************************************\n\n    Prepare the actor for display in frame nfrm.\n\n    nfrm can be any frame number in the movie - it is actor independent.\n    NOTE: The state of this actor is expected to be current for frame _nfrmCur\n    at the time this routine is called.\n    FGotoFrame exits with _nfrmCur == nfrm.\n    (A scene level interrogation of all actors should find\n    that each actor's _nfrmCur is the same).\n\n    Note: The scope of fPosition dirty spans multiple calls to _FDoFrm\n\n***************************************************************************/\nbool ACTR::FGotoFrame(long nfrm, bool *pfSoundInFrame)\n{\n    AssertThis(0);\n    AssertIn(nfrm, klwMin, klwMax);\n\n    bool fPositionBody;\n    bool fSuccess = fTrue;\n    bool fPositionDirty = fFalse;\n    bool fQuickMethodValid;\n    long iaevT = -1;\n    long iaev;\n    AEV *paev;\n\n    if (nfrm == _nfrmCur)\n        return fTrue;\n\n    // Initialization\n    if (nfrm < _nfrmCur || _nfrmCur == knfrmInvalid)\n    {\n        bool fMidPath = FPure(_pggaev->IvMac() > 0 && _iaevCur > 0 && nfrm > _nfrmFirst);\n\n        // Note: If nfrm < _nfrmFirst, we may be adding\n        // a new earliest add event.\n        if (nfrm < _nfrmFirst && _fOnStage)\n            _Hide();\n\n        if (nfrm > _nfrmFirst && _nfrmCur != knfrmInvalid)\n        {\n            Assert(0 < _iaevCur, \"Invalid state variables in FGotoFrame()\");\n            // Optimize if there are no events in the current frame\n            paev = (AEV *)_pggaev->QvFixedGet(_iaevCur - 1);\n            if (paev->nfrm < nfrm)\n            {\n                if (!_FQuickBackupToFrm(nfrm, &fQuickMethodValid))\n                    return fFalse;\n                // Vertical segments can prevent _FQuickBackupToFrm()\n                // from being valid.  If so, use default method.\n                if (fQuickMethodValid)\n                    return fTrue;\n            }\n        }\n\n        // Will be walking forward from the nearest earlier add event\n        // Search backward to find it.\n        if (fMidPath)\n        {\n            for (iaev = _iaevCur - 1; iaev >= 0; iaev--)\n            {\n                paev = (AEV *)_pggaev->QvFixedGet(iaev);\n                if (paev->aet == aetAdd && paev->nfrm <= nfrm)\n                {\n                    iaevT = iaev;\n                    break;\n                }\n            }\n        }\n        _SetStateRewound();\n        if (fMidPath)\n        {\n            AssertIn(iaevT, 0, _pggaev->IvMac());\n            _iaevFrmMin = _iaevCur = _iaevAddCur = iaevT;\n            paev = (AEV *)_pggaev->QvFixedGet(_iaevCur);\n            _rtelCur = paev->rtel;\n            _nfrmCur = paev->nfrm;\n            Assert(paev->aet == aetAdd, \"Illegal _iaevAddCur state var\");\n            _rtelCur.dnfrm--;\n            _GetXyzFromRtel(&_rtelCur, &_xyzCur);\n        }\n        else\n        {\n            _nfrmCur = LwMin(nfrm, _nfrmFirst);\n        }\n        _ptmpl->FSetDefaultCost(_pbody);\n    }\n    else\n    {\n        _nfrmCur++;\n        _iaevFrmMin = _iaevCur; // Save 1st event of this frame\n    }\n\n    if (nfrm < _nfrmFirst)\n        return fTrue;\n\n    // Trivial case: no events for this actor\n    // _nfrmCur always reflects the movie's current frame\n    if (_pggaev->IvMac() == 0)\n    {\n        _nfrmCur = nfrm;\n        return fTrue;\n    }\n\n    while (_nfrmCur <= nfrm)\n    {\n        fPositionBody = (_nfrmCur == nfrm);\n        if (!_FDoFrm(fPositionBody, &fPositionDirty, pfSoundInFrame))\n            fSuccess = fFalse;\n\n        if (nfrm == _nfrmCur)\n            break;\n\n        _nfrmCur++;\n        _iaevFrmMin = _iaevCur;\n        AssertIn(_iaevActnCur, -1, _pggaev->IvMac());\n    }\n\n    return fSuccess;\n}\n\n/***************************************************************************\n\n    Backup To a smaller frame.  \t(Optimization)\n    Return *pfQuickMethodValid fTrue on success.\n    Return *pfQuickMethodValid fFalse to if this method invalid here.\n\n***************************************************************************/\nbool ACTR::_FQuickBackupToFrm(long nfrm, bool *pfQuickMethodValid)\n{\n    AssertThis(0);\n    AssertVarMem(pfQuickMethodValid);\n    Assert(nfrm < _nfrmCur, \"Illegal call to _FBackupToFrm\");\n\n    long ifrm;\n    RTEL rtelT;\n    XYZ xyzOld = _xyzCur;\n    XYZ xyzT;\n    long dnfrm = _nfrmCur - nfrm;\n\n#ifdef DEBUG\n    AEV *paev;\n    paev = (AEV *)_pggaev->QvFixedGet(_iaevCur - 1);\n    Assert(paev->nfrm < nfrm, \"Invalid Call to _FQuickBackupToFrm()\");\n#endif // DEBUG\n\n    // Don't try to back up during frames beyond the actor's lifetime\n    if (nfrm >= _nfrmLast)\n    {\n        // GotoFrame() must always exit with _nfrmCur being valid\n        // Otherwise, edits will be located at incorrect frames\n        _nfrmCur = nfrm;\n#ifdef BUG1906\n        _rtelCur.dnfrm -= dnfrm;\n#else  //! BUG1906\n        _rtelCur.dnfrm--;\n#endif //! BUG1906\n        return fTrue;\n    }\n\n    // There are no events between here and the destination frame\n    // _iaevFrmMin need not change\n\n    // Walk to the destination location\n    // Set the cel of the action\n    for (ifrm = _nfrmCur - 1; ifrm >= nfrm; ifrm--)\n    {\n        if (!_FGetRtelBack(&_rtelCur, fTrue))\n            goto LFail;\n    }\n\n    _GetXyzFromRtel(&_rtelCur, &_xyzCur);\n    _nfrmCur = nfrm;\n\n    if (dnfrm > 1 || xyzOld.dxr != _xyzCur.dxr || xyzOld.dzr != _xyzCur.dzr)\n    {\n        // Check for transitions to vertical motion\n        if (!_FGetRtelBack(&rtelT, fFalse))\n            goto LFail;\n\n        _GetXyzFromRtel(&rtelT, &xyzT);\n\n        if (_xyzCur.dxr == xyzT.dxr && _xyzCur.dzr == xyzT.dzr)\n        {\n            // Vertical motion next\t(backing up)\n            // -> Require _fUseBmat34Cur == fTrue, but bmat34Cur is not\n            // yet computed.\n            // -> Quick backup insufficient.\n            *pfQuickMethodValid = fFalse;\n            return fTrue;\n        }\n    }\n\n    // Send motion match sounds to Msq to play\n    if (!(_pscen->GrfScen() & fscenSounds) && (nfrm <= _nfrmLast) && _fOnStage)\n        _FEnqueueSmmInMsq(); // Ignore failure\n\n    // Position the actor\n    _PositionBody(&_xyzCur);\n    if (_fOnStage)\n    {\n        if (!_ptmpl->FSetActnCel(_pbody, _anidCur, _celnCur, pvNil))\n            goto LFail;\n    }\n    *pfQuickMethodValid = fTrue;\n    return fTrue;\n\nLFail:\n    *pfQuickMethodValid = fFalse;\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Compute xyz for one step backwards from the current location, as per\n    state variables\n\n***************************************************************************/\nbool ACTR::_FGetRtelBack(RTEL *prtel, bool fUpdateStateVar)\n{\n    AssertThis(0);\n    AssertVarMem(prtel);\n\n    long celnSav = _celnCur;\n    long nfrmSav = _nfrmCur;\n    RTEL rtelSav = _rtelCur;\n    AEV *paev;\n    BRS dwrStep;\n    RTEL rtelAdd;\n    BRS dwrT;\n\n    paev = (AEV *)_pggaev->QvFixedGet(_iaevAddCur);\n    rtelAdd = paev->rtel;\n\n    if (!_fFrozen)\n        _celnCur--;\n    if (rZero == _dwrStep || (rtelAdd.irpt == _rtelCur.irpt && rtelAdd.dwrOffset == _rtelCur.dwrOffset))\n    {\n        _nfrmCur--;\n        _rtelCur.dnfrm--;\n        goto LEnd;\n    }\n\n    // Set the location to display this actor\n    if (!_FGetDwrPlay(&dwrStep))\n        goto LFail;\n\n    dwrT = BrsSub(_rtelCur.dwrOffset, dwrStep);\n\n    if (dwrT >= rZero)\n        _rtelCur.dwrOffset = dwrT;\n    else\n    {\n        RPT rpt;\n        while (dwrT < rZero)\n        {\n            if (_rtelCur.irpt <= 0)\n            {\n                Bug(\"Corrupted event list\");\n                _rtelCur.irpt = 0;\n                dwrT = rZero;\n                break;\n            }\n            _rtelCur.irpt--;\n            _pglrpt->Get(_rtelCur.irpt, &rpt);\n            dwrT = BrsAdd(rpt.dwr, dwrT);\n        }\n        _rtelCur.dwrOffset = dwrT;\n    }\n    _nfrmCur--;\n\nLEnd:\n    *prtel = _rtelCur;\n    if (!fUpdateStateVar)\n    {\n        _celnCur = celnSav;\n        _nfrmCur = nfrmSav;\n        _rtelCur = rtelSav;\n    }\n    return fTrue;\n\nLFail:\n    _celnCur = celnSav;\n    _nfrmCur = nfrmSav;\n    _rtelCur = rtelSav;\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Update the internal actor state variables to frame _nfrmCur.\n    Ready the actor to display in frame _nfrmCur if fPositionBody is fTrue.\n    Sets *pfPositionDirty if a change is encountered.\n    Clears *pfPositionDirty after updating Brender.\n\n    Assumes previous frame correctly rendered.\n    Note: PositionBody is delayed until after Events are processed - Tweak,\n    Actn, Step and Transform events all can alter the location or orientation.\n    Also, new Action Events precede Cel Positioning\n\n    Note: The scope of *pfPositionDirty spans multiple _FDoFrm calls\n\n***************************************************************************/\nbool ACTR::_FDoFrm(bool fPositionBody, bool *pfPositionDirty, bool *pfSoundInFrame)\n{\n    AssertThis(0);\n    AssertVarMem(pfPositionDirty);\n\n    AEV aev;\n    BRS dwr;\n    long iaev;\n    long iaevAdd;\n    bool fEndRoute;\n    XYZ xyzOld = _xyzCur;\n    bool fFreezeThisCel = _fFrozen;\n    bool fEndSubEvents = fFalse;\n    bool fSuccess = fTrue;\n    bool fAdvanceCel;\n\n    // Obtain distance to move.\tThis may be shortened on encountering\n    // a aetActn event later in this same frame.\n    fSuccess = _FGetDwrPlay(&dwr);\n    _AdvanceRtel(dwr, &_rtelCur, _iaevCur, _nfrmCur, &fEndRoute);\n    _GetXyzFromRtel(&_rtelCur, &_xyzCur);\n\n    // Use the pre-path rotation matrix if the actor moves\n    // so that the path orientation can later be post applied.\n    _fUseBmat34Cur = (dwr == rZero || (xyzOld.dxr == _xyzCur.dxr && xyzOld.dzr == _xyzCur.dzr));\n\n    // Locate the next Add event before entering the next loop\n    // Add events are executed when their absolute frame number == _nfrmCur\n    if (!_fModeRecord)\n    {\n        iaevAdd = _iaevCur - 1;\n        while (_FFindNextAevAet(aetAdd, iaevAdd + 1, &iaevAdd))\n        {\n            if (!_FIsAddNow(iaevAdd))\n                break;\n\n            // Add is now\n            _iaevCur = iaevAdd;\n            if (!_FDoAevCur())\n                return fFalse;\n\n            *pfPositionDirty = fTrue;\n        }\n\n        // Process any events through a dwr step size, unless an aetActn event\n        // shortens that distance.\n        // An aetActn Event will change _rtelCur at the time it is executed\n        for (iaev = _iaevCur; iaev < _pggaev->IvMac(); iaev++)\n        {\n            _pggaev->GetFixed(iaev, &aev);\n            if (aev.aet == aetAdd)\n            {\n                if (!_FIsAddNow(iaev))\n                    break;\n\n                // Add is now\n                if (!_FDoAevCur())\n                    return fFalse;\n\n                *pfPositionDirty = fTrue;\n                continue;\n            }\n\n            if (aev.rtel > _rtelCur)\n                break;\n\n            if (aetRotF == aev.aet || aetSize == aev.aet || aetPull == aev.aet || aetRotH == aev.aet ||\n                aetMove == aev.aet)\n            {\n                // The xyz position is not necessarily changing.\n                // Specifically enforce Brender updating\n                *pfPositionDirty = fTrue;\n            }\n            else if ((aetActn == aev.aet) || (aetAdd == aev.aet))\n            {\n                // Do not increment _celnCur before displaying actor on new entrance/action\n                fFreezeThisCel = fTrue;\n                *pfPositionDirty = fTrue;\n            }\n\n            if (pfSoundInFrame != pvNil && aev.aet == aetSnd && fPositionBody)\n                *pfSoundInFrame = fTrue;\n\n            // Non-motion match sounds cannot depend on playing here as\n            // there might not be a sound event at the ending frame.\n            // Therefore _FDoAevCur() does not enqueue motion match sounds.\n            // It enters mm-snds in the smm.  _FDoAevCur() enqueues non-mm snds.\n            if (aev.aet != aetSnd || (fPositionBody && !(_pscen->GrfScen() & fscenSounds)))\n            {\n                // Play non sounds\n                // Play sounds if this is the final frame (mm or non mm)\n                if (!_FDoAevCur())\n                    fSuccess = fFalse;\n            }\n            else\n            {\n                // Motion match sounds must be entered in the smm\n                // whether this is the final frame or not\n                AEVSND aevsnd;\n                _pggaev->Get(iaev, &aevsnd);\n                if (aevsnd.celn != smmNil)\n                {\n                    if (!_FDoAevCur())\n                        fSuccess = fFalse;\n                }\n                else\n                {\n                    // Skip the current sound event\n                    _iaevCur++;\n                }\n            }\n        }\n    }\n\n    fEndSubEvents = _FIsDoneAevSub(_iaevCur, _rtelCur);\n    fAdvanceCel = (!fFreezeThisCel && !(fEndRoute && fEndSubEvents));\n\n    if (fAdvanceCel)\n    {\n        _celnCur++;\n        if (_ccelCur > 1)\n            *pfPositionDirty = fTrue;\n    }\n\n    // Force Brender to update if the xyz position has changed\n    if (xyzOld != _xyzCur)\n        *pfPositionDirty = fTrue;\n\n    // Position even if hidden for clipping region detection\n    // fPositionBody avoids extraneous positioning on intermed frames\n    if (fPositionBody)\n    {\n        // Enqueue the motion match sounds from the smm.  Ie, enter in the msq\n        if (!(_pscen->GrfScen() & fscenSounds) && (_nfrmCur <= _nfrmLast) && _fOnStage)\n            _FEnqueueSmmInMsq();\n\n        if (*pfPositionDirty)\n        {\n            _PositionBody(&_xyzCur);\n            *pfPositionDirty = fFalse;\n        }\n\n        // Position the actor in the next cel\n        // Do not do so if at the \"end of route\" & \"end of events\"\n        if (_fOnStage)\n        {\n            if (!_ptmpl->FSetActnCel(_pbody, _anidCur, _celnCur, pvNil))\n                fSuccess = fFalse;\n        }\n    }\n    else if (*pfPositionDirty)\n    {\n        BMAT34 bmat34;\n        _MatrixRotUpdate(&_xyzCur, &bmat34);\n    }\n    return fSuccess;\n}\n\n/***************************************************************************\n\n    FReplayFrame : Replays the sound for the current frame\n        -> Re-enqueues sounds for the current frame\n    grfscen - Things that are supposed to be played right now.\n\n***************************************************************************/\nbool ACTR::FReplayFrame(long grfscen)\n{\n    AssertThis(0);\n\n    AEV aev;\n    long iaev;\n\n    // Check if there is anything to do\n    if (!(grfscen & fscenSounds) || !_fOnStage)\n        return fTrue;\n\n    for (iaev = _iaevFrmMin; iaev < _iaevCur; iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if (aev.aet != aetSnd)\n            continue;\n\n        if (!_FDoAevCore(iaev))\n            return fFalse;\n    }\n\n    // Also send any motion match sounds to msq to play\n    return _FEnqueueSmmInMsq();\n}\n\n/***************************************************************************\n\n    _FGetStatic : Returns true/false on success/failure\n    Returns the bool value in *pfStatic\n\n***************************************************************************/\nbool ACTR::_FGetStatic(long anid, bool *pfStatic)\n{\n    AssertThis(0);\n    AssertIn(anid, 0, klwMax);\n    AssertVarMem(pfStatic);\n\n    ulong grfactn;\n\n    if (!_ptmpl->FGetGrfactn(anid, &grfactn))\n        return fFalse;\n\n    if (ivNil == _iaevActnCur)\n    {\n        *pfStatic = fTrue;\n        return fTrue;\n    }\n\n    *pfStatic = FPure(grfactn & factnStatic);\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Is the actor in the last active frame of the subroute?\n\n***************************************************************************/\nbool ACTR::_FIsDoneAevSub(long iaev, RTEL rtel)\n{\n    AssertBaseThis(0);\n    AssertIn(iaev, 0, _pggaev->IvMac() + 1);\n\n    AEV aev;\n    if (iaev == _pggaev->IvMac())\n        return fTrue;\n\n    for (; iaev < _pggaev->IvMac(); iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if (aev.aet == aetAdd)\n            return fTrue;\n        if (aev.rtel > rtel)\n            return fFalse;\n        // Event at current frame.  Keep looking.\n    }\n\n    // No further events exist at future frames for this subpath\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Is the actor at an AddOnStage event which can be applied now?\n\n***************************************************************************/\nbool ACTR::_FIsAddNow(long iaev)\n{\n    AssertBaseThis(0);\n    AssertIn(iaev, 0, _pggaev->IvMac());\n\n    AEV *paev;\n\n    if (_fLifeDirty)\n    {\n        // Update the nfrm values\n        if (!_FComputeLifetime())\n            return fFalse;\n    }\n\n    Assert(_pggaev->Cb(iaev) == size(AEVADD), \"Corrupt event list\");\n    paev = (AEV *)_pggaev->QvFixedGet(iaev);\n\n    if (paev->nfrm <= _nfrmCur)\n        return fTrue;\n\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Return functional (sized) step size when playing\n    Zero is a valid return value\n\n***************************************************************************/\nbool ACTR::_FGetDwrPlay(BRS *pdwr)\n{\n    AssertBaseThis(0);\n    AssertVarMem(pdwr);\n\n    *pdwr = rZero;\n\n    if (kdwrNil == _dwrStep)\n    {\n        if (!_ptmpl->FGetDwrActnCel(_anidCur, _celnCur, pdwr))\n            return fFalse;\n    }\n    else\n    {\n        *pdwr = _dwrStep;\n    }\n\n    *pdwr = BrsMul(*pdwr, _xfrm.rScaleStep);\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Return functional (sized) step size when recording.\n    The returned size is expected to be authored > 0\n\n***************************************************************************/\nbool ACTR::_FGetDwrRecord(BRS *pdwr)\n{\n    AssertBaseThis(0);\n    AssertVarMem(pdwr);\n\n    *pdwr = rZero;\n\n    if (!_ptmpl->FGetDwrActnCel(_anidCur, _celnCur, pdwr))\n        return fFalse;\n\n    *pdwr = BrsMul(*pdwr, _xfrm.rScaleStep);\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Execute the current event.\n    State Variables are updated.\n\n***************************************************************************/\nbool ACTR::_FDoAevCur(void)\n{\n    AssertBaseThis(0);\n\n    if (!_FDoAevCore(_iaevCur))\n        return fFalse;\n\n    _iaevCur++;\n    Assert(_iaevCur <= _pggaev->IvMac(), \"_iaevCur bug\");\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Execute the event iaev.\n\n***************************************************************************/\nbool ACTR::_FDoAevCore(long iaev)\n{\n    AssertBaseThis(0);\n    AssertIn(iaev, 0, _pggaev->IvMac());\n\n    AEV aev;\n    COST cost;\n\n    _pggaev->GetFixed(iaev, &aev);\n    if (aev.nfrm != _nfrmCur)\n    {\n        aev.nfrm = _nfrmCur;\n        _pggaev->PutFixed(iaev, &aev);\n    }\n    AssertIn(aev.aet, 0, aetLim);\n\n    switch (aev.aet)\n    {\n    case aetActn:\n        AEVACTN aevactn;\n        ulong grfactn;\n\n        _pggaev->Get(iaev, &aevactn);\n\n        // Empty the motion match sound list\tif the action <changed>\n        if (aevactn.anid != _anidCur)\n            _pglsmm->FSetIvMac(0);\n\n        if (!_ptmpl->FSetActnCel(_pbody, aevactn.anid, aevactn.celn))\n        {\n            return fFalse;\n        }\n        _celnCur = aevactn.celn;\n        _anidCur = aevactn.anid;\n        if (!_ptmpl->FGetCcelActn(_anidCur, &_ccelCur)) // Cache the cel count\n            return fFalse;\n        _iaevActnCur = iaev;\n\n        // Force the location to the step event\n        // Avoids incorrect event ordering on static segments\n        _rtelCur = aev.rtel;\n        _GetXyzFromRtel(&_rtelCur, &_xyzCur);\n        if (!_ptmpl->FGetGrfactn(_anidCur, &grfactn))\n        {\n            return fFalse;\n        }\n        _grfactn = grfactn;\n        break;\n\n    case aetAdd:\n        AEVADD aevadd;\n        RPT rpt;\n        // Save old costume in case of error\n        if (!cost.FGet(_pbody))\n            return fFalse;\n        // Invoke the default costume/orientation\n        if (!_ptmpl->FSetDefaultCost(_pbody))\n            return fFalse;\n        // Put the actor on stage.\tSet up models.\n        if (!_ptmpl->FSetActnCel(_pbody, _anidCur, _celnCur))\n        {\n            cost.Set(_pbody); // restore old costume\n            return fFalse;\n        }\n\n        // Empty the motion match sound list\n        _pglsmm->FSetIvMac(0);\n\n        // Set the translation for the subroute\n        _pggaev->Get(iaev, &aevadd);\n        _dxyzSubRte.dxr = aevadd.dxr;\n        _dxyzSubRte.dyr = aevadd.dyr;\n        _dxyzSubRte.dzr = aevadd.dzr;\n        _UpdateXyzRte();\n\n        // Load the initial orientation\n        _InitXfrm();\n        _LoadAddOrien(&aevadd);\n\n        // Set state variables\n        _iaevFrmMin = _iaevAddCur = iaev;\n        _rtelCur = aev.rtel;\n        _GetXyzFromRtel(&_rtelCur, &_xyzCur);\n        _pglrpt->Get(aev.rtel.irpt, &rpt);\n\n        // Show the actor\n        if (!_fOnStage)\n            _pbody->Show();\n        _fOnStage = fTrue;\n        break;\n\n    case aetRem:\n        // Exit the actor from the stage\n        _Hide();\n        break;\n\n    case aetCost:\n        AEVCOST aevcost;\n        _pggaev->Get(iaev, &aevcost);\n        if (aevcost.fCmtl)\n        {\n            PCMTL pcmtl = _ptmpl->PcmtlFetch(aevcost.cmid);\n            if (pvNil == pcmtl)\n                return fFalse;\n            _pbody->SetPartSetCmtl(pcmtl);\n            ReleasePpo(&pcmtl);\n        }\n        else\n        {\n            PMTRL pmtrl;\n            pmtrl = (PMTRL)vptagm->PbacoFetch(&aevcost.tag, MTRL::FReadMtrl);\n            if (pvNil == pmtrl)\n                return fFalse;\n            _pbody->SetPartSetMtrl(aevcost.ibset, pmtrl);\n            ReleasePpo(&pmtrl);\n        }\n        break;\n\n    case aetRotF:\n        // Actors are xformed in _FDoFrm, Rotate or Scale\n        _pggaev->Get(iaev, &_xfrm.bmat34Fwd);\n        _fUseBmat34Cur = fFalse;\n        break;\n\n    case aetRotH:\n        // Actors are xformed in _FDoFrm, Rotate or Scale\n        _pggaev->Get(iaev, &_xfrm.bmat34Cur);\n        _fUseBmat34Cur = fTrue;\n        break;\n\n    case aetPull:\n        // Actors are xformed in _FDoFrm, Rotate or Scale\n        _pggaev->Get(iaev, &_xfrm.aevpull);\n        break;\n\n    case aetSize:\n        // Actors are xformed in _FDoFrm, Rotate or Scale\n        _pggaev->Get(iaev, &_xfrm.rScaleStep);\n        break;\n\n    case aetStep: // Exists for timing control (eg walk in place)\n        _pggaev->Get(iaev, &_dwrStep);\n        // Force the location to the step event\n        // Avoids incorrect event ordering on static segments\n        if (rZero == _dwrStep)\n        {\n            _rtelCur = aev.rtel;\n            _GetXyzFromRtel(&_rtelCur, &_xyzCur);\n        }\n        break;\n\n    case aetFreeze:\n        long fFrozen; //_fFrozen is a bit\n        _pggaev->Get(iaev, &fFrozen);\n        _fFrozen = FPure(fFrozen);\n        break;\n\n    case aetTweak:\n        if (aev.rtel.dnfrm == _rtelCur.dnfrm)\n            _pggaev->Get(iaev, &_xyzCur);\n        // The actual locating of the actor is done in _FDoFrm or FTweakRoute\n        break;\n\n    case aetSnd:\n        // Enqueue non-mm sounds\n        if (!_FEnqueueSnd(iaev)) // Ignore failure\n            return fFalse;\n        break;\n\n    case aetMove:\n        XYZ dxyz;\n        _pggaev->Get(iaev, &dxyz);\n        _dxyzSubRte.dxr = BrsAdd(dxyz.dxr, _dxyzSubRte.dxr);\n        _dxyzSubRte.dyr = BrsAdd(dxyz.dyr, _dxyzSubRte.dyr);\n        _dxyzSubRte.dzr = BrsAdd(dxyz.dzr, _dxyzSubRte.dzr);\n        _UpdateXyzRte();\n        break;\n\n    default:\n        Bug(\"Unimplemented actor event\");\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Add the specified event to the event list at the current frame, and\n    execute the event\n\n    NOTE:  Overwrites events of the same type if appropriate\n    NOTE:  If the new action event is the same as the most recent\n    previous action, the new action is still inserted.\tThis avoids\n    repositioning the actor based on a past Set Action.\n\n***************************************************************************/\nbool ACTR::_FAddDoAev(long aetNew, long cbNew, void *pvVar)\n{\n    AssertBaseThis(0);\n    AssertIn(aetNew, 0, aetLim);\n    AssertIn(cbNew, 0, 100); // approximate upper bound\n    AssertPvCb(pvVar, cbNew);\n    Assert(_fOnStage || aetNew == aetAdd, \"Error!  Beginning subroute with no Add Onstage event\");\n\n    AEV aev;\n    long iaevNew;\n    // Setup fixed part of the gg\n    aev.aet = aetNew;\n    aev.rtel = _rtelCur;\n    aev.nfrm = _nfrmCur;\n\n    if (!_FInsertAev(_iaevCur, cbNew, pvVar, &aev))\n        return fFalse;\n    _MergeAev(_iaevFrmMin, _iaevCur, &iaevNew);\n\n#ifdef BUG1870\n    // REVIEW *****: V2.0\n    //\t\tThough the only situation in which this arises is aetMove,\n    //\t\tit might be that the FDoAevCore() should be called before\n    //\t\tmerging events (so that any cumulative changes get executed\n    //\t\tonly once, without requiring this special casing of aetMove.\n    if (aetMove == aetNew)\n    {\n        // Skip the \"do\" of the FAddDoAev().\n        // The 'Do' part currently merges events before\n        // executing them, which in this case would cause\n        // any existing same frame translaton to be added\n        // to the state\tvariables twice.\n        // Instead, adjust state var translation here.\n        _dxyzSubRte.dxr = BrsAdd(((XYZ *)pvVar)->dxr, _dxyzSubRte.dxr);\n        _dxyzSubRte.dyr = BrsAdd(((XYZ *)pvVar)->dyr, _dxyzSubRte.dyr);\n        _dxyzSubRte.dzr = BrsAdd(((XYZ *)pvVar)->dzr, _dxyzSubRte.dzr);\n    }\n    else if (!_FDoAevCore(iaevNew))\n        return fFalse;\n#else  //! BUG1870\n    if (!_FDoAevCore(iaevNew))\n        return fFalse;\n#endif //! BUG1870\n\n    if (_iaevCur == iaevNew)\n        _iaevCur++;\n\n    _pscen->MarkDirty();\n\n    Assert(aetNew != aetActn || _iaevActnCur == iaevNew, \"_iaevActnCur not up to date\");\n    AssertIn(_iaevCur, 0, _pggaev->IvMac() + 1);\n    Assert(!(_pggaev->IvMac() == 1 && _nfrmFirst != _nfrmCur), \"check case\");\n\n    if (_nfrmCur < _nfrmFirst)\n    {\n        _pscen->InvalFrmRange();\n        _nfrmFirst = _nfrmCur;\n    }\n\n    if (_nfrmCur > _nfrmLast)\n    {\n        _pscen->InvalFrmRange();\n        _nfrmLast = _nfrmCur;\n    }\n\n    AssertThis(fobjAssertFull);\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Merge event iaevNew among preceding events, beginning with\n    event iaevFirst (which is usually the first event in the frame).\n    Unless equal to pvNil, Return *piaevRtn to be the final index of the\n    merged event\n    NOTE:  Add events (only) are not merged.\n\n***************************************************************************/\nvoid ACTR::_MergeAev(long iaevFirst, long iaevNew, long *piaevRtn)\n{\n    AssertBaseThis(0);\n    AssertIn(iaevFirst, 0, _pggaev->IvMac());\n    AssertIn(iaevNew, iaevFirst, _pggaev->IvMac());\n    AssertNilOrVarMem(piaevRtn);\n\n    AEV aev;\n    AEV aevNew;\n    void *pvVar;\n    long cbVar;\n    long iaev;\n    BMAT34 bmat34;\n\n    if ((_pggaev->IvMac() < iaevFirst) || (iaevFirst == iaevNew))\n    {\n        if (pvNil != piaevRtn)\n            *piaevRtn = iaevNew;\n        return;\n    }\n\n    _pggaev->GetFixed(iaevNew, &aevNew);\n\n    //\n    // Check if Aev is in the list already\n    //\n    for (iaev = iaevFirst; iaev < iaevNew; iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n\n        if ((aev.aet != aevNew.aet) && (aev.aet != aetRem) && (aev.aet != aetRotH))\n            continue;\n\n        switch (aev.aet)\n        {\n        case aetRem:\n            if (aevNew.aet == aetAdd && aevNew.nfrm != aev.nfrm)\n            {\n                _RemoveAev(iaev);\n                iaevNew--;\n                iaev--;\n            }\n            break;\n\n        case aetAdd:\n            // We cannot remove events associated with a same-frame Add event\n            // or we will not retain costume etc information to propogate\n            // forward (eg drag single pt actor offstage & roll call back)\n            continue;\n            break;\n\n        case aetMove: // Move is accumulation of previous moves\n            XYZ dxyz;\n            XYZ dxyzNew;\n            _pggaev->Get(iaev, &dxyz);\n            _pggaev->Get(iaevNew, &dxyzNew);\n            // Note: Merging moves should not alter state variables!\n#ifndef BUG1870\n            // Remove these lines of code\n            _dxyzSubRte.dxr = BrsSub(_dxyzSubRte.dxr, dxyz.dxr);\n            _dxyzSubRte.dyr = BrsSub(_dxyzSubRte.dyr, dxyz.dyr);\n            _dxyzSubRte.dzr = BrsSub(_dxyzSubRte.dzr, dxyz.dzr);\n#endif //! BUG1870\n            dxyz.dxr = BrsAdd(dxyz.dxr, dxyzNew.dxr);\n            dxyz.dyr = BrsAdd(dxyz.dyr, dxyzNew.dyr);\n            dxyz.dzr = BrsAdd(dxyz.dzr, dxyzNew.dzr);\n            _pggaev->Put(iaev, &dxyz);\n            goto LDeleteNew;\n            break;\n\n        case aetCost:\n            AEVCOST aevcost;\n            AEVCOST aevcostNew;\n\n            // Check that the body parts match\n            _pggaev->Get(iaev, &aevcost);\n            _pggaev->Get(iaevNew, &aevcostNew);\n\n            if (aevcost.ibset != aevcostNew.ibset)\n                continue;\n\n            if (aev.rtel != aevNew.rtel)\n                goto LDeleteOld;\n            _pggaev->Put(iaev, &aevcostNew);\n            goto LDeleteNew;\n            break;\n\n        case aetSnd:\n            AEVSND aevsnd;\n            AEVSND aevsndNew;\n            long ismm;\n            SMM *psmm;\n            // Check that the sound types match\n            _pggaev->Get(iaev, &aevsnd);\n            _pggaev->Get(iaevNew, &aevsndNew);\n            if (MSND::SqnActr(aevsnd.sty, _arid) != MSND::SqnActr(aevsndNew.sty, _arid))\n                continue;\n            // Queued sounds need to have multiple events reside in a single frame\n            if (aevsndNew.fQueue)\n                continue;\n            // Non queued sounds need to replace queued sounds of the same type\n            // First, the _pggsmm needs to be updated\n            for (ismm = 0; ismm < _pglsmm->IvMac(); ismm++)\n            {\n                psmm = (SMM *)_pglsmm->QvGet(ismm);\n                if (psmm->aevsnd.sty == aevsnd.sty && aevsnd.celn == psmm->aevsnd.celn)\n                {\n                    _pglsmm->Delete(ismm);\n                    break;\n                }\n            }\n            _RemoveAev(iaev);\n            iaevNew--;\n            iaev--;\n            continue;\n            break;\n\n        case aetRotH:\n            if (aevNew.aet == aetRotF && aevNew.nfrm == aev.nfrm)\n            {\n                // Forward rotations must get rid of tweak rotations in the current frame\n                _RemoveAev(iaev);\n                iaevNew--;\n                iaev--;\n            }\n            if (aevNew.aet != aetRotH)\n                continue;\n            if (aev.rtel != aevNew.rtel)\n                goto LDeleteOld;\n            _pggaev->Get(iaevNew, &bmat34);\n            _pggaev->Put(iaev, &bmat34);\n            goto LDeleteNew;\n            break;\n\n        case aetRotF:\n            // New == old == forward-rotate\n            // Need to replace the old rotation, but continue on to remove tweak-rotations\n            _RemoveAev(iaev);\n            iaevNew--;\n            iaev--;\n            continue;\n            break;\n\n        default:\n            if (aev.rtel != aevNew.rtel)\n            {\n                goto LDeleteOld;\n            }\n            pvVar = _pggaev->QvGet(iaevNew, &cbVar);\n            Assert(cbVar == _pggaev->Cb(iaev), \"Wrong Var size\");\n            _pggaev->Put(iaev, pvVar);\n            goto LDeleteNew;\n        }\n    }\n\n    //\n    // Leave it where it is.  No match found.\n    //\n    if (pvNil != piaevRtn)\n        *piaevRtn = iaevNew;\n\n    return;\n\nLDeleteNew:\n    if (pvNil != piaevRtn)\n    {\n        *piaevRtn = iaev;\n        AssertIn(iaev, iaevFirst, iaevNew);\n    }\n    _RemoveAev(iaevNew);\n    return;\n\nLDeleteOld:\n    _RemoveAev(iaev);\n    iaevNew--;\n    if (pvNil != piaevRtn)\n        *piaevRtn = iaevNew;\n}\n\n/***************************************************************************\n\n    Add (or replace) an action\n    Add the event to the event list\n\n***************************************************************************/\nbool ACTR::FSetActionCore(long anid, long celn, bool fFreeze)\n{\n    AssertThis(0);\n    AssertIn(anid, 0, klwMax);\n    AssertIn(celn, klwMin, klwMax);\n\n    bool fStatic;\n    bool fNewAction = fFalse;\n    AEVACTN aevactn;\n    long anidPrev = _anidCur;\n    long iaevMin;\n\n    long cbVar = kcbVarActn + kcbVarFreeze + (kcbVarStep * 2);\n    if (!_pggaev->FEnsureSpace(4, cbVar, fgrpNil))\n        return fFalse;\n\n    if (!_FGetStatic(anid, &fStatic))\n        return fFalse;\n\n    // If the action is changing:\n    // Remove all motion match sounds of the previous action\n    // Query the template and insert new sound events\n    if (_anidCur != anid)\n    {\n        fNewAction = fTrue;\n        if (!_FRemoveAevMm(anid))\n            return fFalse;\n    }\n\n    // var part of gg\n    aevactn.anid = anid;\n    aevactn.celn = celn;\n\n    // Add this action to the event list\n    iaevMin = (_iaevFrmMin == _iaevAddCur) ? _iaevFrmMin + 1 : _iaevFrmMin;\n    _PrepActnFill(iaevMin, _anidCur, anid, faetTweak | faetFreeze | faetActn);\n\n    if (!_FAddDoAev(aetActn, kcbVarActn, &aevactn))\n        return fFalse;\n\n    // If the action is changing:\n    // Query the template and insert new default motion match sound events\n    if (fNewAction)\n    {\n        if (!_FAddAevDefMm(anid))\n            return fFalse;\n    }\n\n    if (_nfrmCur != _nfrmLast)\n    {\n        _fLifeDirty = fTrue;\n        _pscen->InvalFrmRange();\n    }\n\n    if (!fFreeze && !_FIsDoneAevSub(_iaevCur, _rtelCur))\n    {\n        if (!_FUnfreeze())\n            return fFalse;\n    }\n    else\n    {\n        if (!_FFreeze())\n            return fFalse;\n    }\n\n    // If the actor is in the middle of a static segment, the application of a\n    // non-static action is supposed to make the actor start moving forward along\n    // the remaining path.\n    // The last frame in the subpath must retain its final step=0 event, however.\n    if (!fStatic && !_ptmpl->FIsTdt() && !_FIsDoneAevSub(_iaevCur, _rtelCur))\n    {\n        if (!FSetStep(kdwrNil))\n            return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Remove an actor from the stage\n    NOTE: This is a low level API and has no effect on the event list\n\n***************************************************************************/\nvoid ACTR::_Hide(void)\n{\n    AssertBaseThis(0);\n\n    if (_fOnStage && _pbody != pvNil)\n        _pbody->Hide();\n    _fOnStage = fFalse;\n    return;\n}\n\n/***************************************************************************\n\n    Insert a node point *prpt in the route.\n    Update *prpt.dwr, and the previous node's dwr.\n    On input:\n        *prpt.dwr == 0 iff the new node is a subpath terminating node\n        *prpt.xyz has the new node coordinates\n        dwrPrior is the distance from the previous node to the new one.\n\n***************************************************************************/\nbool ACTR::_FInsertGgRpt(long irpt, RPT *prpt, BRS dwrPrior)\n{\n    AssertBaseThis(0);\n    AssertIn(irpt, 0, _pglrpt->IvMac() + 1);\n    AssertNilOrVarMem(prpt);\n\n    RPT rpt;\n    BRS dwrTotal = rZero; // Dist from prev node to node after the inserted node\n\n    if (!_pglrpt->FInsert(irpt, prpt))\n        return fFalse;\n\n    if (0 < irpt)\n    {\n        _pglrpt->Get(irpt - 1, &rpt);\n        dwrTotal = rpt.dwr;\n\n        // Do not alter end of route dwr's\n        if (rZero != rpt.dwr)\n        {\n            // Adjust the distance from the previous point here\n            rpt.dwr = dwrPrior;\n            if (rZero == rpt.dwr)\n                rpt.dwr = rEps; // Epsilon.  Prevent pathological incorrect end-of-path\n            _pglrpt->Put(irpt - 1, &rpt);\n        }\n        else\n            Assert(dwrPrior == rZero, \"Illegal distance\");\n    }\n\n    if (irpt < _pglrpt->IvMac() - 1)\n    {\n        _pglrpt->Get(irpt + 1, &rpt);\n        if (rZero != prpt->dwr) // If not at end of subroute\n        {\n            // Set the distance to the next point in this subroute\n            Assert(rZero != dwrTotal, \"Overwriting end of route\");\n            prpt->dwr = BrsSub(dwrTotal, dwrPrior);\n            if (rZero >= prpt->dwr)\n                prpt->dwr = rEps; // Epsilon.  Prevent pathological incorrect end-of-path\n            _pglrpt->Put(irpt, prpt);\n        }\n    }\n    else\n        Assert(rZero == prpt->dwr, \"Invalid end sub-node dwr\");\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Set a Stepsize Event\n    Add it to the event list\n\n    dwrStep == 0 -> Stop the actor from forward motion.\n    dwrStep == kdwrNil -> Use the scaled template step size\n    Note that this is orthogonal and independent of freezing an actor\n\n***************************************************************************/\nbool ACTR::FSetStep(BRS dwrStep)\n{\n    AssertThis(0);\n    Assert(kdwrNil == dwrStep || rZero <= dwrStep, \"Invalid dwrStep argument\");\n\n    if (!_pggaev->FEnsureSpace(1, kcbVarStep, fgrpNil))\n        return fFalse;\n\n    return _FAddDoAev(aetStep, kcbVarStep, &dwrStep);\n}\n\n/***************************************************************************\n\n    Get the new origin for the to-be positioned actor.  Always place\n    actors on the \"floor\" (Y = 0)...except 3-D Text actors, which are\n    at Y = 1.0 meters.\n\n***************************************************************************/\nvoid ACTR::_GetNewOrigin(BRS *pxr, BRS *pyr, BRS *pzr)\n{\n    AssertThis(0);\n    AssertVarMem(pxr);\n    AssertVarMem(pyr);\n    AssertVarMem(pzr);\n\n    BRS xrCam = rZero;\n    BRS yrCam = rZero;\n    BRS zrCam = kzrDefault;\n    BRS zrYon, zrHither;\n    BMAT34 bmat34Cam;\n\n    _pscen->Pbkgd()->GetActorPlacePoint(pxr, pyr, pzr);\n    // A (0, 0, 0) place point means that one hasn't been authored yet,\n    // so use the old system.\n    if (*pxr == rZero && *pyr == rZero && *pzr == rZero)\n    {\n        _pscen->Pmvie()->Pbwld()->GetCamera(&bmat34Cam, &zrHither, &zrYon);\n\n        Assert(zrCam < 0, \"Non-negative placement value\");\n        Assert(zrHither >= 0 && zrYon >= 0, \"Negative camera values\");\n        if (BR_ABS(zrCam) > zrYon)\n            zrCam = BR_CONST_DIV(BR_ADD(zrYon, zrHither), -2);\n\n        *pxr =\n            BR_MAC3(xrCam, bmat34Cam.m[0][0], yrCam, bmat34Cam.m[1][0], zrCam, bmat34Cam.m[2][0]) + bmat34Cam.m[3][0];\n        *pyr = rZero;\n        *pzr =\n            BR_MAC3(xrCam, bmat34Cam.m[0][2], yrCam, bmat34Cam.m[1][2], zrCam, bmat34Cam.m[2][2]) + bmat34Cam.m[3][2];\n    }\n    if (_ptmpl->FIsTdt())\n        *pyr += BR_SCALAR(10.0); // 1.0 meters\n}\n\n/***************************************************************************\n\n    Add actor on the stage - ie, create a new subroute.\n    Add the Add event to the event list\n    Nukes existing subroute if obsoleted by current Add.\n\n    Add the initialization events for costumes, xforms, etc from the\n    preceding or subsequent subroute.\n***************************************************************************/\nbool ACTR::FAddOnStageCore(void)\n{\n    AssertThis(0);\n\n    BRS xr;\n    BRS yr;\n    BRS zr;\n    long cbVar;\n    AEVADD aevadd;\n    bool fUpdateFrmRange = fFalse;\n\n    cbVar = kcbVarAdd + kcbVarActn + kcbVarStep + kcbVarFreeze;\n    if (_pggaev->IvMac() == 0)\n    {\n        if (!_pggaev->FEnsureSpace(4, cbVar, fgrpNil) || !_pglrpt->FEnsureSpace(1, fgrpNil))\n            return fFalse;\n    }\n    else\n    {\n        cbVar += kcbVarCost + kcbVarRot + kcbVarSize + kcbVarPull;\n        if (!_pggaev->FEnsureSpace(8, cbVar, fgrpNil) || !_pglrpt->FEnsureSpace(1, fgrpNil))\n        {\n            return fFalse;\n        }\n    }\n\n    _GetNewOrigin(&xr, &yr, &zr);\n    aevadd.dxr = BrsSub(xr, _dxyzFullRte.dxr);\n    aevadd.dyr = BrsSub(yr, _dxyzFullRte.dyr);\n    aevadd.dzr = BrsSub(zr, _dxyzFullRte.dzr);\n    aevadd.xa = aevadd.za = aZero;\n\n    // Rotate the actor to be facing the camera\n    // NOTE: 3D spletter code uses this also.\n    aevadd.ya = _pscen->Pbkgd()->BraRotYCamera();\n\n    if (_nfrmCur < _nfrmFirst)\n    {\n        fUpdateFrmRange = fTrue;\n        _nfrmFirst = _nfrmCur;\n    }\n    if (_nfrmCur > _nfrmLast)\n    {\n        fUpdateFrmRange = fTrue;\n        _nfrmLast = _nfrmCur;\n    }\n\n    RPT rptNil = {rZero, rZero, rZero, rZero};\n\n    if (_fOnStage) // May have walked offstage\n    {\n        // Delete the remnant subroute (non-inclusive of current frame)\n        _DeleteFwdCore(fFalse);\n    }\n\n    _rtelCur.dnfrm = 0;\n    _rtelCur.dwrOffset = rZero;\n    if (_iaevAddCur < 0)\n        _rtelCur.irpt = 0;\n    else\n        _rtelCur.irpt++;\n\n    AssertDo(_FInsertGgRpt(_rtelCur.irpt, &rptNil), \"Logic error\");\n    _AdjustAevForRteIns(_rtelCur.irpt, 0);\n\n    _GetXyzFromRtel(&_rtelCur, &_xyzCur);\n\n    if (!_FAddDoAev(aetAdd, kcbVarAdd, &aevadd))\n        return fFalse;\n\n    // Copy costume and transform events forward if this is\n    // the earliest Add event : each subroute needs all\n    // initialization events.\n    // Note: _iaevCur is already incremented at this point\n    if (1 == _iaevCur)\n    {\n        // The earliest Add.  Gather later events and insert them\n        if (!_FAddAevFromLater())\n            return fFalse;\n    }\n    else\n    {\n        // Not the earliest Add.  Gather earlier events\tand insert them\n        ulong grfaet = faetActn | faetCost | faetPull | faetSize | faetRotF;\n        if (!_FAddAevFromPrev(_iaevCur - 1, grfaet))\n            return fFalse;\n    }\n\n    _PositionBody(&_xyzCur);\n\n    if (!FSetStep(rZero))\n        return fFalse;\n    if (!_FFreeze())\n        return fFalse;\n\n    if (fUpdateFrmRange)\n    {\n        _pscen->InvalFrmRange();\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Collect events < iaevLim & insert them beginning at event number\n    _iaevCur.\n    NOTE:  The primary complication is to OMIT copying events which can\n    never be reached due to static actions (stalling) in the previous\n    subroute.  Due to initialization now spec'd to occur in every subroute,\n    note that only the immediately preceding subroute is of concern.\n    NOTE: This is optimized to add only the latest event of each given type.\n\n***************************************************************************/\nbool ACTR::_FAddAevFromPrev(long iaevLim, ulong grfaet)\n{\n    AssertBaseThis(0);\n    AssertIn(iaevLim, 0, _pggaev->IvMac() + 1);\n\n    AEV aev;\n    AEV *paev;\n    AEV aevCur;\n    long cb;\n    long iaev;\n    long iaevAdd;\n    long iaevNew;\n    long iaevLast;\n    bool fPrunedPrevSubrte = fFalse;\n\n    // Locate the next active (not stalled) region of the subroute\n    // Note: Not finding a previous aev is not a failure\n    _FFindPrevAevAet(aetAdd, iaevLim, &iaevAdd);\n    _FindAevLastSub(iaevAdd, iaevLim, &iaevLast);\n\n    _pggaev->GetFixed(_iaevCur - 1, &aevCur);\n\n    // It is more efficient to insert non-costume events backwards\n    for (iaev = iaevLast; iaev > iaevAdd; iaev--)\n    {\n        if (0 == grfaet)\n            break;\n\n        Assert(iaev >= 0, \"Logic error\");\n        _pggaev->GetFixed(iaev, &aev);\n        if (!(grfaet & (1 << aev.aet)) || aev.aet == aetCost)\n            continue;\n\n        // Non-costume events are added only once\n        grfaet ^= (1 << aev.aet);\n\n        // Allocate space\n        cb = _pggaev->Cb(iaev);\n        aev.rtel = aevCur.rtel;\n        // aev.nfrm is set by _FDoAevCore()\n\n        if (!_FInsertAev(_iaevCur, cb, pvNil, &aev))\n            return fFalse;\n\n        // Insert event\n        _pggaev->Put(_iaevCur, _pggaev->QvGet(iaev));\n\n        // Merge events to avoid duplicates\n        _MergeAev(_iaevFrmMin, _iaevCur, &iaevNew);\n\n        if (!_FDoAevCore(iaevNew))\n            return fFalse;\n\n        if (iaevNew == _iaevCur)\n            _iaevCur++;\n    }\n\n    if (!(grfaet & (1 << aetCost)))\n        return fTrue;\n\n    // Costumes needed to be gathered forward\n    for (iaev = iaevAdd + 1; iaev <= iaevLast; iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if (aev.aet != aetCost)\n            continue;\n\n        aev.rtel = aevCur.rtel;\n        // aev.nfrm is set by _FDoAevCore()\n\n        // Allocate space\n        cb = _pggaev->Cb(iaev);\n        if (!_FInsertAev(_iaevCur, cb, pvNil, &aev))\n            return fFalse;\n\n        // Insert event\n        _pggaev->Put(_iaevCur, _pggaev->QvGet(iaev));\n\n        // Merge events to avoid duplicates\n        _MergeAev(_iaevFrmMin, _iaevCur, &iaevNew);\n\n        if (!_FDoAevCore(iaevNew))\n            return fFalse;\n\n        if (iaevNew == _iaevCur)\n            _iaevCur++;\n    }\n\n    // Remove redundant (same frame) events from previous Add\n    if (iaevAdd < 0)\n        return fTrue;\n\n    // May need to delete entire previous subroute\n    // if the prev Add occurred at the same frame\n    paev = (AEV *)_pggaev->QvFixedGet(iaevAdd);\n    if (_nfrmCur == paev->nfrm)\n    {\n        // Deleting the entire subroute\n        _DelAddFrame(iaevAdd, _iaevAddCur);\n        return fTrue;\n    }\n\n    // May need to prune out same-frame events from prev subrte\n    for (iaev = _iaevAddCur - 1; iaev >= iaevAdd; iaev--)\n    {\n        paev = (AEV *)_pggaev->QvFixedGet(iaev);\n        if (_nfrmCur == paev->nfrm)\n        {\n            fPrunedPrevSubrte = fTrue;\n            _RemoveAev(iaev);\n        }\n    }\n\n    if (fPrunedPrevSubrte)\n    {\n        // The previous path requires pruning\n        // Terminating stop & freeze events need to be inserted\n        long nfrm = _nfrmCur;\n        if (!FGotoFrame(_nfrmCur - 1))\n            return fFalse;\n        DeleteFwdCore(fFalse, pvNil, _iaevCur);\n        return FGotoFrame(nfrm);\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Gather the initialization events of the subsequent subroute and insert\n    them at the\tcurrent event index, _iaevCur.\n\n***************************************************************************/\nbool ACTR::_FAddAevFromLater(void)\n{\n    AssertBaseThis(0);\n\n    AEV aev;\n    long iaev;\n    long iaevStart = -1;\n    RTEL rtelAdd;\n    bool fPositionBody = fFalse;\n\n    Assert(1 == _iaevCur, \"_FAddAevFromLater logic error\");\n    // Find the next Add event\n    for (iaev = _iaevCur; iaev < _pggaev->IvMac(); iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if (aev.aet == aetAdd)\n        {\n            iaevStart = iaev;\n            rtelAdd = aev.rtel;\n            break;\n        }\n    }\n\n    if (iaevStart < 0)\n        goto LEnd;\n\n    // Stuff in the events from this next Add event\n    for (iaev = iaevStart; iaev < _pggaev->IvMac(); iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n\n        if (aev.rtel != rtelAdd)\n        {\n            break;\n        }\n\n        if (aetCost == aev.aet || aetPull == aev.aet || aetSize == aev.aet || aetRotF == aev.aet)\n        {\n            aev.rtel = _rtelCur;\n            // aev.nfrm is set by _FDoAevCore()\n\n            // Allocate space\n            long cbNew = _pggaev->Cb(iaev);\n            if (!_FInsertAev(_iaevCur, cbNew, pvNil, &aev))\n                return fFalse;\n            iaev++;\n\n            // Insert event\n            _pggaev->Put(_iaevCur, _pggaev->QvGet(iaev));\n\n            if (!_FDoAevCur())\n                return fFalse;\n\n            if (aev.aet != aetCost)\n                fPositionBody = fTrue;\n        }\n    }\n\n    if (fPositionBody)\n    {\n        _PositionBody(&_xyzCur);\n    }\n\n    Assert(_pggaev->IvMac() > 0, \"Logic Error\");\n\nLEnd:\n    return FSetActionCore(0, 0, 0);\n}\n\n/***************************************************************************\n\n    Locate the event of type aet with index closest to but smaller than iaevCur\n    Return true if found, with its index in *piaevAdd\n\n***************************************************************************/\nbool ACTR::_FFindPrevAevAet(long aet, long iaevCur, long *piaevAdd)\n{\n    AssertBaseThis(0);\n    AssertIn(aet, 0, aetLim);\n    AssertIn(iaevCur, 0, _pggaev->IvMac());\n    AssertVarMem(piaevAdd);\n\n    AEV aev;\n\n    iaevCur--;\n    for (; iaevCur >= 0; iaevCur--)\n    {\n        _pggaev->GetFixed(iaevCur, &aev);\n        if (aev.aet == aet)\n        {\n            *piaevAdd = iaevCur;\n            return fTrue;\n        }\n    }\n\n    *piaevAdd = ivNil;\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Locate the event of type aet with index closest to but >= iaevCur.\n    Return true if one is found, with its index in *piaevAdd\n\n***************************************************************************/\nbool ACTR::_FFindNextAevAet(long aet, long iaevCur, long *piaevAdd)\n{\n    AssertBaseThis(0);\n    AssertIn(aet, 0, aetLim);\n    AssertIn(iaevCur, 0, _pggaev->IvMac() + 1);\n    AssertVarMem(piaevAdd);\n\n    AEV *paev;\n\n    for (; iaevCur < _pggaev->IvMac(); iaevCur++)\n    {\n        paev = (AEV *)_pggaev->QvFixedGet(iaevCur);\n        if (paev->aet == aet)\n        {\n            *piaevAdd = iaevCur;\n            return fTrue;\n        }\n    }\n\n    *piaevAdd = ivNil;\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Locate the last reachable event in the specified subroute\n    Note: This is complicated by static actions.\n    Input:\n        Begin the search at iaevAdd.\n        The limit of the search is iaevLim, which, if == ivNil, is\n        the extent of the ggaev.\n    Return its index in *piaevAdd\n\n***************************************************************************/\nvoid ACTR::_FindAevLastSub(long iaevAdd, long iaevLim, long *piaevLast)\n{\n    AssertBaseThis(0);\n    AssertIn(iaevAdd, 0, _pggaev->IvMac());\n    if (iaevLim != ivNil)\n        AssertIn(iaevLim, 0, _pggaev->IvMac() + 1);\n    AssertVarMem(piaevLast);\n\n    AEV aev;\n\n    if (iaevLim == ivNil)\n        iaevLim = _pggaev->IvMac();\n\n    _pggaev->GetFixed(iaevLim - 1, &aev);\n\n    if (_FIsStalled(iaevAdd, &aev.rtel, piaevLast))\n    {\n        // Last active event stored by _FIsStalled\n        return;\n    }\n\n    *piaevLast = iaevLim - 1;\n}\n\n/***************************************************************************\n\n    Remove the actor from the stage\n    Add the event to the event list\n\n***************************************************************************/\nbool ACTR::FRemFromStageCore(void)\n{\n    AssertThis(0);\n    AEV *paev;\n\n    if (!_fOnStage)\n        return fTrue;\n\n    if (!_pggaev->FEnsureSpace(1, kcbVarStep, fgrpNil)) // step\n        return fFalse;\n\n    AssertIn(_iaevAddCur, 0, _pggaev->IvMac());\n    paev = (AEV *)_pggaev->QvFixedGet(_iaevAddCur);\n    if (_nfrmCur == paev->nfrm)\n    {\n        if (!_FDeleteEntireSubrte())\n            return fFalse;\n    }\n\n    if (_fOnStage)\n        return _FAddDoAev(aetRem, kcbVarZero, pvNil);\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Delete the current entire subroute & reposition actor accordingly.\n    Based on current state variables\n\n***************************************************************************/\nbool ACTR::_FDeleteEntireSubrte(void)\n{\n    AssertThis(0);\n    AEV *paev;\n    long nfrmSav;\n\n    paev = (AEV *)_pggaev->QvFixedGet(_iaevAddCur);\n    Assert(paev->nfrm == _nfrmCur, \"Logic error: trying to delete whole route from the middle\");\n\n    // Delete forward from here\t(exclusive of current point)\n    _DeleteFwdCore(fFalse, pvNil, _iaevCur);\n\n    // Delete events & path for the sole remaining Add frame\n    _DelAddFrame(_iaevAddCur, _iaevCur);\n\n    // A hide should be done separately from event execution\n    // because no subroute exists in this case\n    _Hide();\n    if (_ptmpl != pvNil && _pbody != pvNil)\n        _ptmpl->FSetDefaultCost(_pbody);\n    _SetStateRewound();\n    nfrmSav = _nfrmCur;\n    _nfrmCur = knfrmInvalid;\n    if (_pggaev->IvMac() > 0)\n    {\n        paev = (AEV *)_pggaev->QvFixedGet(0);\n        Assert(paev->aet == aetAdd, \"Corrupt event list\");\n        _nfrmFirst = paev->nfrm;\n        return FGotoFrame(nfrmSav);\n    }\n    _nfrmFirst = knfrmInvalid;\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Delete the events and point corresponding to a single point subroute\n\n***************************************************************************/\nvoid ACTR::_DelAddFrame(long iaevAdd, long iaevLim)\n{\n    AssertThis(0);\n    long iaev;\n    long irptAdd;\n    AEV *paev;\n\n    AssertIn(iaevAdd, 0, iaevLim);\n\n    paev = (AEV *)_pggaev->QvFixedGet(iaevAdd);\n    irptAdd = paev->rtel.irpt;\n\n    // Delete events in current frame of subroute\n    for (iaev = iaevLim - 1; iaev >= iaevAdd; iaev--)\n    {\n        _RemoveAev(iaev);\n    }\n\n    // Delete current point\tif unused\n    if (iaevAdd > 0)\n    {\n        paev = (AEV *)_pggaev->QvFixedGet(iaevAdd - 1);\n        if (paev->rtel.irpt == irptAdd || (paev->rtel.irpt == (irptAdd - 1) && paev->rtel.dwrOffset > rZero))\n        {\n            return;\n        }\n    }\n    _AdjustAevForRteDel(irptAdd, iaevAdd);\n    _pglrpt->Delete(irptAdd);\n    if (_rtelCur.irpt > irptAdd)\n        _rtelCur.irpt--;\n\n    return;\n}\n\n/***************************************************************************\n\n    Set the Costume for a body part\n    Add the event to the event list\n\n***************************************************************************/\nbool ACTR::FSetCostumeCore(long ibsetClicked, TAG *ptag, long cmid, tribool fCmtl)\n{\n    AssertThis(0);\n    Assert(fCmtl || ibsetClicked >= 0, \"Invalid ibsetClicked argument\");\n    AssertVarMem(ptag);\n\n    AEVCOST aevcost;\n    PCMTL pcmtl;\n    long ibsetApply;\n\n    // For custom materials, the ibset is a property of the CMTL itself,\n    // so read it from the CMTL rather than using the clicked ibset.\n    if (fCmtl)\n    {\n        pcmtl = _ptmpl->PcmtlFetch(cmid);\n        if (pvNil == pcmtl)\n            return fFalse;\n        ibsetApply = pcmtl->Ibset();\n        ReleasePpo(&pcmtl);\n    }\n    else\n    {\n        ibsetApply = ibsetClicked;\n    }\n\n    aevcost.ibset = ibsetApply;\n    aevcost.tag = *ptag;\n    aevcost.cmid = cmid;\n    aevcost.fCmtl = fCmtl;\n\n    if (!_pggaev->FEnsureSpace(1, kcbVarCost, fgrpNil))\n        return fFalse;\n\n    _PrepCostFill(_iaevCur, &aevcost);\n    if (!_FAddDoAev(aetCost, kcbVarCost, &aevcost))\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Freeze the actor (don't advance cels)\n    Add the event to the event list\n\n***************************************************************************/\nbool ACTR::_FFreeze(void)\n{\n    AssertThis(0);\n\n    long faevfrz = (long)fTrue;\n    return _FAddDoAev(aetFreeze, kcbVarFreeze, &faevfrz);\n}\n\n/***************************************************************************\n\n    Unfreeze the actor\n    Add the event to the event list\n\n***************************************************************************/\nbool ACTR::_FUnfreeze(void)\n{\n    AssertThis(0);\n    long faevfrz = (long)fFalse;\n    return _FAddDoAev(aetFreeze, kcbVarFreeze, &faevfrz);\n}\n\n/***************************************************************************\n\n    Modify the add event to re-orient the actor\n    The add event retains the single point orientation.\n\n    On Input: If pxyz == pvNil, no averaging is done in orientation\n    grfbra are the flags indicating angles of rotation.  In directions\n    in which no rotation has taken place, the wa are invalid.\n\n    WARNING: Rotations are non-abelian.  Ordering is x then y then z.\n    If ordering other than this is desired, separate calls must be made.\n\n***************************************************************************/\nvoid ACTR::SetAddOrient(BRA xa, BRA ya, BRA za, ulong grfbra, XYZ *pdxyz)\n{\n    AssertThis(0);\n    AssertIn(_iaevAddCur, 0, _pggaev->IvMac());\n\n    AEVADD aevadd;\n\n    _pggaev->Get(_iaevAddCur, &aevadd);\n\n    if (pvNil == pdxyz)\n    {\n        aevadd.xa = xa;\n        aevadd.ya = ya;\n        aevadd.za = za;\n    }\n    else\n    {\n        BRS rWeight;\n        BRS dwrNew = BR_LENGTH3(pdxyz->dxr, pdxyz->dyr, pdxyz->dzr);\n        rWeight = BrsDiv(dwrNew, kdwrFast);\n        rWeight = LwBound(rWeight, krOriWeightMin, rOne);\n\n        if (grfbra & fbraRotateX)\n            aevadd.xa = _BraAvgAngle(xa, aevadd.xa, rWeight);\n\n        if (grfbra & fbraRotateY)\n            aevadd.ya = _BraAvgAngle(ya, aevadd.ya, rWeight);\n\n        if (grfbra & fbraRotateZ)\n            aevadd.za = _BraAvgAngle(za, aevadd.za, rWeight);\n    }\n\n    // Modify the event\n    _pggaev->Put(_iaevAddCur, &aevadd);\n    _xfrm.xaPath = aevadd.xa;\n    _xfrm.yaPath = aevadd.ya;\n    _xfrm.zaPath = aevadd.za;\n}\n\n/***************************************************************************\n\n    Average two angles by (rw1 * a1 + (1-rw1)*a2)\n    rw1 is the weighting for a1\n\n***************************************************************************/\nBRA ACTR::_BraAvgAngle(BRA a1, BRA a2, BRS rw1)\n{\n    AssertBaseThis(0);\n    AssertIn(rw1, rZero, rOne + rEps);\n\n    BRS rT = rZero;\n    BRS r1 = BrAngleToScalar(a1);\n    BRS r2 = BrAngleToScalar(a2);\n    BRS rw2;\n\n    rw2 = BrsSub(rOne, rw1);\n\n    // Compensate for averaging across 0 degrees\n    if (BrsAbs(BrsSub(r1, r2)) > rOneHalf)\n    {\n        if (r2 > r1)\n        {\n            // Add equiv of 360 degrees for each weight of r1\n            rT = BrsAdd(rT, rw1);\n        }\n        else\n        {\n            // Add equiv of 360 degrees for each weight of r1\n            rT = BrsAdd(rT, rw2);\n        }\n    }\n\n    rT = BrsAdd(rT, BrsMul(r1, rw1));\n    rT = BrsAdd(rT, BrsMul(r2, rw2));\n\n    if (rT > rOne)\n        rT = rT & rFractMax;\n\n    return (BrScalarToAngle(rT));\n}\n\n/***************************************************************************\n\n    Rotate the actor\n    Add the event to the event list\n    If !fFromHereFwd, the rotation is to apply to the current frame only\n\n    WARNING: Rotations are non-abelian.  Ordering is x then y then z.\n    If ordering other than this is desired, separate calls must be made.\n\n***************************************************************************/\nbool ACTR::FRotate(BRA xa, BRA ya, BRA za, bool fFromHereFwd)\n{\n    AssertThis(0);\n\n    BMAT34 *pbmat34;\n    long aet;\n\n    if (!_pggaev->FEnsureSpace(1, kcbVarRot, fgrpNil))\n        return fFalse;\n\n    if (fFromHereFwd)\n    {\n        aet = aetRotF;\n        pbmat34 = &_xfrm.bmat34Fwd;\n        if (_fUseBmat34Cur) // _xfrm.bmat34Cur has last been used\n        {\n            // _xfrm.bmat34Cur stores the complete (no path added) orientation\n            BrMatrix34Copy(pbmat34, &_xfrm.bmat34Cur);\n            // Back the path orientation out from this matrix.\n            // Otherwise the actor will jump in angle\n            // This MUST be done in z then y then x order\n            // Note: matrix inversion unnecessary\n            if (_xfrm.zaPath != aZero)\n                BrMatrix34PostRotateZ(pbmat34, -_xfrm.zaPath);\n            if (_xfrm.yaPath != aZero)\n                BrMatrix34PostRotateY(pbmat34, -_xfrm.yaPath);\n            if (_xfrm.xaPath != aZero)\n                BrMatrix34PostRotateX(pbmat34, -_xfrm.xaPath);\n        }\n    }\n    else\n    {\n        // _xfrm.bmat34Cur is kept current at <all> frames so that\n        // rotations can be post applied to it\n        aet = aetRotH;\n        pbmat34 = &_xfrm.bmat34Cur;\n    }\n\n    if (aZero != xa)\n    {\n        BrMatrix34PreRotateX(pbmat34, xa);\n    }\n    if (aZero != ya)\n    {\n        BrMatrix34PreRotateY(pbmat34, ya);\n    }\n    if (aZero != za)\n    {\n        BrMatrix34PreRotateZ(pbmat34, za);\n    }\n\n    Assert(_iaevCur <= _pggaev->IvMac(), \"_iaevCur bug\");\n\n    // Add the event\n    if (fFromHereFwd)\n        _PrepXfrmFill(aetRotF, pbmat34, kcbVarRot, _iaevCur, ivNil, faetNil);\n    AssertDo(_FAddDoAev(aet, kcbVarRot, pbmat34), \"Ensure space insufficient\");\n\n    _PositionBody(&_xyzCur);\n    return fTrue;\n}\n\n/***************************************************************************\n\n    \"Normalize\" the actor\n    The revert tool\n    Insert normalize transformation events into the event list\n\n***************************************************************************/\nbool ACTR::FNormalizeCore(ulong grfnorm)\n{\n    AssertThis(0);\n    long rScaleStepOld = _xfrm.rScaleStep;\n    ulong faet;\n    long cbVar = 0;\n\n    if (grfnorm & fnormRotate)\n        cbVar += kcbVarRot;\n    if (grfnorm & fnormSize)\n        cbVar += kcbVarSize + kcbVarPull;\n\n    if (!_pggaev->FEnsureSpace(3, cbVar, fgrpNil))\n        return fFalse;\n\n    if (grfnorm & fnormRotate)\n    {\n        _InitXfrmRot(&_xfrm.bmat34Fwd);\n        _InitXfrmRot(&_xfrm.bmat34Cur);\n        _PrepXfrmFill(aetRotF, &_xfrm.bmat34Fwd, kcbVarRot, _iaevCur);\n        AssertDo(_FAddDoAev(aetRotF, kcbVarRot, &_xfrm.bmat34Fwd), \"EnsureSpace insufficient\");\n    }\n\n    if (grfnorm & fnormSize)\n    {\n        _xfrm.aevpull.rScaleX = rOne;\n        _xfrm.aevpull.rScaleY = rOne;\n        _xfrm.aevpull.rScaleZ = rOne;\n        faet = (_xfrm.rScaleStep != rOne) ? faetTweak : faetNil;\n        _xfrm.rScaleStep = rOne;\n        _PrepXfrmFill(aetPull, &_xfrm.aevpull, kcbVarPull, _iaevCur);\n        _PrepXfrmFill(aetSize, &_xfrm.rScaleStep, kcbVarSize, _iaevCur, ivNil, faet);\n\n        AssertDo(_FAddDoAev(aetPull, kcbVarPull, &_xfrm.aevpull), \"EnsureSpace insufficient\");\n        AssertDo(_FAddDoAev(aetSize, kcbVarSize, &_xfrm.rScaleStep), \"EnsureSpace insufficient\");\n\n        // Possibly extend life of actor if shrunk\n        if (rScaleStepOld > rOne && pvNil != _pscen && _rtelCur.irpt < _pglrpt->IvMac() - 1) // optimization\n        {\n            _fLifeDirty = fTrue;\n            _pscen->InvalFrmRange();\n        }\n    }\n\n    Assert(_iaevCur <= _pggaev->IvMac(), \"_iaevCur bug\");\n\n    _PositionBody(&_xyzCur);\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Scale the actor.\n    Add the event to the event list\n    Bound the allowable scaling.\n\n    Note that the stepsize and the actor lifetime is then subject to change,\n    with the attendent specified tweak etc modifications.\n\n***************************************************************************/\nbool ACTR::FScale(BRS rScale)\n{\n    AssertThis(0);\n\n    ulong faet = faetNil;\n    long rScaleStep;\n    long rScaleStepOld = _xfrm.rScaleStep;\n\n    if (!_pggaev->FEnsureSpace(1, kcbVarSize, fgrpNil))\n        return fFalse;\n\n    rScale = LwBound(rScale, krScaleMinFactor, krScaleMaxFactor);\n\n    rScaleStep = BrsMul(_xfrm.rScaleStep, rScale);\n    _xfrm.rScaleStep = LwBound(rScaleStep, krScaleMin, krScaleMax);\n\n    // Remove tweaks when a transformation that changes stepsize occurs\n    faet = (_xfrm.rScaleStep != rScale) ? faetTweak : faetNil;\n    _PrepXfrmFill(aetSize, &_xfrm.rScaleStep, kcbVarSize, _iaevCur, ivNil, faet);\n\n    if (!_FAddDoAev(aetSize, kcbVarSize, &_xfrm.rScaleStep))\n        return fFalse;\n\n    Assert(_iaevCur <= _pggaev->IvMac(), \"_iaevCur bug\");\n\n    if (_xfrm.rScaleStep != rScale)\n        _GetXyzFromRtel(&_rtelCur, &_xyzCur);\n    _PositionBody(&_xyzCur);\n\n    // Possibly extend life of actor if shrunk\n    if (rScaleStepOld != _xfrm.rScaleStep && pvNil != _pscen && _rtelCur.irpt < _pglrpt->IvMac() - 1) // optimization\n    {\n        _fLifeDirty = fTrue;\n        _pscen->InvalFrmRange();\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Drag the actor forwards or backwards in time\n    NOTE** Drag this subroute only -> sliding other subroutes in time\n\n***************************************************************************/\nbool ACTR::FSoonerLater(long dnfrm)\n{\n    AssertThis(0);\n\n    AEV aev;\n    AEV *paevPrev;\n    long nfrmSav;\n    long iaev;\n    long fSuccess;\n    long dnfrmSub;\n    long dnfrmT;\n\n    if (0 == dnfrm)\n        return fTrue;\n\n    if (_fLifeDirty)\n    {\n        if (!_FComputeLifetime(pvNil))\n            PushErc(ercSocBadFrameSlider);\n    }\n\n    Assert(_iaevAddCur >= 0, \"Invalid value for _iaevAddCur\");\n\n    // On a Sooner operation, slide the earlier subroutes\n    // backward in time\n    if (dnfrm < 0)\n    {\n        dnfrmT = (-dnfrm);\n        // The times of past events need to be correct.\n        for (iaev = _iaevCur - 1; dnfrmT > 0 && iaev >= 0; iaev--)\n        {\n            _pggaev->GetFixed(iaev, &aev);\n            if (aev.aet != aetAdd || iaev == 0)\n            {\n                aev.nfrm -= dnfrmT;\n                _pggaev->PutFixed(iaev, &aev);\n                continue;\n            }\n\n            // Account for subroute gaps\n            paevPrev = (AEV *)_pggaev->QvFixedGet(iaev - 1);\n            dnfrmSub = aev.nfrm - (paevPrev->nfrm);\n            aev.nfrm -= dnfrmT;\n            _pggaev->PutFixed(iaev, &aev);\n            dnfrmT -= (dnfrmSub - 1);\n        }\n    }\n    else\n    {\n        // Later\n        dnfrmT = dnfrm;\n        for (iaev = _iaevAddCur; dnfrmT > 0 && iaev < _pggaev->IvMac(); iaev++)\n        {\n            _pggaev->GetFixed(iaev, &aev);\n            if (aev.aet != aetAdd || iaev == _iaevAddCur)\n            {\n                nfrmSav = aev.nfrm;\n                aev.nfrm += dnfrmT;\n                _pggaev->PutFixed(iaev, &aev);\n                continue;\n            }\n            // Adjust for the gap between subroutes\n            dnfrmSub = aev.nfrm - nfrmSav;\n            dnfrmT -= (dnfrmSub - 1);\n            if (dnfrmT <= 0)\n                break;\n            aev.nfrm += dnfrmT;\n            _pggaev->PutFixed(iaev, &aev);\n        }\n    }\n    _pggaev->GetFixed(0, &aev);\n    _nfrmFirst = aev.nfrm;\n    _pggaev->GetFixed(_pggaev->IvMac() - 1, &aev);\n    _nfrmLast = aev.nfrm;\n\n    _nfrmCur += dnfrm;\n\n    // Invalidate, but do not recompute the range\n    _pscen->InvalFrmRange();\n\n    if (fSuccess = _pscen->FGotoFrm(_pscen->Nfrm() + dnfrm))\n    {\n        _pscen->Pmvie()->Pmcc()->UpdateScrollbars();\n    }\n    return fSuccess;\n}\n\n/***************************************************************************\n\n    Pull, stretch, squash the actor.\n    Add the event to the event list\n\n    Bound the allowable scaling.\n\n***************************************************************************/\nbool ACTR::FPull(BRS rScaleX, BRS rScaleY, BRS rScaleZ)\n{\n    AssertThis(0);\n\n    BRS rScaleXT;\n    BRS rScaleYT;\n    BRS rScaleZT;\n\n    if (!_pggaev->FEnsureSpace(1, kcbVarPull, fgrpNil))\n        return fFalse;\n\n    rScaleX = LwBound(rScaleX, krScaleMinFactor, krScaleMaxFactor);\n    rScaleY = LwBound(rScaleY, krScaleMinFactor, krScaleMaxFactor);\n    rScaleZ = LwBound(rScaleZ, krScaleMinFactor, krScaleMaxFactor);\n\n    rScaleXT = BrsMul(_xfrm.aevpull.rScaleX, rScaleX);\n    rScaleYT = BrsMul(_xfrm.aevpull.rScaleY, rScaleY);\n    rScaleZT = BrsMul(_xfrm.aevpull.rScaleZ, rScaleZ);\n\n    _xfrm.aevpull.rScaleX = LwBound(rScaleXT, krPullMin, krPullMax);\n    _xfrm.aevpull.rScaleY = LwBound(rScaleYT, krPullMin, krPullMax);\n    _xfrm.aevpull.rScaleZ = LwBound(rScaleZT, krPullMin, krPullMax);\n\n    _PrepXfrmFill(aetPull, &_xfrm.aevpull, kcbVarPull, _iaevCur);\n\n    if (!_FAddDoAev(aetPull, kcbVarPull, &_xfrm.aevpull))\n        return fFalse;\n\n    Assert(_iaevCur <= _pggaev->IvMac(), \"_iaevCur bug\");\n\n    _PositionBody(&_xyzCur);\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Translate one point of the actor's path\n    Add an event to the event list\n\n    The (dxr,dyr,dzr) passed in is a delta distance from the previous\n    location (set by GoToFrame, ie, determined by _rtelCur).\n\n***************************************************************************/\nbool ACTR::FTweakRoute(BRS dxr, BRS dyr, BRS dzr, ulong grfmaf)\n{\n    AssertThis(0);\n\n    XYZ xyz;\n\n    if (!_pggaev->FEnsureSpace(1, kcbVarTweak, fgrpNil))\n        return fFalse;\n\n    xyz.dxr = BrsAdd(_xyzCur.dxr, dxr);\n    xyz.dyr = BrsAdd(_xyzCur.dyr, dyr);\n    xyz.dzr = BrsAdd(_xyzCur.dzr, dzr);\n\n    if ((grfmaf & fmafGround) && (BrsAdd(_xyzCur.dyr, _dxyzRte.dyr) >= rZero) &&\n        (BrsAdd(xyz.dyr, _dxyzRte.dyr) < rZero))\n    {\n        xyz.dyr = -_dxyzRte.dyr;\n    }\n\n    if (!_FAddDoAev(aetTweak, kcbVarTweak, &xyz))\n        return fFalse;\n\n    _PositionBody(&xyz);\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Update xyzRte from the overall origin & the subroute translation\n\n***************************************************************************/\nvoid ACTR::_UpdateXyzRte(void)\n{\n    AssertBaseThis(0);\n\n    _dxyzRte.dxr = BrsAdd(_dxyzFullRte.dxr, _dxyzSubRte.dxr);\n    _dxyzRte.dyr = BrsAdd(_dxyzFullRte.dyr, _dxyzSubRte.dyr);\n    _dxyzRte.dzr = BrsAdd(_dxyzFullRte.dzr, _dxyzSubRte.dzr);\n}\n\n/***************************************************************************\n\n    Move the current subroute.\t(Compose tool)\n\n    If fmafOrient is set, the actor is oriented and moved.\n\n    If fmafEntireSubrte is set, this does not add an event to the aev list.\n    It alters the data in the Add event & _dxyzSubRte.\tReturn fTrue.\n\n    If fmafEntireScene is set, _dxyzFullRte is modified. Return fTrue.\n\n    If !fmafEntireSubrte && !fmafEntireScene, a move event is added\n    to the event list. This can therefore fail.\n\n    Return success or failure\n    Return *pfmoved indicating whether or not the path moved.\n\n***************************************************************************/\nbool ACTR::FMoveRoute(BRS dxr, BRS dyr, BRS dzr, bool *pfMoved, ulong grfmaf)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pfMoved);\n\n    AEVADD aevadd;\n    AEV *paev;\n    long iaev;\n    bool fMoved;\n    ulong grfbra;\n    XYZ dxyz;\n    BRS yrCurOld;\n    BRA xa;\n    BRA ya;\n    BRA za;\n\n    fMoved = (rZero != dxr || rZero != dyr || rZero != dzr);\n    if (pvNil != pfMoved)\n        *pfMoved = fMoved;\n\n    if (!fMoved)\n        return fTrue;\n\n    if (!_pggaev->FEnsureSpace(2, kcbVarMove + kcbVarRot, fgrpNil))\n        return fFalse;\n\n    // Edit dyr to respect ground\n    yrCurOld = BrsAdd(_xyzCur.dyr, _dxyzRte.dyr);\n    if (FPure(grfmaf & fmafGround) && (yrCurOld >= rZero) && (BrsAdd(dyr, yrCurOld) < rZero))\n    {\n        dyr = BrsSub(rZero, yrCurOld);\n    }\n\n    // Update Actor's orientation\n    if (FPure(grfmaf & fmafOrient) && !_ptmpl->FIsTdt())\n    {\n        dxyz.dxr = dxr;\n        dxyz.dyr = dyr;\n        dxyz.dzr = dzr;\n\n        // Back the path orientation out from this matrix & replace\n        // with new orientation\n        if (_xfrm.zaPath != aZero)\n            BrMatrix34PostRotateZ(&_xfrm.bmat34Cur, -_xfrm.zaPath);\n        if (_xfrm.yaPath != aZero)\n            BrMatrix34PostRotateY(&_xfrm.bmat34Cur, -_xfrm.yaPath);\n        if (_xfrm.xaPath != aZero)\n            BrMatrix34PostRotateX(&_xfrm.bmat34Cur, -_xfrm.xaPath);\n\n        _ApplyRotFromVec(&dxyz, pvNil, &xa, &ya, &za, &grfbra);\n        SetAddOrient(xa, ya, za, grfbra, &dxyz);\n\n        // Force speed to be inversely proportional to angular rotation\n        if (_iaevAddCur != ivNil)\n        {\n            BRS dwra, drxa, drya, drza;\n            BRS ra1, ra2;\n#ifdef DEBUG\n            {\n                AEV *paev;\n                paev = (AEV *)_pggaev->QvFixedGet(_iaevAddCur);\n                Assert(_nfrmCur == paev->nfrm, \"Unsupported use of fmafOrient\");\n            }\n#endif // DEBUG\n       //  Set dwra = angular change (in scalar form)\n            _pggaev->Get(_iaevAddCur, &aevadd);\n            ra1 = BrAngleToScalar(xa);\n            ra2 = BrAngleToScalar(aevadd.xa);\n            drxa = BrsAbs(BrsSub(ra1, ra2));\n            if (drxa > rOneHalf)\n            {\n                if (ra2 > ra1)\n                    ra1 = BrsAdd(rOne, ra1);\n                else\n                    ra2 = BrsAdd(rOne, ra2);\n                drxa = BrsAbs(BrsSub(ra1, ra2));\n            }\n\n            ra1 = BrAngleToScalar(ya);\n            ra2 = BrAngleToScalar(aevadd.ya);\n            drya = BrsAbs(BrsSub(ra1, ra2));\n            if (drya > rOneHalf)\n            {\n                if (ra2 > ra1)\n                    ra1 = BrsAdd(rOne, ra1);\n                else\n                    ra2 = BrsAdd(rOne, ra2);\n                drya = BrsAbs(BrsSub(ra1, ra2));\n            }\n\n            ra1 = BrAngleToScalar(za);\n            ra2 = BrAngleToScalar(aevadd.za);\n            drza = BrsAbs(BrsSub(ra1, ra2));\n            if (drza > rOneHalf)\n            {\n                if (ra2 > ra1)\n                    ra1 = BrsAdd(rOne, ra1);\n                else\n                    ra2 = BrsAdd(rOne, ra2);\n                drza = BrsAbs(BrsSub(ra1, ra2));\n            }\n\n            dwra = BR_LENGTH3(drxa, drya, drza);\n\n            // Compute a bounded inverse of the angular change\n            dwra = LwBound(dwra, krAngleMin, krAngleMax);\n            dwra = BrsDiv(BrsRcp(dwra), krAngleMinRcp);\n            AssertIn(dwra, rZero, BrsAdd(rOne, rEps));\n\n            // Adjust the distances\n            dxr = BrsMul(dxr, dwra);\n            dyr = BrsMul(dyr, dwra);\n            dzr = BrsMul(dzr, dwra);\n        }\n\n        // _xfrm.bmat34Cur is to hold the current full rotation\n        _LoadAddOrien(&aevadd, fTrue);\n\n        // Update any type of rotate event in this frame\n        for (iaev = _iaevAddCur + 1; iaev < _iaevCur; iaev++)\n        {\n            paev = (AEV *)_pggaev->QvFixedGet(iaev);\n            if (aetRotH == paev->aet)\n                _pggaev->Put(iaev, &_xfrm.bmat34Cur);\n            if (aetRotF == paev->aet)\n            {\n                // Insert orientation-rotation event\n                if (!_FAddDoAev(aetRotH, kcbVarRot, &_xfrm.bmat34Cur))\n                {\n                    Bug(\"Should have ensured space\");\n                    return fFalse;\n                }\n            }\n        }\n    }\n\n    // Update actor's position\n    if (FPure(grfmaf & fmafEntireScene))\n    {\n        _dxyzFullRte.dxr = BrsAdd(dxr, _dxyzFullRte.dxr);\n        _dxyzFullRte.dyr = BrsAdd(dyr, _dxyzFullRte.dyr);\n        _dxyzFullRte.dzr = BrsAdd(dzr, _dxyzFullRte.dzr);\n    }\n    else\n    {\n        if (_iaevAddCur == ivNil)\n            return fFalse;\n\n        if (!FPure(grfmaf & fmafEntireSubrte))\n        {\n            // Move actor just from this frame on (this subpath only)\n            // Note: FAddDoAev will update _dxyzSubRte\n            dxyz.dxr = dxr;\n            dxyz.dyr = dyr;\n            dxyz.dzr = dzr;\n            if (!_FAddDoAev(aetMove, kcbVarMove, &dxyz))\n                return fFalse;\n        }\n        else\n        {\n            // Translating whole subroute\n#ifdef DEBUG\n            long cbVar = _pggaev->Cb(_iaevAddCur);\n            Assert(cbVar == kcbVarAdd, \"Corrupt aev\");\n#endif // DEBUG\n       //  Adjust the translation state variables\n            _dxyzSubRte.dxr = BrsAdd(dxr, _dxyzSubRte.dxr);\n            _dxyzSubRte.dyr = BrsAdd(dyr, _dxyzSubRte.dyr);\n            _dxyzSubRte.dzr = BrsAdd(dzr, _dxyzSubRte.dzr);\n\n            // Adjust the position in the add event\n            _pggaev->Get(_iaevAddCur, &aevadd);\n            aevadd.dxr = BrsAdd(aevadd.dxr, dxr);\n            aevadd.dyr = BrsAdd(aevadd.dyr, dyr);\n            aevadd.dzr = BrsAdd(aevadd.dzr, dzr);\n            _pggaev->Put(_iaevAddCur, &aevadd);\n        }\n    }\n    _UpdateXyzRte();\n\n    _pscen->MarkDirty();\n\n    // Update Brender model\n    fMoved = FPure(rZero != dxr || rZero != dyr || rZero != dzr);\n\n    if (fMoved)\n        _PositionBody(&_xyzCur);\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Load starting point orientation into state variable _xfrm\n\n***************************************************************************/\nvoid ACTR::_LoadAddOrien(AEVADD *paevadd, bool fNoReset)\n{\n    AssertThis(0);\n\n    // Set _xfrm.bmat34Cur always holds the current full rotation\n    if (!fNoReset)\n        _InitXfrmRot(&_xfrm.bmat34Cur);\n    BrMatrix34PostRotateX(&_xfrm.bmat34Cur, paevadd->xa);\n    BrMatrix34PostRotateY(&_xfrm.bmat34Cur, paevadd->ya);\n    BrMatrix34PostRotateZ(&_xfrm.bmat34Cur, paevadd->za);\n    _xfrm.xaPath = paevadd->xa;\n    _xfrm.yaPath = paevadd->ya;\n    _xfrm.zaPath = paevadd->za;\n}\n\n/***************************************************************************\n\n    Remove redundant events of a targeted type.\t (Actor uses this for\n    Xfrm editing)\n    NOTE***: This is not valid for Actn or Cost fill.  Special case routines\n    exist for those event types.\n\n    This is called _before_ inserting the new event.\n\n    Note: For transforms, this code will rarely have effect unless the client\n    uses discretized increments of observable size, ie, it is statistically\n    unlikely that a match of the same size will be found. This code was\n    requested in anticipation of discretized increments.\n\n    Input: aet == the event type\n        *pvVar == the variable part of the new event being inserted\n        cbVar == the size of the variable part\n        iaevMin == the first possible event to delete\n        iaevCmp == ivNil or the event being replaced\n        grfaet == faetNil or types of events to nuke along the way\n\n***************************************************************************/\nvoid ACTR::_PrepXfrmFill(long aet, void *pvVar, long cbVar, long iaevMin, long iaevCmp, ulong grfaet)\n{\n    AssertBaseThis(0);\n    Assert(aet == aetSize || aet == aetRotF || aet == aetPull, \"Illegal argument aet\");\n    AssertPvCb(pvVar, cbVar);\n    AssertIn(cbVar, 0, 100); // Approximate bound\n    AssertIn(iaevMin, 0, _pggaev->IvMac() + 1);\n    AssertIn(iaevCmp, -1, _pggaev->IvMac() + 1);\n    Assert(aet != aetActn && aet != aetCost, \"Illegal aet argument\");\n\n    long iaev;\n    AEV aev;\n    bool fReplacePrev = fTrue;\n    void *pvVarCmp = pvNil;\n    long cb;\n\n    _pggaev->Lock();\n\n    if (ivNil != iaevCmp)\n    {\n        pvVarCmp = _pggaev->QvGet(iaevCmp, &cb);\n        Assert(cb == cbVar, \"Logic error\");\n    }\n    else\n    {\n        // Locate the most current event of this type\n        // and store the ptr in pvVarCmp\n        for (iaev = 0; iaev < iaevMin - 1; iaev++)\n        {\n            _pggaev->GetFixed(iaev, &aev);\n            if (aet != aev.aet)\n                continue;\n\n            pvVarCmp = _pggaev->QvGet(iaev, &cb);\n            Assert(cb == cbVar, \"Logic error\");\n        }\n    }\n\n    if (pvNil == pvVarCmp)\n        pvVarCmp = pvVar;\n\n    for (iaev = iaevMin; iaev < _pggaev->IvMac(); iaev++)\n    {\n        bool fDelete = fFalse;\n        _pggaev->GetFixed(iaev, &aev);\n\n        // Stage entrance events are boundaries to edits\n        if (aetAdd == aev.aet)\n            goto LEnd;\n\n        switch (aev.aet)\n        {\n        case aetSize:\n        case aetPull:\n        case aetRotF:\n            void *pv1;\n            void *pv2;\n            if (aev.aet != aet)\n                continue;\n\n            if (fReplacePrev)\n            {\n                pv1 = pvVarCmp;\n                pv2 = _pggaev->QvGet(iaev);\n                if (fcmpEq != FcmpCompareRgb(pv1, pv2, cbVar))\n                {\n                    // Prepare to test for a match with new event\n                    fReplacePrev = fFalse;\n                    pvVarCmp = pvVar;\n                    fDelete = fFalse;\n                }\n                else\n                {\n                    fDelete = fTrue;\n                    goto LDelete;\n                }\n            }\n\n            Assert(!fReplacePrev, \"Logic Error\");\n            pv1 = pvVarCmp;\n            pv2 = _pggaev->QvGet(iaev);\n            if (fcmpEq != FcmpCompareRgb(pv1, pv2, cbVar))\n                goto LEnd;\n\n            // Events equal : delete event at iaev\n            fDelete = fTrue;\n            break;\n\n        case aetTweak:\n            if ((grfaet & faetTweak) && (aev.rtel >= _rtelCur))\n                fDelete = fTrue;\n            break;\n        case aetRotH:\n            if ((grfaet & faetRotF) && (aev.rtel == _rtelCur))\n                fDelete = fTrue;\n            break;\n        case aetFreeze:\n            if ((grfaet & faetFreeze) && (aev.rtel >= _rtelCur))\n                fDelete = fTrue;\n            break;\n        case aetStep:\n            if ((grfaet & faetStep) && (aev.rtel >= _rtelCur))\n                fDelete = fTrue;\n            ;\n            break;\n\n        default:\n            break;\n        }\n    LDelete:\n        if (fDelete)\n        {\n            _RemoveAev(iaev);\n            iaev--;\n        }\n    }\n\nLEnd:\n    _pggaev->Unlock();\n}\n\n/***************************************************************************\n\n    Insert Aev.  Update state variables\n    Since _pggaev is getting a copy of a tag, a call to DupTag is required\n\n***************************************************************************/\nbool ACTR::_FInsertAev(long iaev, long cbNew, void *pvVar, void *paev, bool fUpdateState)\n{\n    AssertBaseThis(0);\n    AssertIn(iaev, 0, _pggaev->IvMac() + 1);\n    AssertIn(cbNew, 0, 100); // approximate bound\n    if (pvNil != pvVar)\n        AssertPvCb(pvVar, cbNew);\n    AssertPvCb(paev, size(AEV));\n\n    PTAG ptag;\n\n    if (!_pggaev->FInsert(iaev, cbNew, pvVar, paev))\n        return fFalse;\n\n    // If not simply allocating space\n    if (pvVar != pvNil)\n    {\n        // Increment tag count\n        _pggaev->Lock();\n        if (_FIsIaevTag(_pggaev, iaev, &ptag))\n            TAGM::DupTag(ptag);\n        _pggaev->Unlock();\n\n        if (fUpdateState)\n        {\n            if (iaev < _iaevCur)\n                _iaevCur++;\n            if (iaev <= _iaevActnCur)\n                _iaevActnCur++;\n            if (iaev <= _iaevAddCur)\n                _iaevAddCur++;\n            if (iaev < _iaevFrmMin)\n                _iaevFrmMin++;\n        }\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Remove Aev.  Update state variables\n\n***************************************************************************/\nvoid ACTR::_RemoveAev(long iaev, bool fUpdateState)\n{\n    AssertBaseThis(0);\n    AssertIn(iaev, 0, _pggaev->IvMac());\n\n    bool fUpdateSndFrame;\n    PTAG ptag;\n    PAEV qaev;\n\n    // First, close tags\n    _pggaev->Lock();\n    if (_FIsIaevTag(_pggaev, iaev, &ptag, &qaev))\n        TAGM::CloseTag(ptag);\n\n    /* Don't bother updating the frame sound indicator if we didn't change\n        an event in the scene's current frame */\n    fUpdateSndFrame = (qaev->aet == aetSnd) && (_pscen != pvNil) && (qaev->nfrm == _pscen->Nfrm());\n\n    _pggaev->Unlock(); // qaev is invalid past here!\n    TrashVar(&qaev);\n\n    _pggaev->Delete(iaev);\n\n    if (fUpdateState)\n    {\n        if (iaev < _iaevCur)\n            _iaevCur--;\n        if (iaev < _iaevActnCur)\n            _iaevActnCur--;\n        if (iaev < _iaevAddCur)\n            _iaevAddCur--;\n        if (iaev < _iaevFrmMin)\n            _iaevFrmMin--;\n    }\n\n    if (fUpdateSndFrame)\n        _pscen->UpdateSndFrame();\n}\n\n/***************************************************************************\n\n    Remove specified (eg, tweak, step, freeze) events for the current action\n    If faetActn is set in the grfaet, also remove action events\n    matching the replaced action followed by action events matching\n    the new (current) action _anidCur.\n\n    Note: This routine exists in addition to the more general PrepXfrmFill\n    because actn events are\tconsidered to match if the anid's match\n    regardless of the value of the celn.\n\n***************************************************************************/\nvoid ACTR::_PrepActnFill(long iaevMin, long anidPrev, long anidNew, ulong grfaet)\n{\n    AssertBaseThis(0);\n    AssertIn(iaevMin, 0, _pggaev->IvMac() + 1);\n\n    AEV aev;\n    long iaev;\n    long anid = anidPrev;\n\n    for (iaev = iaevMin; iaev < _pggaev->IvMac(); iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n\n        // Stage entrance events are boundaries to edits\n        if (aetAdd == aev.aet)\n            return;\n\n        if (aetActn == aev.aet)\n        {\n            AEVACTN aevactn;\n            _pggaev->Get(iaev, &aevactn);\n\n            if (!(grfaet & faetActn))\n            {\n                if (aevactn.anid == anidNew)\n                    continue;\n                else\n                    return;\n            }\n\n            if (aevactn.anid == anid)\n            {\n                _RemoveAev(iaev);\n                iaev--;\n            }\n            else if (aevactn.anid == anidNew)\n            {\n                anid = anidNew;\n                _RemoveAev(iaev);\n                iaev--;\n            }\n            else\n                return;\n        }\n\n        if (aev.rtel < _rtelCur)\n            continue;\n\n        if (aev.aet == aetTweak && (grfaet & faetTweak))\n        {\n            _RemoveAev(iaev);\n            iaev--;\n        }\n\n        if (aev.aet == aetFreeze && (grfaet & faetFreeze))\n        {\n            // Do not remove end-of-subroute freeze events\n            if (!_FIsDoneAevSub(iaev, aev.rtel))\n            {\n                _RemoveAev(iaev);\n                iaev--;\n            }\n        }\n    }\n}\n\n/***************************************************************************\n\n    Remove redundant costume changes\n    Note:  \tDelete all costume events that match the costume being replaced\n            Then delete all subsequent costume events that match the\n            costume being inserted\n\n***************************************************************************/\nvoid ACTR::_PrepCostFill(long iaevMin, AEVCOST *paevcost)\n{\n    AssertBaseThis(0);\n    AssertIn(iaevMin, 0, _pggaev->IvMac() + 1);\n    AssertVarMem(paevcost);\n\n    long iaev;\n    AEV aev;\n    AEVCOST aevcost;\n    bool fMtrl;\n    bool fCmtl;\n    MTRL *pmtrlCmp;\n    CMTL *pcmtlCmp;\n    MTRL *pmtrl = pvNil;\n    CMTL *pcmtl = pvNil;\n    bool fReplacePrev = fTrue;\n\n    // Locate the most current costume for this body part\n    _pbody->GetPartSetMaterial(paevcost->ibset, &fMtrl, &pmtrlCmp, &pcmtlCmp);\n    fCmtl = !fMtrl;\n\n    for (iaev = iaevMin; iaev < _pggaev->IvMac(); iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n\n        // Stage entrance events are boundaries to edits\n        if (aetAdd == aev.aet)\n            goto LEnd;\n\n        if (aetCost != aev.aet)\n            continue;\n\n        _pggaev->Get(iaev, &aevcost);\n        if (aevcost.ibset != paevcost->ibset)\n            continue;\n\n        if (fReplacePrev)\n        {\n            // Delete the event if the costumes are the same\n            if ((fCmtl == aevcost.fCmtl) &&\n                ((!fCmtl && (pmtrlCmp == (pmtrl = (PMTRL)vptagm->PbacoFetch(&aevcost.tag, MTRL::FReadMtrl)))) ||\n                 (fCmtl && (pcmtlCmp == (pcmtl = _ptmpl->PcmtlFetch(aevcost.cmid))))))\n            {\n                goto LDelete;\n            }\n\n            // This event does not match the one being replaced\n            // Prepare to test for a match with the event being inserted\n            fReplacePrev = fFalse;\n            if (!paevcost->fCmtl)\n            {\n                pmtrlCmp = (PMTRL)vptagm->PbacoFetch(&paevcost->tag, MTRL::FReadMtrl);\n                pcmtlCmp = pvNil;\n            }\n            else\n            {\n                pcmtlCmp = _ptmpl->PcmtlFetch(paevcost->cmid);\n                pmtrlCmp = pvNil;\n            }\n        }\n\n        ReleasePpo(&pcmtl);\n        ReleasePpo(&pmtrl);\n        Assert(!fReplacePrev, \"Logic error\");\n        if (paevcost->fCmtl != aevcost.fCmtl ||\n            (!aevcost.fCmtl && (pmtrlCmp != (pmtrl = (PMTRL)vptagm->PbacoFetch(&aevcost.tag, MTRL::FReadMtrl)))) ||\n            (aevcost.fCmtl && (pcmtlCmp != (pcmtl = _ptmpl->PcmtlFetch(aevcost.cmid)))))\n        {\n            // If the costumes differ\n            goto LEnd;\n        }\n    LDelete:\n        ReleasePpo(&pcmtl);\n        ReleasePpo(&pmtrl);\n        _RemoveAev(iaev);\n        iaev--;\n    }\nLEnd:\n    if (!fReplacePrev)\n    {\n        ReleasePpo(&pmtrlCmp);\n        ReleasePpo(&pcmtlCmp);\n    }\n    ReleasePpo(&pmtrl);\n    ReleasePpo(&pcmtl);\n}\n\n/***************************************************************************\n\n    AdjustAevForRte for an already inserted point at irptAdjust\n    adjust the rtel's of the subsequent affected events\n\n***************************************************************************/\nvoid ACTR::_AdjustAevForRteIns(long irptAdjust, long iaevMin)\n{\n    AssertBaseThis(0);\n    long irptMac = _pglrpt->IvMac();\n    AssertIn(irptAdjust, 0, irptMac);\n    AssertIn(iaevMin, 0, _pggaev->IvMac() + 1);\n\n    long iaev;\n    AEV aev;\n    RPT rptBack, rptAdjust;\n    BRS dwrBack;\n\n    if (irptAdjust > 0)\n    {\n        _pglrpt->Get(irptAdjust - 1, &rptBack);\n        dwrBack = rptBack.dwr;\n    }\n    else\n        dwrBack = rZero;\n\n    _pglrpt->Get(irptAdjust, &rptAdjust);\n\n    for (iaev = iaevMin; iaev < _pggaev->IvMac(); iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if (aev.rtel.irpt >= irptAdjust) // offset from later point\n        {\n            aev.rtel.irpt++;\n        }\n        else if (aev.rtel.irpt < irptAdjust - 1)\n        {\n            continue;\n        }\n        else\n        {\n            if ((irptAdjust == irptMac - 1) || (rZero == dwrBack))\n                continue;\n\n            if (aev.rtel.dwrOffset >= dwrBack)\n            {\n                aev.rtel.dwrOffset = BrsSub(aev.rtel.dwrOffset, dwrBack);\n                aev.rtel.irpt++;\n            }\n        }\n        _pggaev->PutFixed(iaev, &aev);\n    }\n}\n/***************************************************************************\n\n    AdjustAevForRte for a to-be deleted point at irptAdjust\n    adjust the rtel's of the affected events\n\n***************************************************************************/\nvoid ACTR::_AdjustAevForRteDel(long irptAdjust, long iaevMin)\n{\n    AssertBaseThis(0);\n    long irptMac = _pglrpt->IvMac();\n    AssertIn(irptAdjust, 0, irptMac);\n    AssertIn(iaevMin, 0, _pggaev->IvMac() + 1);\n\n    long iaev;\n    AEV aev;\n    RPT rptBack, rptAdjust;\n    BRS dwrBack, dwrFwd;\n\n    if (0 == irptAdjust)\n        dwrBack = rZero;\n    else\n    {\n        _pglrpt->Get(irptAdjust - 1, &rptBack);\n        dwrBack = rptBack.dwr;\n    }\n\n    _pglrpt->Get(irptAdjust, &rptAdjust);\n    dwrFwd = rptAdjust.dwr;\n\n    for (iaev = iaevMin; iaev < _pggaev->IvMac(); iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if (aev.rtel.irpt > irptAdjust) // offset from later point\n        {\n            aev.rtel.irpt--;\n        }\n        else if (aev.rtel.irpt == irptAdjust)\n        {\n            if (rptAdjust.dwr == rZero)\n            {\n                // Point will be deleted.  Event must be also\n                _RemoveAev(iaev);\n                iaev--;\n                continue;\n            }\n            aev.rtel.dwrOffset = BrsAdd(dwrBack, aev.rtel.dwrOffset);\n            aev.rtel.irpt--;\n        }\n        else\n            continue;\n\n        _pggaev->PutFixed(iaev, &aev);\n    }\n}\n\n/***************************************************************************\n\n    Locate a point on the path dwrStep further along the route from *prtel\n    Events which potentially modify this step (Action, Add) begin at iaevCur.\n    *pfEndRoute is set only when an attempt is made to move past the last\n    node of the subroute.\n\n    NOTE: This routine is designed to be independent of all frame dependent\n    state variables.\n    Spec: The end of a subroute is <always> reached in a moving action.\n***************************************************************************/\nvoid ACTR::_AdvanceRtel(BRS dwrStep, RTEL *prtel, long iaevCur, long nfrmCur, bool *pfEndRoute)\n{\n    AssertBaseThis(0);\n    AssertVarMem(prtel);\n    AssertNilOrVarMem(pfEndRoute);\n\n    BRS dwrT;\n    bool fEndRoute = fFalse;\n    long iaev;\n    AEV aev;\n\n    // If at start of path\n    // Note: _nfrmFirst is independent with respect to the current frame\n    if (nfrmCur <= _nfrmFirst)\n    {\n        prtel->irpt = 0;\n        prtel->dwrOffset = rZero;\n        prtel->dnfrm = 0;\n        goto LDone;\n    }\n\n    // End of route means trying to move beyond the last point.\n    if (rZero == dwrStep) // Not an \"end-of-route\"\n    {\n        prtel->dnfrm++;\n        goto LDone;\n    }\n\n    // Move to the correct path segment\n    dwrT = ((RPT *)_pglrpt->QvGet(prtel->irpt))->dwr;\n    dwrT = BrsSub(dwrT, prtel->dwrOffset);\n    if (rZero == dwrT)\n    {\n        Assert(prtel->dwrOffset == rZero, \"Expected zero offset\");\n        prtel->dnfrm++;\n        fEndRoute = fTrue;\n        goto LDone;\n    }\n\n    while (dwrT <= dwrStep && rZero < dwrStep)\n    {\n        // Spec: Move the partial step\n        // Not an \"end-of-route\" - didn't try to move beyond\n        if (rZero == dwrT)\n        {\n            goto LDoneMove;\n        }\n        prtel->irpt++;\n        AssertIn(prtel->irpt, 1, _pglrpt->IvMac());\n        prtel->dwrOffset = rZero;\n        dwrStep = BrsSub(dwrStep, dwrT);\n        dwrT = ((RPT *)_pglrpt->QvGet(prtel->irpt))->dwr;\n    }\n\n    dwrT = ((RPT *)_pglrpt->QvGet(prtel->irpt))->dwr;\n    prtel->dwrOffset = BrsAdd(prtel->dwrOffset, dwrStep);\n\nLDoneMove:\n    prtel->dnfrm = 0;\n\n    if (!_fModeRecord && !_fRejoin)\n    {\n        // Spec: Ordinarily, the actor will display at the end of this step.\n        // If Actn or Step events exist, the the actor is to display\n        // at the location of the event.\n        for (iaev = iaevCur; iaev < _pggaev->IvMac(); iaev++)\n        {\n            _pggaev->GetFixed(iaev, &aev);\n            if ((aev.rtel <= *prtel) && (aev.aet == aetStep || aev.aet == aetActn))\n            {\n                *prtel = aev.rtel;\n                break;\n            }\n            if (aev.rtel > *prtel)\n                break;\n        }\n    }\n\nLDone:\n    if (pvNil != pfEndRoute)\n        *pfEndRoute = fEndRoute;\n\n    return;\n}\n\n/***************************************************************************\n\n    Convert a route location (rtel) to an xyz point (in *pxyz)\n\n***************************************************************************/\nvoid ACTR::_GetXyzFromRtel(RTEL *prtel, PXYZ pxyz)\n{\n    AssertBaseThis(0);\n    AssertVarMem(prtel);\n    AssertVarMem(pxyz);\n\n    RPT rpt;\n    RPT rptFirst;\n    RPT rptSecond;\n    BRS rFract;\n\n    if (rZero == prtel->dwrOffset || (prtel->irpt) + 1 == _pglrpt->IvMac())\n    {\n        _pglrpt->Get(prtel->irpt, &rpt);\n        *pxyz = rpt.xyz;\n        return;\n    }\n\n    _pglrpt->Get(prtel->irpt, &rptFirst);\n    _pglrpt->Get(1 + prtel->irpt, &rptSecond);\n    Assert(rptFirst.dwr >= prtel->dwrOffset, \"Possible offset bug in _GetXyzFromRtel\");\n\n    rFract = BrsDiv(prtel->dwrOffset, rptFirst.dwr);\n    _GetXyzOnLine(&rptFirst.xyz, &rptSecond.xyz, rFract, pxyz);\n}\n\n/***************************************************************************\n\n    Find a point rFract fractional distance between two points.\n    Store in *pxyz\n\n***************************************************************************/\nvoid ACTR::_GetXyzOnLine(PXYZ pxyzFirst, PXYZ pxyzSecond, BRS rFract, PXYZ pxyz)\n{\n    AssertBaseThis(0);\n    AssertVarMem(pxyzFirst);\n    AssertVarMem(pxyzSecond);\n    AssertVarMem(pxyz);\n\n    // New pt = first + (second - first) * fractoffset;\n    pxyz->dxr = BrsSub(pxyzSecond->dxr, pxyzFirst->dxr);\n    pxyz->dyr = BrsSub(pxyzSecond->dyr, pxyzFirst->dyr);\n    pxyz->dzr = BrsSub(pxyzSecond->dzr, pxyzFirst->dzr);\n\n    pxyz->dxr = BrsMul(rFract, pxyz->dxr);\n    pxyz->dyr = BrsMul(rFract, pxyz->dyr);\n    pxyz->dzr = BrsMul(rFract, pxyz->dzr);\n\n    pxyz->dxr = BrsAdd(pxyz->dxr, pxyzFirst->dxr);\n    pxyz->dyr = BrsAdd(pxyz->dyr, pxyzFirst->dyr);\n    pxyz->dzr = BrsAdd(pxyz->dzr, pxyzFirst->dzr);\n}\n\n/***************************************************************************\n\n    Locate the actor (in Brender terms), first adjusting the location.\n    Post-impose a rotation looking forward along the route\n\n***************************************************************************/\nvoid ACTR::_PositionBody(XYZ *pxyz)\n{\n    AssertBaseThis(0);\n    AssertVarMem(pxyz);\n    XYZ xyz;\n    BMAT34 bmat34; // Final orientation matrix\n\n    _MatrixRotUpdate(pxyz, &bmat34);\n\n    xyz.dxr = BrsAdd(_dxyzRte.dxr, pxyz->dxr);\n    xyz.dyr = BrsAdd(_dxyzRte.dyr, pxyz->dyr);\n    xyz.dzr = BrsAdd(_dxyzRte.dzr, pxyz->dzr);\n    _pbody->LocateOrient(xyz.dxr, xyz.dyr, xyz.dzr, &bmat34);\n}\n\n/***************************************************************************\n\n    Update the orientation matrices\n    _xfrm.bmat34Cur must be kept current\n\n***************************************************************************/\nvoid ACTR::_MatrixRotUpdate(XYZ *pxyz, BMAT34 *pbmat34)\n{\n    AssertBaseThis(0);\n    AssertVarMem(pxyz);\n    AssertVarMem(pbmat34);\n\n    RPT rpt;\n    BRA xa, ya, za;\n    BMAT34 bmat34TS; // Scaling matrix\n    BMAT34 bmat34TR; // Rotation matrix\n    bool fStretchSize;\n    AEV *paev;\n\n    _xyzCur = *pxyz;\n    fStretchSize = (rOne != _xfrm.aevpull.rScaleX || rOne != _xfrm.aevpull.rScaleY || rOne != _xfrm.aevpull.rScaleZ ||\n                    rOne != _xfrm.rScaleStep);\n\n    // Set the orientation & rotation to zero-change\n    BrMatrix34Identity(&bmat34TS);\n\n    // Post apply the rest (face the camera) orientation\n    _ptmpl->GetRestOrien(&xa, &ya, &za);\n    BrMatrix34PostRotateX(&bmat34TS, xa);\n    BrMatrix34PostRotateY(&bmat34TS, ya);\n    BrMatrix34PostRotateZ(&bmat34TS, za);\n\n    if (fStretchSize)\n    {\n        // Apply any current stretching/squashing\n        // This must be applied BEFORE rotation to avoid stretching\n        // the actor along skewed axes\n        BrMatrix34PostScale(&bmat34TS, _xfrm.aevpull.rScaleX, _xfrm.aevpull.rScaleY, _xfrm.aevpull.rScaleZ);\n\n        // Apply any current uniform sizing\n        if (_xfrm.rScaleStep != rOne)\n        {\n            BrMatrix34PostScale(&bmat34TS, _xfrm.rScaleStep, _xfrm.rScaleStep, _xfrm.rScaleStep);\n        }\n    }\n\n    // bmat34Cur is the all inclusive orientation matrix\n    if (_fUseBmat34Cur)\n    {\n        // Single frame rotate events or static segments\n        BrMatrix34Mul(pbmat34, &bmat34TS, &_xfrm.bmat34Cur); // A = B * C\n    }\n    else\n    {\n        // Forward-rotate events or non-static segments\n        BrMatrix34Copy(&bmat34TR, &_xfrm.bmat34Fwd); // copy to bmat34TR\n\n        // Post apply the path orientation\n        AssertIn(_iaevAddCur, 0, _pggaev->IvMac());\n        paev = (AEV *)_pggaev->QvFixedGet(_iaevAddCur);\n        _pglrpt->Get(paev->rtel.irpt, &rpt);\n#ifdef BUG1899\n        if (_ptmpl->FIsTdt() || (_rtelCur.irpt == paev->rtel.irpt && _rtelCur.dwrOffset == rZero))\n#else  //! BUG1899\n        if (_ptmpl->FIsTdt() || paev->nfrm == _nfrmCur || rpt.dwr == rZero)\n#endif //! BUG1899\n        {\n            // Single point\tsubroute ->\n            // Post apply single point orientation to event rotations\n            AEVADD aevadd;\n            _pggaev->Get(_iaevAddCur, &aevadd);\n            BrMatrix34PostRotateX(&bmat34TR, aevadd.xa);\n            BrMatrix34PostRotateY(&bmat34TR, aevadd.ya);\n            BrMatrix34PostRotateZ(&bmat34TR, aevadd.za);\n            // Save the path part of the orientation\n            _xfrm.xaPath = aevadd.xa;\n            _xfrm.yaPath = aevadd.ya;\n            _xfrm.zaPath = aevadd.za;\n        }\n        else\n        {\n            // Orient along the route\n            _CalcRteOrient(&bmat34TR, &_xfrm.xaPath, &_xfrm.yaPath, &_xfrm.zaPath);\n        }\n\n        // Now combine rotation with stretching\n        BrMatrix34Mul(pbmat34, &bmat34TS, &bmat34TR);\n\n        // Note: The result of the entire rotation (including path) needs to\n        // be saved - otherwise, the actor will jump when the user first tries\n        // to do a tweak-rotate edit.\n        BrMatrix34Copy(&_xfrm.bmat34Cur, &bmat34TR); // Save final all-included rotation matrix\n    }\n}\n\n/***************************************************************************\n\n    Calculate the Post-imposed rotation tangent to the route\n    Calculation based on _iaevCur, _anidCur\n    NOTE: *pbmat34 is not pre-initialized\n\n***************************************************************************/\nvoid ACTR::_CalcRteOrient(BMAT34 *pbmat34, BRA *pxa, BRA *pya, BRA *pza, ulong *pgrfbra)\n{\n    AssertBaseThis(0);\n    AssertNilOrVarMem(pbmat34);\n    AssertNilOrVarMem(pxa);\n    AssertNilOrVarMem(pya);\n    AssertNilOrVarMem(pza);\n\n    long irptPrev;\n    long irptAdd;\n    XYZ xyz;\n    AEV aev;\n    RPT rpt;\n\n    if (pvNil != pxa)\n        *pxa = aZero;\n    if (pvNil != pya)\n        *pya = aZero;\n    if (pvNil != pza)\n        *pza = aZero;\n\n    AssertIn(_iaevAddCur, 0, _pggaev->IvMac());\n    _pggaev->GetFixed(_iaevAddCur, &aev);\n    irptAdd = aev.rtel.irpt;\n    irptPrev = (rZero < _rtelCur.dwrOffset || _rtelCur.irpt == aev.rtel.irpt) ? _rtelCur.irpt : _rtelCur.irpt - 1;\n\n    Assert(rZero == _rtelCur.dwrOffset || irptPrev < _pglrpt->IvMac(), \"Incorrect offset in path\");\n\n    // If at end of subpath, or if on a static segment,\n    // retain the orientation the actor last had\n    _pglrpt->Get(irptPrev, &rpt);\n    if (rZero == rpt.dwr)\n        irptPrev--;\n\n    if (irptPrev < irptAdd)\n        return; // Single point path\n\n    //\n    // Compute vector xyz as a weighted average of 3 vectors\n    //\n    xyz.dxr = rZero;\n    xyz.dyr = rZero;\n    xyz.dzr = rZero;\n\n    _UpdateXyzTan(&xyz, irptPrev, rFour);\n\n    if (irptPrev > irptAdd)\n    {\n        _UpdateXyzTan(&xyz, irptPrev - 1, rTwo);\n        if (irptPrev - 1 > irptAdd)\n        {\n            _UpdateXyzTan(&xyz, irptPrev - 2, rOne);\n        }\n    }\n\n    //\n    // Apply the rotation determined by vector xyz\n    //\n    _ApplyRotFromVec(&xyz, pbmat34, pxa, pya, pza, pgrfbra);\n    return;\n}\n\n/***************************************************************************\n\n    Update vector *pxyz by adding to it the normalized vector from nodes\n    (irpt to irpt + 1) * weighting factor rw.\tThe result\n    accumulates a weighted average approximation to the tangent to the\n    route.\n    Optimized for movie PLAYing\n\n***************************************************************************/\nvoid ACTR::_UpdateXyzTan(XYZ *pxyz, long irpt, long rw)\n{\n    AssertBaseThis(0);\n\n    RPT rpt1;\n    RPT rpt2;\n    BRS dwr, dxr, dyr, dzr;\n\n    Assert(irpt + 1 < _pglrpt->IvMac(), \"irpt out of range\");\n\n    _pglrpt->Get(irpt, &rpt1);\n    _pglrpt->Get(irpt + 1, &rpt2);\n\n    dxr = BrsSub(rpt2.xyz.dxr, rpt1.xyz.dxr);\n    dyr = BrsSub(rpt2.xyz.dyr, rpt1.xyz.dyr);\n    dzr = BrsSub(rpt2.xyz.dzr, rpt1.xyz.dzr);\n\n    //\n    // Normalize the vector\t(norm ~ max + 1/2 min)\n    //\n    dwr = BrsAbsMax3(dxr, dyr, dzr);\n    if (dxr == dwr)\n        dwr = BrsAdd(dwr, (BRS)(LwMax(LwAbs((long)dyr), LwAbs((long)dzr)) >> 1));\n    else\n    {\n        if (dyr == dwr)\n            dwr = BrsAdd(dwr, (BRS)(LwMax(LwAbs((long)dxr), LwAbs((long)dzr)) >> 1));\n        else\n            dwr = BrsAdd(dwr, (BRS)(LwMax(LwAbs((long)dxr), LwAbs((long)dyr)) >> 1));\n    }\n    dxr = BrsDiv(dxr, dwr);\n    dyr = BrsDiv(dyr, dwr);\n    dzr = BrsDiv(dzr, dwr);\n\n    dxr = LwBound(dxr, -rOne, rOne);\n    dyr = LwBound(dyr, -rOne, rOne);\n    dzr = LwBound(dzr, -rOne, rOne);\n\n    //\n    // Apply the weight\n    //\n    if (rw != rOne)\n    {\n        dxr = BrsMul(rw, dxr);\n        dyr = BrsMul(rw, dyr);\n        dzr = BrsMul(rw, dzr);\n    }\n\n    pxyz->dxr = BrsAdd(pxyz->dxr, dxr);\n    pxyz->dyr = BrsAdd(pxyz->dyr, dyr);\n    pxyz->dzr = BrsAdd(pxyz->dzr, dzr);\n}\n\n/***************************************************************************\n\n    Compute the angles of rotation defined by the vector *pxyz\n    Apply the rotation to matrix *pbmat34\n    Return the angles of rotation in *pxa, *pya, *pza\n    Return a mask of the axes rotated\n\n    Note: Banking can be done by approximating the second derivative\n    which can be done using additional arguments.\n\n***************************************************************************/\nvoid ACTR::_ApplyRotFromVec(XYZ *pxyz, BMAT34 *pbmat34, BRA *pxa, BRA *pya, BRA *pza, ulong *pgrfbra)\n{\n    AssertBaseThis(0);\n    AssertNilOrVarMem(pbmat34);\n    AssertVarMem(pxyz);\n    AssertNilOrVarMem(pxa);\n    AssertNilOrVarMem(pya);\n    AssertNilOrVarMem(pza);\n\n    BRS dwr;\n    BRS rX, rY, rZ;\n    BRFR eX, eY, eZ, eW;\n    BRA aRot = aZero;\n\n    if (pvNil != pgrfbra)\n        *pgrfbra = 0;\n\n    /// Use cached tmpl _grfactn to determine the axes to rotate around\n    dwr = BrsAdd(BrsAbsMax3(pxyz->dxr, pxyz->dyr, pxyz->dzr), rOne);\n\n    // BrScalarToFraction required by Brender's BR_ATAN2 limitation\n    if (_grfactn & (factnRotateY | factnRotateZ))\n    {\n        rX = BrsDiv(pxyz->dxr, dwr);\n        eX = BrScalarToFraction(rX);\n    }\n    if (_grfactn & (factnRotateX | factnRotateZ))\n    {\n        rY = BrsDiv(pxyz->dyr, dwr);\n        eY = BrScalarToFraction(rY);\n    }\n    if (_grfactn & (factnRotateX | factnRotateY))\n    {\n        rZ = BrsDiv(pxyz->dzr, dwr);\n        eZ = BrScalarToFraction(rZ);\n    }\n\n    if (_grfactn & factnRotateY)\n    {\n        if (pxyz->dxr != rZero || pxyz->dzr != rZero)\n        {\n            aRot = BR_ATAN2(eX, eZ);\n            if (pvNil != pbmat34)\n                BrMatrix34PostRotateY(pbmat34, aRot);\n\n            if (pvNil != pgrfbra)\n                *pgrfbra |= fbraRotateY;\n        }\n    }\n\n    if (pvNil != pya)\n        *pya = aRot;\n\n    // Tilt the actor up / down\n    if (_grfactn & factnRotateX)\n    {\n        if (pxyz->dyr != rZero)\n        {\n            eW = BrScalarToFraction(BrsAdd(BrsAbs(rX), BrsAbs(rZ)));\n            aRot = BR_ATAN2(-eY, eW);\n            if (pvNil != pbmat34)\n                BrMatrix34PreRotateX(pbmat34, aRot);\n\n            if (pvNil != pgrfbra)\n                *pgrfbra |= fbraRotateX;\n        }\n    }\n    if (pvNil != pxa)\n        *pxa = aRot;\n    if (pvNil != pza)\n        *pxa = aZero;\n}\n\n/***************************************************************************\n\n    Get the actor's event lifetime\n    Update nfrm values for all events\n    Return false if the actor has not yet been placed in time\n    pnfrmLast may be pvNil\n\n***************************************************************************/\nbool ACTR::FGetLifetime(long *pnfrmFirst, long *pnfrmLast)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pnfrmFirst);\n    AssertNilOrVarMem(pnfrmLast);\n\n    if (klwMax == _nfrmFirst)\n        return fFalse;\n\n    if (pvNil != pnfrmFirst)\n        *pnfrmFirst = _nfrmFirst;\n\n    if (pvNil == pnfrmLast)\n        return fTrue;\n\n    if (!_fLifeDirty)\n    {\n        *pnfrmLast = _nfrmLast;\n        Assert(_nfrmLast >= _nfrmFirst, \"fLifeDirty incorrect\");\n        return fTrue;\n    }\n\n    if (!_FComputeLifetime(pnfrmLast))\n        PushErc(ercSocBadFrameSlider);\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Compute the actor's event lifetime\n    Update nfrm values for all events.\tRecording or rerecording pushes\n    out later subroutes, whereas recording off screen followed by an earlier\n    add does not - note therefore that when roll calling invisible actors,\n    the end of the existing subroute must first be truncated.\n\n    On a false return, it is possible that the template could not be\n    accessed, so the update is incomplete.\n\n    pnfrmLast may be pvNil\n    NOTE: Now that by spec, edits do not cross subroute boundaries,\n    performance optimization can be achieved by storing the\n    index if the first aev edited when _fLifeDirty is set.\n\n    Note: There is some amount of redundant checking here now\n    that subroutes are now step=0 terminated.  Zero termination implies that\n    fEndSubRoute should be false, as actors should not be attempting to move\n    past the end of their paths.  Note that FIsStalled() now flags the end\n    of step=0 terminated subroutes; stalls mid path should now be impossible\n    as by spec, motion fill now inherits the original movement along the path.\n\n***************************************************************************/\nbool ACTR::_FComputeLifetime(long *pnfrmLast)\n{\n    AssertBaseThis(0);\n    AssertNilOrVarMem(pnfrmLast);\n\n    long iaev;\n    long iaevAdd;\n    BRS dwr;\n    AEV aev;\n    AEV *paev;\n    RTEL rtel;\n    bool fFreezeThisCel;\n    long anid = 0;\n    long celn = 0;\n    long nfrmPrevSub = 0;\n    BRS rScale = rOne;\n    BRS dwrStep = rZero;\n    bool fEndSubRoute = fFalse;  // moving past end of subroute (see Note above)\n    bool fDoneSubRoute = fFalse; // finished processing events on the current subroute\n\n    // While recording, delay the upcoming lifetime calculation\n    if (_fModeRecord)\n    {\n        if (pnfrmLast != pvNil)\n            *pnfrmLast = _nfrmLast;\n        _fLifeDirty = fTrue;\n        return fTrue;\n    }\n\n    // Locate final subroute\n    rtel.irpt = 0;\n    rtel.dwrOffset = rZero;\n    rtel.dnfrm = -1;\n    iaevAdd = -1;\n    // REVIEW *****(SeanSe): Why not start at the end and go backwards?\n    for (iaev = 0; iaev < _pggaev->IvMac(); iaev++)\n    {\n        paev = (AEV *)_pggaev->QvFixedGet(iaev);\n        if (aetAdd == paev->aet)\n            iaevAdd = iaev;\n    }\n\n    if (iaevAdd < 0)\n    {\n        _nfrmLast = _nfrmFirst;\n        if (pvNil != pnfrmLast)\n            *pnfrmLast = _nfrmFirst;\n        _fLifeDirty = fFalse;\n        return fTrue;\n    }\n\n    // Loop through each frame\n    long fFrozen = fFalse;\n    long iaevNew = 0;\n    RTEL rtelOld = rtel;\n    rtelOld.dnfrm = rtel.dnfrm - 1;\n    for (_nfrmLast = _nfrmFirst; ((rtel.irpt != _pglrpt->IvMac()) || (iaevNew != _pggaev->IvMac())); _nfrmLast++)\n    {\n        fFreezeThisCel = fFrozen;\n        rtelOld = rtel;\n        // Find distance to move\n        // An aetActn event later in this same frame can modify this.\n        if (kdwrNil == dwrStep)\n        {\n            if (!_ptmpl->FGetDwrActnCel(anid, celn, &dwr))\n            {\n                _fLifeDirty = fTrue;\n                return fFalse;\n            }\n        }\n        else\n        {\n            dwr = dwrStep;\n        }\n        dwr = BrsMul(dwr, rScale);\n        _AdvanceRtel(dwr, &rtel, iaevNew, _nfrmLast, &fEndSubRoute);\n\n        // Scan all events for this frame\n        for (iaev = iaevNew; iaev < _pggaev->IvMac(); iaev++)\n        {\n            _pggaev->GetFixed(iaev, &aev);\n\n            if ((aev.rtel > rtel) &&\n                ((aetAdd != aev.aet) || (_fModeRecord && !fEndSubRoute) || (!fEndSubRoute && !fDoneSubRoute)))\n            {\n                // To push out subroutes, do not process add events until finished\n                // with the previous subroute\n                goto LEndFrame;\n            }\n\n            switch (aev.aet)\n            {\n            case aetAdd:\n                fFreezeThisCel = fTrue;\n                anid = celn = 0;\n                if (aev.nfrm > _nfrmLast)\n                {\n                    goto LEndFrame;\n                }\n                else\n                {\n                    rtel = aev.rtel;\n                    fDoneSubRoute = fEndSubRoute = fFalse;\n                    nfrmPrevSub = _nfrmLast;\n                }\n                break;\n\n            case aetTweak:\n            case aetSnd:\n            case aetRem:\n            case aetCost:\n            case aetRotF:\n            case aetRotH:\n            case aetPull:\n            case aetMove:\n                break;\n\n            case aetFreeze:\n                long ffriz;\n                _pggaev->Get(iaev, &ffriz);\n                fFrozen = FPure(ffriz);\n                break;\n\n            case aetSize: // Uniform size transformation\n                // Adjust step size : affects actor lifetime\n                _pggaev->Get(iaev, &rScale);\n                break;\n\n            case aetActn:\n                AEVACTN aevactn;\n\n                _pggaev->Get(iaev, &aevactn);\n                anid = aevactn.anid;\n                celn = aevactn.celn;\n                fFrozen = fFalse;\n                fFreezeThisCel = fTrue;\n                break;\n\n            case aetStep:\n                _pggaev->Get(iaev, &dwrStep);\n                break;\n\n            default:\n                Assert(0, \"Unknown event type\");\n                break;\n            }\n\n            if (aev.rtel > rtel)\n                goto LEndFrame;\n\n            if (aev.nfrm != _nfrmLast)\n            {\n                aev.nfrm = _nfrmLast;\n                _pggaev->PutFixed(iaev, &aev);\n            }\n        }\n\n    LEndFrame:\n\n        // Stepsize and lifetime is a function of celn's\n        if (!fFreezeThisCel && !(fEndSubRoute && _FIsDoneAevSub(iaev, rtel)))\n        {\n            celn++;\n        }\n\n        // Check for end of subroute or stalled actor (eg breathe in place forever)\n#ifdef BUG1960\n        // We are not finished updating events in the current subpath until we are either\n        // - beyond the subroute (fEndSubRoute)\n        // - out of events\n        // - stopped with no way to reach more events in the subpath (ie, stalled)\n        //   and finished updating later events at this same path location\n        if (fEndSubRoute ||\n            (dwrStep == rZero &&\n             (iaev == _pggaev->IvMac() ||\n              (!(aev.rtel.irpt == rtel.irpt && aev.rtel.dwrOffset == rtel.dwrOffset) && _FIsStalled(iaevNew, &rtel)))))\n#else  //! BUG1960\n        if (fEndSubRoute || ((dwrStep == rZero) && (iaev == _pggaev->IvMac() || _FIsStalled(iaevNew, &rtel))))\n#endif //! BUG1960\n        {\n            if (!fDoneSubRoute)\n                nfrmPrevSub = _nfrmLast;\n            fDoneSubRoute = fTrue;\n\n            // Are there more subroutes?\n            if (!_FFindNextAevAet(aetAdd, iaev, &iaev))\n            {\n                // For non-static motions, fEndSubRoute is set once the actor is\n                // beyond the end of the subroute.  Adjust back one frame.\n                if (fEndSubRoute && (dwrStep != rZero) && (_nfrmLast > _nfrmFirst))\n                    _nfrmLast--;\n\n                if (pvNil != pnfrmLast)\n                    *pnfrmLast = _nfrmLast;\n                _fLifeDirty = fFalse;\n                return fTrue;\n            }\n\n            // Add events jump in space.  Update rtel\n            _pggaev->GetFixed(iaev, &aev);\n            rtel = aev.rtel;\n\n            // Initialization for _AdvanceRtel()\n            anid = celn = 0;\n            rtel.dnfrm--;\n        }\n\n        iaevNew = iaev;\n    }\n\n    Assert(0, \"Logic error\");\n    if (pvNil != pnfrmLast)\n        *pnfrmLast = _nfrmLast;\n    return fFalse;\n}\n\n/***************************************************************************\n\n    An actor is said to be stalled if more route exists, the step size is\n    ever zero with no subsequent nonzero step size to follow.\n\n    Determine whether an actor is stalled on a subroute\n    Input: IaevFirst is\tthe first event to check on the subroute.\n        *prtel is the route point to test for stalling\n    Return fFalse if not stalled.\n    If stalled, return the last active event.\n***************************************************************************/\nbool ACTR::_FIsStalled(long iaevFirst, RTEL *prtel, long *piaevLast)\n{\n    AssertBaseThis(0);\n    AssertIn(iaevFirst, 0, _pggaev->IvMac());\n    AssertNilOrVarMem(piaevLast);\n\n    AEV aev;\n    long iaev;\n\n    for (iaev = iaevFirst; iaev < _pggaev->IvMac(); iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if ((aev.rtel.irpt > prtel->irpt) || (aev.rtel.dwrOffset > prtel->dwrOffset))\n        {\n            if (piaevLast != pvNil)\n            {\n                *piaevLast = iaev;\n            }\n            return fTrue;\n        }\n\n        if ((aev.rtel.irpt == prtel->irpt) && (aev.rtel.dwrOffset == prtel->dwrOffset))\n        {\n            if (aetStep == aev.aet)\n            {\n                BRS dwrAev;\n                _pggaev->Get(iaev, &dwrAev);\n                if (rZero != dwrAev)\n                    return fFalse;\n            }\n        }\n    }\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Has the mouse been down long enough or moved far enough to qualify this\n    as a valid recording session (vs merely motion filling)?\n\n    NOTE:  ** If sufficient time has not elapsed, intended motion fill will\n    inadvertently delete the remaining subroute\tis record is selected\n    instead of rerecord.\n\n    NOTE:  ** This requires that SetTsInsert() have been called on mouse\n    down to initialize the timing of the recording session\n\n***************************************************************************/\nbool ACTR::FIsRecordValid(BRS dxr, BRS dyr, BRS dzr, ulong tsCurrent)\n{\n    AssertThis(0);\n\n    if (_fModeRecord)\n        return fTrue;\n\n    BRS dwrMouse;\n\n    // Is this truly a motion fill or is there sufficient time or\n    // distance travelled to make this an authentic route record?\n    dwrMouse = BR_LENGTH3(dxr, dyr, dzr);\n\n    if ((dwrMouse < kdwrThreshRte) && ((tsCurrent - _tsInsert) < kdtsThreshRte))\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Begin a new route\n    fReplace = ftrue if recording, fFalse if rerecording\n    On failure, actor is restored from pactrRestore\n\n***************************************************************************/\nbool ACTR::FBeginRecord(ulong tsCurrent, bool fReplace, PACTR pactrRestore)\n{\n    AssertThis(0);\n    Assert(tsCurrent >= 0, \"Invalid type\");\n\n    RPT rpt;\n    AEV aev;\n    long iaev;\n    long nfrmAdd;\n    long nfrmPrev;\n    bool fClosestSubrte = fTrue;\n\n    _pglrpt->Get(_rtelCur.irpt, &rpt);\n    _fPathInserted = fFalse;\n\n    // Do not rejoin to a one point offstage stub.\n    _fRejoin = !fReplace && !(rZero == rpt.dwr);\n    if (_fRejoin)\n    {\n        long iaev;\n        AEV aev;\n\n        long irptNext = _rtelCur.irpt + 1;\n\n        for (iaev = _iaevCur; iaev < _pggaev->IvMac(); iaev++)\n        {\n            _pggaev->GetFixed(iaev, &aev);\n            if (irptNext < aev.rtel.irpt)\n                break;\n            if (aetRem == aev.aet)\n            {\n                _fRejoin = fFalse;\n                _RemoveAev(iaev);\n                iaev--;\n                _AdjustAevForRteDel(irptNext, _iaevCur);\n                _pglrpt->Delete(irptNext);\n            }\n        }\n    }\n\n    // Recording must advance from the current point -> potentially\n    // inserting the current point\n    if (rZero != _rtelCur.dwrOffset)\n    {\n        BRS dwrCur = _rtelCur.dwrOffset;\n        _GetXyzFromRtel(&_rtelCur, &rpt.xyz);\n        _rtelCur.irpt++;\n        _rtelCur.dwrOffset = rZero;\n        _rtelCur.dnfrm = 0;\n        if (!_FInsertGgRpt(_rtelCur.irpt, &rpt, dwrCur))\n            goto LFail;\n        _GetXyzFromRtel(&_rtelCur, &_xyzCur);\n        _AdjustAevForRteIns(_rtelCur.irpt, 0);\n    }\n\n    // Determine the gaps between subroutes\n    _dnfrmGap = 0;\n    iaev = _iaevCur;\n    if (_fLifeDirty)\n    {\n        // Validate future nfrm values\n        if (!_FComputeLifetime())\n        {\n            PushErc(ercSocBadFrameSlider);\n            goto LFail;\n        }\n    }\n\n    for (iaev = _iaevCur; iaev < _pggaev->IvMac(); iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if (aev.aet != aetAdd)\n            continue;\n        nfrmAdd = aev.nfrm;\n        if (fClosestSubrte)\n        {\n            nfrmPrev = _nfrmCur;\n            fClosestSubrte = fFalse;\n        }\n        else\n        {\n            _pggaev->GetFixed(iaev - 1, &aev);\n            nfrmPrev = aev.nfrm;\n        }\n        _dnfrmGap -= (nfrmAdd - nfrmPrev);\n    }\n\n    _rtelInsert = _rtelCur;\n    _fModeRecord = fTrue;\n    _dxyzRaw.dxr = rZero;\n    _dxyzRaw.dyr = rZero;\n    _dxyzRaw.dzr = rZero;\n    return fTrue;\n\nLFail:\n    _RestoreFromUndo(pactrRestore);\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Add to a new route\n\n    On Input:\n    grfmaf flags the Frozen/unfrozen state.\n    *pfStepFrm returns whether the frame was advanced\n    *pfStepRte returns whether the route was extended.\n\n    Note: During recording, dwr = rZero marks the end of the new subroute\n    NOTE: On failure, actor is restored from pactrRestore\n\n***************************************************************************/\nbool ACTR::FRecordMove(BRS dxr, BRS dyr, BRS dzr, ulong grfmaf, ulong tsCurrent, bool *pfStepFrm, bool *pfStepRte,\n                       PACTR pactrRestore)\n{\n    AssertThis(0);\n    AssertVarMem(pfStepFrm);\n    AssertVarMem(pfStepRte);\n\n    RPT rptCur;\n    XYZ xyzMouse;\n    XYZ dxyzT;\n    BRS dwrCur;\n    RPT rptNew;\n    BRS rFractMoved;\n    BRS dwrMouse;\n\n    Assert(_fOnStage, \"Recording an actor that wasn't selectable??\");\n    if (!_fModeRecord)\n        return fTrue; // Potential client call on motion fill\n\n    if (!_pggaev->FEnsureSpace(2, kcbVarStep + kcbVarFreeze, fgrpNil) || !_pglrpt->FEnsureSpace(1, fgrpNil))\n    {\n        goto LFail;\n    }\n\n    // Smooth the unpruned raw mouse movement *before* we create the path\n    dxyzT.dxr = dxr;\n    dxyzT.dyr = dyr;\n    dxyzT.dzr = dzr;\n    dxr = BR_CONST_DIV(BrsAdd(_dxyzRaw.dxr, BR_CONST_MUL(2, dxr)), 3);\n    dyr = BR_CONST_DIV(BrsAdd(_dxyzRaw.dyr, BR_CONST_MUL(2, dyr)), 3);\n    dzr = BR_CONST_DIV(BrsAdd(_dxyzRaw.dzr, BR_CONST_MUL(2, dzr)), 3);\n\n    if (_fFrozen && !(grfmaf & fmafFreeze))\n        AssertDo(_FUnfreeze(), \"Ensurespace should have ensured space\");\n    if (!_fFrozen && (grfmaf & fmafFreeze))\n        AssertDo(_FFreeze(), \"Ensurespace should have ensured space\");\n\n    if (pvNil != pfStepFrm)\n        *pfStepFrm = fFalse;\n    if (pvNil != pfStepRte)\n        *pfStepRte = fFalse;\n\n    // Update distance from previously current point\n    Assert(_pglrpt->IvMac() > 0, \"Illegal empty path\");\n\n    // In record mode, know prev point on a route Node\n    // Determine if threshhold distance has been advanced\n    _pglrpt->Get(_rtelCur.irpt, &rptCur);\n    xyzMouse.dxr = BrsAdd(dxr, rptCur.xyz.dxr);\n    xyzMouse.dyr = BrsAdd(dyr, rptCur.xyz.dyr);\n    xyzMouse.dzr = BrsAdd(dzr, rptCur.xyz.dzr);\n    dwrMouse = BR_LENGTH3(dxr, dyr, dzr);\n\n    if (!_FGetDwrRecord(&dwrCur))\n        goto LFail;\n\n    if (dwrMouse < dwrCur)\n    {\n        if ((tsCurrent - _tsInsert) < kdtsThreshRte)\n        {\n            // Insufficient length and insufficient time to record a point\n            return fTrue;\n        }\n\n        if (rZero != _dwrStep)\n        {\n            AssertDo(FSetStep(rZero), \"EnsureSpace insufficient\");\n        }\n\n        _fPathInserted = fTrue;\n        if (pvNil != pfStepFrm)\n        {\n            *pfStepFrm = fTrue;\n        }\n        if (!_pscen->FGotoFrm(_pscen->Nfrm() + 1))\n            goto LFail;\n        return fTrue;\n    }\n\n    _tsInsert = tsCurrent;\n    _dxyzRaw = dxyzT;\n\n    //\n    // Insert new point.  (Overlays last point if offstage)\n    // Length is sufficient.  Truncate to correct step size\n    //\n    rFractMoved = BrsDiv(dwrCur, dwrMouse);\n    Assert(rZero != dwrCur, \"Zero length step illegal in FRecordMove\");\n\n    _GetXyzOnLine(&rptCur.xyz, &xyzMouse, rFractMoved, &rptNew.xyz);\n    rptNew.dwr = rZero;\n\n    // Adjust the point for ground zero.  The rule is if the mouse\n    // is decreasing from above to below ground, stop at ground level\n    // The original dwr is used *by design*\n    if ((grfmaf & fmafGround) && (BrsAdd(rptCur.xyz.dyr, _dxyzRte.dyr) >= rZero) &&\n        (BrsAdd(rptNew.xyz.dyr, _dxyzRte.dyr) < rZero))\n    {\n        rptNew.xyz.dyr = -_dxyzRte.dyr;\n    }\n\n    if (!_pglrpt->FInsert(1 + _rtelCur.irpt, &rptNew))\n        goto LFail;\n\n    if (kdwrNil != _dwrStep)\n    {\n        AssertDo(FSetStep(kdwrNil), \"EnsureSpace insufficient\");\n    }\n\n    // Reset distance in previous xyz entry\n    rptCur.dwr = dwrCur;\n    Assert(dwrCur != rZero, \"Bug in InsertRoute\");\n    _pglrpt->Put(_rtelCur.irpt, &rptCur);\n\n    _AdjustAevForRteIns(1 + _rtelCur.irpt, _iaevCur);\n    _fPathInserted = fTrue;\n\n    if (pvNil != pfStepFrm)\n        *pfStepFrm = fTrue;\n    if (pvNil != pfStepRte)\n        *pfStepRte = fTrue;\n\n    _dnfrmGap++;\n    if (_dnfrmGap > 0)\n        _nfrmLast++;\n\n    if (_pscen->FGotoFrm(_pscen->Nfrm() + 1))\n        return fTrue;\n\nLFail:\n    _RestoreFromUndo(pactrRestore);\n    return fFalse;\n}\n\n/***************************************************************************\n\n    End recording a new route or route section\t(mouse up)\n    Insert a freeze event if at the end of the subroute.\n\n    Input: fReplace is meaningful only if recording or rerecording (versus\n    motion fill.  _fModeRecord is false on motion fill).\n    fReplace = fTrue if recording, ie, if replacing the remaining subroute\n\n    Path splicing rule:  Never rejoin across Add events\n    Always reconnect to the existing subroute at the closest point which\n    occurs later in the route than where the initial re-recording began.\n\n    NOTE** Actn, Tweak, Freeze, Step & Rem events are deleted from the\n    section of the route being replaced.  Other events are pushed up to\n    the join point (if rejoining) or to the next dnfrm of the current point,\n    if not rejoining.\n\n    On Failure: The actor is restored from pactrRestore\n***************************************************************************/\n// REVIEW *****(*****): Ver 2.0 As motion fill is self sufficient,\n// \t\tFEndRecord() should be able to exit immediately on !_fModeRecord.\n//   \tAlso, pactrRestore should be state var _pactrRecordRestore.\nbool ACTR::FEndRecord(bool fReplace, PACTR pactrRestore)\n{\n    AssertThis(0);\n\n    AEV aev;\n    BRS dwr;\n    long iaev;\n    long irpt;\n    RPT rpt;\n    RPT rptJoin;\n    RPT rptCur;\n    BRS dwrMin = kdwrMax;\n    RTEL rtelJoin = _rtelCur;\n    bool fJoin = fFalse;\n    long irptLim = _pglrpt->IvMac();\n    long iaevJoinFirst = _iaevCur;\n    long iaevNew;\n\n    // Determine whether to rejoin to the path\n    // REVIEW (*****): Can we assert _fOnStage?\n    if (_fModeRecord && (!_fOnStage || fReplace))\n    {\n        // Delete remnant path\n        _DeleteFwdCore(fFalse, pvNil, _iaevCur);\n        if (!_FFreeze())\n            goto LFail;\n        if (!FSetStep(rZero))\n            goto LFail;\n        goto LEndRecord;\n    }\n\n    //\n    // Motion Fill or Path-rejoining\n    //\n    // _fModeRecord == fFalse on motion fill\n    if (!_fModeRecord || !_fPathInserted || !_fOnStage)\n    {\n        // Set Action necessarily destroys end of path freeze events\n        // Reinsert an end of path freeze event\tif at end of subroute\n        if (_FIsDoneAevSub(_iaevCur, _rtelCur))\n        {\n            if (!_FFreeze())\n                goto LFail;\n        }\n        goto LEndRecord; // Nothing inserted\n    }\n\n    // On !fReplace, force continuation to remainder of route.\n    if (rZero == _dwrStep)\n    {\n        if (!FSetStep(kdwrNil))\n            goto LFail;\n    }\n\n    if (!_fRejoin)\n    {\n        // Gather the events at later time for the current path point\n        // Equivalent to setting the join time ahead\n        rtelJoin.dnfrm = 1;\n    }\n    else\n    {\n        Assert((_rtelCur.irpt < _pglrpt->IvMac() - 1), \"Not enough points to rejoin\");\n\n        for (iaev = _iaevCur; iaev < _pggaev->IvMac(); iaev++)\n        {\n            _pggaev->GetFixed(iaev, &aev);\n            if (aev.aet == aetAdd)\n            {\n                irptLim = aev.rtel.irpt;\n                break;\n            }\n        }\n\n        // Locate the Join node\n        rtelJoin.irpt = _rtelCur.irpt + 1;\n        rtelJoin.dwrOffset = rZero;\n        rtelJoin.dnfrm = 0;\n        for (irpt = 1 + _rtelCur.irpt; irpt < irptLim; irpt++)\n        {\n            _pglrpt->Get(irpt, &rpt);\n            dwr = BR_LENGTH3(BrsSub(_xyzCur.dxr, rpt.xyz.dxr), BrsSub(_xyzCur.dyr, rpt.xyz.dyr),\n                             BrsSub(_xyzCur.dzr, rpt.xyz.dzr));\n            if (dwr < dwrMin)\n            {\n                dwrMin = dwr;\n                rtelJoin.irpt = irpt;\n            }\n\n            // Do not join across subroutes\n            if (rZero == rpt.dwr)\n                break;\n        }\n\n        Assert(rtelJoin > _rtelCur, \"Invalid Join point\");\n        Assert(rZero == _rtelCur.dwrOffset, \"_rtelCur invalid\");\n\n        // Update the dwr of the most recently recorded point to be\n        // the length to the join point on the path\n        // NOTE: This cannot be zero (it would signal end of path)\n        _pglrpt->Get(_rtelCur.irpt, &rptCur);\n        _pglrpt->Get(rtelJoin.irpt, &rptJoin);\n        rptCur.dwr = BR_LENGTH3(BrsSub(_xyzCur.dxr, rptJoin.xyz.dxr), BrsSub(_xyzCur.dyr, rptJoin.xyz.dyr),\n                                BrsSub(_xyzCur.dzr, rptJoin.xyz.dzr));\n\n        if (rZero == rptCur.dwr)\n        {\n            // Prevent pathological end-of-route case\n            rptCur.dwr = rEps;\n        }\n        _pglrpt->Put(_rtelCur.irpt, &rptCur);\n    }\n\n    //\n    // Note: Motion fill exited earlier.  This is rejoin-recording only (which\n    // may or may not actually have a path point to rejoin to).\n    // Move displaced events forward to the join point\n    // Spec: Replace is viewed in UI as Action replace, not just path replace.\t->\n    // Delete intervening action, tweak, freeze, step and rem events.\n    //\n    for (iaev = _iaevCur; iaev < _pggaev->IvMac(); iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n\n#ifdef BUG1961\n        // If we were rejoin-recording from a static segment, there is\n        // no point to rejoin to (-> _fRejoin is fFalse).  So gather\n        // events up to but not beyond the next add event.\n        if (aev.aet == aetAdd || (_fRejoin && aev.rtel >= rtelJoin))\n#else\n        if (_fRejoin && aev.rtel >= rtelJoin)\n#endif //! BUG1961\n        {\n            break;\n        }\n\n        if (aev.rtel > _rtelInsert)\n        {\n            if (aev.aet == aetTweak || aev.aet == aetStep || aev.aet == aetRem || aev.aet == aetActn ||\n                aev.aet == aetFreeze)\n            {\n                _RemoveAev(iaev);\n                iaev--;\n                continue;\n            }\n            else\n            {\n                aev.rtel = rtelJoin;\n                _pggaev->PutFixed(iaev, &aev);\n                _MergeAev(iaevJoinFirst, iaev, &iaevNew);\n                if (iaevNew < iaev)\n                    iaev--;\n            }\n        }\n    }\n\n    if (_fRejoin)\n    {\n        // Delete the path segment before the join point\n        for (irpt = rtelJoin.irpt - 1; irpt > _rtelCur.irpt; irpt--)\n        {\n            _AdjustAevForRteDel(irpt, _iaevCur);\n            _pglrpt->Delete(irpt);\n        }\n\n        // Spec: Do an action fill forward.\n        _PrepActnFill(iaevJoinFirst, _anidCur, _anidCur, faetTweak | faetFreeze | faetActn);\n    }\n\n#ifdef BUG1961\n    if (!fReplace && !_fRejoin)\n    {\n        if (!_FFreeze())\n            goto LFail;\n        if (!FSetStep(rZero))\n            goto LFail;\n    }\n#endif // BUG1961\n\nLEndRecord:\n    _fLifeDirty = fTrue;\n#ifdef BUG1973\n    _fRejoin = fFalse;\n#endif // BUG1973\n    _fModeRecord = fFalse;\n    _pscen->MarkDirty();\n    _pscen->InvalFrmRange();\n    AssertThis(fobjAssertFull);\n    return fTrue;\n\nLFail:\n    _RestoreFromUndo(pactrRestore);\n#ifdef BUG1973\n    _fRejoin = fFalse;\n#endif\n    _fModeRecord = fFalse; // Redundant safety net\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Delete the path and events beyond this frame - and -\n    Insert a Freeze event to terminate the truncated event list\n\n***************************************************************************/\nvoid ACTR::DeleteFwdCore(bool fDeleteAll, bool *pfAlive, long iaevCur)\n{\n    AssertThis(0);\n\n    bool fAlive;\n    long iaev;\n    AEV aev;\n\n    _DeleteFwdCore(fDeleteAll, &fAlive, iaevCur);\n\n    if (fAlive && _nfrmCur >= _nfrmFirst)\n    {\n        // If no space exists, truncation isn't changing a thing\n        if (_pggaev->FEnsureSpace(2, kcbVarFreeze + kcbVarStep, fgrpNil))\n        {\n#ifdef BUG1932\n            if (_iaevAddCur < 0 || _pggaev->IvMac() == 0)\n            {\n                // Safety net code : don't add events if bug exists\n                Bug(\"Invalid fAlive value\");\n                goto LEnd;\n            }\n#ifdef DEBUG\n            _pggaev->GetFixed(_iaevAddCur, &aev);\n            Assert(aetAdd == aev.aet, \"Should be an add event at _iaevAddCur\");\n#endif // DEBUG\n            if (_fOnStage)\n            {\n                // Insert terminating events ONLY if the actor is shown, not hidden\n                AssertDo(_FFreeze(), \"Expected freeze event to succeed\");\n                AssertDo(FSetStep(rZero), \"Expected set step event to succeed\");\n            }\n            else\n                goto LEnd;\n#else  // BUG1932\n            AssertDo(_FFreeze(), \"Expected freeze event to succeed\");\n            AssertDo(FSetStep(rZero), \"Expected set step event to succeed\");\n#endif //! BUG1932\n       // By construct, step events SET the location of display\n       // Tweak events override the last step event.\n            for (iaev = _iaevCur - 1; iaev > 0; iaev--)\n            {\n                _pggaev->GetFixed(iaev, &aev);\n                if (aev.rtel != _rtelCur)\n                    break;\n                if (aev.aet == aetTweak)\n                {\n                    _pggaev->Swap(iaev, _iaevCur - 1);\n                    break;\n                }\n            }\n        }\n    }\n\nLEnd:\n    if (pvNil != pfAlive)\n        *pfAlive = fAlive;\n}\n\n/***************************************************************************\n\n    Delete the path and events beyond this frame\n    **NOTE:  This does not send the actor offstage.\tSee FRemFromStageCore.\n    NOTE: While _fLifeDirty flags needed lifetime recomputation, scene's\n    InvalFrmRange() is _not_ called due to the special artifact of the\n    frame slider being spec'd to show extensions but not reductions.\n\n    On Input:\n        fDeleteAll specifies full route vs subroute deletion\n        If one frame was backed up before the delete, iaevCur is the\n        current event before the backup (else ivNil).\n    Returns *pfAlive = false if all events and route for this actor\n    have been deleted\n\n***************************************************************************/\nvoid ACTR::_DeleteFwdCore(bool fDeleteAll, bool *pfAlive, long iaevCur)\n{\n    AssertThis(0);\n\n    long iaev, iaevDelLim;\n    long irpt, irptDelLim;\n    long irptDelFirst;\n    RPT rpt;\n    AEV *paev;\n\n    if (ivNil == iaevCur)\n        iaevCur = _iaevCur;\n\n#ifndef BUG1870\n    // Delete this section of code: Placement orientation should no\n    // \t\tlonger be overwritten.\n    // Preserve the current orientation\n    if (_iaevAddCur >= 0)\n    {\n        // If we are reducing the current subroute to a single point,\n        // it is necessary to store the current orientation for wysiwyg\n        paev = (AEV *)_pggaev->QvFixedGet(_iaevAddCur);\n        if (paev->nfrm == _nfrmCur)\n            _SaveCurPathOrien();\n    }\n#endif //! BUG1870\n\n    // If !fDeleteAll & only one subroute left, redefine fDeleteAll\n    iaevDelLim = _pggaev->IvMac();\n    irptDelLim = _pglrpt->IvMac();\n    if (!fDeleteAll)\n    {\n        fDeleteAll = fTrue;\n        for (iaev = iaevCur; iaev < _pggaev->IvMac(); iaev++)\n        {\n            paev = (AEV *)_pggaev->QvFixedGet(iaev);\n            if (aetAdd == paev->aet)\n            {\n                fDeleteAll = fFalse;\n                irptDelLim = paev->rtel.irpt;\n                iaevDelLim = iaev;\n                break;\n            }\n        }\n    }\n\n    // Remove events beyond the current one\n    // excluding the last freeze event\n    if (0 < iaevDelLim)\n    {\n        for (iaev = iaevDelLim - 1; iaev >= _iaevCur; iaev--)\n        {\n            _RemoveAev(iaev);\n            _fLifeDirty = fTrue;\n        }\n    }\n\n    // Prune the corresponding route\n    irptDelFirst = _rtelCur.irpt + 1;\n    if (0 < irptDelLim)\n    {\n        // Note: Last remaining point on path is dependent on the event stream\n        if (_iaevCur <= 0 && fDeleteAll)\n        {\n            _pglrpt->FSetIvMac(0);\n            _fLifeDirty = fTrue;\n            _rtelCur.irpt = -1;\n            goto LDone;\n        }\n        else\n        {\n            // Delete the current path node only if no other events\n            // use the same node\n            if (_rtelCur.dwrOffset > rZero)\n            {\n                // Shorten the distance between the last two nodes\n                _TruncateSubRte(irptDelLim);\n                irptDelFirst++;\n            }\n            else\n            {\n                // Delete remaining subroute\n                for (irpt = irptDelLim - 1; irpt >= irptDelFirst; irpt--)\n                {\n                    _AdjustAevForRteDel(irpt, 0);\n                    _pglrpt->Delete(irpt);\n                    _fLifeDirty = fTrue;\n                }\n            }\n        }\n\n        // Adjust the distance on the tail point\n        if (_rtelCur.irpt >= 0)\n        {\n            Assert(_pglrpt->IvMac() > 0, \"Logic Error\");\n            _pglrpt->Get(_rtelCur.irpt, &rpt);\n            rpt.dwr = rZero;\n            _pglrpt->Put(_rtelCur.irpt, &rpt);\n        }\n    }\n\nLDone:\n    _pscen->MarkDirty();\n    if (_nfrmCur < _nfrmFirst)\n    {\n        if (fDeleteAll)\n        {\n            if (pvNil != pfAlive)\n                *pfAlive = fFalse;\n            _InitState();\n            return;\n        }\n        else if (_pggaev->IvMac() > 0)\n        {\n            paev = (AEV *)_pggaev->QvFixedGet(0);\n            _nfrmFirst = paev->nfrm;\n            Assert(aetAdd == paev->aet, \"Bug in ACTR::DeleteFwdCore\");\n        }\n    }\n\n    if (pvNil != pfAlive)\n        *pfAlive = fTrue;\n\n    return;\n}\n\n/***************************************************************************\n\n    Save the path specific part of the current orientation\n\n***************************************************************************/\nvoid ACTR::_SaveCurPathOrien(void)\n{\n    AssertBaseThis(0);\n\n    RPT rpt;\n    AEV aev;\n    ulong grfbra = 0;\n\n    if (_iaevAddCur >= 0 && !_ptmpl->FIsTdt())\n    {\n        _pggaev->GetFixed(_iaevAddCur, &aev);\n        _pglrpt->Get(aev.rtel.irpt, &rpt);\n        if (rZero != rpt.dwr) // ie, non-static path segment\n        {\n            // _xfrm.waPath is current and CalcRteOrient() cannot be called\n            // in all cases\n            SetAddOrient(_xfrm.xaPath, _xfrm.yaPath, _xfrm.zaPath, grfbra);\n        }\n    }\n}\n\n/***************************************************************************\n\n    Delete the path and events prior to this frame\n\n***************************************************************************/\nvoid ACTR::DeleteBackCore(bool *pfAlive)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pfAlive);\n\n    long iaev;\n    long iaevNew;\n    AEV aev;\n    BRS dwrOffsetT;\n    BRS dwrNew;\n    BRS dwrOld;\n    RPT rptOld;\n    long dnrpt;\n\n    // Nop if not yet at first frame\n    if (_nfrmCur <= _nfrmFirst)\n    {\n        if (pvNil != pfAlive)\n            *pfAlive = FPure(_pggaev->IvMac() > 0);\n        return;\n    }\n\n    // We need to update the nfrm field in aetAdd events in order to update\n    // _nfrmFirst below.\n    if (_fLifeDirty && !_FComputeLifetime())\n    {\n        // Below the new _nfrmFirst will be wrong, but that means the actor\n        // will appear in the wrong frame (iff _fLifeDirty and the next subroute\n        // got moved).  Not much we can do about it.\n        PushErc(ercSocBadFrameSlider);\n    }\n\n    // If the current point is between nodes, a node will\n    // be inserted as the new first node of the subroute.\n    // Compute the dwr of the new node.\n    _pglrpt->Get(_rtelCur.irpt, &rptOld);\n    dwrOld = rptOld.dwr;\n    dwrNew = BrsSub(dwrOld, _rtelCur.dwrOffset);\n\n    // Preserve the current orientation\n    _SaveCurPathOrien();\n\n    // Adjust offsets for events occurring at points between the\n    // previous and next nodes\n    for (iaev = _iaevCur; iaev < _pggaev->IvMac(); iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if (aev.rtel.irpt > _rtelCur.irpt)\n            break;\n\n        if (aev.rtel.dwrOffset == _rtelCur.dwrOffset)\n        {\n            aev.rtel.dwrOffset = rZero;\n            if (aev.rtel.dnfrm < _rtelCur.dnfrm)\n            {\n                Bug(\"Event list out of order (dnfrm error)\");\n                aev.rtel.dnfrm = 0;\n            }\n            else\n            {\n                aev.rtel.dnfrm -= _rtelCur.dnfrm;\n            }\n        }\n\n        if (dwrNew == rZero)\n            aev.rtel.dwrOffset = rZero;\n        else\n        {\n            // Set the event's dwrOffset to the correct\n            // part of the new dwr\n            dwrOffsetT = BrsSub(aev.rtel.dwrOffset, _rtelCur.dwrOffset);\n            aev.rtel.dwrOffset = dwrOffsetT;\n        }\n        _pggaev->PutFixed(iaev, &aev);\n    }\n\n    //\n    // Alter the route's new first point to be _rtelCur.\n    // with the correct new dwr.  Then update _rtelCur.\n    //\n    _GetXyzFromRtel(&_rtelCur, &rptOld.xyz);\n    rptOld.dwr = dwrNew;\n    _pglrpt->Put(_rtelCur.irpt, &rptOld);\n    dnrpt = _rtelCur.irpt;\n    _rtelCur.dnfrm = 0;\n    _rtelCur.dwrOffset = rZero;\n    _rtelCur.irpt = 0;\n\n    //\n    // Merge the earlier events\n    // Update the necessary state variables\n    //\n    for (iaev = 0; iaev < _iaevCur; iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if (!_fOnStage || iaev < _iaevAddCur)\n        {\n            _RemoveAev(iaev);\n            iaev--;\n            continue;\n        }\n\n        switch (aev.aet)\n        {\n        case aetRotH:\n#ifdef BUG1870\n            // Supercede orient-rotate with current rotation\n            // \t\tso that static segment orientation will be preserved\n            // Note: events prior to _iaevFrmMin need to be included\n            // \t\tdue to orient-rotations lasting the lifetime of static\n            // \t\tsegments.\n            _pggaev->Put(iaev, &_xfrm.bmat34Cur);\n            goto LDefault;\n#endif // BUG1870\n        case aetTweak:\n        case aetSnd:\n            if (iaev < _iaevFrmMin)\n            {\n                _RemoveAev(iaev);\n                iaev--;\n                break;\n            }\n            if (iaev > 0)\n                goto LDefault;\n            break;\n\n        case aetActn:\n            AEVACTN aevactn;\n            _pggaev->Get(iaev, &aevactn);\n            aevactn.celn = _celnCur;\n            _pggaev->Put(iaev, &aevactn);\n            goto LDefault;\n\n        case aetRem:\n            _RemoveAev(iaev);\n            iaev--;\n            Bug(\"Offstage case should be already handled\");\n            break;\n\n        default:\n        LDefault:\n            aev.rtel = _rtelCur;\n            aev.nfrm = _nfrmCur;\n            _pggaev->PutFixed(iaev, &aev);\n            if (iaev > 0)\n                _MergeAev(0, iaev, &iaevNew);\n            else\n                iaevNew = iaev;\n\n            if (iaevNew < iaev)\n                iaev--;\n            if (aev.aet == aetAdd)\n                _iaevAddCur = iaevNew;\n            if (aev.aet == aetActn)\n                _iaevActnCur = iaevNew;\n            break;\n        }\n    }\n\n    //\n    // Adjust the irpt's of the later events\n    // Adjust the absolute beginning frame number\n    // Delete the first section of the route\n    // NOTE: There is no translation in time\n    //\n    if (dnrpt > 0)\n    {\n        // Delete the first section of the route\n        // If offstage, also delete the current point\n#ifdef BUG1866\n        if (!_fOnStage)\n            dnrpt++;\n#endif // BUG1866\n        for (iaev = _iaevCur; iaev < _pggaev->IvMac(); iaev++)\n        {\n            _pggaev->GetFixed(iaev, &aev);\n            aev.rtel.irpt -= dnrpt;\n            _pggaev->PutFixed(iaev, &aev);\n        }\n#ifndef BUG1866\n        if (!_fOnStage)\n            dnrpt++;\n#endif //! BUG1866\n        _pglrpt->Delete(0, dnrpt);\n    }\n\n    if (pvNil != pfAlive)\n        *pfAlive = FPure(_pggaev->IvMac() > 0);\n\n    if (_pggaev->IvMac() == 0)\n    {\n        _InitState();\n    }\n    else\n    {\n        // Adjust remaining state variables\n        _pggaev->GetFixed(0, &aev);\n        Assert(aev.aet == aetAdd, \"An aetAdd event should be the first event\");\n        _nfrmFirst = aev.nfrm;\n        _fLifeDirty = fTrue;\n        _iaevFrmMin = 0;\n    }\n\n    if (!_FComputeLifetime())\n        PushErc(ercSocBadFrameSlider);\n    _pscen->InvalFrmRange();\n\n    return;\n}\n\n/***************************************************************************\n\n    Truncate the last linear section of the subroute.\n    Make the current point a node.\n\n    Adjust event entries from the current rtel through events located\n    at irptDelLim.\n    Note:  This truncates the route only, not the event list.\n\n***************************************************************************/\nvoid ACTR::_TruncateSubRte(long irptDelLim)\n{\n    AssertBaseThis(0);\n\n    AEV aev;\n    long iaev;\n    RPT rptNode1;\n    RPT rptNode2;\n    long iaevLim = _iaevCur;\n    long irpt = _rtelCur.irpt;\n\n    if (_rtelCur.dwrOffset == rZero)\n        return;\n\n    // Store the new length between nodes\n    _pglrpt->Get(irpt, &rptNode1);\n    rptNode1.dwr = _rtelCur.dwrOffset;\n    _pglrpt->Put(irpt, &rptNode1);\n\n    // Move node 2 rather than inserting a node\n    _GetXyzFromRtel(&_rtelCur, &rptNode2.xyz);\n    rptNode2.dwr = rZero;\n    Assert(irpt + 1 < _pglrpt->IvMac(), \"Error in truncation\");\n    _pglrpt->Put(irpt + 1, &rptNode2);\n\n    // Update _rtelCur\n    _rtelCur.dnfrm = 0;\n    _rtelCur.dwrOffset = rZero;\n    _rtelCur.irpt++;\n\n    // Update aev's rtel's\n    for (iaev = _iaevCur - 1; iaev >= 0; iaev--)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if (aev.rtel.irpt < irpt)\n            break;\n        if (aev.rtel.dwrOffset >= rptNode1.dwr)\n        {\n            aev.rtel.dwrOffset = rZero;\n            aev.rtel.irpt++;\n            _pggaev->PutFixed(iaev, &aev);\n        }\n    }\n\n    // Delete remaining subroute\n    for (irpt = irptDelLim - 1; irpt > _rtelCur.irpt; irpt--)\n    {\n        _AdjustAevForRteDel(irpt, 0);\n        _pglrpt->Delete(irpt);\n        _fLifeDirty = fTrue;\n    }\n}\n\n/***************************************************************************\n\n    Is the mouse point within this actor.\n\n***************************************************************************/\nbool ACTR::FPtIn(long xp, long yp, long *pibset)\n{\n    AssertThis(0);\n    AssertVarMem(pibset);\n\n    return _pbody->FPtInBody(xp, yp, pibset);\n}\n\n/***************************************************************************\n\n    FMustRender.  Optimizaton: Is Rerendering necessary between _nfrmCur and\n    nfrmLast, exclusive of the current frame?\n    Returns fFalse only when rerendering *known* to be unnecessary.\n    Otherwise returns fTrue.\n\n***************************************************************************/\nbool ACTR::FMustRender(long nfrmRenderLast)\n{\n    AssertThis(0);\n    Assert(nfrmRenderLast >= _nfrmCur, \"Invalid argument to FMustRender\");\n    Assert(!_fLifeDirty, \"FMustRender was called when nfrm values were invalid\");\n\n    AEV *paev;\n    long iaev;\n\n    if (nfrmRenderLast == _nfrmCur)\n        goto LStill;\n    if (nfrmRenderLast < _nfrmFirst)\n        goto LStill;\n    if (_nfrmCur > _nfrmLast)\n        goto LStill;\n    if (_pglrpt->IvMac() == 0)\n        goto LStill;\n\n    // Intervening events?\tSounds don't affect rendering.\n    if (_iaevCur < _pggaev->IvMac())\n    {\n        paev = (AEV *)_pggaev->QvFixedGet(_iaevCur);\n        if (paev->nfrm <= nfrmRenderLast)\n        {\n            for (iaev = _iaevCur; iaev < _pggaev->IvMac(); iaev++)\n            {\n                paev = (AEV *)_pggaev->QvFixedGet(iaev);\n                if (paev->nfrm > nfrmRenderLast)\n                    break;\n                if (aetSnd == paev->aet)\n                    continue;\n                if (paev->nfrm < _nfrmLast)\n                    goto LMoving;\n                // Freeze and step events affect future frames\n                if (aetFreeze != paev->aet && aetStep != paev->aet)\n                    goto LMoving;\n            }\n        }\n    }\n\n    if (_dwrStep != rZero)\n        goto LMoving; // moving along path\n\n    // Not advancing, but moving in place?\n    if (_fFrozen || _ccelCur == 1)\n        goto LStill;\nLMoving:\n    return fTrue;\n\nLStill:\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Get actor name\n\n***************************************************************************/\nvoid ACTR::GetName(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    if (!_pscen->Pmvie()->FGetName(_arid, pstn))\n    {\n        Ptmpl()->GetName(pstn);\n    }\n}\n\n/***************************************************************************\n\n    Get actor world coordinates\n\n***************************************************************************/\nvoid ACTR::GetXyzWorld(BRS *pxr, BRS *pyr, BRS *pzr)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pxr);\n    AssertNilOrVarMem(pyr);\n    AssertNilOrVarMem(pzr);\n\n    XYZ xyz;\n\n    _GetXyzFromRtel(&_rtelCur, &xyz);\n\n    if (pvNil != pxr)\n        *pxr = BrsAdd(xyz.dxr, _dxyzRte.dxr);\n    if (pvNil != pyr)\n        *pyr = BrsAdd(xyz.dyr, _dxyzRte.dyr);\n    if (pvNil != pzr)\n        *pzr = BrsAdd(xyz.dzr, _dxyzRte.dyr);\n}\n\n/***************************************************************************\n\n    Hilite the actor\n\n***************************************************************************/\nvoid ACTR::Hilite(void)\n{\n    AssertThis(0);\n\n    BODY::SetHiliteColor(_fTimeFrozen ? kiclrTimeFreezeHilite : kiclrNormalHilite);\n    _pbody->Hilite();\n}\n\n/***************************************************************************\n\n    Change this actor's template.  This gets called if the actor is based\n    on a 3-D Text template and the text gets edited.  In addition to\n    changing the template itself, this function updates _pbody to conform\n    to the new template, and removes all costume events on body part sets\n    that no longer exist.  For instance, if a three-letter text actor was\n    changed to two letters, all costume events on the third letter are\n    deleted.\n\n***************************************************************************/\nbool ACTR::FChangeTagTmpl(TAG *ptagTmplNew)\n{\n    AssertThis(0);\n    AssertVarMem(ptagTmplNew);\n\n    PTMPL ptmpl;\n    long cbsetNew;\n    long iaev;\n    AEV aev;\n    AEVCOST aevcost;\n\n    ptmpl = (PTMPL)vptagm->PbacoFetch(ptagTmplNew, TMPL::FReadTmpl);\n    if (pvNil == ptmpl)\n        return fFalse;\n    if (ptmpl->FIsTdt())\n    {\n        if (!((PTDT)ptmpl)->FAdjustBody(_pbody))\n        {\n            ReleasePpo(&ptmpl);\n            return fFalse;\n        }\n    }\n    if (!ptmpl->FSetActnCel(_pbody, _anidCur, _celnCur))\n        return fFalse;\n    _PositionBody(&_xyzCur);\n    ReleasePpo(&_ptmpl);\n    _ptmpl = ptmpl;\n    TAGM::CloseTag(&_tagTmpl);\n    _tagTmpl = *ptagTmplNew;\n    TAGM::DupTag(ptagTmplNew);\n\n    // If the new TMPL is not a TDT, we're done...although currently this\n    // function should only be called with ptagTmplNew being a TDT\n    if (!ptmpl->FIsTdt())\n        return fTrue;\n\n    cbsetNew = _pbody->Cbset();\n    // Need to remove any costume events acting on ibset >= cbsetNew\n    // Loop backwards to prevent indexing problems since we are deleting\n    // events in this GG as we go\n    for (iaev = _pggaev->IvMac() - 1; iaev >= 0; iaev--)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if (aev.aet == aetCost)\n        {\n            _pggaev->Get(iaev, &aevcost);\n            if (aevcost.ibset >= cbsetNew)\n            {\n                _RemoveAev(iaev, fTrue);\n            }\n        }\n    }\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n\n    Assert the validity of the ACTR.\n\n***************************************************************************/\nvoid ACTR::AssertValid(ulong grfobj)\n{\n\n    ACTR_PAR::AssertValid(fobjAllocated);\n    AssertNilOrPo(_pbody, 0);\n    AssertNilOrPo(_ptmpl, 0);\n    AssertPo(_pggaev, 0);\n    AssertPo(_pglrpt, 0);\n    AssertPo(_pglsmm, 0);\n\n    long iaevMac = _pggaev->IvMac();\n    long irptMac = _pglrpt->IvMac();\n    bool fTracing = FPure(grfobj & fobjAssertFull);\n\n    AssertIn(_iaevCur, -1, iaevMac + 1);\n    if (irptMac > 0)\n        AssertIn(_rtelCur.irpt, 0, irptMac);\n    if (ivNil != _iaevActnCur)\n        AssertIn(_iaevActnCur, 0, iaevMac);\n    if (_iaevAddCur != ivNil)\n        AssertIn(_iaevAddCur, 0, iaevMac);\n\n    if (fTracing)\n    {\n        RPT rpt;\n        long irpt;\n        long iaev;\n        AEV aev;\n        bool mpaetfSeen[aetLim];\n        RTEL rtel;\n\n        ClearPb(mpaetfSeen, size(mpaetfSeen));\n\n        rtel.irpt = -1;\n        rtel.dwrOffset = rZero;\n        rtel.dnfrm = 0;\n\n        // Supply a debug readable view of br_scalar path\n        for (irpt = 0; irpt < irptMac; irpt++)\n        {\n            _pglrpt->Get(irpt, &rpt);\n        }\n\n        AssertIn(_rtelCur.irpt, 0, irptMac + 1); // Supply a debug readable view of the event stream\n        _pggaev->GetFixed(0, &aev);\n        Assert(aetAdd == aev.aet, \"BUG: No add event at front of list\");\n\n        for (iaev = 0; iaev < _pggaev->IvMac(); iaev++)\n        {\n            _pggaev->GetFixed(iaev, &aev);\n            Assert(rtel <= aev.rtel, \"Illegal ordering in event list\");\n            AssertIn(aev.aet, 0, aetLim);\n\n            // Verify uniqueness of event types in a single frame\n            bool fNewFrame = (aev.aet == aetAdd || rtel != aev.rtel);\n\n            if (mpaetfSeen[aev.aet] == fTrue)\n            {\n                switch (aev.aet)\n                {\n                case aetCost:\n                case aetAdd:\n                case aetSnd:\n                    break;\n\n                default:\n                    Assert(fNewFrame, \"Duplicate events in a single frame\");\n                }\n            }\n\n            if (fNewFrame)\n            {\n                ClearPb(mpaetfSeen, size(mpaetfSeen));\n            }\n\n            mpaetfSeen[aev.aet] = fTrue;\n            rtel = aev.rtel;\n            _pglrpt->Get(aev.rtel.irpt, &rpt);\n            Assert(aev.rtel.dwrOffset < rpt.dwr || rpt.dwr == rZero, \"Invalid rtel.dwrOffset\");\n\n            // Variable portion of aev retrieved for debug viewing\n            switch (aev.aet)\n            {\n            case aetAdd: {\n                AEVADD aevadd;\n                Assert(_pggaev->Cb(iaev) == kcbVarAdd, \"Corrupt size in event list\");\n                _pggaev->Get(iaev, &aevadd);\n                break;\n            }\n            case aetActn: {\n                AEVACTN aevactn;\n                _pggaev->Get(iaev, &aevactn);\n                Assert(_pggaev->Cb(iaev) == kcbVarActn, \"Corrupt size in event list\");\n                break;\n            }\n            case aetCost:\n                Assert(_pggaev->Cb(iaev) == kcbVarCost, \"Corrupt size in event list\");\n                break;\n            case aetRotF:\n            case aetRotH:\n                Assert(_pggaev->Cb(iaev) == kcbVarRot, \"Corrupt size in event list\");\n                break;\n            case aetSize:\n                Assert(_pggaev->Cb(iaev) == kcbVarSize, \"Corrupt size in event list\");\n                break;\n            case aetPull:\n                Assert(_pggaev->Cb(iaev) == kcbVarPull, \"Corrupt size in event list\");\n                break;\n            case aetSnd:\n                break;\n            case aetFreeze: {\n                long faevfrz;\n                _pggaev->Get(iaev, &faevfrz);\n                Assert(_pggaev->Cb(iaev) == kcbVarFreeze, \"Corrupt size in event list\");\n                break;\n            }\n            case aetTweak:\n                Assert(_pggaev->Cb(iaev) == kcbVarTweak, \"Corrupt size in event list\");\n                break;\n            case aetStep: {\n                BRS dwrAev;\n                _pggaev->Get(iaev, &dwrAev);\n                Assert(_pggaev->Cb(iaev) == kcbVarStep, \"Corrupt size in event list\");\n                break;\n            }\n            case aetRem:\n                break;\n            case aetMove:\n                Assert(_pggaev->Cb(iaev) == kcbVarMove, \"Corrupt size in event list\");\n                break;\n            default:\n                Assert(0, \"Unknown event type\");\n            }\n        }\n    }\n}\n\n/***************************************************************************\n\n    Mark memory used by the ACTR\n\n***************************************************************************/\nvoid ACTR::MarkMem(void)\n{\n    AssertThis(0);\n    long iaev;\n    AEV *paev;\n    AEVSND *paevsnd;\n\n    ACTR_PAR::MarkMem();\n    for (iaev = 0; iaev < _pggaev->IvMac(); iaev++)\n    {\n        paev = (AEV *)_pggaev->QvFixedGet(iaev);\n        if (aetSnd == paev->aet)\n        {\n            paevsnd = (AEVSND *)_pggaev->QvGet(iaev);\n            if (paevsnd->tag.sid == ksidUseCrf)\n                paevsnd->tag.MarkMem();\n        }\n    }\n    MarkMemObj(_pggaev);\n    MarkMemObj(_pglrpt);\n    MarkMemObj(_pbody);\n    MarkMemObj(_ptmpl);\n    MarkMemObj(_pglsmm);\n    _tagTmpl.MarkMem();\n}\n\n#endif // DEBUG\n"
  },
  {
    "path": "src/engine/actredit.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Actor Edit.   Cut/Copy/Paste/Undo\n\n    Primary authors:\n        ACLP::(clipbd)\tSeanse\n        AUND::(undo)\tSeanse\n        ACTR::(undo)\tSeanse\n        ACTR::(vacuum)  *****\n        ACTR::(dup/restore) *****\n    Review Status:  Reviewed\n\n***************************************************************************/\n\n#include \"soc.h\"\n\nASSERTNAME\nRTCLASS(AUND)\n\n/***************************************************************************\n\n    Duplicate the actor from this frame through\n    the end of subroute or (if fEntireScene) the end of the scene\n\n***************************************************************************/\nbool ACTR::FCopy(PACTR *ppactr, bool fEntireScene)\n{\n    AssertThis(0);\n    AssertVarMem(ppactr);\n\n    long iaev;\n    long iaevLast;\n    AEV aev;\n    AEVACTN aevactn;\n    AEVSND aevsnd;\n    RPT rpt;\n    RPT rptOld;\n    RPT *prptSrc;\n    RPT *prptDest;\n\n    (*ppactr) = PactrNew(&_tagTmpl);\n\n    if (*ppactr == pvNil)\n    {\n        return fFalse;\n    }\n\n    // If the current point is between nodes, a node will\n    // be inserted.  Compute its dwr.\n    _pglrpt->Get(_rtelCur.irpt, &rpt);\n    rptOld.dwr = rpt.dwr;\n    rpt.dwr = BrsSub(rptOld.dwr, _rtelCur.dwrOffset);\n\n    //\n    // Gather all earlier events & move to the current one\n    // It is sufficient to begin with the current subroute\n    // Note: Add events will require later translation of nfrm\n    //\n    for (iaev = _iaevAddCur; iaev < _iaevCur; iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n\n        // Is this an event we want to copy?\n        switch (aev.aet)\n        {\n        case aetActn: // Copy, editing current cel only\n            _pggaev->Get(iaev, &aevactn);\n            aevactn.celn = _celnCur;\n            break;\n\n        // copy\n        case aetAdd:\n        case aetCost:\n        case aetPull:\n        case aetSize:\n        case aetRotF:\n        case aetFreeze:\n        case aetStep:\n        case aetMove:\n            break;\n\n        // The following events are not automatically copied\n        case aetSnd:\n            _pggaev->Get(iaev, &aevsnd);\n            // Update the cno for the chid from the original movie\n            // The scene this came from may be lost later\n            if (!_pscen->Pmvie()->FResolveSndTag(&aevsnd.tag, aevsnd.chid))\n            {\n                goto LFail;\n            }\n            _pggaev->Put(iaev, &aevsnd);\n            if (aevsnd.celn == smmNil && iaev >= _iaevFrmMin)\n                break;\n            if (iaev > _iaevActnCur && aevsnd.celn != smmNil)\n            {\n                // Retain current motion match sounds\n                break;\n            }\n            continue;\n        case aetTweak:\n        case aetRotH:\n#ifdef BUG1950\n            // REVIEW (*****):  Postponed till v2.0\n            if (iaev >= _iaevCur) // Code change not yet verified\n#else                             //! BUG1950\n            if (iaev >= _iaevFrmMin)\n#endif                            //! BUG1950\n            {\n                // Retain these events from this frame\n                break;\n            }\n            continue;\n        case aetRem:\n            continue; // Do not copy\n\n        default:\n            Bug(\"Unknown event type... Copy or Not?\");\n            break;\n        }\n\n        // set the event to happen right here.\n        aev.rtel.dnfrm = 0;\n        aev.rtel.irpt = 0;\n        aev.rtel.dwrOffset = 0;\n        iaevLast = (*ppactr)->_pggaev->IvMac();\n\n        // Insert aev.  Tag ref count will be updated.\n        _pggaev->Lock();\n        if (!(*ppactr)->_FInsertAev(iaevLast, _pggaev->Cb(iaev), (aev.aet == aetActn) ? &aevactn : _pggaev->QvGet(iaev),\n                                    &aev, fFalse))\n        {\n            _pggaev->Unlock();\n            goto LFail;\n        }\n        _pggaev->Unlock();\n        (*ppactr)->_MergeAev(0, iaevLast);\n    }\n\n    //\n    // Copy remaining events, adjusting their locations\n    //\n    for (iaev = _iaevCur; iaev < _pggaev->IvMac(); iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n\n        if ((!fEntireScene) && (aetAdd == aev.aet) && (*ppactr)->_pggaev->IvMac() > 0)\n        {\n            break;\n        }\n\n        // Adjust the event indicies.\n        aev.rtel.irpt -= _rtelCur.irpt;\n\n        if (aev.rtel.irpt == 0)\n        {\n            if (aev.rtel.dwrOffset == _rtelCur.dwrOffset)\n            {\n                aev.rtel.dwrOffset = rZero;\n                if (aev.rtel.dnfrm < _rtelCur.dnfrm)\n                {\n                    aev.rtel.dnfrm = 0;\n                }\n                else\n                {\n                    aev.rtel.dnfrm -= _rtelCur.dnfrm;\n                }\n            }\n            else\n            {\n                if (rpt.dwr == rZero)\n                    aev.rtel.dwrOffset = rZero;\n                else\n                {\n                    aev.rtel.dwrOffset = BrsSub(aev.rtel.dwrOffset, _rtelCur.dwrOffset);\n                }\n            }\n        }\n\n        // Insert will update the tag ref count\n        iaevLast = (*ppactr)->_pggaev->IvMac();\n        _pggaev->Lock();\n        if (!(*ppactr)->_FInsertAev(iaevLast, _pggaev->Cb(iaev), _pggaev->QvGet(iaev), &aev, fFalse))\n        {\n            _pggaev->Unlock();\n            goto LFail;\n        }\n        _pggaev->Unlock();\n    }\n\n    //\n    // Add the point we are at.\n    //\n    if (!(*ppactr)->_pglrpt->FInsert(0, &rpt))\n    {\n        goto LFail;\n    }\n\n    //\n    // Copy the rest of the subroute or route\n    //\n    if ((_rtelCur.irpt + 1) < _pglrpt->IvMac())\n    {\n        // Locate the amount of route to copy\n        //\n        long irptLim = _pglrpt->IvMac();\n        long irpt;\n\n        if (!fEntireScene)\n        {\n            for (irpt = _rtelCur.irpt; irpt < irptLim; irpt++)\n            {\n                _pglrpt->Get(irpt, &rpt);\n                if (rZero == rpt.dwr)\n                {\n                    irptLim = irpt + 1;\n                    break;\n                }\n            }\n        }\n\n        if (!(*ppactr)->_pglrpt->FSetIvMac((*ppactr)->_pglrpt->IvMac() + irptLim - (_rtelCur.irpt + 1)))\n        {\n            goto LFail;\n        }\n\n        prptSrc = (RPT *)_pglrpt->QvGet(_rtelCur.irpt + 1);\n        prptDest = (RPT *)(*ppactr)->_pglrpt->QvGet(1);\n        CopyPb(prptSrc, prptDest, LwMul(irptLim - (_rtelCur.irpt + 1), size(RPT)));\n    }\n    else\n    {\n        // Mark the end of the path\n        rpt.dwr = rZero;\n        (*ppactr)->_pglrpt->Put(0, &rpt);\n    }\n\n    (*ppactr)->_SetStateRewound();\n\n    AssertPo(*ppactr, 0);\n    return fTrue;\n\nLFail:\n    ReleasePpo(ppactr);\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Duplicate the entire actor from *this onto *ppactr\n    This is not from this frame on.  The entire actor is duplicated.\n    This does not duplicate the Brender body.\n    Default is fReset = fFalse;\n\n    NOTE:\n    Upon exit, the new actor will still be in the scene.\n    If (!fReset), all state information will have been retained.\n\n***************************************************************************/\nbool ACTR::FDup(PACTR *ppactr, bool fReset)\n{\n    AssertThis(0);\n    AssertVarMem(ppactr);\n\n    long cactRef;\n    PACTR pactrSrc = this;\n    PACTR pactrDest;\n\n    // Due to state var duplication, using NewObj, not PactrNew\n    pactrDest = (*ppactr) = NewObj ACTR();\n    if (*ppactr == pvNil)\n    {\n        return fFalse;\n    }\n\n    // AddRef only if attached to a scene\n    if (pvNil != _pbody)\n        _pbody->AddRef();\n    _ptmpl->AddRef();\n    TAGM::DupTag(&_tagTmpl);\n\n    // Copy over all members\n    // Note that both copies will point to the same *_pbody & *_ptmpl\n    cactRef = pactrDest->_cactRef;\n    *(pactrDest) = *pactrSrc;\n    pactrDest->_cactRef = cactRef;\n    pactrDest->_fTimeFrozen = fFalse;\n\n    if (!pactrDest->_FCreateGroups())\n    {\n        goto LFail;\n    }\n\n    if (!_FDupCopy(pactrSrc, pactrDest))\n    {\n        goto LFail;\n    }\n\n    if (fReset)\n    {\n        (*ppactr)->Reset();\n    }\n    return fTrue;\n\nLFail:\n    ReleasePpo(ppactr);\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Restore the actor from *ppactr onto *this\n\n***************************************************************************/\nvoid ACTR::Restore(PACTR pactr)\n{\n    AssertThis(0);\n    AssertVarMem(pactr);\n\n    long cactRef;\n    PACTR pactrSrc = pactr;\n    PACTR pactrDest = this;\n\n    Assert(pactr->_ptmpl == _ptmpl, \"Restore ptmpl logic error\");\n    Assert(pactr->_pbody == _pbody, \"Restore pbody logic error\");\n\n    // Copy over all members\n    // Note that both copies will point to the same *_pbody & *_ptmpl\n    cactRef = pactrDest->_cactRef;\n    PGG pggaev = pactrDest->_pggaev;\n    PGL pglrpt = pactrDest->_pglrpt;\n    PGL pglsmm = pactrDest->_pglsmm;\n    *(pactrDest) = *pactrSrc;\n    pactrDest->_cactRef = cactRef;\n    pactrDest->_pggaev = pggaev;\n    pactrDest->_pglrpt = pglrpt;\n    pactrDest->_pglsmm = pglsmm;\n\n    // Swap the gl and gg structures\n    SwapVars(&pactrSrc->_pggaev, &pactrDest->_pggaev);\n    SwapVars(&pactrSrc->_pglrpt, &pactrDest->_pglrpt);\n    SwapVars(&pactrSrc->_pglsmm, &pactrDest->_pglsmm);\n\n    pactr->_pscen->Pmvie()->InvalViews();\n\n    return;\n}\n\n/***************************************************************************\n\n    Restore this actor from an undo object pactrRestore.\n\n***************************************************************************/\nvoid ACTR::_RestoreFromUndo(PACTR pactrRestore)\n{\n    AssertBaseThis(0);\n    AssertVarMem(pactrRestore);\n    Assert(pactrRestore->_pbody == pvNil, \"Not restoring from undo object\");\n\n    long nfrmCur = _nfrmCur;\n    PSCEN pscen = pactrRestore->_pscen;\n\n    // Modify pactrRestore for Restore()\n    pactrRestore->_pbody = _pbody;\n    pactrRestore->_pscen = _pscen;\n    _Hide(); // Added actor will show\n    Restore(pactrRestore);\n\n    // Restore pactrRestore to be unmodified\n    pactrRestore->_pbody = pvNil;\n    pactrRestore->_pscen = pscen;\n\n    FGotoFrame(nfrmCur); // No further recovery meaningful\n    _pscen->Pmvie()->InvalViews();\n}\n\n/***************************************************************************\n\n    Copy the GG and GL structures for actor duplication/restoration\n\n    NOTE:\n    This is not from this frame on.  The entire actor is duplicated.\n\n***************************************************************************/\nbool ACTR::_FDupCopy(PACTR pactrSrc, PACTR pactrDest)\n{\n    AssertBaseThis(0);\n    AssertPo(pactrDest->_pggaev, 0);\n    AssertPo(pactrDest->_pglrpt, 0);\n\n    RPT *prptSrc;\n    RPT *prptDest;\n    SMM *psmmSrc;\n    SMM *psmmDest;\n\n    //\n    // Copy all events.\n    //\n    if (!pactrDest->_pggaev->FCopyEntries(pactrSrc->_pggaev, 0, 0, pactrSrc->_pggaev->IvMac()))\n    {\n        goto LFail;\n    }\n\n    {\n        _pggaev->Lock();\n        for (long iaev = 0; iaev < _pggaev->IvMac(); iaev++)\n        {\n            PTAG ptag;\n\n            if (_FIsIaevTag(_pggaev, iaev, &ptag))\n                TAGM::DupTag(ptag);\n        }\n        _pggaev->Unlock();\n    }\n\n    //\n    // Copy Route\n    //\n    if (pactrSrc->_pglrpt->IvMac() > 0)\n    {\n        if (!pactrDest->_pglrpt->FSetIvMac(pactrSrc->_pglrpt->IvMac()))\n        {\n            goto LFail;\n        }\n\n        prptSrc = (RPT *)pactrSrc->_pglrpt->QvGet(0);\n        prptDest = (RPT *)pactrDest->_pglrpt->QvGet(0);\n        CopyPb(prptSrc, prptDest, LwMul(pactrSrc->_pglrpt->IvMac(), size(RPT)));\n    }\n\n    //\n    // Copy Smm\n    //\n    if (pactrSrc->_pglsmm->IvMac() > 0)\n    {\n        if (!pactrDest->_pglsmm->FSetIvMac(pactrSrc->_pglsmm->IvMac()))\n        {\n            goto LFail;\n        }\n\n        psmmSrc = (SMM *)pactrSrc->_pglsmm->QvGet(0);\n        psmmDest = (SMM *)pactrDest->_pglsmm->QvGet(0);\n        CopyPb(psmmSrc, psmmDest, LwMul(pactrSrc->_pglsmm->IvMac(), size(SMM)));\n    }\n\n    return fTrue;\n\nLFail:\n    if (this != pactrDest)\n        ReleasePpo(&pactrDest);\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Duplicate the indicated portion of the route from this frame on\n    from actor \"this\" to actor *ppactr.\n    Note **: The point on the route may not land on a node.  If between\n    nodes, insert a point to make the two route sections identical.\n\n***************************************************************************/\nbool ACTR::FCopyRte(PACTR *ppactr, bool fEntireScene)\n{\n    AssertThis(0);\n    AssertVarMem(ppactr);\n\n    long irpt;\n    long dnrpt;\n    long irptLim;\n    RPT rpt;\n    RPT rpt1;\n    RPT rptNode;\n\n    (*ppactr) = PactrNew(&_tagTmpl);\n    if (*ppactr == pvNil)\n    {\n        return fFalse;\n    }\n\n    //\n    // Insert the current point\n    //\n    _GetXyzFromRtel(&_rtelCur, &rpt.xyz);\n    _pglrpt->Get(_rtelCur.irpt, &rptNode);\n    rpt.dwr = rZero;\n\n    if (_rtelCur.dwrOffset == rZero)\n    {\n        rpt.dwr = rptNode.dwr;\n    }\n    else if (rptNode.dwr > rZero && _rtelCur.irpt < _pglrpt->IvMac() - 1)\n    {\n        _pglrpt->Get(_rtelCur.irpt + 1, &rpt1);\n        rpt.dwr = BR_LENGTH3(BrsSub(rpt1.xyz.dxr, rpt.xyz.dxr), BrsSub(rpt1.xyz.dyr, rpt.xyz.dyr),\n                             BrsSub(rpt1.xyz.dzr, rpt.xyz.dzr));\n        if (rZero == rpt.dwr)\n        {\n            rpt.dwr = rEps; // Epsilon.  Prevent pathological incorrect end-of-path\n        }\n    }\n\n    if (!(*ppactr)->_pglrpt->FInsert(0, &rpt))\n    {\n        goto LFail;\n    }\n\n    if ((!fEntireScene) && rpt.dwr == rZero)\n    {\n        goto LEnd;\n    }\n\n    //\n    // If copying subroute only, determine amount to copy\n    //\n    irptLim = _pglrpt->IvMac();\n    if (!fEntireScene)\n    {\n        for (irpt = _rtelCur.irpt + 1; irpt < irptLim; irpt++)\n        {\n            _pglrpt->Get(irpt, &rpt);\n            if (rZero == rpt.dwr)\n            {\n                irptLim = irpt + 1;\n                break;\n            }\n        }\n    }\n\n    //\n    // Copy indicated portion of the route\n    //\n    dnrpt = irptLim - (_rtelCur.irpt + 1);\n    if (dnrpt > 0 && !(*ppactr)->_pglrpt->FEnsureSpace(dnrpt, fgrpNil))\n        goto LFail;\n\n    for (irpt = _rtelCur.irpt + 1; irpt < irptLim; irpt++)\n    {\n        _pglrpt->Get(irpt, &rpt);\n\n        if (!(*ppactr)->_pglrpt->FInsert(irpt - _rtelCur.irpt, &rpt))\n        {\n            goto LFail;\n        }\n\n        if ((!fEntireScene) && (rZero == rpt.dwr))\n        {\n            break;\n        }\n    }\n\nLEnd:\n    (*ppactr)->_SetStateRewound();\n    return fTrue;\n\nLFail:\n    ReleasePpo(ppactr);\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Paste the rte from the clipboard pactr to the current actor's current\n    frame onward.\n    On failure, unwinding is expected to be via the dup'd actor from undo.\n    This overwrites the end of the current subroute.\n    NOTE:  To be meaningful, the pasted route section is translated to\n    extend from the current point.\n\n***************************************************************************/\nbool ACTR::FPasteRte(PACTR pactr)\n{\n    AssertThis(0);\n    AssertVarMem(pactr);\n\n    AEV aev;\n    RPT rpt;\n    RPT rptCur;\n    XYZ dxyz;\n    long iaev;\n    long irpt;\n#ifdef STATIC\n    bool fStatic;\n#endif // STATIC\n    long crptDel = 0;\n    long crptNew = pactr->_pglrpt->IvMac() - 1;\n\n    if (crptNew <= 0)\n    {\n        PushErc(ercSocNothingToPaste);\n        return fFalse;\n    }\n\n    if (!_pglrpt->FEnsureSpace(crptNew, fgrpNil) || !_pggaev->FEnsureSpace(1, kcbVarStep, fgrpNil))\n    {\n        return fFalse;\n    }\n\n    //\n    // May be positioned between nodes -> potentially\n    // insert the current point\n    //\n    _GetXyzFromRtel(&_rtelCur, &rptCur.xyz);\n    if (rZero != _rtelCur.dwrOffset)\n    {\n        BRS dwrCur = _rtelCur.dwrOffset;\n        _rtelCur.irpt++;\n        _rtelCur.dwrOffset = rZero;\n        _rtelCur.dnfrm = 0;\n        if (!_FInsertGgRpt(_rtelCur.irpt, &rptCur, dwrCur))\n            return fFalse;\n        _GetXyzFromRtel(&_rtelCur, &_xyzCur);\n        _AdjustAevForRteIns(_rtelCur.irpt, 0);\n    }\n\n    //\n    // Delete to the end of this *sub*route\n    //\n    for (irpt = _rtelCur.irpt + 1; irpt < _pglrpt->IvMac(); irpt++)\n    {\n        _pglrpt->Get(irpt, &rpt);\n        crptDel++;\n        if (rpt.dwr == rZero)\n        {\n            break;\n        }\n    }\n    if (crptDel > 0)\n    {\n        _pglrpt->Delete(_rtelCur.irpt, crptDel);\n    }\n\n    //\n    // Remove events until the end of the *sub*route\n    // Space optimization: should precede paste\n    // Update location pointer of events of later subroutes\n    //\n    for (iaev = _iaevCur; iaev < _pggaev->IvMac(); iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if (aev.rtel.irpt > _rtelCur.irpt + crptDel)\n        {\n            aev.rtel.irpt += crptNew - crptDel;\n            _pggaev->PutFixed(iaev, &aev);\n            continue;\n        }\n        else\n        {\n            _RemoveAev(iaev, fFalse);\n            iaev--;\n        }\n    }\n\n    //\n    // Paste in the new route.\n    // Translate the points of this section of route\n    // Adjust the aev presently\n    //\n    pactr->_pglrpt->Get(0, &rpt);\n    dxyz.dxr = BrsSub(rptCur.xyz.dxr, rpt.xyz.dxr);\n    dxyz.dyr = BrsSub(rptCur.xyz.dyr, rpt.xyz.dyr);\n    dxyz.dzr = BrsSub(rptCur.xyz.dzr, rpt.xyz.dzr);\n    for (irpt = 1; irpt <= crptNew; irpt++)\n    {\n        pactr->_pglrpt->Get(irpt, &rpt);\n        rpt.xyz.dxr = BrsAdd(rpt.xyz.dxr, dxyz.dxr);\n        rpt.xyz.dyr = BrsAdd(rpt.xyz.dyr, dxyz.dyr);\n        rpt.xyz.dzr = BrsAdd(rpt.xyz.dzr, dxyz.dzr);\n        AssertDo(_pglrpt->FInsert(_rtelCur.irpt + irpt, &rpt), \"Logic error\");\n    }\n\n    //\n    // Set the right dwr distance from the current point to\n    // the first point on the new section of route\n    //\n    _pglrpt->Get(_rtelCur.irpt + 1, &rpt);\n    rptCur.dwr = BR_LENGTH3(BrsSub(rpt.xyz.dxr, rptCur.xyz.dxr), BrsSub(rpt.xyz.dyr, rptCur.xyz.dyr),\n                            BrsSub(rpt.xyz.dzr, rptCur.xyz.dzr));\n    if (rZero == rptCur.dwr)\n        rptCur.dwr = rEps; // Epsilon.  Prevent pathological incorrect end-of-path\n    _pglrpt->Put(_rtelCur.irpt, &rptCur);\n\n#ifdef STATIC\n    //\n    // Force floating behavior on a static action\n    //\n    Assert(_iaevActnCur >= 0, \"Actor has no action\");\n    if (!_FGetStatic(_anidCur, &fStatic))\n        return fFalse;\n    if (fStatic)\n    {\n        if (!FSetStep(kdwrNil))\n            return fFalse;\n    }\n#else  //! STATIC\n    // Force continuation onto newly pasted path\n    if (!FSetStep(kdwrNil))\n        return fFalse;\n#endif //! STATIC\n\n    //\n    // Set new end of path freeze & step events\n    //\n    long faevfrz = (long)fTrue;\n    BRS dwrStep = rZero;\n    aev.aet = aetFreeze;\n    aev.rtel.irpt = _rtelCur.irpt + crptNew;\n    aev.rtel.dnfrm = 0;\n    aev.rtel.dwrOffset = rZero;\n    aev.nfrm = _nfrmCur; // will be updated in ComputeLifetime()\n    if (!_FInsertAev(_iaevCur, kcbVarFreeze, &faevfrz, &aev))\n        return fFalse;\n    aev.aet = aetStep;\n    if (!_FInsertAev(_iaevCur, kcbVarStep, &dwrStep, &aev))\n        return fFalse;\n\n    _fLifeDirty = fTrue;\n    _pscen->InvalFrmRange();\n    _pscen->MarkDirty();\n\n    _PositionBody(&_xyzCur);\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Put an already existing actor in this scene.\n\n***************************************************************************/\nbool ACTR::FPaste(long nfrm, SCEN *pscen)\n{\n    AssertThis(0);\n\n    AEV aev;\n    RPT rpt;\n    AEVADD aevadd;\n    AEVSND aevsnd;\n    BRS xrCam = rZero;\n    BRS yrCam = rZero;\n    BRS zrCam = kzrDefault;\n    BRS xr, yr, zr;\n    long iaev;\n    long dnfrm;\n#ifdef BUG1888\n    PTMPL ptmpl;\n    PCRF pcrf;\n    TAG tag;\n\n    //\n    // Ensure that the tag to the TDT being pasted is in the current movie.\n    //\n    if (FIsTdt())\n    {\n        Assert(_tagTmpl.sid == ksidUseCrf, \"TDTs should be stored in a document!\");\n\n        if (!pscen->Pmvie()->FEnsureAutosave(&pcrf))\n        {\n            return fFalse;\n        }\n        if (pcrf != _tagTmpl.pcrf)\n        {\n            // Need to save this actor's tagTmpl in this movie because it came from another movie\n\n            tag = _tagTmpl;\n            TAGM::DupTag(&tag);\n            // Save the tag to the movie's _pcrfAutosave.  The tag now\n            // points to the copy in this movie.\n            if (!TAGM::FSaveTag(&tag, pcrf, fTrue))\n            {\n                TAGM::CloseTag(&tag);\n                return fFalse;\n            }\n            // Get a template based on the new tag\n            ptmpl = (PTMPL)vptagm->PbacoFetch(&tag, TMPL::FReadTmpl);\n            if (pvNil == ptmpl)\n            {\n                TAGM::CloseTag(&tag);\n                return fFalse;\n            }\n            // Change the actor to use the new tag and template\n            TAGM::CloseTag(&_tagTmpl);\n            _tagTmpl = tag;\n            ReleasePpo(&_ptmpl);\n            _ptmpl = ptmpl;\n        }\n    }\n#endif // BUG1888\n\n    //\n    // Update lifetime\n    //\n    _nfrmFirst = nfrm;\n    _fLifeDirty = fTrue;\n    _nfrmCur = nfrm - 1;\n    SetPscen(pscen);\n\n    // Always place actors on the \"floor\"\n    _GetNewOrigin(&xr, &yr, &zr);\n\n    Assert(_pggaev->IvMac() > 0, \"Nothing to paste!\");\n    _pggaev->GetFixed(0, &aev);\n    if (aev.aet != aetAdd)\n        return fFalse;\n    dnfrm = aev.nfrm - nfrm;\n\n    //\n    // Begin by locating the actor at (xr,yr,zr)\n    // There are no Full path or Sub path translations at this point.\n    // Note: In order to place a pasted actor at the insertion point,\n    // the translation needs to compensate for the distance\n    // recorded in each path point -> subtract the first path point.\n    _pglrpt->Get(0, &rpt);\n    _dxyzSubRte.dxr = rZero;\n    _dxyzSubRte.dyr = rZero;\n    _dxyzSubRte.dzr = rZero;\n    _dxyzFullRte.dxr = BrsSub(xr, rpt.xyz.dxr);\n    _dxyzFullRte.dyr = BrsSub(yr, rpt.xyz.dyr);\n    _dxyzFullRte.dzr = BrsSub(zr, rpt.xyz.dzr);\n    _pggaev->Get(0, &aevadd);\n    _dxyzFullRte.dxr = BrsSub(_dxyzFullRte.dxr, aevadd.dxr);\n    _dxyzFullRte.dyr = BrsSub(_dxyzFullRte.dyr, aevadd.dyr);\n    _dxyzFullRte.dzr = BrsSub(_dxyzFullRte.dzr, aevadd.dzr);\n\n    //\n    // Translate the new actor in time\n    // Update sound events\n    for (iaev = 0; iaev < _pggaev->IvMac(); iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if (dnfrm != 0)\n        {\n            aev.nfrm -= dnfrm;\n            _pggaev->PutFixed(iaev, &aev);\n        }\n        if (aetSnd != aev.aet)\n            continue;\n        _pggaev->Get(iaev, &aevsnd);\n        if (aevsnd.tag.sid != ksidUseCrf)\n            continue;\n        // Save tag (this may be a new movie)\n        if (!aevsnd.tag.pcrf->Pcfl()->FFind(aevsnd.tag.ctg, aevsnd.tag.cno))\n        {\n            PushErc(ercSocNoSndOnPaste);\n            _RemoveAev(iaev);\n            iaev--;\n            continue;\n        }\n        if (!_pscen->Pmvie()->FSaveTagSnd(&aevsnd.tag))\n        {\n            Bug(\"Expected to locate user sound chunk\");\n            _RemoveAev(iaev);\n            iaev--;\n        }\n        else\n        {\n            // Adopt this sound into the new scene\n            if (!_pscen->Pmvie()->FChidFromUserSndCno(aevsnd.tag.cno, &aevsnd.chid))\n                return fFalse;\n            // Update event\n            _pggaev->Put(iaev, &aevsnd);\n        }\n    }\n\n    // Rotate 3D spletters to face the camera\n    if (_ptmpl->FIsTdt())\n    {\n        _pggaev->Get(0, &aevadd);\n        aevadd.ya = _pscen->Pbkgd()->BraRotYCamera();\n        _pggaev->Put(0, &aevadd);\n    }\n\n    _UpdateXyzRte();\n    _pscen->MarkDirty();\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Make an actor look like they were just read in, and never in a scene.\n\n***************************************************************************/\nvoid ACTR::Reset(void)\n{\n    _pscen = pvNil;\n    ReleasePpo(&_pbody); // Sets _pbody = pvNil\n    _nfrmCur = knfrmInvalid;\n\n    _InitState();\n}\n\n//\n//\n//\n//\n//  BEGIN CLIPBOARD STUFF\n//\n//\n//\n//\n\nRTCLASS(ACLP)\n\n/***************************************************************************\n\n    Create an actor clipboard object\n    This is from the current frame forward\n\n***************************************************************************/\nPACLP ACLP::PaclpNew(PACTR pactr, bool fRteOnly, bool fEntireScene)\n{\n    AssertPo(pactr, 0);\n    Assert(!fRteOnly || !fEntireScene, \"Expecting subroute only\");\n\n    PACLP paclp;\n    PACTR pactrTmp;\n    STN stn, stnCopyOf;\n\n    paclp = NewObj ACLP();\n\n    if (paclp == pvNil)\n    {\n        return (pvNil);\n    }\n\n    if (fRteOnly)\n    {\n        if (!pactr->FCopyRte(&pactrTmp, fEntireScene))\n        {\n            ReleasePpo(&paclp);\n            return (pvNil);\n        }\n    }\n    else\n    {\n        if (!pactr->FCopy(&pactrTmp, fEntireScene))\n        {\n            ReleasePpo(&paclp);\n            return (pvNil);\n        }\n        AssertPo(pactrTmp, 0);\n\n        pactr->GetName(&stn);\n\n        pactr->Pscen()->Pmvie()->Pmcc()->GetStn(idsEngineCopyOf, &stnCopyOf);\n\n        if (!FEqualRgb(stn.Psz(), stnCopyOf.Psz(), CchSz(stnCopyOf.Psz()) * size(achar)))\n        {\n            paclp->_stnName = stnCopyOf;\n            if (!paclp->_stnName.FAppendCh(kchSpace) || !paclp->_stnName.FAppendStn(&stn))\n            {\n                PushErc(ercSocNameTooLong);\n                ReleasePpo(&paclp);\n                return (pvNil);\n            }\n        }\n        else\n        {\n            paclp->_stnName = stn;\n        }\n    }\n\n    paclp->_pactr = pactrTmp;\n    paclp->_fRteOnly = fRteOnly;\n    AssertPo(paclp, 0);\n\n    return (paclp);\n}\n\n/***************************************************************************\n\n    Destroys an actor clipboard object\n\n***************************************************************************/\nACLP::~ACLP(void)\n{\n    ReleasePpo(&_pactr);\n}\n\n/***************************************************************************\n\n    Pastes an actor clipboard object\n\n***************************************************************************/\nbool ACLP::FPaste(PMVIE pmvie)\n{\n    AssertThis(0);\n    AssertPo(pmvie, 0);\n\n    PACTR pactrNew;\n\n    if (_fRteOnly)\n    {\n        return (pmvie->FPasteActrPath(_pactr));\n    }\n\n    //\n    // Duplicate the actor\n    //\n    if (!_pactr->FDup(&pactrNew, fTrue))\n    {\n        return (fFalse);\n    }\n    AssertPo(pactrNew, 0);\n\n    if (!pmvie->FPasteActr(pactrNew))\n    {\n        ReleasePpo(&pactrNew);\n        return (fFalse);\n    }\n\n    if (!pmvie->FNameActr(pactrNew->Arid(), &_stnName))\n    {\n        pmvie->Pscen()->RemActrCore(pactrNew->Arid());\n        ReleasePpo(&pactrNew);\n        return (fFalse);\n    }\n\n    ReleasePpo(&pactrNew);\n    return (fTrue);\n}\n\n#ifdef DEBUG\n\n/****************************************************\n * Mark memory used by the ACLP\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid ACLP::MarkMem(void)\n{\n    ACLP_PAR::MarkMem();\n    MarkMemObj(_pactr);\n}\n\n/***************************************************************************\n * Assert the validity of the ACLP\n *\n * Parameters:\n *  grf - bit array of options\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid ACLP::AssertValid(ulong grf)\n{\n    ACLP_PAR::AssertValid(fobjAllocated);\n    _pactr->AssertValid(grf);\n}\n\n#endif\n\n/***************************************************************************\n\n    Create an undo object\n\n***************************************************************************/\nbool ACTR::FCreateUndo(PACTR pactrDup, bool fSndUndo, PSTN pstn)\n{\n    AssertPo(pactrDup, 0);\n    AssertNilOrPo(pstn, 0);\n\n    PAUND paund;\n\n    paund = AUND::PaundNew();\n\n    if (paund == pvNil)\n    {\n        return fFalse;\n    }\n\n    paund->SetPactr(pactrDup);\n    paund->SetArid(_arid);\n    paund->SetSndUndo(fSndUndo);\n    if (pvNil != pstn)\n        paund->SetStn(pstn);\n\n    if (!_pscen->Pmvie()->FAddUndo(paund))\n    {\n        _pscen->Pmvie()->ClearUndo();\n        ReleasePpo(&paund);\n        return (fFalse);\n    }\n\n    ReleasePpo(&paund);\n\n    //\n    // Detach from the scene\n    //\n    pactrDup->Reset();\n\n    return (fTrue);\n}\n\n/***************************************************************************\n\n    Add (or replace) an action, and create an undo object\n\n***************************************************************************/\nbool ACTR::FSetAction(long anid, long celn, bool fFreeze, PACTR *ppactrDup)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(ppactrDup);\n\n    PACTR pactrDup;\n\n    if (!FDup(&pactrDup))\n    {\n        return (fFalse);\n    }\n\n    if (!FSetActionCore(anid, celn, fFreeze))\n    {\n        Restore(pactrDup);\n        ReleasePpo(&pactrDup);\n        return fFalse;\n    }\n\n    if (!FCreateUndo(pactrDup))\n    {\n        Restore(pactrDup);\n        ReleasePpo(&pactrDup);\n        return (fFalse);\n    }\n\n    if (pvNil == ppactrDup)\n        ReleasePpo(&pactrDup);\n    else\n        *ppactrDup = pactrDup;\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Add the event to the event list: Add actor on the stage, and create undo\n    object.\n\n***************************************************************************/\nbool ACTR::FAddOnStage(void)\n{\n    AssertThis(0);\n\n    PACTR pactrDup;\n\n    if (!FDup(&pactrDup))\n    {\n        return (fFalse);\n    }\n\n    if (!FAddOnStageCore())\n    {\n        Restore(pactrDup);\n        ReleasePpo(&pactrDup);\n        return fFalse;\n    }\n\n    if (!FCreateUndo(pactrDup))\n    {\n        Restore(pactrDup);\n        ReleasePpo(&pactrDup);\n        return (fFalse);\n    }\n\n    ReleasePpo(&pactrDup);\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Normalize an actor.\n\n***************************************************************************/\nbool ACTR::FNormalize(ulong grfnorm)\n{\n    AssertThis(0);\n\n    PACTR pactrDup;\n\n    if (!FDup(&pactrDup))\n    {\n        return (fFalse);\n    }\n\n    if (!FNormalizeCore(grfnorm))\n    {\n        Restore(pactrDup);\n        ReleasePpo(&pactrDup);\n        return fFalse;\n    }\n\n    if (!FCreateUndo(pactrDup))\n    {\n        Restore(pactrDup);\n        ReleasePpo(&pactrDup);\n        return (fFalse);\n    }\n\n    ReleasePpo(&pactrDup);\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Set the Costume for a body part\n    Add the event to the event list\n\n***************************************************************************/\nbool ACTR::FSetCostume(long ibset, TAG *ptag, long cmid, tribool fCmtl)\n{\n    AssertThis(0);\n    Assert(fCmtl || ibset >= 0, \"Invalid ibset argument\");\n    AssertVarMem(ptag);\n\n    PACTR pactrDup;\n\n    FDup(&pactrDup);\n\n    if (!FSetCostumeCore(ibset, ptag, cmid, fCmtl))\n    {\n        Restore(pactrDup);\n        ReleasePpo(&pactrDup);\n        return fFalse;\n    }\n\n    if (!FCreateUndo(pactrDup))\n    {\n        Restore(pactrDup);\n        ReleasePpo(&pactrDup);\n        return (fFalse);\n    }\n\n    ReleasePpo(&pactrDup);\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Delete the path and events from this frame and beyond\n    **NOTE:  This does not send the actor offstage.\tSee FRemFromStageCore.\n\n    On Input: fDeleteAll specifies full route vs subroute deletion\n    Returns *pfAlive = false if all events and route for this actor\n    have been deleted\n\n***************************************************************************/\nbool ACTR::FDelete(bool *pfAlive, bool fDeleteAll)\n{\n    AssertThis(0);\n    PACTR pactrDup;\n    long iaevCurSav;\n    AEV *paev;\n\n    if (!FDup(&pactrDup))\n    {\n        if (pvNil != pfAlive)\n            TrashVar(pfAlive);\n        return fFalse;\n    }\n\n    // Unless we are deleting to the end of the scene,\n    // we need to special case deletion that begins at\n    // the same frame as the Add event - otherwise, the\n    // code backs up one frame, putting the current frame\n    // on the previous subroute.\n    // Note: FDelete() does not require that the current\n    // frame be\tlater than _nfrmFirst.\n    if (_iaevAddCur >= 0 && !fDeleteAll)\n    {\n        paev = (AEV *)_pggaev->QvFixedGet(_iaevAddCur);\n        if (_nfrmCur == paev->nfrm)\n        {\n            if (!_FDeleteEntireSubrte())\n                goto LFail;\n            if (pvNil != pfAlive)\n                *pfAlive = FPure(_pggaev->IvMac() > 0);\n            goto LDeleted;\n        }\n    }\n\n    // Go to the previous frame to update state variables\n    iaevCurSav = _iaevCur;\n    if (!FGotoFrame(_nfrmCur - 1))\n    {\n        goto LFail;\n    }\n\n#ifndef BUG1870\n    // The next two lines are obsolete & cause placement orientation bugs\n    // Save the current orientation\n    _SaveCurPathOrien();\n#endif //! BUG1870\n\n    DeleteFwdCore(fDeleteAll, pfAlive, iaevCurSav);\n\n    // Return to original frame\n    // _nfrmCur was decremented above\n    if (!FGotoFrame(_nfrmCur + 1))\n    {\n        goto LFail;\n    }\n\n    /* Might have deleted some sound events */\n    if (Pscen() != pvNil)\n        Pscen()->UpdateSndFrame();\n\nLDeleted:\n    // The frame slider never required lifetime recomputation at this point.\n    // Motion match sounds and prerendering both do, however.\n    if (!_FComputeLifetime())\n        PushErc(ercSocBadFrameSlider);\n\n    if (!FCreateUndo(pactrDup))\n    {\n        Restore(pactrDup);\n        ReleasePpo(&pactrDup);\n        return fFalse;\n    }\n\n    ReleasePpo(&pactrDup);\n    return fTrue;\n\nLFail:\n    PushErc(ercSocGotoFrameFailure);\n    ReleasePpo(&pactrDup);\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Add the event to the event list: Remove actor from the stage, and an Undo.\n    NOTE: This should be called <before> the call to place the actor offstage\n***************************************************************************/\nbool ACTR::FRemFromStage(void)\n{\n    AssertThis(0);\n\n    PACTR pactr;\n\n    if (!FDup(&pactr))\n    {\n        return (fFalse);\n    }\n\n    if (!FRemFromStageCore())\n    {\n        Restore(pactr);\n        return fFalse;\n    }\n\n    if (!FCreateUndo(pactr))\n    {\n        Restore(pactr);\n        ReleasePpo(&pactr);\n        return (fFalse);\n    }\n\n    ReleasePpo(&pactr);\n    return fTrue;\n}\n\n/****************************************************\n *\n * Public constructor for actor undo objects.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie undo.\n *\n ****************************************************/\nPAUND AUND::PaundNew()\n{\n    PAUND paund;\n    paund = NewObj AUND();\n    AssertNilOrPo(paund, 0);\n    return (paund);\n}\n\n/****************************************************\n *\n * Destructor for actor undo objects\n *\n ****************************************************/\nAUND::~AUND(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pactr);\n}\n\n/****************************************************\n *\n * Does a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool AUND::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n    AssertPo(pdocb, 0);\n\n    long nfrmTmp;\n    bool fRet;\n\n    if (!_fSoonerLater)\n    {\n        return (FUndo(pdocb));\n    }\n\n    nfrmTmp = _nfrm;\n    _nfrm = _nfrmLast;\n\n    fRet = FUndo(pdocb);\n\n    _nfrm = nfrmTmp;\n\n    return (fRet);\n}\n\n/****************************************************\n *\n * Undoes a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool AUND::FUndo(PDOCB pdocb)\n{\n    AssertThis(0);\n    AssertPo(pdocb, 0);\n\n    PACTR pactr;\n    PMVU pmvu;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        return (fFalse);\n    }\n\n    if (!_pmvie->Pscen()->FGotoFrm(_nfrm))\n    {\n        _pmvie->ClearUndo();\n        return (fFalse);\n    }\n\n    _pmvie->Pmsq()->FlushMsq();\n\n    pactr = _pmvie->Pscen()->PactrFromArid(_arid);\n    AssertNilOrPo(pactr, 0);\n\n    if (pactr != pvNil)\n    {\n        pactr->AddRef();\n    }\n\n    //\n    // Have scene replace the old actor with this one\n    //\n    if (_pactr == pvNil)\n    {\n        _pmvie->Pscen()->RemActrCore(pactr->Arid());\n    }\n    else\n    {\n        if (_stn.Cch() != 0)\n        {\n            // Undo actor name change\n            STN stn;\n            if (_pmvie->FGetName(_arid, &stn))\n            {\n                // If FNameActr fails, the actor will not have\n                // the correct name...not great, but the user's document\n                // won't be corrupted or anything.  Someone will push a\n                // ercOom, so I ignore the return value here.\n                _pmvie->FNameActr(_pactr->Arid(), &_stn);\n                _stn = stn;\n            }\n        }\n\n        if (_arid != _pactr->Arid())\n        {\n            _pmvie->Pscen()->RemActrCore(_arid);\n            _arid = _pactr->Arid();\n        }\n\n        if (!_pmvie->Pscen()->FAddActrCore(_pactr))\n        {\n            ReleasePpo(&pactr);\n            return (fFalse);\n        }\n\n        pmvu = (PMVU)_pmvie->PddgGet(0);\n        AssertNilOrPo(pmvu, 0);\n\n        if ((pmvu != pvNil) && !pmvu->FTextMode())\n        {\n            _pmvie->Pscen()->SelectActr(_pactr);\n        }\n\n        ReleasePpo(&_pactr);\n    }\n\n    _pmvie->Pscen()->InvalFrmRange();\n\n    _pactr = pactr;\n\n    if (pactr != pvNil)\n    {\n        pactr->Reset();\n    }\n\n    if (_fSndUndo)\n    {\n        _pmvie->Pmsq()->PlayMsq();\n    }\n    else\n    {\n        _pmvie->Pmsq()->FlushMsq();\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n * Set the actor for this undo object.\n *\n * Parameters:\n * \tpactr - Actor to use\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid AUND::SetPactr(PACTR pactr)\n{\n    AssertThis(0);\n\n    _pactr = pactr;\n    pactr->AddRef();\n}\n\n#ifdef DEBUG\n/****************************************************\n * Mark memory used by the AUND\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid AUND::MarkMem(void)\n{\n    AssertThis(0);\n    AUND_PAR::MarkMem();\n    MarkMemObj(_pactr);\n}\n\n/***************************************************************************\n    Assert the validity of the AUND.\n***************************************************************************/\nvoid AUND::AssertValid(ulong grf)\n{\n    AssertNilOrPo(_pactr, 0);\n}\n#endif\n"
  },
  {
    "path": "src/engine/actrsave.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    actrsave.cpp: Actor load/save code\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    Here's the chunk hierarchy:\n\n    ACTR // contains an ACTF (origin, arid, nfrmFirst, tagTmpl...)\n     |\n     +---PATH (chid 0) // _pglxyz (actor path)\n     |\n     +---GGAE (chid 0) // _pggaev (actor events)\n\n\n***************************************************************************/\n#include \"soc.h\"\nASSERTNAME\n\nconst CHID kchidPath = 0;\nconst CHID kchidGgae = 0;\n\nstruct ACTF // Actor chunk on file\n{\n    short bo;        // Byte order\n    short osk;       // OS kind\n    XYZ dxyzFullRte; // Translation of the route\n    long arid;       // Unique id assigned to this actor.\n    long nfrmFirst;  // First frame in this actor's stage life\n    long nfrmLast;   // Last frame in this actor's stage life\n    TAG tagTmpl;     // Tag to actor's template\n};\nconst BOM kbomActf = 0x5ffc0000 | kbomTag;\n\n/***************************************************************************\n    Write the actor out to disk.  Store the root chunk in the given CNO.\n    If this function returns false, it is the client's responsibility to\n    delete the actor chunks.\n***************************************************************************/\nbool ACTR::FWrite(PCFL pcfl, CNO cnoActr, CNO cnoScene)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n\n    ACTF actf;\n    CNO cnoPath;\n    CNO cnoGgae;\n    CNO cnoTmpl;\n    BLCK blck;\n    KID kid;\n    long iaev;\n    AEV *paev;\n    AEVSND aevsnd;\n    long nfrmFirst;\n    long nfrmLast;\n\n    // Validate the actor's lifetime if not done already\n    if (knfrmInvalid != _nfrmFirst)\n    {\n        if (!FGetLifetime(&nfrmFirst, &nfrmLast))\n            return fFalse;\n    }\n#ifdef DEBUG\n    if (knfrmInvalid == _nfrmFirst)\n        Warn(\"Dev: Why are we saving an actor who has no first frame number?\");\n#endif // DEBUG\n\n    // Save and adopt TMPL chunk if it's a ksidUseCrf chunk\n    if (_tagTmpl.sid == ksidUseCrf)\n    {\n        Assert(_ptmpl->FIsTdt(), \"only TDTs should be embedded in user doc\");\n        if (!pcfl->FFind(_tagTmpl.ctg, _tagTmpl.cno))\n        {\n            if (!((PTDT)_ptmpl)->FWrite(pcfl, _tagTmpl.ctg, &cnoTmpl))\n                return fFalse;\n            // Keep CNO the same\n            pcfl->Move(_tagTmpl.ctg, cnoTmpl, _tagTmpl.ctg, _tagTmpl.cno);\n        }\n\n        if (tNo == pcfl->TIsDescendent(kctgActr, cnoActr, _tagTmpl.ctg, _tagTmpl.cno))\n        {\n            if (!pcfl->FAdoptChild(kctgActr, cnoActr, _tagTmpl.ctg,\n                                   _tagTmpl.cno)) // clears loner bit\n            {\n                return fFalse;\n            }\n        }\n    }\n\n    // Write the ACTR chunk:\n    actf.bo = kboCur;\n    actf.osk = koskCur;\n    actf.dxyzFullRte = _dxyzFullRte;\n    actf.arid = _arid;\n    actf.nfrmFirst = _nfrmFirst;\n    actf.nfrmLast = _nfrmLast;\n    actf.tagTmpl = _tagTmpl;\n    if (!pcfl->FPutPv(&actf, size(ACTF), kctgActr, cnoActr))\n        return fFalse;\n\n    // Now write the PATH chunk:\n    if (!pcfl->FAddChild(kctgActr, cnoActr, kchidPath, _pglrpt->CbOnFile(), kctgPath, &cnoPath, &blck))\n    {\n        return fFalse;\n    }\n    if (!_pglrpt->FWrite(&blck))\n        return fFalse;\n\n    // Now write the GGAE chunk:\n    if (!pcfl->FAddChild(kctgActr, cnoActr, kchidGgae, _pggaev->CbOnFile(), kctgGgae, &cnoGgae, &blck))\n    {\n        return fFalse;\n    }\n    if (!_pggaev->FWrite(&blck))\n        return fFalse;\n\n    // Adopt actor sounds into the scene\n    for (iaev = 0; iaev < _pggaev->IvMac(); iaev++)\n    {\n        paev = (AEV *)(_pggaev->QvFixedGet(iaev));\n        if (aetSnd != paev->aet)\n            continue;\n        _pggaev->Get(iaev, &aevsnd);\n        if (aevsnd.tag.sid != ksidUseCrf)\n            continue;\n\n        // For user sounds, the tag's cno must already be correct.\n        // Moreover, FResolveSndTag can't succeed if the msnd chunk is\n        // not yet a child of the current scene.\n\n        // If the msnd chunk already exists as this chid of this scene, continue\n        if (pcfl->FGetKidChidCtg(kctgScen, cnoScene, aevsnd.chid, kctgMsnd, &kid))\n            continue;\n\n        // If the msnd does not exist in this file, it exists in the main movie\n        if (!pcfl->FFind(kctgMsnd, aevsnd.tag.cno))\n            continue;\n\n        // The msnd chunk has not been adopted into the scene as the specified chid\n        if (!pcfl->FAdoptChild(kctgScen, cnoScene, kctgMsnd, aevsnd.tag.cno, aevsnd.chid))\n        {\n            return fFalse;\n        }\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Read the actor data from disk, (re-)construct the actor, and return a\n    pointer to it.\n***************************************************************************/\nPACTR ACTR::PactrRead(PCRF pcrf, CNO cnoActr)\n{\n    AssertPo(pcrf, 0);\n\n    ACTR *pactr;\n    KID kid;\n    PCFL pcfl = pcrf->Pcfl();\n\n    pactr = NewObj ACTR;\n    if (pvNil == pactr)\n        goto LFail;\n    if (!pactr->_FReadActor(pcfl, cnoActr))\n        goto LFail;\n    if (!pcfl->FGetKidChidCtg(kctgActr, cnoActr, kchidPath, kctgPath, &kid))\n        goto LFail;\n    if (!pactr->_FReadRoute(pcfl, kid.cki.cno))\n        goto LFail;\n    if (!pcfl->FGetKidChidCtg(kctgActr, cnoActr, kchidGgae, kctgGgae, &kid))\n        goto LFail;\n    if (!pactr->_FReadEvents(pcfl, kid.cki.cno))\n        goto LFail;\n    if (!pactr->_FOpenTags(pcrf))\n        goto LFail;\n    if (pvNil == (pactr->_pglsmm = GL::PglNew(size(SMM), kcsmmGrow)))\n        goto LFail;\n    pactr->_pglsmm->SetMinGrow(kcsmmGrow);\n\n    // Now that the tags are open, fetch the TMPL\n    pactr->_ptmpl = (PTMPL)vptagm->PbacoFetch(&pactr->_tagTmpl, TMPL::FReadTmpl);\n    if (pvNil == pactr->_ptmpl)\n        goto LFail;\n\n    if (knfrmInvalid == pactr->_nfrmLast && knfrmInvalid != pactr->_nfrmFirst)\n    {\n        long nfrmFirst, nfrmLast;\n\n        if (!pactr->FGetLifetime(&nfrmFirst, &nfrmLast))\n            goto LFail;\n    }\n\n    AssertPo(pactr, 0);\n    return pactr;\nLFail:\n    Warn(\"PactrRead failed\");\n    ReleasePpo(&pactr);\n    return pvNil;\n}\n\n/***************************************************************************\n    Read the ACTF. This handles converting an ACTF that doesn't have an\n    nfrmLast.\n***************************************************************************/\nbool _FReadActf(PBLCK pblck, ACTF *pactf)\n{\n    AssertPo(pblck, 0);\n    AssertVarMem(pactf);\n    bool fOldActf = fFalse;\n\n    if (!pblck->FUnpackData())\n        return fFalse;\n\n    if (pblck->Cb() != size(ACTF))\n    {\n        if (pblck->Cb() != size(ACTF) - size(long))\n            return fFalse;\n        fOldActf = fTrue;\n    }\n\n    if (!pblck->FReadRgb(pactf, pblck->Cb(), 0))\n        return fFalse;\n\n    if (fOldActf)\n    {\n        BltPb(&pactf->nfrmLast, &pactf->nfrmLast + 1, size(ACTF) - offset(ACTF, nfrmLast) - size(long));\n    }\n\n    if (kboOther == pactf->bo)\n        SwapBytesBom(pactf, kbomActf);\n    if (kboCur != pactf->bo)\n    {\n        Bug(\"Corrupt ACTF\");\n        return fFalse;\n    }\n\n    if (fOldActf)\n        pactf->nfrmLast = knfrmInvalid;\n    return fTrue;\n}\n\n/***************************************************************************\n    Read the ACTR chunk\n***************************************************************************/\nbool ACTR::_FReadActor(PCFL pcfl, CNO cno)\n{\n    AssertBaseThis(0);\n    AssertPo(pcfl, 0);\n\n    ACTF actf;\n    BLCK blck;\n\n    if (!pcfl->FFind(kctgActr, cno, &blck) || !_FReadActf(&blck, &actf))\n        return fFalse;\n\n    Assert(kboCur == actf.bo, \"bad ACTF\");\n    _dxyzFullRte = actf.dxyzFullRte;\n    _arid = actf.arid;\n    _nfrmFirst = actf.nfrmFirst;\n    _nfrmLast = actf.nfrmLast;\n    _tagTmpl = actf.tagTmpl;\n    _fLifeDirty = (knfrmInvalid == _nfrmFirst) || (knfrmInvalid == _nfrmLast);\n\n    if (_tagTmpl.sid == ksidUseCrf)\n    {\n        // Actor is a TDT.  Tag might be wrong if this actor was imported,\n        // so look for child TMPL.\n        KID kid;\n\n        if (!pcfl->FGetKidChidCtg(kctgActr, cno, 0, kctgTmpl, &kid))\n        {\n            Bug(\"where's the child TMPL?\");\n            return fTrue; // hope the tag is correct\n        }\n        _tagTmpl.cno = kid.cki.cno;\n    }\n\n    return fTrue;\n}\n\n/******************************************************************************\n    FAdjustAridOnFile\n        Given a chunky file, a CNO and a delta for the arid, updates the\n        arid for the actor on file.\n\n    Arguments:\n        PCFL pcfl   -- the file the actor's on\n        CNO cno     -- the CNO of the actor\n        long darid  -- the change of the arid\n\n    Returns: fTrue if everything went well, fFalse otherwise\n\n************************************************************ PETED ***********/\nbool ACTR::FAdjustAridOnFile(PCFL pcfl, CNO cno, long darid)\n{\n    AssertPo(pcfl, 0);\n    Assert(darid != 0, \"Why call this with darid == 0?\");\n\n    ACTF actf;\n    BLCK blck;\n\n    if (!pcfl->FFind(kctgActr, cno, &blck) || !_FReadActf(&blck, &actf))\n        return fFalse;\n\n    Assert(kboCur == actf.bo, \"bad ACTF\");\n    actf.arid += darid;\n    return pcfl->FPutPv(&actf, size(ACTF), kctgActr, cno);\n}\n\n/***************************************************************************\n    Read the PATH (_pglrpt) chunk\n***************************************************************************/\nbool ACTR::_FReadRoute(PCFL pcfl, CNO cno)\n{\n    AssertBaseThis(0);\n    AssertPo(pcfl, 0);\n\n    BLCK blck;\n    short bo;\n\n    if (!pcfl->FFind(kctgPath, cno, &blck))\n        return fFalse;\n    _pglrpt = GL::PglRead(&blck, &bo);\n    if (pvNil == _pglrpt)\n        return fFalse;\n    AssertBomRglw(kbomRpt, size(RPT));\n    if (kboOther == bo)\n    {\n        SwapBytesRglw(_pglrpt->QvGet(0), LwMul(_pglrpt->IvMac(), size(RPT) / size(long)));\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Read the GGAE (_pggaev) chunk\n***************************************************************************/\nbool ACTR::_FReadEvents(PCFL pcfl, CNO cno)\n{\n    AssertBaseThis(0);\n    AssertPo(pcfl, 0);\n\n    BLCK blck;\n    short bo;\n\n    if (!pcfl->FFind(kctgGgae, cno, &blck))\n        return fFalse;\n    _pggaev = GG::PggRead(&blck, &bo);\n    if (pvNil == _pggaev)\n        return fFalse;\n    if (kboOther == bo)\n        _SwapBytesPggaev(_pggaev);\n    return fTrue;\n}\n\n/***************************************************************************\n    SwapBytes all events in pggaev\n***************************************************************************/\nvoid ACTR::_SwapBytesPggaev(PGG pggaev)\n{\n    AssertPo(pggaev, 0);\n\n    long iaev;\n\n    for (iaev = 0; iaev < pggaev->IvMac(); iaev++)\n    {\n        SwapBytesBom(pggaev->QvFixedGet(iaev), kbomAev);\n        switch (((AEV *)pggaev->QvFixedGet(iaev))->aet)\n        {\n        case aetCost:\n            SwapBytesBom(pggaev->QvGet(iaev), kbomAevcost);\n            break;\n        case aetSnd:\n            SwapBytesBom(pggaev->QvGet(iaev), kbomAevsnd);\n            break;\n        case aetSize:\n            SwapBytesBom(pggaev->QvGet(iaev), kbomAevsize);\n            break;\n        case aetPull:\n            SwapBytesBom(pggaev->QvGet(iaev), kbomAevpull);\n            break;\n        case aetRotF:\n        case aetRotH:\n            SwapBytesBom(pggaev->QvGet(iaev), kbomAevrot);\n            break;\n        case aetActn:\n            SwapBytesBom(pggaev->QvGet(iaev), kbomAevactn);\n            break;\n        case aetAdd:\n            SwapBytesBom(pggaev->QvGet(iaev), kbomAevadd);\n            break;\n        case aetFreeze:\n            SwapBytesBom(pggaev->QvGet(iaev), kbomAevfreeze);\n            break;\n        case aetMove:\n            SwapBytesBom(pggaev->QvGet(iaev), kbomAevmove);\n            break;\n        case aetTweak:\n            SwapBytesBom(pggaev->QvGet(iaev), kbomAevtweak);\n            break;\n        case aetStep:\n            SwapBytesBom(pggaev->QvGet(iaev), kbomAevstep);\n            break;\n        case aetRem:\n            // no var data\n            break;\n        default:\n            Bug(\"Unknown AET\");\n            break;\n        }\n    }\n}\n\n/***************************************************************************\n    Open all tags for this actor\n***************************************************************************/\nbool ACTR::_FOpenTags(PCRF pcrf)\n{\n    AssertBaseThis(0);\n    AssertPo(pcrf, 0);\n\n    long iaev = 0;\n    PTAG ptag;\n\n    if (!TAGM::FOpenTag(&_tagTmpl, pcrf))\n        goto LFail;\n\n    _pggaev->Lock();\n    for (iaev = 0; iaev < _pggaev->IvMac(); iaev++)\n    {\n        if (_FIsIaevTag(_pggaev, iaev, &ptag))\n        {\n            if (!TAGM::FOpenTag(ptag, pcrf))\n                goto LFail;\n        }\n    }\n    _pggaev->Unlock();\n    return fTrue;\nLFail:\n    // Close the tags that were opened before failure\n    while (--iaev >= 0)\n    {\n        if (_FIsIaevTag(_pggaev, iaev, &ptag))\n            TAGM::CloseTag(ptag);\n    }\n    _pggaev->Unlock();\n    return fFalse;\n}\n\n/***************************************************************************\n    Close all tags in this actor's event stream\n***************************************************************************/\nvoid ACTR::_CloseTags(void)\n{\n    AssertBaseThis(0); // because destructor calls this function\n\n    long iaev;\n    PTAG ptag;\n\n    TAGM::CloseTag(&_tagTmpl);\n\n    if (pvNil == _pggaev)\n        return;\n\n    _pggaev->Lock();\n    for (iaev = 0; iaev < _pggaev->IvMac(); iaev++)\n    {\n        if (_FIsIaevTag(_pggaev, iaev, &ptag))\n            TAGM::CloseTag(ptag);\n    }\n    _pggaev->Unlock();\n    return;\n}\n\n/***************************************************************************\n    Get all the tags that the actor uses\n***************************************************************************/\nPGL ACTR::PgltagFetch(PCFL pcfl, CNO cno, bool *pfError)\n{\n    AssertPo(pcfl, 0);\n    AssertVarMem(pfError);\n\n    ACTF actf;\n    BLCK blck;\n    short bo;\n    PTAG ptag;\n    PGL pgltag;\n    PGG pggaev = pvNil;\n    long iaev;\n    KID kid;\n\n    pgltag = GL::PglNew(size(TAG), 0);\n    if (pvNil == pgltag)\n        goto LFail;\n\n    // Read the ACTF so we can insert tagTmpl:\n    if (!pcfl->FFind(kctgActr, cno, &blck) || !_FReadActf(&blck, &actf))\n        goto LFail;\n\n    if (actf.tagTmpl.sid == ksidUseCrf)\n    {\n        PGL pgltagTmpl;\n\n        // Actor is a TDT.  Tag might be wrong if this actor was imported,\n        // so look for child TMPL.\n        if (pcfl->FGetKidChidCtg(kctgActr, cno, 0, kctgTmpl, &kid))\n        {\n            actf.tagTmpl.cno = kid.cki.cno;\n        }\n        else\n        {\n            Bug(\"where's the child TMPL?\");\n        }\n\n        pgltagTmpl = TMPL::PgltagFetch(pcfl, actf.tagTmpl.ctg, actf.tagTmpl.cno, pfError);\n        if (*pfError)\n        {\n            ReleasePpo(&pgltagTmpl);\n            goto LFail;\n        }\n        if (pvNil != pgltagTmpl)\n        {\n            long itag;\n            TAG tag;\n\n            for (itag = 0; itag < pgltagTmpl->IvMac(); itag++)\n            {\n                pgltagTmpl->Get(itag, &tag);\n                if (!pgltag->FAdd(&tag))\n                {\n                    ReleasePpo(&pgltagTmpl);\n                    goto LFail;\n                }\n            }\n            ReleasePpo(&pgltagTmpl);\n        }\n    }\n\n    if (!pgltag->FInsert(0, &actf.tagTmpl))\n        goto LFail;\n\n    // Pull all tags out of the event list:\n    if (!pcfl->FGetKidChidCtg(kctgActr, cno, kchidGgae, kctgGgae, &kid))\n        goto LFail;\n    if (!pcfl->FFind(kctgGgae, kid.cki.cno, &blck))\n        goto LFail;\n    pggaev = GG::PggRead(&blck, &bo);\n    if (pvNil == pggaev)\n        goto LFail;\n    if (kboOther == bo)\n        _SwapBytesPggaev(pggaev);\n    pggaev->Lock();\n    for (iaev = 0; iaev < pggaev->IvMac(); iaev++)\n    {\n        if (_FIsIaevTag(pggaev, iaev, &ptag))\n        {\n            if (!pgltag->FAdd(ptag))\n            {\n                pggaev->Unlock();\n                goto LFail;\n            }\n        }\n    }\n    pggaev->Unlock();\n    *pfError = fFalse;\n    ReleasePpo(&pggaev);\n    return pgltag;\nLFail:\n    *pfError = fTrue;\n    ReleasePpo(&pgltag);\n    ReleasePpo(&pggaev);\n    return pvNil;\n}\n\n/***************************************************************************\n    If the iaev'th event of pggaev has a tag, sets *pptag to point to it.\n    WARNING: unless you locked pggaev, *pptag is a qtag!\n***************************************************************************/\nbool ACTR::_FIsIaevTag(PGG pggaev, long iaev, PTAG *pptag, PAEV *pqaev)\n{\n    AssertPo(pggaev, 0);\n    AssertIn(iaev, 0, pggaev->IvMac());\n    AssertVarMem(pptag);\n    AssertNilOrVarMem(pqaev);\n\n    AEV *qaev;\n    qaev = (AEV *)pggaev->QvFixedGet(iaev);\n    if (pqaev != pvNil)\n        *pqaev = qaev;\n\n    switch (qaev->aet)\n    {\n    case aetCost:\n        if (!((AEVCOST *)pggaev->QvGet(iaev))->fCmtl)\n        {\n            *pptag = &((AEVCOST *)pggaev->QvGet(iaev))->tag;\n            return fTrue;\n        }\n        break;\n    case aetSnd:\n        *pptag = &((AEVSND *)pggaev->QvGet(iaev))->tag;\n        return fTrue;\n    case aetSize:\n    case aetPull:\n    case aetRotF:\n    case aetRotH:\n    case aetActn:\n    case aetAdd:\n    case aetFreeze:\n    case aetTweak:\n    case aetStep:\n    case aetRem:\n    case aetMove:\n        break;\n    default:\n        Bug(\"Unknown AET\");\n        break;\n    }\n    *pptag = pvNil;\n    return fFalse;\n}\n"
  },
  {
    "path": "src/engine/actrsnd.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    Actor Sound.\n\n    Primary Author: ******\n    Status:  Reviewed\n\n***************************************************************************/\n\n#include \"soc.h\"\n\nASSERTNAME\n\n/***************************************************************************\n\n    Add a sound event to the actor event list, and create an undo object\n\n***************************************************************************/\nbool ACTR::FSetSnd(PTAG ptag, tribool fLoop, tribool fQueue, tribool fMotionMatch, long vlm, long sty)\n{\n    AssertThis(0);\n    AssertVarMem(ptag);\n    AssertIn(sty, 0, styLim);\n\n    PACTR pactrDup;\n\n    if (!FDup(&pactrDup))\n    {\n        return fFalse;\n    }\n\n    if (!FSetSndCore(ptag, fLoop, fQueue, fMotionMatch, vlm, sty))\n    {\n        Restore(pactrDup);\n        ReleasePpo(&pactrDup);\n        return fFalse;\n    }\n\n    if (!FCreateUndo(pactrDup, fTrue))\n    {\n        Restore(pactrDup);\n        ReleasePpo(&pactrDup);\n        return fFalse;\n    }\n\n    ReleasePpo(&pactrDup);\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Add a sound event to the actor event list\n    For user sounds, the chid must also be fetched for the argument *ptag\n    and stored with the event, since for user sounds, the cno can change\n    (eg on scene import)\n    Note: ptag is current because the sound browser has just completed building\n    a current tag.\n\n***************************************************************************/\nbool ACTR::FSetSndCore(PTAG ptag, tribool fLoop, tribool fQueue, tribool fMotionMatch, long vlm, long sty)\n{\n    AssertThis(0);\n    AssertVarMem(ptag);\n    AssertIn(sty, 0, styLim);\n\n    PMSND pmsnd = pvNil;\n    AEVSND aevsnd;\n    long ccel;\n    long iaev;\n    AEV *paev;\n    long sqn;\n    long cbVar;\n\n    // Verify sound before including in the event list\n    pmsnd = (PMSND)vptagm->PbacoFetch(ptag, MSND::FReadMsnd);\n    if (pvNil == pmsnd)\n        goto LFail;\n\n    if (pmsnd->Sty() == styMidi)\n    {\n        // There are no midi actor sounds in the product\n        PushErc(ercSocNoActrMidi);\n        goto LFail;\n    }\n\n    // Verify space up front\n    cbVar = kcbVarStep + kcbVarSnd;\n    if (!_pggaev->FEnsureSpace(2, cbVar, fgrpNil))\n        return fFalse;\n\n    aevsnd.fLoop = fLoop;\n    aevsnd.fQueue = fQueue;\n    aevsnd.vlm = (vlm == vlmNil) ? pmsnd->Vlm() : vlm;\n    aevsnd.tag = *ptag;\n    aevsnd.fNoSound = pmsnd->FNoSound();\n    aevsnd.sty = (sty == styNil) ? pmsnd->Sty() : sty;\n    sty = aevsnd.sty;\n    vlm = aevsnd.vlm;\n\n    if (ptag->sid != ksidUseCrf)\n        TrashVar(&aevsnd.chid);\n    else\n    {\n        if (!_pscen->Pmvie()->FChidFromUserSndCno(aevsnd.tag.cno, &aevsnd.chid))\n            goto LFail;\n    }\n\n    if (!fMotionMatch)\n        aevsnd.celn = smmNil; // Not a motion match sound\n    else\n    {\n        if (!_ptmpl->FGetCcelActn(_anidCur, &ccel))\n            goto LFail;\n        aevsnd.celn = _celnCur % ccel;\n    }\n\n    if (!_FAddDoAev(aetSnd, kcbVarSnd, &aevsnd))\n        goto LFail;\n\n    ReleasePpo(&pmsnd);\n\n    // Remove \"no sounds\" of this sqn between here and the next\n    // sound of this sqn\n    sqn = MSND::SqnActr(sty, _arid);\n    for (iaev = _iaevCur; iaev < _pggaev->IvMac(); iaev++)\n    {\n        AEVSND aevsndT;\n        paev = (AEV *)_pggaev->QvFixedGet(iaev);\n        if (aetAdd == paev->aet)\n            break;\n        if (aetSnd != paev->aet)\n            continue;\n        _pggaev->Get(iaev, &aevsndT);\n        if (MSND::SqnActr(aevsndT.sty, _arid) != sqn)\n            continue;\n\n        // Quit when reach real sound of same sqn\n        if (!aevsndT.fNoSound)\n            break;\n        _RemoveAev(iaev);\n        iaev--;\n    }\n\n    // Enqueue the motion match sounds in the Msq\n    // Allow the edit even if all sounds do not play\n    if (!(_pscen->GrfScen() & fscenSounds))\n        _FEnqueueSmmInMsq(); // Ignore errors : other sounds involved\n\n    Pscen()->Pmvie()->Pmcc()->SetSndFrame(fTrue);\n    return fTrue;\n\nLFail:\n    ReleasePpo(&pmsnd);\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Enqueue the sound at event iaev.\n    Enter motion match sounds in the smm gl.\n    Enter non-motion match sounds in the Msq\n\n***************************************************************************/\nbool ACTR::_FEnqueueSnd(long iaev)\n{\n    AssertThis(0);\n    AssertIn(iaev, 0, _pggaev->IvMac());\n\n    AEVSND aevsnd;\n    PMSND pmsnd = pvNil;\n    long tool;\n\n    _pggaev->Get(iaev, &aevsnd);\n\n    //\n    // Motion match sounds are not enqueued when event iaev is seen\n    // Otherwise the sound would be played twice\n    //\n    if (aevsnd.celn != smmNil)\n    {\n        // Insert Smm for this cel in the gl\n        return _FInsertSmm(iaev);\n    }\n\n    if (aevsnd.fLoop)\n        tool = toolLooper;\n    else\n        tool = toolSounder;\n\n    // If the scene was imported, the sound will need to be resolved\n    if (aevsnd.tag.sid == ksidUseCrf)\n    {\n        if (!_pscen->Pmvie()->FResolveSndTag(&aevsnd.tag, aevsnd.chid))\n        {\n            Bug(\"Actrsnd: Expected to resolve snd tag\");\n            goto LFail;\n        }\n        _pggaev->Put(iaev, &aevsnd); // Update event\n    }\n\n    pmsnd = (PMSND)vptagm->PbacoFetch(&aevsnd.tag, MSND::FReadMsnd);\n    if (pvNil == pmsnd)\n        goto LFail;\n\n    if (!_pscen->Pmvie()->Pmsq()->FEnqueue(pmsnd, _arid, aevsnd.fLoop, aevsnd.fQueue, aevsnd.vlm, pmsnd->Spr(tool),\n                                           fTrue))\n    {\n        goto LFail;\n    }\n\n    ReleasePpo(&pmsnd);\n    return fTrue;\n\nLFail:\n    ReleasePpo(&pmsnd);\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Play the motion match sounds appropriate to the current cel\n\n***************************************************************************/\nbool ACTR::_FEnqueueSmmInMsq(void)\n{\n    AssertThis(0);\n\n    long celn;\n    long ccel;\n    long ismm;\n    SMM *psmm;\n    bool fSuccess = fTrue;\n    PMSND pmsnd = pvNil;\n\n    if (!_ptmpl->FGetCcelActn(_anidCur, &ccel))\n        return fFalse;\n    celn = _celnCur % ccel;\n\n    for (ismm = 0; ismm < _pglsmm->IvMac(); ismm++)\n    {\n        psmm = (SMM *)(_pglsmm->QvGet(ismm));\n        Assert(psmm->aevsnd.celn != smmNil, \"Logic error in smm\");\n        if (psmm->aevsnd.celn != celn)\n        {\n            continue;\n        }\n\n        if (psmm->aevsnd.tag.sid == ksidUseCrf)\n        {\n            if (!_pscen->Pmvie()->FResolveSndTag(&psmm->aevsnd.tag, psmm->aevsnd.chid))\n            {\n                Bug(\"Actrsnd: Expected to resolve snd tag\");\n                goto LFail;\n            }\n            _pglsmm->Put(ismm, psmm); // Update event\n        }\n\n        pmsnd = (PMSND)vptagm->PbacoFetch(&psmm->aevsnd.tag, MSND::FReadMsnd);\n        if (pvNil == pmsnd)\n        {\n            fSuccess = fFalse;\n            continue;\n        }\n\n        // Motion match sounds need to be entered at low priority as sounds of the\n        // same type take precedence over them\n        if (!_pscen->Pmvie()->Pmsq()->FEnqueue(pmsnd, _arid, psmm->aevsnd.fLoop, psmm->aevsnd.fQueue, psmm->aevsnd.vlm,\n                                               pmsnd->Spr(toolMatcher), fTrue, 0, fTrue))\n        {\n            // Continuing would result in additional error\n            goto LFail;\n        }\n\n        ReleasePpo(&pmsnd);\n    }\n\n    return fSuccess;\nLFail:\n    ReleasePpo(&pmsnd);\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Insert a motion match sound in the smm queue\n\n***************************************************************************/\nbool ACTR::_FInsertSmm(long iaev)\n{\n    AssertThis(0);\n    AssertIn(iaev, 0, _pggaev->IvMac());\n\n    long ismm;\n    SMM smm;\n    SMM *psmm;\n    AEV *paev;\n    AEVSND *paevsnd;\n\n    paev = (AEV *)_pggaev->QvFixedGet(iaev);\n    paevsnd = (AEVSND *)_pggaev->QvGet(iaev);\n\n    smm.aev = *paev;\n    smm.aevsnd = *paevsnd;\n\n    for (ismm = 0; ismm < _pglsmm->IvMac(); ismm++)\n    {\n        psmm = (SMM *)_pglsmm->QvGet(ismm);\n        if (psmm->aevsnd.celn != paevsnd->celn)\n            continue;\n        if (psmm->aevsnd.sty != paevsnd->sty)\n            continue;\n\n        // Replace the current smm with the new\n        _pglsmm->Put(ismm, &smm);\n        return fTrue;\n    }\n\n    // No sound for this cel was found\n    // Add a new mm sound\n    return _pglsmm->FAdd(&smm);\n}\n\n/***************************************************************************\n\n    Delete old motion sounds in event list\n\n***************************************************************************/\nbool ACTR::_FRemoveAevMm(long anid)\n{\n    AssertThis(0);\n\n    long iaev;\n    AEV *paev;\n    AEVSND aevsnd;\n    AEVACTN aevactn;\n\n    // Remove motion match sounds from the previous action\n    for (iaev = _iaevCur; iaev < _pggaev->IvMac(); iaev++)\n    {\n        paev = (AEV *)_pggaev->QvFixedGet(iaev);\n        if (aetAdd == paev->aet)\n            break;\n        if (aetActn == paev->aet)\n        {\n            _pggaev->Get(iaev, &aevactn);\n            if (aevactn.anid != anid)\n                break;\n            continue;\n        }\n        if (aetSnd != paev->aet)\n            continue;\n\n        // Test if sound is motion match\n        _pggaev->Get(iaev, &aevsnd);\n        if (smmNil == aevsnd.celn)\n            continue;\n        _RemoveAev(iaev);\n        iaev--;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Insert default motion match sounds in event list\n\n***************************************************************************/\nbool ACTR::_FAddAevDefMm(long anid)\n{\n    AssertThis(0);\n    TAG tag;\n    PMSND pmsnd;\n    long iceln;\n    long ccel;\n    long vlm;\n    long sty;\n    bool fSoundExists;\n\n    // Insert new motion match sounds\n    if (!_ptmpl->FGetCcelActn(anid, &ccel))\n        return fFalse;\n\n    for (iceln = 0; iceln < ccel; iceln++)\n    {\n        if (!_ptmpl->FGetSndActnCel(anid, iceln, &fSoundExists, &tag))\n            continue; // Ignore failure\n        if (!fSoundExists)\n            continue;\n\n        pmsnd = (PMSND)vptagm->PbacoFetch(&tag, MSND::FReadMsnd);\n        if (pvNil == pmsnd)\n            continue; // Ignore failure\n\n        vlm = pmsnd->Vlm();\n        sty = pmsnd->Sty();\n\n        if (!FSetSndCore(&tag, tribool::tNo, (tribool)vlm, tribool::tNo, sty, tribool::tYes))\n        {\n            goto LFail; // Continuing pointless\n        }\n\n        ReleasePpo(&pmsnd);\n    }\n\n    return fTrue;\n\nLFail:\n    ReleasePpo(&pmsnd);\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Set the Volume for sounds in the current frame of the specified sty\n\n***************************************************************************/\nbool ACTR::FSetVlmSnd(long sty, bool fMotionMatch, long vlm)\n{\n    AssertThis(0);\n    AssertIn(sty, 0, styLim);\n    AssertIn(vlm, 0, kvlmFull + 1);\n\n    AEVSND aevsnd;\n    bool fActnThisFrame = fFalse;\n    long celn;\n    long ccel;\n    long iaev;\n    long ismm;\n    AEV aev;\n    SMM smm;\n    long nfrmMM = ivNil;\n\n    if (!_ptmpl->FGetCcelActn(_anidCur, &ccel))\n        return fFalse;\n\n    celn = _celnCur % ccel;\n\n    // Set the volume for any events in the actor list for this frame\n    for (iaev = _iaevFrmMin; iaev < _iaevCur; iaev++)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if (aev.aet == aetActn)\n            fActnThisFrame = fTrue;\n\n        if (aev.aet != aetSnd)\n            continue;\n\n        _pggaev->Get(iaev, &aevsnd);\n        if (FPure(aevsnd.celn != smmNil) != fMotionMatch)\n            continue;\n\n        if (aevsnd.sty != sty)\n            continue;\n        aevsnd.vlm = vlm;\n        _pggaev->Put(iaev, &aevsnd);\n    }\n\n    // Set the volume for any earlier motion match sounds\n    // which land in this cel\n    if (fMotionMatch && !fActnThisFrame)\n    {\n        for (iaev = _iaevFrmMin - 1; iaev > 0; iaev--)\n        {\n            _pggaev->GetFixed(iaev, &aev);\n\n            // Quit when the action changes\n            if (aev.aet == aetActn || (nfrmMM != ivNil && nfrmMM > aev.nfrm))\n                break;\n\n            if (aev.aet != aetSnd)\n                continue;\n            _pggaev->Get(iaev, &aevsnd);\n\n            if (aevsnd.sty != sty)\n                continue;\n\n            // Only adjust sounds that match this cel\n            if (aevsnd.celn != celn)\n                continue;\n            aevsnd.vlm = vlm;\n            _pggaev->Put(iaev, &aevsnd);\n            nfrmMM = aev.nfrm;\n            // There are no queued motion match sounds by spec\n            break;\n        }\n    }\n\n    if (fMotionMatch)\n    {\n        // Adjust the volume in the smm also\n        for (ismm = 0; ismm < _pglsmm->IvMac(); ismm++)\n        {\n            _pglsmm->Get(ismm, &smm);\n            Assert(smm.aevsnd.celn != smmNil, \"Logic error in smm\");\n\n            if (smm.aevsnd.celn != celn)\n                continue;\n\n            if (smm.aevsnd.sty != sty)\n                continue;\n\n            // Set the volume in the smm\n            smm.aevsnd.vlm = vlm;\n            _pglsmm->Put(ismm, &smm);\n        }\n    }\n\n    _pscen->MarkDirty();\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Query actor for current frame sounds\n\n***************************************************************************/\nbool ACTR::FQuerySnd(long sty, bool fMotionMatch, PGL *pglTagSnd, long *pvlm, bool *pfLoop)\n{\n    AssertThis(0);\n    AssertIn(sty, 0, styLim);\n    AssertVarMem(pvlm);\n    AssertVarMem(pfLoop);\n\n    PGL pgltag = pvNil;\n    AEVSND aevsnd;\n    long ccel;\n    long celn;\n    AEV aev;\n    long iaev;\n    long ismm;\n    SMM smm;\n\n    if (pvNil == (pgltag = GL::PglNew(size(TAG), kctagSndGrow)))\n        return fFalse;\n    pgltag->SetMinGrow(kctagSndGrow);\n\n    if (!fMotionMatch)\n    {\n        // Non-motion match sounds\n        for (iaev = _iaevFrmMin; iaev < _iaevCur; iaev++)\n        {\n            _pggaev->GetFixed(iaev, &aev);\n            if (aev.aet != aetSnd)\n                continue;\n\n            _pggaev->Get(iaev, &aevsnd);\n            if (aevsnd.sty != sty)\n                continue;\n\n            // Handle motion match sounds later\n            if (aevsnd.celn != smmNil)\n                continue;\n            if (aevsnd.tag.sid == ksidUseCrf)\n            {\n                if (!_pscen->Pmvie()->FResolveSndTag(&aevsnd.tag, aevsnd.chid))\n                    goto LFail;\n            }\n            if (!pgltag->FAdd(&aevsnd.tag))\n                goto LFail;\n            *pvlm = aevsnd.vlm;\n            *pfLoop = aevsnd.fLoop;\n        }\n    }\n\n    if (fMotionMatch)\n    {\n        if (!_ptmpl->FGetCcelActn(_anidCur, &ccel))\n            goto LFail;\n\n        celn = _celnCur % ccel;\n\n        // Motion match sounds\n        for (ismm = 0; ismm < _pglsmm->IvMac(); ismm++)\n        {\n            _pglsmm->Get(ismm, &smm);\n            if (smm.aevsnd.sty != sty)\n                continue;\n            if (smm.aevsnd.celn != celn)\n                continue;\n            if (smm.aevsnd.tag.sid == ksidUseCrf)\n            {\n                if (!_pscen->Pmvie()->FResolveSndTag(&smm.aevsnd.tag, smm.aevsnd.chid))\n                    goto LFail;\n            }\n            if (!pgltag->FAdd(&smm.aevsnd.tag))\n                goto LFail;\n            *pvlm = smm.aevsnd.vlm;\n            *pfLoop = smm.aevsnd.fLoop;\n            break;\n        }\n    }\n\n    if (pgltag->IvMac() == 0)\n    {\n        ReleasePpo(&pgltag);\n        *pglTagSnd = pvNil;\n        return fTrue;\n    }\n\n    *pglTagSnd = pgltag;\n    return fTrue;\n\nLFail:\n    ReleasePpo(&pgltag);\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Delete a sound in this frame\n\n***************************************************************************/\nbool ACTR::FDeleteSndCore(long sty, bool fMotionMatch)\n{\n    AssertThis(0);\n    AssertIn(sty, 0, styLim);\n\n    AEVSND aevsnd;\n    long iaevFirst;\n    long iaev;\n    long ismm;\n    long ccel;\n    long celn;\n    AEV aev;\n    SMM smm;\n    long nfrmMM = ivNil; // For motion match, this may be an earlier frame\n\n    // First the actor event list\n    if (!_ptmpl->FGetCcelActn(_anidCur, &ccel))\n        return fFalse;\n    celn = _celnCur % ccel;\n\n    iaevFirst = (fMotionMatch) ? _iaevActnCur : _iaevFrmMin;\n    for (iaev = _iaevCur - 1; iaev >= iaevFirst; iaev--)\n    {\n        _pggaev->GetFixed(iaev, &aev);\n        if (fMotionMatch && nfrmMM != ivNil && nfrmMM > aev.nfrm)\n            break;\n\n        if (aev.aet != aetSnd)\n            continue;\n\n        _pggaev->Get(iaev, &aevsnd);\n        if (aevsnd.sty != sty)\n            continue;\n        if ((aevsnd.celn != smmNil) != fMotionMatch)\n            continue;\n\n        // Only delete the sound that match this cel\n        if (fMotionMatch && aevsnd.celn != celn)\n            continue;\n\n        // Delete this sound & continue to remove any\n        // other sounds which are possibly chained\n        _RemoveAev(iaev);\n        nfrmMM = aev.nfrm;\n    }\n\n    if (fMotionMatch)\n    {\n        // Also the motion match sound list : smm\n        if (!_ptmpl->FGetCcelActn(_anidCur, &ccel))\n            return fFalse;\n        celn = _celnCur % ccel;\n\n        // Motion match sounds\n        for (ismm = 0; ismm < _pglsmm->IvMac(); ismm++)\n        {\n            _pglsmm->Get(ismm, &smm);\n            if (smm.aevsnd.sty != sty)\n                continue;\n            if (smm.aevsnd.celn != celn)\n                continue;\n            _pglsmm->Delete(ismm);\n            ismm--;\n        }\n    }\n\n    _pscen->MarkDirty();\n    return fTrue;\n}\n\n/******************************************************************************\n    FSoundInFrm\n        Enumerates all actor events for current frame looking for a sound\n        event.\n\n    Returns: fTrue if a sound event was found, fFalse otherwise\n\n************************************************************ PETED ***********/\nbool ACTR::FSoundInFrm(void)\n{\n    AssertThis(0);\n    AssertPo(Pscen(), 0);\n\n    /* Can't provide useful info if we're not at the current scene frame */\n    if (Pscen()->Nfrm() != _nfrmCur)\n        return fFalse;\n\n    for (long iaev = _iaevFrmMin; iaev < _iaevCur; iaev++)\n    {\n        AEV aev;\n\n        _pggaev->GetFixed(iaev, &aev);\n        if (aev.aet == aetSnd)\n            return fTrue;\n    }\n    return fFalse;\n}\n\n/******************************************************************************\n    Resolve all sound tags\n\n******************************************************************************/\nbool ACTR::FResolveAllSndTags(CNO cnoScen)\n{\n    AssertThis(0);\n    long iaev;\n    AEV *paev;\n    AEVSND aevsnd;\n    bool fSuccess = fTrue;\n\n    for (iaev = 0; iaev < _pggaev->IvMac(); iaev++)\n    {\n        paev = (AEV *)_pggaev->QvFixedGet(iaev);\n        if (paev->aet != aetSnd)\n            continue;\n        _pggaev->Get(iaev, &aevsnd);\n        if (aevsnd.tag.sid == ksidUseCrf)\n        {\n            if (!_pscen->Pmvie()->FResolveSndTag(&aevsnd.tag, aevsnd.chid, cnoScen))\n            {\n                fSuccess = fFalse;\n                continue;\n            }\n            _pggaev->Put(iaev, &aevsnd);\n        }\n    }\n    return fSuccess;\n}\n"
  },
  {
    "path": "src/engine/bkgd.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    bkgd.cpp: Background class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    A BKGD (background) consists of a set of light sources (GLLT), a\n    background sound (SND), and one or more camera views.  Each camera view\n    consists of a camera specification, a pre-rendered RGB bitmap, and a\n    pre-rendered Z-buffer.  Here's how the chunks look:\n\n    BKGD // Contains stage bounding cuboid\n     |\n     +---GLLT (chid 0) // GL of light position specs (LITEs)\n     |\n     +---SND  (chid 0) // Background sound/music\n     |\n     +---CAM  (chid 0) // Contains camera pos/orient matrix, hither, yon\n     |    |\n     |    +---MBMP (chid 0) // Background RGB bitmap\n     |    |\n     |    +---ZBMP (chid 0) // Background Z-buffer\n     |\n     +---CAM (chid 1)\n     |    |\n     |    +---MBMP (chid 0)\n     |    |\n     |    +---ZBMP (chid 0)\n     |\n     +---CAM (chid 2)\n     .    |\n     .    +---MBMP (chid 0)\n     .    |\n          +---ZBMP (chid 0)\n\n***************************************************************************/\n#include \"soc.h\"\nASSERTNAME\n\nRTCLASS(BKGD)\n\nconst CHID kchidBds = 0;  // Background default sound\nconst CHID kchidGllt = 0; // GL of LITEs\nconst CHID kchidGlcr = 0; // Palette\nconst br_colour kbrcLight = BR_COLOUR_RGB(0xff, 0xff, 0xff);\n\n/***************************************************************************\n    Add the background's chunks (excluding camera views) to the tag list\n***************************************************************************/\nbool BKGD::FAddTagsToTagl(PTAG ptagBkgd, PTAGL ptagl)\n{\n    AssertVarMem(ptagBkgd);\n    AssertPo(ptagl, 0);\n\n    if (!ptagl->FInsertTag(ptagBkgd, fFalse))\n        return fFalse;\n    if (!ptagl->FInsertChild(ptagBkgd, kchidBds, kctgBds))\n        return fFalse;\n    if (!ptagl->FInsertChild(ptagBkgd, kchidGllt, kctgGllt))\n        return fFalse;\n    if (!ptagl->FInsertChild(ptagBkgd, kchidGlcr, kctgColorTable))\n        return fFalse;\n\n    // Have to cache first camera view since scene switches to it\n    // automatically\n    if (!ptagl->FInsertChild(ptagBkgd, 0, kctgCam))\n        return fFalse;\n    return fTrue;\n}\n\n/***************************************************************************\n    Cache the background's chunks (excluding camera views) to HD\n***************************************************************************/\nbool BKGD::FCacheToHD(PTAG ptagBkgd)\n{\n    AssertVarMem(ptagBkgd);\n\n    TAG tagBds;\n    TAG tagGllt;\n    TAG tagGlcr;\n    TAG tagCam;\n\n    // Build the child tags\n    if (!vptagm->FBuildChildTag(ptagBkgd, kchidBds, kctgBds, &tagBds))\n        return fFalse;\n    if (!vptagm->FBuildChildTag(ptagBkgd, kchidGllt, kctgGllt, &tagGllt))\n        return fFalse;\n    if (!vptagm->FBuildChildTag(ptagBkgd, kchidGlcr, kctgColorTable, &tagGlcr))\n        return fFalse;\n    if (!vptagm->FBuildChildTag(ptagBkgd, 0, kctgCam, &tagCam))\n        return fFalse;\n\n    // Cache the BKGD chunk\n    if (!vptagm->FCacheTagToHD(ptagBkgd, fFalse))\n        return fFalse;\n\n    // Cache the child chunks\n    if (!vptagm->FCacheTagToHD(&tagBds))\n        return fFalse;\n    if (!vptagm->FCacheTagToHD(&tagGllt))\n        return fFalse;\n    if (!vptagm->FCacheTagToHD(&tagGlcr))\n        return fFalse;\n\n    // Have to cache first camera view since scene switches to it\n    // automatically\n    if (!vptagm->FCacheTagToHD(&tagCam))\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    A PFNRPO to read a BKGD from a file\n***************************************************************************/\nbool BKGD::FReadBkgd(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n\n    BKGD *pbkgd;\n\n    *pcb = size(BKGD) + size(BACT) + size(BLIT); // estimate BKGD size\n    if (pvNil == ppbaco)\n        return fTrue;\n    pbkgd = NewObj BKGD;\n    if (pvNil == pbkgd || !pbkgd->_FInit(pcrf->Pcfl(), ctg, cno))\n    {\n        TrashVar(ppbaco);\n        TrashVar(pcb);\n        ReleasePpo(&pbkgd);\n        return fFalse;\n    }\n    AssertPo(pbkgd, 0);\n    *ppbaco = pbkgd;\n    *pcb =\n        size(BKGD) + LwMul(pbkgd->_cbactLight, size(BACT)) + LwMul(pbkgd->_cbactLight, size(BLIT)); // actual BKGD size\n    return fTrue;\n}\n\n/***************************************************************************\n    Read a BKGD from the given chunk of the given CFL.\n    Note: Although we read the data for the lights here, we don't turn\n    them on yet because we don't have a BWLD to add them to.  The lights\n    are\tturned on with the first FSetCamera() call.\n***************************************************************************/\nbool BKGD::_FInit(PCFL pcfl, CTG ctg, CNO cno)\n{\n    AssertBaseThis(0);\n    AssertPo(pcfl, 0);\n\n    BLCK blck;\n    BKGDF bkgdf;\n    KID kid;\n    PGL pgllite = pvNil;\n    short bo;\n\n    _ccam = _Ccam(pcfl, ctg, cno); // compute # of views in this background\n    _icam = ivNil;\n\n    if (!pcfl->FFind(ctg, cno, &blck) || !blck.FUnpackData())\n        goto LFail;\n    if (blck.Cb() != size(BKGDF))\n        goto LFail;\n    if (!blck.FReadRgb(&bkgdf, size(BKGDF), 0))\n        goto LFail;\n    if (kboCur != bkgdf.bo)\n        SwapBytesBom(&bkgdf, kbomBkgdf);\n    Assert(kboCur == bkgdf.bo, \"bad BKGDF\");\n\n    if (!pcfl->FGetName(ctg, cno, &_stn))\n        goto LFail;\n\n    // Get the default sound\n    if (pcfl->FGetKidChidCtg(ctg, cno, kchidBds, kctgBds, &kid))\n    {\n        if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck) || !blck.FUnpackData())\n            goto LFail;\n        if (blck.Cb() != size(BDS))\n            goto LFail;\n        if (!blck.FReadRgb(&_bds, size(BDS), 0))\n            goto LFail;\n        if (kboCur != _bds.bo)\n            SwapBytesBom(&_bds, kbomBds);\n        Assert(kboCur == _bds.bo, \"bad BDS\");\n    }\n    else\n    {\n        _bds.tagSnd.sid = ksidInvalid;\n    }\n\n    // If there is a GLCR child, get it\n    if (pcfl->FGetKidChidCtg(ctg, cno, kchidGlcr, kctgColorTable, &kid))\n    {\n        if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n            goto LFail;\n        _pglclr = GL::PglRead(&blck, &bo);\n        if (_pglclr != pvNil)\n        {\n            if (kboOther == bo)\n                SwapBytesRglw(_pglclr->QvGet(0), _pglclr->IvMac());\n        }\n        _bIndexBase = bkgdf.bIndexBase;\n    }\n    else\n        _pglclr = pvNil;\n\n    // Read the GL of LITEs (GLLT)\n    if (!pcfl->FGetKidChidCtg(ctg, cno, kchidGllt, kctgGllt, &kid))\n        goto LFail;\n    if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n        goto LFail;\n    pgllite = GL::PglRead(&blck, &bo);\n    if (pvNil == pgllite)\n        goto LFail;\n    Assert(pgllite->CbEntry() == size(LITE), \"bad pgllite...you may need to update bkgds.chk\");\n    AssertBomRglw(kbomLite, size(LITE));\n    if (kboOther == bo)\n    {\n        SwapBytesRglw(pgllite->QvGet(0), LwMul(pgllite->IvMac(), size(LITE) / size(long)));\n    }\n    _cbactLight = pgllite->IvMac();\n    if (!FAllocPv((void **)&_prgbactLight, LwMul(_cbactLight, size(BACT)), fmemClear, mprNormal))\n    {\n        goto LFail;\n    }\n    if (!FAllocPv((void **)&_prgblitLight, LwMul(_cbactLight, size(BLIT)), fmemClear, mprNormal))\n    {\n        goto LFail;\n    }\n    _SetupLights(pgllite);\n    ReleasePpo(&pgllite);\n    return fTrue;\nLFail:\n    Warn(\"Error reading background\");\n    ReleasePpo(&pgllite);\n    return fFalse;\n}\n\n/***************************************************************************\n    Return the number of camera views in this scene.  CAM chunks need to be\n    contiguous CHIDs starting at CHID 0.\n***************************************************************************/\nlong BKGD::_Ccam(PCFL pcfl, CTG ctg, CNO cno)\n{\n    AssertBaseThis(0);\n    AssertPo(pcfl, 0);\n\n    KID kid;\n    long ccam;\n\n    for (ccam = 0; pcfl->FGetKidChidCtg(ctg, cno, ccam, kctgCam, &kid); ccam++)\n    {\n    }\n#ifdef DEBUG\n    // Make sure chids are consecutive\n    long ckid;\n    long ccamT = 0;\n    for (ckid = 0; pcfl->FGetKid(ctg, cno, ckid, &kid); ckid++)\n    {\n        if (kid.cki.ctg == kctgCam)\n            ccamT++;\n    }\n    Assert(ccamT == ccam, \"cam chids are not consecutive!\");\n#endif\n    return ccam;\n}\n\n/***************************************************************************\n    Fill _prgbactLight and _prgblitLight using a GL of LITEs\n***************************************************************************/\nvoid BKGD::_SetupLights(PGL pgllite)\n{\n    AssertBaseThis(0);\n    AssertPo(pgllite, 0);\n\n    long ilite;\n    LITE *qlite;\n    BACT *pbact;\n    BLIT *pblit;\n\n    for (ilite = 0; ilite < _cbactLight; ilite++)\n    {\n        qlite = (LITE *)pgllite->QvGet(ilite);\n        pbact = &_prgbactLight[ilite];\n        pblit = &_prgblitLight[ilite];\n        pblit->type = (byte)qlite->lt;\n        pblit->colour = kbrcLight;\n        pblit->attenuation_c = qlite->rIntensity;\n        pbact->type = BR_ACTOR_LIGHT;\n        pbact->type_data = pblit;\n        pbact->t.type = BR_TRANSFORM_MATRIX34;\n        pbact->t.t.mat = qlite->bmat34;\n    }\n}\n\n/***************************************************************************\n    Clean up and delete this background\n***************************************************************************/\nBKGD::~BKGD(void)\n{\n    AssertBaseThis(0);\n    Assert(!_fLeaveLitesOn, \"Shouldn't be freeing background now\");\n    if (pvNil != _prgbactLight && pvNil != _prgblitLight)\n        TurnOffLights();\n    FreePpv((void **)&_prgbactLight);\n    FreePpv((void **)&_prgblitLight);\n    ReleasePpo(&_pglclr);\n    ReleasePpo(&_pglapos);\n}\n\n/***************************************************************************\n    Get the background's name\n***************************************************************************/\nvoid BKGD::GetName(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    *pstn = _stn;\n}\n\n/***************************************************************************\n    Get the custom palette for this background, if any.  Returns fFalse if\n    an error occurs.  Sets *ppglclr to an empty GL and *piclrMin to 0 if\n    this background has no custom palette.\n***************************************************************************/\nbool BKGD::FGetPalette(PGL *ppglclr, long *piclrMin)\n{\n    AssertThis(0);\n    AssertVarMem(ppglclr);\n    AssertVarMem(piclrMin);\n\n    *piclrMin = _bIndexBase;\n    if (pvNil == _pglclr) // no custom palette\n    {\n        *ppglclr = GL::PglNew(size(CLR)); // \"palette\" with 0 entries\n    }\n    else\n    {\n        *ppglclr = _pglclr->PglDup();\n    }\n    return (pvNil != *ppglclr);\n}\n\n/***************************************************************************\n    Get the camera position in worldspace\n***************************************************************************/\nvoid BKGD::GetCameraPos(BRS *pxr, BRS *pyr, BRS *pzr)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pxr);\n    AssertNilOrVarMem(pyr);\n    AssertNilOrVarMem(pzr);\n\n    if (pvNil != pxr)\n        *pxr = _xrCam;\n    if (pvNil != pyr)\n        *pyr = _yrCam;\n    if (pvNil != pzr)\n        *pzr = _zrCam;\n}\n\n/***************************************************************************\n    Turn on lights in pbwld\n***************************************************************************/\nvoid BKGD::TurnOnLights(PBWLD pbwld)\n{\n    AssertThis(0);\n    AssertPo(pbwld, 0);\n\n    long ilite;\n    BACT *pbact;\n\n    if (!_fLites)\n    {\n        for (ilite = 0; ilite < _cbactLight; ilite++)\n        {\n            pbact = &_prgbactLight[ilite];\n            pbwld->AddActor(pbact);\n            BrLightEnable(pbact);\n        }\n\n        _fLites = fTrue;\n    }\n}\n\n/***************************************************************************\n    Turn off lights in pbwld\n***************************************************************************/\nvoid BKGD::TurnOffLights(void)\n{\n    AssertThis(0);\n\n    long ilite;\n    BACT *pbact;\n\n    if (!_fLites || _fLeaveLitesOn)\n        return;\n    for (ilite = 0; ilite < _cbactLight; ilite++)\n    {\n        pbact = &_prgbactLight[ilite];\n        BrLightDisable(pbact);\n        BrActorRemove(pbact);\n    }\n    _fLites = fFalse;\n}\n\n/***************************************************************************\n    Set the camera and associated bitmaps to icam\n***************************************************************************/\nbool BKGD::FSetCamera(PBWLD pbwld, long icam)\n{\n    AssertThis(0);\n    AssertPo(pbwld, 0);\n    AssertIn(icam, 0, Ccam());\n\n    long capos;\n    KID kidCam;\n    KID kidRGB;\n    KID kidZ;\n    BLCK blck;\n    CAM cam;\n    PCFL pcfl = Pcrf()->Pcfl();\n    BREUL breul;\n\n    TurnOnLights(pbwld);\n\n    // read new camera data\n    if (!pcfl->FGetKidChidCtg(Ctg(), Cno(), icam, kctgCam, &kidCam))\n        return fFalse;\n    if (!pcfl->FFind(kidCam.cki.ctg, kidCam.cki.cno, &blck) || !blck.FUnpackData())\n        return fFalse;\n\n    // Need at least one actor position\n    if (blck.Cb() < size(CAM))\n    {\n        Bug(\"CAM chunk not large enough\");\n        return fFalse;\n    }\n    capos = (blck.Cb() - size(CAM)) / size(APOS);\n    if ((capos * size(APOS) + size(CAM)) != blck.Cb())\n    {\n        Bug(\"CAM chunk's extra data not an even multiple of size(APOS)\");\n        return fFalse;\n    }\n\n    if (!blck.FReadRgb(&cam, size(CAM), 0))\n        return fFalse;\n\n#ifdef DEBUG\n    {\n        BOM bomCam = kbomCam, bomCamOld = kbomCamOld;\n        Assert(bomCam == bomCamOld, \"BOM macros aren't right\");\n    }\n#endif // DEBUG\n\n    Assert((size(APOS) / size(long)) * size(long) == size(APOS), \"APOS not an even number of longs\");\n    if (kboOther == cam.bo)\n    {\n        SwapBytesBom(&cam, kbomCam);\n        SwapBytesRglw(PvAddBv(&cam, offset(CAM, bmat34Cam)), size(cam.bmat34Cam) / size(long));\n        SwapBytesRglw(PvAddBv(&cam, size(CAM)), capos * (size(APOS) / size(long)));\n    }\n    Assert(kboCur == cam.bo, \"bad cam\");\n\n    // find RGB pict\n    if (!pcfl->FGetKidChidCtg(kidCam.cki.ctg, kidCam.cki.cno, 0, kctgMbmp, &kidRGB))\n    {\n        return fFalse;\n    }\n    // find Z pict\n    if (!pcfl->FGetKidChidCtg(kidCam.cki.ctg, kidCam.cki.cno, 0, kctgZbmp, &kidZ))\n    {\n        return fFalse;\n    }\n    if (!pbwld->FSetBackground(Pcrf(), kidRGB.cki.ctg, kidRGB.cki.cno, kidZ.cki.ctg, kidZ.cki.cno))\n    {\n        return fFalse;\n    }\n\n    // Get actor placements\n    ReleasePpo(&_pglapos);\n    _iaposNext = _iaposLast = 0;\n    if (capos > 0 && (_pglapos = GL::PglNew(size(APOS), capos)) != pvNil)\n    {\n        AssertDo(_pglapos->FSetIvMac(capos), \"Should never fail\");\n        _pglapos->Lock();\n        if (!blck.FReadRgb(_pglapos->QvGet(0), size(APOS) * capos, size(CAM)))\n        {\n            ReleasePpo(&_pglapos);\n            return fFalse;\n        }\n        _pglapos->Unlock();\n    }\n\n    _icam = icam;\n    _xrPlace = cam.apos.xrPlace;\n    _yrPlace = cam.apos.yrPlace;\n    _zrPlace = cam.apos.zrPlace;\n\n    _xrCam = cam.bmat34Cam.m[3][0];\n    _yrCam = cam.bmat34Cam.m[3][1];\n    _zrCam = cam.bmat34Cam.m[3][2];\n\n    // Find bmat34 without X & Z rotation\n    breul.order = BR_EULER_YXY_R;\n    BrMatrix34ToEuler(&breul, &cam.bmat34Cam);\n    _braRotY = breul.a + breul.c;\n    BrMatrix34RotateY(&_bmat34Mouse, _braRotY);\n    BrMatrix34PostTranslate(&_bmat34Mouse, cam.bmat34Cam.m[3][0], cam.bmat34Cam.m[3][1], cam.bmat34Cam.m[3][2]);\n\n    pbwld->SetCamera(&cam.bmat34Cam, cam.zrHither, cam.zrYon, cam.aFov);\n    pbwld->MarkDirty();\n    return fTrue;\n}\n\n/***************************************************************************\n    Gets the matrix for mouse-dragging relative to the camera\n***************************************************************************/\nvoid BKGD::GetMouseMatrix(BMAT34 *pbmat34)\n{\n    AssertThis(0);\n    AssertVarMem(pbmat34);\n\n    *pbmat34 = _bmat34Mouse;\n}\n\n/***************************************************************************\n    Gets the point at which to place new actors for this bkgd/view.\n***************************************************************************/\nvoid BKGD::GetActorPlacePoint(BRS *pxr, BRS *pyr, BRS *pzr)\n{\n    AssertThis(0);\n    AssertVarMem(pxr);\n    AssertVarMem(pyr);\n    AssertVarMem(pzr);\n\n    APOS apos;\n\n    if (_iaposNext == 0)\n    {\n        *pxr = _xrPlace;\n        *pyr = _yrPlace;\n        *pzr = _zrPlace;\n    }\n    else\n    {\n        _pglapos->Get(_iaposNext - 1, &apos);\n        *pxr = apos.xrPlace;\n        *pyr = apos.yrPlace;\n        *pzr = apos.zrPlace;\n    }\n\n    _iaposLast = _iaposNext;\n    if (_pglapos != pvNil)\n    {\n        _iaposNext++;\n        if (_iaposNext > _pglapos->IvMac())\n            _iaposNext = 0;\n    }\n}\n\n/******************************************************************************\n    ReuseActorPlacePoint\n        Resets the current actor place point to the last one used.  Call this\n        from the actor placement code if the actor was placed at a point other\n        than the one you just asked for.\n************************************************************ PETED ***********/\nvoid BKGD::ReuseActorPlacePoint(void)\n{\n    _iaposNext = _iaposLast;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Authoring only.  Writes a special file with the given place info.\n***************************************************************************/\nbool BKGD::FWritePlaceFile(BRS xrPlace, BRS yrPlace, BRS zrPlace)\n{\n    AssertThis(0);\n    Assert(yrPlace == rZero, \"are you sure you want non-zero Y?\");\n\n    STN stnFile;\n    FNI fni;\n    PFIL pfil = pvNil;\n    STN stnData;\n    FP fp;\n    long xr1 = BrScalarToInt(xrPlace);\n    long xr2 = LwAbs((long)(1000000.0 * BrScalarToFloat(xrPlace - BrIntToScalar(xr1))));\n    long yr1 = BrScalarToInt(yrPlace);\n    long yr2 = LwAbs((long)(1000000.0 * BrScalarToFloat(yrPlace - BrIntToScalar(yr1))));\n    long zr1 = BrScalarToInt(zrPlace);\n    long zr2 = LwAbs((long)(1000000.0 * BrScalarToFloat(zrPlace - BrIntToScalar(zr1))));\n\n    if (!stnFile.FFormatSz(\"%s-cam.1-%d.pos\", &_stn, _icam + 1))\n        goto LFail;\n    if (!fni.FBuildFromPath(&stnFile))\n        goto LFail;\n    if (fni.TExists() == tYes)\n        pfil = FIL::PfilOpen(&fni, ffilWriteEnable);\n    else\n        pfil = FIL::PfilCreate(&fni);\n    if (pvNil == pfil)\n        goto LFail;\n    if (!stnData.FFormatSz(\"NEW_ACTOR_POS %d.%06d %d.%06d %d.%06d\\n\\r\", xr1, xr2, yr1, yr2, zr1, zr2))\n    {\n        goto LFail;\n    }\n    if ((fp = pfil->FpMac()) > 0)\n    {\n        // Go to the end of the file (and write over null byte at end\n        // of previous string)\n        fp--;\n    }\n    if (!pfil->FWriteRgb(stnData.Psz(), stnData.Cch() + 1, fp))\n        goto LFail;\n    ReleasePpo(&pfil);\n    return fTrue;\nLFail:\n    ReleasePpo(&pfil);\n    return fFalse;\n}\n#endif // DEBUG\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the BKGD.\n***************************************************************************/\nvoid BKGD::AssertValid(ulong grf)\n{\n    BKGD_PAR::AssertValid(fobjAllocated);\n    AssertIn(_cbactLight, 1, 100); // 100 is sanity check\n    AssertIn(_ccam, 1, 100);       // 100 is sanity check\n    Assert(_icam == ivNil || (_icam >= 0 && _icam < _ccam), \"bad _icam\");\n    AssertPvCb(_prgbactLight, LwMul(_cbactLight, size(BACT)));\n    AssertPvCb(_prgblitLight, LwMul(_cbactLight, size(BLIT)));\n    AssertPo(&_stn, 0);\n    AssertNilOrPo(_pglapos, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the BKGD\n***************************************************************************/\nvoid BKGD::MarkMem(void)\n{\n    AssertThis(0);\n    BKGD_PAR::MarkMem();\n    MarkPv(_prgbactLight);\n    MarkPv(_prgblitLight);\n    MarkMemObj(_pglclr);\n    MarkMemObj(_pglapos);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/engine/body.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    body.cpp: Body class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    A BODY holds the BRender-related data structures that make up what\n    Socrates calls an actor.  The BODY keeps track of all the body parts'\n    models, matrices, and materials that make up the actor's shape,\n    position, orientation, and costume.  ACTR and TMPL are the main\n    clients of BODY.  From the client's point of view, a BODY consists\n    not of a tree of body parts, but an array of parts and part sets.  The\n    \"ibact\"s and \"ibset\"s in the BODY APIs are indices into these arrays.\n\n    PbodyNew() takes a parameter called pglibactPar, which is a GL of\n    shorts.  Each short is the body part number of a body part's parent\n    body part.\tFor example, suppose you passed in a pglibactPar of:\n\n    (ivNil, 0, 0, 1, 2, 2)\n\n    Body part 0 would have no parent (the first number in the GL is\n    always ivNil).  Body part 1's parent would be body part 0.  Body part\n    2's\tparent would also be body part 0.  Body part 3's parent would be\n    body part 1, etc.  The resulting tree would be:\n\n                0\n                |\n             +--+--+\n             |\t   |\n             1   +-2-+\n             |\t |   |\n             3\t 4\t 5\n\n    BODY needs to keep track of three sets of BACTs: first, a root BACT\n    whose transformation is changed to position and orient the BODY.\n    Second, a BACT for the actor hilighting.  Finally, there are\n    the body parts for the BODY.  So the BRender tree *really* looks like:\n\n                            root\n                              |\n                       +------+-----+\n                       |\t\t\t|\n                     part0\t\t hilite\n                       |\n               +-------+--------+\n               |\t\t        |\n             part1            part2\n               |\t            |\n               |\t\t    +---+---+\n               |\t\t    |\t    |\n             part3\t      part4\t  part5\n\n\n    All these BACTs are allocated and released in one _prgbact.  The\n    root is _prgbact[0].  The hilite BACT is _prgbact[1].  The real\n    body parts are _prgbact[2] through _prgbact[1 + 1 + _cbactPart].\n    There are APIs to access various members of this array more easily.\n\n    The second parameter to PbodyNew is pglibset, which divides the body\n    parts into \"body part sets.\"  A body part set is one or more body\n    parts which are texture-mapped as a group.  For example, putting\n    a shirt on a human would affect the torso and both arms, so those\n    three body parts would be grouped into a body part set.  If body\n    parts 0, 1, and 2 were in set 0; part 3 was in set 1; and parts 4\n    and 5 were in set 2, _pglibset would be {0, 0, 0, 1, 2, 2}.\n\n    When applying a MTRL to a body part set, the same MTRL is\n    attached to each body part in the set.  When a CMTL is applied,\n    the CMTL has a different MTRL per body part in the set.\n\n    The way that MODLs, MTRLs, and CMTLs attach to the BODY is a little\n    strange.  In the case of models, the br_actor's model needs to be set\n    to the MODL's BMDL (which is a BRender data structure), not the\n    MODL itself (which is a Socrates data structure).  When it is time\n    to remove the model, the BODY has a pointer to the BMDL, but\n    not the MODL!  Fortunately, MODL sets the BMDL's identifier field\n    to point to its owning MODL.  So ReleasePpo can then be called on the\n    MODL.  But I don't want to set the BMDL's identifier to pvNil in\n    the process, because other BODYs might be counting on the BMDL's\n    identifier to point to the MODL.  So this code has to be careful using\n    ReleasePpo, since that sets the given pointer to pvNil.  Same\n    problem for MTRLs:\n\n    BODY\n     |\t\t\t\t\t MODL<--+\n     v\t\t\t\t\t   |\t|\n     BACT   \t\t\t   |\t|\n      | |\t\t\t\t   |\t|\n      |\tv\t\t\t\t   v\t|\n      |model------------>BMDL\t|\n      |\t\t\t\t\t   |\t|\n      |\t\t\t\t\t   v\t|\n      |\t\t\t\t\t  identifier\n      |\n      +--+\n         |\t\t\t     MTRL<--+\n         |                 |\t|\n         v\t\t\t\t   v\t|\n       material--------->BMTL\t|\n                           |\t|\n                           v\t|\n                          identifier\n\n    CMTLs are potentially even messier, since they're an abstraction on\n    top of MTRLs.  Here, an array of PCMTLs on the BODY is explicitly kept\n    so it is easy to find out what CMTL is attached to what body part set\n    instead of working backwards from the BACT's material field.\n\n***************************************************************************/\n#include \"soc.h\"\nASSERTNAME\n\nRTCLASS(BODY)\nRTCLASS(COST)\n\n// Specification of hilite color.  REVIEW *****: should these\n// values (or the PBMTL itself?) be passed in by the client?\nconst br_colour kbrcHilite = BR_COLOUR_RGB(255, 255, 255);\nconst byte kbOpaque = 0xff;\nconst br_ufraction kbrufKaHilite = BR_UFRACTION(0.10);\nconst br_ufraction kbrufKdHilite = BR_UFRACTION(0.60);\nconst br_ufraction kbrufKsHilite = BR_UFRACTION(0.60);\nconst BRS krPowerHilite = BR_SCALAR(50);\nconst long kiclrHilite = 0; // default to no highlighting\n\n// Hilighting material\nPBMTL BODY::_pbmtlHilite = pvNil;\n\nPBODY BODY::_pbodyClosestClicked;\nlong BODY::_dzpClosestClicked;\nPBACT BODY::_pbactClosestClicked;\n\n/***************************************************************************\n    Builds a tree of BACTs for the BODY.\n***************************************************************************/\nBODY *BODY::PbodyNew(PGL pglibactPar, PGL pglibset)\n{\n    AssertPo(pglibactPar, 0);\n    Assert(pglibactPar->CbEntry() == size(short), \"bad pglibactPar\");\n    AssertPo(pglibset, 0);\n    Assert(pglibset->CbEntry() == size(short), \"bad pglibset\");\n\n    BODY *pbody;\n\n    if (pvNil == _pbmtlHilite)\n    {\n        _pbmtlHilite = BrMaterialAllocate(\"Hilite\");\n        if (pvNil == _pbmtlHilite)\n            return pvNil;\n        _pbmtlHilite->colour = kbrcHilite;\n        _pbmtlHilite->ka = kbrufKaHilite;\n        _pbmtlHilite->kd = kbrufKdHilite, _pbmtlHilite->ks = kbrufKsHilite;\n        _pbmtlHilite->power = krPowerHilite;\n        _pbmtlHilite->flags = BR_MATF_LIGHT | BR_MATF_GOURAUD | BR_MATF_FORCE_Z_0;\n        _pbmtlHilite->index_base = kiclrHilite;\n        _pbmtlHilite->index_range = 1;\n        BrMaterialAdd(_pbmtlHilite);\n    }\n\n    pbody = NewObj BODY;\n    if (pvNil == pbody || !pbody->_FInit(pglibactPar, pglibset))\n    {\n        ReleasePpo(&pbody);\n        return pvNil;\n    }\n\n    AssertPo(pbody, fobjAssertFull);\n    return pbody;\n}\n\n/***************************************************************************\n    Build the BODY\n***************************************************************************/\nbool BODY::_FInit(PGL pglibactPar, PGL pglibset)\n{\n    AssertBaseThis(0);\n    AssertPo(pglibactPar, 0);\n    AssertPo(pglibset, 0);\n\n    _cactHidden = 1; // body starts out hidden\n\n    if (!_FInitShape(pglibactPar, pglibset))\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Build the BODY\n***************************************************************************/\nbool BODY::_FInitShape(PGL pglibactPar, PGL pglibset)\n{\n    AssertBaseThis(0);\n    AssertPo(pglibactPar, 0);\n    Assert(pglibactPar->CbEntry() == size(short), \"bad pglibactPar\");\n    AssertPo(pglibset, 0);\n    Assert(pglibset->CbEntry() == size(short), \"bad pglibset\");\n    Assert(pglibactPar->IvMac() == 0 || ivNil == *(short *)pglibactPar->QvGet(0), \"bad first item in pglibactPar\");\n    Assert(pglibactPar->IvMac() == pglibset->IvMac(), \"pglibactPar must be same size as pglibset\");\n\n    BACT *pbact;\n    BACT *pbactPar;\n    short ibactPar;\n    short ibact;\n    short ibset;\n\n    // Copy pglibset into _pglibset\n    _pglibset = pglibset->PglDup();\n    if (pvNil == _pglibset)\n        return fFalse;\n\n    // _cbset is (highest entry in _pglibset) + 1.\n    _cbset = -1;\n    for (ibact = 0; ibact < _pglibset->IvMac(); ibact++)\n    {\n        _pglibset->Get(ibact, &ibset);\n        if (ibset > _cbset)\n            _cbset = ibset;\n    }\n    _cbset++;\n\n    if (!FAllocPv((void **)&_prgpcmtl, LwMul(_cbset, size(PCMTL)), fmemClear, mprNormal))\n    {\n        return fFalse;\n    }\n\n    _cbactPart = pglibactPar->IvMac();\n    Assert(_cbset <= _cbactPart, \"More sets than body parts?\");\n    if (!FAllocPv((void **)&_prgbact, LwMul(_Cbact(), size(BACT)), fmemClear, mprNormal))\n    {\n        return fFalse;\n    }\n    // first, set up the root\n    pbact = _PbactRoot();\n    pbact->type = BR_ACTOR_NONE;\n    pbact->t.type = BR_TRANSFORM_MATRIX34;\n    BrMatrix34Identity(&pbact->t.t.mat);\n    pbact->identifier = (schar *)this; // to find BODY from a BACT\n\n    // next, set up hilite actor\n    pbact = _PbactHilite();\n    pbact->type = BR_ACTOR_NONE;\n    pbact->t.type = BR_TRANSFORM_MATRIX34;\n    BrMatrix34Identity(&pbact->t.t.mat);\n    pbact->identifier = (schar *)this; // to find BODY from a BACT\n    pbact->material = _pbmtlHilite;\n    pbact->render_style = BR_RSTYLE_BOUNDING_EDGES;\n    BrActorAdd(_PbactRoot(), pbact);\n\n    // now set up the body part BACTs\n    for (ibact = 0; ibact < _cbactPart; ibact++)\n    {\n        pbact = _PbactPart(ibact);\n        pbact->type = BR_ACTOR_MODEL;\n        pbact->render_style = BR_RSTYLE_FACES;\n        pbact->t.type = BR_TRANSFORM_MATRIX34;\n        BrMatrix34Identity(&pbact->t.t.mat);\n        pbact->identifier = (schar *)this; // to find BODY from a BACT\n\n        // Find parent of this body part\n        pglibactPar->Get(ibact, &ibactPar);\n        if (ivNil == ibactPar)\n        {\n            pbactPar = _PbactRoot();\n        }\n        else\n        {\n            AssertIn(ibactPar, 0, ibact);\n            pbactPar = _PbactPart(ibactPar);\n        }\n        BrActorAdd(pbactPar, pbact);\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Change the body part hierarchy and/or the body part sets of this BODY.\n    Models, materials, and matrices are not changed for body parts that\n    exist in both the old and reshaped BODYs.\n***************************************************************************/\nbool BODY::FChangeShape(PGL pglibactPar, PGL pglibset)\n{\n    AssertThis(fobjAssertFull);\n    AssertPo(pglibactPar, 0);\n    AssertPo(pglibset, 0);\n\n    PBODY pbodyDup;\n    long ibset;\n    bool fMtrl;\n    PMTRL pmtrl;\n    PCMTL pcmtl;\n    long ibact;\n    PBACT pbactDup;\n    PBACT pbact;\n    long cactHidden = _cactHidden;\n\n    pbodyDup = PbodyDup();\n    if (pvNil == pbodyDup)\n        goto LFail;\n\n    _DestroyShape(); // note: hides the body\n    if (!_FInitShape(pglibactPar, pglibset))\n        goto LFail;\n    if (cactHidden == 0) // if body was visible\n        Show();\n    // Restore materials\n    for (ibset = 0; ibset < LwMin(_cbset, pbodyDup->_cbset); ibset++)\n    {\n        pbodyDup->GetPartSetMaterial(ibset, &fMtrl, &pmtrl, &pcmtl);\n        if (fMtrl)\n            SetPartSetMtrl(ibset, pmtrl);\n        else\n            SetPartSetCmtl(pcmtl);\n    }\n    // Restore models and matrices\n    for (ibact = 0; ibact < LwMin(_cbactPart, pbodyDup->_cbactPart); ibact++)\n    {\n        pbactDup = pbodyDup->_PbactPart(ibact);\n        pbact = _PbactPart(ibact);\n        if (pvNil != pbactDup->model)\n            SetPartModel(ibact, MODL::PmodlFromBmdl(pbactDup->model));\n        pbact->t.t.mat = pbactDup->t.t.mat;\n    }\n    _PbactRoot()->t.t.mat = pbodyDup->_PbactRoot()->t.t.mat;\n    // Restore hilite state\n    if (pbodyDup->_PbactHilite()->type == BR_ACTOR_MODEL)\n        Hilite(); // body was hilited, so hilite it now\n    ReleasePpo(&pbodyDup);\n    AssertThis(fobjAssertFull);\n    return fTrue;\nLFail:\n    if (pvNil != pbodyDup)\n    {\n        Restore(pbodyDup);\n        if (cactHidden == 0)\n            Show();\n        ReleasePpo(&pbodyDup);\n    }\n    AssertThis(fobjAssertFull);\n    return fFalse;\n}\n\n/***************************************************************************\n    Returns the BODY that owns the given BACT.  Also, if pibset is not\n    nil, returns what body part set this BACT is in.  If the pbact is\n    the hilite BACT, pibset is set to ivNil.\n***************************************************************************/\nBODY *BODY::PbodyFromBact(BACT *pbact, long *pibset)\n{\n    AssertVarMem(pbact);\n    AssertNilOrVarMem(pibset);\n\n    PBODY pbody;\n    long ibact;\n\n    pbody = (BODY *)pbact->identifier;\n    if (pvNil == pbody)\n    {\n        Bug(\"What actor is this?  It has no BODY\");\n        return pvNil;\n    }\n    AssertPo(pbody, 0);\n    if (pvNil != pibset)\n    {\n        *pibset = ivNil;\n        for (ibact = 0; ibact < pbody->_cbactPart; ibact++)\n        {\n            if (pbact == pbody->_PbactPart(ibact))\n            {\n                *pibset = pbody->_Ibset(ibact);\n                break;\n            }\n        }\n    }\n    return pbody;\n}\n\n/***************************************************************************\n    Returns the BODY that is under the given point.  Also, if pibset is not\n    nil, returns what body part set this point is in.\n***************************************************************************/\nBODY *BODY::PbodyClicked(long xp, long yp, PBWLD pbwld, long *pibset)\n{\n    AssertNilOrVarMem(pibset);\n    AssertPo(pbwld, 0);\n\n    PBODY pbody;\n    long ibact;\n\n    _pbodyClosestClicked = pvNil;\n    _dzpClosestClicked = BR_SCALAR_MAX;\n\n    pbwld->IterateActorsInPt(BODY::_FFilter, pvNil, xp, yp);\n\n    pbody = _pbodyClosestClicked;\n    if (pvNil == _pbodyClosestClicked)\n    {\n        return pvNil;\n    }\n    AssertPo(_pbodyClosestClicked, 0);\n    if (pvNil != pibset)\n    {\n        *pibset = ivNil;\n        for (ibact = 0; ibact < _pbodyClosestClicked->_cbactPart; ibact++)\n        {\n            if (_pbactClosestClicked == _pbodyClosestClicked->_PbactPart(ibact))\n            {\n                *pibset = _pbodyClosestClicked->_Ibset(ibact);\n                break;\n            }\n        }\n    }\n    return _pbodyClosestClicked;\n}\n\n/***************************************************************************\n    Filter callback proc for PbodyClicked().  Saves pbody if it's the\n    closest one hit so far and visible\n***************************************************************************/\nint BODY::_FFilter(BACT *pbact, PBMDL pbmdl, PBMTL pbmtl, BVEC3 *pbvec3RayPos, BVEC3 *pbvec3RayDir, BRS dzpNear,\n                   BRS dzpFar, void *pv)\n{\n    AssertVarMem(pbact);\n    AssertVarMem(pbvec3RayPos);\n    AssertVarMem(pbvec3RayDir);\n\n    PBODY pbody;\n\n    pbody = BODY::PbodyFromBact(pbact);\n\n    if ((dzpNear < _dzpClosestClicked) && (pbody != pvNil) && (pbody->FIsInView()))\n    {\n        _pbodyClosestClicked = pbody;\n        _dzpClosestClicked = dzpNear;\n        _pbactClosestClicked = pbact;\n    }\n\n    return fFalse; // fFalse means keep searching\n}\n\n/***************************************************************************\n    Destroy the BODY's body parts, including their attached materials and\n    models.\n***************************************************************************/\nvoid BODY::_DestroyShape(void)\n{\n    AssertBaseThis(0);\n    long ibset;\n    long ibact;\n    BACT *pbact;\n    MODL *pmodl;\n\n    // Must hide body before destroying it\n    if (_cactHidden == 0)\n        Hide();\n\n    if (pvNil != _prgbact)\n    {\n        for (ibact = 0; ibact < _cbactPart; ibact++)\n        {\n            pbact = _PbactPart(ibact);\n            if (pvNil != pbact->model)\n            {\n                pmodl = MODL::PmodlFromBmdl(pbact->model);\n                AssertPo(pmodl, 0);\n                ReleasePpo(&pmodl);\n                pbact->model = pvNil;\n            }\n        }\n        if (pvNil != _prgpcmtl)\n        {\n            for (ibset = 0; ibset < _cbset; ibset++)\n                _RemoveMaterial(ibset);\n        }\n        FreePpv((void **)&_prgbact);\n    }\n    FreePpv((void **)&_prgpcmtl);\n    ReleasePpo(&_pglibset);\n}\n\n/***************************************************************************\n    Free the BODY and all attached MODLs, MTRLs, and CMTLs.\n***************************************************************************/\nBODY::~BODY(void)\n{\n    AssertBaseThis(0);\n    _DestroyShape();\n}\n\n/***************************************************************************\n    Create a duplicate of this BODY.  The duplicate will be hidden\n    (_cactHidden == 1) regardless of the state of this BODY.\n***************************************************************************/\nPBODY BODY::PbodyDup(void)\n{\n    AssertThis(0);\n\n    PBODY pbodyDup;\n    long ibact;\n    long ibset;\n    PBACT pbact;\n    long bv; // delta in bytes from _prgbact to _pbody->_prgbact\n    bool fMtrl;\n    PMTRL pmtrl;\n    PCMTL pcmtl;\n    bool fVis;\n\n    fVis = (_cactHidden == 0);\n    if (fVis)\n        Hide(); // temporarily hide this BODY\n\n    pbodyDup = NewObj BODY;\n    if (pvNil == pbodyDup)\n        goto LFail;\n\n    pbodyDup->_cactHidden = 1;\n    pbodyDup->_cbset = _cbset;\n    pbodyDup->_cbactPart = _cbactPart;\n    pbodyDup->_pbwld = _pbwld;\n    pbodyDup->_fFound = _fFound;\n    pbodyDup->_ibset = _ibset;\n\n    if (!FAllocPv((void **)&pbodyDup->_prgbact, LwMul(_Cbact(), size(BACT)), fmemClear, mprNormal))\n    {\n        goto LFail;\n    }\n    CopyPb(_prgbact, pbodyDup->_prgbact, LwMul(_Cbact(), size(BACT)));\n    // need to update BACT parent, child, next, prev pointers\n    bv = BvSubPvs(pbodyDup->_prgbact, _prgbact);\n    for (ibact = 0; ibact < _Cbact(); ibact++)\n    {\n        pbact = &pbodyDup->_prgbact[ibact];\n        pbact->identifier = (schar *)pbodyDup;\n        if (ibact == 0)\n        {\n            pbact->parent = pvNil;\n            if (pvNil != pbact->children)\n                pbact->children = (PBACT)PvAddBv(pbact->children, bv);\n            pbact->next = pvNil;\n            pbact->prev = pvNil;\n        }\n        else\n        {\n            if (pvNil != pbact->parent)\n                pbact->parent = (PBACT)PvAddBv(pbact->parent, bv);\n            if (pvNil != pbact->children)\n                pbact->children = (PBACT)PvAddBv(pbact->children, bv);\n            if (pvNil != pbact->next)\n                pbact->next = (PBACT)PvAddBv(pbact->next, bv);\n            if (pvNil != pbact->prev)\n                pbact->prev = (PBACT *)PvAddBv(pbact->prev, bv);\n        }\n    }\n    for (ibact = 0; ibact < pbodyDup->_cbactPart; ibact++)\n    {\n        pbact = _PbactPart(ibact);\n        if (pvNil != pbact->model)\n            MODL::PmodlFromBmdl(pbact->model)->AddRef();\n    }\n\n    pbodyDup->_pglibset = _pglibset->PglDup();\n    if (pvNil == pbodyDup->_pglibset)\n        goto LFail;\n\n    if (!FAllocPv((void **)&pbodyDup->_prgpcmtl, LwMul(_cbset, size(PCMTL)), fmemClear, mprNormal))\n    {\n        goto LFail;\n    }\n    CopyPb(_prgpcmtl, pbodyDup->_prgpcmtl, LwMul(_cbset, size(PCMTL)));\n\n    pbodyDup->_rcBounds = _rcBounds;\n    pbodyDup->_rcBoundsLastVis = _rcBoundsLastVis;\n\n    for (ibset = 0; ibset < _cbset; ibset++)\n    {\n        pbodyDup->GetPartSetMaterial(ibset, &fMtrl, &pmtrl, &pcmtl);\n        if (fMtrl)\n        {\n            // need to AddRef once per body part in this set\n            for (ibact = 0; ibact < pbodyDup->_cbactPart; ibact++)\n            {\n                if (ibset == _Ibset(ibact))\n                    pmtrl->AddRef();\n            }\n        }\n        else\n        {\n            pcmtl->AddRef();\n        }\n    }\n    if (fVis)\n        Show(); // re-show this BODY (but not the duplicate)\n\n    AssertPo(pbodyDup, 0);\n    return pbodyDup;\nLFail:\n    if (fVis)\n        Show();\n    ReleasePpo(&pbodyDup);\n    return pvNil;\n}\n\n/***************************************************************************\n    Replace this BODY with pbodyDup.  Preserve this BODY's hidden-ness.\n***************************************************************************/\nvoid BODY::Restore(PBODY pbodyDup)\n{\n    AssertBaseThis(0);\n    AssertPo(pbodyDup, 0);\n    Assert(pbodyDup->_cactHidden == 1, \"dup hidden count must be 1\");\n\n    long cactHidden = _cactHidden;\n    long ibact;\n\n    SwapVars(this, pbodyDup);\n    for (ibact = 0; ibact < _Cbact(); ibact++)\n        _prgbact[ibact].identifier = (schar *)this;\n    if (cactHidden == 0)\n        Show();\n    _cactHidden = cactHidden;\n\n    AssertThis(fobjAssertFull);\n}\n\n/***************************************************************************\n    Make this BODY visible, if it was invisible.  Keeps a refcount.\n***************************************************************************/\nvoid BODY::Show(void)\n{\n    AssertThis(0);\n    Assert(_cactHidden > 0, \"object is already visible!\");\n    if (--_cactHidden == 0)\n    {\n        AssertPo(_pbwld, 0);\n        _pbwld->AddActor(_PbactRoot());\n        _pbwld->SetBeginRenderCallback(_PrepareToRender);\n        _pbwld->SetActorRenderedCallback(_BactRendered);\n        _pbwld->SetGetRcCallback(_GetRc);\n        _pbwld->MarkDirty(); // need to render\n    }\n}\n\n/***************************************************************************\n    Make this BODY invisible, if it was visible.  Keeps a refcount.\n***************************************************************************/\nvoid BODY::Hide(void)\n{\n    AssertThis(0);\n\n    RC rc;\n\n    if (_cactHidden++ == 0)\n    {\n        _rcBounds.Zero();\n        BrActorRemove(_PbactRoot());\n        AssertPo(_pbwld, 0);\n        _pbwld->MarkDirty(); // need to render\n    }\n}\n\n/***************************************************************************\n    Sets the hilite color to use.\n***************************************************************************/\nvoid BODY::SetHiliteColor(long iclr)\n{\n    if (_pbmtlHilite != pvNil)\n    {\n        _pbmtlHilite->index_base = (UCHAR)iclr;\n    }\n}\n\n/***************************************************************************\n    Hilites the BODY\n***************************************************************************/\nvoid BODY::Hilite(void)\n{\n    AssertThis(0);\n\n    _PbactHilite()->type = BR_ACTOR_MODEL;\n    if (_cactHidden == 0)\n    {\n        AssertPo(_pbwld, 0);\n        _pbwld->MarkDirty(); // need to render\n    }\n}\n\n/***************************************************************************\n    Unhilites the BODY\n***************************************************************************/\nvoid BODY::Unhilite(void)\n{\n    AssertThis(0);\n\n    _PbactHilite()->type = BR_ACTOR_NONE;\n    if (_cactHidden == 0)\n    {\n        AssertPo(_pbwld, 0);\n        _pbwld->MarkDirty(); // need to render\n    }\n}\n\n/***************************************************************************\n    Position the body at (xr, yr, zr) in worldspace\toriented by pbmat34\n***************************************************************************/\nvoid BODY::LocateOrient(BRS xr, BRS yr, BRS zr, BMAT34 *pbmat34)\n{\n    AssertThis(0);\n    AssertVarMem(pbmat34);\n\n    _PbactRoot()->t.t.mat = *pbmat34;\n    BrMatrix34PostTranslate(&_PbactRoot()->t.t.mat, xr, yr, zr);\n\n    if (_cactHidden == 0)\n    {\n        AssertPo(_pbwld, 0);\n        _pbwld->MarkDirty(); // need to render\n    }\n}\n\n/***************************************************************************\n    Set the ibact'th body part to use model pmodl\n***************************************************************************/\nvoid BODY::SetPartModel(long ibact, MODL *pmodl)\n{\n    AssertThis(0);\n    AssertIn(ibact, 0, _cbactPart);\n    AssertPo(pmodl, 0);\n\n    BACT *pbact = _PbactPart(ibact);\n    PMODL pmodlOld;\n\n    if (pvNil != pbact->model) // Release old MODL, unless it's pmodl\n    {\n        pmodlOld = MODL::PmodlFromBmdl(pbact->model);\n        AssertPo(pmodlOld, 0);\n        if (pmodl == pmodlOld)\n            return; // We're already using that MODL, so do nothing\n        ReleasePpo(&pmodlOld);\n    }\n\n    pbact->model = pmodl->Pbmdl();\n    Assert(MODL::PmodlFromBmdl(pbact->model) == pmodl, \"MODL problem\");\n    pmodl->AddRef();\n    if (_cactHidden == 0)\n    {\n        AssertPo(_pbwld, 0);\n        _pbwld->MarkDirty(); // need to render\n    }\n}\n\n/***************************************************************************\n    Set the ibact'th body part to use matrix pbmat34\n***************************************************************************/\nvoid BODY::SetPartMatrix(long ibact, BMAT34 *pbmat34)\n{\n    AssertThis(0);\n    AssertIn(ibact, 0, _cbactPart);\n    AssertVarMem(pbmat34);\n\n    _PbactPart(ibact)->t.t.mat = *pbmat34;\n    if (_cactHidden == 0)\n    {\n        AssertPo(_pbwld, 0);\n        _pbwld->MarkDirty(); // need to render\n    }\n}\n\n/***************************************************************************\n    Remove old MTRL or CMTL from ibset.  This is nontrivial because there\n    could either be a CMTL attached to the bset (in which case we just free\n    the CMTL) or a bunch of MTRLs (in which case we free each MTRL).\n    Actually, in the latter case, it would be a bunch of copies of the same\n    MTRL, but we keep one reference per body part in the set.\n***************************************************************************/\nvoid BODY::_RemoveMaterial(long ibset)\n{\n    AssertThis(0);\n    AssertIn(ibset, 0, _cbset);\n\n    PCMTL pcmtlOld;\n    BACT *pbact;\n    long ibact;\n    bool fCmtl = fFalse;\n\n    pcmtlOld = _prgpcmtl[ibset];\n    if (pvNil != pcmtlOld) // there was a CMTL on this bset\n    {\n        fCmtl = fTrue;\n        AssertPo(pcmtlOld, 0);\n        ReleasePpo(&pcmtlOld); // free all old MTRLs\n        _prgpcmtl[ibset] = pvNil;\n    }\n    // for each body part, if this part is in the set ibset, free the MTRL\n    for (ibact = 0; ibact < _cbactPart; ibact++)\n    {\n        if (ibset == _Ibset(ibact))\n        {\n            pbact = _PbactPart(ibact);\n            if (pbact->material != pvNil) // free old MTRL\n            {\n                if (!fCmtl)\n                    MTRL::PmtrlFromBmtl(pbact->material)->Release();\n                pbact->material = pvNil;\n            }\n        }\n    }\n}\n\n/***************************************************************************\n    Set the ibset'th body part set to use material pmtrl\n***************************************************************************/\nvoid BODY::SetPartSetMtrl(long ibset, MTRL *pmtrl)\n{\n    AssertThis(0);\n    AssertIn(ibset, 0, _cbset);\n    AssertPo(pmtrl, 0);\n\n    BACT *pbact;\n    long ibact;\n\n    _RemoveMaterial(ibset); // remove existing MTRL/CMTL, if any\n\n    // for each body part, if this part is in the set ibset, set the MTRL\n    for (ibact = 0; ibact < _cbactPart; ibact++)\n    {\n        if (ibset == _Ibset(ibact))\n        {\n            pbact = _PbactPart(ibact);\n            pbact->material = pmtrl->Pbmtl();\n            pmtrl->AddRef();\n        }\n    }\n    if (_cactHidden == 0)\n    {\n        AssertPo(_pbwld, 0);\n        _pbwld->MarkDirty(); // need to render\n    }\n}\n\n/***************************************************************************\n    Apply the given CMTL to the appropriate body part set (the CMTL knows\n    which body part set to apply to).\n***************************************************************************/\nvoid BODY::SetPartSetCmtl(CMTL *pcmtl)\n{\n    AssertThis(0);\n    AssertPo(pcmtl, 0);\n\n    BACT *pbact;\n    long ibact;\n    long ibmtl = 0;\n    long ibset = pcmtl->Ibset();\n    PMODL pmodl;\n\n    pcmtl->AddRef();\n    _RemoveMaterial(ibset); // remove existing MTRL/CMTL\n    _prgpcmtl[ibset] = pcmtl;\n\n    // for each body part, if this part is in the set ibset, set the MTRL\n    for (ibact = 0; ibact < _cbactPart; ibact++)\n    {\n        if (ibset == _Ibset(ibact))\n        {\n            pbact = _PbactPart(ibact);\n            // Handle model changes for accessories\n            pmodl = pcmtl->Pmodl(ibmtl);\n            if (pvNil != pmodl)\n                SetPartModel(ibact, pmodl);\n            pbact->material = pcmtl->Pbmtl(ibmtl);\n            ibmtl++;\n        }\n    }\n    Assert(ibmtl == pcmtl->Cbprt(), \"didn't use all custom materials!\");\n    if (_cactHidden == 0)\n    {\n        AssertPo(_pbwld, 0);\n        _pbwld->MarkDirty(); // need to render\n    }\n}\n\n/***************************************************************************\n    Determines the current CMTL or MTRL applied to the given ibset.\n    If a CMTL is attached, *pfMtrl is fFalse and *ppcmtl holds the\n    PCMTL.  If a MTRL is attached, *pfMtrl is fTrue and *ppmtrl holds\n    the PMTRL.\n***************************************************************************/\nvoid BODY::GetPartSetMaterial(long ibset, bool *pfMtrl, MTRL **ppmtrl, CMTL **ppcmtl)\n{\n    AssertThis(0);\n    AssertIn(ibset, 0, _cbset);\n    AssertVarMem(pfMtrl);\n    AssertVarMem(ppmtrl);\n    AssertVarMem(ppcmtl);\n\n    BACT *pbact;\n    long ibact;\n\n    *ppcmtl = _prgpcmtl[ibset];\n    if (pvNil != *ppcmtl) // there is a CMTL on this bset\n    {\n        *pfMtrl = fFalse;\n        AssertPo(*ppcmtl, 0);\n        TrashVar(ppmtrl);\n    }\n    else\n    {\n        *pfMtrl = fTrue;\n        TrashVar(ppcmtl);\n        // Find any body part of ibset...they'll all have the same MTRL\n        for (ibact = 0; ibact < _cbactPart; ibact++)\n        {\n            if (ibset == _Ibset(ibact))\n            {\n                pbact = _PbactPart(ibact);\n                Assert(pvNil != pbact->material, \"Why does this body part \"\n                                                 \"set have neither MTRL nor CMTL attached?\");\n                *ppmtrl = MTRL::PmtrlFromBmtl(pbact->material);\n                AssertPo(*ppmtrl, 0);\n                return;\n            }\n        }\n        Assert(0, \"why are we here?\");\n    }\n}\n\n/***************************************************************************\n    Filter callback proc for FPtInActor(). Stops when the BODY is hit.\n***************************************************************************/\nint BODY::_FFilterSearch(BACT *pbact, PBMDL pbmdl, PBMTL pbmtl, BVEC3 *ray_pos, BVEC3 *ray_dir, BRS dzpNear, BRS dzpFar,\n                         void *pvArg)\n{\n    AssertVarMem(pbact);\n    AssertVarMem(ray_pos);\n    AssertVarMem(ray_dir);\n\n    PBODY pbody = (PBODY)pvArg;\n    PBODY pbodyFound;\n    long ibset;\n\n    AssertPo(pbody, 0);\n\n    pbodyFound = BODY::PbodyFromBact(pbact, &ibset);\n    if (pbodyFound == pvNil)\n    {\n        Bug(\"What actor is this?  It has no BODY\");\n        return fFalse;\n    }\n\n    AssertPo(pbodyFound, 0);\n\n    if (pbody != pbodyFound)\n        return fFalse; // keep searching\n\n    pbody->_fFound = fTrue;\n    if (pbact == pbody->_PbactHilite())\n        return fFalse; // keep searching\n    pbody->_ibset = ibset;\n    return fTrue; // stop searching\n}\n\n/***************************************************************************\n   Returns fTrue if this body is under (xp, yp)\n***************************************************************************/\nbool BODY::FPtInBody(long xp, long yp, long *pibset)\n{\n    AssertThis(0);\n\n    _fFound = fFalse;\n    _ibset = ivNil;\n    _pbwld->IterateActorsInPt(&BODY::_FFilterSearch, (void *)this, xp, yp);\n    *pibset = _ibset;\n    return _fFound;\n}\n\n/***************************************************************************\n    BWLD is about to render the world, so clear out this BODY's _rcBounds\n    (but save the last good bounds in _rcBoundsLastVis).  Also size the\n    bounding box correctly.\n***************************************************************************/\nvoid BODY::_PrepareToRender(PBACT pbact)\n{\n    AssertVarMem(pbact);\n    PBODY pbody;\n    RC rc;\n    BCB bcb;\n\n    pbody = PbodyFromBact(pbact);\n    AssertPo(pbody, 0);\n\n    if (pbody->FIsInView())\n    {\n        pbody->_rcBoundsLastVis = pbody->_rcBounds;\n        pbody->_rcBounds.Zero();\n    }\n\n    // Prepare bounding box, if BODY is highlighted\n    if (pbody->_PbactHilite()->type == BR_ACTOR_MODEL)\n    {\n        // Need to temporarily change type to 'none' so that the bounding\n        // box isn't counted when calculating size of actor\n        pbody->GetBcbBounds(&bcb);\n        Assert(size(BRB) == size(BCB), \"should be same structure\");\n        BrBoundsToMatrix34(&pbody->_PbactHilite()->t.t.mat, (BRB *)&bcb);\n    }\n}\n\n/***************************************************************************\n    Return the bounds of the BODY contaning PBACT\n***************************************************************************/\nvoid BODY::_GetRc(PBACT pbact, RC *prc)\n{\n    AssertVarMem(pbact);\n    AssertVarMem(prc);\n\n    PBODY pbody;\n\n    pbody = PbodyFromBact(pbact);\n    AssertPo(pbody, 0);\n\n    if (pvNil != pbody)\n        *prc = pbody->_rcBounds;\n}\n\n/***************************************************************************\n    Compute the world-space bounding box of the BODY.  The code temporarily\n    changes the hilite BACT's type to BR_ACTOR_NONE so that BrActorToBounds\n    doesn't include the size of the bounding box when computing the size of\n    the actor.\n***************************************************************************/\nvoid BODY::GetBcbBounds(BCB *pbcb, bool fWorld)\n{\n    AssertThis(0);\n    AssertVarMem(pbcb);\n\n    BRB brb;\n    byte type = _PbactHilite()->type;\n    long ibv3;\n    br_vector3 bv3;\n\n    _PbactHilite()->type = BR_ACTOR_NONE;\n    Assert(size(BRB) == size(BCB), \"should be same structure\");\n    BrActorToBounds(&brb, _PbactRoot());\n    _PbactHilite()->type = type;\n    *(BRB *)pbcb = brb;\n\n    if (fWorld)\n    {\n        br_vector3 rgbv3[8];\n        BMAT34 bmat34;\n\n        rgbv3[0] = brb.min;\n        rgbv3[1] = brb.min;\n        rgbv3[1].v[0] = brb.max.v[0];\n        rgbv3[2] = brb.min;\n        rgbv3[2].v[1] = brb.max.v[1];\n        rgbv3[3] = brb.min;\n        rgbv3[3].v[2] = brb.max.v[2];\n        rgbv3[4] = brb.max;\n        rgbv3[5] = brb.max;\n        rgbv3[5].v[0] = brb.min.v[0];\n        rgbv3[6] = brb.max;\n        rgbv3[6].v[1] = brb.min.v[1];\n        rgbv3[7] = brb.max;\n        rgbv3[7].v[2] = brb.min.v[2];\n\n        bmat34 = _PbactRoot()->t.t.mat;\n\n        for (ibv3 = 0; ibv3 < 8; ibv3++)\n        {\n            bv3.v[0] = BR_MAC4(rgbv3[ibv3].v[0], bmat34.m[0][0], rgbv3[ibv3].v[1], bmat34.m[1][0], rgbv3[ibv3].v[2],\n                               bmat34.m[2][0], BR_SCALAR(1.0), bmat34.m[3][0]);\n            bv3.v[1] = BR_MAC4(rgbv3[ibv3].v[0], bmat34.m[0][1], rgbv3[ibv3].v[1], bmat34.m[1][1], rgbv3[ibv3].v[2],\n                               bmat34.m[2][1], BR_SCALAR(1.0), bmat34.m[3][1]);\n            bv3.v[2] = BR_MAC4(rgbv3[ibv3].v[0], bmat34.m[0][2], rgbv3[ibv3].v[1], bmat34.m[1][2], rgbv3[ibv3].v[2],\n                               bmat34.m[2][2], BR_SCALAR(1.0), bmat34.m[3][2]);\n            rgbv3[ibv3].v[0] = bv3.v[0];\n            rgbv3[ibv3].v[1] = bv3.v[1];\n            rgbv3[ibv3].v[2] = bv3.v[2];\n        }\n        pbcb->xrMin = pbcb->yrMin = pbcb->zrMin = BR_SCALAR(10000.0);\n        pbcb->xrMax = pbcb->yrMax = pbcb->zrMax = BR_SCALAR(-10000.0);\n        // Union with body's bounds\n        for (ibv3 = 0; ibv3 < 8; ibv3++)\n        {\n            if (rgbv3[ibv3].v[0] < pbcb->xrMin)\n                pbcb->xrMin = rgbv3[ibv3].v[0];\n            if (rgbv3[ibv3].v[1] < pbcb->yrMin)\n                pbcb->yrMin = rgbv3[ibv3].v[1];\n            if (rgbv3[ibv3].v[2] < pbcb->zrMin)\n                pbcb->zrMin = rgbv3[ibv3].v[2];\n            if (rgbv3[ibv3].v[0] > pbcb->xrMax)\n                pbcb->xrMax = rgbv3[ibv3].v[0];\n            if (rgbv3[ibv3].v[1] > pbcb->yrMax)\n                pbcb->yrMax = rgbv3[ibv3].v[1];\n            if (rgbv3[ibv3].v[2] > pbcb->zrMax)\n                pbcb->zrMax = rgbv3[ibv3].v[2];\n        }\n    }\n}\n\n/***************************************************************************\n    BWLD calls this function when each BACT is rendered.  It unions the\n    BACT bounds with the BODY's _rcBounds\n***************************************************************************/\nvoid BODY::_BactRendered(PBACT pbact, RC *prc)\n{\n    AssertVarMem(pbact);\n    AssertVarMem(prc);\n    PBODY pbody;\n\n    pbody = PbodyFromBact(pbact);\n    if (pvNil != pbody)\n        pbody->_rcBounds.Union(prc);\n}\n\n/***************************************************************************\n    Returns whether the BODY was in view the last time it was rendered.\n***************************************************************************/\nbool BODY::FIsInView(void)\n{\n    AssertThis(0);\n    return !_rcBounds.FEmpty();\n}\n\n/***************************************************************************\n    Fills in the 2D bounds of the BODY, the last time it was rendered.  If\n    the BODY was not in view at the last render, this function fills in the\n    bounds of the BODY the last time it was onstage.\n***************************************************************************/\nvoid BODY::GetRcBounds(RC *prc)\n{\n    AssertThis(0);\n    AssertVarMem(prc);\n\n    if (FIsInView())\n        *prc = _rcBounds;\n    else\n        *prc = _rcBoundsLastVis;\n}\n\n/***************************************************************************\n    Fills in the 2D coordinates of the center of the BODY, the last time\n    it was rendered.  If the BODY was not in view at the last render, this\n    function fills in the center of the BODY the last time it was onstage.\n***************************************************************************/\nvoid BODY::GetCenter(long *pxp, long *pyp)\n{\n    AssertThis(0);\n    AssertVarMem(pxp);\n    AssertVarMem(pyp);\n\n    if (FIsInView())\n    {\n        *pxp = _rcBounds.XpCenter();\n        *pyp = _rcBounds.YpCenter();\n    }\n    else\n    {\n        *pxp = _rcBoundsLastVis.XpCenter();\n        *pyp = _rcBoundsLastVis.YpCenter();\n    }\n}\n\n/***************************************************************************\n    Fills in the current position of the origin of this BODY.\n***************************************************************************/\nvoid BODY::GetPosition(BRS *pxr, BRS *pyr, BRS *pzr)\n{\n    AssertThis(0);\n    AssertVarMem(pxr);\n    AssertVarMem(pyr);\n    AssertVarMem(pzr);\n\n    *pxr = _PbactRoot()->t.t.mat.m[3][0];\n    *pyr = _PbactRoot()->t.t.mat.m[3][1];\n    *pzr = _PbactRoot()->t.t.mat.m[3][2];\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the BODY.\n***************************************************************************/\nvoid BODY::AssertValid(ulong grf)\n{\n    long ibact;\n    long ibset;\n    BACT *pbact;\n\n    BODY_PAR::AssertValid(fobjAllocated);\n    AssertIn(_cactHidden, 0, 100); // 100 is sanity check\n    AssertIn(_cbset, 0, _cbactPart + 1);\n    AssertPvCb(_prgbact, LwMul(_Cbact(), size(BACT)));\n    AssertPvCb(_prgpcmtl, LwMul(_cbset, size(PCMTL)));\n    Assert(pvNil == _PbactRoot()->model, \"BODY root shouldn't have a model!!\");\n    Assert(pvNil == _PbactRoot()->material, \"BODY root shouldn't have a material!!\");\n    AssertPo(_pglibset, 0);\n    Assert(_pglibset->CbEntry() == size(short), \"bad _pglibset\");\n\n    if (grf & fobjAssertFull)\n    {\n        for (ibact = 0; ibact < _cbactPart; ibact++)\n        {\n            pbact = _PbactPart(ibact);\n            if (pvNil != pbact->model)\n                AssertPo(MODL::PmodlFromBmdl(pbact->model), 0);\n            if (pvNil != pbact->material)\n                AssertPo(MTRL::PmtrlFromBmtl(pbact->material), 0);\n        }\n        for (ibset = 0; ibset < _cbset; ibset++)\n        {\n            AssertNilOrPo(_prgpcmtl[ibset], 0);\n        }\n    }\n}\n\n/***************************************************************************\n    Mark memory used by the BODY\n***************************************************************************/\nvoid BODY::MarkMem(void)\n{\n    AssertThis(0);\n\n    long ibact;\n    PBACT pbact;\n    PMODL pmodl;\n    long ibset;\n    bool fMtrl;\n    PMTRL pmtrl;\n    PCMTL pcmtl;\n\n    BODY_PAR::MarkMem();\n    MarkPv(_prgbact);\n    MarkPv(_prgpcmtl);\n    MarkMemObj(_pglibset);\n\n    for (ibact = 0; ibact < _cbactPart; ibact++)\n    {\n        pbact = _PbactPart(ibact);\n        if (pvNil != pbact->model)\n        {\n            pmodl = MODL::PmodlFromBmdl(pbact->model);\n            AssertPo(pmodl, 0);\n            MarkMemObj(pmodl);\n        }\n    }\n    for (ibset = 0; ibset < _cbset; ibset++)\n    {\n        GetPartSetMaterial(ibset, &fMtrl, &pmtrl, &pcmtl);\n        if (fMtrl)\n            MarkMemObj(pmtrl);\n        else\n            MarkMemObj(pcmtl);\n    }\n}\n#endif // DEBUG\n\n/***************************************************************************\n    Create a blank costume -- no materials are attached yet\n***************************************************************************/\nCOST::COST(void)\n{\n    TrashVar(&_cbset);\n    _prgpo = pvNil;\n}\n\n/***************************************************************************\n    Destroy a costume\n***************************************************************************/\nCOST::~COST(void)\n{\n    AssertBaseThis(0);\n    _Clear();\n}\n\n/***************************************************************************\n    Release all arrays and references\n***************************************************************************/\nvoid COST::_Clear(void)\n{\n    AssertBaseThis(0);\n\n    long ibset;\n\n    if (pvNil != _prgpo)\n    {\n        for (ibset = 0; ibset < _cbset; ibset++)\n            ReleasePpo(&_prgpo[ibset]); // Release the PCMTL or PMTRL\n        FreePpv((void **)&_prgpo);\n    }\n    TrashVar(&_cbset);\n}\n\n/***************************************************************************\n    Get a costume from a BODY\n***************************************************************************/\nbool COST::FGet(BODY *pbody)\n{\n    AssertThis(0);\n    AssertPo(pbody, 0);\n\n    long ibset;\n    PCMTL pcmtl;\n    PMTRL pmtrl;\n    bool fMtrl;\n\n    _Clear(); // drop previous costume, if any\n\n    if (!FAllocPv((void **)&_prgpo, LwMul(size(BASE *), pbody->Cbset()), fmemClear, mprNormal))\n    {\n        return fFalse;\n    }\n    _cbset = pbody->Cbset();\n    for (ibset = 0; ibset < _cbset; ibset++)\n    {\n        pbody->GetPartSetMaterial(ibset, &fMtrl, &pmtrl, &pcmtl);\n        if (fMtrl)\n            _prgpo[ibset] = pmtrl;\n        else\n            _prgpo[ibset] = pcmtl;\n        _prgpo[ibset]->AddRef();\n    }\n    AssertThis(0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Set a costume onto a BODY.  The flag fAllowDifferentShape should usually\n    be fFalse; it should be fTrue in the rare cases where it is appropriate\n    to apply a costume with one number of body part sets to a BODY with\n    a (possibly) different number of body part sets.  In that case, the\n    smaller number of materials are copied.  For example, when changing\n    the number of characters in a 3-D Text object, the code grabs the\n    current costume, resizes the TDT and BODY, sets the TDT's BODY to the\n    default costume, then restores the old costume to the BODY as much as\n    is appropriate.\n***************************************************************************/\nvoid COST::Set(PBODY pbody, bool fAllowDifferentShape)\n{\n    AssertThis(0);\n    AssertPo(pbody, 0);\n\n    long ibset;\n    BASE *po;\n    long cbset;\n\n    if (fAllowDifferentShape) // see comment in function header\n    {\n        cbset = LwMin(_cbset, pbody->Cbset());\n    }\n    else\n    {\n        Assert(_cbset == pbody->Cbset(), \"different BODY shapes!\");\n        cbset = _cbset;\n    }\n\n    for (ibset = 0; ibset < cbset; ibset++)\n    {\n        po = _prgpo[ibset];\n        AssertPo(po, 0);\n        if (po->FIs(kclsMTRL))\n            pbody->SetPartSetMtrl(ibset, (PMTRL)_prgpo[ibset]);\n        else\n            pbody->SetPartSetCmtl((PCMTL)_prgpo[ibset]);\n    }\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the COST.\n***************************************************************************/\nvoid COST::AssertValid(ulong grf)\n{\n    long ibset;\n    BASE *po;\n\n    if (pvNil != _prgpo)\n    {\n        AssertPvCb(_prgpo, LwMul(size(BASE *), _cbset));\n        for (ibset = 0; ibset < _cbset; ibset++)\n        {\n            po = _prgpo[ibset];\n            if (po->FIs(kclsMTRL))\n                AssertPo((PMTRL)po, 0);\n            else\n                AssertPo((PCMTL)po, 0);\n        }\n    }\n}\n\n/***************************************************************************\n    Mark memory used by the COST\n***************************************************************************/\nvoid COST::MarkMem(void)\n{\n    AssertThis(0);\n\n    long ibset;\n\n    if (pvNil != _prgpo)\n    {\n        MarkPv(_prgpo);\n        for (ibset = 0; ibset < _cbset; ibset++)\n            MarkMemObj(_prgpo[ibset]);\n    }\n}\n\n#endif DEBUG\n"
  },
  {
    "path": "src/engine/makefile",
    "content": "#---engine.mak\n\n!IFNDEF MAKEFILE_ENGINE\nMAKEFILE_ENGINE = 1\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.def\n\n\n#ENGINE SOURCE DIRECTORY\nENGINE_SRC_DIR = $(SOC_ROOT)\\src\\engine\n\n#SOC OBJ DIRECTORY\n# REVIEW a-aarob (peted): why isn't this defined in the soc\\makefile?\nSOC_OBJ_ROOT_DIR = $(SOC_ROOT)\\obj\nSOC_OBJ_DIR = $(SOC_OBJ_ROOT_DIR)\\$(BLD_TYPE_DIR)\n\n!IF \"$(LOCAL_BUILD)\"==\"1\"\nTARGET_DIR =\n!ELSE # LOCAL_BUILD\nTARGET_DIR = $(SOC_OBJ_DIR)^\\\n!ENDIF # !LOCAL_BUILD\n\nBREN_LIB =  $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\\bren.lib\\\n            $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\\brfmmxr.lib\\\n            $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\\brfwmxr.lib\\\n            $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\\brzbmxr.lib\n\n\nENGINE_TARGETS =\\\n    $(TARGET_DIR)actor.obj\\\n    $(TARGET_DIR)actredit.obj\\\n    $(TARGET_DIR)actrsave.obj\\\n    $(TARGET_DIR)actrsnd.obj\\\n    $(TARGET_DIR)bkgd.obj\\\n    $(TARGET_DIR)body.obj\\\n    $(TARGET_DIR)modl.obj\\\n    $(TARGET_DIR)movie.obj\\\n    $(TARGET_DIR)msnd.obj\\\n    $(TARGET_DIR)mtrl.obj\\\n    $(TARGET_DIR)scene.obj\\\n    $(TARGET_DIR)srec.obj\\\n    $(TARGET_DIR)tagl.obj\\\n    $(TARGET_DIR)tagman.obj\\\n    $(TARGET_DIR)tbox.obj\\\n    $(TARGET_DIR)tdf.obj\\\n    $(TARGET_DIR)tdt.obj\\\n    $(TARGET_DIR)tmpl.obj\n\n\n\n\n\n#-Compile rules-------------------------------------------------------------\n\nPROGRAM_DATABASE = $(TARGET_DIR)soc.pdb\nPRECOMPILED_HEADER = $(TARGET_DIR)soc.pch\n\nCPPEXTRA = /Zi /Fd$(PROGRAM_DATABASE) /Fp$(PRECOMPILED_HEADER)\n\nSRC_DIR=$(ENGINE_SRC_DIR)\nOBJ_DIR=$(SOC_OBJ_DIR)\nTGT_NAME=Engine\n\n!INCLUDE $(SOC_ROOT)\\makefile.rul\n\n\n#-Targets-------------------------------------------------------------------\n\nALL_ENGINE = $(TARGET_DIR)engine.lib\nALL_TARGETS_ROOT = $(ALL_TARGETS_ROOT) $(ALL_ENGINE)\n\nCLEAN_ENGINE = CLEAN_ENGINE_OBJ\nCLEAN_TARGETS_ROOT=$(CLEAN_TARGETS_ROOT) $(CLEAN_ENGINE)\n\n\n# Only define generic targets if we're not building in the current directory\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\n!IF \"$(LOCAL_BUILD)\" != \"0\"\nALL: $(SOC_OBJ_DIR) $(ALL_ENGINE)\nCLEAN: $(CLEAN_ENGINE) ALL\n!ENDIF # LOCAL_BUILD != 0\n\n$(SOC_OBJ_DIR) :\n    @echo Making Directories $(SOC_OBJ_DIR)...\n    if not exist $(SOC_OBJ_ROOT_DIR)/nul mkdir $(SOC_OBJ_ROOT_DIR)\n    if not exist $(SOC_OBJ_DIR)/nul mkdir $(SOC_OBJ_DIR)\n\n!ENDIF # !LOCAL_BUILD\n\n\n\nCLEAN_ENGINE_OBJ:\n    @echo <<deleng.bat\n@echo off\nDEL /q dummy.nul $(ENGINE_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c deleng.bat\n    del deleng.bat\n\n\n\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\nengine.lib : $(TARGET_DIR)engine.lib\n\n!ENDIF # !LOCAL_BUILD\n\n$(TARGET_DIR)engine.lib : $(ENGINE_TARGETS)\n    $(LINK) -lib $(LFLAGS) $(ENGINE_TARGETS) -out:$(TARGET_DIR)engine.lib\n    $(CHKERR)\n\n!ENDIF  # !MAKEFILE_ENGINE\n"
  },
  {
    "path": "src/engine/modl.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    modl.cpp: Model class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n***************************************************************************/\n#include \"soc.h\"\nASSERTNAME\n\nRTCLASS(MODL)\n\n/***************************************************************************\n    Create a new PMODL based on some vertices and faces.\n***************************************************************************/\nPMODL MODL::PmodlNew(long cbrv, BRV *prgbrv, long cbrf, BRF *prgbrf)\n{\n    AssertIn(cbrv, 0, ksuMax); // ushort in br_model\n    AssertPvCb(prgbrv, LwMul(cbrv, size(BRV)));\n    AssertIn(cbrf, 0, ksuMax); // ushort in br_model\n    AssertPvCb(prgbrf, LwMul(cbrf, size(BRF)));\n\n    PMODL pmodl;\n    char szIdentifier[size(PMODL) + 1];\n\n    pmodl = NewObj MODL;\n    if (pvNil == pmodl)\n        goto LFail;\n    ClearPb(szIdentifier, size(PMODL) + 1);\n    pmodl->_pbmdl = BrModelAllocate(szIdentifier, cbrv, cbrf);\n    if (pvNil == pmodl->_pbmdl)\n        goto LFail;\n    CopyPb(&pmodl, pmodl->_pbmdl->identifier, size(PMODL));\n    CopyPb(prgbrv, pmodl->_pbmdl->vertices, LwMul(cbrv, size(BRV)));\n    CopyPb(prgbrf, pmodl->_pbmdl->faces, LwMul(cbrf, size(BRF)));\n    BrModelAdd(pmodl->_pbmdl);\n    AssertPo(pmodl, 0);\n    return pmodl;\nLFail:\n    ReleasePpo(&pmodl);\n    return pvNil;\n}\n\n/***************************************************************************\n    A PFNRPO to read a MODL from a file\n***************************************************************************/\nbool MODL::FReadModl(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n\n    MODL *pmodl;\n\n    *pcb = pblck->Cb(fTrue);\n    if (pvNil == ppbaco)\n        return fTrue;\n\n    if (!pblck->FUnpackData())\n        goto LFail;\n    *pcb = pblck->Cb();\n\n    pmodl = NewObj MODL;\n    if (pvNil == pmodl || !pmodl->_FInit(pblck))\n    {\n        ReleasePpo(&pmodl);\n    LFail:\n        TrashVar(ppbaco);\n        TrashVar(pcb);\n        return pvNil;\n    }\n    AssertPo(pmodl, 0);\n\n    *ppbaco = pmodl;\n    return fTrue;\n}\n\n/***************************************************************************\n    Reads a MODL from a BLCK\n***************************************************************************/\nbool MODL::_FInit(PBLCK pblck)\n{\n    AssertBaseThis(0);\n    AssertPo(pblck, 0);\n\n    MODLF modlf;\n    long cbrgbrv;\n    long cbrgbrf;\n    long ibrv;\n    BRV *pbrv;\n    long ibrf;\n    BRF *pbrf;\n    MODL *pmodlThis = this;\n    char szIdentifier[size(PMODL) + 1];\n\n    ClearPb(szIdentifier, size(PMODL) + 1);\n    if (!pblck->FUnpackData())\n        return fFalse;\n    if (pblck->Cb() < size(MODLF))\n        return fFalse;\n    if (!pblck->FReadRgb(&modlf, size(MODLF), 0))\n        return fFalse;\n    if (kboOther == modlf.bo)\n        SwapBytesBom(&modlf, kbomModlf);\n    Assert(kboCur == modlf.bo, \"bad MODL!\");\n\n    // Allocate space for the BMDL, array of vertices, and array of faces\n    cbrgbrv = LwMul(modlf.cver, size(BRV));\n    cbrgbrf = LwMul(modlf.cfac, size(BRF));\n\n    if (modlf.rRadius == rZero)\n    {\n        // unprepared model.  Gotta prepare it.\n\n        _pbmdl = BrModelAllocate(szIdentifier, modlf.cver, modlf.cfac);\n        if (pvNil == _pbmdl)\n            return fFalse;\n        CopyPb(&pmodlThis, _pbmdl->identifier, size(PMODL));\n        if (!pblck->FReadRgb(_pbmdl->vertices, cbrgbrv, size(MODLF)))\n            return fFalse;\n        if (!pblck->FReadRgb(_pbmdl->faces, cbrgbrf, size(MODLF) + cbrgbrv))\n            return fFalse;\n\n        BrModelAdd(_pbmdl);\n\n        // REVIEW *****: uncomment and expand the following code to prelight models\n        //\t\tBVEC3 bvec3;\n        //\t\tif (!_FPrelight(1, &bvec3))\n        //\t\t\treturn fFalse;\n    }\n    else\n    {\n        // pre-prepared model.\n        _pbmdl = BrModelAllocate(szIdentifier, 0, 0);\n        if (pvNil == _pbmdl)\n            return fFalse;\n        CopyPb(&pmodlThis, _pbmdl->identifier, size(PMODL));\n\n        _pbmdl->prepared_vertices =\n            (BRV *)BrResAllocate(_pbmdl, LwMul(modlf.cver, size(BRV)), BR_MEMORY_PREPARED_VERTICES);\n        if (pvNil == _pbmdl->prepared_vertices)\n            return fFalse;\n        _pbmdl->prepared_faces = (BRF *)BrResAllocate(_pbmdl, LwMul(modlf.cfac, size(BRF)), BR_MEMORY_PREPARED_FACES);\n        if (pvNil == _pbmdl->prepared_faces)\n            return fFalse;\n\n        if (!pblck->FReadRgb(_pbmdl->prepared_vertices, cbrgbrv, size(MODLF)))\n        {\n            return fFalse;\n        }\n        if (kboOther == modlf.bo)\n        {\n            for (ibrv = 0, pbrv = _pbmdl->prepared_vertices; ibrv < modlf.cver; ibrv++, pbrv++)\n            {\n                SwapBytesBom(pbrv, kbomBrv);\n            }\n        }\n        if (!pblck->FReadRgb(_pbmdl->prepared_faces, cbrgbrf, size(MODLF) + cbrgbrv))\n        {\n            return fFalse;\n        }\n        if (kboOther == modlf.bo)\n        {\n            for (ibrf = 0, pbrf = _pbmdl->prepared_faces; ibrf < modlf.cfac; ibrf++, pbrf++)\n            {\n                SwapBytesBom(pbrf, kbomBrf);\n            }\n        }\n\n        _pbmdl->flags = BR_MODF_PREPREPARED;\n        _pbmdl->nprepared_vertices = (ushort)modlf.cver;\n        _pbmdl->nprepared_faces = (ushort)modlf.cfac;\n\n        // The following code assumes that there is no material data\n        // in the models.  If there is material data, the code will have\n        // to change to read vertex groups and face groups from file.\n        _pbmdl->nvertex_groups = 1;\n        _pbmdl->nface_groups = 1;\n        _pbmdl->vertex_groups = (br_vertex_group *)BrResAllocate(_pbmdl, size(br_vertex_group), BR_MEMORY_GROUPS);\n        if (pvNil == _pbmdl->vertex_groups)\n            return fFalse;\n        _pbmdl->vertex_groups->material = pvNil;\n        _pbmdl->vertex_groups->vertices = _pbmdl->prepared_vertices;\n        _pbmdl->vertex_groups->nvertices = _pbmdl->nprepared_vertices;\n        _pbmdl->face_groups = (br_face_group *)BrResAllocate(_pbmdl, size(br_face_group), BR_MEMORY_GROUPS);\n        if (pvNil == _pbmdl->face_groups)\n            return fFalse;\n        _pbmdl->face_groups->material = pvNil;\n        _pbmdl->face_groups->faces = _pbmdl->prepared_faces;\n        _pbmdl->face_groups->nfaces = _pbmdl->nprepared_faces;\n        _pbmdl->radius = modlf.rRadius;\n        _pbmdl->bounds = modlf.brb;\n        _pbmdl->pivot = modlf.bvec3Pivot;\n        BrModelAdd(_pbmdl);\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Reads a BRender model from a .DAT file\n***************************************************************************/\nPMODL MODL::PmodlReadFromDat(FNI *pfni)\n{\n    AssertPo(pfni, ffniFile);\n\n    STN stn;\n    PMODL pmodl;\n\n    pmodl = NewObj MODL;\n    if (pvNil == pmodl)\n        goto LFail;\n    pfni->GetStnPath(&stn);\n    pmodl->_pbmdl = BrModelLoad(stn.Psz());\n    if (pvNil == pmodl->_pbmdl)\n        goto LFail;\n    pmodl->_pbmdl->flags |= BR_MODF_KEEP_ORIGINAL;\n    BrModelPrepare(pmodl->_pbmdl, BR_MPREP_ALL);\n    Assert(CchSz(pmodl->_pbmdl->identifier) >= size(void *), \"no room for pmodl ptr\");\n    CopyPb(&pmodl, pmodl->_pbmdl->identifier, size(void *));\n    AssertPo(pmodl, 0);\n    return pmodl;\nLFail:\n    ReleasePpo(&pmodl);\n    return pvNil;\n}\n\n/***************************************************************************\n    Returns a pointer to the MODL that owns this BMDL\n***************************************************************************/\nPMODL MODL::PmodlFromBmdl(PBMDL pbmdl)\n{\n    AssertVarMem(pbmdl);\n    PMODL pmodl = (PMODL) * (long *)pbmdl->identifier;\n    AssertPo(pmodl, 0);\n    return pmodl;\n}\n\n/***************************************************************************\n    Destructor\n***************************************************************************/\nMODL::~MODL(void)\n{\n    AssertBaseThis(0);\n    if (pvNil != _pbmdl)\n    {\n        BrModelRemove(_pbmdl);\n        BrModelFree(_pbmdl);\n    }\n}\n\n/***************************************************************************\n    Writes a MODL to a chunk\n***************************************************************************/\nbool MODL::FWrite(PCFL pcfl, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n\n    long cb;\n    long cbrgbrv;\n    long cbrgbrf;\n    MODLF *pmodlf;\n\n    cbrgbrv = LwMul(_pbmdl->nprepared_vertices, size(br_vertex));\n    cbrgbrf = LwMul(_pbmdl->nprepared_faces, size(br_face));\n    cb = size(MODLF) + cbrgbrv + cbrgbrf;\n    if (!FAllocPv((void **)&pmodlf, cb, fmemClear, mprNormal))\n        goto LFail;\n    pmodlf->bo = kboCur;\n    pmodlf->osk = koskCur;\n    pmodlf->cver = _pbmdl->nprepared_vertices;\n    pmodlf->cfac = _pbmdl->nprepared_faces;\n    pmodlf->rRadius = _pbmdl->radius;\n    pmodlf->brb = _pbmdl->bounds;\n    pmodlf->bvec3Pivot = _pbmdl->pivot;\n    CopyPb(_pbmdl->prepared_vertices, PvAddBv(pmodlf, size(MODLF)), cbrgbrv);\n    CopyPb(_pbmdl->prepared_faces, PvAddBv(pmodlf, size(MODLF) + cbrgbrv), cbrgbrf);\n    if (!pcfl->FPutPv(pmodlf, cb, ctg, cno))\n        goto LFail;\n    FreePpv((void **)&pmodlf);\n    return fTrue;\nLFail:\n    Warn(\"model save failed.\");\n    FreePpv((void **)&pmodlf);\n    return fFalse;\n}\n\n/***************************************************************************\n    Adjust glyph for a TDF.  It is centered in X and Z, with Y at the\n    baseline, and we do some voodoo to get \"kerning\" (really \"variable\n    interletter spacing\") to work.\n***************************************************************************/\nvoid MODL::AdjustTdfCharacter(void)\n{\n    AssertThis(0);\n\n    BRS dxrModl = Dxr();\n    BRS dxrSpacing = _pbmdl->bounds.min.v[0];\n    BRS dxr = BrsHalf(dxrModl) + dxrSpacing;\n    BRS dzrModl = Dzr();\n    BRS dzr = BrsHalf(dzrModl);\n    long cbrv = _pbmdl->nprepared_vertices;\n    long ibrv;\n\n    for (ibrv = 0; ibrv < cbrv; ibrv++)\n    {\n        _pbmdl->prepared_vertices[ibrv].p.v[0] -= dxr;\n        _pbmdl->prepared_vertices[ibrv].p.v[2] -= dzr;\n    }\n    _pbmdl->bounds.min.v[0] -= dxr;\n    _pbmdl->bounds.max.v[0] -= dxr;\n    _pbmdl->pivot.v[0] -= dxr;\n    _pbmdl->bounds.min.v[0] -= dxrSpacing;\n    if (dxrSpacing < BR_SCALAR(-0.01))\n        dxrSpacing = BR_SCALAR(0.5);\n    _pbmdl->bounds.max.v[0] += dxrSpacing;\n\n    _pbmdl->bounds.min.v[2] -= dzr;\n    _pbmdl->bounds.max.v[2] -= dzr;\n    _pbmdl->pivot.v[2] -= dzr;\n}\n\n/***************************************************************************\n    Prelight a model\n    REVIEW *****: make this code more general\n***************************************************************************/\nbool MODL::_FPrelight(long cblit, BVEC3 *prgbvec3Light)\n{\n    AssertIn(cblit, 1, 10);\n    AssertPvCb(prgbvec3Light, LwMul(cblit, size(BVEC3)));\n    AssertBaseThis(0);\n\n    PBACT pbactWorld;\n    PBACT pbactCamera;\n    PBPMP pbpmpRGB;\n    PBPMP pbpmpZ;\n    PBACT pbactLight;\n    BLIT blit;\n    PBMTL pbmtl;\n    long iblit;\n    BCAM bcam = {\"bah\",\n                 BR_CAMERA_PERSPECTIVE,\n                 BR_ANGLE_DEG(60.0), // REVIEW *****\n                 BR_SCALAR(1.0),\n                 BR_SCALAR(100.0),\n                 BR_SCALAR(16.0 / 9.0),\n                 544,\n                 306};\n\n    const br_colour kbrcHilite = BR_COLOUR_RGB(255, 255, 255);\n    const byte kbOpaque = 0xff;\n    const br_ufraction kbrufKaHilite = BR_UFRACTION(0.10);\n    const br_ufraction kbrufKdHilite = BR_UFRACTION(0.60);\n    const br_ufraction kbrufKsHilite = BR_UFRACTION(0.00);\n    const BRS krPowerHilite = BR_SCALAR(50);\n    const long kiclrHilite = 108; // palette index for hilite color\n\n    ClearPb(&blit, size(BLIT));\n    blit.colour = BR_COLOUR_RGB(0xff, 0xff, 0xff);\n    blit.type = BR_LIGHT_DIRECT;\n    blit.attenuation_c = BR_SCALAR(1.0);\n\n    pbactWorld = BrActorAllocate(BR_ACTOR_NONE, pvNil);\n    if (pvNil == pbactWorld)\n        goto LFail;\n\n    pbactCamera = BrActorAllocate(BR_ACTOR_CAMERA, &bcam);\n    if (pvNil == pbactCamera)\n        goto LFail;\n    BrActorAdd(pbactWorld, pbactCamera);\n\n    for (iblit = 0; iblit < cblit; iblit++)\n    {\n        pbactLight = BrActorAllocate(BR_ACTOR_LIGHT, pvNil);\n        if (pvNil == pbactLight)\n            goto LFail;\n        pbactLight->type_data = &blit;\n        BrActorAdd(pbactWorld, pbactLight);\n        BrLightEnable(pbactLight);\n    }\n\n    pbpmpRGB = BrPixelmapAllocate(BR_PMT_INDEX_8, 544, 306, 0, 0);\n    pbpmpZ = BrPixelmapAllocate(BR_PMT_DEPTH_16, 544, 306, 0, 0);\n\n    pbmtl = BrMaterialAllocate(\"Prelighting material\");\n    if (pvNil == pbmtl)\n        goto LFail;\n    pbmtl->colour = kbrcHilite;\n    pbmtl->ka = kbrufKaHilite;\n    pbmtl->kd = kbrufKdHilite, pbmtl->ks = kbrufKsHilite;\n    pbmtl->power = krPowerHilite;\n    pbmtl->flags = BR_MATF_LIGHT | BR_MATF_GOURAUD;\n    pbmtl->index_base = kiclrHilite;\n    pbmtl->index_range = 8;\n    BrMaterialAdd(pbmtl);\n    BrZbSceneRenderBegin(pbactWorld, pbactCamera, pbpmpRGB, pbpmpZ);\n    BrSceneModelLight(_pbmdl, pbmtl, pbactWorld, pvNil);\n    BrZbSceneRenderEnd();\n    BrMaterialRemove(pbmtl);\n\n    Assert(cblit == 1, \"code needs to get smarter...\");\n    BrLightDisable(pbactLight);\n\n    BrActorFree(pbactWorld);\n\n    return fTrue;\nLFail:\n    BrActorFree(pbactWorld);\n    return fFalse;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the MODL.\n***************************************************************************/\nvoid MODL::AssertValid(ulong grf)\n{\n    MODL_PAR::AssertValid(fobjAllocated);\n    AssertVarMem(_pbmdl);\n    Assert((PMODL) * (long *)_pbmdl->identifier == this, \"Bad MODL identifier\");\n}\n\n/***************************************************************************\n    Mark memory used by the MODL\n***************************************************************************/\nvoid MODL::MarkMem(void)\n{\n    AssertThis(0);\n\n    MODL_PAR::MarkMem();\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/engine/movie.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n  movie.cpp\n\n  Author: Sean Selitrennikoff\n\n  Date: August, 1994\n\n  This file contains all functionality for movie manipulation.\n\n  THIS IS A CODE REVIEWED FILE\n\n    Basic movie private classes:\n\n        Movie Scene actions Undo Object (MUNS)\n\n            BASE ---> UNDB ---> MUNB ---> MUNS\n\n\nNote: The client of the movie engine should always do all actions through\nMVIE level APIs, it should never use accessor functions to maniplate Scenes,\nActors, Text boxes, etc.\n\n***************************************************************************/\n\n#include \"soc.h\"\nASSERTNAME\n\n#define krScaleMouseRecord BR_SCALAR(0.20)\n#define krScaleMouseNonRecord BR_SCALAR(0.02)\n#define kdwrMousePerSecond BR_SCALAR(100.0) // \"mouse drag\" speed for arrow keys\n\n#define kdtsFrame (kdtsSecond / kfps)   // milliseconds per frame\n#define kdtimFrame (kdtimSecond / kfps) // clock ticks per frame\n#define kdtsCycleCels (kdtsFrame * 3)   // delay when cycling cels\n#define kdtsVlmFade 3                   // number of seconds to fade\n#define kdtimVlmFade (kdtimSecond / 4)  // number of clock ticks necessary to split 1 sec into 4 events\n#define kzrMouseScalingFactor BR_SCALAR(100.0)\n\nconst CHID kchidGstSource = 1;\n\n//\n// How many pixels from edge to warp cursor back to center\n//\nconst long kdpInset = 50;\n\n//\n// Mouse scaling factor when rotating\n//\nconst long krRotateScaleFactor = BR_SCALAR(0.001);\n\n//\n// Mouse scaling factor when sooner/latering.\n//\nconst long krSoonerScaleFactor = BR_SCALAR(0.05);\n\n//\n// Number of ticks to pass before scrolling a single pixel\n//\n#define kdtsScrolling 5\n\n//\n//\n// UNDO object for scene related actions:  Ins, New, and Rem\n//\n//\ntypedef class MUNS *PMUNS;\n\n#define MUNS_PAR MUNB\n\nenum MUNST\n{\n    munstInsScen,\n    munstRemScen,\n    munstSetBkgd\n};\n\n#define kclsMUNS 'MUNS'\nclass MUNS : public MUNS_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    long _iscen;\n    TAG _tag;\n    PSCEN _pscen;\n    MUNST _munst;\n    MUNS(void)\n    {\n    }\n\n  public:\n    static PMUNS PmunsNew(void);\n    ~MUNS(void);\n\n    void SetIscen(long iscen)\n    {\n        _iscen = iscen;\n    }\n    void SetPscen(PSCEN pscen)\n    {\n        _pscen = pscen;\n        _pscen->AddRef();\n    }\n    void SetMunst(MUNST munst)\n    {\n        _munst = munst;\n    }\n    void SetTag(PTAG ptag)\n    {\n        _tag = *ptag;\n    }\n\n    virtual bool FDo(PDOCB pdocb);\n    virtual bool FUndo(PDOCB pdocb);\n};\n\n//\n//\n//\n//  BEGIN MOVIE\n//\n//\n//\n\nRTCLASS(MVIE)\nRTCLASS(MUNB)\nRTCLASS(MUNS)\n\nBEGIN_CMD_MAP(MVIE, CMH)\nON_CID_ME(cidAlarm, &MVIE::FCmdAlarm, pvNil)\nON_CID_ME(cidRender, &MVIE::FCmdRender, pvNil)\nON_CID_GEN(cidSaveAndClose, pvNil, pvNil)\nEND_CMD_MAP_NIL()\n\n//\n// A file written by this version of movie.cpp receives this cvn.  Any\n// file with this cvn value has exactly the same file format\n//\nconst short kcvnCur = 2;\n\n//\n// A file written by this version of movie.cpp can be read by any version\n// of movie.cpp whose kcvnCur is >= to this (this should be <= kcvnCur)\n//\nconst short kcvnBack = 2;\n\n//\n// A file whose cvn is less than kcvnMin cannot be directly read by\n// this version of movie.cpp (maybe a converter will read it).\n// (this should be <= kcvnCur)\n//\nconst short kcvnMin = 1;\n\n//\n// Movie file prefix\n//\nstruct MFP\n{\n    short bo;  // byte order\n    short osk; // which system wrote this\n    DVER dver; // chunky file version\n};\nconst BOM kbomMfp = 0x55000000;\n\n//\n// Used to keep track of the roll call list of the movie\n//\nstruct MACTR\n{\n    long arid;\n    long cactRef;\n    ulong grfbrws; // browser properties\n    TAG tagTmpl;\n};\n\ntypedef MACTR *PMACTR;\n\nconst BOM kbomMactr = (0xFC000000 | (kbomTag >> 4));\n\n/****************************************************\n *\n * Constructor for movies.  This function is private, use PmvieNew()\n * for public construction.\n *\n ****************************************************/\nMVIE::MVIE(void) : _clok(khidMvieClock)\n{\n    _aridLim = 0;\n    _cno = cnoNil;\n    _iscen = ivNil;\n    _wit = witNil;\n    _trans = transNil;\n    _vlmOrg = 0;\n\n    SetCundbMax(1);\n}\n\n/******************************************************************************\n    _FSetPfilSave\n        Given an FNI, looks for and remembers if found the FIL associated with\n        it.  If the FIL was found, will also check to see if it's read-only.\n\n    Returns:\n        fFalse if the FIL wasn't found.\n\n************************************************************ PETED ***********/\nbool MVIE::_FSetPfilSave(PFNI pfni)\n{\n    AssertBaseThis(0);\n    AssertPo(pfni, 0);\n\n    long lAttrib;\n    STN stnFile;\n\n    /* Look for the file and remember FIL if found */\n    ReleasePpo(&_pfilSave);\n    _pfilSave = FIL::PfilFromFni(pfni);\n    if (_pfilSave == pvNil)\n        return fFalse;\n    _pfilSave->AddRef();\n    _fFniSaveValid = fTrue;\n\n    /* Remember whether FIL is read-only; only relevant if we actually found\n        the FIL, since if we didn't, we'll prompt for a new filename later\n        anyway */\n    pfni->GetStnPath(&stnFile);\n#ifdef WIN\n    _fReadOnly = (((lAttrib = GetFileAttributes(stnFile.Psz())) != 0xFFFFFFFF) && (lAttrib & FILE_ATTRIBUTE_READONLY));\n#else // MAC\n    RawRtn();\n#endif\n    return fTrue;\n}\n\n/****************************************************\n *\n * Reads a movie from a file.\n *\n * Parameters:\n *  pmcc - Pointer to the movie client class block to use.\n *\tpfni - File to read from.\n *\tcno - CNO of the movie chunk, cnoNil if using the\n *\t\tthe first one in the file.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie object.\n *\n ****************************************************/\nPMVIE MVIE::PmvieNew(bool fHalfMode, PMCC pmcc, FNI *pfni, CNO cno)\n{\n    AssertNilOrPo(pfni, 0);\n    AssertPo(pmcc, 0);\n\n    bool fSuccess = fFalse, fBeganLongOp = fFalse;\n    PMVIE pmvie;\n    KID kid;\n    CHID chid;\n    TAGL *ptagl;\n    PCFL pcfl = pvNil;\n    BLCK blck;\n    short bo;\n    short osk;\n    PGST pgstSource;\n\n    //\n    // Create the movie object\n    //\n    pmvie = NewObj MVIE;\n    if (pmvie == pvNil)\n    {\n        goto LFail;\n    }\n\n    //\n    // Create the GL for holding undo events\n    //\n    pmvie->_pglpundb = GL::PglNew(size(PUNDB), 1);\n    if (pmvie->_pglpundb == pvNil)\n    {\n        goto LFail;\n    }\n\n    //\n    // Create GL of actors in the movie\n    //\n    if (pvNil == pfni)\n    {\n        pmvie->_pgstmactr = GST::PgstNew(size(MACTR));\n        if (pmvie->_pgstmactr == pvNil)\n        {\n            goto LFail;\n        }\n    }\n\n    //\n    // Create the brender world\n    //\n    pmvie->_pbwld = BWLD::PbwldNew(pmcc->Dxp(), pmcc->Dyp(), fFalse, fHalfMode);\n    if (pvNil == pmvie->_pbwld)\n    {\n        goto LFail;\n    }\n\n    //\n    // Create the movie sound queue\n    //\n    pmvie->_pmsq = MSQ::PmsqNew();\n    if (pvNil == pmvie->_pmsq)\n    {\n        goto LFail;\n    }\n\n    //\n    // Save other variables\n    //\n    pmvie->_pmcc = pmcc;\n    pmcc->AddRef();\n\n    //\n    // Do we initialize from a file?\n    //\n    if (pfni == pvNil)\n    {\n        return (pmvie);\n    }\n\n    /* Don't bother putting up the wait cursor unless we're reading a movie */\n    vpappb->BeginLongOp();\n    fBeganLongOp = fTrue;\n\n    //\n    // Get file to read from\n    //\n    pcfl = CFL::PcflOpen(pfni, fcflNil);\n    if (pcfl == pvNil)\n    {\n        goto LFail;\n    }\n\n    if (!pmvie->FVerifyVersion(pcfl, &cno))\n        goto LFail;\n    pmvie->_cno = cno;\n\n    //\n    // Keep a reference to the user's file\n    //\n    if (!pmvie->_FSetPfilSave(pfni))\n    {\n        Bug(\"Hey, we just opened this file!\");\n        goto LFail;\n    }\n\n    //\n    // Note (by *****): CRF *must* have 0 cache size, because of\n    // serious cache-coherency problems otherwise.  TMPL data is not\n    // read-only, and chunk numbers change over time.\n    //\n    pmvie->_pcrfAutoSave = CRF::PcrfNew(pcfl, 0); // cache size must be 0\n    if (pvNil == pmvie->_pcrfAutoSave)\n    {\n        goto LFail;\n    }\n\n    //\n    // Merge this document's source title list\n    //\n    if (pcfl->FGetKidChidCtg(kctgMvie, cno, kchidGstSource, kctgGst, &kid) &&\n        pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n    {\n        pgstSource = GST::PgstRead(&blck, &bo, &osk);\n        if (pvNil != pgstSource)\n        {\n            // Ignore result...we can survive failure\n            vptagm->FMergeGstSource(pgstSource, bo, osk);\n            ReleasePpo(&pgstSource);\n        }\n    }\n\n    //\n    // Get the movie roll-call\n    //\n    Assert(pcfl == pmvie->_pcrfAutoSave->Pcfl(), \"pcfl isn't right\");\n    if (!FReadRollCall(pmvie->_pcrfAutoSave, cno, &pmvie->_pgstmactr, &pmvie->_aridLim))\n    {\n        pmvie->_pgstmactr = pvNil;\n        goto LFail;\n    }\n\n    //\n    // Get all the content tags\n    //\n    ptagl = pmvie->_PtaglFetch();\n    if (ptagl == pvNil)\n    {\n        goto LFail;\n    }\n\n    //\n    // Now bring all the tags into cache\n    //\n    if (!ptagl->FCacheTags())\n    {\n        ReleasePpo(&ptagl);\n        goto LFail;\n    }\n\n    ReleasePpo(&ptagl);\n\n    //\n    // Set the movie title\n    //\n    pmvie->_SetTitle(pfni);\n\n    //\n    // Count the number of scenes in the movie\n    //\n    for (chid = 0; pcfl->FGetKidChidCtg(kctgMvie, cno, chid, kctgScen, &kid); chid++, pmvie->_cscen++)\n    {\n    }\n\n    fSuccess = fTrue;\n\nLFail:\n    ReleasePpo(&pcfl);\n    if (!fSuccess)\n        ReleasePpo(&pmvie);\n    if (fBeganLongOp)\n        vpappb->EndLongOp();\n\n    return (pmvie);\n}\n\n/******************************************************************************\n    FReadRollCall\n        Reads the roll call off file for a given movie.  Will swapbytes the\n        extra data in the GST if necessary, and will report back on the\n        highest arid found.\n\n    Arguments:\n        PCFL pcfl       -- the file the movie is on\n        PCRF pcrf       -- the autosave CRF for the movie's ACTR tags\n        CNO cno         -- the cno of the movie\n        PGST *ppgst     -- the PGST to fill in\n        long *paridLim  -- the max arid to update\n\n    Returns: fTrue if there were no failures, fFalse otherwise\n\n************************************************************ PETED ***********/\nbool MVIE::FReadRollCall(PCRF pcrf, CNO cno, PGST *ppgst, long *paridLim)\n{\n    AssertPo(pcrf, 0);\n    AssertVarMem(ppgst);\n    Assert(*ppgst == pvNil, \"Overwriting existing GST\");\n    AssertNilOrVarMem(paridLim);\n\n    short bo;\n    long imactr, imactrMac;\n    PCFL pcfl = pcrf->Pcfl();\n    KID kid;\n    BLCK blck;\n    MACTR mactr;\n\n    if (!pcfl->FGetKidChidCtg(kctgMvie, cno, 0, kctgGst, &kid) || !pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n    {\n        PushErc(ercSocBadFile);\n        goto LFail;\n    }\n\n    *ppgst = GST::PgstRead(&blck, &bo);\n    if (*ppgst == pvNil)\n        goto LFail;\n\n    imactrMac = (*ppgst)->IvMac();\n    for (imactr = 0; imactr < imactrMac; imactr++)\n    {\n        (*ppgst)->GetExtra(imactr, &mactr);\n        if (bo == kboOther)\n            SwapBytesBom(&mactr, kbomMactr);\n\n        if (paridLim != pvNil && mactr.arid >= *paridLim)\n            *paridLim = mactr.arid + 1;\n\n        // Open the tags, since they might be TDTs\n        AssertDo(vptagm->FOpenTag(&mactr.tagTmpl, pcrf), \"Should never fail when not copying the tag\");\n\n        (*ppgst)->PutExtra(imactr, &mactr);\n    }\n\n    return fTrue;\nLFail:\n    TrashVar(ppgst);\n    return fFalse;\n}\n\n/******************************************************************************\n    Flush\n        Ensures that the data has been written to disk.\n\n************************************************************ PETED ***********/\nvoid MVIE::Flush(void)\n{\n    if (_fFniSaveValid)\n    {\n        AssertPo(_pfilSave, 0);\n        _pfilSave->Flush();\n    }\n}\n\n/****************************************************\n *\n * Nuke unused sounds from the file\n * Msnd chunks exist as children of the movie chunk.\n * They are also children of any scene which uses\n * them.\n * Note: The ref count does not reflect how many\n * scene or actor events reference the sound.\n *\n * Parms:\n *    bool fPurgeAll -- if fFalse, only purge invalid sounds\n *\n ****************************************************/\nvoid MVIE::_DoSndGarbageCollection(bool fPurgeAll)\n{\n    AssertThis(0);\n\n    // Before releasing, get rid of all msnd chunks with\n    // cactref == 1 (the refcnt from being a child of the\n    // movie chunk)\n\n    long ikid;\n\n    if (pvNil == _pcrfAutoSave)\n        return;\n\n    PCFL pcfl = _pcrfAutoSave->Pcfl();\n    if (pvNil == pcfl)\n        return;\n\n    /* Go backwards, since we might delete some */\n    ikid = pcfl->Ckid(kctgMvie, _cno);\n    while (ikid--)\n    {\n        KID kid;\n        KID kidT;\n\n        if (!pcfl->FGetKid(kctgMvie, _cno, ikid, &kid))\n        {\n            Bug(\"CFL returned bogus Ckid()\");\n            break;\n        }\n\n        if (kid.cki.ctg != kctgMsnd)\n            continue;\n\n        if (pcfl->CckiRef(kctgMsnd, kid.cki.cno) > 1)\n            continue;\n\n        /* Always purge MSNDs with no actual sound attached */\n        if (fPurgeAll || !pcfl->FGetKidChid(kctgMsnd, kid.cki.cno, kchidSnd, &kidT))\n        {\n            pcfl->DeleteChild(kctgMvie, _cno, kctgMsnd, kid.cki.cno, kid.chid);\n        }\n    }\n\n    return;\n}\n\n/****************************************************\n *\n * Destructor for movies.\n *\n ****************************************************/\nMVIE::~MVIE(void)\n{\n    AssertBaseThis(0);\n\n    long imactr;\n    MACTR mactr;\n\n    ReleasePpo(&_pcrfAutoSave);\n    ReleasePpo(&_pfilSave);\n\n    if (FPlaying())\n    {\n        AssertPo(Pmcc(), 0);\n        Pmcc()->EnableAccel();\n        Pmcc()->PlayStopped();\n        vpsndm->StopAll();\n\n        // if we were fading, then restore sound volume\n        if (_vlmOrg)\n        {\n            vpsndm->SetVlm(_vlmOrg);\n            _vlmOrg = 0;\n        }\n    }\n\n    if (Pmcc() != pvNil)\n    {\n        Pmcc()->UpdateRollCall();\n    }\n\n    if (Pscen() != pvNil)\n    {\n\n        //\n        // Release open scene.\n        //\n        SCEN::Close(&_pscenOpen);\n    }\n\n    //\n    // Release the roll call\n    //\n    if (_pgstmactr != pvNil)\n    {\n        for (imactr = 0; imactr < _pgstmactr->IvMac(); imactr++)\n        {\n            _pgstmactr->GetExtra(imactr, &mactr);\n            vptagm->CloseTag(&mactr.tagTmpl);\n        }\n        ReleasePpo(&_pgstmactr);\n    }\n\n    //\n    // Release the call back class\n    //\n    ReleasePpo(&_pmcc);\n\n    //\n    // Release the brender world\n    //\n    ReleasePpo(&_pbwld);\n\n    //\n    // Release the sound queue\n    //\n    ReleasePpo(&_pmsq);\n\n    ReleasePpo(&_pglclrThumbPalette);\n\n    return;\n}\n\n#ifdef DEBUG\n\n/****************************************************\n * Mark memory used by the MVIE\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid MVIE::MarkMem(void)\n{\n    AssertThis(0);\n\n    MVIE_PAR::MarkMem();\n\n    MarkMemObj(_pcrfAutoSave);\n\n    MarkMemObj(_pfilSave);\n\n    MarkMemObj(_pgstmactr);\n\n    MarkMemObj(Pscen());\n\n    MarkMemObj(Pbwld());\n\n    MarkMemObj(_pmcc);\n\n    MarkMemObj(_pmsq);\n\n    MarkMemObj(_pglclrThumbPalette);\n}\n\n/***************************************************************************\n *\n * Assert the validity of the MVIE.\n *\n * Parameters:\n *\tgrf - Bit field of options\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVIE::AssertValid(ulong grf)\n{\n    MVIE_PAR::AssertValid(fobjAllocated);\n\n    AssertNilOrPo(_pcrfAutoSave, 0);\n    AssertPo(_pgstmactr, 0);\n    AssertNilOrPo(Pbwld(), 0);\n    AssertPo(&_clok, 0);\n    AssertPo(_pmcc, 0);\n}\n\n#endif // DEBUG\n\n/***************************************************************************\n *\n * Returns a list of all tags being used by this MVIE\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  A TAGL (list of tags that the movie uses)\n *\n **************************************************************************/\nPTAGL MVIE::_PtaglFetch(void)\n{\n    AssertThis(0);\n    Assert(_pcrfAutoSave != pvNil, \"need pcrfAutosave\");\n\n    PTAGL ptagl;\n    KID kid;\n    CHID chid;\n\n    ptagl = TAGL::PtaglNew();\n    if (pvNil == ptagl)\n        return pvNil;\n\n    //\n    // Add each scene's tags\n    //\n    for (chid = 0; _pcrfAutoSave->Pcfl()->FGetKidChidCtg(kctgMvie, _cno, chid, kctgScen, &kid); chid++)\n    {\n        if (!SCEN::FAddTagsToTagl(_pcrfAutoSave->Pcfl(), kid.cki.cno, ptagl))\n        {\n            ReleasePpo(&ptagl);\n            return pvNil;\n        }\n    }\n\n    return ptagl;\n}\n\n/****************************************************\n *\n * Fetches the iarid'th actor in the movie.\n *\n * Parameters:\n *   iarid - The arid index to fetch.\n *   parid - Pointer to storage for the found arid.\n *\t pstn  - Pointer to the actors name.\n *\t pcactRef - Number of scenes the actor is in.\n *\t *ptagTmpl - Template tag\n * Returns:\n *\t fTrue if successful, else fFalse if out of range.\n *\n ****************************************************/\nbool MVIE::FGetArid(long iarid, long *parid, PSTN pstn, long *pcactRef, PTAG ptagTmpl)\n{\n    AssertThis(0);\n    AssertPvCb(parid, size(long));\n    AssertVarMem(pcactRef);\n\n    MACTR mactr;\n\n    if (iarid < 0 || iarid >= _pgstmactr->IvMac())\n    {\n        return fFalse;\n    }\n\n    _pgstmactr->GetStn(iarid, pstn);\n    _pgstmactr->GetExtra(iarid, &mactr);\n    *parid = mactr.arid;\n    *pcactRef = mactr.cactRef;\n    if (pvNil != ptagTmpl)\n        *ptagTmpl = mactr.tagTmpl;\n    return fTrue;\n}\n\n/****************************************************\n *\n * User chose arid in the roll call.  If actor\n * exists in this scene and is onstage, select it.\n * Else if actor is offstage, bring it onstage.\n * If actor is not in this scene, create and add it.\n *\n * Parameters:\n *\tarid - The arid to search for, or create.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool MVIE::FChooseArid(long arid)\n{\n    AssertThis(0);\n    AssertPo(Pscen(), 0);\n\n    PACTR pactr, pactrDup;\n    MACTR mactr;\n    long imactr;\n    PMVU pmvu;\n\n    pmvu = (PMVU)PddgGet(0);\n    if (pmvu == pvNil)\n    {\n        return (fFalse);\n    }\n    AssertPo(pmvu, 0);\n\n    pactr = Pscen()->PactrFromArid(arid);\n\n    if (pvNil != pactr)\n    {\n\n        if (!pactr->FIsInView())\n        {\n\n            if (!pactr->FDup(&pactrDup, fTrue))\n            {\n                return (fFalse);\n            }\n            AssertPo(pactrDup, 0);\n\n            if (!pactr->FAddOnStageCore())\n            {\n                ReleasePpo(&pactrDup);\n                return fFalse;\n            }\n            Pscen()->SelectActr(pactr);\n            AssertDo(FAddToRollCall(pactr, pvNil), \"Should never fail\");\n            pmvu->StartPlaceActor();\n            pmvu->SetActrUndo(pactrDup);\n        }\n\n        Pscen()->SelectActr(pactr);\n        InvalViews();\n        return (fTrue);\n    }\n    else\n    {\n\n        //\n        // Search roll call for actor, and create\n        // a new actor for it.\n        //\n        for (imactr = 0; imactr < _pgstmactr->IvMac(); imactr++)\n        {\n            _pgstmactr->GetExtra(imactr, &mactr);\n            if (mactr.arid == arid)\n            {\n                pactr = ACTR::PactrNew(&(mactr.tagTmpl));\n\n                if (pactr == pvNil)\n                {\n                    return (fFalse);\n                }\n\n                AssertPo(pactr, 0);\n\n                pactr->SetArid(arid);\n\n                if (!Pscen()->FAddActr(pactr))\n                {\n                    ReleasePpo(&pactr);\n                    return (fFalse);\n                }\n\n                pmvu->StartPlaceActor();\n                ReleasePpo(&pactr);\n                return (fTrue);\n            }\n        }\n    }\n\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Return the arid of the selected actor.\n *\n * Parameters:\n *   None.\n *\n * Returns:\n *   Arid of the selected actor, else aridNil.\n *\n ****************************************************/\nlong MVIE::AridSelected(void)\n{\n    AssertThis(0);\n\n    if ((pvNil != Pscen()) && (pvNil != Pscen()->PactrSelected()))\n    {\n        return Pscen()->PactrSelected()->Arid();\n    }\n    else\n    {\n        return aridNil;\n    }\n}\n\n/****************************************************\n *\n * Fetches the name of the actor with arid.\n *\n * Parameters:\n *   arid - The arid to fetch.\n *   pstn - Pointer to storage for the found name.\n *\n * Returns:\n *\t fTrue if successful, else fFalse if failure.\n *\n ****************************************************/\nbool MVIE::FGetName(long arid, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    MACTR mactr;\n    long imactr;\n\n    for (imactr = 0; imactr < _pgstmactr->IvMac(); imactr++)\n    {\n        _pgstmactr->GetExtra(imactr, &mactr);\n        if (mactr.arid == arid)\n        {\n            _pgstmactr->GetStn(imactr, pstn);\n            return (fTrue);\n        }\n    }\n\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Sets the name of the actor with arid.\n *\n * Parameters:\n *   arid - The arid to set.\n *   pstn - Pointer to the name.\n *\n * Returns:\n *\t fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool MVIE::FNameActr(long arid, PSTN pstn)\n{\n    AssertThis(0);\n    AssertIn(arid, 0, 500);\n    AssertPo(pstn, 0);\n\n    MACTR mactr;\n    long imactr;\n\n    for (imactr = 0; imactr < _pgstmactr->IvMac(); imactr++)\n    {\n\n        _pgstmactr->GetExtra(imactr, &mactr);\n        if (mactr.arid == arid)\n        {\n\n            if (_pgstmactr->FPutStn(imactr, pstn))\n            {\n\n                _pmcc->UpdateRollCall();\n                return (fTrue);\n            }\n\n            return (fFalse);\n        }\n    }\n\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Identifies whether the mactr is in prop browser\n *\n * Parameters:\n *   imactr - index in _pgstmactr\n *\n * Returns:\n *\t bool\n *\n ****************************************************/\nbool MVIE::FIsPropBrwsIarid(long iarid)\n{\n    AssertThis(0);\n    AssertIn(iarid, 0, _pgstmactr->IvMac());\n\n    MACTR mactr;\n    _pgstmactr->GetExtra(iarid, &mactr);\n    return FPure(mactr.grfbrws & fbrwsProp);\n}\n\n/****************************************************\n *\n * Identifies whether the mactr is in 3dtext object\n *\n * Parameters:\n *   imactr - index in _pgstmactr\n *\n * Returns:\n *\t bool\n *\n ****************************************************/\nbool MVIE::FIsIaridTdt(long iarid)\n{\n    AssertThis(0);\n    AssertIn(iarid, 0, _pgstmactr->IvMac());\n\n    MACTR mactr;\n    _pgstmactr->GetExtra(iarid, &mactr);\n    return FPure(mactr.grfbrws & fbrwsTdt);\n}\n\n/****************************************************\n *\n * Sets the tag of the actor with arid.\n *\n * Parameters:\n *   arid - The arid to set.\n *   ptag - Pointer to the TMPL tag.\n *\n * Returns:\n *\t none\n *\n ****************************************************/\nvoid MVIE::ChangeActrTag(long arid, PTAG ptag)\n{\n    AssertThis(0);\n    AssertIn(arid, 0, 500);\n    AssertVarMem(ptag);\n\n    MACTR mactr;\n    long imactr;\n\n    for (imactr = 0; imactr < _pgstmactr->IvMac(); imactr++)\n    {\n\n        _pgstmactr->GetExtra(imactr, &mactr);\n        if (mactr.arid == arid)\n        {\n\n            mactr.tagTmpl = *ptag;\n            _pgstmactr->PutExtra(imactr, &mactr);\n            return;\n        }\n    }\n\n    Bug(\"no such actor\");\n}\n\n/****************************************************\n *\n * This adds an actor to the roll call, if not already there, or\n * adds a reference count if it already exists.\n *\n * Parameters:\n *   Pointer to the actor to add.\n *\n * Returns:\n *   fTrue if successful, else fFalse indicating out of resources.\n *\n ****************************************************/\nbool MVIE::FAddToRollCall(ACTR *pactr, PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pactr, 0);\n    AssertNilOrPo(pstn, 0); // can be pvNil if the actor is already in the movie.\n\n    MACTR mactr;\n    long imactr;\n\n    if (pactr->Arid() != aridNil)\n    {\n        //\n        // Search for an actor with the same arid\n        //\n        for (imactr = 0; imactr < _pgstmactr->IvMac(); imactr++)\n        {\n\n            _pgstmactr->GetExtra(imactr, &mactr);\n            if (mactr.arid == pactr->Arid())\n            {\n                TAG tagTmpl;\n                mactr.cactRef++;\n                // TDTs sometimes need to update tagTmpl\n                pactr->GetTagTmpl(&tagTmpl);\n                if (fcmpEq != TAGM::FcmpCompareTags(&mactr.tagTmpl, &tagTmpl))\n                {\n                    TAGM::CloseTag(&mactr.tagTmpl);\n                    mactr.tagTmpl = tagTmpl;\n                    // ACTR::GetTagTmpl doesn't AddRef the pcrf, so do it here:\n                    TAGM::DupTag(&tagTmpl);\n                }\n                _pgstmactr->PutExtra(imactr, &mactr);\n                Pmcc()->UpdateRollCall();\n                return (fTrue);\n            }\n        }\n    }\n    else\n    {\n        pactr->SetArid(_aridLim++);\n    }\n\n    AssertPo(pstn, 0);\n\n    //\n    // This is a new actor, add it to the roll call\n    //\n    mactr.arid = pactr->Arid();\n    mactr.grfbrws = fbrwsNil;\n    if (pactr->FIsPropBrws())\n    {\n        mactr.grfbrws |= fbrwsProp;\n        if (pactr->FIsTdt())\n        {\n            mactr.grfbrws |= fbrwsTdt;\n        }\n    }\n    mactr.cactRef = 1;\n    pactr->GetTagTmpl(&mactr.tagTmpl);\n    // Open the tag, since it might be a TDT\n    AssertDo(vptagm->FOpenTag(&mactr.tagTmpl, _pcrfAutoSave), \"Should never fail when not copying the tag\");\n    if (_pgstmactr->FAddStn(pstn, &mactr))\n    {\n        Pmcc()->UpdateRollCall();\n        return (fTrue);\n    }\n\n    return (fFalse);\n}\n\n/****************************************************\n *\n * This removes an actor from the roll call, if the reference count\n * drops to zero, else it decrements the reference count.\n *\n * Parameters:\n *   Pointer to the actor to remove.\n *\n * Returns:\n *   None.\n *\n ****************************************************/\nvoid MVIE::RemFromRollCall(ACTR *pactr, bool fDelIfOnlyRef)\n{\n    AssertThis(0);\n    AssertPo(pactr, 0);\n\n    MACTR mactr;\n    long imactr;\n\n    //\n    // Search for the actor in the roll call\n    //\n    for (imactr = 0; imactr < _pgstmactr->IvMac(); imactr++)\n    {\n        _pgstmactr->GetExtra(imactr, &mactr);\n        if (mactr.arid == pactr->Arid())\n        {\n            mactr.cactRef--;\n            Assert(mactr.cactRef >= 0, \"Too many removes\");\n            if (fDelIfOnlyRef && mactr.cactRef == 0)\n            {\n                vptagm->CloseTag(&mactr.tagTmpl);\n                _pgstmactr->Delete(imactr);\n            }\n            else\n            {\n                _pgstmactr->PutExtra(imactr, &mactr);\n            }\n\n            if (mactr.cactRef == 0)\n            {\n                Pmcc()->UpdateRollCall();\n            }\n            return;\n        }\n    }\n\n    Bug(\"Tried to remove an invalid actor\");\n}\n\n/****************************************************\n *\n * Changes the scene in the movie currently being referenced.\n *\n * Parameters:\n *\tiscen - Scene number to go to.\n *\n * Returns:\n *\n *  fTrue, if successful, else fFalse, indicating the\n *  same scene is still open (if possible).\n *\n ****************************************************/\nbool MVIE::FSwitchScen(long iscen)\n{\n    AssertThis(0);\n    Assert(iscen == ivNil || FIn(iscen, 0, Cscen()), \"iscen out of range\");\n    Assert((iscen == ivNil) || (_pcrfAutoSave != pvNil), \"Invalid save file\");\n\n    PSCEN pscen;\n    KID kid;\n    long iscenOld;\n    bool fRet = fTrue;\n\n    if (iscen == _iscen)\n    {\n        return (fTrue);\n    }\n\n    //\n    // Close the current scene.\n    //\n    iscenOld = _iscen;\n    if (!_FCloseCurrentScene())\n    {\n        return (fFalse);\n    }\n\n    //\n    // Stop all looping non-midi sounds\n    //\n    vpsndm->StopAll(sqnNil, sclLoopWav);\n\n    //\n    // If memory is low, release unreferenced content BACOs to reduce thrashing.\n    // Note that APP::MemStat() is unavailable from the movie engine\n    //\n#ifdef WIN\n    MEMORYSTATUS ms;\n    ms.dwLength = size(MEMORYSTATUS);\n    GlobalMemoryStatus(&ms);\n    if (ms.dwMemoryLoad == 100)\n    {\n        // No physical RAM to spare, so free some stuff\n        vptagm->ClearCache(sidNil, ftagmMemory);\n    }\n\n#endif // WIN\n\n    if (iscen == ivNil)\n    {\n        Assert(_pscenOpen == pvNil, \"_FCloseCurrentScene didn't clear this\");\n        Assert(_iscen == ivNil, \"_FCloseCurrentScene didn't clear this\");\n        return (fTrue);\n    }\n\nLRetry:\n\n    //\n    // Get info for next scene and read it in.\n    //\n    AssertDo(_pcrfAutoSave->Pcfl()->FGetKidChidCtg(kctgMvie, _cno, iscen, kctgScen, &kid), \"Should never fail\");\n\n    pscen = SCEN::PscenRead(this, _pcrfAutoSave, kid.cki.cno);\n\n    if ((pscen == pvNil) || !pscen->FPlayStartEvents())\n    {\n        _pscenOpen = pvNil;\n        _iscen = ivNil;\n\n        if (pscen != pvNil)\n        {\n            SCEN::Close(&pscen);\n        }\n\n        if (iscenOld != ivNil)\n        {\n            iscen = iscenOld;\n            iscenOld = ivNil;\n            fRet = fFalse;\n            goto LRetry;\n        }\n\n        _pmcc->SceneChange();\n        return (fFalse);\n    }\n\n    _pscenOpen = pscen;\n    _pmcc->SceneChange();\n    _iscen = iscen;\n\n    if (!pscen->FGotoFrm(pscen->NfrmFirst()))\n    {\n\n        _pscenOpen = pvNil;\n        _iscen = ivNil;\n        SCEN::Close(&pscen);\n\n        if (iscenOld != ivNil)\n        {\n            iscen = iscenOld;\n            iscenOld = ivNil;\n            fRet = fFalse;\n            goto LRetry;\n        }\n\n        return (fFalse);\n    }\n\n    pscen->UpdateSndFrame();\n    InvalViewsAndScb();\n\n    return (fRet);\n}\n\n/****************************************************\n *\n * Creates a new scene and inserts it as scene number iscen.\n *\n * Parameters:\n *\tiscen - Scene number to insert the new scene as.\n *\n * Returns:\n *  fTrue, if successful, else fFalse.\n *\n ****************************************************/\nbool MVIE::FNewScenInsCore(long iscen)\n{\n    AssertThis(0);\n    AssertIn(iscen, 0, Cscen() + 1);\n\n    PSCEN pscen;\n\n    //\n    // Create the new scene.\n    //\n    pscen = SCEN::PscenNew(this);\n    if (pscen == pvNil)\n    {\n        return (fFalse);\n    }\n\n    if (!FInsScenCore(iscen, pscen))\n    {\n        SCEN::Close(&pscen);\n        return (fFalse);\n    }\n\n    SCEN::Close(&pscen);\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Moves up/down all the chids by one.\n *\n * Parameters:\n *\tchid - chid number to start at.\n *\tfDown- fTrue if move down, else move up.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid MVIE::_MoveChids(CHID chid, bool fDown)\n{\n    AssertThis(0);\n\n    PCFL pcfl = _pcrfAutoSave->Pcfl();\n    KID kid;\n    CHID chidTmp;\n\n    if (fDown)\n    {\n        //\n        // Move down chids of all old scenes (increase by one)\n        //\n        for (chidTmp = _cscen; chidTmp > chid;)\n        {\n            chidTmp--;\n            AssertDo(pcfl->FGetKidChidCtg(kctgMvie, _cno, chidTmp, kctgScen, &kid), \"Should never fail\");\n\n            pcfl->ChangeChid(kctgMvie, _cno, kctgScen, kid.cki.cno, chidTmp, chidTmp + 1);\n        }\n    }\n    else\n    {\n        //\n        // Move up chids of all old scenes (decrease by one)\n        //\n        for (chidTmp = chid; chidTmp < (CHID)_cscen; chidTmp++)\n        {\n            AssertDo(pcfl->FGetKidChidCtg(kctgMvie, _cno, chidTmp + 1, kctgScen, &kid), \"Should never fail\");\n\n            pcfl->ChangeChid(kctgMvie, _cno, kctgScen, kid.cki.cno, chidTmp + 1, chidTmp);\n        }\n    }\n}\n\n/******************************************************************************\n    _FIsChild\n        Enumerates the children of the MVIE chunk and reports whether the\n        given (ctg, cno) chunk is an actual child of the MVIE chunk.\n\n    Arguments:\n        PCFL pcfl  --  the file on which to check\n        CTG ctg    --  these are self-explanatory\n        CNO cno\n\n    Returns:  fTrue if the (ctg, cno) chunk is an immediate child of the MVIE\n\n************************************************************ PETED ***********/\nbool MVIE::_FIsChild(PCFL pcfl, CTG ctg, CNO cno)\n{\n    bool fIsChild = fFalse;\n    long ckid, ikid;\n    KID kid;\n\n    ckid = pcfl->Ckid(kctgMvie, _cno);\n    for (ikid = 0; ikid < ckid; ikid++)\n    {\n        if (!pcfl->FGetKid(kctgMvie, _cno, ikid, &kid))\n        {\n            Bug(\"CFL returned bogus ckid\");\n            break;\n        }\n\n        if (kid.cki.ctg == ctg && kid.cki.cno == cno)\n        {\n            fIsChild = fTrue;\n            break;\n        }\n    }\n\n    return fIsChild;\n}\n\n/****************************************************\n *\n * Adopt the scene user sounds as children of the movie.\n * Msnds are children of the movie unless they are\n * unused and deleted when the movie closes.\n *\n * Parameters\n * pcfl\n * cnoScen\n *\n *\tReturns:\n * success or failure\n *\n ****************************************************/\nbool MVIE::_FAdoptMsndInMvie(PCFL pcfl, CNO cnoScen)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n\n    CHID chidMvie;\n    long ckid, ikid;\n    KID kid;\n\n    ckid = pcfl->Ckid(kctgScen, cnoScen);\n    for (ikid = 0; ikid < ckid; ikid++)\n    {\n        if (!pcfl->FGetKid(kctgScen, cnoScen, ikid, &kid))\n        {\n            Bug(\"CFL returned bogus ckid\");\n            break;\n        }\n\n        if (kid.cki.ctg == kctgMsnd)\n        {\n            if (!_FIsChild(pcfl, kctgMsnd, kid.cki.cno))\n            {\n                // Adopt as a child of the movie\n                chidMvie = _ChidMvieNewSnd();\n                if (!pcfl->FAdoptChild(kctgMvie, _cno, kctgMsnd, kid.cki.cno, chidMvie))\n                {\n                    goto LFail;\n                }\n            }\n        }\n    }\n\n    return fTrue;\nLFail:\n    return fFalse;\n}\n\n/****************************************************\n *\n * Resolves a sound tag & chid to be a current tag\n *\n * Note: Msnds are children of the current scene.\n * Due to sound import, the cno can change.\n *\n * Parameters\n * ptag (with *ptag.cno possibly out of date)\n * chid (valid only for user snd)\n * cnoScen (if cnoNil, use current scene's cno\n *\n *\tReturns:\n * Updated *ptag\n *\n ****************************************************/\nbool MVIE::FResolveSndTag(PTAG ptag, CHID chid, CNO cnoScen, PCRF pcrf)\n{\n    AssertThis(0);\n    AssertVarMem(ptag);\n    AssertNilOrVarMem(pcrf);\n\n    KID kidScen;\n    KID kid;\n    TAG tagNew = *ptag;\n    PCFL pcfl;\n\n    if (pvNil == pcrf)\n        pcrf = _pcrfAutoSave;\n    pcfl = pcrf->Pcfl();\n\n    if (ptag->sid != ksidUseCrf)\n        return fTrue;\n    if (cnoNil == cnoScen)\n    {\n        if (!pcfl->FGetKidChidCtg(kctgMvie, _cno, _iscen, kctgScen, &kidScen))\n            return fFalse;\n        cnoScen = kidScen.cki.cno;\n    }\n\n    if (!pcfl->FGetKidChidCtg(kctgScen, cnoScen, chid, kctgMsnd, &kid))\n        return fFalse;\n\n    if (ptag->cno != kid.cki.cno)\n    {\n        // As the pcrf has not changed, it is not essential\n        // to close & open the respective tags.\n        tagNew.cno = kid.cki.cno;\n        if (!TAGM::FOpenTag(&tagNew, pcrf))\n            return fFalse;\n        TAGM::CloseTag(ptag);\n        *ptag = tagNew;\n    }\n    return fTrue;\n}\n\n/****************************************************\n *\n * Finds the chid (child of the current scene) for a\n * given sound tag.  Adopt it if not found.\n * Meaningful for user sounds only\n *\n * Parameters\n * cno\n *\n *\tReturns:\n * Updated *pchid\n *\n ****************************************************/\nbool MVIE::FChidFromUserSndCno(CNO cno, CHID *pchid)\n{\n    AssertThis(0);\n    AssertVarMem(pchid);\n\n    KID kidScen;\n    KID kid;\n    long ckid;\n    long ikid;\n    PCFL pcfl = _pcrfAutoSave->Pcfl();\n\n    if (!pcfl->FGetKidChidCtg(kctgMvie, _cno, _iscen, kctgScen, &kidScen))\n        return fFalse;\n    ckid = pcfl->Ckid(kctgScen, kidScen.cki.cno);\n    for (ikid = 0; ikid < ckid; ikid++)\n    {\n        if (!pcfl->FGetKid(kctgScen, kidScen.cki.cno, ikid, &kid))\n            return fFalse;\n        if (kid.cki.ctg != kctgMsnd)\n            continue;\n        if (kid.cki.cno != cno)\n            continue;\n        *pchid = kid.chid;\n        return fTrue;\n    }\n\n    *pchid = _ChidScenNewSnd();\n    if (!pcfl->FAdoptChild(kctgScen, kidScen.cki.cno, kctgMsnd, cno, *pchid))\n        return fFalse;\n    return fTrue;\n}\n\n/****************************************************\n *\n * Copies a sound file to the movie. (Importing snd)\n * Sounds are written as MSND children of the current\n * scene chunk\n *\n * Parameters:\n *\tpfilSrc, sty\n *\n * Returns:\n *  *pcno = cno of chunk written\n *  fFalse if there was a failure, else fTrue.\n *\n ****************************************************/\nbool MVIE::FCopySndFileToMvie(PFIL pfilSrc, long sty, CNO *pcno, PSTN pstn)\n{\n    AssertThis(0);\n    AssertVarMem(pfilSrc);\n    AssertVarMem(pcno);\n    AssertNilOrPo(pstn, 0);\n    Assert(_pcrfAutoSave != pvNil, \"Bad working file.\");\n\n    PCFL pcfl;\n    FNI fniSrc;\n    CHID chid;\n    KID kidScen;\n\n    pcfl = _pcrfAutoSave->Pcfl();\n\n    //\n    // Ensure we will be writing to the temp file\n    //\n    if (!_FUseTempFile())\n    {\n        return fFalse;\n    }\n\n    pfilSrc->GetFni(&fniSrc);\n    if (fniSrc.Ftg() == kftgMidi)\n    {\n        if (!MSND::FCopyMidi(pfilSrc, pcfl, pcno, pstn))\n            goto LFail;\n    }\n    else\n    {\n        if (!MSND::FCopyWave(pfilSrc, pcfl, sty, pcno, pstn))\n            goto LFail;\n    }\n\n    AssertDo(pcfl->FGetKidChidCtg(kctgMvie, _cno, _iscen, kctgScen, &kidScen), \"Scene chunk doesn't exist!\");\n\n    chid = _ChidMvieNewSnd();\n    if (!pcfl->FAdoptChild(kctgMvie, _cno, kctgMsnd, *pcno, chid))\n    {\n        pcfl->Delete(kctgMsnd, *pcno);\n        return fFalse;\n    }\n    if (!pcfl->FSave(kctgSoc))\n        return fFalse;\n\n    _fGCSndsOnClose = fTrue;\n\n    return fTrue;\nLFail:\n    if (!vpers->FIn(ercSocBadSoundFile))\n        PushErc(ercSocCantCopyMsnd);\n    return fFalse;\n}\n\n/****************************************************\n *\n * Copy Msnd chunk from specified movie *pcfl to\n * current movie\n * Parameters:\n *\tpcfl : Source file\n *\n * Returns:\n *  fFalse if there was a failure, else fTrue.\n *\t*pcnoDest\n *\n ****************************************************/\nbool MVIE::FCopyMsndFromPcfl(PCFL pcflSrc, CNO cnoSrc, CNO *pcnoDest)\n{\n    AssertBaseThis(0);\n    AssertPo(pcflSrc, 0);\n    AssertVarMem(pcnoDest);\n\n    PCFL pcflDest;\n    KID kidScen;\n    CHID chid;\n    FNI fni;\n\n    if (!FEnsureAutosave())\n        return fFalse;\n    pcflDest = _pcrfAutoSave->Pcfl();\n    pcflSrc->GetFni(&fni);\n\n    // Copy the msnd chunk from one movie to another\n    // Wave or Midi\n    if (!pcflSrc->FCopy(kctgMsnd, cnoSrc, pcflDest, pcnoDest))\n        return fFalse;\n\n    AssertDo(pcflDest->FGetKidChidCtg(kctgMvie, _cno, _iscen, kctgScen, &kidScen), \"Scene chunk doesn't exist!\");\n\n    chid = _ChidMvieNewSnd(); // Find a unique chid for the new sound\n    if (!pcflDest->FAdoptChild(kctgMvie, _cno, kctgMsnd, *pcnoDest, chid))\n    {\n        pcflDest->Delete(kctgMsnd, *pcnoDest);\n        return fFalse;\n    }\n    if (!pcflDest->FSave(kctgSoc))\n        return fFalse;\n    return fTrue;\n}\n\n/****************************************************\n *\n * Choose Scene Chid for New Sound\n * Note: _pcrfAutoSave is expected to be current\n * Parameters:\n *\tnone\n *\n * Returns:\n *  unique chid for new msnd chunk child of scene\n *\n ****************************************************/\nCHID MVIE::_ChidScenNewSnd(void)\n{\n    AssertBaseThis(0);\n    PCFL pcfl = _pcrfAutoSave->Pcfl();\n    long ckid;\n    long chid;\n    KID kidScen;\n    KID kid;\n\n    if (!pcfl->FGetKidChidCtg(kctgMvie, _cno, _iscen, kctgScen, &kidScen))\n        return fFalse;\n\n    ckid = pcfl->Ckid(kctgScen, kidScen.cki.cno);\n    for (chid = 0; chid < ckid; chid++)\n    {\n        if (!pcfl->FGetKidChidCtg(kctgScen, kidScen.cki.cno, chid, kctgMsnd, &kid))\n            return (CHID)chid;\n    }\n    return (CHID)chid;\n}\n\n/****************************************************\n *\n * Choose Mvie Chid for New Sound\n * Note: _pcrfAutoSave is expected to be current\n * Parameters:\n *\tnone\n *\n * Returns:\n *  unique chid for new msnd chunk child of scene\n *\n ****************************************************/\nCHID MVIE::_ChidMvieNewSnd(void)\n{\n    AssertBaseThis(0);\n    PCFL pcfl = _pcrfAutoSave->Pcfl();\n    long ckid;\n    long chid;\n    KID kid;\n\n    ckid = pcfl->Ckid(kctgMvie, _cno);\n    for (chid = 0; chid < ckid; chid++)\n    {\n        if (!pcfl->FGetKidChidCtg(kctgMvie, _cno, chid, kctgMsnd, &kid))\n            return (CHID)chid;\n    }\n    return (CHID)chid;\n}\n\n/****************************************************\n *\n * Verify the version number of a file\n *\n * Parameters:\n *\tpfni\n *\t*pcno == cnoNil if using the first chunk in the file\n *\n * Returns:\n *  fFalse if there was a failure, else fTrue.\n *  *pcno updated\n *\n ****************************************************/\nbool MVIE::FVerifyVersion(PCFL pcfl, CNO *pcno)\n{\n    AssertBaseThis(0); // MVIE hasn't been loaded yet\n    AssertPo(pcfl, 0);\n\n    KID kid;\n    CNO cnoMvie;\n    MFP mfp;\n    BLCK blck;\n\n    // Get the cno of the first kid of the movie\n    if (pvNil == pcno || cnoNil == *pcno)\n    {\n        if (!pcfl->FGetCkiCtg(kctgMvie, 0, &(kid.cki)))\n        {\n            PushErc(ercSocBadFile);\n            return fFalse;\n        }\n        cnoMvie = kid.cki.cno;\n        if (pvNil != pcno)\n            *pcno = cnoMvie;\n    }\n\n    // Get version number of the file\n    if (!pcfl->FFind(kctgMvie, cnoMvie, &blck) || !blck.FUnpackData() || (blck.Cb() != size(MFP)) ||\n        !blck.FReadRgb(&mfp, size(MFP), 0))\n    {\n        PushErc(ercSocBadFile);\n        return fFalse;\n    }\n\n    if (mfp.bo == kboOther)\n    {\n        SwapBytesBom(&mfp, kbomMfp);\n    }\n\n    // Check the version numbers\n    if (!mfp.dver.FReadable(kcvnCur, kcvnMin))\n    {\n        PushErc(ercSocBadVersion);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/****************************************************\n *\n * Removes a scene from the movie.\n *\n * Parameters:\n *\tiscen - Scene number to insert the new scene as.\n *\n * Returns:\n *  fFalse if there was a failure, else fTrue.\n *\n ****************************************************/\nbool MVIE::FRemScenCore(long iscen)\n{\n    AssertThis(0);\n    AssertIn(iscen, 0, Cscen());\n    Assert(_pcrfAutoSave != pvNil, \"Bad working file.\");\n\n    KID kid;\n    PCFL pcfl;\n    PSCEN pscen;\n    long iscenOld;\n\n    pcfl = _pcrfAutoSave->Pcfl();\n\n    //\n    // Ensure we are using the temp file\n    //\n    if (!_FUseTempFile())\n    {\n        return (fFalse);\n    }\n\n    //\n    // Close this scene if it is open and different.\n    //\n    iscenOld = _iscen;\n    if (_iscen != iscen)\n    {\n\n        //\n        // Get the scen to remove.\n        //\n        if (!FSwitchScen(iscen))\n        {\n            FSwitchScen(iscenOld);\n            return (fFalse);\n        }\n    }\n\n    //\n    // Keep the scene in memory for a second.\n    //\n    pscen = Pscen();\n    pscen->AddRef();\n\n    //\n    // Close the current scene\n    //\n    SCEN::Close(&_pscenOpen);\n    _iscen = ivNil;\n\n    //\n    // Remove its actors from the roll call\n    //\n    pscen->RemActrsFromRollCall();\n    ReleasePpo(&pscen);\n\n    //\n    // Remove the scene chunk.\n    //\n    AssertDo(pcfl->FGetKidChidCtg(kctgMvie, _cno, iscen, kctgScen, &kid), \"Should never fail\");\n    pcfl->DeleteChild(kctgMvie, _cno, kctgScen, kid.cki.cno, iscen);\n\n    //\n    // Move up chids of all old scenes.\n    //\n    _cscen--;\n    _MoveChids((CHID)iscen, fFalse);\n\n    //\n    // Save changes, if this fails, we don't care.  It only\n    // matters when the user tries to truly save.\n    //\n    pcfl->FSave(kctgSoc);\n\n    //\n    // Switch to a different scene\n    //\n    if (Cscen() == 0)\n    {\n        return (fTrue);\n    }\n\n    if (iscen < Cscen())\n    {\n        FSwitchScen(iscen);\n    }\n    else\n    {\n        FSwitchScen(iscen - 1);\n    }\n\n    SetDirty();\n\n    if (Pscen() == pvNil)\n    {\n        PushErc(ercSocSceneSwitch);\n        return (fTrue);\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Removes a scene from the movie and creates an\n * undo object for the action.  If it was the\n * currently open scene, then the scene is not open.\n * The next scene is opened.\n *\n * Parameters:\n *\tiscen - Scene number to remove.\n *\n * Returns:\n *  fFalse if there was a failure, else fTrue.\n *\n ****************************************************/\nbool MVIE::FRemScen(long iscen)\n{\n    AssertThis(0);\n    AssertIn(iscen, 0, Cscen());\n\n    KID kid;\n    PMUNS pmuns;\n    PSCEN pscen;\n\n    if (_iscen == iscen)\n    {\n        pscen = Pscen();\n        pscen->AddRef();\n    }\n    else\n    {\n\n        AssertDo(_pcrfAutoSave->Pcfl()->FGetKidChidCtg(kctgMvie, _cno, iscen, kctgScen, &kid), \"Should never fail\");\n\n        pscen = SCEN::PscenRead(this, _pcrfAutoSave, kid.cki.cno);\n\n        if ((pscen == pvNil) || !pscen->FPlayStartEvents())\n        {\n            SCEN::Close(&pscen);\n            return (fFalse);\n        }\n\n        pscen->HideActors();\n        pscen->HideTboxes();\n    }\n\n    pmuns = MUNS::PmunsNew();\n\n    if (pmuns == pvNil)\n    {\n        ReleasePpo(&pscen);\n        return (fTrue);\n    }\n\n    pmuns->SetIscen(iscen);\n    pmuns->SetPscen(pscen);\n    pmuns->SetMunst(munstRemScen);\n\n    if (!FAddUndo(pmuns))\n    {\n        ReleasePpo(&pmuns);\n        ReleasePpo(&pscen);\n        return (fFalse);\n    }\n\n    ReleasePpo(&pmuns);\n    ReleasePpo(&pscen);\n\n    if (!FRemScenCore(iscen))\n    {\n        ClearUndo();\n        return (fFalse);\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Adds a new material to the user's document.\n *\n * Parameters:\n *\tpmtrl - Pointer to the material to add.\n *  ptag - Pointer to the tag for the file.\n *\n * Returns:\n *  fTrue if success, fFalse if couldn't add the material\n *\n ****************************************************/\nbool MVIE::FInsertMtrl(PMTRL pmtrl, PTAG ptag)\n{\n    AssertThis(0);\n    AssertPo(pmtrl, 0);\n    AssertVarMem(ptag);\n\n    PCRF pcrf;\n    PCFL pcfl;\n    CNO cno;\n\n    if (!FEnsureAutosave(&pcrf))\n    {\n        TrashVar(ptag);\n        return (fFalse);\n    }\n\n    pcfl = pcrf->Pcfl();\n    if (!pmtrl->FWrite(pcfl, kctgMtrl, &cno))\n    {\n        TrashVar(ptag);\n        return fFalse;\n    }\n\n    ptag->sid = ksidUseCrf;\n    ptag->ctg = kctgMtrl;\n    ptag->cno = cno;\n\n    if (!TAGM::FOpenTag(ptag, _pcrfAutoSave))\n    {\n        return fFalse;\n    }\n\n    return fTrue;\n}\n\n/****************************************************\n *\n * Ensure an autosave file exists to use\n *\n * Parameters:\n *\tReturn the pcrf\n *\n * Returns:\n *  fTrue if success, fFalse if couldn't add the material\n *\n ****************************************************/\nbool MVIE::FEnsureAutosave(PCRF *ppcrf)\n{\n    AssertThis(0);\n\n    if (!_FMakeCrfValid())\n    {\n        return (fFalse);\n    }\n\n    if (pvNil != ppcrf)\n        *ppcrf = _pcrfAutoSave;\n\n    //\n    // Switch to the autosave file\n    //\n    if (!_FUseTempFile())\n    {\n        return (fFalse);\n    }\n    return fTrue;\n}\n\n/****************************************************\n *\n * Adds a new 3-D Text object to the user's document.\n *\n * Parameters:\n *  pstn - TDT text\n *  tdts - the TDT shape\n *  ptagTdf - a tag to the TDT's font\n *\n * Returns:\n *  fTrue if success, fFalse if couldn't add the TDT\n *\n ****************************************************/\nbool MVIE::FInsTdt(PSTN pstn, long tdts, PTAG ptagTdf)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    Assert(pstn->Cch() > 0, \"can't insert 0-length TDT\");\n    AssertIn(tdts, 0, tdtsLim);\n    AssertVarMem(ptagTdf);\n\n    PCFL pcfl;\n    CNO cno;\n    PTDT ptdt;\n    TAG tagTdt;\n\n    ptdt = TDT::PtdtNew(pstn, tdts, ptagTdf);\n    if (pvNil == ptdt)\n        return fFalse;\n\n    //\n    // Make sure we have a file to switch to\n    //\n    if (!_FMakeCrfValid())\n    {\n        return (fFalse);\n    }\n\n    pcfl = _pcrfAutoSave->Pcfl();\n\n    //\n    // Switch to the autosave file\n    //\n    if (!_FUseTempFile())\n    {\n        return (fFalse);\n    }\n\n    if (!ptdt->FWrite(pcfl, kctgTmpl, &cno))\n    {\n        return fFalse;\n    }\n    ReleasePpo(&ptdt);\n\n    tagTdt.sid = ksidUseCrf;\n    tagTdt.ctg = kctgTmpl;\n    tagTdt.cno = cno;\n\n    if (!TAGM::FOpenTag(&tagTdt, _pcrfAutoSave))\n    {\n        return fFalse;\n    }\n\n    if (!FInsActr(&tagTdt))\n        return fFalse;\n\n    TAGM::CloseTag(&tagTdt);\n\n    return fTrue;\n}\n\n/****************************************************\n *\n * Edits the TDT attached to pactr.\n *\n * Parameters:\n *  pactr - Pointer to actor to change\n *  pstn - New TDT text\n *\ttdts - New TDT shape\n *  ptagTdf - New TDT font\n *\n * Returns:\n *  fTrue if success, fFalse if couldn't change the TDT\n *\n ****************************************************/\nbool MVIE::FChangeActrTdt(PACTR pactr, PSTN pstn, long tdts, PTAG ptagTdf)\n{\n    AssertThis(0);\n    AssertPo(pactr, 0);\n    Assert(pactr->Ptmpl()->FIsTdt(), \"actor must be a TDT\");\n    AssertPo(pstn, 0);\n    AssertIn(tdts, 0, tdtsLim);\n    AssertVarMem(ptagTdf);\n\n    long ich;\n    bool fNonSpaceFound;\n    PTDT ptdtNew;\n    TAG tagTdtNew;\n    PCFL pcfl;\n    CNO cno;\n    PACTR pactrDup;\n\n    Assert(pactr == Pscen()->PactrSelected(), 0);\n    fNonSpaceFound = fFalse;\n    for (ich = 0; ich < pstn->Cch(); ich++)\n    {\n        if (pstn->Psz()[ich] != ChLit(' '))\n        {\n            fNonSpaceFound = fTrue;\n            break;\n        }\n    }\n    if (!fNonSpaceFound) // delete the actor\n    {\n        return FRemActr();\n    }\n\n    ptdtNew = TDT::PtdtNew(pstn, tdts, ptagTdf);\n    if (pvNil == ptdtNew)\n        return fFalse;\n\n    //\n    // Make sure we have a file to switch to\n    //\n    if (!_FMakeCrfValid())\n    {\n        return (fFalse);\n    }\n\n    pcfl = _pcrfAutoSave->Pcfl();\n\n    //\n    // Switch to the autosave file\n    //\n    if (!_FUseTempFile())\n    {\n        return (fFalse);\n    }\n\n    if (!ptdtNew->FWrite(pcfl, kctgTmpl, &cno))\n    {\n        return fFalse;\n    }\n    ReleasePpo(&ptdtNew);\n\n    tagTdtNew.sid = ksidUseCrf;\n    tagTdtNew.ctg = kctgTmpl;\n    tagTdtNew.cno = cno;\n\n    if (!TAGM::FOpenTag(&tagTdtNew, _pcrfAutoSave))\n    {\n        return fFalse;\n    }\n\n    if (!pactr->FDup(&pactrDup))\n    {\n        TAGM::CloseTag(&tagTdtNew);\n        return fFalse;\n    }\n\n    if (!pactr->FChangeTagTmpl(&tagTdtNew))\n    {\n        TAGM::CloseTag(&tagTdtNew);\n        ReleasePpo(&pactrDup);\n        return fFalse;\n    }\n\n    // this sequence is a little strange to make unwinding easier:\n    // we add the actor to the roll call with aridNil to get a new\n    // entry, then remove the old entry (using pactrDup).\n    pactr->SetArid(aridNil);\n    if (!FAddToRollCall(pactr, pstn))\n    {\n        pactr->Restore(pactrDup);\n        ReleasePpo(&pactrDup);\n        TAGM::CloseTag(&tagTdtNew);\n        return fFalse;\n    }\n    RemFromRollCall(pactrDup);\n    ReleasePpo(&pactrDup);\n\n    TAGM::CloseTag(&tagTdtNew);\n    SetDirty();\n\n    return fTrue;\n}\n\n/****************************************************\n *\n * Closes and releases the current scene, if any\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if success, fFalse if couldn't autosave\n *\n ****************************************************/\nbool MVIE::_FCloseCurrentScene(void)\n{\n    AssertThis(0);\n\n    if (Pscen() != pvNil)\n    {\n\n        if (!FAutoSave(pvNil, fFalse)) // could not save...keep scene open\n        {\n            return fFalse;\n        }\n\n        SCEN::Close(&_pscenOpen);\n        _iscen = ivNil;\n    }\n    return fTrue;\n}\n\n/****************************************************\n *\n * Makes sure that the current file in use is a temp file.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if success, fFalse if couldn't switch\n *\n ****************************************************/\nbool MVIE::_FUseTempFile(void)\n{\n    AssertThis(0);\n\n    PCFL pcfl;\n    KID kid;\n    FNI fni;\n\n    pcfl = _pcrfAutoSave->Pcfl();\n\n    //\n    // Make sure we are using the temporary file\n    //\n    if (!pcfl->FTemp())\n    {\n\n        if (!fni.FGetTemp())\n        {\n            return (fFalse);\n        }\n\n        if (!pcfl->FSave(kctgSoc, &fni))\n        {\n            return (fFalse);\n        }\n\n        // Set the Temp flag\n        AssertDo(pcfl->FSetGrfcfl(fcflTemp, fcflTemp), 0);\n\n        //\n        // Update _cno\n        //\n        AssertDo(pcfl->FGetCkiCtg(kctgMvie, 0, &(kid.cki)), \"Should never fail\");\n        _cno = kid.cki.cno;\n    }\n\n    return fTrue;\n}\n\n/****************************************************\n *\n * Makes sure that there is a file to work with.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if success, fFalse if couldn't switch\n *\n ****************************************************/\nbool MVIE::_FMakeCrfValid(void)\n{\n    AssertThis(0);\n\n    PCFL pcfl;\n    FNI fni;\n\n    if (_pcrfAutoSave != pvNil)\n    {\n        return (fTrue);\n    }\n\n    //\n    // Get a temp file\n    //\n    if (!fni.FGetTemp())\n    {\n        return (fFalse);\n    }\n\n    pcfl = CFL::PcflCreate(&fni, fcflTemp);\n    if (pcfl == pvNil)\n    {\n        return (fFalse);\n    }\n\n    Assert(pcfl->FTemp(), \"Bad CFL\");\n\n    //\n    // Note (by *****): CRF *must* have 0 cache size, because of\n    // serious cache-coherency problems otherwise.  TMPL data is not\n    // read-only, and chunk numbers change over time.\n    //\n    _pcrfAutoSave = CRF::PcrfNew(pcfl, 0); // cache size must be 0\n    if (pvNil == _pcrfAutoSave)\n    {\n        ReleasePpo(&pcfl);\n        return (fFalse);\n    }\n\n    //\n    // Create movie chunk\n    //\n    SetDirty();\n    if (!FAutoSave())\n    {\n        ReleasePpo(&pcfl);\n        return (fFalse);\n    }\n\n    ReleasePpo(&pcfl);\n    return fTrue;\n}\n\n/****************************************************\n *\n * Saves a movie to the temp file assigned to the movie.\n *\n * Parameters:\n *\tpfni - File to save to, pvNil if to use a temp file.\n *\tpCleanRollCall - Should actors that are not used be removed?\n *\n * Returns:\n *  fFalse if there was a failure, else fTrue.\n *\n ****************************************************/\nbool MVIE::FAutoSave(PFNI pfni, bool fCleanRollCall)\n{\n    AssertThis(0);\n    AssertNilOrPo(_pcrfAutoSave, 0);\n    AssertNilOrPo(pfni, ffniFile);\n\n#ifdef BUG1848\n    bool fRetry = fTrue;\n#endif // BUG1848\n    BLCK blck;\n    CNO cno;\n    CNO cnoScen;\n    CNO cnoSource;\n    MFP mfp;\n    KID kidScen, kidGstRollCall, kidGstSource;\n    PCFL pcfl;\n    PGST pgstSource = pvNil;\n\n    if (_pcrfAutoSave == pvNil)\n    {\n        return (fFalse);\n    }\n\n    pcfl = _pcrfAutoSave->Pcfl();\n\n    //\n    // If no changes, then quit quick.\n    //\n    if (!_fAutosaveDirty && (pfni == pvNil) && !_fDocClosing)\n    {\n        return (fTrue);\n    }\n\n    vpappb->BeginLongOp();\n\n    if ((pfni == pvNil) && !pcfl->FTemp() && !_FUseTempFile())\n    {\n        vpappb->EndLongOp();\n        return (fFalse);\n    }\n\n#ifdef BUG1848\nLRetry:\n#endif // BUG1848\n    //\n    // Ensure movie chunk exists.\n    //\n    if (_cno == cnoNil)\n    {\n        if (!pcfl->FAdd(size(MFP), kctgMvie, &_cno, &blck))\n        {\n            goto LFail0;\n        }\n\n        mfp.bo = kboCur;\n        mfp.osk = koskCur;\n        mfp.dver.Set(kcvnCur, kcvnBack);\n\n        if (!blck.FWrite(&mfp))\n        {\n            goto LFail0;\n        }\n    }\n\n    //\n    // Save open scene.\n    //\n    if (Pscen() != pvNil)\n    {\n\n        //\n        // Save scene in new chunk\n        //\n        if (!Pscen()->FWrite(_pcrfAutoSave, &cnoScen))\n        {\n            goto LFail0;\n        }\n\n        //\n        // Delete old chunk with this scene\n        //\n        AssertDo(pcfl->FGetKidChidCtg(kctgMvie, _cno, _iscen, kctgScen, &kidScen), \"Should never fail\");\n\n        //\n        // Update chid for movie\n        //\n        if (!pcfl->FAdoptChild(kctgMvie, _cno, kctgScen, cnoScen, _iscen))\n        {\n            pcfl->Delete(kctgScen, cnoScen);\n            goto LFail0;\n        }\n    }\n\n    //\n    // Save the movie roll-call\n    //\n    if (fCleanRollCall)\n    {\n        MACTR mactr;\n        long imactr;\n\n        for (imactr = 0; imactr < _pgstmactr->IvMac();)\n        {\n            _pgstmactr->GetExtra(imactr, &mactr);\n            if (mactr.cactRef == 0)\n            {\n                _pgstmactr->Delete(imactr);\n                vptagm->CloseTag(&mactr.tagTmpl);\n            }\n            else\n            {\n                imactr++;\n            }\n        }\n\n        _pmcc->UpdateRollCall();\n    }\n\n    //\n    // Get old roll call if it exists.\n    //\n    if (!pcfl->FGetKidChidCtg(kctgMvie, _cno, 0, kctgGst, &kidGstRollCall))\n    {\n        kidGstRollCall.cki.cno = cnoNil;\n    }\n\n    if (!pcfl->FAdd(_pgstmactr->CbOnFile(), kctgGst, &cno, &blck))\n    {\n        goto LFail1;\n    }\n\n    if (!_pgstmactr->FWrite(&blck) || !pcfl->FAdoptChild(kctgMvie, _cno, kctgGst, cno, 0))\n    {\n        pcfl->Delete(kctgGst, cno);\n        goto LFail1;\n    }\n\n    //\n    // Save the known sources list\n    //\n\n    //\n    // Get old sources list if it exists.\n    //\n    if (!pcfl->FGetKidChidCtg(kctgMvie, _cno, kchidGstSource, kctgGst, &kidGstSource))\n    {\n        kidGstSource.cki.cno = cnoNil;\n    }\n\n    pgstSource = vptagm->PgstSource();\n    if (pgstSource == pvNil)\n        goto LFail2;\n\n    if (!pcfl->FAdd(pgstSource->CbOnFile(), kctgGst, &cnoSource, &blck))\n    {\n        goto LFail2;\n    }\n\n    if (!pgstSource->FWrite(&blck) || !pcfl->FAdoptChild(kctgMvie, _cno, kctgGst, cnoSource, kchidGstSource))\n    {\n        pcfl->Delete(kctgGst, cnoSource);\n        goto LFail2;\n    }\n\n    if (!pcfl->FSetName(kctgMvie, _cno, &_stnTitle))\n    {\n        goto LFail3;\n    }\n\n    //\n    // Delete old scene if there is a scene.\n    //\n    if (Pscen() != pvNil)\n    {\n        pcfl->DeleteChild(kctgMvie, _cno, kctgScen, kidScen.cki.cno, _iscen);\n    }\n\n    //\n    // Delete old roll call list if it exists.\n    //\n    if (kidGstRollCall.cki.cno != cnoNil)\n    {\n        pcfl->DeleteChild(kctgMvie, _cno, kctgGst, kidGstRollCall.cki.cno, 0);\n    }\n\n    //\n    // Delete old sources list if it exists.\n    //\n    if (kidGstSource.cki.cno != cnoNil)\n    {\n        pcfl->DeleteChild(kctgMvie, _cno, kctgGst, kidGstSource.cki.cno, kchidGstSource);\n    }\n\n    //\n    // If we fail, don't unwind, as everything is consistent.\n    // Just let the client know we failed.\n    //\n    if (pfni != pvNil)\n    {\n        bool fSuccess;\n        PFIL pfil;\n\n        //\n        // If we have this file open, then we need to release it\n        // so we can do the save.  We will restore our open below.\n        //\n        pfil = FIL::PfilFromFni(pfni);\n        if (pfil == _pfilSave)\n        {\n            ReleasePpo(&_pfilSave);\n            _fFniSaveValid = fFalse;\n        }\n        else\n        {\n            pfil = pvNil;\n        }\n        //\n        // All garbage collection -- ignore any errors, the file will just be\n        // a widdle bigger than it has to be.\n        //\n        _FDoGarbageCollection(pcfl);\n\n        fSuccess = pcfl->FSave(kctgSoc, pfni);\n\n        if (pfil != pvNil)\n        {\n            _pfilSave = FIL::PfilFromFni(pfni);\n            if (_pfilSave != pvNil)\n            {\n                _pfilSave->AddRef();\n                _fFniSaveValid = fTrue;\n            }\n        }\n\n        if (!fSuccess)\n        {\n            goto LFail0;\n        }\n    }\n    else if (!pcfl->FSave(kctgSoc))\n    {\n        goto LFail0;\n    }\n\n    _fAutosaveDirty = fFalse;\n    _fDirty = fTrue;\n\n    //\n    // Set the movie title\n    //\n    _SetTitle(pfni);\n\n    vpappb->EndLongOp();\n    return (fTrue);\n\nLFail3:\n    pcfl->DeleteChild(kctgMvie, _cno, kctgGst, cnoSource, kchidGstSource);\n\nLFail2:\n    pcfl->DeleteChild(kctgMvie, _cno, kctgGst, cno, 0);\n\nLFail1:\n    if (Pscen() != pvNil)\n    {\n        pcfl->DeleteChild(kctgMvie, _cno, kctgScen, cnoScen, _iscen);\n    }\n\nLFail0:\n    if (pcfl->ElError() != elNil)\n    {\n        pcfl->ResetEl();\n#ifdef BUG1848\n        if (fRetry && pfni != pvNil)\n        {\n            FNI fniTemp;\n\n            /* Effectively, move the temp file to the destination path */\n            /* REVIEW seanse(peted): note that the autosave file could whined up\n                on the floppy if we fail again (which SeanSe says is \"Bad\") */\n            fniTemp = *pfni;\n            if (fniTemp.FGetUnique(pfni->Ftg()) && pcfl->FSave(kctgSoc, &fniTemp))\n            {\n                pcfl->SetTemp(fTrue);\n                vpers->Clear();\n                fRetry = fFalse;\n                goto LRetry;\n            }\n        }\n#endif // BUG1848\n        PushErc(ercSocSaveFailure);\n    }\n\n    vpappb->EndLongOp();\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Do all garbage collection\n *\n * Parameters:\n *\tpfni - File to remove chunks from\n *\n * Returns:\n *  fTrue on success, fFalse on failure\n *\n ****************************************************/\nbool MVIE::_FDoGarbageCollection(PCFL pcfl)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n    bool fSuccess, fHaveValid;\n\n    // Material and Template garbage collection\n    fSuccess = _FDoMtrlTmplGC(pcfl);\n\n    // If closing, remove unused sounds\n    if (_fDocClosing && FUnusedSndsUser(&fHaveValid))\n        _DoSndGarbageCollection(!fHaveValid || Pmcc()->FQueryPurgeSounds());\n    return fSuccess;\n}\n\n/****************************************************\n *\n * Removes all MTRL and TMPL chunks that are not\n * referenced by any actors in this movie.\n *\n * Parameters:\n *\tpfni - File to remove chunks from\n *\n * Returns:\n *  fTrue on success, fFalse on failure\n *\n ****************************************************/\nbool MVIE::_FDoMtrlTmplGC(PCFL pcfl)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n\n    PTAGL ptagl = pvNil;\n    long itag;\n    TAG tag;\n    long icki1 = 0;\n    long icki2 = 0;\n    CKI cki;\n    PGL pglckiDoomed = pvNil;\n\n    ptagl = _PtaglFetch(); // get all tags in user's document\n    if (ptagl == pvNil)\n        goto LEnd; // no work to do\n\n    pglckiDoomed = GL::PglNew(size(CKI), 0);\n    if (pvNil == pglckiDoomed)\n        goto LFail;\n\n    while (pcfl->FGetCkiCtg(kctgMtrl, icki1++, &cki) || pcfl->FGetCkiCtg(kctgTmpl, icki2++, &cki))\n    {\n        // We're only interested in ksidUseCrf tags\n        for (itag = 0; itag < ptagl->Ctag(); itag++)\n        {\n            ptagl->GetTag(itag, &tag);\n            if (tag.sid != ksidUseCrf)\n            {\n                break; // stop..we're out of the ksidUseCrf tags\n            }\n            if (tag.ctg == cki.ctg && tag.cno == cki.cno)\n            {\n                break; // stop..this tag is used in the movie\n            }\n        }\n        // Remember, tags are sorted by sid.  So if we got past the\n        // ksidUseCrf tags in the movie, this chunk must not be used\n        // in the movie.  So put it on the blacklist.\n        if (tag.sid != ksidUseCrf || itag == ptagl->Ctag())\n        {\n            // this chunk is not referenced by a ksidUseCrf tag, so kill it\n            if (!pglckiDoomed->FAdd(&cki))\n                goto LFail;\n        }\n    }\n    // Get rid of the blacklisted chunks\n    for (icki1 = 0; icki1 < pglckiDoomed->IvMac(); icki1++)\n    {\n        pglckiDoomed->Get(icki1, &cki);\n        pcfl->Delete(cki.ctg, cki.cno);\n        if (pcfl == _pcrfAutoSave->Pcfl()) // remove chunk from CRF cache\n        {\n            PFNRPO pfnrpo;\n\n            if (kctgMtrl == cki.ctg)\n            {\n                pfnrpo = MTRL::FReadMtrl;\n            }\n            else if (kctgTmpl == cki.ctg)\n            {\n                pfnrpo = TMPL::FReadTmpl;\n            }\n            else\n            {\n                Bug(\"unexpected ctg\");\n            }\n            // ignore failure of FSetCrep, because return value of fFalse\n            // just means that the chunk is not stored in the CRF's cache\n            _pcrfAutoSave->FSetCrep(crepToss, cki.ctg, cki.cno, pfnrpo);\n        }\n    }\nLEnd:\n    ReleasePpo(&ptagl);\n    ReleasePpo(&pglckiDoomed);\n    return fTrue;\nLFail:\n    ReleasePpo(&ptagl);\n    ReleasePpo(&pglckiDoomed);\n    return fFalse;\n}\n\n/****************************************************\n *\n * Gets the file name to save the document to.\n *\n * Parameters:\n *\tpfni - A pointer to a place to store the name\n *\n * Returns:\n *  fFalse if the fni is valid, else fTrue *and*\n *  pfni filled in.\n *\n ****************************************************/\nbool MVIE::FGetFni(FNI *pfni)\n{\n    AssertThis(0);\n    AssertPo(pfni, 0);\n\n    if (_pfilSave != pvNil)\n    {\n        _pfilSave->GetFni(pfni);\n    }\n\n    return (_fFniSaveValid);\n}\n\n/***************************************************************************\n *\n * Saves a movie.\n *\n * Parameters:\n *  cid - type of save command issued for save\n *\n * Returns:\n *  fFalse if there was a failure, else fTrue.\n *\n ****************************************************/\nbool MVIE::FSave(long cid)\n{\n    AssertThis(0);\n\n    // If we are processing a Save command and the current movie is read-only,\n    // then treat this as a Save-As command and invoke the Save portfolio.\n\n    if (cid == cidSave && FReadOnly())\n        cid = cidSaveAs;\n\n    // Now take the default action.\n    return MVIE_PAR::FSave(cid);\n}\n\n/****************************************************\n *\n * Saves a movie to the given fni.\n *\n * Parameters:\n *\tpfni - File to write to.\n *  fSetFni - Should the file name be remembered.\n *\n * Returns:\n *  fFalse if there was a failure, else fTrue.\n *\n ****************************************************/\nbool MVIE::FSaveToFni(FNI *pfni, bool fSetFni)\n{\n    AssertThis(0);\n    AssertNilOrPo(pfni, ffniFile);\n\n    CKI cki;\n    PCFL pcfl;\n\n    if (_pcrfAutoSave == pvNil)\n    {\n        return (pvNil);\n    }\n\n    pcfl = _pcrfAutoSave->Pcfl();\n\n    //\n    // Update the file\n    //\n    if (!FAutoSave(pfni, fTrue))\n    {\n        return (fFalse);\n    }\n\n    ClearUndo();\n\n    // Set the AddToExtra flag and clear the Temp flag\n    AssertDo(pcfl->FSetGrfcfl(fcflAddToExtra, fcflAddToExtra | fcflTemp), 0);\n\n    if (fSetFni)\n    {\n        _FSetPfilSave(pfni); // Ignore failure\n    }\n\n    //\n    // Update _cno\n    //\n    AssertDo(pcfl->FGetCkiCtg(kctgMvie, 0, &cki), \"Should never fail\");\n\n    _cno = cki.cno;\n\n    _fDirty = fFalse;\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Called by docb.cpp to get an fni for a selected movie file using\n * the save portfolio.\n *\n * Parameters:\n *\tpfni - fni for selected file\n *\n * Returns:\n *  TRUE  - User selected a file\n *  FALSE - User canceled, (or other error).\n *\n ***************************************************************************/\nbool MVIE::FGetFniSave(FNI *pfni)\n{\n    AssertThis(0);\n    AssertVarMem(pfni);\n\n    return (_pmcc->GetFniSave(pfni, idsPortfMovieFilterLabel, idsPortfMovieFilterExt, idsPortfSaveMovieTitle, ksz3mm,\n                              &_stnTitle));\n}\n\n/****************************************************\n *\n * Creates a new view on a movie.\n *\n * Parameters:\n *\tpgcb - The creation block describing the gob placement\n *\n * Returns:\n *  A pointer to the view, otw pvNil on failure\n *\n ****************************************************/\nPDDG MVIE::PddgNew(PGCB pgcb)\n{\n    AssertThis(0);\n    AssertVarMem(pgcb);\n    return (MVU::PmvuNew(this, pgcb, _pmcc->Dxp(), _pmcc->Dyp()));\n}\n\n/****************************************************\n *\n * Is not used.  Not supported.  Stubbed out here for\n * debugging.\n *\n * Parameters:\n *\tNone\n *\n * Returns:\n *  pvNil\n *\n ****************************************************/\nPDMD MVIE::PdmdNew(void)\n{\n    Bug(\"Movie does not support DMDs, use multiple DDGs.\");\n    return (pvNil);\n}\n\n/****************************************************\n *\n * Adds a single item to the undo list\n *\n * Parameters:\n *\tpmund - A pointer to a movie undo item.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool MVIE::FAddUndo(PMUNB pmunb)\n{\n    AssertThis(0);\n\n    pmunb->SetPmvie(this);\n    pmunb->SetIscen(Iscen());\n\n    AssertPo(pmunb, 0);\n\n    if (Iscen() != ivNil)\n    {\n        pmunb->SetNfrm(Pscen()->Nfrm());\n    }\n\n    if (!DOCB::FAddUndo(pmunb))\n    {\n        Pmcc()->SetUndo(undoDisabled);\n        return (fFalse);\n    }\n\n    Pmcc()->SetUndo(undoUndo);\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Clears out the undo buffer\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid MVIE::ClearUndo(void)\n{\n    AssertThis(0);\n\n    MVIE_PAR::ClearUndo();\n    Pmcc()->SetUndo(undoDisabled);\n}\n\n/***************************************************************************\n *\n * This routine changes the current camera view\n *\n * Parameters:\n *\ticam - The new camera to use.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FChangeCam(long icam)\n{\n    AssertThis(0);\n    AssertIn(icam, 0, kccamMax);\n    AssertPo(Pscen(), 0);\n\n    if (!Pscen()->FChangeCam(icam))\n    {\n        return (fFalse);\n    }\n\n    SetDirty();\n    InvalViews();\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * This command inserts a new text box into the open scene.\n *\n * Parameters:\n *\tprc - The placement within the movie's view of the text box.\n *  fStory - Is this supposed to be a story text box?\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FInsTbox(RC *prc, bool fStory)\n{\n    AssertThis(0);\n    AssertPvCb(prc, size(RC));\n    AssertPo(Pscen(), 0);\n\n    PTBOX ptbox;\n\n    ptbox = TBOX::PtboxNew(Pscen(), prc, fStory);\n\n    if (ptbox == pvNil)\n    {\n        return (fFalse);\n    }\n    ptbox->SetDypFontDef(Pmcc()->DypTboxDef());\n\n    AssertPo(ptbox, 0);\n\n    if (!Pscen()->FAddTbox(ptbox))\n    {\n        ReleasePpo(&ptbox);\n    }\n\n    Pscen()->SelectTbox(ptbox);\n    ptbox->AttachToMouse();\n    ReleasePpo(&ptbox);\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * This command removes the currently selected text box.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FNukeTbox(void)\n{\n    AssertThis(0);\n    AssertPo(Pscen(), 0);\n\n    PTBOX ptbox;\n\n    ptbox = Pscen()->PtboxSelected();\n\n    if (ptbox == pvNil)\n    {\n        PushErc(ercSocNoTboxSelected);\n        return (fFalse);\n    }\n\n    return (Pscen()->FRemTbox(ptbox));\n}\n\n/***************************************************************************\n *\n * This command hides the currently selected text box at the current frame.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FHideTbox(void)\n{\n    AssertThis(0);\n    AssertPo(Pscen(), 0);\n\n    PTBOX ptbox;\n\n    ptbox = Pscen()->PtboxSelected();\n\n    if (ptbox == pvNil)\n    {\n        PushErc(ercSocNoTboxSelected);\n        return (fFalse);\n    }\n\n    return (ptbox->FHide());\n}\n\n/***************************************************************************\n *\n * This command selects the itbox'th text box in the current frame.\n *\n * Parameters:\n *\titbox - Index value of the text box to select.\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVIE::SelectTbox(long itbox)\n{\n    AssertThis(0);\n    AssertPo(Pscen(), 0);\n\n    PTBOX ptbox;\n    long cVis = 0;\n\n    while (fTrue)\n    {\n        ptbox = Pscen()->PtboxFromItbox(itbox);\n        if (ptbox == pvNil)\n        {\n            return;\n        }\n\n        if (ptbox->FIsVisible() && (cVis == itbox))\n        {\n            return;\n        }\n\n        if (ptbox->FIsVisible())\n        {\n            cVis++;\n        }\n    }\n\n    Pscen()->SelectTbox(ptbox);\n}\n\n/***************************************************************************\n *\n * This sets the color to apply to a text box.\n *\n * Parameters:\n *  acr - The destination color.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nvoid MVIE::SetPaintAcr(ACR acr)\n{\n    AssertThis(0);\n\n    PMVU pmvu;\n\n    pmvu = (PMVU)PddgGet(0);\n    AssertPo(pmvu, 0);\n    pmvu->SetPaintAcr(acr);\n}\n\n/******************************************************************************\n    SetDypFontTextCur\n        Sets the current textbox font size\n\n    Arguments:\n        long dypFont  --  the new textbox font size\n\n************************************************************ PETED ***********/\nvoid MVIE::SetDypFontTextCur(long dypFont)\n{\n    AssertThis(0);\n\n    PmvuFirst()->SetDypFontTextCur(dypFont);\n}\n\n/******************************************************************************\n    SetStyleTextCur\n        Sets the current textbox font style\n\n    Arguments:\n        long grfont  --  the new textbox font style\n\n************************************************************ PETED ***********/\nvoid MVIE::SetStyleTextCur(ulong grfont)\n{\n    AssertThis(0);\n\n    PmvuFirst()->SetStyleTextCur(grfont);\n}\n\n/******************************************************************************\n    SetOnnTextCur\n        Sets the current textbox font face\n\n    Arguments:\n        long onn  -- the new textbox font face\n\n************************************************************ PETED ***********/\nvoid MVIE::SetOnnTextCur(long onn)\n{\n    AssertThis(0);\n\n    PmvuFirst()->SetOnnTextCur(onn);\n}\n\n/******************************************************************************\n    PmvuCur\n        Returns the active MVU for this movie\n\n************************************************************ PETED ***********/\nPMVU MVIE::PmvuCur(void)\n{\n    AssertThis(0);\n    PMVU pmvu = (PMVU)PddgActive();\n\n    AssertPo(pmvu, 0);\n    Assert(pmvu->FIs(kclsMVU), \"Current DDG isn't an MVU\");\n    return pmvu;\n}\n\n/******************************************************************************\n    PmvuFirst\n        Returns the first MVU for this movie\n\n************************************************************ PETED ***********/\nPMVU MVIE::PmvuFirst(void)\n{\n    AssertThis(0);\n    PMVU pmvu = (PMVU)PddgGet(0);\n\n    AssertPo(pmvu, 0);\n    Assert(pmvu->FIs(kclsMVU), \"First DDG isn't an MVU\");\n    return pmvu;\n}\n\n/***************************************************************************\n *\n * This command inserts a new actor.\n *\n * Parameters:\n *\tptag - The tag of the actor to create.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FInsActr(PTAG ptag)\n{\n    AssertThis(0);\n    AssertPvCb(ptag, size(TAG));\n    AssertPo(Pscen(), 0);\n\n    PACTR pactr;\n\n    vpappb->BeginLongOp();\n\n    //\n    // Create the actor.\n    //\n    if (!vptagm->FCacheTagToHD(ptag))\n    {\n        vpappb->EndLongOp();\n        return (fFalse);\n    }\n\n    vpappb->EndLongOp();\n\n    pactr = ACTR::PactrNew(ptag);\n    if (pactr == pvNil)\n    {\n        return (fFalse);\n    }\n\n    AssertPo(pactr, 0);\n    if (!Pscen()->FAddActr(pactr))\n    {\n        ReleasePpo(&pactr);\n        return (fFalse);\n    }\n\n    ReleasePpo(&pactr);\n\n    SetDirty();\n    InvalViewsAndScb();\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Brings an actor on to the stage.\n *\n * Parameters:\n *\tarid - Arid of the actor to bring on.  aridNil implies the\n *\t\tcurrently selected actor.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FAddOnstage(long arid)\n{\n    AssertThis(0);\n    AssertPo(Pscen(), 0);\n\n    ACTR *pactr;\n    //\n    // Get the actor\n    //\n    if (arid == aridNil)\n    {\n        pactr = Pscen()->PactrSelected();\n    }\n    else\n    {\n        pactr = Pscen()->PactrFromArid(arid);\n        Pscen()->SelectActr(pactr);\n    }\n\n    if (pactr == pvNil)\n    {\n        PushErc(ercSocNoActrSelected);\n        return (fFalse);\n    }\n\n    AssertPo(pactr, 0);\n\n    if (!pactr->FAddOnStage())\n    {\n        return (fFalse);\n    }\n\n    SetDirty();\n    InvalViews();\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Removes the selected actor from the current scene\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FRemActr()\n{\n    AssertThis(0);\n    AssertPo(Pscen(), 0);\n\n    ACTR *pactr;\n\n    //\n    // Get the current actor\n    //\n    pactr = Pscen()->PactrSelected();\n    AssertPo(pactr, 0);\n    if (!Pscen()->FRemActr(pactr->Arid()))\n    {\n        return (fFalse);\n    }\n\n    SetDirty();\n    InvalViewsAndScb();\n    Pmcc()->ActorNuked();\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Rotates selected actor by degrees around an axis.\n *\n * Parameters:\n *  axis - Brender axis to rotate around.\n *\txa - Degrees to rotate by in X.\n *\tya - Degrees to rotate by in Y.\n *\tza - Degrees to rotate by in Z.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FRotateActr(BRA xa, BRA ya, BRA za, bool fFromHereFwd)\n{\n    AssertThis(0);\n    AssertPo(Pscen(), 0);\n\n    ACTR *pactr;\n\n    //\n    // Get the current actor\n    //\n    pactr = Pscen()->PactrSelected();\n    AssertPo(pactr, 0);\n\n    if (!pactr->FRotate(xa, ya, za, fFromHereFwd))\n    {\n        return (fFalse);\n    }\n\n    SetDirty();\n    InvalViews();\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Squashes/Stretches the selected actor by a scalar.\n *\n * Parameters:\n *  brs - The scalar for squashing.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FSquashStretchActr(BRS brs)\n{\n    AssertThis(0);\n    AssertPo(Pscen(), 0);\n\n    ACTR *pactr;\n\n    //\n    // Get the current actor\n    //\n    pactr = Pscen()->PactrSelected();\n    AssertPo(pactr, 0);\n\n    if (brs == rZero)\n    {\n        return (fTrue);\n    }\n\n    BRS brsy = BrsDiv(rOne, brs);\n\n    if (!pactr->FPull(brs, brsy, brs))\n    {\n        return (fFalse);\n    }\n\n    SetDirty();\n    InvalViews();\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Drags the actor in time\n *\n * Parameters:\n *  nfrm - The destination frame number.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FSoonerLaterActr(long nfrm)\n{\n    AssertThis(0);\n    AssertPo(Pscen(), 0);\n\n    ACTR *pactr;\n    PAUND paund;\n\n    long dnfrm = nfrm - Pscen()->Nfrm();\n\n    //\n    // Get the current actor\n    //\n    pactr = Pscen()->PactrSelected();\n    AssertPo(pactr, 0);\n\n    if (!pactr->FSoonerLater(dnfrm))\n    {\n        return (fFalse);\n    }\n\n    if (CundbUndo() > 0)\n    {\n\n        _pglpundb->Get(_ipundbLimDone - 1, &paund);\n\n        if (paund->FIs(kclsAUND) && paund->FSoonerLater())\n        {\n            AssertPo(paund, 0);\n            paund->SetNfrmLast(nfrm);\n        }\n    }\n\n    SetDirty();\n    InvalViews();\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Scales the selected actor by a scalar.\n *\n * Parameters:\n *  brs - The scalar for scaling.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FScaleActr(BRS brs)\n{\n    AssertThis(0);\n    AssertPo(Pscen(), 0);\n\n    ACTR *pactr;\n\n    //\n    // Get the current actor\n    //\n    pactr = Pscen()->PactrSelected();\n    AssertPo(pactr, 0);\n\n    if (!pactr->FScale(brs))\n    {\n        return (fFalse);\n    }\n\n    SetDirty();\n    InvalViewsAndScb();\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Adds a sound to the background\n *\n * Parameters:\n *  ptag - tag to the MSND to insert\n *  fLoop - play snd over and over?\n *  fQueue - replace existing sounds, or queue afterwards?\n *  vlm - volume to play sound\n *  sty - sound type\n *\n * Returns:\n *  fFalse if there was a failure, else fTrue.\n *\n ****************************************************/\nbool MVIE::FAddBkgdSnd(PTAG ptag, tribool fLoop, tribool fQueue, long vlm, long sty)\n{\n    AssertThis(0);\n    Assert(Pscen(), 0);\n\n    if (vlm == vlmNil || sty == styNil)\n    {\n        PMSND pmsnd;\n\n        pmsnd = (PMSND)vptagm->PbacoFetch(ptag, MSND::FReadMsnd);\n        if (pmsnd == pvNil)\n            return fFalse;\n        if (vlm == vlmNil)\n            vlm = pmsnd->Vlm();\n        if (sty == styNil)\n            sty = pmsnd->Sty();\n        ReleasePpo(&pmsnd);\n    }\n\n    return Pscen()->FAddSnd(ptag, fLoop, fQueue, vlm, sty);\n}\n\n/****************************************************\n *\n * Adds a sound to an actor\n *\n * Parameters:\n *  pactr - actor to attach sound to\n *  ptag - tag to the MSND to insert\n *  fLoop - play snd over and over?\n *  fQueue - replace existing sounds, or queue afterwards?\n *  vlm - volume to use (vlmNil -> use pmsnd volume)\n *  sty - type to use (styNil -> use pmsnd sty)\n *\n * Returns:\n *  fFalse if there was a failure, else fTrue.\n *\n ****************************************************/\nbool MVIE::FAddActrSnd(PTAG ptag, tribool fLoop, tribool fQueue, tribool fActnCel, long vlm, long sty)\n{\n    AssertThis(0);\n    ACTR *pactr;\n\n    //\n    // Get the current actor\n    //\n    pactr = Pscen()->PactrSelected();\n    AssertPo(pactr, 0);\n\n    return pactr->FSetSnd(ptag, fLoop, fQueue, fActnCel, vlm, sty);\n}\n\n/****************************************************\n *\n * Takes a scene and inserts it as scene number iscen,\n * and switches to the scene.\n *\n * Parameters:\n *\tiscen - Scene number to insert the new scene as.\n *\tpscen - Pointer to the scene to insert.\n *\n * Returns:\n *  fFalse if there was a failure, else fTrue.\n *\n ****************************************************/\nbool MVIE::FInsScenCore(long iscen, SCEN *pscen)\n{\n    AssertThis(0);\n    AssertIn(iscen, 0, Cscen() + 1);\n    AssertPo(pscen, 0);\n    Assert(pscen->Pmvie() == this, \"Cannot insert a scene from another movie\");\n\n    CNO cnoScen;\n    PCFL pcfl;\n\n    //\n    // Make sure we have a file to switch to\n    //\n    if (!_FMakeCrfValid())\n    {\n        goto LFail0;\n    }\n\n    pcfl = _pcrfAutoSave->Pcfl();\n\n    //\n    // Ensure we are using the temp file\n    //\n    if (!_FUseTempFile())\n    {\n        goto LFail0;\n    }\n\n    //\n    // Save old scene.\n    //\n    if (!_FCloseCurrentScene())\n    {\n        goto LFail0;\n    }\n\n    //\n    // Write it.\n    //\n    if (!pscen->FWrite(_pcrfAutoSave, &cnoScen))\n    {\n        goto LFail0;\n    }\n\n    //\n    // Hide all bodies, textboxes, etc, created when the write updated the thumbnail.\n    //\n    pscen->AddRef();\n    SCEN::Close(&pscen);\n\n    _MoveChids((CHID)iscen, fTrue);\n\n    _cscen++;\n\n    //\n    // Insert new scene as chid.\n    //\n    if (!pcfl->FAdoptChild(kctgMvie, _cno, kctgScen, cnoScen, iscen))\n    {\n        goto LFail2;\n    }\n\n    //\n    // Save changes, if this fails, we don't care.  It only\n    // matters when the user tries to truly save.\n    //\n    pcfl->FSave(kctgSoc);\n\n    if (!FSwitchScen(iscen))\n    {\n        goto LFail3;\n    }\n\n    //\n    // Fix up roll call, don't care about failure -- roll-call will just be messed up.\n    //\n    Pscen()->FAddActrsToRollCall();\n\n    SetDirty();\n    _pmcc->UpdateRollCall();\n\n    if (FSoundsEnabled())\n    {\n        _pmsq->PlayMsq();\n    }\n    else\n    {\n        _pmsq->FlushMsq();\n    }\n\n    return (fTrue);\n\nLFail3:\n    _cscen--;\n    pcfl->DeleteChild(kctgMvie, _cno, kctgScen, cnoScen, iscen);\n    _MoveChids((CHID)iscen, fFalse);\n    pcfl->FSave(kctgSoc);\n\n    if (_cscen > 0)\n    {\n\n        if (iscen < _cscen)\n        {\n            FSwitchScen(iscen);\n        }\n        else\n        {\n            FSwitchScen(_cscen - 1);\n        }\n    }\n\n    return (fFalse);\n\nLFail2:\n    _MoveChids((CHID)iscen, fFalse);\n    pcfl->Delete(kctgScen, cnoScen);\n\nLFail0:\n    return (fFalse);\n}\n\n/***************************************************************************\n *\n * Adds a new scene after the current scene.\n *\n * Parameters:\n *\tptag - The tag of the scene to add.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FAddScen(PTAG ptag)\n{\n    AssertThis(0);\n    AssertPvCb(ptag, size(TAG));\n\n    long iscen;\n    TAG tagOld;\n    PMUNS pmuns;\n\n    vpappb->BeginLongOp();\n\n    //\n    // Set the background\n    //\n    if (!BKGD::FCacheToHD(ptag))\n    {\n        vpappb->EndLongOp();\n        return (fFalse);\n    }\n\n    vpappb->EndLongOp();\n\n    //\n    // Set default name\n    //\n    if ((Pscen() == pvNil) && (_stnTitle.Cch() == 0))\n    {\n        _SetTitle();\n    }\n\n    //\n    // Check if this is supposed to overwrite the current scene\n    //\n    if ((Pscen() == pvNil) || (!Pscen()->FIsEmpty()))\n    {\n\n        iscen = Iscen();\n        if (iscen == ivNil)\n        {\n            iscen = -1;\n        }\n\n        if (!FNewScenInsCore(iscen + 1))\n        {\n            return (fFalse);\n        }\n\n        if (!Pscen()->FSetBkgdCore(ptag, &tagOld))\n        {\n            FRemScenCore(iscen + 1);\n            return (fFalse);\n        }\n\n        if (FSoundsEnabled())\n        {\n            _pmsq->PlayMsq();\n        }\n        else\n        {\n            _pmsq->FlushMsq();\n        }\n\n        pmuns = MUNS::PmunsNew();\n\n        if (pmuns != pvNil)\n        {\n            pmuns->SetMunst(munstInsScen);\n            pmuns->SetIscen(iscen + 1);\n            pmuns->SetTag(ptag);\n\n            if (!FAddUndo(pmuns))\n            {\n                ReleasePpo(&pmuns);\n                FRemScenCore(iscen + 1);\n                return (fFalse);\n            }\n\n            ReleasePpo(&pmuns);\n        }\n        else\n        {\n            FRemScenCore(iscen + 1);\n            return (fFalse);\n        }\n    }\n    else\n    {\n\n        if (!Pscen()->FSetBkgd(ptag))\n        {\n            Bug(\"warning: set background failed.\");\n            return (fFalse);\n        }\n    }\n\n    SetDirty();\n    InvalViewsAndScb();\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Plays a movie.\n *\n * Parameters:\n *\tNone\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVIE::Play()\n{\n    AssertThis(0);\n\n    if (FPlaying())\n    {\n\n        if (FStopPlaying())\n        {\n            //\n            // We will stop it soon anyway.\n            //\n            return;\n        }\n\n        //\n        // Kill playing timer\n        //\n        SetFStopPlaying(fTrue);\n\n        if (_fPausing)\n        {\n            //\n            // There is no clock timer, so call directly\n            //\n            FCmdRender(pvNil);\n        }\n    }\n    else\n    {\n\n        if (Pscen() == pvNil)\n        {\n            Pmcc()->PlayStopped();\n            return;\n        }\n\n        // reset any outstanding sounds (from listener preview)\n        _pmsq->StopAll();\n        // flush any outstanding sound messages (from listener preview)\n        _pmsq->FlushMsq();\n\n        //\n        // Check for if we need to rewind\n        //\n        if ((Iscen() + 1 == Cscen()) && (Pscen()->Nfrm() == Pscen()->NfrmLast()))\n        {\n            if (!FSwitchScen(0))\n            {\n                Pmcc()->PlayStopped();\n                return;\n            }\n            if (!Pscen()->FGotoFrm(Pscen()->NfrmFirst()))\n            {\n                Pmcc()->PlayStopped();\n                return;\n            }\n        }\n\n        //\n        // Start playing timer\n        //\n        _fOldSoundsEnabled = FSoundsEnabled();\n        SetFSoundsEnabled(fTrue);\n        _cnfrm = 0;\n        _tsStart = TsCurrent();\n        SetFStopPlaying(fFalse);\n        _clok.Start(0);\n        SetFPlaying(fTrue);\n        vpcex->EnqueueCid(cidMviePlaying, pvNil, pvNil, fTrue);\n\n        if (!_clok.FSetAlarm(0, this))\n        {\n            Pmcc()->PlayStopped();\n            SetFPlaying(fFalse);\n            _pmsq->PlayMsq();\n            SetFSoundsEnabled(_fOldSoundsEnabled);\n            return;\n        }\n\n        //\n        // Check if we need to play the opening transition\n        //\n        _pmsq->SndOnLong();\n        Pscen()->Enable(fscenPauses);\n        Pscen()->SelectActr(pvNil);\n        Pscen()->SelectTbox(pvNil);\n        // Have to FReplayFrm *before* FStartPlaying because a camera view\n        // change in FReplayFrm would wipe out prerendering (which FStartPlaying\n        // initiates)\n        if (!Pscen()->FReplayFrm(fscenPauses | fscenSounds | fscenActrs) || !Pscen()->FStartPlaying())\n        {\n            Pmcc()->PlayStopped();\n            SetFStopPlaying(fTrue);\n            _pmsq->PlayMsq();\n            SetFSoundsEnabled(_fOldSoundsEnabled);\n            return;\n        }\n\n        Pmcc()->DisableAccel();\n\n        if ((Iscen() == 0) && (Pscen()->Nfrm() == Pscen()->NfrmFirst()))\n        {\n            _pmcc->UpdateScrollbars();\n            InvalViews();\n            vpappb->UpdateMarked();\n        }\n\n        Pscen()->PlayBkgdSnd();\n    }\n\n    // Play sound queue\n    if (FSoundsEnabled())\n    {\n        _pmsq->PlayMsq();\n    }\n    else\n    {\n        _pmsq->FlushMsq();\n    }\n    return;\n}\n\n/***************************************************************************\n *\n * Handle an alarm going off.\n *\n * This routine simply enqueues a command to render a frame.  We do it this\n * way because the clock pre-empts commands in the command queue.  If the\n * user mouse clicks, we need to process those clicks.  The best way to do\n * that is by doing rendering via the command queue.\n *\n * Parameters:\n *\tpcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it handled the command, else fFalse.\n *\n ***************************************************************************/\nbool MVIE::FCmdAlarm(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    CMD cmd;\n\n    if (FIdleSeen() || vpcex->PgobTracking() != pvNil)\n    {\n\n        SetFIdleSeen(fFalse);\n\n        ClearPb(&cmd, size(CMD));\n\n        cmd.pcmh = this;\n        cmd.cid = cidRender;\n        vpcex->EnqueueCmd(&cmd);\n    }\n    else\n    {\n\n        //\n        // Check again, asap.\n        //\n        if (!_clok.FSetAlarm(0, this))\n        {\n            PMVU pmvu;\n\n            //\n            // Things are in a bad way.\n            //\n            Pmcc()->EnableAccel();\n            SetFPlaying(fFalse);\n            SetFStopPlaying(fFalse);\n            SetFSoundsEnabled(_fOldSoundsEnabled);\n            _clok.RemoveCmh(this);\n            _fPausing = fFalse;\n            _fScrolling = fFalse;\n            _wit = witNil;\n            pmvu = (PMVU)PddgGet(0);\n            pmvu->PauseUntilClick(fFalse);\n            Pscen()->Enable(fscenTboxes);\n            Pscen()->Disable(fscenPauses);\n\n            //\n            // Update views and scroll bars\n            //\n            InvalViewsAndScb();\n\n            //\n            // Clean up anything else\n            //\n            Pscen()->StopPlaying();\n            vpcex->EnqueueCid(cidMviePlaying, pvNil, pvNil, fFalse);\n\n            //\n            // Set sound queue state\n            //\n            _pmsq->SndOnShort();\n\n            Pmcc()->PlayStopped();\n            vpsndm->StopAll();\n        }\n    }\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Handle rendering a frame.\n *\n * This routine gets a little busy.  The basic premise is to render a\n * frame one frame ahead of the one currently displayed.  This means\n * that only actor stuff gets done first, then when the frame is to be\n * displayed, textboxes and sounds get started.  If there is a scrolling\n * text box, then we play nothing else until the scrolling is done, and\n * (finally) pauses in the frame.\n *\n * Parameters:\n *\tpcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it handled the command, else fFalse.\n *\n ***************************************************************************/\nbool MVIE::FCmdRender(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pcmd);\n\n    PMVU pmvu;\n    PTBOX ptbox;\n    long itbox;\n    ulong tsCur = TsCurrent();\n\n    pmvu = (PMVU)PddgGet(0);\n    AssertPo(pmvu, 0);\n\n    if (FStopPlaying())\n    {\n    LStopPlaying:\n\n        Pmcc()->EnableAccel();\n        _clok.Stop();\n        _clok.RemoveCmh(this);\n        _fPausing = fFalse;\n        _fScrolling = fFalse;\n        _wit = witNil;\n        SetFStopPlaying(fFalse);\n        SetFPlaying(fFalse);\n        SetFSoundsEnabled(_fOldSoundsEnabled);\n        pmvu->PauseUntilClick(fFalse);\n        if (Pscen() != pvNil)\n        {\n            Pscen()->Enable(fscenTboxes);\n            Pscen()->Disable(fscenPauses);\n        }\n        else\n            Assert(_iscen == ivNil, \"Bogus scene state\");\n\n        //\n        // Update views and scroll bars\n        //\n        InvalViewsAndScb();\n\n        //\n        // Clean up anything else\n        //\n        if (Pscen() != pvNil)\n            Pscen()->StopPlaying();\n        vpcex->EnqueueCid(cidMviePlaying, pvNil, pvNil, fFalse);\n\n        //\n        // Set sound queue state\n        //\n        _pmsq->SndOnShort();\n\n        Pmcc()->PlayStopped();\n        vpsndm->StopAll();\n\n        // if we were fading, then restore sound volume\n        if (_vlmOrg)\n        {\n            vpsndm->SetVlm(_vlmOrg);\n            _vlmOrg = 0;\n        }\n\n        return (fTrue);\n    }\n\n    //\n    // if _vlmOrg is nonzero, then we are in the process of fading\n    //\n    if (_vlmOrg)\n    {\n        long vlm;\n\n        // get the current volume\n        vlm = vpsndm->VlmCur();\n\n        // massage it\n        vlm -= _vlmOrg / (kdtsVlmFade * 4); // kdtsVolFade seconds * 4 volume changes a second = total number deltas\n\n        // if new volume is below 0, then we are done\n        if (vlm <= 0)\n        {\n            SetFStopPlaying(fTrue);\n            vpsndm->SetVlm(0);\n            goto LStopPlaying;\n        }\n\n        // set the volume to new level\n        vpsndm->SetVlm(vlm);\n\n        if (!_clok.FSetAlarm(kdtimVlmFade, this))\n        {\n            goto LStopPlaying;\n        }\n\n        return fTrue;\n    }\n\n    if (_fScrolling)\n    {\n        //\n        // Do next text box scroll.\n        //\n        _fScrolling = fFalse;\n\n        for (itbox = 0;; itbox++)\n        {\n            ptbox = Pscen()->PtboxFromItbox(itbox);\n            AssertNilOrPo(ptbox, 0);\n            if (ptbox == pvNil)\n            {\n                break;\n            }\n\n            if (ptbox->FNeedToScroll())\n            {\n                ptbox->Scroll();\n                _fScrolling = fTrue;\n            }\n        }\n\n        if (_fScrolling && !_clok.FSetAlarm(kdtsScrolling, this))\n        {\n            _fScrolling = fFalse;\n            goto LStopPlaying;\n        }\n        else if (_fScrolling)\n        {\n            return fTrue;\n        }\n        else\n        {\n            goto LCheckForPause;\n        }\n    }\n\n    //\n    // If we are not pausing, then start the stuff for this frame\n    //\n    if (!_fPausing)\n    {\n\n        //\n        // Now do all text boxes.\n        //\n        Pscen()->Enable(fscenTboxes);\n        Pscen()->Disable(fscenActrs);\n        if (!Pscen()->FGotoFrm(Pscen()->Nfrm()))\n        {\n            Pscen()->Enable(fscenActrs);\n            goto LStopPlaying;\n        }\n        Pscen()->Enable(fscenActrs);\n\n        //\n        // Draw the previous frame\n        //\n        MarkViews();\n\n        //\n        // Update scroll bars\n        //\n        _pmcc->UpdateScrollbars();\n\n        //\n        // Play outstanding sounds\n        //\n        if (FSoundsEnabled())\n        {\n            _pmsq->PlayMsq();\n        }\n        else\n        {\n            _pmsq->FlushMsq();\n        }\n\n        //\n        // Flush to the screen\n        //\n        vpappb->UpdateMarked();\n\n        //\n        // Check for any text box scrolling\n        //\n        //\n        for (itbox = 0;; itbox++)\n        {\n            ptbox = Pscen()->PtboxFromItbox(itbox);\n            AssertNilOrPo(ptbox, 0);\n            if (ptbox == pvNil)\n            {\n                break;\n            }\n\n            if (ptbox->FNeedToScroll())\n            {\n                if (!_clok.FSetAlarm(kdtsScrolling, this))\n                {\n                    goto LStopPlaying;\n                }\n\n                _fScrolling = fTrue;\n                return (fTrue);\n            }\n        }\n\n    LCheckForPause:\n\n        //\n        // Check for a pause\n        //\n        switch (_wit)\n        {\n        case witUntilClick:\n            _wit = witNil;\n            _fPausing = fTrue;\n            pmvu->PauseUntilClick(fTrue);\n            return (fTrue);\n        case witUntilSnd:\n            if (_pmsq->FPlaying(fFalse))\n            {\n                _fPausing = fTrue;\n                if (!_clok.FSetAlarm(0, this))\n                {\n                    goto LStopPlaying;\n                }\n                return (fTrue);\n            }\n\n            _fPausing = fFalse;\n            _wit = witNil;\n            break;\n\n        case witForTime:\n            _wit = witNil;\n            _fPausing = fTrue;\n            _clok.FSetAlarm(_dts, this);\n            return (fTrue);\n        case witNil:\n            _fPausing = fFalse;\n            break;\n        default:\n            Bug(\"Bad Pause type\");\n        }\n    }\n    else\n    {\n        if (_wit == witUntilSnd)\n        {\n            goto LCheckForPause;\n        }\n        else\n        {\n            pmvu->PauseUntilClick(fFalse);\n            _fPausing = fFalse;\n        }\n    }\n\n    //\n    // Advance everything to the next frame.\n    //     Account for time spent between beginning of this routine and\n    //     here.\n    //\n    if (!_clok.FSetAlarm(LwMax(0, kdtimFrame - LwMulDivAway((TsCurrent() - tsCur), kdtimSecond, kdtsSecond)), this, 0,\n                         fTrue))\n    {\n        goto LStopPlaying;\n    }\n\n    Pscen()->Disable(fscenTboxes);\n\n    if (Pscen()->Nfrm() == Pscen()->NfrmLast())\n    {\n\n        if (Iscen() == (Cscen() - 1))\n        {\n            // since this is the last scene/last frame, we want to\n            // fade out music, by setting _vlmOrg we turn off rendering and fade out\n            // music until VlmCur is 0, at which point we go into stop state.\n\n            if (!vpsndm->FPlayingAll()) // there are no sounds playing\n                SetFStopPlaying(fTrue); // there is nothing to fade\n            else\n            {\n                _vlmOrg = vpsndm->VlmCur(); // get the current volume\n                if ((0 == _vlmOrg))         // if there is volume to fade with\n                    SetFStopPlaying(fTrue); // there is nothing to fade\n            }\n            return (fTrue);\n        }\n\n        _trans = Pscen()->Trans();\n\n        if (FSwitchScen(Iscen() + 1))\n        {\n            AssertPo(Pscen(), 0);\n            Pscen()->Disable(fscenTboxes);\n            Pscen()->Enable(fscenPauses);\n            if (!Pscen()->FReplayFrm(fscenPauses | fscenSounds | fscenActrs))\n            {\n                SetFStopPlaying(fTrue);\n                return (fTrue);\n            }\n\n            Pscen()->PlayBkgdSnd();\n        }\n        else\n        {\n            SetFStopPlaying(fTrue);\n            return (fTrue);\n        }\n    }\n    else\n    {\n\n        if (!Pscen()->FGotoFrm(Pscen()->Nfrm() + 1))\n        {\n            SetFStopPlaying(fTrue);\n            return (fTrue);\n        }\n    }\n\n    Pbwld()->Render();\n    _cnfrm++;\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * This sets the costume of an actor.\n *\n * Parameters:\n *\tibprt - Id of the body part to set.\n *  ptag - Pointer to the tag of the costume, if fCustom != fTrue.\n *  cmid - The cmid of the costume, if fCustom == fTrue.\n *  fCustom - Is this a custom costume.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FCostumeActr(long ibprt, PTAG ptag, long cmid, tribool fCustom)\n{\n    AssertThis(0);\n    AssertPo(Pscen(), 0);\n\n    ACTR *pactr;\n\n    //\n    // Get the current actor\n    //\n    pactr = Pscen()->PactrSelected();\n    AssertPo(pactr, 0);\n\n    if (!pactr->FSetCostume(ibprt, ptag, cmid, fCustom))\n    {\n        return (fFalse);\n    }\n\n    SetDirty();\n    InvalViews();\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * This inserts a pause into the scene right now.\n *\n * Parameters:\n *\twit - The type of pause to insert, or witNil to clear pauses.\n *  dts - Number of clock ticks to pause.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FPause(WIT wit, long dts)\n{\n    AssertThis(0);\n    AssertPo(Pscen(), 0);\n\n    if (!Pscen()->FPause(wit, dts))\n    {\n        return (fFalse);\n    }\n\n    SetDirty();\n    return (fTrue);\n}\n\n#ifdef DEBUG\n/******************************************************************************\n    MarkMem\n        Marks memory used by the CMVI\n\n************************************************************ PETED ***********/\nvoid CMVI::MarkMem(void)\n{\n    long iv, ivMac;\n    MVIED mvied;\n    SCEND scend;\n\n    ivMac = pglmvied->IvMac();\n    for (iv = 0; iv < ivMac; iv++)\n    {\n        pglmvied->Get(iv, &mvied);\n        MarkMemObj(mvied.pcrf);\n    }\n    MarkMemObj(pglmvied);\n\n    ivMac = pglscend->IvMac();\n    for (iv = 0; iv < ivMac; iv++)\n    {\n        pglscend->Get(iv, &scend);\n        MarkMemObj(scend.pmbmp);\n    }\n    MarkMemObj(pglscend);\n}\n#endif // DEBUG\n\n/******************************************************************************\n    FAddToCmvi\n        Generates a GL of SCENDs that describes this movie.  A movie client\n        that wishes to makes wholesale changes to a movie may get this GL,\n        rearrange it, including inserting references to new movie files, and\n        pass it back to the movie via FSetCmvi to modify the movie.\n        Adds the movie to the GL of movie descriptors.\n\n    Arguments:\n        PCMVI pcmvi     --  the CMVI to add the movie to\n        long iscendIns  --  the point at which to start inserting scenes\n\n    Returns: fTrue if it was successful, fFalse otherwise\n\n************************************************************ PETED ***********/\nbool MVIE::FAddToCmvi(PCMVI pcmvi, long *piscendIns)\n{\n    AssertThis(0);\n    AssertVarMem(pcmvi);\n    AssertNilOrPo(pcmvi->pglscend, 0);\n\n    long iscen = 0, iscenMac = Cscen(), imvied;\n    SCEND scend;\n    MVIED mvied;\n    PCFL pcfl;\n\n    scend.imvied = ivNil;\n\n#ifdef BUG1929\n    /* Ensure that _pcrfAutoSave points to the temp file, not the original movie file */\n    if (!_FUseTempFile())\n        goto LFail;\n#endif // BUG1929\n\n    if (!FAutoSave(pvNil, fFalse))\n        goto LFail;\n\n    if ((pcmvi->pglscend == pvNil) && (pcmvi->pglscend = GL::PglNew(size(SCEND))) == pvNil)\n    {\n        goto LFail;\n    }\n\n    if ((pcmvi->pglmvied == pvNil) && (pcmvi->pglmvied = GL::PglNew(size(MVIED))) == pvNil)\n    {\n        goto LFail;\n    }\n\n    mvied.pcrf = _pcrfAutoSave;\n    mvied.cno = _cno;\n    mvied.aridLim = _aridLim;\n    if (!pcmvi->pglmvied->FAdd(&mvied, &imvied))\n        goto LFail;\n    scend.imvied = imvied;\n    mvied.pcrf->AddRef();\n\n    pcfl = mvied.pcrf->Pcfl();\n    scend.fNuked = fFalse;\n\n    for (iscen = 0; iscen < iscenMac; iscen++, (*piscendIns)++)\n    {\n        bool fSuccess;\n        KID kid;\n\n        /* Get CNO */\n        AssertDo(pcfl->FGetKidChidCtg(kctgMvie, _cno, iscen, kctgScen, &kid), \"Not enough scene chunks for movie\");\n        scend.cno = kid.cki.cno;\n        scend.chid = iscen;\n        scend.pmbmp = pvNil;\n\n        /* Get PMBMP and TRANS from the scene */\n        if (iscen != Iscen())\n        {\n            BLCK blck;\n\n            if (!SCEN::FTransOnFile(mvied.pcrf, scend.cno, &scend.trans))\n                goto LFail;\n\n            AssertDo(pcfl->FGetKidChidCtg(kctgScen, scend.cno, 0, kctgThumbMbmp, &kid),\n                     \"Scene doesn't have a thumbnail\");\n            if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n                goto LFail;\n            if ((scend.pmbmp = MBMP::PmbmpRead(&blck)) == pvNil)\n                goto LFail;\n        }\n        else\n        {\n            scend.trans = Pscen()->Trans();\n            if ((scend.pmbmp = Pscen()->PmbmpThumbnail()) == pvNil)\n                goto LFail;\n            scend.pmbmp->AddRef();\n        }\n\n        /* Add to the list */\n        fSuccess = _FInsertScend(pcmvi->pglscend, *piscendIns, &scend);\n        ReleasePpo(&scend.pmbmp);\n        if (!fSuccess)\n            goto LFail;\n    }\n\n    return fTrue;\nLFail:\n    while (iscen--)\n        _DeleteScend(pcmvi->pglscend, --(*piscendIns));\n    if (pcmvi->pglscend != pvNil && pcmvi->pglscend->IvMac() == 0)\n        ReleasePpo(&pcmvi->pglscend);\n    if (scend.imvied != ivNil)\n    {\n        ReleasePpo(&mvied.pcrf);\n        pcmvi->pglmvied->Delete(scend.imvied);\n    }\n    if (pcmvi->pglmvied != pvNil && pcmvi->pglmvied->IvMac() == 0)\n        ReleasePpo(&pcmvi->pglmvied);\n    return fFalse;\n}\n\n/******************************************************************************\n    FSetCmvi\n        Rebuilds the movie based on the given CMVI.  Any scenes\n        marked for deletion are disowned by their MVIE chunk.  Any scenes that\n        refer to a movie file other than this MVIE's auto save file are\n        copied into this MVIE's auto save file.  SCEN chunks are given new\n        CHIDs reflecting their new position within the movie.  The non-nuked\n        scenes must appear in the GL in the order that they appear in the\n        movie; other than that, there is no restriction on the order of the\n        scenes (ie, nuked scenes can appear anywhere in the GL, even though\n        currently the only client of this API keeps the nuked scenes at the\n        end).\n\n    Arguments:\n        PCMVI pcmvi -- the CMVI that describes the new movie structure\n\n    Returns: fTrue if it could accomplish all of the above, fFalse otherwise\n\n************************************************************ PETED ***********/\nbool MVIE::FSetCmvi(PCMVI pcmvi)\n{\n    AssertThis(0);\n    AssertVarMem(pcmvi);\n    AssertPo(pcmvi->pglmvied, 0);\n    AssertPo(pcmvi->pglscend, 0);\n\n    bool fRet = fFalse;\n    long iscend, iscendMac = pcmvi->pglscend->IvMac();\n    long iscenOld = Iscen();\n    long imvied, imviedMac = pcmvi->pglmvied->IvMac();\n    long aridMin = 0;\n    CHID chidScen = 0;\n    PCFL pcfl = _pcrfAutoSave->Pcfl();\n    PCRF pcrf = _pcrfAutoSave;\n    PGL pglmviedNew;\n\n    pglmviedNew = pcmvi->pglmvied->PglDup();\n    if (pglmviedNew == pvNil)\n        goto LFail;\n\n    /* Copy all the external movie chunks into this movie */\n    for (imvied = 0; imvied < imviedMac; imvied++)\n    {\n        MVIED mvied;\n\n        pglmviedNew->Get(imvied, &mvied);\n\n        if (imvied > 0)\n        {\n            if (!mvied.pcrf->Pcfl()->FClone(kctgMvie, mvied.cno, pcfl, &mvied.cno))\n                goto LFail;\n            if (!_FAddMvieToRollCall(mvied.cno, aridMin))\n                goto LFail;\n            mvied.pcrf = pcrf;\n            mvied.pcrf->AddRef();\n            pglmviedNew->Put(imvied, &mvied);\n        }\n        else\n        {\n            Assert(mvied.pcrf == pcrf, \"Invalid GL of MVIEDs\");\n            Assert(mvied.cno == _cno, \"Invalid GL of MVIEDs\");\n        }\n        aridMin += mvied.aridLim;\n    }\n\n    for (iscend = 0; iscend < iscendMac; iscend++)\n    {\n        CNO cnoScen = cnoNil;\n        SCEND scend;\n        MVIED mvied;\n\n        pcmvi->pglscend->Get(iscend, &scend);\n        pglmviedNew->Get(scend.imvied, &mvied);\n\n        /* Was this scene imported? */\n        if (scend.imvied > 0)\n        {\n            KID kid;\n\n            if (!pcfl->FGetKidChidCtg(kctgMvie, mvied.cno, scend.chid, kctgScen, &kid))\n            {\n                goto LFail;\n            }\n            cnoScen = kid.cki.cno;\n\n            /* If so, only bother keeping it if the user didn't delete it */\n            if (!scend.fNuked)\n            {\n                PSCEN pscen;\n\n                if (!pcfl->FAdoptChild(kctgMvie, _cno, kctgScen, cnoScen, chidScen++))\n                    goto LFail;\n                if (!_FAdoptMsndInMvie(pcfl, cnoScen))\n                    goto LFail;\n                if ((pscen = SCEN::PscenRead(this, pcrf, cnoScen)) == pvNil || !pscen->FPlayStartEvents(fTrue) ||\n                    !pscen->FAddActrsToRollCall())\n                {\n                    PushErc(ercSocNoImportRollCall);\n                }\n\n                Pmcc()->EnableActorTools();\n                Pmcc()->EnableTboxTools();\n                ReleasePpo(&pscen);\n            }\n        }\n        else\n        {\n            if (scend.fNuked)\n            {\n                PSCEN pscen;\n\n                if (scend.chid != (CHID)iscenOld)\n                {\n                    pscen = SCEN::PscenRead(this, pcrf, scend.cno);\n                    if (pscen == pvNil || !pscen->FPlayStartEvents(fTrue))\n                        PushErc(ercSocNoNukeRollCall);\n                }\n                else\n                {\n                    pscen = _pscenOpen;\n                    pscen->AddRef();\n                }\n\n                if (pscen != pvNil)\n                {\n                    pscen->RemActrsFromRollCall(fTrue);\n                    ReleasePpo(&pscen);\n                }\n                pcfl->DeleteChild(kctgMvie, _cno, kctgScen, scend.cno, scend.chid);\n            }\n            else\n            {\n                /* Set the CHID to be the current scene number */\n                cnoScen = scend.cno;\n                pcfl->ChangeChid(kctgMvie, _cno, kctgScen, scend.cno, scend.chid, chidScen++);\n            }\n        }\n\n        /* If we didn't delete the scene, go ahead and update its transition */\n        if (scend.chid != (CHID)iscenOld || scend.imvied != 0)\n        {\n            if (!scend.fNuked)\n            {\n                Assert(mvied.pcrf == pcrf, \"Scene's MVIE didn't get copied\");\n                Assert(cnoScen != cnoNil, \"Didn't set the cnoScen\");\n                if (!SCEN::FSetTransOnFile(pcrf, cnoScen, scend.trans))\n                    goto LFail;\n            }\n        }\n        else\n        {\n            if (scend.fNuked)\n            {\n                /* Basically, do an _FCloseCurrentScene w/out the autosave */\n                SCEN::Close(&_pscenOpen);\n                _iscen = ivNil;\n            }\n            else\n            {\n                /* If this is the scene that *used* to be Iscen(), change the\n                    transition in memory rather than on file */\n                Pscen()->SetTransitionCore(scend.trans);\n                _iscen = iscend;\n            }\n        }\n    }\n\n    _cscen = chidScen;\n    _aridLim = aridMin;\n    SetDirty();\n    if (_cscen == 0)\n    {\n        Assert(_iscen == ivNil, 0);\n        _pmcc->SceneNuked();\n    }\n    InvalViewsAndScb();\n    Pmcc()->UpdateRollCall();\n\n#ifdef DEBUG\n    {\n        long ckid = pcfl->Ckid(kctgMvie, _cno);\n        KID kid;\n        CHID chidLast = chidNil;\n\n        for (long ikid = 0; ikid < ckid; ikid++)\n        {\n            if (pcfl->FGetKid(kctgMvie, _cno, ikid, &kid))\n            {\n                if (kid.cki.ctg == kctgScen)\n                {\n                    Assert(chidLast == chidNil || kid.chid > chidLast, \"Found duplicate CHID in scene children\");\n                    chidLast = kid.chid;\n                }\n            }\n            else\n            {\n                Bug(\"Can't guarantee validity of MVIE's SCEN children\");\n                break;\n            }\n        }\n    }\n#endif /* DEBUG */\n\n    fRet = fTrue;\nLFail:\n    if (pglmviedNew != pvNil)\n    {\n        /* Remove any copied movies; leave the first MVIED alone */\n        while (imvied-- > 1)\n        {\n            MVIED mvied;\n\n            pglmviedNew->Get(imvied, &mvied);\n            Assert(mvied.pcrf == pcrf, \"Invalid MVIED during cleanup\");\n            pcfl->Delete(kctgMvie, mvied.cno);\n            ReleasePpo(&mvied.pcrf);\n        }\n        ReleasePpo(&pglmviedNew);\n    }\n    return fRet;\n}\n\n/******************************************************************************\n    _FAddMvieToRollCall\n        Updates roll call (including remapping arids for the actors found in\n        the new movie) for a given MVIE that's just been copied into this\n        movie's file.\n\n    Arguments:\n        CNO cno       -- the CNO of the copied movie\n        long aridMin  -- the new base arid for this movie's actors\n\n    Returns: fTrue if it succeeds, fFalse otherwise\n\n************************************************************ PETED ***********/\nbool MVIE::_FAddMvieToRollCall(CNO cno, long aridMin)\n{\n    AssertThis(0);\n\n    long imactr, imactrMac, icnoMac = 0;\n    PCFL pcfl = _pcrfAutoSave->Pcfl();\n    PGST pgstmactr = pvNil;\n\n    /* Update the roll call GST */\n    if (!FReadRollCall(_pcrfAutoSave, cno, &pgstmactr))\n    {\n        pgstmactr = pvNil;\n        goto LFail;\n    }\n    imactrMac = pgstmactr->IvMac();\n    for (imactr = 0; imactr < imactrMac; imactr++)\n    {\n        STN stn;\n        MACTR mactr;\n\n        pgstmactr->GetStn(imactr, &stn);\n        pgstmactr->GetExtra(imactr, &mactr);\n\n        mactr.arid += aridMin;\n        mactr.cactRef = 0;\n        if (!_pgstmactr->FAddStn(&stn, &mactr))\n            goto LFail;\n    }\n\n    /* Remap all the arids on the file */\n    if (aridMin > 0)\n    {\n        ulong grfcge, grfcgeIn = fcgeNil;\n        PGL pglcno;\n        CKI ckiParLast = {ctgNil, cnoNil}, ckiPar;\n        KID kid;\n        CGE cge;\n\n        if ((pglcno = GL::PglNew(size(CNO))) == pvNil)\n            goto LFail;\n        cge.Init(pcfl, kctgMvie, cno);\n        while (cge.FNextKid(&kid, &ckiPar, &grfcge, fcgeNil))\n        {\n            if (grfcge & fcgePre)\n            {\n\n                /* If we've found an ACTR chunk, remap its arid */\n                if (kid.cki.ctg == kctgActr)\n                {\n                    long icno;\n                    CNO cnoActr;\n\n                    /* Only do a given chunk once */\n                    Assert(icnoMac == pglcno->IvMac(), \"icnoMac isn't up-to-date\");\n                    for (icno = 0; icno < icnoMac; icno++)\n                    {\n                        pglcno->Get(icno, &cnoActr);\n                        if (kid.cki.cno == cnoActr)\n                            break;\n                    }\n                    if (icno < icnoMac)\n                        continue;\n                    if (!pglcno->FAdd(&kid.cki.cno))\n                        goto LFail1;\n\n                    /* Change the arid */\n                    if (!ACTR::FAdjustAridOnFile(pcfl, kid.cki.cno, aridMin))\n                    {\n                        /* Don't bother trying to fix the arids on file; the caller\n                            should be deleting the copied MVIE chunk anyway */\n                    LFail1:\n                        ReleasePpo(&pglcno);\n                        goto LFail;\n                    }\n                    icnoMac++;\n\n                    /* Once we're at an ACTR chunk, set up so that we don't\n                        enumerate down again until returning to our parent's\n                        next sibling */\n                    ckiParLast = ckiPar;\n                    grfcgeIn = fcgeSkipToSib;\n                }\n            }\n            else if (grfcge & fcgePost && grfcgeIn & fcgeSkipToSib)\n            {\n                if (ckiParLast.ctg != ckiPar.ctg || ckiParLast.cno != ckiPar.cno)\n                    grfcgeIn = fcgeNil;\n            }\n        }\n        ReleasePpo(&pglcno);\n    }\n\n    ReleasePpo(&pgstmactr);\n\n    return fTrue;\nLFail:\n    /* NOTE: I could use more variables and make the loops below faster,\n        but this is a failure case so I'm not very concerned about\n        performance here */\n    if (pgstmactr != pvNil)\n    {\n        MACTR mactr;\n\n        /* Remove added entries to the movie's roll call */\n        imactrMac = _pgstmactr->IvMac();\n        while (imactr--)\n        {\n            _pgstmactr->GetExtra(--imactrMac, &mactr);\n            vptagm->CloseTag(&mactr.tagTmpl);\n            _pgstmactr->Delete(imactrMac);\n            pgstmactr->Delete(imactr);\n        }\n\n        /* Close any other uncopied tags */\n        imactrMac = pgstmactr->IvMac();\n        while (imactrMac--)\n        {\n            pgstmactr->GetExtra(imactrMac, &mactr);\n            vptagm->CloseTag(&mactr.tagTmpl);\n        }\n        ReleasePpo(&pgstmactr);\n    }\n    return fFalse;\n}\n\n/******************************************************************************\n    EmptyCmvi\n        Frees up the memory used by the CMVI.  For each scene in the\n        GL of SCENDs, releases memory that the SCEND referred to.  Likewise\n        for each MVIED in the GL of MVIEDs.\n\n    Arguments:\n        PCMVI pcmvi -- the CMVI to empty\n\n    Returns: Sets the client's pointer to pvNil when finished\n\n************************************************************ PETED ***********/\nvoid CMVI::Empty(void)\n{\n    AssertPo(pglscend, 0);\n    AssertPo(pglmvied, 0);\n\n    PGL pgl;\n\n    if ((pgl = pglscend) != pvNil)\n    {\n        long iscend = pgl->IvMac();\n\n        while (iscend-- > 0)\n        {\n            SCEND scend;\n\n            pgl->Get(iscend, &scend);\n            ReleasePpo(&scend.pmbmp);\n        }\n        ReleasePpo(&pgl);\n        pglscend = pvNil;\n    }\n\n    if ((pgl = pglmvied) != pvNil)\n    {\n        long imvied = pgl->IvMac();\n\n        while (imvied-- > 0)\n        {\n            MVIED mvied;\n\n            pgl->Get(imvied, &mvied);\n            ReleasePpo(&mvied.pcrf);\n        }\n        ReleasePpo(&pgl);\n        pglmvied = pvNil;\n    }\n}\n\n/******************************************************************************\n    _FInsertScend\n        Inserts the given SCEND into a GL of SCENDs that was created by this\n        movie.\n\n    Arguments:\n        PGL pglscend  -- the GL of SCENDs to insert into\n        long iscend   -- the position at which to insert this SCEND\n        PSCEND pscend -- the SCEND to insert\n\n    Returns: fTrue if successful, fFalse otherwise\n\n************************************************************ PETED ***********/\nbool MVIE::_FInsertScend(PGL pglscend, long iscend, PSCEND pscend)\n{\n    AssertPo(pglscend, 0);\n    AssertPo(pscend->pmbmp, 0);\n\n    if (!pglscend->FInsert(iscend, pscend))\n        return fFalse;\n    pscend->pmbmp->AddRef();\n    return fTrue;\n}\n\n/******************************************************************************\n    _DeleteScend\n        Deletes the given SCEND from a GL of SCENDs that was created by this\n        movie.\n\n    Arguments:\n        PGL pglscend -- the GL of SCENDs to delete from\n        long iscend  -- which SCEND to delete\n\n************************************************************ PETED ***********/\nvoid MVIE::_DeleteScend(PGL pglscend, long iscend)\n{\n    AssertPo(pglscend, 0);\n    AssertIn(iscend, 0, pglscend->IvMac());\n\n    SCEND scend;\n\n    pglscend->Get(iscend, &scend);\n    AssertPo(scend.pmbmp, 0);\n    pglscend->Delete(iscend);\n    ReleasePpo(&scend.pmbmp);\n}\n\n/***************************************************************************\n *\n * This sets the transition type for the current scene.\n *\n * Parameters:\n *\ttrans - The transition type.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FSetTransition(TRANS trans)\n{\n    AssertThis(0);\n    AssertIn(trans, 0, transLim);\n    AssertPo(Pscen(), 0);\n\n    if (!Pscen()->FSetTransition(trans))\n    {\n        return (fFalse);\n    }\n\n    SetDirty();\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * This pastes an actor into the movie.\n *\n * Parameters:\n *\tpactr - A pointer to the actor to paste.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FPasteActr(PACTR pactr)\n{\n    AssertThis(0);\n    AssertPo(pactr, 0);\n    AssertPo(Pscen(), 0);\n\n    PMVU pmvu;\n\n    pmvu = (PMVU)PddgGet(0);\n    if (pmvu == pvNil)\n    {\n        return (fFalse);\n    }\n    AssertPo(pmvu, 0);\n\n    //\n    // Paste this actor in and select it.\n    //\n    if (!Pscen()->FPasteActr(pactr))\n    {\n        return (fFalse);\n    }\n\n    Pscen()->SelectActr(pactr);\n\n    //\n    // Positioning a pasted actor must translate all subroutes\n    //\n    pmvu->StartPlaceActor(fTrue);\n\n    SetDirty();\n    InvalViewsAndScb();\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * This pastes an actor path onto the selected actor.\n *\n * Parameters:\n *\tpactr - A pointer to the actor to paste from.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool MVIE::FPasteActrPath(PACTR pactr)\n{\n    AssertThis(0);\n    AssertPo(pactr, 0);\n    AssertPo(Pscen(), 0);\n    AssertNilOrPo(Pscen()->PactrSelected(), 0);\n\n    PACTR pactrDup;\n\n    // REVIEW SeanSe(seanse): This is wrong.  Move the undo stuff into\n    //     ACTR::FPasteRte() and make ACTR::FPasteRte into FPasteRteCore.\n    if (Pscen()->PactrSelected() == pvNil)\n    {\n        PushErc(ercSocNoActrSelected);\n        return (fFalse);\n    }\n\n    if (!Pscen()->PactrSelected()->FDup(&pactrDup))\n    {\n        return (fFalse);\n    }\n\n    //\n    // Paste this actor in and select it.\n    //\n    if (!Pscen()->PactrSelected()->FPasteRte(pactr))\n    {\n        ReleasePpo(&pactrDup);\n        return (fFalse);\n    }\n\n    if (!Pscen()->PactrSelected()->FCreateUndo(pactrDup))\n    {\n        Pscen()->PactrSelected()->Restore(pactrDup);\n        ReleasePpo(&pactrDup);\n        return (fFalse);\n    }\n\n    SetDirty();\n    InvalViewsAndScb();\n    ReleasePpo(&pactrDup);\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * This invalidates all the views on the movie.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVIE::InvalViews(void)\n{\n    AssertThis(0);\n\n    long ipddg;\n    PDDG pddg;\n\n    for (ipddg = 0; pvNil != (pddg = PddgGet(ipddg)); ipddg++)\n    {\n        pddg->InvalRc(pvNil, pddg == PddgActive() ? kginMark : kginSysInval);\n    }\n}\n\n/***************************************************************************\n *\n * This invalidates scrollbars and all the views on the movie.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVIE::InvalViewsAndScb(void)\n{\n    AssertThis(0);\n\n    _pmcc->UpdateScrollbars();\n    InvalViews();\n}\n\n/***************************************************************************\n *\n * This updates all the views on the movie, updates will happen\n * asap.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVIE::MarkViews(void)\n{\n    AssertThis(0);\n\n    long ipddg;\n    PDDG pddg;\n\n    //\n    // Need this call in order to mark correctly the changed regions.\n    //\n    Pbwld()->Render();\n\n#ifdef DEBUG\n    if (FWriteBmps())\n    {\n        FNI fni;\n        STN stn;\n\n        if (stn.FFormatSz(PszLit(\"cel%04d.dib\"), _lwBmp++))\n        {\n            if (fni.FBuildFromPath(&stn))\n            {\n                if (!Pbwld()->FWriteBmp(&fni))\n                    SetFWriteBmps(fFalse);\n            }\n        }\n    }\n#endif // DEBUG\n\n    for (ipddg = 0; pvNil != (pddg = PddgGet(ipddg)); ipddg++)\n    {\n        Pbwld()->MarkRenderedRegn(pddg, 0, 0);\n    }\n}\n\n/***************************************************************************\n *\n * This returns the current name of the movie.\n *\n * Parameters:\n *\tpstnTitle - An stn to copy the name into.\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVIE::GetName(PSTN pstnTitle)\n{\n    AssertThis(0);\n    AssertPo(pstnTitle, 0);\n\n    *pstnTitle = _stnTitle;\n}\n\n/******************************************************************************\n    ResetTitle\n        Resets the movie title to whatever it's normal default would be (either\n        from the filename or from the MCC string table).\n************************************************************ PETED ***********/\nvoid MVIE::ResetTitle(void)\n{\n    AssertThis(0);\n\n    FNI fni;\n\n    _stnTitle.SetNil();\n    _SetTitle(FGetFni(&fni) ? &fni : pvNil);\n}\n\n/***************************************************************************\n *\n * Updates the external action menu.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVIE::BuildActionMenu()\n{\n    AssertThis(0);\n    long arid = aridNil;\n\n    if (pvNil != _pscenOpen && pvNil != _pscenOpen->PactrSelected())\n    {\n        arid = _pscenOpen->PactrSelected()->Arid();\n    }\n    _pmcc->ActorSelected(arid);\n    _pmcc->UpdateAction();\n}\n\nconst long kdtsTrans = 4 * kdtsSecond;\n\n/***************************************************************************\n *\n * Does a transition.  Note that the rectangles should be the exact size\n * of the rendered area in order to get pushing, dissolve, etc to look perfect.\n *\n * Note: A cool fun number fact.  If you take a number from 1 - (klwPrime - 1),\n * multiply by klwPrimeRoot and modulo the result by klwPrime, you will get\n * a sequence of numbers which hits every number 1->(klwPrime-1) w/o repeating\n * until every number is hit.  This fact is used to create the dissolve effect.\n *\n * Parameters:\n *\tpgnvDst - The destination GNV.\n *\tpgnvSrc - The source GNV.\n *\tprcDst - The clipping rectangle in the destination.\n *\tprcSrc - The clipping rectangle in the source.\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVIE::DoTrans(PGNV pgnvDst, PGNV pgnvSrc, RC *prcDst, RC *prcSrc)\n{\n    AssertThis(0);\n    AssertPo(pgnvDst, 0);\n    AssertPo(pgnvSrc, 0);\n    AssertVarMem(prcDst);\n    AssertVarMem(prcSrc);\n\n    PGL pglclrSystem = pvNil;\n    PGL pglclrBkgd = pvNil;\n    long iclrMin;\n\n    pglclrSystem = GPT::PglclrGetPalette();\n    if (Pscen() == pvNil || !Pscen()->Pbkgd()->FGetPalette(&pglclrBkgd, &iclrMin))\n    {\n        pglclrBkgd = pvNil;\n    }\n    if (pvNil != pglclrSystem && pvNil != pglclrBkgd)\n    {\n        Assert(pglclrBkgd->IvMac() + iclrMin <= pglclrSystem->IvMac(), \"Background palette too large\");\n        CopyPb(pglclrBkgd->QvGet(0), pglclrSystem->QvGet(iclrMin), LwMul(size(CLR), pglclrBkgd->IvMac()));\n    }\n\n    switch (_trans)\n    {\n    case transBlack:\n        pgnvDst->FillRc(prcDst, kacrBlack);\n        break;\n\n    case transFadeToBlack:\n        pgnvDst->Dissolve(0, 0, kacrBlack, pgnvSrc, prcSrc, prcDst, kdtsTrans / 2, pglclrSystem);\n        break;\n\n    case transFadeToWhite:\n        pgnvDst->Dissolve(0, 0, kacrWhite, pgnvSrc, prcSrc, prcDst, kdtsTrans / 2, pglclrSystem);\n        break;\n\n    case transDissolve:\n        pgnvDst->Dissolve(0, 0, kacrClear, pgnvSrc, prcSrc, prcDst, kdtsTrans, pglclrSystem);\n        break;\n\n    case transCut:\n        pgnvDst->FillRc(prcDst, kacrBlack);\n        GPT::SetActiveColors(pglclrSystem, fpalIdentity);\n        pgnvDst->CopyPixels(pgnvSrc, prcSrc, prcDst);\n        break;\n\n    default:\n        Bug(\"bad trans\");\n        break;\n    }\n\n    ReleasePpo(&pglclrSystem);\n    ReleasePpo(&pglclrBkgd);\n\n    _trans = transNil;\n}\n\n/***************************************************************************\n *\n * Used to query if an actor or tbox exists.\n *\n * Parameters:\n *\tlwType - 1 if searching for an actor, else 0.\n *  lwId - Arid or Itbox to search for.\n *\n * Returns:\n *  1 if exists, else 0.\n *\n **************************************************************************/\nlong MVIE::LwQueryExists(long lwType, long lwId)\n{\n    AssertThis(0);\n    AssertIn(lwType, 0, 2);\n\n    if (Pscen() == pvNil)\n    {\n        return (0);\n    }\n    AssertPo(Pscen(), 0);\n\n    if (lwType == 1)\n    {\n        return (Pscen()->PactrFromArid(lwId) != pvNil ? 1 : 0);\n    }\n\n    return (Pscen()->PtboxFromItbox(lwId) != pvNil ? 1 : 0);\n}\n\n/***************************************************************************\n *\n * Used to query where an actor or tbox exists.\n *\n * Parameters:\n *\tlwType - 1 if searching for an actor, else 0.\n *  lwId - Arid or Itbox to search for.\n *\n * Returns:\n *  -1 if nonexistent or non-visible, else x in high word, y in low word.\n *\n **************************************************************************/\nlong MVIE::LwQueryLocation(long lwType, long lwId)\n{\n    AssertThis(0);\n    AssertIn(lwType, 0, 2);\n\n    PACTR pactr;\n    PTBOX ptbox;\n    long xp, yp;\n    RC rc;\n\n    if (Pscen() == pvNil)\n    {\n        return (-1);\n    }\n    AssertPo(Pscen(), 0);\n\n    if (lwType == 1)\n    {\n        RC rcBounds;\n        long cactGuessPt = 0;\n        RND rnd;\n        long ibset;\n\n        pactr = Pscen()->PactrFromArid(lwId);\n        if (pactr == pvNil)\n        {\n            return (-1);\n        }\n\n        AssertPo(pactr, 0);\n        if (!pactr->FIsInView())\n        {\n            return (-1);\n        }\n\n        pactr->GetCenter(&xp, &yp);\n        pactr->GetRcBounds(&rcBounds);\n        // The center of the actor may not be a selectable point (as in\n        // an arched spletter), so try some random points if the center\n        // point doesn't select the actor.\n        while (pactr != Pscen()->PactrFromPt(xp, yp, &ibset) && cactGuessPt < 1000)\n        {\n            cactGuessPt++;\n            xp = rnd.LwNext(rcBounds.Dxp() + rcBounds.xpLeft);\n            yp = rnd.LwNext(rcBounds.Dyp() + rcBounds.ypTop);\n        }\n        if (cactGuessPt == 1000)\n        {\n            xp = -1;\n            yp = -1;\n        }\n        return ((xp << 16) | yp);\n    }\n\n    ptbox = Pscen()->PtboxFromItbox(lwId);\n    if (ptbox == pvNil)\n    {\n        return (-1);\n    }\n\n    AssertPo(ptbox, 0);\n    if (!ptbox->FIsVisible())\n    {\n        return (-1);\n    }\n\n    ptbox->GetRc(&rc);\n    return ((rc.xpLeft << 16) | rc.ypTop);\n}\n\n/***************************************************************************\n *\n * Used to set the position within the movie.\n *\n * Parameters:\n *\tlwScene - Scene to go to.\n *  lwFrame - Frame to go to.\n *\n * Returns:\n *  0 if successful, else -1.\n *\n **************************************************************************/\nlong MVIE::LwSetMoviePos(long lwScene, long lwFrame)\n{\n    AssertThis(0);\n\n    if (!FSwitchScen(lwScene))\n    {\n        return (-1);\n    }\n\n    if (!Pscen()->FGotoFrm(lwFrame))\n    {\n        return (-1);\n    }\n\n    InvalViewsAndScb();\n\n    return (0);\n}\n\n/***************************************************************************\n *\n * Unused user sounds in this movie?\n *\n * Parms:\n *     bool pfHaveValid -- bool to take whether any of the unused sounds were\n *                         actually usable\n **************************************************************************/\n\nbool MVIE::FUnusedSndsUser(bool *pfHaveValid)\n{\n    AssertThis(0);\n    AssertNilOrVarMem(pfHaveValid);\n\n    bool fUnused = fFalse;\n    long icki, ccki;\n    PCFL pcfl;\n\n    if (pfHaveValid != pvNil)\n        *pfHaveValid = fFalse;\n\n    if (pvNil == _pcrfAutoSave)\n        return fFalse;\n\n    pcfl = _pcrfAutoSave->Pcfl();\n    ccki = pcfl->CckiCtg(kctgMsnd);\n    for (icki = 0; icki < ccki; icki++)\n    {\n        CKI cki;\n        KID kid;\n\n        AssertDo(pcfl->FGetCkiCtg(kctgMsnd, icki, &cki), \"Should never fail\");\n        Assert(_FIsChild(pcfl, cki.ctg, cki.cno), \"Not a child of MVIE chunk\");\n        if (pcfl->CckiRef(cki.ctg, cki.cno) < 2)\n        {\n            fUnused = fTrue;\n            if (pfHaveValid != pvNil)\n            {\n                if (pcfl->FGetKidChid(cki.ctg, cki.cno, kchidSnd, &kid))\n                {\n                    *pfHaveValid = fTrue;\n                    break;\n                }\n            }\n            else\n                break;\n        }\n    }\n    return fUnused;\n}\n\n/***************************************************************************\n *\n * Used to set the title of the movie, based on a file name.\n *\n * Parameters:\n *  pfni - File name.\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVIE::_SetTitle(PFNI pfni)\n{\n    AssertThis(0);\n\n    achar *pch;\n\n    if (pfni == pvNil)\n    {\n        if (_stnTitle.Cch() == 0)\n        {\n            Pmcc()->GetStn(idsEngineDefaultTitle, &_stnTitle);\n            Pmcc()->UpdateTitle(&_stnTitle);\n        }\n        return;\n    }\n\n    pfni->GetLeaf(&_stnTitle);\n\n    for (pch = _stnTitle.Psz() + _stnTitle.Cch(); (pch > _stnTitle.Psz()) && (*pch != ChLit('.')); pch--)\n    {\n    }\n\n    if (*pch == ChLit('.'))\n    {\n        _stnTitle.Delete(pch - _stnTitle.Psz());\n    }\n\n    if (_stnTitle.Cch() == 0)\n    {\n        Pmcc()->GetStn(idsEngineDefaultTitle, &_stnTitle);\n    }\n\n    Pmcc()->UpdateTitle(&_stnTitle);\n}\n\n//\n//\n//\n//  BEGIN MVU GOODIES\n//\n//\n//\n\nBEGIN_CMD_MAP(MVU, DDG)\nON_CID_GEN(cidCopyRoute, &MVU::FCmdClip, pvNil)\nON_CID_GEN(cidCutTool, &MVU::FCmdClip, pvNil)\nON_CID_GEN(cidShiftCut, &MVU::FCmdClip, pvNil)\nON_CID_GEN(cidCopyTool, &MVU::FCmdClip, pvNil)\nON_CID_GEN(cidShiftCopy, &MVU::FCmdClip, pvNil)\nON_CID_GEN(cidPasteTool, &MVU::FCmdClip, pvNil)\nON_CID_GEN(cidClose, pvNil, pvNil)\nON_CID_GEN(cidSave, &MVU::FCmdSave, pvNil)\nON_CID_GEN(cidSaveAs, &MVU::FCmdSave, pvNil)\nON_CID_GEN(cidSaveCopy, &MVU::FCmdSave, pvNil)\nON_CID_GEN(cidIdle, &MVU::FCmdIdle, pvNil)\nON_CID_GEN(cidRollOff, &MVU::FCmdRollOff, pvNil)\nEND_CMD_MAP_NIL()\n\nRTCLASS(MVU)\n\n/****************************************************\n *\n * Destructor for movie view objects\n *\n ****************************************************/\nMVU::~MVU(void)\n{\n    if (_tagTool.sid != ksidInvalid)\n        TAGM::CloseTag(&_tagTool);\n}\n\n/***************************************************************************\n *\n * Create a new mvu.\n *\n * Parameters:\n *\tpmvie - Pointer to the creating movie.\n *  pgcb - Pointer to the creation block describing placement, etc.\n *\tdxp - Width of the rendered area.\n *\tdyp - Height of the rendered area.\n *\n * Returns:\n *  A pointer to the view, otw pvNil on failure\n *\n ***************************************************************************/\nMVU *MVU::PmvuNew(PMVIE pmvie, PGCB pgcb, long dxp, long dyp)\n{\n    AssertPo(pmvie, 0);\n    AssertVarMem(pgcb);\n\n    MVU *pmvu;\n    BRS rgr[3][3] = {{rOne, rZero, rZero}, {rZero, rZero, rOne}, {rZero, -rOne, rZero}};\n\n    //\n    // Create the new view\n    //\n    if ((pmvu = NewObj MVU(pmvie, pgcb)) == pvNil)\n        return pvNil;\n\n    //\n    // Init it\n    //\n    if (!pmvu->_FInit())\n    {\n        ReleasePpo(&pmvu);\n        return (pvNil);\n    }\n\n    CopyPb(rgr, pmvu->_rgrAxis, size(rgr));\n    pmvu->_fRecordDefault = fTrue;\n    pmvu->_fRespectGround = fFalse;\n    pmvu->_dxp = dxp;\n    pmvu->_dyp = dyp;\n    pmvu->_tool = toolCompose;\n    pmvu->_tagTool.sid = ksidInvalid;\n\n    //\n    // Make this the active view\n    //\n    pmvu->Activate(fTrue);\n    return pmvu;\n}\n\n/***************************************************************************\n *\n * Set the tool type\n *\n * Parameters:\n *\ttool - The new tool to use.\n *\n * Returns:\n *  None.\n *\n ***************************************************************************/\nvoid MVU::SetTool(long tool)\n{\n    AssertThis(0);\n    AssertPo(Pmvie(), 0);\n    AssertNilOrPo(Pmvie()->Pscen(), 0);\n\n    long lwMode; // -1 = Textbox mode, 0 = either mode, 1 = Actor mode\n    PTBOX ptbox = pvNil;\n    PACTR pactr = pvNil;\n\n    if (Pmvie()->Pscen() != pvNil)\n    {\n\n        AssertNilOrPo(Pmvie()->Pscen()->PactrSelected(), 0);\n        AssertNilOrPo(Pmvie()->Pscen()->PtboxSelected(), 0);\n\n        pactr = Pmvie()->Pscen()->PactrSelected();\n        ptbox = Pmvie()->Pscen()->PtboxSelected();\n\n        if (pactr != pvNil)\n        {\n            _ptmplTool = pactr->Ptmpl();\n            AssertPo(_ptmplTool, 0);\n        }\n    }\n    else\n    {\n        _ptmplTool = pvNil;\n    }\n\n    //\n    // Get old tool type\n    //\n    switch (_tool)\n    {\n    case toolSoonerLater:\n\n        lwMode = 1;\n        if (tool != toolSoonerLater)\n        {\n            Pmvie()->Pmcc()->EndSoonerLater();\n\n            if ((pactr != pvNil) && pactr->FTimeFrozen())\n            {\n                pactr->SetTimeFreeze(fFalse);\n                pactr->Hilite();\n                Pmvie()->InvalViewsAndScb();\n            }\n        }\n        break;\n\n    case toolActorNuke:\n    case toolCopyObject:\n    case toolCopyRte:\n    case toolCutObject:\n    case toolPasteObject:\n        lwMode = 0;\n        break;\n\n    case toolSceneNuke:\n    case toolDefault:\n    case toolSounder:\n    case toolLooper:\n    case toolMatcher:\n    case toolListener:\n    case toolSceneChop:\n    case toolSceneChopBack:\n    case toolAction:\n    case toolActorSelect:\n    case toolPlace:\n    case toolCompose:\n    case toolRecordSameAction:\n    case toolRotateX:\n    case toolRotateY:\n    case toolRotateZ:\n    case toolCostumeCmid:\n    case toolSquashStretch:\n    case toolResize:\n    case toolNormalizeRot:\n    case toolNormalizeSize:\n    case toolActorEasel:\n\n        lwMode = 1;\n        break;\n\n    case toolTboxMove:\n    case toolTboxUpDown:\n    case toolTboxLeftRight:\n    case toolTboxFalling:\n    case toolTboxRising:\n    case toolTboxPaintText:\n    case toolTboxFillBkgd:\n    case toolTboxStory:\n    case toolTboxCredit:\n    case toolTboxFont:\n    case toolTboxStyle:\n    case toolTboxSize:\n        lwMode = -1;\n        break;\n\n    default:\n        Bug(\"Unknown tool type\");\n    }\n\n    //\n    // Check if we've changed primary tool type\n    //\n    switch (tool)\n    {\n\n    case toolActorNuke:\n    case toolCopyObject:\n    case toolCopyRte:\n    case toolCutObject:\n    case toolPasteObject:\n        break;\n\n    case toolSoonerLater:\n        _fMouseDownSeen = fFalse;\n\n    case toolSceneNuke:\n    case toolDefault:\n    case toolSounder:\n    case toolLooper:\n    case toolMatcher:\n    case toolListener:\n    case toolSceneChop:\n    case toolSceneChopBack:\n    case toolAction:\n    case toolActorSelect:\n    case toolPlace:\n    case toolCompose:\n    case toolRecordSameAction:\n    case toolRotateX:\n    case toolRotateY:\n    case toolRotateZ:\n    case toolCostumeCmid:\n    case toolSquashStretch:\n    case toolResize:\n    case toolNormalizeRot:\n    case toolNormalizeSize:\n    case toolActorEasel:\n\n        _fTextMode = fFalse;\n\n        if (lwMode > 0)\n        {\n            break;\n        }\n\n        if (Pmvie()->Pscen() != pvNil)\n        {\n            Pmvie()->Pscen()->SelectActr(pactr);\n        }\n        break;\n\n    case toolTboxMove:\n    case toolTboxUpDown:\n    case toolTboxLeftRight:\n    case toolTboxFalling:\n    case toolTboxRising:\n    case toolTboxStory:\n    case toolTboxCredit:\n    case toolTboxFillBkgd:\n\n        _fTextMode = fTrue;\n\n        if (lwMode < 0)\n        {\n            break;\n        }\n\n    LSelectTbox:\n        if (Pmvie()->Pscen() != pvNil)\n        {\n            Pmvie()->Pscen()->SelectTbox(ptbox);\n        }\n        break;\n\n    case toolTboxPaintText:\n\n        _fTextMode = fTrue;\n\n        if ((lwMode < 0) && (ptbox != pvNil))\n        {\n            ptbox->FSetAcrText(AcrPaint());\n            ptbox->Pscen()->Pmvie()->Pmcc()->PlayUISound(tool);\n            break;\n        }\n\n        goto LSelectTbox;\n\n    case toolTboxFont:\n        _fTextMode = fTrue;\n        if ((lwMode < 0) && (ptbox != pvNil))\n        {\n            ptbox->FSetOnnText(OnnTextCur());\n            ptbox->Pscen()->Pmvie()->Pmcc()->PlayUISound(tool);\n            break;\n        }\n        goto LSelectTbox;\n\n    case toolTboxSize:\n        _fTextMode = fTrue;\n        if ((lwMode < 0) && (ptbox != pvNil))\n        {\n            ptbox->FSetDypFontText(DypFontTextCur());\n            ptbox->Pscen()->Pmvie()->Pmcc()->PlayUISound(tool);\n            break;\n        }\n        goto LSelectTbox;\n\n    case toolTboxStyle:\n        _fTextMode = fTrue;\n        if ((lwMode < 0) && (ptbox != pvNil))\n        {\n            ptbox->FSetStyleText(GrfontStyleTextCur());\n            ptbox->Pscen()->Pmvie()->Pmcc()->PlayUISound(tool);\n            break;\n        }\n        goto LSelectTbox;\n\n    default:\n        Bug(\"Unknown tool type\");\n    }\n\n    _tool = tool;\n}\n\n/***************************************************************************\n *\n * Change the current loaded tag attached to the cursor.  If the previous\n * tag was a \"ksidUseCrf\" tag, it must be closed to release its refcount on\n * the tag's pcrf.\n *\n * Parameters:\n *\tptag - The new tag to attach to the cursor\n *\n * Returns:\n *  None.\n *\n ***************************************************************************/\nvoid MVU::SetTagTool(PTAG ptag)\n{\n    AssertThis(0);\n    AssertVarMem(ptag);\n\n    if (_tagTool.sid != ksidInvalid)\n    {\n        TAGM::CloseTag(&_tagTool);\n    }\n\n#ifdef DEBUG\n    // Make sure the new tag has been opened, if it's a \"ksidUseCrf\" tag\n    if (ptag->sid == ksidUseCrf)\n    {\n        AssertPo(ptag->pcrf, 0);\n    }\n#endif\n\n    _tagTool = *ptag;\n    if (_tagTool.sid != ksidInvalid)\n        TAGM::DupTag(ptag);\n}\n\n/***************************************************************************\n *\n * Draw this view.\n *\n * Parameters:\n *\tpgnv - The environment to write to.\n *  prcClip - The clipping rectangle.\n *\n * Returns:\n *  None.\n *\n ***************************************************************************/\nvoid MVU::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n\n    RC rcDest;\n\n    //\n    // Clear non-rendering areas\n    //\n    if (prcClip->xpRight > _dxp)\n    {\n        rcDest = *prcClip;\n        rcDest.xpLeft = _dxp;\n        pgnv->FillRc(&rcDest, kacrWhite);\n    }\n    if (prcClip->ypBottom > _dyp)\n    {\n        rcDest = *prcClip;\n        rcDest.ypTop = _dyp;\n        pgnv->FillRc(&rcDest, kacrWhite);\n    }\n\n    //\n    // Render\n    //\n    if (Pmvie()->Pscen() != pvNil)\n    {\n        Pmvie()->Pbwld()->Render();\n        Pmvie()->Pbwld()->Draw(pgnv, prcClip, 0, 0);\n\n        //\n        // This draws a currently being dragged out text box frame.\n        //\n        if (!_rcFrame.FEmpty())\n        {\n            pgnv->FrameRcApt(&_rcFrame, &vaptLtGray, kacrBlack, kacrWhite);\n        }\n    }\n    else\n    {\n        rcDest.Set(0, 0, _dxp, _dyp);\n        pgnv->FillRc(&rcDest, kacrBlack);\n    }\n}\n\n/***************************************************************************\n *\n * Warps the cursor to the center of this gob.  Also sets _xpPrev and\n * _ypPrev so that future mouse deltas are from the center.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *\tNone.\n *\n **************************************************************************/\nvoid MVU::WarpCursToCenter(void)\n{\n    AssertThis(0);\n\n    PT pt;\n\n    _xpPrev = _dxp / 2;\n    _ypPrev = _dyp / 2;\n    _dzrPrev = rZero;\n    pt.xp = _xpPrev;\n    pt.yp = _ypPrev;\n    MapPt(&pt, cooLocal, cooGlobal);\n    vpappb->PositionCurs(pt.xp, pt.yp);\n}\n\n/***************************************************************************\n *\n * Warps the cursor to the center of the given actor.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *\tNone.\n *\n **************************************************************************/\nvoid MVU::WarpCursToActor(PACTR pactr)\n{\n    AssertThis(0);\n    AssertPo(pactr, 0);\n\n    PT pt;\n\n    pactr->GetCenter(&pt.xp, &pt.yp);\n    MapPt(&pt, cooLocal, cooGlobal);\n    vpappb->PositionCurs(pt.xp, pt.yp);\n}\n\n/***************************************************************************\n *\n * Call this function when you have the cursor hidden and you want to\n * \"reset\" its position after using the mouse position to adjust an actor.\n * It updates _xpPrev and _ypPrev.  Then, if the cursor has gone outside\n * the gob, it warps the cursor to the center of the gob.  This way, the\n * actor doesn't seem to hit an invisible \"wall\" just because the (hidden)\n * cursor has hit the edge of the screen.\n *\n * Parameters:\n *\t(xp, yp): current cursor position\n *\n * Returns:\n *\tNone.\n *\n **************************************************************************/\nvoid MVU::AdjustCursor(long xp, long yp)\n{\n    AssertThis(0);\n\n    RC rc;\n\n    GetRc(&rc, cooLocal);\n    rc.Inset(kdpInset, kdpInset); // warp before the cursor gets close to the gob's edge\n    if (rc.FPtIn(xp, yp))\n    {\n        _xpPrev = xp;\n        _ypPrev = yp;\n        _dzrPrev = rZero;\n    }\n    else\n    {\n        WarpCursToCenter();\n    }\n}\n\n/***************************************************************************\n *\n * Converts from mouse coordinates to world coordinates\n *\n * Parameters:\n *\tdxrMouse - BRender scalar representation of mouse X coordinate\n *\tdyrMouse - BRender scalar representation of mouse Y coordinate\n *\tdzrMouse - BRender scalar representation of mouse Z coordinate\n *  pdxrWld  - Place to store world X coordinate.\n *  pdyrWld  - Place to store world Y coordinate.\n *  pdzrWld  - Place to store world Z coordinate.\n *  fRecord  - Is the conversion to be scaled according to the recording\n *\t\t\t\tscaling factor, or the non-recording scaling factor.\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVU::MouseToWorld(BRS dxrMouse, BRS dyrMouse, BRS dzrMouse, BRS *pdxrWld, BRS *pdyrWld, BRS *pdzrWld, bool fRecord)\n{\n    AssertThis(0);\n    AssertVarMem(pdxrWld);\n    AssertVarMem(pdyrWld);\n    AssertVarMem(pdzrWld);\n\n    BRS dxrScr, dyrScr, dzrScr;\n    BMAT34 bmat34Cam;\n    BRS rScaleMouse;\n\n    dxrScr = BR_MAC3(dxrMouse, _rgrAxis[0][0], dyrMouse, _rgrAxis[0][1], dzrMouse, _rgrAxis[0][2]);\n    dyrScr = BR_MAC3(dxrMouse, _rgrAxis[1][0], dyrMouse, _rgrAxis[1][1], dzrMouse, _rgrAxis[1][2]);\n    dzrScr = BR_MAC3(dxrMouse, _rgrAxis[2][0], dyrMouse, _rgrAxis[2][1], dzrMouse, _rgrAxis[2][2]);\n\n    rScaleMouse = fRecord ? krScaleMouseRecord : krScaleMouseNonRecord;\n\n    //\n    // apply some scaling so that 1 pixel of mouse movement is rScaleMouse world units\n    //\n    dxrScr = BrsMul(dxrScr, rScaleMouse);\n    dyrScr = BrsMul(dyrScr, rScaleMouse);\n    dzrScr = BrsMul(dzrScr, rScaleMouse);\n\n    Pmvie()->Pscen()->Pbkgd()->GetMouseMatrix(&bmat34Cam);\n    *pdxrWld = BR_MAC3(dxrScr, bmat34Cam.m[0][0], dyrScr, bmat34Cam.m[1][0], dzrScr, bmat34Cam.m[2][0]);\n    *pdyrWld = BR_MAC3(dxrScr, bmat34Cam.m[0][1], dyrScr, bmat34Cam.m[1][1], dzrScr, bmat34Cam.m[2][1]);\n    *pdzrWld = BR_MAC3(dxrScr, bmat34Cam.m[0][2], dyrScr, bmat34Cam.m[1][2], dzrScr, bmat34Cam.m[2][2]);\n}\n\nbool MVU::_fKbdDelayed = fFalse;\nlong MVU::_dtsKbdDelay;\nlong MVU::_dtsKbdRepeat;\n\n/***************************************************************************\n *\n * Slows down keyboard auto-repeat as much as possible.  Saves user's\n * previous setting so it can be restored in RestoreKeyboardRepeat.\n *\n * Parameters:\n *  none\n *\n * Returns\n *  none\n *\n **************************************************************************/\nvoid MVU::SlowKeyboardRepeat(void)\n{\n    if (_fKbdDelayed)\n        return;\n#ifdef WIN\n    if (!SystemParametersInfo(SPI_GETKEYBOARDDELAY, 0, &_dtsKbdDelay, fFalse))\n    {\n        Bug(\"why could this fail?\");\n        return;\n    }\n    if (!SystemParametersInfo(SPI_SETKEYBOARDDELAY, klwMax, pvNil, fFalse))\n    {\n        Bug(\"why could this fail?\");\n        return;\n    }\n    if (!SystemParametersInfo(SPI_GETKEYBOARDSPEED, 0, &_dtsKbdRepeat, fFalse))\n    {\n        Bug(\"why could this fail?\");\n        return;\n    }\n    if (!SystemParametersInfo(SPI_SETKEYBOARDSPEED, 0, pvNil, fFalse))\n    {\n        Bug(\"why could this fail?\");\n        return;\n    }\n#endif\n#ifdef MAC\n    RawRtn();\n#endif\n    _fKbdDelayed = fTrue;\n}\n\n/***************************************************************************\n *\n * Restores the keyboard auto-repeat to the user's previous setting.\n *\n * Parameters:\n *  none\n *\n * Returns\n *  none\n *\n **************************************************************************/\nvoid MVU::RestoreKeyboardRepeat(void)\n{\n    if (!_fKbdDelayed)\n        return;\n#ifdef WIN\n    if (!SystemParametersInfo(SPI_SETKEYBOARDDELAY, _dtsKbdDelay, pvNil, fFalse))\n    {\n        Bug(\"why could this fail?\");\n        return;\n    }\n    if (!SystemParametersInfo(SPI_SETKEYBOARDSPEED, _dtsKbdRepeat, pvNil, fFalse))\n    {\n        Bug(\"why could this fail?\");\n        return;\n    }\n#endif\n#ifdef MAC\n    RawRtn();\n#endif\n    _fKbdDelayed = fFalse;\n}\n\n/***************************************************************************\n *\n * An actor has just been added, so enter \"place actor\" mode, where the\n * actor floats with the cursor.\n *\n * Parameters:\n *  fEntireScene flags whether the whole scene's route is to be translated on\n *  positioning, or whether only the current subroute is to be translated.\n *\n * Returns\n *  None.\n *\n **************************************************************************/\nvoid MVU::StartPlaceActor(bool fEntireScene)\n{\n    AssertThis(0);\n    AssertPo(Pmvie()->Pscen(), 0);\n\n    PACTR pactr = Pmvie()->Pscen()->PactrSelected();\n\n    AssertPo(pactr, 0);\n\n    vpappb->HideCurs();\n    WarpCursToCenter();\n\n    _fEntireScene = fEntireScene;\n    SetTool(toolPlace);\n    Pmvie()->RemFromRollCall(pactr, fFalse);\n    Pmvie()->Pmcc()->NewActor();\n    vpcex->TrackMouse(this);\n\n    // While tracking the mouse, don't allow the cursor out of capture window.\n    // If we don't do this, then the user can click on another window in the\n    // middle of the cursor tracking, (if tracking with mouse btn up). Note,\n    // this call clips the cursor movement to an area on the screen, so we are\n    // assuming there is no way for the capture window to move during tracking.\n#ifdef WIN\n    RECT rectCapture;\n    GetWindowRect(HwndContainer(), &rectCapture);\n    ClipCursor(&rectCapture);\n#endif // WIN\n\n    _fMouseDownSeen = fFalse;\n    _tsLastSample = TsCurrent();\n    SlowKeyboardRepeat();\n\n    return;\n}\n\n/***************************************************************************\n *\n * Undoes the place tool.\n *\n * Parameters:\n *  None.\n *\n * Returns\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nvoid MVU::EndPlaceActor()\n{\n    AssertThis(0);\n    AssertPo(Pmvie()->Pscen(), 0);\n\n    if (Tool() != toolPlace)\n    {\n        return;\n    }\n\n    vpappb->ShowCurs();\n    WarpCursToCenter();\n    SetTool(toolCompose);\n    AssertDo(Pmvie()->FAddToRollCall(Pmvie()->Pscen()->PactrSelected(), pvNil), \"Should never fail\");\n    Pmvie()->Pmcc()->ChangeTool(toolCompose);\n    vpcex->EndMouseTracking();\n\n    _fMouseDownSeen = fFalse;\n\n    return;\n}\n/***************************************************************************\n *\n * Track the mouse moves and set the cursor appropriately.\n *\n * Parameters:\n *\tpcmd - The command information.\n *\n * Returns:\n *  fTrue - indicating that the command was processed.\n *\n ***************************************************************************/\nbool MVU::FCmdMouseMove(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PACTR pactr;\n    long ibset;\n    PDOCB pdocb;\n\n    AssertPo(Pmvie(), 0);\n    if (Pmvie()->Pscen() == pvNil)\n    {\n        Pmvie()->Pmcc()->SetCurs(toolDefault);\n        return (fTrue);\n    }\n\n    if (Pmvie()->FPlaying())\n    {\n        Pmvie()->Pmcc()->SetCurs(toolDefault);\n        return (fTrue);\n    }\n\n    switch (Tool())\n    {\n    case toolTboxStory:\n    case toolTboxCredit:\n    case toolTboxPaintText:\n    case toolTboxFillBkgd:\n    case toolTboxMove:\n    case toolTboxFont:\n    case toolTboxSize:\n    case toolTboxStyle:\n        Pmvie()->Pmcc()->SetCurs(toolDefault);\n        break;\n\n    case toolPlace:\n        return (fFalse);\n\n    case toolSceneNuke:\n    case toolSceneChop:\n    case toolSceneChopBack:\n        Pmvie()->Pmcc()->SetCurs(Tool());\n        break;\n\n    case toolSounder:\n    case toolLooper:\n    case toolMatcher:\n        if (_tagTool.sid == ksidInvalid)\n            Pmvie()->Pmcc()->SetCurs(toolDefault);\n        else\n            Pmvie()->Pmcc()->SetCurs(Tool());\n        break;\n\n    case toolListener:\n        Pmvie()->Pmcc()->SetCurs(Tool());\n        // Audition sound if over an actor\n        pactr = Pmvie()->Pscen()->PactrFromPt(pcmd->xp, pcmd->yp, &ibset);\n        if (pvNil != pactr)\n        {\n            if (pactr != _pactrListener)\n            {\n                Pmvie()->Pmsq()->StopAll();\n                pactr->FReplayFrame(fscenSounds); // Ignore audition error; non-fatal\n                // Play outstanding sounds\n                Pmvie()->Pmsq()->PlayMsq();\n            }\n            _fMouseOn = fFalse;\n        }\n        else if (!_fMouseOn)\n        {\n            _fMouseOn = fTrue;\n            Pmvie()->Pmsq()->StopAll();\n            Pmvie()->Pscen()->FReplayFrm(fscenSounds);\n            // Play outstanding sounds\n            Pmvie()->Pmsq()->PlayMsq();\n        }\n\n        _pactrListener = pactr;\n        break;\n\n    case toolSoonerLater:\n        if (!_fTextMode)\n        {\n            AssertPo(Pmvie()->Pscen(), 0);\n            pactr = Pmvie()->Pscen()->PactrFromPt(pcmd->xp, pcmd->yp, &ibset);\n            AssertNilOrPo(pactr, 0);\n            if (pactr == pvNil)\n            {\n                Pmvie()->Pmcc()->SetCurs(toolDefault);\n                break;\n            }\n            else if (_fMouseDownSeen)\n            {\n                Pmvie()->Pmcc()->SetCurs(toolCompose);\n            }\n            else\n            {\n                Pmvie()->Pmcc()->SetCurs(Tool());\n            }\n        }\n        else\n        {\n            Pmvie()->Pmcc()->SetCurs(toolDefault);\n        }\n        break;\n\n    case toolAction:\n    case toolActorNuke:\n    case toolActorSelect:\n    case toolCompose:\n    case toolRecordSameAction:\n    case toolRotateX:\n    case toolRotateY:\n    case toolRotateZ:\n    case toolCostumeCmid:\n    case toolSquashStretch:\n    case toolResize:\n    case toolNormalizeRot:\n    case toolNormalizeSize:\n    case toolCopyObject:\n    case toolPasteObject:\n    case toolCopyRte:\n    case toolCutObject:\n    case toolActorEasel:\n\n        if (!_fTextMode)\n        {\n            AssertPo(Pmvie()->Pscen(), 0);\n            pactr = Pmvie()->Pscen()->PactrFromPt(pcmd->xp, pcmd->yp, &ibset);\n            AssertNilOrPo(pactr, 0);\n            if (pactr == pvNil)\n            {\n                Pmvie()->Pmcc()->SetCurs(toolDefault);\n                break;\n            }\n            else if ((Tool() == toolCompose) && (pcmd->grfcust & fcustCmd))\n            {\n                Pmvie()->Pmcc()->SetCurs(toolTweak);\n            }\n            else if ((Tool() == toolCompose) && (pcmd->grfcust & fcustShift))\n            {\n                Pmvie()->Pmcc()->SetCurs(toolComposeAll);\n            }\n            else if ((Tool() == toolPasteObject) && vpclip->FGetFormat(kclsACLP, &pdocb))\n            {\n                if (((PACLP)pdocb)->FRouteOnly())\n                    Pmvie()->Pmcc()->SetCurs(toolPasteRte);\n                else\n                    Pmvie()->Pmcc()->SetCurs(Tool());\n                ReleasePpo(&pdocb);\n            }\n            else\n            {\n                Pmvie()->Pmcc()->SetCurs(Tool());\n            }\n        }\n        else\n        {\n            Pmvie()->Pmcc()->SetCurs(toolDefault);\n        }\n        break;\n\n    case toolDefault:\n        Pmvie()->Pmcc()->SetCurs(toolDefault);\n        break;\n\n    default:\n        Bug(\"Unknown tool type\");\n    }\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Track the mouse and do the appropriate command.\n *\n * Parameters:\n *\tpcmdTrack - The command information.\n *\n * Returns:\n *  fTrue - indicating that the command was processed.\n *\n ***************************************************************************/\nbool MVU::FCmdTrackMouse(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    RC rc;\n\n    if (pcmd->cid == cidMouseDown)\n    {\n        Assert(vpcex->PgobTracking() == pvNil, \"mouse already being tracked!\");\n        vpcex->TrackMouse(this);\n    }\n    else\n    {\n        Assert(vpcex->PgobTracking() == this, \"not tracking mouse!\");\n        Assert(pcmd->cid == cidTrackMouse, 0);\n    }\n\n    if ((pcmd->cid == cidMouseDown) || ((pcmd->grfcust & fcustMouse) && !_fMouseDownSeen))\n    {\n        _MouseDown(pcmd);\n    }\n    else\n    {\n        _MouseDrag(pcmd);\n    }\n\n    if (!(pcmd->grfcust & fcustMouse))\n    {\n        _MouseUp(pcmd);\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n *\n * Handle positioning an actor when the place tool is in effect.\n *\n * Parameters:\n *  dxrWld, dyrWld, dzrWld - the change in position in worldspace\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVU::_PositionActr(BRS dxrWld, BRS dyrWld, BRS dzrWld)\n{\n    AssertThis(0);\n    Assert(Tool() == toolPlace, \"Wrong tool in effect\");\n\n    PMVIE pmvie;\n    PSCEN pscen;\n    bool fMoved;\n    PACTR pactr = pvNil;\n    ulong grfmaf = fmafOrient;\n\n    pmvie = Pmvie();\n    AssertPo(pmvie, 0);\n\n    pscen = pmvie->Pscen();\n    AssertPo(pscen, 0);\n\n    pactr = pscen->PactrSelected();\n    AssertPo(pactr, 0);\n\n    if (_fEntireScene)\n    {\n        grfmaf |= fmafEntireScene;\n    }\n    else\n    {\n        grfmaf |= fmafEntireSubrte;\n    }\n\n    if (FRespectGround())\n    {\n        grfmaf |= fmafGround;\n    }\n\n    // FMoveRouteCore cannot fail on fmafEntireSubrte as no events are added\n    if (pactr->FMoveRoute(dxrWld, dyrWld, dzrWld, &fMoved, grfmaf) && fMoved)\n    {\n        Pmvie()->Pbwld()->MarkDirty();\n        Pmvie()->MarkViews();\n        pscen->Pbkgd()->ReuseActorPlacePoint();\n    }\n}\n\n/***************************************************************************\n *\n * Notify script that an actor was clicked.  Note that we sometimes call\n * this function with fDown fFalse even though the user hasn't mouseup'ed\n * yet, because of bringing up easels on mousedown.\n *\n * Parameters:\n *\tpactr - the actor that was clicked\n *  fDown - fTrue if we're mousedown'ing the actor, fFalse if mouseup\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVU::_ActorClicked(PACTR pactr, bool fDown)\n{\n    AssertThis(0);\n    AssertPo(pactr, 0);\n\n    ulong grftmpl = 0;\n\n    if (pactr->Ptmpl()->FIsTdt())\n    {\n        grftmpl |= ftmplTdt;\n    }\n\n    if (pactr->Ptmpl()->FIsProp())\n    {\n        grftmpl |= ftmplProp;\n    }\n\n    if (fDown)\n    {\n        vpcex->EnqueueCid(cidActorClickedDown, pvNil, pvNil, pactr->Arid(), pactr->Ptmpl()->Cno(), grftmpl);\n    }\n    else\n    {\n        vpcex->EnqueueCid(cidActorClicked, pvNil, pvNil, pactr->Arid(), pactr->Ptmpl()->Cno(), grftmpl);\n    }\n}\n\n/***************************************************************************\n *\n * Handle Mousedown\n *\n * Parameters:\n *\tpcmd - The mouse command\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVU::_MouseDown(CMD_MOUSE *pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PACTR pactr = pvNil;\n    PACTR pactrDup;\n    PTBOX ptbox;\n    PAUND paund;\n    PT pt;\n    long ibset;\n    PDOCB pdocb;\n\n    SlowKeyboardRepeat();\n\n    if (Pmvie()->FPlaying())\n    {\n        //\n        // If we are in the middle of playing, ignore mouse down.\n        //\n        return;\n    }\n\n    AssertPo(Pmvie(), 0);\n    if (pvNil == Pmvie()->Pscen())\n    {\n        return;\n    }\n    AssertPo(Pmvie()->Pscen(), 0);\n\n    if (_fTextMode)\n    {\n        ptbox = Pmvie()->Pscen()->PtboxSelected();\n    }\n    else if ((Tool() != toolPlace) && (Tool() != toolSceneChop) && (Tool() != toolSceneChopBack))\n    {\n\n        //\n        // Select the actor under the cursor\n        //\n        pactr = Pmvie()->Pscen()->PactrSelected();\n        AssertNilOrPo(pactr, 0);\n\n        if ((pactr != pvNil) && pactr->FTimeFrozen())\n        {\n            pactr->SetTimeFreeze(fFalse);\n        }\n\n        pactrDup = Pmvie()->Pscen()->PactrFromPt(pcmd->xp, pcmd->yp, &ibset);\n\n        //\n        // Use previously selected actor if mouse in the actor.\n        // Don't change the selected actor if we're using the default tool\n        //\n        if (((pactr == pvNil) || !pactr->FIsInView() || !pactr->FPtIn(pcmd->xp, pcmd->yp, &ibset)) &&\n            Tool() != toolDefault)\n        {\n            pactr = pactrDup;\n            AssertNilOrPo(pactr, 0);\n        }\n\n        if (pvNil != pactr)\n        {\n            _ActorClicked(pactr, fTrue);\n        }\n        Pmvie()->Pscen()->SelectActr(pactr); // okay even if pactr is pvNil\n        Pmvie()->Pbwld()->MarkDirty();\n    }\n\n#ifdef DEBUG\n    // Authoring hack to write out background starting pos data\n\n    if (pvNil != pactr &&\n        ((vpappb->GrfcustCur(fFalse) & (fcustShift | fcustCmd | fcustOption)) == (fcustShift | fcustCmd | fcustOption)))\n    {\n        BRS xr;\n        BRS yr;\n        BRS zr;\n\n        pactr->Pbody()->GetPosition(&xr, &yr, &zr);\n        if (!Pmvie()->Pscen()->Pbkgd()->FWritePlaceFile(xr, yr, zr))\n        {\n            Bug(\"ouch.  bkgd write failed.\");\n        }\n        else\n        {\n            Warn(\"Wrote bkgd actor start point.\");\n        }\n    }\n#endif // DEBUG\n\n    _xpPrev = pcmd->xp;\n    _ypPrev = pcmd->yp;\n    _dzrPrev = rZero;\n    _grfcust = pcmd->grfcust;\n    _tsLastSample = TsCurrent();\n\n    switch (Tool())\n    {\n\n    // Sound tools get handled together:\n    case toolSounder:\n    case toolLooper:\n    case toolMatcher:\n        if (pactr == pvNil) // scene sound\n        {\n            tribool fLoop = (tribool)(Tool() == toolLooper);\n            tribool fQueue = (tribool)FPure(_grfcust & fcustCmd);\n\n            if ((Tool() == toolMatcher) && (ksidInvalid != _tagTool.sid))\n            {\n                PushErc(ercSocBadSceneSound);\n                break;\n            }\n            if (ksidInvalid != _tagTool.sid)\n            {\n                Pmvie()->FAddBkgdSnd(&_tagTool, fLoop, fQueue, vlmNil, styNil);\n            }\n        }\n        else // actor sound\n        {\n            tribool fLoop = (tribool)(Tool() == toolLooper);\n            tribool fQueue = (tribool)FPure(_grfcust & fcustCmd);\n            tribool fActnCel = (tribool)FPure(Tool() == toolMatcher);\n\n            if (ksidInvalid != _tagTool.sid)\n            {\n                Pmvie()->FAddActrSnd(&_tagTool, fLoop, fQueue, fActnCel, vlmNil, styNil);\n            }\n        }\n        break;\n\n    case toolListener:\n        // Start the listener easel\n        vpcex->EndMouseTracking();\n        RestoreKeyboardRepeat();\n        if (pvNil != pactr)\n        {\n            _ActorClicked(pactr, fFalse);\n        }\n        Pmvie()->Pmcc()->StartListenerEasel();\n        break;\n\n    case toolActorSelect:\n        Pmvie()->Pmcc()->PlayUISound(Tool());\n        break;\n\n    case toolSceneNuke:\n        if (Pmvie()->FRemScen(Pmvie()->Iscen()))\n        {\n            Pmvie()->Pmcc()->UpdateRollCall();\n            Pmvie()->Pmcc()->SceneNuked();\n            Pmvie()->InvalViewsAndScb();\n            Pmvie()->Pmcc()->PlayUISound(Tool());\n        }\n        break;\n\n    case toolActorNuke:\n        if (pactr == pvNil)\n        {\n            break;\n        }\n\n        Pmvie()->FRemActr();\n        Pmvie()->Pmcc()->PlayUISound(Tool());\n        break;\n\n    case toolSceneChop:\n        if (Pmvie()->Pscen()->FChop())\n        {\n            Pmvie()->InvalViewsAndScb();\n            Pmvie()->Pmcc()->PlayUISound(Tool());\n        }\n        break;\n\n    case toolSceneChopBack:\n        if (Pmvie()->Pscen()->FChopBack())\n        {\n            Pmvie()->InvalViewsAndScb();\n            Pmvie()->Pmcc()->PlayUISound(Tool());\n        }\n        break;\n\n    case toolCutObject:\n    case toolCopyObject:\n    case toolCopyRte:\n        if (!_fTextMode)\n        {\n            FDoClip(Tool());\n        }\n        break;\n\n    case toolPasteObject:\n        if (!_fTextMode)\n        {\n            if (vpclip->FGetFormat(kclsACLP, &pdocb) && ((PACLP)pdocb)->FRouteOnly() && (pactr != pvNil))\n            {\n                FDoClip(Tool());\n                ReleasePpo(&pdocb);\n            }\n        }\n        break;\n\n    case toolTboxStory:\n    case toolTboxCredit:\n    case toolTboxPaintText:\n    case toolTboxFillBkgd:\n    case toolTboxMove:\n    case toolTboxFont:\n    case toolTboxSize:\n    case toolTboxStyle:\n        Pmvie()->Pscen()->SelectTbox(pvNil);\n        break;\n\n    case toolPlace:\n        _fMouseDownSeen = fTrue;\n        break;\n\n    case toolSoonerLater:\n        if ((pactr != pvNil) && !_fMouseDownSeen)\n        {\n            pactr->SetTimeFreeze(fTrue);\n            pactr->Hilite();\n            _fMouseDownSeen = fTrue;\n            Pmvie()->Pmcc()->PlayUISound(Tool());\n        }\n        else\n        {\n            goto LEnd;\n        }\n        break;\n\n    case toolCompose:\n    case toolRotateX:\n    case toolRotateY:\n    case toolRotateZ:\n    case toolResize:\n    case toolSquashStretch:\n        if (pactr != pvNil)\n        {\n\n            vpappb->HideCurs();\n\n            //\n            // Create an actor undo object\n            //\n            paund = AUND::PaundNew();\n            if ((paund == pvNil) || !pactr->FDup(&pactrDup, fTrue))\n            {\n                Pmvie()->ClearUndo();\n                PushErc(ercSocNotUndoable);\n            }\n            else\n            {\n                paund->SetPactr(pactrDup);\n                ReleasePpo(&pactrDup);\n                paund->SetArid(pactr->Arid());\n\n                //\n                // Store it.  We will only add it if there is a change done\n                // to the actor.\n                //\n                _paund = paund;\n            }\n\n            if ((Tool() != toolResize) && (Tool() != toolSquashStretch))\n            {\n                Pmvie()->Pmcc()->PlayUISound(Tool(), _grfcust);\n            }\n            else\n            {\n                _lwLastTime = 0;\n            }\n        }\n        break;\n\n    case toolNormalizeRot:\n        if (pactr != pvNil)\n        {\n            Pmvie()->Pmcc()->PlayUISound(Tool());\n            pactr->FNormalize(fnormRotate);\n        }\n        break;\n    case toolNormalizeSize:\n        if (pactr != pvNil)\n        {\n            Pmvie()->Pmcc()->PlayUISound(Tool());\n            pactr->FNormalize(fnormSize);\n        }\n        break;\n\n    case toolRecordSameAction:\n\n        if (pactr != pvNil)\n        {\n            long anidTool = pactr->AnidCur();\n            long anid = anidTool;\n            long celn = 0;\n            bool fFrozen;\n\n            SetAnidTool(pactr->AnidCur());\n            _ptmplTool = pactr->Ptmpl();\n\n            if ((pcmd->grfcust & fcustShift) && (pcmd->grfcust & fcustCmd) && FRecordDefault())\n            {\n                fFrozen = fFalse;\n                _fCyclingCels = fFalse;\n                _fSetFRecordDefault = fTrue;\n                SetFRecordDefault(fFalse);\n            }\n            else\n            {\n                fFrozen = FPure(pcmd->grfcust & fcustShift);\n                _fCyclingCels = FPure(pcmd->grfcust & fcustCmd);\n            }\n\n            if ((pactr->Ptmpl() != _ptmplTool) && !(_ptmplTool->FIsTdt() && pactr->Ptmpl()->FIsTdt()))\n            {\n                PushErc(ercSocActionNotApplicable);\n                return;\n            }\n\n            vpappb->HideCurs();\n\n            // first, call FSetAction\n            if (anidTool == ivNil)\n            {\n                anid = pactr->AnidCur();\n            }\n            if (pactr->AnidCur() == anid)\n            {\n                celn = pactr->CelnCur();\n            }\n\n            // note that FSetAction creates an undo object\n            // NOTE:  FSetAction() must be called on each use\n            // of toolRecordSameAction. (It is not redundant).\n            // Otherwise, resizing can break wysiwyg, as the final\n            // path point probably won't be a complete cel's distance\n            // from the previous step.\n            Assert(pvNil == _pactrRestore, \"_pactrRestore should not require releasing\");\n            ReleasePpo(&_pactrRestore); // To be safe\n            if (!pactr->FSetAction(anid, celn, fFrozen, &_pactrRestore))\n            {\n                break; // an Oom erc has already been pushed\n            }\n            SetAnidTool(ivNil);\n            _tsLast = TsCurrent();\n            pactr->SetTsInsert(_tsLast);\n            Pmvie()->Pmcc()->PlayUISound(Tool());\n        }\n\n        break;\n\n    case toolAction:\n        //\n        // Start the action browser\n        //\n        vpcex->EndMouseTracking();\n        RestoreKeyboardRepeat();\n\n        if (pactr != pvNil)\n        {\n            _ActorClicked(pactr, fFalse);\n            Pmvie()->Pscen()->SelectActr(pactr);\n            _ptmplTool = pactr->Ptmpl();\n            Pmvie()->Pmcc()->StartActionBrowser();\n        }\n        break;\n\n    case toolCostumeCmid:\n        if (pactr != pvNil)\n        {\n            TAG tag; // unused\n            TrashVar(&tag);\n            TrashVar(&ibset);\n            Pmvie()->FCostumeActr(ibset, &tag, CmidTool(), tribool::tYes);\n        }\n        break;\n    case toolActorEasel:\n        if (pactr != pvNil)\n        {\n            bool fActrChanged;\n\n            _ActorClicked(pactr, fFalse);\n            Pmvie()->Pmcc()->ActorEasel(&fActrChanged);\n            if (fActrChanged)\n            {\n                Pmvie()->SetDirty();\n                Pmvie()->ClearUndo();\n            }\n        }\n        break;\n\n    case toolDefault:\n        /* Do nothing */\n        break;\n\n    default:\n        Bug(\"Tool unknown on mouse down\");\n    }\n\n    if (Pmvie()->FSoundsEnabled())\n    {\n        Pmvie()->Pmsq()->PlayMsq();\n    }\n    else\n    {\n        Pmvie()->Pmsq()->FlushMsq();\n    }\n    _fMouseDownSeen = fTrue;\n\nLEnd:\n    Pmvie()->MarkViews();\n}\n\n/***************************************************************************\n *\n * Handle Mouse drag (mouse move while button down)\n *\n * Parameters:\n *  pcmd - The mouse command\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVU::_MouseDrag(CMD_MOUSE *pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PMVIE pmvie;\n    PSCEN pscen;\n    PACTR pactr = pvNil;\n    BRS dxrMouse, dyrMouse, dzrMouse;\n    BRS dxrWld, dyrWld, dzrWld; // amount moved from previous point in world space\n    BRS zrActr, zrCam, dzrActr;\n    bool fArrowKey = fFalse;\n    RC rc;\n    PT pt;\n\n    if (Pmvie()->FPlaying() || Pmvie()->Pmcc()->FMinimized())\n    {\n        //\n        // If we are in the middle of playing, or been minimized, ignore mouse dragging.\n        //\n        return;\n    }\n\n    pmvie = Pmvie();\n    AssertPo(pmvie, 0);\n    pscen = pmvie->Pscen();\n    AssertNilOrPo(pscen, 0);\n\n    if (pvNil == pscen)\n    {\n        return;\n    }\n\n    pactr = pscen->PactrSelected();\n\n    AssertNilOrPo(pactr, 0);\n\n    if (pactr == pvNil)\n    {\n        return;\n    }\n\n    dxrMouse = BrsSub(BrIntToScalar(pcmd->xp), BrIntToScalar(_xpPrev));\n    dyrMouse = BrsSub(BrIntToScalar(_ypPrev), BrIntToScalar(pcmd->yp));\n    dzrMouse = _dzrPrev;\n#ifdef WIN\n    //\n    // Get the \"mouse Z\" by sampling the arrow keys.  If an arrow key\n    // is down, the number of pixels moved is the number of seconds\n    // since the keyboard was last sampled times kdwrMousePerSecond.\n    //\n    ulong dts = LwMax(1, TsCurrent() - _tsLastSample);\n    BRS drSec = BrsDiv(BrIntToScalar(dts), BR_SCALAR(kdtsSecond));\n    if (GetKeyState(VK_UP) < 0)\n    {\n        fArrowKey = fTrue;\n        dzrMouse += BrsMul(drSec, kdwrMousePerSecond);\n    }\n    if (GetKeyState(VK_DOWN) < 0)\n    {\n        fArrowKey = fTrue;\n        dzrMouse -= BrsMul(drSec, kdwrMousePerSecond);\n    }\n    if (fArrowKey && Tool() == toolRecordSameAction && !_fCyclingCels && pactr->FIsModeRecord())\n    {\n        if ((BrsAbs(dxrMouse) * 4 < BrsAbs(dzrMouse)) && (BrsAbs(dyrMouse) * 4 < BrsAbs(dzrMouse)))\n        {\n            // When the up/down arrow keys are used, infinitesimal\n            // mouse movement should not be observed or determine path direction.\n            dxrMouse = rZero;\n            dyrMouse = rZero;\n        }\n    }\n    _dzrPrev = dzrMouse;\n    _tsLastSample = TsCurrent();\n#endif\n#ifdef MAC\n    RawRtn();\n#endif\n\n    MouseToWorld(dxrMouse, dyrMouse, dzrMouse, &dxrWld, &dyrWld, &dzrWld, Tool() == toolRecordSameAction);\n\n    //\n    // Scale movement based on selected actor\n    //\n    pactr->GetXyzWorld(pvNil, pvNil, &zrActr);\n    pscen->Pbkgd()->GetCameraPos(pvNil, pvNil, &zrCam);\n    dzrActr = BrsAbs(BrsSub(zrActr, zrCam));\n    dzrActr = BrsDiv(dzrActr, kzrMouseScalingFactor);\n    if (dzrActr < rOne)\n    {\n        dzrActr = rOne;\n    }\n    dxrWld = BrsMul(dxrWld, BrsMul(dzrActr, BR_SCALAR(1.1)));\n    dyrWld = BrsMul(dyrWld, BrsMul(dzrActr, BR_SCALAR(1.1)));\n    dzrWld = BrsMul(dzrWld, BrsMul(dzrActr, BR_SCALAR(1.1)));\n\n    switch (Tool())\n    {\n    default:\n        Bug(\"Tool unknown on mouse move\");\n        break;\n\n    case toolDefault:\n    case toolActorSelect:\n        break;\n\n    case toolSceneNuke:\n    case toolActorNuke:\n    case toolSceneChop:\n    case toolSceneChopBack:\n    case toolCutObject:\n    case toolCopyObject:\n    case toolPasteObject:\n    case toolCopyRte:\n    case toolTboxPaintText:\n    case toolTboxFillBkgd:\n    case toolTboxMove:\n    case toolTboxFont:\n    case toolTboxSize:\n    case toolTboxStory:\n    case toolTboxCredit:\n    case toolTboxStyle:\n    case toolActorEasel:\n    case toolSounder:\n    case toolLooper:\n    case toolMatcher:\n        break;\n\n    case toolPlace:\n        _PositionActr(dxrWld, dyrWld, dzrWld);\n        AdjustCursor(pcmd->xp, pcmd->yp);\n        break;\n\n    case toolCompose: {\n        ulong grfmaf = fmafNil;\n        bool fMoved{};\n\n        if (_fRespectGround)\n        {\n            grfmaf |= fmafGround;\n        }\n\n        if (_grfcust & fcustCmd)\n        {\n            AdjustCursor(pcmd->xp, pcmd->yp);\n\n            if (pactr->FTweakRoute(dxrWld, dyrWld, dzrWld, grfmaf))\n            {\n                if (fMoved)\n                {\n                    if ((_paund != pvNil) && !Pmvie()->FAddUndo(_paund))\n                    {\n                        PushErc(ercSocNotUndoable);\n                        Pmvie()->ClearUndo();\n                    }\n\n                    ReleasePpo(&_paund);\n                }\n            }\n\n            Pmvie()->MarkViews();\n        }\n        else\n        {\n\n            if (_grfcust & fcustShift)\n            {\n                grfmaf |= fmafEntireSubrte;\n            }\n\n            // FMoveRoute returns fTrue if the distance moved was non-zero\n            if (pactr->FMoveRoute(dxrWld, dyrWld, dzrWld, &fMoved, grfmaf))\n            {\n                if (fMoved)\n                {\n                    if ((_paund != pvNil) && !Pmvie()->FAddUndo(_paund))\n                    {\n                        PushErc(ercSocNotUndoable);\n                        Pmvie()->ClearUndo();\n                    }\n\n                    ReleasePpo(&_paund);\n\n                    AdjustCursor(pcmd->xp, pcmd->yp);\n                    Pmvie()->Pbwld()->MarkDirty();\n                    Pmvie()->MarkViews();\n                }\n            }\n        }\n    }\n    break;\n\n    case toolRotateX:\n    case toolRotateY:\n    case toolRotateZ: {\n        BRS brs;\n        BRA xa, ya, za;\n\n        brs = BrsMul(dxrMouse + dyrMouse, -krRotateScaleFactor);\n\n        xa = aZero;\n        ya = aZero;\n        za = aZero;\n\n        switch (Tool())\n        {\n        case toolRotateX:\n            xa = BrScalarToAngle(brs);\n            break;\n        case toolRotateY:\n            ya = -BrScalarToAngle(brs);\n            break;\n        case toolRotateZ:\n            za = BrScalarToAngle(brs);\n            break;\n        }\n\n        if (pmvie->FRotateActr(xa, ya, za, FPure(_grfcust & fcustCmd)))\n        {\n            if ((_paund != pvNil) && !Pmvie()->FAddUndo(_paund))\n            {\n                PushErc(ercSocNotUndoable);\n                Pmvie()->ClearUndo();\n            }\n\n            ReleasePpo(&_paund);\n        }\n\n        Pmvie()->Pbwld()->MarkDirty();\n        Pmvie()->MarkViews();\n        AdjustCursor(pcmd->xp, pcmd->yp);\n    }\n    break;\n\n    case toolResize: {\n        BRS brs;\n        BRS brs2;\n\n        brs = BrsMul(dxrMouse + dyrMouse, krRotateScaleFactor);\n        brs2 = BrsAdd(brs, rOne);\n\n        //\n        // Play UI sound\n        //\n        if ((((dxrMouse + dyrMouse) < 0) && !(_lwLastTime < 0)) || (((dxrMouse + dyrMouse) > 0) && !(_lwLastTime > 0)))\n        {\n            _lwLastTime = dxrMouse + dyrMouse;\n            Pmvie()->Pmcc()->StopUISound();\n            Pmvie()->Pmcc()->PlayUISound(Tool(), (dxrMouse + dyrMouse > 0) ? 0 : fcustShift);\n        }\n\n        if (pmvie->FScaleActr(brs2))\n        {\n            if ((_paund != pvNil) && !Pmvie()->FAddUndo(_paund))\n            {\n                PushErc(ercSocNotUndoable);\n                Pmvie()->ClearUndo();\n            }\n\n            ReleasePpo(&_paund);\n        }\n\n        Pmvie()->Pbwld()->MarkDirty();\n        Pmvie()->MarkViews();\n        AdjustCursor(pcmd->xp, pcmd->yp);\n    }\n    break;\n\n    case toolSquashStretch: {\n        BRS brs;\n        BRS brs2;\n\n        brs = BrsMul(-dxrMouse - dyrMouse, krRotateScaleFactor);\n        brs2 = BrsAdd(brs, rOne);\n\n        //\n        // Play UI sound\n        //\n        if ((((-dxrMouse - dyrMouse) < 0) && !(_lwLastTime < 0)) ||\n            (((-dxrMouse - dyrMouse) > 0) && !(_lwLastTime > 0)))\n        {\n            _lwLastTime = -dxrMouse - dyrMouse;\n            Pmvie()->Pmcc()->StopUISound();\n            Pmvie()->Pmcc()->PlayUISound(Tool(), (-dxrMouse - dyrMouse < 0) ? 0 : fcustShift);\n        }\n\n        if (pmvie->FSquashStretchActr(brs2))\n        {\n            if ((_paund != pvNil) && !Pmvie()->FAddUndo(_paund))\n            {\n                PushErc(ercSocNotUndoable);\n                Pmvie()->ClearUndo();\n            }\n\n            ReleasePpo(&_paund);\n        }\n\n        Pmvie()->Pbwld()->MarkDirty();\n        Pmvie()->MarkViews();\n        AdjustCursor(pcmd->xp, pcmd->yp);\n    }\n    break;\n\n    case toolSoonerLater:\n    case toolNormalizeRot:\n    case toolNormalizeSize:\n    case toolCostumeCmid:\n        break;\n\n    case toolRecordSameAction: {\n        bool fLonger;\n        bool fStep;\n        ulong tsCurrent = TsCurrent();\n        ulong grfmaf = 0;\n        bool fFrozen = FPure((pcmd->grfcust & fcustShift) && !(pcmd->grfcust & fcustCmd));\n\n        if ((pactr->Ptmpl() != _ptmplTool) && !(_ptmplTool->FIsTdt() && pactr->Ptmpl()->FIsTdt()))\n        {\n            return;\n        }\n\n        // If have stopped cycling cels\n        if (_fCyclingCels && !(pcmd->grfcust & fcustCmd))\n        {\n            _fCyclingCels = fFalse;\n            _tsLast = tsCurrent;\n        }\n\n        // Start recording unless we're cycling cels\n        if (!_fCyclingCels && !pactr->FIsModeRecord() && pactr->FIsRecordValid(dxrWld, dyrWld, dzrWld, tsCurrent))\n        {\n            if (!pactr->FBeginRecord(tsCurrent, FRecordDefault(), _pactrRestore))\n                break; // an Oom erc has already been pushed\n\n            // If rerecording, nuke the remainder of the subroute\n            if (FRecordDefault())\n                pactr->DeleteFwdCore(fFalse);\n\n            Pmvie()->Pmcc()->Recording(fTrue, FRecordDefault());\n        }\n\n        if (_fCyclingCels)\n        {\n            if (pcmd->grfcust & fcustCmd) // still cycling\n            {\n                if ((tsCurrent - _tsLast) < kdtsCycleCels)\n                {\n                    break;\n                }\n                _tsLast = tsCurrent;\n                if (!pactr->FSetActionCore(pactr->AnidCur(), pactr->CelnCur() + 1, fFrozen))\n                {\n                    break; // an Oom erc has already been pushed\n                }\n                Pmvie()->MarkViews();\n            }\n        }\n        else if (pactr->FIsModeRecord()) // just recording\n        {\n            if ((tsCurrent - _tsLast) < kdtsFrame)\n            {\n                break;\n            }\n            _tsLast = tsCurrent;\n            if (fFrozen)\n            {\n                grfmaf |= fmafFreeze;\n            }\n\n            if (_fRespectGround)\n            {\n                grfmaf |= fmafGround;\n            }\n\n            if (!pactr->FRecordMove(dxrWld, dyrWld, dzrWld, grfmaf, tsCurrent, &fLonger, &fStep, _pactrRestore))\n            {\n                // Oom erc already pushed\n                break;\n            }\n            if (fLonger) // If a point was added to the path\n            {\n                // update scroll bars\n                Pmvie()->Pmcc()->UpdateScrollbars();\n                if (fStep)\n                    AdjustCursor(pcmd->xp, pcmd->yp);\n                Pmvie()->MarkViews();\n            }\n        }\n    }\n    break;\n    }\n}\n\n/***************************************************************************\n *\n * Handle Mouseup\n *\n * Parameters:\n *  pcmd - The mouse command.\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVU::_MouseUp(CMD_MOUSE *pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PMVIE pmvie;\n    PSCEN pscen;\n    PACTR pactr = pvNil;\n    PACTR pactrDup;\n    PSUNA psuna;\n\n    pmvie = Pmvie();\n    AssertPo(pmvie, 0);\n\n    _grfcust = fcustNil;\n\n    if (Tool() != toolPlace || _fMouseDownSeen)\n        RestoreKeyboardRepeat();\n\n    if (_fPause)\n    {\n\n        Assert(Pmvie()->FPlaying(), \"Bad Pause type\");\n\n        //\n        // If we are pausing in the middle of playing, restart playing\n        //\n        if (!pmvie->Pclok()->FSetAlarm(0, pmvie))\n        {\n            CMD cmd;\n\n            pmvie->SetFStopPlaying(fTrue);\n            cmd.pcmh = pmvie;\n            cmd.cid = cidAlarm;\n            pmvie->FCmdAlarm(&cmd);\n        }\n\n        goto LEndTracking;\n    }\n\n    if (Pmvie()->FPlaying())\n    {\n        goto LEndTracking;\n    }\n\n    Pmvie()->Pmcc()->StopUISound();\n\n    pscen = pmvie->Pscen();\n    AssertNilOrPo(pscen, 0);\n    if (pvNil == pscen)\n    {\n        goto LEndTracking;\n    }\n\n    pactr = pscen->PactrSelected();\n    AssertNilOrPo(pactr, 0);\n    if (pvNil != pactr && Tool() != toolPlace)\n    {\n        _ActorClicked(pactr, fFalse);\n    }\n\n    switch (Tool())\n    {\n    case toolDefault:\n    case toolActorSelect:\n        break;\n\n    case toolPlace:\n\n        if (!_fMouseDownSeen)\n        {\n            return;\n        }\n\n        pactr = Pmvie()->Pscen()->PactrSelected();\n        AssertPo(pactr, 0);\n        pactrDup = _pactrUndo;\n        AssertNilOrPo(pactrDup, 0);\n\n        SetTool(toolCompose);\n        Pmvie()->Pmcc()->ChangeTool(toolCompose);\n\n        //\n        // Now check if the actor is out of view\n        //\n        if (!pactr->FIsInView())\n        {\n\n            //\n            // _pactrUndo is pvNil if this is a new actor, else it is\n            // an actor from the roll call.\n            //\n            if (_pactrUndo != pvNil)\n            {\n                Pmvie()->Pscen()->FAddActrCore(_pactrUndo); // Replace old actor with saved version.\n                vpcex->EnqueueCid(cidActorPlacedOutOfView, pvNil, pvNil, _pactrUndo->Arid());\n                ReleasePpo(&_pactrUndo);\n            }\n            else\n            {\n                pactr->AddRef();\n                AssertDo(Pmvie()->FAddToRollCall(pactr, pvNil), \"Should never fail\");\n                Pmvie()->Pscen()->RemActrCore(pactr->Arid());\n                vpcex->EnqueueCid(cidActorPlacedOutOfView, pvNil, pvNil, pactr->Arid());\n                ReleasePpo(&pactr);\n            }\n\n            WarpCursToCenter();\n            vpappb->ShowCurs();\n            break;\n        }\n        else if (_pactrUndo == pvNil)\n        {\n            //\n            // _pactrUndo is pvNil if this is a new actor, else it is\n            // an actor from the roll call.\n            //\n            AssertDo(Pmvie()->FAddToRollCall(pactr, pvNil), \"Should never fail\");\n        }\n\n        //\n        // Now build an undo object for the placing of the actor\n        //\n        psuna = SUNA::PsunaNew();\n\n        if ((psuna == pvNil) || ((_pactrUndo == pvNil) && !pactr->FDup(&pactrDup, fTrue)))\n        {\n\n            PushErc(ercSocNotUndoable);\n            ReleasePpo(&pactrDup);\n            Pmvie()->ClearUndo();\n        }\n        else\n        {\n\n            pactrDup->SetArid(pactr->Arid());\n            psuna->SetType(_pactrUndo == pvNil ? utAdd : utRep);\n            psuna->SetActr(pactrDup);\n            if (_pactrUndo != pvNil)\n            {\n                pactrDup->AddRef();\n            }\n\n            if (!Pmvie()->FAddUndo(psuna))\n            {\n                PushErc(ercSocNotUndoable);\n                Pmvie()->ClearUndo();\n            }\n\n            Pmvie()->Pmcc()->EnableActorTools();\n        }\n\n        ReleasePpo(&_pactrUndo);\n        ReleasePpo(&psuna);\n        WarpCursToActor(pactr);\n        vpappb->ShowCurs();\n        vpcex->EnqueueCid(cidActorPlaced, pvNil, pvNil, pactr->Arid());\n        break;\n\n    case toolCompose:\n    case toolRotateX:\n    case toolRotateY:\n    case toolRotateZ:\n    case toolResize:\n    case toolSquashStretch:\n        if (pactr != pvNil)\n        {\n            WarpCursToActor(pactr);\n            vpappb->ShowCurs();\n        }\n        break;\n\n    case toolRecordSameAction:\n\n        if (pvNil != pactr)\n        {\n\n            if ((pactr->Ptmpl() != _ptmplTool) && !(_ptmplTool->FIsTdt() && pactr->Ptmpl()->FIsTdt()))\n            {\n                break;\n            }\n\n            pactr->FEndRecord(FRecordDefault(), _pactrRestore); // On error, Oom already pushed\n            ReleasePpo(&_pactrRestore);\n            Pmvie()->InvalViewsAndScb();\n            WarpCursToActor(pactr);\n            vpappb->ShowCurs();\n        }\n\n        if (_fSetFRecordDefault)\n        {\n            _fSetFRecordDefault = fFalse;\n            SetFRecordDefault(fTrue);\n        }\n\n        Pmvie()->Pmcc()->Recording(fFalse, FRecordDefault());\n\n        break;\n\n    case toolSoonerLater:\n        if (pactr != pvNil)\n        {\n            Assert(pactr->FTimeFrozen(), \"Something odd is going on\");\n\n            PACTR pactrDup;\n            PAUND paund;\n\n            paund = AUND::PaundNew();\n            if ((paund == pvNil) || !pactr->FDup(&pactrDup, fTrue))\n            {\n                Pmvie()->ClearUndo();\n                PushErc(ercSocNotUndoable);\n            }\n            else\n            {\n                paund->SetPactr(pactrDup);\n                ReleasePpo(&pactrDup);\n                paund->SetArid(pactr->Arid());\n                paund->SetSoonerLater(fTrue);\n                paund->SetNfrmLast(Pmvie()->Pscen()->Nfrm());\n\n                if (!Pmvie()->FAddUndo(paund))\n                {\n                    Pmvie()->ClearUndo();\n                    PushErc(ercSocNotUndoable);\n                }\n            }\n\n            ReleasePpo(&paund);\n\n            Pmvie()->Pbwld()->MarkDirty();\n            Pmvie()->MarkViews();\n\n            Pmvie()->Pmcc()->StartSoonerLater();\n        }\n\n        break;\n\n    case toolNormalizeRot:\n    case toolNormalizeSize:\n    case toolCostumeCmid:\n    case toolSceneNuke:\n    case toolActorNuke:\n    case toolSceneChop:\n    case toolSceneChopBack:\n    case toolCutObject:\n    case toolCopyObject:\n    case toolPasteObject:\n    case toolCopyRte:\n    case toolTboxPaintText:\n    case toolTboxFillBkgd:\n    case toolTboxMove:\n    case toolTboxFont:\n    case toolTboxSize:\n    case toolTboxStyle:\n    case toolActorEasel:\n    case toolTboxStory:\n    case toolTboxCredit:\n    case toolSounder:\n    case toolLooper:\n    case toolMatcher:\n        break;\n\n    default:\n        Bug(\"Tool unknown on mouse up\");\n    }\n    AssertNilOrPo(_paund, 0);\n    ReleasePpo(&_paund); // If you just did a mousedown then mouseup, we have a leftover\n                         // undo object that we don't want.  So nuke it.\n\nLEndTracking:\n\n    vpcex->EndMouseTracking();\n\n    // Remove any cursor clipping we may have begun when mouse tracking started.\n#ifdef WIN\n    ClipCursor(NULL);\n#endif // WIN\n}\n\n/***************************************************************************\n *\n * Handles the Cut, Copy, Paste and Clear commands, by setting the appropriate\n * tool.\n *\n * Parameters:\n *  pcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it processed the command, else fFalse.\n *\n **************************************************************************/\nbool MVU::FCmdClip(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PTBOX ptbox;\n    PDOCB pdocb;\n    bool fOV = fFalse;\n    CMD cmd;\n\n    //\n    // Check for O-V model for text in text box.\n    //\n    if (Pmvie()->Pscen() != pvNil)\n    {\n        AssertPo(Pmvie()->Pscen(), 0);\n\n        if (FTextMode())\n        {\n            ptbox = Pmvie()->Pscen()->PtboxSelected();\n\n            if ((ptbox != pvNil) && !ptbox->FIsVisible())\n            {\n                ptbox = pvNil;\n            }\n        }\n        else\n        {\n            ptbox = pvNil;\n        }\n\n        AssertNilOrPo(ptbox, 0);\n\n        if (pcmd->cid == cidPasteTool && vpclip->FGetFormat(kclsACLP, &pdocb))\n        {\n            fOV = !((PACLP)pdocb)->FRouteOnly();\n            ReleasePpo(&pdocb);\n        }\n        else if (((ptbox != pvNil) && ptbox->FTextSelected()) ||\n                 ((pcmd->cid == cidPasteTool) && vpclip->FGetFormat(kclsTCLP)))\n        {\n            if (ptbox != pvNil)\n            {\n                CMD cmd = *pcmd;\n\n                cmd.pcmh = ptbox->PddgGet(0);\n                vpcex->EnqueueCmd(&cmd);\n            }\n            fOV = fTrue;\n        }\n    }\n\n    cmd = *pcmd;\n\n    switch (pcmd->cid)\n    {\n    case cidCutTool:\n        if (fOV)\n        {\n            cmd.cid = cidCut;\n            vpcex->EnqueueCmd(&cmd);\n        }\n        else\n        {\n            SetTool(toolCutObject);\n        }\n        break;\n\n    case cidCopyTool:\n        if (fOV)\n        {\n            cmd.cid = cidCopy;\n            vpcex->EnqueueCmd(&cmd);\n        }\n        else\n        {\n            SetTool(toolCopyObject);\n        }\n\n        break;\n\n    case cidPasteTool:\n        if (fOV)\n        {\n\n            if (vpclip->FGetFormat(kclsTCLP) || vpclip->FGetFormat(kclsACLP))\n            {\n                FDoClip(toolPasteObject);\n            }\n            else\n            {\n                cmd.cid = cidPaste;\n                vpcex->EnqueueCmd(&cmd);\n            }\n        }\n        else\n        {\n            SetTool(toolPasteObject);\n        }\n\n        break;\n\n    case cidCopyRoute:\n        SetTool(toolCopyRte);\n        break;\n\n    case cidPaste:\n\n        FDoClip(toolPasteObject);\n        break;\n\n    case cidShiftCut:\n        _grfcust = fcustShift;\n    case cidCut:\n        FDoClip(toolCutObject);\n        _grfcust = fcustNil;\n        break;\n\n    case cidShiftCopy:\n        _grfcust = fcustShift;\n    case cidCopy:\n        FDoClip(toolCopyObject);\n        _grfcust = fcustNil;\n        break;\n\n    default:\n        Bug(\"Unknown command\");\n    }\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Handles the Cut, Copy, Paste and Clear commands.\n *\n * Parameters:\n *  tool - The tool to apply.\n *\n * Returns:\n *  fTrue if it processed the command, else fFalse.\n *\n **************************************************************************/\nbool MVU::FDoClip(long tool)\n{\n    AssertThis(0);\n\n    PDOCB pdocb = pvNil;\n\n    switch (tool)\n    {\n    case toolCutObject:\n    case toolCopyObject:\n    case toolCopyRte:\n\n        //\n        // copy the selection\n        //\n        if (!_FCopySel(&pdocb, tool == toolCopyRte))\n        {\n            return fTrue;\n        }\n        vpclip->Set(pdocb);\n        ReleasePpo(&pdocb);\n\n        if (tool == toolCutObject)\n        {\n            _ClearSel();\n        }\n\n        Pmvie()->Pmcc()->PlayUISound(tool);\n\n        break;\n\n    case toolPasteObject:\n        if (!vpclip->FDocIsClip(pvNil))\n        {\n            PTCLP ptclp;\n\n            if (vpclip->FGetFormat(kclsTCLP, (PDOCB *)&ptclp))\n            {\n                AssertPo(ptclp, 0);\n\n                if (Pmvie()->Pscen() == pvNil)\n                {\n                    ReleasePpo(&ptclp);\n                    return (fFalse);\n                }\n\n                if (ptclp->FPaste(Pmvie()->Pscen()))\n                {\n                    ReleasePpo(&ptclp);\n                    Pmvie()->Pmcc()->EnableTboxTools();\n                    Pmvie()->Pmcc()->PlayUISound(tool);\n                    return (fTrue);\n                }\n\n                ReleasePpo(&ptclp);\n                Pmvie()->Pmcc()->PlayUISound(tool);\n                return (fFalse);\n            }\n            else\n            {\n                _FPaste(vpclip);\n                Pmvie()->Pmcc()->PlayUISound(tool);\n            }\n        }\n        break;\n\n    default:\n        Bug(\"Bad Tool\");\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n *\n * Handles the Undo and Redo commands.\n *\n * Parameters:\n *  pcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it processed the command, else fFalse.\n *\n **************************************************************************/\nbool MVU::FCmdUndo(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    bool fRet;\n\n    if (pcmd->cid == cidUndo)\n    {\n        Pmvie()->Pmcc()->PlayUISound(toolUndo);\n    }\n    else\n    {\n        Pmvie()->Pmcc()->PlayUISound(toolRedo);\n    }\n\n    fRet = MVU_PAR::FCmdUndo(pcmd);\n    Pmvie()->Pmcc()->SetUndo(Pmvie()->CundbUndo() != 0   ? undoUndo\n                             : Pmvie()->CundbRedo() != 0 ? undoRedo\n                                                         : undoDisabled);\n\n    Pmvie()->InvalViewsAndScb();\n    return (fRet);\n}\n\n/***************************************************************************\n *\n * Handles the Copying whatever is currently selected.\n *\n * Don't worry about tboxes, because if a tbox is selected it will\n * get the cut/copy/paste command.\n *\n * Parameters:\n *  ppdocb - Pointer to a place to store a pointer to the resulting docb.\n *\tfRteOnly - fTrue if to copy an actors route only, else fFalse.\n *\n * Returns:\n *  fTrue if it was successful, else fFalse.\n *\n **************************************************************************/\nbool MVU::_FCopySel(PDOCB *ppdocb, bool fRteOnly)\n{\n    AssertThis(0);\n\n    PACTR pactr;\n    PACLP paclp;\n\n    if (FTextMode())\n    {\n        return (fFalse);\n    }\n\n    if (Pmvie()->Pscen() == pvNil)\n    {\n        return (fFalse);\n    }\n\n    pactr = Pmvie()->Pscen()->PactrSelected();\n    AssertNilOrPo(pactr, 0);\n\n    if ((pactr == pvNil) || !pactr->FIsInView())\n    {\n        PushErc(ercSocNoActrSelected);\n        return (fFalse);\n    }\n\n    paclp = ACLP::PaclpNew(pactr, fRteOnly, FPure(_grfcust & fcustShift));\n    AssertNilOrPo(paclp, 0);\n\n    *ppdocb = (PDOCB)paclp;\n\n    return (paclp != pvNil);\n}\n\n/***************************************************************************\n *\n * Handles the deleting whatever is currently selected.\n *\n * Don't worry about tboxes, because if a tbox is selected it will\n * get the cut/copy/paste command.\n *\n * Parameters:\n *  None.\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVU::_ClearSel()\n{\n    AssertThis(0);\n\n    PACTR pactr;\n    bool fAlive;\n    bool fEnableSounds;\n\n    if (Pmvie()->Pscen() == pvNil)\n    {\n        return;\n    }\n\n    pactr = Pmvie()->Pscen()->PactrSelected();\n\n    if (pactr == pvNil)\n    {\n        PushErc(ercSocNoActrSelected);\n        return;\n    }\n\n    AssertPo(pactr, 0);\n\n    fEnableSounds = !(FPure(Pmvie()->Pscen()->GrfScen() & fscenSounds));\n    Pmvie()->Pscen()->Disable(fscenSounds);\n    if (!pactr->FDelete(&fAlive, FPure(_grfcust & fcustShift)))\n    {\n        if (fEnableSounds)\n            Pmvie()->Pscen()->Enable(fscenSounds);\n        return;\n    }\n    if (fEnableSounds)\n        Pmvie()->Pscen()->Enable(fscenSounds);\n\n    if (!fAlive)\n    {\n        Pmvie()->Pscen()->RemActrCore(pactr->Arid());\n    }\n    else\n    {\n        //\n        // According to design, if this fails, it is\n        // ok to leave the actor on the stage.\n        //\n        pactr->FRemFromStageCore();\n    }\n\n    Pmvie()->Pscen()->MarkDirty();\n    Pmvie()->InvalViews();\n}\n\n/***************************************************************************\n *\n * Handles the Pasting whatever is currently in the clipboard.\n *\n * Don't worry about tboxes, because if a tbox is selected it will\n * get the cut/copy/paste command.\n *\n * Parameters:\n *  pdocb - The pointer to the resulting docb.\n *\n * Returns:\n *  fTrue if it was successful, else fFalse.\n *\n **************************************************************************/\nbool MVU::_FPaste(PCLIP pclip)\n{\n    AssertThis(0);\n    AssertPo(pclip, 0);\n\n    PACLP paclp;\n    PTCLP ptclp;\n    PACTR pactr;\n    bool fRet;\n\n    if (pclip->FGetFormat(kclsACLP, (PDOCB *)&paclp))\n    {\n        AssertPo(paclp, 0);\n\n        if (Pmvie()->Pscen() == pvNil)\n        {\n            PushErc(ercSocNoScene);\n            return (fFalse);\n        }\n\n        if (paclp->FRouteOnly() && FTextMode())\n        {\n            PushErc(ercSocCannotPasteThatHere);\n            ReleasePpo(&paclp);\n            return (fTrue);\n        }\n\n        pactr = Pmvie()->Pscen()->PactrSelected();\n        AssertNilOrPo(pactr, 0);\n\n        if (paclp->FRouteOnly() && ((pactr == pvNil) || !pactr->FIsInView()))\n        {\n            PushErc(ercSocNoActrSelected);\n            ReleasePpo(&paclp);\n            return (fTrue);\n        }\n\n        fRet = paclp->FPaste(Pmvie());\n        ReleasePpo(&paclp);\n        return fRet;\n    }\n\n    if (pclip->FGetFormat(kclsTCLP, (PDOCB *)&ptclp))\n    {\n        AssertPo(ptclp, 0);\n\n        if (Pmvie()->Pscen() == pvNil)\n        {\n            PushErc(ercSocNoScene);\n            return (fFalse);\n        }\n\n        fRet = ptclp->FPaste(Pmvie()->Pscen());\n        ReleasePpo(&ptclp);\n        return fRet;\n    }\n\n    PushErc(ercSocCannotPasteThatHere);\n    return (fFalse);\n}\n\n/***************************************************************************\n *\n * Handle a close command.\n *\n * Parameters:\n *\tfAssumeYes - Should the dialog assume yes.\n *\n * Returns:\n * \tfTrue if the client should close this document.\n *\n **************************************************************************/\nbool MVU::FCloseDoc(bool fAssumeYes, bool fSaveDDG)\n{\n    AssertThis(0);\n    bool fRet;\n    FNI fni;\n\n    //\n    // FQueryClose calls FAutosave depending on the result of the query.\n    // FAutosave needs to know whether the doc is closing as unused user\n    // sounds are to be deleted from the movie only upon close.\n    //\n    Pmvie()->SetDocClosing(fTrue);\n    // If not dirty, flush snds on close without user query\n    // Irrelevant if there are no user sounds in the movie or if\n    // the file is read-only (can't save to the original file)\n    if (!Pmvie()->FDirty() && Pmvie()->FUnusedSndsUser() && !Pmvie()->FReadOnly() && Pmvie()->FGetFni(&fni))\n    {\n        vpappb->BeginLongOp();\n        fRet = _pdocb->FSave(); // Flush sounds\n        goto LSaved;\n    }\n\n    if (Pmvie()->Cscen() > 0)\n    {\n        fRet = _pdocb->FQueryClose(fAssumeYes ? fdocAssumeYes : fdocNil);\n    }\n    else\n    {\n        fRet = fTrue;\n    }\n    vpappb->BeginLongOp();\n\nLSaved:\n    Pmvie()->SetDocClosing(fFalse);\n    if (fRet && !fSaveDDG)\n    {\n        // Beware: the following line destroys the this pointer!\n        _pdocb->CloseAllDdg();\n    }\n    vpappb->EndLongOp();\n    return fRet;\n}\n\n/***************************************************************************\n *\n * Handle a save, save as or save a copy command.\n *\n * Parameters:\n *\tpcmd - The command to process\n *\n * Returns:\n *  fTrue.\n *\n **************************************************************************/\nbool MVU::FCmdSave(PCMD pcmd)\n{\n    if (Pmvie()->Cscen() < 1)\n    {\n        PushErc(ercSocSaveFailure);\n    }\n    else\n    {\n        _pdocb->FSave(pcmd->cid);\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n *\n * Note that we have had an idle loop.\n *\n * Parameters:\n *\tpcmd - Pointer to the command to process.\n *\n * Returns:\n *  fFalse.\n *\n ***************************************************************************/\nbool MVU::FCmdIdle(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    Pmvie()->SetFIdleSeen(fTrue);\n    return (fFalse);\n}\n\n/***************************************************************************\n *\n * Note that the mouse is no longer on the view.\n *\n * Parameters:\n *\tpcmd - Pointer to the command to process.\n *\n * Returns:\n *  fFalse.\n *\n ***************************************************************************/\nbool MVU::FCmdRollOff(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (_fMouseOn && (Tool() == toolListener))\n    {\n        Pmvie()->Pmsq()->StopAll();\n    }\n\n    _fMouseOn = fFalse;\n\n    return (fFalse);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n *\n * Assert the validity of the MVU.\n *\n * Parameters:\n *  grf - Bit field of options\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVU::AssertValid(ulong grf)\n{\n    MVU_PAR::AssertValid(fobjAllocated);\n}\n\n/***************************************************************************\n *\n * Mark memory used by the MVU\n *\n * Parameters:\n *  None.\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MVU::MarkMem(void)\n{\n    AssertThis(0);\n    MVU_PAR::MarkMem();\n    MarkMemObj(Pmvie());\n}\n#endif // DEBUG\n\n//\n//\n//\n// UNDO STUFF\n//\n//\n//\n\n/****************************************************\n *\n * Public constructor for movie undo objects for scene\n * related commands.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie undo.\n *\n ****************************************************/\nPMUNS MUNS::PmunsNew()\n{\n    PMUNS pmuns;\n    pmuns = NewObj MUNS();\n    return (pmuns);\n}\n\n/****************************************************\n *\n * Destructor for movies undo objects\n *\n ****************************************************/\nMUNS::~MUNS(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pscen);\n}\n\n/****************************************************\n *\n * Does a command stored in an undo object.\n *\n * Parameters:\n *\tpdocb - The owning document.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool MUNS::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n\n    TAG tagOld;\n\n    switch (_munst)\n    {\n    case munstInsScen:\n        if (!_pmvie->FNewScenInsCore(_iscen))\n        {\n            goto LFail;\n        }\n        if (!_pmvie->Pscen()->FSetBkgdCore(&_tag, &tagOld))\n        {\n            _pmvie->FRemScenCore(_iscen);\n            goto LFail;\n        }\n\n        _pmvie->Pmcc()->SceneUnnuked();\n        break;\n\n    case munstRemScen:\n        if (!_pmvie->FRemScenCore(_iscen))\n        {\n            goto LFail;\n        }\n        _pmvie->Pmcc()->SceneNuked();\n        break;\n\n    default:\n        Bug(\"Unknown munst\");\n        goto LFail;\n    }\n\n    _pmvie->Pmsq()->FlushMsq();\n    return (fTrue);\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo(); //  After this, _pmvie is invalid\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Undoes a command stored in an undo object.\n *\n * Parameters:\n *\tpdocb - The owning document.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool MUNS::FUndo(PDOCB pdocb)\n{\n    AssertThis(0);\n\n    switch (_munst)\n    {\n    case munstInsScen:\n        if (!_pmvie->FRemScenCore(_iscen))\n        {\n            goto LFail;\n        }\n        _pmvie->Pmcc()->SceneNuked();\n        break;\n\n    case munstRemScen:\n        if (!_pmvie->FInsScenCore(_iscen, _pscen))\n        {\n            goto LFail;\n        }\n        _pmvie->Pmcc()->SceneUnnuked();\n\n        break;\n\n    default:\n        Bug(\"Unknown munst\");\n        goto LFail;\n    }\n\n    _pmvie->Pmsq()->FlushMsq();\n    return (fTrue);\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo(); //  After this, _pmvie is invalid\n    return (fFalse);\n}\n\n#ifdef DEBUG\n/****************************************************\n * Mark memory used by the MUNS\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid MUNS::MarkMem(void)\n{\n    AssertThis(0);\n    MUNS_PAR::MarkMem();\n    MarkMemObj(_pscen);\n}\n\n/***************************************************************************\n *\n * Assert the validity of the MUNS.\n *\n * Parameters:\n *  grf - Bit field of options\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MUNS::AssertValid(ulong grf)\n{\n    AssertNilOrPo(_pscen, 0);\n}\n#endif // DEBUG\n\n#ifdef DEBUG\n/***************************************************************************\n *\n * Assert the validity of the MUNB.\n *\n * Parameters:\n *  grf - Bit field of options\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MUNB::AssertValid(ulong grf)\n{\n    MUNB_PAR::AssertValid(fobjAllocated);\n    AssertPo(_pmvie, 0);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/engine/msnd.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    msnd.cpp: Movie Sound class\n\n    Primary Authors: *****, *****\n    Status:  Reviewed\n\n    A MSND (movie sound) owns a MIDI or WAVE child chunk, and also\n    specifies what sound type (sty) this sound is, and the default\n    volume for the sound.\n\n    Here's how the chunks look:\n\n    MSND\n     |\n     +---MIDI or WAVE (chid 0) // actual sound data\n\n    An MSND chunk with no child is a \"no sound\" or silent sound.\n    An MSND chunk with _fInvalid set requires no child.\n\n***************************************************************************/\n#include \"soc.h\"\n#include \"audioman.h\"\n\nASSERTNAME\n\nRTCLASS(MSND)\nRTCLASS(MSQ)\n\nBEGIN_CMD_MAP(MSQ, CMH)\nON_CID_ME(cidAlarm, &MSQ::FCmdAlarm, pvNil)\nEND_CMD_MAP_NIL()\n\n// default sound import format\nconst WORD knSamplesPerSec = 11025;\nconst WORD knAvgBytesPerSec = 11025;\nconst WORD kwBitsPerSample = 8;\nconst WORD knChannels = 1;\nconst WORD knBlockAlign = 1;\n\n/***************************************************************************\n\n    A PFNRPO to read a MSND from a file\n\n***************************************************************************/\nbool MSND::FReadMsnd(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n\n    MSND *pmsnd;\n\n    *pcb = size(MSND); // estimate MSND size\n    if (pvNil == ppbaco)\n        return fTrue;\n\n    pmsnd = NewObj MSND();\n    if (pvNil == pmsnd || !pmsnd->_FInit(pcrf->Pcfl(), ctg, cno))\n    {\n        TrashVar(ppbaco);\n        TrashVar(pcb);\n        ReleasePpo(&pmsnd);\n        return fFalse;\n    }\n\n    pmsnd->_prca = pcrf;\n    AssertPo(pmsnd, 0);\n    *ppbaco = pmsnd;\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Retrieve information contained in the msnd chunk\n\n***************************************************************************/\nbool MSND::FGetMsndInfo(PCFL pcfl, CTG ctg, CNO cno, bool *pfInvalid, long *psty, long *pvlm)\n{\n    AssertPo(pcfl, 0);\n\n    PMSND pmsnd;\n    pmsnd = NewObj MSND();\n    if (pvNil == pmsnd)\n        return pvNil;\n\n    if (!pmsnd->_FInit(pcfl, ctg, cno))\n    {\n        ReleasePpo(&pmsnd);\n        return fFalse;\n    }\n\n    if (pvNil != pfInvalid)\n        *pfInvalid = pmsnd->_fInvalid;\n    if (pvNil != psty)\n        *psty = pmsnd->_sty;\n    if (pvNil != pvlm)\n        *pvlm = pmsnd->_vlm;\n    ReleasePpo(&pmsnd);\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Init a MSND from the given chunk of the given CFL\n\n***************************************************************************/\nbool MSND::_FInit(PCFL pcfl, CTG ctg, CNO cno)\n{\n    AssertBaseThis(0);\n    AssertPo(pcfl, 0);\n\n    BLCK blck;\n    MSNDF msndf;\n    KID kid;\n\n    if (!pcfl->FFind(ctg, cno, &blck) || !blck.FUnpackData())\n        goto LFail;\n    if (blck.Cb() > size(MSNDF))\n        goto LFail;\n    if (!blck.FReadRgb(&msndf, size(MSNDF), 0))\n        goto LFail;\n    if (kboCur != msndf.bo)\n        SwapBytesBom(&msndf, kbomBkgdf);\n    Assert(kboCur == msndf.bo, \"bad MSNDF\");\n\n    if (!pcfl->FGetName(ctg, cno, &_stn))\n        return fFalse;\n\n    _sty = msndf.sty;\n    _vlm = msndf.vlmDefault;\n    _fInvalid = msndf.fInvalid;\n    if (_fInvalid)\n        return fTrue;\n\n    // If there is a SND child, it is not a \"no sound\"\n    if (pcfl->FGetKidChid(ctg, cno, kchidSnd, &kid))\n    {\n        _cnoSnd = kid.cki.cno;\n        _ctgSnd = kid.cki.ctg;\n        _fNoSound = tribool::tNo;\n    }\n    else\n        _fNoSound = tribool::tYes;\n\n    return fTrue;\nLFail:\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Write an MSND MIDI chunk to file *pcfl\n    ie, write the MSND chunk, its name, and the midi child\n\n***************************************************************************/\nbool MSND::FWriteMidi(PCFL pcflDest, PMIDS pmids, STN *pstnName, CNO *pcno)\n{\n    AssertPo(pcflDest, 0);\n    AssertPo(pmids, 0);\n    AssertVarMem(pstnName);\n    AssertVarMem(pcno);\n\n    MSNDF msndf;\n    BLCK blck;\n    CNO cno;\n\n    msndf.bo = kboCur;\n    msndf.osk = koskCur;\n    msndf.sty = styMidi;\n    msndf.vlmDefault = kvlmFull;\n    msndf.fInvalid = fFalse;\n\n    // Create the msnd chunk\n    if (!pcflDest->FAddPv(&msndf, size(MSNDF), kctgMsnd, pcno))\n        return fFalse;\n\n    // Create the midi chunk as a child of the msnd chunk\n    if (!pcflDest->FAddChild(kctgMsnd, *pcno, kchidSnd, pmids->CbOnFile(), kctgMidi, &cno, &blck))\n        goto LFail;\n\n    if (!pmids->FWrite(&blck))\n        goto LFail;\n\n    if (!pcflDest->FSetName(kctgMsnd, *pcno, pstnName))\n        goto LFail;\n\n    return fTrue;\n\nLFail:\n    pcflDest->Delete(kctgMsnd, *pcno); // Deletes the midi chunk also\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Write an MSND Wave file to a file\n    ie, write the MSND chunk, its name, and the midi child\n\n***************************************************************************/\nbool MSND::FWriteWave(PFIL pfilSrc, PCFL pcflDest, long sty, STN *pstnName, CNO *pcno)\n{\n    AssertPo(pfilSrc, 0);\n    AssertIn(sty, 0, styLim);\n    AssertVarMem(pstnName);\n    AssertVarMem(pcno);\n\n    MSNDF msndf;\n    CNO cno;\n    FLO floSrc;\n    FLO floDest;\n\n    msndf.bo = kboCur;\n    msndf.osk = koskCur;\n    msndf.sty = sty;\n    msndf.vlmDefault = kvlmFull;\n    msndf.fInvalid = fFalse;\n\n    floSrc.pfil = pfilSrc;\n    floSrc.cb = pfilSrc->FpMac();\n    floSrc.fp = 0;\n\n    // Create the msnd chunk\n    if (!pcflDest->FAddPv(&msndf, size(MSNDF), kctgMsnd, pcno))\n        return fFalse;\n\n    // Create the wave chunk as a child of the msnd chunk\n    if (!pcflDest->FAddChild(kctgMsnd, *pcno, kchidSnd, floSrc.cb, kctgWave, &cno))\n        goto LFail;\n\n    if (!pcflDest->FFindFlo(kctgWave, cno, &floDest))\n        goto LFail;\n\n    if (!floSrc.FCopy(&floDest))\n        goto LFail;\n\n    if (!pcflDest->FSetName(kctgMsnd, *pcno, pstnName))\n        goto LFail;\n\n    return fTrue;\n\nLFail:\n    pcflDest->Delete(kctgMsnd, *pcno); // Deletes the wave chunk also\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Copy the midi file to a chunk in the current movie\n    The *pcno is returned\n\n***************************************************************************/\nbool MSND::FCopyMidi(PFIL pfilSrc, PCFL pcflDest, CNO *pcno, PSTN pstn)\n{\n    AssertPo(pfilSrc, 0);\n    AssertNilOrPo(pstn, 0);\n\n    PMIDS pmids = pvNil;\n    FNI fniSrc;\n    STN stnName;\n\n    pfilSrc->GetFni(&fniSrc);\n    if (pvNil == pstn)\n        fniSrc.GetLeaf(&stnName);\n    else\n        stnName = *pstn;\n\n    pmids = MIDS::PmidsReadNative(&fniSrc);\n    if (pmids == pvNil)\n    {\n        PushErc(ercSocBadSoundFile);\n        goto LFail;\n    }\n\n    // Create the chunk & write it to this movie\n    // Adopt it later as a child of kctgMvie\n    if (!MSND::FWriteMidi(pcflDest, pmids, &stnName, pcno))\n        goto LFail;\n\n    ReleasePpo(&pmids);\n    return fTrue;\n\nLFail:\n    ReleasePpo(&pmids);\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Copy the wave file to a chunk in the current movie\n\n***************************************************************************/\nbool MSND::FCopyWave(PFIL pfilSrc, PCFL pcflDest, long sty, CNO *pcno, PSTN pstn)\n{\n    AssertPo(pfilSrc, 0);\n    AssertPo(pcflDest, 0);\n    AssertIn(sty, 0, styLim);\n    AssertVarMem(pcno);\n    Assert(sty != styMidi, \"Illegal sty argument\");\n    AssertNilOrPo(pstn, 0);\n\n    FNI fniSrc;\n    STN stnName; // sound name\n    STN stn;     // src file path name\n    WAVEFORMATEX wfxSrc;\n    LPSOUND psnd = pvNil;\n    LPSOUND psndTemp = pvNil;\n    FIL *pfilNew = pvNil;\n    STN stnNew;\n    FNI fniNew;\n    WAVEFORMATEX *pwfxDst = pvNil;\n    DWORD cbwfx;          // size of waveformatex needed\n    DWORD csampSrc;       // number of source samples\n    DWORD cbSrc;          // size of source in bytes\n    LPBYTE pbSrc = pvNil; // src data buffer\n    DWORD cbDst;          // size of dest in bytes\n    LPBYTE pbDst = pvNil; // dst data buffer\n    HACMSTREAM hacmstream = pvNil;\n    ACMSTREAMHEADER acmhdr;\n    DWORD dwTag;\n    DWORD dwLength;\n    long cbOriginalFile = 0;\n    long cbCompressedFile = 0;\n    FP fpNew;\n\n    pfilSrc->GetFni(&fniSrc);\n    if (pvNil == pstn)\n        fniSrc.GetLeaf(&stnName);\n    else\n        stnName = *pstn;\n    fniSrc.GetStnPath(&stn);\n\n    if (!fniNew.FGetTemp())\n        goto LFail;\n\n    // get the original file size\n    if (pvNil == (pfilNew = FIL::PfilOpen(&fniSrc)))\n        goto LFailPushError;\n    cbOriginalFile = pfilNew->FpMac();\n    ReleasePpo(&pfilNew);\n\n    // open the file as a pSound\n    if (FAILED(AllocSoundFromFile(&psnd, stn.Psz(), 0, fTrue, pvNil)))\n        goto LFailPushError;\n    if (FAILED(psnd->GetFormat((LPWAVEFORMATEX)&wfxSrc, size(WAVEFORMATEX))))\n        goto LFailPushError;\n\n    // if the file format is not 11M8, then create a converter to 11M8\n    if ((wfxSrc.nSamplesPerSec != knSamplesPerSec) || (wfxSrc.wBitsPerSample != kwBitsPerSample) ||\n        (wfxSrc.nChannels != knChannels))\n    {\n        // Convert the wave import to 3mm's 11M8\n        wfxSrc.nSamplesPerSec = knSamplesPerSec;\n        wfxSrc.nAvgBytesPerSec = knAvgBytesPerSec;\n        wfxSrc.wBitsPerSample = kwBitsPerSample;\n        wfxSrc.nChannels = knChannels;\n        wfxSrc.nBlockAlign = knBlockAlign;\n        if (FAILED(AllocConvertFilter(&psndTemp, psnd, (LPWAVEFORMATEX)&wfxSrc)))\n            goto LFailPushError;\n\n        ReleasePpo(&psnd);\n        psnd = psndTemp;\n        psndTemp = pvNil;\n    }\n\n    // now figure out how many total samples there are\n    csampSrc = psnd->GetSamples();\n    if (csampSrc == -1) // Don't allow infinite sources to be written\n        goto LFailPushError;\n    cbSrc = csampSrc * (wfxSrc.wBitsPerSample >> 3) * wfxSrc.nChannels;\n\n    if (FAILED(psnd->SetMode(TRUE, TRUE))) // Activate the Sound Audio Stream\n        goto LFailPushError;\n\n    // allocate a buffer big enough to hold them all\n    if (!FAllocPv((LPVOID *)&pbSrc, cbSrc, fmemNil, mprNormal))\n        goto LFail;\n\n    // get all of the samples\n    if (FAILED(psnd->GetSampleData(pbSrc, 0, &csampSrc, NULL)))\n        goto LFailPushError;\n\n    // -------------------------------------\n    // inplace compress the samples to ADPCM\n\n    // figure out the correct size for dest waveformatex (so we get the codec info)\n    if (acmMetrics(NULL, ACM_METRIC_MAX_SIZE_FORMAT, &cbwfx))\n        goto LFailPushError;\n\n    // allocate a buffer of this size\n    if (!FAllocPv((LPVOID *)&pwfxDst, cbwfx, fmemNil, mprNormal))\n        goto LFail;\n\n    // allocate a destination buffer big enough to hold them all\n    cbDst = cbSrc;\n    if (!FAllocPv((LPVOID *)&pbDst, cbDst, fmemNil, mprNormal))\n        goto LFail;\n\n    // set up the dest wfx\n    pwfxDst->wFormatTag = WAVE_FORMAT_ADPCM;\n    pwfxDst->nChannels = knChannels;\n    pwfxDst->nSamplesPerSec = knSamplesPerSec;\n    // pwfxDst->wBitsPerSample, pwfxDst->nAvgBytesPerSec, and\n    // pwfxDst->nBlockAlign  are calced by the acmFormatSuggest()\n    pwfxDst->cbSize = (WORD)cbwfx - sizeof(WAVEFORMATEX);\n\n    // fill in the coeffiecients in the destination WFX by calling acmFormatSuggest\n    if (acmFormatSuggest(NULL, &wfxSrc, pwfxDst, cbwfx,\n                         ACM_FORMATSUGGESTF_WFORMATTAG | ACM_FORMATSUGGESTF_NCHANNELS |\n                             ACM_FORMATSUGGESTF_NSAMPLESPERSEC))\n        goto LFailPushError;\n\n    // open convert stream\n    if (acmStreamOpen(&hacmstream, NULL, &wfxSrc, pwfxDst, NULL, 0, 0, ACM_STREAMOPENF_NONREALTIME))\n        goto LFailPushError;\n\n    acmhdr.cbStruct = sizeof(ACMSTREAMHEADER);\n    acmhdr.fdwStatus = 0;\n    acmhdr.dwUser = 0;\n    acmhdr.pbSrc = pbSrc;\n    acmhdr.cbSrcLength = cbSrc;\n    acmhdr.cbSrcLengthUsed = 0;\n    acmhdr.dwSrcUser = 0;\n    acmhdr.pbDst = pbDst;\n    acmhdr.cbDstLength = cbDst;\n    acmhdr.cbDstLengthUsed = 0;\n    acmhdr.dwDstUser = 0;\n\n    // prep acm convert header\n    if (acmStreamPrepareHeader(hacmstream, &acmhdr, NULL))\n        goto LFailPushError;\n\n    // now convert\n    if (acmStreamConvert(hacmstream, &acmhdr, ACM_STREAMCONVERTF_END))\n        goto LFailPushError;\n\n    // unprep header\n    if (acmStreamUnprepareHeader(hacmstream, &acmhdr, NULL))\n        goto LFailPushError;\n\n    // close stream\n    acmStreamClose(hacmstream, NULL);\n    hacmstream = pvNil;\n\n    // OK, now we have the sound file converted in memory, write out the data file...\n    // open file\n    pfilNew = FIL::PfilCreate(&fniNew);\n    if (pvNil == pfilNew)\n        goto LFail;\n    fpNew = 0;\n\n    // write out 'riff' header\n    dwTag = RIFF_TAG;\n    if (!pfilNew->FWriteRgbSeq(&dwTag, sizeof(dwTag), &fpNew))\n        goto LFail;\n    cbCompressedFile = sizeof(RIFF) + pwfxDst->cbSize + 12 - 8 +\n                       acmhdr.cbDstLengthUsed; // +12 is for fact chunk chunk, -8 for is riff chunk\n    dwLength = cbCompressedFile;\n    if (!pfilNew->FWriteRgbSeq(&dwLength, sizeof(dwLength), &fpNew))\n        goto LFail;\n\n    // write WAVE tag\n    dwTag = WAVE_TAG;\n    if (!pfilNew->FWriteRgbSeq(&dwTag, sizeof(dwTag), &fpNew))\n        goto LFail;\n\n    // write out 'fmt '\n    dwTag = FMT__TAG;\n    if (!pfilNew->FWriteRgbSeq(&dwTag, sizeof(dwTag), &fpNew))\n        goto LFail;\n    dwLength = sizeof(WAVEFORMATEX) + pwfxDst->cbSize;\n    if (!pfilNew->FWriteRgbSeq(&dwLength, sizeof(dwLength), &fpNew))\n        goto LFail;\n    if (!pfilNew->FWriteRgbSeq(pwfxDst, dwLength, &fpNew))\n        goto LFail;\n\n    // write out 'fact'\n    dwTag = FACT_TAG;\n    if (!pfilNew->FWriteRgbSeq(&dwTag, sizeof(dwTag), &fpNew))\n        goto LFail;\n    dwLength = sizeof(DWORD);\n    if (!pfilNew->FWriteRgbSeq(&dwLength, sizeof(dwLength), &fpNew))\n        goto LFail;\n    dwLength = csampSrc;\n    if (!pfilNew->FWriteRgbSeq(&dwLength, sizeof(dwLength), &fpNew))\n        goto LFail;\n\n    // write out 'data'\n    dwTag = DATA_TAG;\n    if (!pfilNew->FWriteRgbSeq(&dwTag, sizeof(dwTag), &fpNew))\n        goto LFail;\n    dwLength = acmhdr.cbDstLengthUsed;\n    if (!pfilNew->FWriteRgbSeq(&dwLength, sizeof(dwLength), &fpNew))\n        goto LFail;\n    if (!pfilNew->FWriteRgbSeq(pbDst, dwLength, &fpNew))\n        goto LFail;\n\n    // clean up conversion\n    FreePpv((LPVOID *)&pwfxDst); // free up destination waveformat\n    FreePpv((LPVOID *)&pbSrc);   // free convert src buffer\n    FreePpv((LPVOID *)&pbDst);   // free convert dest buffer\n    ReleasePpo(&pfilNew);        // release open file\n    if (psnd)\n        psnd->SetMode(FALSE, TRUE);\n    ReleasePpo(&psnd); // release sound\n\n    // -------------------------------------------------------------------\n    // Copy the original or converted file to a chunk in the current movie\n\n    // if the compressed file is larger then the original\n    if (cbCompressedFile > cbOriginalFile)\n    {\n        // then just use original file\n        if (pvNil == (pfilNew = FIL::PfilOpen(&fniSrc)))\n            goto LFail;\n    }\n    else\n    {\n        // then we use the newly compressed file\n        if (pvNil == (pfilNew = FIL::PfilOpen(&fniNew)))\n            goto LFail;\n    }\n\n    if (!MSND::FWriteWave(pfilNew, pcflDest, sty, &stnName, pcno))\n        goto LFail;\n\n    ReleasePpo(&pfilNew);\n    if (tYes == fniNew.TExists())\n        fniNew.FDelete();\n    return fTrue;\n\nLFailPushError:\n    PushErc(ercSocBadSoundFile);\nLFail:\n    if (hacmstream)\n    {\n        acmStreamClose(hacmstream, NULL);\n        hacmstream = pvNil;\n    }\n    if (psnd)\n        psnd->SetMode(FALSE, TRUE);\n\n    FreePpv((LPVOID *)&pwfxDst); // free dest waveformatex struct\n    FreePpv((LPVOID *)&pbSrc);   // free convert src buffer\n    FreePpv((LPVOID *)&pbDst);   // free convert dest buffer\n    ReleasePpo(&pfilNew);\n    ReleasePpo(&psnd);\n    if (tYes == fniNew.TExists())\n        fniNew.FDelete();\n    return fFalse;\n}\n\n/***************************************************************************\n\n    Invalidate a sound\n\n***************************************************************************/\nbool MSND::FInvalidate(void)\n{\n    AssertThis(0);\n\n    KID kid;\n    MSNDF msndf;\n\n    // Invalidate the msnd on file\n    if (!Pcrf()->Pcfl()->FGetKidChid(kctgMsnd, Cno(), kchidSnd, &kid))\n        return fFalse;\n    msndf.bo = kboCur;\n    msndf.osk = koskCur;\n    msndf.sty = _sty;\n    msndf.vlmDefault = _vlm;\n    msndf.fInvalid = fTrue;\n    if (!Pcrf()->Pcfl()->FPutPv(&msndf, size(MSNDF), Ctg(), Cno()))\n        return fFalse;\n    Pcrf()->Pcfl()->DeleteChild(Ctg(), Cno(), kid.cki.ctg, kid.cki.cno);\n\n    // Invalidate the cache representation\n    _fInvalid = fTrue;\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Clean up and delete this movie sound\n\n***************************************************************************/\nMSND::~MSND(void)\n{\n    AssertBaseThis(0);\n}\n\n/***************************************************************************\n\n    Return the sqn for an msnd attached to an actor object of\n    id == objid\n    Static function\n\n***************************************************************************/\nlong MSND::SqnActr(long sty, long objid)\n{\n    AssertIn(sty, 0, styLim);\n\n    long sqnsty = sty << ksqnStyShift;\n    return (sqnActr | sqnsty | SwLow(objid));\n}\n\n/***************************************************************************\n\n    Return the sqn for an msnd attached to an actor object of\n    id == objid\n    Static function\n\n***************************************************************************/\nlong MSND::SqnBkgd(long sty, long objid)\n{\n    long sqnsty = sty << ksqnStyShift;\n    return (sqnBkgd | sqnsty | SwLow(objid));\n}\n\n/***************************************************************************\n\n    Return the priority for a tool,sty combination\n\n***************************************************************************/\nlong MSND::Spr(long tool)\n{\n    AssertThis(0);\n    Assert(tool == toolMatcher || tool == toolSounder || tool == toolLooper, \"Invalid tool\");\n\n    switch (_sty)\n    {\n    case styMidi:\n        Assert(tool != toolMatcher, \"No midi motion matching\");\n        return 1;\n        break;\n    case stySpeech:\n        if (tool == toolSounder)\n            return 1;\n        if (tool == toolMatcher)\n            return 5;\n        return 3;\n        break;\n    case stySfx:\n        if (tool == toolSounder)\n            return 2;\n        if (tool == toolMatcher)\n            return 6;\n        return 4;\n    default:\n        Assert(0, \"Invalid sty in MSND: Spr\");\n    }\n    return 0;\n}\n\n/***************************************************************************\n\n    Play this sound\n\n***************************************************************************/\nvoid MSND::Play(long objID, bool fLoop, bool fQueue, long vlm, long spr, bool fActr, ulong dtsStart)\n{\n    AssertThis(0);\n\n    long cactRepeat;\n    long sqn; // sound queue\n    long scl; // sound class\n    long sii{};\n\n    static long _siiLastMidi;\n    static CTG _ctgLastMidi;\n    static CNO _cnoLastMidi;\n\n    if (_fInvalid)\n        return;\n\n    sqn = fActr ? SqnActr(objID) : SqnBkgd(objID);\n    cactRepeat = fLoop ? klwMax : 1;\n    scl = Scl(fLoop);\n\n    if (_sty == styMidi && _ctgSnd == _ctgLastMidi && _cnoSnd == _cnoLastMidi && vpsndm->FPlaying(_siiLastMidi))\n    {\n        // Don't restart midi if the same sound is still playing\n        return;\n    }\n\n    if (!fQueue || _fNoSound)\n        vpsndm->StopAll(sqn, sclNil);\n\n    if (!_fNoSound)\n    {\n        sii = vpsndm->SiiPlay(_prca, _ctgSnd, _cnoSnd, sqn, vlm, cactRepeat, dtsStart, spr, scl);\n    }\n\n    if (_sty == styMidi)\n    {\n        _siiLastMidi = sii;\n        _ctgLastMidi = _ctgSnd;\n        _cnoLastMidi = _cnoSnd;\n    }\n}\n\n/***************************************************************************\n\n    New MSQ\n\n***************************************************************************/\nPMSQ MSQ::PmsqNew(void)\n{\n    PMSQ pmsq;\n    if (pvNil == (pmsq = NewObj MSQ(khidMsq)))\n        return pvNil;\n\n    if (pvNil == (pmsq->_pglsqe = GL::PglNew(size(SQE), kcsqeGrow)))\n    {\n        ReleasePpo(&pmsq);\n        return pvNil;\n    }\n\n    if (pvNil == (pmsq->_pclok = NewObj CLOK(khidMsqClock)))\n    {\n        ReleasePpo(&pmsq);\n        return pvNil;\n    }\n\n    pmsq->_dtim = kdtim2Msq;\n    return pmsq;\n}\n\n/***************************************************************************\n\n    Enqueue a sound\tin the MSQ.  Overwrites sounds of the same type.\n\n***************************************************************************/\nbool MSQ::FEnqueue(PMSND pmsnd, long objID, bool fLoop, bool fQueue, long vlm, long spr, bool fActr, ulong dtsStart,\n                   bool fLowPri)\n{\n    AssertThis(0);\n    AssertPo(pmsnd, 0);\n\n    SQE sqe;\n    SQE *psqe;\n    long sqn;\n    long sqnT;\n    long isqe;\n\n    if (_dtim == kdtimOffMsq)\n        return fTrue;\n\n    sqn = fActr ? MSND::SqnActr(pmsnd->Sty(), objID) : MSND::SqnBkgd(pmsnd->Sty(), objID);\n\n    if (!fQueue)\n        for (isqe = 0; isqe < _pglsqe->IvMac(); isqe++)\n        {\n            psqe = (SQE *)_pglsqe->QvGet(isqe);\n            sqnT = psqe->fActr ? MSND::SqnActr(psqe->pmsnd->Sty(), psqe->objID)\n                               : MSND::SqnBkgd(psqe->pmsnd->Sty(), psqe->objID);\n            if (sqnT == sqn)\n            {\n                if (fLowPri)\n                    return fTrue; // Nothing to enqueue;  same type already taken\n                // Hi priority.  Get rid of lower priority sound.\n                ReleasePpo(&psqe->pmsnd);\n                _pglsqe->Delete(isqe);\n                break;\n            }\n        }\n\n    sqe.pmsnd = pmsnd;\n    pmsnd->AddRef();\n    sqe.objID = objID;\n    sqe.fLoop = fLoop;\n    sqe.fQueue = fQueue;\n    sqe.vlmMod = vlm;\n    sqe.spr = spr;\n    sqe.fActr = fActr;\n    sqe.dtsStart = dtsStart;\n\n    if (fLowPri)\n    {\n        if (!_pglsqe->FPush(&sqe))\n        {\n            ReleasePpo(&sqe.pmsnd);\n            return fFalse;\n        }\n    }\n    else if (!_pglsqe->FEnqueue(&sqe))\n    {\n        ReleasePpo(&sqe.pmsnd);\n        return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Dequeue and Play the MSQ sounds\n    If _dtim == kdtimOff, empty the queue\n\n***************************************************************************/\nvoid MSQ::PlayMsq(void)\n{\n    AssertThis(0);\n\n    SQE sqe;\n\n    if (_pglsqe->IvMac() == 0)\n        return;\n\n    if (_dtim == kdtimOffMsq)\n    {\n        FlushMsq();\n        return;\n    }\n\n    if (0 < _pglsqe->IvMac())\n    {\n        vpsndm->BeginSynch();\n\n        while (_pglsqe->FDequeue(&sqe))\n        {\n            sqe.pmsnd->Play(sqe.objID, sqe.fLoop, sqe.fQueue, sqe.vlmMod, sqe.spr, sqe.fActr, sqe.dtsStart);\n            ReleasePpo(&sqe.pmsnd);\n        }\n\n        vpsndm->EndSynch();\n    }\n\n    if (_dtim < kdtimLongMsq)\n    {\n        _pclok->Start(0);\n        if (!_pclok->FSetAlarm(_dtim, this))\n        {\n            StopAll();\n            return;\n        }\n    }\n\n    return;\n}\n\n/***************************************************************************\n\n    Flush Queue\t -  without playing the sounds\n\n***************************************************************************/\nvoid MSQ::FlushMsq(void)\n{\n    AssertThis(0);\n    SQE sqe;\n\n    while (_pglsqe->FDequeue(&sqe))\n    {\n        ReleasePpo(&sqe.pmsnd);\n    }\n}\n\n/***************************************************************************\n\n    FCmdAlarm - Timeout has elapsed.  Stop all sounds\n\n***************************************************************************/\nbool MSQ::FCmdAlarm(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    _pclok->Stop();\n    StopAll();\n    return fTrue;\n}\n\n/***************************************************************************\n\n    Clean up and delete this movie sound queue\n\n***************************************************************************/\nMSQ::~MSQ(void)\n{\n    AssertBaseThis(0);\n    StopAll();\n    FlushMsq();\n    ReleasePpo(&_pglsqe);\n    ReleasePpo(&_pclok);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the MSND.\n***************************************************************************/\nvoid MSND::AssertValid(ulong grf)\n{\n    MSND_PAR::AssertValid(fobjAllocated);\n    AssertNilOrPo(_prca, 0);\n    AssertIn(_sty, 0, styLim);\n}\n\n/***************************************************************************\n    Mark memory used by the MSND\n***************************************************************************/\nvoid MSND::MarkMem(void)\n{\n    AssertThis(0);\n    MSND_PAR::MarkMem();\n    // Note: don't mark _prca, because _prca marks us, and would cause\n    // an infinite recursive loop.\n}\n\n/***************************************************************************\n    Assert the validity of the MSQ.\n***************************************************************************/\nvoid MSQ::AssertValid(ulong grf)\n{\n    MSQ_PAR::AssertValid(fobjAllocated);\n    AssertPo(_pglsqe, 0);\n    AssertPo(_pclok, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the MSND\n***************************************************************************/\nvoid MSQ::MarkMem(void)\n{\n    AssertThis(0);\n    MSQ_PAR::MarkMem();\n    MarkMemObj(_pglsqe);\n    MarkMemObj(_pclok);\n}\n\n#endif // DEBUG\n"
  },
  {
    "path": "src/engine/mtrl.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    mtrl.cpp: Material (MTRL) and custom material (CMTL) classes\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n***************************************************************************/\n#include \"soc.h\"\nASSERTNAME\n\nRTCLASS(MTRL)\nRTCLASS(CMTL)\n\n// REVIEW *****: kiclrBaseDefault and kcclrDefault are palette-specific\nconst byte kiclrBaseDefault = 15; // base index of default color\nconst byte kcclrDefault = 15;     // count of shades in default color\n\nconst br_ufraction kbrufKaDefault = BR_UFRACTION(0.10);\nconst br_ufraction kbrufKdDefault = BR_UFRACTION(0.60);\nconst br_ufraction kbrufKsDefault = BR_UFRACTION(0.60);\nconst BRS krPowerDefault = BR_SCALAR(50);\nconst byte kbOpaque = 0xff;\n\nPTMAP MTRL::_ptmapShadeTable = pvNil; // shade table for all MTRLs\n\n/***************************************************************************\n    Call this function to assign the global shade table.  It is read from\n    the given chunk.\n***************************************************************************/\nbool MTRL::FSetShadeTable(PCFL pcfl, CTG ctg, CNO cno)\n{\n    AssertPo(pcfl, 0);\n\n    ReleasePpo(&_ptmapShadeTable);\n    _ptmapShadeTable = TMAP::PtmapRead(pcfl, ctg, cno);\n    return (pvNil != _ptmapShadeTable);\n}\n\n/***************************************************************************\n    Create a new solid-color material\n***************************************************************************/\nPMTRL MTRL::PmtrlNew(long iclrBase, long cclr)\n{\n    if (ivNil != iclrBase)\n        AssertIn(iclrBase, 0, kbMax);\n    if (ivNil != cclr)\n        AssertIn(cclr, 0, kbMax - iclrBase);\n\n    PMTRL pmtrl;\n\n    pmtrl = NewObj MTRL;\n    if (pvNil == pmtrl)\n        return pvNil;\n\n    // An arbitrary 4-character string is passed to BrMaterialAllocate (to\n    // be stored in a string pointed to by _pbmtl->identifier).  The\n    // contents of the string are then replaced by the \"this\" pointer.\n    pmtrl->_pbmtl = BrMaterialAllocate(\"1234\");\n    if (pvNil == pmtrl->_pbmtl)\n    {\n        ReleasePpo(&pmtrl);\n        return pvNil;\n    }\n    CopyPb(&pmtrl, pmtrl->_pbmtl->identifier, size(long));\n\n    pmtrl->_pbmtl->ka = kbrufKaDefault;\n    pmtrl->_pbmtl->kd = kbrufKdDefault;\n    pmtrl->_pbmtl->ks = kbrufKsDefault;\n    pmtrl->_pbmtl->power = krPowerDefault;\n    if (ivNil == iclrBase)\n        pmtrl->_pbmtl->index_base = kiclrBaseDefault;\n    else\n        pmtrl->_pbmtl->index_base = (byte)iclrBase;\n    if (ivNil == cclr)\n        pmtrl->_pbmtl->index_range = kcclrDefault;\n    else\n        pmtrl->_pbmtl->index_range = (byte)cclr;\n    pmtrl->_pbmtl->opacity = kbOpaque; // all socrates objects are opaque\n    pmtrl->_pbmtl->flags = BR_MATF_LIGHT | BR_MATF_GOURAUD;\n    BrMaterialAdd(pmtrl->_pbmtl);\n    AssertPo(pmtrl, 0);\n    return pmtrl;\n}\n\n/***************************************************************************\n    A PFNRPO to read MTRL objects.\n***************************************************************************/\nbool MTRL::FReadMtrl(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n\n    PMTRL pmtrl;\n\n    *pcb = size(MTRL);\n    if (pvNil == ppbaco)\n        return fTrue;\n    pmtrl = NewObj MTRL;\n    if (pvNil == pmtrl || !pmtrl->_FInit(pcrf, ctg, cno))\n    {\n        TrashVar(ppbaco);\n        TrashVar(pcb);\n        ReleasePpo(&pmtrl);\n        return fFalse;\n    }\n    AssertPo(pmtrl, 0);\n    *ppbaco = pmtrl;\n    return fTrue;\n}\n\n/***************************************************************************\n    Read the given MTRL chunk from file\n***************************************************************************/\nbool MTRL::_FInit(PCRF pcrf, CTG ctg, CNO cno)\n{\n    AssertBaseThis(0);\n    AssertPo(pcrf, 0);\n\n    PCFL pcfl = pcrf->Pcfl();\n    BLCK blck;\n    MTRLF mtrlf;\n    KID kid;\n    MTRL *pmtrlThis = this; // to get MTRL from BMTL\n    PTMAP ptmap = pvNil;\n\n    if (!pcfl->FFind(ctg, cno, &blck) || !blck.FUnpackData())\n        return fFalse;\n\n    if (blck.Cb() < size(MTRLF))\n        return fFalse;\n    if (!blck.FReadRgb(&mtrlf, size(MTRLF), 0))\n        return fFalse;\n    if (kboOther == mtrlf.bo)\n        SwapBytesBom(&mtrlf, kbomMtrlf);\n    Assert(kboCur == mtrlf.bo, \"bad MTRLF\");\n\n    // An arbitrary 4-character string is passed to BrMaterialAllocate (to\n    // be stored in a string pointed to by _pbmtl->identifier).  The\n    // contents of the string are then replaced by the \"this\" pointer.\n    _pbmtl = BrMaterialAllocate(\"1234\");\n    if (pvNil == _pbmtl)\n        return fFalse;\n    CopyPb(&pmtrlThis, _pbmtl->identifier, size(long));\n    _pbmtl->colour = mtrlf.brc;\n    _pbmtl->ka = mtrlf.brufKa;\n    _pbmtl->kd = mtrlf.brufKd;\n    // Note: for socrates, mtrlf.brufKs should be zero\n    _pbmtl->ks = mtrlf.brufKs;\n\n    _pbmtl->power = mtrlf.rPower;\n    _pbmtl->index_base = mtrlf.bIndexBase;\n    _pbmtl->index_range = mtrlf.cIndexRange;\n    _pbmtl->opacity = kbOpaque; // all socrates objects are opaque\n\n    // REVIEW *****: also set the BR_MATF_PRELIT flag to use prelit models\n    _pbmtl->flags = BR_MATF_LIGHT | BR_MATF_SMOOTH;\n\n    // now read texture map, if any\n    if (pcfl->FGetKidChidCtg(ctg, cno, 0, kctgTmap, &kid))\n    {\n        ptmap = (PTMAP)pcrf->PbacoFetch(kid.cki.ctg, kid.cki.cno, TMAP::FReadTmap);\n        if (pvNil == ptmap)\n            return fFalse;\n        _pbmtl->colour_map = ptmap->Pbpmp();\n        Assert((PTMAP)_pbmtl->colour_map->identifier == ptmap, \"lost tmap!\");\n        AssertPo(_ptmapShadeTable, 0);\n        _pbmtl->index_shade = _ptmapShadeTable->Pbpmp();\n        _pbmtl->flags |= BR_MATF_MAP_COLOUR;\n        _pbmtl->index_base = 0;\n        _pbmtl->index_range = _ptmapShadeTable->Pbpmp()->height - 1;\n\n        /* Look for a texture transform for the MTRL */\n        if (pcfl->FGetKidChidCtg(ctg, cno, 0, kctgTxxf, &kid))\n        {\n            TXXFF txxff;\n\n            if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck) || !blck.FUnpackData())\n                goto LFail;\n            if (blck.Cb() < size(TXXFF))\n                goto LFail;\n            if (!blck.FReadRgb(&txxff, size(TXXFF), 0))\n                goto LFail;\n            if (kboCur != txxff.bo)\n                SwapBytesBom(&txxff, kbomTxxff);\n            Assert(kboCur == txxff.bo, \"bad TXXFF\");\n            _pbmtl->map_transform = txxff.bmat23;\n        }\n    }\n    BrMaterialAdd(_pbmtl);\n    AssertThis(0);\n    return fTrue;\nLFail:\n    /* REVIEW ***** (peted): Only the code that I added uses this LFail\n        case.  It's my opinion that any API which can fail should clean up\n        after itself.  It happens that in the case of this MTRL class, when\n        the caller releases this instance, the TMAP and BMTL are freed anyway,\n        but I don't think that it's good to count on that */\n    ReleasePpo(&ptmap);\n    _pbmtl->colour_map = pvNil;\n    BrMaterialFree(_pbmtl);\n    _pbmtl = pvNil;\n    return fFalse;\n}\n\n/***************************************************************************\n    Read a PIX and build a PMTRL from it\n***************************************************************************/\nPMTRL MTRL::PmtrlNewFromPix(PFNI pfni)\n{\n    AssertPo(pfni, ffniFile);\n\n    STN stn;\n    PMTRL pmtrl;\n    PBMTL pbmtl;\n    PTMAP ptmap;\n\n    pmtrl = NewObj MTRL;\n    if (pvNil == pmtrl)\n        goto LFail;\n\n    // An arbitrary 4-character string is passed to BrMaterialAllocate (to\n    // be stored in a string pointed to by _pbmtl->identifier).  The\n    // contents of the string are then replaced by the \"this\" pointer.\n    pmtrl->_pbmtl = BrMaterialAllocate(\"1234\");\n    if (pvNil == pmtrl->_pbmtl)\n        goto LFail;\n    pbmtl = pmtrl->_pbmtl;\n    CopyPb(&pmtrl, pbmtl->identifier, size(long));\n    pbmtl->colour = 0; // this field is ignored\n    pbmtl->ka = kbrufKaDefault;\n    pbmtl->kd = kbrufKdDefault;\n    pbmtl->ks = kbrufKsDefault;\n    pbmtl->power = krPowerDefault;\n    pbmtl->opacity = kbOpaque; // all socrates objects are opaque\n    pbmtl->flags = BR_MATF_LIGHT | BR_MATF_GOURAUD;\n    pfni->GetStnPath(&stn);\n    pbmtl->colour_map = BrPixelmapLoad(stn.Psz());\n    if (pvNil == pbmtl->colour_map)\n        goto LFail;\n\n    // Create a TMAP for this BPMP.  We don't directly save\n    // the ptmap...it's automagically attached to the\n    // BPMP's identifier.\n    ptmap = TMAP::PtmapNewFromBpmp(pbmtl->colour_map);\n    if (pvNil == ptmap)\n    {\n        BrPixelmapFree(pbmtl->colour_map);\n        goto LFail;\n    }\n    Assert((PTMAP)pbmtl->colour_map->identifier == ptmap, \"lost our TMAP!\");\n    AssertPo(_ptmapShadeTable, 0);\n    pbmtl->index_shade = _ptmapShadeTable->Pbpmp();\n    pbmtl->flags |= BR_MATF_MAP_COLOUR;\n    pbmtl->index_base = 0;\n    pbmtl->index_range = _ptmapShadeTable->Pbpmp()->height - 1;\n    AssertPo(pmtrl, 0);\n    return pmtrl;\nLFail:\n    ReleasePpo(&pmtrl);\n    return pvNil;\n}\n\n/***************************************************************************\n    Read a BMP and build a PMTRL from it\n***************************************************************************/\nPMTRL MTRL::PmtrlNewFromBmp(PFNI pfni, PGL pglclr)\n{\n    AssertPo(pfni, ffniFile);\n    AssertPo(_ptmapShadeTable, 0);\n\n    PMTRL pmtrl;\n    PTMAP ptmap;\n\n    pmtrl = PmtrlNew();\n    if (pvNil == pmtrl)\n        return pvNil;\n\n    ptmap = TMAP::PtmapReadNative(pfni, pglclr);\n    if (pvNil == ptmap)\n    {\n        ReleasePpo(&pmtrl);\n        return pvNil;\n    }\n    pmtrl->_pbmtl->index_base = 0;\n    pmtrl->_pbmtl->index_range = _ptmapShadeTable->Pbpmp()->height - 1;\n    pmtrl->_pbmtl->index_shade = _ptmapShadeTable->Pbpmp();\n    pmtrl->_pbmtl->flags |= BR_MATF_MAP_COLOUR;\n    pmtrl->_pbmtl->colour_map = ptmap->Pbpmp();\n    // The reference for ptmap has been transfered to pmtrl by the previous\n    // line, so I don't need to ReleasePpo(&ptmap) in this function.\n\n    return pmtrl;\n}\n\n/***************************************************************************\n    Return a pointer to the MTRL that owns this BMTL\n***************************************************************************/\nPMTRL MTRL::PmtrlFromBmtl(PBMTL pbmtl)\n{\n    AssertVarMem(pbmtl);\n\n    PMTRL pmtrl = (PMTRL) * (long *)pbmtl->identifier;\n    AssertPo(pmtrl, 0);\n    return pmtrl;\n}\n\n/***************************************************************************\n    Return this MTRL's TMAP, or pvNil if it's a solid-color MTRL.\n    Note: This function doesn't AssertThis because it gets called on\n    objects which are not necessarily valid (e.g., from the destructor and\n    from AssertThis())\n***************************************************************************/\nPTMAP MTRL::Ptmap(void)\n{\n    AssertBaseThis(0);\n\n    if (pvNil == _pbmtl)\n        return pvNil;\n    else if (pvNil == _pbmtl->colour_map)\n        return pvNil;\n    else\n        return (PTMAP)_pbmtl->colour_map->identifier;\n}\n\n/***************************************************************************\n    Write a MTRL to a chunky file\n***************************************************************************/\nbool MTRL::FWrite(PCFL pcfl, CTG ctg, CNO *pcno)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n    AssertVarMem(pcno);\n\n    MTRLF mtrlf;\n    CNO cnoChild;\n    PTMAP ptmap;\n\n    mtrlf.bo = kboCur;\n    mtrlf.osk = koskCur;\n    mtrlf.brc = _pbmtl->colour;\n    mtrlf.brufKa = _pbmtl->ka;\n    mtrlf.brufKd = _pbmtl->kd;\n    mtrlf.brufKs = _pbmtl->ks;\n    mtrlf.bIndexBase = _pbmtl->index_base;\n    mtrlf.cIndexRange = _pbmtl->index_range;\n    mtrlf.rPower = _pbmtl->power;\n\n    if (!pcfl->FAddPv(&mtrlf, size(MTRLF), ctg, pcno))\n        return fFalse;\n    ptmap = Ptmap();\n    if (pvNil != ptmap)\n    {\n        if (!ptmap->FWrite(pcfl, kctgTmap, &cnoChild))\n        {\n            pcfl->Delete(ctg, *pcno);\n            return fFalse;\n        }\n        if (!pcfl->FAdoptChild(ctg, *pcno, kctgTmap, cnoChild, 0))\n        {\n            pcfl->Delete(kctgTmap, cnoChild);\n            pcfl->Delete(ctg, *pcno);\n            return fFalse;\n        }\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Free the MTRL\n***************************************************************************/\nMTRL::~MTRL(void)\n{\n    AssertBaseThis(0);\n\n    PTMAP ptmap;\n\n    ptmap = Ptmap();\n\n    if (pvNil != ptmap)\n    {\n        ReleasePpo(&ptmap);\n        _pbmtl->colour_map = pvNil;\n    }\n    BrMaterialRemove(_pbmtl);\n    BrMaterialFree(_pbmtl);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the MTRL.\n***************************************************************************/\nvoid MTRL::AssertValid(ulong grf)\n{\n    MTRL_PAR::AssertValid(fobjAllocated);\n\n    AssertNilOrPo(Ptmap(), 0);\n    Assert(pvNil != _ptmapShadeTable, \"Why do we have MTRLs but no shade table?\");\n}\n\n/***************************************************************************\n    Mark memory used by the MTRL\n***************************************************************************/\nvoid MTRL::MarkMem(void)\n{\n    AssertThis(0);\n\n    PTMAP ptmap;\n\n    MTRL_PAR::MarkMem();\n    ptmap = Ptmap();\n    if (pvNil != ptmap)\n        MarkMemObj(ptmap);\n}\n\n/***************************************************************************\n    Mark memory used by the shade table\n***************************************************************************/\nvoid MTRL::MarkShadeTable(void)\n{\n    MarkMemObj(_ptmapShadeTable);\n}\n\n#endif // DEBUG\n\n//\n//\n//\n//  CMTL (custom material) stuff begins here\n//\n//\n//\n\n/***************************************************************************\n    Static function to see if the given chunk has MODL children\n***************************************************************************/\nbool CMTL::FHasModels(PCFL pcfl, CTG ctg, CNO cno)\n{\n    AssertPo(pcfl, 0);\n\n    KID kid;\n\n    return pcfl->FGetKidChidCtg(ctg, cno, 0, kctgBmdl, &kid);\n}\n\n/***************************************************************************\n    Static function to see if the two given CMTLs have the same child\n    MODLs\n***************************************************************************/\nbool CMTL::FEqualModels(PCFL pcfl, CNO cno1, CNO cno2)\n{\n    AssertPo(pcfl, 0);\n\n    CHID chid = 0;\n    KID kid1;\n    KID kid2;\n\n    while (pcfl->FGetKidChidCtg(kctgCmtl, cno1, chid, kctgBmdl, &kid1))\n    {\n        if (!pcfl->FGetKidChidCtg(kctgCmtl, cno2, chid, kctgBmdl, &kid2))\n            return fFalse;\n        if (kid1.cki.cno != kid2.cki.cno)\n            return fFalse;\n        chid++;\n    }\n    // End of cno1's BMDLs...make sure cno2 doesn't have any more\n    if (pcfl->FGetKidChidCtg(kctgCmtl, cno2, chid, kctgBmdl, &kid2))\n        return fFalse;\n    return fTrue;\n}\n\n/***************************************************************************\n    Create a new custom material\n***************************************************************************/\nPCMTL CMTL::PcmtlNew(long ibset, long cbprt, PMTRL *prgpmtrl)\n{\n    AssertPvCb(prgpmtrl, LwMul(cbprt, size(PMTRL)));\n    PCMTL pcmtl;\n    long imtrl;\n\n    pcmtl = NewObj CMTL;\n    if (pvNil == pcmtl)\n        return pvNil;\n\n    pcmtl->_ibset = ibset;\n    pcmtl->_cbprt = cbprt;\n    if (!FAllocPv((void **)&pcmtl->_prgpmtrl, LwMul(pcmtl->_cbprt, size(PMTRL)), fmemClear, mprNormal))\n    {\n        ReleasePpo(&pcmtl);\n        return pvNil;\n    }\n    if (!FAllocPv((void **)&pcmtl->_prgpmodl, LwMul(pcmtl->_cbprt, size(PMODL)), fmemClear, mprNormal))\n    {\n        ReleasePpo(&pcmtl);\n        return pvNil;\n    }\n    for (imtrl = 0; imtrl < cbprt; imtrl++)\n    {\n        AssertPo(prgpmtrl[imtrl], 0);\n        pcmtl->_prgpmtrl[imtrl] = prgpmtrl[imtrl];\n        pcmtl->_prgpmtrl[imtrl]->AddRef();\n    }\n    AssertPo(pcmtl, 0);\n    return pcmtl;\n}\n\n/***************************************************************************\n    A PFNRPO to read CMTL objects.\n***************************************************************************/\nbool CMTL::FReadCmtl(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n\n    PCMTL pcmtl;\n\n    *pcb = size(CMTL);\n    if (pvNil == ppbaco)\n        return fTrue;\n    pcmtl = NewObj CMTL;\n    if (pvNil == pcmtl || !pcmtl->_FInit(pcrf, ctg, cno))\n    {\n        ReleasePpo(&pcmtl);\n        TrashVar(ppbaco);\n        TrashVar(pcb);\n        return fFalse;\n    }\n    AssertPo(pcmtl, 0);\n    *ppbaco = pcmtl;\n    *pcb += LwMul(size(PMTRL) + size(PMODL), pcmtl->_cbprt);\n    return fTrue;\n}\n\n/***************************************************************************\n    Read a CMTL from file\n***************************************************************************/\nbool CMTL::_FInit(PCRF pcrf, CTG ctg, CNO cno)\n{\n    AssertBaseThis(0);\n    AssertPo(pcrf, 0);\n\n    long ikid;\n    long imtrl;\n    KID kid;\n    BLCK blck;\n    PCFL pcfl = pcrf->Pcfl();\n    CMTLF cmtlf;\n\n    if (!pcfl->FFind(ctg, cno, &blck) || !blck.FUnpackData())\n        return fFalse;\n\n    if (blck.Cb() != size(CMTLF))\n    {\n        Bug(\"bad CMTLF...you may need to update tmpls.chk\");\n        return fFalse;\n    }\n    if (!blck.FReadRgb(&cmtlf, size(CMTLF), 0))\n        return fFalse;\n    if (kboOther == cmtlf.bo)\n        SwapBytesBom(&cmtlf, kbomCmtlf);\n    Assert(kboCur == cmtlf.bo, \"bad CMTLF\");\n    _ibset = cmtlf.ibset;\n\n    // Highest chid is number of body part sets - 1\n    _cbprt = 0;\n    // note: there might be a faster way to compute _cbprt\n    for (ikid = 0; pcfl->FGetKid(ctg, cno, ikid, &kid); ikid++)\n    {\n        if ((long)kid.chid > (_cbprt - 1))\n            _cbprt = kid.chid + 1;\n    }\n    if (!FAllocPv((void **)&_prgpmtrl, LwMul(_cbprt, size(PMTRL)), fmemClear, mprNormal))\n    {\n        return fFalse;\n    }\n    if (!FAllocPv((void **)&_prgpmodl, LwMul(_cbprt, size(PMODL)), fmemClear, mprNormal))\n    {\n        return fFalse;\n    }\n    for (imtrl = 0; imtrl < _cbprt; imtrl++)\n    {\n        if (pcfl->FGetKidChidCtg(ctg, cno, imtrl, kctgMtrl, &kid))\n        {\n            _prgpmtrl[imtrl] = (MTRL *)pcrf->PbacoFetch(kid.cki.ctg, kid.cki.cno, MTRL::FReadMtrl);\n            if (pvNil == _prgpmtrl[imtrl])\n                return fFalse;\n        }\n        if (pcfl->FGetKidChidCtg(ctg, cno, imtrl, kctgBmdl, &kid))\n        {\n            _prgpmodl[imtrl] = (MODL *)pcrf->PbacoFetch(kid.cki.ctg, kid.cki.cno, MODL::FReadModl);\n            if (pvNil == _prgpmodl[imtrl])\n                return fFalse;\n        }\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Free the CMTL\n***************************************************************************/\nCMTL::~CMTL(void)\n{\n    AssertBaseThis(0);\n\n    long imtrl;\n\n    if (pvNil != _prgpmtrl)\n    {\n        for (imtrl = 0; imtrl < _cbprt; imtrl++)\n            ReleasePpo(&_prgpmtrl[imtrl]);\n        FreePpv((void **)&_prgpmtrl);\n    }\n\n    if (pvNil != _prgpmodl)\n    {\n        for (imtrl = 0; imtrl < _cbprt; imtrl++)\n            ReleasePpo(&_prgpmodl[imtrl]);\n        FreePpv((void **)&_prgpmodl);\n    }\n}\n\n/***************************************************************************\n    Return ibmtl'th BMTL\n***************************************************************************/\nBMTL *CMTL::Pbmtl(long ibmtl)\n{\n    AssertThis(0);\n    AssertIn(ibmtl, 0, _cbprt);\n\n    return _prgpmtrl[ibmtl]->Pbmtl();\n}\n\n/***************************************************************************\n    Return imodl'th MODL\n***************************************************************************/\nPMODL CMTL::Pmodl(long imodl)\n{\n    AssertThis(0);\n    AssertIn(imodl, 0, _cbprt);\n\n    AssertNilOrPo(_prgpmodl[imodl], 0);\n    return _prgpmodl[imodl];\n}\n\n/***************************************************************************\n    Returns whether this CMTL has any models attached\n***************************************************************************/\nbool CMTL::FHasModels(void)\n{\n    AssertThis(0);\n\n    long imodl;\n\n    for (imodl = 0; imodl < _cbprt; imodl++)\n    {\n        if (pvNil != _prgpmodl[imodl])\n            return fTrue;\n    }\n    return fFalse;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the CMTL\n***************************************************************************/\nvoid CMTL::AssertValid(ulong grf)\n{\n    long imtrl;\n\n    MTRL_PAR::AssertValid(fobjAllocated);\n    AssertPvCb(_prgpmtrl, LwMul(_cbprt, size(MTRL *)));\n    AssertPvCb(_prgpmodl, LwMul(_cbprt, size(MODL *)));\n\n    for (imtrl = 0; imtrl < _cbprt; imtrl++)\n    {\n        AssertPo(_prgpmtrl[imtrl], 0);\n        AssertNilOrPo(_prgpmodl[imtrl], 0);\n    }\n}\n\n/***************************************************************************\n    Mark memory used by the MTRL\n***************************************************************************/\nvoid CMTL::MarkMem(void)\n{\n    AssertThis(0);\n\n    long imtrl;\n\n    MTRL_PAR::MarkMem();\n    MarkPv(_prgpmtrl);\n    MarkPv(_prgpmodl);\n    for (imtrl = 0; imtrl < _cbprt; imtrl++)\n    {\n        MarkMemObj(_prgpmtrl[imtrl]);\n        MarkMemObj(_prgpmodl[imtrl]);\n    }\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/engine/scene.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n  scene.cpp\n\n  Author: Sean Selitrennikoff\n\n  Date: August, 1994\n\n  This file contains all functionality for scene manipulation.\n\n  THIS IS A CODE REVIEWED FILE\n\n    Basic scene private classes:\n\n        Scene Chop Undo Object (SUNC)\n\n            BASE ---> UNDB ---> MUNB ---> SUNC\n\n        Scene Background Undo Object (SUNK)\n\n            BASE ---> UNDB ---> MUNB ---> SUNK\n\n        Scene Pause Undo Object (SUNP)\n\n            BASE ---> UNDB ---> MUNB ---> SUNP\n\n        Scene Text box Undo Object (SUNX)\n\n            BASE ---> UNDB ---> MUNB ---> SUNX\n\n        Scene Sound Undo Object (SUNS)\n\n            BASE ---> UNDB ---> MUNB ---> SUNS\n\n        Scene Title Undo Object (SUNT)\n\n            BASE ---> UNDB ---> MUNB ---> SUNT\n\n***************************************************************************/\n\n#include \"soc.h\"\nASSERTNAME\n\n//\n// Scene event types\n//\nenum SEVT\n{                   // StartEv\tFrmEv\tParam\n    sevtAddActr,    //    X\t\t  \t\tpactr/chid\n    sevtPlaySnd,    // \t  \t\t  X\t\tSSE (Scene Sound Event)\n    sevtAddTbox,    // \t  X\t\t\t\tptbox/chid\n    sevtChngCamera, // \t\t\t  X\t\ticam\n    sevtSetBkgd,    // \t  X\t\t\t\tBackground Tag\n    sevtPause       // \t\t\t  X\t\ttype, duration\n};\n\n//\n// Struct for saving event pause information\n//\nstruct SEVP\n{\n    WIT wit;\n    long dts;\n};\n\n//\n// Scene thumbnails\n//\nconst auto kdxpThumbnail = 144;\nconst auto kdypThumbnail = 81;\nconst auto kbTransparent = 250;\n\n//\n// Scene event\n//\nstruct SEV\n{\n    long nfrm; // frame number of the event.\n    SEVT sevt; // event type\n};\n\nconst auto kbomSev = 0xF0000000;\nconst auto kbomLong = 0xC0000000;\n\n//\n// Header for the scene chunk when on file\n//\nstruct SCENH\n{\n    short bo;\n    short osk;\n    long nfrmLast;\n    long nfrmFirst;\n    TRANS trans;\n};\n\nconst auto kbomScenh = 0x5FC00000;\n/****************************************\n    TAGC - Tag,Chid combo\n****************************************/\nconst BOM kbomChid = 0xC0000000;\nconst BOM kbomTagc = kbomChid | (kbomTag >> 2);\ntypedef struct TAGC *PTAGC;\nstruct TAGC\n{\n    CHID chid;\n    TAG tag;\n};\n\n/****************************************\n    SSE - scene sound event\n****************************************/\nconst BOM kbomSse = 0xFF000000;\ntypedef struct SSE *PSSE;\nstruct SSE\n{\n    long vlm;\n    long sty; // sound type\n    bool fLoop;\n    long ctagc;\n    //\tTAGC _rgtagcSnd[_ctagc]; // variable array of tagcs follows SSE\n\n  protected:\n    static long _Cb(long ctagc)\n    {\n        return size(SSE) + LwMul(ctagc, size(TAGC));\n    }\n    SSE(void){};\n\n  public:\n    static PSSE PsseNew(long ctagc);\n    static PSSE PsseNew(long vlm, long sty, bool fLoop, long ctagc, TAGC *prgtagc);\n    static PSSE PsseDupFromGg(PGG pgg, long iv, bool fDupTags = fTrue);\n\n    PTAG Ptag(long itagc)\n    {\n        PTAGC prgtagc = (PTAGC)PvAddBv(this, size(SSE));\n        return &(prgtagc[itagc].tag);\n    }\n    PTAGC Ptagc(long itagc)\n    {\n        PTAGC prgtagc = (PTAGC)PvAddBv(this, size(SSE));\n        return &(prgtagc[itagc]);\n    }\n    CHID *Pchid(long itagc)\n    {\n        PTAGC prgtagc = (PTAGC)PvAddBv(this, size(SSE));\n        return &(prgtagc[itagc].chid);\n    }\n    PSSE PsseAddTagChid(PTAG ptag, long chid);\n    PSSE PsseDup(void);\n    void PlayAllSounds(PMVIE pmvie, ulong dtsStart = 0);\n    void SwapBytes(void)\n    {\n        long itagc;\n\n        SwapBytesBom(this, kbomSse);\n        for (itagc = 0; itagc < ctagc; itagc++)\n        {\n            SwapBytesBom(Ptag(itagc), kbomTag);\n            SwapBytesBom(Pchid(itagc), kbomChid);\n        }\n    }\n    long Cb(void)\n    {\n        return size(SSE) + LwMul(ctagc, size(TAGC));\n    }\n};\nvoid ReleasePpsse(PSSE *ppsse);\n\n//\n// Undo object for chopping operation.\n//\ntypedef class SUNC *PSUNC;\n\n#define SUNC_PAR MUNB\n#define kclsSUNC 'SUNC'\nclass SUNC : public SUNC_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    CNO _cno;\n    PCRF _pcrf;\n    SUNC(void)\n    {\n    }\n\n  public:\n    static PSUNC PsuncNew(void);\n    ~SUNC(void);\n\n    bool FSave(PSCEN pscen);\n\n    virtual bool FDo(PDOCB pdocb);\n    virtual bool FUndo(PDOCB pdocb);\n};\n\n//\n// Undo object for background operations\n//\ntypedef class SUNK *PSUNK;\n\n#define SUNK_PAR MUNB\n#define kclsSUNK 'SUNK'\nclass SUNK : public SUNK_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    TAG _tag;\n    long _icam;\n    bool _fSetBkgd;\n    SUNK(void)\n    {\n    }\n\n  public:\n    static PSUNK PsunkNew(void);\n    ~SUNK(void);\n\n    void SetTag(PTAG ptag)\n    {\n        _tag = *ptag;\n    }\n    void SetIcam(long icam)\n    {\n        _icam = icam;\n    }\n    void SetFBkgd(bool fSetBkgd)\n    {\n        _fSetBkgd = fSetBkgd;\n    }\n\n    virtual bool FDo(PDOCB pdocb);\n    virtual bool FUndo(PDOCB pdocb);\n};\n\n//\n// Undo object for transition operations\n//\ntypedef class SUNR *PSUNR;\n\n#define SUNR_PAR MUNB\n#define kclsSUNR 'SUNR'\nclass SUNR : public SUNR_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    TRANS _trans;\n    SUNR(void)\n    {\n    }\n\n  public:\n    static PSUNR PsunrNew(void);\n    ~SUNR(void);\n\n    void SetTrans(TRANS trans)\n    {\n        _trans = trans;\n    }\n\n    virtual bool FDo(PDOCB pdocb);\n    virtual bool FUndo(PDOCB pdocb);\n};\n\n//\n// Undo object for pause operations\n//\ntypedef class SUNP *PSUNP;\n\n#define SUNP_PAR MUNB\n#define kclsSUNP 'SUNP'\nclass SUNP : public SUNP_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    WIT _wit;\n    long _dts;\n    bool _fAdd;\n    SUNP(void)\n    {\n    }\n\n  public:\n    static PSUNP PsunpNew(void);\n    ~SUNP(void);\n\n    void SetWit(WIT wit)\n    {\n        _wit = wit;\n    }\n    void SetDts(long dts)\n    {\n        _dts = dts;\n    }\n    void SetAdd(bool fAdd)\n    {\n        _fAdd = fAdd;\n    }\n\n    virtual bool FDo(PDOCB pdocb);\n    virtual bool FUndo(PDOCB pdocb);\n};\n\n//\n// Undo object for text box operations\n//\ntypedef class SUNX *PSUNX;\n\n#define SUNX_PAR MUNB\n#define kclsSUNX 'SUNX'\nclass SUNX : public SUNX_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    PTBOX _ptbox;\n    bool _fAdd;\n    long _itbox;\n    long _nfrmFirst;\n    long _nfrmLast;\n    SUNX(void)\n    {\n    }\n\n  public:\n    static PSUNX PsunxNew(void);\n    ~SUNX(void);\n\n    void SetNfrmFirst(long nfrm)\n    {\n        _nfrmFirst = nfrm;\n    }\n    void SetNfrmLast(long nfrm)\n    {\n        _nfrmLast = nfrm;\n    }\n    void SetItbox(long itbox)\n    {\n        _itbox = itbox;\n    }\n    void SetTbox(PTBOX ptbox)\n    {\n        _ptbox = ptbox;\n    }\n    void SetAdd(bool fAdd)\n    {\n        _fAdd = fAdd;\n    }\n\n    virtual bool FDo(PDOCB pdocb);\n    virtual bool FUndo(PDOCB pdocb);\n};\n\n//\n// Undo object for sound operations\n//\ntypedef class SUNS *PSUNS;\n\n#define SUNS_PAR MUNB\n#define kclsSUNS 'SUNS'\nclass SUNS : public SUNS_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    PSSE _psse; // may be pvNil\n    long _sty;  // sty to use if _psse is pvNil\n\n    SUNS(void)\n    {\n    }\n\n  public:\n    static PSUNS PsunsNew(void);\n    ~SUNS(void);\n\n    bool FSetSnd(PSSE psse)\n    {\n        PSSE psseDup = psse->PsseDup();\n        if (psseDup == pvNil)\n            return fFalse;\n        ReleasePpsse(&_psse);\n        _psse = psseDup;\n        _sty = _psse->sty;\n        return fTrue;\n    }\n    void SetSty(long sty)\n    {\n        _sty = sty;\n    }\n\n    virtual bool FDo(PDOCB pdocb);\n    virtual bool FUndo(PDOCB pdocb);\n};\n\n//\n// Undo object for title operations\n//\ntypedef class SUNT *PSUNT;\n\n#define SUNT_PAR MUNB\n#define kclsSUNT 'SUNT'\nclass SUNT : public SUNT_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    STN _stn;\n    SUNT(void)\n    {\n    }\n\n  public:\n    static PSUNT PsuntNew(void);\n    ~SUNT(void);\n\n    void SetName(PSTN pstn)\n    {\n        AssertPo(pstn, 0);\n        _stn = *pstn;\n    }\n\n    virtual bool FDo(PDOCB pdocb);\n    virtual bool FUndo(PDOCB pdocb);\n};\n\nRTCLASS(SCEN)\nRTCLASS(SUNT)\nRTCLASS(SUNS)\nRTCLASS(SUNA)\nRTCLASS(SUNK)\nRTCLASS(SUNP)\nRTCLASS(SUNX)\nRTCLASS(SUNC)\nRTCLASS(SUNR)\n\n/****************************************************\n *\n * Constructor for scenes.  This function is private, use PscenNew()\n * for public construction.\n *\n * Parameters:\n *  pmvie - The movie this scene belongs to.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nSCEN::SCEN(PMVIE pmvie)\n{\n    AssertNilOrPo(pmvie, 0);\n\n    _pmvie = pmvie;\n    _nfrmCur = 1;\n    _nfrmLast = 1;\n    _nfrmFirst = 1;\n    _trans = transDissolve; // default transition\n\n    //\n    // By default we disable pauses in the studio\n    //\n    _grfscen = fscenPauses;\n}\n\n/****************************************************\n *\n * Exported constructor for scenes.\n *\n * Parameters:\n *\tpmvie - The movie this scene belongs to.\n *\n *\n * Returns:\n *  pvNil, on failure, else a pointer to an allocated SCEN object.\n *\n ****************************************************/\nPSCEN SCEN::PscenNew(PMVIE pmvie)\n{\n    AssertNilOrPo(pmvie, 0);\n\n    PSCEN pscen;\n\n    //\n    // Create the object\n    //\n    pscen = NewObj SCEN(pmvie);\n    if (pscen == pvNil)\n    {\n        goto LFail;\n    }\n\n    //\n    // Initialize event list\n    //\n    pscen->_pggsevFrm = GG::PggNew(size(SEV));\n    if (pscen->_pggsevFrm == pvNil)\n    {\n        goto LFail;\n    }\n    pscen->_isevFrmLim = 0;\n\n    pscen->_pggsevStart = GG::PggNew(size(SEV));\n    if (pscen->_pggsevStart == pvNil)\n    {\n        goto LFail;\n    }\n\n    pscen->_pglpactr = GL::PglNew(size(PACTR), 0);\n    if (pscen->_pglpactr == pvNil)\n    {\n        goto LFail;\n    }\n\n    pscen->_pglptbox = GL::PglNew(size(PTBOX), 0);\n    if (pscen->_pglptbox == pvNil)\n    {\n        goto LFail;\n    }\n\n    if (vpcex != pvNil)\n    {\n        vpcex->EnqueueCid(cidSceneLoaded);\n    }\n\n    AssertPo(pscen, 0);\n    return (pscen);\n\nLFail:\n\n    ReleasePpo(&pscen);\n    return (pvNil);\n}\n\n/****************************************************\n *\n * Destructor for scenes.\n *\n * Parameters:\n *  None.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nSCEN::~SCEN(void)\n{\n    AssertBaseThis(0);\n\n    long isev;\n    PSEV qsev;\n    PTBOX ptbox;\n    PACTR pactr;\n\n    //\n    // Remove starting events\n    //\n\n    if (_pggsevStart != pvNil)\n    {\n        for (isev = 0; isev < _pggsevStart->IvMac(); isev++)\n        {\n            qsev = (PSEV)_pggsevStart->QvFixedGet(isev);\n            switch (qsev->sevt)\n            {\n            case sevtAddActr:\n                _pggsevStart->Get(isev, &pactr);\n                AssertPo(pactr, 0);\n                ReleasePpo(&pactr);\n                break;\n\n            case sevtAddTbox:\n                _pggsevStart->Get(isev, &ptbox);\n                AssertPo(ptbox, 0);\n                ReleasePpo(&ptbox);\n                break;\n\n            case sevtChngCamera:\n            case sevtSetBkgd:\n                break;\n\n            case sevtPause:\n            case sevtPlaySnd:\n                Bug(\"Invalid event in event stream.\");\n                break;\n            default:\n                Bug(\"Unknown event type\");\n                break;\n            }\n        }\n    }\n\n    ReleasePpo(&_pggsevStart);\n\n    //\n    // Walk and delete all frame events.\n    //\n    if (_pggsevFrm != pvNil)\n    {\n        for (isev = 0; isev < _pggsevFrm->IvMac(); isev++)\n        {\n\n            //\n            // For each event, release any child objects.\n            //\n            qsev = (PSEV)_pggsevFrm->QvFixedGet(isev);\n            switch (qsev->sevt)\n            {\n\n            case sevtAddTbox:\n            case sevtAddActr:\n            case sevtSetBkgd:\n                Assert(0, \"Invalid event in event stream.\");\n                break;\n\n            case sevtPlaySnd: {\n                PSSE psse;\n                long itagc;\n                psse = (PSSE)_pggsevFrm->QvGet(isev);\n                for (itagc = 0; itagc < psse->ctagc; itagc++)\n                {\n                    TAGM::CloseTag(psse->Ptag(itagc));\n                }\n                break;\n            }\n            case sevtPause:\n            case sevtChngCamera:\n                break;\n\n            default:\n                Bug(\"Unknown event type\");\n                break;\n            }\n        }\n    }\n\n    //\n    // Delete frame event list.\n    //\n    ReleasePpo(&_pggsevFrm);\n\n    //\n    // Remove the GL of actors.  We do not Release the actors\n    // themselves as our reference was released above in the\n    // the _pggsevStart.\n    //\n    ReleasePpo(&_pglpactr);\n\n    //\n    // Remove the GL of tboxes.  We do not Release the tboxes\n    // themselves as our reference was released above in the\n    // the _pggsevStart.\n    //\n    ReleasePpo(&_pglptbox);\n\n    //\n    // Release the background\n    //\n    ReleasePpo(&_pbkgd);\n\n    //\n    // Release the thumbnail\n    //\n    ReleasePpo(&_pmbmp);\n\n    //\n    // Free the background sound\n    //\n    ReleasePpsse(&_psseBkgd);\n}\n\n/****************************************************\n *\n * Destructor for scenes.  This method is used to not only\n * destruct a scene, but to remove all lights, actors and\n * text boxes from the rendering area.  This is necessary\n * because Undo will hold references to actors, etc, causing\n * their destructors to not be called.\n *\n * Parameters:\n *  ppscen - A pointer to the scene to destroy.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\n\nvoid SCEN::Close(PSCEN *ppscen)\n{\n    AssertPo(*ppscen, 0);\n\n    if (pvNil != (*ppscen)->_pbkgd)\n    {\n        (*ppscen)->_pbkgd->TurnOffLights();\n    }\n    (*ppscen)->HideActors();\n    (*ppscen)->HideTboxes();\n    ReleasePpo(ppscen);\n}\n\n#ifdef DEBUG\n\n/****************************************************\n * Mark memory used by the SCEN\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid SCEN::MarkMem(void)\n{\n    AssertThis(0);\n\n    long iactr;\n    long itbox;\n    PACTR pactr;\n    PTBOX ptbox;\n\n    SCEN_PAR::MarkMem();\n\n    MarkMemObj(_pggsevStart);\n    MarkMemObj(_pggsevFrm);\n    MarkMemObj(_pglpactr);\n    MarkMemObj(_pglptbox);\n    MarkMemObj(_pmbmp);\n\n    for (iactr = 0; iactr < _pglpactr->IvMac(); iactr++)\n    {\n        _pglpactr->Get(iactr, &pactr);\n        MarkMemObj(pactr);\n    }\n\n    for (itbox = 0; itbox < _pglptbox->IvMac(); itbox++)\n    {\n        _pglptbox->Get(itbox, &ptbox);\n        MarkMemObj(ptbox);\n    }\n\n    if (_psseBkgd != pvNil)\n        MarkPv(_psseBkgd);\n}\n\n/***************************************************************************\n    Assert the validity of the SCEN.\n***************************************************************************/\nvoid SCEN::AssertValid(ulong grf)\n{\n    long isev;\n    SEV sev;\n\n    SCEN_PAR::AssertValid(fobjAllocated);\n\n    AssertPo(&_stnName, 0);\n    AssertNilOrPo(_pactrSelected, 0);\n    AssertNilOrPo(_pbkgd, 0);\n    AssertNilOrPo(_pmbmp, 0);\n    AssertPo(_pglpactr, 0);\n    AssertPo(_pglptbox, 0);\n    AssertPo(_pggsevFrm, 0);\n    AssertPo(_pggsevStart, 0);\n    AssertPo(_pmvie, 0);\n\n    for (isev = 0; isev < _pggsevFrm->IvMac(); isev++)\n    {\n        sev = *(PSEV)_pggsevFrm->QvFixedGet(isev);\n        switch (sev.sevt)\n        {\n        case sevtPlaySnd:\n        case sevtPause:\n        case sevtChngCamera:\n            break;\n        default:\n            Bug(\"Unknown event type\");\n        }\n    }\n\n    for (isev = 0; isev < _pggsevStart->IvMac(); isev++)\n    {\n        sev = *(PSEV)_pggsevStart->QvFixedGet(isev);\n        switch (sev.sevt)\n        {\n        case sevtAddActr:\n        case sevtSetBkgd:\n        case sevtAddTbox:\n            break;\n        default:\n            Bug(\"Unknown event type\");\n        }\n    }\n}\n\n#endif\n\n/****************************************************\n *\n * Sets the transition of the scene and creates an undo object.\n *\n * Parameters:\n *\ttrans - Transition type.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FSetTransition(TRANS trans)\n{\n    AssertThis(0);\n\n    PSUNR psunr;\n\n    psunr = SUNR::PsunrNew();\n\n    if (psunr == pvNil)\n    {\n        return (fFalse);\n    }\n\n    if (!_pmvie->FAddUndo(psunr))\n    {\n        return (fFalse);\n    }\n\n    ReleasePpo(&psunr);\n\n    SetTransitionCore(trans);\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Sets the name of the scene and creates an undo object.\n *\n * Parameters:\n *\tpsz - Null terminated string.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FSetName(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    PSUNT psunt;\n\n    psunt = SUNT::PsuntNew();\n\n    if (psunt != pvNil)\n    {\n        psunt->SetName(&_stnName);\n    }\n\n    if (psunt == pvNil)\n    {\n        return (fFalse);\n    }\n\n    if (!_pmvie->FAddUndo(psunt))\n    {\n        return (fFalse);\n    }\n\n    ReleasePpo(&psunt);\n\n    SetNameCore(pstn);\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine jumps to an arbitrary frame, updating actors, and adding\n * new frames to the scene if needed.\n *\n * Parameters:\n *\tnFrm - The frame number to jump to.  This may be positive or negative\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\n\nbool SCEN::FGotoFrm(long nfrm)\n{\n    AssertThis(0);\n\n    bool fSoundInFrame = fFalse, fUpdateSndFrame = nfrm != _nfrmCur;\n    SEV sev;\n    PMVU pmvu;\n    void *qvVar;\n    long isev;\n    long nfrmOld = _nfrmCur;\n\n    if (nfrm < _nfrmCur)\n    {\n\n        //\n        // Assume no pause type\n        //\n        Pmvie()->Pmcc()->PauseType(witNil);\n\n        //\n        // Go backwards\n        //\n        if (nfrm < _nfrmFirst)\n        {\n            //\n            // Move first frame back in time\n            //\n            _MoveBackFirstFrame(nfrm);\n            _MarkMovieDirty();\n        }\n\n        _nfrmCur = nfrm;\n\n        //\n        // Unplay all events to dest frame.\n        //\n        for (; _isevFrmLim > 0; _isevFrmLim--)\n        {\n            _pggsevFrm->GetFixed(_isevFrmLim - 1, &sev);\n            if (sev.nfrm <= _nfrmCur)\n            {\n                break;\n            }\n\n            qvVar = _pggsevFrm->QvGet(_isevFrmLim - 1);\n            if (!_FUnPlaySev(&sev, qvVar))\n            {\n                PushErc(ercSocGotoFrameFailure);\n                return (fFalse);\n            }\n        }\n\n        //\n        // Play events in this frame\n        //\n        for (isev = _isevFrmLim - 1; isev >= 0; isev--)\n        {\n            _pggsevFrm->GetFixed(isev, &sev);\n            if (sev.nfrm < _nfrmCur)\n            {\n                break;\n            }\n            qvVar = _pggsevFrm->QvGet(isev);\n            if (!_FPlaySev(&sev, qvVar, _grfscen))\n            {\n                PushErc(ercSocGotoFrameFailure);\n                return (fFalse);\n            }\n            if (sev.sevt == sevtPlaySnd && sev.nfrm == _nfrmCur)\n                fSoundInFrame = fTrue;\n        }\n    }\n    else if (nfrm > _nfrmCur)\n    {\n\n        pmvu = (PMVU)Pmvie()->PddgGet(0);\n        AssertNilOrPo(pmvu, 0);\n\n        if ((pmvu != pvNil) && (pmvu->Tool() == toolRecordSameAction))\n        {\n            Pmvie()->Pmcc()->PlayUISound(toolRecordSameAction);\n        }\n\n        _nfrmCur = nfrm;\n\n        //\n        // Assume no pause type\n        //\n        Pmvie()->Pmcc()->PauseType(witNil);\n\n        //\n        // Go forwards\n        //\n        if (_nfrmCur > _nfrmLast)\n        {\n            _nfrmLast = _nfrmCur;\n            _MarkMovieDirty();\n        }\n\n        //\n        // Play all events to dest frame.\n        //\n        for (; _isevFrmLim < _pggsevFrm->IvMac(); _isevFrmLim++)\n        {\n            _pggsevFrm->GetFixed(_isevFrmLim, &sev);\n            if (sev.nfrm > _nfrmCur)\n            {\n                break;\n            }\n            qvVar = _pggsevFrm->QvGet(_isevFrmLim);\n            if (!_FPlaySev(&sev, qvVar, (sev.nfrm == _nfrmCur ? _grfscen : (_grfscen | fscenSounds | fscenPauses))))\n            {\n                PushErc(ercSocGotoFrameFailure);\n                return (fFalse);\n            }\n            if (sev.sevt == sevtPlaySnd && sev.nfrm == _nfrmCur)\n                fSoundInFrame = fTrue;\n        }\n    }\n\n    if (!(_grfscen & fscenActrs) && !_FForceActorsToFrm(nfrm, &fSoundInFrame))\n    {\n        return (fFalse);\n    }\n\n    if (!(_grfscen & fscenTboxes) && !_FForceTboxesToFrm(nfrm))\n    {\n        return (fFalse);\n    }\n\n    if (!(_grfscen & fscenActrs))\n    {\n        _DoPrerenderingWork(fFalse);\n    }\n\n    Pmvie()->InvalViews();\n\n    if (fUpdateSndFrame)\n        Pmvie()->Pmcc()->SetSndFrame(fSoundInFrame);\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This function is an optimization which could be completely\n * skipped if desired.  The idea is to not render actors frame\n * after frame if they're not moving or changing at all.  So\n * when we hit a camera change, we look ahead to see if any\n * actors are unchanging before the next camera change.  If\n * there are, we hide the changing actors (so only the unchanging\n * ones are visible), then \"take a snapshot\" of the world with\n * the unchanging actors (via BWLD::Prerender()), and use the\n * snapshot as the background RGB and Z buffer until the next\n * camera view change.  We only prerender if the movie is\n * playing.\n *\n * Parameters:\n *\tfStartNow - if fTrue, start prerendering even if there's no\n *              camera change in this frame.  If fFalse, only\n *              start prerendering if there is a camera view\n *              change in this frame, or if this is the first\n *              frame of the scene.\n *\n * Returns:\n *  none\n *\n ****************************************************/\nvoid SCEN::_DoPrerenderingWork(bool fStartNow)\n{\n    AssertThis(0);\n\n    long isev;\n    SEV sev;\n    long nfrmNextChange;\n    long ipactr;\n    PACTR pactr;\n    long cactrPrerendered;\n\n    //\n    // If the movie was playing and there was a camera view change\n    // in this frame, prerender any actors that don't change from\n    // here to the next camera view change or the end of the scene.\n    //\n    if (!Pmvie()->FPlaying())\n    {\n        return; // only prerender if the movie is playing\n    }\n\n    // Do prerender if this is the first frame of the scene\n    // (even though there's no sevtChngCamera), or if fStartNow\n    // is fTrue, or if there is a sevtChngCamera in this\n    // frame.  Otherwise, just return.\n    if (_nfrmCur != _nfrmFirst && !fStartNow)\n    {\n        for (isev = _isevFrmLim - 1; isev >= 0; isev--)\n        {\n            _pggsevFrm->GetFixed(isev, &sev);\n            if (sev.nfrm != _nfrmCur)\n            {\n                return; // no camera view change in this frame\n            }\n            if (sev.sevt == sevtChngCamera)\n            {\n                break; // found one!\n            }\n        }\n        if (isev < 0)\n        {\n            return; // no camera view in this frame\n        }\n    }\n\n    // Find when the next view change is\n    nfrmNextChange = _nfrmLast; // if no more view changes, go til end of scene\n    for (isev = _isevFrmLim; isev < _pggsevFrm->IvMac(); isev++)\n    {\n        _pggsevFrm->GetFixed(isev, &sev);\n        if (sev.sevt == sevtChngCamera)\n        {\n            nfrmNextChange = sev.nfrm;\n            break;\n        }\n    }\n\n    // Hide all actors that can't be prerendered this time, and count how many\n    // can be prerendered this time\n    cactrPrerendered = 0;\n    for (ipactr = 0; ipactr < _pglpactr->IvMac(); ipactr++)\n    {\n        _pglpactr->Get(ipactr, &pactr);\n        if (pactr->FMustRender(nfrmNextChange))\n        {\n            pactr->Hide();\n        }\n        else\n        {\n            cactrPrerendered++;\n            if (pactr->FPrerendered())\n            {\n                // Actor was prerendered in last view and in this\n                // view.  Temporarily show the actor so it shows\n                // up in the prerendered background\n                pactr->Show();\n                pactr->SetPrerendered(fFalse);\n            }\n        }\n    }\n    if (cactrPrerendered > 0)\n    {\n        Pmvie()->Pbwld()->Prerender();\n    }\n    // Show all the actors that were hidden (and show them again if they were\n    // prerendered last time and can't be now), and hide the newly prerendered\n    // actors.\n    for (ipactr = 0; ipactr < _pglpactr->IvMac(); ipactr++)\n    {\n        _pglpactr->Get(ipactr, &pactr);\n        if (pactr->FMustRender(nfrmNextChange))\n        {\n            pactr->Show();\n            if (pactr->FPrerendered())\n            {\n                pactr->Show();\n                pactr->SetPrerendered(fFalse);\n            }\n        }\n        else\n        {\n            Assert(!pactr->FPrerendered(), \"no actor should be marked prerendered here\");\n            pactr->Hide();\n            pactr->SetPrerendered(fTrue);\n        }\n    }\n}\n\n/****************************************************\n *\n * \tEnds any current prerendering by restoring the background\n *  RGB and Z buffers of the BWLD, showing all previously\n *  hidden actors, and marking all actors as not prerendered.\n *\n * Parameters:\n *\tnone\n *\n * Returns:\n *  none\n *\n ****************************************************/\nvoid SCEN::_EndPrerendering(void)\n{\n    AssertThis(0);\n\n    long ipactr;\n    PACTR pactr;\n\n    // Show all the actors that were being prerendered\n    Pmvie()->Pbwld()->Unprerender();\n    for (ipactr = 0; ipactr < _pglpactr->IvMac(); ipactr++)\n    {\n        _pglpactr->Get(ipactr, &pactr);\n        if (pactr->FPrerendered())\n        {\n            pactr->Show();\n            pactr->SetPrerendered(fFalse);\n        }\n    }\n}\n\n/****************************************************\n *\n * This routine replays all the events, filtered by\n * grfscen, in the current frame.\n *\n * Parameters:\n *\tgrfscen - Events to play.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FReplayFrm(ulong grfscen)\n{\n    AssertThis(0);\n\n    SEV sev;\n    void *qvVar;\n    long isev, iactr;\n    long nfrmOld = _nfrmCur;\n    PACTR pactr;\n\n    //\n    // Play events in this frame\n    //\n    for (isev = _isevFrmLim - 1; isev >= 0; isev--)\n    {\n        _pggsevFrm->GetFixed(isev, &sev);\n        if (sev.nfrm < _nfrmCur)\n        {\n            break;\n        }\n        qvVar = _pggsevFrm->QvGet(isev);\n        // Note: FReplayFrm always suppresses camera changes\n        if (!_FPlaySev(&sev, qvVar, (~grfscen) | fscenCams))\n        {\n            PushErc(ercSocGotoFrameFailure);\n            return (fFalse);\n        }\n    }\n\n    if (grfscen & fscenActrs)\n    {\n\n        for (iactr = 0; iactr < _pglpactr->IvMac(); iactr++)\n        {\n            _pglpactr->Get(iactr, &pactr);\n            AssertPo(pactr, 0);\n\n            if (!pactr->FReplayFrame(grfscen))\n            {\n                return (fFalse);\n            }\n        }\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine recalculates the length of the movie.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *\tNone.\n *\n ****************************************************/\nvoid SCEN::InvalFrmRange(void)\n{\n    AssertThis(0);\n\n    PACTR pactr;\n    PTBOX ptbox;\n    long ipo;\n    long nfrmStart, nfrmLast;\n\n    for (ipo = 0; ipo < _pglpactr->IvMac(); ipo++)\n    {\n        _pglpactr->Get(ipo, &pactr);\n\n        if (pactr->FGetLifetime(&nfrmStart, &nfrmLast))\n        {\n\n            if (nfrmStart < _nfrmFirst)\n            {\n                _MoveBackFirstFrame(nfrmStart);\n            }\n\n            if (nfrmLast > _nfrmLast)\n            {\n                _nfrmLast = nfrmLast;\n            }\n        }\n    }\n\n    for (ipo = 0; ipo < _pglptbox->IvMac(); ipo++)\n    {\n        _pglptbox->Get(ipo, &ptbox);\n\n        if (ptbox->FGetLifetime(&nfrmStart, &nfrmLast))\n        {\n\n            if (nfrmStart < _nfrmFirst)\n            {\n                _MoveBackFirstFrame(nfrmStart);\n            }\n\n            if (nfrmLast > _nfrmLast)\n            {\n                _nfrmLast = nfrmLast;\n            }\n        }\n    }\n}\n\n/****************************************************\n *\n * This routine plays a single event.\n *\n * Be careful not to modify _pggsevFrm or _pggsevStart from\n * within this routine.\n *\n * Parameters:\n *\tpsev - Pointer to the scene event to play.\n *\tqvVar- Pointer to the variable part of the event.\n *\tgrfscen - Flags of currently disabled event types.\n *\n * Returns:\n *\tfTrue if the event was played, fFalse in the case of failure.\n *\n ****************************************************/\nbool SCEN::_FPlaySev(PSEV psev, void *qvVar, ulong grfscen)\n{\n    AssertThis(0);\n    AssertVarMem(psev);\n\n    PACTR pactr;\n    PTBOX ptbox;\n    PBKGD pbkgd;\n    TAG tag;\n    WIT wit;\n    long dts;\n\n    switch (psev->sevt)\n    {\n    case sevtPlaySnd:\n        PSSE psse;\n\n        psse = (PSSE)qvVar;\n        // If it's midi, copy it to _psseBkgd\n        if (psse->sty == styMidi)\n        {\n            PSSE psseDup;\n            psseDup = psse->PsseDup();\n            if (psseDup == pvNil)\n                return fFalse;\n            ReleasePpsse(&_psseBkgd);\n            _psseBkgd = psseDup;\n            _nfrmSseBkgd = psev->nfrm;\n        }\n        if (grfscen & fscenSounds)\n        {\n            return (fTrue);\n        }\n        psse->PlayAllSounds(Pmvie());\n        break;\n\n    case sevtSetBkgd:\n\n        tag = *(PTAG)qvVar;\n        pbkgd = (PBKGD)vptagm->PbacoFetch(&tag, BKGD::FReadBkgd);\n        if (pvNil == pbkgd)\n        {\n            return fFalse;\n        }\n\n        if (!pbkgd->FSetCamera(_pmvie->Pbwld(), 0))\n        {\n            ReleasePpo(&pbkgd);\n            return (fFalse);\n        }\n\n        if (Pmvie()->Trans() == transNil)\n        {\n            Pmvie()->SetTrans(transCut); // so we do palette change at next draw\n        }\n\n        _pbkgd = pbkgd;\n        _tagBkgd = tag;\n        break;\n\n    case sevtAddActr:\n\n        //\n        // Add the actor to the roll call.\n        //\n        pactr = *(PACTR *)qvVar;\n\n        AssertPo(pactr, 0);\n\n        if (_pglpactr->FPush(&pactr) == fFalse)\n        {\n            return (fFalse);\n        }\n\n        pactr->SetPscen(this);\n\n        //\n        // Plop them into this frame\n        //\n        if (!pactr->FGotoFrame(_nfrmCur))\n        {\n            _pglpactr->FPop(&pactr);\n            return (fFalse);\n        }\n\n        break;\n\n    case sevtPause:\n\n        wit = (WIT)(*(long *)qvVar);\n        Pmvie()->Pmcc()->PauseType(wit);\n\n        if (grfscen & fscenPauses)\n        {\n            return (fTrue);\n        }\n\n        dts = *((long *)qvVar + 1);\n        Pmvie()->DoPause(wit, dts);\n        break;\n\n    case sevtAddTbox:\n\n        //\n        // Add the text box to the scene\n        //\n        ptbox = *(PTBOX *)qvVar;\n\n        AssertPo(ptbox, 0);\n\n        //\n        // Insert at the end, because tbox ordering is important\n        // since the client uses itbox to find text boxes.\n        //\n        if (!_pglptbox->FInsert(_pglptbox->IvMac(), &ptbox))\n        {\n            return (fFalse);\n        }\n\n        //\n        // Plop them into this frame\n        //\n        if (!ptbox->FGotoFrame(_nfrmCur))\n        {\n            _pglptbox->Delete(_pglptbox->IvMac() - 1);\n            return (fFalse);\n        }\n\n        break;\n\n    case sevtChngCamera:\n\n        Assert(_pbkgd != pvNil, \"No background in the scene\");\n        if (grfscen & fscenCams)\n        {\n            return (fTrue);\n        }\n        if (!_pbkgd->FSetCamera(_pmvie->Pbwld(), *(long *)qvVar))\n        {\n            return (fFalse);\n        }\n        break;\n\n    default:\n\n        Bug(\"Unhandled sevt\");\n        break;\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine undoes a single event.\n *\n * Parameters:\n *\tpsev - Pointer to the scene event to unplay.\n *\tqvVar- Pointer to the variable part of the event.\n *\n *\n * Returns:\n *\tfTrue if the unplay worked, else fFalse.\n *\n ****************************************************/\nbool SCEN::_FUnPlaySev(PSEV psev, void *qvVar)\n{\n    AssertThis(0);\n    AssertVarMem(psev);\n\n    SEV sev;\n    long isev;\n    PSEV qsevTmp;\n\n    switch (psev->sevt)\n    {\n    case sevtPlaySnd:\n        //\n        // Go backwards and find previous background sound.\n        //\n        for (isev = _isevFrmLim - 1; isev >= 0; isev--)\n        {\n            qsevTmp = (PSEV)_pggsevFrm->QvFixedGet(isev);\n\n            if ((qsevTmp->sevt == sevtPlaySnd) && (qsevTmp->nfrm < _nfrmCur))\n            {\n                sev = *qsevTmp;\n                _FPlaySev(&sev, _pggsevFrm->QvGet(isev), _grfscen | fscenSounds); // Ignore failure.\n                return (fTrue);\n            }\n        }\n\n        //\n        // Not found -- clear variables.\n        //\n        ReleasePpsse(&_psseBkgd);\n        break;\n\n    case sevtAddActr:\n    case sevtAddTbox:\n    case sevtPause:\n        break;\n\n    case sevtChngCamera:\n\n        Assert(_pbkgd != pvNil, \"No background in scene\");\n\n        //\n        // Go backwards and find previous camera position.\n        //\n        for (isev = _isevFrmLim - 1; isev >= 0; isev--)\n        {\n            qsevTmp = (PSEV)_pggsevFrm->QvFixedGet(isev);\n\n            if ((qsevTmp->sevt == sevtChngCamera) && (qsevTmp->nfrm < _nfrmCur))\n            {\n                sev = *qsevTmp;\n                AssertDo(_FPlaySev(&sev, _pggsevFrm->QvGet(isev), _grfscen), \"Should not fail.\");\n                return (fTrue);\n            }\n        }\n\n        //\n        // Not found -- use starting camera, which is always camera 0.\n        //\n        sev.sevt = sevtChngCamera;\n        isev = 0;\n\n        if (!_FPlaySev(&sev, &isev, _grfscen))\n        {\n            Assert(0, \"Should never happen\");\n            return (fFalse);\n        }\n\n        break;\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine moves back stuff that is currently\n * in the first frame of the movie to the given frame.\n *\n * Parameters:\n *\tnfrm - New first frame.\n *\n * Returns:\n *\tNone.\n *\n ****************************************************/\nvoid SCEN::_MoveBackFirstFrame(long nfrm)\n{\n    AssertThis(0);\n    Assert(nfrm < _nfrmFirst, \"Can only be called to extend scene back.\");\n\n    long isev;\n    SEV sev;\n\n    //\n    // Move back all events that must persist in the\n    // first frame.\n    //\n    for (isev = 0; isev < _pggsevFrm->IvMac(); isev++)\n    {\n        _pggsevFrm->GetFixed(isev, &sev);\n\n        if (sev.nfrm != _nfrmFirst)\n        {\n            break;\n        }\n\n        if (sev.sevt == sevtChngCamera)\n        {\n\n            //\n            // Move this back\n            //\n            sev.nfrm = nfrm;\n            _pggsevFrm->PutFixed(isev, &sev);\n            _pggsevFrm->Move(isev, 0);\n        }\n    }\n\n    //\n    // Set new first frame\n    //\n    _nfrmFirst = nfrm;\n}\n\n/****************************************************\n *\n * This routine adds a sound to the event list for this frame.\n *\n * Parameters:\n *  fLoop - should the sound loop?\n *  fQueue - queue after existing sounds, or replace them?\n *  vlm - volume to play this sound at\n *  sty - sound type (midi, speech, or SFX)\n *  ctag - number of sounds\n *  prgtag - array of MSND tags\n *\n *\n * Returns:\n *\tfTrue, if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FAddSndCore(bool fLoop, bool fQueue, long vlm, long sty, long ctag, PTAG prgtag)\n{\n    AssertThis(0);\n    AssertPvCb(prgtag, LwMul(ctag, size(TAG)));\n    Assert(!fQueue || (ctag == 1), \"if fQueue'ing, you should only be adding one sound\");\n    Assert(!fQueue || !fLoop, \"can't both queue and loop\");\n    AssertIn(sty, 0, styLim);\n\n    SEV sev;\n    PSSE psseOld;\n    PSSE psseNew;\n    long isev;\n    CHID chid;\n    long isevSnd = ivNil;\n    PTAG ptag;\n    PMSND pmsnd;\n    long itag, itagBase;\n\n    //\n    // Find any other sevtPlaySnd events in this frame with the same sty\n    //\n    for (isev = _isevFrmLim - 1; isev >= 0; isev--)\n    {\n        _pggsevFrm->GetFixed(isev, &sev);\n        if (sev.nfrm != _nfrmCur)\n            break;\n        if (sev.sevt == sevtPlaySnd)\n        {\n            psseOld = (PSSE)_pggsevFrm->QvGet(isev);\n            if (psseOld->sty == sty)\n            {\n                // Found a match, which we will either add to or replace\n                isevSnd = isev;\n                break;\n            }\n        }\n    }\n\n    if (isevSnd == ivNil)\n    {\n        fQueue = fFalse; // nothing to queue to\n    }\n\n    sev.nfrm = _nfrmCur;\n    sev.sevt = sevtPlaySnd;\n\n    if (!fQueue)\n    {\n        PTAGC prgtagc;\n        long itagc;\n\n        if (!FAllocPv((void **)&prgtagc, LwMul(size(TAGC), ctag), fmemClear, mprNormal))\n            return fFalse;\n        for (itagc = 0; itagc < ctag; itagc++)\n        {\n            prgtagc[itagc].tag = prgtag[itagc];\n            if (prgtagc[itagc].tag.sid == ksidUseCrf)\n            {\n                if (!_pmvie->FChidFromUserSndCno(prgtag[itagc].cno, &chid))\n                {\n                    FreePpv((void **)&prgtagc);\n                    return fFalse;\n                }\n                prgtagc[itagc].chid = chid;\n            }\n            else\n            {\n                TrashVar(&prgtagc[itagc].chid);\n            }\n        }\n        // Create new event, replace any old event of same sty\n        itagBase = 0;\n        psseNew = SSE::PsseNew(vlm, sty, fLoop, ctag, prgtagc);\n        FreePpv((void **)&prgtagc);\n        if (pvNil == psseNew)\n        {\n            return fFalse;\n        }\n        if (!_FAddSev(&sev, psseNew->Cb(), psseNew))\n        {\n            ReleasePpsse(&psseNew);\n            return fFalse;\n        }\n        if (isevSnd != ivNil)\n        {\n            // Delete old event, if any\n            PSSE psse;\n            long itagc;\n            psse = (PSSE)_pggsevFrm->QvGet(isevSnd);\n            for (itagc = 0; itagc < psse->ctagc; itagc++)\n            {\n                TAGM::CloseTag(psse->Ptag(itagc));\n            }\n            _pggsevFrm->Delete(isevSnd);\n            _isevFrmLim--;\n        }\n    }\n    else // we're queueing\n    {\n        // Add this sound to isevSnd\n        psseOld = SSE::PsseDupFromGg(_pggsevFrm, isevSnd);\n        if (pvNil == psseOld)\n        {\n            return fFalse;\n        }\n        // ctag == 1\n        if (prgtag[0].sid == ksidUseCrf)\n        {\n            if (!_pmvie->FChidFromUserSndCno(prgtag[0].cno, &chid))\n            {\n                ReleasePpsse(&psseOld);\n                return fFalse;\n            }\n        }\n        else\n            TrashVar(&chid);\n\n        itagBase = psseOld->ctagc;\n        psseNew = psseOld->PsseAddTagChid(prgtag, chid);\n        if (pvNil == psseNew)\n        {\n            ReleasePpsse(&psseOld);\n            return fFalse;\n        }\n        if (!_pggsevFrm->FPut(isevSnd, psseNew->Cb(), psseNew))\n        {\n            ReleasePpsse(&psseOld);\n            ReleasePpsse(&psseNew);\n            return fFalse;\n        }\n        ReleasePpsse(&psseOld);\n    }\n\n    //\n    // Play only these sounds\n    //\n    for (itag = 0; itag < ctag; itag++)\n    {\n        ptag = &(prgtag[itag]);\n        if (ptag->sid == ksidUseCrf)\n        {\n            if (!Pmvie()->FResolveSndTag(ptag, *(psseNew->Pchid(itag + itagBase))))\n                continue;\n        }\n\n        pmsnd = (PMSND)vptagm->PbacoFetch(ptag, MSND::FReadMsnd);\n        if (pvNil == pmsnd)\n            continue;\n\n        // Only queue if it's not the first sound.\n        Pmvie()->Pmsq()->FEnqueue(pmsnd, 0, fLoop, (itag != 0), vlm, pmsnd->Spr(fLoop ? toolLooper : toolSounder),\n                                  fFalse, 0);\n\n        ReleasePpo(&pmsnd);\n    }\n\n    if (!_FPlaySev(&sev, psseNew, _grfscen | fscenSounds))\n    {\n        // non-fatal error...ignore it\n    }\n    FreePpv((void **)&psseNew); // don't ReleasePpsse because GG got the tags\n\n    _MarkMovieDirty();\n    Pmvie()->Pmcc()->SetSndFrame(fTrue);\n    return fTrue;\n}\n\n/****************************************************\n *\n * This routine adds a sound to the event list for this frame.\n * Note: The chid's in the tagc are current\n *\n * Parameters:\n *  fLoop - should the sound loop?\n *  fQueue - queue after existing sounds, or replace them?\n *  vlm - volume to play this sound at\n *  sty - sound type (midi, speech, or SFX)\n *  ctag - number of sounds\n *  prgtagc - array of MSND tags\n *\n *\n * Returns:\n *\tfTrue, if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FAddSndCoreTagc(bool fLoop, bool fQueue, long vlm, long sty, long ctagc, PTAGC prgtagc)\n{\n    AssertThis(0);\n    AssertPvCb(prgtagc, LwMul(ctagc, size(TAGC)));\n    Assert(!fQueue || (ctagc == 1), \"if fQueue'ing, you should only be adding one sound\");\n    Assert(!fQueue || !fLoop, \"can't both queue and loop\");\n    AssertIn(sty, 0, styLim);\n\n    SEV sev;\n    PSSE psseOld;\n    PSSE psseNew;\n    long isev;\n    long isevSnd = ivNil;\n\n    //\n    // Find any other sevtPlaySnd events in this frame with the same sty\n    //\n    for (isev = _isevFrmLim - 1; isev >= 0; isev--)\n    {\n        _pggsevFrm->GetFixed(isev, &sev);\n        if (sev.nfrm != _nfrmCur)\n            break;\n        if (sev.sevt == sevtPlaySnd)\n        {\n            psseOld = (PSSE)_pggsevFrm->QvGet(isev);\n            if (psseOld->sty == sty)\n            {\n                // Found a match, which we will either add to or replace\n                isevSnd = isev;\n                break;\n            }\n        }\n    }\n\n    if (isevSnd == ivNil)\n    {\n        fQueue = fFalse; // nothing to queue to\n    }\n\n    sev.nfrm = _nfrmCur;\n    sev.sevt = sevtPlaySnd;\n\n    if (!fQueue)\n    {\n        // Create new event, replace any old event of same sty\n        psseNew = SSE::PsseNew(vlm, sty, fLoop, ctagc, prgtagc);\n        if (pvNil == psseNew)\n            return fFalse;\n        if (!_FAddSev(&sev, psseNew->Cb(), psseNew))\n        {\n            ReleasePpsse(&psseNew);\n            return fFalse;\n        }\n        if (isevSnd != ivNil)\n        {\n            // Delete old event, if any\n            PSSE psse;\n            long itagc;\n            psse = (PSSE)_pggsevFrm->QvGet(isevSnd);\n            for (itagc = 0; itagc < psse->ctagc; itagc++)\n            {\n                TAGM::CloseTag(psse->Ptag(itagc));\n            }\n            _pggsevFrm->Delete(isevSnd);\n            _isevFrmLim--;\n        }\n    }\n    else // we're queueing\n    {\n        Bug(\"Should never queue when undoing\");\n    }\n\n    if (!_FPlaySev(&sev, psseNew, _grfscen))\n    {\n        // non-fatal error...ignore it\n    }\n\n    FreePpv((void **)&psseNew); // don't ReleasePpsse because GG got the tags\n    _MarkMovieDirty();\n    Pmvie()->Pmcc()->SetSndFrame(fTrue);\n    return fTrue;\n}\n\n/****************************************************\n *\n * This routine adds a sound to the event list for this frame\n * and creates an undo object for the action.\n *\n * Parameters:\n *\tptag - pointer to the tag for the sound.\n *  fLoop - whether to loop the sound\n *  fQueue - queue after existing sounds, or replace them?\n *  vlm - volume to play this sound at\n *  sty - sound type (midi, speech, or SFX)\n *\n * Returns:\n *\tfTrue, if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FAddSnd(PTAG ptag, bool fLoop, bool fQueue, long vlm, long sty)\n{\n    AssertThis(0);\n    AssertVarMem(ptag);\n    Assert(!fQueue || !fLoop, \"can't both queue and loop\");\n    AssertIn(sty, 0, styLim);\n\n    PSUNS psuns;\n    PSSE psse;\n    bool fFound;\n\n    // Create a SUNS with nil _psse\n    psuns = SUNS::PsunsNew();\n\n    if (psuns == pvNil)\n    {\n        return (fFalse);\n    }\n    psuns->SetSty(sty);\n\n    // grab sound before edit, if any\n    if (!FGetSnd(sty, &fFound, &psse))\n    {\n        ReleasePpo(&psuns);\n        return fFalse;\n    }\n    if (fFound)\n    {\n        if (!psuns->FSetSnd(psse))\n        {\n            ReleasePpsse(&psse);\n            ReleasePpo(&psuns);\n            return fFalse;\n        }\n        ReleasePpsse(&psse);\n    }\n\n    if (!_pmvie->FAddUndo(psuns))\n    {\n        ReleasePpo(&psuns);\n        return (fFalse);\n    }\n\n    ReleasePpo(&psuns);\n\n    if (!FAddSndCore(fLoop, fQueue, vlm, sty, 1, ptag))\n    {\n        _pmvie->ClearUndo();\n        return (fFalse);\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine removes a sound from the event list for this frame.\n *\n * Parameters:\n *\tsty - the type of sound to remove\n *\n *\n * Returns:\n *  None\n *\n ****************************************************/\nvoid SCEN::RemSndCore(long sty)\n{\n    AssertThis(0);\n    AssertIn(sty, 0, styLim);\n\n    PSEV qsev;\n    long isev;\n\n    //\n    // Find the sound\n    //\n    for (isev = _isevFrmLim - 1; isev >= 0; isev--)\n    {\n        qsev = (PSEV)_pggsevFrm->QvFixedGet(isev);\n\n        if (qsev->nfrm != _nfrmCur)\n        {\n            Bug(\"sty not found\");\n            return;\n        }\n\n        if ((qsev->sevt == sevtPlaySnd) && ((PSSE)_pggsevFrm->QvGet(isev))->sty == sty)\n        {\n            //\n            // Remove it\n            //\n            PSSE psse;\n            long itagc;\n            psse = (PSSE)_pggsevFrm->QvGet(isev);\n            for (itagc = 0; itagc < psse->ctagc; itagc++)\n            {\n                TAGM::CloseTag(psse->Ptag(itagc));\n            }\n            _pggsevFrm->Delete(isev);\n            _isevFrmLim--;\n\n            if (sty == styMidi)\n            {\n                ReleasePpsse(&_psseBkgd);\n            }\n\n            UpdateSndFrame();\n\n            _MarkMovieDirty();\n            return;\n        }\n    }\n\n    Bug(\"No such sound\");\n}\n\n/****************************************************\n *\n * This routine removes a sound from the event list for this frame\n * and creates an undo object for the action.\n *\n * Parameters:\n *\tsty - the type of sound to remove\n *\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FRemSnd(long sty)\n{\n    AssertThis(0);\n    AssertIn(sty, 0, styLim);\n\n    PSUNS psuns;\n    PSSE psse = pvNil;\n    long isev;\n    PSEV qsev;\n\n    psuns = SUNS::PsunsNew();\n\n    if (psuns == pvNil)\n    {\n        return (fFalse);\n    }\n\n    //\n    // Find the sound\n    //\n    for (isev = _isevFrmLim - 1; isev >= 0; isev--)\n    {\n        qsev = (PSEV)_pggsevFrm->QvFixedGet(isev);\n\n        if (qsev->nfrm != _nfrmCur)\n        {\n            Bug(\"sty not found\");\n            return fTrue;\n        }\n\n        if ((qsev->sevt == sevtPlaySnd) && ((PSSE)_pggsevFrm->QvGet(isev))->sty == sty)\n        {\n            psse = SSE::PsseDupFromGg(_pggsevFrm, isev);\n            if (psse == pvNil)\n            {\n                return fFalse;\n            }\n        }\n    }\n    if (!psuns->FSetSnd(psse))\n    {\n        ReleasePpsse(&psse);\n        return fFalse;\n    }\n    ReleasePpsse(&psse);\n\n    if (!_pmvie->FAddUndo(psuns))\n    {\n        ReleasePpo(&psuns);\n        return (fFalse);\n    }\n\n    ReleasePpo(&psuns);\n\n    RemSndCore(sty);\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine finds a specific sound in the current frame.\n *\n * Parameters:\n *\tsty - sound type to search for\n *  pfFound - set to fTrue if a sound is found, else fFalse\n *  ppsse - gets a pointer to the SSE if it is found\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FGetSnd(long sty, bool *pfFound, PSSE *ppsse)\n{\n    AssertThis(0);\n    AssertIn(sty, 0, styLim);\n    AssertVarMem(ppsse);\n\n    PSEV qsev;\n    long isev;\n\n    *pfFound = fFalse;\n    //\n    // Check event list.\n    //\n    for (isev = _isevFrmLim - 1; isev >= 0; isev--)\n    {\n        qsev = (PSEV)_pggsevFrm->QvFixedGet(isev);\n\n        if (qsev->nfrm != _nfrmCur)\n        {\n            break; // sound not found\n        }\n\n        if (qsev->sevt == sevtPlaySnd)\n        {\n            if (sty == ((PSSE)_pggsevFrm->QvGet(isev))->sty)\n            {\n                *ppsse = SSE::PsseDupFromGg(_pggsevFrm, isev);\n                if (*ppsse == pvNil)\n                {\n                    return fFalse; // memory error\n                }\n                *pfFound = fTrue;\n                return fTrue;\n            }\n        }\n    }\n\n    //\n    // End of list...sound not found\n    //\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine plays the background sound, if any.\n * If the sound really started at an earlier frame,\n * this function tries to resume the sound at the\n * appropriate offset into the sound (dtsStart).\n *\n * Parameters:\n *  none\n *\n * Returns:\n *  none\n *\n ****************************************************/\nvoid SCEN::PlayBkgdSnd(void)\n{\n    AssertThis(0);\n\n    ulong dtsStart;\n    ulong dfrm;\n\n    if (pvNil != _psseBkgd)\n    {\n        dfrm = Nfrm() - _nfrmSseBkgd;\n        Assert(dfrm >= 0, \"this sound is in the future!\");\n        dtsStart = LwMulDiv(dfrm, kdtsSecond, kfps);\n        _psseBkgd->PlayAllSounds(Pmvie(), dtsStart);\n    }\n}\n\n/****************************************************\n *\n * This routine queries what sounds are attched to the\n * scene at the current frame\n *\n * Parameters:\n *  sty - the sound type to query\n *\n * Returns:\n *  fFalse if an error occurs\n *\n ****************************************************/\nbool SCEN::FQuerySnd(long sty, PGL *ppgltagSnd, long *pvlm, bool *pfLoop)\n{\n    AssertThis(0);\n    AssertVarMem(ppgltagSnd);\n    AssertVarMem(pvlm);\n    AssertVarMem(pfLoop);\n\n    PSSE psse;\n    bool fFound;\n    long itag;\n\n    *ppgltagSnd = pvNil;\n\n    if (!FGetSnd(sty, &fFound, &psse))\n    {\n        return fFalse; // error\n    }\n    if (!fFound)\n    {\n        return fTrue; // no sounds (*ppglTagSnd is nil)\n    }\n    *ppgltagSnd = GL::PglNew(size(TAG), psse->ctagc);\n    if (pvNil == *ppgltagSnd)\n    {\n        ReleasePpsse(&psse);\n        return fFalse;\n    }\n    AssertDo((*ppgltagSnd)->FSetIvMac(psse->ctagc), \"PglNew should have ensured space\");\n    for (itag = 0; itag < psse->ctagc; itag++)\n    {\n        (*ppgltagSnd)->Put(itag, psse->Ptag(itag));\n    }\n    *pvlm = psse->vlm;\n    *pfLoop = psse->fLoop;\n    ReleasePpsse(&psse);\n\n    return fTrue;\n}\n\n/****************************************************\n *\n * This routine changes the volume of the sound of\n * type sty at the current frame to vlmNew\n *\n * Parameters:\n *  sty - the sound type to query\n *  vlmNew - the new volume\n *\n * Returns:\n *  none\n *\n ****************************************************/\nvoid SCEN::SetSndVlmCore(long sty, long vlmNew)\n{\n    AssertThis(0);\n    AssertIn(sty, 0, styLim);\n    AssertIn(vlmNew, 0, kvlmFull + 1);\n\n    PSEV qsev;\n    long isev;\n    PSSE psse;\n\n    //\n    // Check event list.\n    //\n    for (isev = _isevFrmLim - 1; isev >= 0; isev--)\n    {\n        qsev = (PSEV)_pggsevFrm->QvFixedGet(isev);\n\n        if (qsev->nfrm != _nfrmCur)\n        {\n            Bug(\"No such sound\");\n            break; // sound not found\n        }\n\n        if (qsev->sevt == sevtPlaySnd)\n        {\n            psse = ((PSSE)_pggsevFrm->QvGet(isev));\n            if (sty == psse->sty)\n            {\n                psse->vlm = vlmNew;\n                _MarkMovieDirty();\n                return;\n            }\n        }\n    }\n\n    //\n    // End of list...sound not found\n    //\n    Bug(\"No such sound\");\n}\n\n/******************************************************************************\n    UpdateSndFrame\n        Enumerates all scene events for the current frame, and asks all actors\n        to enumerate all of their actor events for the current frame, looking\n        for a sound event.  Has the movie's MCC update the frame-sound state\n        based on the results of the search.\n************************************************************ PETED ***********/\nvoid SCEN::UpdateSndFrame(void)\n{\n    bool fSoundInFrame = fFalse;\n    long iv = _isevFrmLim;\n\n    while (iv-- > 0)\n    {\n        PSEV qsev = (PSEV)_pggsevFrm->QvFixedGet(iv);\n\n        if (qsev->nfrm != _nfrmCur)\n        {\n            iv = -1;\n            break;\n        }\n\n        if (qsev->sevt == sevtPlaySnd)\n        {\n            fSoundInFrame = fTrue;\n            goto LDone;\n        }\n    }\n\n    while (++iv < _pglpactr->IvMac())\n    {\n        PACTR pactr;\n\n        _pglpactr->Get(iv, &pactr);\n        AssertPo(pactr, 0);\n\n        if (pactr->FSoundInFrm())\n        {\n            fSoundInFrame = fTrue;\n            goto LDone;\n        }\n    }\n\nLDone:\n    Pmvie()->Pmcc()->SetSndFrame(fSoundInFrame);\n}\n\n/****************************************************\n *\n * This routine adds an event to the current frame of the current scene.\n *\n * Parameters:\n *  psev - Pointer to the event to add.\n *\tcbVar- Size of pvVar buffer, in bytes.\n *  pvVar- Pointer to the variable part of the event.\n *\n * Returns:\n *\tfTrue, if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::_FAddSev(PSEV psev, long cbVar, void *pvVar)\n{\n    AssertThis(0);\n    AssertVarMem(psev);\n    AssertIn(cbVar, 0, klwMax);\n\n    bool fRetValue;\n\n    //\n    // Add the event to the scene\n    //\n    _MarkMovieDirty();\n\n    fRetValue = _pggsevFrm->FInsert(_isevFrmLim++, cbVar, pvVar, psev);\n\n    if (!fRetValue)\n    {\n        _isevFrmLim--;\n    }\n\n    return (fRetValue);\n}\n\n/****************************************************\n *\n * This routine sets the selected actor to the given one.\n *\n * Parameters:\n *  pactr - Pointer to the actr to select.  pvNil is a\n *  \tvalid value and deselects the current actor and tbox.\n *\n * Returns:\n *\tNone\n *\n ****************************************************/\nvoid SCEN::SelectActr(ACTR *pactr)\n{\n    AssertThis(0);\n    AssertNilOrPo(pactr, 0);\n\n    PMVU pmvu;\n\n    pmvu = (PMVU)Pmvie()->PddgGet(0);\n    AssertNilOrPo(pmvu, 0);\n\n    if ((pmvu != pvNil) && !pmvu->FTextMode())\n    {\n        if (pvNil != _pactrSelected)\n        {\n            _pactrSelected->Unhilite();\n        }\n\n        if (pvNil != pactr)\n        {\n            pactr->Hilite();\n        }\n\n        if (_ptboxSelected != pvNil)\n        {\n            _ptboxSelected->Select(fFalse);\n        }\n    }\n\n    _pmvie->InvalViews();\n    _pactrSelected = pactr;\n\n    _pmvie->BuildActionMenu();\n}\n\n/****************************************************\n *\n * This routine sets the selected text box to the given one.\n *\n * Parameters:\n *  ptbox - Pointer to the tbox to select.  pvNil is a\n *  \tvalid value and deselects the current actor and tbox.\n *\n * Returns:\n *\tNone\n *\n ****************************************************/\nvoid SCEN::SelectTbox(PTBOX ptbox)\n{\n    AssertThis(0);\n    AssertNilOrPo(ptbox, 0);\n\n    PMVU pmvu;\n\n    pmvu = (PMVU)Pmvie()->PddgGet(0);\n    AssertNilOrPo(pmvu, 0);\n\n    _pmvie->InvalViews();\n\n    if ((pmvu != pvNil) && pmvu->FTextMode())\n    {\n\n        if (pvNil != _pactrSelected)\n        {\n            _pactrSelected->Unhilite();\n            _pmvie->BuildActionMenu();\n        }\n\n        if ((ptbox == _ptboxSelected) && ((ptbox == pvNil) || ptbox->FSelected()))\n        {\n            return;\n        }\n\n        if (pvNil != _ptboxSelected)\n        {\n            _ptboxSelected->Select(fFalse);\n        }\n\n        if (pvNil != ptbox)\n        {\n            ptbox->Select(fTrue);\n        }\n    }\n\n    _ptboxSelected = ptbox;\n    _pmvie->Pmcc()->TboxSelected();\n}\n\n/****************************************************\n *\n * This routine adds an actor to the scene at the current frame,\n * if the arid is aridNil, else it replaces the actor in the\n * scene with the same arid.\n *\n * Parameters:\n *  pactr - Pointer to the actr to add.\n *\n *\n * Returns:\n *\tfTrue, if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FAddActrCore(ACTR *pactr)\n{\n    AssertThis(0);\n    AssertPo(pactr, 0);\n\n    PSEV qsev;\n    SEV sev;\n    long isev;\n    long ipactr;\n    STN stn;\n    PACTR pactrOld;\n    bool fRetValue;\n\n    //\n    // Check if actor is in Scene already.\n    //\n    for (isev = 0; isev < _pggsevStart->IvMac(); isev++)\n    {\n        qsev = (PSEV)_pggsevStart->QvFixedGet(isev);\n\n        if (qsev->sevt != sevtAddActr)\n        {\n            continue;\n        }\n\n        _pggsevStart->Get(isev, (void *)&pactrOld);\n\n        if (pactrOld->Arid() != pactr->Arid())\n        {\n            continue;\n        }\n\n        //\n        // Replace actor in scene roll call\n        //\n        for (ipactr = 0; ipactr < _pglpactr->IvMac(); ipactr++)\n        {\n            _pglpactr->Get(ipactr, &pactrOld);\n\n            if (pactrOld->Arid() == pactr->Arid())\n            {\n\n                pactr->AddRef();\n                pactr->SetPscen(this);\n\n                //\n                // Plop them into this frame\n                //\n                if (!pactr->FGotoFrame(_nfrmCur))\n                {\n                    ReleasePpo(&pactr);\n                    return (fFalse);\n                }\n\n                //\n                // Replace starting actor\n                //\n                _pggsevStart->Put(isev, &pactr);\n                _pglpactr->Put(ipactr, &pactr);\n\n                SelectActr(pactr);\n                pactrOld->Hide();\n                ReleasePpo(&pactrOld);\n                InvalFrmRange();\n                _MarkMovieDirty();\n                UpdateSndFrame();\n                return (fTrue);\n            }\n        }\n\n        Bug(\"Cannot find actor in Roll call\");\n    }\n\n    //\n    // Add actor to inital list of events to do.\n    //\n    sev.sevt = sevtAddActr;\n    fRetValue = _pggsevStart->FInsert(0, size(PACTR), &pactr, &sev);\n\n    if (fRetValue)\n    {\n        pactr->AddRef();\n\n        pactr->Ptmpl()->GetName(&stn);\n        if (!_pmvie->FAddToRollCall(pactr, &stn))\n        {\n            _pggsevStart->Delete(0);\n            ReleasePpo(&pactr);\n            return (fFalse);\n        }\n\n        fRetValue = _FPlaySev(&sev, &pactr, _grfscen);\n\n        if (!fRetValue)\n        {\n            _pmvie->RemFromRollCall(pactr);\n            _pggsevStart->Delete(0);\n            ReleasePpo(&pactr);\n        }\n        else\n        {\n            InvalFrmRange();\n            _MarkMovieDirty();\n            UpdateSndFrame();\n        }\n    }\n\n    return (fRetValue);\n}\n\n/****************************************************\n *\n * This routine adds an actor to the scene at the current frame.\n * This auto magically selects the actor and places them on stage.\n *\n * Parameters:\n *  pactr - Pointer to the actr to add.\n *\n *\n * Returns:\n *\tfTrue, if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FAddActr(ACTR *pactr)\n{\n    AssertThis(0);\n    AssertPo(pactr, 0);\n\n    if (!FAddActrCore(pactr))\n    {\n        return (fFalse);\n    }\n\n    if (!pactr->FAddOnStageCore())\n    {\n        RemActrCore(pactr->Arid());\n        return (fFalse);\n    }\n\n    SelectActr(pactr);\n\n    //\n    // The MVU creates the undo object for this because of the mouse\n    // placement.\n    //\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine removes an actor from the scene.\n *\n * Parameters:\n *  arid - The actor id to remove.\n *\n *\n * Returns:\n *  None\n *\n ****************************************************/\nvoid SCEN::RemActrCore(long arid)\n{\n    AssertThis(0);\n\n    PSEV qsev;\n    PACTR pactrTmp;\n    long isev;\n\n    //\n    // Check if actor is in Scene already.\n    //\n    for (isev = 0; isev < _pggsevStart->IvMac(); isev++)\n    {\n        qsev = (PSEV)_pggsevStart->QvFixedGet(isev);\n\n        if (qsev->sevt != sevtAddActr)\n        {\n            continue;\n        }\n\n        _pggsevStart->Get(isev, &pactrTmp);\n        if (pactrTmp->Arid() != arid)\n        {\n            continue;\n        }\n\n        //\n        // Remove actor from inital list of events to do.\n        //\n        _pggsevStart->Delete(isev);\n\n        //\n        // Remove actor from the scene roll call\n        //\n        for (isev = 0; isev < _pglpactr->IvMac(); isev++)\n        {\n            _pglpactr->Get(isev, &pactrTmp);\n\n            if (pactrTmp->Arid() != arid)\n            {\n                continue;\n            }\n\n            _pglpactr->Delete(isev);\n\n            //\n            // Remove actor as the currently selected actor\n            //\n            if (_pactrSelected == pactrTmp)\n            {\n                PMVU pmvu;\n\n                _pactrSelected = pvNil;\n                pmvu = (PMVU)_pmvie->PddgGet(0);\n                if (pmvu != pvNil)\n                {\n                    pmvu->EndPlaceActor();\n                }\n            }\n\n            //\n            // Remove actor from the movie roll call\n            //\n            _pmvie->RemFromRollCall(pactrTmp);\n\n            pactrTmp->Hide();\n\n            ReleasePpo(&pactrTmp);\n            _MarkMovieDirty();\n            UpdateSndFrame();\n\n            return;\n        }\n\n        Bug(\"Actor does not exist in roll call\");\n        _MarkMovieDirty();\n        return;\n    }\n\n    Bug(\"Actor does not exist in scene\");\n}\n\n/****************************************************\n *\n * This routine removes an actor from the scene, and\n * creates an undo object for the action.\n *\n * Parameters:\n *  arid - The actor id to remove.\n *\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FRemActr(long arid)\n{\n    AssertThis(0);\n    AssertIn(arid, 0, 500);\n\n    PSUNA psuna;\n    long ipactr;\n    PACTR pactr;\n\n    //\n    // Find the actor for undo purposes\n    //\n    for (ipactr = 0; ipactr < _pglpactr->IvMac(); ipactr++)\n    {\n        _pglpactr->Get(ipactr, &pactr);\n        if (pactr->Arid() == arid)\n        {\n            break;\n        }\n    }\n\n    AssertPo(pactr, 0);\n    pactr->AddRef();\n\n    psuna = SUNA::PsunaNew();\n\n    if (psuna == pvNil)\n    {\n        ReleasePpo(&pactr);\n        return (fFalse);\n    }\n\n    psuna->SetActr(pactr);\n    psuna->SetType(utDel);\n\n    if (!_pmvie->FAddUndo(psuna))\n    {\n        return (fFalse);\n    }\n\n    ReleasePpo(&psuna);\n\n    RemActrCore(arid);\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine returns the actor pointed at by the mouse.\n *\n * Parameters:\n *\txp - X position of the mouse within the display space.\n *\typ - Y position of the mouse within the display space.\n *  pibset - Place to store the index of the group of body parts hit.\n *\n * Returns:\n *  Pointer to the actor, pvNil if none.\n *\n ****************************************************/\nACTR *SCEN::PactrFromPt(long xp, long yp, long *pibset)\n{\n    AssertThis(0);\n    AssertVarMem(pibset);\n\n    ACTR *pactr;\n    BODY *pbody;\n    long ipactr;\n\n    pbody = BODY::PbodyClicked(xp, yp, Pmvie()->Pbwld(), pibset);\n    if (pvNil == pbody)\n    {\n        return pvNil;\n    }\n\n    //\n    // loop through actors, call FIsMyBody()\n    //\n    for (ipactr = 0; ipactr < _pglpactr->IvMac(); ipactr++)\n    {\n        _pglpactr->Get(ipactr, &pactr);\n        if (pactr->FIsMyBody(pbody))\n        {\n            return pactr;\n        }\n    }\n\n    Bug(\"weird...we clicked a pbody, but we don't know whose it is!\");\n\n    return pvNil;\n}\n\n/****************************************************\n *\n * This routine adds a text box to the scene at the current frame\n *\n * Parameters:\n *  ptbox - Pointer to the text box to add.\n *\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FAddTboxCore(PTBOX ptbox)\n{\n    AssertThis(0);\n    AssertPo(ptbox, 0);\n\n    SEV sev;\n    bool fRetValue;\n\n#ifdef DEBUG\n\n    PSEV qsev;\n    long isev;\n\n    //\n    // Search for duplicate tbox\n    //\n    for (isev = 0; isev < _pggsevStart->IvMac(); isev++)\n    {\n        qsev = (PSEV)_pggsevStart->QvFixedGet(isev);\n        if ((qsev->sevt == sevtAddTbox) && (ptbox == (PTBOX)_pggsevStart->QvGet(isev)))\n        {\n            Bug(\"Error, adding same text box twice\");\n            return (fTrue);\n        }\n    }\n#endif\n\n    //\n    // Add text box to event list.\n    //\n    sev.sevt = sevtAddTbox;\n    ptbox->SetScen(this);\n    fRetValue = _pggsevStart->FInsert(_pggsevStart->IvMac(), size(PTBOX), &ptbox, &sev);\n\n    if (fRetValue)\n    {\n        ptbox->AddRef();\n        fRetValue = _FPlaySev(&sev, &ptbox, _grfscen);\n\n        if (!fRetValue)\n        {\n            _pggsevStart->Delete(_pggsevStart->IvMac() - 1);\n        }\n        else\n        {\n            _MarkMovieDirty();\n        }\n    }\n\n    return (fRetValue);\n}\n\n/****************************************************\n *\n * This routine adds a text box to the scene at the current frame\n * creates an undo object for the action.\n *\n * Parameters:\n *  ptbox - Pointer to the text box to add.\n *\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FAddTbox(PTBOX ptbox)\n{\n    PSUNX psunx;\n    long itbox;\n    long nfrmFirst, nfrmLast;\n\n    psunx = SUNX::PsunxNew();\n\n    if (psunx == pvNil)\n    {\n        return (fFalse);\n    }\n\n    if (!FAddTboxCore(ptbox))\n    {\n        ReleasePpo(&psunx);\n        return (fFalse);\n    }\n\n    ptbox->AddRef();\n    ptbox->FGetLifetime(&nfrmFirst, &nfrmLast);\n    psunx->SetTbox(ptbox); // transfers the reference count to the undo object\n    psunx->SetNfrmFirst(nfrmFirst);\n    psunx->SetNfrmLast((nfrmLast == _nfrmLast) ? klwMax : nfrmLast);\n\n    for (itbox = 0; itbox < _pglptbox->IvMac(); itbox++)\n    {\n        if (ptbox == PtboxFromItbox(itbox))\n        {\n            psunx->SetItbox(itbox);\n            break;\n        }\n    }\n\n    AssertIn(itbox, 0, _pglptbox->IvMac());\n\n    psunx->SetAdd(fTrue);\n\n    if (!_pmvie->FAddUndo(psunx))\n    {\n        PushErc(ercSocNotUndoable);\n        ReleasePpo(&psunx);\n        return (fFalse);\n    }\n\n    ReleasePpo(&psunx);\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine removes a text box from the scene.\n *\n * Parameters:\n *  ptbox - Pointer to the text box to remove.\n *\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FRemTboxCore(PTBOX ptbox)\n{\n    AssertThis(0);\n    AssertPo(ptbox, 0);\n\n    PSEV qsev;\n    long isev;\n    long itbox;\n    long nfrmStart, nfrmLast;\n\n    //\n    // Check if currently selected tbox.\n    //\n    if (ptbox == _ptboxSelected)\n    {\n\n        _ptboxSelected = pvNil;\n        if (ptbox != pvNil)\n        {\n            ptbox->Select(fFalse);\n        }\n    }\n\n    //\n    // Find the text box\n    //\n    for (isev = 0; isev < _pggsevStart->IvMac(); isev++)\n    {\n        qsev = (PSEV)_pggsevStart->QvFixedGet(isev);\n\n        if ((qsev->sevt == sevtAddTbox) && ((*(PTBOX *)_pggsevStart->QvGet(isev)) == ptbox))\n        {\n\n            //\n            // Remove it.  Do not ReleasePpo() here as reference count\n            // gets transfered to callee.\n            //\n            _pggsevStart->Delete(isev);\n\n            //\n            // Find it in the _pglptbox\n            //\n            for (itbox = 0; itbox < _pglptbox->IvMac(); itbox++)\n            {\n                if (*(PTBOX *)_pglptbox->QvGet(itbox) == ptbox)\n                {\n\n                    if (_ptboxSelected == ptbox)\n                    {\n                        _ptboxSelected = pvNil;\n                    }\n\n                    _pglptbox->Delete(itbox);\n                    if (ptbox->FGetLifetime(&nfrmStart, &nfrmLast))\n                    {\n                        //\n                        // This will guarantee that the tbox doesn't leave\n                        // any display on the rendering area.\n                        //\n                        AssertDo(ptbox->FGotoFrame(nfrmStart - 1), \"Could not remove a text box\");\n                    }\n                    ReleasePpo(&ptbox);\n                    _MarkMovieDirty();\n                    return (fTrue);\n                }\n            }\n\n            Bug(\"Text box not found in GL\");\n            return (fFalse);\n        }\n    }\n\n    Bug(\"Error! Could not find text box for removal\");\n    return (fFalse);\n}\n\n/****************************************************\n *\n * This routine removes a text box from the scene,\n * creates an undo object for the action.\n *\n * Parameters:\n *  ptbox - Pointer to the text box to remove.\n *\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FRemTbox(PTBOX ptbox)\n{\n    AssertThis(0);\n    AssertPo(ptbox, 0);\n\n    PSUNX psunx;\n    long nfrmFirst, nfrmLast;\n\n    psunx = SUNX::PsunxNew();\n\n    if (psunx == pvNil)\n    {\n        return (fFalse);\n    }\n\n    ptbox->AddRef();\n    ptbox->FGetLifetime(&nfrmFirst, &nfrmLast);\n    psunx->SetTbox(ptbox); // transfers the reference count to the undo object\n    psunx->SetAdd(fFalse);\n    psunx->SetNfrmFirst(nfrmFirst);\n    psunx->SetNfrmLast((nfrmLast == _nfrmLast) ? klwMax : nfrmLast);\n\n    if (!_pmvie->FAddUndo(psunx))\n    {\n        ReleasePpo(&psunx);\n        return (fFalse);\n    }\n\n    ReleasePpo(&psunx);\n\n    if (!FRemTboxCore(ptbox))\n    {\n        _pmvie->ClearUndo();\n        return (fFalse);\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine gets the ith text box.\n *\n * Parameters:\n *  itbox - Index of the text box to get.\n *\n * Returns:\n *  Pointer to the text box if itbox is valid, else pvNil.\n *\n ****************************************************/\nTBOX *SCEN::PtboxFromItbox(long itbox)\n{\n    AssertThis(0);\n    Assert(itbox >= 0, \"Bad index value\");\n\n    long ipo;\n    PTBOX ptbox;\n\n    for (ipo = 0; ipo < _pglptbox->IvMac(); ipo++)\n    {\n\n        _pglptbox->Get(ipo, &ptbox);\n\n        itbox--;\n        if (itbox == -1)\n        {\n            break;\n        }\n    }\n\n    if (itbox != -1)\n    {\n        ptbox = pvNil;\n    }\n\n    return (ptbox);\n}\n\n/****************************************************\n *\n * This routine adds/removes a pause to the scene at the current frame.\n *\n * Parameters:\n *\tpwit - The pause type, witNil removes a pause, returns old pause type.\n *  pdts - Valid only if wit==witForTime, dts is in clock ticks, returns\n *\t\told wait time if old wit was witForTime.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FPauseCore(WIT *pwit, long *pdts)\n{\n    AssertThis(0);\n    AssertIn(*pwit, witNil, witLim);\n    AssertIn(*pdts, 0, klwMax);\n\n    SEV sev;\n    long isev;\n    PSEV qsev;\n    SEVP sevp;\n    WIT witOld;\n    long dtsOld;\n\n    //\n    // Start at the first event of this frame.\n    //\n    for (isev = _isevFrmLim - 1; isev >= 0; isev--)\n    {\n        qsev = (PSEV)_pggsevFrm->QvFixedGet(isev);\n\n        if (qsev->nfrm != _nfrmCur)\n        {\n            break;\n        }\n\n        //\n        // Find a pause\n        //\n        if (qsev->sevt == sevtPause)\n        {\n\n            //\n            // Replace the event\n            //\n            _pggsevFrm->Get(isev, &sevp);\n            witOld = sevp.wit;\n            dtsOld = sevp.dts;\n\n            if (*pwit == witNil)\n            {\n                _pggsevFrm->Delete(isev);\n                _isevFrmLim--;\n            }\n            else\n            {\n                sevp.wit = *pwit;\n                sevp.dts = *pdts;\n                _pggsevFrm->Put(isev, &sevp);\n            }\n\n            *pwit = witOld;\n            *pdts = dtsOld;\n            return (fTrue);\n        }\n    }\n\n    //\n    // Add pause to event list.\n    //\n    sev.nfrm = _nfrmCur;\n    sev.sevt = sevtPause;\n    sevp.wit = *pwit;\n    sevp.dts = *pdts;\n    if (!_FAddSev(&sev, size(long) * 2, &sevp))\n    {\n        return (fFalse);\n    }\n\n    *pwit = witNil;\n    *pdts = 0;\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine adds/removes a pause to the scene at the current frame\n * and creates an undo object for the action.\n *\n * Parameters:\n *\twit - The pause type, removes pause if wit==witNil.\n *  dts - Valid only if wit==witForTime, dts is in clock ticks.\n *\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FPause(WIT wit, long dts)\n{\n    PSUNP psunp;\n\n    psunp = SUNP::PsunpNew();\n\n    if (psunp == pvNil)\n    {\n        return (fFalse);\n    }\n\n    if (!FPauseCore(&wit, &dts))\n    {\n        ReleasePpo(&psunp);\n        return (fFalse);\n    }\n\n    psunp->SetWit(wit);\n    psunp->SetDts(dts);\n    psunp->SetAdd(fTrue);\n\n    if (!_pmvie->FAddUndo(psunp))\n    {\n        FPauseCore(&wit, &dts);\n        ReleasePpo(&psunp);\n        return (fFalse);\n    }\n\n    ReleasePpo(&psunp);\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine sets the background for the scene.\n *\n * Parameters:\n *  ptag - Pointer to the background tag to put on the scene.\n *  ptagOld - Place to store the old background tag.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FSetBkgdCore(PTAG ptag, PTAG ptagOld)\n{\n    AssertThis(0);\n    AssertVarMem(ptag);\n    AssertVarMem(ptagOld);\n\n    SEV sev;\n    long isev;\n    TAG tag;\n    long vlm;\n    bool fLoop;\n    PMSND pmsnd;\n    long sty;\n\n    if (_pbkgd != pvNil)\n    {\n        //\n        // Replace background\n        //\n\n        for (isev = 0; isev < _pggsevStart->IvMac(); isev++)\n        {\n            _pggsevStart->GetFixed(isev, &sev);\n\n            if (sev.sevt == sevtSetBkgd)\n            {\n                _pggsevStart->Get(isev, ptagOld);\n                if (!_pggsevStart->FPut(isev, size(TAG), ptag))\n                {\n                    return (fFalse);\n                }\n\n                _pbkgd->TurnOffLights();\n                ReleasePpo(&_pbkgd);\n\n                _MarkMovieDirty();\n                if (!_FPlaySev(&sev, ptag, _grfscen))\n                {\n                    _pggsevStart->FPut(isev, size(TAG), ptagOld);\n                    _FPlaySev(&sev, ptagOld, _grfscen);\n                    return (fFalse);\n                }\n\n                AssertPo(_pbkgd, 0);\n                _pbkgd->GetName(&_stnName);\n                goto LSuccess;\n            }\n        }\n\n        Bug(\"No background event found\");\n        return (fFalse);\n    }\n\n    TrashVar(ptagOld);\n\n    //\n    // Add set background event and play it.\n    //\n    sev.sevt = sevtSetBkgd;\n\n    if (!_pggsevStart->FInsert(0, size(TAG), ptag, &sev))\n    {\n        return (fFalse);\n    }\n\n    if (!_FPlaySev(&sev, ptag, _grfscen))\n    {\n        _pggsevStart->Delete(0);\n        return (fFalse);\n    }\n\n    AssertPo(_pbkgd, 0);\n    _pbkgd->GetName(&_stnName);\n    _MarkMovieDirty();\n\nLSuccess:\n\n    while (_pggsevFrm->IvMac() != 0)\n    {\n        //\n        // Remove stale scene events\n        //\n        _pggsevFrm->Delete(_pggsevFrm->IvMac() - 1);\n    }\n\n    _isevFrmLim = 0;\n\n    // Add the default sound for the new background, if any\n    _pbkgd->GetDefaultSound(&tag, &vlm, &fLoop);\n    if (tag.sid != ksidInvalid) // new background sound\n    {\n        // Note: since FSetBkgdCore is only called at edit time,\n        // it's okay to call FCacheTag.  The background default\n        // sound is not an intrinsic part of the BKGD...it's more\n        // of a \"serving suggestion\" that the user can remove\n        // once the background is added.\n        Assert(!_pmvie->FPlaying(), \"Shouldn't cache tags if movie is playing!\");\n        if (vptagm->FCacheTagToHD(&tag))\n        {\n            pmsnd = (PMSND)vptagm->PbacoFetch(&tag, MSND::FReadMsnd);\n            if (pvNil != pmsnd)\n            {\n                sty = pmsnd->Sty();\n                ReleasePpo(&pmsnd);\n                // non-destructive if we fail\n                FAddSndCore(fLoop, fFalse, vlm, sty, 1, &tag);\n            }\n        }\n    }\n\n    _pmvie->Pmcc()->SceneChange();\n\n    if (vpcex != pvNil)\n    {\n        vpcex->EnqueueCid(cidSceneLoaded);\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine sets the background for the scene.\n *\n * Parameters:\n *  pbkgd - Pointer to the background to put on the scene.\n *\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FSetBkgd(PTAG ptag)\n{\n    AssertThis(0);\n    AssertVarMem(ptag);\n\n    TAG tagOld;\n    PSUNK psunk;\n    long icam;\n\n    if (_pbkgd != pvNil)\n    {\n        icam = _pbkgd->Icam();\n    }\n\n    if (!FSetBkgdCore(ptag, &tagOld))\n    {\n        return (fFalse);\n    }\n\n#ifdef DEBUG\n    long lw;\n\n    TrashVar(&lw);\n    Assert(tagOld.sid != lw, \"Use CORE function to set first background\");\n#endif\n\n    psunk = SUNK::PsunkNew();\n\n    if (psunk == pvNil)\n    {\n        if (!FSetBkgdCore(&tagOld, ptag))\n        {\n            _pmvie->ClearUndo();\n            PushErc(ercSocNotUndoable);\n        }\n        return (fFalse);\n    }\n\n    psunk->SetTag(&tagOld);\n    psunk->SetIcam(icam);\n    psunk->SetFBkgd(fTrue);\n\n    if (!_pmvie->FAddUndo(psunk))\n    {\n        ReleasePpo(&psunk);\n\n        if (!FSetBkgdCore(&tagOld, ptag))\n        {\n            _pmvie->ClearUndo();\n            PushErc(ercSocNotUndoable);\n        }\n        return (fFalse);\n    }\n\n    ReleasePpo(&psunk);\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine returns if a scene is currently empty\n *\n * Parameters:\n *  None.\n *\n * Returns:\n *  fTrue if the scene contains only camera changes and sounds\n *    and is only 1 frame long, else fFalse.\n *\n ****************************************************/\nbool SCEN::FIsEmpty(void)\n{\n    AssertThis(0);\n\n    long isev;\n    SEV sev;\n\n    if ((_pggsevStart->IvMac() != 1) || ((_nfrmLast - _nfrmFirst) > 0))\n    {\n        return (fFalse);\n    }\n\n    for (isev = 0; isev < _pggsevFrm->IvMac(); isev++)\n    {\n\n        _pggsevFrm->GetFixed(isev, &sev);\n        if (sev.sevt != sevtChngCamera && sev.sevt != sevtPlaySnd)\n        {\n            return (fFalse);\n        }\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine changes the camera view point at this frame.\n *\n * Parameters:\n *  icam - The camera number in the BKGD to switch to.\n *\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FChangeCamCore(long icam, long *picamOld)\n{\n    AssertThis(0);\n    AssertIn(icam, 0, 500);\n    AssertVarMem(picamOld);\n\n    PSEV qsev, qsevOld;\n    SEV sev;\n    long isev, isevCam;\n\n    //\n    // Check for a current camera change.\n    //\n    *picamOld = 0;\n\n    for (isev = _isevFrmLim - 1; isev >= 0; isev--)\n    {\n        qsev = (PSEV)_pggsevFrm->QvFixedGet(isev);\n\n        if (qsev->sevt == sevtChngCamera)\n        {\n\n            if (qsev->nfrm == _nfrmCur)\n            {\n\n                //\n                // Check if this new camera matches the previous\n                // camera\n                //\n                for (isevCam = isev - 1; isevCam >= 0; isevCam--)\n                {\n\n                    qsevOld = (PSEV)_pggsevFrm->QvFixedGet(isevCam);\n                    if (qsevOld->sevt == sevtChngCamera)\n                    {\n                        _pggsevFrm->Get(isevCam, picamOld);\n                        break;\n                    }\n                }\n\n                //\n                // If they are equal, then change camera to\n                // previous camera and remove this change event.\n                //\n                if (*picamOld == icam)\n                {\n                    qsevOld = (PSEV)_pggsevFrm->QvFixedGet(isev);\n                    _pggsevFrm->Get(isev, picamOld);\n                    if (_FPlaySev(qsevOld, &icam, _grfscen))\n                    {\n                        _pggsevFrm->Delete(isev);\n                        _isevFrmLim--;\n                        _MarkMovieDirty();\n                        goto LSuccess;\n                    }\n                    return (fFalse);\n                }\n\n                //\n                // Change it\n                //\n                _pggsevFrm->Get(isev, picamOld);\n                _pggsevFrm->Put(isev, &icam);\n                _MarkMovieDirty();\n                if (_FPlaySev(qsev, &icam, _grfscen))\n                {\n                    goto LSuccess;\n                }\n                return (fFalse);\n            }\n            else\n            {\n                _pggsevFrm->Get(isev, picamOld);\n                break;\n            }\n        }\n    }\n\n    if (*picamOld == icam)\n    {\n        goto LSuccess;\n    }\n\n    //\n    // Add camera change to event list.\n    //\n    sev.nfrm = _nfrmCur;\n    sev.sevt = sevtChngCamera;\n\n    if (_FAddSev(&sev, size(long), &icam))\n    {\n        if (_FPlaySev(&sev, &icam, _grfscen))\n        {\n            goto LSuccess;\n        }\n        else\n        {\n            _pggsevFrm->Delete(--_isevFrmLim);\n        }\n    }\n\n    return (fFalse);\n\nLSuccess:\n\n    //\n    // Check for later camera change\n    //\n    for (isev = _isevFrmLim; isev < _pggsevFrm->IvMac(); isev++)\n    {\n        long icamNext;\n        qsev = (PSEV)_pggsevFrm->QvFixedGet(isev);\n        if (qsev->sevt == sevtChngCamera)\n        {\n            _pggsevFrm->Get(isev, &icamNext);\n            if (icamNext == icam)\n            {\n                _pggsevFrm->Delete(isev);\n                _isevFrmLim;\n            }\n            break;\n        }\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine changes the camera view point at this frame\n * and creates an undo object for the action.\n *\n * Parameters:\n *  icam - The camera number in the BKGD to switch to.\n *\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FChangeCam(long icam)\n{\n    long icamOld;\n    PSUNK psunk;\n    TAG tagCam;\n\n    if (!vptagm->FBuildChildTag(&_tagBkgd, icam, kctgCam, &tagCam))\n    {\n        return fFalse;\n    }\n\n    if (!vptagm->FCacheTagToHD(&tagCam))\n    {\n        return fFalse;\n    }\n\n    if (!FChangeCamCore(icam, &icamOld))\n    {\n        return (fFalse);\n    }\n\n    psunk = SUNK::PsunkNew();\n\n    if (psunk == pvNil)\n    {\n        if (!FChangeCamCore(icam, &icamOld))\n        {\n            _pmvie->ClearUndo();\n            PushErc(ercSocNotUndoable);\n        }\n        return (fFalse);\n    }\n\n    psunk->SetIcam(icamOld);\n    psunk->SetFBkgd(fFalse);\n\n    if (!_pmvie->FAddUndo(psunk))\n    {\n        ReleasePpo(&psunk);\n\n        if (!FChangeCamCore(icam, &icamOld))\n        {\n            _pmvie->ClearUndo();\n            PushErc(ercSocNotUndoable);\n        }\n        return (fFalse);\n    }\n\n    ReleasePpo(&psunk);\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine reads in a scene from a chunky file.\n *\n * Parameters:\n *  pcrf - Pointer to the chunky file to read from.\n *  cno  - Cno within the chunky file to read.\n *\n * Returns:\n *  pvNil, if failure, else a pointer to the scene.\n *\n ****************************************************/\nSCEN *SCEN::PscenRead(PMVIE pmvie, PCRF pcrf, CNO cno)\n{\n    AssertPo(pmvie, 0);\n    AssertPo(pcrf, 0);\n\n    PSCEN pscen = pvNil;\n    BLCK blck;\n    KID kid;\n    long isevFrm = 0;\n    long isevStart = 0;\n    SEV sev;\n    PSEV qsev;\n    short bo;\n    PACTR pactr;\n    PTBOX ptbox;\n    CHID chid;\n    SCENH scenh;\n    PCFL pcfl;\n\n    pcfl = pcrf->Pcfl();\n\n    //\n    // Find the chunk and read in the header.\n    //\n    if (!pcfl->FFind(kctgScen, cno, &blck) || !blck.FUnpackData() || (blck.Cb() != size(SCENH)) ||\n        !blck.FReadRgb(&scenh, size(SCENH), 0))\n    {\n        goto LFail0;\n    }\n\n    //\n    // Check header for byte swapping\n    //\n    if (scenh.bo == kboOther)\n    {\n        SwapBytesBom(&scenh, kbomScenh);\n    }\n    else\n    {\n        Assert(scenh.bo == kboCur, \"Bad Chunky file\");\n    }\n\n    //\n    // Create our scene object.\n    //\n    pscen = NewObj SCEN(pmvie);\n\n    if (pscen == pvNil)\n    {\n        goto LFail0;\n    }\n\n    pscen->_isevFrmLim = 0;\n\n    //\n    // Initialize roll call\tfor actors\n    //\n    pscen->_pglpactr = GL::PglNew(size(PACTR), 0);\n    if (pscen->_pglpactr == pvNil)\n    {\n        goto LFail0;\n    }\n\n    //\n    // Initialize roll call\tfor text boxes\n    //\n    pscen->_pglptbox = GL::PglNew(size(PTBOX), 0);\n    if (pscen->_pglptbox == pvNil)\n    {\n        goto LFail0;\n    }\n\n    //\n    // Read Frame information\n    //\n    pscen->_nfrmLast = scenh.nfrmLast;\n    pscen->_nfrmFirst = scenh.nfrmFirst;\n    pscen->_trans = scenh.trans;\n    pscen->_nfrmCur = pscen->_nfrmFirst - 1;\n\n    //\n    // Read in thumbnail\n    //\n    if (pcfl->FGetKidChidCtg(kctgScen, cno, 0, kctgThumbMbmp, &kid) && pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n    {\n        pscen->_pmbmp = MBMP::PmbmpRead(&blck);\n    }\n\n    //\n    // Read in GG of Frame events\n    //\n    if (!pcfl->FGetKidChidCtg(kctgScen, cno, 0, kctgFrmGg, &kid) || !pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n    {\n        goto LFail0;\n    }\n\n    pscen->_pggsevFrm = GG::PggRead(&blck, &bo);\n    if (pscen->_pggsevFrm == pvNil)\n    {\n        goto LFail0;\n    }\n\n    Assert(pscen->_pggsevFrm->CbFixed() == size(SEV), \"Bad GG read for event\");\n\n    //\n    // Convert all open tags to pointers.\n    //\n    for (; isevFrm < pscen->_pggsevFrm->IvMac(); isevFrm++)\n    {\n        qsev = (PSEV)pscen->_pggsevFrm->QvFixedGet(isevFrm);\n\n        //\n        // Swap byte ordering of entry\n        //\n        if (bo == kboOther)\n        {\n            SwapBytesBom((void *)qsev, kbomSev);\n        }\n\n        //\n        // Open all tags\n        //\n        switch (qsev->sevt)\n        {\n        case sevtPlaySnd:\n\n            PSSE psse;\n            long itag;\n\n            psse = SSE::PsseDupFromGg(pscen->_pggsevFrm, isevFrm, fFalse);\n            if (pvNil == psse)\n                goto LFail1;\n\n            if (bo == kboOther)\n            {\n                psse->SwapBytes();\n            }\n\n            for (itag = 0; itag < psse->ctagc; itag++)\n            {\n                if (!TAGM::FOpenTag(psse->Ptag(itag), pcrf, pcfl))\n                {\n                    while (itag-- > 0)\n                        TAGM::CloseTag(psse->Ptag(itag));\n                    FreePpv((void **)&psse); // don't ReleasePpsse...tags are already closed\n                    goto LFail1;\n                }\n            }\n            // Put SSE with opened tags back in GG\n            pscen->_pggsevFrm->Put(isevFrm, psse);\n            FreePpv((void **)&psse); // don't ReleasePpsse because GG keeps the tags\n            break;\n\n        case sevtChngCamera:\n        case sevtPause:\n            break;\n\n        case sevtAddActr:\n        case sevtSetBkgd:\n        case sevtAddTbox:\n        default:\n            Assert(0, \"Bad event in frame event list\");\n            break;\n        }\n    }\n\n    //\n    // Read starting events\n    //\n    ReleasePpo(&pscen->_pggsevStart);\n\n    if (!pcfl->FGetKidChidCtg(kctgScen, cno, 1, kctgStartGg, &kid) || !pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n    {\n        goto LFail1;\n    }\n\n    pscen->_pggsevStart = GG::PggRead(&blck, &bo);\n\n    if (pscen->_pggsevStart == pvNil)\n    {\n        goto LFail1;\n    }\n\n    Assert(pscen->_pggsevStart->CbFixed() == size(SEV), \"Bad GG read for event\");\n\n    //\n    // Convert all open tags to pointers.\n    //\n    for (; isevStart < pscen->_pggsevStart->IvMac(); isevStart++)\n    {\n        qsev = (PSEV)pscen->_pggsevStart->QvFixedGet(isevStart);\n\n        //\n        // Swap byte ordering of entry\n        //\n        if (bo == kboOther)\n        {\n            SwapBytesBom((void *)qsev, kbomSev);\n        }\n\n        //\n        // Convert CHIDs to pointers\n        //\n        switch (qsev->sevt)\n        {\n        case sevtAddActr:\n\n            pscen->_pggsevStart->Get(isevStart, &chid);\n            if (bo == kboOther)\n            {\n                SwapBytesBom((void *)&chid, kbomLong);\n            }\n\n            if (!pcfl->FGetKidChidCtg(kctgScen, cno, chid, kctgActr, &kid))\n            {\n                goto LFail1;\n            }\n\n            pactr = ACTR::PactrRead(pcrf, kid.cki.cno);\n            AssertNilOrPo(pactr, 0);\n\n            if (pactr == pvNil)\n            {\n                goto LFail1;\n            }\n\n            pscen->_pggsevStart->Put(isevStart, &pactr);\n            break;\n\n        case sevtAddTbox:\n\n            pscen->_pggsevStart->Get(isevStart, &chid);\n            if (bo == kboOther)\n            {\n                SwapBytesBom((void *)&chid, kbomLong);\n            }\n\n            if (!pcfl->FGetKidChidCtg(kctgScen, cno, chid, kctgTbox, &kid))\n            {\n                goto LFail1;\n            }\n\n            ptbox = TBOX::PtboxRead(pcrf, kid.cki.cno, pscen);\n            AssertNilOrPo(ptbox, 0);\n\n            if (ptbox == pvNil)\n            {\n                goto LFail1;\n            }\n\n            pscen->_pggsevStart->Put(isevStart, &ptbox);\n            break;\n\n        case sevtSetBkgd:\n        case sevtChngCamera:\n            break;\n\n        case sevtPause:\n        case sevtPlaySnd:\n        default:\n            Bug(\"Bad event in start event list\");\n            break;\n        }\n    }\n\n    //\n    // Read Name\n    //\n    pcfl->FGetName(kctgScen, cno, &pscen->_stnName);\n\n    AssertPo(pscen, 0);\n\n    return (pscen);\n\nLFail1:\n\n    //\n    // Destroy all created objects\n    //\n    while (isevStart--)\n    {\n        pscen->_pggsevStart->GetFixed(isevStart, &sev);\n        switch (sev.sevt)\n        {\n        case sevtAddActr:\n            pscen->_pggsevStart->Get(isevStart, &pactr);\n            ReleasePpo(&pactr);\n            break;\n        case sevtAddTbox:\n            pscen->_pggsevStart->Get(isevStart, &ptbox);\n            ReleasePpo(&ptbox);\n            break;\n\n        case sevtChngCamera:\n        case sevtSetBkgd:\n        case sevtPause:\n            break;\n        }\n    }\n    ReleasePpo(&pscen->_pggsevStart);\n\n    //\n    // Destroy all created objects\n    //\n    while (isevFrm--)\n    {\n        pscen->_pggsevFrm->GetFixed(isevFrm, &sev);\n        switch (sev.sevt)\n        {\n        case sevtAddActr:\n        case sevtAddTbox:\n            Bug(\"Bad event in frame list\");\n            break;\n\n        case sevtPlaySnd:\n            PSSE qsse;\n            long itag;\n\n            qsse = (PSSE)pscen->_pggsevFrm->QvGet(isevFrm);\n            if (qsse->Cb() != (pscen->_pggsevFrm->CbFixed() + pscen->_pggsevFrm->Cb(isevFrm)))\n            {\n                Bug(\"Wrong size for SSE in GG\");\n                continue;\n            }\n\n            /* Close all tags; retrieve qsse each time...in theory, nothing\n                that happens during CloseTag should cause mem to move, but this\n                is a failure case, so it's okay to be slow, especially when we\n                can be safe-not-sorry.  */\n            for (itag = 0; itag < qsse->ctagc; itag++)\n            {\n                qsse = (PSSE)pscen->_pggsevFrm->QvGet(isevFrm);\n                TAGM::CloseTag(qsse->Ptag(itag));\n            }\n            break;\n\n        case sevtSetBkgd:\n        case sevtChngCamera:\n        case sevtPause:\n            break;\n        }\n    }\n    ReleasePpo(&pscen->_pggsevFrm);\n\nLFail0:\n    ReleasePpo(&pscen);\n    return (pvNil);\n}\n\n/****************************************************\n *\n * This routine plays all the starting events for a scene.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FPlayStartEvents(bool fActorsOnly)\n{\n    AssertThis(0);\n\n    long isev;\n\n    //\n    // This needs to play all the events in _pggsevStart\n    //\n    for (isev = 0; isev < _pggsevStart->IvMac(); isev++)\n    {\n        SEV sev;\n\n        _pggsevStart->GetFixed(isev, &sev);\n        if (fActorsOnly && sev.sevt != sevtAddActr)\n            continue;\n\n        if (!_FPlaySev(&sev, _pggsevStart->QvGet(isev), _grfscen))\n        {\n            return (fFalse);\n        }\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine returns the bkgd tag in *ptag\n *\n ****************************************************/\nbool SCEN::FGetTagBkgd(PTAG ptag)\n{\n    AssertThis(0);\n    AssertVarMem(ptag);\n\n    SEV sev;\n    long isevStart;\n\n    for (isevStart = 0; isevStart < _pggsevStart->IvMac(); isevStart++)\n    {\n        sev = *(PSEV)_pggsevStart->QvFixedGet(isevStart);\n        if (sevtSetBkgd == sev.sevt)\n        {\n            *ptag = *(PTAG)_pggsevStart->QvGet(isevStart);\n            return fTrue;\n        }\n    }\n    return fFalse;\n}\n\n/****************************************************\n *\n * This routine writes a scene into a chunky file.\n *\n * Parameters:\n *  pcrf - Pointer to the chunky file to write to.\n *  pcno  - Cno within the chunky file written to.\n *\n * Returns:\n *  fFalse if it fails, else fTrue.\n *\n ****************************************************/\nbool SCEN::FWrite(PCRF pcrf, CNO *pcno)\n{\n    AssertThis(0);\n    AssertPo(pcrf, 0);\n\n    PGG pggFrmTemp = pvNil;\n    PGG pggStartTemp = pvNil;\n    SEV sev;\n    CHID chidActr, chidTbox;\n    CNO cnoChild, cnoFrmEvent, cnoStartEvent;\n    SCENH scenh;\n    long isevFrm = -1;\n    long isevStart = -1;\n    long cb;\n    BLCK blck;\n    PCFL pcfl;\n\n    chidActr = chidTbox = 0;\n\n    pcfl = pcrf->Pcfl();\n\n    *pcno = cnoNil;\n\n    //\n    // Get a new CNO for this chunk\n    //\n    if (!pcfl->FAdd(0, kctgScen, pcno))\n    {\n        goto LFail;\n    }\n\n    //\n    // Copy frame event GG to temporary GG\n    //\n    pggFrmTemp = GG::PggNew(size(SEV));\n\n    if (pggFrmTemp == pvNil)\n    {\n        goto LFail;\n    }\n\n    for (isevFrm = 0; isevFrm < _pggsevFrm->IvMac(); isevFrm++)\n    {\n        sev = *(PSEV)_pggsevFrm->QvFixedGet(isevFrm);\n\n        //\n        // Convert pointers in the GG to CHIDs\n        //\n        switch (sev.sevt)\n        {\n        case sevtPlaySnd: {\n            bool fSuccess = fFalse;\n            PSSE psse;\n            long itag;\n            KID kid;\n\n            psse = SSE::PsseDupFromGg(_pggsevFrm, isevFrm);\n            if (pvNil == psse)\n            {\n                goto LFail;\n            }\n            for (itag = 0; itag < psse->ctagc; itag++)\n            {\n                // For user sounds, the tag's cno must already be correct.\n                // Note: FResolveSndTag can't succeed if the msnd chunk is\n                // not yet a child of the scene.\n                if (psse->Ptagc(itag)->tag.sid != ksidUseCrf)\n                    continue; // tag will be closed by ReleasePpsse\n\n                // If the msnd chunk already exists as this chid of this scene, continue\n                if (pcfl->FGetKidChidCtg(kctgScen, *pcno, *psse->Pchid(itag), kctgMsnd, &kid))\n                    continue; // tag will be closed by ReleasePpsse\n\n                // If the msnd does not exist in this file, it exists in the main movie\n                if (!pcfl->FFind(kctgMsnd, psse->Ptag(itag)->cno))\n                    continue; // tag will be closed by ReleasePpsse\n\n                // The msnd chunk has not been adopted into the scene as the specified chid\n                if (!pcfl->FAdoptChild(kctgScen, *pcno, kctgMsnd, psse->Ptag(itag)->cno, *psse->Pchid(itag)))\n                {\n                    goto LEndPlaySnd;\n                }\n            }\n\n            if (pggFrmTemp->FInsert(isevFrm, psse->Cb(), psse, &sev))\n            {\n                fSuccess = fTrue;\n            }\n        LEndPlaySnd:\n            ReleasePpsse(&psse);\n            if (!fSuccess)\n            {\n                goto LFail;\n            }\n            break;\n        }\n\n        case sevtChngCamera:\n            if (!pggFrmTemp->FInsert(isevFrm, size(long), _pggsevFrm->QvGet(isevFrm), &sev))\n            {\n                goto LFail;\n            }\n            break;\n\n        case sevtPause:\n            if (!pggFrmTemp->FInsert(isevFrm, size(SEVP), _pggsevFrm->QvGet(isevFrm), &sev))\n            {\n                goto LFail;\n            }\n\n            break;\n\n        case sevtAddActr:\n        case sevtSetBkgd:\n        case sevtAddTbox:\n            Assert(0, \"Bad event in frame event list\");\n            break;\n        }\n    }\n\n    //\n    // Copy start event GG to temporary GG\n    //\n    pggStartTemp = GG::PggNew(size(SEV));\n\n    if (pggStartTemp == pvNil)\n    {\n        goto LFail;\n    }\n\n    for (isevStart = 0; isevStart < _pggsevStart->IvMac(); isevStart++)\n    {\n        sev = *(PSEV)_pggsevStart->QvFixedGet(isevStart);\n        //\n        // Convert pointers in the GG to CHIDs\n        //\n        switch (sev.sevt)\n        {\n        case sevtAddActr:\n\n            if (!pcfl->FAddChild(kctgScen, *pcno, chidActr, 0, kctgActr, &cnoChild))\n            {\n                goto LFail;\n            }\n\n            if (!(*(PACTR *)_pggsevStart->QvGet(isevStart))->FWrite(pcfl, cnoChild, *pcno))\n            {\n                goto LFail;\n            }\n\n            if (!pggStartTemp->FInsert(isevStart, size(CHID), &chidActr, &sev))\n            {\n                goto LFail;\n            }\n\n            chidActr++;\n            break;\n\n        case sevtSetBkgd:\n            if (!TAGM::FSaveTag((PTAG)_pggsevStart->QvGet(isevStart), pcrf, fFalse))\n            {\n                goto LFail;\n            }\n\n            if (!pggStartTemp->FInsert(isevStart, size(TAG), _pggsevStart->QvGet(isevStart), &sev))\n            {\n                goto LFail;\n            }\n            break;\n\n        case sevtChngCamera:\n            if (!pggStartTemp->FInsert(isevStart, size(long), _pggsevStart->QvGet(isevStart), &sev))\n            {\n                goto LFail;\n            }\n            break;\n\n        case sevtAddTbox:\n            if (!pcfl->FAddChild(kctgScen, *pcno, chidTbox, 0, kctgTbox, &cnoChild))\n            {\n                goto LFail;\n            }\n\n            if (!(*(PTBOX *)_pggsevStart->QvGet(isevStart))->FWrite(pcfl, cnoChild))\n            {\n                goto LFail;\n            }\n\n            if (!pggStartTemp->FInsert(isevStart, size(CHID), &chidTbox, &sev))\n            {\n                goto LFail;\n            }\n\n            chidTbox++;\n            break;\n\n        case sevtPause:\n        case sevtPlaySnd:\n        default:\n            Assert(0, \"Bad event in frame event list\");\n            break;\n        }\n    }\n\n    //\n    // Save info into scene chunk\n    //\n    cb = pggFrmTemp->CbOnFile();\n    if (!pcfl->FAdd(cb, kctgFrmGg, &cnoFrmEvent, &blck))\n    {\n        goto LFail;\n    }\n\n    if (!pggFrmTemp->FWrite(&blck))\n    {\n        pcfl->Delete(kctgFrmGg, cnoFrmEvent);\n        goto LFail;\n    }\n\n    if (!pcfl->FAdoptChild(kctgScen, *pcno, kctgFrmGg, cnoFrmEvent, 0))\n    {\n        pcfl->Delete(kctgFrmGg, cnoFrmEvent);\n        goto LFail;\n    }\n    pcfl->SetLoner(kctgFrmGg, cnoFrmEvent, fFalse);\n\n    cb = pggStartTemp->CbOnFile();\n    if (!pcfl->FAdd(cb, kctgStartGg, &cnoStartEvent, &blck))\n    {\n        goto LFail;\n    }\n\n    if (!pggStartTemp->FWrite(&blck))\n    {\n        pcfl->Delete(kctgStartGg, cnoStartEvent);\n        goto LFail;\n    }\n\n    if (!pcfl->FAdoptChild(kctgScen, *pcno, kctgStartGg, cnoStartEvent, 1))\n    {\n        pcfl->Delete(kctgStartGg, cnoStartEvent);\n        goto LFail;\n    }\n    pcfl->SetLoner(kctgStartGg, cnoStartEvent, fFalse);\n\n    //\n    // Save thumbnail, if there is one.\n    //\n    _UpdateThumbnail();\n\n    if (_pmbmp != pvNil)\n    {\n        cb = _pmbmp->CbOnFile();\n        if (!pcfl->FAdd(cb, kctgThumbMbmp, &cnoChild, &blck))\n        {\n            goto LFail;\n        }\n\n        if (!_pmbmp->FWrite(&blck))\n        {\n            pcfl->Delete(kctgThumbMbmp, cnoChild);\n            goto LFail;\n        }\n\n        if (!pcfl->FAdoptChild(kctgScen, *pcno, kctgThumbMbmp, cnoChild, 0))\n        {\n            pcfl->Delete(kctgThumbMbmp, cnoChild);\n            goto LFail;\n        }\n        pcfl->SetLoner(kctgThumbMbmp, cnoChild, fFalse);\n    }\n\n    //\n    // Create header buffer for scene chunk\n    //\n    scenh.bo = kboCur;\n    scenh.osk = koskCur;\n    scenh.nfrmLast = _nfrmLast;\n    scenh.nfrmFirst = _nfrmFirst;\n    scenh.trans = _trans;\n\n    //\n    // Write scene chunk\n    //\n    if (!pcfl->FSetName(kctgScen, *pcno, &_stnName))\n    {\n        goto LFail;\n    }\n\n    if (!pcfl->FPutPv((void *)&scenh, size(SCENH), kctgScen, *pcno))\n    {\n        goto LFail;\n    }\n\n    ReleasePpo(&pggFrmTemp);\n    ReleasePpo(&pggStartTemp);\n\n    return (fTrue);\n\nLFail:\n\n    //\n    // Delete chunks createdk.\n    //\n    if (*pcno != cnoNil)\n    {\n        pcfl->Delete(kctgScen, *pcno);\n    }\n\n    ReleasePpo(&pggStartTemp);\n    ReleasePpo(&pggFrmTemp);\n\n    return (fFalse);\n}\n\n/****************************************************\n *\n * This routine resolves all sound tags\n *\n * Parameters:\n *  None\n * Returns:\n *  None\n *\n ****************************************************/\nbool SCEN::FResolveAllSndTags(CNO cnoScen)\n{\n    AssertThis(0);\n\n    long ipactr, ipactrMac;\n    long isev, isevMac;\n    bool fSuccess = fFalse;\n\n    ipactrMac = _pglpactr->IvMac();\n    for (ipactr = 0; ipactr < ipactrMac; ipactr++)\n    {\n        PACTR pactr;\n\n        _pglpactr->Get(ipactr, &pactr);\n        if (!pactr->FResolveAllSndTags(cnoScen))\n            goto LFail;\n    }\n\n    _pggsevFrm->Lock();\n    isevMac = _pggsevFrm->IvMac();\n    for (isev = 0; isev < isevMac; isev++)\n    {\n        long itag;\n        PSSE psse;\n        SEV sev;\n\n        sev = *(PSEV)_pggsevFrm->QvFixedGet(isev);\n        if (sev.sevt != sevtPlaySnd)\n            continue;\n\n        psse = (PSSE)_pggsevFrm->QvGet(isev);\n        for (itag = 0; itag < psse->ctagc; itag++)\n        {\n            if (psse->Ptag(itag)->sid == ksidUseCrf)\n            {\n                if (!_pmvie->FResolveSndTag(psse->Ptag(itag), *psse->Pchid(itag), cnoScen))\n                {\n                    goto LFail;\n                }\n            }\n        }\n    }\n    _pggsevFrm->Unlock();\n\n    fSuccess = fTrue;\nLFail:\n    return fSuccess;\n}\n\n/****************************************************\n *\n * This routine removes all actors from movie's roll call.\n *\n * Parameters:\n *  fDelIfOnlyRef  --  fTrue indicates to remove the roll-call entry\n *        if a given actr is only referenced by this scene.\n *\n * Returns:\n *  None\n *\n ****************************************************/\nvoid SCEN::RemActrsFromRollCall(bool fDelIfOnlyRef)\n{\n    AssertThis(0);\n\n    PACTR pactr;\n    long ipactr;\n\n    for (ipactr = 0; ipactr < _pglpactr->IvMac(); ipactr++)\n    {\n        _pglpactr->Get(ipactr, &pactr);\n        Pmvie()->RemFromRollCall(pactr, fDelIfOnlyRef);\n    }\n}\n\n/****************************************************\n *\n * This routine adds all actors to movie's roll call.\n *\n * Parameters:\n *  None\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FAddActrsToRollCall(void)\n{\n    AssertThis(0);\n\n    PACTR pactr;\n    long ipactr;\n    STN stn;\n\n    for (ipactr = 0; ipactr < _pglpactr->IvMac(); ipactr++)\n    {\n\n        _pglpactr->Get(ipactr, &pactr);\n        AssertPo(pactr, 0);\n        pactr->GetName(&stn);\n\n        if (!Pmvie()->FAddToRollCall(pactr, &stn))\n        {\n\n            for (; ipactr > 0;)\n            {\n                ipactr--;\n                _pglpactr->Get(ipactr, &pactr);\n                Pmvie()->RemFromRollCall(pactr);\n            }\n\n            return (fFalse);\n        }\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine returns the scene's thumbnail.\n *\n * Parameters:\n *  None\n *\n * Returns:\n *  None\n *\n ****************************************************/\nPMBMP SCEN::PmbmpThumbnail(void)\n{\n    AssertThis(0);\n\n    _UpdateThumbnail();\n    return (_pmbmp);\n}\n\n/****************************************************\n *\n * This routine updates the mbmp associated with the\n * thumbnail for the scene.\n *\n * Parameters:\n *  None\n *\n * Returns:\n *  None\n *\n ****************************************************/\nvoid SCEN::_UpdateThumbnail(void)\n{\n    AssertThis(0);\n\n    long nfrmCur;\n    PGPT pgpt, pgptThumb;\n    PMVU pmvu;\n    PTBOX ptbox = PtboxSelected();\n    PACTR pactr = PactrSelected();\n    RC rc, rcThumb;\n    long grfscenSave;\n    long dtimSnd;\n\n    dtimSnd = Pmvie()->Pmsq()->DtimSnd();\n    Pmvie()->Pmsq()->SndOff();\n\n    pmvu = (PMVU)Pmvie()->PddgGet(0);\n    if ((_pbkgd == pvNil) || (pmvu == pvNil))\n    {\n        goto LEnd;\n    }\n    AssertPo(pmvu, 0);\n\n    if (!Pmvie()->FDirty())\n    {\n        goto LEnd;\n    }\n\n    rc.Set(0, 0, Pmvie()->Pmcc()->Dxp(), Pmvie()->Pmcc()->Dyp());\n    pgpt = GPT::PgptNewOffscreen(&rc, 8);\n\n    if (pgpt == pvNil)\n    {\n        goto LEnd;\n    }\n\n    AssertPo(pgpt, 0);\n\n    rcThumb.Set(0, 0, kdxpThumbnail, kdypThumbnail);\n    pgptThumb = GPT::PgptNewOffscreen(&rcThumb, 8);\n\n    if (pgptThumb == pvNil)\n    {\n        ReleasePpo(&pgpt);\n        goto LEnd;\n    }\n\n    AssertPo(pgptThumb, 0);\n\n    pgptThumb->SetOffscreenColors(Pmvie()->PglclrThumbPalette());\n\n    grfscenSave = _grfscen;\n    Disable(fscenPauses | fscenSounds);\n\n    nfrmCur = _nfrmCur;\n    if ((_nfrmCur != _nfrmFirst) && !FGotoFrm(_nfrmFirst))\n    {\n        ReleasePpo(&pgpt);\n        ReleasePpo(&pgptThumb);\n        _grfscen = grfscenSave;\n        goto LEnd;\n    }\n\n    if (pmvu->FTextMode())\n    {\n        SelectTbox(pvNil);\n    }\n    else\n    {\n        SelectActr(pvNil);\n    }\n    pmvu->DrawTree(pgpt, pvNil, &rc, fgobNoVis);\n    if (pmvu->FTextMode())\n    {\n        SelectTbox(ptbox);\n    }\n    else\n    {\n        SelectActr(pactr);\n    }\n\n    BLOCK\n    {\n        GNV gnv(pgpt);\n        GNV gnvThumb(pgptThumb);\n        gnvThumb.CopyPixels(&gnv, &rc, &rcThumb);\n\n        ReleasePpo(&_pmbmp);\n\n        _pmbmp = MBMP::PmbmpNew(pgptThumb->PrgbLockPixels(), pgptThumb->CbRow(), kdypThumbnail, &rcThumb, 0, 0,\n                                kbTransparent);\n        pgptThumb->Unlock();\n\n        ReleasePpo(&pgpt);\n        ReleasePpo(&pgptThumb);\n        if ((nfrmCur > _nfrmFirst) && (nfrmCur <= _nfrmLast))\n        {\n            FGotoFrm(nfrmCur);\n        }\n\n        _grfscen = grfscenSave;\n    }\n\nLEnd:\n\n    Pmvie()->Pmsq()->SndOnDtim(dtimSnd);\n    return;\n}\n\n/****************************************************\n *\n * This routine marks the movie as dirty.\n *\n * Parameters:\n *  fDirty - Set dirty or not.\n *\n * Returns:\n *  None\n *\n ****************************************************/\nvoid SCEN::MarkDirty(bool fDirty)\n{\n    AssertThis(0);\n    if (fDirty)\n    {\n        _MarkMovieDirty();\n    }\n}\n\n/****************************************************\n *\n * This routine pastes an actor into the current scene\n *\n * Parameters:\n *  pactr - Pointer to the actor to paste\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FPasteActrCore(PACTR pactr)\n{\n    AssertThis(0);\n    AssertPo(pactr, 0);\n\n    //\n    // Paste the actor.\n    //\n    if (!pactr->FPaste(_nfrmCur, this))\n    {\n        return (fFalse);\n    }\n\n    //\n    // Add the actor\n    //\n    if (!FAddActrCore(pactr))\n    {\n        return (fFalse);\n    }\n\n    InvalFrmRange();\n    if (!pactr->FGotoFrame(_nfrmCur))\n    {\n        RemActrCore(pactr->Arid());\n        return (fFalse);\n    }\n    _MarkMovieDirty();\n\n    _pmvie->Pmcc()->UpdateRollCall();\n    UpdateSndFrame();\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine pastes an actor into the current scene\n * and creates an undo object for the action.\n *\n * NOTE: This does not need an undo object, since the\n * tool is getting set to a \"place\" tool, which will\n * create the appropriate undo type.\n *\n * Parameters:\n *  pactr - Pointer to the actor to paste\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::FPasteActr(PACTR pactr)\n{\n    AssertThis(0);\n    AssertPo(pactr, 0);\n\n    if (!FPasteActrCore(pactr))\n    {\n        return (fFalse);\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine makes all actors go to a specific frame.\n *\n * Parameters:\n *  nfrm - Frame number to go to.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::_FForceActorsToFrm(long nfrm, bool *pfSoundInFrame)\n{\n    AssertThis(0);\n    AssertIn(nfrm, klwMin, klwMax);\n\n    PACTR pactr;\n    long iactr;\n\n    for (iactr = 0; iactr < _pglpactr->IvMac(); iactr++)\n    {\n        _pglpactr->Get(iactr, &pactr);\n        AssertPo(pactr, 0);\n\n        if (!pactr->FGotoFrame(nfrm, pfSoundInFrame))\n        {\n            return (fFalse);\n        }\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine makes all text boxes go to a specific frame.\n *\n * Parameters:\n *  nfrm - Frame number to go to.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SCEN::_FForceTboxesToFrm(long nfrm)\n{\n    AssertThis(0);\n    AssertIn(nfrm, klwMin, klwMax);\n\n    PTBOX ptbox;\n    long itbox;\n\n    for (itbox = 0; itbox < _pglptbox->IvMac(); itbox++)\n    {\n        _pglptbox->Get(itbox, &ptbox);\n        AssertPo(ptbox, 0);\n\n        if (!ptbox->FGotoFrame(nfrm))\n        {\n            return (fFalse);\n        }\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Hides all text boxes in this scene\n *\n * Parameters:\n *  None.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid SCEN::HideTboxes(void)\n{\n    AssertThis(0);\n\n    PTBOX ptbox;\n    long iptbox;\n    long nfrmStart, nfrmLast;\n\n    for (iptbox = 0; iptbox < _pglptbox->IvMac(); iptbox++)\n    {\n        _pglptbox->Get(iptbox, &ptbox);\n        AssertPo(ptbox, 0);\n        if (ptbox->FGetLifetime(&nfrmStart, &nfrmLast))\n        {\n            AssertDo(ptbox->FGotoFrame(nfrmStart - 1), \"Could not remove a text box\");\n        }\n    }\n}\n\n/****************************************************\n *\n * Hides all actors in this scene\n *\n * Parameters:\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid SCEN::HideActors(void)\n{\n    AssertThis(0);\n\n    PACTR pactr;\n    long ipactr;\n\n    for (ipactr = 0; ipactr < _pglpactr->IvMac(); ipactr++)\n    {\n        _pglpactr->Get(ipactr, &pactr);\n        AssertPo(pactr, 0);\n        pactr->Hide();\n    }\n}\n\n/****************************************************\n *\n * Shows all actors in this scene\n *\n * Parameters:\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid SCEN::ShowActors(void)\n{\n    AssertThis(0);\n\n    PACTR pactr;\n    long ipactr;\n\n    for (ipactr = 0; ipactr < _pglpactr->IvMac(); ipactr++)\n    {\n        _pglpactr->Get(ipactr, &pactr);\n        AssertPo(pactr, 0);\n        pactr->Show();\n    }\n}\n\n/****************************************************\n *\n * This routine marks the movie dirty.\n *\n * Parameters:\n *  None\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid SCEN::_MarkMovieDirty()\n{\n    AssertThis(0);\n\n    if (_pmvie != pvNil)\n    {\n        _pmvie->SetDirty();\n    }\n}\n\n/****************************************************\n *\n * This routine sets the scene to the given movie\n *\n * Parameters:\n *  pmvie - The new parent movie\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid SCEN::SetMvie(PMVIE pmvie)\n{\n    AssertThis(0);\n    AssertPo(pmvie, 0);\n\n    _pmvie = pmvie;\n}\n\n/****************************************************\n *\n * This routine reads from a chunky file and creates\n * a list of all the tags in the scene.\n *\n * Parameters:\n *  pcfl - Pointer to the chunky file to read from.\n *  cno  - Cno within the chunky file to read.\n *  ptagl - tag list to put tags in\n *\n * Returns:\n *  fFalse if an error occurred, else fTrue\n *\n ****************************************************/\nbool SCEN::FAddTagsToTagl(PCFL pcfl, CNO cno, PTAGL ptagl)\n{\n    AssertPo(pcfl, 0);\n    AssertPo(ptagl, 0);\n\n    BLCK blck;\n    KID kid;\n    long isev;\n    PSEV qsev;\n    short bo;\n    PGG pggsev;\n    TAG tag;\n    TAG tagBkgd;\n    PGL pgltagSrc;\n    TAG tagSrc;\n    long itagSrc;\n    CHID chid;\n\n    tagBkgd.sid = ksidInvalid;\n\n    //\n    // Read starting events\n    //\n    if (!pcfl->FGetKidChidCtg(kctgScen, cno, 1, kctgStartGg, &kid))\n    {\n        return fFalse;\n    }\n\n    if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n    {\n        return fFalse;\n    }\n\n    pggsev = GG::PggRead(&blck, &bo);\n\n    if (pggsev == pvNil)\n    {\n        return fFalse;\n    }\n\n    Assert(pggsev->CbFixed() == size(SEV), \"Bad GG read for event\");\n\n    //\n    // Find all tags in starting events\n    //\n    for (isev = 0; isev < pggsev->IvMac(); isev++)\n    {\n        qsev = (PSEV)pggsev->QvFixedGet(isev);\n\n        //\n        // Swap byte ordering of entry\n        //\n        if (bo == kboOther)\n        {\n            SwapBytesBom((void *)qsev, kbomSev);\n        }\n\n        //\n        // Find appropriate event types\n        //\n        switch (qsev->sevt)\n        {\n        case sevtAddActr:\n\n            pggsev->Get(isev, &chid);\n            if (bo == kboOther)\n            {\n                SwapBytesBom((void *)&chid, kbomLong);\n            }\n\n            if (!pcfl->FGetKidChidCtg(kctgScen, cno, chid, kctgActr, &kid))\n            {\n                ReleasePpo(&pggsev);\n                return fFalse;\n            }\n            else\n            {\n                bool fError;\n                pgltagSrc = ACTR::PgltagFetch(pcfl, kid.cki.cno, &fError);\n\n                if (fError)\n                {\n                    ReleasePpo(&pgltagSrc);\n                    ReleasePpo(&pggsev);\n                    return fFalse;\n                }\n\n                if (pgltagSrc != pvNil)\n                {\n\n                    for (itagSrc = 0; itagSrc < pgltagSrc->IvMac(); itagSrc++)\n                    {\n                        pgltagSrc->Get(itagSrc, &tagSrc);\n                        if (!ptagl->FInsertTag(&tagSrc))\n                        {\n                            ReleasePpo(&pgltagSrc);\n                            ReleasePpo(&pggsev);\n                            return fFalse;\n                        }\n                    }\n\n                    ReleasePpo(&pgltagSrc);\n                }\n            }\n            break;\n\n        case sevtSetBkgd:\n            pggsev->Get(isev, &tag);\n            if (bo == kboOther)\n            {\n                SwapBytesBom((void *)&tag, kbomTag);\n            }\n\n            if (!BKGD::FAddTagsToTagl(&tag, ptagl))\n            {\n                ReleasePpo(&pggsev);\n                return fFalse;\n            }\n            tagBkgd = tag;\n\n            break;\n\n        case sevtAddTbox:\n            break;\n\n        case sevtPlaySnd:\n        case sevtChngCamera:\n        case sevtPause:\n        default:\n            Bug(\"Bad event in start event list\");\n            break;\n        }\n    }\n\n    ReleasePpo(&pggsev);\n\n    //\n    // Read in GG of Frame events\n    //\n    if (!pcfl->FGetKidChidCtg(kctgScen, cno, 0, kctgFrmGg, &kid))\n    {\n        return fFalse;\n    }\n\n    if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n    {\n        return fFalse;\n    }\n\n    pggsev = GG::PggRead(&blck, &bo);\n\n    if (pggsev == pvNil)\n    {\n        return fFalse;\n    }\n\n    Assert(pggsev->CbFixed() == size(SEV), \"Bad GG read for event\");\n\n    //\n    // Look in all events for tags\n    //\n    for (isev = 0; isev < pggsev->IvMac(); isev++)\n    {\n        qsev = (PSEV)pggsev->QvFixedGet(isev);\n\n        //\n        // Swap byte ordering of entry\n        //\n        if (bo == kboOther)\n        {\n            SwapBytesBom((void *)qsev, kbomSev);\n        }\n\n        //\n        // Find appropriate event types\n        //\n        switch (qsev->sevt)\n        {\n        case sevtChngCamera:\n            pggsev->Get(isev, &chid);\n            if (bo == kboOther)\n            {\n                SwapBytesBom((void *)&chid, kbomLong);\n            }\n            if (tagBkgd.sid == ksidInvalid)\n            {\n                Bug(\"no background event!?\");\n                ReleasePpo(&pggsev);\n                return fFalse;\n            }\n            if (!ptagl->FInsertChild(&tagBkgd, chid, kctgCam))\n            {\n                ReleasePpo(&pggsev);\n                return fFalse;\n            }\n            break;\n\n        case sevtPause:\n            break;\n\n        case sevtPlaySnd:\n\n            PSSE psse;\n            long itag;\n\n            psse = SSE::PsseDupFromGg(pggsev, isev, fFalse);\n            if (pvNil == psse)\n            {\n                ReleasePpo(&pggsev);\n                return fFalse;\n            }\n            if (bo == kboOther)\n            {\n                psse->SwapBytes();\n            }\n\n            //\n            // Insert the tags in order\n            //\n            for (itag = 0; itag < psse->ctagc; itag++)\n            {\n                if (!ptagl->FInsertTag(psse->Ptag(itag)))\n                {\n                    ReleasePpsse(&psse);\n                    ReleasePpo(&pggsev);\n                    return fFalse;\n                }\n            }\n            ReleasePpsse(&psse);\n            break;\n\n        case sevtAddActr:\n        case sevtSetBkgd:\n        case sevtAddTbox:\n        default:\n            Bug(\"Bad event in frame event list\");\n            break;\n        }\n    }\n\n    ReleasePpo(&pggsev);\n\n    return fTrue;\n}\n\n/****************************************************\n *\n * This returns the actor in the current scene with\n * the given arid.\n *\n * Parameters:\n *   Arid to look for.\n *\n * Returns:\n *   pvNil if failure, else the actor.\n *\n ****************************************************/\nPACTR SCEN::PactrFromArid(long arid)\n{\n    AssertThis(0);\n    Assert(arid != aridNil, \"Bad long\");\n\n    long iactr;\n    PACTR pactr;\n\n    //\n    // Search current scene for the actor.\n    //\n    for (iactr = 0; iactr < _pglpactr->IvMac(); iactr++)\n    {\n        _pglpactr->Get(iactr, &pactr);\n\n        if (pactr->Arid() == arid)\n        {\n            return (pactr);\n        }\n    }\n\n    return (pvNil);\n}\n\n/****************************************************\n *\n * This routine chops off the rest of the scene.\n *\n * Parameters:\n *   None.\n *\n * Returns:\n *   fTrue is successful, else fFalse if failure.\n *\n ****************************************************/\nbool SCEN::FChopCore()\n{\n    AssertThis(0);\n\n    PTBOX ptbox;\n    PACTR pactr;\n    bool fAlive;\n    long ipo;\n    long nfrmStart, nfrmLast;\n\n    if (_nfrmCur == _nfrmLast)\n    {\n        return (fTrue);\n    }\n\n    //\n    // Chop all actors off\n    //\n    for (ipo = 0; ipo < _pglpactr->IvMac();)\n    {\n        _pglpactr->Get(ipo, &pactr);\n        AssertPo(pactr, 0);\n        pactr->DeleteFwdCore(fTrue, &fAlive);\n\n        if (!fAlive)\n        {\n            RemActrCore(pactr->Arid());\n        }\n        else\n        {\n            ipo++;\n        }\n    }\n\n    //\n    // Chop all text boxes off\n    //\n    for (ipo = 0; ipo < _pglptbox->IvMac();)\n    {\n        _pglptbox->Get(ipo, &ptbox);\n        AssertPo(ptbox, 0);\n\n        if (ptbox->FGetLifetime(&nfrmStart, &nfrmLast) && (nfrmStart > _nfrmCur))\n        {\n            //\n            // Ok if this fails.\n            //\n            FRemTboxCore(ptbox);\n        }\n        else\n        {\n            if (nfrmLast >= _nfrmCur)\n            {\n\n                //\n                // Here we extend the lifetime of the text box to\n                // infinite, cuz we removed the frame with the\n                // Hide().\n                //\n                if (ptbox->FGotoFrame(klwMax - 1))\n                {\n                    ptbox->FShowCore();\n                    ptbox->FGotoFrame(_nfrmCur);\n                }\n            }\n\n            ipo++;\n        }\n    }\n\n    //\n    // Remove all scene events from here forward\n    //\n    for (; _isevFrmLim < _pggsevFrm->IvMac();)\n    {\n        _pggsevFrm->Delete(_isevFrmLim);\n    }\n\n    //\n    // Set new limit\n    //\n    if (_nfrmLast != _nfrmCur)\n    {\n        _nfrmLast = _nfrmCur;\n        Pmvie()->SetDirty();\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine chops off the rest of the scene and\n * creates an undo object as well.\n *\n * Parameters:\n *   None.\n *\n * Returns:\n *   fTrue is successful, else fFalse if failure.\n *\n ****************************************************/\nbool SCEN::FChop()\n{\n    PSUNC psunc;\n    bool fValid;\n\n    if (_nfrmCur == _nfrmLast)\n    {\n        return (fTrue);\n    }\n\n    psunc = SUNC::PsuncNew();\n    if (psunc != pvNil)\n    {\n        fValid = psunc->FSave(this);\n    }\n    else\n    {\n        fValid = fFalse;\n    }\n\n    if (!fValid || !Pmvie()->FAddUndo(psunc))\n    {\n        ReleasePpo(&psunc);\n        return (fFalse);\n    }\n\n    ReleasePpo(&psunc);\n\n    if (!FChopCore())\n    {\n        Pmvie()->ClearUndo();\n        return (fFalse);\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine chops off the rest of the scene, backwards\n *\n * Parameters:\n *   None.\n *\n * Returns:\n *   fTrue is successful, else fFalse if failure.\n *\n ****************************************************/\nbool SCEN::FChopBackCore()\n{\n    AssertThis(0);\n\n    PTBOX ptbox;\n    PACTR pactr;\n    SEV sev;\n    bool fAlive;\n    bool fCopyCam;\n    long ipo;\n    long nfrmStart, nfrmLast;\n\n    if (_nfrmCur == _nfrmFirst)\n    {\n        return (fTrue);\n    }\n\n    //\n    // Chop all actors off\n    //\n    for (ipo = 0; ipo < _pglpactr->IvMac();)\n    {\n        _pglpactr->Get(ipo, &pactr);\n        AssertPo(pactr, 0);\n        pactr->DeleteBackCore(&fAlive);\n\n        if (!fAlive)\n        {\n            RemActrCore(pactr->Arid());\n        }\n        else\n        {\n            ipo++;\n        }\n    }\n\n    //\n    // Chop all text boxes off\n    //\n    for (ipo = 0; ipo < _pglptbox->IvMac();)\n    {\n        _pglptbox->Get(ipo, &ptbox);\n        AssertPo(ptbox, 0);\n\n        if (ptbox->FGetLifetime(&nfrmStart, &nfrmLast) && (nfrmLast < _nfrmCur))\n        {\n            //\n            // Ok if this fails.\n            //\n            FRemTboxCore(ptbox);\n        }\n        else\n        {\n            if (nfrmStart < _nfrmCur)\n            {\n                Assert(ptbox->FIsVisible(), \"Bad tbox\");\n                ptbox->SetStartFrame(_nfrmCur);\n            }\n\n            ipo++;\n        }\n    }\n\n    //\n    // Remove all scene events from here backward, except camera\n    // changes, keep the most recent camera change.\n    //\n    fCopyCam = fTrue;\n    for (; _isevFrmLim > 0;)\n    {\n        _isevFrmLim--;\n\n        _pggsevFrm->GetFixed(_isevFrmLim, &sev);\n\n        if ((sev.sevt == sevtChngCamera) && (fCopyCam))\n        {\n\n            fCopyCam = fFalse;\n            sev.nfrm = _nfrmCur;\n            _pggsevFrm->PutFixed(_isevFrmLim, &sev);\n        }\n        else\n        {\n\n            if (sev.nfrm == _nfrmCur)\n            {\n                continue;\n            }\n\n            _pggsevFrm->Delete(_isevFrmLim);\n        }\n    }\n\n    _isevFrmLim = 0;\n    for (; _isevFrmLim < _pggsevFrm->IvMac(); _isevFrmLim++)\n    {\n\n        _pggsevFrm->GetFixed(_isevFrmLim, &sev);\n        if (sev.nfrm != _nfrmCur)\n        {\n            break;\n        }\n    }\n\n    //\n    // Set new limit\n    //\n    if (_nfrmFirst != _nfrmCur)\n    {\n        _nfrmFirst = _nfrmCur;\n        Pmvie()->SetDirty();\n    }\n\n    //\n    // If _psseBkgd got chopped, get rid of it\n    //\n    if (_psseBkgd != pvNil && _nfrmSseBkgd < _nfrmFirst)\n    {\n        ReleasePpsse(&_psseBkgd);\n        TrashVar(&_nfrmSseBkgd);\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine chops off the rest of the scene, backwards,\n * and creates an undo object as well.\n *\n * Parameters:\n *   None.\n *\n * Returns:\n *   fTrue is successful, else fFalse if failure.\n *\n ****************************************************/\nbool SCEN::FChopBack()\n{\n    PSUNC psunc;\n    bool fValid;\n\n    if (_nfrmCur == _nfrmFirst)\n    {\n        return (fTrue);\n    }\n\n    psunc = SUNC::PsuncNew();\n    if (psunc != pvNil)\n    {\n        fValid = psunc->FSave(this);\n    }\n    else\n    {\n        fValid = fFalse;\n    }\n\n    if (!fValid || !Pmvie()->FAddUndo(psunc))\n    {\n        ReleasePpo(&psunc);\n        return (fFalse);\n    }\n\n    ReleasePpo(&psunc);\n\n    if (!FChopBackCore())\n    {\n        Pmvie()->ClearUndo();\n        return (fFalse);\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * This routine does any startup for playback\n *\n * Parameters:\n *   None.\n *\n * Returns:\n *   None.\n *\n ****************************************************/\nbool SCEN::FStartPlaying()\n{\n    AssertThis(0);\n\n    long ipactr, iptbox;\n    PACTR pactr;\n    PTBOX ptbox;\n    PTBXG ptbxg;\n    long nfrmFirst, nfrmLast;\n\n    //\n    // Make sure all actors have state variables updated\n    // (they might not be in the theater right after\n    // loading the movie)\n    //\n    for (ipactr = 0; ipactr < _pglpactr->IvMac(); ipactr++)\n    {\n        _pglpactr->Get(ipactr, &pactr);\n        if (!pactr->FGetLifetime(&nfrmFirst, &nfrmLast))\n            return fFalse;\n    }\n\n    for (iptbox = 0; iptbox < _pglptbox->IvMac(); iptbox++)\n    {\n        _pglptbox->Get(iptbox, &ptbox);\n        if ((ptbox->FStory() && ptbox->FIsVisible()) ||\n            (!ptbox->FStory() && ptbox->FGetLifetime(&nfrmFirst, &nfrmLast) && (nfrmFirst == _nfrmCur)))\n        {\n            ptbxg = (PTBXG)ptbox->PddgGet(0);\n            ptbxg->Scroll(scaNil);\n        }\n    }\n\n    //\n    // Start prerendering at this frame, even if there's\n    // no camera view change.\n    //\n    _DoPrerenderingWork(fTrue);\n    return fTrue;\n}\n\n/****************************************************\n *\n * This routine cleans up after a playback has stopped.\n *\n * Parameters:\n *   None.\n *\n * Returns:\n *   None.\n *\n ****************************************************/\nvoid SCEN::StopPlaying()\n{\n    AssertThis(0);\n\n    long itbox;\n    PTBOX ptbox;\n\n    _EndPrerendering(); // Stop prerendering\n\n    for (itbox = 0; itbox < _pglptbox->IvMac(); itbox++)\n    {\n        _pglptbox->Get(itbox, &ptbox);\n        AssertPo(ptbox, 0);\n        ptbox->CleanDdg();\n    }\n}\n\n/******************************************************************************\n    FTransOnFile\n        For a given SCEN chunk on a given CRF, get the scene transition\n        state for the scene.\n\n    Arguments:\n        PCRF pcrf     -- the chunky resource file the SCEN lives on\n        CNO cno       -- the CNO of the SCEN chunk\n        TRANS *ptrans -- pointer to memory to take the transition setting\n\n    Returns: fTrue if it was able to set *ptrans, fFalse if something failed\n\n************************************************************ PETED ***********/\nbool SCEN::FTransOnFile(PCRF pcrf, CNO cno, TRANS *ptrans)\n{\n    BLCK blck;\n    SCENH scenh;\n    PCFL pcfl = pcrf->Pcfl();\n\n    TrashVar(ptrans);\n\n    if (!pcfl->FFind(kctgScen, cno, &blck))\n        goto LFail;\n    if (!blck.FUnpackData() || blck.Cb() != size(SCENH))\n        goto LFail;\n    if (!blck.FReadRgb(&scenh, size(SCENH), 0))\n        goto LFail;\n\n    *ptrans = scenh.trans;\n    return fTrue;\nLFail:\n    return fFalse;\n}\n\n/******************************************************************************\n    FSetTransOnFile\n        For a given SCEN chunk on a given CRF, set the scene transition\n        state for the scene.\n\n    Arguments:\n        PCRF pcrf   -- the chunky resource file the SCEN lives on\n        CNO cno     -- the CNO of the SCEN chunk\n        TRANS trans -- the transition state to use\n\n    Returns: fTrue if the routine could guarantee that the scene has the\n        given transition state.\n\n************************************************************ PETED ***********/\nbool SCEN::FSetTransOnFile(PCRF pcrf, CNO cno, TRANS trans)\n{\n    BLCK blck;\n    SCENH scenh;\n    PCFL pcfl = pcrf->Pcfl();\n\n    if (!pcfl->FFind(kctgScen, cno, &blck))\n        goto LFail;\n    if (!blck.FUnpackData() || blck.Cb() != size(SCENH))\n        goto LFail;\n    if (!blck.FReadRgb(&scenh, size(SCENH), 0))\n        goto LFail;\n    if (scenh.trans != trans)\n    {\n        scenh.trans = trans;\n        if (!pcfl->FPutPv(&scenh, size(SCENH), kctgScen, cno))\n            goto LFail;\n    }\n\n    return fTrue;\nLFail:\n    return fFalse;\n}\n\n//\n//\n//\n// UNDO STUFF\n//\n//\n//\n\n/****************************************************\n *\n * Public constructor for scene undo objects for name\n * related commands.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie undo.\n *\n ****************************************************/\nPSUNT SUNT::PsuntNew()\n{\n    PSUNT psunt;\n    psunt = NewObj SUNT();\n    return (psunt);\n}\n\n/****************************************************\n *\n * Destructor for scene naming undo objects\n *\n ****************************************************/\nSUNT::~SUNT(void)\n{\n    AssertBaseThis(0);\n}\n\n/****************************************************\n *\n * Does a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNT::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n\n    STN stn;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        _pmvie->Pmsq()->FlushMsq();\n        _pmvie->ClearUndo();\n        return (fFalse);\n    }\n\n    _pmvie->Pscen()->GetName(&stn);\n    _pmvie->Pscen()->SetNameCore(&_stn);\n    _stn = stn;\n\n    _pmvie->Pmsq()->FlushMsq();\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Undoes a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNT::FUndo(PDOCB pdocb)\n{\n    AssertThis(0);\n\n    return (FDo(pdocb));\n}\n\n#ifdef DEBUG\n/****************************************************\n * Mark memory used by the SUNT\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid SUNT::MarkMem(void)\n{\n    AssertThis(0);\n    SUNT_PAR::MarkMem();\n}\n\n/***************************************************************************\n    Assert the validity of the SUNT.\n***************************************************************************/\nvoid SUNT::AssertValid(ulong grf)\n{\n}\n#endif\n\n/****************************************************\n *\n * Public constructor for scene undo objects for sound\n * related commands.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie undo.\n *\n ****************************************************/\nPSUNS SUNS::PsunsNew()\n{\n    PSUNS psuns;\n    psuns = NewObj SUNS();\n    return (psuns);\n}\n\n/****************************************************\n *\n * Destructor for scene sound undo objects\n *\n ****************************************************/\nSUNS::~SUNS(void)\n{\n    AssertBaseThis(0);\n    ReleasePpsse(&_psse);\n}\n\n/****************************************************\n *\n * Does a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNS::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n    AssertPo(pdocb, 0);\n\n    long isevSnd = ivNil;\n    bool fFound;\n    PSSE psseOld = pvNil;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        _pmvie->ClearUndo();\n        return (fFalse);\n    }\n\n    if (!_pmvie->Pscen()->FGotoFrm(_nfrm))\n    {\n        _pmvie->ClearUndo();\n        return (fFalse);\n    }\n\n    _pmvie->Pmsq()->FlushMsq();\n\n    // swap the event in the event list (if any) with _psse (if any)\n\n    if (!_pmvie->Pscen()->FGetSnd(_sty, &fFound, &psseOld))\n    {\n        _pmvie->ClearUndo();\n        return (fFalse);\n    }\n\n    if (_psse != pvNil)\n    {\n        if (fFound)\n        {\n            _pmvie->Pscen()->RemSndCore(psseOld->sty);\n            if (!_pmvie->Pscen()->FAddSndCoreTagc(_psse->fLoop, fFalse, _psse->vlm, _psse->sty, _psse->ctagc,\n                                                  _psse->Ptagc(0)))\n            {\n                ReleasePpsse(&psseOld);\n                _pmvie->ClearUndo();\n                return (fFalse);\n            }\n            ReleasePpsse(&_psse);\n            _psse = psseOld;\n            _sty = psseOld->sty;\n        }\n        else // no sse to replace, just add this one\n        {\n            if (!_pmvie->Pscen()->FAddSndCoreTagc(_psse->fLoop, fFalse, _psse->vlm, _psse->sty, _psse->ctagc,\n                                                  _psse->Ptagc(0)))\n            {\n                _pmvie->ClearUndo();\n                return (fFalse);\n            }\n            ReleasePpsse(&_psse);\n        }\n    }\n    else // _psse is pvNil...remember what's there then nuke the event\n    {\n        if (!fFound)\n        {\n            Bug(\"where's the sound event?\");\n            return (fFalse);\n        }\n        else\n        {\n            if (!FSetSnd(psseOld))\n            {\n                _pmvie->ClearUndo();\n                return (fFalse);\n            }\n            ReleasePpsse(&psseOld);\n            _pmvie->Pscen()->RemSndCore(_sty);\n        }\n    }\n\n    _pmvie->Pmsq()->PlayMsq();\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Undoes a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNS::FUndo(PDOCB pdocb)\n{\n    AssertThis(0);\n    AssertPo(pdocb, 0);\n\n    return FDo(pdocb);\n}\n\n#ifdef DEBUG\n/****************************************************\n * Mark memory used by the SUNS\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid SUNS::MarkMem(void)\n{\n    AssertThis(0);\n    SUNS_PAR::MarkMem();\n    if (_psse != pvNil)\n        MarkPv(_psse);\n}\n\n/***************************************************************************\n    Assert the validity of the SUNS.\n***************************************************************************/\nvoid SUNS::AssertValid(ulong grf)\n{\n    SUNS_PAR::AssertValid(grf);\n    if (_psse != pvNil)\n    {\n        AssertPvCb(_psse, size(SSE));\n        AssertPvCb(_psse, _psse->Cb());\n        Assert(_sty == _psse->sty, \"sty's don't match\");\n    }\n}\n#endif\n\n/****************************************************\n *\n * Public constructor for scene undo objects for actor\n * related commands.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie undo.\n *\n ****************************************************/\nPSUNA SUNA::PsunaNew()\n{\n    PSUNA psuna;\n    psuna = NewObj SUNA();\n    return (psuna);\n}\n\n/****************************************************\n *\n * Destructor for scene actor undo objects\n *\n ****************************************************/\nSUNA::~SUNA(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pactr);\n}\n\n/****************************************************\n *\n * Does a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNA::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n\n    PACTR pactr, pactrDup;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        goto LFail;\n    }\n\n    if (!_pmvie->Pscen()->FGotoFrm(_nfrm))\n    {\n        goto LFail;\n    }\n\n    if (_ut == utAdd)\n    {\n\n        if (!_pmvie->Pscen()->FAddActrCore(_pactr))\n        {\n            goto LFail;\n        }\n\n        _pmvie->Pscen()->SelectActr(_pactr);\n\n        if (!_pactr->FDup(&pactrDup, fTrue))\n        {\n            goto LFail;\n        }\n\n        pactrDup->SetArid(_pactr->Arid());\n        ReleasePpo(&_pactr);\n        SetActr(pactrDup);\n    }\n    else if (_ut == utDel)\n    {\n\n        _pmvie->Pscen()->RemActrCore(_pactr->Arid());\n    }\n    else\n    {\n        Assert(_ut == utRep, \"Bad Grf\");\n\n        pactr = _pmvie->Pscen()->PactrFromArid(_pactr->Arid());\n        if (!pactr->FDup(&pactrDup, fTrue))\n        {\n            goto LFail;\n        }\n\n        if (!_pmvie->Pscen()->FAddActrCore(_pactr))\n        {\n            goto LFail;\n        }\n\n        _pmvie->Pscen()->SelectActr(_pactr);\n\n        pactrDup->SetArid(_pactr->Arid());\n        ReleasePpo(&_pactr);\n        SetActr(pactrDup);\n    }\n\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->Pmcc()->UpdateRollCall();\n\n    return (fTrue);\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo();\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Undoes a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNA::FUndo(PDOCB pdocb)\n{\n    AssertThis(0);\n\n    PACTR pactr, pactrDup;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        goto LFail;\n    }\n\n    if (!_pmvie->Pscen()->FGotoFrm(_nfrm))\n    {\n        goto LFail;\n    }\n\n    if (_ut == utAdd)\n    {\n\n        _pmvie->Pscen()->RemActrCore(_pactr->Arid());\n    }\n    else if (_ut == utDel)\n    {\n\n        if (!_pactr->FDup(&pactrDup, fTrue))\n        {\n            goto LFail;\n        }\n\n        pactrDup->SetArid(_pactr->Arid());\n\n        if (!_pmvie->Pscen()->FAddActrCore(pactrDup))\n        {\n            ReleasePpo(&pactrDup);\n            goto LFail;\n        }\n\n        _pmvie->Pscen()->SelectActr(pactrDup);\n\n        ReleasePpo(&pactrDup);\n    }\n    else\n    {\n        Assert(_ut == utRep, \"Bad Grf\");\n\n        pactr = _pmvie->Pscen()->PactrFromArid(_pactr->Arid());\n        if (!pactr->FDup(&pactrDup, fTrue))\n        {\n            goto LFail;\n        }\n\n        if (!_pmvie->Pscen()->FAddActrCore(_pactr))\n        {\n            goto LFail;\n        }\n\n        _pmvie->Pscen()->SelectActr(_pactr);\n\n        pactrDup->SetArid(_pactr->Arid());\n        ReleasePpo(&_pactr);\n        SetActr(pactrDup);\n    }\n\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->Pmcc()->UpdateRollCall();\n\n    return (fTrue);\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo();\n    return (fFalse);\n}\n\n#ifdef DEBUG\n/****************************************************\n * Mark memory used by the SUNA\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid SUNA::MarkMem(void)\n{\n    AssertThis(0);\n    SUNA_PAR::MarkMem();\n    MarkMemObj(_pactr);\n}\n\n/***************************************************************************\n    Assert the validity of the SUNA.\n***************************************************************************/\nvoid SUNA::AssertValid(ulong grf)\n{\n    AssertPo(_pactr, 0);\n}\n#endif\n\n/****************************************************\n *\n * Public constructor for scene undo objects for text box\n * related commands.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie undo.\n *\n ****************************************************/\nPSUNX SUNX::PsunxNew()\n{\n    PSUNX psunx;\n    psunx = NewObj SUNX();\n    return (psunx);\n}\n\n/****************************************************\n *\n * Destructor for scene text box undo objects\n *\n ****************************************************/\nSUNX::~SUNX(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_ptbox);\n}\n\n/****************************************************\n *\n * Does a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNX::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n\n    PTBOX ptbox;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        goto LFail;\n    }\n\n    if (_fAdd)\n    {\n\n        if (!_pmvie->Pscen()->FGotoFrm(_nfrmFirst))\n        {\n            goto LFail;\n        }\n\n        if (!_pmvie->Pscen()->FAddTboxCore(_ptbox))\n        {\n            _pmvie->Pscen()->FGotoFrm(_nfrm);\n            goto LFail;\n        }\n\n        if (_nfrmLast < _pmvie->Pscen()->NfrmLast())\n        {\n            AssertDo(_ptbox->FGotoFrame(_nfrmLast + 1), \"Should never fail\");\n            _ptbox->HideCore();\n        }\n\n        _pmvie->Pscen()->SelectTbox(_ptbox);\n\n        if (_pmvie->Pscen()->FGotoFrm(_nfrm))\n        {\n\n            //\n            // Find the new itbox for this tbox.\n            //\n            for (_itbox = 0;; _itbox++)\n            {\n\n                ptbox = _pmvie->Pscen()->PtboxFromItbox(_itbox);\n                AssertPo(ptbox, 0);\n\n                if (ptbox == _ptbox)\n                {\n                    break;\n                }\n            }\n        }\n    }\n    else\n    {\n\n        if (!_pmvie->Pscen()->FGotoFrm(_nfrm))\n        {\n            goto LFail;\n        }\n\n        //\n        // NOTE: ptbox may be different than _ptbox since\n        // we may have switched away from the scene.\n        //\n        ptbox = _pmvie->Pscen()->PtboxFromItbox(_itbox);\n        if (!_pmvie->Pscen()->FRemTboxCore(ptbox))\n        {\n            goto LFail;\n        }\n    }\n\n    _pmvie->Pmsq()->FlushMsq();\n\n    return (fTrue);\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo();\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Undoes a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNX::FUndo(PDOCB pdocb)\n{\n    AssertThis(0);\n\n    PTBOX ptbox;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        goto LFail;\n    }\n\n    if (_fAdd)\n    {\n\n        if (!_pmvie->Pscen()->FGotoFrm(_nfrm))\n        {\n            goto LFail;\n        }\n\n        //\n        // NOTE: ptbox may be different than _ptbox since\n        // we may have switched away from the scene.\n        //\n        ptbox = _pmvie->Pscen()->PtboxFromItbox(_itbox);\n        if (!_pmvie->Pscen()->FRemTboxCore(ptbox))\n        {\n            ReleasePpo(&ptbox);\n            goto LFail;\n        }\n    }\n    else\n    {\n\n        if (!_pmvie->Pscen()->FGotoFrm(_nfrmFirst))\n        {\n            goto LFail;\n        }\n\n        if (!_pmvie->Pscen()->FAddTboxCore(_ptbox))\n        {\n            goto LFail;\n        }\n\n        if (_nfrmLast < _pmvie->Pscen()->NfrmLast())\n        {\n            AssertDo(_ptbox->FGotoFrame(_nfrmLast + 1), \"Should never fail\");\n            _ptbox->HideCore();\n        }\n        _pmvie->Pscen()->SelectTbox(_ptbox);\n\n        if (_pmvie->Pscen()->FGotoFrm(_nfrm))\n        {\n\n            //\n            // Find the new itbox for this tbox.\n            //\n            for (_itbox = 0;; _itbox++)\n            {\n\n                ptbox = _pmvie->Pscen()->PtboxFromItbox(_itbox);\n                AssertPo(ptbox, 0);\n\n                if (ptbox == _ptbox)\n                {\n                    break;\n                }\n            }\n        }\n    }\n\n    _pmvie->Pmsq()->FlushMsq();\n\n    return (fTrue);\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo();\n    return (fFalse);\n}\n#ifdef DEBUG\n/****************************************************\n * Mark memory used by the SUNX\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid SUNX::MarkMem(void)\n{\n    AssertThis(0);\n    SUNX_PAR::MarkMem();\n    MarkMemObj(_ptbox);\n}\n\n/***************************************************************************\n    Assert the validity of the SUNX.\n***************************************************************************/\nvoid SUNX::AssertValid(ulong grf)\n{\n    AssertPo(_ptbox, 0);\n}\n#endif\n\n/****************************************************\n *\n * Public constructor for scene undo objects for transition\n * related commands.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie undo.\n *\n ****************************************************/\nPSUNR SUNR::PsunrNew()\n{\n    PSUNR psunr;\n    psunr = NewObj SUNR();\n    return (psunr);\n}\n\n/****************************************************\n *\n * Destructor for scene transition undo objects\n *\n ****************************************************/\nSUNR::~SUNR(void)\n{\n    AssertBaseThis(0);\n}\n\n/****************************************************\n *\n * Does a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNR::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n\n    TRANS trans;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        goto LFail;\n    }\n\n    if (!_pmvie->Pscen()->FGotoFrm(_nfrm))\n    {\n        goto LFail;\n    }\n\n    trans = _pmvie->Pscen()->Trans();\n    _pmvie->Pscen()->SetTransitionCore(_trans);\n    _trans = trans;\n\n    _pmvie->Pmsq()->FlushMsq();\n\n    return (fTrue);\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo();\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Undoes a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNR::FUndo(PDOCB pdocb)\n{\n    AssertThis(0);\n    return (FDo(pdocb));\n}\n\n#ifdef DEBUG\n/****************************************************\n * Mark memory used by the SUNR\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid SUNR::MarkMem(void)\n{\n    AssertThis(0);\n    SUNR_PAR::MarkMem();\n}\n\n/***************************************************************************\n    Assert the validity of the SUNR.\n***************************************************************************/\nvoid SUNR::AssertValid(ulong grf)\n{\n}\n#endif\n\n/****************************************************\n *\n * Public constructor for scene undo objects for pause\n * related commands.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie undo.\n *\n ****************************************************/\nPSUNP SUNP::PsunpNew()\n{\n    PSUNP psunp;\n    psunp = NewObj SUNP();\n    return (psunp);\n}\n\n/****************************************************\n *\n * Destructor for scene pause undo objects\n *\n ****************************************************/\nSUNP::~SUNP(void)\n{\n    AssertBaseThis(0);\n}\n\n/****************************************************\n *\n * Does a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNP::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n\n    WIT wit = _wit;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        goto LFail;\n    }\n\n    if (!_pmvie->Pscen()->FGotoFrm(_nfrm))\n    {\n        goto LFail;\n    }\n\n    if (!_pmvie->Pscen()->FPauseCore(&_wit, &_dts))\n    {\n        goto LFail;\n    }\n\n    _pmvie->Pmcc()->PauseType(wit);\n    _pmvie->Pmsq()->FlushMsq();\n\n    return (fTrue);\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo();\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Undoes a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNP::FUndo(PDOCB pdocb)\n{\n    return (FDo(pdocb));\n}\n\n#ifdef DEBUG\n/****************************************************\n * Mark memory used by the SUNP\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid SUNP::MarkMem(void)\n{\n    AssertThis(0);\n    SUNP_PAR::MarkMem();\n}\n\n/***************************************************************************\n    Assert the validity of the SUNP.\n***************************************************************************/\nvoid SUNP::AssertValid(ulong grf)\n{\n}\n#endif\n\n/****************************************************\n *\n * Public constructor for scene undo objects for background\n * related commands.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie undo.\n *\n ****************************************************/\nPSUNK SUNK::PsunkNew()\n{\n    PSUNK psunk;\n    psunk = NewObj SUNK();\n    return (psunk);\n}\n\n/****************************************************\n *\n * Destructor for scene background undo objects\n *\n ****************************************************/\nSUNK::~SUNK(void)\n{\n    AssertBaseThis(0);\n}\n\n/****************************************************\n *\n * Does a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNK::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n\n    TAG tagOld;\n    long icamOld, icam;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        goto LFail;\n    }\n\n    if (_fSetBkgd)\n    {\n\n        if (_pmvie->Pscen()->Pbkgd() != pvNil)\n        {\n            icam = _pmvie->Pscen()->Pbkgd()->Icam();\n        }\n\n        if (!_pmvie->Pscen()->FSetBkgdCore(&_tag, &tagOld))\n        {\n            goto LFail;\n        }\n\n        if (!_pmvie->Pscen()->FChangeCamCore(_icam, &icamOld))\n        {\n            goto LFail;\n        }\n\n        _tag = tagOld;\n        _icam = icam;\n    }\n    else\n    {\n\n        if (!_pmvie->Pscen()->FGotoFrm(_nfrm))\n        {\n            goto LFail;\n        }\n\n        if (!_pmvie->Pscen()->FChangeCamCore(_icam, &icamOld))\n        {\n            goto LFail;\n        }\n\n        _icam = icamOld;\n    }\n\n    _pmvie->Pmsq()->FlushMsq();\n\n    return (fTrue);\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo();\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Undoes a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNK::FUndo(PDOCB pdocb)\n{\n    AssertThis(0);\n    return (FDo(pdocb));\n}\n\n#ifdef DEBUG\n/****************************************************\n * Mark memory used by the SUNK\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid SUNK::MarkMem(void)\n{\n    AssertThis(0);\n    SUNK_PAR::MarkMem();\n}\n\n/***************************************************************************\n    Assert the validity of the SUNK.\n***************************************************************************/\nvoid SUNK::AssertValid(ulong grf)\n{\n}\n#endif\n\n/****************************************************\n *\n * Public constructor for scene undo objects for background\n * chop commands.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie undo.\n *\n ****************************************************/\nPSUNC SUNC::PsuncNew()\n{\n    PSUNC psunc;\n    psunc = NewObj SUNC();\n    return (psunc);\n}\n\n/****************************************************\n *\n * Destructor for scene pause undo objects\n *\n ****************************************************/\nSUNC::~SUNC(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pcrf);\n}\n\n/****************************************************\n *\n * This function saves away a copy of the scene.\n *\n * Parameters:\n *  pscen - The scene to save away.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNC::FSave(PSCEN pscen)\n{\n    PCFL pcfl;\n    bool fRet;\n\n    pcfl = CFL::PcflCreateTemp();\n    if (pcfl == pvNil)\n    {\n        return (fFalse);\n    }\n\n    _pcrf = CRF::PcrfNew(pcfl, 0);\n    if (_pcrf == pvNil)\n    {\n        ReleasePpo(&pcfl);\n        return (fFalse);\n    }\n    ReleasePpo(&pcfl);\n\n    vpappb->BeginLongOp();\n    fRet = pscen->FWrite(_pcrf, &_cno);\n    vpappb->EndLongOp();\n\n    return (fRet);\n}\n\n/****************************************************\n *\n * Does a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNC::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n\n    PSCEN pscen;\n    PSCEN pscenSave;\n\n    vpappb->BeginLongOp();\n\n    pscen = SCEN::PscenRead(_pmvie, _pcrf, _cno);\n\n    if (pscen == pvNil)\n    {\n        goto LFail;\n    }\n\n    if (!pscen->FPlayStartEvents())\n    {\n        SCEN::Close(&pscen);\n        goto LFail;\n    }\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        SCEN::Close(&pscen);\n        goto LFail;\n    }\n\n    pscenSave = _pmvie->Pscen();\n    pscenSave->AddRef();\n\n    if (!_pmvie->FInsScenCore(_iscen, pscen))\n    {\n        ReleasePpo(&pscenSave);\n        SCEN::Close(&pscen);\n        goto LFail;\n    }\n\n    SCEN::Close(&pscen);\n\n    _pcrf->Pcfl()->Delete(kctgScen, _cno);\n    pscenSave->SetNfrmCur(pscenSave->NfrmFirst() - 1);\n    if (!pscenSave->FWrite(_pcrf, &_cno))\n    {\n        _pmvie->FRemScenCore(_iscen + 1);\n        SCEN::Close(&pscenSave);\n        goto LFail;\n    }\n\n    SCEN::Close(&pscenSave);\n\n    if (!_pmvie->FRemScenCore(_iscen + 1))\n    {\n        goto LFail;\n    }\n\n    //\n    // We don't care if we can't switch, everything was restored.\n    //\n    if (_pmvie->FSwitchScen(_iscen))\n    {\n        _pmvie->Pscen()->FGotoFrm(_nfrm);\n        _pmvie->InvalViewsAndScb();\n    }\n\n    vpappb->EndLongOp();\n\n    return (fTrue);\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo();\n    vpappb->EndLongOp();\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Undoes a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool SUNC::FUndo(PDOCB pdocb)\n{\n    AssertThis(0);\n    return (FDo(pdocb));\n}\n\n#ifdef DEBUG\n/****************************************************\n * Mark memory used by the SUNC\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid SUNC::MarkMem(void)\n{\n    AssertThis(0);\n    SUNC_PAR::MarkMem();\n    MarkMemObj(_pcrf);\n}\n\n/***************************************************************************\n    Assert the validity of the SUNC.\n***************************************************************************/\nvoid SUNC::AssertValid(ulong grf)\n{\n    AssertNilOrPo(_pcrf, grf);\n}\n#endif\n\n/***************************************************************************\n    Static function to allocate a SSE with room for ctag TAGs.\n***************************************************************************/\nPSSE SSE::PsseNew(long ctag)\n{\n    Assert(ctag > 0, 0);\n\n    PSSE psse;\n\n    if (!FAllocPv((void **)&psse, _Cb(ctag), fmemNil, mprNormal))\n        return pvNil;\n    return psse;\n}\n\n/***************************************************************************\n    Creates a new SSE\n***************************************************************************/\nPSSE SSE::PsseNew(long vlm, long sty, bool fLoop, long ctagc, TAGC *prgtagc)\n{\n    Assert(ctagc > 0, 0);\n    AssertPvCb(prgtagc, LwMul(ctagc, size(TAGC)));\n    PSSE psse;\n    long itagc;\n\n    psse = PsseNew(ctagc);\n    if (pvNil == psse)\n        return pvNil;\n    psse->vlm = vlm;\n    psse->sty = sty;\n    psse->fLoop = fLoop;\n    psse->ctagc = ctagc;\n    for (itagc = 0; itagc < ctagc; itagc++)\n    {\n        *psse->Ptagc(itagc) = prgtagc[itagc];\n        TAGM::DupTag(psse->Ptag(itagc));\n    }\n    return psse;\n}\n\n/***************************************************************************\n    Properly cleans up and frees a SSE\n***************************************************************************/\nvoid ReleasePpsse(PSSE *ppsse)\n{\n    AssertVarMem(ppsse);\n\n    if (*ppsse == pvNil)\n        return;\n\n    PSSE psse = *ppsse;\n    long itagc;\n\n    AssertIn(psse->ctagc, 0, 1000); // sanity check on ctagc\n    AssertIn(psse->sty, styNil, styLim);\n\n    for (itagc = 0; itagc < psse->ctagc; itagc++)\n    {\n        if (psse->Ptag(itagc)->pcrf != pvNil)\n            TAGM::CloseTag(psse->Ptag(itagc));\n    }\n\n    FreePpv((void **)ppsse);\n}\n\n/***************************************************************************\n    Static function to allocate and read a SSE from a GG.  This is tricky\n    because I can't do a pgg->Get() since the SSE is variable-sized, and\n    I need to do QvGet twice since I'm allocating memory in this function.\n***************************************************************************/\nPSSE SSE::PsseDupFromGg(PGG pgg, long iv, bool fDupTags)\n{\n    AssertPo(pgg, 0);\n    AssertIn(iv, 0, pgg->IvMac());\n    Assert(pgg->Cb(iv) >= size(SSE), \"variable part too small\");\n\n    long ctagc;\n    PSSE psse;\n    long itagc;\n\n    ctagc = ((PSSE)pgg->QvGet(iv))->ctagc;\n\n    psse = PsseNew(ctagc);\n    CopyPb(pgg->QvGet(iv), psse, _Cb(ctagc));\n\n    for (itagc = 0; itagc < psse->ctagc; itagc++)\n    {\n        if (fDupTags)\n        {\n            if (psse->Ptag(itagc)->sid == ksidUseCrf)\n            {\n                AssertPo(psse->Ptag(itagc)->pcrf, 0);\n                TAGM::DupTag(psse->Ptag(itagc));\n            }\n        }\n        else\n        {\n            // Clear the crf on read, since the caller isn't having us dupe the tag\n            psse->Ptag(itagc)->pcrf = pvNil;\n        }\n    }\n\n    return psse;\n}\n\n/***************************************************************************\n    Returns a PSSE just like this SSE except with ptag & chid added\n***************************************************************************/\nPSSE SSE::PsseAddTagChid(PTAG ptag, long chid)\n{\n    AssertVarMem(ptag);\n\n    PSSE psseNew;\n    TAGC tagc;\n\n    tagc.tag = *ptag;\n    tagc.chid = chid;\n\n    psseNew = SSE::PsseNew(ctagc + 1);\n    if (pvNil == psseNew)\n        return pvNil;\n\n    CopyPb(this, psseNew, Cb());\n    *psseNew->Ptagc(psseNew->ctagc) = tagc;\n    psseNew->ctagc++;\n    TAGM::DupTag(ptag);\n    return psseNew;\n}\n\n/***************************************************************************\n    Return a duplicate of this SSE\n***************************************************************************/\nPSSE SSE::PsseDup(void)\n{\n    PSSE psse;\n    long itagc;\n\n    if (!FAllocPv((void **)&psse, size(SSE) + LwMul(ctagc, size(TAGC)), fmemNil, mprNormal))\n    {\n        return pvNil;\n    }\n    CopyPb(this, psse, size(SSE) + LwMul(ctagc, size(TAGC)));\n    for (itagc = 0; itagc < psse->ctagc; itagc++)\n        TAGM::DupTag(psse->Ptag(itagc));\n    return psse;\n}\n\n/***************************************************************************\n    Play all sounds in this SSE\t-> Enqueue the sounds in the SSE\n***************************************************************************/\nvoid SSE::PlayAllSounds(PMVIE pmvie, ulong dtsStart)\n{\n    PMSND pmsnd;\n    long itag;\n    long tool = fLoop ? toolLooper : toolSounder;\n\n    for (itag = 0; itag < ctagc; itag++)\n    {\n        if (Ptag(itag)->sid == ksidUseCrf)\n        {\n            if (!pmvie->FResolveSndTag(Ptag(itag), *Pchid(itag)))\n                continue;\n        }\n        pmsnd = (PMSND)vptagm->PbacoFetch(Ptag(itag), MSND::FReadMsnd);\n        if (pvNil == pmsnd)\n            return;\n\n        // Only queue if it's not the first sound; only start at dtsStart for first sound\n        pmvie->Pmsq()->FEnqueue(pmsnd, 0, fLoop, (itag != 0), vlm, pmsnd->Spr(tool), fFalse,\n                                (itag == 0 ? dtsStart : 0));\n\n        ReleasePpo(&pmsnd);\n    }\n}\n"
  },
  {
    "path": "src/engine/srec.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    srec.cpp: Sound recording class\n\n    Primary Author: ****** (based on ***** original srec)\n    Review Status: reviewed\n\n***************************************************************************/\n#include \"soc.h\"\n\nASSERTNAME\n\nRTCLASS(SREC)\n\n/***************************************************************************\n    Create a new SREC\n***************************************************************************/\nPSREC SREC::PsrecNew(long csampSec, long cchan, long cbSample, ulong dtsMax)\n{\n    PSREC psrec;\n\n    psrec = NewObj(SREC);\n    if (pvNil == psrec)\n        return pvNil;\n    if (!psrec->_FInit(csampSec, cchan, cbSample, dtsMax))\n    {\n        ReleasePpo(&psrec);\n        return pvNil;\n    }\n    AssertPo(psrec, 0);\n    return psrec;\n}\n\n/***************************************************************************\n    Init this SREC\n***************************************************************************/\nbool SREC::_FInit(long csampSec, long cchan, long cbSample, ulong dtsMax)\n{\n    AssertBaseThis(0);\n    AssertIn(cchan, 0, ksuMax);\n\n    long cwid;\n\n    _csampSec = csampSec;\n    _cchan = cchan;\n    _cbSample = cbSample;\n    _dtsMax = dtsMax;\n    _hwavein = pvNil;\n    _priff = pvNil;\n    _fBufferAdded = fFalse;\n    _fRecording = fFalse;\n    _fHaveSound = fFalse;\n\n    vpsndm->Suspend(fTrue); // turn off sndm so we can get wavein device\n\n    // See if sound recording is possible at all\n    cwid = waveInGetNumDevs();\n    if (0 == cwid)\n    {\n        PushErc(ercSocNoWaveIn);\n        return fFalse;\n    }\n\n    // allocate a 10 second buffer\n    _wavehdr.dwBufferLength = (cchan * csampSec * cbSample * dtsMax) / 1000;\n    if (!FAllocPv((void **)&_priff, sizeof(RIFF) + _wavehdr.dwBufferLength, fmemClear, mprNormal))\n        return fFalse;\n\n    _wavehdr.lpData = reinterpret_cast<LPSTR>(PvAddBv(_priff, sizeof(RIFF)));\n\n    // init RIFF structure\n    _priff->Set(_cchan, _csampSec, _cbSample, 0);\n\n    if (fFalse == _FOpenRecord())\n    {\n        return fFalse;\n    }\n\n    // get audioman\n    _pmixer = GetAudioManMixer();\n    if (pvNil == _pmixer)\n        return fFalse;\n\n    // get a channel\n    _pmixer->AllocChannel(&_pchannel);\n    if (pvNil == _pchannel)\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Clean up and delete this SREC\n***************************************************************************/\nSREC::~SREC(void)\n{\n    AssertBaseThis(0);\n\n    // make sure nothing is playing or recording\n    if (_fRecording || _fPlaying)\n        FStop();\n\n    if (_hwavein)\n        _FCloseRecord();\n\n    ReleasePpo(&_pchannel);\n    ReleasePpo(&_pmixer);\n    FreePpv((void **)&_priff);\n    vpsndm->Suspend(fFalse); // restore sound mgr\n}\n\n/***************************************************************************\n    Open Device for recording\n***************************************************************************/\nbool SREC::_FOpenRecord(void)\n{\n    AssertBaseThis(0);\n\n    _fRecording = fFalse;\n\n    if (pvNil == _hwavein)\n    {\n        // open a wavein device\n        if (waveInOpen(&_hwavein, WAVE_MAPPER, _priff->PwfxGet(), (DWORD)_WaveInProc, (DWORD)this, CALLBACK_FUNCTION))\n        {\n            // it doesn't support this format\n            return fFalse;\n        }\n\n        // prepare header on block of data\n        _wavehdr.dwUser = (DWORD)this;\n        if (waveInPrepareHeader(_hwavein, &_wavehdr, sizeof(WAVEHDR)))\n        {\n            waveInClose(_hwavein);\n            _hwavein = pvNil;\n            return false;\n        }\n    }\n\n    // add buffer to device\n    if (!_fBufferAdded)\n        if (waveInAddBuffer(_hwavein, &_wavehdr, sizeof(WAVEHDR)))\n        {\n            _FCloseRecord();\n            _fRecording = fFalse;\n            _hwavein = pvNil;\n            return fFalse;\n        }\n        else\n            _fBufferAdded = fTrue;\n\n    return true;\n}\n\n/***************************************************************************\n    Close Device for recording\n***************************************************************************/\nbool SREC::_FCloseRecord(void)\n{\n    AssertThis(0);\n\n    if (_hwavein)\n    {\n        // stop if necessary\n        waveInReset(_hwavein);\n\n        // unprepare header\n        waveInUnprepareHeader(_hwavein, &_wavehdr, sizeof(WAVEHDR));\n        _fRecording = fFalse;\n\n        // close\n        waveInClose(_hwavein);\n        _hwavein = pvNil;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Figure out if we're recording or not\n***************************************************************************/\nvoid SREC::_UpdateStatus(void)\n{\n    AssertThis(0);\n\n    // ------------------------------------\n    // Check playing mode\n    // ------------------------------------\n    if ((_fPlaying) && !_pchannel->IsPlaying())\n    {\n        // then we just stopped\n        Sleep(250L);            // sleep a little bit to cover AudioMan bug\n        vpsndm->Suspend(fTrue); // suspend sound mgr\n    }\n    _fPlaying = _pchannel->IsPlaying();\n\n    // ------------------------------------\n    // \tCheck Recording mode\n    // If we are recording, AND our HaveSound flag\n    // is set, then we must have just finished, so\n    // process the data, and turn off the recording flag\n    // ------------------------------------\n    if ((_fRecording) && (_fHaveSound))\n    {\n        LPSOUND psnd = pvNil;     // original psnd\n        LPSOUND psndBias = pvNil; // psnd Bias correction filter\n        LPSOUND psndTrim = pvNil; // psnd Trim filter\n\n        _fRecording = fFalse;\n        if (_wavehdr.dwBytesRecorded == 0)\n        {\n            _fHaveSound = fFalse;\n            return;\n        }\n\n        // using the Audioman APIs, apply the gain and Trim filter, and save it back out\n        // to a different temp file.\n        _wavehdr.dwBytesRecorded -=\n            8 *\n            (_cchan * _cbSample); // chop off last 8 samples worth, since some audio cards put garbage on end of data\n        _priff->Set(_cchan, _csampSec, _cbSample, _wavehdr.dwBytesRecorded);\n\n        // now use AudioMan API to load the temp file, apply a trim filter and place\n        // trimmed sound out to our temp file\n        if (FAILED(AllocSoundFromMemory(&psnd, (LPBYTE)_priff, _priff->Cb())))\n        {\n            PushErc(ercOomNew);\n            _fHaveSound = fFalse;\n            return;\n        }\n        _fHaveSound = fTrue;\n\n        if (FAILED(AllocBiasFilter(&psndBias, psnd)))\n        {\n            // then just return the sound raw\n            _psnd = psnd;\n            return;\n        }\n\n        // release the original sound, since it's now owned by the psndGain\n        ReleasePpo(&psnd);\n\n        if (FAILED(AllocTrimFilter(&_psnd, psndBias)))\n        {\n            // then just return the sound with the bias filter on it...\n            _psnd = psndBias;\n            return;\n        }\n        // release the psndBias, since it's now owned by the psndTrim\n        ReleasePpo(&psndBias);\n    }\n}\n\n/***************************************************************************\n    Figure out if we're recording or not\n***************************************************************************/\nvoid SREC::_WaveInProc(HWAVEIN hwi, UINT uMsg, DWORD dwInstance, DWORD dwParam1, DWORD dwParam2)\n{\n    // the psrec pointer is a pointer to the class which generated the event and owns the device\n    SREC *psrec = (SREC *)dwInstance;\n\n    switch (uMsg)\n    {\n    case WIM_DATA: {\n        // any time we get a block of data, we are done, we set our flag\n        // to true, allowing _UpdateStatus to notice that we are _fRecording and _fHaveSound\n        // at which point it will process the data...\n        psrec->_fHaveSound = fTrue;\n        psrec->_fBufferAdded = fFalse;\n    }\n    }\n}\n\n/***************************************************************************\n    Start recording\n***************************************************************************/\nbool SREC::FStart(void)\n{\n    AssertThis(0);\n    Assert(!_fRecording, \"stop previous recording first\");\n\n    // make sure we are open\n    if (_fPlaying)\n        FStop();\n\n    if (!_FOpenRecord())\n        return fFalse;\n\n    _fHaveSound = fFalse;\n    _fRecording = fFalse;\n    _wavehdr.dwBytesRecorded = 0;\n\n    // now record data\n    if (waveInStart(_hwavein))\n        return fFalse;\n\n    _fRecording = fTrue;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Stop recording or playing\n***************************************************************************/\nbool SREC::FStop(void)\n{\n    AssertThis(0);\n    Assert(_fRecording || _fPlaying, \"Nothing to stop\");\n\n    // if we are recording\n    if (_fRecording)\n    {\n        // then stop the recording device\n        waveInStop(_hwavein);\n    }\n    else if (_fPlaying) // if we are playing\n    {\n        // then stop the playing device\n        _pchannel->Stop();\n    }\n\n    // update status accordingly\n    _UpdateStatus();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Start playing the current sound\n***************************************************************************/\nbool SREC::FPlay(void)\n{\n    AssertThis(0);\n    Assert(_fHaveSound, \"No sound to play\");\n\n    // open the _fniTrim file with MCI\n    _FCloseRecord();\n\n    if (_psnd && _pchannel)\n    {\n        vpsndm->StopAll();       // stop any outstanding bogus sounds from button pushs\n        vpsndm->Suspend(fFalse); // restore sound mgr\n\n        _pchannel->Stop();             // stop our channel (should be nop)\n        _pchannel->SetSoundSrc(_psnd); // give it our sound\n        _pchannel->SetPosition(0);     // seek to the beginning\n\n        if (FAILED(_pchannel->Play())) // play the sound\n        {\n            _UpdateStatus(); // this will check play status, and clean up accordingly\n        }\n        else\n            _fPlaying = fTrue;\n    }\n\n    return _fPlaying;\n}\n\n/***************************************************************************\n    Are we recording?\n***************************************************************************/\nbool SREC::FRecording(void)\n{\n    AssertThis(0);\n\n    _UpdateStatus();\n    return _fRecording;\n}\n\n/***************************************************************************\n    Are we playing the current sound?\n***************************************************************************/\nbool SREC::FPlaying(void)\n{\n    AssertThis(0);\n\n    _UpdateStatus();\n    return _fPlaying;\n}\n\n/***************************************************************************\n    Save the current sound to the given FNI\n***************************************************************************/\nbool SREC::FSave(PFNI pfni)\n{\n    AssertThis(0);\n    Assert(_fHaveSound, \"Nothing to save!\");\n\n    STN stn;\n\n    if (_psnd)\n    {\n        pfni->GetStnPath(&stn);\n\n        // now save _psnd to the FNI passed in\n        if (FAILED(SoundToFileAsWave(_psnd, stn.Psz())))\n        {\n            PushErc(ercSocWaveSaveFailure);\n            return fFalse;\n        }\n        return fTrue;\n    }\n    return fFalse;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the SREC.\n***************************************************************************/\nvoid SREC::AssertValid(ulong grf)\n{\n    SREC_PAR::AssertValid(fobjAllocated);\n    Assert(pvNil != _pmixer, \"No mixer?\");\n    Assert(pvNil != _pchannel, \"No Channel?\");\n}\n\n/***************************************************************************\n    Mark memory used by the SREC\n***************************************************************************/\nvoid SREC::MarkMem(void)\n{\n    AssertThis(0);\n    MarkPv(_priff);\n    SREC_PAR::MarkMem();\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/engine/tagl.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    tagl.cpp: Tag list class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    The GG of TAGFs is maintained in sorted order.  It is sorted by sid,\n    then by\tCTG, then by CNO.\n\n***************************************************************************/\n#include \"soc.h\"\nASSERTNAME\n\nRTCLASS(TAGL)\n\n/****************************************\n    TAGF, or \"tag-flag\" struct, stores\n    the tag that you want to cache and\n    whether to cache its children\n    automatically or not.\n****************************************/\nstruct TAGF\n{\n    TAG tag;\n    bool fCacheChildren;\n};\n\n/****************************************\n    CC, or \"chid-ctg\" struct, for\n    children of a tag.  An array of\n    these is the variable part of the\n    GG.\n****************************************/\nstruct CC\n{\n    CHID chid;\n    CTG ctg;\n};\n\n/***************************************************************************\n    Create a new TAGL\n***************************************************************************/\nPTAGL TAGL::PtaglNew(void)\n{\n    PTAGL ptagl;\n\n    ptagl = NewObj TAGL;\n    if (pvNil == ptagl)\n        return pvNil;\n    if (!ptagl->_FInit())\n    {\n        ReleasePpo(&ptagl);\n        return pvNil;\n    }\n    AssertPo(ptagl, 0);\n    return ptagl;\n}\n\n/***************************************************************************\n    Initialize the TAGL\n***************************************************************************/\nbool TAGL::_FInit(void)\n{\n    AssertBaseThis(0);\n\n    _pggtagf = GG::PggNew(size(TAGF));\n    if (pvNil == _pggtagf)\n        return fFalse;\n    return fTrue;\n}\n\n/***************************************************************************\n    Clean up and delete this tag list\n***************************************************************************/\nTAGL::~TAGL(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pggtagf);\n}\n\n/***************************************************************************\n    Return the count of tags in the TAGL\n***************************************************************************/\nlong TAGL::Ctag(void)\n{\n    AssertThis(0);\n\n    return _pggtagf->IvMac();\n}\n\n/***************************************************************************\n    Get the itag'th tag from the TAGL\n***************************************************************************/\nvoid TAGL::GetTag(long itag, PTAG ptag)\n{\n    AssertThis(0);\n    AssertIn(itag, 0, Ctag());\n    AssertVarMem(ptag);\n\n    TAGF tagf;\n\n    _pggtagf->GetFixed(itag, &tagf);\n    *ptag = tagf.tag;\n}\n\n/***************************************************************************\n    Find ptag in the TAGL.  If the tag is found, the function returns\n    fTrue and *pitag is the location of the tag in the GG.  If the tag\n    is not found, the function returns fFalse and *pitag is the location\n    at which the tag should be inserted into the GG to maintain correct\n    sorting order in the GG.\n***************************************************************************/\nbool TAGL::_FFindTag(PTAG ptag, long *pitag)\n{\n    AssertThis(0);\n    AssertVarMem(ptag);\n    AssertVarMem(pitag);\n\n    TAGF *qtagf;\n    long itagfMin, itagfLim, itagf;\n    long sid = ptag->sid;\n    CTG ctg = ptag->ctg;\n    CNO cno = ptag->cno;\n\n    if (_pggtagf->IvMac() == 0)\n    {\n        *pitag = 0;\n        return fFalse;\n    }\n\n    // Do a binary search.  The TAGFs are sorted by (sid, ctg, cno).\n    for (itagfMin = 0, itagfLim = _pggtagf->IvMac(); itagfMin < itagfLim;)\n    {\n        itagf = (itagfMin + itagfLim) / 2;\n        qtagf = (TAGF *)_pggtagf->QvFixedGet(itagf);\n        if (sid < qtagf->tag.sid)\n            itagfLim = itagf;\n        else if (sid > qtagf->tag.sid)\n            itagfMin = itagf + 1;\n        else if (ctg < qtagf->tag.ctg)\n            itagfLim = itagf;\n        else if (ctg > qtagf->tag.ctg)\n            itagfMin = itagf + 1;\n        else if (cno < qtagf->tag.cno)\n            itagfLim = itagf;\n        else if (cno > qtagf->tag.cno)\n            itagfMin = itagf + 1;\n        else\n        {\n            *pitag = itagf;\n            return fTrue;\n        }\n    }\n\n    // Tag not found\n    *pitag = itagfMin;\n    return fFalse;\n}\n\n/***************************************************************************\n    Insert the given tag into the TAGL, if it isn't already in there.\n***************************************************************************/\nbool TAGL::FInsertTag(PTAG ptag, bool fCacheChildren)\n{\n    AssertThis(0);\n    AssertVarMem(ptag);\n\n    long itag;\n    TAGF tagf;\n\n    if (!_FFindTag(ptag, &itag))\n    {\n        // Build and insert TAGF into fixed part of GG\n        tagf.tag = *ptag;\n        tagf.fCacheChildren = fCacheChildren;\n        if (!_pggtagf->FInsert(itag, 0, pvNil, &tagf))\n            return fFalse;\n        return fTrue;\n    }\n    // Tag is already in GG, see if fCacheChildren needs to be updated\n    _pggtagf->GetFixed(itag, &tagf);\n    if (!tagf.fCacheChildren && fCacheChildren)\n    {\n        // FIXME(bruxisma): The compiler has correctly identified that this\n        // should be an assignment.\n        tagf.fCacheChildren == fTrue;\n        _pggtagf->PutFixed(itag, &tagf);\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Insert a TAG child into the TAGL\n***************************************************************************/\nbool TAGL::FInsertChild(PTAG ptag, CHID chid, CTG ctg)\n{\n    AssertThis(0);\n    AssertVarMem(ptag);\n\n    long itagf;\n    CC ccNew;\n    CC *prgcc;\n    long ccc; // count of CCs\n    long icc;\n\n    if (!_FFindTag(ptag, &itagf))\n    {\n        Bug(\"You should have inserted ptag first\");\n        return fFalse;\n    }\n#ifdef DEBUG\n    TAGF tagf;\n    _pggtagf->GetFixed(itagf, &tagf);\n    if (tagf.tag.ctg != ptag->ctg || tagf.tag.cno != ptag->cno)\n        Bug(\"_FFindTag has a bug\");\n#endif // DEBUG\n\n    ccNew.chid = chid;\n    ccNew.ctg = ctg;\n    ccc = _pggtagf->Cb(itagf) / size(CC);\n    if (ccc == 0)\n    {\n        if (!_pggtagf->FPut(itagf, size(CC), &ccNew))\n            return fFalse;\n        return fTrue;\n    }\n    prgcc = (CC *)_pggtagf->QvGet(itagf);\n    // linear search through prgcc to find where to insert ccNew\n    for (icc = 0; icc < ccc; icc++)\n    {\n        if (prgcc[icc].ctg > ccNew.ctg)\n            break;\n        if (prgcc[icc].ctg == ccNew.ctg && prgcc[icc].chid > ccNew.chid)\n            break;\n    }\n    if (!_pggtagf->FInsertRgb(itagf, icc * size(CC), size(CC), &ccNew))\n        return fFalse;\n    return fTrue;\n}\n\n/***************************************************************************\n    Cache all the tags and child tags in TAGL\n***************************************************************************/\nbool TAGL::FCacheTags(void)\n{\n    AssertThis(0);\n\n    long itagf;\n    TAGF tagf;\n    long ccc; // count of CCs\n    long icc;\n    CC cc;\n    TAG tag;\n\n    for (itagf = 0; itagf < _pggtagf->IvMac(); itagf++)\n    {\n        // Cache the main tag\n        _pggtagf->GetFixed(itagf, &tagf);\n        if (!vptagm->FCacheTagToHD(&tagf.tag, tagf.fCacheChildren))\n            return fFalse;\n\n        // Cache the child tags\n        ccc = _pggtagf->Cb(itagf) / size(CC);\n        for (icc = 0; icc < ccc; icc++)\n        {\n            _pggtagf->GetRgb(itagf, icc * size(CC), size(CC), &cc);\n            if (!vptagm->FBuildChildTag(&tagf.tag, cc.chid, cc.ctg, &tag))\n                return fFalse;\n            // Note that if we ever have the case where we don't always\n            // want the CC tag to be cached with all its children, we could\n            // change the CC structure to hold a boolean and pass it to\n            // FCacheTagToHD here.\n            if (!vptagm->FCacheTagToHD(&tag, fTrue))\n                return fFalse;\n        }\n    }\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the TAGL.\n***************************************************************************/\nvoid TAGL::AssertValid(ulong grf)\n{\n    TAGL_PAR::AssertValid(fobjAllocated);\n    AssertPo(_pggtagf, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the TAGL\n***************************************************************************/\nvoid TAGL::MarkMem(void)\n{\n    AssertThis(0);\n    TAGL_PAR::MarkMem();\n    MarkMemObj(_pggtagf);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/engine/tagman.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    tagman.cpp: Tag Manager class (TAGM)\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    It is important to keep in mind that there are two layers of caching\n    going on in TAGM: Caching content from the CD (or other slow source)\n    to the local hard disk, and caching resources in RAM using chunky\n    resources (the CRF and CRM classes).\n\n    For each source, TAGM maintains (in an SFS) a CRM (Chunky Resource\n    Manager) of all the content\tfiles on the source and a CRF (Chunky\n    Resource File), which is a single file on the HD which can be used\n    for faster access to the source.  Both CRFs and CRMs can cache\n    resources in RAM.  Since Socrates copies *all* content from the CD\n    to the cache file, the CRM is told not to cache its resources in\n    RAM.  However, if the source is actually on the HD, TAGM notices and\n    doesn't copy any content to a cache file, since that would be a waste\n    of time.  Instead, the content is read directly from the CRM.  In this\n    case, TAGM does tell the CRM to cache its resources in RAM.\n\n    Source names: every source has a long and short name.  This is so we\n    can use long names for the source directory on the HD (e.g., \"3D Movie\n    Maker\"), and short names for the source directory on the CD\n    (\"3DMOVIE\").  We have to support short names because CD-ROMs currently\n    do not allow long filenames.  So everywhere that we look for the\n    source directory, we accept either the long or short name.\n    _pgstSource keeps track of these names.  Rather than have one GST for\n    short names and one for long names, each string in _pgstSource is the\n    \"merged name\", which is the long name followed by a slash character\n    (/) followed by the short name, e.g., \"3D Movie Maker/3DMOVIE\".  The\n    SplitString() function splits the merged name into the long and\n    short names.\n\n***************************************************************************/\n#include \"soc.h\"\nASSERTNAME\n\nRTCLASS(TAGM)\n\nconst BOM kbomSid = 0xc0000000;\n\n// Source File Structure...keeps track of known sources and caches\nstruct SFS\n{\n  public:\n    long sid;             // ID for this source\n    FNI fniHD;            // FNI of the HD directory\n    FNI fniCD;            // FNI of the CD directory\n    PCRM pcrmSource;      // CRM of files on the CD (or possibly HD)\n    tribool tContentOnHD; // Is the content on the HD or CD?\n\n  public:\n    void Clear(void) // Zeros out an SFS\n    {\n        sid = ksidInvalid;\n        fniHD.SetNil();\n        fniCD.SetNil();\n        pcrmSource = pvNil;\n        tContentOnHD = tMaybe;\n    }\n};\n\n/***************************************************************************\n    Initialize the tag manager\n***************************************************************************/\nPTAGM TAGM::PtagmNew(PFNI pfniHDRoot, PFNINSCD pfninscd, long cbCache)\n{\n    AssertPo(pfniHDRoot, ffniDir);\n    Assert(pvNil != pfninscd, \"bad pfninscd\");\n    AssertIn(cbCache, 0, kcbMax);\n\n    PTAGM ptagm;\n\n    ptagm = NewObj TAGM;\n    if (pvNil == ptagm)\n        goto LFail;\n\n    ptagm->_fniHDRoot = *pfniHDRoot;\n    ptagm->_cbCache = cbCache;\n    ptagm->_pfninscd = pfninscd;\n\n    ptagm->_pglsfs = GL::PglNew(size(SFS));\n    if (pvNil == ptagm->_pglsfs)\n        goto LFail;\n\n    ptagm->_pgstSource = GST::PgstNew(size(long)); // extra data is sid\n    if (pvNil == ptagm->_pgstSource)\n        goto LFail;\n\n    AssertPo(ptagm, 0);\n    return ptagm;\nLFail:\n    ReleasePpo(&ptagm);\n    return pvNil;\n}\n\n/***************************************************************************\n    Tag Manager destructor\n***************************************************************************/\nTAGM::~TAGM(void)\n{\n    AssertBaseThis(0);\n\n    long isfs;\n    SFS sfs;\n\n    if (pvNil != _pglsfs)\n    {\n        for (isfs = 0; isfs < _pglsfs->IvMac(); isfs++)\n        {\n            _pglsfs->Get(isfs, &sfs);\n            ReleasePpo(&sfs.pcrmSource);\n        }\n        ReleasePpo(&_pglsfs);\n    }\n    ReleasePpo(&_pgstSource);\n}\n\n/***************************************************************************\n    Split a merged string into its long and short components\n***************************************************************************/\nvoid TAGM::SplitString(PSTN pstnMerged, PSTN pstnLong, PSTN pstnShort)\n{\n    AssertPo(pstnMerged, 0);\n    AssertVarMem(pstnLong);\n    AssertVarMem(pstnShort);\n\n    achar *pchStart = pstnMerged->Psz();\n    achar *pch;\n\n    for (pch = pchStart; *pch != chNil; pch++)\n    {\n        if (*pch == ChLit('/'))\n        {\n            pstnLong->SetRgch(pchStart, (pch - pchStart));\n            pstnShort->SetSz(pch + 1);\n            return;\n        }\n    }\n    // no slash, so set both pstnLong and pstnShort to pstnMerged\n    *pstnLong = *pstnMerged;\n    *pstnShort = *pstnMerged;\n}\n\n/***************************************************************************\n    Return source title string table so it can be embedded in documents\n***************************************************************************/\nPGST TAGM::PgstSource(void)\n{\n    AssertThis(0);\n    return _pgstSource;\n}\n\n/***************************************************************************\n    If there is an stn for the given sid in _pgstSource, return the\n    location of the stn.\n***************************************************************************/\nbool TAGM::_FFindSid(long sid, long *pistn)\n{\n    AssertThis(0);\n    Assert(sid >= 0, \"Invalid sid\");\n    AssertNilOrVarMem(pistn);\n\n    long istn;\n    long sidT;\n\n    for (istn = 0; istn < _pgstSource->IvMac(); istn++)\n    {\n        _pgstSource->GetExtra(istn, &sidT);\n        if (sid == sidT) // it's already in there\n        {\n            if (pvNil != pistn)\n                *pistn = istn;\n            return fTrue;\n        }\n    }\n    TrashVar(pistn);\n    return fFalse;\n}\n\n/***************************************************************************\n    Add source title string table entries to tag manager, if it doesn't\n    already know them.\n***************************************************************************/\nbool TAGM::FMergeGstSource(PGST pgst, short bo, short osk)\n{\n    AssertThis(0);\n    AssertPo(pgst, 0);\n    Assert(size(long) == pgst->CbExtra(), \"bad pgstSource\");\n\n    long istn;\n    STN stn;\n    long sid;\n\n    for (istn = 0; istn < pgst->IvMac(); istn++)\n    {\n        pgst->GetStn(istn, &stn);\n        pgst->GetExtra(istn, &sid);\n        if (kboOther == bo)\n            SwapBytesBom(&sid, kbomSid);\n        if (!FAddStnSource(&stn, sid))\n            return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Add source title string to tag manager, if it's not already there\n***************************************************************************/\nbool TAGM::FAddStnSource(PSTN pstn, long sid)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    Assert(sid >= 0, \"Invalid sid\");\n\n    if (_FFindSid(sid))\n        return fTrue; // String is already there\n\n    return _pgstSource->FAddStn(pstn, &sid); // Try to add it\n}\n\n/***************************************************************************\n    Find the sid with the given string as its source name.  pstn can be\n    the merged name, the short name, or the long name.\n***************************************************************************/\nbool TAGM::FGetSid(PSTN pstn, long *psid)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n    AssertVarMem(psid);\n\n    long istn;\n    STN stnMerged;\n    STN stnLong;\n    STN stnShort;\n\n    for (istn = 0; istn < _pgstSource->IvMac(); istn++)\n    {\n        _pgstSource->GetStn(istn, &stnMerged);\n        if (stnMerged.FEqualUser(pstn, fstnIgnoreCase))\n        {\n            _pgstSource->GetExtra(istn, psid);\n            return fTrue;\n        }\n        SplitString(&stnMerged, &stnLong, &stnShort);\n        if (stnLong.FEqualUser(pstn, fstnIgnoreCase) || stnShort.FEqualUser(pstn, fstnIgnoreCase))\n        {\n            _pgstSource->GetExtra(istn, psid);\n            return fTrue;\n        }\n    }\n    return fFalse;\n}\n\n/***************************************************************************\n    Find the string of the source with the given sid\n***************************************************************************/\nbool TAGM::_FGetStnMergedOfSid(long sid, PSTN pstn)\n{\n    AssertThis(0);\n    AssertVarMem(pstn);\n\n    long istn;\n    long sidT;\n\n    for (istn = 0; istn < _pgstSource->IvMac(); istn++)\n    {\n        _pgstSource->GetStn(istn, pstn);\n        _pgstSource->GetExtra(istn, &sidT);\n        if (sid == sidT)\n            return fTrue;\n    }\n    return fFalse;\n}\n\n/***************************************************************************\n    Find the string of the source with the given sid\n***************************************************************************/\nbool TAGM::_FGetStnSplitOfSid(long sid, PSTN pstnLong, PSTN pstnShort)\n{\n    AssertThis(0);\n    AssertVarMem(pstnLong);\n    AssertVarMem(pstnShort);\n\n    STN stnMerged;\n\n    if (!_FGetStnMergedOfSid(sid, &stnMerged))\n        return fFalse;\n    SplitString(&stnMerged, pstnLong, pstnShort);\n    return fTrue;\n}\n\n/***************************************************************************\n    Builds the FNI to the HD files for a given sid\n    - If we don't even know the string for the sid, return fFalse\n    - If there is no fniHD, set *pfExists to fFalse and return fTrue\n    - If we find the fniHD, put it in *pfniHD, set *pfExists to fTrue,\n      and return fTrue\n***************************************************************************/\nbool TAGM::_FBuildFniHD(long sid, PFNI pfniHD, bool *pfExists)\n{\n    AssertThis(0);\n    Assert(sid >= 0, \"Invalid sid\");\n    AssertVarMem(pfniHD);\n    AssertVarMem(pfExists);\n\n    STN stnLong;\n    STN stnShort;\n    FNI fni;\n\n    *pfExists = fFalse;\n    if (!_FGetStnSplitOfSid(sid, &stnLong, &stnShort))\n    {\n        return fFalse; // can't even determine if fniHD exists or not\n    }\n\n    fni = _fniHDRoot;\n    if (!fni.FDownDir(&stnLong, ffniMoveToDir) && !fni.FDownDir(&stnShort, ffniMoveToDir))\n    {\n        return fTrue; // fniHD doesn't exist\n    }\n    *pfniHD = fni;\n    *pfExists = fTrue;\n    return fTrue;\n}\n\n/***************************************************************************\n    See if there are any content files in the directory specified by pfni\n***************************************************************************/\nbool TAGM::_FDetermineIfContentOnFni(PFNI pfni, bool *pfContentOnFni)\n{\n    AssertThis(0);\n    AssertPo(pfni, ffniDir);\n    AssertVarMem(pfContentOnFni);\n\n    FNE fne;\n    FTG ftgContent = kftgContent;\n    FNI fni;\n\n    if (!fne.FInit(pfni, &ftgContent, 1))\n        return fFalse;\n    if (fne.FNextFni(&fni))\n        *pfContentOnFni = fTrue;\n    else\n        *pfContentOnFni = fFalse;\n    return fTrue;\n}\n\n/***************************************************************************\n    Returns whether the directory pointed to by pfniCD exists where we\n    think it does.  Or, if pstn is non-nil, try to go down from pfniCD\n    to pstn.\n***************************************************************************/\nbool TAGM::_FEnsureFniCD(long sid, FNI *pfniCD, PSTN pstn)\n{\n    AssertThis(0);\n    Assert(sid >= 0, \"Invalid sid\");\n    AssertPo(pfniCD, ffniDir);\n    AssertNilOrPo(pstn, 0);\n\n    ERS ersT;\n    ERS *pers;\n    bool fRet;\n\n    pers = vpers;\n    vpers = &ersT;\n\n#ifdef WIN\n    // Block the Windows \"There is no disk in the drive\" message\n    UINT em;\n    em = SetErrorMode(SEM_FAILCRITICALERRORS);\n#endif // WIN\n\n    if (pvNil != pstn)\n        fRet = pfniCD->FDownDir(pstn, ffniMoveToDir);\n    else\n        fRet = (pfniCD->TExists() == tYes);\n\n#ifdef WIN\n    SetErrorMode(em); // restore the error mode\n#endif                // WIN\n\n    vpers = pers;\n    return fRet;\n}\n\n/***************************************************************************\n    This function verifies that the source (e.g., CD) is where we think it\n    is, and searches for it otherwise.  Pass the previously determined FNI\n    of the CD directory file in pfniCD.  Or if this is the first time\n    looking for this source, pass in any FNI with a FTG of ftgNil.\tIf it\n    can't find the CD directory, it returns fFalse with pfniInfo untouched.\n***************************************************************************/\nbool TAGM::_FFindFniCD(long sid, PFNI pfniCD, bool *pfFniChanged)\n{\n    AssertThis(0);\n    Assert(sid >= 0, \"Invalid sid\");\n    AssertPo(pfniCD, ffniEmpty | ffniDir); // could be a blank FNI\n    AssertVarMem(pfFniChanged);\n\n    FNE fne;\n    FNI fni;\n    STN stnLong;\n    STN stnShort;\n    FNI fniCD;\n\n    *pfFniChanged = fFalse;\n\n    // If pfniCD's ftg is not ftgNil, we've opened this source before,\n    // so look for it where it was last time.\n    if (ftgNil != pfniCD->Ftg())\n    {\n        if (_FEnsureFniCD(sid, pfniCD))\n        {\n            // The source is where we thought it was\n            return fTrue;\n        }\n        else\n        {\n            // With the way the CRM stuff works now, the CRM can't\n            // move to another path.  So fail if the CD isn't exactly\n            // where it was before.\n            return fFalse;\n        }\n    }\n\n    if (!_FGetStnSplitOfSid(sid, &stnLong, &stnShort))\n        return fFalse;\n    // The source has moved/disappeared, or we're opening it for the first\n    // time, so search all drives for it.\n    if (!fne.FInit(pvNil, pvNil, 0))\n        return fFalse;\n    while (fne.FNextFni(&fni))\n    {\n        if (fni.Grfvk() & fvkFloppy) // don't buzz floppies\n            continue;\n        fniCD = fni;\n        if (!_FEnsureFniCD(sid, &fniCD, &stnShort) && !_FEnsureFniCD(sid, &fniCD, &stnLong))\n        {\n            continue;\n        }\n        *pfFniChanged = fTrue;\n        *pfniCD = fniCD;\n        return fTrue;\n    }\n    // Couldn't find the source\n    return fFalse;\n}\n\n/***************************************************************************\n    Calls the client-supplied callback, which should tell the user that\n    the source named stn cannot be found.  Returns fTrue if the user wants\n    to retry, else fFalse.\n***************************************************************************/\nbool TAGM::_FRetry(long sid)\n{\n    AssertThis(0);\n    Assert(sid >= 0, \"Invalid sid\");\n\n    STN stnLong;\n    STN stnShort;\n\n    if (!_FGetStnSplitOfSid(sid, &stnLong, &stnShort))\n    {\n        Bug(\"_pgstSource has no string for this sid!\");\n        return fFalse;\n    }\n    return _pfninscd(&stnLong);\n}\n\n/***************************************************************************\n    Builds the CRM for the given sid's source.  pfniDir tells where the\n    content files are.\n***************************************************************************/\nPCRM TAGM::_PcrmSourceNew(long sid, PFNI pfniDir)\n{\n    AssertThis(0);\n    Assert(sid >= 0, \"Invalid sid\");\n    AssertPo(pfniDir, ffniDir);\n\n    STN stn;\n    FNI fni;\n    PCRM pcrmSource = pvNil;\n    FNE fne;\n    FTG ftgChk = kftgContent;\n    PCFL pcfl = pvNil;\n\n    pcrmSource = CRM::PcrmNew(0);\n    if (pvNil == pcrmSource)\n        goto LFail;\n\n    // Add all chunky files in content directory to pcrmSource\n    if (!fne.FInit(pfniDir, &ftgChk, 1))\n        goto LFail;\n    while (fne.FNextFni(&fni))\n    {\n        pcfl = CFL::PcflOpen(&fni, fcflNil);\n        if (pvNil == pcfl)\n            goto LFail;\n        if (!pcrmSource->FAddCfl(pcfl, _cbCache))\n            goto LFail;\n        ReleasePpo(&pcfl);\n    }\n    return pcrmSource;\nLFail:\n    ReleasePpo(&pcfl);\n    ReleasePpo(&pcrmSource);\n    return pvNil;\n}\n\n/***************************************************************************\n    Returns the source CRM for the given sid, creating (and remembering) a\n    new one if there isn't one already.  It verifies that the CD is still\n    in the drive, unless fDontHitCD is fTrue.\n***************************************************************************/\nPCRM TAGM::_PcrmSourceGet(long sid, bool fDontHitCD)\n{\n    AssertThis(0);\n    Assert(sid >= 0, \"Invalid sid\");\n\n    long isfs;\n    SFS sfs;\n    bool fContentOnFni;\n    bool fFniChanged;\n    bool fExists;\n\n    for (isfs = 0; isfs < _pglsfs->IvMac(); isfs++)\n    {\n        _pglsfs->Get(isfs, &sfs);\n        if (sid == sfs.sid)\n            goto LSetupSfs;\n    }\n    // SFS for this sid doesn't exist in _pglsfs, so make one\n    sfs.Clear();\n    sfs.sid = sid;\n    if (!_pglsfs->FAdd(&sfs, &isfs))\n        return pvNil;\nLSetupSfs:\n    if (sfs.tContentOnHD == tMaybe)\n    {\n        if (sfs.fniHD.Ftg() == ftgNil)\n        {\n            if (!_FBuildFniHD(sid, &sfs.fniHD, &fExists))\n                return pvNil;\n            if (!fExists)\n                sfs.tContentOnHD = tNo;\n            _pglsfs->Put(isfs, &sfs);\n        }\n        if (sfs.tContentOnHD == tMaybe)\n        {\n            if (!_FDetermineIfContentOnFni(&sfs.fniHD, &fContentOnFni))\n                return pvNil;\n            sfs.tContentOnHD = (fContentOnFni ? tYes : tNo);\n            _pglsfs->Put(isfs, &sfs);\n        }\n    }\n    if (tYes == sfs.tContentOnHD)\n    {\n        if (pvNil == sfs.pcrmSource)\n        {\n            sfs.pcrmSource = _PcrmSourceNew(sid, &sfs.fniHD);\n            if (pvNil == sfs.pcrmSource)\n                return pvNil;\n            _pglsfs->Put(isfs, &sfs);\n        }\n        return sfs.pcrmSource;\n    }\n\n    // Else content is not on HD, so look at CD\n    if (!fDontHitCD)\n    {\n        // Verify that CD is where we thought it was, or find\n        // it if we haven't found it before\n        while (!_FFindFniCD(sid, &sfs.fniCD, &fFniChanged))\n        {\n            // Ask user to insert the CD\n            if (!_FRetry(sid))\n                return pvNil;\n        }\n        if (fFniChanged)\n        {\n            Assert(sfs.pcrmSource == pvNil, \"fniCD can't change once pcrm is opened!\");\n            _pglsfs->Put(isfs, &sfs); // update sfs.fniCD\n        }\n    }\n    if (pvNil == sfs.pcrmSource)\n    {\n        if (fDontHitCD)\n        {\n            Bug(\"should have valid pcrmSource!\");\n        }\n        else\n        {\n            sfs.pcrmSource = _PcrmSourceNew(sid, &sfs.fniCD);\n            if (pvNil == sfs.pcrmSource)\n                return pvNil;\n            _pglsfs->Put(isfs, &sfs);\n        }\n    }\n    return sfs.pcrmSource;\n}\n\n/***************************************************************************\n    Determines whether source is on HD (if it is, don't cache its stuff to\n    HD!)  Note that the function return value is whether the function\n    completed without error, not whether the source is on HD.\n***************************************************************************/\nbool TAGM::_FDetermineIfSourceHD(long sid, bool *pfIsOnHD)\n{\n    AssertThis(0);\n    Assert(sid >= 0, \"Invalid sid\");\n    AssertVarMem(pfIsOnHD);\n\n    long isfs;\n    SFS sfs;\n    bool fContentOnFni;\n    bool fExists;\n\n    for (isfs = 0; isfs < _pglsfs->IvMac(); isfs++)\n    {\n        _pglsfs->Get(isfs, &sfs);\n        if (sid == sfs.sid)\n            goto LSetupSfs;\n    }\n    // SFS for this sid doesn't exist in _pglsfs, so make one\n    sfs.Clear();\n    sfs.sid = sid;\n    if (!_pglsfs->FAdd(&sfs, &isfs))\n        return fFalse;\nLSetupSfs:\n    if (sfs.tContentOnHD == tMaybe)\n    {\n        if (sfs.fniHD.Ftg() == ftgNil)\n        {\n            if (!_FBuildFniHD(sid, &sfs.fniHD, &fExists))\n                return fFalse;\n            if (!fExists)\n                sfs.tContentOnHD = tNo;\n            _pglsfs->Put(isfs, &sfs);\n        }\n        if (sfs.tContentOnHD == tMaybe)\n        {\n            if (!_FDetermineIfContentOnFni(&sfs.fniHD, &fContentOnFni))\n                return fFalse;\n            sfs.tContentOnHD = (fContentOnFni ? tYes : tNo);\n            _pglsfs->Put(isfs, &sfs);\n        }\n    }\n    *pfIsOnHD = (sfs.tContentOnHD == tYes);\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the FNI for the HD directory\n***************************************************************************/\nbool TAGM::_FGetFniHD(long sid, PFNI pfniHD)\n{\n    AssertThis(0);\n    AssertVarMem(pfniHD);\n\n    long isfs;\n    SFS sfs;\n    bool fExists;\n\n    for (isfs = 0; isfs < _pglsfs->IvMac(); isfs++)\n    {\n        _pglsfs->Get(isfs, &sfs);\n        if (sid == sfs.sid)\n            goto LSetupSFS;\n    }\n    // SFS for this sid doesn't exist in _pglsfs, so make one\n    sfs.Clear();\n    sfs.sid = sid;\n    if (!_pglsfs->FAdd(&sfs, &isfs))\n        return fFalse;\nLSetupSFS:\n    if (sfs.fniHD.Ftg() == ftgNil)\n    {\n        if (!_FBuildFniHD(sid, &sfs.fniHD, &fExists) || !fExists)\n            return fFalse;\n    }\n    _pglsfs->Put(isfs, &sfs);\n    *pfniHD = sfs.fniHD;\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the FNI for the CD directory\n***************************************************************************/\nbool TAGM::_FGetFniCD(long sid, PFNI pfniCD, bool fAskForCD)\n{\n    AssertThis(0);\n    AssertVarMem(pfniCD);\n\n    long isfs;\n    SFS sfs;\n    bool fFniChanged;\n\n    for (isfs = 0; isfs < _pglsfs->IvMac(); isfs++)\n    {\n        _pglsfs->Get(isfs, &sfs);\n        if (sid == sfs.sid)\n            goto LSetupSFS;\n    }\n    // SFS for this sid doesn't exist in _pglsfs, so make one\n    sfs.Clear();\n    sfs.sid = sid;\n    if (!_pglsfs->FAdd(&sfs, &isfs))\n        return fFalse;\nLSetupSFS:\n    while (!_FFindFniCD(sid, &sfs.fniCD, &fFniChanged))\n    {\n        if (!fAskForCD)\n            return fFalse;\n        if (!_FRetry(sid))\n            return fFalse;\n    }\n    if (fFniChanged)\n        _pglsfs->Put(isfs, &sfs);\n    *pfniCD = sfs.fniCD;\n    return fTrue;\n}\n\n/***************************************************************************\n    Finds the file with name pstn on the HD or CD.\n***************************************************************************/\nbool TAGM::FFindFile(long sid, PSTN pstn, PFNI pfni, bool fAskForCD)\n{\n    AssertThis(0);\n    Assert(sid >= 0, \"Invalid sid\");\n    AssertPo(pstn, 0);\n    AssertVarMem(pfni);\n\n    FTG ftg;\n\n    if (!pfni->FBuildFromPath(pstn))\n        return fFalse;\n    ftg = pfni->Ftg();\n\n    // First, look on the HD\n    if (!_FGetFniHD(sid, pfni))\n        return fFalse;\n    if (pfni->FSetLeaf(pstn, ftg) && tYes == pfni->TExists())\n        return fTrue;\n\n    // Now look on the CD, asking for it if fAskForCD\n    if (!_FGetFniCD(sid, pfni, fAskForCD))\n        return fFalse;\n    if (pfni->FSetLeaf(pstn, ftg) && tYes == pfni->TExists())\n        return fTrue;\n\n    pfni->SetNil();\n    return fFalse; // file not found\n}\n\n/***************************************************************************\n    Build a tag for a child of another tag.  Note that this may hit the\n    CD if _PcrmSourceGet has not yet been called for ptagPar->sid.\n***************************************************************************/\nbool TAGM::FBuildChildTag(PTAG ptagPar, CHID chid, CTG ctgChild, PTAG ptagChild)\n{\n    AssertThis(0);\n    AssertVarMem(ptagPar);\n    Assert(ptagPar->sid >= 0, \"Invalid sid\");\n    AssertVarMem(ptagChild);\n\n    PCRM pcrmSource;\n    PCRF pcrfSource;\n    KID kid;\n\n    TrashVar(ptagChild);\n\n    if (ksidUseCrf == ptagPar->sid)\n    {\n        AssertPo(ptagPar->pcrf, 0);\n        if (!ptagPar->pcrf->Pcfl()->FGetKidChidCtg(ptagPar->ctg, ptagPar->cno, chid, ctgChild, &kid))\n        {\n            return fFalse; // child chunk not found\n        }\n        ptagChild->sid = ksidUseCrf;\n        ptagChild->pcrf = ptagPar->pcrf;\n        ptagPar->pcrf->AddRef();\n        ptagChild->ctg = kid.cki.ctg;\n        ptagChild->cno = kid.cki.cno;\n        return fTrue;\n    }\n    pcrmSource = _PcrmSourceGet(ptagPar->sid);\n    if (pvNil == pcrmSource)\n        return fFalse;\n    pcrfSource = pcrmSource->PcrfFindChunk(ptagPar->ctg, ptagPar->cno);\n    if (pvNil == pcrfSource)\n        return fFalse; // parent chunk not found\n    if (!pcrfSource->Pcfl()->FGetKidChidCtg(ptagPar->ctg, ptagPar->cno, chid, ctgChild, &kid))\n    {\n        return fFalse; // child chunk not found\n    }\n    ptagChild->sid = ptagPar->sid;\n    ptagChild->ctg = kid.cki.ctg;\n    ptagChild->cno = kid.cki.cno;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Put specified chunk in cache file, if it's not there yet\n***************************************************************************/\nbool TAGM::FCacheTagToHD(PTAG ptag, bool fCacheChildChunks)\n{\n    AssertThis(0);\n    AssertVarMem(ptag);\n    Assert(ptag->sid >= 0, \"Invalid sid\");\n\n    PCRM pcrmSource;\n    PCRF pcrfSource;\n    bool fSourceIsOnHD;\n    PCFL pcfl;\n\n    if (ksidUseCrf == ptag->sid)\n        return fTrue;\n\n    // FOONE: Disable caching for now. It doesn't seem to be working properly.\n    return fTrue;\n    // Do nothing if the source itself is already on HD\n    if (!_FDetermineIfSourceHD(ptag->sid, &fSourceIsOnHD))\n        goto LFail;\n    if (fSourceIsOnHD)\n        return fTrue;\n\n    pcrmSource = _PcrmSourceGet(ptag->sid);\n    if (pvNil == pcrmSource)\n        goto LFail;\n    pcrfSource = pcrmSource->PcrfFindChunk(ptag->ctg, ptag->cno);\n    if (pvNil == pcrfSource)\n        goto LFail; // chunk not found\n\n    pcfl = pcrfSource->Pcfl();\n    if (fCacheChildChunks)\n    {\n        // Cache the chunk specified by the tag, and all its child\n        // chunks.\n        CGE cge;\n        KID kid;\n        ulong grfcgeIn = 0;\n        ulong grfcgeOut;\n\n        cge.Init(pcfl, ptag->ctg, ptag->cno);\n        while (cge.FNextKid(&kid, pvNil, &grfcgeOut, grfcgeIn))\n        {\n            if (grfcgeOut & fcgePre)\n            {\n                if (!pcfl->FEnsureOnExtra(kid.cki.ctg, kid.cki.cno))\n                    goto LFail;\n            }\n        }\n    }\n    else\n    {\n        // Just cache the chunk specified by the tag\n        if (!pcfl->FEnsureOnExtra(ptag->ctg, ptag->cno))\n            goto LFail;\n    }\n    return fTrue;\nLFail:\n    PushErc(ercSocCantCacheTag);\n    return fFalse;\n}\n\n/***************************************************************************\n    Resolve the TAG to a BACO.  Only use HD cache files, unless fUseCD is\n    fTrue.\n***************************************************************************/\nPBACO TAGM::PbacoFetch(PTAG ptag, PFNRPO pfnrpo, bool fUseCD)\n{\n    AssertThis(0);\n    AssertVarMem(ptag);\n    Assert(ptag->sid >= 0, \"Invalid sid\");\n    Assert(pvNil != pfnrpo, \"bad rpo\");\n\n    PBACO pbaco = pvNil;\n    PCRM pcrmSource;\n\n    if (ptag->sid == ksidUseCrf)\n    {\n        // Tag knows pcrf, so just read from there.  Nothing we can do if\n        // it's not there.\n        AssertPo(ptag->pcrf, 0);\n        return ptag->pcrf->PbacoFetch(ptag->ctg, ptag->cno, pfnrpo);\n    }\n\n    // fTrue parameter ensures that _PcrmSourceGet won't hit the CD\n    pcrmSource = _PcrmSourceGet(ptag->sid, fTrue);\n    if (pvNil == pcrmSource)\n        return pvNil;\n\n    pbaco = pcrmSource->PbacoFetch(ptag->ctg, ptag->cno, pfnrpo);\n    return pbaco;\n}\n\n/***************************************************************************\n    Clear the cache for source sid.  If sid is sidNil, clear all caches.\n***************************************************************************/\nvoid TAGM::ClearCache(long sid, ulong grftagm)\n{\n    AssertThis(0);\n    Assert(sid >= 0, \"Invalid sid\");\n\n    long isfs, isfsMac;\n    long cbMax;\n\n    vpappb->BeginLongOp();\n\n    isfsMac = _pglsfs->IvMac();\n    for (isfs = 0; isfs < isfsMac; isfs++)\n    {\n        long icrf, icrfMac;\n        SFS sfs;\n        PCRM pcrmSource;\n\n        _pglsfs->Get(isfs, &sfs);\n        if ((sid != sidNil && sfs.sid != sid) || sfs.pcrmSource == pvNil)\n            continue;\n        if (grftagm & ftagmFile)\n        {\n            // The following line may seem silly, since we already have\n            // sfs.pcrmSource.  But it ensures that the crm's CD is inserted,\n            // since the FReopen() will need the CD to be in.\n            pcrmSource = _PcrmSourceGet(sfs.sid);\n            if (pvNil == pcrmSource)\n                continue;\n        }\n        else\n        {\n            // Just doing a memory purge, so sfs.pcrmSource is valid.\n            pcrmSource = sfs.pcrmSource;\n        }\n        icrfMac = pcrmSource->Ccrf();\n        for (icrf = 0; icrf < icrfMac; icrf++)\n        {\n            PCRF pcrf;\n\n            pcrf = pcrmSource->PcrfGet(icrf);\n            AssertPo(pcrf->Pcfl(), 0);\n            if (pcrf->Pcfl() != pvNil)\n            {\n                if (grftagm & ftagmFile)\n                {\n                    // Clear the HD cache by reopening the file\n                    pcrf->Pcfl()->FReopen(); // Ignore error\n                }\n                if (grftagm & ftagmMemory)\n                {\n                    // Clear RAM cache (for BACOs with 0 cactRef) by\n                    // temporarily setting the CRF's cbMax to 0\n                    cbMax = pcrf->CbMax();\n                    pcrf->SetCbMax(0);\n                    pcrf->SetCbMax(cbMax);\n                }\n            }\n        }\n    }\n\n    vpappb->EndLongOp();\n}\n\n/***************************************************************************\n    Prepares this tag to be used (resolved).  The tag is invalid until you\n    call this, *except* you can pass the tag to FCacheTagToHD() before\n    calling FOpenTag().  If you FOpenTag() a tag, you must CloseTag() it\n    when you're done with it.\n***************************************************************************/\nbool TAGM::FOpenTag(PTAG ptag, PCRF pcrfDest, PCFL pcflSrc)\n{\n    AssertVarMem(ptag);\n    Assert(ptag->sid >= 0, \"Invalid sid\");\n    AssertPo(pcrfDest, 0);\n    AssertNilOrPo(pcflSrc, 0);\n\n    CNO cnoDest;\n\n    if (ptag->sid != ksidUseCrf)\n        return fTrue;\n    if (pvNil != pcflSrc && pcrfDest->Pcfl() != pcflSrc)\n    {\n        if (!pcflSrc->FCopy(ptag->ctg, ptag->cno, pcrfDest->Pcfl(), &cnoDest))\n        {\n            ptag->pcrf = pvNil;\n            return fFalse; // copy failed\n        }\n        ptag->cno = cnoDest;\n    }\n    ptag->pcrf = pcrfDest;\n    pcrfDest->AddRef();\n    return fTrue;\n}\n\n/***************************************************************************\n    Save tag's data in the given CRF.  If fRedirect, the tag now points\n    to the copy in the CRF.\n***************************************************************************/\nbool TAGM::FSaveTag(PTAG ptag, PCRF pcrf, bool fRedirect)\n{\n    AssertVarMem(ptag);\n    Assert(ptag->sid >= 0, \"Invalid sid\");\n    AssertPo(pcrf, 0);\n\n    CNO cnoDest;\n\n    if (ptag->sid != ksidUseCrf)\n        return fTrue;\n\n    AssertPo(ptag->pcrf, 0);\n\n    if (!ptag->pcrf->Pcfl()->FCopy(ptag->ctg, ptag->cno, pcrf->Pcfl(), &cnoDest))\n    {\n        return fFalse; // copy failed\n    }\n\n    if (fRedirect)\n    {\n        pcrf->AddRef();\n        ReleasePpo(&ptag->pcrf);\n        ptag->pcrf = pcrf;\n        ptag->cno = cnoDest;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Call this for each tag when you're duplicating it.  Increments\n    refcount on the tag's CRF.\n***************************************************************************/\nvoid TAGM::DupTag(PTAG ptag)\n{\n    AssertVarMem(ptag);\n    Assert(ptag->sid >= 0, \"Invalid sid\");\n\n    if (ptag->sid == ksidUseCrf)\n    {\n        AssertPo(ptag->pcrf, 0);\n        ptag->pcrf->AddRef();\n    }\n}\n\n/***************************************************************************\n    Close the tag\n***************************************************************************/\nvoid TAGM::CloseTag(PTAG ptag)\n{\n    AssertVarMem(ptag);\n    // Client destructors often call CloseTag on an uninitialized tag, so\n    // don't Assert on ksidInvalid tags...just ignore them\n    Assert(ptag->sid == ksidInvalid || ptag->sid >= 0, \"Invalid sid\");\n\n    if (ptag->sid == ksidUseCrf)\n    {\n        AssertPo(ptag->pcrf, 0);\n        ReleasePpo(&ptag->pcrf);\n    }\n}\n\n/***************************************************************************\n    Compare two tags.  Tags are sorted first by sid, then CTG, then CNO.\n***************************************************************************/\nulong TAGM::FcmpCompareTags(PTAG ptag1, PTAG ptag2)\n{\n    AssertVarMem(ptag1);\n    Assert(ptag1->sid >= 0, \"Invalid sid\");\n    AssertVarMem(ptag2);\n    Assert(ptag2->sid >= 0, \"Invalid sid\");\n\n    if (ptag1->sid < ptag2->sid)\n        return fcmpLt;\n    if (ptag1->sid > ptag2->sid)\n        return fcmpGt;\n    if (ptag1->ctg < ptag2->ctg)\n        return fcmpLt;\n    if (ptag1->ctg > ptag2->ctg)\n        return fcmpGt;\n    if (ptag1->cno < ptag2->cno)\n        return fcmpLt;\n    if (ptag1->cno > ptag2->cno)\n        return fcmpGt;\n    // If both sids are ksidUseCrf, compare CRFs\n    if (ptag1->sid == ksidUseCrf) // implies ptag2->sid == ksidUseCrf\n    {\n        if (ptag1->pcrf < ptag2->pcrf)\n            return fcmpLt;\n        if (ptag1->pcrf > ptag2->pcrf)\n            return fcmpGt;\n    }\n    return fcmpEq;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the TAGM.\n***************************************************************************/\nvoid TAGM::AssertValid(ulong grf)\n{\n    long isfs;\n    SFS sfs;\n\n    TAGM_PAR::AssertValid(fobjAllocated);\n    AssertPo(_pglsfs, 0);\n    AssertPo(_pgstSource, 0);\n    Assert(pvNil != _pfninscd, \"bad _pfninscd\");\n\n    for (isfs = 0; isfs < _pglsfs->IvMac(); isfs++)\n    {\n        _pglsfs->Get(isfs, &sfs);\n        AssertPo(&sfs.fniHD, ffniDir | ffniEmpty);\n        AssertPo(&sfs.fniCD, ffniDir | ffniEmpty);\n        AssertNilOrPo(sfs.pcrmSource, 0);\n    }\n}\n\n/***************************************************************************\n    Mark memory used by the TAGM.\n***************************************************************************/\nvoid TAGM::MarkMem(void)\n{\n    AssertThis(0);\n\n    long isfs;\n    SFS sfs;\n\n    TAGM_PAR::MarkMem();\n    MarkMemObj(_pglsfs);\n    MarkMemObj(_pgstSource);\n    for (isfs = 0; isfs < _pglsfs->IvMac(); isfs++)\n    {\n        _pglsfs->Get(isfs, &sfs);\n        MarkMemObj(sfs.pcrmSource);\n    }\n}\n#endif // DEBUG\n\n#ifdef DEBUG\n/***************************************************************************\n    Mark memory used by the TAG.\n***************************************************************************/\nvoid TAG::MarkMem(void)\n{\n    if (sid == ksidUseCrf)\n    {\n        AssertPo(pcrf, 0);\n        MarkMemObj(pcrf);\n    }\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/engine/tbox.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//\n//  tbox.cpp\n//\n//  Author: Sean Selitrennikoff\n//\n//  Status: All changes must be code reviewed.\n//\n//  Date: November, 1994\n//\n//  This file contains all functionality for text box manipulation.\n//\n#include \"soc.h\"\nASSERTNAME\n\nRTCLASS(TBOX)\nRTCLASS(TBXG)\nRTCLASS(TBXB)\nRTCLASS(TCLP)\n\n//\n// How many pixels a scrolling text box scrolls by\n//\n#define kdypScroll 1\n\n//\n//\n// UNDO objects for text boxes\n//\n//\n\n//\n// Undoes changing textbox type operations\n//\ntypedef class TUNT *PTUNT;\n\n#define TUNT_PAR MUNB\n#define kclsTUNT 'TUNT'\nclass TUNT : public TUNT_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    long _itbox;\n    bool _fStory;\n    TUNT(void)\n    {\n    }\n\n  public:\n    static PTUNT PtuntNew(void);\n    ~TUNT(void);\n\n    void SetType(bool fStory)\n    {\n        _fStory = fStory;\n    }\n    void SetItbox(long itbox)\n    {\n        _itbox = itbox;\n    }\n\n    virtual bool FDo(PDOCB pdocb);\n    virtual bool FUndo(PDOCB pdocb);\n};\n\nRTCLASS(TUNT)\n\n//\n// Undoes sizing operations\n//\ntypedef class TUNS *PTUNS;\n\n#define TUNS_PAR MUNB\n#define kclsTUNS 'TUNS'\nclass TUNS : public TUNS_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    long _itbox;\n    RC _rc;\n    TUNS(void)\n    {\n    }\n\n  public:\n    static PTUNS PtunsNew(void);\n    ~TUNS(void);\n\n    void SetRc(RC *prc)\n    {\n        _rc = *prc;\n    }\n    void SetItbox(long itbox)\n    {\n        _itbox = itbox;\n    }\n\n    virtual bool FDo(PDOCB pdocb);\n    virtual bool FUndo(PDOCB pdocb);\n};\n\nRTCLASS(TUNS)\n\n//\n// Undoes hiding/showing operations\n//\ntypedef class TUNH *PTUNH;\n\n#define TUNH_PAR MUNB\n#define kclsTUNH 'TUNH'\nclass TUNH : public TUNH_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    long _itbox;\n    long _nfrmFirst;\n    long _nfrmMax;\n\n    TUNH(void)\n    {\n    }\n\n  public:\n    static PTUNH PtunhNew(void);\n    ~TUNH(void);\n\n    void SetFrmFirst(long nfrmFirst)\n    {\n        _nfrmFirst = nfrmFirst;\n    }\n    void SetFrmLast(long nfrmMax)\n    {\n        _nfrmMax = nfrmMax;\n    }\n    void SetItbox(long itbox)\n    {\n        _itbox = itbox;\n    }\n\n    virtual bool FDo(PDOCB pdocb);\n    virtual bool FUndo(PDOCB pdocb);\n};\n\nRTCLASS(TUNH)\n\n//\n// Undoes all editing operations\n//\ntypedef class TUND *PTUND;\n\n#define TUND_PAR MUNB\n#define kclsTUND 'TUND'\nclass TUND : public TUND_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    PUNDB _pundb;\n    long _itbox;\n    TUND(void)\n    {\n    }\n\n  public:\n    static PTUND PtundNew(PUNDB pundb);\n    ~TUND(void);\n\n    void SetItbox(long itbox)\n    {\n        _itbox = itbox;\n    }\n\n    virtual bool FDo(PDOCB pdocb);\n    virtual bool FUndo(PDOCB pdocb);\n};\n\nRTCLASS(TUND)\n\n//\n// Undoes coloring background operations\n//\ntypedef class TUNC *PTUNC;\n\n#define TUNC_PAR MUNB\n#define kclsTUNC 'TUNC'\nclass TUNC : public TUNC_PAR\n{\n    RTCLASS_DEC\n    MARKMEM\n    ASSERT\n\n  protected:\n    long _itbox;\n    ACR _acr;\n    TUNC(void)\n    {\n    }\n\n  public:\n    static PTUNC PtuncNew(void);\n    ~TUNC(void);\n\n    void SetItbox(long itbox)\n    {\n        _itbox = itbox;\n    }\n    void SetAcrBack(ACR acr)\n    {\n        _acr = acr;\n    }\n\n    virtual bool FDo(PDOCB pdocb);\n    virtual bool FUndo(PDOCB pdocb);\n};\n\nRTCLASS(TUNC)\n\n//\n//\n// BEGIN TBXB and TBXG\n//\n//\n/****************************************************\n *\n * Creates a textbox display area.\n *\n * Parameters:\n *\tptbox - The owning text box for this view.\n *\tpgcb - Creation block.\n *\n * Returns:\n *  A pointer to the view, else pvNil.\n *\n ****************************************************/\nPTBXB TBXB::PtbxbNew(PTBOX ptbox, PGCB pgcb)\n{\n    AssertPo(ptbox, 0);\n    AssertPvCb(pgcb, size(GCB));\n\n    PTBXB ptbxb;\n    PTBXG ptbxg;\n    RC rcRel, rcAbs;\n    ACR acr;\n\n    //\n    // Create the border\n    //\n    ptbxb = NewObj TBXB(ptbox, pgcb);\n    if (ptbxb == pvNil)\n    {\n        return (pvNil);\n    }\n\n    //\n    // Now create the DDG area for the text\n    //\n    rcAbs.Set(kdzpBorderTbox, kdzpBorderTbox, -kdzpBorderTbox, -kdzpBorderTbox);\n    rcRel.Set(krelZero, krelZero, krelOne, krelOne);\n    pgcb->Set(pgcb->_hid, ptbxb, pgcb->_grfgob, pgcb->_gin, &rcAbs, &rcRel);\n    if (pvNil == (ptbxg = (PTBXG)ptbox->PddgNew(pgcb)))\n    {\n        ReleasePpo(&ptbxb);\n        return (pvNil);\n    }\n\n    ptbxg->SetTbxb(ptbxb);\n\n    return ptbxb;\n}\n\n/****************************************************\n *\n * Draws a textbox border\n *\n * Parameters:\n *\tpgnv - The graphic environment describing the draw.\n *\tprcClip - the clipping rectangle to draw into.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBXB::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertPvCb(prcClip, size(RC));\n\n    RC rc;\n    RC rcClip;\n    long lwSave;\n\n    Assert(_ptbox->FIsVisible(), \"DDG existing for invisible tbox\");\n\n    if (!_ptbox->FSelected())\n    {\n        return;\n    }\n\n    //\n    // Draw border\n    //\n    pgnv->GetRcSrc(&rc);\n    rc.Inset(kdzpBorderTbox / 2, kdzpBorderTbox / 2);\n\n    if (_ptbox->FStory())\n    {\n        pgnv->FrameRcApt(&rc, &vaptLtGray, kacrBlack, kacrClear);\n    }\n    else\n    {\n        pgnv->FrameRcApt(&rc, &vaptLtGray, kacrYellow, kacrClear);\n    }\n\n    //\n    // Upper left anchor\n    //\n    pgnv->GetRcSrc(&rc);\n    rc.ypBottom = rc.ypTop + kdzpBorderTbox;\n    lwSave = rc.xpRight;\n    rc.xpRight = rc.xpLeft + kdzpBorderTbox;\n    if (rcClip.FIntersect(&rc, prcClip))\n    {\n        pgnv->FillRc(&rcClip, kacrWhite);\n        pgnv->FrameRc(&rcClip, kacrBlack);\n    }\n\n    //\n    // Upper Middle anchor\n    //\n    rc.xpLeft = (lwSave - rc.xpLeft - kdzpBorderTbox) / 2;\n    rc.xpRight = rc.xpLeft + kdzpBorderTbox;\n    if (rcClip.FIntersect(&rc, prcClip))\n    {\n        pgnv->FillRc(&rcClip, kacrWhite);\n        pgnv->FrameRc(&rcClip, kacrBlack);\n    }\n\n    //\n    // Upper right anchor\n    //\n    rc.xpLeft = (lwSave - kdzpBorderTbox);\n    rc.xpRight = lwSave;\n    if (rcClip.FIntersect(&rc, prcClip))\n    {\n        pgnv->FillRc(&rcClip, kacrWhite);\n        pgnv->FrameRc(&rcClip, kacrBlack);\n    }\n\n    //\n    // Middle left anchor\n    //\n    pgnv->GetRcSrc(&rc);\n    rc.ypTop = (rc.ypBottom - rc.ypTop - kdzpBorderTbox) / 2;\n    rc.ypBottom = rc.ypTop + kdzpBorderTbox;\n    lwSave = rc.xpRight;\n    rc.xpRight = rc.xpLeft + kdzpBorderTbox;\n    if (rcClip.FIntersect(&rc, prcClip))\n    {\n        pgnv->FillRc(&rcClip, kacrWhite);\n        pgnv->FrameRc(&rcClip, kacrBlack);\n    }\n\n    //\n    // Middle right anchor\n    //\n    rc.xpLeft = (lwSave - kdzpBorderTbox);\n    rc.xpRight = lwSave;\n    if (rcClip.FIntersect(&rc, prcClip))\n    {\n        pgnv->FillRc(&rcClip, kacrWhite);\n        pgnv->FrameRc(&rcClip, kacrBlack);\n    }\n\n    //\n    // Lower left anchor\n    //\n    pgnv->GetRcSrc(&rc);\n    rc.ypTop = rc.ypBottom - kdzpBorderTbox;\n    lwSave = rc.xpRight;\n    rc.xpRight = rc.xpLeft + kdzpBorderTbox;\n    if (rcClip.FIntersect(&rc, prcClip))\n    {\n        pgnv->FillRc(&rcClip, kacrWhite);\n        pgnv->FrameRc(&rcClip, kacrBlack);\n    }\n\n    //\n    // Lower middle anchor\n    //\n    rc.xpLeft = (lwSave - rc.xpLeft - kdzpBorderTbox) / 2;\n    rc.xpRight = rc.xpLeft + kdzpBorderTbox;\n    if (rcClip.FIntersect(&rc, prcClip))\n    {\n        pgnv->FillRc(&rcClip, kacrWhite);\n        pgnv->FrameRc(&rcClip, kacrBlack);\n    }\n\n    //\n    // Lower right anchor\n    //\n    rc.xpLeft = (lwSave - kdzpBorderTbox);\n    rc.xpRight = lwSave;\n    if (rcClip.FIntersect(&rc, prcClip))\n    {\n        pgnv->FillRc(&rcClip, kacrWhite);\n        pgnv->FrameRc(&rcClip, kacrBlack);\n    }\n}\n\n/***************************************************************************\n *\n * Handles mouse commands for clicking and dragging.\n *\n * Parameters:\n *  pcmd - Pointer to the mouse command.\n *\n * Returns:\n *  fTrue if it handles the command, else fFalse.\n *\n **************************************************************************/\nbool TBXB::FCmdTrackMouse(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PMVU pmvu;\n    PT pt;\n    RC rc, rcOld;\n    RC rcBound(0, 0, _ptbox->Pscen()->Pmvie()->Pmcc()->Dxp(), _ptbox->Pscen()->Pmvie()->Pmcc()->Dyp());\n    static long itbox = ivNil;\n\n    pmvu = (PMVU)_ptbox->Pscen()->Pmvie()->PddgGet(0);\n    AssertPo(pmvu, 0);\n\n    pt.xp = pcmd->xp;\n    pt.yp = pcmd->yp;\n    MapPt(&pt, cooLocal, cooGlobal);\n\n    if (_fTrackingMouse)\n    {\n\n        if (pcmd->grfcust & fcustMouse)\n        {\n            _fTrackingMouse = fFalse;\n            vpcex->EndMouseTracking();\n            vpappb->ShowCurs();\n            vpcex->EnqueueCid(cidTboxClicked, pvNil, pvNil, _ptbox->Itbox(), fTrue);\n            return (fTrue);\n        }\n    }\n\n    if (pcmd->cid == cidMouseDown)\n    {\n\n        Assert(vpcex->PgobTracking() == pvNil, \"mouse already being tracked!\");\n        //\n        // Select this text box if not already\n        //\n        if (_ptbox->Pscen()->PtboxSelected() != _ptbox)\n        {\n            _ptbox->Pscen()->SelectTbox(_ptbox);\n        }\n\n        itbox = _ptbox->Itbox();\n\n        vpcex->EnqueueCid(cidTboxClicked, pvNil, pvNil, itbox, fTrue);\n\n        //\n        // Check for nuker\n        //\n        if (pmvu->Tool() == toolActorNuke)\n        {\n            _ptbox->Pscen()->Pmvie()->Pmcc()->PlayUISound(toolActorNuke, fcustShift);\n            _ptbox->Pscen()->FRemTbox(_ptbox);\n            return (fTrue);\n        }\n\n        if ((pmvu->Tool() != toolCutObject) && (pmvu->Tool() != toolCopyObject) && (pmvu->Tool() != toolPasteObject))\n        {\n            _tbxt = _TbxtAnchor(pcmd->xp, pcmd->yp);\n            GetRc(&_rcOrig, cooParent);\n            _xpPrev = pt.xp;\n            _ypPrev = pt.yp;\n            vpappb->HideCurs();\n        }\n\n        //\n        // Store all initial information\n        //\n        vpcex->TrackMouse(this);\n    }\n    else\n    {\n\n        if (pmvu->Tool() == toolActorNuke)\n        {\n            return (fTrue);\n        }\n\n        //\n        // mouse drag/up\n        //\n        Assert(vpcex->PgobTracking() == this, \"not tracking mouse!\");\n        Assert(pcmd->cid == cidTrackMouse, 0);\n\n        if (pmvu->Tool() == toolPasteObject)\n        {\n\n            if (!(pcmd->grfcust & fcustMouse))\n            {\n                vpcex->EnqueueCid(cidTboxClicked, pvNil, pvNil, itbox, fFalse);\n                vpcex->EndMouseTracking();\n            }\n\n            return (fTrue);\n        }\n\n        if ((pmvu->Tool() == toolCutObject) || (pmvu->Tool() == toolCopyObject))\n        {\n\n            if (!(pcmd->grfcust & fcustMouse))\n            {\n                PTBXG ptbxg = (PTBXG)_ptbox->PddgGet(0);\n                AssertPo(ptbxg, 0);\n                ptbxg->_FDoClip(pmvu->Tool());\n                vpcex->EndMouseTracking();\n                vpcex->EnqueueCid(cidTboxClicked, pvNil, pvNil, itbox, fFalse);\n            }\n\n            return (fTrue);\n        }\n\n        //\n        // Now do work based on what we are doing -- dragging, stretching, shrinking.\n        //\n        GetRc(&rc, cooParent);\n        rcOld = rc;\n\n        //\n        // Do vertical adjustment\n        //\n        switch (_tbxt)\n        {\n        case tbxtDown:\n        case tbxtDownRight:\n        case tbxtDownLeft:\n            rc.ypBottom = LwBound(rcOld.ypBottom + pt.yp - _ypPrev, rc.ypTop + kdypMinTbox + LwMul(2, kdzpBorderTbox),\n                                  rcBound.ypBottom + 1);\n            _ypPrev += rc.ypBottom - rcOld.ypBottom;\n            break;\n\n        case tbxtUp:\n        case tbxtUpRight:\n        case tbxtUpLeft:\n            rc.ypTop = LwBound(rcOld.ypTop + pt.yp - _ypPrev, rcBound.ypTop,\n                               rc.ypBottom - kdypMinTbox - LwMul(2, kdzpBorderTbox) + 1);\n            _ypPrev += rc.ypTop - rcOld.ypTop;\n            break;\n\n        case tbxtMove:\n            break;\n        }\n\n        //\n        // Do horizontal adjustment\n        //\n        switch (_tbxt)\n        {\n        case tbxtRight:\n        case tbxtDownRight:\n        case tbxtUpRight:\n            rc.xpRight = LwBound(rcOld.xpRight + pt.xp - _xpPrev, rc.xpLeft + kdxpMinTbox + LwMul(2, kdzpBorderTbox),\n                                 rcBound.xpRight + 1);\n            _xpPrev += rc.xpRight - rcOld.xpRight;\n            break;\n\n        case tbxtLeft:\n        case tbxtDownLeft:\n        case tbxtUpLeft:\n            rc.xpLeft = LwBound(rcOld.xpLeft + pt.xp - _xpPrev, rcBound.xpLeft,\n                                (rc.xpRight - (kdxpMinTbox + LwMul(2, kdzpBorderTbox))) + 1);\n            _xpPrev += rc.xpLeft - rcOld.xpLeft;\n            break;\n\n        case tbxtMove:\n            rc.Offset(pt.xp - _xpPrev, pt.yp - _ypPrev);\n            rc.PinToRc(&rcBound);\n            _xpPrev += rc.xpLeft - rcOld.xpLeft;\n            _ypPrev += rc.ypTop - rcOld.ypTop;\n            break;\n        }\n\n        vpappb->PositionCurs(_xpPrev, _ypPrev);\n\n        if ((rc != rcOld) && !_ptbox->Pscen()->Pmvie()->Pmcc()->FMinimized())\n        {\n            //\n            // Reposition the textbox.\n            //\n\n            SetPos(&rc);\n            _ptbox->SetRc(&rc);\n        }\n\n        //\n        // If mouse up\n        //\n        if (!(pcmd->grfcust & fcustMouse) && !_fTrackingMouse)\n        {\n\n            //\n            // Add an undo object for the resize/move\n            //\n            GetRc(&rc, cooLocal);\n            if (_rcOrig != rc)\n            {\n                PTUNS ptuns;\n\n                ptuns = TUNS::PtunsNew();\n                if (ptuns == pvNil)\n                {\n                    PushErc(ercSocNotUndoable);\n                    _ptbox->Pscen()->Pmvie()->ClearUndo();\n                }\n                else\n                {\n                    ptuns->SetItbox(_ptbox->Itbox());\n                    ptuns->SetRc(&_rcOrig);\n\n                    if (!_ptbox->Pscen()->Pmvie()->FAddUndo(ptuns))\n                    {\n                        PushErc(ercSocNotUndoable);\n                        _ptbox->Pscen()->Pmvie()->ClearUndo();\n                    }\n                    ReleasePpo(&ptuns);\n                }\n            }\n\n            vpcex->EnqueueCid(cidTboxClicked, pvNil, pvNil, _ptbox->Itbox(), fFalse);\n\n            vpcex->EndMouseTracking();\n            vpappb->ShowCurs();\n        }\n    }\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Handles mouse move commands\n *\n * Parameters:\n *  pcmd - Pointer to the mouse move command.\n *\n * Returns:\n *  fTrue if it handles the command, else fFalse.\n *\n **************************************************************************/\nbool TBXB::FCmdMouseMove(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PMVU pmvu;\n\n    pmvu = (PMVU)_ptbox->Pscen()->Pmvie()->PddgGet(0);\n    AssertPo(pmvu, 0);\n\n    //\n    // Check for cut, copy, paste, nuke tools\n    //\n    if ((pmvu->Tool() == toolCutObject) || (pmvu->Tool() == toolCopyObject) || (pmvu->Tool() == toolPasteObject) ||\n        (pmvu->Tool() == toolActorNuke))\n    {\n        _ptbox->Pscen()->Pmvie()->Pmcc()->SetCurs(pmvu->Tool());\n        return (fTrue);\n    }\n\n    switch (_TbxtAnchor(pcmd->xp, pcmd->yp))\n    {\n    case tbxtUp:\n    case tbxtDown:\n        _ptbox->Pscen()->Pmvie()->Pmcc()->SetCurs(toolTboxUpDown);\n        break;\n\n    case tbxtUpRight:\n    case tbxtDownLeft:\n        _ptbox->Pscen()->Pmvie()->Pmcc()->SetCurs(toolTboxRising);\n        break;\n\n    case tbxtLeft:\n    case tbxtRight:\n        _ptbox->Pscen()->Pmvie()->Pmcc()->SetCurs(toolTboxLeftRight);\n        break;\n\n    case tbxtUpLeft:\n    case tbxtDownRight:\n        _ptbox->Pscen()->Pmvie()->Pmcc()->SetCurs(toolTboxFalling);\n        break;\n\n    default:\n        _ptbox->Pscen()->Pmvie()->Pmcc()->SetCurs(toolTboxMove);\n        break;\n    }\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Finds which anchor point the given point is in.\n *\n * Parameters:\n *  xp - X position in local coordinates\n *\typ - Y position in local coordinates\n *\n * Returns:\n *  Anchor point number.\n *\n **************************************************************************/\nTBXT TBXB::_TbxtAnchor(long xp, long yp)\n{\n    AssertThis(0);\n\n    RC rc;\n\n    GetRc(&rc, cooLocal);\n\n    //\n    // Is the cursor in upper-left anchor?\n    //\n    if ((xp < kdzpBorderTbox) && (yp < kdzpBorderTbox))\n    {\n        return (tbxtUpLeft);\n    }\n\n    //\n    // Is the cursor in lower-right anchor?\n    //\n    if ((xp > rc.xpRight - kdzpBorderTbox) && (yp > rc.ypBottom - kdzpBorderTbox))\n    {\n        return (tbxtDownRight);\n    }\n\n    //\n    // Is the cursor in upper-right anchor?\n    //\n    if ((xp > rc.xpRight - kdzpBorderTbox) && (yp < kdzpBorderTbox))\n    {\n        return (tbxtUpRight);\n    }\n\n    //\n    // Is the cursor in lower-left anchor?\n    //\n    if ((xp < kdzpBorderTbox) && (yp > rc.ypBottom - kdzpBorderTbox))\n    {\n        return (tbxtDownLeft);\n    }\n\n    //\n    // Is the cursor in middle top?\n    //\n    if ((xp <= (rc.xpRight - rc.xpLeft + kdzpBorderTbox) / 2) &&\n        (xp >= (rc.xpRight - rc.xpLeft - kdzpBorderTbox) / 2) && (yp < kdzpBorderTbox))\n    {\n        return (tbxtUp);\n    }\n\n    //\n    // Is the cursor in middle bottom?\n    //\n    if ((xp <= (rc.xpRight - rc.xpLeft + kdzpBorderTbox) / 2) &&\n        (xp >= (rc.xpRight - rc.xpLeft - kdzpBorderTbox) / 2) && (yp > rc.ypBottom - kdzpBorderTbox))\n    {\n        return (tbxtDown);\n    }\n\n    //\n    // Is the cursor in middle left?\n    //\n    if ((yp <= (rc.ypBottom - rc.ypTop + kdzpBorderTbox) / 2) &&\n        (yp >= (rc.ypBottom - rc.ypTop - kdzpBorderTbox) / 2) && (xp < kdzpBorderTbox))\n    {\n        return (tbxtLeft);\n    }\n\n    //\n    // Is the cursor in middle right?\n    //\n    if ((yp <= (rc.ypBottom - rc.ypTop + kdzpBorderTbox) / 2) &&\n        (yp >= (rc.ypBottom - rc.ypTop - kdzpBorderTbox) / 2) && (xp > rc.xpRight - kdzpBorderTbox))\n    {\n        return (tbxtRight);\n    }\n\n    //\n    // Not in an anchor.\n    //\n    return (tbxtMove);\n}\n\n/***************************************************************************\n *\n * Callback for when this text box window gets activated\n *\n * Parameters:\n *  fActive - Is this the active window?\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid TBXB::Activate(bool fActive)\n{\n    PDDG pddg;\n\n    pddg = _ptbox->PddgGet(0);\n    AssertPo(pddg, 0);\n    pddg->Activate(fActive);\n\n    if (fActive)\n    {\n        BringToFront();\n        _ptbox->Pscen()->SelectTbox(_ptbox);\n    }\n}\n\n/***************************************************************************\n *\n * Will return fFalse if tbox is to be ignored.\n *\n * Parameters:\n *  xp, yp - The current mouse point.\n *\n * Returns:\n *  fTrue if it handles the command, else fFalse.\n *\n **************************************************************************/\nbool TBXB::FPtIn(long xp, long yp)\n{\n    AssertThis(0);\n\n    PMVU pmvu;\n\n    pmvu = (PMVU)_ptbox->Pscen()->Pmvie()->PddgGet(0);\n    AssertPo(pmvu, 0);\n\n    //\n    // Pass through if not in text mode, or in a tool that\n    // does not select this text box.\n    //\n    if (!pmvu->FTextMode() ||\n        ((pmvu->Tool() == toolSceneNuke) || (pmvu->Tool() == toolSceneChop) || (pmvu->Tool() == toolSceneChopBack)) ||\n        ((_ptbox->Pscen()->PtboxSelected() != _ptbox) &&\n         ((pmvu->Tool() == toolTboxStory) || (pmvu->Tool() == toolTboxCredit))))\n    {\n        return (fFalse);\n    }\n\n    return (TBXB_PAR::FPtIn(xp, yp));\n}\n\n/****************************************************\n * Attach the mouse to this border.\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBXB::AttachToMouse(void)\n{\n    AssertThis(0);\n\n    PMVU pmvu;\n    PT pt;\n\n    pmvu = (PMVU)_ptbox->Pscen()->Pmvie()->PddgGet(0);\n    AssertPo(pmvu, 0);\n\n    _fTrackingMouse = fTrue;\n    _tbxt = tbxtMove;\n    GetRc(&_rcOrig, cooParent);\n    pt.xp = _rcOrig.xpLeft;\n    pt.yp = _rcOrig.ypTop;\n    MapPt(&pt, cooParent, cooGlobal);\n    _xpPrev = pt.xp;\n    _ypPrev = pt.yp;\n    pmvu->SetTool(toolTboxMove);\n    _ptbox->Pscen()->Pmvie()->Pmcc()->ChangeTool(toolTboxMove);\n    vpappb->PositionCurs(_xpPrev, _ypPrev);\n    vpappb->HideCurs();\n    vpcex->TrackMouse(this);\n}\n\n#ifdef DEBUG\n\n/****************************************************\n * Mark memory used by the TBXB\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBXB::MarkMem(void)\n{\n    AssertThis(0);\n    TBXB_PAR::MarkMem();\n}\n\n/***************************************************************************\n *\n * Assert the validity of the TBXB.\n *\n * Parameters:\n *\tgrf - Bit field of options\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid TBXB::AssertValid(ulong grf)\n{\n    TBXB_PAR::AssertValid(fobjAllocated);\n}\n\n#endif\n\n//\n// Disable the some default rich text functionality,\n// and then intercept other commands.\n//\nBEGIN_CMD_MAP(TBXG, DDG)\nON_CID_GEN(cidSave, pvNil, pvNil)\nON_CID_GEN(cidClose, pvNil, pvNil)\nON_CID_GEN(cidSaveAndClose, pvNil, pvNil)\nON_CID_GEN(cidSaveAs, pvNil, pvNil)\nON_CID_GEN(cidSaveCopy, pvNil, pvNil)\nON_CID_GEN(cidCutTool, &TBXG::FCmdClip, &TBXG::FEnableDdgCmd)\nON_CID_GEN(cidCopyTool, &TBXG::FCmdClip, &TBXG::FEnableDdgCmd)\nON_CID_GEN(cidPasteTool, &TBXG::FCmdClip, &TBXG::FEnableDdgCmd)\nON_CID_GEN(cidPaste, &TBXG::FCmdClip, &TBXG::FEnableDdgCmd)\nON_CID_GEN(cidCut, &TBXG::FCmdClip, pvNil)\nON_CID_GEN(cidCopy, &TBXG::FCmdClip, pvNil)\nON_CID_GEN(cidUndo, pvNil, pvNil)\nON_CID_GEN(cidRedo, pvNil, pvNil)\nEND_CMD_MAP_NIL()\n\n/****************************************************\n *\n * Destructor for text box DDGs.\n *\n ****************************************************/\nTBXG::~TBXG()\n{\n}\n\n/****************************************************\n *\n * Creates a textbox display area.\n *\n * Parameters:\n *\tptbox - The owning text box for this view.\n *\tpgcb - Creation block.\n *\n * Returns:\n *  A pointer to the view, else pvNil.\n *\n ****************************************************/\nPTBXG TBXG::PtbxgNew(PTBOX ptbox, PGCB pgcb)\n{\n    AssertPo(ptbox, 0);\n    AssertPvCb(pgcb, size(GCB));\n\n    PTBXG ptbxg;\n\n    if (pvNil == (ptbxg = NewObj TBXG(ptbox, pgcb)))\n    {\n        return (pvNil);\n    }\n\n    if (!ptbxg->_FInit())\n    {\n        ReleasePpo(&ptbxg);\n        return pvNil;\n    }\n\n    ptbxg->GetRc(&ptbxg->_rcOld, cooLocal);\n    return ptbxg;\n}\n\n/****************************************************\n *\n * Draws a textbox innards\n *\n * Parameters:\n *\tpgnv - The graphic environment describing the draw.\n *\tprcClip - the clipping rectangle to draw into.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBXG::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertPvCb(prcClip, size(RC));\n\n    RC rc;\n\n    //\n    // In order to do scrolling text boxex, the easiest\n    // way to get the text to scroll is to grow the DDG\n    // upward (to the top of the screen), but then clip\n    // the drawing to within the border.\n    //\n    // The DDG will automatically be clipped to within\n    // the border GOB, but the drawn border (dashes and\n    // anchors) must then be subtracted.\n    //\n    GetRc(&rc, cooParent);\n    rc.ypTop = kdzpBorderTbox;\n    MapRc(&rc, cooParent, cooLocal);\n    rc.FIntersect(prcClip);\n    pgnv->ClipRc(&rc);\n\n    TBXG_PAR::Draw(pgnv, &rc);\n}\n\n/***************************************************************************\n *\n * Callback for when this text box window gets activated\n *\n * Parameters:\n *  fActive - Is this the active window?\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid TBXG::Activate(bool fActive)\n{\n    AssertThis(0);\n\n    PTBOX ptbox = (PTBOX)_pdocb;\n    AssertPo(ptbox, 0);\n\n    TBXG_PAR::Activate(fActive);\n    ptbox->Select(fActive);\n}\n\n/***************************************************************************\n *\n * Handles when the user starts typing\n *\n * Parameters:\n *  cp - Character position.\n *\tccpIns - Number of characters to insert.\n *\tccpDel - Number of characters to delete.\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid TBXG::InvalCp(long cp, long ccpIns, long ccpDel)\n{\n    PMVU pmvu;\n    PTBOX ptbox = (PTBOX)_pdocb;\n    AssertPo(ptbox, 0);\n\n    pmvu = (PMVU)ptbox->Pscen()->Pmvie()->PddgGet(0);\n    AssertPo(pmvu, 0);\n\n    if (((pmvu->Tool() == toolTboxPaintText) || (pmvu->Tool() == toolTboxFont) || (pmvu->Tool() == toolTboxSize) ||\n         (pmvu->Tool() == toolTboxStyle)) &&\n        (ccpIns != ccpDel))\n    {\n        pmvu->SetTool(toolTboxMove);\n        ptbox->Pscen()->Pmvie()->Pmcc()->ChangeTool(toolTboxMove);\n    }\n\n    TBXG_PAR::InvalCp(cp, ccpIns, ccpDel);\n}\n\n/***************************************************************************\n *\n * Handles mouse move commands\n *\n * Parameters:\n *  pcmd - Pointer to the mouse move command.\n *\n * Returns:\n *  fTrue if it handles the command, else fFalse.\n *\n **************************************************************************/\nbool TBXG::FCmdMouseMove(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PTBOX ptbox = (PTBOX)_pdocb;\n    PMVU pmvu;\n\n    pmvu = (PMVU)ptbox->Pscen()->Pmvie()->PddgGet(0);\n    AssertPo(pmvu, 0);\n\n    //\n    // Check for cut, copy, paste tools\n    //\n    switch (pmvu->Tool())\n    {\n    case toolCutObject:\n        ptbox->Pscen()->Pmvie()->Pmcc()->SetCurs(toolCutText);\n        return (fTrue);\n\n    case toolCopyObject:\n        ptbox->Pscen()->Pmvie()->Pmcc()->SetCurs(toolCopyText);\n        return (fTrue);\n\n    case toolPasteObject:\n        ptbox->Pscen()->Pmvie()->Pmcc()->SetCurs(toolPasteText);\n        return (fTrue);\n\n    case toolTboxFillBkgd:\n    case toolTboxPaintText:\n    case toolActorNuke:\n    case toolTboxStory:\n    case toolTboxCredit:\n    case toolTboxFont:\n    case toolTboxSize:\n    case toolTboxStyle:\n        ptbox->Pscen()->Pmvie()->Pmcc()->SetCurs(pmvu->Tool());\n        return (fTrue);\n    }\n\n    ptbox->Pscen()->Pmvie()->Pmcc()->SetCurs(toolIBeam);\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Handles other mouse commands\n *\n * Parameters:\n *  pcmd - Pointer to the mouse command.\n *\n * Returns:\n *  fTrue if it handles the command, else fFalse.\n *\n **************************************************************************/\nbool TBXG::FCmdTrackMouse(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PTBOX ptbox = (PTBOX)_pdocb;\n    PMVU pmvu;\n    CHP chpNew, chpDiff;\n\n    chpNew.Clear();\n    chpDiff.Clear();\n\n    pmvu = (PMVU)ptbox->Pscen()->Pmvie()->PddgGet(0);\n    AssertPo(pmvu, 0);\n\n    //\n    // Check for the nuker\n    //\n    if (pmvu->Tool() == toolActorNuke)\n    {\n        if (pcmd->cid == cidMouseDown)\n        {\n            vpcex->EnqueueCid(cidTboxClicked, pvNil, pvNil, ptbox->Itbox(), fTrue);\n\n            ptbox->Pscen()->Pmvie()->Pmcc()->PlayUISound(toolActorNuke, fcustShift);\n            ptbox->Pscen()->FRemTbox(ptbox);\n        }\n        return (fTrue);\n    }\n\n    //\n    // No selecting text with the fill bucket or type changers\n    //\n    if ((pmvu->Tool() != toolTboxFillBkgd) && (pmvu->Tool() != toolTboxStory) && (pmvu->Tool() != toolTboxCredit))\n    {\n        TBXG_PAR::FCmdTrackMouse(pcmd);\n    }\n\n    if ((pcmd->cid == cidMouseDown) && (pcmd->grfcust & fcustMouse))\n    {\n\n        vpcex->EnqueueCid(cidTboxClicked, pvNil, pvNil, ptbox->Itbox(), fTrue);\n\n        switch (pmvu->Tool())\n        {\n        case toolTboxFillBkgd:\n            ptbox->FSetAcrBack(pmvu->AcrPaint());\n            ptbox->Pscen()->Pmvie()->Pmcc()->PlayUISound(pmvu->Tool());\n            break;\n\n        case toolTboxStory:\n            ptbox->FSetType(fTrue);\n            ptbox->Pscen()->Pmvie()->Pmcc()->PlayUISound(pmvu->Tool());\n            break;\n\n        case toolTboxCredit:\n            ptbox->FSetType(fFalse);\n            ptbox->Pscen()->Pmvie()->Pmcc()->PlayUISound(pmvu->Tool());\n            break;\n        }\n\n        return (fTrue);\n    }\n\n    if ((pcmd->cid != cidMouseDown) && !(pcmd->grfcust & fcustMouse))\n    {\n\n        vpcex->EnqueueCid(cidTboxClicked, pvNil, pvNil, ptbox->Itbox(), fFalse);\n\n        switch (pmvu->Tool())\n        {\n        case toolCutObject:\n            _FDoClip(toolCutText);\n            break;\n\n        case toolCopyObject:\n            _FDoClip(toolCopyText);\n            SetSel(_cpOther, _cpOther);\n            break;\n\n        case toolPasteObject:\n            _FDoClip(toolPasteText);\n            break;\n\n        case toolTboxPaintText:\n            if (!FTextSelected())\n                break;\n            chpNew.acrFore = pmvu->AcrPaint();\n            chpDiff.acrFore.SetFromLw(~chpNew.acrFore.LwGet());\n            goto LApplyFormat;\n        case toolTboxFont:\n            if (!FTextSelected())\n                break;\n            chpNew.onn = pmvu->OnnTextCur();\n            chpDiff.onn = ~chpNew.onn;\n            goto LApplyFormat;\n        case toolTboxStyle:\n            if (!FTextSelected())\n                break;\n            chpNew.grfont = pmvu->GrfontStyleTextCur();\n            chpDiff.grfont = ~chpNew.grfont;\n            goto LApplyFormat;\n        case toolTboxSize:\n            if (!FTextSelected())\n                break;\n            chpNew.dypFont = pmvu->DypFontTextCur();\n            chpDiff.dypFont = ~chpNew.dypFont;\n        LApplyFormat:\n            ptbox->Pscen()->Pmvie()->Pmcc()->PlayUISound(pmvu->Tool());\n            FApplyChp(&chpNew, &chpDiff);\n            break;\n        }\n    }\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Will return fFalse if tbox is to be ignored.\n *\n * Parameters:\n *  xp, yp - The current mouse point.\n *\n * Returns:\n *  fTrue if it handles the command, else fFalse.\n *\n **************************************************************************/\nbool TBXG::FPtIn(long xp, long yp)\n{\n    AssertThis(0);\n\n    PTBOX ptbox = (PTBOX)_pdocb;\n    PMVU pmvu;\n\n    AssertPo(ptbox, 0);\n\n    pmvu = (PMVU)ptbox->Pscen()->Pmvie()->PddgGet(0);\n    AssertPo(pmvu, 0);\n\n    //\n    // Pass through if not in text mode, or in a tool that\n    // does not select this text box.\n    //\n    if (!pmvu->FTextMode() ||\n        ((pmvu->Tool() == toolSceneNuke) || (pmvu->Tool() == toolSceneChop) || (pmvu->Tool() == toolSceneChopBack)))\n    {\n        return (fFalse);\n    }\n\n    return (TBXG_PAR::FPtIn(xp, yp));\n}\n\n/***************************************************************************\n *\n * Used for resizing.  We don't actually change the width of the\n * document, only the size of the view.\n *\n * NOTE: Do not AssertThis(0) in this routine, as this routine\n * is called during a time the doc is invalid.\n *\n * Parameters:\n *  None.\n *\n * Returns:\n *\tWidth in pixels.\n *\n **************************************************************************/\nlong TBXG::_DxpDoc()\n{\n    AssertBaseThis(0);\n\n    RC rc;\n\n    GetRc(&rc, cooLocal);\n    return (rc.Dxp() - 2 * kdxpIndentTxtg);\n}\n\n/***************************************************************************\n *\n * Notification that there is a new rectangle.  Here we reformat the text\n * to fit into the new rectangle.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n * \tNone.\n *\n **************************************************************************/\nvoid TBXG::_NewRc(void)\n{\n    AssertBaseThis(0);\n\n    RC rc;\n\n    GetRc(&rc, cooLocal);\n\n    //\n    // Only reformat if the width changes\n    //\n    if (_rcOld.Dxp() == rc.Dxp())\n    {\n        return;\n    }\n\n    _rcOld = rc;\n\n    TBXG_PAR::_NewRc();\n\n    long cpLim = _ptxtb->CpMac() - 1;\n\n    _Reformat(0, cpLim, cpLim);\n}\n\n/***************************************************************************\n *\n * Handles preparing for cut, copy or paste.\n *\n * Parameters:\n *\tpcmd - The command to process.\n *\n * Returns:\n * \tfTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool TBXG::FCmdClip(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PTBOX ptbox = (PTBOX)_pdocb;\n    PDOCB pdocb;\n    PMVU pmvu;\n\n    pmvu = (PMVU)ptbox->Pscen()->Pmvie()->PddgGet(0);\n    AssertPo(pmvu, 0);\n\n    Assert(pmvu->FTextMode(), \"Bad mode\");\n\n    if (((pcmd->cid == cidPaste) || (pcmd->cid == cidPasteTool)) && vpclip->FGetFormat(kclsACLP, &pdocb))\n    {\n        CMD cmd;\n\n        if (((PACLP)pdocb)->FRouteOnly())\n        {\n            PushErc(ercSocCannotPasteThatHere);\n            ReleasePpo(&pdocb);\n            return (fTrue);\n        }\n        //\n        // Pass this onto the MVU for pasting\n        //\n\n        cmd = *pcmd;\n        cmd.pcmh = pmvu;\n\n        vpcex->EnqueueCmd(&cmd);\n        ReleasePpo(&pdocb);\n        return (fTrue);\n    }\n\n    switch (pcmd->cid)\n    {\n\n    case cidPaste:\n        _FDoClip(vpclip->FGetFormat(kclsTCLP) ? toolPasteObject : toolPasteText);\n        break;\n\n    case cidCut:\n        _FDoClip(FTextSelected() ? toolCutText : toolCutObject);\n        break;\n\n    case cidCopy:\n        _FDoClip(FTextSelected() ? toolCopyText : toolCopyObject);\n        break;\n\n    default:\n        return (fFalse);\n    }\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Handles enabling of all cut, copy, paste commands.\n *\n * Parameters:\n *\tpcmd - The command to process.\n *\n * Returns:\n * \tfTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool TBXG::FEnableDdgCmd(PCMD pcmd, ulong *pgrfeds)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    AssertVarMem(pgrfeds);\n\n    PTBOX ptbox = (PTBOX)_pdocb;\n    AssertPo(ptbox, 0);\n\n    *pgrfeds = fedsEnable;\n    switch (pcmd->cid)\n    {\n    case cidCutTool:\n    case cidCopyTool:\n        break;\n\n    case cidPaste:\n    case cidPasteTool:\n        //\n        // First check if the clipboard contains any text\n        // which we might need to paste *into* the text box.\n        //\n        if (ptbox->FSelected() && !vpclip->FDocIsClip(pvNil) && _FPaste(vpclip, fFalse, cidPaste))\n        {\n            *pgrfeds &= fedsEnable;\n            return (fTrue);\n        }\n\n        //\n        // Now check if clipboard is a text box.\n        //\n        if (!vpclip->FGetFormat(kclsTCLP))\n        {\n            *pgrfeds = fedsDisable;\n        }\n        break;\n\n    default:\n        return (TBXG_PAR::FEnableDdgCmd(pcmd, pgrfeds));\n    }\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Actually does cut, copy or paste command.\n *\n * Parameters:\n *\ttool - The tool to use.\n *\n * Returns:\n * \tfTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool TBXG::_FDoClip(long tool)\n{\n    AssertThis(0);\n\n    PTBOX ptbox = (PTBOX)_pdocb;\n    PTBOX ptboxDup;\n    PTCLP ptclp;\n    CMD cmd;\n\n    AssertPo(ptbox, 0);\n\n    switch (tool)\n    {\n    case toolCutText:\n    case toolCopyText:\n\n        if (FTextSelected())\n        {\n            ClearPb(&cmd, size(CMD));\n            cmd.cid = (tool == toolCutText) ? cidCut : cidCopy;\n            ptbox->Pscen()->Pmvie()->Pmcc()->PlayUISound(tool);\n            if (!TBXG_PAR::FCmdClip(&cmd))\n            {\n                return (fFalse);\n            }\n            return (fTrue);\n        }\n        return (fTrue);\n\n    case toolPasteText:\n\n        if (!vpclip->FGetFormat(kclsACLP) && !vpclip->FGetFormat(kclsTCLP))\n        {\n            ClearPb(&cmd, size(CMD));\n            cmd.cid = cidPaste;\n            ptbox->Pscen()->Pmvie()->Pmcc()->PlayUISound(tool);\n            return (TBXG_PAR::FCmdClip(&cmd));\n        }\n        else\n        {\n            PushErc(ercSocCannotPasteThatHere);\n        }\n        return (fTrue);\n\n    case toolCutObject:\n    case toolCopyObject:\n\n        //\n        // Copy the text box\n        //\n        if (!ptbox->FDup(&ptboxDup))\n        {\n            return (fFalse);\n        }\n        AssertPo(ptboxDup, 0);\n\n        //\n        // Create the clip board object\n        //\n        ptclp = TCLP::PtclpNew(ptboxDup);\n        AssertNilOrPo(ptclp, 0);\n        if (ptclp == pvNil)\n        {\n            ReleasePpo(&ptboxDup);\n            return (fFalse);\n        }\n\n        //\n        // Hide the current tbox\n        //\n        if (tool == toolCutObject)\n        {\n            if (!ptbox->Pscen()->Pmvie()->FHideTbox())\n            {\n                ReleasePpo(&ptclp);\n                ReleasePpo(&ptboxDup);\n                return (fFalse);\n            }\n        }\n\n        vpclip->Set(ptclp);\n        ReleasePpo(&ptclp);\n        ptbox->Pscen()->Pmvie()->Pmcc()->PlayUISound(tool);\n        break;\n\n    case toolPasteObject:\n\n        if (vpclip->FGetFormat(kclsTCLP, (PDOCB *)&ptclp))\n        {\n            AssertPo(ptclp, 0);\n            bool fRet;\n\n            fRet = ptbox->Pscen() != pvNil && ptclp->FPaste(ptbox->Pscen());\n            ReleasePpo(&ptclp);\n            ptbox->Pscen()->Pmvie()->Pmcc()->PlayUISound(tool);\n            return fRet;\n        }\n        else\n        {\n            PushErc(ercSocNothingToPaste);\n        }\n        break;\n\n    default:\n        Bug(\"Unknown tool type\");\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Decides if a text box needs to scroll right now.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if yes, else fFalse.\n *\n ****************************************************/\nbool TBXG::FNeedToScroll()\n{\n    AssertThis(0);\n\n    RC rc;\n    long dyp;\n\n    //\n    // Get the height of the remaining text\n    //\n    GetNaturalSize(pvNil, &dyp);\n    dyp -= _dypDisp;\n    GetRc(&rc, cooLocal);\n\n    //\n    // Check vs the height of the box.\n    //\n    return dyp > rc.Dyp();\n}\n\n/****************************************************\n *\n * Scrolls up by one pixel, or to the beginning of the text.\n *\n * Parameters:\n *\tscaVert - How to scroll vertically, scaNil == go to top,\n *\t\tanything else scrolls down by 1 pixel.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBXG::Scroll(long scaVert)\n{\n    AssertThis(0);\n\n    RC rcAbs, rcRel;\n\n    if (scaVert == scaNil)\n    {\n        _Scroll(scaToVal, scaToVal, 0, 0);\n    }\n    else\n    {\n        GetPos(&rcAbs, &rcRel);\n        rcAbs.ypTop -= kdypScroll;\n        SetPos(&rcAbs, &rcRel);\n    }\n}\n\n/****************************************************\n *\n * Tells if any text is selected or not.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nbool TBXG::FTextSelected(void)\n{\n    AssertThis(0);\n    return (_cpAnchor != _cpOther);\n}\n\n/****************************************************\n *\n * Get the character properties for displaying the given cp.\n *\n * Parameters:\n *\tcp - Character position.\n *\tpchp - Destination chp.\n *\tpcpMin - Starting character position.\n *\tpcpLim - Ending character position.\n *\n * Returns:\n * \tNone.\n *\n ****************************************************/\nvoid TBXG::_FetchChp(long cp, PCHP pchp, long *pcpMin, long *pcpLim)\n{\n    TBXG_PAR::_FetchChp(cp, pchp, pcpMin, pcpLim);\n\n    if (pchp->acrFore == kacrBlack)\n    {\n        pchp->acrFore = kacrYellow;\n    }\n}\n\n#ifdef DEBUG\n\n/****************************************************\n * Mark memory used by the TBXG\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBXG::MarkMem(void)\n{\n    AssertThis(0);\n    TBXG_PAR::MarkMem();\n    MarkMemObj(_ptbxb);\n}\n\n/***************************************************************************\n *\n * Assert the validity of the TBXG.\n *\n * Parameters:\n *\tgrf - Bit field of options\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid TBXG::AssertValid(ulong grf)\n{\n    TBXG_PAR::AssertValid(fobjAllocated);\n    AssertPo(_ptbxb, 0);\n}\n\n#endif // DEBUG\n\n//\n//\n// BEGIN TBOX\n//\n//\n\n#define kbomTboxh 0x5FFFC000\n\n//\n// header information for saving text boxes to a file\n//\nstruct TBOXH\n{\n    short bo;\n    short osk;\n    long nfrmFirst;\n    long nfrmMax;\n    long xpLeft;\n    long xpRight;\n    long ypTop;\n    long ypBottom;\n    CHID chid;\n    bool fStory;\n};\n\n/****************************************************\n *\n * Creates a textbox\n *\n * Parameters:\n *\tpscen - Scene which owns this textbox.\n *\tprcRel - The bounding rectangle of the DDG for the text box within the\n *\t\tthe owning MVU.\n *\tfStory - Is this a story text box?\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nPTBOX TBOX::PtboxNew(PSCEN pscen, RC *prcRel, bool fStory)\n{\n    AssertNilOrPo(pscen, 0);\n    AssertPvCb(prcRel, size(RC));\n\n    PTBOX ptbox;\n\n    ptbox = NewObj TBOX;\n    if (ptbox == pvNil)\n    {\n        return (pvNil);\n    }\n\n    if (!ptbox->_FInit(pvNil))\n    {\n        ReleasePpo(&ptbox);\n        return (pvNil);\n    }\n\n    if (prcRel != pvNil)\n    {\n        ptbox->_rc = *prcRel;\n        ptbox->_dxpDef = prcRel->xpRight - prcRel->xpLeft - 2 * kdzpBorderTbox;\n    }\n\n    ptbox->_pscen = pscen;\n    ptbox->_fStory = fStory;\n    ptbox->SetAcrBack(kacrClear, fdocNil);\n    Assert(pscen == pvNil || pscen->Pmvie()->CundbMax() == 1, \"TUND assumes there is one level of undo!\");\n    ptbox->SetCundbMax(1);\n\n    return ptbox;\n}\n\n/****************************************************\n *\n * Sets the dirty flag on the movie.\n *\n * Parameters:\n *\tfDirty - To dirty, or not to dirty, that is the question.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBOX::SetDirty(bool fDirty)\n{\n    AssertThis(0);\n\n    if (_pscen != pvNil)\n    {\n        _pscen->MarkDirty(fDirty);\n    }\n}\n\n/****************************************************\n *\n * Reads a textbox\n *\n * Parameters:\n *\tpcfl - Chunky file to read from.\n *\tcno - The chunk number to read.\n *\tpscen - Scene which owns this textbox.\n *\n * Returns:\n *  Pointer to a new tbox, else pvNil.\n *\n ****************************************************/\nPTBOX TBOX::PtboxRead(PCRF pcrf, CNO cno, PSCEN pscen)\n{\n    AssertPo(pcrf, 0);\n    AssertNilOrPo(pscen, 0);\n\n    PTBOX ptbox;\n    BLCK blck;\n    TBOXH tboxh;\n    KID kid;\n    PCFL pcfl = pcrf->Pcfl();\n\n    //\n    // Find the chunk and read in the header.\n    //\n    if (!pcfl->FFind(kctgTbox, cno, &blck) || !blck.FUnpackData() || (blck.Cb() != size(TBOXH)) ||\n        !blck.FReadRgb(&tboxh, size(TBOXH), 0))\n    {\n        PushErc(ercSocBadFile);\n        return (pvNil);\n    }\n\n    //\n    // Check header for byte swapping\n    //\n    if (tboxh.bo == kboOther)\n    {\n        SwapBytesBom(&tboxh, kbomTboxh);\n    }\n    else\n    {\n        Assert(tboxh.bo == kboCur, \"Bad Chunky file\");\n    }\n\n    if (!pcfl->FGetKidChidCtg(kctgTbox, cno, tboxh.chid, kctgRichText, &kid))\n    {\n        return (pvNil);\n    }\n\n    ptbox = NewObj TBOX;\n    if (ptbox == pvNil)\n    {\n        return (pvNil);\n    }\n\n    if (!ptbox->_FReadChunk(pcfl, kid.cki.ctg, kid.cki.cno, fTrue))\n    {\n        ReleasePpo(&ptbox);\n        return (pvNil);\n    }\n\n    ptbox->_pscen = pscen;\n    ptbox->_fStory = tboxh.fStory;\n    ptbox->_nfrmFirst = tboxh.nfrmFirst;\n    ptbox->_nfrmCur = tboxh.nfrmFirst - 1;\n    ptbox->_nfrmMax = tboxh.nfrmMax;\n    ptbox->_rc.Set(tboxh.xpLeft, tboxh.ypTop, tboxh.xpRight, tboxh.ypBottom);\n    AssertPo(ptbox, 0);\n\n    return ptbox;\n}\n\n/****************************************************\n *\n * Writes the text box to a specifc chunk number\n *\n * Parameters:\n *\tpcfl - The chunky file to write to.\n *\tcno - The chunk number to write to.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TBOX::FWrite(PCFL pcfl, CNO cno)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n\n    TBOXH tboxh;\n    CKI cki;\n\n    tboxh.bo = kboCur;\n    tboxh.osk = koskCur;\n    tboxh.nfrmFirst = _nfrmFirst;\n    tboxh.nfrmMax = _nfrmMax;\n    tboxh.xpLeft = _rc.xpLeft;\n    tboxh.xpRight = _rc.xpRight;\n    tboxh.ypTop = _rc.ypTop;\n    tboxh.ypBottom = _rc.ypBottom;\n    tboxh.fStory = _fStory;\n    tboxh.chid = 0;\n\n    if (!FSaveToChunk(pcfl, &cki))\n    {\n        return (fFalse);\n    }\n\n    Assert(cki.ctg == kctgRichText, \"bad ctg\");\n\n    if (!pcfl->FAdoptChild(kctgTbox, cno, cki.ctg, cki.cno, 0))\n    {\n        pcfl->Delete(cki.ctg, cki.cno);\n        return (fFalse);\n    }\n\n    if (!pcfl->FPutPv((void *)&tboxh, size(TBOXH), kctgTbox, cno))\n    {\n        pcfl->DeleteChild(kctgTbox, cno, cki.ctg, cki.cno, 0);\n        return (fFalse);\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Sets the owning scene of the textbox.\n *\n * Parameters:\n *\tpscen - The owning scene of the textbox.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBOX::SetScen(PSCEN pscen)\n{\n    AssertThis(0);\n    AssertPo(pscen, 0);\n\n    _nfrmCur = pscen->Nfrm();\n    _nfrmFirst = pscen->Nfrm();\n    _nfrmMax = klwMax;\n    _pscen = pscen;\n}\n\n/****************************************************\n *\n * Sets the type of the textbox.\n *\n * Parameters:\n *\tfStory - fTrue if it is to become a story textbox,\n *\t\telse fFalse.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBOX::SetTypeCore(bool fStory)\n{\n    AssertThis(0);\n\n    PTBXG ptbxg;\n\n    _fStory = fStory;\n    ptbxg = (PTBXG)PddgGet(0);\n    AssertNilOrPo(ptbxg, 0);\n\n    if (ptbxg == pvNil)\n    {\n        return;\n    }\n\n    ptbxg->Ptbxb()->InvalRc(pvNil);\n}\n\n/****************************************************\n *\n * Attaches the textbox to the mouse.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBOX::AttachToMouse(void)\n{\n    AssertThis(0);\n\n    PTBXG ptbxg;\n\n    ptbxg = (PTBXG)PddgGet(0);\n    AssertNilOrPo(ptbxg, 0);\n\n    if (ptbxg == pvNil)\n    {\n        return;\n    }\n\n    ptbxg->Ptbxb()->AttachToMouse();\n}\n\n/****************************************************\n *\n * Sets the type of the textbox and creates an undo object\n *\n * Parameters:\n *\tfStory - fTrue if it is to become a story textbox,\n *\t\telse fFalse.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TBOX::FSetType(bool fStory)\n{\n    AssertThis(0);\n\n    PTUNT ptunt;\n\n    if (_fStory == fStory)\n    {\n        return (fTrue);\n    }\n\n    ptunt = TUNT::PtuntNew();\n\n    if (ptunt == pvNil)\n    {\n        return (fFalse);\n    }\n\n    ptunt->SetType(!fStory);\n    ptunt->SetItbox(Itbox());\n\n    if (!Pscen()->Pmvie()->FAddUndo(ptunt))\n    {\n        ReleasePpo(&ptunt);\n        return (fFalse);\n    }\n\n    ReleasePpo(&ptunt);\n    SetTypeCore(fStory);\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Sets the bounding rectangle of the textbox.\n *\n * Parameters:\n *\tprc - The new rectangle\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBOX::SetRc(RC *prc)\n{\n    AssertThis(0);\n    AssertPvCb(prc, size(RC));\n\n    if (_rc != *prc)\n    {\n        if (Pscen() != pvNil)\n        {\n            Pscen()->MarkDirty();\n        }\n\n        _rc = *prc;\n    }\n}\n\n/****************************************************\n *\n * Returns if the text box is currently visible or not.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if visible, else fFalse.\n *\n ****************************************************/\nbool TBOX::FIsVisible(void)\n{\n    AssertThis(0);\n    return ((_nfrmCur >= _nfrmFirst) && (_nfrmCur < _nfrmMax));\n}\n\n/***************************************************************************\n *\n * Returns the starting and ending frames the text box appears in.\n *\n * Parameters:\n *  pnfrmStart - Pointer to storage for first frame.\n *  pnfrmLast - Pointer to storage for final frame.\n *\n * Returns:\n *  fTrue if the lifetime is valid, else fFalse.\n *\n **************************************************************************/\nbool TBOX::FGetLifetime(long *pnfrmStart, long *pnfrmLast)\n{\n    AssertThis(0);\n    AssertVarMem(pnfrmStart);\n    AssertVarMem(pnfrmLast);\n\n    if (_nfrmMax < _nfrmFirst)\n    {\n        return (fFalse);\n    }\n\n    *pnfrmStart = _nfrmFirst;\n\n    if (_nfrmMax == klwMax)\n    {\n        *pnfrmLast = Pscen()->NfrmLast();\n    }\n    else\n    {\n        *pnfrmLast = _nfrmMax - 1;\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Selects/Deselects a text box.\n *\n * Parameters:\n *\tfSel - fTrue if the text box is to be selected, else\n *\t\tfFalse.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBOX::Select(bool fSel)\n{\n    AssertThis(0);\n\n    PTBXG ptbxg;\n\n    if (fSel == _fSel)\n    {\n        return;\n    }\n\n    _fSel = fSel;\n\n    if (Cddg() > 0)\n    {\n        Assert(Cddg() == 1, \"Multiple views on text boxes not allowed\");\n        ptbxg = (PTBXG)PddgGet(0);\n        AssertPo(ptbxg, 0);\n        ptbxg->Ptbxb()->Activate(fSel);\n        ptbxg->Ptbxb()->InvalRc(pvNil);\n    }\n}\n\n/****************************************************\n *\n * Makes a text box goto a certain frame.\n *\n * Parameters:\n *\tnfrm - The destination frame number.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TBOX::FGotoFrame(long nfrm)\n{\n    AssertThis(0);\n\n    GCB gcb;\n    PTBXG ptbxg;\n    PTBXB ptbxb;\n\n    if (Cddg() == 0)\n    {\n        ptbxg = pvNil;\n    }\n    else\n    {\n        ptbxg = (PTBXG)PddgGet(0);\n    }\n    AssertNilOrPo(ptbxg, 0);\n\n    _nfrmCur = nfrm;\n\n    if (FIsVisible())\n    {\n\n        if (ptbxg == pvNil)\n        {\n\n            //\n            // Create a GOB for this text box\n            //\n            gcb.Set(khidDdg, Pscen()->Pmvie()->PddgActive(), fgobNil, kginMark, &_rc, pvNil);\n            ptbxb = TBXB::PtbxbNew(this, &gcb);\n            if (ptbxb == pvNil)\n            {\n                return (fFalse);\n            }\n\n            if (Pscen()->Pmvie()->FPlaying())\n            {\n                ptbxb->Activate(fFalse);\n            }\n        }\n    }\n\n    if (!FIsVisible() && (ptbxg != pvNil))\n    {\n        //\n        // Release the GOB for the text box.\n        //\n        ptbxb = ptbxg->Ptbxb();\n        ReleasePpo(&ptbxb);\n    }\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Makes a text box visible at a certain frame.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TBOX::FShowCore(void)\n{\n    AssertThis(0);\n\n    Pscen()->MarkDirty();\n    if (_nfrmMax < _nfrmCur)\n    {\n        Assert(_nfrmCur < klwMax, \"Current frame too big\");\n        _nfrmMax = _nfrmCur + 1;\n    }\n    else if (_nfrmCur < _nfrmFirst)\n    {\n        _nfrmFirst = _nfrmCur;\n    }\n\n    return (FGotoFrame(_nfrmCur));\n}\n\n/****************************************************\n *\n * Makes a text box visible at a certain frame and an undo.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TBOX::FShow(void)\n{\n    AssertThis(0);\n\n    PTUNH ptunh;\n\n    ptunh = TUNH::PtunhNew();\n    if (ptunh == pvNil)\n    {\n        return (fFalse);\n    }\n\n    ptunh->SetFrmLast(_nfrmMax);\n    ptunh->SetFrmFirst(_nfrmFirst);\n    ptunh->SetItbox(Itbox());\n\n    if (!Pscen()->Pmvie()->FAddUndo(ptunh))\n    {\n        ReleasePpo(&ptunh);\n        return (fFalse);\n    }\n\n    ReleasePpo(&ptunh);\n\n    if (FShowCore())\n    {\n        Pscen()->Pmvie()->ClearUndo();\n        return (fTrue);\n    }\n\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Removes a text box at a certain frame.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nvoid TBOX::HideCore(void)\n{\n    AssertThis(0);\n\n    _nfrmMax = _nfrmCur;\n    Pscen()->MarkDirty();\n    AssertDo(FGotoFrame(_nfrmCur), \"Could not goto frame\");\n\n    if (Pscen()->PtboxSelected() == this)\n    {\n        Pscen()->SelectTbox(pvNil);\n    }\n}\n\n/****************************************************\n *\n * Removes a text box at a certain frame and has an undo.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TBOX::FHide(void)\n{\n    AssertThis(0);\n\n    PTUNH ptunh;\n\n    if (_nfrmCur <= _nfrmFirst)\n    {\n        return (Pscen()->FRemTbox(this));\n    }\n\n    ptunh = TUNH::PtunhNew();\n    if (ptunh == pvNil)\n    {\n        return (fFalse);\n    }\n\n    ptunh->SetFrmLast(_nfrmMax);\n    ptunh->SetFrmFirst(_nfrmFirst);\n    ptunh->SetItbox(Itbox());\n\n    if (!Pscen()->Pmvie()->FAddUndo(ptunh))\n    {\n        ReleasePpo(&ptunh);\n        return (fFalse);\n    }\n\n    ReleasePpo(&ptunh);\n\n    HideCore();\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Copies an entire text box.\n *\n * Parameters:\n *\tpptbox - Place to store the new text box.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TBOX::FDup(PTBOX *pptbox)\n{\n    AssertThis(0);\n    *pptbox = TBOX::PtboxNew(pvNil, &_rc);\n    AssertNilOrPo(*pptbox, 0);\n\n    if (*pptbox == pvNil)\n    {\n        return (fFalse);\n    }\n\n    (*pptbox)->SuspendUndo();\n    if (!(*pptbox)->FReplaceTxrd(this, 0, CpMac(), 0, (*pptbox)->CpMac()))\n    {\n        ReleasePpo(pptbox);\n        return (fFalse);\n    }\n    (*pptbox)->_onnDef = _onnDef;\n    (*pptbox)->_dypFontDef = _dypFontDef;\n    (*pptbox)->ResumeUndo();\n    (*pptbox)->SetAcrBack(AcrBack(), fdocNil);\n    (*pptbox)->SetTypeCore(FStory());\n\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Sets the background color of the text box.\n *\n * Parameters:\n *\tacr - The color for the background.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TBOX::FSetAcrBack(ACR acr)\n{\n    AssertThis(0);\n\n    PTUNC ptunc;\n\n    ptunc = TUNC::PtuncNew();\n\n    if (ptunc == pvNil)\n    {\n        return (fFalse);\n    }\n\n    AssertPo(ptunc, 0);\n\n    ptunc->SetItbox(Itbox());\n    ptunc->SetAcrBack(AcrBack());\n\n    if (!Pscen()->Pmvie()->FAddUndo(ptunc))\n    {\n        ReleasePpo(&ptunc);\n        return (fFalse);\n    }\n\n    ReleasePpo(&ptunc);\n\n    SetAcrBack(acr);\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Sets the color for text in the text box.\n *\n * Parameters:\n *\tacr - The color for the text.\n *\n * Returns:\n *  fTrue if possible, else fFalse.\n *\n ****************************************************/\nbool TBOX::FSetAcrText(ACR acr)\n{\n    AssertThis(0);\n\n    PTBXG ptbxg;\n    CHP chpNew, chpDiff;\n\n    ptbxg = (PTBXG)PddgGet(0);\n    AssertNilOrPo(ptbxg, 0);\n\n    if (ptbxg == pvNil)\n    {\n        return (fFalse);\n    }\n\n    chpNew.Clear();\n    chpDiff.Clear();\n\n    chpNew.acrFore = acr;\n    return (ptbxg->FApplyChp(&chpNew, &chpDiff));\n}\n\n/******************************************************************************\n    FSetDypFontText\n        Sets the font size for the current selection of the textbox\n\n    Arguments:\n        long dypFont  --  The new font size\n\n    Returns:  fTrue if it succeeds\n\n************************************************************ PETED ***********/\nbool TBOX::FSetDypFontText(long dypFont)\n{\n    AssertThis(0);\n\n    PTBXG ptbxg;\n    CHP chpNew, chpDiff;\n\n    ptbxg = (PTBXG)PddgGet(0);\n    if (ptbxg == pvNil)\n        return fFalse;\n    AssertPo(ptbxg, 0);\n    Assert(ptbxg->FIs(kclsTBXG), \"DDG isn't a TBXG\");\n\n    chpNew.Clear();\n    chpDiff.Clear();\n    chpNew.dypFont = dypFont;\n    chpDiff.dypFont = ~dypFont;\n    return ptbxg->FApplyChp(&chpNew, &chpDiff);\n}\n\n/******************************************************************************\n    FSetStyleText\n        Sets the font style for the current selection of the textbox\n\n    Arguments:\n        long grfont  --  The new font style\n\n    Returns:  fTrue if it succeeds\n\n************************************************************ PETED ***********/\nbool TBOX::FSetStyleText(ulong grfont)\n{\n    AssertThis(0);\n\n    PTBXG ptbxg;\n    CHP chpNew, chpDiff;\n\n    ptbxg = (PTBXG)PddgGet(0);\n    if (ptbxg == pvNil)\n        return fFalse;\n    AssertPo(ptbxg, 0);\n    Assert(ptbxg->FIs(kclsTBXG), \"DDG isn't a TBXG\");\n\n    chpNew.Clear();\n    chpDiff.Clear();\n    chpNew.grfont = grfont;\n    chpDiff.grfont = ~grfont;\n    return ptbxg->FApplyChp(&chpNew, &chpDiff);\n}\n\n/******************************************************************************\n    FSetOnnText\n        Sets the font face for the current selection of the textbox\n\n    Arguments:\n        long onn  --  the new font face\n\n    Returns:  fTrue if it succeeds\n\n************************************************************ PETED ***********/\nbool TBOX::FSetOnnText(long onn)\n{\n    AssertThis(0);\n\n    PTBXG ptbxg;\n    CHP chpNew, chpDiff;\n\n    ptbxg = (PTBXG)PddgGet(0);\n    if (ptbxg == pvNil)\n        return fFalse;\n    AssertPo(ptbxg, 0);\n    Assert(ptbxg->FIs(kclsTBXG), \"DDG isn't a TBXG\");\n\n    chpNew.Clear();\n    chpDiff.Clear();\n    chpNew.onn = onn;\n    chpDiff.onn = ~onn;\n    return ptbxg->FApplyChp(&chpNew, &chpDiff);\n}\n\n/******************************************************************************\n    FetchChpSel\n        Gets the character formatting for the current selection of the active\n        DDG for this TBOX.  Returns the formatting of the first character of\n        the selection in the CHP, and sets the corresponding bit in *pgrfchp\n        if that particular formatting holds for the entire selection.\n\n    Arguments:\n        PCHP pchp       --  the CHP to take the formatting info\n        ulong *pgrfchp  --  bitfield that indicates which formatting attributes\n            hold for the entire selection.\n************************************************************ PETED ***********/\nvoid TBOX::FetchChpSel(PCHP pchp, ulong *pgrfchp)\n{\n    AssertVarMem(pchp);\n    AssertVarMem(pgrfchp);\n\n    long cpMin, cpMac;\n    long cpMinChp, cpMacChp;\n    CHP chp;\n    PTXTG ptxtg;\n\n    ptxtg = (PTXTG)PddgActive();\n    if (ptxtg == pvNil)\n        goto LFail;\n    if (!ptxtg->FIs(kclsTXTG))\n    {\n        Bug(\"DDG isn't a TXTG\");\n    LFail:\n        *pgrfchp = 0;\n        return;\n    }\n    ptxtg->GetSel(&cpMin, &cpMac);\n    if (cpMin > cpMac)\n        SwapVars(&cpMin, &cpMac);\n\n    *pgrfchp = kgrfchpAll;\n    FetchChp(cpMin, pchp, &cpMinChp, &cpMacChp);\n    while (cpMacChp < cpMac && *pgrfchp != grfchpNil)\n    {\n        FetchChp(cpMacChp, &chp, &cpMinChp, &cpMacChp);\n        if ((*pgrfchp & kfchpOnn) && pchp->onn != chp.onn)\n            *pgrfchp ^= kfchpOnn;\n        if ((*pgrfchp & kfchpDypFont) && pchp->dypFont != chp.dypFont)\n            *pgrfchp ^= kfchpDypFont;\n        if ((*pgrfchp & kfchpBold) && ((pchp->grfont ^ chp.grfont) & fontBold))\n        {\n            *pgrfchp ^= kfchpBold;\n        }\n        if ((*pgrfchp & kfchpItalic) && ((pchp->grfont ^ chp.grfont) & fontItalic))\n        {\n            *pgrfchp ^= kfchpItalic;\n        }\n    }\n}\n\n/****************************************************\n *\n * Decides if a text box needs to scroll right now.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if yes, else fFalse.\n *\n ****************************************************/\nbool TBOX::FNeedToScroll(void)\n{\n    AssertThis(0);\n\n    PTBXG ptbxg;\n\n    if ((_nfrmCur == _nfrmFirst) && !_fStory)\n    {\n        ptbxg = (PTBXG)PddgGet(0);\n        AssertPo(ptbxg, 0);\n        return (ptbxg->FNeedToScroll());\n    }\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Scrolls up by one line.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBOX::Scroll(void)\n{\n    AssertThis(0);\n\n    PTBXG ptbxg;\n\n    ptbxg = (PTBXG)PddgGet(0);\n    AssertPo(ptbxg, 0);\n    ptbxg->Scroll(scaLineDown);\n}\n\n/****************************************************\n *\n * Tells if any text is selected or not.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nbool TBOX::FTextSelected(void)\n{\n    AssertThis(0);\n\n    PTBXG ptbxg;\n\n    if (!FIsVisible())\n    {\n        return (fFalse);\n    }\n\n    ptbxg = (PTBXG)PddgGet(0);\n    AssertPo(ptbxg, 0);\n    return (ptbxg->FTextSelected());\n}\n\n/****************************************************\n *\n * Sets the starting frame number for a text box.\n *\n * Parameters:\n *\tnfrm - The new starting frame number.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBOX::SetStartFrame(long nfrm)\n{\n    AssertThis(0);\n    _nfrmFirst = nfrm;\n}\n\n/****************************************************\n *\n * Adds an undo object to the movie.\n *\n * Parameters:\n *\tpundb - The undo object to do.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TBOX::FAddUndo(PUNDB pundb)\n{\n    AssertThis(0);\n    AssertPo(Pscen(), 0);\n\n    PTUND ptund;\n\n    ptund = TUND::PtundNew(pundb);\n\n    if (ptund == pvNil)\n    {\n        return (fFalse);\n    }\n\n    AssertPo(ptund, 0);\n\n    ptund->SetItbox(Itbox());\n\n    if (!Pscen()->Pmvie()->FAddUndo(ptund))\n    {\n        Pscen()->Pmvie()->ClearUndo();\n        ReleasePpo(&ptund);\n        return (fFalse);\n    }\n\n    if (!TBOX_PAR::FAddUndo(pundb))\n    {\n        ReleasePpo(&ptund);\n        return (fFalse);\n    }\n\n    ReleasePpo(&ptund);\n    return (fTrue);\n}\n\n/****************************************************\n *\n * Clears the undo buffer.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBOX::ClearUndo()\n{\n    AssertThis(0);\n    AssertPo(Pscen(), 0);\n    TBOX_PAR::ClearUndo();\n    Pscen()->Pmvie()->ClearUndo();\n}\n\n/****************************************************\n *\n * Ensure that the DDG for this tbox is the proper size,\n * used for cleaning after a playback.\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBOX::CleanDdg(void)\n{\n    AssertThis(0);\n\n    PDDG pddg;\n    RC rcAbs, rcRel;\n\n    pddg = PddgGet(0);\n    if (pddg == pvNil)\n    {\n        return;\n    }\n\n    AssertPo(pddg, 0);\n\n    pddg->GetPos(&rcAbs, &rcRel);\n    rcAbs.Set(kdzpBorderTbox, kdzpBorderTbox, -kdzpBorderTbox, -kdzpBorderTbox);\n    pddg->SetPos(&rcAbs, &rcRel);\n}\n\n/****************************************************\n *\n * Get the Itbox number for this tbox.\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  Itbox.\n *\n ****************************************************/\nlong TBOX::Itbox(void)\n{\n    AssertThis(0);\n\n    long itbox;\n\n    for (itbox = 0;; itbox++)\n    {\n        if (this == Pscen()->PtboxFromItbox(itbox))\n        {\n            break;\n        }\n    }\n\n    return (itbox);\n}\n\n#ifdef DEBUG\n\n/****************************************************\n * Mark memory used by the TBOX\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TBOX::MarkMem(void)\n{\n    AssertThis(0);\n    TBOX_PAR::MarkMem();\n}\n\n/***************************************************************************\n *\n * Assert the validity of the TBOX.\n *\n * Parameters:\n *\tgrf - Bit field of options\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid TBOX::AssertValid(ulong grf)\n{\n    TBOX_PAR::AssertValid(fobjAllocated);\n    if (PddgGet(0) != pvNil)\n    {\n        AssertPo(PddgGet(0), 0);\n    }\n}\n\n#endif // DEBUG\n\n//\n//\n//\n// BEGIN UNDO STUFF\n//\n//\n//\n\n/****************************************************\n *\n * Public constructor for textbox undo objects.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie undo.\n *\n ****************************************************/\nPTUNT TUNT::PtuntNew()\n{\n    PTUNT ptunt;\n    ptunt = NewObj TUNT();\n    return (ptunt);\n}\n\n/****************************************************\n *\n * Destructor for text box undo objects\n *\n ****************************************************/\nTUNT::~TUNT(void)\n{\n}\n\n/****************************************************\n *\n * Does a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TUNT::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n    AssertPo(pdocb, 0);\n\n    PTBOX ptbox;\n    bool fStory;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        goto LFail;\n    }\n\n    if (!_pmvie->Pscen()->FGotoFrm(_nfrm))\n    {\n        goto LFail;\n    }\n\n    ptbox = _pmvie->Pscen()->PtboxFromItbox(_itbox);\n    AssertNilOrPo(ptbox, 0);\n\n    if (ptbox == pvNil)\n    {\n        goto LFail;\n    }\n\n    fStory = ptbox->FStory();\n    ptbox->SetTypeCore(_fStory);\n    _fStory = fStory;\n    _pmvie->Pscen()->SelectTbox(ptbox);\n    _pmvie->Pmsq()->FlushMsq();\n    return (fTrue);\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo();\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Undoes a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TUNT::FUndo(PDOCB pdocb)\n{\n    AssertThis(0);\n    AssertPo(pdocb, 0);\n\n    return (FDo(pdocb));\n}\n\n#ifdef DEBUG\n/****************************************************\n * Mark memory used by the TUNT\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TUNT::MarkMem(void)\n{\n    AssertThis(0);\n    TUNT_PAR::MarkMem();\n}\n\n/***************************************************************************\n    Assert the validity of the TUNT.\n***************************************************************************/\nvoid TUNT::AssertValid(ulong grf)\n{\n    TUNT_PAR::AssertValid(fobjAllocated);\n}\n#endif\n\n/****************************************************\n *\n * Public constructor for textbox undo objects.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie undo.\n *\n ****************************************************/\nPTUNS TUNS::PtunsNew()\n{\n    PTUNS ptuns;\n    ptuns = NewObj TUNS();\n    return (ptuns);\n}\n\n/****************************************************\n *\n * Destructor for text box undo objects\n *\n ****************************************************/\nTUNS::~TUNS(void)\n{\n}\n\n/****************************************************\n *\n * Does a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TUNS::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n    AssertPo(pdocb, 0);\n\n    PTBOX ptbox;\n    PTBXG ptbxg;\n    RC rc;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        goto LFail;\n    }\n\n    if (!_pmvie->Pscen()->FGotoFrm(_nfrm))\n    {\n        goto LFail;\n    }\n\n    ptbox = _pmvie->Pscen()->PtboxFromItbox(_itbox);\n    AssertNilOrPo(ptbox, 0);\n\n    if (ptbox == pvNil)\n    {\n        goto LFail;\n    }\n\n    ptbox->GetRc(&rc);\n    ptbox->SetRc(&_rc);\n\n    ptbxg = (PTBXG)ptbox->PddgGet(0);\n    AssertPo(ptbxg, 0);\n    ptbxg->Ptbxb()->SetPos(&_rc);\n    _pmvie->Pscen()->SelectTbox(ptbox);\n    _rc = rc;\n    _pmvie->Pmsq()->FlushMsq();\n    return (fTrue);\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo();\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Undoes a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TUNS::FUndo(PDOCB pdocb)\n{\n    AssertThis(0);\n    AssertPo(pdocb, 0);\n\n    return (FDo(pdocb));\n}\n\n#ifdef DEBUG\n/****************************************************\n * Mark memory used by the TUNS\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TUNS::MarkMem(void)\n{\n    AssertThis(0);\n    TUNS_PAR::MarkMem();\n}\n\n/***************************************************************************\n    Assert the validity of the TUNS.\n***************************************************************************/\nvoid TUNS::AssertValid(ulong grf)\n{\n    TUNS_PAR::AssertValid(fobjAllocated);\n}\n#endif\n\n/****************************************************\n *\n * Public constructor for textbox undo objects.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie undo.\n *\n ****************************************************/\nPTUNH TUNH::PtunhNew()\n{\n    PTUNH ptunh;\n    ptunh = NewObj TUNH();\n    return (ptunh);\n}\n\n/****************************************************\n *\n * Destructor for text box undo objects\n *\n ****************************************************/\nTUNH::~TUNH(void)\n{\n    AssertBaseThis(0);\n}\n\n/****************************************************\n *\n * Does a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TUNH::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n    AssertPo(pdocb, 0);\n\n    PTBOX ptbox;\n    long nfrmFirst, nfrmMax;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        goto LFail;\n    }\n\n    if (!_pmvie->Pscen()->FGotoFrm(_nfrm))\n    {\n        goto LFail;\n    }\n\n    ptbox = _pmvie->Pscen()->PtboxFromItbox(_itbox);\n    AssertNilOrPo(ptbox, 0);\n\n    if (ptbox == pvNil)\n    {\n        goto LFail;\n    }\n\n    nfrmFirst = ptbox->NfrmFirst();\n    nfrmMax = ptbox->nfrmMax();\n\n    if (!ptbox->FGotoFrame(_nfrmFirst))\n    {\n        goto LFail;\n    }\n\n    if (!ptbox->FShowCore())\n    {\n        goto LFail;\n    }\n\n    if (!ptbox->FGotoFrame(_nfrmMax))\n    {\n        goto LFail;\n    }\n\n    ptbox->HideCore();\n    ptbox->FGotoFrame(_nfrm);\n    _pmvie->Pscen()->SelectTbox(ptbox);\n\n    _nfrmFirst = nfrmFirst;\n    _nfrmMax = nfrmMax;\n    _pmvie->Pmsq()->FlushMsq();\n    return (fTrue);\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo();\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Undoes a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TUNH::FUndo(PDOCB pdocb)\n{\n    AssertThis(0);\n    AssertPo(pdocb, 0);\n\n    return (FDo(pdocb));\n}\n\n#ifdef DEBUG\n/****************************************************\n * Mark memory used by the TUNH\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TUNH::MarkMem(void)\n{\n    AssertThis(0);\n    TUNH_PAR::MarkMem();\n}\n\n/***************************************************************************\n    Assert the validity of the TUNH.\n***************************************************************************/\nvoid TUNH::AssertValid(ulong grf)\n{\n    TUNH_PAR::AssertValid(fobjAllocated);\n}\n#endif\n\n/****************************************************\n *\n * Public constructor for textbox undo objects which\n * are the result of the document changing.\n *\n * Parameters:\n *\tpundb - the undo object to encapsulate.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie undo.\n *\n ****************************************************/\nPTUND TUND::PtundNew(PUNDB pundb)\n{\n    AssertPo(pundb, 0);\n\n    PTUND ptund;\n    ptund = NewObj TUND();\n    if (ptund != pvNil)\n    {\n        ptund->_pundb = pundb;\n        pundb->AddRef();\n        AssertPo(pundb, 0);\n    }\n    return (ptund);\n}\n\n/****************************************************\n *\n * Destructor for text box undo objects\n *\n ****************************************************/\nTUND::~TUND(void)\n{\n    AssertBaseThis(0);\n\n    PTBOX ptbox;\n\n    //\n    // Clear the owning tbox undo list\n    //\n    if (_iscen == _pmvie->Iscen())\n    {\n        ptbox = _pmvie->Pscen()->PtboxFromItbox(_itbox);\n        AssertNilOrPo(ptbox, 0);\n\n        if (ptbox != pvNil)\n        {\n            ptbox->ParClearUndo();\n        }\n    }\n\n    ReleasePpo(&_pundb);\n}\n\n/****************************************************\n *\n * Does a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TUND::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n    AssertPo(pdocb, 0);\n\n    PTBOX ptbox;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        goto LFail;\n    }\n\n    if (!_pmvie->Pscen()->FGotoFrm(_nfrm))\n    {\n        goto LFail;\n    }\n\n    ptbox = _pmvie->Pscen()->PtboxFromItbox(_itbox);\n    AssertNilOrPo(ptbox, 0);\n\n    if (ptbox == pvNil)\n    {\n        goto LFail;\n    }\n\n    _pmvie->Pscen()->SelectTbox(ptbox);\n    _pmvie->Pmsq()->FlushMsq();\n    return (_pundb->FDo(ptbox));\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo();\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Undoes a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TUND::FUndo(PDOCB pdocb)\n{\n    AssertThis(0);\n    AssertPo(pdocb, 0);\n\n    PTBOX ptbox;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        goto LFail;\n    }\n\n    if (!_pmvie->Pscen()->FGotoFrm(_nfrm))\n    {\n        goto LFail;\n    }\n\n    ptbox = _pmvie->Pscen()->PtboxFromItbox(_itbox);\n    AssertNilOrPo(ptbox, 0);\n\n    if (ptbox == pvNil)\n    {\n        goto LFail;\n    }\n\n    _pmvie->Pscen()->SelectTbox(ptbox);\n    _pmvie->Pmsq()->FlushMsq();\n    return (_pundb->FUndo(ptbox));\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo();\n    return (fFalse);\n}\n\n#ifdef DEBUG\n/****************************************************\n * Mark memory used by the TUND\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TUND::MarkMem(void)\n{\n    AssertThis(0);\n    TUND_PAR::MarkMem();\n    MarkMemObj(_pundb);\n}\n\n/***************************************************************************\n    Assert the validity of the TUND.\n***************************************************************************/\nvoid TUND::AssertValid(ulong grf)\n{\n    AssertBaseThis(0);\n}\n#endif\n\n/****************************************************\n *\n * Public constructor for textbox undo objects which\n * are the result of background color changing.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  pvNil if failure, else a pointer to the movie undo.\n *\n ****************************************************/\nPTUNC TUNC::PtuncNew(void)\n{\n    PTUNC ptunc;\n\n    ptunc = NewObj TUNC();\n    return (ptunc);\n}\n\n/****************************************************\n *\n * Destructor for text box undo objects\n *\n ****************************************************/\nTUNC::~TUNC(void)\n{\n    AssertBaseThis(0);\n}\n\n/****************************************************\n *\n * Does a command stored in an undo object.\n *\n * Parameters:\n *\tpdocb - The owning docb.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TUNC::FDo(PDOCB pdocb)\n{\n    AssertThis(0);\n    AssertPo(pdocb, 0);\n\n    PTBOX ptbox;\n    ACR acr;\n\n    if (!_pmvie->FSwitchScen(_iscen))\n    {\n        goto LFail;\n    }\n\n    if (!_pmvie->Pscen()->FGotoFrm(_nfrm))\n    {\n        goto LFail;\n    }\n\n    ptbox = _pmvie->Pscen()->PtboxFromItbox(_itbox);\n    AssertNilOrPo(ptbox, 0);\n\n    if (ptbox == pvNil)\n    {\n        goto LFail;\n    }\n\n    acr = ptbox->AcrBack();\n    ptbox->SetAcrBack(_acr);\n    _acr = acr;\n    _pmvie->Pscen()->SelectTbox(ptbox);\n    _pmvie->Pmsq()->FlushMsq();\n    return (fTrue);\n\nLFail:\n    _pmvie->Pmsq()->FlushMsq();\n    _pmvie->ClearUndo();\n    return (fFalse);\n}\n\n/****************************************************\n *\n * Undoes a command stored in an undo object.\n *\n * Parameters:\n *\tNone.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n ****************************************************/\nbool TUNC::FUndo(PDOCB pdocb)\n{\n    return (FDo(pdocb));\n}\n\n#ifdef DEBUG\n/****************************************************\n * Mark memory used by the TUNC\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TUNC::MarkMem(void)\n{\n    AssertThis(0);\n    TUNC_PAR::MarkMem();\n}\n\n/***************************************************************************\n    Assert the validity of the TUNC.\n***************************************************************************/\nvoid TUNC::AssertValid(ulong grf)\n{\n    AssertBaseThis(0);\n}\n#endif\n\n//\n//\n//\n//\n// BEGIN TCLP\n//\n//\n//\n//\n\n/***************************************************************************\n *\n * Destructor for text box clipboard documents\n *\n **************************************************************************/\nTCLP::~TCLP(void)\n{\n    ReleasePpo(&_ptbox);\n}\n\n/***************************************************************************\n *\n * Destructor for text box clipboard documents\n *\n * Parameters:\n *\tptbox - The tbox to associate with the clipboard.\n *\n * Returns:\n *  Pointer to a clipboard document, or pvNil if failure.\n *\n **************************************************************************/\nPTCLP TCLP::PtclpNew(PTBOX ptbox)\n{\n    AssertPo(ptbox, 0);\n\n    PTCLP ptclp;\n\n    ptclp = NewObj TCLP();\n\n    if (ptclp == pvNil)\n    {\n        return (pvNil);\n    }\n\n    ptclp->_ptbox = ptbox;\n    return (ptclp);\n}\n\n/***************************************************************************\n *\n * Pastes the text box associated with this clipboard object to the\n * current frame.\n *\n * Parameters:\n *\tpscen - The scene to paste into.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool TCLP::FPaste(PSCEN pscen)\n{\n    AssertThis(0);\n    AssertPo(pscen, 0);\n\n    PTBOX ptboxDup;\n    RC rc;\n    RC rcWorkspace(kxpDefaultTbox, kypDefaultTbox, pscen->Pmvie()->Pmcc()->Dxp(), pscen->Pmvie()->Pmcc()->Dyp());\n\n    //\n    // Copy the text box\n    //\n    if (!_ptbox->FDup(&ptboxDup))\n    {\n        pscen->Pmvie()->ClearUndo();\n        return (fFalse);\n    }\n    AssertPo(ptboxDup, 0);\n\n    ptboxDup->GetRc(&rc);\n\n    rc.Offset(kxpDefaultTbox - rc.xpLeft, kypDefaultTbox - rc.ypTop);\n    rc.FIntersect(&rcWorkspace);\n\n    ptboxDup->SetRc(&rc);\n\n    if (!pscen->FAddTbox(ptboxDup))\n    {\n        pscen->Pmvie()->ClearUndo();\n        ReleasePpo(&ptboxDup);\n        return (fFalse);\n    }\n\n    pscen->SelectTbox(ptboxDup);\n    ptboxDup->AttachToMouse();\n    ReleasePpo(&ptboxDup);\n\n    return (fTrue);\n}\n\n#ifdef DEBUG\n\n/****************************************************\n * Mark memory used by the TCLP\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid TCLP::MarkMem(void)\n{\n    AssertThis(0);\n    TCLP_PAR::MarkMem();\n    MarkMemObj(_ptbox);\n}\n\n/***************************************************************************\n *\n * Assert the validity of the TCLP.\n *\n * Parameters:\n *\tgrf - Bit field of options\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid TCLP::AssertValid(ulong grf)\n{\n    TCLP_PAR::AssertValid(fobjAllocated);\n    AssertPo(_ptbox, 0);\n}\n\n#endif // DEBUG\n"
  },
  {
    "path": "src/engine/tdf.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    tdf.cpp: Three-D Font class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n\n    TDFs (3-D Fonts) are simply collections of models, one model per ASCII\n    character.\tThe TDF class holds general font information such as the\n    count of characters in the font and the maximum height of the\n    characters.  It also holds an array of widths and heights of every\n    character, to allow proportional spacing.  Fetching a letter's model\n    from a TDF involves\tlooking for a child chunk of the TDF chunk with a\n    CHID equal to the ASCII value of the desired character:\n\n    TDF  // Contains font info (width and height of characters)\n     |\n     +---BMDL (chid 0) // MODL for ASCII character 0\n     |\n     +---BMDL (chid 1) // MODL for ASCII character 1\n     .\n     .\n     .\n\n***************************************************************************/\n#include \"soc.h\"\nASSERTNAME\n\nRTCLASS(TDF)\n\nconst long kcchTdfDefault = 256;        // for size estimates and authoring\nconst BRS kdxrSpacing = BR_SCALAR(0.0); // horizontal space between chars\nconst BRS kdyrLeading = BR_SCALAR(0.5); // vertical space between chars\n\n/****************************************\n    3-D Font On File\n****************************************/\nstruct TDFF\n{\n    short bo;\n    short osk;\n    long cch;\n    BRS dyrMax;\n    // These variable-length arrays follow the TDFF in the TDF chunk\n    //  BRS rgdxr[cch];\n    //  BRS rgdyr[cch];\n};\nconst BOM kbomTdff = 0x5F000000; // don't forget to swap rgdxr & rgdyr!\n\n/***************************************************************************\n    A PFNRPO to read a TDF from a file.\n***************************************************************************/\nbool TDF::FReadTdf(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n\n    TDF *ptdf;\n\n    // Estimate TDF size in memory.\n    if (pblck->FPacked())\n        *pcb = size(TDF) + LwMul(kcchTdfDefault, size(BRS) + size(BRS));\n    else\n        *pcb = pblck->Cb();\n    if (pvNil == ppbaco)\n        return fTrue;\n    ptdf = NewObj TDF;\n    if (pvNil == ptdf || !ptdf->_FInit(pblck))\n    {\n        TrashVar(ppbaco);\n        TrashVar(pcb);\n        ReleasePpo(&ptdf);\n        return fFalse;\n    }\n    AssertPo(ptdf, 0);\n    *pcb = size(TDF) + LwMul(ptdf->_cch, size(BRS) + size(BRS));\n    *ppbaco = ptdf;\n    return fTrue;\n}\n\n/***************************************************************************\n    Initialize the font.  Does not clean up on failure because the\n    destructor will.\n***************************************************************************/\nbool TDF::_FInit(PBLCK pblck)\n{\n    AssertBaseThis(0);\n    AssertPo(pblck, 0);\n\n    TDFF tdff;\n    long cbrgdwr; // space taken by rgdxr or rgdyr\n\n    if (!pblck->FUnpackData())\n        return fFalse;\n    if (pblck->Cb() < size(TDFF))\n    {\n        PushErc(ercSocBadTdf);\n        return fFalse;\n    }\n    if (!pblck->FReadRgb(&tdff, size(TDFF), 0))\n        return fFalse;\n    if (kboCur != tdff.bo)\n        SwapBytesBom(&tdff, kbomTdff);\n    Assert(kboCur == tdff.bo, \"bad TDFF\");\n    _cch = tdff.cch;\n    cbrgdwr = LwMul(_cch, size(BRS));\n    if (pblck->Cb() != size(TDFF) + cbrgdwr + cbrgdwr)\n    {\n        PushErc(ercSocBadTdf);\n        return fFalse;\n    }\n    _dyrMax = tdff.dyrMax;\n\n    // Read _prgdxr\n    if (!FAllocPv((void **)&_prgdxr, cbrgdwr, fmemNil, mprNormal))\n        return fFalse;\n    if (!pblck->FReadRgb(_prgdxr, cbrgdwr, size(TDFF)))\n        return fFalse;\n    AssertBomRglw(kbomBrs, size(BRS));\n    if (kboCur != tdff.bo)\n        SwapBytesRglw(_prgdxr, _cch);\n\n    // Read _prgdyr\n    if (!FAllocPv((void **)&_prgdyr, cbrgdwr, fmemNil, mprNormal))\n        return fFalse;\n    if (!pblck->FReadRgb(_prgdyr, cbrgdwr, size(TDFF) + cbrgdwr))\n        return fFalse;\n    AssertBomRglw(kbomBrs, size(BRS));\n    if (kboCur != tdff.bo)\n        SwapBytesRglw(_prgdyr, _cch);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    TDF destructor\n***************************************************************************/\nTDF::~TDF(void)\n{\n    AssertBaseThis(0);\n\n    FreePpv((void **)&_prgdxr);\n    FreePpv((void **)&_prgdyr);\n}\n\n/***************************************************************************\n    This authoring-only API creates a new TDF chunk in pcrf, with child\n    models as specified in pglkid.  This function does not create a new\n    TDF instance in memory...to do that, call FReadTdf with the values\n    returned in pckiTdf.\n***************************************************************************/\nbool TDF::FCreate(PCRF pcrf, PGL pglkid, STN *pstn, CKI *pckiTdf)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pglkid, 0);\n    AssertPo(pstn, 0);\n    AssertNilOrVarMem(pckiTdf);\n\n    CKI ckiTdf;\n    KID kid;\n    KID kid2;\n    TDFF tdff;\n    BRS *prgdxr = pvNil;\n    BRS *prgdyr = pvNil;\n    PMODL pmodl;\n    BLCK blck;\n    long cbrgdwr; // space taken by rgdxr or rgdyr\n    long ikid;\n    long ckid;\n    CHID chidMax = 0;\n    long ikidLetteri = -1;\n\n    // Find chidMax\n    ckid = pglkid->IvMac();\n    for (ikid = 0; ikid < ckid; ikid++)\n    {\n        pglkid->Get(ikid, &kid);\n        if (kid.chid > chidMax)\n            chidMax = kid.chid;\n        if (kid.chid == (CHID)ChLit('i'))\n            ikidLetteri = ikid;\n    }\n\n    tdff.bo = kboCur;\n    tdff.osk = koskCur;\n    tdff.cch = chidMax + 1;\n    tdff.dyrMax = rZero;\n    cbrgdwr = LwMul(tdff.cch, size(BRS));\n    if (!FAllocPv((void **)&prgdxr, cbrgdwr, fmemClear, mprNormal))\n        goto LFail;\n    if (!FAllocPv((void **)&prgdyr, cbrgdwr, fmemClear, mprNormal))\n        goto LFail;\n\n    // Create the TDF chunk\n    ckiTdf.ctg = kctgTdf;\n    if (!pcrf->Pcfl()->FAdd(size(TDFF) + cbrgdwr + cbrgdwr, ckiTdf.ctg, &ckiTdf.cno, &blck))\n    {\n        goto LFail;\n    }\n\n    // Add the BMDL kids and remember widths, heights, and maximum height\n    for (ikid = 0; ikid < ckid; ikid++)\n    {\n        pglkid->Get(ikid, &kid);\n        pmodl = (PMODL)pcrf->PbacoFetch(kid.cki.ctg, kid.cki.cno, MODL::FReadModl);\n        if (pmodl == pvNil)\n            goto LFail;\n        if (!pcrf->Pcfl()->FAdoptChild(ckiTdf.ctg, ckiTdf.cno, kid.cki.ctg, kid.cki.cno, kid.chid))\n        {\n            goto LFail;\n        }\n        if (pmodl->Dxr() == 0 && kid.chid == (CHID)ChLit(' ') && ikidLetteri != -1)\n        {\n            // Hack to turn null models into space characters:\n            // space is the width and height of an \"i\"\n            ReleasePpo(&pmodl);\n            pglkid->Get(ikidLetteri, &kid2);\n            pmodl = (PMODL)pcrf->PbacoFetch(kid2.cki.ctg, kid2.cki.cno, MODL::FReadModl);\n            if (pvNil == pmodl)\n                goto LFail;\n        }\n        prgdxr[kid.chid] = pmodl->Dxr() + kdxrSpacing;\n        prgdyr[kid.chid] = pmodl->Dyr() + kdyrLeading;\n        if (prgdyr[kid.chid] > tdff.dyrMax)\n            tdff.dyrMax = prgdyr[kid.chid];\n        ReleasePpo(&pmodl);\n    }\n    if (!blck.FWriteRgb(&tdff, size(TDFF), 0))\n        goto LFail;\n    if (!blck.FWriteRgb(prgdxr, cbrgdwr, size(TDFF)))\n        goto LFail;\n    if (!blck.FWriteRgb(prgdyr, cbrgdwr, size(TDFF) + cbrgdwr))\n        goto LFail;\n    FreePpv((void **)&prgdxr);\n    FreePpv((void **)&prgdyr);\n    if (pvNil != pckiTdf)\n        *pckiTdf = ckiTdf;\n    return fTrue;\nLFail:\n    FreePpv((void **)&prgdxr);\n    FreePpv((void **)&prgdyr);\n    TrashVar(pckiTdf);\n    return fFalse;\n}\n\n/***************************************************************************\n    Get a model for a character from the font.  The chid is equal to the\n    ASCII (or Unicode) value of the desired character.\n***************************************************************************/\nPMODL TDF::PmodlFetch(CHID chid)\n{\n    AssertThis(0);\n\n    KID kid;\n\n    if (!Pcrf()->Pcfl()->FGetKidChid(Ctg(), Cno(), chid, &kid))\n    {\n        STN stn;\n        stn.FFormatSz(PszLit(\"Couldn't find BMDL for 3-D Font with chid %d.\"), chid);\n        Warn(stn.Psz());\n        PushErc(ercSocNoModlForChar);\n        return pvNil;\n    }\n    return (PMODL)Pcrf()->PbacoFetch(kid.cki.ctg, kid.cki.cno, MODL::FReadModl);\n}\n\n/***************************************************************************\n    Return the width of the given character\n***************************************************************************/\nBRS TDF::DxrChar(long ich)\n{\n    AssertThis(0);\n    AssertIn(ich, 0, _cch);\n\n    return _prgdxr[ich];\n}\n\n/***************************************************************************\n    Return the height of the given character\n***************************************************************************/\nBRS TDF::DyrChar(long ich)\n{\n    AssertThis(0);\n    AssertIn(ich, 0, _cch);\n\n    return _prgdyr[ich];\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the TDF.\n***************************************************************************/\nvoid TDF::AssertValid(ulong grf)\n{\n    TDF_PAR::AssertValid(fobjAllocated);\n    AssertIn(_cch, 0, klwMax);\n    AssertIn(_dyrMax, 0, BR_SCALAR_MAX);\n    AssertPvCb(_prgdxr, LwMul(_cch, size(BRS)));\n    AssertPvCb(_prgdyr, LwMul(_cch, size(BRS)));\n}\n\n/***************************************************************************\n    Mark memory used by the TDF\n***************************************************************************/\nvoid TDF::MarkMem(void)\n{\n    AssertThis(0);\n    TDF_PAR::MarkMem();\n    MarkPv(_prgdxr);\n    MarkPv(_prgdyr);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/engine/tdt.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    tdt.cpp: Three-D Text class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    TDT, the 3-D Text class, is a derived class of TMPL.  Most clients\n    (ACTR, MVIE, etc) can treat TDTs like regular TMPLs.  But they have\n    some extra functionality and work internally very differently from\n    TMPLs.  Chunkwise, all the information for a TDT is in the TMPL\n    chunk or the single TDT child chunk:\n\n    TMPL // template info\n     |\n     |\n     +---TDT  (chid 0) // TDT-specific info (shape and tag to TDF)\n\n    In addition to the usual TMPL fields, TDTs have a _tagTdf and a _tdts.\n    _tagTdf tells what font to use for the TDT, and _tdts tells what shape\n    to draw the TDT in.  TDTs on file are very small, so it is practical to\n    store them in the user's document.\n\n    Rather than fetching ACTNs and the default costume from child chunks\n    of the TMPL, TDTs generate them in memory and store them in _pactnCache\n    and _pmtrlDefault.  _pactnCache keeps a copy of the last requested\n    action so that it doesn't have to be continuously recomputed.\n\n    The user can change a TDT's text, shape, and/or font with FChange().\n    When this happens, all the internal lists affecting the TDT's shape,\n    costume, etc., are changed via _FInitLists().  After changing a TDT,\n    you should call FAdjustBody on any BODYs based on that TDT.  In\n    Socrates, there should only be one BODY per TDT, so this shouldn't be\n    a problem.\n\n***************************************************************************/\n#include \"soc.h\"\nASSERTNAME\n\nRTCLASS(TDT)\n\nconst CHID kchidTdt = 0; // CHID of TDT under TMPL chunk\n\n// All actions have a step size of kdwrStep, except tdaWalk\nconst BRS kdwrStepWalk = BR_SCALAR(1.0); // step size for walk action\nconst BRS kdwrStep = BR_SCALAR(5.0);     // step size for all other actions\n\nPGST TDT::_pgstAction = pvNil;\n\n/***************************************************************************\n    Set the GST of action names for TDTs\n***************************************************************************/\nbool TDT::FSetActionNames(PGST pgstAction)\n{\n    AssertPo(pgstAction, 0);\n    Assert(pvNil == _pgstAction, \"you already set the action names\");\n\n    _pgstAction = pgstAction;\n    _pgstAction->AddRef();\n    return fTrue;\n}\n\n/****************************************\n    3-D Text On File...this gets put in\n    a child chunk of a TMPL\n****************************************/\nstruct TDTF\n{\n    short bo;\n    short osk;\n    long tdts;\n    TAG tagTdf;\n};\nconst BOM kbomTdtf = (0x5C000000 | kbomTag >> 6);\n\n/***************************************************************************\n    Return a list of all tags embedded in this TDT.  Note that a\n    return value of pvNil does not mean an error occurred, but simply that\n    this TDT has no embedded tags.\n\n    Actually, as currently implemented, this function only returns pvNil\n    if an error occurs.  The point is, look at *pfError, not the return\n    value.\n***************************************************************************/\nPGL TDT::PgltagFetch(PCFL pcfl, CTG ctg, CNO cno, bool *pfError)\n{\n    AssertPo(pcfl, 0);\n    AssertVarMem(pfError);\n\n    PGL pgltag;\n    KID kid;\n    BLCK blck;\n    TDTF tdtf;\n\n    *pfError = fFalse;\n    pgltag = GL::PglNew(size(TAG));\n    if (pvNil == pgltag)\n        goto LFail;\n    if (!pcfl->FGetKidChidCtg(ctg, cno, kchidTdt, kctgTdt, &kid))\n        goto LFail;\n    if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n        goto LFail;\n    if (!blck.FUnpackData())\n        goto LFail;\n    if (blck.Cb() < size(TDTF))\n        goto LFail;\n    if (!blck.FReadRgb(&tdtf, size(TDTF), 0))\n        goto LFail;\n    if (kboCur != tdtf.bo)\n        SwapBytesBom(&tdtf, kbomTdtf);\n    Assert(kboCur == tdtf.bo, \"bad TDTF\");\n    if (!pgltag->FAdd(&tdtf.tagTdf))\n        goto LFail;\n    return pgltag;\nLFail:\n    *pfError = fTrue;\n    ReleasePpo(&pgltag);\n    return pvNil;\n}\n\n/***************************************************************************\n    Create a new TDT\n***************************************************************************/\nPTDT TDT::PtdtNew(PSTN pstn, long tdts, PTAG ptagTdf)\n{\n    AssertPo(pstn, 0);\n    AssertIn(tdts, 0, tdtsLim);\n    AssertVarMem(ptagTdf);\n\n    PTDT ptdt;\n\n    ptdt = NewObj TDT;\n    if (pvNil == ptdt)\n        return pvNil;\n    ptdt->_stn = *pstn;\n\n    // This is a bit of a hack, but it makes life easier.  Without it,\n    // the code would have to deal with body part sets with no body\n    // parts in them, and TMPL and BODY would have problems with that\n    // (for one thing, they would compute _cbset incorrectly).\n    if (ptdt->_stn.Cch() == 0)\n    {\n        achar chSpace = ChLit(' ');\n        ptdt->_stn.SetRgch(&chSpace, 1);\n    }\n\n    ptdt->_tdts = tdts;\n    ptdt->_tagTdf = *ptagTdf;\n    if (!ptdt->_FInitLists())\n    {\n        ReleasePpo(&ptdt);\n        return pvNil;\n    }\n    AssertPo(ptdt, 0);\n\n    return ptdt;\n}\n\n/***************************************************************************\n    Read the generic TMPL info and the TDT-specific info (tdts and tagTdf),\n    then call _FInitLists to build the rest of the TDT.\n***************************************************************************/\nbool TDT::_FInit(PCFL pcfl, CTG ctgTmpl, CNO cnoTmpl)\n{\n    AssertBaseThis(0);\n    AssertPo(pcfl, 0);\n\n    KID kid;\n    BLCK blck;\n    TDTF tdtf;\n\n    if (!_FReadTmplf(pcfl, ctgTmpl, cnoTmpl))\n        return fFalse;\n    if (!pcfl->FGetKidChidCtg(ctgTmpl, cnoTmpl, kchidTdt, kctgTdt, &kid))\n        return fFalse;\n    if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n        return fFalse;\n    if (!blck.FUnpackData())\n        return fFalse;\n    if (blck.Cb() < size(TDTF))\n        return fFalse;\n    if (!blck.FReadRgb(&tdtf, size(TDTF), 0))\n        return fFalse;\n    if (kboCur != tdtf.bo)\n        SwapBytesBom(&tdtf, kbomTdtf);\n    Assert(kboCur == tdtf.bo, \"bad TDTF\");\n    _tagTdf = tdtf.tagTdf;\n    _tdts = tdtf.tdts;\n\n    if (!_FInitLists())\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Initialize or reinitialize the TDT data structures, using the current\n    _stn and _tdts.  This function unwinds completely on failure (the\n    TDT's members are untouched).\n***************************************************************************/\nbool TDT::_FInitLists(void)\n{\n    AssertBaseThis(0);\n    AssertPo(&_stn, 0);\n    AssertIn(_tdts, 0, tdtsLim);\n\n    long cch;\n    PGL pglibactParNew = pvNil;\n    PGL pglibsetNew = pvNil;\n    PGG pggcmidNew = pvNil;\n    PMTRL pmtrlDefaultNew = pvNil;\n\n    pglibactParNew = _PglibactParBuild();\n    if (pvNil == pglibactParNew)\n        goto LFail;\n    pglibsetNew = _PglibsetBuild();\n    if (pvNil == pglibsetNew)\n        goto LFail;\n    pggcmidNew = _PggcmidBuild();\n    if (pvNil == pggcmidNew)\n        goto LFail;\n    cch = _stn.Cch();\n    if (pvNil == _pmtrlDefault)\n    {\n        pmtrlDefaultNew = MTRL::PmtrlNew(); // get default solid-color material\n    }\n    else\n    {\n        pmtrlDefaultNew = _pmtrlDefault; // keep _pmtrlDefault the same\n        pmtrlDefaultNew->AddRef();\n    }\n    if (pvNil == pmtrlDefaultNew)\n        goto LFail;\n\n    // We're home free: the function will succeed. Update member variables.\n    ReleasePpo(&_pglibactPar);\n    _pglibactPar = pglibactParNew;\n    ReleasePpo(&_pglibset);\n    _pglibset = pglibsetNew;\n    ReleasePpo(&_pggcmid);\n    _pggcmid = pggcmidNew;\n    ReleasePpo(&_pmtrlDefault);\n    _pmtrlDefault = pmtrlDefaultNew;\n    ReleasePpo(&_pactnCache);\n    _tdaCache = tdaNil;\n    _cactn = tdaLim;\n    _ccmid = 1;\n    _cbset = 1;\n    _grftmpl |= ftmplTdt;\n\n    return fTrue;\nLFail:\n    ReleasePpo(&pglibactParNew);\n    ReleasePpo(&pglibsetNew);\n    ReleasePpo(&pggcmidNew);\n    ReleasePpo(&pmtrlDefaultNew);\n    return fFalse;\n}\n\n/***************************************************************************\n    Get the given action.  If we've built it before, use the cached copy.\n    Else build the action, cache it, and return it.\n***************************************************************************/\nPACTN TDT::_PactnFetch(long tda)\n{\n    AssertThis(0);\n    AssertIn(tda, 0, tdaLim);\n\n    if (tda != _tdaCache)\n    {\n        ReleasePpo(&_pactnCache);\n        _tdaCache = tdaNil;\n        _pactnCache = _PactnBuild(tda);\n    }\n    if (pvNil != _pactnCache)\n    {\n        _pactnCache->AddRef();\n        _tdaCache = tda;\n    }\n    return _pactnCache;\n}\n\n/***************************************************************************\n    Build the given action\n***************************************************************************/\nPACTN TDT::_PactnBuild(long tda)\n{\n    AssertThis(0);\n    AssertIn(tda, 0, tdaLim);\n\n    PACTN pactn;\n    PGG pggcel;\n    PGL pglbmat34 = pvNil;\n    ulong grfactn;\n\n    pggcel = _PggcelBuild(tda);\n    if (pvNil == pggcel)\n        goto LFail;\n    pglbmat34 = _Pglbmat34Build(tda);\n    if (pvNil == pglbmat34)\n        goto LFail;\n    grfactn = factnStatic | factnRotateY;\n    pactn = ACTN::PactnNew(pggcel, pglbmat34, grfactn);\n    if (pvNil == pactn)\n        goto LFail;\n    ReleasePpo(&pggcel);\n    ReleasePpo(&pglbmat34);\n    return pactn;\nLFail:\n    ReleasePpo(&pggcel);\n    ReleasePpo(&pglbmat34);\n    return pvNil;\n}\n\n/***************************************************************************\n    Get the name of the given action\n***************************************************************************/\nbool TDT::FGetActnName(long anid, PSTN pstn)\n{\n    AssertThis(0);\n    AssertIn(anid, 0, tdaLim);\n    AssertPo(pstn, 0);\n\n    long istn;\n    long anidT;\n\n    for (istn = 0; istn < _pgstAction->IvMac(); istn++)\n    {\n        _pgstAction->GetExtra(istn, &anidT);\n        if (anid == anidT)\n        {\n            _pgstAction->GetStn(istn, pstn);\n            return fTrue;\n        }\n    }\n    Warn(\"action name not found\");\n    pstn->SetNil();\n    return fFalse;\n}\n\n/***************************************************************************\n    Fetch the given model for this TDT (use the TDT's current font)\n***************************************************************************/\nPMODL TDT::_PmodlFetch(CHID chidModl)\n{\n    AssertThis(0);\n    AssertIn(chidModl, 0, _stn.Cch());\n\n    PTDF ptdf;\n    PMODL pmodl;\n\n    ptdf = (PTDF)vptagm->PbacoFetch(&_tagTdf, TDF::FReadTdf);\n    if (pvNil == ptdf)\n        return pvNil;\n    pmodl = ptdf->PmodlFetch((uchar)_stn.Psz()[chidModl]);\n    ReleasePpo(&ptdf);\n    return pmodl;\n}\n\n/***************************************************************************\n    Build the BACT tree GL for BODY creation.  TDTs all have the same\n    body part tree: every part is a child of the root.\n***************************************************************************/\nPGL TDT::_PglibactParBuild(void)\n{\n    AssertBaseThis(0);\n\n    long cch = _stn.Cch();\n    long ich;\n    short ibactPar = ivNil;\n    PGL pglibactPar;\n\n    pglibactPar = GL::PglNew(size(short), cch); // ibacts are shorts\n    if (pvNil == pglibactPar)\n        return pvNil;\n    AssertDo(pglibactPar->FSetIvMac(cch), \"PglNew should have ensured space!\");\n    for (ich = 0; ich < cch; ich++)\n        pglibactPar->Put(ich, &ibactPar);\n    return pglibactPar;\n}\n\n/***************************************************************************\n    Build the body part set GL for BODY creation.  For TDTs, all body parts\n    belong to a single body part set\n***************************************************************************/\nPGL TDT::_PglibsetBuild(void)\n{\n    AssertBaseThis(0);\n\n    long cch = _stn.Cch();\n    long ich;\n    short ibset = 0;\n    PGL pglibset;\n\n    pglibset = GL::PglNew(size(short), cch);\n    if (pvNil == pglibset)\n        return pvNil;\n    AssertDo(pglibset->FSetIvMac(cch), \"PglNew should have ensured space!\");\n    for (ich = 0; ich < cch; ich++)\n        pglibset->Put(ich, &ibset);\n    return pglibset;\n}\n\n/***************************************************************************\n    Build the costume GG for TMPL creation.  For TDTs, the costume is\n    simple: all body part sets get cmid 0.\n***************************************************************************/\nPGG TDT::_PggcmidBuild(void)\n{\n    AssertBaseThis(0);\n\n    long cch = _stn.Cch();\n    long lwOne = 1;\n    PGG pggcmid;\n    long cmid = 0;\n\n    pggcmid = GG::PggNew(size(long), 1, size(long));\n    if (pvNil == pggcmid)\n        return pvNil;\n    if (!pggcmid->FAdd(size(long), pvNil, &cmid, &lwOne))\n    {\n        ReleasePpo(&pggcmid);\n        return pvNil;\n    }\n    return pggcmid;\n}\n\n/***************************************************************************\n    Build a GL of matrices for the action\n***************************************************************************/\nPGL TDT::_Pglbmat34Build(long tda)\n{\n    AssertBaseThis(0);\n    AssertIn(tda, 0, tdaLim);\n\n    PTDF ptdf;\n    long cch = _stn.Cch();\n    long ich;\n    BMAT34 bmat34;\n    PGL pglbmat34 = pvNil;\n    BRS dxrTotal;     // width of string (before scaling)\n    BRS dxrTotal2;    // width of string (after scaling)\n    BRS dxrHalf;      // half width of string (before scaling)\n    BRS xrChar;       // \"insertion point\" of character in string\n    BRS xrCharCenter; // origin of character in string (after scaling)\n    BRS dxrChar;      // width of each character\n    long ccel;\n    long icel;\n    BRS dyrChar;  // height of each character\n    BRS dyrTotal; // total height of string, if vertical shape\n    BRS dyrHalf;  // half of height of string, if vertical shape\n    BRS yrChar;   // position of char in string\n\n    ptdf = (PTDF)vptagm->PbacoFetch(&_tagTdf, TDF::FReadTdf);\n    if (pvNil == ptdf)\n        goto LFail;\n\n    ccel = _CcelOfTda(tda);\n\n    pglbmat34 = GL::PglNew(size(BMAT34), LwMul(ccel, cch));\n    if (pvNil == pglbmat34)\n        goto LFail;\n    AssertDo(pglbmat34->FSetIvMac(LwMul(ccel, cch)), \"PglNew should have ensured space!\");\n\n    dxrTotal = rZero;\n    for (ich = 0; ich < cch; ich++)\n        dxrTotal += ptdf->DxrChar((uchar)_stn.Psz()[ich]);\n    dxrHalf = BrsHalf(dxrTotal);\n\n    dyrTotal = rZero;\n    for (ich = 0; ich < cch; ich++)\n        dyrTotal += ptdf->DyrChar((uchar)_stn.Psz()[ich]);\n    dyrHalf = BrsHalf(dyrTotal);\n\n    for (icel = 0; icel < ccel; icel++)\n    {\n        xrChar = -dxrHalf;\n        yrChar = rZero;\n        for (ich = 0; ich < cch; ich++)\n        {\n            dxrChar = ptdf->DxrChar((uchar)_stn.Psz()[ich]);\n            dyrChar = ptdf->DyrChar((uchar)_stn.Psz()[ich]);\n            xrCharCenter = xrChar + BrsHalf(dxrChar);\n\n            BrMatrix34Identity(&bmat34);\n            // The only exception to my \"apply shape, then action\" approach\n            // is tdaStretch, which has to change dxrTotal2 before calling\n            // _ApplyShape.\n            if (tda == tdaStretch)\n            {\n                BRS rPhase;\n                BRS rTheta;\n                BRA aTheta;\n                BRS dxr;\n                BRS rFractStretch;\n                BRS rT;\n\n                rPhase = BrsDiv(BrIntToScalar(icel), BrIntToScalar(ccel));\n                rTheta = BrsMul(rPhase, krTwoPi) + krPi + krHalfPi;\n                aTheta = BrRadianToAngle(rTheta);\n                dxr = BR_SIN(aTheta);\n                rFractStretch = BR_SCALAR(1.5) + BrsHalf(dxr);\n                rT = BrsMul(xrCharCenter, rFractStretch);\n                xrCharCenter = rT;\n                rT = BrsMul(dxrTotal, rFractStretch);\n                dxrTotal2 = rT;\n            }\n            else\n            {\n                dxrTotal2 = dxrTotal;\n            }\n            // apply shape\n            _ApplyShape(&bmat34, _tdts, cch, ich, xrCharCenter, dxrTotal2, yrChar + dyrChar, ptdf->DyrMax(), dyrTotal);\n            // apply transforms based on the action\n            _ApplyAction(&bmat34, tda, ich, ccel, icel, xrCharCenter, dxrTotal2);\n\n            if (_tdts == tdtsCircleZ)\n            {\n                BrMatrix34PostTranslate(&bmat34, rZero, BrsDiv(dxrTotal, krTwoPi) + ptdf->DyrMax(), rZero);\n            }\n            xrChar += dxrChar;\n            yrChar += dyrChar;\n            pglbmat34->Put(LwMul(icel, cch) + ich, &bmat34);\n        }\n    }\n    ReleasePpo(&ptdf);\n    return pglbmat34;\nLFail:\n    ReleasePpo(&ptdf);\n    ReleasePpo(&pglbmat34);\n    return pvNil;\n}\n\n/***************************************************************************\n    Build a GG of cels for the action\n***************************************************************************/\nPGG TDT::_PggcelBuild(long tda)\n{\n    AssertBaseThis(0);\n    AssertIn(tda, 0, tdaLim);\n\n    long cch = _stn.Cch();\n    long ich;\n    PGG pggcel;\n    CEL cel;\n    CPS *prgcps = pvNil;\n    long iv;\n    long ccel;\n    long icel;\n\n    ccel = _CcelOfTda(tda);\n\n    pggcel = GG::PggNew(size(CEL));\n    if (pvNil == pggcel)\n        goto LFail;\n    if (!FAllocPv((void **)&prgcps, LwMul(cch, size(CPS)), fmemClear, mprNormal))\n    {\n        goto LFail;\n    }\n    for (icel = 0; icel < ccel; icel++)\n    {\n        cel.chidSnd = 0;\n        cel.dwr = (tda == tdaWalk ? kdwrStepWalk : kdwrStep);\n        for (ich = 0; ich < cch; ich++)\n        {\n            prgcps[ich].chidModl = (short)ich;\n            prgcps[ich].imat34 = (short)(LwMul(icel, cch) + ich);\n        }\n        if (!pggcel->FAdd(LwMul(cch, size(CPS)), &iv, prgcps, &cel))\n            goto LFail;\n    }\n    FreePpv((void **)&prgcps);\n    return pggcel;\nLFail:\n    FreePpv((void **)&prgcps);\n    ReleasePpo(&pggcel);\n    return pvNil;\n}\n\n/***************************************************************************\n    Destruct the TDT\n***************************************************************************/\nTDT::~TDT(void)\n{\n    AssertBaseThis(0);\n\n    ReleasePpo(&_pmtrlDefault);\n    ReleasePpo(&_pactnCache);\n}\n\n/***************************************************************************\n    Return a duplicate of this TDT\n***************************************************************************/\nPTDT TDT::PtdtDup(void)\n{\n    AssertThis(0);\n\n    PTDT ptdtDup;\n\n    ptdtDup = TDT::PtdtNew(&_stn, _tdts, &_tagTdf);\n    AssertNilOrPo(ptdtDup, 0);\n\n    return ptdtDup;\n}\n\n/***************************************************************************\n    Change the text, shape, and/or font of the TDT\n***************************************************************************/\nbool TDT::FChange(PSTN pstn, long tdts, PTAG ptagTdf)\n{\n    AssertThis(0);\n    AssertNilOrPo(pstn, 0);\n    if (tdtsNil != tdts)\n        AssertIn(tdts, 0, tdtsLim);\n    AssertNilOrVarMem(ptagTdf);\n\n    STN stnSave;\n    long tdtsSave;\n    TAG tagTdfSave;\n\n    stnSave = _stn;\n    tdtsSave = _tdts;\n    tagTdfSave = _tagTdf;\n\n    if (pvNil != pstn)\n        _stn = *pstn;\n    if (tdtsNil != tdts)\n        _tdts = tdts;\n    if (pvNil != ptagTdf)\n        _tagTdf = *ptagTdf;\n\n    // This is a bit of a hack, but it makes life easier.  Without it,\n    // the code would have to deal with body part sets with no body\n    // parts in them, and TMPL and BODY would have problems with that\n    // (for one thing, they would compute _cbset incorrectly).\n    if (_stn.Cch() == 0)\n    {\n        achar chSpace = ChLit(' ');\n        _stn.SetRgch(&chSpace, 1);\n    }\n\n    if (!_FInitLists()) // note: unwinds on failure\n    {\n        _stn = stnSave;\n        _tdts = tdtsSave;\n        _tagTdf = tagTdfSave;\n        return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Get stats of this TDT\n***************************************************************************/\nvoid TDT::GetInfo(PSTN pstn, long *ptdts, PTAG ptagTdf)\n{\n    AssertThis(0);\n    AssertNilOrPo(pstn, 0);\n    AssertNilOrVarMem(ptdts);\n    AssertNilOrVarMem(ptagTdf);\n\n    if (pvNil != pstn)\n        *pstn = _stn;\n    if (pvNil != ptdts)\n        *ptdts = _tdts;\n    if (pvNil != ptagTdf)\n        *ptagTdf = _tagTdf;\n}\n\n/***************************************************************************\n    Adjust the given body's shape, since its owning TDT has changed\n***************************************************************************/\nbool TDT::FAdjustBody(PBODY pbody)\n{\n    AssertThis(0);\n    AssertPo(pbody, 0);\n\n    if (!pbody->FChangeShape(_pglibactPar, _pglibset))\n        return fFalse;\n    return fTrue;\n}\n\n/***************************************************************************\n    Set the default costume.  This always succeeds for TDTs because they\n    keep the PMTRL in memory.\n***************************************************************************/\nbool TDT::FSetDefaultCost(PBODY pbody)\n{\n    AssertThis(0);\n    AssertPo(pbody, 0);\n\n    pbody->SetPartSetMtrl(0, _pmtrlDefault);\n    return fTrue;\n}\n\n/***************************************************************************\n    Get a custom material\n***************************************************************************/\nPCMTL TDT::PcmtlFetch(long cmid)\n{\n    AssertThis(0);\n    AssertIn(cmid, 0, _ccmid);\n\n    Bug(\"Shouldn't fetch CMTLs from a TDT\");\n    return pvNil;\n}\n\n/***************************************************************************\n    Write the TDT out as a TMPL hierarchy.\n***************************************************************************/\nbool TDT::FWrite(PCFL pcfl, CTG ctg, CNO *pcno)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n    AssertVarMem(pcno);\n\n    TDTF tdtf;\n    CNO cnoTdt;\n    BLCK blck;\n\n    if (!_FWriteTmplf(pcfl, ctg, pcno))\n        return fFalse;\n\n    // Add TDT chunk\n    tdtf.bo = kboCur;\n    tdtf.osk = koskCur;\n    tdtf.tdts = _tdts;\n    tdtf.tagTdf = _tagTdf;\n\n    if (!pcfl->FAddChild(ctg, *pcno, kchidTdt, size(TDTF), kctgTdt, &cnoTdt, &blck))\n    {\n        return fFalse;\n    }\n    if (!blck.FWrite(&tdtf))\n    {\n        pcfl->DeleteChild(ctg, *pcno, kctgTdt, cnoTdt, kchidTdt);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the number of cels in the given action\n***************************************************************************/\nlong TDT::_CcelOfTda(long tda)\n{\n    AssertThis(0);\n    AssertIn(tda, 0, tdaLim);\n\n    long ccel;\n\n    switch (tda)\n    {\n    case tdaRest:\n        ccel = 1;\n        break;\n    case tdaLetterRotX:\n    case tdaLetterRotY:\n    case tdaLetterRotZ:\n    case tdaSwingX:\n    case tdaSwingY:\n    case tdaSwingZ:\n    case tdaPulse:\n    case tdaHop:\n    case tdaStretch:\n        ccel = 12;\n        break;\n    case tdaWordRotX:\n    case tdaWordRotY:\n    case tdaWordRotZ:\n    case tdaWave:\n    case tdaReveal:\n    case tdaWalk:\n        ccel = 24;\n        break;\n    default:\n        Bug(\"Unknown tda\");\n        break;\n    }\n    return ccel;\n}\n\n/***************************************************************************\n    Apply some transformations to each character based on tda.\tThe\n    transformation matrix is returned in pbmat34.  Some transformations are\n    pre-applied and some are post-applied, depending on the desired effect.\n***************************************************************************/\nvoid TDT::_ApplyAction(BMAT34 *pbmat34, long tda, long ich, long ccel, long icel, BRS xrChar, BRS dxrText)\n{\n    AssertThis(0);\n    AssertVarMem(pbmat34);\n    AssertIn(tda, 0, tdaLim);\n    AssertIn(ccel, 0, klwMax);\n    AssertIn(icel, 0, ccel);\n\n    BRS dxrTextHalf = BrsHalf(dxrText);\n    // fraction of width of text that this char is at\n    BRS xrFract = BrsDiv(xrChar + dxrTextHalf, dxrText);\n    BRS rFractCel = BrsDiv(BrIntToScalar(icel), BrIntToScalar(ccel));\n    BRS rSwing = BR_SIN(BrRadianToAngle(BrsMul(krTwoPi, rFractCel)));\n\n    switch (tda)\n    {\n    case tdaRest:\n        break;\n    case tdaLetterRotX:\n        BrMatrix34PreRotateX(pbmat34, BrRadianToAngle(BrsMul(rFractCel, krTwoPi)));\n        break;\n    case tdaLetterRotY:\n        BrMatrix34PreRotateY(pbmat34, BrRadianToAngle(BrsMul(rFractCel, krTwoPi)));\n        break;\n    case tdaLetterRotZ:\n        BrMatrix34PreRotateZ(pbmat34, BrRadianToAngle(BrsMul(rFractCel, krTwoPi)));\n        break;\n    case tdaSwingX:\n        BrMatrix34PreShearY(pbmat34, BrsMul(krQuarter, rSwing), rZero);\n        break;\n    case tdaSwingY:\n        BrMatrix34PreShearZ(pbmat34, rZero, BrsHalf(rSwing));\n        break;\n    case tdaSwingZ:\n        BrMatrix34PreShearY(pbmat34, rZero, BrsHalf(rSwing));\n        break;\n    case tdaPulse:\n        BrMatrix34PreScale(pbmat34, rOne + BrsMul(krQuarter, rSwing), rOne + BrsMul(krQuarter, rSwing),\n                           rOne + BrsMul(krQuarter, rSwing));\n        break;\n    case tdaWordRotX:\n        BrMatrix34PostRotateX(pbmat34, BrRadianToAngle(BrsMul(rFractCel, krTwoPi)));\n        break;\n    case tdaWordRotY:\n        BrMatrix34PostRotateY(pbmat34, -BrRadianToAngle(BrsMul(rFractCel, krTwoPi)));\n        break;\n    case tdaWordRotZ:\n        BrMatrix34PostRotateZ(pbmat34, BrRadianToAngle(BrsMul(rFractCel, krTwoPi)));\n        break;\n    case tdaWave: {\n        BRS rTheta;\n        BRA aTheta;\n        BRS rScaleY;\n\n        rTheta = BrsMul(xrFract - rFractCel, krThreePi);\n        if (rTheta < -krTwoPi)\n            rTheta += krThreePi;\n        rTheta = LwBound(rTheta, rZero, krPi);\n        aTheta = BrRadianToAngle(rTheta);\n        rScaleY = rOne + BR_SIN(aTheta);\n        BrMatrix34PreScale(pbmat34, rOne, rScaleY, rOne);\n    }\n    break;\n    case tdaReveal: {\n        BRS dxr;\n        BRS rTheta;\n        BRA aTheta;\n        BRS rScaleY;\n\n        if (icel < ccel / 2)\n        {\n            dxr = BrsDiv(BrIntToScalar(icel), BrIntToScalar(ccel / 2));\n            dxr = BrsDiv(BrsMul(dxr, BR_SCALAR(4.0)), BR_SCALAR(3.0));\n            rTheta = BrsMul(xrFract - dxr, krThreePi);\n            rTheta += krPi + krHalfPi;\n            rTheta = LwBound(rTheta, krHalfPi, krPi + krHalfPi);\n        }\n        else\n        {\n            dxr = BrsDiv(BrIntToScalar(icel - ccel / 2), BrIntToScalar(ccel / 2));\n            dxr = BrsDiv(BrsMul(dxr, BR_SCALAR(4.0)), BR_SCALAR(3.0));\n            rTheta = BrsMul(xrFract - dxr, krThreePi);\n            rTheta += krPi;\n            rTheta = LwBound(rTheta, -krHalfPi, krHalfPi);\n        }\n        aTheta = BrRadianToAngle(rTheta);\n        rScaleY = BR_SCALAR(0.1) + BR_SCALAR(0.5) + BrsMul(BR_SCALAR(0.5), BR_SIN(aTheta));\n        BrMatrix34PreScale(pbmat34, rOne, rScaleY, rOne);\n    }\n    break;\n    case tdaWalk: {\n        bool fOdd = (ich % 2 != 0);\n        BRS rPhase;\n        BRS rTheta;\n        BRA aTheta;\n        BRS dyr;\n        BRS dzr;\n\n        rPhase = BrsDiv(BrIntToScalar(icel), BrIntToScalar(ccel));\n        rTheta = BrsMul(rPhase, krTwoPi);\n        if (fOdd)\n        {\n            if (icel < ccel / 2)\n                dzr = BrsMul(BrIntToScalar(ccel / 2 - icel), kdwrStepWalk);\n            else\n                dzr = BrsMul(BrIntToScalar(icel - ccel / 2), kdwrStepWalk);\n        }\n        else\n        {\n            if (icel < ccel / 2)\n                dzr = BrsMul(BrIntToScalar(icel), kdwrStepWalk);\n            else\n                dzr = BrsMul(BrIntToScalar(ccel - icel), kdwrStepWalk);\n        }\n        if (fOdd)\n            rTheta -= krPi;\n        rTheta = LwBound(rTheta, rZero, krPi);\n        aTheta = BrRadianToAngle(rTheta);\n        dyr = BR_SIN(aTheta);\n        BrMatrix34PreTranslate(pbmat34, rZero, dyr, dzr);\n    }\n    break;\n    case tdaHop: {\n        BRS rPhase;\n        BRS rTheta;\n        BRA aTheta;\n        BRS dyr = rZero;\n        BRS yrScale = rOne;\n\n        if (icel < ccel * 2 / 3)\n        {\n            rPhase = BrsDiv(BrIntToScalar(icel), BrIntToScalar(ccel * 2 / 3));\n            rTheta = BrsMul(rPhase, krPi);\n            aTheta = BrRadianToAngle(rTheta);\n            dyr = BR_SIN(aTheta);\n        }\n        else\n        {\n            rPhase = BrsDiv(BrIntToScalar(icel - (ccel * 2 / 3)), BrIntToScalar(ccel / 3));\n            // rTheta goes from krPi to krTwoPi\n            rTheta = BrsMul(rPhase, krPi) + krPi;\n            aTheta = BrRadianToAngle(rTheta);\n            yrScale = rOne + BrsDiv(BR_SIN(aTheta), rTwo);\n        }\n        BrMatrix34PreTranslate(pbmat34, rZero, dyr, rZero);\n        BrMatrix34PreScale(pbmat34, rOne, yrScale, rOne);\n    }\n    break;\n    case tdaStretch: {\n        BRS rPhase;\n        BRS rTheta;\n        BRA aTheta;\n        BRS dyr = rZero;\n        BRS yrScale = rOne;\n\n        rPhase = BrsDiv(BrIntToScalar(icel), BrIntToScalar(ccel));\n        rTheta = BrsMul(rPhase, krTwoPi) + krPi + krHalfPi;\n        aTheta = BrRadianToAngle(rTheta);\n        dyr = BR_SIN(aTheta);\n\n        BrMatrix34PreScale(pbmat34, BR_SCALAR(1.5) + BrsHalf(dyr), rOne, rOne);\n    }\n    break;\n    default:\n        Bug(\"Unknown tda\");\n        break;\n    }\n}\n\n/***************************************************************************\n    Shape the text based on the given tdts. This function is called once\n    per character in the TDT.  pbmat34 receives the transformation matrix\n    for the character.  xrChar is the position of the current character\n    (you could also think of this as the distance of the center of this\n    character from the origin of the TDT).\tdxrText is the width of the\n    entire string.  dyr is the height of the font.\n***************************************************************************/\nvoid TDT::_ApplyShape(BMAT34 *pbmat34, long tdts, long cch, long ich, BRS xrChar, BRS dxrText, BRS yrChar, BRS dyrMax,\n                      BRS dyrTotal)\n{\n    AssertThis(0);\n    AssertVarMem(pbmat34);\n    AssertIn(tdts, 0, tdtsLim);\n    AssertIn(cch, 0, kcchMaxStn);\n    AssertIn(ich, 0, cch);\n\n    BRS dxr = rZero;\n    BRS dyr = rZero;\n    BRS dzr = rZero;\n\n    BRS dxrTextHalf = BrsHalf(dxrText);\n    BRS dxrTextQuarter = BrsHalf(dxrTextHalf);\n    // fraction of width of text that this char is at\n    BRS xrFract = BrsDiv(xrChar + dxrTextHalf, dxrText);\n    BRS rRadius = BrsDiv(dxrText, krTwoPi);\n\n    switch (tdts)\n    {\n    case tdtsNormal:\n        BrMatrix34PostTranslate(pbmat34, xrChar, rZero, rZero);\n        break;\n    case tdtsArchPositive:\n        dyr = BrsMul(dxrTextQuarter, BR_SIN(BrRadianToAngle(BrsMul(krPi, xrFract))));\n        BrMatrix34PostTranslate(pbmat34, xrChar, dyr, rZero);\n        break;\n    case tdtsArchNegative:\n        dyr = BrsMul(dxrTextQuarter, rOne - BR_SIN(BrRadianToAngle(BrsMul(krPi, xrFract))));\n        BrMatrix34PostTranslate(pbmat34, xrChar, dyr, rZero);\n        break;\n    case tdtsCircleY:\n        BrMatrix34PostTranslate(pbmat34, rZero, rZero, rRadius);\n        BrMatrix34PostRotateY(pbmat34, BrRadianToAngle(BrsMul(krTwoPi, xrFract)));\n        break;\n    case tdtsLargeMiddle:\n        BrMatrix34PostTranslate(pbmat34, xrChar, rZero, rZero);\n        BrMatrix34PostScale(pbmat34, rOne, rOne + BR_SIN(BrRadianToAngle(BrsMul(krPi, xrFract))), rOne);\n        break;\n    case tdtsArchZ:\n        dzr = BrsMul(dxrTextQuarter, BR_SIN(BrRadianToAngle(BrsMul(krPi, xrFract))));\n        BrMatrix34PostTranslate(pbmat34, xrChar, rZero, dzr);\n        break;\n    case tdtsCircleZ:\n        BrMatrix34PostTranslate(pbmat34, rZero, rRadius, rZero);\n        BrMatrix34PostRotateZ(pbmat34, -BrRadianToAngle(BrsMul(krTwoPi, xrFract)));\n        break;\n    case tdtsVertical:\n        BrMatrix34PostTranslate(pbmat34, rZero, dyrTotal - yrChar, rZero);\n        break;\n    case tdtsGrowRight:\n        BrMatrix34PostTranslate(pbmat34, xrChar, rZero, rZero);\n        BrMatrix34PostScale(pbmat34, rOne, rOne + xrFract, rOne);\n        break;\n    case tdtsGrowLeft:\n        BrMatrix34PostTranslate(pbmat34, xrChar, rZero, rZero);\n        BrMatrix34PostScale(pbmat34, rOne, rOne + (rOne - xrFract), rOne);\n        break;\n    default:\n        Bug(\"unknown tdts\");\n        break;\n    }\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the TDT.\n***************************************************************************/\nvoid TDT::AssertValid(ulong grf)\n{\n    TDT_PAR::AssertValid(fobjAllocated);\n    AssertPo(_pgstAction, 0); // must set _pgstAction before creating TDTs\n    Assert(_tagTdf.ctg != ctgNil, \"TDT has bad _tagTdf\");\n    AssertPo(_pmtrlDefault, 0);\n    if (tdaNil != _tdaCache)\n    {\n        AssertIn(_tdaCache, 0, tdaLim);\n        AssertPo(_pactnCache, 0);\n    }\n    else\n    {\n        Assert(pvNil == _pactnCache, \"_tdaCache is wrong\");\n    }\n    AssertIn(_tdts, 0, tdtsLim);\n}\n\n/***************************************************************************\n    Mark memory used by the TDT\n***************************************************************************/\nvoid TDT::MarkMem(void)\n{\n    AssertThis(0);\n\n    TDT_PAR::MarkMem();\n\n    MarkMemObj(_pmtrlDefault);\n    if (tdaNil != _tdaCache)\n        MarkMemObj(_pactnCache);\n}\n\n/***************************************************************************\n    Mark memory used by the TDT action GST\n***************************************************************************/\nvoid TDT::MarkActionNames(void)\n{\n    MarkMemObj(_pgstAction);\n}\n\n#endif // DEBUG\n"
  },
  {
    "path": "src/engine/tmpl.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    tmpl.cpp: Actor template class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    Here's the TMPL chunk tree (* means more than one chunk can go here):\n\n    TMPL - template flags\n     |\n     +--GLPI (chid 0) - parent IDs (BODY part hierarchy)\n     |\n     +--GLBS (chid 0) - body part sets for BODY\n     |\n     +--GGCM (chid 0) - custom costumes per body part set (GG of cmids)\n     |\n     +--CMTL* (chid <cmid>) - custom material...see mtrl.h\n     |   |\n     |   +--MTRL*\n     |       |\n     |       +--TMAP\n     |\n     +--MODL* - models used in this template\n     |\n     +--ACTN* (chid <anid>) - action for this template\n         |\n         +--GGCL (chid 0) - GG of cels for this action\n         |\n         +--GLXF (chid 0) - GL of transformation matrices for this action\n         |\n         +--GLMS (chid 0) - GL of motionmatch sounds for cels of this action\n\n    About Actions: An action is an activity that a body can perform, such\n    as walking, jumping, breathing, or resting.  Actions are broken down\n    into cels, where each cel describes the position of each body part of\n    the actor at one step or phase of the action.  After reaching the last\n    cel, the action loops around to the beginning cel and repeats.  Cels\n    consist of a list of cel part specs (CPS).  Each CPS refers to a single\n    body part of an actor, such as a leg or head.  The CPS tells what\n    BRender model to use for the body part for this cel and what matrix to\n    use to orient it to its parent body part.  Each time the cel number is\n    changed, TMPL reads each CPS of the new cel and updates each body part\n    to use the new model and transformation matrix.\n\n    About the GGCM: it is indexed by body part set, and tells how many\n    custom materials are available for each body part set, and what the\n    CMIDs are for those materials.  The first CMID in each body part set\n    is the default one (for the default costume).  Example: If a body had\n    3 body part sets (shirt, pants, and head), and there are 2 shirts,\n    3 pants, and 1 head, the GGCM would be:\n\n    0: fixed = 2, variable = (0, 1)\n    1: fixed = 3, variable = (2, 3, 4)\n    2: fixed = 1, variable = (5)\n\n    where the fixed part is the count of available CMIDs for each body\n    part set, and the numbers in the variable part are the CMIDs for the\n    respective body part sets.  The default costume for this actor would\n    be CMID 0 for the shirt, 2 for the pants, and 5 for the head.\n\n***************************************************************************/\n#include \"soc.h\"\nASSERTNAME\n\nRTCLASS(ACTN)\nRTCLASS(TMPL)\n\n/***************************************************************************\n    Create a new action\n***************************************************************************/\nPACTN ACTN::PactnNew(PGG pggcel, PGL pglbmat34, ulong grfactn)\n{\n    AssertPo(pggcel, 0);\n    AssertPo(pglbmat34, 0);\n\n    PACTN pactn;\n\n    pactn = NewObj ACTN;\n    if (pvNil == pactn)\n        goto LFail;\n    pactn->_grfactn = grfactn;\n\n    // Duplicate pggcel into pactn->_pggcel\n    pactn->_pggcel = pggcel->PggDup();\n    if (pvNil == pactn->_pggcel)\n        goto LFail;\n\n    // Duplicate pglbmat34 into pactn->_pglbmat34\n    pactn->_pglbmat34 = pglbmat34->PglDup();\n    if (pvNil == pactn->_pglbmat34)\n        goto LFail;\n\n    AssertPo(pactn, 0);\n\n    return pactn;\nLFail:\n    ReleasePpo(&pactn);\n    return pvNil;\n}\n\n/***************************************************************************\n    A PFNRPO (chunky resource reader function) to read an ACTN from a file\n***************************************************************************/\nbool ACTN::FReadActn(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n\n    ACTN *pactn;\n\n    *pcb = pblck->Cb(fTrue); // estimate ACTN size (not a good estimate)\n    if (pvNil == ppbaco)\n        return fTrue;\n\n    if (!pblck->FUnpackData())\n        goto LFail;\n    *pcb = pblck->Cb();\n\n    pactn = NewObj ACTN;\n    if (pvNil == pactn || !pactn->_FInit(pcrf->Pcfl(), ctg, cno))\n    {\n        ReleasePpo(&pactn);\n    LFail:\n        TrashVar(ppbaco);\n        TrashVar(pcb);\n        return fFalse;\n    }\n    AssertPo(pactn, 0);\n    *ppbaco = pactn;\n    *pcb = size(ACTN) + pactn->_pggcel->CbOnFile() + pactn->_pglbmat34->CbOnFile();\n    return fTrue;\n}\n\n/***************************************************************************\n    Read an ACTN from a chunk\n***************************************************************************/\nbool ACTN::_FInit(PCFL pcfl, CTG ctg, CNO cno)\n{\n    AssertPo(pcfl, 0);\n\n    KID kid;\n    BLCK blck;\n    ACTNF actnf;\n    short bo;\n    long icel;\n\n    if (!pcfl->FFind(ctg, cno, &blck) || !blck.FUnpackData())\n        return fFalse;\n\n    if (blck.Cb() < size(ACTNF))\n        return fFalse;\n    if (!blck.FReadRgb(&actnf, size(ACTNF), 0))\n        return fFalse;\n    if (kboOther == actnf.bo)\n        SwapBytesBom(&actnf, kbomActnf);\n    Assert(kboCur == actnf.bo, \"bad ACTNF\");\n    _grfactn = actnf.grfactn;\n\n    // read GG of cels (chid 0, ctg kctgGgcl):\n    if (!pcfl->FGetKidChidCtg(ctg, cno, 0, kctgGgcl, &kid))\n        return fFalse;\n    if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n        return fFalse;\n    _pggcel = GG::PggRead(&blck, &bo);\n    if (pvNil == _pggcel)\n        return fFalse;\n    AssertBomRglw(kbomCel, size(CEL));\n    AssertBomRgsw(kbomCps, size(CPS));\n    if (kboOther == bo)\n    {\n        for (icel = 0; icel < _pggcel->IvMac(); icel++)\n        {\n            SwapBytesRglw(_pggcel->QvFixedGet(icel), size(CEL) / size(long));\n            SwapBytesRgsw(_pggcel->QvGet(icel), _pggcel->Cb(icel) / size(short));\n        }\n    }\n\n    // read GL of transforms (chid 0, ctg kctgGlxf):\n    if (!pcfl->FGetKidChidCtg(ctg, cno, 0, kctgGlxf, &kid))\n        return fFalse;\n    if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n        return fFalse;\n    _pglbmat34 = GL::PglRead(&blck, &bo);\n    if (pvNil == _pglbmat34)\n        return fFalse;\n    AssertBomRglw(kbomBmat34, size(BMAT34));\n    if (kboOther == bo)\n    {\n        SwapBytesRglw(_pglbmat34->QvGet(0), LwMul(_pglbmat34->IvMac(), size(BMAT34) / size(long)));\n    }\n\n    // read (optional) GL of motion-match sounds (chid 0, ctg kctgGlms):\n    if (pcfl->FGetKidChidCtg(ctg, cno, 0, kctgGlms, &kid))\n    {\n        if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n            return fFalse;\n        _pgltagSnd = GL::PglRead(&blck, &bo);\n        if (pvNil == _pgltagSnd)\n            return fFalse;\n        AssertBomRglw(kbomTag, size(TAG));\n        if (kboOther == bo)\n        {\n            SwapBytesRglw(_pgltagSnd->QvGet(0), LwMul(_pgltagSnd->IvMac(), size(TAG) / size(long)));\n        }\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Destructor\n***************************************************************************/\nACTN::~ACTN(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pggcel);\n    ReleasePpo(&_pglbmat34);\n}\n\n/***************************************************************************\n    Get a CEL\n***************************************************************************/\nvoid ACTN::GetCel(long icel, CEL *pcel)\n{\n    AssertThis(0);\n    AssertIn(icel, 0, Ccel());\n    AssertVarMem(pcel);\n\n    _pggcel->GetFixed(icel, pcel);\n}\n\n/***************************************************************************\n    Get a CPS\n***************************************************************************/\nvoid ACTN::GetCps(long icel, long icps, CPS *pcps)\n{\n    AssertThis(0);\n    AssertIn(icel, 0, Ccel());\n    AssertIn(icps, 0, _pggcel->Cb(icel) / size(CPS));\n    AssertVarMem(pcps);\n\n    CPS *prgcps = (CPS *)_pggcel->QvGet(icel);\n    *pcps = prgcps[icps];\n}\n\n/***************************************************************************\n    Get a sound for icel.  If there is no sound, ptag's CTG is set to\n    ctgNil.\n***************************************************************************/\nvoid ACTN::GetSnd(long icel, PTAG ptag)\n{\n    AssertThis(0);\n    AssertIn(icel, 0, Ccel());\n    AssertVarMem(ptag);\n\n    CEL cel;\n\n    ptag->ctg = ctgNil;\n    if (pvNil != _pgltagSnd)\n    {\n        GetCel(icel, &cel);\n        if (cel.chidSnd >= 0) // negative means no sound\n            _pgltagSnd->Get(cel.chidSnd, ptag);\n    }\n}\n\n/***************************************************************************\n    Get a transformation matrix\n***************************************************************************/\nvoid ACTN::GetMatrix(long imat34, BMAT34 *pbmat34)\n{\n    AssertThis(0);\n    AssertIn(imat34, 0, _pglbmat34->IvMac());\n    AssertVarMem(pbmat34);\n\n    _pglbmat34->Get(imat34, pbmat34);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the ACTN.\n***************************************************************************/\nvoid ACTN::AssertValid(ulong grf)\n{\n    ACTN_PAR::AssertValid(fobjAllocated);\n    AssertPo(_pggcel, 0);\n    AssertPo(_pglbmat34, 0);\n    AssertNilOrPo(_pgltagSnd, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the ACTN\n***************************************************************************/\nvoid ACTN::MarkMem(void)\n{\n    AssertThis(0);\n    ACTN_PAR::MarkMem();\n    MarkMemObj(_pggcel);\n    MarkMemObj(_pglbmat34);\n    MarkMemObj(_pgltagSnd);\n}\n#endif // DEBUG\n\n/***************************************************************************\n    A PFNRPO (chunky resource reader function) to read TMPL objects.\n***************************************************************************/\nbool TMPL::FReadTmpl(PCRF pcrf, CTG ctg, CNO cno, PBLCK pblck, PBACO *ppbaco, long *pcb)\n{\n    AssertPo(pcrf, 0);\n    AssertPo(pblck, 0);\n    AssertNilOrVarMem(ppbaco);\n    AssertVarMem(pcb);\n\n    TMPL *ptmpl;\n    KID kid;\n\n    *pcb = pblck->Cb(fTrue); // estimate TMPL size (not a good estimate)\n    if (pvNil == ppbaco)\n        return fTrue;\n\n    if (pcrf->Pcfl()->FGetKidChidCtg(ctg, cno, 0, kctgTdt, &kid))\n        ptmpl = NewObj TDT;\n    else\n        ptmpl = NewObj TMPL;\n    if (pvNil == ptmpl || !ptmpl->_FInit(pcrf->Pcfl(), ctg, cno))\n    {\n        ReleasePpo(&ptmpl);\n        TrashVar(ppbaco);\n        TrashVar(pcb);\n        return fFalse;\n    }\n    AssertPo(ptmpl, 0);\n    *ppbaco = ptmpl;\n    if (ptmpl->_grftmpl & ftmplTdt)\n    {\n        *pcb = size(TDT);\n    }\n    else\n    {\n        *pcb =\n            size(TMPL) + ptmpl->_pglibactPar->CbOnFile() + ptmpl->_pglibset->CbOnFile() + ptmpl->_pggcmid->CbOnFile();\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Read a TMPL from a chunk\n***************************************************************************/\nbool TMPL::_FReadTmplf(PCFL pcfl, CTG ctg, CNO cno)\n{\n    AssertBaseThis(0);\n\n    BLCK blck;\n    TMPLF tmplf;\n\n    if (!pcfl->FFind(ctg, cno, &blck) || !blck.FUnpackData())\n        return fFalse;\n\n    if (blck.Cb() < size(TMPLF))\n        return fFalse;\n    if (!blck.FReadRgb(&tmplf, size(TMPLF), 0))\n        return fFalse;\n\n    if (kboOther == tmplf.bo)\n        SwapBytesBom(&tmplf, kbomTmplf);\n    Assert(kboCur == tmplf.bo, \"freaky tmplf!\");\n    _xaRest = tmplf.xaRest;\n    _yaRest = tmplf.yaRest;\n    _zaRest = tmplf.zaRest;\n    _grftmpl = tmplf.grftmpl;\n    if (!pcfl->FGetName(ctg, cno, &_stn))\n        return fFalse;\n    return fTrue;\n}\n\n/***************************************************************************\n    Write the TMPLF chunk.  Creates a new chunk and returns the CNO in pcno.\n\n    Note: In Socrates, normal actor templates are read-only, but this\n    function will get called for TDTs.\n***************************************************************************/\nbool TMPL::_FWriteTmplf(PCFL pcfl, CTG ctg, CNO *pcno)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n    AssertVarMem(pcno);\n\n    TMPLF tmplf;\n\n    // Add TMPL chunk\n    tmplf.bo = kboCur;\n    tmplf.osk = koskCur;\n    tmplf.xaRest = _xaRest;\n    tmplf.yaRest = _yaRest;\n    tmplf.zaRest = _zaRest;\n    tmplf.grftmpl = _grftmpl;\n\n    if (!pcfl->FAddPv(&tmplf, size(TMPLF), ctg, pcno))\n        return fFalse;\n    if (!pcfl->FSetName(kctgTmpl, *pcno, &_stn))\n    {\n        pcfl->Delete(ctg, *pcno);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Read a TMPL from a chunk\n***************************************************************************/\nbool TMPL::_FInit(PCFL pcfl, CTG ctg, CNO cno)\n{\n    AssertPo(pcfl, 0);\n\n    KID kid;\n    short bo;\n    BLCK blck;\n    long ibact;\n    short ibset;\n\n    if (!_FReadTmplf(pcfl, ctg, cno))\n        return fFalse;\n\n    // read GLPI (parent tree)\n    if (!pcfl->FGetKidChidCtg(ctg, cno, 0, kctgGlpi, &kid))\n        return fFalse;\n    if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n        return fFalse;\n    _pglibactPar = GL::PglRead(&blck, &bo);\n    if (pvNil == _pglibactPar)\n        return fFalse;\n    Assert(_pglibactPar->CbEntry() == size(short), \"Bad _pglibactPar!\");\n    if (kboOther == bo)\n        SwapBytesRgsw(_pglibactPar->QvGet(0), _pglibactPar->IvMac());\n\n    // read GLBS (body-part-set ID list)\n    if (!pcfl->FGetKidChidCtg(ctg, cno, 0, kctgGlbs, &kid))\n        return fFalse;\n    if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n        return fFalse;\n    _pglibset = GL::PglRead(&blck, &bo);\n    if (pvNil == _pglibset)\n        return fFalse;\n    Assert(_pglibset->CbEntry() == size(short), \"Bad TMPL _pglibset!\");\n    if (kboOther == bo)\n        SwapBytesRgsw(_pglibset->QvGet(0), _pglibset->IvMac());\n\n#ifdef DEBUG\n    // GLDC is obsolete\n    if (pcfl->FGetKidChidCtg(ctg, cno, 0, kctgGldc, &kid))\n        Warn(\"Obsolete GLDC structure...get rid of it\");\n#endif // DEBUG\n\n    // _cbset is (highest entry in _pglibset) + 1.\n    _cbset = -1;\n    for (ibact = 0; ibact < _pglibset->IvMac(); ibact++)\n    {\n        _pglibset->Get(ibact, &ibset);\n        if (ibset > _cbset)\n            _cbset = ibset;\n    }\n    _cbset++;\n\n    // Count custom costumes\n    _ccmid = 0;\n    while (pcfl->FGetKidChidCtg(ctg, cno, _ccmid, kctgCmtl, &kid))\n        _ccmid++;\n\n    // Count actions\n    _cactn = 0;\n    while (pcfl->FGetKidChidCtg(ctg, cno, _cactn, kctgActn, &kid))\n        _cactn++;\n\n    // read GGCM (costume info)\n    if (!pcfl->FGetKidChidCtg(ctg, cno, 0, kctgGgcm, &kid))\n    {\n        // REVIEW *****: temp until Pete updates sitobren\n        goto LBuildGgcm;\n        //\t\treturn fFalse;\n    }\n    if (!pcfl->FFind(kid.cki.ctg, kid.cki.cno, &blck))\n        return fFalse;\n    _pggcmid = GG::PggRead(&blck, &bo);\n    if (pvNil == _pggcmid)\n        return fFalse;\n    Assert(_pggcmid->CbFixed() == size(long), \"Bad TMPL _pggcmid\");\n    Assert(_pggcmid->IvMac() == _cbset, \"Bad TMPL _pggcmid\");\n    if (kboOther == bo)\n    {\n        for (ibset = 0; ibset < _cbset; ibset++)\n        {\n            SwapBytesRglw(_pggcmid->QvFixedGet(ibset), 1);\n            SwapBytesRglw(_pggcmid->QvGet(ibset), *(long *)_pggcmid->QvFixedGet(ibset));\n        }\n    }\n    return fTrue;\n// REVIEW *****: temp code until Pete converts our TMPL content\nLBuildGgcm:\n    long ikid;\n    PCMTL pcmtl;\n    PCRF pcrf;\n    long rgcmid[50];\n    long ccmid;\n\n    Warn(\"missing GGCM...building one on the fly\");\n\n    pcrf = CRF::PcrfNew(pcfl, 0);\n    if (pvNil == pcrf)\n        return fFalse;\n\n    _pggcmid = GG::PggNew(size(long));\n    if (pvNil == _pggcmid)\n    {\n        ReleasePpo(&pcrf);\n        return fFalse;\n    }\n    for (ibset = 0; ibset < _cbset; ibset++)\n    {\n        ikid = 0;\n        ccmid = 0;\n\n        while (pcfl->FGetKid(ctg, cno, ikid++, &kid))\n        {\n            if (kid.cki.ctg != kctgCmtl)\n                continue;\n            pcmtl = (PCMTL)pcrf->PbacoFetch(kid.cki.ctg, kid.cki.cno, CMTL::FReadCmtl);\n            if (pvNil == pcmtl)\n            {\n                ReleasePpo(&pcrf);\n                return fFalse;\n            }\n            if (pcmtl->Ibset() == ibset)\n            {\n                rgcmid[ccmid++] = kid.chid;\n            }\n            ReleasePpo(&pcmtl);\n        }\n        if (!_pggcmid->FAdd(ccmid * size(long), pvNil, rgcmid, &ccmid))\n        {\n            ReleasePpo(&pcrf);\n            return fFalse;\n        }\n    }\n    ReleasePpo(&pcrf);\n    return fTrue;\n}\n\n/***************************************************************************\n    Clean up and delete template\n***************************************************************************/\nTMPL::~TMPL(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pglibactPar);\n    ReleasePpo(&_pglibset);\n    ReleasePpo(&_pggcmid);\n}\n\n/***************************************************************************\n    Return a list of all tags embedded in this TMPL.  Note that a\n    return value of pvNil does not mean an error occurred, but simply that\n    this TMPL has no embedded tags.\n***************************************************************************/\nPGL TMPL::PgltagFetch(PCFL pcfl, CTG ctg, CNO cno, bool *pfError)\n{\n    AssertPo(pcfl, 0);\n    AssertVarMem(pfError);\n\n    KID kid;\n\n    *pfError = fFalse;\n    if (pcfl->FGetKidChidCtg(ctg, cno, 0, kctgTdt, &kid))\n        return TDT::PgltagFetch(pcfl, ctg, cno, pfError);\n    else\n        return pvNil; // standard TMPLs have no embedded tags\n}\n\n/***************************************************************************\n    Creates a new tree of body parts (br_actors) based on this template.\n    Note: ACTR also calls FSetDefaultCost after creating the body, but\n    by calling it here, it is guaranteed that the body will have a material\n    on each body part (no null pointers for bact->material).  So the user\n    will never see a body part that isn't texture mapped.\n***************************************************************************/\nPBODY TMPL::PbodyCreate(void)\n{\n    AssertThis(0);\n    PBODY pbody = BODY::PbodyNew(_pglibactPar, _pglibset);\n\n    if (pvNil == pbody || !FSetDefaultCost(pbody))\n    {\n        ReleasePpo(&pbody);\n        return pvNil;\n    }\n    return pbody;\n}\n\n/***************************************************************************\n    Fills in the name of the given action\n***************************************************************************/\nbool TMPL::FGetActnName(long anid, PSTN pstn)\n{\n    AssertThis(0);\n    AssertIn(anid, 0, _cactn);\n    AssertPo(pstn, 0);\n\n    KID kid;\n\n    if (!Pcrf()->Pcfl()->FGetKidChidCtg(Ctg(), Cno(), anid, kctgActn, &kid))\n        return fFalse;\n    return Pcrf()->Pcfl()->FGetName(kid.cki.ctg, kid.cki.cno, pstn);\n}\n\n/***************************************************************************\n    Reads an ACTN chunk from disk\n***************************************************************************/\nPACTN TMPL::_PactnFetch(long anid)\n{\n    AssertThis(0);\n    AssertIn(anid, 0, _cactn);\n\n    KID kid;\n    ACTN *pactn;\n    CHID chidActn = anid;\n\n    if (!Pcrf()->Pcfl()->FGetKidChidCtg(Ctg(), Cno(), chidActn, kctgActn, &kid))\n    {\n        return pvNil;\n    }\n    pactn = (ACTN *)Pcrf()->PbacoFetch(kid.cki.ctg, kid.cki.cno, ACTN::FReadActn);\n    AssertNilOrPo(pactn, 0);\n    return pactn;\n}\n\n/***************************************************************************\n    Reads a MODL chunk from disk\n***************************************************************************/\nPMODL TMPL::_PmodlFetch(CHID chidModl)\n{\n    AssertThis(0);\n\n    KID kid;\n    MODL *pmodl;\n\n    if (!Pcrf()->Pcfl()->FGetKidChidCtg(Ctg(), Cno(), chidModl, kctgBmdl, &kid))\n    {\n        return pvNil;\n    }\n    pmodl = (MODL *)Pcrf()->PbacoFetch(kid.cki.ctg, kid.cki.cno, MODL::FReadModl);\n    AssertNilOrPo(pmodl, 0);\n    return pmodl;\n}\n\n/***************************************************************************\n    Sets up the body part tree to use the correct models and transformation\n    matrices for the given cel of the given action.  Also returns the\n    distance to the next cel in *pdwr.\n***************************************************************************/\nbool TMPL::FSetActnCel(BODY *pbody, long anid, long celn, BRS *pdwr)\n{\n    AssertThis(0);\n    AssertPo(pbody, 0);\n    AssertIn(anid, 0, _cactn);\n    AssertNilOrVarMem(pdwr);\n\n    long icel;\n    ACTN *pactn = pvNil;\n    CEL cel;\n    short ibprt;\n    long cbprt = _pglibactPar->IvMac();\n    CPS cps;\n    PMODL *prgpmodl = pvNil;\n    BMAT34 bmat34;\n    bool fRet = fFalse;\n\n    pactn = _PactnFetch(anid);\n    if (pvNil == pactn)\n        goto LEnd;\n    icel = celn % pactn->Ccel();\n    if (icel < 0)\n        icel += pactn->Ccel();\n    pactn->GetCel(icel, &cel);\n\n    if (!FAllocPv((void **)&prgpmodl, LwMul(cbprt, size(PMODL)), fmemClear, mprNormal))\n    {\n        goto LEnd;\n    }\n    for (ibprt = 0; ibprt < cbprt; ibprt++)\n    {\n        pactn->GetCps(icel, ibprt, &cps);\n        if (chidNil == cps.chidModl)\n        {\n            // Appendages for accessories...don't smash\n            // accessory models with action models\n            Assert(pvNil == prgpmodl[ibprt], \"fmemClear didn't work?\");\n        }\n        else\n        {\n            prgpmodl[ibprt] = _PmodlFetch(cps.chidModl);\n            if (pvNil == prgpmodl[ibprt])\n                goto LEnd;\n        }\n    }\n\n    if (pvNil != pdwr)\n        *pdwr = cel.dwr;\n    for (ibprt = 0; ibprt < cbprt; ibprt++)\n    {\n        if (pvNil != prgpmodl[ibprt])\n            pbody->SetPartModel(ibprt, prgpmodl[ibprt]);\n        pactn->GetCps(icel, ibprt, &cps);\n        pactn->GetMatrix(cps.imat34, &bmat34);\n        pbody->SetPartMatrix(ibprt, &bmat34);\n    }\n    fRet = fTrue;\nLEnd:\n    if (pvNil != prgpmodl)\n    {\n        for (ibprt = 0; ibprt < cbprt; ibprt++)\n            ReleasePpo(&prgpmodl[ibprt]);\n        FreePpv((void **)&prgpmodl);\n    }\n    ReleasePpo(&pactn);\n    return fRet;\n}\n\n/***************************************************************************\n    Retrieves the distance travelled by cel celn of action anid.\n***************************************************************************/\nbool TMPL::FGetDwrActnCel(long anid, long celn, BRS *pdwr)\n{\n    AssertThis(0);\n    AssertIn(anid, 0, _cactn);\n    AssertVarMem(pdwr);\n\n    ACTN *pactn;\n    long icel;\n    CEL cel;\n\n    pactn = _PactnFetch(anid);\n    if (pvNil == pactn)\n        return fFalse;\n    icel = celn % pactn->Ccel();\n    if (icel < 0)\n        icel += pactn->Ccel();\n    pactn->GetCel(icel, &cel);\n    ReleasePpo(&pactn);\n    *pdwr = cel.dwr;\n    return fTrue;\n}\n\n/***************************************************************************\n    Retrieves the number of cels in this action\n***************************************************************************/\nbool TMPL::FGetCcelActn(long anid, long *pccel)\n{\n    AssertThis(0);\n    AssertIn(anid, 0, _cactn);\n    AssertVarMem(pccel);\n\n    ACTN *pactn;\n\n    pactn = _PactnFetch(anid);\n    if (pvNil == pactn)\n        return fFalse;\n    *pccel = pactn->Ccel();\n    ReleasePpo(&pactn);\n    return fTrue;\n}\n\n/***************************************************************************\n    Retrieves the number of cels in this action\n***************************************************************************/\nbool TMPL::FGetSndActnCel(long anid, long celn, bool *pfSoundExists, PTAG ptag)\n{\n    AssertThis(0);\n    AssertIn(anid, 0, _cactn);\n    AssertVarMem(pfSoundExists);\n    AssertVarMem(ptag);\n\n    ACTN *pactn;\n    long icel;\n\n    *pfSoundExists = fFalse;\n    pactn = _PactnFetch(anid);\n    if (pvNil == pactn)\n        return fFalse;\n    icel = celn % pactn->Ccel();\n    if (icel < 0)\n        icel += pactn->Ccel();\n    pactn->GetSnd(icel, ptag);\n    if (ptag->ctg != ctgNil)\n        *pfSoundExists = fTrue;\n    ReleasePpo(&pactn);\n    return fTrue;\n}\n\n/***************************************************************************\n    Retrieves the distance travelled by cel celn of action anid.\n***************************************************************************/\nbool TMPL::FGetGrfactn(long anid, ulong *pgrfactn)\n{\n    AssertThis(0);\n    AssertIn(anid, 0, _cactn);\n    AssertVarMem(pgrfactn);\n\n    ACTN *pactn;\n\n    pactn = _PactnFetch(anid);\n    if (pvNil == pactn)\n        return fFalse;\n    *pgrfactn = pactn->Grfactn();\n    ReleasePpo(&pactn);\n    return fTrue;\n}\n\n/***************************************************************************\n    Get orientation for template when actor has no path\n***************************************************************************/\nvoid TMPL::GetRestOrien(BRA *pxa, BRA *pya, BRA *pza)\n{\n    AssertThis(0);\n    AssertVarMem(pxa);\n    AssertVarMem(pya);\n    AssertVarMem(pza);\n\n    *pxa = _xaRest;\n    *pya = _yaRest;\n    *pza = _zaRest;\n}\n\n/***************************************************************************\n    Puts default costume on pbody\n***************************************************************************/\nbool TMPL::FSetDefaultCost(BODY *pbody)\n{\n    AssertThis(0);\n    AssertPo(pbody, 0);\n\n    long ibset;\n    long cmid;\n    PCMTL *prgpcmtl;\n    bool fRet = fFalse;\n\n    if (!FAllocPv((void **)&prgpcmtl, LwMul(_cbset, size(PCMTL)), fmemClear, mprNormal))\n    {\n        goto LEnd;\n    }\n    for (ibset = 0; ibset < _cbset; ibset++)\n    {\n        cmid = CmidOfBset(ibset, 0);\n        prgpcmtl[ibset] = PcmtlFetch(cmid);\n        if (pvNil == prgpcmtl[ibset])\n            goto LEnd;\n        Assert(prgpcmtl[ibset]->Ibset() == ibset, \"ibset's don't match\");\n    }\n    for (ibset = 0; ibset < _cbset; ibset++)\n        pbody->SetPartSetCmtl(prgpcmtl[ibset]);\n    fRet = fTrue;\nLEnd:\n    if (pvNil != prgpcmtl)\n    {\n        for (ibset = 0; ibset < _cbset; ibset++)\n            ReleasePpo(&prgpcmtl[ibset]);\n        FreePpv((void **)&prgpcmtl);\n    }\n    return fRet;\n}\n\n/***************************************************************************\n    Returns the number of custom materials available for ibset\n***************************************************************************/\nlong TMPL::CcmidOfBset(long ibset)\n{\n    AssertThis(0);\n    AssertIn(ibset, 0, _cbset);\n\n    return *(long *)_pggcmid->QvFixedGet(ibset);\n}\n\n/***************************************************************************\n    Returns the icmid'th CMID available for ibset\n***************************************************************************/\nlong TMPL::CmidOfBset(long ibset, long icmid)\n{\n    AssertThis(0);\n    AssertIn(ibset, 0, _cbset);\n    AssertIn(icmid, 0, CcmidOfBset(ibset));\n\n    long *prgcmid;\n\n    prgcmid = (long *)_pggcmid->QvGet(ibset);\n    return prgcmid[icmid];\n}\n\n/***************************************************************************\n    Tells whether ibset holds accessories by checking to see if one of\n    its costumes has model children.\n***************************************************************************/\nbool TMPL::FBsetIsAccessory(long ibset)\n{\n    AssertThis(0);\n    AssertIn(ibset, 0, _cbset);\n\n    long cmid;\n    KID kid;\n\n    if (pvNil == Pcrf())\n        return fFalse; // probably a TDT\n\n    cmid = CmidOfBset(ibset, 0);\n    if (!Pcrf()->Pcfl()->FGetKidChidCtg(Ctg(), Cno(), cmid, kctgCmtl, &kid))\n    {\n        return fFalse;\n    }\n\n    return CMTL::FHasModels(Pcrf()->Pcfl(), kid.cki.ctg, kid.cki.cno);\n}\n\n/***************************************************************************\n    Returns the ibset of the accessory associated with ibset, if any.  If\n    ibset is itself an accessory, it is returned in *pibsetAcc.  Otherwise,\n    if ibset is the parent of an accessory, that accessory is returned in\n    *pibsetAcc.\n***************************************************************************/\nbool TMPL::FIbsetAccOfIbset(long ibset, long *pibsetAcc)\n{\n    AssertThis(0);\n    AssertIn(ibset, 0, _cbset);\n    AssertVarMem(pibsetAcc);\n\n    long ibsetT;\n    long ibact;\n    long ibactPar;\n    short ibsetOfIbact;\n    short ibsetOfIbactPar;\n\n    if (FBsetIsAccessory(ibset))\n    {\n        *pibsetAcc = ibset;\n        return fTrue;\n    }\n\n    for (ibsetT = 0; ibsetT < _cbset; ibsetT++)\n    {\n        if (FBsetIsAccessory(ibsetT))\n        {\n            // for each ibact in ibsetT, see if its parent is in ibset\n            for (ibact = 0; ibact < _pglibactPar->IvMac(); ibact++)\n            {\n                ibsetOfIbact = *(short *)_pglibset->QvGet(ibact);\n                if (ibsetT == ibsetOfIbact)\n                {\n                    // see if ibact's parent in ibset\n                    ibactPar = *(short *)_pglibactPar->QvGet(ibact);\n                    ibsetOfIbactPar = *(short *)_pglibset->QvGet(ibactPar);\n                    if (ibsetOfIbactPar == ibset)\n                    {\n                        // so ibset is a parent bset of ibsetT\n                        *pibsetAcc = ibsetT;\n                        return fTrue;\n                    }\n                }\n            }\n        }\n    }\n    return fFalse; // ibset is not a parent bset of any accessory bset.\n}\n\n/***************************************************************************\n    See if cmid1 and cmid2 are for the same accessory by comparing child\n    model chunks\n***************************************************************************/\nbool TMPL::FSameAccCmids(long cmid1, long cmid2)\n{\n    AssertThis(0);\n\n    KID kid1;\n    KID kid2;\n\n    if (!Pcrf()->Pcfl()->FGetKidChidCtg(Ctg(), Cno(), cmid1, kctgCmtl, &kid1) ||\n        !Pcrf()->Pcfl()->FGetKidChidCtg(Ctg(), Cno(), cmid2, kctgCmtl, &kid2))\n    {\n        return fFalse; // safer to assume they're different\n    }\n    return CMTL::FEqualModels(Pcrf()->Pcfl(), kid1.cki.cno, kid2.cki.cno);\n}\n\n/***************************************************************************\n    Get a custom material.  The cmid is really the chid under the TMPL.\n***************************************************************************/\nPCMTL TMPL::PcmtlFetch(long cmid)\n{\n    AssertThis(0);\n    AssertIn(cmid, 0, _ccmid);\n\n    PCMTL pcmtl;\n    KID kid;\n\n    if (!Pcrf()->Pcfl()->FGetKidChidCtg(Ctg(), Cno(), cmid, kctgCmtl, &kid))\n    {\n        return pvNil;\n    }\n    pcmtl = (PCMTL)Pcrf()->PbacoFetch(kid.cki.ctg, kid.cki.cno, CMTL::FReadCmtl);\n    AssertNilOrPo(pcmtl, 0);\n    return pcmtl;\n}\n\n/***************************************************************************\n    Puts the template's name into pstn\n***************************************************************************/\nvoid TMPL::GetName(PSTN pstn)\n{\n    AssertThis(0);\n    AssertPo(pstn, 0);\n\n    *pstn = _stn;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the TMPL.\n***************************************************************************/\nvoid TMPL::AssertValid(ulong grftmpl)\n{\n    long ibset;\n    long ccmid;\n\n    TMPL_PAR::AssertValid(fobjAllocated);\n    AssertPo(_pglibactPar, 0);\n    AssertPo(_pglibset, 0);\n    AssertPo(_pggcmid, 0);\n    AssertPo(&_stn, 0);\n\n    // Verify correctness of _pggcmid\n    Assert(_pggcmid->IvMac() == _cbset, 0);\n    for (ibset = 0; ibset < _cbset; ibset++)\n    {\n        ccmid = *(long *)_pggcmid->QvFixedGet(ibset);\n        Assert(_pggcmid->Cb(ibset) / size(long) == ccmid, 0);\n    }\n}\n\n/***************************************************************************\n    Mark memory used by the TMPL\n***************************************************************************/\nvoid TMPL::MarkMem(void)\n{\n    AssertThis(0);\n    TMPL_PAR::MarkMem();\n    MarkMemObj(_pglibactPar);\n    MarkMemObj(_pglibset);\n    MarkMemObj(_pggcmid);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/help/actorbio.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n\nSET _help_48544F50_0= 0x0\nCHUNK('HTOP', _help_48544F50_0, \"\")\n\tBO OSK LONG 0xFFFFFFFF 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x0 0xFFFFFFFF\nENDCHUNK\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x00 0x00 0x00 0x00 0xB1 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB6 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xED 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xF3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x03    // '????8???' \n\t0x0A 0x00 0x00 0xFD 0x42 0x00 0x00 0x03    // '???B???' \n\t0x00 0x00 0x00 0x00 0xB1 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xB6 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xED 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xF3 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x61 0x63 0x6B 0x67 0x72    // '??Backgr' \n\t0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x56 0x61    // 'ound??Va' \n\t0x6C 0x65 0x6E 0x74 0x69 0x6E 0x65 0x20    // 'lentine ' \n\t0x77 0x61 0x73 0x20 0x62 0x6F 0x72 0x6E    // 'was born' \n\t0x20 0x33 0x32 0x20 0x79 0x65 0x61 0x72    // ' 32 year' \n\t0x73 0x20 0x61 0x67 0x6F 0x20 0x69 0x6E    // 's ago in' \n\t0x20 0x46 0x72 0x61 0x6E 0x63 0x65 0x2E    // ' France.' \n\t0x0D 0x0A 0x41 0x64 0x76 0x65 0x6E 0x74    // '??Advent' \n\t0x75 0x72 0x65 0x73 0x0D 0x0A 0x52 0x61    // 'ures??Ra' \n\t0x69 0x73 0x65 0x64 0x20 0x61 0x73 0x64    // 'ised asd' \n\t0x20 0x3B 0x20 0x61 0x73 0x64 0x66 0x61    // ' ; asdfa' \n\t0x3B 0x73 0x66 0x20 0x61 0x73 0x66 0x20    // ';sf asf ' \n\t0x61 0x64 0x73 0x66 0x3B 0x61 0x73 0x64    // 'adsf;asd' \n\t0x66 0x6A 0x20 0x20 0x61 0x73 0x64 0x20    // 'fj  asd ' \n\t0x66 0x6A 0x61 0x3B 0x73 0x64 0x66 0x6A    // 'fja;sdfj' \n\t0x61 0x73 0x3B 0x64 0x66 0x6A 0x20 0x61    // 'as;dfj a' \n\t0x73 0x3B 0x20 0x66 0x6A 0x61 0x73 0x66    // 's; fjasf' \n\t0x20 0x61 0x73 0x6A 0x20 0x66 0x20 0x20    // ' asj f  ' \n\t0x3B 0x61 0x73 0x0D 0x0A 0x64 0x66 0x61    // ';as??dfa' \n\t0x73 0x66 0x61 0x73 0x64 0x66 0x73 0x61    // 'sfasdfsa' \n\t0x64 0x6A 0x66 0x3B 0x6A 0x61 0x73 0x66    // 'djf;jasf' \n\t0x3B 0x61 0x73 0x64 0x66 0x61 0x73 0x6A    // ';asdfasj' \n\t0x66 0x0D 0x0A 0x52 0x6F 0x6C 0x65 0x73    // 'f??Roles' \n\t0x0D 0x0A 0x54 0x68 0x65 0x20 0x41 0x6E    // '??The An' \n\t0x6E 0x6F 0x79 0x69 0x6E 0x67 0x20 0x54    // 'noying T' \n\t0x65 0x6E 0x61 0x6E 0x74 0x2C 0x20 0x54    // 'enant, T' \n\t0x68 0x65 0x20 0x44 0x65 0x74 0x65 0x63    // 'he Detec' \n\t0x74 0x69 0x76 0x65 0x2C 0x20 0x74 0x68    // 'tive, th' \n\t0x65 0x20 0x56 0x6F 0x6F 0x64 0x6F 0x6F    // 'e Voodoo' \n\t0x20 0x4D 0x61 0x6E 0x2E 0x0D 0x0A 0x54    // ' Man.??T' \n\t0x72 0x69 0x76 0x69 0x61 0x0D 0x0A 0x57    // 'rivia??W' \n\t0x68 0x79 0x20 0x69 0x73 0x20 0x56 0x61    // 'hy is Va' \n\t0x6C 0x65 0x6E 0x74 0x69 0x6E 0x65 0x20    // 'lentine ' \n\t0x68 0x69 0x64 0x69 0x6E 0x67 0x20 0x62    // 'hiding b' \n\t0x65 0x68 0x69 0x6E 0x64 0x20 0x68 0x69    // 'ehind hi' \n\t0x73 0x20 0x63 0x6F 0x6C 0x6C 0x61 0x72    // 's collar' \n\t0x3F 0x0D 0x0A 0x42 0x65 0x66 0x6F 0x72    // '???Befor' \n\t0x65 0x20 0x68 0x69 0x73 0x20 0x62 0x69    // 'e his bi' \n\t0x67 0x20 0x62 0x72 0x65 0x61 0x6B 0x20    // 'g break ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x6D    // 'in the m' \n\t0x6F 0x76 0x69 0x65 0x20 0x62 0x75 0x73    // 'ovie bus' \n\t0x69 0x6E 0x65 0x73 0x73 0x2C 0x20 0x56    // 'iness, V' \n\t0x61 0x6C 0x65 0x6E 0x74 0x69 0x6E 0x65    // 'alentine' \n\t0x20 0x6D 0x61 0x64 0x65 0x20 0x61 0x20    // ' made a ' \n\t0x6C 0x69 0x76 0x69 0x6E 0x67 0x20 0x61    // 'living a' \n\t0x63 0x74 0x69 0x6E 0x67 0x20 0x69 0x6E    // 'cting in' \n\t0x20 0x63 0x6F 0x6D 0x6D 0x65 0x72 0x63    // ' commerc' \n\t0x69 0x61 0x6C 0x73 0x2E 0x20 0x20 0x54    // 'ials.  T' \n\t0x68 0x65 0x20 0x6D 0x6F 0x6E 0x65 0x79    // 'he money' \n\t0x20 0x77 0x61 0x73 0x20 0x67 0x6F 0x6F    // ' was goo' \n\t0x64 0x2C 0x20 0x62 0x75 0x74 0x20 0x74    // 'd, but t' \n\t0x68 0x65 0x20 0x66 0x6F 0x6F 0x64 0x20    // 'he food ' \n\t0x68 0x65 0x20 0x68 0x61 0x64 0x20 0x74    // 'he had t' \n\t0x6F 0x20 0x61 0x64 0x76 0x65 0x72 0x74    // 'o advert' \n\t0x69 0x73 0x65 0x20 0x77 0x61 0x73 0x20    // 'ise was ' \n\t0x74 0x6F 0x74 0x61 0x6C 0x6C 0x79 0x20    // 'totally ' \n\t0x64 0x69 0x73 0x67 0x75 0x73 0x74 0x69    // 'disgusti' \n\t0x6E 0x67 0x2D 0x2D 0x70 0x61 0x72 0x74    // 'ng--part' \n\t0x69 0x63 0x75 0x6C 0x61 0x72 0x6C 0x79    // 'icularly' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x61 0x63    // ' the mac' \n\t0x61 0x72 0x6F 0x6E 0x69 0x20 0x77 0x69    // 'aroni wi' \n\t0x74 0x68 0x20 0x70 0x65 0x61 0x6E 0x75    // 'th peanu' \n\t0x74 0x20 0x62 0x75 0x74 0x74 0x65 0x72    // 't butter' \n\t0x20 0x73 0x61 0x75 0x63 0x65 0x2E 0x20    // ' sauce. ' \n\t0x20 0x41 0x66 0x74 0x65 0x72 0x20 0x6F    // ' After o' \n\t0x6E 0x65 0x20 0x67 0x69 0x67 0x61 0x6E    // 'ne gigan' \n\t0x74 0x69 0x63 0x20 0x62 0x69 0x74 0x65    // 'tic bite' \n\t0x2C 0x20 0x56 0x61 0x6C 0x65 0x6E 0x74    // ', Valent' \n\t0x69 0x6E 0x65 0x20 0x64 0x65 0x76 0x65    // 'ine deve' \n\t0x6C 0x6F 0x70 0x65 0x64 0x20 0x61 0x20    // 'loped a ' \n\t0x66 0x61 0x63 0x69 0x61 0x6C 0x20 0x72    // 'facial r' \n\t0x61 0x73 0x68 0x2E 0x20 0x20 0x48 0x65    // 'ash.  He' \n\t0x20 0x70 0x75 0x6C 0x6C 0x65 0x64 0x20    // ' pulled ' \n\t0x75 0x70 0x20 0x68 0x69 0x73 0x20 0x63    // 'up his c' \n\t0x6F 0x6C 0x6C 0x61 0x72 0x20 0x74 0x6F    // 'ollar to' \n\t0x20 0x68 0x69 0x64 0x65 0x20 0x68 0x69    // ' hide hi' \n\t0x73 0x20 0x65 0x62 0x6D 0x61 0x72 0x72    // 's ebmarr' \n\t0x61 0x73 0x73 0x6D 0x65 0x6E 0x74 0x2E    // 'assment.' \n\t0x20 0x20 0x53 0x75 0x64 0x64 0x65 0x6E    // '  Sudden' \n\t0x6C 0x79 0x20 0x74 0x68 0x65 0x20 0x64    // 'ly the d' \n\t0x69 0x72 0x65 0x63 0x74 0x6F 0x72 0x20    // 'irector ' \n\t0x73 0x63 0x72 0x65 0x61 0x6D 0x65 0x64    // 'screamed' \n\t0x2C 0x20 0x22 0x46 0x41 0x42 0x55 0x4C    // ', \"FABUL' \n\t0x4F 0x55 0x53 0x21 0x22 0x20 0x20 0x09    // 'OUS!\"  ?' \n\t0x56 0x61 0x6C 0x65 0x6E 0x74 0x69 0x6E    // 'Valentin' \n\t0x65 0x20 0x6B 0x65 0x70 0x74 0x20 0x68    // 'e kept h' \n\t0x69 0x73 0x20 0x63 0x6F 0x6C 0x6C 0x61    // 'is colla' \n\t0x72 0x20 0x75 0x70 0x20 0x65 0x76 0x65    // 'r up eve' \n\t0x72 0x20 0x73 0x69 0x6E 0x63 0x65 0x21    // 'r since!' \nENDCHUNK\n\nSET _help_48544F50_1= 0x1\nCHUNK('HTOP', _help_48544F50_1, \"\")\n\tBO OSK LONG 0xFFFFFFFF 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x0 0xFFFFFFFF\nENDCHUNK\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x19 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x01 0x00 0x00 0x00 0x2F 0x00 0x00 0x01    // '????/???' \n\t0x00 0x00 0x00 0x00 0x9E 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xA3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xDA 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xE0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x03    // '????%???' \n\t0x0A 0x00 0x00 0xFD 0x2F 0x00 0x00 0x03    // '???/???' \n\t0x00 0x00 0x00 0x00 0x9E 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xA3 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xA9 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xB8 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xBE 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xC7 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xCD 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xD7 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xDA 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xE0 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xE2 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x0C 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x61 0x63 0x6B 0x67 0x72    // '??Backgr' \n\t0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x42 0x6F    // 'ound??Bo' \n\t0x72 0x6E 0x3A 0x20 0x20 0x46 0x72 0x61    // 'rn:  Fra' \n\t0x6E 0x63 0x65 0x20 0x20 0x41 0x67 0x65    // 'nce  Age' \n\t0x3A 0x20 0x20 0x33 0x32 0x0D 0x0A 0x41    // ':  32??A' \n\t0x64 0x76 0x65 0x6E 0x74 0x75 0x72 0x65    // 'dventure' \n\t0x73 0x0D 0x0A 0x52 0x61 0x69 0x73 0x65    // 's??Raise' \n\t0x64 0x20 0x61 0x73 0x64 0x20 0x3B 0x20    // 'd asd ; ' \n\t0x61 0x73 0x64 0x66 0x61 0x3B 0x73 0x66    // 'asdfa;sf' \n\t0x20 0x61 0x73 0x66 0x20 0x61 0x64 0x73    // ' asf ads' \n\t0x66 0x3B 0x61 0x73 0x64 0x66 0x6A 0x20    // 'f;asdfj ' \n\t0x20 0x61 0x73 0x64 0x20 0x66 0x6A 0x61    // ' asd fja' \n\t0x3B 0x73 0x64 0x66 0x6A 0x61 0x73 0x3B    // ';sdfjas;' \n\t0x64 0x66 0x6A 0x20 0x61 0x73 0x3B 0x20    // 'dfj as; ' \n\t0x66 0x6A 0x61 0x73 0x66 0x20 0x61 0x73    // 'fjasf as' \n\t0x6A 0x20 0x66 0x20 0x20 0x3B 0x61 0x73    // 'j f  ;as' \n\t0x0D 0x0A 0x64 0x66 0x61 0x73 0x66 0x61    // '??dfasfa' \n\t0x73 0x64 0x66 0x73 0x61 0x64 0x6A 0x66    // 'sdfsadjf' \n\t0x3B 0x6A 0x61 0x73 0x66 0x3B 0x61 0x73    // ';jasf;as' \n\t0x64 0x66 0x61 0x73 0x6A 0x66 0x0D 0x0A    // 'dfasjf??' \n\t0x52 0x6F 0x6C 0x65 0x73 0x0D 0x0A 0x54    // 'Roles??T' \n\t0x68 0x65 0x20 0x41 0x6E 0x6E 0x6F 0x79    // 'he Annoy' \n\t0x69 0x6E 0x67 0x20 0x54 0x65 0x6E 0x61    // 'ing Tena' \n\t0x6E 0x74 0x2C 0x20 0x74 0x68 0x65 0x20    // 'nt, the ' \n\t0x44 0x65 0x74 0x65 0x63 0x74 0x69 0x76    // 'Detectiv' \n\t0x65 0x2C 0x20 0x74 0x68 0x65 0x20 0x56    // 'e, the V' \n\t0x6F 0x6F 0x64 0x6F 0x6F 0x20 0x4D 0x61    // 'oodoo Ma' \n\t0x6E 0x2E 0x0D 0x0A 0x54 0x72 0x69 0x76    // 'n.??Triv' \n\t0x69 0x61 0x0D 0x0A 0x57 0x68 0x79 0x20    // 'ia??Why ' \n\t0x69 0x73 0x20 0x56 0x61 0x6C 0x65 0x6E    // 'is Valen' \n\t0x74 0x69 0x6E 0x65 0x20 0x68 0x69 0x64    // 'tine hid' \n\t0x69 0x6E 0x67 0x20 0x62 0x65 0x68 0x69    // 'ing behi' \n\t0x6E 0x64 0x20 0x68 0x69 0x73 0x20 0x63    // 'nd his c' \n\t0x6F 0x6C 0x6C 0x61 0x72 0x3F 0x0D 0x0A    // 'ollar???' \nENDCHUNK\n"
  },
  {
    "path": "src/help/app.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcQuerySave\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Query to save on exit (Y/N)\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Query to save on exit (Y/N)\")) __HELP_PACK2\n\tBO OSK LONG kgobQueryTopics kgobQuerySave 0x0 ktpcQuerySave 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobQueryTopics\"\n\tITEM\n\t\t\"ktpcQuerySave\"\n\tITEM\n\t\t\"kgobQuerySave\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcQuerySave\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x05 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x01 0x05 0x00 0x00 0x44 0x00 0x00 0x01    // '????D???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x29 0x00 0x00 0x40    // '????)??@' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x40    // '????+??@' \n\t0x03 0x00 0x00 0x00 0x44 0x00 0x00 0x40    // '????D??@' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x2B 0x00 0x00 0x80    // '????+??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x11 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0xC0    // '????+??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x6F 0x20 0x79 0x6F 0x75    // '??Do you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x3A 0x0D 0x0A 0x01 0x20 0x53 0x61 0x76    // ':??? Sav' \n\t0x65 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'e change' \n\t0x73 0x20 0x74 0x6F 0x20 0x7E 0x31 0x33    // 's to ~13' \n\t0x31 0x37 0x3F 0x0D 0x0A 0x01 0x20 0x47    // '17???? G' \n\t0x65 0x74 0x20 0x72 0x69 0x64 0x20 0x6F    // 'et rid o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x63 0x68    // 'f the ch' \n\t0x61 0x6E 0x67 0x65 0x73 0x3F              // 'anges?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpcQuerySaveWithCancel\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Query to save on exit (Y/N/C)\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Query to save on exit (Y/N/C)\")) __HELP_PACK2\n\tBO OSK LONG kgobQueryTopics kgobQuerySaveWithCancel 0x0 ktpcQuerySave 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobQueryTopics\"\n\tITEM\n\t\t\"ktpcQuerySaveWithCancel\"\n\tITEM\n\t\t\"kgobQuerySaveWithCancel\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcQuerySave\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x05 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x01 0x05 0x00 0x00 0x44 0x00 0x00 0x01    // '????D???' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x01    // '????F???' \n\t0x01 0x05 0x00 0x00 0x60 0x00 0x00 0x01    // '????`???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x29 0x00 0x00 0x40    // '????)??@' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x40    // '????+??@' \n\t0x03 0x00 0x00 0x00 0x44 0x00 0x00 0x40    // '????D??@' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x40    // '????F??@' \n\t0x04 0x00 0x00 0x00 0x60 0x00 0x00 0x40    // '????`??@' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x11 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0xC0    // '????+??' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0xC0    // '????F??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x6F 0x20 0x79 0x6F 0x75    // '??Do you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x3A 0x0D 0x0A 0x01 0x20 0x53 0x61 0x76    // ':??? Sav' \n\t0x65 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'e change' \n\t0x73 0x20 0x74 0x6F 0x20 0x7E 0x31 0x33    // 's to ~13' \n\t0x31 0x37 0x3F 0x0D 0x0A 0x01 0x20 0x47    // '17???? G' \n\t0x65 0x74 0x20 0x72 0x69 0x64 0x20 0x6F    // 'et rid o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x63 0x68    // 'f the ch' \n\t0x61 0x6E 0x67 0x65 0x73 0x3F 0x0D 0x0A    // 'anges???' \n\t0x01 0x20 0x4B 0x65 0x65 0x70 0x20 0x77    // '? Keep w' \n\t0x6F 0x72 0x6B 0x69 0x6E 0x67 0x97 0x73    // 'orkings' \n\t0x61 0x76 0x65 0x20 0x6C 0x61 0x74 0x65    // 'ave late' \n\t0x72 0x3F                                  // 'r?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpcQuerySoundDelete\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Query to delete a sound (Y/N)\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Query to delete a sound (Y/N)\")) __HELP_PACK2\n\tBO OSK LONG kgobQueryTopics kgobQuerySoundDelete 0x0 ktpcQuerySoundDelete 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobQueryTopics\"\n\tITEM\n\t\t\"ktpcQuerySoundDelete\"\n\tITEM\n\t\t\"kgobQuerySoundDelete\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcQuerySoundDelete\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x01 0x05 0x00 0x00 0x3A 0x00 0x00 0x01    // '????:???' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x01 0x05 0x00 0x00 0x40 0x00 0x00 0x01    // '????@???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x40    // '????5??@' \n\t0x02 0x00 0x00 0x00 0x3A 0x00 0x00 0x40    // '????:??@' \n\t0x00 0x00 0x00 0x00 0x3C 0x00 0x00 0x40    // '????<??@' \n\t0x03 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x2E 0x00 0x00 0x82    // '????.??' \n\t0x05 0x00 0x00 0x00 0x35 0x00 0x00 0xC0    // '????5??' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0xC0    // '????<??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x6F 0x20 0x79 0x6F 0x75    // '??Do you' \n\t0x20 0x72 0x65 0x61 0x6C 0x6C 0x79 0x20    // ' really ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x67 0x65 0x74 0x20 0x72 0x69 0x64 0x20    // 'get rid ' \n\t0x6F 0x66 0x20 0x74 0x68 0x69 0x73 0x20    // 'of this ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x3F 0x0D 0x0A    // 'sound???' \n\t0x7E 0x31 0x33 0x31 0x39 0x0D 0x0A 0x01    // '~1319???' \n\t0x20 0x59 0x65 0x73 0x0D 0x0A 0x01 0x20    // ' Yes??? ' \n\t0x4E 0x6F                                  // 'No' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpcQueryQuit\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Query Quit (Y/N)\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Query Quit (Y/N)\")) __HELP_PACK2\n\tBO OSK LONG kgobQueryTopics kgobQueryQuit 0x0 ktpcQueryQuit 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobQueryTopics\"\n\tITEM\n\t\t\"ktpcQueryQuit\"\n\tITEM\n\t\t\"kgobQueryQuit\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcQueryQuit\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x06 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\nAG(4)\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x01 0x05 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x01 0x05 0x00 0x00 0x57 0x00 0x00 0x01    // '????W???' \n\t0x01 0x00 0x00 0x00 0x59 0x00 0x00 0x01    // '????Y???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2A 0x00 0x00 0x03    // '???*???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x40    // '????,??@' \n\t0x02 0x00 0x00 0x00 0x32 0x00 0x00 0x40    // '????2??@' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x40    // '????4??@' \n\t0x03 0x00 0x00 0x00 0x57 0x00 0x00 0x40    // '????W??@' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x40    // '????Y??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x59 0x00 0x00 0x82    // '????Y??' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0xC0    // '????,??' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0xC0    // '????4??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x6F 0x20 0x79 0x6F 0x75    // '??Do you' \n\t0x20 0x72 0x65 0x61 0x6C 0x6C 0x79 0x20    // ' really ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x71 0x75 0x69 0x74 0x20 0x33 0x44 0x20    // 'quit 3D ' \n\t0x4D 0x6F 0x76 0x69 0x65 0x20 0x4D 0x61    // 'Movie Ma' \n\t0x6B 0x65 0x72 0x3F 0x0D 0x0A 0x01 0x20    // 'ker???? ' \n\t0x59 0x65 0x73 0x2E 0x0D 0x0A 0x01 0x20    // 'Yes.??? ' \n\t0x4E 0x6F 0x20 0x77 0x61 0x79 0x21 0x20    // 'No way! ' \n\t0x20 0x49 0x27 0x6D 0x20 0x68 0x61 0x76    // ' I'm hav' \n\t0x69 0x6E 0x67 0x20 0x74 0x6F 0x6F 0x20    // 'ing too ' \n\t0x6D 0x75 0x63 0x68 0x20 0x66 0x75 0x6E    // 'much fun' \n\t0x21 0x0D 0x0A                             // '!??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpcQueryPurgeSounds\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Query purge snds on close (Y/N)\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Query purge snds on close (Y/N)\")) __HELP_PACK2\n\tBO OSK LONG kgobQueryTopics kgobQueryPurgeSounds 0x0 ktpcQueryOverwrite 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobQueryTopics\"\n\tITEM\n\t\t\"ktpcQueryPurgeSounds\"\n\tITEM\n\t\t\"kgobQueryPurgeSounds\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcQueryOverwrite\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x13 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\nAG(4)\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x55 0x00 0x00 0x01    // '????U???' \n\t0x01 0x05 0x00 0x00 0x81 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x83 0x00 0x00 0x01    // '???????' \n\t0x01 0x05 0x00 0x00 0xAA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x53 0x00 0x00 0x03    // '???S???' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x40    // '????U??@' \n\t0x02 0x00 0x00 0x00 0x81 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x83 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xAA 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x55 0x00 0x00 0xC0    // '????U??' \n\t0x01 0x00 0x00 0x00 0x83 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x59 0x6F 0x75 0x20 0x72 0x65    // '??You re' \n\t0x63 0x6F 0x72 0x64 0x65 0x64 0x20 0x6F    // 'corded o' \n\t0x72 0x20 0x69 0x6D 0x70 0x6F 0x72 0x74    // 'r import' \n\t0x65 0x64 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'ed sound' \n\t0x73 0x20 0x74 0x68 0x61 0x74 0x20 0x79    // 's that y' \n\t0x6F 0x75 0x20 0x64 0x69 0x64 0x6E 0x27    // 'ou didn'' \n\t0x74 0x20 0x75 0x73 0x65 0x20 0x69 0x6E    // 't use in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x2E 0x20 0x20 0x44 0x6F    // 'vie.  Do' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x3A 0x0D 0x0A 0x01    // 't to:???' \n\t0x20 0x20 0x47 0x65 0x74 0x20 0x72 0x69    // '  Get ri' \n\t0x64 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'd of the' \n\t0x6D 0x20 0x62 0x65 0x66 0x6F 0x72 0x65    // 'm before' \n\t0x20 0x63 0x6C 0x6F 0x73 0x69 0x6E 0x67    // ' closing' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x3F 0x0D 0x0A 0x01 0x20 0x20    // 'ie????  ' \n\t0x4C 0x65 0x61 0x76 0x65 0x20 0x74 0x68    // 'Leave th' \n\t0x65 0x20 0x75 0x6E 0x75 0x73 0x65 0x64    // 'e unused' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x73 0x20    // ' sounds ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x66    // 'in the f' \n\t0x69 0x6C 0x65 0x3F                        // 'ile?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpcQueryCD\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"Query find CD (Y/N)\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"Query find CD (Y/N)\")) __HELP_PACK2\n\tBO OSK LONG kgobQueryTopics kgobQueryCD 0x0 ktpcQueryCD 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobQueryTopics\"\n\tITEM\n\t\t\"ktpcQueryCD\"\n\tITEM\n\t\t\"kgobQueryCD\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcQueryCD\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\nAG(4)\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x01    // '????C???' \n\t0x01 0x05 0x00 0x00 0x60 0x00 0x00 0x01    // '????`???' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x01    // '????b???' \n\t0x01 0x05 0x00 0x00 0x6E 0x00 0x00 0x01    // '????n???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x03    // '????$???' \n\t0x0A 0x00 0x00 0xFD 0x41 0x00 0x00 0x03    // '???A???' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x40    // '????C??@' \n\t0x02 0x00 0x00 0x00 0x60 0x00 0x00 0x40    // '????`??@' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x40    // '????b??@' \n\t0x03 0x00 0x00 0x00 0x6E 0x00 0x00 0x40    // '????n??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x43 0x00 0x00 0xC0    // '????C??' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0xC0    // '????b??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x65 0x79 0x21 0x20 0x20    // '??Hey!  ' \n\t0x49 0x20 0x63 0x61 0x6E 0x27 0x74 0x20    // 'I can't ' \n\t0x66 0x69 0x6E 0x64 0x20 0x74 0x68 0x69    // 'find thi' \n\t0x73 0x20 0x43 0x44 0x21 0x0D 0x0A 0x7E    // 's CD!??~' \n\t0x31 0x33 0x31 0x38 0x0D 0x0A 0x44 0x6F    // '1318??Do' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x6D 0x65 0x20 0x74 0x6F 0x20    // 't me to ' \n\t0x6C 0x6F 0x6F 0x6B 0x20 0x61 0x67 0x61    // 'look aga' \n\t0x69 0x6E 0x3F 0x0D 0x0A 0x01 0x20 0x59    // 'in???? Y' \n\t0x65 0x73 0x20 0x70 0x6C 0x65 0x61 0x73    // 'es pleas' \n\t0x65 0x2C 0x20 0x69 0x74 0x27 0x73 0x20    // 'e, it's ' \n\t0x72 0x65 0x61 0x64 0x79 0x20 0x6E 0x6F    // 'ready no' \n\t0x77 0x2E 0x0D 0x0A 0x01 0x20 0x4E 0x6F    // 'w.??? No' \n\t0x20 0x74 0x68 0x61 0x6E 0x6B 0x73 0x2E    // ' thanks.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpcQueryOverwrite\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"Query overwrite on save (Y/N)\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"Query overwrite on save (Y/N)\")) __HELP_PACK2\n\tBO OSK LONG kgobQueryTopics kgobQueryOverwrite 0x0 ktpcQueryOverwrite 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobQueryTopics\"\n\tITEM\n\t\t\"ktpcQueryOverwrite\"\n\tITEM\n\t\t\"kgobQueryOverwrite\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcQueryOverwrite\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x29 0x01 0x00 0x00    // '????)???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x01 0x05 0x00 0x00 0x50 0x00 0x00 0x01    // '????P???' \n\t0x01 0x00 0x00 0x00 0x52 0x00 0x00 0x01    // '????R???' \n\t0x01 0x05 0x00 0x00 0x72 0x00 0x00 0x01    // '????r???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x30 0x00 0x00 0x03    // '???0???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x40    // '????2??@' \n\t0x02 0x00 0x00 0x00 0x50 0x00 0x00 0x40    // '????P??@' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0x40    // '????R??@' \n\t0x03 0x00 0x00 0x00 0x72 0x00 0x00 0x40    // '????r??@' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x82    // '????!??' \n\t0x05 0x00 0x00 0x00 0x32 0x00 0x00 0xC0    // '????2??' \n\t0x01 0x00 0x00 0x00 0x52 0x00 0x00 0xC0    // '????R??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x65 0x20 0x6D 0x6F    // '??The mo' \n\t0x76 0x69 0x65 0x20 0x7E 0x31 0x33 0x32    // 'vie ~132' \n\t0x30 0x20 0x61 0x6C 0x72 0x65 0x61 0x64    // '0 alread' \n\t0x79 0x20 0x65 0x78 0x69 0x73 0x74 0x73    // 'y exists' \n\t0x2E 0x0D 0x0A 0x44 0x6F 0x20 0x79 0x6F    // '.??Do yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x3A 0x0D 0x0A 0x01 0x20 0x20 0x52    // 'o:???  R' \n\t0x65 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // 'eplace i' \n\t0x74 0x20 0x77 0x69 0x74 0x68 0x20 0x74    // 't with t' \n\t0x68 0x69 0x73 0x20 0x6D 0x6F 0x76 0x69    // 'his movi' \n\t0x65 0x3F 0x0D 0x0A 0x01 0x20 0x20 0x47    // 'e????  G' \n\t0x69 0x76 0x65 0x20 0x74 0x68 0x69 0x73    // 'ive this' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x61    // ' movie a' \n\t0x6E 0x6F 0x74 0x68 0x65 0x72 0x20 0x6E    // 'nother n' \n\t0x61 0x6D 0x65 0x3F                        // 'ame?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpcQueryExitStudio\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"Query Exit Studio to where?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"Query Exit Studio to where?\")) __HELP_PACK2\n\tBO OSK LONG kgobQueryTopics kgobQueryExitStudio 0x0 ktpcQueryExitStudio 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobQueryTopics\"\n\tITEM\n\t\t\"ktpcQueryExitStudio\"\n\tITEM\n\t\t\"kgobQueryExitStudio\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcQueryExitStudio\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x01 0x05 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x01    // '????6???' \n\t0x01 0x05 0x00 0x00 0x4D 0x00 0x00 0x01    // '????M???' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x01    // '????O???' \n\t0x01 0x05 0x00 0x00 0x68 0x00 0x00 0x01    // '????h???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x17 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x34 0x00 0x00 0x40    // '????4??@' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x40    // '????6??@' \n\t0x03 0x00 0x00 0x00 0x4D 0x00 0x00 0x40    // '????M??@' \n\t0x00 0x00 0x00 0x00 0x4F 0x00 0x00 0x40    // '????O??@' \n\t0x04 0x00 0x00 0x00 0x68 0x00 0x00 0x40    // '????h??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x19 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0xC0    // '????6??' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0xC0    // '????O??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x68 0x61 0x74 0x20 0x64    // '??What d' \n\t0x6F 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'o you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x64 0x6F    // 'nt to do' \n\t0x3F 0x0D 0x0A 0x01 0x20 0x20 0x47 0x6F    // '????  Go' \n\t0x20 0x62 0x61 0x63 0x6B 0x20 0x74 0x6F    // ' back to' \n\t0x20 0x74 0x68 0x65 0x20 0x62 0x75 0x69    // ' the bui' \n\t0x6C 0x64 0x69 0x6E 0x67 0x3F 0x0D 0x0A    // 'lding???' \n\t0x01 0x20 0x20 0x51 0x75 0x69 0x74 0x20    // '?  Quit ' \n\t0x33 0x44 0x20 0x4D 0x6F 0x76 0x69 0x65    // '3D Movie' \n\t0x20 0x4D 0x61 0x6B 0x65 0x72 0x3F 0x0D    // ' Maker??' \n\t0x0A 0x01 0x20 0x20 0x43 0x6F 0x6E 0x74    // '??  Cont' \n\t0x69 0x6E 0x75 0x65 0x20 0x77 0x6F 0x72    // 'inue wor' \n\t0x6B 0x69 0x6E 0x67 0x20 0x68 0x65 0x72    // 'king her' \n\t0x65 0x3F                                  // 'e?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/basics.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcBasics00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"CO) 1 To start a new movie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"CO) 1 To start a new movie\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidPortfolio kidPlayHelpSounds 0x0 0x0 0x57415645 kwavBasics00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcBasics00\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidPortfolio\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavBasics00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x84 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2A 0x00 0x00 0x01    // '????*???' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x03    // '???? ???' \n\t0x0A 0x00 0x00 0xFD 0x29 0x00 0x00 0x03    // '???)???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x74 0x61    // '??To sta' \n\t0x72 0x74 0x20 0x61 0x20 0x6E 0x65 0x77    // 'rt a new' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20    // ' movie, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x50 0x6F 0x72 0x74 0x66 0x6F    // 'e Portfo' \n\t0x6C 0x69 0x6F 0x2E                        // 'lio.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpcBasics01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"CO) 2  Click new\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"CO) 2  Click new\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon3 kgobHowtoSequence kidPortsNew kidPlayHelpSounds 0x0 0x0 0x57415645 kwavBasics01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon3\"\n\tITEM\n\t\t\"ktpcBasics01\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidPortsNew\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavBasics01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x41 0x00 0x00 0x00    // '????A???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x4E 0x65 0x77 0x2E                        // 'New.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpcBasics02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"CO) 1 To open\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"CO) 1 To open\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidPortfolio kidPlayHelpSounds 0x0 0x0 0x57415645 kwavBasics02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcBasics02\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidPortfolio\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavBasics02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x98 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2F 0x00 0x00 0x01    // '????/???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x03    // '????%???' \n\t0x0A 0x00 0x00 0xFD 0x2E 0x00 0x00 0x03    // '???.???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6F 0x70 0x65    // '??To ope' \n\t0x6E 0x20 0x61 0x6E 0x20 0x65 0x78 0x69    // 'n an exi' \n\t0x73 0x74 0x69 0x6E 0x67 0x20 0x6D 0x6F    // 'sting mo' \n\t0x76 0x69 0x65 0x2C 0x20 0x63 0x6C 0x69    // 'vie, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x50    // 'ck the P' \n\t0x6F 0x72 0x74 0x66 0x6F 0x6C 0x69 0x6F    // 'ortfolio' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpcBasics03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"CO) 2  Click open\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"CO) 2  Click open\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon3 kgobHowtoSequence kidPortsPortfolio kidPlayHelpSounds 0x0 0x0 0x57415645 kwavBasics03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon3\"\n\tITEM\n\t\t\"ktpcBasics03\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidPortsPortfolio\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavBasics03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x44 0x00 0x00 0x00    // '????D???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x4F 0x70 0x65 0x6E 0x2E                   // 'Open.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpcBasics04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"CO) 1 To save\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"CO) 1 To save\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidPortfolio kidPlayHelpSounds 0x0 0x0 0x57415645 kwavBasics04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcBasics04\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidPortfolio\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavBasics04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6F 0x00 0x00 0x00    // '????o???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x61 0x76    // '??To sav' \n\t0x65 0x20 0x79 0x6F 0x75 0x72 0x20 0x77    // 'e your w' \n\t0x6F 0x72 0x6B 0x2C 0x20 0x63 0x6C 0x69    // 'ork, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x50    // 'ck the P' \n\t0x6F 0x72 0x74 0x66 0x6F 0x6C 0x69 0x6F    // 'ortfolio' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpcBasics05\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO) 2  Click save\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO) 2  Click save\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon3 kgobHowtoSequence kidPortsSave kidPlayHelpSounds 0x0 0x0 0x57415645 kwavBasics05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon3\"\n\tITEM\n\t\t\"ktpcBasics05\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidPortsSave\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavBasics05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x44 0x00 0x00 0x00    // '????D???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x53 0x61 0x76 0x65 0x2E                   // 'Save.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpcBasics06\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO) 1 To save\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO) 1 To save\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidPortfolio kidPlayHelpSounds 0x0 0x0 0x57415645 kwavBasics06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcBasics06\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidPortfolio\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavBasics06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9B 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x03    // '????>???' \n\t0x0A 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x6F 0x70    // '??To cop' \n\t0x79 0x20 0x61 0x20 0x6D 0x6F 0x76 0x69    // 'y a movi' \n\t0x65 0x20 0x61 0x6E 0x64 0x20 0x73 0x61    // 'e and sa' \n\t0x76 0x65 0x20 0x69 0x74 0x20 0x75 0x6E    // 've it un' \n\t0x64 0x65 0x72 0x20 0x61 0x20 0x64 0x69    // 'der a di' \n\t0x66 0x66 0x65 0x72 0x65 0x6E 0x74 0x20    // 'fferent ' \n\t0x6E 0x61 0x6D 0x65 0x2C 0x20 0x63 0x6C    // 'name, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x50 0x6F 0x72 0x74 0x66 0x6F 0x6C 0x69    // 'Portfoli' \n\t0x6F 0x2E                                  // 'o.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpcBasics07\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO) 2  Click save as\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO) 2  Click save as\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon3 kgobHowtoSequence kidPortsSaveAs kidPlayHelpSounds 0x0 0x0 0x57415645 kwavBasics07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon3\"\n\tITEM\n\t\t\"ktpcBasics07\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidPortsSaveAs\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavBasics07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x56 0x00 0x00 0x00    // '????V???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x53 0x61 0x76 0x65 0x20 0x41 0x73 0x2E    // 'Save As.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpcBasics08\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"CO) 1 To see tool tip\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"CO) 1 To see tool tip\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xC8 0x57415645 kwavBasics08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcBasics08\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavBasics08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcBasics09 __HELP_SYMBOL( STN \"ktpcBasics09\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x86 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x7B 0x00 0x00 0x40    // '????{??@' \n\t0x01 0x00 0x00 0x00 0x86 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7B 0x00 0x00 0x82    // '????{??' \n\t0x00 0x00 0x00 0x00 0x7B 0x00 0x00 0xC0    // '????{??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x61 0x20 0x74 0x6F 0x6F 0x6C 0x20    // ' a tool ' \n\t0x74 0x69 0x70 0x2C 0x20 0x6D 0x6F 0x76    // 'tip, mov' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'e the mo' \n\t0x75 0x73 0x65 0x20 0x63 0x75 0x72 0x73    // 'use curs' \n\t0x6F 0x72 0x20 0x6F 0x76 0x65 0x72 0x20    // 'or over ' \n\t0x74 0x68 0x65 0x20 0x74 0x6F 0x6F 0x6C    // 'the tool' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x68 0x65 0x6C 0x70 0x20 0x6F    // 't help o' \n\t0x6E 0x2E 0x20 0x20 0x57 0x61 0x69 0x74    // 'n.  Wait' \n\t0x2E 0x2E 0x2E 0x61 0x20 0x62 0x72 0x69    // '...a bri' \n\t0x65 0x66 0x20 0x64 0x65 0x73 0x63 0x72    // 'ef descr' \n\t0x69 0x70 0x74 0x69 0x6F 0x6E 0x20 0x6F    // 'iption o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 'f the to' \n\t0x6F 0x6C 0x20 0x61 0x70 0x70 0x65 0x61    // 'ol appea' \n\t0x72 0x73 0x2E 0x0D 0x0A 0x01 0x20 0x4D    // 'rs.??? M' \n\t0x6F 0x72 0x65 0x20 0x68 0x65 0x6C 0x70    // 'ore help' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= ktpcBasics09\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"Tip:  More help\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"Tip:  More help\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavBasics09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcBasics09\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavBasics09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x20 0x01 0x00 0x00    // '???? ???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x3B 0x00 0x00 0x80    // '????;??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3B 0x00 0x00 0x82    // '????;??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4D 0x6F 0x72    // '???  Mor' \n\t0x65 0x20 0x68 0x65 0x6C 0x70 0x0D 0x0A    // 'e help??' \n\t0x54 0x6F 0x20 0x67 0x65 0x74 0x20 0x6D    // 'To get m' \n\t0x6F 0x72 0x65 0x20 0x68 0x65 0x6C 0x70    // 'ore help' \n\t0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69 0x63    // '???Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x48 0x65    // 'k the He' \n\t0x6C 0x70 0x20 0x4D 0x61 0x63 0x68 0x69    // 'lp Machi' \n\t0x6E 0x65 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'ne.??To ' \n\t0x66 0x69 0x6E 0x64 0x20 0x6F 0x75 0x74    // 'find out' \n\t0x20 0x6D 0x6F 0x72 0x65 0x20 0x61 0x62    // ' more ab' \n\t0x6F 0x75 0x74 0x20 0x74 0x68 0x65 0x20    // 'out the ' \n\t0x74 0x6F 0x6F 0x6C 0x73 0x2C 0x20 0x63    // 'tools, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x20 0x62    // ' Tools b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x20 0x61 0x74    // 'utton at' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x6F 0x70    // ' the top' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x6D 0x61 0x63 0x68 0x69 0x6E 0x65 0x2E    // 'machine.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= ktpcBasics0A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO) 1 To get help\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO) 1 To get help\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobHowtoSequence kidBook kidPlayHelpSounds 0x0 0x0 0x57415645 kwavBasics0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpcBasics0A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidBook\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavBasics0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' 0x16102 0xFFFFFFFF __HELP_SYMBOL( STN )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcBasics0B __HELP_SYMBOL( STN \"ktpcBasics0B\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x40    // '????&??@' \n\t0x02 0x00 0x00 0x00 0x30 0x00 0x00 0x40    // '????0??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x26 0x00 0x00 0x82    // '????&??' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0xC0    // '????&??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x67 0x65 0x74    // '??To get' \n\t0x20 0x68 0x65 0x6C 0x70 0x2C 0x20 0x63    // ' help, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x48 0x65 0x6C 0x70 0x20 0x4D 0x61    // ' Help Ma' \n\t0x63 0x68 0x69 0x6E 0x65 0x2E 0x0D 0x0A    // 'chine.??' \n\t0x01 0x20 0x54 0x6F 0x6F 0x6C 0x74 0x69    // '? Toolti' \n\t0x70 0x73                                  // 'ps' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= ktpcBasics0B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"Tip:  Tooltips\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"Tip:  Tooltips\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavBasics0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcBasics0B\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavBasics0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x9B 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x31 0x00 0x00 0x03    // '???1???' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x80    // '????3??' \n\t0x00 0x00 0x02 0x00 0x6C 0x00 0x00 0x80    // '????l??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6C 0x00 0x00 0x82    // '????l??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x54 0x6F 0x6F    // '???  Too' \n\t0x6C 0x74 0x69 0x70 0x73 0x0D 0x0A 0x54    // 'ltips??T' \n\t0x6F 0x20 0x67 0x65 0x74 0x20 0x61 0x20    // 'o get a ' \n\t0x62 0x72 0x69 0x65 0x66 0x20 0x64 0x65    // 'brief de' \n\t0x73 0x63 0x72 0x69 0x70 0x74 0x69 0x6F    // 'scriptio' \n\t0x6E 0x20 0x6F 0x66 0x20 0x61 0x20 0x74    // 'n of a t' \n\t0x6F 0x6F 0x6C 0x0D 0x0A 0x95 0x09 0x4D    // 'ool???M' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x63 0x75    // 'mouse cu' \n\t0x72 0x73 0x6F 0x72 0x20 0x6F 0x76 0x65    // 'rsor ove' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 'r the to' \n\t0x6F 0x6C 0x20 0x79 0x6F 0x75 0x20 0x77    // 'ol you w' \n\t0x61 0x6E 0x74 0x20 0x68 0x65 0x6C 0x70    // 'ant help' \n\t0x20 0x6F 0x6E 0x2E 0x0D 0x0A 0x57 0x61    // ' on.??Wa' \n\t0x69 0x74 0x2E 0x2E 0x2E 0x61 0x20 0x62    // 'it...a b' \n\t0x72 0x69 0x65 0x66 0x20 0x64 0x65 0x73    // 'rief des' \n\t0x63 0x72 0x69 0x70 0x74 0x69 0x6F 0x6E    // 'cription' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x74 0x6F 0x6F 0x6C 0x20 0x61 0x70 0x70    // 'tool app' \n\t0x65 0x61 0x72 0x73 0x2E                   // 'ears.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= ktpcBasics0C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"CO) 1 To turn McZee's voice\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"CO) 1 To turn McZee's voice\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobHowtoSequence kidBook kidPlayHelpSounds 0x0 0x0 0x57415645 kwavBasics0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpcBasics0C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidBook\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavBasics0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x03    // '????+???' \n\t0x0A 0x00 0x00 0xFD 0x37 0x00 0x00 0x03    // '???7???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x40    // '????8??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x74 0x75 0x72    // '??To tur' \n\t0x6E 0x20 0x4D 0x63 0x5A 0x65 0x65 0x27    // 'n McZee'' \n\t0x73 0x20 0x76 0x6F 0x69 0x63 0x65 0x20    // 's voice ' \n\t0x6F 0x6E 0x20 0x6F 0x72 0x20 0x6F 0x66    // 'on or of' \n\t0x66 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'f, click' \n\t0x20 0x74 0x68 0x65 0x20 0x48 0x65 0x6C    // ' the Hel' \n\t0x70 0x20 0x4D 0x61 0x63 0x68 0x69 0x6E    // 'p Machin' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= ktpcBasics0D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO) 2 McZee's voice\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO) 2 McZee's voice\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kgobHelpBookVoice kidPlayHelpSounds 0x0 0x0 0x57415645 kwavBasics0D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcBasics0D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kgobHelpBookVoice\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavBasics0D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x01    // '????b???' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x40    // '????b??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x74 0x75 0x72    // '??To tur' \n\t0x6E 0x20 0x4D 0x63 0x5A 0x65 0x65 0x27    // 'n McZee'' \n\t0x73 0x20 0x76 0x6F 0x69 0x63 0x65 0x20    // 's voice ' \n\t0x6F 0x66 0x66 0x2C 0x20 0x63 0x6C 0x69    // 'off, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x69 0x73 0x20    // 'ck this ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E 0x20    // 'button. ' \n\t0x20 0x54 0x6F 0x20 0x74 0x75 0x72 0x6E    // ' To turn' \n\t0x20 0x68 0x69 0x73 0x20 0x76 0x6F 0x69    // ' his voi' \n\t0x63 0x65 0x20 0x6F 0x6E 0x20 0x61 0x67    // 'ce on ag' \n\t0x61 0x69 0x6E 0x2C 0x20 0x63 0x6C 0x69    // 'ain, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x62    // 'ck the b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x20 0x61 0x67    // 'utton ag' \n\t0x61 0x69 0x6E 0x2E                        // 'ain.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= ktpcBasics0E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO) 1 To go\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO) 1 To go\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobHowtoSequence kidMap kidPlayHelpSounds 0x0 0x0 0x57415645 kwavBasics0E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpcBasics0E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidMap\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavBasics0E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x64 0x00 0x00 0x01    // '????d???' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x03    // '????@???' \n\t0x0A 0x00 0x00 0xFD 0x43 0x00 0x00 0x03    // '???C???' \n\t0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x40    // '????d??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x71 0x75 0x69    // '??To qui' \n\t0x63 0x6B 0x6C 0x79 0x20 0x7A 0x69 0x70    // 'ckly zip' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x72 0x6F 0x6F 0x6D 0x20 0x6F 0x72 0x20    // 'room or ' \n\t0x70 0x72 0x6F 0x6A 0x65 0x63 0x74 0x20    // 'project ' \n\t0x6F 0x66 0x20 0x79 0x6F 0x75 0x72 0x20    // 'of your ' \n\t0x63 0x68 0x6F 0x69 0x63 0x65 0x2C 0x20    // 'choice, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x4D 0x61 0x70 0x20 0x74 0x68    // 'e Map th' \n\t0x65 0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'en click' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x67 0x6F 0x2E              // 'to go.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= ktpcBasics0F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO) 1 To quit\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO) 1 To quit\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobHowtoSequence kidExit kidPlayHelpSounds 0x0 0x0 0x57415645 kwavBasics0F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpcBasics0F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidExit\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavBasics0F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6F 0x00 0x00 0x00    // '????o???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x71 0x75 0x69    // '??To qui' \n\t0x74 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 't, click' \n\t0x20 0x20 0x45 0x78 0x69 0x74 0x2E         // '  Exit.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= ktpcBasics10\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO) 3 Click Close\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO) 3 Click Close\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kgobHelpBookCancel kidPlayHelpSounds 0x0 0x0 0x57415645 kwavBasics10\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcBasics10\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kgobHelpBookCancel\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavBasics10\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7E 0x00 0x00 0x00    // '????~???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x03    // '????!???' \n\t0x0A 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x40    // '????'??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x6C 0x6F    // '??To clo' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x48    // 'se the H' \n\t0x65 0x6C 0x70 0x20 0x4D 0x61 0x63 0x68    // 'elp Mach' \n\t0x69 0x6E 0x65 0x2C 0x20 0x63 0x6C 0x69    // 'ine, cli' \n\t0x63 0x6B 0x20 0x43 0x6C 0x6F 0x73 0x65    // 'ck Close' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/bio.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcBioPage1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Bio Page : Table of Contents\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Bio Page : Table of Contents\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_86=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage1\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_86=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_86=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_86, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x03 0x00 0x0A 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x0A 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x01 0x00 0x01 0x00 0x36 0x01 0x00 0x01    // '????6???' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x03    // '????????' \n\t0x24 0x00 0x00 0xFD 0x18 0x00 0x00 0x03    // '$??????' \n\t0x0A 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x00 0x00 0x00 0x00 0x36 0x01 0x00 0x40    // '????6??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xCF 0x00 0x00 0x02 0x16 0x00 0x00 0x80    // '??????' \n\t0xBD 0x00 0x00 0x02 0x38 0x00 0x00 0x80    // '???8??' \n\t0xBD 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0x38 0x00 0x00 0x82    // '????8??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_86=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_86, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x63 0x5A 0x65 0x65 0x27    // '??McZee'' \n\t0x73 0x20 0x54 0x61 0x6C 0x65 0x6E 0x74    // 's Talent' \n\t0x20 0x42 0x6F 0x6F 0x6B 0x20 0x0D 0x0A    // ' Book ??' \n\t0x20 0x20 0x59 0x6F 0x75 0x72 0x20 0x4D    // '  Your M' \n\t0x69 0x73 0x73 0x69 0x6F 0x6E 0x3A 0x20    // 'ission: ' \n\t0x20 0x46 0x69 0x6E 0x64 0x20 0x74 0x68    // ' Find th' \n\t0x65 0x20 0x70 0x61 0x67 0x65 0x73 0x21    // 'e pages!' \n\t0x0D 0x0A 0x41 0x63 0x74 0x6F 0x72 0x73    // '??Actors' \n\t0x27 0x20 0x72 0xE9 0x73 0x75 0x6D 0xE9    // '' rsum' \n\t0x73 0x20 0x61 0x72 0x65 0x20 0x73 0x63    // 's are sc' \n\t0x61 0x74 0x74 0x65 0x72 0x65 0x64 0x20    // 'attered ' \n\t0x74 0x68 0x72 0x6F 0x75 0x67 0x68 0x6F    // 'througho' \n\t0x75 0x74 0x20 0x74 0x68 0x65 0x20 0x62    // 'ut the b' \n\t0x75 0x69 0x6C 0x64 0x69 0x6E 0x67 0x21    // 'uilding!' \n\t0x20 0x20 0x48 0x65 0x6C 0x70 0x20 0x6D    // '  Help m' \n\t0x65 0x20 0x66 0x69 0x6E 0x64 0x20 0x74    // 'e find t' \n\t0x68 0x65 0x6D 0x21 0x0D 0x0A 0x0D 0x0A    // 'hem!????' \n\t0x54 0x6F 0x20 0x66 0x69 0x6E 0x64 0x20    // 'To find ' \n\t0x74 0x68 0x65 0x20 0x70 0x61 0x67 0x65    // 'the page' \n\t0x73 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 's, click' \n\t0x20 0x74 0x68 0x69 0x6E 0x67 0x73 0x20    // ' things ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x62    // 'in the b' \n\t0x75 0x69 0x6C 0x64 0x69 0x6E 0x67 0x2E    // 'uilding.' \n\t0x20 0x20 0x4F 0x6E 0x63 0x65 0x20 0x79    // '  Once y' \n\t0x6F 0x75 0x27 0x76 0x65 0x20 0x72 0x65    // 'ou've re' \n\t0x61 0x64 0x20 0x74 0x68 0x65 0x20 0x70    // 'ad the p' \n\t0x61 0x67 0x65 0x20 0x61 0x6E 0x64 0x20    // 'age and ' \n\t0x63 0x6C 0x6F 0x73 0x65 0x64 0x20 0x69    // 'closed i' \n\t0x74 0x2C 0x20 0x49 0x27 0x6C 0x6C 0x20    // 't, I'll ' \n\t0x70 0x75 0x74 0x20 0x74 0x68 0x65 0x20    // 'put the ' \n\t0x70 0x61 0x67 0x65 0x20 0x69 0x6E 0x20    // 'page in ' \n\t0x74 0x68 0x65 0x20 0x54 0x61 0x6C 0x65    // 'the Tale' \n\t0x6E 0x74 0x20 0x62 0x6F 0x6F 0x6B 0x2E    // 'nt book.' \n\t0x20 0x20 0x59 0x6F 0x75 0x27 0x6C 0x6C    // '  You'll' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x74 0x68    // ' find th' \n\t0x65 0x20 0x54 0x61 0x6C 0x65 0x6E 0x74    // 'e Talent' \n\t0x20 0x62 0x6F 0x6F 0x6B 0x20 0x69 0x6E    // ' book in' \n\t0x20 0x74 0x68 0x65 0x20 0x49 0x64 0x65    // ' the Ide' \n\t0x61 0x73 0x20 0x52 0x6F 0x6F 0x6D 0x2E    // 'as Room.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpcBioPage2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Bio Page 2  Alexander\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Bio Page 2  Alexander\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage2\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_12=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio1 __HELP_SYMBOL( STN \"ktipbio1\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio2 __HELP_SYMBOL( STN \"ktipbio2\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio4 __HELP_SYMBOL( STN \"ktipbio4\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio3 __HELP_SYMBOL( STN \"ktipbio3\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x23 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '#???????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xF7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xF9 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x04 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x01 0x00 0x01    // '????&???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x16 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xF9 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x04 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x26 0x01 0x00 0x03    // '????&???' \n\t0x00 0x00 0x00 0x00 0x74 0x00 0x00 0x04    // '????t???' \n\t0x0D 0x00 0x00 0xFE 0x85 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x0F 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x1C 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x1E 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x26 0x01 0x00 0x04    // '???&???' \n\t0x00 0x00 0x00 0x00 0x74 0x00 0x00 0x40    // '????t??@' \n\t0x01 0x00 0x00 0x00 0x85 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x06 0x01 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x0F 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x11 0x01 0x00 0x40    // '???????@' \n\t0x05 0x00 0x00 0x00 0x1C 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x1E 0x01 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x26 0x01 0x00 0x40    // '????&??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x0B 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x18 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x06 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x4C 0x45 0x58 0x41 0x4E    // '??ALEXAN' \n\t0x44 0x45 0x52 0x0D 0x0A 0x42 0x61 0x63    // 'DER??Bac' \n\t0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64 0x20    // 'kground ' \n\t0x0D 0x0A 0x41 0x6C 0x65 0x78 0x61 0x6E    // '??Alexan' \n\t0x64 0x65 0x72 0x20 0x77 0x61 0x73 0x20    // 'der was ' \n\t0x61 0x20 0x66 0x61 0x6D 0x6F 0x75 0x73    // 'a famous' \n\t0x20 0x73 0x69 0x6E 0x67 0x65 0x72 0x20    // ' singer ' \n\t0x69 0x6E 0x20 0x48 0x6F 0x6C 0x6C 0x61    // 'in Holla' \n\t0x6E 0x64 0x2C 0x20 0x6B 0x6E 0x6F 0x77    // 'nd, know' \n\t0x6E 0x20 0x66 0x6F 0x72 0x20 0x68 0x69    // 'n for hi' \n\t0x73 0x20 0x72 0x65 0x6D 0x61 0x6B 0x65    // 's remake' \n\t0x73 0x20 0x6F 0x66 0x20 0x56 0x69 0x6C    // 's of Vil' \n\t0x6C 0x61 0x67 0x65 0x20 0x50 0x65 0x6F    // 'lage Peo' \n\t0x70 0x6C 0x65 0x20 0x74 0x75 0x6E 0x65    // 'ple tune' \n\t0x73 0x20 0x61 0x6E 0x64 0x20 0x66 0x61    // 's and fa' \n\t0x6E 0x63 0x79 0x20 0x64 0x61 0x6E 0x63    // 'ncy danc' \n\t0x65 0x20 0x73 0x74 0x65 0x70 0x73 0x2E    // 'e steps.' \n\t0x20 0x20 0x48 0x65 0x20 0x77 0x61 0x73    // '  He was' \n\t0x20 0x6F 0x66 0x74 0x65 0x6E 0x20 0x6F    // ' often o' \n\t0x6E 0x20 0x74 0x65 0x6C 0x65 0x76 0x69    // 'n televi' \n\t0x73 0x69 0x6F 0x6E 0x20 0x61 0x6E 0x64    // 'sion and' \n\t0x20 0x77 0x6F 0x6E 0x20 0x73 0x65 0x76    // ' won sev' \n\t0x65 0x72 0x61 0x6C 0x20 0x45 0x75 0x72    // 'eral Eur' \n\t0x6F 0x70 0x65 0x61 0x6E 0x20 0x6D 0x75    // 'opean mu' \n\t0x73 0x69 0x63 0x20 0x63 0x6F 0x6D 0x70    // 'sic comp' \n\t0x65 0x74 0x69 0x74 0x69 0x6F 0x6E 0x73    // 'etitions' \n\t0x2C 0x20 0x6D 0x61 0x6B 0x69 0x6E 0x67    // ', making' \n\t0x20 0x68 0x69 0x6D 0x20 0x61 0x20 0x6D    // ' him a m' \n\t0x75 0x73 0x69 0x63 0x20 0x68 0x65 0x72    // 'usic her' \n\t0x6F 0x20 0x69 0x6E 0x20 0x68 0x69 0x73    // 'o in his' \n\t0x20 0x63 0x6F 0x75 0x6E 0x74 0x72 0x79    // ' country' \n\t0x2E 0x0D 0x0A 0x44 0x72 0x65 0x61 0x6D    // '.??Dream' \n\t0x20 0x52 0x6F 0x6C 0x65 0x73 0x0D 0x0A    // ' Roles??' \n\t0x4C 0x69 0x62 0x72 0x61 0x72 0x69 0x61    // 'Libraria' \n\t0x6E 0x3B 0x20 0x46 0x6F 0x6F 0x64 0x20    // 'n; Food ' \n\t0x43 0x72 0x69 0x74 0x69 0x63 0x3B 0x20    // 'Critic; ' \n\t0x45 0x78 0x70 0x6C 0x6F 0x72 0x65 0x72    // 'Explorer' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpcBioPage3\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Bio Page 3  Augustin\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Bio Page 3  Augustin\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage3\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_26=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D2, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio6 __HELP_SYMBOL( STN \"ktipbio6\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio7 __HELP_SYMBOL( STN \"ktipbio7\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio8 __HELP_SYMBOL( STN \"ktipbio8\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio5 __HELP_SYMBOL( STN \"ktipbio5\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x24 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '$???????' \n\t0x01 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xC7 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xC8 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD2 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xD4 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDF 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xE1 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x09 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xD4 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xDF 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xC8 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xD1 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xE1 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xED 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xEF 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xF2 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xF4 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x09 0x02 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0xC8 0x01 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xD1 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE1 0x01 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xED 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xEF 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xF2 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF4 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0x09 0x02 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x0A 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x17 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE1 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D2, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x55 0x47 0x55 0x53 0x54    // '??AUGUST' \n\t0x49 0x4E 0x0D 0x0A 0x42 0x61 0x63 0x6B    // 'IN??Back' \n\t0x67 0x72 0x6F 0x75 0x6E 0x64 0x20 0x0D    // 'ground ?' \n\t0x0A 0x41 0x75 0x67 0x75 0x73 0x74 0x69    // '?Augusti' \n\t0x6E 0x20 0x65 0x6D 0x65 0x72 0x67 0x65    // 'n emerge' \n\t0x64 0x20 0x66 0x72 0x6F 0x6D 0x20 0x61    // 'd from a' \n\t0x20 0x64 0x75 0x73 0x74 0x79 0x20 0x74    // ' dusty t' \n\t0x69 0x6D 0x65 0x20 0x63 0x61 0x70 0x73    // 'ime caps' \n\t0x75 0x6C 0x65 0x20 0x34 0x32 0x20 0x79    // 'ule 42 y' \n\t0x65 0x61 0x72 0x73 0x20 0x61 0x67 0x6F    // 'ears ago' \n\t0x2E 0x20 0x48 0x65 0x27 0x73 0x20 0x6F    // '. He's o' \n\t0x72 0x69 0x67 0x69 0x6E 0x61 0x6C 0x6C    // 'riginall' \n\t0x79 0x20 0x66 0x72 0x6F 0x6D 0x20 0x61    // 'y from a' \n\t0x6E 0x63 0x69 0x65 0x6E 0x74 0x20 0x52    // 'ncient R' \n\t0x6F 0x6D 0x65 0x2C 0x20 0x77 0x68 0x65    // 'ome, whe' \n\t0x72 0x65 0x20 0x68 0x65 0x20 0x73 0x61    // 're he sa' \n\t0x6E 0x67 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ng in th' \n\t0x65 0x20 0x63 0x6F 0x75 0x72 0x74 0x20    // 'e court ' \n\t0x6F 0x66 0x20 0x65 0x6D 0x70 0x65 0x72    // 'of emper' \n\t0x6F 0x72 0x73 0x2E 0x20 0x42 0x75 0x74    // 'ors. But' \n\t0x20 0x74 0x68 0x65 0x6E 0x20 0x61 0x6E    // ' then an' \n\t0x6F 0x74 0x68 0x65 0x72 0x20 0x77 0x61    // 'other wa' \n\t0x72 0x20 0x73 0x74 0x61 0x72 0x74 0x65    // 'r starte' \n\t0x64 0x2C 0x20 0x73 0x6F 0x20 0x68 0x65    // 'd, so he' \n\t0x20 0x74 0x6F 0x6F 0x6B 0x20 0x64 0x65    // ' took de' \n\t0x65 0x70 0x20 0x62 0x72 0x65 0x61 0x74    // 'ep breat' \n\t0x68 0x73 0x20 0x75 0x6E 0x74 0x69 0x6C    // 'hs until' \n\t0x20 0x68 0x65 0x20 0x73 0x68 0x72 0x75    // ' he shru' \n\t0x6E 0x6B 0x20 0x73 0x6F 0x20 0x73 0x6D    // 'nk so sm' \n\t0x61 0x6C 0x6C 0x20 0x74 0x68 0x61 0x74    // 'all that' \n\t0x20 0x68 0x65 0x20 0x63 0x6F 0x75 0x6C    // ' he coul' \n\t0x64 0x20 0x63 0x72 0x61 0x77 0x6C 0x20    // 'd crawl ' \n\t0x69 0x6E 0x74 0x6F 0x20 0x61 0x20 0x6A    // 'into a j' \n\t0x61 0x72 0x2E 0x20 0x0D 0x0A 0x43 0x65    // 'ar. ??Ce' \n\t0x6E 0x74 0x75 0x72 0x69 0x65 0x73 0x20    // 'nturies ' \n\t0x6C 0x61 0x74 0x65 0x72 0x2C 0x20 0x61    // 'later, a' \n\t0x20 0x6C 0x69 0x74 0x74 0x6C 0x65 0x20    // ' little ' \n\t0x49 0x74 0x61 0x6C 0x69 0x61 0x6E 0x20    // 'Italian ' \n\t0x6B 0x69 0x64 0x20 0x61 0x63 0x63 0x69    // 'kid acci' \n\t0x64 0x65 0x6E 0x74 0x61 0x6C 0x6C 0x79    // 'dentally' \n\t0x20 0x64 0x75 0x67 0x20 0x75 0x70 0x20    // ' dug up ' \n\t0x74 0x68 0x65 0x20 0x6A 0x61 0x72 0x2E    // 'the jar.' \n\t0x20 0x20 0x49 0x74 0x20 0x74 0x6F 0x6F    // '  It too' \n\t0x6B 0x20 0x41 0x75 0x67 0x75 0x73 0x74    // 'k August' \n\t0x69 0x6E 0x20 0x61 0x77 0x68 0x69 0x6C    // 'in awhil' \n\t0x65 0x20 0x74 0x6F 0x20 0x61 0x64 0x6A    // 'e to adj' \n\t0x75 0x73 0x74 0x20 0x74 0x6F 0x20 0x74    // 'ust to t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x64 0x65 0x72    // 'he moder' \n\t0x6E 0x20 0x77 0x6F 0x72 0x6C 0x64 0x2D    // 'n world-' \n\t0x2D 0x65 0x73 0x70 0x65 0x63 0x69 0x61    // '-especia' \n\t0x6C 0x6C 0x79 0x20 0x54 0x56 0x2E 0x20    // 'lly TV. ' \n\t0x20 0x45 0x76 0x65 0x6E 0x74 0x75 0x61    // ' Eventua' \n\t0x6C 0x6C 0x79 0x20 0x41 0x75 0x67 0x75    // 'lly Augu' \n\t0x73 0x74 0x69 0x6E 0x20 0x67 0x6F 0x74    // 'stin got' \n\t0x20 0x61 0x20 0x6A 0x6F 0x62 0x20 0x64    // ' a job d' \n\t0x65 0x6C 0x69 0x76 0x65 0x72 0x69 0x6E    // 'eliverin' \n\t0x67 0x20 0x73 0x69 0x6E 0x67 0x69 0x6E    // 'g singin' \n\t0x67 0x20 0x74 0x65 0x6C 0x65 0x67 0x72    // 'g telegr' \n\t0x61 0x6D 0x73 0x2E 0x0D 0x0A 0x44 0x72    // 'ams.??Dr' \n\t0x65 0x61 0x6D 0x20 0x52 0x6F 0x6C 0x65    // 'eam Role' \n\t0x73 0x0D 0x0A 0x4F 0x70 0x65 0x72 0x61    // 's??Opera' \n\t0x20 0x53 0x69 0x6E 0x67 0x65 0x72 0x3B    // ' Singer;' \n\t0x20 0x43 0x6F 0x70 0x3B 0x20 0x48 0x6F    // ' Cop; Ho' \n\t0x6D 0x65 0x20 0x53 0x61 0x66 0x65 0x74    // 'me Safet' \n\t0x79 0x20 0x49 0x6E 0x73 0x70 0x65 0x63    // 'y Inspec' \n\t0x74 0x6F 0x72                             // 'tor' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpcBioPage4\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Bio Page 4  Bella\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Bio Page 4  Bella\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_AE=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage4\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_AE=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_17=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_AE, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio9 __HELP_SYMBOL( STN \"ktipbio9\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio10 __HELP_SYMBOL( STN \"ktipbio10\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio11 __HELP_SYMBOL( STN \"ktipbio11\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio12 __HELP_SYMBOL( STN \"ktipbio12\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_AE=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_AE, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE7 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xAB 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xB6 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x44 0x01 0x00 0x04    // '????D???' \n\t0x0D 0x00 0x00 0xFE 0x4A 0x01 0x00 0x04    // '???J???' \n\t0x00 0x00 0x00 0x00 0xB8 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xC5 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xC7 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xDE 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xE0 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE7 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x44 0x01 0x00 0x40    // '????D??@' \n\t0x01 0x00 0x00 0x00 0x4A 0x01 0x00 0x40    // '????J??@' \n\t0x00 0x00 0x00 0x00 0xB8 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xC5 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC7 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xDE 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE0 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xE7 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x07 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0xAB 0x01 0x00 0x80    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB8 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_AE=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_AE, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x45 0x4C 0x4C 0x41 0x0D    // '??BELLA?' \n\t0x0A 0x42 0x61 0x63 0x6B 0x67 0x72 0x6F    // '?Backgro' \n\t0x75 0x6E 0x64 0x0D 0x0A 0x42 0x65 0x6C    // 'und??Bel' \n\t0x6C 0x61 0x20 0x69 0x73 0x20 0x61 0x20    // 'la is a ' \n\t0x6D 0x61 0x74 0x68 0x20 0x74 0x65 0x61    // 'math tea' \n\t0x63 0x68 0x65 0x72 0x2E 0x20 0x41 0x74    // 'cher. At' \n\t0x20 0x73 0x63 0x68 0x6F 0x6F 0x6C 0x2C    // ' school,' \n\t0x20 0x73 0x68 0x65 0x20 0x69 0x73 0x20    // ' she is ' \n\t0x61 0x6C 0x77 0x61 0x79 0x73 0x20 0x6A    // 'always j' \n\t0x75 0x73 0x74 0x20 0x73 0x6F 0x97 0x73    // 'ust sos' \n\t0x68 0x65 0x20 0x73 0x6D 0x69 0x6C 0x65    // 'he smile' \n\t0x73 0x20 0x70 0x6F 0x6C 0x69 0x74 0x65    // 's polite' \n\t0x6C 0x79 0x2C 0x20 0x73 0x70 0x65 0x61    // 'ly, spea' \n\t0x6B 0x73 0x20 0x70 0x6F 0x6C 0x69 0x74    // 'ks polit' \n\t0x65 0x6C 0x79 0x2C 0x20 0x61 0x6E 0x64    // 'ely, and' \n\t0x20 0x74 0x65 0x61 0x63 0x68 0x65 0x73    // ' teaches' \n\t0x20 0x6A 0x75 0x73 0x74 0x20 0x74 0x68    // ' just th' \n\t0x65 0x20 0x72 0x69 0x67 0x68 0x74 0x20    // 'e right ' \n\t0x74 0x68 0x69 0x6E 0x67 0x73 0x20 0x69    // 'things i' \n\t0x6E 0x20 0x6A 0x75 0x73 0x74 0x20 0x74    // 'n just t' \n\t0x68 0x65 0x20 0x72 0x69 0x67 0x68 0x74    // 'he right' \n\t0x20 0x77 0x61 0x79 0x2E 0x20 0x42 0x75    // ' way. Bu' \n\t0x74 0x20 0x61 0x77 0x61 0x79 0x20 0x66    // 't away f' \n\t0x72 0x6F 0x6D 0x20 0x73 0x63 0x68 0x6F    // 'rom scho' \n\t0x6F 0x6C 0x2C 0x20 0x42 0x65 0x6C 0x6C    // 'ol, Bell' \n\t0x61 0x20 0x69 0x73 0x20 0x64 0x69 0x66    // 'a is dif' \n\t0x66 0x65 0x72 0x65 0x6E 0x74 0x2E 0x20    // 'ferent. ' \n\t0x53 0x68 0x65 0x20 0x64 0x6F 0x65 0x73    // 'She does' \n\t0x20 0x77 0x68 0x61 0x74 0x20 0x73 0x68    // ' what sh' \n\t0x65 0x20 0x6C 0x6F 0x76 0x65 0x73 0x2C    // 'e loves,' \n\t0x20 0x77 0x68 0x69 0x63 0x68 0x20 0x69    // ' which i' \n\t0x73 0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B    // 's to mak' \n\t0x65 0x20 0x70 0x65 0x6F 0x70 0x6C 0x65    // 'e people' \n\t0x20 0x6C 0x61 0x75 0x67 0x68 0x2E 0x20    // ' laugh. ' \n\t0x4E 0x6F 0x20 0x6F 0x6E 0x65 0x2C 0x20    // 'No one, ' \n\t0x6E 0x6F 0x74 0x20 0x65 0x76 0x65 0x6E    // 'not even' \n\t0x20 0x68 0x65 0x72 0x20 0x70 0x61 0x72    // ' her par' \n\t0x65 0x6E 0x74 0x73 0x2C 0x20 0x6B 0x6E    // 'ents, kn' \n\t0x6F 0x77 0x73 0x20 0x74 0x68 0x61 0x74    // 'ows that' \n\t0x20 0x42 0x65 0x6C 0x6C 0x61 0x20 0x64    // ' Bella d' \n\t0x6F 0x65 0x73 0x20 0x61 0x20 0x63 0x6F    // 'oes a co' \n\t0x6D 0x65 0x64 0x79 0x20 0x61 0x63 0x74    // 'medy act' \n\t0x20 0x74 0x68 0x72 0x65 0x65 0x20 0x6E    // ' three n' \n\t0x69 0x67 0x68 0x74 0x73 0x20 0x61 0x20    // 'ights a ' \n\t0x77 0x65 0x65 0x6B 0x20 0x61 0x74 0x20    // 'week at ' \n\t0x61 0x20 0x6C 0x6F 0x63 0x61 0x6C 0x20    // 'a local ' \n\t0x4D 0x65 0x78 0x69 0x63 0x61 0x6E 0x20    // 'Mexican ' \n\t0x72 0x65 0x73 0x74 0x61 0x75 0x72 0x61    // 'restaura' \n\t0x6E 0x74 0x2E 0x20 0x4E 0x6F 0x20 0x77    // 'nt. No w' \n\t0x6F 0x6E 0x64 0x65 0x72 0x20 0x73 0x68    // 'onder sh' \n\t0x65 0x20 0x6C 0x6F 0x6F 0x6B 0x73 0x20    // 'e looks ' \n\t0x73 0x6F 0x20 0x74 0x69 0x72 0x65 0x64    // 'so tired' \n\t0x20 0x69 0x6E 0x20 0x63 0x6C 0x61 0x73    // ' in clas' \n\t0x73 0x21 0x20 0x0D 0x0A 0x44 0x72 0x65    // 's! ??Dre' \n\t0x61 0x6D 0x20 0x52 0x6F 0x6C 0x65 0x73    // 'am Roles' \n\t0x0D 0x0A 0x4D 0x61 0x64 0x61 0x6D 0x65    // '??Madame' \n\t0x20 0x53 0x70 0x6F 0x6F 0x6B 0x79 0x3B    // ' Spooky;' \n\t0x20 0x53 0x74 0x72 0x65 0x65 0x74 0x20    // ' Street ' \n\t0x46 0x61 0x69 0x72 0x20 0x45 0x6E 0x74    // 'Fair Ent' \n\t0x65 0x72 0x74 0x61 0x69 0x6E 0x65 0x72    // 'ertainer' \n\t0x3B 0x20 0x54 0x6F 0x75 0x72 0x69 0x73    // '; Touris' \n\t0x74                                       // 't' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpcBioPage5\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Bio Page 5  Benedict\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Bio Page 5  Benedict\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_32=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage5\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_32=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio13 __HELP_SYMBOL( STN \"ktipbio13\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio14 __HELP_SYMBOL( STN \"ktipbio14\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio15 __HELP_SYMBOL( STN \"ktipbio15\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio16 __HELP_SYMBOL( STN \"ktipbio16\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_32=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x92 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x16 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x54 0x01 0x00 0x03    // '????T???' \n\t0x0A 0x00 0x00 0xFD 0x5F 0x01 0x00 0x03    // '???_???' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x04    // '????_???' \n\t0x0D 0x00 0x00 0xFE 0x68 0x00 0x00 0x04    // '???h???' \n\t0x00 0x00 0x00 0x00 0x61 0x01 0x00 0x04    // '????a???' \n\t0x0D 0x00 0x00 0xFE 0x73 0x01 0x00 0x04    // '???s???' \n\t0x00 0x00 0x00 0x00 0x75 0x01 0x00 0x04    // '????u???' \n\t0x0D 0x00 0x00 0xFE 0x83 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x85 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x92 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x40    // '????_??@' \n\t0x01 0x00 0x00 0x00 0x68 0x00 0x00 0x40    // '????h??@' \n\t0x00 0x00 0x00 0x00 0x61 0x01 0x00 0x40    // '????a??@' \n\t0x02 0x00 0x00 0x00 0x73 0x01 0x00 0x40    // '????s??@' \n\t0x00 0x00 0x00 0x00 0x75 0x01 0x00 0x40    // '????u??@' \n\t0x03 0x00 0x00 0x00 0x83 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x85 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0x92 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x0A 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x16 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x61 0x01 0x00 0x82    // '????a??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_32=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x45 0x4E 0x45 0x44 0x49    // '??BENEDI' \n\t0x43 0x54 0x0D 0x0A 0x42 0x61 0x63 0x6B    // 'CT??Back' \n\t0x67 0x72 0x6F 0x75 0x6E 0x64 0x0D 0x0A    // 'ground??' \n\t0x42 0x65 0x6E 0x65 0x64 0x69 0x63 0x74    // 'Benedict' \n\t0x20 0x69 0x73 0x20 0x33 0x31 0x20 0x61    // ' is 31 a' \n\t0x6E 0x64 0x20 0x69 0x74 0x20 0x69 0x73    // 'nd it is' \n\t0x20 0x61 0x20 0x6D 0x69 0x72 0x61 0x63    // ' a mirac' \n\t0x6C 0x65 0x2E 0x20 0x46 0x72 0x6F 0x6D    // 'le. From' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x69 0x6D    // ' the tim' \n\t0x65 0x20 0x68 0x65 0x20 0x77 0x61 0x73    // 'e he was' \n\t0x20 0x61 0x20 0x6B 0x69 0x64 0x2C 0x20    // ' a kid, ' \n\t0x68 0x65 0x20 0x6C 0x6F 0x76 0x65 0x64    // 'he loved' \n\t0x20 0x63 0x68 0x65 0x6D 0x69 0x73 0x74    // ' chemist' \n\t0x72 0x79 0x2E 0x20 0x48 0x69 0x73 0x20    // 'ry. His ' \n\t0x63 0x6F 0x6E 0x63 0x6F 0x63 0x74 0x69    // 'concocti' \n\t0x6F 0x6E 0x73 0x20 0x62 0x75 0x62 0x62    // 'ons bubb' \n\t0x6C 0x65 0x64 0x20 0x61 0x6E 0x64 0x20    // 'led and ' \n\t0x73 0x70 0x65 0x77 0x65 0x64 0x20 0x69    // 'spewed i' \n\t0x6E 0x20 0x62 0x6C 0x75 0x65 0x73 0x20    // 'n blues ' \n\t0x61 0x6E 0x64 0x20 0x67 0x72 0x65 0x65    // 'and gree' \n\t0x6E 0x73 0x2E 0x20 0x54 0x68 0x65 0x6E    // 'ns. Then' \n\t0x2C 0x20 0x69 0x6E 0x20 0x61 0x20 0x68    // ', in a h' \n\t0x69 0x67 0x68 0x20 0x73 0x63 0x68 0x6F    // 'igh scho' \n\t0x6F 0x6C 0x20 0x63 0x68 0x65 0x6D 0x69    // 'ol chemi' \n\t0x73 0x74 0x72 0x79 0x20 0x6C 0x61 0x62    // 'stry lab' \n\t0x2C 0x20 0x74 0x68 0x65 0x20 0x62 0x6C    // ', the bl' \n\t0x75 0x65 0x2D 0x67 0x72 0x65 0x65 0x6E    // 'ue-green' \n\t0x20 0x68 0x61 0x7A 0x65 0x20 0x74 0x75    // ' haze tu' \n\t0x72 0x6E 0x65 0x64 0x20 0x62 0x6C 0x61    // 'rned bla' \n\t0x63 0x6B 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'ck, and ' \n\t0x74 0x68 0x65 0x6E 0x20 0x74 0x68 0x65    // 'then the' \n\t0x72 0x65 0x20 0x77 0x61 0x73 0x20 0x61    // 're was a' \n\t0x6E 0x20 0x61 0x77 0x65 0x73 0x6F 0x6D    // 'n awesom' \n\t0x65 0x20 0x65 0x78 0x70 0x6C 0x6F 0x73    // 'e explos' \n\t0x69 0x6F 0x6E 0x2E 0x20 0x42 0x65 0x6E    // 'ion. Ben' \n\t0x65 0x64 0x69 0x63 0x74 0x27 0x73 0x20    // 'edict's ' \n\t0x62 0x75 0x72 0x6E 0x73 0x20 0x61 0x72    // 'burns ar' \n\t0x65 0x20 0x73 0x74 0x69 0x6C 0x6C 0x20    // 'e still ' \n\t0x68 0x65 0x61 0x6C 0x69 0x6E 0x67 0x2C    // 'healing,' \n\t0x20 0x62 0x75 0x74 0x20 0x68 0x65 0x92    // ' but he' \n\t0x73 0x20 0x67 0x6C 0x61 0x64 0x20 0x68    // 's glad h' \n\t0x65 0x20 0x73 0x75 0x72 0x76 0x69 0x76    // 'e surviv' \n\t0x65 0x64 0x2E 0x20 0x0D 0x0A 0x44 0x72    // 'ed. ??Dr' \n\t0x65 0x61 0x6D 0x20 0x52 0x6F 0x6C 0x65    // 'eam Role' \n\t0x73 0x0D 0x0A 0x42 0x61 0x63 0x6B 0x2D    // 's??Back-' \n\t0x74 0x6F 0x2D 0x4C 0x69 0x66 0x65 0x20    // 'to-Life ' \n\t0x4D 0x75 0x6D 0x6D 0x79 0x3B 0x20 0x49    // 'Mummy; I' \n\t0x6E 0x6A 0x75 0x72 0x65 0x64 0x20 0x56    // 'njured V' \n\t0x69 0x63 0x74 0x69 0x6D 0x3B 0x20 0x41    // 'ictim; A' \n\t0x6E 0x63 0x69 0x65 0x6E 0x74 0x20 0x4D    // 'ncient M' \n\t0x75 0x6D 0x6D 0x79                        // 'ummy' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpcBioPage6\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"Bio Page 6  Billy\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"Bio Page 6  Billy\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_29=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage6\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio17 __HELP_SYMBOL( STN \"ktipbio17\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio18 __HELP_SYMBOL( STN \"ktipbio18\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio19 __HELP_SYMBOL( STN \"ktipbio19\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio20 __HELP_SYMBOL( STN \"ktipbio20\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xCE 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x9C 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xA7 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x94 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x99 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xA9 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xB0 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xB2 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xB9 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xBB 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xCE 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x94 0x01 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0x99 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA9 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xB0 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xB2 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xB9 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xBB 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xCE 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x07 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x13 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xA9 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x49 0x4C 0x4C 0x59 0x0D    // '??BILLY?' \n\t0x0A 0x42 0x61 0x63 0x6B 0x67 0x72 0x6F    // '?Backgro' \n\t0x75 0x6E 0x64 0x0D 0x0A 0x42 0x69 0x6C    // 'und??Bil' \n\t0x6C 0x79 0x20 0x69 0x73 0x20 0x61 0x20    // 'ly is a ' \n\t0x63 0x6F 0x6F 0x6B 0x20 0x61 0x74 0x20    // 'cook at ' \n\t0x61 0x20 0x73 0x65 0x61 0x66 0x6F 0x6F    // 'a seafoo' \n\t0x64 0x20 0x72 0x65 0x73 0x74 0x61 0x75    // 'd restau' \n\t0x72 0x61 0x6E 0x74 0x20 0x69 0x6E 0x20    // 'rant in ' \n\t0x54 0x6F 0x72 0x6F 0x6E 0x74 0x6F 0x2E    // 'Toronto.' \n\t0x20 0x48 0x65 0x20 0x6C 0x69 0x76 0x65    // ' He live' \n\t0x73 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 's in the' \n\t0x20 0x62 0x69 0x67 0x20 0x63 0x69 0x74    // ' big cit' \n\t0x79 0x20 0x6E 0x6F 0x77 0x2C 0x20 0x62    // 'y now, b' \n\t0x75 0x74 0x20 0x68 0x65 0x20 0x63 0x6F    // 'ut he co' \n\t0x6D 0x65 0x73 0x20 0x66 0x72 0x6F 0x6D    // 'mes from' \n\t0x20 0x61 0x20 0x66 0x69 0x73 0x68 0x65    // ' a fishe' \n\t0x72 0x6D 0x61 0x6E 0x27 0x73 0x20 0x66    // 'rman's f' \n\t0x61 0x6D 0x69 0x6C 0x79 0x20 0x69 0x6E    // 'amily in' \n\t0x20 0x61 0x20 0x74 0x69 0x6E 0x79 0x20    // ' a tiny ' \n\t0x74 0x6F 0x77 0x6E 0x20 0x69 0x6E 0x20    // 'town in ' \n\t0x4E 0x6F 0x76 0x61 0x20 0x53 0x63 0x6F    // 'Nova Sco' \n\t0x74 0x69 0x61 0x2E 0x20 0x41 0x74 0x20    // 'tia. At ' \n\t0x74 0x68 0x65 0x20 0x72 0x65 0x73 0x74    // 'the rest' \n\t0x61 0x75 0x72 0x61 0x6E 0x74 0x20 0x68    // 'aurant h' \n\t0x65 0x20 0x6C 0x6F 0x76 0x65 0x73 0x20    // 'e loves ' \n\t0x74 0x6F 0x20 0x70 0x72 0x65 0x70 0x61    // 'to prepa' \n\t0x72 0x65 0x20 0x66 0x69 0x73 0x68 0x2C    // 're fish,' \n\t0x20 0x62 0x65 0x63 0x61 0x75 0x73 0x65    // ' because' \n\t0x20 0x69 0x74 0x20 0x72 0x65 0x6D 0x69    // ' it remi' \n\t0x6E 0x64 0x73 0x20 0x68 0x69 0x6D 0x20    // 'nds him ' \n\t0x6F 0x66 0x20 0x68 0x69 0x73 0x20 0x64    // 'of his d' \n\t0x61 0x79 0x73 0x20 0x66 0x69 0x73 0x68    // 'ays fish' \n\t0x69 0x6E 0x67 0x20 0x77 0x69 0x74 0x68    // 'ing with' \n\t0x20 0x68 0x69 0x73 0x20 0x66 0x61 0x6D    // ' his fam' \n\t0x69 0x6C 0x79 0x2E 0x20 0x48 0x69 0x73    // 'ily. His' \n\t0x20 0x6C 0x6F 0x76 0x65 0x20 0x6F 0x66    // ' love of' \n\t0x20 0x66 0x69 0x73 0x68 0x20 0x69 0x73    // ' fish is' \n\t0x20 0x73 0x65 0x63 0x6F 0x6E 0x64 0x20    // ' second ' \n\t0x6F 0x6E 0x6C 0x79 0x20 0x74 0x6F 0x20    // 'only to ' \n\t0x68 0x69 0x73 0x20 0x74 0x72 0x75 0x65    // 'his true' \n\t0x20 0x70 0x61 0x73 0x73 0x69 0x6F 0x6E    // ' passion' \n\t0x2C 0x20 0x64 0x61 0x6E 0x63 0x69 0x6E    // ', dancin' \n\t0x67 0x2E 0x20 0x42 0x69 0x6C 0x6C 0x79    // 'g. Billy' \n\t0x27 0x73 0x20 0x73 0x75 0x63 0x68 0x20    // ''s such ' \n\t0x61 0x20 0x67 0x6F 0x6F 0x64 0x20 0x64    // 'a good d' \n\t0x61 0x6E 0x63 0x65 0x72 0x20 0x74 0x68    // 'ancer th' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x79 0x20    // 'at they ' \n\t0x73 0x61 0x79 0x20 0x68 0x65 0x20 0x63    // 'say he c' \n\t0x61 0x6E 0x20 0x65 0x76 0x65 0x6E 0x20    // 'an even ' \n\t0x6D 0x61 0x6B 0x65 0x20 0x68 0x69 0x73    // 'make his' \n\t0x20 0x66 0x69 0x73 0x68 0x20 0x64 0x61    // ' fish da' \n\t0x6E 0x63 0x65 0x2E 0x0D 0x0A 0x44 0x72    // 'nce.??Dr' \n\t0x65 0x61 0x6D 0x20 0x52 0x6F 0x6C 0x65    // 'eam Role' \n\t0x73 0x0D 0x0A 0x47 0x65 0x6E 0x65 0x72    // 's??Gener' \n\t0x61 0x6C 0x3B 0x20 0x46 0x6F 0x72 0x65    // 'al; Fore' \n\t0x6D 0x61 0x6E 0x3B 0x20 0x46 0x6C 0x65    // 'man; Fle' \n\t0x61 0x20 0x4D 0x61 0x72 0x6B 0x65 0x74    // 'a Market' \n\t0x20 0x4D 0x61 0x6E 0x61 0x67 0x65 0x72    // ' Manager' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpcBioPage7\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"Bio Page 7  Bino BeGood\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"Bio Page 7  Bino BeGood\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage7\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio22 __HELP_SYMBOL( STN \"ktipbio22\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio23 __HELP_SYMBOL( STN \"ktipbio23\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio24 __HELP_SYMBOL( STN \"ktipbio24\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio21 __HELP_SYMBOL( STN \"ktipbio21\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB3 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x17 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x7F 0x01 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x8A 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x04    // '????@???' \n\t0x0D 0x00 0x00 0xFE 0x43 0x00 0x00 0x04    // '???C???' \n\t0x00 0x00 0x00 0x00 0x7D 0x01 0x00 0x04    // '????}???' \n\t0x00 0x00 0x00 0x00 0x8C 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x91 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x93 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA5 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xA7 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xB3 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x04 0x00 0x00 0x00 0x43 0x00 0x00 0x40    // '????C??@' \n\t0x00 0x00 0x00 0x00 0x7D 0x01 0x00 0x40    // '????}??@' \n\t0x00 0x00 0x00 0x00 0x8C 0x01 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0x91 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x93 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xA5 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA7 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xB3 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x0D 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x19 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8C 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x49 0x4E 0x4F 0x20 0x42    // '??BINO B' \n\t0x65 0x47 0x4F 0x4F 0x44 0x0D 0x0A 0x42    // 'eGOOD??B' \n\t0x61 0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E    // 'ackgroun' \n\t0x64 0x0D 0x0A 0x42 0x69 0x6E 0x6F 0x20    // 'd??Bino ' \n\t0x69 0x73 0x20 0x32 0x34 0x20 0x79 0x65    // 'is 24 ye' \n\t0x61 0x72 0x73 0x20 0x6F 0x6C 0x64 0x20    // 'ars old ' \n\t0x61 0x6E 0x64 0x20 0x63 0x6F 0x6D 0x65    // 'and come' \n\t0x73 0x20 0x66 0x72 0x6F 0x6D 0x20 0x61    // 's from a' \n\t0x6E 0x20 0x49 0x62 0x6F 0x20 0x66 0x61    // 'n Ibo fa' \n\t0x6D 0x69 0x6C 0x79 0x20 0x69 0x6E 0x20    // 'mily in ' \n\t0x4E 0x69 0x67 0x65 0x72 0x69 0x61 0x2E    // 'Nigeria.' \n\t0x20 0x57 0x68 0x69 0x6C 0x65 0x20 0x64    // ' While d' \n\t0x61 0x62 0x62 0x6C 0x69 0x6E 0x67 0x20    // 'abbling ' \n\t0x69 0x6E 0x20 0x61 0x6D 0x61 0x74 0x65    // 'in amate' \n\t0x75 0x72 0x20 0x74 0x68 0x65 0x61 0x74    // 'ur theat' \n\t0x65 0x72 0x20 0x70 0x72 0x6F 0x64 0x75    // 'er produ' \n\t0x63 0x74 0x69 0x6F 0x6E 0x73 0x2C 0x20    // 'ctions, ' \n\t0x68 0x65 0x20 0x6D 0x61 0x64 0x65 0x20    // 'he made ' \n\t0x68 0x69 0x73 0x20 0x72 0x65 0x61 0x6C    // 'his real' \n\t0x20 0x6C 0x69 0x76 0x69 0x6E 0x67 0x20    // ' living ' \n\t0x73 0x65 0x6C 0x6C 0x69 0x6E 0x67 0x20    // 'selling ' \n\t0x74 0x6F 0x6F 0x74 0x68 0x70 0x61 0x73    // 'toothpas' \n\t0x74 0x65 0x20 0x77 0x69 0x74 0x68 0x20    // 'te with ' \n\t0x68 0x69 0x73 0x20 0x66 0x61 0x6D 0x69    // 'his fami' \n\t0x6C 0x79 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ly in th' \n\t0x65 0x20 0x6D 0x61 0x72 0x6B 0x65 0x74    // 'e market' \n\t0x70 0x6C 0x61 0x63 0x65 0x73 0x20 0x6F    // 'places o' \n\t0x66 0x20 0x68 0x69 0x73 0x20 0x68 0x6F    // 'f his ho' \n\t0x6D 0x65 0x74 0x6F 0x77 0x6E 0x2E 0x20    // 'metown. ' \n\t0x4F 0x6E 0x63 0x65 0x20 0x68 0x65 0x20    // 'Once he ' \n\t0x73 0x61 0x76 0x65 0x64 0x20 0x65 0x6E    // 'saved en' \n\t0x6F 0x75 0x67 0x68 0x20 0x6D 0x6F 0x6E    // 'ough mon' \n\t0x65 0x79 0x2C 0x20 0x68 0x65 0x20 0x6D    // 'ey, he m' \n\t0x6F 0x76 0x65 0x64 0x20 0x74 0x6F 0x20    // 'oved to ' \n\t0x74 0x68 0x65 0x20 0x55 0x6E 0x69 0x74    // 'the Unit' \n\t0x65 0x64 0x20 0x53 0x74 0x61 0x74 0x65    // 'ed State' \n\t0x73 0x97 0x4E 0x65 0x77 0x20 0x59 0x6F    // 'sNew Yo' \n\t0x72 0x6B 0x20 0x43 0x69 0x74 0x79 0x21    // 'rk City!' \n\t0x97 0x68 0x6F 0x70 0x69 0x6E 0x67 0x20    // 'hoping ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6E 0x74 0x69    // 'to conti' \n\t0x6E 0x75 0x65 0x20 0x69 0x6E 0x20 0x74    // 'nue in t' \n\t0x68 0x65 0x20 0x74 0x68 0x65 0x61 0x74    // 'he theat' \n\t0x65 0x72 0x2C 0x20 0x62 0x75 0x74 0x20    // 'er, but ' \n\t0x6C 0x61 0x6E 0x64 0x65 0x64 0x20 0x61    // 'landed a' \n\t0x20 0x72 0x6F 0x6C 0x65 0x20 0x69 0x6E    // ' role in' \n\t0x20 0x61 0x20 0x4D 0x63 0x5A 0x65 0x65    // ' a McZee' \n\t0x20 0x66 0x69 0x6C 0x6D 0x20 0x69 0x6E    // ' film in' \n\t0x73 0x74 0x65 0x61 0x64 0x21 0x20 0x0D    // 'stead! ?' \n\t0x0A 0x44 0x72 0x65 0x61 0x6D 0x20 0x52    // '?Dream R' \n\t0x6F 0x6C 0x65 0x73 0x0D 0x0A 0x54 0x75    // 'oles??Tu' \n\t0x74 0x6F 0x72 0x3B 0x20 0x53 0x74 0x72    // 'tor; Str' \n\t0x65 0x65 0x74 0x20 0x45 0x6E 0x74 0x65    // 'eet Ente' \n\t0x72 0x74 0x61 0x69 0x6E 0x65 0x72 0x3B    // 'rtainer;' \n\t0x20 0x4D 0x75 0x73 0x69 0x63 0x20 0x4D    // ' Music M' \n\t0x61 0x73 0x74 0x65 0x72                   // 'aster' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpcBioPage8\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"Bio Page 8  Bo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"Bio Page 8  Bo\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_81=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage8\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_81=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_81, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio26 __HELP_SYMBOL( STN \"ktipbio26\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio25 __HELP_SYMBOL( STN \"ktipbio25\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio27 __HELP_SYMBOL( STN \"ktipbio27\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio28 __HELP_SYMBOL( STN \"ktipbio28\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_81=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_81, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x52 0x01 0x00 0x01    // '????R???' \n\t0x00 0x00 0x00 0x00 0x53 0x01 0x00 0x01    // '????S???' \n\t0x01 0x00 0x00 0x00 0x91 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x60 0x01 0x00 0x03    // '????`???' \n\t0x0A 0x00 0x00 0xFD 0x6B 0x01 0x00 0x03    // '???k???' \n\t0x00 0x00 0x00 0x00 0x53 0x01 0x00 0x04    // '????S???' \n\t0x0D 0x00 0x00 0xFE 0x5E 0x01 0x00 0x04    // '???^???' \n\t0x00 0x00 0x00 0x00 0x6D 0x01 0x00 0x04    // '????m???' \n\t0x0D 0x00 0x00 0xFE 0x74 0x01 0x00 0x04    // '???t???' \n\t0x00 0x00 0x00 0x00 0x76 0x01 0x00 0x04    // '????v???' \n\t0x0D 0x00 0x00 0xFE 0x7F 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x81 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x91 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x53 0x01 0x00 0x40    // '????S??@' \n\t0x02 0x00 0x00 0x00 0x5E 0x01 0x00 0x40    // '????^??@' \n\t0x00 0x00 0x00 0x00 0x6D 0x01 0x00 0x40    // '????m??@' \n\t0x01 0x00 0x00 0x00 0x74 0x01 0x00 0x40    // '????t??@' \n\t0x00 0x00 0x00 0x00 0x76 0x01 0x00 0x40    // '????v??@' \n\t0x03 0x00 0x00 0x00 0x7F 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x81 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0x91 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x04 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x10 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6D 0x01 0x00 0x82    // '????m??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_81=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_81, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x4F 0x0D 0x0A 0x42 0x61    // '??BO??Ba' \n\t0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'ckground' \n\t0x0D 0x0A 0x42 0x6F 0x20 0x69 0x73 0x20    // '??Bo is ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x41 0x66 0x72    // 'from Afr' \n\t0x69 0x63 0x61 0x2E 0x20 0x45 0x76 0x65    // 'ica. Eve' \n\t0x6E 0x20 0x61 0x73 0x20 0x61 0x20 0x62    // 'n as a b' \n\t0x61 0x62 0x79 0x20 0x68 0x65 0x20 0x77    // 'aby he w' \n\t0x61 0x73 0x20 0x6E 0x65 0x76 0x65 0x72    // 'as never' \n\t0x20 0x6C 0x69 0x74 0x74 0x6C 0x65 0x2E    // ' little.' \n\t0x20 0x48 0x65 0x20 0x61 0x74 0x65 0x20    // ' He ate ' \n\t0x6F 0x6E 0x6C 0x79 0x20 0x6E 0x61 0x74    // 'only nat' \n\t0x75 0x72 0x61 0x6C 0x20 0x66 0x6F 0x6F    // 'ural foo' \n\t0x64 0x2C 0x20 0x61 0x6E 0x64 0x20 0x6C    // 'd, and l' \n\t0x6F 0x76 0x65 0x64 0x20 0x74 0x6F 0x20    // 'oved to ' \n\t0x77 0x72 0x65 0x73 0x74 0x6C 0x65 0x20    // 'wrestle ' \n\t0x77 0x69 0x74 0x68 0x20 0x74 0x68 0x65    // 'with the' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x20 0x62    // ' other b' \n\t0x6F 0x79 0x73 0x20 0x69 0x6E 0x20 0x68    // 'oys in h' \n\t0x69 0x73 0x20 0x74 0x6F 0x77 0x6E 0x2E    // 'is town.' \n\t0x20 0x42 0x6F 0x20 0x77 0x61 0x73 0x20    // ' Bo was ' \n\t0x73 0x6F 0x20 0x67 0x6F 0x6F 0x64 0x20    // 'so good ' \n\t0x61 0x6E 0x64 0x20 0x67 0x72 0x65 0x77    // 'and grew' \n\t0x20 0x73 0x6F 0x20 0x73 0x74 0x72 0x6F    // ' so stro' \n\t0x6E 0x67 0x20 0x74 0x68 0x61 0x74 0x20    // 'ng that ' \n\t0x68 0x65 0x20 0x62 0x65 0x63 0x61 0x6D    // 'he becam' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x63 0x68    // 'e the ch' \n\t0x61 0x6D 0x70 0x69 0x6F 0x6E 0x20 0x6B    // 'ampion k' \n\t0x69 0x63 0x6B 0x20 0x62 0x6F 0x78 0x65    // 'ick boxe' \n\t0x72 0x20 0x69 0x6E 0x20 0x68 0x69 0x73    // 'r in his' \n\t0x20 0x74 0x6F 0x77 0x6E 0x2E 0x20 0x42    // ' town. B' \n\t0x75 0x74 0x20 0x42 0x6F 0x20 0x77 0x61    // 'ut Bo wa' \n\t0x6E 0x74 0x65 0x64 0x20 0x74 0x6F 0x20    // 'nted to ' \n\t0x62 0x65 0x20 0x72 0x65 0x61 0x6C 0x6C    // 'be reall' \n\t0x79 0x20 0x66 0x61 0x6D 0x6F 0x75 0x73    // 'y famous' \n\t0x2C 0x20 0x6E 0x6F 0x74 0x20 0x6A 0x75    // ', not ju' \n\t0x73 0x74 0x20 0x61 0x73 0x20 0x61 0x20    // 'st as a ' \n\t0x6B 0x69 0x63 0x6B 0x20 0x62 0x6F 0x78    // 'kick box' \n\t0x65 0x72 0x2C 0x20 0x62 0x75 0x74 0x20    // 'er, but ' \n\t0x61 0x73 0x20 0x61 0x20 0x6D 0x6F 0x76    // 'as a mov' \n\t0x69 0x65 0x20 0x73 0x74 0x61 0x72 0x2E    // 'ie star.' \n\t0x20 0x42 0x75 0x74 0x20 0x68 0x6F 0x77    // ' But how' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x68    // ' would h' \n\t0x65 0x20 0x62 0x65 0x20 0x64 0x69 0x73    // 'e be dis' \n\t0x63 0x6F 0x76 0x65 0x72 0x65 0x64 0x3F    // 'covered?' \n\t0x0D 0x0A 0x44 0x72 0x65 0x61 0x6D 0x20    // '??Dream ' \n\t0x52 0x6F 0x6C 0x65 0x73 0x0D 0x0A 0x44    // 'Roles??D' \n\t0x65 0x6E 0x74 0x69 0x73 0x74 0x3B 0x20    // 'entist; ' \n\t0x41 0x73 0x74 0x72 0x6F 0x6E 0x61 0x75    // 'Astronau' \n\t0x74 0x3B 0x20 0x54 0x6F 0x75 0x72 0x20    // 't; Tour ' \n\t0x43 0x6F 0x6F 0x72 0x64 0x69 0x6E 0x61    // 'Coordina' \n\t0x74 0x6F 0x72                             // 'tor' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpcBioPage9\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"Bio Page 9  Bongo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"Bio Page 9  Bongo\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage9\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_16=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio31 __HELP_SYMBOL( STN \"ktipbio31\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio32 __HELP_SYMBOL( STN \"ktipbio32\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio29 __HELP_SYMBOL( STN \"ktipbio29\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE2 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xA8 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xB3 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x20 0x01 0x00 0x04    // '???? ???' \n\t0x0D 0x00 0x00 0xFE 0x26 0x01 0x00 0x04    // '???&???' \n\t0x00 0x00 0x00 0x00 0xB5 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xC1 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xC3 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xD1 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xD3 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE2 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x20 0x01 0x00 0x40    // '???? ??@' \n\t0x05 0x00 0x00 0x00 0x26 0x01 0x00 0x40    // '????&??@' \n\t0x00 0x00 0x00 0x00 0xA6 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC1 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC3 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xD1 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD3 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xE2 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x07 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x13 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB5 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x4F 0x4E 0x47 0x4F 0x0D    // '??BONGO?' \n\t0x0A 0x42 0x61 0x63 0x6B 0x67 0x72 0x6F    // '?Backgro' \n\t0x75 0x6E 0x64 0x0D 0x0A 0x42 0x6F 0x6E    // 'und??Bon' \n\t0x67 0x6F 0x20 0x63 0x61 0x6D 0x65 0x20    // 'go came ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x55    // 'to the U' \n\t0x6E 0x69 0x74 0x65 0x64 0x20 0x53 0x74    // 'nited St' \n\t0x61 0x74 0x65 0x73 0x20 0x66 0x72 0x6F    // 'ates fro' \n\t0x6D 0x20 0x47 0x65 0x72 0x6D 0x61 0x6E    // 'm German' \n\t0x79 0x20 0x74 0x6F 0x20 0x67 0x6F 0x20    // 'y to go ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6C 0x6C 0x65    // 'to colle' \n\t0x67 0x65 0x2E 0x20 0x20 0x42 0x65 0x63    // 'ge.  Bec' \n\t0x61 0x75 0x73 0x65 0x20 0x68 0x69 0x73    // 'ause his' \n\t0x20 0x72 0x65 0x61 0x6C 0x20 0x6E 0x61    // ' real na' \n\t0x6D 0x65 0x20 0x77 0x61 0x73 0x20 0x73    // 'me was s' \n\t0x6F 0x20 0x6C 0x6F 0x6E 0x67 0x20 0x61    // 'o long a' \n\t0x6E 0x64 0x20 0x68 0x61 0x72 0x64 0x20    // 'nd hard ' \n\t0x74 0x6F 0x20 0x70 0x72 0x6F 0x6E 0x6F    // 'to prono' \n\t0x75 0x6E 0x63 0x65 0x2C 0x20 0x66 0x72    // 'unce, fr' \n\t0x69 0x65 0x6E 0x64 0x73 0x20 0x6E 0x69    // 'iends ni' \n\t0x63 0x6B 0x6E 0x61 0x6D 0x65 0x64 0x20    // 'cknamed ' \n\t0x68 0x69 0x6D 0x20 0x42 0x2E 0x4F 0x2E    // 'him B.O.' \n\t0x4E 0x2E 0x47 0x2E 0x4F 0x2E 0x20 0x20    // 'N.G.O.  ' \n\t0x20 0x0D 0x0A 0x4F 0x6E 0x65 0x20 0x64    // ' ??One d' \n\t0x61 0x79 0x2C 0x20 0x74 0x68 0x65 0x20    // 'ay, the ' \n\t0x66 0x61 0x6D 0x6F 0x75 0x73 0x20 0x64    // 'famous d' \n\t0x69 0x72 0x65 0x63 0x74 0x6F 0x72 0x20    // 'irector ' \n\t0x4D 0x63 0x5A 0x65 0x65 0x20 0x63 0x61    // 'McZee ca' \n\t0x6D 0x65 0x20 0x74 0x6F 0x20 0x76 0x69    // 'me to vi' \n\t0x73 0x69 0x74 0x20 0x6F 0x6E 0x65 0x20    // 'sit one ' \n\t0x6F 0x66 0x20 0x42 0x6F 0x6E 0x67 0x6F    // 'of Bongo' \n\t0x27 0x73 0x20 0x64 0x72 0x61 0x6D 0x61    // ''s drama' \n\t0x20 0x63 0x6C 0x61 0x73 0x73 0x65 0x73    // ' classes' \n\t0x2E 0x20 0x20 0x48 0x65 0x20 0x74 0x68    // '.  He th' \n\t0x6F 0x75 0x67 0x68 0x74 0x20 0x74 0x68    // 'ought th' \n\t0x61 0x74 0x20 0x42 0x6F 0x6E 0x67 0x6F    // 'at Bongo' \n\t0x20 0x68 0x61 0x64 0x20 0x72 0x65 0x61    // ' had rea' \n\t0x6C 0x20 0x74 0x61 0x6C 0x65 0x6E 0x74    // 'l talent' \n\t0x20 0x61 0x6E 0x64 0x20 0x64 0x65 0x63    // ' and dec' \n\t0x69 0x64 0x65 0x64 0x20 0x74 0x6F 0x20    // 'ided to ' \n\t0x66 0x65 0x61 0x74 0x75 0x72 0x65 0x20    // 'feature ' \n\t0x68 0x69 0x6D 0x20 0x69 0x6E 0x20 0x68    // 'him in h' \n\t0x69 0x73 0x20 0x6E 0x65 0x78 0x74 0x20    // 'is next ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2E 0x20 0x20    // 'movie.  ' \n\t0x42 0x6F 0x6E 0x67 0x6F 0x20 0x77 0x61    // 'Bongo wa' \n\t0x73 0x20 0x74 0x68 0x72 0x69 0x6C 0x6C    // 's thrill' \n\t0x65 0x64 0x20 0x62 0x65 0x63 0x61 0x75    // 'ed becau' \n\t0x73 0x65 0x20 0x68 0x65 0x20 0x77 0x61    // 'se he wa' \n\t0x73 0x20 0x61 0x62 0x6C 0x65 0x20 0x74    // 's able t' \n\t0x6F 0x20 0x67 0x65 0x74 0x20 0x4D 0x63    // 'o get Mc' \n\t0x5A 0x65 0x65 0x27 0x73 0x20 0x61 0x75    // 'Zee's au' \n\t0x74 0x6F 0x67 0x72 0x61 0x70 0x68 0x20    // 'tograph ' \n\t0x66 0x6F 0x72 0x20 0x68 0x69 0x73 0x20    // 'for his ' \n\t0x66 0x61 0x6D 0x69 0x6C 0x79 0x2E 0x20    // 'family. ' \n\t0x0D 0x0A 0x44 0x72 0x65 0x61 0x6D 0x20    // '??Dream ' \n\t0x52 0x6F 0x6C 0x65 0x73 0x0D 0x0A 0x54    // 'Roles??T' \n\t0x77 0x69 0x6E 0x20 0x42 0x72 0x6F 0x74    // 'win Brot' \n\t0x68 0x65 0x72 0x3B 0x20 0x50 0x6F 0x6C    // 'her; Pol' \n\t0x69 0x63 0x65 0x20 0x4F 0x66 0x66 0x69    // 'ice Offi' \n\t0x63 0x65 0x72 0x3B 0x20 0x50 0x72 0x69    // 'cer; Pri' \n\t0x76 0x61 0x74 0x65 0x20 0x43 0x61 0x72    // 'vate Car' \n\t0x72 0x69 0x65 0x72                        // 'rier' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= ktpcBioPage10\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"Bio Page 10  Charlie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"Bio Page 10  Charlie\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage10\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_21=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8E, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio34 __HELP_SYMBOL( STN \"ktipbio34\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio35 __HELP_SYMBOL( STN \"ktipbio35\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio36 __HELP_SYMBOL( STN \"ktipbio36\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio33 __HELP_SYMBOL( STN \"ktipbio33\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6F 0x01 0x00 0x01    // '????o???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x17 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x3A 0x01 0x00 0x03    // '????:???' \n\t0x0A 0x00 0x00 0xFD 0x45 0x01 0x00 0x03    // '???E???' \n\t0x00 0x00 0x00 0x00 0x86 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x90 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x38 0x01 0x00 0x04    // '????8???' \n\t0x00 0x00 0x00 0x00 0x47 0x01 0x00 0x04    // '????G???' \n\t0x0D 0x00 0x00 0xFE 0x4F 0x01 0x00 0x04    // '???O???' \n\t0x00 0x00 0x00 0x00 0x51 0x01 0x00 0x04    // '????Q???' \n\t0x0D 0x00 0x00 0xFE 0x66 0x01 0x00 0x04    // '???f???' \n\t0x00 0x00 0x00 0x00 0x68 0x01 0x00 0x04    // '????h???' \n\t0x0D 0x00 0x00 0xFE 0x6F 0x01 0x00 0x04    // '???o???' \n\t0x00 0x00 0x00 0x00 0x86 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0x90 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x38 0x01 0x00 0x40    // '????8??@' \n\t0x00 0x00 0x00 0x00 0x47 0x01 0x00 0x40    // '????G??@' \n\t0x01 0x00 0x00 0x00 0x4F 0x01 0x00 0x40    // '????O??@' \n\t0x00 0x00 0x00 0x00 0x51 0x01 0x00 0x40    // '????Q??@' \n\t0x02 0x00 0x00 0x00 0x66 0x01 0x00 0x40    // '????f??@' \n\t0x00 0x00 0x00 0x00 0x68 0x01 0x00 0x40    // '????h??@' \n\t0x03 0x00 0x00 0x00 0x6F 0x01 0x00 0x40    // '????o??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x0B 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x17 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x47 0x01 0x00 0x82    // '????G??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8E, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x20 0x43 0x48 0x41 0x52    // '??  CHAR' \n\t0x4C 0x49 0x45 0x0D 0x0A 0x42 0x61 0x63    // 'LIE??Bac' \n\t0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64 0x0D    // 'kground?' \n\t0x0A 0x43 0x68 0x61 0x72 0x6C 0x69 0x65    // '?Charlie' \n\t0x20 0x77 0x61 0x73 0x20 0x62 0x6F 0x72    // ' was bor' \n\t0x6E 0x20 0x69 0x6E 0x20 0x48 0x61 0x72    // 'n in Har' \n\t0x6C 0x65 0x6D 0x2C 0x20 0x4E 0x65 0x77    // 'lem, New' \n\t0x20 0x59 0x6F 0x72 0x6B 0x20 0x43 0x69    // ' York Ci' \n\t0x74 0x79 0x2E 0x20 0x20 0x48 0x65 0x20    // 'ty.  He ' \n\t0x6D 0x61 0x6B 0x65 0x73 0x20 0x73 0x74    // 'makes st' \n\t0x72 0x61 0x69 0x67 0x68 0x74 0x20 0x41    // 'raight A' \n\t0x92 0x73 0x20 0x61 0x6E 0x64 0x20 0x69    // 's and i' \n\t0x73 0x20 0x73 0x75 0x63 0x68 0x20 0x61    // 's such a' \n\t0x6E 0x20 0x65 0x78 0x63 0x65 0x70 0x74    // 'n except' \n\t0x69 0x6F 0x6E 0x61 0x6C 0x20 0x61 0x74    // 'ional at' \n\t0x68 0x6C 0x65 0x74 0x65 0x2C 0x20 0x68    // 'hlete, h' \n\t0x65 0x20 0x68 0x61 0x73 0x20 0x61 0x20    // 'e has a ' \n\t0x62 0x61 0x73 0x6B 0x65 0x74 0x62 0x61    // 'basketba' \n\t0x6C 0x6C 0x20 0x20 0x73 0x63 0x68 0x6F    // 'll  scho' \n\t0x6C 0x61 0x72 0x73 0x68 0x69 0x70 0x20    // 'larship ' \n\t0x74 0x6F 0x20 0x53 0x79 0x72 0x61 0x63    // 'to Syrac' \n\t0x75 0x73 0x65 0x20 0x55 0x6E 0x69 0x76    // 'use Univ' \n\t0x65 0x72 0x73 0x69 0x74 0x79 0x2E 0x20    // 'ersity. ' \n\t0x20 0x43 0x68 0x61 0x72 0x6C 0x69 0x65    // ' Charlie' \n\t0x20 0x69 0x73 0x20 0x67 0x6F 0x6F 0x64    // ' is good' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x72 0x6F    // ' at thro' \n\t0x77 0x69 0x6E 0x67 0x2C 0x20 0x62 0x75    // 'wing, bu' \n\t0x74 0x20 0x68 0x65 0x92 0x73 0x20 0x72    // 't hes r' \n\t0x65 0x61 0x6C 0x6C 0x79 0x20 0x67 0x6F    // 'eally go' \n\t0x6F 0x64 0x20 0x61 0x74 0x20 0x6A 0x75    // 'od at ju' \n\t0x6D 0x70 0x69 0x6E 0x67 0x2E 0x20 0x20    // 'mping.  ' \n\t0x48 0x65 0x20 0x63 0x61 0x6E 0x20 0x6A    // 'He can j' \n\t0x75 0x6D 0x70 0x20 0x73 0x6F 0x20 0x68    // 'ump so h' \n\t0x69 0x67 0x68 0x20 0x74 0x68 0x61 0x74    // 'igh that' \n\t0x20 0x68 0x65 0x20 0x63 0x61 0x6E 0x20    // ' he can ' \n\t0x74 0x6F 0x75 0x63 0x68 0x20 0x74 0x68    // 'touch th' \n\t0x65 0x20 0x63 0x65 0x69 0x6C 0x69 0x6E    // 'e ceilin' \n\t0x67 0x20 0x69 0x6E 0x20 0x61 0x6E 0x79    // 'g in any' \n\t0x20 0x62 0x75 0x69 0x6C 0x64 0x69 0x6E    // ' buildin' \n\t0x67 0x2E 0x0D 0x0A 0x44 0x72 0x65 0x61    // 'g.??Drea' \n\t0x6D 0x20 0x52 0x6F 0x6C 0x65 0x73 0x0D    // 'm Roles?' \n\t0x0A 0x53 0x6B 0x65 0x6C 0x65 0x74 0x6F    // '?Skeleto' \n\t0x6E 0x3B 0x20 0x4C 0x61 0x76 0x61 0x20    // 'n; Lava ' \n\t0x4C 0x61 0x6D 0x70 0x20 0x53 0x61 0x6C    // 'Lamp Sal' \n\t0x65 0x73 0x70 0x65 0x72 0x73 0x6F 0x6E    // 'esperson' \n\t0x3B 0x20 0x54 0x6F 0x75 0x72 0x69 0x73    // '; Touris' \n\t0x74                                       // 't' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= ktpcBioPage11\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"Bio Page 11 Christina\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"Bio Page 11 Christina\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_42=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage11\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_42=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio38 __HELP_SYMBOL( STN \"ktipbio38\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio39 __HELP_SYMBOL( STN \"ktipbio39\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio40 __HELP_SYMBOL( STN \"ktipbio40\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio37 __HELP_SYMBOL( STN \"ktipbio37\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_42=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // ' ???????' \n\t0x01 0x00 0x00 0x00 0xEB 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xED 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x17 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x16 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xED 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xF8 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x04    // '????C???' \n\t0x0D 0x00 0x00 0xFE 0x51 0x00 0x00 0x04    // '???Q???' \n\t0x00 0x00 0x00 0x00 0xED 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0xFA 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x00 0x02 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x02 0x02 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x0C 0x02 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x0E 0x02 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x17 0x02 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x40    // '????C??@' \n\t0x04 0x00 0x00 0x00 0x51 0x00 0x00 0x40    // '????Q??@' \n\t0x00 0x00 0x00 0x00 0xED 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xFA 0x01 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0x00 0x02 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x02 0x02 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x0C 0x02 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x0E 0x02 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x17 0x02 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x0C 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x18 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xFA 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_42=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x48 0x52 0x49 0x53    // '?? CHRIS' \n\t0x54 0x49 0x4E 0x41 0x0D 0x0A 0x42 0x61    // 'TINA??Ba' \n\t0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'ckground' \n\t0x0D 0x0A 0x43 0x68 0x72 0x69 0x73 0x74    // '??Christ' \n\t0x69 0x6E 0x61 0x20 0x68 0x61 0x73 0x20    // 'ina has ' \n\t0x73 0x70 0x65 0x6E 0x74 0x20 0x33 0x20    // 'spent 3 ' \n\t0x6F 0x66 0x20 0x68 0x65 0x72 0x20 0x32    // 'of her 2' \n\t0x33 0x20 0x79 0x65 0x61 0x72 0x73 0x20    // '3 years ' \n\t0x61 0x73 0x20 0x61 0x20 0x6D 0x75 0x73    // 'as a mus' \n\t0x65 0x75 0x6D 0x20 0x63 0x75 0x72 0x61    // 'eum cura' \n\t0x74 0x6F 0x72 0x20 0x20 0x69 0x6E 0x20    // 'tor  in ' \n\t0x4E 0x65 0x77 0x20 0x59 0x6F 0x72 0x6B    // 'New York' \n\t0x20 0x43 0x69 0x74 0x79 0x2E 0x20 0x20    // ' City.  ' \n\t0x4F 0x6E 0x65 0x20 0x64 0x61 0x79 0x20    // 'One day ' \n\t0x77 0x68 0x69 0x6C 0x65 0x20 0x43 0x68    // 'while Ch' \n\t0x72 0x69 0x73 0x74 0x69 0x6E 0x61 0x20    // 'ristina ' \n\t0x77 0x61 0x73 0x20 0x61 0x64 0x6D 0x69    // 'was admi' \n\t0x72 0x69 0x6E 0x67 0x20 0x73 0x6F 0x6D    // 'ring som' \n\t0x65 0x20 0x50 0x69 0x63 0x61 0x73 0x73    // 'e Picass' \n\t0x6F 0x73 0x2C 0x20 0x73 0x68 0x65 0x20    // 'os, she ' \n\t0x62 0x75 0x6D 0x70 0x65 0x64 0x20 0x69    // 'bumped i' \n\t0x6E 0x74 0x6F 0x20 0x73 0x6F 0x6D 0x65    // 'nto some' \n\t0x6F 0x6E 0x65 0x20 0x77 0x68 0x6F 0x20    // 'one who ' \n\t0x77 0x61 0x73 0x20 0x69 0x6E 0x20 0x74    // 'was in t' \n\t0x68 0x65 0x20 0x6D 0x75 0x73 0x65 0x75    // 'he museu' \n\t0x6D 0x20 0x66 0x69 0x6C 0x6D 0x69 0x6E    // 'm filmin' \n\t0x67 0x20 0x61 0x20 0x6D 0x6F 0x76 0x69    // 'g a movi' \n\t0x65 0x2E 0x20 0x20 0x49 0x74 0x20 0x77    // 'e.  It w' \n\t0x61 0x73 0x20 0x74 0x68 0x65 0x20 0x66    // 'as the f' \n\t0x61 0x6D 0x6F 0x75 0x73 0x20 0x79 0x6F    // 'amous yo' \n\t0x75 0x6E 0x67 0x20 0x6D 0x6F 0x76 0x69    // 'ung movi' \n\t0x65 0x20 0x64 0x69 0x72 0x65 0x63 0x74    // 'e direct' \n\t0x6F 0x72 0x20 0x4D 0x65 0x6C 0x61 0x6E    // 'or Melan' \n\t0x69 0x65 0x2E 0x20 0x20 0x54 0x68 0x65    // 'ie.  The' \n\t0x79 0x20 0x73 0x74 0x61 0x72 0x74 0x65    // 'y starte' \n\t0x64 0x20 0x74 0x61 0x6C 0x6B 0x69 0x6E    // 'd talkin' \n\t0x67 0x20 0x61 0x62 0x6F 0x75 0x74 0x20    // 'g about ' \n\t0x61 0x72 0x74 0x2C 0x20 0x61 0x6E 0x64    // 'art, and' \n\t0x20 0x65 0x6E 0x64 0x65 0x64 0x20 0x75    // ' ended u' \n\t0x70 0x20 0x74 0x61 0x6C 0x6B 0x69 0x6E    // 'p talkin' \n\t0x67 0x20 0x61 0x62 0x6F 0x75 0x74 0x20    // 'g about ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x73 0x2E 0x20    // 'movies. ' \n\t0x20 0x4D 0x65 0x6C 0x61 0x6E 0x69 0x65    // ' Melanie' \n\t0x20 0x74 0x68 0x6F 0x75 0x67 0x68 0x74    // ' thought' \n\t0x20 0x43 0x68 0x72 0x69 0x73 0x74 0x69    // ' Christi' \n\t0x6E 0x61 0x20 0x68 0x61 0x64 0x20 0x61    // 'na had a' \n\t0x20 0x6C 0x6F 0x74 0x20 0x6F 0x66 0x20    // ' lot of ' \n\t0x67 0x72 0x65 0x61 0x74 0x20 0x69 0x64    // 'great id' \n\t0x65 0x61 0x73 0x20 0x61 0x62 0x6F 0x75    // 'eas abou' \n\t0x74 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 't movie ' \n\t0x6D 0x61 0x6B 0x69 0x6E 0x67 0x2E 0x20    // 'making. ' \n\t0x4E 0x6F 0x77 0x20 0x43 0x68 0x72 0x69    // 'Now Chri' \n\t0x73 0x74 0x69 0x6E 0x61 0x20 0x6C 0x69    // 'stina li' \n\t0x76 0x65 0x73 0x20 0x69 0x6E 0x20 0x49    // 'ves in I' \n\t0x6D 0x61 0x67 0x69 0x6E 0x6F 0x70 0x6F    // 'maginopo' \n\t0x6C 0x69 0x73 0x2C 0x20 0x64 0x6F 0x69    // 'lis, doi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x74    // 'ng the t' \n\t0x68 0x69 0x6E 0x67 0x73 0x20 0x73 0x68    // 'hings sh' \n\t0x65 0x20 0x64 0x69 0x64 0x20 0x69 0x6E    // 'e did in' \n\t0x20 0x72 0x65 0x61 0x6C 0x20 0x6C 0x69    // ' real li' \n\t0x66 0x65 0x97 0x6F 0x6E 0x20 0x63 0x61    // 'feon ca' \n\t0x6D 0x65 0x72 0x61 0x21 0x0D 0x0A 0x44    // 'mera!??D' \n\t0x72 0x65 0x61 0x6D 0x20 0x52 0x6F 0x6C    // 'ream Rol' \n\t0x65 0x73 0x0D 0x0A 0x53 0x69 0x6E 0x67    // 'es??Sing' \n\t0x65 0x72 0x3B 0x20 0x48 0x6F 0x6D 0x65    // 'er; Home' \n\t0x20 0x4F 0x77 0x6E 0x65 0x72 0x3B 0x20    // ' Owner; ' \n\t0x44 0x65 0x74 0x65 0x63 0x74 0x69 0x76    // 'Detectiv' \n\t0x65                                       // 'e' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= ktpcBioPage12\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"Bio Page 12  Claudia\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"Bio Page 12  Claudia\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage12\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio42 __HELP_SYMBOL( STN \"ktipbio42\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio43 __HELP_SYMBOL( STN \"ktipbio43\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio44 __HELP_SYMBOL( STN \"ktipbio44\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio41 __HELP_SYMBOL( STN \"ktipbio41\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x22 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '\"???????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5F 0x01 0x00 0x01    // '????_???' \n\t0x00 0x00 0x00 0x00 0x61 0x01 0x00 0x01    // '????a???' \n\t0x01 0x00 0x00 0x00 0x80 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x61 0x01 0x00 0x03    // '????a???' \n\t0x0A 0x00 0x00 0xFD 0x6C 0x01 0x00 0x03    // '???l???' \n\t0x00 0x00 0x00 0x00 0x1D 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x2D 0x01 0x00 0x04    // '???-???' \n\t0x00 0x00 0x00 0x00 0x61 0x01 0x00 0x04    // '????a???' \n\t0x00 0x00 0x00 0x00 0x6E 0x01 0x00 0x04    // '????n???' \n\t0x0D 0x00 0x00 0xFE 0x74 0x01 0x00 0x04    // '???t???' \n\t0x00 0x00 0x00 0x00 0x76 0x01 0x00 0x04    // '????v???' \n\t0x0D 0x00 0x00 0xFE 0x79 0x01 0x00 0x04    // '???y???' \n\t0x00 0x00 0x00 0x00 0x7B 0x01 0x00 0x04    // '????{???' \n\t0x0D 0x00 0x00 0xFE 0x80 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x1D 0x01 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x2D 0x01 0x00 0x40    // '????-??@' \n\t0x00 0x00 0x00 0x00 0x61 0x01 0x00 0x40    // '????a??@' \n\t0x00 0x00 0x00 0x00 0x6E 0x01 0x00 0x40    // '????n??@' \n\t0x01 0x00 0x00 0x00 0x74 0x01 0x00 0x40    // '????t??@' \n\t0x00 0x00 0x00 0x00 0x76 0x01 0x00 0x40    // '????v??@' \n\t0x02 0x00 0x00 0x00 0x79 0x01 0x00 0x40    // '????y??@' \n\t0x00 0x00 0x00 0x00 0x7B 0x01 0x00 0x40    // '????{??@' \n\t0x03 0x00 0x00 0x00 0x80 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x09 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x15 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6E 0x01 0x00 0x82    // '????n??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x4C 0x41 0x55 0x44 0x49    // '??CLAUDI' \n\t0x41 0x0D 0x0A 0x42 0x61 0x63 0x6B 0x67    // 'A??Backg' \n\t0x72 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x43    // 'round??C' \n\t0x6C 0x61 0x75 0x64 0x69 0x61 0x20 0x77    // 'laudia w' \n\t0x61 0x73 0x20 0x62 0x6F 0x72 0x6E 0x20    // 'as born ' \n\t0x69 0x6E 0x20 0x61 0x20 0x73 0x6D 0x61    // 'in a sma' \n\t0x6C 0x6C 0x2C 0x20 0x6F 0x75 0x74 0x2D    // 'll, out-' \n\t0x6F 0x66 0x2D 0x74 0x68 0x65 0x2D 0x77    // 'of-the-w' \n\t0x61 0x79 0x20 0x76 0x69 0x6C 0x6C 0x61    // 'ay villa' \n\t0x67 0x65 0x20 0x69 0x6E 0x20 0x49 0x6E    // 'ge in In' \n\t0x64 0x69 0x61 0x20 0x33 0x33 0x20 0x79    // 'dia 33 y' \n\t0x65 0x61 0x72 0x73 0x20 0x61 0x67 0x6F    // 'ears ago' \n\t0x2E 0x20 0x20 0x53 0x68 0x65 0x20 0x63    // '.  She c' \n\t0x6F 0x6D 0x65 0x73 0x20 0x66 0x72 0x6F    // 'omes fro' \n\t0x6D 0x20 0x61 0x20 0x6C 0x6F 0x6E 0x67    // 'm a long' \n\t0x20 0x6C 0x69 0x6E 0x65 0x20 0x6F 0x66    // ' line of' \n\t0x20 0x73 0x74 0x6F 0x72 0x79 0x2D 0x74    // ' story-t' \n\t0x65 0x6C 0x6C 0x65 0x72 0x73 0x2E 0x20    // 'ellers. ' \n\t0x20 0x49 0x6E 0x20 0x66 0x61 0x63 0x74    // ' In fact' \n\t0x2C 0x20 0x68 0x65 0x72 0x20 0x66 0x61    // ', her fa' \n\t0x6D 0x69 0x6C 0x79 0x20 0x74 0x72 0x61    // 'mily tra' \n\t0x76 0x65 0x6C 0x73 0x20 0x61 0x72 0x6F    // 'vels aro' \n\t0x75 0x6E 0x64 0x20 0x49 0x6E 0x64 0x69    // 'und Indi' \n\t0x61 0x20 0x68 0x6F 0x6C 0x64 0x69 0x6E    // 'a holdin' \n\t0x67 0x20 0x73 0x74 0x6F 0x72 0x79 0x2D    // 'g story-' \n\t0x74 0x65 0x6C 0x6C 0x69 0x6E 0x67 0x20    // 'telling ' \n\t0x62 0x61 0x7A 0x61 0x61 0x72 0x73 0x2E    // 'bazaars.' \n\t0x20 0x20 0x45 0x76 0x65 0x6E 0x20 0x74    // '  Even t' \n\t0x68 0x6F 0x75 0x67 0x68 0x20 0x43 0x6C    // 'hough Cl' \n\t0x61 0x75 0x64 0x69 0x61 0x20 0x6C 0x6F    // 'audia lo' \n\t0x76 0x65 0x73 0x20 0x74 0x68 0x65 0x20    // 'ves the ' \n\t0x73 0x74 0x6F 0x72 0x69 0x65 0x73 0x20    // 'stories ' \n\t0x73 0x68 0x65 0x20 0x67 0x72 0x65 0x77    // 'she grew' \n\t0x20 0x75 0x70 0x20 0x77 0x69 0x74 0x68    // ' up with' \n\t0x2C 0x20 0x73 0x68 0x65 0x20 0x77 0x61    // ', she wa' \n\t0x6E 0x74 0x73 0x20 0x74 0x6F 0x20 0x6C    // 'nts to l' \n\t0x69 0x76 0x65 0x20 0x64 0x61 0x6E 0x67    // 'ive dang' \n\t0x65 0x72 0x6F 0x75 0x73 0x6C 0x79 0x20    // 'erously ' \n\t0x73 0x6F 0x20 0x73 0x68 0x65 0x92 0x6C    // 'so shel' \n\t0x6C 0x20 0x68 0x61 0x76 0x65 0x20 0x77    // 'l have w' \n\t0x69 0x6C 0x64 0x20 0x73 0x74 0x6F 0x72    // 'ild stor' \n\t0x69 0x65 0x73 0x20 0x74 0x6F 0x20 0x74    // 'ies to t' \n\t0x65 0x6C 0x6C 0x20 0x68 0x65 0x72 0x20    // 'ell her ' \n\t0x63 0x68 0x69 0x6C 0x64 0x72 0x65 0x6E    // 'children' \n\t0x2E 0x0D 0x0A 0x44 0x72 0x65 0x61 0x6D    // '.??Dream' \n\t0x20 0x52 0x6F 0x6C 0x65 0x73 0x0D 0x0A    // ' Roles??' \n\t0x48 0x69 0x70 0x70 0x69 0x65 0x3B 0x20    // 'Hippie; ' \n\t0x43 0x6F 0x70 0x3B 0x20 0x50 0x69 0x6C    // 'Cop; Pil' \n\t0x6F 0x74                                  // 'ot' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= ktpcBioPage13\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"Bio Page 13  Crash\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"Bio Page 13  Crash\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage13\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio46 __HELP_SYMBOL( STN \"ktipbio46\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio47 __HELP_SYMBOL( STN \"ktipbio47\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio48 __HELP_SYMBOL( STN \"ktipbio48\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio45 __HELP_SYMBOL( STN \"ktipbio45\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x21 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '!???????' \n\t0x01 0x00 0x00 0x00 0xD9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xDB 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x16 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xDB 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xE6 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x04    // '????E???' \n\t0x0D 0x00 0x00 0xFE 0x4B 0x00 0x00 0x04    // '???K???' \n\t0x00 0x00 0x00 0x00 0xDB 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0xE8 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xF9 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xFB 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x04 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x06 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x16 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x05 0x00 0x00 0x00 0x4B 0x00 0x00 0x40    // '????K??@' \n\t0x00 0x00 0x00 0x00 0xDB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE8 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xF9 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xFB 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x04 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x06 0x01 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x16 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x07 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x13 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE8 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x52 0x41 0x53 0x48 0x0D    // '??CRASH?' \n\t0x0A 0x42 0x61 0x63 0x6B 0x67 0x72 0x6F    // '?Backgro' \n\t0x75 0x6E 0x64 0x0D 0x0A 0x43 0x72 0x61    // 'und??Cra' \n\t0x73 0x68 0x20 0x77 0x6F 0x6B 0x65 0x20    // 'sh woke ' \n\t0x75 0x70 0x20 0x33 0x33 0x20 0x79 0x65    // 'up 33 ye' \n\t0x61 0x72 0x73 0x20 0x61 0x67 0x6F 0x20    // 'ars ago ' \n\t0x6F 0x6E 0x20 0x61 0x20 0x64 0x65 0x73    // 'on a des' \n\t0x65 0x72 0x74 0x65 0x64 0x20 0x74 0x72    // 'erted tr' \n\t0x6F 0x70 0x69 0x63 0x61 0x6C 0x20 0x69    // 'opical i' \n\t0x73 0x6C 0x61 0x6E 0x64 0x2E 0x20 0x48    // 'sland. H' \n\t0x65 0x20 0x64 0x6F 0x65 0x73 0x6E 0x92    // 'e doesn' \n\t0x74 0x20 0x6B 0x6E 0x6F 0x77 0x20 0x68    // 't know h' \n\t0x6F 0x77 0x20 0x68 0x65 0x20 0x67 0x6F    // 'ow he go' \n\t0x74 0x20 0x74 0x68 0x65 0x72 0x65 0x20    // 't there ' \n\t0x6F 0x72 0x20 0x77 0x68 0x65 0x72 0x65    // 'or where' \n\t0x20 0x68 0x65 0x20 0x63 0x61 0x6D 0x65    // ' he came' \n\t0x20 0x66 0x72 0x6F 0x6D 0x2E 0x20 0x48    // ' from. H' \n\t0x65 0x20 0x77 0x61 0x6E 0x74 0x73 0x20    // 'e wants ' \n\t0x74 0x6F 0x20 0x62 0x65 0x63 0x6F 0x6D    // 'to becom' \n\t0x65 0x20 0x61 0x20 0x66 0x61 0x6D 0x6F    // 'e a famo' \n\t0x75 0x73 0x20 0x61 0x63 0x74 0x6F 0x72    // 'us actor' \n\t0x20 0x73 0x6F 0x20 0x74 0x68 0x61 0x74    // ' so that' \n\t0x20 0x6D 0x61 0x79 0x62 0x65 0x20 0x68    // ' maybe h' \n\t0x69 0x73 0x20 0x69 0x6E 0x76 0x65 0x6E    // 'is inven' \n\t0x74 0x6F 0x72 0x20 0x77 0x69 0x6C 0x6C    // 'tor will' \n\t0x20 0x73 0x65 0x65 0x20 0x68 0x69 0x6D    // ' see him' \n\t0x20 0x61 0x6E 0x64 0x20 0x63 0x61 0x6C    // ' and cal' \n\t0x6C 0x2E 0x20 0x0D 0x0A 0x44 0x72 0x65    // 'l. ??Dre' \n\t0x61 0x6D 0x20 0x52 0x6F 0x6C 0x65 0x73    // 'am Roles' \n\t0x0D 0x0A 0x57 0x69 0x6C 0x6C 0x79 0x27    // '??Willy'' \n\t0x73 0x20 0x49 0x6E 0x76 0x65 0x6E 0x74    // 's Invent' \n\t0x69 0x6F 0x6E 0x3B 0x20 0x52 0x6F 0x62    // 'ion; Rob' \n\t0x6F 0x74 0x20 0x43 0x6F 0x70 0x3B 0x20    // 'ot Cop; ' \n\t0x46 0x6C 0x69 0x67 0x68 0x74 0x20 0x41    // 'Flight A' \n\t0x74 0x74 0x65 0x6E 0x64 0x61 0x6E 0x74    // 'ttendant' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= ktpcBioPage14\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"Bio Page 14  Eliza\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"Bio Page 14  Eliza\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_CF=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage14\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_CF=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_CF, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio49 __HELP_SYMBOL( STN \"ktipbio49\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio51 __HELP_SYMBOL( STN \"ktipbio51\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio52 __HELP_SYMBOL( STN \"ktipbio52\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio50 __HELP_SYMBOL( STN \"ktipbio50\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_CF=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_CF, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD4 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xD6 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xFA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xD6 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xE1 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xCB 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xD2 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xE3 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE9 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xEB 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xF0 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xF2 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xFA 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xCB 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xD2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE3 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xE9 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xEB 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xF0 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF2 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xFA 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x07 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x13 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE3 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_CF=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_CF, 0x0)\n\tBYTE\n\t0x03 0x03 0x45 0x4C 0x49 0x5A 0x41 0x0D    // '??ELIZA?' \n\t0x0A 0x42 0x61 0x63 0x6B 0x67 0x72 0x6F    // '?Backgro' \n\t0x75 0x6E 0x64 0x0D 0x0A 0x45 0x6C 0x69    // 'und??Eli' \n\t0x7A 0x61 0x20 0x6C 0x69 0x76 0x65 0x73    // 'za lives' \n\t0x20 0x69 0x6E 0x20 0x43 0x61 0x6E 0x63    // ' in Canc' \n\t0x75 0x6E 0x2C 0x20 0x4D 0x65 0x78 0x69    // 'un, Mexi' \n\t0x63 0x6F 0x20 0x77 0x68 0x65 0x72 0x65    // 'co where' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x61 0x74    // ' the wat' \n\t0x65 0x72 0x20 0x69 0x73 0x20 0x74 0x75    // 'er is tu' \n\t0x72 0x71 0x75 0x6F 0x69 0x73 0x65 0x20    // 'rquoise ' \n\t0x61 0x6E 0x64 0x20 0x63 0x6C 0x65 0x61    // 'and clea' \n\t0x72 0x2E 0x20 0x20 0x53 0x68 0x65 0x20    // 'r.  She ' \n\t0x69 0x73 0x20 0x74 0x68 0x65 0x20 0x6F    // 'is the o' \n\t0x6C 0x64 0x65 0x73 0x74 0x20 0x6F 0x66    // 'ldest of' \n\t0x20 0x6E 0x69 0x6E 0x65 0x20 0x63 0x68    // ' nine ch' \n\t0x69 0x6C 0x64 0x72 0x65 0x6E 0x2E 0x20    // 'ildren. ' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x73 0x68    // ' When sh' \n\t0x65 0x20 0x69 0x73 0x6E 0x92 0x74 0x20    // 'e isnt ' \n\t0x68 0x65 0x6C 0x70 0x69 0x6E 0x67 0x20    // 'helping ' \n\t0x68 0x65 0x72 0x20 0x6D 0x6F 0x74 0x68    // 'her moth' \n\t0x65 0x72 0x20 0x69 0x6E 0x20 0x74 0x68    // 'er in th' \n\t0x65 0x69 0x72 0x20 0x73 0x74 0x6F 0x72    // 'eir stor' \n\t0x65 0x2C 0x20 0x73 0x68 0x65 0x20 0x70    // 'e, she p' \n\t0x72 0x61 0x63 0x74 0x69 0x63 0x65 0x73    // 'ractices' \n\t0x20 0x73 0x69 0x6E 0x67 0x69 0x6E 0x67    // ' singing' \n\t0x20 0x61 0x6E 0x64 0x20 0x64 0x61 0x6E    // ' and dan' \n\t0x63 0x69 0x6E 0x67 0x2E 0x20 0x0D 0x0A    // 'cing. ??' \n\t0x44 0x72 0x65 0x61 0x6D 0x20 0x52 0x6F    // 'Dream Ro' \n\t0x6C 0x65 0x73 0x0D 0x0A 0x48 0x69 0x70    // 'les??Hip' \n\t0x70 0x69 0x65 0x3B 0x20 0x4E 0x75 0x72    // 'pie; Nur' \n\t0x73 0x65 0x3B 0x20 0x45 0x78 0x70 0x6C    // 'se; Expl' \n\t0x6F 0x72 0x65 0x72                        // 'orer' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= ktpcBioPage15\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"Bio Page 15  Frank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"Bio Page 15  Frank\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage15\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio53 __HELP_SYMBOL( STN \"ktipbio53\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio55 __HELP_SYMBOL( STN \"ktipbio55\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio56 __HELP_SYMBOL( STN \"ktipbio56\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio54 __HELP_SYMBOL( STN \"ktipbio54\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xDB 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xDD 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x09 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xDD 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xE8 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x9B 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA8 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xEA 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xF4 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xF6 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xFD 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xFF 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x09 0x02 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x9B 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xA8 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xEA 0x01 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xF4 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF6 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xFD 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xFF 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0x09 0x02 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x07 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x13 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xEA 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x52 0x41 0x4E 0x4B 0x0D    // '??FRANK?' \n\t0x0A 0x42 0x61 0x63 0x6B 0x67 0x72 0x6F    // '?Backgro' \n\t0x75 0x6E 0x64 0x0D 0x0A 0x46 0x72 0x61    // 'und??Fra' \n\t0x6E 0x6B 0x20 0x6C 0x6F 0x6F 0x6B 0x73    // 'nk looks' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x61 0x20    // ' like a ' \n\t0x6B 0x69 0x64 0x97 0x68 0x65 0x92 0x73    // 'kidhes' \n\t0x20 0x73 0x68 0x6F 0x72 0x74 0x20 0x61    // ' short a' \n\t0x6E 0x64 0x20 0x68 0x65 0x20 0x77 0x65    // 'nd he we' \n\t0x61 0x72 0x73 0x20 0x68 0x69 0x73 0x20    // 'ars his ' \n\t0x68 0x61 0x69 0x72 0x20 0x69 0x6E 0x20    // 'hair in ' \n\t0x74 0x68 0x65 0x20 0x6C 0x61 0x74 0x65    // 'the late' \n\t0x73 0x74 0x20 0x63 0x75 0x74 0x2E 0x20    // 'st cut. ' \n\t0x20 0x42 0x75 0x74 0x20 0x68 0x65 0x27    // ' But he'' \n\t0x73 0x20 0x72 0x65 0x61 0x6C 0x6C 0x79    // 's really' \n\t0x20 0x34 0x32 0x2E 0x20 0x46 0x72 0x61    // ' 42. Fra' \n\t0x6E 0x6B 0x20 0x61 0x6C 0x73 0x6F 0x20    // 'nk also ' \n\t0x6C 0x6F 0x6F 0x6B 0x73 0x20 0x73 0x61    // 'looks sa' \n\t0x64 0x2C 0x20 0x62 0x65 0x63 0x61 0x75    // 'd, becau' \n\t0x73 0x65 0x20 0x68 0x65 0x92 0x73 0x20    // 'se hes ' \n\t0x62 0x65 0x65 0x6E 0x20 0x6D 0x69 0x73    // 'been mis' \n\t0x75 0x6E 0x64 0x65 0x72 0x73 0x74 0x6F    // 'understo' \n\t0x6F 0x64 0x20 0x61 0x6C 0x6C 0x20 0x68    // 'od all h' \n\t0x69 0x73 0x20 0x6C 0x69 0x66 0x65 0x2E    // 'is life.' \n\t0x20 0x20 0x45 0x76 0x65 0x6E 0x20 0x74    // '  Even t' \n\t0x68 0x6F 0x75 0x67 0x68 0x20 0x68 0x65    // 'hough he' \n\t0x20 0x6C 0x6F 0x6F 0x6B 0x73 0x20 0x6C    // ' looks l' \n\t0x69 0x6B 0x65 0x20 0x61 0x20 0x74 0x6F    // 'ike a to' \n\t0x75 0x67 0x68 0x20 0x67 0x75 0x79 0x20    // 'ugh guy ' \n\t0x61 0x6E 0x64 0x20 0x68 0x65 0x20 0x64    // 'and he d' \n\t0x6F 0x65 0x73 0x6E 0x92 0x74 0x20 0x6C    // 'oesnt l' \n\t0x6F 0x6F 0x6B 0x20 0x76 0x65 0x72 0x79    // 'ook very' \n\t0x20 0x73 0x6D 0x61 0x72 0x74 0x2C 0x20    // ' smart, ' \n\t0x68 0x65 0x92 0x73 0x20 0x72 0x65 0x61    // 'hes rea' \n\t0x6C 0x6C 0x79 0x20 0x61 0x20 0x73 0x65    // 'lly a se' \n\t0x6E 0x73 0x69 0x74 0x69 0x76 0x65 0x2C    // 'nsitive,' \n\t0x20 0x67 0x65 0x6E 0x74 0x6C 0x65 0x20    // ' gentle ' \n\t0x67 0x75 0x79 0x20 0x77 0x68 0x6F 0x20    // 'guy who ' \n\t0x69 0x73 0x20 0x6E 0x6F 0x74 0x20 0x6F    // 'is not o' \n\t0x6E 0x6C 0x79 0x20 0x73 0x6D 0x61 0x72    // 'nly smar' \n\t0x74 0x2C 0x20 0x62 0x75 0x74 0x20 0x61    // 't, but a' \n\t0x6C 0x73 0x6F 0x20 0x73 0x65 0x63 0x72    // 'lso secr' \n\t0x65 0x74 0x6C 0x79 0x20 0x77 0x72 0x69    // 'etly wri' \n\t0x74 0x65 0x73 0x20 0x73 0x6F 0x6E 0x67    // 'tes song' \n\t0x73 0x20 0x97 0x20 0x75 0x73 0x75 0x61    // 's  usua' \n\t0x6C 0x6C 0x79 0x20 0x73 0x61 0x64 0x20    // 'lly sad ' \n\t0x73 0x6F 0x6E 0x67 0x73 0x2E 0x20 0x48    // 'songs. H' \n\t0x65 0x92 0x64 0x20 0x6C 0x69 0x6B 0x65    // 'ed like' \n\t0x20 0x74 0x6F 0x20 0x73 0x69 0x6E 0x67    // ' to sing' \n\t0x20 0x68 0x69 0x73 0x20 0x73 0x6F 0x6E    // ' his son' \n\t0x67 0x73 0x2C 0x20 0x62 0x75 0x74 0x20    // 'gs, but ' \n\t0x62 0x65 0x63 0x61 0x75 0x73 0x65 0x20    // 'because ' \n\t0x68 0x69 0x73 0x20 0x6E 0x6F 0x73 0x65    // 'his nose' \n\t0x20 0x61 0x6C 0x6D 0x6F 0x73 0x74 0x20    // ' almost ' \n\t0x63 0x6F 0x76 0x65 0x72 0x73 0x20 0x68    // 'covers h' \n\t0x69 0x73 0x20 0x75 0x70 0x70 0x65 0x72    // 'is upper' \n\t0x20 0x6C 0x69 0x70 0x2C 0x20 0x74 0x68    // ' lip, th' \n\t0x65 0x20 0x77 0x6F 0x72 0x64 0x73 0x20    // 'e words ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x6F 0x75 0x74    // 'come out' \n\t0x20 0x61 0x6C 0x6C 0x20 0x77 0x72 0x6F    // ' all wro' \n\t0x6E 0x67 0x2E 0x20 0x20 0x0D 0x0A 0x44    // 'ng.  ??D' \n\t0x72 0x65 0x61 0x6D 0x20 0x52 0x6F 0x6C    // 'ream Rol' \n\t0x65 0x73 0x0D 0x0A 0x47 0x75 0x69 0x6E    // 'es??Guin' \n\t0x65 0x61 0x20 0x50 0x69 0x67 0x3B 0x20    // 'ea Pig; ' \n\t0x56 0x69 0x6C 0x6C 0x69 0x61 0x6E 0x3B    // 'Villian;' \n\t0x20 0x4A 0x75 0x6E 0x67 0x6C 0x65 0x20    // ' Jungle ' \n\t0x4D 0x61 0x6E                             // 'Man' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= ktpcBioPage16\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"Bio Page 16  Gabriel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"Bio Page 16  Gabriel\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage16\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio57 __HELP_SYMBOL( STN \"ktipbio57\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio59 __HELP_SYMBOL( STN \"ktipbio59\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio60 __HELP_SYMBOL( STN \"ktipbio60\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio58 __HELP_SYMBOL( STN \"ktipbio58\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x21 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '!???????' \n\t0x01 0x00 0x00 0x00 0x1F 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x21 0x01 0x00 0x01    // '????!???' \n\t0x01 0x00 0x00 0x00 0x57 0x01 0x00 0x01    // '????W???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x21 0x01 0x00 0x03    // '????!???' \n\t0x0A 0x00 0x00 0xFD 0x2C 0x01 0x00 0x03    // '???,???' \n\t0x00 0x00 0x00 0x00 0xD9 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE1 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x2E 0x01 0x00 0x04    // '????.???' \n\t0x0D 0x00 0x00 0xFE 0x43 0x01 0x00 0x04    // '???C???' \n\t0x00 0x00 0x00 0x00 0x45 0x01 0x00 0x04    // '????E???' \n\t0x0D 0x00 0x00 0xFE 0x49 0x01 0x00 0x04    // '???I???' \n\t0x00 0x00 0x00 0x00 0x4B 0x01 0x00 0x04    // '????K???' \n\t0x0D 0x00 0x00 0xFE 0x57 0x01 0x00 0x04    // '???W???' \n\t0x00 0x00 0x00 0x00 0xD9 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xE1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x2E 0x01 0x00 0x40    // '????.??@' \n\t0x05 0x00 0x00 0x00 0x43 0x01 0x00 0x40    // '????C??@' \n\t0x00 0x00 0x00 0x00 0x45 0x01 0x00 0x40    // '????E??@' \n\t0x02 0x00 0x00 0x00 0x49 0x01 0x00 0x40    // '????I??@' \n\t0x00 0x00 0x00 0x00 0x4B 0x01 0x00 0x40    // '????K??@' \n\t0x03 0x00 0x00 0x00 0x57 0x01 0x00 0x40    // '????W??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x09 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x15 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x15 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x74 0x00 0x00 0x82    // '????t??' \n\t0x05 0x00 0x00 0x00 0x2E 0x01 0x00 0x82    // '????.??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x41 0x42 0x52 0x49 0x45    // '??GABRIE' \n\t0x4C 0x0D 0x0A 0x42 0x61 0x63 0x6B 0x67    // 'L??Backg' \n\t0x72 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x47    // 'round??G' \n\t0x61 0x62 0x72 0x69 0x65 0x6C 0x20 0x69    // 'abriel i' \n\t0x73 0x20 0x66 0x72 0x6F 0x6D 0x20 0x56    // 's from V' \n\t0x65 0x6E 0x69 0x63 0x65 0x20 0x42 0x65    // 'enice Be' \n\t0x61 0x63 0x68 0x2C 0x20 0x43 0x61 0x6C    // 'ach, Cal' \n\t0x69 0x66 0x6F 0x72 0x6E 0x69 0x61 0x2E    // 'ifornia.' \n\t0x20 0x20 0x41 0x74 0x20 0x61 0x67 0x65    // '  At age' \n\t0x20 0x6F 0x6E 0x65 0x2C 0x20 0x68 0x65    // ' one, he' \n\t0x20 0x63 0x61 0x6E 0x20 0x63 0x6C 0x65    // ' can cle' \n\t0x61 0x72 0x6C 0x79 0x20 0x73 0x61 0x79    // 'arly say' \n\t0x2C 0x20 0x93 0x57 0x61 0x79 0x20 0x63    // ', Way c' \n\t0x6F 0x6F 0x6C 0x2C 0x20 0x64 0x75 0x64    // 'ool, dud' \n\t0x65 0x21 0x94 0x20 0x0D 0x0A 0x48 0x69    // 'e! ??Hi' \n\t0x73 0x20 0x70 0x61 0x72 0x65 0x6E 0x74    // 's parent' \n\t0x73 0x20 0x67 0x61 0x76 0x65 0x20 0x75    // 's gave u' \n\t0x70 0x20 0x74 0x72 0x79 0x69 0x6E 0x67    // 'p trying' \n\t0x20 0x74 0x6F 0x20 0x6B 0x65 0x65 0x70    // ' to keep' \n\t0x20 0x61 0x6E 0x20 0x65 0x79 0x65 0x20    // ' an eye ' \n\t0x6F 0x6E 0x20 0x47 0x61 0x62 0x72 0x69    // 'on Gabri' \n\t0x65 0x6C 0x20 0x77 0x68 0x65 0x6E 0x20    // 'el when ' \n\t0x68 0x65 0x20 0x77 0x61 0x73 0x20 0x36    // 'he was 6' \n\t0x20 0x6D 0x6F 0x6E 0x74 0x68 0x73 0x20    // ' months ' \n\t0x6F 0x6C 0x64 0x20 0x62 0x65 0x63 0x61    // 'old beca' \n\t0x75 0x73 0x65 0x20 0x68 0x65 0x20 0x77    // 'use he w' \n\t0x61 0x73 0x20 0x61 0x6C 0x72 0x65 0x61    // 'as alrea' \n\t0x64 0x79 0x20 0x63 0x72 0x61 0x77 0x6C    // 'dy crawl' \n\t0x69 0x6E 0x67 0x20 0x74 0x6F 0x20 0x74    // 'ing to t' \n\t0x68 0x65 0x20 0x6D 0x61 0x6C 0x6C 0x20    // 'he mall ' \n\t0x74 0x6F 0x20 0x74 0x72 0x79 0x20 0x6F    // 'to try o' \n\t0x6E 0x20 0x6E 0x65 0x77 0x20 0x6E 0x65    // 'n new ne' \n\t0x6F 0x6E 0x20 0x74 0x2D 0x73 0x68 0x69    // 'on t-shi' \n\t0x72 0x74 0x73 0x20 0x61 0x6E 0x64 0x20    // 'rts and ' \n\t0x6D 0x61 0x74 0x63 0x68 0x69 0x6E 0x67    // 'matching' \n\t0x20 0x64 0x69 0x61 0x70 0x65 0x72 0x73    // ' diapers' \n\t0x2E 0x0D 0x0A 0x44 0x72 0x65 0x61 0x6D    // '.??Dream' \n\t0x20 0x52 0x6F 0x6C 0x65 0x73 0x0D 0x0A    // ' Roles??' \n\t0x53 0x70 0x6F 0x6F 0x6B 0x79 0x27 0x73    // 'Spooky's' \n\t0x20 0x59 0x6F 0x75 0x6E 0x67 0x65 0x73    // ' Younges' \n\t0x74 0x20 0x53 0x6F 0x6E 0x3B 0x20 0x53    // 't Son; S' \n\t0x74 0x61 0x72 0x3B 0x20 0x59 0x6F 0x75    // 'tar; You' \n\t0x6E 0x67 0x20 0x4E 0x61 0x74 0x69 0x76    // 'ng Nativ' \n\t0x65                                       // 'e' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= ktpcBioPage17\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"Bio Page 17  Gregory\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"Bio Page 17  Gregory\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage17\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_10=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio61 __HELP_SYMBOL( STN \"ktipbio61\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio63 __HELP_SYMBOL( STN \"ktipbio63\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio64 __HELP_SYMBOL( STN \"ktipbio64\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio62 __HELP_SYMBOL( STN \"ktipbio62\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x39 0x01 0x00 0x01    // '????9???' \n\t0x00 0x00 0x00 0x00 0x3C 0x01 0x00 0x01    // '????<???' \n\t0x01 0x00 0x00 0x00 0x6B 0x01 0x00 0x01    // '????k???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x3C 0x01 0x00 0x03    // '????<???' \n\t0x0A 0x00 0x00 0xFD 0x47 0x01 0x00 0x03    // '???G???' \n\t0x00 0x00 0x00 0x00 0x34 0x01 0x00 0x04    // '????4???' \n\t0x0D 0x00 0x00 0xFE 0x39 0x01 0x00 0x04    // '???9???' \n\t0x00 0x00 0x00 0x00 0x49 0x01 0x00 0x04    // '????I???' \n\t0x0D 0x00 0x00 0xFE 0x51 0x01 0x00 0x04    // '???Q???' \n\t0x00 0x00 0x00 0x00 0x53 0x01 0x00 0x04    // '????S???' \n\t0x0D 0x00 0x00 0xFE 0x60 0x01 0x00 0x04    // '???`???' \n\t0x00 0x00 0x00 0x00 0x62 0x01 0x00 0x04    // '????b???' \n\t0x0D 0x00 0x00 0xFE 0x6B 0x01 0x00 0x04    // '???k???' \n\t0x00 0x00 0x00 0x00 0x34 0x01 0x00 0x40    // '????4??@' \n\t0x01 0x00 0x00 0x00 0x39 0x01 0x00 0x40    // '????9??@' \n\t0x00 0x00 0x00 0x00 0x49 0x01 0x00 0x40    // '????I??@' \n\t0x05 0x00 0x00 0x00 0x51 0x01 0x00 0x40    // '????Q??@' \n\t0x00 0x00 0x00 0x00 0x53 0x01 0x00 0x40    // '????S??@' \n\t0x02 0x00 0x00 0x00 0x60 0x01 0x00 0x40    // '????`??@' \n\t0x00 0x00 0x00 0x00 0x62 0x01 0x00 0x40    // '????b??@' \n\t0x03 0x00 0x00 0x00 0x6B 0x01 0x00 0x40    // '????k??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x09 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x15 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x49 0x01 0x00 0x82    // '????I??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x52 0x45 0x47 0x4F 0x52    // '??GREGOR' \n\t0x59 0x0D 0x0A 0x42 0x61 0x63 0x6B 0x67    // 'Y??Backg' \n\t0x72 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x47    // 'round??G' \n\t0x72 0x65 0x67 0x6F 0x72 0x79 0x20 0x69    // 'regory i' \n\t0x73 0x20 0x61 0x20 0x74 0x79 0x70 0x69    // 's a typi' \n\t0x63 0x61 0x6C 0x20 0x31 0x34 0x2D 0x79    // 'cal 14-y' \n\t0x65 0x61 0x72 0x2D 0x6F 0x6C 0x64 0x20    // 'ear-old ' \n\t0x63 0x6C 0x61 0x73 0x73 0x20 0x63 0x6C    // 'class cl' \n\t0x6F 0x77 0x6E 0x2E 0x20 0x48 0x65 0x20    // 'own. He ' \n\t0x6B 0x65 0x65 0x70 0x73 0x20 0x68 0x69    // 'keeps hi' \n\t0x73 0x20 0x66 0x72 0x69 0x65 0x6E 0x64    // 's friend' \n\t0x73 0x20 0x61 0x6E 0x64 0x20 0x74 0x65    // 's and te' \n\t0x61 0x63 0x68 0x65 0x72 0x73 0x20 0x6C    // 'achers l' \n\t0x61 0x75 0x67 0x68 0x69 0x6E 0x67 0x20    // 'aughing ' \n\t0x77 0x69 0x74 0x68 0x20 0x68 0x69 0x73    // 'with his' \n\t0x20 0x6A 0x6F 0x6B 0x65 0x73 0x20 0x61    // ' jokes a' \n\t0x6E 0x64 0x20 0x69 0x6D 0x69 0x74 0x61    // 'nd imita' \n\t0x74 0x69 0x6F 0x6E 0x73 0x2E 0x20 0x48    // 'tions. H' \n\t0x65 0x20 0x61 0x6C 0x73 0x6F 0x20 0x6C    // 'e also l' \n\t0x69 0x6B 0x65 0x73 0x20 0x70 0x6C 0x61    // 'ikes pla' \n\t0x79 0x69 0x6E 0x67 0x20 0x77 0x69 0x74    // 'ying wit' \n\t0x68 0x20 0x72 0x61 0x64 0x69 0x6F 0x2D    // 'h radio-' \n\t0x63 0x6F 0x6E 0x74 0x72 0x6F 0x6C 0x6C    // 'controll' \n\t0x65 0x64 0x20 0x63 0x61 0x72 0x73 0x2C    // 'ed cars,' \n\t0x20 0x63 0x6F 0x6C 0x6C 0x65 0x63 0x74    // ' collect' \n\t0x69 0x6E 0x67 0x20 0x62 0x61 0x73 0x65    // 'ing base' \n\t0x62 0x61 0x6C 0x6C 0x20 0x63 0x61 0x72    // 'ball car' \n\t0x64 0x73 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'ds, and ' \n\t0x70 0x6C 0x61 0x79 0x69 0x6E 0x67 0x20    // 'playing ' \n\t0x62 0x61 0x73 0x6B 0x65 0x74 0x62 0x61    // 'basketba' \n\t0x6C 0x6C 0x2E 0x20 0x48 0x69 0x73 0x20    // 'll. His ' \n\t0x66 0x61 0x76 0x6F 0x72 0x69 0x74 0x65    // 'favorite' \n\t0x20 0x73 0x75 0x62 0x6A 0x65 0x63 0x74    // ' subject' \n\t0x73 0x20 0x69 0x6E 0x20 0x73 0x63 0x68    // 's in sch' \n\t0x6F 0x6F 0x6C 0x20 0x61 0x72 0x65 0x20    // 'ool are ' \n\t0x73 0x6F 0x63 0x69 0x61 0x6C 0x20 0x73    // 'social s' \n\t0x74 0x75 0x64 0x69 0x65 0x73 0x2C 0x20    // 'tudies, ' \n\t0x67 0x65 0x6F 0x67 0x72 0x61 0x70 0x68    // 'geograph' \n\t0x79 0x20 0x61 0x6E 0x64 0x20 0x64 0x72    // 'y and dr' \n\t0x61 0x6D 0x61 0x2E 0x0D 0x0A 0x44 0x72    // 'ama.??Dr' \n\t0x65 0x61 0x6D 0x20 0x52 0x6F 0x6C 0x65    // 'eam Role' \n\t0x73 0x0D 0x0A 0x4D 0x61 0x67 0x69 0x63    // 's??Magic' \n\t0x69 0x61 0x6E 0x3B 0x20 0x4E 0x65 0x77    // 'ian; New' \n\t0x73 0x70 0x61 0x70 0x65 0x72 0x20 0x42    // 'spaper B' \n\t0x6F 0x79 0x3B 0x20 0x42 0x6F 0x79 0x20    // 'oy; Boy ' \n\t0x53 0x63 0x6F 0x75 0x74                   // 'Scout' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= ktpcBioPage18\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"Bio Page 18  Gustave\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"Bio Page 18  Gustave\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage18\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4B, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio65 __HELP_SYMBOL( STN \"ktipbio65\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio68 __HELP_SYMBOL( STN \"ktipbio68\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 66 LONG ktipbio66 __HELP_SYMBOL( STN \"ktipbio66\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 67 LONG ktipbio67 __HELP_SYMBOL( STN \"ktipbio67\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x02 0x00 0x01    // '????(???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xFE 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x02 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x70 0x01 0x00 0x04    // '????p???' \n\t0x0D 0x00 0x00 0xFE 0x77 0x01 0x00 0x04    // '???w???' \n\t0x00 0x00 0x00 0x00 0x0B 0x02 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x11 0x02 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x13 0x02 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x1E 0x02 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x20 0x02 0x00 0x04    // '???? ???' \n\t0x0D 0x00 0x00 0xFE 0x28 0x02 0x00 0x04    // '???(???' \n\t0x00 0x00 0x00 0x00 0x70 0x01 0x00 0x40    // '????p??@' \n\t0x01 0x00 0x00 0x00 0x77 0x01 0x00 0x40    // '????w??@' \n\t0x00 0x00 0x00 0x00 0x0B 0x02 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x11 0x02 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x13 0x02 0x00 0x40    // '???????@' \n\t0x05 0x00 0x00 0x00 0x1E 0x02 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x20 0x02 0x00 0x40    // '???? ??@' \n\t0x03 0x00 0x00 0x00 0x28 0x02 0x00 0x40    // '????(??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x09 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x15 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xFE 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4B, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x55 0x53 0x54 0x41 0x56    // '??GUSTAV' \n\t0x45 0x0D 0x0A 0x42 0x61 0x63 0x6B 0x67    // 'E??Backg' \n\t0x72 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x47    // 'round??G' \n\t0x75 0x73 0x74 0x61 0x76 0x65 0x20 0x69    // 'ustave i' \n\t0x73 0x20 0x61 0x20 0x66 0x75 0x6E 0x2D    // 's a fun-' \n\t0x6C 0x6F 0x76 0x69 0x6E 0x67 0x20 0x49    // 'loving I' \n\t0x74 0x61 0x6C 0x69 0x61 0x6E 0x2E 0x20    // 'talian. ' \n\t0x20 0x41 0x73 0x20 0x61 0x20 0x73 0x68    // ' As a sh' \n\t0x6F 0x65 0x20 0x73 0x61 0x6C 0x65 0x73    // 'oe sales' \n\t0x6D 0x61 0x6E 0x20 0x69 0x6E 0x20 0x74    // 'man in t' \n\t0x68 0x65 0x20 0x73 0x6D 0x61 0x6C 0x6C    // 'he small' \n\t0x20 0x74 0x6F 0x77 0x6E 0x20 0x6F 0x66    // ' town of' \n\t0x20 0x50 0x6F 0x72 0x74 0x6F 0x66 0x69    // ' Portofi' \n\t0x6E 0x6F 0x2C 0x20 0x47 0x75 0x73 0x74    // 'no, Gust' \n\t0x61 0x76 0x65 0x20 0x73 0x6F 0x6C 0x64    // 'ave sold' \n\t0x20 0x74 0x68 0x69 0x63 0x6B 0x2D 0x73    // ' thick-s' \n\t0x6F 0x6C 0x65 0x64 0x2C 0x20 0x69 0x6E    // 'oled, in' \n\t0x64 0x75 0x73 0x74 0x72 0x69 0x61 0x6C    // 'dustrial' \n\t0x2D 0x71 0x75 0x61 0x6C 0x69 0x74 0x79    // '-quality' \n\t0x20 0x73 0x68 0x6F 0x65 0x73 0x2E 0x20    // ' shoes. ' \n\t0x20 0x48 0x65 0x20 0x61 0x6C 0x77 0x61    // ' He alwa' \n\t0x79 0x73 0x20 0x77 0x61 0x6E 0x74 0x65    // 'ys wante' \n\t0x64 0x20 0x74 0x6F 0x20 0x62 0x72 0x65    // 'd to bre' \n\t0x61 0x6B 0x20 0x6C 0x6F 0x6F 0x73 0x65    // 'ak loose' \n\t0x20 0x61 0x6E 0x64 0x20 0x68 0x61 0x76    // ' and hav' \n\t0x65 0x20 0x46 0x55 0x4E 0x2C 0x20 0x62    // 'e FUN, b' \n\t0x75 0x74 0x20 0x68 0x65 0x20 0x68 0x61    // 'ut he ha' \n\t0x64 0x20 0x68 0x69 0x73 0x20 0x72 0x65    // 'd his re' \n\t0x70 0x75 0x74 0x61 0x74 0x69 0x6F 0x6E    // 'putation' \n\t0x20 0x74 0x6F 0x20 0x75 0x70 0x68 0x6F    // ' to upho' \n\t0x6C 0x64 0x2E 0x0D 0x0A 0x4F 0x6E 0x65    // 'ld.??One' \n\t0x20 0x64 0x61 0x79 0x2C 0x20 0x47 0x75    // ' day, Gu' \n\t0x73 0x74 0x61 0x76 0x65 0x20 0x66 0x6F    // 'stave fo' \n\t0x75 0x6E 0x64 0x20 0x61 0x20 0x70 0x61    // 'und a pa' \n\t0x69 0x72 0x20 0x6F 0x66 0x20 0x73 0x68    // 'ir of sh' \n\t0x6F 0x65 0x73 0x20 0x77 0x69 0x74 0x68    // 'oes with' \n\t0x20 0x70 0x6F 0x69 0x6E 0x74 0x79 0x20    // ' pointy ' \n\t0x74 0x6F 0x65 0x73 0x20 0x61 0x6E 0x64    // 'toes and' \n\t0x20 0x68 0x61 0x6E 0x64 0x73 0x6F 0x6D    // ' handsom' \n\t0x65 0x20 0x6C 0x65 0x61 0x74 0x68 0x65    // 'e leathe' \n\t0x72 0x20 0x73 0x6F 0x6C 0x65 0x73 0x2E    // 'r soles.' \n\t0x20 0x48 0x65 0x20 0x74 0x72 0x69 0x65    // ' He trie' \n\t0x64 0x20 0x6F 0x6E 0x20 0x74 0x68 0x65    // 'd on the' \n\t0x20 0x73 0x68 0x6F 0x65 0x73 0x20 0x61    // ' shoes a' \n\t0x6E 0x64 0x20 0x73 0x75 0x64 0x64 0x65    // 'nd sudde' \n\t0x6E 0x6C 0x79 0x20 0x62 0x65 0x67 0x61    // 'nly bega' \n\t0x6E 0x20 0x64 0x61 0x6E 0x63 0x69 0x6E    // 'n dancin' \n\t0x67 0x97 0x74 0x68 0x72 0x6F 0x75 0x67    // 'gthroug' \n\t0x68 0x20 0x74 0x68 0x65 0x20 0x61 0x69    // 'h the ai' \n\t0x73 0x6C 0x65 0x73 0x2C 0x20 0x6F 0x6E    // 'sles, on' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x6F 0x75    // ' the cou' \n\t0x6E 0x74 0x65 0x72 0x20 0x74 0x6F 0x70    // 'nter top' \n\t0x73 0x97 0x68 0x65 0x20 0x65 0x76 0x65    // 'she eve' \n\t0x6E 0x20 0x64 0x61 0x6E 0x63 0x65 0x64    // 'n danced' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x61 0x6E    // ' with an' \n\t0x20 0x6F 0x6C 0x64 0x20 0x6C 0x61 0x64    // ' old lad' \n\t0x79 0x2E 0x20 0x47 0x75 0x73 0x74 0x61    // 'y. Gusta' \n\t0x76 0x65 0x20 0x6B 0x65 0x70 0x74 0x20    // 've kept ' \n\t0x64 0x61 0x6E 0x63 0x69 0x6E 0x67 0x20    // 'dancing ' \n\t0x6F 0x75 0x74 0x20 0x69 0x6E 0x74 0x6F    // 'out into' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x72    // ' the str' \n\t0x65 0x65 0x74 0x20 0x75 0x6E 0x74 0x69    // 'eet unti' \n\t0x6C 0x20 0x68 0x65 0x20 0x67 0x6F 0x74    // 'l he got' \n\t0x20 0x68 0x6F 0x6D 0x65 0x2E 0x0D 0x0A    // ' home.??' \n\t0x44 0x72 0x65 0x61 0x6D 0x20 0x52 0x6F    // 'Dream Ro' \n\t0x6C 0x65 0x73 0x0D 0x0A 0x42 0x75 0x74    // 'les??But' \n\t0x6C 0x65 0x72 0x3B 0x20 0x43 0x61 0x66    // 'ler; Caf' \n\t0x65 0x20 0x57 0x61 0x69 0x74 0x65 0x72    // 'e Waiter' \n\t0x3B 0x20 0x45 0x78 0x70 0x6C 0x6F 0x72    // '; Explor' \n\t0x65 0x72                                  // 'er' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= ktpcBioPage19\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"Bio Page 19  Hiro\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"Bio Page 19  Hiro\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage19\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_15=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio73 __HELP_SYMBOL( STN \"ktipbio73\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio74 __HELP_SYMBOL( STN \"ktipbio74\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio75 __HELP_SYMBOL( STN \"ktipbio75\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio76 __HELP_SYMBOL( STN \"ktipbio76\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // ' ???????' \n\t0x01 0x00 0x00 0x00 0x85 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x34 0x01 0x00 0x03    // '????4???' \n\t0x0A 0x00 0x00 0xFD 0x3F 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x9B 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA0 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x32 0x01 0x00 0x04    // '????2???' \n\t0x00 0x00 0x00 0x00 0x41 0x01 0x00 0x04    // '????A???' \n\t0x0D 0x00 0x00 0xFE 0x4C 0x01 0x00 0x04    // '???L???' \n\t0x00 0x00 0x00 0x00 0x4E 0x01 0x00 0x04    // '????N???' \n\t0x0D 0x00 0x00 0xFE 0x6E 0x01 0x00 0x04    // '???n???' \n\t0x00 0x00 0x00 0x00 0x70 0x01 0x00 0x04    // '????p???' \n\t0x0D 0x00 0x00 0xFE 0x85 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x9B 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xA0 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x32 0x01 0x00 0x40    // '????2??@' \n\t0x00 0x00 0x00 0x00 0x41 0x01 0x00 0x40    // '????A??@' \n\t0x02 0x00 0x00 0x00 0x4C 0x01 0x00 0x40    // '????L??@' \n\t0x00 0x00 0x00 0x00 0x4E 0x01 0x00 0x40    // '????N??@' \n\t0x03 0x00 0x00 0x00 0x6E 0x01 0x00 0x40    // '????n??@' \n\t0x00 0x00 0x00 0x00 0x70 0x01 0x00 0x40    // '????p??@' \n\t0x04 0x00 0x00 0x00 0x85 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x06 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x12 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x41 0x01 0x00 0x82    // '????A??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x49 0x52 0x4F 0x0D 0x0A    // '??HIRO??' \n\t0x42 0x61 0x63 0x6B 0x67 0x72 0x6F 0x75    // 'Backgrou' \n\t0x6E 0x64 0x0D 0x0A 0x48 0x69 0x72 0x6F    // 'nd??Hiro' \n\t0x20 0x67 0x72 0x65 0x77 0x20 0x75 0x70    // ' grew up' \n\t0x20 0x69 0x6E 0x20 0x61 0x6E 0x20 0x6F    // ' in an o' \n\t0x72 0x70 0x68 0x61 0x6E 0x61 0x67 0x65    // 'rphanage' \n\t0x20 0x69 0x6E 0x20 0x53 0x65 0x6E 0x64    // ' in Send' \n\t0x61 0x69 0x2C 0x20 0x4A 0x61 0x70 0x61    // 'ai, Japa' \n\t0x6E 0x2C 0x20 0x61 0x6E 0x64 0x20 0x6E    // 'n, and n' \n\t0x65 0x76 0x65 0x72 0x20 0x6B 0x6E 0x65    // 'ever kne' \n\t0x77 0x20 0x68 0x69 0x73 0x20 0x70 0x61    // 'w his pa' \n\t0x72 0x65 0x6E 0x74 0x73 0x2E 0x20 0x20    // 'rents.  ' \n\t0x4E 0x6F 0x74 0x20 0x6F 0x6E 0x65 0x20    // 'Not one ' \n\t0x74 0x6F 0x20 0x64 0x77 0x65 0x6C 0x6C    // 'to dwell' \n\t0x20 0x6F 0x6E 0x20 0x74 0x68 0x65 0x20    // ' on the ' \n\t0x6E 0x65 0x67 0x61 0x74 0x69 0x76 0x65    // 'negative' \n\t0x20 0x73 0x69 0x64 0x65 0x20 0x6F 0x66    // ' side of' \n\t0x20 0x6C 0x69 0x66 0x65 0x2C 0x20 0x68    // ' life, h' \n\t0x65 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 'e would ' \n\t0x74 0x65 0x6C 0x6C 0x20 0x6A 0x6F 0x6B    // 'tell jok' \n\t0x65 0x73 0x20 0x61 0x6E 0x64 0x20 0x70    // 'es and p' \n\t0x75 0x74 0x20 0x6F 0x6E 0x20 0x70 0x6C    // 'ut on pl' \n\t0x61 0x79 0x73 0x20 0x61 0x74 0x20 0x74    // 'ays at t' \n\t0x68 0x65 0x20 0x6F 0x72 0x70 0x68 0x61    // 'he orpha' \n\t0x6E 0x61 0x67 0x65 0x20 0x74 0x6F 0x20    // 'nage to ' \n\t0x68 0x65 0x6C 0x70 0x20 0x6B 0x65 0x65    // 'help kee' \n\t0x70 0x20 0x74 0x68 0x65 0x20 0x6F 0x74    // 'p the ot' \n\t0x68 0x65 0x72 0x20 0x6B 0x69 0x64 0x73    // 'her kids' \n\t0x20 0x65 0x6E 0x74 0x65 0x72 0x74 0x61    // ' enterta' \n\t0x69 0x6E 0x65 0x64 0x2E 0x20 0x20 0x48    // 'ined.  H' \n\t0x69 0x73 0x20 0x64 0x72 0x65 0x61 0x6D    // 'is dream' \n\t0x20 0x77 0x61 0x73 0x20 0x74 0x6F 0x20    // ' was to ' \n\t0x6F 0x6E 0x65 0x20 0x64 0x61 0x79 0x20    // 'one day ' \n\t0x6D 0x61 0x6B 0x65 0x20 0x67 0x72 0x65    // 'make gre' \n\t0x61 0x74 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'at movie' \n\t0x73 0x20 0x74 0x68 0x61 0x74 0x20 0x77    // 's that w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x65 0x6E 0x74    // 'ould ent' \n\t0x65 0x72 0x74 0x61 0x69 0x6E 0x20 0x6B    // 'ertain k' \n\t0x69 0x64 0x73 0x2E 0x0D 0x0A 0x44 0x72    // 'ids.??Dr' \n\t0x65 0x61 0x6D 0x20 0x52 0x6F 0x6C 0x65    // 'eam Role' \n\t0x73 0x0D 0x0A 0x46 0x6F 0x6F 0x64 0x20    // 's??Food ' \n\t0x54 0x65 0x73 0x74 0x65 0x72 0x3B 0x20    // 'Tester; ' \n\t0x4D 0x65 0x6D 0x62 0x65 0x72 0x20 0x6F    // 'Member o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x4B 0x69    // 'f the Ki' \n\t0x64 0x73 0x27 0x20 0x4D 0x79 0x73 0x74    // 'ds' Myst' \n\t0x65 0x72 0x79 0x20 0x43 0x6C 0x75 0x62    // 'ery Club' \n\t0x3B 0x20 0x48 0x6F 0x74 0x2D 0x61 0x69    // '; Hot-ai' \n\t0x72 0x20 0x42 0x61 0x6C 0x6C 0x6F 0x6F    // 'r Balloo' \n\t0x6E 0x20 0x50 0x69 0x6C 0x6F 0x74         // 'n Pilot' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= ktpcBioPage20\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"Bio Page 20  Jeremy\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"Bio Page 20  Jeremy\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_27=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage20\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_27=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_23=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio77 __HELP_SYMBOL( STN \"ktipbio77\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio78 __HELP_SYMBOL( STN \"ktipbio78\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio79 __HELP_SYMBOL( STN \"ktipbio79\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio80 __HELP_SYMBOL( STN \"ktipbio80\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_27=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // ' ???????' \n\t0x01 0x00 0x00 0x00 0xD1 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x96 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xA1 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x12 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x19 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x93 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0xA3 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA7 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xA9 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xC0 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xC2 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xD1 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x12 0x01 0x00 0x40    // '???????@' \n\t0x01 0x00 0x00 0x00 0x19 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x93 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA3 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xA7 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA9 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xC0 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC2 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xD1 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x08 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x14 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xA3 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_27=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x03 0x03 0x4A 0x45 0x52 0x45 0x4D 0x59    // '??JEREMY' \n\t0x0D 0x0A 0x42 0x61 0x63 0x6B 0x67 0x72    // '??Backgr' \n\t0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x4A 0x65    // 'ound??Je' \n\t0x72 0x65 0x6D 0x79 0x20 0x77 0x61 0x73    // 'remy was' \n\t0x20 0x62 0x6F 0x72 0x6E 0x20 0x69 0x6E    // ' born in' \n\t0x20 0x43 0x6F 0x6E 0x6E 0x65 0x63 0x74    // ' Connect' \n\t0x69 0x63 0x75 0x74 0x2C 0x20 0x69 0x6E    // 'icut, in' \n\t0x20 0x74 0x68 0x65 0x20 0x55 0x6E 0x69    // ' the Uni' \n\t0x74 0x65 0x64 0x20 0x53 0x74 0x61 0x74    // 'ted Stat' \n\t0x65 0x73 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'es, and ' \n\t0x68 0x65 0x20 0x6C 0x6F 0x76 0x65 0x73    // 'he loves' \n\t0x20 0x74 0x6F 0x20 0x65 0x78 0x65 0x72    // ' to exer' \n\t0x63 0x69 0x73 0x65 0x2E 0x20 0x20 0x41    // 'cise.  A' \n\t0x74 0x20 0x32 0x39 0x2C 0x20 0x68 0x65    // 't 29, he' \n\t0x92 0x73 0x20 0x61 0x20 0x67 0x72 0x65    // 's a gre' \n\t0x61 0x74 0x20 0x61 0x74 0x68 0x6C 0x65    // 'at athle' \n\t0x74 0x65 0x20 0x61 0x6E 0x64 0x20 0x68    // 'te and h' \n\t0x61 0x73 0x20 0x62 0x65 0x65 0x6E 0x20    // 'as been ' \n\t0x69 0x6E 0x74 0x65 0x72 0x76 0x69 0x65    // 'intervie' \n\t0x77 0x65 0x64 0x20 0x6F 0x6E 0x20 0x73    // 'wed on s' \n\t0x70 0x6F 0x72 0x74 0x73 0x20 0x74 0x65    // 'ports te' \n\t0x6C 0x65 0x76 0x69 0x73 0x69 0x6F 0x6E    // 'levision' \n\t0x20 0x73 0x68 0x6F 0x77 0x73 0x20 0x73    // ' shows s' \n\t0x65 0x76 0x65 0x72 0x61 0x6C 0x20 0x74    // 'everal t' \n\t0x69 0x6D 0x65 0x73 0x20 0x66 0x6F 0x72    // 'imes for' \n\t0x20 0x77 0x69 0x6E 0x6E 0x69 0x6E 0x67    // ' winning' \n\t0x20 0x72 0x61 0x63 0x65 0x73 0x2E 0x20    // ' races. ' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x68 0x65    // ' When he' \n\t0x20 0x73 0x74 0x61 0x72 0x74 0x65 0x64    // ' started' \n\t0x20 0x74 0x6F 0x20 0x61 0x63 0x74 0x20    // ' to act ' \n\t0x69 0x6E 0x20 0x63 0x6F 0x6D 0x6D 0x65    // 'in comme' \n\t0x72 0x63 0x69 0x61 0x6C 0x73 0x20 0x66    // 'rcials f' \n\t0x6F 0x72 0x20 0x74 0x65 0x6E 0x6E 0x69    // 'or tenni' \n\t0x73 0x20 0x73 0x68 0x6F 0x65 0x73 0x20    // 's shoes ' \n\t0x61 0x6E 0x64 0x20 0x72 0x75 0x6E 0x6E    // 'and runn' \n\t0x69 0x6E 0x67 0x20 0x63 0x6C 0x6F 0x74    // 'ing clot' \n\t0x68 0x65 0x73 0x2C 0x20 0x61 0x20 0x66    // 'hes, a f' \n\t0x65 0x77 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ew movie' \n\t0x20 0x70 0x72 0x6F 0x64 0x75 0x63 0x65    // ' produce' \n\t0x72 0x73 0x20 0x74 0x68 0x6F 0x75 0x67    // 'rs thoug' \n\t0x68 0x74 0x20 0x68 0x65 0x92 0x64 0x20    // 'ht hed ' \n\t0x62 0x65 0x20 0x67 0x72 0x65 0x61 0x74    // 'be great' \n\t0x20 0x66 0x6F 0x72 0x20 0x73 0x6F 0x6D    // ' for som' \n\t0x65 0x20 0x73 0x6D 0x61 0x6C 0x6C 0x20    // 'e small ' \n\t0x70 0x61 0x72 0x74 0x73 0x20 0x69 0x6E    // 'parts in' \n\t0x20 0x66 0x69 0x6C 0x6D 0x73 0x2C 0x20    // ' films, ' \n\t0x74 0x68 0x61 0x6E 0x6B 0x73 0x20 0x74    // 'thanks t' \n\t0x6F 0x20 0x68 0x69 0x73 0x20 0x6E 0x61    // 'o his na' \n\t0x74 0x75 0x72 0x61 0x6C 0x20 0x61 0x63    // 'tural ac' \n\t0x74 0x69 0x6E 0x67 0x20 0x61 0x62 0x69    // 'ting abi' \n\t0x6C 0x69 0x74 0x79 0x2E 0x20 0x0D 0x0A    // 'lity. ??' \n\t0x44 0x72 0x65 0x61 0x6D 0x20 0x52 0x6F    // 'Dream Ro' \n\t0x6C 0x65 0x73 0x0D 0x0A 0x43 0x6F 0x6F    // 'les??Coo' \n\t0x6B 0x3B 0x20 0x53 0x74 0x72 0x65 0x65    // 'k; Stree' \n\t0x74 0x20 0x46 0x61 0x69 0x72 0x20 0x50    // 't Fair P' \n\t0x61 0x72 0x74 0x69 0x63 0x69 0x70 0x61    // 'articipa' \n\t0x6E 0x74 0x3B 0x20 0x50 0x72 0x65 0x68    // 'nt; Preh' \n\t0x69 0x73 0x74 0x6F 0x72 0x69 0x63 0x20    // 'istoric ' \n\t0x4D 0x61 0x6E                             // 'Man' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= ktpcBioPage21\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"Bio Page 21 Jerzy\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"Bio Page 21 Jerzy\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_57=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage21\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_57=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_57, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio81 __HELP_SYMBOL( STN \"ktipbio81\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio82 __HELP_SYMBOL( STN \"ktipbio82\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio83 __HELP_SYMBOL( STN \"ktipbio83\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio84 __HELP_SYMBOL( STN \"ktipbio84\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_57=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_57, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x22 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '\"???????' \n\t0x01 0x00 0x00 0x00 0x83 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x85 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB5 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x85 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x90 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xBE 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xC3 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x85 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x92 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x9A 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x9C 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA7 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xA9 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xB5 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xBE 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xC3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x85 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x92 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x9A 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x9C 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xA7 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA9 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xB5 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x07 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x13 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x92 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_57=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_57, 0x0)\n\tBYTE\n\t0x03 0x03 0x4A 0x45 0x52 0x5A 0x59 0x0D    // '??JERZY?' \n\t0x0A 0x42 0x61 0x63 0x6B 0x67 0x72 0x6F    // '?Backgro' \n\t0x75 0x6E 0x64 0x0D 0x0A 0x4A 0x65 0x72    // 'und??Jer' \n\t0x7A 0x79 0x20 0x69 0x73 0x20 0x61 0x20    // 'zy is a ' \n\t0x70 0x6F 0x74 0x61 0x74 0x6F 0x20 0x66    // 'potato f' \n\t0x61 0x72 0x6D 0x65 0x72 0x20 0x66 0x72    // 'armer fr' \n\t0x6F 0x6D 0x20 0x63 0x65 0x6E 0x74 0x72    // 'om centr' \n\t0x61 0x6C 0x20 0x50 0x6F 0x6C 0x61 0x6E    // 'al Polan' \n\t0x64 0x2E 0x20 0x20 0x48 0x65 0x20 0x68    // 'd.  He h' \n\t0x61 0x73 0x20 0x65 0x61 0x74 0x65 0x6E    // 'as eaten' \n\t0x20 0x6D 0x75 0x63 0x68 0x20 0x6F 0x66    // ' much of' \n\t0x20 0x77 0x68 0x61 0x74 0x20 0x68 0x65    // ' what he' \n\t0x92 0x73 0x20 0x67 0x72 0x6F 0x77 0x6E    // 's grown' \n\t0x2C 0x20 0x73 0x6F 0x20 0x74 0x68 0x61    // ', so tha' \n\t0x74 0x20 0x6E 0x6F 0x77 0x20 0x68 0x65    // 't now he' \n\t0x20 0x61 0x6C 0x77 0x61 0x79 0x73 0x20    // ' always ' \n\t0x73 0x61 0x79 0x73 0x2C 0x20 0x93 0x4F    // 'says, O' \n\t0x6F 0x6D 0x70 0x68 0x94 0x20 0x77 0x68    // 'omph wh' \n\t0x65 0x6E 0x20 0x68 0x65 0x20 0x6B 0x6E    // 'en he kn' \n\t0x65 0x65 0x6C 0x73 0x20 0x74 0x6F 0x20    // 'eels to ' \n\t0x64 0x69 0x67 0x20 0x70 0x6F 0x74 0x61    // 'dig pota' \n\t0x74 0x6F 0x65 0x73 0x2E 0x20 0x20 0x48    // 'toes.  H' \n\t0x65 0x20 0x6C 0x6F 0x76 0x65 0x73 0x20    // 'e loves ' \n\t0x74 0x6F 0x20 0x74 0x65 0x6C 0x6C 0x20    // 'to tell ' \n\t0x6A 0x6F 0x6B 0x65 0x73 0x20 0x61 0x6E    // 'jokes an' \n\t0x64 0x20 0x64 0x61 0x6E 0x63 0x65 0x20    // 'd dance ' \n\t0x74 0x6F 0x20 0x6F 0x6C 0x64 0x20 0x50    // 'to old P' \n\t0x6F 0x6C 0x69 0x73 0x68 0x20 0x66 0x6F    // 'olish fo' \n\t0x6C 0x6B 0x20 0x73 0x6F 0x6E 0x67 0x73    // 'lk songs' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x68 0x69    // ' with hi' \n\t0x73 0x20 0x6E 0x65 0x69 0x67 0x68 0x62    // 's neighb' \n\t0x6F 0x72 0x73 0x2C 0x20 0x61 0x20 0x77    // 'ors, a w' \n\t0x6F 0x6D 0x61 0x6E 0x20 0x66 0x72 0x6F    // 'oman fro' \n\t0x6D 0x20 0x54 0x65 0x78 0x61 0x73 0x20    // 'm Texas ' \n\t0x61 0x6E 0x64 0x20 0x61 0x20 0x6D 0x61    // 'and a ma' \n\t0x6E 0x20 0x66 0x72 0x6F 0x6D 0x20 0x49    // 'n from I' \n\t0x72 0x65 0x6C 0x61 0x6E 0x64 0x2E 0x20    // 'reland. ' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x68 0x65    // ' When he' \n\t0x20 0x77 0x61 0x73 0x20 0x61 0x20 0x62    // ' was a b' \n\t0x6F 0x79 0x2C 0x20 0x68 0x65 0x20 0x64    // 'oy, he d' \n\t0x72 0x65 0x61 0x6D 0x65 0x64 0x20 0x6F    // 'reamed o' \n\t0x66 0x20 0x62 0x65 0x63 0x6F 0x6D 0x69    // 'f becomi' \n\t0x6E 0x67 0x20 0x61 0x20 0x66 0x61 0x6D    // 'ng a fam' \n\t0x6F 0x75 0x73 0x20 0x6D 0x6F 0x76 0x69    // 'ous movi' \n\t0x65 0x20 0x73 0x74 0x61 0x72 0x2C 0x20    // 'e star, ' \n\t0x62 0x75 0x74 0x20 0x74 0x68 0x61 0x74    // 'but that' \n\t0x20 0x77 0x61 0x73 0x20 0x61 0x20 0x6C    // ' was a l' \n\t0x6F 0x6E 0x67 0x20 0x74 0x69 0x6D 0x65    // 'ong time' \n\t0x20 0x61 0x67 0x6F 0x2E 0x0D 0x0A 0x44    // ' ago.??D' \n\t0x72 0x65 0x61 0x6D 0x20 0x52 0x6F 0x6C    // 'ream Rol' \n\t0x65 0x73 0x0D 0x0A 0x47 0x61 0x72 0x64    // 'es??Gard' \n\t0x65 0x6E 0x65 0x72 0x3B 0x20 0x54 0x61    // 'ener; Ta' \n\t0x78 0x69 0x20 0x44 0x72 0x69 0x76 0x65    // 'xi Drive' \n\t0x72 0x3B 0x20 0x41 0x72 0x63 0x68 0x65    // 'r; Arche' \n\t0x6F 0x6C 0x6F 0x67 0x69 0x73 0x74         // 'ologist' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= ktpcBioPage22\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"Bio Page 22  Josephine\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"Bio Page 22  Josephine\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage22\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_28=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7A, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio86 __HELP_SYMBOL( STN \"ktipbio86\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio87 __HELP_SYMBOL( STN \"ktipbio87\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio88 __HELP_SYMBOL( STN \"ktipbio88\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio85 __HELP_SYMBOL( STN \"ktipbio85\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x86 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x17 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x4B 0x01 0x00 0x03    // '????K???' \n\t0x0A 0x00 0x00 0xFD 0x56 0x01 0x00 0x03    // '???V???' \n\t0x00 0x00 0x00 0x00 0x3D 0x01 0x00 0x04    // '????=???' \n\t0x0D 0x00 0x00 0xFE 0x48 0x01 0x00 0x04    // '???H???' \n\t0x00 0x00 0x00 0x00 0x58 0x01 0x00 0x04    // '????X???' \n\t0x0D 0x00 0x00 0xFE 0x63 0x01 0x00 0x04    // '???c???' \n\t0x00 0x00 0x00 0x00 0x65 0x01 0x00 0x04    // '????e???' \n\t0x0D 0x00 0x00 0xFE 0x77 0x01 0x00 0x04    // '???w???' \n\t0x00 0x00 0x00 0x00 0x79 0x01 0x00 0x04    // '????y???' \n\t0x0D 0x00 0x00 0xFE 0x86 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x3D 0x01 0x00 0x40    // '????=??@' \n\t0x05 0x00 0x00 0x00 0x48 0x01 0x00 0x40    // '????H??@' \n\t0x00 0x00 0x00 0x00 0x58 0x01 0x00 0x40    // '????X??@' \n\t0x01 0x00 0x00 0x00 0x63 0x01 0x00 0x40    // '????c??@' \n\t0x00 0x00 0x00 0x00 0x65 0x01 0x00 0x40    // '????e??@' \n\t0x02 0x00 0x00 0x00 0x77 0x01 0x00 0x40    // '????w??@' \n\t0x00 0x00 0x00 0x00 0x79 0x01 0x00 0x40    // '????y??@' \n\t0x03 0x00 0x00 0x00 0x86 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x0B 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x17 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x58 0x01 0x00 0x82    // '????X??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7A, 0x0)\n\tBYTE\n\t0x03 0x03 0x4A 0x4F 0x53 0x45 0x50 0x48    // '??JOSEPH' \n\t0x49 0x4E 0x45 0x0D 0x0A 0x42 0x61 0x63    // 'INE??Bac' \n\t0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64 0x0D    // 'kground?' \n\t0x0A 0x4A 0x6F 0x73 0x65 0x70 0x68 0x69    // '?Josephi' \n\t0x6E 0x65 0x20 0x69 0x73 0x20 0x32 0x37    // 'ne is 27' \n\t0x20 0x79 0x65 0x61 0x72 0x73 0x20 0x6F    // ' years o' \n\t0x6C 0x64 0x20 0x61 0x6E 0x64 0x20 0x63    // 'ld and c' \n\t0x6F 0x6D 0x65 0x73 0x20 0x66 0x72 0x6F    // 'omes fro' \n\t0x6D 0x20 0x42 0x61 0x6E 0x67 0x61 0x6C    // 'm Bangal' \n\t0x6F 0x72 0x65 0x2C 0x20 0x49 0x6E 0x64    // 'ore, Ind' \n\t0x69 0x61 0x2E 0x20 0x42 0x61 0x6E 0x67    // 'ia. Bang' \n\t0x61 0x6C 0x6F 0x72 0x65 0x20 0x69 0x73    // 'alore is' \n\t0x20 0x61 0x20 0x76 0x65 0x72 0x79 0x20    // ' a very ' \n\t0x70 0x72 0x6F 0x67 0x72 0x65 0x73 0x73    // 'progress' \n\t0x69 0x76 0x65 0x20 0x63 0x69 0x74 0x79    // 'ive city' \n\t0x20 0x69 0x6E 0x20 0x49 0x6E 0x64 0x69    // ' in Indi' \n\t0x61 0x20 0x61 0x6E 0x64 0x20 0x4A 0x6F    // 'a and Jo' \n\t0x73 0x65 0x70 0x68 0x69 0x6E 0x65 0x20    // 'sephine ' \n\t0x68 0x61 0x73 0x20 0x74 0x72 0x69 0x65    // 'has trie' \n\t0x64 0x20 0x6D 0x61 0x6E 0x79 0x20 0x64    // 'd many d' \n\t0x69 0x66 0x66 0x65 0x72 0x65 0x6E 0x74    // 'ifferent' \n\t0x20 0x63 0x61 0x72 0x65 0x65 0x72 0x73    // ' careers' \n\t0x20 0x74 0x68 0x65 0x72 0x65 0x3A 0x20    // ' there: ' \n\t0x6D 0x6F 0x64 0x65 0x6C 0x69 0x6E 0x67    // 'modeling' \n\t0x2C 0x20 0x73 0x61 0x6C 0x65 0x73 0x2C    // ', sales,' \n\t0x20 0x77 0x72 0x69 0x74 0x69 0x6E 0x67    // ' writing' \n\t0x2C 0x20 0x61 0x63 0x74 0x69 0x6E 0x67    // ', acting' \n\t0x2E 0x2E 0x2E 0x20 0x62 0x75 0x74 0x20    // '... but ' \n\t0x75 0x70 0x6F 0x6E 0x20 0x61 0x63 0x74    // 'upon act' \n\t0x69 0x6E 0x67 0x20 0x69 0x6E 0x20 0x68    // 'ing in h' \n\t0x65 0x72 0x20 0x66 0x69 0x72 0x73 0x74    // 'er first' \n\t0x20 0x73 0x6D 0x61 0x6C 0x6C 0x20 0x70    // ' small p' \n\t0x61 0x72 0x74 0x20 0x69 0x6E 0x20 0x61    // 'art in a' \n\t0x20 0x66 0x69 0x6C 0x6D 0x2C 0x20 0x73    // ' film, s' \n\t0x68 0x65 0x20 0x6B 0x6E 0x65 0x77 0x20    // 'he knew ' \n\t0x73 0x68 0x65 0x20 0x68 0x61 0x64 0x20    // 'she had ' \n\t0x66 0x6F 0x75 0x6E 0x64 0x20 0x68 0x65    // 'found he' \n\t0x72 0x20 0x74 0x72 0x75 0x65 0x20 0x64    // 'r true d' \n\t0x65 0x73 0x74 0x69 0x6E 0x79 0x97 0x74    // 'estinyt' \n\t0x6F 0x20 0x62 0x65 0x20 0x61 0x20 0x6D    // 'o be a m' \n\t0x6F 0x76 0x69 0x65 0x20 0x73 0x74 0x61    // 'ovie sta' \n\t0x72 0x21 0x20 0x0D 0x0A 0x44 0x72 0x65    // 'r! ??Dre' \n\t0x61 0x6D 0x20 0x52 0x6F 0x6C 0x65 0x73    // 'am Roles' \n\t0x0D 0x0A 0x50 0x61 0x6C 0x6D 0x20 0x52    // '??Palm R' \n\t0x65 0x61 0x64 0x65 0x72 0x3B 0x20 0x49    // 'eader; I' \n\t0x6D 0x70 0x6F 0x72 0x74 0x20 0x53 0x61    // 'mport Sa' \n\t0x6C 0x65 0x73 0x70 0x65 0x72 0x73 0x6F    // 'lesperso' \n\t0x6E 0x3B 0x20 0x41 0x72 0x74 0x20 0x43    // 'n; Art C' \n\t0x6F 0x6C 0x6C 0x65 0x63 0x74 0x6F 0x72    // 'ollector' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= ktpcBioPage23\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"Bio Page 23  Kim\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"Bio Page 23  Kim\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage23\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_20=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio89 __HELP_SYMBOL( STN \"ktipbio89\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio90 __HELP_SYMBOL( STN \"ktipbio90\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio91 __HELP_SYMBOL( STN \"ktipbio91\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio92 __HELP_SYMBOL( STN \"ktipbio92\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1C 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xCD 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xD8 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xBC 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xCA 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xDA 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE8 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xF8 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x0A 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x0C 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x1C 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0xBC 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xCA 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xDA 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xE8 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF8 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0x0A 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x0C 0x01 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x1C 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x05 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x11 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xDA 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x03 0x03 0x4B 0x49 0x4D 0x0D 0x0A 0x42    // '??KIM??B' \n\t0x61 0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E    // 'ackgroun' \n\t0x64 0x0D 0x0A 0x4B 0x69 0x6D 0x20 0x69    // 'd??Kim i' \n\t0x73 0x20 0x73 0x75 0x70 0x70 0x6F 0x73    // 's suppos' \n\t0x65 0x64 0x20 0x74 0x6F 0x20 0x62 0x65    // 'ed to be' \n\t0x20 0x61 0x20 0x71 0x75 0x69 0x65 0x74    // ' a quiet' \n\t0x2C 0x20 0x70 0x72 0x6F 0x70 0x65 0x72    // ', proper' \n\t0x2C 0x20 0x31 0x32 0x2D 0x79 0x65 0x61    // ', 12-yea' \n\t0x72 0x2D 0x6F 0x6C 0x64 0x20 0x4A 0x61    // 'r-old Ja' \n\t0x70 0x61 0x6E 0x65 0x73 0x65 0x20 0x67    // 'panese g' \n\t0x69 0x72 0x6C 0x20 0x77 0x68 0x6F 0x20    // 'irl who ' \n\t0x62 0x65 0x68 0x61 0x76 0x65 0x73 0x20    // 'behaves ' \n\t0x68 0x65 0x72 0x73 0x65 0x6C 0x66 0x2E    // 'herself.' \n\t0x20 0x20 0x57 0x72 0x6F 0x6E 0x67 0x2E    // '  Wrong.' \n\t0x20 0x4B 0x69 0x6D 0x20 0x77 0x69 0x67    // ' Kim wig' \n\t0x67 0x6C 0x65 0x73 0x20 0x63 0x6F 0x6E    // 'gles con' \n\t0x73 0x74 0x61 0x6E 0x74 0x6C 0x79 0x2C    // 'stantly,' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x74 0x72    // ' will tr' \n\t0x79 0x20 0x61 0x6E 0x79 0x74 0x68 0x69    // 'y anythi' \n\t0x6E 0x67 0x20 0x6F 0x6E 0x63 0x65 0x2C    // 'ng once,' \n\t0x20 0x61 0x6E 0x64 0x20 0x72 0x65 0x61    // ' and rea' \n\t0x6C 0x6C 0x79 0x20 0x77 0x61 0x6E 0x74    // 'lly want' \n\t0x73 0x20 0x74 0x6F 0x20 0x62 0x65 0x20    // 's to be ' \n\t0x61 0x20 0x6B 0x69 0x64 0x20 0x73 0x74    // 'a kid st' \n\t0x75 0x6E 0x74 0x20 0x61 0x63 0x74 0x72    // 'unt actr' \n\t0x65 0x73 0x73 0x2E 0x20 0x0D 0x0A 0x44    // 'ess. ??D' \n\t0x72 0x65 0x61 0x6D 0x20 0x52 0x6F 0x6C    // 'ream Rol' \n\t0x65 0x73 0x0D 0x0A 0x46 0x6F 0x72 0x74    // 'es??Fort' \n\t0x75 0x6E 0x65 0x20 0x54 0x65 0x6C 0x6C    // 'une Tell' \n\t0x65 0x72 0x3B 0x20 0x4D 0x65 0x6D 0x62    // 'er; Memb' \n\t0x65 0x72 0x20 0x6F 0x66 0x20 0x74 0x68    // 'er of th' \n\t0x65 0x20 0x4B 0x69 0x64 0x73 0x27 0x20    // 'e Kids' ' \n\t0x4D 0x79 0x73 0x74 0x65 0x72 0x79 0x20    // 'Mystery ' \n\t0x43 0x6C 0x75 0x62 0x3B 0x20 0x50 0x72    // 'Club; Pr' \n\t0x65 0x68 0x69 0x73 0x74 0x6F 0x72 0x69    // 'ehistori' \n\t0x63 0x20 0x47 0x69 0x72 0x6C              // 'c Girl' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= ktpcBioPage24\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"Bio Page 24  Martha\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"Bio Page 24  Martha\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage24\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B2, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio93 __HELP_SYMBOL( STN \"ktipbio93\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio94 __HELP_SYMBOL( STN \"ktipbio94\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio95 __HELP_SYMBOL( STN \"ktipbio95\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio96 __HELP_SYMBOL( STN \"ktipbio96\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x80 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x35 0x01 0x00 0x03    // '????5???' \n\t0x0A 0x00 0x00 0xFD 0x40 0x01 0x00 0x03    // '???@???' \n\t0x00 0x00 0x00 0x00 0x27 0x01 0x00 0x04    // '????'???' \n\t0x0D 0x00 0x00 0xFE 0x2B 0x01 0x00 0x04    // '???+???' \n\t0x00 0x00 0x00 0x00 0x42 0x01 0x00 0x04    // '????B???' \n\t0x0D 0x00 0x00 0xFE 0x56 0x01 0x00 0x04    // '???V???' \n\t0x00 0x00 0x00 0x00 0x58 0x01 0x00 0x04    // '????X???' \n\t0x0D 0x00 0x00 0xFE 0x61 0x01 0x00 0x04    // '???a???' \n\t0x00 0x00 0x00 0x00 0x63 0x01 0x00 0x04    // '????c???' \n\t0x0D 0x00 0x00 0xFE 0x80 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x27 0x01 0x00 0x40    // '????'??@' \n\t0x01 0x00 0x00 0x00 0x2B 0x01 0x00 0x40    // '????+??@' \n\t0x00 0x00 0x00 0x00 0x42 0x01 0x00 0x40    // '????B??@' \n\t0x02 0x00 0x00 0x00 0x56 0x01 0x00 0x40    // '????V??@' \n\t0x00 0x00 0x00 0x00 0x58 0x01 0x00 0x40    // '????X??@' \n\t0x03 0x00 0x00 0x00 0x61 0x01 0x00 0x40    // '????a??@' \n\t0x00 0x00 0x00 0x00 0x63 0x01 0x00 0x40    // '????c??@' \n\t0x04 0x00 0x00 0x00 0x80 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x08 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x14 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x42 0x01 0x00 0x82    // '????B??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B2, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x41 0x52 0x54 0x48 0x41    // '??MARTHA' \n\t0x0D 0x0A 0x42 0x61 0x63 0x6B 0x67 0x72    // '??Backgr' \n\t0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x4D 0x61    // 'ound??Ma' \n\t0x72 0x74 0x68 0x61 0x20 0x77 0x61 0x73    // 'rtha was' \n\t0x20 0x62 0x6F 0x72 0x6E 0x20 0x69 0x6E    // ' born in' \n\t0x20 0x50 0x61 0x64 0x75 0x63 0x61 0x68    // ' Paducah' \n\t0x2C 0x20 0x54 0x65 0x78 0x61 0x73 0x2C    // ', Texas,' \n\t0x20 0x61 0x20 0x6C 0x69 0x74 0x74 0x6C    // ' a littl' \n\t0x65 0x20 0x74 0x6F 0x77 0x6E 0x20 0x69    // 'e town i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x6D 0x69    // 'n the mi' \n\t0x64 0x64 0x6C 0x65 0x20 0x6F 0x66 0x20    // 'ddle of ' \n\t0x6E 0x6F 0x77 0x68 0x65 0x72 0x65 0x2E    // 'nowhere.' \n\t0x20 0x42 0x65 0x69 0x6E 0x67 0x20 0x62    // ' Being b' \n\t0x6F 0x72 0x6E 0x20 0x69 0x6E 0x20 0x74    // 'orn in t' \n\t0x68 0x61 0x74 0x20 0x74 0x6F 0x77 0x6E    // 'hat town' \n\t0x20 0x77 0x61 0x73 0x20 0x61 0x20 0x6D    // ' was a m' \n\t0x69 0x73 0x74 0x61 0x6B 0x65 0x2E 0x20    // 'istake. ' \n\t0x4D 0x6F 0x73 0x74 0x20 0x70 0x65 0x6F    // 'Most peo' \n\t0x70 0x6C 0x65 0x20 0x74 0x68 0x65 0x72    // 'ple ther' \n\t0x65 0x20 0x77 0x65 0x72 0x65 0x20 0x71    // 'e were q' \n\t0x75 0x69 0x65 0x74 0x20 0x61 0x6E 0x64    // 'uiet and' \n\t0x20 0x68 0x61 0x64 0x20 0x93 0x67 0x6F    // ' had go' \n\t0x6F 0x64 0x20 0x73 0x65 0x6E 0x73 0x65    // 'od sense' \n\t0x2E 0x94 0x20 0x4E 0x6F 0x74 0x20 0x4D    // '. Not M' \n\t0x61 0x72 0x74 0x68 0x61 0x97 0x73 0x68    // 'arthash' \n\t0x65 0x20 0x77 0x61 0x73 0x20 0x77 0x61    // 'e was wa' \n\t0x63 0x6B 0x79 0x20 0x61 0x6E 0x64 0x20    // 'cky and ' \n\t0x63 0x72 0x65 0x61 0x74 0x69 0x76 0x65    // 'creative' \n\t0x2C 0x20 0x77 0x69 0x6C 0x64 0x20 0x61    // ', wild a' \n\t0x6E 0x64 0x20 0x75 0x6E 0x70 0x72 0x65    // 'nd unpre' \n\t0x64 0x69 0x63 0x74 0x61 0x62 0x6C 0x65    // 'dictable' \n\t0x2E 0x20 0x54 0x68 0x65 0x20 0x66 0x6F    // '. The fo' \n\t0x6C 0x6B 0x73 0x20 0x69 0x6E 0x20 0x54    // 'lks in T' \n\t0x65 0x78 0x61 0x73 0x20 0x73 0x74 0x69    // 'exas sti' \n\t0x6C 0x6C 0x20 0x72 0x65 0x6D 0x65 0x6D    // 'll remem' \n\t0x62 0x65 0x72 0x20 0x68 0x65 0x72 0x20    // 'ber her ' \n\t0x61 0x73 0x20 0x93 0x74 0x68 0x61 0x74    // 'as that' \n\t0x20 0x77 0x69 0x6C 0x64 0x20 0x74 0x68    // ' wild th' \n\t0x69 0x6E 0x67 0x2E 0x94 0x0D 0x0A 0x44    // 'ing.??D' \n\t0x72 0x65 0x61 0x6D 0x20 0x52 0x6F 0x6C    // 'ream Rol' \n\t0x65 0x73 0x0D 0x0A 0x41 0x20 0x43 0x72    // 'es??A Cr' \n\t0x65 0x65 0x70 0x79 0x2C 0x20 0x53 0x63    // 'eepy, Sc' \n\t0x61 0x72 0x79 0x20 0x41 0x75 0x6E 0x74    // 'ary Aunt' \n\t0x3B 0x20 0x4D 0x61 0x6E 0x6E 0x65 0x71    // '; Manneq' \n\t0x75 0x69 0x6E 0x3B 0x20 0x48 0x69 0x67    // 'uin; Hig' \n\t0x68 0x2D 0x46 0x6C 0x79 0x69 0x6E 0x67    // 'h-Flying' \n\t0x20 0x4D 0x61 0x72 0x6B 0x65 0x74 0x69    // ' Marketi' \n\t0x6E 0x67 0x20 0x4D 0x61 0x6E 0x61 0x67    // 'ng Manag' \n\t0x65 0x72                                  // 'er' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_18= ktpcBioPage25\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"Bio Page 25  Michael\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"Bio Page 25  Michael\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_25=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage25\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_25=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_27=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio97 __HELP_SYMBOL( STN \"ktipbio97\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio98 __HELP_SYMBOL( STN \"ktipbio98\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio99 __HELP_SYMBOL( STN \"ktipbio99\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio100 __HELP_SYMBOL( STN \"ktipbio100\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_25=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x23 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '#???????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1C 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x47 0x01 0x00 0x01    // '????G???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1C 0x01 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x27 0x01 0x00 0x03    // '???'???' \n\t0x00 0x00 0x00 0x00 0xB6 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xBB 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x1C 0x01 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00 0x29 0x01 0x00 0x04    // '????)???' \n\t0x0D 0x00 0x00 0xFE 0x32 0x01 0x00 0x04    // '???2???' \n\t0x00 0x00 0x00 0x00 0x34 0x01 0x00 0x04    // '????4???' \n\t0x0D 0x00 0x00 0xFE 0x3D 0x01 0x00 0x04    // '???=???' \n\t0x00 0x00 0x00 0x00 0x3F 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x47 0x01 0x00 0x04    // '???G???' \n\t0x00 0x00 0x00 0x00 0xB6 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xBB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x1C 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x29 0x01 0x00 0x40    // '????)??@' \n\t0x02 0x00 0x00 0x00 0x32 0x01 0x00 0x40    // '????2??@' \n\t0x00 0x00 0x00 0x00 0x34 0x01 0x00 0x40    // '????4??@' \n\t0x03 0x00 0x00 0x00 0x3D 0x01 0x00 0x40    // '????=??@' \n\t0x00 0x00 0x00 0x00 0x3F 0x01 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x47 0x01 0x00 0x40    // '????G??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x09 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x15 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x29 0x01 0x00 0x82    // '????)??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_25=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x49 0x43 0x48 0x41 0x45    // '??MICHAE' \n\t0x4C 0x0D 0x0A 0x42 0x61 0x63 0x6B 0x67    // 'L??Backg' \n\t0x72 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x4D    // 'round??M' \n\t0x69 0x63 0x68 0x61 0x65 0x6C 0x20 0x6A    // 'ichael j' \n\t0x75 0x73 0x74 0x20 0x67 0x72 0x61 0x64    // 'ust grad' \n\t0x75 0x61 0x74 0x65 0x64 0x20 0x66 0x72    // 'uated fr' \n\t0x6F 0x6D 0x20 0x68 0x69 0x67 0x68 0x20    // 'om high ' \n\t0x73 0x63 0x68 0x6F 0x6F 0x6C 0x20 0x69    // 'school i' \n\t0x6E 0x20 0x43 0x68 0x69 0x63 0x61 0x67    // 'n Chicag' \n\t0x6F 0x20 0x61 0x6E 0x64 0x20 0x69 0x73    // 'o and is' \n\t0x20 0x67 0x6F 0x69 0x6E 0x67 0x20 0x74    // ' going t' \n\t0x6F 0x20 0x63 0x6F 0x6C 0x6C 0x65 0x67    // 'o colleg' \n\t0x65 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'e in the' \n\t0x20 0x66 0x61 0x6C 0x6C 0x2E 0x20 0x20    // ' fall.  ' \n\t0x42 0x75 0x74 0x20 0x74 0x68 0x69 0x73    // 'But this' \n\t0x20 0x73 0x75 0x6D 0x6D 0x65 0x72 0x2C    // ' summer,' \n\t0x20 0x4D 0x69 0x63 0x68 0x61 0x65 0x6C    // ' Michael' \n\t0x20 0x69 0x73 0x20 0x63 0x6F 0x6E 0x63    // ' is conc' \n\t0x65 0x6E 0x74 0x72 0x61 0x74 0x69 0x6E    // 'entratin' \n\t0x67 0x20 0x6F 0x6E 0x20 0x77 0x72 0x69    // 'g on wri' \n\t0x74 0x69 0x6E 0x67 0x20 0x6D 0x75 0x73    // 'ting mus' \n\t0x69 0x63 0x2E 0x20 0x20 0x4D 0x61 0x69    // 'ic.  Mai' \n\t0x6E 0x6C 0x79 0x20 0x74 0x68 0x65 0x20    // 'nly the ' \n\t0x62 0x6C 0x75 0x65 0x73 0x2E 0x20 0x20    // 'blues.  ' \n\t0x4D 0x69 0x63 0x68 0x61 0x65 0x6C 0x20    // 'Michael ' \n\t0x73 0x68 0x6F 0x75 0x6C 0x64 0x20 0x68    // 'should h' \n\t0x61 0x76 0x65 0x20 0x62 0x65 0x65 0x6E    // 'ave been' \n\t0x20 0x62 0x6F 0x72 0x6E 0x20 0x6F 0x6E    // ' born on' \n\t0x20 0x74 0x68 0x65 0x20 0x4D 0x69 0x73    // ' the Mis' \n\t0x73 0x69 0x73 0x73 0x69 0x70 0x70 0x69    // 'sissippi' \n\t0x20 0x44 0x65 0x6C 0x74 0x61 0x97 0x74    // ' Deltat' \n\t0x68 0x61 0x74 0x92 0x73 0x20 0x68 0x6F    // 'hats ho' \n\t0x77 0x20 0x67 0x6F 0x6F 0x64 0x20 0x68    // 'w good h' \n\t0x69 0x73 0x20 0x62 0x6C 0x75 0x65 0x73    // 'is blues' \n\t0x20 0x74 0x75 0x6E 0x65 0x73 0x20 0x61    // ' tunes a' \n\t0x72 0x65 0x2E 0x20 0x0D 0x0A 0x44 0x72    // 're. ??Dr' \n\t0x65 0x61 0x6D 0x20 0x52 0x6F 0x6C 0x65    // 'eam Role' \n\t0x73 0x0D 0x0A 0x53 0x6F 0x75 0x73 0x2D    // 's??Sous-' \n\t0x43 0x68 0x65 0x66 0x3B 0x20 0x4D 0x65    // 'Chef; Me' \n\t0x73 0x73 0x65 0x6E 0x67 0x65 0x72 0x3B    // 'ssenger;' \n\t0x20 0x45 0x78 0x70 0x6C 0x6F 0x72 0x65    // ' Explore' \n\t0x72                                       // 'r' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_19= ktpcBioPage26\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"Bio Page 26  Mimi\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"Bio Page 26  Mimi\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage26\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_18=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio101 __HELP_SYMBOL( STN \"ktipbio101\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio102 __HELP_SYMBOL( STN \"ktipbio102\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio103 __HELP_SYMBOL( STN \"ktipbio103\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio104 __HELP_SYMBOL( STN \"ktipbio104\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3A 0x01 0x00 0x01    // '????:???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xF5 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x00 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x26 0x00 0x00 0x04    // '???&???' \n\t0x00 0x00 0x00 0x00 0x02 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x24 0x01 0x00 0x04    // '???$???' \n\t0x00 0x00 0x00 0x00 0x26 0x01 0x00 0x04    // '????&???' \n\t0x0D 0x00 0x00 0xFE 0x2D 0x01 0x00 0x04    // '???-???' \n\t0x00 0x00 0x00 0x00 0x2F 0x01 0x00 0x04    // '????/???' \n\t0x0D 0x00 0x00 0xFE 0x3A 0x01 0x00 0x04    // '???:???' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x40    // '???????@' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x40    // '????&??@' \n\t0x00 0x00 0x00 0x00 0x02 0x01 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x24 0x01 0x00 0x40    // '????$??@' \n\t0x00 0x00 0x00 0x00 0x26 0x01 0x00 0x40    // '????&??@' \n\t0x03 0x00 0x00 0x00 0x2D 0x01 0x00 0x40    // '????-??@' \n\t0x00 0x00 0x00 0x00 0x2F 0x01 0x00 0x40    // '????/??@' \n\t0x04 0x00 0x00 0x00 0x3A 0x01 0x00 0x40    // '????:??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x06 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x12 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x02 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x49 0x4D 0x49 0x0D 0x0A    // '??MIMI??' \n\t0x42 0x61 0x63 0x6B 0x67 0x72 0x6F 0x75    // 'Backgrou' \n\t0x6E 0x64 0x0D 0x0A 0x4D 0x69 0x6D 0x69    // 'nd??Mimi' \n\t0x20 0x69 0x73 0x20 0x61 0x20 0x74 0x72    // ' is a tr' \n\t0x61 0x63 0x6B 0x20 0x73 0x74 0x61 0x72    // 'ack star' \n\t0x20 0x61 0x74 0x20 0x68 0x65 0x72 0x20    // ' at her ' \n\t0x68 0x69 0x67 0x68 0x20 0x73 0x63 0x68    // 'high sch' \n\t0x6F 0x6F 0x6C 0x20 0x69 0x6E 0x20 0x50    // 'ool in P' \n\t0x6F 0x75 0x67 0x68 0x6B 0x65 0x65 0x70    // 'oughkeep' \n\t0x73 0x69 0x65 0x2C 0x20 0x4E 0x65 0x77    // 'sie, New' \n\t0x20 0x59 0x6F 0x72 0x6B 0x2E 0x20 0x53    // ' York. S' \n\t0x6F 0x6D 0x65 0x74 0x69 0x6D 0x65 0x73    // 'ometimes' \n\t0x20 0x73 0x68 0x65 0x20 0x72 0x75 0x6E    // ' she run' \n\t0x73 0x20 0x73 0x6F 0x20 0x66 0x61 0x73    // 's so fas' \n\t0x74 0x20 0x74 0x68 0x61 0x74 0x20 0x69    // 't that i' \n\t0x74 0x20 0x74 0x61 0x6B 0x65 0x73 0x20    // 't takes ' \n\t0x68 0x65 0x72 0x20 0x61 0x20 0x63 0x6F    // 'her a co' \n\t0x75 0x70 0x6C 0x65 0x20 0x6F 0x66 0x20    // 'uple of ' \n\t0x63 0x69 0x74 0x79 0x20 0x62 0x6C 0x6F    // 'city blo' \n\t0x63 0x6B 0x73 0x20 0x74 0x6F 0x20 0x73    // 'cks to s' \n\t0x6C 0x6F 0x77 0x20 0x64 0x6F 0x77 0x6E    // 'low down' \n\t0x20 0x61 0x6E 0x64 0x20 0x73 0x74 0x6F    // ' and sto' \n\t0x70 0x2E 0x20 0x53 0x6F 0x6D 0x65 0x20    // 'p. Some ' \n\t0x70 0x65 0x6F 0x70 0x6C 0x65 0x20 0x63    // 'people c' \n\t0x6C 0x61 0x69 0x6D 0x20 0x74 0x68 0x61    // 'laim tha' \n\t0x74 0x20 0x73 0x68 0x65 0x92 0x73 0x20    // 't shes ' \n\t0x74 0x68 0x65 0x20 0x66 0x61 0x73 0x74    // 'the fast' \n\t0x65 0x73 0x74 0x20 0x68 0x75 0x6D 0x61    // 'est huma' \n\t0x6E 0x20 0x62 0x65 0x69 0x6E 0x67 0x20    // 'n being ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x77    // 'in the w' \n\t0x6F 0x72 0x6C 0x64 0x2E 0x0D 0x0A 0x44    // 'orld.??D' \n\t0x72 0x65 0x61 0x6D 0x20 0x52 0x6F 0x6C    // 'ream Rol' \n\t0x65 0x73 0x0D 0x0A 0x54 0x72 0x69 0x63    // 'es??Tric' \n\t0x6B 0x2D 0x6F 0x72 0x2D 0x54 0x72 0x65    // 'k-or-Tre' \n\t0x61 0x74 0x65 0x72 0x20 0x44 0x72 0x65    // 'ater Dre' \n\t0x73 0x73 0x65 0x64 0x20 0x61 0x73 0x20    // 'ssed as ' \n\t0x50 0x69 0x72 0x61 0x74 0x65 0x3B 0x20    // 'Pirate; ' \n\t0x54 0x6F 0x75 0x72 0x69 0x73 0x74 0x3B    // 'Tourist;' \n\t0x20 0x54 0x72 0x61 0x63 0x6B 0x20 0x43    // ' Track C' \n\t0x6F 0x61 0x63 0x68                        // 'oach' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= ktpcBioPage27\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"Bio Page 27  Mirabella\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"Bio Page 27  Mirabella\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_91=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage27\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_91=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_91, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio105 __HELP_SYMBOL( STN \"ktipbio105\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio106 __HELP_SYMBOL( STN \"ktipbio106\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio107 __HELP_SYMBOL( STN \"ktipbio107\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio108 __HELP_SYMBOL( STN \"ktipbio108\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_91=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_91, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE0 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x17 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xA3 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xAE 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xA7 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xAE 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xB0 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xC9 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xCB 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xD4 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xD6 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE0 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xA7 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xAE 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA0 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xB0 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xC9 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xCB 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xD4 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD6 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xE0 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x0B 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x17 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB0 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_91=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_91, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x41 0x52 0x49 0x42 0x45    // '??MARIBE' \n\t0x4C 0x4C 0x41 0x0D 0x0A 0x42 0x61 0x63    // 'LLA??Bac' \n\t0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64 0x0D    // 'kground?' \n\t0x0A 0x4D 0x61 0x72 0x69 0x62 0x65 0x6C    // '?Maribel' \n\t0x6C 0x61 0x20 0x77 0x61 0x73 0x20 0x62    // 'la was b' \n\t0x6F 0x72 0x6E 0x20 0x31 0x34 0x20 0x79    // 'orn 14 y' \n\t0x65 0x61 0x72 0x73 0x20 0x61 0x67 0x6F    // 'ears ago' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x66 0x6F 0x67 0x20 0x6F 0x66 0x20 0x6F    // 'fog of o' \n\t0x6E 0x65 0x20 0x6F 0x66 0x20 0x4C 0x6F    // 'ne of Lo' \n\t0x6E 0x64 0x6F 0x6E 0x92 0x73 0x20 0x69    // 'ndons i' \n\t0x6E 0x6E 0x65 0x72 0x20 0x62 0x6F 0x72    // 'nner bor' \n\t0x6F 0x75 0x67 0x68 0x73 0x2E 0x20 0x4D    // 'oughs. M' \n\t0x61 0x72 0x69 0x62 0x65 0x6C 0x6C 0x61    // 'aribella' \n\t0x20 0x69 0x73 0x20 0x62 0x72 0x69 0x67    // ' is brig' \n\t0x68 0x74 0x20 0x61 0x6E 0x64 0x20 0x66    // 'ht and f' \n\t0x75 0x6E 0x2C 0x20 0x62 0x75 0x74 0x20    // 'un, but ' \n\t0x73 0x68 0x65 0x20 0x68 0x61 0x73 0x20    // 'she has ' \n\t0x6F 0x6E 0x65 0x20 0x70 0x72 0x6F 0x62    // 'one prob' \n\t0x6C 0x65 0x6D 0x97 0x73 0x68 0x65 0x20    // 'lemshe ' \n\t0x6C 0x6F 0x76 0x65 0x73 0x20 0x74 0x6F    // 'loves to' \n\t0x20 0x65 0x78 0x70 0x6C 0x6F 0x72 0x65    // ' explore' \n\t0x20 0x65 0x76 0x65 0x72 0x79 0x77 0x68    // ' everywh' \n\t0x65 0x72 0x65 0x20 0x61 0x6E 0x64 0x20    // 'ere and ' \n\t0x65 0x76 0x65 0x72 0x79 0x74 0x68 0x69    // 'everythi' \n\t0x6E 0x67 0x2E 0x20 0x20 0x46 0x6F 0x72    // 'ng.  For' \n\t0x20 0x65 0x78 0x61 0x6D 0x70 0x6C 0x65    // ' example' \n\t0x2C 0x20 0x6C 0x61 0x73 0x74 0x20 0x41    // ', last A' \n\t0x75 0x67 0x75 0x73 0x74 0x20 0x73 0x68    // 'ugust sh' \n\t0x65 0x20 0x74 0x6F 0x6F 0x6B 0x20 0x74    // 'e took t' \n\t0x68 0x65 0x20 0x74 0x6F 0x75 0x72 0x20    // 'he tour ' \n\t0x6F 0x66 0x20 0x42 0x75 0x63 0x6B 0x69    // 'of Bucki' \n\t0x6E 0x67 0x68 0x61 0x6D 0x20 0x50 0x61    // 'ngham Pa' \n\t0x6C 0x61 0x63 0x65 0x2E 0x20 0x20 0x53    // 'lace.  S' \n\t0x68 0x65 0x20 0x77 0x61 0x73 0x20 0x74    // 'he was t' \n\t0x68 0x72 0x6F 0x77 0x6E 0x20 0x6F 0x75    // 'hrown ou' \n\t0x74 0x20 0x77 0x68 0x65 0x6E 0x20 0x61    // 't when a' \n\t0x20 0x67 0x75 0x61 0x72 0x64 0x20 0x63    // ' guard c' \n\t0x61 0x75 0x67 0x68 0x74 0x20 0x68 0x65    // 'aught he' \n\t0x72 0x20 0x65 0x78 0x70 0x6C 0x6F 0x72    // 'r explor' \n\t0x69 0x6E 0x67 0x20 0x6F 0x6E 0x65 0x20    // 'ing one ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x63    // 'of the c' \n\t0x6C 0x6F 0x73 0x65 0x74 0x73 0x20 0x69    // 'losets i' \n\t0x6E 0x20 0x61 0x20 0x70 0x72 0x69 0x76    // 'n a priv' \n\t0x61 0x74 0x65 0x20 0x72 0x6F 0x6F 0x6D    // 'ate room' \n\t0x2E 0x20 0x41 0x6E 0x64 0x20 0x6E 0x6F    // '. And no' \n\t0x74 0x20 0x6A 0x75 0x73 0x74 0x20 0x61    // 't just a' \n\t0x6E 0x79 0x20 0x72 0x6F 0x6F 0x6D 0x2E    // 'ny room.' \n\t0x20 0x20 0x49 0x74 0x20 0x77 0x61 0x73    // '  It was' \n\t0x20 0x74 0x68 0x65 0x20 0x62 0x65 0x64    // ' the bed' \n\t0x72 0x6F 0x6F 0x6D 0x20 0x6F 0x66 0x20    // 'room of ' \n\t0x74 0x68 0x65 0x20 0x71 0x75 0x65 0x65    // 'the quee' \n\t0x6E 0x21 0x20 0x0D 0x0A 0x44 0x72 0x65    // 'n! ??Dre' \n\t0x61 0x6D 0x20 0x52 0x6F 0x6C 0x65 0x73    // 'am Roles' \n\t0x0D 0x0A 0x44 0x61 0x75 0x67 0x68 0x74    // '??Daught' \n\t0x65 0x72 0x20 0x69 0x6E 0x20 0x53 0x70    // 'er in Sp' \n\t0x6F 0x6F 0x6B 0x79 0x20 0x46 0x61 0x6D    // 'ooky Fam' \n\t0x69 0x6C 0x79 0x3B 0x20 0x4D 0x61 0x6E    // 'ily; Man' \n\t0x6E 0x65 0x71 0x75 0x69 0x6E 0x3B 0x20    // 'nequin; ' \n\t0x47 0x69 0x72 0x6C 0x20 0x53 0x63 0x6F    // 'Girl Sco' \n\t0x75 0x74                                  // 'ut' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1B= ktpcBioPage28\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"Bio Page 28  Nakita\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"Bio Page 28  Nakita\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage28\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_14=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7E, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio109 __HELP_SYMBOL( STN \"ktipbio109\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio110 __HELP_SYMBOL( STN \"ktipbio110\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio111 __HELP_SYMBOL( STN \"ktipbio111\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio112 __HELP_SYMBOL( STN \"ktipbio112\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x66 0x01 0x00 0x01    // '????f???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x18 0x01 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x23 0x01 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0xBC 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xC2 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x25 0x01 0x00 0x04    // '????%???' \n\t0x0D 0x00 0x00 0xFE 0x3F 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x41 0x01 0x00 0x04    // '????A???' \n\t0x0D 0x00 0x00 0xFE 0x4D 0x01 0x00 0x04    // '???M???' \n\t0x00 0x00 0x00 0x00 0x4F 0x01 0x00 0x04    // '????O???' \n\t0x0D 0x00 0x00 0xFE 0x66 0x01 0x00 0x04    // '???f???' \n\t0x00 0x00 0x00 0x00 0xBC 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xC2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x25 0x01 0x00 0x40    // '????%??@' \n\t0x02 0x00 0x00 0x00 0x3F 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x41 0x01 0x00 0x40    // '????A??@' \n\t0x03 0x00 0x00 0x00 0x4D 0x01 0x00 0x40    // '????M??@' \n\t0x00 0x00 0x00 0x00 0x4F 0x01 0x00 0x40    // '????O??@' \n\t0x04 0x00 0x00 0x00 0x66 0x01 0x00 0x40    // '????f??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x08 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x14 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x25 0x01 0x00 0x82    // '????%??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7E, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x41 0x4B 0x49 0x54 0x41    // '??NAKITA' \n\t0x0D 0x0A 0x42 0x61 0x63 0x6B 0x67 0x72    // '??Backgr' \n\t0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x4E 0x61    // 'ound??Na' \n\t0x6B 0x69 0x74 0x61 0x20 0x67 0x72 0x65    // 'kita gre' \n\t0x77 0x20 0x75 0x70 0x20 0x77 0x69 0x74    // 'w up wit' \n\t0x68 0x20 0x65 0x69 0x67 0x68 0x74 0x20    // 'h eight ' \n\t0x6F 0x6C 0x64 0x65 0x72 0x20 0x62 0x72    // 'older br' \n\t0x6F 0x74 0x68 0x65 0x72 0x73 0x20 0x69    // 'others i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x70 0x6F    // 'n the po' \n\t0x72 0x74 0x20 0x63 0x69 0x74 0x79 0x20    // 'rt city ' \n\t0x6F 0x66 0x20 0x53 0x74 0x2E 0x20 0x50    // 'of St. P' \n\t0x65 0x74 0x65 0x72 0x73 0x62 0x75 0x72    // 'etersbur' \n\t0x67 0x2C 0x20 0x52 0x75 0x73 0x73 0x69    // 'g, Russi' \n\t0x61 0x20 0x61 0x6E 0x64 0x20 0x6C 0x65    // 'a and le' \n\t0x61 0x72 0x6E 0x65 0x64 0x20 0x74 0x6F    // 'arned to' \n\t0x20 0x62 0x65 0x20 0x76 0x65 0x72 0x79    // ' be very' \n\t0x20 0x74 0x6F 0x75 0x67 0x68 0x2E 0x20    // ' tough. ' \n\t0x20 0x54 0x6F 0x20 0x6B 0x65 0x65 0x70    // ' To keep' \n\t0x20 0x68 0x65 0x72 0x20 0x62 0x72 0x6F    // ' her bro' \n\t0x74 0x68 0x65 0x72 0x73 0x20 0x69 0x6E    // 'thers in' \n\t0x20 0x6C 0x69 0x6E 0x65 0x2C 0x20 0x73    // ' line, s' \n\t0x68 0x65 0x20 0x65 0x76 0x65 0x6E 0x74    // 'he event' \n\t0x75 0x61 0x6C 0x6C 0x79 0x20 0x74 0x6F    // 'ually to' \n\t0x6F 0x6B 0x20 0x75 0x70 0x20 0x6B 0x61    // 'ok up ka' \n\t0x72 0x61 0x74 0x65 0x20 0x61 0x6E 0x64    // 'rate and' \n\t0x20 0x62 0x65 0x63 0x61 0x6D 0x65 0x20    // ' became ' \n\t0x74 0x68 0x65 0x20 0x79 0x6F 0x75 0x6E    // 'the youn' \n\t0x67 0x65 0x73 0x74 0x20 0x52 0x75 0x73    // 'gest Rus' \n\t0x73 0x69 0x61 0x6E 0x20 0x6B 0x61 0x72    // 'sian kar' \n\t0x61 0x74 0x65 0x20 0x63 0x68 0x61 0x6D    // 'ate cham' \n\t0x70 0x69 0x6F 0x6E 0x20 0x65 0x76 0x65    // 'pion eve' \n\t0x72 0x21 0x20 0x20 0x4E 0x6F 0x77 0x20    // 'r!  Now ' \n\t0x6E 0x6F 0x62 0x6F 0x64 0x79 0x20 0x70    // 'nobody p' \n\t0x69 0x63 0x6B 0x73 0x20 0x6F 0x6E 0x20    // 'icks on ' \n\t0x4E 0x61 0x6B 0x69 0x74 0x61 0x2E 0x20    // 'Nakita. ' \n\t0x0D 0x0A 0x44 0x72 0x65 0x61 0x6D 0x20    // '??Dream ' \n\t0x52 0x6F 0x6C 0x65 0x73 0x0D 0x0A 0x50    // 'Roles??P' \n\t0x72 0x69 0x76 0x61 0x74 0x65 0x20 0x41    // 'rivate A' \n\t0x65 0x72 0x6F 0x62 0x69 0x63 0x20 0x49    // 'erobic I' \n\t0x6E 0x73 0x74 0x72 0x75 0x63 0x74 0x6F    // 'nstructo' \n\t0x72 0x3B 0x20 0x56 0x65 0x6C 0x63 0x72    // 'r; Velcr' \n\t0x6F 0x20 0x57 0x6F 0x6D 0x61 0x6E 0x3B    // 'o Woman;' \n\t0x20 0x53 0x63 0x75 0x62 0x61 0x20 0x44    // ' Scuba D' \n\t0x69 0x76 0x69 0x6E 0x67 0x20 0x49 0x6E    // 'iving In' \n\t0x73 0x74 0x72 0x75 0x63 0x74 0x6F 0x72    // 'structor' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= ktpcBioPage29\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"Bio Page 29  Patrick\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"Bio Page 29  Patrick\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage29\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio113 __HELP_SYMBOL( STN \"ktipbio113\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio115 __HELP_SYMBOL( STN \"ktipbio115\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio116 __HELP_SYMBOL( STN \"ktipbio116\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio114 __HELP_SYMBOL( STN \"ktipbio114\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xFF 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xCE 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xD9 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x78 0x00 0x00 0x04    // '????x???' \n\t0x0D 0x00 0x00 0xFE 0x81 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xDB 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE6 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xE8 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xF5 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xF7 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xFF 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x78 0x00 0x00 0x40    // '????x??@' \n\t0x01 0x00 0x00 0x00 0x81 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xDB 0x01 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xE6 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE8 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xF5 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF7 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xFF 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x09 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x15 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xDB 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x41 0x54 0x52 0x49 0x43    // '??PATRIC' \n\t0x4B 0x0D 0x0A 0x42 0x61 0x63 0x6B 0x67    // 'K??Backg' \n\t0x72 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x50    // 'round??P' \n\t0x61 0x74 0x72 0x69 0x63 0x6B 0x20 0x77    // 'atrick w' \n\t0x61 0x73 0x20 0x61 0x6C 0x77 0x61 0x79    // 'as alway' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x63 0x65    // 's the ce' \n\t0x6E 0x74 0x65 0x72 0x20 0x6F 0x66 0x20    // 'nter of ' \n\t0x61 0x74 0x74 0x65 0x6E 0x74 0x69 0x6F    // 'attentio' \n\t0x6E 0x20 0x69 0x6E 0x20 0x68 0x69 0x73    // 'n in his' \n\t0x20 0x73 0x6D 0x61 0x6C 0x6C 0x20 0x68    // ' small h' \n\t0x6F 0x6D 0x65 0x74 0x6F 0x77 0x6E 0x20    // 'ometown ' \n\t0x6F 0x66 0x20 0x44 0x75 0x6E 0x6D 0x6F    // 'of Dunmo' \n\t0x72 0x65 0x2C 0x20 0x49 0x72 0x65 0x6C    // 're, Irel' \n\t0x61 0x6E 0x64 0x2E 0x20 0x20 0x48 0x65    // 'and.  He' \n\t0x20 0x6C 0x6F 0x76 0x65 0x64 0x20 0x74    // ' loved t' \n\t0x6F 0x20 0x65 0x6E 0x74 0x65 0x72 0x74    // 'o entert' \n\t0x61 0x69 0x6E 0x20 0x70 0x65 0x6F 0x70    // 'ain peop' \n\t0x6C 0x65 0x20 0x77 0x69 0x74 0x68 0x20    // 'le with ' \n\t0x6A 0x6F 0x6B 0x65 0x73 0x20 0x77 0x68    // 'jokes wh' \n\t0x69 0x6C 0x65 0x20 0x68 0x65 0x20 0x77    // 'ile he w' \n\t0x6F 0x72 0x6B 0x65 0x64 0x20 0x61 0x73    // 'orked as' \n\t0x20 0x61 0x20 0x74 0x6F 0x75 0x72 0x67    // ' a tourg' \n\t0x75 0x69 0x64 0x65 0x20 0x66 0x6F 0x72    // 'uide for' \n\t0x20 0x61 0x20 0x6C 0x6F 0x63 0x61 0x6C    // ' a local' \n\t0x20 0x67 0x6C 0x61 0x73 0x73 0x20 0x66    // ' glass f' \n\t0x61 0x63 0x74 0x6F 0x72 0x79 0x2E 0x20    // 'actory. ' \n\t0x20 0x54 0x68 0x65 0x20 0x66 0x61 0x63    // ' The fac' \n\t0x74 0x6F 0x72 0x79 0x20 0x77 0x61 0x73    // 'tory was' \n\t0x20 0x61 0x20 0x6D 0x61 0x6A 0x6F 0x72    // ' a major' \n\t0x20 0x74 0x6F 0x75 0x72 0x69 0x73 0x74    // ' tourist' \n\t0x20 0x61 0x74 0x74 0x72 0x61 0x63 0x74    // ' attract' \n\t0x69 0x6F 0x6E 0x2C 0x20 0x61 0x6E 0x64    // 'ion, and' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x61 0x20    // ' when a ' \n\t0x73 0x68 0x6F 0x72 0x74 0x20 0x66 0x69    // 'short fi' \n\t0x6C 0x6D 0x20 0x77 0x61 0x73 0x20 0x6D    // 'lm was m' \n\t0x61 0x64 0x65 0x20 0x61 0x62 0x6F 0x75    // 'ade abou' \n\t0x74 0x20 0x69 0x74 0x2C 0x20 0x50 0x61    // 't it, Pa' \n\t0x74 0x72 0x69 0x63 0x6B 0x20 0x73 0x74    // 'trick st' \n\t0x6F 0x6C 0x65 0x20 0x74 0x68 0x65 0x20    // 'ole the ' \n\t0x73 0x68 0x6F 0x77 0x2E 0x20 0x20 0x48    // 'show.  H' \n\t0x65 0x20 0x72 0x65 0x61 0x6C 0x69 0x7A    // 'e realiz' \n\t0x65 0x64 0x20 0x74 0x68 0x65 0x6E 0x20    // 'ed then ' \n\t0x74 0x68 0x61 0x74 0x20 0x68 0x65 0x20    // 'that he ' \n\t0x77 0x61 0x73 0x6E 0x27 0x74 0x20 0x6C    // 'wasn't l' \n\t0x69 0x76 0x69 0x6E 0x67 0x20 0x75 0x70    // 'iving up' \n\t0x20 0x74 0x6F 0x20 0x68 0x69 0x73 0x20    // ' to his ' \n\t0x66 0x75 0x6C 0x6C 0x20 0x70 0x6F 0x74    // 'full pot' \n\t0x65 0x6E 0x74 0x69 0x61 0x6C 0x20 0x69    // 'ential i' \n\t0x6E 0x20 0x44 0x75 0x6E 0x6D 0x6F 0x72    // 'n Dunmor' \n\t0x65 0x2C 0x20 0x73 0x6F 0x20 0x68 0x65    // 'e, so he' \n\t0x20 0x64 0x65 0x63 0x69 0x64 0x65 0x64    // ' decided' \n\t0x20 0x74 0x6F 0x20 0x67 0x6F 0x20 0x74    // ' to go t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x55 0x6E    // 'o the Un' \n\t0x69 0x74 0x65 0x64 0x20 0x53 0x74 0x61    // 'ited Sta' \n\t0x74 0x65 0x73 0x20 0x74 0x6F 0x20 0x6D    // 'tes to m' \n\t0x61 0x6B 0x65 0x20 0x69 0x74 0x20 0x69    // 'ake it i' \n\t0x6E 0x20 0x48 0x6F 0x6C 0x6C 0x79 0x77    // 'n Hollyw' \n\t0x6F 0x6F 0x64 0x2E 0x20 0x20 0x0D 0x0A    // 'ood.  ??' \n\t0x44 0x72 0x65 0x61 0x6D 0x20 0x52 0x6F    // 'Dream Ro' \n\t0x6C 0x65 0x73 0x0D 0x0A 0x52 0x69 0x63    // 'les??Ric' \n\t0x68 0x20 0x43 0x6F 0x75 0x73 0x69 0x6E    // 'h Cousin' \n\t0x3B 0x20 0x4B 0x61 0x72 0x61 0x74 0x65    // '; Karate' \n\t0x20 0x45 0x78 0x70 0x65 0x72 0x74 0x3B    // ' Expert;' \n\t0x20 0x45 0x78 0x70 0x6C 0x6F 0x72 0x65    // ' Explore' \n\t0x72                                       // 'r' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1D= ktpcBioPage30\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"Bio Page 30  Ramu\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"Bio Page 30  Ramu\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage30\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio117 __HELP_SYMBOL( STN \"ktipbio117\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio118 __HELP_SYMBOL( STN \"ktipbio118\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio119 __HELP_SYMBOL( STN \"ktipbio119\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio120 __HELP_SYMBOL( STN \"ktipbio120\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // ' ???????' \n\t0x01 0x00 0x00 0x00 0x4D 0x01 0x00 0x01    // '????M???' \n\t0x00 0x00 0x00 0x00 0x4F 0x01 0x00 0x01    // '????O???' \n\t0x01 0x00 0x00 0x00 0x81 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x4F 0x01 0x00 0x03    // '????O???' \n\t0x0A 0x00 0x00 0xFD 0x5A 0x01 0x00 0x03    // '???Z???' \n\t0x00 0x00 0x00 0x00 0x9A 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA3 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x5C 0x01 0x00 0x04    // '????\\???' \n\t0x0D 0x00 0x00 0xFE 0x68 0x01 0x00 0x04    // '???h???' \n\t0x00 0x00 0x00 0x00 0x6A 0x01 0x00 0x04    // '????j???' \n\t0x0D 0x00 0x00 0xFE 0x76 0x01 0x00 0x04    // '???v???' \n\t0x00 0x00 0x00 0x00 0x78 0x01 0x00 0x04    // '????x???' \n\t0x0D 0x00 0x00 0xFE 0x81 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x9A 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xA3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x5C 0x01 0x00 0x40    // '????\\??@' \n\t0x02 0x00 0x00 0x00 0x68 0x01 0x00 0x40    // '????h??@' \n\t0x00 0x00 0x00 0x00 0x6A 0x01 0x00 0x40    // '????j??@' \n\t0x03 0x00 0x00 0x00 0x76 0x01 0x00 0x40    // '????v??@' \n\t0x00 0x00 0x00 0x00 0x78 0x01 0x00 0x40    // '????x??@' \n\t0x04 0x00 0x00 0x00 0x81 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x06 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x12 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5C 0x01 0x00 0x82    // '????\\??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x41 0x4D 0x55 0x0D 0x0A    // '??RAMU??' \n\t0x42 0x61 0x63 0x6B 0x67 0x72 0x6F 0x75    // 'Backgrou' \n\t0x6E 0x64 0x0D 0x0A 0x52 0x61 0x6D 0x75    // 'nd??Ramu' \n\t0x20 0x77 0x61 0x73 0x20 0x61 0x20 0x6C    // ' was a l' \n\t0x65 0x61 0x64 0x69 0x6E 0x67 0x20 0x64    // 'eading d' \n\t0x65 0x6E 0x74 0x69 0x73 0x74 0x20 0x69    // 'entist i' \n\t0x6E 0x20 0x4A 0x61 0x69 0x70 0x75 0x72    // 'n Jaipur' \n\t0x2C 0x20 0x49 0x6E 0x64 0x69 0x61 0x20    // ', India ' \n\t0x66 0x6F 0x72 0x20 0x73 0x65 0x76 0x65    // 'for seve' \n\t0x72 0x61 0x6C 0x20 0x79 0x65 0x61 0x72    // 'ral year' \n\t0x73 0x20 0x61 0x6E 0x64 0x20 0x64 0x65    // 's and de' \n\t0x76 0x65 0x6C 0x6F 0x70 0x65 0x64 0x20    // 'veloped ' \n\t0x61 0x6E 0x20 0x69 0x6E 0x74 0x65 0x72    // 'an inter' \n\t0x6E 0x61 0x74 0x69 0x6F 0x6E 0x61 0x6C    // 'national' \n\t0x20 0x72 0x65 0x70 0x75 0x74 0x61 0x74    // ' reputat' \n\t0x69 0x6F 0x6E 0x2E 0x20 0x20 0x42 0x65    // 'ion.  Be' \n\t0x66 0x6F 0x72 0x65 0x20 0x68 0x65 0x20    // 'fore he ' \n\t0x6B 0x6E 0x65 0x77 0x20 0x69 0x74 0x2C    // 'knew it,' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x73 0x20    // ' actors ' \n\t0x61 0x6E 0x64 0x20 0x61 0x63 0x74 0x72    // 'and actr' \n\t0x65 0x73 0x73 0x65 0x73 0x20 0x66 0x72    // 'esses fr' \n\t0x6F 0x6D 0x20 0x48 0x6F 0x6C 0x6C 0x79    // 'om Holly' \n\t0x77 0x6F 0x6F 0x64 0x20 0x77 0x65 0x72    // 'wood wer' \n\t0x65 0x20 0x6D 0x61 0x6B 0x69 0x6E 0x67    // 'e making' \n\t0x20 0x74 0x68 0x65 0x20 0x66 0x6C 0x69    // ' the fli' \n\t0x67 0x68 0x74 0x20 0x74 0x6F 0x20 0x49    // 'ght to I' \n\t0x6E 0x64 0x69 0x61 0x20 0x66 0x6F 0x72    // 'ndia for' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x70 0x65    // ' that pe' \n\t0x72 0x66 0x65 0x63 0x74 0x20 0x22 0x52    // 'rfect \"R' \n\t0x61 0x6D 0x75 0x20 0x73 0x6D 0x69 0x6C    // 'amu smil' \n\t0x65 0x2E 0x22 0x20 0x20 0x42 0x75 0x73    // 'e.\"  Bus' \n\t0x69 0x6E 0x65 0x73 0x73 0x20 0x77 0x61    // 'iness wa' \n\t0x73 0x20 0x73 0x6F 0x20 0x67 0x6F 0x6F    // 's so goo' \n\t0x64 0x20 0x74 0x68 0x61 0x74 0x20 0x52    // 'd that R' \n\t0x61 0x6D 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'amu move' \n\t0x64 0x20 0x74 0x6F 0x20 0x48 0x6F 0x6C    // 'd to Hol' \n\t0x6C 0x79 0x77 0x6F 0x6F 0x64 0x20 0x77    // 'lywood w' \n\t0x68 0x65 0x72 0x65 0x20 0x68 0x65 0x20    // 'here he ' \n\t0x62 0x65 0x63 0x61 0x6D 0x65 0x20 0x93    // 'became ' \n\t0x44 0x65 0x6E 0x74 0x69 0x73 0x74 0x20    // 'Dentist ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x53    // 'to the S' \n\t0x74 0x61 0x72 0x73 0x2E 0x94 0x20 0x0D    // 'tars. ?' \n\t0x0A 0x44 0x72 0x65 0x61 0x6D 0x20 0x52    // '?Dream R' \n\t0x6F 0x6C 0x65 0x73 0x0D 0x0A 0x4E 0x6F    // 'oles??No' \n\t0x69 0x73 0x79 0x20 0x54 0x65 0x6E 0x61    // 'isy Tena' \n\t0x6E 0x74 0x3B 0x20 0x43 0x61 0x72 0x20    // 'nt; Car ' \n\t0x53 0x61 0x6C 0x65 0x73 0x6D 0x61 0x6E    // 'Salesman' \n\t0x3B 0x20 0x53 0x6B 0x79 0x20 0x44 0x69    // '; Sky Di' \n\t0x76 0x65 0x72                             // 'ver' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1E= ktpcBioPage31\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"Bio Page 31 Randolph\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"Bio Page 31 Randolph\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage31\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio121 __HELP_SYMBOL( STN \"ktipbio121\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio122 __HELP_SYMBOL( STN \"ktipbio122\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio123 __HELP_SYMBOL( STN \"ktipbio123\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio124 __HELP_SYMBOL( STN \"ktipbio124\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // ' ???????' \n\t0x01 0x00 0x00 0x00 0xC9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xCB 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x12 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x16 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xCB 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xD6 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xA3 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xAE 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xD8 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xEE 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xF0 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xF9 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xFB 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x12 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0xA3 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xAE 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD8 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xEE 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF0 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xF9 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xFB 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0x12 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x0A 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x16 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xD8 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x41 0x4E 0x44 0x4F 0x4C    // '??RANDOL' \n\t0x50 0x48 0x0D 0x0A 0x42 0x61 0x63 0x6B    // 'PH??Back' \n\t0x67 0x72 0x6F 0x75 0x6E 0x64 0x0D 0x0A    // 'ground??' \n\t0x52 0x61 0x6E 0x64 0x6F 0x6C 0x70 0x68    // 'Randolph' \n\t0x20 0x77 0x61 0x73 0x20 0x62 0x6F 0x72    // ' was bor' \n\t0x6E 0x20 0x34 0x37 0x20 0x79 0x65 0x61    // 'n 47 yea' \n\t0x72 0x73 0x20 0x61 0x67 0x6F 0x20 0x69    // 'rs ago i' \n\t0x6E 0x20 0x42 0x72 0x69 0x73 0x74 0x6F    // 'n Bristo' \n\t0x6C 0x2C 0x20 0x45 0x6E 0x67 0x6C 0x61    // 'l, Engla' \n\t0x6E 0x64 0x2E 0x20 0x20 0x46 0x72 0x6F    // 'nd.  Fro' \n\t0x6D 0x20 0x61 0x20 0x79 0x6F 0x75 0x6E    // 'm a youn' \n\t0x67 0x20 0x61 0x67 0x65 0x2C 0x20 0x68    // 'g age, h' \n\t0x65 0x20 0x77 0x61 0x73 0x20 0x66 0x61    // 'e was fa' \n\t0x73 0x63 0x69 0x6E 0x61 0x74 0x65 0x64    // 'scinated' \n\t0x20 0x62 0x79 0x20 0x74 0x68 0x65 0x20    // ' by the ' \n\t0x77 0x65 0x61 0x74 0x68 0x65 0x72 0x2C    // 'weather,' \n\t0x20 0x73 0x6F 0x20 0x68 0x65 0x20 0x64    // ' so he d' \n\t0x65 0x63 0x69 0x64 0x65 0x64 0x20 0x74    // 'ecided t' \n\t0x6F 0x20 0x70 0x75 0x72 0x73 0x75 0x65    // 'o pursue' \n\t0x20 0x61 0x20 0x63 0x61 0x72 0x65 0x65    // ' a caree' \n\t0x72 0x20 0x69 0x6E 0x20 0x6D 0x65 0x74    // 'r in met' \n\t0x65 0x6F 0x72 0x6F 0x6C 0x6F 0x67 0x79    // 'eorology' \n\t0x2E 0x20 0x20 0x48 0x65 0x20 0x62 0x65    // '.  He be' \n\t0x63 0x61 0x6D 0x65 0x20 0x61 0x20 0x77    // 'came a w' \n\t0x65 0x61 0x74 0x68 0x65 0x72 0x20 0x6D    // 'eather m' \n\t0x61 0x6E 0x2E 0x0D 0x0A 0x44 0x72 0x65    // 'an.??Dre' \n\t0x61 0x6D 0x20 0x52 0x6F 0x6C 0x65 0x73    // 'am Roles' \n\t0x0D 0x0A 0x4D 0x72 0x2E 0x20 0x53 0x70    // '??Mr. Sp' \n\t0x6F 0x6F 0x6B 0x79 0x2C 0x20 0x74 0x68    // 'ooky, th' \n\t0x65 0x20 0x46 0x61 0x74 0x68 0x65 0x72    // 'e Father' \n\t0x3B 0x20 0x42 0x6F 0x64 0x79 0x67 0x75    // '; Bodygu' \n\t0x61 0x72 0x64 0x3B 0x20 0x4C 0x69 0x66    // 'ard; Lif' \n\t0x65 0x20 0x49 0x6E 0x73 0x75 0x72 0x61    // 'e Insura' \n\t0x6E 0x63 0x65 0x20 0x53 0x61 0x6C 0x65    // 'nce Sale' \n\t0x73 0x6D 0x61 0x6E                        // 'sman' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1F= ktpcBioPage32\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"Bio Page 32  Roxanne\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"Bio Page 32  Roxanne\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage32\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio125 __HELP_SYMBOL( STN \"ktipbio125\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio126 __HELP_SYMBOL( STN \"ktipbio126\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio127 __HELP_SYMBOL( STN \"ktipbio127\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio128 __HELP_SYMBOL( STN \"ktipbio128\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x37 0x01 0x00 0x01    // '????7???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xFD 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xE6 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xFA 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x0A 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x15 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x17 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x25 0x01 0x00 0x04    // '???%???' \n\t0x00 0x00 0x00 0x00 0x27 0x01 0x00 0x04    // '????'???' \n\t0x0D 0x00 0x00 0xFE 0x37 0x01 0x00 0x04    // '???7???' \n\t0x00 0x00 0x00 0x00 0xE6 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xFA 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x0A 0x01 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x15 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x17 0x01 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x25 0x01 0x00 0x40    // '????%??@' \n\t0x00 0x00 0x00 0x00 0x27 0x01 0x00 0x40    // '????'??@' \n\t0x04 0x00 0x00 0x00 0x37 0x01 0x00 0x40    // '????7??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x09 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x15 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0A 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x4F 0x58 0x41 0x4E 0x4E    // '??ROXANN' \n\t0x45 0x0D 0x0A 0x42 0x61 0x63 0x6B 0x67    // 'E??Backg' \n\t0x72 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x52    // 'round??R' \n\t0x6F 0x78 0x61 0x6E 0x6E 0x65 0x20 0x69    // 'oxanne i' \n\t0x73 0x20 0x32 0x32 0x20 0x61 0x6E 0x64    // 's 22 and' \n\t0x20 0x67 0x72 0x65 0x77 0x20 0x75 0x70    // ' grew up' \n\t0x20 0x69 0x6E 0x20 0x42 0x65 0x69 0x6A    // ' in Beij' \n\t0x69 0x6E 0x67 0x2C 0x20 0x43 0x68 0x69    // 'ing, Chi' \n\t0x6E 0x61 0x2E 0x20 0x20 0x48 0x65 0x72    // 'na.  Her' \n\t0x20 0x6D 0x6F 0x74 0x68 0x65 0x72 0x20    // ' mother ' \n\t0x74 0x68 0x6F 0x75 0x67 0x68 0x74 0x20    // 'thought ' \n\t0x52 0x6F 0x78 0x61 0x6E 0x6E 0x65 0x20    // 'Roxanne ' \n\t0x68 0x61 0x64 0x20 0x6D 0x6F 0x72 0x65    // 'had more' \n\t0x20 0x79 0x61 0x6E 0x67 0x20 0x74 0x68    // ' yang th' \n\t0x61 0x6E 0x20 0x79 0x69 0x6E 0x20 0x61    // 'an yin a' \n\t0x6E 0x64 0x20 0x66 0x65 0x64 0x20 0x68    // 'nd fed h' \n\t0x65 0x72 0x20 0x63 0x75 0x63 0x75 0x6D    // 'er cucum' \n\t0x62 0x65 0x72 0x73 0x20 0x61 0x6E 0x64    // 'bers and' \n\t0x20 0x66 0x72 0x75 0x69 0x74 0x20 0x74    // ' fruit t' \n\t0x6F 0x20 0x63 0x6F 0x72 0x72 0x65 0x63    // 'o correc' \n\t0x74 0x20 0x74 0x68 0x69 0x73 0x20 0x69    // 't this i' \n\t0x6D 0x62 0x61 0x6C 0x61 0x6E 0x63 0x65    // 'mbalance' \n\t0x2E 0x20 0x20 0x49 0x74 0x20 0x64 0x69    // '.  It di' \n\t0x64 0x6E 0x92 0x74 0x20 0x77 0x6F 0x72    // 'dnt wor' \n\t0x6B 0x2E 0x20 0x52 0x6F 0x78 0x61 0x6E    // 'k. Roxan' \n\t0x6E 0x65 0x20 0x66 0x69 0x6E 0x69 0x73    // 'ne finis' \n\t0x68 0x65 0x64 0x20 0x73 0x63 0x68 0x6F    // 'hed scho' \n\t0x6F 0x6C 0x20 0x61 0x6E 0x64 0x20 0x62    // 'ol and b' \n\t0x65 0x63 0x61 0x6D 0x65 0x20 0x61 0x20    // 'ecame a ' \n\t0x73 0x65 0x6C 0x66 0x2D 0x64 0x65 0x66    // 'self-def' \n\t0x65 0x6E 0x73 0x65 0x20 0x65 0x78 0x70    // 'ense exp' \n\t0x65 0x72 0x74 0x2E 0x20 0x0D 0x0A 0x44    // 'ert. ??D' \n\t0x72 0x65 0x61 0x6D 0x20 0x52 0x6F 0x6C    // 'ream Rol' \n\t0x65 0x73 0x0D 0x0A 0x48 0x61 0x69 0x72    // 'es??Hair' \n\t0x64 0x72 0x65 0x73 0x73 0x65 0x72 0x3B    // 'dresser;' \n\t0x20 0x55 0x6E 0x64 0x65 0x72 0x63 0x6F    // ' Underco' \n\t0x76 0x65 0x72 0x20 0x43 0x6F 0x70 0x3B    // 'ver Cop;' \n\t0x20 0x43 0x6F 0x63 0x6B 0x61 0x74 0x6F    // ' Cockato' \n\t0x6F 0x20 0x57 0x61 0x74 0x63 0x68 0x65    // 'o Watche' \n\t0x72                                       // 'r' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_20= ktpcBioPage33\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"Bio Page 33  Salvador\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"Bio Page 33  Salvador\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_76=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage33\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_76=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_76, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio129 __HELP_SYMBOL( STN \"ktipbio129\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio130 __HELP_SYMBOL( STN \"ktipbio130\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio131 __HELP_SYMBOL( STN \"ktipbio131\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio132 __HELP_SYMBOL( STN \"ktipbio132\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_76=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_76, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // ' ???????' \n\t0x01 0x00 0x00 0x00 0x94 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x16 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x33 0x01 0x00 0x03    // '????3???' \n\t0x0A 0x00 0x00 0xFD 0x3E 0x01 0x00 0x03    // '???>???' \n\t0x00 0x00 0x00 0x00 0xF6 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xFD 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x30 0x01 0x00 0x04    // '????0???' \n\t0x00 0x00 0x00 0x00 0x40 0x01 0x00 0x04    // '????@???' \n\t0x0D 0x00 0x00 0xFE 0x61 0x01 0x00 0x04    // '???a???' \n\t0x00 0x00 0x00 0x00 0x63 0x01 0x00 0x04    // '????c???' \n\t0x0D 0x00 0x00 0xFE 0x83 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x85 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x94 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xF6 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xFD 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x30 0x01 0x00 0x40    // '????0??@' \n\t0x00 0x00 0x00 0x00 0x40 0x01 0x00 0x40    // '????@??@' \n\t0x02 0x00 0x00 0x00 0x61 0x01 0x00 0x40    // '????a??@' \n\t0x00 0x00 0x00 0x00 0x63 0x01 0x00 0x40    // '????c??@' \n\t0x03 0x00 0x00 0x00 0x83 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x85 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0x94 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x0A 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x16 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x40 0x01 0x00 0x82    // '????@??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_76=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_76, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x41 0x4C 0x56 0x41 0x44    // '??SALVAD' \n\t0x4F 0x52 0x0D 0x0A 0x42 0x61 0x63 0x6B    // 'OR??Back' \n\t0x67 0x72 0x6F 0x75 0x6E 0x64 0x0D 0x0A    // 'ground??' \n\t0x53 0x61 0x6C 0x76 0x61 0x64 0x6F 0x72    // 'Salvador' \n\t0x20 0x77 0x61 0x73 0x20 0x62 0x6F 0x72    // ' was bor' \n\t0x6E 0x20 0x31 0x34 0x20 0x79 0x65 0x61    // 'n 14 yea' \n\t0x72 0x73 0x20 0x61 0x67 0x6F 0x20 0x69    // 'rs ago i' \n\t0x6E 0x20 0x4D 0x61 0x64 0x72 0x69 0x64    // 'n Madrid' \n\t0x2E 0x20 0x48 0x65 0x20 0x68 0x61 0x73    // '. He has' \n\t0x20 0x73 0x70 0x65 0x6E 0x74 0x20 0x74    // ' spent t' \n\t0x68 0x65 0x20 0x6C 0x61 0x73 0x74 0x20    // 'he last ' \n\t0x66 0x69 0x76 0x65 0x20 0x79 0x65 0x61    // 'five yea' \n\t0x72 0x73 0x20 0x62 0x65 0x63 0x6F 0x6D    // 'rs becom' \n\t0x69 0x6E 0x67 0x20 0x61 0x20 0x76 0x65    // 'ing a ve' \n\t0x72 0x79 0x20 0x63 0x6F 0x6F 0x6C 0x20    // 'ry cool ' \n\t0x74 0x65 0x65 0x6E 0x61 0x67 0x65 0x72    // 'teenager' \n\t0x2E 0x20 0x48 0x65 0x20 0x69 0x73 0x20    // '. He is ' \n\t0x73 0x65 0x72 0x69 0x6F 0x75 0x73 0x6C    // 'seriousl' \n\t0x79 0x20 0x67 0x6F 0x6F 0x64 0x20 0x77    // 'y good w' \n\t0x69 0x74 0x68 0x20 0x61 0x6C 0x6C 0x20    // 'ith all ' \n\t0x74 0x68 0x65 0x20 0x6E 0x65 0x77 0x20    // 'the new ' \n\t0x63 0x6F 0x6D 0x70 0x75 0x74 0x65 0x72    // 'computer' \n\t0x20 0x67 0x61 0x6D 0x65 0x73 0x2C 0x20    // ' games, ' \n\t0x68 0x65 0x20 0x68 0x61 0x73 0x20 0x74    // 'he has t' \n\t0x68 0x65 0x20 0x6C 0x61 0x74 0x65 0x73    // 'he lates' \n\t0x74 0x20 0x68 0x61 0x69 0x72 0x63 0x75    // 't haircu' \n\t0x74 0x2C 0x20 0x61 0x6E 0x64 0x20 0x61    // 't, and a' \n\t0x6C 0x6C 0x20 0x74 0x68 0x65 0x20 0x67    // 'll the g' \n\t0x69 0x72 0x6C 0x73 0x20 0x74 0x68 0x69    // 'irls thi' \n\t0x6E 0x6B 0x20 0x68 0x65 0x20 0x69 0x73    // 'nk he is' \n\t0x20 0x72 0x65 0x61 0x6C 0x6C 0x79 0x20    // ' really ' \n\t0x73 0x70 0x65 0x63 0x69 0x61 0x6C 0x2E    // 'special.' \n\t0x20 0x42 0x75 0x74 0x20 0x74 0x68 0x65    // ' But the' \n\t0x79 0x20 0x64 0x6F 0x6E 0x92 0x74 0x20    // 'y dont ' \n\t0x6B 0x6E 0x6F 0x77 0x20 0x6A 0x75 0x73    // 'know jus' \n\t0x74 0x20 0x68 0x6F 0x77 0x20 0x73 0x70    // 't how sp' \n\t0x65 0x63 0x69 0x61 0x6C 0x20 0x53 0x61    // 'ecial Sa' \n\t0x6C 0x76 0x61 0x64 0x6F 0x72 0x20 0x69    // 'lvador i' \n\t0x73 0x2E 0x20 0x0D 0x0A 0x44 0x72 0x65    // 's. ??Dre' \n\t0x61 0x6D 0x20 0x52 0x6F 0x6C 0x65 0x73    // 'am Roles' \n\t0x0D 0x0A 0x54 0x72 0x69 0x63 0x6B 0x2D    // '??Trick-' \n\t0x6F 0x72 0x2D 0x54 0x72 0x65 0x61 0x74    // 'or-Treat' \n\t0x65 0x72 0x20 0x44 0x72 0x65 0x73 0x73    // 'er Dress' \n\t0x65 0x64 0x20 0x61 0x73 0x20 0x5A 0x6F    // 'ed as Zo' \n\t0x72 0x72 0x6F 0x3B 0x20 0x4D 0x65 0x6D    // 'rro; Mem' \n\t0x62 0x65 0x72 0x20 0x6F 0x66 0x20 0x74    // 'ber of t' \n\t0x68 0x65 0x20 0x4B 0x69 0x64 0x73 0x27    // 'he Kids'' \n\t0x20 0x4D 0x79 0x73 0x74 0x65 0x72 0x79    // ' Mystery' \n\t0x20 0x43 0x6C 0x75 0x62 0x3B 0x20 0x50    // ' Club; P' \n\t0x72 0x65 0x68 0x69 0x73 0x74 0x6F 0x72    // 'rehistor' \n\t0x69 0x63 0x20 0x42 0x6F 0x79              // 'ic Boy' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_21= ktpcBioPage34\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"Bio Page 34  Sebastian\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"Bio Page 34  Sebastian\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_56=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage34\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_56=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_13=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_56, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio133 __HELP_SYMBOL( STN \"ktipbio133\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio134 __HELP_SYMBOL( STN \"ktipbio134\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio135 __HELP_SYMBOL( STN \"ktipbio135\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio136 __HELP_SYMBOL( STN \"ktipbio136\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_56=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_56, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x22 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '\"???????' \n\t0x01 0x00 0x00 0x00 0xD8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xD9 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x2B 0x01 0x00 0x01    // '????+???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x17 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xDB 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xE6 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xAD 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xB9 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xD9 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0xE8 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x0C 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x0E 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x20 0x01 0x00 0x04    // '??? ???' \n\t0x00 0x00 0x00 0x00 0x22 0x01 0x00 0x04    // '????\"???' \n\t0x0D 0x00 0x00 0xFE 0x2B 0x01 0x00 0x04    // '???+???' \n\t0x00 0x00 0x00 0x00 0xAD 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xB9 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD9 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE8 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x0C 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x0E 0x01 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x20 0x01 0x00 0x40    // '???? ??@' \n\t0x00 0x00 0x00 0x00 0x22 0x01 0x00 0x40    // '????\"??@' \n\t0x04 0x00 0x00 0x00 0x2B 0x01 0x00 0x40    // '????+??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x0B 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x17 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE8 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_56=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_56, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x45 0x42 0x41 0x53 0x54    // '??SEBAST' \n\t0x49 0x41 0x4E 0x0D 0x0A 0x42 0x61 0x63    // 'IAN??Bac' \n\t0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64 0x0D    // 'kground?' \n\t0x0A 0x53 0x65 0x62 0x61 0x73 0x74 0x69    // '?Sebasti' \n\t0x61 0x6E 0x20 0x69 0x73 0x20 0x31 0x35    // 'an is 15' \n\t0x20 0x61 0x6E 0x64 0x20 0x6C 0x6F 0x76    // ' and lov' \n\t0x65 0x73 0x20 0x62 0x61 0x73 0x65 0x62    // 'es baseb' \n\t0x61 0x6C 0x6C 0x20 0x6D 0x6F 0x72 0x65    // 'all more' \n\t0x20 0x74 0x68 0x61 0x6E 0x20 0x61 0x6E    // ' than an' \n\t0x79 0x74 0x68 0x69 0x6E 0x67 0x2E 0x20    // 'ything. ' \n\t0x4D 0x6F 0x73 0x74 0x20 0x6F 0x66 0x20    // 'Most of ' \n\t0x74 0x68 0x65 0x20 0x74 0x69 0x6D 0x65    // 'the time' \n\t0x20 0x68 0x65 0x20 0x70 0x6C 0x61 0x79    // ' he play' \n\t0x73 0x20 0x73 0x61 0x6E 0x64 0x2D 0x6C    // 's sand-l' \n\t0x6F 0x74 0x20 0x67 0x61 0x6D 0x65 0x73    // 'ot games' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x66 0x72    // ' with fr' \n\t0x69 0x65 0x6E 0x64 0x73 0x20 0x66 0x72    // 'iends fr' \n\t0x6F 0x6D 0x20 0x73 0x63 0x68 0x6F 0x6F    // 'om schoo' \n\t0x6C 0x2C 0x20 0x62 0x75 0x74 0x20 0x68    // 'l, but h' \n\t0x65 0x20 0x64 0x72 0x65 0x61 0x6D 0x73    // 'e dreams' \n\t0x20 0x6F 0x66 0x20 0x62 0x65 0x63 0x6F    // ' of beco' \n\t0x6D 0x69 0x6E 0x67 0x20 0x61 0x20 0x70    // 'ming a p' \n\t0x72 0x6F 0x66 0x65 0x73 0x73 0x69 0x6F    // 'rofessio' \n\t0x6E 0x61 0x6C 0x20 0x62 0x61 0x73 0x65    // 'nal base' \n\t0x62 0x61 0x6C 0x6C 0x20 0x70 0x6C 0x61    // 'ball pla' \n\t0x79 0x65 0x72 0x20 0x69 0x6E 0x20 0x61    // 'yer in a' \n\t0x20 0x66 0x65 0x77 0x20 0x79 0x65 0x61    // ' few yea' \n\t0x72 0x73 0x2E 0x0D 0x0A 0x44 0x72 0x65    // 'rs.??Dre' \n\t0x61 0x6D 0x20 0x52 0x6F 0x6C 0x65 0x73    // 'am Roles' \n\t0x0D 0x0A 0x54 0x72 0x69 0x63 0x6B 0x2D    // '??Trick-' \n\t0x6F 0x72 0x2D 0x54 0x72 0x65 0x61 0x74    // 'or-Treat' \n\t0x65 0x72 0x20 0x44 0x72 0x65 0x73 0x73    // 'er Dress' \n\t0x65 0x64 0x20 0x61 0x73 0x20 0x61 0x6E    // 'ed as an' \n\t0x20 0x41 0x6C 0x69 0x65 0x6E 0x3B 0x20    // ' Alien; ' \n\t0x50 0x69 0x7A 0x7A 0x61 0x20 0x44 0x65    // 'Pizza De' \n\t0x6C 0x69 0x76 0x65 0x72 0x79 0x20 0x42    // 'livery B' \n\t0x6F 0x79 0x3B 0x20 0x42 0x6F 0x79 0x20    // 'oy; Boy ' \n\t0x53 0x63 0x6F 0x75 0x74                   // 'Scout' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_22= ktpcBioPage35\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"Bio Page 35  Slam\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"Bio Page 35  Slam\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_BE=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage35\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_BE=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_BE, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio141 __HELP_SYMBOL( STN \"ktipbio141\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio142 __HELP_SYMBOL( STN \"ktipbio142\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio143 __HELP_SYMBOL( STN \"ktipbio143\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio144 __HELP_SYMBOL( STN \"ktipbio144\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_BE=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_BE, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x22 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '\"???????' \n\t0x01 0x00 0x00 0x00 0x98 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x9A 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD6 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x9A 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xA5 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x0F 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x16 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x9A 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0xA7 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xB3 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xB5 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xC3 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xC5 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xD6 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x0F 0x01 0x00 0x40    // '???????@' \n\t0x01 0x00 0x00 0x00 0x16 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x9A 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA7 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xB3 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xB5 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xC3 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC5 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xD6 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x06 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x12 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xA7 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_BE=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_BE, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x4C 0x41 0x4D 0x0D 0x0A    // '??SLAM??' \n\t0x42 0x61 0x63 0x6B 0x67 0x72 0x6F 0x75    // 'Backgrou' \n\t0x6E 0x64 0x0D 0x0A 0x53 0x6C 0x61 0x6D    // 'nd??Slam' \n\t0x20 0x6A 0x75 0x73 0x74 0x20 0x74 0x75    // ' just tu' \n\t0x72 0x6E 0x65 0x64 0x20 0x31 0x38 0x20    // 'rned 18 ' \n\t0x61 0x6E 0x64 0x20 0x68 0x61 0x73 0x20    // 'and has ' \n\t0x62 0x65 0x65 0x6E 0x20 0x69 0x6E 0x20    // 'been in ' \n\t0x61 0x20 0x63 0x6F 0x75 0x70 0x6C 0x65    // 'a couple' \n\t0x20 0x6F 0x66 0x20 0x47 0x65 0x72 0x6D    // ' of Germ' \n\t0x61 0x6E 0x2D 0x6D 0x61 0x64 0x65 0x20    // 'an-made ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x73 0x2E 0x20    // 'movies. ' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x68 0x65    // ' When he' \n\t0x20 0x77 0x61 0x73 0x20 0x61 0x20 0x6B    // ' was a k' \n\t0x69 0x64 0x20 0x68 0x65 0x20 0x61 0x74    // 'id he at' \n\t0x74 0x65 0x6E 0x64 0x65 0x64 0x20 0x61    // 'tended a' \n\t0x6E 0x20 0x61 0x72 0x74 0x73 0x20 0x61    // 'n arts a' \n\t0x63 0x61 0x64 0x65 0x6D 0x79 0x2C 0x20    // 'cademy, ' \n\t0x62 0x75 0x74 0x20 0x72 0x65 0x63 0x65    // 'but rece' \n\t0x6E 0x74 0x6C 0x79 0x20 0x68 0x65 0x20    // 'ntly he ' \n\t0x77 0x61 0x73 0x20 0x73 0x70 0x6F 0x74    // 'was spot' \n\t0x74 0x65 0x64 0x20 0x62 0x79 0x20 0x61    // 'ted by a' \n\t0x20 0x74 0x61 0x6C 0x65 0x6E 0x74 0x20    // ' talent ' \n\t0x73 0x63 0x6F 0x75 0x74 0x20 0x61 0x74    // 'scout at' \n\t0x20 0x61 0x20 0x66 0x61 0x73 0x74 0x2D    // ' a fast-' \n\t0x66 0x6F 0x6F 0x64 0x20 0x72 0x65 0x73    // 'food res' \n\t0x74 0x61 0x75 0x72 0x61 0x6E 0x74 0x20    // 'taurant ' \n\t0x69 0x6E 0x20 0x42 0x65 0x72 0x6C 0x69    // 'in Berli' \n\t0x6E 0x2C 0x20 0x77 0x68 0x65 0x72 0x65    // 'n, where' \n\t0x20 0x68 0x65 0x20 0x64 0x72 0x65 0x77    // ' he drew' \n\t0x20 0x68 0x75 0x67 0x65 0x20 0x63 0x72    // ' huge cr' \n\t0x6F 0x77 0x64 0x73 0x20 0x6F 0x66 0x20    // 'owds of ' \n\t0x70 0x65 0x6F 0x70 0x6C 0x65 0x20 0x61    // 'people a' \n\t0x73 0x20 0x68 0x65 0x20 0x66 0x6C 0x69    // 's he fli' \n\t0x70 0x70 0x65 0x64 0x20 0x74 0x68 0x65    // 'pped the' \n\t0x20 0x62 0x75 0x72 0x67 0x65 0x72 0x73    // ' burgers' \n\t0x20 0x69 0x6E 0x20 0x66 0x61 0x6E 0x63    // ' in fanc' \n\t0x79 0x20 0x74 0x72 0x69 0x70 0x6C 0x65    // 'y triple' \n\t0x20 0x61 0x6E 0x64 0x20 0x71 0x75 0x61    // ' and qua' \n\t0x64 0x72 0x75 0x70 0x6C 0x65 0x20 0x66    // 'druple f' \n\t0x6C 0x69 0x70 0x73 0x2E 0x20 0x0D 0x0A    // 'lips. ??' \n\t0x53 0x6F 0x6D 0x65 0x20 0x6F 0x66 0x20    // 'Some of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x76 0x69    // 'the movi' \n\t0x65 0x73 0x20 0x68 0x65 0x27 0x73 0x20    // 'es he's ' \n\t0x62 0x65 0x65 0x6E 0x20 0x69 0x6E 0x20    // 'been in ' \n\t0x61 0x72 0x65 0x20 0x93 0x52 0x75 0x6E    // 'are Run' \n\t0x2C 0x20 0x42 0x75 0x72 0x67 0x65 0x72    // ', Burger' \n\t0x6D 0x61 0x6E 0x2C 0x20 0x52 0x75 0x6E    // 'man, Run' \n\t0x94 0x20 0x61 0x6E 0x64 0x20 0x93 0x48    // ' and H' \n\t0x69 0x67 0x68 0x20 0x53 0x63 0x68 0x6F    // 'igh Scho' \n\t0x6F 0x6C 0x20 0x46 0x6C 0x69 0x70 0x70    // 'ol Flipp' \n\t0x69 0x6E 0x92 0x20 0x46 0x6F 0x6F 0x6C    // 'in Fool' \n\t0x2E 0x94 0x0D 0x0A 0x44 0x72 0x65 0x61    // '.??Drea' \n\t0x6D 0x20 0x52 0x6F 0x6C 0x65 0x73 0x0D    // 'm Roles?' \n\t0x0A 0x45 0x78 0x74 0x65 0x72 0x6D 0x69    // '?Extermi' \n\t0x6E 0x61 0x74 0x6F 0x72 0x3B 0x20 0x42    // 'nator; B' \n\t0x75 0x72 0x67 0x65 0x72 0x20 0x46 0x6C    // 'urger Fl' \n\t0x69 0x70 0x70 0x65 0x72 0x3B 0x20 0x43    // 'ipper; C' \n\t0x72 0x6F 0x63 0x6F 0x64 0x69 0x6C 0x65    // 'rocodile' \n\t0x20 0x54 0x72 0x61 0x69 0x6E 0x65 0x72    // ' Trainer' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_23= ktpcBioPage36\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"Bio Page 36  Tim\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"Bio Page 36  Tim\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_BA=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage36\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_BA=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_24=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_BA, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio145 __HELP_SYMBOL( STN \"ktipbio145\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio146 __HELP_SYMBOL( STN \"ktipbio146\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio147 __HELP_SYMBOL( STN \"ktipbio147\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio148 __HELP_SYMBOL( STN \"ktipbio148\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_BA=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_BA, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xF9 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xCA 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xD5 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xB6 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xBE 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xD7 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE3 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xE5 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xED 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xEF 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xF9 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xB6 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xBE 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD7 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xE3 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE5 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xED 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xEF 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xF9 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x09 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x15 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xD7 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_BA=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_BA, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x49 0x4D 0x4F 0x54 0x48    // '??TIMOTH' \n\t0x59 0x0D 0x0A 0x42 0x61 0x63 0x6B 0x67    // 'Y??Backg' \n\t0x72 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x54    // 'round??T' \n\t0x69 0x6D 0x6F 0x74 0x68 0x79 0x20 0x69    // 'imothy i' \n\t0x73 0x20 0x66 0x72 0x6F 0x6D 0x20 0x41    // 's from A' \n\t0x74 0x68 0x65 0x6E 0x73 0x2C 0x20 0x47    // 'thens, G' \n\t0x72 0x65 0x65 0x63 0x65 0x2E 0x20 0x48    // 'reece. H' \n\t0x69 0x73 0x20 0x66 0x61 0x6D 0x69 0x6C    // 'is famil' \n\t0x79 0x20 0x6F 0x77 0x6E 0x73 0x20 0x6D    // 'y owns m' \n\t0x69 0x6C 0x6C 0x73 0x20 0x74 0x68 0x61    // 'ills tha' \n\t0x74 0x20 0x6D 0x61 0x6B 0x65 0x20 0x6D    // 't make m' \n\t0x61 0x74 0x65 0x72 0x69 0x61 0x6C 0x20    // 'aterial ' \n\t0x66 0x6F 0x72 0x20 0x63 0x6C 0x6F 0x74    // 'for clot' \n\t0x68 0x65 0x73 0x2E 0x20 0x20 0x54 0x69    // 'hes.  Ti' \n\t0x6D 0x6F 0x74 0x68 0x79 0x20 0x6D 0x61    // 'mothy ma' \n\t0x6E 0x61 0x67 0x65 0x73 0x20 0x6F 0x6E    // 'nages on' \n\t0x65 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'e of the' \n\t0x20 0x6D 0x69 0x6C 0x6C 0x73 0x2E 0x20    // ' mills. ' \n\t0x20 0x47 0x72 0x6F 0x77 0x69 0x6E 0x67    // ' Growing' \n\t0x20 0x75 0x70 0x20 0x69 0x6E 0x20 0x41    // ' up in A' \n\t0x74 0x68 0x65 0x6E 0x73 0x2C 0x20 0x54    // 'thens, T' \n\t0x69 0x6D 0x6F 0x74 0x68 0x79 0x20 0x73    // 'imothy s' \n\t0x61 0x77 0x20 0x6D 0x61 0x6E 0x79 0x20    // 'aw many ' \n\t0x74 0x6F 0x75 0x72 0x69 0x73 0x74 0x73    // 'tourists' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x66 0x61    // ' from fa' \n\t0x72 0x2D 0x61 0x77 0x61 0x79 0x20 0x70    // 'r-away p' \n\t0x6C 0x61 0x63 0x65 0x73 0x20 0x6C 0x69    // 'laces li' \n\t0x6B 0x65 0x20 0x4B 0x61 0x6E 0x73 0x61    // 'ke Kansa' \n\t0x73 0x2C 0x20 0x4C 0x6F 0x73 0x20 0x41    // 's, Los A' \n\t0x6E 0x67 0x65 0x6C 0x65 0x73 0x2C 0x20    // 'ngeles, ' \n\t0x61 0x6E 0x64 0x20 0x41 0x72 0x6B 0x61    // 'and Arka' \n\t0x6E 0x73 0x61 0x73 0x2E 0x20 0x20 0x48    // 'nsas.  H' \n\t0x65 0x20 0x6C 0x69 0x6B 0x65 0x64 0x20    // 'e liked ' \n\t0x74 0x68 0x65 0x69 0x72 0x20 0x62 0x72    // 'their br' \n\t0x69 0x67 0x68 0x74 0x20 0x63 0x6C 0x6F    // 'ight clo' \n\t0x74 0x68 0x65 0x73 0x20 0x62 0x75 0x74    // 'thes but' \n\t0x20 0x63 0x6F 0x75 0x6C 0x64 0x6E 0x27    // ' couldn'' \n\t0x74 0x20 0x66 0x69 0x6E 0x64 0x20 0x61    // 't find a' \n\t0x6E 0x79 0x20 0x6C 0x69 0x6B 0x65 0x20    // 'ny like ' \n\t0x74 0x68 0x65 0x6D 0x20 0x69 0x6E 0x20    // 'them in ' \n\t0x41 0x74 0x68 0x65 0x6E 0x73 0x2C 0x20    // 'Athens, ' \n\t0x73 0x6F 0x20 0x68 0x65 0x20 0x64 0x65    // 'so he de' \n\t0x63 0x69 0x64 0x65 0x64 0x20 0x74 0x6F    // 'cided to' \n\t0x20 0x63 0x72 0x65 0x61 0x74 0x65 0x20    // ' create ' \n\t0x68 0x69 0x73 0x20 0x6F 0x77 0x6E 0x20    // 'his own ' \n\t0x66 0x61 0x62 0x72 0x69 0x63 0x73 0x20    // 'fabrics ' \n\t0x61 0x6E 0x64 0x20 0x68 0x61 0x76 0x65    // 'and have' \n\t0x20 0x74 0x68 0x65 0x6D 0x20 0x74 0x61    // ' them ta' \n\t0x69 0x6C 0x6F 0x72 0x65 0x64 0x20 0x69    // 'ilored i' \n\t0x6E 0x74 0x6F 0x20 0x73 0x75 0x69 0x74    // 'nto suit' \n\t0x73 0x20 0x74 0x6F 0x20 0x6D 0x61 0x74    // 's to mat' \n\t0x63 0x68 0x20 0x74 0x68 0x65 0x20 0x6F    // 'ch the o' \n\t0x6E 0x65 0x73 0x20 0x74 0x68 0x65 0x20    // 'nes the ' \n\t0x74 0x6F 0x75 0x72 0x69 0x73 0x74 0x73    // 'tourists' \n\t0x20 0x77 0x6F 0x72 0x65 0x20 0x77 0x68    // ' wore wh' \n\t0x65 0x6E 0x20 0x68 0x65 0x20 0x77 0x61    // 'en he wa' \n\t0x73 0x20 0x61 0x20 0x63 0x68 0x69 0x6C    // 's a chil' \n\t0x64 0x2E 0x0D 0x0A 0x44 0x72 0x65 0x61    // 'd.??Drea' \n\t0x6D 0x20 0x52 0x6F 0x6C 0x65 0x73 0x0D    // 'm Roles?' \n\t0x0A 0x53 0x70 0x6F 0x6F 0x6B 0x20 0x53    // '?Spook S' \n\t0x6C 0x65 0x75 0x74 0x68 0x3B 0x20 0x52    // 'leuth; R' \n\t0x65 0x70 0x6F 0x72 0x74 0x65 0x72 0x3B    // 'eporter;' \n\t0x20 0x4E 0x61 0x74 0x75 0x72 0x61 0x6C    // ' Natural' \n\t0x69 0x73 0x74                             // 'ist' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_24= ktpcBioPage37\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"Bio Page 37  Valentine\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"Bio Page 37  Valentine\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage37\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_19=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio149 __HELP_SYMBOL( STN \"ktipbio149\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio150 __HELP_SYMBOL( STN \"ktipbio150\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio151 __HELP_SYMBOL( STN \"ktipbio151\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio152 __HELP_SYMBOL( STN \"ktipbio152\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xED 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x17 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xB8 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xC3 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xAA 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xAE 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xC5 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xD6 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xD8 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE1 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xE3 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xED 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xAA 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xAE 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC5 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xD6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD8 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xE1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE3 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xED 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x0B 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x17 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xC5 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x56 0x41 0x4C 0x45 0x4E 0x54    // '??VALENT' \n\t0x49 0x4E 0x45 0x0D 0x0A 0x42 0x61 0x63    // 'INE??Bac' \n\t0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64 0x0D    // 'kground?' \n\t0x0A 0x56 0x61 0x6C 0x65 0x6E 0x74 0x69    // '?Valenti' \n\t0x6E 0x65 0x20 0x77 0x61 0x73 0x20 0x62    // 'ne was b' \n\t0x6F 0x72 0x6E 0x20 0x69 0x6E 0x20 0x4D    // 'orn in M' \n\t0x61 0x72 0x73 0x65 0x69 0x6C 0x6C 0x65    // 'arseille' \n\t0x73 0x2C 0x20 0x46 0x72 0x61 0x6E 0x63    // 's, Franc' \n\t0x65 0x20 0x73 0x6F 0x6D 0x65 0x20 0x33    // 'e some 3' \n\t0x30 0x20 0x79 0x65 0x61 0x72 0x73 0x20    // '0 years ' \n\t0x61 0x67 0x6F 0x2E 0x20 0x48 0x65 0x20    // 'ago. He ' \n\t0x6C 0x65 0x66 0x74 0x20 0x4D 0x61 0x72    // 'left Mar' \n\t0x73 0x65 0x69 0x6C 0x6C 0x65 0x73 0x20    // 'seilles ' \n\t0x6F 0x6E 0x20 0x68 0x69 0x73 0x20 0x32    // 'on his 2' \n\t0x30 0x74 0x68 0x20 0x62 0x69 0x72 0x74    // '0th birt' \n\t0x68 0x64 0x61 0x79 0x20 0x61 0x6E 0x64    // 'hday and' \n\t0x20 0x6D 0x6F 0x76 0x65 0x64 0x20 0x74    // ' moved t' \n\t0x6F 0x20 0x43 0x61 0x6E 0x6E 0x65 0x73    // 'o Cannes' \n\t0x2C 0x20 0x46 0x72 0x61 0x6E 0x63 0x65    // ', France' \n\t0x20 0x68 0x6F 0x70 0x69 0x6E 0x67 0x20    // ' hoping ' \n\t0x66 0x6F 0x72 0x20 0x68 0x69 0x73 0x20    // 'for his ' \n\t0x62 0x69 0x67 0x20 0x66 0x69 0x6C 0x6D    // 'big film' \n\t0x20 0x64 0x65 0x62 0x75 0x74 0x2E 0x20    // ' debut. ' \n\t0x0D 0x0A 0x44 0x72 0x65 0x61 0x6D 0x20    // '??Dream ' \n\t0x52 0x6F 0x6C 0x65 0x73 0x0D 0x0A 0x41    // 'Roles??A' \n\t0x6E 0x6E 0x6F 0x79 0x69 0x6E 0x67 0x20    // 'nnoying ' \n\t0x4E 0x65 0x69 0x67 0x68 0x62 0x6F 0x72    // 'Neighbor' \n\t0x3B 0x20 0x44 0x65 0x74 0x65 0x63 0x74    // '; Detect' \n\t0x69 0x76 0x65 0x3B 0x20 0x56 0x6F 0x6F    // 'ive; Voo' \n\t0x64 0x6F 0x6F 0x20 0x4D 0x61 0x6E         // 'doo Man' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_25= ktpcBioPage38\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"Bio Page 38  Vinnie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"Bio Page 38  Vinnie\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage38\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B0, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio153 __HELP_SYMBOL( STN \"ktipbio153\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio154 __HELP_SYMBOL( STN \"ktipbio154\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio155 __HELP_SYMBOL( STN \"ktipbio155\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio156 __HELP_SYMBOL( STN \"ktipbio156\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // ' ???????' \n\t0x01 0x00 0x00 0x00 0x0F 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xDB 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xE6 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xE9 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xF5 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xD9 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0xE8 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xEF 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xF1 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x06 0x02 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x08 0x02 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x0F 0x02 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0xE9 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xF5 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD9 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE8 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xEF 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF1 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0x06 0x02 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x08 0x02 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x0F 0x02 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x07 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x13 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE8 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B0, 0x0)\n\tBYTE\n\t0x03 0x03 0x56 0x45 0x4E 0x49 0x45 0x0D    // '??VENIE?' \n\t0x0A 0x42 0x61 0x63 0x6B 0x67 0x72 0x6F    // '?Backgro' \n\t0x75 0x6E 0x64 0x0D 0x0A 0x56 0x65 0x6E    // 'und??Ven' \n\t0x69 0x65 0x20 0x77 0x61 0x73 0x20 0x62    // 'ie was b' \n\t0x6F 0x72 0x6E 0x20 0x69 0x6E 0x20 0x4E    // 'orn in N' \n\t0x61 0x70 0x6C 0x65 0x73 0x2C 0x20 0x49    // 'aples, I' \n\t0x74 0x61 0x6C 0x79 0x2E 0x20 0x20 0x41    // 'taly.  A' \n\t0x73 0x20 0x61 0x20 0x63 0x68 0x69 0x6C    // 's a chil' \n\t0x64 0x20 0x68 0x65 0x20 0x77 0x61 0x74    // 'd he wat' \n\t0x63 0x68 0x65 0x64 0x20 0x63 0x6F 0x75    // 'ched cou' \n\t0x6E 0x74 0x6C 0x65 0x73 0x73 0x20 0x44    // 'ntless D' \n\t0x72 0x61 0x63 0x75 0x6C 0x61 0x20 0x6D    // 'racula m' \n\t0x6F 0x76 0x69 0x65 0x73 0x2E 0x20 0x20    // 'ovies.  ' \n\t0x57 0x68 0x65 0x6E 0x20 0x56 0x65 0x6E    // 'When Ven' \n\t0x69 0x65 0x20 0x77 0x61 0x73 0x20 0x69    // 'ie was i' \n\t0x6E 0x20 0x68 0x69 0x73 0x20 0x65 0x61    // 'n his ea' \n\t0x72 0x6C 0x79 0x20 0x32 0x30 0x73 0x2C    // 'rly 20s,' \n\t0x20 0x68 0x65 0x20 0x64 0x65 0x63 0x69    // ' he deci' \n\t0x64 0x65 0x64 0x20 0x74 0x6F 0x20 0x68    // 'ded to h' \n\t0x61 0x76 0x65 0x20 0x68 0x69 0x73 0x20    // 'ave his ' \n\t0x66 0x72 0x6F 0x6E 0x74 0x20 0x74 0x65    // 'front te' \n\t0x65 0x74 0x68 0x20 0x63 0x61 0x70 0x70    // 'eth capp' \n\t0x65 0x64 0x20 0x77 0x69 0x74 0x68 0x20    // 'ed with ' \n\t0x76 0x61 0x6D 0x70 0x69 0x72 0x65 0x20    // 'vampire ' \n\t0x66 0x61 0x6E 0x67 0x73 0x2E 0x20 0x20    // 'fangs.  ' \n\t0x56 0x65 0x6E 0x69 0x65 0x20 0x61 0x6C    // 'Venie al' \n\t0x73 0x6F 0x20 0x66 0x61 0x6E 0x63 0x69    // 'so fanci' \n\t0x65 0x73 0x20 0x68 0x69 0x6D 0x73 0x65    // 'es himse' \n\t0x6C 0x66 0x20 0x61 0x20 0x67 0x72 0x65    // 'lf a gre' \n\t0x61 0x74 0x20 0x6F 0x70 0x65 0x72 0x61    // 'at opera' \n\t0x20 0x73 0x69 0x6E 0x67 0x65 0x72 0x2E    // ' singer.' \n\t0x20 0x20 0x55 0x6E 0x66 0x6F 0x72 0x74    // '  Unfort' \n\t0x75 0x6E 0x61 0x74 0x65 0x6C 0x79 0x2C    // 'unately,' \n\t0x20 0x56 0x69 0x6E 0x6E 0x69 0x65 0x2C    // ' Vinnie,' \n\t0x20 0x61 0x6E 0x64 0x20 0x6F 0x6E 0x6C    // ' and onl' \n\t0x79 0x20 0x56 0x65 0x6E 0x69 0x65 0x2C    // 'y Venie,' \n\t0x20 0x74 0x68 0x69 0x6E 0x6B 0x73 0x20    // ' thinks ' \n\t0x68 0x65 0x20 0x73 0x69 0x6E 0x67 0x73    // 'he sings' \n\t0x20 0x77 0x65 0x6C 0x6C 0x2E 0x20 0x20    // ' well.  ' \n\t0x49 0x6E 0x20 0x66 0x61 0x63 0x74 0x2C    // 'In fact,' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x56 0x65    // ' when Ve' \n\t0x6E 0x69 0x65 0x20 0x73 0x69 0x6E 0x67    // 'nie sing' \n\t0x73 0x2C 0x20 0x64 0x6F 0x67 0x73 0x20    // 's, dogs ' \n\t0x68 0x6F 0x77 0x6C 0x20 0x69 0x6E 0x20    // 'howl in ' \n\t0x70 0x72 0x6F 0x74 0x65 0x73 0x74 0x20    // 'protest ' \n\t0x61 0x6E 0x64 0x20 0x70 0x65 0x6F 0x70    // 'and peop' \n\t0x6C 0x65 0x20 0x73 0x68 0x72 0x69 0x65    // 'le shrie' \n\t0x6B 0x20 0x61 0x6E 0x64 0x20 0x72 0x75    // 'k and ru' \n\t0x6E 0x20 0x6C 0x6F 0x6F 0x6B 0x69 0x6E    // 'n lookin' \n\t0x67 0x20 0x66 0x6F 0x72 0x20 0x65 0x61    // 'g for ea' \n\t0x72 0x20 0x70 0x6C 0x75 0x67 0x73 0x2E    // 'r plugs.' \n\t0x20 0x20 0x56 0x65 0x6E 0x69 0x65 0x20    // '  Venie ' \n\t0x68 0x61 0x73 0x20 0x61 0x20 0x76 0x69    // 'has a vi' \n\t0x73 0x69 0x6F 0x6E 0x20 0x6F 0x66 0x20    // 'sion of ' \n\t0x73 0x6F 0x6D 0x65 0x64 0x61 0x79 0x20    // 'someday ' \n\t0x64 0x6F 0x69 0x6E 0x67 0x20 0x61 0x20    // 'doing a ' \n\t0x6D 0x75 0x73 0x69 0x63 0x61 0x6C 0x20    // 'musical ' \n\t0x76 0x65 0x72 0x73 0x69 0x6F 0x6E 0x20    // 'version ' \n\t0x6F 0x66 0x20 0x44 0x72 0x61 0x63 0x75    // 'of Dracu' \n\t0x6C 0x61 0x2E 0x0D 0x0A 0x44 0x72 0x65    // 'la.??Dre' \n\t0x61 0x6D 0x20 0x52 0x6F 0x6C 0x65 0x73    // 'am Roles' \n\t0x0D 0x0A 0x44 0x72 0x61 0x63 0x75 0x6C    // '??Dracul' \n\t0x61 0x3B 0x20 0x53 0x74 0x72 0x65 0x65    // 'a; Stree' \n\t0x74 0x20 0x46 0x61 0x69 0x72 0x20 0x50    // 't Fair P' \n\t0x65 0x72 0x66 0x6F 0x72 0x6D 0x65 0x72    // 'erformer' \n\t0x3B 0x20 0x53 0x74 0x75 0x64 0x65 0x6E    // '; Studen' \n\t0x74                                       // 't' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_26= ktpcBioPage39\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"Bio Page 39  Wanda\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"Bio Page 39  Wanda\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage39\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_11=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio157 __HELP_SYMBOL( STN \"ktipbio157\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio159 __HELP_SYMBOL( STN \"ktipbio159\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio160 __HELP_SYMBOL( STN \"ktipbio160\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio158 __HELP_SYMBOL( STN \"ktipbio158\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // ' ???????' \n\t0x01 0x00 0x00 0x00 0xA2 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA4 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD2 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xA4 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xAF 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xDD 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE3 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xB1 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xBF 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xC1 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xCA 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xCC 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xD2 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xDD 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xE3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xB1 0x01 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xBF 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC1 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xCA 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xCC 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xD2 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x07 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x13 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB1 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x41 0x4E 0x44 0x41 0x0D    // '??WANDA?' \n\t0x0A 0x42 0x61 0x63 0x6B 0x67 0x72 0x6F    // '?Backgro' \n\t0x75 0x6E 0x64 0x0D 0x0A 0x57 0x61 0x6E    // 'und??Wan' \n\t0x64 0x61 0x20 0x69 0x73 0x20 0x61 0x20    // 'da is a ' \n\t0x66 0x65 0x6D 0x61 0x6C 0x65 0x20 0x72    // 'female r' \n\t0x6F 0x62 0x6F 0x74 0x20 0x69 0x6E 0x76    // 'obot inv' \n\t0x65 0x6E 0x74 0x65 0x64 0x20 0x62 0x79    // 'ented by' \n\t0x20 0x57 0x69 0x6C 0x6C 0x79 0x2C 0x20    // ' Willy, ' \n\t0x74 0x68 0x65 0x20 0x67 0x72 0x65 0x65    // 'the gree' \n\t0x6E 0x20 0x67 0x65 0x6E 0x69 0x75 0x73    // 'n genius' \n\t0x2E 0x20 0x20 0x53 0x68 0x65 0x20 0x6B    // '.  She k' \n\t0x6E 0x6F 0x77 0x73 0x20 0x73 0x68 0x65    // 'nows she' \n\t0x20 0x64 0x6F 0x65 0x73 0x6E 0x92 0x74    // ' doesnt' \n\t0x20 0x6C 0x6F 0x6F 0x6B 0x20 0x68 0x75    // ' look hu' \n\t0x6D 0x61 0x6E 0x2C 0x20 0x62 0x75 0x74    // 'man, but' \n\t0x20 0x74 0x68 0x65 0x6E 0x20 0x73 0x68    // ' then sh' \n\t0x65 0x20 0x63 0x61 0x6E 0x20 0x64 0x6F    // 'e can do' \n\t0x20 0x74 0x68 0x69 0x6E 0x67 0x73 0x20    // ' things ' \n\t0x68 0x75 0x6D 0x61 0x6E 0x73 0x20 0x63    // 'humans c' \n\t0x61 0x6E 0x92 0x74 0x20 0x64 0x6F 0x2C    // 'ant do,' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x6A 0x75    // ' like ju' \n\t0x6D 0x70 0x20 0x72 0x65 0x61 0x6C 0x6C    // 'mp reall' \n\t0x79 0x20 0x68 0x69 0x67 0x68 0x20 0x61    // 'y high a' \n\t0x6E 0x64 0x20 0x6C 0x61 0x6E 0x64 0x20    // 'nd land ' \n\t0x61 0x6C 0x6C 0x20 0x73 0x71 0x75 0x61    // 'all squa' \n\t0x73 0x68 0x65 0x64 0x20 0x75 0x70 0x2E    // 'shed up.' \n\t0x20 0x20 0x53 0x68 0x65 0x20 0x65 0x76    // '  She ev' \n\t0x65 0x6E 0x20 0x68 0x61 0x73 0x20 0x70    // 'en has p' \n\t0x6F 0x77 0x65 0x72 0x73 0x20 0x74 0x68    // 'owers th' \n\t0x61 0x74 0x20 0x57 0x69 0x6C 0x6C 0x79    // 'at Willy' \n\t0x20 0x64 0x6F 0x65 0x73 0x6E 0x92 0x74    // ' doesnt' \n\t0x20 0x6B 0x6E 0x6F 0x77 0x20 0x73 0x68    // ' know sh' \n\t0x65 0x20 0x68 0x61 0x73 0x2E 0x20 0x0D    // 'e has. ?' \n\t0x0A 0x57 0x61 0x6E 0x64 0x61 0x20 0x69    // '?Wanda i' \n\t0x73 0x20 0x67 0x72 0x61 0x74 0x65 0x66    // 's gratef' \n\t0x75 0x6C 0x20 0x74 0x6F 0x20 0x57 0x69    // 'ul to Wi' \n\t0x6C 0x6C 0x79 0x20 0x66 0x6F 0x72 0x20    // 'lly for ' \n\t0x70 0x75 0x74 0x74 0x69 0x6E 0x67 0x20    // 'putting ' \n\t0x68 0x65 0x72 0x20 0x74 0x6F 0x67 0x65    // 'her toge' \n\t0x74 0x68 0x65 0x72 0x2C 0x20 0x62 0x75    // 'ther, bu' \n\t0x74 0x20 0x73 0x68 0x65 0x27 0x73 0x20    // 't she's ' \n\t0x72 0x65 0x61 0x64 0x79 0x20 0x74 0x6F    // 'ready to' \n\t0x20 0x73 0x74 0x72 0x69 0x6B 0x65 0x20    // ' strike ' \n\t0x6F 0x75 0x74 0x20 0x6F 0x6E 0x20 0x68    // 'out on h' \n\t0x65 0x72 0x20 0x6F 0x77 0x6E 0x2E 0x20    // 'er own. ' \n\t0x20 0x53 0x68 0x65 0x20 0x77 0x61 0x6E    // ' She wan' \n\t0x74 0x73 0x20 0x74 0x6F 0x20 0x66 0x69    // 'ts to fi' \n\t0x6E 0x64 0x20 0x61 0x6E 0x20 0x61 0x70    // 'nd an ap' \n\t0x61 0x72 0x74 0x6D 0x65 0x6E 0x74 0x20    // 'artment ' \n\t0x61 0x6E 0x64 0x20 0x73 0x74 0x61 0x72    // 'and star' \n\t0x74 0x20 0x68 0x65 0x72 0x20 0x61 0x63    // 't her ac' \n\t0x74 0x69 0x6E 0x67 0x20 0x63 0x61 0x72    // 'ting car' \n\t0x65 0x65 0x72 0x2E 0x0D 0x0A 0x44 0x72    // 'eer.??Dr' \n\t0x65 0x61 0x6D 0x20 0x52 0x6F 0x6C 0x65    // 'eam Role' \n\t0x73 0x0D 0x0A 0x4D 0x65 0x63 0x68 0x61    // 's??Mecha' \n\t0x6E 0x69 0x63 0x61 0x6C 0x20 0x54 0x6F    // 'nical To' \n\t0x79 0x3B 0x20 0x52 0x6F 0x62 0x6F 0x74    // 'y; Robot' \n\t0x20 0x43 0x6F 0x70 0x3B 0x20 0x44 0x61    // ' Cop; Da' \n\t0x6E 0x63 0x65 0x72                        // 'ncer' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_27= ktpcBioPage40\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"Bio Page 40  Willy\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"Bio Page 40  Willy\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage40\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_25=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio161 __HELP_SYMBOL( STN \"ktipbio161\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio162 __HELP_SYMBOL( STN \"ktipbio162\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio163 __HELP_SYMBOL( STN \"ktipbio163\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio164 __HELP_SYMBOL( STN \"ktipbio164\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x21 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '!???????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x76 0x01 0x00 0x01    // '????v???' \n\t0x00 0x00 0x00 0x00 0x78 0x01 0x00 0x01    // '????x???' \n\t0x01 0x00 0x00 0x00 0xB1 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x78 0x01 0x00 0x03    // '????x???' \n\t0x0A 0x00 0x00 0xFD 0x83 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x5F 0x01 0x00 0x04    // '????_???' \n\t0x0D 0x00 0x00 0xFE 0x63 0x01 0x00 0x04    // '???c???' \n\t0x00 0x00 0x00 0x00 0x85 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x92 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x94 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA1 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xA3 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xB1 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x5F 0x01 0x00 0x40    // '????_??@' \n\t0x01 0x00 0x00 0x00 0x63 0x01 0x00 0x40    // '????c??@' \n\t0x00 0x00 0x00 0x00 0x85 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x92 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x94 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xA1 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA3 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xB1 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x07 0x00 0x00 0x80    // '?????' \n\t0xBD 0x00 0x00 0x00 0x13 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x85 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x49 0x4C 0x4C 0x59 0x0D    // '??WILLY?' \n\t0x0A 0x42 0x61 0x63 0x6B 0x67 0x72 0x6F    // '?Backgro' \n\t0x75 0x6E 0x64 0x0D 0x0A 0x57 0x69 0x6C    // 'und??Wil' \n\t0x6C 0x79 0x20 0x69 0x73 0x20 0x61 0x20    // 'ly is a ' \n\t0x67 0x65 0x6E 0x69 0x75 0x73 0x2C 0x20    // 'genius, ' \n\t0x6E 0x6F 0x20 0x71 0x75 0x65 0x73 0x74    // 'no quest' \n\t0x69 0x6F 0x6E 0x20 0x61 0x62 0x6F 0x75    // 'ion abou' \n\t0x74 0x20 0x69 0x74 0x2E 0x20 0x20 0x48    // 't it.  H' \n\t0x65 0x20 0x64 0x6F 0x65 0x73 0x6E 0x92    // 'e doesn' \n\t0x74 0x20 0x65 0x76 0x65 0x72 0x20 0x74    // 't ever t' \n\t0x68 0x69 0x6E 0x6B 0x20 0x61 0x62 0x6F    // 'hink abo' \n\t0x75 0x74 0x20 0x68 0x6F 0x77 0x20 0x73    // 'ut how s' \n\t0x74 0x72 0x61 0x6E 0x67 0x65 0x20 0x68    // 'trange h' \n\t0x65 0x20 0x6C 0x6F 0x6F 0x6B 0x73 0x2E    // 'e looks.' \n\t0x20 0x20 0x48 0x65 0x20 0x68 0x61 0x73    // '  He has' \n\t0x20 0x74 0x69 0x6D 0x65 0x20 0x6F 0x6E    // ' time on' \n\t0x6C 0x79 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ly to th' \n\t0x69 0x6E 0x6B 0x20 0x61 0x62 0x6F 0x75    // 'ink abou' \n\t0x74 0x20 0x69 0x6D 0x70 0x6F 0x72 0x74    // 't import' \n\t0x61 0x6E 0x74 0x20 0x74 0x68 0x69 0x6E    // 'ant thin' \n\t0x67 0x73 0x2C 0x20 0x6C 0x69 0x6B 0x65    // 'gs, like' \n\t0x20 0x69 0x66 0x20 0x77 0x68 0x69 0x74    // ' if whit' \n\t0x65 0x20 0x69 0x73 0x20 0x6E 0x6F 0x74    // 'e is not' \n\t0x20 0x61 0x20 0x63 0x6F 0x6C 0x6F 0x72    // ' a color' \n\t0x2C 0x20 0x74 0x68 0x65 0x6E 0x20 0x69    // ', then i' \n\t0x73 0x20 0x62 0x6C 0x61 0x63 0x6B 0x20    // 's black ' \n\t0x61 0x6C 0x6C 0x20 0x74 0x68 0x65 0x20    // 'all the ' \n\t0x63 0x6F 0x6C 0x6F 0x72 0x73 0x20 0x70    // 'colors p' \n\t0x75 0x74 0x20 0x74 0x6F 0x67 0x65 0x74    // 'ut toget' \n\t0x68 0x65 0x72 0x3F 0x20 0x20 0x48 0x65    // 'her?  He' \n\t0x20 0x65 0x76 0x65 0x6E 0x20 0x74 0x68    // ' even th' \n\t0x69 0x6E 0x6B 0x73 0x20 0x69 0x6E 0x20    // 'inks in ' \n\t0x68 0x69 0x73 0x20 0x73 0x6C 0x65 0x65    // 'his slee' \n\t0x70 0x2E 0x20 0x20 0x48 0x65 0x20 0x64    // 'p.  He d' \n\t0x6F 0x65 0x73 0x6E 0x92 0x74 0x20 0x77    // 'oesnt w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x6C    // 'ant to l' \n\t0x6F 0x73 0x65 0x20 0x61 0x6E 0x79 0x20    // 'ose any ' \n\t0x62 0x72 0x61 0x69 0x6E 0x2D 0x63 0x79    // 'brain-cy' \n\t0x63 0x6C 0x65 0x73 0x2E 0x20 0x20 0x55    // 'cles.  U' \n\t0x6E 0x66 0x6F 0x72 0x74 0x75 0x6E 0x61    // 'nfortuna' \n\t0x74 0x65 0x6C 0x79 0x2C 0x20 0x61 0x6C    // 'tely, al' \n\t0x6C 0x20 0x74 0x68 0x69 0x73 0x20 0x74    // 'l this t' \n\t0x68 0x69 0x6E 0x6B 0x69 0x6E 0x67 0x20    // 'hinking ' \n\t0x6D 0x61 0x64 0x65 0x20 0x68 0x69 0x73    // 'made his' \n\t0x20 0x6E 0x6F 0x73 0x65 0x20 0x70 0x6F    // ' nose po' \n\t0x69 0x6E 0x74 0x79 0x20 0x61 0x6E 0x64    // 'inty and' \n\t0x20 0x73 0x68 0x61 0x72 0x70 0x2E 0x20    // ' sharp. ' \n\t0x0D 0x0A 0x44 0x72 0x65 0x61 0x6D 0x20    // '??Dream ' \n\t0x52 0x6F 0x6C 0x65 0x73 0x0D 0x0A 0x4D    // 'Roles??M' \n\t0x61 0x64 0x20 0x53 0x63 0x69 0x65 0x6E    // 'ad Scien' \n\t0x74 0x69 0x73 0x74 0x3B 0x20 0x50 0x61    // 'tist; Pa' \n\t0x72 0x6B 0x69 0x6E 0x67 0x20 0x56 0x61    // 'rking Va' \n\t0x6C 0x65 0x74 0x3B 0x20 0x4E 0x61 0x74    // 'let; Nat' \n\t0x69 0x76 0x65 0x20 0x53 0x74 0x75 0x64    // 'ive Stud' \n\t0x65 0x6E 0x74                             // 'ent' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_28= ktpcBioPageNum\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"Bio Page Number field\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"Bio Page Number field\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon ktpcBioPageNum 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_24=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPageNum\"\n\tITEM\n\t\t\"ktpcBioPageNum\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_24=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x42 0x00 0x00 0x00    // '????B???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_24=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_24=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x7E 0x31 0x30 0x30 0x20    // '?? ~100 ' \n\t0x2F 0x20 0x34 0x30                        // '/ 40' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_29= ktpcBioPage41\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"Bio Page 41  Zack\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"Bio Page 41  Zack\")) __HELP_PACK2\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 kidBioTipScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage41\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBioTipScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_22=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktipbio166 __HELP_SYMBOL( STN \"ktipbio166\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktipbio167 __HELP_SYMBOL( STN \"ktipbio167\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktipbio168 __HELP_SYMBOL( STN \"ktipbio168\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktipbio165 __HELP_SYMBOL( STN \"ktipbio165\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // ' ???????' \n\t0x01 0x00 0x00 0x00 0x9C 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x9D 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xA9 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xB4 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x9D 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA6 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xB6 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xBD 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xBF 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xC6 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xC8 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xDA 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x9D 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xA6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xB6 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xBD 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xBF 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xC6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC8 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xDA 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x02 0x06 0x00 0x00 0x80    // '?????' \n\t0xF7 0xFF 0x00 0x00 0x12 0x00 0x00 0x80    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB6 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x5A 0x41 0x43 0x4B 0x0D 0x0A    // '??ZACK??' \n\t0x42 0x61 0x63 0x6B 0x67 0x72 0x6F 0x75    // 'Backgrou' \n\t0x6E 0x64 0x0D 0x0A 0x5A 0x61 0x63 0x6B    // 'nd??Zack' \n\t0x20 0x77 0x61 0x73 0x20 0x62 0x6F 0x72    // ' was bor' \n\t0x6E 0x20 0x61 0x6E 0x64 0x20 0x72 0x61    // 'n and ra' \n\t0x69 0x73 0x65 0x64 0x20 0x69 0x6E 0x20    // 'ised in ' \n\t0x4D 0x61 0x64 0x72 0x69 0x64 0x2C 0x20    // 'Madrid, ' \n\t0x53 0x70 0x61 0x69 0x6E 0x2E 0x20 0x4E    // 'Spain. N' \n\t0x6F 0x20 0x6F 0x6E 0x65 0x20 0x6B 0x6E    // 'o one kn' \n\t0x6F 0x77 0x73 0x20 0x68 0x69 0x73 0x20    // 'ows his ' \n\t0x72 0x65 0x61 0x6C 0x20 0x61 0x67 0x65    // 'real age' \n\t0x2C 0x20 0x62 0x75 0x74 0x20 0x68 0x65    // ', but he' \n\t0x92 0x73 0x20 0x67 0x6F 0x74 0x74 0x61    // 's gotta' \n\t0x20 0x62 0x65 0x20 0x61 0x74 0x20 0x6C    // ' be at l' \n\t0x65 0x61 0x73 0x74 0x20 0x34 0x30 0x2E    // 'east 40.' \n\t0x20 0x48 0x65 0x20 0x63 0x6F 0x6D 0x65    // ' He come' \n\t0x73 0x20 0x66 0x72 0x6F 0x6D 0x20 0x61    // 's from a' \n\t0x20 0x66 0x61 0x6D 0x69 0x6C 0x79 0x20    // ' family ' \n\t0x6F 0x66 0x20 0x6F 0x75 0x74 0x73 0x74    // 'of outst' \n\t0x61 0x6E 0x64 0x69 0x6E 0x67 0x20 0x6D    // 'anding m' \n\t0x61 0x74 0x61 0x64 0x6F 0x72 0x73 0x2E    // 'atadors.' \n\t0x20 0x0D 0x0A 0x44 0x72 0x65 0x61 0x6D    // ' ??Dream' \n\t0x20 0x52 0x6F 0x6C 0x65 0x73 0x0D 0x0A    // ' Roles??' \n\t0x50 0x68 0x61 0x6E 0x74 0x6F 0x6D 0x3B    // 'Phantom;' \n\t0x20 0x56 0x69 0x6C 0x6C 0x69 0x61 0x6E    // ' Villian' \n\t0x3B 0x20 0x43 0x61 0x6D 0x6F 0x75 0x66    // '; Camouf' \n\t0x6C 0x61 0x67 0x65 0x64 0x20 0x48 0x75    // 'laged Hu' \n\t0x6E 0x74 0x65 0x72                        // 'nter' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2A= ktipbio1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"ktipbio1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"ktipbio1\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio1\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x03 0x03 0x66 0x61 0x6E 0x63 0x79 0x20    // '??fancy ' \n\t0x64 0x61 0x6E 0x63 0x65 0x20 0x73 0x74    // 'dance st' \n\t0x65 0x70 0x73 0x0D 0x0A 0x49 0x74 0x20    // 'eps??It ' \n\t0x77 0x61 0x73 0x20 0x41 0x6C 0x65 0x78    // 'was Alex' \n\t0x61 0x6E 0x64 0x65 0x72 0x92 0x73 0x20    // 'anders ' \n\t0x66 0x61 0x6E 0x63 0x79 0x20 0x64 0x61    // 'fancy da' \n\t0x6E 0x63 0x65 0x20 0x73 0x74 0x65 0x70    // 'nce step' \n\t0x73 0x20 0x74 0x68 0x61 0x74 0x20 0x67    // 's that g' \n\t0x6F 0x74 0x20 0x68 0x69 0x6D 0x20 0x69    // 'ot him i' \n\t0x6E 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // 'nto the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x62 0x75    // 'movie bu' \n\t0x73 0x69 0x6E 0x65 0x73 0x73 0x2E 0x20    // 'siness. ' \n\t0x20 0x48 0x65 0x20 0x77 0x61 0x73 0x20    // ' He was ' \n\t0x72 0x65 0x63 0x72 0x75 0x69 0x74 0x65    // 'recruite' \n\t0x64 0x20 0x61 0x73 0x20 0x61 0x20 0x63    // 'd as a c' \n\t0x68 0x6F 0x72 0x65 0x6F 0x67 0x72 0x61    // 'horeogra' \n\t0x70 0x68 0x65 0x72 0x20 0x66 0x6F 0x72    // 'pher for' \n\t0x20 0x6D 0x75 0x73 0x69 0x63 0x20 0x76    // ' music v' \n\t0x69 0x64 0x65 0x6F 0x73 0x20 0x62 0x75    // 'ideos bu' \n\t0x74 0x20 0x61 0x74 0x20 0x66 0x69 0x72    // 't at fir' \n\t0x73 0x74 0x20 0x77 0x61 0x73 0x6E 0x92    // 'st wasn' \n\t0x74 0x20 0x63 0x6F 0x6E 0x73 0x69 0x64    // 't consid' \n\t0x65 0x72 0x65 0x64 0x20 0x67 0x6F 0x6F    // 'ered goo' \n\t0x64 0x2D 0x6C 0x6F 0x6F 0x6B 0x69 0x6E    // 'd-lookin' \n\t0x67 0x20 0x65 0x6E 0x6F 0x75 0x67 0x68    // 'g enough' \n\t0x20 0x74 0x6F 0x20 0x61 0x63 0x74 0x75    // ' to actu' \n\t0x61 0x6C 0x6C 0x79 0x20 0x70 0x65 0x72    // 'ally per' \n\t0x66 0x6F 0x72 0x6D 0x20 0x6F 0x6E 0x20    // 'form on ' \n\t0x66 0x69 0x6C 0x6D 0x2E 0x20 0x20 0x44    // 'film.  D' \n\t0x75 0x72 0x69 0x6E 0x67 0x20 0x74 0x68    // 'uring th' \n\t0x65 0x20 0x66 0x69 0x6C 0x6D 0x69 0x6E    // 'e filmin' \n\t0x67 0x20 0x6F 0x66 0x20 0x6F 0x6E 0x65    // 'g of one' \n\t0x20 0x76 0x69 0x64 0x65 0x6F 0x2C 0x20    // ' video, ' \n\t0x68 0x6F 0x77 0x65 0x76 0x65 0x72 0x2C    // 'however,' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x61    // ' the sta' \n\t0x72 0x20 0x64 0x61 0x6E 0x63 0x65 0x72    // 'r dancer' \n\t0x20 0x63 0x61 0x75 0x67 0x68 0x74 0x20    // ' caught ' \n\t0x6F 0x6E 0x20 0x66 0x69 0x72 0x65 0x20    // 'on fire ' \n\t0x61 0x6E 0x64 0x20 0x74 0x68 0x65 0x20    // 'and the ' \n\t0x6F 0x6E 0x6C 0x79 0x20 0x6F 0x74 0x68    // 'only oth' \n\t0x65 0x72 0x20 0x70 0x65 0x72 0x73 0x6F    // 'er perso' \n\t0x6E 0x20 0x77 0x68 0x6F 0x20 0x6B 0x6E    // 'n who kn' \n\t0x65 0x77 0x20 0x74 0x68 0x65 0x20 0x64    // 'ew the d' \n\t0x61 0x6E 0x63 0x65 0x20 0x73 0x74 0x65    // 'ance ste' \n\t0x70 0x73 0x20 0x77 0x61 0x73 0x20 0x41    // 'ps was A' \n\t0x6C 0x65 0x78 0x61 0x6E 0x64 0x65 0x72    // 'lexander' \n\t0x2E 0x0D 0x0A 0x41 0x66 0x74 0x65 0x72    // '.??After' \n\t0x20 0x74 0x68 0x65 0x20 0x76 0x69 0x64    // ' the vid' \n\t0x65 0x6F 0x20 0x77 0x61 0x73 0x20 0x73    // 'eo was s' \n\t0x68 0x6F 0x77 0x6E 0x20 0x6F 0x6E 0x20    // 'hown on ' \n\t0x54 0x56 0x2C 0x20 0x74 0x68 0x65 0x20    // 'TV, the ' \n\t0x74 0x65 0x6C 0x65 0x76 0x69 0x73 0x69    // 'televisi' \n\t0x6F 0x6E 0x20 0x73 0x74 0x61 0x74 0x69    // 'on stati' \n\t0x6F 0x6E 0x20 0x77 0x61 0x73 0x20 0x66    // 'on was f' \n\t0x6C 0x6F 0x6F 0x64 0x65 0x64 0x20 0x77    // 'looded w' \n\t0x69 0x74 0x68 0x20 0x66 0x61 0x6E 0x20    // 'ith fan ' \n\t0x6D 0x61 0x69 0x6C 0x20 0x66 0x6F 0x72    // 'mail for' \n\t0x20 0x41 0x6C 0x65 0x78 0x61 0x6E 0x64    // ' Alexand' \n\t0x65 0x72 0x21 0x20 0x20 0x48 0x65 0x20    // 'er!  He ' \n\t0x62 0x65 0x63 0x61 0x6D 0x65 0x20 0x61    // 'became a' \n\t0x6E 0x20 0x69 0x6E 0x73 0x74 0x61 0x6E    // 'n instan' \n\t0x74 0x20 0x73 0x74 0x61 0x72 0x20 0x61    // 't star a' \n\t0x6E 0x64 0x20 0x77 0x61 0x73 0x20 0x73    // 'nd was s' \n\t0x6F 0x6F 0x6E 0x20 0x6D 0x61 0x6B 0x69    // 'oon maki' \n\t0x6E 0x67 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ng movie' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2B= ktipbio2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"ktipbio2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"ktipbio2\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio2\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB1 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xB1 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2C 0x01 0x00 0x82    // '????,??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4C, 0x0)\n\tBYTE\n\t0x03 0x03 0x4C 0x69 0x62 0x72 0x61 0x72    // '??Librar' \n\t0x69 0x61 0x6E 0x0D 0x0A 0x41 0x6C 0x65    // 'ian??Ale' \n\t0x78 0x61 0x6E 0x64 0x65 0x72 0x20 0x77    // 'xander w' \n\t0x61 0x6E 0x74 0x73 0x20 0x74 0x6F 0x20    // 'ants to ' \n\t0x70 0x6C 0x61 0x79 0x20 0x74 0x68 0x65    // 'play the' \n\t0x20 0x6C 0x69 0x62 0x72 0x61 0x72 0x69    // ' librari' \n\t0x61 0x6E 0x20 0x69 0x6E 0x20 0x61 0x20    // 'an in a ' \n\t0x6C 0x61 0x72 0x67 0x65 0x2C 0x20 0x63    // 'large, c' \n\t0x72 0x65 0x65 0x70 0x79 0x20 0x68 0x6F    // 'reepy ho' \n\t0x75 0x73 0x65 0x2E 0x20 0x41 0x73 0x20    // 'use. As ' \n\t0x68 0x65 0x20 0x73 0x69 0x74 0x73 0x20    // 'he sits ' \n\t0x61 0x74 0x20 0x68 0x69 0x73 0x20 0x64    // 'at his d' \n\t0x65 0x73 0x6B 0x2C 0x20 0x61 0x20 0x67    // 'esk, a g' \n\t0x75 0x79 0x20 0x77 0x68 0x6F 0x20 0x6C    // 'uy who l' \n\t0x6F 0x6F 0x6B 0x73 0x20 0x6C 0x69 0x6B    // 'ooks lik' \n\t0x65 0x20 0x61 0x20 0x6D 0x75 0x6D 0x6D    // 'e a mumm' \n\t0x79 0x20 0x77 0x61 0x6C 0x6B 0x73 0x20    // 'y walks ' \n\t0x72 0x69 0x67 0x68 0x74 0x20 0x74 0x68    // 'right th' \n\t0x72 0x6F 0x75 0x67 0x68 0x20 0x74 0x68    // 'rough th' \n\t0x65 0x20 0x77 0x61 0x6C 0x6C 0x20 0x61    // 'e wall a' \n\t0x6E 0x64 0x20 0x73 0x74 0x61 0x6E 0x64    // 'nd stand' \n\t0x73 0x20 0x62 0x65 0x73 0x69 0x64 0x65    // 's beside' \n\t0x20 0x68 0x69 0x6D 0x21 0x20 0x20 0x41    // ' him!  A' \n\t0x6C 0x65 0x78 0x61 0x6E 0x64 0x65 0x72    // 'lexander' \n\t0x20 0x69 0x73 0x20 0x73 0x74 0x75 0x6E    // ' is stun' \n\t0x6E 0x65 0x64 0x20 0x61 0x73 0x20 0x68    // 'ned as h' \n\t0x65 0x20 0x6C 0x69 0x73 0x74 0x65 0x6E    // 'e listen' \n\t0x73 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 's to the' \n\t0x20 0x6D 0x75 0x6D 0x6D 0x79 0x92 0x73    // ' mummys' \n\t0x20 0x77 0x61 0x72 0x6E 0x69 0x6E 0x67    // ' warning' \n\t0x20 0x74 0x6F 0x20 0x6C 0x65 0x61 0x76    // ' to leav' \n\t0x65 0x20 0x68 0x69 0x73 0x20 0x6A 0x6F    // 'e his jo' \n\t0x62 0x20 0x61 0x73 0x20 0x61 0x20 0x6C    // 'b as a l' \n\t0x69 0x62 0x72 0x61 0x72 0x69 0x61 0x6E    // 'ibrarian' \n\t0x20 0x6F 0x72 0x20 0x66 0x61 0x63 0x65    // ' or face' \n\t0x20 0x68 0x6F 0x72 0x72 0x69 0x62 0x6C    // ' horribl' \n\t0x65 0x20 0x64 0x69 0x73 0x61 0x73 0x74    // 'e disast' \n\t0x65 0x72 0x2E 0x20 0x0D 0x0A 0x57 0x68    // 'er. ??Wh' \n\t0x79 0x20 0x6D 0x75 0x73 0x74 0x20 0x41    // 'y must A' \n\t0x6C 0x65 0x78 0x61 0x6E 0x64 0x65 0x72    // 'lexander' \n\t0x20 0x6C 0x65 0x61 0x76 0x65 0x20 0x68    // ' leave h' \n\t0x69 0x73 0x20 0x6A 0x6F 0x62 0x3F 0x20    // 'is job? ' \n\t0x20 0x49 0x73 0x20 0x74 0x68 0x69 0x73    // ' Is this' \n\t0x20 0x6A 0x75 0x73 0x74 0x20 0x74 0x68    // ' just th' \n\t0x65 0x20 0x65 0x78 0x63 0x75 0x73 0x65    // 'e excuse' \n\t0x20 0x68 0x65 0x20 0x6E 0x65 0x65 0x64    // ' he need' \n\t0x73 0x20 0x74 0x6F 0x20 0x71 0x75 0x69    // 's to qui' \n\t0x74 0x20 0x68 0x69 0x73 0x20 0x6A 0x6F    // 't his jo' \n\t0x62 0x20 0x61 0x6E 0x64 0x20 0x64 0x61    // 'b and da' \n\t0x6E 0x63 0x65 0x20 0x66 0x6F 0x72 0x20    // 'nce for ' \n\t0x61 0x20 0x6C 0x69 0x76 0x69 0x6E 0x67    // 'a living' \n\t0x3F 0x20 0x20 0x57 0x68 0x79 0x20 0x64    // '?  Why d' \n\t0x6F 0x65 0x73 0x20 0x74 0x68 0x65 0x20    // 'oes the ' \n\t0x4D 0x75 0x6D 0x6D 0x79 0x20 0x63 0x61    // 'Mummy ca' \n\t0x72 0x65 0x3F                             // 're?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2C= ktipbio3\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"ktipbio3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"ktipbio3\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_26=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio3\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_26=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_26=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD7 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xD9 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDB 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xDB 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x89 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_26=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x6F 0x6F 0x64 0x20 0x43    // '??Food C' \n\t0x72 0x69 0x74 0x69 0x63 0x0D 0x0A 0x41    // 'ritic??A' \n\t0x6C 0x65 0x78 0x61 0x6E 0x64 0x65 0x72    // 'lexander' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x6C    // ' would l' \n\t0x6F 0x76 0x65 0x20 0x74 0x6F 0x20 0x70    // 'ove to p' \n\t0x6C 0x61 0x79 0x20 0x61 0x20 0x66 0x6F    // 'lay a fo' \n\t0x6F 0x64 0x20 0x63 0x72 0x69 0x74 0x69    // 'od criti' \n\t0x63 0x20 0x77 0x68 0x6F 0x20 0x77 0x61    // 'c who wa' \n\t0x6C 0x6B 0x73 0x20 0x69 0x6E 0x74 0x6F    // 'lks into' \n\t0x20 0x61 0x20 0x6E 0x65 0x77 0x20 0x72    // ' a new r' \n\t0x65 0x73 0x74 0x61 0x75 0x72 0x61 0x6E    // 'estauran' \n\t0x74 0x20 0x74 0x6F 0x20 0x72 0x65 0x76    // 't to rev' \n\t0x69 0x65 0x77 0x20 0x74 0x68 0x65 0x20    // 'iew the ' \n\t0x66 0x6F 0x6F 0x64 0x20 0x66 0x6F 0x72    // 'food for' \n\t0x20 0x68 0x69 0x73 0x20 0x64 0x61 0x69    // ' his dai' \n\t0x6C 0x79 0x20 0x6E 0x65 0x77 0x73 0x70    // 'ly newsp' \n\t0x61 0x70 0x65 0x72 0x20 0x63 0x6F 0x6C    // 'aper col' \n\t0x75 0x6D 0x6E 0x2E 0x20 0x20 0x4E 0x6F    // 'umn.  No' \n\t0x20 0x6F 0x6E 0x65 0x20 0x73 0x65 0x65    // ' one see' \n\t0x6D 0x73 0x20 0x74 0x6F 0x20 0x62 0x65    // 'ms to be' \n\t0x20 0x61 0x72 0x6F 0x75 0x6E 0x64 0x20    // ' around ' \n\t0x73 0x6F 0x20 0x68 0x65 0x20 0x77 0x61    // 'so he wa' \n\t0x6C 0x6B 0x73 0x20 0x74 0x6F 0x20 0x74    // 'lks to t' \n\t0x68 0x65 0x20 0x63 0x6F 0x75 0x6E 0x74    // 'he count' \n\t0x65 0x72 0x20 0x61 0x6E 0x64 0x20 0x74    // 'er and t' \n\t0x61 0x6B 0x65 0x73 0x20 0x61 0x20 0x73    // 'akes a s' \n\t0x65 0x61 0x74 0x2E 0x20 0x20 0x41 0x20    // 'eat.  A ' \n\t0x77 0x61 0x69 0x74 0x65 0x72 0x20 0x65    // 'waiter e' \n\t0x76 0x65 0x6E 0x74 0x75 0x61 0x6C 0x6C    // 'ventuall' \n\t0x79 0x20 0x63 0x6F 0x6D 0x65 0x73 0x20    // 'y comes ' \n\t0x6F 0x75 0x74 0x20 0x6F 0x66 0x20 0x74    // 'out of t' \n\t0x68 0x65 0x20 0x6B 0x69 0x74 0x63 0x68    // 'he kitch' \n\t0x65 0x6E 0x20 0x74 0x6F 0x20 0x74 0x61    // 'en to ta' \n\t0x6B 0x65 0x20 0x68 0x69 0x73 0x20 0x6F    // 'ke his o' \n\t0x72 0x64 0x65 0x72 0x2C 0x20 0x62 0x75    // 'rder, bu' \n\t0x74 0x20 0x73 0x74 0x6F 0x70 0x73 0x20    // 't stops ' \n\t0x69 0x6E 0x20 0x73 0x68 0x6F 0x63 0x6B    // 'in shock' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x68 0x65    // ' when he' \n\t0x20 0x73 0x65 0x65 0x73 0x20 0x41 0x6C    // ' sees Al' \n\t0x65 0x78 0x61 0x6E 0x64 0x65 0x72 0x2E    // 'exander.' \n\t0x20 0x20 0x41 0x6C 0x65 0x78 0x61 0x6E    // '  Alexan' \n\t0x64 0x65 0x72 0x20 0x69 0x73 0x20 0x65    // 'der is e' \n\t0x71 0x75 0x61 0x6C 0x6C 0x79 0x20 0x73    // 'qually s' \n\t0x74 0x75 0x6E 0x6E 0x65 0x64 0x3B 0x20    // 'tunned; ' \n\t0x74 0x68 0x65 0x20 0x77 0x61 0x69 0x74    // 'the wait' \n\t0x65 0x72 0x20 0x6C 0x6F 0x6F 0x6B 0x73    // 'er looks' \n\t0x20 0x65 0x78 0x61 0x63 0x74 0x6C 0x79    // ' exactly' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x41 0x6C    // ' like Al' \n\t0x65 0x78 0x61 0x6E 0x64 0x65 0x72 0x21    // 'exander!' \n\t0x20 0x0D 0x0A 0x48 0x6F 0x77 0x20 0x63    // ' ??How c' \n\t0x61 0x6E 0x20 0x74 0x68 0x69 0x73 0x20    // 'an this ' \n\t0x62 0x65 0x3F 0x20 0x20 0x57 0x68 0x6F    // 'be?  Who' \n\t0x20 0x69 0x73 0x20 0x74 0x68 0x69 0x73    // ' is this' \n\t0x20 0x6C 0x6F 0x6F 0x6B 0x2D 0x61 0x6C    // ' look-al' \n\t0x69 0x6B 0x65 0x20 0x61 0x6E 0x64 0x20    // 'ike and ' \n\t0x77 0x68 0x6F 0x20 0x63 0x6F 0x6F 0x6B    // 'who cook' \n\t0x65 0x64 0x20 0x75 0x70 0x20 0x74 0x68    // 'ed up th' \n\t0x69 0x73 0x20 0x73 0x69 0x6E 0x69 0x73    // 'is sinis' \n\t0x74 0x65 0x72 0x20 0x70 0x6C 0x6F 0x74    // 'ter plot' \n\t0x3F 0x0D 0x0A 0x0D 0x0A                   // '?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2D= ktipbio4\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"ktipbio4\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"ktipbio4\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio4\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_29=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_29=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3F 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x3F 0x01 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xF5 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_29=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x03 0x03 0x45 0x78 0x70 0x6C 0x6F 0x72    // '??Explor' \n\t0x65 0x72 0x0D 0x0A 0x41 0x6C 0x65 0x78    // 'er??Alex' \n\t0x61 0x6E 0x64 0x65 0x72 0x20 0x61 0x6C    // 'ander al' \n\t0x73 0x6F 0x20 0x77 0x61 0x6E 0x74 0x73    // 'so wants' \n\t0x20 0x74 0x6F 0x20 0x70 0x6C 0x61 0x79    // ' to play' \n\t0x20 0x61 0x6E 0x20 0x65 0x78 0x70 0x6C    // ' an expl' \n\t0x6F 0x72 0x65 0x72 0x20 0x73 0x65 0x61    // 'orer sea' \n\t0x72 0x63 0x68 0x69 0x6E 0x67 0x20 0x66    // 'rching f' \n\t0x6F 0x72 0x20 0x61 0x20 0x63 0x61 0x74    // 'or a cat' \n\t0x20 0x77 0x68 0x69 0x63 0x68 0x2C 0x20    // ' which, ' \n\t0x6C 0x65 0x67 0x65 0x6E 0x64 0x20 0x68    // 'legend h' \n\t0x61 0x73 0x20 0x69 0x74 0x2C 0x20 0x63    // 'as it, c' \n\t0x61 0x6E 0x20 0x74 0x65 0x6C 0x6C 0x20    // 'an tell ' \n\t0x74 0x68 0x65 0x20 0x66 0x75 0x74 0x75    // 'the futu' \n\t0x72 0x65 0x21 0x20 0x20 0x41 0x6C 0x65    // 're!  Ale' \n\t0x78 0x61 0x6E 0x64 0x65 0x72 0x20 0x74    // 'xander t' \n\t0x68 0x69 0x6E 0x6B 0x73 0x20 0x74 0x68    // 'hinks th' \n\t0x61 0x74 0x20 0x68 0x65 0x20 0x68 0x61    // 'at he ha' \n\t0x73 0x20 0x66 0x6F 0x75 0x6E 0x64 0x20    // 's found ' \n\t0x74 0x68 0x65 0x20 0x76 0x69 0x6C 0x6C    // 'the vill' \n\t0x61 0x67 0x65 0x20 0x77 0x68 0x65 0x72    // 'age wher' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x63 0x61    // 'e the ca' \n\t0x74 0x20 0x77 0x61 0x73 0x20 0x6C 0x61    // 't was la' \n\t0x73 0x74 0x20 0x73 0x70 0x6F 0x74 0x74    // 'st spott' \n\t0x65 0x64 0x2C 0x20 0x62 0x75 0x74 0x20    // 'ed, but ' \n\t0x68 0x69 0x73 0x20 0x72 0x69 0x76 0x61    // 'his riva' \n\t0x6C 0x20 0x65 0x78 0x70 0x6C 0x6F 0x72    // 'l explor' \n\t0x65 0x72 0x20 0x69 0x73 0x20 0x61 0x6C    // 'er is al' \n\t0x73 0x6F 0x20 0x68 0x6F 0x74 0x20 0x6F    // 'so hot o' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x74 0x72    // 'n the tr' \n\t0x61 0x69 0x6C 0x2E 0x20 0x0D 0x0A 0x44    // 'ail. ??D' \n\t0x6F 0x65 0x73 0x20 0x73 0x75 0x63 0x68    // 'oes such' \n\t0x20 0x61 0x20 0x63 0x61 0x74 0x20 0x61    // ' a cat a' \n\t0x63 0x74 0x75 0x61 0x6C 0x6C 0x79 0x20    // 'ctually ' \n\t0x65 0x78 0x69 0x73 0x74 0x20 0x61 0x6E    // 'exist an' \n\t0x64 0x20 0x77 0x69 0x6C 0x6C 0x20 0x41    // 'd will A' \n\t0x6C 0x65 0x78 0x61 0x6E 0x64 0x65 0x72    // 'lexander' \n\t0x20 0x62 0x65 0x20 0x74 0x68 0x65 0x20    // ' be the ' \n\t0x66 0x69 0x72 0x73 0x74 0x20 0x74 0x6F    // 'first to' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x69 0x74    // ' find it' \n\t0x3F                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2E= ktipbio5\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"ktipbio5\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"ktipbio5\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_23=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio5\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_23=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_23=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE1 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xE1 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x37 0x01 0x00 0x82    // '????7??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_23=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x03 0x03 0x74 0x65 0x6C 0x65 0x67 0x72    // '??telegr' \n\t0x61 0x6D 0x0D 0x0A 0x4F 0x6B 0x61 0x79    // 'am??Okay' \n\t0x2C 0x20 0x73 0x6F 0x20 0x41 0x75 0x67    // ', so Aug' \n\t0x75 0x73 0x74 0x69 0x6E 0x20 0x72 0x65    // 'ustin re' \n\t0x61 0x6C 0x6C 0x79 0x20 0x77 0x61 0x6E    // 'ally wan' \n\t0x74 0x65 0x64 0x20 0x74 0x6F 0x20 0x62    // 'ted to b' \n\t0x65 0x20 0x61 0x20 0x72 0x6F 0x63 0x6B    // 'e a rock' \n\t0x20 0x73 0x74 0x61 0x72 0x20 0x69 0x6E    // ' star in' \n\t0x20 0x49 0x74 0x61 0x6C 0x79 0x2C 0x20    // ' Italy, ' \n\t0x6F 0x72 0x20 0x62 0x65 0x74 0x74 0x65    // 'or bette' \n\t0x72 0x20 0x79 0x65 0x74 0x2C 0x20 0x61    // 'r yet, a' \n\t0x20 0x62 0x69 0x67 0x67 0x65 0x72 0x2D    // ' bigger-' \n\t0x74 0x68 0x61 0x6E 0x2D 0x6C 0x69 0x66    // 'than-lif' \n\t0x65 0x20 0x73 0x74 0x61 0x72 0x20 0x69    // 'e star i' \n\t0x6E 0x20 0x61 0x20 0x6D 0x75 0x73 0x69    // 'n a musi' \n\t0x63 0x61 0x6C 0x2E 0x20 0x20 0x48 0x65    // 'cal.  He' \n\t0x20 0x74 0x68 0x6F 0x75 0x67 0x68 0x74    // ' thought' \n\t0x20 0x68 0x69 0x73 0x20 0x61 0x67 0x65    // ' his age' \n\t0x20 0x6D 0x69 0x67 0x68 0x74 0x20 0x62    // ' might b' \n\t0x65 0x20 0x61 0x20 0x70 0x72 0x6F 0x62    // 'e a prob' \n\t0x6C 0x65 0x6D 0x2C 0x20 0x74 0x68 0x6F    // 'lem, tho' \n\t0x75 0x67 0x68 0x2E 0x20 0x42 0x75 0x74    // 'ugh. But' \n\t0x20 0x62 0x65 0x63 0x61 0x75 0x73 0x65    // ' because' \n\t0x20 0x68 0x65 0x20 0x63 0x6F 0x75 0x6C    // ' he coul' \n\t0x64 0x20 0x73 0x68 0x72 0x69 0x6E 0x6B    // 'd shrink' \n\t0x2C 0x20 0x65 0x69 0x74 0x68 0x65 0x72    // ', either' \n\t0x20 0x73 0x6C 0x6F 0x77 0x6C 0x79 0x20    // ' slowly ' \n\t0x6F 0x72 0x20 0x71 0x75 0x69 0x63 0x6B    // 'or quick' \n\t0x6C 0x79 0x2C 0x20 0x68 0x65 0x20 0x63    // 'ly, he c' \n\t0x6F 0x75 0x6C 0x64 0x20 0x73 0x6E 0x65    // 'ould sne' \n\t0x61 0x6B 0x20 0x69 0x6E 0x74 0x6F 0x20    // 'ak into ' \n\t0x72 0x65 0x63 0x6F 0x72 0x64 0x69 0x6E    // 'recordin' \n\t0x67 0x20 0x73 0x74 0x75 0x64 0x69 0x6F    // 'g studio' \n\t0x73 0x20 0x61 0x6E 0x64 0x20 0x6C 0x69    // 's and li' \n\t0x73 0x74 0x65 0x6E 0x20 0x74 0x6F 0x20    // 'sten to ' \n\t0x6F 0x74 0x68 0x65 0x72 0x20 0x73 0x69    // 'other si' \n\t0x6E 0x67 0x65 0x72 0x73 0x20 0x66 0x6F    // 'ngers fo' \n\t0x72 0x20 0x69 0x6E 0x73 0x70 0x69 0x72    // 'r inspir' \n\t0x61 0x74 0x69 0x6F 0x6E 0x2E 0x20 0x0D    // 'ation. ?' \n\t0x0A 0x4F 0x6E 0x65 0x20 0x64 0x61 0x79    // '?One day' \n\t0x20 0x68 0x65 0x20 0x73 0x68 0x72 0x75    // ' he shru' \n\t0x6E 0x6B 0x20 0x68 0x69 0x6D 0x73 0x65    // 'nk himse' \n\t0x6C 0x66 0x20 0x76 0x65 0x72 0x79 0x20    // 'lf very ' \n\t0x73 0x6D 0x61 0x6C 0x6C 0x20 0x61 0x6E    // 'small an' \n\t0x64 0x20 0x63 0x72 0x61 0x77 0x6C 0x65    // 'd crawle' \n\t0x64 0x20 0x6F 0x6E 0x74 0x6F 0x20 0x61    // 'd onto a' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x73    // ' movie s' \n\t0x65 0x74 0x2E 0x20 0x20 0x4A 0x75 0x73    // 'et.  Jus' \n\t0x74 0x20 0x61 0x73 0x20 0x68 0x65 0x20    // 't as he ' \n\t0x77 0x61 0x73 0x20 0x67 0x72 0x6F 0x77    // 'was grow' \n\t0x69 0x6E 0x67 0x20 0x62 0x61 0x63 0x6B    // 'ing back' \n\t0x2C 0x20 0x61 0x20 0x64 0x69 0x72 0x65    // ', a dire' \n\t0x63 0x74 0x6F 0x72 0x20 0x73 0x70 0x6F    // 'ctor spo' \n\t0x74 0x74 0x65 0x64 0x20 0x68 0x69 0x6D    // 'tted him' \n\t0x20 0x61 0x6E 0x64 0x20 0x73 0x61 0x69    // ' and sai' \n\t0x64 0x2C 0x20 0x93 0x57 0x65 0x20 0x67    // 'd, We g' \n\t0x6F 0x74 0x74 0x61 0x20 0x68 0x61 0x76    // 'otta hav' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x64 0x6F    // 'e you do' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x69 0x6E    // ' that in' \n\t0x20 0x61 0x20 0x6D 0x6F 0x76 0x69 0x65    // ' a movie' \n\t0x21 0x94 0x20                             // '! ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2F= ktipbio6\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"ktipbio6\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"ktipbio6\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio6\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x71 0x02 0x00 0x01    // '????q???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xDD 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x70 0x65 0x72 0x61 0x20    // '??Opera ' \n\t0x53 0x69 0x6E 0x67 0x65 0x72 0x0D 0x0A    // 'Singer??' \n\t0x53 0x69 0x6E 0x63 0x65 0x20 0x6F 0x70    // 'Since op' \n\t0x65 0x72 0x61 0x20 0x74 0x65 0x6C 0x6C    // 'era tell' \n\t0x73 0x20 0x61 0x20 0x73 0x74 0x6F 0x72    // 's a stor' \n\t0x79 0x2C 0x20 0x61 0x6E 0x64 0x20 0x73    // 'y, and s' \n\t0x69 0x6E 0x63 0x65 0x20 0x41 0x75 0x67    // 'ince Aug' \n\t0x75 0x73 0x74 0x69 0x6E 0x20 0x68 0x61    // 'ustin ha' \n\t0x73 0x20 0x6C 0x6F 0x74 0x73 0x20 0x6F    // 's lots o' \n\t0x66 0x20 0x72 0x65 0x61 0x6C 0x6C 0x79    // 'f really' \n\t0x20 0x6F 0x6C 0x64 0x20 0x73 0x63 0x61    // ' old sca' \n\t0x72 0x79 0x20 0x73 0x74 0x6F 0x72 0x69    // 'ry stori' \n\t0x65 0x73 0x20 0x74 0x6F 0x20 0x74 0x65    // 'es to te' \n\t0x6C 0x6C 0x2C 0x20 0x68 0x65 0x92 0x64    // 'll, hed' \n\t0x20 0x6C 0x6F 0x76 0x65 0x20 0x74 0x6F    // ' love to' \n\t0x20 0x73 0x74 0x61 0x72 0x20 0x61 0x73    // ' star as' \n\t0x20 0x61 0x6E 0x20 0x6F 0x70 0x65 0x72    // ' an oper' \n\t0x61 0x20 0x73 0x69 0x6E 0x67 0x65 0x72    // 'a singer' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x67 0x72    // ' in a gr' \n\t0x61 0x76 0x65 0x79 0x61 0x72 0x64 0x2E    // 'aveyard.' \n\t0x20 0x20 0x48 0x65 0x20 0x63 0x6F 0x75    // '  He cou' \n\t0x6C 0x64 0x20 0x6B 0x6E 0x65 0x65 0x6C    // 'ld kneel' \n\t0x20 0x62 0x65 0x68 0x69 0x6E 0x64 0x20    // ' behind ' \n\t0x61 0x20 0x67 0x72 0x61 0x76 0x65 0x73    // 'a graves' \n\t0x74 0x6F 0x6E 0x65 0x20 0x61 0x6E 0x64    // 'tone and' \n\t0x20 0x73 0x69 0x6E 0x67 0x20 0x61 0x6E    // ' sing an' \n\t0x63 0x69 0x65 0x6E 0x74 0x20 0x6F 0x70    // 'cient op' \n\t0x65 0x72 0x61 0x73 0x20 0x69 0x6E 0x20    // 'eras in ' \n\t0x61 0x20 0x6C 0x6F 0x77 0x2C 0x20 0x63    // 'a low, c' \n\t0x72 0x65 0x65 0x70 0x79 0x20 0x76 0x6F    // 'reepy vo' \n\t0x69 0x63 0x65 0x20 0x61 0x73 0x20 0x6B    // 'ice as k' \n\t0x69 0x64 0x73 0x20 0x77 0x61 0x6C 0x6B    // 'ids walk' \n\t0x65 0x64 0x20 0x74 0x68 0x72 0x6F 0x75    // 'ed throu' \n\t0x67 0x68 0x20 0x74 0x68 0x65 0x20 0x67    // 'gh the g' \n\t0x72 0x61 0x76 0x65 0x79 0x61 0x72 0x64    // 'raveyard' \n\t0x20 0x61 0x74 0x20 0x6E 0x69 0x67 0x68    // ' at nigh' \n\t0x74 0x2E 0x20 0x0D 0x0A 0x42 0x75 0x74    // 't. ??But' \n\t0x20 0x6A 0x75 0x73 0x74 0x20 0x61 0x73    // ' just as' \n\t0x20 0x68 0x65 0x20 0x67 0x65 0x74 0x73    // ' he gets' \n\t0x20 0x73 0x74 0x61 0x72 0x74 0x65 0x64    // ' started' \n\t0x20 0x73 0x69 0x6E 0x67 0x69 0x6E 0x67    // ' singing' \n\t0x2C 0x20 0x68 0x65 0x20 0x68 0x65 0x61    // ', he hea' \n\t0x72 0x73 0x20 0x61 0x20 0x76 0x6F 0x69    // 'rs a voi' \n\t0x63 0x65 0x20 0x73 0x69 0x6E 0x67 0x69    // 'ce singi' \n\t0x6E 0x67 0x20 0x62 0x61 0x63 0x6B 0x2E    // 'ng back.' \n\t0x20 0x20 0x54 0x68 0x65 0x20 0x73 0x6F    // '  The so' \n\t0x6E 0x67 0x20 0x73 0x65 0x65 0x6D 0x73    // 'ng seems' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x61 0x20    // ' from a ' \n\t0x6E 0x65 0x61 0x72 0x62 0x79 0x20 0x67    // 'nearby g' \n\t0x72 0x61 0x76 0x65 0x2E 0x20 0x20 0x48    // 'rave.  H' \n\t0x65 0x20 0x73 0x69 0x6E 0x67 0x73 0x20    // 'e sings ' \n\t0x61 0x6E 0x6F 0x74 0x68 0x65 0x72 0x20    // 'another ' \n\t0x76 0x65 0x72 0x73 0x65 0x2C 0x20 0x61    // 'verse, a' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x20 0x76    // 'nd the v' \n\t0x6F 0x69 0x63 0x65 0x20 0x73 0x69 0x6E    // 'oice sin' \n\t0x67 0x73 0x20 0x62 0x61 0x63 0x6B 0x20    // 'gs back ' \n\t0x77 0x69 0x74 0x68 0x20 0x74 0x68 0x65    // 'with the' \n\t0x20 0x6E 0x65 0x78 0x74 0x20 0x76 0x65    // ' next ve' \n\t0x72 0x73 0x65 0x2E 0x20 0x0D 0x0A 0x49    // 'rse. ??I' \n\t0x73 0x20 0x74 0x68 0x65 0x72 0x65 0x20    // 's there ' \n\t0x61 0x6E 0x6F 0x74 0x68 0x65 0x72 0x20    // 'another ' \n\t0x61 0x6E 0x63 0x69 0x65 0x6E 0x74 0x20    // 'ancient ' \n\t0x70 0x65 0x72 0x73 0x6F 0x6E 0x20 0x74    // 'person t' \n\t0x72 0x61 0x70 0x70 0x65 0x64 0x20 0x69    // 'rapped i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x67 0x72    // 'n the gr' \n\t0x61 0x76 0x65 0x79 0x61 0x72 0x64 0x3F    // 'aveyard?' \n\t0x20 0x57 0x68 0x6F 0x20 0x63 0x6F 0x75    // ' Who cou' \n\t0x6C 0x64 0x20 0x69 0x74 0x20 0x62 0x65    // 'ld it be' \n\t0x3F 0x20 0x49 0x66 0x20 0x41 0x75 0x67    // '? If Aug' \n\t0x75 0x73 0x74 0x69 0x6E 0x20 0x73 0x68    // 'ustin sh' \n\t0x72 0x69 0x6E 0x6B 0x73 0x20 0x74 0x6F    // 'rinks to' \n\t0x20 0x61 0x20 0x74 0x69 0x6E 0x79 0x20    // ' a tiny ' \n\t0x73 0x69 0x7A 0x65 0x2C 0x20 0x63 0x61    // 'size, ca' \n\t0x6E 0x20 0x68 0x65 0x20 0x66 0x69 0x6E    // 'n he fin' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x76 0x6F    // 'd the vo' \n\t0x69 0x63 0x65 0x20 0x61 0x6E 0x64 0x20    // 'ice and ' \n\t0x72 0x65 0x6C 0x65 0x61 0x73 0x65 0x20    // 'release ' \n\t0x69 0x74 0x3F                             // 'it?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_30= ktipbio7\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"ktipbio7\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"ktipbio7\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_34=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio7\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_34=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x14 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_34=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x03 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7F 0x02 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_34=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x70 0x0D 0x0A 0x41    // '??Cop??A' \n\t0x75 0x67 0x75 0x73 0x74 0x69 0x6E 0x20    // 'ugustin ' \n\t0x73 0x65 0x65 0x73 0x20 0x68 0x69 0x6D    // 'sees him' \n\t0x73 0x65 0x6C 0x66 0x20 0x70 0x6C 0x61    // 'self pla' \n\t0x79 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ying the' \n\t0x20 0x53 0x75 0x70 0x65 0x72 0x20 0x53    // ' Super S' \n\t0x68 0x72 0x69 0x6E 0x6B 0x69 0x6E 0x67    // 'hrinking' \n\t0x20 0x43 0x6F 0x70 0x97 0x61 0x20 0x63    // ' Copa c' \n\t0x6F 0x70 0x20 0x77 0x68 0x6F 0x20 0x63    // 'op who c' \n\t0x61 0x6E 0x20 0x73 0x68 0x72 0x69 0x6E    // 'an shrin' \n\t0x6B 0x20 0x73 0x6F 0x20 0x73 0x6D 0x61    // 'k so sma' \n\t0x6C 0x6C 0x20 0x74 0x68 0x61 0x74 0x20    // 'll that ' \n\t0x68 0x65 0x20 0x63 0x61 0x6E 0x20 0x73    // 'he can s' \n\t0x6E 0x65 0x61 0x6B 0x20 0x61 0x72 0x6F    // 'neak aro' \n\t0x75 0x6E 0x64 0x20 0x61 0x6E 0x79 0x77    // 'und anyw' \n\t0x68 0x65 0x72 0x65 0x2C 0x20 0x65 0x76    // 'here, ev' \n\t0x65 0x6E 0x20 0x68 0x69 0x64 0x65 0x20    // 'en hide ' \n\t0x6F 0x6E 0x20 0x74 0x68 0x65 0x20 0x73    // 'on the s' \n\t0x68 0x6F 0x75 0x6C 0x64 0x65 0x72 0x73    // 'houlders' \n\t0x20 0x6F 0x66 0x20 0x63 0x72 0x69 0x6D    // ' of crim' \n\t0x69 0x6E 0x61 0x6C 0x73 0x20 0x74 0x6F    // 'inals to' \n\t0x20 0x6F 0x76 0x65 0x72 0x68 0x65 0x61    // ' overhea' \n\t0x72 0x20 0x74 0x68 0x65 0x69 0x72 0x20    // 'r their ' \n\t0x70 0x6C 0x61 0x6E 0x73 0x2E 0x20 0x20    // 'plans.  ' \n\t0x57 0x68 0x65 0x6E 0x20 0x41 0x75 0x67    // 'When Aug' \n\t0x75 0x73 0x74 0x69 0x6E 0x20 0x67 0x65    // 'ustin ge' \n\t0x74 0x73 0x20 0x74 0x68 0x65 0x20 0x64    // 'ts the d' \n\t0x65 0x74 0x61 0x69 0x6C 0x73 0x20 0x6F    // 'etails o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x70 0x6C    // 'f the pl' \n\t0x61 0x6E 0x97 0x70 0x6F 0x6F 0x66 0x21    // 'anpoof!' \n\t0x97 0x68 0x65 0x20 0x67 0x72 0x6F 0x77    // 'he grow' \n\t0x73 0x20 0x71 0x75 0x69 0x63 0x6B 0x6C    // 's quickl' \n\t0x79 0x20 0x74 0x6F 0x20 0x6E 0x6F 0x72    // 'y to nor' \n\t0x6D 0x61 0x6C 0x20 0x73 0x69 0x7A 0x65    // 'mal size' \n\t0x20 0x61 0x6E 0x64 0x20 0x73 0x74 0x6F    // ' and sto' \n\t0x70 0x73 0x20 0x74 0x68 0x65 0x20 0x63    // 'ps the c' \n\t0x72 0x69 0x6D 0x69 0x6E 0x61 0x6C 0x73    // 'riminals' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x69    // ' in thei' \n\t0x72 0x20 0x74 0x72 0x61 0x63 0x6B 0x73    // 'r tracks' \n\t0x2E 0x20 0x0D 0x0A 0x42 0x75 0x74 0x20    // '. ??But ' \n\t0x6F 0x6E 0x65 0x20 0x64 0x61 0x79 0x2C    // 'one day,' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x41 0x75    // ' when Au' \n\t0x67 0x75 0x73 0x74 0x69 0x6E 0x20 0x69    // 'gustin i' \n\t0x73 0x20 0x68 0x61 0x6E 0x67 0x69 0x6E    // 's hangin' \n\t0x67 0x20 0x6F 0x75 0x74 0x20 0x73 0x70    // 'g out sp' \n\t0x79 0x69 0x6E 0x67 0x20 0x6F 0x6E 0x20    // 'ying on ' \n\t0x63 0x72 0x69 0x6D 0x69 0x6E 0x61 0x6C    // 'criminal' \n\t0x73 0x2C 0x20 0x68 0x65 0x20 0x73 0x74    // 's, he st' \n\t0x61 0x72 0x74 0x73 0x20 0x6C 0x61 0x75    // 'arts lau' \n\t0x67 0x68 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'ghing an' \n\t0x64 0x20 0x63 0x61 0x6E 0x92 0x74 0x20    // 'd cant ' \n\t0x73 0x74 0x6F 0x70 0x2E 0x20 0x20 0x48    // 'stop.  H' \n\t0x69 0x73 0x20 0x76 0x6F 0x69 0x63 0x65    // 'is voice' \n\t0x20 0x69 0x73 0x20 0x73 0x6D 0x61 0x6C    // ' is smal' \n\t0x6C 0x2C 0x20 0x62 0x75 0x74 0x20 0x74    // 'l, but t' \n\t0x68 0x65 0x20 0x63 0x72 0x69 0x6D 0x69    // 'he crimi' \n\t0x6E 0x61 0x6C 0x73 0x20 0x68 0x65 0x61    // 'nals hea' \n\t0x72 0x20 0x69 0x74 0x20 0x61 0x6E 0x64    // 'r it and' \n\t0x20 0x73 0x74 0x61 0x72 0x74 0x20 0x6C    // ' start l' \n\t0x6F 0x6F 0x6B 0x69 0x6E 0x67 0x20 0x66    // 'ooking f' \n\t0x6F 0x72 0x20 0x74 0x68 0x65 0x20 0x73    // 'or the s' \n\t0x6F 0x75 0x6E 0x64 0x2E 0x20 0x20 0x41    // 'ound.  A' \n\t0x75 0x67 0x75 0x73 0x74 0x69 0x6E 0x20    // 'ugustin ' \n\t0x66 0x61 0x6C 0x6C 0x73 0x20 0x66 0x72    // 'falls fr' \n\t0x6F 0x6D 0x20 0x68 0x69 0x73 0x20 0x68    // 'om his h' \n\t0x69 0x64 0x69 0x6E 0x67 0x20 0x70 0x6C    // 'iding pl' \n\t0x61 0x63 0x65 0x20 0x6F 0x6E 0x74 0x6F    // 'ace onto' \n\t0x20 0x74 0x68 0x65 0x20 0x66 0x6C 0x6F    // ' the flo' \n\t0x6F 0x72 0x2E 0x20 0x20 0x41 0x20 0x63    // 'or.  A c' \n\t0x72 0x69 0x6D 0x69 0x6E 0x61 0x6C 0x20    // 'riminal ' \n\t0x77 0x69 0x74 0x68 0x20 0x68 0x75 0x67    // 'with hug' \n\t0x65 0x20 0x66 0x65 0x65 0x74 0x20 0x77    // 'e feet w' \n\t0x61 0x6C 0x6B 0x73 0x20 0x73 0x6C 0x6F    // 'alks slo' \n\t0x77 0x6C 0x79 0x20 0x74 0x6F 0x77 0x61    // 'wly towa' \n\t0x72 0x64 0x20 0x41 0x75 0x67 0x75 0x73    // 'rd Augus' \n\t0x74 0x69 0x6E 0x2C 0x20 0x61 0x6E 0x64    // 'tin, and' \n\t0x20 0x69 0x73 0x20 0x6A 0x75 0x73 0x74    // ' is just' \n\t0x20 0x61 0x62 0x6F 0x75 0x74 0x20 0x74    // ' about t' \n\t0x6F 0x20 0x73 0x74 0x65 0x70 0x20 0x6F    // 'o step o' \n\t0x6E 0x20 0x68 0x69 0x6D 0x2E 0x20 0x0D    // 'n him. ?' \n\t0x0A 0x48 0x6F 0x77 0x20 0x77 0x69 0x6C    // '?How wil' \n\t0x6C 0x20 0x41 0x75 0x67 0x75 0x73 0x74    // 'l August' \n\t0x69 0x6E 0x20 0x67 0x65 0x74 0x20 0x6F    // 'in get o' \n\t0x75 0x74 0x20 0x6F 0x66 0x20 0x74 0x68    // 'ut of th' \n\t0x69 0x73 0x20 0x66 0x69 0x78 0x20 0x77    // 'is fix w' \n\t0x69 0x74 0x68 0x6F 0x75 0x74 0x20 0x62    // 'ithout b' \n\t0x65 0x69 0x6E 0x67 0x20 0x66 0x6F 0x75    // 'eing fou' \n\t0x6E 0x64 0x20 0x6F 0x75 0x74 0x3F 0x20    // 'nd out? ' \n\t0x20 0x49 0x66 0x20 0x68 0x65 0x20 0x73    // ' If he s' \n\t0x75 0x64 0x64 0x65 0x6E 0x6C 0x79 0x20    // 'uddenly ' \n\t0x67 0x72 0x6F 0x77 0x73 0x20 0x62 0x61    // 'grows ba' \n\t0x63 0x6B 0x20 0x74 0x6F 0x20 0x6E 0x6F    // 'ck to no' \n\t0x72 0x6D 0x61 0x6C 0x20 0x73 0x69 0x7A    // 'rmal siz' \n\t0x65 0x2C 0x20 0x68 0x65 0x92 0x6C 0x6C    // 'e, hell' \n\t0x20 0x62 0x6C 0x6F 0x77 0x20 0x68 0x69    // ' blow hi' \n\t0x73 0x20 0x64 0x69 0x73 0x67 0x75 0x69    // 's disgui' \n\t0x73 0x65 0x2E 0x20 0x57 0x68 0x61 0x74    // 'se. What' \n\t0x20 0x57 0x49 0x4C 0x4C 0x20 0x68 0x65    // ' WILL he' \n\t0x20 0x64 0x6F 0x3F                        // ' do?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_31= ktipbio8\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"ktipbio8\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"ktipbio8\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_82=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio8\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_82=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_82=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_82, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x02 0x00 0x01    // '????(???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x92 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_82=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_82, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x6F 0x6D 0x65 0x20 0x53    // '??Home S' \n\t0x61 0x66 0x65 0x74 0x79 0x20 0x49 0x6E    // 'afety In' \n\t0x73 0x70 0x65 0x63 0x74 0x6F 0x72 0x0D    // 'spector?' \n\t0x0A 0x41 0x75 0x67 0x75 0x73 0x74 0x69    // '?Augusti' \n\t0x6E 0x20 0x64 0x72 0x65 0x61 0x6D 0x73    // 'n dreams' \n\t0x20 0x6F 0x66 0x20 0x61 0x20 0x72 0x6F    // ' of a ro' \n\t0x6C 0x65 0x20 0x69 0x6E 0x20 0x77 0x68    // 'le in wh' \n\t0x69 0x63 0x68 0x20 0x68 0x65 0x20 0x69    // 'ich he i' \n\t0x73 0x20 0x64 0x69 0x73 0x67 0x75 0x69    // 's disgui' \n\t0x73 0x65 0x64 0x20 0x61 0x73 0x20 0x73    // 'sed as s' \n\t0x6F 0x6D 0x65 0x6F 0x6E 0x65 0x20 0x77    // 'omeone w' \n\t0x68 0x6F 0x20 0x69 0x6E 0x73 0x70 0x65    // 'ho inspe' \n\t0x63 0x74 0x73 0x20 0x68 0x6F 0x6D 0x65    // 'cts home' \n\t0x73 0x20 0x66 0x6F 0x72 0x20 0x73 0x61    // 's for sa' \n\t0x66 0x65 0x74 0x79 0x20 0x76 0x69 0x6F    // 'fety vio' \n\t0x6C 0x61 0x74 0x69 0x6F 0x6E 0x73 0x2E    // 'lations.' \n\t0x20 0x20 0x48 0x65 0x27 0x64 0x20 0x67    // '  He'd g' \n\t0x65 0x74 0x20 0x74 0x6F 0x20 0x69 0x6E    // 'et to in' \n\t0x73 0x70 0x65 0x63 0x74 0x20 0x61 0x6C    // 'spect al' \n\t0x6C 0x20 0x6B 0x69 0x6E 0x64 0x73 0x20    // 'l kinds ' \n\t0x6F 0x66 0x20 0x70 0x6C 0x61 0x63 0x65    // 'of place' \n\t0x73 0x2C 0x20 0x66 0x72 0x6F 0x6D 0x20    // 's, from ' \n\t0x73 0x6D 0x61 0x6C 0x6C 0x20 0x68 0x75    // 'small hu' \n\t0x74 0x73 0x20 0x74 0x6F 0x20 0x62 0x69    // 'ts to bi' \n\t0x67 0x2C 0x20 0x63 0x72 0x65 0x65 0x70    // 'g, creep' \n\t0x79 0x20 0x68 0x6F 0x75 0x73 0x65 0x73    // 'y houses' \n\t0x2E 0x20 0x20 0x42 0x75 0x74 0x20 0x68    // '.  But h' \n\t0x69 0x73 0x20 0x72 0x6F 0x6C 0x65 0x20    // 'is role ' \n\t0x61 0x73 0x20 0x69 0x6E 0x73 0x70 0x65    // 'as inspe' \n\t0x63 0x74 0x6F 0x72 0x20 0x70 0x72 0x6F    // 'ctor pro' \n\t0x76 0x69 0x64 0x65 0x73 0x20 0x68 0x69    // 'vides hi' \n\t0x6D 0x20 0x77 0x69 0x74 0x68 0x20 0x61    // 'm with a' \n\t0x20 0x64 0x69 0x73 0x67 0x75 0x69 0x73    // ' disguis' \n\t0x65 0x20 0x66 0x6F 0x72 0x20 0x68 0x69    // 'e for hi' \n\t0x73 0x20 0x72 0x65 0x61 0x6C 0x20 0x6D    // 's real m' \n\t0x69 0x73 0x73 0x69 0x6F 0x6E 0x2C 0x20    // 'ission, ' \n\t0x74 0x6F 0x20 0x66 0x69 0x6E 0x64 0x20    // 'to find ' \n\t0x61 0x20 0x6C 0x6F 0x73 0x74 0x20 0x63    // 'a lost c' \n\t0x61 0x74 0x2E 0x20 0x20 0x4E 0x6F 0x74    // 'at.  Not' \n\t0x20 0x6A 0x75 0x73 0x74 0x20 0x61 0x6E    // ' just an' \n\t0x79 0x20 0x6C 0x6F 0x73 0x74 0x20 0x63    // 'y lost c' \n\t0x61 0x74 0x2C 0x20 0x62 0x75 0x74 0x20    // 'at, but ' \n\t0x74 0x68 0x65 0x20 0x72 0x69 0x63 0x68    // 'the rich' \n\t0x20 0x63 0x61 0x74 0x20 0x77 0x68 0x6F    // ' cat who' \n\t0x20 0x73 0x74 0x61 0x72 0x74 0x65 0x64    // ' started' \n\t0x20 0x61 0x20 0x66 0x61 0x6D 0x6F 0x75    // ' a famou' \n\t0x73 0x20 0x63 0x68 0x61 0x69 0x6E 0x20    // 's chain ' \n\t0x6F 0x66 0x20 0x6B 0x69 0x74 0x74 0x79    // 'of kitty' \n\t0x20 0x66 0x61 0x73 0x74 0x20 0x66 0x6F    // ' fast fo' \n\t0x6F 0x64 0x20 0x63 0x61 0x66 0xE9 0x73    // 'od cafs' \n\t0x2E 0x20 0x0D 0x0A 0x48 0x6F 0x77 0x20    // '. ??How ' \n\t0x77 0x69 0x6C 0x6C 0x20 0x41 0x75 0x67    // 'will Aug' \n\t0x75 0x73 0x74 0x69 0x6E 0x20 0x66 0x69    // 'ustin fi' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x20 0x6C    // 'nd the l' \n\t0x6F 0x73 0x74 0x20 0x63 0x61 0x74 0x3F    // 'ost cat?' \n\t0x20 0x20 0x41 0x6E 0x64 0x20 0x77 0x69    // '  And wi' \n\t0x6C 0x6C 0x20 0x69 0x6E 0x73 0x70 0x65    // 'll inspe' \n\t0x63 0x74 0x69 0x6E 0x67 0x20 0x68 0x6F    // 'cting ho' \n\t0x6D 0x65 0x73 0x20 0x67 0x69 0x76 0x65    // 'mes give' \n\t0x20 0x41 0x75 0x67 0x75 0x73 0x74 0x69    // ' Augusti' \n\t0x6E 0x20 0x61 0x20 0x63 0x68 0x61 0x6E    // 'n a chan' \n\t0x63 0x65 0x20 0x74 0x6F 0x20 0x66 0x75    // 'ce to fu' \n\t0x6C 0x66 0x69 0x6C 0x6C 0x20 0x61 0x6E    // 'lfill an' \n\t0x6F 0x74 0x68 0x65 0x72 0x20 0x64 0x72    // 'other dr' \n\t0x65 0x61 0x6D 0x97 0x68 0x69 0x73 0x20    // 'eamhis ' \n\t0x64 0x65 0x73 0x69 0x72 0x65 0x20 0x74    // 'desire t' \n\t0x6F 0x20 0x62 0x65 0x20 0x61 0x6E 0x20    // 'o be an ' \n\t0x69 0x6E 0x74 0x65 0x72 0x69 0x6F 0x72    // 'interior' \n\t0x20 0x64 0x65 0x73 0x69 0x67 0x6E 0x65    // ' designe' \n\t0x72 0x3F                                  // 'r?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_32= ktipbio9\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"ktipbio9\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"ktipbio9\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_31=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio9\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_31=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_31=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3E 0x02 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x9E 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_31=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x03 0x03 0x63 0x6F 0x6D 0x65 0x64 0x79    // '??comedy' \n\t0x0D 0x0A 0x42 0x65 0x6C 0x6C 0x61 0x27    // '??Bella'' \n\t0x73 0x20 0x61 0x63 0x74 0x20 0x69 0x73    // 's act is' \n\t0x20 0x61 0x74 0x20 0x61 0x20 0x4D 0x65    // ' at a Me' \n\t0x78 0x69 0x63 0x61 0x6E 0x20 0x72 0x65    // 'xican re' \n\t0x73 0x74 0x61 0x75 0x72 0x61 0x6E 0x74    // 'staurant' \n\t0x20 0x62 0x65 0x63 0x61 0x75 0x73 0x65    // ' because' \n\t0x20 0x6E 0x6F 0x20 0x6F 0x6E 0x65 0x20    // ' no one ' \n\t0x65 0x6C 0x73 0x65 0x20 0x77 0x6F 0x75    // 'else wou' \n\t0x6C 0x64 0x20 0x68 0x69 0x72 0x65 0x20    // 'ld hire ' \n\t0x61 0x20 0x74 0x65 0x61 0x63 0x68 0x65    // 'a teache' \n\t0x72 0x20 0x77 0x68 0x6F 0x20 0x74 0x68    // 'r who th' \n\t0x6F 0x75 0x67 0x68 0x74 0x20 0x73 0x68    // 'ought sh' \n\t0x65 0x20 0x77 0x61 0x73 0x20 0x61 0x6C    // 'e was al' \n\t0x73 0x6F 0x20 0x61 0x20 0x63 0x6F 0x6D    // 'so a com' \n\t0x65 0x64 0x69 0x61 0x6E 0x2E 0x20 0x20    // 'edian.  ' \n\t0x41 0x74 0x20 0x66 0x69 0x72 0x73 0x74    // 'At first' \n\t0x20 0x73 0x68 0x65 0x20 0x77 0x61 0x73    // ' she was' \n\t0x20 0x73 0x63 0x61 0x72 0x65 0x64 0x20    // ' scared ' \n\t0x6F 0x6E 0x20 0x73 0x74 0x61 0x67 0x65    // 'on stage' \n\t0x2E 0x20 0x20 0x54 0x68 0x65 0x6E 0x20    // '.  Then ' \n\t0x73 0x68 0x65 0x20 0x66 0x69 0x67 0x75    // 'she figu' \n\t0x72 0x65 0x64 0x20 0x73 0x68 0x65 0x20    // 'red she ' \n\t0x68 0x61 0x64 0x20 0x6E 0x6F 0x74 0x68    // 'had noth' \n\t0x69 0x6E 0x67 0x20 0x74 0x6F 0x20 0x6C    // 'ing to l' \n\t0x6F 0x73 0x65 0x20 0x61 0x6E 0x64 0x20    // 'ose and ' \n\t0x72 0x65 0x61 0x6C 0x6C 0x79 0x20 0x63    // 'really c' \n\t0x75 0x74 0x20 0x6C 0x6F 0x6F 0x73 0x65    // 'ut loose' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x74 0x68    // ' with th' \n\t0x65 0x20 0x6A 0x6F 0x6B 0x65 0x73 0x2E    // 'e jokes.' \n\t0x20 0x20 0x53 0x68 0x65 0x20 0x73 0x61    // '  She sa' \n\t0x69 0x64 0x20 0x61 0x6C 0x6C 0x20 0x74    // 'id all t' \n\t0x68 0x65 0x20 0x74 0x68 0x69 0x6E 0x67    // 'he thing' \n\t0x73 0x20 0x73 0x68 0x65 0x92 0x64 0x20    // 's shed ' \n\t0x6E 0x65 0x76 0x65 0x72 0x20 0x73 0x61    // 'never sa' \n\t0x69 0x64 0x20 0x62 0x65 0x66 0x6F 0x72    // 'id befor' \n\t0x65 0x2C 0x20 0x61 0x6E 0x64 0x20 0x69    // 'e, and i' \n\t0x6E 0x20 0x61 0x20 0x66 0x75 0x6E 0x6E    // 'n a funn' \n\t0x79 0x20 0x77 0x61 0x79 0x2E 0x20 0x20    // 'y way.  ' \n\t0x41 0x74 0x20 0x74 0x68 0x65 0x20 0x65    // 'At the e' \n\t0x6E 0x64 0x20 0x6F 0x66 0x20 0x68 0x65    // 'nd of he' \n\t0x72 0x20 0x61 0x63 0x74 0x2C 0x20 0x42    // 'r act, B' \n\t0x65 0x6C 0x6C 0x61 0x20 0x6C 0x61 0x75    // 'ella lau' \n\t0x67 0x68 0x73 0x20 0x62 0x6F 0x6C 0x64    // 'ghs bold' \n\t0x6C 0x79 0x20 0x61 0x6E 0x64 0x20 0x73    // 'ly and s' \n\t0x61 0x79 0x73 0x2C 0x20 0x93 0x54 0x68    // 'ays, Th' \n\t0x61 0x6E 0x6B 0x20 0x79 0x6F 0x75 0x20    // 'ank you ' \n\t0x61 0x6C 0x6C 0x20 0x76 0x65 0x72 0x79    // 'all very' \n\t0x2C 0x20 0x76 0x65 0x72 0x79 0x20 0x6D    // ', very m' \n\t0x75 0x63 0x68 0x21 0x22 0x20 0x50 0x65    // 'uch!\" Pe' \n\t0x6F 0x70 0x6C 0x65 0x20 0x6C 0x6F 0x76    // 'ople lov' \n\t0x65 0x20 0x68 0x65 0x72 0x2E 0x0D 0x0A    // 'e her.??' \n\t0x4D 0x65 0x6C 0x61 0x6E 0x69 0x65 0x2C    // 'Melanie,' \n\t0x20 0x6F 0x6E 0x65 0x20 0x6F 0x66 0x20    // ' one of ' \n\t0x4D 0x63 0x5A 0x65 0x65 0x92 0x73 0x20    // 'McZees ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x64 0x69    // 'movie di' \n\t0x72 0x65 0x63 0x74 0x6F 0x72 0x73 0x2C    // 'rectors,' \n\t0x20 0x73 0x61 0x77 0x20 0x68 0x65 0x72    // ' saw her' \n\t0x20 0x61 0x63 0x74 0x20 0x61 0x6E 0x64    // ' act and' \n\t0x20 0x61 0x73 0x6B 0x65 0x64 0x20 0x42    // ' asked B' \n\t0x65 0x6C 0x6C 0x61 0x20 0x74 0x6F 0x20    // 'ella to ' \n\t0x73 0x74 0x61 0x72 0x20 0x69 0x6E 0x20    // 'star in ' \n\t0x61 0x20 0x4D 0x63 0x5A 0x65 0x65 0x20    // 'a McZee ' \n\t0x63 0x6F 0x6D 0x65 0x64 0x79 0x2E 0x20    // 'comedy. ' \n\t0x4E 0x6F 0x77 0x20 0x42 0x65 0x6C 0x6C    // 'Now Bell' \n\t0x61 0x20 0x77 0x69 0x6C 0x6C 0x20 0x68    // 'a will h' \n\t0x61 0x76 0x65 0x20 0x74 0x6F 0x20 0x74    // 'ave to t' \n\t0x65 0x6C 0x6C 0x20 0x68 0x65 0x72 0x20    // 'ell her ' \n\t0x70 0x61 0x72 0x65 0x6E 0x74 0x73 0x20    // 'parents ' \n\t0x61 0x62 0x6F 0x75 0x74 0x20 0x68 0x65    // 'about he' \n\t0x72 0x20 0x73 0x65 0x63 0x72 0x65 0x74    // 'r secret' \n\t0x20 0x63 0x61 0x72 0x65 0x65 0x72 0x2E    // ' career.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_33= ktipbio10\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"ktipbio10\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"ktipbio10\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio10\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6D 0x01 0x00 0x82    // '????m??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x64 0x61 0x6D 0x65    // '??Madame' \n\t0x20 0x53 0x70 0x6F 0x6F 0x6B 0x79 0x0D    // ' Spooky?' \n\t0x0A 0x57 0x69 0x74 0x68 0x20 0x68 0x65    // '?With he' \n\t0x72 0x20 0x77 0x69 0x74 0x63 0x68 0x20    // 'r witch ' \n\t0x6C 0x61 0x75 0x67 0x68 0x2C 0x20 0x42    // 'laugh, B' \n\t0x65 0x6C 0x6C 0x61 0x20 0x77 0x6F 0x75    // 'ella wou' \n\t0x6C 0x64 0x20 0x6D 0x61 0x6B 0x65 0x20    // 'ld make ' \n\t0x61 0x20 0x66 0x69 0x6E 0x65 0x20 0x68    // 'a fine h' \n\t0x6F 0x73 0x74 0x65 0x73 0x73 0x20 0x69    // 'ostess i' \n\t0x6E 0x20 0x61 0x20 0x73 0x63 0x61 0x72    // 'n a scar' \n\t0x79 0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E    // 'y movie.' \n\t0x20 0x20 0x53 0x68 0x65 0x20 0x63 0x61    // '  She ca' \n\t0x6E 0x20 0x73 0x65 0x65 0x20 0x69 0x74    // 'n see it' \n\t0x20 0x61 0x6C 0x6C 0x20 0x6E 0x6F 0x77    // ' all now' \n\t0x97 0x73 0x68 0x65 0x20 0x77 0x6F 0x75    // 'she wou' \n\t0x6C 0x64 0x20 0x68 0x61 0x76 0x65 0x20    // 'ld have ' \n\t0x66 0x61 0x6E 0x67 0x73 0x20 0x61 0x6E    // 'fangs an' \n\t0x64 0x20 0x67 0x72 0x65 0x65 0x74 0x20    // 'd greet ' \n\t0x65 0x61 0x63 0x68 0x20 0x6B 0x69 0x64    // 'each kid' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x64 0x6F 0x6F 0x72 0x20 0x77 0x69 0x74    // 'door wit' \n\t0x68 0x20 0x68 0x65 0x72 0x20 0x73 0x70    // 'h her sp' \n\t0x6F 0x6F 0x6B 0x79 0x20 0x6C 0x61 0x75    // 'ooky lau' \n\t0x67 0x68 0x2E 0x20 0x20 0x54 0x65 0x6C    // 'gh.  Tel' \n\t0x6C 0x69 0x6E 0x67 0x20 0x61 0x77 0x66    // 'ling awf' \n\t0x75 0x6C 0x20 0x6A 0x6F 0x6B 0x65 0x73    // 'ul jokes' \n\t0x2C 0x20 0x73 0x68 0x65 0x20 0x77 0x6F    // ', she wo' \n\t0x75 0x6C 0x64 0x20 0x6C 0x65 0x61 0x64    // 'uld lead' \n\t0x20 0x74 0x68 0x65 0x20 0x6B 0x69 0x64    // ' the kid' \n\t0x73 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 's to the' \n\t0x20 0x6B 0x69 0x74 0x63 0x68 0x65 0x6E    // ' kitchen' \n\t0x20 0x66 0x6F 0x72 0x20 0x61 0x20 0x63    // ' for a c' \n\t0x75 0x70 0x20 0x6F 0x66 0x20 0x68 0x65    // 'up of he' \n\t0x72 0x20 0x68 0x6F 0x74 0x2C 0x20 0x73    // 'r hot, s' \n\t0x75 0x67 0x61 0x72 0x79 0x2C 0x20 0x6C    // 'ugary, l' \n\t0x65 0x6D 0x6F 0x6E 0x61 0x64 0x65 0x2E    // 'emonade.' \n\t0x20 0x20 0x54 0x68 0x65 0x6E 0x20 0x61    // '  Then a' \n\t0x20 0x72 0x61 0x74 0x20 0x77 0x6F 0x75    // ' rat wou' \n\t0x6C 0x64 0x20 0x64 0x72 0x6F 0x70 0x20    // 'ld drop ' \n\t0x64 0x6F 0x77 0x6E 0x20 0x66 0x72 0x6F    // 'down fro' \n\t0x6D 0x20 0x61 0x62 0x6F 0x76 0x65 0x2C    // 'm above,' \n\t0x20 0x72 0x69 0x67 0x68 0x74 0x20 0x69    // ' right i' \n\t0x6E 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // 'nto the ' \n\t0x68 0x6F 0x74 0x20 0x70 0x6F 0x74 0x20    // 'hot pot ' \n\t0x6F 0x66 0x20 0x6C 0x65 0x6D 0x6F 0x6E    // 'of lemon' \n\t0x61 0x64 0x65 0x2E 0x20 0x0D 0x0A 0x42    // 'ade. ??B' \n\t0x75 0x74 0x20 0x68 0x6F 0x77 0x20 0x77    // 'ut how w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x73 0x68 0x65    // 'ould she' \n\t0x20 0x67 0x65 0x74 0x20 0x74 0x68 0x65    // ' get the' \n\t0x20 0x72 0x61 0x74 0x20 0x6F 0x75 0x74    // ' rat out' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x70 0x6F 0x74 0x3F 0x20 0x20 0x57 0x6F    // 'pot?  Wo' \n\t0x75 0x6C 0x64 0x20 0x74 0x68 0x65 0x79    // 'uld they' \n\t0x20 0x6E 0x65 0x65 0x64 0x20 0x74 0x6F    // ' need to' \n\t0x20 0x68 0x61 0x76 0x65 0x20 0x61 0x20    // ' have a ' \n\t0x63 0x65 0x72 0x65 0x6D 0x6F 0x6E 0x79    // 'ceremony' \n\t0x20 0x6F 0x66 0x20 0x64 0x61 0x6E 0x63    // ' of danc' \n\t0x65 0x73 0x20 0x61 0x6E 0x64 0x20 0x73    // 'es and s' \n\t0x6F 0x6E 0x67 0x73 0x20 0x61 0x6E 0x64    // 'ongs and' \n\t0x20 0x68 0x61 0x76 0x65 0x20 0x56 0x61    // ' have Va' \n\t0x6C 0x65 0x6E 0x74 0x69 0x6E 0x65 0x20    // 'lentine ' \n\t0x74 0x68 0x65 0x20 0x76 0x6F 0x6F 0x64    // 'the vood' \n\t0x6F 0x6F 0x20 0x6D 0x61 0x6E 0x20 0x70    // 'oo man p' \n\t0x65 0x72 0x66 0x6F 0x72 0x6D 0x20 0x74    // 'erform t' \n\t0x68 0x65 0x20 0x72 0x69 0x74 0x75 0x61    // 'he ritua' \n\t0x6C 0x3F                                  // 'l?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_34= ktipbio11\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"ktipbio11\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"ktipbio11\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_38=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio11\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_38=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_38=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xCD 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x24 0x01 0x00 0x82    // '????$??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_38=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x72 0x65 0x65 0x74    // '??Street' \n\t0x20 0x46 0x61 0x69 0x72 0x20 0x45 0x6E    // ' Fair En' \n\t0x74 0x65 0x72 0x74 0x61 0x69 0x6E 0x65    // 'tertaine' \n\t0x72 0x0D 0x0A 0x4A 0x75 0x73 0x74 0x20    // 'r??Just ' \n\t0x66 0x6F 0x72 0x20 0x66 0x75 0x6E 0x2C    // 'for fun,' \n\t0x20 0x42 0x65 0x6C 0x6C 0x61 0x20 0x77    // ' Bella w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x6C 0x69 0x6B    // 'ould lik' \n\t0x65 0x20 0x74 0x6F 0x20 0x73 0x74 0x61    // 'e to sta' \n\t0x72 0x20 0x61 0x73 0x20 0x61 0x20 0x73    // 'r as a s' \n\t0x74 0x72 0x65 0x65 0x74 0x20 0x66 0x61    // 'treet fa' \n\t0x69 0x72 0x20 0x65 0x6E 0x74 0x65 0x72    // 'ir enter' \n\t0x74 0x61 0x69 0x6E 0x65 0x72 0x2E 0x20    // 'tainer. ' \n\t0x20 0x53 0x68 0x65 0x27 0x64 0x20 0x68    // ' She'd h' \n\t0x61 0x76 0x65 0x20 0x68 0x65 0x72 0x20    // 'ave her ' \n\t0x6F 0x77 0x6E 0x20 0x73 0x70 0x6F 0x74    // 'own spot' \n\t0x20 0x75 0x6E 0x64 0x65 0x72 0x20 0x74    // ' under t' \n\t0x68 0x65 0x20 0x62 0x69 0x67 0x20 0x63    // 'he big c' \n\t0x6C 0x6F 0x63 0x6B 0x20 0x61 0x74 0x20    // 'lock at ' \n\t0x74 0x68 0x65 0x20 0x69 0x6E 0x74 0x65    // 'the inte' \n\t0x72 0x73 0x65 0x63 0x74 0x69 0x6F 0x6E    // 'rsection' \n\t0x2E 0x20 0x20 0x53 0x68 0x65 0x20 0x63    // '.  She c' \n\t0x6F 0x75 0x6C 0x64 0x20 0x70 0x6F 0x6B    // 'ould pok' \n\t0x65 0x20 0x66 0x75 0x6E 0x20 0x61 0x74    // 'e fun at' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x65 0x6F    // ' the peo' \n\t0x70 0x6C 0x65 0x20 0x73 0x68 0x65 0x20    // 'ple she ' \n\t0x73 0x65 0x65 0x73 0x20 0x70 0x61 0x73    // 'sees pas' \n\t0x73 0x69 0x6E 0x67 0x20 0x62 0x79 0x20    // 'sing by ' \n\t0x61 0x6E 0x64 0x20 0x6D 0x61 0x6B 0x65    // 'and make' \n\t0x20 0x65 0x76 0x65 0x72 0x79 0x6F 0x6E    // ' everyon' \n\t0x65 0x20 0x73 0x6D 0x69 0x6C 0x65 0x2C    // 'e smile,' \n\t0x20 0x65 0x76 0x65 0x6E 0x20 0x70 0x65    // ' even pe' \n\t0x6F 0x70 0x6C 0x65 0x20 0x77 0x68 0x6F    // 'ople who' \n\t0x20 0x61 0x72 0x65 0x20 0x61 0x6E 0x67    // ' are ang' \n\t0x72 0x79 0x20 0x6F 0x72 0x20 0x74 0x6F    // 'ry or to' \n\t0x6F 0x20 0x62 0x75 0x73 0x79 0x20 0x74    // 'o busy t' \n\t0x6F 0x20 0x62 0x65 0x20 0x68 0x61 0x70    // 'o be hap' \n\t0x70 0x79 0x2E 0x20 0x0D 0x0A 0x42 0x75    // 'py. ??Bu' \n\t0x74 0x20 0x42 0x65 0x6C 0x6C 0x61 0x20    // 't Bella ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x61 0x6C    // 'would al' \n\t0x73 0x6F 0x20 0x68 0x61 0x76 0x65 0x20    // 'so have ' \n\t0x73 0x70 0x65 0x63 0x69 0x61 0x6C 0x20    // 'special ' \n\t0x70 0x6F 0x77 0x65 0x72 0x73 0x97 0x73    // 'powerss' \n\t0x6F 0x6D 0x65 0x74 0x69 0x6D 0x65 0x73    // 'ometimes' \n\t0x20 0x73 0x68 0x65 0x20 0x77 0x6F 0x75    // ' she wou' \n\t0x6C 0x64 0x20 0x73 0x65 0x65 0x20 0x70    // 'ld see p' \n\t0x65 0x6F 0x70 0x6C 0x65 0x20 0x63 0x6F    // 'eople co' \n\t0x6D 0x69 0x6E 0x67 0x20 0x6F 0x75 0x74    // 'ming out' \n\t0x20 0x6F 0x66 0x20 0x61 0x20 0x72 0x65    // ' of a re' \n\t0x73 0x74 0x61 0x75 0x72 0x61 0x6E 0x74    // 'staurant' \n\t0x20 0x61 0x66 0x74 0x65 0x72 0x20 0x65    // ' after e' \n\t0x61 0x74 0x69 0x6E 0x67 0x20 0x74 0x6F    // 'ating to' \n\t0x6F 0x20 0x6D 0x75 0x63 0x68 0x20 0x61    // 'o much a' \n\t0x6E 0x64 0x20 0x74 0x68 0x69 0x6E 0x6B    // 'nd think' \n\t0x69 0x6E 0x67 0x2C 0x20 0x93 0x74 0x68    // 'ing, th' \n\t0x65 0x72 0x65 0x20 0x69 0x73 0x20 0x6E    // 'ere is n' \n\t0x6F 0x20 0x77 0x61 0x79 0x20 0x49 0x20    // 'o way I ' \n\t0x63 0x61 0x6E 0x20 0x77 0x61 0x6C 0x6B    // 'can walk' \n\t0x20 0x62 0x61 0x63 0x6B 0x20 0x68 0x6F    // ' back ho' \n\t0x6D 0x65 0x2E 0x2E 0x2E 0x49 0x20 0x77    // 'me...I w' \n\t0x69 0x73 0x68 0x20 0x49 0x20 0x63 0x6F    // 'ish I co' \n\t0x75 0x6C 0x64 0x20 0x6A 0x75 0x73 0x74    // 'uld just' \n\t0x20 0x67 0x65 0x74 0x20 0x61 0x20 0x63    // ' get a c' \n\t0x61 0x62 0x20 0x61 0x6E 0x64 0x20 0x67    // 'ab and g' \n\t0x65 0x74 0x20 0x68 0x6F 0x6D 0x65 0x2E    // 'et home.' \n\t0x2E 0x2E 0x94 0x20 0x20 0x54 0x68 0x65    // '..  The' \n\t0x69 0x72 0x20 0x77 0x69 0x73 0x68 0x65    // 'ir wishe' \n\t0x73 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 's come t' \n\t0x72 0x75 0x65 0x20 0x62 0x65 0x63 0x61    // 'rue beca' \n\t0x75 0x73 0x65 0x20 0x42 0x65 0x6C 0x6C    // 'use Bell' \n\t0x61 0x20 0x6B 0x6E 0x6F 0x77 0x73 0x20    // 'a knows ' \n\t0x74 0x68 0x65 0x79 0x20 0x6E 0x65 0x65    // 'they nee' \n\t0x64 0x20 0x61 0x20 0x63 0x61 0x62 0x2E    // 'd a cab.' \n\t0x20 0x20 0x45 0x76 0x65 0x6E 0x20 0x6F    // '  Even o' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'n the mo' \n\t0x73 0x74 0x20 0x63 0x72 0x6F 0x77 0x64    // 'st crowd' \n\t0x65 0x64 0x20 0x73 0x74 0x72 0x65 0x65    // 'ed stree' \n\t0x74 0x73 0x2C 0x20 0x42 0x65 0x6C 0x6C    // 'ts, Bell' \n\t0x61 0x20 0x69 0x73 0x20 0x61 0x62 0x6C    // 'a is abl' \n\t0x65 0x20 0x74 0x6F 0x20 0x68 0x61 0x69    // 'e to hai' \n\t0x6C 0x20 0x61 0x20 0x74 0x61 0x78 0x69    // 'l a taxi' \n\t0x97 0x6A 0x75 0x73 0x74 0x20 0x6C 0x69    // 'just li' \n\t0x6B 0x65 0x20 0x74 0x68 0x61 0x74 0x21    // 'ke that!' \n\t0x20 0x20 0x42 0x75 0x74 0x20 0x77 0x68    // '  But wh' \n\t0x61 0x74 0x20 0x61 0x62 0x6F 0x75 0x74    // 'at about' \n\t0x20 0x42 0x65 0x6C 0x6C 0x61 0x20 0x77    // ' Bella w' \n\t0x68 0x65 0x6E 0x20 0x73 0x68 0x65 0x20    // 'hen she ' \n\t0x6E 0x65 0x65 0x64 0x73 0x20 0x61 0x20    // 'needs a ' \n\t0x63 0x61 0x62 0x3F 0x20 0x20 0x43 0x61    // 'cab?  Ca' \n\t0x6E 0x20 0x73 0x68 0x65 0x20 0x67 0x65    // 'n she ge' \n\t0x74 0x20 0x6F 0x6E 0x65 0x3F 0x20         // 't one? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_35= ktipbio12\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"ktipbio12\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"ktipbio12\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_36=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio12\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_36=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_36=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAA 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x09 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_36=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x75 0x72 0x69 0x73    // '??Touris' \n\t0x74 0x0D 0x0A 0x42 0x65 0x6C 0x6C 0x61    // 't??Bella' \n\t0x20 0x6C 0x69 0x6B 0x65 0x73 0x20 0x68    // ' likes h' \n\t0x61 0x76 0x69 0x6E 0x67 0x20 0x74 0x77    // 'aving tw' \n\t0x6F 0x20 0x64 0x69 0x66 0x66 0x65 0x72    // 'o differ' \n\t0x65 0x6E 0x74 0x20 0x6C 0x69 0x76 0x65    // 'ent live' \n\t0x73 0x2C 0x20 0x61 0x6E 0x64 0x20 0x74    // 's, and t' \n\t0x68 0x69 0x6E 0x6B 0x73 0x20 0x69 0x74    // 'hinks it' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x62    // ' would b' \n\t0x65 0x20 0x66 0x75 0x6E 0x20 0x74 0x6F    // 'e fun to' \n\t0x20 0x70 0x6C 0x61 0x79 0x20 0x61 0x20    // ' play a ' \n\t0x64 0x6F 0x75 0x62 0x6C 0x65 0x20 0x6C    // 'double l' \n\t0x69 0x66 0x65 0x20 0x69 0x6E 0x20 0x61    // 'ife in a' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E 0x20    // ' movie. ' \n\t0x20 0x53 0x68 0x65 0x20 0x63 0x6F 0x75    // ' She cou' \n\t0x6C 0x64 0x20 0x62 0x65 0x20 0x61 0x6E    // 'ld be an' \n\t0x20 0x6F 0x72 0x64 0x69 0x6E 0x61 0x72    // ' ordinar' \n\t0x79 0x20 0x74 0x65 0x61 0x63 0x68 0x65    // 'y teache' \n\t0x72 0x20 0x67 0x6F 0x69 0x6E 0x67 0x20    // 'r going ' \n\t0x6F 0x6E 0x20 0x76 0x61 0x63 0x61 0x74    // 'on vacat' \n\t0x69 0x6F 0x6E 0x20 0x77 0x69 0x74 0x68    // 'ion with' \n\t0x20 0x73 0x6F 0x6D 0x65 0x20 0x6F 0x74    // ' some ot' \n\t0x68 0x65 0x72 0x20 0x74 0x65 0x61 0x63    // 'her teac' \n\t0x68 0x65 0x72 0x73 0x2E 0x20 0x20 0x4F    // 'hers.  O' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x74 0x72    // 'n the tr' \n\t0x69 0x70 0x2C 0x20 0x74 0x68 0x65 0x20    // 'ip, the ' \n\t0x70 0x6C 0x61 0x6E 0x65 0x20 0x62 0x65    // 'plane be' \n\t0x67 0x69 0x6E 0x73 0x20 0x74 0x6F 0x20    // 'gins to ' \n\t0x66 0x61 0x6C 0x6C 0x20 0x20 0x61 0x6E    // 'fall  an' \n\t0x64 0x20 0x65 0x76 0x65 0x72 0x79 0x6F    // 'd everyo' \n\t0x6E 0x65 0x20 0x70 0x61 0x6E 0x69 0x63    // 'ne panic' \n\t0x73 0x2E 0x20 0x20 0x4F 0x6E 0x65 0x20    // 's.  One ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x74    // 'of the t' \n\t0x65 0x61 0x63 0x68 0x65 0x72 0x73 0x20    // 'eachers ' \n\t0x66 0x61 0x69 0x6E 0x74 0x73 0x97 0x62    // 'faintsb' \n\t0x75 0x74 0x20 0x6E 0x6F 0x74 0x20 0x42    // 'ut not B' \n\t0x65 0x6C 0x6C 0x61 0x2E 0x20 0x20 0x53    // 'ella.  S' \n\t0x68 0x65 0x20 0x74 0x68 0x69 0x6E 0x6B    // 'he think' \n\t0x73 0x20 0x66 0x6F 0x72 0x20 0x61 0x20    // 's for a ' \n\t0x73 0x65 0x63 0x6F 0x6E 0x64 0x2C 0x20    // 'second, ' \n\t0x72 0x75 0x6E 0x73 0x20 0x74 0x6F 0x20    // 'runs to ' \n\t0x74 0x68 0x65 0x20 0x66 0x72 0x6F 0x6E    // 'the fron' \n\t0x74 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 't of the' \n\t0x20 0x70 0x6C 0x61 0x6E 0x65 0x2C 0x20    // ' plane, ' \n\t0x61 0x6E 0x64 0x20 0x73 0x75 0x64 0x64    // 'and sudd' \n\t0x65 0x6E 0x6C 0x79 0x20 0x73 0x74 0x61    // 'enly sta' \n\t0x72 0x74 0x73 0x20 0x73 0x68 0x72 0x69    // 'rts shri' \n\t0x6E 0x6B 0x69 0x6E 0x67 0x2E 0x20 0x20    // 'nking.  ' \n\t0x53 0x68 0x65 0x20 0x73 0x68 0x72 0x69    // 'She shri' \n\t0x6E 0x6B 0x73 0x20 0x65 0x6E 0x6F 0x75    // 'nks enou' \n\t0x67 0x68 0x20 0x74 0x68 0x61 0x74 0x20    // 'gh that ' \n\t0x73 0x68 0x65 0x20 0x64 0x69 0x73 0x61    // 'she disa' \n\t0x70 0x70 0x65 0x61 0x72 0x73 0x2C 0x20    // 'ppears, ' \n\t0x63 0x72 0x61 0x77 0x6C 0x73 0x20 0x69    // 'crawls i' \n\t0x6E 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // 'nto the ' \n\t0x65 0x6E 0x67 0x69 0x6E 0x65 0x2C 0x20    // 'engine, ' \n\t0x66 0x69 0x78 0x65 0x73 0x20 0x61 0x20    // 'fixes a ' \n\t0x70 0x61 0x72 0x74 0x2C 0x20 0x61 0x6E    // 'part, an' \n\t0x64 0x20 0x73 0x74 0x6F 0x70 0x73 0x20    // 'd stops ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x6E    // 'the plan' \n\t0x65 0x20 0x66 0x72 0x6F 0x6D 0x20 0x63    // 'e from c' \n\t0x72 0x61 0x73 0x68 0x69 0x6E 0x67 0x2E    // 'rashing.' \n\t0x20 0x20 0x42 0x75 0x74 0x20 0x74 0x68    // '  But th' \n\t0x65 0x6E 0x2C 0x20 0x6A 0x75 0x73 0x74    // 'en, just' \n\t0x20 0x61 0x73 0x20 0x42 0x65 0x6C 0x6C    // ' as Bell' \n\t0x61 0x20 0x69 0x73 0x20 0x63 0x6F 0x6D    // 'a is com' \n\t0x69 0x6E 0x67 0x20 0x62 0x61 0x63 0x6B    // 'ing back' \n\t0x20 0x69 0x6E 0x74 0x6F 0x20 0x74 0x68    // ' into th' \n\t0x65 0x20 0x70 0x6C 0x61 0x6E 0x65 0x2C    // 'e plane,' \n\t0x20 0x69 0x74 0x20 0x68 0x69 0x74 0x73    // ' it hits' \n\t0x20 0x61 0x6E 0x20 0x61 0x69 0x72 0x20    // ' an air ' \n\t0x70 0x6F 0x63 0x6B 0x65 0x74 0x2C 0x20    // 'pocket, ' \n\t0x61 0x6E 0x64 0x20 0x74 0x68 0x65 0x20    // 'and the ' \n\t0x77 0x68 0x6F 0x6C 0x65 0x20 0x70 0x6C    // 'whole pl' \n\t0x61 0x6E 0x65 0x20 0x6A 0x75 0x6D 0x70    // 'ane jump' \n\t0x73 0x2E 0x20 0x20 0x42 0x65 0x6C 0x6C    // 's.  Bell' \n\t0x61 0x20 0x73 0x74 0x6F 0x70 0x73 0x20    // 'a stops ' \n\t0x67 0x72 0x6F 0x77 0x69 0x6E 0x67 0x20    // 'growing ' \n\t0x61 0x6E 0x64 0x20 0x69 0x73 0x20 0x73    // 'and is s' \n\t0x74 0x75 0x63 0x6B 0x2E 0x20 0x20 0x48    // 'tuck.  H' \n\t0x6F 0x77 0x20 0x77 0x69 0x6C 0x6C 0x20    // 'ow will ' \n\t0x42 0x65 0x6C 0x6C 0x61 0x20 0x67 0x65    // 'Bella ge' \n\t0x74 0x20 0x62 0x61 0x63 0x6B 0x20 0x74    // 't back t' \n\t0x6F 0x20 0x6E 0x6F 0x72 0x6D 0x61 0x6C    // 'o normal' \n\t0x20 0x73 0x69 0x7A 0x65 0x20 0x61 0x67    // ' size ag' \n\t0x61 0x69 0x6E 0x3F                        // 'ain?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_36= ktipbio13\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"ktipbio13\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"ktipbio13\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_35=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio13\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_35=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_35=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD8 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0B 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_35=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x03 0x03 0x63 0x68 0x65 0x6D 0x69 0x73    // '??chemis' \n\t0x74 0x72 0x79 0x0D 0x0A 0x45 0x76 0x65    // 'try??Eve' \n\t0x6E 0x20 0x74 0x68 0x6F 0x75 0x67 0x68    // 'n though' \n\t0x20 0x42 0x65 0x6E 0x6E 0x79 0x20 0x77    // ' Benny w' \n\t0x61 0x73 0x20 0x69 0x6E 0x6A 0x75 0x72    // 'as injur' \n\t0x65 0x64 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ed in th' \n\t0x65 0x20 0x65 0x78 0x70 0x6C 0x6F 0x73    // 'e explos' \n\t0x69 0x6F 0x6E 0x2C 0x20 0x68 0x65 0x20    // 'ion, he ' \n\t0x73 0x74 0x69 0x6C 0x6C 0x20 0x6C 0x6F    // 'still lo' \n\t0x76 0x65 0x64 0x20 0x63 0x68 0x65 0x6D    // 'ved chem' \n\t0x69 0x73 0x74 0x72 0x79 0x2E 0x20 0x20    // 'istry.  ' \n\t0x42 0x75 0x74 0x20 0x77 0x68 0x65 0x6E    // 'But when' \n\t0x20 0x68 0x65 0x20 0x67 0x6F 0x74 0x20    // ' he got ' \n\t0x6F 0x6C 0x64 0x65 0x72 0x2C 0x20 0x68    // 'older, h' \n\t0x65 0x20 0x68 0x61 0x64 0x20 0x74 0x6F    // 'e had to' \n\t0x20 0x65 0x61 0x72 0x6E 0x20 0x61 0x20    // ' earn a ' \n\t0x6C 0x69 0x76 0x69 0x6E 0x67 0x2C 0x20    // 'living, ' \n\t0x73 0x6F 0x20 0x68 0x65 0x20 0x73 0x74    // 'so he st' \n\t0x61 0x72 0x74 0x65 0x64 0x20 0x6D 0x69    // 'arted mi' \n\t0x78 0x69 0x6E 0x67 0x20 0x70 0x65 0x72    // 'xing per' \n\t0x66 0x75 0x6D 0x65 0x20 0x69 0x6E 0x20    // 'fume in ' \n\t0x68 0x69 0x73 0x20 0x62 0x61 0x73 0x65    // 'his base' \n\t0x6D 0x65 0x6E 0x74 0x20 0x6C 0x61 0x62    // 'ment lab' \n\t0x6F 0x72 0x61 0x74 0x6F 0x72 0x79 0x2E    // 'oratory.' \n\t0x20 0x20 0x48 0x69 0x73 0x20 0x70 0x65    // '  His pe' \n\t0x72 0x66 0x75 0x6D 0x65 0x20 0x77 0x61    // 'rfume wa' \n\t0x73 0x20 0x61 0x20 0x68 0x69 0x74 0x2E    // 's a hit.' \n\t0x20 0x20 0x41 0x20 0x66 0x61 0x6D 0x6F    // '  A famo' \n\t0x75 0x73 0x20 0x61 0x63 0x74 0x72 0x65    // 'us actre' \n\t0x73 0x73 0x20 0x63 0x61 0x6C 0x6C 0x65    // 'ss calle' \n\t0x64 0x20 0x61 0x6E 0x64 0x20 0x61 0x73    // 'd and as' \n\t0x6B 0x65 0x64 0x20 0x68 0x69 0x6D 0x20    // 'ked him ' \n\t0x74 0x6F 0x20 0x63 0x72 0x65 0x61 0x74    // 'to creat' \n\t0x65 0x20 0x61 0x20 0x70 0x65 0x72 0x66    // 'e a perf' \n\t0x75 0x6D 0x65 0x20 0x6A 0x75 0x73 0x74    // 'ume just' \n\t0x20 0x66 0x6F 0x72 0x20 0x68 0x65 0x72    // ' for her' \n\t0x2E 0x20 0x20 0x57 0x68 0x65 0x6E 0x20    // '.  When ' \n\t0x73 0x68 0x65 0x20 0x6D 0x65 0x74 0x20    // 'she met ' \n\t0x42 0x65 0x6E 0x6E 0x79 0x2C 0x20 0x73    // 'Benny, s' \n\t0x68 0x65 0x20 0x74 0x68 0x6F 0x75 0x67    // 'he thoug' \n\t0x68 0x74 0x20 0x68 0x69 0x73 0x20 0x75    // 'ht his u' \n\t0x6E 0x69 0x71 0x75 0x65 0x20 0x6C 0x6F    // 'nique lo' \n\t0x6F 0x6B 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'ok would' \n\t0x20 0x62 0x65 0x20 0x70 0x65 0x72 0x66    // ' be perf' \n\t0x65 0x63 0x74 0x20 0x66 0x6F 0x72 0x20    // 'ect for ' \n\t0x68 0x65 0x72 0x20 0x6E 0x65 0x78 0x74    // 'her next' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E 0x20    // ' movie. ' \n\t0x20 0x42 0x65 0x6E 0x6E 0x79 0x20 0x77    // ' Benny w' \n\t0x61 0x73 0x6E 0x27 0x74 0x20 0x73 0x75    // 'asn't su' \n\t0x72 0x65 0x20 0x74 0x68 0x61 0x74 0x20    // 're that ' \n\t0x61 0x63 0x74 0x69 0x6E 0x67 0x20 0x77    // 'acting w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x62 0x65 0x20    // 'ould be ' \n\t0x6D 0x6F 0x72 0x65 0x20 0x66 0x75 0x6E    // 'more fun' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x77 0x6F    // ' that wo' \n\t0x72 0x6B 0x69 0x6E 0x67 0x20 0x69 0x6E    // 'rking in' \n\t0x20 0x74 0x68 0x65 0x20 0x6C 0x61 0x62    // ' the lab' \n\t0x2C 0x20 0x62 0x75 0x74 0x20 0x68 0x65    // ', but he' \n\t0x20 0x73 0x61 0x69 0x64 0x20 0x68 0x65    // ' said he' \n\t0x27 0x64 0x20 0x74 0x72 0x79 0x20 0x69    // ''d try i' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_37= ktipbio14\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"ktipbio14\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"ktipbio14\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_37=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio14\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_37=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_37=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x79 0x01 0x00 0x01    // '????y???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x14 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_37=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x61 0x63 0x6B 0x2D 0x74    // '??Back-t' \n\t0x6F 0x2D 0x4C 0x69 0x66 0x65 0x20 0x4D    // 'o-Life M' \n\t0x75 0x6D 0x6D 0x79 0x0D 0x0A 0x42 0x65    // 'ummy??Be' \n\t0x6E 0x6E 0x79 0x20 0x62 0x65 0x6C 0x69    // 'nny beli' \n\t0x65 0x76 0x65 0x73 0x20 0x6E 0x6F 0x20    // 'eves no ' \n\t0x6F 0x6E 0x65 0x20 0x77 0x61 0x73 0x20    // 'one was ' \n\t0x62 0x65 0x74 0x74 0x65 0x72 0x20 0x61    // 'better a' \n\t0x74 0x20 0x63 0x68 0x65 0x6D 0x69 0x73    // 't chemis' \n\t0x74 0x72 0x79 0x20 0x74 0x68 0x61 0x6E    // 'try than' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x6E 0x63    // ' the anc' \n\t0x69 0x65 0x6E 0x74 0x20 0x45 0x67 0x79    // 'ient Egy' \n\t0x70 0x74 0x69 0x61 0x6E 0x73 0x2E 0x20    // 'ptians. ' \n\t0x20 0x49 0x74 0x20 0x77 0x6F 0x75 0x6C    // ' It woul' \n\t0x64 0x20 0x62 0x65 0x20 0x61 0x20 0x6C    // 'd be a l' \n\t0x6F 0x74 0x20 0x6F 0x66 0x20 0x66 0x75    // 'ot of fu' \n\t0x6E 0x20 0x74 0x6F 0x20 0x73 0x74 0x61    // 'n to sta' \n\t0x72 0x20 0x61 0x73 0x20 0x61 0x20 0x70    // 'r as a p' \n\t0x72 0x65 0x73 0x65 0x72 0x76 0x65 0x64    // 'reserved' \n\t0x20 0x45 0x67 0x79 0x70 0x74 0x69 0x61    // ' Egyptia' \n\t0x6E 0x20 0x6D 0x75 0x6D 0x6D 0x79 0x20    // 'n mummy ' \n\t0x77 0x68 0x6F 0x20 0x63 0x61 0x6D 0x65    // 'who came' \n\t0x20 0x62 0x61 0x63 0x6B 0x20 0x74 0x6F    // ' back to' \n\t0x20 0x6C 0x69 0x66 0x65 0x2E 0x20 0x20    // ' life.  ' \n\t0x48 0x65 0x27 0x73 0x20 0x61 0x6C 0x72    // 'He's alr' \n\t0x65 0x61 0x64 0x79 0x20 0x64 0x72 0x65    // 'eady dre' \n\t0x73 0x73 0x65 0x64 0x20 0x66 0x6F 0x72    // 'ssed for' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x61 0x72    // ' the par' \n\t0x74 0x2C 0x20 0x61 0x6E 0x64 0x20 0x68    // 't, and h' \n\t0x65 0x20 0x61 0x6C 0x72 0x65 0x61 0x64    // 'e alread' \n\t0x79 0x20 0x68 0x61 0x73 0x20 0x61 0x6C    // 'y has al' \n\t0x6C 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'l the mo' \n\t0x76 0x65 0x73 0x20 0x64 0x6F 0x77 0x6E    // 'ves down' \n\t0x2E 0x20 0x20 0x48 0x65 0x20 0x63 0x61    // '.  He ca' \n\t0x6E 0x20 0x77 0x61 0x6C 0x6B 0x20 0x73    // 'n walk s' \n\t0x6C 0x6F 0x77 0x6C 0x79 0x2C 0x20 0x66    // 'lowly, f' \n\t0x61 0x69 0x6E 0x74 0x2C 0x20 0x61 0x6E    // 'aint, an' \n\t0x64 0x20 0x66 0x61 0x6C 0x6C 0x20 0x64    // 'd fall d' \n\t0x6F 0x77 0x6E 0x2E 0x20 0x42 0x75 0x74    // 'own. But' \n\t0x20 0x6F 0x6E 0x63 0x65 0x20 0x68 0x65    // ' once he' \n\t0x20 0x66 0x61 0x6C 0x6C 0x73 0x20 0x64    // ' falls d' \n\t0x6F 0x77 0x6E 0x2C 0x20 0x68 0x6F 0x77    // 'own, how' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x68 0x65    // ' will he' \n\t0x20 0x67 0x65 0x74 0x20 0x62 0x61 0x63    // ' get bac' \n\t0x6B 0x20 0x75 0x70 0x20 0x71 0x75 0x69    // 'k up qui' \n\t0x63 0x6B 0x6C 0x79 0x20 0x74 0x6F 0x20    // 'ckly to ' \n\t0x73 0x63 0x61 0x72 0x65 0x20 0x74 0x68    // 'scare th' \n\t0x65 0x20 0x6E 0x65 0x78 0x74 0x20 0x6B    // 'e next k' \n\t0x69 0x64 0x3F                             // 'id?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_38= ktipbio15\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"ktipbio15\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"ktipbio15\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio15\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x77 0x02 0x00 0x01    // '????w???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xF4 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x6E 0x6A 0x75 0x72 0x65    // '??Injure' \n\t0x64 0x20 0x56 0x69 0x63 0x74 0x69 0x6D    // 'd Victim' \n\t0x0D 0x0A 0x41 0x20 0x63 0x68 0x65 0x6D    // '??A chem' \n\t0x69 0x73 0x74 0x72 0x79 0x20 0x74 0x65    // 'istry te' \n\t0x61 0x63 0x68 0x65 0x72 0x20 0x73 0x75    // 'acher su' \n\t0x67 0x67 0x65 0x73 0x74 0x65 0x64 0x20    // 'ggested ' \n\t0x42 0x65 0x6E 0x6E 0x79 0x20 0x77 0x6F    // 'Benny wo' \n\t0x75 0x6C 0x64 0x20 0x62 0x65 0x20 0x61    // 'uld be a' \n\t0x20 0x67 0x72 0x65 0x61 0x74 0x20 0x70    // ' great p' \n\t0x65 0x72 0x73 0x6F 0x6E 0x20 0x74 0x6F    // 'erson to' \n\t0x20 0x66 0x69 0x6C 0x6C 0x20 0x69 0x6E    // ' fill in' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x61 0x20    // ' when a ' \n\t0x73 0x74 0x75 0x6E 0x74 0x20 0x77 0x65    // 'stunt we' \n\t0x6E 0x74 0x20 0x62 0x61 0x64 0x6C 0x79    // 'nt badly' \n\t0x2E 0x20 0x20 0x54 0x68 0x65 0x20 0x66    // '.  The f' \n\t0x69 0x72 0x73 0x74 0x20 0x73 0x63 0x65    // 'irst sce' \n\t0x6E 0x65 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'ne would' \n\t0x20 0x73 0x68 0x6F 0x77 0x20 0x61 0x20    // ' show a ' \n\t0x73 0x74 0x75 0x6E 0x74 0x20 0x61 0x63    // 'stunt ac' \n\t0x74 0x6F 0x72 0x20 0x64 0x6F 0x69 0x6E    // 'tor doin' \n\t0x67 0x20 0x61 0x20 0x64 0x61 0x72 0x69    // 'g a dari' \n\t0x6E 0x67 0x20 0x66 0x61 0x6C 0x6C 0x20    // 'ng fall ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x61 0x20 0x70    // 'from a p' \n\t0x6C 0x61 0x6E 0x65 0x2C 0x20 0x61 0x6E    // 'lane, an' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x73 0x65    // 'd the se' \n\t0x63 0x6F 0x6E 0x64 0x20 0x73 0x63 0x65    // 'cond sce' \n\t0x6E 0x65 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'ne would' \n\t0x20 0x68 0x61 0x76 0x65 0x20 0x42 0x65    // ' have Be' \n\t0x6E 0x6E 0x79 0x20 0x69 0x6E 0x20 0x68    // 'nny in h' \n\t0x69 0x73 0x20 0x62 0x61 0x6E 0x64 0x61    // 'is banda' \n\t0x67 0x65 0x73 0x2C 0x20 0x77 0x61 0x6C    // 'ges, wal' \n\t0x6B 0x69 0x6E 0x67 0x20 0x73 0x6C 0x6F    // 'king slo' \n\t0x77 0x6C 0x79 0x2C 0x20 0x6F 0x62 0x76    // 'wly, obv' \n\t0x69 0x6F 0x75 0x73 0x6C 0x79 0x20 0x69    // 'iously i' \n\t0x6E 0x20 0x67 0x72 0x65 0x61 0x74 0x20    // 'n great ' \n\t0x70 0x61 0x69 0x6E 0x2E 0x20 0x20 0x54    // 'pain.  T' \n\t0x68 0x65 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'he movie' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x67    // ' would g' \n\t0x65 0x74 0x20 0x65 0x76 0x65 0x6E 0x20    // 'et even ' \n\t0x6A 0x75 0x69 0x63 0x69 0x65 0x72 0x20    // 'juicier ' \n\t0x77 0x68 0x65 0x6E 0x20 0x6E 0x6F 0x62    // 'when nob' \n\t0x6F 0x64 0x79 0x20 0x72 0x65 0x61 0x6C    // 'ody real' \n\t0x69 0x7A 0x65 0x64 0x20 0x74 0x68 0x61    // 'ized tha' \n\t0x74 0x20 0x42 0x65 0x6E 0x6E 0x79 0x20    // 't Benny ' \n\t0x77 0x61 0x73 0x20 0x6E 0x6F 0x74 0x20    // 'was not ' \n\t0x74 0x68 0x65 0x20 0x69 0x6E 0x6A 0x75    // 'the inju' \n\t0x72 0x65 0x64 0x20 0x73 0x74 0x75 0x6E    // 'red stun' \n\t0x74 0x20 0x61 0x63 0x74 0x6F 0x72 0x20    // 't actor ' \n\t0x61 0x74 0x20 0x61 0x6C 0x6C 0x2C 0x20    // 'at all, ' \n\t0x62 0x75 0x74 0x20 0x61 0x6E 0x20 0x69    // 'but an i' \n\t0x6E 0x6E 0x6F 0x63 0x65 0x6E 0x74 0x20    // 'nnocent ' \n\t0x62 0x79 0x73 0x74 0x61 0x6E 0x64 0x65    // 'bystande' \n\t0x72 0x2E 0x20 0x20 0x48 0x69 0x73 0x20    // 'r.  His ' \n\t0x62 0x61 0x6E 0x64 0x61 0x67 0x65 0x73    // 'bandages' \n\t0x20 0x6A 0x75 0x73 0x74 0x20 0x6D 0x61    // ' just ma' \n\t0x6B 0x65 0x20 0x65 0x76 0x65 0x72 0x79    // 'ke every' \n\t0x6F 0x6E 0x65 0x20 0x74 0x68 0x69 0x6E    // 'one thin' \n\t0x6B 0x20 0x68 0x65 0x20 0x69 0x73 0x20    // 'k he is ' \n\t0x74 0x68 0x65 0x20 0x72 0x65 0x63 0x6F    // 'the reco' \n\t0x76 0x65 0x72 0x69 0x6E 0x67 0x20 0x64    // 'vering d' \n\t0x61 0x72 0x65 0x64 0x65 0x76 0x69 0x6C    // 'aredevil' \n\t0x20 0x73 0x74 0x75 0x6E 0x74 0x20 0x6D    // ' stunt m' \n\t0x61 0x6E 0x21 0x20 0x0D 0x0A 0x42 0x75    // 'an! ??Bu' \n\t0x74 0x20 0x74 0x68 0x65 0x6E 0x20 0x77    // 't then w' \n\t0x68 0x65 0x72 0x65 0x20 0x69 0x73 0x20    // 'here is ' \n\t0x74 0x68 0x65 0x20 0x69 0x6E 0x6A 0x75    // 'the inju' \n\t0x72 0x65 0x64 0x20 0x64 0x61 0x72 0x65    // 'red dare' \n\t0x64 0x65 0x76 0x69 0x6C 0x3F 0x20 0x20    // 'devil?  ' \n\t0x43 0x61 0x6E 0x20 0x42 0x65 0x6E 0x6E    // 'Can Benn' \n\t0x79 0x20 0x75 0x73 0x65 0x20 0x68 0x69    // 'y use hi' \n\t0x73 0x20 0x73 0x6B 0x69 0x6C 0x6C 0x73    // 's skills' \n\t0x20 0x74 0x6F 0x20 0x6D 0x69 0x78 0x20    // ' to mix ' \n\t0x61 0x20 0x74 0x72 0x75 0x74 0x68 0x20    // 'a truth ' \n\t0x73 0x65 0x72 0x75 0x6D 0x20 0x74 0x68    // 'serum th' \n\t0x61 0x74 0x20 0x77 0x69 0x6C 0x6C 0x20    // 'at will ' \n\t0x68 0x65 0x6C 0x70 0x20 0x68 0x69 0x6D    // 'help him' \n\t0x20 0x72 0x65 0x76 0x65 0x61 0x6C 0x20    // ' reveal ' \n\t0x74 0x68 0x65 0x20 0x72 0x65 0x61 0x6C    // 'the real' \n\t0x20 0x76 0x69 0x63 0x74 0x69 0x6D 0x3F    // ' victim?' \n\t0x20                                       // ' ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_39= ktipbio16\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"ktipbio16\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"ktipbio16\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_39=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio16\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_39=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_39=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xA9 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_39=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x6E 0x63 0x69 0x65 0x6E    // '??Ancien' \n\t0x74 0x20 0x4D 0x75 0x6D 0x6D 0x79 0x0D    // 't Mummy?' \n\t0x0A 0x49 0x74 0x20 0x77 0x6F 0x75 0x6C    // '?It woul' \n\t0x64 0x20 0x62 0x65 0x20 0x74 0x6F 0x74    // 'd be tot' \n\t0x61 0x6C 0x6C 0x79 0x20 0x66 0x75 0x6E    // 'ally fun' \n\t0x20 0x74 0x6F 0x20 0x70 0x6C 0x61 0x79    // ' to play' \n\t0x20 0x61 0x20 0x6D 0x75 0x6D 0x6D 0x79    // ' a mummy' \n\t0x97 0x69 0x6E 0x20 0x61 0x6E 0x63 0x69    // 'in anci' \n\t0x65 0x6E 0x74 0x20 0x45 0x67 0x79 0x70    // 'ent Egyp' \n\t0x74 0x21 0x20 0x20 0x42 0x65 0x6E 0x6E    // 't!  Benn' \n\t0x79 0x20 0x68 0x61 0x73 0x20 0x61 0x6C    // 'y has al' \n\t0x6C 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'l the mo' \n\t0x76 0x65 0x73 0x20 0x64 0x6F 0x77 0x6E    // 'ves down' \n\t0x2C 0x20 0x68 0x65 0x20 0x63 0x61 0x6E    // ', he can' \n\t0x20 0x66 0x61 0x69 0x6E 0x74 0x20 0x61    // ' faint a' \n\t0x6E 0x64 0x20 0x66 0x61 0x6C 0x6C 0x20    // 'nd fall ' \n\t0x64 0x6F 0x77 0x6E 0x2C 0x20 0x61 0x6E    // 'down, an' \n\t0x64 0x20 0x68 0x65 0x20 0x63 0x61 0x6E    // 'd he can' \n\t0x20 0x74 0x68 0x69 0x6E 0x6B 0x20 0x6C    // ' think l' \n\t0x69 0x6B 0x65 0x20 0x61 0x6E 0x20 0x45    // 'ike an E' \n\t0x67 0x79 0x70 0x74 0x69 0x61 0x6E 0x2E    // 'gyptian.' \n\t0x20 0x0D 0x0A 0x42 0x75 0x74 0x20 0x77    // ' ??But w' \n\t0x68 0x61 0x74 0x20 0x69 0x66 0x20 0x6F    // 'hat if o' \n\t0x6E 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 'ne of th' \n\t0x6F 0x73 0x65 0x20 0x45 0x67 0x79 0x70    // 'ose Egyp' \n\t0x74 0x69 0x61 0x6E 0x20 0x67 0x72 0x61    // 'tian gra' \n\t0x76 0x65 0x20 0x72 0x6F 0x62 0x62 0x65    // 've robbe' \n\t0x72 0x73 0x20 0x73 0x70 0x6F 0x74 0x74    // 'rs spott' \n\t0x65 0x64 0x20 0x68 0x69 0x6D 0x20 0x61    // 'ed him a' \n\t0x6E 0x64 0x20 0x74 0x6F 0x6F 0x6B 0x20    // 'nd took ' \n\t0x68 0x69 0x6D 0x20 0x62 0x61 0x63 0x6B    // 'him back' \n\t0x20 0x74 0x6F 0x20 0x45 0x67 0x79 0x70    // ' to Egyp' \n\t0x74 0x3F 0x20 0x20 0x48 0x6F 0x77 0x20    // 't?  How ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x42 0x65    // 'would Be' \n\t0x6E 0x6E 0x79 0x20 0x67 0x65 0x74 0x20    // 'nny get ' \n\t0x61 0x77 0x61 0x79 0x3F                   // 'away?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3A= ktipbio17\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"ktipbio17\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"ktipbio17\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio17\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x02 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xFA 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xF3 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x03 0x03 0x64 0x61 0x6E 0x63 0x65 0x0D    // '??dance?' \n\t0x0A 0x42 0x65 0x66 0x6F 0x72 0x65 0x20    // '?Before ' \n\t0x62 0x65 0x63 0x6F 0x6D 0x69 0x6E 0x67    // 'becoming' \n\t0x20 0x61 0x20 0x63 0x6F 0x6F 0x6B 0x2C    // ' a cook,' \n\t0x20 0x42 0x69 0x6C 0x6C 0x79 0x20 0x66    // ' Billy f' \n\t0x6F 0x6C 0x6C 0x6F 0x77 0x65 0x64 0x20    // 'ollowed ' \n\t0x66 0x61 0x6D 0x69 0x6C 0x79 0x20 0x74    // 'family t' \n\t0x72 0x61 0x64 0x69 0x74 0x69 0x6F 0x6E    // 'radition' \n\t0x20 0x61 0x6E 0x64 0x20 0x77 0x6F 0x72    // ' and wor' \n\t0x6B 0x65 0x64 0x20 0x61 0x73 0x20 0x61    // 'ked as a' \n\t0x20 0x66 0x69 0x73 0x68 0x65 0x72 0x6D    // ' fisherm' \n\t0x61 0x6E 0x2E 0x20 0x20 0x48 0x65 0x27    // 'an.  He'' \n\t0x73 0x20 0x73 0x74 0x72 0x6F 0x6E 0x67    // 's strong' \n\t0x20 0x61 0x6E 0x64 0x20 0x6D 0x75 0x73    // ' and mus' \n\t0x63 0x75 0x6C 0x61 0x72 0x2C 0x20 0x61    // 'cular, a' \n\t0x6E 0x64 0x20 0x63 0x6F 0x75 0x6C 0x64    // 'nd could' \n\t0x20 0x68 0x61 0x75 0x6C 0x20 0x69 0x6E    // ' haul in' \n\t0x20 0x73 0x6F 0x6D 0x65 0x20 0x62 0x69    // ' some bi' \n\t0x67 0x20 0x63 0x61 0x74 0x63 0x68 0x65    // 'g catche' \n\t0x73 0x2E 0x20 0x4F 0x6E 0x65 0x20 0x64    // 's. One d' \n\t0x61 0x79 0x20 0x42 0x69 0x6C 0x6C 0x79    // 'ay Billy' \n\t0x20 0x77 0x61 0x73 0x20 0x6F 0x6E 0x20    // ' was on ' \n\t0x74 0x68 0x65 0x20 0x64 0x65 0x63 0x6B    // 'the deck' \n\t0x2C 0x20 0x77 0x68 0x69 0x63 0x68 0x20    // ', which ' \n\t0x68 0x61 0x70 0x70 0x65 0x6E 0x65 0x64    // 'happened' \n\t0x20 0x74 0x6F 0x20 0x62 0x65 0x20 0x75    // ' to be u' \n\t0x6E 0x75 0x73 0x75 0x61 0x6C 0x6C 0x79    // 'nusually' \n\t0x20 0x73 0x6C 0x69 0x70 0x70 0x65 0x72    // ' slipper' \n\t0x79 0x2E 0x20 0x48 0x65 0x20 0x6C 0x6F    // 'y. He lo' \n\t0x73 0x74 0x20 0x63 0x6F 0x6E 0x74 0x72    // 'st contr' \n\t0x6F 0x6C 0x20 0x6F 0x66 0x20 0x68 0x69    // 'ol of hi' \n\t0x73 0x20 0x6C 0x65 0x67 0x73 0x2C 0x20    // 's legs, ' \n\t0x61 0x6E 0x64 0x20 0x77 0x68 0x69 0x6C    // 'and whil' \n\t0x65 0x20 0x68 0x65 0x20 0x74 0x72 0x69    // 'e he tri' \n\t0x65 0x64 0x20 0x74 0x6F 0x20 0x63 0x61    // 'ed to ca' \n\t0x74 0x63 0x68 0x20 0x68 0x69 0x73 0x20    // 'tch his ' \n\t0x62 0x61 0x6C 0x61 0x6E 0x63 0x65 0x2C    // 'balance,' \n\t0x20 0x68 0x69 0x73 0x20 0x66 0x61 0x6D    // ' his fam' \n\t0x69 0x6C 0x79 0x20 0x73 0x74 0x6F 0x70    // 'ily stop' \n\t0x70 0x65 0x64 0x20 0x74 0x6F 0x20 0x77    // 'ped to w' \n\t0x61 0x74 0x63 0x68 0x20 0x68 0x69 0x6D    // 'atch him' \n\t0x2E 0x20 0x20 0x4F 0x74 0x68 0x65 0x72    // '.  Other' \n\t0x20 0x66 0x69 0x73 0x68 0x65 0x72 0x6D    // ' fisherm' \n\t0x65 0x6E 0x20 0x64 0x72 0x69 0x66 0x74    // 'en drift' \n\t0x69 0x6E 0x67 0x20 0x62 0x79 0x20 0x61    // 'ing by a' \n\t0x6C 0x73 0x6F 0x20 0x73 0x74 0x6F 0x70    // 'lso stop' \n\t0x70 0x65 0x64 0x20 0x74 0x6F 0x20 0x73    // 'ped to s' \n\t0x74 0x61 0x72 0x65 0x2E 0x20 0x20 0x49    // 'tare.  I' \n\t0x74 0x20 0x77 0x61 0x73 0x20 0x61 0x20    // 't was a ' \n\t0x6D 0x61 0x67 0x6E 0x69 0x66 0x69 0x63    // 'magnific' \n\t0x65 0x6E 0x74 0x20 0x22 0x64 0x61 0x6E    // 'ent \"dan' \n\t0x63 0x65 0x21 0x22 0x20 0x41 0x66 0x74    // 'ce!\" Aft' \n\t0x65 0x72 0x20 0x61 0x20 0x67 0x72 0x61    // 'er a gra' \n\t0x6E 0x64 0x20 0x66 0x69 0x6E 0x61 0x6C    // 'nd final' \n\t0x65 0x2C 0x20 0x42 0x69 0x6C 0x6C 0x79    // 'e, Billy' \n\t0x27 0x73 0x20 0x66 0x61 0x74 0x68 0x65    // ''s fathe' \n\t0x72 0x20 0x73 0x61 0x69 0x64 0x20 0x22    // 'r said \"' \n\t0x53 0x6F 0x6E 0x2C 0x20 0x79 0x6F 0x75    // 'Son, you' \n\t0x27 0x72 0x65 0x20 0x6E 0x6F 0x20 0x66    // ''re no f' \n\t0x69 0x73 0x68 0x65 0x72 0x6D 0x61 0x6E    // 'isherman' \n\t0x97 0x79 0x6F 0x75 0x27 0x72 0x65 0x20    // 'you're ' \n\t0x61 0x20 0x64 0x61 0x6E 0x63 0x65 0x72    // 'a dancer' \n\t0x2E 0x22 0x20 0x0D 0x0A 0x42 0x69 0x6C    // '.\" ??Bil' \n\t0x6C 0x79 0x20 0x64 0x65 0x63 0x69 0x64    // 'ly decid' \n\t0x65 0x64 0x20 0x74 0x6F 0x20 0x6D 0x6F    // 'ed to mo' \n\t0x76 0x65 0x20 0x74 0x6F 0x20 0x54 0x6F    // 've to To' \n\t0x72 0x6F 0x6E 0x74 0x6F 0x20 0x74 0x6F    // 'ronto to' \n\t0x20 0x67 0x6F 0x20 0x74 0x6F 0x20 0x64    // ' go to d' \n\t0x61 0x6E 0x63 0x65 0x20 0x73 0x63 0x68    // 'ance sch' \n\t0x6F 0x6F 0x6C 0x2E 0x20 0x20 0x42 0x75    // 'ool.  Bu' \n\t0x74 0x20 0x68 0x65 0x20 0x77 0x61 0x73    // 't he was' \n\t0x20 0x64 0x69 0x73 0x63 0x6F 0x76 0x65    // ' discove' \n\t0x72 0x65 0x64 0x20 0x61 0x74 0x20 0x74    // 'red at t' \n\t0x68 0x65 0x20 0x72 0x65 0x73 0x74 0x61    // 'he resta' \n\t0x75 0x72 0x61 0x6E 0x74 0x20 0x77 0x68    // 'urant wh' \n\t0x65 0x6E 0x20 0x74 0x68 0x65 0x20 0x66    // 'en the f' \n\t0x6C 0x6F 0x6F 0x72 0x20 0x77 0x61 0x73    // 'loor was' \n\t0x20 0x75 0x6E 0x75 0x73 0x75 0x61 0x6C    // ' unusual' \n\t0x6C 0x79 0x20 0x73 0x6C 0x69 0x70 0x70    // 'ly slipp' \n\t0x65 0x72 0x79 0x20 0x6F 0x6E 0x65 0x20    // 'ery one ' \n\t0x65 0x76 0x65 0x6E 0x69 0x6E 0x67 0x2E    // 'evening.' \n\t0x20 0x20 0x54 0x68 0x65 0x20 0x64 0x69    // '  The di' \n\t0x72 0x65 0x63 0x74 0x6F 0x72 0x20 0x4D    // 'rector M' \n\t0x63 0x5A 0x65 0x65 0x20 0x77 0x61 0x73    // 'cZee was' \n\t0x20 0x68 0x61 0x76 0x69 0x6E 0x67 0x20    // ' having ' \n\t0x64 0x69 0x6E 0x6E 0x65 0x72 0x2C 0x20    // 'dinner, ' \n\t0x61 0x6E 0x64 0x20 0x77 0x61 0x74 0x63    // 'and watc' \n\t0x68 0x65 0x64 0x20 0x42 0x69 0x6C 0x6C    // 'hed Bill' \n\t0x79 0x20 0x70 0x72 0x65 0x70 0x61 0x72    // 'y prepar' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x66 0x69    // 'e the fi' \n\t0x73 0x68 0x20 0x61 0x6E 0x64 0x20 0x64    // 'sh and d' \n\t0x6F 0x20 0x68 0x69 0x73 0x20 0x22 0x64    // 'o his \"d' \n\t0x61 0x6E 0x63 0x65 0x2E 0x22 0x20 0x20    // 'ance.\"  ' \n\t0x4E 0x6F 0x77 0x20 0x42 0x69 0x6C 0x6C    // 'Now Bill' \n\t0x79 0x27 0x73 0x20 0x61 0x20 0x73 0x74    // 'y's a st' \n\t0x61 0x72 0x2E 0x20                        // 'ar. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3B= ktipbio18\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"ktipbio18\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"ktipbio18\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_28=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio18\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_28=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_28=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA3 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0B 0x02 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_28=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x65 0x6E 0x65 0x72 0x61    // '??Genera' \n\t0x6C 0x0D 0x0A 0x42 0x69 0x6C 0x6C 0x79    // 'l??Billy' \n\t0x20 0x74 0x68 0x69 0x6E 0x6B 0x73 0x20    // ' thinks ' \n\t0x68 0x65 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'he would' \n\t0x20 0x62 0x65 0x20 0x61 0x6E 0x20 0x61    // ' be an a' \n\t0x77 0x65 0x73 0x6F 0x6D 0x65 0x20 0x22    // 'wesome \"' \n\t0x67 0x65 0x6E 0x65 0x72 0x61 0x6C 0x20    // 'general ' \n\t0x77 0x69 0x74 0x68 0x20 0x61 0x6E 0x20    // 'with an ' \n\t0x61 0x74 0x74 0x69 0x74 0x75 0x64 0x65    // 'attitude' \n\t0x22 0x20 0x69 0x6E 0x20 0x61 0x20 0x74    // '\" in a t' \n\t0x68 0x72 0x69 0x6C 0x6C 0x65 0x72 0x20    // 'hriller ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2E 0x20 0x20    // 'movie.  ' \n\t0x53 0x68 0x6F 0x72 0x74 0x20 0x61 0x6E    // 'Short an' \n\t0x64 0x20 0x73 0x74 0x72 0x6F 0x6E 0x67    // 'd strong' \n\t0x20 0x61 0x73 0x20 0x61 0x20 0x74 0x61    // ' as a ta' \n\t0x6E 0x6B 0x2C 0x20 0x42 0x69 0x6C 0x6C    // 'nk, Bill' \n\t0x79 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 'y would ' \n\t0x77 0x61 0x6C 0x6B 0x20 0x61 0x72 0x6F    // 'walk aro' \n\t0x75 0x6E 0x64 0x20 0x73 0x6C 0x6F 0x77    // 'und slow' \n\t0x6C 0x79 0x20 0x61 0x6E 0x64 0x20 0x74    // 'ly and t' \n\t0x68 0x6F 0x75 0x67 0x68 0x74 0x66 0x75    // 'houghtfu' \n\t0x6C 0x6C 0x79 0x20 0x77 0x68 0x69 0x6C    // 'lly whil' \n\t0x65 0x20 0x70 0x6C 0x61 0x6E 0x6E 0x69    // 'e planni' \n\t0x6E 0x67 0x20 0x68 0x69 0x73 0x20 0x61    // 'ng his a' \n\t0x74 0x74 0x61 0x63 0x6B 0x73 0x2E 0x20    // 'ttacks. ' \n\t0x20 0x48 0x65 0x20 0x64 0x72 0x65 0x61    // ' He drea' \n\t0x6D 0x73 0x20 0x74 0x68 0x61 0x74 0x20    // 'ms that ' \n\t0x68 0x69 0x73 0x20 0x74 0x72 0x6F 0x6F    // 'his troo' \n\t0x70 0x73 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'ps would' \n\t0x20 0x77 0x69 0x6E 0x20 0x61 0x6E 0x20    // ' win an ' \n\t0x69 0x6D 0x70 0x6F 0x72 0x74 0x61 0x6E    // 'importan' \n\t0x74 0x20 0x62 0x61 0x74 0x74 0x6C 0x65    // 't battle' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x66 0x61    // ' in a fa' \n\t0x72 0x20 0x61 0x77 0x61 0x79 0x20 0x70    // 'r away p' \n\t0x6C 0x61 0x63 0x65 0x20 0x6C 0x69 0x6B    // 'lace lik' \n\t0x65 0x20 0x4E 0x6F 0x72 0x74 0x68 0x20    // 'e North ' \n\t0x41 0x66 0x72 0x69 0x63 0x61 0x2E 0x20    // 'Africa. ' \n\t0x20 0x4F 0x6E 0x20 0x74 0x68 0x65 0x20    // ' On the ' \n\t0x70 0x6F 0x72 0x63 0x68 0x20 0x6F 0x66    // 'porch of' \n\t0x20 0x61 0x20 0x4E 0x6F 0x72 0x74 0x68    // ' a North' \n\t0x20 0x41 0x66 0x72 0x69 0x63 0x61 0x6E    // ' African' \n\t0x20 0x76 0x69 0x6C 0x6C 0x61 0x2C 0x20    // ' villa, ' \n\t0x42 0x69 0x6C 0x6C 0x79 0x20 0x77 0x6F    // 'Billy wo' \n\t0x75 0x6C 0x64 0x20 0x66 0x61 0x63 0x65    // 'uld face' \n\t0x20 0x74 0x68 0x65 0x20 0x65 0x6E 0x65    // ' the ene' \n\t0x6D 0x79 0x92 0x73 0x20 0x6C 0x65 0x61    // 'mys lea' \n\t0x64 0x65 0x72 0x2E 0x20 0x20 0x54 0x68    // 'der.  Th' \n\t0x65 0x20 0x6C 0x65 0x61 0x64 0x65 0x72    // 'e leader' \n\t0x20 0x6B 0x6E 0x6F 0x77 0x73 0x20 0x6B    // ' knows k' \n\t0x61 0x72 0x61 0x74 0x65 0x2C 0x20 0x62    // 'arate, b' \n\t0x75 0x74 0x20 0x64 0x6F 0x65 0x73 0x6E    // 'ut doesn' \n\t0x92 0x74 0x20 0x6B 0x6E 0x6F 0x77 0x20    // 't know ' \n\t0x42 0x69 0x6C 0x6C 0x79 0x27 0x73 0x20    // 'Billy's ' \n\t0x77 0x65 0x61 0x70 0x6F 0x6E 0x97 0x74    // 'weapont' \n\t0x68 0x61 0x74 0x20 0x77 0x68 0x65 0x6E    // 'hat when' \n\t0x20 0x42 0x69 0x6C 0x6C 0x79 0x20 0x64    // ' Billy d' \n\t0x61 0x6E 0x63 0x65 0x73 0x2C 0x20 0x68    // 'ances, h' \n\t0x65 0x20 0x63 0x61 0x6E 0x20 0x6D 0x61    // 'e can ma' \n\t0x6B 0x65 0x20 0x70 0x65 0x6F 0x70 0x6C    // 'ke peopl' \n\t0x65 0x20 0x66 0x6F 0x72 0x67 0x65 0x74    // 'e forget' \n\t0x20 0x77 0x68 0x79 0x20 0x74 0x68 0x65    // ' why the' \n\t0x79 0x20 0x77 0x65 0x72 0x65 0x20 0x66    // 'y were f' \n\t0x69 0x67 0x68 0x74 0x69 0x6E 0x67 0x20    // 'ighting ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x66    // 'in the f' \n\t0x69 0x72 0x73 0x74 0x20 0x70 0x6C 0x61    // 'irst pla' \n\t0x63 0x65 0x2E 0x0D 0x0A 0x42 0x69 0x6C    // 'ce.??Bil' \n\t0x6C 0x79 0x20 0x63 0x61 0x6E 0x20 0x61    // 'ly can a' \n\t0x76 0x6F 0x69 0x64 0x20 0x74 0x68 0x65    // 'void the' \n\t0x20 0x6C 0x65 0x61 0x64 0x65 0x72 0x27    // ' leader'' \n\t0x73 0x20 0x6B 0x61 0x72 0x61 0x74 0x65    // 's karate' \n\t0x20 0x6B 0x69 0x63 0x6B 0x73 0x2C 0x20    // ' kicks, ' \n\t0x62 0x75 0x74 0x20 0x68 0x6F 0x77 0x20    // 'but how ' \n\t0x63 0x61 0x6E 0x20 0x68 0x65 0x20 0x66    // 'can he f' \n\t0x69 0x6E 0x61 0x6C 0x6C 0x79 0x20 0x6F    // 'inally o' \n\t0x75 0x74 0x77 0x69 0x74 0x20 0x74 0x68    // 'utwit th' \n\t0x65 0x20 0x6C 0x65 0x61 0x64 0x65 0x72    // 'e leader' \n\t0x20 0x74 0x6F 0x20 0x77 0x69 0x6E 0x20    // ' to win ' \n\t0x74 0x6F 0x74 0x61 0x6C 0x20 0x76 0x69    // 'total vi' \n\t0x63 0x74 0x6F 0x72 0x79 0x3F 0x20 0x20    // 'ctory?  ' \n\t0x44 0x6F 0x65 0x73 0x20 0x42 0x69 0x6C    // 'Does Bil' \n\t0x6C 0x79 0x92 0x73 0x20 0x75 0x6E 0x69    // 'lys uni' \n\t0x66 0x6F 0x72 0x6D 0x20 0x67 0x69 0x76    // 'form giv' \n\t0x65 0x20 0x68 0x69 0x6D 0x20 0x73 0x70    // 'e him sp' \n\t0x65 0x63 0x69 0x61 0x6C 0x20 0x70 0x6F    // 'ecial po' \n\t0x77 0x65 0x72 0x73 0x3F                   // 'wers?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3C= ktipbio19\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"ktipbio19\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"ktipbio19\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio19\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x42 0x02 0x00 0x01    // '????B???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xC4 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x6F 0x72 0x65 0x6D 0x61    // '??Forema' \n\t0x6E 0x0D 0x0A 0x42 0x69 0x6C 0x6C 0x79    // 'n??Billy' \n\t0x27 0x73 0x20 0x75 0x6E 0x63 0x6C 0x65    // ''s uncle' \n\t0x20 0x77 0x61 0x73 0x20 0x61 0x20 0x63    // ' was a c' \n\t0x6F 0x6E 0x73 0x74 0x72 0x75 0x63 0x74    // 'onstruct' \n\t0x69 0x6F 0x6E 0x20 0x77 0x6F 0x72 0x6B    // 'ion work' \n\t0x65 0x72 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'er, and ' \n\t0x42 0x69 0x6C 0x6C 0x79 0x20 0x68 0x61    // 'Billy ha' \n\t0x73 0x20 0x61 0x6C 0x77 0x61 0x79 0x73    // 's always' \n\t0x20 0x77 0x61 0x6E 0x74 0x65 0x64 0x20    // ' wanted ' \n\t0x74 0x6F 0x20 0x66 0x6F 0x6C 0x6C 0x6F    // 'to follo' \n\t0x77 0x20 0x69 0x6E 0x20 0x68 0x69 0x73    // 'w in his' \n\t0x20 0x75 0x6E 0x63 0x6C 0x65 0x27 0x73    // ' uncle's' \n\t0x20 0x66 0x6F 0x6F 0x74 0x73 0x74 0x65    // ' footste' \n\t0x70 0x73 0x97 0x61 0x74 0x20 0x6C 0x65    // 'psat le' \n\t0x61 0x73 0x74 0x20 0x6F 0x6E 0x20 0x66    // 'ast on f' \n\t0x69 0x6C 0x6D 0x2E 0x20 0x20 0x48 0x65    // 'ilm.  He' \n\t0x27 0x64 0x20 0x6C 0x6F 0x76 0x65 0x20    // ''d love ' \n\t0x74 0x6F 0x20 0x73 0x74 0x61 0x72 0x20    // 'to star ' \n\t0x61 0x73 0x20 0x61 0x20 0x63 0x6F 0x6E    // 'as a con' \n\t0x73 0x74 0x72 0x75 0x63 0x74 0x69 0x6F    // 'structio' \n\t0x6E 0x20 0x77 0x6F 0x72 0x6B 0x65 0x72    // 'n worker' \n\t0x20 0x77 0x68 0x6F 0x20 0x62 0x75 0x69    // ' who bui' \n\t0x6C 0x64 0x73 0x20 0x61 0x20 0x63 0x6F    // 'lds a co' \n\t0x7A 0x79 0x20 0x63 0x61 0x62 0x69 0x6E    // 'zy cabin' \n\t0x20 0x66 0x6F 0x72 0x20 0x61 0x20 0x6C    // ' for a l' \n\t0x6F 0x63 0x61 0x6C 0x20 0x6D 0x69 0x6C    // 'ocal mil' \n\t0x6C 0x69 0x6F 0x6E 0x61 0x69 0x72 0x65    // 'lionaire' \n\t0x2E 0x20 0x20 0x42 0x75 0x74 0x20 0x77    // '.  But w' \n\t0x68 0x65 0x6E 0x20 0x74 0x68 0x65 0x20    // 'hen the ' \n\t0x6D 0x69 0x6C 0x6C 0x69 0x6F 0x6E 0x61    // 'milliona' \n\t0x69 0x72 0x65 0x20 0x64 0x69 0x73 0x61    // 'ire disa' \n\t0x70 0x70 0x65 0x61 0x72 0x73 0x2C 0x20    // 'ppears, ' \n\t0x42 0x69 0x6C 0x6C 0x79 0x20 0x67 0x65    // 'Billy ge' \n\t0x74 0x73 0x20 0x67 0x65 0x74 0x73 0x20    // 'ts gets ' \n\t0x74 0x61 0x6E 0x67 0x6C 0x65 0x64 0x20    // 'tangled ' \n\t0x75 0x70 0x20 0x69 0x6E 0x20 0x74 0x68    // 'up in th' \n\t0x65 0x20 0x6D 0x79 0x73 0x74 0x65 0x72    // 'e myster' \n\t0x69 0x6F 0x75 0x73 0x20 0x64 0x69 0x73    // 'ious dis' \n\t0x61 0x70 0x70 0x65 0x61 0x72 0x61 0x6E    // 'appearan' \n\t0x63 0x65 0x2E 0x20 0x20 0x48 0x65 0x20    // 'ce.  He ' \n\t0x73 0x65 0x61 0x72 0x63 0x68 0x65 0x73    // 'searches' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x61 0x6E    // ' the man' \n\t0x92 0x73 0x20 0x63 0x61 0x62 0x69 0x6E    // 's cabin' \n\t0x20 0x66 0x6F 0x72 0x20 0x63 0x6C 0x75    // ' for clu' \n\t0x65 0x73 0x2E 0x20 0x20 0x4F 0x6E 0x20    // 'es.  On ' \n\t0x74 0x68 0x65 0x20 0x77 0x61 0x6C 0x6C    // 'the wall' \n\t0x20 0x69 0x73 0x20 0x61 0x20 0x6D 0x61    // ' is a ma' \n\t0x73 0x6B 0x20 0x77 0x68 0x6F 0x73 0x65    // 'sk whose' \n\t0x20 0x65 0x79 0x65 0x73 0x20 0x73 0x65    // ' eyes se' \n\t0x65 0x6D 0x20 0x74 0x6F 0x20 0x66 0x6F    // 'em to fo' \n\t0x6C 0x6C 0x6F 0x77 0x20 0x68 0x69 0x73    // 'llow his' \n\t0x20 0x65 0x76 0x65 0x72 0x79 0x20 0x6D    // ' every m' \n\t0x6F 0x76 0x65 0x2E 0x20 0x4F 0x6E 0x20    // 'ove. On ' \n\t0x74 0x68 0x65 0x20 0x74 0x61 0x62 0x6C    // 'the tabl' \n\t0x65 0x20 0x69 0x73 0x20 0x61 0x20 0x6D    // 'e is a m' \n\t0x61 0x70 0x2E 0x20 0x0D 0x0A 0x48 0x61    // 'ap. ??Ha' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x6F 0x77    // 's the ow' \n\t0x6E 0x65 0x72 0x20 0x62 0x65 0x65 0x6E    // 'ner been' \n\t0x20 0x6B 0x69 0x64 0x6E 0x61 0x70 0x70    // ' kidnapp' \n\t0x65 0x64 0x2C 0x20 0x6F 0x72 0x20 0x69    // 'ed, or i' \n\t0x73 0x20 0x68 0x65 0x20 0x6A 0x75 0x73    // 's he jus' \n\t0x74 0x20 0x69 0x6E 0x20 0x4D 0x69 0x61    // 't in Mia' \n\t0x6D 0x69 0x20 0x6F 0x6E 0x20 0x61 0x20    // 'mi on a ' \n\t0x62 0x75 0x73 0x69 0x6E 0x65 0x73 0x73    // 'business' \n\t0x20 0x74 0x72 0x69 0x70 0x3F 0x20 0x20    // ' trip?  ' \n\t0x43 0x61 0x6E 0x20 0x42 0x69 0x6C 0x6C    // 'Can Bill' \n\t0x79 0x92 0x73 0x20 0x20 0x64 0x61 0x6E    // 'ys  dan' \n\t0x63 0x69 0x6E 0x67 0x20 0x73 0x6B 0x69    // 'cing ski' \n\t0x6C 0x6C 0x73 0x20 0x68 0x65 0x6C 0x70    // 'lls help' \n\t0x20 0x68 0x69 0x6D 0x20 0x73 0x61 0x76    // ' him sav' \n\t0x65 0x20 0x68 0x69 0x73 0x20 0x62 0x6F    // 'e his bo' \n\t0x73 0x73 0x3F 0x20                        // 'ss? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3D= ktipbio20\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"ktipbio20\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"ktipbio20\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio20\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x02 0x00 0x01    // '????&???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB0 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x6C 0x65 0x61 0x20 0x4D    // '??Flea M' \n\t0x61 0x72 0x6B 0x65 0x74 0x20 0x4D 0x61    // 'arket Ma' \n\t0x6E 0x61 0x67 0x65 0x72 0x0D 0x0A 0x41    // 'nager??A' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x6D 0x61    // 's the ma' \n\t0x6E 0x61 0x67 0x65 0x72 0x20 0x6F 0x66    // 'nager of' \n\t0x20 0x61 0x20 0x66 0x6C 0x65 0x61 0x20    // ' a flea ' \n\t0x6D 0x61 0x72 0x6B 0x65 0x74 0x2C 0x20    // 'market, ' \n\t0x42 0x69 0x6C 0x6C 0x79 0x20 0x63 0x6F    // 'Billy co' \n\t0x75 0x6C 0x64 0x20 0x73 0x68 0x6F 0x77    // 'uld show' \n\t0x20 0x6F 0x66 0x66 0x20 0x68 0x69 0x73    // ' off his' \n\t0x20 0x72 0x65 0x61 0x6C 0x20 0x74 0x61    // ' real ta' \n\t0x6C 0x65 0x6E 0x74 0x2E 0x20 0x20 0x42    // 'lent.  B' \n\t0x69 0x6C 0x6C 0x79 0x20 0x64 0x72 0x65    // 'illy dre' \n\t0x61 0x6D 0x73 0x20 0x6F 0x66 0x20 0x68    // 'ams of h' \n\t0x61 0x76 0x69 0x6E 0x67 0x20 0x61 0x20    // 'aving a ' \n\t0x63 0x6F 0x6F 0x6C 0x20 0x63 0x61 0x72    // 'cool car' \n\t0x74 0x20 0x77 0x69 0x74 0x68 0x20 0x62    // 't with b' \n\t0x61 0x6C 0x6C 0x6F 0x6F 0x6E 0x73 0x2C    // 'alloons,' \n\t0x20 0x74 0x72 0x69 0x6E 0x6B 0x65 0x74    // ' trinket' \n\t0x73 0x2C 0x20 0x70 0x6F 0x70 0x63 0x6F    // 's, popco' \n\t0x72 0x6E 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'rn, and ' \n\t0x73 0x77 0x65 0x65 0x74 0x73 0x2E 0x20    // 'sweets. ' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x61 0x6E    // ' When an' \n\t0x20 0x6F 0x6C 0x64 0x65 0x72 0x20 0x6C    // ' older l' \n\t0x61 0x64 0x79 0x20 0x77 0x69 0x74 0x68    // 'ady with' \n\t0x20 0x61 0x20 0x63 0x61 0x74 0x20 0x63    // ' a cat c' \n\t0x6F 0x6D 0x65 0x73 0x20 0x74 0x6F 0x20    // 'omes to ' \n\t0x62 0x75 0x79 0x20 0x73 0x6F 0x6D 0x65    // 'buy some' \n\t0x20 0x63 0x6F 0x74 0x74 0x6F 0x6E 0x20    // ' cotton ' \n\t0x63 0x61 0x6E 0x64 0x79 0x2C 0x20 0x68    // 'candy, h' \n\t0x65 0x72 0x20 0x63 0x61 0x74 0x20 0x72    // 'er cat r' \n\t0x75 0x6E 0x73 0x20 0x61 0x77 0x61 0x79    // 'uns away' \n\t0x2E 0x20 0x20 0x53 0x68 0x65 0x20 0x79    // '.  She y' \n\t0x65 0x6C 0x6C 0x73 0x2C 0x20 0x93 0x63    // 'ells, c' \n\t0x61 0x74 0x63 0x68 0x20 0x68 0x69 0x6D    // 'atch him' \n\t0x2C 0x20 0x63 0x61 0x74 0x63 0x68 0x20    // ', catch ' \n\t0x68 0x69 0x6D 0x2C 0x20 0x61 0x6C 0x6C    // 'him, all' \n\t0x20 0x6D 0x79 0x20 0x6D 0x6F 0x6E 0x65    // ' my mone' \n\t0x79 0x20 0x69 0x73 0x20 0x69 0x6E 0x20    // 'y is in ' \n\t0x68 0x69 0x73 0x20 0x63 0x6F 0x6C 0x6C    // 'his coll' \n\t0x61 0x72 0x21 0x94 0x20 0x20 0x54 0x68    // 'ar!  Th' \n\t0x65 0x20 0x63 0x61 0x74 0x20 0x72 0x75    // 'e cat ru' \n\t0x6E 0x73 0x20 0x73 0x63 0x61 0x72 0x65    // 'ns scare' \n\t0x64 0x2C 0x20 0x6A 0x75 0x6D 0x70 0x69    // 'd, jumpi' \n\t0x6E 0x67 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'ng from ' \n\t0x62 0x65 0x6E 0x63 0x68 0x20 0x74 0x6F    // 'bench to' \n\t0x20 0x62 0x65 0x6E 0x63 0x68 0x2C 0x20    // ' bench, ' \n\t0x63 0x72 0x61 0x77 0x6C 0x69 0x6E 0x67    // 'crawling' \n\t0x20 0x75 0x6E 0x64 0x65 0x72 0x20 0x42    // ' under B' \n\t0x69 0x6C 0x6C 0x79 0x92 0x73 0x20 0x63    // 'illys c' \n\t0x61 0x72 0x74 0x2C 0x20 0x61 0x6E 0x64    // 'art, and' \n\t0x20 0x74 0x68 0x65 0x6E 0x20 0x64 0x61    // ' then da' \n\t0x73 0x68 0x69 0x6E 0x67 0x20 0x6F 0x66    // 'shing of' \n\t0x66 0x20 0x61 0x67 0x61 0x69 0x6E 0x2E    // 'f again.' \n\t0x0D 0x0A 0x57 0x69 0x6C 0x6C 0x20 0x42    // '??Will B' \n\t0x69 0x6C 0x6C 0x79 0x92 0x73 0x20 0x64    // 'illys d' \n\t0x61 0x6E 0x63 0x69 0x6E 0x67 0x20 0x74    // 'ancing t' \n\t0x61 0x6C 0x65 0x6E 0x74 0x20 0x68 0x65    // 'alent he' \n\t0x6C 0x70 0x20 0x68 0x69 0x6D 0x20 0x64    // 'lp him d' \n\t0x69 0x73 0x74 0x72 0x61 0x63 0x74 0x20    // 'istract ' \n\t0x74 0x68 0x65 0x20 0x63 0x61 0x74 0x20    // 'the cat ' \n\t0x61 0x6E 0x64 0x20 0x72 0x65 0x63 0x6F    // 'and reco' \n\t0x76 0x65 0x72 0x20 0x74 0x68 0x65 0x20    // 'ver the ' \n\t0x77 0x6F 0x6D 0x61 0x6E 0x92 0x73 0x20    // 'womans ' \n\t0x6D 0x6F 0x6E 0x65 0x79 0x3F 0x20 0x20    // 'money?  ' \n\t0x41 0x6E 0x64 0x20 0x77 0x69 0x6C 0x6C    // 'And will' \n\t0x20 0x73 0x68 0x65 0x20 0x6F 0x66 0x66    // ' she off' \n\t0x65 0x72 0x20 0x68 0x69 0x6D 0x20 0x61    // 'er him a' \n\t0x20 0x72 0x65 0x77 0x61 0x72 0x64 0x3F    // ' reward?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3E= ktipbio21\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"ktipbio21\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"ktipbio21\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio21\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x02 0x00 0x01    // '????,???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x05 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x62 0x6F 0x0D 0x0A 0x42    // '??Ibo??B' \n\t0x69 0x6E 0x6F 0x92 0x73 0x20 0x66 0x61    // 'inos fa' \n\t0x6D 0x69 0x6C 0x79 0x20 0x69 0x73 0x20    // 'mily is ' \n\t0x76 0x65 0x72 0x79 0x20 0x6C 0x61 0x72    // 'very lar' \n\t0x67 0x65 0x20 0x61 0x6E 0x64 0x20 0x74    // 'ge and t' \n\t0x68 0x65 0x79 0x20 0x61 0x6C 0x6C 0x20    // 'hey all ' \n\t0x68 0x61 0x76 0x65 0x20 0x62 0x65 0x61    // 'have bea' \n\t0x75 0x74 0x69 0x66 0x75 0x6C 0x20 0x77    // 'utiful w' \n\t0x68 0x69 0x74 0x65 0x20 0x74 0x65 0x65    // 'hite tee' \n\t0x74 0x68 0x2C 0x20 0x77 0x68 0x69 0x63    // 'th, whic' \n\t0x68 0x20 0x69 0x73 0x20 0x61 0x20 0x67    // 'h is a g' \n\t0x6F 0x6F 0x64 0x20 0x73 0x65 0x6C 0x6C    // 'ood sell' \n\t0x69 0x6E 0x67 0x20 0x70 0x6F 0x69 0x6E    // 'ing poin' \n\t0x74 0x20 0x69 0x66 0x20 0x79 0x6F 0x75    // 't if you' \n\t0x27 0x72 0x65 0x20 0x69 0x6E 0x20 0x74    // ''re in t' \n\t0x68 0x65 0x20 0x74 0x6F 0x6F 0x74 0x68    // 'he tooth' \n\t0x70 0x61 0x73 0x74 0x65 0x20 0x62 0x75    // 'paste bu' \n\t0x73 0x69 0x6E 0x65 0x73 0x73 0x2E 0x20    // 'siness. ' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x68 0x65    // ' When he' \n\t0x20 0x77 0x61 0x73 0x20 0x67 0x72 0x6F    // ' was gro' \n\t0x77 0x69 0x6E 0x67 0x20 0x75 0x70 0x2C    // 'wing up,' \n\t0x20 0x74 0x68 0x65 0x72 0x65 0x20 0x77    // ' there w' \n\t0x61 0x73 0x20 0x61 0x20 0x62 0x69 0x67    // 'as a big' \n\t0x20 0x6C 0x69 0x6E 0x65 0x20 0x66 0x6F    // ' line fo' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x62 0x61    // 'r the ba' \n\t0x74 0x68 0x72 0x6F 0x6F 0x6D 0x20 0x65    // 'throom e' \n\t0x61 0x63 0x68 0x20 0x6D 0x6F 0x72 0x6E    // 'ach morn' \n\t0x69 0x6E 0x67 0x20 0x61 0x6E 0x64 0x20    // 'ing and ' \n\t0x65 0x61 0x63 0x68 0x20 0x6E 0x69 0x67    // 'each nig' \n\t0x68 0x74 0x20 0x77 0x68 0x69 0x6C 0x65    // 'ht while' \n\t0x20 0x42 0x69 0x6E 0x6F 0x20 0x77 0x61    // ' Bino wa' \n\t0x69 0x74 0x65 0x64 0x20 0x74 0x6F 0x20    // 'ited to ' \n\t0x62 0x72 0x75 0x73 0x68 0x20 0x68 0x69    // 'brush hi' \n\t0x73 0x20 0x74 0x65 0x65 0x74 0x68 0x2E    // 's teeth.' \n\t0x20 0x20 0x48 0x69 0x73 0x20 0x66 0x61    // '  His fa' \n\t0x6D 0x69 0x6C 0x79 0x20 0x74 0x6F 0x6F    // 'mily too' \n\t0x6B 0x20 0x74 0x68 0x61 0x74 0x20 0x74    // 'k that t' \n\t0x69 0x6D 0x65 0x20 0x74 0x6F 0x20 0x73    // 'ime to s' \n\t0x69 0x6E 0x67 0x20 0x74 0x6F 0x67 0x65    // 'ing toge' \n\t0x74 0x68 0x65 0x72 0x20 0x61 0x6E 0x64    // 'ther and' \n\t0x20 0x63 0x6C 0x61 0x70 0x20 0x6F 0x75    // ' clap ou' \n\t0x74 0x20 0x63 0x6F 0x6D 0x70 0x6C 0x65    // 't comple' \n\t0x78 0x20 0x72 0x68 0x79 0x74 0x68 0x6D    // 'x rhythm' \n\t0x73 0x2E 0x20 0x20 0x54 0x68 0x65 0x6E    // 's.  Then' \n\t0x20 0x42 0x69 0x6E 0x6F 0x20 0x61 0x6E    // ' Bino an' \n\t0x64 0x20 0x68 0x69 0x73 0x20 0x62 0x72    // 'd his br' \n\t0x6F 0x74 0x68 0x65 0x72 0x73 0x20 0x73    // 'others s' \n\t0x61 0x6E 0x67 0x20 0x74 0x68 0x65 0x73    // 'ang thes' \n\t0x65 0x20 0x73 0x6F 0x6E 0x67 0x73 0x20    // 'e songs ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x6D    // 'in the m' \n\t0x61 0x72 0x6B 0x65 0x74 0x70 0x6C 0x61    // 'arketpla' \n\t0x63 0x65 0x20 0x77 0x68 0x69 0x6C 0x65    // 'ce while' \n\t0x20 0x68 0x69 0x73 0x20 0x66 0x61 0x74    // ' his fat' \n\t0x68 0x65 0x72 0x20 0x73 0x6F 0x6C 0x64    // 'her sold' \n\t0x20 0x74 0x6F 0x6F 0x74 0x68 0x70 0x61    // ' toothpa' \n\t0x73 0x74 0x65 0x2E 0x20 0x20 0x54 0x68    // 'ste.  Th' \n\t0x65 0x79 0x20 0x61 0x6C 0x77 0x61 0x79    // 'ey alway' \n\t0x73 0x20 0x67 0x61 0x74 0x68 0x65 0x72    // 's gather' \n\t0x65 0x64 0x20 0x71 0x75 0x69 0x74 0x65    // 'ed quite' \n\t0x20 0x61 0x20 0x63 0x72 0x6F 0x77 0x64    // ' a crowd' \n\t0x2E 0x20 0x20 0x42 0x69 0x6E 0x6F 0x20    // '.  Bino ' \n\t0x6C 0x6F 0x76 0x65 0x64 0x20 0x74 0x68    // 'loved th' \n\t0x65 0x20 0x61 0x74 0x74 0x65 0x6E 0x74    // 'e attent' \n\t0x69 0x6F 0x6E 0x2C 0x20 0x61 0x6E 0x64    // 'ion, and' \n\t0x20 0x64 0x65 0x63 0x69 0x64 0x65 0x64    // ' decided' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x61 0x20    // ' that a ' \n\t0x6C 0x69 0x66 0x65 0x20 0x61 0x73 0x20    // 'life as ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x20 0x77 0x61 0x73 0x20 0x66 0x6F 0x72    // ' was for' \n\t0x20 0x68 0x69 0x6D 0x2E 0x20              // ' him. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3F= ktipbio22\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"ktipbio22\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"ktipbio22\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_44=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio22\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_44=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x26 0x01 0x00 0x00    // '????&???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_44=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_44, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3F 0x03 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xDB 0x02 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_44=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_44, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x75 0x74 0x6F 0x72 0x0D    // '??Tutor?' \n\t0x0A 0x42 0x69 0x6E 0x6F 0x20 0x74 0x75    // '?Bino tu' \n\t0x74 0x6F 0x72 0x65 0x64 0x20 0x6D 0x61    // 'tored ma' \n\t0x6E 0x79 0x20 0x79 0x6F 0x75 0x6E 0x67    // 'ny young' \n\t0x65 0x72 0x20 0x62 0x72 0x6F 0x74 0x68    // 'er broth' \n\t0x65 0x72 0x73 0x20 0x61 0x6E 0x64 0x20    // 'ers and ' \n\t0x63 0x6F 0x75 0x73 0x69 0x6E 0x73 0x20    // 'cousins ' \n\t0x69 0x6E 0x20 0x68 0x69 0x73 0x20 0x66    // 'in his f' \n\t0x61 0x6D 0x69 0x6C 0x79 0x20 0x77 0x68    // 'amily wh' \n\t0x69 0x6C 0x65 0x20 0x74 0x68 0x65 0x79    // 'ile they' \n\t0x20 0x77 0x65 0x72 0x65 0x20 0x69 0x6E    // ' were in' \n\t0x20 0x73 0x63 0x68 0x6F 0x6F 0x6C 0x2E    // ' school.' \n\t0x20 0x20 0x48 0x65 0x20 0x77 0x6F 0x75    // '  He wou' \n\t0x6C 0x64 0x20 0x6C 0x69 0x6B 0x65 0x20    // 'ld like ' \n\t0x74 0x6F 0x20 0x70 0x6C 0x61 0x79 0x20    // 'to play ' \n\t0x74 0x68 0x65 0x20 0x70 0x61 0x72 0x74    // 'the part' \n\t0x20 0x6F 0x66 0x20 0x61 0x20 0x74 0x75    // ' of a tu' \n\t0x74 0x6F 0x72 0x20 0x69 0x6E 0x20 0x61    // 'tor in a' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x62    // ' movie b' \n\t0x65 0x63 0x61 0x75 0x73 0x65 0x20 0x68    // 'ecause h' \n\t0x65 0x20 0x63 0x6F 0x75 0x6C 0x64 0x20    // 'e could ' \n\t0x74 0x65 0x61 0x63 0x68 0x20 0x61 0x62    // 'teach ab' \n\t0x6F 0x75 0x74 0x20 0x61 0x6E 0x63 0x69    // 'out anci' \n\t0x65 0x6E 0x74 0x20 0x70 0x65 0x6F 0x70    // 'ent peop' \n\t0x6C 0x65 0x20 0x61 0x6E 0x64 0x20 0x70    // 'le and p' \n\t0x6C 0x61 0x63 0x65 0x73 0x20 0x62 0x79    // 'laces by' \n\t0x20 0x61 0x63 0x74 0x75 0x61 0x6C 0x6C    // ' actuall' \n\t0x79 0x20 0x67 0x6F 0x69 0x6E 0x67 0x20    // 'y going ' \n\t0x74 0x68 0x65 0x72 0x65 0x2C 0x20 0x6F    // 'there, o' \n\t0x6E 0x20 0x61 0x20 0x70 0x6C 0x61 0x6E    // 'n a plan' \n\t0x65 0x21 0x20 0x20 0x4B 0x69 0x64 0x73    // 'e!  Kids' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x6C    // ' would l' \n\t0x6F 0x76 0x65 0x20 0x74 0x6F 0x20 0x68    // 'ove to h' \n\t0x61 0x76 0x65 0x20 0x42 0x69 0x6E 0x6F    // 'ave Bino' \n\t0x20 0x61 0x73 0x20 0x74 0x68 0x65 0x69    // ' as thei' \n\t0x72 0x20 0x74 0x75 0x74 0x6F 0x72 0x97    // 'r tutor' \n\t0x77 0x69 0x74 0x68 0x20 0x68 0x69 0x6D    // 'with him' \n\t0x2C 0x20 0x6C 0x65 0x61 0x72 0x6E 0x69    // ', learni' \n\t0x6E 0x67 0x20 0x69 0x73 0x20 0x61 0x6E    // 'ng is an' \n\t0x20 0x61 0x64 0x76 0x65 0x6E 0x74 0x75    // ' adventu' \n\t0x72 0x65 0x2E 0x20 0x0D 0x0A 0x42 0x69    // 're. ??Bi' \n\t0x6E 0x6F 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'no would' \n\t0x20 0x76 0x69 0x73 0x69 0x74 0x20 0x74    // ' visit t' \n\t0x68 0x65 0x20 0x53 0x70 0x6F 0x6F 0x6B    // 'he Spook' \n\t0x79 0x20 0x68 0x6F 0x75 0x73 0x65 0x20    // 'y house ' \n\t0x74 0x6F 0x20 0x62 0x65 0x20 0x74 0x68    // 'to be th' \n\t0x65 0x69 0x72 0x20 0x74 0x75 0x74 0x6F    // 'eir tuto' \n\t0x72 0x2E 0x20 0x20 0x46 0x69 0x72 0x73    // 'r.  Firs' \n\t0x74 0x20 0x74 0x68 0x65 0x79 0x20 0x77    // 't they w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x74 0x72 0x61    // 'ould tra' \n\t0x76 0x65 0x6C 0x20 0x74 0x6F 0x20 0x61    // 'vel to a' \n\t0x20 0x70 0x72 0x65 0x68 0x69 0x73 0x74    // ' prehist' \n\t0x6F 0x72 0x69 0x63 0x20 0x63 0x61 0x76    // 'oric cav' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x61 0x20 0x73 0x63 0x69 0x65 0x6E 0x74    // 'a scient' \n\t0x69 0x73 0x74 0x20 0x74 0x65 0x6C 0x6C    // 'ist tell' \n\t0x73 0x20 0x74 0x68 0x65 0x6D 0x20 0x61    // 's them a' \n\t0x62 0x6F 0x75 0x74 0x20 0x63 0x61 0x76    // 'bout cav' \n\t0x65 0x20 0x70 0x61 0x69 0x6E 0x74 0x69    // 'e painti' \n\t0x6E 0x67 0x73 0x2E 0x20 0x20 0x42 0x75    // 'ngs.  Bu' \n\t0x74 0x20 0x74 0x68 0x65 0x72 0x65 0x20    // 't there ' \n\t0x69 0x73 0x20 0x61 0x20 0x62 0x69 0x67    // 'is a big' \n\t0x20 0x65 0x78 0x70 0x6C 0x6F 0x73 0x69    // ' explosi' \n\t0x6F 0x6E 0x20 0x61 0x6E 0x64 0x20 0x74    // 'on and t' \n\t0x68 0x65 0x79 0x20 0x68 0x61 0x76 0x65    // 'hey have' \n\t0x20 0x74 0x6F 0x20 0x72 0x75 0x6E 0x20    // ' to run ' \n\t0x74 0x6F 0x20 0x67 0x65 0x74 0x20 0x62    // 'to get b' \n\t0x61 0x63 0x6B 0x20 0x74 0x6F 0x20 0x74    // 'ack to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x6E 0x65    // 'he plane' \n\t0x2E 0x20 0x0D 0x0A 0x4E 0x65 0x78 0x74    // '. ??Next' \n\t0x20 0x74 0x68 0x65 0x79 0x20 0x6C 0x61    // ' they la' \n\t0x6E 0x64 0x20 0x6E 0x65 0x61 0x72 0x20    // 'nd near ' \n\t0x61 0x20 0x74 0x72 0x6F 0x70 0x69 0x63    // 'a tropic' \n\t0x61 0x6C 0x20 0x68 0x75 0x74 0x20 0x77    // 'al hut w' \n\t0x68 0x65 0x72 0x65 0x20 0x74 0x68 0x65    // 'here the' \n\t0x79 0x20 0x61 0x72 0x65 0x20 0x61 0x73    // 'y are as' \n\t0x6B 0x65 0x64 0x20 0x74 0x6F 0x20 0x66    // 'ked to f' \n\t0x69 0x6E 0x64 0x20 0x61 0x20 0x74 0x72    // 'ind a tr' \n\t0x65 0x61 0x73 0x75 0x72 0x65 0x20 0x63    // 'easure c' \n\t0x68 0x65 0x73 0x74 0x20 0x6C 0x65 0x66    // 'hest lef' \n\t0x74 0x20 0x62 0x79 0x20 0x61 0x6E 0x63    // 't by anc' \n\t0x69 0x65 0x6E 0x74 0x20 0x65 0x78 0x70    // 'ient exp' \n\t0x6C 0x6F 0x72 0x65 0x72 0x73 0x2E 0x20    // 'lorers. ' \n\t0x20 0x42 0x75 0x74 0x20 0x74 0x68 0x65    // ' But the' \n\t0x79 0x20 0x6F 0x6E 0x6C 0x79 0x20 0x66    // 'y only f' \n\t0x69 0x6E 0x64 0x20 0x61 0x20 0x63 0x68    // 'ind a ch' \n\t0x61 0x74 0x74 0x65 0x72 0x69 0x6E 0x67    // 'attering' \n\t0x20 0x73 0x6B 0x75 0x6C 0x6C 0x20 0x74    // ' skull t' \n\t0x68 0x61 0x74 0x20 0x74 0x65 0x6C 0x6C    // 'hat tell' \n\t0x73 0x20 0x74 0x68 0x65 0x6D 0x20 0x74    // 's them t' \n\t0x6F 0x20 0x67 0x65 0x74 0x20 0x6F 0x75    // 'o get ou' \n\t0x74 0x21 0x20 0x0D 0x0A 0x57 0x69 0x6C    // 't! ??Wil' \n\t0x6C 0x20 0x42 0x69 0x6E 0x6F 0x20 0x61    // 'l Bino a' \n\t0x6E 0x64 0x20 0x68 0x69 0x73 0x20 0x73    // 'nd his s' \n\t0x74 0x75 0x64 0x65 0x6E 0x74 0x73 0x20    // 'tudents ' \n\t0x73 0x74 0x61 0x79 0x20 0x74 0x6F 0x20    // 'stay to ' \n\t0x66 0x69 0x6E 0x64 0x20 0x74 0x68 0x65    // 'find the' \n\t0x20 0x74 0x72 0x65 0x61 0x73 0x75 0x72    // ' treasur' \n\t0x65 0x20 0x63 0x68 0x65 0x73 0x74 0x20    // 'e chest ' \n\t0x6F 0x72 0x20 0x77 0x69 0x6C 0x6C 0x20    // 'or will ' \n\t0x74 0x68 0x65 0x79 0x20 0x67 0x6F 0x20    // 'they go ' \n\t0x6F 0x6E 0x20 0x74 0x6F 0x20 0x74 0x68    // 'on to th' \n\t0x65 0x20 0x6E 0x65 0x78 0x74 0x20 0x6C    // 'e next l' \n\t0x6F 0x63 0x61 0x74 0x69 0x6F 0x6E 0x3F    // 'ocation?' \n\t0x20                                       // ' ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_40= ktipbio23\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_40, __HELP_NAME(\"ktipbio23\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_40, __HELP_NAME(\"ktipbio23\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_40, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio23\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8B 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xC7 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x72 0x65 0x65 0x74    // '??Street' \n\t0x20 0x45 0x6E 0x74 0x65 0x72 0x74 0x61    // ' Enterta' \n\t0x69 0x6E 0x65 0x72 0x0D 0x0A 0x0A 0x42    // 'iner???B' \n\t0x61 0x73 0x65 0x64 0x20 0x6F 0x6E 0x20    // 'ased on ' \n\t0x68 0x69 0x73 0x20 0x65 0x78 0x70 0x65    // 'his expe' \n\t0x72 0x69 0x65 0x6E 0x63 0x65 0x20 0x69    // 'rience i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x6D 0x61    // 'n the ma' \n\t0x72 0x6B 0x65 0x74 0x70 0x6C 0x61 0x63    // 'rketplac' \n\t0x65 0x73 0x20 0x6F 0x66 0x20 0x49 0x62    // 'es of Ib' \n\t0x6F 0x6C 0x61 0x6E 0x64 0x2C 0x20 0x42    // 'oland, B' \n\t0x69 0x6E 0x6F 0x20 0x77 0x6F 0x75 0x6C    // 'ino woul' \n\t0x64 0x20 0x62 0x65 0x20 0x61 0x6E 0x20    // 'd be an ' \n\t0x65 0x78 0x63 0x65 0x6C 0x6C 0x65 0x6E    // 'excellen' \n\t0x74 0x20 0x73 0x74 0x72 0x65 0x65 0x74    // 't street' \n\t0x20 0x65 0x6E 0x74 0x65 0x72 0x74 0x61    // ' enterta' \n\t0x69 0x6E 0x65 0x72 0x20 0x69 0x6E 0x20    // 'iner in ' \n\t0x61 0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E    // 'a movie.' \n\t0x20 0x20 0x43 0x72 0x6F 0x77 0x64 0x73    // '  Crowds' \n\t0x20 0x67 0x61 0x74 0x68 0x65 0x72 0x20    // ' gather ' \n\t0x61 0x72 0x6F 0x75 0x6E 0x64 0x20 0x68    // 'around h' \n\t0x69 0x6D 0x20 0x61 0x6E 0x64 0x20 0x74    // 'im and t' \n\t0x72 0x79 0x20 0x74 0x6F 0x20 0x69 0x6D    // 'ry to im' \n\t0x69 0x74 0x61 0x74 0x65 0x20 0x68 0x69    // 'itate hi' \n\t0x73 0x20 0x64 0x61 0x6E 0x63 0x65 0x20    // 's dance ' \n\t0x6D 0x6F 0x76 0x65 0x73 0x2E 0x20 0x0D    // 'moves. ?' \n\t0x0A 0x42 0x75 0x74 0x20 0x77 0x68 0x65    // '?But whe' \n\t0x6E 0x20 0x61 0x6E 0x20 0x61 0x6C 0x69    // 'n an ali' \n\t0x65 0x6E 0x20 0x73 0x70 0x61 0x63 0x65    // 'en space' \n\t0x73 0x68 0x69 0x70 0x20 0x6C 0x61 0x6E    // 'ship lan' \n\t0x64 0x73 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ds in th' \n\t0x65 0x20 0x6D 0x69 0x64 0x64 0x6C 0x65    // 'e middle' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x73 0x74 0x72 0x65 0x65 0x74 0x2C 0x20    // 'street, ' \n\t0x61 0x6E 0x64 0x20 0x74 0x77 0x6F 0x20    // 'and two ' \n\t0x61 0x6C 0x69 0x65 0x6E 0x20 0x72 0x6F    // 'alien ro' \n\t0x62 0x6F 0x74 0x73 0x20 0x77 0x61 0x6E    // 'bots wan' \n\t0x74 0x20 0x42 0x69 0x6E 0x6F 0x20 0x74    // 't Bino t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x6F 0x20 0x74 0x68 0x65 0x69 0x72 0x20    // 'o their ' \n\t0x70 0x6C 0x61 0x6E 0x65 0x74 0x20 0x74    // 'planet t' \n\t0x6F 0x20 0x74 0x65 0x61 0x63 0x68 0x20    // 'o teach ' \n\t0x65 0x76 0x65 0x72 0x79 0x6F 0x6E 0x65    // 'everyone' \n\t0x20 0x74 0x68 0x65 0x72 0x65 0x20 0x68    // ' there h' \n\t0x6F 0x77 0x20 0x74 0x6F 0x20 0x64 0x61    // 'ow to da' \n\t0x6E 0x63 0x65 0x2C 0x20 0x63 0x61 0x6E    // 'nce, can' \n\t0x20 0x68 0x65 0x20 0x72 0x75 0x6E 0x20    // ' he run ' \n\t0x74 0x68 0x72 0x6F 0x75 0x67 0x68 0x20    // 'through ' \n\t0x74 0x68 0x65 0x20 0x6D 0x61 0x6C 0x6C    // 'the mall' \n\t0x20 0x61 0x6E 0x64 0x20 0x65 0x73 0x63    // ' and esc' \n\t0x61 0x70 0x65 0x3F 0x20                   // 'ape? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_41= ktipbio24\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_41, __HELP_NAME(\"ktipbio24\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_41, __HELP_NAME(\"ktipbio24\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_41=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_41, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio24\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_41=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_41, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_41=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x72 0x01 0x00 0x01    // '????r???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1D 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_41=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x75 0x73 0x69 0x63 0x20    // '??Music ' \n\t0x4D 0x61 0x73 0x74 0x65 0x72 0x0D 0x0A    // 'Master??' \n\t0x42 0x69 0x6E 0x6F 0x20 0x77 0x6F 0x75    // 'Bino wou' \n\t0x6C 0x64 0x20 0x6C 0x6F 0x76 0x65 0x20    // 'ld love ' \n\t0x74 0x6F 0x20 0x70 0x6C 0x61 0x79 0x20    // 'to play ' \n\t0x74 0x68 0x65 0x20 0x70 0x61 0x72 0x74    // 'the part' \n\t0x20 0x6F 0x66 0x20 0x61 0x20 0x66 0x61    // ' of a fa' \n\t0x6D 0x6F 0x75 0x73 0x20 0x6D 0x75 0x73    // 'mous mus' \n\t0x69 0x63 0x69 0x61 0x6E 0x20 0x77 0x68    // 'ician wh' \n\t0x6F 0x20 0x67 0x65 0x74 0x73 0x20 0x66    // 'o gets f' \n\t0x6F 0x6C 0x6C 0x6F 0x77 0x65 0x64 0x20    // 'ollowed ' \n\t0x62 0x79 0x20 0x66 0x61 0x6E 0x73 0x20    // 'by fans ' \n\t0x65 0x76 0x65 0x72 0x79 0x77 0x68 0x65    // 'everywhe' \n\t0x72 0x65 0x20 0x61 0x6E 0x64 0x20 0x64    // 're and d' \n\t0x6F 0x65 0x73 0x6E 0x92 0x74 0x20 0x68    // 'oesnt h' \n\t0x61 0x76 0x65 0x20 0x61 0x20 0x6D 0x6F    // 'ave a mo' \n\t0x6D 0x65 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'ment to ' \n\t0x68 0x69 0x6D 0x73 0x65 0x6C 0x66 0x2E    // 'himself.' \n\t0x20 0x20 0x57 0x68 0x65 0x6E 0x20 0x6F    // '  When o' \n\t0x6E 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 'ne of th' \n\t0x65 0x20 0x64 0x61 0x6E 0x63 0x65 0x72    // 'e dancer' \n\t0x73 0x20 0x66 0x72 0x6F 0x6D 0x20 0x68    // 's from h' \n\t0x69 0x73 0x20 0x62 0x61 0x6E 0x64 0x20    // 'is band ' \n\t0x67 0x65 0x74 0x73 0x20 0x73 0x69 0x63    // 'gets sic' \n\t0x6B 0x20 0x61 0x6E 0x64 0x20 0x42 0x69    // 'k and Bi' \n\t0x6E 0x6F 0x20 0x6D 0x75 0x73 0x74 0x20    // 'no must ' \n\t0x66 0x69 0x6E 0x64 0x20 0x61 0x20 0x72    // 'find a r' \n\t0x65 0x70 0x6C 0x61 0x63 0x65 0x6D 0x65    // 'eplaceme' \n\t0x6E 0x74 0x2C 0x20 0x68 0x65 0x20 0x66    // 'nt, he f' \n\t0x6C 0x69 0x65 0x73 0x20 0x61 0x6C 0x6C    // 'lies all' \n\t0x20 0x6F 0x76 0x65 0x72 0x20 0x74 0x68    // ' over th' \n\t0x65 0x20 0x77 0x6F 0x72 0x6C 0x64 0x20    // 'e world ' \n\t0x74 0x6F 0x20 0x68 0x6F 0x6C 0x64 0x20    // 'to hold ' \n\t0x74 0x72 0x79 0x6F 0x75 0x74 0x73 0x20    // 'tryouts ' \n\t0x66 0x6F 0x72 0x20 0x64 0x61 0x6E 0x63    // 'for danc' \n\t0x65 0x72 0x73 0x2E 0x20 0x0D 0x0A 0x50    // 'ers. ??P' \n\t0x65 0x6F 0x70 0x6C 0x65 0x20 0x6C 0x69    // 'eople li' \n\t0x6E 0x65 0x20 0x75 0x70 0x20 0x66 0x6F    // 'ne up fo' \n\t0x72 0x20 0x6D 0x69 0x6C 0x65 0x73 0x20    // 'r miles ' \n\t0x61 0x6E 0x64 0x20 0x6D 0x69 0x6C 0x65    // 'and mile' \n\t0x73 0x20 0x74 0x6F 0x20 0x64 0x61 0x6E    // 's to dan' \n\t0x63 0x65 0x20 0x69 0x6E 0x20 0x66 0x72    // 'ce in fr' \n\t0x6F 0x6E 0x74 0x20 0x6F 0x66 0x20 0x42    // 'ont of B' \n\t0x69 0x6E 0x6F 0x2E 0x20 0x57 0x68 0x6F    // 'ino. Who' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x67 0x65    // ' will ge' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x70 0x61    // 't the pa' \n\t0x72 0x74 0x3F 0x20                        // 'rt? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_42= ktipbio25\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_42, __HELP_NAME(\"ktipbio25\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_42, __HELP_NAME(\"ktipbio25\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_40=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_42, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio25\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_40=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_42, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_40=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xC2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_40=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x03 0x03 0x64 0x69 0x73 0x63 0x6F 0x76    // '??discov' \n\t0x65 0x72 0x65 0x64 0x0D 0x0A 0x4C 0x61    // 'ered??La' \n\t0x74 0x65 0x20 0x61 0x74 0x20 0x6E 0x69    // 'te at ni' \n\t0x67 0x68 0x74 0x2C 0x20 0x42 0x6F 0x20    // 'ght, Bo ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x77 0x72    // 'would wr' \n\t0x69 0x74 0x65 0x20 0x73 0x74 0x6F 0x72    // 'ite stor' \n\t0x69 0x65 0x73 0x20 0x61 0x62 0x6F 0x75    // 'ies abou' \n\t0x74 0x20 0x41 0x66 0x72 0x69 0x63 0x61    // 't Africa' \n\t0x20 0x61 0x6E 0x64 0x20 0x69 0x74 0x73    // ' and its' \n\t0x20 0x70 0x65 0x6F 0x70 0x6C 0x65 0x2E    // ' people.' \n\t0x20 0x20 0x48 0x65 0x92 0x64 0x20 0x73    // '  Hed s' \n\t0x65 0x6E 0x64 0x20 0x74 0x68 0x65 0x20    // 'end the ' \n\t0x73 0x74 0x6F 0x72 0x69 0x65 0x73 0x20    // 'stories ' \n\t0x74 0x6F 0x20 0x4E 0x65 0x77 0x20 0x59    // 'to New Y' \n\t0x6F 0x72 0x6B 0x20 0x61 0x6E 0x64 0x20    // 'ork and ' \n\t0x43 0x61 0x6C 0x69 0x66 0x6F 0x72 0x6E    // 'Californ' \n\t0x69 0x61 0x20 0x74 0x6F 0x20 0x73 0x65    // 'ia to se' \n\t0x65 0x20 0x69 0x66 0x20 0x61 0x6E 0x79    // 'e if any' \n\t0x6F 0x6E 0x65 0x20 0x77 0x6F 0x75 0x6C    // 'one woul' \n\t0x64 0x20 0x70 0x75 0x62 0x6C 0x69 0x73    // 'd publis' \n\t0x68 0x20 0x74 0x68 0x65 0x6D 0x20 0x6F    // 'h them o' \n\t0x72 0x20 0x6D 0x61 0x6B 0x65 0x20 0x74    // 'r make t' \n\t0x68 0x65 0x6D 0x20 0x69 0x6E 0x74 0x6F    // 'hem into' \n\t0x20 0x61 0x20 0x6D 0x6F 0x76 0x69 0x65    // ' a movie' \n\t0x2E 0x20 0x0D 0x0A 0x4F 0x6E 0x65 0x20    // '. ??One ' \n\t0x64 0x61 0x79 0x2C 0x20 0x68 0x65 0x20    // 'day, he ' \n\t0x67 0x6F 0x74 0x20 0x61 0x20 0x6C 0x65    // 'got a le' \n\t0x74 0x74 0x65 0x72 0x20 0x66 0x72 0x6F    // 'tter fro' \n\t0x6D 0x20 0x61 0x20 0x62 0x6F 0x6F 0x6B    // 'm a book' \n\t0x20 0x63 0x6F 0x6D 0x70 0x61 0x6E 0x79    // ' company' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x77 0x61    // ' that wa' \n\t0x6E 0x74 0x65 0x64 0x20 0x74 0x6F 0x20    // 'nted to ' \n\t0x6D 0x61 0x6B 0x65 0x20 0x6F 0x6E 0x65    // 'make one' \n\t0x20 0x6F 0x66 0x20 0x68 0x69 0x73 0x20    // ' of his ' \n\t0x73 0x74 0x6F 0x72 0x69 0x65 0x73 0x20    // 'stories ' \n\t0x69 0x6E 0x74 0x6F 0x20 0x61 0x20 0x62    // 'into a b' \n\t0x6F 0x6F 0x6B 0x2E 0x20 0x20 0x42 0x6F    // 'ook.  Bo' \n\t0x20 0x66 0x6C 0x65 0x77 0x20 0x74 0x6F    // ' flew to' \n\t0x20 0x4E 0x65 0x77 0x20 0x59 0x6F 0x72    // ' New Yor' \n\t0x6B 0x2C 0x20 0x61 0x6E 0x64 0x20 0x69    // 'k, and i' \n\t0x6E 0x20 0x54 0x69 0x6D 0x65 0x73 0x20    // 'n Times ' \n\t0x53 0x71 0x75 0x61 0x72 0x65 0x20 0x68    // 'Square h' \n\t0x65 0x20 0x6D 0x65 0x74 0x20 0x74 0x68    // 'e met th' \n\t0x65 0x20 0x64 0x69 0x72 0x65 0x63 0x74    // 'e direct' \n\t0x6F 0x72 0x20 0x61 0x6E 0x64 0x20 0x70    // 'or and p' \n\t0x72 0x6F 0x64 0x75 0x63 0x65 0x72 0x20    // 'roducer ' \n\t0x4D 0x63 0x5A 0x65 0x65 0x2C 0x20 0x77    // 'McZee, w' \n\t0x68 0x6F 0x20 0x77 0x61 0x6E 0x74 0x65    // 'ho wante' \n\t0x64 0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B    // 'd to mak' \n\t0x65 0x20 0x42 0x6F 0x27 0x73 0x20 0x73    // 'e Bo's s' \n\t0x74 0x6F 0x72 0x79 0x20 0x69 0x6E 0x74    // 'tory int' \n\t0x6F 0x20 0x61 0x20 0x6D 0x6F 0x76 0x69    // 'o a movi' \n\t0x65 0x2C 0x20 0x74 0x6F 0x6F 0x2E 0x20    // 'e, too. ' \n\t0x20 0x4D 0x63 0x5A 0x65 0x65 0x20 0x74    // ' McZee t' \n\t0x6F 0x6F 0x6B 0x20 0x6F 0x6E 0x65 0x20    // 'ook one ' \n\t0x6C 0x6F 0x6F 0x6B 0x20 0x61 0x74 0x20    // 'look at ' \n\t0x68 0x69 0x6D 0x20 0x61 0x6E 0x64 0x20    // 'him and ' \n\t0x72 0x65 0x61 0x6C 0x69 0x7A 0x65 0x64    // 'realized' \n\t0x20 0x42 0x6F 0x20 0x77 0x6F 0x75 0x6C    // ' Bo woul' \n\t0x64 0x20 0x61 0x6C 0x73 0x6F 0x20 0x62    // 'd also b' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x70 0x65    // 'e the pe' \n\t0x72 0x66 0x65 0x63 0x74 0x20 0x70 0x65    // 'rfect pe' \n\t0x72 0x73 0x6F 0x6E 0x20 0x74 0x6F 0x20    // 'rson to ' \n\t0x73 0x74 0x61 0x72 0x20 0x69 0x6E 0x20    // 'star in ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x76 0x69    // 'the movi' \n\t0x65 0x97 0x61 0x73 0x20 0x68 0x69 0x6D    // 'eas him' \n\t0x73 0x65 0x6C 0x66                        // 'self' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_43= ktipbio26\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_43, __HELP_NAME(\"ktipbio26\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_43, __HELP_NAME(\"ktipbio26\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_43=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_43, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio26\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_43=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_43, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_43=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_43, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5D 0x02 0x00 0x01    // '????]???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xFF 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_43=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_43, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x65 0x6E 0x74 0x69 0x73    // '??Dentis' \n\t0x74 0x0D 0x0A 0x42 0x6F 0x20 0x69 0x6D    // 't??Bo im' \n\t0x61 0x67 0x69 0x6E 0x65 0x73 0x20 0x68    // 'agines h' \n\t0x65 0x20 0x63 0x6F 0x75 0x6C 0x64 0x20    // 'e could ' \n\t0x70 0x6C 0x61 0x79 0x20 0x61 0x20 0x64    // 'play a d' \n\t0x65 0x6E 0x74 0x69 0x73 0x74 0x20 0x69    // 'entist i' \n\t0x6E 0x20 0x61 0x20 0x73 0x63 0x61 0x72    // 'n a scar' \n\t0x79 0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E    // 'y movie.' \n\t0x20 0x20 0x41 0x66 0x74 0x65 0x72 0x20    // '  After ' \n\t0x6B 0x69 0x64 0x73 0x20 0x68 0x61 0x64    // 'kids had' \n\t0x20 0x67 0x6F 0x6E 0x65 0x20 0x74 0x68    // ' gone th' \n\t0x72 0x6F 0x75 0x67 0x68 0x20 0x61 0x20    // 'rough a ' \n\t0x68 0x61 0x75 0x6E 0x74 0x65 0x64 0x20    // 'haunted ' \n\t0x68 0x6F 0x75 0x73 0x65 0x20 0x61 0x6E    // 'house an' \n\t0x64 0x20 0x65 0x61 0x74 0x65 0x6E 0x20    // 'd eaten ' \n\t0x6C 0x6F 0x74 0x73 0x20 0x6F 0x66 0x20    // 'lots of ' \n\t0x63 0x61 0x6E 0x64 0x79 0x2C 0x20 0x68    // 'candy, h' \n\t0x65 0x27 0x64 0x20 0x67 0x72 0x65 0x65    // 'e'd gree' \n\t0x74 0x20 0x74 0x68 0x65 0x6D 0x20 0x62    // 't them b' \n\t0x79 0x20 0x73 0x61 0x79 0x69 0x6E 0x67    // 'y saying' \n\t0x2C 0x20 0x93 0x59 0x6F 0x2C 0x20 0x6F    // ', Yo, o' \n\t0x70 0x65 0x6E 0x20 0x77 0x69 0x64 0x65    // 'pen wide' \n\t0x2E 0x94 0x20 0x20 0x54 0x68 0x65 0x20    // '.  The ' \n\t0x6B 0x69 0x64 0x20 0x77 0x6F 0x75 0x6C    // 'kid woul' \n\t0x64 0x20 0x6C 0x6F 0x6F 0x6B 0x20 0x75    // 'd look u' \n\t0x70 0x20 0x61 0x74 0x20 0x68 0x69 0x6D    // 'p at him' \n\t0x2C 0x20 0x61 0x6E 0x64 0x20 0x68 0x65    // ', and he' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x6F    // ' would o' \n\t0x70 0x65 0x6E 0x20 0x74 0x68 0x65 0x20    // 'pen the ' \n\t0x6B 0x69 0x64 0x92 0x73 0x20 0x6D 0x6F    // 'kids mo' \n\t0x75 0x74 0x68 0x20 0x77 0x69 0x74 0x68    // 'uth with' \n\t0x20 0x68 0x69 0x73 0x20 0x62 0x6F 0x78    // ' his box' \n\t0x69 0x6E 0x67 0x20 0x67 0x6C 0x6F 0x76    // 'ing glov' \n\t0x65 0x73 0x2E 0x20 0x20 0x42 0x75 0x74    // 'es.  But' \n\t0x20 0x6A 0x75 0x73 0x74 0x20 0x61 0x73    // ' just as' \n\t0x20 0x74 0x68 0x65 0x20 0x66 0x69 0x72    // ' the fir' \n\t0x73 0x74 0x20 0x6B 0x69 0x64 0x20 0x73    // 'st kid s' \n\t0x74 0x65 0x70 0x73 0x20 0x75 0x70 0x20    // 'teps up ' \n\t0x74 0x6F 0x20 0x42 0x6F 0x2C 0x20 0x74    // 'to Bo, t' \n\t0x68 0x65 0x20 0x65 0x76 0x69 0x6C 0x20    // 'he evil ' \n\t0x74 0x6F 0x6F 0x74 0x68 0x20 0x66 0x61    // 'tooth fa' \n\t0x69 0x72 0x79 0x2C 0x20 0x64 0x72 0x65    // 'iry, dre' \n\t0x73 0x73 0x65 0x64 0x20 0x61 0x73 0x20    // 'ssed as ' \n\t0x61 0x6E 0x20 0x6F 0x6C 0x64 0x20 0x77    // 'an old w' \n\t0x6F 0x6D 0x61 0x6E 0x20 0x6E 0x61 0x6D    // 'oman nam' \n\t0x65 0x64 0x20 0x4D 0x61 0x72 0x74 0x68    // 'ed Marth' \n\t0x61 0x2C 0x20 0x64 0x61 0x6E 0x63 0x65    // 'a, dance' \n\t0x73 0x20 0x69 0x6E 0x20 0x61 0x6E 0x64    // 's in and' \n\t0x20 0x6B 0x61 0x72 0x61 0x74 0x65 0x20    // ' karate ' \n\t0x6B 0x69 0x63 0x6B 0x73 0x20 0x42 0x6F    // 'kicks Bo' \n\t0x20 0x6F 0x75 0x74 0x20 0x6F 0x66 0x20    // ' out of ' \n\t0x74 0x68 0x65 0x20 0x77 0x61 0x79 0x2E    // 'the way.' \n\t0x20 0x20 0x42 0x6F 0x20 0x66 0x61 0x69    // '  Bo fai' \n\t0x6E 0x74 0x73 0x20 0x74 0x6F 0x20 0x74    // 'nts to t' \n\t0x68 0x65 0x20 0x67 0x72 0x6F 0x75 0x6E    // 'he groun' \n\t0x64 0x2E 0x20 0x20 0x4D 0x61 0x72 0x74    // 'd.  Mart' \n\t0x68 0x61 0x20 0x77 0x61 0x6C 0x6B 0x73    // 'ha walks' \n\t0x20 0x6F 0x76 0x65 0x72 0x20 0x73 0x6C    // ' over sl' \n\t0x6F 0x77 0x6C 0x79 0x2C 0x20 0x70 0x6C    // 'owly, pl' \n\t0x61 0x6E 0x6E 0x69 0x6E 0x67 0x20 0x74    // 'anning t' \n\t0x6F 0x20 0x70 0x75 0x6C 0x6C 0x20 0x61    // 'o pull a' \n\t0x6C 0x6C 0x20 0x6F 0x66 0x20 0x74 0x68    // 'll of th' \n\t0x65 0x20 0x6B 0x69 0x64 0x92 0x73 0x20    // 'e kids ' \n\t0x74 0x65 0x65 0x74 0x68 0x2E 0x20 0x0D    // 'teeth. ?' \n\t0x0A 0x57 0x68 0x6F 0x20 0x77 0x69 0x6C    // '?Who wil' \n\t0x6C 0x20 0x73 0x74 0x6F 0x70 0x20 0x74    // 'l stop t' \n\t0x68 0x65 0x20 0x77 0x69 0x63 0x6B 0x65    // 'he wicke' \n\t0x64 0x20 0x74 0x6F 0x6F 0x74 0x68 0x20    // 'd tooth ' \n\t0x66 0x61 0x69 0x72 0x79 0x3F 0x20 0x20    // 'fairy?  ' \n\t0x49 0x73 0x20 0x42 0x6F 0x20 0x74 0x6F    // 'Is Bo to' \n\t0x6F 0x20 0x62 0x69 0x67 0x20 0x74 0x6F    // 'o big to' \n\t0x20 0x6A 0x75 0x6D 0x70 0x20 0x75 0x70    // ' jump up' \n\t0x20 0x61 0x6E 0x64 0x20 0x67 0x65 0x74    // ' and get' \n\t0x20 0x4D 0x61 0x72 0x74 0x68 0x61 0x20    // ' Martha ' \n\t0x6F 0x75 0x74 0x20 0x6F 0x66 0x20 0x74    // 'out of t' \n\t0x68 0x65 0x20 0x77 0x61 0x79 0x3F         // 'he way?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_44= ktipbio27\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"ktipbio27\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"ktipbio27\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_93=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio27\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_93=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_93=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_93, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD7 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xEF 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_93=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_93, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x73 0x74 0x72 0x6F 0x6E    // '??Astron' \n\t0x61 0x75 0x74 0x0D 0x0A 0x45 0x76 0x65    // 'aut??Eve' \n\t0x6E 0x20 0x74 0x68 0x6F 0x75 0x67 0x68    // 'n though' \n\t0x20 0x68 0x65 0x20 0x64 0x6F 0x65 0x73    // ' he does' \n\t0x6E 0x92 0x74 0x20 0x6C 0x6F 0x6F 0x6B    // 'nt look' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x68 0x65    // ' like he' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x62    // ' would b' \n\t0x65 0x2C 0x20 0x42 0x6F 0x20 0x69 0x73    // 'e, Bo is' \n\t0x20 0x70 0x72 0x65 0x74 0x74 0x79 0x20    // ' pretty ' \n\t0x67 0x6F 0x6F 0x64 0x20 0x61 0x74 0x20    // 'good at ' \n\t0x6A 0x75 0x6D 0x70 0x69 0x6E 0x67 0x2E    // 'jumping.' \n\t0x20 0x20 0x48 0x65 0x20 0x6C 0x65 0x61    // '  He lea' \n\t0x72 0x6E 0x65 0x64 0x20 0x69 0x74 0x20    // 'rned it ' \n\t0x6B 0x69 0x63 0x6B 0x20 0x62 0x6F 0x78    // 'kick box' \n\t0x69 0x6E 0x67 0x2E 0x20 0x20 0x53 0x6F    // 'ing.  So' \n\t0x20 0x69 0x74 0x20 0x73 0x65 0x65 0x6D    // ' it seem' \n\t0x73 0x20 0x6E 0x61 0x74 0x75 0x72 0x61    // 's natura' \n\t0x6C 0x20 0x66 0x6F 0x72 0x20 0x42 0x6F    // 'l for Bo' \n\t0x20 0x74 0x6F 0x20 0x70 0x6C 0x61 0x79    // ' to play' \n\t0x20 0x61 0x6E 0x20 0x61 0x73 0x74 0x72    // ' an astr' \n\t0x6F 0x6E 0x61 0x75 0x74 0x20 0x69 0x6E    // 'onaut in' \n\t0x20 0x61 0x20 0x6D 0x6F 0x76 0x69 0x65    // ' a movie' \n\t0x2E 0x20 0x20 0x48 0x65 0x20 0x63 0x6F    // '.  He co' \n\t0x75 0x6C 0x64 0x20 0x62 0x6F 0x75 0x6E    // 'uld boun' \n\t0x63 0x65 0x20 0x61 0x6C 0x6F 0x6E 0x67    // 'ce along' \n\t0x20 0x74 0x68 0x65 0x20 0x6C 0x61 0x6E    // ' the lan' \n\t0x64 0x73 0x63 0x61 0x70 0x65 0x20 0x6C    // 'dscape l' \n\t0x69 0x6B 0x65 0x20 0x61 0x20 0x62 0x69    // 'ike a bi' \n\t0x67 0x20 0x72 0x75 0x62 0x62 0x65 0x72    // 'g rubber' \n\t0x20 0x62 0x61 0x6C 0x6C 0x2E 0x20 0x0D    // ' ball. ?' \n\t0x0A 0x42 0x75 0x74 0x20 0x61 0x20 0x66    // '?But a f' \n\t0x75 0x6E 0x6E 0x79 0x20 0x74 0x68 0x69    // 'unny thi' \n\t0x6E 0x67 0x20 0x6D 0x69 0x67 0x68 0x74    // 'ng might' \n\t0x20 0x68 0x61 0x70 0x70 0x65 0x6E 0x2E    // ' happen.' \n\t0x20 0x42 0x65 0x63 0x61 0x75 0x73 0x65    // ' Because' \n\t0x20 0x68 0x65 0x20 0x69 0x73 0x20 0x77    // ' he is w' \n\t0x65 0x69 0x67 0x68 0x74 0x6C 0x65 0x73    // 'eightles' \n\t0x73 0x2C 0x20 0x42 0x6F 0x20 0x62 0x65    // 's, Bo be' \n\t0x67 0x69 0x6E 0x73 0x20 0x74 0x6F 0x20    // 'gins to ' \n\t0x73 0x74 0x72 0x65 0x74 0x63 0x68 0x20    // 'stretch ' \n\t0x77 0x69 0x74 0x68 0x20 0x65 0x76 0x65    // 'with eve' \n\t0x72 0x79 0x20 0x62 0x6F 0x75 0x6E 0x63    // 'ry bounc' \n\t0x65 0x2E 0x20 0x20 0x49 0x66 0x20 0x68    // 'e.  If h' \n\t0x65 0x20 0x6B 0x65 0x65 0x70 0x73 0x20    // 'e keeps ' \n\t0x74 0x68 0x69 0x73 0x20 0x75 0x70 0x2C    // 'this up,' \n\t0x20 0x68 0x65 0x20 0x77 0x6F 0x6E 0x92    // ' he won' \n\t0x74 0x20 0x66 0x69 0x74 0x20 0x69 0x6E    // 't fit in' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x72    // 'to the r' \n\t0x6F 0x63 0x6B 0x65 0x74 0x20 0x66 0x6F    // 'ocket fo' \n\t0x72 0x20 0x68 0x69 0x73 0x20 0x72 0x69    // 'r his ri' \n\t0x64 0x65 0x20 0x68 0x6F 0x6D 0x65 0x2E    // 'de home.' \n\t0x20 0x20 0x43 0x61 0x6E 0x20 0x42 0x6F    // '  Can Bo' \n\t0x20 0x73 0x74 0x6F 0x70 0x20 0x62 0x6F    // ' stop bo' \n\t0x75 0x6E 0x63 0x69 0x6E 0x67 0x20 0x61    // 'uncing a' \n\t0x6E 0x64 0x20 0x73 0x68 0x72 0x69 0x6E    // 'nd shrin' \n\t0x6B 0x20 0x65 0x6E 0x6F 0x75 0x67 0x68    // 'k enough' \n\t0x20 0x74 0x6F 0x20 0x66 0x69 0x74 0x20    // ' to fit ' \n\t0x69 0x6E 0x74 0x6F 0x20 0x74 0x68 0x65    // 'into the' \n\t0x20 0x72 0x6F 0x63 0x6B 0x65 0x74 0x3F    // ' rocket?' \n\t0x20                                       // ' ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_45= ktipbio28\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"ktipbio28\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"ktipbio28\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_46=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio28\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_46=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_46=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x64 0x02 0x00 0x01    // '????d???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6D 0x01 0x00 0x82    // '????m??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_46=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x75 0x72 0x20 0x43    // '??Tour C' \n\t0x6F 0x6F 0x72 0x64 0x69 0x6E 0x61 0x74    // 'oordinat' \n\t0x6F 0x72 0x0D 0x0A 0x42 0x6F 0x20 0x77    // 'or??Bo w' \n\t0x61 0x6E 0x74 0x73 0x20 0x74 0x6F 0x20    // 'ants to ' \n\t0x70 0x6C 0x61 0x79 0x20 0x74 0x68 0x65    // 'play the' \n\t0x20 0x70 0x61 0x72 0x74 0x20 0x6F 0x66    // ' part of' \n\t0x20 0x61 0x20 0x74 0x6F 0x75 0x72 0x20    // ' a tour ' \n\t0x67 0x75 0x69 0x64 0x65 0x2E 0x20 0x48    // 'guide. H' \n\t0x65 0x20 0x69 0x6D 0x61 0x67 0x69 0x6E    // 'e imagin' \n\t0x65 0x73 0x20 0x68 0x65 0x20 0x77 0x6F    // 'es he wo' \n\t0x75 0x6C 0x64 0x20 0x62 0x6F 0x6F 0x6B    // 'uld book' \n\t0x20 0x61 0x20 0x74 0x6F 0x75 0x72 0x20    // ' a tour ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x53    // 'to the S' \n\t0x6F 0x75 0x74 0x68 0x20 0x6F 0x66 0x20    // 'outh of ' \n\t0x46 0x72 0x61 0x6E 0x63 0x65 0x20 0x74    // 'France t' \n\t0x6F 0x20 0x76 0x69 0x65 0x77 0x20 0x63    // 'o view c' \n\t0x61 0x76 0x65 0x20 0x64 0x72 0x61 0x77    // 'ave draw' \n\t0x69 0x6E 0x67 0x73 0x2E 0x20 0x20 0x42    // 'ings.  B' \n\t0x75 0x74 0x20 0x74 0x68 0x65 0x72 0x65    // 'ut there' \n\t0x20 0x69 0x73 0x20 0x74 0x72 0x6F 0x75    // ' is trou' \n\t0x62 0x6C 0x65 0x20 0x6C 0x75 0x72 0x6B    // 'ble lurk' \n\t0x69 0x6E 0x67 0x20 0x69 0x6E 0x20 0x74    // 'ing in t' \n\t0x68 0x65 0x20 0x63 0x61 0x76 0x65 0x2E    // 'he cave.' \n\t0x20 0x20 0x53 0x6F 0x6D 0x65 0x20 0x74    // '  Some t' \n\t0x68 0x69 0x65 0x76 0x65 0x73 0x20 0x68    // 'hieves h' \n\t0x61 0x76 0x65 0x20 0x6A 0x75 0x73 0x74    // 'ave just' \n\t0x20 0x73 0x74 0x6F 0x6C 0x65 0x6E 0x20    // ' stolen ' \n\t0x61 0x20 0x53 0x70 0x61 0x6E 0x69 0x73    // 'a Spanis' \n\t0x68 0x20 0x41 0x72 0x6D 0x61 0x64 0x61    // 'h Armada' \n\t0x20 0x74 0x72 0x65 0x61 0x73 0x75 0x72    // ' treasur' \n\t0x65 0x20 0x63 0x68 0x65 0x73 0x74 0x20    // 'e chest ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x61 0x20 0x6E    // 'from a n' \n\t0x65 0x61 0x72 0x62 0x79 0x20 0x6D 0x75    // 'earby mu' \n\t0x73 0x65 0x75 0x6D 0x2C 0x20 0x61 0x6E    // 'seum, an' \n\t0x64 0x20 0x61 0x72 0x65 0x20 0x68 0x69    // 'd are hi' \n\t0x64 0x69 0x6E 0x67 0x20 0x6F 0x75 0x74    // 'ding out' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x63 0x61 0x76 0x65 0x2E 0x20 0x20 0x57    // 'cave.  W' \n\t0x68 0x65 0x6E 0x20 0x42 0x6F 0x20 0x61    // 'hen Bo a' \n\t0x6E 0x64 0x20 0x68 0x69 0x73 0x20 0x67    // 'nd his g' \n\t0x72 0x6F 0x75 0x70 0x20 0x61 0x72 0x72    // 'roup arr' \n\t0x69 0x76 0x65 0x2C 0x20 0x74 0x68 0x65    // 'ive, the' \n\t0x79 0x20 0x61 0x72 0x65 0x20 0x69 0x6E    // 'y are in' \n\t0x20 0x66 0x6F 0x72 0x20 0x61 0x20 0x62    // ' for a b' \n\t0x69 0x67 0x20 0x73 0x75 0x72 0x70 0x72    // 'ig surpr' \n\t0x69 0x73 0x65 0x2E 0x20 0x0D 0x0A 0x43    // 'ise. ??C' \n\t0x61 0x6E 0x20 0x42 0x6F 0x2C 0x20 0x77    // 'an Bo, w' \n\t0x69 0x74 0x68 0x20 0x68 0x69 0x73 0x20    // 'ith his ' \n\t0x63 0x72 0x65 0x61 0x74 0x69 0x76 0x65    // 'creative' \n\t0x20 0x74 0x68 0x69 0x6E 0x6B 0x69 0x6E    // ' thinkin' \n\t0x67 0x20 0x61 0x6E 0x64 0x20 0x6E 0x61    // 'g and na' \n\t0x74 0x75 0x72 0x61 0x6C 0x20 0x6B 0x69    // 'tural ki' \n\t0x63 0x6B 0x20 0x62 0x6F 0x78 0x69 0x6E    // 'ck boxin' \n\t0x67 0x20 0x69 0x6E 0x73 0x74 0x69 0x6E    // 'g instin' \n\t0x63 0x74 0x2C 0x20 0x73 0x61 0x76 0x65    // 'ct, save' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x6F 0x75    // ' the tou' \n\t0x72 0x69 0x73 0x74 0x73 0x20 0x61 0x6E    // 'rists an' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x74 0x72    // 'd the tr' \n\t0x65 0x61 0x73 0x75 0x72 0x65 0x3F 0x20    // 'easure? ' \n\t0x20 0x57 0x68 0x61 0x74 0x20 0x68 0x61    // ' What ha' \n\t0x70 0x70 0x65 0x6E 0x73 0x20 0x77 0x68    // 'ppens wh' \n\t0x65 0x6E 0x20 0x42 0x6F 0x20 0x61 0x6E    // 'en Bo an' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 'd the to' \n\t0x75 0x72 0x69 0x73 0x74 0x73 0x20 0x65    // 'urists e' \n\t0x6D 0x65 0x72 0x67 0x65 0x20 0x66 0x72    // 'merge fr' \n\t0x6F 0x6D 0x20 0x74 0x68 0x65 0x20 0x63    // 'om the c' \n\t0x61 0x76 0x65 0x3F 0x20 0x20 0x54 0x68    // 'ave?  Th' \n\t0x65 0x79 0x20 0x61 0x72 0x65 0x6E 0x27    // 'ey aren'' \n\t0x74 0x20 0x69 0x6E 0x20 0x46 0x72 0x61    // 't in Fra' \n\t0x6E 0x63 0x65 0x20 0x61 0x6E 0x79 0x20    // 'nce any ' \n\t0x6D 0x6F 0x72 0x65 0x2E 0x2E 0x2E 0x62    // 'more...b' \n\t0x75 0x74 0x20 0x77 0x68 0x65 0x72 0x65    // 'ut where' \n\t0x20 0x61 0x72 0x65 0x20 0x74 0x68 0x65    // ' are the' \n\t0x79 0x3F 0x20 0x41 0x6E 0x64 0x20 0x68    // 'y? And h' \n\t0x6F 0x77 0x20 0x77 0x69 0x6C 0x6C 0x20    // 'ow will ' \n\t0x74 0x68 0x65 0x79 0x20 0x67 0x65 0x74    // 'they get' \n\t0x20 0x68 0x6F 0x6D 0x65 0x3F              // ' home?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_46= ktipbio29\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"ktipbio29\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"ktipbio29\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio29\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x60 0x02 0x00 0x01    // '????`???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x47 0x01 0x00 0x82    // '????G??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x03 0x03 0x74 0x61 0x6C 0x65 0x6E 0x74    // '??talent' \n\t0x0D 0x0A 0x42 0x61 0x63 0x6B 0x20 0x69    // '??Back i' \n\t0x6E 0x20 0x47 0x65 0x72 0x6D 0x61 0x6E    // 'n German' \n\t0x79 0x2C 0x20 0x42 0x65 0x6E 0x6A 0x61    // 'y, Benja' \n\t0x6D 0x69 0x6E 0x20 0x4F 0x6C 0x69 0x76    // 'min Oliv' \n\t0x65 0x72 0x20 0x4E 0x65 0x77 0x6D 0x61    // 'er Newma' \n\t0x6E 0x20 0x47 0x65 0x6F 0x72 0x67 0x65    // 'n George' \n\t0x20 0x4F 0x6C 0x64 0x68 0x61 0x75 0x73    // ' Oldhaus' \n\t0x20 0x77 0x61 0x73 0x20 0x74 0x68 0x65    // ' was the' \n\t0x20 0x73 0x6F 0x6E 0x20 0x6F 0x66 0x20    // ' son of ' \n\t0x74 0x77 0x6F 0x20 0x63 0x69 0x72 0x63    // 'two circ' \n\t0x75 0x73 0x20 0x70 0x65 0x72 0x66 0x6F    // 'us perfo' \n\t0x72 0x6D 0x65 0x72 0x73 0x2E 0x20 0x20    // 'rmers.  ' \n\t0x57 0x68 0x65 0x6E 0x20 0x68 0x65 0x20    // 'When he ' \n\t0x77 0x61 0x73 0x20 0x62 0x6F 0x72 0x6E    // 'was born' \n\t0x2C 0x20 0x68 0x69 0x73 0x20 0x70 0x61    // ', his pa' \n\t0x72 0x65 0x6E 0x74 0x73 0x20 0x28 0x61    // 'rents (a' \n\t0x20 0x74 0x72 0x61 0x70 0x65 0x7A 0x65    // ' trapeze' \n\t0x20 0x61 0x72 0x74 0x69 0x73 0x74 0x20    // ' artist ' \n\t0x61 0x6E 0x64 0x20 0x61 0x20 0x66 0x69    // 'and a fi' \n\t0x72 0x65 0x20 0x73 0x77 0x61 0x6C 0x6C    // 're swall' \n\t0x6F 0x77 0x65 0x72 0x29 0x20 0x75 0x73    // 'ower) us' \n\t0x65 0x64 0x20 0x74 0x68 0x65 0x20 0x6E    // 'ed the n' \n\t0x61 0x6D 0x65 0x73 0x20 0x6F 0x66 0x20    // 'ames of ' \n\t0x61 0x6C 0x6C 0x20 0x74 0x68 0x65 0x69    // 'all thei' \n\t0x72 0x20 0x66 0x72 0x69 0x65 0x6E 0x64    // 'r friend' \n\t0x73 0x20 0x66 0x6F 0x72 0x20 0x42 0x6F    // 's for Bo' \n\t0x6E 0x67 0x6F 0x20 0x61 0x6E 0x64 0x20    // 'ngo and ' \n\t0x68 0x61 0x64 0x20 0x6E 0x6F 0x6E 0x65    // 'had none' \n\t0x20 0x6C 0x65 0x66 0x74 0x20 0x66 0x6F    // ' left fo' \n\t0x72 0x20 0x42 0x6F 0x6E 0x67 0x6F 0x92    // 'r Bongo' \n\t0x73 0x20 0x74 0x77 0x69 0x6E 0x20 0x62    // 's twin b' \n\t0x72 0x6F 0x74 0x68 0x65 0x72 0x2C 0x20    // 'rother, ' \n\t0x73 0x6F 0x20 0x74 0x68 0x65 0x79 0x20    // 'so they ' \n\t0x6E 0x61 0x6D 0x65 0x64 0x20 0x68 0x69    // 'named hi' \n\t0x6D 0x20 0x45 0x64 0x2C 0x20 0x74 0x68    // 'm Ed, th' \n\t0x65 0x20 0x73 0x68 0x6F 0x72 0x74 0x65    // 'e shorte' \n\t0x73 0x74 0x20 0x6E 0x61 0x6D 0x65 0x20    // 'st name ' \n\t0x74 0x68 0x65 0x79 0x20 0x63 0x6F 0x75    // 'they cou' \n\t0x6C 0x64 0x20 0x74 0x68 0x69 0x6E 0x6B    // 'ld think' \n\t0x20 0x6F 0x66 0x2E 0x20 0x20 0x20 0x0D    // ' of.   ?' \n\t0x0A 0x42 0x6F 0x6E 0x67 0x6F 0x20 0x61    // '?Bongo a' \n\t0x6E 0x64 0x20 0x45 0x64 0x20 0x77 0x65    // 'nd Ed we' \n\t0x72 0x65 0x20 0x76 0x65 0x72 0x79 0x20    // 're very ' \n\t0x63 0x6C 0x6F 0x73 0x65 0x2C 0x20 0x62    // 'close, b' \n\t0x75 0x74 0x20 0x45 0x64 0x20 0x77 0x61    // 'ut Ed wa' \n\t0x73 0x20 0x61 0x6C 0x77 0x61 0x79 0x73    // 's always' \n\t0x20 0x67 0x65 0x74 0x74 0x69 0x6E 0x67    // ' getting' \n\t0x20 0x69 0x6E 0x74 0x6F 0x20 0x74 0x72    // ' into tr' \n\t0x6F 0x75 0x62 0x6C 0x65 0x20 0x61 0x6E    // 'ouble an' \n\t0x64 0x20 0x42 0x6F 0x6E 0x67 0x6F 0x20    // 'd Bongo ' \n\t0x77 0x61 0x73 0x20 0x6D 0x75 0x63 0x68    // 'was much' \n\t0x20 0x73 0x6D 0x61 0x72 0x74 0x65 0x72    // ' smarter' \n\t0x2E 0x20 0x42 0x6F 0x6E 0x67 0x6F 0x20    // '. Bongo ' \n\t0x6F 0x66 0x74 0x65 0x6E 0x20 0x70 0x72    // 'often pr' \n\t0x65 0x74 0x65 0x6E 0x64 0x65 0x64 0x20    // 'etended ' \n\t0x74 0x6F 0x20 0x62 0x65 0x20 0x45 0x64    // 'to be Ed' \n\t0x20 0x73 0x6F 0x20 0x74 0x68 0x61 0x74    // ' so that' \n\t0x20 0x68 0x65 0x20 0x63 0x6F 0x75 0x6C    // ' he coul' \n\t0x64 0x20 0x67 0x65 0x74 0x20 0x45 0x64    // 'd get Ed' \n\t0x20 0x6F 0x75 0x74 0x20 0x6F 0x66 0x20    // ' out of ' \n\t0x74 0x72 0x6F 0x75 0x62 0x6C 0x65 0x20    // 'trouble ' \n\t0x77 0x68 0x65 0x6E 0x20 0x68 0x65 0x20    // 'when he ' \n\t0x63 0x61 0x6D 0x65 0x20 0x68 0x6F 0x6D    // 'came hom' \n\t0x65 0x20 0x6C 0x61 0x74 0x65 0x2E 0x20    // 'e late. ' \n\t0x20 0x54 0x68 0x61 0x74 0x92 0x73 0x20    // ' Thats ' \n\t0x68 0x6F 0x77 0x20 0x42 0x6F 0x6E 0x67    // 'how Bong' \n\t0x6F 0x20 0x64 0x65 0x76 0x65 0x6C 0x6F    // 'o develo' \n\t0x70 0x65 0x64 0x20 0x73 0x75 0x63 0x68    // 'ped such' \n\t0x20 0x61 0x20 0x74 0x61 0x6C 0x65 0x6E    // ' a talen' \n\t0x74 0x20 0x66 0x6F 0x72 0x20 0x61 0x63    // 't for ac' \n\t0x74 0x69 0x6E 0x67 0x97 0x62 0x79 0x20    // 'tingby ' \n\t0x69 0x6D 0x69 0x74 0x61 0x74 0x69 0x6E    // 'imitatin' \n\t0x67 0x20 0x68 0x69 0x73 0x20 0x62 0x72    // 'g his br' \n\t0x6F 0x74 0x68 0x65 0x72 0x20 0x6F 0x6E    // 'other on' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x70 0x6F    // ' the spo' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_47= ktipbio30\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_47, __HELP_NAME(\"ktipbio30\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_47, __HELP_NAME(\"ktipbio30\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_47=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_47, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio30\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_47=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_47, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_47=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_47, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x51 0x01 0x00 0x01    // '????Q???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xFB 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_47=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_47, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x77 0x69 0x6E 0x20 0x42    // '??Twin B' \n\t0x72 0x6F 0x74 0x68 0x65 0x72 0x0D 0x0A    // 'rother??' \n\t0x42 0x6F 0x6E 0x67 0x6F 0x20 0x72 0x65    // 'Bongo re' \n\t0x61 0x6C 0x6C 0x79 0x20 0x77 0x61 0x6E    // 'ally wan' \n\t0x74 0x73 0x20 0x74 0x6F 0x20 0x62 0x65    // 'ts to be' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x6D 0x6F    // ' in a mo' \n\t0x76 0x69 0x65 0x20 0x77 0x69 0x74 0x68    // 'vie with' \n\t0x20 0x68 0x69 0x73 0x20 0x62 0x72 0x6F    // ' his bro' \n\t0x74 0x68 0x65 0x72 0x2C 0x20 0x45 0x64    // 'ther, Ed' \n\t0x2E 0x20 0x20 0x42 0x6F 0x6E 0x67 0x6F    // '.  Bongo' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x62    // ' would b' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x67 0x6F    // 'e the go' \n\t0x6F 0x64 0x20 0x74 0x77 0x69 0x6E 0x20    // 'od twin ' \n\t0x61 0x6E 0x64 0x20 0x45 0x64 0x20 0x77    // 'and Ed w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x62 0x65 0x20    // 'ould be ' \n\t0x74 0x68 0x65 0x20 0x65 0x76 0x69 0x6C    // 'the evil' \n\t0x20 0x74 0x77 0x69 0x6E 0x2E 0x20 0x20    // ' twin.  ' \n\t0x54 0x6F 0x67 0x65 0x74 0x68 0x65 0x72    // 'Together' \n\t0x20 0x74 0x68 0x65 0x79 0x20 0x77 0x6F    // ' they wo' \n\t0x75 0x6C 0x64 0x20 0x74 0x72 0x79 0x20    // 'uld try ' \n\t0x74 0x6F 0x20 0x6F 0x75 0x74 0x73 0x6D    // 'to outsm' \n\t0x61 0x72 0x74 0x20 0x65 0x61 0x63 0x68    // 'art each' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x20 0x61    // ' other a' \n\t0x6E 0x64 0x20 0x67 0x65 0x74 0x20 0x68    // 'nd get h' \n\t0x65 0x6C 0x70 0x20 0x66 0x72 0x6F 0x6D    // 'elp from' \n\t0x20 0x66 0x72 0x69 0x65 0x6E 0x64 0x73    // ' friends' \n\t0x20 0x74 0x6F 0x20 0x66 0x69 0x6E 0x64    // ' to find' \n\t0x20 0x74 0x68 0x65 0x69 0x72 0x20 0x77    // ' their w' \n\t0x61 0x79 0x20 0x6F 0x75 0x74 0x20 0x6F    // 'ay out o' \n\t0x66 0x20 0x61 0x20 0x68 0x61 0x75 0x6E    // 'f a haun' \n\t0x74 0x65 0x64 0x20 0x68 0x6F 0x75 0x73    // 'ted hous' \n\t0x65 0x2E 0x20 0x0D 0x0A 0x42 0x75 0x74    // 'e. ??But' \n\t0x20 0x77 0x68 0x6F 0x20 0x63 0x61 0x6E    // ' who can' \n\t0x20 0x74 0x65 0x6C 0x6C 0x20 0x74 0x68    // ' tell th' \n\t0x65 0x6D 0x20 0x61 0x70 0x61 0x72 0x74    // 'em apart' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x74 0x68    // ' when th' \n\t0x65 0x72 0x65 0x27 0x73 0x20 0x74 0x72    // 'ere's tr' \n\t0x6F 0x75 0x62 0x6C 0x65 0x3F 0x20 0x20    // 'ouble?  ' \n\t0x54 0x68 0x61 0x74 0x27 0x73 0x20 0x45    // 'That's E' \n\t0x64 0x2C 0x20 0x72 0x69 0x67 0x68 0x74    // 'd, right' \n\t0x3F 0x20 0x20 0x4F 0x72 0x20 0x69 0x73    // '?  Or is' \n\t0x20 0x69 0x74 0x20 0x42 0x6F 0x6E 0x67    // ' it Bong' \n\t0x6F 0x3F 0x20                             // 'o? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_48= ktipbio31\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_48, __HELP_NAME(\"ktipbio31\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_48, __HELP_NAME(\"ktipbio31\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_48=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_48, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio31\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_48=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_48, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_48=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_48, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x88 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_48=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_48, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x6F 0x6C 0x69 0x63 0x65    // '??Police' \n\t0x20 0x4F 0x66 0x66 0x69 0x63 0x65 0x72    // ' Officer' \n\t0x0D 0x0A 0x42 0x65 0x69 0x6E 0x67 0x20    // '??Being ' \n\t0x61 0x20 0x67 0x6F 0x6F 0x64 0x2D 0x6E    // 'a good-n' \n\t0x61 0x74 0x75 0x72 0x65 0x64 0x20 0x6B    // 'atured k' \n\t0x69 0x6E 0x64 0x20 0x6F 0x66 0x20 0x67    // 'ind of g' \n\t0x75 0x79 0x2C 0x20 0x42 0x6F 0x6E 0x67    // 'uy, Bong' \n\t0x6F 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 'o would ' \n\t0x6C 0x69 0x6B 0x65 0x20 0x74 0x6F 0x20    // 'like to ' \n\t0x70 0x6C 0x61 0x79 0x20 0x74 0x68 0x65    // 'play the' \n\t0x20 0x70 0x61 0x72 0x74 0x20 0x6F 0x66    // ' part of' \n\t0x20 0x61 0x20 0x66 0x72 0x69 0x65 0x6E    // ' a frien' \n\t0x64 0x6C 0x79 0x20 0x70 0x6F 0x6C 0x69    // 'dly poli' \n\t0x63 0x65 0x20 0x6F 0x66 0x66 0x69 0x63    // 'ce offic' \n\t0x65 0x72 0x20 0x61 0x6E 0x64 0x20 0x73    // 'er and s' \n\t0x6F 0x6C 0x76 0x65 0x20 0x6D 0x79 0x73    // 'olve mys' \n\t0x74 0x65 0x72 0x69 0x65 0x73 0x2E 0x20    // 'teries. ' \n\t0x0D 0x0A 0x49 0x66 0x20 0x74 0x68 0x65    // '??If the' \n\t0x72 0x65 0x27 0x73 0x20 0x61 0x20 0x74    // 're's a t' \n\t0x68 0x65 0x66 0x74 0x20 0x61 0x74 0x20    // 'heft at ' \n\t0x74 0x68 0x65 0x20 0x6D 0x61 0x6C 0x6C    // 'the mall' \n\t0x20 0x61 0x6E 0x64 0x20 0x74 0x68 0x65    // ' and the' \n\t0x20 0x63 0x72 0x69 0x6D 0x69 0x6E 0x61    // ' crimina' \n\t0x6C 0x20 0x65 0x73 0x63 0x61 0x70 0x65    // 'l escape' \n\t0x73 0x20 0x6F 0x6E 0x20 0x61 0x20 0x70    // 's on a p' \n\t0x6C 0x61 0x6E 0x65 0x2C 0x20 0x63 0x6F    // 'lane, co' \n\t0x75 0x6C 0x64 0x20 0x42 0x6F 0x6E 0x67    // 'uld Bong' \n\t0x6F 0x20 0x63 0x61 0x74 0x63 0x68 0x20    // 'o catch ' \n\t0x74 0x68 0x65 0x20 0x63 0x72 0x6F 0x6F    // 'the croo' \n\t0x6B 0x3F 0x20 0x20 0x57 0x6F 0x75 0x6C    // 'k?  Woul' \n\t0x64 0x20 0x68 0x65 0x20 0x68 0x61 0x76    // 'd he hav' \n\t0x65 0x20 0x74 0x6F 0x20 0x67 0x6F 0x20    // 'e to go ' \n\t0x75 0x6E 0x64 0x65 0x72 0x63 0x6F 0x76    // 'undercov' \n\t0x65 0x72 0x20 0x74 0x6F 0x20 0x73 0x6F    // 'er to so' \n\t0x6C 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'lve the ' \n\t0x6D 0x79 0x73 0x74 0x65 0x72 0x79 0x3F    // 'mystery?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_49= ktipbio32\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"ktipbio32\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"ktipbio32\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_49=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio32\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_49=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_49=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB4 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xF5 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_49=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x72 0x69 0x76 0x61 0x74    // '??Privat' \n\t0x65 0x20 0x43 0x61 0x72 0x72 0x69 0x65    // 'e Carrie' \n\t0x72 0x0D 0x0A 0x42 0x6F 0x6E 0x67 0x6F    // 'r??Bongo' \n\t0x20 0x66 0x65 0x65 0x6C 0x73 0x20 0x74    // ' feels t' \n\t0x68 0x61 0x74 0x20 0x61 0x73 0x20 0x61    // 'hat as a' \n\t0x20 0x70 0x69 0x6C 0x6F 0x74 0x20 0x66    // ' pilot f' \n\t0x6F 0x72 0x20 0x61 0x20 0x70 0x72 0x69    // 'or a pri' \n\t0x76 0x61 0x74 0x65 0x20 0x61 0x69 0x72    // 'vate air' \n\t0x6C 0x69 0x6E 0x65 0x20 0x63 0x61 0x72    // 'line car' \n\t0x72 0x69 0x65 0x72 0x2C 0x20 0x68 0x65    // 'rier, he' \n\t0x20 0x63 0x6F 0x75 0x6C 0x64 0x20 0x72    // ' could r' \n\t0x65 0x61 0x6C 0x6C 0x79 0x20 0x73 0x68    // 'eally sh' \n\t0x6F 0x77 0x20 0x6F 0x66 0x66 0x20 0x68    // 'ow off h' \n\t0x69 0x73 0x20 0x61 0x62 0x69 0x6C 0x69    // 'is abili' \n\t0x74 0x79 0x20 0x74 0x6F 0x20 0x63 0x72    // 'ty to cr' \n\t0x65 0x61 0x74 0x65 0x20 0x61 0x64 0x76    // 'eate adv' \n\t0x65 0x6E 0x74 0x75 0x72 0x65 0x2E 0x20    // 'enture. ' \n\t0x20 0x48 0x65 0x20 0x63 0x6F 0x75 0x6C    // ' He coul' \n\t0x64 0x20 0x66 0x6C 0x79 0x20 0x74 0x6F    // 'd fly to' \n\t0x20 0x65 0x78 0x6F 0x74 0x69 0x63 0x20    // ' exotic ' \n\t0x70 0x6C 0x61 0x63 0x65 0x73 0x20 0x61    // 'places a' \n\t0x6E 0x64 0x20 0x70 0x69 0x63 0x6B 0x20    // 'nd pick ' \n\t0x75 0x70 0x20 0x68 0x69 0x73 0x20 0x70    // 'up his p' \n\t0x61 0x73 0x73 0x65 0x6E 0x67 0x65 0x72    // 'assenger' \n\t0x73 0x97 0x66 0x61 0x6D 0x6F 0x75 0x73    // 'sfamous' \n\t0x20 0x73 0x70 0x6F 0x72 0x74 0x73 0x20    // ' sports ' \n\t0x66 0x69 0x67 0x75 0x72 0x65 0x73 0x20    // 'figures ' \n\t0x61 0x6E 0x64 0x20 0x6D 0x61 0x79 0x62    // 'and mayb' \n\t0x65 0x20 0x65 0x76 0x65 0x6E 0x20 0x74    // 'e even t' \n\t0x68 0x65 0x20 0x70 0x72 0x65 0x73 0x69    // 'he presi' \n\t0x64 0x65 0x6E 0x74 0x21 0x0D 0x0A 0x42    // 'dent!??B' \n\t0x75 0x74 0x20 0x77 0x68 0x61 0x74 0x20    // 'ut what ' \n\t0x69 0x66 0x20 0x68 0x65 0x20 0x67 0x65    // 'if he ge' \n\t0x74 0x73 0x20 0x6C 0x6F 0x73 0x74 0x20    // 'ts lost ' \n\t0x61 0x6E 0x64 0x20 0x6C 0x61 0x6E 0x64    // 'and land' \n\t0x73 0x20 0x69 0x6E 0x20 0x61 0x6E 0x6F    // 's in ano' \n\t0x74 0x68 0x65 0x72 0x20 0x74 0x69 0x6D    // 'ther tim' \n\t0x65 0x3F 0x20 0x20 0x41 0x6E 0x64 0x20    // 'e?  And ' \n\t0x6D 0x65 0x65 0x74 0x73 0x20 0x72 0x6F    // 'meets ro' \n\t0x62 0x6F 0x74 0x73 0x20 0x61 0x6E 0x64    // 'bots and' \n\t0x20 0x70 0x72 0x65 0x68 0x69 0x73 0x74    // ' prehist' \n\t0x6F 0x72 0x69 0x63 0x20 0x70 0x65 0x6F    // 'oric peo' \n\t0x70 0x6C 0x65 0x20 0x61 0x72 0x67 0x75    // 'ple argu' \n\t0x69 0x6E 0x67 0x20 0x69 0x6E 0x20 0x61    // 'ing in a' \n\t0x20 0x6C 0x61 0x6E 0x67 0x75 0x61 0x67    // ' languag' \n\t0x65 0x20 0x68 0x65 0x20 0x64 0x6F 0x65    // 'e he doe' \n\t0x73 0x6E 0x92 0x74 0x20 0x75 0x6E 0x64    // 'snt und' \n\t0x65 0x72 0x73 0x74 0x61 0x6E 0x64 0x3F    // 'erstand?' \n\t0x20 0x20 0x57 0x68 0x65 0x6E 0x20 0x74    // '  When t' \n\t0x68 0x65 0x79 0x20 0x74 0x61 0x6B 0x65    // 'hey take' \n\t0x20 0x6F 0x76 0x65 0x72 0x20 0x74 0x68    // ' over th' \n\t0x65 0x20 0x70 0x6C 0x61 0x6E 0x65 0x2C    // 'e plane,' \n\t0x20 0x68 0x6F 0x77 0x20 0x77 0x69 0x6C    // ' how wil' \n\t0x6C 0x20 0x68 0x65 0x20 0x67 0x65 0x74    // 'l he get' \n\t0x20 0x68 0x6F 0x6D 0x65 0x3F              // ' home?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4A= ktipbio33\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4A, __HELP_NAME(\"ktipbio33\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4A, __HELP_NAME(\"ktipbio33\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio33\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x30 0x02 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x62 0x61 0x73 0x6B 0x65 0x74    // '??basket' \n\t0x62 0x61 0x6C 0x6C 0x0D 0x0A 0x0D 0x0A    // 'ball????' \n\t0x4F 0x6E 0x65 0x20 0x64 0x61 0x79 0x20    // 'One day ' \n\t0x77 0x68 0x65 0x6E 0x20 0x74 0x68 0x65    // 'when the' \n\t0x20 0x66 0x61 0x6D 0x6F 0x75 0x73 0x20    // ' famous ' \n\t0x66 0x69 0x6C 0x6D 0x20 0x64 0x69 0x72    // 'film dir' \n\t0x65 0x63 0x74 0x6F 0x72 0x20 0x4D 0x63    // 'ector Mc' \n\t0x5A 0x65 0x65 0x20 0x77 0x61 0x73 0x20    // 'Zee was ' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x73    // 'at the s' \n\t0x63 0x68 0x6F 0x6F 0x6C 0x20 0x67 0x79    // 'chool gy' \n\t0x6D 0x20 0x73 0x68 0x6F 0x6F 0x74 0x69    // 'm shooti' \n\t0x6E 0x67 0x20 0x61 0x20 0x62 0x61 0x73    // 'ng a bas' \n\t0x6B 0x65 0x74 0x62 0x61 0x6C 0x6C 0x20    // 'ketball ' \n\t0x64 0x6F 0x63 0x75 0x6D 0x65 0x6E 0x74    // 'document' \n\t0x61 0x72 0x79 0x2C 0x20 0x6F 0x6E 0x65    // 'ary, one' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x6C 0x69 0x67 0x68 0x74 0x73 0x20 0x69    // 'lights i' \n\t0x6E 0x20 0x63 0x65 0x6E 0x74 0x65 0x72    // 'n center' \n\t0x20 0x63 0x6F 0x75 0x72 0x74 0x20 0x62    // ' court b' \n\t0x75 0x72 0x6E 0x65 0x64 0x20 0x6F 0x75    // 'urned ou' \n\t0x74 0x2E 0x20 0x20 0x4E 0x6F 0x20 0x6F    // 't.  No o' \n\t0x6E 0x65 0x20 0x63 0x6F 0x75 0x6C 0x64    // 'ne could' \n\t0x20 0x72 0x65 0x61 0x63 0x68 0x20 0x74    // ' reach t' \n\t0x68 0x65 0x20 0x6C 0x69 0x67 0x68 0x74    // 'he light' \n\t0x20 0x65 0x78 0x63 0x65 0x70 0x74 0x20    // ' except ' \n\t0x43 0x68 0x61 0x72 0x6C 0x69 0x65 0x2E    // 'Charlie.' \n\t0x20 0x20 0x54 0x68 0x65 0x6E 0x20 0x43    // '  Then C' \n\t0x68 0x61 0x72 0x6C 0x69 0x65 0x20 0x68    // 'harlie h' \n\t0x61 0x64 0x20 0x61 0x6E 0x20 0x69 0x64    // 'ad an id' \n\t0x65 0x61 0x21 0x20 0x20 0x57 0x69 0x74    // 'ea!  Wit' \n\t0x68 0x20 0x61 0x20 0x6C 0x69 0x67 0x68    // 'h a ligh' \n\t0x74 0x20 0x62 0x75 0x6C 0x62 0x20 0x69    // 't bulb i' \n\t0x6E 0x20 0x6F 0x6E 0x65 0x20 0x68 0x61    // 'n one ha' \n\t0x6E 0x64 0x2C 0x20 0x43 0x68 0x61 0x72    // 'nd, Char' \n\t0x6C 0x69 0x65 0x20 0x6C 0x65 0x61 0x70    // 'lie leap' \n\t0x74 0x20 0x69 0x6E 0x74 0x6F 0x20 0x74    // 't into t' \n\t0x68 0x65 0x20 0x61 0x69 0x72 0x20 0x61    // 'he air a' \n\t0x6E 0x64 0x20 0x70 0x75 0x74 0x20 0x69    // 'nd put i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x62 0x75    // 'n the bu' \n\t0x6C 0x62 0x20 0x69 0x6E 0x20 0x74 0x68    // 'lb in th' \n\t0x65 0x20 0x73 0x6F 0x63 0x6B 0x65 0x74    // 'e socket' \n\t0x2E 0x20 0x54 0x68 0x65 0x6E 0x20 0x68    // '. Then h' \n\t0x65 0x20 0x6A 0x75 0x6D 0x70 0x65 0x64    // 'e jumped' \n\t0x20 0x61 0x67 0x61 0x69 0x6E 0x20 0x61    // ' again a' \n\t0x6E 0x64 0x20 0x73 0x70 0x75 0x6E 0x20    // 'nd spun ' \n\t0x61 0x72 0x6F 0x75 0x6E 0x64 0x20 0x74    // 'around t' \n\t0x6F 0x20 0x74 0x75 0x72 0x6E 0x20 0x74    // 'o turn t' \n\t0x68 0x65 0x20 0x62 0x75 0x6C 0x62 0x2E    // 'he bulb.' \n\t0x20 0x48 0x65 0x20 0x6B 0x65 0x70 0x74    // ' He kept' \n\t0x20 0x6A 0x75 0x6D 0x70 0x69 0x6E 0x67    // ' jumping' \n\t0x20 0x61 0x6E 0x64 0x20 0x73 0x70 0x69    // ' and spi' \n\t0x6E 0x6E 0x69 0x6E 0x67 0x20 0x75 0x6E    // 'nning un' \n\t0x74 0x69 0x6C 0x20 0x74 0x68 0x65 0x20    // 'til the ' \n\t0x62 0x75 0x6C 0x62 0x20 0x77 0x61 0x73    // 'bulb was' \n\t0x20 0x63 0x6F 0x6D 0x70 0x6C 0x65 0x74    // ' complet' \n\t0x65 0x6C 0x79 0x20 0x73 0x63 0x72 0x65    // 'ely scre' \n\t0x77 0x65 0x64 0x20 0x69 0x6E 0x74 0x6F    // 'wed into' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x63    // ' the soc' \n\t0x6B 0x65 0x74 0x2E 0x20 0x20 0x4D 0x63    // 'ket.  Mc' \n\t0x5A 0x65 0x65 0x20 0x73 0x61 0x69 0x64    // 'Zee said' \n\t0x20 0x74 0x6F 0x20 0x68 0x69 0x6D 0x73    // ' to hims' \n\t0x65 0x6C 0x66 0x2C 0x20 0x93 0x54 0x68    // 'elf, Th' \n\t0x69 0x73 0x20 0x6B 0x69 0x64 0x20 0x69    // 'is kid i' \n\t0x73 0x20 0x72 0x65 0x61 0x6C 0x6C 0x79    // 's really' \n\t0x20 0x73 0x6F 0x6D 0x65 0x74 0x68 0x69    // ' somethi' \n\t0x6E 0x67 0x21 0x94 0x20 0x61 0x6E 0x64    // 'ng! and' \n\t0x20 0x61 0x73 0x6B 0x65 0x64 0x20 0x43    // ' asked C' \n\t0x68 0x61 0x72 0x6C 0x69 0x65 0x20 0x74    // 'harlie t' \n\t0x6F 0x20 0x62 0x65 0x20 0x69 0x6E 0x20    // 'o be in ' \n\t0x68 0x69 0x73 0x20 0x66 0x69 0x6C 0x6D    // 'his film' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4B= ktipbio34\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4B, __HELP_NAME(\"ktipbio34\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4B, __HELP_NAME(\"ktipbio34\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio34\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x52 0x02 0x00 0x01    // '????R???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0A 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6B 0x65 0x6C 0x65 0x74    // '??Skelet' \n\t0x6F 0x6E 0x0D 0x0A 0x43 0x68 0x61 0x72    // 'on??Char' \n\t0x6C 0x69 0x65 0x20 0x64 0x72 0x65 0x61    // 'lie drea' \n\t0x6D 0x73 0x20 0x6F 0x66 0x20 0x70 0x6C    // 'ms of pl' \n\t0x61 0x79 0x69 0x6E 0x67 0x20 0x61 0x20    // 'aying a ' \n\t0x73 0x6B 0x65 0x6C 0x65 0x74 0x6F 0x6E    // 'skeleton' \n\t0x20 0x6E 0x61 0x6D 0x65 0x64 0x20 0x93    // ' named ' \n\t0x42 0x6F 0x6E 0x65 0x73 0x94 0x20 0x69    // 'Bones i' \n\t0x6E 0x20 0x61 0x20 0x73 0x63 0x61 0x72    // 'n a scar' \n\t0x79 0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E    // 'y movie.' \n\t0x20 0x20 0x49 0x6E 0x20 0x74 0x68 0x65    // '  In the' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20    // ' movie, ' \n\t0x61 0x20 0x6B 0x6E 0x69 0x67 0x68 0x74    // 'a knight' \n\t0x20 0x6F 0x77 0x6E 0x73 0x20 0x61 0x6E    // ' owns an' \n\t0x20 0x6F 0x6C 0x64 0x2C 0x20 0x63 0x72    // ' old, cr' \n\t0x65 0x65 0x70 0x79 0x20 0x68 0x6F 0x75    // 'eepy hou' \n\t0x73 0x65 0x2E 0x20 0x20 0x54 0x68 0x65    // 'se.  The' \n\t0x20 0x6B 0x6E 0x69 0x67 0x68 0x74 0x20    // ' knight ' \n\t0x68 0x61 0x73 0x20 0x6E 0x6F 0x74 0x20    // 'has not ' \n\t0x73 0x6C 0x65 0x70 0x74 0x20 0x69 0x6E    // 'slept in' \n\t0x20 0x79 0x65 0x61 0x72 0x73 0x20 0x61    // ' years a' \n\t0x6E 0x64 0x20 0x77 0x61 0x6E 0x64 0x65    // 'nd wande' \n\t0x72 0x73 0x20 0x61 0x72 0x6F 0x75 0x6E    // 'rs aroun' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'd the ne' \n\t0x69 0x67 0x68 0x62 0x6F 0x72 0x68 0x6F    // 'ighborho' \n\t0x6F 0x64 0x20 0x69 0x6E 0x20 0x74 0x68    // 'od in th' \n\t0x65 0x20 0x6D 0x69 0x64 0x64 0x6C 0x65    // 'e middle' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x6E 0x69 0x67 0x68 0x74 0x2E 0x20 0x20    // 'night.  ' \n\t0x48 0x69 0x73 0x20 0x6C 0x6F 0x75 0x64    // 'His loud' \n\t0x20 0x63 0x6C 0x61 0x6E 0x6B 0x69 0x6E    // ' clankin' \n\t0x67 0x20 0x6B 0x65 0x65 0x70 0x73 0x20    // 'g keeps ' \n\t0x61 0x6C 0x6C 0x20 0x74 0x68 0x65 0x20    // 'all the ' \n\t0x74 0x65 0x6E 0x61 0x6E 0x74 0x73 0x20    // 'tenants ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x68    // 'of the h' \n\t0x6F 0x75 0x73 0x65 0x20 0x61 0x77 0x61    // 'ouse awa' \n\t0x6B 0x65 0x2E 0x20 0x20 0x42 0x6F 0x6E    // 'ke.  Bon' \n\t0x65 0x73 0x20 0x69 0x73 0x20 0x64 0x65    // 'es is de' \n\t0x74 0x65 0x72 0x6D 0x69 0x6E 0x65 0x64    // 'termined' \n\t0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B 0x65    // ' to make' \n\t0x20 0x74 0x68 0x65 0x20 0x6B 0x6E 0x69    // ' the kni' \n\t0x67 0x68 0x74 0x20 0x74 0x69 0x72 0x65    // 'ght tire' \n\t0x64 0x20 0x65 0x6E 0x6F 0x75 0x67 0x68    // 'd enough' \n\t0x20 0x74 0x6F 0x20 0x73 0x6C 0x65 0x65    // ' to slee' \n\t0x70 0x2E 0x20 0x20 0x42 0x6F 0x6E 0x65    // 'p.  Bone' \n\t0x73 0x20 0x73 0x6E 0x65 0x61 0x6B 0x73    // 's sneaks' \n\t0x20 0x61 0x72 0x6F 0x75 0x6E 0x64 0x20    // ' around ' \n\t0x74 0x68 0x65 0x20 0x68 0x6F 0x75 0x73    // 'the hous' \n\t0x65 0x20 0x6D 0x61 0x6B 0x69 0x6E 0x67    // 'e making' \n\t0x20 0x74 0x68 0x65 0x20 0x6B 0x6E 0x69    // ' the kni' \n\t0x67 0x68 0x74 0x20 0x74 0x68 0x69 0x6E    // 'ght thin' \n\t0x6B 0x20 0x61 0x20 0x74 0x68 0x69 0x65    // 'k a thie' \n\t0x66 0x20 0x69 0x73 0x20 0x69 0x6E 0x20    // 'f is in ' \n\t0x74 0x68 0x65 0x20 0x68 0x6F 0x75 0x73    // 'the hous' \n\t0x65 0x2E 0x20 0x20 0x54 0x68 0x65 0x20    // 'e.  The ' \n\t0x6B 0x6E 0x69 0x67 0x68 0x74 0x20 0x63    // 'knight c' \n\t0x68 0x61 0x73 0x65 0x73 0x20 0x42 0x6F    // 'hases Bo' \n\t0x6E 0x65 0x73 0x20 0x61 0x72 0x6F 0x75    // 'nes arou' \n\t0x6E 0x64 0x20 0x74 0x72 0x79 0x69 0x6E    // 'nd tryin' \n\t0x67 0x20 0x74 0x6F 0x20 0x63 0x61 0x74    // 'g to cat' \n\t0x63 0x68 0x20 0x68 0x69 0x6D 0x2C 0x20    // 'ch him, ' \n\t0x62 0x75 0x74 0x20 0x42 0x6F 0x6E 0x65    // 'but Bone' \n\t0x73 0x20 0x73 0x69 0x6D 0x70 0x6C 0x79    // 's simply' \n\t0x20 0x6A 0x75 0x6D 0x70 0x73 0x20 0x6F    // ' jumps o' \n\t0x76 0x65 0x72 0x20 0x74 0x68 0x65 0x20    // 'ver the ' \n\t0x6B 0x6E 0x69 0x67 0x68 0x74 0x2E 0x20    // 'knight. ' \n\t0x20 0x57 0x69 0x6C 0x6C 0x20 0x42 0x6F    // ' Will Bo' \n\t0x6E 0x65 0x73 0x20 0x77 0x65 0x61 0x72    // 'nes wear' \n\t0x20 0x6F 0x75 0x74 0x20 0x74 0x68 0x65    // ' out the' \n\t0x20 0x6B 0x6E 0x69 0x67 0x68 0x74 0x3F    // ' knight?' \n\t0x20 0x20 0x57 0x69 0x6C 0x6C 0x20 0x74    // '  Will t' \n\t0x68 0x65 0x20 0x6E 0x65 0x69 0x67 0x68    // 'he neigh' \n\t0x62 0x6F 0x72 0x68 0x6F 0x6F 0x64 0x20    // 'borhood ' \n\t0x73 0x6C 0x65 0x65 0x70 0x20 0x61 0x67    // 'sleep ag' \n\t0x61 0x69 0x6E 0x3F                        // 'ain?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4C= ktipbio35\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4C, __HELP_NAME(\"ktipbio35\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4C, __HELP_NAME(\"ktipbio35\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio35\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x07 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2F 0x03 0x00 0x01    // '????/???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x17 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x4C 0x61 0x76 0x61 0x20 0x4C    // '??Lava L' \n\t0x61 0x6D 0x70 0x20 0x53 0x61 0x6C 0x65    // 'amp Sale' \n\t0x73 0x70 0x65 0x72 0x73 0x6F 0x6E 0x0D    // 'sperson?' \n\t0x0A 0x41 0x6E 0x6F 0x74 0x68 0x65 0x72    // '?Another' \n\t0x20 0x72 0x6F 0x6C 0x65 0x20 0x43 0x68    // ' role Ch' \n\t0x61 0x72 0x6C 0x69 0x65 0x20 0x77 0x6F    // 'arlie wo' \n\t0x75 0x6C 0x64 0x20 0x6C 0x6F 0x76 0x65    // 'uld love' \n\t0x20 0x74 0x6F 0x20 0x70 0x6C 0x61 0x79    // ' to play' \n\t0x20 0x69 0x73 0x20 0x61 0x20 0x6C 0x61    // ' is a la' \n\t0x76 0x61 0x20 0x6C 0x61 0x6D 0x70 0x20    // 'va lamp ' \n\t0x73 0x61 0x6C 0x65 0x73 0x6D 0x61 0x6E    // 'salesman' \n\t0x2E 0x20 0x20 0x48 0x69 0x73 0x20 0x63    // '.  His c' \n\t0x6F 0x6D 0x70 0x61 0x6E 0x79 0x20 0x73    // 'ompany s' \n\t0x65 0x6E 0x64 0x73 0x20 0x68 0x69 0x6D    // 'ends him' \n\t0x20 0x74 0x6F 0x20 0x4A 0x61 0x6D 0x61    // ' to Jama' \n\t0x69 0x63 0x61 0x20 0x74 0x6F 0x20 0x73    // 'ica to s' \n\t0x65 0x6C 0x6C 0x20 0x6C 0x61 0x76 0x61    // 'ell lava' \n\t0x20 0x6C 0x61 0x6D 0x70 0x73 0x2E 0x20    // ' lamps. ' \n\t0x20 0x50 0x72 0x65 0x74 0x65 0x6E 0x64    // ' Pretend' \n\t0x69 0x6E 0x67 0x20 0x74 0x6F 0x20 0x62    // 'ing to b' \n\t0x65 0x20 0x61 0x20 0x73 0x61 0x6C 0x65    // 'e a sale' \n\t0x73 0x6D 0x61 0x6E 0x20 0x69 0x73 0x20    // 'sman is ' \n\t0x61 0x20 0x70 0x65 0x72 0x66 0x65 0x63    // 'a perfec' \n\t0x74 0x20 0x72 0x6F 0x6C 0x65 0x20 0x62    // 't role b' \n\t0x65 0x63 0x61 0x75 0x73 0x65 0x20 0x43    // 'ecause C' \n\t0x68 0x61 0x72 0x6C 0x69 0x65 0x20 0x72    // 'harlie r' \n\t0x65 0x61 0x6C 0x6C 0x79 0x20 0x77 0x61    // 'eally wa' \n\t0x6E 0x74 0x73 0x20 0x66 0x69 0x6E 0x64    // 'nts find' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x79 0x73    // ' the mys' \n\t0x74 0x65 0x72 0x69 0x6F 0x75 0x73 0x20    // 'terious ' \n\t0x4A 0x61 0x6D 0x61 0x69 0x63 0x61 0x6E    // 'Jamaican' \n\t0x20 0x74 0x61 0x6C 0x6B 0x69 0x6E 0x67    // ' talking' \n\t0x20 0x73 0x6B 0x75 0x6C 0x6C 0x2E 0x20    // ' skull. ' \n\t0x20 0x54 0x68 0x65 0x20 0x73 0x6B 0x75    // ' The sku' \n\t0x6C 0x6C 0x20 0x69 0x73 0x20 0x76 0x65    // 'll is ve' \n\t0x72 0x79 0x20 0x6F 0x6C 0x64 0x20 0x61    // 'ry old a' \n\t0x6E 0x64 0x20 0x6B 0x6E 0x6F 0x77 0x73    // 'nd knows' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x65 0x63    // ' the sec' \n\t0x72 0x65 0x74 0x20 0x69 0x6E 0x67 0x72    // 'ret ingr' \n\t0x65 0x64 0x69 0x65 0x6E 0x74 0x73 0x20    // 'edients ' \n\t0x66 0x6F 0x72 0x20 0x62 0x61 0x6E 0x61    // 'for bana' \n\t0x6E 0x61 0x2D 0x73 0x74 0x72 0x61 0x77    // 'na-straw' \n\t0x62 0x65 0x72 0x72 0x79 0x2D 0x70 0x69    // 'berry-pi' \n\t0x6E 0x65 0x61 0x70 0x70 0x6C 0x65 0x20    // 'neapple ' \n\t0x70 0x65 0x61 0x6E 0x75 0x74 0x20 0x62    // 'peanut b' \n\t0x75 0x74 0x74 0x65 0x72 0x2E 0x20 0x20    // 'utter.  ' \n\t0x49 0x66 0x20 0x43 0x68 0x61 0x72 0x6C    // 'If Charl' \n\t0x69 0x65 0x20 0x67 0x65 0x74 0x73 0x20    // 'ie gets ' \n\t0x74 0x68 0x65 0x20 0x72 0x65 0x63 0x69    // 'the reci' \n\t0x70 0x65 0x2C 0x20 0x68 0x65 0x92 0x6C    // 'pe, hel' \n\t0x6C 0x20 0x73 0x65 0x6C 0x6C 0x20 0x65    // 'l sell e' \n\t0x6E 0x6F 0x75 0x67 0x68 0x20 0x6F 0x66    // 'nough of' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x77 0x65    // ' the awe' \n\t0x73 0x6F 0x6D 0x65 0x20 0x70 0x65 0x61    // 'some pea' \n\t0x6E 0x75 0x74 0x20 0x62 0x75 0x74 0x74    // 'nut butt' \n\t0x65 0x72 0x20 0x74 0x6F 0x20 0x65 0x76    // 'er to ev' \n\t0x65 0x72 0x79 0x6F 0x6E 0x65 0x20 0x61    // 'eryone a' \n\t0x74 0x20 0x63 0x6F 0x6C 0x6C 0x65 0x67    // 't colleg' \n\t0x65 0x2E 0x20 0x20 0x41 0x74 0x20 0x74    // 'e.  At t' \n\t0x68 0x65 0x20 0x6C 0x6F 0x63 0x61 0x6C    // 'he local' \n\t0x20 0x6D 0x61 0x6C 0x6C 0x2C 0x20 0x43    // ' mall, C' \n\t0x68 0x61 0x72 0x6C 0x69 0x65 0x20 0x67    // 'harlie g' \n\t0x65 0x74 0x73 0x20 0x61 0x20 0x74 0x61    // 'ets a ta' \n\t0x78 0x69 0x20 0x61 0x6E 0x64 0x20 0x67    // 'xi and g' \n\t0x6F 0x65 0x73 0x20 0x74 0x6F 0x20 0x74    // 'oes to t' \n\t0x68 0x65 0x20 0x62 0x61 0x73 0x65 0x20    // 'he base ' \n\t0x6F 0x66 0x20 0x61 0x20 0x6D 0x6F 0x75    // 'of a mou' \n\t0x6E 0x74 0x61 0x69 0x6E 0x20 0x74 0x6F    // 'ntain to' \n\t0x20 0x73 0x65 0x61 0x72 0x63 0x68 0x20    // ' search ' \n\t0x66 0x6F 0x72 0x20 0x74 0x68 0x65 0x20    // 'for the ' \n\t0x73 0x6B 0x75 0x6C 0x6C 0x2E 0x20 0x20    // 'skull.  ' \n\t0x53 0x6F 0x6F 0x6E 0x20 0x68 0x65 0x20    // 'Soon he ' \n\t0x66 0x69 0x6E 0x64 0x73 0x20 0x61 0x6E    // 'finds an' \n\t0x20 0x6F 0x6C 0x64 0x20 0x77 0x6F 0x6F    // ' old woo' \n\t0x64 0x65 0x6E 0x20 0x62 0x72 0x69 0x64    // 'den brid' \n\t0x67 0x65 0x20 0x77 0x69 0x74 0x68 0x20    // 'ge with ' \n\t0x61 0x20 0x63 0x61 0x76 0x65 0x20 0x61    // 'a cave a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x6F 0x74    // 't the ot' \n\t0x68 0x65 0x72 0x20 0x65 0x6E 0x64 0x2E    // 'her end.' \n\t0x20 0x20 0x48 0x65 0x92 0x73 0x20 0x61    // '  Hes a' \n\t0x66 0x72 0x61 0x69 0x64 0x20 0x74 0x68    // 'fraid th' \n\t0x65 0x20 0x62 0x72 0x69 0x64 0x67 0x65    // 'e bridge' \n\t0x20 0x69 0x73 0x20 0x6E 0x6F 0x74 0x20    // ' is not ' \n\t0x73 0x74 0x72 0x6F 0x6E 0x67 0x20 0x65    // 'strong e' \n\t0x6E 0x6F 0x75 0x67 0x68 0x20 0x74 0x6F    // 'nough to' \n\t0x20 0x68 0x6F 0x6C 0x64 0x20 0x68 0x69    // ' hold hi' \n\t0x6D 0x2C 0x20 0x62 0x75 0x74 0x20 0x6D    // 'm, but m' \n\t0x75 0x73 0x74 0x20 0x67 0x65 0x74 0x20    // 'ust get ' \n\t0x61 0x63 0x72 0x6F 0x73 0x73 0x2E 0x20    // 'across. ' \n\t0x20 0x43 0x61 0x6E 0x20 0x43 0x68 0x61    // ' Can Cha' \n\t0x72 0x6C 0x69 0x65 0x20 0x6A 0x75 0x6D    // 'rlie jum' \n\t0x70 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'p to the' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x20 0x73    // ' other s' \n\t0x69 0x64 0x65 0x3F 0x20 0x41 0x6E 0x64    // 'ide? And' \n\t0x2C 0x20 0x69 0x66 0x20 0x68 0x65 0x20    // ', if he ' \n\t0x6D 0x61 0x6B 0x65 0x73 0x20 0x69 0x74    // 'makes it' \n\t0x2C 0x20 0x77 0x69 0x6C 0x6C 0x20 0x68    // ', will h' \n\t0x65 0x20 0x66 0x69 0x6E 0x64 0x20 0x74    // 'e find t' \n\t0x68 0x65 0x20 0x74 0x61 0x6C 0x6B 0x69    // 'he talki' \n\t0x6E 0x67 0x20 0x73 0x6B 0x75 0x6C 0x6C    // 'ng skull' \n\t0x20 0x62 0x65 0x20 0x69 0x6E 0x20 0x74    // ' be in t' \n\t0x68 0x65 0x20 0x63 0x61 0x76 0x65 0x3F    // 'he cave?' \n\t0x20                                       // ' ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4D= ktipbio36\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4D, __HELP_NAME(\"ktipbio36\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4D, __HELP_NAME(\"ktipbio36\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio36\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x9D 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x09 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A3, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x75 0x72 0x69 0x73    // '??Touris' \n\t0x74 0x0D 0x0A 0x43 0x68 0x61 0x72 0x6C    // 't??Charl' \n\t0x69 0x65 0x20 0x61 0x6C 0x73 0x6F 0x20    // 'ie also ' \n\t0x64 0x72 0x65 0x61 0x6D 0x73 0x20 0x6F    // 'dreams o' \n\t0x66 0x20 0x70 0x6C 0x61 0x79 0x69 0x6E    // 'f playin' \n\t0x67 0x20 0x61 0x20 0x74 0x6F 0x75 0x72    // 'g a tour' \n\t0x69 0x73 0x74 0x20 0x77 0x68 0x6F 0x73    // 'ist whos' \n\t0x65 0x20 0x76 0x61 0x63 0x61 0x74 0x69    // 'e vacati' \n\t0x6F 0x6E 0x20 0x74 0x75 0x72 0x6E 0x73    // 'on turns' \n\t0x20 0x69 0x6E 0x74 0x6F 0x20 0x61 0x20    // ' into a ' \n\t0x68 0x75 0x67 0x65 0x20 0x61 0x64 0x76    // 'huge adv' \n\t0x65 0x6E 0x74 0x75 0x72 0x65 0x21 0x20    // 'enture! ' \n\t0x20 0x43 0x68 0x61 0x72 0x6C 0x69 0x65    // ' Charlie' \n\t0x20 0x69 0x73 0x20 0x6F 0x6E 0x20 0x74    // ' is on t' \n\t0x68 0x65 0x20 0x61 0x69 0x72 0x70 0x6C    // 'he airpl' \n\t0x61 0x6E 0x65 0x20 0x77 0x68 0x65 0x6E    // 'ane when' \n\t0x20 0x73 0x75 0x64 0x64 0x65 0x6E 0x6C    // ' suddenl' \n\t0x79 0x20 0x74 0x68 0x65 0x79 0x20 0x66    // 'y they f' \n\t0x6C 0x79 0x20 0x69 0x6E 0x74 0x6F 0x20    // 'ly into ' \n\t0x61 0x20 0x6D 0x79 0x73 0x74 0x65 0x72    // 'a myster' \n\t0x69 0x6F 0x75 0x73 0x2C 0x20 0x68 0x65    // 'ious, he' \n\t0x61 0x76 0x79 0x20 0x66 0x6F 0x67 0x2E    // 'avy fog.' \n\t0x20 0x20 0x54 0x68 0x65 0x20 0x66 0x6F    // '  The fo' \n\t0x67 0x20 0x67 0x6F 0x65 0x73 0x20 0x6F    // 'g goes o' \n\t0x6E 0x20 0x61 0x6E 0x64 0x20 0x6F 0x6E    // 'n and on' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x74    // ' until t' \n\t0x68 0x65 0x79 0x20 0x72 0x75 0x6E 0x20    // 'hey run ' \n\t0x6F 0x75 0x74 0x20 0x6F 0x66 0x20 0x67    // 'out of g' \n\t0x61 0x73 0x20 0x61 0x6E 0x64 0x20 0x61    // 'as and a' \n\t0x72 0x65 0x20 0x66 0x6F 0x72 0x63 0x65    // 're force' \n\t0x64 0x20 0x74 0x6F 0x20 0x6C 0x61 0x6E    // 'd to lan' \n\t0x64 0x2E 0x20 0x20 0x42 0x65 0x63 0x61    // 'd.  Beca' \n\t0x75 0x73 0x65 0x20 0x74 0x68 0x65 0x20    // 'use the ' \n\t0x66 0x6F 0x67 0x20 0x62 0x6C 0x6F 0x63    // 'fog bloc' \n\t0x6B 0x65 0x64 0x20 0x6E 0x61 0x76 0x69    // 'ked navi' \n\t0x67 0x61 0x74 0x69 0x6F 0x6E 0x20 0x73    // 'gation s' \n\t0x69 0x67 0x6E 0x61 0x6C 0x73 0x2C 0x20    // 'ignals, ' \n\t0x6E 0x6F 0x20 0x6F 0x6E 0x65 0x20 0x6B    // 'no one k' \n\t0x6E 0x6F 0x77 0x73 0x20 0x77 0x68 0x65    // 'nows whe' \n\t0x72 0x65 0x20 0x74 0x68 0x65 0x79 0x20    // 're they ' \n\t0x61 0x72 0x65 0x2E 0x20 0x20 0x45 0x76    // 'are.  Ev' \n\t0x65 0x72 0x79 0x6F 0x6E 0x65 0x20 0x6C    // 'eryone l' \n\t0x6F 0x6F 0x6B 0x73 0x20 0x74 0x6F 0x20    // 'ooks to ' \n\t0x43 0x68 0x61 0x72 0x6C 0x69 0x65 0x20    // 'Charlie ' \n\t0x74 0x6F 0x20 0x67 0x65 0x74 0x20 0x74    // 'to get t' \n\t0x68 0x65 0x6D 0x20 0x68 0x6F 0x6D 0x65    // 'hem home' \n\t0x20 0x73 0x61 0x66 0x65 0x6C 0x79 0x2E    // ' safely.' \n\t0x20 0x20 0x42 0x75 0x74 0x20 0x43 0x68    // '  But Ch' \n\t0x61 0x72 0x6C 0x69 0x65 0x20 0x66 0x69    // 'arlie fi' \n\t0x6E 0x64 0x73 0x20 0x6E 0x6F 0x20 0x73    // 'nds no s' \n\t0x69 0x67 0x6E 0x73 0x20 0x6F 0x66 0x20    // 'igns of ' \n\t0x6C 0x69 0x66 0x65 0x20 0x61 0x6E 0x79    // 'life any' \n\t0x77 0x68 0x65 0x72 0x65 0x2E 0x20 0x20    // 'where.  ' \n\t0x54 0x68 0x65 0x6E 0x2C 0x20 0x66 0x72    // 'Then, fr' \n\t0x6F 0x6D 0x20 0x6E 0x6F 0x77 0x68 0x65    // 'om nowhe' \n\t0x72 0x65 0x2C 0x20 0x61 0x6E 0x20 0x61    // 're, an a' \n\t0x6C 0x69 0x65 0x6E 0x20 0x73 0x70 0x61    // 'lien spa' \n\t0x63 0x65 0x73 0x68 0x69 0x70 0x20 0x63    // 'ceship c' \n\t0x6F 0x6D 0x65 0x73 0x20 0x69 0x6E 0x74    // 'omes int' \n\t0x6F 0x20 0x73 0x69 0x67 0x68 0x74 0x20    // 'o sight ' \n\t0x61 0x6E 0x64 0x20 0x62 0x65 0x67 0x69    // 'and begi' \n\t0x6E 0x73 0x20 0x63 0x69 0x72 0x63 0x6C    // 'ns circl' \n\t0x69 0x6E 0x67 0x20 0x73 0x6C 0x6F 0x77    // 'ing slow' \n\t0x6C 0x79 0x20 0x61 0x62 0x6F 0x76 0x65    // 'ly above' \n\t0x20 0x74 0x68 0x65 0x6D 0x2E 0x20 0x48    // ' them. H' \n\t0x61 0x76 0x65 0x20 0x74 0x68 0x65 0x79    // 'ave they' \n\t0x20 0x6C 0x61 0x6E 0x64 0x65 0x64 0x20    // ' landed ' \n\t0x6F 0x6E 0x20 0x61 0x6E 0x6F 0x74 0x68    // 'on anoth' \n\t0x65 0x72 0x20 0x70 0x6C 0x61 0x6E 0x65    // 'er plane' \n\t0x74 0x3F 0x20 0x43 0x61 0x6E 0x20 0x74    // 't? Can t' \n\t0x68 0x65 0x20 0x73 0x70 0x61 0x63 0x65    // 'he space' \n\t0x73 0x68 0x69 0x70 0x20 0x68 0x65 0x6C    // 'ship hel' \n\t0x70 0x20 0x73 0x61 0x76 0x65 0x20 0x74    // 'p save t' \n\t0x68 0x65 0x6D 0x20 0x6F 0x72 0x20 0x69    // 'hem or i' \n\t0x73 0x20 0x69 0x74 0x20 0x74 0x68 0x65    // 's it the' \n\t0x72 0x65 0x20 0x74 0x6F 0x20 0x74 0x61    // 're to ta' \n\t0x6B 0x65 0x20 0x74 0x68 0x65 0x6D 0x20    // 'ke them ' \n\t0x68 0x6F 0x73 0x74 0x61 0x67 0x65 0x3F    // 'hostage?' \n\t0x20 0x20 0x48 0x6F 0x77 0x20 0x77 0x69    // '  How wi' \n\t0x6C 0x6C 0x20 0x43 0x68 0x61 0x72 0x6C    // 'll Charl' \n\t0x69 0x65 0x20 0x67 0x65 0x74 0x20 0x74    // 'ie get t' \n\t0x68 0x65 0x20 0x67 0x72 0x6F 0x75 0x70    // 'he group' \n\t0x20 0x62 0x61 0x63 0x6B 0x20 0x74 0x6F    // ' back to' \n\t0x20 0x65 0x61 0x72 0x74 0x68 0x3F         // ' earth?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4E= ktipbio37\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4E, __HELP_NAME(\"ktipbio37\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4E, __HELP_NAME(\"ktipbio37\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_75=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio37\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_75=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x22 0x01 0x00 0x00    // '????\"???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_75=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_75, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4C 0x03 0x00 0x01    // '????L???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xAF 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_75=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_75, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x75 0x73 0x65 0x75 0x6D    // '??Museum' \n\t0x20 0x43 0x75 0x72 0x61 0x74 0x6F 0x72    // ' Curator' \n\t0x0D 0x0A 0x43 0x68 0x72 0x69 0x73 0x74    // '??Christ' \n\t0x69 0x6E 0x61 0x20 0x69 0x73 0x20 0x64    // 'ina is d' \n\t0x65 0x76 0x6F 0x74 0x65 0x64 0x20 0x74    // 'evoted t' \n\t0x6F 0x20 0x66 0x69 0x6E 0x64 0x69 0x6E    // 'o findin' \n\t0x67 0x20 0x20 0x69 0x6D 0x61 0x67 0x69    // 'g  imagi' \n\t0x6E 0x61 0x74 0x69 0x76 0x65 0x2C 0x20    // 'native, ' \n\t0x6F 0x66 0x66 0x62 0x65 0x61 0x74 0x2C    // 'offbeat,' \n\t0x20 0x65 0x63 0x6C 0x65 0x63 0x74 0x69    // ' eclecti' \n\t0x63 0x20 0x61 0x72 0x74 0x97 0x66 0x72    // 'c artfr' \n\t0x6F 0x6D 0x20 0x74 0x72 0x65 0x61 0x73    // 'om treas' \n\t0x75 0x72 0x65 0x20 0x63 0x68 0x65 0x73    // 'ure ches' \n\t0x74 0x73 0x20 0x61 0x6E 0x64 0x20 0x61    // 'ts and a' \n\t0x72 0x6D 0x6F 0x72 0x20 0x74 0x6F 0x20    // 'rmor to ' \n\t0x74 0x6F 0x74 0x65 0x6D 0x20 0x70 0x6F    // 'totem po' \n\t0x6C 0x65 0x73 0x2E 0x20 0x20 0x46 0x72    // 'les.  Fr' \n\t0x69 0x65 0x6E 0x64 0x73 0x20 0x73 0x61    // 'iends sa' \n\t0x79 0x20 0x73 0x68 0x65 0x27 0x73 0x20    // 'y she's ' \n\t0x71 0x75 0x69 0x65 0x74 0x2C 0x20 0x74    // 'quiet, t' \n\t0x61 0x6C 0x65 0x6E 0x74 0x65 0x64 0x2C    // 'alented,' \n\t0x20 0x63 0x75 0x72 0x69 0x6F 0x75 0x73    // ' curious' \n\t0x2C 0x20 0x67 0x6C 0x69 0x74 0x7A 0x79    // ', glitzy' \n\t0x2C 0x20 0x67 0x6C 0x61 0x6D 0x6F 0x72    // ', glamor' \n\t0x6F 0x75 0x73 0x2C 0x20 0x61 0x77 0x65    // 'ous, awe' \n\t0x73 0x6F 0x6D 0x65 0x2C 0x20 0x77 0x69    // 'some, wi' \n\t0x6C 0x64 0x2C 0x20 0x61 0x6E 0x64 0x2C    // 'ld, and,' \n\t0x20 0x73 0x6F 0x6D 0x65 0x74 0x69 0x6D    // ' sometim' \n\t0x65 0x73 0x2C 0x20 0x93 0x6E 0x6F 0x74    // 'es, not' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x69 0x73    // ' of this' \n\t0x20 0x77 0x6F 0x72 0x6C 0x64 0x2E 0x94    // ' world.' \n\t0x20 0x20 0x48 0x6F 0x77 0x20 0x63 0x61    // '  How ca' \n\t0x6E 0x20 0x6F 0x6E 0x65 0x20 0x70 0x65    // 'n one pe' \n\t0x72 0x73 0x6F 0x6E 0x20 0x62 0x65 0x20    // 'rson be ' \n\t0x61 0x6C 0x6C 0x20 0x6F 0x66 0x20 0x74    // 'all of t' \n\t0x68 0x65 0x73 0x65 0x20 0x74 0x68 0x69    // 'hese thi' \n\t0x6E 0x67 0x73 0x3F 0x20 0x20 0x57 0x65    // 'ngs?  We' \n\t0x6C 0x6C 0x2C 0x20 0x43 0x68 0x72 0x69    // 'll, Chri' \n\t0x73 0x74 0x69 0x6E 0x61 0x20 0x68 0x61    // 'stina ha' \n\t0x73 0x20 0x61 0x20 0x73 0x70 0x65 0x63    // 's a spec' \n\t0x69 0x61 0x6C 0x20 0x74 0x61 0x6C 0x65    // 'ial tale' \n\t0x6E 0x74 0x2E 0x20 0x20 0x41 0x6C 0x6C    // 'nt.  All' \n\t0x20 0x73 0x68 0x65 0x20 0x68 0x61 0x73    // ' she has' \n\t0x20 0x74 0x6F 0x20 0x64 0x6F 0x20 0x69    // ' to do i' \n\t0x73 0x20 0x66 0x6F 0x63 0x75 0x73 0x20    // 's focus ' \n\t0x6F 0x6E 0x20 0x61 0x20 0x70 0x69 0x65    // 'on a pie' \n\t0x63 0x65 0x20 0x6F 0x66 0x20 0x61 0x72    // 'ce of ar' \n\t0x74 0x2C 0x20 0x61 0x6E 0x64 0x20 0x73    // 't, and s' \n\t0x68 0x65 0x20 0x61 0x63 0x74 0x75 0x61    // 'he actua' \n\t0x6C 0x6C 0x79 0x20 0x62 0x65 0x63 0x6F    // 'lly beco' \n\t0x6D 0x65 0x73 0x20 0x74 0x68 0x65 0x20    // 'mes the ' \n\t0x74 0x68 0x69 0x6E 0x67 0x20 0x73 0x68    // 'thing sh' \n\t0x65 0x27 0x73 0x20 0x6C 0x6F 0x6F 0x6B    // 'e's look' \n\t0x69 0x6E 0x67 0x20 0x61 0x74 0x2E 0x0D    // 'ing at.?' \n\t0x0A 0x49 0x66 0x20 0x73 0x68 0x65 0x20    // '?If she ' \n\t0x66 0x6F 0x63 0x75 0x73 0x65 0x73 0x20    // 'focuses ' \n\t0x6F 0x6E 0x20 0x61 0x20 0x6D 0x75 0x6D    // 'on a mum' \n\t0x6D 0x79 0x2C 0x20 0x66 0x6F 0x72 0x20    // 'my, for ' \n\t0x65 0x78 0x61 0x6D 0x70 0x6C 0x65 0x2C    // 'example,' \n\t0x20 0x73 0x75 0x64 0x64 0x65 0x6E 0x6C    // ' suddenl' \n\t0x79 0x20 0x73 0x68 0x65 0x20 0x62 0x65    // 'y she be' \n\t0x63 0x6F 0x6D 0x65 0x73 0x20 0x74 0x68    // 'comes th' \n\t0x65 0x20 0x6D 0x75 0x6D 0x6D 0x79 0x21    // 'e mummy!' \n\t0x20 0x20 0x53 0x68 0x65 0x92 0x6C 0x6C    // '  Shell' \n\t0x20 0x20 0x74 0x61 0x6C 0x6B 0x20 0x6C    // '  talk l' \n\t0x69 0x6B 0x65 0x20 0x61 0x20 0x6D 0x75    // 'ike a mu' \n\t0x6D 0x6D 0x79 0x2C 0x20 0x77 0x61 0x6C    // 'mmy, wal' \n\t0x6B 0x20 0x6C 0x69 0x6B 0x65 0x20 0x61    // 'k like a' \n\t0x20 0x6D 0x75 0x6D 0x6D 0x79 0x2C 0x20    // ' mummy, ' \n\t0x65 0x76 0x65 0x6E 0x20 0x6C 0x6F 0x6F    // 'even loo' \n\t0x6B 0x20 0x6C 0x69 0x6B 0x65 0x20 0x61    // 'k like a' \n\t0x20 0x6D 0x75 0x6D 0x6D 0x79 0x2E 0x20    // ' mummy. ' \n\t0x20 0x4F 0x72 0x20 0x73 0x68 0x65 0x92    // ' Or she' \n\t0x6C 0x6C 0x20 0x62 0x65 0x63 0x6F 0x6D    // 'll becom' \n\t0x65 0x20 0x61 0x20 0x74 0x6F 0x74 0x65    // 'e a tote' \n\t0x6D 0x20 0x70 0x6F 0x6C 0x65 0x2E 0x20    // 'm pole. ' \n\t0x20 0x4F 0x72 0x20 0x61 0x20 0x73 0x6B    // ' Or a sk' \n\t0x65 0x6C 0x65 0x74 0x6F 0x6E 0x21 0x20    // 'eleton! ' \n\t0x20 0x53 0x6F 0x6D 0x65 0x74 0x69 0x6D    // ' Sometim' \n\t0x65 0x73 0x20 0x68 0x65 0x72 0x20 0x74    // 'es her t' \n\t0x72 0x61 0x6E 0x73 0x66 0x6F 0x72 0x6D    // 'ransform' \n\t0x61 0x74 0x69 0x6F 0x6E 0x73 0x20 0x68    // 'ations h' \n\t0x61 0x70 0x70 0x65 0x6E 0x20 0x77 0x69    // 'appen wi' \n\t0x74 0x68 0x20 0x61 0x20 0x6C 0x6F 0x75    // 'th a lou' \n\t0x64 0x20 0x4B 0x41 0x42 0x4F 0x4F 0x4D    // 'd KABOOM' \n\t0x2C 0x20 0x77 0x68 0x69 0x63 0x68 0x20    // ', which ' \n\t0x69 0x73 0x20 0x65 0x6D 0x62 0x61 0x72    // 'is embar' \n\t0x72 0x61 0x73 0x73 0x69 0x6E 0x67 0x2E    // 'rassing.' \n\t0x20 0x20 0x46 0x75 0x6E 0x6E 0x79 0x20    // '  Funny ' \n\t0x74 0x68 0x69 0x6E 0x67 0x20 0x69 0x73    // 'thing is' \n\t0x2C 0x20 0x6E 0x6F 0x20 0x6F 0x6E 0x65    // ', no one' \n\t0x20 0x65 0x6C 0x73 0x65 0x20 0x69 0x6E    // ' else in' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x75 0x73    // ' the mus' \n\t0x65 0x75 0x6D 0x20 0x73 0x65 0x65 0x6D    // 'eum seem' \n\t0x73 0x20 0x74 0x6F 0x20 0x6E 0x6F 0x74    // 's to not' \n\t0x69 0x63 0x65 0x21 0x20 0x20 0x46 0x72    // 'ice!  Fr' \n\t0x69 0x65 0x6E 0x64 0x73 0x20 0x74 0x68    // 'iends th' \n\t0x69 0x6E 0x6B 0x20 0x69 0x74 0x92 0x73    // 'ink its' \n\t0x20 0x6A 0x75 0x73 0x74 0x20 0x68 0x65    // ' just he' \n\t0x72 0x20 0x76 0x69 0x76 0x69 0x64 0x20    // 'r vivid ' \n\t0x69 0x6D 0x61 0x67 0x69 0x6E 0x61 0x74    // 'imaginat' \n\t0x69 0x6F 0x6E 0x2E 0x20 0x4F 0x6E 0x6C    // 'ion. Onl' \n\t0x79 0x20 0x43 0x68 0x72 0x69 0x73 0x74    // 'y Christ' \n\t0x69 0x6E 0x61 0x20 0x6B 0x6E 0x6F 0x77    // 'ina know' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x74 0x72    // 's the tr' \n\t0x75 0x74 0x68 0x2E 0x2E 0x2E              // 'uth...' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4F= ktipbio38\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4F, __HELP_NAME(\"ktipbio38\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4F, __HELP_NAME(\"ktipbio38\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio38\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xC7 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x05 0x02 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4F, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x69 0x6E 0x67 0x65 0x72    // '??Singer' \n\t0x0D 0x0A 0x43 0x68 0x72 0x69 0x73 0x74    // '??Christ' \n\t0x69 0x6E 0x61 0x20 0x68 0x61 0x73 0x20    // 'ina has ' \n\t0x61 0x6C 0x77 0x61 0x79 0x73 0x20 0x77    // 'always w' \n\t0x61 0x6E 0x74 0x65 0x64 0x20 0x74 0x6F    // 'anted to' \n\t0x20 0x62 0x65 0x20 0x61 0x20 0x73 0x69    // ' be a si' \n\t0x6E 0x67 0x65 0x72 0x2E 0x20 0x20 0x53    // 'nger.  S' \n\t0x68 0x65 0x92 0x73 0x20 0x63 0x6F 0x6E    // 'hes con' \n\t0x73 0x69 0x64 0x65 0x72 0x65 0x64 0x20    // 'sidered ' \n\t0x62 0x65 0x69 0x6E 0x67 0x20 0x61 0x20    // 'being a ' \n\t0x6A 0x61 0x7A 0x7A 0x20 0x73 0x69 0x6E    // 'jazz sin' \n\t0x67 0x65 0x72 0x20 0x6F 0x6E 0x20 0x61    // 'ger on a' \n\t0x20 0x93 0x63 0x72 0x75 0x69 0x73 0x65    // ' cruise' \n\t0x20 0x70 0x6C 0x61 0x6E 0x65 0x2E 0x94    // ' plane.' \n\t0x20 0x20 0x45 0x76 0x65 0x72 0x20 0x68    // '  Ever h' \n\t0x65 0x61 0x72 0x64 0x20 0x6F 0x66 0x20    // 'eard of ' \n\t0x61 0x20 0x63 0x72 0x75 0x69 0x73 0x65    // 'a cruise' \n\t0x20 0x70 0x6C 0x61 0x6E 0x65 0x3F 0x20    // ' plane? ' \n\t0x20 0x49 0x74 0x92 0x73 0x20 0x6C 0x69    // ' Its li' \n\t0x6B 0x65 0x20 0x61 0x20 0x63 0x72 0x75    // 'ke a cru' \n\t0x69 0x73 0x65 0x20 0x73 0x68 0x69 0x70    // 'ise ship' \n\t0x2C 0x20 0x62 0x75 0x74 0x20 0x6F 0x6E    // ', but on' \n\t0x20 0x61 0x6E 0x20 0x61 0x69 0x72 0x70    // ' an airp' \n\t0x6C 0x61 0x6E 0x65 0x2E 0x20 0x20 0x20    // 'lane.   ' \n\t0x43 0x68 0x72 0x69 0x73 0x74 0x69 0x6E    // 'Christin' \n\t0x61 0x20 0x74 0x68 0x69 0x6E 0x6B 0x73    // 'a thinks' \n\t0x20 0x61 0x69 0x72 0x6C 0x69 0x6E 0x65    // ' airline' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x73 0x20    // ' movies ' \n\t0x61 0x72 0x65 0x20 0x66 0x69 0x6E 0x65    // 'are fine' \n\t0x20 0x65 0x6E 0x74 0x65 0x72 0x74 0x61    // ' enterta' \n\t0x69 0x6E 0x6D 0x65 0x6E 0x74 0x2C 0x20    // 'inment, ' \n\t0x62 0x75 0x74 0x20 0x6C 0x69 0x76 0x65    // 'but live' \n\t0x20 0x6D 0x75 0x73 0x69 0x63 0x20 0x61    // ' music a' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x61 0x74    // 'nd theat' \n\t0x65 0x72 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'er would' \n\t0x20 0x62 0x65 0x20 0x74 0x68 0x65 0x20    // ' be the ' \n\t0x62 0x65 0x73 0x74 0x21 0x20 0x20 0x43    // 'best!  C' \n\t0x68 0x72 0x69 0x73 0x74 0x69 0x6E 0x61    // 'hristina' \n\t0x20 0x63 0x6F 0x75 0x6C 0x64 0x20 0x73    // ' could s' \n\t0x69 0x6E 0x67 0x20 0x66 0x6F 0x72 0x20    // 'ing for ' \n\t0x74 0x68 0x65 0x20 0x93 0x72 0x65 0x64    // 'the red' \n\t0x20 0x65 0x79 0x65 0x94 0x20 0x66 0x6C    // ' eye fl' \n\t0x69 0x67 0x68 0x74 0x73 0x2E 0x20 0x20    // 'ights.  ' \n\t0x53 0x68 0x65 0x92 0x64 0x20 0x74 0x69    // 'Shed ti' \n\t0x74 0x6C 0x65 0x20 0x68 0x65 0x72 0x20    // 'tle her ' \n\t0x67 0x69 0x67 0x20 0x93 0x4C 0x61 0x74    // 'gig Lat' \n\t0x65 0x20 0x4E 0x69 0x67 0x68 0x74 0x20    // 'e Night ' \n\t0x77 0x69 0x74 0x68 0x20 0x43 0x68 0x72    // 'with Chr' \n\t0x69 0x73 0x74 0x69 0x6E 0x61 0x94 0x97    // 'istina' \n\t0x73 0x69 0x74 0x20 0x62 0x61 0x63 0x6B    // 'sit back' \n\t0x20 0x61 0x6E 0x64 0x20 0x72 0x65 0x6C    // ' and rel' \n\t0x61 0x78 0x2E 0x20 0x20 0x54 0x68 0x65    // 'ax.  The' \n\t0x20 0x70 0x61 0x72 0x65 0x6E 0x74 0x73    // ' parents' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x6C    // ' would l' \n\t0x6F 0x76 0x65 0x20 0x69 0x74 0x97 0x61    // 'ove ita' \n\t0x6C 0x6C 0x20 0x74 0x68 0x65 0x20 0x62    // 'll the b' \n\t0x61 0x62 0x69 0x65 0x73 0x20 0x77 0x6F    // 'abies wo' \n\t0x75 0x6C 0x64 0x20 0x62 0x65 0x20 0x61    // 'uld be a' \n\t0x73 0x6C 0x65 0x65 0x70 0x20 0x69 0x6E    // 'sleep in' \n\t0x20 0x6D 0x69 0x6E 0x75 0x74 0x65 0x73    // ' minutes' \n\t0x2E 0x20 0x20 0x49 0x74 0x20 0x77 0x6F    // '.  It wo' \n\t0x75 0x6C 0x64 0x20 0x62 0x65 0x20 0x62    // 'uld be b' \n\t0x65 0x74 0x74 0x65 0x72 0x20 0x74 0x68    // 'etter th' \n\t0x61 0x6E 0x20 0x61 0x20 0x6C 0x75 0x6C    // 'an a lul' \n\t0x6C 0x61 0x62 0x79 0x21 0x0D 0x0A 0x42    // 'laby!??B' \n\t0x75 0x74 0x20 0x77 0x68 0x61 0x74 0x20    // 'ut what ' \n\t0x77 0x69 0x6C 0x6C 0x20 0x68 0x61 0x70    // 'will hap' \n\t0x70 0x65 0x6E 0x20 0x77 0x68 0x65 0x6E    // 'pen when' \n\t0x20 0x43 0x68 0x72 0x69 0x73 0x74 0x69    // ' Christi' \n\t0x6E 0x61 0x20 0x64 0x69 0x73 0x63 0x6F    // 'na disco' \n\t0x76 0x65 0x72 0x73 0x20 0x74 0x68 0x61    // 'vers tha' \n\t0x74 0x20 0x73 0x68 0x65 0x92 0x73 0x20    // 't shes ' \n\t0x61 0x66 0x72 0x61 0x69 0x64 0x20 0x6F    // 'afraid o' \n\t0x66 0x20 0x66 0x6C 0x79 0x69 0x6E 0x67    // 'f flying' \n\t0x20 0x61 0x6E 0x64 0x20 0x73 0x68 0x65    // ' and she' \n\t0x20 0x66 0x61 0x69 0x6E 0x74 0x73 0x3F    // ' faints?' \n\t0x20 0x20 0x57 0x69 0x6C 0x6C 0x20 0x74    // '  Will t' \n\t0x68 0x65 0x72 0x65 0x20 0x62 0x65 0x20    // 'here be ' \n\t0x61 0x6E 0x79 0x6F 0x6E 0x65 0x20 0x65    // 'anyone e' \n\t0x6C 0x73 0x65 0x20 0x6F 0x6E 0x20 0x62    // 'lse on b' \n\t0x6F 0x61 0x72 0x64 0x20 0x74 0x6F 0x20    // 'oard to ' \n\t0x74 0x61 0x6B 0x65 0x20 0x6F 0x76 0x65    // 'take ove' \n\t0x72 0x20 0x68 0x65 0x72 0x20 0x61 0x63    // 'r her ac' \n\t0x74 0x3F 0x20 0x20 0x4D 0x61 0x79 0x62    // 't?  Mayb' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x6F 0x6E    // 'e the on' \n\t0x65 0x20 0x62 0x61 0x62 0x79 0x20 0x74    // 'e baby t' \n\t0x68 0x61 0x74 0x20 0x69 0x73 0x6E 0x92    // 'hat isn' \n\t0x74 0x20 0x61 0x6C 0x72 0x65 0x61 0x64    // 't alread' \n\t0x79 0x20 0x61 0x73 0x6C 0x65 0x65 0x70    // 'y asleep' \n\t0x3F                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_50= ktipbio39\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_50, __HELP_NAME(\"ktipbio39\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_50, __HELP_NAME(\"ktipbio39\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_50=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_50, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio39\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_50=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_50, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_50=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xDE 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xDE 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_50=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x6F 0x6D 0x65 0x20 0x4F    // '??Home O' \n\t0x77 0x6E 0x65 0x72 0x0D 0x0A 0x43 0x68    // 'wner??Ch' \n\t0x72 0x69 0x73 0x74 0x69 0x6E 0x61 0x20    // 'ristina ' \n\t0x68 0x61 0x73 0x20 0x64 0x72 0x65 0x61    // 'has drea' \n\t0x6D 0x65 0x64 0x20 0x6F 0x66 0x20 0x62    // 'med of b' \n\t0x65 0x69 0x6E 0x67 0x20 0x61 0x20 0x68    // 'eing a h' \n\t0x6F 0x6D 0x65 0x20 0x6F 0x77 0x6E 0x65    // 'ome owne' \n\t0x72 0x2E 0x20 0x20 0x41 0x20 0x73 0x6D    // 'r.  A sm' \n\t0x61 0x6C 0x6C 0x20 0x4E 0x65 0x77 0x20    // 'all New ' \n\t0x59 0x6F 0x72 0x6B 0x20 0x61 0x70 0x61    // 'York apa' \n\t0x72 0x74 0x6D 0x65 0x6E 0x74 0x20 0x69    // 'rtment i' \n\t0x73 0x20 0x61 0x6C 0x6C 0x20 0x73 0x68    // 's all sh' \n\t0x65 0x20 0x63 0x61 0x6E 0x20 0x61 0x66    // 'e can af' \n\t0x66 0x6F 0x72 0x64 0x2C 0x20 0x62 0x75    // 'ford, bu' \n\t0x74 0x20 0x43 0x68 0x72 0x69 0x73 0x74    // 't Christ' \n\t0x69 0x6E 0x61 0x20 0x77 0x61 0x6E 0x74    // 'ina want' \n\t0x73 0x20 0x61 0x20 0x62 0x69 0x67 0x20    // 's a big ' \n\t0x68 0x6F 0x75 0x73 0x65 0x2C 0x20 0x6F    // 'house, o' \n\t0x6E 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ne where' \n\t0x20 0x65 0x76 0x65 0x72 0x79 0x74 0x68    // ' everyth' \n\t0x69 0x6E 0x67 0x20 0x69 0x73 0x20 0x75    // 'ing is u' \n\t0x6E 0x64 0x65 0x72 0x20 0x6F 0x6E 0x65    // 'nder one' \n\t0x20 0x72 0x6F 0x6F 0x66 0x97 0x61 0x20    // ' roofa ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x74 0x6F    // 'place to' \n\t0x20 0x72 0x65 0x61 0x64 0x2C 0x20 0x63    // ' read, c' \n\t0x6F 0x6F 0x6B 0x2C 0x20 0x68 0x6F 0x73    // 'ook, hos' \n\t0x74 0x20 0x63 0x6F 0x6E 0x63 0x65 0x72    // 't concer' \n\t0x74 0x73 0x20 0x61 0x6E 0x64 0x20 0x77    // 'ts and w' \n\t0x69 0x6C 0x64 0x20 0x64 0x61 0x6E 0x63    // 'ild danc' \n\t0x65 0x73 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'es, and ' \n\t0x73 0x65 0x74 0x20 0x75 0x70 0x20 0x61    // 'set up a' \n\t0x20 0x63 0x6F 0x6E 0x73 0x65 0x72 0x76    // ' conserv' \n\t0x61 0x74 0x69 0x6F 0x6E 0x20 0x6C 0x61    // 'ation la' \n\t0x62 0x2E 0x20 0x20 0x54 0x68 0x65 0x20    // 'b.  The ' \n\t0x6C 0x61 0x62 0x20 0x77 0x6F 0x75 0x6C    // 'lab woul' \n\t0x64 0x20 0x62 0x65 0x20 0x69 0x6E 0x20    // 'd be in ' \n\t0x74 0x68 0x65 0x20 0x74 0x75 0x72 0x72    // 'the turr' \n\t0x65 0x74 0x20 0x6F 0x66 0x20 0x74 0x68    // 'et of th' \n\t0x65 0x20 0x68 0x6F 0x75 0x73 0x65 0x2C    // 'e house,' \n\t0x20 0x73 0x6F 0x20 0x73 0x68 0x65 0x27    // ' so she'' \n\t0x64 0x20 0x68 0x61 0x76 0x65 0x20 0x61    // 'd have a' \n\t0x20 0x76 0x69 0x65 0x77 0x2E 0x20 0x20    // ' view.  ' \n\t0x4D 0x6F 0x73 0x74 0x20 0x70 0x65 0x6F    // 'Most peo' \n\t0x70 0x6C 0x65 0x20 0x77 0x61 0x6E 0x74    // 'ple want' \n\t0x20 0x61 0x20 0x76 0x69 0x65 0x77 0x20    // ' a view ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x6D    // 'of the m' \n\t0x6F 0x75 0x6E 0x74 0x61 0x69 0x6E 0x73    // 'ountains' \n\t0x20 0x6F 0x72 0x20 0x74 0x68 0x65 0x20    // ' or the ' \n\t0x77 0x61 0x74 0x65 0x72 0x3B 0x20 0x43    // 'water; C' \n\t0x68 0x72 0x69 0x73 0x74 0x69 0x6E 0x61    // 'hristina' \n\t0x20 0x77 0x61 0x6E 0x74 0x73 0x20 0x61    // ' wants a' \n\t0x20 0x76 0x69 0x65 0x77 0x20 0x6F 0x66    // ' view of' \n\t0x20 0x61 0x20 0x67 0x72 0x61 0x76 0x65    // ' a grave' \n\t0x79 0x61 0x72 0x64 0x2E 0x20 0x20 0x57    // 'yard.  W' \n\t0x69 0x74 0x68 0x20 0x61 0x6C 0x6C 0x20    // 'ith all ' \n\t0x74 0x68 0x6F 0x73 0x65 0x20 0x73 0x70    // 'those sp' \n\t0x69 0x72 0x69 0x74 0x73 0x2C 0x20 0x73    // 'irits, s' \n\t0x68 0x65 0x92 0x64 0x20 0x6E 0x65 0x76    // 'hed nev' \n\t0x65 0x72 0x20 0x67 0x65 0x74 0x20 0x6C    // 'er get l' \n\t0x6F 0x6E 0x65 0x6C 0x79 0x2E 0x0D 0x0A    // 'onely.??' \n\t0x42 0x75 0x74 0x20 0x77 0x69 0x6C 0x6C    // 'But will' \n\t0x20 0x43 0x68 0x72 0x69 0x73 0x74 0x69    // ' Christi' \n\t0x6E 0x61 0x92 0x73 0x20 0x64 0x72 0x65    // 'nas dre' \n\t0x61 0x6D 0x73 0x20 0x6F 0x66 0x20 0x61    // 'ams of a' \n\t0x20 0x68 0x61 0x70 0x70 0x79 0x20 0x68    // ' happy h' \n\t0x6F 0x6D 0x65 0x20 0x74 0x75 0x72 0x6E    // 'ome turn' \n\t0x20 0x73 0x63 0x61 0x72 0x79 0x20 0x77    // ' scary w' \n\t0x68 0x65 0x6E 0x20 0x73 0x68 0x65 0x20    // 'hen she ' \n\t0x72 0x65 0x61 0x6C 0x69 0x7A 0x65 0x73    // 'realizes' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x68 0x65    // ' that he' \n\t0x72 0x20 0x6E 0x65 0x69 0x67 0x68 0x62    // 'r neighb' \n\t0x6F 0x72 0x73 0x20 0x61 0x72 0x65 0x20    // 'ors are ' \n\t0x61 0x20 0x6D 0x75 0x6D 0x6D 0x79 0x2C    // 'a mummy,' \n\t0x20 0x61 0x20 0x70 0x72 0x65 0x68 0x69    // ' a prehi' \n\t0x73 0x74 0x6F 0x72 0x69 0x63 0x20 0x6D    // 'storic m' \n\t0x61 0x6E 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'an, and ' \n\t0x61 0x20 0x62 0x61 0x62 0x79 0x20 0x77    // 'a baby w' \n\t0x69 0x74 0x68 0x20 0x61 0x6E 0x20 0x61    // 'ith an a' \n\t0x74 0x74 0x69 0x74 0x75 0x64 0x65 0x3F    // 'ttitude?' \n\t0x20 0x20 0x57 0x69 0x6C 0x6C 0x20 0x43    // '  Will C' \n\t0x68 0x72 0x69 0x73 0x74 0x69 0x6E 0x61    // 'hristina' \n\t0x20 0x64 0x65 0x63 0x69 0x64 0x65 0x20    // ' decide ' \n\t0x74 0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'to move ' \n\t0x62 0x61 0x63 0x6B 0x20 0x74 0x6F 0x20    // 'back to ' \n\t0x4E 0x65 0x77 0x20 0x59 0x6F 0x72 0x6B    // 'New York' \n\t0x2C 0x20 0x6F 0x72 0x20 0x77 0x69 0x6C    // ', or wil' \n\t0x6C 0x20 0x73 0x68 0x65 0x20 0x74 0x68    // 'l she th' \n\t0x72 0x6F 0x77 0x20 0x61 0x20 0x64 0x61    // 'row a da' \n\t0x6E 0x63 0x65 0x20 0x70 0x61 0x72 0x74    // 'nce part' \n\t0x79 0x20 0x66 0x6F 0x72 0x20 0x68 0x65    // 'y for he' \n\t0x72 0x20 0x6E 0x65 0x77 0x20 0x6E 0x65    // 'r new ne' \n\t0x69 0x67 0x68 0x62 0x6F 0x72 0x73 0x3F    // 'ighbors?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_51= ktipbio40\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"ktipbio40\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"ktipbio40\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_51=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio40\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_51=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x04 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_51=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_51, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xF4 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x21 0x02 0x00 0x82    // '????!??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_51=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_51, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x65 0x74 0x65 0x63 0x74    // '??Detect' \n\t0x69 0x76 0x65 0x0D 0x0A 0x43 0x68 0x72    // 'ive??Chr' \n\t0x69 0x73 0x74 0x69 0x6E 0x61 0x20 0x68    // 'istina h' \n\t0x61 0x73 0x20 0x61 0x6E 0x20 0x65 0x79    // 'as an ey' \n\t0x65 0x20 0x66 0x6F 0x72 0x20 0x64 0x65    // 'e for de' \n\t0x74 0x61 0x69 0x6C 0x20 0x61 0x6E 0x64    // 'tail and' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x6D    // ' would m' \n\t0x61 0x6B 0x65 0x20 0x61 0x20 0x67 0x6F    // 'ake a go' \n\t0x6F 0x64 0x20 0x64 0x65 0x74 0x65 0x63    // 'od detec' \n\t0x74 0x69 0x76 0x65 0x2E 0x20 0x20 0x49    // 'tive.  I' \n\t0x6E 0x20 0x74 0x68 0x69 0x73 0x20 0x72    // 'n this r' \n\t0x6F 0x6C 0x65 0x2C 0x20 0x43 0x68 0x72    // 'ole, Chr' \n\t0x69 0x73 0x74 0x69 0x6E 0x61 0x20 0x66    // 'istina f' \n\t0x69 0x6E 0x64 0x73 0x20 0x4E 0x65 0x77    // 'inds New' \n\t0x20 0x59 0x6F 0x72 0x6B 0x92 0x73 0x20    // ' Yorks ' \n\t0x6C 0x6F 0x6E 0x67 0x20 0x6C 0x6F 0x73    // 'long los' \n\t0x74 0x20 0x74 0x72 0x65 0x61 0x73 0x75    // 't treasu' \n\t0x72 0x65 0x20 0x63 0x68 0x65 0x73 0x74    // 're chest' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x72 0x61    // ' in a ra' \n\t0x6D 0x62 0x6C 0x69 0x6E 0x67 0x20 0x67    // 'mbling g' \n\t0x72 0x61 0x76 0x65 0x79 0x61 0x72 0x64    // 'raveyard' \n\t0x20 0x6E 0x6F 0x72 0x74 0x68 0x20 0x6F    // ' north o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x63 0x69    // 'f the ci' \n\t0x74 0x79 0x2E 0x20 0x20 0x54 0x68 0x65    // 'ty.  The' \n\t0x20 0x61 0x72 0x65 0x61 0x20 0x77 0x61    // ' area wa' \n\t0x73 0x20 0x6F 0x6E 0x63 0x65 0x20 0x61    // 's once a' \n\t0x20 0x73 0x74 0x6F 0x6D 0x70 0x69 0x6E    // ' stompin' \n\t0x67 0x20 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'g ground' \n\t0x20 0x66 0x6F 0x72 0x20 0x49 0x6E 0x64    // ' for Ind' \n\t0x69 0x61 0x6E 0x20 0x63 0x61 0x76 0x65    // 'ian cave' \n\t0x20 0x64 0x77 0x65 0x6C 0x6C 0x65 0x72    // ' dweller' \n\t0x73 0x2E 0x20 0x20 0x43 0x68 0x72 0x69    // 's.  Chri' \n\t0x73 0x74 0x69 0x6E 0x61 0x20 0x68 0x61    // 'stina ha' \n\t0x70 0x70 0x65 0x6E 0x73 0x20 0x74 0x6F    // 'ppens to' \n\t0x20 0x62 0x65 0x20 0x69 0x6E 0x20 0x74    // ' be in t' \n\t0x68 0x65 0x20 0x67 0x72 0x61 0x76 0x65    // 'he grave' \n\t0x79 0x61 0x72 0x64 0x20 0x6F 0x6E 0x65    // 'yard one' \n\t0x20 0x64 0x61 0x79 0x20 0x73 0x74 0x75    // ' day stu' \n\t0x64 0x79 0x69 0x6E 0x67 0x20 0x66 0x61    // 'dying fa' \n\t0x6D 0x6F 0x75 0x73 0x20 0x70 0x65 0x6F    // 'mous peo' \n\t0x70 0x6C 0x65 0x92 0x73 0x20 0x67 0x72    // 'ples gr' \n\t0x61 0x76 0x65 0x73 0x2E 0x20 0x20 0x53    // 'aves.  S' \n\t0x68 0x65 0x20 0x73 0x74 0x75 0x6D 0x62    // 'he stumb' \n\t0x6C 0x65 0x73 0x20 0x75 0x70 0x6F 0x6E    // 'les upon' \n\t0x20 0x61 0x6E 0x20 0x6F 0x6C 0x64 0x20    // ' an old ' \n\t0x63 0x61 0x76 0x65 0x2C 0x20 0x61 0x6E    // 'cave, an' \n\t0x64 0x20 0x73 0x69 0x74 0x74 0x69 0x6E    // 'd sittin' \n\t0x67 0x20 0x69 0x6E 0x73 0x69 0x64 0x65    // 'g inside' \n\t0x20 0x69 0x73 0x20 0x61 0x20 0x74 0x72    // ' is a tr' \n\t0x65 0x61 0x73 0x75 0x72 0x65 0x20 0x63    // 'easure c' \n\t0x68 0x65 0x73 0x74 0x20 0x6F 0x66 0x20    // 'hest of ' \n\t0x67 0x6F 0x6C 0x64 0x21 0x20 0x20 0x48    // 'gold!  H' \n\t0x65 0x72 0x20 0x73 0x74 0x6F 0x72 0x79    // 'er story' \n\t0x20 0x6D 0x61 0x6B 0x65 0x73 0x20 0x74    // ' makes t' \n\t0x68 0x65 0x20 0x6E 0x61 0x74 0x69 0x6F    // 'he natio' \n\t0x6E 0x61 0x6C 0x20 0x6E 0x65 0x77 0x73    // 'nal news' \n\t0x2C 0x20 0x61 0x6E 0x64 0x20 0x73 0x68    // ', and sh' \n\t0x65 0x20 0x67 0x65 0x74 0x73 0x20 0x63    // 'e gets c' \n\t0x61 0x6C 0x6C 0x73 0x20 0x66 0x72 0x6F    // 'alls fro' \n\t0x6D 0x20 0x70 0x6F 0x6C 0x69 0x63 0x65    // 'm police' \n\t0x20 0x63 0x68 0x69 0x65 0x66 0x73 0x20    // ' chiefs ' \n\t0x61 0x6E 0x64 0x20 0x73 0x68 0x65 0x72    // 'and sher' \n\t0x69 0x66 0x66 0x73 0x20 0x65 0x76 0x65    // 'iffs eve' \n\t0x72 0x79 0x77 0x68 0x65 0x72 0x65 0x20    // 'rywhere ' \n\t0x62 0x65 0x67 0x67 0x69 0x6E 0x67 0x20    // 'begging ' \n\t0x66 0x6F 0x72 0x20 0x68 0x65 0x72 0x20    // 'for her ' \n\t0x73 0x6C 0x65 0x75 0x74 0x68 0x69 0x6E    // 'sleuthin' \n\t0x67 0x20 0x73 0x6B 0x69 0x6C 0x6C 0x73    // 'g skills' \n\t0x2E 0x0D 0x0A 0x57 0x68 0x65 0x6E 0x20    // '.??When ' \n\t0x43 0x68 0x72 0x69 0x73 0x74 0x69 0x6E    // 'Christin' \n\t0x61 0x20 0x6E 0x65 0x65 0x64 0x73 0x20    // 'a needs ' \n\t0x74 0x6F 0x20 0x75 0x6E 0x63 0x6F 0x76    // 'to uncov' \n\t0x65 0x72 0x20 0x61 0x20 0x72 0x69 0x6E    // 'er a rin' \n\t0x67 0x20 0x6F 0x66 0x20 0x6D 0x75 0x6D    // 'g of mum' \n\t0x6D 0x79 0x20 0x73 0x6D 0x75 0x67 0x67    // 'my smugg' \n\t0x6C 0x65 0x72 0x73 0x2C 0x20 0x77 0x69    // 'lers, wi' \n\t0x6C 0x6C 0x20 0x73 0x68 0x65 0x20 0x75    // 'll she u' \n\t0x73 0x65 0x20 0x68 0x65 0x72 0x20 0x73    // 'se her s' \n\t0x6B 0x69 0x6C 0x6C 0x20 0x61 0x74 0x20    // 'kill at ' \n\t0x74 0x72 0x61 0x6E 0x73 0x66 0x6F 0x72    // 'transfor' \n\t0x6D 0x69 0x6E 0x67 0x20 0x68 0x65 0x72    // 'ming her' \n\t0x73 0x65 0x6C 0x66 0x20 0x69 0x6E 0x74    // 'self int' \n\t0x6F 0x20 0x61 0x72 0x74 0x3F 0x20 0x20    // 'o art?  ' \n\t0x49 0x66 0x20 0x74 0x68 0x65 0x20 0x73    // 'If the s' \n\t0x6D 0x75 0x67 0x67 0x6C 0x65 0x72 0x73    // 'mugglers' \n\t0x20 0x64 0x6F 0x6E 0x92 0x74 0x20 0x72    // ' dont r' \n\t0x65 0x61 0x6C 0x69 0x7A 0x65 0x20 0x74    // 'ealize t' \n\t0x68 0x61 0x74 0x20 0x73 0x68 0x65 0x20    // 'hat she ' \n\t0x69 0x73 0x6E 0x92 0x74 0x20 0x72 0x65    // 'isnt re' \n\t0x61 0x6C 0x6C 0x79 0x20 0x61 0x20 0x6D    // 'ally a m' \n\t0x75 0x6D 0x6D 0x79 0x2C 0x20 0x77 0x69    // 'ummy, wi' \n\t0x6C 0x6C 0x20 0x74 0x68 0x65 0x79 0x20    // 'll they ' \n\t0x74 0x72 0x79 0x20 0x74 0x6F 0x20 0x73    // 'try to s' \n\t0x74 0x65 0x61 0x6C 0x20 0x68 0x65 0x72    // 'teal her' \n\t0x2C 0x20 0x74 0x6F 0x6F 0x3F              // ', too?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_52= ktipbio41\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_52, __HELP_NAME(\"ktipbio41\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_52, __HELP_NAME(\"ktipbio41\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_53=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_52, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio41\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_53=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_52, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_53=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_53, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x66 0x02 0x00 0x01    // '????f???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3E 0x01 0x00 0x82    // '????>??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_53=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_53, 0x0)\n\tBYTE\n\t0x03 0x03 0x6C 0x69 0x76 0x65 0x20 0x64    // '??live d' \n\t0x61 0x6E 0x67 0x65 0x72 0x6F 0x75 0x73    // 'angerous' \n\t0x6C 0x79 0x0D 0x0A 0x43 0x6C 0x61 0x75    // 'ly??Clau' \n\t0x64 0x69 0x61 0x20 0x68 0x61 0x73 0x20    // 'dia has ' \n\t0x61 0x6C 0x77 0x61 0x79 0x73 0x20 0x62    // 'always b' \n\t0x65 0x65 0x6E 0x20 0x61 0x20 0x76 0x65    // 'een a ve' \n\t0x72 0x79 0x20 0x6D 0x6F 0x64 0x65 0x72    // 'ry moder' \n\t0x6E 0x20 0x49 0x6E 0x64 0x69 0x61 0x6E    // 'n Indian' \n\t0x20 0x6C 0x61 0x64 0x79 0x20 0x61 0x6E    // ' lady an' \n\t0x64 0x20 0x77 0x61 0x73 0x20 0x72 0x65    // 'd was re' \n\t0x61 0x6C 0x6C 0x79 0x20 0x65 0x78 0x63    // 'ally exc' \n\t0x69 0x74 0x65 0x64 0x20 0x77 0x68 0x65    // 'ited whe' \n\t0x6E 0x20 0x73 0x68 0x65 0x20 0x67 0x6F    // 'n she go' \n\t0x74 0x20 0x61 0x20 0x73 0x63 0x68 0x6F    // 't a scho' \n\t0x6C 0x61 0x72 0x73 0x68 0x69 0x70 0x20    // 'larship ' \n\t0x74 0x6F 0x20 0x73 0x74 0x75 0x64 0x79    // 'to study' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x55 0x6E 0x69 0x74 0x65 0x64 0x20 0x53    // 'United S' \n\t0x74 0x61 0x74 0x65 0x73 0x2E 0x20 0x20    // 'tates.  ' \n\t0x54 0x68 0x61 0x74 0x92 0x73 0x20 0x77    // 'Thats w' \n\t0x68 0x65 0x6E 0x20 0x73 0x68 0x65 0x20    // 'hen she ' \n\t0x72 0x65 0x61 0x6C 0x6C 0x79 0x20 0x73    // 'really s' \n\t0x74 0x61 0x72 0x74 0x65 0x64 0x20 0x6C    // 'tarted l' \n\t0x69 0x76 0x69 0x6E 0x67 0x20 0x64 0x61    // 'iving da' \n\t0x6E 0x67 0x65 0x72 0x6F 0x75 0x73 0x6C    // 'ngerousl' \n\t0x79 0x2E 0x20 0x20 0x53 0x68 0x65 0x92    // 'y.  She' \n\t0x73 0x20 0x74 0x72 0x69 0x65 0x64 0x20    // 's tried ' \n\t0x77 0x61 0x6C 0x6B 0x69 0x6E 0x67 0x20    // 'walking ' \n\t0x61 0x20 0x74 0x69 0x67 0x68 0x74 0x2D    // 'a tight-' \n\t0x72 0x6F 0x70 0x65 0x20 0x69 0x6E 0x20    // 'rope in ' \n\t0x61 0x20 0x63 0x69 0x72 0x63 0x75 0x73    // 'a circus' \n\t0x2C 0x20 0x70 0x61 0x72 0x61 0x63 0x68    // ', parach' \n\t0x75 0x74 0x69 0x6E 0x67 0x20 0x6F 0x75    // 'uting ou' \n\t0x74 0x20 0x6F 0x66 0x20 0x61 0x69 0x72    // 't of air' \n\t0x70 0x6C 0x61 0x6E 0x65 0x73 0x2C 0x20    // 'planes, ' \n\t0x61 0x6E 0x64 0x20 0x62 0x65 0x69 0x6E    // 'and bein' \n\t0x67 0x20 0x61 0x20 0x73 0x74 0x75 0x6E    // 'g a stun' \n\t0x74 0x20 0x70 0x69 0x6C 0x6F 0x74 0x20    // 't pilot ' \n\t0x69 0x6E 0x20 0x61 0x69 0x72 0x20 0x73    // 'in air s' \n\t0x68 0x6F 0x77 0x73 0x2E 0x20 0x0D 0x0A    // 'hows. ??' \n\t0x4F 0x6E 0x65 0x20 0x64 0x61 0x79 0x20    // 'One day ' \n\t0x73 0x68 0x65 0x20 0x64 0x65 0x63 0x69    // 'she deci' \n\t0x64 0x65 0x64 0x20 0x74 0x6F 0x20 0x74    // 'ded to t' \n\t0x72 0x79 0x20 0x70 0x61 0x72 0x61 0x63    // 'ry parac' \n\t0x68 0x75 0x74 0x69 0x6E 0x67 0x20 0x66    // 'huting f' \n\t0x72 0x6F 0x6D 0x20 0x61 0x20 0x68 0x6F    // 'rom a ho' \n\t0x74 0x20 0x61 0x69 0x72 0x20 0x62 0x61    // 't air ba' \n\t0x6C 0x6C 0x6F 0x6F 0x6E 0x2E 0x20 0x54    // 'lloon. T' \n\t0x68 0x65 0x20 0x66 0x61 0x6C 0x6C 0x20    // 'he fall ' \n\t0x77 0x65 0x6E 0x74 0x20 0x6A 0x75 0x73    // 'went jus' \n\t0x74 0x20 0x66 0x69 0x6E 0x65 0x2C 0x20    // 't fine, ' \n\t0x62 0x75 0x74 0x20 0x43 0x6C 0x61 0x75    // 'but Clau' \n\t0x64 0x69 0x61 0x20 0x6C 0x61 0x6E 0x64    // 'dia land' \n\t0x65 0x64 0x20 0x72 0x69 0x67 0x68 0x74    // 'ed right' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x6D 0x69 0x64 0x64 0x6C 0x65 0x20 0x6F    // 'middle o' \n\t0x66 0x20 0x61 0x20 0x6D 0x6F 0x76 0x69    // 'f a movi' \n\t0x65 0x20 0x73 0x65 0x74 0x2E 0x20 0x20    // 'e set.  ' \n\t0x54 0x68 0x65 0x20 0x64 0x69 0x72 0x65    // 'The dire' \n\t0x63 0x74 0x6F 0x72 0x20 0x68 0x61 0x64    // 'ctor had' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x63 0x72    // ' the scr' \n\t0x69 0x70 0x74 0x20 0x72 0x65 0x77 0x72    // 'ipt rewr' \n\t0x69 0x74 0x74 0x65 0x6E 0x20 0x6F 0x6E    // 'itten on' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x70 0x6F    // ' the spo' \n\t0x74 0x20 0x74 0x6F 0x20 0x69 0x6E 0x63    // 't to inc' \n\t0x6C 0x75 0x64 0x65 0x20 0x43 0x6C 0x61    // 'lude Cla' \n\t0x75 0x64 0x69 0x61 0x92 0x73 0x20 0x73    // 'udias s' \n\t0x74 0x75 0x6E 0x74 0x2E 0x20 0x20 0x54    // 'tunt.  T' \n\t0x68 0x61 0x74 0x92 0x73 0x20 0x68 0x6F    // 'hats ho' \n\t0x77 0x20 0x43 0x6C 0x61 0x75 0x64 0x69    // 'w Claudi' \n\t0x61 0x20 0x66 0x65 0x6C 0x6C 0x20 0x69    // 'a fell i' \n\t0x6E 0x74 0x6F 0x20 0x61 0x63 0x74 0x69    // 'nto acti' \n\t0x6E 0x67 0x2E 0x20 0x41 0x6E 0x64 0x20    // 'ng. And ' \n\t0x73 0x68 0x65 0x27 0x73 0x20 0x62 0x65    // 'she's be' \n\t0x65 0x6E 0x20 0x64 0x6F 0x69 0x6E 0x67    // 'en doing' \n\t0x20 0x69 0x74 0x20 0x65 0x76 0x65 0x72    // ' it ever' \n\t0x20 0x73 0x69 0x6E 0x63 0x65 0x2E 0x20    // ' since. ' \n\t0x0D 0x0A                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_53= ktipbio42\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_53, __HELP_NAME(\"ktipbio42\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_53, __HELP_NAME(\"ktipbio42\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_52=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_53, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio42\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_52=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_53, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x36 0x01 0x00 0x00    // '????6???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_52=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_52, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x86 0x03 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xED 0x02 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_52=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_52, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x69 0x70 0x70 0x69 0x65    // '??Hippie' \n\t0x0D 0x0A 0x4F 0x6E 0x65 0x20 0x6F 0x66    // '??One of' \n\t0x20 0x74 0x68 0x65 0x20 0x72 0x6F 0x6C    // ' the rol' \n\t0x65 0x73 0x20 0x43 0x6C 0x61 0x75 0x64    // 'es Claud' \n\t0x69 0x61 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'ia would' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x74 0x6F    // ' like to' \n\t0x20 0x70 0x6C 0x61 0x79 0x20 0x69 0x73    // ' play is' \n\t0x20 0x61 0x20 0x68 0x69 0x70 0x70 0x69    // ' a hippi' \n\t0x65 0x2C 0x20 0x62 0x75 0x74 0x20 0x68    // 'e, but h' \n\t0x65 0x72 0x20 0x68 0x69 0x70 0x70 0x69    // 'er hippi' \n\t0x65 0x20 0x6C 0x6F 0x6F 0x6B 0x20 0x77    // 'e look w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x62 0x65 0x20    // 'ould be ' \n\t0x61 0x20 0x63 0x6F 0x76 0x65 0x72 0x20    // 'a cover ' \n\t0x66 0x6F 0x72 0x20 0x68 0x65 0x72 0x20    // 'for her ' \n\t0x72 0x65 0x61 0x6C 0x20 0x6D 0x69 0x73    // 'real mis' \n\t0x73 0x69 0x6F 0x6E 0x97 0x74 0x6F 0x20    // 'sionto ' \n\t0x66 0x69 0x6E 0x64 0x20 0x61 0x6E 0x6F    // 'find ano' \n\t0x74 0x68 0x65 0x72 0x20 0x68 0x69 0x70    // 'ther hip' \n\t0x70 0x69 0x65 0x20 0x77 0x68 0x6F 0x20    // 'pie who ' \n\t0x64 0x69 0x73 0x61 0x70 0x70 0x65 0x61    // 'disappea' \n\t0x72 0x65 0x64 0x20 0x62 0x61 0x63 0x6B    // 'red back' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x36 0x30 0x73 0x20 0x69 0x6E 0x20 0x73    // '60s in s' \n\t0x6F 0x6D 0x65 0x20 0x73 0x6F 0x72 0x74    // 'ome sort' \n\t0x20 0x6F 0x66 0x20 0x66 0x75 0x6E 0x6B    // ' of funk' \n\t0x79 0x20 0x68 0x61 0x75 0x6E 0x74 0x65    // 'y haunte' \n\t0x64 0x20 0x68 0x6F 0x75 0x73 0x65 0x2E    // 'd house.' \n\t0x20 0x20 0x54 0x68 0x65 0x20 0x68 0x69    // '  The hi' \n\t0x70 0x70 0x69 0x65 0x92 0x73 0x20 0x6E    // 'ppies n' \n\t0x61 0x6D 0x65 0x20 0x77 0x61 0x73 0x20    // 'ame was ' \n\t0x4A 0x65 0x72 0x65 0x6D 0x79 0x2C 0x20    // 'Jeremy, ' \n\t0x61 0x6E 0x64 0x20 0x49 0x6E 0x64 0x69    // 'and Indi' \n\t0x61 0x6E 0x20 0x73 0x74 0x6F 0x72 0x79    // 'an story' \n\t0x2D 0x74 0x65 0x6C 0x6C 0x65 0x72 0x73    // '-tellers' \n\t0x20 0x77 0x68 0x6F 0x20 0x6D 0x65 0x74    // ' who met' \n\t0x20 0x68 0x69 0x6D 0x20 0x72 0x65 0x6D    // ' him rem' \n\t0x65 0x6D 0x62 0x65 0x72 0x20 0x68 0x6F    // 'ember ho' \n\t0x77 0x20 0x68 0x65 0x20 0x63 0x6F 0x75    // 'w he cou' \n\t0x6C 0x64 0x20 0x73 0x6D 0x65 0x6C 0x6C    // 'ld smell' \n\t0x20 0x73 0x6F 0x6D 0x65 0x6F 0x6E 0x65    // ' someone' \n\t0x92 0x73 0x20 0x66 0x75 0x74 0x75 0x72    // 's futur' \n\t0x65 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'e in the' \n\t0x69 0x72 0x20 0x68 0x61 0x69 0x72 0x2E    // 'ir hair.' \n\t0x20 0x20 0x53 0x6F 0x2C 0x20 0x62 0x65    // '  So, be' \n\t0x69 0x6E 0x67 0x20 0x72 0x65 0x61 0x6C    // 'ing real' \n\t0x6C 0x79 0x20 0x67 0x72 0x6F 0x6F 0x76    // 'ly groov' \n\t0x79 0x2C 0x20 0x43 0x6C 0x61 0x75 0x64    // 'y, Claud' \n\t0x69 0x61 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'ia would' \n\t0x20 0x67 0x6F 0x20 0x74 0x6F 0x20 0x74    // ' go to t' \n\t0x68 0x65 0x20 0x68 0x61 0x75 0x6E 0x74    // 'he haunt' \n\t0x65 0x64 0x20 0x68 0x6F 0x75 0x73 0x65    // 'ed house' \n\t0x20 0x61 0x6E 0x64 0x20 0x74 0x65 0x6C    // ' and tel' \n\t0x6C 0x20 0x74 0x68 0x65 0x20 0x6F 0x77    // 'l the ow' \n\t0x6E 0x65 0x72 0x20 0x74 0x68 0x61 0x74    // 'ner that' \n\t0x20 0x73 0x68 0x65 0x20 0x77 0x61 0x73    // ' she was' \n\t0x20 0x61 0x20 0x6C 0x61 0x74 0x65 0x2D    // ' a late-' \n\t0x62 0x6C 0x6F 0x6F 0x6D 0x69 0x6E 0x67    // 'blooming' \n\t0x20 0x62 0x75 0x74 0x20 0x68 0x6F 0x6D    // ' but hom' \n\t0x65 0x6C 0x65 0x73 0x73 0x20 0x68 0x69    // 'eless hi' \n\t0x70 0x70 0x69 0x65 0x2C 0x20 0x61 0x6E    // 'ppie, an' \n\t0x64 0x20 0x61 0x73 0x6B 0x20 0x69 0x66    // 'd ask if' \n\t0x20 0x73 0x68 0x65 0x20 0x63 0x6F 0x75    // ' she cou' \n\t0x6C 0x64 0x20 0x73 0x70 0x65 0x6E 0x64    // 'ld spend' \n\t0x20 0x6A 0x75 0x73 0x74 0x20 0x6F 0x6E    // ' just on' \n\t0x65 0x20 0x6E 0x69 0x67 0x68 0x74 0x2E    // 'e night.' \n\t0x20 0x20 0x54 0x68 0x65 0x20 0x65 0x76    // '  The ev' \n\t0x69 0x6C 0x20 0x6F 0x77 0x6E 0x65 0x72    // 'il owner' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x67    // ' would g' \n\t0x6C 0x61 0x64 0x6C 0x79 0x20 0x69 0x6E    // 'ladly in' \n\t0x76 0x69 0x74 0x65 0x20 0x68 0x65 0x72    // 'vite her' \n\t0x20 0x69 0x6E 0x73 0x69 0x64 0x65 0x2C    // ' inside,' \n\t0x20 0x74 0x68 0x69 0x6E 0x6B 0x69 0x6E    // ' thinkin' \n\t0x67 0x20 0x68 0x65 0x20 0x68 0x61 0x64    // 'g he had' \n\t0x20 0x63 0x61 0x70 0x74 0x75 0x72 0x65    // ' capture' \n\t0x64 0x20 0x79 0x65 0x74 0x20 0x61 0x6E    // 'd yet an' \n\t0x6F 0x74 0x68 0x65 0x72 0x20 0x70 0x65    // 'other pe' \n\t0x72 0x73 0x6F 0x6E 0x2E 0x20 0x20 0x42    // 'rson.  B' \n\t0x75 0x74 0x20 0x74 0x68 0x65 0x20 0x6F    // 'ut the o' \n\t0x77 0x6E 0x65 0x72 0x20 0x77 0x6F 0x75    // 'wner wou' \n\t0x6C 0x64 0x20 0x6E 0x6F 0x74 0x20 0x6B    // 'ld not k' \n\t0x6E 0x6F 0x77 0x20 0x74 0x68 0x61 0x74    // 'now that' \n\t0x20 0x43 0x6C 0x61 0x75 0x64 0x69 0x61    // ' Claudia' \n\t0x20 0x63 0x61 0x6E 0x20 0x73 0x68 0x72    // ' can shr' \n\t0x69 0x6E 0x6B 0x20 0x61 0x6E 0x64 0x20    // 'ink and ' \n\t0x73 0x71 0x75 0x61 0x73 0x68 0x20 0x73    // 'squash s' \n\t0x6F 0x20 0x73 0x6D 0x61 0x6C 0x6C 0x20    // 'o small ' \n\t0x74 0x68 0x61 0x74 0x20 0x73 0x68 0x65    // 'that she' \n\t0x20 0x63 0x61 0x6E 0x20 0x73 0x6E 0x65    // ' can sne' \n\t0x61 0x6B 0x20 0x61 0x6C 0x6D 0x6F 0x73    // 'ak almos' \n\t0x74 0x20 0x61 0x6E 0x79 0x77 0x68 0x65    // 't anywhe' \n\t0x72 0x65 0x20 0x77 0x69 0x74 0x68 0x6F    // 're witho' \n\t0x75 0x74 0x20 0x61 0x6E 0x79 0x6F 0x6E    // 'ut anyon' \n\t0x65 0x20 0x73 0x65 0x65 0x69 0x6E 0x67    // 'e seeing' \n\t0x20 0x68 0x65 0x72 0x2E 0x0D 0x0A 0x42    // ' her.??B' \n\t0x75 0x74 0x20 0x77 0x69 0x6C 0x6C 0x20    // 'ut will ' \n\t0x74 0x68 0x65 0x20 0x74 0x69 0x6E 0x79    // 'the tiny' \n\t0x20 0x43 0x6C 0x61 0x75 0x64 0x69 0x61    // ' Claudia' \n\t0x20 0x62 0x65 0x20 0x73 0x6E 0x69 0x66    // ' be snif' \n\t0x66 0x65 0x64 0x20 0x6F 0x75 0x74 0x20    // 'fed out ' \n\t0x62 0x79 0x20 0x74 0x68 0x65 0x20 0x6F    // 'by the o' \n\t0x77 0x6E 0x65 0x72 0x73 0x20 0x64 0x69    // 'wners di' \n\t0x72 0x74 0x79 0x20 0x72 0x61 0x74 0x73    // 'rty rats' \n\t0x20 0x61 0x6E 0x64 0x20 0x62 0x65 0x63    // ' and bec' \n\t0x6F 0x6D 0x65 0x20 0x70 0x61 0x72 0x74    // 'ome part' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x69    // ' of thei' \n\t0x72 0x20 0x64 0x69 0x6E 0x6E 0x65 0x72    // 'r dinner' \n\t0x3F 0x20 0x20 0x48 0x6F 0x77 0x20 0x77    // '?  How w' \n\t0x69 0x6C 0x6C 0x20 0x73 0x68 0x65 0x20    // 'ill she ' \n\t0x67 0x65 0x74 0x20 0x66 0x72 0x65 0x65    // 'get free' \n\t0x3F 0x20 0x20 0x41 0x6E 0x64 0x20 0x68    // '?  And h' \n\t0x6F 0x77 0x20 0x77 0x69 0x6C 0x6C 0x20    // 'ow will ' \n\t0x73 0x68 0x65 0x20 0x66 0x69 0x6E 0x64    // 'she find' \n\t0x20 0x4A 0x65 0x72 0x65 0x6D 0x79 0x3F    // ' Jeremy?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_54= ktipbio43\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_54, __HELP_NAME(\"ktipbio43\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_54, __HELP_NAME(\"ktipbio43\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_54=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_54, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio43\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_54=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_54, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_54=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_54, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE1 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_54=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_54, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x70 0x0D 0x0A 0x43    // '??Cop??C' \n\t0x6C 0x61 0x75 0x64 0x69 0x61 0x20 0x6C    // 'laudia l' \n\t0x6F 0x76 0x65 0x73 0x20 0x64 0x61 0x6E    // 'oves dan' \n\t0x67 0x65 0x72 0x2C 0x20 0x62 0x75 0x74    // 'ger, but' \n\t0x20 0x73 0x68 0x65 0x20 0x68 0x61 0x74    // ' she hat' \n\t0x65 0x73 0x20 0x76 0x69 0x6F 0x6C 0x65    // 'es viole' \n\t0x6E 0x63 0x65 0x2E 0x20 0x20 0x53 0x6F    // 'nce.  So' \n\t0x20 0x6F 0x6E 0x65 0x20 0x6F 0x66 0x20    // ' one of ' \n\t0x68 0x65 0x72 0x20 0x64 0x72 0x65 0x61    // 'her drea' \n\t0x6D 0x20 0x72 0x6F 0x6C 0x65 0x73 0x20    // 'm roles ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x62 0x65    // 'would be' \n\t0x20 0x70 0x6C 0x61 0x79 0x69 0x6E 0x67    // ' playing' \n\t0x20 0x61 0x20 0x63 0x6F 0x70 0x20 0x77    // ' a cop w' \n\t0x68 0x6F 0x20 0x68 0x61 0x73 0x20 0x61    // 'ho has a' \n\t0x20 0x73 0x70 0x65 0x63 0x69 0x61 0x6C    // ' special' \n\t0x20 0x74 0x69 0x65 0x20 0x74 0x68 0x61    // ' tie tha' \n\t0x74 0x20 0x70 0x75 0x74 0x73 0x20 0x62    // 't puts b' \n\t0x61 0x64 0x20 0x67 0x75 0x79 0x73 0x20    // 'ad guys ' \n\t0x73 0x68 0x65 0x20 0x63 0x61 0x74 0x63    // 'she catc' \n\t0x68 0x65 0x73 0x20 0x74 0x6F 0x20 0x73    // 'hes to s' \n\t0x6C 0x65 0x65 0x70 0x2E 0x20 0x20 0x54    // 'leep.  T' \n\t0x68 0x65 0x6E 0x20 0x73 0x68 0x65 0x20    // 'hen she ' \n\t0x6B 0x6E 0x65 0x65 0x6C 0x73 0x20 0x62    // 'kneels b' \n\t0x65 0x73 0x69 0x64 0x65 0x20 0x74 0x68    // 'eside th' \n\t0x65 0x6D 0x20 0x61 0x6E 0x64 0x20 0x72    // 'em and r' \n\t0x65 0x63 0x69 0x74 0x65 0x73 0x20 0x61    // 'ecites a' \n\t0x6E 0x20 0x6F 0x6C 0x64 0x20 0x73 0x74    // 'n old st' \n\t0x6F 0x72 0x79 0x20 0x66 0x72 0x6F 0x6D    // 'ory from' \n\t0x20 0x49 0x6E 0x64 0x69 0x61 0x20 0x61    // ' India a' \n\t0x62 0x6F 0x75 0x74 0x20 0x68 0x6F 0x77    // 'bout how' \n\t0x20 0x74 0x68 0x65 0x79 0x20 0x6E 0x65    // ' they ne' \n\t0x65 0x64 0x20 0x74 0x6F 0x20 0x68 0x65    // 'ed to he' \n\t0x6C 0x70 0x20 0x74 0x68 0x65 0x20 0x77    // 'lp the w' \n\t0x6F 0x72 0x6C 0x64 0x20 0x69 0x6E 0x73    // 'orld ins' \n\t0x74 0x65 0x61 0x64 0x20 0x6F 0x66 0x20    // 'tead of ' \n\t0x68 0x75 0x72 0x74 0x69 0x6E 0x67 0x20    // 'hurting ' \n\t0x69 0x74 0x2E 0x20 0x20 0x57 0x68 0x65    // 'it.  Whe' \n\t0x6E 0x20 0x74 0x68 0x65 0x79 0x20 0x77    // 'n they w' \n\t0x61 0x6B 0x65 0x20 0x75 0x70 0x2C 0x20    // 'ake up, ' \n\t0x74 0x68 0x65 0x20 0x63 0x72 0x69 0x6D    // 'the crim' \n\t0x69 0x6E 0x61 0x6C 0x73 0x20 0x61 0x72    // 'inals ar' \n\t0x65 0x20 0x74 0x72 0x61 0x6E 0x73 0x66    // 'e transf' \n\t0x6F 0x72 0x6D 0x65 0x64 0x20 0x66 0x72    // 'ormed fr' \n\t0x6F 0x6D 0x20 0x62 0x61 0x64 0x20 0x67    // 'om bad g' \n\t0x75 0x79 0x73 0x20 0x74 0x6F 0x20 0x67    // 'uys to g' \n\t0x6F 0x6F 0x64 0x20 0x67 0x75 0x79 0x73    // 'ood guys' \n\t0x2E 0x20 0x20 0x42 0x75 0x74 0x20 0x73    // '.  But s' \n\t0x6F 0x6D 0x65 0x20 0x6F 0x66 0x20 0x74    // 'ome of t' \n\t0x68 0x65 0x20 0x62 0x61 0x64 0x20 0x67    // 'he bad g' \n\t0x75 0x79 0x73 0x20 0x63 0x61 0x74 0x63    // 'uys catc' \n\t0x68 0x20 0x6F 0x6E 0x74 0x6F 0x20 0x68    // 'h onto h' \n\t0x65 0x72 0x20 0x74 0x72 0x69 0x63 0x6B    // 'er trick' \n\t0x20 0x61 0x6E 0x64 0x20 0x74 0x68 0x72    // ' and thr' \n\t0x65 0x61 0x74 0x65 0x6E 0x20 0x74 0x6F    // 'eaten to' \n\t0x20 0x73 0x68 0x72 0x69 0x6E 0x6B 0x20    // ' shrink ' \n\t0x43 0x6C 0x61 0x75 0x64 0x69 0x61 0x20    // 'Claudia ' \n\t0x73 0x6F 0x20 0x73 0x68 0x65 0x20 0x63    // 'so she c' \n\t0x61 0x6E 0x92 0x74 0x20 0x74 0x72 0x61    // 'ant tra' \n\t0x6E 0x73 0x66 0x6F 0x72 0x6D 0x20 0x74    // 'nsform t' \n\t0x68 0x65 0x6D 0x20 0x74 0x6F 0x6F 0x2E    // 'hem too.' \n\t0x20 0x0D 0x0A 0x48 0x6F 0x77 0x20 0x77    // ' ??How w' \n\t0x69 0x6C 0x6C 0x20 0x43 0x6C 0x61 0x75    // 'ill Clau' \n\t0x64 0x69 0x61 0x20 0x73 0x74 0x6F 0x70    // 'dia stop' \n\t0x20 0x74 0x68 0x65 0x69 0x72 0x20 0x70    // ' their p' \n\t0x6C 0x61 0x6E 0x20 0x61 0x6E 0x64 0x20    // 'lan and ' \n\t0x70 0x72 0x6F 0x74 0x65 0x63 0x74 0x20    // 'protect ' \n\t0x68 0x65 0x72 0x20 0x70 0x6F 0x77 0x65    // 'her powe' \n\t0x72 0x73 0x3F                             // 'rs?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_55= ktipbio44\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_55, __HELP_NAME(\"ktipbio44\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_55, __HELP_NAME(\"ktipbio44\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_59=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_55, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio44\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_59=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_55, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_59=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_59, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4D 0x02 0x00 0x01    // '????M???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xCB 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_59=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_59, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x69 0x6C 0x6F 0x74 0x0D    // '??Pilot?' \n\t0x0A 0x43 0x6C 0x61 0x75 0x64 0x69 0x61    // '?Claudia' \n\t0x20 0x69 0x6D 0x61 0x67 0x69 0x6E 0x65    // ' imagine' \n\t0x73 0x20 0x70 0x6C 0x61 0x79 0x69 0x6E    // 's playin' \n\t0x67 0x20 0x61 0x20 0x73 0x70 0x61 0x63    // 'g a spac' \n\t0x65 0x20 0x63 0x6F 0x70 0x20 0x69 0x6E    // 'e cop in' \n\t0x20 0x74 0x68 0x65 0x20 0x79 0x65 0x61    // ' the yea' \n\t0x72 0x20 0x32 0x30 0x38 0x30 0x2E 0x20    // 'r 2080. ' \n\t0x20 0x42 0x79 0x20 0x74 0x68 0x65 0x6E    // ' By then' \n\t0x2C 0x20 0x61 0x6C 0x6C 0x20 0x74 0x68    // ', all th' \n\t0x65 0x20 0x63 0x6F 0x70 0x73 0x20 0x77    // 'e cops w' \n\t0x69 0x6C 0x6C 0x20 0x64 0x72 0x69 0x76    // 'ill driv' \n\t0x65 0x20 0x73 0x70 0x61 0x63 0x65 0x20    // 'e space ' \n\t0x72 0x6F 0x63 0x6B 0x65 0x74 0x73 0x20    // 'rockets ' \n\t0x69 0x6E 0x73 0x74 0x65 0x61 0x64 0x20    // 'instead ' \n\t0x6F 0x66 0x20 0x70 0x61 0x74 0x72 0x6F    // 'of patro' \n\t0x6C 0x20 0x63 0x61 0x72 0x73 0x2E 0x20    // 'l cars. ' \n\t0x20 0x49 0x6E 0x20 0x74 0x68 0x69 0x73    // ' In this' \n\t0x20 0x72 0x6F 0x6C 0x65 0x2C 0x20 0x43    // ' role, C' \n\t0x6C 0x61 0x75 0x64 0x69 0x61 0x20 0x77    // 'laudia w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x63 0x61 0x70    // 'ould cap' \n\t0x74 0x75 0x72 0x65 0x20 0x74 0x68 0x65    // 'ture the' \n\t0x20 0x53 0x71 0x75 0x61 0x73 0x68 0x65    // ' Squashe' \n\t0x72 0x2C 0x20 0x74 0x68 0x65 0x20 0x77    // 'r, the w' \n\t0x65 0x69 0x72 0x64 0x20 0x67 0x75 0x79    // 'eird guy' \n\t0x20 0x77 0x68 0x6F 0x20 0x63 0x61 0x6E    // ' who can' \n\t0x92 0x74 0x20 0x73 0x74 0x61 0x6E 0x64    // 't stand' \n\t0x20 0x6B 0x69 0x64 0x73 0x20 0x61 0x6E    // ' kids an' \n\t0x64 0x20 0x74 0x72 0x61 0x6E 0x73 0x66    // 'd transf' \n\t0x6F 0x72 0x6D 0x73 0x20 0x65 0x76 0x65    // 'orms eve' \n\t0x72 0x79 0x20 0x6B 0x69 0x64 0x20 0x68    // 'ry kid h' \n\t0x65 0x20 0x73 0x65 0x65 0x73 0x20 0x69    // 'e sees i' \n\t0x6E 0x74 0x6F 0x20 0x61 0x20 0x73 0x71    // 'nto a sq' \n\t0x75 0x61 0x73 0x68 0x65 0x64 0x20 0x6D    // 'uashed m' \n\t0x65 0x73 0x73 0x2E 0x20 0x0D 0x0A 0x53    // 'ess. ??S' \n\t0x68 0x65 0x20 0x73 0x70 0x6F 0x74 0x73    // 'he spots' \n\t0x20 0x53 0x71 0x75 0x61 0x73 0x68 0x65    // ' Squashe' \n\t0x72 0x20 0x66 0x6C 0x79 0x69 0x6E 0x67    // 'r flying' \n\t0x20 0x68 0x69 0x73 0x20 0x6A 0x65 0x74    // ' his jet' \n\t0x20 0x70 0x6C 0x61 0x6E 0x65 0x2C 0x20    // ' plane, ' \n\t0x61 0x6E 0x64 0x20 0x74 0x61 0x6B 0x65    // 'and take' \n\t0x73 0x20 0x6F 0x66 0x66 0x20 0x69 0x6E    // 's off in' \n\t0x20 0x68 0x65 0x72 0x20 0x72 0x6F 0x63    // ' her roc' \n\t0x6B 0x65 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ket to c' \n\t0x61 0x74 0x63 0x68 0x20 0x68 0x69 0x6D    // 'atch him' \n\t0x2E 0x20 0x20 0x42 0x75 0x74 0x20 0x74    // '.  But t' \n\t0x68 0x65 0x6E 0x2C 0x20 0x6A 0x75 0x73    // 'hen, jus' \n\t0x74 0x20 0x61 0x73 0x20 0x73 0x68 0x65    // 't as she' \n\t0x20 0x6C 0x61 0x6E 0x64 0x73 0x2C 0x20    // ' lands, ' \n\t0x74 0x68 0x65 0x72 0x65 0x20 0x69 0x73    // 'there is' \n\t0x20 0x61 0x20 0x68 0x75 0x67 0x65 0x20    // ' a huge ' \n\t0x65 0x78 0x70 0x6C 0x6F 0x73 0x69 0x6F    // 'explosio' \n\t0x6E 0x2C 0x20 0x61 0x6E 0x64 0x20 0x74    // 'n, and t' \n\t0x68 0x65 0x20 0x53 0x71 0x75 0x61 0x73    // 'he Squas' \n\t0x68 0x65 0x72 0x20 0x69 0x73 0x20 0x6E    // 'her is n' \n\t0x6F 0x77 0x68 0x65 0x72 0x65 0x20 0x74    // 'owhere t' \n\t0x6F 0x20 0x62 0x65 0x20 0x73 0x65 0x65    // 'o be see' \n\t0x6E 0x2E 0x20 0x0D 0x0A 0x48 0x61 0x73    // 'n. ??Has' \n\t0x20 0x74 0x68 0x65 0x20 0x53 0x71 0x75    // ' the Squ' \n\t0x61 0x73 0x68 0x65 0x72 0x20 0x67 0x6F    // 'asher go' \n\t0x74 0x74 0x65 0x6E 0x20 0x61 0x77 0x61    // 'tten awa' \n\t0x79 0x20 0x61 0x67 0x61 0x69 0x6E 0x3F    // 'y again?' \n\t0x20 0x20 0x44 0x69 0x64 0x20 0x68 0x65    // '  Did he' \n\t0x20 0x70 0x61 0x72 0x61 0x63 0x68 0x75    // ' parachu' \n\t0x74 0x65 0x20 0x74 0x6F 0x20 0x73 0x61    // 'te to sa' \n\t0x66 0x65 0x74 0x79 0x20 0x62 0x65 0x66    // 'fety bef' \n\t0x6F 0x72 0x65 0x20 0x74 0x68 0x65 0x20    // 'ore the ' \n\t0x65 0x78 0x70 0x6C 0x6F 0x73 0x69 0x6F    // 'explosio' \n\t0x6E 0x3F 0x20 0x20 0x41 0x6E 0x64 0x20    // 'n?  And ' \n\t0x63 0x61 0x6E 0x20 0x43 0x6C 0x61 0x75    // 'can Clau' \n\t0x64 0x69 0x61 0x20 0x66 0x69 0x6E 0x64    // 'dia find' \n\t0x20 0x68 0x69 0x6D 0x20 0x61 0x6E 0x64    // ' him and' \n\t0x20 0x62 0x72 0x69 0x6E 0x67 0x20 0x68    // ' bring h' \n\t0x69 0x6D 0x20 0x69 0x6E 0x3F 0x20         // 'im in? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_56= ktipbio45\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_56, __HELP_NAME(\"ktipbio45\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_56, __HELP_NAME(\"ktipbio45\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_55=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_56, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio45\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_55=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_56, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_55=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_55, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xBF 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xAE 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_55=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_55, 0x0)\n\tBYTE\n\t0x03 0x03 0x69 0x73 0x6C 0x61 0x6E 0x64    // '??island' \n\t0x0D 0x0A 0x43 0x72 0x61 0x73 0x68 0x20    // '??Crash ' \n\t0x69 0x73 0x20 0x6D 0x61 0x64 0x65 0x20    // 'is made ' \n\t0x6F 0x66 0x20 0x6D 0x65 0x74 0x61 0x6C    // 'of metal' \n\t0x2C 0x20 0x73 0x6F 0x20 0x68 0x65 0x20    // ', so he ' \n\t0x63 0x6F 0x75 0x6C 0x64 0x6E 0x92 0x74    // 'couldnt' \n\t0x20 0x73 0x77 0x69 0x6D 0x20 0x6F 0x66    // ' swim of' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x69 0x73    // 'f the is' \n\t0x6C 0x61 0x6E 0x64 0x2E 0x20 0x20 0x49    // 'land.  I' \n\t0x6E 0x73 0x74 0x65 0x61 0x64 0x20 0x68    // 'nstead h' \n\t0x65 0x20 0x70 0x72 0x61 0x63 0x74 0x69    // 'e practi' \n\t0x63 0x65 0x64 0x20 0x72 0x75 0x6E 0x6E    // 'ced runn' \n\t0x69 0x6E 0x67 0x20 0x61 0x6E 0x64 0x20    // 'ing and ' \n\t0x6A 0x75 0x6D 0x70 0x69 0x6E 0x67 0x2E    // 'jumping.' \n\t0x20 0x20 0x4D 0x61 0x79 0x62 0x65 0x20    // '  Maybe ' \n\t0x77 0x69 0x74 0x68 0x20 0x68 0x69 0x73    // 'with his' \n\t0x20 0x72 0x6F 0x62 0x6F 0x74 0x20 0x6C    // ' robot l' \n\t0x65 0x67 0x73 0x20 0x68 0x65 0x20 0x63    // 'egs he c' \n\t0x6F 0x75 0x6C 0x64 0x20 0x6A 0x75 0x6D    // 'ould jum' \n\t0x70 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'p to the' \n\t0x20 0x6E 0x65 0x78 0x74 0x20 0x69 0x73    // ' next is' \n\t0x6C 0x61 0x6E 0x64 0x21 0x20 0x0D 0x0A    // 'land! ??' \n\t0x48 0x65 0x20 0x6A 0x75 0x6D 0x70 0x65    // 'He jumpe' \n\t0x64 0x20 0x66 0x61 0x72 0x20 0x65 0x6E    // 'd far en' \n\t0x6F 0x75 0x67 0x68 0x2C 0x20 0x61 0x6C    // 'ough, al' \n\t0x6C 0x20 0x72 0x69 0x67 0x68 0x74 0x97    // 'l right' \n\t0x61 0x6E 0x64 0x20 0x6C 0x61 0x6E 0x64    // 'and land' \n\t0x65 0x64 0x20 0x61 0x74 0x20 0x74 0x68    // 'ed at th' \n\t0x65 0x20 0x64 0x6F 0x6F 0x72 0x20 0x6F    // 'e door o' \n\t0x66 0x20 0x61 0x20 0x66 0x61 0x6D 0x6F    // 'f a famo' \n\t0x75 0x73 0x20 0x43 0x68 0x69 0x6E 0x65    // 'us Chine' \n\t0x73 0x65 0x20 0x72 0x65 0x73 0x74 0x61    // 'se resta' \n\t0x75 0x72 0x61 0x6E 0x74 0x20 0x77 0x68    // 'urant wh' \n\t0x65 0x72 0x65 0x20 0x61 0x20 0x67 0x72    // 'ere a gr' \n\t0x6F 0x75 0x70 0x20 0x6F 0x66 0x20 0x6D    // 'oup of m' \n\t0x6F 0x76 0x69 0x65 0x20 0x73 0x74 0x61    // 'ovie sta' \n\t0x72 0x73 0x20 0x77 0x65 0x72 0x65 0x20    // 'rs were ' \n\t0x65 0x61 0x74 0x69 0x6E 0x67 0x2E 0x20    // 'eating. ' \n\t0x20 0x45 0x76 0x65 0x72 0x79 0x6F 0x6E    // ' Everyon' \n\t0x65 0x20 0x63 0x72 0x6F 0x77 0x64 0x65    // 'e crowde' \n\t0x64 0x20 0x61 0x72 0x6F 0x75 0x6E 0x64    // 'd around' \n\t0x20 0x68 0x69 0x6D 0x20 0x77 0x69 0x74    // ' him wit' \n\t0x68 0x20 0x74 0x68 0x65 0x69 0x72 0x20    // 'h their ' \n\t0x63 0x68 0x6F 0x70 0x73 0x74 0x69 0x63    // 'chopstic' \n\t0x6B 0x73 0x2C 0x20 0x62 0x75 0x74 0x20    // 'ks, but ' \n\t0x6F 0x6E 0x65 0x20 0x61 0x63 0x74 0x6F    // 'one acto' \n\t0x72 0x20 0x73 0x6E 0x65 0x61 0x6B 0x65    // 'r sneake' \n\t0x64 0x20 0x75 0x70 0x20 0x62 0x65 0x68    // 'd up beh' \n\t0x69 0x6E 0x64 0x20 0x43 0x72 0x61 0x73    // 'ind Cras' \n\t0x68 0x20 0x61 0x6E 0x64 0x20 0x77 0x68    // 'h and wh' \n\t0x69 0x73 0x6B 0x65 0x64 0x20 0x68 0x69    // 'isked hi' \n\t0x6D 0x20 0x61 0x77 0x61 0x79 0x20 0x74    // 'm away t' \n\t0x6F 0x20 0x73 0x65 0x65 0x20 0x4D 0x63    // 'o see Mc' \n\t0x5A 0x65 0x65 0x2C 0x20 0x74 0x68 0x65    // 'Zee, the' \n\t0x20 0x66 0x61 0x6D 0x6F 0x75 0x73 0x20    // ' famous ' \n\t0x64 0x69 0x72 0x65 0x63 0x74 0x6F 0x72    // 'director' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_57= ktipbio46\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_57, __HELP_NAME(\"ktipbio46\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_57, __HELP_NAME(\"ktipbio46\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_57, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio46\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_57, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE9 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x77 0x01 0x00 0x82    // '????w??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x69 0x6C 0x6C 0x79 0x92    // '??Willy' \n\t0x73 0x20 0x49 0x6E 0x76 0x65 0x6E 0x74    // 's Invent' \n\t0x69 0x6F 0x6E 0x0D 0x0A 0x4D 0x6F 0x73    // 'ion??Mos' \n\t0x74 0x6C 0x79 0x2C 0x20 0x43 0x72 0x61    // 'tly, Cra' \n\t0x73 0x68 0x20 0x77 0x61 0x6E 0x74 0x73    // 'sh wants' \n\t0x20 0x61 0x20 0x66 0x61 0x74 0x68 0x65    // ' a fathe' \n\t0x72 0x20 0x66 0x69 0x67 0x75 0x72 0x65    // 'r figure' \n\t0x2E 0x20 0x20 0x48 0x65 0x20 0x64 0x72    // '.  He dr' \n\t0x65 0x61 0x6D 0x73 0x20 0x6F 0x66 0x20    // 'eams of ' \n\t0x62 0x65 0x69 0x6E 0x67 0x20 0x69 0x6E    // 'being in' \n\t0x20 0x61 0x20 0x6D 0x6F 0x76 0x69 0x65    // ' a movie' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x68    // ' where h' \n\t0x65 0x92 0x64 0x20 0x62 0x65 0x20 0x69    // 'ed be i' \n\t0x6E 0x76 0x65 0x6E 0x74 0x65 0x64 0x20    // 'nvented ' \n\t0x62 0x79 0x20 0x61 0x20 0x73 0x63 0x69    // 'by a sci' \n\t0x65 0x6E 0x74 0x69 0x73 0x74 0x20 0x6E    // 'entist n' \n\t0x61 0x6D 0x65 0x64 0x20 0x57 0x69 0x6C    // 'amed Wil' \n\t0x6C 0x79 0x2C 0x20 0x61 0x20 0x67 0x72    // 'ly, a gr' \n\t0x65 0x65 0x6E 0x20 0x73 0x63 0x69 0x65    // 'een scie' \n\t0x6E 0x74 0x69 0x73 0x74 0x20 0x77 0x68    // 'ntist wh' \n\t0x6F 0x20 0x77 0x61 0x6E 0x74 0x73 0x20    // 'o wants ' \n\t0x43 0x72 0x61 0x73 0x68 0x20 0x74 0x6F    // 'Crash to' \n\t0x20 0x68 0x65 0x6C 0x70 0x20 0x68 0x69    // ' help hi' \n\t0x6D 0x20 0x67 0x75 0x61 0x72 0x64 0x20    // 'm guard ' \n\t0x74 0x68 0x65 0x20 0x6C 0x61 0x62 0x6F    // 'the labo' \n\t0x72 0x61 0x74 0x6F 0x72 0x79 0x20 0x61    // 'ratory a' \n\t0x67 0x61 0x69 0x6E 0x73 0x74 0x20 0x61    // 'gainst a' \n\t0x20 0x67 0x69 0x61 0x6E 0x74 0x20 0x72    // ' giant r' \n\t0x61 0x74 0x2E 0x20 0x20 0x54 0x68 0x65    // 'at.  The' \n\t0x20 0x72 0x61 0x74 0x20 0x68 0x61 0x73    // ' rat has' \n\t0x20 0x67 0x72 0x6F 0x77 0x6E 0x20 0x73    // ' grown s' \n\t0x6F 0x20 0x6C 0x61 0x72 0x67 0x65 0x20    // 'o large ' \n\t0x62 0x79 0x20 0x64 0x72 0x69 0x6E 0x6B    // 'by drink' \n\t0x69 0x6E 0x67 0x20 0x6F 0x6E 0x65 0x20    // 'ing one ' \n\t0x6F 0x66 0x20 0x57 0x69 0x6C 0x6C 0x79    // 'of Willy' \n\t0x92 0x73 0x20 0x73 0x63 0x69 0x65 0x6E    // 's scien' \n\t0x63 0x65 0x20 0x65 0x78 0x70 0x65 0x72    // 'ce exper' \n\t0x69 0x6D 0x65 0x6E 0x74 0x73 0x2E 0x20    // 'iments. ' \n\t0x42 0x75 0x74 0x20 0x74 0x68 0x65 0x20    // 'But the ' \n\t0x72 0x61 0x74 0x20 0x69 0x73 0x20 0x74    // 'rat is t' \n\t0x77 0x69 0x63 0x65 0x20 0x74 0x68 0x65    // 'wice the' \n\t0x20 0x73 0x69 0x7A 0x65 0x20 0x6F 0x66    // ' size of' \n\t0x20 0x43 0x72 0x61 0x73 0x68 0x20 0x61    // ' Crash a' \n\t0x6E 0x64 0x20 0x6D 0x69 0x67 0x68 0x74    // 'nd might' \n\t0x20 0x67 0x65 0x74 0x20 0x65 0x76 0x65    // ' get eve' \n\t0x6E 0x20 0x62 0x69 0x67 0x67 0x65 0x72    // 'n bigger' \n\t0x97 0x66 0x61 0x73 0x74 0x2E 0x20 0x0D    // 'fast. ?' \n\t0x0A 0x48 0x6F 0x77 0x20 0x77 0x69 0x6C    // '?How wil' \n\t0x6C 0x20 0x43 0x72 0x61 0x73 0x68 0x20    // 'l Crash ' \n\t0x70 0x72 0x6F 0x74 0x65 0x63 0x74 0x20    // 'protect ' \n\t0x68 0x69 0x6D 0x73 0x65 0x6C 0x66 0x20    // 'himself ' \n\t0x61 0x6E 0x64 0x20 0x68 0x69 0x73 0x20    // 'and his ' \n\t0x69 0x6E 0x76 0x65 0x6E 0x74 0x6F 0x72    // 'inventor' \n\t0x20 0x66 0x61 0x74 0x68 0x65 0x72 0x20    // ' father ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x74 0x68 0x65    // 'from the' \n\t0x20 0x72 0x61 0x74 0x20 0x61 0x74 0x74    // ' rat att' \n\t0x61 0x63 0x6B 0x3F 0x20 0x20 0x57 0x69    // 'ack?  Wi' \n\t0x6C 0x6C 0x20 0x68 0x69 0x73 0x20 0x6A    // 'll his j' \n\t0x75 0x6D 0x70 0x69 0x6E 0x67 0x20 0x73    // 'umping s' \n\t0x6B 0x69 0x6C 0x6C 0x73 0x20 0x68 0x65    // 'kills he' \n\t0x6C 0x70 0x20 0x68 0x69 0x6D 0x20 0x6F    // 'lp him o' \n\t0x75 0x74 0x3F                             // 'ut?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_58= ktipbio47\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_58, __HELP_NAME(\"ktipbio47\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_58, __HELP_NAME(\"ktipbio47\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_58=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_58, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio47\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_58=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_58, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_58=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_58, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE1 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x79 0x01 0x00 0x82    // '????y??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_58=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_58, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x6F 0x62 0x6F 0x74 0x20    // '??Robot ' \n\t0x43 0x6F 0x70 0x0D 0x0A 0x43 0x72 0x61    // 'Cop??Cra' \n\t0x73 0x68 0x20 0x73 0x65 0x65 0x73 0x20    // 'sh sees ' \n\t0x68 0x69 0x6D 0x73 0x65 0x6C 0x66 0x20    // 'himself ' \n\t0x70 0x6C 0x61 0x79 0x69 0x6E 0x67 0x20    // 'playing ' \n\t0x61 0x20 0x66 0x61 0x72 0x2D 0x6F 0x75    // 'a far-ou' \n\t0x74 0x20 0x63 0x6F 0x70 0x20 0x69 0x6E    // 't cop in' \n\t0x20 0x74 0x68 0x65 0x20 0x79 0x65 0x61    // ' the yea' \n\t0x72 0x20 0x32 0x30 0x32 0x30 0x97 0x74    // 'r 2020t' \n\t0x68 0x65 0x20 0x6B 0x69 0x6E 0x64 0x20    // 'he kind ' \n\t0x6F 0x66 0x20 0x63 0x6F 0x70 0x20 0x77    // 'of cop w' \n\t0x68 0x6F 0x20 0x63 0x61 0x6E 0x20 0x77    // 'ho can w' \n\t0x61 0x6C 0x6B 0x20 0x74 0x68 0x72 0x6F    // 'alk thro' \n\t0x75 0x67 0x68 0x20 0x77 0x61 0x6C 0x6C    // 'ugh wall' \n\t0x73 0x20 0x61 0x6E 0x64 0x20 0x64 0x72    // 's and dr' \n\t0x6F 0x70 0x20 0x74 0x68 0x72 0x6F 0x75    // 'op throu' \n\t0x67 0x68 0x20 0x74 0x68 0x65 0x20 0x66    // 'gh the f' \n\t0x6C 0x6F 0x6F 0x72 0x20 0x74 0x6F 0x20    // 'loor to ' \n\t0x63 0x61 0x74 0x63 0x68 0x20 0x62 0x61    // 'catch ba' \n\t0x64 0x20 0x67 0x75 0x79 0x73 0x2E 0x20    // 'd guys. ' \n\t0x20 0x48 0x69 0x73 0x20 0x70 0x61 0x72    // ' His par' \n\t0x74 0x6E 0x65 0x72 0x20 0x68 0x61 0x73    // 'tner has' \n\t0x20 0x62 0x65 0x65 0x6E 0x20 0x63 0x61    // ' been ca' \n\t0x70 0x74 0x75 0x72 0x65 0x64 0x20 0x62    // 'ptured b' \n\t0x79 0x20 0x63 0x72 0x6F 0x6F 0x6B 0x73    // 'y crooks' \n\t0x20 0x77 0x68 0x6F 0x20 0x77 0x61 0x6E    // ' who wan' \n\t0x74 0x20 0x24 0x31 0x20 0x6D 0x69 0x6C    // 't $1 mil' \n\t0x6C 0x69 0x6F 0x6E 0x20 0x74 0x6F 0x20    // 'lion to ' \n\t0x73 0x65 0x74 0x20 0x68 0x69 0x6D 0x20    // 'set him ' \n\t0x66 0x72 0x65 0x65 0x2E 0x20 0x20 0x43    // 'free.  C' \n\t0x72 0x61 0x73 0x68 0x20 0x70 0x6C 0x61    // 'rash pla' \n\t0x6E 0x73 0x20 0x74 0x6F 0x20 0x6D 0x65    // 'ns to me' \n\t0x65 0x74 0x20 0x74 0x68 0x65 0x6D 0x20    // 'et them ' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x63    // 'at the c' \n\t0x6C 0x6F 0x63 0x6B 0x20 0x74 0x6F 0x77    // 'lock tow' \n\t0x65 0x72 0x20 0x61 0x74 0x20 0x6D 0x69    // 'er at mi' \n\t0x64 0x6E 0x69 0x67 0x68 0x74 0x2C 0x20    // 'dnight, ' \n\t0x61 0x6C 0x6F 0x6E 0x65 0x2C 0x20 0x77    // 'alone, w' \n\t0x69 0x74 0x68 0x20 0x74 0x68 0x65 0x20    // 'ith the ' \n\t0x6D 0x6F 0x6E 0x65 0x79 0x2E 0x20 0x20    // 'money.  ' \n\t0x41 0x74 0x20 0x6D 0x69 0x64 0x6E 0x69    // 'At midni' \n\t0x67 0x68 0x74 0x2C 0x20 0x43 0x72 0x61    // 'ght, Cra' \n\t0x73 0x68 0x20 0x69 0x73 0x20 0x73 0x75    // 'sh is su' \n\t0x72 0x72 0x6F 0x75 0x6E 0x64 0x65 0x64    // 'rrounded' \n\t0x20 0x62 0x79 0x20 0x33 0x20 0x6D 0x65    // ' by 3 me' \n\t0x61 0x6E 0x2D 0x6C 0x6F 0x6F 0x6B 0x69    // 'an-looki' \n\t0x6E 0x67 0x20 0x67 0x75 0x79 0x73 0x2E    // 'ng guys.' \n\t0x20 0x0D 0x0A 0x48 0x6F 0x77 0x20 0x77    // ' ??How w' \n\t0x69 0x6C 0x6C 0x20 0x43 0x72 0x61 0x73    // 'ill Cras' \n\t0x68 0x20 0x64 0x65 0x66 0x65 0x6E 0x64    // 'h defend' \n\t0x20 0x68 0x69 0x6D 0x73 0x65 0x6C 0x66    // ' himself' \n\t0x3F 0x20 0x20 0x41 0x6E 0x64 0x20 0x68    // '?  And h' \n\t0x6F 0x77 0x20 0x77 0x69 0x6C 0x6C 0x20    // 'ow will ' \n\t0x68 0x65 0x20 0x67 0x65 0x74 0x20 0x74    // 'he get t' \n\t0x68 0x65 0x6D 0x20 0x74 0x6F 0x20 0x62    // 'hem to b' \n\t0x6C 0x61 0x62 0x20 0x61 0x62 0x6F 0x75    // 'lab abou' \n\t0x74 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 't where ' \n\t0x74 0x68 0x65 0x79 0x92 0x76 0x65 0x20    // 'theyve ' \n\t0x68 0x69 0x64 0x64 0x65 0x6E 0x20 0x68    // 'hidden h' \n\t0x69 0x73 0x20 0x70 0x61 0x72 0x74 0x6E    // 'is partn' \n\t0x65 0x72 0x3F                             // 'er?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_59= ktipbio48\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_59, __HELP_NAME(\"ktipbio48\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_59, __HELP_NAME(\"ktipbio48\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_59, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio48\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_59, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8F 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xEB 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5A, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x6C 0x69 0x67 0x68 0x74    // '??Flight' \n\t0x20 0x41 0x74 0x74 0x65 0x6E 0x64 0x61    // ' Attenda' \n\t0x6E 0x74 0x0D 0x0A 0x54 0x68 0x65 0x20    // 'nt??The ' \n\t0x6F 0x6E 0x6C 0x79 0x20 0x66 0x6C 0x61    // 'only fla' \n\t0x77 0x20 0x69 0x6E 0x20 0x43 0x72 0x61    // 'w in Cra' \n\t0x73 0x68 0x92 0x73 0x20 0x72 0x6F 0x62    // 'shs rob' \n\t0x6F 0x74 0x20 0x64 0x65 0x73 0x69 0x67    // 'ot desig' \n\t0x6E 0x20 0x69 0x73 0x20 0x68 0x69 0x73    // 'n is his' \n\t0x20 0x62 0x61 0x74 0x74 0x65 0x72 0x79    // ' battery' \n\t0x2E 0x20 0x20 0x49 0x66 0x20 0x68 0x65    // '.  If he' \n\t0x20 0x64 0x6F 0x65 0x73 0x6E 0x92 0x74    // ' doesnt' \n\t0x20 0x73 0x74 0x61 0x79 0x20 0x63 0x68    // ' stay ch' \n\t0x61 0x72 0x67 0x65 0x64 0x2C 0x20 0x68    // 'arged, h' \n\t0x65 0x20 0x66 0x61 0x69 0x6E 0x74 0x73    // 'e faints' \n\t0x20 0x61 0x6E 0x64 0x20 0x66 0x61 0x6C    // ' and fal' \n\t0x6C 0x73 0x20 0x6F 0x76 0x65 0x72 0x2E    // 'ls over.' \n\t0x20 0x20 0x43 0x72 0x61 0x73 0x68 0x20    // '  Crash ' \n\t0x64 0x72 0x65 0x61 0x6D 0x73 0x20 0x6F    // 'dreams o' \n\t0x66 0x20 0x70 0x6C 0x61 0x79 0x69 0x6E    // 'f playin' \n\t0x67 0x20 0x61 0x20 0x66 0x6C 0x69 0x67    // 'g a flig' \n\t0x68 0x74 0x20 0x61 0x74 0x74 0x65 0x6E    // 'ht atten' \n\t0x64 0x61 0x6E 0x74 0x20 0x6F 0x6E 0x20    // 'dant on ' \n\t0x61 0x20 0x70 0x6C 0x61 0x6E 0x65 0x20    // 'a plane ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x74 0x68    // 'where th' \n\t0x65 0x20 0x70 0x69 0x6C 0x6F 0x74 0x20    // 'e pilot ' \n\t0x61 0x6E 0x64 0x20 0x63 0x6F 0x2D 0x70    // 'and co-p' \n\t0x69 0x6C 0x6F 0x74 0x20 0x61 0x72 0x65    // 'ilot are' \n\t0x20 0x62 0x61 0x74 0x74 0x65 0x72 0x79    // ' battery' \n\t0x2D 0x70 0x6F 0x77 0x65 0x72 0x65 0x64    // '-powered' \n\t0x20 0x72 0x6F 0x62 0x6F 0x74 0x73 0x2C    // ' robots,' \n\t0x20 0x74 0x6F 0x6F 0x2E 0x20 0x20 0x43    // ' too.  C' \n\t0x72 0x61 0x73 0x68 0x92 0x73 0x20 0x6A    // 'rashs j' \n\t0x6F 0x62 0x20 0x69 0x73 0x20 0x74 0x6F    // 'ob is to' \n\t0x20 0x67 0x72 0x65 0x65 0x74 0x20 0x70    // ' greet p' \n\t0x61 0x73 0x73 0x65 0x6E 0x67 0x65 0x72    // 'assenger' \n\t0x73 0x20 0x61 0x6E 0x64 0x20 0x77 0x61    // 's and wa' \n\t0x74 0x63 0x68 0x20 0x6F 0x75 0x74 0x20    // 'tch out ' \n\t0x74 0x68 0x65 0x20 0x77 0x69 0x6E 0x64    // 'the wind' \n\t0x6F 0x77 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ow for a' \n\t0x20 0x6D 0x79 0x73 0x74 0x65 0x72 0x69    // ' mysteri' \n\t0x6F 0x75 0x73 0x20 0x74 0x72 0x6F 0x70    // 'ous trop' \n\t0x69 0x63 0x61 0x6C 0x20 0x69 0x73 0x6C    // 'ical isl' \n\t0x61 0x6E 0x64 0x2E 0x20 0x20 0x54 0x68    // 'and.  Th' \n\t0x65 0x20 0x69 0x73 0x6C 0x61 0x6E 0x64    // 'e island' \n\t0x20 0x68 0x61 0x73 0x20 0x61 0x20 0x63    // ' has a c' \n\t0x61 0x76 0x65 0x20 0x77 0x69 0x74 0x68    // 'ave with' \n\t0x20 0x61 0x20 0x6D 0x61 0x67 0x69 0x63    // ' a magic' \n\t0x20 0x70 0x6F 0x77 0x65 0x72 0x20 0x62    // ' power b' \n\t0x6F 0x78 0x20 0x69 0x6E 0x73 0x69 0x64    // 'ox insid' \n\t0x65 0x20 0x74 0x68 0x61 0x74 0x20 0x77    // 'e that w' \n\t0x69 0x6C 0x6C 0x20 0x72 0x65 0x63 0x68    // 'ill rech' \n\t0x61 0x72 0x67 0x65 0x20 0x74 0x68 0x65    // 'arge the' \n\t0x20 0x72 0x6F 0x62 0x6F 0x74 0x73 0x20    // ' robots ' \n\t0x66 0x6F 0x72 0x20 0x6C 0x69 0x66 0x65    // 'for life' \n\t0x2E 0x20 0x20 0x42 0x75 0x74 0x20 0x74    // '.  But t' \n\t0x68 0x65 0x79 0x20 0x6F 0x6E 0x6C 0x79    // 'hey only' \n\t0x20 0x68 0x61 0x76 0x65 0x20 0x61 0x20    // ' have a ' \n\t0x66 0x65 0x77 0x20 0x68 0x6F 0x75 0x72    // 'few hour' \n\t0x73 0x20 0x6C 0x65 0x66 0x74 0x20 0x6F    // 's left o' \n\t0x6E 0x20 0x74 0x68 0x65 0x69 0x72 0x20    // 'n their ' \n\t0x62 0x61 0x74 0x74 0x65 0x72 0x69 0x65    // 'batterie' \n\t0x73 0x2E 0x20 0x0D 0x0A 0x57 0x69 0x6C    // 's. ??Wil' \n\t0x6C 0x20 0x74 0x68 0x65 0x79 0x20 0x66    // 'l they f' \n\t0x69 0x6E 0x64 0x20 0x74 0x68 0x65 0x20    // 'ind the ' \n\t0x69 0x73 0x6C 0x61 0x6E 0x64 0x20 0x61    // 'island a' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x20 0x63    // 'nd the c' \n\t0x61 0x76 0x65 0x20 0x62 0x65 0x66 0x6F    // 'ave befo' \n\t0x72 0x65 0x20 0x74 0x68 0x65 0x79 0x20    // 're they ' \n\t0x72 0x75 0x6E 0x20 0x6F 0x75 0x74 0x20    // 'run out ' \n\t0x6F 0x66 0x20 0x70 0x2D 0x6F 0x2D 0x77    // 'of p-o-w' \n\t0x2D 0x65 0x2D 0x72 0x2E 0x2E 0x2E 0x3F    // '-e-r...?' \n\t0x20 0x20 0x57 0x69 0x74 0x68 0x20 0x6F    // '  With o' \n\t0x6E 0x6C 0x79 0x20 0x73 0x65 0x63 0x6F    // 'nly seco' \n\t0x6E 0x64 0x73 0x20 0x6C 0x65 0x66 0x74    // 'nds left' \n\t0x2C 0x20 0x68 0x6F 0x77 0x20 0x77 0x69    // ', how wi' \n\t0x6C 0x6C 0x20 0x74 0x68 0x65 0x20 0x72    // 'll the r' \n\t0x6F 0x62 0x6F 0x74 0x73 0x20 0x67 0x65    // 'obots ge' \n\t0x74 0x20 0x61 0x63 0x72 0x6F 0x73 0x73    // 't across' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x77 0x69    // ' the swi' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x62 0x72    // 'nging br' \n\t0x69 0x64 0x67 0x65 0x20 0x74 0x6F 0x20    // 'idge to ' \n\t0x74 0x68 0x65 0x20 0x63 0x61 0x76 0x65    // 'the cave' \n\t0x3F                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5A= ktipbio49\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5A, __HELP_NAME(\"ktipbio49\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5A, __HELP_NAME(\"ktipbio49\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio49\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x02 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xDC 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B6, 0x0)\n\tBYTE\n\t0x03 0x03 0x64 0x61 0x6E 0x63 0x69 0x6E    // '??dancin' \n\t0x67 0x0D 0x0A 0x48 0x65 0x72 0x20 0x6D    // 'g??Her m' \n\t0x6F 0x74 0x68 0x65 0x72 0x20 0x73 0x61    // 'other sa' \n\t0x79 0x73 0x20 0x69 0x74 0x20 0x77 0x69    // 'ys it wi' \n\t0x6C 0x6C 0x20 0x6E 0x65 0x76 0x65 0x72    // 'll never' \n\t0x20 0x68 0x61 0x70 0x70 0x65 0x6E 0x2C    // ' happen,' \n\t0x20 0x62 0x75 0x74 0x20 0x45 0x6C 0x69    // ' but Eli' \n\t0x7A 0x61 0x20 0x64 0x72 0x65 0x61 0x6D    // 'za dream' \n\t0x73 0x20 0x6F 0x66 0x20 0x62 0x65 0x63    // 's of bec' \n\t0x6F 0x6D 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'oming an' \n\t0x20 0x61 0x63 0x74 0x72 0x65 0x73 0x73    // ' actress' \n\t0x20 0x77 0x68 0x6F 0x20 0x63 0x61 0x6E    // ' who can' \n\t0x20 0x74 0x61 0x6B 0x65 0x20 0x6F 0x6E    // ' take on' \n\t0x20 0x61 0x6E 0x79 0x20 0x70 0x61 0x72    // ' any par' \n\t0x74 0x2E 0x20 0x20 0x45 0x76 0x65 0x72    // 't.  Ever' \n\t0x79 0x20 0x64 0x61 0x79 0x20 0x73 0x68    // 'y day sh' \n\t0x65 0x20 0x70 0x72 0x61 0x63 0x74 0x69    // 'e practi' \n\t0x63 0x65 0x73 0x20 0x74 0x68 0x65 0x20    // 'ces the ' \n\t0x6D 0x6F 0x76 0x65 0x73 0x20 0x73 0x68    // 'moves sh' \n\t0x65 0x20 0x6D 0x69 0x67 0x68 0x74 0x20    // 'e might ' \n\t0x6E 0x65 0x65 0x64 0x2C 0x20 0x6C 0x69    // 'need, li' \n\t0x6B 0x65 0x20 0x66 0x61 0x69 0x6E 0x74    // 'ke faint' \n\t0x69 0x6E 0x67 0x2C 0x20 0x6C 0x61 0x75    // 'ing, lau' \n\t0x67 0x68 0x69 0x6E 0x67 0x2C 0x20 0x66    // 'ghing, f' \n\t0x61 0x6C 0x6C 0x69 0x6E 0x67 0x2C 0x20    // 'alling, ' \n\t0x61 0x6E 0x64 0x20 0x6B 0x61 0x72 0x61    // 'and kara' \n\t0x74 0x65 0x20 0x6B 0x69 0x63 0x6B 0x69    // 'te kicki' \n\t0x6E 0x67 0x2E 0x20 0x0D 0x0A 0x42 0x75    // 'ng. ??Bu' \n\t0x74 0x20 0x73 0x68 0x65 0x20 0x73 0x70    // 't she sp' \n\t0x65 0x6E 0x64 0x73 0x20 0x6D 0x6F 0x73    // 'ends mos' \n\t0x74 0x20 0x6F 0x66 0x20 0x68 0x65 0x72    // 't of her' \n\t0x20 0x74 0x69 0x6D 0x65 0x20 0x70 0x72    // ' time pr' \n\t0x61 0x63 0x74 0x69 0x63 0x69 0x6E 0x67    // 'acticing' \n\t0x20 0x68 0x65 0x72 0x20 0x64 0x61 0x6E    // ' her dan' \n\t0x63 0x69 0x6E 0x67 0x2E 0x20 0x20 0x53    // 'cing.  S' \n\t0x68 0x65 0x27 0x73 0x20 0x73 0x6F 0x20    // 'he's so ' \n\t0x74 0x61 0x6C 0x65 0x6E 0x74 0x65 0x64    // 'talented' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x73 0x68    // ' that sh' \n\t0x65 0x20 0x77 0x61 0x73 0x20 0x61 0x73    // 'e was as' \n\t0x6B 0x65 0x64 0x20 0x74 0x6F 0x20 0x64    // 'ked to d' \n\t0x6F 0x20 0x61 0x20 0x73 0x6F 0x6C 0x6F    // 'o a solo' \n\t0x20 0x64 0x61 0x6E 0x63 0x65 0x20 0x72    // ' dance r' \n\t0x6F 0x75 0x74 0x69 0x6E 0x65 0x20 0x66    // 'outine f' \n\t0x6F 0x72 0x20 0x61 0x20 0x4D 0x65 0x78    // 'or a Mex' \n\t0x69 0x63 0x61 0x6E 0x20 0x74 0x68 0x65    // 'ican the' \n\t0x61 0x74 0x65 0x72 0x20 0x67 0x72 0x6F    // 'ater gro' \n\t0x75 0x70 0x20 0x74 0x68 0x61 0x74 0x20    // 'up that ' \n\t0x77 0x61 0x73 0x20 0x74 0x6F 0x75 0x72    // 'was tour' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x55 0x6E 0x69 0x74 0x65 0x64 0x20 0x53    // 'United S' \n\t0x74 0x61 0x74 0x65 0x73 0x2E 0x20 0x20    // 'tates.  ' \n\t0x4D 0x65 0x6C 0x61 0x6E 0x69 0x65 0x2C    // 'Melanie,' \n\t0x20 0x77 0x68 0x6F 0x20 0x69 0x73 0x20    // ' who is ' \n\t0x61 0x6C 0x77 0x61 0x79 0x73 0x20 0x6C    // 'always l' \n\t0x6F 0x6F 0x6B 0x69 0x6E 0x67 0x20 0x66    // 'ooking f' \n\t0x6F 0x72 0x20 0x6E 0x65 0x77 0x20 0x74    // 'or new t' \n\t0x61 0x6C 0x65 0x6E 0x74 0x2C 0x20 0x73    // 'alent, s' \n\t0x61 0x77 0x20 0x45 0x6C 0x69 0x7A 0x61    // 'aw Eliza' \n\t0x92 0x73 0x20 0x73 0x6F 0x6C 0x6F 0x20    // 's solo ' \n\t0x61 0x6E 0x64 0x20 0x61 0x73 0x6B 0x65    // 'and aske' \n\t0x64 0x20 0x68 0x65 0x72 0x20 0x74 0x6F    // 'd her to' \n\t0x20 0x61 0x75 0x64 0x69 0x74 0x69 0x6F    // ' auditio' \n\t0x6E 0x20 0x66 0x6F 0x72 0x20 0x61 0x20    // 'n for a ' \n\t0x4D 0x63 0x5A 0x65 0x65 0x20 0x6D 0x6F    // 'McZee mo' \n\t0x76 0x69 0x65 0x2E                        // 'vie.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5B= ktipbio50\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5B, __HELP_NAME(\"ktipbio50\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5B, __HELP_NAME(\"ktipbio50\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio50\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA9 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x23 0x02 0x00 0x82    // '????#??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5B, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x69 0x70 0x70 0x69 0x65    // '??Hippie' \n\t0x0D 0x0A 0x54 0x68 0x65 0x20 0x70 0x61    // '??The pa' \n\t0x72 0x74 0x20 0x6F 0x66 0x20 0x61 0x20    // 'rt of a ' \n\t0x36 0x30 0x73 0x20 0x68 0x69 0x70 0x70    // '60s hipp' \n\t0x69 0x65 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'ie would' \n\t0x20 0x62 0x65 0x20 0x70 0x65 0x72 0x66    // ' be perf' \n\t0x65 0x63 0x74 0x20 0x66 0x6F 0x72 0x20    // 'ect for ' \n\t0x45 0x6C 0x69 0x7A 0x61 0x2C 0x20 0x73    // 'Eliza, s' \n\t0x68 0x65 0x20 0x74 0x68 0x69 0x6E 0x6B    // 'he think' \n\t0x73 0x2E 0x20 0x53 0x68 0x65 0x20 0x68    // 's. She h' \n\t0x61 0x73 0x20 0x74 0x68 0x65 0x20 0x67    // 'as the g' \n\t0x72 0x6F 0x6F 0x76 0x79 0x20 0x63 0x6C    // 'roovy cl' \n\t0x6F 0x74 0x68 0x65 0x73 0x2E 0x20 0x20    // 'othes.  ' \n\t0x53 0x68 0x65 0x20 0x73 0x65 0x65 0x73    // 'She sees' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x73 0x74 0x61 0x72 0x74    // 'ie start' \n\t0x69 0x6E 0x67 0x20 0x61 0x74 0x20 0x68    // 'ing at h' \n\t0x65 0x72 0x20 0x61 0x75 0x6E 0x74 0x20    // 'er aunt ' \n\t0x4D 0x61 0x72 0x74 0x68 0x61 0x92 0x73    // 'Marthas' \n\t0x20 0x6F 0x6C 0x64 0x20 0x68 0x6F 0x75    // ' old hou' \n\t0x73 0x65 0x2E 0x20 0x0D 0x0A 0x4C 0x69    // 'se. ??Li' \n\t0x6B 0x65 0x20 0x61 0x20 0x74 0x72 0x75    // 'ke a tru' \n\t0x65 0x20 0x68 0x69 0x70 0x70 0x69 0x65    // 'e hippie' \n\t0x2C 0x20 0x45 0x6C 0x69 0x7A 0x61 0x20    // ', Eliza ' \n\t0x69 0x73 0x20 0x69 0x6E 0x20 0x74 0x75    // 'is in tu' \n\t0x6E 0x65 0x20 0x77 0x69 0x74 0x68 0x20    // 'ne with ' \n\t0x74 0x68 0x65 0x20 0x75 0x6E 0x69 0x76    // 'the univ' \n\t0x65 0x72 0x73 0x65 0x2E 0x20 0x20 0x57    // 'erse.  W' \n\t0x68 0x65 0x6E 0x20 0x73 0x68 0x65 0x20    // 'hen she ' \n\t0x73 0x65 0x6E 0x73 0x65 0x73 0x20 0x65    // 'senses e' \n\t0x76 0x69 0x6C 0x20 0x66 0x6F 0x72 0x63    // 'vil forc' \n\t0x65 0x73 0x20 0x61 0x74 0x20 0x77 0x6F    // 'es at wo' \n\t0x72 0x6B 0x20 0x69 0x6E 0x20 0x74 0x68    // 'rk in th' \n\t0x65 0x20 0x68 0x6F 0x75 0x73 0x65 0x2C    // 'e house,' \n\t0x20 0x73 0x68 0x65 0x20 0x6B 0x6E 0x65    // ' she kne' \n\t0x65 0x6C 0x73 0x20 0x74 0x6F 0x20 0x6D    // 'els to m' \n\t0x65 0x64 0x69 0x74 0x61 0x74 0x65 0x20    // 'editate ' \n\t0x61 0x77 0x61 0x79 0x20 0x74 0x68 0x65    // 'away the' \n\t0x20 0x65 0x76 0x69 0x6C 0x2E 0x20 0x20    // ' evil.  ' \n\t0x4A 0x75 0x73 0x74 0x20 0x74 0x68 0x65    // 'Just the' \n\t0x6E 0x2C 0x20 0x69 0x6E 0x20 0x74 0x68    // 'n, in th' \n\t0x65 0x20 0x63 0x6F 0x72 0x6E 0x65 0x72    // 'e corner' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x6C 0x69 0x62 0x72 0x61 0x72 0x79 0x2C    // 'library,' \n\t0x20 0x74 0x68 0x65 0x20 0x6C 0x69 0x64    // ' the lid' \n\t0x20 0x6F 0x6E 0x20 0x61 0x20 0x77 0x6F    // ' on a wo' \n\t0x6F 0x64 0x65 0x6E 0x20 0x63 0x6F 0x66    // 'oden cof' \n\t0x66 0x69 0x6E 0x20 0x63 0x72 0x65 0x61    // 'fin crea' \n\t0x6B 0x73 0x20 0x6F 0x70 0x65 0x6E 0x2C    // 'ks open,' \n\t0x20 0x61 0x6E 0x64 0x20 0x6F 0x75 0x74    // ' and out' \n\t0x20 0x63 0x6F 0x6D 0x65 0x73 0x20 0x61    // ' comes a' \n\t0x20 0x67 0x68 0x6F 0x73 0x74 0x2D 0x77    // ' ghost-w' \n\t0x68 0x69 0x74 0x65 0x20 0x67 0x75 0x79    // 'hite guy' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x61 0x20    // ' with a ' \n\t0x62 0x61 0x67 0x20 0x6F 0x76 0x65 0x72    // 'bag over' \n\t0x20 0x68 0x69 0x73 0x20 0x68 0x65 0x61    // ' his hea' \n\t0x64 0x2E 0x20 0x20 0x49 0x73 0x20 0x74    // 'd.  Is t' \n\t0x68 0x69 0x73 0x20 0x61 0x20 0x70 0x68    // 'his a ph' \n\t0x61 0x6E 0x74 0x6F 0x6D 0x3F 0x20 0x20    // 'antom?  ' \n\t0x53 0x68 0x65 0x20 0x6C 0x6F 0x6F 0x6B    // 'She look' \n\t0x73 0x20 0x61 0x67 0x61 0x69 0x6E 0x20    // 's again ' \n\t0x61 0x6E 0x64 0x20 0x62 0x65 0x67 0x69    // 'and begi' \n\t0x6E 0x73 0x20 0x77 0x61 0x6C 0x6B 0x69    // 'ns walki' \n\t0x6E 0x67 0x20 0x62 0x61 0x63 0x6B 0x77    // 'ng backw' \n\t0x61 0x72 0x64 0x2E 0x20 0x54 0x68 0x65    // 'ard. The' \n\t0x20 0x70 0x68 0x61 0x6E 0x74 0x6F 0x6D    // ' phantom' \n\t0x20 0x77 0x61 0x6C 0x6B 0x73 0x20 0x74    // ' walks t' \n\t0x6F 0x77 0x61 0x72 0x64 0x20 0x68 0x65    // 'oward he' \n\t0x72 0x2E 0x20 0x0D 0x0A 0x48 0x6F 0x77    // 'r. ??How' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x45 0x6C    // ' will El' \n\t0x69 0x7A 0x61 0x20 0x64 0x65 0x61 0x6C    // 'iza deal' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x74 0x68    // ' with th' \n\t0x69 0x73 0x20 0x62 0x61 0x67 0x2D 0x68    // 'is bag-h' \n\t0x65 0x61 0x64 0x3F 0x20 0x20 0x57 0x69    // 'ead?  Wi' \n\t0x6C 0x6C 0x20 0x68 0x65 0x72 0x20 0x70    // 'll her p' \n\t0x65 0x61 0x63 0x65 0x20 0x6E 0x65 0x63    // 'eace nec' \n\t0x6B 0x6C 0x61 0x63 0x65 0x20 0x70 0x72    // 'klace pr' \n\t0x6F 0x74 0x65 0x63 0x74 0x20 0x68 0x65    // 'otect he' \n\t0x72 0x2C 0x20 0x6F 0x72 0x20 0x77 0x69    // 'r, or wi' \n\t0x6C 0x6C 0x20 0x73 0x68 0x65 0x20 0x6E    // 'll she n' \n\t0x65 0x65 0x64 0x20 0x74 0x6F 0x20 0x75    // 'eed to u' \n\t0x73 0x65 0x20 0x6B 0x61 0x72 0x61 0x74    // 'se karat' \n\t0x65 0x20 0x74 0x6F 0x20 0x73 0x63 0x61    // 'e to sca' \n\t0x72 0x65 0x20 0x74 0x68 0x65 0x20 0x73    // 're the s' \n\t0x63 0x61 0x72 0x79 0x20 0x62 0x65 0x69    // 'cary bei' \n\t0x6E 0x67 0x3F                             // 'ng?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5C= ktipbio51\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5C, __HELP_NAME(\"ktipbio51\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5C, __HELP_NAME(\"ktipbio51\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio51\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x71 0x02 0x00 0x01    // '????q???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE8 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5D, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x75 0x72 0x73 0x65 0x0D    // '??Nurse?' \n\t0x0A 0x45 0x6C 0x69 0x7A 0x61 0x20 0x64    // '?Eliza d' \n\t0x72 0x65 0x61 0x6D 0x73 0x20 0x6F 0x66    // 'reams of' \n\t0x20 0x70 0x6C 0x61 0x79 0x69 0x6E 0x67    // ' playing' \n\t0x20 0x61 0x20 0x73 0x75 0x70 0x65 0x72    // ' a super' \n\t0x20 0x6E 0x75 0x72 0x73 0x65 0x20 0x77    // ' nurse w' \n\t0x68 0x6F 0x20 0x63 0x61 0x6E 0x20 0x73    // 'ho can s' \n\t0x68 0x72 0x69 0x6E 0x6B 0x20 0x6F 0x72    // 'hrink or' \n\t0x20 0x67 0x72 0x6F 0x77 0x20 0x74 0x6F    // ' grow to' \n\t0x20 0x68 0x65 0x6C 0x70 0x20 0x67 0x65    // ' help ge' \n\t0x74 0x20 0x70 0x65 0x6F 0x70 0x6C 0x65    // 't people' \n\t0x20 0x6F 0x75 0x74 0x20 0x6F 0x66 0x20    // ' out of ' \n\t0x61 0x63 0x63 0x69 0x64 0x65 0x6E 0x74    // 'accident' \n\t0x73 0x2C 0x20 0x6F 0x72 0x20 0x66 0x65    // 's, or fe' \n\t0x65 0x6C 0x20 0x62 0x65 0x74 0x74 0x65    // 'el bette' \n\t0x72 0x20 0x77 0x68 0x65 0x6E 0x20 0x74    // 'r when t' \n\t0x68 0x65 0x79 0x27 0x72 0x65 0x20 0x68    // 'hey're h' \n\t0x75 0x72 0x74 0x2E 0x20 0x20 0x49 0x6E    // 'urt.  In' \n\t0x20 0x6F 0x6E 0x65 0x20 0x73 0x63 0x65    // ' one sce' \n\t0x6E 0x65 0x2C 0x20 0x45 0x6C 0x69 0x7A    // 'ne, Eliz' \n\t0x61 0x20 0x67 0x65 0x74 0x73 0x20 0x61    // 'a gets a' \n\t0x20 0x63 0x61 0x6C 0x6C 0x20 0x66 0x72    // ' call fr' \n\t0x6F 0x6D 0x20 0x74 0x68 0x65 0x20 0x63    // 'om the c' \n\t0x6F 0x77 0x62 0x6F 0x79 0x20 0x63 0x61    // 'owboy ca' \n\t0x66 0xE9 0x2E 0x20 0x41 0x20 0x6D 0x61    // 'f. A ma' \n\t0x6E 0x20 0x69 0x73 0x20 0x63 0x68 0x6F    // 'n is cho' \n\t0x6B 0x69 0x6E 0x67 0x20 0x6F 0x6E 0x20    // 'king on ' \n\t0x61 0x20 0x54 0x2D 0x62 0x6F 0x6E 0x65    // 'a T-bone' \n\t0x21 0x20 0x20 0x53 0x68 0x65 0x20 0x6A    // '!  She j' \n\t0x75 0x6D 0x70 0x73 0x20 0x69 0x6E 0x20    // 'umps in ' \n\t0x74 0x68 0x65 0x20 0x61 0x6D 0x62 0x75    // 'the ambu' \n\t0x6C 0x61 0x6E 0x63 0x65 0x20 0x77 0x69    // 'lance wi' \n\t0x74 0x68 0x6F 0x75 0x74 0x20 0x77 0x61    // 'thout wa' \n\t0x69 0x74 0x69 0x6E 0x67 0x20 0x66 0x6F    // 'iting fo' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x64 0x72    // 'r the dr' \n\t0x69 0x76 0x65 0x72 0x2E 0x20 0x0D 0x0A    // 'iver. ??' \n\t0x41 0x74 0x20 0x74 0x68 0x65 0x20 0x63    // 'At the c' \n\t0x61 0x66 0xE9 0x2C 0x20 0x70 0x65 0x6F    // 'af, peo' \n\t0x70 0x6C 0x65 0x20 0x61 0x72 0x65 0x20    // 'ple are ' \n\t0x63 0x72 0x6F 0x77 0x64 0x65 0x64 0x20    // 'crowded ' \n\t0x61 0x72 0x6F 0x75 0x6E 0x64 0x20 0x74    // 'around t' \n\t0x68 0x65 0x20 0x67 0x75 0x79 0x20 0x6C    // 'he guy l' \n\t0x79 0x69 0x6E 0x67 0x20 0x6F 0x6E 0x20    // 'ying on ' \n\t0x74 0x68 0x65 0x20 0x66 0x6C 0x6F 0x6F    // 'the floo' \n\t0x72 0x2E 0x20 0x45 0x6C 0x69 0x7A 0x61    // 'r. Eliza' \n\t0x20 0x73 0x68 0x72 0x69 0x6E 0x6B 0x73    // ' shrinks' \n\t0x20 0x66 0x61 0x73 0x74 0x2C 0x20 0x73    // ' fast, s' \n\t0x6E 0x65 0x61 0x6B 0x73 0x20 0x62 0x65    // 'neaks be' \n\t0x74 0x77 0x65 0x65 0x6E 0x20 0x74 0x68    // 'tween th' \n\t0x65 0x20 0x6C 0x65 0x67 0x73 0x20 0x6F    // 'e legs o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x63 0x72    // 'f the cr' \n\t0x6F 0x77 0x64 0x2C 0x20 0x61 0x6E 0x64    // 'owd, and' \n\t0x20 0x74 0x68 0x65 0x6E 0x20 0x67 0x72    // ' then gr' \n\t0x6F 0x77 0x73 0x20 0x61 0x67 0x61 0x69    // 'ows agai' \n\t0x6E 0x2E 0x20 0x20 0x4A 0x75 0x73 0x74    // 'n.  Just' \n\t0x20 0x74 0x68 0x65 0x6E 0x20 0x73 0x68    // ' then sh' \n\t0x65 0x20 0x72 0x65 0x61 0x6C 0x69 0x7A    // 'e realiz' \n\t0x65 0x73 0x20 0x74 0x68 0x65 0x20 0x93    // 'es the ' \n\t0x67 0x75 0x79 0x94 0x20 0x69 0x73 0x20    // 'guy is ' \n\t0x72 0x65 0x61 0x6C 0x6C 0x79 0x20 0x61    // 'really a' \n\t0x20 0x72 0x6F 0x62 0x6F 0x74 0x21 0x20    // ' robot! ' \n\t0x0D 0x0A 0x48 0x6F 0x77 0x20 0x77 0x69    // '??How wi' \n\t0x6C 0x6C 0x20 0x73 0x68 0x65 0x20 0x73    // 'll she s' \n\t0x61 0x76 0x65 0x20 0x61 0x20 0x72 0x6F    // 'ave a ro' \n\t0x62 0x6F 0x74 0x3F 0x20 0x20 0x4F 0x72    // 'bot?  Or' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x73 0x68    // ' will sh' \n\t0x65 0x20 0x68 0x61 0x76 0x65 0x20 0x74    // 'e have t' \n\t0x6F 0x20 0x70 0x75 0x74 0x20 0x74 0x68    // 'o put th' \n\t0x65 0x20 0x74 0x69 0x6E 0x2D 0x6D 0x61    // 'e tin-ma' \n\t0x6E 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'n in the' \n\t0x20 0x61 0x6D 0x62 0x75 0x6C 0x61 0x6E    // ' ambulan' \n\t0x63 0x65 0x20 0x61 0x6E 0x64 0x20 0x71    // 'ce and q' \n\t0x75 0x69 0x63 0x6B 0x6C 0x79 0x20 0x66    // 'uickly f' \n\t0x69 0x6E 0x64 0x20 0x68 0x69 0x73 0x20    // 'ind his ' \n\t0x69 0x6E 0x76 0x65 0x6E 0x74 0x6F 0x72    // 'inventor' \n\t0x2C 0x20 0x61 0x20 0x67 0x65 0x6E 0x69    // ', a geni' \n\t0x75 0x73 0x20 0x67 0x72 0x65 0x65 0x6E    // 'us green' \n\t0x20 0x73 0x63 0x69 0x65 0x6E 0x74 0x69    // ' scienti' \n\t0x73 0x74 0x3F                             // 'st?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5D= ktipbio52\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5D, __HELP_NAME(\"ktipbio52\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5D, __HELP_NAME(\"ktipbio52\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_68=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio52\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_68=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_68=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_68, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xBC 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1A 0x02 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_68=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_68, 0x0)\n\tBYTE\n\t0x03 0x03 0x45 0x78 0x70 0x6C 0x6F 0x72    // '??Explor' \n\t0x65 0x72 0x0D 0x0A 0x43 0x6F 0x6D 0x69    // 'er??Comi' \n\t0x6E 0x67 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'ng from ' \n\t0x61 0x20 0x73 0x6D 0x61 0x6C 0x6C 0x20    // 'a small ' \n\t0x4D 0x65 0x78 0x69 0x63 0x61 0x6E 0x20    // 'Mexican ' \n\t0x76 0x69 0x6C 0x6C 0x61 0x67 0x65 0x2C    // 'village,' \n\t0x20 0x45 0x6C 0x69 0x7A 0x61 0x20 0x64    // ' Eliza d' \n\t0x72 0x65 0x61 0x6D 0x73 0x20 0x6F 0x66    // 'reams of' \n\t0x20 0x73 0x74 0x61 0x72 0x72 0x69 0x6E    // ' starrin' \n\t0x67 0x20 0x69 0x6E 0x20 0x61 0x64 0x76    // 'g in adv' \n\t0x65 0x6E 0x74 0x75 0x72 0x65 0x20 0x6D    // 'enture m' \n\t0x6F 0x76 0x69 0x65 0x73 0x20 0x74 0x68    // 'ovies th' \n\t0x61 0x74 0x20 0x74 0x61 0x6B 0x65 0x20    // 'at take ' \n\t0x68 0x65 0x72 0x20 0x74 0x6F 0x20 0x66    // 'her to f' \n\t0x61 0x72 0x2D 0x61 0x77 0x61 0x79 0x20    // 'ar-away ' \n\t0x70 0x6C 0x61 0x63 0x65 0x73 0x20 0x77    // 'places w' \n\t0x69 0x74 0x68 0x20 0x68 0x65 0x72 0x20    // 'ith her ' \n\t0x62 0x65 0x73 0x74 0x20 0x66 0x72 0x69    // 'best fri' \n\t0x65 0x6E 0x64 0x2C 0x20 0x61 0x20 0x63    // 'end, a c' \n\t0x61 0x74 0x20 0x77 0x68 0x6F 0x20 0x6B    // 'at who k' \n\t0x6E 0x6F 0x77 0x73 0x20 0x73 0x65 0x63    // 'nows sec' \n\t0x72 0x65 0x74 0x73 0x20 0x74 0x6F 0x20    // 'rets to ' \n\t0x75 0x6E 0x6C 0x6F 0x63 0x6B 0x69 0x6E    // 'unlockin' \n\t0x67 0x20 0x61 0x6C 0x6C 0x20 0x6B 0x69    // 'g all ki' \n\t0x6E 0x64 0x73 0x20 0x6F 0x66 0x20 0x74    // 'nds of t' \n\t0x72 0x65 0x61 0x73 0x75 0x72 0x65 0x73    // 'reasures' \n\t0x2E 0x20 0x0D 0x0A 0x45 0x6C 0x69 0x7A    // '. ??Eliz' \n\t0x61 0x20 0x61 0x6E 0x64 0x20 0x68 0x65    // 'a and he' \n\t0x72 0x20 0x63 0x61 0x74 0x20 0x66 0x6C    // 'r cat fl' \n\t0x79 0x20 0x6F 0x66 0x66 0x20 0x74 0x6F    // 'y off to' \n\t0x20 0x61 0x20 0x64 0x69 0x73 0x74 0x61    // ' a dista' \n\t0x6E 0x74 0x20 0x6D 0x6F 0x75 0x6E 0x74    // 'nt mount' \n\t0x61 0x69 0x6E 0x20 0x77 0x68 0x65 0x72    // 'ain wher' \n\t0x65 0x20 0x74 0x68 0x65 0x72 0x65 0x20    // 'e there ' \n\t0x69 0x73 0x20 0x73 0x61 0x69 0x64 0x20    // 'is said ' \n\t0x74 0x6F 0x20 0x62 0x65 0x20 0x61 0x20    // 'to be a ' \n\t0x63 0x61 0x62 0x69 0x6E 0x20 0x77 0x69    // 'cabin wi' \n\t0x74 0x68 0x20 0x74 0x72 0x65 0x61 0x73    // 'th treas' \n\t0x75 0x72 0x65 0x20 0x69 0x6E 0x73 0x69    // 'ure insi' \n\t0x64 0x65 0x2E 0x20 0x20 0x45 0x6C 0x69    // 'de.  Eli' \n\t0x7A 0x61 0x20 0x65 0x6E 0x74 0x65 0x72    // 'za enter' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x63 0x61    // 's the ca' \n\t0x62 0x69 0x6E 0x20 0x61 0x6E 0x64 0x20    // 'bin and ' \n\t0x73 0x65 0x61 0x72 0x63 0x68 0x65 0x73    // 'searches' \n\t0x20 0x65 0x76 0x65 0x72 0x79 0x77 0x68    // ' everywh' \n\t0x65 0x72 0x65 0x2E 0x20 0x20 0x54 0x68    // 'ere.  Th' \n\t0x65 0x6E 0x20 0x74 0x68 0x65 0x20 0x63    // 'en the c' \n\t0x61 0x74 0x20 0x73 0x74 0x72 0x65 0x74    // 'at stret' \n\t0x63 0x68 0x65 0x73 0x20 0x74 0x6F 0x77    // 'ches tow' \n\t0x61 0x72 0x64 0x20 0x74 0x68 0x65 0x20    // 'ard the ' \n\t0x6C 0x61 0x64 0x64 0x65 0x72 0x2E 0x20    // 'ladder. ' \n\t0x20 0x45 0x6C 0x69 0x7A 0x61 0x20 0x77    // ' Eliza w' \n\t0x61 0x6C 0x6B 0x73 0x20 0x73 0x6C 0x6F    // 'alks slo' \n\t0x77 0x6C 0x79 0x20 0x74 0x6F 0x20 0x74    // 'wly to t' \n\t0x68 0x65 0x20 0x6C 0x61 0x64 0x64 0x65    // 'he ladde' \n\t0x72 0x20 0x61 0x6E 0x64 0x20 0x68 0x65    // 'r and he' \n\t0x61 0x72 0x73 0x20 0x74 0x65 0x72 0x72    // 'ars terr' \n\t0x69 0x62 0x6C 0x65 0x20 0x6E 0x6F 0x69    // 'ible noi' \n\t0x73 0x65 0x73 0x2E 0x20 0x20 0x41 0x20    // 'ses.  A ' \n\t0x6D 0x61 0x73 0x6B 0x20 0x69 0x73 0x20    // 'mask is ' \n\t0x67 0x75 0x61 0x72 0x64 0x69 0x6E 0x67    // 'guarding' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x72 0x65    // ' the tre' \n\t0x61 0x73 0x75 0x72 0x65 0x20 0x63 0x68    // 'asure ch' \n\t0x65 0x73 0x74 0x20 0x61 0x6E 0x64 0x20    // 'est and ' \n\t0x77 0x61 0x72 0x6E 0x69 0x6E 0x67 0x20    // 'warning ' \n\t0x68 0x65 0x72 0x20 0x74 0x6F 0x20 0x73    // 'her to s' \n\t0x74 0x61 0x79 0x20 0x61 0x77 0x61 0x79    // 'tay away' \n\t0x2E 0x20 0x0D 0x0A 0x48 0x6F 0x77 0x20    // '. ??How ' \n\t0x77 0x69 0x6C 0x6C 0x20 0x45 0x6C 0x69    // 'will Eli' \n\t0x7A 0x61 0x20 0x67 0x65 0x74 0x20 0x70    // 'za get p' \n\t0x61 0x73 0x74 0x20 0x74 0x68 0x65 0x20    // 'ast the ' \n\t0x6D 0x61 0x73 0x6B 0x20 0x74 0x6F 0x20    // 'mask to ' \n\t0x74 0x68 0x65 0x20 0x74 0x72 0x65 0x61    // 'the trea' \n\t0x73 0x75 0x72 0x65 0x3F 0x20 0x20 0x41    // 'sure?  A' \n\t0x6E 0x64 0x20 0x68 0x6F 0x77 0x20 0x77    // 'nd how w' \n\t0x69 0x6C 0x6C 0x20 0x73 0x68 0x65 0x20    // 'ill she ' \n\t0x70 0x65 0x72 0x73 0x75 0x61 0x64 0x65    // 'persuade' \n\t0x20 0x68 0x65 0x72 0x20 0x74 0x65 0x72    // ' her ter' \n\t0x72 0x69 0x66 0x69 0x65 0x64 0x20 0x63    // 'rified c' \n\t0x61 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'at to co' \n\t0x6D 0x65 0x20 0x6F 0x75 0x74 0x20 0x66    // 'me out f' \n\t0x72 0x6F 0x6D 0x20 0x62 0x65 0x68 0x69    // 'rom behi' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x20 0x74    // 'nd the t' \n\t0x6F 0x74 0x65 0x6D 0x20 0x70 0x6F 0x6C    // 'otem pol' \n\t0x65 0x20 0x61 0x6E 0x64 0x20 0x6F 0x70    // 'e and op' \n\t0x65 0x6E 0x20 0x74 0x68 0x65 0x20 0x74    // 'en the t' \n\t0x72 0x65 0x61 0x73 0x75 0x72 0x65 0x20    // 'reasure ' \n\t0x63 0x68 0x65 0x73 0x74 0x3F              // 'chest?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5E= ktipbio53\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5E, __HELP_NAME(\"ktipbio53\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5E, __HELP_NAME(\"ktipbio53\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio53\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8F 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5E, 0x0)\n\tBYTE\n\t0x03 0x03 0x6D 0x69 0x73 0x75 0x6E 0x64    // '??misund' \n\t0x65 0x72 0x73 0x74 0x6F 0x6F 0x64 0x0D    // 'erstood?' \n\t0x0A 0x50 0x65 0x6F 0x70 0x6C 0x65 0x20    // '?People ' \n\t0x64 0x6F 0x6E 0x92 0x74 0x20 0x75 0x6E    // 'dont un' \n\t0x64 0x65 0x72 0x73 0x74 0x61 0x6E 0x64    // 'derstand' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x46 0x72    // ' that Fr' \n\t0x61 0x6E 0x6B 0x20 0x72 0x65 0x61 0x6C    // 'ank real' \n\t0x6C 0x79 0x20 0x69 0x73 0x6E 0x92 0x74    // 'ly isnt' \n\t0x20 0x61 0x20 0x74 0x6F 0x75 0x67 0x68    // ' a tough' \n\t0x20 0x67 0x75 0x79 0x2E 0x20 0x20 0x42    // ' guy.  B' \n\t0x75 0x74 0x20 0x46 0x72 0x61 0x6E 0x6B    // 'ut Frank' \n\t0x20 0x68 0x61 0x73 0x20 0x75 0x73 0x65    // ' has use' \n\t0x64 0x20 0x74 0x68 0x69 0x73 0x20 0x6D    // 'd this m' \n\t0x69 0x73 0x75 0x6E 0x64 0x65 0x72 0x73    // 'isunders' \n\t0x74 0x61 0x6E 0x64 0x69 0x6E 0x67 0x20    // 'tanding ' \n\t0x74 0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20    // 'to make ' \n\t0x6C 0x6F 0x74 0x73 0x20 0x6F 0x66 0x20    // 'lots of ' \n\t0x6D 0x6F 0x6E 0x65 0x79 0x20 0x61 0x63    // 'money ac' \n\t0x74 0x69 0x6E 0x67 0x2E 0x20 0x20 0x57    // 'ting.  W' \n\t0x68 0x65 0x6E 0x20 0x68 0x65 0x20 0x77    // 'hen he w' \n\t0x61 0x73 0x20 0x32 0x30 0x2C 0x20 0x68    // 'as 20, h' \n\t0x65 0x20 0x74 0x72 0x69 0x65 0x64 0x20    // 'e tried ' \n\t0x6F 0x75 0x74 0x20 0x66 0x6F 0x72 0x20    // 'out for ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x70 0x61    // 'movie pa' \n\t0x72 0x74 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'rt, and ' \n\t0x65 0x76 0x65 0x72 0x79 0x6F 0x6E 0x65    // 'everyone' \n\t0x20 0x73 0x61 0x69 0x64 0x20 0x68 0x6F    // ' said ho' \n\t0x77 0x20 0x6D 0x75 0x63 0x68 0x20 0x68    // 'w much h' \n\t0x65 0x20 0x6C 0x6F 0x6F 0x6B 0x65 0x64    // 'e looked' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x61 0x20    // ' like a ' \n\t0x62 0x6F 0x64 0x79 0x20 0x67 0x75 0x61    // 'body gua' \n\t0x72 0x64 0x20 0x69 0x6E 0x20 0x61 0x20    // 'rd in a ' \n\t0x67 0x61 0x6E 0x67 0x73 0x74 0x65 0x72    // 'gangster' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E 0x20    // ' movie. ' \n\t0x20 0x53 0x69 0x6E 0x63 0x65 0x20 0x74    // ' Since t' \n\t0x68 0x65 0x6E 0x2C 0x20 0x68 0x65 0x92    // 'hen, he' \n\t0x73 0x20 0x70 0x6C 0x61 0x79 0x65 0x64    // 's played' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x70 0x61    // ' that pa' \n\t0x72 0x74 0x20 0x69 0x6E 0x20 0x61 0x20    // 'rt in a ' \n\t0x64 0x6F 0x7A 0x65 0x6E 0x20 0x6D 0x6F    // 'dozen mo' \n\t0x76 0x69 0x65 0x73 0x2C 0x20 0x62 0x75    // 'vies, bu' \n\t0x74 0x20 0x6E 0x6F 0x77 0x20 0x69 0x74    // 't now it' \n\t0x27 0x73 0x20 0x74 0x6F 0x6F 0x20 0x65    // ''s too e' \n\t0x61 0x73 0x79 0x2E 0x20 0x20 0x48 0x65    // 'asy.  He' \n\t0x20 0x77 0x61 0x6E 0x74 0x73 0x20 0x70    // ' wants p' \n\t0x61 0x72 0x74 0x73 0x20 0x77 0x68 0x65    // 'arts whe' \n\t0x72 0x65 0x20 0x68 0x65 0x20 0x63 0x61    // 're he ca' \n\t0x6E 0x20 0x64 0x6F 0x20 0x73 0x6F 0x6D    // 'n do som' \n\t0x65 0x20 0x93 0x72 0x65 0x61 0x6C 0x94    // 'e real' \n\t0x20 0x61 0x63 0x74 0x69 0x6E 0x67 0x2E    // ' acting.' \n\t0x20                                       // ' ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5F= ktipbio54\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5F, __HELP_NAME(\"ktipbio54\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5F, __HELP_NAME(\"ktipbio54\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio54\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xDE 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3D 0x01 0x00 0x82    // '????=??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5F, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x75 0x69 0x6E 0x65 0x61    // '??Guinea' \n\t0x20 0x50 0x69 0x67 0x0D 0x0A 0x4A 0x75    // ' Pig??Ju' \n\t0x73 0x74 0x20 0x66 0x6F 0x72 0x20 0x66    // 'st for f' \n\t0x75 0x6E 0x2C 0x20 0x46 0x72 0x61 0x6E    // 'un, Fran' \n\t0x6B 0x20 0x77 0x61 0x6E 0x74 0x73 0x20    // 'k wants ' \n\t0x74 0x6F 0x20 0x62 0x65 0x20 0x74 0x68    // 'to be th' \n\t0x65 0x20 0x67 0x75 0x79 0x20 0x77 0x68    // 'e guy wh' \n\t0x6F 0x20 0x69 0x73 0x20 0x61 0x6C 0x77    // 'o is alw' \n\t0x61 0x79 0x73 0x20 0x74 0x68 0x65 0x20    // 'ays the ' \n\t0x66 0x69 0x72 0x73 0x74 0x20 0x74 0x6F    // 'first to' \n\t0x20 0x74 0x72 0x79 0x20 0x74 0x68 0x65    // ' try the' \n\t0x20 0x6C 0x61 0x74 0x65 0x73 0x74 0x20    // ' latest ' \n\t0x62 0x75 0x62 0x62 0x6C 0x69 0x6E 0x67    // 'bubbling' \n\t0x20 0x64 0x72 0x69 0x6E 0x6B 0x20 0x63    // ' drink c' \n\t0x6F 0x6F 0x6B 0x65 0x64 0x20 0x75 0x70    // 'ooked up' \n\t0x20 0x62 0x79 0x20 0x74 0x68 0x65 0x20    // ' by the ' \n\t0x77 0x69 0x66 0x65 0x20 0x6F 0x66 0x20    // 'wife of ' \n\t0x74 0x68 0x65 0x20 0x65 0x76 0x69 0x6C    // 'the evil' \n\t0x20 0x6F 0x77 0x6E 0x65 0x72 0x20 0x6F    // ' owner o' \n\t0x66 0x20 0x61 0x20 0x68 0x61 0x75 0x6E    // 'f a haun' \n\t0x74 0x65 0x64 0x20 0x68 0x6F 0x75 0x73    // 'ted hous' \n\t0x65 0x2E 0x20 0x20 0x54 0x68 0x65 0x20    // 'e.  The ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x77 0x6F    // 'scene wo' \n\t0x75 0x6C 0x64 0x20 0x73 0x74 0x61 0x72    // 'uld star' \n\t0x74 0x20 0x6F 0x75 0x74 0x20 0x77 0x69    // 't out wi' \n\t0x74 0x68 0x20 0x46 0x72 0x61 0x6E 0x6B    // 'th Frank' \n\t0x20 0x6C 0x6F 0x6F 0x6B 0x69 0x6E 0x67    // ' looking' \n\t0x20 0x6E 0x6F 0x72 0x6D 0x61 0x6C 0x2E    // ' normal.' \n\t0x20 0x20 0x54 0x68 0x65 0x6E 0x20 0x68    // '  Then h' \n\t0x65 0x27 0x64 0x20 0x67 0x65 0x74 0x20    // 'e'd get ' \n\t0x61 0x20 0x77 0x68 0x69 0x66 0x66 0x20    // 'a whiff ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x64    // 'of the d' \n\t0x72 0x69 0x6E 0x6B 0x2C 0x20 0x61 0x6E    // 'rink, an' \n\t0x64 0x97 0x62 0x61 0x6D 0x21 0x97 0x74    // 'dbam!t' \n\t0x75 0x72 0x6E 0x20 0x67 0x72 0x65 0x65    // 'urn gree' \n\t0x6E 0x2C 0x20 0x66 0x61 0x69 0x6E 0x74    // 'n, faint' \n\t0x2C 0x20 0x61 0x6E 0x64 0x20 0x66 0x61    // ', and fa' \n\t0x6C 0x6C 0x20 0x66 0x6C 0x61 0x74 0x20    // 'll flat ' \n\t0x6F 0x6E 0x20 0x68 0x69 0x73 0x20 0x66    // 'on his f' \n\t0x61 0x63 0x65 0x2E 0x20 0x0D 0x0A 0x54    // 'ace. ??T' \n\t0x68 0x65 0x20 0x70 0x72 0x6F 0x62 0x6C    // 'he probl' \n\t0x65 0x6D 0x20 0x69 0x73 0x2C 0x20 0x46    // 'em is, F' \n\t0x72 0x61 0x6E 0x6B 0x20 0x68 0x61 0x73    // 'rank has' \n\t0x6E 0x92 0x74 0x20 0x66 0x69 0x67 0x75    // 'nt figu' \n\t0x72 0x65 0x64 0x20 0x6F 0x75 0x74 0x20    // 'red out ' \n\t0x68 0x6F 0x77 0x20 0x68 0x65 0x92 0x64    // 'how hed' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x20    // ' change ' \n\t0x62 0x61 0x63 0x6B 0x20 0x74 0x6F 0x20    // 'back to ' \n\t0x68 0x69 0x73 0x20 0x6E 0x6F 0x72 0x6D    // 'his norm' \n\t0x61 0x6C 0x20 0x63 0x6F 0x6C 0x6F 0x72    // 'al color' \n\t0x2E 0x20 0x20 0x57 0x6F 0x75 0x6C 0x64    // '.  Would' \n\t0x20 0x68 0x65 0x20 0x63 0x68 0x61 0x6E    // ' he chan' \n\t0x67 0x65 0x20 0x62 0x61 0x63 0x6B 0x20    // 'ge back ' \n\t0x77 0x68 0x65 0x6E 0x20 0x68 0x65 0x20    // 'when he ' \n\t0x73 0x65 0x65 0x73 0x20 0x6F 0x6E 0x65    // 'sees one' \n\t0x20 0x6F 0x66 0x20 0x68 0x69 0x73 0x20    // ' of his ' \n\t0x66 0x72 0x69 0x65 0x6E 0x64 0x73 0x3F    // 'friends?' \n\t0x20 0x20 0x4F 0x72 0x20 0x6D 0x61 0x79    // '  Or may' \n\t0x62 0x65 0x20 0x61 0x20 0x67 0x69 0x72    // 'be a gir' \n\t0x6C 0x66 0x72 0x69 0x65 0x6E 0x64 0x3F    // 'lfriend?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_60= ktipbio55\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_60, __HELP_NAME(\"ktipbio55\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_60, __HELP_NAME(\"ktipbio55\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_61=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_60, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio55\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_61=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_60, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_61=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_61, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xED 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5C 0x01 0x00 0x82    // '????\\??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_61=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_61, 0x0)\n\tBYTE\n\t0x03 0x03 0x56 0x69 0x6C 0x6C 0x61 0x69    // '??Villai' \n\t0x6E 0x0D 0x0A 0x46 0x72 0x61 0x6E 0x6B    // 'n??Frank' \n\t0x73 0x20 0x6B 0x6E 0x6F 0x77 0x73 0x20    // 's knows ' \n\t0x68 0x65 0x20 0x63 0x61 0x6E 0x20 0x62    // 'he can b' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x62 0x65    // 'e the be' \n\t0x73 0x74 0x20 0x62 0x61 0x64 0x20 0x67    // 'st bad g' \n\t0x75 0x79 0x20 0x65 0x76 0x65 0x72 0x2E    // 'uy ever.' \n\t0x20 0x48 0x65 0x92 0x73 0x20 0x73 0x68    // ' Hes sh' \n\t0x6F 0x72 0x74 0x2C 0x20 0x73 0x6F 0x20    // 'ort, so ' \n\t0x68 0x65 0x20 0x63 0x61 0x6E 0x20 0x62    // 'he can b' \n\t0x65 0x20 0x76 0x65 0x72 0x79 0x20 0x73    // 'e very s' \n\t0x6E 0x65 0x61 0x6B 0x79 0x20 0x61 0x6E    // 'neaky an' \n\t0x64 0x20 0x71 0x75 0x69 0x63 0x6B 0x2C    // 'd quick,' \n\t0x20 0x65 0x73 0x70 0x65 0x63 0x69 0x61    // ' especia' \n\t0x6C 0x6C 0x79 0x20 0x77 0x68 0x65 0x6E    // 'lly when' \n\t0x20 0x68 0x65 0x20 0x77 0x65 0x61 0x72    // ' he wear' \n\t0x73 0x20 0x68 0x69 0x73 0x20 0x76 0x69    // 's his vi' \n\t0x6C 0x6C 0x61 0x69 0x6E 0x92 0x73 0x20    // 'llains ' \n\t0x76 0x65 0x73 0x74 0x2E 0x20 0x20 0x42    // 'vest.  B' \n\t0x75 0x74 0x20 0x68 0x65 0x27 0x64 0x20    // 'ut he'd ' \n\t0x6F 0x6E 0x6C 0x79 0x20 0x62 0x65 0x20    // 'only be ' \n\t0x61 0x20 0x62 0x61 0x64 0x20 0x67 0x75    // 'a bad gu' \n\t0x79 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'y to the' \n\t0x20 0x62 0x61 0x64 0x20 0x67 0x75 0x79    // ' bad guy' \n\t0x73 0x2C 0x20 0x73 0x69 0x6E 0x63 0x65    // 's, since' \n\t0x20 0x68 0x65 0x92 0x64 0x20 0x61 0x6C    // ' hed al' \n\t0x77 0x61 0x79 0x73 0x20 0x62 0x65 0x20    // 'ways be ' \n\t0x70 0x72 0x6F 0x74 0x65 0x63 0x74 0x69    // 'protecti' \n\t0x6E 0x67 0x20 0x6B 0x69 0x64 0x73 0x20    // 'ng kids ' \n\t0x61 0x67 0x61 0x69 0x6E 0x73 0x74 0x20    // 'against ' \n\t0x62 0x75 0x6C 0x6C 0x69 0x65 0x73 0x2E    // 'bullies.' \n\t0x20 0x20 0x48 0x65 0x20 0x77 0x6F 0x75    // '  He wou' \n\t0x6C 0x64 0x20 0x77 0x65 0x61 0x72 0x20    // 'ld wear ' \n\t0x68 0x69 0x73 0x20 0x76 0x65 0x73 0x74    // 'his vest' \n\t0x20 0x61 0x6E 0x64 0x20 0x68 0x61 0x6E    // ' and han' \n\t0x67 0x20 0x6F 0x75 0x74 0x20 0x61 0x72    // 'g out ar' \n\t0x6F 0x75 0x6E 0x64 0x20 0x74 0x68 0x65    // 'ound the' \n\t0x20 0x6D 0x61 0x6C 0x6C 0x2C 0x20 0x73    // ' mall, s' \n\t0x74 0x6F 0x70 0x70 0x69 0x6E 0x67 0x20    // 'topping ' \n\t0x70 0x75 0x6E 0x6B 0x73 0x20 0x62 0x65    // 'punks be' \n\t0x66 0x6F 0x72 0x65 0x20 0x74 0x68 0x65    // 'fore the' \n\t0x79 0x20 0x65 0x76 0x65 0x72 0x20 0x77    // 'y ever w' \n\t0x65 0x6E 0x74 0x20 0x69 0x6E 0x73 0x69    // 'ent insi' \n\t0x64 0x65 0x2E 0x20 0x0D 0x0A 0x42 0x75    // 'de. ??Bu' \n\t0x74 0x20 0x77 0x68 0x61 0x74 0x20 0x69    // 't what i' \n\t0x66 0x20 0x61 0x20 0x62 0x75 0x6E 0x63    // 'f a bunc' \n\t0x68 0x20 0x6F 0x66 0x20 0x74 0x68 0x75    // 'h of thu' \n\t0x67 0x73 0x20 0x73 0x68 0x6F 0x77 0x65    // 'gs showe' \n\t0x64 0x20 0x75 0x70 0x3F 0x20 0x20 0x57    // 'd up?  W' \n\t0x6F 0x75 0x6C 0x64 0x20 0x68 0x69 0x73    // 'ould his' \n\t0x20 0x76 0x65 0x73 0x74 0x20 0x67 0x69    // ' vest gi' \n\t0x76 0x65 0x20 0x68 0x69 0x6D 0x20 0x73    // 've him s' \n\t0x70 0x65 0x63 0x69 0x61 0x6C 0x20 0x70    // 'pecial p' \n\t0x6F 0x77 0x65 0x72 0x73 0x20 0x74 0x6F    // 'owers to' \n\t0x20 0x73 0x74 0x6F 0x70 0x20 0x74 0x68    // ' stop th' \n\t0x65 0x6D 0x3F 0x20 0x41 0x6E 0x64 0x20    // 'em? And ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x68 0x69    // 'would hi' \n\t0x73 0x20 0x73 0x69 0x6E 0x67 0x69 0x6E    // 's singin' \n\t0x67 0x20 0x68 0x65 0x6C 0x70 0x20 0x68    // 'g help h' \n\t0x69 0x6D 0x20 0x6F 0x75 0x74 0x20 0x6F    // 'im out o' \n\t0x66 0x20 0x61 0x20 0x74 0x69 0x67 0x68    // 'f a tigh' \n\t0x74 0x20 0x73 0x70 0x6F 0x74 0x3F         // 't spot?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_61= ktipbio56\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_61, __HELP_NAME(\"ktipbio56\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_61, __HELP_NAME(\"ktipbio56\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_60=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_61, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio56\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_60=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_61, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_60=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_60, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x07 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x80 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_60=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_60, 0x0)\n\tBYTE\n\t0x03 0x03 0x4A 0x75 0x6E 0x67 0x6C 0x65    // '??Jungle' \n\t0x20 0x4D 0x61 0x6E 0x0D 0x0A 0x57 0x68    // ' Man??Wh' \n\t0x61 0x74 0x20 0x69 0x66 0x20 0x46 0x72    // 'at if Fr' \n\t0x61 0x6E 0x6B 0x20 0x77 0x65 0x72 0x65    // 'ank were' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x6F 0x6F    // ' the coo' \n\t0x6C 0x65 0x73 0x74 0x20 0x6A 0x75 0x6E    // 'lest jun' \n\t0x67 0x6C 0x65 0x20 0x6D 0x61 0x6E 0x20    // 'gle man ' \n\t0x69 0x6E 0x20 0x5A 0x61 0x6D 0x62 0x69    // 'in Zambi' \n\t0x61 0x2C 0x20 0x41 0x66 0x72 0x69 0x63    // 'a, Afric' \n\t0x61 0x3F 0x20 0x20 0x4F 0x6E 0x65 0x20    // 'a?  One ' \n\t0x64 0x61 0x79 0x2C 0x20 0x68 0x65 0x20    // 'day, he ' \n\t0x61 0x6E 0x64 0x20 0x68 0x69 0x73 0x20    // 'and his ' \n\t0x64 0x6F 0x67 0x20 0x77 0x6F 0x75 0x6C    // 'dog woul' \n\t0x64 0x20 0x67 0x65 0x74 0x20 0x75 0x70    // 'd get up' \n\t0x20 0x65 0x61 0x72 0x6C 0x79 0x20 0x61    // ' early a' \n\t0x6E 0x64 0x20 0x65 0x78 0x70 0x6C 0x6F    // 'nd explo' \n\t0x72 0x65 0x20 0x61 0x6E 0x6F 0x74 0x68    // 're anoth' \n\t0x65 0x72 0x20 0x76 0x69 0x6C 0x6C 0x61    // 'er villa' \n\t0x67 0x65 0x2E 0x20 0x20 0x54 0x68 0x65    // 'ge.  The' \n\t0x79 0x27 0x64 0x20 0x66 0x69 0x6E 0x64    // 'y'd find' \n\t0x20 0x61 0x20 0x77 0x6F 0x6F 0x64 0x65    // ' a woode' \n\t0x6E 0x20 0x67 0x61 0x74 0x65 0x77 0x61    // 'n gatewa' \n\t0x79 0x20 0x62 0x65 0x66 0x6F 0x72 0x65    // 'y before' \n\t0x20 0x74 0x68 0x65 0x20 0x65 0x6E 0x74    // ' the ent' \n\t0x72 0x61 0x6E 0x63 0x65 0x20 0x74 0x6F    // 'rance to' \n\t0x20 0x61 0x20 0x63 0x61 0x62 0x69 0x6E    // ' a cabin' \n\t0x2E 0x20 0x20 0x54 0x68 0x65 0x20 0x63    // '.  The c' \n\t0x61 0x62 0x69 0x6E 0x20 0x6D 0x69 0x67    // 'abin mig' \n\t0x68 0x74 0x20 0x62 0x65 0x20 0x65 0x6D    // 'ht be em' \n\t0x70 0x74 0x79 0x20 0x61 0x6E 0x64 0x20    // 'pty and ' \n\t0x73 0x69 0x6C 0x65 0x6E 0x74 0x2C 0x20    // 'silent, ' \n\t0x62 0x75 0x74 0x20 0x6F 0x6E 0x20 0x61    // 'but on a' \n\t0x20 0x74 0x61 0x62 0x6C 0x65 0x2C 0x20    // ' table, ' \n\t0x61 0x20 0x63 0x61 0x6E 0x64 0x6C 0x65    // 'a candle' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x62    // ' would b' \n\t0x65 0x20 0x62 0x75 0x72 0x6E 0x69 0x6E    // 'e burnin' \n\t0x67 0x20 0x6E 0x65 0x78 0x74 0x20 0x74    // 'g next t' \n\t0x6F 0x20 0x61 0x20 0x6D 0x61 0x70 0x2E    // 'o a map.' \n\t0x20 0x20 0x54 0x68 0x65 0x72 0x65 0x20    // '  There ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x62 0x65    // 'would be' \n\t0x20 0x61 0x20 0x62 0x69 0x67 0x2C 0x20    // ' a big, ' \n\t0x72 0x65 0x64 0x20 0x58 0x20 0x6F 0x6E    // 'red X on' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x61 0x70    // ' the map' \n\t0x2C 0x20 0x6E 0x65 0x61 0x72 0x20 0x74    // ', near t' \n\t0x68 0x65 0x20 0x43 0x68 0x61 0x6D 0x62    // 'he Chamb' \n\t0x65 0x7A 0x69 0x20 0x72 0x69 0x76 0x65    // 'ezi rive' \n\t0x72 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'r to the' \n\t0x20 0x6E 0x6F 0x72 0x74 0x68 0x2E 0x20    // ' north. ' \n\t0x0D 0x0A 0x57 0x68 0x79 0x20 0x77 0x61    // '??Why wa' \n\t0x73 0x20 0x74 0x68 0x69 0x73 0x20 0x73    // 's this s' \n\t0x70 0x6F 0x74 0x20 0x6D 0x61 0x72 0x6B    // 'pot mark' \n\t0x65 0x64 0x3F 0x20 0x20 0x57 0x68 0x61    // 'ed?  Wha' \n\t0x74 0x20 0x68 0x61 0x70 0x70 0x65 0x6E    // 't happen' \n\t0x65 0x64 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ed to th' \n\t0x65 0x20 0x70 0x65 0x72 0x73 0x6F 0x6E    // 'e person' \n\t0x20 0x77 0x68 0x6F 0x20 0x6C 0x69 0x76    // ' who liv' \n\t0x65 0x64 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ed in th' \n\t0x65 0x20 0x63 0x61 0x62 0x69 0x6E 0x3F    // 'e cabin?' \n\t0x20 0x20 0x48 0x6F 0x77 0x20 0x77 0x6F    // '  How wo' \n\t0x75 0x6C 0x64 0x20 0x46 0x72 0x61 0x6E    // 'uld Fran' \n\t0x6B 0x20 0x61 0x6E 0x64 0x20 0x68 0x69    // 'k and hi' \n\t0x73 0x20 0x64 0x6F 0x67 0x20 0x73 0x6E    // 's dog sn' \n\t0x69 0x66 0x66 0x20 0x6F 0x75 0x74 0x20    // 'iff out ' \n\t0x74 0x68 0x65 0x73 0x65 0x20 0x6D 0x79    // 'these my' \n\t0x73 0x74 0x65 0x72 0x69 0x65 0x73 0x3F    // 'steries?' \n\t0x20                                       // ' ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_62= ktipbio57\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_62, __HELP_NAME(\"ktipbio57\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_62, __HELP_NAME(\"ktipbio57\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_30=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_62, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio57\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_30=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_62, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_30=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD2 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0A 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_30=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x03 0x03 0x63 0x72 0x61 0x77 0x6C 0x69    // '??crawli' \n\t0x6E 0x67 0x0D 0x0A 0x53 0x6F 0x20 0x6A    // 'ng??So j' \n\t0x75 0x73 0x74 0x20 0x68 0x6F 0x77 0x20    // 'ust how ' \n\t0x64 0x6F 0x65 0x73 0x20 0x47 0x61 0x62    // 'does Gab' \n\t0x72 0x69 0x65 0x6C 0x20 0x6B 0x65 0x65    // 'riel kee' \n\t0x70 0x20 0x66 0x72 0x6F 0x6D 0x20 0x67    // 'p from g' \n\t0x65 0x74 0x74 0x69 0x6E 0x67 0x20 0x6B    // 'etting k' \n\t0x69 0x64 0x6E 0x61 0x70 0x70 0x65 0x64    // 'idnapped' \n\t0x20 0x6F 0x72 0x20 0x6D 0x75 0x67 0x67    // ' or mugg' \n\t0x65 0x64 0x20 0x77 0x68 0x65 0x6E 0x20    // 'ed when ' \n\t0x68 0x65 0x92 0x73 0x20 0x61 0x74 0x20    // 'hes at ' \n\t0x74 0x68 0x65 0x20 0x6D 0x61 0x6C 0x6C    // 'the mall' \n\t0x20 0x6F 0x72 0x20 0x62 0x65 0x61 0x63    // ' or beac' \n\t0x68 0x3F 0x20 0x20 0x57 0x68 0x65 0x6E    // 'h?  When' \n\t0x20 0x68 0x65 0x20 0x77 0x61 0x73 0x20    // ' he was ' \n\t0x79 0x6F 0x75 0x6E 0x67 0x65 0x72 0x2C    // 'younger,' \n\t0x20 0x68 0x65 0x20 0x6C 0x65 0x61 0x72    // ' he lear' \n\t0x6E 0x65 0x64 0x20 0x74 0x6F 0x20 0x73    // 'ned to s' \n\t0x70 0x69 0x6E 0x20 0x61 0x72 0x6F 0x75    // 'pin arou' \n\t0x6E 0x64 0x20 0x73 0x6F 0x20 0x66 0x61    // 'nd so fa' \n\t0x73 0x74 0x20 0x74 0x68 0x61 0x74 0x20    // 'st that ' \n\t0x6E 0x6F 0x20 0x6F 0x6E 0x65 0x20 0x63    // 'no one c' \n\t0x6F 0x75 0x6C 0x64 0x20 0x74 0x6F 0x75    // 'ould tou' \n\t0x63 0x68 0x20 0x68 0x69 0x6D 0x2E 0x20    // 'ch him. ' \n\t0x20 0x41 0x66 0x74 0x65 0x72 0x20 0x68    // ' After h' \n\t0x65 0x20 0x6C 0x65 0x61 0x72 0x6E 0x65    // 'e learne' \n\t0x64 0x20 0x74 0x6F 0x20 0x77 0x61 0x6C    // 'd to wal' \n\t0x6B 0x2C 0x20 0x68 0x65 0x20 0x73 0x74    // 'k, he st' \n\t0x69 0x6C 0x6C 0x20 0x63 0x6F 0x75 0x6C    // 'ill coul' \n\t0x64 0x20 0x73 0x70 0x69 0x6E 0x20 0x66    // 'd spin f' \n\t0x61 0x73 0x74 0x20 0x69 0x66 0x20 0x68    // 'ast if h' \n\t0x65 0x20 0x77 0x61 0x73 0x20 0x69 0x6E    // 'e was in' \n\t0x20 0x74 0x72 0x6F 0x75 0x62 0x6C 0x65    // ' trouble' \n\t0x2E 0x20 0x20 0x48 0x65 0x20 0x64 0x69    // '.  He di' \n\t0x64 0x20 0x74 0x68 0x61 0x74 0x20 0x61    // 'd that a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x62 0x65    // 't the be' \n\t0x61 0x63 0x68 0x20 0x6F 0x6E 0x65 0x20    // 'ach one ' \n\t0x61 0x66 0x74 0x65 0x72 0x6E 0x6F 0x6F    // 'afternoo' \n\t0x6E 0x2C 0x20 0x61 0x6E 0x64 0x20 0x73    // 'n, and s' \n\t0x70 0x72 0x61 0x79 0x65 0x64 0x20 0x73    // 'prayed s' \n\t0x61 0x6E 0x64 0x20 0x61 0x6C 0x6C 0x20    // 'and all ' \n\t0x6F 0x76 0x65 0x72 0x20 0x4D 0x63 0x5A    // 'over McZ' \n\t0x65 0x65 0x2C 0x20 0x74 0x68 0x65 0x20    // 'ee, the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x64 0x69    // 'movie di' \n\t0x72 0x65 0x63 0x74 0x6F 0x72 0x2E 0x20    // 'rector. ' \n\t0x20 0x4D 0x63 0x5A 0x65 0x65 0x20 0x72    // ' McZee r' \n\t0x65 0x61 0x6C 0x69 0x7A 0x65 0x64 0x20    // 'ealized ' \n\t0x74 0x68 0x69 0x73 0x20 0x77 0x61 0x73    // 'this was' \n\t0x20 0x72 0x61 0x77 0x2C 0x20 0x79 0x6F    // ' raw, yo' \n\t0x75 0x6E 0x67 0x20 0x74 0x61 0x6C 0x65    // 'ung tale' \n\t0x6E 0x74 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'nt, and ' \n\t0x63 0x6F 0x6E 0x76 0x69 0x6E 0x63 0x65    // 'convince' \n\t0x64 0x20 0x47 0x61 0x62 0x72 0x69 0x65    // 'd Gabrie' \n\t0x6C 0x92 0x73 0x20 0x70 0x61 0x72 0x65    // 'ls pare' \n\t0x6E 0x74 0x73 0x20 0x74 0x6F 0x20 0x6C    // 'nts to l' \n\t0x65 0x74 0x20 0x47 0x61 0x62 0x72 0x69    // 'et Gabri' \n\t0x65 0x6C 0x20 0x62 0x65 0x20 0x69 0x6E    // 'el be in' \n\t0x20 0x68 0x69 0x73 0x20 0x6D 0x6F 0x76    // ' his mov' \n\t0x69 0x65 0x73 0x2E                        // 'ies.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_63= ktipbio58\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_63, __HELP_NAME(\"ktipbio58\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_63, __HELP_NAME(\"ktipbio58\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_63=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_63, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio58\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_63=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_63, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_63=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_63, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB3 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x72 0x01 0x00 0x82    // '????r??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_63=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_63, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x70 0x6F 0x6F 0x6B 0x79    // '??Spooky' \n\t0x92 0x73 0x20 0x59 0x6F 0x75 0x6E 0x67    // 's Young' \n\t0x65 0x73 0x74 0x20 0x53 0x6F 0x6E 0x0D    // 'est Son?' \n\t0x0A 0x53 0x70 0x6F 0x6F 0x6B 0x79 0x20    // '?Spooky ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x70 0x6C    // 'would pl' \n\t0x61 0x79 0x20 0x61 0x20 0x73 0x65 0x72    // 'ay a ser' \n\t0x69 0x6F 0x75 0x73 0x6C 0x79 0x20 0x63    // 'iously c' \n\t0x6F 0x6F 0x6C 0x20 0x44 0x61 0x64 0x20    // 'ool Dad ' \n\t0x69 0x6E 0x20 0x74 0x68 0x69 0x73 0x20    // 'in this ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20 0x61    // 'movie, a' \n\t0x6E 0x64 0x20 0x47 0x61 0x62 0x72 0x69    // 'nd Gabri' \n\t0x65 0x6C 0x20 0x64 0x72 0x65 0x61 0x6D    // 'el dream' \n\t0x73 0x20 0x6F 0x66 0x20 0x62 0x65 0x69    // 's of bei' \n\t0x6E 0x67 0x20 0x68 0x69 0x73 0x20 0x79    // 'ng his y' \n\t0x6F 0x75 0x6E 0x67 0x65 0x73 0x74 0x20    // 'oungest ' \n\t0x73 0x6F 0x6E 0x2E 0x20 0x20 0x47 0x61    // 'son.  Ga' \n\t0x62 0x72 0x69 0x65 0x6C 0x20 0x73 0x65    // 'briel se' \n\t0x65 0x73 0x20 0x68 0x69 0x6D 0x73 0x65    // 'es himse' \n\t0x6C 0x66 0x20 0x74 0x61 0x6B 0x69 0x6E    // 'lf takin' \n\t0x67 0x20 0x53 0x70 0x6F 0x6F 0x6B 0x79    // 'g Spooky' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x6D 0x61 0x6C 0x6C 0x20 0x77 0x69 0x74    // 'mall wit' \n\t0x68 0x20 0x68 0x69 0x6D 0x20 0x61 0x6E    // 'h him an' \n\t0x64 0x20 0x68 0x61 0x76 0x69 0x6E 0x67    // 'd having' \n\t0x20 0x68 0x69 0x6D 0x20 0x74 0x72 0x79    // ' him try' \n\t0x20 0x6F 0x6E 0x20 0x74 0x68 0x65 0x20    // ' on the ' \n\t0x68 0x6F 0x74 0x74 0x65 0x73 0x74 0x20    // 'hottest ' \n\t0x62 0x61 0x74 0x68 0x69 0x6E 0x67 0x20    // 'bathing ' \n\t0x73 0x75 0x69 0x74 0x73 0x20 0x61 0x6E    // 'suits an' \n\t0x64 0x20 0x73 0x68 0x6F 0x72 0x74 0x73    // 'd shorts' \n\t0x2E 0x20 0x20 0x57 0x68 0x69 0x6C 0x65    // '.  While' \n\t0x20 0x53 0x70 0x6F 0x6F 0x6B 0x79 0x20    // ' Spooky ' \n\t0x69 0x73 0x20 0x69 0x6E 0x20 0x74 0x68    // 'is in th' \n\t0x65 0x20 0x73 0x74 0x6F 0x72 0x65 0x2C    // 'e store,' \n\t0x20 0x47 0x61 0x62 0x72 0x69 0x65 0x6C    // ' Gabriel' \n\t0x20 0x77 0x61 0x6E 0x64 0x65 0x72 0x73    // ' wanders' \n\t0x20 0x61 0x72 0x6F 0x75 0x6E 0x64 0x20    // ' around ' \n\t0x6F 0x75 0x74 0x73 0x69 0x64 0x65 0x2E    // 'outside.' \n\t0x20 0x20 0x53 0x75 0x64 0x64 0x65 0x6E    // '  Sudden' \n\t0x6C 0x79 0x20 0x47 0x61 0x62 0x72 0x69    // 'ly Gabri' \n\t0x65 0x6C 0x20 0x68 0x65 0x61 0x72 0x73    // 'el hears' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x6F    // ' the sto' \n\t0x72 0x65 0x20 0x63 0x6C 0x65 0x72 0x6B    // 're clerk' \n\t0x20 0x79 0x65 0x6C 0x6C 0x2C 0x20 0x93    // ' yell, ' \n\t0x53 0x74 0x6F 0x70 0x20 0x74 0x68 0x61    // 'Stop tha' \n\t0x74 0x20 0x74 0x68 0x69 0x65 0x66 0x21    // 't thief!' \n\t0x94 0x20 0x0D 0x0A 0x47 0x61 0x62 0x72    // ' ??Gabr' \n\t0x69 0x65 0x6C 0x20 0x73 0x70 0x6F 0x74    // 'iel spot' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x74 0x68    // 's the th' \n\t0x69 0x65 0x66 0x20 0x63 0x6F 0x6D 0x69    // 'ief comi' \n\t0x6E 0x67 0x20 0x68 0x69 0x73 0x20 0x77    // 'ng his w' \n\t0x61 0x79 0x2E 0x20 0x20 0x43 0x61 0x6E    // 'ay.  Can' \n\t0x20 0x68 0x65 0x20 0x73 0x74 0x6F 0x70    // ' he stop' \n\t0x20 0x61 0x20 0x67 0x72 0x6F 0x77 0x6E    // ' a grown' \n\t0x20 0x6D 0x61 0x6E 0x3F                   // ' man?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_64= ktipbio59\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_64, __HELP_NAME(\"ktipbio59\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_64, __HELP_NAME(\"ktipbio59\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_67=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_64, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio59\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_67=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_64, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_67=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_67, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB1 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x17 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_67=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_67, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x61 0x72 0x0D 0x0A    // '??Star??' \n\t0x57 0x68 0x61 0x74 0x20 0x74 0x68 0x65    // 'What the' \n\t0x20 0x77 0x6F 0x72 0x6C 0x64 0x20 0x6E    // ' world n' \n\t0x65 0x65 0x64 0x73 0x20 0x69 0x73 0x20    // 'eeds is ' \n\t0x61 0x6E 0x20 0x69 0x6E 0x66 0x61 0x6E    // 'an infan' \n\t0x74 0x20 0x73 0x74 0x61 0x72 0x2C 0x20    // 't star, ' \n\t0x61 0x6E 0x64 0x20 0x47 0x61 0x62 0x72    // 'and Gabr' \n\t0x69 0x65 0x6C 0x20 0x64 0x72 0x65 0x61    // 'iel drea' \n\t0x6D 0x73 0x20 0x6F 0x66 0x20 0x62 0x65    // 'ms of be' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x61 0x74    // 'ing that' \n\t0x20 0x73 0x74 0x61 0x72 0x2E 0x20 0x20    // ' star.  ' \n\t0x4E 0x6F 0x74 0x20 0x6A 0x75 0x73 0x74    // 'Not just' \n\t0x20 0x61 0x6E 0x79 0x20 0x63 0x72 0x61    // ' any cra' \n\t0x6E 0x6B 0x79 0x20 0x62 0x61 0x62 0x79    // 'nky baby' \n\t0x2C 0x20 0x62 0x75 0x74 0x20 0x61 0x20    // ', but a ' \n\t0x73 0x74 0x75 0x6E 0x74 0x20 0x62 0x61    // 'stunt ba' \n\t0x62 0x79 0x21 0x20 0x47 0x61 0x62 0x72    // 'by! Gabr' \n\t0x69 0x65 0x6C 0x20 0x69 0x6D 0x61 0x67    // 'iel imag' \n\t0x69 0x6E 0x65 0x73 0x20 0x74 0x68 0x61    // 'ines tha' \n\t0x74 0x20 0x68 0x69 0x73 0x20 0x64 0x69    // 't his di' \n\t0x61 0x70 0x65 0x72 0x73 0x20 0x77 0x6F    // 'apers wo' \n\t0x75 0x6C 0x64 0x20 0x70 0x72 0x6F 0x74    // 'uld prot' \n\t0x65 0x63 0x74 0x20 0x68 0x69 0x6D 0x20    // 'ect him ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x61 0x6C 0x6C    // 'from all' \n\t0x20 0x66 0x61 0x6C 0x6C 0x73 0x2C 0x20    // ' falls, ' \n\t0x73 0x6F 0x20 0x68 0x65 0x20 0x63 0x6F    // 'so he co' \n\t0x75 0x6C 0x64 0x20 0x6A 0x75 0x6D 0x70    // 'uld jump' \n\t0x20 0x6F 0x75 0x74 0x20 0x61 0x20 0x77    // ' out a w' \n\t0x69 0x6E 0x64 0x6F 0x77 0x2C 0x20 0x73    // 'indow, s' \n\t0x71 0x75 0x61 0x73 0x68 0x20 0x75 0x70    // 'quash up' \n\t0x2C 0x20 0x72 0x65 0x74 0x75 0x72 0x6E    // ', return' \n\t0x20 0x74 0x6F 0x20 0x6E 0x6F 0x72 0x6D    // ' to norm' \n\t0x61 0x6C 0x20 0x73 0x69 0x7A 0x65 0x2C    // 'al size,' \n\t0x20 0x61 0x6E 0x64 0x20 0x72 0x75 0x6E    // ' and run' \n\t0x20 0x61 0x77 0x61 0x79 0x2E 0x20 0x0D    // ' away. ?' \n\t0x0A 0x42 0x75 0x74 0x20 0x77 0x68 0x61    // '?But wha' \n\t0x74 0x20 0x69 0x66 0x20 0x68 0x65 0x20    // 't if he ' \n\t0x6A 0x75 0x6D 0x70 0x65 0x64 0x20 0x61    // 'jumped a' \n\t0x6E 0x64 0x20 0x6C 0x61 0x6E 0x64 0x65    // 'nd lande' \n\t0x64 0x20 0x72 0x69 0x67 0x68 0x74 0x20    // 'd right ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x70    // 'in the p' \n\t0x61 0x74 0x68 0x20 0x6F 0x66 0x20 0x61    // 'ath of a' \n\t0x20 0x74 0x61 0x78 0x69 0x20 0x63 0x61    // ' taxi ca' \n\t0x62 0x20 0x61 0x73 0x20 0x68 0x65 0x20    // 'b as he ' \n\t0x77 0x61 0x73 0x20 0x72 0x65 0x74 0x75    // 'was retu' \n\t0x72 0x6E 0x69 0x6E 0x67 0x20 0x74 0x6F    // 'rning to' \n\t0x20 0x6E 0x6F 0x72 0x6D 0x61 0x6C 0x20    // ' normal ' \n\t0x73 0x69 0x7A 0x65 0x3F 0x20 0x20 0x47    // 'size?  G' \n\t0x61 0x62 0x72 0x69 0x65 0x6C 0x20 0x63    // 'abriel c' \n\t0x61 0x6E 0x20 0x73 0x71 0x75 0x61 0x73    // 'an squas' \n\t0x68 0x20 0x61 0x6E 0x64 0x20 0x67 0x72    // 'h and gr' \n\t0x6F 0x77 0x2C 0x20 0x62 0x75 0x74 0x20    // 'ow, but ' \n\t0x63 0x61 0x6E 0x20 0x68 0x65 0x20 0x61    // 'can he a' \n\t0x6C 0x73 0x6F 0x20 0x73 0x68 0x72 0x69    // 'lso shri' \n\t0x6E 0x6B 0x3F                             // 'nk?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_65= ktipbio60\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_65, __HELP_NAME(\"ktipbio60\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_65, __HELP_NAME(\"ktipbio60\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_65=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_65, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio60\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_65=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_65, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_65=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_65, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAE 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5E 0x01 0x00 0x82    // '????^??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_65=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_65, 0x0)\n\tBYTE\n\t0x03 0x03 0x59 0x6F 0x75 0x6E 0x67 0x20    // '??Young ' \n\t0x4E 0x61 0x74 0x69 0x76 0x65 0x0D 0x0A    // 'Native??' \n\t0x41 0x6E 0x6F 0x74 0x68 0x65 0x72 0x20    // 'Another ' \n\t0x64 0x72 0x65 0x61 0x6D 0x20 0x47 0x61    // 'dream Ga' \n\t0x62 0x72 0x69 0x65 0x6C 0x20 0x68 0x61    // 'briel ha' \n\t0x73 0x20 0x69 0x73 0x20 0x74 0x6F 0x20    // 's is to ' \n\t0x70 0x6C 0x61 0x79 0x20 0x74 0x68 0x65    // 'play the' \n\t0x20 0x70 0x61 0x72 0x74 0x20 0x6F 0x66    // ' part of' \n\t0x20 0x61 0x20 0x62 0x61 0x62 0x79 0x20    // ' a baby ' \n\t0x77 0x68 0x6F 0x20 0x68 0x61 0x73 0x20    // 'who has ' \n\t0x62 0x65 0x65 0x6E 0x20 0x72 0x61 0x69    // 'been rai' \n\t0x73 0x65 0x64 0x20 0x62 0x79 0x20 0x77    // 'sed by w' \n\t0x69 0x6C 0x64 0x20 0x61 0x6E 0x69 0x6D    // 'ild anim' \n\t0x61 0x6C 0x73 0x20 0x69 0x6E 0x20 0x74    // 'als in t' \n\t0x68 0x65 0x20 0x6A 0x75 0x6E 0x67 0x6C    // 'he jungl' \n\t0x65 0x2E 0x20 0x20 0x48 0x65 0x20 0x73    // 'e.  He s' \n\t0x65 0x65 0x73 0x20 0x68 0x69 0x6D 0x73    // 'ees hims' \n\t0x65 0x6C 0x66 0x20 0x6A 0x75 0x6D 0x70    // 'elf jump' \n\t0x69 0x6E 0x67 0x20 0x66 0x72 0x6F 0x6D    // 'ing from' \n\t0x20 0x74 0x72 0x65 0x65 0x73 0x20 0x61    // ' trees a' \n\t0x6E 0x64 0x20 0x73 0x71 0x75 0x61 0x73    // 'nd squas' \n\t0x68 0x69 0x6E 0x67 0x20 0x77 0x68 0x65    // 'hing whe' \n\t0x6E 0x20 0x68 0x65 0x20 0x6C 0x61 0x6E    // 'n he lan' \n\t0x64 0x73 0x2C 0x20 0x6C 0x69 0x6B 0x65    // 'ds, like' \n\t0x20 0x61 0x20 0x6D 0x6F 0x6E 0x6B 0x65    // ' a monke' \n\t0x79 0x2E 0x20 0x20 0x42 0x75 0x74 0x20    // 'y.  But ' \n\t0x6F 0x6E 0x65 0x20 0x64 0x61 0x79 0x20    // 'one day ' \n\t0x68 0x65 0x20 0x69 0x73 0x20 0x61 0x62    // 'he is ab' \n\t0x64 0x75 0x63 0x74 0x65 0x64 0x20 0x62    // 'ducted b' \n\t0x79 0x20 0x6E 0x61 0x74 0x69 0x76 0x65    // 'y native' \n\t0x73 0x20 0x61 0x6E 0x64 0x20 0x74 0x61    // 's and ta' \n\t0x6B 0x65 0x6E 0x20 0x74 0x6F 0x20 0x74    // 'ken to t' \n\t0x68 0x65 0x69 0x72 0x20 0x76 0x69 0x6C    // 'heir vil' \n\t0x6C 0x61 0x67 0x65 0x2E 0x20 0x20 0x48    // 'lage.  H' \n\t0x65 0x20 0x6F 0x76 0x65 0x72 0x68 0x65    // 'e overhe' \n\t0x61 0x72 0x73 0x20 0x74 0x68 0x65 0x20    // 'ars the ' \n\t0x76 0x69 0x6C 0x6C 0x61 0x67 0x65 0x72    // 'villager' \n\t0x73 0x20 0x70 0x6C 0x61 0x6E 0x6E 0x69    // 's planni' \n\t0x6E 0x67 0x20 0x74 0x6F 0x20 0x63 0x61    // 'ng to ca' \n\t0x70 0x74 0x75 0x72 0x65 0x20 0x74 0x68    // 'pture th' \n\t0x65 0x20 0x77 0x69 0x6C 0x64 0x20 0x61    // 'e wild a' \n\t0x6E 0x69 0x6D 0x61 0x6C 0x73 0x20 0x61    // 'nimals a' \n\t0x6E 0x64 0x20 0x73 0x65 0x6C 0x6C 0x20    // 'nd sell ' \n\t0x74 0x68 0x65 0x6D 0x2E 0x20 0x0D 0x0A    // 'them. ??' \n\t0x43 0x61 0x6E 0x20 0x47 0x61 0x62 0x72    // 'Can Gabr' \n\t0x69 0x65 0x6C 0x20 0x66 0x69 0x6E 0x64    // 'iel find' \n\t0x20 0x61 0x20 0x77 0x61 0x79 0x20 0x74    // ' a way t' \n\t0x6F 0x20 0x73 0x74 0x6F 0x70 0x20 0x74    // 'o stop t' \n\t0x68 0x65 0x6D 0x3F 0x20 0x20 0x57 0x69    // 'hem?  Wi' \n\t0x6C 0x6C 0x20 0x68 0x69 0x73 0x20 0x70    // 'll his p' \n\t0x61 0x63 0x69 0x66 0x69 0x65 0x72 0x20    // 'acifier ' \n\t0x67 0x69 0x76 0x65 0x20 0x68 0x69 0x6D    // 'give him' \n\t0x20 0x73 0x70 0x65 0x63 0x69 0x61 0x6C    // ' special' \n\t0x20 0x70 0x6F 0x77 0x65 0x72 0x73 0x3F    // ' powers?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_66= ktipbio61\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_66, __HELP_NAME(\"ktipbio61\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_66, __HELP_NAME(\"ktipbio61\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_64=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_66, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio61\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_64=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_66, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_64=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_64, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x58 0x01 0x00 0x01    // '????X???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x07 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_64=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_64, 0x0)\n\tBYTE\n\t0x03 0x03 0x64 0x72 0x61 0x6D 0x61 0x0D    // '??drama?' \n\t0x0A 0x4F 0x6E 0x65 0x20 0x64 0x61 0x79    // '?One day' \n\t0x20 0x69 0x6E 0x20 0x47 0x72 0x65 0x67    // ' in Greg' \n\t0x6F 0x72 0x79 0x27 0x73 0x20 0x64 0x72    // 'ory's dr' \n\t0x61 0x6D 0x61 0x20 0x63 0x6C 0x61 0x73    // 'ama clas' \n\t0x73 0x2C 0x20 0x74 0x68 0x65 0x20 0x67    // 's, the g' \n\t0x72 0x65 0x61 0x74 0x20 0x66 0x69 0x6C    // 'reat fil' \n\t0x6D 0x20 0x64 0x69 0x72 0x65 0x63 0x74    // 'm direct' \n\t0x6F 0x72 0x20 0x4D 0x63 0x5A 0x65 0x65    // 'or McZee' \n\t0x20 0x63 0x61 0x6D 0x65 0x20 0x74 0x6F    // ' came to' \n\t0x20 0x74 0x65 0x6C 0x6C 0x20 0x74 0x68    // ' tell th' \n\t0x65 0x20 0x63 0x6C 0x61 0x73 0x73 0x20    // 'e class ' \n\t0x61 0x62 0x6F 0x75 0x74 0x20 0x68 0x6F    // 'about ho' \n\t0x77 0x20 0x68 0x65 0x20 0x6D 0x61 0x6B    // 'w he mak' \n\t0x65 0x73 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'es movie' \n\t0x73 0x2E 0x20 0x20 0x41 0x66 0x74 0x65    // 's.  Afte' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x6C 0x65    // 'r the le' \n\t0x63 0x74 0x75 0x72 0x65 0x2C 0x20 0x73    // 'cture, s' \n\t0x65 0x76 0x65 0x72 0x61 0x6C 0x20 0x73    // 'everal s' \n\t0x74 0x75 0x64 0x65 0x6E 0x74 0x73 0x20    // 'tudents ' \n\t0x64 0x69 0x64 0x20 0x61 0x20 0x73 0x6B    // 'did a sk' \n\t0x69 0x74 0x20 0x74 0x68 0x65 0x79 0x27    // 'it they'' \n\t0x64 0x20 0x77 0x72 0x69 0x74 0x74 0x65    // 'd writte' \n\t0x6E 0x20 0x66 0x6F 0x72 0x20 0x4D 0x63    // 'n for Mc' \n\t0x5A 0x65 0x65 0x2E 0x20 0x20 0x47 0x72    // 'Zee.  Gr' \n\t0x65 0x67 0x6F 0x72 0x79 0x20 0x77 0x61    // 'egory wa' \n\t0x73 0x20 0x61 0x20 0x62 0x75 0x6D 0x62    // 's a bumb' \n\t0x6C 0x69 0x6E 0x67 0x20 0x64 0x65 0x74    // 'ling det' \n\t0x65 0x63 0x74 0x69 0x76 0x65 0x20 0x77    // 'ective w' \n\t0x68 0x6F 0x20 0x66 0x61 0x6C 0x6C 0x73    // 'ho falls' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x61 0x20    // ' down a ' \n\t0x6C 0x6F 0x74 0x20 0x61 0x6E 0x64 0x20    // 'lot and ' \n\t0x68 0x61 0x73 0x20 0x61 0x20 0x6B 0x6E    // 'has a kn' \n\t0x61 0x63 0x6B 0x20 0x66 0x6F 0x72 0x20    // 'ack for ' \n\t0x66 0x69 0x6E 0x64 0x69 0x6E 0x67 0x20    // 'finding ' \n\t0x74 0x72 0x6F 0x75 0x62 0x6C 0x65 0x2E    // 'trouble.' \n\t0x20 0x20 0x4D 0x63 0x5A 0x65 0x65 0x20    // '  McZee ' \n\t0x6C 0x6F 0x76 0x65 0x64 0x20 0x69 0x74    // 'loved it' \n\t0x2E 0x20 0x48 0x65 0x20 0x61 0x73 0x6B    // '. He ask' \n\t0x65 0x64 0x20 0x47 0x72 0x65 0x67 0x6F    // 'ed Grego' \n\t0x72 0x79 0x20 0x74 0x6F 0x20 0x62 0x65    // 'ry to be' \n\t0x20 0x69 0x6E 0x20 0x68 0x69 0x73 0x20    // ' in his ' \n\t0x6E 0x65 0x78 0x74 0x20 0x66 0x69 0x6C    // 'next fil' \n\t0x6D 0x2E                                  // 'm.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_67= ktipbio62\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_67, __HELP_NAME(\"ktipbio62\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_67, __HELP_NAME(\"ktipbio62\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_66=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_67, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio62\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_66=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_67, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_66=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_66, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x9A 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2F 0x01 0x00 0x82    // '????/??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_66=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_66, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x67 0x69 0x63 0x69    // '??Magici' \n\t0x61 0x6E 0x0D 0x0A 0x54 0x68 0x65 0x20    // 'an??The ' \n\t0x75 0x6C 0x74 0x69 0x6D 0x61 0x74 0x65    // 'ultimate' \n\t0x20 0x72 0x6F 0x6C 0x65 0x20 0x66 0x6F    // ' role fo' \n\t0x72 0x20 0x47 0x72 0x65 0x67 0x6F 0x72    // 'r Gregor' \n\t0x79 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 'y would ' \n\t0x62 0x65 0x20 0x74 0x6F 0x20 0x70 0x6C    // 'be to pl' \n\t0x61 0x79 0x20 0x61 0x20 0x6D 0x61 0x67    // 'ay a mag' \n\t0x69 0x63 0x69 0x61 0x6E 0x2E 0x20 0x49    // 'ician. I' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x72 0x6F    // 'n the ro' \n\t0x6C 0x65 0x2C 0x20 0x47 0x72 0x65 0x67    // 'le, Greg' \n\t0x6F 0x72 0x79 0x20 0x6C 0x69 0x76 0x65    // 'ory live' \n\t0x73 0x20 0x6E 0x65 0x78 0x74 0x20 0x64    // 's next d' \n\t0x6F 0x6F 0x72 0x20 0x74 0x6F 0x20 0x61    // 'oor to a' \n\t0x20 0x68 0x61 0x75 0x6E 0x74 0x65 0x64    // ' haunted' \n\t0x20 0x68 0x6F 0x75 0x73 0x65 0x20 0x6F    // ' house o' \n\t0x77 0x6E 0x65 0x64 0x20 0x62 0x79 0x20    // 'wned by ' \n\t0x61 0x20 0x63 0x72 0x65 0x65 0x70 0x79    // 'a creepy' \n\t0x20 0x6D 0x61 0x6E 0x2E 0x20 0x20 0x47    // ' man.  G' \n\t0x72 0x65 0x67 0x6F 0x72 0x79 0x20 0x61    // 'regory a' \n\t0x6E 0x64 0x20 0x68 0x69 0x73 0x20 0x66    // 'nd his f' \n\t0x72 0x69 0x65 0x6E 0x64 0x73 0x20 0x64    // 'riends d' \n\t0x65 0x63 0x69 0x64 0x65 0x20 0x74 0x6F    // 'ecide to' \n\t0x20 0x69 0x6E 0x76 0x65 0x73 0x74 0x69    // ' investi' \n\t0x67 0x61 0x74 0x65 0x20 0x74 0x68 0x65    // 'gate the' \n\t0x20 0x68 0x6F 0x75 0x73 0x65 0x20 0x6F    // ' house o' \n\t0x6E 0x65 0x20 0x61 0x66 0x74 0x65 0x72    // 'ne after' \n\t0x6E 0x6F 0x6F 0x6E 0x2E 0x20 0x20 0x4F    // 'noon.  O' \n\t0x6E 0x63 0x65 0x20 0x69 0x6E 0x73 0x69    // 'nce insi' \n\t0x64 0x65 0x20 0x74 0x68 0x65 0x20 0x6C    // 'de the l' \n\t0x69 0x62 0x72 0x61 0x72 0x79 0x2C 0x20    // 'ibrary, ' \n\t0x73 0x74 0x72 0x61 0x6E 0x67 0x65 0x20    // 'strange ' \n\t0x67 0x72 0x6F 0x61 0x6E 0x73 0x20 0x63    // 'groans c' \n\t0x6F 0x6D 0x65 0x20 0x66 0x72 0x6F 0x6D    // 'ome from' \n\t0x20 0x61 0x6C 0x6C 0x20 0x74 0x68 0x65    // ' all the' \n\t0x20 0x62 0x6F 0x6F 0x6B 0x73 0x20 0x6F    // ' books o' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x73 0x68    // 'n the sh' \n\t0x65 0x6C 0x76 0x65 0x73 0x2E 0x20 0x0D    // 'elves. ?' \n\t0x0A 0x43 0x61 0x6E 0x20 0x47 0x72 0x65    // '?Can Gre' \n\t0x67 0x6F 0x72 0x79 0x20 0x75 0x73 0x65    // 'gory use' \n\t0x20 0x68 0x69 0x73 0x20 0x6D 0x61 0x67    // ' his mag' \n\t0x69 0x63 0x61 0x6C 0x20 0x70 0x6F 0x77    // 'ical pow' \n\t0x65 0x72 0x73 0x20 0x74 0x6F 0x20 0x73    // 'ers to s' \n\t0x68 0x72 0x69 0x6E 0x6B 0x20 0x6F 0x72    // 'hrink or' \n\t0x20 0x67 0x72 0x6F 0x77 0x20 0x68 0x69    // ' grow hi' \n\t0x6D 0x73 0x65 0x6C 0x66 0x20 0x61 0x6E    // 'mself an' \n\t0x64 0x20 0x67 0x65 0x74 0x20 0x74 0x68    // 'd get th' \n\t0x65 0x6D 0x20 0x6F 0x75 0x74 0x20 0x6F    // 'em out o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x68 0x61    // 'f the ha' \n\t0x75 0x6E 0x74 0x65 0x64 0x20 0x68 0x6F    // 'unted ho' \n\t0x75 0x73 0x65 0x2E 0x2E 0x2E 0x61 0x6C    // 'use...al' \n\t0x69 0x76 0x65 0x3F                        // 'ive?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_68= ktipbio63\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_68, __HELP_NAME(\"ktipbio63\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_68, __HELP_NAME(\"ktipbio63\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_69=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_68, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio63\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_69=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_68, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_69=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_69, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5E 0x02 0x00 0x01    // '????^???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xBD 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_69=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_69, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x65 0x77 0x73 0x70 0x61    // '??Newspa' \n\t0x70 0x65 0x72 0x20 0x42 0x6F 0x79 0x0D    // 'per Boy?' \n\t0x0A 0x47 0x72 0x65 0x67 0x6F 0x72 0x79    // '?Gregory' \n\t0x20 0x74 0x68 0x69 0x6E 0x6B 0x73 0x20    // ' thinks ' \n\t0x69 0x74 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'it would' \n\t0x20 0x62 0x65 0x20 0x63 0x6F 0x6F 0x6C    // ' be cool' \n\t0x20 0x74 0x6F 0x20 0x70 0x6C 0x61 0x79    // ' to play' \n\t0x20 0x61 0x20 0x6E 0x65 0x77 0x73 0x70    // ' a newsp' \n\t0x61 0x70 0x65 0x72 0x20 0x62 0x6F 0x79    // 'aper boy' \n\t0x20 0x77 0x68 0x6F 0x20 0x77 0x69 0x74    // ' who wit' \n\t0x6E 0x65 0x73 0x73 0x65 0x73 0x20 0x61    // 'nesses a' \n\t0x20 0x72 0x6F 0x62 0x62 0x65 0x72 0x79    // ' robbery' \n\t0x2E 0x20 0x20 0x42 0x65 0x66 0x6F 0x72    // '.  Befor' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x72 0x6F    // 'e the ro' \n\t0x62 0x62 0x65 0x72 0x20 0x6A 0x75 0x6D    // 'bber jum' \n\t0x70 0x73 0x20 0x6F 0x75 0x74 0x20 0x61    // 'ps out a' \n\t0x20 0x77 0x69 0x6E 0x64 0x6F 0x77 0x20    // ' window ' \n\t0x74 0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20    // 'to make ' \n\t0x68 0x69 0x73 0x20 0x65 0x73 0x63 0x61    // 'his esca' \n\t0x70 0x65 0x2C 0x20 0x68 0x65 0x20 0x63    // 'pe, he c' \n\t0x61 0x74 0x63 0x68 0x65 0x73 0x20 0x61    // 'atches a' \n\t0x20 0x67 0x6C 0x69 0x6D 0x70 0x73 0x65    // ' glimpse' \n\t0x20 0x6F 0x66 0x20 0x47 0x72 0x65 0x67    // ' of Greg' \n\t0x6F 0x72 0x79 0x2E 0x20 0x20 0x48 0x65    // 'ory.  He' \n\t0x20 0x6B 0x6E 0x6F 0x77 0x73 0x20 0x47    // ' knows G' \n\t0x72 0x65 0x67 0x6F 0x72 0x79 0x20 0x73    // 'regory s' \n\t0x61 0x77 0x20 0x68 0x69 0x6D 0x2E 0x0D    // 'aw him.?' \n\t0x0A 0x42 0x75 0x74 0x20 0x62 0x79 0x73    // '?But bys' \n\t0x74 0x61 0x6E 0x64 0x65 0x72 0x73 0x20    // 'tanders ' \n\t0x74 0x65 0x6C 0x6C 0x20 0x74 0x68 0x65    // 'tell the' \n\t0x20 0x70 0x6F 0x6C 0x69 0x63 0x65 0x20    // ' police ' \n\t0x74 0x68 0x61 0x74 0x20 0x74 0x68 0x65    // 'that the' \n\t0x79 0x20 0x73 0x61 0x77 0x20 0x47 0x72    // 'y saw Gr' \n\t0x65 0x67 0x6F 0x72 0x79 0x20 0x61 0x74    // 'egory at' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x63 0x65    // ' the sce' \n\t0x6E 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 'ne of th' \n\t0x65 0x20 0x63 0x72 0x69 0x6D 0x65 0x2C    // 'e crime,' \n\t0x20 0x61 0x6E 0x64 0x20 0x6E 0x6F 0x77    // ' and now' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x6F 0x70    // ' the cop' \n\t0x73 0x20 0x74 0x68 0x69 0x6E 0x6B 0x20    // 's think ' \n\t0x47 0x72 0x65 0x67 0x6F 0x72 0x79 0x20    // 'Gregory ' \n\t0x64 0x69 0x64 0x20 0x69 0x74 0x2E 0x20    // 'did it. ' \n\t0x47 0x72 0x65 0x67 0x6F 0x72 0x79 0x20    // 'Gregory ' \n\t0x68 0x61 0x73 0x20 0x74 0x6F 0x20 0x68    // 'has to h' \n\t0x69 0x64 0x65 0x20 0x66 0x72 0x6F 0x6D    // 'ide from' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6F 0x6C    // ' the pol' \n\t0x69 0x63 0x65 0x20 0x61 0x6E 0x64 0x20    // 'ice and ' \n\t0x74 0x68 0x65 0x20 0x72 0x65 0x61 0x6C    // 'the real' \n\t0x20 0x72 0x6F 0x62 0x62 0x65 0x72 0x20    // ' robber ' \n\t0x77 0x68 0x69 0x6C 0x65 0x20 0x68 0x65    // 'while he' \n\t0x20 0x66 0x69 0x67 0x75 0x72 0x65 0x73    // ' figures' \n\t0x20 0x6F 0x75 0x74 0x20 0x68 0x6F 0x77    // ' out how' \n\t0x20 0x74 0x6F 0x20 0x70 0x72 0x6F 0x76    // ' to prov' \n\t0x65 0x20 0x77 0x68 0x6F 0x20 0x74 0x68    // 'e who th' \n\t0x65 0x20 0x72 0x6F 0x62 0x62 0x65 0x72    // 'e robber' \n\t0x20 0x69 0x73 0x2E 0x20 0x0D 0x0A 0x57    // ' is. ??W' \n\t0x69 0x6C 0x6C 0x20 0x47 0x72 0x65 0x67    // 'ill Greg' \n\t0x6F 0x72 0x79 0x20 0x62 0x65 0x20 0x61    // 'ory be a' \n\t0x62 0x6C 0x65 0x20 0x74 0x6F 0x20 0x70    // 'ble to p' \n\t0x72 0x6F 0x76 0x65 0x20 0x68 0x69 0x73    // 'rove his' \n\t0x20 0x69 0x6E 0x6E 0x6F 0x63 0x65 0x6E    // ' innocen' \n\t0x63 0x65 0x3F 0x20 0x20 0x43 0x61 0x6E    // 'ce?  Can' \n\t0x20 0x68 0x65 0x20 0x68 0x65 0x6C 0x70    // ' he help' \n\t0x20 0x6C 0x65 0x61 0x64 0x20 0x74 0x68    // ' lead th' \n\t0x65 0x20 0x70 0x6F 0x6C 0x69 0x63 0x65    // 'e police' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x72 0x65 0x61 0x6C 0x20 0x72 0x6F 0x62    // 'real rob' \n\t0x62 0x65 0x72 0x20 0x77 0x69 0x74 0x68    // 'ber with' \n\t0x6F 0x75 0x74 0x20 0x62 0x65 0x69 0x6E    // 'out bein' \n\t0x67 0x20 0x61 0x72 0x72 0x65 0x73 0x74    // 'g arrest' \n\t0x65 0x64 0x20 0x68 0x69 0x6D 0x73 0x65    // 'ed himse' \n\t0x6C 0x66 0x2C 0x20 0x6F 0x72 0x20 0x77    // 'lf, or w' \n\t0x6F 0x72 0x73 0x65 0x2C 0x20 0x62 0x65    // 'orse, be' \n\t0x69 0x6E 0x67 0x20 0x66 0x6F 0x75 0x6E    // 'ing foun' \n\t0x64 0x20 0x62 0x79 0x20 0x74 0x68 0x65    // 'd by the' \n\t0x20 0x72 0x6F 0x62 0x62 0x65 0x72 0x3F    // ' robber?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_69= ktipbio64\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_69, __HELP_NAME(\"ktipbio64\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_69, __HELP_NAME(\"ktipbio64\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_73=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_69, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio64\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_73=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_69, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_73=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_73, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x03 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x87 0x02 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_73=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_73, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x6F 0x79 0x20 0x53 0x63    // '??Boy Sc' \n\t0x6F 0x75 0x74 0x0D 0x0A 0x47 0x72 0x65    // 'out??Gre' \n\t0x67 0x6F 0x72 0x79 0x20 0x69 0x6D 0x61    // 'gory ima' \n\t0x67 0x69 0x6E 0x65 0x73 0x20 0x61 0x20    // 'gines a ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x69 0x6E    // 'movie in' \n\t0x20 0x77 0x68 0x69 0x63 0x68 0x20 0x68    // ' which h' \n\t0x65 0x20 0x70 0x6C 0x61 0x79 0x73 0x20    // 'e plays ' \n\t0x61 0x20 0x62 0x6F 0x79 0x20 0x73 0x63    // 'a boy sc' \n\t0x6F 0x75 0x74 0x20 0x77 0x68 0x6F 0x73    // 'out whos' \n\t0x65 0x20 0x74 0x72 0x6F 0x6F 0x70 0x20    // 'e troop ' \n\t0x74 0x72 0x61 0x76 0x65 0x6C 0x73 0x20    // 'travels ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x69    // 'to the i' \n\t0x73 0x6C 0x61 0x6E 0x64 0x20 0x6F 0x66    // 'sland of' \n\t0x20 0x46 0x69 0x6A 0x69 0x2E 0x20 0x20    // ' Fiji.  ' \n\t0x54 0x68 0x65 0x20 0x74 0x72 0x6F 0x6F    // 'The troo' \n\t0x70 0x20 0x76 0x69 0x73 0x69 0x74 0x73    // 'p visits' \n\t0x20 0x61 0x20 0x74 0x72 0x69 0x62 0x61    // ' a triba' \n\t0x6C 0x20 0x68 0x6F 0x75 0x73 0x65 0x20    // 'l house ' \n\t0x6F 0x6E 0x63 0x65 0x20 0x75 0x73 0x65    // 'once use' \n\t0x64 0x20 0x62 0x79 0x20 0x69 0x73 0x6C    // 'd by isl' \n\t0x61 0x6E 0x64 0x20 0x63 0x68 0x69 0x65    // 'and chie' \n\t0x66 0x73 0x2E 0x20 0x20 0x47 0x72 0x65    // 'fs.  Gre' \n\t0x67 0x6F 0x72 0x79 0x20 0x62 0x75 0x6D    // 'gory bum' \n\t0x70 0x73 0x20 0x69 0x6E 0x74 0x6F 0x20    // 'ps into ' \n\t0x61 0x20 0x74 0x6F 0x74 0x65 0x6D 0x20    // 'a totem ' \n\t0x70 0x6F 0x6C 0x65 0x2C 0x20 0x77 0x68    // 'pole, wh' \n\t0x69 0x63 0x68 0x20 0x74 0x61 0x6C 0x6B    // 'ich talk' \n\t0x73 0x20 0x74 0x6F 0x20 0x68 0x69 0x6D    // 's to him' \n\t0x21 0x20 0x20 0x54 0x68 0x65 0x20 0x70    // '!  The p' \n\t0x6F 0x6C 0x65 0x20 0x74 0x65 0x6C 0x6C    // 'ole tell' \n\t0x73 0x20 0x47 0x72 0x65 0x67 0x6F 0x72    // 's Gregor' \n\t0x79 0x20 0x6F 0x66 0x20 0x61 0x20 0x62    // 'y of a b' \n\t0x75 0x72 0x69 0x65 0x64 0x20 0x74 0x72    // 'uried tr' \n\t0x65 0x61 0x73 0x75 0x72 0x65 0x20 0x63    // 'easure c' \n\t0x68 0x65 0x73 0x74 0x20 0x74 0x68 0x61    // 'hest tha' \n\t0x74 0x20 0x77 0x61 0x73 0x20 0x73 0x74    // 't was st' \n\t0x6F 0x6C 0x65 0x6E 0x20 0x6C 0x6F 0x6E    // 'olen lon' \n\t0x67 0x20 0x61 0x67 0x6F 0x2E 0x20 0x20    // 'g ago.  ' \n\t0x49 0x74 0x20 0x61 0x73 0x6B 0x73 0x20    // 'It asks ' \n\t0x47 0x72 0x65 0x67 0x6F 0x72 0x79 0x20    // 'Gregory ' \n\t0x74 0x6F 0x20 0x62 0x72 0x69 0x6E 0x67    // 'to bring' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x68 0x65    // ' the che' \n\t0x73 0x74 0x20 0x62 0x61 0x63 0x6B 0x20    // 'st back ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x76    // 'to the v' \n\t0x69 0x6C 0x6C 0x61 0x67 0x65 0x2C 0x20    // 'illage, ' \n\t0x62 0x75 0x74 0x20 0x77 0x61 0x72 0x6E    // 'but warn' \n\t0x73 0x2C 0x20 0x22 0x54 0x68 0x65 0x72    // 's, \"Ther' \n\t0x65 0x20 0x69 0x73 0x20 0x67 0x72 0x65    // 'e is gre' \n\t0x61 0x74 0x20 0x64 0x61 0x6E 0x67 0x65    // 'at dange' \n\t0x72 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'r in you' \n\t0x72 0x20 0x6A 0x6F 0x75 0x72 0x6E 0x65    // 'r journe' \n\t0x79 0x2E 0x20 0x20 0x59 0x6F 0x75 0x20    // 'y.  You ' \n\t0x6D 0x75 0x73 0x74 0x20 0x63 0x72 0x6F    // 'must cro' \n\t0x73 0x73 0x20 0x61 0x6E 0x20 0x6F 0x6C    // 'ss an ol' \n\t0x64 0x20 0x62 0x72 0x69 0x64 0x67 0x65    // 'd bridge' \n\t0x2C 0x20 0x61 0x6E 0x64 0x20 0x66 0x69    // ', and fi' \n\t0x67 0x68 0x74 0x20 0x61 0x20 0x62 0x69    // 'ght a bi' \n\t0x67 0x20 0x6D 0x61 0x6E 0x2E 0x20 0x20    // 'g man.  ' \n\t0x49 0x66 0x20 0x79 0x6F 0x75 0x20 0x63    // 'If you c' \n\t0x61 0x6E 0x20 0x6D 0x61 0x6B 0x65 0x20    // 'an make ' \n\t0x74 0x68 0x65 0x20 0x6D 0x61 0x6E 0x20    // 'the man ' \n\t0x66 0x61 0x6C 0x6C 0x20 0x6F 0x66 0x66    // 'fall off' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x62 0x72 0x69 0x64 0x67 0x65 0x2C 0x20    // 'bridge, ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x61 0x79 0x20    // 'you may ' \n\t0x63 0x6F 0x6E 0x74 0x69 0x6E 0x75 0x65    // 'continue' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x63 0x61 0x76 0x65 0x2E 0x20 0x20 0x49    // 'cave.  I' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x63 0x61    // 'n the ca' \n\t0x76 0x65 0x20 0x79 0x6F 0x75 0x20 0x6D    // 've you m' \n\t0x75 0x73 0x74 0x20 0x6C 0x61 0x75 0x67    // 'ust laug' \n\t0x68 0x20 0x74 0x77 0x69 0x63 0x65 0x20    // 'h twice ' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x73    // 'at the s' \n\t0x6B 0x65 0x6C 0x65 0x74 0x6F 0x6E 0x2E    // 'keleton.' \n\t0x20 0x20 0x4F 0x6E 0x6C 0x79 0x20 0x74    // '  Only t' \n\t0x68 0x65 0x6E 0x20 0x77 0x69 0x6C 0x6C    // 'hen will' \n\t0x20 0x79 0x6F 0x75 0x20 0x62 0x65 0x20    // ' you be ' \n\t0x61 0x6C 0x6C 0x6F 0x77 0x65 0x64 0x20    // 'allowed ' \n\t0x74 0x6F 0x20 0x74 0x61 0x6B 0x65 0x20    // 'to take ' \n\t0x74 0x68 0x65 0x20 0x74 0x72 0x65 0x61    // 'the trea' \n\t0x73 0x75 0x72 0x65 0x2E 0x22 0x20 0x0D    // 'sure.\" ?' \n\t0x0A 0x57 0x69 0x6C 0x6C 0x20 0x47 0x72    // '?Will Gr' \n\t0x65 0x67 0x6F 0x72 0x79 0x20 0x68 0x65    // 'egory he' \n\t0x65 0x64 0x20 0x74 0x68 0x69 0x73 0x20    // 'ed this ' \n\t0x61 0x64 0x76 0x69 0x63 0x65 0x3F 0x20    // 'advice? ' \n\t0x20 0x43 0x61 0x6E 0x20 0x68 0x65 0x20    // ' Can he ' \n\t0x6D 0x61 0x6E 0x61 0x67 0x65 0x20 0x74    // 'manage t' \n\t0x6F 0x20 0x62 0x72 0x69 0x6E 0x67 0x20    // 'o bring ' \n\t0x74 0x68 0x65 0x20 0x74 0x72 0x65 0x61    // 'the trea' \n\t0x73 0x75 0x72 0x65 0x20 0x63 0x68 0x65    // 'sure che' \n\t0x73 0x74 0x20 0x73 0x61 0x66 0x65 0x6C    // 'st safel' \n\t0x79 0x20 0x62 0x61 0x63 0x6B 0x20 0x74    // 'y back t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x76 0x69    // 'o the vi' \n\t0x6C 0x6C 0x61 0x67 0x65 0x3F 0x20 0x20    // 'llage?  ' \n\t0x57 0x69 0x6C 0x6C 0x20 0x68 0x69 0x73    // 'Will his' \n\t0x20 0x73 0x63 0x6F 0x75 0x74 0x20 0x6D    // ' scout m' \n\t0x6F 0x74 0x74 0x6F 0x20 0x22 0x42 0x65    // 'otto \"Be' \n\t0x20 0x70 0x72 0x65 0x70 0x61 0x72 0x65    // ' prepare' \n\t0x64 0x22 0x20 0x62 0x65 0x20 0x65 0x6E    // 'd\" be en' \n\t0x6F 0x75 0x67 0x68 0x3F                   // 'ough?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6A= ktipbio65\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6A, __HELP_NAME(\"ktipbio65\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6A, __HELP_NAME(\"ktipbio65\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio65\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x02 0x00 0x01    // '????5???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xF6 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6A, 0x0)\n\tBYTE\n\t0x03 0x03 0x64 0x61 0x6E 0x63 0x69 0x6E    // '??dancin' \n\t0x67 0x0D 0x0A 0x41 0x73 0x20 0x61 0x20    // 'g??As a ' \n\t0x63 0x68 0x69 0x6C 0x64 0x2C 0x20 0x47    // 'child, G' \n\t0x75 0x73 0x74 0x61 0x76 0x65 0x20 0x6D    // 'ustave m' \n\t0x65 0x6D 0x6F 0x72 0x69 0x7A 0x65 0x64    // 'emorized' \n\t0x20 0x61 0x6C 0x6C 0x20 0x74 0x68 0x65    // ' all the' \n\t0x20 0x64 0x61 0x6E 0x63 0x65 0x73 0x20    // ' dances ' \n\t0x69 0x6E 0x20 0x6F 0x6C 0x64 0x20 0x6D    // 'in old m' \n\t0x6F 0x76 0x69 0x65 0x73 0x2E 0x20 0x20    // 'ovies.  ' \n\t0x41 0x6E 0x64 0x20 0x61 0x73 0x20 0x68    // 'And as h' \n\t0x65 0x20 0x67 0x6F 0x74 0x20 0x6F 0x6C    // 'e got ol' \n\t0x64 0x65 0x72 0x2C 0x20 0x68 0x65 0x20    // 'der, he ' \n\t0x77 0x61 0x74 0x63 0x68 0x65 0x64 0x20    // 'watched ' \n\t0x64 0x61 0x6E 0x63 0x65 0x72 0x73 0x20    // 'dancers ' \n\t0x69 0x6E 0x20 0x41 0x6D 0x65 0x72 0x69    // 'in Ameri' \n\t0x63 0x61 0x6E 0x20 0x6D 0x75 0x73 0x69    // 'can musi' \n\t0x63 0x20 0x76 0x69 0x64 0x65 0x6F 0x73    // 'c videos' \n\t0x2E 0x20 0x20 0x48 0x65 0x20 0x64 0x65    // '.  He de' \n\t0x66 0x69 0x6E 0x69 0x74 0x65 0x6C 0x79    // 'finitely' \n\t0x20 0x6B 0x6E 0x65 0x77 0x20 0x74 0x68    // ' knew th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x65 0x73 0x2E    // 'e moves.' \n\t0x0D 0x0A 0x4F 0x6E 0x65 0x20 0x6D 0x6F    // '??One mo' \n\t0x72 0x6E 0x69 0x6E 0x67 0x2C 0x20 0x47    // 'rning, G' \n\t0x75 0x73 0x74 0x61 0x76 0x65 0x2C 0x20    // 'ustave, ' \n\t0x6E 0x6F 0x77 0x20 0x6A 0x6F 0x62 0x6C    // 'now jobl' \n\t0x65 0x73 0x73 0x2C 0x20 0x62 0x75 0x74    // 'ess, but' \n\t0x20 0x77 0x65 0x61 0x72 0x69 0x6E 0x67    // ' wearing' \n\t0x20 0x69 0x6E 0x20 0x68 0x69 0x73 0x20    // ' in his ' \n\t0x64 0x61 0x6E 0x63 0x69 0x6E 0x67 0x20    // 'dancing ' \n\t0x73 0x68 0x6F 0x65 0x73 0x2C 0x20 0x74    // 'shoes, t' \n\t0x77 0x6F 0x2D 0x73 0x74 0x65 0x70 0x70    // 'wo-stepp' \n\t0x65 0x64 0x20 0x74 0x68 0x72 0x6F 0x75    // 'ed throu' \n\t0x67 0x68 0x20 0x74 0x68 0x65 0x20 0x73    // 'gh the s' \n\t0x74 0x72 0x65 0x65 0x74 0x73 0x20 0x6F    // 'treets o' \n\t0x66 0x20 0x50 0x6F 0x72 0x74 0x6F 0x66    // 'f Portof' \n\t0x69 0x6E 0x6F 0x20 0x61 0x6E 0x64 0x20    // 'ino and ' \n\t0x64 0x69 0x72 0x65 0x63 0x74 0x6C 0x79    // 'directly' \n\t0x20 0x6F 0x6E 0x74 0x6F 0x20 0x74 0x68    // ' onto th' \n\t0x65 0x20 0x73 0x65 0x74 0x20 0x6F 0x66    // 'e set of' \n\t0x20 0x61 0x20 0x6E 0x65 0x77 0x20 0x6D    // ' a new m' \n\t0x6F 0x76 0x69 0x65 0x97 0x72 0x69 0x67    // 'ovierig' \n\t0x68 0x74 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ht in th' \n\t0x65 0x20 0x6D 0x69 0x64 0x64 0x6C 0x65    // 'e middle' \n\t0x20 0x6F 0x66 0x20 0x61 0x20 0x6C 0x6F    // ' of a lo' \n\t0x76 0x65 0x20 0x73 0x63 0x65 0x6E 0x65    // 've scene' \n\t0x2E 0x20 0x20 0x45 0x76 0x65 0x72 0x79    // '.  Every' \n\t0x6F 0x6E 0x65 0x20 0x79 0x65 0x6C 0x6C    // 'one yell' \n\t0x65 0x64 0x20 0x66 0x6F 0x72 0x20 0x68    // 'ed for h' \n\t0x69 0x6D 0x20 0x74 0x6F 0x20 0x6D 0x6F    // 'im to mo' \n\t0x76 0x65 0x20 0x69 0x74 0x2E 0x20 0x20    // 've it.  ' \n\t0x45 0x76 0x65 0x72 0x79 0x6F 0x6E 0x65    // 'Everyone' \n\t0x20 0x65 0x78 0x63 0x65 0x70 0x74 0x20    // ' except ' \n\t0x4D 0x65 0x6C 0x61 0x6E 0x69 0x65 0x2C    // 'Melanie,' \n\t0x20 0x61 0x20 0x79 0x6F 0x75 0x6E 0x67    // ' a young' \n\t0x20 0x64 0x69 0x72 0x65 0x63 0x74 0x6F    // ' directo' \n\t0x72 0x20 0x77 0x68 0x6F 0x20 0x74 0x68    // 'r who th' \n\t0x6F 0x75 0x67 0x68 0x74 0x20 0x47 0x75    // 'ought Gu' \n\t0x73 0x74 0x61 0x76 0x65 0x20 0x77 0x61    // 'stave wa' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x68 0x69    // 's the hi' \n\t0x70 0x70 0x65 0x73 0x74 0x20 0x64 0x61    // 'ppest da' \n\t0x6E 0x63 0x65 0x72 0x20 0x73 0x68 0x65    // 'ncer she' \n\t0x92 0x64 0x20 0x65 0x76 0x65 0x72 0x20    // 'd ever ' \n\t0x73 0x65 0x65 0x6E 0x2E 0x20 0x0D 0x0A    // 'seen. ??' \n\t0x4F 0x6E 0x20 0x74 0x68 0x65 0x20 0x73    // 'On the s' \n\t0x70 0x6F 0x74 0x2C 0x20 0x73 0x68 0x65    // 'pot, she' \n\t0x20 0x73 0x69 0x67 0x6E 0x65 0x64 0x20    // ' signed ' \n\t0x47 0x75 0x73 0x74 0x61 0x76 0x65 0x20    // 'Gustave ' \n\t0x74 0x6F 0x20 0x73 0x74 0x61 0x72 0x20    // 'to star ' \n\t0x69 0x6E 0x20 0x68 0x65 0x72 0x20 0x6E    // 'in her n' \n\t0x65 0x78 0x74 0x20 0x72 0x6F 0x63 0x6B    // 'ext rock' \n\t0x20 0x76 0x69 0x64 0x65 0x6F 0x2E         // ' video.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6B= ktipbio66\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6B, __HELP_NAME(\"ktipbio66\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6B, __HELP_NAME(\"ktipbio66\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio66\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB2 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x38 0x01 0x00 0x82    // '????8??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x75 0x74 0x6C 0x65 0x72    // '??Butler' \n\t0x0D 0x0A 0x41 0x6E 0x20 0x69 0x64 0x65    // '??An ide' \n\t0x61 0x6C 0x20 0x72 0x6F 0x6C 0x65 0x20    // 'al role ' \n\t0x66 0x6F 0x72 0x20 0x47 0x75 0x73 0x74    // 'for Gust' \n\t0x61 0x76 0x65 0x20 0x77 0x6F 0x75 0x6C    // 'ave woul' \n\t0x64 0x20 0x62 0x65 0x20 0x74 0x68 0x65    // 'd be the' \n\t0x20 0x62 0x75 0x74 0x6C 0x65 0x72 0x20    // ' butler ' \n\t0x61 0x74 0x20 0x61 0x20 0x68 0x61 0x75    // 'at a hau' \n\t0x6E 0x74 0x65 0x64 0x20 0x68 0x6F 0x75    // 'nted hou' \n\t0x73 0x65 0x2E 0x20 0x49 0x6E 0x20 0x74    // 'se. In t' \n\t0x68 0x69 0x73 0x20 0x72 0x6F 0x6C 0x65    // 'his role' \n\t0x2C 0x20 0x47 0x75 0x73 0x74 0x61 0x76    // ', Gustav' \n\t0x65 0x20 0x69 0x73 0x20 0x6E 0x6F 0x74    // 'e is not' \n\t0x20 0x72 0x65 0x61 0x6C 0x6C 0x79 0x20    // ' really ' \n\t0x61 0x20 0x62 0x75 0x74 0x6C 0x65 0x72    // 'a butler' \n\t0x2C 0x20 0x62 0x75 0x74 0x20 0x61 0x20    // ', but a ' \n\t0x73 0x65 0x63 0x72 0x65 0x74 0x20 0x61    // 'secret a' \n\t0x67 0x65 0x6E 0x74 0x20 0x69 0x6E 0x20    // 'gent in ' \n\t0x61 0x20 0x62 0x75 0x74 0x6C 0x65 0x72    // 'a butler' \n\t0x20 0x64 0x69 0x73 0x67 0x75 0x69 0x73    // ' disguis' \n\t0x65 0x2E 0x20 0x20 0x54 0x68 0x65 0x20    // 'e.  The ' \n\t0x68 0x61 0x75 0x6E 0x74 0x65 0x64 0x20    // 'haunted ' \n\t0x68 0x6F 0x75 0x73 0x65 0x20 0x69 0x73    // 'house is' \n\t0x20 0x6F 0x77 0x6E 0x65 0x64 0x20 0x62    // ' owned b' \n\t0x79 0x20 0x61 0x6E 0x20 0x65 0x76 0x69    // 'y an evi' \n\t0x6C 0x20 0x6D 0x61 0x6E 0x20 0x77 0x68    // 'l man wh' \n\t0x6F 0x20 0x64 0x6F 0x65 0x73 0x6E 0x92    // 'o doesn' \n\t0x74 0x20 0x6C 0x69 0x6B 0x65 0x20 0x63    // 't like c' \n\t0x68 0x69 0x6C 0x64 0x72 0x65 0x6E 0x2E    // 'hildren.' \n\t0x20 0x20 0x48 0x65 0x20 0x68 0x61 0x73    // '  He has' \n\t0x20 0x61 0x20 0x74 0x65 0x72 0x72 0x69    // ' a terri' \n\t0x62 0x6C 0x65 0x20 0x70 0x6C 0x6F 0x74    // 'ble plot' \n\t0x20 0x74 0x6F 0x20 0x64 0x6F 0x20 0x61    // ' to do a' \n\t0x77 0x61 0x79 0x20 0x77 0x69 0x74 0x68    // 'way with' \n\t0x20 0x63 0x68 0x6F 0x63 0x6F 0x6C 0x61    // ' chocola' \n\t0x74 0x65 0x20 0x61 0x6E 0x64 0x20 0x48    // 'te and H' \n\t0x61 0x6C 0x6C 0x6F 0x77 0x65 0x65 0x6E    // 'alloween' \n\t0x20 0x63 0x61 0x6E 0x64 0x79 0x20 0x66    // ' candy f' \n\t0x6F 0x72 0x65 0x76 0x65 0x72 0x2E 0x20    // 'orever. ' \n\t0x0D 0x0A 0x47 0x75 0x73 0x74 0x61 0x76    // '??Gustav' \n\t0x65 0x20 0x6D 0x75 0x73 0x74 0x20 0x73    // 'e must s' \n\t0x74 0x6F 0x70 0x20 0x68 0x69 0x6D 0x2E    // 'top him.' \n\t0x20 0x20 0x42 0x75 0x74 0x20 0x68 0x6F    // '  But ho' \n\t0x77 0x3F 0x20 0x20 0x4F 0x72 0x20 0x77    // 'w?  Or w' \n\t0x69 0x6C 0x6C 0x20 0x74 0x68 0x65 0x20    // 'ill the ' \n\t0x65 0x76 0x69 0x6C 0x20 0x6F 0x77 0x6E    // 'evil own' \n\t0x65 0x72 0x20 0x67 0x65 0x74 0x20 0x68    // 'er get h' \n\t0x69 0x73 0x20 0x77 0x61 0x79 0x3F 0x20    // 'is way? ' \n\t0x20 0x57 0x69 0x6C 0x6C 0x20 0x61 0x6E    // ' Will an' \n\t0x79 0x6F 0x6E 0x65 0x20 0x65 0x6C 0x73    // 'yone els' \n\t0x65 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'e in the' \n\t0x20 0x68 0x61 0x75 0x6E 0x74 0x65 0x64    // ' haunted' \n\t0x20 0x68 0x6F 0x75 0x73 0x65 0x20 0x68    // ' house h' \n\t0x65 0x6C 0x70 0x20 0x47 0x75 0x73 0x74    // 'elp Gust' \n\t0x61 0x76 0x65 0x3F                        // 'ave?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6C= ktipbio67\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6C, __HELP_NAME(\"ktipbio67\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6C, __HELP_NAME(\"ktipbio67\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio67\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA9 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0D 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x61 0x66 0x65 0x20 0x57    // '??Cafe W' \n\t0x61 0x69 0x74 0x65 0x72 0x0D 0x0A 0x47    // 'aiter??G' \n\t0x75 0x73 0x74 0x61 0x76 0x65 0x20 0x64    // 'ustave d' \n\t0x72 0x65 0x61 0x6D 0x73 0x20 0x6F 0x66    // 'reams of' \n\t0x20 0x73 0x6F 0x6C 0x76 0x69 0x6E 0x67    // ' solving' \n\t0x20 0x63 0x72 0x69 0x6D 0x65 0x73 0x20    // ' crimes ' \n\t0x77 0x68 0x69 0x6C 0x65 0x20 0x68 0x65    // 'while he' \n\t0x20 0x70 0x72 0x65 0x74 0x65 0x6E 0x64    // ' pretend' \n\t0x73 0x20 0x74 0x6F 0x20 0x62 0x65 0x20    // 's to be ' \n\t0x61 0x20 0x73 0x69 0x6E 0x67 0x69 0x6E    // 'a singin' \n\t0x67 0x2F 0x64 0x61 0x6E 0x63 0x69 0x6E    // 'g/dancin' \n\t0x67 0x20 0x77 0x61 0x69 0x74 0x65 0x72    // 'g waiter' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x63 0x61    // ' in a ca' \n\t0x66 0x65 0x2E 0x20 0x20 0x4D 0x61 0x79    // 'fe.  May' \n\t0x62 0x65 0x20 0x68 0x65 0x20 0x63 0x6F    // 'be he co' \n\t0x75 0x6C 0x64 0x20 0x66 0x69 0x6E 0x64    // 'uld find' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x65 0x65    // ' the tee' \n\t0x6E 0x61 0x67 0x65 0x72 0x20 0x77 0x68    // 'nager wh' \n\t0x6F 0x20 0x64 0x69 0x73 0x61 0x70 0x70    // 'o disapp' \n\t0x65 0x61 0x72 0x65 0x64 0x20 0x61 0x20    // 'eared a ' \n\t0x66 0x65 0x77 0x20 0x77 0x65 0x65 0x6B    // 'few week' \n\t0x73 0x20 0x61 0x67 0x6F 0x20 0x66 0x72    // 's ago fr' \n\t0x6F 0x6D 0x20 0x61 0x20 0x6E 0x65 0x61    // 'om a nea' \n\t0x72 0x62 0x79 0x20 0x46 0x72 0x65 0x6E    // 'rby Fren' \n\t0x63 0x68 0x20 0x72 0x65 0x73 0x74 0x61    // 'ch resta' \n\t0x75 0x72 0x61 0x6E 0x74 0x2E 0x20 0x20    // 'urant.  ' \n\t0x43 0x75 0x73 0x74 0x6F 0x6D 0x65 0x72    // 'Customer' \n\t0x73 0x20 0x6B 0x65 0x65 0x70 0x20 0x68    // 's keep h' \n\t0x65 0x61 0x72 0x69 0x6E 0x67 0x20 0x61    // 'earing a' \n\t0x20 0x77 0x65 0x61 0x6B 0x20 0x63 0x72    // ' weak cr' \n\t0x79 0x20 0x66 0x6F 0x72 0x20 0x68 0x65    // 'y for he' \n\t0x6C 0x70 0x2E 0x20 0x20 0x57 0x68 0x61    // 'lp.  Wha' \n\t0x74 0x20 0x63 0x6F 0x75 0x6C 0x64 0x20    // 't could ' \n\t0x68 0x61 0x76 0x65 0x20 0x68 0x61 0x70    // 'have hap' \n\t0x70 0x65 0x6E 0x65 0x64 0x97 0x77 0x61    // 'penedwa' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x62 0x6F    // 's the bo' \n\t0x79 0x20 0x63 0x61 0x70 0x74 0x75 0x72    // 'y captur' \n\t0x65 0x64 0x20 0x61 0x6E 0x64 0x20 0x73    // 'ed and s' \n\t0x68 0x72 0x75 0x6E 0x6B 0x3F 0x20 0x20    // 'hrunk?  ' \n\t0x57 0x69 0x6C 0x6C 0x20 0x47 0x75 0x73    // 'Will Gus' \n\t0x74 0x61 0x76 0x65 0x20 0x6E 0x65 0x65    // 'tave nee' \n\t0x64 0x20 0x68 0x65 0x6C 0x70 0x20 0x66    // 'd help f' \n\t0x72 0x6F 0x6D 0x20 0x61 0x20 0x73 0x6E    // 'rom a sn' \n\t0x69 0x66 0x66 0x69 0x6E 0x67 0x20 0x64    // 'iffing d' \n\t0x6F 0x67 0x20 0x77 0x68 0x6F 0x20 0x6C    // 'og who l' \n\t0x6F 0x76 0x65 0x73 0x20 0x46 0x72 0x65    // 'oves Fre' \n\t0x6E 0x63 0x68 0x20 0x66 0x6F 0x6F 0x64    // 'nch food' \n\t0x3F 0x20 0x20 0x41 0x6E 0x64 0x20 0x68    // '?  And h' \n\t0x6F 0x77 0x20 0x77 0x69 0x6C 0x6C 0x20    // 'ow will ' \n\t0x68 0x65 0x20 0x73 0x6E 0x65 0x61 0x6B    // 'he sneak' \n\t0x20 0x61 0x20 0x64 0x6F 0x67 0x20 0x69    // ' a dog i' \n\t0x6E 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // 'nto the ' \n\t0x72 0x65 0x73 0x74 0x61 0x75 0x72 0x61    // 'restaura' \n\t0x6E 0x74 0x3F                             // 'nt?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6D= ktipbio68\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6D, __HELP_NAME(\"ktipbio68\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6D, __HELP_NAME(\"ktipbio68\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio68\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xC2 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0A 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6D, 0x0)\n\tBYTE\n\t0x03 0x03 0x45 0x78 0x70 0x6C 0x6F 0x72    // '??Explor' \n\t0x65 0x72 0x0D 0x0A 0x54 0x68 0x65 0x20    // 'er??The ' \n\t0x6D 0x6F 0x73 0x74 0x20 0x66 0x75 0x6E    // 'most fun' \n\t0x2C 0x20 0x47 0x75 0x73 0x74 0x61 0x76    // ', Gustav' \n\t0x65 0x20 0x74 0x68 0x69 0x6E 0x6B 0x73    // 'e thinks' \n\t0x2C 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // ', would ' \n\t0x62 0x65 0x20 0x74 0x6F 0x20 0x70 0x6C    // 'be to pl' \n\t0x61 0x79 0x20 0x61 0x6E 0x20 0x65 0x78    // 'ay an ex' \n\t0x70 0x6C 0x6F 0x72 0x65 0x72 0x2E 0x20    // 'plorer. ' \n\t0x47 0x75 0x73 0x74 0x61 0x76 0x65 0x20    // 'Gustave ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x67 0x6F    // 'would go' \n\t0x20 0x73 0x6F 0x6D 0x65 0x77 0x68 0x65    // ' somewhe' \n\t0x72 0x65 0x20 0x6D 0x79 0x73 0x74 0x65    // 're myste' \n\t0x72 0x69 0x6F 0x75 0x73 0x2C 0x20 0x6C    // 'rious, l' \n\t0x69 0x6B 0x65 0x20 0x4D 0x65 0x78 0x69    // 'ike Mexi' \n\t0x63 0x6F 0x20 0x43 0x69 0x74 0x79 0x2C    // 'co City,' \n\t0x20 0x74 0x6F 0x20 0x66 0x69 0x6E 0x64    // ' to find' \n\t0x20 0x68 0x69 0x73 0x20 0x6C 0x6F 0x73    // ' his los' \n\t0x74 0x20 0x66 0x72 0x69 0x65 0x6E 0x64    // 't friend' \n\t0x2C 0x20 0x42 0x65 0x6E 0x65 0x64 0x69    // ', Benedi' \n\t0x63 0x74 0x2E 0x20 0x20 0x42 0x65 0x6E    // 'ct.  Ben' \n\t0x65 0x64 0x69 0x63 0x74 0x20 0x68 0x61    // 'edict ha' \n\t0x73 0x20 0x62 0x65 0x65 0x6E 0x20 0x6D    // 's been m' \n\t0x69 0x73 0x73 0x69 0x6E 0x67 0x20 0x66    // 'issing f' \n\t0x6F 0x72 0x20 0x32 0x20 0x6D 0x6F 0x6E    // 'or 2 mon' \n\t0x74 0x68 0x73 0x2C 0x20 0x61 0x62 0x64    // 'ths, abd' \n\t0x75 0x63 0x74 0x65 0x64 0x20 0x62 0x79    // 'ucted by' \n\t0x20 0x67 0x61 0x6E 0x67 0x73 0x74 0x65    // ' gangste' \n\t0x72 0x73 0x2E 0x20 0x50 0x65 0x6F 0x70    // 'rs. Peop' \n\t0x6C 0x65 0x20 0x69 0x6E 0x20 0x4D 0x65    // 'le in Me' \n\t0x78 0x69 0x63 0x6F 0x20 0x43 0x69 0x74    // 'xico Cit' \n\t0x79 0x20 0x73 0x61 0x79 0x20 0x74 0x68    // 'y say th' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x41    // 'at the A' \n\t0x6D 0x65 0x72 0x69 0x63 0x61 0x6E 0x20    // 'merican ' \n\t0x69 0x73 0x20 0x62 0x65 0x69 0x6E 0x67    // 'is being' \n\t0x20 0x68 0x65 0x6C 0x64 0x20 0x69 0x6E    // ' held in' \n\t0x20 0x61 0x6E 0x20 0x49 0x6E 0x64 0x69    // ' an Indi' \n\t0x61 0x6E 0x20 0x68 0x75 0x74 0x20 0x67    // 'an hut g' \n\t0x75 0x61 0x72 0x64 0x65 0x64 0x20 0x62    // 'uarded b' \n\t0x79 0x20 0x61 0x6E 0x63 0x69 0x65 0x6E    // 'y ancien' \n\t0x74 0x20 0x74 0x75 0x73 0x6B 0x73 0x20    // 't tusks ' \n\t0x74 0x68 0x61 0x74 0x20 0x68 0x61 0x76    // 'that hav' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x70 0x6F    // 'e the po' \n\t0x77 0x65 0x72 0x20 0x74 0x6F 0x20 0x73    // 'wer to s' \n\t0x71 0x75 0x61 0x73 0x68 0x20 0x69 0x6E    // 'quash in' \n\t0x74 0x72 0x75 0x64 0x65 0x72 0x73 0x2E    // 'truders.' \n\t0x20 0x20 0x48 0x6F 0x77 0x20 0x77 0x69    // '  How wi' \n\t0x6C 0x6C 0x20 0x47 0x75 0x73 0x74 0x61    // 'll Gusta' \n\t0x76 0x65 0x20 0x66 0x72 0x65 0x65 0x20    // 've free ' \n\t0x68 0x69 0x73 0x20 0x66 0x72 0x69 0x65    // 'his frie' \n\t0x6E 0x64 0x3F 0x20 0x20 0x57 0x69 0x6C    // 'nd?  Wil' \n\t0x6C 0x20 0x68 0x69 0x73 0x20 0x65 0x79    // 'l his ey' \n\t0x65 0x2D 0x70 0x61 0x74 0x63 0x68 0x20    // 'e-patch ' \n\t0x70 0x72 0x6F 0x74 0x65 0x63 0x74 0x20    // 'protect ' \n\t0x68 0x69 0x6D 0x20 0x66 0x72 0x6F 0x6D    // 'him from' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x75 0x73    // ' the tus' \n\t0x6B 0x73 0x3F 0x20                        // 'ks? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6E= ktipbio69\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6E, __HELP_NAME(\"ktipbio69--CUT\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6E, __HELP_NAME(\"ktipbio69--CUT\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio69\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D1, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x2E 0x2E 0x2E    // '??Cut...' \n\t0x48 0x65 0x6E 0x72 0x79 0x2D 0x2D 0x70    // 'Henry--p' \n\t0x6F 0x70 0x75 0x70 0x31                   // 'opup1' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6F= ktipbio70\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6F, __HELP_NAME(\"ktipbio70--CUT\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6F, __HELP_NAME(\"ktipbio70--CUT\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio70\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6F, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x65 0x6E 0x72 0x79 0x2D    // '??Henry-' \n\t0x2D 0x70 0x6F 0x70 0x75 0x70 0x32         // '-popup2' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_70= ktipbio71\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_70, __HELP_NAME(\"ktipbio7--CUT\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_70, __HELP_NAME(\"ktipbio7--CUT\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_70=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_70, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio71\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_70=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_70, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_70=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_70, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_70=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_70, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x65 0x6E 0x72 0x79 0x2D    // '??Henry-' \n\t0x2D 0x70 0x6F 0x70 0x75 0x70 0x33         // '-popup3' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_71= ktipbio72\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_71, __HELP_NAME(\"ktipbio72--CUT\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_71, __HELP_NAME(\"ktipbio72--CUT\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_71=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_71, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio72\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_71=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_71, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_71=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_71, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_71=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_71, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x65 0x6E 0x72 0x79 0x2D    // '??Henry-' \n\t0x2D 0x70 0x6F 0x70 0x75 0x70 0x34         // '-popup4' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_72= ktipbio73\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_72, __HELP_NAME(\"ktipbio73\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_72, __HELP_NAME(\"ktipbio73\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_72, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio73\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_72, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5E 0x02 0x00 0x01    // '????^???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x64 0x01 0x00 0x82    // '????d??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x03 0x03 0x6A 0x6F 0x6B 0x65 0x73 0x0D    // '??jokes?' \n\t0x0A 0x48 0x69 0x72 0x6F 0x92 0x73 0x20    // '?Hiros ' \n\t0x61 0x62 0x69 0x6C 0x69 0x74 0x79 0x20    // 'ability ' \n\t0x74 0x6F 0x20 0x74 0x65 0x6C 0x6C 0x20    // 'to tell ' \n\t0x6A 0x6F 0x6B 0x65 0x73 0x20 0x61 0x6E    // 'jokes an' \n\t0x64 0x20 0x77 0x72 0x69 0x74 0x65 0x20    // 'd write ' \n\t0x66 0x75 0x6E 0x6E 0x79 0x20 0x70 0x6C    // 'funny pl' \n\t0x61 0x79 0x73 0x20 0x6D 0x61 0x64 0x65    // 'ays made' \n\t0x20 0x68 0x69 0x6D 0x20 0x70 0x6F 0x70    // ' him pop' \n\t0x75 0x6C 0x61 0x72 0x20 0x61 0x72 0x6F    // 'ular aro' \n\t0x75 0x6E 0x64 0x20 0x74 0x68 0x65 0x20    // 'und the ' \n\t0x6E 0x65 0x69 0x67 0x68 0x62 0x6F 0x72    // 'neighbor' \n\t0x68 0x6F 0x6F 0x64 0x2E 0x20 0x20 0x54    // 'hood.  T' \n\t0x68 0x65 0x72 0x65 0x20 0x77 0x65 0x72    // 'here wer' \n\t0x65 0x20 0x61 0x20 0x6C 0x6F 0x74 0x20    // 'e a lot ' \n\t0x6F 0x66 0x20 0x67 0x61 0x6E 0x67 0x73    // 'of gangs' \n\t0x20 0x69 0x6E 0x20 0x68 0x69 0x73 0x20    // ' in his ' \n\t0x61 0x72 0x65 0x61 0x2C 0x20 0x61 0x6E    // 'area, an' \n\t0x64 0x20 0x74 0x6F 0x20 0x6B 0x65 0x65    // 'd to kee' \n\t0x70 0x20 0x74 0x68 0x65 0x20 0x70 0x65    // 'p the pe' \n\t0x61 0x63 0x65 0x2C 0x20 0x68 0x65 0x20    // 'ace, he ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x63 0x61    // 'would ca' \n\t0x73 0x74 0x20 0x74 0x68 0x65 0x20 0x67    // 'st the g' \n\t0x61 0x6E 0x67 0x20 0x6D 0x65 0x6D 0x62    // 'ang memb' \n\t0x65 0x72 0x73 0x20 0x69 0x6E 0x20 0x68    // 'ers in h' \n\t0x69 0x73 0x20 0x70 0x6C 0x61 0x79 0x73    // 'is plays' \n\t0x2E 0x20 0x20 0x54 0x68 0x65 0x73 0x65    // '.  These' \n\t0x20 0x70 0x6C 0x61 0x79 0x73 0x20 0x62    // ' plays b' \n\t0x65 0x63 0x61 0x6D 0x65 0x20 0x73 0x6F    // 'ecame so' \n\t0x20 0x70 0x6F 0x70 0x75 0x6C 0x61 0x72    // ' popular' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x70 0x65    // ' that pe' \n\t0x6F 0x70 0x6C 0x65 0x20 0x66 0x72 0x6F    // 'ople fro' \n\t0x6D 0x20 0x61 0x6C 0x6C 0x20 0x6F 0x76    // 'm all ov' \n\t0x65 0x72 0x20 0x4A 0x61 0x70 0x61 0x6E    // 'er Japan' \n\t0x20 0x73 0x74 0x61 0x72 0x74 0x65 0x64    // ' started' \n\t0x20 0x73 0x68 0x6F 0x77 0x69 0x6E 0x67    // ' showing' \n\t0x20 0x75 0x70 0x20 0x69 0x6E 0x20 0x74    // ' up in t' \n\t0x68 0x65 0x20 0x70 0x6F 0x6F 0x72 0x20    // 'he poor ' \n\t0x6E 0x65 0x69 0x67 0x68 0x62 0x6F 0x72    // 'neighbor' \n\t0x68 0x6F 0x6F 0x64 0x20 0x6A 0x75 0x73    // 'hood jus' \n\t0x74 0x20 0x74 0x6F 0x20 0x73 0x65 0x65    // 't to see' \n\t0x20 0x48 0x69 0x72 0x6F 0x92 0x73 0x20    // ' Hiros ' \n\t0x6D 0x61 0x73 0x74 0x65 0x72 0x66 0x75    // 'masterfu' \n\t0x6C 0x20 0x63 0x6F 0x6D 0x65 0x64 0x69    // 'l comedi' \n\t0x65 0x73 0x2E 0x20 0x0D 0x0A 0x4D 0x65    // 'es. ??Me' \n\t0x6C 0x61 0x6E 0x69 0x65 0x20 0x77 0x61    // 'lanie wa' \n\t0x73 0x20 0x76 0x69 0x73 0x69 0x74 0x69    // 's visiti' \n\t0x6E 0x67 0x20 0x66 0x72 0x69 0x65 0x6E    // 'ng frien' \n\t0x64 0x73 0x20 0x69 0x6E 0x20 0x4A 0x61    // 'ds in Ja' \n\t0x70 0x61 0x6E 0x20 0x77 0x68 0x65 0x6E    // 'pan when' \n\t0x20 0x73 0x68 0x65 0x20 0x68 0x65 0x61    // ' she hea' \n\t0x72 0x64 0x20 0x6F 0x66 0x20 0x79 0x6F    // 'rd of yo' \n\t0x75 0x6E 0x67 0x20 0x48 0x69 0x72 0x6F    // 'ung Hiro' \n\t0x20 0x61 0x6E 0x64 0x20 0x68 0x69 0x73    // ' and his' \n\t0x20 0x70 0x6C 0x61 0x79 0x73 0x2E 0x20    // ' plays. ' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x73 0x68    // ' When sh' \n\t0x65 0x20 0x73 0x61 0x77 0x20 0x68 0x69    // 'e saw hi' \n\t0x73 0x20 0x77 0x6F 0x72 0x6B 0x20 0x61    // 's work a' \n\t0x6E 0x64 0x20 0x68 0x65 0x61 0x72 0x64    // 'nd heard' \n\t0x20 0x74 0x68 0x65 0x20 0x65 0x6E 0x74    // ' the ent' \n\t0x69 0x72 0x65 0x20 0x6E 0x65 0x69 0x67    // 'ire neig' \n\t0x68 0x62 0x6F 0x72 0x68 0x6F 0x6F 0x64    // 'hborhood' \n\t0x20 0x6C 0x61 0x75 0x67 0x68 0x69 0x6E    // ' laughin' \n\t0x67 0x2C 0x20 0x73 0x68 0x65 0x20 0x6B    // 'g, she k' \n\t0x6E 0x65 0x77 0x20 0x74 0x68 0x61 0x74    // 'new that' \n\t0x20 0x48 0x69 0x72 0x6F 0x20 0x77 0x6F    // ' Hiro wo' \n\t0x75 0x6C 0x64 0x20 0x62 0x65 0x20 0x67    // 'uld be g' \n\t0x72 0x65 0x61 0x74 0x20 0x74 0x6F 0x20    // 'reat to ' \n\t0x77 0x6F 0x72 0x6B 0x20 0x77 0x69 0x74    // 'work wit' \n\t0x68 0x20 0x6F 0x6E 0x20 0x61 0x20 0x6D    // 'h on a m' \n\t0x6F 0x76 0x69 0x65 0x2E 0x20 0x20 0x48    // 'ovie.  H' \n\t0x69 0x72 0x6F 0x20 0x77 0x61 0x73 0x20    // 'iro was ' \n\t0x74 0x68 0x72 0x69 0x6C 0x6C 0x65 0x64    // 'thrilled' \n\t0x20 0x61 0x6E 0x64 0x20 0x61 0x67 0x72    // ' and agr' \n\t0x65 0x65 0x64 0x20 0x69 0x6D 0x6D 0x65    // 'eed imme' \n\t0x64 0x69 0x61 0x74 0x65 0x6C 0x79 0x2E    // 'diately.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_73= ktipbio74\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_73, __HELP_NAME(\"ktipbio74\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_73, __HELP_NAME(\"ktipbio74\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_AD=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_73, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio74\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_AD=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_73, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_AD=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_AD, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x79 0x02 0x00 0x01    // '????y???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x92 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_AD=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_AD, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x6F 0x6F 0x64 0x20 0x54    // '??Food T' \n\t0x65 0x73 0x74 0x65 0x72 0x0D 0x0A 0x48    // 'ester??H' \n\t0x69 0x72 0x6F 0x20 0x6C 0x6F 0x76 0x65    // 'iro love' \n\t0x73 0x20 0x74 0x6F 0x20 0x65 0x61 0x74    // 's to eat' \n\t0x20 0x61 0x6E 0x64 0x20 0x74 0x68 0x69    // ' and thi' \n\t0x6E 0x6B 0x73 0x20 0x69 0x74 0x20 0x77    // 'nks it w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x62 0x65 0x20    // 'ould be ' \n\t0x63 0x6F 0x6F 0x6C 0x20 0x74 0x6F 0x20    // 'cool to ' \n\t0x70 0x6C 0x61 0x79 0x20 0x61 0x20 0x66    // 'play a f' \n\t0x6F 0x6F 0x64 0x20 0x74 0x65 0x73 0x74    // 'ood test' \n\t0x65 0x72 0x20 0x66 0x6F 0x72 0x20 0x74    // 'er for t' \n\t0x68 0x65 0x20 0x6F 0x77 0x6E 0x65 0x72    // 'he owner' \n\t0x20 0x6F 0x66 0x20 0x61 0x20 0x68 0x61    // ' of a ha' \n\t0x75 0x6E 0x74 0x65 0x64 0x20 0x68 0x6F    // 'unted ho' \n\t0x75 0x73 0x65 0x2E 0x20 0x20 0x54 0x68    // 'use.  Th' \n\t0x65 0x20 0x6F 0x6E 0x6C 0x79 0x20 0x70    // 'e only p' \n\t0x72 0x6F 0x62 0x6C 0x65 0x6D 0x20 0x69    // 'roblem i' \n\t0x73 0x20 0x74 0x68 0x61 0x74 0x20 0x48    // 's that H' \n\t0x69 0x72 0x6F 0x20 0x69 0x73 0x20 0x74    // 'iro is t' \n\t0x68 0x65 0x20 0x6E 0x65 0x77 0x65 0x73    // 'he newes' \n\t0x74 0x20 0x6F 0x66 0x20 0x74 0x68 0x72    // 't of thr' \n\t0x65 0x65 0x20 0x66 0x6F 0x6F 0x64 0x20    // 'ee food ' \n\t0x74 0x65 0x73 0x74 0x65 0x72 0x73 0x20    // 'testers ' \n\t0x77 0x68 0x6F 0x20 0x68 0x61 0x76 0x65    // 'who have' \n\t0x20 0x62 0x65 0x65 0x6E 0x20 0x61 0x74    // ' been at' \n\t0x20 0x74 0x68 0x65 0x20 0x68 0x6F 0x75    // ' the hou' \n\t0x73 0x65 0x20 0x69 0x6E 0x20 0x74 0x68    // 'se in th' \n\t0x65 0x20 0x6C 0x61 0x73 0x74 0x20 0x74    // 'e last t' \n\t0x68 0x72 0x65 0x65 0x20 0x64 0x61 0x79    // 'hree day' \n\t0x73 0x2E 0x20 0x20 0x4F 0x6E 0x65 0x20    // 's.  One ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x6F    // 'of the o' \n\t0x74 0x68 0x65 0x72 0x20 0x66 0x6F 0x6F    // 'ther foo' \n\t0x64 0x20 0x74 0x65 0x73 0x74 0x65 0x72    // 'd tester' \n\t0x73 0x20 0x6C 0x65 0x66 0x74 0x20 0x61    // 's left a' \n\t0x66 0x74 0x65 0x72 0x20 0x74 0x77 0x6F    // 'fter two' \n\t0x20 0x64 0x61 0x79 0x73 0x20 0x77 0x69    // ' days wi' \n\t0x74 0x68 0x20 0x68 0x69 0x73 0x20 0x63    // 'th his c' \n\t0x6F 0x6C 0x6C 0x61 0x72 0x20 0x70 0x75    // 'ollar pu' \n\t0x6C 0x6C 0x65 0x64 0x20 0x75 0x70 0x20    // 'lled up ' \n\t0x61 0x72 0x6F 0x75 0x6E 0x64 0x20 0x68    // 'around h' \n\t0x69 0x73 0x20 0x6E 0x6F 0x73 0x65 0x2E    // 'is nose.' \n\t0x20 0x20 0x41 0x6E 0x6F 0x74 0x68 0x65    // '  Anothe' \n\t0x72 0x20 0x74 0x65 0x73 0x74 0x65 0x72    // 'r tester' \n\t0x20 0x6C 0x65 0x66 0x74 0x20 0x61 0x66    // ' left af' \n\t0x74 0x65 0x72 0x20 0x6F 0x6E 0x6C 0x79    // 'ter only' \n\t0x20 0x6F 0x6E 0x65 0x20 0x64 0x61 0x79    // ' one day' \n\t0x2C 0x20 0x61 0x6E 0x64 0x20 0x68 0x65    // ', and he' \n\t0x20 0x77 0x61 0x73 0x20 0x77 0x72 0x61    // ' was wra' \n\t0x70 0x70 0x65 0x64 0x20 0x69 0x6E 0x20    // 'pped in ' \n\t0x62 0x61 0x6E 0x64 0x61 0x67 0x65 0x73    // 'bandages' \n\t0x2E 0x20 0x0D 0x0A 0x57 0x68 0x61 0x74    // '. ??What' \n\t0x20 0x69 0x73 0x20 0x69 0x74 0x20 0x77    // ' is it w' \n\t0x69 0x74 0x68 0x20 0x74 0x68 0x65 0x20    // 'ith the ' \n\t0x63 0x6F 0x6F 0x6B 0x20 0x74 0x68 0x61    // 'cook tha' \n\t0x74 0x27 0x73 0x20 0x63 0x61 0x75 0x73    // 't's caus' \n\t0x69 0x6E 0x67 0x20 0x61 0x6C 0x6C 0x20    // 'ing all ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x74    // 'of the t' \n\t0x65 0x73 0x74 0x65 0x72 0x73 0x20 0x74    // 'esters t' \n\t0x6F 0x20 0x73 0x61 0x79 0x20 0x22 0x53    // 'o say \"S' \n\t0x65 0x65 0x20 0x79 0x61 0x21 0x22 0x3F    // 'ee ya!\"?' \n\t0x20 0x20 0x57 0x68 0x79 0x20 0x64 0x6F    // '  Why do' \n\t0x65 0x73 0x6E 0x92 0x74 0x20 0x56 0x65    // 'esnt Ve' \n\t0x6E 0x69 0x65 0x2C 0x20 0x74 0x68 0x65    // 'nie, the' \n\t0x20 0x6F 0x77 0x6E 0x65 0x72 0x20 0x6F    // ' owner o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x68 0x6F    // 'f the ho' \n\t0x75 0x73 0x65 0x2C 0x20 0x74 0x72 0x75    // 'use, tru' \n\t0x73 0x74 0x20 0x74 0x68 0x65 0x20 0x63    // 'st the c' \n\t0x6F 0x6F 0x6B 0x20 0x6F 0x72 0x20 0x74    // 'ook or t' \n\t0x68 0x65 0x20 0x73 0x6F 0x75 0x73 0x2D    // 'he sous-' \n\t0x63 0x68 0x65 0x66 0x3F 0x20 0x20 0x57    // 'chef?  W' \n\t0x69 0x6C 0x6C 0x20 0x48 0x69 0x72 0x6F    // 'ill Hiro' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x6F 0x75    // ' find ou' \n\t0x74 0x20 0x77 0x68 0x61 0x74 0x92 0x73    // 't whats' \n\t0x20 0x73 0x70 0x6F 0x69 0x6C 0x69 0x6E    // ' spoilin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x73 0x6F    // 'g the so' \n\t0x75 0x70 0x2C 0x20 0x6F 0x72 0x20 0x77    // 'up, or w' \n\t0x69 0x6C 0x6C 0x20 0x48 0x69 0x72 0x6F    // 'ill Hiro' \n\t0x20 0x62 0x65 0x20 0x74 0x68 0x65 0x20    // ' be the ' \n\t0x6E 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'next to ' \n\t0x67 0x6F 0x3F                             // 'go?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_74= ktipbio75\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_74, __HELP_NAME(\"ktipbio75\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_74, __HELP_NAME(\"ktipbio75\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_74=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_74, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio75\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_74=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_74, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0D 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_74=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_74, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x32 0x03 0x00 0x01    // '????2???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xDE 0x02 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_74=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_74, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x65 0x6D 0x62 0x65 0x72    // '??Member' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x4B 0x69 0x64 0x73 0x27 0x20 0x4D 0x79    // 'Kids' My' \n\t0x73 0x74 0x65 0x72 0x79 0x20 0x43 0x6C    // 'stery Cl' \n\t0x75 0x62 0x0D 0x0A 0x48 0x69 0x72 0x6F    // 'ub??Hiro' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x6C    // ' would l' \n\t0x69 0x6B 0x65 0x20 0x74 0x6F 0x20 0x70    // 'ike to p' \n\t0x6C 0x61 0x79 0x20 0x61 0x20 0x6D 0x65    // 'lay a me' \n\t0x6D 0x62 0x65 0x72 0x20 0x6F 0x66 0x20    // 'mber of ' \n\t0x74 0x68 0x65 0x20 0x4B 0x69 0x64 0x73    // 'the Kids' \n\t0x27 0x20 0x4D 0x79 0x73 0x74 0x65 0x72    // '' Myster' \n\t0x79 0x20 0x43 0x6C 0x75 0x62 0x2C 0x20    // 'y Club, ' \n\t0x61 0x20 0x67 0x72 0x6F 0x75 0x70 0x20    // 'a group ' \n\t0x6F 0x66 0x20 0x79 0x6F 0x75 0x6E 0x67    // 'of young' \n\t0x20 0x64 0x65 0x74 0x65 0x63 0x74 0x69    // ' detecti' \n\t0x76 0x65 0x73 0x20 0x77 0x68 0x6F 0x20    // 'ves who ' \n\t0x6C 0x69 0x6B 0x65 0x20 0x74 0x6F 0x20    // 'like to ' \n\t0x73 0x6F 0x6C 0x76 0x65 0x20 0x6D 0x79    // 'solve my' \n\t0x73 0x74 0x65 0x72 0x69 0x65 0x73 0x2E    // 'steries.' \n\t0x20 0x20 0x54 0x68 0x65 0x20 0x68 0x65    // '  The he' \n\t0x69 0x72 0x20 0x74 0x6F 0x20 0x61 0x20    // 'ir to a ' \n\t0x73 0x6F 0x66 0x74 0x20 0x64 0x72 0x69    // 'soft dri' \n\t0x6E 0x6B 0x20 0x66 0x6F 0x72 0x74 0x75    // 'nk fortu' \n\t0x6E 0x65 0x20 0x68 0x61 0x73 0x20 0x62    // 'ne has b' \n\t0x65 0x65 0x6E 0x20 0x6B 0x69 0x64 0x6E    // 'een kidn' \n\t0x61 0x70 0x70 0x65 0x64 0x20 0x61 0x6E    // 'apped an' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x4B 0x69    // 'd the Ki' \n\t0x64 0x73 0x20 0x4D 0x79 0x73 0x74 0x65    // 'ds Myste' \n\t0x72 0x79 0x20 0x43 0x6C 0x75 0x62 0x20    // 'ry Club ' \n\t0x69 0x73 0x20 0x6F 0x75 0x74 0x20 0x74    // 'is out t' \n\t0x6F 0x20 0x66 0x69 0x6E 0x64 0x20 0x68    // 'o find h' \n\t0x69 0x6D 0x2E 0x20 0x20 0x53 0x69 0x6E    // 'im.  Sin' \n\t0x63 0x65 0x20 0x74 0x68 0x65 0x20 0x73    // 'ce the s' \n\t0x6F 0x64 0x61 0x20 0x6B 0x69 0x6E 0x67    // 'oda king' \n\t0x20 0x77 0x61 0x73 0x20 0x6C 0x61 0x73    // ' was las' \n\t0x74 0x20 0x73 0x70 0x6F 0x74 0x74 0x65    // 't spotte' \n\t0x64 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 'd at the' \n\t0x20 0x70 0x61 0x72 0x6B 0x20 0x6E 0x65    // ' park ne' \n\t0x61 0x72 0x20 0x74 0x68 0x65 0x20 0x77    // 'ar the w' \n\t0x61 0x74 0x65 0x72 0x66 0x72 0x6F 0x6E    // 'aterfron' \n\t0x74 0x2C 0x20 0x48 0x69 0x72 0x6F 0x20    // 't, Hiro ' \n\t0x61 0x6E 0x64 0x20 0x68 0x69 0x73 0x20    // 'and his ' \n\t0x66 0x72 0x69 0x65 0x6E 0x64 0x73 0x20    // 'friends ' \n\t0x62 0x65 0x67 0x69 0x6E 0x20 0x61 0x73    // 'begin as' \n\t0x6B 0x69 0x6E 0x67 0x20 0x71 0x75 0x65    // 'king que' \n\t0x73 0x74 0x69 0x6F 0x6E 0x73 0x20 0x69    // 'stions i' \n\t0x6E 0x20 0x74 0x68 0x61 0x74 0x20 0x61    // 'n that a' \n\t0x72 0x65 0x61 0x2E 0x20 0x0D 0x0A 0x55    // 'rea. ??U' \n\t0x6E 0x66 0x6F 0x72 0x74 0x75 0x6E 0x61    // 'nfortuna' \n\t0x74 0x65 0x6C 0x79 0x2C 0x20 0x6E 0x6F    // 'tely, no' \n\t0x20 0x6F 0x6E 0x65 0x20 0x73 0x65 0x65    // ' one see' \n\t0x6D 0x73 0x20 0x74 0x6F 0x20 0x6B 0x6E    // 'ms to kn' \n\t0x6F 0x77 0x20 0x61 0x6E 0x79 0x74 0x68    // 'ow anyth' \n\t0x69 0x6E 0x67 0x20 0x61 0x62 0x6F 0x75    // 'ing abou' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x6B 0x69    // 't the ki' \n\t0x64 0x6E 0x61 0x70 0x70 0x69 0x6E 0x67    // 'dnapping' \n\t0x2E 0x20 0x20 0x54 0x68 0x65 0x20 0x43    // '.  The C' \n\t0x6C 0x75 0x62 0x20 0x6D 0x65 0x6D 0x62    // 'lub memb' \n\t0x65 0x72 0x73 0x20 0x73 0x70 0x65 0x6E    // 'ers spen' \n\t0x64 0x20 0x68 0x6F 0x75 0x72 0x73 0x20    // 'd hours ' \n\t0x61 0x73 0x6B 0x69 0x6E 0x67 0x20 0x71    // 'asking q' \n\t0x75 0x65 0x73 0x74 0x69 0x6F 0x6E 0x73    // 'uestions' \n\t0x20 0x61 0x6E 0x64 0x20 0x6C 0x6F 0x6F    // ' and loo' \n\t0x6B 0x69 0x6E 0x67 0x20 0x66 0x6F 0x72    // 'king for' \n\t0x20 0x63 0x6C 0x75 0x65 0x73 0x2C 0x20    // ' clues, ' \n\t0x62 0x75 0x74 0x20 0x66 0x69 0x6E 0x64    // 'but find' \n\t0x20 0x6E 0x6F 0x74 0x68 0x69 0x6E 0x67    // ' nothing' \n\t0x2E 0x20 0x4A 0x75 0x73 0x74 0x20 0x61    // '. Just a' \n\t0x73 0x20 0x74 0x68 0x65 0x79 0x20 0x61    // 's they a' \n\t0x72 0x65 0x20 0x62 0x65 0x63 0x6F 0x6D    // 're becom' \n\t0x69 0x6E 0x67 0x20 0x64 0x69 0x73 0x63    // 'ing disc' \n\t0x6F 0x75 0x72 0x61 0x67 0x65 0x64 0x2C    // 'ouraged,' \n\t0x20 0x74 0x68 0x65 0x79 0x20 0x68 0x65    // ' they he' \n\t0x61 0x72 0x20 0x61 0x20 0x73 0x6D 0x61    // 'ar a sma' \n\t0x6C 0x6C 0x20 0x76 0x6F 0x69 0x63 0x65    // 'll voice' \n\t0x20 0x63 0x61 0x6C 0x6C 0x20 0x6F 0x75    // ' call ou' \n\t0x74 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 't to the' \n\t0x6D 0x2E 0x20 0x20 0x54 0x68 0x65 0x79    // 'm.  They' \n\t0x20 0x6C 0x6F 0x6F 0x6B 0x20 0x64 0x6F    // ' look do' \n\t0x77 0x6E 0x20 0x74 0x6F 0x77 0x61 0x72    // 'wn towar' \n\t0x64 0x20 0x74 0x68 0x65 0x69 0x72 0x20    // 'd their ' \n\t0x66 0x65 0x65 0x74 0x20 0x61 0x6E 0x64    // 'feet and' \n\t0x20 0x66 0x69 0x6E 0x64 0x2C 0x20 0x6D    // ' find, m' \n\t0x75 0x63 0x68 0x20 0x74 0x6F 0x20 0x74    // 'uch to t' \n\t0x68 0x65 0x69 0x72 0x20 0x61 0x73 0x74    // 'heir ast' \n\t0x6F 0x6E 0x69 0x73 0x68 0x6D 0x65 0x6E    // 'onishmen' \n\t0x74 0x2C 0x20 0x61 0x20 0x6D 0x69 0x6E    // 't, a min' \n\t0x69 0x61 0x74 0x75 0x72 0x65 0x20 0x77    // 'iature w' \n\t0x6F 0x6D 0x61 0x6E 0x2C 0x20 0x6F 0x6E    // 'oman, on' \n\t0x6C 0x79 0x20 0x61 0x20 0x66 0x65 0x77    // 'ly a few' \n\t0x20 0x69 0x6E 0x63 0x68 0x65 0x73 0x20    // ' inches ' \n\t0x74 0x61 0x6C 0x6C 0x21 0x20 0x0D 0x0A    // 'tall! ??' \n\t0x57 0x68 0x6F 0x20 0x69 0x73 0x20 0x74    // 'Who is t' \n\t0x68 0x69 0x73 0x20 0x77 0x6F 0x6D 0x61    // 'his woma' \n\t0x6E 0x2C 0x20 0x61 0x6E 0x64 0x20 0x69    // 'n, and i' \n\t0x73 0x20 0x73 0x68 0x65 0x20 0x63 0x6F    // 's she co' \n\t0x6E 0x6E 0x65 0x63 0x74 0x65 0x64 0x20    // 'nnected ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x64    // 'to the d' \n\t0x69 0x73 0x61 0x70 0x70 0x65 0x61 0x72    // 'isappear' \n\t0x61 0x6E 0x63 0x65 0x20 0x6F 0x66 0x20    // 'ance of ' \n\t0x74 0x68 0x65 0x20 0x73 0x6F 0x66 0x74    // 'the soft' \n\t0x20 0x64 0x72 0x69 0x6E 0x6B 0x20 0x68    // ' drink h' \n\t0x65 0x69 0x72 0x3F                        // 'eir?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_75= ktipbio76\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_75, __HELP_NAME(\"ktipbio76\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_75, __HELP_NAME(\"ktipbio76\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_75, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio76\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_75, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x33 0x01 0x00 0x00    // '????3???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8A 0x03 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3C 0x03 0x00 0x82    // '????<??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7C, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x6F 0x74 0x2D 0x41 0x69    // '??Hot-Ai' \n\t0x72 0x20 0x42 0x61 0x6C 0x6C 0x6F 0x6F    // 'r Balloo' \n\t0x6E 0x20 0x50 0x69 0x6C 0x6F 0x74 0x0D    // 'n Pilot?' \n\t0x0A 0x48 0x69 0x72 0x6F 0x20 0x74 0x68    // '?Hiro th' \n\t0x69 0x6E 0x6B 0x73 0x20 0x68 0x65 0x20    // 'inks he ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x62 0x65    // 'would be' \n\t0x20 0x61 0x20 0x67 0x72 0x65 0x61 0x74    // ' a great' \n\t0x20 0x68 0x6F 0x74 0x2D 0x61 0x69 0x72    // ' hot-air' \n\t0x20 0x62 0x61 0x6C 0x6C 0x6F 0x6F 0x6E    // ' balloon' \n\t0x20 0x70 0x69 0x6C 0x6F 0x74 0x20 0x77    // ' pilot w' \n\t0x68 0x6F 0x20 0x6A 0x75 0x73 0x74 0x20    // 'ho just ' \n\t0x63 0x72 0x61 0x73 0x68 0x65 0x64 0x20    // 'crashed ' \n\t0x69 0x6E 0x20 0x68 0x69 0x73 0x20 0x62    // 'in his b' \n\t0x61 0x6C 0x6C 0x6F 0x6F 0x6E 0x2E 0x20    // 'alloon. ' \n\t0x20 0x48 0x65 0x20 0x63 0x61 0x6E 0x20    // ' He can ' \n\t0x73 0x65 0x65 0x20 0x68 0x69 0x6D 0x73    // 'see hims' \n\t0x65 0x6C 0x66 0x20 0x72 0x65 0x67 0x61    // 'elf rega' \n\t0x69 0x6E 0x69 0x6E 0x67 0x20 0x63 0x6F    // 'ining co' \n\t0x6E 0x73 0x63 0x69 0x6F 0x75 0x73 0x6E    // 'nsciousn' \n\t0x65 0x73 0x73 0x20 0x61 0x6E 0x64 0x20    // 'ess and ' \n\t0x74 0x72 0x79 0x69 0x6E 0x67 0x20 0x74    // 'trying t' \n\t0x6F 0x20 0x72 0x65 0x6D 0x65 0x6D 0x62    // 'o rememb' \n\t0x65 0x72 0x20 0x77 0x68 0x65 0x72 0x65    // 'er where' \n\t0x20 0x68 0x65 0x20 0x69 0x73 0x2C 0x20    // ' he is, ' \n\t0x68 0x6F 0x77 0x20 0x68 0x65 0x20 0x61    // 'how he a' \n\t0x72 0x72 0x69 0x76 0x65 0x64 0x20 0x68    // 'rrived h' \n\t0x65 0x72 0x65 0x2C 0x20 0x61 0x6E 0x64    // 'ere, and' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x68    // ' where h' \n\t0x69 0x73 0x20 0x68 0x6F 0x74 0x2D 0x61    // 'is hot-a' \n\t0x69 0x72 0x20 0x62 0x61 0x6C 0x6C 0x6F    // 'ir ballo' \n\t0x6F 0x6E 0x20 0x69 0x73 0x2E 0x20 0x54    // 'on is. T' \n\t0x68 0x65 0x20 0x6C 0x61 0x73 0x74 0x20    // 'he last ' \n\t0x74 0x68 0x69 0x6E 0x67 0x20 0x68 0x65    // 'thing he' \n\t0x20 0x72 0x65 0x6D 0x65 0x6D 0x62 0x65    // ' remembe' \n\t0x72 0x73 0x20 0x69 0x73 0x20 0x74 0x68    // 'rs is th' \n\t0x61 0x74 0x20 0x68 0x65 0x20 0x77 0x61    // 'at he wa' \n\t0x73 0x20 0x66 0x6C 0x79 0x69 0x6E 0x67    // 's flying' \n\t0x20 0x68 0x69 0x67 0x68 0x20 0x69 0x6E    // ' high in' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x69 0x72    // ' the air' \n\t0x20 0x61 0x62 0x6F 0x76 0x65 0x20 0x74    // ' above t' \n\t0x68 0x65 0x20 0x6A 0x75 0x6E 0x67 0x6C    // 'he jungl' \n\t0x65 0x2E 0x20 0x20 0x48 0x65 0x20 0x73    // 'e.  He s' \n\t0x69 0x6D 0x70 0x6C 0x79 0x20 0x63 0x61    // 'imply ca' \n\t0x6E 0x92 0x74 0x20 0x72 0x65 0x6D 0x65    // 'nt reme' \n\t0x6D 0x62 0x65 0x72 0x20 0x77 0x68 0x61    // 'mber wha' \n\t0x74 0x20 0x68 0x61 0x70 0x70 0x65 0x6E    // 't happen' \n\t0x65 0x64 0x20 0x61 0x66 0x74 0x65 0x72    // 'ed after' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x6F 0x72    // ' that or' \n\t0x20 0x68 0x6F 0x77 0x20 0x68 0x65 0x20    // ' how he ' \n\t0x63 0x61 0x6D 0x65 0x20 0x74 0x6F 0x20    // 'came to ' \n\t0x62 0x65 0x20 0x75 0x6E 0x63 0x6F 0x6E    // 'be uncon' \n\t0x73 0x63 0x69 0x6F 0x75 0x73 0x2E 0x20    // 'scious. ' \n\t0x20 0x48 0x69 0x72 0x6F 0x20 0x73 0x65    // ' Hiro se' \n\t0x65 0x73 0x20 0x61 0x20 0x73 0x6D 0x61    // 'es a sma' \n\t0x6C 0x6C 0x20 0x76 0x69 0x6C 0x6C 0x61    // 'll villa' \n\t0x67 0x65 0x20 0x6E 0x65 0x61 0x72 0x62    // 'ge nearb' \n\t0x79 0x20 0x61 0x6E 0x64 0x20 0x64 0x65    // 'y and de' \n\t0x63 0x69 0x64 0x65 0x73 0x20 0x74 0x6F    // 'cides to' \n\t0x20 0x73 0x65 0x65 0x20 0x69 0x66 0x20    // ' see if ' \n\t0x68 0x65 0x20 0x63 0x61 0x6E 0x20 0x66    // 'he can f' \n\t0x69 0x6E 0x64 0x20 0x73 0x6F 0x6D 0x65    // 'ind some' \n\t0x6F 0x6E 0x65 0x20 0x77 0x68 0x6F 0x20    // 'one who ' \n\t0x6B 0x6E 0x6F 0x77 0x73 0x20 0x73 0x6F    // 'knows so' \n\t0x6D 0x65 0x74 0x68 0x69 0x6E 0x67 0x20    // 'mething ' \n\t0x61 0x62 0x6F 0x75 0x74 0x20 0x68 0x69    // 'about hi' \n\t0x73 0x20 0x62 0x61 0x6C 0x6C 0x6F 0x6F    // 's balloo' \n\t0x6E 0x2E 0x20 0x20 0x57 0x69 0x74 0x68    // 'n.  With' \n\t0x6F 0x75 0x74 0x20 0x69 0x74 0x2C 0x20    // 'out it, ' \n\t0x48 0x69 0x72 0x6F 0x20 0x77 0x6F 0x6E    // 'Hiro won' \n\t0x64 0x65 0x72 0x73 0x20 0x68 0x6F 0x77    // 'ders how' \n\t0x20 0x68 0x65 0x20 0x77 0x69 0x6C 0x6C    // ' he will' \n\t0x20 0x65 0x76 0x65 0x72 0x20 0x67 0x65    // ' ever ge' \n\t0x74 0x20 0x68 0x6F 0x6D 0x65 0x2E 0x0D    // 't home.?' \n\t0x0A 0x41 0x73 0x20 0x68 0x65 0x20 0x65    // '?As he e' \n\t0x6E 0x74 0x65 0x72 0x73 0x20 0x74 0x68    // 'nters th' \n\t0x65 0x20 0x76 0x69 0x6C 0x6C 0x61 0x67    // 'e villag' \n\t0x65 0x2C 0x20 0x48 0x69 0x72 0x6F 0x20    // 'e, Hiro ' \n\t0x73 0x65 0x65 0x73 0x20 0x73 0x65 0x76    // 'sees sev' \n\t0x65 0x72 0x61 0x6C 0x20 0x70 0x65 0x6F    // 'eral peo' \n\t0x70 0x6C 0x65 0x2C 0x20 0x61 0x6C 0x6C    // 'ple, all' \n\t0x20 0x75 0x6E 0x63 0x6F 0x6E 0x73 0x63    // ' unconsc' \n\t0x69 0x6F 0x75 0x73 0x2C 0x20 0x6C 0x79    // 'ious, ly' \n\t0x69 0x6E 0x67 0x20 0x6F 0x6E 0x20 0x74    // 'ing on t' \n\t0x68 0x65 0x20 0x67 0x72 0x6F 0x75 0x6E    // 'he groun' \n\t0x64 0x2E 0x20 0x20 0x48 0x69 0x72 0x6F    // 'd.  Hiro' \n\t0x20 0x63 0x61 0x6E 0x20 0x74 0x65 0x6C    // ' can tel' \n\t0x6C 0x20 0x74 0x68 0x61 0x74 0x20 0x74    // 'l that t' \n\t0x68 0x65 0x72 0x65 0x20 0x69 0x73 0x20    // 'here is ' \n\t0x73 0x6F 0x6D 0x65 0x74 0x68 0x69 0x6E    // 'somethin' \n\t0x67 0x20 0x76 0x65 0x72 0x79 0x20 0x77    // 'g very w' \n\t0x72 0x6F 0x6E 0x67 0x20 0x67 0x6F 0x69    // 'rong goi' \n\t0x6E 0x67 0x20 0x6F 0x6E 0x2E 0x20 0x20    // 'ng on.  ' \n\t0x48 0x65 0x20 0x68 0x65 0x61 0x72 0x73    // 'He hears' \n\t0x20 0x6C 0x61 0x75 0x67 0x68 0x74 0x65    // ' laughte' \n\t0x72 0x20 0x63 0x6F 0x6D 0x69 0x6E 0x67    // 'r coming' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x6F 0x6E    // ' from on' \n\t0x65 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'e of the' \n\t0x20 0x68 0x75 0x74 0x73 0x20 0x61 0x6E    // ' huts an' \n\t0x64 0x20 0x64 0x65 0x63 0x69 0x64 0x65    // 'd decide' \n\t0x73 0x20 0x74 0x6F 0x20 0x73 0x6E 0x65    // 's to sne' \n\t0x61 0x6B 0x20 0x63 0x6C 0x6F 0x73 0x65    // 'ak close' \n\t0x72 0x20 0x74 0x6F 0x20 0x73 0x65 0x65    // 'r to see' \n\t0x20 0x77 0x68 0x6F 0x20 0x69 0x74 0x20    // ' who it ' \n\t0x69 0x73 0x2E 0x20 0x0D 0x0A 0x57 0x68    // 'is. ??Wh' \n\t0x61 0x74 0x20 0x77 0x69 0x6C 0x6C 0x20    // 'at will ' \n\t0x48 0x69 0x72 0x6F 0x20 0x66 0x69 0x6E    // 'Hiro fin' \n\t0x64 0x20 0x69 0x6E 0x73 0x69 0x64 0x65    // 'd inside' \n\t0x20 0x61 0x6E 0x64 0x20 0x77 0x68 0x61    // ' and wha' \n\t0x74 0x20 0x68 0x61 0x73 0x20 0x68 0x61    // 't has ha' \n\t0x70 0x70 0x65 0x6E 0x65 0x64 0x20 0x74    // 'ppened t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x70 0x65    // 'o the pe' \n\t0x6F 0x70 0x6C 0x65 0x20 0x69 0x6E 0x20    // 'ople in ' \n\t0x74 0x68 0x65 0x20 0x76 0x69 0x6C 0x6C    // 'the vill' \n\t0x61 0x67 0x65 0x3F                        // 'age?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_76= ktipbio77\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_76, __HELP_NAME(\"ktipbio77\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_76, __HELP_NAME(\"ktipbio77\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_22=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_76, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio77\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_22=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_76, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_22=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6F 0x01 0x00 0x01    // '????o???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x09 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_22=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x03 0x03 0x72 0x75 0x6E 0x6E 0x69 0x6E    // '??runnin' \n\t0x67 0x0D 0x0A 0x57 0x68 0x65 0x6E 0x20    // 'g??When ' \n\t0x4A 0x65 0x72 0x65 0x6D 0x79 0x20 0x69    // 'Jeremy i' \n\t0x73 0x20 0x69 0x6E 0x74 0x65 0x72 0x76    // 's interv' \n\t0x69 0x65 0x77 0x65 0x64 0x2C 0x20 0x68    // 'iewed, h' \n\t0x65 0x20 0x6C 0x6F 0x76 0x65 0x73 0x20    // 'e loves ' \n\t0x74 0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20    // 'to make ' \n\t0x6A 0x6F 0x6B 0x65 0x73 0x20 0x61 0x62    // 'jokes ab' \n\t0x6F 0x75 0x74 0x20 0x68 0x69 0x6D 0x73    // 'out hims' \n\t0x65 0x6C 0x66 0x2E 0x20 0x20 0x48 0x65    // 'elf.  He' \n\t0x20 0x6C 0x69 0x6B 0x65 0x73 0x20 0x74    // ' likes t' \n\t0x6F 0x20 0x73 0x61 0x79 0x20 0x74 0x68    // 'o say th' \n\t0x61 0x74 0x20 0x68 0x65 0x20 0x61 0x6C    // 'at he al' \n\t0x77 0x61 0x79 0x73 0x20 0x93 0x77 0x69    // 'ways wi' \n\t0x6E 0x73 0x20 0x62 0x79 0x20 0x61 0x20    // 'ns by a ' \n\t0x6E 0x6F 0x73 0x65 0x94 0x20 0x6F 0x72    // 'nose or' \n\t0x20 0x93 0x77 0x68 0x65 0x6E 0x20 0x49    // ' when I' \n\t0x20 0x72 0x75 0x6E 0x2C 0x20 0x6D 0x79    // ' run, my' \n\t0x20 0x6E 0x6F 0x73 0x65 0x20 0x69 0x73    // ' nose is' \n\t0x20 0x72 0x75 0x6E 0x6E 0x69 0x6E 0x67    // ' running' \n\t0x2C 0x20 0x74 0x6F 0x6F 0x2E 0x94 0x20    // ', too. ' \n\t0x20 0x4F 0x72 0x20 0x74 0x68 0x61 0x74    // ' Or that' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x68 0x61    // ' the sha' \n\t0x64 0x65 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'de from ' \n\t0x68 0x69 0x73 0x20 0x6E 0x6F 0x73 0x65    // 'his nose' \n\t0x20 0x93 0x6B 0x65 0x65 0x70 0x73 0x20    // ' keeps ' \n\t0x6D 0x79 0x20 0x6C 0x6F 0x77 0x65 0x72    // 'my lower' \n\t0x20 0x62 0x6F 0x64 0x79 0x20 0x63 0x6F    // ' body co' \n\t0x6F 0x6C 0x20 0x77 0x68 0x65 0x6E 0x20    // 'ol when ' \n\t0x49 0x20 0x77 0x6F 0x72 0x6B 0x20 0x6F    // 'I work o' \n\t0x75 0x74 0x2E 0x94 0x20 0x20 0x48 0x69    // 'ut.  Hi' \n\t0x73 0x20 0x6E 0x6F 0x73 0x65 0x20 0x68    // 's nose h' \n\t0x61 0x73 0x20 0x74 0x75 0x72 0x6E 0x65    // 'as turne' \n\t0x64 0x20 0x6F 0x75 0x74 0x20 0x74 0x6F    // 'd out to' \n\t0x20 0x62 0x65 0x20 0x61 0x20 0x67 0x72    // ' be a gr' \n\t0x65 0x61 0x74 0x20 0x61 0x73 0x73 0x65    // 'eat asse' \n\t0x74 0x2C 0x20 0x73 0x65 0x74 0x74 0x69    // 't, setti' \n\t0x6E 0x67 0x20 0x68 0x69 0x6D 0x20 0x61    // 'ng him a' \n\t0x70 0x61 0x72 0x74 0x20 0x66 0x72 0x6F    // 'part fro' \n\t0x6D 0x20 0x6F 0x74 0x68 0x65 0x72 0x20    // 'm other ' \n\t0x61 0x63 0x74 0x6F 0x72 0x73 0x20 0x62    // 'actors b' \n\t0x65 0x63 0x61 0x75 0x73 0x65 0x20 0x69    // 'ecause i' \n\t0x74 0x20 0x69 0x73 0x20 0x75 0x6E 0x69    // 't is uni' \n\t0x71 0x75 0x65 0x97 0x61 0x6E 0x64 0x20    // 'queand ' \n\t0x67 0x65 0x74 0x73 0x20 0x68 0x69 0x6D    // 'gets him' \n\t0x20 0x6E 0x6F 0x74 0x69 0x63 0x65 0x64    // ' noticed' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_77= ktipbio78\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_77, __HELP_NAME(\"ktipbio78\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_77, __HELP_NAME(\"ktipbio78\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_77, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio78\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_77, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x41 0x01 0x00 0x01    // '????A???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x06 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x6F 0x6B 0x0D 0x0A    // '??Cook??' \n\t0x4A 0x65 0x72 0x65 0x6D 0x79 0x20 0x63    // 'Jeremy c' \n\t0x6F 0x75 0x6C 0x64 0x20 0x70 0x6C 0x61    // 'ould pla' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x70 0x61    // 'y the pa' \n\t0x72 0x74 0x20 0x6F 0x66 0x20 0x61 0x6E    // 'rt of an' \n\t0x20 0x65 0x78 0x63 0x65 0x6C 0x6C 0x65    // ' excelle' \n\t0x6E 0x74 0x20 0x63 0x6F 0x6F 0x6B 0x2C    // 'nt cook,' \n\t0x20 0x61 0x6E 0x64 0x20 0x6E 0x6F 0x20    // ' and no ' \n\t0x77 0x6F 0x6E 0x64 0x65 0x72 0x20 0x77    // 'wonder w' \n\t0x69 0x74 0x68 0x20 0x73 0x75 0x63 0x68    // 'ith such' \n\t0x20 0x61 0x20 0x66 0x69 0x6E 0x65 0x20    // ' a fine ' \n\t0x6E 0x6F 0x73 0x65 0x20 0x66 0x6F 0x72    // 'nose for' \n\t0x20 0x73 0x6D 0x65 0x6C 0x6C 0x69 0x6E    // ' smellin' \n\t0x67 0x20 0x61 0x72 0x6F 0x6D 0x61 0x73    // 'g aromas' \n\t0x21 0x20 0x20 0x42 0x75 0x74 0x20 0x77    // '!  But w' \n\t0x68 0x61 0x74 0x20 0x68 0x61 0x70 0x70    // 'hat happ' \n\t0x65 0x6E 0x73 0x20 0x74 0x6F 0x20 0x68    // 'ens to h' \n\t0x69 0x6D 0x20 0x77 0x68 0x65 0x6E 0x20    // 'im when ' \n\t0x68 0x65 0x20 0x69 0x73 0x20 0x68 0x69    // 'he is hi' \n\t0x72 0x65 0x64 0x20 0x74 0x6F 0x20 0x63    // 'red to c' \n\t0x6F 0x6F 0x6B 0x20 0x66 0x6F 0x72 0x20    // 'ook for ' \n\t0x74 0x68 0x65 0x20 0x53 0x70 0x6F 0x6F    // 'the Spoo' \n\t0x6B 0x79 0x20 0x66 0x61 0x6D 0x69 0x6C    // 'ky famil' \n\t0x79 0x20 0x61 0x6E 0x64 0x20 0x68 0x65    // 'y and he' \n\t0x20 0x67 0x65 0x74 0x73 0x20 0x61 0x20    // ' gets a ' \n\t0x63 0x6F 0x6C 0x64 0x20 0x61 0x6E 0x64    // 'cold and' \n\t0x20 0x63 0x61 0x6E 0x92 0x74 0x20 0x73    // ' cant s' \n\t0x6D 0x65 0x6C 0x6C 0x3F 0x20 0x20 0x57    // 'mell?  W' \n\t0x68 0x61 0x74 0x20 0x77 0x69 0x6C 0x6C    // 'hat will' \n\t0x20 0x74 0x68 0x65 0x79 0x20 0x64 0x6F    // ' they do' \n\t0x20 0x74 0x6F 0x20 0x68 0x69 0x6D 0x20    // ' to him ' \n\t0x61 0x66 0x74 0x65 0x72 0x20 0x74 0x68    // 'after th' \n\t0x65 0x79 0x20 0x77 0x61 0x69 0x74 0x20    // 'ey wait ' \n\t0x61 0x6E 0x20 0x68 0x6F 0x75 0x72 0x20    // 'an hour ' \n\t0x66 0x6F 0x72 0x20 0x64 0x69 0x6E 0x6E    // 'for dinn' \n\t0x65 0x72 0x20 0x61 0x6E 0x64 0x20 0x68    // 'er and h' \n\t0x65 0x20 0x69 0x73 0x20 0x68 0x69 0x64    // 'e is hid' \n\t0x69 0x6E 0x67 0x20 0x73 0x6F 0x6D 0x65    // 'ing some' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x69 0x6E    // 'where in' \n\t0x20 0x74 0x68 0x65 0x20 0x68 0x6F 0x75    // ' the hou' \n\t0x73 0x65 0x3F                             // 'se?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_78= ktipbio79\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_78, __HELP_NAME(\"ktipbio79\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_78, __HELP_NAME(\"ktipbio79\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_77=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_78, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio79\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_77=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_78, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_77=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_77, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x44 0x01 0x00 0x01    // '????D???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xA9 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_77=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_77, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x72 0x65 0x65 0x74    // '??Street' \n\t0x20 0x46 0x61 0x69 0x72 0x20 0x50 0x61    // ' Fair Pa' \n\t0x72 0x74 0x69 0x63 0x69 0x70 0x61 0x6E    // 'rticipan' \n\t0x74 0x0D 0x0A 0x4A 0x65 0x72 0x65 0x6D    // 't??Jerem' \n\t0x79 0x20 0x68 0x61 0x73 0x20 0x61 0x6C    // 'y has al' \n\t0x77 0x61 0x79 0x73 0x20 0x77 0x61 0x6E    // 'ways wan' \n\t0x74 0x65 0x64 0x20 0x74 0x6F 0x20 0x70    // 'ted to p' \n\t0x6C 0x61 0x79 0x20 0x74 0x68 0x65 0x20    // 'lay the ' \n\t0x70 0x61 0x72 0x74 0x20 0x6F 0x66 0x20    // 'part of ' \n\t0x61 0x20 0x66 0x6F 0x72 0x74 0x75 0x6E    // 'a fortun' \n\t0x65 0x20 0x74 0x65 0x6C 0x6C 0x65 0x72    // 'e teller' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x73 0x74    // ' in a st' \n\t0x72 0x65 0x65 0x74 0x20 0x66 0x61 0x69    // 'reet fai' \n\t0x72 0x2E 0x20 0x20 0x48 0x69 0x73 0x20    // 'r.  His ' \n\t0x67 0x69 0x66 0x74 0x20 0x69 0x73 0x20    // 'gift is ' \n\t0x74 0x68 0x61 0x74 0x20 0x68 0x65 0x20    // 'that he ' \n\t0x63 0x61 0x6E 0x20 0x73 0x6D 0x65 0x6C    // 'can smel' \n\t0x6C 0x20 0x73 0x6F 0x6D 0x65 0x6F 0x6E    // 'l someon' \n\t0x65 0x92 0x73 0x20 0x66 0x75 0x74 0x75    // 'es futu' \n\t0x72 0x65 0x20 0x69 0x6E 0x20 0x74 0x68    // 're in th' \n\t0x65 0x69 0x72 0x20 0x68 0x61 0x69 0x72    // 'eir hair' \n\t0x2E 0x0D 0x0A 0x42 0x75 0x74 0x20 0x77    // '.??But w' \n\t0x68 0x61 0x74 0x20 0x68 0x61 0x70 0x70    // 'hat happ' \n\t0x65 0x6E 0x73 0x20 0x77 0x68 0x65 0x6E    // 'ens when' \n\t0x20 0x68 0x65 0x20 0x6D 0x65 0x65 0x74    // ' he meet' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x67 0x69    // 's the gi' \n\t0x72 0x6C 0x20 0x6F 0x66 0x20 0x68 0x69    // 'rl of hi' \n\t0x73 0x20 0x64 0x72 0x65 0x61 0x6D 0x73    // 's dreams' \n\t0x97 0x68 0x6F 0x77 0x20 0x64 0x6F 0x65    // 'how doe' \n\t0x73 0x20 0x68 0x65 0x20 0x63 0x6F 0x6E    // 's he con' \n\t0x76 0x69 0x6E 0x63 0x65 0x20 0x68 0x65    // 'vince he' \n\t0x72 0x20 0x74 0x68 0x61 0x74 0x20 0x68    // 'r that h' \n\t0x65 0x20 0x69 0x73 0x20 0x74 0x68 0x65    // 'e is the' \n\t0x20 0x72 0x69 0x67 0x68 0x74 0x20 0x6F    // ' right o' \n\t0x6E 0x65 0x20 0x66 0x6F 0x72 0x20 0x68    // 'ne for h' \n\t0x65 0x72 0x20 0x61 0x66 0x74 0x65 0x72    // 'er after' \n\t0x20 0x68 0x65 0x20 0x73 0x6D 0x65 0x6C    // ' he smel' \n\t0x6C 0x73 0x20 0x68 0x65 0x72 0x20 0x68    // 'ls her h' \n\t0x61 0x69 0x72 0x20 0x61 0x6E 0x64 0x20    // 'air and ' \n\t0x73 0x68 0x65 0x20 0x72 0x75 0x6E 0x73    // 'she runs' \n\t0x20 0x61 0x77 0x61 0x79 0x3F              // ' away?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_79= ktipbio80\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_79, __HELP_NAME(\"ktipbio80\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_79, __HELP_NAME(\"ktipbio80\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_78=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_79, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio80\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_78=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_79, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_78=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_78, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x85 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_78=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_78, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x72 0x65 0x68 0x69 0x73    // '??Prehis' \n\t0x74 0x6F 0x72 0x69 0x63 0x20 0x4D 0x61    // 'toric Ma' \n\t0x6E 0x0D 0x0A 0x4A 0x65 0x72 0x65 0x6D    // 'n??Jerem' \n\t0x79 0x20 0x75 0x73 0x65 0x64 0x20 0x74    // 'y used t' \n\t0x6F 0x20 0x77 0x61 0x74 0x63 0x68 0x20    // 'o watch ' \n\t0x61 0x20 0x6C 0x6F 0x74 0x20 0x6F 0x66    // 'a lot of' \n\t0x20 0x63 0x61 0x76 0x65 0x6D 0x61 0x6E    // ' caveman' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x73 0x20    // ' movies ' \n\t0x61 0x6E 0x64 0x20 0x70 0x72 0x61 0x63    // 'and prac' \n\t0x74 0x69 0x63 0x65 0x20 0x70 0x72 0x65    // 'tice pre' \n\t0x68 0x69 0x73 0x74 0x6F 0x72 0x69 0x63    // 'historic' \n\t0x20 0x74 0x61 0x6C 0x6B 0x2C 0x20 0x6D    // ' talk, m' \n\t0x6F 0x73 0x74 0x6C 0x79 0x20 0x67 0x72    // 'ostly gr' \n\t0x75 0x6E 0x74 0x69 0x6E 0x67 0x2E 0x20    // 'unting. ' \n\t0x20 0x48 0x65 0x92 0x64 0x20 0x62 0x65    // ' Hed be' \n\t0x20 0x72 0x65 0x61 0x6C 0x6C 0x79 0x20    // ' really ' \n\t0x67 0x6F 0x6F 0x64 0x20 0x61 0x73 0x20    // 'good as ' \n\t0x61 0x20 0x70 0x72 0x65 0x68 0x69 0x73    // 'a prehis' \n\t0x74 0x6F 0x72 0x69 0x63 0x20 0x6D 0x61    // 'toric ma' \n\t0x6E 0x20 0x77 0x68 0x6F 0x20 0x66 0x69    // 'n who fi' \n\t0x6E 0x64 0x73 0x20 0x61 0x20 0x6D 0x75    // 'nds a mu' \n\t0x6D 0x6D 0x79 0x2E 0x20 0x20 0x48 0x65    // 'mmy.  He' \n\t0x92 0x73 0x20 0x76 0x65 0x72 0x79 0x20    // 's very ' \n\t0x65 0x78 0x63 0x69 0x74 0x65 0x64 0x2C    // 'excited,' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x68    // ' until h' \n\t0x65 0x20 0x64 0x69 0x73 0x63 0x6F 0x76    // 'e discov' \n\t0x65 0x72 0x73 0x20 0x74 0x68 0x61 0x74    // 'ers that' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x75 0x6D    // ' the mum' \n\t0x6D 0x79 0x20 0x63 0x6F 0x6D 0x65 0x73    // 'my comes' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x61 0x20    // ' with a ' \n\t0x63 0x75 0x72 0x73 0x65 0x97 0x74 0x68    // 'curseth' \n\t0x65 0x20 0x6D 0x75 0x6D 0x6D 0x79 0x20    // 'e mummy ' \n\t0x66 0x6F 0x6C 0x6C 0x6F 0x77 0x73 0x20    // 'follows ' \n\t0x4A 0x65 0x72 0x65 0x6D 0x79 0x20 0x65    // 'Jeremy e' \n\t0x76 0x65 0x72 0x79 0x77 0x68 0x65 0x72    // 'verywher' \n\t0x65 0x20 0x68 0x65 0x20 0x67 0x6F 0x65    // 'e he goe' \n\t0x73 0x20 0x61 0x6E 0x64 0x20 0x69 0x6D    // 's and im' \n\t0x69 0x74 0x61 0x74 0x65 0x73 0x20 0x68    // 'itates h' \n\t0x69 0x73 0x20 0x65 0x76 0x65 0x72 0x79    // 'is every' \n\t0x20 0x6D 0x6F 0x76 0x65 0x2E 0x0D 0x0A    // ' move.??' \n\t0x48 0x6F 0x77 0x20 0x77 0x69 0x6C 0x6C    // 'How will' \n\t0x20 0x4A 0x65 0x72 0x65 0x6D 0x79 0x20    // ' Jeremy ' \n\t0x65 0x78 0x70 0x6C 0x61 0x69 0x6E 0x20    // 'explain ' \n\t0x74 0x68 0x65 0x20 0x6D 0x75 0x6D 0x6D    // 'the mumm' \n\t0x79 0x20 0x74 0x6F 0x20 0x68 0x69 0x73    // 'y to his' \n\t0x20 0x66 0x72 0x69 0x65 0x6E 0x64 0x73    // ' friends' \n\t0x2C 0x20 0x61 0x6E 0x64 0x20 0x62 0x72    // ', and br' \n\t0x65 0x61 0x6B 0x20 0x74 0x68 0x65 0x20    // 'eak the ' \n\t0x63 0x75 0x72 0x73 0x65 0x3F 0x20         // 'curse? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7A= ktipbio81\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7A, __HELP_NAME(\"ktipbio81\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7A, __HELP_NAME(\"ktipbio81\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio81\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE3 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xC0 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x6A 0x6F 0x6B 0x65 0x73 0x0D    // '??jokes?' \n\t0x0A 0x4A 0x65 0x72 0x7A 0x79 0x20 0x68    // '?Jerzy h' \n\t0x61 0x73 0x20 0x77 0x6F 0x72 0x6B 0x65    // 'as worke' \n\t0x64 0x20 0x76 0x65 0x72 0x79 0x20 0x68    // 'd very h' \n\t0x61 0x72 0x64 0x20 0x66 0x6F 0x72 0x20    // 'ard for ' \n\t0x35 0x34 0x20 0x79 0x65 0x61 0x72 0x73    // '54 years' \n\t0x2C 0x20 0x62 0x75 0x74 0x20 0x68 0x65    // ', but he' \n\t0x20 0x6C 0x6F 0x76 0x65 0x73 0x20 0x6C    // ' loves l' \n\t0x69 0x66 0x65 0x20 0x61 0x6E 0x64 0x20    // 'ife and ' \n\t0x61 0x6C 0x77 0x61 0x79 0x73 0x20 0x68    // 'always h' \n\t0x61 0x73 0x20 0x61 0x20 0x6E 0x65 0x77    // 'as a new' \n\t0x20 0x73 0x69 0x6C 0x6C 0x79 0x20 0x6A    // ' silly j' \n\t0x6F 0x6B 0x65 0x20 0x74 0x6F 0x20 0x74    // 'oke to t' \n\t0x65 0x6C 0x6C 0x2E 0x20 0x20 0x48 0x65    // 'ell.  He' \n\t0x20 0x6D 0x61 0x6B 0x65 0x73 0x20 0x75    // ' makes u' \n\t0x70 0x20 0x6E 0x65 0x77 0x20 0x6A 0x6F    // 'p new jo' \n\t0x6B 0x65 0x73 0x20 0x61 0x6E 0x64 0x20    // 'kes and ' \n\t0x70 0x72 0x61 0x63 0x74 0x69 0x63 0x65    // 'practice' \n\t0x73 0x20 0x68 0x69 0x73 0x20 0x64 0x61    // 's his da' \n\t0x6E 0x63 0x65 0x20 0x73 0x74 0x65 0x70    // 'nce step' \n\t0x73 0x20 0x77 0x68 0x65 0x6E 0x20 0x68    // 's when h' \n\t0x65 0x92 0x73 0x20 0x61 0x6C 0x6F 0x6E    // 'es alon' \n\t0x65 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'e in the' \n\t0x20 0x66 0x69 0x65 0x6C 0x64 0x2E 0x20    // ' field. ' \n\t0x0D 0x0A 0x4F 0x6E 0x65 0x20 0x6D 0x6F    // '??One mo' \n\t0x72 0x6E 0x69 0x6E 0x67 0x2C 0x20 0x77    // 'rning, w' \n\t0x68 0x65 0x6E 0x20 0x68 0x65 0x20 0x77    // 'hen he w' \n\t0x61 0x73 0x20 0x77 0x6F 0x72 0x6B 0x69    // 'as worki' \n\t0x6E 0x67 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ng in th' \n\t0x65 0x20 0x66 0x69 0x65 0x6C 0x64 0x20    // 'e field ' \n\t0x61 0x6E 0x64 0x20 0x64 0x61 0x6E 0x63    // 'and danc' \n\t0x69 0x6E 0x67 0x2C 0x20 0x68 0x65 0x20    // 'ing, he ' \n\t0x73 0x65 0x6E 0x73 0x65 0x64 0x20 0x73    // 'sensed s' \n\t0x6F 0x6D 0x65 0x6F 0x6E 0x65 0x20 0x73    // 'omeone s' \n\t0x74 0x61 0x6E 0x64 0x69 0x6E 0x67 0x20    // 'tanding ' \n\t0x62 0x65 0x68 0x69 0x6E 0x64 0x20 0x68    // 'behind h' \n\t0x69 0x6D 0x2E 0x20 0x20 0x49 0x74 0x20    // 'im.  It ' \n\t0x77 0x61 0x73 0x20 0x61 0x20 0x67 0x6F    // 'was a go' \n\t0x6F 0x66 0x79 0x2D 0x6C 0x6F 0x6F 0x6B    // 'ofy-look' \n\t0x69 0x6E 0x67 0x20 0x66 0x6F 0x72 0x65    // 'ing fore' \n\t0x69 0x67 0x6E 0x65 0x72 0x20 0x6E 0x61    // 'igner na' \n\t0x6D 0x65 0x64 0x20 0x4D 0x63 0x5A 0x65    // 'med McZe' \n\t0x65 0x2E 0x20 0x4D 0x63 0x5A 0x65 0x65    // 'e. McZee' \n\t0x2C 0x20 0x74 0x68 0x65 0x20 0x66 0x69    // ', the fi' \n\t0x6C 0x6D 0x20 0x64 0x69 0x72 0x65 0x63    // 'lm direc' \n\t0x74 0x6F 0x72 0x2C 0x20 0x77 0x61 0x73    // 'tor, was' \n\t0x20 0x6F 0x75 0x74 0x20 0x73 0x63 0x6F    // ' out sco' \n\t0x75 0x74 0x69 0x6E 0x67 0x20 0x6C 0x6F    // 'uting lo' \n\t0x63 0x61 0x74 0x69 0x6F 0x6E 0x73 0x20    // 'cations ' \n\t0x66 0x6F 0x72 0x20 0x61 0x20 0x6E 0x65    // 'for a ne' \n\t0x77 0x20 0x66 0x69 0x6C 0x6D 0x2E 0x20    // 'w film. ' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x68 0x65    // ' When he' \n\t0x20 0x72 0x61 0x6E 0x20 0x61 0x63 0x72    // ' ran acr' \n\t0x6F 0x73 0x73 0x20 0x4A 0x65 0x72 0x7A    // 'oss Jerz' \n\t0x79 0x2C 0x20 0x68 0x65 0x20 0x6B 0x6E    // 'y, he kn' \n\t0x65 0x77 0x20 0x4A 0x65 0x72 0x7A 0x79    // 'ew Jerzy' \n\t0x20 0x68 0x61 0x64 0x20 0x6A 0x75 0x73    // ' had jus' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x66 0x61    // 't the fa' \n\t0x63 0x65 0x20 0x66 0x6F 0x72 0x20 0x68    // 'ce for h' \n\t0x69 0x73 0x20 0x6E 0x65 0x77 0x20 0x6D    // 'is new m' \n\t0x6F 0x76 0x69 0x65 0x2E 0x0D 0x0A         // 'ovie.??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7B= ktipbio82\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7B, __HELP_NAME(\"ktipbio82\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7B, __HELP_NAME(\"ktipbio82\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_79=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio82\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_79=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_79=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_79, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x02 0x00 0x01    // '????-???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x62 0x01 0x00 0x82    // '????b??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_79=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_79, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x61 0x72 0x64 0x65 0x6E    // '??Garden' \n\t0x65 0x72 0x0D 0x0A 0x4E 0x6F 0x77 0x20    // 'er??Now ' \n\t0x74 0x68 0x61 0x74 0x20 0x68 0x65 0x92    // 'that he' \n\t0x73 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 's an act' \n\t0x6F 0x72 0x2C 0x20 0x4A 0x65 0x72 0x7A    // 'or, Jerz' \n\t0x79 0x20 0x64 0x72 0x65 0x61 0x6D 0x73    // 'y dreams' \n\t0x20 0x6F 0x66 0x20 0x62 0x65 0x69 0x6E    // ' of bein' \n\t0x67 0x20 0x61 0x20 0x67 0x61 0x72 0x64    // 'g a gard' \n\t0x65 0x6E 0x65 0x72 0x20 0x66 0x6F 0x72    // 'ener for' \n\t0x20 0x61 0x20 0x68 0x6F 0x75 0x73 0x65    // ' a house' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x73 0x63    // ' in a sc' \n\t0x61 0x72 0x79 0x20 0x6D 0x6F 0x76 0x69    // 'ary movi' \n\t0x65 0x2E 0x20 0x20 0x54 0x68 0x65 0x20    // 'e.  The ' \n\t0x67 0x61 0x72 0x64 0x65 0x6E 0x65 0x72    // 'gardener' \n\t0x20 0x69 0x73 0x20 0x72 0x65 0x61 0x6C    // ' is real' \n\t0x6C 0x79 0x20 0x61 0x20 0x73 0x75 0x70    // 'ly a sup' \n\t0x65 0x72 0x2D 0x61 0x67 0x65 0x6E 0x74    // 'er-agent' \n\t0x20 0x66 0x6F 0x72 0x20 0x61 0x20 0x6E    // ' for a n' \n\t0x61 0x74 0x69 0x6F 0x6E 0x61 0x6C 0x20    // 'ational ' \n\t0x73 0x65 0x63 0x75 0x72 0x69 0x74 0x79    // 'security' \n\t0x20 0x61 0x67 0x65 0x6E 0x63 0x79 0x2E    // ' agency.' \n\t0x20 0x20 0x52 0x75 0x6D 0x6F 0x72 0x20    // '  Rumor ' \n\t0x68 0x61 0x73 0x20 0x69 0x74 0x20 0x74    // 'has it t' \n\t0x68 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // 'hat the ' \n\t0x65 0x76 0x69 0x6C 0x20 0x6F 0x77 0x6E    // 'evil own' \n\t0x65 0x72 0x20 0x6F 0x66 0x20 0x74 0x68    // 'er of th' \n\t0x65 0x20 0x68 0x6F 0x75 0x73 0x65 0x20    // 'e house ' \n\t0x68 0x61 0x73 0x20 0x62 0x75 0x72 0x69    // 'has buri' \n\t0x65 0x64 0x20 0x61 0x20 0x74 0x61 0x6C    // 'ed a tal' \n\t0x6B 0x69 0x6E 0x67 0x20 0x73 0x6B 0x75    // 'king sku' \n\t0x6C 0x6C 0x20 0x74 0x68 0x61 0x74 0x20    // 'll that ' \n\t0x6B 0x6E 0x6F 0x77 0x73 0x20 0x77 0x68    // 'knows wh' \n\t0x6F 0x20 0x73 0x74 0x6F 0x6C 0x65 0x20    // 'o stole ' \n\t0x74 0x68 0x65 0x20 0x61 0x6C 0x6C 0x20    // 'the all ' \n\t0x74 0x68 0x65 0x20 0x64 0x6F 0x75 0x67    // 'the doug' \n\t0x68 0x6E 0x75 0x74 0x73 0x20 0x66 0x72    // 'hnuts fr' \n\t0x6F 0x6D 0x20 0x74 0x68 0x65 0x20 0x64    // 'om the d' \n\t0x6F 0x75 0x67 0x68 0x6E 0x75 0x74 0x20    // 'oughnut ' \n\t0x73 0x74 0x6F 0x72 0x65 0x20 0x69 0x6E    // 'store in' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x61 0x6C    // ' the mal' \n\t0x6C 0x2E 0x20 0x20 0x4A 0x65 0x72 0x7A    // 'l.  Jerz' \n\t0x79 0x20 0x6D 0x75 0x73 0x74 0x20 0x75    // 'y must u' \n\t0x6E 0x63 0x6F 0x76 0x65 0x72 0x20 0x74    // 'ncover t' \n\t0x68 0x65 0x20 0x73 0x6B 0x75 0x6C 0x6C    // 'he skull' \n\t0x2E 0x20 0x0D 0x0A 0x48 0x65 0x20 0x6B    // '. ??He k' \n\t0x6E 0x65 0x65 0x6C 0x73 0x20 0x64 0x6F    // 'neels do' \n\t0x77 0x6E 0x20 0x74 0x6F 0x20 0x64 0x69    // 'wn to di' \n\t0x67 0x2C 0x20 0x62 0x75 0x74 0x20 0x66    // 'g, but f' \n\t0x69 0x6E 0x64 0x73 0x20 0x74 0x68 0x65    // 'inds the' \n\t0x20 0x67 0x72 0x6F 0x75 0x6E 0x64 0x20    // ' ground ' \n\t0x69 0x73 0x20 0x74 0x6F 0x6F 0x20 0x68    // 'is too h' \n\t0x61 0x72 0x64 0x2E 0x20 0x20 0x48 0x65    // 'ard.  He' \n\t0x20 0x68 0x65 0x61 0x72 0x73 0x20 0x74    // ' hears t' \n\t0x68 0x65 0x20 0x63 0x68 0x61 0x74 0x74    // 'he chatt' \n\t0x65 0x72 0x69 0x6E 0x67 0x20 0x6F 0x66    // 'ering of' \n\t0x20 0x74 0x65 0x65 0x74 0x68 0x20 0x66    // ' teeth f' \n\t0x72 0x6F 0x6D 0x20 0x75 0x6E 0x64 0x65    // 'rom unde' \n\t0x72 0x67 0x72 0x6F 0x75 0x6E 0x64 0x2C    // 'rground,' \n\t0x20 0x61 0x6E 0x64 0x20 0x6B 0x6E 0x6F    // ' and kno' \n\t0x77 0x73 0x20 0x74 0x68 0x65 0x20 0x73    // 'ws the s' \n\t0x6B 0x75 0x6C 0x6C 0x20 0x69 0x73 0x20    // 'kull is ' \n\t0x6E 0x65 0x61 0x72 0x62 0x79 0x2E 0x20    // 'nearby. ' \n\t0x20 0x49 0x73 0x20 0x74 0x68 0x65 0x72    // ' Is ther' \n\t0x65 0x20 0x61 0x6E 0x79 0x20 0x77 0x61    // 'e any wa' \n\t0x79 0x20 0x68 0x65 0x20 0x63 0x61 0x6E    // 'y he can' \n\t0x20 0x67 0x65 0x74 0x20 0x75 0x6E 0x64    // ' get und' \n\t0x65 0x72 0x20 0x74 0x68 0x65 0x20 0x67    // 'er the g' \n\t0x72 0x6F 0x75 0x6E 0x64 0x20 0x77 0x69    // 'round wi' \n\t0x74 0x68 0x6F 0x75 0x74 0x20 0x64 0x69    // 'thout di' \n\t0x67 0x67 0x69 0x6E 0x67 0x3F 0x20         // 'gging? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7C= ktipbio83\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7C, __HELP_NAME(\"ktipbio83\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7C, __HELP_NAME(\"ktipbio83\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio83\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xFA 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE5 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7D, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x61 0x78 0x69 0x20 0x44    // '??Taxi D' \n\t0x72 0x69 0x76 0x65 0x72 0x0D 0x0A 0x42    // 'river??B' \n\t0x65 0x63 0x61 0x75 0x73 0x65 0x20 0x4A    // 'ecause J' \n\t0x65 0x72 0x7A 0x79 0x20 0x6E 0x65 0x76    // 'erzy nev' \n\t0x65 0x72 0x20 0x6C 0x65 0x61 0x72 0x6E    // 'er learn' \n\t0x65 0x64 0x20 0x74 0x6F 0x20 0x64 0x72    // 'ed to dr' \n\t0x69 0x76 0x65 0x2C 0x20 0x68 0x65 0x20    // 'ive, he ' \n\t0x74 0x68 0x69 0x6E 0x6B 0x73 0x20 0x68    // 'thinks h' \n\t0x65 0x27 0x64 0x20 0x62 0x65 0x20 0x61    // 'e'd be a' \n\t0x20 0x67 0x72 0x65 0x61 0x74 0x20 0x74    // ' great t' \n\t0x61 0x78 0x69 0x20 0x64 0x72 0x69 0x76    // 'axi driv' \n\t0x65 0x72 0x20 0x69 0x6E 0x20 0x61 0x20    // 'er in a ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2E 0x20 0x20    // 'movie.  ' \n\t0x48 0x65 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'He would' \n\t0x6E 0x92 0x74 0x20 0x68 0x61 0x76 0x65    // 'nt have' \n\t0x20 0x74 0x6F 0x20 0x6F 0x62 0x65 0x79    // ' to obey' \n\t0x20 0x61 0x6E 0x79 0x20 0x6F 0x66 0x20    // ' any of ' \n\t0x74 0x68 0x65 0x20 0x72 0x75 0x6C 0x65    // 'the rule' \n\t0x73 0x20 0x62 0x65 0x63 0x61 0x75 0x73    // 's becaus' \n\t0x65 0x20 0x68 0x65 0x20 0x64 0x6F 0x65    // 'e he doe' \n\t0x73 0x6E 0x92 0x74 0x20 0x6B 0x6E 0x6F    // 'snt kno' \n\t0x77 0x20 0x74 0x68 0x65 0x6D 0x2E 0x20    // 'w them. ' \n\t0x20 0x48 0x65 0x20 0x63 0x6F 0x75 0x6C    // ' He coul' \n\t0x64 0x20 0x70 0x69 0x63 0x6B 0x20 0x75    // 'd pick u' \n\t0x70 0x20 0x70 0x65 0x6F 0x70 0x6C 0x65    // 'p people' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x61 0x20    // ' from a ' \n\t0x72 0x65 0x73 0x74 0x61 0x75 0x72 0x61    // 'restaura' \n\t0x6E 0x74 0x2C 0x20 0x67 0x72 0x65 0x65    // 'nt, gree' \n\t0x74 0x20 0x74 0x68 0x65 0x6D 0x20 0x77    // 't them w' \n\t0x69 0x74 0x68 0x20 0x61 0x20 0x6C 0x69    // 'ith a li' \n\t0x74 0x74 0x6C 0x65 0x20 0x50 0x6F 0x6C    // 'ttle Pol' \n\t0x69 0x73 0x68 0x20 0x64 0x61 0x6E 0x63    // 'ish danc' \n\t0x65 0x2C 0x20 0x61 0x6E 0x64 0x20 0x6F    // 'e, and o' \n\t0x76 0x65 0x72 0x68 0x65 0x61 0x72 0x20    // 'verhear ' \n\t0x61 0x6C 0x6C 0x20 0x74 0x68 0x65 0x20    // 'all the ' \n\t0x74 0x68 0x69 0x6E 0x67 0x73 0x20 0x74    // 'things t' \n\t0x68 0x65 0x79 0x20 0x74 0x65 0x6C 0x6C    // 'hey tell' \n\t0x20 0x65 0x61 0x63 0x68 0x20 0x6F 0x74    // ' each ot' \n\t0x68 0x65 0x72 0x20 0x69 0x6E 0x20 0x74    // 'her in t' \n\t0x68 0x65 0x20 0x62 0x61 0x63 0x6B 0x20    // 'he back ' \n\t0x73 0x65 0x61 0x74 0x2E 0x20 0x20 0x42    // 'seat.  B' \n\t0x75 0x74 0x20 0x6F 0x6E 0x65 0x20 0x65    // 'ut one e' \n\t0x76 0x65 0x6E 0x69 0x6E 0x67 0x2C 0x20    // 'vening, ' \n\t0x68 0x65 0x20 0x6F 0x76 0x65 0x72 0x68    // 'he overh' \n\t0x65 0x61 0x72 0x73 0x20 0x73 0x6F 0x6D    // 'ears som' \n\t0x65 0x20 0x62 0x75 0x72 0x67 0x6C 0x61    // 'e burgla' \n\t0x72 0x73 0x20 0x70 0x6C 0x61 0x6E 0x6E    // 'rs plann' \n\t0x69 0x6E 0x67 0x20 0x74 0x6F 0x20 0x73    // 'ing to s' \n\t0x74 0x65 0x61 0x6C 0x20 0x74 0x68 0x65    // 'teal the' \n\t0x20 0x63 0x6F 0x77 0x62 0x6F 0x79 0x20    // ' cowboy ' \n\t0x63 0x61 0x66 0xE9 0x20 0x73 0x61 0x66    // 'caf saf' \n\t0x65 0x20 0x61 0x6E 0x64 0x20 0x64 0x72    // 'e and dr' \n\t0x6F 0x70 0x20 0x69 0x74 0x20 0x66 0x72    // 'op it fr' \n\t0x6F 0x6D 0x20 0x74 0x68 0x65 0x20 0x62    // 'om the b' \n\t0x61 0x6C 0x63 0x6F 0x6E 0x79 0x20 0x62    // 'alcony b' \n\t0x65 0x68 0x69 0x6E 0x64 0x20 0x74 0x68    // 'ehind th' \n\t0x65 0x20 0x72 0x65 0x73 0x74 0x61 0x75    // 'e restau' \n\t0x72 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'rant to ' \n\t0x61 0x20 0x77 0x61 0x69 0x74 0x69 0x6E    // 'a waitin' \n\t0x67 0x20 0x63 0x61 0x72 0x20 0x62 0x65    // 'g car be' \n\t0x6C 0x6F 0x77 0x2E 0x20 0x0D 0x0A 0x43    // 'low. ??C' \n\t0x61 0x6E 0x20 0x4A 0x65 0x72 0x7A 0x79    // 'an Jerzy' \n\t0x20 0x73 0x74 0x6F 0x70 0x20 0x74 0x68    // ' stop th' \n\t0x65 0x6D 0x3F 0x20                        // 'em? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7D= ktipbio84\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7D, __HELP_NAME(\"ktipbio84\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7D, __HELP_NAME(\"ktipbio84\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_83=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio84\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_83=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x20 0x01 0x00 0x00    // '???? ???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_83=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_83, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x65 0x03 0x00 0x01    // '????e???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_83=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_83, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x72 0x63 0x68 0x65 0x6F    // '??Archeo' \n\t0x6C 0x6F 0x67 0x69 0x73 0x74 0x0D 0x0A    // 'logist??' \n\t0x41 0x73 0x20 0x61 0x20 0x79 0x6F 0x75    // 'As a you' \n\t0x6E 0x67 0x20 0x62 0x6F 0x79 0x2C 0x20    // 'ng boy, ' \n\t0x4A 0x65 0x72 0x7A 0x79 0x20 0x77 0x6F    // 'Jerzy wo' \n\t0x72 0x6B 0x65 0x64 0x20 0x69 0x6E 0x20    // 'rked in ' \n\t0x74 0x68 0x65 0x20 0x50 0x6F 0x6C 0x69    // 'the Poli' \n\t0x73 0x68 0x20 0x63 0x6F 0x61 0x6C 0x20    // 'sh coal ' \n\t0x6D 0x69 0x6E 0x65 0x73 0x2C 0x20 0x73    // 'mines, s' \n\t0x6F 0x20 0x68 0x65 0x20 0x74 0x68 0x69    // 'o he thi' \n\t0x6E 0x6B 0x73 0x20 0x68 0x65 0x20 0x77    // 'nks he w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x62 0x65 0x20    // 'ould be ' \n\t0x61 0x20 0x6E 0x61 0x74 0x75 0x72 0x61    // 'a natura' \n\t0x6C 0x20 0x66 0x6F 0x72 0x20 0x74 0x68    // 'l for th' \n\t0x65 0x20 0x72 0x6F 0x6C 0x65 0x20 0x6F    // 'e role o' \n\t0x66 0x20 0x61 0x72 0x63 0x68 0x65 0x6F    // 'f archeo' \n\t0x6C 0x6F 0x67 0x69 0x73 0x74 0x2E 0x20    // 'logist. ' \n\t0x20 0x4A 0x65 0x72 0x7A 0x79 0x20 0x61    // ' Jerzy a' \n\t0x6E 0x64 0x20 0x68 0x69 0x73 0x20 0x70    // 'nd his p' \n\t0x61 0x72 0x74 0x6E 0x65 0x72 0x2C 0x20    // 'artner, ' \n\t0x42 0x69 0x6C 0x6C 0x79 0x2C 0x20 0x73    // 'Billy, s' \n\t0x65 0x74 0x20 0x6F 0x75 0x74 0x20 0x74    // 'et out t' \n\t0x6F 0x20 0x75 0x6E 0x63 0x6F 0x76 0x65    // 'o uncove' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x6C 0x6F    // 'r the lo' \n\t0x73 0x74 0x20 0x74 0x72 0x65 0x61 0x73    // 'st treas' \n\t0x75 0x72 0x65 0x73 0x20 0x6F 0x66 0x20    // 'ures of ' \n\t0x52 0x6F 0x6D 0x65 0x2E 0x20 0x20 0x4A    // 'Rome.  J' \n\t0x65 0x72 0x7A 0x79 0x20 0x61 0x6E 0x64    // 'erzy and' \n\t0x20 0x42 0x69 0x6C 0x6C 0x79 0x20 0x74    // ' Billy t' \n\t0x72 0x79 0x20 0x74 0x6F 0x20 0x73 0x68    // 'ry to sh' \n\t0x61 0x72 0x65 0x20 0x61 0x20 0x73 0x69    // 'are a si' \n\t0x6E 0x67 0x6C 0x65 0x20 0x74 0x65 0x6E    // 'ngle ten' \n\t0x74 0x2C 0x20 0x62 0x75 0x74 0x20 0x74    // 't, but t' \n\t0x68 0x65 0x79 0x20 0x61 0x72 0x65 0x20    // 'hey are ' \n\t0x62 0x6F 0x74 0x68 0x20 0x74 0x6F 0x6F    // 'both too' \n\t0x20 0x62 0x69 0x67 0x2E 0x20 0x20 0x53    // ' big.  S' \n\t0x6F 0x20 0x4A 0x65 0x72 0x7A 0x79 0x20    // 'o Jerzy ' \n\t0x73 0x6C 0x65 0x65 0x70 0x73 0x20 0x6F    // 'sleeps o' \n\t0x75 0x74 0x73 0x69 0x64 0x65 0x20 0x74    // 'utside t' \n\t0x68 0x65 0x20 0x72 0x75 0x69 0x6E 0x73    // 'he ruins' \n\t0x20 0x61 0x74 0x20 0x6E 0x69 0x67 0x68    // ' at nigh' \n\t0x74 0x2E 0x20 0x20 0x41 0x73 0x20 0x68    // 't.  As h' \n\t0x65 0x20 0x69 0x73 0x20 0x6C 0x79 0x69    // 'e is lyi' \n\t0x6E 0x67 0x20 0x6F 0x6E 0x20 0x74 0x68    // 'ng on th' \n\t0x65 0x20 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'e ground' \n\t0x20 0x6F 0x6E 0x65 0x20 0x65 0x76 0x65    // ' one eve' \n\t0x6E 0x69 0x6E 0x67 0x2C 0x20 0x68 0x65    // 'ning, he' \n\t0x20 0x68 0x65 0x61 0x72 0x73 0x20 0x61    // ' hears a' \n\t0x20 0x6C 0x6F 0x75 0x64 0x20 0x73 0x77    // ' loud sw' \n\t0x6F 0x6F 0x73 0x68 0x20 0x61 0x6E 0x64    // 'oosh and' \n\t0x20 0x77 0x61 0x74 0x63 0x68 0x65 0x73    // ' watches' \n\t0x20 0x61 0x20 0x73 0x70 0x61 0x63 0x65    // ' a space' \n\t0x20 0x72 0x6F 0x63 0x6B 0x65 0x74 0x20    // ' rocket ' \n\t0x6C 0x61 0x6E 0x64 0x20 0x62 0x65 0x73    // 'land bes' \n\t0x69 0x64 0x65 0x20 0x68 0x69 0x6D 0x2E    // 'ide him.' \n\t0x20 0x20 0x4F 0x75 0x74 0x20 0x63 0x6F    // '  Out co' \n\t0x6D 0x65 0x73 0x20 0x61 0x20 0x67 0x6F    // 'mes a go' \n\t0x6F 0x66 0x79 0x20 0x67 0x75 0x79 0x20    // 'ofy guy ' \n\t0x77 0x69 0x74 0x68 0x20 0x61 0x20 0x70    // 'with a p' \n\t0x61 0x70 0x65 0x72 0x20 0x73 0x61 0x63    // 'aper sac' \n\t0x6B 0x20 0x6F 0x76 0x65 0x72 0x20 0x68    // 'k over h' \n\t0x69 0x73 0x20 0x68 0x65 0x61 0x64 0x2E    // 'is head.' \n\t0x20 0x20 0x42 0x69 0x6C 0x6C 0x79 0x20    // '  Billy ' \n\t0x77 0x61 0x6B 0x65 0x73 0x20 0x75 0x70    // 'wakes up' \n\t0x2C 0x20 0x73 0x65 0x65 0x73 0x20 0x74    // ', sees t' \n\t0x68 0x65 0x20 0x62 0x61 0x67 0x2D 0x67    // 'he bag-g' \n\t0x75 0x79 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'uy, and ' \n\t0x72 0x75 0x6E 0x73 0x20 0x61 0x77 0x61    // 'runs awa' \n\t0x79 0x20 0x73 0x63 0x72 0x65 0x61 0x6D    // 'y scream' \n\t0x69 0x6E 0x67 0x2E 0x20 0x42 0x75 0x74    // 'ing. But' \n\t0x20 0x6E 0x6F 0x74 0x20 0x4A 0x65 0x72    // ' not Jer' \n\t0x7A 0x79 0x2E 0x20 0x20 0x54 0x68 0x65    // 'zy.  The' \n\t0x20 0x62 0x61 0x67 0x2D 0x68 0x65 0x61    // ' bag-hea' \n\t0x64 0x20 0x67 0x75 0x79 0x20 0x74 0x65    // 'd guy te' \n\t0x6C 0x6C 0x73 0x20 0x4A 0x65 0x72 0x7A    // 'lls Jerz' \n\t0x79 0x20 0x74 0x68 0x61 0x74 0x20 0x74    // 'y that t' \n\t0x68 0x65 0x79 0x20 0x63 0x6F 0x75 0x6C    // 'hey coul' \n\t0x64 0x20 0x66 0x69 0x6E 0x64 0x20 0x6D    // 'd find m' \n\t0x6F 0x72 0x65 0x20 0x74 0x68 0x61 0x6E    // 'ore than' \n\t0x20 0x6C 0x6F 0x73 0x74 0x20 0x74 0x72    // ' lost tr' \n\t0x65 0x61 0x73 0x75 0x72 0x65 0x73 0x20    // 'easures ' \n\t0x69 0x66 0x20 0x4A 0x65 0x72 0x7A 0x79    // 'if Jerzy' \n\t0x20 0x63 0x61 0x6D 0x65 0x20 0x77 0x69    // ' came wi' \n\t0x74 0x68 0x20 0x68 0x69 0x6D 0x20 0x69    // 'th him i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x72 0x6F    // 'n the ro' \n\t0x63 0x6B 0x65 0x74 0x2E 0x0D 0x0A 0x43    // 'cket.??C' \n\t0x61 0x6E 0x20 0x4A 0x65 0x72 0x7A 0x79    // 'an Jerzy' \n\t0x20 0x72 0x65 0x61 0x6C 0x6C 0x79 0x20    // ' really ' \n\t0x74 0x72 0x75 0x73 0x74 0x20 0x61 0x20    // 'trust a ' \n\t0x67 0x75 0x79 0x20 0x77 0x68 0x6F 0x20    // 'guy who ' \n\t0x77 0x65 0x61 0x72 0x73 0x20 0x68 0x69    // 'wears hi' \n\t0x73 0x20 0x6C 0x75 0x6E 0x63 0x68 0x20    // 's lunch ' \n\t0x62 0x61 0x67 0x20 0x6F 0x76 0x65 0x72    // 'bag over' \n\t0x20 0x68 0x69 0x73 0x20 0x68 0x65 0x61    // ' his hea' \n\t0x64 0x3F 0x20 0x20 0x49 0x66 0x20 0x4A    // 'd?  If J' \n\t0x65 0x72 0x7A 0x79 0x20 0x67 0x6F 0x65    // 'erzy goe' \n\t0x73 0x2C 0x20 0x77 0x68 0x65 0x72 0x65    // 's, where' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x74 0x68    // ' will th' \n\t0x65 0x79 0x20 0x6C 0x61 0x6E 0x64 0x3F    // 'ey land?' \n\t0x20 0x20 0x4F 0x72 0x20 0x63 0x61 0x6E    // '  Or can' \n\t0x20 0x74 0x68 0x65 0x79 0x20 0x66 0x6C    // ' they fl' \n\t0x79 0x20 0x66 0x61 0x73 0x74 0x65 0x72    // 'y faster' \n\t0x20 0x74 0x68 0x61 0x6E 0x20 0x74 0x69    // ' than ti' \n\t0x6D 0x65 0x20 0x69 0x74 0x73 0x65 0x6C    // 'me itsel' \n\t0x66 0x20 0x61 0x6E 0x64 0x20 0x65 0x6E    // 'f and en' \n\t0x64 0x20 0x75 0x70 0x20 0x69 0x6E 0x20    // 'd up in ' \n\t0x61 0x6E 0x6F 0x74 0x68 0x65 0x72 0x20    // 'another ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x61 0x6E    // 'place an' \n\t0x64 0x20 0x74 0x69 0x6D 0x65 0x3F         // 'd time?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7E= ktipbio85\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7E, __HELP_NAME(\"ktipbio85\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7E, __HELP_NAME(\"ktipbio85\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_95=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio85\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_95=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_95=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_95, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAE 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0C 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_95=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_95, 0x0)\n\tBYTE\n\t0x03 0x03 0x6D 0x6F 0x76 0x69 0x65 0x20    // '??movie ' \n\t0x73 0x74 0x61 0x72 0x0D 0x0A 0x4A 0x6F    // 'star??Jo' \n\t0x73 0x65 0x70 0x68 0x69 0x6E 0x65 0x20    // 'sephine ' \n\t0x76 0x6F 0x6C 0x75 0x6E 0x74 0x65 0x65    // 'voluntee' \n\t0x72 0x65 0x64 0x20 0x74 0x6F 0x20 0x6D    // 'red to m' \n\t0x61 0x6B 0x65 0x20 0x63 0x6F 0x73 0x74    // 'ake cost' \n\t0x75 0x6D 0x65 0x73 0x20 0x66 0x6F 0x72    // 'umes for' \n\t0x20 0x61 0x20 0x6D 0x6F 0x76 0x69 0x65    // ' a movie' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x77 0x61    // ' that wa' \n\t0x73 0x20 0x62 0x65 0x69 0x6E 0x67 0x20    // 's being ' \n\t0x66 0x69 0x6C 0x6D 0x65 0x64 0x20 0x69    // 'filmed i' \n\t0x6E 0x20 0x61 0x20 0x6C 0x6F 0x63 0x61    // 'n a loca' \n\t0x74 0x69 0x6F 0x6E 0x20 0x6E 0x65 0x61    // 'tion nea' \n\t0x72 0x20 0x68 0x65 0x72 0x20 0x6A 0x6F    // 'r her jo' \n\t0x62 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 'b at the' \n\t0x20 0x6D 0x61 0x6C 0x6C 0x2E 0x20 0x20    // ' mall.  ' \n\t0x57 0x68 0x65 0x6E 0x20 0x74 0x68 0x65    // 'When the' \n\t0x79 0x20 0x61 0x73 0x6B 0x65 0x64 0x20    // 'y asked ' \n\t0x68 0x65 0x72 0x20 0x74 0x6F 0x20 0x66    // 'her to f' \n\t0x69 0x6C 0x6C 0x20 0x69 0x6E 0x20 0x66    // 'ill in f' \n\t0x6F 0x72 0x20 0x61 0x6E 0x20 0x61 0x63    // 'or an ac' \n\t0x74 0x72 0x65 0x73 0x73 0x20 0x77 0x68    // 'tress wh' \n\t0x6F 0x20 0x68 0x61 0x64 0x20 0x71 0x75    // 'o had qu' \n\t0x69 0x74 0x2C 0x20 0x73 0x68 0x65 0x20    // 'it, she ' \n\t0x62 0x6F 0x6C 0x64 0x6C 0x79 0x20 0x74    // 'boldly t' \n\t0x6F 0x6F 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ook the ' \n\t0x73 0x74 0x61 0x67 0x65 0x20 0x61 0x6E    // 'stage an' \n\t0x64 0x20 0x77 0x61 0x73 0x20 0x73 0x75    // 'd was su' \n\t0x72 0x70 0x72 0x69 0x73 0x65 0x64 0x20    // 'rprised ' \n\t0x61 0x74 0x20 0x68 0x6F 0x77 0x20 0x65    // 'at how e' \n\t0x61 0x73 0x69 0x6C 0x79 0x20 0x61 0x63    // 'asily ac' \n\t0x74 0x69 0x6E 0x67 0x20 0x63 0x61 0x6D    // 'ting cam' \n\t0x65 0x20 0x74 0x6F 0x20 0x68 0x65 0x72    // 'e to her' \n\t0x2E 0x20 0x20 0x53 0x68 0x65 0x20 0x6C    // '.  She l' \n\t0x6F 0x76 0x65 0x64 0x20 0x74 0x68 0x65    // 'oved the' \n\t0x20 0x61 0x74 0x74 0x65 0x6E 0x74 0x69    // ' attenti' \n\t0x6F 0x6E 0x20 0x61 0x6E 0x64 0x20 0x74    // 'on and t' \n\t0x68 0x65 0x20 0x63 0x61 0x6D 0x65 0x72    // 'he camer' \n\t0x61 0x73 0x20 0x61 0x6E 0x64 0x20 0x6C    // 'as and l' \n\t0x69 0x67 0x68 0x74 0x73 0x2E 0x20 0x20    // 'ights.  ' \n\t0x53 0x68 0x65 0x20 0x6B 0x65 0x70 0x74    // 'She kept' \n\t0x20 0x74 0x72 0x79 0x69 0x6E 0x67 0x20    // ' trying ' \n\t0x6F 0x75 0x74 0x20 0x66 0x6F 0x72 0x20    // 'out for ' \n\t0x62 0x69 0x67 0x67 0x65 0x72 0x20 0x61    // 'bigger a' \n\t0x6E 0x64 0x20 0x62 0x69 0x67 0x67 0x65    // 'nd bigge' \n\t0x72 0x20 0x70 0x61 0x72 0x74 0x73 0x20    // 'r parts ' \n\t0x69 0x6E 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'in movie' \n\t0x73 0x20 0x75 0x6E 0x74 0x69 0x6C 0x20    // 's until ' \n\t0x6F 0x6E 0x65 0x20 0x64 0x61 0x79 0x20    // 'one day ' \n\t0x73 0x68 0x65 0x20 0x67 0x6F 0x74 0x20    // 'she got ' \n\t0x61 0x20 0x6C 0x65 0x61 0x64 0x69 0x6E    // 'a leadin' \n\t0x67 0x20 0x72 0x6F 0x6C 0x65 0x20 0x69    // 'g role i' \n\t0x6E 0x20 0x61 0x20 0x4D 0x63 0x5A 0x65    // 'n a McZe' \n\t0x65 0x20 0x66 0x69 0x6C 0x6D 0x21 0x20    // 'e film! ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7F= ktipbio86\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7F, __HELP_NAME(\"ktipbio86\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7F, __HELP_NAME(\"ktipbio86\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio86\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE7 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0D 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7B, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x61 0x6C 0x6D 0x20 0x52    // '??Palm R' \n\t0x65 0x61 0x64 0x65 0x72 0x0D 0x0A 0x4A    // 'eader??J' \n\t0x6F 0x73 0x65 0x70 0x68 0x69 0x6E 0x65    // 'osephine' \n\t0x20 0x63 0x6F 0x75 0x6C 0x64 0x20 0x74    // ' could t' \n\t0x65 0x6C 0x6C 0x20 0x61 0x6D 0x61 0x7A    // 'ell amaz' \n\t0x69 0x6E 0x67 0x20 0x73 0x74 0x6F 0x72    // 'ing stor' \n\t0x69 0x65 0x73 0x20 0x70 0x6C 0x61 0x79    // 'ies play' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x70 0x61 0x72 0x74 0x20 0x6F 0x66 0x20    // 'part of ' \n\t0x61 0x20 0x70 0x61 0x6C 0x6D 0x20 0x72    // 'a palm r' \n\t0x65 0x61 0x64 0x65 0x72 0x20 0x69 0x6E    // 'eader in' \n\t0x20 0x61 0x20 0x6D 0x6F 0x76 0x69 0x65    // ' a movie' \n\t0x2E 0x20 0x20 0x50 0x65 0x6F 0x70 0x6C    // '.  Peopl' \n\t0x65 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 'e would ' \n\t0x6C 0x69 0x6E 0x65 0x20 0x75 0x70 0x20    // 'line up ' \n\t0x74 0x6F 0x20 0x68 0x65 0x61 0x72 0x20    // 'to hear ' \n\t0x74 0x68 0x65 0x69 0x72 0x20 0x66 0x75    // 'their fu' \n\t0x74 0x75 0x72 0x65 0x73 0x20 0x70 0x72    // 'tures pr' \n\t0x65 0x64 0x69 0x63 0x74 0x65 0x64 0x20    // 'edicted ' \n\t0x61 0x6E 0x64 0x20 0x73 0x68 0x65 0x20    // 'and she ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x28 0x61    // 'would (a' \n\t0x6C 0x6D 0x6F 0x73 0x74 0x29 0x20 0x61    // 'lmost) a' \n\t0x6C 0x77 0x61 0x79 0x73 0x20 0x74 0x65    // 'lways te' \n\t0x6C 0x6C 0x20 0x74 0x68 0x65 0x6D 0x20    // 'll them ' \n\t0x77 0x68 0x61 0x74 0x20 0x74 0x68 0x65    // 'what the' \n\t0x79 0x20 0x77 0x61 0x6E 0x74 0x65 0x64    // 'y wanted' \n\t0x20 0x74 0x6F 0x20 0x68 0x65 0x61 0x72    // ' to hear' \n\t0x2E 0x20 0x20 0x4F 0x6E 0x65 0x20 0x64    // '.  One d' \n\t0x61 0x79 0x2C 0x20 0x73 0x68 0x65 0x20    // 'ay, she ' \n\t0x6D 0x65 0x65 0x74 0x73 0x20 0x73 0x6F    // 'meets so' \n\t0x6D 0x65 0x6F 0x6E 0x65 0x20 0x77 0x68    // 'meone wh' \n\t0x6F 0x73 0x65 0x20 0x64 0x65 0x73 0x74    // 'ose dest' \n\t0x69 0x6E 0x79 0x20 0x63 0x6F 0x6C 0x6C    // 'iny coll' \n\t0x69 0x64 0x65 0x73 0x20 0x77 0x69 0x74    // 'ides wit' \n\t0x68 0x20 0x68 0x65 0x72 0x20 0x6F 0x77    // 'h her ow' \n\t0x6E 0x2E 0x20 0x20 0x57 0x68 0x61 0x74    // 'n.  What' \n\t0x20 0x73 0x68 0x65 0x20 0x73 0x65 0x65    // ' she see' \n\t0x73 0x20 0x69 0x73 0x20 0x74 0x68 0x61    // 's is tha' \n\t0x74 0x20 0x73 0x6F 0x6D 0x65 0x77 0x68    // 't somewh' \n\t0x65 0x72 0x65 0x20 0x74 0x68 0x65 0x72    // 'ere ther' \n\t0x65 0x20 0x69 0x73 0x20 0x61 0x20 0x62    // 'e is a b' \n\t0x61 0x62 0x79 0x20 0x63 0x72 0x61 0x77    // 'aby craw' \n\t0x6C 0x69 0x6E 0x67 0x20 0x61 0x63 0x72    // 'ling acr' \n\t0x6F 0x73 0x73 0x20 0x61 0x20 0x72 0x6F    // 'oss a ro' \n\t0x61 0x64 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'ad, and ' \n\t0x74 0x68 0x61 0x74 0x20 0x74 0x6F 0x67    // 'that tog' \n\t0x65 0x74 0x68 0x65 0x72 0x20 0x74 0x68    // 'ether th' \n\t0x65 0x79 0x20 0x6D 0x75 0x73 0x74 0x20    // 'ey must ' \n\t0x66 0x69 0x6E 0x64 0x20 0x74 0x68 0x65    // 'find the' \n\t0x20 0x63 0x68 0x69 0x6C 0x64 0x20 0x61    // ' child a' \n\t0x6E 0x64 0x20 0x73 0x61 0x76 0x65 0x20    // 'nd save ' \n\t0x69 0x74 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'it from ' \n\t0x61 0x6E 0x20 0x61 0x6D 0x62 0x75 0x6C    // 'an ambul' \n\t0x61 0x6E 0x63 0x65 0x20 0x7A 0x6F 0x6F    // 'ance zoo' \n\t0x6D 0x69 0x6E 0x67 0x20 0x63 0x6C 0x6F    // 'ming clo' \n\t0x73 0x65 0x72 0x20 0x61 0x6E 0x64 0x20    // 'ser and ' \n\t0x63 0x6C 0x6F 0x73 0x65 0x72 0x2E 0x20    // 'closer. ' \n\t0x57 0x69 0x6C 0x6C 0x20 0x74 0x68 0x65    // 'Will the' \n\t0x79 0x20 0x66 0x69 0x6E 0x64 0x20 0x74    // 'y find t' \n\t0x68 0x65 0x20 0x62 0x61 0x62 0x79 0x20    // 'he baby ' \n\t0x69 0x6E 0x20 0x74 0x69 0x6D 0x65 0x3F    // 'in time?' \n\t0x20                                       // ' ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_80= ktipbio87\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_80, __HELP_NAME(\"ktipbio87\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_80, __HELP_NAME(\"ktipbio87\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_80, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio87\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_80, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8A 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE9 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7F, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x6D 0x70 0x6F 0x72 0x74    // '??Import' \n\t0x20 0x53 0x61 0x6C 0x65 0x73 0x70 0x65    // ' Salespe' \n\t0x72 0x73 0x6F 0x6E 0x0D 0x0A 0x4A 0x6F    // 'rson??Jo' \n\t0x73 0x65 0x70 0x68 0x69 0x6E 0x65 0x20    // 'sephine ' \n\t0x68 0x61 0x73 0x20 0x77 0x6F 0x72 0x6B    // 'has work' \n\t0x65 0x64 0x20 0x69 0x6E 0x20 0x73 0x61    // 'ed in sa' \n\t0x6C 0x65 0x73 0x20 0x62 0x65 0x66 0x6F    // 'les befo' \n\t0x72 0x65 0x20 0x61 0x6E 0x64 0x20 0x77    // 're and w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x62 0x65 0x20    // 'ould be ' \n\t0x65 0x78 0x63 0x65 0x6C 0x6C 0x65 0x6E    // 'excellen' \n\t0x74 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 't in the' \n\t0x20 0x72 0x6F 0x6C 0x65 0x20 0x6F 0x66    // ' role of' \n\t0x20 0x61 0x6E 0x20 0x69 0x6D 0x70 0x6F    // ' an impo' \n\t0x72 0x74 0x20 0x73 0x61 0x6C 0x65 0x73    // 'rt sales' \n\t0x70 0x65 0x72 0x73 0x6F 0x6E 0x2E 0x20    // 'person. ' \n\t0x20 0x53 0x68 0x65 0x20 0x73 0x65 0x6C    // ' She sel' \n\t0x6C 0x73 0x20 0x61 0x6E 0x79 0x74 0x68    // 'ls anyth' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x61 0x74    // 'ing that' \n\t0x20 0x6D 0x6F 0x76 0x65 0x73 0x3A 0x20    // ' moves: ' \n\t0x20 0x63 0x61 0x72 0x73 0x2C 0x20 0x74    // ' cars, t' \n\t0x61 0x78 0x69 0x73 0x2C 0x20 0x73 0x70    // 'axis, sp' \n\t0x61 0x63 0x65 0x73 0x68 0x69 0x70 0x73    // 'aceships' \n\t0x2C 0x20 0x72 0x6F 0x63 0x6B 0x65 0x74    // ', rocket' \n\t0x73 0x2C 0x20 0x61 0x6D 0x62 0x75 0x6C    // 's, ambul' \n\t0x61 0x6E 0x63 0x65 0x73 0x2C 0x20 0x68    // 'ances, h' \n\t0x6F 0x74 0x2D 0x61 0x69 0x72 0x20 0x62    // 'ot-air b' \n\t0x61 0x6C 0x6C 0x6F 0x6F 0x6E 0x73 0x2C    // 'alloons,' \n\t0x20 0x61 0x6E 0x64 0x20 0x6A 0x65 0x74    // ' and jet' \n\t0x20 0x70 0x6C 0x61 0x6E 0x65 0x73 0x2E    // ' planes.' \n\t0x20 0x0D 0x0A 0x42 0x75 0x74 0x20 0x77    // ' ??But w' \n\t0x68 0x65 0x6E 0x20 0x68 0x65 0x72 0x20    // 'hen her ' \n\t0x70 0x6F 0x74 0x65 0x6E 0x74 0x69 0x61    // 'potentia' \n\t0x6C 0x20 0x63 0x75 0x73 0x74 0x6F 0x6D    // 'l custom' \n\t0x65 0x72 0x73 0x20 0x72 0x65 0x61 0x6C    // 'ers real' \n\t0x69 0x7A 0x65 0x20 0x74 0x68 0x61 0x74    // 'ize that' \n\t0x20 0x74 0x68 0x65 0x73 0x65 0x20 0x76    // ' these v' \n\t0x65 0x68 0x69 0x63 0x6C 0x65 0x73 0x20    // 'ehicles ' \n\t0x61 0x72 0x65 0x20 0x6E 0x6F 0x74 0x20    // 'are not ' \n\t0x68 0x65 0x72 0x73 0x20 0x74 0x6F 0x20    // 'hers to ' \n\t0x73 0x65 0x6C 0x6C 0x20 0x61 0x6E 0x64    // 'sell and' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x73 0x68    // ' that sh' \n\t0x65 0x20 0x69 0x73 0x20 0x61 0x20 0x73    // 'e is a s' \n\t0x63 0x61 0x6D 0x20 0x61 0x72 0x74 0x69    // 'cam arti' \n\t0x73 0x74 0x2C 0x20 0x63 0x61 0x6E 0x20    // 'st, can ' \n\t0x73 0x68 0x65 0x20 0x67 0x65 0x74 0x20    // 'she get ' \n\t0x61 0x77 0x61 0x79 0x20 0x62 0x65 0x66    // 'away bef' \n\t0x6F 0x72 0x65 0x20 0x74 0x68 0x65 0x20    // 'ore the ' \n\t0x70 0x6F 0x6C 0x69 0x63 0x65 0x20 0x61    // 'police a' \n\t0x72 0x72 0x65 0x73 0x74 0x20 0x68 0x65    // 'rrest he' \n\t0x72 0x3F 0x20 0x20                        // 'r?  ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_81= ktipbio88\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_81, __HELP_NAME(\"ktipbio88\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_81, __HELP_NAME(\"ktipbio88\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_80=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_81, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio88\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_80=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_81, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_80=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_80, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xCF 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_80=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_80, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x72 0x74 0x20 0x43 0x6F    // '??Art Co' \n\t0x6C 0x6C 0x65 0x63 0x74 0x6F 0x72 0x0D    // 'llector?' \n\t0x0A 0x50 0x6C 0x61 0x79 0x69 0x6E 0x67    // '?Playing' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x61 0x72    // ' the par' \n\t0x74 0x20 0x6F 0x66 0x20 0x61 0x6E 0x20    // 't of an ' \n\t0x61 0x72 0x74 0x20 0x63 0x6F 0x6C 0x6C    // 'art coll' \n\t0x65 0x63 0x74 0x6F 0x72 0x20 0x77 0x6F    // 'ector wo' \n\t0x75 0x6C 0x64 0x20 0x62 0x65 0x20 0x71    // 'uld be q' \n\t0x75 0x69 0x74 0x65 0x20 0x61 0x6E 0x20    // 'uite an ' \n\t0x61 0x64 0x76 0x65 0x6E 0x74 0x75 0x72    // 'adventur' \n\t0x65 0x20 0x66 0x6F 0x72 0x20 0x4A 0x6F    // 'e for Jo' \n\t0x73 0x65 0x70 0x68 0x69 0x6E 0x65 0x21    // 'sephine!' \n\t0x20 0x53 0x68 0x65 0x20 0x77 0x6F 0x75    // ' She wou' \n\t0x6C 0x64 0x20 0x68 0x61 0x76 0x65 0x20    // 'ld have ' \n\t0x74 0x6F 0x20 0x74 0x72 0x61 0x76 0x65    // 'to trave' \n\t0x6C 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'l to the' \n\t0x20 0x74 0x72 0x6F 0x70 0x69 0x63 0x73    // ' tropics' \n\t0x2C 0x20 0x73 0x74 0x61 0x79 0x20 0x69    // ', stay i' \n\t0x6E 0x20 0x61 0x20 0x68 0x75 0x74 0x2C    // 'n a hut,' \n\t0x20 0x61 0x6E 0x64 0x20 0x77 0x6F 0x72    // ' and wor' \n\t0x6B 0x20 0x77 0x69 0x74 0x68 0x20 0x61    // 'k with a' \n\t0x20 0x67 0x75 0x69 0x64 0x65 0x20 0x77    // ' guide w' \n\t0x68 0x6F 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'ho would' \n\t0x20 0x6C 0x65 0x61 0x64 0x20 0x68 0x65    // ' lead he' \n\t0x72 0x20 0x74 0x6F 0x20 0x61 0x20 0x73    // 'r to a s' \n\t0x65 0x74 0x20 0x6F 0x66 0x20 0x70 0x72    // 'et of pr' \n\t0x69 0x63 0x65 0x6C 0x65 0x73 0x73 0x20    // 'iceless ' \n\t0x74 0x6F 0x74 0x65 0x6D 0x20 0x70 0x6F    // 'totem po' \n\t0x6C 0x65 0x73 0x2E 0x20 0x20 0x42 0x75    // 'les.  Bu' \n\t0x74 0x20 0x77 0x68 0x65 0x6E 0x20 0x73    // 't when s' \n\t0x68 0x65 0x20 0x66 0x69 0x6E 0x64 0x73    // 'he finds' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x74 0x68    // ' that th' \n\t0x65 0x20 0x74 0x6F 0x74 0x65 0x6D 0x20    // 'e totem ' \n\t0x70 0x6F 0x6C 0x65 0x73 0x20 0x68 0x61    // 'poles ha' \n\t0x76 0x65 0x20 0x61 0x20 0x63 0x75 0x72    // 've a cur' \n\t0x73 0x65 0x20 0x6F 0x6E 0x20 0x74 0x68    // 'se on th' \n\t0x65 0x6D 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'em, and ' \n\t0x77 0x68 0x65 0x6E 0x20 0x73 0x6B 0x65    // 'when ske' \n\t0x6C 0x65 0x74 0x6F 0x6E 0x73 0x20 0x61    // 'letons a' \n\t0x6E 0x64 0x20 0x63 0x68 0x61 0x74 0x74    // 'nd chatt' \n\t0x65 0x72 0x69 0x6E 0x67 0x20 0x73 0x6B    // 'ering sk' \n\t0x75 0x6C 0x6C 0x73 0x20 0x73 0x74 0x61    // 'ulls sta' \n\t0x72 0x74 0x20 0x70 0x6F 0x70 0x70 0x69    // 'rt poppi' \n\t0x6E 0x67 0x20 0x75 0x70 0x20 0x65 0x76    // 'ng up ev' \n\t0x65 0x72 0x79 0x77 0x68 0x65 0x72 0x65    // 'erywhere' \n\t0x20 0x74 0x6F 0x20 0x74 0x65 0x6C 0x6C    // ' to tell' \n\t0x20 0x68 0x65 0x72 0x20 0x74 0x6F 0x20    // ' her to ' \n\t0x67 0x65 0x74 0x20 0x6F 0x75 0x74 0x2C    // 'get out,' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x73 0x68    // ' will sh' \n\t0x65 0x20 0x73 0x74 0x69 0x63 0x6B 0x20    // 'e stick ' \n\t0x61 0x72 0x6F 0x75 0x6E 0x64 0x3F 0x20    // 'around? ' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x68 0x65    // ' When he' \n\t0x72 0x20 0x67 0x75 0x69 0x64 0x65 0x20    // 'r guide ' \n\t0x64 0x69 0x73 0x61 0x70 0x70 0x65 0x61    // 'disappea' \n\t0x72 0x73 0x2C 0x20 0x77 0x68 0x6F 0x20    // 'rs, who ' \n\t0x77 0x69 0x6C 0x6C 0x20 0x68 0x65 0x6C    // 'will hel' \n\t0x70 0x20 0x68 0x65 0x72 0x20 0x66 0x69    // 'p her fi' \n\t0x6E 0x64 0x20 0x68 0x69 0x6D 0x3F 0x20    // 'nd him? ' \n\t0x20                                       // ' ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_82= ktipbio89\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_82, __HELP_NAME(\"ktipbio89\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_82, __HELP_NAME(\"ktipbio89\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_82, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio89\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_82, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3A 0x01 0x00 0x82    // '????:??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6B, 0x0)\n\tBYTE\n\t0x03 0x03 0x73 0x74 0x75 0x6E 0x74 0x20    // '??stunt ' \n\t0x61 0x63 0x74 0x72 0x65 0x73 0x73 0x0D    // 'actress?' \n\t0x0A 0x4B 0x69 0x6D 0x20 0x74 0x72 0x69    // '?Kim tri' \n\t0x65 0x64 0x20 0x68 0x65 0x72 0x20 0x66    // 'ed her f' \n\t0x69 0x72 0x73 0x74 0x20 0x73 0x74 0x75    // 'irst stu' \n\t0x6E 0x74 0x20 0x77 0x68 0x65 0x6E 0x20    // 'nt when ' \n\t0x73 0x68 0x65 0x20 0x77 0x61 0x73 0x20    // 'she was ' \n\t0x6F 0x6E 0x6C 0x79 0x20 0x35 0x2E 0x20    // 'only 5. ' \n\t0x20 0x53 0x68 0x65 0x20 0x6C 0x6F 0x76    // ' She lov' \n\t0x65 0x64 0x20 0x66 0x6C 0x79 0x69 0x6E    // 'ed flyin' \n\t0x67 0x20 0x6B 0x69 0x74 0x65 0x73 0x2C    // 'g kites,' \n\t0x20 0x73 0x6F 0x20 0x6F 0x6E 0x65 0x20    // ' so one ' \n\t0x77 0x69 0x6E 0x64 0x79 0x20 0x64 0x61    // 'windy da' \n\t0x79 0x2C 0x20 0x73 0x68 0x65 0x20 0x74    // 'y, she t' \n\t0x69 0x65 0x64 0x20 0x74 0x6F 0x67 0x65    // 'ied toge' \n\t0x74 0x68 0x65 0x72 0x20 0x61 0x6C 0x6C    // 'ther all' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x6B 0x69 0x74 0x65 0x73 0x20 0x69 0x6E    // 'kites in' \n\t0x20 0x68 0x65 0x72 0x20 0x63 0x6F 0x6C    // ' her col' \n\t0x6C 0x65 0x63 0x74 0x69 0x6F 0x6E 0x2E    // 'lection.' \n\t0x20 0x20 0x57 0x68 0x65 0x6E 0x20 0x73    // '  When s' \n\t0x68 0x65 0x20 0x72 0x61 0x6E 0x20 0x74    // 'he ran t' \n\t0x6F 0x20 0x67 0x65 0x74 0x20 0x74 0x68    // 'o get th' \n\t0x65 0x6D 0x20 0x66 0x6C 0x79 0x69 0x6E    // 'em flyin' \n\t0x67 0x2C 0x20 0x61 0x20 0x67 0x75 0x73    // 'g, a gus' \n\t0x74 0x20 0x6F 0x66 0x20 0x77 0x69 0x6E    // 't of win' \n\t0x64 0x20 0x74 0x6F 0x6F 0x6B 0x20 0x74    // 'd took t' \n\t0x68 0x65 0x20 0x6B 0x69 0x74 0x65 0x73    // 'he kites' \n\t0x20 0x75 0x70 0x20 0x61 0x6E 0x64 0x20    // ' up and ' \n\t0x74 0x6F 0x6F 0x6B 0x20 0x4B 0x69 0x6D    // 'took Kim' \n\t0x20 0x75 0x70 0x20 0x72 0x69 0x67 0x68    // ' up righ' \n\t0x74 0x20 0x61 0x6C 0x6F 0x6E 0x67 0x20    // 't along ' \n\t0x77 0x69 0x74 0x68 0x20 0x74 0x68 0x65    // 'with the' \n\t0x6D 0x2C 0x20 0x68 0x65 0x72 0x20 0x63    // 'm, her c' \n\t0x65 0x72 0x65 0x6D 0x6F 0x6E 0x69 0x61    // 'eremonia' \n\t0x6C 0x20 0x6B 0x69 0x6D 0x6F 0x6E 0x6F    // 'l kimono' \n\t0x20 0x66 0x6C 0x79 0x69 0x6E 0x67 0x20    // ' flying ' \n\t0x61 0x72 0x6F 0x75 0x6E 0x64 0x20 0x68    // 'around h' \n\t0x65 0x72 0x20 0x6B 0x6E 0x65 0x65 0x73    // 'er knees' \n\t0x2E 0x20 0x0D 0x0A 0x41 0x20 0x6E 0x65    // '. ??A ne' \n\t0x77 0x73 0x20 0x63 0x72 0x65 0x77 0x20    // 'ws crew ' \n\t0x63 0x61 0x75 0x67 0x68 0x74 0x20 0x4B    // 'caught K' \n\t0x69 0x6D 0x20 0x69 0x6E 0x20 0x66 0x6C    // 'im in fl' \n\t0x69 0x67 0x68 0x74 0x2C 0x20 0x61 0x6E    // 'ight, an' \n\t0x64 0x20 0x6D 0x61 0x6E 0x79 0x20 0x6D    // 'd many m' \n\t0x6F 0x76 0x69 0x65 0x20 0x63 0x6F 0x6D    // 'ovie com' \n\t0x70 0x61 0x6E 0x69 0x65 0x73 0x20 0x63    // 'panies c' \n\t0x61 0x6C 0x6C 0x65 0x64 0x20 0x68 0x65    // 'alled he' \n\t0x72 0x20 0x68 0x6F 0x75 0x73 0x65 0x2C    // 'r house,' \n\t0x20 0x77 0x61 0x6E 0x74 0x69 0x6E 0x67    // ' wanting' \n\t0x20 0x4B 0x69 0x6D 0x20 0x74 0x6F 0x20    // ' Kim to ' \n\t0x62 0x65 0x20 0x61 0x20 0x73 0x74 0x61    // 'be a sta' \n\t0x72 0x2E 0x20 0x20 0x42 0x75 0x74 0x20    // 'r.  But ' \n\t0x68 0x65 0x72 0x20 0x70 0x61 0x72 0x65    // 'her pare' \n\t0x6E 0x74 0x73 0x20 0x77 0x6F 0x75 0x6C    // 'nts woul' \n\t0x64 0x6E 0x92 0x74 0x20 0x6C 0x65 0x74    // 'dnt let' \n\t0x20 0x68 0x65 0x72 0x20 0x6D 0x61 0x6B    // ' her mak' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x73    // 'e movies' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x73    // ' until s' \n\t0x68 0x65 0x20 0x77 0x61 0x73 0x20 0x61    // 'he was a' \n\t0x74 0x20 0x6C 0x65 0x61 0x73 0x74 0x20    // 't least ' \n\t0x31 0x32 0x2E 0x20 0x20 0x57 0x65 0x6C    // '12.  Wel' \n\t0x6C 0x2C 0x20 0x6E 0x6F 0x77 0x20 0x73    // 'l, now s' \n\t0x68 0x65 0x27 0x73 0x20 0x31 0x32 0x20    // 'he's 12 ' \n\t0x61 0x6E 0x64 0x20 0x72 0x65 0x61 0x64    // 'and read' \n\t0x79 0x20 0x74 0x6F 0x20 0x62 0x65 0x20    // 'y to be ' \n\t0x61 0x20 0x73 0x74 0x61 0x72 0x21         // 'a star!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_83= ktipbio90\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_83, __HELP_NAME(\"ktipbio90\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_83, __HELP_NAME(\"ktipbio90\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_85=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_83, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio90\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_85=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_83, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_85=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_85, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x7B 0x02 0x00 0x01    // '????{???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x23 0x02 0x00 0x82    // '????#??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_85=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_85, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x6F 0x72 0x74 0x75 0x6E    // '??Fortun' \n\t0x65 0x20 0x54 0x65 0x6C 0x6C 0x65 0x72    // 'e Teller' \n\t0x0D 0x0A 0x49 0x66 0x20 0x4B 0x69 0x6D    // '??If Kim' \n\t0x20 0x63 0x6F 0x75 0x6C 0x64 0x20 0x63    // ' could c' \n\t0x68 0x6F 0x6F 0x73 0x65 0x20 0x61 0x20    // 'hoose a ' \n\t0x70 0x61 0x72 0x74 0x2C 0x20 0x73 0x68    // 'part, sh' \n\t0x65 0x92 0x64 0x20 0x77 0x61 0x6E 0x74    // 'ed want' \n\t0x20 0x74 0x6F 0x20 0x70 0x6C 0x61 0x79    // ' to play' \n\t0x20 0x61 0x20 0x56 0x69 0x72 0x74 0x75    // ' a Virtu' \n\t0x61 0x6C 0x20 0x52 0x65 0x61 0x6C 0x69    // 'al Reali' \n\t0x74 0x79 0x20 0x46 0x6F 0x72 0x74 0x75    // 'ty Fortu' \n\t0x6E 0x65 0x20 0x54 0x65 0x6C 0x6C 0x65    // 'ne Telle' \n\t0x72 0x2E 0x20 0x20 0x54 0x68 0x61 0x74    // 'r.  That' \n\t0x20 0x77 0x61 0x79 0x20 0x73 0x68 0x65    // ' way she' \n\t0x20 0x63 0x6F 0x75 0x6C 0x64 0x20 0x74    // ' could t' \n\t0x61 0x6B 0x65 0x20 0x70 0x65 0x6F 0x70    // 'ake peop' \n\t0x6C 0x65 0x20 0x74 0x6F 0x20 0x74 0x68    // 'le to th' \n\t0x65 0x69 0x72 0x20 0x66 0x75 0x74 0x75    // 'eir futu' \n\t0x72 0x65 0x73 0x2E 0x20 0x20 0x53 0x68    // 'res.  Sh' \n\t0x65 0x20 0x69 0x6D 0x61 0x67 0x69 0x6E    // 'e imagin' \n\t0x65 0x73 0x20 0x64 0x6F 0x69 0x6E 0x67    // 'es doing' \n\t0x20 0x61 0x20 0x72 0x65 0x61 0x64 0x69    // ' a readi' \n\t0x6E 0x67 0x20 0x66 0x6F 0x72 0x20 0x57    // 'ng for W' \n\t0x69 0x6C 0x6C 0x79 0x2C 0x20 0x74 0x68    // 'illy, th' \n\t0x65 0x20 0x67 0x72 0x65 0x65 0x6E 0x20    // 'e green ' \n\t0x73 0x63 0x69 0x65 0x6E 0x74 0x69 0x73    // 'scientis' \n\t0x74 0x2E 0x20 0x20 0x54 0x68 0x65 0x79    // 't.  They' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x67    // ' would g' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x66 0x75 0x74 0x75 0x72 0x65 0x2C    // ' future,' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x57    // ' where W' \n\t0x69 0x6C 0x6C 0x79 0x20 0x77 0x6F 0x75    // 'illy wou' \n\t0x6C 0x64 0x20 0x69 0x6E 0x76 0x65 0x6E    // 'ld inven' \n\t0x74 0x20 0x61 0x20 0x72 0x6F 0x63 0x6B    // 't a rock' \n\t0x65 0x74 0x20 0x74 0x68 0x61 0x74 0x20    // 'et that ' \n\t0x63 0x6F 0x75 0x6C 0x64 0x20 0x74 0x61    // 'could ta' \n\t0x6B 0x65 0x20 0x70 0x65 0x6F 0x70 0x6C    // 'ke peopl' \n\t0x65 0x20 0x6F 0x6E 0x20 0x76 0x61 0x63    // 'e on vac' \n\t0x61 0x74 0x69 0x6F 0x6E 0x73 0x20 0x74    // 'ations t' \n\t0x6F 0x20 0x4D 0x61 0x72 0x73 0x2E 0x20    // 'o Mars. ' \n\t0x20 0x53 0x68 0x65 0x20 0x61 0x6E 0x64    // ' She and' \n\t0x20 0x57 0x69 0x6C 0x6C 0x79 0x20 0x63    // ' Willy c' \n\t0x6F 0x75 0x6C 0x64 0x20 0x64 0x6F 0x20    // 'ould do ' \n\t0x74 0x68 0x65 0x20 0x74 0x65 0x73 0x74    // 'the test' \n\t0x20 0x66 0x6C 0x69 0x67 0x68 0x74 0x2E    // ' flight.' \n\t0x20 0x42 0x75 0x74 0x20 0x61 0x66 0x74    // ' But aft' \n\t0x65 0x72 0x20 0x74 0x68 0x65 0x79 0x20    // 'er they ' \n\t0x74 0x61 0x6B 0x65 0x20 0x6F 0x66 0x66    // 'take off' \n\t0x2C 0x20 0x74 0x68 0x65 0x79 0x20 0x62    // ', they b' \n\t0x6F 0x74 0x68 0x20 0x72 0x65 0x61 0x6C    // 'oth real' \n\t0x69 0x7A 0x65 0x20 0x74 0x68 0x61 0x74    // 'ize that' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x66 0x75 0x74 0x75 0x72 0x65 0x20 0x61    // 'future a' \n\t0x73 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 's in the' \n\t0x20 0x70 0x61 0x73 0x74 0x2C 0x20 0x57    // ' past, W' \n\t0x69 0x6C 0x6C 0x79 0x20 0x66 0x6F 0x72    // 'illy for' \n\t0x67 0x6F 0x74 0x20 0x74 0x6F 0x20 0x66    // 'got to f' \n\t0x69 0x67 0x75 0x72 0x65 0x20 0x6F 0x75    // 'igure ou' \n\t0x74 0x20 0x68 0x6F 0x77 0x20 0x74 0x6F    // 't how to' \n\t0x20 0x72 0x65 0x63 0x68 0x61 0x72 0x67    // ' recharg' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x72 0x6F    // 'e the ro' \n\t0x63 0x6B 0x65 0x74 0x20 0x62 0x6F 0x6F    // 'cket boo' \n\t0x73 0x74 0x65 0x72 0x73 0x20 0x74 0x68    // 'sters th' \n\t0x61 0x74 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'at would' \n\t0x20 0x67 0x65 0x74 0x20 0x74 0x68 0x65    // ' get the' \n\t0x20 0x72 0x6F 0x63 0x6B 0x65 0x74 0x20    // ' rocket ' \n\t0x74 0x6F 0x20 0x66 0x6C 0x79 0x20 0x68    // 'to fly h' \n\t0x6F 0x6D 0x65 0x20 0x61 0x67 0x61 0x69    // 'ome agai' \n\t0x6E 0x2E 0x20 0x0D 0x0A 0x48 0x6F 0x77    // 'n. ??How' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x4B 0x69    // ' will Ki' \n\t0x6D 0x20 0x61 0x6E 0x64 0x20 0x57 0x69    // 'm and Wi' \n\t0x6C 0x6C 0x79 0x20 0x67 0x65 0x74 0x20    // 'lly get ' \n\t0x68 0x6F 0x6D 0x65 0x3F 0x20 0x57 0x69    // 'home? Wi' \n\t0x6C 0x6C 0x20 0x4B 0x69 0x6D 0x20 0x6E    // 'll Kim n' \n\t0x65 0x65 0x64 0x20 0x74 0x6F 0x20 0x74    // 'eed to t' \n\t0x72 0x79 0x20 0x73 0x6F 0x6D 0x65 0x20    // 'ry some ' \n\t0x73 0x74 0x75 0x6E 0x74 0x73 0x20 0x74    // 'stunts t' \n\t0x6F 0x20 0x68 0x65 0x6C 0x70 0x20 0x74    // 'o help t' \n\t0x68 0x65 0x6D 0x20 0x67 0x65 0x74 0x20    // 'hem get ' \n\t0x62 0x61 0x63 0x6B 0x3F                   // 'back?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_84= ktipbio91\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_84, __HELP_NAME(\"ktipbio91\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_84, __HELP_NAME(\"ktipbio91\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_84=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_84, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio91\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_84=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_84, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_84=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_84, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6D 0x02 0x00 0x01    // '????m???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xAE 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_84=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_84, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x65 0x6D 0x62 0x65 0x72    // '??Member' \n\t0x20 0x6F 0x66 0x20 0x4B 0x69 0x64 0x73    // ' of Kids' \n\t0x92 0x20 0x4D 0x79 0x73 0x74 0x65 0x72    // ' Myster' \n\t0x79 0x20 0x43 0x6C 0x75 0x62 0x0D 0x0A    // 'y Club??' \n\t0x4B 0x69 0x6D 0x20 0x64 0x72 0x65 0x61    // 'Kim drea' \n\t0x6D 0x73 0x20 0x6F 0x66 0x20 0x70 0x6C    // 'ms of pl' \n\t0x61 0x79 0x69 0x6E 0x67 0x20 0x74 0x68    // 'aying th' \n\t0x65 0x20 0x6C 0x65 0x61 0x64 0x20 0x70    // 'e lead p' \n\t0x61 0x72 0x74 0x20 0x69 0x6E 0x20 0x61    // 'art in a' \n\t0x20 0x4B 0x69 0x64 0x73 0x92 0x20 0x4D    // ' Kids M' \n\t0x79 0x73 0x74 0x65 0x72 0x79 0x20 0x43    // 'ystery C' \n\t0x6C 0x75 0x62 0x20 0x6D 0x6F 0x76 0x69    // 'lub movi' \n\t0x65 0x2E 0x20 0x20 0x53 0x68 0x65 0x20    // 'e.  She ' \n\t0x63 0x61 0x6E 0x20 0x73 0x65 0x65 0x20    // 'can see ' \n\t0x74 0x68 0x65 0x20 0x73 0x74 0x6F 0x72    // 'the stor' \n\t0x79 0x20 0x6E 0x6F 0x77 0x2E 0x20 0x20    // 'y now.  ' \n\t0x42 0x6F 0x2C 0x20 0x74 0x68 0x65 0x20    // 'Bo, the ' \n\t0x62 0x69 0x67 0x20 0x67 0x75 0x79 0x20    // 'big guy ' \n\t0x77 0x68 0x6F 0x20 0x67 0x75 0x61 0x72    // 'who guar' \n\t0x64 0x73 0x20 0x74 0x68 0x65 0x20 0x63    // 'ds the c' \n\t0x72 0x65 0x65 0x70 0x79 0x20 0x68 0x6F    // 'reepy ho' \n\t0x75 0x73 0x65 0x20 0x64 0x6F 0x77 0x6E    // 'use down' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x72    // ' the str' \n\t0x65 0x65 0x74 0x2C 0x20 0x6B 0x65 0x65    // 'eet, kee' \n\t0x70 0x73 0x20 0x74 0x65 0x6C 0x6C 0x69    // 'ps telli' \n\t0x6E 0x67 0x20 0x65 0x76 0x65 0x72 0x79    // 'ng every' \n\t0x6F 0x6E 0x65 0x20 0x74 0x68 0x61 0x74    // 'one that' \n\t0x20 0x68 0x65 0x20 0x73 0x61 0x77 0x20    // ' he saw ' \n\t0x61 0x20 0x55 0x46 0x4F 0x20 0x66 0x6C    // 'a UFO fl' \n\t0x79 0x69 0x6E 0x67 0x20 0x61 0x72 0x6F    // 'ying aro' \n\t0x75 0x6E 0x64 0x20 0x74 0x68 0x65 0x20    // 'und the ' \n\t0x63 0x72 0x65 0x65 0x70 0x79 0x20 0x68    // 'creepy h' \n\t0x6F 0x75 0x73 0x65 0x20 0x61 0x74 0x20    // 'ouse at ' \n\t0x6E 0x69 0x67 0x68 0x74 0x2E 0x20 0x20    // 'night.  ' \n\t0x4E 0x6F 0x20 0x6F 0x6E 0x65 0x20 0x62    // 'No one b' \n\t0x75 0x74 0x20 0x74 0x68 0x65 0x20 0x6B    // 'ut the k' \n\t0x69 0x64 0x73 0x20 0x62 0x65 0x6C 0x69    // 'ids beli' \n\t0x65 0x76 0x65 0x20 0x68 0x69 0x6D 0x2C    // 'eve him,' \n\t0x20 0x61 0x6E 0x64 0x20 0x4B 0x69 0x6D    // ' and Kim' \n\t0x20 0x69 0x73 0x20 0x64 0x65 0x74 0x65    // ' is dete' \n\t0x72 0x6D 0x69 0x6E 0x65 0x64 0x20 0x74    // 'rmined t' \n\t0x6F 0x20 0x70 0x72 0x6F 0x76 0x65 0x20    // 'o prove ' \n\t0x74 0x68 0x61 0x74 0x20 0x68 0x65 0x92    // 'that he' \n\t0x73 0x20 0x74 0x65 0x6C 0x6C 0x69 0x6E    // 's tellin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x74 0x72    // 'g the tr' \n\t0x75 0x74 0x68 0x2E 0x20 0x20 0x53 0x6F    // 'uth.  So' \n\t0x2C 0x20 0x6F 0x6E 0x65 0x20 0x6E 0x69    // ', one ni' \n\t0x67 0x68 0x74 0x20 0x74 0x68 0x65 0x20    // 'ght the ' \n\t0x6B 0x69 0x64 0x73 0x20 0x6B 0x6E 0x65    // 'kids kne' \n\t0x65 0x6C 0x20 0x6F 0x6E 0x20 0x74 0x68    // 'el on th' \n\t0x65 0x20 0x72 0x6F 0x6F 0x66 0x20 0x6F    // 'e roof o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x68 0x6F    // 'f the ho' \n\t0x75 0x73 0x65 0x20 0x61 0x6E 0x64 0x20    // 'use and ' \n\t0x77 0x61 0x69 0x74 0x2E 0x20 0x0D 0x0A    // 'wait. ??' \n\t0x41 0x72 0x6F 0x75 0x6E 0x64 0x20 0x6D    // 'Around m' \n\t0x69 0x64 0x6E 0x69 0x67 0x68 0x74 0x2C    // 'idnight,' \n\t0x20 0x74 0x68 0x65 0x79 0x20 0x73 0x65    // ' they se' \n\t0x65 0x20 0x74 0x69 0x6E 0x79 0x20 0x6C    // 'e tiny l' \n\t0x69 0x67 0x68 0x74 0x73 0x20 0x66 0x6C    // 'ights fl' \n\t0x61 0x73 0x68 0x69 0x6E 0x67 0x20 0x69    // 'ashing i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x64 0x69    // 'n the di' \n\t0x73 0x74 0x61 0x6E 0x63 0x65 0x2E 0x20    // 'stance. ' \n\t0x57 0x68 0x61 0x74 0x20 0x69 0x73 0x20    // 'What is ' \n\t0x69 0x74 0x3F 0x20 0x20 0x49 0x66 0x20    // 'it?  If ' \n\t0x69 0x74 0x92 0x73 0x20 0x61 0x20 0x55    // 'its a U' \n\t0x46 0x4F 0x2C 0x20 0x77 0x69 0x6C 0x6C    // 'FO, will' \n\t0x20 0x74 0x68 0x65 0x20 0x6B 0x69 0x64    // ' the kid' \n\t0x73 0x20 0x62 0x65 0x20 0x6B 0x69 0x64    // 's be kid' \n\t0x6E 0x61 0x70 0x70 0x65 0x64 0x3F 0x20    // 'napped? ' \n\t0x20 0x4F 0x72 0x20 0x69 0x73 0x20 0x69    // ' Or is i' \n\t0x74 0x20 0x6A 0x75 0x73 0x74 0x20 0x74    // 't just t' \n\t0x68 0x65 0x20 0x67 0x72 0x65 0x65 0x6E    // 'he green' \n\t0x20 0x73 0x63 0x69 0x65 0x6E 0x74 0x69    // ' scienti' \n\t0x73 0x74 0x2C 0x20 0x57 0x69 0x6C 0x6C    // 'st, Will' \n\t0x79 0x2C 0x20 0x77 0x6F 0x72 0x6B 0x69    // 'y, worki' \n\t0x6E 0x67 0x20 0x6F 0x6E 0x20 0x61 0x20    // 'ng on a ' \n\t0x6E 0x65 0x77 0x20 0x65 0x78 0x70 0x65    // 'new expe' \n\t0x72 0x69 0x6D 0x65 0x6E 0x74 0x3F         // 'riment?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_85= ktipbio92\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_85, __HELP_NAME(\"ktipbio92\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_85, __HELP_NAME(\"ktipbio92\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_85, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio92\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_85, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x93 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3B 0x02 0x00 0x82    // '????;??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6E, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x72 0x65 0x68 0x69 0x73    // '??Prehis' \n\t0x74 0x6F 0x72 0x69 0x63 0x20 0x47 0x69    // 'toric Gi' \n\t0x72 0x6C 0x0D 0x0A 0x4B 0x69 0x6D 0x20    // 'rl??Kim ' \n\t0x74 0x68 0x69 0x6E 0x6B 0x73 0x20 0x69    // 'thinks i' \n\t0x74 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 't would ' \n\t0x62 0x65 0x20 0x61 0x20 0x74 0x6F 0x6E    // 'be a ton' \n\t0x20 0x6F 0x66 0x20 0x66 0x75 0x6E 0x20    // ' of fun ' \n\t0x74 0x6F 0x20 0x70 0x6C 0x61 0x79 0x20    // 'to play ' \n\t0x61 0x20 0x70 0x61 0x72 0x74 0x20 0x69    // 'a part i' \n\t0x6E 0x20 0x61 0x20 0x6D 0x6F 0x76 0x69    // 'n a movi' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x68 0x69 0x73 0x74 0x6F 0x72 0x79 0x20    // 'history ' \n\t0x67 0x65 0x74 0x73 0x20 0x61 0x6C 0x6C    // 'gets all' \n\t0x20 0x6D 0x69 0x78 0x65 0x64 0x20 0x75    // ' mixed u' \n\t0x70 0x2E 0x20 0x20 0x53 0x68 0x65 0x20    // 'p.  She ' \n\t0x63 0x6F 0x75 0x6C 0x64 0x20 0x62 0x65    // 'could be' \n\t0x20 0x61 0x20 0x70 0x72 0x65 0x68 0x69    // ' a prehi' \n\t0x73 0x74 0x6F 0x72 0x69 0x63 0x20 0x67    // 'storic g' \n\t0x69 0x72 0x6C 0x20 0x77 0x68 0x6F 0x73    // 'irl whos' \n\t0x65 0x20 0x66 0x61 0x74 0x68 0x65 0x72    // 'e father' \n\t0x20 0x68 0x61 0x73 0x20 0x61 0x20 0x77    // ' has a w' \n\t0x65 0x69 0x72 0x64 0x20 0x6D 0x75 0x6D    // 'eird mum' \n\t0x6D 0x79 0x20 0x66 0x6F 0x6C 0x6C 0x6F    // 'my follo' \n\t0x77 0x69 0x6E 0x67 0x20 0x68 0x69 0x6D    // 'wing him' \n\t0x20 0x65 0x76 0x65 0x72 0x79 0x77 0x68    // ' everywh' \n\t0x65 0x72 0x65 0x2E 0x20 0x20 0x4B 0x69    // 'ere.  Ki' \n\t0x6D 0x92 0x73 0x20 0x6A 0x6F 0x62 0x20    // 'ms job ' \n\t0x69 0x73 0x20 0x74 0x6F 0x20 0x66 0x69    // 'is to fi' \n\t0x6E 0x64 0x20 0x61 0x20 0x77 0x61 0x79    // 'nd a way' \n\t0x20 0x66 0x6F 0x72 0x20 0x74 0x68 0x65    // ' for the' \n\t0x6D 0x20 0x74 0x6F 0x20 0x74 0x72 0x61    // 'm to tra' \n\t0x76 0x65 0x6C 0x20 0x74 0x6F 0x20 0x61    // 'vel to a' \n\t0x20 0x64 0x69 0x66 0x66 0x65 0x72 0x65    // ' differe' \n\t0x6E 0x74 0x20 0x74 0x69 0x6D 0x65 0x2E    // 'nt time.' \n\t0x20 0x20 0x4F 0x6E 0x65 0x20 0x6D 0x6F    // '  One mo' \n\t0x72 0x6E 0x69 0x6E 0x67 0x20 0x68 0x65    // 'rning he' \n\t0x72 0x20 0x64 0x6F 0x67 0x20 0x73 0x74    // 'r dog st' \n\t0x61 0x72 0x74 0x73 0x20 0x62 0x61 0x72    // 'arts bar' \n\t0x6B 0x69 0x6E 0x67 0x2C 0x20 0x73 0x6F    // 'king, so' \n\t0x20 0x73 0x68 0x65 0x20 0x66 0x6F 0x6C    // ' she fol' \n\t0x6C 0x6F 0x77 0x73 0x20 0x68 0x69 0x6D    // 'lows him' \n\t0x2C 0x20 0x6F 0x6E 0x6C 0x79 0x20 0x74    // ', only t' \n\t0x6F 0x20 0x66 0x69 0x6E 0x64 0x20 0x61    // 'o find a' \n\t0x6E 0x20 0x61 0x62 0x61 0x6E 0x64 0x6F    // 'n abando' \n\t0x6E 0x65 0x64 0x20 0x74 0x61 0x78 0x69    // 'ned taxi' \n\t0x20 0x63 0x61 0x62 0x20 0x69 0x6E 0x20    // ' cab in ' \n\t0x74 0x68 0x65 0x20 0x6D 0x69 0x64 0x64    // 'the midd' \n\t0x6C 0x65 0x20 0x6F 0x66 0x20 0x6E 0x6F    // 'le of no' \n\t0x77 0x68 0x65 0x72 0x65 0x2E 0x20 0x20    // 'where.  ' \n\t0x53 0x68 0x65 0x20 0x66 0x69 0x6E 0x64    // 'She find' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x6B 0x65    // 's the ke' \n\t0x79 0x20 0x61 0x6E 0x64 0x20 0x73 0x74    // 'y and st' \n\t0x61 0x72 0x74 0x73 0x20 0x74 0x68 0x65    // 'arts the' \n\t0x20 0x74 0x61 0x78 0x69 0x2E 0x20 0x54    // ' taxi. T' \n\t0x68 0x65 0x6E 0x20 0x73 0x68 0x65 0x20    // 'hen she ' \n\t0x67 0x65 0x74 0x73 0x20 0x68 0x65 0x72    // 'gets her' \n\t0x20 0x66 0x61 0x74 0x68 0x65 0x72 0x2C    // ' father,' \n\t0x20 0x61 0x6E 0x64 0x20 0x74 0x68 0x65    // ' and the' \n\t0x79 0x20 0x74 0x61 0x6B 0x65 0x20 0x6F    // 'y take o' \n\t0x66 0x66 0x2E 0x20 0x20 0x42 0x75 0x74    // 'ff.  But' \n\t0x20 0x74 0x68 0x65 0x6E 0x2C 0x20 0x69    // ' then, i' \n\t0x6E 0x20 0x68 0x65 0x72 0x20 0x72 0x65    // 'n her re' \n\t0x61 0x72 0x2D 0x76 0x69 0x65 0x77 0x20    // 'ar-view ' \n\t0x6D 0x69 0x72 0x72 0x6F 0x72 0x2C 0x20    // 'mirror, ' \n\t0x73 0x68 0x65 0x20 0x73 0x65 0x65 0x73    // 'she sees' \n\t0x20 0x61 0x20 0x67 0x75 0x79 0x20 0x69    // ' a guy i' \n\t0x6E 0x20 0x62 0x61 0x6E 0x64 0x61 0x67    // 'n bandag' \n\t0x65 0x73 0x20 0x66 0x6F 0x6C 0x6C 0x6F    // 'es follo' \n\t0x77 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'wing the' \n\t0x6D 0x20 0x69 0x6E 0x20 0x61 0x6E 0x20    // 'm in an ' \n\t0x61 0x6D 0x62 0x75 0x6C 0x61 0x6E 0x63    // 'ambulanc' \n\t0x65 0x2E 0x20 0x0D 0x0A 0x57 0x69 0x6C    // 'e. ??Wil' \n\t0x6C 0x20 0x74 0x68 0x65 0x79 0x20 0x65    // 'l they e' \n\t0x76 0x65 0x72 0x20 0x67 0x65 0x74 0x20    // 'ver get ' \n\t0x61 0x77 0x61 0x79 0x20 0x66 0x72 0x6F    // 'away fro' \n\t0x6D 0x20 0x68 0x69 0x6D 0x3F 0x20 0x20    // 'm him?  ' \n\t0x57 0x69 0x6C 0x6C 0x20 0x4B 0x69 0x6D    // 'Will Kim' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x6F 0x74    // ' find ot' \n\t0x68 0x65 0x72 0x20 0x74 0x68 0x69 0x6E    // 'her thin' \n\t0x67 0x73 0x20 0x74 0x68 0x61 0x74 0x20    // 'gs that ' \n\t0x63 0x61 0x6E 0x20 0x68 0x65 0x6C 0x70    // 'can help' \n\t0x20 0x74 0x68 0x65 0x6D 0x20 0x65 0x73    // ' them es' \n\t0x63 0x61 0x70 0x65 0x3F                   // 'cape?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_86= ktipbio93\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_86, __HELP_NAME(\"ktipbio93\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_86, __HELP_NAME(\"ktipbio93\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_86, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio93\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_86, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x58 0x01 0x00 0x00    // '????X???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8C 0x03 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE9 0x02 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8B, 0x0)\n\tBYTE\n\t0x03 0x03 0x77 0x69 0x6C 0x64 0x0D 0x0A    // '??wild??' \n\t0x4D 0x61 0x72 0x74 0x68 0x61 0x20 0x77    // 'Martha w' \n\t0x61 0x6E 0x64 0x65 0x72 0x65 0x64 0x20    // 'andered ' \n\t0x74 0x68 0x65 0x20 0x67 0x6C 0x6F 0x62    // 'the glob' \n\t0x65 0x20 0x6C 0x6F 0x6F 0x6B 0x69 0x6E    // 'e lookin' \n\t0x67 0x20 0x66 0x6F 0x72 0x20 0x22 0x73    // 'g for \"s' \n\t0x6F 0x6D 0x65 0x74 0x68 0x69 0x6E 0x67    // 'omething' \n\t0x20 0x77 0x69 0x6C 0x64 0x2E 0x22 0x20    // ' wild.\" ' \n\t0x20 0x53 0x68 0x65 0x20 0x73 0x6F 0x6F    // ' She soo' \n\t0x6E 0x20 0x66 0x6F 0x75 0x6E 0x64 0x20    // 'n found ' \n\t0x74 0x68 0x61 0x74 0x20 0x74 0x68 0x65    // 'that the' \n\t0x20 0x74 0x68 0x69 0x6E 0x67 0x20 0x73    // ' thing s' \n\t0x68 0x65 0x20 0x63 0x6F 0x75 0x6C 0x64    // 'he could' \n\t0x20 0x64 0x6F 0x20 0x62 0x65 0x73 0x74    // ' do best' \n\t0x20 0x77 0x61 0x73 0x20 0x6A 0x75 0x6D    // ' was jum' \n\t0x70 0x2E 0x20 0x20 0x41 0x6E 0x64 0x20    // 'p.  And ' \n\t0x73 0x68 0x65 0x20 0x6E 0x6F 0x74 0x69    // 'she noti' \n\t0x63 0x65 0x64 0x20 0x74 0x68 0x61 0x74    // 'ced that' \n\t0x20 0x74 0x68 0x65 0x20 0x66 0x61 0x72    // ' the far' \n\t0x74 0x68 0x65 0x72 0x20 0x73 0x68 0x65    // 'ther she' \n\t0x20 0x6A 0x75 0x6D 0x70 0x65 0x64 0x2C    // ' jumped,' \n\t0x20 0x74 0x68 0x65 0x20 0x62 0x69 0x67    // ' the big' \n\t0x67 0x65 0x72 0x20 0x73 0x68 0x65 0x20    // 'ger she ' \n\t0x67 0x6F 0x74 0x2E 0x20 0x20 0x53 0x68    // 'got.  Sh' \n\t0x65 0x20 0x77 0x61 0x73 0x20 0x74 0x77    // 'e was tw' \n\t0x69 0x63 0x65 0x20 0x61 0x73 0x20 0x62    // 'ice as b' \n\t0x69 0x67 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ig in th' \n\t0x65 0x20 0x61 0x69 0x72 0x20 0x61 0x73    // 'e air as' \n\t0x20 0x73 0x68 0x65 0x20 0x77 0x61 0x73    // ' she was' \n\t0x20 0x6F 0x6E 0x20 0x74 0x68 0x65 0x20    // ' on the ' \n\t0x67 0x72 0x6F 0x75 0x6E 0x64 0x2E 0x0D    // 'ground.?' \n\t0x0A 0x53 0x6F 0x20 0x4D 0x61 0x72 0x74    // '?So Mart' \n\t0x68 0x61 0x20 0x6A 0x75 0x6D 0x70 0x65    // 'ha jumpe' \n\t0x64 0x20 0x65 0x76 0x65 0x72 0x79 0x74    // 'd everyt' \n\t0x68 0x69 0x6E 0x67 0x97 0x74 0x65 0x6E    // 'hingten' \n\t0x74 0x73 0x2C 0x20 0x63 0x61 0x72 0x73    // 'ts, cars' \n\t0x2C 0x20 0x65 0x76 0x65 0x6E 0x20 0x61    // ', even a' \n\t0x69 0x72 0x70 0x6C 0x61 0x6E 0x65 0x73    // 'irplanes' \n\t0x2E 0x20 0x20 0x53 0x68 0x65 0x20 0x77    // '.  She w' \n\t0x61 0x73 0x20 0x67 0x65 0x74 0x74 0x69    // 'as getti' \n\t0x6E 0x67 0x20 0x6F 0x6C 0x64 0x65 0x72    // 'ng older' \n\t0x2C 0x20 0x62 0x75 0x74 0x20 0x4D 0x61    // ', but Ma' \n\t0x72 0x74 0x68 0x61 0x20 0x73 0x74 0x69    // 'rtha sti' \n\t0x6C 0x6C 0x20 0x77 0x6F 0x6E 0x20 0x65    // 'll won e' \n\t0x76 0x65 0x72 0x79 0x20 0x6A 0x75 0x6D    // 'very jum' \n\t0x70 0x69 0x6E 0x67 0x20 0x63 0x6F 0x6E    // 'ping con' \n\t0x74 0x65 0x73 0x74 0x20 0x73 0x68 0x65    // 'test she' \n\t0x20 0x65 0x6E 0x74 0x65 0x72 0x65 0x64    // ' entered' \n\t0x2E 0x20 0x57 0x69 0x74 0x68 0x20 0x61    // '. With a' \n\t0x6C 0x6C 0x20 0x74 0x68 0x65 0x20 0x6D    // 'll the m' \n\t0x6F 0x6E 0x65 0x79 0x20 0x4D 0x61 0x72    // 'oney Mar' \n\t0x74 0x68 0x61 0x20 0x77 0x6F 0x6E 0x20    // 'tha won ' \n\t0x69 0x6E 0x20 0x6A 0x75 0x6D 0x70 0x69    // 'in jumpi' \n\t0x6E 0x67 0x20 0x63 0x6F 0x6E 0x74 0x65    // 'ng conte' \n\t0x73 0x74 0x73 0x2C 0x20 0x73 0x68 0x65    // 'sts, she' \n\t0x20 0x6F 0x70 0x65 0x6E 0x65 0x64 0x20    // ' opened ' \n\t0x75 0x70 0x20 0x61 0x20 0x63 0x68 0x61    // 'up a cha' \n\t0x69 0x6E 0x20 0x6F 0x66 0x20 0x72 0x65    // 'in of re' \n\t0x73 0x74 0x61 0x75 0x72 0x61 0x6E 0x74    // 'staurant' \n\t0x73 0x2E 0x20 0x20 0x4F 0x66 0x20 0x63    // 's.  Of c' \n\t0x6F 0x75 0x72 0x73 0x65 0x2C 0x20 0x74    // 'ourse, t' \n\t0x68 0x65 0x20 0x66 0x69 0x72 0x73 0x74    // 'he first' \n\t0x20 0x6F 0x6E 0x65 0x20 0x77 0x61 0x73    // ' one was' \n\t0x20 0x61 0x20 0x54 0x65 0x78 0x2D 0x4D    // ' a Tex-M' \n\t0x65 0x78 0x20 0x72 0x65 0x73 0x74 0x61    // 'ex resta' \n\t0x75 0x72 0x61 0x6E 0x74 0x20 0x64 0x6F    // 'urant do' \n\t0x6E 0x65 0x20 0x61 0x6C 0x6C 0x20 0x69    // 'ne all i' \n\t0x6E 0x20 0x63 0x6F 0x77 0x68 0x69 0x64    // 'n cowhid' \n\t0x65 0x2E 0x20 0x20 0x41 0x6E 0x64 0x20    // 'e.  And ' \n\t0x73 0x68 0x65 0x20 0x62 0x6F 0x75 0x67    // 'she boug' \n\t0x68 0x74 0x20 0x68 0x65 0x72 0x73 0x65    // 'ht herse' \n\t0x6C 0x66 0x20 0x61 0x20 0x66 0x61 0x6E    // 'lf a fan' \n\t0x63 0x79 0x20 0x63 0x61 0x72 0x20 0x77    // 'cy car w' \n\t0x69 0x74 0x68 0x20 0x6C 0x6F 0x6E 0x67    // 'ith long' \n\t0x20 0x68 0x6F 0x72 0x6E 0x73 0x20 0x61    // ' horns a' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x68 0x6F    // 's the ho' \n\t0x6F 0x64 0x20 0x6F 0x72 0x6E 0x61 0x6D    // 'od ornam' \n\t0x65 0x6E 0x74 0x2E 0x20 0x20 0x41 0x74    // 'ent.  At' \n\t0x20 0x43 0x68 0x72 0x69 0x73 0x74 0x6D    // ' Christm' \n\t0x61 0x73 0x2C 0x20 0x73 0x68 0x65 0x20    // 'as, she ' \n\t0x68 0x61 0x6E 0x67 0x73 0x20 0x61 0x20    // 'hangs a ' \n\t0x67 0x72 0x65 0x65 0x6E 0x20 0x77 0x72    // 'green wr' \n\t0x65 0x61 0x74 0x68 0x20 0x66 0x72 0x6F    // 'eath fro' \n\t0x6D 0x20 0x74 0x68 0x65 0x20 0x68 0x6F    // 'm the ho' \n\t0x72 0x6E 0x73 0x2E 0x20 0x0D 0x0A 0x4F    // 'rns. ??O' \n\t0x6E 0x65 0x20 0x64 0x61 0x79 0x20 0x61    // 'ne day a' \n\t0x20 0x6C 0x6F 0x63 0x61 0x6C 0x20 0x54    // ' local T' \n\t0x56 0x20 0x73 0x74 0x61 0x74 0x69 0x6F    // 'V statio' \n\t0x6E 0x20 0x73 0x70 0x6F 0x74 0x74 0x65    // 'n spotte' \n\t0x64 0x20 0x4D 0x61 0x72 0x74 0x68 0x61    // 'd Martha' \n\t0x20 0x61 0x6E 0x64 0x20 0x70 0x75 0x74    // ' and put' \n\t0x20 0x68 0x65 0x72 0x20 0x6F 0x6E 0x20    // ' her on ' \n\t0x74 0x68 0x65 0x20 0x6E 0x65 0x77 0x73    // 'the news' \n\t0x21 0x0D 0x0A 0x42 0x75 0x74 0x20 0x74    // '!??But t' \n\t0x68 0x65 0x6E 0x20 0x63 0x61 0x6D 0x65    // 'hen came' \n\t0x20 0x61 0x20 0x62 0x69 0x67 0x20 0x73    // ' a big s' \n\t0x75 0x72 0x70 0x72 0x69 0x73 0x65 0x97    // 'urprise' \n\t0x62 0x69 0x67 0x2D 0x6E 0x61 0x6D 0x65    // 'big-name' \n\t0x20 0x64 0x69 0x72 0x65 0x63 0x74 0x6F    // ' directo' \n\t0x72 0x20 0x4D 0x63 0x5A 0x65 0x65 0x20    // 'r McZee ' \n\t0x63 0x61 0x6C 0x6C 0x65 0x64 0x20 0x61    // 'called a' \n\t0x6E 0x64 0x20 0x61 0x73 0x6B 0x65 0x64    // 'nd asked' \n\t0x20 0x68 0x65 0x72 0x20 0x74 0x6F 0x20    // ' her to ' \n\t0x6A 0x75 0x6D 0x70 0x20 0x69 0x6E 0x20    // 'jump in ' \n\t0x68 0x69 0x73 0x20 0x6E 0x65 0x77 0x20    // 'his new ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x22 0x4A    // 'movie \"J' \n\t0x75 0x6D 0x70 0x69 0x6E 0x27 0x20 0x66    // 'umpin' f' \n\t0x6F 0x72 0x20 0x4A 0x6F 0x79 0x2E 0x22    // 'or Joy.\"' \n\t0x20 0x20 0x4D 0x61 0x72 0x74 0x68 0x61    // '  Martha' \n\t0x20 0x77 0x61 0x73 0x20 0x6F 0x66 0x66    // ' was off' \n\t0x20 0x6F 0x6E 0x20 0x68 0x65 0x72 0x20    // ' on her ' \n\t0x77 0x69 0x6C 0x64 0x65 0x73 0x74 0x20    // 'wildest ' \n\t0x61 0x64 0x76 0x65 0x6E 0x74 0x75 0x72    // 'adventur' \n\t0x65 0x20 0x79 0x65 0x74 0x2E              // 'e yet.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_87= ktipbio94\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_87, __HELP_NAME(\"ktipbio94\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_87, __HELP_NAME(\"ktipbio94\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_87=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_87, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio94\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_87=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_87, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_87=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_87, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x91 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x41 0x01 0x00 0x82    // '????A??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_87=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_87, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x72 0x65 0x65 0x70 0x79    // '??Creepy' \n\t0x2C 0x20 0x53 0x63 0x61 0x72 0x79 0x20    // ', Scary ' \n\t0x41 0x75 0x6E 0x74 0x0D 0x0A 0x4F 0x6E    // 'Aunt??On' \n\t0x65 0x20 0x74 0x68 0x69 0x6E 0x67 0x20    // 'e thing ' \n\t0x4D 0x61 0x72 0x74 0x68 0x61 0x20 0x72    // 'Martha r' \n\t0x65 0x61 0x6C 0x6C 0x79 0x20 0x74 0x68    // 'eally th' \n\t0x69 0x6E 0x6B 0x73 0x20 0x77 0x6F 0x75    // 'inks wou' \n\t0x6C 0x64 0x20 0x62 0x65 0x20 0x63 0x6F    // 'ld be co' \n\t0x6F 0x6C 0x97 0x65 0x73 0x70 0x65 0x63    // 'olespec' \n\t0x69 0x61 0x6C 0x6C 0x79 0x20 0x61 0x74    // 'ially at' \n\t0x20 0x68 0x65 0x72 0x20 0x61 0x67 0x65    // ' her age' \n\t0x97 0x69 0x73 0x20 0x74 0x6F 0x20 0x70    // 'is to p' \n\t0x6C 0x61 0x79 0x20 0x74 0x68 0x65 0x20    // 'lay the ' \n\t0x70 0x61 0x72 0x74 0x20 0x6F 0x66 0x20    // 'part of ' \n\t0x61 0x20 0x73 0x63 0x61 0x72 0x79 0x20    // 'a scary ' \n\t0x61 0x75 0x6E 0x74 0x20 0x69 0x6E 0x20    // 'aunt in ' \n\t0x61 0x20 0x68 0x61 0x75 0x6E 0x74 0x65    // 'a haunte' \n\t0x64 0x20 0x68 0x6F 0x75 0x73 0x65 0x2E    // 'd house.' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x74 0x68    // ' When th' \n\t0x65 0x20 0x62 0x69 0x67 0x20 0x6B 0x69    // 'e big ki' \n\t0x64 0x73 0x20 0x74 0x72 0x69 0x65 0x64    // 'ds tried' \n\t0x20 0x74 0x6F 0x20 0x73 0x63 0x61 0x72    // ' to scar' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x6C 0x69    // 'e the li' \n\t0x74 0x74 0x6C 0x65 0x20 0x6B 0x69 0x64    // 'ttle kid' \n\t0x73 0x2C 0x20 0x73 0x68 0x65 0x27 0x64    // 's, she'd' \n\t0x20 0x6A 0x75 0x6D 0x70 0x20 0x6F 0x75    // ' jump ou' \n\t0x74 0x20 0x6F 0x66 0x20 0x64 0x61 0x72    // 't of dar' \n\t0x6B 0x20 0x63 0x6F 0x72 0x6E 0x65 0x72    // 'k corner' \n\t0x73 0x2C 0x20 0x73 0x74 0x72 0x65 0x74    // 's, stret' \n\t0x63 0x68 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'ching an' \n\t0x64 0x20 0x67 0x72 0x6F 0x77 0x69 0x6E    // 'd growin' \n\t0x67 0x20 0x77 0x69 0x6C 0x64 0x6C 0x79    // 'g wildly' \n\t0x2E 0x20 0x20 0x53 0x68 0x65 0x20 0x63    // '.  She c' \n\t0x6F 0x75 0x6C 0x64 0x20 0x74 0x65 0x61    // 'ould tea' \n\t0x63 0x68 0x20 0x6F 0x74 0x68 0x65 0x72    // 'ch other' \n\t0x20 0x6B 0x69 0x64 0x73 0x20 0x68 0x6F    // ' kids ho' \n\t0x77 0x20 0x74 0x6F 0x20 0x6A 0x75 0x6D    // 'w to jum' \n\t0x70 0x20 0x73 0x6F 0x20 0x68 0x69 0x67    // 'p so hig' \n\t0x68 0x20 0x74 0x68 0x65 0x79 0x20 0x63    // 'h they c' \n\t0x6F 0x75 0x6C 0x64 0x20 0x66 0x6C 0x79    // 'ould fly' \n\t0x2E 0x0D 0x0A 0x42 0x75 0x74 0x20 0x68    // '.??But h' \n\t0x6F 0x77 0x20 0x63 0x6F 0x75 0x6C 0x64    // 'ow could' \n\t0x20 0x73 0x68 0x65 0x20 0x73 0x63 0x61    // ' she sca' \n\t0x72 0x65 0x20 0x74 0x68 0x65 0x20 0x62    // 're the b' \n\t0x75 0x6C 0x6C 0x69 0x65 0x73 0x20 0x69    // 'ullies i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x68 0x6F    // 'n the ho' \n\t0x75 0x73 0x65 0x20 0x77 0x69 0x74 0x68    // 'use with' \n\t0x6F 0x75 0x74 0x20 0x73 0x63 0x61 0x72    // 'out scar' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x6F 0x74 0x68 0x65 0x72 0x20 0x6B 0x69    // 'other ki' \n\t0x64 0x73 0x3F                             // 'ds?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_88= ktipbio95\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_88, __HELP_NAME(\"ktipbio95\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_88, __HELP_NAME(\"ktipbio95\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_88=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_88, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio95\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_88=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_88, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_88=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_88, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAF 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x44 0x01 0x00 0x82    // '????D??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_88=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_88, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x6E 0x6E 0x65 0x71    // '??Manneq' \n\t0x75 0x69 0x6E 0x0D 0x0A 0x42 0x65 0x73    // 'uin??Bes' \n\t0x69 0x64 0x65 0x73 0x20 0x62 0x65 0x69    // 'ides bei' \n\t0x6E 0x67 0x20 0x6E 0x65 0x61 0x72 0x6C    // 'ng nearl' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x62 0x65    // 'y the be' \n\t0x73 0x74 0x20 0x6A 0x75 0x6D 0x70 0x65    // 'st jumpe' \n\t0x72 0x20 0x61 0x72 0x6F 0x75 0x6E 0x64    // 'r around' \n\t0x2C 0x20 0x4D 0x61 0x72 0x74 0x68 0x61    // ', Martha' \n\t0x27 0x73 0x20 0x61 0x6C 0x77 0x61 0x79    // ''s alway' \n\t0x73 0x20 0x74 0x68 0x6F 0x75 0x67 0x68    // 's though' \n\t0x74 0x20 0x73 0x68 0x65 0x20 0x77 0x61    // 't she wa' \n\t0x73 0x20 0x71 0x75 0x69 0x74 0x65 0x20    // 's quite ' \n\t0x74 0x68 0x65 0x20 0x66 0x61 0x73 0x68    // 'the fash' \n\t0x69 0x6F 0x6E 0x20 0x70 0x6C 0x61 0x74    // 'ion plat' \n\t0x65 0x2E 0x20 0x20 0x48 0x65 0x72 0x20    // 'e.  Her ' \n\t0x73 0x65 0x63 0x72 0x65 0x74 0x20 0x64    // 'secret d' \n\t0x65 0x73 0x69 0x72 0x65 0x20 0x69 0x73    // 'esire is' \n\t0x20 0x74 0x6F 0x20 0x70 0x6C 0x61 0x79    // ' to play' \n\t0x20 0x61 0x20 0x66 0x61 0x73 0x68 0x69    // ' a fashi' \n\t0x6F 0x6E 0x20 0x6D 0x61 0x6E 0x6E 0x65    // 'on manne' \n\t0x71 0x75 0x69 0x6E 0x2E 0x20 0x20 0x4E    // 'quin.  N' \n\t0x6F 0x74 0x20 0x61 0x6E 0x20 0x6F 0x72    // 'ot an or' \n\t0x64 0x69 0x6E 0x61 0x72 0x79 0x2C 0x20    // 'dinary, ' \n\t0x64 0x6F 0x2D 0x6E 0x6F 0x74 0x68 0x69    // 'do-nothi' \n\t0x6E 0x67 0x2C 0x20 0x64 0x65 0x70 0x61    // 'ng, depa' \n\t0x72 0x74 0x6D 0x65 0x6E 0x74 0x20 0x73    // 'rtment s' \n\t0x74 0x6F 0x72 0x65 0x20 0x6D 0x61 0x6E    // 'tore man' \n\t0x6E 0x65 0x71 0x75 0x69 0x6E 0x2C 0x20    // 'nequin, ' \n\t0x62 0x75 0x74 0x20 0x61 0x20 0x6D 0x61    // 'but a ma' \n\t0x6E 0x6E 0x65 0x71 0x75 0x69 0x6E 0x20    // 'nnequin ' \n\t0x77 0x68 0x6F 0x20 0x73 0x65 0x65 0x73    // 'who sees' \n\t0x20 0x65 0x76 0x65 0x72 0x79 0x74 0x68    // ' everyth' \n\t0x69 0x6E 0x67 0x20 0x61 0x6E 0x64 0x20    // 'ing and ' \n\t0x77 0x68 0x6F 0x20 0x63 0x6F 0x75 0x6C    // 'who coul' \n\t0x64 0x20 0x73 0x74 0x6F 0x70 0x20 0x73    // 'd stop s' \n\t0x68 0x6F 0x70 0x6C 0x69 0x66 0x74 0x65    // 'hoplifte' \n\t0x72 0x73 0x20 0x77 0x69 0x74 0x68 0x20    // 'rs with ' \n\t0x61 0x20 0x73 0x69 0x6E 0x67 0x6C 0x65    // 'a single' \n\t0x20 0x73 0x77 0x69 0x66 0x74 0x20 0x6B    // ' swift k' \n\t0x61 0x72 0x61 0x74 0x65 0x20 0x6B 0x69    // 'arate ki' \n\t0x63 0x6B 0x2E 0x20 0x0D 0x0A 0x42 0x75    // 'ck. ??Bu' \n\t0x74 0x20 0x68 0x6F 0x77 0x20 0x63 0x6F    // 't how co' \n\t0x75 0x6C 0x64 0x20 0x73 0x68 0x65 0x20    // 'uld she ' \n\t0x6D 0x61 0x69 0x6E 0x74 0x61 0x69 0x6E    // 'maintain' \n\t0x20 0x68 0x65 0x72 0x20 0x6D 0x61 0x6E    // ' her man' \n\t0x6E 0x65 0x71 0x75 0x69 0x6E 0x20 0x64    // 'nequin d' \n\t0x69 0x73 0x67 0x75 0x69 0x73 0x65 0x20    // 'isguise ' \n\t0x65 0x76 0x65 0x72 0x79 0x20 0x64 0x61    // 'every da' \n\t0x79 0x20 0x61 0x6E 0x64 0x20 0x62 0x65    // 'y and be' \n\t0x20 0x61 0x20 0x6D 0x61 0x6E 0x6E 0x65    // ' a manne' \n\t0x71 0x75 0x69 0x6E 0x2D 0x64 0x65 0x74    // 'quin-det' \n\t0x65 0x63 0x74 0x69 0x76 0x65 0x20 0x61    // 'ective a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x73 0x61    // 't the sa' \n\t0x6D 0x65 0x20 0x74 0x69 0x6D 0x65 0x3F    // 'me time?' \n\t0x20                                       // ' ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_89= ktipbio96\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_89, __HELP_NAME(\"ktipbio96\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_89, __HELP_NAME(\"ktipbio96\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_89=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_89, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio96\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_89=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_89, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_89=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_89, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x65 0x01 0x00 0x01    // '????e???' \n\t0x00 0x00 0x00 0x00 0x66 0x01 0x00 0x01    // '????f???' \n\t0x01 0x00 0x00 0x00 0xF6 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x68 0x01 0x00 0x82    // '????h??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_89=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_89, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x69 0x67 0x68 0x2D 0x46    // '??High-F' \n\t0x6C 0x79 0x69 0x6E 0x67 0x20 0x4D 0x61    // 'lying Ma' \n\t0x72 0x6B 0x65 0x74 0x69 0x6E 0x67 0x20    // 'rketing ' \n\t0x4D 0x61 0x6E 0x61 0x67 0x65 0x72 0x0D    // 'Manager?' \n\t0x0A 0x4D 0x61 0x72 0x74 0x68 0x61 0x20    // '?Martha ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x72 0x65    // 'would re' \n\t0x61 0x6C 0x6C 0x79 0x20 0x6A 0x75 0x6D    // 'ally jum' \n\t0x70 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 'p at the' \n\t0x20 0x63 0x68 0x61 0x6E 0x63 0x65 0x20    // ' chance ' \n\t0x74 0x6F 0x20 0x70 0x6C 0x61 0x79 0x20    // 'to play ' \n\t0x61 0x20 0x6D 0x61 0x72 0x6B 0x65 0x74    // 'a market' \n\t0x69 0x6E 0x67 0x20 0x6D 0x61 0x6E 0x61    // 'ing mana' \n\t0x67 0x65 0x72 0x20 0x66 0x6F 0x72 0x20    // 'ger for ' \n\t0x61 0x6E 0x20 0x61 0x64 0x76 0x65 0x6E    // 'an adven' \n\t0x74 0x75 0x72 0x65 0x20 0x74 0x72 0x61    // 'ture tra' \n\t0x76 0x65 0x6C 0x20 0x63 0x6F 0x6D 0x70    // 'vel comp' \n\t0x61 0x6E 0x79 0x2E 0x20 0x20 0x53 0x68    // 'any.  Sh' \n\t0x65 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 'e would ' \n\t0x70 0x6C 0x61 0x6E 0x20 0x65 0x78 0x63    // 'plan exc' \n\t0x69 0x74 0x69 0x6E 0x67 0x20 0x65 0x73    // 'iting es' \n\t0x63 0x61 0x70 0x61 0x64 0x65 0x73 0x20    // 'capades ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x62    // 'to the b' \n\t0x65 0x73 0x74 0x2C 0x20 0x66 0x61 0x72    // 'est, far' \n\t0x2D 0x61 0x77 0x61 0x79 0x20 0x70 0x6C    // '-away pl' \n\t0x61 0x63 0x65 0x73 0x97 0x6C 0x69 0x6B    // 'aceslik' \n\t0x65 0x20 0x69 0x73 0x6C 0x61 0x6E 0x64    // 'e island' \n\t0x73 0x20 0x77 0x69 0x74 0x68 0x20 0x72    // 's with r' \n\t0x69 0x63 0x6B 0x65 0x74 0x79 0x20 0x62    // 'ickety b' \n\t0x72 0x69 0x64 0x67 0x65 0x73 0x20 0x73    // 'ridges s' \n\t0x74 0x72 0x65 0x74 0x63 0x68 0x65 0x64    // 'tretched' \n\t0x20 0x61 0x63 0x72 0x6F 0x73 0x73 0x20    // ' across ' \n\t0x64 0x65 0x65 0x70 0x20 0x63 0x61 0x6E    // 'deep can' \n\t0x79 0x6F 0x6E 0x73 0x2C 0x20 0x6D 0x79    // 'yons, my' \n\t0x73 0x74 0x65 0x72 0x69 0x6F 0x75 0x73    // 'sterious' \n\t0x20 0x63 0x61 0x76 0x65 0x73 0x2C 0x20    // ' caves, ' \n\t0x61 0x6E 0x64 0x20 0x68 0x69 0x64 0x64    // 'and hidd' \n\t0x65 0x6E 0x20 0x74 0x72 0x65 0x61 0x73    // 'en treas' \n\t0x75 0x72 0x65 0x73 0x20 0x77 0x72 0x69    // 'ures wri' \n\t0x74 0x74 0x65 0x6E 0x20 0x61 0x62 0x6F    // 'tten abo' \n\t0x75 0x74 0x20 0x6F 0x6E 0x20 0x74 0x68    // 'ut on th' \n\t0x65 0x20 0x74 0x6F 0x74 0x65 0x6D 0x20    // 'e totem ' \n\t0x70 0x6F 0x6C 0x65 0x73 0x20 0x6F 0x66    // 'poles of' \n\t0x20 0x61 0x6E 0x63 0x69 0x65 0x6E 0x74    // ' ancient' \n\t0x20 0x63 0x69 0x76 0x69 0x6C 0x69 0x7A    // ' civiliz' \n\t0x61 0x74 0x69 0x6F 0x6E 0x73 0x2E 0x20    // 'ations. ' \n\t0x0D 0x0A 0x4D 0x61 0x72 0x74 0x68 0x61    // '??Martha' \n\t0x20 0x6B 0x6E 0x6F 0x77 0x73 0x20 0x73    // ' knows s' \n\t0x68 0x65 0x20 0x63 0x6F 0x75 0x6C 0x64    // 'he could' \n\t0x20 0x73 0x61 0x66 0x65 0x6C 0x79 0x20    // ' safely ' \n\t0x67 0x65 0x74 0x20 0x68 0x65 0x72 0x20    // 'get her ' \n\t0x61 0x64 0x76 0x65 0x6E 0x74 0x75 0x72    // 'adventur' \n\t0x65 0x72 0x73 0x20 0x74 0x6F 0x20 0x74    // 'ers to t' \n\t0x68 0x65 0x20 0x69 0x73 0x6C 0x61 0x6E    // 'he islan' \n\t0x64 0x2C 0x20 0x62 0x75 0x74 0x20 0x68    // 'd, but h' \n\t0x6F 0x77 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'ow would' \n\t0x20 0x74 0x68 0x65 0x79 0x20 0x62 0x72    // ' they br' \n\t0x69 0x6E 0x67 0x20 0x62 0x61 0x63 0x6B    // 'ing back' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x72 0x65    // ' the tre' \n\t0x61 0x73 0x75 0x72 0x65 0x20 0x74 0x68    // 'asure th' \n\t0x61 0x74 0x20 0x69 0x73 0x20 0x66 0x69    // 'at is fi' \n\t0x65 0x72 0x63 0x65 0x6C 0x79 0x20 0x67    // 'ercely g' \n\t0x75 0x61 0x72 0x64 0x65 0x64 0x20 0x62    // 'uarded b' \n\t0x79 0x20 0x72 0x61 0x74 0x73 0x3F 0x20    // 'y rats? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8A= ktipbio97\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8A, __HELP_NAME(\"ktipbio97\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8A, __HELP_NAME(\"ktipbio97\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio97\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x01 0x00 0x01    // '????(???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x07 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8A, 0x0)\n\tBYTE\n\t0x03 0x03 0x62 0x6C 0x75 0x65 0x73 0x0D    // '??blues?' \n\t0x0A 0x54 0x6F 0x20 0x65 0x61 0x72 0x6E    // '?To earn' \n\t0x20 0x6D 0x6F 0x6E 0x65 0x79 0x20 0x66    // ' money f' \n\t0x6F 0x72 0x20 0x63 0x6F 0x6C 0x6C 0x65    // 'or colle' \n\t0x67 0x65 0x20 0x61 0x6E 0x64 0x20 0x74    // 'ge and t' \n\t0x6F 0x20 0x62 0x65 0x20 0x61 0x62 0x6C    // 'o be abl' \n\t0x65 0x20 0x74 0x6F 0x20 0x64 0x6F 0x20    // 'e to do ' \n\t0x77 0x68 0x61 0x74 0x20 0x68 0x65 0x20    // 'what he ' \n\t0x6C 0x6F 0x76 0x65 0x73 0x2C 0x20 0x4D    // 'loves, M' \n\t0x69 0x63 0x68 0x61 0x65 0x6C 0x20 0x73    // 'ichael s' \n\t0x69 0x6E 0x67 0x73 0x20 0x74 0x68 0x65    // 'ings the' \n\t0x20 0x62 0x6C 0x75 0x65 0x73 0x20 0x69    // ' blues i' \n\t0x6E 0x20 0x43 0x68 0x69 0x63 0x61 0x67    // 'n Chicag' \n\t0x6F 0x27 0x73 0x20 0x77 0x61 0x74 0x65    // 'o's wate' \n\t0x72 0x66 0x72 0x6F 0x6E 0x74 0x20 0x70    // 'rfront p' \n\t0x61 0x72 0x6B 0x73 0x2E 0x20 0x20 0x50    // 'arks.  P' \n\t0x65 0x6F 0x70 0x6C 0x65 0x20 0x66 0x72    // 'eople fr' \n\t0x6F 0x6D 0x20 0x61 0x6C 0x6C 0x20 0x61    // 'om all a' \n\t0x72 0x6F 0x75 0x6E 0x64 0x20 0x74 0x68    // 'round th' \n\t0x65 0x20 0x63 0x69 0x74 0x79 0x20 0x67    // 'e city g' \n\t0x61 0x74 0x68 0x65 0x72 0x20 0x77 0x68    // 'ather wh' \n\t0x65 0x6E 0x20 0x68 0x65 0x20 0x73 0x69    // 'en he si' \n\t0x6E 0x67 0x73 0x2E 0x20 0x20 0x45 0x76    // 'ngs.  Ev' \n\t0x65 0x6E 0x20 0x4D 0x63 0x5A 0x65 0x65    // 'en McZee' \n\t0x2C 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // ', the mo' \n\t0x76 0x69 0x65 0x20 0x64 0x69 0x72 0x65    // 'vie dire' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x68 0x65    // 'ctor, he' \n\t0x61 0x72 0x64 0x20 0x4D 0x69 0x63 0x68    // 'ard Mich' \n\t0x61 0x65 0x6C 0x2C 0x20 0x61 0x6E 0x64    // 'ael, and' \n\t0x20 0x61 0x73 0x6B 0x65 0x64 0x20 0x4D    // ' asked M' \n\t0x69 0x63 0x68 0x61 0x65 0x6C 0x20 0x74    // 'ichael t' \n\t0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20 0x61    // 'o make a' \n\t0x6E 0x20 0x61 0x70 0x70 0x65 0x61 0x72    // 'n appear' \n\t0x61 0x6E 0x63 0x65 0x20 0x69 0x6E 0x20    // 'ance in ' \n\t0x6F 0x6E 0x65 0x20 0x6F 0x72 0x20 0x74    // 'one or t' \n\t0x77 0x6F 0x20 0x75 0x70 0x63 0x6F 0x6D    // 'wo upcom' \n\t0x69 0x6E 0x67 0x20 0x66 0x69 0x6C 0x6D    // 'ing film' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8B= ktipbio98\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8B, __HELP_NAME(\"ktipbio98\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8B, __HELP_NAME(\"ktipbio98\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio98\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x9B 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4B 0x01 0x00 0x82    // '????K??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x75 0x73 0x2D 0x43    // '??Sous-C' \n\t0x68 0x65 0x66 0x0D 0x0A 0x57 0x68 0x65    // 'hef??Whe' \n\t0x6E 0x20 0x68 0x65 0x20 0x64 0x72 0x65    // 'n he dre' \n\t0x61 0x6D 0x73 0x20 0x6F 0x66 0x20 0x62    // 'ams of b' \n\t0x65 0x69 0x6E 0x67 0x20 0x61 0x20 0x73    // 'eing a s' \n\t0x74 0x61 0x72 0x2C 0x20 0x4D 0x69 0x63    // 'tar, Mic' \n\t0x68 0x61 0x65 0x6C 0x20 0x74 0x68 0x69    // 'hael thi' \n\t0x6E 0x6B 0x73 0x20 0x61 0x62 0x6F 0x75    // 'nks abou' \n\t0x74 0x20 0x68 0x6F 0x77 0x20 0x67 0x6F    // 't how go' \n\t0x6F 0x64 0x20 0x68 0x65 0x92 0x64 0x20    // 'od hed ' \n\t0x62 0x65 0x20 0x61 0x74 0x20 0x70 0x6C    // 'be at pl' \n\t0x61 0x79 0x69 0x6E 0x67 0x20 0x61 0x20    // 'aying a ' \n\t0x73 0x6F 0x75 0x73 0x2D 0x63 0x68 0x65    // 'sous-che' \n\t0x66 0x2E 0x20 0x20 0x41 0x73 0x20 0x61    // 'f.  As a' \n\t0x20 0x73 0x74 0x75 0x64 0x65 0x6E 0x74    // ' student' \n\t0x20 0x63 0x68 0x65 0x66 0x2C 0x20 0x4D    // ' chef, M' \n\t0x69 0x63 0x68 0x61 0x65 0x6C 0x20 0x77    // 'ichael w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x62 0x65 0x20    // 'ould be ' \n\t0x72 0x69 0x67 0x68 0x74 0x20 0x74 0x68    // 'right th' \n\t0x65 0x72 0x65 0x20 0x69 0x6E 0x20 0x74    // 'ere in t' \n\t0x68 0x65 0x20 0x6B 0x69 0x74 0x63 0x68    // 'he kitch' \n\t0x65 0x6E 0x20 0x74 0x6F 0x20 0x66 0x69    // 'en to fi' \n\t0x67 0x75 0x72 0x65 0x20 0x6F 0x75 0x74    // 'gure out' \n\t0x20 0x77 0x68 0x79 0x20 0x74 0x68 0x65    // ' why the' \n\t0x20 0x6B 0x69 0x64 0x73 0x20 0x77 0x68    // ' kids wh' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x72 0x69 0x63 0x6B 0x2D 0x6F 0x72 0x2D    // 'rick-or-' \n\t0x74 0x72 0x65 0x61 0x74 0x69 0x6E 0x67    // 'treating' \n\t0x20 0x61 0x6C 0x77 0x61 0x79 0x73 0x20    // ' always ' \n\t0x6C 0x69 0x65 0x20 0x64 0x6F 0x77 0x6E    // 'lie down' \n\t0x20 0x6F 0x6E 0x20 0x74 0x68 0x65 0x20    // ' on the ' \n\t0x66 0x6C 0x6F 0x6F 0x72 0x20 0x61 0x6E    // 'floor an' \n\t0x64 0x20 0x73 0x6C 0x65 0x65 0x70 0x20    // 'd sleep ' \n\t0x66 0x6F 0x72 0x20 0x68 0x6F 0x75 0x72    // 'for hour' \n\t0x73 0x20 0x61 0x66 0x74 0x65 0x72 0x20    // 's after ' \n\t0x64 0x72 0x69 0x6E 0x6B 0x69 0x6E 0x67    // 'drinking' \n\t0x20 0x74 0x68 0x65 0x20 0x68 0x6F 0x74    // ' the hot' \n\t0x20 0x6C 0x65 0x6D 0x6F 0x6E 0x61 0x64    // ' lemonad' \n\t0x65 0x20 0x63 0x6F 0x6F 0x6B 0x65 0x64    // 'e cooked' \n\t0x20 0x62 0x79 0x20 0x4D 0x61 0x64 0x61    // ' by Mada' \n\t0x6D 0x65 0x20 0x53 0x70 0x6F 0x6F 0x6B    // 'me Spook' \n\t0x79 0x2E 0x20 0x0D 0x0A 0x57 0x68 0x61    // 'y. ??Wha' \n\t0x74 0x20 0x63 0x6F 0x75 0x6C 0x64 0x20    // 't could ' \n\t0x73 0x68 0x65 0x20 0x62 0x65 0x20 0x70    // 'she be p' \n\t0x75 0x74 0x74 0x69 0x6E 0x67 0x20 0x69    // 'utting i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x64 0x72    // 'n the dr' \n\t0x69 0x6E 0x6B 0x73 0x3F 0x20 0x20 0x57    // 'inks?  W' \n\t0x69 0x6C 0x6C 0x20 0x4D 0x69 0x63 0x68    // 'ill Mich' \n\t0x61 0x65 0x6C 0x20 0x62 0x65 0x63 0x6F    // 'ael beco' \n\t0x6D 0x65 0x20 0x61 0x20 0x73 0x6C 0x65    // 'me a sle' \n\t0x65 0x70 0x69 0x6E 0x67 0x20 0x76 0x69    // 'eping vi' \n\t0x63 0x74 0x69 0x6D 0x3F                   // 'ctim?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8C= ktipbio99\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8C, __HELP_NAME(\"ktipbio99\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8C, __HELP_NAME(\"ktipbio99\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio99\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x12 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x03 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x53 0x02 0x00 0x82    // '????S??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8C, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x65 0x73 0x73 0x65 0x6E    // '??Messen' \n\t0x67 0x65 0x72 0x0D 0x0A 0x4D 0x69 0x63    // 'ger??Mic' \n\t0x68 0x61 0x65 0x6C 0x20 0x77 0x61 0x6E    // 'hael wan' \n\t0x74 0x73 0x20 0x74 0x6F 0x20 0x73 0x74    // 'ts to st' \n\t0x61 0x72 0x20 0x61 0x73 0x20 0x61 0x20    // 'ar as a ' \n\t0x64 0x65 0x6C 0x69 0x76 0x65 0x72 0x79    // 'delivery' \n\t0x20 0x62 0x6F 0x79 0x2E 0x20 0x48 0x65    // ' boy. He' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x73    // ' would s' \n\t0x74 0x61 0x72 0x74 0x20 0x6F 0x75 0x74    // 'tart out' \n\t0x20 0x64 0x65 0x6C 0x69 0x76 0x65 0x72    // ' deliver' \n\t0x69 0x6E 0x67 0x20 0x62 0x6F 0x72 0x69    // 'ing bori' \n\t0x6E 0x67 0x20 0x6D 0x65 0x73 0x73 0x61    // 'ng messa' \n\t0x67 0x65 0x73 0x2C 0x20 0x62 0x75 0x74    // 'ges, but' \n\t0x20 0x71 0x75 0x69 0x63 0x6B 0x6C 0x79    // ' quickly' \n\t0x20 0x62 0x65 0x20 0x70 0x72 0x6F 0x6D    // ' be prom' \n\t0x6F 0x74 0x65 0x64 0x20 0x74 0x6F 0x20    // 'oted to ' \n\t0x43 0x68 0x69 0x63 0x61 0x67 0x6F 0x20    // 'Chicago ' \n\t0x50 0x69 0x7A 0x7A 0x61 0x20 0x44 0x65    // 'Pizza De' \n\t0x6C 0x69 0x76 0x65 0x72 0x79 0x20 0x4D    // 'livery M' \n\t0x61 0x6E 0x2E 0x20 0x20 0x4D 0x69 0x63    // 'an.  Mic' \n\t0x68 0x61 0x65 0x6C 0x20 0x68 0x61 0x73    // 'hael has' \n\t0x20 0x68 0x69 0x73 0x20 0x6F 0x77 0x6E    // ' his own' \n\t0x20 0x74 0x61 0x78 0x69 0x20 0x63 0x61    // ' taxi ca' \n\t0x62 0x20 0x66 0x6F 0x72 0x20 0x64 0x65    // 'b for de' \n\t0x6C 0x69 0x76 0x65 0x72 0x69 0x65 0x73    // 'liveries' \n\t0x2C 0x20 0x62 0x75 0x74 0x20 0x70 0x65    // ', but pe' \n\t0x6F 0x70 0x6C 0x65 0x20 0x6C 0x69 0x6B    // 'ople lik' \n\t0x65 0x20 0x68 0x69 0x6D 0x20 0x6D 0x6F    // 'e him mo' \n\t0x72 0x65 0x20 0x74 0x68 0x61 0x6E 0x20    // 're than ' \n\t0x74 0x68 0x65 0x20 0x70 0x69 0x7A 0x7A    // 'the pizz' \n\t0x61 0x2C 0x20 0x62 0x65 0x63 0x61 0x75    // 'a, becau' \n\t0x73 0x65 0x20 0x68 0x65 0x20 0x75 0x73    // 'se he us' \n\t0x75 0x61 0x6C 0x6C 0x79 0x20 0x66 0x6F    // 'ually fo' \n\t0x72 0x67 0x65 0x74 0x73 0x20 0x74 0x6F    // 'rgets to' \n\t0x20 0x62 0x72 0x69 0x6E 0x67 0x20 0x74    // ' bring t' \n\t0x68 0x65 0x20 0x70 0x69 0x7A 0x7A 0x61    // 'he pizza' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x68 0x69    // ' with hi' \n\t0x6D 0x20 0x77 0x68 0x65 0x6E 0x20 0x68    // 'm when h' \n\t0x65 0x20 0x6D 0x61 0x6B 0x65 0x73 0x20    // 'e makes ' \n\t0x61 0x20 0x64 0x65 0x6C 0x69 0x76 0x65    // 'a delive' \n\t0x72 0x79 0x21 0x20 0x0D 0x0A 0x45 0x76    // 'ry! ??Ev' \n\t0x65 0x72 0x79 0x6F 0x6E 0x65 0x20 0x6B    // 'eryone k' \n\t0x6E 0x6F 0x77 0x73 0x20 0x74 0x68 0x61    // 'nows tha' \n\t0x74 0x20 0x67 0x61 0x6E 0x67 0x73 0x74    // 't gangst' \n\t0x65 0x72 0x73 0x20 0x6C 0x6F 0x76 0x65    // 'ers love' \n\t0x20 0x70 0x69 0x7A 0x7A 0x61 0x2C 0x20    // ' pizza, ' \n\t0x61 0x6E 0x64 0x20 0x77 0x68 0x65 0x6E    // 'and when' \n\t0x20 0x4D 0x69 0x63 0x68 0x61 0x65 0x6C    // ' Michael' \n\t0x20 0x72 0x65 0x63 0x65 0x69 0x76 0x65    // ' receive' \n\t0x73 0x20 0x61 0x20 0x70 0x69 0x7A 0x7A    // 's a pizz' \n\t0x61 0x20 0x6F 0x72 0x64 0x65 0x72 0x20    // 'a order ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x6F 0x6E 0x65    // 'from one' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x6D 0x65 0x61 0x6E 0x65 0x73 0x74 0x20    // 'meanest ' \n\t0x67 0x61 0x6E 0x67 0x73 0x74 0x65 0x72    // 'gangster' \n\t0x73 0x20 0x61 0x72 0x6F 0x75 0x6E 0x64    // 's around' \n\t0x2C 0x20 0x69 0x74 0x27 0x73 0x20 0x68    // ', it's h' \n\t0x69 0x73 0x20 0x63 0x68 0x61 0x6E 0x63    // 'is chanc' \n\t0x65 0x20 0x74 0x6F 0x20 0x63 0x61 0x74    // 'e to cat' \n\t0x63 0x68 0x20 0x74 0x68 0x65 0x20 0x67    // 'ch the g' \n\t0x61 0x6E 0x67 0x73 0x74 0x65 0x72 0x20    // 'angster ' \n\t0x74 0x68 0x65 0x20 0x77 0x68 0x6F 0x6C    // 'the whol' \n\t0x65 0x20 0x63 0x69 0x74 0x79 0x20 0x69    // 'e city i' \n\t0x73 0x20 0x74 0x61 0x6C 0x6B 0x69 0x6E    // 's talkin' \n\t0x67 0x20 0x61 0x62 0x6F 0x75 0x74 0x2E    // 'g about.' \n\t0x20 0x20 0x42 0x75 0x74 0x20 0x69 0x66    // '  But if' \n\t0x20 0x4D 0x69 0x63 0x68 0x61 0x65 0x6C    // ' Michael' \n\t0x27 0x73 0x20 0x74 0x61 0x78 0x69 0x20    // ''s taxi ' \n\t0x77 0x6F 0x6E 0x27 0x74 0x20 0x73 0x74    // 'won't st' \n\t0x61 0x72 0x74 0x2C 0x20 0x68 0x65 0x20    // 'art, he ' \n\t0x77 0x6F 0x6E 0x27 0x74 0x20 0x62 0x65    // 'won't be' \n\t0x20 0x61 0x62 0x6C 0x65 0x20 0x74 0x6F    // ' able to' \n\t0x20 0x62 0x75 0x73 0x74 0x20 0x74 0x68    // ' bust th' \n\t0x65 0x20 0x67 0x61 0x6E 0x67 0x73 0x74    // 'e gangst' \n\t0x65 0x72 0x2E 0x0D 0x0A 0x43 0x61 0x6E    // 'er.??Can' \n\t0x20 0x68 0x65 0x20 0x66 0x69 0x6E 0x64    // ' he find' \n\t0x20 0x61 0x6E 0x79 0x6F 0x6E 0x65 0x20    // ' anyone ' \n\t0x74 0x6F 0x20 0x68 0x65 0x6C 0x70 0x20    // 'to help ' \n\t0x68 0x69 0x6D 0x20 0x66 0x69 0x78 0x20    // 'him fix ' \n\t0x68 0x69 0x73 0x20 0x63 0x61 0x72 0x3F    // 'his car?' \n\t0x20 0x20 0x4F 0x72 0x20 0x63 0x61 0x6E    // '  Or can' \n\t0x20 0x68 0x65 0x20 0x62 0x6F 0x72 0x72    // ' he borr' \n\t0x6F 0x77 0x20 0x74 0x68 0x65 0x20 0x43    // 'ow the C' \n\t0x61 0x64 0x69 0x6C 0x6C 0x61 0x63 0x20    // 'adillac ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x68 0x69 0x73    // 'from his' \n\t0x20 0x41 0x75 0x6E 0x74 0x20 0x4D 0x61    // ' Aunt Ma' \n\t0x72 0x74 0x68 0x61 0x20 0x77 0x68 0x6F    // 'rtha who' \n\t0x27 0x73 0x20 0x69 0x6E 0x20 0x74 0x6F    // ''s in to' \n\t0x77 0x6E 0x20 0x66 0x6F 0x72 0x20 0x61    // 'wn for a' \n\t0x20 0x76 0x69 0x73 0x69 0x74 0x3F 0x20    // ' visit? ' \n\t0x20 0x57 0x68 0x61 0x74 0x20 0x77 0x69    // ' What wi' \n\t0x6C 0x6C 0x20 0x74 0x68 0x65 0x20 0x67    // 'll the g' \n\t0x61 0x6E 0x67 0x73 0x74 0x65 0x72 0x20    // 'angster ' \n\t0x64 0x6F 0x20 0x77 0x68 0x65 0x6E 0x20    // 'do when ' \n\t0x4D 0x69 0x63 0x68 0x61 0x65 0x6C 0x20    // 'Michael ' \n\t0x73 0x68 0x6F 0x77 0x73 0x20 0x75 0x70    // 'shows up' \n\t0x20 0x77 0x69 0x74 0x68 0x6F 0x75 0x74    // ' without' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x69 0x7A    // ' the piz' \n\t0x7A 0x61 0x3F                             // 'za?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8D= ktipbio100\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8D, __HELP_NAME(\"ktipbio100\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8D, __HELP_NAME(\"ktipbio100\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_92=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio100\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_92=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_92=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_92, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x70 0x02 0x00 0x01    // '????p???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xFC 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_92=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_92, 0x0)\n\tBYTE\n\t0x03 0x03 0x45 0x78 0x70 0x6C 0x6F 0x72    // '??Explor' \n\t0x65 0x72 0x0D 0x0A 0x49 0x66 0x20 0x4D    // 'er??If M' \n\t0x69 0x63 0x68 0x61 0x65 0x6C 0x20 0x63    // 'ichael c' \n\t0x6F 0x75 0x6C 0x64 0x20 0x70 0x6C 0x61    // 'ould pla' \n\t0x79 0x20 0x61 0x6E 0x20 0x65 0x78 0x70    // 'y an exp' \n\t0x6C 0x6F 0x72 0x65 0x72 0x2C 0x20 0x68    // 'lorer, h' \n\t0x69 0x73 0x20 0x64 0x72 0x65 0x61 0x6D    // 'is dream' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x63    // ' would c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x72 0x75 0x65    // 'ome true' \n\t0x2E 0x20 0x20 0x48 0x69 0x73 0x20 0x64    // '.  His d' \n\t0x72 0x65 0x61 0x6D 0x20 0x69 0x73 0x20    // 'ream is ' \n\t0x74 0x6F 0x20 0x66 0x69 0x6E 0x64 0x20    // 'to find ' \n\t0x74 0x68 0x65 0x20 0x74 0x61 0x6C 0x6B    // 'the talk' \n\t0x69 0x6E 0x67 0x20 0x74 0x6F 0x74 0x65    // 'ing tote' \n\t0x6D 0x20 0x70 0x6F 0x6C 0x65 0x20 0x72    // 'm pole r' \n\t0x75 0x6D 0x6F 0x72 0x65 0x64 0x20 0x74    // 'umored t' \n\t0x6F 0x20 0x62 0x65 0x20 0x66 0x6F 0x75    // 'o be fou' \n\t0x6E 0x64 0x20 0x6F 0x6E 0x20 0x61 0x20    // 'nd on a ' \n\t0x6C 0x6F 0x73 0x74 0x20 0x69 0x73 0x6C    // 'lost isl' \n\t0x61 0x6E 0x64 0x20 0x72 0x65 0x73 0x6F    // 'and reso' \n\t0x72 0x74 0x2E 0x20 0x20 0x54 0x68 0x65    // 'rt.  The' \n\t0x20 0x74 0x6F 0x74 0x65 0x6D 0x20 0x70    // ' totem p' \n\t0x6F 0x6C 0x65 0x20 0x6B 0x6E 0x6F 0x77    // 'ole know' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x73 0x65    // 's the se' \n\t0x63 0x72 0x65 0x74 0x20 0x6F 0x66 0x20    // 'cret of ' \n\t0x6D 0x61 0x6B 0x69 0x6E 0x67 0x20 0x74    // 'making t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x6C 0x64    // 'he world' \n\t0x92 0x73 0x20 0x62 0x65 0x73 0x74 0x20    // 's best ' \n\t0x54 0x65 0x78 0x61 0x73 0x20 0x73 0x61    // 'Texas sa' \n\t0x6C 0x73 0x61 0x2C 0x20 0x61 0x6E 0x64    // 'lsa, and' \n\t0x20 0x4D 0x69 0x63 0x68 0x61 0x65 0x6C    // ' Michael' \n\t0x20 0x77 0x61 0x6E 0x74 0x73 0x20 0x74    // ' wants t' \n\t0x68 0x65 0x20 0x73 0x65 0x63 0x72 0x65    // 'he secre' \n\t0x74 0x2E 0x20 0x20 0x48 0x65 0x92 0x73    // 't.  Hes' \n\t0x20 0x61 0x20 0x70 0x6F 0x6F 0x72 0x20    // ' a poor ' \n\t0x73 0x74 0x75 0x64 0x65 0x6E 0x74 0x2C    // 'student,' \n\t0x20 0x73 0x6F 0x20 0x68 0x65 0x20 0x70    // ' so he p' \n\t0x65 0x72 0x73 0x75 0x61 0x64 0x65 0x73    // 'ersuades' \n\t0x20 0x74 0x68 0x65 0x20 0x6C 0x6F 0x63    // ' the loc' \n\t0x61 0x6C 0x20 0x62 0x61 0x6C 0x6C 0x6F    // 'al ballo' \n\t0x6F 0x6E 0x69 0x6E 0x67 0x20 0x63 0x6C    // 'oning cl' \n\t0x75 0x62 0x20 0x74 0x6F 0x20 0x6C 0x65    // 'ub to le' \n\t0x74 0x20 0x68 0x69 0x6D 0x20 0x74 0x61    // 't him ta' \n\t0x6B 0x65 0x20 0x61 0x20 0x68 0x6F 0x74    // 'ke a hot' \n\t0x2D 0x61 0x69 0x72 0x20 0x62 0x61 0x6C    // '-air bal' \n\t0x6C 0x6F 0x6F 0x6E 0x20 0x74 0x6F 0x20    // 'loon to ' \n\t0x74 0x68 0x65 0x20 0x72 0x65 0x73 0x6F    // 'the reso' \n\t0x72 0x74 0x2E 0x20 0x20 0x42 0x75 0x74    // 'rt.  But' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x68 0x65    // ' when he' \n\t0x20 0x6C 0x61 0x6E 0x64 0x73 0x2C 0x20    // ' lands, ' \n\t0x68 0x65 0x20 0x66 0x69 0x6E 0x64 0x73    // 'he finds' \n\t0x20 0x61 0x20 0x67 0x72 0x69 0x6D 0x20    // ' a grim ' \n\t0x72 0x6F 0x62 0x6F 0x74 0x20 0x67 0x75    // 'robot gu' \n\t0x61 0x72 0x64 0x69 0x6E 0x67 0x20 0x74    // 'arding t' \n\t0x68 0x65 0x20 0x74 0x6F 0x74 0x65 0x6D    // 'he totem' \n\t0x20 0x70 0x6F 0x6C 0x65 0x2E 0x20 0x20    // ' pole.  ' \n\t0x41 0x73 0x20 0x6C 0x6F 0x6E 0x67 0x20    // 'As long ' \n\t0x61 0x73 0x20 0x74 0x68 0x65 0x20 0x72    // 'as the r' \n\t0x6F 0x62 0x6F 0x74 0x20 0x69 0x73 0x20    // 'obot is ' \n\t0x74 0x68 0x65 0x72 0x65 0x2C 0x20 0x74    // 'there, t' \n\t0x68 0x65 0x20 0x74 0x6F 0x74 0x65 0x6D    // 'he totem' \n\t0x20 0x70 0x6F 0x6C 0x65 0x20 0x63 0x61    // ' pole ca' \n\t0x6E 0x6E 0x6F 0x74 0x20 0x73 0x70 0x65    // 'nnot spe' \n\t0x61 0x6B 0x2E 0x20 0x0D 0x0A 0x48 0x6F    // 'ak. ??Ho' \n\t0x77 0x20 0x77 0x69 0x6C 0x6C 0x20 0x4D    // 'w will M' \n\t0x69 0x63 0x68 0x61 0x65 0x6C 0x20 0x67    // 'ichael g' \n\t0x65 0x74 0x20 0x74 0x68 0x65 0x20 0x72    // 'et the r' \n\t0x6F 0x62 0x6F 0x74 0x20 0x74 0x6F 0x20    // 'obot to ' \n\t0x6C 0x65 0x61 0x76 0x65 0x3F 0x20 0x20    // 'leave?  ' \n\t0x43 0x61 0x6E 0x20 0x68 0x69 0x73 0x20    // 'Can his ' \n\t0x73 0x69 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'singing ' \n\t0x61 0x62 0x69 0x6C 0x69 0x74 0x79 0x20    // 'ability ' \n\t0x68 0x65 0x6C 0x70 0x20 0x68 0x69 0x6D    // 'help him' \n\t0x3F 0x20 0x20 0x43 0x61 0x6E 0x20 0x68    // '?  Can h' \n\t0x65 0x20 0x73 0x68 0x72 0x69 0x6E 0x6B    // 'e shrink' \n\t0x20 0x6F 0x75 0x74 0x20 0x6F 0x66 0x20    // ' out of ' \n\t0x74 0x68 0x65 0x20 0x72 0x6F 0x62 0x6F    // 'the robo' \n\t0x74 0x92 0x73 0x20 0x73 0x69 0x67 0x68    // 'ts sigh' \n\t0x74 0x3F                                  // 't?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8E= ktipbio101\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8E, __HELP_NAME(\"ktipbio101\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8E, __HELP_NAME(\"ktipbio101\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio101\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE3 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5B 0x01 0x00 0x82    // '????[??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8D, 0x0)\n\tBYTE\n\t0x03 0x03 0x74 0x72 0x61 0x63 0x6B 0x20    // '??track ' \n\t0x73 0x74 0x61 0x72 0x0D 0x0A 0x4F 0x6E    // 'star??On' \n\t0x65 0x20 0x64 0x61 0x79 0x20 0x61 0x74    // 'e day at' \n\t0x20 0x61 0x20 0x74 0x72 0x61 0x63 0x6B    // ' a track' \n\t0x20 0x6D 0x65 0x65 0x74 0x2C 0x20 0x4D    // ' meet, M' \n\t0x69 0x6D 0x69 0x20 0x77 0x61 0x73 0x20    // 'imi was ' \n\t0x72 0x75 0x6E 0x6E 0x69 0x6E 0x67 0x20    // 'running ' \n\t0x61 0x6E 0x20 0x38 0x38 0x30 0x2D 0x6D    // 'an 880-m' \n\t0x65 0x74 0x65 0x72 0x20 0x73 0x70 0x72    // 'eter spr' \n\t0x69 0x6E 0x74 0x20 0x61 0x6E 0x64 0x2C    // 'int and,' \n\t0x20 0x61 0x73 0x20 0x75 0x73 0x75 0x61    // ' as usua' \n\t0x6C 0x2C 0x20 0x73 0x68 0x65 0x20 0x62    // 'l, she b' \n\t0x6C 0x65 0x77 0x20 0x70 0x61 0x73 0x74    // 'lew past' \n\t0x20 0x68 0x65 0x72 0x20 0x63 0x6F 0x6D    // ' her com' \n\t0x70 0x65 0x74 0x69 0x74 0x69 0x6F 0x6E    // 'petition' \n\t0x2E 0x20 0x20 0x57 0x68 0x65 0x6E 0x20    // '.  When ' \n\t0x73 0x68 0x65 0x20 0x63 0x72 0x6F 0x73    // 'she cros' \n\t0x73 0x65 0x64 0x20 0x74 0x68 0x65 0x20    // 'sed the ' \n\t0x66 0x69 0x6E 0x69 0x73 0x68 0x20 0x6C    // 'finish l' \n\t0x69 0x6E 0x65 0x2C 0x20 0x73 0x68 0x65    // 'ine, she' \n\t0x20 0x63 0x6F 0x75 0x6C 0x64 0x6E 0x92    // ' couldn' \n\t0x74 0x20 0x73 0x74 0x6F 0x70 0x2E 0x20    // 't stop. ' \n\t0x20 0x53 0x68 0x65 0x20 0x72 0x61 0x6E    // ' She ran' \n\t0x20 0x6F 0x75 0x74 0x20 0x6F 0x66 0x20    // ' out of ' \n\t0x74 0x68 0x65 0x20 0x73 0x74 0x61 0x64    // 'the stad' \n\t0x69 0x75 0x6D 0x20 0x61 0x6E 0x64 0x20    // 'ium and ' \n\t0x6F 0x6E 0x74 0x6F 0x20 0x74 0x68 0x65    // 'onto the' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x73    // ' movie s' \n\t0x65 0x74 0x20 0x6F 0x66 0x20 0x66 0x69    // 'et of fi' \n\t0x6C 0x6D 0x20 0x64 0x69 0x72 0x65 0x63    // 'lm direc' \n\t0x74 0x6F 0x72 0x20 0x4D 0x63 0x5A 0x65    // 'tor McZe' \n\t0x65 0x92 0x73 0x20 0x6C 0x61 0x74 0x65    // 'es late' \n\t0x73 0x74 0x20 0x70 0x72 0x6F 0x64 0x75    // 'st produ' \n\t0x63 0x74 0x69 0x6F 0x6E 0x2E 0x20 0x20    // 'ction.  ' \n\t0x4D 0x63 0x5A 0x65 0x65 0x20 0x68 0x61    // 'McZee ha' \n\t0x64 0x20 0x6E 0x65 0x76 0x65 0x72 0x20    // 'd never ' \n\t0x73 0x65 0x65 0x6E 0x20 0x73 0x75 0x63    // 'seen suc' \n\t0x68 0x20 0x73 0x70 0x65 0x65 0x64 0x20    // 'h speed ' \n\t0x61 0x6E 0x64 0x20 0x6B 0x6E 0x65 0x77    // 'and knew' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x4D 0x69    // ' that Mi' \n\t0x6D 0x69 0x20 0x68 0x61 0x64 0x20 0x74    // 'mi had t' \n\t0x6F 0x20 0x62 0x65 0x20 0x69 0x6E 0x20    // 'o be in ' \n\t0x68 0x69 0x73 0x20 0x66 0x69 0x6C 0x6D    // 'his film' \n\t0x73 0x2E 0x20 0x0D 0x0A 0x42 0x75 0x74    // 's. ??But' \n\t0x20 0x62 0x65 0x66 0x6F 0x72 0x65 0x20    // ' before ' \n\t0x68 0x65 0x20 0x63 0x6F 0x75 0x6C 0x64    // 'he could' \n\t0x20 0x61 0x73 0x6B 0x20 0x68 0x65 0x72    // ' ask her' \n\t0x2C 0x20 0x4D 0x63 0x5A 0x65 0x65 0x20    // ', McZee ' \n\t0x68 0x61 0x64 0x20 0x74 0x6F 0x20 0x68    // 'had to h' \n\t0x61 0x69 0x6C 0x20 0x61 0x20 0x74 0x61    // 'ail a ta' \n\t0x78 0x69 0x20 0x74 0x6F 0x20 0x63 0x61    // 'xi to ca' \n\t0x74 0x63 0x68 0x20 0x75 0x70 0x20 0x77    // 'tch up w' \n\t0x69 0x74 0x68 0x20 0x4D 0x69 0x6D 0x69    // 'ith Mimi' \n\t0x2E 0x20 0x20 0x53 0x68 0x65 0x20 0x77    // '.  She w' \n\t0x61 0x73 0x6E 0x27 0x74 0x20 0x65 0x76    // 'asn't ev' \n\t0x65 0x6E 0x20 0x6F 0x75 0x74 0x20 0x6F    // 'en out o' \n\t0x66 0x20 0x62 0x72 0x65 0x61 0x74 0x68    // 'f breath' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x73 0x68    // ' when sh' \n\t0x65 0x20 0x61 0x63 0x63 0x65 0x70 0x74    // 'e accept' \n\t0x65 0x64 0x20 0x68 0x69 0x73 0x20 0x6F    // 'ed his o' \n\t0x66 0x66 0x65 0x72 0x2E                   // 'ffer.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8F= ktipbio102\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8F, __HELP_NAME(\"ktipbio102\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8F, __HELP_NAME(\"ktipbio102\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio102\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0D 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5E 0x03 0x00 0x01    // '????^???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2A 0x02 0x00 0x82    // '????*??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x72 0x69 0x63 0x6B 0x2D    // '??Trick-' \n\t0x6F 0x72 0x2D 0x54 0x72 0x65 0x61 0x74    // 'or-Treat' \n\t0x65 0x72 0x20 0x44 0x72 0x65 0x73 0x73    // 'er Dress' \n\t0x65 0x64 0x20 0x61 0x73 0x20 0x50 0x69    // 'ed as Pi' \n\t0x72 0x61 0x74 0x65 0x0D 0x0A 0x57 0x68    // 'rate??Wh' \n\t0x61 0x74 0x20 0x61 0x20 0x72 0x6F 0x6C    // 'at a rol' \n\t0x65 0x21 0x20 0x20 0x4D 0x69 0x6D 0x69    // 'e!  Mimi' \n\t0x20 0x77 0x61 0x6E 0x74 0x73 0x20 0x74    // ' wants t' \n\t0x6F 0x20 0x70 0x6C 0x61 0x79 0x20 0x61    // 'o play a' \n\t0x20 0x70 0x69 0x72 0x61 0x74 0x65 0x20    // ' pirate ' \n\t0x74 0x72 0x69 0x63 0x6B 0x2D 0x6F 0x72    // 'trick-or' \n\t0x2D 0x74 0x72 0x65 0x61 0x74 0x65 0x72    // '-treater' \n\t0x2E 0x20 0x20 0x42 0x75 0x74 0x20 0x74    // '.  But t' \n\t0x68 0x65 0x72 0x65 0x92 0x73 0x20 0x6F    // 'heres o' \n\t0x6E 0x6C 0x79 0x20 0x6F 0x6E 0x65 0x20    // 'nly one ' \n\t0x68 0x6F 0x75 0x73 0x65 0x20 0x69 0x6E    // 'house in' \n\t0x20 0x74 0x68 0x65 0x20 0x6E 0x65 0x69    // ' the nei' \n\t0x67 0x68 0x62 0x6F 0x72 0x68 0x6F 0x6F    // 'ghborhoo' \n\t0x64 0x2C 0x20 0x61 0x6E 0x64 0x20 0x70    // 'd, and p' \n\t0x65 0x6F 0x70 0x6C 0x65 0x20 0x73 0x61    // 'eople sa' \n\t0x79 0x20 0x69 0x74 0x92 0x73 0x20 0x68    // 'y its h' \n\t0x61 0x75 0x6E 0x74 0x65 0x64 0x2E 0x20    // 'aunted. ' \n\t0x20 0x44 0x65 0x74 0x65 0x72 0x6D 0x69    // ' Determi' \n\t0x6E 0x65 0x64 0x20 0x74 0x6F 0x20 0x67    // 'ned to g' \n\t0x65 0x74 0x20 0x68 0x65 0x72 0x20 0x73    // 'et her s' \n\t0x68 0x61 0x72 0x65 0x20 0x6F 0x66 0x20    // 'hare of ' \n\t0x63 0x61 0x6E 0x64 0x79 0x2C 0x20 0x4D    // 'candy, M' \n\t0x69 0x6D 0x69 0x20 0x6B 0x6E 0x6F 0x63    // 'imi knoc' \n\t0x6B 0x73 0x20 0x6F 0x6E 0x20 0x74 0x68    // 'ks on th' \n\t0x65 0x20 0x64 0x6F 0x6F 0x72 0x2E 0x20    // 'e door. ' \n\t0x20 0x4E 0x6F 0x20 0x6F 0x6E 0x65 0x20    // ' No one ' \n\t0x61 0x6E 0x73 0x77 0x65 0x72 0x73 0x2C    // 'answers,' \n\t0x20 0x62 0x75 0x74 0x20 0x74 0x68 0x65    // ' but the' \n\t0x20 0x64 0x6F 0x6F 0x72 0x20 0x73 0x6C    // ' door sl' \n\t0x6F 0x77 0x6C 0x79 0x20 0x63 0x72 0x65    // 'owly cre' \n\t0x61 0x6B 0x73 0x20 0x6F 0x70 0x65 0x6E    // 'aks open' \n\t0x2E 0x20 0x20 0x4D 0x69 0x6D 0x69 0x20    // '.  Mimi ' \n\t0x73 0x6C 0x6F 0x77 0x6C 0x79 0x20 0x77    // 'slowly w' \n\t0x61 0x6C 0x6B 0x73 0x20 0x69 0x6E 0x20    // 'alks in ' \n\t0x61 0x6E 0x64 0x20 0x79 0x65 0x6C 0x6C    // 'and yell' \n\t0x73 0x2C 0x20 0x93 0x74 0x72 0x69 0x63    // 's, tric' \n\t0x6B 0x20 0x6F 0x72 0x20 0x74 0x72 0x65    // 'k or tre' \n\t0x61 0x74 0x3F 0x94 0x20 0x20 0x53 0x68    // 'at?  Sh' \n\t0x65 0x20 0x77 0x61 0x6E 0x64 0x65 0x72    // 'e wander' \n\t0x73 0x20 0x69 0x6E 0x74 0x6F 0x20 0x74    // 's into t' \n\t0x68 0x65 0x20 0x6B 0x69 0x74 0x63 0x68    // 'he kitch' \n\t0x65 0x6E 0x20 0x61 0x6E 0x64 0x20 0x73    // 'en and s' \n\t0x65 0x65 0x73 0x20 0x61 0x20 0x73 0x6B    // 'ees a sk' \n\t0x75 0x6C 0x6C 0x20 0x6E 0x65 0x78 0x74    // 'ull next' \n\t0x20 0x74 0x6F 0x20 0x61 0x20 0x6C 0x61    // ' to a la' \n\t0x72 0x67 0x65 0x20 0x62 0x75 0x74 0x63    // 'rge butc' \n\t0x68 0x65 0x72 0x20 0x6B 0x6E 0x69 0x66    // 'her knif' \n\t0x65 0x20 0x6F 0x6E 0x20 0x61 0x20 0x63    // 'e on a c' \n\t0x75 0x74 0x74 0x69 0x6E 0x67 0x20 0x74    // 'utting t' \n\t0x61 0x62 0x6C 0x65 0x2E 0x20 0x20 0x54    // 'able.  T' \n\t0x68 0x65 0x20 0x73 0x6B 0x75 0x6C 0x6C    // 'he skull' \n\t0x20 0x61 0x73 0x6B 0x73 0x2C 0x20 0x93    // ' asks, ' \n\t0x57 0x69 0x6C 0x6C 0x20 0x79 0x6F 0x75    // 'Will you' \n\t0x20 0x68 0x65 0x6C 0x70 0x20 0x6D 0x65    // ' help me' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x6D 0x79    // ' find my' \n\t0x20 0x62 0x6F 0x64 0x79 0x3F 0x94 0x20    // ' body? ' \n\t0x20 0x4D 0x69 0x6D 0x69 0x20 0x74 0x75    // ' Mimi tu' \n\t0x72 0x6E 0x73 0x20 0x61 0x6E 0x64 0x20    // 'rns and ' \n\t0x72 0x75 0x6E 0x73 0x20 0x66 0x61 0x73    // 'runs fas' \n\t0x74 0x65 0x72 0x20 0x74 0x68 0x61 0x6E    // 'ter than' \n\t0x20 0x61 0x20 0x62 0x75 0x6C 0x6C 0x65    // ' a bulle' \n\t0x74 0x20 0x74 0x72 0x61 0x69 0x6E 0x20    // 't train ' \n\t0x6F 0x75 0x74 0x20 0x6F 0x66 0x20 0x74    // 'out of t' \n\t0x68 0x65 0x20 0x68 0x6F 0x75 0x73 0x65    // 'he house' \n\t0x2E 0x20 0x0D 0x0A 0x54 0x68 0x65 0x20    // '. ??The ' \n\t0x73 0x6B 0x75 0x6C 0x6C 0x20 0x75 0x73    // 'skull us' \n\t0x65 0x64 0x20 0x74 0x6F 0x20 0x62 0x65    // 'ed to be' \n\t0x20 0x74 0x68 0x65 0x20 0x6F 0x72 0x69    // ' the ori' \n\t0x67 0x69 0x6E 0x61 0x6C 0x20 0x6F 0x77    // 'ginal ow' \n\t0x6E 0x65 0x72 0x20 0x6F 0x66 0x20 0x74    // 'ner of t' \n\t0x68 0x65 0x20 0x68 0x6F 0x75 0x73 0x65    // 'he house' \n\t0x2C 0x20 0x61 0x6E 0x64 0x20 0x63 0x6C    // ', and cl' \n\t0x75 0x65 0x73 0x20 0x74 0x6F 0x20 0x6D    // 'ues to m' \n\t0x61 0x6B 0x69 0x6E 0x67 0x20 0x74 0x68    // 'aking th' \n\t0x65 0x20 0x73 0x6B 0x75 0x6C 0x6C 0x20    // 'e skull ' \n\t0x68 0x75 0x6D 0x61 0x6E 0x20 0x61 0x67    // 'human ag' \n\t0x61 0x69 0x6E 0x20 0x61 0x72 0x65 0x20    // 'ain are ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x6C    // 'in the l' \n\t0x69 0x62 0x72 0x61 0x72 0x79 0x2E 0x20    // 'ibrary. ' \n\t0x49 0x66 0x20 0x74 0x68 0x69 0x73 0x20    // 'If this ' \n\t0x70 0x75 0x7A 0x7A 0x6C 0x65 0x20 0x69    // 'puzzle i' \n\t0x73 0x20 0x73 0x6F 0x6C 0x76 0x65 0x64    // 's solved' \n\t0x2C 0x20 0x74 0x68 0x65 0x20 0x73 0x6B    // ', the sk' \n\t0x75 0x6C 0x6C 0x20 0x77 0x69 0x6C 0x6C    // 'ull will' \n\t0x20 0x74 0x75 0x72 0x6E 0x20 0x62 0x61    // ' turn ba' \n\t0x63 0x6B 0x20 0x69 0x6E 0x74 0x6F 0x20    // 'ck into ' \n\t0x74 0x68 0x65 0x20 0x70 0x65 0x72 0x73    // 'the pers' \n\t0x6F 0x6E 0x20 0x68 0x65 0x20 0x77 0x61    // 'on he wa' \n\t0x73 0x20 0x62 0x65 0x66 0x6F 0x72 0x65    // 's before' \n\t0x20 0x68 0x65 0x20 0x77 0x61 0x73 0x20    // ' he was ' \n\t0x74 0x75 0x72 0x6E 0x65 0x64 0x20 0x69    // 'turned i' \n\t0x6E 0x74 0x6F 0x20 0x61 0x20 0x73 0x6B    // 'nto a sk' \n\t0x75 0x6C 0x6C 0x2E 0x20 0x20 0x48 0x6F    // 'ull.  Ho' \n\t0x77 0x20 0x77 0x69 0x6C 0x6C 0x20 0x4D    // 'w will M' \n\t0x69 0x6D 0x69 0x20 0x66 0x69 0x6E 0x64    // 'imi find' \n\t0x20 0x6F 0x75 0x74 0x20 0x77 0x68 0x6F    // ' out who' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x61 0x6E    // ' the man' \n\t0x20 0x75 0x73 0x65 0x64 0x20 0x74 0x6F    // ' used to' \n\t0x20 0x62 0x65 0x3F 0x20 0x20 0x41 0x6E    // ' be?  An' \n\t0x64 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'd where ' \n\t0x77 0x69 0x6C 0x6C 0x20 0x73 0x68 0x65    // 'will she' \n\t0x20 0x6C 0x6F 0x6F 0x6B 0x20 0x66 0x6F    // ' look fo' \n\t0x72 0x20 0x63 0x6C 0x75 0x65 0x73 0x3F    // 'r clues?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_90= ktipbio103\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_90, __HELP_NAME(\"ktipbio103\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_90, __HELP_NAME(\"ktipbio103\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_90=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_90, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio103\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_90=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_90, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_90=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_90, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8D 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x09 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_90=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_90, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x75 0x72 0x69 0x73    // '??Touris' \n\t0x74 0x0D 0x0A 0x41 0x66 0x74 0x65 0x72    // 't??After' \n\t0x20 0x61 0x20 0x6C 0x6F 0x6E 0x67 0x20    // ' a long ' \n\t0x74 0x72 0x61 0x63 0x6B 0x20 0x73 0x65    // 'track se' \n\t0x61 0x73 0x6F 0x6E 0x2C 0x20 0x6F 0x6E    // 'ason, on' \n\t0x65 0x20 0x6F 0x66 0x20 0x4D 0x69 0x6D    // 'e of Mim' \n\t0x69 0x27 0x73 0x20 0x64 0x72 0x65 0x61    // 'i's drea' \n\t0x6D 0x73 0x20 0x69 0x73 0x20 0x74 0x6F    // 'ms is to' \n\t0x20 0x70 0x6C 0x61 0x79 0x20 0x74 0x68    // ' play th' \n\t0x65 0x20 0x72 0x65 0x6C 0x61 0x78 0x69    // 'e relaxi' \n\t0x6E 0x67 0x20 0x72 0x6F 0x6C 0x65 0x20    // 'ng role ' \n\t0x6F 0x66 0x20 0x61 0x20 0x74 0x6F 0x75    // 'of a tou' \n\t0x72 0x69 0x73 0x74 0x2E 0x20 0x20 0x53    // 'rist.  S' \n\t0x68 0x65 0x20 0x64 0x65 0x63 0x69 0x64    // 'he decid' \n\t0x65 0x73 0x20 0x74 0x6F 0x20 0x67 0x6F    // 'es to go' \n\t0x20 0x74 0x6F 0x20 0x42 0x65 0x72 0x6D    // ' to Berm' \n\t0x75 0x64 0x61 0x2C 0x20 0x66 0x6C 0x79    // 'uda, fly' \n\t0x69 0x6E 0x67 0x20 0x61 0x63 0x72 0x6F    // 'ing acro' \n\t0x73 0x73 0x20 0x74 0x68 0x65 0x20 0x6D    // 'ss the m' \n\t0x79 0x73 0x74 0x65 0x72 0x69 0x6F 0x75    // 'ysteriou' \n\t0x73 0x20 0x42 0x65 0x72 0x6D 0x75 0x64    // 's Bermud' \n\t0x61 0x20 0x54 0x72 0x69 0x61 0x6E 0x67    // 'a Triang' \n\t0x6C 0x65 0x2E 0x20 0x20 0x4F 0x6E 0x65    // 'le.  One' \n\t0x20 0x6D 0x6F 0x72 0x6E 0x69 0x6E 0x67    // ' morning' \n\t0x20 0x61 0x20 0x70 0x6C 0x61 0x6E 0x65    // ' a plane' \n\t0x20 0x66 0x6C 0x69 0x65 0x73 0x20 0x6F    // ' flies o' \n\t0x76 0x65 0x72 0x20 0x74 0x68 0x65 0x20    // 'ver the ' \n\t0x63 0x6F 0x75 0x72 0x74 0x79 0x61 0x72    // 'courtyar' \n\t0x64 0x20 0x6F 0x66 0x20 0x4D 0x69 0x6D    // 'd of Mim' \n\t0x69 0x92 0x73 0x20 0x6D 0x6F 0x74 0x65    // 'is mote' \n\t0x6C 0x20 0x61 0x6E 0x64 0x20 0x74 0x68    // 'l and th' \n\t0x65 0x6E 0x20 0x64 0x69 0x73 0x61 0x70    // 'en disap' \n\t0x70 0x65 0x61 0x72 0x73 0x20 0x69 0x6E    // 'pears in' \n\t0x74 0x6F 0x20 0x74 0x68 0x69 0x6E 0x20    // 'to thin ' \n\t0x61 0x69 0x72 0x2E 0x20 0x20 0x54 0x68    // 'air.  Th' \n\t0x65 0x20 0x70 0x6C 0x61 0x6E 0x65 0x20    // 'e plane ' \n\t0x77 0x61 0x73 0x20 0x72 0x75 0x6D 0x6F    // 'was rumo' \n\t0x72 0x65 0x64 0x20 0x74 0x6F 0x20 0x68    // 'red to h' \n\t0x61 0x76 0x65 0x20 0x61 0x20 0x66 0x61    // 'ave a fa' \n\t0x6D 0x6F 0x75 0x73 0x20 0x6D 0x6F 0x76    // 'mous mov' \n\t0x69 0x65 0x20 0x73 0x74 0x61 0x72 0x20    // 'ie star ' \n\t0x61 0x6E 0x64 0x20 0x68 0x65 0x72 0x20    // 'and her ' \n\t0x70 0x68 0x6F 0x74 0x6F 0x67 0x72 0x61    // 'photogra' \n\t0x70 0x68 0x65 0x72 0x20 0x68 0x75 0x73    // 'pher hus' \n\t0x62 0x61 0x6E 0x64 0x20 0x6F 0x6E 0x20    // 'band on ' \n\t0x62 0x6F 0x61 0x72 0x64 0x2E 0x20 0x20    // 'board.  ' \n\t0x53 0x6F 0x6D 0x65 0x20 0x74 0x68 0x69    // 'Some thi' \n\t0x6E 0x6B 0x20 0x74 0x68 0x65 0x20 0x70    // 'nk the p' \n\t0x6C 0x61 0x6E 0x65 0x20 0x6D 0x61 0x79    // 'lane may' \n\t0x20 0x68 0x61 0x76 0x65 0x20 0x63 0x72    // ' have cr' \n\t0x61 0x73 0x68 0x65 0x64 0x20 0x6F 0x6E    // 'ashed on' \n\t0x20 0x61 0x20 0x72 0x65 0x6D 0x6F 0x74    // ' a remot' \n\t0x65 0x20 0x73 0x69 0x64 0x65 0x20 0x6F    // 'e side o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x69 0x73    // 'f the is' \n\t0x6C 0x61 0x6E 0x64 0x2E 0x20 0x20 0x4E    // 'land.  N' \n\t0x6F 0x20 0x72 0x6F 0x61 0x64 0x73 0x20    // 'o roads ' \n\t0x6C 0x65 0x61 0x64 0x20 0x74 0x6F 0x20    // 'lead to ' \n\t0x74 0x68 0x69 0x73 0x20 0x73 0x69 0x64    // 'this sid' \n\t0x65 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'e of the' \n\t0x20 0x69 0x73 0x6C 0x61 0x6E 0x64 0x2C    // ' island,' \n\t0x20 0x73 0x6F 0x20 0x4D 0x69 0x6D 0x69    // ' so Mimi' \n\t0x20 0x69 0x73 0x20 0x74 0x68 0x65 0x20    // ' is the ' \n\t0x6F 0x6E 0x6C 0x79 0x20 0x6F 0x6E 0x65    // 'only one' \n\t0x20 0x77 0x68 0x6F 0x20 0x63 0x61 0x6E    // ' who can' \n\t0x20 0x67 0x65 0x74 0x20 0x74 0x6F 0x20    // ' get to ' \n\t0x74 0x68 0x65 0x20 0x63 0x72 0x61 0x73    // 'the cras' \n\t0x68 0x20 0x73 0x69 0x74 0x65 0x20 0x71    // 'h site q' \n\t0x75 0x69 0x63 0x6B 0x6C 0x79 0x2E 0x20    // 'uickly. ' \n\t0x20 0x42 0x75 0x74 0x20 0x64 0x69 0x64    // ' But did' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x6E 0x65 0x20 0x63 0x72 0x61 0x73 0x68    // 'ne crash' \n\t0x3F 0x20 0x20 0x4F 0x72 0x20 0x64 0x69    // '?  Or di' \n\t0x64 0x20 0x69 0x74 0x20 0x73 0x69 0x6D    // 'd it sim' \n\t0x70 0x6C 0x79 0x2E 0x2E 0x2E 0x64 0x69    // 'ply...di' \n\t0x73 0x61 0x70 0x70 0x65 0x61 0x72 0x3F    // 'sappear?' \n\t0x20 0x20 0x57 0x68 0x61 0x74 0x20 0x77    // '  What w' \n\t0x69 0x6C 0x6C 0x20 0x4D 0x69 0x6D 0x69    // 'ill Mimi' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x6F 0x6E    // ' find on' \n\t0x20 0x74 0x68 0x65 0x20 0x72 0x65 0x6D    // ' the rem' \n\t0x6F 0x74 0x65 0x20 0x73 0x69 0x64 0x65    // 'ote side' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x69 0x73 0x6C 0x61 0x6E 0x64 0x3F         // 'island?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_91= ktipbio104\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_91, __HELP_NAME(\"ktipbio104\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_91, __HELP_NAME(\"ktipbio104\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_91, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio104\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_91, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x73 0x02 0x00 0x01    // '????s???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0D 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A2, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x72 0x61 0x63 0x6B 0x20    // '??Track ' \n\t0x43 0x6F 0x61 0x63 0x68 0x0D 0x0A 0x4D    // 'Coach??M' \n\t0x69 0x6D 0x69 0x20 0x77 0x61 0x6E 0x74    // 'imi want' \n\t0x73 0x20 0x74 0x6F 0x20 0x70 0x6C 0x61    // 's to pla' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x70 0x61    // 'y the pa' \n\t0x72 0x74 0x20 0x6F 0x66 0x20 0x61 0x20    // 'rt of a ' \n\t0x67 0x75 0x69 0x64 0x65 0x20 0x77 0x68    // 'guide wh' \n\t0x6F 0x20 0x69 0x73 0x20 0x67 0x6F 0x69    // 'o is goi' \n\t0x6E 0x67 0x20 0x74 0x6F 0x20 0x73 0x65    // 'ng to se' \n\t0x65 0x20 0x61 0x20 0x72 0x65 0x2D 0x63    // 'e a re-c' \n\t0x72 0x65 0x61 0x74 0x69 0x6F 0x6E 0x20    // 'reation ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x6F    // 'of the o' \n\t0x72 0x69 0x67 0x69 0x6E 0x61 0x6C 0x20    // 'riginal ' \n\t0x4F 0x6C 0x79 0x6D 0x70 0x69 0x63 0x20    // 'Olympic ' \n\t0x47 0x61 0x6D 0x65 0x73 0x20 0x69 0x6E    // 'Games in' \n\t0x20 0x41 0x74 0x68 0x65 0x6E 0x73 0x2C    // ' Athens,' \n\t0x20 0x47 0x72 0x65 0x65 0x63 0x65 0x2E    // ' Greece.' \n\t0x20 0x20 0x57 0x68 0x65 0x6E 0x20 0x73    // '  When s' \n\t0x68 0x65 0x20 0x61 0x72 0x72 0x69 0x76    // 'he arriv' \n\t0x65 0x73 0x20 0x61 0x74 0x20 0x74 0x68    // 'es at th' \n\t0x65 0x20 0x61 0x72 0x65 0x6E 0x61 0x2C    // 'e arena,' \n\t0x20 0x73 0x68 0x65 0x92 0x73 0x20 0x74    // ' shes t' \n\t0x6F 0x6C 0x64 0x20 0x74 0x68 0x61 0x74    // 'old that' \n\t0x20 0x6F 0x6E 0x65 0x20 0x6F 0x66 0x20    // ' one of ' \n\t0x74 0x68 0x65 0x20 0x73 0x74 0x61 0x72    // 'the star' \n\t0x20 0x6D 0x61 0x72 0x61 0x74 0x68 0x6F    // ' maratho' \n\t0x6E 0x20 0x72 0x75 0x6E 0x6E 0x65 0x72    // 'n runner' \n\t0x73 0x20 0x69 0x73 0x20 0x74 0x6F 0x6F    // 's is too' \n\t0x20 0x73 0x69 0x63 0x6B 0x20 0x74 0x6F    // ' sick to' \n\t0x20 0x72 0x75 0x6E 0x2E 0x20 0x20 0x54    // ' run.  T' \n\t0x68 0x65 0x20 0x4F 0x6C 0x79 0x6D 0x70    // 'he Olymp' \n\t0x69 0x63 0x20 0x43 0x6F 0x6D 0x6D 0x69    // 'ic Commi' \n\t0x74 0x74 0x65 0x65 0x20 0x69 0x73 0x20    // 'ttee is ' \n\t0x69 0x6E 0x20 0x61 0x20 0x70 0x61 0x6E    // 'in a pan' \n\t0x69 0x63 0x2E 0x20 0x20 0x48 0x6F 0x77    // 'ic.  How' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x74 0x68    // ' will th' \n\t0x65 0x79 0x20 0x72 0x65 0x70 0x6C 0x61    // 'ey repla' \n\t0x63 0x65 0x20 0x74 0x68 0x65 0x20 0x73    // 'ce the s' \n\t0x74 0x61 0x72 0x20 0x61 0x74 0x74 0x72    // 'tar attr' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x3F 0x20    // 'action? ' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x74 0x68    // ' When th' \n\t0x65 0x20 0x63 0x6F 0x6D 0x6D 0x69 0x74    // 'e commit' \n\t0x74 0x65 0x65 0x20 0x6C 0x65 0x61 0x72    // 'tee lear' \n\t0x6E 0x73 0x20 0x74 0x68 0x61 0x74 0x20    // 'ns that ' \n\t0x61 0x20 0x55 0x2E 0x53 0x2E 0x20 0x74    // 'a U.S. t' \n\t0x72 0x61 0x63 0x6B 0x20 0x73 0x74 0x61    // 'rack sta' \n\t0x72 0x20 0x69 0x73 0x20 0x69 0x6E 0x20    // 'r is in ' \n\t0x47 0x72 0x65 0x65 0x63 0x65 0x2C 0x20    // 'Greece, ' \n\t0x74 0x68 0x65 0x79 0x20 0x61 0x73 0x6B    // 'they ask' \n\t0x20 0x4D 0x69 0x6D 0x69 0x20 0x69 0x66    // ' Mimi if' \n\t0x20 0x73 0x68 0x65 0x20 0x77 0x69 0x6C    // ' she wil' \n\t0x6C 0x20 0x72 0x75 0x6E 0x20 0x74 0x68    // 'l run th' \n\t0x65 0x20 0x6D 0x61 0x72 0x61 0x74 0x68    // 'e marath' \n\t0x6F 0x6E 0x2E 0x20 0x20 0x42 0x75 0x74    // 'on.  But' \n\t0x20 0x74 0x68 0x65 0x72 0x65 0x92 0x73    // ' theres' \n\t0x20 0x73 0x6F 0x6D 0x65 0x6F 0x6E 0x65    // ' someone' \n\t0x20 0x77 0x68 0x6F 0x20 0x64 0x6F 0x65    // ' who doe' \n\t0x73 0x6E 0x92 0x74 0x20 0x77 0x61 0x6E    // 'snt wan' \n\t0x74 0x20 0x4D 0x69 0x6D 0x69 0x20 0x74    // 't Mimi t' \n\t0x6F 0x20 0x72 0x75 0x6E 0x20 0x74 0x68    // 'o run th' \n\t0x65 0x20 0x6D 0x61 0x72 0x61 0x74 0x68    // 'e marath' \n\t0x6F 0x6E 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'on, and ' \n\t0x74 0x68 0x69 0x73 0x20 0x73 0x6F 0x6D    // 'this som' \n\t0x65 0x6F 0x6E 0x65 0x20 0x77 0x69 0x6C    // 'eone wil' \n\t0x6C 0x20 0x64 0x6F 0x20 0x61 0x6E 0x79    // 'l do any' \n\t0x74 0x68 0x69 0x6E 0x67 0x20 0x73 0x74    // 'thing st' \n\t0x6F 0x70 0x20 0x68 0x65 0x72 0x20 0x66    // 'op her f' \n\t0x72 0x6F 0x6D 0x20 0x72 0x75 0x6E 0x6E    // 'rom runn' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x72 0x61 0x63 0x65 0x2E 0x20 0x20 0x57    // 'race.  W' \n\t0x68 0x6F 0x92 0x73 0x20 0x74 0x72 0x79    // 'hos try' \n\t0x69 0x6E 0x67 0x20 0x74 0x6F 0x20 0x73    // 'ing to s' \n\t0x74 0x6F 0x70 0x20 0x4D 0x69 0x6D 0x69    // 'top Mimi' \n\t0x20 0x61 0x6E 0x64 0x20 0x77 0x68 0x79    // ' and why' \n\t0x3F 0x20 0x20 0x57 0x69 0x6C 0x6C 0x20    // '?  Will ' \n\t0x4D 0x69 0x6D 0x69 0x20 0x77 0x69 0x6E    // 'Mimi win' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x61 0x72    // ' the mar' \n\t0x61 0x74 0x68 0x6F 0x6E 0x20 0x72 0x61    // 'athon ra' \n\t0x63 0x65 0x3F 0x0D 0x0A                   // 'ce???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_92= ktipbio105\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_92, __HELP_NAME(\"ktipbio105\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_92, __HELP_NAME(\"ktipbio105\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_96=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_92, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio105\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_96=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_92, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_96=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_96, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0C 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_96=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_96, 0x0)\n\tBYTE\n\t0x03 0x03 0x65 0x78 0x70 0x6C 0x6F 0x72    // '??explor' \n\t0x65 0x0D 0x0A 0x4D 0x61 0x72 0x69 0x62    // 'e??Marib' \n\t0x65 0x6C 0x6C 0x61 0x20 0x63 0x61 0x6E    // 'ella can' \n\t0x92 0x74 0x20 0x68 0x65 0x6C 0x70 0x20    // 't help ' \n\t0x77 0x61 0x6E 0x74 0x69 0x6E 0x67 0x20    // 'wanting ' \n\t0x74 0x6F 0x20 0x73 0x65 0x65 0x20 0x77    // 'to see w' \n\t0x68 0x61 0x74 0x92 0x73 0x20 0x62 0x65    // 'hats be' \n\t0x68 0x69 0x6E 0x64 0x20 0x63 0x6C 0x6F    // 'hind clo' \n\t0x73 0x65 0x64 0x20 0x64 0x6F 0x6F 0x72    // 'sed door' \n\t0x73 0x2E 0x20 0x20 0x53 0x68 0x65 0x20    // 's.  She ' \n\t0x66 0x69 0x6E 0x64 0x73 0x20 0x61 0x6C    // 'finds al' \n\t0x6C 0x20 0x6B 0x69 0x6E 0x64 0x73 0x20    // 'l kinds ' \n\t0x6F 0x66 0x20 0x74 0x68 0x69 0x6E 0x67    // 'of thing' \n\t0x73 0x20 0x62 0x79 0x20 0x73 0x6E 0x65    // 's by sne' \n\t0x61 0x6B 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'aking an' \n\t0x64 0x20 0x73 0x6E 0x6F 0x6F 0x70 0x69    // 'd snoopi' \n\t0x6E 0x67 0x2E 0x20 0x20 0x57 0x68 0x65    // 'ng.  Whe' \n\t0x6E 0x20 0x73 0x68 0x65 0x20 0x73 0x6E    // 'n she sn' \n\t0x6F 0x6F 0x70 0x65 0x64 0x20 0x74 0x68    // 'ooped th' \n\t0x72 0x6F 0x75 0x67 0x68 0x20 0x68 0x65    // 'rough he' \n\t0x72 0x20 0x67 0x72 0x61 0x6E 0x64 0x2D    // 'r grand-' \n\t0x20 0x66 0x61 0x74 0x68 0x65 0x72 0x92    // ' father' \n\t0x73 0x20 0x75 0x6E 0x64 0x65 0x72 0x77    // 's underw' \n\t0x65 0x61 0x72 0x20 0x64 0x72 0x61 0x77    // 'ear draw' \n\t0x65 0x72 0x2C 0x20 0x73 0x68 0x65 0x20    // 'er, she ' \n\t0x66 0x6F 0x75 0x6E 0x64 0x20 0x68 0x69    // 'found hi' \n\t0x73 0x20 0x73 0x6F 0x63 0x6B 0x20 0x67    // 's sock g' \n\t0x61 0x72 0x74 0x65 0x72 0x73 0x2C 0x20    // 'arters, ' \n\t0x77 0x68 0x69 0x63 0x68 0x20 0x65 0x78    // 'which ex' \n\t0x70 0x6C 0x61 0x69 0x6E 0x65 0x64 0x20    // 'plained ' \n\t0x77 0x68 0x79 0x20 0x68 0x69 0x73 0x20    // 'why his ' \n\t0x73 0x6F 0x63 0x6B 0x73 0x20 0x6E 0x65    // 'socks ne' \n\t0x76 0x65 0x72 0x20 0x73 0x61 0x67 0x67    // 'ver sagg' \n\t0x65 0x64 0x2E 0x20 0x0D 0x0A 0x42 0x75    // 'ed. ??Bu' \n\t0x74 0x20 0x68 0x65 0x72 0x20 0x62 0x69    // 't her bi' \n\t0x67 0x67 0x65 0x73 0x74 0x20 0x73 0x6E    // 'ggest sn' \n\t0x6F 0x6F 0x70 0x20 0x6F 0x66 0x20 0x61    // 'oop of a' \n\t0x6C 0x6C 0x20 0x77 0x61 0x73 0x20 0x6F    // 'll was o' \n\t0x6E 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // 'nto the ' \n\t0x73 0x65 0x74 0x20 0x6F 0x66 0x20 0x61    // 'set of a' \n\t0x20 0x4D 0x63 0x5A 0x65 0x65 0x20 0x6D    // ' McZee m' \n\t0x6F 0x76 0x69 0x65 0x2E 0x20 0x20 0x4A    // 'ovie.  J' \n\t0x75 0x73 0x74 0x20 0x61 0x73 0x20 0x73    // 'ust as s' \n\t0x68 0x65 0x20 0x77 0x61 0x73 0x20 0x73    // 'he was s' \n\t0x6E 0x65 0x61 0x6B 0x69 0x6E 0x67 0x20    // 'neaking ' \n\t0x69 0x6E 0x74 0x6F 0x20 0x61 0x20 0x73    // 'into a s' \n\t0x74 0x61 0x72 0x92 0x73 0x20 0x64 0x72    // 'tars dr' \n\t0x65 0x73 0x73 0x69 0x6E 0x67 0x20 0x72    // 'essing r' \n\t0x6F 0x6F 0x6D 0x2C 0x20 0x4D 0x65 0x6C    // 'oom, Mel' \n\t0x61 0x6E 0x69 0x65 0x2C 0x20 0x74 0x68    // 'anie, th' \n\t0x65 0x20 0x64 0x69 0x72 0x65 0x63 0x74    // 'e direct' \n\t0x6F 0x72 0x2C 0x20 0x63 0x61 0x75 0x67    // 'or, caug' \n\t0x68 0x74 0x20 0x68 0x65 0x72 0x2E 0x20    // 'ht her. ' \n\t0x20 0x53 0x69 0x6E 0x63 0x65 0x20 0x4D    // ' Since M' \n\t0x61 0x72 0x69 0x62 0x65 0x6C 0x6C 0x61    // 'aribella' \n\t0x20 0x77 0x61 0x73 0x20 0x73 0x6F 0x20    // ' was so ' \n\t0x67 0x6F 0x6F 0x64 0x20 0x61 0x74 0x20    // 'good at ' \n\t0x62 0x65 0x69 0x6E 0x67 0x20 0x63 0x75    // 'being cu' \n\t0x72 0x69 0x6F 0x75 0x73 0x2C 0x20 0x4D    // 'rious, M' \n\t0x65 0x6C 0x61 0x6E 0x69 0x65 0x20 0x64    // 'elanie d' \n\t0x65 0x63 0x69 0x64 0x65 0x64 0x20 0x73    // 'ecided s' \n\t0x68 0x65 0x27 0x64 0x20 0x62 0x65 0x20    // 'he'd be ' \n\t0x67 0x72 0x65 0x61 0x74 0x20 0x61 0x73    // 'great as' \n\t0x20 0x61 0x20 0x64 0x65 0x74 0x65 0x63    // ' a detec' \n\t0x74 0x69 0x76 0x65 0x20 0x69 0x6E 0x20    // 'tive in ' \n\t0x61 0x20 0x6D 0x79 0x73 0x74 0x65 0x72    // 'a myster' \n\t0x79 0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E    // 'y movie.' \n\t0x20                                       // ' ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_93= ktipbio106\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_93, __HELP_NAME(\"ktipbio106\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_93, __HELP_NAME(\"ktipbio106\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_17=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_93, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio106\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_17=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_93, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_17=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x56 0x01 0x00 0x01    // '????V???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1B 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_17=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x61 0x75 0x67 0x68 0x74    // '??Daught' \n\t0x65 0x72 0x20 0x69 0x6E 0x20 0x53 0x70    // 'er in Sp' \n\t0x6F 0x6F 0x6B 0x79 0x20 0x46 0x61 0x6D    // 'ooky Fam' \n\t0x69 0x6C 0x79 0x0D 0x0A 0x4D 0x61 0x72    // 'ily??Mar' \n\t0x69 0x62 0x65 0x6C 0x6C 0x61 0x20 0x74    // 'ibella t' \n\t0x68 0x69 0x6E 0x6B 0x73 0x20 0x69 0x74    // 'hinks it' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x62    // ' would b' \n\t0x65 0x20 0x73 0x6F 0x6F 0x6F 0x20 0x66    // 'e sooo f' \n\t0x75 0x6E 0x20 0x74 0x6F 0x20 0x70 0x6C    // 'un to pl' \n\t0x61 0x79 0x20 0x74 0x68 0x65 0x20 0x64    // 'ay the d' \n\t0x61 0x75 0x67 0x68 0x74 0x65 0x72 0x20    // 'aughter ' \n\t0x69 0x6E 0x20 0x61 0x20 0x66 0x61 0x6D    // 'in a fam' \n\t0x69 0x6C 0x79 0x20 0x74 0x68 0x61 0x74    // 'ily that' \n\t0x20 0x6C 0x69 0x76 0x65 0x73 0x20 0x69    // ' lives i' \n\t0x6E 0x20 0x61 0x20 0x70 0x6F 0x73 0x73    // 'n a poss' \n\t0x65 0x73 0x73 0x65 0x64 0x20 0x68 0x6F    // 'essed ho' \n\t0x75 0x73 0x65 0x2E 0x20 0x20 0x54 0x68    // 'use.  Th' \n\t0x65 0x72 0x65 0x20 0x77 0x6F 0x75 0x6C    // 'ere woul' \n\t0x64 0x20 0x62 0x65 0x20 0x74 0x6F 0x6E    // 'd be ton' \n\t0x73 0x20 0x6F 0x66 0x20 0x74 0x68 0x69    // 's of thi' \n\t0x6E 0x67 0x73 0x20 0x74 0x6F 0x20 0x66    // 'ngs to f' \n\t0x69 0x6E 0x64 0x20 0x6F 0x75 0x74 0x20    // 'ind out ' \n\t0x61 0x62 0x6F 0x75 0x74 0x2C 0x20 0x6C    // 'about, l' \n\t0x69 0x6B 0x65 0x20 0x77 0x68 0x6F 0x20    // 'ike who ' \n\t0x69 0x73 0x20 0x72 0x65 0x61 0x6C 0x6C    // 'is reall' \n\t0x79 0x20 0x69 0x6E 0x20 0x74 0x68 0x61    // 'y in tha' \n\t0x74 0x20 0x77 0x6F 0x6F 0x64 0x65 0x6E    // 't wooden' \n\t0x20 0x63 0x6F 0x66 0x66 0x69 0x6E 0x3F    // ' coffin?' \n\t0x20 0x20 0x57 0x68 0x61 0x74 0x27 0x73    // '  What's' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x73 0x61 0x66 0x65 0x20 0x69 0x6E 0x20    // 'safe in ' \n\t0x74 0x68 0x65 0x20 0x6C 0x69 0x62 0x72    // 'the libr' \n\t0x61 0x72 0x79 0x3F 0x20 0x20 0x41 0x6E    // 'ary?  An' \n\t0x64 0x20 0x69 0x73 0x20 0x74 0x68 0x65    // 'd is the' \n\t0x72 0x65 0x20 0x72 0x65 0x61 0x6C 0x6C    // 're reall' \n\t0x79 0x20 0x61 0x20 0x74 0x72 0x65 0x61    // 'y a trea' \n\t0x73 0x75 0x72 0x65 0x20 0x63 0x68 0x65    // 'sure che' \n\t0x73 0x74 0x20 0x68 0x69 0x64 0x64 0x65    // 'st hidde' \n\t0x6E 0x20 0x75 0x6E 0x64 0x65 0x72 0x20    // 'n under ' \n\t0x6F 0x6E 0x65 0x20 0x6F 0x66 0x20 0x74    // 'one of t' \n\t0x68 0x65 0x20 0x67 0x72 0x61 0x76 0x65    // 'he grave' \n\t0x73 0x74 0x6F 0x6E 0x65 0x73 0x20 0x6F    // 'stones o' \n\t0x75 0x74 0x73 0x69 0x64 0x65 0x3F 0x20    // 'utside? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_94= ktipbio107\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_94, __HELP_NAME(\"ktipbio107\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_94, __HELP_NAME(\"ktipbio107\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_62=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_94, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio107\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_62=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_94, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_62=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_62, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x78 0x01 0x00 0x01    // '????x???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0B 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_62=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_62, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x6E 0x6E 0x65 0x71    // '??Manneq' \n\t0x75 0x69 0x6E 0x0D 0x0A 0x4D 0x61 0x72    // 'uin??Mar' \n\t0x69 0x62 0x65 0x6C 0x6C 0x61 0x20 0x77    // 'ibella w' \n\t0x61 0x6E 0x74 0x73 0x20 0x74 0x6F 0x20    // 'ants to ' \n\t0x70 0x6C 0x61 0x79 0x20 0x74 0x68 0x65    // 'play the' \n\t0x20 0x70 0x61 0x72 0x74 0x20 0x6F 0x66    // ' part of' \n\t0x20 0x61 0x20 0x6D 0x61 0x6E 0x6E 0x65    // ' a manne' \n\t0x71 0x75 0x69 0x6E 0x2E 0x20 0x20 0x49    // 'quin.  I' \n\t0x6E 0x20 0x61 0x20 0x6D 0x6F 0x76 0x69    // 'n a movi' \n\t0x65 0x2C 0x20 0x69 0x74 0x20 0x77 0x6F    // 'e, it wo' \n\t0x75 0x6C 0x64 0x20 0x62 0x65 0x20 0x74    // 'uld be t' \n\t0x68 0x65 0x20 0x70 0x65 0x72 0x66 0x65    // 'he perfe' \n\t0x63 0x74 0x20 0x64 0x69 0x73 0x67 0x75    // 'ct disgu' \n\t0x69 0x73 0x65 0x20 0x74 0x6F 0x20 0x73    // 'ise to s' \n\t0x6F 0x6C 0x76 0x65 0x20 0x74 0x68 0x65    // 'olve the' \n\t0x20 0x6D 0x79 0x73 0x74 0x65 0x72 0x79    // ' mystery' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x64 0x69 0x73 0x61 0x70 0x70 0x65 0x61    // 'disappea' \n\t0x72 0x69 0x6E 0x67 0x20 0x6D 0x61 0x6E    // 'ring man' \n\t0x6E 0x65 0x71 0x75 0x69 0x6E 0x73 0x2E    // 'nequins.' \n\t0x20 0x20 0x46 0x6F 0x72 0x20 0x77 0x65    // '  For we' \n\t0x65 0x6B 0x73 0x20 0x74 0x65 0x65 0x6E    // 'eks teen' \n\t0x61 0x67 0x65 0x20 0x6D 0x61 0x6E 0x6E    // 'age mann' \n\t0x65 0x71 0x75 0x69 0x6E 0x73 0x20 0x68    // 'equins h' \n\t0x61 0x76 0x65 0x20 0x62 0x65 0x65 0x6E    // 'ave been' \n\t0x97 0x70 0x6F 0x6F 0x66 0x21 0x97 0x64    // 'poof!d' \n\t0x69 0x73 0x61 0x70 0x70 0x65 0x61 0x72    // 'isappear' \n\t0x69 0x6E 0x67 0x20 0x66 0x72 0x6F 0x6D    // 'ing from' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x6F 0x6F    // ' the coo' \n\t0x6C 0x20 0x73 0x74 0x6F 0x72 0x65 0x73    // 'l stores' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x6C 0x6F 0x63 0x61 0x6C 0x20 0x73 0x68    // 'local sh' \n\t0x6F 0x70 0x70 0x69 0x6E 0x67 0x20 0x63    // 'opping c' \n\t0x6F 0x6D 0x70 0x6C 0x65 0x78 0x2E 0x20    // 'omplex. ' \n\t0x20 0x43 0x61 0x6E 0x20 0x4D 0x61 0x72    // ' Can Mar' \n\t0x69 0x62 0x65 0x6C 0x6C 0x61 0x20 0x73    // 'ibella s' \n\t0x6E 0x65 0x61 0x6B 0x20 0x61 0x6E 0x64    // 'neak and' \n\t0x20 0x73 0x6E 0x6F 0x6F 0x70 0x20 0x68    // ' snoop h' \n\t0x65 0x72 0x20 0x77 0x61 0x79 0x20 0x74    // 'er way t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x74 0x68    // 'o the th' \n\t0x69 0x65 0x66 0x3F 0x20 0x20 0x4F 0x72    // 'ief?  Or' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x4D 0x61    // ' will Ma' \n\t0x72 0x69 0x62 0x65 0x6C 0x6C 0x61 0x2C    // 'ribella,' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x61 0x6E    // ' the man' \n\t0x6E 0x65 0x71 0x75 0x69 0x6E 0x2C 0x20    // 'nequin, ' \n\t0x62 0x65 0x20 0x73 0x74 0x6F 0x6C 0x65    // 'be stole' \n\t0x6E 0x20 0x68 0x65 0x72 0x73 0x65 0x6C    // 'n hersel' \n\t0x66 0x3F                                  // 'f?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_95= ktipbio108\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_95, __HELP_NAME(\"ktipbio108\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_95, __HELP_NAME(\"ktipbio108\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_95, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio108\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_95, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0C 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x69 0x72 0x6C 0x20 0x53    // '??Girl S' \n\t0x63 0x6F 0x75 0x74 0x0D 0x0A 0x4D 0x61    // 'cout??Ma' \n\t0x72 0x69 0x62 0x65 0x6C 0x6C 0x61 0x20    // 'ribella ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x6C 0x69    // 'would li' \n\t0x6B 0x65 0x20 0x74 0x6F 0x20 0x70 0x6C    // 'ke to pl' \n\t0x61 0x79 0x20 0x74 0x68 0x65 0x20 0x70    // 'ay the p' \n\t0x61 0x72 0x74 0x20 0x6F 0x66 0x20 0x61    // 'art of a' \n\t0x20 0x67 0x69 0x72 0x6C 0x20 0x73 0x63    // ' girl sc' \n\t0x6F 0x75 0x74 0x20 0x65 0x61 0x72 0x6E    // 'out earn' \n\t0x69 0x6E 0x67 0x20 0x68 0x65 0x72 0x20    // 'ing her ' \n\t0x72 0x6F 0x63 0x6B 0x65 0x74 0x20 0x66    // 'rocket f' \n\t0x6C 0x79 0x69 0x6E 0x67 0x20 0x62 0x61    // 'lying ba' \n\t0x64 0x67 0x65 0x2E 0x20 0x20 0x49 0x6E    // 'dge.  In' \n\t0x20 0x74 0x68 0x69 0x73 0x20 0x6D 0x6F    // ' this mo' \n\t0x76 0x69 0x65 0x2C 0x20 0x73 0x68 0x65    // 'vie, she' \n\t0x20 0x63 0x6F 0x75 0x6C 0x64 0x20 0x67    // ' could g' \n\t0x65 0x74 0x20 0x69 0x6E 0x20 0x74 0x68    // 'et in th' \n\t0x65 0x20 0x73 0x63 0x6F 0x75 0x74 0x20    // 'e scout ' \n\t0x72 0x6F 0x63 0x6B 0x65 0x74 0x20 0x61    // 'rocket a' \n\t0x6E 0x64 0x20 0x74 0x61 0x6B 0x65 0x20    // 'nd take ' \n\t0x6F 0x66 0x66 0x20 0x74 0x6F 0x20 0x65    // 'off to e' \n\t0x78 0x70 0x6C 0x6F 0x72 0x65 0x20 0x61    // 'xplore a' \n\t0x6E 0x79 0x74 0x68 0x69 0x6E 0x67 0x2C    // 'nything,' \n\t0x20 0x61 0x6E 0x79 0x77 0x68 0x65 0x72    // ' anywher' \n\t0x65 0x2E 0x20 0x20 0x53 0x68 0x65 0x20    // 'e.  She ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x62 0x72    // 'would br' \n\t0x69 0x6E 0x67 0x20 0x68 0x65 0x72 0x20    // 'ing her ' \n\t0x66 0x72 0x69 0x65 0x6E 0x64 0x2C 0x20    // 'friend, ' \n\t0x4B 0x69 0x6D 0x2C 0x20 0x77 0x69 0x74    // 'Kim, wit' \n\t0x68 0x20 0x68 0x65 0x72 0x20 0x74 0x6F    // 'h her to' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x74 0x68    // ' find th' \n\t0x65 0x20 0x43 0x61 0x76 0x65 0x20 0x6F    // 'e Cave o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x4C 0x6F    // 'f the Lo' \n\t0x73 0x74 0x20 0x44 0x6F 0x75 0x67 0x68    // 'st Dough' \n\t0x6E 0x75 0x74 0x2E 0x20 0x20 0x52 0x75    // 'nut.  Ru' \n\t0x6D 0x6F 0x72 0x20 0x68 0x61 0x73 0x20    // 'mor has ' \n\t0x69 0x74 0x20 0x74 0x68 0x61 0x74 0x20    // 'it that ' \n\t0x61 0x20 0x63 0x72 0x61 0x7A 0x79 0x20    // 'a crazy ' \n\t0x63 0x6F 0x6F 0x6B 0x20 0x62 0x6C 0x65    // 'cook ble' \n\t0x77 0x20 0x75 0x70 0x20 0x69 0x6E 0x20    // 'w up in ' \n\t0x74 0x68 0x65 0x20 0x63 0x61 0x76 0x65    // 'the cave' \n\t0x20 0x77 0x68 0x69 0x6C 0x65 0x20 0x69    // ' while i' \n\t0x6E 0x76 0x65 0x6E 0x74 0x69 0x6E 0x67    // 'nventing' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x6F 0x72    // ' the wor' \n\t0x6C 0x64 0x92 0x73 0x20 0x66 0x69 0x72    // 'lds fir' \n\t0x73 0x74 0x20 0x64 0x6F 0x75 0x67 0x68    // 'st dough' \n\t0x6E 0x75 0x74 0x2E 0x20 0x20 0x54 0x68    // 'nut.  Th' \n\t0x65 0x20 0x63 0x6F 0x6F 0x6B 0x20 0x68    // 'e cook h' \n\t0x61 0x73 0x6E 0x92 0x74 0x20 0x62 0x65    // 'asnt be' \n\t0x65 0x6E 0x20 0x73 0x65 0x65 0x6E 0x20    // 'en seen ' \n\t0x73 0x69 0x6E 0x63 0x65 0x2E 0x20 0x20    // 'since.  ' \n\t0x57 0x69 0x6C 0x6C 0x20 0x4D 0x61 0x72    // 'Will Mar' \n\t0x69 0x62 0x65 0x6C 0x6C 0x61 0x20 0x61    // 'ibella a' \n\t0x6E 0x64 0x20 0x4B 0x69 0x6D 0x20 0x66    // 'nd Kim f' \n\t0x69 0x6E 0x64 0x20 0x74 0x68 0x65 0x20    // 'ind the ' \n\t0x63 0x61 0x76 0x65 0x3F 0x20 0x20 0x57    // 'cave?  W' \n\t0x69 0x6C 0x6C 0x20 0x74 0x68 0x65 0x79    // 'ill they' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x74 0x68    // ' find th' \n\t0x65 0x20 0x6D 0x69 0x73 0x73 0x69 0x6E    // 'e missin' \n\t0x67 0x20 0x63 0x6F 0x6F 0x6B 0x3F 0x20    // 'g cook? ' \n\t0x20 0x41 0x6E 0x64 0x2C 0x20 0x6D 0x6F    // ' And, mo' \n\t0x73 0x74 0x20 0x69 0x6D 0x70 0x6F 0x72    // 'st impor' \n\t0x74 0x61 0x6E 0x74 0x2C 0x20 0x77 0x69    // 'tant, wi' \n\t0x6C 0x6C 0x20 0x74 0x68 0x65 0x72 0x65    // 'll there' \n\t0x20 0x62 0x65 0x20 0x61 0x6E 0x79 0x20    // ' be any ' \n\t0x64 0x6F 0x75 0x67 0x68 0x6E 0x75 0x74    // 'doughnut' \n\t0x73 0x20 0x6C 0x65 0x66 0x74 0x3F 0x20    // 's left? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_96= ktipbio109\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_96, __HELP_NAME(\"ktipbio109\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_96, __HELP_NAME(\"ktipbio109\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_96, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio109\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_96, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x17 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x6B 0x61 0x72 0x61 0x74 0x65    // '??karate' \n\t0x0D 0x0A 0x45 0x76 0x65 0x6E 0x74 0x75    // '??Eventu' \n\t0x61 0x6C 0x6C 0x79 0x2C 0x20 0x4E 0x61    // 'ally, Na' \n\t0x6B 0x69 0x74 0x61 0x20 0x65 0x6E 0x74    // 'kita ent' \n\t0x65 0x72 0x65 0x64 0x20 0x74 0x68 0x65    // 'ered the' \n\t0x20 0x52 0x75 0x73 0x73 0x69 0x61 0x6E    // ' Russian' \n\t0x20 0x6B 0x61 0x72 0x61 0x74 0x65 0x20    // ' karate ' \n\t0x63 0x68 0x61 0x6D 0x70 0x69 0x6F 0x6E    // 'champion' \n\t0x73 0x68 0x69 0x70 0x73 0x2E 0x20 0x54    // 'ships. T' \n\t0x68 0x65 0x20 0x6A 0x75 0x64 0x67 0x65    // 'he judge' \n\t0x73 0x20 0x6E 0x6F 0x74 0x69 0x63 0x65    // 's notice' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x79 0x6F    // 'd the yo' \n\t0x75 0x6E 0x67 0x20 0x67 0x69 0x72 0x6C    // 'ung girl' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x74 0x68    // ' with th' \n\t0x65 0x20 0x61 0x6D 0x61 0x7A 0x69 0x6E    // 'e amazin' \n\t0x67 0x20 0x6B 0x61 0x72 0x61 0x74 0x65    // 'g karate' \n\t0x20 0x6B 0x69 0x63 0x6B 0x2E 0x20 0x20    // ' kick.  ' \n\t0x57 0x68 0x61 0x74 0x20 0x74 0x68 0x65    // 'What the' \n\t0x20 0x6A 0x75 0x64 0x67 0x65 0x73 0x20    // ' judges ' \n\t0x64 0x69 0x64 0x6E 0x27 0x74 0x20 0x6B    // 'didn't k' \n\t0x6E 0x6F 0x77 0x20 0x77 0x61 0x73 0x20    // 'now was ' \n\t0x74 0x68 0x61 0x74 0x20 0x4E 0x61 0x6B    // 'that Nak' \n\t0x69 0x74 0x61 0x20 0x77 0x61 0x73 0x20    // 'ita was ' \n\t0x61 0x6C 0x73 0x6F 0x20 0x61 0x6E 0x20    // 'also an ' \n\t0x61 0x73 0x70 0x69 0x72 0x69 0x6E 0x67    // 'aspiring' \n\t0x20 0x70 0x6F 0x65 0x74 0x2E 0x20 0x20    // ' poet.  ' \n\t0x57 0x68 0x65 0x6E 0x20 0x73 0x68 0x65    // 'When she' \n\t0x20 0x77 0x6F 0x6E 0x20 0x74 0x68 0x65    // ' won the' \n\t0x20 0x66 0x69 0x6E 0x61 0x6C 0x20 0x72    // ' final r' \n\t0x6F 0x75 0x6E 0x64 0x2C 0x20 0x73 0x68    // 'ound, sh' \n\t0x65 0x20 0x6C 0x61 0x75 0x67 0x68 0x65    // 'e laughe' \n\t0x64 0x20 0x61 0x6E 0x64 0x20 0x72 0x65    // 'd and re' \n\t0x63 0x69 0x74 0x65 0x64 0x20 0x6F 0x6E    // 'cited on' \n\t0x65 0x20 0x6F 0x66 0x20 0x68 0x65 0x72    // 'e of her' \n\t0x20 0x70 0x6F 0x65 0x6D 0x73 0x2E 0x0D    // ' poems.?' \n\t0x0A 0x4F 0x6E 0x65 0x20 0x6F 0x66 0x20    // '?One of ' \n\t0x74 0x68 0x65 0x20 0x70 0x65 0x6F 0x70    // 'the peop' \n\t0x6C 0x65 0x20 0x69 0x6E 0x20 0x74 0x68    // 'le in th' \n\t0x65 0x20 0x61 0x75 0x64 0x69 0x65 0x6E    // 'e audien' \n\t0x63 0x65 0x20 0x77 0x61 0x73 0x20 0x74    // 'ce was t' \n\t0x68 0x65 0x20 0x66 0x61 0x6D 0x6F 0x75    // 'he famou' \n\t0x73 0x20 0x64 0x69 0x72 0x65 0x63 0x74    // 's direct' \n\t0x6F 0x72 0x20 0x4D 0x63 0x5A 0x65 0x65    // 'or McZee' \n\t0x2C 0x20 0x77 0x68 0x6F 0x20 0x77 0x61    // ', who wa' \n\t0x73 0x20 0x73 0x6F 0x20 0x69 0x6D 0x70    // 's so imp' \n\t0x72 0x65 0x73 0x73 0x65 0x64 0x20 0x77    // 'ressed w' \n\t0x69 0x74 0x68 0x20 0x4E 0x61 0x6B 0x69    // 'ith Naki' \n\t0x74 0x61 0x27 0x73 0x20 0x63 0x6F 0x6D    // 'ta's com' \n\t0x62 0x69 0x6E 0x61 0x74 0x69 0x6F 0x6E    // 'bination' \n\t0x20 0x6F 0x66 0x20 0x62 0x72 0x75 0x74    // ' of brut' \n\t0x65 0x20 0x73 0x74 0x72 0x65 0x6E 0x67    // 'e streng' \n\t0x74 0x68 0x20 0x61 0x6E 0x64 0x20 0x70    // 'th and p' \n\t0x6F 0x65 0x74 0x69 0x63 0x20 0x67 0x65    // 'oetic ge' \n\t0x6E 0x69 0x75 0x73 0x20 0x74 0x68 0x61    // 'nius tha' \n\t0x74 0x20 0x68 0x65 0x20 0x61 0x73 0x6B    // 't he ask' \n\t0x65 0x64 0x20 0x68 0x65 0x72 0x20 0x74    // 'ed her t' \n\t0x6F 0x20 0x62 0x65 0x20 0x69 0x6E 0x20    // 'o be in ' \n\t0x68 0x69 0x73 0x20 0x6E 0x65 0x78 0x74    // 'his next' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x21 0x20    // ' movie! ' \n\t0x20 0x41 0x6E 0x64 0x20 0x74 0x68 0x61    // ' And tha' \n\t0x74 0x92 0x73 0x20 0x68 0x6F 0x77 0x20    // 'ts how ' \n\t0x4E 0x61 0x6B 0x69 0x74 0x61 0x20 0x73    // 'Nakita s' \n\t0x74 0x61 0x72 0x74 0x65 0x64 0x20 0x6F    // 'tarted o' \n\t0x75 0x74 0x20 0x69 0x6E 0x20 0x61 0x63    // 'ut in ac' \n\t0x74 0x69 0x6E 0x67 0x2E                   // 'ting.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_97= ktipbio110\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_97, __HELP_NAME(\"ktipbio110\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_97, __HELP_NAME(\"ktipbio110\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_97=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_97, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio110\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_97=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_97, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_97=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_97, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x44 0x01 0x00 0x01    // '????D???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xBF 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_97=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_97, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x72 0x69 0x76 0x61 0x74    // '??Privat' \n\t0x65 0x20 0x41 0x65 0x72 0x6F 0x62 0x69    // 'e Aerobi' \n\t0x63 0x20 0x49 0x6E 0x73 0x74 0x72 0x75    // 'c Instru' \n\t0x63 0x74 0x6F 0x72 0x0D 0x0A 0x53 0x6F    // 'ctor??So' \n\t0x6D 0x65 0x64 0x61 0x79 0x4E 0x61 0x6B    // 'medayNak' \n\t0x69 0x74 0x61 0x20 0x77 0x6F 0x75 0x6C    // 'ita woul' \n\t0x64 0x20 0x6C 0x69 0x6B 0x65 0x20 0x74    // 'd like t' \n\t0x6F 0x20 0x70 0x6C 0x61 0x79 0x20 0x61    // 'o play a' \n\t0x20 0x70 0x72 0x69 0x76 0x61 0x74 0x65    // ' private' \n\t0x20 0x61 0x65 0x72 0x6F 0x62 0x69 0x63    // ' aerobic' \n\t0x20 0x69 0x6E 0x73 0x74 0x72 0x75 0x63    // ' instruc' \n\t0x74 0x6F 0x72 0x20 0x77 0x68 0x6F 0x20    // 'tor who ' \n\t0x69 0x73 0x20 0x73 0x75 0x6D 0x6D 0x6F    // 'is summo' \n\t0x6E 0x65 0x64 0x20 0x74 0x6F 0x20 0x61    // 'ned to a' \n\t0x20 0x68 0x61 0x75 0x6E 0x74 0x65 0x64    // ' haunted' \n\t0x20 0x68 0x6F 0x75 0x73 0x65 0x20 0x66    // ' house f' \n\t0x6F 0x72 0x20 0x61 0x20 0x73 0x70 0x65    // 'or a spe' \n\t0x63 0x69 0x61 0x6C 0x20 0x63 0x6C 0x69    // 'cial cli' \n\t0x65 0x6E 0x74 0x2E 0x20 0x20 0x54 0x68    // 'ent.  Th' \n\t0x69 0x73 0x20 0x63 0x6C 0x69 0x65 0x6E    // 'is clien' \n\t0x74 0x20 0x74 0x75 0x72 0x6E 0x73 0x20    // 't turns ' \n\t0x6F 0x75 0x74 0x20 0x74 0x6F 0x20 0x62    // 'out to b' \n\t0x65 0x20 0x61 0x20 0x67 0x69 0x61 0x6E    // 'e a gian' \n\t0x74 0x20 0x72 0x61 0x74 0x21 0x20 0x0D    // 't rat! ?' \n\t0x0A 0x53 0x75 0x72 0x65 0x2C 0x20 0x74    // '?Sure, t' \n\t0x68 0x65 0x20 0x72 0x61 0x74 0x20 0x6E    // 'he rat n' \n\t0x65 0x65 0x64 0x73 0x20 0x74 0x6F 0x20    // 'eeds to ' \n\t0x67 0x65 0x74 0x20 0x69 0x6E 0x20 0x73    // 'get in s' \n\t0x68 0x61 0x70 0x65 0x2C 0x20 0x62 0x75    // 'hape, bu' \n\t0x74 0x20 0x77 0x68 0x61 0x74 0x20 0x6B    // 't what k' \n\t0x69 0x6E 0x64 0x20 0x6F 0x66 0x20 0x69    // 'ind of i' \n\t0x6E 0x73 0x74 0x72 0x75 0x63 0x74 0x69    // 'nstructi' \n\t0x6F 0x6E 0x20 0x64 0x6F 0x65 0x73 0x20    // 'on does ' \n\t0x74 0x68 0x69 0x73 0x20 0x72 0x61 0x74    // 'this rat' \n\t0x20 0x68 0x61 0x76 0x65 0x20 0x69 0x6E    // ' have in' \n\t0x20 0x6D 0x69 0x6E 0x64 0x2C 0x20 0x61    // ' mind, a' \n\t0x6E 0x64 0x20 0x77 0x68 0x79 0x20 0x69    // 'nd why i' \n\t0x73 0x6E 0x27 0x74 0x20 0x61 0x6E 0x79    // 'sn't any' \n\t0x6F 0x6E 0x65 0x20 0x65 0x6C 0x73 0x65    // 'one else' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x68 0x6F 0x75 0x73 0x65 0x3F              // 'house?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_98= ktipbio111\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_98, __HELP_NAME(\"ktipbio111\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_98, __HELP_NAME(\"ktipbio111\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_98=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_98, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio111\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_98=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_98, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_98=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_98, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x92 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3F 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_98=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_98, 0x0)\n\tBYTE\n\t0x03 0x03 0x56 0x65 0x6C 0x63 0x72 0x6F    // '??Velcro' \n\t0x20 0x57 0x6F 0x6D 0x61 0x6E 0x0D 0x0A    // ' Woman??' \n\t0x4E 0x61 0x6B 0x69 0x74 0x61 0x20 0x68    // 'Nakita h' \n\t0x61 0x73 0x20 0x61 0x6C 0x77 0x61 0x79    // 'as alway' \n\t0x73 0x20 0x64 0x72 0x65 0x61 0x6D 0x65    // 's dreame' \n\t0x64 0x20 0x6F 0x66 0x20 0x70 0x6C 0x61    // 'd of pla' \n\t0x79 0x69 0x6E 0x67 0x20 0x56 0x65 0x6C    // 'ying Vel' \n\t0x63 0x72 0x6F 0x20 0x57 0x6F 0x6D 0x61    // 'cro Woma' \n\t0x6E 0x2C 0x20 0x61 0x20 0x66 0x61 0x6D    // 'n, a fam' \n\t0x6F 0x75 0x73 0x20 0x74 0x68 0x69 0x65    // 'ous thie' \n\t0x66 0x20 0x77 0x68 0x6F 0x73 0x65 0x20    // 'f whose ' \n\t0x6E 0x61 0x6D 0x65 0x20 0x63 0x6F 0x6D    // 'name com' \n\t0x65 0x73 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'es from ' \n\t0x74 0x68 0x65 0x20 0x66 0x61 0x63 0x74    // 'the fact' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x73 0x68    // ' that sh' \n\t0x65 0x20 0x61 0x6C 0x77 0x61 0x79 0x73    // 'e always' \n\t0x20 0x67 0x65 0x74 0x73 0x20 0x73 0x74    // ' gets st' \n\t0x75 0x63 0x6B 0x20 0x69 0x6E 0x20 0x74    // 'uck in t' \n\t0x6F 0x75 0x67 0x68 0x20 0x73 0x69 0x74    // 'ough sit' \n\t0x75 0x61 0x74 0x69 0x6F 0x6E 0x73 0x2E    // 'uations.' \n\t0x20 0x0D 0x0A 0x49 0x6E 0x20 0x6F 0x6E    // ' ??In on' \n\t0x65 0x20 0x73 0x63 0x65 0x6E 0x65 0x2C    // 'e scene,' \n\t0x20 0x4E 0x61 0x6B 0x69 0x74 0x61 0x20    // ' Nakita ' \n\t0x69 0x73 0x20 0x62 0x65 0x69 0x6E 0x67    // 'is being' \n\t0x20 0x63 0x68 0x61 0x73 0x65 0x64 0x20    // ' chased ' \n\t0x62 0x79 0x20 0x61 0x20 0x70 0x6F 0x6C    // 'by a pol' \n\t0x69 0x63 0x65 0x6D 0x61 0x6E 0x20 0x74    // 'iceman t' \n\t0x68 0x72 0x6F 0x75 0x67 0x68 0x20 0x74    // 'hrough t' \n\t0x68 0x65 0x20 0x73 0x74 0x72 0x65 0x65    // 'he stree' \n\t0x74 0x73 0x20 0x6F 0x66 0x20 0x74 0x68    // 'ts of th' \n\t0x65 0x20 0x63 0x69 0x74 0x79 0x2E 0x20    // 'e city. ' \n\t0x20 0x41 0x66 0x74 0x65 0x72 0x20 0x61    // ' After a' \n\t0x20 0x66 0x75 0x72 0x69 0x6F 0x75 0x73    // ' furious' \n\t0x20 0x63 0x68 0x61 0x73 0x65 0x2C 0x20    // ' chase, ' \n\t0x73 0x68 0x65 0x20 0x66 0x69 0x6E 0x64    // 'she find' \n\t0x73 0x20 0x68 0x65 0x72 0x73 0x65 0x6C    // 's hersel' \n\t0x66 0x20 0x74 0x72 0x61 0x70 0x70 0x65    // 'f trappe' \n\t0x64 0x20 0x69 0x6E 0x20 0x61 0x20 0x64    // 'd in a d' \n\t0x65 0x61 0x64 0x2D 0x65 0x6E 0x64 0x20    // 'ead-end ' \n\t0x61 0x6C 0x6C 0x65 0x79 0x2E 0x20 0x0D    // 'alley. ?' \n\t0x0A 0x57 0x69 0x6C 0x6C 0x20 0x73 0x68    // '?Will sh' \n\t0x65 0x20 0x68 0x61 0x76 0x65 0x20 0x74    // 'e have t' \n\t0x6F 0x20 0x73 0x75 0x72 0x72 0x65 0x6E    // 'o surren' \n\t0x64 0x65 0x72 0x2C 0x20 0x6F 0x72 0x20    // 'der, or ' \n\t0x77 0x69 0x6C 0x6C 0x20 0x73 0x68 0x65    // 'will she' \n\t0x20 0x75 0x73 0x65 0x20 0x68 0x65 0x72    // ' use her' \n\t0x20 0x6B 0x61 0x72 0x61 0x74 0x65 0x20    // ' karate ' \n\t0x73 0x6B 0x69 0x6C 0x6C 0x73 0x20 0x74    // 'skills t' \n\t0x6F 0x20 0x66 0x69 0x67 0x68 0x74 0x20    // 'o fight ' \n\t0x68 0x65 0x72 0x20 0x77 0x61 0x79 0x20    // 'her way ' \n\t0x6F 0x75 0x74 0x3F                        // 'out?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_99= ktipbio112\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_99, __HELP_NAME(\"ktipbio112\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_99, __HELP_NAME(\"ktipbio112\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_99, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio112\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_99, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x85 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x19 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9A, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x63 0x75 0x62 0x61 0x20    // '??Scuba ' \n\t0x44 0x69 0x76 0x69 0x6E 0x67 0x20 0x49    // 'Diving I' \n\t0x6E 0x73 0x74 0x72 0x75 0x63 0x74 0x6F    // 'nstructo' \n\t0x72 0x0D 0x0A 0x4E 0x61 0x6B 0x69 0x74    // 'r??Nakit' \n\t0x61 0x20 0x63 0x6F 0x6D 0x65 0x73 0x20    // 'a comes ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x61 0x20 0x63    // 'from a c' \n\t0x69 0x74 0x79 0x20 0x6F 0x6E 0x20 0x74    // 'ity on t' \n\t0x68 0x65 0x20 0x77 0x61 0x74 0x65 0x72    // 'he water' \n\t0x2C 0x20 0x73 0x6F 0x20 0x6E 0x61 0x74    // ', so nat' \n\t0x75 0x72 0x61 0x6C 0x6C 0x79 0x20 0x73    // 'urally s' \n\t0x68 0x65 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'he would' \n\t0x20 0x6C 0x6F 0x76 0x65 0x20 0x74 0x6F    // ' love to' \n\t0x20 0x70 0x6C 0x61 0x79 0x20 0x61 0x20    // ' play a ' \n\t0x73 0x63 0x75 0x62 0x61 0x20 0x64 0x69    // 'scuba di' \n\t0x76 0x69 0x6E 0x67 0x20 0x69 0x6E 0x73    // 'ving ins' \n\t0x74 0x72 0x75 0x63 0x74 0x6F 0x72 0x20    // 'tructor ' \n\t0x77 0x68 0x6F 0x20 0x63 0x6F 0x6D 0x65    // 'who come' \n\t0x73 0x20 0x75 0x70 0x6F 0x6E 0x20 0x61    // 's upon a' \n\t0x20 0x6D 0x79 0x73 0x74 0x65 0x72 0x69    // ' mysteri' \n\t0x6F 0x75 0x73 0x20 0x63 0x61 0x76 0x65    // 'ous cave' \n\t0x2E 0x20 0x20 0x54 0x68 0x69 0x6E 0x6B    // '.  Think' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x61 0x74    // 'ing that' \n\t0x20 0x73 0x68 0x65 0x20 0x6D 0x61 0x79    // ' she may' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x61 0x20    // ' find a ' \n\t0x73 0x74 0x72 0x65 0x61 0x6D 0x20 0x74    // 'stream t' \n\t0x6F 0x20 0x65 0x78 0x70 0x6C 0x6F 0x72    // 'o explor' \n\t0x65 0x2C 0x20 0x73 0x68 0x65 0x20 0x65    // 'e, she e' \n\t0x6E 0x74 0x65 0x72 0x73 0x20 0x74 0x68    // 'nters th' \n\t0x65 0x20 0x63 0x61 0x76 0x65 0x20 0x61    // 'e cave a' \n\t0x6E 0x64 0x20 0x6C 0x6F 0x6F 0x6B 0x73    // 'nd looks' \n\t0x20 0x61 0x72 0x6F 0x75 0x6E 0x64 0x2E    // ' around.' \n\t0x20 0x49 0x6E 0x73 0x74 0x65 0x61 0x64    // ' Instead' \n\t0x2C 0x20 0x73 0x68 0x65 0x20 0x66 0x69    // ', she fi' \n\t0x6E 0x64 0x73 0x20 0x68 0x75 0x6D 0x61    // 'nds huma' \n\t0x6E 0x20 0x62 0x6F 0x6E 0x65 0x73 0x20    // 'n bones ' \n\t0x61 0x6E 0x64 0x20 0x61 0x20 0x79 0x6F    // 'and a yo' \n\t0x75 0x6E 0x67 0x20 0x62 0x6F 0x79 0x20    // 'ung boy ' \n\t0x77 0x68 0x6F 0x20 0x63 0x61 0x6E 0x92    // 'who can' \n\t0x74 0x20 0x73 0x74 0x6F 0x70 0x20 0x6C    // 't stop l' \n\t0x61 0x75 0x67 0x68 0x69 0x6E 0x67 0x2E    // 'aughing.' \n\t0x20 0x57 0x68 0x61 0x74 0x20 0x69 0x73    // ' What is' \n\t0x20 0x69 0x74 0x20 0x74 0x68 0x61 0x74    // ' it that' \n\t0x20 0x68 0x65 0x20 0x66 0x69 0x6E 0x64    // ' he find' \n\t0x73 0x20 0x73 0x6F 0x20 0x66 0x75 0x6E    // 's so fun' \n\t0x6E 0x79 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'ny, and ' \n\t0x77 0x68 0x6F 0x73 0x65 0x20 0x62 0x6F    // 'whose bo' \n\t0x6E 0x65 0x73 0x20 0x61 0x72 0x65 0x20    // 'nes are ' \n\t0x74 0x68 0x65 0x73 0x65 0x2C 0x20 0x61    // 'these, a' \n\t0x6E 0x79 0x77 0x61 0x79 0x3F 0x20         // 'nyway? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9A= ktipbio113\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9A, __HELP_NAME(\"ktipbio113\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9A, __HELP_NAME(\"ktipbio113\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio113\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0B 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9E, 0x0)\n\tBYTE\n\t0x03 0x03 0x65 0x6E 0x74 0x65 0x72 0x74    // '??entert' \n\t0x61 0x69 0x6E 0x0D 0x0A 0x50 0x61 0x74    // 'ain??Pat' \n\t0x72 0x69 0x63 0x6B 0x20 0x6C 0x6F 0x76    // 'rick lov' \n\t0x65 0x64 0x20 0x74 0x6F 0x20 0x65 0x6E    // 'ed to en' \n\t0x74 0x65 0x72 0x74 0x61 0x69 0x6E 0x20    // 'tertain ' \n\t0x68 0x69 0x73 0x20 0x66 0x61 0x6D 0x69    // 'his fami' \n\t0x6C 0x79 0x20 0x61 0x6E 0x64 0x20 0x66    // 'ly and f' \n\t0x72 0x69 0x65 0x6E 0x64 0x73 0x2E 0x20    // 'riends. ' \n\t0x20 0x57 0x68 0x65 0x72 0x65 0x76 0x65    // ' Whereve' \n\t0x72 0x20 0x68 0x65 0x20 0x77 0x65 0x6E    // 'r he wen' \n\t0x74 0x20 0x68 0x65 0x20 0x6D 0x61 0x64    // 't he mad' \n\t0x65 0x20 0x61 0x20 0x73 0x70 0x65 0x63    // 'e a spec' \n\t0x74 0x61 0x63 0x6C 0x65 0x20 0x6F 0x66    // 'tacle of' \n\t0x20 0x68 0x69 0x6D 0x73 0x65 0x6C 0x66    // ' himself' \n\t0x2E 0x20 0x20 0x48 0x65 0x20 0x77 0x6F    // '.  He wo' \n\t0x75 0x6C 0x64 0x20 0x70 0x72 0x61 0x63    // 'uld prac' \n\t0x74 0x69 0x63 0x65 0x20 0x69 0x6E 0x20    // 'tice in ' \n\t0x61 0x20 0x6D 0x69 0x72 0x72 0x6F 0x72    // 'a mirror' \n\t0x20 0x69 0x6E 0x20 0x68 0x69 0x73 0x20    // ' in his ' \n\t0x72 0x6F 0x6F 0x6D 0x20 0x74 0x72 0x79    // 'room try' \n\t0x69 0x6E 0x67 0x20 0x74 0x6F 0x20 0x63    // 'ing to c' \n\t0x72 0x65 0x61 0x74 0x65 0x20 0x74 0x68    // 'reate th' \n\t0x65 0x20 0x6D 0x6F 0x73 0x74 0x20 0x64    // 'e most d' \n\t0x61 0x7A 0x7A 0x6C 0x69 0x6E 0x67 0x20    // 'azzling ' \n\t0x73 0x6D 0x69 0x6C 0x65 0x2E 0x20 0x20    // 'smile.  ' \n\t0x57 0x68 0x65 0x6E 0x20 0x68 0x65 0x20    // 'When he ' \n\t0x77 0x65 0x6E 0x74 0x20 0x63 0x6C 0x6F    // 'went clo' \n\t0x74 0x68 0x65 0x73 0x20 0x73 0x68 0x6F    // 'thes sho' \n\t0x70 0x70 0x69 0x6E 0x67 0x20 0x68 0x65    // 'pping he' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x73    // ' would s' \n\t0x74 0x61 0x79 0x20 0x69 0x6E 0x20 0x74    // 'tay in t' \n\t0x68 0x65 0x20 0x64 0x72 0x65 0x73 0x73    // 'he dress' \n\t0x69 0x6E 0x67 0x20 0x72 0x6F 0x6F 0x6D    // 'ing room' \n\t0x20 0x66 0x6F 0x72 0x20 0x68 0x6F 0x75    // ' for hou' \n\t0x72 0x73 0x20 0x62 0x65 0x63 0x61 0x75    // 'rs becau' \n\t0x73 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 'se of th' \n\t0x65 0x20 0x6D 0x69 0x72 0x72 0x6F 0x72    // 'e mirror' \n\t0x2E 0x20 0x20 0x48 0x65 0x27 0x64 0x20    // '.  He'd ' \n\t0x70 0x72 0x61 0x63 0x74 0x69 0x63 0x65    // 'practice' \n\t0x20 0x68 0x69 0x73 0x20 0x64 0x61 0x6E    // ' his dan' \n\t0x63 0x65 0x20 0x6D 0x6F 0x76 0x65 0x73    // 'ce moves' \n\t0x20 0x61 0x6E 0x64 0x20 0x74 0x68 0x65    // ' and the' \n\t0x6E 0x20 0x67 0x6F 0x20 0x6F 0x75 0x74    // 'n go out' \n\t0x20 0x6F 0x6E 0x20 0x74 0x68 0x65 0x20    // ' on the ' \n\t0x6D 0x61 0x72 0x62 0x6C 0x65 0x20 0x66    // 'marble f' \n\t0x6C 0x6F 0x6F 0x72 0x20 0x61 0x74 0x20    // 'loor at ' \n\t0x74 0x68 0x65 0x20 0x6D 0x61 0x6C 0x6C    // 'the mall' \n\t0x20 0x61 0x6E 0x64 0x20 0x64 0x61 0x6E    // ' and dan' \n\t0x63 0x65 0x2E 0x20 0x20 0x41 0x6D 0x61    // 'ce.  Ama' \n\t0x7A 0x69 0x6E 0x67 0x6C 0x79 0x2C 0x20    // 'zingly, ' \n\t0x70 0x65 0x6F 0x70 0x6C 0x65 0x20 0x77    // 'people w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x64 0x61 0x6E    // 'ould dan' \n\t0x63 0x65 0x20 0x77 0x69 0x74 0x68 0x20    // 'ce with ' \n\t0x68 0x69 0x6D 0x21 0x20 0x20 0x54 0x68    // 'him!  Th' \n\t0x65 0x6E 0x20 0x6D 0x61 0x6C 0x6C 0x20    // 'en mall ' \n\t0x73 0x65 0x63 0x75 0x72 0x69 0x74 0x79    // 'security' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x70    // ' would p' \n\t0x6F 0x6C 0x69 0x74 0x65 0x6C 0x79 0x20    // 'olitely ' \n\t0x61 0x73 0x6B 0x20 0x68 0x69 0x6D 0x20    // 'ask him ' \n\t0x74 0x6F 0x20 0x6C 0x65 0x61 0x76 0x65    // 'to leave' \n\t0x2C 0x20 0x62 0x75 0x74 0x20 0x73 0x6F    // ', but so' \n\t0x6D 0x65 0x74 0x69 0x6D 0x65 0x73 0x20    // 'metimes ' \n\t0x68 0x65 0x27 0x64 0x20 0x63 0x6F 0x6E    // 'he'd con' \n\t0x76 0x69 0x6E 0x63 0x65 0x20 0x74 0x68    // 'vince th' \n\t0x65 0x6D 0x20 0x74 0x6F 0x20 0x64 0x61    // 'em to da' \n\t0x6E 0x63 0x65 0x20 0x77 0x69 0x74 0x68    // 'nce with' \n\t0x20 0x68 0x69 0x6D 0x2C 0x20 0x74 0x6F    // ' him, to' \n\t0x6F 0x21 0x20                             // 'o! ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9B= ktipbio114\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9B, __HELP_NAME(\"ktipbio114\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9B, __HELP_NAME(\"ktipbio114\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio114\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x72 0x01 0x00 0x01    // '????r???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x38 0x01 0x00 0x82    // '????8??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9B, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x69 0x63 0x68 0x20 0x43    // '??Rich C' \n\t0x6F 0x75 0x73 0x69 0x6E 0x0D 0x0A 0x4F    // 'ousin??O' \n\t0x6E 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 'ne of th' \n\t0x65 0x20 0x72 0x6F 0x6C 0x65 0x73 0x20    // 'e roles ' \n\t0x74 0x68 0x61 0x74 0x20 0x50 0x61 0x74    // 'that Pat' \n\t0x72 0x69 0x63 0x6B 0x20 0x77 0x6F 0x75    // 'rick wou' \n\t0x6C 0x64 0x20 0x6C 0x6F 0x76 0x65 0x20    // 'ld love ' \n\t0x74 0x6F 0x20 0x70 0x6C 0x61 0x79 0x20    // 'to play ' \n\t0x69 0x73 0x20 0x61 0x20 0x72 0x69 0x63    // 'is a ric' \n\t0x68 0x20 0x63 0x6F 0x75 0x73 0x69 0x6E    // 'h cousin' \n\t0x20 0x74 0x6F 0x20 0x73 0x6F 0x6D 0x65    // ' to some' \n\t0x20 0x76 0x65 0x72 0x79 0x20 0x64 0x69    // ' very di' \n\t0x73 0x74 0x61 0x6E 0x74 0x2C 0x20 0x76    // 'stant, v' \n\t0x65 0x72 0x79 0x20 0x77 0x65 0x69 0x72    // 'ery weir' \n\t0x64 0x20 0x72 0x65 0x6C 0x61 0x74 0x69    // 'd relati' \n\t0x76 0x65 0x73 0x2E 0x20 0x20 0x54 0x68    // 'ves.  Th' \n\t0x65 0x79 0x27 0x72 0x65 0x20 0x6A 0x65    // 'ey're je' \n\t0x61 0x6C 0x6F 0x75 0x73 0x20 0x62 0x65    // 'alous be' \n\t0x63 0x61 0x75 0x73 0x65 0x20 0x68 0x65    // 'cause he' \n\t0x27 0x73 0x20 0x73 0x75 0x63 0x68 0x20    // ''s such ' \n\t0x61 0x20 0x67 0x72 0x65 0x61 0x74 0x20    // 'a great ' \n\t0x64 0x61 0x6E 0x63 0x65 0x72 0x2C 0x20    // 'dancer, ' \n\t0x61 0x6E 0x64 0x20 0x68 0x61 0x76 0x65    // 'and have' \n\t0x20 0x70 0x6C 0x61 0x6E 0x73 0x20 0x74    // ' plans t' \n\t0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20 0x68    // 'o make h' \n\t0x69 0x6D 0x20 0x64 0x69 0x73 0x61 0x70    // 'im disap' \n\t0x70 0x65 0x61 0x72 0x20 0x66 0x6F 0x72    // 'pear for' \n\t0x65 0x76 0x65 0x72 0x21 0x20 0x20 0x54    // 'ever!  T' \n\t0x68 0x65 0x79 0x20 0x68 0x61 0x76 0x65    // 'hey have' \n\t0x20 0x69 0x6E 0x76 0x69 0x74 0x65 0x64    // ' invited' \n\t0x20 0x68 0x69 0x6D 0x20 0x6F 0x76 0x65    // ' him ove' \n\t0x72 0x20 0x66 0x6F 0x72 0x20 0x61 0x20    // 'r for a ' \n\t0x76 0x61 0x63 0x61 0x74 0x69 0x6F 0x6E    // 'vacation' \n\t0x20 0x62 0x75 0x74 0x20 0x74 0x68 0x65    // ' but the' \n\t0x79 0x20 0x74 0x72 0x79 0x20 0x74 0x6F    // 'y try to' \n\t0x20 0x67 0x65 0x74 0x20 0x68 0x69 0x6D    // ' get him' \n\t0x20 0x6C 0x6F 0x73 0x74 0x20 0x77 0x68    // ' lost wh' \n\t0x65 0x72 0x65 0x76 0x65 0x72 0x20 0x68    // 'erever h' \n\t0x65 0x20 0x67 0x6F 0x65 0x73 0x2E 0x20    // 'e goes. ' \n\t0x0D 0x0A 0x48 0x6F 0x77 0x20 0x77 0x69    // '??How wi' \n\t0x6C 0x6C 0x20 0x68 0x65 0x20 0x65 0x73    // 'll he es' \n\t0x63 0x61 0x70 0x65 0x20 0x66 0x72 0x6F    // 'cape fro' \n\t0x6D 0x20 0x62 0x65 0x69 0x6E 0x67 0x20    // 'm being ' \n\t0x61 0x62 0x61 0x6E 0x64 0x6F 0x6E 0x65    // 'abandone' \n\t0x64 0x20 0x69 0x6E 0x20 0x61 0x20 0x73    // 'd in a s' \n\t0x63 0x61 0x72 0x79 0x20 0x63 0x61 0x76    // 'cary cav' \n\t0x65 0x3F 0x20 0x20                        // 'e?  ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9C= ktipbio115\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9C, __HELP_NAME(\"ktipbio115\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9C, __HELP_NAME(\"ktipbio115\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio115\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9D, 0x0)\n\tBYTE\n\t0x03 0x03 0x4B 0x61 0x72 0x61 0x74 0x65    // '??Karate' \n\t0x20 0x45 0x78 0x70 0x65 0x72 0x74 0x0D    // ' Expert?' \n\t0x0A 0x41 0x66 0x74 0x65 0x72 0x20 0x61    // '?After a' \n\t0x6C 0x6C 0x20 0x6F 0x66 0x20 0x74 0x68    // 'll of th' \n\t0x61 0x74 0x20 0x70 0x72 0x61 0x63 0x74    // 'at pract' \n\t0x69 0x63 0x65 0x20 0x69 0x6E 0x20 0x74    // 'ice in t' \n\t0x68 0x65 0x20 0x6D 0x69 0x72 0x72 0x6F    // 'he mirro' \n\t0x72 0x2C 0x20 0x50 0x61 0x74 0x72 0x69    // 'r, Patri' \n\t0x63 0x6B 0x20 0x68 0x61 0x73 0x20 0x74    // 'ck has t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x76 0x65 0x73    // 'he moves' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x6F    // ' down to' \n\t0x20 0x62 0x65 0x20 0x61 0x20 0x6B 0x61    // ' be a ka' \n\t0x72 0x61 0x74 0x65 0x20 0x65 0x78 0x70    // 'rate exp' \n\t0x65 0x72 0x74 0x2E 0x20 0x20 0x57 0x68    // 'ert.  Wh' \n\t0x65 0x6E 0x65 0x76 0x65 0x72 0x20 0x64    // 'enever d' \n\t0x61 0x6E 0x67 0x65 0x72 0x20 0x69 0x73    // 'anger is' \n\t0x20 0x6E 0x65 0x61 0x72 0x2C 0x20 0x68    // ' near, h' \n\t0x65 0x20 0x64 0x6F 0x65 0x73 0x20 0x61    // 'e does a' \n\t0x20 0x71 0x75 0x69 0x63 0x6B 0x20 0x63    // ' quick c' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x69 0x6E    // 'hange in' \n\t0x74 0x6F 0x20 0x68 0x69 0x73 0x20 0x6B    // 'to his k' \n\t0x61 0x72 0x61 0x74 0x65 0x20 0x72 0x6F    // 'arate ro' \n\t0x62 0x65 0x20 0x61 0x6E 0x64 0x20 0x6B    // 'be and k' \n\t0x69 0x63 0x6B 0x73 0x20 0x68 0x69 0x73    // 'icks his' \n\t0x20 0x77 0x61 0x79 0x20 0x6F 0x75 0x74    // ' way out' \n\t0x20 0x6F 0x66 0x20 0x74 0x72 0x6F 0x75    // ' of trou' \n\t0x62 0x6C 0x65 0x2E 0x20 0x20 0x42 0x75    // 'ble.  Bu' \n\t0x74 0x20 0x77 0x68 0x61 0x74 0x20 0x77    // 't what w' \n\t0x69 0x6C 0x6C 0x20 0x68 0x65 0x20 0x64    // 'ill he d' \n\t0x6F 0x20 0x77 0x68 0x65 0x6E 0x20 0x68    // 'o when h' \n\t0x69 0x73 0x20 0x6F 0x70 0x70 0x6F 0x6E    // 'is oppon' \n\t0x65 0x6E 0x74 0x20 0x69 0x73 0x20 0x61    // 'ent is a' \n\t0x20 0x62 0x6F 0x78 0x65 0x72 0x3F 0x20    // ' boxer? ' \n\t0x20 0x4F 0x72 0x20 0x61 0x20 0x72 0x6F    // ' Or a ro' \n\t0x62 0x6F 0x74 0x3F 0x20 0x20 0x4F 0x72    // 'bot?  Or' \n\t0x20 0x61 0x20 0x62 0x61 0x62 0x79 0x3F    // ' a baby?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9D= ktipbio116\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9D, __HELP_NAME(\"ktipbio116\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9D, __HELP_NAME(\"ktipbio116\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio116\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5C 0x01 0x00 0x01    // '????\\???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB8 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9C, 0x0)\n\tBYTE\n\t0x03 0x03 0x45 0x78 0x70 0x6C 0x6F 0x72    // '??Explor' \n\t0x65 0x72 0x0D 0x0A 0x41 0x73 0x20 0x68    // 'er??As h' \n\t0x65 0x20 0x67 0x75 0x69 0x64 0x65 0x64    // 'e guided' \n\t0x20 0x74 0x6F 0x75 0x72 0x69 0x73 0x74    // ' tourist' \n\t0x73 0x20 0x74 0x68 0x72 0x6F 0x75 0x67    // 's throug' \n\t0x68 0x20 0x74 0x68 0x65 0x20 0x67 0x6C    // 'h the gl' \n\t0x61 0x73 0x73 0x20 0x66 0x61 0x63 0x74    // 'ass fact' \n\t0x6F 0x72 0x79 0x2C 0x20 0x50 0x61 0x74    // 'ory, Pat' \n\t0x72 0x69 0x63 0x6B 0x20 0x73 0x6F 0x6D    // 'rick som' \n\t0x65 0x74 0x69 0x6D 0x65 0x73 0x20 0x69    // 'etimes i' \n\t0x6D 0x61 0x67 0x69 0x6E 0x65 0x64 0x20    // 'magined ' \n\t0x74 0x68 0x61 0x74 0x20 0x68 0x65 0x20    // 'that he ' \n\t0x77 0x61 0x73 0x20 0x61 0x6E 0x20 0x65    // 'was an e' \n\t0x78 0x70 0x6C 0x6F 0x72 0x65 0x72 0x20    // 'xplorer ' \n\t0x6C 0x65 0x61 0x64 0x69 0x6E 0x67 0x20    // 'leading ' \n\t0x61 0x20 0x74 0x65 0x61 0x6D 0x20 0x6F    // 'a team o' \n\t0x66 0x20 0x73 0x63 0x69 0x65 0x6E 0x74    // 'f scient' \n\t0x69 0x73 0x74 0x73 0x20 0x6F 0x6E 0x20    // 'ists on ' \n\t0x61 0x6E 0x20 0x61 0x64 0x76 0x65 0x6E    // 'an adven' \n\t0x74 0x75 0x72 0x65 0x20 0x74 0x68 0x72    // 'ture thr' \n\t0x6F 0x75 0x67 0x68 0x20 0x61 0x20 0x74    // 'ough a t' \n\t0x72 0x6F 0x70 0x69 0x63 0x61 0x6C 0x20    // 'ropical ' \n\t0x76 0x69 0x6C 0x6C 0x61 0x67 0x65 0x2E    // 'village.' \n\t0x0D 0x0A 0x49 0x6E 0x20 0x74 0x68 0x69    // '??In thi' \n\t0x73 0x20 0x72 0x6F 0x6C 0x65 0x2C 0x20    // 's role, ' \n\t0x77 0x68 0x65 0x6E 0x20 0x68 0x65 0x20    // 'when he ' \n\t0x66 0x69 0x6E 0x64 0x73 0x20 0x74 0x68    // 'finds th' \n\t0x65 0x20 0x76 0x69 0x6C 0x6C 0x61 0x67    // 'e villag' \n\t0x65 0x20 0x63 0x6F 0x6D 0x70 0x6C 0x65    // 'e comple' \n\t0x74 0x65 0x6C 0x79 0x20 0x64 0x65 0x73    // 'tely des' \n\t0x65 0x72 0x74 0x65 0x64 0x20 0x61 0x6E    // 'erted an' \n\t0x64 0x20 0x74 0x68 0x65 0x6E 0x20 0x74    // 'd then t' \n\t0x68 0x65 0x20 0x73 0x63 0x69 0x65 0x6E    // 'he scien' \n\t0x74 0x69 0x73 0x74 0x73 0x20 0x64 0x69    // 'tists di' \n\t0x65 0x20 0x66 0x72 0x6F 0x6D 0x20 0x66    // 'e from f' \n\t0x6F 0x6F 0x64 0x20 0x70 0x6F 0x69 0x73    // 'ood pois' \n\t0x6F 0x6E 0x69 0x6E 0x67 0x20 0x61 0x74    // 'oning at' \n\t0x20 0x74 0x68 0x65 0x20 0x76 0x69 0x6C    // ' the vil' \n\t0x6C 0x61 0x67 0x65 0x20 0x72 0x65 0x73    // 'lage res' \n\t0x74 0x61 0x75 0x72 0x61 0x6E 0x74 0x2C    // 'taurant,' \n\t0x20 0x68 0x6F 0x77 0x20 0x77 0x69 0x6C    // ' how wil' \n\t0x6C 0x20 0x68 0x65 0x20 0x66 0x69 0x6E    // 'l he fin' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x63 0x75    // 'd the cu' \n\t0x6C 0x70 0x72 0x69 0x74 0x3F              // 'lprit?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9E= ktipbio117\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9E, __HELP_NAME(\"ktipbio117\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9E, __HELP_NAME(\"ktipbio117\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio117\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x79 0x01 0x00 0x01    // '????y???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0C 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B9, 0x0)\n\tBYTE\n\t0x03 0x03 0x61 0x63 0x74 0x72 0x65 0x73    // '??actres' \n\t0x73 0x65 0x73 0x20 0x0D 0x0A 0x52 0x61    // 'ses ??Ra' \n\t0x6D 0x75 0x92 0x73 0x20 0x66 0x72 0x69    // 'mus fri' \n\t0x65 0x6E 0x64 0x6C 0x79 0x20 0x6E 0x61    // 'endly na' \n\t0x74 0x75 0x72 0x65 0x20 0x61 0x6E 0x64    // 'ture and' \n\t0x20 0x73 0x65 0x6E 0x73 0x65 0x20 0x6F    // ' sense o' \n\t0x66 0x20 0x68 0x75 0x6D 0x6F 0x72 0x20    // 'f humor ' \n\t0x6D 0x61 0x64 0x65 0x20 0x68 0x69 0x6D    // 'made him' \n\t0x20 0x74 0x68 0x65 0x20 0x66 0x61 0x76    // ' the fav' \n\t0x6F 0x72 0x69 0x74 0x65 0x20 0x6F 0x66    // 'orite of' \n\t0x20 0x6D 0x61 0x6E 0x79 0x20 0x6C 0x65    // ' many le' \n\t0x61 0x64 0x69 0x6E 0x67 0x20 0x61 0x63    // 'ading ac' \n\t0x74 0x72 0x65 0x73 0x73 0x65 0x73 0x2E    // 'tresses.' \n\t0x20 0x20 0x53 0x65 0x76 0x65 0x72 0x61    // '  Severa' \n\t0x6C 0x20 0x73 0x74 0x61 0x72 0x6C 0x65    // 'l starle' \n\t0x74 0x73 0x20 0x62 0x65 0x67 0x61 0x6E    // 'ts began' \n\t0x20 0x6D 0x61 0x6B 0x69 0x6E 0x67 0x20    // ' making ' \n\t0x61 0x70 0x70 0x6F 0x69 0x6E 0x74 0x6D    // 'appointm' \n\t0x65 0x6E 0x74 0x73 0x20 0x66 0x6F 0x72    // 'ents for' \n\t0x20 0x77 0x65 0x65 0x6B 0x6C 0x79 0x20    // ' weekly ' \n\t0x63 0x68 0x65 0x63 0x6B 0x75 0x70 0x73    // 'checkups' \n\t0x21 0x20 0x20 0x48 0x6F 0x6C 0x6C 0x79    // '!  Holly' \n\t0x77 0x6F 0x6F 0x64 0x20 0x77 0x61 0x73    // 'wood was' \n\t0x20 0x73 0x6F 0x6F 0x6E 0x20 0x62 0x75    // ' soon bu' \n\t0x7A 0x7A 0x69 0x6E 0x67 0x20 0x61 0x62    // 'zzing ab' \n\t0x6F 0x75 0x74 0x20 0x74 0x68 0x65 0x20    // 'out the ' \n\t0x67 0x65 0x6E 0x74 0x6C 0x65 0x6D 0x61    // 'gentlema' \n\t0x6E 0x20 0x64 0x65 0x6E 0x74 0x69 0x73    // 'n dentis' \n\t0x74 0x20 0x77 0x68 0x6F 0x6D 0x20 0x65    // 't whom e' \n\t0x76 0x65 0x72 0x79 0x20 0x6C 0x65 0x61    // 'very lea' \n\t0x64 0x69 0x6E 0x67 0x20 0x6C 0x61 0x64    // 'ding lad' \n\t0x79 0x20 0x77 0x61 0x6E 0x74 0x65 0x64    // 'y wanted' \n\t0x20 0x74 0x6F 0x20 0x6B 0x69 0x73 0x73    // ' to kiss' \n\t0x2E 0x20 0x20 0x4D 0x6F 0x76 0x69 0x65    // '.  Movie' \n\t0x20 0x65 0x78 0x65 0x63 0x75 0x74 0x69    // ' executi' \n\t0x76 0x65 0x73 0x20 0x74 0x68 0x6F 0x75    // 'ves thou' \n\t0x67 0x68 0x74 0x20 0x74 0x68 0x61 0x74    // 'ght that' \n\t0x20 0x52 0x61 0x6D 0x75 0x20 0x6D 0x75    // ' Ramu mu' \n\t0x73 0x74 0x20 0x68 0x61 0x76 0x65 0x20    // 'st have ' \n\t0x73 0x6F 0x6D 0x65 0x20 0x76 0x65 0x72    // 'some ver' \n\t0x79 0x20 0x73 0x70 0x65 0x63 0x69 0x61    // 'y specia' \n\t0x6C 0x20 0x71 0x75 0x61 0x6C 0x69 0x74    // 'l qualit' \n\t0x69 0x65 0x73 0x20 0x61 0x6E 0x64 0x20    // 'ies and ' \n\t0x63 0x6F 0x6E 0x76 0x69 0x6E 0x63 0x65    // 'convince' \n\t0x64 0x20 0x68 0x69 0x6D 0x20 0x74 0x6F    // 'd him to' \n\t0x20 0x67 0x69 0x76 0x65 0x20 0x61 0x63    // ' give ac' \n\t0x74 0x69 0x6E 0x67 0x20 0x61 0x20 0x74    // 'ting a t' \n\t0x72 0x79 0x2E                             // 'ry.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9F= ktipbio118\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9F, __HELP_NAME(\"ktipbio118\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9F, __HELP_NAME(\"ktipbio118\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio118\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE1 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0E 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9F, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x69 0x73 0x79 0x20    // '??Noisy ' \n\t0x54 0x65 0x6E 0x61 0x6E 0x74 0x0D 0x0A    // 'Tenant??' \n\t0x49 0x6E 0x20 0x74 0x68 0x69 0x73 0x20    // 'In this ' \n\t0x64 0x72 0x65 0x61 0x6D 0x20 0x72 0x6F    // 'dream ro' \n\t0x6C 0x65 0x2C 0x20 0x61 0x20 0x68 0x61    // 'le, a ha' \n\t0x75 0x6E 0x74 0x65 0x64 0x20 0x68 0x6F    // 'unted ho' \n\t0x75 0x73 0x65 0x20 0x68 0x61 0x73 0x20    // 'use has ' \n\t0x62 0x65 0x63 0x6F 0x6D 0x65 0x20 0x61    // 'become a' \n\t0x20 0x62 0x6F 0x61 0x72 0x64 0x69 0x6E    // ' boardin' \n\t0x67 0x20 0x68 0x6F 0x75 0x73 0x65 0x20    // 'g house ' \n\t0x61 0x6E 0x64 0x20 0x6F 0x6E 0x65 0x20    // 'and one ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x74    // 'of the t' \n\t0x65 0x6E 0x61 0x6E 0x74 0x73 0x20 0x69    // 'enants i' \n\t0x73 0x20 0x70 0x61 0x72 0x74 0x69 0x63    // 's partic' \n\t0x75 0x6C 0x61 0x72 0x6C 0x79 0x20 0x6E    // 'ularly n' \n\t0x6F 0x69 0x73 0x79 0x3B 0x20 0x69 0x74    // 'oisy; it' \n\t0x92 0x73 0x20 0x52 0x61 0x6D 0x75 0x20    // 's Ramu ' \n\t0x61 0x73 0x20 0x74 0x68 0x65 0x20 0x67    // 'as the g' \n\t0x68 0x6F 0x73 0x74 0x20 0x74 0x65 0x6E    // 'host ten' \n\t0x61 0x6E 0x74 0x21 0x20 0x20 0x48 0x65    // 'ant!  He' \n\t0x20 0x6C 0x6F 0x6F 0x6B 0x73 0x20 0x6A    // ' looks j' \n\t0x75 0x73 0x74 0x20 0x6C 0x69 0x6B 0x65    // 'ust like' \n\t0x20 0x61 0x6E 0x20 0x6F 0x72 0x64 0x69    // ' an ordi' \n\t0x6E 0x61 0x72 0x79 0x20 0x70 0x65 0x72    // 'nary per' \n\t0x73 0x6F 0x6E 0x2C 0x20 0x62 0x75 0x74    // 'son, but' \n\t0x20 0x68 0x65 0x20 0x63 0x61 0x6E 0x20    // ' he can ' \n\t0x66 0x61 0x6C 0x6C 0x20 0x74 0x68 0x72    // 'fall thr' \n\t0x6F 0x75 0x67 0x68 0x20 0x66 0x6C 0x6F    // 'ough flo' \n\t0x6F 0x72 0x73 0x20 0x61 0x6E 0x64 0x20    // 'ors and ' \n\t0x6B 0x6E 0x6F 0x77 0x73 0x20 0x77 0x68    // 'knows wh' \n\t0x61 0x74 0x20 0x70 0x65 0x6F 0x70 0x6C    // 'at peopl' \n\t0x65 0x20 0x61 0x72 0x65 0x20 0x64 0x6F    // 'e are do' \n\t0x69 0x6E 0x67 0x20 0x65 0x76 0x65 0x6E    // 'ing even' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x74 0x68    // ' when th' \n\t0x65 0x79 0x27 0x72 0x65 0x20 0x6E 0x6F    // 'ey're no' \n\t0x74 0x20 0x61 0x72 0x6F 0x75 0x6E 0x64    // 't around' \n\t0x2E 0x20 0x20 0x48 0x65 0x92 0x73 0x20    // '.  Hes ' \n\t0x64 0x65 0x63 0x69 0x64 0x65 0x64 0x20    // 'decided ' \n\t0x68 0x65 0x20 0x77 0x61 0x6E 0x74 0x73    // 'he wants' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x68 0x6F    // ' the who' \n\t0x6C 0x65 0x20 0x68 0x6F 0x75 0x73 0x65    // 'le house' \n\t0x20 0x74 0x6F 0x20 0x68 0x69 0x6D 0x73    // ' to hims' \n\t0x65 0x6C 0x66 0x20 0x61 0x6E 0x64 0x20    // 'elf and ' \n\t0x73 0x65 0x74 0x73 0x20 0x6F 0x75 0x74    // 'sets out' \n\t0x20 0x74 0x6F 0x20 0x73 0x63 0x61 0x72    // ' to scar' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x6F 0x74    // 'e the ot' \n\t0x68 0x65 0x72 0x73 0x20 0x69 0x6E 0x74    // 'hers int' \n\t0x6F 0x20 0x6C 0x65 0x61 0x76 0x69 0x6E    // 'o leavin' \n\t0x67 0x2E 0x20 0x20 0x48 0x6F 0x77 0x20    // 'g.  How ' \n\t0x77 0x69 0x6C 0x6C 0x20 0x74 0x68 0x65    // 'will the' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x20 0x74    // ' other t' \n\t0x65 0x6E 0x61 0x6E 0x74 0x73 0x20 0x72    // 'enants r' \n\t0x65 0x61 0x63 0x74 0x20 0x77 0x68 0x65    // 'eact whe' \n\t0x6E 0x20 0x52 0x61 0x6D 0x75 0x20 0x6D    // 'n Ramu m' \n\t0x65 0x65 0x74 0x73 0x20 0x61 0x6E 0x6F    // 'eets ano' \n\t0x74 0x68 0x65 0x72 0x20 0x70 0x73 0x79    // 'ther psy' \n\t0x63 0x68 0x69 0x63 0x20 0x67 0x68 0x6F    // 'chic gho' \n\t0x73 0x74 0x20 0x61 0x6E 0x64 0x20 0x66    // 'st and f' \n\t0x61 0x6C 0x6C 0x73 0x20 0x6D 0x61 0x64    // 'alls mad' \n\t0x6C 0x79 0x20 0x69 0x6E 0x20 0x6C 0x6F    // 'ly in lo' \n\t0x76 0x65 0x3F                             // 've?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A0= ktipbio119\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A0, __HELP_NAME(\"ktipbio119\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A0, __HELP_NAME(\"ktipbio119\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio119\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x84 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0E 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A0, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x61 0x72 0x20 0x53 0x61    // '??Car Sa' \n\t0x6C 0x65 0x73 0x6D 0x61 0x6E 0x0D 0x0A    // 'lesman??' \n\t0x52 0x61 0x6D 0x75 0x20 0x77 0x6F 0x75    // 'Ramu wou' \n\t0x6C 0x64 0x20 0x6C 0x69 0x6B 0x65 0x20    // 'ld like ' \n\t0x74 0x6F 0x20 0x70 0x6C 0x61 0x79 0x20    // 'to play ' \n\t0x74 0x68 0x65 0x20 0x67 0x72 0x65 0x61    // 'the grea' \n\t0x74 0x65 0x73 0x74 0x20 0x63 0x61 0x72    // 'test car' \n\t0x20 0x73 0x61 0x6C 0x65 0x73 0x6D 0x61    // ' salesma' \n\t0x6E 0x20 0x6F 0x6E 0x20 0x65 0x61 0x72    // 'n on ear' \n\t0x74 0x68 0x2E 0x20 0x20 0x48 0x65 0x20    // 'th.  He ' \n\t0x69 0x73 0x20 0x73 0x75 0x63 0x68 0x20    // 'is such ' \n\t0x61 0x20 0x67 0x6F 0x6F 0x64 0x20 0x73    // 'a good s' \n\t0x61 0x6C 0x65 0x73 0x6D 0x61 0x6E 0x2C    // 'alesman,' \n\t0x20 0x74 0x68 0x65 0x20 0x66 0x61 0x63    // ' the fac' \n\t0x74 0x20 0x74 0x68 0x61 0x74 0x20 0x68    // 't that h' \n\t0x65 0x20 0x68 0x61 0x73 0x20 0x6E 0x6F    // 'e has no' \n\t0x20 0x63 0x61 0x72 0x73 0x20 0x6E 0x65    // ' cars ne' \n\t0x76 0x65 0x72 0x20 0x73 0x74 0x6F 0x70    // 'ver stop' \n\t0x73 0x20 0x68 0x69 0x6D 0x20 0x66 0x72    // 's him fr' \n\t0x6F 0x6D 0x20 0x6D 0x61 0x6B 0x69 0x6E    // 'om makin' \n\t0x67 0x20 0x61 0x20 0x73 0x61 0x6C 0x65    // 'g a sale' \n\t0x21 0x20 0x20 0x48 0x65 0x20 0x73 0x74    // '!  He st' \n\t0x61 0x6E 0x64 0x73 0x20 0x6F 0x6E 0x20    // 'ands on ' \n\t0x61 0x20 0x73 0x74 0x72 0x65 0x65 0x74    // 'a street' \n\t0x20 0x63 0x6F 0x72 0x6E 0x65 0x72 0x20    // ' corner ' \n\t0x61 0x6E 0x64 0x20 0x73 0x65 0x6C 0x6C    // 'and sell' \n\t0x73 0x20 0x63 0x61 0x72 0x73 0x2C 0x20    // 's cars, ' \n\t0x70 0x6F 0x74 0x74 0x65 0x72 0x79 0x2C    // 'pottery,' \n\t0x20 0x6C 0x61 0x6D 0x70 0x70 0x6F 0x73    // ' lamppos' \n\t0x74 0x73 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'ts, and ' \n\t0x61 0x6E 0x79 0x74 0x68 0x69 0x6E 0x67    // 'anything' \n\t0x20 0x65 0x6C 0x73 0x65 0x20 0x68 0x65    // ' else he' \n\t0x20 0x63 0x61 0x6E 0x20 0x74 0x68 0x69    // ' can thi' \n\t0x6E 0x6B 0x20 0x6F 0x66 0x20 0x74 0x6F    // 'nk of to' \n\t0x20 0x74 0x6F 0x75 0x72 0x69 0x73 0x74    // ' tourist' \n\t0x73 0x20 0x61 0x73 0x20 0x74 0x68 0x65    // 's as the' \n\t0x79 0x20 0x77 0x61 0x6C 0x6B 0x20 0x62    // 'y walk b' \n\t0x79 0x2E 0x20 0x20 0x57 0x69 0x6C 0x6C    // 'y.  Will' \n\t0x20 0x68 0x65 0x20 0x62 0x65 0x20 0x61    // ' he be a' \n\t0x62 0x6C 0x65 0x20 0x74 0x6F 0x20 0x63    // 'ble to c' \n\t0x68 0x61 0x72 0x6D 0x20 0x68 0x69 0x73    // 'harm his' \n\t0x20 0x77 0x61 0x79 0x20 0x6F 0x75 0x74    // ' way out' \n\t0x20 0x6F 0x66 0x20 0x67 0x6F 0x69 0x6E    // ' of goin' \n\t0x67 0x20 0x74 0x6F 0x20 0x6A 0x61 0x69    // 'g to jai' \n\t0x6C 0x20 0x77 0x68 0x65 0x6E 0x20 0x61    // 'l when a' \n\t0x20 0x70 0x6F 0x6C 0x69 0x63 0x65 0x6D    // ' policem' \n\t0x61 0x6E 0x20 0x62 0x65 0x63 0x6F 0x6D    // 'an becom' \n\t0x65 0x73 0x20 0x73 0x75 0x73 0x70 0x69    // 'es suspi' \n\t0x63 0x69 0x6F 0x75 0x73 0x3F              // 'cious?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A1= ktipbio120\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A1, __HELP_NAME(\"ktipbio120\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A1, __HELP_NAME(\"ktipbio120\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio120\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xF1 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0B 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A1, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6B 0x79 0x20 0x44 0x69    // '??Sky Di' \n\t0x76 0x65 0x72 0x0D 0x0A 0x52 0x61 0x6D    // 'ver??Ram' \n\t0x75 0x20 0x68 0x61 0x73 0x20 0x61 0x6C    // 'u has al' \n\t0x77 0x61 0x79 0x73 0x20 0x77 0x61 0x6E    // 'ways wan' \n\t0x74 0x65 0x64 0x20 0x74 0x6F 0x20 0x70    // 'ted to p' \n\t0x6C 0x61 0x79 0x20 0x74 0x68 0x65 0x20    // 'lay the ' \n\t0x70 0x61 0x72 0x74 0x20 0x6F 0x66 0x20    // 'part of ' \n\t0x61 0x20 0x73 0x6B 0x79 0x64 0x69 0x76    // 'a skydiv' \n\t0x65 0x72 0x2E 0x20 0x20 0x41 0x73 0x20    // 'er.  As ' \n\t0x61 0x20 0x67 0x72 0x65 0x61 0x74 0x20    // 'a great ' \n\t0x65 0x78 0x70 0x6C 0x6F 0x72 0x65 0x72    // 'explorer' \n\t0x2C 0x20 0x68 0x65 0x20 0x73 0x6B 0x79    // ', he sky' \n\t0x20 0x64 0x69 0x76 0x65 0x73 0x20 0x69    // ' dives i' \n\t0x6E 0x74 0x6F 0x20 0x61 0x20 0x72 0x65    // 'nto a re' \n\t0x6D 0x6F 0x74 0x65 0x20 0x6A 0x75 0x6E    // 'mote jun' \n\t0x67 0x6C 0x65 0x20 0x69 0x6E 0x20 0x73    // 'gle in s' \n\t0x65 0x61 0x72 0x63 0x68 0x20 0x6F 0x66    // 'earch of' \n\t0x20 0x61 0x20 0x6C 0x6F 0x73 0x74 0x20    // ' a lost ' \n\t0x61 0x6E 0x74 0x68 0x72 0x6F 0x70 0x6F    // 'anthropo' \n\t0x6C 0x6F 0x67 0x69 0x73 0x74 0x2E 0x20    // 'logist. ' \n\t0x20 0x55 0x6E 0x66 0x6F 0x72 0x74 0x75    // ' Unfortu' \n\t0x6E 0x61 0x74 0x65 0x6C 0x79 0x2C 0x20    // 'nately, ' \n\t0x68 0x69 0x73 0x20 0x70 0x61 0x72 0x61    // 'his para' \n\t0x63 0x68 0x75 0x74 0x65 0x20 0x64 0x6F    // 'chute do' \n\t0x65 0x73 0x6E 0x92 0x74 0x20 0x77 0x6F    // 'esnt wo' \n\t0x72 0x6B 0x20 0x61 0x6E 0x64 0x20 0x68    // 'rk and h' \n\t0x65 0x20 0x6C 0x61 0x6E 0x64 0x73 0x20    // 'e lands ' \n\t0x66 0x6C 0x61 0x74 0x20 0x6F 0x6E 0x20    // 'flat on ' \n\t0x74 0x68 0x65 0x20 0x6A 0x75 0x6E 0x67    // 'the jung' \n\t0x6C 0x65 0x20 0x66 0x6C 0x6F 0x6F 0x72    // 'le floor' \n\t0x21 0x20 0x20 0x53 0x70 0x6C 0x61 0x74    // '!  Splat' \n\t0x21 0x20 0x20 0x4C 0x75 0x63 0x6B 0x69    // '!  Lucki' \n\t0x6C 0x79 0x2C 0x20 0x6E 0x6F 0x20 0x62    // 'ly, no b' \n\t0x6F 0x6E 0x65 0x73 0x20 0x61 0x72 0x65    // 'ones are' \n\t0x20 0x62 0x72 0x6F 0x6B 0x65 0x6E 0x2C    // ' broken,' \n\t0x20 0x73 0x6F 0x20 0x68 0x65 0x20 0x62    // ' so he b' \n\t0x65 0x67 0x69 0x6E 0x73 0x20 0x68 0x69    // 'egins hi' \n\t0x73 0x20 0x73 0x65 0x61 0x72 0x63 0x68    // 's search' \n\t0x2E 0x20 0x20 0x41 0x73 0x20 0x68 0x65    // '.  As he' \n\t0x20 0x61 0x70 0x70 0x72 0x6F 0x61 0x63    // ' approac' \n\t0x68 0x65 0x73 0x20 0x61 0x20 0x77 0x6F    // 'hes a wo' \n\t0x6F 0x64 0x65 0x6E 0x20 0x62 0x72 0x69    // 'oden bri' \n\t0x64 0x67 0x65 0x2C 0x20 0x68 0x65 0x20    // 'dge, he ' \n\t0x68 0x65 0x61 0x72 0x73 0x20 0x6D 0x75    // 'hears mu' \n\t0x73 0x69 0x63 0x20 0x63 0x6F 0x6D 0x69    // 'sic comi' \n\t0x6E 0x67 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'ng from ' \n\t0x73 0x6F 0x6D 0x65 0x77 0x68 0x65 0x72    // 'somewher' \n\t0x65 0x20 0x6F 0x6E 0x20 0x74 0x68 0x65    // 'e on the' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x20 0x73    // ' other s' \n\t0x69 0x64 0x65 0x2E 0x20 0x20 0x57 0x69    // 'ide.  Wi' \n\t0x6C 0x6C 0x20 0x74 0x68 0x65 0x20 0x70    // 'll the p' \n\t0x65 0x6F 0x70 0x6C 0x65 0x20 0x68 0x65    // 'eople he' \n\t0x20 0x66 0x69 0x6E 0x64 0x73 0x20 0x74    // ' finds t' \n\t0x68 0x65 0x72 0x65 0x20 0x62 0x65 0x20    // 'here be ' \n\t0x66 0x72 0x69 0x65 0x6E 0x64 0x6C 0x79    // 'friendly' \n\t0x20 0x61 0x6E 0x64 0x20 0x77 0x69 0x6C    // ' and wil' \n\t0x6C 0x20 0x74 0x68 0x65 0x79 0x20 0x6B    // 'l they k' \n\t0x6E 0x6F 0x77 0x20 0x61 0x6E 0x79 0x74    // 'now anyt' \n\t0x68 0x69 0x6E 0x67 0x20 0x61 0x62 0x6F    // 'hing abo' \n\t0x75 0x74 0x20 0x74 0x68 0x65 0x20 0x6C    // 'ut the l' \n\t0x6F 0x73 0x74 0x20 0x61 0x6E 0x74 0x68    // 'ost anth' \n\t0x72 0x6F 0x70 0x6F 0x6C 0x6F 0x67 0x69    // 'ropologi' \n\t0x73 0x74 0x3F                             // 'st?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A2= ktipbio121\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A2, __HELP_NAME(\"ktipbio121\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A2, __HELP_NAME(\"ktipbio121\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio121\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x93 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8B 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A4, 0x0)\n\tBYTE\n\t0x03 0x03 0x6D 0x65 0x74 0x65 0x6F 0x72    // '??meteor' \n\t0x6F 0x6C 0x6F 0x67 0x79 0x0D 0x0A 0x52    // 'ology??R' \n\t0x61 0x6E 0x64 0x6F 0x6C 0x70 0x68 0x20    // 'andolph ' \n\t0x6D 0x6F 0x76 0x65 0x64 0x20 0x74 0x6F    // 'moved to' \n\t0x20 0x4C 0x6F 0x6E 0x64 0x6F 0x6E 0x20    // ' London ' \n\t0x61 0x6E 0x64 0x20 0x62 0x65 0x63 0x61    // 'and beca' \n\t0x6D 0x65 0x20 0x74 0x68 0x65 0x20 0x6D    // 'me the m' \n\t0x6F 0x73 0x74 0x20 0x70 0x6F 0x70 0x75    // 'ost popu' \n\t0x6C 0x61 0x72 0x20 0x77 0x65 0x61 0x74    // 'lar weat' \n\t0x68 0x65 0x72 0x20 0x6D 0x61 0x6E 0x20    // 'her man ' \n\t0x69 0x6E 0x20 0x45 0x6E 0x67 0x6C 0x61    // 'in Engla' \n\t0x6E 0x64 0x2E 0x20 0x20 0x48 0x69 0x73    // 'nd.  His' \n\t0x20 0x66 0x69 0x76 0x65 0x2D 0x64 0x61    // ' five-da' \n\t0x79 0x20 0x66 0x6F 0x72 0x65 0x63 0x61    // 'y foreca' \n\t0x73 0x74 0x73 0x20 0x77 0x65 0x72 0x65    // 'sts were' \n\t0x20 0x61 0x6C 0x77 0x61 0x79 0x73 0x20    // ' always ' \n\t0x72 0x69 0x67 0x68 0x74 0x2E 0x20 0x53    // 'right. S' \n\t0x6F 0x6F 0x6E 0x20 0x68 0x69 0x73 0x20    // 'oon his ' \n\t0x70 0x6F 0x70 0x75 0x6C 0x61 0x72 0x69    // 'populari' \n\t0x74 0x79 0x20 0x62 0x65 0x63 0x61 0x6D    // 'ty becam' \n\t0x65 0x20 0x75 0x6E 0x62 0x65 0x61 0x72    // 'e unbear' \n\t0x61 0x62 0x6C 0x65 0x2E 0x20 0x20 0x50    // 'able.  P' \n\t0x65 0x6F 0x70 0x6C 0x65 0x20 0x74 0x68    // 'eople th' \n\t0x72 0x6F 0x75 0x67 0x68 0x6F 0x75 0x74    // 'roughout' \n\t0x20 0x45 0x75 0x72 0x6F 0x70 0x65 0x20    // ' Europe ' \n\t0x77 0x61 0x6E 0x74 0x65 0x64 0x20 0x74    // 'wanted t' \n\t0x6F 0x20 0x6B 0x6E 0x6F 0x77 0x20 0x77    // 'o know w' \n\t0x68 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // 'hat the ' \n\t0x77 0x65 0x61 0x74 0x68 0x65 0x72 0x20    // 'weather ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x62 0x65    // 'would be' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x69 0x6E    // ' like in' \n\t0x20 0x74 0x77 0x6F 0x20 0x77 0x65 0x65    // ' two wee' \n\t0x6B 0x73 0x2C 0x20 0x69 0x6E 0x20 0x61    // 'ks, in a' \n\t0x20 0x6D 0x6F 0x6E 0x74 0x68 0x2C 0x20    // ' month, ' \n\t0x61 0x6E 0x64 0x20 0x65 0x76 0x65 0x6E    // 'and even' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x79 0x65    // ' in a ye' \n\t0x61 0x72 0x2E 0x20 0x20 0x54 0x68 0x65    // 'ar.  The' \n\t0x20 0x70 0x72 0x65 0x73 0x73 0x75 0x72    // ' pressur' \n\t0x65 0x20 0x77 0x61 0x73 0x20 0x74 0x6F    // 'e was to' \n\t0x6F 0x20 0x6D 0x75 0x63 0x68 0x20 0x66    // 'o much f' \n\t0x6F 0x72 0x20 0x52 0x61 0x6E 0x64 0x6F    // 'or Rando' \n\t0x6C 0x70 0x68 0x2E 0x20 0x48 0x65 0x20    // 'lph. He ' \n\t0x6C 0x65 0x66 0x74 0x20 0x4C 0x6F 0x6E    // 'left Lon' \n\t0x64 0x6F 0x6E 0x2C 0x20 0x45 0x6E 0x67    // 'don, Eng' \n\t0x6C 0x61 0x6E 0x64 0x20 0x61 0x6E 0x64    // 'land and' \n\t0x20 0x6D 0x6F 0x76 0x65 0x64 0x20 0x74    // ' moved t' \n\t0x6F 0x20 0x4E 0x65 0x77 0x20 0x4C 0x6F    // 'o New Lo' \n\t0x6E 0x64 0x6F 0x6E 0x2C 0x20 0x43 0x6F    // 'ndon, Co' \n\t0x6E 0x6E 0x65 0x63 0x74 0x69 0x63 0x75    // 'nnecticu' \n\t0x74 0x2E 0x20 0x0D 0x0A 0x41 0x66 0x72    // 't. ??Afr' \n\t0x61 0x69 0x64 0x20 0x6F 0x66 0x20 0x62    // 'aid of b' \n\t0x65 0x69 0x6E 0x67 0x20 0x72 0x65 0x63    // 'eing rec' \n\t0x6F 0x67 0x6E 0x69 0x7A 0x65 0x64 0x20    // 'ognized ' \n\t0x62 0x79 0x20 0x68 0x69 0x73 0x20 0x61    // 'by his a' \n\t0x64 0x6D 0x69 0x72 0x65 0x72 0x73 0x20    // 'dmirers ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x55    // 'in the U' \n\t0x6E 0x69 0x74 0x65 0x64 0x20 0x53 0x74    // 'nited St' \n\t0x61 0x74 0x65 0x73 0x2C 0x20 0x65 0x61    // 'ates, ea' \n\t0x63 0x68 0x20 0x64 0x61 0x79 0x20 0x68    // 'ch day h' \n\t0x65 0x20 0x70 0x72 0x65 0x74 0x65 0x6E    // 'e preten' \n\t0x64 0x65 0x64 0x20 0x74 0x6F 0x20 0x62    // 'ded to b' \n\t0x65 0x20 0x73 0x6F 0x6D 0x65 0x6F 0x6E    // 'e someon' \n\t0x65 0x20 0x64 0x69 0x66 0x66 0x65 0x72    // 'e differ' \n\t0x65 0x6E 0x74 0x2E 0x20 0x20 0x48 0x65    // 'ent.  He' \n\t0x20 0x6C 0x6F 0x76 0x65 0x64 0x20 0x70    // ' loved p' \n\t0x72 0x65 0x74 0x65 0x6E 0x64 0x69 0x6E    // 'retendin' \n\t0x67 0x20 0x74 0x6F 0x20 0x62 0x65 0x20    // 'g to be ' \n\t0x73 0x6F 0x6D 0x65 0x6F 0x6E 0x65 0x20    // 'someone ' \n\t0x65 0x6C 0x73 0x65 0x2C 0x20 0x61 0x6E    // 'else, an' \n\t0x64 0x20 0x73 0x6F 0x6F 0x6E 0x20 0x72    // 'd soon r' \n\t0x65 0x61 0x6C 0x69 0x7A 0x65 0x64 0x20    // 'ealized ' \n\t0x74 0x68 0x61 0x74 0x20 0x68 0x65 0x20    // 'that he ' \n\t0x63 0x6F 0x75 0x6C 0x64 0x20 0x65 0x76    // 'could ev' \n\t0x65 0x6E 0x20 0x6D 0x61 0x6B 0x65 0x20    // 'en make ' \n\t0x61 0x20 0x63 0x61 0x72 0x65 0x65 0x72    // 'a career' \n\t0x20 0x6F 0x75 0x74 0x20 0x6F 0x66 0x20    // ' out of ' \n\t0x69 0x74 0x21 0x20 0x20 0x54 0x68 0x61    // 'it!  Tha' \n\t0x74 0x92 0x73 0x20 0x68 0x6F 0x77 0x20    // 'ts how ' \n\t0x52 0x61 0x6E 0x64 0x6F 0x6C 0x70 0x68    // 'Randolph' \n\t0x20 0x62 0x65 0x63 0x61 0x6D 0x65 0x20    // ' became ' \n\t0x61 0x20 0x70 0x72 0x6F 0x66 0x65 0x73    // 'a profes' \n\t0x73 0x69 0x6F 0x6E 0x61 0x6C 0x20 0x61    // 'sional a' \n\t0x63 0x74 0x6F 0x72 0x2E                   // 'ctor.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A3= ktipbio122\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A3, __HELP_NAME(\"ktipbio122\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A3, __HELP_NAME(\"ktipbio122\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_94=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio122\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_94=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_94=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_94, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB3 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_94=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_94, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x72 0x2E 0x20 0x53 0x70    // '??Mr. Sp' \n\t0x6F 0x6F 0x6B 0x79 0x2C 0x20 0x74 0x68    // 'ooky, th' \n\t0x65 0x20 0x46 0x61 0x74 0x68 0x65 0x72    // 'e Father' \n\t0x0D 0x0A 0x52 0x61 0x6E 0x64 0x6F 0x6C    // '??Randol' \n\t0x70 0x68 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'ph would' \n\t0x20 0x6C 0x6F 0x76 0x65 0x20 0x74 0x6F    // ' love to' \n\t0x20 0x70 0x6C 0x61 0x79 0x20 0x74 0x68    // ' play th' \n\t0x65 0x20 0x72 0x6F 0x6C 0x65 0x20 0x6F    // 'e role o' \n\t0x66 0x20 0x61 0x20 0x66 0x61 0x74 0x68    // 'f a fath' \n\t0x65 0x72 0x2E 0x20 0x20 0x48 0x65 0x20    // 'er.  He ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x62 0x65    // 'would be' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x6F 0x6F    // ' the coo' \n\t0x6C 0x65 0x73 0x74 0x20 0x64 0x61 0x64    // 'lest dad' \n\t0x97 0x61 0x6C 0x6C 0x20 0x74 0x68 0x65    // 'all the' \n\t0x20 0x6B 0x69 0x64 0x73 0x20 0x77 0x6F    // ' kids wo' \n\t0x75 0x6C 0x64 0x20 0x6C 0x6F 0x76 0x65    // 'uld love' \n\t0x20 0x74 0x6F 0x20 0x68 0x61 0x76 0x65    // ' to have' \n\t0x20 0x68 0x69 0x6D 0x20 0x61 0x73 0x20    // ' him as ' \n\t0x74 0x68 0x65 0x69 0x72 0x20 0x66 0x61    // 'their fa' \n\t0x74 0x68 0x65 0x72 0x2E 0x20 0x20 0x48    // 'ther.  H' \n\t0x65 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 'e would ' \n\t0x62 0x65 0x20 0x61 0x20 0x66 0x61 0x74    // 'be a fat' \n\t0x68 0x65 0x72 0x20 0x77 0x69 0x74 0x68    // 'her with' \n\t0x20 0x75 0x6E 0x62 0x65 0x6C 0x69 0x65    // ' unbelie' \n\t0x76 0x61 0x62 0x6C 0x65 0x20 0x6B 0x6E    // 'vable kn' \n\t0x6F 0x77 0x6C 0x65 0x64 0x67 0x65 0x20    // 'owledge ' \n\t0x61 0x6E 0x64 0x20 0x67 0x72 0x65 0x61    // 'and grea' \n\t0x74 0x20 0x73 0x74 0x6F 0x72 0x69 0x65    // 't storie' \n\t0x73 0x20 0x74 0x6F 0x20 0x74 0x65 0x6C    // 's to tel' \n\t0x6C 0x20 0x61 0x62 0x6F 0x75 0x74 0x20    // 'l about ' \n\t0x68 0x69 0x73 0x20 0x74 0x72 0x69 0x70    // 'his trip' \n\t0x73 0x20 0x61 0x72 0x6F 0x75 0x6E 0x64    // 's around' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x6F 0x72    // ' the wor' \n\t0x6C 0x64 0x2E 0x20 0x20 0x48 0x65 0x20    // 'ld.  He ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x62 0x65    // 'would be' \n\t0x20 0x61 0x20 0x66 0x61 0x74 0x68 0x65    // ' a fathe' \n\t0x72 0x20 0x77 0x68 0x6F 0x20 0x69 0x73    // 'r who is' \n\t0x20 0x75 0x70 0x2D 0x74 0x6F 0x2D 0x64    // ' up-to-d' \n\t0x61 0x74 0x65 0x20 0x6F 0x6E 0x20 0x74    // 'ate on t' \n\t0x68 0x65 0x20 0x64 0x6F 0x73 0x20 0x61    // 'he dos a' \n\t0x6E 0x64 0x20 0x64 0x6F 0x6E 0x92 0x74    // 'nd dont' \n\t0x73 0x20 0x6F 0x66 0x20 0x66 0x61 0x73    // 's of fas' \n\t0x68 0x69 0x6F 0x6E 0x2E 0x20 0x20 0x4D    // 'hion.  M' \n\t0x6F 0x73 0x74 0x20 0x6F 0x66 0x20 0x61    // 'ost of a' \n\t0x6C 0x6C 0x2C 0x20 0x68 0x65 0x20 0x77    // 'll, he w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x62 0x65 0x20    // 'ould be ' \n\t0x61 0x20 0x66 0x61 0x74 0x68 0x65 0x72    // 'a father' \n\t0x20 0x77 0x68 0x6F 0x20 0x64 0x6F 0x65    // ' who doe' \n\t0x73 0x6E 0x92 0x74 0x20 0x65 0x6D 0x62    // 'snt emb' \n\t0x61 0x72 0x72 0x61 0x73 0x73 0x20 0x68    // 'arrass h' \n\t0x69 0x73 0x20 0x6B 0x69 0x64 0x73 0x20    // 'is kids ' \n\t0x69 0x6E 0x20 0x66 0x72 0x6F 0x6E 0x74    // 'in front' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x69    // ' of thei' \n\t0x72 0x20 0x66 0x72 0x69 0x65 0x6E 0x64    // 'r friend' \n\t0x73 0x2E 0x20 0x0D 0x0A 0x49 0x73 0x20    // 's. ??Is ' \n\t0x74 0x68 0x69 0x73 0x20 0x61 0x73 0x6B    // 'this ask' \n\t0x69 0x6E 0x67 0x20 0x74 0x6F 0x6F 0x20    // 'ing too ' \n\t0x6D 0x75 0x63 0x68 0x3F 0x20 0x43 0x6F    // 'much? Co' \n\t0x75 0x6C 0x64 0x20 0x52 0x61 0x6E 0x64    // 'uld Rand' \n\t0x6F 0x6C 0x70 0x68 0x20 0x6C 0x6F 0x73    // 'olph los' \n\t0x65 0x20 0x68 0x69 0x73 0x20 0x93 0x63    // 'e his c' \n\t0x6F 0x6F 0x6C 0x20 0x64 0x75 0x64 0x65    // 'ool dude' \n\t0x94 0x20 0x72 0x65 0x70 0x75 0x74 0x61    // ' reputa' \n\t0x74 0x69 0x6F 0x6E 0x20 0x62 0x79 0x20    // 'tion by ' \n\t0x73 0x75 0x72 0x70 0x72 0x69 0x73 0x69    // 'surprisi' \n\t0x6E 0x67 0x20 0x68 0x69 0x73 0x20 0x6B    // 'ng his k' \n\t0x69 0x64 0x73 0x20 0x61 0x74 0x20 0x74    // 'ids at t' \n\t0x68 0x65 0x20 0x6D 0x61 0x6C 0x6C 0x3F    // 'he mall?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A4= ktipbio123\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A4, __HELP_NAME(\"ktipbio123\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A4, __HELP_NAME(\"ktipbio123\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio123\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xC6 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x63 0x02 0x00 0x82    // '????c??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A5, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x6F 0x64 0x79 0x67 0x75    // '??Bodygu' \n\t0x61 0x72 0x64 0x0D 0x0A 0x52 0x61 0x6E    // 'ard??Ran' \n\t0x64 0x6F 0x6C 0x70 0x68 0x92 0x73 0x20    // 'dolphs ' \n\t0x64 0x65 0x73 0x69 0x72 0x65 0x20 0x74    // 'desire t' \n\t0x6F 0x20 0x62 0x65 0x63 0x6F 0x6D 0x65    // 'o become' \n\t0x20 0x61 0x20 0x62 0x6F 0x64 0x79 0x67    // ' a bodyg' \n\t0x75 0x61 0x72 0x64 0x20 0x63 0x6F 0x6D    // 'uard com' \n\t0x65 0x73 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'es from ' \n\t0x68 0x69 0x73 0x20 0x64 0x61 0x79 0x73    // 'his days' \n\t0x20 0x61 0x73 0x20 0x61 0x20 0x66 0x61    // ' as a fa' \n\t0x6D 0x6F 0x75 0x73 0x20 0x77 0x65 0x61    // 'mous wea' \n\t0x74 0x68 0x65 0x72 0x20 0x6D 0x61 0x6E    // 'ther man' \n\t0x20 0x62 0x61 0x63 0x6B 0x20 0x69 0x6E    // ' back in' \n\t0x20 0x4C 0x6F 0x6E 0x64 0x6F 0x6E 0x2C    // ' London,' \n\t0x20 0x45 0x6E 0x67 0x6C 0x61 0x6E 0x64    // ' England' \n\t0x2E 0x20 0x20 0x48 0x65 0x20 0x77 0x69    // '.  He wi' \n\t0x73 0x68 0x65 0x73 0x20 0x68 0x65 0x92    // 'shes he' \n\t0x64 0x20 0x68 0x61 0x64 0x20 0x73 0x6F    // 'd had so' \n\t0x6D 0x65 0x6F 0x6E 0x65 0x20 0x74 0x6F    // 'meone to' \n\t0x20 0x70 0x72 0x6F 0x74 0x65 0x63 0x74    // ' protect' \n\t0x20 0x68 0x69 0x6D 0x20 0x66 0x72 0x6F    // ' him fro' \n\t0x6D 0x20 0x61 0x6C 0x6C 0x20 0x6F 0x66    // 'm all of' \n\t0x20 0x74 0x68 0x6F 0x73 0x65 0x20 0x61    // ' those a' \n\t0x6E 0x6E 0x6F 0x79 0x69 0x6E 0x67 0x20    // 'nnoying ' \n\t0x77 0x65 0x61 0x74 0x68 0x65 0x72 0x20    // 'weather ' \n\t0x66 0x61 0x6E 0x73 0x2E 0x20 0x20 0x49    // 'fans.  I' \n\t0x6D 0x61 0x67 0x69 0x6E 0x65 0x21 0x20    // 'magine! ' \n\t0x20 0x4E 0x6F 0x20 0x6F 0x6E 0x65 0x20    // ' No one ' \n\t0x74 0x6F 0x20 0x70 0x75 0x73 0x68 0x20    // 'to push ' \n\t0x79 0x6F 0x75 0x2C 0x20 0x73 0x74 0x65    // 'you, ste' \n\t0x70 0x20 0x6F 0x6E 0x20 0x79 0x6F 0x75    // 'p on you' \n\t0x72 0x20 0x74 0x6F 0x65 0x73 0x2C 0x20    // 'r toes, ' \n\t0x61 0x6E 0x64 0x20 0x62 0x65 0x67 0x20    // 'and beg ' \n\t0x66 0x6F 0x72 0x20 0x79 0x6F 0x75 0x72    // 'for your' \n\t0x20 0x61 0x75 0x74 0x6F 0x67 0x72 0x61    // ' autogra' \n\t0x70 0x68 0x2E 0x20 0x20 0x52 0x61 0x6E    // 'ph.  Ran' \n\t0x64 0x6F 0x6C 0x70 0x68 0x20 0x74 0x68    // 'dolph th' \n\t0x69 0x6E 0x6B 0x73 0x20 0x74 0x68 0x65    // 'inks the' \n\t0x20 0x70 0x65 0x72 0x66 0x65 0x63 0x74    // ' perfect' \n\t0x20 0x62 0x6F 0x64 0x79 0x67 0x75 0x61    // ' bodygua' \n\t0x72 0x64 0x20 0x73 0x68 0x6F 0x75 0x6C    // 'rd shoul' \n\t0x64 0x20 0x62 0x65 0x20 0x6B 0x6E 0x6F    // 'd be kno' \n\t0x77 0x6C 0x65 0x64 0x67 0x65 0x61 0x62    // 'wledgeab' \n\t0x6C 0x65 0x97 0x68 0x65 0x20 0x73 0x68    // 'lehe sh' \n\t0x6F 0x75 0x6C 0x64 0x20 0x6B 0x6E 0x6F    // 'ould kno' \n\t0x77 0x20 0x61 0x6C 0x6C 0x20 0x6F 0x66    // 'w all of' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x68 0x6F    // ' the sho' \n\t0x72 0x74 0x63 0x75 0x74 0x73 0x20 0x74    // 'rtcuts t' \n\t0x6F 0x20 0x61 0x76 0x6F 0x69 0x64 0x20    // 'o avoid ' \n\t0x62 0x69 0x67 0x20 0x63 0x72 0x6F 0x77    // 'big crow' \n\t0x64 0x73 0x2E 0x20 0x20 0x41 0x20 0x62    // 'ds.  A b' \n\t0x6F 0x64 0x79 0x67 0x75 0x61 0x72 0x64    // 'odyguard' \n\t0x20 0x73 0x68 0x6F 0x75 0x6C 0x64 0x20    // ' should ' \n\t0x61 0x6C 0x73 0x6F 0x20 0x62 0x65 0x20    // 'also be ' \n\t0x77 0x69 0x73 0x65 0x20 0x61 0x6E 0x64    // 'wise and' \n\t0x20 0x62 0x72 0x61 0x76 0x65 0x2C 0x20    // ' brave, ' \n\t0x61 0x6E 0x64 0x20 0x73 0x68 0x6F 0x75    // 'and shou' \n\t0x6C 0x64 0x20 0x62 0x65 0x20 0x61 0x62    // 'ld be ab' \n\t0x6C 0x65 0x20 0x74 0x6F 0x20 0x73 0x74    // 'le to st' \n\t0x61 0x79 0x20 0x61 0x6C 0x65 0x72 0x74    // 'ay alert' \n\t0x20 0x61 0x6C 0x6C 0x20 0x74 0x68 0x65    // ' all the' \n\t0x20 0x74 0x69 0x6D 0x65 0x3A 0x20 0x6E    // ' time: n' \n\t0x6F 0x20 0x6E 0x61 0x70 0x73 0x20 0x61    // 'o naps a' \n\t0x6C 0x6C 0x6F 0x77 0x65 0x64 0x2E 0x20    // 'llowed. ' \n\t0x20 0x4F 0x6E 0x65 0x20 0x6D 0x6F 0x72    // ' One mor' \n\t0x65 0x20 0x74 0x68 0x69 0x6E 0x67 0x3A    // 'e thing:' \n\t0x20 0x6E 0x6F 0x20 0x67 0x6F 0x6F 0x64    // ' no good' \n\t0x20 0x62 0x6F 0x64 0x79 0x67 0x75 0x61    // ' bodygua' \n\t0x72 0x64 0x20 0x73 0x68 0x6F 0x75 0x6C    // 'rd shoul' \n\t0x64 0x20 0x62 0x65 0x20 0x61 0x66 0x72    // 'd be afr' \n\t0x61 0x69 0x64 0x20 0x6F 0x66 0x20 0x68    // 'aid of h' \n\t0x65 0x69 0x67 0x68 0x74 0x73 0x2E 0x20    // 'eights. ' \n\t0x20 0x54 0x68 0x61 0x74 0x20 0x69 0x6E    // ' That in' \n\t0x63 0x6C 0x75 0x64 0x65 0x73 0x20 0x64    // 'cludes d' \n\t0x75 0x72 0x69 0x6E 0x67 0x20 0x70 0x6C    // 'uring pl' \n\t0x61 0x6E 0x65 0x20 0x74 0x72 0x69 0x70    // 'ane trip' \n\t0x73 0x2E 0x20 0x0D 0x0A 0x42 0x75 0x74    // 's. ??But' \n\t0x20 0x52 0x61 0x6E 0x64 0x6F 0x6C 0x70    // ' Randolp' \n\t0x68 0x20 0x66 0x6F 0x72 0x67 0x6F 0x74    // 'h forgot' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x61 0x20    // ' that a ' \n\t0x70 0x65 0x72 0x66 0x65 0x63 0x74 0x20    // 'perfect ' \n\t0x62 0x6F 0x64 0x79 0x67 0x75 0x61 0x72    // 'bodyguar' \n\t0x64 0x20 0x63 0x61 0x6E 0x92 0x74 0x20    // 'd cant ' \n\t0x6C 0x61 0x75 0x67 0x68 0x2E 0x20 0x20    // 'laugh.  ' \n\t0x43 0x6F 0x75 0x6C 0x64 0x20 0x74 0x68    // 'Could th' \n\t0x69 0x73 0x20 0x70 0x75 0x74 0x20 0x73    // 'is put s' \n\t0x6F 0x6D 0x65 0x6F 0x6E 0x65 0x92 0x73    // 'omeones' \n\t0x20 0x6C 0x69 0x66 0x65 0x20 0x69 0x6E    // ' life in' \n\t0x20 0x64 0x61 0x6E 0x67 0x65 0x72 0x3F    // ' danger?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A5= ktipbio124\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A5, __HELP_NAME(\"ktipbio124\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A5, __HELP_NAME(\"ktipbio124\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio124\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x80 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x82 0x02 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xAF 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x82 0x02 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A6, 0x0)\n\tBYTE\n\t0x03 0x03 0x4C 0x69 0x66 0x65 0x20 0x49    // '??Life I' \n\t0x6E 0x73 0x75 0x72 0x61 0x6E 0x63 0x65    // 'nsurance' \n\t0x20 0x53 0x61 0x6C 0x65 0x73 0x6D 0x61    // ' Salesma' \n\t0x6E 0x0D 0x0A 0x52 0x61 0x6E 0x64 0x6F    // 'n??Rando' \n\t0x6C 0x70 0x68 0x20 0x64 0x72 0x65 0x61    // 'lph drea' \n\t0x6D 0x73 0x20 0x6F 0x66 0x20 0x74 0x68    // 'ms of th' \n\t0x65 0x20 0x64 0x61 0x79 0x20 0x77 0x68    // 'e day wh' \n\t0x65 0x6E 0x20 0x68 0x65 0x20 0x77 0x69    // 'en he wi' \n\t0x6C 0x6C 0x20 0x70 0x6C 0x61 0x79 0x20    // 'll play ' \n\t0x61 0x20 0x73 0x75 0x70 0x65 0x72 0x68    // 'a superh' \n\t0x65 0x72 0x6F 0x2E 0x20 0x20 0x57 0x68    // 'ero.  Wh' \n\t0x61 0x74 0x20 0x64 0x6F 0x65 0x73 0x20    // 'at does ' \n\t0x61 0x20 0x6C 0x69 0x66 0x65 0x20 0x69    // 'a life i' \n\t0x6E 0x73 0x75 0x72 0x61 0x6E 0x63 0x65    // 'nsurance' \n\t0x20 0x73 0x61 0x6C 0x65 0x73 0x6D 0x61    // ' salesma' \n\t0x6E 0x20 0x68 0x61 0x76 0x65 0x20 0x74    // 'n have t' \n\t0x6F 0x20 0x64 0x6F 0x20 0x77 0x69 0x74    // 'o do wit' \n\t0x68 0x20 0x73 0x75 0x70 0x65 0x72 0x68    // 'h superh' \n\t0x65 0x72 0x6F 0x65 0x73 0x2C 0x20 0x79    // 'eroes, y' \n\t0x6F 0x75 0x20 0x6D 0x61 0x79 0x20 0x61    // 'ou may a' \n\t0x73 0x6B 0x3F 0x20 0x20 0x57 0x65 0x27    // 'sk?  We'' \n\t0x72 0x65 0x20 0x6E 0x6F 0x74 0x20 0x74    // 're not t' \n\t0x61 0x6C 0x6B 0x69 0x6E 0x67 0x20 0x61    // 'alking a' \n\t0x62 0x6F 0x75 0x74 0x20 0x79 0x6F 0x75    // 'bout you' \n\t0x72 0x20 0x6F 0x72 0x64 0x69 0x6E 0x61    // 'r ordina' \n\t0x72 0x79 0x20 0x64 0x6F 0x6F 0x72 0x2D    // 'ry door-' \n\t0x74 0x6F 0x2D 0x64 0x6F 0x6F 0x72 0x20    // 'to-door ' \n\t0x73 0x61 0x6C 0x65 0x73 0x6D 0x61 0x6E    // 'salesman' \n\t0x2E 0x20 0x20 0x57 0x65 0x27 0x72 0x65    // '.  We're' \n\t0x20 0x74 0x61 0x6C 0x6B 0x69 0x6E 0x67    // ' talking' \n\t0x20 0x61 0x62 0x6F 0x75 0x74 0x20 0x73    // ' about s' \n\t0x65 0x6C 0x6C 0x69 0x6E 0x67 0x20 0x69    // 'elling i' \n\t0x6E 0x73 0x75 0x72 0x61 0x6E 0x63 0x65    // 'nsurance' \n\t0x20 0x74 0x6F 0x20 0x61 0x6E 0x79 0x6F    // ' to anyo' \n\t0x6E 0x65 0x2C 0x20 0x61 0x6E 0x79 0x77    // 'ne, anyw' \n\t0x68 0x65 0x72 0x65 0x2C 0x20 0x61 0x6E    // 'here, an' \n\t0x79 0x74 0x69 0x6D 0x65 0x2E 0x20 0x20    // 'ytime.  ' \n\t0x59 0x6F 0x75 0x20 0x63 0x6F 0x75 0x6C    // 'You coul' \n\t0x64 0x20 0x62 0x65 0x20 0x73 0x6C 0x69    // 'd be sli' \n\t0x70 0x70 0x69 0x6E 0x67 0x20 0x6F 0x6E    // 'pping on' \n\t0x20 0x74 0x68 0x65 0x20 0x66 0x6C 0x6F    // ' the flo' \n\t0x6F 0x72 0x20 0x61 0x74 0x20 0x74 0x68    // 'or at th' \n\t0x65 0x20 0x6D 0x61 0x6C 0x6C 0x2C 0x20    // 'e mall, ' \n\t0x70 0x61 0x73 0x73 0x69 0x6E 0x67 0x20    // 'passing ' \n\t0x6F 0x75 0x74 0x20 0x61 0x66 0x74 0x65    // 'out afte' \n\t0x72 0x20 0x61 0x20 0x6D 0x65 0x61 0x6C    // 'r a meal' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x6C 0x6F 0x63 0x61 0x6C 0x20 0x64 0x69    // 'local di' \n\t0x6E 0x65 0x72 0x2C 0x20 0x6F 0x72 0x20    // 'ner, or ' \n\t0x66 0x61 0x6C 0x6C 0x69 0x6E 0x67 0x20    // 'falling ' \n\t0x6F 0x66 0x66 0x20 0x61 0x20 0x62 0x72    // 'off a br' \n\t0x69 0x64 0x67 0x65 0x2E 0x20 0x20 0x44    // 'idge.  D' \n\t0x6F 0x6E 0x92 0x74 0x20 0x77 0x6F 0x72    // 'ont wor' \n\t0x72 0x79 0x21 0x20 0x20 0x52 0x61 0x6E    // 'ry!  Ran' \n\t0x64 0x6F 0x6C 0x70 0x68 0x2C 0x20 0x79    // 'dolph, y' \n\t0x6F 0x75 0x72 0x20 0x6C 0x69 0x66 0x65    // 'our life' \n\t0x20 0x69 0x6E 0x73 0x75 0x72 0x61 0x6E    // ' insuran' \n\t0x63 0x65 0x20 0x73 0x61 0x6C 0x65 0x73    // 'ce sales' \n\t0x6D 0x61 0x6E 0x2C 0x20 0x77 0x69 0x6C    // 'man, wil' \n\t0x6C 0x20 0x69 0x6E 0x74 0x65 0x72 0x72    // 'l interr' \n\t0x75 0x70 0x74 0x20 0x79 0x6F 0x75 0x72    // 'upt your' \n\t0x20 0x66 0x61 0x6C 0x6C 0x20 0x6A 0x75    // ' fall ju' \n\t0x73 0x74 0x20 0x69 0x6E 0x20 0x74 0x69    // 'st in ti' \n\t0x6D 0x65 0x20 0x74 0x6F 0x20 0x6F 0x66    // 'me to of' \n\t0x66 0x65 0x72 0x20 0x79 0x6F 0x75 0x20    // 'fer you ' \n\t0x74 0x68 0x65 0x20 0x62 0x65 0x73 0x74    // 'the best' \n\t0x20 0x63 0x6F 0x6D 0x62 0x6F 0x20 0x6C    // ' combo l' \n\t0x69 0x66 0x65 0x20 0x69 0x6E 0x73 0x75    // 'ife insu' \n\t0x72 0x61 0x6E 0x63 0x65 0x20 0x70 0x61    // 'rance pa' \n\t0x63 0x6B 0x61 0x67 0x65 0x2E 0x20 0x20    // 'ckage.  ' \n\t0x57 0x68 0x69 0x63 0x68 0x20 0x69 0x73    // 'Which is' \n\t0x2C 0x20 0x62 0x79 0x20 0x74 0x68 0x65    // ', by the' \n\t0x20 0x77 0x61 0x79 0x2C 0x20 0x61 0x6C    // ' way, al' \n\t0x6D 0x6F 0x73 0x74 0x20 0x70 0x65 0x72    // 'most per' \n\t0x66 0x65 0x63 0x74 0x2E 0x20 0x20 0x54    // 'fect.  T' \n\t0x68 0x65 0x72 0x65 0x92 0x73 0x20 0x6F    // 'heres o' \n\t0x6E 0x6C 0x79 0x20 0x6F 0x6E 0x65 0x20    // 'nly one ' \n\t0x74 0x68 0x69 0x6E 0x67 0x20 0x74 0x68    // 'thing th' \n\t0x61 0x74 0x20 0x69 0x73 0x6E 0x92 0x74    // 'at isnt' \n\t0x20 0x63 0x6F 0x76 0x65 0x72 0x65 0x64    // ' covered' \n\t0x2E 0x20 0x0D 0x0A 0x49 0x73 0x20 0x69    // '. ??Is i' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x70 0x6C    // 't the pl' \n\t0x61 0x6E 0x65 0x20 0x63 0x72 0x61 0x73    // 'ane cras' \n\t0x68 0x20 0x6F 0x72 0x20 0x74 0x68 0x65    // 'h or the' \n\t0x20 0x6C 0x61 0x75 0x67 0x68 0x69 0x6E    // ' laughin' \n\t0x67 0x20 0x61 0x74 0x74 0x61 0x63 0x6B    // 'g attack' \n\t0x3F                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A6= ktipbio125\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A6, __HELP_NAME(\"ktipbio125\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A6, __HELP_NAME(\"ktipbio125\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio125\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x1A 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x00 0x03 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x07 0x02 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A7, 0x0)\n\tBYTE\n\t0x03 0x03 0x73 0x65 0x6C 0x66 0x2D 0x64    // '??self-d' \n\t0x65 0x66 0x65 0x6E 0x73 0x65 0x20 0x65    // 'efense e' \n\t0x78 0x70 0x65 0x72 0x74 0x0D 0x0A 0x52    // 'xpert??R' \n\t0x6F 0x78 0x61 0x6E 0x6E 0x65 0x20 0x64    // 'oxanne d' \n\t0x69 0x64 0x6E 0x92 0x74 0x20 0x70 0x6C    // 'idnt pl' \n\t0x61 0x6E 0x20 0x74 0x6F 0x20 0x62 0x65    // 'an to be' \n\t0x20 0x61 0x20 0x6B 0x61 0x72 0x61 0x74    // ' a karat' \n\t0x65 0x20 0x74 0x65 0x61 0x63 0x68 0x65    // 'e teache' \n\t0x72 0x2E 0x20 0x20 0x53 0x68 0x65 0x20    // 'r.  She ' \n\t0x77 0x61 0x73 0x20 0x67 0x6F 0x69 0x6E    // 'was goin' \n\t0x67 0x20 0x74 0x6F 0x20 0x62 0x65 0x20    // 'g to be ' \n\t0x61 0x6E 0x20 0x65 0x6E 0x67 0x69 0x6E    // 'an engin' \n\t0x65 0x65 0x72 0x20 0x61 0x6E 0x64 0x20    // 'eer and ' \n\t0x64 0x65 0x73 0x69 0x67 0x6E 0x20 0x61    // 'design a' \n\t0x20 0x6E 0x65 0x77 0x20 0x77 0x61 0x6C    // ' new wal' \n\t0x6C 0x20 0x6F 0x66 0x20 0x43 0x68 0x69    // 'l of Chi' \n\t0x6E 0x61 0x2C 0x20 0x62 0x75 0x74 0x20    // 'na, but ' \n\t0x74 0x68 0x65 0x6E 0x20 0x73 0x68 0x65    // 'then she' \n\t0x20 0x6D 0x65 0x74 0x20 0x74 0x68 0x69    // ' met thi' \n\t0x73 0x20 0x67 0x75 0x79 0x20 0x69 0x6E    // 's guy in' \n\t0x20 0x73 0x63 0x68 0x6F 0x6F 0x6C 0x20    // ' school ' \n\t0x77 0x68 0x6F 0x20 0x74 0x61 0x75 0x67    // 'who taug' \n\t0x68 0x74 0x20 0x68 0x65 0x72 0x20 0x6B    // 'ht her k' \n\t0x61 0x72 0x61 0x74 0x65 0x2E 0x20 0x20    // 'arate.  ' \n\t0x50 0x72 0x65 0x74 0x74 0x79 0x20 0x73    // 'Pretty s' \n\t0x6F 0x6F 0x6E 0x20 0x73 0x68 0x65 0x20    // 'oon she ' \n\t0x63 0x6F 0x75 0x6C 0x64 0x20 0x62 0x65    // 'could be' \n\t0x61 0x74 0x20 0x68 0x69 0x6D 0x2C 0x20    // 'at him, ' \n\t0x73 0x6F 0x20 0x73 0x68 0x65 0x20 0x74    // 'so she t' \n\t0x68 0x6F 0x75 0x67 0x68 0x74 0x20 0x6B    // 'hought k' \n\t0x61 0x72 0x61 0x74 0x65 0x20 0x6D 0x75    // 'arate mu' \n\t0x73 0x74 0x20 0x62 0x65 0x20 0x68 0x65    // 'st be he' \n\t0x72 0x20 0x64 0x65 0x73 0x74 0x69 0x6E    // 'r destin' \n\t0x79 0x2E 0x20 0x20 0x42 0x75 0x74 0x20    // 'y.  But ' \n\t0x73 0x68 0x65 0x20 0x68 0x61 0x73 0x20    // 'she has ' \n\t0x6D 0x61 0x6E 0x79 0x20 0x6F 0x74 0x68    // 'many oth' \n\t0x65 0x72 0x20 0x74 0x61 0x6C 0x65 0x6E    // 'er talen' \n\t0x74 0x73 0x2E 0x0D 0x0A 0x52 0x6F 0x78    // 'ts.??Rox' \n\t0x61 0x6E 0x6E 0x65 0x20 0x6C 0x65 0x61    // 'anne lea' \n\t0x72 0x6E 0x65 0x64 0x20 0x68 0x6F 0x77    // 'rned how' \n\t0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B 0x65    // ' to make' \n\t0x20 0x6D 0x65 0x64 0x69 0x63 0x69 0x6E    // ' medicin' \n\t0x65 0x20 0x66 0x72 0x6F 0x6D 0x20 0x68    // 'e from h' \n\t0x65 0x72 0x20 0x67 0x72 0x61 0x6E 0x64    // 'er grand' \n\t0x66 0x61 0x74 0x68 0x65 0x72 0x2E 0x20    // 'father. ' \n\t0x20 0x53 0x68 0x65 0x20 0x6B 0x6E 0x6F    // ' She kno' \n\t0x77 0x73 0x20 0x68 0x6F 0x77 0x20 0x74    // 'ws how t' \n\t0x6F 0x20 0x73 0x63 0x72 0x61 0x70 0x65    // 'o scrape' \n\t0x20 0x72 0x68 0x69 0x6E 0x6F 0x63 0x65    // ' rhinoce' \n\t0x72 0x6F 0x73 0x20 0x68 0x6F 0x72 0x6E    // 'ros horn' \n\t0x73 0x20 0x66 0x6F 0x72 0x20 0x66 0x65    // 's for fe' \n\t0x76 0x65 0x72 0x20 0x6D 0x65 0x64 0x69    // 'ver medi' \n\t0x63 0x69 0x6E 0x65 0x2C 0x20 0x61 0x6E    // 'cine, an' \n\t0x64 0x20 0x68 0x6F 0x77 0x20 0x74 0x6F    // 'd how to' \n\t0x20 0x6D 0x61 0x6B 0x65 0x20 0x74 0x69    // ' make ti' \n\t0x67 0x65 0x72 0x2D 0x62 0x6F 0x6E 0x65    // 'ger-bone' \n\t0x20 0x77 0x69 0x6E 0x65 0x20 0x66 0x6F    // ' wine fo' \n\t0x72 0x20 0x61 0x63 0x68 0x65 0x73 0x20    // 'r aches ' \n\t0x61 0x6E 0x64 0x20 0x70 0x61 0x69 0x6E    // 'and pain' \n\t0x73 0x2E 0x20 0x20 0x53 0x6F 0x6D 0x65    // 's.  Some' \n\t0x74 0x69 0x6D 0x65 0x73 0x20 0x73 0x68    // 'times sh' \n\t0x65 0x20 0x75 0x73 0x65 0x73 0x20 0x74    // 'e uses t' \n\t0x68 0x69 0x73 0x20 0x73 0x74 0x75 0x66    // 'his stuf' \n\t0x66 0x20 0x6F 0x6E 0x20 0x68 0x65 0x72    // 'f on her' \n\t0x20 0x68 0x61 0x69 0x72 0x2E 0x20 0x0D    // ' hair. ?' \n\t0x0A 0x53 0x68 0x65 0x20 0x77 0x61 0x73    // '?She was' \n\t0x20 0x73 0x63 0x72 0x61 0x70 0x69 0x6E    // ' scrapin' \n\t0x67 0x20 0x61 0x20 0x72 0x68 0x69 0x6E    // 'g a rhin' \n\t0x6F 0x20 0x68 0x6F 0x72 0x6E 0x20 0x6F    // 'o horn o' \n\t0x6E 0x65 0x20 0x64 0x61 0x79 0x20 0x77    // 'ne day w' \n\t0x68 0x65 0x6E 0x20 0x74 0x68 0x65 0x20    // 'hen the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x64 0x69    // 'movie di' \n\t0x72 0x65 0x63 0x74 0x6F 0x72 0x20 0x4D    // 'rector M' \n\t0x63 0x5A 0x65 0x65 0x20 0x77 0x61 0x6C    // 'cZee wal' \n\t0x6B 0x65 0x64 0x20 0x75 0x70 0x20 0x62    // 'ked up b' \n\t0x65 0x68 0x69 0x6E 0x64 0x20 0x68 0x65    // 'ehind he' \n\t0x72 0x20 0x76 0x65 0x72 0x79 0x20 0x71    // 'r very q' \n\t0x75 0x69 0x65 0x74 0x6C 0x79 0x2E 0x20    // 'uietly. ' \n\t0x20 0x53 0x68 0x65 0x20 0x6A 0x75 0x6D    // ' She jum' \n\t0x70 0x65 0x64 0x2C 0x20 0x74 0x68 0x72    // 'ped, thr' \n\t0x65 0x77 0x20 0x4D 0x63 0x5A 0x65 0x65    // 'ew McZee' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x67 0x72 0x6F 0x75 0x6E 0x64 0x2C 0x20    // 'ground, ' \n\t0x61 0x6E 0x64 0x20 0x74 0x68 0x65 0x6E    // 'and then' \n\t0x20 0x61 0x73 0x6B 0x65 0x64 0x20 0x77    // ' asked w' \n\t0x68 0x6F 0x20 0x68 0x65 0x20 0x77 0x61    // 'ho he wa' \n\t0x73 0x2E 0x20 0x20 0x4D 0x63 0x5A 0x65    // 's.  McZe' \n\t0x65 0x20 0x68 0x69 0x72 0x65 0x64 0x20    // 'e hired ' \n\t0x68 0x65 0x72 0x20 0x6F 0x6E 0x20 0x74    // 'her on t' \n\t0x68 0x65 0x20 0x73 0x70 0x6F 0x74 0x2C    // 'he spot,' \n\t0x20 0x77 0x68 0x69 0x63 0x68 0x2C 0x20    // ' which, ' \n\t0x61 0x74 0x20 0x74 0x68 0x61 0x74 0x20    // 'at that ' \n\t0x6D 0x6F 0x6D 0x65 0x6E 0x74 0x2C 0x20    // 'moment, ' \n\t0x68 0x61 0x70 0x70 0x65 0x6E 0x65 0x64    // 'happened' \n\t0x20 0x74 0x6F 0x20 0x62 0x65 0x20 0x74    // ' to be t' \n\t0x68 0x65 0x20 0x67 0x72 0x6F 0x75 0x6E    // 'he groun' \n\t0x64 0x2E                                  // 'd.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A7= ktipbio126\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A7, __HELP_NAME(\"ktipbio126\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A7, __HELP_NAME(\"ktipbio126\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio126\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x05 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x03 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x55 0x02 0x00 0x82    // '????U??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A8, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x61 0x69 0x72 0x64 0x72    // '??Hairdr' \n\t0x65 0x73 0x73 0x65 0x72 0x0D 0x0A 0x54    // 'esser??T' \n\t0x68 0x65 0x20 0x77 0x61 0x79 0x20 0x52    // 'he way R' \n\t0x6F 0x78 0x61 0x6E 0x6E 0x65 0x20 0x66    // 'oxanne f' \n\t0x69 0x67 0x75 0x72 0x65 0x73 0x20 0x69    // 'igures i' \n\t0x74 0x2C 0x20 0x73 0x68 0x65 0x92 0x64    // 't, shed' \n\t0x20 0x62 0x65 0x20 0x74 0x68 0x65 0x20    // ' be the ' \n\t0x63 0x6F 0x6F 0x6C 0x65 0x73 0x74 0x20    // 'coolest ' \n\t0x73 0x70 0x6F 0x6F 0x6B 0x79 0x20 0x68    // 'spooky h' \n\t0x61 0x69 0x72 0x64 0x72 0x65 0x73 0x73    // 'airdress' \n\t0x65 0x72 0x20 0x4D 0x63 0x5A 0x65 0x65    // 'er McZee' \n\t0x20 0x68 0x61 0x73 0x20 0x65 0x76 0x65    // ' has eve' \n\t0x72 0x20 0x73 0x65 0x65 0x6E 0x2E 0x20    // 'r seen. ' \n\t0x20 0x49 0x6E 0x20 0x74 0x68 0x69 0x73    // ' In this' \n\t0x20 0x72 0x6F 0x6C 0x65 0x2C 0x20 0x73    // ' role, s' \n\t0x68 0x65 0x27 0x64 0x20 0x61 0x70 0x70    // 'he'd app' \n\t0x65 0x61 0x72 0x20 0x74 0x6F 0x20 0x62    // 'ear to b' \n\t0x65 0x20 0x61 0x20 0x68 0x61 0x69 0x72    // 'e a hair' \n\t0x64 0x72 0x65 0x73 0x73 0x65 0x72 0x20    // 'dresser ' \n\t0x62 0x75 0x74 0x20 0x73 0x68 0x65 0x92    // 'but she' \n\t0x64 0x20 0x72 0x65 0x61 0x6C 0x6C 0x79    // 'd really' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x68    // ' want th' \n\t0x65 0x20 0x6A 0x6F 0x62 0x20 0x6A 0x75    // 'e job ju' \n\t0x73 0x74 0x20 0x74 0x6F 0x20 0x6D 0x65    // 'st to me' \n\t0x65 0x74 0x20 0x74 0x68 0x65 0x20 0x65    // 'et the e' \n\t0x76 0x69 0x6C 0x20 0x6F 0x77 0x6E 0x65    // 'vil owne' \n\t0x72 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'r of the' \n\t0x20 0x73 0x70 0x6F 0x6F 0x6B 0x20 0x68    // ' spook h' \n\t0x6F 0x75 0x73 0x65 0x2E 0x20 0x20 0x53    // 'ouse.  S' \n\t0x68 0x65 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'he would' \n\t0x20 0x67 0x6F 0x20 0x74 0x6F 0x20 0x68    // ' go to h' \n\t0x69 0x73 0x20 0x68 0x6F 0x75 0x73 0x65    // 'is house' \n\t0x20 0x74 0x6F 0x20 0x64 0x6F 0x20 0x68    // ' to do h' \n\t0x69 0x73 0x20 0x68 0x61 0x69 0x72 0x20    // 'is hair ' \n\t0x73 0x6F 0x20 0x73 0x68 0x65 0x20 0x63    // 'so she c' \n\t0x6F 0x75 0x6C 0x64 0x20 0x62 0x65 0x20    // 'ould be ' \n\t0x6F 0x6E 0x20 0x74 0x68 0x65 0x20 0x6C    // 'on the l' \n\t0x6F 0x6F 0x6B 0x6F 0x75 0x74 0x20 0x66    // 'ookout f' \n\t0x6F 0x72 0x20 0x74 0x68 0x61 0x74 0x20    // 'or that ' \n\t0x63 0x72 0x61 0x7A 0x79 0x20 0x70 0x68    // 'crazy ph' \n\t0x61 0x6E 0x74 0x6F 0x6D 0x2C 0x20 0x5A    // 'antom, Z' \n\t0x61 0x63 0x6B 0x2E 0x20 0x20 0x57 0x68    // 'ack.  Wh' \n\t0x6F 0x20 0x65 0x76 0x65 0x72 0x20 0x68    // 'o ever h' \n\t0x65 0x61 0x72 0x64 0x20 0x6F 0x66 0x20    // 'eard of ' \n\t0x61 0x20 0x70 0x68 0x61 0x6E 0x74 0x6F    // 'a phanto' \n\t0x6D 0x2C 0x20 0x61 0x6E 0x79 0x77 0x61    // 'm, anywa' \n\t0x79 0x3F 0x20 0x20 0x53 0x68 0x65 0x92    // 'y?  She' \n\t0x64 0x20 0x70 0x72 0x6F 0x76 0x65 0x20    // 'd prove ' \n\t0x74 0x68 0x61 0x74 0x20 0x68 0x65 0x20    // 'that he ' \n\t0x77 0x61 0x73 0x20 0x72 0x65 0x61 0x6C    // 'was real' \n\t0x6C 0x79 0x20 0x6A 0x75 0x73 0x74 0x20    // 'ly just ' \n\t0x61 0x6E 0x20 0x6F 0x72 0x64 0x69 0x6E    // 'an ordin' \n\t0x61 0x72 0x79 0x20 0x67 0x75 0x79 0x2E    // 'ary guy.' \n\t0x20 0x53 0x6F 0x20 0x77 0x68 0x61 0x74    // ' So what' \n\t0x20 0x69 0x66 0x20 0x5A 0x61 0x63 0x6B    // ' if Zack' \n\t0x20 0x63 0x6F 0x75 0x6C 0x64 0x20 0x64    // ' could d' \n\t0x72 0x6F 0x70 0x20 0x74 0x68 0x72 0x6F    // 'rop thro' \n\t0x75 0x67 0x68 0x20 0x74 0x68 0x65 0x20    // 'ugh the ' \n\t0x66 0x6C 0x6F 0x6F 0x72 0x20 0x61 0x6E    // 'floor an' \n\t0x64 0x20 0x77 0x61 0x6C 0x6B 0x20 0x74    // 'd walk t' \n\t0x68 0x72 0x6F 0x75 0x67 0x68 0x20 0x77    // 'hrough w' \n\t0x61 0x6C 0x6C 0x73 0x3F 0x20 0x20 0x52    // 'alls?  R' \n\t0x6F 0x78 0x61 0x6E 0x6E 0x65 0x20 0x77    // 'oxanne w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x6C 0x61 0x79    // 'ould lay' \n\t0x20 0x68 0x69 0x6D 0x20 0x6F 0x75 0x74    // ' him out' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x6F 0x6E    // ' with on' \n\t0x65 0x20 0x6B 0x61 0x72 0x61 0x74 0x65    // 'e karate' \n\t0x20 0x6B 0x69 0x63 0x6B 0x20 0x62 0x65    // ' kick be' \n\t0x66 0x6F 0x72 0x65 0x20 0x68 0x65 0x20    // 'fore he ' \n\t0x63 0x6F 0x75 0x6C 0x64 0x20 0x74 0x68    // 'could th' \n\t0x69 0x6E 0x6B 0x20 0x61 0x62 0x6F 0x75    // 'ink abou' \n\t0x74 0x20 0x70 0x75 0x6C 0x6C 0x69 0x6E    // 't pullin' \n\t0x67 0x20 0x6F 0x6E 0x65 0x20 0x6F 0x66    // 'g one of' \n\t0x20 0x68 0x69 0x73 0x20 0x73 0x74 0x75    // ' his stu' \n\t0x6E 0x74 0x73 0x2E 0x20 0x0D 0x0A 0x54    // 'nts. ??T' \n\t0x68 0x65 0x20 0x6F 0x6E 0x6C 0x79 0x20    // 'he only ' \n\t0x74 0x68 0x69 0x6E 0x67 0x20 0x52 0x6F    // 'thing Ro' \n\t0x78 0x61 0x6E 0x6E 0x65 0x20 0x64 0x69    // 'xanne di' \n\t0x64 0x6E 0x92 0x74 0x20 0x63 0x6F 0x75    // 'dnt cou' \n\t0x6E 0x74 0x20 0x6F 0x6E 0x20 0x69 0x73    // 'nt on is' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x5A 0x61    // ' that Za' \n\t0x63 0x6B 0x20 0x68 0x61 0x73 0x20 0x6C    // 'ck has l' \n\t0x65 0x61 0x72 0x6E 0x65 0x64 0x20 0x61    // 'earned a' \n\t0x20 0x6E 0x65 0x77 0x20 0x74 0x72 0x69    // ' new tri' \n\t0x63 0x6B 0x2E 0x20 0x20 0x48 0x65 0x20    // 'ck.  He ' \n\t0x63 0x61 0x6E 0x20 0x73 0x68 0x72 0x69    // 'can shri' \n\t0x6E 0x6B 0x2E 0x20 0x20 0x48 0x6F 0x77    // 'nk.  How' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x52 0x6F    // ' will Ro' \n\t0x78 0x61 0x6E 0x6E 0x65 0x20 0x66 0x69    // 'xanne fi' \n\t0x67 0x68 0x74 0x20 0x61 0x20 0x6D 0x69    // 'ght a mi' \n\t0x64 0x67 0x65 0x74 0x20 0x77 0x68 0x6F    // 'dget who' \n\t0x20 0x63 0x61 0x6E 0x20 0x66 0x61 0x6C    // ' can fal' \n\t0x6C 0x20 0x74 0x68 0x72 0x6F 0x75 0x67    // 'l throug' \n\t0x68 0x20 0x74 0x68 0x65 0x20 0x66 0x6C    // 'h the fl' \n\t0x6F 0x6F 0x72 0x3F 0x20 0x20 0x43 0x61    // 'oor?  Ca' \n\t0x6E 0x20 0x74 0x68 0x61 0x74 0x20 0x73    // 'n that s' \n\t0x74 0x75 0x66 0x66 0x20 0x73 0x68 0x65    // 'tuff she' \n\t0x20 0x70 0x75 0x74 0x73 0x20 0x6F 0x6E    // ' puts on' \n\t0x20 0x68 0x65 0x72 0x20 0x68 0x61 0x69    // ' her hai' \n\t0x72 0x20 0x68 0x65 0x6C 0x70 0x20 0x68    // 'r help h' \n\t0x65 0x72 0x20 0x6F 0x75 0x74 0x3F         // 'er out?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A8= ktipbio127\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A8, __HELP_NAME(\"ktipbio127\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A8, __HELP_NAME(\"ktipbio127\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_99=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio127\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_99=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_99=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_99, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x52 0x01 0x00 0x82    // '????R??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_99=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_99, 0x0)\n\tBYTE\n\t0x03 0x03 0x55 0x6E 0x64 0x65 0x72 0x63    // '??Underc' \n\t0x6F 0x76 0x65 0x72 0x20 0x43 0x6F 0x70    // 'over Cop' \n\t0x0D 0x0A 0x49 0x6E 0x20 0x61 0x6E 0x6F    // '??In ano' \n\t0x74 0x68 0x65 0x72 0x20 0x72 0x6F 0x6C    // 'ther rol' \n\t0x65 0x20 0x52 0x6F 0x78 0x61 0x6E 0x6E    // 'e Roxann' \n\t0x65 0x20 0x77 0x61 0x6E 0x74 0x73 0x20    // 'e wants ' \n\t0x74 0x6F 0x20 0x70 0x6C 0x61 0x79 0x2C    // 'to play,' \n\t0x20 0x73 0x68 0x65 0x92 0x64 0x20 0x62    // ' shed b' \n\t0x65 0x20 0x61 0x6E 0x20 0x75 0x6E 0x64    // 'e an und' \n\t0x65 0x72 0x63 0x6F 0x76 0x65 0x72 0x20    // 'ercover ' \n\t0x63 0x6F 0x70 0x20 0x61 0x63 0x74 0x69    // 'cop acti' \n\t0x6E 0x67 0x20 0x6C 0x69 0x6B 0x65 0x20    // 'ng like ' \n\t0x61 0x20 0x77 0x61 0x69 0x74 0x72 0x65    // 'a waitre' \n\t0x73 0x73 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ss in th' \n\t0x65 0x20 0x63 0x6F 0x77 0x62 0x6F 0x79    // 'e cowboy' \n\t0x20 0x63 0x61 0x66 0xE9 0x2E 0x20 0x20    // ' caf.  ' \n\t0x48 0x65 0x72 0x20 0x6D 0x69 0x73 0x73    // 'Her miss' \n\t0x69 0x6F 0x6E 0x20 0x69 0x73 0x20 0x74    // 'ion is t' \n\t0x6F 0x20 0x63 0x61 0x74 0x63 0x68 0x20    // 'o catch ' \n\t0x5A 0x61 0x63 0x6B 0x2C 0x20 0x74 0x68    // 'Zack, th' \n\t0x65 0x20 0x73 0x6C 0x69 0x70 0x70 0x65    // 'e slippe' \n\t0x72 0x79 0x20 0x62 0x61 0x64 0x20 0x67    // 'ry bad g' \n\t0x75 0x79 0x20 0x77 0x68 0x6F 0x20 0x73    // 'uy who s' \n\t0x74 0x6F 0x6C 0x65 0x20 0x74 0x68 0x65    // 'tole the' \n\t0x20 0x70 0x6C 0x61 0x6E 0x65 0x74 0x20    // ' planet ' \n\t0x65 0x61 0x72 0x74 0x68 0x20 0x61 0x6E    // 'earth an' \n\t0x64 0x20 0x69 0x73 0x20 0x6B 0x65 0x65    // 'd is kee' \n\t0x70 0x69 0x6E 0x67 0x20 0x69 0x74 0x20    // 'ping it ' \n\t0x69 0x6E 0x20 0x61 0x20 0x74 0x65 0x6E    // 'in a ten' \n\t0x74 0x20 0x62 0x65 0x68 0x69 0x6E 0x64    // 't behind' \n\t0x20 0x74 0x68 0x65 0x20 0x43 0x68 0x69    // ' the Chi' \n\t0x6E 0x65 0x73 0x65 0x20 0x72 0x65 0x73    // 'nese res' \n\t0x74 0x61 0x75 0x72 0x61 0x6E 0x74 0x2E    // 'taurant.' \n\t0x20 0x20 0x57 0x69 0x74 0x68 0x20 0x65    // '  With e' \n\t0x76 0x65 0x72 0x79 0x20 0x64 0x61 0x79    // 'very day' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x74 0x68    // ' that th' \n\t0x65 0x20 0x65 0x61 0x72 0x74 0x68 0x20    // 'e earth ' \n\t0x69 0x73 0x20 0x69 0x6E 0x20 0x74 0x68    // 'is in th' \n\t0x65 0x20 0x74 0x65 0x6E 0x74 0x2C 0x20    // 'e tent, ' \n\t0x69 0x74 0x20 0x73 0x68 0x72 0x69 0x6E    // 'it shrin' \n\t0x6B 0x73 0x20 0x61 0x20 0x6C 0x69 0x74    // 'ks a lit' \n\t0x74 0x6C 0x65 0x20 0x6D 0x6F 0x72 0x65    // 'tle more' \n\t0x2E 0x20 0x0D 0x0A 0x42 0x75 0x74 0x20    // '. ??But ' \n\t0x74 0x68 0x65 0x20 0x74 0x65 0x6E 0x74    // 'the tent' \n\t0x20 0x69 0x73 0x20 0x67 0x75 0x61 0x72    // ' is guar' \n\t0x64 0x65 0x64 0x20 0x62 0x79 0x20 0x61    // 'ded by a' \n\t0x20 0x68 0x69 0x73 0x73 0x69 0x6E 0x67    // ' hissing' \n\t0x20 0x63 0x61 0x74 0x20 0x74 0x68 0x61    // ' cat tha' \n\t0x74 0x20 0x67 0x72 0x6F 0x77 0x73 0x20    // 't grows ' \n\t0x74 0x6F 0x20 0x61 0x20 0x68 0x75 0x67    // 'to a hug' \n\t0x65 0x20 0x73 0x69 0x7A 0x65 0x20 0x77    // 'e size w' \n\t0x68 0x65 0x6E 0x65 0x76 0x65 0x72 0x20    // 'henever ' \n\t0x69 0x74 0x20 0x73 0x65 0x65 0x73 0x20    // 'it sees ' \n\t0x61 0x20 0x63 0x6F 0x70 0x2C 0x20 0x65    // 'a cop, e' \n\t0x73 0x70 0x65 0x63 0x69 0x61 0x6C 0x6C    // 'speciall' \n\t0x79 0x20 0x61 0x20 0x43 0x68 0x69 0x6E    // 'y a Chin' \n\t0x65 0x73 0x65 0x20 0x66 0x65 0x6D 0x61    // 'ese fema' \n\t0x6C 0x65 0x20 0x63 0x6F 0x70 0x2E 0x20    // 'le cop. ' \n\t0x20 0x48 0x6F 0x77 0x20 0x77 0x69 0x6C    // ' How wil' \n\t0x6C 0x20 0x52 0x6F 0x78 0x61 0x6E 0x6E    // 'l Roxann' \n\t0x65 0x20 0x63 0x61 0x70 0x74 0x75 0x72    // 'e captur' \n\t0x65 0x20 0x5A 0x61 0x63 0x6B 0x3F 0x20    // 'e Zack? ' \n\t0x20 0x43 0x61 0x6E 0x20 0x73 0x68 0x65    // ' Can she' \n\t0x20 0x67 0x65 0x74 0x20 0x70 0x61 0x73    // ' get pas' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x63 0x61    // 't the ca' \n\t0x74 0x20 0x61 0x6E 0x64 0x20 0x73 0x61    // 't and sa' \n\t0x76 0x65 0x20 0x74 0x68 0x65 0x20 0x65    // 've the e' \n\t0x61 0x72 0x74 0x68 0x3F                   // 'arth?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A9= ktipbio128\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A9, __HELP_NAME(\"ktipbio128\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A9, __HELP_NAME(\"ktipbio128\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_AF=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio128\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_AF=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x1E 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_AF=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_AF, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x44 0x03 0x00 0x01    // '????D???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8B 0x02 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_AF=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_AF, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x63 0x6B 0x61 0x74    // '??Cockat' \n\t0x6F 0x6F 0x20 0x57 0x61 0x74 0x63 0x68    // 'oo Watch' \n\t0x65 0x72 0x0D 0x0A 0x54 0x68 0x61 0x6E    // 'er??Than' \n\t0x6B 0x73 0x20 0x74 0x6F 0x20 0x6B 0x61    // 'ks to ka' \n\t0x72 0x61 0x74 0x65 0x2C 0x20 0x52 0x6F    // 'rate, Ro' \n\t0x78 0x61 0x6E 0x6E 0x65 0x20 0x69 0x73    // 'xanne is' \n\t0x20 0x69 0x6E 0x20 0x67 0x72 0x65 0x61    // ' in grea' \n\t0x74 0x20 0x73 0x68 0x61 0x70 0x65 0x2E    // 't shape.' \n\t0x20 0x20 0x53 0x68 0x65 0x27 0x64 0x20    // '  She'd ' \n\t0x6C 0x6F 0x76 0x65 0x20 0x74 0x6F 0x20    // 'love to ' \n\t0x70 0x61 0x73 0x73 0x20 0x61 0x6C 0x6F    // 'pass alo' \n\t0x6E 0x67 0x20 0x68 0x65 0x72 0x20 0x68    // 'ng her h' \n\t0x65 0x61 0x6C 0x74 0x68 0x79 0x20 0x68    // 'ealthy h' \n\t0x61 0x62 0x69 0x74 0x73 0x20 0x74 0x6F    // 'abits to' \n\t0x20 0x61 0x75 0x64 0x69 0x65 0x6E 0x63    // ' audienc' \n\t0x65 0x73 0x20 0x65 0x76 0x65 0x72 0x79    // 'es every' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x62 0x79    // 'where by' \n\t0x20 0x73 0x74 0x61 0x72 0x72 0x69 0x6E    // ' starrin' \n\t0x67 0x20 0x61 0x73 0x20 0x61 0x20 0x6D    // 'g as a m' \n\t0x61 0x6C 0x6C 0x20 0x77 0x61 0x6C 0x6B    // 'all walk' \n\t0x65 0x72 0x20 0x61 0x6E 0x64 0x20 0x63    // 'er and c' \n\t0x6F 0x63 0x6B 0x61 0x74 0x6F 0x6F 0x20    // 'ockatoo ' \n\t0x77 0x61 0x74 0x63 0x68 0x65 0x72 0x2E    // 'watcher.' \n\t0x20 0x20 0x54 0x68 0x65 0x20 0x6D 0x61    // '  The ma' \n\t0x6C 0x6C 0x20 0x69 0x73 0x20 0x64 0x65    // 'll is de' \n\t0x73 0x65 0x72 0x74 0x65 0x64 0x2C 0x20    // 'serted, ' \n\t0x73 0x6F 0x20 0x65 0x76 0x65 0x72 0x79    // 'so every' \n\t0x20 0x6D 0x6F 0x72 0x6E 0x69 0x6E 0x67    // ' morning' \n\t0x20 0x52 0x6F 0x78 0x61 0x6E 0x6E 0x65    // ' Roxanne' \n\t0x20 0x63 0x6F 0x75 0x6C 0x64 0x20 0x73    // ' could s' \n\t0x70 0x65 0x65 0x64 0x2D 0x77 0x61 0x6C    // 'peed-wal' \n\t0x6B 0x20 0x70 0x61 0x73 0x74 0x20 0x74    // 'k past t' \n\t0x68 0x65 0x20 0x73 0x68 0x6F 0x70 0x73    // 'he shops' \n\t0x2C 0x20 0x70 0x72 0x61 0x63 0x74 0x69    // ', practi' \n\t0x63 0x65 0x20 0x6B 0x61 0x72 0x61 0x74    // 'ce karat' \n\t0x65 0x2C 0x20 0x61 0x6E 0x64 0x20 0x70    // 'e, and p' \n\t0x72 0x65 0x74 0x65 0x6E 0x64 0x20 0x74    // 'retend t' \n\t0x6F 0x20 0x77 0x61 0x74 0x63 0x68 0x20    // 'o watch ' \n\t0x63 0x6F 0x63 0x6B 0x61 0x74 0x6F 0x6F    // 'cockatoo' \n\t0x73 0x2E 0x20 0x20 0x53 0x68 0x65 0x20    // 's.  She ' \n\t0x6B 0x6E 0x6F 0x77 0x73 0x20 0x74 0x68    // 'knows th' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x6C    // 'at the l' \n\t0x61 0x74 0x65 0x73 0x74 0x20 0x61 0x6E    // 'atest an' \n\t0x64 0x20 0x67 0x72 0x65 0x61 0x74 0x65    // 'd greate' \n\t0x73 0x74 0x20 0x72 0x6F 0x63 0x6B 0x65    // 'st rocke' \n\t0x74 0x20 0x69 0x73 0x20 0x6F 0x6E 0x20    // 't is on ' \n\t0x64 0x69 0x73 0x70 0x6C 0x61 0x79 0x20    // 'display ' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x6D    // 'at the m' \n\t0x61 0x6C 0x6C 0x2E 0x20 0x52 0x6F 0x78    // 'all. Rox' \n\t0x61 0x6E 0x6E 0x65 0x20 0x77 0x61 0x6E    // 'anne wan' \n\t0x74 0x73 0x20 0x74 0x6F 0x20 0x62 0x6F    // 'ts to bo' \n\t0x72 0x72 0x6F 0x77 0x20 0x74 0x68 0x65    // 'rrow the' \n\t0x20 0x72 0x6F 0x63 0x6B 0x65 0x74 0x20    // ' rocket ' \n\t0x74 0x6F 0x20 0x66 0x69 0x6E 0x64 0x20    // 'to find ' \n\t0x68 0x65 0x72 0x20 0x68 0x69 0x70 0x70    // 'her hipp' \n\t0x69 0x65 0x20 0x66 0x72 0x69 0x65 0x6E    // 'ie frien' \n\t0x64 0x20 0x4A 0x65 0x72 0x65 0x6D 0x79    // 'd Jeremy' \n\t0x20 0x77 0x68 0x6F 0x20 0x63 0x72 0x61    // ' who cra' \n\t0x73 0x68 0x65 0x64 0x20 0x68 0x69 0x73    // 'shed his' \n\t0x20 0x68 0x6F 0x74 0x2D 0x61 0x69 0x72    // ' hot-air' \n\t0x20 0x62 0x61 0x6C 0x6C 0x6F 0x6F 0x6E    // ' balloon' \n\t0x20 0x73 0x6F 0x6D 0x65 0x77 0x68 0x65    // ' somewhe' \n\t0x72 0x65 0x20 0x6E 0x65 0x61 0x72 0x20    // 're near ' \n\t0x61 0x20 0x64 0x65 0x73 0x65 0x72 0x74    // 'a desert' \n\t0x65 0x64 0x20 0x63 0x61 0x62 0x69 0x6E    // 'ed cabin' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x72 0x65    // ' in a re' \n\t0x6D 0x6F 0x74 0x65 0x20 0x6D 0x6F 0x75    // 'mote mou' \n\t0x6E 0x74 0x61 0x69 0x6E 0x20 0x6A 0x75    // 'ntain ju' \n\t0x6E 0x67 0x6C 0x65 0x2E 0x20 0x20 0x4A    // 'ngle.  J' \n\t0x65 0x72 0x65 0x6D 0x79 0x20 0x68 0x61    // 'eremy ha' \n\t0x73 0x20 0x62 0x65 0x65 0x6E 0x20 0x73    // 's been s' \n\t0x65 0x6E 0x64 0x69 0x6E 0x67 0x20 0x6F    // 'ending o' \n\t0x75 0x74 0x20 0x72 0x61 0x64 0x69 0x6F    // 'ut radio' \n\t0x20 0x73 0x69 0x67 0x6E 0x61 0x6C 0x73    // ' signals' \n\t0x20 0x66 0x6F 0x72 0x20 0x77 0x65 0x65    // ' for wee' \n\t0x6B 0x73 0x2C 0x20 0x62 0x75 0x74 0x20    // 'ks, but ' \n\t0x6E 0x6F 0x20 0x6F 0x6E 0x65 0x20 0x68    // 'no one h' \n\t0x61 0x73 0x20 0x62 0x65 0x65 0x6E 0x20    // 'as been ' \n\t0x61 0x62 0x6C 0x65 0x20 0x74 0x6F 0x20    // 'able to ' \n\t0x67 0x65 0x74 0x20 0x69 0x6E 0x74 0x6F    // 'get into' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x72 0x65    // ' the are' \n\t0x61 0x2E 0x20 0x0D 0x0A 0x52 0x6F 0x78    // 'a. ??Rox' \n\t0x61 0x6E 0x6E 0x65 0x20 0x69 0x73 0x20    // 'anne is ' \n\t0x61 0x6C 0x72 0x65 0x61 0x64 0x79 0x20    // 'already ' \n\t0x61 0x20 0x6B 0x61 0x72 0x61 0x74 0x65    // 'a karate' \n\t0x20 0x63 0x68 0x61 0x6D 0x70 0x69 0x6F    // ' champio' \n\t0x6E 0x20 0x61 0x6E 0x64 0x20 0x61 0x20    // 'n and a ' \n\t0x70 0x72 0x6F 0x66 0x65 0x73 0x73 0x69    // 'professi' \n\t0x6F 0x6E 0x61 0x6C 0x20 0x6D 0x61 0x6C    // 'onal mal' \n\t0x6C 0x20 0x77 0x61 0x6C 0x6B 0x65 0x72    // 'l walker' \n\t0x97 0x77 0x69 0x6C 0x6C 0x20 0x73 0x68    // 'will sh' \n\t0x65 0x20 0x62 0x65 0x63 0x6F 0x6D 0x65    // 'e become' \n\t0x20 0x74 0x68 0x65 0x20 0x66 0x69 0x72    // ' the fir' \n\t0x73 0x74 0x20 0x66 0x65 0x6D 0x61 0x6C    // 'st femal' \n\t0x65 0x20 0x72 0x6F 0x63 0x6B 0x65 0x74    // 'e rocket' \n\t0x20 0x72 0x65 0x73 0x63 0x75 0x65 0x20    // ' rescue ' \n\t0x70 0x65 0x72 0x73 0x6F 0x6E 0x3F 0x20    // 'person? ' \n\t0x20 0x41 0x6E 0x64 0x20 0x68 0x6F 0x77    // ' And how' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x73 0x68    // ' will sh' \n\t0x65 0x20 0x6C 0x61 0x6E 0x64 0x20 0x74    // 'e land t' \n\t0x68 0x65 0x20 0x72 0x6F 0x63 0x6B 0x65    // 'he rocke' \n\t0x74 0x20 0x69 0x6E 0x20 0x61 0x20 0x6A    // 't in a j' \n\t0x75 0x6E 0x67 0x6C 0x65 0x20 0x74 0x6F    // 'ungle to' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x4A 0x65    // ' find Je' \n\t0x72 0x65 0x6D 0x79 0x3F 0x20              // 'remy? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_AA= ktipbio129\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_AA, __HELP_NAME(\"ktipbio129\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_AA, __HELP_NAME(\"ktipbio129\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_AA, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio129\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_AA, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xFD 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xC4 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A9, 0x0)\n\tBYTE\n\t0x03 0x03 0x73 0x70 0x65 0x63 0x69 0x61    // '??specia' \n\t0x6C 0x0D 0x0A 0x53 0x61 0x6C 0x76 0x61    // 'l??Salva' \n\t0x64 0x6F 0x72 0x20 0x68 0x61 0x73 0x20    // 'dor has ' \n\t0x61 0x20 0x73 0x65 0x63 0x72 0x65 0x74    // 'a secret' \n\t0x2E 0x20 0x48 0x65 0x20 0x63 0x61 0x6E    // '. He can' \n\t0x20 0x66 0x6C 0x79 0x2E 0x20 0x4E 0x6F    // ' fly. No' \n\t0x6E 0x65 0x20 0x6F 0x66 0x20 0x68 0x69    // 'ne of hi' \n\t0x73 0x20 0x66 0x72 0x69 0x65 0x6E 0x64    // 's friend' \n\t0x73 0x20 0x6B 0x6E 0x6F 0x77 0x2E 0x20    // 's know. ' \n\t0x48 0x65 0x20 0x64 0x69 0x64 0x6E 0x92    // 'He didn' \n\t0x74 0x20 0x65 0x76 0x65 0x6E 0x20 0x6B    // 't even k' \n\t0x6E 0x6F 0x77 0x20 0x75 0x6E 0x74 0x69    // 'now unti' \n\t0x6C 0x20 0x68 0x65 0x20 0x77 0x61 0x73    // 'l he was' \n\t0x20 0x61 0x62 0x6F 0x75 0x74 0x20 0x31    // ' about 1' \n\t0x30 0x20 0x61 0x6E 0x64 0x20 0x66 0x65    // '0 and fe' \n\t0x6C 0x6C 0x20 0x6F 0x66 0x66 0x20 0x61    // 'll off a' \n\t0x20 0x62 0x75 0x6E 0x6B 0x20 0x62 0x65    // ' bunk be' \n\t0x64 0x2E 0x20 0x48 0x65 0x20 0x77 0x61    // 'd. He wa' \n\t0x73 0x20 0x73 0x6F 0x20 0x61 0x66 0x72    // 's so afr' \n\t0x61 0x69 0x64 0x20 0x6F 0x66 0x20 0x68    // 'aid of h' \n\t0x69 0x74 0x74 0x69 0x6E 0x67 0x20 0x74    // 'itting t' \n\t0x68 0x65 0x20 0x66 0x6C 0x6F 0x6F 0x72    // 'he floor' \n\t0x2C 0x20 0x68 0x65 0x20 0x93 0x74 0x68    // ', he th' \n\t0x6F 0x75 0x67 0x68 0x74 0x94 0x20 0x68    // 'ought h' \n\t0x69 0x6D 0x73 0x65 0x6C 0x66 0x20 0x69    // 'imself i' \n\t0x6E 0x74 0x6F 0x20 0x66 0x6C 0x79 0x69    // 'nto flyi' \n\t0x6E 0x67 0x2E 0x20 0x54 0x68 0x65 0x20    // 'ng. The ' \n\t0x6F 0x6E 0x6C 0x79 0x20 0x70 0x72 0x6F    // 'only pro' \n\t0x62 0x6C 0x65 0x6D 0x20 0x69 0x73 0x20    // 'blem is ' \n\t0x74 0x68 0x61 0x74 0x20 0x53 0x61 0x6C    // 'that Sal' \n\t0x76 0x61 0x64 0x6F 0x72 0x20 0x63 0x61    // 'vador ca' \n\t0x6E 0x92 0x74 0x20 0x66 0x6C 0x79 0x20    // 'nt fly ' \n\t0x61 0x74 0x20 0x6E 0x69 0x67 0x68 0x74    // 'at night' \n\t0x97 0x73 0x6F 0x20 0x68 0x65 0x20 0x68    // 'so he h' \n\t0x61 0x73 0x20 0x74 0x6F 0x20 0x70 0x72    // 'as to pr' \n\t0x61 0x63 0x74 0x69 0x63 0x65 0x20 0x64    // 'actice d' \n\t0x75 0x72 0x69 0x6E 0x67 0x20 0x74 0x68    // 'uring th' \n\t0x65 0x20 0x64 0x61 0x79 0x2E 0x20 0x4F    // 'e day. O' \n\t0x6E 0x65 0x20 0x6D 0x6F 0x72 0x6E 0x69    // 'ne morni' \n\t0x6E 0x67 0x2C 0x20 0x68 0x65 0x20 0x77    // 'ng, he w' \n\t0x61 0x73 0x20 0x70 0x72 0x61 0x63 0x74    // 'as pract' \n\t0x69 0x63 0x69 0x6E 0x67 0x20 0x68 0x69    // 'icing hi' \n\t0x73 0x20 0x73 0x6C 0x6F 0x77 0x20 0x66    // 's slow f' \n\t0x6C 0x69 0x67 0x68 0x74 0x20 0x70 0x61    // 'light pa' \n\t0x74 0x74 0x65 0x72 0x6E 0x20 0x61 0x6E    // 'ttern an' \n\t0x64 0x20 0x66 0x6C 0x65 0x77 0x20 0x6F    // 'd flew o' \n\t0x76 0x65 0x72 0x20 0x61 0x20 0x6D 0x6F    // 'ver a mo' \n\t0x76 0x69 0x65 0x20 0x73 0x65 0x74 0x2E    // 'vie set.' \n\t0x20 0x54 0x68 0x65 0x20 0x63 0x61 0x6D    // ' The cam' \n\t0x65 0x72 0x61 0x73 0x20 0x63 0x61 0x75    // 'eras cau' \n\t0x67 0x68 0x74 0x20 0x68 0x69 0x6D 0x20    // 'ght him ' \n\t0x66 0x6C 0x79 0x69 0x6E 0x67 0x2C 0x20    // 'flying, ' \n\t0x61 0x6E 0x64 0x20 0x74 0x68 0x65 0x20    // 'and the ' \n\t0x64 0x69 0x72 0x65 0x63 0x74 0x6F 0x72    // 'director' \n\t0x20 0x6D 0x6F 0x74 0x69 0x6F 0x6E 0x65    // ' motione' \n\t0x64 0x20 0x68 0x69 0x6D 0x20 0x64 0x6F    // 'd him do' \n\t0x77 0x6E 0x2E 0x20 0x0D 0x0A 0x4E 0x65    // 'wn. ??Ne' \n\t0x65 0x64 0x6C 0x65 0x73 0x73 0x20 0x74    // 'edless t' \n\t0x6F 0x20 0x73 0x61 0x79 0x2C 0x20 0x53    // 'o say, S' \n\t0x61 0x6C 0x76 0x61 0x64 0x6F 0x72 0x20    // 'alvador ' \n\t0x62 0x65 0x63 0x61 0x6D 0x65 0x20 0x53    // 'became S' \n\t0x70 0x61 0x69 0x6E 0x92 0x73 0x20 0x6E    // 'pains n' \n\t0x65 0x77 0x65 0x73 0x74 0x20 0x6B 0x69    // 'ewest ki' \n\t0x64 0x20 0x73 0x74 0x61 0x72 0x2E         // 'd star.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_AB= ktipbio130\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_AB, __HELP_NAME(\"ktipbio130\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_AB, __HELP_NAME(\"ktipbio130\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_AB, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio130\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_AB, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x75 0x02 0x00 0x01    // '????u???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xDA 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x72 0x69 0x63 0x6B 0x2D    // '??Trick-' \n\t0x6F 0x72 0x2D 0x54 0x72 0x65 0x61 0x74    // 'or-Treat' \n\t0x65 0x72 0x20 0x44 0x72 0x65 0x73 0x73    // 'er Dress' \n\t0x65 0x64 0x20 0x61 0x73 0x20 0x5A 0x6F    // 'ed as Zo' \n\t0x72 0x72 0x6F 0x0D 0x0A 0x53 0x61 0x6C    // 'rro??Sal' \n\t0x76 0x61 0x64 0x6F 0x72 0x20 0x74 0x68    // 'vador th' \n\t0x69 0x6E 0x6B 0x73 0x20 0x68 0x65 0x92    // 'inks he' \n\t0x64 0x20 0x6D 0x61 0x6B 0x65 0x20 0x61    // 'd make a' \n\t0x20 0x67 0x72 0x65 0x61 0x74 0x20 0x5A    // ' great Z' \n\t0x6F 0x72 0x72 0x6F 0x20 0x54 0x72 0x69    // 'orro Tri' \n\t0x63 0x6B 0x2D 0x6F 0x72 0x2D 0x54 0x72    // 'ck-or-Tr' \n\t0x65 0x61 0x74 0x65 0x72 0x2E 0x20 0x48    // 'eater. H' \n\t0x65 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 'e would ' \n\t0x6C 0x6F 0x6F 0x6B 0x20 0x6C 0x69 0x6B    // 'look lik' \n\t0x65 0x20 0x61 0x6E 0x79 0x20 0x6F 0x72    // 'e any or' \n\t0x64 0x69 0x6E 0x61 0x72 0x79 0x20 0x74    // 'dinary t' \n\t0x65 0x65 0x6E 0x61 0x67 0x65 0x72 0x20    // 'eenager ' \n\t0x69 0x6E 0x20 0x61 0x20 0x5A 0x6F 0x72    // 'in a Zor' \n\t0x72 0x6F 0x20 0x63 0x6F 0x73 0x74 0x75    // 'ro costu' \n\t0x6D 0x65 0x2C 0x20 0x75 0x6E 0x74 0x69    // 'me, unti' \n\t0x6C 0x20 0x74 0x68 0x65 0x72 0x65 0x20    // 'l there ' \n\t0x77 0x61 0x73 0x20 0x74 0x72 0x6F 0x75    // 'was trou' \n\t0x62 0x6C 0x65 0x2E 0x20 0x54 0x68 0x65    // 'ble. The' \n\t0x6E 0x20 0x68 0x65 0x92 0x64 0x20 0x66    // 'n hed f' \n\t0x6C 0x79 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ly to th' \n\t0x65 0x20 0x72 0x65 0x73 0x63 0x75 0x65    // 'e rescue' \n\t0x2E 0x20 0x42 0x75 0x74 0x20 0x77 0x68    // '. But wh' \n\t0x61 0x74 0x20 0x53 0x61 0x6C 0x76 0x61    // 'at Salva' \n\t0x64 0x6F 0x72 0x20 0x68 0x61 0x73 0x6E    // 'dor hasn' \n\t0x92 0x74 0x20 0x74 0x68 0x6F 0x75 0x67    // 't thoug' \n\t0x68 0x74 0x20 0x61 0x62 0x6F 0x75 0x74    // 'ht about' \n\t0x20 0x69 0x73 0x20 0x74 0x68 0x65 0x20    // ' is the ' \n\t0x74 0x69 0x6D 0x65 0x20 0x6F 0x66 0x20    // 'time of ' \n\t0x64 0x61 0x79 0x2E 0x20 0x53 0x6F 0x20    // 'day. So ' \n\t0x77 0x68 0x65 0x6E 0x20 0x68 0x65 0x20    // 'when he ' \n\t0x67 0x65 0x74 0x73 0x20 0x74 0x6F 0x20    // 'gets to ' \n\t0x74 0x68 0x65 0x20 0x63 0x72 0x65 0x65    // 'the cree' \n\t0x70 0x79 0x20 0x68 0x6F 0x75 0x73 0x65    // 'py house' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x68    // ' down th' \n\t0x65 0x20 0x73 0x74 0x72 0x65 0x65 0x74    // 'e street' \n\t0x2C 0x20 0x6E 0x69 0x67 0x68 0x74 0x20    // ', night ' \n\t0x69 0x73 0x20 0x62 0x65 0x67 0x69 0x6E    // 'is begin' \n\t0x6E 0x69 0x6E 0x67 0x20 0x74 0x6F 0x20    // 'ning to ' \n\t0x66 0x61 0x6C 0x6C 0x20 0x61 0x73 0x20    // 'fall as ' \n\t0x68 0x65 0x20 0x68 0x65 0x61 0x72 0x73    // 'he hears' \n\t0x20 0x63 0x72 0x69 0x65 0x73 0x20 0x63    // ' cries c' \n\t0x6F 0x6D 0x69 0x6E 0x67 0x20 0x66 0x72    // 'oming fr' \n\t0x6F 0x6D 0x20 0x74 0x68 0x65 0x20 0x72    // 'om the r' \n\t0x6F 0x6F 0x66 0x20 0x6F 0x66 0x20 0x74    // 'oof of t' \n\t0x68 0x65 0x20 0x68 0x6F 0x75 0x73 0x65    // 'he house' \n\t0x2E 0x20 0x4A 0x75 0x73 0x74 0x20 0x74    // '. Just t' \n\t0x68 0x65 0x6E 0x20 0x74 0x68 0x65 0x20    // 'hen the ' \n\t0x64 0x6F 0x6F 0x72 0x20 0x6F 0x66 0x20    // 'door of ' \n\t0x74 0x68 0x65 0x20 0x68 0x6F 0x75 0x73    // 'the hous' \n\t0x65 0x20 0x63 0x72 0x65 0x61 0x6B 0x73    // 'e creaks' \n\t0x20 0x6F 0x70 0x65 0x6E 0x2C 0x20 0x61    // ' open, a' \n\t0x6E 0x64 0x20 0x61 0x20 0x72 0x61 0x74    // 'nd a rat' \n\t0x20 0x72 0x75 0x6E 0x73 0x20 0x74 0x6F    // ' runs to' \n\t0x77 0x61 0x72 0x64 0x20 0x68 0x69 0x6D    // 'ward him' \n\t0x2E 0x20 0x0D 0x0A 0x57 0x69 0x6C 0x6C    // '. ??Will' \n\t0x20 0x53 0x61 0x6C 0x76 0x61 0x64 0x6F    // ' Salvado' \n\t0x72 0x20 0x66 0x69 0x67 0x68 0x74 0x20    // 'r fight ' \n\t0x6F 0x66 0x66 0x20 0x74 0x68 0x65 0x20    // 'off the ' \n\t0x72 0x61 0x74 0x20 0x77 0x69 0x74 0x68    // 'rat with' \n\t0x20 0x65 0x6E 0x6F 0x75 0x67 0x68 0x20    // ' enough ' \n\t0x74 0x69 0x6D 0x65 0x20 0x6C 0x65 0x66    // 'time lef' \n\t0x74 0x20 0x74 0x6F 0x20 0x73 0x61 0x76    // 't to sav' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x63 0x68    // 'e the ch' \n\t0x69 0x6C 0x64 0x72 0x65 0x6E 0x20 0x6F    // 'ildren o' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x72 0x6F    // 'n the ro' \n\t0x6F 0x66 0x20 0x62 0x65 0x66 0x6F 0x72    // 'of befor' \n\t0x65 0x20 0x64 0x61 0x72 0x6B 0x3F 0x20    // 'e dark? ' \n\t0x57 0x69 0x6C 0x6C 0x20 0x68 0x65 0x20    // 'Will he ' \n\t0x73 0x6F 0x6D 0x65 0x68 0x6F 0x77 0x20    // 'somehow ' \n\t0x6F 0x76 0x65 0x72 0x63 0x6F 0x6D 0x65    // 'overcome' \n\t0x20 0x68 0x69 0x73 0x20 0x70 0x72 0x6F    // ' his pro' \n\t0x62 0x6C 0x65 0x6D 0x20 0x77 0x69 0x74    // 'blem wit' \n\t0x68 0x20 0x6E 0x69 0x67 0x68 0x74 0x20    // 'h night ' \n\t0x66 0x6C 0x79 0x69 0x6E 0x67 0x3F         // 'flying?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_AC= ktipbio131\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_AC, __HELP_NAME(\"ktipbio131\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_AC, __HELP_NAME(\"ktipbio131\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_AB=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_AC, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio131\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_AB=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_AC, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_AB=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_AB, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x38 0x02 0x00 0x01    // '????8???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x00 0x02 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_AB=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_AB, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x65 0x6D 0x62 0x65 0x72    // '??Member' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x4B 0x69 0x64 0x73 0x92 0x20 0x4D 0x79    // 'Kids My' \n\t0x73 0x74 0x65 0x72 0x79 0x20 0x43 0x6C    // 'stery Cl' \n\t0x75 0x62 0x0D 0x0A 0x53 0x61 0x6C 0x76    // 'ub??Salv' \n\t0x61 0x64 0x6F 0x72 0x20 0x68 0x61 0x73    // 'ador has' \n\t0x20 0x73 0x65 0x65 0x6E 0x20 0x61 0x6C    // ' seen al' \n\t0x6C 0x20 0x74 0x68 0x65 0x20 0x4D 0x79    // 'l the My' \n\t0x73 0x74 0x65 0x72 0x79 0x20 0x43 0x6C    // 'stery Cl' \n\t0x75 0x62 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ub movie' \n\t0x73 0x20 0x61 0x6E 0x64 0x20 0x64 0x72    // 's and dr' \n\t0x65 0x61 0x6D 0x73 0x20 0x6F 0x66 0x20    // 'eams of ' \n\t0x73 0x74 0x61 0x72 0x72 0x69 0x6E 0x67    // 'starring' \n\t0x20 0x69 0x6E 0x20 0x6F 0x6E 0x65 0x2E    // ' in one.' \n\t0x20 0x48 0x65 0x20 0x77 0x6F 0x75 0x6C    // ' He woul' \n\t0x64 0x20 0x6C 0x65 0x61 0x64 0x20 0x74    // 'd lead t' \n\t0x68 0x65 0x20 0x63 0x6C 0x75 0x62 0x20    // 'he club ' \n\t0x69 0x6E 0x20 0x66 0x69 0x6E 0x64 0x69    // 'in findi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x70    // 'ng the p' \n\t0x65 0x72 0x73 0x6F 0x6E 0x20 0x77 0x68    // 'erson wh' \n\t0x6F 0x20 0x6B 0x6E 0x65 0x65 0x6C 0x73    // 'o kneels' \n\t0x20 0x62 0x65 0x68 0x69 0x6E 0x64 0x20    // ' behind ' \n\t0x74 0x68 0x65 0x20 0x63 0x6C 0x6F 0x63    // 'the cloc' \n\t0x6B 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'k in the' \n\t0x20 0x73 0x71 0x75 0x61 0x72 0x65 0x20    // ' square ' \n\t0x61 0x74 0x20 0x6E 0x69 0x67 0x68 0x74    // 'at night' \n\t0x20 0x61 0x6E 0x64 0x20 0x6A 0x75 0x6D    // ' and jum' \n\t0x70 0x73 0x20 0x6F 0x75 0x74 0x20 0x74    // 'ps out t' \n\t0x6F 0x20 0x73 0x63 0x61 0x72 0x65 0x20    // 'o scare ' \n\t0x70 0x65 0x6F 0x70 0x6C 0x65 0x2E 0x20    // 'people. ' \n\t0x53 0x61 0x6C 0x76 0x61 0x64 0x6F 0x72    // 'Salvador' \n\t0x20 0x73 0x65 0x65 0x73 0x20 0x68 0x69    // ' sees hi' \n\t0x6D 0x73 0x65 0x6C 0x66 0x20 0x61 0x6E    // 'mself an' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x6B 0x69    // 'd the ki' \n\t0x64 0x73 0x20 0x6C 0x79 0x69 0x6E 0x67    // 'ds lying' \n\t0x20 0x6F 0x6E 0x20 0x74 0x68 0x65 0x20    // ' on the ' \n\t0x67 0x72 0x6F 0x75 0x6E 0x64 0x2C 0x20    // 'ground, ' \n\t0x77 0x61 0x69 0x74 0x69 0x6E 0x67 0x20    // 'waiting ' \n\t0x66 0x6F 0x72 0x20 0x74 0x68 0x65 0x20    // 'for the ' \n\t0x6B 0x6E 0x65 0x65 0x6C 0x69 0x6E 0x67    // 'kneeling' \n\t0x20 0x70 0x65 0x72 0x73 0x6F 0x6E 0x20    // ' person ' \n\t0x74 0x6F 0x20 0x61 0x70 0x70 0x65 0x61    // 'to appea' \n\t0x72 0x2E 0x20 0x54 0x68 0x65 0x6E 0x20    // 'r. Then ' \n\t0x61 0x20 0x67 0x75 0x79 0x20 0x69 0x6E    // 'a guy in' \n\t0x20 0x62 0x61 0x6E 0x64 0x61 0x67 0x65    // ' bandage' \n\t0x73 0x20 0x73 0x6E 0x65 0x61 0x6B 0x73    // 's sneaks' \n\t0x20 0x75 0x70 0x20 0x74 0x6F 0x20 0x74    // ' up to t' \n\t0x68 0x65 0x20 0x63 0x6C 0x6F 0x63 0x6B    // 'he clock' \n\t0x2E 0x20 0x54 0x68 0x65 0x20 0x6B 0x69    // '. The ki' \n\t0x64 0x73 0x20 0x6A 0x75 0x6D 0x70 0x20    // 'ds jump ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x69 0x72    // 'to their' \n\t0x20 0x66 0x65 0x65 0x74 0x20 0x61 0x6E    // ' feet an' \n\t0x64 0x20 0x72 0x75 0x6E 0x20 0x74 0x6F    // 'd run to' \n\t0x20 0x63 0x61 0x70 0x74 0x75 0x72 0x65    // ' capture' \n\t0x20 0x68 0x69 0x6D 0x2E 0x20 0x42 0x75    // ' him. Bu' \n\t0x74 0x20 0x73 0x75 0x64 0x64 0x65 0x6E    // 't sudden' \n\t0x6C 0x79 0x20 0x74 0x68 0x65 0x20 0x67    // 'ly the g' \n\t0x75 0x79 0x20 0x74 0x72 0x61 0x6E 0x73    // 'uy trans' \n\t0x66 0x6F 0x72 0x6D 0x73 0x20 0x69 0x6E    // 'forms in' \n\t0x74 0x6F 0x20 0x61 0x20 0x62 0x61 0x72    // 'to a bar' \n\t0x6B 0x69 0x6E 0x67 0x20 0x64 0x6F 0x67    // 'king dog' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x72 0x75    // ' that ru' \n\t0x6E 0x73 0x20 0x61 0x77 0x61 0x79 0x20    // 'ns away ' \n\t0x73 0x63 0x61 0x72 0x65 0x64 0x2E 0x20    // 'scared. ' \n\t0x0D 0x0A 0x48 0x6F 0x77 0x20 0x77 0x69    // '??How wi' \n\t0x6C 0x6C 0x20 0x74 0x68 0x65 0x79 0x20    // 'll they ' \n\t0x65 0x76 0x65 0x72 0x20 0x74 0x72 0x61    // 'ever tra' \n\t0x70 0x20 0x74 0x68 0x65 0x20 0x64 0x6F    // 'p the do' \n\t0x67 0x20 0x61 0x6E 0x64 0x20 0x74 0x72    // 'g and tr' \n\t0x61 0x6E 0x73 0x66 0x6F 0x72 0x6D 0x20    // 'ansform ' \n\t0x68 0x69 0x6D 0x20 0x62 0x61 0x63 0x6B    // 'him back' \n\t0x3F 0x20                                  // '? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_AD= ktipbio132\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_AD, __HELP_NAME(\"ktipbio132\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_AD, __HELP_NAME(\"ktipbio132\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_AC=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_AD, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio132\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_AC=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_AD, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_AC=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_AC, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x7A 0x02 0x00 0x01    // '????z???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x09 0x02 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_AC=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_AC, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x72 0x65 0x68 0x69 0x73    // '??Prehis' \n\t0x74 0x6F 0x72 0x69 0x63 0x20 0x42 0x6F    // 'toric Bo' \n\t0x79 0x0D 0x0A 0x53 0x61 0x6C 0x76 0x61    // 'y??Salva' \n\t0x64 0x6F 0x72 0x20 0x77 0x61 0x6E 0x74    // 'dor want' \n\t0x73 0x20 0x74 0x6F 0x20 0x67 0x6F 0x20    // 's to go ' \n\t0x62 0x61 0x63 0x6B 0x20 0x69 0x6E 0x20    // 'back in ' \n\t0x74 0x69 0x6D 0x65 0x20 0x74 0x6F 0x20    // 'time to ' \n\t0x70 0x6C 0x61 0x79 0x20 0x61 0x20 0x63    // 'play a c' \n\t0x61 0x76 0x65 0x2D 0x62 0x6F 0x79 0x2C    // 'ave-boy,' \n\t0x20 0x62 0x75 0x74 0x20 0x61 0x20 0x63    // ' but a c' \n\t0x61 0x76 0x65 0x20 0x62 0x6F 0x79 0x20    // 'ave boy ' \n\t0x77 0x68 0x6F 0x20 0x6B 0x6E 0x6F 0x77    // 'who know' \n\t0x73 0x20 0x65 0x76 0x65 0x72 0x79 0x74    // 's everyt' \n\t0x68 0x69 0x6E 0x67 0x20 0x53 0x61 0x6C    // 'hing Sal' \n\t0x76 0x61 0x64 0x6F 0x72 0x20 0x6B 0x6E    // 'vador kn' \n\t0x6F 0x77 0x73 0x20 0x74 0x6F 0x64 0x61    // 'ows toda' \n\t0x79 0x20 0x61 0x6E 0x64 0x20 0x75 0x73    // 'y and us' \n\t0x65 0x73 0x20 0x69 0x74 0x20 0x74 0x6F    // 'es it to' \n\t0x20 0x74 0x72 0x61 0x6E 0x73 0x66 0x6F    // ' transfo' \n\t0x72 0x6D 0x20 0x68 0x69 0x73 0x74 0x6F    // 'rm histo' \n\t0x72 0x79 0x2E 0x20 0x49 0x66 0x20 0x74    // 'ry. If t' \n\t0x68 0x65 0x79 0x20 0x6B 0x6E 0x65 0x77    // 'hey knew' \n\t0x20 0x74 0x68 0x65 0x6E 0x20 0x77 0x68    // ' then wh' \n\t0x61 0x74 0x20 0x77 0x65 0x20 0x6B 0x6E    // 'at we kn' \n\t0x6F 0x77 0x20 0x6E 0x6F 0x77 0x2C 0x20    // 'ow now, ' \n\t0x53 0x61 0x6C 0x76 0x61 0x64 0x6F 0x72    // 'Salvador' \n\t0x20 0x74 0x68 0x69 0x6E 0x6B 0x73 0x2C    // ' thinks,' \n\t0x20 0x77 0x65 0x92 0x64 0x20 0x62 0x65    // ' wed be' \n\t0x20 0x6D 0x75 0x63 0x68 0x20 0x66 0x75    // ' much fu' \n\t0x72 0x74 0x68 0x65 0x72 0x20 0x61 0x6C    // 'rther al' \n\t0x6F 0x6E 0x67 0x20 0x69 0x6E 0x20 0x6C    // 'ong in l' \n\t0x69 0x66 0x65 0x2E 0x20 0x46 0x6F 0x72    // 'ife. For' \n\t0x20 0x65 0x78 0x61 0x6D 0x70 0x6C 0x65    // ' example' \n\t0x2C 0x20 0x53 0x61 0x6C 0x76 0x61 0x64    // ', Salvad' \n\t0x6F 0x72 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'or would' \n\t0x20 0x69 0x6E 0x74 0x72 0x6F 0x64 0x75    // ' introdu' \n\t0x63 0x65 0x20 0x74 0x68 0x65 0x20 0x63    // 'ce the c' \n\t0x61 0x72 0x20 0x69 0x6E 0x20 0x61 0x20    // 'ar in a ' \n\t0x77 0x6F 0x72 0x6C 0x64 0x20 0x77 0x68    // 'world wh' \n\t0x65 0x72 0x65 0x20 0x74 0x68 0x65 0x79    // 'ere they' \n\t0x20 0x68 0x61 0x64 0x6E 0x92 0x74 0x20    // ' hadnt ' \n\t0x65 0x76 0x65 0x6E 0x20 0x69 0x6E 0x76    // 'even inv' \n\t0x65 0x6E 0x74 0x65 0x64 0x20 0x74 0x68    // 'ented th' \n\t0x65 0x20 0x77 0x68 0x65 0x65 0x6C 0x20    // 'e wheel ' \n\t0x79 0x65 0x74 0x2E 0x20 0x0D 0x0A 0x42    // 'yet. ??B' \n\t0x75 0x74 0x20 0x74 0x68 0x69 0x6E 0x67    // 'ut thing' \n\t0x73 0x20 0x67 0x6F 0x20 0x77 0x72 0x6F    // 's go wro' \n\t0x6E 0x67 0x2E 0x20 0x49 0x6E 0x73 0x74    // 'ng. Inst' \n\t0x65 0x61 0x64 0x20 0x6F 0x66 0x20 0x65    // 'ead of e' \n\t0x76 0x65 0x72 0x79 0x6F 0x6E 0x65 0x20    // 'veryone ' \n\t0x62 0x65 0x69 0x6E 0x67 0x20 0x68 0x61    // 'being ha' \n\t0x70 0x70 0x79 0x20 0x74 0x6F 0x20 0x68    // 'ppy to h' \n\t0x61 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ave the ' \n\t0x6B 0x6E 0x6F 0x77 0x6C 0x65 0x64 0x67    // 'knowledg' \n\t0x65 0x20 0x53 0x61 0x6C 0x76 0x61 0x64    // 'e Salvad' \n\t0x6F 0x72 0x20 0x62 0x72 0x69 0x6E 0x67    // 'or bring' \n\t0x73 0x2C 0x20 0x74 0x68 0x65 0x79 0x20    // 's, they ' \n\t0x61 0x72 0x65 0x20 0x73 0x63 0x61 0x72    // 'are scar' \n\t0x65 0x64 0x20 0x6F 0x66 0x20 0x68 0x69    // 'ed of hi' \n\t0x6D 0x2E 0x20 0x54 0x68 0x65 0x79 0x20    // 'm. They ' \n\t0x74 0x68 0x69 0x6E 0x6B 0x20 0x68 0x65    // 'think he' \n\t0x20 0x69 0x73 0x20 0x65 0x76 0x69 0x6C    // ' is evil' \n\t0x20 0x61 0x6E 0x64 0x20 0x70 0x6C 0x6F    // ' and plo' \n\t0x74 0x20 0x74 0x6F 0x20 0x73 0x71 0x75    // 't to squ' \n\t0x61 0x73 0x68 0x20 0x68 0x69 0x6D 0x2E    // 'ash him.' \n\t0x20 0x0D 0x0A 0x54 0x68 0x65 0x20 0x63    // ' ??The c' \n\t0x72 0x6F 0x77 0x64 0x20 0x63 0x69 0x72    // 'rowd cir' \n\t0x63 0x6C 0x65 0x73 0x20 0x61 0x72 0x6F    // 'cles aro' \n\t0x75 0x6E 0x64 0x20 0x53 0x61 0x6C 0x76    // 'und Salv' \n\t0x61 0x64 0x6F 0x72 0x97 0x68 0x6F 0x77    // 'adorhow' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x68 0x65    // ' will he' \n\t0x20 0x67 0x65 0x74 0x20 0x66 0x72 0x65    // ' get fre' \n\t0x65 0x3F 0x20 0x48 0x6F 0x77 0x20 0x77    // 'e? How w' \n\t0x69 0x6C 0x6C 0x20 0x68 0x65 0x20 0x63    // 'ill he c' \n\t0x6F 0x6E 0x76 0x69 0x6E 0x63 0x65 0x20    // 'onvince ' \n\t0x74 0x68 0x65 0x6D 0x20 0x74 0x6F 0x20    // 'them to ' \n\t0x61 0x63 0x63 0x65 0x70 0x74 0x20 0x77    // 'accept w' \n\t0x68 0x61 0x74 0x20 0x68 0x65 0x20 0x68    // 'hat he h' \n\t0x61 0x73 0x20 0x74 0x6F 0x20 0x6F 0x66    // 'as to of' \n\t0x66 0x65 0x72 0x3F                        // 'fer?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_AE= ktipbio133\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_AE, __HELP_NAME(\"ktipbio133\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_AE, __HELP_NAME(\"ktipbio133\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_AE, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio133\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_AE, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0C 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3D 0x03 0x00 0x01    // '????=???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xC9 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C4, 0x0)\n\tBYTE\n\t0x03 0x03 0x70 0x72 0x6F 0x66 0x65 0x73    // '??profes' \n\t0x73 0x69 0x6F 0x6E 0x61 0x6C 0x0D 0x0A    // 'sional??' \n\t0x53 0x65 0x62 0x61 0x73 0x74 0x69 0x61    // 'Sebastia' \n\t0x6E 0x20 0x69 0x73 0x20 0x70 0x72 0x65    // 'n is pre' \n\t0x74 0x74 0x79 0x20 0x73 0x75 0x72 0x65    // 'tty sure' \n\t0x20 0x68 0x65 0x92 0x6C 0x6C 0x20 0x62    // ' hell b' \n\t0x65 0x63 0x6F 0x6D 0x65 0x20 0x61 0x20    // 'ecome a ' \n\t0x70 0x72 0x6F 0x66 0x65 0x73 0x73 0x69    // 'professi' \n\t0x6F 0x6E 0x61 0x6C 0x20 0x62 0x61 0x73    // 'onal bas' \n\t0x65 0x62 0x61 0x6C 0x6C 0x20 0x73 0x74    // 'eball st' \n\t0x61 0x72 0x20 0x62 0x65 0x63 0x61 0x75    // 'ar becau' \n\t0x73 0x65 0x20 0x68 0x65 0x20 0x68 0x61    // 'se he ha' \n\t0x73 0x20 0x61 0x20 0x73 0x65 0x63 0x72    // 's a secr' \n\t0x65 0x74 0x2E 0x20 0x20 0x57 0x68 0x65    // 'et.  Whe' \n\t0x6E 0x20 0x68 0x65 0x20 0x74 0x75 0x72    // 'n he tur' \n\t0x6E 0x73 0x20 0x68 0x69 0x73 0x20 0x68    // 'ns his h' \n\t0x61 0x74 0x20 0x73 0x69 0x64 0x65 0x77    // 'at sidew' \n\t0x61 0x79 0x73 0x20 0x61 0x6E 0x64 0x20    // 'ays and ' \n\t0x67 0x72 0x69 0x74 0x73 0x20 0x68 0x65    // 'grits he' \n\t0x20 0x74 0x65 0x65 0x74 0x68 0x20 0x6A    // ' teeth j' \n\t0x75 0x73 0x74 0x20 0x73 0x6F 0x2C 0x20    // 'ust so, ' \n\t0x68 0x65 0x20 0x68 0x69 0x74 0x73 0x20    // 'he hits ' \n\t0x61 0x20 0x68 0x6F 0x6D 0x65 0x20 0x72    // 'a home r' \n\t0x75 0x6E 0x20 0x39 0x20 0x74 0x69 0x6D    // 'un 9 tim' \n\t0x65 0x73 0x20 0x6F 0x75 0x74 0x20 0x6F    // 'es out o' \n\t0x66 0x20 0x31 0x30 0x2E 0x20 0x20 0x41    // 'f 10.  A' \n\t0x6E 0x64 0x2C 0x20 0x61 0x73 0x20 0x61    // 'nd, as a' \n\t0x6E 0x20 0x6F 0x75 0x74 0x66 0x69 0x65    // 'n outfie' \n\t0x6C 0x64 0x65 0x72 0x2C 0x20 0x68 0x65    // 'lder, he' \n\t0x20 0x63 0x61 0x6E 0x20 0x73 0x70 0x69    // ' can spi' \n\t0x6E 0x20 0x61 0x72 0x6F 0x75 0x6E 0x64    // 'n around' \n\t0x20 0x72 0x65 0x61 0x6C 0x6C 0x79 0x20    // ' really ' \n\t0x66 0x61 0x73 0x74 0x2C 0x20 0x61 0x6E    // 'fast, an' \n\t0x64 0x20 0x74 0x68 0x65 0x6E 0x20 0x6A    // 'd then j' \n\t0x75 0x6D 0x70 0x20 0x73 0x6F 0x20 0x68    // 'ump so h' \n\t0x69 0x67 0x68 0x20 0x74 0x68 0x61 0x74    // 'igh that' \n\t0x20 0x6E 0x6F 0x20 0x68 0x69 0x67 0x68    // ' no high' \n\t0x20 0x66 0x6C 0x79 0x20 0x62 0x61 0x6C    // ' fly bal' \n\t0x6C 0x20 0x69 0x73 0x20 0x6F 0x75 0x74    // 'l is out' \n\t0x73 0x69 0x64 0x65 0x20 0x68 0x69 0x73    // 'side his' \n\t0x20 0x67 0x72 0x61 0x73 0x70 0x2E 0x20    // ' grasp. ' \n\t0x20 0x4F 0x6E 0x65 0x20 0x64 0x61 0x79    // ' One day' \n\t0x2C 0x20 0x74 0x68 0x65 0x20 0x67 0x75    // ', the gu' \n\t0x79 0x73 0x20 0x77 0x65 0x72 0x65 0x20    // 'ys were ' \n\t0x62 0x61 0x74 0x74 0x69 0x6E 0x67 0x20    // 'batting ' \n\t0x62 0x61 0x6C 0x6C 0x73 0x20 0x61 0x72    // 'balls ar' \n\t0x6F 0x75 0x6E 0x64 0x20 0x61 0x6E 0x64    // 'ound and' \n\t0x20 0x53 0x65 0x62 0x61 0x73 0x74 0x69    // ' Sebasti' \n\t0x61 0x6E 0x20 0x68 0x69 0x74 0x20 0x61    // 'an hit a' \n\t0x20 0x62 0x61 0x6C 0x6C 0x20 0x63 0x6C    // ' ball cl' \n\t0x65 0x61 0x6E 0x20 0x74 0x68 0x72 0x6F    // 'ean thro' \n\t0x75 0x67 0x68 0x20 0x74 0x68 0x65 0x20    // 'ugh the ' \n\t0x77 0x69 0x6E 0x64 0x6F 0x77 0x20 0x6F    // 'window o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x74 0x68    // 'f the th' \n\t0x65 0x61 0x74 0x65 0x72 0x20 0x61 0x63    // 'eater ac' \n\t0x72 0x6F 0x73 0x73 0x20 0x74 0x68 0x65    // 'ross the' \n\t0x20 0x73 0x74 0x72 0x65 0x65 0x74 0x2E    // ' street.' \n\t0x20 0x0D 0x0A 0x49 0x6E 0x73 0x74 0x65    // ' ??Inste' \n\t0x61 0x64 0x20 0x6F 0x66 0x20 0x72 0x75    // 'ad of ru' \n\t0x6E 0x6E 0x69 0x6E 0x67 0x20 0x61 0x77    // 'nning aw' \n\t0x61 0x79 0x2C 0x20 0x53 0x65 0x62 0x61    // 'ay, Seba' \n\t0x73 0x74 0x69 0x61 0x6E 0x20 0x77 0x61    // 'stian wa' \n\t0x6C 0x6B 0x65 0x64 0x20 0x72 0x69 0x67    // 'lked rig' \n\t0x68 0x74 0x20 0x75 0x70 0x20 0x74 0x6F    // 'ht up to' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x68 0x65    // ' the the' \n\t0x61 0x74 0x65 0x72 0x20 0x6D 0x61 0x6E    // 'ater man' \n\t0x61 0x67 0x65 0x72 0x2C 0x20 0x61 0x70    // 'ager, ap' \n\t0x6F 0x6C 0x6F 0x67 0x69 0x7A 0x65 0x64    // 'ologized' \n\t0x2C 0x20 0x61 0x6E 0x64 0x20 0x6F 0x66    // ', and of' \n\t0x66 0x65 0x72 0x65 0x64 0x20 0x74 0x6F    // 'fered to' \n\t0x20 0x70 0x61 0x79 0x20 0x66 0x6F 0x72    // ' pay for' \n\t0x20 0x74 0x68 0x65 0x20 0x64 0x61 0x6D    // ' the dam' \n\t0x61 0x67 0x65 0x2E 0x20 0x20 0x54 0x68    // 'age.  Th' \n\t0x65 0x20 0x61 0x6E 0x67 0x72 0x79 0x20    // 'e angry ' \n\t0x6D 0x61 0x6E 0x61 0x67 0x65 0x72 0x20    // 'manager ' \n\t0x63 0x61 0x6C 0x6D 0x65 0x64 0x20 0x64    // 'calmed d' \n\t0x6F 0x77 0x6E 0x2C 0x20 0x62 0x75 0x74    // 'own, but' \n\t0x20 0x61 0x20 0x77 0x65 0x69 0x72 0x64    // ' a weird' \n\t0x2D 0x6C 0x6F 0x6F 0x6B 0x69 0x6E 0x67    // '-looking' \n\t0x20 0x67 0x75 0x79 0x20 0x62 0x65 0x68    // ' guy beh' \n\t0x69 0x6E 0x64 0x20 0x68 0x69 0x6D 0x20    // 'ind him ' \n\t0x77 0x61 0x6E 0x74 0x65 0x64 0x20 0x74    // 'wanted t' \n\t0x6F 0x20 0x74 0x61 0x6C 0x6B 0x20 0x74    // 'o talk t' \n\t0x6F 0x20 0x53 0x65 0x62 0x61 0x73 0x74    // 'o Sebast' \n\t0x69 0x61 0x6E 0x2E 0x20 0x54 0x75 0x72    // 'ian. Tur' \n\t0x6E 0x73 0x20 0x6F 0x75 0x74 0x20 0x74    // 'ns out t' \n\t0x68 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // 'hat the ' \n\t0x66 0x61 0x6D 0x6F 0x75 0x73 0x20 0x64    // 'famous d' \n\t0x69 0x72 0x65 0x63 0x74 0x6F 0x72 0x20    // 'irector ' \n\t0x4D 0x63 0x5A 0x65 0x65 0x20 0x77 0x61    // 'McZee wa' \n\t0x73 0x20 0x6C 0x6F 0x6F 0x6B 0x69 0x6E    // 's lookin' \n\t0x67 0x20 0x66 0x6F 0x72 0x20 0x79 0x6F    // 'g for yo' \n\t0x75 0x6E 0x67 0x20 0x61 0x63 0x74 0x6F    // 'ung acto' \n\t0x72 0x73 0x20 0x66 0x6F 0x72 0x20 0x68    // 'rs for h' \n\t0x69 0x73 0x20 0x6E 0x65 0x78 0x74 0x20    // 'is next ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20 0x93    // 'movie, ' \n\t0x42 0x69 0x67 0x20 0x4C 0x65 0x61 0x67    // 'Big Leag' \n\t0x75 0x65 0x2E 0x94 0x20 0x20 0x48 0x65    // 'ue.  He' \n\t0x20 0x74 0x68 0x6F 0x75 0x67 0x68 0x74    // ' thought' \n\t0x20 0x53 0x65 0x62 0x61 0x73 0x74 0x69    // ' Sebasti' \n\t0x61 0x6E 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'an would' \n\t0x20 0x62 0x65 0x20 0x67 0x72 0x65 0x61    // ' be grea' \n\t0x74 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 't in the' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E         // ' movie.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_AF= ktipbio134\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_AF, __HELP_NAME(\"ktipbio134\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_AF, __HELP_NAME(\"ktipbio134\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_45=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_AF, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio134\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_45=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_AF, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_45=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD9 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x50 0x02 0x00 0x82    // '????P??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_45=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x72 0x69 0x63 0x6B 0x2D    // '??Trick-' \n\t0x6F 0x72 0x2D 0x54 0x72 0x65 0x61 0x74    // 'or-Treat' \n\t0x65 0x72 0x20 0x44 0x72 0x65 0x73 0x73    // 'er Dress' \n\t0x65 0x64 0x20 0x61 0x73 0x20 0x61 0x6E    // 'ed as an' \n\t0x20 0x41 0x6C 0x69 0x65 0x6E 0x0D 0x0A    // ' Alien??' \n\t0x53 0x65 0x62 0x61 0x73 0x74 0x69 0x61    // 'Sebastia' \n\t0x6E 0x20 0x68 0x61 0x73 0x20 0x77 0x61    // 'n has wa' \n\t0x74 0x63 0x68 0x65 0x64 0x20 0x61 0x6C    // 'tched al' \n\t0x6C 0x20 0x74 0x68 0x65 0x20 0x53 0x74    // 'l the St' \n\t0x61 0x72 0x20 0x54 0x72 0x65 0x6B 0x20    // 'ar Trek ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x73 0x20 0x61    // 'movies a' \n\t0x6E 0x64 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'nd would' \n\t0x20 0x6C 0x6F 0x76 0x65 0x20 0x74 0x6F    // ' love to' \n\t0x20 0x70 0x6C 0x61 0x79 0x20 0x74 0x68    // ' play th' \n\t0x65 0x20 0x72 0x6F 0x6C 0x65 0x20 0x6F    // 'e role o' \n\t0x66 0x20 0x73 0x6F 0x6D 0x65 0x6F 0x6E    // 'f someon' \n\t0x65 0x20 0x6C 0x69 0x6B 0x65 0x20 0x53    // 'e like S' \n\t0x70 0x6F 0x63 0x6B 0x2E 0x20 0x48 0x65    // 'pock. He' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x68    // ' would h' \n\t0x61 0x76 0x65 0x20 0x73 0x70 0x65 0x63    // 'ave spec' \n\t0x69 0x61 0x6C 0x20 0x70 0x6F 0x77 0x65    // 'ial powe' \n\t0x72 0x73 0x2C 0x20 0x6C 0x69 0x6B 0x65    // 'rs, like' \n\t0x20 0x62 0x65 0x69 0x6E 0x67 0x20 0x61    // ' being a' \n\t0x62 0x6C 0x65 0x20 0x74 0x6F 0x20 0x62    // 'ble to b' \n\t0x65 0x61 0x6D 0x20 0x68 0x69 0x6D 0x73    // 'eam hims' \n\t0x65 0x6C 0x66 0x20 0x69 0x6E 0x74 0x6F    // 'elf into' \n\t0x20 0x73 0x6F 0x6D 0x65 0x6F 0x6E 0x65    // ' someone' \n\t0x20 0x65 0x6C 0x73 0x65 0x27 0x73 0x20    // ' else's ' \n\t0x62 0x6F 0x64 0x79 0x2C 0x20 0x61 0x6E    // 'body, an' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x70 0x6F    // 'd the po' \n\t0x77 0x65 0x72 0x20 0x74 0x6F 0x20 0x73    // 'wer to s' \n\t0x68 0x72 0x69 0x6E 0x6B 0x20 0x68 0x69    // 'hrink hi' \n\t0x6D 0x73 0x65 0x6C 0x66 0x20 0x73 0x6F    // 'mself so' \n\t0x20 0x73 0x6D 0x61 0x6C 0x6C 0x20 0x74    // ' small t' \n\t0x68 0x61 0x74 0x20 0x68 0x65 0x20 0x63    // 'hat he c' \n\t0x6F 0x75 0x6C 0x64 0x20 0x73 0x70 0x79    // 'ould spy' \n\t0x20 0x6F 0x6E 0x20 0x65 0x6E 0x65 0x6D    // ' on enem' \n\t0x79 0x20 0x61 0x6C 0x69 0x65 0x6E 0x73    // 'y aliens' \n\t0x2E 0x20 0x0D 0x0A 0x53 0x65 0x62 0x61    // '. ??Seba' \n\t0x73 0x74 0x69 0x61 0x6E 0x20 0x73 0x65    // 'stian se' \n\t0x65 0x73 0x20 0x68 0x69 0x6D 0x73 0x65    // 'es himse' \n\t0x6C 0x66 0x20 0x70 0x6C 0x61 0x79 0x69    // 'lf playi' \n\t0x6E 0x67 0x20 0x61 0x20 0x73 0x70 0x61    // 'ng a spa' \n\t0x63 0x65 0x20 0x61 0x6C 0x69 0x65 0x6E    // 'ce alien' \n\t0x20 0x77 0x68 0x6F 0x20 0x63 0x6F 0x6D    // ' who com' \n\t0x65 0x73 0x20 0x74 0x6F 0x20 0x65 0x61    // 'es to ea' \n\t0x72 0x74 0x68 0x2E 0x20 0x48 0x65 0x27    // 'rth. He'' \n\t0x73 0x20 0x74 0x68 0x65 0x72 0x65 0x20    // 's there ' \n\t0x74 0x6F 0x20 0x73 0x74 0x6F 0x70 0x20    // 'to stop ' \n\t0x61 0x6E 0x20 0x65 0x76 0x69 0x6C 0x20    // 'an evil ' \n\t0x72 0x6F 0x62 0x6F 0x74 0x20 0x73 0x65    // 'robot se' \n\t0x6E 0x74 0x20 0x62 0x79 0x20 0x74 0x68    // 'nt by th' \n\t0x65 0x20 0x65 0x6E 0x65 0x6D 0x79 0x20    // 'e enemy ' \n\t0x74 0x6F 0x20 0x63 0x6C 0x6F 0x73 0x65    // 'to close' \n\t0x20 0x61 0x6C 0x6C 0x20 0x74 0x68 0x65    // ' all the' \n\t0x20 0x74 0x6F 0x79 0x20 0x73 0x74 0x6F    // ' toy sto' \n\t0x72 0x65 0x73 0x20 0x6F 0x6E 0x20 0x65    // 'res on e' \n\t0x61 0x72 0x74 0x68 0x2E 0x20 0x54 0x68    // 'arth. Th' \n\t0x65 0x20 0x72 0x6F 0x62 0x6F 0x74 0x20    // 'e robot ' \n\t0x77 0x61 0x6C 0x6B 0x73 0x20 0x74 0x68    // 'walks th' \n\t0x72 0x6F 0x75 0x67 0x68 0x20 0x74 0x68    // 'rough th' \n\t0x65 0x20 0x6D 0x61 0x6C 0x6C 0x2C 0x20    // 'e mall, ' \n\t0x6C 0x6F 0x6F 0x6B 0x69 0x6E 0x67 0x20    // 'looking ' \n\t0x66 0x6F 0x72 0x20 0x74 0x6F 0x79 0x20    // 'for toy ' \n\t0x73 0x74 0x6F 0x72 0x65 0x73 0x2E 0x20    // 'stores. ' \n\t0x49 0x74 0x20 0x73 0x70 0x6F 0x74 0x73    // 'It spots' \n\t0x20 0x53 0x65 0x62 0x61 0x73 0x74 0x69    // ' Sebasti' \n\t0x61 0x6E 0x20 0x69 0x6E 0x20 0x68 0x69    // 'an in hi' \n\t0x73 0x20 0x61 0x6C 0x69 0x65 0x6E 0x20    // 's alien ' \n\t0x63 0x6F 0x73 0x74 0x75 0x6D 0x65 0x2C    // 'costume,' \n\t0x20 0x61 0x6E 0x64 0x20 0x6B 0x6E 0x6F    // ' and kno' \n\t0x77 0x73 0x20 0x68 0x65 0x92 0x73 0x20    // 'ws hes ' \n\t0x6F 0x75 0x74 0x20 0x74 0x6F 0x20 0x73    // 'out to s' \n\t0x74 0x6F 0x70 0x20 0x69 0x74 0x2E 0x20    // 'top it. ' \n\t0x0D 0x0A 0x53 0x65 0x62 0x61 0x73 0x74    // '??Sebast' \n\t0x69 0x61 0x6E 0x20 0x68 0x61 0x73 0x20    // 'ian has ' \n\t0x74 0x6F 0x20 0x74 0x72 0x61 0x6E 0x73    // 'to trans' \n\t0x66 0x6F 0x72 0x6D 0x20 0x68 0x69 0x6D    // 'form him' \n\t0x73 0x65 0x6C 0x66 0x20 0x71 0x75 0x69    // 'self qui' \n\t0x63 0x6B 0x6C 0x79 0x2C 0x20 0x62 0x75    // 'ckly, bu' \n\t0x74 0x20 0x77 0x68 0x6F 0x20 0x73 0x68    // 't who sh' \n\t0x6F 0x75 0x6C 0x64 0x20 0x68 0x65 0x20    // 'ould he ' \n\t0x62 0x65 0x63 0x6F 0x6D 0x65 0x2C 0x20    // 'become, ' \n\t0x61 0x6E 0x64 0x20 0x68 0x6F 0x77 0x20    // 'and how ' \n\t0x77 0x69 0x6C 0x6C 0x20 0x68 0x65 0x20    // 'will he ' \n\t0x73 0x74 0x6F 0x70 0x20 0x74 0x68 0x65    // 'stop the' \n\t0x20 0x72 0x6F 0x62 0x6F 0x74 0x20 0x66    // ' robot f' \n\t0x72 0x6F 0x6D 0x20 0x64 0x65 0x73 0x74    // 'rom dest' \n\t0x72 0x6F 0x79 0x69 0x6E 0x67 0x20 0x61    // 'roying a' \n\t0x6C 0x6C 0x20 0x74 0x68 0x65 0x20 0x74    // 'll the t' \n\t0x6F 0x79 0x20 0x73 0x74 0x6F 0x72 0x65    // 'oy store' \n\t0x73 0x3F 0x20                             // 's? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B0= ktipbio135\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B0, __HELP_NAME(\"ktipbio135\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B0, __HELP_NAME(\"ktipbio135\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_AA=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio135\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_AA=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0D 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_AA=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_AA, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x03 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB2 0x02 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_AA=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_AA, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x69 0x7A 0x7A 0x61 0x20    // '??Pizza ' \n\t0x44 0x65 0x6C 0x69 0x76 0x65 0x72 0x79    // 'Delivery' \n\t0x20 0x42 0x6F 0x79 0x0D 0x0A 0x53 0x65    // ' Boy??Se' \n\t0x62 0x61 0x73 0x74 0x69 0x61 0x6E 0x20    // 'bastian ' \n\t0x74 0x68 0x69 0x6E 0x6B 0x73 0x20 0x69    // 'thinks i' \n\t0x74 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 't would ' \n\t0x62 0x65 0x20 0x67 0x72 0x65 0x61 0x74    // 'be great' \n\t0x20 0x74 0x6F 0x20 0x70 0x6C 0x61 0x79    // ' to play' \n\t0x20 0x61 0x20 0x70 0x69 0x7A 0x7A 0x61    // ' a pizza' \n\t0x20 0x64 0x65 0x6C 0x69 0x76 0x65 0x72    // ' deliver' \n\t0x79 0x20 0x62 0x6F 0x79 0x20 0x77 0x68    // 'y boy wh' \n\t0x6F 0x20 0x64 0x65 0x6C 0x69 0x76 0x65    // 'o delive' \n\t0x72 0x73 0x20 0x70 0x69 0x7A 0x7A 0x61    // 'rs pizza' \n\t0x20 0x66 0x6F 0x72 0x20 0x64 0x69 0x6E    // ' for din' \n\t0x6E 0x65 0x72 0x20 0x61 0x6E 0x64 0x20    // 'ner and ' \n\t0x64 0x6F 0x75 0x67 0x68 0x6E 0x75 0x74    // 'doughnut' \n\t0x73 0x20 0x66 0x6F 0x72 0x20 0x64 0x65    // 's for de' \n\t0x73 0x73 0x65 0x72 0x74 0x2E 0x20 0x20    // 'ssert.  ' \n\t0x48 0x65 0x27 0x64 0x20 0x68 0x61 0x76    // 'He'd hav' \n\t0x65 0x20 0x74 0x68 0x69 0x73 0x20 0x63    // 'e this c' \n\t0x6F 0x6F 0x6C 0x20 0x54 0x65 0x78 0x61    // 'ool Texa' \n\t0x73 0x20 0x43 0x61 0x64 0x69 0x6C 0x6C    // 's Cadill' \n\t0x61 0x63 0x20 0x77 0x69 0x74 0x68 0x20    // 'ac with ' \n\t0x6C 0x6F 0x6E 0x67 0x68 0x6F 0x72 0x6E    // 'longhorn' \n\t0x73 0x2C 0x20 0x73 0x6F 0x20 0x69 0x66    // 's, so if' \n\t0x20 0x68 0x65 0x20 0x67 0x6F 0x74 0x20    // ' he got ' \n\t0x73 0x74 0x75 0x63 0x6B 0x20 0x69 0x6E    // 'stuck in' \n\t0x20 0x74 0x72 0x61 0x66 0x66 0x69 0x63    // ' traffic' \n\t0x2C 0x20 0x68 0x65 0x20 0x63 0x6F 0x75    // ', he cou' \n\t0x6C 0x64 0x20 0x6A 0x75 0x73 0x74 0x20    // 'ld just ' \n\t0x68 0x6F 0x72 0x6E 0x20 0x68 0x69 0x73    // 'horn his' \n\t0x20 0x77 0x61 0x79 0x20 0x74 0x68 0x72    // ' way thr' \n\t0x6F 0x75 0x67 0x68 0x2E 0x20 0x0D 0x0A    // 'ough. ??' \n\t0x42 0x75 0x74 0x20 0x77 0x68 0x61 0x74    // 'But what' \n\t0x20 0x68 0x65 0x20 0x72 0x65 0x61 0x6C    // ' he real' \n\t0x6C 0x79 0x20 0x77 0x61 0x6E 0x74 0x73    // 'ly wants' \n\t0x20 0x74 0x6F 0x20 0x64 0x6F 0x20 0x69    // ' to do i' \n\t0x73 0x20 0x64 0x65 0x6C 0x69 0x76 0x65    // 's delive' \n\t0x72 0x20 0x70 0x69 0x7A 0x7A 0x61 0x20    // 'r pizza ' \n\t0x61 0x6E 0x64 0x20 0x64 0x6F 0x75 0x67    // 'and doug' \n\t0x68 0x6E 0x75 0x74 0x73 0x20 0x74 0x6F    // 'hnuts to' \n\t0x20 0x74 0x68 0x65 0x20 0x6C 0x61 0x62    // ' the lab' \n\t0x6F 0x72 0x61 0x74 0x6F 0x72 0x79 0x20    // 'oratory ' \n\t0x6F 0x66 0x20 0x74 0x68 0x61 0x74 0x20    // 'of that ' \n\t0x73 0x69 0x6C 0x6C 0x79 0x20 0x67 0x72    // 'silly gr' \n\t0x65 0x65 0x6E 0x20 0x73 0x63 0x69 0x65    // 'een scie' \n\t0x6E 0x74 0x69 0x73 0x74 0x2C 0x20 0x57    // 'ntist, W' \n\t0x69 0x6C 0x6C 0x79 0x2E 0x20 0x20 0x45    // 'illy.  E' \n\t0x76 0x65 0x6E 0x20 0x74 0x68 0x6F 0x75    // 'ven thou' \n\t0x67 0x68 0x20 0x74 0x68 0x65 0x20 0x6C    // 'gh the l' \n\t0x61 0x62 0x20 0x69 0x73 0x20 0x67 0x75    // 'ab is gu' \n\t0x61 0x72 0x64 0x65 0x64 0x20 0x62 0x79    // 'arded by' \n\t0x20 0x66 0x69 0x6C 0x74 0x68 0x79 0x20    // ' filthy ' \n\t0x72 0x61 0x74 0x73 0x2C 0x20 0x53 0x65    // 'rats, Se' \n\t0x62 0x61 0x73 0x74 0x69 0x61 0x6E 0x20    // 'bastian ' \n\t0x74 0x68 0x69 0x6E 0x6B 0x73 0x20 0x68    // 'thinks h' \n\t0x65 0x20 0x63 0x61 0x6E 0x20 0x67 0x69    // 'e can gi' \n\t0x76 0x65 0x20 0x74 0x68 0x65 0x20 0x64    // 've the d' \n\t0x6F 0x75 0x67 0x68 0x6E 0x75 0x74 0x73    // 'oughnuts' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x72 0x61 0x74 0x73 0x20 0x61 0x6E 0x64    // 'rats and' \n\t0x20 0x67 0x65 0x74 0x20 0x70 0x61 0x73    // ' get pas' \n\t0x74 0x20 0x74 0x68 0x65 0x6D 0x2C 0x20    // 't them, ' \n\t0x74 0x68 0x65 0x6E 0x20 0x66 0x69 0x6E    // 'then fin' \n\t0x64 0x20 0x57 0x69 0x6C 0x6C 0x79 0x92    // 'd Willy' \n\t0x73 0x20 0x70 0x6F 0x74 0x69 0x6F 0x6E    // 's potion' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x69 0x73    // ' that is' \n\t0x20 0x74 0x75 0x72 0x6E 0x69 0x6E 0x67    // ' turning' \n\t0x20 0x6B 0x69 0x64 0x73 0x20 0x69 0x6E    // ' kids in' \n\t0x74 0x6F 0x20 0x77 0x6F 0x6F 0x64 0x65    // 'to woode' \n\t0x6E 0x20 0x74 0x6F 0x74 0x65 0x6D 0x20    // 'n totem ' \n\t0x70 0x6F 0x6C 0x65 0x73 0x2E 0x20 0x57    // 'poles. W' \n\t0x68 0x65 0x6E 0x20 0x68 0x65 0x20 0x66    // 'hen he f' \n\t0x69 0x6E 0x64 0x73 0x20 0x74 0x68 0x65    // 'inds the' \n\t0x20 0x70 0x6F 0x74 0x69 0x6F 0x6E 0x2C    // ' potion,' \n\t0x20 0x53 0x65 0x62 0x61 0x73 0x74 0x69    // ' Sebasti' \n\t0x61 0x6E 0x20 0x77 0x69 0x6C 0x6C 0x20    // 'an will ' \n\t0x68 0x61 0x76 0x65 0x20 0x74 0x6F 0x20    // 'have to ' \n\t0x74 0x72 0x69 0x63 0x6B 0x20 0x57 0x69    // 'trick Wi' \n\t0x6C 0x6C 0x79 0x20 0x69 0x6E 0x74 0x6F    // 'lly into' \n\t0x20 0x74 0x65 0x6C 0x6C 0x69 0x6E 0x67    // ' telling' \n\t0x20 0x68 0x69 0x6D 0x20 0x68 0x6F 0x77    // ' him how' \n\t0x20 0x74 0x6F 0x20 0x74 0x75 0x72 0x6E    // ' to turn' \n\t0x20 0x74 0x68 0x65 0x20 0x6B 0x69 0x64    // ' the kid' \n\t0x73 0x20 0x62 0x61 0x63 0x6B 0x20 0x69    // 's back i' \n\t0x6E 0x74 0x6F 0x20 0x6B 0x69 0x64 0x73    // 'nto kids' \n\t0x2E 0x20 0x0D 0x0A 0x42 0x75 0x74 0x20    // '. ??But ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x68 0x61    // 'where ha' \n\t0x73 0x20 0x57 0x69 0x6C 0x6C 0x79 0x20    // 's Willy ' \n\t0x68 0x69 0x64 0x64 0x65 0x6E 0x20 0x74    // 'hidden t' \n\t0x68 0x65 0x20 0x74 0x6F 0x74 0x65 0x6D    // 'he totem' \n\t0x2D 0x70 0x6F 0x6C 0x65 0x20 0x6B 0x69    // '-pole ki' \n\t0x64 0x73 0x3F 0x20 0x20 0x41 0x6E 0x64    // 'ds?  And' \n\t0x20 0x68 0x6F 0x77 0x20 0x77 0x69 0x6C    // ' how wil' \n\t0x6C 0x20 0x53 0x65 0x62 0x61 0x73 0x74    // 'l Sebast' \n\t0x69 0x61 0x6E 0x20 0x67 0x65 0x74 0x20    // 'ian get ' \n\t0x74 0x68 0x65 0x20 0x73 0x65 0x63 0x72    // 'the secr' \n\t0x65 0x74 0x20 0x72 0x65 0x6D 0x65 0x64    // 'et remed' \n\t0x79 0x20 0x66 0x72 0x6F 0x6D 0x20 0x57    // 'y from W' \n\t0x69 0x6C 0x6C 0x79 0x3F                   // 'illy?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B1= ktipbio136\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B1, __HELP_NAME(\"ktipbio136\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B1, __HELP_NAME(\"ktipbio136\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio136\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x91 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B1, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x6F 0x79 0x20 0x53 0x63    // '??Boy Sc' \n\t0x6F 0x75 0x74 0x0D 0x0A 0x53 0x65 0x62    // 'out??Seb' \n\t0x61 0x73 0x74 0x69 0x61 0x6E 0x20 0x61    // 'astian a' \n\t0x6C 0x73 0x6F 0x20 0x77 0x61 0x6E 0x74    // 'lso want' \n\t0x73 0x20 0x74 0x6F 0x20 0x70 0x6C 0x61    // 's to pla' \n\t0x79 0x20 0x61 0x20 0x62 0x6F 0x79 0x20    // 'y a boy ' \n\t0x73 0x63 0x6F 0x75 0x74 0x2E 0x20 0x20    // 'scout.  ' \n\t0x4E 0x6F 0x74 0x20 0x6A 0x75 0x73 0x74    // 'Not just' \n\t0x20 0x61 0x6E 0x79 0x20 0x62 0x6F 0x79    // ' any boy' \n\t0x20 0x73 0x63 0x6F 0x75 0x74 0x2C 0x20    // ' scout, ' \n\t0x62 0x75 0x74 0x20 0x61 0x20 0x73 0x75    // 'but a su' \n\t0x70 0x65 0x72 0x20 0x62 0x6F 0x79 0x20    // 'per boy ' \n\t0x73 0x63 0x6F 0x75 0x74 0x20 0x77 0x68    // 'scout wh' \n\t0x6F 0x20 0x75 0x73 0x65 0x73 0x20 0x68    // 'o uses h' \n\t0x69 0x73 0x20 0x73 0x70 0x69 0x6E 0x6E    // 'is spinn' \n\t0x69 0x6E 0x67 0x20 0x61 0x6E 0x64 0x20    // 'ing and ' \n\t0x6A 0x75 0x6D 0x70 0x69 0x6E 0x67 0x20    // 'jumping ' \n\t0x73 0x6B 0x69 0x6C 0x6C 0x73 0x20 0x74    // 'skills t' \n\t0x6F 0x20 0x72 0x65 0x73 0x63 0x75 0x65    // 'o rescue' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x20 0x73    // ' other s' \n\t0x63 0x6F 0x75 0x74 0x73 0x2E 0x20 0x20    // 'couts.  ' \n\t0x49 0x6E 0x20 0x6F 0x6E 0x65 0x20 0x73    // 'In one s' \n\t0x63 0x65 0x6E 0x65 0x2C 0x20 0x53 0x65    // 'cene, Se' \n\t0x62 0x61 0x73 0x74 0x69 0x61 0x6E 0x20    // 'bastian ' \n\t0x61 0x6E 0x64 0x20 0x68 0x69 0x73 0x20    // 'and his ' \n\t0x73 0x63 0x6F 0x75 0x74 0x20 0x70 0x61    // 'scout pa' \n\t0x63 0x6B 0x20 0x61 0x72 0x65 0x20 0x6F    // 'ck are o' \n\t0x75 0x74 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ut in th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x6E 0x74 0x61    // 'e mounta' \n\t0x69 0x6E 0x73 0x20 0x6A 0x75 0x6D 0x70    // 'ins jump' \n\t0x69 0x6E 0x67 0x20 0x66 0x72 0x6F 0x6D    // 'ing from' \n\t0x20 0x61 0x6E 0x20 0x61 0x69 0x72 0x70    // ' an airp' \n\t0x6C 0x61 0x6E 0x65 0x20 0x74 0x6F 0x20    // 'lane to ' \n\t0x67 0x65 0x74 0x20 0x74 0x68 0x65 0x69    // 'get thei' \n\t0x72 0x20 0x70 0x61 0x72 0x61 0x63 0x68    // 'r parach' \n\t0x75 0x74 0x69 0x6E 0x67 0x20 0x62 0x61    // 'uting ba' \n\t0x64 0x67 0x65 0x73 0x2E 0x20 0x53 0x65    // 'dges. Se' \n\t0x62 0x61 0x73 0x74 0x69 0x61 0x6E 0x20    // 'bastian ' \n\t0x6C 0x61 0x6E 0x64 0x73 0x20 0x66 0x69    // 'lands fi' \n\t0x72 0x73 0x74 0x20 0x61 0x6E 0x64 0x20    // 'rst and ' \n\t0x77 0x61 0x74 0x63 0x68 0x65 0x73 0x20    // 'watches ' \n\t0x74 0x68 0x65 0x20 0x6F 0x74 0x68 0x65    // 'the othe' \n\t0x72 0x73 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'rs come ' \n\t0x64 0x6F 0x77 0x6E 0x2E 0x20 0x42 0x75    // 'down. Bu' \n\t0x74 0x20 0x74 0x68 0x65 0x6E 0x20 0x68    // 't then h' \n\t0x69 0x73 0x20 0x66 0x72 0x69 0x65 0x6E    // 'is frien' \n\t0x64 0x20 0x4D 0x69 0x63 0x68 0x61 0x65    // 'd Michae' \n\t0x6C 0x20 0x6A 0x75 0x73 0x74 0x20 0x73    // 'l just s' \n\t0x74 0x6F 0x70 0x73 0x20 0x69 0x6E 0x20    // 'tops in ' \n\t0x6D 0x69 0x64 0x2D 0x61 0x69 0x72 0x21    // 'mid-air!' \n\t0x20 0x0D 0x0A 0x43 0x61 0x6E 0x20 0x53    // ' ??Can S' \n\t0x65 0x62 0x61 0x73 0x74 0x69 0x61 0x6E    // 'ebastian' \n\t0x20 0x73 0x70 0x69 0x6E 0x20 0x66 0x61    // ' spin fa' \n\t0x73 0x74 0x20 0x65 0x6E 0x6F 0x75 0x67    // 'st enoug' \n\t0x68 0x20 0x61 0x6E 0x64 0x20 0x6A 0x75    // 'h and ju' \n\t0x6D 0x70 0x20 0x68 0x69 0x67 0x68 0x20    // 'mp high ' \n\t0x65 0x6E 0x6F 0x75 0x67 0x68 0x20 0x74    // 'enough t' \n\t0x6F 0x20 0x62 0x72 0x69 0x6E 0x67 0x20    // 'o bring ' \n\t0x4D 0x69 0x63 0x68 0x61 0x65 0x6C 0x20    // 'Michael ' \n\t0x62 0x61 0x63 0x6B 0x20 0x74 0x6F 0x20    // 'back to ' \n\t0x65 0x61 0x72 0x74 0x68 0x3F 0x20 0x20    // 'earth?  ' \n\t0x57 0x68 0x61 0x74 0x20 0x69 0x66 0x20    // 'What if ' \n\t0x74 0x68 0x65 0x79 0x20 0x62 0x6F 0x74    // 'they bot' \n\t0x68 0x20 0x67 0x65 0x74 0x20 0x73 0x74    // 'h get st' \n\t0x75 0x63 0x6B 0x3F 0x20                   // 'uck? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B2= ktipbio137\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B2, __HELP_NAME(\"ktipbio137--CUT\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B2, __HELP_NAME(\"ktipbio137--CUT\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_72=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio137\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_72=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_72=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_72, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_72=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_72, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x27 0x6B 0x65 0x6C 0x6C    // '??S'kell' \n\t0x79 0x2D 0x2D 0x70 0x6F 0x70 0x75 0x70    // 'y--popup' \n\t0x31                                       // '1' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B3= ktipbio138\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B3, __HELP_NAME(\"ktipbio138--CUT\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B3, __HELP_NAME(\"ktipbio138--CUT\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio138\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B3, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x27 0x6B 0x65 0x6C 0x6C    // '??S'kell' \n\t0x79 0x2D 0x2D 0x70 0x6F 0x70 0x75 0x70    // 'y--popup' \n\t0x32                                       // '2' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B4= ktipbio139\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B4, __HELP_NAME(\"ktipbio139--CUT\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B4, __HELP_NAME(\"ktipbio139--CUT\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio139\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B4, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x27 0x6B 0x65 0x6C 0x6C    // '??S'kell' \n\t0x79 0x2D 0x2D 0x70 0x6F 0x70 0x75 0x70    // 'y--popup' \n\t0x33                                       // '3' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B5= ktipbio140\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B5, __HELP_NAME(\"ktipbio140--CUT\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B5, __HELP_NAME(\"ktipbio140--CUT\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio140\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B5, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x27 0x6B 0x65 0x6C 0x6C    // '??S'kell' \n\t0x79 0x2D 0x2D 0x70 0x6F 0x70 0x75 0x70    // 'y--popup' \n\t0x34                                       // '4' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B6= ktipbio141\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B6, __HELP_NAME(\"ktipbio141\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B6, __HELP_NAME(\"ktipbio141\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_33=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio141\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_33=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_33=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB3 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x24 0x01 0x00 0x82    // '????$??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_33=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x03 0x03 0x62 0x75 0x72 0x67 0x65 0x72    // '??burger' \n\t0x73 0x0D 0x0A 0x49 0x74 0x20 0x61 0x6C    // 's??It al' \n\t0x6C 0x20 0x73 0x74 0x61 0x72 0x74 0x65    // 'l starte' \n\t0x64 0x20 0x77 0x68 0x65 0x6E 0x20 0x74    // 'd when t' \n\t0x68 0x65 0x20 0x72 0x65 0x73 0x74 0x61    // 'he resta' \n\t0x75 0x72 0x61 0x6E 0x74 0x20 0x68 0x65    // 'urant he' \n\t0x20 0x77 0x6F 0x72 0x6B 0x65 0x64 0x20    // ' worked ' \n\t0x66 0x6F 0x72 0x20 0x73 0x74 0x61 0x72    // 'for star' \n\t0x74 0x65 0x64 0x20 0x6C 0x6F 0x73 0x69    // 'ted losi' \n\t0x6E 0x67 0x20 0x62 0x75 0x73 0x69 0x6E    // 'ng busin' \n\t0x65 0x73 0x73 0x20 0x62 0x65 0x63 0x61    // 'ess beca' \n\t0x75 0x73 0x65 0x20 0x61 0x20 0x70 0x69    // 'use a pi' \n\t0x7A 0x7A 0x61 0x20 0x70 0x6C 0x61 0x63    // 'zza plac' \n\t0x65 0x20 0x6D 0x6F 0x76 0x65 0x64 0x20    // 'e moved ' \n\t0x69 0x6E 0x20 0x61 0x63 0x72 0x6F 0x73    // 'in acros' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x73 0x74    // 's the st' \n\t0x72 0x65 0x65 0x74 0x2E 0x20 0x20 0x43    // 'reet.  C' \n\t0x72 0x6F 0x77 0x64 0x73 0x20 0x77 0x65    // 'rowds we' \n\t0x72 0x65 0x20 0x67 0x61 0x74 0x68 0x65    // 're gathe' \n\t0x72 0x69 0x6E 0x67 0x20 0x74 0x6F 0x20    // 'ring to ' \n\t0x73 0x65 0x65 0x20 0x74 0x68 0x65 0x20    // 'see the ' \n\t0x70 0x69 0x7A 0x7A 0x61 0x20 0x6D 0x61    // 'pizza ma' \n\t0x6B 0x65 0x72 0x73 0x20 0x74 0x6F 0x73    // 'kers tos' \n\t0x73 0x20 0x61 0x6E 0x64 0x20 0x73 0x70    // 's and sp' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x70    // 'in the p' \n\t0x69 0x7A 0x7A 0x61 0x20 0x64 0x6F 0x75    // 'izza dou' \n\t0x67 0x68 0x2E 0x20 0x20 0x42 0x75 0x74    // 'gh.  But' \n\t0x20 0x53 0x6C 0x61 0x6D 0x20 0x63 0x6F    // ' Slam co' \n\t0x75 0x6C 0x64 0x6E 0x92 0x74 0x20 0x6C    // 'uldnt l' \n\t0x6F 0x73 0x65 0x20 0x68 0x69 0x73 0x20    // 'ose his ' \n\t0x6A 0x6F 0x62 0x3B 0x20 0x69 0x74 0x20    // 'job; it ' \n\t0x77 0x61 0x73 0x20 0x68 0x65 0x6C 0x70    // 'was help' \n\t0x69 0x6E 0x67 0x20 0x68 0x69 0x6D 0x20    // 'ing him ' \n\t0x70 0x61 0x79 0x20 0x68 0x69 0x73 0x20    // 'pay his ' \n\t0x77 0x61 0x79 0x20 0x74 0x68 0x72 0x6F    // 'way thro' \n\t0x75 0x67 0x68 0x20 0x73 0x63 0x68 0x6F    // 'ugh scho' \n\t0x6F 0x6C 0x21 0x20 0x0D 0x0A 0x53 0x6F    // 'ol! ??So' \n\t0x20 0x68 0x65 0x20 0x74 0x6F 0x6F 0x6B    // ' he took' \n\t0x20 0x68 0x69 0x73 0x20 0x73 0x70 0x61    // ' his spa' \n\t0x74 0x75 0x6C 0x61 0x20 0x61 0x6E 0x64    // 'tula and' \n\t0x20 0x73 0x74 0x61 0x72 0x74 0x65 0x64    // ' started' \n\t0x20 0x74 0x6F 0x20 0x70 0x72 0x61 0x63    // ' to prac' \n\t0x74 0x69 0x63 0x65 0x20 0x66 0x6C 0x69    // 'tice fli' \n\t0x70 0x70 0x69 0x6E 0x67 0x20 0x62 0x75    // 'pping bu' \n\t0x72 0x67 0x65 0x72 0x73 0x2E 0x20 0x20    // 'rgers.  ' \n\t0x48 0x65 0x20 0x64 0x69 0x64 0x20 0x73    // 'He did s' \n\t0x69 0x6E 0x67 0x6C 0x65 0x20 0x66 0x6C    // 'ingle fl' \n\t0x69 0x70 0x73 0x2C 0x20 0x64 0x6F 0x75    // 'ips, dou' \n\t0x62 0x6C 0x65 0x20 0x66 0x6C 0x69 0x70    // 'ble flip' \n\t0x73 0x2C 0x20 0x74 0x72 0x69 0x70 0x6C    // 's, tripl' \n\t0x65 0x20 0x66 0x6C 0x69 0x70 0x73 0x2C    // 'e flips,' \n\t0x20 0x61 0x63 0x72 0x6F 0x73 0x73 0x2D    // ' across-' \n\t0x74 0x68 0x65 0x2D 0x73 0x68 0x6F 0x75    // 'the-shou' \n\t0x6C 0x64 0x65 0x72 0x20 0x61 0x6E 0x64    // 'lder and' \n\t0x20 0x69 0x6E 0x74 0x6F 0x2D 0x74 0x68    // ' into-th' \n\t0x65 0x2D 0x6F 0x74 0x68 0x65 0x72 0x2D    // 'e-other-' \n\t0x68 0x61 0x6E 0x64 0x20 0x66 0x6C 0x69    // 'hand fli' \n\t0x70 0x73 0x2C 0x20 0x62 0x65 0x74 0x77    // 'ps, betw' \n\t0x65 0x65 0x6E 0x2D 0x74 0x68 0x65 0x2D    // 'een-the-' \n\t0x6C 0x65 0x67 0x73 0x20 0x61 0x6E 0x64    // 'legs and' \n\t0x20 0x73 0x70 0x69 0x72 0x61 0x6C 0x6C    // ' spirall' \n\t0x69 0x6E 0x67 0x20 0x73 0x70 0x69 0x6E    // 'ing spin' \n\t0x20 0x66 0x6C 0x69 0x70 0x73 0x2E 0x20    // ' flips. ' \n\t0x20 0x48 0x65 0x20 0x77 0x61 0x73 0x20    // ' He was ' \n\t0x61 0x6E 0x20 0x69 0x6E 0x73 0x74 0x61    // 'an insta' \n\t0x6E 0x74 0x20 0x73 0x75 0x63 0x63 0x65    // 'nt succe' \n\t0x73 0x73 0x2E 0x20 0x20 0x48 0x65 0x20    // 'ss.  He ' \n\t0x77 0x61 0x73 0x20 0x66 0x65 0x61 0x74    // 'was feat' \n\t0x75 0x72 0x65 0x64 0x20 0x6F 0x6E 0x20    // 'ured on ' \n\t0x74 0x68 0x65 0x20 0x6C 0x6F 0x63 0x61    // 'the loca' \n\t0x6C 0x2C 0x20 0x61 0x6E 0x64 0x20 0x74    // 'l, and t' \n\t0x68 0x65 0x6E 0x20 0x6E 0x61 0x74 0x69    // 'hen nati' \n\t0x6F 0x6E 0x61 0x6C 0x2C 0x20 0x6E 0x65    // 'onal, ne' \n\t0x77 0x73 0x20 0x61 0x73 0x20 0x61 0x6E    // 'ws as an' \n\t0x20 0x61 0x74 0x74 0x72 0x61 0x63 0x74    // ' attract' \n\t0x69 0x6F 0x6E 0x20 0x6E 0x6F 0x74 0x20    // 'ion not ' \n\t0x74 0x6F 0x20 0x62 0x65 0x20 0x6D 0x69    // 'to be mi' \n\t0x73 0x73 0x65 0x64 0x2E 0x20 0x20 0x53    // 'ssed.  S' \n\t0x6C 0x61 0x6D 0x20 0x77 0x61 0x73 0x20    // 'lam was ' \n\t0x70 0x72 0x61 0x63 0x74 0x69 0x63 0x61    // 'practica' \n\t0x6C 0x6C 0x79 0x20 0x77 0x6F 0x72 0x6C    // 'lly worl' \n\t0x64 0x2D 0x66 0x61 0x6D 0x6F 0x75 0x73    // 'd-famous' \n\t0x20 0x62 0x65 0x66 0x6F 0x72 0x65 0x20    // ' before ' \n\t0x68 0x65 0x20 0x65 0x76 0x65 0x72 0x20    // 'he ever ' \n\t0x67 0x6F 0x74 0x20 0x61 0x20 0x70 0x61    // 'got a pa' \n\t0x72 0x74 0x20 0x69 0x6E 0x20 0x61 0x20    // 'rt in a ' \n\t0x66 0x69 0x6C 0x6D 0x21                   // 'film!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B7= ktipbio142\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B7, __HELP_NAME(\"ktipbio142\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B7, __HELP_NAME(\"ktipbio142\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio142\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3C 0x02 0x00 0x01    // '????<???' \n\t0x00 0x00 0x00 0x00 0x3D 0x02 0x00 0x01    // '????=???' \n\t0x01 0x00 0x00 0x00 0x64 0x02 0x00 0x01    // '????d???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x17 0x02 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B7, 0x0)\n\tBYTE\n\t0x03 0x03 0x45 0x78 0x74 0x65 0x72 0x6D    // '??Exterm' \n\t0x69 0x6E 0x61 0x74 0x6F 0x72 0x0D 0x0A    // 'inator??' \n\t0x53 0x6C 0x61 0x6D 0x20 0x72 0x65 0x61    // 'Slam rea' \n\t0x6C 0x6C 0x79 0x20 0x6C 0x69 0x6B 0x65    // 'lly like' \n\t0x73 0x20 0x62 0x75 0x67 0x73 0x2E 0x20    // 's bugs. ' \n\t0x20 0x48 0x65 0x20 0x68 0x61 0x73 0x20    // ' He has ' \n\t0x61 0x20 0x63 0x6F 0x6C 0x6C 0x65 0x63    // 'a collec' \n\t0x74 0x69 0x6F 0x6E 0x20 0x6F 0x66 0x20    // 'tion of ' \n\t0x74 0x68 0x65 0x20 0x62 0x75 0x67 0x73    // 'the bugs' \n\t0x20 0x68 0x65 0x20 0x66 0x6F 0x75 0x6E    // ' he foun' \n\t0x64 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 'd at the' \n\t0x20 0x72 0x65 0x73 0x74 0x61 0x75 0x72    // ' restaur' \n\t0x61 0x6E 0x74 0x20 0x77 0x68 0x65 0x72    // 'ant wher' \n\t0x65 0x20 0x68 0x65 0x20 0x77 0x6F 0x72    // 'e he wor' \n\t0x6B 0x65 0x64 0x2C 0x20 0x61 0x6E 0x64    // 'ked, and' \n\t0x20 0x66 0x65 0x65 0x6C 0x73 0x20 0x74    // ' feels t' \n\t0x68 0x61 0x74 0x20 0x68 0x65 0x20 0x69    // 'hat he i' \n\t0x73 0x20 0x70 0x65 0x72 0x66 0x65 0x63    // 's perfec' \n\t0x74 0x20 0x66 0x6F 0x72 0x20 0x74 0x68    // 't for th' \n\t0x65 0x20 0x70 0x61 0x72 0x74 0x20 0x6F    // 'e part o' \n\t0x66 0x20 0x61 0x6E 0x20 0x65 0x78 0x74    // 'f an ext' \n\t0x65 0x72 0x6D 0x69 0x6E 0x61 0x74 0x6F    // 'erminato' \n\t0x72 0x2E 0x20 0x20 0x49 0x74 0x20 0x77    // 'r.  It w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x62 0x65 0x20    // 'ould be ' \n\t0x66 0x75 0x6E 0x20 0x69 0x66 0x20 0x53    // 'fun if S' \n\t0x6C 0x61 0x6D 0x20 0x77 0x65 0x72 0x65    // 'lam were' \n\t0x20 0x61 0x6E 0x20 0x65 0x78 0x74 0x65    // ' an exte' \n\t0x72 0x6D 0x69 0x6E 0x61 0x74 0x6F 0x72    // 'rminator' \n\t0x20 0x77 0x68 0x6F 0x20 0x69 0x73 0x20    // ' who is ' \n\t0x61 0x73 0x6B 0x65 0x64 0x20 0x62 0x79    // 'asked by' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6F 0x6C    // ' the pol' \n\t0x69 0x63 0x65 0x20 0x74 0x6F 0x20 0x67    // 'ice to g' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x68 0x6F 0x75 0x73 0x65 0x20 0x6F    // ' house o' \n\t0x66 0x20 0x61 0x6E 0x20 0x65 0x76 0x69    // 'f an evi' \n\t0x6C 0x20 0x73 0x63 0x69 0x65 0x6E 0x74    // 'l scient' \n\t0x69 0x73 0x74 0x20 0x77 0x68 0x6F 0x20    // 'ist who ' \n\t0x69 0x73 0x20 0x64 0x65 0x76 0x65 0x6C    // 'is devel' \n\t0x6F 0x70 0x69 0x6E 0x67 0x20 0x61 0x20    // 'oping a ' \n\t0x66 0x6F 0x72 0x6D 0x75 0x6C 0x61 0x20    // 'formula ' \n\t0x74 0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20    // 'to make ' \n\t0x73 0x6D 0x61 0x6C 0x6C 0x20 0x62 0x75    // 'small bu' \n\t0x67 0x73 0x20 0x69 0x6E 0x74 0x6F 0x20    // 'gs into ' \n\t0x67 0x69 0x61 0x6E 0x74 0x20 0x62 0x75    // 'giant bu' \n\t0x67 0x73 0x21 0x20 0x0D 0x0A 0x42 0x75    // 'gs! ??Bu' \n\t0x74 0x20 0x77 0x68 0x65 0x6E 0x20 0x53    // 't when S' \n\t0x6C 0x61 0x6D 0x20 0x67 0x65 0x74 0x73    // 'lam gets' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x68 0x6F 0x75 0x73 0x65 0x2C 0x20 0x74    // 'house, t' \n\t0x68 0x65 0x20 0x65 0x76 0x69 0x6C 0x20    // 'he evil ' \n\t0x73 0x63 0x69 0x65 0x6E 0x74 0x69 0x73    // 'scientis' \n\t0x74 0x20 0x69 0x73 0x20 0x6F 0x66 0x66    // 't is off' \n\t0x20 0x69 0x6E 0x20 0x73 0x65 0x61 0x72    // ' in sear' \n\t0x63 0x68 0x20 0x6F 0x66 0x20 0x70 0x6F    // 'ch of po' \n\t0x69 0x73 0x6F 0x6E 0x6F 0x75 0x73 0x20    // 'isonous ' \n\t0x69 0x6E 0x73 0x65 0x63 0x74 0x73 0x20    // 'insects ' \n\t0x74 0x6F 0x20 0x74 0x65 0x73 0x74 0x20    // 'to test ' \n\t0x68 0x69 0x73 0x20 0x66 0x6F 0x72 0x6D    // 'his form' \n\t0x75 0x6C 0x61 0x2C 0x20 0x61 0x6E 0x64    // 'ula, and' \n\t0x20 0x53 0x6C 0x61 0x6D 0x20 0x77 0x69    // ' Slam wi' \n\t0x6C 0x6C 0x20 0x68 0x61 0x76 0x65 0x20    // 'll have ' \n\t0x74 0x6F 0x20 0x74 0x72 0x61 0x76 0x65    // 'to trave' \n\t0x6C 0x20 0x74 0x6F 0x20 0x61 0x20 0x66    // 'l to a f' \n\t0x61 0x72 0x61 0x77 0x61 0x79 0x20 0x76    // 'araway v' \n\t0x69 0x6C 0x6C 0x61 0x67 0x65 0x20 0x74    // 'illage t' \n\t0x6F 0x20 0x66 0x69 0x6E 0x64 0x20 0x68    // 'o find h' \n\t0x69 0x6D 0x2E 0x20 0x20 0x20 0x20 0x0D    // 'im.    ?' \n\t0x0A 0x4F 0x6E 0x63 0x65 0x20 0x68 0x65    // '?Once he' \n\t0x20 0x67 0x65 0x74 0x73 0x20 0x74 0x6F    // ' gets to' \n\t0x20 0x74 0x68 0x65 0x20 0x76 0x69 0x6C    // ' the vil' \n\t0x6C 0x61 0x67 0x65 0x2C 0x20 0x68 0x6F    // 'lage, ho' \n\t0x77 0x20 0x77 0x69 0x6C 0x6C 0x20 0x53    // 'w will S' \n\t0x6C 0x61 0x6D 0x20 0x66 0x6F 0x69 0x6C    // 'lam foil' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x6E 0x73 0x20 0x6F 0x66 0x20 0x74 0x68    // 'ns of th' \n\t0x65 0x20 0x73 0x63 0x69 0x65 0x6E 0x74    // 'e scient' \n\t0x69 0x73 0x74 0x3F 0x20 0x20 0x20         // 'ist?   ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B8= ktipbio143\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B8, __HELP_NAME(\"ktipbio143\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B8, __HELP_NAME(\"ktipbio143\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio143\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xBA 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xAC 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8F, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x75 0x72 0x67 0x65 0x72    // '??Burger' \n\t0x20 0x46 0x6C 0x69 0x70 0x70 0x65 0x72    // ' Flipper' \n\t0x0D 0x0A 0x48 0x65 0x72 0x65 0x20 0x69    // '??Here i' \n\t0x73 0x20 0x61 0x20 0x70 0x61 0x72 0x74    // 's a part' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x53 0x6C    // ' that Sl' \n\t0x61 0x6D 0x20 0x63 0x6F 0x75 0x6C 0x64    // 'am could' \n\t0x20 0x72 0x65 0x61 0x6C 0x6C 0x79 0x20    // ' really ' \n\t0x73 0x69 0x6E 0x6B 0x20 0x68 0x69 0x73    // 'sink his' \n\t0x20 0x74 0x65 0x65 0x74 0x68 0x20 0x69    // ' teeth i' \n\t0x6E 0x74 0x6F 0x2C 0x20 0x62 0x65 0x63    // 'nto, bec' \n\t0x61 0x75 0x73 0x65 0x20 0x68 0x65 0x20    // 'ause he ' \n\t0x68 0x61 0x73 0x20 0x73 0x75 0x63 0x68    // 'has such' \n\t0x20 0x74 0x61 0x6C 0x65 0x6E 0x74 0x20    // ' talent ' \n\t0x66 0x6F 0x72 0x20 0x66 0x6C 0x69 0x70    // 'for flip' \n\t0x70 0x69 0x6E 0x67 0x20 0x62 0x75 0x72    // 'ping bur' \n\t0x67 0x65 0x72 0x73 0x2E 0x20 0x20 0x41    // 'gers.  A' \n\t0x6E 0x64 0x20 0x68 0x65 0x20 0x63 0x61    // 'nd he ca' \n\t0x6E 0x20 0x75 0x73 0x65 0x20 0x68 0x69    // 'n use hi' \n\t0x73 0x20 0x72 0x65 0x61 0x6C 0x20 0x6C    // 's real l' \n\t0x69 0x66 0x65 0x20 0x66 0x6F 0x72 0x20    // 'ife for ' \n\t0x69 0x6E 0x73 0x70 0x69 0x72 0x61 0x74    // 'inspirat' \n\t0x69 0x6F 0x6E 0x21 0x0D 0x0A 0x42 0x75    // 'ion!??Bu' \n\t0x74 0x20 0x77 0x68 0x61 0x74 0x20 0x68    // 't what h' \n\t0x61 0x70 0x70 0x65 0x6E 0x73 0x20 0x77    // 'appens w' \n\t0x68 0x65 0x6E 0x20 0x74 0x68 0x65 0x20    // 'hen the ' \n\t0x63 0x6F 0x6F 0x6B 0x73 0x20 0x61 0x63    // 'cooks ac' \n\t0x72 0x6F 0x73 0x73 0x20 0x74 0x68 0x65    // 'ross the' \n\t0x20 0x73 0x74 0x72 0x65 0x65 0x74 0x20    // ' street ' \n\t0x67 0x65 0x74 0x20 0x6A 0x65 0x61 0x6C    // 'get jeal' \n\t0x6F 0x75 0x73 0x20 0x61 0x6E 0x64 0x20    // 'ous and ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x61 0x66 0x74    // 'come aft' \n\t0x65 0x72 0x20 0x68 0x69 0x6D 0x3F 0x20    // 'er him? ' \n\t0x20 0x57 0x69 0x6C 0x6C 0x20 0x68 0x65    // ' Will he' \n\t0x20 0x68 0x61 0x76 0x65 0x20 0x74 0x6F    // ' have to' \n\t0x20 0x68 0x69 0x64 0x65 0x20 0x6F 0x75    // ' hide ou' \n\t0x74 0x20 0x77 0x69 0x74 0x68 0x20 0x68    // 't with h' \n\t0x69 0x73 0x20 0x61 0x75 0x6E 0x74 0x20    // 'is aunt ' \n\t0x69 0x6E 0x20 0x61 0x20 0x68 0x75 0x74    // 'in a hut' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x74 0x72 0x6F 0x70 0x69 0x63 0x73 0x3F    // 'tropics?' \n\t0x20 0x20 0x57 0x68 0x61 0x74 0x20 0x61    // '  What a' \n\t0x64 0x76 0x65 0x6E 0x74 0x75 0x72 0x65    // 'dventure' \n\t0x73 0x20 0x77 0x69 0x6C 0x6C 0x20 0x68    // 's will h' \n\t0x65 0x20 0x68 0x61 0x76 0x65 0x20 0x77    // 'e have w' \n\t0x68 0x65 0x6E 0x20 0x68 0x65 0x20 0x77    // 'hen he w' \n\t0x6F 0x72 0x6B 0x73 0x20 0x69 0x6E 0x20    // 'orks in ' \n\t0x68 0x65 0x72 0x20 0x72 0x65 0x73 0x74    // 'her rest' \n\t0x61 0x75 0x72 0x61 0x6E 0x74 0x20 0x61    // 'aurant a' \n\t0x6E 0x64 0x20 0x73 0x68 0x65 0x20 0x74    // 'nd she t' \n\t0x65 0x6C 0x6C 0x73 0x20 0x68 0x69 0x6D    // 'ells him' \n\t0x20 0x74 0x6F 0x20 0x67 0x65 0x74 0x20    // ' to get ' \n\t0x73 0x65 0x63 0x72 0x65 0x74 0x20 0x69    // 'secret i' \n\t0x6E 0x67 0x72 0x65 0x64 0x69 0x65 0x6E    // 'ngredien' \n\t0x74 0x73 0x20 0x69 0x6E 0x20 0x61 0x20    // 'ts in a ' \n\t0x63 0x61 0x76 0x65 0x20 0x6E 0x65 0x61    // 'cave nea' \n\t0x72 0x62 0x79 0x3F                        // 'rby?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B9= ktipbio144\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B9, __HELP_NAME(\"ktipbio144\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B9, __HELP_NAME(\"ktipbio144\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio144\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xC3 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x30 0x02 0x00 0x82    // '????0??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B8, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x72 0x6F 0x63 0x6F 0x64    // '??Crocod' \n\t0x69 0x6C 0x65 0x20 0x54 0x72 0x61 0x69    // 'ile Trai' \n\t0x6E 0x65 0x72 0x0D 0x0A 0x53 0x6C 0x61    // 'ner??Sla' \n\t0x6D 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 'm would ' \n\t0x6C 0x6F 0x76 0x65 0x20 0x74 0x6F 0x20    // 'love to ' \n\t0x62 0x65 0x20 0x69 0x6E 0x20 0x61 0x6E    // 'be in an' \n\t0x20 0x61 0x64 0x76 0x65 0x6E 0x74 0x75    // ' adventu' \n\t0x72 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 're where' \n\t0x20 0x68 0x65 0x20 0x70 0x6C 0x61 0x79    // ' he play' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x72 0x6F    // 's the ro' \n\t0x6C 0x65 0x20 0x6F 0x66 0x20 0x61 0x20    // 'le of a ' \n\t0x63 0x72 0x6F 0x63 0x6F 0x64 0x69 0x6C    // 'crocodil' \n\t0x65 0x20 0x74 0x72 0x61 0x69 0x6E 0x65    // 'e traine' \n\t0x72 0x2E 0x20 0x20 0x48 0x65 0x92 0x73    // 'r.  Hes' \n\t0x20 0x62 0x65 0x65 0x6E 0x20 0x61 0x73    // ' been as' \n\t0x6B 0x65 0x64 0x20 0x62 0x79 0x20 0x61    // 'ked by a' \n\t0x20 0x66 0x65 0x6C 0x6C 0x6F 0x77 0x20    // ' fellow ' \n\t0x61 0x6E 0x69 0x6D 0x61 0x6C 0x20 0x74    // 'animal t' \n\t0x72 0x61 0x69 0x6E 0x65 0x72 0x20 0x74    // 'rainer t' \n\t0x6F 0x20 0x67 0x6F 0x20 0x74 0x6F 0x20    // 'o go to ' \n\t0x74 0x68 0x65 0x20 0x63 0x69 0x74 0x79    // 'the city' \n\t0x20 0x61 0x6E 0x64 0x20 0x67 0x69 0x76    // ' and giv' \n\t0x65 0x20 0x61 0x20 0x6C 0x65 0x63 0x74    // 'e a lect' \n\t0x75 0x72 0x65 0x2E 0x20 0x20 0x48 0x65    // 'ure.  He' \n\t0x20 0x6C 0x65 0x61 0x76 0x65 0x73 0x20    // ' leaves ' \n\t0x68 0x69 0x73 0x20 0x68 0x75 0x74 0x2C    // 'his hut,' \n\t0x20 0x67 0x65 0x74 0x73 0x20 0x6F 0x6E    // ' gets on' \n\t0x20 0x61 0x20 0x70 0x6C 0x61 0x6E 0x65    // ' a plane' \n\t0x2C 0x20 0x61 0x6E 0x64 0x20 0x61 0x72    // ', and ar' \n\t0x72 0x69 0x76 0x65 0x73 0x20 0x69 0x6E    // 'rives in' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x69 0x74    // ' the cit' \n\t0x79 0x2C 0x20 0x77 0x68 0x65 0x72 0x65    // 'y, where' \n\t0x20 0x68 0x65 0x20 0x73 0x65 0x65 0x73    // ' he sees' \n\t0x20 0x74 0x68 0x69 0x6E 0x67 0x73 0x20    // ' things ' \n\t0x74 0x68 0x61 0x74 0x20 0x74 0x6F 0x74    // 'that tot' \n\t0x61 0x6C 0x6C 0x79 0x20 0x61 0x6D 0x61    // 'ally ama' \n\t0x7A 0x65 0x20 0x68 0x69 0x6D 0x20 0x61    // 'ze him a' \n\t0x66 0x74 0x65 0x72 0x20 0x6C 0x69 0x76    // 'fter liv' \n\t0x69 0x6E 0x67 0x20 0x69 0x6E 0x20 0x74    // 'ing in t' \n\t0x68 0x65 0x20 0x74 0x72 0x6F 0x70 0x69    // 'he tropi' \n\t0x63 0x73 0x20 0x66 0x6F 0x72 0x20 0x73    // 'cs for s' \n\t0x6F 0x20 0x6C 0x6F 0x6E 0x67 0x2E 0x20    // 'o long. ' \n\t0x20 0x41 0x66 0x74 0x65 0x72 0x20 0x68    // ' After h' \n\t0x65 0x20 0x69 0x73 0x20 0x61 0x6C 0x6D    // 'e is alm' \n\t0x6F 0x73 0x74 0x20 0x72 0x75 0x6E 0x20    // 'ost run ' \n\t0x6F 0x76 0x65 0x72 0x20 0x62 0x79 0x20    // 'over by ' \n\t0x61 0x20 0x72 0x6F 0x61 0x64 0x20 0x72    // 'a road r' \n\t0x61 0x63 0x65 0x2C 0x20 0x74 0x77 0x6F    // 'ace, two' \n\t0x20 0x72 0x6F 0x62 0x6F 0x74 0x69 0x63    // ' robotic' \n\t0x20 0x70 0x6F 0x6C 0x69 0x63 0x65 0x6D    // ' policem' \n\t0x65 0x6E 0x20 0x61 0x72 0x72 0x65 0x73    // 'en arres' \n\t0x74 0x20 0x68 0x69 0x6D 0x20 0x66 0x6F    // 't him fo' \n\t0x72 0x20 0x6F 0x62 0x73 0x74 0x72 0x75    // 'r obstru' \n\t0x63 0x74 0x69 0x6E 0x67 0x20 0x74 0x72    // 'cting tr' \n\t0x61 0x66 0x66 0x69 0x63 0x20 0x61 0x6E    // 'affic an' \n\t0x64 0x20 0x74 0x65 0x6C 0x6C 0x20 0x68    // 'd tell h' \n\t0x69 0x6D 0x20 0x74 0x6F 0x20 0x77 0x61    // 'im to wa' \n\t0x69 0x74 0x20 0x6E 0x65 0x61 0x72 0x20    // 'it near ' \n\t0x74 0x68 0x65 0x20 0x73 0x71 0x75 0x61    // 'the squa' \n\t0x64 0x20 0x63 0x61 0x72 0x2E 0x20 0x20    // 'd car.  ' \n\t0x0D 0x0A 0x57 0x68 0x69 0x6C 0x65 0x20    // '??While ' \n\t0x53 0x6C 0x61 0x6D 0x20 0x69 0x73 0x20    // 'Slam is ' \n\t0x77 0x61 0x69 0x74 0x69 0x6E 0x67 0x2C    // 'waiting,' \n\t0x20 0x61 0x20 0x6D 0x61 0x6E 0x20 0x77    // ' a man w' \n\t0x69 0x74 0x68 0x20 0x64 0x79 0x6E 0x61    // 'ith dyna' \n\t0x6D 0x69 0x74 0x65 0x20 0x69 0x6E 0x20    // 'mite in ' \n\t0x68 0x69 0x73 0x20 0x70 0x6F 0x63 0x6B    // 'his pock' \n\t0x65 0x74 0x20 0x72 0x75 0x6E 0x73 0x20    // 'et runs ' \n\t0x62 0x65 0x68 0x69 0x6E 0x64 0x20 0x74    // 'behind t' \n\t0x68 0x65 0x20 0x63 0x61 0x72 0x21 0x20    // 'he car! ' \n\t0x0D 0x0A 0x53 0x6C 0x61 0x6D 0x20 0x64    // '??Slam d' \n\t0x6F 0x65 0x73 0x6E 0x92 0x74 0x20 0x6B    // 'oesnt k' \n\t0x6E 0x6F 0x77 0x20 0x69 0x66 0x20 0x68    // 'now if h' \n\t0x65 0x20 0x73 0x68 0x6F 0x75 0x6C 0x64    // 'e should' \n\t0x20 0x72 0x75 0x6E 0x20 0x61 0x6E 0x64    // ' run and' \n\t0x20 0x66 0x61 0x63 0x65 0x20 0x66 0x75    // ' face fu' \n\t0x72 0x74 0x68 0x65 0x72 0x20 0x70 0x6F    // 'rther po' \n\t0x6C 0x69 0x63 0x65 0x20 0x63 0x68 0x61    // 'lice cha' \n\t0x72 0x67 0x65 0x73 0x20 0x6F 0x72 0x20    // 'rges or ' \n\t0x73 0x74 0x61 0x79 0x20 0x61 0x6E 0x64    // 'stay and' \n\t0x20 0x72 0x69 0x73 0x6B 0x20 0x74 0x68    // ' risk th' \n\t0x65 0x20 0x63 0x68 0x61 0x6E 0x63 0x65    // 'e chance' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x74 0x68    // ' that th' \n\t0x65 0x20 0x64 0x79 0x6E 0x61 0x6D 0x69    // 'e dynami' \n\t0x74 0x65 0x20 0x77 0x69 0x6C 0x6C 0x20    // 'te will ' \n\t0x65 0x78 0x70 0x6C 0x6F 0x64 0x65 0x21    // 'explode!' \n\t0x20 0x20 0x20 0x57 0x68 0x61 0x74 0x20    // '   What ' \n\t0x77 0x69 0x6C 0x6C 0x20 0x68 0x65 0x20    // 'will he ' \n\t0x64 0x6F 0x3F 0x20 0x20                   // 'do?  ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_BA= ktipbio145\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_BA, __HELP_NAME(\"ktipbio145\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_BA, __HELP_NAME(\"ktipbio145\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_BA, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio145\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_BA, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x59 0x02 0x00 0x01    // '????Y???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x34 0x01 0x00 0x82    // '????4??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x74 0x6F 0x75 0x72 0x69 0x73    // '??touris' \n\t0x74 0x73 0x0D 0x0A 0x41 0x66 0x74 0x65    // 'ts??Afte' \n\t0x72 0x20 0x73 0x65 0x65 0x69 0x6E 0x67    // 'r seeing' \n\t0x20 0x74 0x6F 0x75 0x72 0x69 0x73 0x74    // ' tourist' \n\t0x73 0x20 0x70 0x72 0x61 0x63 0x74 0x69    // 's practi' \n\t0x63 0x61 0x6C 0x6C 0x79 0x20 0x65 0x76    // 'cally ev' \n\t0x65 0x72 0x79 0x20 0x64 0x61 0x79 0x20    // 'ery day ' \n\t0x6F 0x66 0x20 0x68 0x69 0x73 0x20 0x6C    // 'of his l' \n\t0x69 0x66 0x65 0x2C 0x20 0x54 0x69 0x6D    // 'ife, Tim' \n\t0x6F 0x74 0x68 0x79 0x20 0x77 0x61 0x6E    // 'othy wan' \n\t0x74 0x65 0x64 0x20 0x74 0x6F 0x20 0x76    // 'ted to v' \n\t0x69 0x73 0x69 0x74 0x20 0x74 0x68 0x65    // 'isit the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x73 0x20    // ' places ' \n\t0x74 0x68 0x65 0x79 0x20 0x63 0x61 0x6D    // 'they cam' \n\t0x65 0x20 0x66 0x72 0x6F 0x6D 0x2E 0x20    // 'e from. ' \n\t0x20 0x42 0x75 0x74 0x20 0x68 0x65 0x20    // ' But he ' \n\t0x63 0x6F 0x75 0x6C 0x64 0x6E 0x27 0x74    // 'couldn't' \n\t0x20 0x67 0x6F 0x20 0x65 0x76 0x65 0x72    // ' go ever' \n\t0x79 0x77 0x68 0x65 0x72 0x65 0x20 0x61    // 'ywhere a' \n\t0x74 0x20 0x6F 0x6E 0x63 0x65 0x2C 0x20    // 't once, ' \n\t0x73 0x6F 0x20 0x68 0x65 0x20 0x73 0x74    // 'so he st' \n\t0x61 0x72 0x74 0x65 0x64 0x20 0x77 0x61    // 'arted wa' \n\t0x74 0x63 0x68 0x69 0x6E 0x67 0x20 0x6D    // 'tching m' \n\t0x6F 0x76 0x69 0x65 0x73 0x20 0x74 0x6F    // 'ovies to' \n\t0x20 0x6C 0x65 0x61 0x72 0x6E 0x20 0x61    // ' learn a' \n\t0x62 0x6F 0x75 0x74 0x20 0x6F 0x74 0x68    // 'bout oth' \n\t0x65 0x72 0x20 0x70 0x61 0x72 0x74 0x73    // 'er parts' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x77 0x6F 0x72 0x6C 0x64 0x2E 0x20 0x20    // 'world.  ' \n\t0x48 0x65 0x20 0x77 0x61 0x74 0x63 0x68    // 'He watch' \n\t0x65 0x64 0x20 0x61 0x20 0x6D 0x6F 0x76    // 'ed a mov' \n\t0x69 0x65 0x20 0x65 0x76 0x65 0x72 0x79    // 'ie every' \n\t0x20 0x64 0x61 0x79 0x20 0x66 0x6F 0x72    // ' day for' \n\t0x20 0x31 0x30 0x20 0x79 0x65 0x61 0x72    // ' 10 year' \n\t0x73 0x20 0x69 0x6E 0x20 0x61 0x20 0x72    // 's in a r' \n\t0x6F 0x77 0x2E 0x20 0x20 0x54 0x68 0x61    // 'ow.  Tha' \n\t0x74 0x27 0x73 0x20 0x61 0x20 0x6C 0x6F    // 't's a lo' \n\t0x74 0x20 0x6F 0x66 0x20 0x6D 0x6F 0x76    // 't of mov' \n\t0x69 0x65 0x73 0x2E 0x0D 0x0A 0x48 0x65    // 'ies.??He' \n\t0x20 0x65 0x73 0x70 0x65 0x63 0x69 0x61    // ' especia' \n\t0x6C 0x6C 0x79 0x20 0x6C 0x6F 0x76 0x65    // 'lly love' \n\t0x64 0x20 0x6D 0x69 0x6D 0x69 0x63 0x6B    // 'd mimick' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x61 0x63 0x74 0x6F 0x72 0x73 0x2E 0x20    // 'actors. ' \n\t0x20 0x48 0x65 0x20 0x67 0x6F 0x74 0x20    // ' He got ' \n\t0x73 0x6F 0x20 0x67 0x6F 0x6F 0x64 0x20    // 'so good ' \n\t0x61 0x74 0x20 0x74 0x68 0x69 0x73 0x20    // 'at this ' \n\t0x74 0x68 0x61 0x74 0x20 0x6F 0x6E 0x63    // 'that onc' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x61 0x77    // 'e the aw' \n\t0x61 0x72 0x64 0x2D 0x77 0x69 0x6E 0x6E    // 'ard-winn' \n\t0x69 0x6E 0x67 0x20 0x64 0x69 0x72 0x65    // 'ing dire' \n\t0x63 0x74 0x6F 0x72 0x20 0x4D 0x63 0x5A    // 'ctor McZ' \n\t0x65 0x65 0x20 0x6D 0x69 0x73 0x74 0x6F    // 'ee misto' \n\t0x6F 0x6B 0x20 0x68 0x69 0x6D 0x20 0x66    // 'ok him f' \n\t0x6F 0x72 0x20 0x61 0x20 0x70 0x6F 0x70    // 'or a pop' \n\t0x75 0x6C 0x61 0x72 0x20 0x47 0x72 0x65    // 'ular Gre' \n\t0x65 0x6B 0x20 0x61 0x63 0x74 0x6F 0x72    // 'ek actor' \n\t0x2E 0x20 0x20 0x57 0x68 0x65 0x6E 0x20    // '.  When ' \n\t0x4D 0x63 0x5A 0x65 0x65 0x20 0x66 0x6F    // 'McZee fo' \n\t0x75 0x6E 0x64 0x20 0x6F 0x75 0x74 0x20    // 'und out ' \n\t0x54 0x69 0x6D 0x6F 0x74 0x68 0x79 0x20    // 'Timothy ' \n\t0x77 0x61 0x73 0x20 0x6A 0x75 0x73 0x74    // 'was just' \n\t0x20 0x70 0x72 0x65 0x74 0x65 0x6E 0x64    // ' pretend' \n\t0x69 0x6E 0x67 0x2C 0x20 0x68 0x65 0x20    // 'ing, he ' \n\t0x6B 0x6E 0x65 0x77 0x20 0x74 0x68 0x61    // 'knew tha' \n\t0x74 0x20 0x54 0x69 0x6D 0x6F 0x74 0x68    // 't Timoth' \n\t0x79 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 'y would ' \n\t0x62 0x65 0x20 0x70 0x65 0x72 0x66 0x65    // 'be perfe' \n\t0x63 0x74 0x20 0x66 0x6F 0x72 0x20 0x68    // 'ct for h' \n\t0x69 0x73 0x20 0x6E 0x65 0x78 0x74 0x20    // 'is next ' \n\t0x66 0x69 0x6C 0x6D 0x2C 0x20 0x93 0x47    // 'film, G' \n\t0x72 0x65 0x65 0x6B 0x20 0x54 0x6F 0x75    // 'reek Tou' \n\t0x72 0x69 0x73 0x74 0x20 0x54 0x72 0x61    // 'rist Tra' \n\t0x70 0x70 0x65 0x64 0x20 0x69 0x6E 0x20    // 'pped in ' \n\t0x4B 0x61 0x6E 0x73 0x61 0x73 0x2E 0x94    // 'Kansas.' \n\t0x20 0x0D 0x0A                             // ' ??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_BB= ktipbio146\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_BB, __HELP_NAME(\"ktipbio146\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_BB, __HELP_NAME(\"ktipbio146\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_BB=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_BB, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio146\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_BB=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_BB, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_BB=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_BB, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x54 0x02 0x00 0x01    // '????T???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xFD 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_BB=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_BB, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x70 0x6F 0x6F 0x6B 0x20    // '??Spook ' \n\t0x53 0x6C 0x65 0x75 0x74 0x68 0x0D 0x0A    // 'Sleuth??' \n\t0x54 0x68 0x65 0x72 0x65 0x20 0x69 0x73    // 'There is' \n\t0x20 0x61 0x20 0x67 0x68 0x6F 0x73 0x74    // ' a ghost' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x68 0x61 0x75 0x6E 0x74 0x65 0x64 0x20    // 'haunted ' \n\t0x68 0x6F 0x75 0x73 0x65 0x97 0x65 0x76    // 'houseev' \n\t0x65 0x72 0x79 0x6F 0x6E 0x65 0x20 0x6B    // 'eryone k' \n\t0x6E 0x6F 0x77 0x73 0x20 0x69 0x74 0x2C    // 'nows it,' \n\t0x20 0x62 0x75 0x74 0x20 0x6E 0x6F 0x20    // ' but no ' \n\t0x6F 0x6E 0x65 0x20 0x63 0x61 0x6E 0x20    // 'one can ' \n\t0x70 0x72 0x6F 0x76 0x65 0x20 0x69 0x74    // 'prove it' \n\t0x2E 0x20 0x20 0x41 0x74 0x20 0x66 0x69    // '.  At fi' \n\t0x72 0x73 0x74 0x20 0x54 0x69 0x6D 0x6F    // 'rst Timo' \n\t0x74 0x68 0x79 0x20 0x74 0x68 0x6F 0x75    // 'thy thou' \n\t0x67 0x68 0x74 0x20 0x68 0x65 0x20 0x63    // 'ght he c' \n\t0x6F 0x75 0x6C 0x64 0x20 0x63 0x61 0x70    // 'ould cap' \n\t0x74 0x75 0x72 0x65 0x20 0x74 0x68 0x65    // 'ture the' \n\t0x20 0x67 0x68 0x6F 0x73 0x74 0x20 0x6F    // ' ghost o' \n\t0x6E 0x20 0x66 0x69 0x6C 0x6D 0x2E 0x20    // 'n film. ' \n\t0x20 0x42 0x75 0x74 0x20 0x77 0x68 0x65    // ' But whe' \n\t0x6E 0x20 0x68 0x65 0x20 0x74 0x72 0x69    // 'n he tri' \n\t0x65 0x64 0x2C 0x20 0x68 0x65 0x20 0x66    // 'ed, he f' \n\t0x6F 0x75 0x6E 0x64 0x20 0x74 0x68 0x61    // 'ound tha' \n\t0x74 0x20 0x68 0x65 0x20 0x63 0x6F 0x75    // 't he cou' \n\t0x6C 0x64 0x20 0x68 0x65 0x61 0x72 0x20    // 'ld hear ' \n\t0x74 0x68 0x65 0x20 0x67 0x68 0x6F 0x73    // 'the ghos' \n\t0x74 0x2C 0x20 0x62 0x75 0x74 0x20 0x63    // 't, but c' \n\t0x6F 0x75 0x6C 0x64 0x6E 0x27 0x74 0x20    // 'ouldn't ' \n\t0x73 0x65 0x65 0x20 0x69 0x74 0x2E 0x20    // 'see it. ' \n\t0x20 0x49 0x74 0x20 0x77 0x61 0x73 0x20    // ' It was ' \n\t0x69 0x6E 0x76 0x69 0x73 0x69 0x62 0x6C    // 'invisibl' \n\t0x65 0x21 0x0D 0x0A 0x54 0x69 0x6D 0x6F    // 'e!??Timo' \n\t0x74 0x68 0x79 0x20 0x74 0x68 0x69 0x6E    // 'thy thin' \n\t0x6B 0x73 0x20 0x74 0x68 0x61 0x74 0x20    // 'ks that ' \n\t0x74 0x68 0x65 0x20 0x67 0x68 0x6F 0x73    // 'the ghos' \n\t0x74 0x20 0x66 0x6C 0x6F 0x61 0x74 0x73    // 't floats' \n\t0x20 0x6F 0x6E 0x20 0x74 0x68 0x65 0x20    // ' on the ' \n\t0x62 0x61 0x6C 0x63 0x6F 0x6E 0x79 0x20    // 'balcony ' \n\t0x61 0x74 0x20 0x6E 0x69 0x67 0x68 0x74    // 'at night' \n\t0x20 0x61 0x6E 0x64 0x20 0x6C 0x61 0x75    // ' and lau' \n\t0x67 0x68 0x73 0x20 0x61 0x74 0x20 0x74    // 'ghs at t' \n\t0x68 0x65 0x20 0x67 0x72 0x61 0x76 0x65    // 'he grave' \n\t0x79 0x61 0x72 0x64 0x20 0x62 0x65 0x6C    // 'yard bel' \n\t0x6F 0x77 0x2E 0x20 0x20 0x49 0x66 0x20    // 'ow.  If ' \n\t0x6F 0x6E 0x6C 0x79 0x20 0x68 0x65 0x20    // 'only he ' \n\t0x63 0x6F 0x75 0x6C 0x64 0x20 0x67 0x65    // 'could ge' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x67 0x68    // 't the gh' \n\t0x6F 0x73 0x74 0x20 0x74 0x6F 0x20 0x74    // 'ost to t' \n\t0x65 0x6C 0x6C 0x20 0x68 0x69 0x6D 0x20    // 'ell him ' \n\t0x69 0x74 0x73 0x20 0x6E 0x61 0x6D 0x65    // 'its name' \n\t0x2C 0x20 0x61 0x6E 0x64 0x20 0x68 0x65    // ', and he' \n\t0x61 0x72 0x20 0x74 0x68 0x65 0x20 0x67    // 'ar the g' \n\t0x68 0x6F 0x73 0x74 0x27 0x73 0x20 0x63    // 'host's c' \n\t0x68 0x69 0x6C 0x6C 0x69 0x6E 0x67 0x20    // 'hilling ' \n\t0x6C 0x61 0x75 0x67 0x68 0x2C 0x20 0x68    // 'laugh, h' \n\t0x65 0x20 0x63 0x6F 0x75 0x6C 0x64 0x20    // 'e could ' \n\t0x70 0x72 0x6F 0x76 0x65 0x20 0x74 0x68    // 'prove th' \n\t0x65 0x20 0x67 0x68 0x6F 0x73 0x74 0x20    // 'e ghost ' \n\t0x69 0x73 0x6E 0x27 0x74 0x20 0x61 0x20    // 'isn't a ' \n\t0x66 0x69 0x67 0x6D 0x65 0x6E 0x74 0x20    // 'figment ' \n\t0x6F 0x66 0x20 0x68 0x69 0x73 0x20 0x69    // 'of his i' \n\t0x6D 0x61 0x67 0x69 0x6E 0x61 0x74 0x69    // 'maginati' \n\t0x6F 0x6E 0x2E 0x20 0x20 0x0D 0x0A 0x43    // 'on.  ??C' \n\t0x61 0x6E 0x20 0x54 0x69 0x6D 0x6F 0x74    // 'an Timot' \n\t0x68 0x79 0x20 0x6C 0x65 0x61 0x72 0x6E    // 'hy learn' \n\t0x20 0x74 0x68 0x65 0x20 0x67 0x68 0x6F    // ' the gho' \n\t0x73 0x74 0x27 0x73 0x20 0x6E 0x61 0x6D    // 'st's nam' \n\t0x65 0x20 0x61 0x6E 0x64 0x20 0x70 0x72    // 'e and pr' \n\t0x6F 0x76 0x65 0x20 0x6F 0x6E 0x63 0x65    // 'ove once' \n\t0x20 0x61 0x6E 0x64 0x20 0x66 0x6F 0x72    // ' and for' \n\t0x20 0x61 0x6C 0x6C 0x20 0x74 0x68 0x61    // ' all tha' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x67 0x68    // 't the gh' \n\t0x6F 0x73 0x74 0x20 0x69 0x73 0x20 0x72    // 'ost is r' \n\t0x65 0x61 0x6C 0x3F 0x0D 0x0A              // 'eal???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_BC= ktipbio147\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_BC, __HELP_NAME(\"ktipbio147\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_BC, __HELP_NAME(\"ktipbio147\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_BC=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_BC, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio147\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_BC=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_BC, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_BC=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_BC, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE7 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0F 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_BC=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_BC, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x70 0x6F 0x72 0x74    // '??Report' \n\t0x65 0x72 0x0D 0x0A 0x54 0x69 0x6D 0x6F    // 'er??Timo' \n\t0x74 0x68 0x79 0x20 0x69 0x6D 0x61 0x67    // 'thy imag' \n\t0x69 0x6E 0x65 0x73 0x20 0x68 0x65 0x20    // 'ines he ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x62 0x65    // 'would be' \n\t0x20 0x61 0x20 0x72 0x65 0x61 0x6C 0x6C    // ' a reall' \n\t0x79 0x20 0x63 0x6F 0x6F 0x6C 0x20 0x54    // 'y cool T' \n\t0x56 0x20 0x6E 0x65 0x77 0x73 0x20 0x72    // 'V news r' \n\t0x65 0x70 0x6F 0x72 0x74 0x65 0x72 0x2E    // 'eporter.' \n\t0x20 0x20 0x48 0x65 0x20 0x77 0x6F 0x75    // '  He wou' \n\t0x6C 0x64 0x20 0x66 0x69 0x6E 0x64 0x20    // 'ld find ' \n\t0x74 0x68 0x65 0x20 0x74 0x68 0x69 0x65    // 'the thie' \n\t0x76 0x65 0x73 0x20 0x77 0x68 0x6F 0x20    // 'ves who ' \n\t0x77 0x65 0x72 0x65 0x20 0x73 0x74 0x65    // 'were ste' \n\t0x61 0x6C 0x69 0x6E 0x67 0x20 0x70 0x75    // 'aling pu' \n\t0x72 0x73 0x65 0x73 0x20 0x66 0x72 0x6F    // 'rses fro' \n\t0x6D 0x20 0x63 0x75 0x73 0x74 0x6F 0x6D    // 'm custom' \n\t0x65 0x72 0x73 0x20 0x69 0x6E 0x20 0x6F    // 'ers in o' \n\t0x6E 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 'ne of th' \n\t0x65 0x20 0x62 0x65 0x73 0x74 0x20 0x64    // 'e best d' \n\t0x6F 0x77 0x6E 0x74 0x6F 0x77 0x6E 0x20    // 'owntown ' \n\t0x72 0x65 0x73 0x74 0x61 0x75 0x72 0x61    // 'restaura' \n\t0x6E 0x74 0x73 0x2E 0x20 0x20 0x41 0x6E    // 'nts.  An' \n\t0x64 0x20 0x68 0x65 0x27 0x64 0x20 0x73    // 'd he'd s' \n\t0x6E 0x65 0x61 0x6B 0x20 0x61 0x72 0x6F    // 'neak aro' \n\t0x75 0x6E 0x64 0x20 0x61 0x74 0x20 0x6E    // 'und at n' \n\t0x69 0x67 0x68 0x74 0x2C 0x20 0x68 0x69    // 'ight, hi' \n\t0x64 0x69 0x6E 0x67 0x20 0x62 0x65 0x68    // 'ding beh' \n\t0x69 0x6E 0x64 0x20 0x74 0x68 0x65 0x20    // 'ind the ' \n\t0x64 0x75 0x6D 0x70 0x73 0x74 0x65 0x72    // 'dumpster' \n\t0x20 0x74 0x6F 0x20 0x68 0x65 0x61 0x72    // ' to hear' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x68 0x69    // ' the thi' \n\t0x65 0x76 0x65 0x73 0x20 0x70 0x6C 0x61    // 'eves pla' \n\t0x6E 0x6E 0x69 0x6E 0x67 0x2E 0x20 0x0D    // 'nning. ?' \n\t0x0A 0x42 0x75 0x74 0x20 0x74 0x68 0x65    // '?But the' \n\t0x72 0x65 0x20 0x69 0x73 0x20 0x73 0x6F    // 're is so' \n\t0x6D 0x65 0x74 0x68 0x69 0x6E 0x67 0x20    // 'mething ' \n\t0x54 0x69 0x6D 0x6F 0x74 0x68 0x79 0x20    // 'Timothy ' \n\t0x64 0x69 0x64 0x6E 0x92 0x74 0x20 0x70    // 'didnt p' \n\t0x6C 0x61 0x6E 0x20 0x66 0x6F 0x72 0x2E    // 'lan for.' \n\t0x20 0x20 0x4A 0x75 0x73 0x74 0x20 0x61    // '  Just a' \n\t0x73 0x20 0x68 0x65 0x20 0x69 0x73 0x20    // 's he is ' \n\t0x6C 0x69 0x73 0x74 0x65 0x6E 0x69 0x6E    // 'listenin' \n\t0x67 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'g to the' \n\t0x20 0x74 0x68 0x69 0x65 0x76 0x65 0x73    // ' thieves' \n\t0x20 0x74 0x61 0x6C 0x6B 0x2C 0x20 0x61    // ' talk, a' \n\t0x20 0x72 0x61 0x74 0x20 0x6C 0x69 0x76    // ' rat liv' \n\t0x69 0x6E 0x67 0x20 0x20 0x69 0x6E 0x20    // 'ing  in ' \n\t0x74 0x68 0x65 0x20 0x64 0x75 0x6D 0x70    // 'the dump' \n\t0x73 0x74 0x65 0x72 0x20 0x61 0x74 0x74    // 'ster att' \n\t0x61 0x63 0x6B 0x73 0x20 0x54 0x69 0x6D    // 'acks Tim' \n\t0x6F 0x74 0x68 0x79 0x2E 0x20 0x20 0x48    // 'othy.  H' \n\t0x6F 0x77 0x20 0x63 0x61 0x6E 0x20 0x54    // 'ow can T' \n\t0x69 0x6D 0x6F 0x74 0x68 0x79 0x20 0x6B    // 'imothy k' \n\t0x65 0x65 0x70 0x20 0x71 0x75 0x69 0x65    // 'eep quie' \n\t0x74 0x20 0x61 0x6E 0x64 0x20 0x73 0x74    // 't and st' \n\t0x69 0x6C 0x6C 0x20 0x64 0x65 0x66 0x65    // 'ill defe' \n\t0x6E 0x64 0x20 0x68 0x69 0x6D 0x73 0x65    // 'nd himse' \n\t0x6C 0x66 0x20 0x61 0x67 0x61 0x69 0x6E    // 'lf again' \n\t0x73 0x74 0x20 0x74 0x68 0x65 0x20 0x64    // 'st the d' \n\t0x69 0x72 0x74 0x79 0x20 0x72 0x61 0x74    // 'irty rat' \n\t0x3F                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_BD= ktipbio148\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_BD, __HELP_NAME(\"ktipbio148\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_BD, __HELP_NAME(\"ktipbio148\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_BD=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_BD, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio148\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_BD=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_BD, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_BD=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_BD, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x36 0x02 0x00 0x01    // '????6???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x40 0x01 0x00 0x82    // '????@??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_BD=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_BD, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x61 0x74 0x75 0x72 0x61    // '??Natura' \n\t0x6C 0x69 0x73 0x74 0x0D 0x0A 0x54 0x69    // 'list??Ti' \n\t0x6D 0x6F 0x74 0x68 0x79 0x20 0x77 0x6F    // 'mothy wo' \n\t0x75 0x6C 0x64 0x20 0x6C 0x69 0x6B 0x65    // 'uld like' \n\t0x20 0x74 0x6F 0x20 0x73 0x74 0x61 0x72    // ' to star' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x6D 0x6F    // ' in a mo' \n\t0x76 0x69 0x65 0x20 0x61 0x73 0x20 0x61    // 'vie as a' \n\t0x20 0x6E 0x61 0x74 0x75 0x72 0x61 0x6C    // ' natural' \n\t0x69 0x73 0x74 0x2C 0x20 0x73 0x6F 0x6D    // 'ist, som' \n\t0x65 0x6F 0x6E 0x65 0x20 0x77 0x68 0x6F    // 'eone who' \n\t0x20 0x73 0x74 0x75 0x64 0x69 0x65 0x73    // ' studies' \n\t0x20 0x61 0x6E 0x64 0x20 0x70 0x72 0x6F    // ' and pro' \n\t0x74 0x65 0x63 0x74 0x73 0x20 0x6E 0x61    // 'tects na' \n\t0x74 0x75 0x72 0x65 0x2E 0x20 0x20 0x57    // 'ture.  W' \n\t0x68 0x61 0x74 0x20 0x69 0x66 0x20 0x68    // 'hat if h' \n\t0x65 0x20 0x73 0x74 0x75 0x6D 0x62 0x6C    // 'e stumbl' \n\t0x65 0x64 0x20 0x75 0x70 0x6F 0x6E 0x20    // 'ed upon ' \n\t0x74 0x68 0x65 0x20 0x6F 0x70 0x65 0x6E    // 'the open' \n\t0x69 0x6E 0x67 0x20 0x6F 0x66 0x20 0x61    // 'ing of a' \n\t0x6E 0x20 0x6F 0x6C 0x64 0x2C 0x20 0x6C    // 'n old, l' \n\t0x6F 0x73 0x74 0x20 0x63 0x61 0x76 0x65    // 'ost cave' \n\t0x3F 0x20 0x20 0x42 0x75 0x74 0x20 0x69    // '?  But i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x63 0x61    // 'n the ca' \n\t0x76 0x65 0x2C 0x20 0x54 0x69 0x6D 0x6F    // 've, Timo' \n\t0x74 0x68 0x79 0x20 0x62 0x75 0x6D 0x70    // 'thy bump' \n\t0x73 0x20 0x69 0x6E 0x74 0x6F 0x20 0x61    // 's into a' \n\t0x20 0x63 0x6C 0x61 0x79 0x20 0x77 0x61    // ' clay wa' \n\t0x74 0x65 0x72 0x20 0x6A 0x75 0x67 0x2C    // 'ter jug,' \n\t0x20 0x61 0x6E 0x64 0x20 0x61 0x20 0x62    // ' and a b' \n\t0x6C 0x75 0x65 0x20 0x73 0x6D 0x6F 0x6B    // 'lue smok' \n\t0x65 0x20 0x65 0x6E 0x67 0x75 0x6C 0x66    // 'e engulf' \n\t0x73 0x20 0x68 0x69 0x6D 0x2E 0x20 0x20    // 's him.  ' \n\t0x54 0x68 0x65 0x20 0x73 0x6D 0x6F 0x6B    // 'The smok' \n\t0x65 0x20 0x68 0x61 0x73 0x20 0x73 0x70    // 'e has sp' \n\t0x65 0x63 0x69 0x61 0x6C 0x2C 0x20 0x73    // 'ecial, s' \n\t0x65 0x63 0x72 0x65 0x74 0x20 0x70 0x6F    // 'ecret po' \n\t0x77 0x65 0x72 0x73 0x20 0x74 0x68 0x61    // 'wers tha' \n\t0x74 0x20 0x65 0x6E 0x61 0x62 0x6C 0x65    // 't enable' \n\t0x20 0x54 0x69 0x6D 0x6F 0x74 0x68 0x79    // ' Timothy' \n\t0x20 0x74 0x6F 0x20 0x66 0x6C 0x79 0x2E    // ' to fly.' \n\t0x0D 0x0A 0x42 0x75 0x74 0x2C 0x20 0x6A    // '??But, j' \n\t0x75 0x73 0x74 0x20 0x74 0x68 0x65 0x6E    // 'ust then' \n\t0x2C 0x20 0x54 0x69 0x6D 0x6F 0x74 0x68    // ', Timoth' \n\t0x79 0x20 0x68 0x65 0x61 0x72 0x73 0x20    // 'y hears ' \n\t0x73 0x6F 0x6D 0x65 0x6F 0x6E 0x65 0x20    // 'someone ' \n\t0x63 0x72 0x79 0x69 0x6E 0x67 0x20 0x66    // 'crying f' \n\t0x6F 0x72 0x20 0x68 0x65 0x6C 0x70 0x20    // 'or help ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x64    // 'in the d' \n\t0x69 0x73 0x74 0x61 0x6E 0x63 0x65 0x2E    // 'istance.' \n\t0x20 0x20 0x49 0x74 0x92 0x73 0x20 0x63    // '  Its c' \n\t0x6F 0x6D 0x69 0x6E 0x67 0x20 0x66 0x72    // 'oming fr' \n\t0x6F 0x6D 0x20 0x74 0x68 0x65 0x20 0x6F    // 'om the o' \n\t0x6C 0x64 0x20 0x77 0x6F 0x6F 0x64 0x65    // 'ld woode' \n\t0x6E 0x20 0x62 0x72 0x69 0x64 0x67 0x65    // 'n bridge' \n\t0x2E 0x20 0x20 0x53 0x6F 0x6D 0x65 0x6F    // '.  Someo' \n\t0x6E 0x65 0x20 0x73 0x65 0x74 0x20 0x66    // 'ne set f' \n\t0x69 0x72 0x65 0x20 0x74 0x6F 0x20 0x74    // 'ire to t' \n\t0x68 0x65 0x20 0x62 0x72 0x69 0x64 0x67    // 'he bridg' \n\t0x65 0x20 0x77 0x68 0x69 0x6C 0x65 0x20    // 'e while ' \n\t0x61 0x20 0x63 0x68 0x69 0x6C 0x64 0x20    // 'a child ' \n\t0x77 0x61 0x73 0x20 0x63 0x72 0x6F 0x73    // 'was cros' \n\t0x73 0x69 0x6E 0x67 0x2E 0x20 0x20 0x43    // 'sing.  C' \n\t0x61 0x6E 0x20 0x54 0x69 0x6D 0x6F 0x74    // 'an Timot' \n\t0x68 0x79 0x20 0x75 0x73 0x65 0x20 0x68    // 'hy use h' \n\t0x69 0x73 0x20 0x6E 0x65 0x77 0x20 0x70    // 'is new p' \n\t0x6F 0x77 0x65 0x72 0x73 0x20 0x74 0x6F    // 'owers to' \n\t0x20 0x73 0x61 0x76 0x65 0x20 0x74 0x68    // ' save th' \n\t0x65 0x20 0x63 0x68 0x69 0x6C 0x64 0x20    // 'e child ' \n\t0x62 0x65 0x66 0x6F 0x72 0x65 0x20 0x74    // 'before t' \n\t0x68 0x65 0x20 0x62 0x72 0x69 0x64 0x67    // 'he bridg' \n\t0x65 0x20 0x66 0x61 0x6C 0x6C 0x73 0x3F    // 'e falls?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_BE= ktipbio149\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_BE, __HELP_NAME(\"ktipbio149\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_BE, __HELP_NAME(\"ktipbio149\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_BE, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio149\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_BE, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x3F 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB3 0x03 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xA8 0x02 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C3, 0x0)\n\tBYTE\n\t0x03 0x03 0x66 0x69 0x6C 0x6D 0x0D 0x0A    // '??film??' \n\t0x56 0x61 0x6C 0x65 0x6E 0x74 0x69 0x6E    // 'Valentin' \n\t0x65 0x20 0x61 0x6C 0x77 0x61 0x79 0x73    // 'e always' \n\t0x20 0x77 0x61 0x6E 0x74 0x65 0x64 0x20    // ' wanted ' \n\t0x74 0x6F 0x20 0x62 0x65 0x63 0x6F 0x6D    // 'to becom' \n\t0x65 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'e an act' \n\t0x6F 0x72 0x2E 0x20 0x20 0x48 0x65 0x20    // 'or.  He ' \n\t0x68 0x65 0x61 0x72 0x64 0x20 0x74 0x68    // 'heard th' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x6F    // 'at the o' \n\t0x6E 0x6C 0x79 0x20 0x77 0x61 0x79 0x20    // 'nly way ' \n\t0x74 0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20    // 'to make ' \n\t0x69 0x74 0x20 0x69 0x6E 0x20 0x73 0x68    // 'it in sh' \n\t0x6F 0x77 0x20 0x62 0x69 0x7A 0x20 0x77    // 'ow biz w' \n\t0x61 0x73 0x20 0x74 0x6F 0x20 0x6D 0x65    // 'as to me' \n\t0x65 0x74 0x20 0x74 0x68 0x65 0x20 0x72    // 'et the r' \n\t0x69 0x67 0x68 0x74 0x20 0x70 0x65 0x6F    // 'ight peo' \n\t0x70 0x6C 0x65 0x2E 0x20 0x20 0x56 0x61    // 'ple.  Va' \n\t0x6C 0x65 0x6E 0x74 0x69 0x6E 0x65 0x20    // 'lentine ' \n\t0x64 0x65 0x63 0x69 0x64 0x65 0x64 0x20    // 'decided ' \n\t0x74 0x6F 0x20 0x67 0x65 0x74 0x20 0x61    // 'to get a' \n\t0x20 0x6A 0x6F 0x62 0x20 0x61 0x73 0x20    // ' job as ' \n\t0x61 0x20 0x76 0x61 0x6C 0x65 0x74 0x20    // 'a valet ' \n\t0x69 0x6E 0x20 0x61 0x20 0x70 0x61 0x72    // 'in a par' \n\t0x6B 0x69 0x6E 0x67 0x20 0x6C 0x6F 0x74    // 'king lot' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x43 0x61 0x6E 0x6E 0x65 0x73 0x20 0x46    // 'Cannes F' \n\t0x69 0x6C 0x6D 0x20 0x46 0x65 0x73 0x74    // 'ilm Fest' \n\t0x69 0x76 0x61 0x6C 0x2E 0x20 0x20 0x48    // 'ival.  H' \n\t0x65 0x20 0x63 0x6F 0x75 0x6C 0x64 0x6E    // 'e couldn' \n\t0x92 0x74 0x20 0x62 0x65 0x6C 0x69 0x65    // 't belie' \n\t0x76 0x65 0x20 0x69 0x74 0x97 0x61 0x6C    // 've ital' \n\t0x6C 0x20 0x74 0x68 0x65 0x73 0x65 0x20    // 'l these ' \n\t0x73 0x74 0x61 0x72 0x73 0x20 0x66 0x72    // 'stars fr' \n\t0x6F 0x6D 0x20 0x61 0x72 0x6F 0x75 0x6E    // 'om aroun' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x77 0x6F    // 'd the wo' \n\t0x72 0x6C 0x64 0x21 0x20 0x20 0x54 0x68    // 'rld!  Th' \n\t0x65 0x6E 0x20 0x68 0x65 0x20 0x72 0x65    // 'en he re' \n\t0x6D 0x65 0x6D 0x62 0x65 0x72 0x65 0x64    // 'membered' \n\t0x3A 0x20 0x22 0x74 0x68 0x65 0x20 0x6F    // ': \"the o' \n\t0x6E 0x6C 0x79 0x20 0x77 0x61 0x79 0x20    // 'nly way ' \n\t0x74 0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20    // 'to make ' \n\t0x69 0x74 0x20 0x69 0x6E 0x20 0x73 0x68    // 'it in sh' \n\t0x6F 0x77 0x20 0x62 0x69 0x7A 0x2E 0x2E    // 'ow biz..' \n\t0x2E 0x22 0x20 0x20 0x44 0x69 0x6E 0x67    // '.\"  Ding' \n\t0x21 0x20 0x20 0x56 0x61 0x6C 0x65 0x6E    // '!  Valen' \n\t0x74 0x69 0x6E 0x65 0x20 0x67 0x6F 0x74    // 'tine got' \n\t0x20 0x61 0x6E 0x20 0x69 0x64 0x65 0x61    // ' an idea' \n\t0x2E 0x20 0x20 0x48 0x65 0x20 0x20 0x77    // '.  He  w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x63 0x61 0x72    // 'ould car' \n\t0x65 0x66 0x75 0x6C 0x6C 0x79 0x20 0x70    // 'efully p' \n\t0x61 0x72 0x6B 0x20 0x73 0x6F 0x6D 0x65    // 'ark some' \n\t0x20 0x73 0x74 0x61 0x72 0x92 0x73 0x20    // ' stars ' \n\t0x63 0x61 0x72 0x20 0x61 0x6E 0x64 0x20    // 'car and ' \n\t0x63 0x68 0x65 0x63 0x6B 0x20 0x74 0x6F    // 'check to' \n\t0x20 0x73 0x65 0x65 0x20 0x69 0x66 0x20    // ' see if ' \n\t0x74 0x68 0x65 0x79 0x20 0x68 0x61 0x64    // 'they had' \n\t0x20 0x61 0x6E 0x79 0x20 0x6C 0x75 0x67    // ' any lug' \n\t0x67 0x61 0x67 0x65 0x2E 0x20 0x20 0x49    // 'gage.  I' \n\t0x66 0x20 0x74 0x68 0x65 0x79 0x20 0x64    // 'f they d' \n\t0x69 0x64 0x2C 0x20 0x68 0x65 0x20 0x77    // 'id, he w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x68 0x69 0x64    // 'ould hid' \n\t0x65 0x20 0x69 0x6E 0x20 0x61 0x20 0x73    // 'e in a s' \n\t0x75 0x69 0x74 0x63 0x61 0x73 0x65 0x2E    // 'uitcase.' \n\t0x20 0x54 0x68 0x65 0x20 0x73 0x74 0x61    // ' The sta' \n\t0x72 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 'r would ' \n\t0x65 0x76 0x65 0x6E 0x74 0x75 0x61 0x6C    // 'eventual' \n\t0x6C 0x79 0x20 0x67 0x6F 0x20 0x62 0x61    // 'ly go ba' \n\t0x63 0x6B 0x20 0x68 0x6F 0x6D 0x65 0x20    // 'ck home ' \n\t0x61 0x6E 0x64 0x20 0x6F 0x70 0x65 0x6E    // 'and open' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x75 0x69    // ' the sui' \n\t0x74 0x63 0x61 0x73 0x65 0x2E 0x20 0x20    // 'tcase.  ' \n\t0x56 0x61 0x6C 0x65 0x6E 0x74 0x69 0x6E    // 'Valentin' \n\t0x65 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 'e would ' \n\t0x70 0x6F 0x70 0x20 0x6F 0x75 0x74 0x2C    // 'pop out,' \n\t0x20 0x69 0x6E 0x74 0x72 0x6F 0x64 0x75    // ' introdu' \n\t0x63 0x65 0x20 0x68 0x69 0x6D 0x73 0x65    // 'ce himse' \n\t0x6C 0x66 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'lf, and ' \n\t0x42 0x69 0x6E 0x67 0x6F 0x21 0x20 0x68    // 'Bingo! h' \n\t0x65 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 'e would ' \n\t0x6B 0x6E 0x6F 0x77 0x20 0x73 0x6F 0x6D    // 'know som' \n\t0x65 0x6F 0x6E 0x65 0x20 0x69 0x6E 0x20    // 'eone in ' \n\t0x73 0x68 0x6F 0x77 0x20 0x62 0x69 0x7A    // 'show biz' \n\t0x2E 0x20 0x20 0x53 0x6F 0x6F 0x6E 0x20    // '.  Soon ' \n\t0x68 0x65 0x92 0x64 0x20 0x62 0x65 0x20    // 'hed be ' \n\t0x61 0x20 0x73 0x74 0x61 0x72 0x21 0x20    // 'a star! ' \n\t0x0D 0x0A 0x57 0x65 0x6C 0x6C 0x2C 0x20    // '??Well, ' \n\t0x74 0x68 0x69 0x6E 0x67 0x73 0x20 0x64    // 'things d' \n\t0x69 0x64 0x6E 0x92 0x74 0x20 0x71 0x75    // 'idnt qu' \n\t0x69 0x74 0x65 0x20 0x67 0x6F 0x20 0x61    // 'ite go a' \n\t0x63 0x63 0x6F 0x72 0x64 0x69 0x6E 0x67    // 'ccording' \n\t0x20 0x74 0x6F 0x20 0x70 0x6C 0x61 0x6E    // ' to plan' \n\t0x2E 0x20 0x20 0x56 0x61 0x6C 0x65 0x6E    // '.  Valen' \n\t0x74 0x69 0x6E 0x65 0x20 0x65 0x6E 0x64    // 'tine end' \n\t0x65 0x64 0x20 0x75 0x70 0x20 0x61 0x74    // 'ed up at' \n\t0x20 0x61 0x20 0x73 0x6D 0x61 0x6C 0x6C    // ' a small' \n\t0x20 0x61 0x69 0x72 0x70 0x6F 0x72 0x74    // ' airport' \n\t0x20 0x75 0x6E 0x64 0x65 0x72 0x20 0x74    // ' under t' \n\t0x68 0x65 0x20 0x6C 0x6F 0x73 0x74 0x20    // 'he lost ' \n\t0x6C 0x75 0x67 0x67 0x61 0x67 0x65 0x20    // 'luggage ' \n\t0x63 0x6F 0x75 0x6E 0x74 0x65 0x72 0x2E    // 'counter.' \n\t0x20 0x20 0x53 0x6F 0x6D 0x65 0x62 0x6F    // '  Somebo' \n\t0x64 0x79 0x20 0x68 0x65 0x61 0x72 0x64    // 'dy heard' \n\t0x20 0x68 0x69 0x6D 0x20 0x73 0x63 0x72    // ' him scr' \n\t0x65 0x61 0x6D 0x69 0x6E 0x67 0x20 0x68    // 'eaming h' \n\t0x69 0x73 0x20 0x6C 0x75 0x6E 0x67 0x73    // 'is lungs' \n\t0x20 0x6F 0x75 0x74 0x20 0x66 0x72 0x6F    // ' out fro' \n\t0x6D 0x20 0x69 0x6E 0x73 0x69 0x64 0x65    // 'm inside' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x75 0x69    // ' the sui' \n\t0x74 0x63 0x61 0x73 0x65 0x2E 0x20 0x20    // 'tcase.  ' \n\t0x42 0x79 0x20 0x63 0x6F 0x69 0x6E 0x63    // 'By coinc' \n\t0x69 0x64 0x65 0x6E 0x63 0x65 0x2C 0x20    // 'idence, ' \n\t0x74 0x68 0x61 0x74 0x20 0x93 0x73 0x6F    // 'that so' \n\t0x6D 0x65 0x62 0x6F 0x64 0x79 0x94 0x20    // 'mebody ' \n\t0x77 0x61 0x73 0x20 0x61 0x20 0x68 0x6F    // 'was a ho' \n\t0x74 0x20 0x66 0x69 0x6C 0x6D 0x20 0x64    // 't film d' \n\t0x69 0x72 0x65 0x63 0x74 0x6F 0x72 0x20    // 'irector ' \n\t0x62 0x79 0x20 0x74 0x68 0x65 0x20 0x6E    // 'by the n' \n\t0x61 0x6D 0x65 0x20 0x6F 0x66 0x20 0x4D    // 'ame of M' \n\t0x63 0x5A 0x65 0x65 0x21                   // 'cZee!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_BF= ktipbio150\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_BF, __HELP_NAME(\"ktipbio150\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_BF, __HELP_NAME(\"ktipbio150\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_BF=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_BF, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio150\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_BF=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_BF, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_BF=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_BF, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2A 0x02 0x00 0x01    // '????*???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x15 0x02 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_BF=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_BF, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x6E 0x6E 0x6F 0x79 0x69    // '??Annoyi' \n\t0x6E 0x67 0x20 0x4E 0x65 0x69 0x67 0x68    // 'ng Neigh' \n\t0x62 0x6F 0x72 0x0D 0x0A 0x56 0x61 0x6C    // 'bor??Val' \n\t0x65 0x6E 0x74 0x69 0x6E 0x65 0x20 0x77    // 'entine w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x6C 0x6F 0x76    // 'ould lov' \n\t0x65 0x20 0x70 0x6C 0x61 0x79 0x20 0x74    // 'e play t' \n\t0x68 0x65 0x20 0x70 0x61 0x72 0x74 0x20    // 'he part ' \n\t0x6F 0x66 0x20 0x61 0x6E 0x20 0x61 0x6E    // 'of an an' \n\t0x6E 0x6F 0x79 0x69 0x6E 0x67 0x20 0x6E    // 'noying n' \n\t0x65 0x69 0x67 0x68 0x62 0x6F 0x72 0x2E    // 'eighbor.' \n\t0x20 0x20 0x59 0x6F 0x75 0x20 0x6B 0x6E    // '  You kn' \n\t0x6F 0x77 0x2C 0x20 0x74 0x68 0x65 0x20    // 'ow, the ' \n\t0x74 0x79 0x70 0x65 0x20 0x77 0x68 0x6F    // 'type who' \n\t0x20 0x73 0x68 0x6F 0x77 0x73 0x20 0x75    // ' shows u' \n\t0x70 0x20 0x61 0x74 0x20 0x79 0x6F 0x75    // 'p at you' \n\t0x72 0x20 0x64 0x6F 0x6F 0x72 0x20 0x61    // 'r door a' \n\t0x6C 0x6C 0x20 0x74 0x68 0x65 0x20 0x74    // 'll the t' \n\t0x69 0x6D 0x65 0x2E 0x20 0x20 0x57 0x68    // 'ime.  Wh' \n\t0x6F 0x20 0x66 0x6F 0x6C 0x6C 0x6F 0x77    // 'o follow' \n\t0x73 0x20 0x79 0x6F 0x75 0x20 0x65 0x76    // 's you ev' \n\t0x65 0x72 0x79 0x77 0x68 0x65 0x72 0x65    // 'erywhere' \n\t0x20 0x79 0x6F 0x75 0x20 0x67 0x6F 0x20    // ' you go ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x63    // 'in the c' \n\t0x69 0x74 0x79 0x2E 0x20 0x20 0x57 0x68    // 'ity.  Wh' \n\t0x6F 0x20 0x65 0x61 0x74 0x73 0x20 0x64    // 'o eats d' \n\t0x69 0x6E 0x6E 0x65 0x72 0x20 0x61 0x74    // 'inner at' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x61 0x6D    // ' the sam' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x79 0x6F 0x75 0x20 0x64 0x6F 0x2E 0x20    // 'you do. ' \n\t0x20 0x54 0x68 0x61 0x74 0x92 0x73 0x20    // ' Thats ' \n\t0x69 0x74 0x21 0x20 0x59 0x6F 0x75 0x92    // 'it! You' \n\t0x72 0x65 0x20 0x66 0x65 0x64 0x20 0x75    // 're fed u' \n\t0x70 0x21 0x20 0x20 0x59 0x6F 0x75 0x20    // 'p!  You ' \n\t0x6E 0x65 0x65 0x64 0x20 0x61 0x20 0x76    // 'need a v' \n\t0x61 0x63 0x61 0x74 0x69 0x6F 0x6E 0x2E    // 'acation.' \n\t0x20 0x20 0x48 0x6F 0x77 0x20 0x61 0x62    // '  How ab' \n\t0x6F 0x75 0x74 0x20 0x74 0x68 0x65 0x20    // 'out the ' \n\t0x73 0x65 0x72 0x65 0x6E 0x69 0x74 0x79    // 'serenity' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x6A 0x75 0x6E 0x67 0x6C 0x65 0x3F 0x20    // 'jungle? ' \n\t0x20 0x4C 0x65 0x61 0x6E 0x20 0x62 0x61    // ' Lean ba' \n\t0x63 0x6B 0x20 0x61 0x6E 0x64 0x20 0x72    // 'ck and r' \n\t0x65 0x6C 0x61 0x78 0x20 0x69 0x6E 0x20    // 'elax in ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x6E    // 'the plan' \n\t0x65 0x2C 0x20 0x73 0x6F 0x6F 0x6E 0x20    // 'e, soon ' \n\t0x61 0x6C 0x6C 0x20 0x6F 0x66 0x20 0x79    // 'all of y' \n\t0x6F 0x75 0x72 0x20 0x74 0x72 0x6F 0x75    // 'our trou' \n\t0x62 0x6C 0x65 0x73 0x20 0x77 0x69 0x6C    // 'bles wil' \n\t0x6C 0x20 0x62 0x65 0x20 0x62 0x65 0x68    // 'l be beh' \n\t0x69 0x6E 0x64 0x20 0x79 0x6F 0x75 0x2E    // 'ind you.' \n\t0x20 0x20 0x59 0x6F 0x75 0x20 0x6C 0x6F    // '  You lo' \n\t0x6F 0x6B 0x20 0x74 0x68 0x72 0x6F 0x75    // 'ok throu' \n\t0x67 0x68 0x20 0x74 0x68 0x65 0x20 0x77    // 'gh the w' \n\t0x69 0x6E 0x64 0x6F 0x77 0x20 0x74 0x6F    // 'indow to' \n\t0x20 0x61 0x64 0x6D 0x69 0x72 0x65 0x20    // ' admire ' \n\t0x74 0x68 0x65 0x20 0x70 0x61 0x73 0x73    // 'the pass' \n\t0x69 0x6E 0x67 0x20 0x73 0x63 0x65 0x6E    // 'ing scen' \n\t0x65 0x72 0x79 0x2E 0x20 0x20 0x4F 0x68    // 'ery.  Oh' \n\t0x20 0x6E 0x6F 0x21 0x20 0x20 0x49 0x73    // ' no!  Is' \n\t0x20 0x74 0x68 0x69 0x73 0x20 0x70 0x6F    // ' this po' \n\t0x73 0x73 0x69 0x62 0x6C 0x65 0x3F 0x20    // 'ssible? ' \n\t0x56 0x61 0x6C 0x65 0x6E 0x74 0x69 0x6E    // 'Valentin' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x61 0x6E    // 'e the an' \n\t0x6E 0x6F 0x79 0x69 0x6E 0x67 0x20 0x6E    // 'noying n' \n\t0x65 0x69 0x67 0x68 0x62 0x6F 0x72 0x20    // 'eighbor ' \n\t0x63 0x61 0x6E 0x20 0x65 0x76 0x65 0x6E    // 'can even' \n\t0x20 0x66 0x6C 0x79 0x21 0x0D 0x0A 0x42    // ' fly!??B' \n\t0x75 0x74 0x20 0x63 0x61 0x6E 0x20 0x68    // 'ut can h' \n\t0x65 0x20 0x6C 0x61 0x6E 0x64 0x2E 0x2E    // 'e land..' \n\t0x2E 0x3F 0x0D 0x0A                        // '.???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C0= ktipbio151\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C0, __HELP_NAME(\"ktipbio151\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C0, __HELP_NAME(\"ktipbio151\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio151\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA1 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8A 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C0, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x65 0x74 0x65 0x63 0x74    // '??Detect' \n\t0x69 0x76 0x65 0x0D 0x0A 0x56 0x61 0x6C    // 'ive??Val' \n\t0x65 0x6E 0x74 0x69 0x6E 0x65 0x20 0x63    // 'entine c' \n\t0x61 0x6E 0x92 0x74 0x20 0x77 0x61 0x69    // 'ant wai' \n\t0x74 0x20 0x74 0x6F 0x20 0x70 0x6C 0x61    // 't to pla' \n\t0x79 0x20 0x61 0x20 0x64 0x65 0x74 0x65    // 'y a dete' \n\t0x63 0x74 0x69 0x76 0x65 0x2E 0x20 0x20    // 'ctive.  ' \n\t0x54 0x68 0x65 0x20 0x64 0x65 0x74 0x65    // 'The dete' \n\t0x63 0x74 0x69 0x76 0x65 0x20 0x56 0x61    // 'ctive Va' \n\t0x6C 0x65 0x6E 0x74 0x69 0x6E 0x65 0x20    // 'lentine ' \n\t0x77 0x61 0x6E 0x74 0x73 0x20 0x74 0x6F    // 'wants to' \n\t0x20 0x70 0x6C 0x61 0x79 0x20 0x69 0x73    // ' play is' \n\t0x20 0x73 0x70 0x65 0x63 0x69 0x61 0x6C    // ' special' \n\t0x2E 0x20 0x4E 0x6F 0x74 0x20 0x6F 0x6E    // '. Not on' \n\t0x6C 0x79 0x20 0x69 0x73 0x20 0x68 0x65    // 'ly is he' \n\t0x20 0x77 0x69 0x73 0x65 0x20 0x61 0x6E    // ' wise an' \n\t0x64 0x20 0x63 0x6C 0x65 0x76 0x65 0x72    // 'd clever' \n\t0x2C 0x20 0x62 0x75 0x74 0x20 0x68 0x65    // ', but he' \n\t0x20 0x61 0x6C 0x73 0x6F 0x20 0x68 0x61    // ' also ha' \n\t0x73 0x20 0x61 0x6E 0x20 0x69 0x6E 0x63    // 's an inc' \n\t0x72 0x65 0x64 0x69 0x62 0x6C 0x65 0x20    // 'redible ' \n\t0x70 0x6F 0x77 0x65 0x72 0x2E 0x20 0x20    // 'power.  ' \n\t0x4F 0x6E 0x63 0x65 0x20 0x68 0x65 0x20    // 'Once he ' \n\t0x66 0x69 0x6E 0x64 0x73 0x20 0x61 0x20    // 'finds a ' \n\t0x63 0x6C 0x75 0x65 0x20 0x74 0x6F 0x20    // 'clue to ' \n\t0x61 0x20 0x6D 0x79 0x73 0x74 0x65 0x72    // 'a myster' \n\t0x79 0x2C 0x20 0x68 0x65 0x20 0x69 0x73    // 'y, he is' \n\t0x20 0x61 0x62 0x6C 0x65 0x20 0x74 0x6F    // ' able to' \n\t0x20 0x74 0x72 0x61 0x6E 0x73 0x66 0x6F    // ' transfo' \n\t0x72 0x6D 0x20 0x68 0x69 0x6D 0x73 0x65    // 'rm himse' \n\t0x6C 0x66 0x20 0x69 0x6E 0x74 0x6F 0x20    // 'lf into ' \n\t0x61 0x6E 0x6F 0x74 0x68 0x65 0x72 0x20    // 'another ' \n\t0x68 0x75 0x6D 0x61 0x6E 0x20 0x62 0x65    // 'human be' \n\t0x69 0x6E 0x67 0x2C 0x20 0x61 0x6E 0x20    // 'ing, an ' \n\t0x61 0x6E 0x69 0x6D 0x61 0x6C 0x2C 0x20    // 'animal, ' \n\t0x6F 0x72 0x20 0x65 0x76 0x65 0x6E 0x20    // 'or even ' \n\t0x61 0x6E 0x20 0x6F 0x62 0x6A 0x65 0x63    // 'an objec' \n\t0x74 0x2E 0x20 0x20 0x20 0x42 0x75 0x74    // 't.   But' \n\t0x20 0x6F 0x6E 0x63 0x65 0x20 0x68 0x65    // ' once he' \n\t0x20 0x69 0x73 0x20 0x74 0x72 0x61 0x6E    // ' is tran' \n\t0x73 0x66 0x6F 0x72 0x6D 0x65 0x64 0x2C    // 'sformed,' \n\t0x20 0x68 0x65 0x20 0x63 0x61 0x6E 0x20    // ' he can ' \n\t0x6F 0x6E 0x6C 0x79 0x20 0x63 0x6F 0x6D    // 'only com' \n\t0x65 0x20 0x62 0x61 0x63 0x6B 0x20 0x61    // 'e back a' \n\t0x73 0x20 0x68 0x69 0x6D 0x73 0x65 0x6C    // 's himsel' \n\t0x66 0x20 0x69 0x66 0x20 0x68 0x65 0x20    // 'f if he ' \n\t0x66 0x69 0x67 0x75 0x72 0x65 0x73 0x20    // 'figures ' \n\t0x6F 0x75 0x74 0x20 0x77 0x68 0x6F 0x20    // 'out who ' \n\t0x69 0x73 0x20 0x67 0x75 0x69 0x6C 0x74    // 'is guilt' \n\t0x79 0x2E 0x0D 0x0A 0x43 0x61 0x6E 0x20    // 'y.??Can ' \n\t0x68 0x65 0x20 0x73 0x6F 0x6C 0x76 0x65    // 'he solve' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x72 0x69    // ' the cri' \n\t0x6D 0x65 0x3F                             // 'me?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C1= ktipbio152\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C1, __HELP_NAME(\"ktipbio152\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C1, __HELP_NAME(\"ktipbio152\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio152\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xF3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB1 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C1, 0x0)\n\tBYTE\n\t0x03 0x03 0x56 0x6F 0x6F 0x64 0x6F 0x6F    // '??Voodoo' \n\t0x20 0x4D 0x61 0x6E 0x0D 0x0A 0x49 0x66    // ' Man??If' \n\t0x20 0x79 0x6F 0x75 0x20 0x61 0x72 0x65    // ' you are' \n\t0x20 0x74 0x69 0x72 0x65 0x64 0x20 0x6F    // ' tired o' \n\t0x66 0x20 0x62 0x65 0x69 0x6E 0x67 0x20    // 'f being ' \n\t0x74 0x72 0x65 0x61 0x74 0x65 0x64 0x20    // 'treated ' \n\t0x6C 0x69 0x6B 0x65 0x20 0x61 0x20 0x6B    // 'like a k' \n\t0x69 0x64 0x20 0x61 0x6E 0x64 0x20 0x77    // 'id and w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x62    // 'ant to b' \n\t0x65 0x63 0x6F 0x6D 0x65 0x20 0x61 0x20    // 'ecome a ' \n\t0x67 0x72 0x6F 0x77 0x6E 0x2D 0x75 0x70    // 'grown-up' \n\t0x2C 0x20 0x73 0x65 0x65 0x20 0x56 0x61    // ', see Va' \n\t0x6C 0x65 0x6E 0x74 0x69 0x6E 0x65 0x20    // 'lentine ' \n\t0x74 0x68 0x65 0x20 0x56 0x6F 0x6F 0x64    // 'the Vood' \n\t0x6F 0x6F 0x20 0x4D 0x61 0x6E 0x2E 0x20    // 'oo Man. ' \n\t0x20 0x48 0x65 0x20 0x63 0x61 0x6E 0x20    // ' He can ' \n\t0x74 0x72 0x61 0x6E 0x73 0x66 0x6F 0x72    // 'transfor' \n\t0x6D 0x20 0x79 0x6F 0x75 0x20 0x69 0x6E    // 'm you in' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x63    // 'to the c' \n\t0x6F 0x6F 0x6C 0x65 0x73 0x74 0x20 0x70    // 'oolest p' \n\t0x65 0x72 0x73 0x6F 0x6E 0x20 0x6F 0x6E    // 'erson on' \n\t0x20 0x65 0x61 0x72 0x74 0x68 0x2E 0x20    // ' earth. ' \n\t0x20 0x0D 0x0A 0x42 0x75 0x74 0x20 0x77    // ' ??But w' \n\t0x68 0x61 0x74 0x20 0x61 0x62 0x6F 0x75    // 'hat abou' \n\t0x74 0x20 0x67 0x72 0x6F 0x77 0x6E 0x2D    // 't grown-' \n\t0x75 0x70 0x73 0x3F 0x20 0x20 0x44 0x6F    // 'ups?  Do' \n\t0x20 0x56 0x61 0x6C 0x65 0x6E 0x74 0x69    // ' Valenti' \n\t0x6E 0x65 0x92 0x73 0x20 0x70 0x6F 0x77    // 'nes pow' \n\t0x65 0x72 0x73 0x20 0x61 0x6C 0x73 0x6F    // 'ers also' \n\t0x20 0x61 0x66 0x66 0x65 0x63 0x74 0x20    // ' affect ' \n\t0x74 0x68 0x65 0x6D 0x3F                   // 'them?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C2= ktipbio153\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C2, __HELP_NAME(\"ktipbio153\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C2, __HELP_NAME(\"ktipbio153\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio153\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x02 0x00 0x01    // '????-???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3C 0x01 0x00 0x82    // '????<??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x6F 0x70 0x65 0x72 0x61 0x20    // '??opera ' \n\t0x73 0x69 0x6E 0x67 0x65 0x72 0x0D 0x0A    // 'singer??' \n\t0x56 0x65 0x6E 0x69 0x65 0x20 0x68 0x61    // 'Venie ha' \n\t0x73 0x20 0x79 0x65 0x74 0x20 0x74 0x6F    // 's yet to' \n\t0x20 0x6C 0x61 0x6E 0x64 0x20 0x61 0x20    // ' land a ' \n\t0x73 0x69 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'singing ' \n\t0x6A 0x6F 0x62 0x20 0x61 0x74 0x20 0x61    // 'job at a' \n\t0x6E 0x20 0x6F 0x70 0x65 0x72 0x61 0x2E    // 'n opera.' \n\t0x20 0x20 0x49 0x6E 0x73 0x74 0x65 0x61    // '  Instea' \n\t0x64 0x2C 0x20 0x68 0x65 0x20 0x69 0x73    // 'd, he is' \n\t0x20 0x61 0x20 0x77 0x61 0x69 0x74 0x65    // ' a waite' \n\t0x72 0x20 0x61 0x74 0x20 0x61 0x20 0x6C    // 'r at a l' \n\t0x6F 0x63 0x61 0x6C 0x20 0x63 0x61 0x66    // 'ocal caf' \n\t0x65 0x2E 0x20 0x20 0x56 0x65 0x6E 0x69    // 'e.  Veni' \n\t0x65 0x20 0x61 0x6C 0x77 0x61 0x79 0x73    // 'e always' \n\t0x20 0x73 0x69 0x6E 0x67 0x73 0x20 0x61    // ' sings a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x63 0x61    // 't the ca' \n\t0x66 0x65 0x2E 0x20 0x20 0x41 0x6E 0x64    // 'fe.  And' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x56 0x65    // ' when Ve' \n\t0x6E 0x69 0x65 0x20 0x73 0x69 0x6E 0x67    // 'nie sing' \n\t0x73 0x2C 0x20 0x63 0x75 0x73 0x74 0x6F    // 's, custo' \n\t0x6D 0x65 0x72 0x73 0x20 0x65 0x61 0x74    // 'mers eat' \n\t0x20 0x71 0x75 0x69 0x63 0x6B 0x6C 0x79    // ' quickly' \n\t0x2E 0x20 0x20 0x54 0x68 0x65 0x20 0x63    // '.  The c' \n\t0x61 0x66 0x65 0x92 0x73 0x20 0x64 0x65    // 'afes de' \n\t0x61 0x66 0x20 0x6F 0x77 0x6E 0x65 0x72    // 'af owner' \n\t0x20 0x64 0x6F 0x65 0x73 0x6E 0x92 0x74    // ' doesnt' \n\t0x20 0x75 0x6E 0x64 0x65 0x72 0x73 0x74    // ' underst' \n\t0x61 0x6E 0x64 0x20 0x77 0x68 0x79 0x20    // 'and why ' \n\t0x67 0x75 0x65 0x73 0x74 0x73 0x20 0x6C    // 'guests l' \n\t0x65 0x61 0x76 0x65 0x20 0x73 0x6F 0x20    // 'eave so ' \n\t0x71 0x75 0x69 0x63 0x6B 0x6C 0x79 0x2E    // 'quickly.' \n\t0x20 0x20 0x4D 0x63 0x5A 0x65 0x65 0x20    // '  McZee ' \n\t0x65 0x61 0x74 0x73 0x20 0x61 0x74 0x20    // 'eats at ' \n\t0x74 0x68 0x65 0x20 0x63 0x61 0x66 0x65    // 'the cafe' \n\t0x20 0x62 0x65 0x63 0x61 0x75 0x73 0x65    // ' because' \n\t0x20 0x68 0x65 0x20 0x63 0x61 0x6E 0x20    // ' he can ' \n\t0x61 0x6C 0x77 0x61 0x79 0x73 0x20 0x67    // 'always g' \n\t0x65 0x74 0x20 0x61 0x20 0x74 0x61 0x62    // 'et a tab' \n\t0x6C 0x65 0x2E 0x20 0x0D 0x0A 0x41 0x74    // 'le. ??At' \n\t0x20 0x6C 0x75 0x6E 0x63 0x68 0x20 0x6F    // ' lunch o' \n\t0x6E 0x65 0x20 0x64 0x61 0x79 0x2C 0x20    // 'ne day, ' \n\t0x56 0x65 0x6E 0x69 0x65 0x20 0x63 0x61    // 'Venie ca' \n\t0x6D 0x65 0x20 0x6F 0x75 0x74 0x20 0x73    // 'me out s' \n\t0x69 0x6E 0x67 0x69 0x6E 0x67 0x20 0x74    // 'inging t' \n\t0x6F 0x20 0x67 0x72 0x65 0x65 0x74 0x20    // 'o greet ' \n\t0x4D 0x63 0x5A 0x65 0x65 0x2E 0x20 0x20    // 'McZee.  ' \n\t0x4D 0x63 0x5A 0x65 0x65 0x92 0x73 0x20    // 'McZees ' \n\t0x66 0x6C 0x69 0x6E 0x63 0x68 0x65 0x64    // 'flinched' \n\t0x20 0x69 0x6E 0x20 0x70 0x61 0x69 0x6E    // ' in pain' \n\t0x20 0x61 0x6E 0x64 0x20 0x73 0x61 0x69    // ' and sai' \n\t0x64 0x2C 0x20 0x93 0x59 0x6F 0x75 0x92    // 'd, You' \n\t0x72 0x65 0x20 0x74 0x68 0x65 0x20 0x77    // 're the w' \n\t0x6F 0x72 0x73 0x74 0x20 0x73 0x69 0x6E    // 'orst sin' \n\t0x67 0x65 0x72 0x20 0x49 0x92 0x76 0x65    // 'ger Ive' \n\t0x20 0x65 0x76 0x65 0x72 0x20 0x68 0x65    // ' ever he' \n\t0x61 0x72 0x64 0x2C 0x20 0x61 0x6E 0x64    // 'ard, and' \n\t0x20 0x79 0x6F 0x75 0x20 0x6C 0x6F 0x6F    // ' you loo' \n\t0x6B 0x20 0x6C 0x69 0x6B 0x65 0x20 0x61    // 'k like a' \n\t0x20 0x76 0x61 0x6D 0x70 0x69 0x72 0x65    // ' vampire' \n\t0x2C 0x20 0x62 0x75 0x74 0x20 0x79 0x6F    // ', but yo' \n\t0x75 0x92 0x64 0x20 0x62 0x65 0x20 0x67    // 'ud be g' \n\t0x72 0x65 0x61 0x74 0x20 0x69 0x6E 0x20    // 'reat in ' \n\t0x6D 0x79 0x20 0x68 0x6F 0x72 0x72 0x6F    // 'my horro' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x73    // 'r movies' \n\t0x2E 0x94 0x20 0x20 0x56 0x65 0x6E 0x69    // '.  Veni' \n\t0x65 0x20 0x66 0x69 0x6E 0x61 0x6C 0x6C    // 'e finall' \n\t0x79 0x20 0x68 0x61 0x64 0x20 0x61 0x20    // 'y had a ' \n\t0x73 0x69 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'singing ' \n\t0x63 0x61 0x72 0x65 0x65 0x72 0x2E         // 'career.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C3= ktipbio154\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C3, __HELP_NAME(\"ktipbio154\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C3, __HELP_NAME(\"ktipbio154\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio154\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE0 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8D 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C2, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x63 0x75 0x6C    // '??Dracul' \n\t0x61 0x0D 0x0A 0x56 0x65 0x6E 0x69 0x65    // 'a??Venie' \n\t0x20 0x77 0x61 0x6E 0x74 0x73 0x20 0x74    // ' wants t' \n\t0x6F 0x20 0x70 0x6C 0x61 0x79 0x20 0x61    // 'o play a' \n\t0x20 0x73 0x69 0x6E 0x67 0x69 0x6E 0x67    // ' singing' \n\t0x20 0x44 0x72 0x61 0x63 0x75 0x6C 0x61    // ' Dracula' \n\t0x2E 0x20 0x20 0x48 0x65 0x20 0x77 0x6F    // '.  He wo' \n\t0x75 0x6C 0x64 0x20 0x6C 0x69 0x76 0x65    // 'uld live' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x68 0x61    // ' in a ha' \n\t0x75 0x6E 0x74 0x65 0x64 0x20 0x68 0x6F    // 'unted ho' \n\t0x75 0x73 0x65 0x20 0x61 0x6E 0x64 0x20    // 'use and ' \n\t0x66 0x6C 0x79 0x20 0x61 0x72 0x6F 0x75    // 'fly arou' \n\t0x6E 0x64 0x20 0x73 0x69 0x6E 0x67 0x69    // 'nd singi' \n\t0x6E 0x67 0x20 0x93 0x49 0x20 0x57 0x61    // 'ng I Wa' \n\t0x6E 0x74 0x20 0x54 0x6F 0x20 0x44 0x72    // 'nt To Dr' \n\t0x69 0x6E 0x6B 0x20 0x59 0x6F 0x75 0x72    // 'ink Your' \n\t0x20 0x42 0x6C 0x6F 0x6F 0x64 0x94 0x20    // ' Blood ' \n\t0x61 0x6E 0x64 0x20 0x93 0x53 0x75 0x6E    // 'and Sun' \n\t0x73 0x68 0x69 0x6E 0x65 0x20 0x4F 0x6E    // 'shine On' \n\t0x20 0x4D 0x79 0x20 0x53 0x68 0x6F 0x75    // ' My Shou' \n\t0x6C 0x64 0x65 0x72 0x20 0x4D 0x61 0x6B    // 'lder Mak' \n\t0x65 0x73 0x20 0x4D 0x65 0x20 0x42 0x75    // 'es Me Bu' \n\t0x72 0x73 0x74 0x20 0x49 0x6E 0x74 0x6F    // 'rst Into' \n\t0x20 0x46 0x6C 0x61 0x6D 0x65 0x73 0x2E    // ' Flames.' \n\t0x94 0x20 0x20 0x56 0x65 0x6E 0x69 0x65    // '  Venie' \n\t0x20 0x69 0x73 0x20 0x6C 0x61 0x74 0x65    // ' is late' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x68 0x69    // ' with hi' \n\t0x73 0x20 0x72 0x65 0x6E 0x74 0x20 0x61    // 's rent a' \n\t0x6E 0x64 0x20 0x68 0x65 0x27 0x73 0x20    // 'nd he's ' \n\t0x61 0x62 0x6F 0x75 0x74 0x20 0x74 0x6F    // 'about to' \n\t0x20 0x62 0x65 0x20 0x6B 0x69 0x63 0x6B    // ' be kick' \n\t0x65 0x64 0x20 0x6F 0x75 0x74 0x20 0x6F    // 'ed out o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x68 0x6F    // 'f the ho' \n\t0x75 0x73 0x65 0x2E 0x20 0x20 0x54 0x6F    // 'use.  To' \n\t0x20 0x72 0x61 0x69 0x73 0x65 0x20 0x6D    // ' raise m' \n\t0x6F 0x6E 0x65 0x79 0x2C 0x20 0x56 0x65    // 'oney, Ve' \n\t0x6E 0x69 0x65 0x20 0x64 0x65 0x63 0x69    // 'nie deci' \n\t0x64 0x65 0x73 0x20 0x74 0x6F 0x20 0x74    // 'des to t' \n\t0x68 0x72 0x6F 0x77 0x20 0x61 0x20 0x63    // 'hrow a c' \n\t0x68 0x61 0x72 0x69 0x74 0x79 0x20 0x6F    // 'harity o' \n\t0x70 0x65 0x72 0x61 0x20 0x63 0x6F 0x6E    // 'pera con' \n\t0x63 0x65 0x72 0x74 0x2C 0x20 0x73 0x74    // 'cert, st' \n\t0x61 0x72 0x72 0x69 0x6E 0x67 0x20 0x68    // 'arring h' \n\t0x69 0x6D 0x73 0x65 0x6C 0x66 0x2C 0x20    // 'imself, ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x63    // 'in the c' \n\t0x65 0x6D 0x65 0x74 0x65 0x72 0x79 0x20    // 'emetery ' \n\t0x74 0x6F 0x20 0x72 0x61 0x69 0x73 0x65    // 'to raise' \n\t0x20 0x6D 0x6F 0x6E 0x65 0x79 0x20 0x66    // ' money f' \n\t0x6F 0x72 0x20 0x68 0x69 0x73 0x20 0x72    // 'or his r' \n\t0x65 0x6E 0x74 0x2E 0x20 0x0D 0x0A 0x57    // 'ent. ??W' \n\t0x69 0x6C 0x6C 0x20 0x61 0x6E 0x79 0x6F    // 'ill anyo' \n\t0x6E 0x65 0x20 0x73 0x68 0x6F 0x77 0x20    // 'ne show ' \n\t0x75 0x70 0x20 0x74 0x6F 0x20 0x74 0x68    // 'up to th' \n\t0x65 0x20 0x63 0x6F 0x6E 0x63 0x65 0x72    // 'e concer' \n\t0x74 0x3F 0x20 0x20 0x57 0x69 0x6C 0x6C    // 't?  Will' \n\t0x20 0x56 0x65 0x6E 0x69 0x65 0x20 0x72    // ' Venie r' \n\t0x61 0x69 0x73 0x65 0x20 0x74 0x68 0x65    // 'aise the' \n\t0x20 0x64 0x65 0x61 0x64 0x3F 0x20 0x57    // ' dead? W' \n\t0x69 0x6C 0x6C 0x20 0x68 0x65 0x20 0x62    // 'ill he b' \n\t0x65 0x20 0x65 0x76 0x69 0x63 0x74 0x65    // 'e evicte' \n\t0x64 0x3F                                  // 'd?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C4= ktipbio155\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C4, __HELP_NAME(\"ktipbio155\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C4, __HELP_NAME(\"ktipbio155\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_21=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio155\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_21=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_21=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x92 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x93 0x02 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xA5 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4C 0x02 0x00 0x82    // '????L??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_21=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x72 0x65 0x65 0x74    // '??Street' \n\t0x20 0x46 0x61 0x69 0x72 0x20 0x50 0x65    // ' Fair Pe' \n\t0x72 0x66 0x6F 0x72 0x6D 0x65 0x72 0x0D    // 'rformer?' \n\t0x0A 0x41 0x6E 0x6F 0x74 0x68 0x65 0x72    // '?Another' \n\t0x20 0x64 0x72 0x65 0x61 0x6D 0x20 0x72    // ' dream r' \n\t0x6F 0x6C 0x65 0x20 0x66 0x6F 0x72 0x20    // 'ole for ' \n\t0x56 0x65 0x6E 0x69 0x65 0x20 0x77 0x6F    // 'Venie wo' \n\t0x75 0x6C 0x64 0x20 0x62 0x65 0x20 0x61    // 'uld be a' \n\t0x20 0x73 0x69 0x6E 0x67 0x69 0x6E 0x67    // ' singing' \n\t0x2C 0x20 0x64 0x61 0x6E 0x63 0x69 0x6E    // ', dancin' \n\t0x67 0x20 0x70 0x65 0x72 0x66 0x6F 0x72    // 'g perfor' \n\t0x6D 0x65 0x72 0x20 0x61 0x74 0x20 0x61    // 'mer at a' \n\t0x20 0x73 0x74 0x72 0x65 0x65 0x74 0x20    // ' street ' \n\t0x66 0x61 0x69 0x72 0x20 0x69 0x6E 0x20    // 'fair in ' \n\t0x50 0x72 0x61 0x67 0x75 0x65 0x2C 0x20    // 'Prague, ' \n\t0x43 0x7A 0x65 0x63 0x68 0x20 0x52 0x65    // 'Czech Re' \n\t0x70 0x75 0x62 0x6C 0x69 0x63 0x2E 0x20    // 'public. ' \n\t0x20 0x56 0x65 0x6E 0x69 0x65 0x20 0x64    // ' Venie d' \n\t0x6F 0x65 0x73 0x20 0x68 0x69 0x73 0x20    // 'oes his ' \n\t0x64 0x61 0x6E 0x63 0x69 0x6E 0x67 0x20    // 'dancing ' \n\t0x44 0x72 0x61 0x63 0x75 0x6C 0x61 0x20    // 'Dracula ' \n\t0x72 0x6F 0x75 0x74 0x69 0x6E 0x65 0x20    // 'routine ' \n\t0x61 0x6E 0x64 0x20 0x73 0x69 0x6E 0x67    // 'and sing' \n\t0x73 0x20 0x61 0x20 0x73 0x6F 0x6E 0x67    // 's a song' \n\t0x20 0x68 0x65 0x20 0x77 0x72 0x6F 0x74    // ' he wrot' \n\t0x65 0x20 0x63 0x61 0x6C 0x6C 0x65 0x64    // 'e called' \n\t0x20 0x93 0x54 0x61 0x70 0x2D 0x44 0x61    // ' Tap-Da' \n\t0x6E 0x63 0x69 0x6E 0x67 0x20 0x42 0x61    // 'ncing Ba' \n\t0x74 0x73 0x94 0x2E 0x20 0x20 0x54 0x68    // 'ts.  Th' \n\t0x65 0x20 0x63 0x72 0x6F 0x77 0x64 0x20    // 'e crowd ' \n\t0x71 0x75 0x69 0x63 0x6B 0x6C 0x79 0x20    // 'quickly ' \n\t0x62 0x61 0x63 0x6B 0x73 0x20 0x61 0x77    // 'backs aw' \n\t0x61 0x79 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'ay from ' \n\t0x56 0x65 0x6E 0x69 0x65 0x92 0x73 0x20    // 'Venies ' \n\t0x61 0x77 0x66 0x75 0x6C 0x20 0x73 0x69    // 'awful si' \n\t0x6E 0x67 0x69 0x6E 0x67 0x2E 0x20 0x20    // 'nging.  ' \n\t0x53 0x75 0x64 0x64 0x65 0x6E 0x6C 0x79    // 'Suddenly' \n\t0x20 0x61 0x20 0x64 0x6F 0x67 0x20 0x69    // ' a dog i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x63 0x72    // 'n the cr' \n\t0x6F 0x77 0x64 0x20 0x64 0x69 0x73 0x61    // 'owd disa' \n\t0x70 0x70 0x65 0x61 0x72 0x73 0x2E 0x20    // 'ppears. ' \n\t0x20 0x54 0x68 0x65 0x20 0x6F 0x77 0x6E    // ' The own' \n\t0x65 0x72 0x2C 0x20 0x61 0x20 0x74 0x65    // 'er, a te' \n\t0x65 0x6E 0x61 0x67 0x65 0x20 0x67 0x69    // 'enage gi' \n\t0x72 0x6C 0x2C 0x20 0x63 0x72 0x69 0x65    // 'rl, crie' \n\t0x73 0x3A 0x20 0x93 0x57 0x68 0x65 0x72    // 's: Wher' \n\t0x65 0x92 0x73 0x20 0x6D 0x79 0x20 0x70    // 'es my p' \n\t0x75 0x70 0x70 0x79 0x3F 0x3F 0x94 0x20    // 'uppy?? ' \n\t0x20 0x50 0x65 0x6F 0x70 0x6C 0x65 0x20    // ' People ' \n\t0x73 0x65 0x61 0x72 0x63 0x68 0x2C 0x20    // 'search, ' \n\t0x62 0x75 0x74 0x20 0x74 0x68 0x65 0x20    // 'but the ' \n\t0x64 0x6F 0x67 0x20 0x63 0x61 0x6E 0x6E    // 'dog cann' \n\t0x6F 0x74 0x20 0x62 0x65 0x20 0x66 0x6F    // 'ot be fo' \n\t0x75 0x6E 0x64 0x2E 0x20 0x20 0x49 0x74    // 'und.  It' \n\t0x92 0x73 0x20 0x6C 0x65 0x61 0x72 0x6E    // 's learn' \n\t0x65 0x64 0x20 0x6C 0x61 0x74 0x65 0x72    // 'ed later' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x74 0x68    // ' that th' \n\t0x65 0x20 0x64 0x6F 0x67 0x20 0x68 0x61    // 'e dog ha' \n\t0x73 0x20 0x62 0x65 0x65 0x6E 0x20 0x6B    // 's been k' \n\t0x69 0x64 0x6E 0x61 0x70 0x70 0x65 0x64    // 'idnapped' \n\t0x20 0x61 0x6E 0x64 0x20 0x69 0x73 0x20    // ' and is ' \n\t0x62 0x65 0x69 0x6E 0x67 0x20 0x6B 0x65    // 'being ke' \n\t0x70 0x74 0x20 0x73 0x6F 0x6D 0x65 0x77    // 'pt somew' \n\t0x68 0x65 0x72 0x65 0x20 0x69 0x6E 0x20    // 'here in ' \n\t0x74 0x68 0x65 0x20 0x63 0x69 0x74 0x79    // 'the city' \n\t0x2E 0x20 0x20 0x56 0x65 0x6E 0x69 0x65    // '.  Venie' \n\t0x20 0x69 0x73 0x20 0x63 0x61 0x6C 0x6C    // ' is call' \n\t0x65 0x64 0x20 0x69 0x6E 0x20 0x74 0x6F    // 'ed in to' \n\t0x20 0x62 0x72 0x69 0x6E 0x67 0x20 0x6F    // ' bring o' \n\t0x75 0x74 0x20 0x74 0x68 0x65 0x20 0x6B    // 'ut the k' \n\t0x69 0x64 0x6E 0x61 0x70 0x70 0x65 0x72    // 'idnapper' \n\t0x73 0x20 0x77 0x69 0x74 0x68 0x20 0x68    // 's with h' \n\t0x69 0x73 0x20 0x73 0x69 0x6E 0x67 0x69    // 'is singi' \n\t0x6E 0x67 0x2E 0x20 0x0D 0x0A 0x57 0x69    // 'ng. ??Wi' \n\t0x6C 0x6C 0x20 0x74 0x68 0x65 0x20 0x6B    // 'll the k' \n\t0x69 0x64 0x6E 0x61 0x70 0x70 0x65 0x72    // 'idnapper' \n\t0x73 0x20 0x72 0x65 0x6C 0x65 0x61 0x73    // 's releas' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x64 0x6F    // 'e the do' \n\t0x67 0x20 0x69 0x6E 0x20 0x72 0x65 0x74    // 'g in ret' \n\t0x75 0x72 0x6E 0x20 0x66 0x6F 0x72 0x20    // 'urn for ' \n\t0x61 0x20 0x70 0x72 0x6F 0x6D 0x69 0x73    // 'a promis' \n\t0x65 0x20 0x74 0x68 0x61 0x74 0x20 0x56    // 'e that V' \n\t0x65 0x6E 0x69 0x65 0x20 0x77 0x69 0x6C    // 'enie wil' \n\t0x6C 0x20 0x73 0x74 0x6F 0x70 0x20 0x73    // 'l stop s' \n\t0x69 0x6E 0x67 0x69 0x6E 0x67 0x3F         // 'inging?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C5= ktipbio156\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C5, __HELP_NAME(\"ktipbio156\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C5, __HELP_NAME(\"ktipbio156\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio156\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x86 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xFA 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C7, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x75 0x64 0x65 0x6E    // '??Studen' \n\t0x74 0x0D 0x0A 0x56 0x65 0x6E 0x69 0x65    // 't??Venie' \n\t0x20 0x68 0x61 0x73 0x20 0x61 0x6C 0x73    // ' has als' \n\t0x6F 0x20 0x77 0x61 0x6E 0x74 0x65 0x64    // 'o wanted' \n\t0x20 0x74 0x6F 0x20 0x62 0x65 0x20 0x61    // ' to be a' \n\t0x20 0x74 0x68 0x65 0x61 0x74 0x65 0x72    // ' theater' \n\t0x20 0x73 0x74 0x75 0x64 0x65 0x6E 0x74    // ' student' \n\t0x20 0x61 0x74 0x20 0x4E 0x65 0x77 0x20    // ' at New ' \n\t0x59 0x6F 0x72 0x6B 0x20 0x55 0x6E 0x69    // 'York Uni' \n\t0x76 0x65 0x72 0x73 0x69 0x74 0x79 0x2E    // 'versity.' \n\t0x20 0x20 0x56 0x65 0x6E 0x69 0x65 0x92    // '  Venie' \n\t0x73 0x20 0x74 0x68 0x65 0x61 0x74 0x65    // 's theate' \n\t0x72 0x20 0x67 0x72 0x6F 0x75 0x70 0x20    // 'r group ' \n\t0x69 0x73 0x20 0x73 0x65 0x6E 0x74 0x20    // 'is sent ' \n\t0x74 0x6F 0x20 0x54 0x61 0x68 0x69 0x74    // 'to Tahit' \n\t0x69 0x20 0x74 0x6F 0x20 0x64 0x6F 0x20    // 'i to do ' \n\t0x61 0x20 0x6D 0x75 0x73 0x69 0x63 0x61    // 'a musica' \n\t0x6C 0x20 0x76 0x65 0x72 0x73 0x69 0x6F    // 'l versio' \n\t0x6E 0x20 0x6F 0x66 0x20 0x93 0x47 0x75    // 'n of Gu' \n\t0x6C 0x6C 0x69 0x76 0x65 0x72 0x92 0x73    // 'llivers' \n\t0x20 0x54 0x72 0x61 0x76 0x65 0x6C 0x73    // ' Travels' \n\t0x2E 0x94 0x20 0x20 0x54 0x68 0x65 0x20    // '.  The ' \n\t0x6C 0x6F 0x63 0x61 0x6C 0x20 0x70 0x65    // 'local pe' \n\t0x6F 0x70 0x6C 0x65 0x20 0x64 0x6F 0x6E    // 'ople don' \n\t0x92 0x74 0x20 0x6C 0x69 0x6B 0x65 0x20    // 't like ' \n\t0x74 0x68 0x65 0x20 0x70 0x65 0x72 0x66    // 'the perf' \n\t0x6F 0x72 0x6D 0x61 0x6E 0x63 0x65 0x20    // 'ormance ' \n\t0x61 0x6E 0x64 0x20 0x63 0x68 0x61 0x73    // 'and chas' \n\t0x65 0x20 0x56 0x65 0x6E 0x69 0x65 0x20    // 'e Venie ' \n\t0x61 0x6E 0x64 0x20 0x68 0x69 0x73 0x20    // 'and his ' \n\t0x74 0x72 0x6F 0x75 0x70 0x65 0x20 0x69    // 'troupe i' \n\t0x6E 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // 'nto the ' \n\t0x68 0x69 0x6C 0x6C 0x73 0x2E 0x20 0x56    // 'hills. V' \n\t0x65 0x6E 0x69 0x65 0x20 0x61 0x6E 0x64    // 'enie and' \n\t0x20 0x74 0x68 0x65 0x20 0x6F 0x74 0x68    // ' the oth' \n\t0x65 0x72 0x20 0x73 0x74 0x75 0x64 0x65    // 'er stude' \n\t0x6E 0x74 0x73 0x20 0x68 0x69 0x64 0x65    // 'nts hide' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x63 0x61    // ' in a ca' \n\t0x76 0x65 0x2E 0x20 0x20 0x42 0x75 0x74    // 've.  But' \n\t0x2C 0x20 0x73 0x74 0x72 0x61 0x6E 0x67    // ', strang' \n\t0x65 0x6C 0x79 0x2C 0x20 0x74 0x68 0x65    // 'ely, the' \n\t0x72 0x65 0x20 0x69 0x73 0x20 0x61 0x20    // 're is a ' \n\t0x63 0x6F 0x66 0x66 0x69 0x6E 0x20 0x69    // 'coffin i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x63 0x61    // 'n the ca' \n\t0x76 0x65 0x2C 0x20 0x61 0x6E 0x64 0x20    // 've, and ' \n\t0x74 0x68 0x65 0x20 0x63 0x6F 0x66 0x66    // 'the coff' \n\t0x69 0x6E 0x20 0x64 0x6F 0x6F 0x72 0x20    // 'in door ' \n\t0x6F 0x70 0x65 0x6E 0x73 0x20 0x61 0x6E    // 'opens an' \n\t0x64 0x20 0x63 0x6C 0x6F 0x73 0x65 0x73    // 'd closes' \n\t0x2E 0x20 0x20 0x54 0x68 0x65 0x20 0x6D    // '.  The m' \n\t0x6F 0x62 0x20 0x6F 0x66 0x20 0x6C 0x6F    // 'ob of lo' \n\t0x63 0x61 0x6C 0x20 0x70 0x65 0x6F 0x70    // 'cal peop' \n\t0x6C 0x65 0x20 0x69 0x73 0x20 0x67 0x65    // 'le is ge' \n\t0x74 0x74 0x69 0x6E 0x67 0x20 0x63 0x6C    // 'tting cl' \n\t0x6F 0x73 0x65 0x72 0x2E 0x20 0x41 0x20    // 'oser. A ' \n\t0x76 0x6F 0x69 0x63 0x65 0x20 0x63 0x6F    // 'voice co' \n\t0x6D 0x69 0x6E 0x67 0x20 0x66 0x72 0x6F    // 'ming fro' \n\t0x6D 0x20 0x74 0x68 0x65 0x20 0x63 0x6F    // 'm the co' \n\t0x66 0x66 0x69 0x6E 0x20 0x73 0x61 0x79    // 'ffin say' \n\t0x73 0x3A 0x20 0x93 0x53 0x69 0x6E 0x67    // 's: Sing' \n\t0x2C 0x20 0x61 0x6E 0x64 0x20 0x74 0x68    // ', and th' \n\t0x65 0x79 0x20 0x77 0x69 0x6C 0x6C 0x20    // 'ey will ' \n\t0x67 0x6F 0x20 0x61 0x77 0x61 0x79 0x2E    // 'go away.' \n\t0x94 0x20 0x0D 0x0A 0x57 0x69 0x6C 0x6C    // ' ??Will' \n\t0x20 0x56 0x65 0x6E 0x69 0x65 0x92 0x73    // ' Venies' \n\t0x20 0x73 0x69 0x6E 0x67 0x69 0x6E 0x67    // ' singing' \n\t0x20 0x62 0x65 0x20 0x65 0x6E 0x6F 0x75    // ' be enou' \n\t0x67 0x68 0x20 0x74 0x6F 0x20 0x63 0x68    // 'gh to ch' \n\t0x61 0x73 0x65 0x20 0x61 0x77 0x61 0x79    // 'ase away' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x62    // ' the mob' \n\t0x2C 0x20 0x6F 0x72 0x20 0x77 0x69 0x6C    // ', or wil' \n\t0x6C 0x20 0x74 0x68 0x65 0x79 0x20 0x6F    // 'l they o' \n\t0x6E 0x6C 0x79 0x20 0x62 0x65 0x63 0x6F    // 'nly beco' \n\t0x6D 0x65 0x20 0x61 0x6E 0x67 0x72 0x69    // 'me angri' \n\t0x65 0x72 0x3F 0x20 0x20 0x48 0x6F 0x77    // 'er?  How' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x56 0x65    // ' will Ve' \n\t0x6E 0x69 0x65 0x20 0x67 0x65 0x74 0x20    // 'nie get ' \n\t0x68 0x69 0x73 0x20 0x67 0x72 0x6F 0x75    // 'his grou' \n\t0x70 0x20 0x6F 0x66 0x66 0x20 0x74 0x68    // 'p off th' \n\t0x65 0x20 0x69 0x73 0x6C 0x61 0x6E 0x64    // 'e island' \n\t0x20 0x73 0x61 0x66 0x65 0x6C 0x79 0x3F    // ' safely?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C6= ktipbio157\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C6, __HELP_NAME(\"ktipbio157\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C6, __HELP_NAME(\"ktipbio157\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio157\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x52 0x01 0x00 0x01    // '????R???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x08 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C5, 0x0)\n\tBYTE\n\t0x03 0x03 0x70 0x6F 0x77 0x65 0x72 0x73    // '??powers' \n\t0x0D 0x0A 0x41 0x6C 0x6C 0x20 0x69 0x74    // '??All it' \n\t0x20 0x74 0x61 0x6B 0x65 0x73 0x20 0x69    // ' takes i' \n\t0x73 0x20 0x61 0x20 0x6C 0x69 0x74 0x74    // 's a litt' \n\t0x6C 0x65 0x20 0x6F 0x69 0x6C 0x20 0x68    // 'le oil h' \n\t0x65 0x72 0x65 0x20 0x61 0x6E 0x64 0x20    // 'ere and ' \n\t0x74 0x68 0x65 0x72 0x65 0x20 0x6F 0x6E    // 'there on' \n\t0x20 0x61 0x20 0x72 0x65 0x67 0x75 0x6C    // ' a regul' \n\t0x61 0x72 0x20 0x73 0x63 0x68 0x65 0x64    // 'ar sched' \n\t0x75 0x6C 0x65 0x20 0x66 0x6F 0x72 0x20    // 'ule for ' \n\t0x57 0x61 0x6E 0x64 0x61 0x20 0x74 0x6F    // 'Wanda to' \n\t0x20 0x62 0x65 0x20 0x69 0x6E 0x20 0x74    // ' be in t' \n\t0x69 0x70 0x2D 0x74 0x6F 0x70 0x20 0x6A    // 'ip-top j' \n\t0x75 0x6D 0x70 0x69 0x6E 0x67 0x20 0x73    // 'umping s' \n\t0x68 0x61 0x70 0x65 0x2E 0x20 0x20 0x42    // 'hape.  B' \n\t0x75 0x74 0x20 0x57 0x61 0x6E 0x64 0x61    // 'ut Wanda' \n\t0x20 0x6B 0x6E 0x6F 0x77 0x73 0x20 0x74    // ' knows t' \n\t0x68 0x61 0x74 0x20 0x69 0x66 0x20 0x73    // 'hat if s' \n\t0x68 0x65 0x20 0x6B 0x65 0x65 0x70 0x73    // 'he keeps' \n\t0x20 0x70 0x72 0x61 0x63 0x74 0x69 0x63    // ' practic' \n\t0x69 0x6E 0x67 0x2C 0x20 0x73 0x68 0x65    // 'ing, she' \n\t0x92 0x6C 0x6C 0x20 0x6A 0x75 0x6D 0x70    // 'll jump' \n\t0x20 0x73 0x6F 0x20 0x68 0x69 0x67 0x68    // ' so high' \n\t0x20 0x73 0x68 0x65 0x92 0x6C 0x6C 0x20    // ' shell ' \n\t0x62 0x65 0x20 0x61 0x62 0x6C 0x65 0x20    // 'be able ' \n\t0x74 0x6F 0x20 0x66 0x6C 0x79 0x2E 0x20    // 'to fly. ' \n\t0x20 0x41 0x6E 0x64 0x20 0x73 0x75 0x72    // ' And sur' \n\t0x65 0x6C 0x79 0x20 0x69 0x66 0x20 0x73    // 'ely if s' \n\t0x68 0x65 0x20 0x63 0x6F 0x75 0x6C 0x64    // 'he could' \n\t0x20 0x66 0x6C 0x79 0x2C 0x20 0x73 0x6F    // ' fly, so' \n\t0x6D 0x65 0x6F 0x6E 0x65 0x20 0x77 0x6F    // 'meone wo' \n\t0x75 0x6C 0x64 0x20 0x77 0x61 0x6E 0x74    // 'uld want' \n\t0x20 0x68 0x65 0x72 0x20 0x74 0x6F 0x20    // ' her to ' \n\t0x62 0x65 0x20 0x69 0x6E 0x20 0x74 0x68    // 'be in th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x73    // 'e movies' \n\t0x2E 0x20 0x20 0x41 0x66 0x74 0x65 0x72    // '.  After' \n\t0x20 0x61 0x6C 0x6C 0x2C 0x20 0x68 0x6F    // ' all, ho' \n\t0x77 0x20 0x6D 0x61 0x6E 0x79 0x20 0x66    // 'w many f' \n\t0x6C 0x79 0x69 0x6E 0x67 0x20 0x72 0x6F    // 'lying ro' \n\t0x62 0x6F 0x74 0x73 0x20 0x61 0x72 0x65    // 'bots are' \n\t0x20 0x74 0x68 0x65 0x72 0x65 0x20 0x69    // ' there i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x77 0x6F    // 'n the wo' \n\t0x72 0x6C 0x64 0x3F                        // 'rld?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C7= ktipbio158\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C7, __HELP_NAME(\"ktipbio158\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C7, __HELP_NAME(\"ktipbio158\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_CB=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio158\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_CB=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x04 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_CB=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_CB, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x03 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x11 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_CB=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_CB, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x65 0x63 0x68 0x61 0x6E    // '??Mechan' \n\t0x69 0x63 0x61 0x6C 0x20 0x54 0x6F 0x79    // 'ical Toy' \n\t0x20 0x0D 0x0A 0x57 0x61 0x6E 0x64 0x61    // ' ??Wanda' \n\t0x20 0x6C 0x6F 0x76 0x65 0x73 0x20 0x73    // ' loves s' \n\t0x63 0x61 0x72 0x79 0x20 0x6D 0x6F 0x76    // 'cary mov' \n\t0x69 0x65 0x73 0x20 0x61 0x6E 0x64 0x20    // 'ies and ' \n\t0x74 0x68 0x69 0x6E 0x6B 0x73 0x20 0x73    // 'thinks s' \n\t0x68 0x65 0x92 0x64 0x20 0x62 0x65 0x20    // 'hed be ' \n\t0x72 0x65 0x61 0x6C 0x6C 0x79 0x20 0x61    // 'really a' \n\t0x77 0x65 0x73 0x6F 0x6D 0x65 0x20 0x70    // 'wesome p' \n\t0x6C 0x61 0x79 0x69 0x6E 0x67 0x20 0x61    // 'laying a' \n\t0x20 0x72 0x6F 0x62 0x6F 0x74 0x2E 0x20    // ' robot. ' \n\t0x20 0x4D 0x61 0x79 0x62 0x65 0x20 0x73    // ' Maybe s' \n\t0x68 0x65 0x20 0x63 0x6F 0x75 0x6C 0x64    // 'he could' \n\t0x20 0x62 0x65 0x20 0x61 0x20 0x72 0x6F    // ' be a ro' \n\t0x62 0x6F 0x74 0x20 0x77 0x68 0x6F 0x92    // 'bot who' \n\t0x73 0x20 0x62 0x65 0x65 0x6E 0x20 0x70    // 's been p' \n\t0x72 0x6F 0x67 0x72 0x61 0x6D 0x6D 0x65    // 'rogramme' \n\t0x64 0x20 0x62 0x79 0x20 0x61 0x6E 0x20    // 'd by an ' \n\t0x65 0x76 0x69 0x6C 0x20 0x73 0x63 0x69    // 'evil sci' \n\t0x65 0x6E 0x74 0x69 0x73 0x74 0x20 0x74    // 'entist t' \n\t0x6F 0x20 0x73 0x74 0x65 0x61 0x6C 0x20    // 'o steal ' \n\t0x74 0x68 0x65 0x20 0x66 0x6F 0x72 0x6D    // 'the form' \n\t0x75 0x6C 0x61 0x20 0x66 0x6F 0x72 0x20    // 'ula for ' \n\t0x67 0x72 0x61 0x70 0x65 0x20 0x73 0x6C    // 'grape sl' \n\t0x75 0x72 0x70 0x65 0x65 0x73 0x2C 0x20    // 'urpees, ' \n\t0x74 0x68 0x65 0x20 0x6B 0x69 0x6E 0x64    // 'the kind' \n\t0x20 0x74 0x68 0x65 0x20 0x6B 0x69 0x64    // ' the kid' \n\t0x73 0x20 0x6C 0x6F 0x76 0x65 0x20 0x74    // 's love t' \n\t0x6F 0x20 0x64 0x72 0x69 0x6E 0x6B 0x20    // 'o drink ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x73    // 'in the s' \n\t0x75 0x6D 0x6D 0x65 0x72 0x20 0x74 0x69    // 'ummer ti' \n\t0x6D 0x65 0x2E 0x20 0x20 0x54 0x68 0x65    // 'me.  The' \n\t0x20 0x65 0x76 0x69 0x6C 0x20 0x73 0x63    // ' evil sc' \n\t0x69 0x65 0x6E 0x74 0x69 0x73 0x74 0x20    // 'ientist ' \n\t0x77 0x61 0x6E 0x74 0x73 0x20 0x68 0x65    // 'wants he' \n\t0x72 0x20 0x74 0x6F 0x20 0x73 0x6E 0x65    // 'r to sne' \n\t0x61 0x6B 0x20 0x69 0x6E 0x74 0x6F 0x20    // 'ak into ' \n\t0x74 0x68 0x65 0x20 0x53 0x6C 0x75 0x72    // 'the Slur' \n\t0x70 0x65 0x65 0x20 0x4C 0x61 0x62 0x6F    // 'pee Labo' \n\t0x72 0x61 0x74 0x6F 0x72 0x79 0x2C 0x20    // 'ratory, ' \n\t0x73 0x74 0x65 0x61 0x6C 0x20 0x74 0x68    // 'steal th' \n\t0x65 0x20 0x66 0x6F 0x72 0x6D 0x75 0x6C    // 'e formul' \n\t0x61 0x2C 0x20 0x61 0x6E 0x64 0x20 0x74    // 'a, and t' \n\t0x68 0x65 0x6E 0x20 0x62 0x72 0x69 0x6E    // 'hen brin' \n\t0x67 0x20 0x69 0x74 0x20 0x62 0x61 0x63    // 'g it bac' \n\t0x6B 0x20 0x74 0x6F 0x20 0x68 0x69 0x6D    // 'k to him' \n\t0x20 0x73 0x6F 0x20 0x74 0x68 0x61 0x74    // ' so that' \n\t0x20 0x6B 0x69 0x64 0x73 0x20 0x77 0x69    // ' kids wi' \n\t0x6C 0x6C 0x20 0x6E 0x65 0x76 0x65 0x72    // 'll never' \n\t0x20 0x68 0x61 0x76 0x65 0x20 0x67 0x72    // ' have gr' \n\t0x61 0x70 0x65 0x20 0x73 0x6C 0x75 0x72    // 'ape slur' \n\t0x70 0x65 0x65 0x73 0x20 0x61 0x67 0x61    // 'pees aga' \n\t0x69 0x6E 0x2E 0x20 0x20 0x53 0x68 0x65    // 'in.  She' \n\t0x20 0x73 0x6E 0x65 0x61 0x6B 0x73 0x20    // ' sneaks ' \n\t0x69 0x6E 0x74 0x6F 0x20 0x74 0x68 0x65    // 'into the' \n\t0x20 0x6C 0x61 0x62 0x6F 0x72 0x61 0x74    // ' laborat' \n\t0x6F 0x72 0x79 0x20 0x61 0x6E 0x64 0x20    // 'ory and ' \n\t0x74 0x68 0x65 0x6E 0x20 0x73 0x71 0x75    // 'then squ' \n\t0x61 0x73 0x68 0x65 0x73 0x20 0x68 0x65    // 'ashes he' \n\t0x72 0x73 0x65 0x6C 0x66 0x20 0x74 0x6F    // 'rself to' \n\t0x20 0x68 0x61 0x6C 0x66 0x20 0x68 0x65    // ' half he' \n\t0x72 0x20 0x6E 0x6F 0x72 0x6D 0x61 0x6C    // 'r normal' \n\t0x20 0x73 0x69 0x7A 0x65 0x20 0x73 0x6F    // ' size so' \n\t0x20 0x73 0x68 0x65 0x20 0x77 0x6F 0x6E    // ' she won' \n\t0x27 0x74 0x20 0x62 0x65 0x20 0x73 0x65    // ''t be se' \n\t0x65 0x6E 0x2E 0x20 0x20 0x41 0x20 0x67    // 'en.  A g' \n\t0x75 0x61 0x72 0x64 0x20 0x6E 0x6F 0x74    // 'uard not' \n\t0x69 0x63 0x65 0x73 0x20 0x68 0x65 0x72    // 'ices her' \n\t0x20 0x61 0x6E 0x64 0x20 0x72 0x75 0x6E    // ' and run' \n\t0x73 0x20 0x74 0x6F 0x77 0x61 0x72 0x64    // 's toward' \n\t0x20 0x68 0x65 0x72 0x2E 0x20 0x20 0x53    // ' her.  S' \n\t0x68 0x65 0x20 0x69 0x73 0x20 0x73 0x6F    // 'he is so' \n\t0x20 0x73 0x6D 0x61 0x6C 0x6C 0x20 0x74    // ' small t' \n\t0x68 0x61 0x74 0x20 0x68 0x65 0x20 0x63    // 'hat he c' \n\t0x61 0x6E 0x20 0x73 0x74 0x65 0x70 0x20    // 'an step ' \n\t0x6F 0x6E 0x20 0x68 0x65 0x72 0x2E 0x20    // 'on her. ' \n\t0x20 0x57 0x61 0x6E 0x64 0x61 0x20 0x69    // ' Wanda i' \n\t0x73 0x20 0x74 0x72 0x61 0x70 0x70 0x65    // 's trappe' \n\t0x64 0x2E 0x20 0x20 0x48 0x6F 0x77 0x20    // 'd.  How ' \n\t0x77 0x69 0x6C 0x6C 0x20 0x73 0x68 0x65    // 'will she' \n\t0x20 0x67 0x65 0x74 0x20 0x61 0x77 0x61    // ' get awa' \n\t0x79 0x20 0x66 0x72 0x6F 0x6D 0x20 0x74    // 'y from t' \n\t0x68 0x65 0x20 0x67 0x75 0x61 0x72 0x64    // 'he guard' \n\t0x3F 0x20 0x20 0x48 0x6F 0x77 0x20 0x77    // '?  How w' \n\t0x69 0x6C 0x6C 0x20 0x73 0x68 0x65 0x20    // 'ill she ' \n\t0x65 0x76 0x65 0x72 0x20 0x63 0x6F 0x6E    // 'ever con' \n\t0x76 0x69 0x6E 0x63 0x65 0x20 0x61 0x6E    // 'vince an' \n\t0x79 0x6F 0x6E 0x65 0x20 0x69 0x6E 0x20    // 'yone in ' \n\t0x74 0x68 0x65 0x20 0x6C 0x61 0x62 0x6F    // 'the labo' \n\t0x72 0x61 0x74 0x6F 0x72 0x79 0x20 0x74    // 'ratory t' \n\t0x68 0x61 0x74 0x20 0x73 0x68 0x65 0x20    // 'hat she ' \n\t0x72 0x65 0x61 0x6C 0x6C 0x79 0x20 0x69    // 'really i' \n\t0x73 0x6E 0x92 0x74 0x20 0x62 0x61 0x64    // 'snt bad' \n\t0x20 0x61 0x6E 0x64 0x20 0x77 0x61 0x6E    // ' and wan' \n\t0x74 0x73 0x20 0x74 0x6F 0x20 0x68 0x65    // 'ts to he' \n\t0x6C 0x70 0x20 0x74 0x68 0x65 0x6D 0x20    // 'lp them ' \n\t0x73 0x74 0x6F 0x70 0x20 0x74 0x68 0x65    // 'stop the' \n\t0x20 0x65 0x76 0x69 0x6C 0x20 0x73 0x63    // ' evil sc' \n\t0x69 0x65 0x6E 0x74 0x69 0x73 0x74 0x3F    // 'ientist?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C8= ktipbio159\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C8, __HELP_NAME(\"ktipbio159\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C8, __HELP_NAME(\"ktipbio159\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio159\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA8 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0B 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C8, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x6F 0x62 0x6F 0x74 0x20    // '??Robot ' \n\t0x43 0x6F 0x70 0x0D 0x0A 0x49 0x6E 0x20    // 'Cop??In ' \n\t0x61 0x6C 0x6C 0x20 0x74 0x68 0x65 0x20    // 'all the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x73 0x2C 0x20    // 'movies, ' \n\t0x57 0x61 0x6E 0x64 0x61 0x20 0x68 0x61    // 'Wanda ha' \n\t0x73 0x20 0x6E 0x65 0x76 0x65 0x72 0x20    // 's never ' \n\t0x73 0x65 0x65 0x6E 0x20 0x61 0x20 0x67    // 'seen a g' \n\t0x69 0x72 0x6C 0x20 0x72 0x6F 0x62 0x6F    // 'irl robo' \n\t0x74 0x20 0x63 0x6F 0x70 0x2E 0x20 0x20    // 't cop.  ' \n\t0x42 0x75 0x74 0x20 0x57 0x61 0x6E 0x64    // 'But Wand' \n\t0x61 0x20 0x63 0x6F 0x75 0x6C 0x64 0x20    // 'a could ' \n\t0x70 0x6C 0x61 0x79 0x20 0x74 0x68 0x61    // 'play tha' \n\t0x74 0x20 0x70 0x61 0x72 0x74 0x2E 0x20    // 't part. ' \n\t0x20 0x53 0x68 0x65 0x92 0x73 0x20 0x70    // ' Shes p' \n\t0x72 0x61 0x63 0x74 0x69 0x63 0x65 0x64    // 'racticed' \n\t0x20 0x6A 0x75 0x6D 0x70 0x69 0x6E 0x67    // ' jumping' \n\t0x20 0x73 0x6F 0x20 0x6D 0x75 0x63 0x68    // ' so much' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x73 0x68    // ' that sh' \n\t0x65 0x20 0x63 0x6F 0x75 0x6C 0x64 0x20    // 'e could ' \n\t0x66 0x6C 0x79 0x20 0x61 0x6E 0x64 0x20    // 'fly and ' \n\t0x70 0x61 0x74 0x72 0x6F 0x6C 0x20 0x74    // 'patrol t' \n\t0x68 0x65 0x20 0x63 0x69 0x74 0x79 0x2E    // 'he city.' \n\t0x20 0x20 0x53 0x68 0x65 0x20 0x63 0x61    // '  She ca' \n\t0x6E 0x20 0x73 0x65 0x65 0x20 0x63 0x72    // 'n see cr' \n\t0x69 0x6D 0x65 0x73 0x20 0x61 0x73 0x20    // 'imes as ' \n\t0x74 0x68 0x65 0x79 0x20 0x68 0x61 0x70    // 'they hap' \n\t0x70 0x65 0x6E 0x20 0x61 0x6E 0x64 0x20    // 'pen and ' \n\t0x6C 0x61 0x6E 0x64 0x20 0x6F 0x6E 0x20    // 'land on ' \n\t0x74 0x6F 0x70 0x20 0x6F 0x66 0x20 0x74    // 'top of t' \n\t0x68 0x65 0x20 0x63 0x72 0x69 0x6D 0x69    // 'he crimi' \n\t0x6E 0x61 0x6C 0x73 0x2E 0x20 0x20 0x42    // 'nals.  B' \n\t0x75 0x74 0x20 0x77 0x68 0x61 0x74 0x20    // 'ut what ' \n\t0x69 0x66 0x20 0x57 0x61 0x6E 0x64 0x61    // 'if Wanda' \n\t0x20 0x66 0x6C 0x69 0x65 0x73 0x20 0x69    // ' flies i' \n\t0x6E 0x74 0x6F 0x20 0x61 0x6E 0x20 0x65    // 'nto an e' \n\t0x76 0x69 0x6C 0x20 0x62 0x6F 0x79 0x20    // 'vil boy ' \n\t0x72 0x6F 0x62 0x6F 0x74 0x20 0x63 0x6F    // 'robot co' \n\t0x70 0x3F 0x20 0x20 0x57 0x68 0x61 0x74    // 'p?  What' \n\t0x20 0x69 0x66 0x20 0x74 0x68 0x65 0x20    // ' if the ' \n\t0x62 0x6F 0x79 0x20 0x72 0x6F 0x62 0x6F    // 'boy robo' \n\t0x74 0x20 0x68 0x61 0x73 0x20 0x70 0x6F    // 't has po' \n\t0x77 0x65 0x72 0x73 0x20 0x73 0x68 0x65    // 'wers she' \n\t0x20 0x64 0x6F 0x65 0x73 0x6E 0x92 0x74    // ' doesnt' \n\t0x20 0x68 0x61 0x76 0x65 0x3F 0x20 0x20    // ' have?  ' \n\t0x48 0x6F 0x77 0x20 0x77 0x69 0x6C 0x6C    // 'How will' \n\t0x20 0x73 0x68 0x65 0x20 0x73 0x74 0x6F    // ' she sto' \n\t0x70 0x20 0x63 0x72 0x69 0x6D 0x65 0x20    // 'p crime ' \n\t0x61 0x6E 0x64 0x20 0x70 0x72 0x6F 0x74    // 'and prot' \n\t0x65 0x63 0x74 0x20 0x68 0x65 0x72 0x73    // 'ect hers' \n\t0x65 0x6C 0x66 0x97 0x61 0x6E 0x64 0x20    // 'elfand ' \n\t0x74 0x68 0x65 0x20 0x63 0x69 0x74 0x79    // 'the city' \n\t0x97 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // 'at the ' \n\t0x73 0x61 0x6D 0x65 0x20 0x74 0x69 0x6D    // 'same tim' \n\t0x65 0x3F 0x20                             // 'e? ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C9= ktipbio160\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C9, __HELP_NAME(\"ktipbio160\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C9, __HELP_NAME(\"ktipbio160\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio160\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x02 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x08 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C9, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x61 0x6E 0x63 0x65 0x72    // '??Dancer' \n\t0x0D 0x0A 0x57 0x61 0x6E 0x64 0x61 0x20    // '??Wanda ' \n\t0x74 0x68 0x69 0x6E 0x6B 0x73 0x20 0x69    // 'thinks i' \n\t0x74 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 't would ' \n\t0x62 0x65 0x20 0x72 0x65 0x61 0x6C 0x6C    // 'be reall' \n\t0x79 0x20 0x66 0x75 0x6E 0x20 0x74 0x6F    // 'y fun to' \n\t0x20 0x6A 0x75 0x6D 0x70 0x20 0x62 0x61    // ' jump ba' \n\t0x63 0x6B 0x20 0x69 0x6E 0x20 0x74 0x69    // 'ck in ti' \n\t0x6D 0x65 0x20 0x61 0x6E 0x64 0x20 0x62    // 'me and b' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x6F 0x6E    // 'e the on' \n\t0x6C 0x79 0x20 0x72 0x6F 0x62 0x6F 0x74    // 'ly robot' \n\t0x20 0x61 0x6C 0x69 0x76 0x65 0x2E 0x20    // ' alive. ' \n\t0x20 0x4E 0x6F 0x74 0x20 0x6A 0x75 0x73    // ' Not jus' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x6F 0x6E    // 't the on' \n\t0x6C 0x79 0x20 0x72 0x6F 0x62 0x6F 0x74    // 'ly robot' \n\t0x2C 0x20 0x62 0x75 0x74 0x20 0x61 0x20    // ', but a ' \n\t0x64 0x61 0x6E 0x63 0x69 0x6E 0x67 0x20    // 'dancing ' \n\t0x72 0x6F 0x62 0x6F 0x74 0x2E 0x20 0x20    // 'robot.  ' \n\t0x48 0x65 0x72 0x20 0x64 0x61 0x6E 0x63    // 'Her danc' \n\t0x65 0x73 0x20 0x77 0x6F 0x75 0x6C 0x64    // 'es would' \n\t0x20 0x6D 0x61 0x6B 0x65 0x20 0x65 0x76    // ' make ev' \n\t0x65 0x72 0x79 0x6F 0x6E 0x65 0x20 0x68    // 'eryone h' \n\t0x61 0x70 0x70 0x79 0x2E 0x20 0x20 0x49    // 'appy.  I' \n\t0x6E 0x20 0x66 0x61 0x63 0x74 0x2C 0x20    // 'n fact, ' \n\t0x73 0x68 0x65 0x20 0x64 0x72 0x65 0x61    // 'she drea' \n\t0x6D 0x73 0x20 0x74 0x68 0x61 0x74 0x20    // 'ms that ' \n\t0x73 0x68 0x65 0x92 0x64 0x20 0x6A 0x75    // 'shed ju' \n\t0x6D 0x70 0x20 0x62 0x61 0x63 0x6B 0x20    // 'mp back ' \n\t0x69 0x6E 0x20 0x74 0x69 0x6D 0x65 0x20    // 'in time ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x72    // 'to the r' \n\t0x75 0x6C 0x65 0x20 0x6F 0x66 0x20 0x61    // 'ule of a' \n\t0x6E 0x20 0x65 0x76 0x69 0x6C 0x20 0x6B    // 'n evil k' \n\t0x69 0x6E 0x67 0x20 0x77 0x68 0x6F 0x20    // 'ing who ' \n\t0x68 0x6F 0x6C 0x64 0x73 0x20 0x61 0x20    // 'holds a ' \n\t0x77 0x68 0x6F 0x6C 0x65 0x20 0x63 0x69    // 'whole ci' \n\t0x74 0x79 0x20 0x6F 0x66 0x20 0x70 0x65    // 'ty of pe' \n\t0x6F 0x70 0x6C 0x65 0x20 0x68 0x6F 0x73    // 'ople hos' \n\t0x74 0x61 0x67 0x65 0x2E 0x20 0x20 0x48    // 'tage.  H' \n\t0x65 0x72 0x20 0x64 0x61 0x6E 0x63 0x65    // 'er dance' \n\t0x20 0x77 0x6F 0x75 0x6C 0x64 0x20 0x70    // ' would p' \n\t0x75 0x74 0x20 0x74 0x68 0x65 0x20 0x6B    // 'ut the k' \n\t0x69 0x6E 0x67 0x20 0x74 0x6F 0x20 0x73    // 'ing to s' \n\t0x6C 0x65 0x65 0x70 0x20 0x73 0x6F 0x20    // 'leep so ' \n\t0x74 0x68 0x61 0x74 0x20 0x65 0x76 0x65    // 'that eve' \n\t0x72 0x79 0x6F 0x6E 0x65 0x20 0x63 0x6F    // 'ryone co' \n\t0x75 0x6C 0x64 0x20 0x65 0x73 0x63 0x61    // 'uld esca' \n\t0x70 0x65 0x2C 0x20 0x64 0x61 0x6E 0x63    // 'pe, danc' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x69    // 'ing thei' \n\t0x72 0x20 0x77 0x61 0x79 0x20 0x74 0x6F    // 'r way to' \n\t0x20 0x66 0x72 0x65 0x65 0x64 0x6F 0x6D    // ' freedom' \n\t0x2E 0x20 0x42 0x75 0x74 0x20 0x77 0x68    // '. But wh' \n\t0x65 0x72 0x65 0x20 0x77 0x6F 0x75 0x6C    // 'ere woul' \n\t0x64 0x20 0x74 0x68 0x65 0x79 0x20 0x67    // 'd they g' \n\t0x6F 0x3F 0x20 0x20 0x57 0x6F 0x75 0x6C    // 'o?  Woul' \n\t0x64 0x20 0x73 0x68 0x65 0x20 0x62 0x65    // 'd she be' \n\t0x20 0x61 0x62 0x6C 0x65 0x20 0x74 0x6F    // ' able to' \n\t0x20 0x6A 0x75 0x6D 0x70 0x20 0x74 0x68    // ' jump th' \n\t0x65 0x6D 0x20 0x66 0x6F 0x72 0x77 0x61    // 'em forwa' \n\t0x72 0x64 0x20 0x69 0x6E 0x20 0x74 0x69    // 'rd in ti' \n\t0x6D 0x65 0x20 0x74 0x6F 0x20 0x74 0x6F    // 'me to to' \n\t0x64 0x61 0x79 0x3F 0x20 0x20 0x57 0x68    // 'day?  Wh' \n\t0x61 0x74 0x20 0x69 0x66 0x20 0x74 0x68    // 'at if th' \n\t0x65 0x20 0x6B 0x69 0x6E 0x67 0x20 0x69    // 'e king i' \n\t0x73 0x6E 0x27 0x74 0x20 0x74 0x68 0x65    // 'sn't the' \n\t0x20 0x6F 0x6E 0x6C 0x79 0x20 0x6F 0x6E    // ' only on' \n\t0x65 0x20 0x77 0x68 0x6F 0x20 0x66 0x61    // 'e who fa' \n\t0x6C 0x6C 0x73 0x20 0x61 0x73 0x6C 0x65    // 'lls asle' \n\t0x65 0x70 0x20 0x77 0x68 0x65 0x6E 0x20    // 'ep when ' \n\t0x73 0x68 0x65 0x20 0x64 0x61 0x6E 0x63    // 'she danc' \n\t0x65 0x73 0x3F                             // 'es?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_CA= ktipbio161\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_CA, __HELP_NAME(\"ktipbio161\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_CA, __HELP_NAME(\"ktipbio161\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_CA=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_CA, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio161\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_CA=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_CA, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_CA=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_CA, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2E 0x02 0x00 0x01    // '????.???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x06 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_CA=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_CA, 0x0)\n\tBYTE\n\t0x03 0x03 0x6E 0x6F 0x73 0x65 0x0D 0x0A    // '??nose??' \n\t0x49 0x74 0x20 0x69 0x73 0x20 0x57 0x69    // 'It is Wi' \n\t0x6C 0x6C 0x79 0x92 0x73 0x20 0x70 0x6F    // 'llys po' \n\t0x69 0x6E 0x74 0x65 0x64 0x20 0x6E 0x6F    // 'inted no' \n\t0x73 0x65 0x20 0x74 0x68 0x61 0x74 0x20    // 'se that ' \n\t0x67 0x6F 0x74 0x20 0x68 0x69 0x6D 0x20    // 'got him ' \n\t0x69 0x6E 0x74 0x6F 0x20 0x61 0x63 0x74    // 'into act' \n\t0x69 0x6E 0x67 0x20 0x74 0x6F 0x20 0x62    // 'ing to b' \n\t0x65 0x67 0x69 0x6E 0x20 0x77 0x69 0x74    // 'egin wit' \n\t0x68 0x2E 0x20 0x20 0x48 0x65 0x20 0x61    // 'h.  He a' \n\t0x6C 0x77 0x61 0x79 0x73 0x20 0x73 0x74    // 'lways st' \n\t0x69 0x63 0x6B 0x73 0x20 0x74 0x68 0x61    // 'icks tha' \n\t0x74 0x20 0x6E 0x6F 0x73 0x65 0x20 0x69    // 't nose i' \n\t0x6E 0x74 0x6F 0x20 0x65 0x76 0x65 0x72    // 'nto ever' \n\t0x79 0x6F 0x6E 0x65 0x20 0x65 0x6C 0x73    // 'yone els' \n\t0x65 0x92 0x73 0x20 0x62 0x75 0x73 0x69    // 'es busi' \n\t0x6E 0x65 0x73 0x73 0x2E 0x20 0x48 0x65    // 'ness. He' \n\t0x20 0x73 0x61 0x77 0x20 0x61 0x20 0x4D    // ' saw a M' \n\t0x63 0x5A 0x65 0x65 0x20 0x6D 0x6F 0x76    // 'cZee mov' \n\t0x69 0x65 0x20 0x6F 0x6E 0x63 0x65 0x20    // 'ie once ' \n\t0x61 0x6E 0x64 0x20 0x71 0x75 0x69 0x63    // 'and quic' \n\t0x6B 0x6C 0x79 0x20 0x74 0x68 0x6F 0x75    // 'kly thou' \n\t0x67 0x68 0x74 0x20 0x75 0x70 0x20 0x61    // 'ght up a' \n\t0x20 0x64 0x6F 0x7A 0x65 0x6E 0x20 0x77    // ' dozen w' \n\t0x61 0x79 0x73 0x20 0x74 0x6F 0x20 0x6D    // 'ays to m' \n\t0x61 0x6B 0x65 0x20 0x69 0x74 0x20 0x62    // 'ake it b' \n\t0x65 0x74 0x74 0x65 0x72 0x2E 0x20 0x20    // 'etter.  ' \n\t0x46 0x6F 0x72 0x20 0x65 0x78 0x61 0x6D    // 'For exam' \n\t0x70 0x6C 0x65 0x2C 0x20 0x68 0x65 0x20    // 'ple, he ' \n\t0x63 0x61 0x6C 0x6C 0x65 0x64 0x20 0x4D    // 'called M' \n\t0x63 0x5A 0x65 0x65 0x20 0x61 0x6E 0x64    // 'cZee and' \n\t0x20 0x74 0x6F 0x6C 0x64 0x20 0x68 0x69    // ' told hi' \n\t0x6D 0x20 0x68 0x6F 0x77 0x20 0x74 0x6F    // 'm how to' \n\t0x20 0x6D 0x61 0x6B 0x65 0x20 0x74 0x68    // ' make th' \n\t0x65 0x20 0x63 0x6C 0x6F 0x75 0x64 0x73    // 'e clouds' \n\t0x20 0x69 0x6E 0x20 0x6F 0x6E 0x65 0x20    // ' in one ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x67 0x72    // 'scene gr' \n\t0x65 0x65 0x6E 0x2E 0x20 0x20 0x4D 0x63    // 'een.  Mc' \n\t0x5A 0x65 0x65 0x20 0x6C 0x6F 0x76 0x65    // 'Zee love' \n\t0x64 0x20 0x69 0x74 0x20 0x61 0x6E 0x64    // 'd it and' \n\t0x20 0x66 0x6C 0x65 0x77 0x20 0x57 0x69    // ' flew Wi' \n\t0x6C 0x6C 0x79 0x20 0x74 0x6F 0x20 0x4C    // 'lly to L' \n\t0x6F 0x73 0x20 0x41 0x6E 0x67 0x65 0x6C    // 'os Angel' \n\t0x65 0x73 0x20 0x74 0x6F 0x20 0x68 0x65    // 'es to he' \n\t0x6C 0x70 0x20 0x68 0x69 0x6D 0x20 0x64    // 'lp him d' \n\t0x69 0x72 0x65 0x63 0x74 0x20 0x6D 0x6F    // 'irect mo' \n\t0x76 0x69 0x65 0x73 0x2E 0x20 0x20 0x57    // 'vies.  W' \n\t0x65 0x6C 0x6C 0x2C 0x20 0x57 0x69 0x6C    // 'ell, Wil' \n\t0x6C 0x79 0x20 0x6E 0x65 0x76 0x65 0x72    // 'ly never' \n\t0x20 0x70 0x61 0x69 0x64 0x20 0x61 0x74    // ' paid at' \n\t0x74 0x65 0x6E 0x74 0x69 0x6F 0x6E 0x20    // 'tention ' \n\t0x74 0x6F 0x20 0x77 0x68 0x65 0x74 0x68    // 'to wheth' \n\t0x65 0x72 0x20 0x68 0x65 0x20 0x77 0x61    // 'er he wa' \n\t0x73 0x20 0x62 0x65 0x68 0x69 0x6E 0x64    // 's behind' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x61 0x6D    // ' the cam' \n\t0x65 0x72 0x61 0x20 0x6F 0x72 0x20 0x69    // 'era or i' \n\t0x6E 0x20 0x66 0x72 0x6F 0x6E 0x74 0x20    // 'n front ' \n\t0x6F 0x66 0x20 0x69 0x74 0x2C 0x20 0x73    // 'of it, s' \n\t0x6F 0x20 0x68 0x65 0x20 0x65 0x6E 0x64    // 'o he end' \n\t0x65 0x64 0x20 0x75 0x70 0x20 0x68 0x61    // 'ed up ha' \n\t0x76 0x69 0x6E 0x67 0x20 0x61 0x6E 0x20    // 'ving an ' \n\t0x61 0x63 0x63 0x69 0x64 0x65 0x6E 0x74    // 'accident' \n\t0x61 0x6C 0x20 0x70 0x61 0x72 0x74 0x20    // 'al part ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x6D    // 'in the m' \n\t0x6F 0x76 0x69 0x65 0x2E 0x20 0x20 0x48    // 'ovie.  H' \n\t0x65 0x92 0x73 0x20 0x62 0x65 0x65 0x6E    // 'es been' \n\t0x20 0x61 0x63 0x63 0x69 0x64 0x65 0x6E    // ' acciden' \n\t0x74 0x61 0x6C 0x6C 0x79 0x20 0x61 0x63    // 'tally ac' \n\t0x74 0x69 0x6E 0x67 0x20 0x65 0x76 0x65    // 'ting eve' \n\t0x72 0x20 0x73 0x69 0x6E 0x63 0x65 0x2E    // 'r since.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_CB= ktipbio162\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_CB, __HELP_NAME(\"ktipbio162\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_CB, __HELP_NAME(\"ktipbio162\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_CD=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_CB, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio162\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_CD=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_CB, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_CD=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_CD, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE8 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7A 0x02 0x00 0x82    // '????z??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_CD=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_CD, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x64 0x20 0x53 0x63    // '??Mad Sc' \n\t0x69 0x65 0x6E 0x74 0x69 0x73 0x74 0x0D    // 'ientist?' \n\t0x0A 0x46 0x6F 0x72 0x20 0x57 0x69 0x6C    // '?For Wil' \n\t0x6C 0x79 0x2C 0x20 0x70 0x6C 0x61 0x79    // 'ly, play' \n\t0x69 0x6E 0x67 0x20 0x61 0x20 0x6D 0x61    // 'ing a ma' \n\t0x64 0x20 0x73 0x63 0x69 0x65 0x6E 0x74    // 'd scient' \n\t0x69 0x73 0x74 0x20 0x69 0x73 0x20 0x61    // 'ist is a' \n\t0x73 0x20 0x65 0x61 0x73 0x79 0x20 0x61    // 's easy a' \n\t0x73 0x20 0x73 0x70 0x72 0x65 0x61 0x64    // 's spread' \n\t0x69 0x6E 0x67 0x20 0x6A 0x65 0x6C 0x6C    // 'ing jell' \n\t0x79 0x20 0x6F 0x6E 0x20 0x70 0x65 0x61    // 'y on pea' \n\t0x6E 0x75 0x74 0x20 0x62 0x75 0x74 0x74    // 'nut butt' \n\t0x65 0x72 0x2E 0x20 0x20 0x48 0x65 0x92    // 'er.  He' \n\t0x73 0x20 0x62 0x65 0x65 0x6E 0x20 0x69    // 's been i' \n\t0x6E 0x20 0x61 0x20 0x6C 0x61 0x62 0x20    // 'n a lab ' \n\t0x73 0x69 0x6E 0x63 0x65 0x20 0x68 0x65    // 'since he' \n\t0x20 0x77 0x61 0x73 0x20 0x66 0x69 0x76    // ' was fiv' \n\t0x65 0x2C 0x20 0x66 0x69 0x64 0x64 0x6C    // 'e, fiddl' \n\t0x69 0x6E 0x67 0x20 0x61 0x72 0x6F 0x75    // 'ing arou' \n\t0x6E 0x64 0x20 0x77 0x69 0x74 0x68 0x20    // 'nd with ' \n\t0x63 0x68 0x65 0x6D 0x69 0x63 0x61 0x6C    // 'chemical' \n\t0x73 0x2C 0x20 0x69 0x6E 0x76 0x65 0x6E    // 's, inven' \n\t0x74 0x69 0x6E 0x67 0x20 0x67 0x61 0x64    // 'ting gad' \n\t0x67 0x65 0x74 0x73 0x2C 0x20 0x61 0x6E    // 'gets, an' \n\t0x64 0x20 0x67 0x65 0x6E 0x65 0x72 0x61    // 'd genera' \n\t0x6C 0x6C 0x79 0x20 0x6D 0x61 0x6B 0x69    // 'lly maki' \n\t0x6E 0x67 0x20 0x61 0x20 0x6D 0x65 0x73    // 'ng a mes' \n\t0x73 0x2E 0x20 0x20 0x53 0x6F 0x20 0x4D    // 's.  So M' \n\t0x63 0x5A 0x65 0x65 0x20 0x77 0x61 0x6E    // 'cZee wan' \n\t0x74 0x73 0x20 0x74 0x6F 0x20 0x70 0x75    // 'ts to pu' \n\t0x74 0x20 0x57 0x69 0x6C 0x6C 0x79 0x20    // 't Willy ' \n\t0x69 0x6E 0x20 0x61 0x20 0x6C 0x61 0x62    // 'in a lab' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x68 0x61    // ' in a ha' \n\t0x75 0x6E 0x74 0x65 0x64 0x20 0x68 0x6F    // 'unted ho' \n\t0x75 0x73 0x65 0x2E 0x20 0x20 0x57 0x69    // 'use.  Wi' \n\t0x6C 0x6C 0x79 0x20 0x69 0x73 0x20 0x73    // 'lly is s' \n\t0x75 0x70 0x70 0x6F 0x73 0x65 0x64 0x20    // 'upposed ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6F 0x6B 0x20    // 'to cook ' \n\t0x75 0x70 0x20 0x6D 0x69 0x78 0x74 0x75    // 'up mixtu' \n\t0x72 0x65 0x73 0x20 0x6F 0x66 0x20 0x65    // 'res of e' \n\t0x76 0x65 0x72 0x79 0x20 0x63 0x6F 0x6C    // 'very col' \n\t0x6F 0x72 0x20 0x74 0x6F 0x20 0x73 0x63    // 'or to sc' \n\t0x61 0x72 0x65 0x20 0x74 0x68 0x65 0x20    // 'are the ' \n\t0x6B 0x69 0x64 0x73 0x2E 0x20 0x20 0x49    // 'kids.  I' \n\t0x6E 0x73 0x74 0x65 0x61 0x64 0x2C 0x20    // 'nstead, ' \n\t0x57 0x69 0x6C 0x6C 0x79 0x20 0x66 0x69    // 'Willy fi' \n\t0x6E 0x64 0x73 0x20 0x61 0x20 0x64 0x6F    // 'nds a do' \n\t0x6F 0x72 0x20 0x69 0x6E 0x20 0x74 0x68    // 'or in th' \n\t0x65 0x20 0x66 0x6C 0x6F 0x6F 0x72 0x20    // 'e floor ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x6C    // 'of the l' \n\t0x61 0x62 0x2E 0x20 0x20 0x54 0x68 0x65    // 'ab.  The' \n\t0x72 0x65 0x27 0x73 0x20 0x61 0x20 0x68    // 're's a h' \n\t0x75 0x67 0x65 0x20 0x72 0x65 0x64 0x20    // 'uge red ' \n\t0x58 0x20 0x6F 0x6E 0x20 0x74 0x68 0x65    // 'X on the' \n\t0x20 0x64 0x6F 0x6F 0x72 0x2E 0x20 0x20    // ' door.  ' \n\t0x49 0x73 0x20 0x69 0x74 0x20 0x61 0x20    // 'Is it a ' \n\t0x74 0x72 0x61 0x70 0x20 0x64 0x6F 0x6F    // 'trap doo' \n\t0x72 0x3F 0x20 0x20 0x57 0x69 0x6C 0x6C    // 'r?  Will' \n\t0x79 0x20 0x6B 0x6E 0x65 0x65 0x6C 0x73    // 'y kneels' \n\t0x20 0x64 0x6F 0x77 0x6E 0x2C 0x20 0x61    // ' down, a' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x6E 0x20    // 'nd then ' \n\t0x63 0x72 0x61 0x77 0x6C 0x73 0x20 0x61    // 'crawls a' \n\t0x72 0x6F 0x75 0x6E 0x64 0x20 0x74 0x68    // 'round th' \n\t0x65 0x20 0x64 0x6F 0x6F 0x72 0x2E 0x20    // 'e door. ' \n\t0x20 0x49 0x66 0x20 0x68 0x65 0x20 0x73    // ' If he s' \n\t0x74 0x61 0x6E 0x64 0x73 0x20 0x6F 0x6E    // 'tands on' \n\t0x20 0x74 0x68 0x65 0x20 0x64 0x6F 0x6F    // ' the doo' \n\t0x72 0x2C 0x20 0x69 0x74 0x20 0x6D 0x69    // 'r, it mi' \n\t0x67 0x68 0x74 0x20 0x62 0x65 0x20 0x61    // 'ght be a' \n\t0x20 0x74 0x72 0x61 0x70 0x2E 0x20 0x20    // ' trap.  ' \n\t0x48 0x65 0x20 0x63 0x61 0x6E 0x20 0x68    // 'He can h' \n\t0x65 0x61 0x72 0x20 0x73 0x6F 0x75 0x6E    // 'ear soun' \n\t0x64 0x73 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'ds from ' \n\t0x75 0x6E 0x64 0x65 0x72 0x6E 0x65 0x61    // 'undernea' \n\t0x74 0x68 0x97 0x73 0x6F 0x75 0x6E 0x64    // 'thsound' \n\t0x73 0x20 0x6C 0x69 0x6B 0x65 0x20 0x63    // 's like c' \n\t0x68 0x69 0x6C 0x64 0x72 0x65 0x6E 0x20    // 'hildren ' \n\t0x63 0x61 0x6C 0x6C 0x69 0x6E 0x67 0x20    // 'calling ' \n\t0x66 0x6F 0x72 0x20 0x68 0x65 0x6C 0x70    // 'for help' \n\t0x2E 0x20 0x0D 0x0A 0x43 0x61 0x6E 0x20    // '. ??Can ' \n\t0x57 0x69 0x6C 0x6C 0x79 0x20 0x67 0x65    // 'Willy ge' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x64 0x6F    // 't the do' \n\t0x6F 0x72 0x20 0x6F 0x70 0x65 0x6E 0x3F    // 'or open?' \n\t0x20 0x20 0x48 0x6F 0x77 0x20 0x77 0x69    // '  How wi' \n\t0x6C 0x6C 0x20 0x68 0x65 0x20 0x72 0x65    // 'll he re' \n\t0x73 0x63 0x75 0x65 0x20 0x74 0x68 0x65    // 'scue the' \n\t0x20 0x6B 0x69 0x64 0x73 0x3F 0x20 0x20    // ' kids?  ' \n\t0x57 0x68 0x61 0x74 0x20 0x69 0x66 0x20    // 'What if ' \n\t0x74 0x68 0x65 0x72 0x65 0x20 0x69 0x73    // 'there is' \n\t0x20 0x6D 0x6F 0x72 0x65 0x20 0x75 0x6E    // ' more un' \n\t0x64 0x65 0x72 0x20 0x74 0x68 0x65 0x20    // 'der the ' \n\t0x64 0x6F 0x6F 0x72 0x2C 0x20 0x6C 0x69    // 'door, li' \n\t0x6B 0x65 0x20 0x61 0x20 0x63 0x61 0x76    // 'ke a cav' \n\t0x65 0x3F                                  // 'e?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_CC= ktipbio163\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_CC, __HELP_NAME(\"ktipbio163\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_CC, __HELP_NAME(\"ktipbio163\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_CC=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_CC, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio163\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_CC=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_CC, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_CC=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_CC, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE7 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7A 0x01 0x00 0x82    // '????z??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_CC=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_CC, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x61 0x72 0x6B 0x69 0x6E    // '??Parkin' \n\t0x67 0x20 0x56 0x61 0x6C 0x65 0x74 0x0D    // 'g Valet?' \n\t0x0A 0x57 0x69 0x6C 0x6C 0x79 0x20 0x69    // '?Willy i' \n\t0x73 0x20 0x73 0x6F 0x20 0x73 0x6D 0x61    // 's so sma' \n\t0x72 0x74 0x20 0x74 0x68 0x61 0x74 0x20    // 'rt that ' \n\t0x65 0x61 0x73 0x79 0x20 0x74 0x68 0x69    // 'easy thi' \n\t0x6E 0x67 0x73 0x20 0x73 0x65 0x65 0x6D    // 'ngs seem' \n\t0x20 0x68 0x61 0x72 0x64 0x2E 0x20 0x20    // ' hard.  ' \n\t0x49 0x6E 0x20 0x6F 0x6E 0x65 0x20 0x6D    // 'In one m' \n\t0x6F 0x76 0x69 0x65 0x2C 0x20 0x4D 0x63    // 'ovie, Mc' \n\t0x5A 0x65 0x65 0x20 0x77 0x61 0x6E 0x74    // 'Zee want' \n\t0x73 0x20 0x57 0x69 0x6C 0x6C 0x79 0x20    // 's Willy ' \n\t0x74 0x6F 0x20 0x62 0x65 0x20 0x61 0x20    // 'to be a ' \n\t0x70 0x61 0x72 0x6B 0x69 0x6E 0x67 0x20    // 'parking ' \n\t0x76 0x61 0x6C 0x65 0x74 0x20 0x77 0x68    // 'valet wh' \n\t0x6F 0x20 0x69 0x73 0x20 0x72 0x65 0x61    // 'o is rea' \n\t0x6C 0x6C 0x79 0x20 0x6C 0x6F 0x6F 0x6B    // 'lly look' \n\t0x69 0x6E 0x67 0x20 0x6F 0x75 0x74 0x20    // 'ing out ' \n\t0x66 0x6F 0x72 0x20 0x73 0x74 0x6F 0x6C    // 'for stol' \n\t0x65 0x6E 0x20 0x63 0x61 0x72 0x73 0x2E    // 'en cars.' \n\t0x20 0x20 0x42 0x75 0x74 0x20 0x69 0x6E    // '  But in' \n\t0x73 0x74 0x65 0x61 0x64 0x20 0x6F 0x66    // 'stead of' \n\t0x20 0x64 0x72 0x69 0x76 0x69 0x6E 0x67    // ' driving' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x61 0x72    // ' the car' \n\t0x20 0x74 0x6F 0x20 0x69 0x74 0x73 0x20    // ' to its ' \n\t0x70 0x61 0x72 0x6B 0x69 0x6E 0x67 0x20    // 'parking ' \n\t0x73 0x70 0x61 0x63 0x65 0x2C 0x20 0x57    // 'space, W' \n\t0x69 0x6C 0x6C 0x79 0x20 0x77 0x61 0x6C    // 'illy wal' \n\t0x6B 0x73 0x20 0x62 0x61 0x63 0x6B 0x77    // 'ks backw' \n\t0x61 0x72 0x64 0x2C 0x20 0x70 0x75 0x73    // 'ard, pus' \n\t0x68 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'hing the' \n\t0x20 0x63 0x61 0x72 0x20 0x69 0x6E 0x74    // ' car int' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x70 0x61    // 'o the pa' \n\t0x72 0x6B 0x69 0x6E 0x67 0x20 0x73 0x70    // 'rking sp' \n\t0x61 0x63 0x65 0x2E 0x20 0x20 0x42 0x75    // 'ace.  Bu' \n\t0x74 0x20 0x77 0x68 0x65 0x6E 0x20 0x68    // 't when h' \n\t0x65 0x20 0x74 0x75 0x72 0x6E 0x73 0x20    // 'e turns ' \n\t0x61 0x72 0x6F 0x75 0x6E 0x64 0x2C 0x20    // 'around, ' \n\t0x74 0x68 0x65 0x20 0x63 0x61 0x72 0x20    // 'the car ' \n\t0x69 0x73 0x20 0x67 0x6F 0x6E 0x65 0x2E    // 'is gone.' \n\t0x20 0x20 0x53 0x6F 0x6D 0x65 0x6F 0x6E    // '  Someon' \n\t0x65 0x20 0x73 0x74 0x6F 0x6C 0x65 0x20    // 'e stole ' \n\t0x69 0x74 0x2E 0x20 0x49 0x74 0x20 0x64    // 'it. It d' \n\t0x6F 0x65 0x73 0x6E 0x92 0x74 0x20 0x74    // 'oesnt t' \n\t0x61 0x6B 0x65 0x20 0x61 0x20 0x67 0x65    // 'ake a ge' \n\t0x6E 0x69 0x75 0x73 0x20 0x74 0x6F 0x20    // 'nius to ' \n\t0x73 0x65 0x65 0x20 0x74 0x68 0x61 0x74    // 'see that' \n\t0x2E 0x20 0x0D 0x0A 0x42 0x75 0x74 0x20    // '. ??But ' \n\t0x77 0x68 0x6F 0x20 0x73 0x74 0x6F 0x6C    // 'who stol' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x63 0x61    // 'e the ca' \n\t0x72 0x20 0x62 0x65 0x68 0x69 0x6E 0x64    // 'r behind' \n\t0x20 0x57 0x69 0x6C 0x6C 0x79 0x27 0x73    // ' Willy's' \n\t0x20 0x62 0x61 0x63 0x6B 0x3F 0x20 0x20    // ' back?  ' \n\t0x48 0x6F 0x77 0x20 0x77 0x69 0x6C 0x6C    // 'How will' \n\t0x20 0x68 0x65 0x20 0x66 0x69 0x6E 0x64    // ' he find' \n\t0x20 0x69 0x74 0x3F 0x20 0x20 0x49 0x73    // ' it?  Is' \n\t0x20 0x74 0x68 0x69 0x73 0x20 0x68 0x6F    // ' this ho' \n\t0x77 0x20 0x61 0x6C 0x6C 0x20 0x74 0x68    // 'w all th' \n\t0x65 0x20 0x6F 0x74 0x68 0x65 0x72 0x20    // 'e other ' \n\t0x63 0x61 0x72 0x73 0x20 0x64 0x69 0x73    // 'cars dis' \n\t0x61 0x70 0x70 0x65 0x61 0x72 0x65 0x64    // 'appeared' \n\t0x3F                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_CD= ktipbio164\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_CD, __HELP_NAME(\"ktipbio164\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_CD, __HELP_NAME(\"ktipbio164\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_CE=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_CD, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio164\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_CE=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_CD, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x05 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_CE=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_CE, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x03 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x64 0x02 0x00 0x82    // '????d??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_CE=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_CE, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x61 0x74 0x69 0x76 0x65    // '??Native' \n\t0x20 0x53 0x74 0x75 0x64 0x65 0x6E 0x74    // ' Student' \n\t0x0D 0x0A 0x57 0x69 0x6C 0x6C 0x79 0x20    // '??Willy ' \n\t0x69 0x73 0x20 0x61 0x20 0x6E 0x61 0x74    // 'is a nat' \n\t0x75 0x72 0x61 0x6C 0x20 0x73 0x74 0x75    // 'ural stu' \n\t0x64 0x65 0x6E 0x74 0x2C 0x20 0x73 0x6F    // 'dent, so' \n\t0x20 0x68 0x65 0x20 0x6A 0x75 0x6D 0x70    // ' he jump' \n\t0x65 0x64 0x20 0x61 0x74 0x20 0x74 0x68    // 'ed at th' \n\t0x65 0x20 0x72 0x6F 0x6C 0x65 0x20 0x6F    // 'e role o' \n\t0x66 0x20 0x61 0x20 0x73 0x74 0x75 0x64    // 'f a stud' \n\t0x65 0x6E 0x74 0x20 0x69 0x6E 0x20 0x4D    // 'ent in M' \n\t0x6F 0x72 0x6F 0x63 0x63 0x6F 0x20 0x6C    // 'orocco l' \n\t0x65 0x61 0x72 0x6E 0x69 0x6E 0x67 0x20    // 'earning ' \n\t0x61 0x62 0x6F 0x75 0x74 0x20 0x41 0x72    // 'about Ar' \n\t0x61 0x62 0x69 0x63 0x20 0x63 0x75 0x6C    // 'abic cul' \n\t0x74 0x75 0x72 0x65 0x2E 0x20 0x20 0x57    // 'ture.  W' \n\t0x69 0x6C 0x6C 0x79 0x92 0x73 0x20 0x74    // 'illys t' \n\t0x65 0x61 0x63 0x68 0x65 0x72 0x2C 0x20    // 'eacher, ' \n\t0x56 0x61 0x6C 0x65 0x6E 0x74 0x69 0x6E    // 'Valentin' \n\t0x65 0x2C 0x20 0x74 0x61 0x6B 0x65 0x73    // 'e, takes' \n\t0x20 0x57 0x69 0x6C 0x6C 0x79 0x20 0x74    // ' Willy t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x61 0x6E    // 'o the an' \n\t0x63 0x69 0x65 0x6E 0x74 0x20 0x72 0x75    // 'cient ru' \n\t0x69 0x6E 0x73 0x20 0x69 0x6E 0x20 0x56    // 'ins in V' \n\t0x6F 0x6C 0x75 0x62 0x69 0x6C 0x69 0x73    // 'olubilis' \n\t0x2E 0x20 0x20 0x57 0x68 0x61 0x74 0x20    // '.  What ' \n\t0x57 0x69 0x6C 0x6C 0x79 0x20 0x64 0x6F    // 'Willy do' \n\t0x65 0x73 0x6E 0x92 0x74 0x20 0x6B 0x6E    // 'esnt kn' \n\t0x6F 0x77 0x20 0x69 0x73 0x20 0x74 0x68    // 'ow is th' \n\t0x61 0x74 0x20 0x56 0x61 0x6C 0x65 0x6E    // 'at Valen' \n\t0x74 0x69 0x6E 0x65 0x20 0x72 0x65 0x61    // 'tine rea' \n\t0x6C 0x6C 0x79 0x20 0x77 0x61 0x6E 0x74    // 'lly want' \n\t0x73 0x20 0x57 0x69 0x6C 0x6C 0x79 0x20    // 's Willy ' \n\t0x74 0x6F 0x20 0x68 0x65 0x6C 0x70 0x20    // 'to help ' \n\t0x68 0x69 0x6D 0x20 0x66 0x69 0x6E 0x64    // 'him find' \n\t0x20 0x61 0x6E 0x20 0x75 0x6E 0x64 0x65    // ' an unde' \n\t0x72 0x67 0x72 0x6F 0x75 0x6E 0x64 0x20    // 'rground ' \n\t0x74 0x75 0x6E 0x6E 0x65 0x6C 0x20 0x74    // 'tunnel t' \n\t0x68 0x72 0x6F 0x75 0x67 0x68 0x20 0x74    // 'hrough t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x6E 0x74    // 'he mount' \n\t0x61 0x69 0x6E 0x2E 0x20 0x20 0x57 0x69    // 'ain.  Wi' \n\t0x6C 0x6C 0x79 0x20 0x61 0x6E 0x64 0x20    // 'lly and ' \n\t0x56 0x61 0x6C 0x65 0x6E 0x74 0x69 0x6E    // 'Valentin' \n\t0x65 0x20 0x61 0x72 0x72 0x69 0x76 0x65    // 'e arrive' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x72 0x75 0x69 0x6E 0x73 0x20 0x61 0x6E    // 'ruins an' \n\t0x64 0x20 0x56 0x61 0x6C 0x65 0x6E 0x74    // 'd Valent' \n\t0x69 0x6E 0x65 0x20 0x73 0x68 0x6F 0x77    // 'ine show' \n\t0x73 0x20 0x57 0x69 0x6C 0x6C 0x79 0x20    // 's Willy ' \n\t0x61 0x20 0x73 0x6D 0x61 0x6C 0x6C 0x20    // 'a small ' \n\t0x64 0x6F 0x6F 0x72 0x20 0x69 0x6E 0x74    // 'door int' \n\t0x6F 0x20 0x61 0x20 0x6C 0x61 0x72 0x67    // 'o a larg' \n\t0x65 0x20 0x73 0x74 0x6F 0x6E 0x65 0x20    // 'e stone ' \n\t0x62 0x75 0x69 0x6C 0x64 0x69 0x6E 0x67    // 'building' \n\t0x2C 0x20 0x74 0x68 0x65 0x20 0x48 0x6F    // ', the Ho' \n\t0x75 0x73 0x65 0x20 0x6F 0x66 0x20 0x48    // 'use of H' \n\t0x65 0x72 0x63 0x75 0x6C 0x65 0x73 0x2E    // 'ercules.' \n\t0x20 0x20 0x54 0x68 0x65 0x79 0x20 0x63    // '  They c' \n\t0x72 0x61 0x77 0x6C 0x20 0x74 0x68 0x72    // 'rawl thr' \n\t0x6F 0x75 0x67 0x68 0x20 0x61 0x6E 0x64    // 'ough and' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x61 0x20    // ' find a ' \n\t0x64 0x61 0x72 0x6B 0x2C 0x20 0x73 0x6D    // 'dark, sm' \n\t0x65 0x6C 0x6C 0x79 0x20 0x72 0x6F 0x6F    // 'elly roo' \n\t0x6D 0x20 0x77 0x69 0x74 0x68 0x20 0x74    // 'm with t' \n\t0x68 0x65 0x20 0x62 0x6F 0x6E 0x65 0x73    // 'he bones' \n\t0x20 0x6F 0x66 0x20 0x61 0x6E 0x20 0x61    // ' of an a' \n\t0x6E 0x69 0x6D 0x61 0x6C 0x20 0x74 0x6F    // 'nimal to' \n\t0x20 0x6F 0x6E 0x65 0x20 0x73 0x69 0x64    // ' one sid' \n\t0x65 0x2E 0x20 0x20 0x42 0x75 0x74 0x20    // 'e.  But ' \n\t0x6F 0x76 0x65 0x72 0x20 0x69 0x6E 0x20    // 'over in ' \n\t0x74 0x68 0x65 0x20 0x64 0x69 0x73 0x74    // 'the dist' \n\t0x61 0x6E 0x63 0x65 0x2C 0x20 0x57 0x69    // 'ance, Wi' \n\t0x6C 0x6C 0x79 0x20 0x63 0x61 0x6E 0x20    // 'lly can ' \n\t0x73 0x65 0x65 0x20 0x61 0x20 0x73 0x6D    // 'see a sm' \n\t0x61 0x6C 0x6C 0x20 0x77 0x6F 0x6F 0x64    // 'all wood' \n\t0x65 0x6E 0x20 0x64 0x6F 0x6F 0x72 0x77    // 'en doorw' \n\t0x61 0x79 0x2E 0x20 0x0D 0x0A 0x49 0x73    // 'ay. ??Is' \n\t0x20 0x74 0x68 0x69 0x73 0x20 0x74 0x68    // ' this th' \n\t0x65 0x20 0x6C 0x6F 0x73 0x74 0x20 0x65    // 'e lost e' \n\t0x6E 0x74 0x72 0x61 0x6E 0x63 0x65 0x20    // 'ntrance ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x75    // 'to the u' \n\t0x6E 0x64 0x65 0x72 0x67 0x72 0x6F 0x75    // 'ndergrou' \n\t0x6E 0x64 0x20 0x70 0x61 0x73 0x73 0x61    // 'nd passa' \n\t0x67 0x65 0x3F 0x20 0x20 0x48 0x6F 0x77    // 'ge?  How' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x57 0x69    // ' will Wi' \n\t0x6C 0x6C 0x79 0x20 0x61 0x6E 0x64 0x20    // 'lly and ' \n\t0x56 0x61 0x6C 0x65 0x6E 0x74 0x69 0x6E    // 'Valentin' \n\t0x65 0x20 0x73 0x71 0x75 0x65 0x65 0x7A    // 'e squeez' \n\t0x65 0x20 0x74 0x68 0x72 0x6F 0x75 0x67    // 'e throug' \n\t0x68 0x20 0x69 0x74 0x3F 0x20 0x20 0x57    // 'h it?  W' \n\t0x68 0x61 0x74 0x20 0x77 0x69 0x6C 0x6C    // 'hat will' \n\t0x20 0x74 0x68 0x65 0x79 0x20 0x66 0x69    // ' they fi' \n\t0x6E 0x64 0x20 0x61 0x74 0x20 0x74 0x68    // 'nd at th' \n\t0x65 0x20 0x6F 0x74 0x68 0x65 0x72 0x20    // 'e other ' \n\t0x73 0x69 0x64 0x65 0x20 0x6F 0x66 0x20    // 'side of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x6E    // 'the moun' \n\t0x74 0x61 0x69 0x6E 0x3F                   // 'tain?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_CE= ktipbio165\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_CE, __HELP_NAME(\"ktipbio165\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_CE, __HELP_NAME(\"ktipbio165\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_20=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_CE, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio165\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_20=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_CE, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0E 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_20=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x03 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3D 0x01 0x00 0x82    // '????=??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_20=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x03 0x03 0x6D 0x61 0x74 0x61 0x64 0x6F    // '??matado' \n\t0x72 0x73 0x0D 0x0A 0x5A 0x61 0x63 0x6B    // 'rs??Zack' \n\t0x92 0x73 0x20 0x66 0x61 0x6D 0x69 0x6C    // 's famil' \n\t0x79 0x20 0x68 0x61 0x73 0x20 0x62 0x65    // 'y has be' \n\t0x65 0x6E 0x20 0x69 0x6E 0x20 0x62 0x75    // 'en in bu' \n\t0x6C 0x6C 0x66 0x69 0x67 0x68 0x74 0x69    // 'llfighti' \n\t0x6E 0x67 0x20 0x66 0x6F 0x72 0x20 0x67    // 'ng for g' \n\t0x65 0x6E 0x65 0x72 0x61 0x74 0x69 0x6F    // 'eneratio' \n\t0x6E 0x73 0x2E 0x20 0x20 0x46 0x72 0x6F    // 'ns.  Fro' \n\t0x6D 0x20 0x61 0x6E 0x20 0x65 0x61 0x72    // 'm an ear' \n\t0x6C 0x79 0x20 0x61 0x67 0x65 0x2C 0x20    // 'ly age, ' \n\t0x5A 0x61 0x63 0x6B 0x20 0x61 0x6E 0x64    // 'Zack and' \n\t0x20 0x68 0x69 0x73 0x20 0x31 0x31 0x20    // ' his 11 ' \n\t0x6F 0x6C 0x64 0x65 0x72 0x20 0x62 0x72    // 'older br' \n\t0x6F 0x74 0x68 0x65 0x72 0x73 0x20 0x67    // 'others g' \n\t0x6F 0x74 0x20 0x69 0x6E 0x74 0x6F 0x20    // 'ot into ' \n\t0x74 0x68 0x65 0x20 0x72 0x69 0x6E 0x67    // 'the ring' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x74 0x68    // ' with th' \n\t0x65 0x20 0x62 0x75 0x6C 0x6C 0x73 0x20    // 'e bulls ' \n\t0x74 0x6F 0x20 0x6B 0x65 0x65 0x70 0x20    // 'to keep ' \n\t0x74 0x68 0x65 0x20 0x66 0x61 0x6D 0x69    // 'the fami' \n\t0x6C 0x79 0x20 0x74 0x72 0x61 0x64 0x69    // 'ly tradi' \n\t0x74 0x69 0x6F 0x6E 0x20 0x67 0x6F 0x69    // 'tion goi' \n\t0x6E 0x67 0x2E 0x20 0x20 0x49 0x74 0x20    // 'ng.  It ' \n\t0x64 0x69 0x64 0x6E 0x92 0x74 0x20 0x74    // 'didnt t' \n\t0x61 0x6B 0x65 0x20 0x5A 0x61 0x63 0x6B    // 'ake Zack' \n\t0x20 0x6C 0x6F 0x6E 0x67 0x20 0x74 0x6F    // ' long to' \n\t0x20 0x72 0x65 0x61 0x6C 0x69 0x7A 0x65    // ' realize' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x68 0x65    // ' the the' \n\t0x73 0x65 0x20 0x62 0x75 0x6C 0x6C 0x73    // 'se bulls' \n\t0x20 0x77 0x65 0x72 0x65 0x20 0x77 0x61    // ' were wa' \n\t0x79 0x20 0x73 0x65 0x72 0x69 0x6F 0x75    // 'y seriou' \n\t0x73 0x2E 0x20 0x48 0x65 0x20 0x77 0x61    // 's. He wa' \n\t0x6E 0x74 0x65 0x64 0x20 0x74 0x6F 0x20    // 'nted to ' \n\t0x73 0x61 0x79 0x2C 0x20 0x93 0x54 0x68    // 'say, Th' \n\t0x61 0x6E 0x6B 0x73 0x2C 0x20 0x67 0x75    // 'anks, gu' \n\t0x79 0x73 0x2C 0x20 0x62 0x75 0x74 0x20    // 'ys, but ' \n\t0x74 0x68 0x69 0x73 0x20 0x69 0x73 0x20    // 'this is ' \n\t0x4E 0x4F 0x54 0x20 0x66 0x6F 0x72 0x20    // 'NOT for ' \n\t0x6D 0x65 0x2E 0x94 0x20 0x0D 0x0A 0x42    // 'me. ??B' \n\t0x75 0x74 0x20 0x68 0x65 0x20 0x63 0x6F    // 'ut he co' \n\t0x75 0x6C 0x64 0x6E 0x92 0x74 0x20 0x64    // 'uldnt d' \n\t0x69 0x73 0x61 0x70 0x70 0x6F 0x69 0x6E    // 'isappoin' \n\t0x74 0x20 0x68 0x69 0x73 0x20 0x66 0x61    // 't his fa' \n\t0x6D 0x69 0x6C 0x79 0x2E 0x20 0x20 0x53    // 'mily.  S' \n\t0x6F 0x20 0x68 0x65 0x20 0x67 0x72 0x61    // 'o he gra' \n\t0x62 0x62 0x65 0x64 0x20 0x61 0x20 0x70    // 'bbed a p' \n\t0x61 0x70 0x65 0x72 0x20 0x6C 0x75 0x6E    // 'aper lun' \n\t0x63 0x68 0x20 0x62 0x61 0x67 0x20 0x61    // 'ch bag a' \n\t0x6E 0x64 0x20 0x70 0x75 0x74 0x20 0x69    // 'nd put i' \n\t0x74 0x20 0x6F 0x76 0x65 0x72 0x20 0x68    // 't over h' \n\t0x69 0x73 0x20 0x68 0x65 0x61 0x64 0x2E    // 'is head.' \n\t0x20 0x20 0x49 0x6E 0x73 0x74 0x61 0x6E    // '  Instan' \n\t0x74 0x6C 0x79 0x2C 0x20 0x68 0x65 0x20    // 'tly, he ' \n\t0x77 0x61 0x73 0x20 0x66 0x69 0x6C 0x6C    // 'was fill' \n\t0x65 0x64 0x20 0x77 0x69 0x74 0x68 0x20    // 'ed with ' \n\t0x63 0x6F 0x75 0x72 0x61 0x67 0x65 0x2E    // 'courage.' \n\t0x20 0x20 0x4E 0x6F 0x74 0x68 0x69 0x6E    // '  Nothin' \n\t0x67 0x2C 0x20 0x6E 0x6F 0x74 0x20 0x65    // 'g, not e' \n\t0x76 0x65 0x6E 0x20 0x61 0x20 0x68 0x61    // 'ven a ha' \n\t0x69 0x72 0x79 0x20 0x62 0x75 0x6C 0x6C    // 'iry bull' \n\t0x2C 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // ', would ' \n\t0x73 0x74 0x6F 0x70 0x20 0x68 0x69 0x6D    // 'stop him' \n\t0x20 0x6E 0x6F 0x77 0x2E 0x20 0x20 0x46    // ' now.  F' \n\t0x72 0x6F 0x6D 0x20 0x74 0x68 0x61 0x74    // 'rom that' \n\t0x20 0x6D 0x6F 0x6D 0x65 0x6E 0x74 0x2C    // ' moment,' \n\t0x20 0x68 0x65 0x20 0x62 0x65 0x63 0x61    // ' he beca' \n\t0x6D 0x65 0x20 0x74 0x68 0x65 0x20 0x6D    // 'me the m' \n\t0x6F 0x73 0x74 0x20 0x73 0x75 0x63 0x63    // 'ost succ' \n\t0x65 0x73 0x73 0x66 0x75 0x6C 0x20 0x6D    // 'essful m' \n\t0x61 0x74 0x61 0x64 0x6F 0x72 0x20 0x69    // 'atador i' \n\t0x6E 0x20 0x61 0x6C 0x6C 0x20 0x6F 0x66    // 'n all of' \n\t0x20 0x53 0x70 0x61 0x69 0x6E 0x2E 0x20    // ' Spain. ' \n\t0x20 0x45 0x76 0x65 0x6E 0x20 0x61 0x20    // ' Even a ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x64 0x69    // 'movie di' \n\t0x72 0x65 0x63 0x74 0x6F 0x72 0x2C 0x20    // 'rector, ' \n\t0x4D 0x63 0x5A 0x65 0x65 0x2C 0x20 0x6E    // 'McZee, n' \n\t0x6F 0x74 0x69 0x63 0x65 0x64 0x20 0x68    // 'oticed h' \n\t0x69 0x6D 0x2E 0x20 0x20 0x53 0x6F 0x6F    // 'im.  Soo' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x6C 0x69    // 'n the li' \n\t0x66 0x65 0x20 0x73 0x74 0x6F 0x72 0x79    // 'fe story' \n\t0x20 0x6F 0x66 0x20 0x5A 0x61 0x63 0x6B    // ' of Zack' \n\t0x20 0x6D 0x61 0x64 0x65 0x20 0x74 0x68    // ' made th' \n\t0x65 0x20 0x62 0x69 0x67 0x20 0x73 0x63    // 'e big sc' \n\t0x72 0x65 0x65 0x6E 0x2E 0x20 0x57 0x69    // 'reen. Wi' \n\t0x74 0x68 0x20 0x74 0x68 0x65 0x20 0x61    // 'th the a' \n\t0x70 0x70 0x72 0x6F 0x76 0x61 0x6C 0x20    // 'pproval ' \n\t0x6F 0x66 0x20 0x68 0x69 0x73 0x20 0x66    // 'of his f' \n\t0x61 0x6D 0x69 0x6C 0x79 0x20 0x61 0x6E    // 'amily an' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x42 0x75    // 'd the Bu' \n\t0x6C 0x6C 0x73 0x92 0x20 0x41 0x73 0x73    // 'lls Ass' \n\t0x6F 0x63 0x69 0x61 0x74 0x69 0x6F 0x6E    // 'ociation' \n\t0x2C 0x20 0x5A 0x61 0x63 0x6B 0x20 0x6C    // ', Zack l' \n\t0x65 0x66 0x74 0x20 0x6D 0x61 0x74 0x61    // 'eft mata' \n\t0x64 0x6F 0x72 0x69 0x6E 0x67 0x20 0x74    // 'doring t' \n\t0x6F 0x20 0x66 0x6F 0x6C 0x6C 0x6F 0x77    // 'o follow' \n\t0x20 0x68 0x69 0x73 0x20 0x6E 0x65 0x77    // ' his new' \n\t0x20 0x6C 0x6F 0x76 0x65 0x2C 0x20 0x61    // ' love, a' \n\t0x63 0x74 0x69 0x6E 0x67 0x2E 0x20         // 'cting. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_CF= ktipbio166\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_CF, __HELP_NAME(\"ktipbio166\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_CF, __HELP_NAME(\"ktipbio166\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_CF, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio166\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_CF, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x68 0x02 0x00 0x01    // '????h???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xF5 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C6, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x68 0x61 0x6E 0x74 0x6F    // '??Phanto' \n\t0x6D 0x0D 0x0A 0x57 0x69 0x74 0x68 0x20    // 'm??With ' \n\t0x68 0x69 0x73 0x20 0x70 0x61 0x70 0x65    // 'his pape' \n\t0x72 0x20 0x62 0x61 0x67 0x2C 0x20 0x5A    // 'r bag, Z' \n\t0x61 0x63 0x6B 0x20 0x64 0x72 0x65 0x61    // 'ack drea' \n\t0x6D 0x73 0x20 0x68 0x65 0x20 0x63 0x6F    // 'ms he co' \n\t0x75 0x6C 0x64 0x20 0x62 0x65 0x20 0x61    // 'uld be a' \n\t0x20 0x74 0x65 0x72 0x72 0x69 0x66 0x69    // ' terrifi' \n\t0x63 0x20 0x70 0x68 0x61 0x6E 0x74 0x6F    // 'c phanto' \n\t0x6D 0x21 0x20 0x20 0x48 0x65 0x20 0x63    // 'm!  He c' \n\t0x6F 0x75 0x6C 0x64 0x20 0x68 0x69 0x64    // 'ould hid' \n\t0x65 0x20 0x61 0x6E 0x79 0x77 0x68 0x65    // 'e anywhe' \n\t0x72 0x65 0x2C 0x20 0x61 0x70 0x70 0x65    // 're, appe' \n\t0x61 0x72 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'ar from ' \n\t0x6E 0x6F 0x77 0x68 0x65 0x72 0x65 0x2C    // 'nowhere,' \n\t0x20 0x77 0x61 0x6C 0x6B 0x20 0x74 0x68    // ' walk th' \n\t0x72 0x6F 0x75 0x67 0x68 0x20 0x77 0x61    // 'rough wa' \n\t0x6C 0x6C 0x73 0x2C 0x20 0x64 0x72 0x6F    // 'lls, dro' \n\t0x70 0x20 0x74 0x68 0x72 0x6F 0x75 0x67    // 'p throug' \n\t0x68 0x20 0x74 0x68 0x65 0x20 0x66 0x6C    // 'h the fl' \n\t0x6F 0x6F 0x72 0x2C 0x20 0x61 0x6E 0x64    // 'oor, and' \n\t0x20 0x6E 0x6F 0x20 0x6F 0x6E 0x65 0x20    // ' no one ' \n\t0x77 0x6F 0x75 0x6C 0x64 0x20 0x65 0x76    // 'would ev' \n\t0x65 0x72 0x20 0x6B 0x6E 0x6F 0x77 0x20    // 'er know ' \n\t0x77 0x68 0x6F 0x20 0x68 0x65 0x20 0x77    // 'who he w' \n\t0x61 0x73 0x2E 0x20 0x0D 0x0A 0x54 0x68    // 'as. ??Th' \n\t0x65 0x6E 0x2C 0x20 0x6F 0x6E 0x65 0x20    // 'en, one ' \n\t0x64 0x61 0x79 0x2C 0x20 0x5A 0x61 0x63    // 'day, Zac' \n\t0x6B 0x20 0x77 0x6F 0x75 0x6C 0x64 0x20    // 'k would ' \n\t0x62 0x65 0x20 0x70 0x72 0x61 0x63 0x74    // 'be pract' \n\t0x69 0x63 0x69 0x6E 0x67 0x20 0x68 0x69    // 'icing hi' \n\t0x73 0x20 0x70 0x68 0x61 0x6E 0x74 0x6F    // 's phanto' \n\t0x6D 0x20 0x61 0x63 0x74 0x20 0x6F 0x75    // 'm act ou' \n\t0x74 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 't in the' \n\t0x20 0x67 0x72 0x61 0x76 0x65 0x79 0x61    // ' graveya' \n\t0x72 0x64 0x20 0x77 0x68 0x65 0x6E 0x20    // 'rd when ' \n\t0x68 0x65 0x20 0x73 0x65 0x65 0x73 0x20    // 'he sees ' \n\t0x61 0x6E 0x20 0x61 0x6C 0x69 0x65 0x6E    // 'an alien' \n\t0x20 0x73 0x70 0x61 0x63 0x65 0x73 0x68    // ' spacesh' \n\t0x69 0x70 0x20 0x68 0x65 0x61 0x64 0x65    // 'ip heade' \n\t0x64 0x20 0x68 0x69 0x73 0x20 0x77 0x61    // 'd his wa' \n\t0x79 0x2E 0x20 0x20 0x4F 0x68 0x2C 0x20    // 'y.  Oh, ' \n\t0x6E 0x6F 0x2C 0x20 0x6E 0x6F 0x74 0x20    // 'no, not ' \n\t0x61 0x67 0x61 0x69 0x6E 0x2C 0x20 0x5A    // 'again, Z' \n\t0x61 0x63 0x6B 0x20 0x74 0x68 0x69 0x6E    // 'ack thin' \n\t0x6B 0x73 0x2E 0x20 0x20 0x5A 0x61 0x63    // 'ks.  Zac' \n\t0x6B 0x20 0x68 0x61 0x73 0x20 0x6D 0x65    // 'k has me' \n\t0x74 0x20 0x61 0x6C 0x69 0x65 0x6E 0x73    // 't aliens' \n\t0x20 0x62 0x65 0x66 0x6F 0x72 0x65 0x2C    // ' before,' \n\t0x20 0x61 0x6E 0x64 0x20 0x68 0x65 0x20    // ' and he ' \n\t0x64 0x69 0x64 0x6E 0x92 0x74 0x20 0x6C    // 'didnt l' \n\t0x69 0x6B 0x65 0x20 0x74 0x68 0x65 0x6D    // 'ike them' \n\t0x2E 0x20 0x20 0x54 0x68 0x65 0x79 0x20    // '.  They ' \n\t0x68 0x61 0x64 0x20 0x6E 0x6F 0x74 0x68    // 'had noth' \n\t0x69 0x6E 0x67 0x20 0x69 0x6E 0x20 0x63    // 'ing in c' \n\t0x6F 0x6D 0x6D 0x6F 0x6E 0x2C 0x20 0x74    // 'ommon, t' \n\t0x68 0x65 0x79 0x20 0x68 0x61 0x74 0x65    // 'hey hate' \n\t0x64 0x20 0x62 0x75 0x6C 0x6C 0x73 0x2C    // 'd bulls,' \n\t0x20 0x61 0x6E 0x64 0x20 0x74 0x68 0x65    // ' and the' \n\t0x79 0x20 0x61 0x6C 0x77 0x61 0x79 0x73    // 'y always' \n\t0x20 0x6D 0x61 0x64 0x65 0x20 0x66 0x75    // ' made fu' \n\t0x6E 0x20 0x6F 0x66 0x20 0x61 0x63 0x74    // 'n of act' \n\t0x6F 0x72 0x73 0x2E 0x20 0x0D 0x0A 0x5A    // 'ors. ??Z' \n\t0x61 0x63 0x6B 0x20 0x6E 0x65 0x65 0x64    // 'ack need' \n\t0x73 0x20 0x61 0x20 0x67 0x6F 0x6F 0x64    // 's a good' \n\t0x20 0x74 0x72 0x61 0x6E 0x73 0x66 0x6F    // ' transfo' \n\t0x72 0x6D 0x61 0x74 0x69 0x6F 0x6E 0x20    // 'rmation ' \n\t0x71 0x75 0x69 0x63 0x6B 0x2C 0x20 0x62    // 'quick, b' \n\t0x75 0x74 0x20 0x77 0x68 0x6F 0x20 0x6F    // 'ut who o' \n\t0x72 0x20 0x77 0x68 0x61 0x74 0x20 0x63    // 'r what c' \n\t0x61 0x6E 0x20 0x68 0x65 0x20 0x74 0x75    // 'an he tu' \n\t0x72 0x6E 0x20 0x68 0x69 0x6D 0x73 0x65    // 'rn himse' \n\t0x6C 0x66 0x20 0x69 0x6E 0x74 0x6F 0x20    // 'lf into ' \n\t0x74 0x6F 0x20 0x61 0x76 0x6F 0x69 0x64    // 'to avoid' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x72 0x65    // ' the cre' \n\t0x65 0x70 0x79 0x20 0x6C 0x69 0x74 0x74    // 'epy litt' \n\t0x6C 0x65 0x20 0x61 0x6C 0x69 0x65 0x6E    // 'le alien' \n\t0x73 0x3F                                  // 's?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D0= ktipbio167\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D0, __HELP_NAME(\"ktipbio167\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D0, __HELP_NAME(\"ktipbio167\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio167\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x31 0x02 0x00 0x01    // '????1???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7C 0x01 0x00 0x82    // '????|??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D0, 0x0)\n\tBYTE\n\t0x03 0x03 0x56 0x69 0x6C 0x6C 0x61 0x69    // '??Villai' \n\t0x6E 0x0D 0x0A 0x41 0x6C 0x6C 0x20 0x74    // 'n??All t' \n\t0x68 0x65 0x20 0x6F 0x74 0x68 0x65 0x72    // 'he other' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x73 0x20    // ' actors ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x70 0x6C 0x61 0x79 0x20 0x74 0x68 0x65    // 'play the' \n\t0x20 0x67 0x6F 0x6F 0x64 0x20 0x67 0x75    // ' good gu' \n\t0x79 0x73 0x2E 0x20 0x20 0x4E 0x6F 0x74    // 'ys.  Not' \n\t0x20 0x5A 0x61 0x63 0x6B 0x2E 0x20 0x20    // ' Zack.  ' \n\t0x48 0x65 0x20 0x64 0x72 0x65 0x61 0x6D    // 'He dream' \n\t0x73 0x20 0x6F 0x66 0x20 0x62 0x65 0x69    // 's of bei' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x6D    // 'ng the m' \n\t0x65 0x61 0x6E 0x65 0x73 0x74 0x20 0x61    // 'eanest a' \n\t0x6E 0x64 0x20 0x63 0x72 0x6F 0x6F 0x6B    // 'nd crook' \n\t0x65 0x64 0x65 0x73 0x74 0x20 0x62 0x61    // 'edest ba' \n\t0x64 0x20 0x67 0x75 0x79 0x20 0x65 0x76    // 'd guy ev' \n\t0x65 0x72 0x2E 0x20 0x20 0x48 0x65 0x92    // 'er.  He' \n\t0x64 0x20 0x62 0x65 0x20 0x74 0x68 0x65    // 'd be the' \n\t0x20 0x62 0x61 0x64 0x20 0x67 0x75 0x79    // ' bad guy' \n\t0x20 0x77 0x68 0x6F 0x20 0x63 0x6F 0x75    // ' who cou' \n\t0x6C 0x64 0x20 0x70 0x75 0x6C 0x6C 0x20    // 'ld pull ' \n\t0x6F 0x66 0x66 0x20 0x72 0x6F 0x62 0x62    // 'off robb' \n\t0x65 0x72 0x69 0x65 0x73 0x2C 0x20 0x70    // 'eries, p' \n\t0x6C 0x61 0x79 0x20 0x70 0x72 0x61 0x6E    // 'lay pran' \n\t0x6B 0x73 0x2C 0x20 0x73 0x63 0x61 0x72    // 'ks, scar' \n\t0x65 0x20 0x61 0x6E 0x79 0x6F 0x6E 0x65    // 'e anyone' \n\t0x2C 0x20 0x61 0x6E 0x64 0x20 0x6E 0x6F    // ', and no' \n\t0x20 0x6F 0x6E 0x65 0x20 0x77 0x6F 0x75    // ' one wou' \n\t0x6C 0x64 0x20 0x65 0x76 0x65 0x72 0x20    // 'ld ever ' \n\t0x63 0x61 0x74 0x63 0x68 0x20 0x68 0x69    // 'catch hi' \n\t0x6D 0x20 0x6F 0x72 0x20 0x66 0x69 0x6E    // 'm or fin' \n\t0x64 0x20 0x6F 0x75 0x74 0x20 0x77 0x68    // 'd out wh' \n\t0x6F 0x20 0x68 0x65 0x20 0x72 0x65 0x61    // 'o he rea' \n\t0x6C 0x6C 0x79 0x20 0x69 0x73 0x2E 0x20    // 'lly is. ' \n\t0x20 0x41 0x6E 0x64 0x20 0x74 0x68 0x65    // ' And the' \n\t0x20 0x62 0x61 0x67 0x20 0x77 0x6F 0x75    // ' bag wou' \n\t0x6C 0x64 0x20 0x62 0x65 0x20 0x65 0x76    // 'ld be ev' \n\t0x65 0x6E 0x20 0x62 0x65 0x74 0x74 0x65    // 'en bette' \n\t0x72 0x20 0x74 0x68 0x61 0x6E 0x20 0x61    // 'r than a' \n\t0x20 0x73 0x6B 0x69 0x20 0x6D 0x61 0x73    // ' ski mas' \n\t0x6B 0x21 0x20 0x48 0x65 0x20 0x77 0x6F    // 'k! He wo' \n\t0x75 0x6C 0x64 0x20 0x62 0x65 0x20 0x74    // 'uld be t' \n\t0x68 0x65 0x20 0x67 0x72 0x65 0x61 0x74    // 'he great' \n\t0x20 0x6D 0x79 0x73 0x74 0x65 0x72 0x79    // ' mystery' \n\t0x20 0x6D 0x61 0x6E 0x20 0x74 0x68 0x61    // ' man tha' \n\t0x74 0x20 0x6E 0x6F 0x20 0x6F 0x6E 0x65    // 't no one' \n\t0x20 0x63 0x61 0x6E 0x20 0x63 0x61 0x74    // ' can cat' \n\t0x63 0x68 0x2E 0x20 0x0D 0x0A 0x42 0x75    // 'ch. ??Bu' \n\t0x74 0x20 0x77 0x68 0x61 0x74 0x20 0x69    // 't what i' \n\t0x66 0x20 0x6F 0x6E 0x65 0x20 0x6F 0x66    // 'f one of' \n\t0x20 0x74 0x68 0x65 0x20 0x6F 0x74 0x68    // ' the oth' \n\t0x65 0x72 0x20 0x61 0x63 0x74 0x6F 0x72    // 'er actor' \n\t0x73 0x20 0x6B 0x6E 0x6F 0x77 0x73 0x20    // 's knows ' \n\t0x68 0x69 0x6D 0x20 0x66 0x72 0x6F 0x6D    // 'him from' \n\t0x20 0x62 0x65 0x66 0x6F 0x72 0x65 0x20    // ' before ' \n\t0x68 0x65 0x20 0x62 0x65 0x63 0x61 0x6D    // 'he becam' \n\t0x65 0x20 0x61 0x20 0x62 0x61 0x67 0x2D    // 'e a bag-' \n\t0x66 0x61 0x63 0x65 0x3F 0x20 0x20 0x41    // 'face?  A' \n\t0x6E 0x64 0x20 0x77 0x68 0x61 0x74 0x20    // 'nd what ' \n\t0x69 0x66 0x20 0x61 0x6E 0x6F 0x74 0x68    // 'if anoth' \n\t0x65 0x72 0x20 0x61 0x63 0x74 0x6F 0x72    // 'er actor' \n\t0x20 0x63 0x61 0x6E 0x20 0x6D 0x61 0x74    // ' can mat' \n\t0x63 0x68 0x20 0x61 0x6C 0x6C 0x20 0x6F    // 'ch all o' \n\t0x66 0x20 0x5A 0x61 0x63 0x6B 0x92 0x73    // 'f Zacks' \n\t0x20 0x73 0x6C 0x79 0x20 0x74 0x72 0x69    // ' sly tri' \n\t0x63 0x6B 0x73 0x20 0x61 0x6E 0x64 0x20    // 'cks and ' \n\t0x64 0x6F 0x20 0x65 0x76 0x65 0x6E 0x20    // 'do even ' \n\t0x6D 0x6F 0x72 0x65 0x3F 0x20 0x57 0x69    // 'more? Wi' \n\t0x6C 0x6C 0x20 0x5A 0x61 0x63 0x6B 0x20    // 'll Zack ' \n\t0x62 0x65 0x20 0x64 0x6F 0x6E 0x65 0x20    // 'be done ' \n\t0x69 0x6E 0x3F                             // 'in?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D1= ktipbio168\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D1, __HELP_NAME(\"ktipbio168\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D1, __HELP_NAME(\"ktipbio168\")) __HELP_PACK2\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktipbio168\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x44 0x02 0x00 0x01    // '????D???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8D 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x61 0x6D 0x6F 0x75 0x66    // '??Camouf' \n\t0x6C 0x61 0x67 0x65 0x64 0x20 0x48 0x75    // 'laged Hu' \n\t0x6E 0x74 0x65 0x72 0x0D 0x0A 0x57 0x69    // 'nter??Wi' \n\t0x74 0x68 0x20 0x61 0x6C 0x6C 0x20 0x68    // 'th all h' \n\t0x69 0x73 0x20 0x63 0x6F 0x75 0x72 0x61    // 'is coura' \n\t0x67 0x65 0x2C 0x20 0x5A 0x61 0x63 0x6B    // 'ge, Zack' \n\t0x20 0x63 0x61 0x6E 0x20 0x73 0x65 0x65    // ' can see' \n\t0x20 0x68 0x69 0x6D 0x73 0x65 0x6C 0x66    // ' himself' \n\t0x20 0x70 0x6C 0x61 0x79 0x69 0x6E 0x67    // ' playing' \n\t0x20 0x61 0x6E 0x20 0x61 0x77 0x65 0x73    // ' an awes' \n\t0x6F 0x6D 0x65 0x20 0x68 0x75 0x6E 0x74    // 'ome hunt' \n\t0x65 0x72 0x20 0x64 0x72 0x65 0x73 0x73    // 'er dress' \n\t0x65 0x64 0x20 0x69 0x6E 0x20 0x63 0x61    // 'ed in ca' \n\t0x6D 0x6F 0x75 0x66 0x6C 0x61 0x67 0x65    // 'mouflage' \n\t0x2C 0x20 0x72 0x65 0x61 0x64 0x79 0x20    // ', ready ' \n\t0x74 0x6F 0x20 0x77 0x69 0x6E 0x20 0x74    // 'to win t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x6C 0x64    // 'he world' \n\t0x20 0x66 0x6F 0x72 0x20 0x66 0x72 0x65    // ' for fre' \n\t0x65 0x64 0x6F 0x6D 0x2E 0x20 0x20 0x48    // 'edom.  H' \n\t0x65 0x92 0x64 0x20 0x70 0x61 0x72 0x61    // 'ed para' \n\t0x63 0x68 0x75 0x74 0x65 0x20 0x69 0x6E    // 'chute in' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x65    // 'to the e' \n\t0x6E 0x65 0x6D 0x79 0x92 0x73 0x20 0x66    // 'nemys f' \n\t0x6F 0x72 0x74 0x20 0x61 0x6E 0x64 0x20    // 'ort and ' \n\t0x74 0x61 0x6B 0x65 0x20 0x74 0x68 0x65    // 'take the' \n\t0x6D 0x20 0x61 0x6C 0x6C 0x20 0x62 0x79    // 'm all by' \n\t0x20 0x73 0x74 0x6F 0x72 0x6D 0x2E 0x20    // ' storm. ' \n\t0x20 0x5A 0x61 0x63 0x6B 0x20 0x70 0x75    // ' Zack pu' \n\t0x74 0x73 0x20 0x6F 0x6E 0x20 0x74 0x68    // 'ts on th' \n\t0x65 0x20 0x70 0x61 0x72 0x61 0x63 0x68    // 'e parach' \n\t0x75 0x74 0x65 0x2C 0x20 0x6A 0x75 0x6D    // 'ute, jum' \n\t0x70 0x73 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'ps from ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x6E    // 'the plan' \n\t0x65 0x2C 0x20 0x61 0x6E 0x64 0x20 0x6C    // 'e, and l' \n\t0x61 0x6E 0x64 0x73 0x2E 0x20 0x20 0x42    // 'ands.  B' \n\t0x75 0x74 0x20 0x73 0x6F 0x6D 0x65 0x74    // 'ut somet' \n\t0x68 0x69 0x6E 0x67 0x20 0x67 0x6F 0x65    // 'hing goe' \n\t0x73 0x20 0x74 0x65 0x72 0x72 0x69 0x62    // 's terrib' \n\t0x6C 0x79 0x20 0x77 0x72 0x6F 0x6E 0x67    // 'ly wrong' \n\t0x2E 0x20 0x20 0x49 0x6E 0x73 0x74 0x65    // '.  Inste' \n\t0x61 0x64 0x20 0x6F 0x66 0x20 0x65 0x6E    // 'ad of en' \n\t0x65 0x6D 0x79 0x20 0x74 0x65 0x72 0x72    // 'emy terr' \n\t0x69 0x74 0x6F 0x72 0x79 0x2C 0x20 0x5A    // 'itory, Z' \n\t0x61 0x63 0x6B 0x20 0x6C 0x61 0x6E 0x64    // 'ack land' \n\t0x73 0x20 0x6F 0x6E 0x20 0x74 0x6F 0x70    // 's on top' \n\t0x20 0x6F 0x66 0x20 0x61 0x20 0x73 0x68    // ' of a sh' \n\t0x6F 0x70 0x70 0x69 0x6E 0x67 0x20 0x6D    // 'opping m' \n\t0x61 0x6C 0x6C 0x20 0x73 0x6E 0x61 0x63    // 'all snac' \n\t0x6B 0x20 0x66 0x6F 0x6F 0x64 0x20 0x63    // 'k food c' \n\t0x61 0x72 0x74 0x21 0x20 0x0D 0x0A 0x50    // 'art! ??P' \n\t0x65 0x6F 0x70 0x6C 0x65 0x20 0x62 0x65    // 'eople be' \n\t0x67 0x69 0x6E 0x20 0x67 0x61 0x74 0x68    // 'gin gath' \n\t0x65 0x72 0x69 0x6E 0x67 0x20 0x61 0x72    // 'ering ar' \n\t0x6F 0x75 0x6E 0x64 0x20 0x74 0x68 0x65    // 'ound the' \n\t0x20 0x77 0x65 0x69 0x72 0x64 0x20 0x62    // ' weird b' \n\t0x61 0x67 0x2D 0x68 0x65 0x61 0x64 0x20    // 'ag-head ' \n\t0x64 0x72 0x65 0x73 0x73 0x65 0x64 0x20    // 'dressed ' \n\t0x69 0x6E 0x20 0x61 0x72 0x6D 0x79 0x20    // 'in army ' \n\t0x63 0x61 0x6D 0x6F 0x75 0x66 0x6C 0x61    // 'camoufla' \n\t0x67 0x65 0x2E 0x20 0x20 0x48 0x6F 0x77    // 'ge.  How' \n\t0x20 0x65 0x6D 0x62 0x61 0x72 0x72 0x61    // ' embarra' \n\t0x73 0x73 0x69 0x6E 0x67 0x2E 0x20 0x48    // 'ssing. H' \n\t0x65 0x20 0x6D 0x75 0x73 0x74 0x20 0x73    // 'e must s' \n\t0x61 0x76 0x65 0x20 0x68 0x69 0x73 0x20    // 'ave his ' \n\t0x72 0x65 0x70 0x75 0x74 0x61 0x74 0x69    // 'reputati' \n\t0x6F 0x6E 0x2E 0x20 0x48 0x65 0x20 0x6E    // 'on. He n' \n\t0x65 0x65 0x64 0x73 0x20 0x61 0x6E 0x6F    // 'eeds ano' \n\t0x74 0x68 0x65 0x72 0x20 0x70 0x6C 0x61    // 'ther pla' \n\t0x6E 0x2C 0x20 0x71 0x75 0x69 0x63 0x6B    // 'n, quick' \n\t0x21 0x20 0x48 0x6F 0x77 0x20 0x77 0x69    // '! How wi' \n\t0x6C 0x6C 0x20 0x5A 0x61 0x63 0x6B 0x20    // 'll Zack ' \n\t0x73 0x61 0x76 0x65 0x20 0x66 0x61 0x63    // 'save fac' \n\t0x65 0x20 0x6E 0x6F 0x77 0x3F              // 'e now?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/bkhowto.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcBook3HowTo1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"(L) How To Scene Pg 1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"(L) How To Scene Pg 1\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook3HowTo1\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\nAG(4)\n\tITEM LONG 0x2000008\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000007\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToScenes01 __HELP_SYMBOL( STN \"kidHowToScenes01\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToScenes02 __HELP_SYMBOL( STN \"kidHowToScenes02\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToScenes06 __HELP_SYMBOL( STN \"kidHowToScenes06\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToScenes15 __HELP_SYMBOL( STN \"kidHowToScenes15\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 6 LONG kidHowToScenes07 __HELP_SYMBOL( STN \"kidHowToScenes07\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToScenes13 __HELP_SYMBOL( STN \"kidHowToScenes13\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToScenes08 __HELP_SYMBOL( STN \"kidHowToScenes08\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x43 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // 'C???????' \n\t0x01 0x00 0x00 0x00 0x1C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x01    // '????9???' \n\t0x00 0x00 0x00 0x00 0x5A 0x00 0x00 0x01    // '????Z???' \n\t0x01 0x00 0x00 0x00 0x61 0x00 0x00 0x01    // '????a???' \n\t0x00 0x00 0x00 0x00 0x63 0x00 0x00 0x01    // '????c???' \n\t0x01 0x00 0x00 0x00 0x97 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x9B 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xBD 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xD4 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xFF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x01 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x37 0x01 0x00 0x01    // '????7???' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x02    // '???? ???' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x02    // '????9???' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x02    // '????:???' \n\t0x01 0x00 0x00 0x00 0x44 0x00 0x00 0x02    // '????D???' \n\t0x00 0x00 0x00 0x00 0x58 0x00 0x00 0x02    // '????X???' \n\t0x01 0x00 0x00 0x00 0x64 0x00 0x00 0x02    // '????d???' \n\t0x00 0x00 0x00 0x00 0x99 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x9A 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xBE 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xD3 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xFD 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x00 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1B 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1C 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x1C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x03    // '???? ???' \n\t0x0F 0x00 0x00 0xFD 0x39 0x00 0x00 0x03    // '???9???' \n\t0x00 0x00 0x00 0x00 0x5A 0x00 0x00 0x03    // '????Z???' \n\t0x0A 0x00 0x00 0xFD 0x61 0x00 0x00 0x03    // '???a???' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x1C 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x58 0x00 0x00 0x40    // '????X??@' \n\t0x00 0x00 0x00 0x00 0x63 0x00 0x00 0x40    // '????c??@' \n\t0x06 0x00 0x00 0x00 0x97 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x99 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xD0 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD2 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0xFD 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xFF 0x00 0x00 0x40    // '??????@' \n\t0x07 0x00 0x00 0x00 0x19 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x1B 0x01 0x00 0x40    // '???????@' \n\t0x09 0x00 0x00 0x00 0x37 0x01 0x00 0x40    // '????7??@' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x5A 0x00 0x00 0x80    // '????Z??' \n\t0x00 0x00 0x00 0x00 0x63 0x00 0x00 0x80    // '????c??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x1B 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x1E 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x63 0x00 0x00 0xC0    // '????c??' \n\t0x02 0x00 0x00 0x00 0x99 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0xD2 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0xFF 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0x1B 0x01 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x6F 0x6F 0x73 0x69    // '??Choosi' \n\t0x6E 0x67 0x0D 0x0A 0x01 0x09 0x43 0x68    // 'ng????Ch' \n\t0x6F 0x6F 0x73 0x69 0x6E 0x67 0x20 0x61    // 'oosing a' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A    // ' scene??' \n\t0x01 0x09 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x63    // 'ng the c' \n\t0x61 0x6D 0x65 0x72 0x61 0x20 0x61 0x6E    // 'amera an' \n\t0x67 0x6C 0x65 0x97 0x63 0x6C 0x6F 0x73    // 'gleclos' \n\t0x65 0x20 0x75 0x70 0x2C 0x20 0x6C 0x6F    // 'e up, lo' \n\t0x6E 0x67 0x20 0x73 0x68 0x6F 0x74 0x2C    // 'ng shot,' \n\t0x20 0x61 0x6E 0x64 0x20 0x73 0x6F 0x20    // ' and so ' \n\t0x6F 0x6E 0x0D 0x0A 0x45 0x64 0x69 0x74    // 'on??Edit' \n\t0x69 0x6E 0x67 0x0D 0x0A 0x01 0x09 0x41    // 'ing????A' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x61 0x20    // 'dding a ' \n\t0x74 0x72 0x61 0x6E 0x73 0x69 0x74 0x69    // 'transiti' \n\t0x6F 0x6E 0x20 0x61 0x74 0x20 0x74 0x68    // 'on at th' \n\t0x65 0x20 0x62 0x65 0x67 0x69 0x6E 0x6E    // 'e beginn' \n\t0x69 0x6E 0x67 0x20 0x6F 0x66 0x20 0x79    // 'ing of y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x0D 0x0A 0x01 0x09 0x41 0x64 0x64    // 'e????Add' \n\t0x69 0x6E 0x67 0x20 0x61 0x20 0x74 0x72    // 'ing a tr' \n\t0x61 0x6E 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'ansition' \n\t0x20 0x62 0x65 0x74 0x77 0x65 0x65 0x6E    // ' between' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x73 0x97    // ' scenes' \n\t0x63 0x75 0x74 0x73 0x20 0x61 0x6E 0x64    // 'cuts and' \n\t0x20 0x64 0x69 0x73 0x73 0x6F 0x6C 0x76    // ' dissolv' \n\t0x65 0x73 0x0D 0x0A 0x01 0x09 0x41 0x74    // 'es????At' \n\t0x74 0x61 0x63 0x68 0x69 0x6E 0x67 0x20    // 'taching ' \n\t0x6F 0x6E 0x65 0x20 0x6D 0x6F 0x76 0x69    // 'one movi' \n\t0x65 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'e to the' \n\t0x20 0x65 0x6E 0x64 0x20 0x6F 0x66 0x20    // ' end of ' \n\t0x61 0x6E 0x6F 0x74 0x68 0x65 0x72 0x0D    // 'another?' \n\t0x0A 0x01 0x09 0x43 0x68 0x61 0x6E 0x67    // '???Chang' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x6F 0x72    // 'scene or' \n\t0x64 0x65 0x72 0x0D 0x0A 0x01 0x09 0x4D    // 'der????M' \n\t0x6F 0x76 0x69 0x6E 0x67 0x20 0x66 0x72    // 'oving fr' \n\t0x6F 0x6D 0x20 0x73 0x63 0x65 0x6E 0x65    // 'om scene' \n\t0x20 0x74 0x6F 0x20 0x73 0x63 0x65 0x6E    // ' to scen' \n\t0x65                                       // 'e' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpcBook3HowTo2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"(L) How To Scene Pg 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"(L) How To Scene Pg 2\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook3HowTo2\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\nAG(4)\n\tITEM LONG 0x2000007\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000005\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tFREE\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToScenes10 __HELP_SYMBOL( STN \"kidHowToScenes10\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToScenes11 __HELP_SYMBOL( STN \"kidHowToScenes11\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToScenes12 __HELP_SYMBOL( STN \"kidHowToScenes12\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 6 LONG kidHowToScenes14 __HELP_SYMBOL( STN \"kidHowToScenes14\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToScenes09 __HELP_SYMBOL( STN \"kidHowToScenes09\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '0???????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2F 0x00 0x00 0x01    // '????/???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x01 0x00 0x00 0x00 0x6A 0x00 0x00 0x01    // '????j???' \n\t0x00 0x00 0x00 0x00 0x6C 0x00 0x00 0x01    // '????l???' \n\t0x01 0x00 0x00 0x00 0xA1 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA3 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD5 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xD9 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xEC 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x01 0x00 0xEE 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x02    // '????/???' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x02    // '????0???' \n\t0x00 0x00 0x00 0x00 0x6A 0x00 0x00 0x02    // '????j???' \n\t0x01 0x00 0x00 0x00 0x6B 0x00 0x00 0x02    // '????k???' \n\t0x00 0x00 0x00 0x00 0xA1 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xA2 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xD7 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xD8 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xEE 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x40    // '???????@' \n\t0x0A 0x00 0x00 0x00 0x2D 0x00 0x00 0x40    // '????-??@' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x40    // '????/??@' \n\t0x06 0x00 0x00 0x00 0x68 0x00 0x00 0x40    // '????h??@' \n\t0x00 0x00 0x00 0x00 0x6A 0x00 0x00 0x40    // '????j??@' \n\t0x07 0x00 0x00 0x00 0x9F 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA1 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0xD5 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD7 0x00 0x00 0x40    // '??????@' \n\t0x09 0x00 0x00 0x00 0xEC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0xD7 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xEE 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0xEE 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x2F 0x00 0x00 0xC0    // '????/??' \n\t0x02 0x00 0x00 0x00 0x6A 0x00 0x00 0xC0    // '????j??' \n\t0x02 0x00 0x00 0x00 0xA1 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0xD7 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x45 0x64 0x69 0x74 0x69 0x6E    // '??Editin' \n\t0x67 0x20 0x63 0x6F 0x6E 0x74 0x69 0x6E    // 'g contin' \n\t0x75 0x65 0x64 0x2E 0x2E 0x2E 0x0D 0x0A    // 'ued...??' \n\t0x01 0x09 0x4D 0x6F 0x76 0x69 0x6E 0x67    // '??Moving' \n\t0x20 0x77 0x69 0x74 0x68 0x69 0x6E 0x20    // ' within ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65 0x0D    // 'a scene?' \n\t0x0A 0x01 0x09 0x52 0x65 0x6D 0x6F 0x76    // '???Remov' \n\t0x69 0x6E 0x67 0x20 0x61 0x6E 0x20 0x65    // 'ing an e' \n\t0x6E 0x74 0x69 0x72 0x65 0x20 0x73 0x63    // 'ntire sc' \n\t0x65 0x6E 0x65 0x20 0x69 0x6E 0x63 0x6C    // 'ene incl' \n\t0x75 0x64 0x69 0x6E 0x67 0x20 0x61 0x6C    // 'uding al' \n\t0x6C 0x20 0x61 0x63 0x74 0x6F 0x72 0x73    // 'l actors' \n\t0x20 0x61 0x6E 0x64 0x20 0x70 0x72 0x6F    // ' and pro' \n\t0x70 0x73 0x0D 0x0A 0x01 0x09 0x52 0x65    // 'ps????Re' \n\t0x6D 0x6F 0x76 0x69 0x6E 0x67 0x20 0x66    // 'moving f' \n\t0x72 0x61 0x6D 0x65 0x73 0x20 0x62 0x65    // 'rames be' \n\t0x66 0x6F 0x72 0x65 0x20 0x74 0x68 0x65    // 'fore the' \n\t0x20 0x63 0x75 0x72 0x72 0x65 0x6E 0x74    // ' current' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x69    // ' frame i' \n\t0x6E 0x20 0x61 0x20 0x73 0x63 0x65 0x6E    // 'n a scen' \n\t0x65 0x0D 0x0A 0x01 0x09 0x52 0x65 0x6D    // 'e????Rem' \n\t0x6F 0x76 0x69 0x6E 0x67 0x20 0x66 0x72    // 'oving fr' \n\t0x61 0x6D 0x65 0x73 0x20 0x61 0x66 0x74    // 'ames aft' \n\t0x65 0x72 0x20 0x74 0x68 0x65 0x20 0x63    // 'er the c' \n\t0x75 0x72 0x72 0x65 0x6E 0x74 0x20 0x66    // 'urrent f' \n\t0x72 0x61 0x6D 0x65 0x20 0x69 0x6E 0x20    // 'rame in ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65 0x0D    // 'a scene?' \n\t0x0A 0x01 0x09 0x55 0x6E 0x64 0x6F 0x69    // '???Undoi' \n\t0x6E 0x67 0x20 0x61 0x6E 0x64 0x20 0x72    // 'ng and r' \n\t0x65 0x64 0x6F 0x69 0x6E 0x67 0x0D 0x0A    // 'edoing??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpcBook4HowTo1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"(L) How To Actor Pg 1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"(L) How To Actor Pg 1\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook4HowTo1\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tITEM LONG 0xC0000006\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToActors02 __HELP_SYMBOL( STN \"kidHowToActors02\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToActors03 __HELP_SYMBOL( STN \"kidHowToActors03\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToActors05 __HELP_SYMBOL( STN \"kidHowToActors05\" )\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToActors04 __HELP_SYMBOL( STN \"kidHowToActors04\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToActors01 __HELP_SYMBOL( STN \"kidHowToActors01\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 6 LONG kidHowToActors06 __HELP_SYMBOL( STN \"kidHowToActors06\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x2D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '-???????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x01    // '????3???' \n\t0x01 0x00 0x00 0x00 0xD2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0x02    // '????????' \n\t0x05 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x02    // '????????' \n\t0x05 0x00 0x00 0x00 0x20 0x00 0x00 0x02    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x02    // '????\"???' \n\t0x05 0x00 0x00 0x00 0x2B 0x00 0x00 0x02    // '????+???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x03    // '???? ???' \n\t0x0A 0x00 0x00 0xFD 0x22 0x00 0x00 0x03    // '???\"???' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x03    // '????3???' \n\t0x0A 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x03    // '????I???' \n\t0x0A 0x00 0x00 0xFD 0x4B 0x00 0x00 0x03    // '???K???' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x03    // '????o???' \n\t0x0A 0x00 0x00 0xFD 0x71 0x00 0x00 0x03    // '???q???' \n\t0x00 0x00 0x00 0x00 0x9F 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xAA 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x0D 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x40    // '???????@' \n\t0x08 0x00 0x00 0x00 0x1E 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x40    // '???? ??@' \n\t0x02 0x00 0x00 0x00 0x31 0x00 0x00 0x40    // '????1??@' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x40    // '????3??@' \n\t0x03 0x00 0x00 0x00 0x47 0x00 0x00 0x40    // '????G??@' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x40    // '????I??@' \n\t0x07 0x00 0x00 0x00 0x6D 0x00 0x00 0x40    // '????m??@' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x40    // '????o??@' \n\t0x04 0x00 0x00 0x00 0x9F 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xAA 0x00 0x00 0x40    // '??????@' \n\t0x09 0x00 0x00 0x00 0x0D 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0xAA 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0xC0    // '???? ??' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0xC0    // '????3??' \n\t0x01 0x00 0x00 0x00 0x49 0x00 0x00 0xC0    // '????I??' \n\t0x01 0x00 0x00 0x00 0x6F 0x00 0x00 0xC0    // '????o??' \n\t0x01 0x00 0x00 0x00 0xAA 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x6F 0x6F 0x73 0x69    // '??Choosi' \n\t0x6E 0x67 0x0D 0x0A 0x01 0x20 0x09 0x43    // 'ng??? ?C' \n\t0x68 0x6F 0x6F 0x73 0x69 0x6E 0x67 0x20    // 'hoosing ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x0D 0x0A 0x01 0x09 0x43 0x68 0x6F 0x6F    // '????Choo' \n\t0x73 0x69 0x6E 0x67 0x20 0x61 0x20 0x70    // 'sing a p' \n\t0x72 0x6F 0x70 0x0D 0x0A 0x01 0x09 0x43    // 'rop????C' \n\t0x72 0x65 0x61 0x74 0x69 0x6E 0x67 0x20    // 'reating ' \n\t0x61 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'a 3D wor' \n\t0x64 0x0D 0x0A 0x01 0x09 0x55 0x73 0x69    // 'd????Usi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ng the s' \n\t0x61 0x6D 0x65 0x20 0x61 0x63 0x74 0x6F    // 'ame acto' \n\t0x72 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'r in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x0D    // 'r movie?' \n\t0x0A 0x01 0x09 0x55 0x73 0x69 0x6E 0x67    // '???Using' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x61 0x6D    // ' the sam' \n\t0x65 0x20 0x70 0x72 0x6F 0x70 0x20 0x6F    // 'e prop o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'd in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x0D    // 'r movie?' \n\t0x0A 0x41 0x6E 0x69 0x6D 0x61 0x74 0x69    // '?Animati' \n\t0x6E 0x67 0x0D 0x0A 0x01 0x09 0x4D 0x61    // 'ng????Ma' \n\t0x6B 0x69 0x6E 0x67 0x20 0x61 0x6E 0x20    // 'king an ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2C 0x20 0x70    // 'actor, p' \n\t0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20    // 'rop, or ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x20    // '3D word ' \n\t0x6D 0x6F 0x76 0x65 0x97 0x61 0x73 0x73    // 'moveass' \n\t0x69 0x67 0x6E 0x69 0x6E 0x67 0x20 0x61    // 'igning a' \n\t0x6E 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'n action' \n\t0x2C 0x20 0x63 0x68 0x6F 0x6F 0x73 0x69    // ', choosi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x61    // 'ng the a' \n\t0x63 0x74 0x69 0x6F 0x6E 0x20 0x73 0x74    // 'ction st' \n\t0x61 0x72 0x74 0x69 0x6E 0x67 0x20 0x70    // 'arting p' \n\t0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E         // 'osition' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpcBook4HowTo2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"(L) How To Actor Pg 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"(L) How To Actor Pg 2\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook4HowTo2\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToActors13 __HELP_SYMBOL( STN \"kidHowToActors13\" )\n\tFREE\n\tFREE\n\tITEM LONG 0xC0000007\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToActors11 __HELP_SYMBOL( STN \"kidHowToActors11\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToActors09 __HELP_SYMBOL( STN \"kidHowToActors09\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToActors12 __HELP_SYMBOL( STN \"kidHowToActors12\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToActors07 __HELP_SYMBOL( STN \"kidHowToActors07\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 6 LONG kidHowToActors08 __HELP_SYMBOL( STN \"kidHowToActors08\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 7 LONG kidHowToActors27 __HELP_SYMBOL( STN \"kidHowToActors27\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x25 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '%???????' \n\t0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x01 0x00 0x00 0x00 0x2E 0x00 0x00 0x01    // '????.???' \n\t0x01 0x00 0x00 0x00 0xA8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xCA 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x74 0x01 0x00 0x01    // '????t???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x18 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x2E 0x01 0x00 0x03    // '???.???' \n\t0x0A 0x00 0x00 0xFD 0x41 0x01 0x00 0x03    // '???A???' \n\t0x0F 0x00 0x00 0xFD 0xA7 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x40    // '???????@' \n\t0x09 0x00 0x00 0x00 0x2C 0x00 0x00 0x40    // '????,??@' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x40    // '????.??@' \n\t0x06 0x00 0x00 0x00 0x67 0x00 0x00 0x40    // '????g??@' \n\t0x00 0x00 0x00 0x00 0x69 0x00 0x00 0x40    // '????i??@' \n\t0x07 0x00 0x00 0x00 0x96 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x98 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xC8 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xCA 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0xF3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF5 0x00 0x00 0x40    // '??????@' \n\t0x0A 0x00 0x00 0x00 0x2C 0x01 0x00 0x40    // '????,??@' \n\t0x00 0x00 0x00 0x00 0x41 0x01 0x00 0x40    // '????A??@' \n\t0x0B 0x00 0x00 0x00 0xA7 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x41 0x01 0x00 0x82    // '????A??' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0xC0    // '???????' \n\t0x05 0x00 0x00 0x00 0x2E 0x00 0x00 0xC0    // '????.??' \n\t0x05 0x00 0x00 0x00 0x69 0x00 0x00 0xC0    // '????i??' \n\t0x05 0x00 0x00 0x00 0x98 0x00 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00 0xCA 0x00 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00 0xF5 0x00 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00 0x41 0x01 0x00 0xC0    // '????A??' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x6E 0x69 0x6D 0x61 0x74    // '??Animat' \n\t0x69 0x6E 0x67 0x20 0x63 0x6F 0x6E 0x74    // 'ing cont' \n\t0x69 0x6E 0x75 0x65 0x64 0x2E 0x2E 0x2E    // 'inued...' \n\t0x0D 0x0A 0x01 0x09 0x43 0x68 0x61 0x6E    // '????Chan' \n\t0x67 0x69 0x6E 0x67 0x20 0x61 0x6E 0x20    // 'ging an ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x0D 0x0A    // 'action??' \n\t0x01 0x09 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x77 0x68 0x65 0x6E 0x20    // 'ng when ' \n\t0x61 0x20 0x33 0x44 0x20 0x6F 0x62 0x6A    // 'a 3D obj' \n\t0x65 0x63 0x74 0x20 0x67 0x65 0x74 0x73    // 'ect gets' \n\t0x20 0x74 0x6F 0x20 0x61 0x20 0x70 0x61    // ' to a pa' \n\t0x72 0x74 0x69 0x63 0x75 0x6C 0x61 0x72    // 'rticular' \n\t0x20 0x6C 0x6F 0x63 0x61 0x74 0x69 0x6F    // ' locatio' \n\t0x6E 0x0D 0x0A 0x01 0x09 0x43 0x6F 0x6E    // 'n????Con' \n\t0x74 0x69 0x6E 0x75 0x69 0x6E 0x67 0x20    // 'tinuing ' \n\t0x74 0x68 0x65 0x20 0x6C 0x61 0x73 0x74    // 'the last' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x20    // ' action ' \n\t0x61 0x20 0x33 0x44 0x20 0x6F 0x62 0x6A    // 'a 3D obj' \n\t0x65 0x63 0x74 0x20 0x75 0x73 0x65 0x64    // 'ect used' \n\t0x0D 0x0A 0x01 0x09 0x43 0x6F 0x70 0x79    // '????Copy' \n\t0x69 0x6E 0x67 0x20 0x61 0x20 0x70 0x61    // 'ing a pa' \n\t0x74 0x68 0x97 0x6D 0x61 0x6B 0x69 0x6E    // 'thmakin' \n\t0x67 0x20 0x61 0x63 0x74 0x6F 0x72 0x73    // 'g actors' \n\t0x20 0x66 0x6F 0x6C 0x6C 0x6F 0x77 0x20    // ' follow ' \n\t0x65 0x61 0x63 0x68 0x20 0x6F 0x74 0x68    // 'each oth' \n\t0x65 0x72 0x0D 0x0A 0x01 0x09 0x4D 0x61    // 'er????Ma' \n\t0x6B 0x69 0x6E 0x67 0x20 0x74 0x77 0x6F    // 'king two' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x73 0x20    // ' actors ' \n\t0x6D 0x65 0x65 0x74 0x20 0x61 0x74 0x20    // 'meet at ' \n\t0x74 0x68 0x65 0x20 0x73 0x61 0x6D 0x65    // 'the same' \n\t0x20 0x73 0x70 0x6F 0x74 0x0D 0x0A 0x01    // ' spot???' \n\t0x09 0x52 0x65 0x70 0x6F 0x73 0x69 0x74    // '?Reposit' \n\t0x69 0x6F 0x6E 0x69 0x6E 0x67 0x20 0x61    // 'ioning a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x2C    // 'n actor,' \n\t0x20 0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F    // ' prop, o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x20 0x61 0x6E 0x64 0x20 0x69 0x74    // 'd and it' \n\t0x73 0x20 0x70 0x61 0x74 0x68 0x0D 0x0A    // 's path??' \n\t0x43 0x68 0x61 0x6E 0x67 0x69 0x6E 0x67    // 'Changing' \n\t0x20 0x74 0x68 0x65 0x20 0x6C 0x6F 0x6F    // ' the loo' \n\t0x6B 0x0D 0x0A 0x01 0x09 0x43 0x68 0x61    // 'k????Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x77 0x61 0x79 0x20 0x61 0x6E    // 'e way an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x6C 0x6F 0x6F 0x6B 0x73 0x97 0x63    // ' looksc' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x63 0x6F    // 'hange co' \n\t0x6C 0x6F 0x72 0x73 0x2C 0x20 0x70 0x61    // 'lors, pa' \n\t0x74 0x74 0x65 0x72 0x6E 0x73 0x2C 0x20    // 'tterns, ' \n\t0x63 0x6F 0x73 0x74 0x75 0x6D 0x65 0x73    // 'costumes' \n\t0x2C 0x20 0x6F 0x72 0x20 0x61 0x63 0x63    // ', or acc' \n\t0x65 0x73 0x73 0x6F 0x72 0x69 0x65 0x73    // 'essories' \n\t0x21                                       // '!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpcBook4HowTo3\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"(L) How To Actor Pg 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"(L) How To Actor Pg 3\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook4HowTo3\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToActors14 __HELP_SYMBOL( STN \"kidHowToActors14\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToActors15 __HELP_SYMBOL( STN \"kidHowToActors15\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToActors16 __HELP_SYMBOL( STN \"kidHowToActors16\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToActors17 __HELP_SYMBOL( STN \"kidHowToActors17\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToActors18 __HELP_SYMBOL( STN \"kidHowToActors18\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 6 LONG kidHowToActors19 __HELP_SYMBOL( STN \"kidHowToActors19\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 7 LONG kidHowToActors20 __HELP_SYMBOL( STN \"kidHowToActors20\" )\n\tITEM LONG 0xC0000007\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x23 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '#???????' \n\t0x01 0x00 0x00 0x00 0x1C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x01    // '????E???' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x01    // '????X???' \n\t0x00 0x00 0x00 0x00 0x7C 0x00 0x00 0x01    // '????|???' \n\t0x01 0x00 0x00 0x00 0x03 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x9F 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xA9 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x40    // '???????@' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x40    // '????C??@' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x02 0x00 0x00 0x00 0x7A 0x00 0x00 0x40    // '????z??@' \n\t0x00 0x00 0x00 0x00 0x7C 0x00 0x00 0x40    // '????|??@' \n\t0x03 0x00 0x00 0x00 0x9D 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA9 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xC2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC4 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xDB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xDD 0x00 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0xF2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF4 0x00 0x00 0x40    // '??????@' \n\t0x07 0x00 0x00 0x00 0x03 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0xF4 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0xC0    // '???????' \n\t0x08 0x00 0x00 0x00 0x45 0x00 0x00 0xC0    // '????E??' \n\t0x08 0x00 0x00 0x00 0x7C 0x00 0x00 0xC0    // '????|??' \n\t0x08 0x00 0x00 0x00 0xA9 0x00 0x00 0xC0    // '??????' \n\t0x08 0x00 0x00 0x00 0xC4 0x00 0x00 0xC0    // '??????' \n\t0x08 0x00 0x00 0x00 0xDD 0x00 0x00 0xC0    // '??????' \n\t0x08 0x00 0x00 0x00 0xF4 0x00 0x00 0xC0    // '??????' \n\t0x08 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x45 0x64 0x69 0x74 0x69 0x6E    // '??Editin' \n\t0x67 0x0D 0x0A 0x01 0x09 0x43 0x6F 0x70    // 'g????Cop' \n\t0x79 0x69 0x6E 0x67 0x20 0x26 0x20 0x70    // 'ying & p' \n\t0x61 0x73 0x74 0x69 0x6E 0x67 0x97 0x64    // 'astingd' \n\t0x75 0x70 0x6C 0x69 0x63 0x61 0x74 0x69    // 'uplicati' \n\t0x6E 0x67 0x20 0x61 0x6E 0x20 0x61 0x63    // 'ng an ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x0D 0x0A 0x01    // ' word???' \n\t0x09 0x43 0x75 0x74 0x74 0x69 0x6E 0x67    // '?Cutting' \n\t0x20 0x26 0x20 0x70 0x61 0x73 0x74 0x69    // ' & pasti' \n\t0x6E 0x67 0x97 0x6D 0x6F 0x76 0x69 0x6E    // 'ngmovin' \n\t0x67 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'g an act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x0D 0x0A 0x01 0x09    // 'word????' \n\t0x52 0x65 0x6D 0x6F 0x76 0x69 0x6E 0x67    // 'Removing' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x74 0x68    // ' from th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x73 0x63 0x65 0x6E 0x65 0x0D    // 't scene?' \n\t0x0A 0x52 0x6F 0x74 0x61 0x74 0x69 0x6E    // '?Rotatin' \n\t0x67 0x0D 0x0A 0x01 0x09 0x54 0x69 0x70    // 'g????Tip' \n\t0x70 0x69 0x6E 0x67 0x20 0x66 0x6F 0x72    // 'ping for' \n\t0x77 0x61 0x72 0x64 0x20 0x6F 0x72 0x20    // 'ward or ' \n\t0x62 0x61 0x63 0x6B 0x0D 0x0A 0x01 0x09    // 'back????' \n\t0x54 0x75 0x72 0x6E 0x69 0x6E 0x67 0x20    // 'Turning ' \n\t0x6C 0x65 0x66 0x74 0x20 0x6F 0x72 0x20    // 'left or ' \n\t0x72 0x69 0x67 0x68 0x74 0x0D 0x0A 0x01    // 'right???' \n\t0x09 0x54 0x69 0x70 0x70 0x69 0x6E 0x67    // '?Tipping' \n\t0x20 0x74 0x6F 0x20 0x6F 0x6E 0x65 0x20    // ' to one ' \n\t0x73 0x69 0x64 0x65 0x0D 0x0A 0x01 0x09    // 'side????' \n\t0x43 0x68 0x61 0x6E 0x67 0x69 0x6E 0x67    // 'Changing' \n\t0x20 0x62 0x61 0x63 0x6B                   // ' back' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpcBook4HowTo4\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"(L) How To Actor Pg 4\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"(L) How To Actor Pg 4\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook4HowTo4\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToActors23 __HELP_SYMBOL( STN \"kidHowToActors23\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToActors24 __HELP_SYMBOL( STN \"kidHowToActors24\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToActors25 __HELP_SYMBOL( STN \"kidHowToActors25\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToActors26 __HELP_SYMBOL( STN \"kidHowToActors26\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 6 LONG kidHowToScenes14 __HELP_SYMBOL( STN \"kidHowToScenes14\" )\n\tFREE\n\tITEM LONG 0xC0000006\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToActors22 __HELP_SYMBOL( STN \"kidHowToActors22\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x22 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '\"???????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x01    // '????F???' \n\t0x01 0x00 0x00 0x00 0x66 0x00 0x00 0x01    // '????f???' \n\t0x00 0x00 0x00 0x00 0x8C 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xF8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x8E 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0x96 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xD2 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xE5 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xF8 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0x40    // '???????@' \n\t0x08 0x00 0x00 0x00 0x46 0x00 0x00 0x40    // '????F??@' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x40    // '????H??@' \n\t0x01 0x00 0x00 0x00 0x8C 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xA5 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA7 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xBF 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC1 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xD0 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE5 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xF8 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0xE5 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0xC0    // '???????' \n\t0x07 0x00 0x00 0x00 0x48 0x00 0x00 0xC0    // '????H??' \n\t0x07 0x00 0x00 0x00 0x96 0x00 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00 0xA7 0x00 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00 0xC1 0x00 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00 0xE5 0x00 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x65 0x6C 0x65 0x63 0x74    // '??Select' \n\t0x69 0x6E 0x67 0x0D 0x0A 0x01 0x09 0x53    // 'ing????S' \n\t0x65 0x6C 0x65 0x63 0x74 0x69 0x6E 0x67    // 'electing' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x20 0x77 0x68 0x69 0x63 0x68 0x20    // 'r which ' \n\t0x69 0x73 0x20 0x62 0x65 0x68 0x69 0x6E    // 'is behin' \n\t0x64 0x20 0x61 0x6E 0x6F 0x74 0x68 0x65    // 'd anothe' \n\t0x72 0x20 0x6F 0x72 0x20 0x6F 0x75 0x74    // 'r or out' \n\t0x20 0x6F 0x66 0x20 0x76 0x69 0x65 0x77    // ' of view' \n\t0x0D 0x0A 0x01 0x09 0x53 0x65 0x6C 0x65    // '????Sele' \n\t0x63 0x74 0x69 0x6E 0x67 0x20 0x61 0x20    // 'cting a ' \n\t0x70 0x72 0x6F 0x70 0x20 0x6F 0x72 0x20    // 'prop or ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x20    // '3D word ' \n\t0x77 0x68 0x69 0x63 0x68 0x20 0x69 0x73    // 'which is' \n\t0x20 0x62 0x65 0x68 0x69 0x6E 0x64 0x20    // ' behind ' \n\t0x61 0x6E 0x6F 0x74 0x68 0x65 0x72 0x20    // 'another ' \n\t0x6F 0x72 0x20 0x6F 0x75 0x74 0x20 0x6F    // 'or out o' \n\t0x66 0x20 0x76 0x69 0x65 0x77 0x0D 0x0A    // 'f view??' \n\t0x53 0x69 0x7A 0x69 0x6E 0x67 0x0D 0x0A    // 'Sizing??' \n\t0x01 0x09 0x53 0x69 0x7A 0x69 0x6E 0x67    // '??Sizing' \n\t0x20 0x65 0x76 0x65 0x6E 0x6C 0x79 0x0D    // ' evenly?' \n\t0x0A 0x01 0x09 0x53 0x71 0x75 0x61 0x73    // '???Squas' \n\t0x68 0x69 0x6E 0x67 0x20 0x26 0x20 0x73    // 'hing & s' \n\t0x74 0x72 0x65 0x74 0x63 0x68 0x69 0x6E    // 'tretchin' \n\t0x67 0x0D 0x0A 0x01 0x09 0x43 0x68 0x61    // 'g????Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x62 0x61    // 'nging ba' \n\t0x63 0x6B 0x0D 0x0A 0x55 0x6E 0x64 0x6F    // 'ck??Undo' \n\t0x69 0x6E 0x67 0x20 0x26 0x20 0x52 0x65    // 'ing & Re' \n\t0x64 0x6F 0x69 0x6E 0x67 0x0D 0x0A 0x01    // 'doing???' \n\t0x09 0x55 0x6E 0x64 0x6F 0x69 0x6E 0x67    // '?Undoing' \n\t0x20 0x26 0x20 0x72 0x65 0x64 0x6F 0x69    // ' & redoi' \n\t0x6E 0x67                                  // 'ng' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= ktpcBook5HowTo1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"(L) How To Action Pg 1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"(L) How To Action Pg 1\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook5HowTo1\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\nAG(4)\n\tITEM LONG 0xC0000006\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToActors07 __HELP_SYMBOL( STN \"kidHowToActors07\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToActors11 __HELP_SYMBOL( STN \"kidHowToActors11\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToActors09 __HELP_SYMBOL( STN \"kidHowToActors09\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 6 LONG kidHowToActors12 __HELP_SYMBOL( STN \"kidHowToActors12\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToActors06 __HELP_SYMBOL( STN \"kidHowToActors06\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToActors13 __HELP_SYMBOL( STN \"kidHowToActors13\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // ' ???????' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x01    // '????3???' \n\t0x00 0x00 0x00 0x00 0x6E 0x00 0x00 0x01    // '????n???' \n\t0x01 0x00 0x00 0x00 0x01 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x21 0x01 0x00 0x01    // '????!???' \n\t0x01 0x00 0x00 0x00 0x4C 0x01 0x00 0x01    // '????L???' \n\t0x00 0x00 0x00 0x00 0x4C 0x01 0x00 0x02    // '????L???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x4C 0x01 0x00 0x03    // '???L???' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0x40    // '???????@' \n\t0x06 0x00 0x00 0x00 0x6E 0x00 0x00 0x40    // '????n??@' \n\t0x00 0x00 0x00 0x00 0x70 0x00 0x00 0x40    // '????p??@' \n\t0x02 0x00 0x00 0x00 0x85 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x87 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xC0 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC2 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xEF 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF1 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0x21 0x01 0x00 0x40    // '????!??@' \n\t0x00 0x00 0x00 0x00 0x23 0x01 0x00 0x40    // '????#??@' \n\t0x05 0x00 0x00 0x00 0x4C 0x01 0x00 0x40    // '????L??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x0B 0x00 0x00 0x82    // '???????' \n\t0x0F 0x00 0x00 0x00 0x23 0x01 0x00 0x82    // '????#??' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0xC0    // '????p??' \n\t0x01 0x00 0x00 0x00 0x87 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xC2 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xF1 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0x23 0x01 0x00 0xC0    // '????#??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x6E 0x69 0x6D 0x61 0x74    // '??Animat' \n\t0x69 0x6E 0x67 0x0D 0x0A 0x01 0x09 0x4D    // 'ing????M' \n\t0x61 0x6B 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'aking an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x6D 0x6F 0x76 0x65 0x97 0x61 0x73    // ' moveas' \n\t0x73 0x69 0x67 0x6E 0x69 0x6E 0x67 0x20    // 'signing ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x69 0x6F    // 'an actio' \n\t0x6E 0x2C 0x20 0x63 0x68 0x6F 0x6F 0x73    // 'n, choos' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x20 0x73    // 'action s' \n\t0x74 0x61 0x72 0x74 0x69 0x6E 0x67 0x20    // 'tarting ' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x0D 0x0A 0x01 0x09 0x43 0x68 0x61 0x6E    // '????Chan' \n\t0x67 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ging the' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x0D    // ' action?' \n\t0x0A 0x01 0x09 0x43 0x68 0x61 0x6E 0x67    // '???Chang' \n\t0x69 0x6E 0x67 0x20 0x77 0x68 0x65 0x6E    // 'ing when' \n\t0x20 0x61 0x20 0x33 0x44 0x20 0x6F 0x62    // ' a 3D ob' \n\t0x6A 0x65 0x63 0x74 0x20 0x67 0x65 0x74    // 'ject get' \n\t0x73 0x20 0x74 0x6F 0x20 0x61 0x20 0x70    // 's to a p' \n\t0x61 0x72 0x74 0x69 0x63 0x75 0x6C 0x61    // 'articula' \n\t0x72 0x20 0x6C 0x6F 0x63 0x61 0x74 0x69    // 'r locati' \n\t0x6F 0x6E 0x0D 0x0A 0x01 0x09 0x43 0x6F    // 'on????Co' \n\t0x6E 0x74 0x69 0x6E 0x75 0x69 0x6E 0x67    // 'ntinuing' \n\t0x20 0x74 0x68 0x65 0x20 0x6C 0x61 0x73    // ' the las' \n\t0x74 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 't action' \n\t0x20 0x61 0x20 0x33 0x44 0x20 0x6F 0x62    // ' a 3D ob' \n\t0x6A 0x65 0x63 0x74 0x20 0x75 0x73 0x65    // 'ject use' \n\t0x64 0x0D 0x0A 0x01 0x09 0x43 0x6F 0x70    // 'd????Cop' \n\t0x79 0x69 0x6E 0x67 0x20 0x61 0x20 0x70    // 'ying a p' \n\t0x61 0x74 0x68 0x97 0x6D 0x61 0x6B 0x69    // 'athmaki' \n\t0x6E 0x67 0x20 0x61 0x63 0x74 0x6F 0x72    // 'ng actor' \n\t0x73 0x20 0x66 0x6F 0x6C 0x6C 0x6F 0x77    // 's follow' \n\t0x20 0x65 0x61 0x63 0x68 0x20 0x6F 0x74    // ' each ot' \n\t0x68 0x65 0x72 0x0D 0x0A 0x01 0x09 0x4D    // 'her????M' \n\t0x61 0x6B 0x69 0x6E 0x67 0x20 0x74 0x77    // 'aking tw' \n\t0x6F 0x20 0x61 0x63 0x74 0x6F 0x72 0x73    // 'o actors' \n\t0x20 0x6D 0x65 0x65 0x74 0x20 0x61 0x74    // ' meet at' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x61 0x6D    // ' the sam' \n\t0x65 0x20 0x73 0x70 0x6F 0x74              // 'e spot' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= ktpcBook6HowTo1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"(L) How To Sound Pg 1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"(L) How To Sound Pg 1\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook6HowTo1\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0xC0000006\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToSounds02 __HELP_SYMBOL( STN \"kidHowToSounds02\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToSounds03 __HELP_SYMBOL( STN \"kidHowToSounds03\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToSounds04 __HELP_SYMBOL( STN \"kidHowToSounds04\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToSounds05 __HELP_SYMBOL( STN \"kidHowToSounds05\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToSounds01 __HELP_SYMBOL( STN \"kidHowToSounds01\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 6 LONG kidHowToSounds06 __HELP_SYMBOL( STN \"kidHowToSounds06\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x2C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // ',???????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x01    // '????I???' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x01    // '????O???' \n\t0x00 0x00 0x00 0x00 0x7F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x84 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA1 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xAA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xAE 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xC2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xC6 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xCD 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x0C 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xA1 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xAA 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xEE 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x40    // '???????@' \n\t0x07 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x00 0x00 0x00 0x00 0x47 0x00 0x00 0x40    // '????G??@' \n\t0x02 0x00 0x00 0x00 0x7B 0x00 0x00 0x40    // '????{??@' \n\t0x00 0x00 0x00 0x00 0x7D 0x00 0x00 0x40    // '????}??@' \n\t0x03 0x00 0x00 0x00 0x9F 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xAC 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xC2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC4 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xEA 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0x38 0x01 0x00 0x40    // '????8??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x3A 0x01 0x00 0x80    // '????:??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0xEC 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x47 0x00 0x00 0xC0    // '????G??' \n\t0x01 0x00 0x00 0x00 0x7D 0x00 0x00 0xC0    // '????}??' \n\t0x01 0x00 0x00 0x00 0xAC 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xC4 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xEC 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x6F 0x6F 0x73 0x69    // '??Choosi' \n\t0x6E 0x67 0x0D 0x0A 0x01 0x09 0x53 0x6F    // 'ng????So' \n\t0x75 0x6E 0x64 0x20 0x45 0x66 0x66 0x65    // 'und Effe' \n\t0x63 0x74 0x73 0x97 0x63 0x68 0x6F 0x6F    // 'ctschoo' \n\t0x73 0x65 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'se from ' \n\t0x61 0x20 0x6C 0x69 0x73 0x74 0x2C 0x20    // 'a list, ' \n\t0x72 0x65 0x63 0x6F 0x72 0x64 0x20 0x79    // 'record y' \n\t0x6F 0x75 0x72 0x20 0x6F 0x77 0x6E 0x2C    // 'our own,' \n\t0x20 0x69 0x6D 0x70 0x6F 0x72 0x74 0x0D    // ' import?' \n\t0x0A 0x01 0x09 0x53 0x70 0x65 0x65 0x63    // '???Speec' \n\t0x68 0x97 0x63 0x68 0x6F 0x6F 0x73 0x65    // 'hchoose' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x61 0x20    // ' from a ' \n\t0x6C 0x69 0x73 0x74 0x2C 0x20 0x72 0x65    // 'list, re' \n\t0x63 0x6F 0x72 0x64 0x20 0x79 0x6F 0x75    // 'cord you' \n\t0x72 0x20 0x6F 0x77 0x6E 0x2C 0x20 0x69    // 'r own, i' \n\t0x6D 0x70 0x6F 0x72 0x74 0x0D 0x0A 0x01    // 'mport???' \n\t0x09 0x4D 0x75 0x73 0x69 0x63 0x97 0x63    // '?Musicc' \n\t0x68 0x6F 0x6F 0x73 0x65 0x20 0x66 0x72    // 'hoose fr' \n\t0x6F 0x6D 0x20 0x61 0x20 0x6C 0x69 0x73    // 'om a lis' \n\t0x74 0x2C 0x20 0x69 0x6D 0x70 0x6F 0x72    // 't, impor' \n\t0x74 0x0D 0x0A 0x41 0x74 0x74 0x61 0x63    // 't??Attac' \n\t0x68 0x69 0x6E 0x67 0x0D 0x0A 0x01 0x09    // 'hing????' \n\t0x50 0x6C 0x61 0x79 0x69 0x6E 0x67 0x20    // 'Playing ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64 0x20    // 'a sound ' \n\t0x6F 0x6E 0x63 0x65 0x0D 0x0A 0x01 0x09    // 'once????' \n\t0x4C 0x6F 0x6F 0x70 0x69 0x6E 0x67 0x97    // 'Looping' \n\t0x70 0x6C 0x61 0x79 0x69 0x6E 0x67 0x20    // 'playing ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64 0x20    // 'a sound ' \n\t0x63 0x6F 0x6E 0x74 0x69 0x6E 0x75 0x6F    // 'continuo' \n\t0x75 0x73 0x6C 0x79 0x0D 0x0A 0x01 0x09    // 'usly????' \n\t0x41 0x74 0x74 0x61 0x63 0x68 0x69 0x6E    // 'Attachin' \n\t0x67 0x20 0x61 0x20 0x73 0x6F 0x75 0x6E    // 'g a soun' \n\t0x64 0x20 0x74 0x6F 0x20 0x61 0x6E 0x20    // 'd to an ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x97 0x6D    // 'actionm' \n\t0x61 0x74 0x63 0x68 0x20 0x61 0x20 0x73    // 'atch a s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F 0x20    // 'ound to ' \n\t0x74 0x68 0x65 0x20 0x63 0x75 0x72 0x72    // 'the curr' \n\t0x65 0x6E 0x74 0x20 0x61 0x63 0x74 0x69    // 'ent acti' \n\t0x6F 0x6E 0x20 0x70 0x6F 0x73 0x74 0x69    // 'on posti' \n\t0x6F 0x6E 0x0D 0x0A                        // 'on??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= ktpcBook6HowTo2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"(L) How To Sound Pg 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"(L) How To Sound Pg 2\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook6HowTo2\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_10=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\nAG(4)\n\tITEM LONG 0xC0000005\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToSounds10 __HELP_SYMBOL( STN \"kidHowToSounds10\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToSounds08 __HELP_SYMBOL( STN \"kidHowToSounds08\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToSounds07 __HELP_SYMBOL( STN \"kidHowToSounds07\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToSounds08 __HELP_SYMBOL( STN \"kidHowToSounds08\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToSounds12 __HELP_SYMBOL( STN \"kidHowToSounds12\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x29 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // ')???????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x01    // '????F???' \n\t0x00 0x00 0x00 0x00 0x6E 0x00 0x00 0x01    // '????n???' \n\t0x01 0x00 0x00 0x00 0x75 0x00 0x00 0x01    // '????u???' \n\t0x00 0x00 0x00 0x00 0x77 0x00 0x00 0x01    // '????w???' \n\t0x01 0x00 0x00 0x00 0xAE 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xE4 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x0D 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x2C 0x01 0x00 0x01    // '????,???' \n\t0x01 0x00 0x00 0x00 0x43 0x01 0x00 0x01    // '????C???' \n\t0x00 0x00 0x00 0x00 0x64 0x01 0x00 0x01    // '????d???' \n\t0x01 0x00 0x00 0x00 0x74 0x01 0x00 0x01    // '????t???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x16 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x6E 0x00 0x00 0x03    // '????n???' \n\t0x0A 0x00 0x00 0xFD 0x75 0x00 0x00 0x03    // '???u???' \n\t0x00 0x00 0x00 0x00 0x77 0x00 0x00 0x03    // '????w???' \n\t0x0A 0x00 0x00 0xFD 0x79 0x00 0x00 0x03    // '???y???' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x6C 0x00 0x00 0x40    // '????l??@' \n\t0x00 0x00 0x00 0x00 0x77 0x00 0x00 0x40    // '????w??@' \n\t0x04 0x00 0x00 0x00 0xE0 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE2 0x00 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0x28 0x01 0x00 0x40    // '????(??@' \n\t0x00 0x00 0x00 0x00 0x2A 0x01 0x00 0x40    // '????*??@' \n\t0x03 0x00 0x00 0x00 0x60 0x01 0x00 0x40    // '????`??@' \n\t0x00 0x00 0x00 0x00 0x62 0x01 0x00 0x40    // '????b??@' \n\t0x07 0x00 0x00 0x00 0x74 0x01 0x00 0x40    // '????t??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x62 0x01 0x00 0x82    // '????b??' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x77 0x00 0x00 0xC0    // '????w??' \n\t0x01 0x00 0x00 0x00 0xE2 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0x2A 0x01 0x00 0xC0    // '????*??' \n\t0x01 0x00 0x00 0x00 0x62 0x01 0x00 0xC0    // '????b??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x74 0x74 0x61 0x63 0x68    // '??Attach' \n\t0x69 0x6E 0x67 0x20 0x63 0x6F 0x6E 0x74    // 'ing cont' \n\t0x69 0x6E 0x75 0x65 0x64 0x2E 0x2E 0x2E    // 'inued...' \n\t0x0D 0x0A 0x01 0x09 0x41 0x74 0x74 0x61    // '????Atta' \n\t0x63 0x68 0x69 0x6E 0x67 0x20 0x61 0x20    // 'ching a ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x61 0x6E    // 'sound an' \n\t0x64 0x20 0x63 0x68 0x61 0x69 0x6E 0x69    // 'd chaini' \n\t0x6E 0x67 0x20 0x69 0x74 0x20 0x74 0x6F    // 'ng it to' \n\t0x20 0x61 0x6E 0x6F 0x74 0x68 0x65 0x72    // ' another' \n\t0x20 0x73 0x6F 0x20 0x74 0x68 0x61 0x74    // ' so that' \n\t0x20 0x74 0x68 0x65 0x79 0x20 0x70 0x6C    // ' they pl' \n\t0x61 0x79 0x20 0x6F 0x6E 0x65 0x20 0x61    // 'ay one a' \n\t0x66 0x74 0x65 0x72 0x20 0x74 0x68 0x65    // 'fter the' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x0D 0x0A    // ' other??' \n\t0x45 0x64 0x69 0x74 0x69 0x6E 0x67 0x0D    // 'Editing?' \n\t0x0A 0x01 0x09 0x41 0x64 0x6A 0x75 0x73    // '???Adjus' \n\t0x74 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ting the' \n\t0x20 0x76 0x6F 0x6C 0x75 0x6D 0x65 0x20    // ' volume ' \n\t0x66 0x6F 0x72 0x20 0x61 0x6C 0x6C 0x20    // 'for all ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x73 0x20 0x69    // 'sounds i' \n\t0x6E 0x20 0x33 0x44 0x20 0x4D 0x6F 0x76    // 'n 3D Mov' \n\t0x69 0x65 0x20 0x4D 0x61 0x6B 0x65 0x72    // 'ie Maker' \n\t0x97 0x6D 0x6F 0x76 0x69 0x65 0x20 0x73    // 'movie s' \n\t0x6F 0x75 0x6E 0x64 0x73 0x2C 0x20 0x74    // 'ounds, t' \n\t0x6F 0x6F 0x6C 0x73 0x2C 0x20 0x4D 0x63    // 'ools, Mc' \n\t0x5A 0x65 0x65 0x27 0x73 0x20 0x61 0x6E    // 'Zee's an' \n\t0x64 0x20 0x4D 0x65 0x6C 0x61 0x6E 0x69    // 'd Melani' \n\t0x65 0x27 0x73 0x20 0x76 0x6F 0x69 0x63    // 'e's voic' \n\t0x65 0x73 0x0D 0x0A 0x01 0x09 0x41 0x64    // 'es????Ad' \n\t0x6A 0x75 0x73 0x74 0x69 0x6E 0x67 0x20    // 'justing ' \n\t0x74 0x68 0x65 0x20 0x76 0x6F 0x6C 0x75    // 'the volu' \n\t0x6D 0x65 0x20 0x6F 0x66 0x20 0x69 0x6E    // 'me of in' \n\t0x64 0x69 0x76 0x69 0x64 0x75 0x61 0x6C    // 'dividual' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x73 0x20    // ' sounds ' \n\t0x74 0x68 0x61 0x74 0x20 0x70 0x6C 0x61    // 'that pla' \n\t0x79 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 'y at the' \n\t0x20 0x73 0x61 0x6D 0x65 0x20 0x74 0x69    // ' same ti' \n\t0x6D 0x65 0x0D 0x0A 0x01 0x09 0x4C 0x69    // 'me????Li' \n\t0x73 0x74 0x65 0x6E 0x69 0x6E 0x67 0x20    // 'stening ' \n\t0x74 0x6F 0x20 0x61 0x6C 0x6C 0x20 0x73    // 'to all s' \n\t0x6F 0x75 0x6E 0x64 0x73 0x20 0x61 0x74    // 'ounds at' \n\t0x74 0x61 0x63 0x68 0x65 0x64 0x20 0x74    // 'tached t' \n\t0x6F 0x20 0x61 0x20 0x73 0x70 0x65 0x63    // 'o a spec' \n\t0x69 0x66 0x69 0x63 0x20 0x66 0x72 0x61    // 'ific fra' \n\t0x6D 0x65 0x0D 0x0A 0x01 0x09 0x52 0x65    // 'me????Re' \n\t0x6D 0x6F 0x76 0x69 0x6E 0x67 0x20 0x61    // 'moving a' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64              // ' sound' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= ktpcBook6HowTo3\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"(L) How To Sound Pg 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"(L) How To Sound Pg 3\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook6HowTo3\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\nAG(4)\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToScenes14 __HELP_SYMBOL( STN \"kidHowToScenes14\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToSounds11 __HELP_SYMBOL( STN \"kidHowToSounds11\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToScenes04 __HELP_SYMBOL( STN \"kidHowToScenes04\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToSounds09 __HELP_SYMBOL( STN \"kidHowToSounds09\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00 0x70 0x00 0x00 0x01    // '????p???' \n\t0x01 0x00 0x00 0x00 0xDD 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xB7 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xC8 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x6C 0x00 0x00 0x40    // '????l??@' \n\t0x00 0x00 0x00 0x00 0x6E 0x00 0x00 0x40    // '????n??@' \n\t0x06 0x00 0x00 0x00 0x90 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x92 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xB5 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xCA 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xDD 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0xCA 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x6E 0x00 0x00 0xC0    // '????n??' \n\t0x01 0x00 0x00 0x00 0x92 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xCA 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x45 0x64 0x69 0x74 0x69 0x6E    // '??Editin' \n\t0x67 0x20 0x63 0x6F 0x6E 0x74 0x69 0x6E    // 'g contin' \n\t0x75 0x65 0x64 0x2E 0x2E 0x2E 0x0D 0x0A    // 'ued...??' \n\t0x01 0x20 0x09 0x53 0x74 0x6F 0x70 0x70    // '? ?Stopp' \n\t0x69 0x6E 0x67 0x20 0x61 0x20 0x73 0x6F    // 'ing a so' \n\t0x75 0x6E 0x64 0x97 0x63 0x75 0x74 0x74    // 'undcutt' \n\t0x69 0x6E 0x67 0x20 0x6F 0x66 0x66 0x20    // 'ing off ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64 0x20    // 'a sound ' \n\t0x65 0x66 0x66 0x65 0x63 0x74 0x20 0x6F    // 'effect o' \n\t0x72 0x20 0x6D 0x75 0x73 0x69 0x63 0x20    // 'r music ' \n\t0x62 0x65 0x66 0x6F 0x72 0x65 0x20 0x69    // 'before i' \n\t0x74 0x20 0x68 0x61 0x73 0x20 0x66 0x69    // 't has fi' \n\t0x6E 0x69 0x73 0x68 0x65 0x64 0x20 0x70    // 'nished p' \n\t0x6C 0x61 0x79 0x69 0x6E 0x67 0x0D 0x0A    // 'laying??' \n\t0x01 0x09 0x54 0x75 0x72 0x6E 0x69 0x6E    // '??Turnin' \n\t0x67 0x20 0x4D 0x63 0x5A 0x65 0x65 0x92    // 'g McZee' \n\t0x73 0x20 0x76 0x6F 0x69 0x63 0x65 0x20    // 's voice ' \n\t0x6F 0x6E 0x20 0x61 0x6E 0x64 0x20 0x6F    // 'on and o' \n\t0x66 0x66 0x0D 0x0A 0x01 0x09 0x57 0x61    // 'ff????Wa' \n\t0x69 0x74 0x69 0x6E 0x67 0x20 0x75 0x6E    // 'iting un' \n\t0x74 0x69 0x6C 0x20 0x61 0x20 0x73 0x6F    // 'til a so' \n\t0x75 0x6E 0x64 0x20 0x69 0x73 0x20 0x66    // 'und is f' \n\t0x69 0x6E 0x69 0x73 0x68 0x65 0x64 0x0D    // 'inished?' \n\t0x0A 0x55 0x6E 0x64 0x6F 0x69 0x6E 0x67    // '?Undoing' \n\t0x20 0x26 0x20 0x72 0x65 0x64 0x6F 0x69    // ' & redoi' \n\t0x6E 0x67 0x0D 0x0A 0x01 0x09 0x55 0x6E    // 'ng????Un' \n\t0x64 0x6F 0x69 0x6E 0x67 0x20 0x26 0x20    // 'doing & ' \n\t0x72 0x65 0x64 0x6F 0x69 0x6E 0x67         // 'redoing' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= ktpcBook7HowTo1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"(L) How To Words Pg 1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"(L) How To Words Pg 1\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook7HowTo1\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000006\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToWords12 __HELP_SYMBOL( STN \"kidHowToWords12\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToWords13 __HELP_SYMBOL( STN \"kidHowToWords13\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToWords14 __HELP_SYMBOL( STN \"kidHowToWords14\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToWords01 __HELP_SYMBOL( STN \"kidHowToWords01\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToWords11 __HELP_SYMBOL( STN \"kidHowToWords11\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToWords10 __HELP_SYMBOL( STN \"kidHowToWords10\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x01 0x00 0x00 0x00 0x51 0x00 0x00 0x01    // '????Q???' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x01    // '????r???' \n\t0x01 0x00 0x00 0x00 0x14 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x03    // '????:???' \n\t0x0A 0x00 0x00 0xFD 0x43 0x00 0x00 0x03    // '???C???' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x40    // '???????@' \n\t0x07 0x00 0x00 0x00 0x38 0x00 0x00 0x40    // '????8??@' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x40    // '????C??@' \n\t0x09 0x00 0x00 0x00 0x72 0x00 0x00 0x40    // '????r??@' \n\t0x00 0x00 0x00 0x00 0x74 0x00 0x00 0x40    // '????t??@' \n\t0x08 0x00 0x00 0x00 0x9B 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x9D 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xC3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC5 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xEC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xEE 0x00 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0x14 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0F 0x00 0x00 0x00 0xEE 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0xC0    // '????C??' \n\t0x01 0x00 0x00 0x00 0x74 0x00 0x00 0xC0    // '????t??' \n\t0x01 0x00 0x00 0x00 0x9D 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xC5 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xEE 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x64 0x64 0x69 0x6E 0x67    // '??Adding' \n\t0x0D 0x0A 0x01 0x09 0x43 0x72 0x65 0x61    // '????Crea' \n\t0x74 0x69 0x6E 0x67 0x20 0x61 0x20 0x77    // 'ting a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x97    // 'ord box' \n\t0x74 0x79 0x70 0x65 0x20 0x79 0x6F 0x75    // 'type you' \n\t0x72 0x20 0x73 0x74 0x6F 0x72 0x79 0x20    // 'r story ' \n\t0x6F 0x72 0x20 0x63 0x72 0x65 0x64 0x69    // 'or credi' \n\t0x74 0x73 0x0D 0x0A 0x45 0x64 0x69 0x74    // 'ts??Edit' \n\t0x69 0x6E 0x67 0x0D 0x0A 0x01 0x09 0x54    // 'ing????T' \n\t0x79 0x70 0x69 0x6E 0x67 0x20 0x68 0x69    // 'yping hi' \n\t0x6E 0x74 0x73 0x97 0x77 0x68 0x61 0x74    // 'ntswhat' \n\t0x20 0x74 0x6F 0x20 0x64 0x6F 0x20 0x69    // ' to do i' \n\t0x66 0x20 0x79 0x6F 0x75 0x20 0x6D 0x61    // 'f you ma' \n\t0x6B 0x65 0x20 0x61 0x20 0x6D 0x69 0x73    // 'ke a mis' \n\t0x74 0x61 0x6B 0x65 0x0D 0x0A 0x01 0x09    // 'take????' \n\t0x43 0x6F 0x70 0x79 0x69 0x6E 0x67 0x20    // 'Copying ' \n\t0x26 0x20 0x70 0x61 0x73 0x74 0x69 0x6E    // '& pastin' \n\t0x67 0x20 0x77 0x6F 0x72 0x64 0x73 0x20    // 'g words ' \n\t0x69 0x6E 0x20 0x61 0x20 0x77 0x6F 0x72    // 'in a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x0D 0x0A 0x01    // 'd box???' \n\t0x09 0x43 0x6F 0x70 0x79 0x69 0x6E 0x67    // '?Copying' \n\t0x20 0x26 0x20 0x70 0x61 0x73 0x74 0x69    // ' & pasti' \n\t0x6E 0x67 0x20 0x61 0x6E 0x20 0x65 0x6E    // 'ng an en' \n\t0x74 0x69 0x72 0x65 0x20 0x77 0x6F 0x72    // 'tire wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x0D 0x0A 0x01    // 'd box???' \n\t0x09 0x43 0x75 0x74 0x74 0x69 0x6E 0x67    // '?Cutting' \n\t0x20 0x26 0x20 0x70 0x61 0x73 0x74 0x69    // ' & pasti' \n\t0x6E 0x67 0x20 0x77 0x6F 0x72 0x64 0x73    // 'ng words' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x77 0x6F    // ' in a wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x0D 0x0A    // 'rd box??' \n\t0x01 0x09 0x43 0x75 0x74 0x74 0x69 0x6E    // '??Cuttin' \n\t0x67 0x20 0x26 0x20 0x70 0x61 0x73 0x74    // 'g & past' \n\t0x69 0x6E 0x67 0x20 0x61 0x6E 0x20 0x65    // 'ing an e' \n\t0x6E 0x74 0x69 0x72 0x65 0x20 0x77 0x6F    // 'ntire wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78              // 'rd box' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= ktpcBook7HowTo2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"(L) How To Words Pg 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"(L) How To Words Pg 2\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook7HowTo2\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\nAG(4)\n\tITEM LONG 0xC0000005\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToWords04 __HELP_SYMBOL( STN \"kidHowToWords04\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToWords02 __HELP_SYMBOL( STN \"kidHowToWords02\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToWords05 __HELP_SYMBOL( STN \"kidHowToWords05\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToWords15 __HELP_SYMBOL( STN \"kidHowToWords15\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToWords03 __HELP_SYMBOL( STN \"kidHowToWords03\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8C 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x9B 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x16 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0x03    // '????D???' \n\t0x0A 0x00 0x00 0xFD 0x57 0x00 0x00 0x03    // '???W???' \n\t0x00 0x00 0x00 0x00 0xB7 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xB9 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xD2 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x40    // '???????@' \n\t0x06 0x00 0x00 0x00 0x42 0x00 0x00 0x40    // '????B??@' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0x40    // '????W??@' \n\t0x03 0x00 0x00 0x00 0x76 0x00 0x00 0x40    // '????v??@' \n\t0x00 0x00 0x00 0x00 0x78 0x00 0x00 0x40    // '????x??@' \n\t0x07 0x00 0x00 0x00 0x99 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x9B 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xB5 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xB7 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xD2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0F 0x00 0x00 0x00 0xB7 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x57 0x00 0x00 0xC0    // '????W??' \n\t0x01 0x00 0x00 0x00 0x78 0x00 0x00 0xC0    // '????x??' \n\t0x01 0x00 0x00 0x00 0x9B 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xB7 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x45 0x64 0x69 0x74 0x69 0x6E    // '??Editin' \n\t0x67 0x20 0x63 0x6F 0x6E 0x74 0x69 0x6E    // 'g contin' \n\t0x75 0x65 0x64 0x2E 0x2E 0x2E 0x0D 0x0A    // 'ued...??' \n\t0x01 0x09 0x52 0x65 0x6D 0x6F 0x76 0x69    // '??Removi' \n\t0x6E 0x67 0x20 0x61 0x20 0x77 0x6F 0x72    // 'ng a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x20 0x66 0x72    // 'd box fr' \n\t0x6F 0x6D 0x20 0x74 0x68 0x65 0x20 0x63    // 'om the c' \n\t0x75 0x72 0x72 0x65 0x6E 0x74 0x20 0x73    // 'urrent s' \n\t0x63 0x65 0x6E 0x65 0x0D 0x0A 0x43 0x68    // 'cene??Ch' \n\t0x61 0x6E 0x67 0x69 0x6E 0x67 0x20 0x74    // 'anging t' \n\t0x68 0x65 0x20 0x6C 0x6F 0x6F 0x6B 0x0D    // 'he look?' \n\t0x0A 0x01 0x09 0x43 0x68 0x61 0x6E 0x67    // '???Chang' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x77 0x61 0x79 0x20 0x6C 0x65 0x74 0x74    // 'way lett' \n\t0x65 0x72 0x73 0x20 0x6C 0x6F 0x6F 0x6B    // 'ers look' \n\t0x0D 0x0A 0x01 0x09 0x43 0x68 0x61 0x6E    // '????Chan' \n\t0x67 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ging the' \n\t0x20 0x73 0x74 0x79 0x6C 0x65 0x97 0x62    // ' styleb' \n\t0x6F 0x6C 0x64 0x2C 0x20 0x69 0x74 0x61    // 'old, ita' \n\t0x6C 0x69 0x63 0x0D 0x0A 0x01 0x09 0x43    // 'lic????C' \n\t0x68 0x61 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'hanging ' \n\t0x74 0x68 0x65 0x20 0x6C 0x65 0x74 0x74    // 'the lett' \n\t0x65 0x72 0x20 0x73 0x69 0x7A 0x65 0x0D    // 'er size?' \n\t0x0A 0x01 0x09 0x43 0x68 0x61 0x6E 0x67    // '???Chang' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x6C 0x65 0x74 0x74 0x65 0x72 0x20 0x63    // 'letter c' \n\t0x6F 0x6C 0x6F 0x72                        // 'olor' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= ktpcBook7HowTo3\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"(L) How To Words Pg 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"(L) How To Words Pg 3\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook7HowTo3\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tITEM LONG 0xC0000005\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToWords09 __HELP_SYMBOL( STN \"kidHowToWords09\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToWords06 __HELP_SYMBOL( STN \"kidHowToWords06\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToWords07 __HELP_SYMBOL( STN \"kidHowToWords07\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToWords08 __HELP_SYMBOL( STN \"kidHowToWords08\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToScenes14 __HELP_SYMBOL( STN \"kidHowToScenes14\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xC2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x17 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x03    // '????6???' \n\t0x0A 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x03    // '????K???' \n\t0x0A 0x00 0x00 0xFD 0x4D 0x00 0x00 0x03    // '???M???' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x03    // '????b???' \n\t0x0A 0x00 0x00 0xFD 0x64 0x00 0x00 0x03    // '???d???' \n\t0x00 0x00 0x00 0x00 0x9C 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xB1 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x40    // '???????@' \n\t0x07 0x00 0x00 0x00 0x34 0x00 0x00 0x40    // '????4??@' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x40    // '????6??@' \n\t0x08 0x00 0x00 0x00 0x49 0x00 0x00 0x40    // '????I??@' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x40    // '????K??@' \n\t0x09 0x00 0x00 0x00 0x60 0x00 0x00 0x40    // '????`??@' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x40    // '????b??@' \n\t0x04 0x00 0x00 0x00 0x9A 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xAF 0x00 0x00 0x40    // '??????@' \n\t0x0A 0x00 0x00 0x00 0xC2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0F 0x00 0x00 0x00 0xAF 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0xC0    // '????6??' \n\t0x01 0x00 0x00 0x00 0x4B 0x00 0x00 0xC0    // '????K??' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0xC0    // '????b??' \n\t0x01 0x00 0x00 0x00 0xAF 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x61 0x20 0x77 0x6F 0x72    // 'ng a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x0D 0x0A 0x01    // 'd box???' \n\t0x09 0x43 0x68 0x61 0x6E 0x67 0x69 0x6E    // '?Changin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x62 0x61    // 'g the ba' \n\t0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'ckground' \n\t0x20 0x63 0x6F 0x6C 0x6F 0x72 0x0D 0x0A    // ' color??' \n\t0x01 0x09 0x4D 0x6F 0x76 0x69 0x6E 0x67    // '??Moving' \n\t0x20 0x61 0x20 0x77 0x6F 0x72 0x64 0x20    // ' a word ' \n\t0x62 0x6F 0x78 0x0D 0x0A 0x01 0x09 0x52    // 'box????R' \n\t0x65 0x73 0x69 0x7A 0x69 0x6E 0x67 0x20    // 'esizing ' \n\t0x61 0x20 0x77 0x6F 0x72 0x64 0x20 0x62    // 'a word b' \n\t0x6F 0x78 0x0D 0x0A 0x01 0x09 0x43 0x68    // 'ox????Ch' \n\t0x61 0x6E 0x67 0x69 0x6E 0x67 0x20 0x61    // 'anging a' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x20 0x73 0x6F 0x20 0x74 0x68 0x61    // 'x so tha' \n\t0x74 0x20 0x77 0x6F 0x72 0x64 0x73 0x20    // 't words ' \n\t0x73 0x63 0x72 0x6F 0x6C 0x6C 0x20 0x6F    // 'scroll o' \n\t0x72 0x20 0x73 0x74 0x61 0x79 0x20 0x73    // 'r stay s' \n\t0x74 0x69 0x6C 0x6C 0x0D 0x0A 0x55 0x6E    // 'till??Un' \n\t0x64 0x6F 0x69 0x6E 0x67 0x20 0x26 0x20    // 'doing & ' \n\t0x72 0x65 0x64 0x6F 0x69 0x6E 0x67 0x0D    // 'redoing?' \n\t0x0A 0x01 0x09 0x55 0x6E 0x64 0x6F 0x69    // '???Undoi' \n\t0x6E 0x67 0x20 0x26 0x20 0x72 0x65 0x64    // 'ng & red' \n\t0x6F 0x69 0x6E 0x67                        // 'oing' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_19= ktpcBook8HowTo1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"(L) How To Edit Pg 1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"(L) How To Edit Pg 1\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook8HowTo1\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_11=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToScenes15 __HELP_SYMBOL( STN \"kidHowToScenes15\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToScenes14 __HELP_SYMBOL( STN \"kidHowToScenes14\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToScenes08 __HELP_SYMBOL( STN \"kidHowToScenes08\" )\n\tITEM LONG 0xC0000006\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToScenes09 __HELP_SYMBOL( STN \"kidHowToScenes09\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 6 LONG kidHowToScenes13 __HELP_SYMBOL( STN \"kidHowToScenes13\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToScenes06 __HELP_SYMBOL( STN \"kidHowToScenes06\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x30 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '0???????' \n\t0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x01    // '????:???' \n\t0x01 0x00 0x00 0x00 0x7F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xB9 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xED 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xEF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xF1 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x1A 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x82 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xB7 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xB8 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xDB 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xF0 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x1A 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x18 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x03    // '????Q???' \n\t0x0A 0x00 0x00 0xFD 0x66 0x00 0x00 0x03    // '???f???' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x03    // '????y???' \n\t0x0A 0x00 0x00 0xFD 0x7F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0x40    // '???????@' \n\t0x05 0x00 0x00 0x00 0x36 0x00 0x00 0x40    // '????6??@' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x40    // '????8??@' \n\t0x07 0x00 0x00 0x00 0x4F 0x00 0x00 0x40    // '????O??@' \n\t0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x40    // '????d??@' \n\t0x03 0x00 0x00 0x00 0x77 0x00 0x00 0x40    // '????w??@' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xB5 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xB7 0x00 0x00 0x40    // '??????@' \n\t0x0A 0x00 0x00 0x00 0xED 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xEF 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0x1A 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0xEF 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0xC0    // '???????' \n\t0x06 0x00 0x00 0x00 0x38 0x00 0x00 0xC0    // '????8??' \n\t0x06 0x00 0x00 0x00 0x64 0x00 0x00 0xC0    // '????d??' \n\t0x06 0x00 0x00 0x00 0x81 0x00 0x00 0xC0    // '??????' \n\t0x06 0x00 0x00 0x00 0xB7 0x00 0x00 0xC0    // '??????' \n\t0x06 0x00 0x00 0x00 0xEF 0x00 0x00 0xC0    // '??????' \n\t0x06 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x6F 0x76 0x69 0x6E 0x67    // '??Moving' \n\t0x20 0x61 0x72 0x6F 0x75 0x6E 0x64 0x20    // ' around ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x0D 0x0A 0x01 0x09 0x4D 0x6F    // 'ie????Mo' \n\t0x76 0x69 0x6E 0x67 0x20 0x66 0x72 0x6F    // 'ving fro' \n\t0x6D 0x20 0x73 0x63 0x65 0x6E 0x65 0x20    // 'm scene ' \n\t0x74 0x6F 0x20 0x73 0x63 0x65 0x6E 0x65    // 'to scene' \n\t0x0D 0x0A 0x01 0x09 0x4D 0x6F 0x76 0x69    // '????Movi' \n\t0x6E 0x67 0x20 0x77 0x69 0x74 0x68 0x69    // 'ng withi' \n\t0x6E 0x20 0x61 0x20 0x73 0x63 0x65 0x6E    // 'n a scen' \n\t0x65 0x0D 0x0A 0x55 0x6E 0x64 0x6F 0x69    // 'e??Undoi' \n\t0x6E 0x67 0x20 0x26 0x20 0x72 0x65 0x64    // 'ng & red' \n\t0x6F 0x69 0x6E 0x67 0x0D 0x0A 0x01 0x09    // 'oing????' \n\t0x55 0x6E 0x64 0x6F 0x69 0x6E 0x67 0x20    // 'Undoing ' \n\t0x26 0x20 0x72 0x65 0x64 0x6F 0x69 0x6E    // '& redoin' \n\t0x67 0x0D 0x0A 0x53 0x63 0x65 0x6E 0x65    // 'g??Scene' \n\t0x73 0x0D 0x0A 0x01 0x09 0x41 0x64 0x64    // 's????Add' \n\t0x69 0x6E 0x67 0x20 0x61 0x20 0x74 0x72    // 'ing a tr' \n\t0x61 0x6E 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'ansition' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x62 0x65 0x67 0x69 0x6E 0x6E 0x69 0x6E    // 'beginnin' \n\t0x67 0x20 0x6F 0x66 0x20 0x79 0x6F 0x75    // 'g of you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x0D    // 'r movie?' \n\t0x0A 0x01 0x09 0x41 0x64 0x64 0x69 0x6E    // '???Addin' \n\t0x67 0x20 0x74 0x72 0x61 0x6E 0x73 0x69    // 'g transi' \n\t0x74 0x69 0x6F 0x6E 0x73 0x20 0x62 0x65    // 'tions be' \n\t0x74 0x77 0x65 0x65 0x6E 0x20 0x73 0x63    // 'tween sc' \n\t0x65 0x6E 0x65 0x73 0x97 0x63 0x75 0x74    // 'enescut' \n\t0x73 0x20 0x61 0x6E 0x64 0x20 0x64 0x69    // 's and di' \n\t0x73 0x73 0x6F 0x6C 0x76 0x65 0x73 0x0D    // 'ssolves?' \n\t0x0A 0x01 0x09 0x41 0x74 0x74 0x61 0x63    // '???Attac' \n\t0x68 0x69 0x6E 0x67 0x20 0x6F 0x6E 0x65    // 'hing one' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x74    // ' movie t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x65 0x6E    // 'o the en' \n\t0x64 0x20 0x6F 0x66 0x20 0x61 0x6E 0x6F    // 'd of ano' \n\t0x74 0x68 0x65 0x72                        // 'ther' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= ktpcBook8HowTo2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"(L) How To Edit Pg 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"(L) How To Edit Pg 2\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook8HowTo2\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 6 LONG kidHowToActors15 __HELP_SYMBOL( STN \"kidHowToActors15\" )\n\tFREE\n\tITEM LONG 0xC0000007\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToActors14 __HELP_SYMBOL( STN \"kidHowToActors14\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToScenes11 __HELP_SYMBOL( STN \"kidHowToScenes11\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 7 LONG kidHowToActors16 __HELP_SYMBOL( STN \"kidHowToActors16\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToScenes12 __HELP_SYMBOL( STN \"kidHowToScenes12\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToScenes07 __HELP_SYMBOL( STN \"kidHowToScenes07\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToScenes10 __HELP_SYMBOL( STN \"kidHowToScenes10\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x37 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '7???????' \n\t0x01 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x01    // '????3???' \n\t0x01 0x00 0x00 0x00 0x4C 0x00 0x00 0x01    // '????L???' \n\t0x00 0x00 0x00 0x00 0x6E 0x00 0x00 0x01    // '????n???' \n\t0x01 0x00 0x00 0x00 0x85 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA1 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xA3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA5 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xBA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xD9 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x05 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x2E 0x01 0x00 0x01    // '????.???' \n\t0x01 0x00 0x00 0x00 0x41 0x01 0x00 0x01    // '????A???' \n\t0x00 0x00 0x00 0x00 0x65 0x01 0x00 0x01    // '????e???' \n\t0x01 0x00 0x00 0x00 0x86 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x02    // '????1???' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x02    // '????2???' \n\t0x00 0x00 0x00 0x00 0x6C 0x00 0x00 0x02    // '????l???' \n\t0x01 0x00 0x00 0x00 0x6D 0x00 0x00 0x02    // '????m???' \n\t0x00 0x00 0x00 0x00 0xA3 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xA4 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xD9 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xF2 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x86 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x40    // '???????@' \n\t0x0A 0x00 0x00 0x00 0x2F 0x00 0x00 0x40    // '????/??@' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x40    // '????1??@' \n\t0x0B 0x00 0x00 0x00 0x6A 0x00 0x00 0x40    // '????j??@' \n\t0x00 0x00 0x00 0x00 0x6C 0x00 0x00 0x40    // '????l??@' \n\t0x06 0x00 0x00 0x00 0xA1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA3 0x00 0x00 0x40    // '??????@' \n\t0x09 0x00 0x00 0x00 0xD7 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF2 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0x2C 0x01 0x00 0x40    // '????,??@' \n\t0x00 0x00 0x00 0x00 0x2E 0x01 0x00 0x40    // '????.??@' \n\t0x02 0x00 0x00 0x00 0x63 0x01 0x00 0x40    // '????c??@' \n\t0x00 0x00 0x00 0x00 0x65 0x01 0x00 0x40    // '????e??@' \n\t0x08 0x00 0x00 0x00 0x86 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x65 0x01 0x00 0x82    // '????e??' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0xC0    // '???????' \n\t0x04 0x00 0x00 0x00 0x31 0x00 0x00 0xC0    // '????1??' \n\t0x04 0x00 0x00 0x00 0x6C 0x00 0x00 0xC0    // '????l??' \n\t0x04 0x00 0x00 0x00 0xA3 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00 0xF2 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00 0x2E 0x01 0x00 0xC0    // '????.??' \n\t0x04 0x00 0x00 0x00 0x65 0x01 0x00 0xC0    // '????e??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x63 0x65 0x6E 0x65 0x73    // '??Scenes' \n\t0x20 0x63 0x6F 0x6E 0x74 0x69 0x6E 0x75    // ' continu' \n\t0x65 0x64 0x2E 0x2E 0x2E 0x0D 0x0A 0x01    // 'ed...???' \n\t0x09 0x43 0x68 0x61 0x6E 0x67 0x69 0x6E    // '?Changin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x73 0x63    // 'g the sc' \n\t0x65 0x6E 0x65 0x20 0x6F 0x72 0x64 0x65    // 'ene orde' \n\t0x72 0x0D 0x0A 0x01 0x09 0x52 0x65 0x6D    // 'r????Rem' \n\t0x6F 0x76 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'oving an' \n\t0x20 0x65 0x6E 0x74 0x69 0x72 0x65 0x20    // ' entire ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x69 0x6E    // 'scene in' \n\t0x63 0x6C 0x75 0x64 0x69 0x6E 0x67 0x20    // 'cluding ' \n\t0x61 0x6C 0x6C 0x20 0x61 0x63 0x74 0x6F    // 'all acto' \n\t0x72 0x73 0x20 0x61 0x6E 0x64 0x20 0x70    // 'rs and p' \n\t0x72 0x6F 0x70 0x73 0x0D 0x0A 0x01 0x09    // 'rops????' \n\t0x52 0x65 0x6D 0x6F 0x76 0x69 0x6E 0x67    // 'Removing' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x73 0x20    // ' frames ' \n\t0x62 0x65 0x66 0x6F 0x72 0x65 0x20 0x74    // 'before t' \n\t0x68 0x65 0x20 0x63 0x75 0x72 0x72 0x65    // 'he curre' \n\t0x6E 0x74 0x20 0x66 0x72 0x61 0x6D 0x65    // 'nt frame' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x73 0x63    // ' in a sc' \n\t0x65 0x6E 0x65 0x0D 0x0A 0x01 0x09 0x52    // 'ene????R' \n\t0x65 0x6D 0x6F 0x76 0x69 0x6E 0x67 0x20    // 'emoving ' \n\t0x66 0x72 0x61 0x6D 0x65 0x73 0x20 0x61    // 'frames a' \n\t0x66 0x74 0x65 0x72 0x20 0x74 0x68 0x65    // 'fter the' \n\t0x20 0x63 0x75 0x72 0x72 0x65 0x6E 0x74    // ' current' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x69    // ' frame i' \n\t0x6E 0x20 0x61 0x20 0x73 0x63 0x65 0x6E    // 'n a scen' \n\t0x65 0x0D 0x0A 0x41 0x63 0x74 0x6F 0x72    // 'e??Actor' \n\t0x73 0x2C 0x20 0x70 0x72 0x6F 0x70 0x73    // 's, props' \n\t0x2C 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // ', 3D wor' \n\t0x64 0x73 0x0D 0x0A 0x01 0x09 0x43 0x6F    // 'ds????Co' \n\t0x70 0x79 0x69 0x6E 0x67 0x20 0x26 0x20    // 'pying & ' \n\t0x70 0x61 0x73 0x74 0x69 0x6E 0x67 0x97    // 'pasting' \n\t0x64 0x75 0x70 0x6C 0x69 0x63 0x61 0x74    // 'duplicat' \n\t0x69 0x6E 0x67 0x20 0x61 0x6E 0x20 0x61    // 'ing an a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x0D 0x0A    // 'D word??' \n\t0x01 0x09 0x43 0x75 0x74 0x74 0x69 0x6E    // '??Cuttin' \n\t0x67 0x20 0x26 0x20 0x70 0x61 0x73 0x74    // 'g & past' \n\t0x69 0x6E 0x67 0x97 0x6D 0x6F 0x76 0x69    // 'ingmovi' \n\t0x6E 0x67 0x20 0x61 0x6E 0x20 0x61 0x63    // 'ng an ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x0D 0x0A 0x01    // ' word???' \n\t0x09 0x52 0x65 0x6D 0x6F 0x76 0x69 0x6E    // '?Removin' \n\t0x67 0x20 0x66 0x72 0x6F 0x6D 0x20 0x74    // 'g from t' \n\t0x68 0x65 0x20 0x63 0x75 0x72 0x72 0x65    // 'he curre' \n\t0x6E 0x74 0x20 0x73 0x63 0x65 0x6E 0x65    // 'nt scene' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1B= ktpcBook8HowTo3\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"(L) How To Edit Pg 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"(L) How To Edit Pg 3\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook8HowTo3\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tITEM LONG 0xC0000006\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToSounds12 __HELP_SYMBOL( STN \"kidHowToSounds12\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToSounds11 __HELP_SYMBOL( STN \"kidHowToSounds11\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 6 LONG kidHowToSounds09 __HELP_SYMBOL( STN \"kidHowToSounds09\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToSounds07 __HELP_SYMBOL( STN \"kidHowToSounds07\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToSounds08 __HELP_SYMBOL( STN \"kidHowToSounds08\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToSounds08 __HELP_SYMBOL( STN \"kidHowToSounds08\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x23 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '#???????' \n\t0x01 0x00 0x00 0x00 0x3F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x75 0x00 0x00 0x01    // '????u???' \n\t0x01 0x00 0x00 0x00 0x9E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xBD 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD4 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xF5 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x07 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x09 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x60 0x01 0x00 0x01    // '????`???' \n\t0x01 0x00 0x00 0x00 0x80 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x40    // '???????@' \n\t0x06 0x00 0x00 0x00 0x71 0x00 0x00 0x40    // '????q??@' \n\t0x00 0x00 0x00 0x00 0x73 0x00 0x00 0x40    // '????s??@' \n\t0x07 0x00 0x00 0x00 0xB9 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xBB 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0xF1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF3 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0x05 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x07 0x01 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x5C 0x01 0x00 0x40    // '????\\??@' \n\t0x00 0x00 0x00 0x00 0x5E 0x01 0x00 0x40    // '????^??@' \n\t0x05 0x00 0x00 0x00 0x80 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x5E 0x01 0x00 0x82    // '????^??' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x73 0x00 0x00 0xC0    // '????s??' \n\t0x01 0x00 0x00 0x00 0xBB 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xF3 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0x07 0x01 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x5E 0x01 0x00 0xC0    // '????^??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x75 0x6E 0x64 0x73    // '??Sounds' \n\t0x0D 0x0A 0x01 0x09 0x41 0x64 0x6A 0x75    // '????Adju' \n\t0x73 0x74 0x69 0x6E 0x67 0x20 0x74 0x68    // 'sting th' \n\t0x65 0x20 0x76 0x6F 0x6C 0x75 0x6D 0x65    // 'e volume' \n\t0x20 0x66 0x6F 0x72 0x20 0x61 0x6C 0x6C    // ' for all' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x73 0x20    // ' sounds ' \n\t0x69 0x6E 0x20 0x33 0x44 0x20 0x4D 0x6F    // 'in 3D Mo' \n\t0x76 0x69 0x65 0x20 0x4D 0x61 0x6B 0x65    // 'vie Make' \n\t0x72 0x97 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'rmovie ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x73 0x2C 0x20    // 'sounds, ' \n\t0x74 0x6F 0x6F 0x6C 0x73 0x2C 0x20 0x4D    // 'tools, M' \n\t0x63 0x5A 0x65 0x65 0x27 0x73 0x20 0x61    // 'cZee's a' \n\t0x6E 0x64 0x20 0x4D 0x65 0x6C 0x61 0x6E    // 'nd Melan' \n\t0x69 0x65 0x27 0x73 0x20 0x76 0x6F 0x69    // 'ie's voi' \n\t0x63 0x65 0x73 0x0D 0x0A 0x01 0x09 0x41    // 'ces????A' \n\t0x64 0x6A 0x75 0x73 0x74 0x69 0x6E 0x67    // 'djusting' \n\t0x20 0x74 0x68 0x65 0x20 0x76 0x6F 0x6C    // ' the vol' \n\t0x75 0x6D 0x65 0x20 0x6F 0x66 0x20 0x69    // 'ume of i' \n\t0x6E 0x64 0x69 0x76 0x69 0x64 0x75 0x61    // 'ndividua' \n\t0x6C 0x20 0x73 0x6F 0x75 0x6E 0x64 0x73    // 'l sounds' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x70 0x6C    // ' that pl' \n\t0x61 0x79 0x20 0x61 0x74 0x20 0x74 0x68    // 'ay at th' \n\t0x65 0x20 0x73 0x61 0x6D 0x65 0x20 0x74    // 'e same t' \n\t0x69 0x6D 0x65 0x0D 0x0A 0x01 0x09 0x4C    // 'ime????L' \n\t0x69 0x73 0x74 0x65 0x6E 0x69 0x6E 0x67    // 'istening' \n\t0x20 0x74 0x6F 0x20 0x61 0x6C 0x6C 0x20    // ' to all ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x73 0x20 0x61    // 'sounds a' \n\t0x74 0x74 0x61 0x63 0x68 0x65 0x64 0x20    // 'ttached ' \n\t0x74 0x6F 0x20 0x61 0x20 0x73 0x70 0x65    // 'to a spe' \n\t0x63 0x69 0x66 0x69 0x63 0x20 0x66 0x72    // 'cific fr' \n\t0x61 0x6D 0x65 0x0D 0x0A 0x01 0x09 0x52    // 'ame????R' \n\t0x65 0x6D 0x6F 0x76 0x69 0x6E 0x67 0x20    // 'emoving ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64 0x0D    // 'a sound?' \n\t0x0A 0x01 0x09 0x53 0x74 0x6F 0x70 0x70    // '???Stopp' \n\t0x69 0x6E 0x67 0x20 0x61 0x20 0x73 0x6F    // 'ing a so' \n\t0x75 0x6E 0x64 0x97 0x63 0x75 0x74 0x74    // 'undcutt' \n\t0x69 0x6E 0x67 0x20 0x6F 0x66 0x66 0x20    // 'ing off ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64 0x20    // 'a sound ' \n\t0x65 0x66 0x66 0x65 0x63 0x74 0x20 0x6F    // 'effect o' \n\t0x72 0x20 0x6D 0x75 0x73 0x69 0x63 0x20    // 'r music ' \n\t0x62 0x65 0x66 0x6F 0x72 0x65 0x20 0x69    // 'before i' \n\t0x74 0x20 0x68 0x61 0x73 0x20 0x66 0x69    // 't has fi' \n\t0x6E 0x69 0x73 0x68 0x65 0x64 0x20 0x70    // 'nished p' \n\t0x6C 0x61 0x79 0x69 0x6E 0x67 0x0D 0x0A    // 'laying??' \n\t0x01 0x09 0x54 0x75 0x72 0x6E 0x69 0x6E    // '??Turnin' \n\t0x67 0x20 0x4D 0x63 0x5A 0x65 0x65 0x92    // 'g McZee' \n\t0x73 0x20 0x76 0x6F 0x69 0x63 0x65 0x20    // 's voice ' \n\t0x6F 0x6E 0x20 0x61 0x6E 0x64 0x20 0x6F    // 'on and o' \n\t0x66 0x66                                  // 'ff' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= ktpcBook8HowTo4\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"(L) How To Edit Pg 4\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"(L) How To Edit Pg 4\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookHowTo 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook8HowTo4\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookHowTo\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0xC0000007\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 7 LONG kidHowToWords15 __HELP_SYMBOL( STN \"kidHowToWords15\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidHowToScenes04 __HELP_SYMBOL( STN \"kidHowToScenes04\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidHowToWords12 __HELP_SYMBOL( STN \"kidHowToWords12\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 6 LONG kidHowToWords14 __HELP_SYMBOL( STN \"kidHowToWords14\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidHowToWords10 __HELP_SYMBOL( STN \"kidHowToWords10\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidHowToWords11 __HELP_SYMBOL( STN \"kidHowToWords11\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidHowToWords13 __HELP_SYMBOL( STN \"kidHowToWords13\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x24 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '$???????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x01    // '????O???' \n\t0x00 0x00 0x00 0x00 0x70 0x00 0x00 0x01    // '????p???' \n\t0x01 0x00 0x00 0x00 0x40 0x01 0x00 0x01    // '????@???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x03    // '????:???' \n\t0x0A 0x00 0x00 0xFD 0x41 0x00 0x00 0x03    // '???A???' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x38 0x00 0x00 0x40    // '????8??@' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x40    // '????A??@' \n\t0x08 0x00 0x00 0x00 0x70 0x00 0x00 0x40    // '????p??@' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x40    // '????r??@' \n\t0x09 0x00 0x00 0x00 0x99 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x9B 0x00 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0xC1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC3 0x00 0x00 0x40    // '??????@' \n\t0x0A 0x00 0x00 0x00 0xEA 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x40    // '??????@' \n\t0x07 0x00 0x00 0x00 0x12 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x14 0x01 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x40 0x01 0x00 0x40    // '????@??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x14 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x41 0x00 0x00 0xC0    // '????A??' \n\t0x01 0x00 0x00 0x00 0x72 0x00 0x00 0xC0    // '????r??' \n\t0x01 0x00 0x00 0x00 0x9B 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xC3 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xEC 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0x14 0x01 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x75 0x6E 0x64 0x73    // '??Sounds' \n\t0x20 0x63 0x6F 0x6E 0x74 0x69 0x6E 0x75    // ' continu' \n\t0x65 0x64 0x2E 0x2E 0x2E 0x0D 0x0A 0x01    // 'ed...???' \n\t0x09 0x57 0x61 0x69 0x74 0x69 0x6E 0x67    // '?Waiting' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x61    // ' until a' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x69    // ' sound i' \n\t0x73 0x20 0x66 0x69 0x6E 0x69 0x73 0x68    // 's finish' \n\t0x65 0x64 0x0D 0x0A 0x57 0x6F 0x72 0x64    // 'ed??Word' \n\t0x73 0x0D 0x0A 0x01 0x09 0x54 0x79 0x70    // 's????Typ' \n\t0x69 0x6E 0x67 0x20 0x68 0x69 0x6E 0x74    // 'ing hint' \n\t0x73 0x97 0x77 0x68 0x61 0x74 0x20 0x74    // 'swhat t' \n\t0x6F 0x20 0x64 0x6F 0x20 0x69 0x66 0x20    // 'o do if ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x61 0x6B 0x65    // 'you make' \n\t0x20 0x61 0x20 0x6D 0x69 0x73 0x74 0x61    // ' a mista' \n\t0x6B 0x65 0x0D 0x0A 0x01 0x09 0x43 0x6F    // 'ke????Co' \n\t0x70 0x79 0x69 0x6E 0x67 0x20 0x26 0x20    // 'pying & ' \n\t0x70 0x61 0x73 0x74 0x69 0x6E 0x67 0x20    // 'pasting ' \n\t0x77 0x6F 0x72 0x64 0x73 0x20 0x69 0x6E    // 'words in' \n\t0x20 0x61 0x20 0x77 0x6F 0x72 0x64 0x20    // ' a word ' \n\t0x62 0x6F 0x78 0x0D 0x0A 0x01 0x09 0x43    // 'box????C' \n\t0x6F 0x70 0x79 0x69 0x6E 0x67 0x20 0x26    // 'opying &' \n\t0x20 0x70 0x61 0x73 0x74 0x69 0x6E 0x67    // ' pasting' \n\t0x20 0x61 0x6E 0x20 0x65 0x6E 0x74 0x69    // ' an enti' \n\t0x72 0x65 0x20 0x77 0x6F 0x72 0x64 0x20    // 're word ' \n\t0x62 0x6F 0x78 0x0D 0x0A 0x01 0x09 0x43    // 'box????C' \n\t0x75 0x74 0x74 0x69 0x6E 0x67 0x20 0x26    // 'utting &' \n\t0x20 0x70 0x61 0x73 0x74 0x69 0x6E 0x67    // ' pasting' \n\t0x20 0x77 0x6F 0x72 0x64 0x73 0x20 0x69    // ' words i' \n\t0x6E 0x20 0x61 0x20 0x77 0x6F 0x72 0x64    // 'n a word' \n\t0x20 0x62 0x6F 0x78 0x0D 0x0A 0x01 0x09    // ' box????' \n\t0x43 0x75 0x74 0x74 0x69 0x6E 0x67 0x20    // 'Cutting ' \n\t0x26 0x20 0x70 0x61 0x73 0x74 0x69 0x6E    // '& pastin' \n\t0x67 0x20 0x61 0x6E 0x20 0x65 0x6E 0x74    // 'g an ent' \n\t0x69 0x72 0x65 0x20 0x77 0x6F 0x72 0x64    // 'ire word' \n\t0x20 0x62 0x6F 0x78 0x0D 0x0A 0x01 0x09    // ' box????' \n\t0x52 0x65 0x6D 0x6F 0x76 0x69 0x6E 0x67    // 'Removing' \n\t0x20 0x61 0x20 0x77 0x6F 0x72 0x64 0x20    // ' a word ' \n\t0x62 0x6F 0x78 0x20 0x66 0x72 0x6F 0x6D    // 'box from' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x75 0x72    // ' the cur' \n\t0x72 0x65 0x6E 0x74 0x20 0x73 0x63 0x65    // 'rent sce' \n\t0x6E 0x65                                  // 'ne' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/bktips.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcBook10Tips\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"(L) Tips Pg 1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"(L) Tips Pg 1\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook10Tips\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x04 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x01    // '????O???' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x01    // '????P???' \n\t0x01 0x00 0x00 0x00 0x71 0x00 0x00 0x01    // '????q???' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x01    // '????r???' \n\t0x01 0x00 0x00 0x00 0x96 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x97 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xB9 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xDD 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x04 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x05 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x01 0x00 0x01    // '????-???' \n\t0x00 0x00 0x00 0x00 0x2E 0x01 0x00 0x01    // '????.???' \n\t0x01 0x00 0x00 0x00 0x4F 0x01 0x00 0x01    // '????O???' \n\t0x00 0x00 0x00 0x00 0x50 0x01 0x00 0x01    // '????P???' \n\t0x01 0x00 0x00 0x00 0x7A 0x01 0x00 0x01    // '????z???' \n\t0x00 0x00 0x00 0x00 0x7B 0x01 0x00 0x01    // '????{???' \n\t0x01 0x00 0x00 0x00 0x7E 0x01 0x00 0x01    // '????~???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x55 0x01 0x00 0x82    // '????U??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x09 0x09 0x09 0x09    // '??To????' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09    // '????????' \n\t0x09 0x50 0x72 0x65 0x73 0x73 0x0D 0x0A    // '?Press??' \n\t0x4F 0x70 0x65 0x6E 0x20 0x74 0x68 0x65    // 'Open the' \n\t0x20 0x48 0x65 0x6C 0x70 0x20 0x4D 0x61    // ' Help Ma' \n\t0x63 0x68 0x69 0x6E 0x65 0x09 0x09 0x09    // 'chine???' \n\t0x09 0x09 0x09 0x46 0x31 0x09 0x0D 0x0A    // '???F1???' \n\t0x4F 0x70 0x65 0x6E 0x20 0x74 0x68 0x65    // 'Open the' \n\t0x20 0x6D 0x61 0x70 0x09 0x09 0x09 0x09    // ' map????' \n\t0x09 0x09 0x09 0x09 0x09 0x43 0x74 0x72    // '?????Ctr' \n\t0x6C 0x2B 0x4D 0x09 0x09 0x09 0x09 0x09    // 'l+M?????' \n\t0x0D 0x0A 0x4F 0x70 0x65 0x6E 0x20 0x61    // '??Open a' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x09 0x09    // ' movie??' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x43    // '???????C' \n\t0x74 0x72 0x6C 0x2B 0x4F 0x09 0x09 0x09    // 'trl+O???' \n\t0x09 0x0D 0x0A 0x53 0x74 0x61 0x72 0x74    // '???Start' \n\t0x20 0x61 0x20 0x6E 0x65 0x77 0x20 0x6D    // ' a new m' \n\t0x6F 0x76 0x69 0x65 0x09 0x09 0x09 0x09    // 'ovie????' \n\t0x09 0x09 0x09 0x09 0x43 0x74 0x72 0x6C    // '????Ctrl' \n\t0x2B 0x4E 0x09 0x09 0x09 0x0D 0x0A 0x53    // '+N?????S' \n\t0x61 0x76 0x65 0x20 0x79 0x6F 0x75 0x72    // 'ave your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x09 0x09    // ' movie??' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x43 0x74    // '??????Ct' \n\t0x72 0x6C 0x2B 0x53 0x09 0x09 0x09 0x0D    // 'rl+S????' \n\t0x0A 0x51 0x75 0x69 0x74 0x20 0x33 0x44    // '?Quit 3D' \n\t0x20 0x4D 0x6F 0x76 0x69 0x65 0x20 0x4D    // ' Movie M' \n\t0x61 0x6B 0x65 0x72 0x09 0x09 0x09 0x09    // 'aker????' \n\t0x09 0x09 0x43 0x74 0x72 0x6C 0x2B 0x51    // '??Ctrl+Q' \n\t0x0D 0x0A 0x55 0x6E 0x64 0x6F 0x20 0x74    // '??Undo t' \n\t0x68 0x65 0x20 0x6C 0x61 0x73 0x74 0x20    // 'he last ' \n\t0x74 0x68 0x69 0x6E 0x67 0x20 0x79 0x6F    // 'thing yo' \n\t0x75 0x20 0x64 0x69 0x64 0x20 0x09 0x09    // 'u did ??' \n\t0x09 0x09 0x43 0x74 0x72 0x6C 0x2B 0x5A    // '??Ctrl+Z' \n\t0x0D 0x0A 0x52 0x65 0x64 0x6F 0x20 0x74    // '??Redo t' \n\t0x68 0x65 0x20 0x6C 0x61 0x73 0x74 0x20    // 'he last ' \n\t0x74 0x68 0x69 0x6E 0x67 0x20 0x79 0x6F    // 'thing yo' \n\t0x75 0x20 0x75 0x6E 0x64 0x69 0x64 0x09    // 'u undid?' \n\t0x09 0x09 0x09 0x43 0x74 0x72 0x6C 0x2B    // '???Ctrl+' \n\t0x59 0x0D 0x0A 0x44 0x69 0x73 0x70 0x6C    // 'Y??Displ' \n\t0x61 0x79 0x20 0x74 0x68 0x65 0x20 0x54    // 'ay the T' \n\t0x61 0x73 0x6B 0x62 0x61 0x72 0x09 0x09    // 'askbar??' \n\t0x09 0x09 0x09 0x09 0x09 0x43 0x74 0x72    // '?????Ctr' \n\t0x6C 0x2B 0x45 0x73 0x63 0x0D 0x0A 0x53    // 'l+Esc??S' \n\t0x77 0x69 0x74 0x63 0x68 0x20 0x74 0x6F    // 'witch to' \n\t0x20 0x74 0x68 0x65 0x20 0x6E 0x65 0x78    // ' the nex' \n\t0x74 0x20 0x61 0x70 0x70 0x6C 0x69 0x63    // 't applic' \n\t0x61 0x74 0x69 0x6F 0x6E 0x09 0x09 0x09    // 'ation???' \n\t0x09 0x41 0x6C 0x74 0x2B 0x54 0x61 0x62    // '?Alt+Tab' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpcBook10Tips2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"(L) Tips Pg 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"(L) Tips Pg 2\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook10Tips2\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tFREE\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPCopy __HELP_SYMBOL( STN \"mbmpCCPCopy\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPCut __HELP_SYMBOL( STN \"mbmpCCPCut\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x24 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '$???????' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x01    // '????C???' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0x01    // '????D???' \n\t0x01 0x00 0x00 0x00 0x7F 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x8C 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x8D 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xCE 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x12 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x13 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4B 0x01 0x00 0x01    // '????K???' \n\t0x01 0xF6 0x00 0x00 0x57 0x01 0x00 0x01    // '???W???' \n\t0x01 0x00 0x00 0x00 0x58 0x01 0x00 0x01    // '????X???' \n\t0x01 0xF6 0x00 0x00 0x97 0x01 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x31 0x00 0x00 0x03    // '???1???' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x03    // '????3???' \n\t0x0F 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x0A 0x00 0x00 0xFD 0x7A 0x00 0x00 0x03    // '???z???' \n\t0x00 0x00 0x00 0x00 0xD0 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x00 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x16 0x01 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x48 0x01 0x00 0x03    // '???H???' \n\t0x00 0x00 0x00 0x00 0x97 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x7F 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0xD0 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x4B 0x01 0x00 0x80    // '????K??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x33 0x00 0x00 0x82    // '????3??' \n\t0x0A 0x00 0x00 0x00 0x47 0x00 0x00 0x82    // '????G??' \n\t0x05 0x00 0x00 0x00 0x7F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0xD0 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0x02 0x01 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x16 0x01 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4B 0x01 0x00 0x82    // '????K??' \n\t0xF6 0xFF 0x00 0x00 0x8C 0x00 0x00 0xC0    // '????' \n\t0x03 0x00 0x00 0x00 0x57 0x01 0x00 0xC0    // '????W??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x6F 0x70    // '??To cop' \n\t0x79 0x20 0x61 0x20 0x68 0x69 0x67 0x68    // 'y a high' \n\t0x6C 0x69 0x67 0x68 0x74 0x65 0x64 0x20    // 'lighted ' \n\t0x69 0x74 0x65 0x6D 0x20 0x74 0x6F 0x20    // 'item to ' \n\t0x74 0x68 0x65 0x20 0x65 0x6E 0x64 0x20    // 'the end ' \n\t0x6F 0x66 0x20 0x69 0x74 0x73 0x20 0x70    // 'of its p' \n\t0x61 0x74 0x68 0x0D 0x0A 0x95 0x09 0x48    // 'ath???H' \n\t0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E    // 'old down' \n\t0x20 0x43 0x74 0x72 0x6C 0x2B 0x43 0x0D    // ' Ctrl+C?' \n\t0x0A 0x54 0x6F 0x20 0x63 0x6F 0x70 0x79    // '?To copy' \n\t0x20 0x61 0x20 0x68 0x69 0x67 0x68 0x6C    // ' a highl' \n\t0x69 0x67 0x68 0x74 0x65 0x64 0x20 0x69    // 'ighted i' \n\t0x74 0x65 0x6D 0x20 0x74 0x6F 0x20 0x74    // 'tem to t' \n\t0x68 0x65 0x20 0x65 0x6E 0x64 0x20 0x6F    // 'he end o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x73 0x63    // 'f the sc' \n\t0x65 0x6E 0x65 0x09 0x09 0x09 0x09 0x0D    // 'ene?????' \n\t0x0A 0x95 0x09 0x43 0x6C 0x69 0x63 0x6B    // '??Click' \n\t0x20 0x43 0x6F 0x70 0x79 0x2D 0x01 0x2C    // ' Copy-?,' \n\t0x20 0x74 0x68 0x65 0x6E 0x20 0x68 0x6F    // ' then ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x53 0x68 0x69 0x66 0x74 0x20 0x77 0x68    // 'Shift wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x20 0x63    // 'en you c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x69 0x74 0x65 0x6D 0x20 0x79 0x6F    // ' item yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x63 0x6F 0x70 0x79 0x2E 0x09    // 'o copy.?' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x63 0x75 0x74    // '??To cut' \n\t0x20 0x61 0x20 0x68 0x69 0x67 0x68 0x6C    // ' a highl' \n\t0x69 0x67 0x68 0x74 0x65 0x64 0x20 0x69    // 'ighted i' \n\t0x74 0x65 0x6D 0x20 0x74 0x6F 0x20 0x74    // 'tem to t' \n\t0x68 0x65 0x20 0x65 0x6E 0x64 0x20 0x6F    // 'he end o' \n\t0x66 0x20 0x69 0x74 0x73 0x20 0x70 0x61    // 'f its pa' \n\t0x74 0x68 0x0D 0x0A 0x95 0x09 0x48 0x6F    // 'th???Ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x43 0x74 0x72 0x6C 0x2B 0x58 0x0D 0x0A    // 'Ctrl+X??' \n\t0x54 0x6F 0x20 0x63 0x75 0x74 0x20 0x61    // 'To cut a' \n\t0x20 0x68 0x69 0x67 0x68 0x6C 0x69 0x67    // ' highlig' \n\t0x68 0x74 0x65 0x64 0x20 0x69 0x74 0x65    // 'hted ite' \n\t0x6D 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'm to the' \n\t0x20 0x65 0x6E 0x64 0x20 0x6F 0x66 0x20    // ' end of ' \n\t0x74 0x68 0x65 0x20 0x73 0x63 0x65 0x6E    // 'the scen' \n\t0x65 0x09 0x09 0x0D 0x0A 0x95 0x09 0x43    // 'e?????C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x43 0x75 0x74    // 'lick Cut' \n\t0x2D 0x01 0x2C 0x20 0x74 0x68 0x65 0x6E    // '-?, then' \n\t0x20 0x68 0x6F 0x6C 0x64 0x20 0x64 0x6F    // ' hold do' \n\t0x77 0x6E 0x20 0x53 0x68 0x69 0x66 0x74    // 'wn Shift' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x79 0x6F    // ' when yo' \n\t0x75 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // 'u click ' \n\t0x74 0x68 0x65 0x20 0x69 0x74 0x65 0x6D    // 'the item' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x75 0x74    // 't to cut' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpcBook10Tips3\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"(L) Tips Pg 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"(L) Tips Pg 3\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook10Tips3\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsCompose __HELP_SYMBOL( STN \"mbmpActorsCompose\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x21 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '!???????' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x01    // '????C???' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0x01    // '????D???' \n\t0x01 0x00 0x00 0x00 0x79 0x00 0x00 0x01    // '????y???' \n\t0x01 0xF6 0x00 0x00 0x8C 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x8D 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x99 0x00 0x00 0x01    // '??????' \n\t0x01 0xE7 0x00 0x00 0x9B 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x63 0x01 0x00 0x01    // '????c???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x31 0x00 0x00 0x03    // '???1???' \n\t0x00 0x00 0x00 0x00 0x47 0x00 0x00 0x03    // '????G???' \n\t0x0A 0x00 0x00 0xFD 0x79 0x00 0x00 0x03    // '???y???' \n\t0x0F 0x00 0x00 0xFD 0x81 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x9B 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xC1 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xF7 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x2C 0x01 0x00 0x03    // '???,???' \n\t0x00 0x00 0x00 0x00 0x63 0x01 0x00 0x03    // '????c???' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x80    // '????y??' \n\t0x00 0x00 0x02 0x00 0x9B 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xC1 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0xF7 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x2E 0x01 0x00 0x80    // '????.??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x33 0x00 0x00 0x82    // '????3??' \n\t0x0A 0x00 0x00 0x00 0x47 0x00 0x00 0x82    // '????G??' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x82    // '????y??' \n\t0x0A 0x00 0x00 0x00 0x9B 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0xC1 0x00 0x00 0x82    // '??????' \n\t0x0A 0x00 0x00 0x00 0xF7 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0x2E 0x01 0x00 0x82    // '????.??' \n\t0x00 0x00 0x00 0x00 0x8C 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x61 0x73    // '??To pas' \n\t0x74 0x65 0x20 0x77 0x68 0x61 0x74 0x65    // 'te whate' \n\t0x76 0x65 0x72 0x20 0x79 0x6F 0x75 0x20    // 'ver you ' \n\t0x6D 0x6F 0x73 0x74 0x20 0x72 0x65 0x63    // 'most rec' \n\t0x65 0x6E 0x74 0x6C 0x79 0x20 0x63 0x75    // 'ently cu' \n\t0x74 0x20 0x6F 0x72 0x20 0x63 0x6F 0x70    // 't or cop' \n\t0x69 0x65 0x64 0x0D 0x0A 0x95 0x09 0x48    // 'ied???H' \n\t0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E    // 'old down' \n\t0x20 0x43 0x74 0x72 0x6C 0x2B 0x56 0x0D    // ' Ctrl+V?' \n\t0x0A 0x54 0x6F 0x09 0x72 0x65 0x70 0x6F    // '?To?repo' \n\t0x73 0x69 0x74 0x69 0x6F 0x6E 0x20 0x61    // 'sition a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x20    // 'n actor ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x74 0x68 0x65    // 'from the' \n\t0x20 0x63 0x75 0x72 0x72 0x65 0x6E 0x74    // ' current' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x6F    // ' frame o' \n\t0x6E 0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69    // 'n???Cli' \n\t0x63 0x6B 0x20 0x52 0x65 0x70 0x6F 0x73    // 'ck Repos' \n\t0x69 0x74 0x69 0x6F 0x6E 0x2D 0x01 0x2C    // 'ition-?,' \n\t0x20 0x74 0x68 0x65 0x6E 0x20 0x64 0x72    // ' then dr' \n\t0x61 0x67 0x2E 0x0D 0x0A 0x54 0x6F 0x09    // 'ag.??To?' \n\t0x72 0x65 0x70 0x6F 0x73 0x69 0x74 0x69    // 'repositi' \n\t0x6F 0x6E 0x20 0x61 0x6E 0x20 0x61 0x63    // 'on an ac' \n\t0x74 0x6F 0x72 0x20 0x66 0x6F 0x72 0x20    // 'tor for ' \n\t0x6F 0x6E 0x65 0x20 0x66 0x72 0x61 0x6D    // 'one fram' \n\t0x65 0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69    // 'e???Cli' \n\t0x63 0x6B 0x20 0x52 0x65 0x70 0x6F 0x73    // 'ck Repos' \n\t0x69 0x74 0x69 0x6F 0x6E 0x2C 0x20 0x74    // 'ition, t' \n\t0x68 0x65 0x6E 0x20 0x68 0x6F 0x6C 0x64    // 'hen hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x43 0x74    // ' down Ct' \n\t0x72 0x6C 0x20 0x61 0x73 0x20 0x79 0x6F    // 'rl as yo' \n\t0x75 0x20 0x64 0x72 0x61 0x67 0x2E 0x0D    // 'u drag.?' \n\t0x0A 0x54 0x6F 0x09 0x72 0x65 0x70 0x6F    // '?To?repo' \n\t0x73 0x69 0x74 0x69 0x6F 0x6E 0x20 0x61    // 'sition a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x20    // 'n actor ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x74 0x68 0x65    // 'from the' \n\t0x20 0x62 0x65 0x67 0x69 0x6E 0x6E 0x69    // ' beginni' \n\t0x6E 0x67 0x20 0x6F 0x66 0x20 0x69 0x74    // 'ng of it' \n\t0x73 0x20 0x70 0x61 0x74 0x68 0x0D 0x0A    // 's path??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x52 0x65 0x70 0x6F 0x73 0x69 0x74 0x69    // 'Repositi' \n\t0x6F 0x6E 0x2C 0x20 0x74 0x68 0x65 0x6E    // 'on, then' \n\t0x20 0x68 0x6F 0x6C 0x64 0x20 0x64 0x6F    // ' hold do' \n\t0x77 0x6E 0x20 0x53 0x68 0x69 0x66 0x74    // 'wn Shift' \n\t0x20 0x61 0x73 0x20 0x79 0x6F 0x75 0x20    // ' as you ' \n\t0x64 0x72 0x61 0x67 0x2E                   // 'drag.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpcBook10Tips4\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"(L) Tips Pg 4\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"(L) Tips Pg 4\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook10Tips4\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsContinue __HELP_SYMBOL( STN \"mbmpActorsContinue\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsXY __HELP_SYMBOL( STN \"mbmpActorsXY\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsCompose __HELP_SYMBOL( STN \"mbmpActorsCompose\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x2D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '-???????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x05 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x01 0xF6 0x00 0x00 0x36 0x00 0x00 0x01    // '???6???' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x01 0xF6 0x00 0x00 0x4D 0x00 0x00 0x01    // '???M???' \n\t0x01 0x00 0x00 0x00 0x4E 0x00 0x00 0x01    // '????N???' \n\t0x01 0xF6 0x00 0x00 0x5A 0x00 0x00 0x01    // '???Z???' \n\t0x01 0x00 0x00 0x00 0x92 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x93 0x00 0x00 0x01    // '??????' \n\t0x01 0xF6 0x00 0x00 0xAD 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xAE 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xBC 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x0C 0x01 0x00 0x01    // '????????' \n\t0x05 0x00 0x00 0x00 0x0E 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3D 0x01 0x00 0x01    // '????=???' \n\t0x00 0x00 0x00 0x00 0x3E 0x01 0x00 0x01    // '????>???' \n\t0x01 0x00 0x00 0x00 0xB9 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x21 0x00 0x00 0x03    // '???!???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x03    // '????%???' \n\t0x0F 0x00 0x00 0xFD 0x2B 0x00 0x00 0x03    // '???+???' \n\t0x00 0x00 0x00 0x00 0x5C 0x00 0x00 0x03    // '????\\???' \n\t0x0A 0x00 0x00 0xFD 0x92 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xBC 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x52 0x01 0x00 0x03    // '????R???' \n\t0x0A 0x00 0x00 0xFD 0x7A 0x01 0x00 0x03    // '???z???' \n\t0x00 0x00 0x00 0x00 0xB9 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x80    // '????#??' \n\t0x00 0x00 0x02 0x00 0x5C 0x00 0x00 0x80    // '????\\??' \n\t0x00 0x00 0x00 0x00 0x92 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0xBC 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x0E 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x52 0x01 0x00 0x80    // '????R??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x23 0x00 0x00 0x82    // '????#??' \n\t0x0A 0x00 0x00 0x00 0x5C 0x00 0x00 0x82    // '????\\??' \n\t0x05 0x00 0x00 0x00 0x92 0x00 0x00 0x82    // '??????' \n\t0x0A 0x00 0x00 0x00 0xBC 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0x0E 0x01 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x52 0x01 0x00 0x82    // '????R??' \n\t0x05 0x00 0x00 0x00 0x36 0x00 0x00 0xC0    // '????6??' \n\t0x03 0x00 0x00 0x00 0x4D 0x00 0x00 0xC0    // '????M??' \n\t0x02 0x00 0x00 0x00 0xAD 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x70    // '??To rep' \n\t0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E 0x20    // 'osition ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x20 0x75 0x70 0x20 0x6F 0x72 0x20 0x64    // ' up or d' \n\t0x6F 0x77 0x6E 0x0D 0x0A 0x95 0x09 0x43    // 'own???C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x52 0x65 0x70    // 'lick Rep' \n\t0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E 0x2D    // 'osition-' \n\t0x01 0x2C 0x20 0x74 0x75 0x72 0x6E 0x20    // '?, turn ' \n\t0x22 0x6F 0x6E 0x22 0x20 0x55 0x70 0x20    // '\"on\" Up ' \n\t0x26 0x20 0x44 0x6F 0x77 0x6E 0x2D 0x01    // '& Down-?' \n\t0x2C 0x20 0x74 0x68 0x65 0x6E 0x20 0x64    // ', then d' \n\t0x72 0x61 0x67 0x2E 0x0D 0x0A 0x54 0x6F    // 'rag.??To' \n\t0x09 0x72 0x65 0x70 0x6C 0x61 0x63 0x65    // '?replace' \n\t0x20 0x74 0x68 0x65 0x20 0x65 0x6E 0x74    // ' the ent' \n\t0x69 0x72 0x65 0x20 0x70 0x61 0x74 0x68    // 'ire path' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x74 0x68    // ' from th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x66 0x72 0x61 0x6D 0x65 0x20    // 't frame ' \n\t0x6F 0x6E 0x0D 0x0A 0x95 0x09 0x43 0x6C    // 'on???Cl' \n\t0x69 0x63 0x6B 0x20 0x52 0x65 0x73 0x75    // 'ick Resu' \n\t0x6D 0x65 0x20 0x4C 0x61 0x73 0x74 0x20    // 'me Last ' \n\t0x41 0x63 0x74 0x69 0x6F 0x6E 0x2D 0x01    // 'Action-?' \n\t0x2C 0x20 0x74 0x68 0x65 0x6E 0x20 0x64    // ', then d' \n\t0x72 0x61 0x67 0x2E 0x0D 0x0A 0x54 0x6F    // 'rag.??To' \n\t0x09 0x72 0x65 0x70 0x6C 0x61 0x63 0x65    // '?replace' \n\t0x20 0x70 0x61 0x72 0x74 0x20 0x6F 0x66    // ' part of' \n\t0x20 0x61 0x20 0x70 0x61 0x74 0x68 0x97    // ' a path' \n\t0x74 0x68 0x65 0x20 0x6E 0x65 0x77 0x20    // 'the new ' \n\t0x70 0x61 0x74 0x68 0x20 0x72 0x65 0x6A    // 'path rej' \n\t0x6F 0x69 0x6E 0x73 0x20 0x74 0x68 0x65    // 'oins the' \n\t0x20 0x6F 0x6C 0x64 0x20 0x70 0x61 0x74    // ' old pat' \n\t0x68 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 'h at the' \n\t0x20 0x63 0x6C 0x6F 0x73 0x65 0x73 0x74    // ' closest' \n\t0x20 0x70 0x6F 0x69 0x6E 0x74 0x0D 0x0A    // ' point??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x52 0x65 0x73 0x75 0x6D 0x65 0x20 0x4C    // 'Resume L' \n\t0x61 0x73 0x74 0x20 0x41 0x63 0x74 0x69    // 'ast Acti' \n\t0x6F 0x6E 0x2C 0x20 0x74 0x68 0x65 0x6E    // 'on, then' \n\t0x20 0x68 0x6F 0x6C 0x64 0x20 0x64 0x6F    // ' hold do' \n\t0x77 0x6E 0x20 0x43 0x74 0x72 0x6C 0x2B    // 'wn Ctrl+' \n\t0x53 0x68 0x69 0x66 0x74 0x20 0x61 0x73    // 'Shift as' \n\t0x20 0x79 0x6F 0x75 0x20 0x64 0x72 0x61    // ' you dra' \n\t0x67 0x2E 0x0D 0x0A 0x54 0x6F 0x09 0x66    // 'g.??To?f' \n\t0x72 0x65 0x65 0x7A 0x65 0x20 0x61 0x6E    // 'reeze an' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x20    // ' action ' \n\t0x61 0x73 0x20 0x79 0x6F 0x75 0x20 0x63    // 'as you c' \n\t0x72 0x65 0x61 0x74 0x65 0x20 0x61 0x20    // 'reate a ' \n\t0x70 0x61 0x74 0x68 0x0D 0x0A 0x95 0x09    // 'path???' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x52 0x65    // 'Click Re' \n\t0x73 0x75 0x6D 0x65 0x20 0x4C 0x61 0x73    // 'sume Las' \n\t0x74 0x20 0x41 0x63 0x74 0x69 0x6F 0x6E    // 't Action' \n\t0x2C 0x20 0x74 0x68 0x65 0x6E 0x20 0x68    // ', then h' \n\t0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E    // 'old down' \n\t0x20 0x53 0x68 0x69 0x66 0x74 0x20 0x61    // ' Shift a' \n\t0x73 0x20 0x79 0x6F 0x75 0x20 0x64 0x72    // 's you dr' \n\t0x61 0x67 0x2E                             // 'ag.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpcBook10Tips5\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"(L) Tips Pg 5\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"(L) Tips Pg 5\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook10Tips5\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsContinue __HELP_SYMBOL( STN \"mbmpActorsContinue\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x22 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '\"???????' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x01 0xF6 0x00 0x00 0x5D 0x00 0x00 0x01    // '???]???' \n\t0x01 0x00 0x00 0x00 0x5E 0x00 0x00 0x01    // '????^???' \n\t0x01 0xF6 0x00 0x00 0x81 0x00 0x00 0x01    // '??????' \n\t0x01 0xF6 0x00 0x00 0x94 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xBC 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0xBE 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x26 0x01 0x00 0x01    // '????&???' \n\t0x01 0x00 0x00 0x00 0x3D 0x01 0x00 0x01    // '????=???' \n\t0x01 0x00 0x00 0x00 0xB9 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x40 0x00 0x00 0x03    // '???@???' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x03    // '????B???' \n\t0x0F 0x00 0x00 0xFD 0x44 0x00 0x00 0x03    // '???D???' \n\t0x00 0x00 0x00 0x00 0x5E 0x00 0x00 0x03    // '????^???' \n\t0x0F 0x00 0x00 0xFD 0x70 0x00 0x00 0x03    // '???p???' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xBC 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x71 0x01 0x00 0x03    // '????q???' \n\t0x0A 0x00 0x00 0xFD 0xAC 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xB9 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x80    // '????B??' \n\t0x00 0x00 0x02 0x00 0x96 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xBE 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x71 0x01 0x00 0x80    // '????q??' \n\t0x00 0x00 0x00 0x00 0xAE 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x42 0x00 0x00 0x82    // '????B??' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0xBE 0x00 0x00 0x82    // '??????' \n\t0x0A 0x00 0x00 0x00 0x71 0x01 0x00 0x82    // '????q??' \n\t0x05 0x00 0x00 0x00 0xAE 0x01 0x00 0x82    // '??????' \n\t0x0A 0x00 0x00 0x00 0x5D 0x00 0x00 0xC0    // '????]??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x6F 0x76    // '??To mov' \n\t0x65 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'e an act' \n\t0x6F 0x72 0x20 0x6E 0x65 0x61 0x72 0x20    // 'or near ' \n\t0x6F 0x72 0x20 0x66 0x61 0x72 0x20 0x61    // 'or far a' \n\t0x6E 0x64 0x20 0x75 0x70 0x20 0x6F 0x72    // 'nd up or' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x61 0x73    // ' down as' \n\t0x20 0x79 0x6F 0x75 0x20 0x63 0x72 0x65    // ' you cre' \n\t0x61 0x74 0x65 0x20 0x61 0x20 0x70 0x61    // 'ate a pa' \n\t0x74 0x68 0x0D 0x0A 0x95 0x09 0x43 0x6C    // 'th???Cl' \n\t0x69 0x63 0x6B 0x20 0x52 0x65 0x73 0x75    // 'ick Resu' \n\t0x6D 0x65 0x20 0x4C 0x61 0x73 0x74 0x20    // 'me Last ' \n\t0x41 0x63 0x74 0x69 0x6F 0x6E 0x2D 0x01    // 'Action-?' \n\t0x2C 0x20 0x74 0x68 0x65 0x6E 0x20 0x68    // ', then h' \n\t0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E    // 'old down' \n\t0x20 0x74 0x68 0x65 0x20 0x55 0x70 0x20    // ' the Up ' \n\t0x6F 0x72 0x20 0x44 0x6F 0x77 0x6E 0x20    // 'or Down ' \n\t0x41 0x72 0x72 0x6F 0x77 0x20 0x6B 0x65    // 'Arrow ke' \n\t0x79 0x20 0x61 0x73 0x20 0x79 0x6F 0x75    // 'y as you' \n\t0x20 0x64 0x72 0x61 0x67 0x2E 0x0D 0x0A    // ' drag.??' \n\t0x54 0x6F 0x09 0x63 0x68 0x61 0x6E 0x67    // 'To?chang' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'e the ac' \n\t0x74 0x69 0x6F 0x6E 0x20 0x73 0x74 0x61    // 'tion sta' \n\t0x72 0x74 0x69 0x6E 0x67 0x20 0x70 0x6F    // 'rting po' \n\t0x73 0x69 0x74 0x69 0x6F 0x6E 0x0D 0x0A    // 'sition??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x52 0x65 0x73 0x75 0x6D 0x65 0x20 0x4C    // 'Resume L' \n\t0x61 0x73 0x74 0x20 0x41 0x63 0x74 0x69    // 'ast Acti' \n\t0x6F 0x6E 0x2C 0x20 0x74 0x68 0x65 0x6E    // 'on, then' \n\t0x20 0x6D 0x6F 0x76 0x65 0x20 0x74 0x68    // ' move th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x63 0x75 0x72 0x73 0x6F 0x72 0x20 0x6F    // 'cursor o' \n\t0x76 0x65 0x72 0x20 0x74 0x68 0x65 0x20    // 'ver the ' \n\t0x61 0x63 0x74 0x6F 0x72 0x20 0x77 0x68    // 'actor wh' \n\t0x6F 0x73 0x65 0x20 0x61 0x63 0x74 0x69    // 'ose acti' \n\t0x6F 0x6E 0x20 0x79 0x6F 0x75 0x20 0x77    // 'on you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ant to c' \n\t0x68 0x61 0x6E 0x67 0x65 0x2E 0x20 0x20    // 'hange.  ' \n\t0x48 0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77    // 'Hold dow' \n\t0x6E 0x20 0x43 0x74 0x72 0x6C 0x20 0x61    // 'n Ctrl a' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x20 0x6D    // 'nd the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x62 0x75 0x74    // 'ouse but' \n\t0x74 0x6F 0x6E 0x20 0x75 0x6E 0x74 0x69    // 'ton unti' \n\t0x6C 0x20 0x79 0x6F 0x75 0x20 0x66 0x69    // 'l you fi' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x20 0x70    // 'nd the p' \n\t0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E 0x20    // 'osition ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x63 0x68    // '.??To ch' \n\t0x61 0x6E 0x67 0x65 0x20 0x62 0x61 0x63    // 'ange bac' \n\t0x6B 0x20 0x61 0x6E 0x64 0x20 0x66 0x6F    // 'k and fo' \n\t0x72 0x74 0x68 0x20 0x62 0x65 0x74 0x77    // 'rth betw' \n\t0x65 0x65 0x6E 0x20 0x6E 0x65 0x61 0x72    // 'een near' \n\t0x20 0x6F 0x72 0x20 0x66 0x61 0x72 0x20    // ' or far ' \n\t0x61 0x6E 0x64 0x20 0x75 0x70 0x20 0x6F    // 'and up o' \n\t0x72 0x20 0x64 0x6F 0x77 0x6E 0x0D 0x0A    // 'r down??' \n\t0x95 0x09 0x50 0x72 0x65 0x73 0x73 0x20    // '?Press ' \n\t0x46 0x39 0x2E                             // 'F9.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= ktpcBook10Tips6\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"(L) Tips Pg 6\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"(L) Tips Pg 6\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook10Tips6\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewind __HELP_SYMBOL( STN \"mbmpRewind\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpForward __HELP_SYMBOL( STN \"mbmpForward\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSettingsCameras __HELP_SYMBOL( STN \"mbmpSettingsCameras\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSorter __HELP_SYMBOL( STN \"mbmpSceneSorter\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x22 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '\"???????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x01 0xFD 0x00 0x00 0x5D 0x00 0x00 0x01    // '???]???' \n\t0x01 0x00 0x00 0x00 0x5F 0x00 0x00 0x01    // '????_???' \n\t0x01 0xFD 0x00 0x00 0x67 0x00 0x00 0x01    // '???g???' \n\t0x01 0x00 0x00 0x00 0x68 0x00 0x00 0x01    // '????h???' \n\t0x01 0xFD 0x00 0x00 0x84 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xDA 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x03 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x41 0x01 0x00 0x01    // '????A???' \n\t0x01 0xF6 0x00 0x00 0x5C 0x01 0x00 0x01    // '???\\???' \n\t0x01 0xF6 0x00 0x00 0x83 0x01 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x84 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x30 0x00 0x00 0x03    // '???0???' \n\t0x00 0x00 0x00 0x00 0x86 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xD8 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x01 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3F 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x80    // '????2??' \n\t0x00 0x00 0x02 0x00 0x86 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xDA 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x06 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x00 0x41 0x01 0x00 0x80    // '????A??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x32 0x00 0x00 0x82    // '????2??' \n\t0x0A 0x00 0x00 0x00 0x86 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0xDA 0x00 0x00 0x82    // '??????' \n\t0x0A 0x00 0x00 0x00 0x06 0x01 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x41 0x01 0x00 0x82    // '????A??' \n\t0x00 0x00 0x00 0x00 0x5D 0x00 0x00 0xC0    // '????]??' \n\t0x01 0x00 0x00 0x00 0x67 0x00 0x00 0xC0    // '????g??' \n\t0x02 0x00 0x00 0x00 0x03 0x01 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0x83 0x01 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x73 0x20    // ' frames ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x62    // 'to the b' \n\t0x65 0x67 0x69 0x6E 0x6E 0x69 0x6E 0x67    // 'eginning' \n\t0x20 0x6F 0x72 0x20 0x65 0x6E 0x64 0x20    // ' or end ' \n\t0x6F 0x66 0x20 0x61 0x20 0x73 0x63 0x65    // 'of a sce' \n\t0x6E 0x65 0x0D 0x0A 0x95 0x09 0x48 0x6F    // 'ne???Ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x43 0x74 0x72 0x6C 0x20 0x61 0x73 0x20    // 'Ctrl as ' \n\t0x79 0x6F 0x75 0x20 0x63 0x6C 0x69 0x63    // 'you clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x50 0x72    // 'k the Pr' \n\t0x65 0x76 0x69 0x6F 0x75 0x73 0x2D 0x01    // 'evious-?' \n\t0x20 0x6F 0x72 0x20 0x4E 0x65 0x78 0x74    // ' or Next' \n\t0x2D 0x01 0x20 0x62 0x75 0x74 0x74 0x6F    // '-? butto' \n\t0x6E 0x20 0x6F 0x6E 0x20 0x74 0x68 0x65    // 'n on the' \n\t0x20 0x46 0x72 0x61 0x6D 0x65 0x20 0x53    // ' Frame S' \n\t0x6C 0x69 0x64 0x65 0x72 0x2E 0x0D 0x0A    // 'lider.??' \n\t0x54 0x6F 0x20 0x63 0x68 0x61 0x6E 0x67    // 'To chang' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x63 0x61    // 'e the ca' \n\t0x6D 0x65 0x72 0x61 0x20 0x61 0x6E 0x67    // 'mera ang' \n\t0x6C 0x65 0x20 0x28 0x74 0x68 0x65 0x72    // 'le (ther' \n\t0x65 0x20 0x61 0x72 0x65 0x20 0x6D 0x61    // 'e are ma' \n\t0x6E 0x79 0x20 0x64 0x69 0x66 0x66 0x65    // 'ny diffe' \n\t0x72 0x65 0x6E 0x74 0x20 0x63 0x61 0x6D    // 'rent cam' \n\t0x65 0x72 0x61 0x20 0x61 0x6E 0x67 0x6C    // 'era angl' \n\t0x65 0x73 0x20 0x66 0x6F 0x72 0x20 0x65    // 'es for e' \n\t0x61 0x63 0x68 0x20 0x73 0x63 0x65 0x6E    // 'ach scen' \n\t0x65 0x29 0x0D 0x0A 0x95 0x09 0x43 0x6C    // 'e)???Cl' \n\t0x69 0x63 0x6B 0x20 0x53 0x63 0x65 0x6E    // 'ick Scen' \n\t0x65 0x73 0x2C 0x20 0x74 0x68 0x65 0x6E    // 'es, then' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x43    // ' click C' \n\t0x61 0x6D 0x65 0x72 0x61 0x20 0x41 0x6E    // 'amera An' \n\t0x67 0x6C 0x65 0x73 0x2D 0x01 0x0D 0x0A    // 'gles-???' \n\t0x54 0x6F 0x20 0x61 0x64 0x64 0x20 0x74    // 'To add t' \n\t0x72 0x61 0x6E 0x73 0x69 0x74 0x69 0x6F    // 'ransitio' \n\t0x6E 0x73 0x20 0x62 0x65 0x74 0x77 0x65    // 'ns betwe' \n\t0x65 0x6E 0x20 0x73 0x63 0x65 0x6E 0x65    // 'en scene' \n\t0x73 0x20 0x6C 0x69 0x6B 0x65 0x20 0x63    // 's like c' \n\t0x75 0x74 0x73 0x20 0x61 0x6E 0x64 0x20    // 'uts and ' \n\t0x64 0x69 0x73 0x73 0x6F 0x6C 0x76 0x65    // 'dissolve' \n\t0x73 0x0D 0x0A 0x20 0x95 0x09 0x43 0x6C    // 's?? ?Cl' \n\t0x69 0x63 0x6B 0x20 0x53 0x63 0x65 0x6E    // 'ick Scen' \n\t0x65 0x73 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'es, clic' \n\t0x6B 0x20 0x4D 0x6F 0x72 0x65 0x20 0x54    // 'k More T' \n\t0x6F 0x6F 0x6C 0x73 0x2C 0x20 0x74 0x68    // 'ools, th' \n\t0x65 0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'en click' \n\t0x20 0x74 0x68 0x65 0x20 0x53 0x63 0x65    // ' the Sce' \n\t0x6E 0x65 0x20 0x4F 0x72 0x67 0x61 0x6E    // 'ne Organ' \n\t0x69 0x7A 0x65 0x72 0x2D 0x01              // 'izer-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= ktpcBook10Tips9\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"(L) Tips Pg 9\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"(L) Tips Pg 9\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook10Tips9\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSorter __HELP_SYMBOL( STN \"mbmpSceneSorter\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPortfolio __HELP_SYMBOL( STN \"mbmpPortfolio\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x5C 0x00 0x00 0x01    // '???\\???' \n\t0x01 0x00 0x00 0x00 0x5D 0x00 0x00 0x01    // '????]???' \n\t0x01 0xE7 0x00 0x00 0x5F 0x00 0x00 0x01    // '???_???' \n\t0x01 0x00 0x00 0x00 0xD5 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xFE 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xFF 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x19 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xBB 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x03    // '????_???' \n\t0x0A 0x00 0x00 0xFD 0xD3 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x19 0x01 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x63 0x01 0x00 0x03    // '???c???' \n\t0x00 0x00 0x00 0x00 0xBB 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x5F 0x00 0x00 0x80    // '????_??' \n\t0x00 0x00 0x00 0x00 0xD5 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x19 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x00 0x65 0x01 0x00 0x80    // '????e??' \n\t0x00 0x00 0x02 0x00 0x1B 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x5F 0x00 0x00 0x82    // '????_??' \n\t0x05 0x00 0x00 0x00 0xD5 0x00 0x00 0x82    // '??????' \n\t0x0A 0x00 0x00 0x00 0x19 0x01 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x65 0x01 0x00 0x82    // '????e??' \n\t0x00 0x00 0x00 0x00 0x5C 0x00 0x00 0xC0    // '????\\??' \n\t0x02 0x00 0x00 0x00 0xFE 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x6F 0x72    // 'scene or' \n\t0x64 0x65 0x72 0x0D 0x0A 0x95 0x09 0x43    // 'der???C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x53 0x63 0x65    // 'lick Sce' \n\t0x6E 0x65 0x73 0x2C 0x20 0x63 0x6C 0x69    // 'nes, cli' \n\t0x63 0x6B 0x20 0x4D 0x6F 0x72 0x65 0x20    // 'ck More ' \n\t0x54 0x6F 0x6F 0x6C 0x73 0x2C 0x20 0x74    // 'Tools, t' \n\t0x68 0x65 0x6E 0x20 0x63 0x6C 0x69 0x63    // 'hen clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x53 0x63    // 'k the Sc' \n\t0x65 0x6E 0x65 0x20 0x4F 0x72 0x67 0x61    // 'ene Orga' \n\t0x6E 0x69 0x7A 0x65 0x72 0x2D 0x01 0x0D    // 'nizer-??' \n\t0x0A 0x54 0x6F 0x20 0x61 0x74 0x74 0x61    // '?To atta' \n\t0x63 0x68 0x20 0x61 0x20 0x6D 0x6F 0x76    // 'ch a mov' \n\t0x69 0x65 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ie to th' \n\t0x65 0x20 0x65 0x6E 0x64 0x20 0x6F 0x66    // 'e end of' \n\t0x20 0x61 0x6E 0x6F 0x74 0x68 0x65 0x72    // ' another' \n\t0x20 0x28 0x66 0x6F 0x72 0x20 0x65 0x78    // ' (for ex' \n\t0x61 0x6D 0x70 0x6C 0x65 0x2C 0x20 0x79    // 'ample, y' \n\t0x6F 0x75 0x20 0x6D 0x61 0x79 0x20 0x77    // 'ou may w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x61    // 'ant to a' \n\t0x64 0x64 0x20 0x74 0x68 0x65 0x20 0x73    // 'dd the s' \n\t0x61 0x6D 0x65 0x20 0x63 0x72 0x65 0x64    // 'ame cred' \n\t0x69 0x74 0x73 0x20 0x74 0x6F 0x20 0x74    // 'its to t' \n\t0x68 0x65 0x20 0x65 0x6E 0x64 0x20 0x6F    // 'he end o' \n\t0x66 0x20 0x65 0x61 0x63 0x68 0x20 0x6D    // 'f each m' \n\t0x6F 0x76 0x69 0x65 0x29 0x0D 0x0A 0x95    // 'ovie)??' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x53    // '?Click S' \n\t0x63 0x65 0x6E 0x65 0x73 0x2C 0x20 0x74    // 'cenes, t' \n\t0x68 0x65 0x6E 0x20 0x63 0x6C 0x69 0x63    // 'hen clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x50 0x6F    // 'k the Po' \n\t0x72 0x74 0x66 0x6F 0x6C 0x69 0x6F 0x2D    // 'rtfolio-' \n\t0x01 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // '? in the' \n\t0x20 0x53 0x63 0x65 0x6E 0x65 0x20 0x4F    // ' Scene O' \n\t0x72 0x67 0x61 0x6E 0x69 0x7A 0x65 0x72    // 'rganizer' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x73 0x65    // '.??To se' \n\t0x6C 0x65 0x63 0x74 0x20 0x61 0x6E 0x20    // 'lect an ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2C 0x20 0x70    // 'actor, p' \n\t0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20    // 'rop, or ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x20    // '3D word ' \n\t0x74 0x68 0x61 0x74 0x20 0x69 0x73 0x20    // 'that is ' \n\t0x62 0x65 0x68 0x69 0x6E 0x64 0x20 0x61    // 'behind a' \n\t0x6E 0x6F 0x74 0x68 0x65 0x72 0x20 0x6F    // 'nother o' \n\t0x72 0x20 0x6F 0x75 0x74 0x20 0x6F 0x66    // 'r out of' \n\t0x20 0x76 0x69 0x65 0x77 0x0D 0x0A 0x95    // ' view??' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x69    // '?Click i' \n\t0x74 0x73 0x20 0x70 0x69 0x63 0x74 0x75    // 'ts pictu' \n\t0x72 0x65 0x20 0x69 0x6E 0x20 0x74 0x68    // 're in th' \n\t0x65 0x20 0x41 0x63 0x74 0x6F 0x72 0x20    // 'e Actor ' \n\t0x6F 0x72 0x20 0x50 0x72 0x6F 0x70 0x20    // 'or Prop ' \n\t0x4C 0x69 0x73 0x74 0x97 0x6C 0x6F 0x63    // 'Listloc' \n\t0x61 0x74 0x65 0x64 0x20 0x6F 0x6E 0x20    // 'ated on ' \n\t0x65 0x69 0x74 0x68 0x65 0x72 0x20 0x73    // 'either s' \n\t0x69 0x64 0x65 0x20 0x6F 0x66 0x20 0x74    // 'ide of t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x6B 0x73    // 'he works' \n\t0x70 0x61 0x63 0x65 0x2E                   // 'pace.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= ktpcBook10Tips10\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"(L) Tips Pg 10\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"(L) Tips Pg 10\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook10Tips10\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorActions __HELP_SYMBOL( STN \"mbmpActorActions\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsContinue __HELP_SYMBOL( STN \"mbmpActorsContinue\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsSpletters __HELP_SYMBOL( STN \"mbmpActorsSpletters\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x01 0xF6 0x00 0x00 0x6F 0x00 0x00 0x01    // '???o???' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0x01    // '????p???' \n\t0x01 0xF1 0x00 0x00 0x72 0x00 0x00 0x01    // '???r???' \n\t0x01 0xF6 0x00 0x00 0x9B 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x9C 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xB0 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x29 0x01 0x00 0x01    // '????)???' \n\t0x01 0xF6 0x00 0x00 0x2B 0x01 0x00 0x01    // '???+???' \n\t0x01 0x00 0x00 0x00 0x68 0x01 0x00 0x01    // '????h???' \n\t0x01 0xF6 0x00 0x00 0x9E 0x01 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x9F 0x01 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x25 0x02 0x00 0x01    // '???%???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00 0x74 0x00 0x00 0x03    // '????t???' \n\t0x0F 0x00 0x00 0xFD 0xB7 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x2B 0x01 0x00 0x03    // '????+???' \n\t0x0A 0x00 0x00 0xFD 0x66 0x01 0x00 0x03    // '???f???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x80    // '????2??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x72 0x00 0x00 0x82    // '????r??' \n\t0x0A 0x00 0x00 0x00 0x2B 0x01 0x00 0x82    // '????+??' \n\t0x05 0x00 0x00 0x00 0x68 0x01 0x00 0x82    // '????h??' \n\t0xF6 0xFF 0x00 0x00 0x6F 0x00 0x00 0xC0    // '??o??' \n\t0x03 0x00 0x00 0x00 0x9B 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0x9E 0x01 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x6E 0x69    // '??To ani' \n\t0x6D 0x61 0x74 0x65 0x20 0x33 0x44 0x20    // 'mate 3D ' \n\t0x77 0x6F 0x72 0x64 0x73 0x20 0x6A 0x75    // 'words ju' \n\t0x73 0x74 0x20 0x6C 0x69 0x6B 0x65 0x20    // 'st like ' \n\t0x79 0x6F 0x75 0x20 0x61 0x6E 0x69 0x6D    // 'you anim' \n\t0x61 0x74 0x65 0x20 0x61 0x63 0x74 0x6F    // 'ate acto' \n\t0x72 0x73 0x0D 0x0A 0x31 0x09 0x54 0x6F    // 'rs??1?To' \n\t0x20 0x63 0x72 0x65 0x61 0x74 0x65 0x20    // ' create ' \n\t0x61 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'a 3D wor' \n\t0x64 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'd, click' \n\t0x20 0x41 0x63 0x74 0x6F 0x72 0x73 0x20    // ' Actors ' \n\t0x26 0x20 0x50 0x72 0x6F 0x70 0x73 0x2E    // '& Props.' \n\t0x20 0x20 0x43 0x6C 0x69 0x63 0x6B 0x20    // '  Click ' \n\t0x33 0x44 0x20 0x57 0x6F 0x72 0x64 0x73    // '3D Words' \n\t0x2D 0x01 0x0D 0x0A 0x32 0x09 0x54 0x6F    // '-???2?To' \n\t0x20 0x61 0x6E 0x69 0x6D 0x61 0x74 0x65    // ' animate' \n\t0x20 0x61 0x20 0x33 0x44 0x20 0x77 0x6F    // ' a 3D wo' \n\t0x72 0x64 0x2C 0x20 0x63 0x68 0x6F 0x6F    // 'rd, choo' \n\t0x73 0x65 0x20 0x61 0x6E 0x20 0x61 0x63    // 'se an ac' \n\t0x74 0x69 0x6F 0x6E 0x2D 0x01 0x2C 0x20    // 'tion-?, ' \n\t0x74 0x68 0x65 0x6E 0x20 0x63 0x6C 0x69    // 'then cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x33    // 'ck the 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x2E 0x20    // 'D word. ' \n\t0x20 0x44 0x65 0x70 0x65 0x6E 0x64 0x69    // ' Dependi' \n\t0x6E 0x67 0x20 0x75 0x70 0x6F 0x6E 0x20    // 'ng upon ' \n\t0x74 0x68 0x65 0x20 0x65 0x66 0x66 0x65    // 'the effe' \n\t0x63 0x74 0x20 0x79 0x6F 0x75 0x20 0x77    // 'ct you w' \n\t0x61 0x6E 0x74 0x2C 0x20 0x65 0x69 0x74    // 'ant, eit' \n\t0x68 0x65 0x72 0x20 0x68 0x6F 0x6C 0x64    // 'her hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x68    // ' down th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x6F    // 'button o' \n\t0x72 0x20 0x64 0x72 0x61 0x67 0x20 0x74    // 'r drag t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x64 0x73    // 'he words' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x68 0x65 0x6D 0x20 0x74 0x6F 0x20    // 'them to ' \n\t0x67 0x6F 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'go.??To ' \n\t0x63 0x6F 0x6E 0x74 0x69 0x6E 0x75 0x65    // 'continue' \n\t0x20 0x74 0x68 0x65 0x20 0x6C 0x61 0x73    // ' the las' \n\t0x74 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 't action' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x75 0x73 0x65 0x64    // 'ord used' \n\t0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69 0x63    // '???Clic' \n\t0x6B 0x20 0x41 0x63 0x74 0x6F 0x72 0x73    // 'k Actors' \n\t0x20 0x26 0x20 0x50 0x72 0x6F 0x70 0x73    // ' & Props' \n\t0x2C 0x20 0x74 0x68 0x65 0x6E 0x20 0x63    // ', then c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x52 0x65 0x73    // 'lick Res' \n\t0x75 0x6D 0x65 0x20 0x4C 0x61 0x73 0x74    // 'ume Last' \n\t0x20 0x41 0x63 0x74 0x69 0x6F 0x6E 0x2D    // ' Action-' \n\t0x01 0x2E 0x20 0x20 0x4D 0x6F 0x76 0x65    // '?.  Move' \n\t0x20 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // '  the mo' \n\t0x75 0x73 0x65 0x20 0x63 0x75 0x72 0x73    // 'use curs' \n\t0x6F 0x72 0x20 0x6F 0x76 0x65 0x72 0x20    // 'or over ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x77 0x68 0x6F 0x73    // 'ord whos' \n\t0x65 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'e action' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6E    // 't to con' \n\t0x74 0x69 0x6E 0x75 0x65 0x2E 0x20 0x20    // 'tinue.  ' \n\t0x48 0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77    // 'Hold dow' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'n the mo' \n\t0x75 0x73 0x65 0x20 0x62 0x75 0x74 0x74    // 'use butt' \n\t0x6F 0x6E 0x20 0x61 0x73 0x20 0x79 0x6F    // 'on as yo' \n\t0x75 0x20 0x64 0x72 0x61 0x67 0x2E         // 'u drag.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= ktpcBook10Tips11\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"(L) Tips Pg 11\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"(L) Tips Pg 11\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook10Tips11\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsCompose __HELP_SYMBOL( STN \"mbmpActorsCompose\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsCostume __HELP_SYMBOL( STN \"mbmpActorsCostume\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsContinue __HELP_SYMBOL( STN \"mbmpActorsContinue\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x28 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '(???????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x01    // '????6???' \n\t0x01 0xF6 0x00 0x00 0x68 0x00 0x00 0x01    // '???h???' \n\t0x01 0x00 0x00 0x00 0x69 0x00 0x00 0x01    // '????i???' \n\t0x01 0xF6 0x00 0x00 0x7A 0x00 0x00 0x01    // '???z???' \n\t0x01 0xF6 0x00 0x00 0x8B 0x00 0x00 0x01    // '??????' \n\t0x01 0xF6 0x00 0x00 0xA3 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xC9 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0xCC 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD9 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x02 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x03 0x01 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x39 0x01 0x00 0x01    // '???9???' \n\t0x01 0x00 0x00 0x00 0x6A 0x01 0x00 0x01    // '????j???' \n\t0x05 0x00 0x00 0x00 0x7E 0x01 0x00 0x01    // '????~???' \n\t0x01 0x00 0x00 0x00 0x81 0x01 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xB2 0x01 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xB3 0x01 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xE9 0x01 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x34 0x00 0x00 0x03    // '???4???' \n\t0x00 0x00 0x00 0x00 0xA3 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xD7 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x3B 0x01 0x00 0x03    // '????;???' \n\t0x0A 0x00 0x00 0xFD 0x81 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x80    // '????6??' \n\t0x00 0x00 0x02 0x00 0xA3 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xD9 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x3B 0x01 0x00 0x80    // '????;??' \n\t0x00 0x00 0x00 0x00 0x81 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x36 0x00 0x00 0x82    // '????6??' \n\t0x0A 0x00 0x00 0x00 0xA3 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0xD9 0x00 0x00 0x82    // '??????' \n\t0x0A 0x00 0x00 0x00 0x3B 0x01 0x00 0x82    // '????;??' \n\t0x05 0x00 0x00 0x00 0x81 0x01 0x00 0x82    // '??????' \n\t0xF6 0xFF 0x00 0x00 0x68 0x00 0x00 0xC0    // '??h??' \n\t0x02 0x00 0x00 0x00 0x02 0x01 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0xB2 0x01 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x61 0x6E 0x20 0x61    // 'nge an a' \n\t0x63 0x74 0x6F 0x72 0x27 0x73 0x20 0x63    // 'ctor's c' \n\t0x6F 0x73 0x74 0x75 0x6D 0x65 0x20 0x6F    // 'ostume o' \n\t0x72 0x20 0x65 0x76 0x65 0x6E 0x20 0x61    // 'r even a' \n\t0x64 0x64 0x20 0x61 0x63 0x63 0x65 0x73    // 'dd acces' \n\t0x73 0x6F 0x72 0x69 0x65 0x73 0x0D 0x0A    // 'sories??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x41 0x63 0x74 0x6F 0x72 0x73 0x20 0x26    // 'Actors &' \n\t0x20 0x50 0x72 0x6F 0x70 0x73 0x2C 0x20    // ' Props, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x43 0x6F 0x73 0x74 0x75 0x6D    // 'e Costum' \n\t0x65 0x20 0x43 0x68 0x61 0x6E 0x67 0x65    // 'e Change' \n\t0x72 0x2D 0x01 0x2C 0x20 0x74 0x68 0x65    // 'r-?, the' \n\t0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // 'n click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x20 0x77 0x68 0x6F 0x73 0x65 0x20    // 'r whose ' \n\t0x63 0x6F 0x73 0x74 0x75 0x6D 0x65 0x20    // 'costume ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x63 0x68 0x61 0x6E    // ' to chan' \n\t0x67 0x65 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'ge.??To ' \n\t0x72 0x65 0x70 0x6F 0x73 0x69 0x74 0x69    // 'repositi' \n\t0x6F 0x6E 0x20 0x61 0x20 0x33 0x44 0x20    // 'on a 3D ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x20 0x6E    // 'object n' \n\t0x65 0x61 0x72 0x20 0x6F 0x72 0x20 0x66    // 'ear or f' \n\t0x61 0x72 0x20 0x61 0x6E 0x64 0x20 0x75    // 'ar and u' \n\t0x70 0x20 0x6F 0x72 0x20 0x64 0x6F 0x77    // 'p or dow' \n\t0x6E 0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69    // 'n???Cli' \n\t0x63 0x6B 0x20 0x41 0x63 0x74 0x6F 0x72    // 'ck Actor' \n\t0x73 0x20 0x26 0x20 0x50 0x72 0x6F 0x70    // 's & Prop' \n\t0x73 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 's, click' \n\t0x20 0x52 0x65 0x70 0x6F 0x73 0x69 0x74    // ' Reposit' \n\t0x69 0x6F 0x6E 0x2D 0x01 0x2C 0x20 0x74    // 'ion-?, t' \n\t0x68 0x65 0x6E 0x20 0x68 0x6F 0x6C 0x64    // 'hen hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x68    // ' down th' \n\t0x65 0x20 0x55 0x70 0x20 0x6F 0x72 0x20    // 'e Up or ' \n\t0x44 0x6F 0x77 0x6E 0x20 0x41 0x72 0x72    // 'Down Arr' \n\t0x6F 0x77 0x20 0x6B 0x65 0x79 0x20 0x61    // 'ow key a' \n\t0x73 0x20 0x79 0x6F 0x75 0x20 0x64 0x72    // 's you dr' \n\t0x61 0x67 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'ag.??To ' \n\t0x6D 0x6F 0x76 0x65 0x20 0x61 0x20 0x33    // 'move a 3' \n\t0x44 0x20 0x6F 0x62 0x6A 0x65 0x63 0x74    // 'D object' \n\t0x20 0x6E 0x65 0x61 0x72 0x20 0x6F 0x72    // ' near or' \n\t0x20 0x66 0x61 0x72 0x20 0x61 0x6E 0x64    // ' far and' \n\t0x20 0x75 0x70 0x20 0x6F 0x72 0x20 0x64    // ' up or d' \n\t0x6F 0x77 0x6E 0x20 0x61 0x73 0x20 0x79    // 'own as y' \n\t0x6F 0x75 0x20 0x63 0x72 0x65 0x61 0x74    // 'ou creat' \n\t0x65 0x20 0x61 0x20 0x70 0x61 0x74 0x68    // 'e a path' \n\t0x3F 0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69    // '????Cli' \n\t0x63 0x6B 0x20 0x41 0x63 0x74 0x6F 0x72    // 'ck Actor' \n\t0x73 0x20 0x26 0x20 0x50 0x72 0x6F 0x70    // 's & Prop' \n\t0x73 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 's, click' \n\t0x20 0x52 0x65 0x73 0x75 0x6D 0x65 0x20    // ' Resume ' \n\t0x4C 0x61 0x73 0x74 0x20 0x41 0x63 0x74    // 'Last Act' \n\t0x69 0x6F 0x6E 0x2D 0x01 0x2C 0x20 0x74    // 'ion-?, t' \n\t0x68 0x65 0x6E 0x20 0x68 0x6F 0x6C 0x64    // 'hen hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x68    // ' down th' \n\t0x65 0x20 0x55 0x70 0x20 0x6F 0x72 0x20    // 'e Up or ' \n\t0x44 0x6F 0x77 0x6E 0x20 0x41 0x72 0x72    // 'Down Arr' \n\t0x6F 0x77 0x20 0x6B 0x65 0x79 0x20 0x61    // 'ow key a' \n\t0x73 0x20 0x79 0x6F 0x75 0x20 0x64 0x72    // 's you dr' \n\t0x61 0x67 0x2E                             // 'ag.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_18= ktpcBook10Tips13\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"(L) Tips Pg 13\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"(L) Tips Pg 13\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook10Tips13\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCutCopyPaste __HELP_SYMBOL( STN \"mbmpCutCopyPaste\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPCopyRoute __HELP_SYMBOL( STN \"mbmpCCPCopyRoute\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x01 0xF6 0x00 0x00 0x5C 0x00 0x00 0x01    // '???\\???' \n\t0x01 0x00 0x00 0x00 0x5F 0x00 0x00 0x01    // '????_???' \n\t0x01 0xF6 0x00 0x00 0x6F 0x00 0x00 0x01    // '???o???' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0x01    // '????p???' \n\t0x01 0xF6 0x00 0x00 0x9F 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xCA 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x22 0x02 0x00 0x01    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x00 0x00 0x00 0x00 0xCC 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x22 0x02 0x00 0x03    // '???\"???' \n\t0x00 0x00 0x00 0x00 0x22 0x02 0x00 0x40    // '????\"??@' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x80    // '????&??' \n\t0x00 0x00 0x02 0x00 0xCC 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0xCC 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0x5C 0x00 0x00 0xC0    // '????\\??' \n\t0x01 0x00 0x00 0x00 0x6F 0x00 0x00 0xC0    // '????o??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x61 0x6B    // '??To mak' \n\t0x65 0x20 0x74 0x77 0x6F 0x20 0x61 0x63    // 'e two ac' \n\t0x74 0x6F 0x72 0x73 0x20 0x66 0x6F 0x6C    // 'tors fol' \n\t0x6C 0x6F 0x77 0x20 0x65 0x61 0x63 0x68    // 'low each' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x0D 0x0A    // ' other??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x41 0x63 0x74 0x6F 0x72 0x73 0x20 0x26    // 'Actors &' \n\t0x20 0x50 0x72 0x6F 0x70 0x73 0x2C 0x20    // ' Props, ' \n\t0x74 0x68 0x65 0x6E 0x20 0x63 0x6C 0x69    // 'then cli' \n\t0x63 0x6B 0x20 0x43 0x75 0x74 0x2C 0x20    // 'ck Cut, ' \n\t0x43 0x6F 0x70 0x79 0x2C 0x20 0x26 0x20    // 'Copy, & ' \n\t0x50 0x61 0x73 0x74 0x65 0x2D 0x01 0x0D    // 'Paste-??' \n\t0x0A 0x95 0x09 0x55 0x73 0x65 0x20 0x43    // '??Use C' \n\t0x6F 0x70 0x79 0x20 0x50 0x61 0x74 0x68    // 'opy Path' \n\t0x2D 0x01 0x20 0x74 0x6F 0x20 0x63 0x6F    // '-? to co' \n\t0x70 0x79 0x20 0x74 0x68 0x65 0x20 0x70    // 'py the p' \n\t0x61 0x74 0x68 0x20 0x6F 0x66 0x20 0x61    // 'ath of a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x2C    // 'n actor,' \n\t0x20 0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F    // ' prop, o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x20 0x61 0x6E 0x64 0x20 0x70 0x61    // 'd and pa' \n\t0x73 0x74 0x65 0x20 0x74 0x68 0x65 0x20    // 'ste the ' \n\t0x70 0x61 0x74 0x68 0x20 0x6F 0x6E 0x74    // 'path ont' \n\t0x6F 0x20 0x61 0x6E 0x6F 0x74 0x68 0x65    // 'o anothe' \n\t0x72 0x20 0x33 0x44 0x20 0x6F 0x62 0x6A    // 'r 3D obj' \n\t0x65 0x63 0x74 0x2E 0x0D 0x0A 0x57 0x68    // 'ect.??Wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x20 0x63    // 'en you c' \n\t0x6F 0x70 0x79 0x20 0x61 0x20 0x70 0x61    // 'opy a pa' \n\t0x74 0x68 0x2C 0x20 0x79 0x6F 0x75 0x20    // 'th, you ' \n\t0x63 0x6F 0x70 0x79 0x20 0x6F 0x6E 0x6C    // 'copy onl' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x70 0x61    // 'y the pa' \n\t0x74 0x68 0x2D 0x2D 0x6E 0x6F 0x74 0x20    // 'th--not ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x69    // 'the acti' \n\t0x6F 0x6E 0x2E 0x20 0x20 0x49 0x66 0x20    // 'on.  If ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x77 0x6F 0x20 0x61 0x63 0x74    // ' two act' \n\t0x6F 0x72 0x73 0x20 0x74 0x6F 0x20 0x77    // 'ors to w' \n\t0x61 0x6C 0x6B 0x20 0x73 0x69 0x64 0x65    // 'alk side' \n\t0x2D 0x62 0x79 0x2D 0x73 0x69 0x64 0x65    // '-by-side' \n\t0x2C 0x20 0x79 0x6F 0x75 0x20 0x6E 0x65    // ', you ne' \n\t0x65 0x64 0x20 0x74 0x6F 0x20 0x67 0x69    // 'ed to gi' \n\t0x76 0x65 0x20 0x62 0x6F 0x74 0x68 0x20    // 've both ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x6D 0x20    // 'of them ' \n\t0x74 0x68 0x65 0x20 0x57 0x61 0x6C 0x6B    // 'the Walk' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x2E    // ' action.' \n\t0x20 0x20 0x4E 0x6F 0x74 0x65 0x3A 0x20    // '  Note: ' \n\t0x20 0x42 0x69 0x67 0x20 0x61 0x63 0x74    // ' Big act' \n\t0x6F 0x72 0x73 0x20 0x74 0x65 0x6E 0x64    // 'ors tend' \n\t0x20 0x74 0x6F 0x20 0x77 0x61 0x6C 0x6B    // ' to walk' \n\t0x20 0x66 0x61 0x73 0x74 0x65 0x72 0x20    // ' faster ' \n\t0x74 0x68 0x61 0x6E 0x20 0x73 0x6D 0x61    // 'than sma' \n\t0x6C 0x6C 0x20 0x61 0x63 0x74 0x6F 0x72    // 'll actor' \n\t0x73 0x2E 0x20 0x20 0x54 0x6F 0x20 0x67    // 's.  To g' \n\t0x65 0x74 0x20 0x74 0x68 0x65 0x20 0x65    // 'et the e' \n\t0x66 0x66 0x65 0x63 0x74 0x20 0x79 0x6F    // 'ffect yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x2C 0x20    // 'u want, ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x61 0x79 0x20    // 'you may ' \n\t0x6E 0x65 0x65 0x64 0x20 0x74 0x6F 0x20    // 'need to ' \n\t0x67 0x69 0x76 0x65 0x20 0x74 0x68 0x65    // 'give the' \n\t0x20 0x62 0x69 0x67 0x20 0x61 0x63 0x74    // ' big act' \n\t0x6F 0x72 0x20 0x74 0x68 0x65 0x20 0x57    // 'or the W' \n\t0x61 0x6C 0x6B 0x20 0x53 0x6C 0x6F 0x77    // 'alk Slow' \n\t0x6C 0x79 0x20 0x61 0x63 0x74 0x69 0x6F    // 'ly actio' \n\t0x6E 0x20 0x61 0x6E 0x64 0x20 0x74 0x68    // 'n and th' \n\t0x65 0x20 0x6C 0x69 0x74 0x74 0x6C 0x65    // 'e little' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x20 0x74    // ' actor t' \n\t0x68 0x65 0x20 0x57 0x61 0x6C 0x6B 0x20    // 'he Walk ' \n\t0x46 0x61 0x73 0x74 0x20 0x61 0x63 0x74    // 'Fast act' \n\t0x69 0x6F 0x6E 0x2E                        // 'ion.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= ktpcBook10Tips14\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"(L) Tips Pg 14\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"(L) Tips Pg 14\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook10Tips14\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsSooner __HELP_SYMBOL( STN \"mbmpActorsSooner\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x9D 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xDF 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xE0 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0xE3 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x1B 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x49 0x00 0x00 0x03    // '???I???' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x80    // '????I??' \n\t0x00 0x00 0x02 0x00 0x88 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x9D 0x00 0x00 0x82    // '??????' \n\t0x0F 0x00 0x00 0x00 0x13 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0xDF 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x77 0x68 0x65 0x6E    // 'nge when' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x67 0x65 0x74 0x73    // 'ord gets' \n\t0x20 0x74 0x6F 0x20 0x61 0x20 0x70 0x61    // ' to a pa' \n\t0x72 0x74 0x69 0x63 0x75 0x6C 0x61 0x72    // 'rticular' \n\t0x20 0x6C 0x6F 0x63 0x61 0x74 0x69 0x6F    // ' locatio' \n\t0x6E 0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20    // 'n??1?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x20 0x61 0x72 0x72 0x69 0x76    // 'or arriv' \n\t0x65 0x73 0x20 0x61 0x74 0x20 0x74 0x68    // 'es at th' \n\t0x65 0x20 0x20 0x6C 0x6F 0x63 0x61 0x74    // 'e  locat' \n\t0x69 0x6F 0x6E 0x20 0x79 0x6F 0x75 0x20    // 'ion you ' \n\t0x77 0x61 0x6E 0x74 0x2E 0x0D 0x0A 0x32    // 'want.??2' \n\t0x20 0x20 0x43 0x6C 0x69 0x63 0x6B 0x20    // '  Click ' \n\t0x41 0x63 0x74 0x6F 0x72 0x73 0x20 0x26    // 'Actors &' \n\t0x20 0x50 0x72 0x6F 0x70 0x73 0x2C 0x20    // ' Props, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x4D 0x6F    // 'click Mo' \n\t0x72 0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73    // 're Tools' \n\t0x2C 0x20 0x74 0x68 0x65 0x6E 0x20 0x63    // ', then c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x53 0x79 0x6E    // 'lick Syn' \n\t0x63 0x68 0x72 0x6F 0x6E 0x69 0x7A 0x65    // 'chronize' \n\t0x2D 0x01 0x2E 0x20 0x20 0x43 0x6C 0x69    // '-?.  Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x61    // 'ck the a' \n\t0x63 0x74 0x6F 0x72 0x20 0x74 0x6F 0x20    // 'ctor to ' \n\t0x66 0x72 0x65 0x65 0x7A 0x65 0x20 0x69    // 'freeze i' \n\t0x74 0x20 0x69 0x6E 0x20 0x74 0x68 0x61    // 't in tha' \n\t0x74 0x20 0x6C 0x6F 0x63 0x61 0x74 0x69    // 't locati' \n\t0x6F 0x6E 0x2E 0x0D 0x0A 0x33 0x09 0x49    // 'on.??3?I' \n\t0x66 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'f you wa' \n\t0x6E 0x74 0x20 0x74 0x68 0x65 0x20 0x61    // 'nt the a' \n\t0x63 0x74 0x6F 0x72 0x20 0x74 0x6F 0x20    // 'ctor to ' \n\t0x61 0x72 0x72 0x69 0x76 0x65 0x20 0x61    // 'arrive a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x6C 0x6F    // 't the lo' \n\t0x63 0x61 0x74 0x69 0x6F 0x6E 0x20 0x6C    // 'cation l' \n\t0x61 0x74 0x65 0x72 0x2C 0x20 0x63 0x6C    // 'ater, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x46 0x6F 0x72 0x77 0x61 0x72 0x64 0x20    // 'Forward ' \n\t0x41 0x72 0x72 0x6F 0x77 0x20 0x74 0x6F    // 'Arrow to' \n\t0x20 0x6D 0x6F 0x76 0x65 0x20 0x74 0x68    // ' move th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'e movie ' \n\t0x66 0x6F 0x72 0x77 0x61 0x72 0x64 0x20    // 'forward ' \n\t0x69 0x6E 0x20 0x74 0x69 0x6D 0x65 0x2E    // 'in time.' \n\t0x0D 0x0A 0x2D 0x2D 0x6F 0x72 0x2D 0x2D    // '??--or--' \n\t0x0D 0x0A 0x49 0x66 0x20 0x79 0x6F 0x75    // '??If you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x68    // ' want th' \n\t0x65 0x20 0x61 0x63 0x74 0x6F 0x72 0x20    // 'e actor ' \n\t0x74 0x6F 0x20 0x61 0x72 0x72 0x69 0x76    // 'to arriv' \n\t0x65 0x20 0x65 0x61 0x72 0x6C 0x69 0x65    // 'e earlie' \n\t0x72 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'r, click' \n\t0x20 0x74 0x68 0x65 0x20 0x42 0x61 0x63    // ' the Bac' \n\t0x6B 0x20 0x41 0x72 0x72 0x6F 0x77 0x20    // 'k Arrow ' \n\t0x74 0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'to move ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x76 0x69    // 'the movi' \n\t0x65 0x20 0x62 0x61 0x63 0x6B 0x77 0x61    // 'e backwa' \n\t0x72 0x64 0x73 0x20 0x69 0x6E 0x20 0x74    // 'rds in t' \n\t0x69 0x6D 0x65 0x2E 0x20 0x20 0x43 0x6C    // 'ime.  Cl' \n\t0x69 0x63 0x6B 0x20 0x61 0x6E 0x79 0x77    // 'ick anyw' \n\t0x68 0x65 0x72 0x65 0x20 0x74 0x6F 0x20    // 'here to ' \n\t0x22 0x75 0x6E 0x66 0x72 0x65 0x65 0x7A    // '\"unfreez' \n\t0x65 0x22 0x20 0x74 0x68 0x65 0x20 0x61    // 'e\" the a' \n\t0x63 0x74 0x6F 0x72 0x2E                   // 'ctor.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= ktpcBook10Tips15\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"(L) Tips Pg 15\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"(L) Tips Pg 15\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook10Tips15\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsSquash __HELP_SYMBOL( STN \"mbmpActorsSquash\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorActions __HELP_SYMBOL( STN \"mbmpActorActions\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x01 0xF1 0x00 0x00 0x77 0x00 0x00 0x01    // '???w???' \n\t0x01 0xF6 0x00 0x00 0xB3 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xB6 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x40 0x01 0x00 0x01    // '???@???' \n\t0x01 0x00 0x00 0x00 0x41 0x01 0x00 0x01    // '????A???' \n\t0x01 0xF6 0x00 0x00 0x65 0x01 0x00 0x01    // '???e???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2F 0x00 0x00 0x03    // '???/???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x80    // '????1??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x14 0x00 0x00 0x00 0xB6 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0xB3 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0x40 0x01 0x00 0xC0    // '????@??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x71 0x75    // '??To squ' \n\t0x61 0x73 0x68 0x20 0x6F 0x72 0x20 0x73    // 'ash or s' \n\t0x74 0x72 0x65 0x74 0x63 0x68 0x20 0x61    // 'tretch a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x2C    // 'n actor,' \n\t0x20 0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F    // ' prop, o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x0D 0x0A 0x95 0x09 0x49 0x66 0x20    // 'd???If ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x73 0x68 0x72 0x69    // ' to shri' \n\t0x6E 0x6B 0x20 0x6F 0x72 0x20 0x73 0x74    // 'nk or st' \n\t0x72 0x65 0x74 0x63 0x68 0x20 0x61 0x6E    // 'retch an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x20 0x41 0x63 0x74 0x6F 0x72 0x73 0x20    // ' Actors ' \n\t0x26 0x20 0x50 0x72 0x6F 0x70 0x73 0x2C    // '& Props,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x4D    // ' click M' \n\t0x6F 0x72 0x65 0x20 0x54 0x6F 0x6F 0x6C    // 'ore Tool' \n\t0x73 0x2C 0x20 0x74 0x68 0x65 0x6E 0x20    // 's, then ' \n\t0x75 0x73 0x65 0x20 0x53 0x71 0x75 0x61    // 'use Squa' \n\t0x73 0x68 0x20 0x26 0x20 0x53 0x74 0x72    // 'sh & Str' \n\t0x65 0x74 0x63 0x68 0x2D 0x01 0x0D 0x0A    // 'etch-???' \n\t0x95 0x09 0x49 0x66 0x20 0x79 0x6F 0x75    // '?If you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x77 0x61 0x74 0x63 0x68 0x20 0x61    // ' watch a' \n\t0x73 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 's an act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x73 0x68 0x72    // 'word shr' \n\t0x69 0x6E 0x6B 0x73 0x20 0x6F 0x72 0x20    // 'inks or ' \n\t0x73 0x74 0x72 0x65 0x74 0x63 0x68 0x65    // 'stretche' \n\t0x73 0x20 0x62 0x65 0x66 0x6F 0x72 0x65    // 's before' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x76 0x65    // ' your ve' \n\t0x72 0x79 0x20 0x65 0x79 0x65 0x73 0x2C    // 'ry eyes,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x41    // ' click A' \n\t0x63 0x74 0x6F 0x72 0x73 0x20 0x26 0x20    // 'ctors & ' \n\t0x50 0x72 0x6F 0x70 0x73 0x2C 0x20 0x74    // 'Props, t' \n\t0x68 0x65 0x6E 0x20 0x63 0x6C 0x69 0x63    // 'hen clic' \n\t0x6B 0x20 0x41 0x63 0x74 0x69 0x6F 0x6E    // 'k Action' \n\t0x73 0x2D 0x01 0x2E 0x20 0x20 0x43 0x68    // 's-?.  Ch' \n\t0x6F 0x6F 0x73 0x65 0x20 0x74 0x68 0x65    // 'oose the' \n\t0x20 0x47 0x72 0x6F 0x77 0x20 0x6F 0x72    // ' Grow or' \n\t0x20 0x53 0x68 0x72 0x69 0x6E 0x6B 0x20    // ' Shrink ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x2E         // 'action.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1E= ktpcBook10Tips16\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"(L) Tips Pg 16\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"(L) Tips Pg 16\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook10Tips16\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsEfxBrowser __HELP_SYMBOL( STN \"mbmpSoundsEfxBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsMicBrowser __HELP_SYMBOL( STN \"mbmpSoundsMicBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRecordMic __HELP_SYMBOL( STN \"mbmpRecordMic\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4C 0x00 0x00 0x01    // '????L???' \n\t0x01 0xF6 0x00 0x00 0x5A 0x00 0x00 0x01    // '???Z???' \n\t0x01 0xF6 0x00 0x00 0x5F 0x00 0x00 0x01    // '???_???' \n\t0x01 0x00 0x00 0x00 0x60 0x00 0x00 0x01    // '????`???' \n\t0x01 0xF6 0x00 0x00 0x81 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x70 0x01 0x00 0x01    // '????p???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x84 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xAE 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x13 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x2D 0x01 0x00 0x03    // '???-???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x80    // '????K??' \n\t0x00 0x00 0x03 0x00 0x6A 0x00 0x00 0x80    // '????j??' \n\t0x00 0x00 0x02 0x00 0x84 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xAE 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x13 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1B 0x00 0x00 0x82    // '???????' \n\t0x0F 0x00 0x00 0x00 0x4B 0x00 0x00 0x82    // '????K??' \n\t0x0A 0x00 0x00 0x00 0x84 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0xAE 0x00 0x00 0x82    // '??????' \n\t0x0A 0x00 0x00 0x00 0x13 0x01 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2F 0x01 0x00 0x82    // '????/??' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0xC0    // '????K??' \n\t0x01 0x00 0x00 0x00 0x5F 0x00 0x00 0xC0    // '????_??' \n\t0x02 0x00 0x00 0x00 0x81 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x63    // '??To rec' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x72    // 'ord your' \n\t0x20 0x6F 0x77 0x6E 0x20 0x73 0x6F 0x75    // ' own sou' \n\t0x6E 0x64 0x73 0x0D 0x0A 0x31 0x09 0x43    // 'nds??1?C' \n\t0x68 0x6F 0x6F 0x73 0x65 0x20 0x74 0x68    // 'hoose th' \n\t0x65 0x20 0x74 0x79 0x70 0x65 0x20 0x6F    // 'e type o' \n\t0x66 0x20 0x73 0x6F 0x75 0x6E 0x64 0x20    // 'f sound ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x72 0x65 0x63 0x6F    // ' to reco' \n\t0x72 0x64 0x3A 0x0D 0x0A 0x01 0x2D 0x53    // 'rd:???-S' \n\t0x6F 0x75 0x6E 0x64 0x20 0x45 0x66 0x66    // 'ound Eff' \n\t0x65 0x63 0x74 0x73 0x20 0x6F 0x72 0x20    // 'ects or ' \n\t0x09 0x01 0x2D 0x53 0x70 0x65 0x65 0x63    // '??-Speec' \n\t0x68 0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C    // 'h.??2?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x6D 0x69 0x63 0x72 0x6F 0x70 0x68 0x6F    // 'micropho' \n\t0x6E 0x65 0x2D 0x01 0x0D 0x0A 0x54 0x6F    // 'ne-???To' \n\t0x20 0x72 0x65 0x63 0x6F 0x72 0x64 0x20    // ' record ' \n\t0x79 0x6F 0x75 0x72 0x20 0x76 0x6F 0x69    // 'your voi' \n\t0x63 0x65 0x20 0x61 0x74 0x20 0x74 0x68    // 'ce at th' \n\t0x65 0x20 0x62 0x65 0x73 0x74 0x20 0x71    // 'e best q' \n\t0x75 0x61 0x6C 0x69 0x74 0x79 0x0D 0x0A    // 'uality??' \n\t0x95 0x09 0x55 0x73 0x65 0x20 0x74 0x68    // '?Use th' \n\t0x65 0x20 0x6D 0x69 0x63 0x72 0x6F 0x70    // 'e microp' \n\t0x68 0x6F 0x6E 0x65 0x20 0x66 0x6F 0x75    // 'hone fou' \n\t0x6E 0x64 0x20 0x69 0x6E 0x20 0x53 0x6F    // 'nd in So' \n\t0x75 0x6E 0x64 0x20 0x45 0x66 0x66 0x65    // 'und Effe' \n\t0x63 0x74 0x73 0x20 0x72 0x61 0x74 0x68    // 'cts rath' \n\t0x65 0x72 0x20 0x74 0x68 0x61 0x6E 0x20    // 'er than ' \n\t0x53 0x70 0x65 0x65 0x63 0x68 0x20 0x28    // 'Speech (' \n\t0x74 0x68 0x69 0x73 0x20 0x77 0x69 0x6C    // 'this wil' \n\t0x6C 0x20 0x74 0x61 0x6B 0x65 0x20 0x75    // 'l take u' \n\t0x70 0x20 0x6D 0x6F 0x72 0x65 0x20 0x64    // 'p more d' \n\t0x69 0x73 0x6B 0x20 0x73 0x70 0x61 0x63    // 'isk spac' \n\t0x65 0x29 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'e).??To ' \n\t0x61 0x64 0x64 0x20 0x79 0x6F 0x75 0x72    // 'add your' \n\t0x20 0x66 0x61 0x76 0x6F 0x72 0x69 0x74    // ' favorit' \n\t0x65 0x20 0x6D 0x75 0x73 0x69 0x63 0x0D    // 'e music?' \n\t0x0A 0x95 0x09 0x55 0x73 0x65 0x20 0x74    // '??Use t' \n\t0x68 0x65 0x20 0x53 0x6F 0x75 0x6E 0x64    // 'he Sound' \n\t0x20 0x45 0x66 0x66 0x65 0x63 0x74 0x73    // ' Effects' \n\t0x20 0x6D 0x69 0x63 0x72 0x6F 0x70 0x68    // ' microph' \n\t0x6F 0x6E 0x65 0x20 0x61 0x6E 0x64 0x20    // 'one and ' \n\t0x72 0x65 0x63 0x6F 0x72 0x64 0x20 0x66    // 'record f' \n\t0x72 0x6F 0x6D 0x20 0x79 0x6F 0x75 0x72    // 'rom your' \n\t0x20 0x62 0x6F 0x6F 0x6D 0x20 0x62 0x6F    // ' boom bo' \n\t0x78 0x2E                                  // 'x.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_20= ktpcBook10Tips17\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"(L) Tips Pg 17\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"(L) Tips Pg 17\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook10Tips17\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPausesSound __HELP_SYMBOL( STN \"mbmpPausesSound\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8E 0x01 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xD1 0x01 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x8E 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xCF 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xFC 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x60 0x01 0x00 0x03    // '????`???' \n\t0x0A 0x00 0x00 0xFD 0x8C 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x8E 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0xD1 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xFE 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x60 0x01 0x00 0x80    // '????`??' \n\t0x00 0x00 0x00 0x00 0x8E 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8E 0x00 0x00 0x82    // '??????' \n\t0x0A 0x00 0x00 0x00 0xD1 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0xFE 0x00 0x00 0x82    // '??????' \n\t0x0A 0x00 0x00 0x00 0x60 0x01 0x00 0x82    // '????`??' \n\t0x05 0x00 0x00 0x00 0x8E 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0xD1 0x01 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x45 0x76 0x65 0x72 0x79 0x74    // '??Everyt' \n\t0x69 0x6D 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ime you ' \n\t0x72 0x65 0x63 0x6F 0x72 0x64 0x20 0x6F    // 'record o' \n\t0x72 0x20 0x69 0x6D 0x70 0x6F 0x72 0x74    // 'r import' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \n\t0x2C 0x20 0x69 0x74 0x20 0x69 0x73 0x20    // ', it is ' \n\t0x61 0x64 0x64 0x65 0x64 0x20 0x74 0x6F    // 'added to' \n\t0x20 0x74 0x68 0x65 0x20 0x53 0x6F 0x75    // ' the Sou' \n\t0x6E 0x64 0x20 0x45 0x66 0x66 0x65 0x63    // 'nd Effec' \n\t0x74 0x73 0x20 0x6F 0x72 0x20 0x53 0x70    // 'ts or Sp' \n\t0x65 0x65 0x63 0x68 0x20 0x63 0x68 0x6F    // 'eech cho' \n\t0x69 0x63 0x65 0x73 0x2E 0x20 0x20 0x54    // 'ices.  T' \n\t0x6F 0x20 0x72 0x65 0x6D 0x6F 0x76 0x65    // 'o remove' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \n\t0x20 0x79 0x6F 0x75 0x20 0x68 0x61 0x76    // ' you hav' \n\t0x65 0x20 0x72 0x65 0x63 0x6F 0x72 0x64    // 'e record' \n\t0x65 0x64 0x20 0x6F 0x72 0x20 0x69 0x6D    // 'ed or im' \n\t0x70 0x6F 0x72 0x74 0x65 0x64 0x0D 0x0A    // 'ported??' \n\t0x95 0x09 0x53 0x65 0x6C 0x65 0x63 0x74    // '?Select' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x20 0x79 0x6F 0x75 0x20 0x77    // 'nd you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x72    // 'ant to r' \n\t0x65 0x6D 0x6F 0x76 0x65 0x2C 0x20 0x74    // 'emove, t' \n\t0x68 0x65 0x6E 0x20 0x70 0x72 0x65 0x73    // 'hen pres' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x44 0x65    // 's the De' \n\t0x6C 0x65 0x74 0x65 0x20 0x6B 0x65 0x79    // 'lete key' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x61    // '.??To ma' \n\t0x6B 0x65 0x20 0x74 0x77 0x6F 0x20 0x73    // 'ke two s' \n\t0x6F 0x75 0x6E 0x64 0x73 0x20 0x70 0x6C    // 'ounds pl' \n\t0x61 0x79 0x20 0x6F 0x6E 0x65 0x20 0x61    // 'ay one a' \n\t0x66 0x74 0x65 0x72 0x20 0x74 0x68 0x65    // 'fter the' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x0D 0x0A    // ' other??' \n\t0x95 0x09 0x41 0x74 0x74 0x61 0x63 0x68    // '?Attach' \n\t0x20 0x74 0x68 0x65 0x20 0x66 0x69 0x72    // ' the fir' \n\t0x73 0x74 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'st sound' \n\t0x2C 0x20 0x74 0x68 0x65 0x6E 0x20 0x68    // ', then h' \n\t0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E    // 'old down' \n\t0x20 0x43 0x74 0x72 0x6C 0x20 0x61 0x73    // ' Ctrl as' \n\t0x20 0x79 0x6F 0x75 0x20 0x61 0x74 0x74    // ' you att' \n\t0x61 0x63 0x68 0x20 0x74 0x68 0x65 0x20    // 'ach the ' \n\t0x73 0x65 0x63 0x6F 0x6E 0x64 0x20 0x73    // 'second s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F 0x20    // 'ound to ' \n\t0x74 0x68 0x65 0x20 0x73 0x61 0x6D 0x65    // 'the same' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x2E    // ' object.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x70 0x61 0x75    // '??To pau' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x6D    // 'se the m' \n\t0x6F 0x76 0x69 0x65 0x20 0x75 0x6E 0x74    // 'ovie unt' \n\t0x69 0x6C 0x20 0x61 0x20 0x73 0x6F 0x75    // 'il a sou' \n\t0x6E 0x64 0x20 0x69 0x73 0x20 0x66 0x69    // 'nd is fi' \n\t0x6E 0x69 0x73 0x68 0x65 0x64 0x0D 0x0A    // 'nished??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x53 0x6F 0x75 0x6E 0x64 0x73 0x2C 0x20    // 'Sounds, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x4D 0x6F    // 'click Mo' \n\t0x72 0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73    // 're Tools' \n\t0x2C 0x20 0x74 0x68 0x65 0x6E 0x20 0x63    // ', then c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x57 0x61 0x69    // 'lick Wai' \n\t0x74 0x20 0x66 0x6F 0x72 0x20 0x53 0x6F    // 't for So' \n\t0x75 0x6E 0x64 0x20 0x74 0x6F 0x20 0x45    // 'und to E' \n\t0x6E 0x64 0x2D 0x01                        // 'nd-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_22= ktpcBook10Tips18\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"(L) Tips Pg 18\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"(L) Tips Pg 18\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook10Tips18\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsListen __HELP_SYMBOL( STN \"mbmpSoundsListen\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x19 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x01 0xF6 0x00 0x00 0x7F 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xC5 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xC7 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x77 0x01 0x00 0x01    // '????w???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2B 0x00 0x00 0x03    // '???+???' \n\t0x00 0x00 0x00 0x00 0xC7 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xEF 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x38 0x01 0x00 0x03    // '???8???' \n\t0x0A 0x00 0x00 0xFD 0x4B 0x01 0x00 0x03    // '???K???' \n\t0x0F 0x00 0x00 0xFD 0x77 0x01 0x00 0x03    // '???w???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x80    // '????+??' \n\t0x00 0x00 0x02 0x00 0xC7 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xEF 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x3A 0x01 0x00 0x80    // '????:??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x56 0x00 0x00 0x82    // '????V??' \n\t0x0A 0x00 0x00 0x00 0xC7 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0xEF 0x00 0x00 0x82    // '??????' \n\t0x0A 0x00 0x00 0x00 0x3A 0x01 0x00 0x82    // '????:??' \n\t0x05 0x00 0x00 0x00 0x4B 0x01 0x00 0x82    // '????K??' \n\t0x00 0x00 0x00 0x00 0x7F 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x76 0x6F 0x6C 0x75 0x6D 0x65 0x20 0x6F    // 'volume o' \n\t0x66 0x20 0x69 0x6E 0x64 0x69 0x76 0x69    // 'f indivi' \n\t0x64 0x75 0x61 0x6C 0x20 0x73 0x6F 0x75    // 'dual sou' \n\t0x6E 0x64 0x73 0x0D 0x0A 0x31 0x09 0x47    // 'nds??1?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x77    // ' frame w' \n\t0x68 0x65 0x72 0x65 0x20 0x74 0x68 0x65    // 'here the' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x73    // ' sound s' \n\t0x74 0x61 0x72 0x74 0x73 0x2E 0x0D 0x0A    // 'tarts.??' \n\t0x32 0x20 0x20 0x43 0x6C 0x69 0x63 0x6B    // '2  Click' \n\t0x20 0x53 0x6F 0x75 0x6E 0x64 0x73 0x2C    // ' Sounds,' \n\t0x20 0x74 0x68 0x65 0x6E 0x20 0x63 0x6C    // ' then cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x4C 0x69 0x73 0x74 0x65 0x6E 0x65 0x72    // 'Listener' \n\t0x2D 0x01 0x0D 0x0A 0x33 0x09 0x43 0x6C    // '-???3?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x33 0x44 0x20 0x6F 0x62 0x6A 0x65 0x63    // '3D objec' \n\t0x74 0x20 0x6F 0x72 0x20 0x62 0x61 0x63    // 't or bac' \n\t0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64 0x20    // 'kground ' \n\t0x77 0x68 0x6F 0x73 0x65 0x20 0x73 0x6F    // 'whose so' \n\t0x75 0x6E 0x64 0x20 0x79 0x6F 0x75 0x20    // 'und you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x61 0x64 0x6A 0x75 0x73 0x74 0x2E 0x0D    // 'adjust.?' \n\t0x0A 0x54 0x6F 0x20 0x63 0x75 0x74 0x2C    // '?To cut,' \n\t0x20 0x63 0x6F 0x70 0x79 0x2C 0x20 0x6F    // ' copy, o' \n\t0x72 0x20 0x6D 0x6F 0x76 0x65 0x20 0x61    // 'r move a' \n\t0x20 0x77 0x68 0x6F 0x6C 0x65 0x20 0x77    // ' whole w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x0D    // 'ord box?' \n\t0x0A 0x95 0x09 0x4D 0x61 0x6B 0x65 0x20    // '??Make ' \n\t0x73 0x75 0x72 0x65 0x20 0x79 0x6F 0x75    // 'sure you' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x6F    // ' click o' \n\t0x6E 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 'ne of th' \n\t0x65 0x20 0x77 0x6F 0x72 0x64 0x20 0x62    // 'e word b' \n\t0x6F 0x78 0x20 0x65 0x64 0x67 0x65 0x73    // 'ox edges' \n\t0x2C 0x20 0x4E 0x4F 0x54 0x20 0x74 0x68    // ', NOT th' \n\t0x65 0x20 0x77 0x6F 0x72 0x64 0x73 0x20    // 'e words ' \n\t0x69 0x6E 0x73 0x69 0x64 0x65 0x20 0x69    // 'inside i' \n\t0x74 0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x63    // 't.??To c' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x77 0x6F    // 'hange wo' \n\t0x72 0x64 0x73 0x0D 0x0A 0x95 0x09 0x43    // 'rds???C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x57 0x6F 0x72    // 'lick Wor' \n\t0x64 0x73 0x2C 0x20 0x74 0x68 0x65 0x6E    // 'ds, then' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x69    // ' click i' \n\t0x6E 0x73 0x69 0x64 0x65 0x20 0x61 0x20    // 'nside a ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/bktocbas.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcBook1TOC\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Book: (L) Table of contents \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Book: (L) Table of contents \")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBook1TOC 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook1TOC\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBook1TOC\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x04 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x2E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '.???????' \n\t0x01 0x00 0x00 0x00 0xD6 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x4E 0x00 0x00 0x02    // '????N???' \n\t0x00 0x00 0x00 0x00 0x58 0x00 0x00 0x02    // '????X???' \n\t0x01 0x00 0x00 0x00 0x6D 0x00 0x00 0x02    // '????m???' \n\t0x01 0x00 0x00 0x00 0xE8 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xED 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xD6 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0x03    // '????q???' \n\t0x0A 0x00 0x00 0xFD 0x7B 0x00 0x00 0x03    // '???{???' \n\t0x00 0x00 0x00 0x00 0xED 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xF5 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x7B 0x01 0x00 0x03    // '????{???' \n\t0x0A 0x00 0x00 0xFD 0x82 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x05    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x05    // '????????' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x05    // '????o???' \n\t0x02 0x00 0x00 0x00 0x7B 0x00 0x00 0x05    // '????{???' \n\t0x00 0x00 0x00 0x00 0xEA 0x00 0x00 0x05    // '???????' \n\t0x01 0x00 0x00 0x00 0xF5 0x00 0x00 0x05    // '???????' \n\t0x00 0x00 0x00 0x00 0x78 0x01 0x00 0x05    // '????x???' \n\t0x02 0x00 0x00 0x00 0x82 0x01 0x00 0x05    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x0B 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x40    // '????o??@' \n\t0x04 0x00 0x00 0x00 0x7B 0x00 0x00 0x40    // '????{??@' \n\t0x00 0x00 0x00 0x00 0xEA 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xF5 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x78 0x01 0x00 0x40    // '????x??@' \n\t0x06 0x00 0x00 0x00 0x82 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x03 0x00 0x6F 0x00 0x00 0x80    // '????o??' \n\t0x00 0x00 0x00 0x00 0x7D 0x00 0x00 0x80    // '????}??' \n\t0x00 0x00 0x03 0x00 0xEA 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xF7 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x78 0x01 0x00 0x80    // '????x??' \n\t0x00 0x00 0x00 0x00 0x84 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x84 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0x6F 0x00 0x00 0xC0    // '????o??' \n\t0x03 0x00 0x00 0x00 0xEA 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00 0x78 0x01 0x00 0xC0    // '????x??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x42 0x61 0x73 0x69    // '??? Basi' \n\t0x63 0x73 0x2E 0x2E 0x2E 0x0D 0x0A 0x46    // 'cs...??F' \n\t0x69 0x6E 0x64 0x20 0x6F 0x75 0x74 0x20    // 'ind out ' \n\t0x68 0x6F 0x77 0x20 0x74 0x6F 0x20 0x73    // 'how to s' \n\t0x74 0x61 0x72 0x74 0x20 0x61 0x20 0x6E    // 'tart a n' \n\t0x65 0x77 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ew movie' \n\t0x2C 0x20 0x6F 0x70 0x65 0x6E 0x20 0x61    // ', open a' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20    // ' movie, ' \n\t0x73 0x61 0x76 0x65 0x20 0x79 0x6F 0x75    // 'save you' \n\t0x72 0x20 0x77 0x6F 0x72 0x6B 0x2C 0x20    // 'r work, ' \n\t0x67 0x65 0x74 0x20 0x68 0x65 0x6C 0x70    // 'get help' \n\t0x2C 0x20 0x75 0x73 0x65 0x20 0x74 0x68    // ', use th' \n\t0x65 0x20 0x6D 0x61 0x70 0x2C 0x20 0x6F    // 'e map, o' \n\t0x72 0x20 0x71 0x75 0x69 0x74 0x2E 0x0D    // 'r quit.?' \n\t0x0A 0x01 0x09 0x20 0x48 0x6F 0x77 0x20    // '??? How ' \n\t0x54 0x6F 0x2E 0x2E 0x2E 0x0D 0x0A 0x43    // 'To...??C' \n\t0x68 0x6F 0x6F 0x73 0x65 0x20 0x61 0x20    // 'hoose a ' \n\t0x63 0x61 0x74 0x65 0x67 0x6F 0x72 0x79    // 'category' \n\t0x2C 0x20 0x74 0x68 0x65 0x6E 0x20 0x63    // ', then c' \n\t0x68 0x6F 0x6F 0x73 0x65 0x20 0x74 0x68    // 'hoose th' \n\t0x65 0x20 0x74 0x61 0x73 0x6B 0x20 0x79    // 'e task y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x68 0x65 0x6C 0x70 0x20 0x77 0x69 0x74    // 'help wit' \n\t0x68 0x2E 0x20 0x20 0x49 0x27 0x6C 0x6C    // 'h.  I'll' \n\t0x20 0x67 0x75 0x69 0x64 0x65 0x20 0x79    // ' guide y' \n\t0x6F 0x75 0x20 0x74 0x68 0x72 0x6F 0x75    // 'ou throu' \n\t0x67 0x68 0x20 0x65 0x61 0x63 0x68 0x20    // 'gh each ' \n\t0x74 0x61 0x73 0x6B 0x20 0x73 0x74 0x65    // 'task ste' \n\t0x70 0x2D 0x62 0x79 0x2D 0x73 0x74 0x65    // 'p-by-ste' \n\t0x70 0x2E 0x0D 0x0A 0x01 0x20 0x20 0x54    // 'p.???  T' \n\t0x6F 0x6F 0x6C 0x73 0x2E 0x2E 0x2E 0x0D    // 'ools...?' \n\t0x0A 0x53 0x68 0x6F 0x77 0x73 0x20 0x79    // '?Shows y' \n\t0x6F 0x75 0x20 0x61 0x6C 0x6C 0x20 0x74    // 'ou all t' \n\t0x68 0x65 0x20 0x74 0x6F 0x6F 0x6C 0x73    // 'he tools' \n\t0x20 0x79 0x6F 0x75 0x20 0x63 0x61 0x6E    // ' you can' \n\t0x20 0x75 0x73 0x65 0x20 0x74 0x6F 0x20    // ' use to ' \n\t0x63 0x72 0x65 0x61 0x74 0x65 0x20 0x61    // 'create a' \n\t0x20 0x67 0x72 0x65 0x61 0x74 0x20 0x6D    // ' great m' \n\t0x6F 0x76 0x69 0x65 0x2E 0x20 0x20 0x54    // 'ovie.  T' \n\t0x6F 0x20 0x66 0x69 0x6E 0x64 0x20 0x6F    // 'o find o' \n\t0x75 0x74 0x20 0x6D 0x6F 0x72 0x65 0x2C    // 'ut more,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x70 0x69 0x63 0x74 0x75    // 'he pictu' \n\t0x72 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 're of th' \n\t0x65 0x20 0x74 0x6F 0x6F 0x6C 0x20 0x79    // 'e tool y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x68 0x65 0x6C 0x70 0x20 0x6F 0x6E 0x2E    // 'help on.' \n\t0x0D 0x0A 0x01 0x20 0x20 0x54 0x69 0x70    // '???  Tip' \n\t0x73 0x2E 0x2E 0x2E 0x0D 0x0A 0x46 0x65    // 's...??Fe' \n\t0x61 0x74 0x75 0x72 0x69 0x6E 0x67 0x20    // 'aturing ' \n\t0x6D 0x79 0x20 0x70 0x65 0x72 0x73 0x6F    // 'my perso' \n\t0x6E 0x61 0x6C 0x20 0x66 0x61 0x76 0x6F    // 'nal favo' \n\t0x72 0x69 0x74 0x65 0x73 0x2E 0x20 0x20    // 'rites.  ' \n\t0x59 0x6F 0x75 0x27 0x6C 0x6C 0x20 0x61    // 'You'll a' \n\t0x6C 0x73 0x6F 0x20 0x73 0x65 0x65 0x20    // 'lso see ' \n\t0x61 0x20 0x6C 0x69 0x73 0x74 0x20 0x6F    // 'a list o' \n\t0x66 0x20 0x61 0x6C 0x6C 0x20 0x74 0x68    // 'f all th' \n\t0x65 0x20 0x73 0x68 0x6F 0x72 0x74 0x63    // 'e shortc' \n\t0x75 0x74 0x20 0x6B 0x65 0x79 0x73 0x21    // 'ut keys!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpcBook2Basics\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"(L) - basics pg 1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"(L) - basics pg 1\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookBasics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook2Basics\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookBasics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG kidBasics03 __HELP_SYMBOL( STN \"kidBasics03\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG kidBasics04 __HELP_SYMBOL( STN \"kidBasics04\" )\n\tITEM LONG 0xC0000007\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG kidBasics05 __HELP_SYMBOL( STN \"kidBasics05\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 6 LONG kidBasics06 __HELP_SYMBOL( STN \"kidBasics06\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 7 LONG kidBasics07 __HELP_SYMBOL( STN \"kidBasics07\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidBasics01 __HELP_SYMBOL( STN \"kidBasics01\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidBasics02 __HELP_SYMBOL( STN \"kidBasics02\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x3C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '<???????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x01 0x00 0x00 0x00 0x59 0x00 0x00 0x01    // '????Y???' \n\t0x00 0x00 0x00 0x00 0x5D 0x00 0x00 0x01    // '????]???' \n\t0x01 0x00 0x00 0x00 0x9D 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA1 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x02    // '????(???' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x02    // '????,???' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x02    // '????Y???' \n\t0x01 0x00 0x00 0x00 0x5D 0x00 0x00 0x02    // '????]???' \n\t0x00 0x00 0x00 0x00 0x9D 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xA1 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xAF 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xB1 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xD0 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x03    // '????,???' \n\t0x0F 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x0A 0x00 0x00 0xFD 0x49 0x00 0x00 0x03    // '???I???' \n\t0x0F 0x00 0x00 0xFD 0x59 0x00 0x00 0x03    // '???Y???' \n\t0x00 0x00 0x00 0x00 0x5D 0x00 0x00 0x03    // '????]???' \n\t0x0F 0x00 0x00 0xFD 0x8D 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0x91 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x93 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0x95 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x9D 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xA1 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xAF 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xD0 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x12 0x00 0x00 0x40    // '???????@' \n\t0x09 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x40    // '????*??@' \n\t0x0A 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x00 0x00 0x00 0x00 0x47 0x00 0x00 0x40    // '????G??@' \n\t0x02 0x00 0x00 0x00 0x59 0x00 0x00 0x40    // '????Y??@' \n\t0x00 0x00 0x00 0x00 0x5B 0x00 0x00 0x40    // '????[??@' \n\t0x03 0x00 0x00 0x00 0x8B 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x93 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0x9D 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x9F 0x00 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0xAD 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xAF 0x00 0x00 0x40    // '??????@' \n\t0x07 0x00 0x00 0x00 0xD0 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x80    // '????*??' \n\t0x00 0x00 0x02 0x00 0x47 0x00 0x00 0x80    // '????G??' \n\t0x00 0x00 0x00 0x00 0x5B 0x00 0x00 0x80    // '????[??' \n\t0x00 0x00 0x02 0x00 0x8D 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x9F 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x12 0x00 0x00 0xC0    // '???????' \n\t0x04 0x00 0x00 0x00 0x2A 0x00 0x00 0xC0    // '????*??' \n\t0x04 0x00 0x00 0x00 0x47 0x00 0x00 0xC0    // '????G??' \n\t0x04 0x00 0x00 0x00 0x5B 0x00 0x00 0xC0    // '????[??' \n\t0x04 0x00 0x00 0x00 0x93 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00 0x9F 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00 0xAF 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x6F 0x72 0x74 0x66 0x6F    // '??Portfo' \n\t0x6C 0x69 0x6F 0x20 0x62 0x61 0x73 0x69    // 'lio basi' \n\t0x63 0x73 0x0D 0x0A 0x01 0x09 0x53 0x74    // 'cs????St' \n\t0x61 0x72 0x74 0x69 0x6E 0x67 0x20 0x61    // 'arting a' \n\t0x20 0x6E 0x65 0x77 0x20 0x6D 0x6F 0x76    // ' new mov' \n\t0x69 0x65 0x0D 0x0A 0x01 0x09 0x4F 0x70    // 'ie????Op' \n\t0x65 0x6E 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'ening an' \n\t0x20 0x65 0x78 0x69 0x73 0x74 0x69 0x6E    // ' existin' \n\t0x67 0x20 0x6D 0x6F 0x76 0x69 0x65 0x0D    // 'g movie?' \n\t0x0A 0x01 0x09 0x53 0x61 0x76 0x69 0x6E    // '???Savin' \n\t0x67 0x20 0x79 0x6F 0x75 0x72 0x20 0x77    // 'g your w' \n\t0x6F 0x72 0x6B 0x0D 0x0A 0x01 0x09 0x43    // 'ork????C' \n\t0x6F 0x70 0x79 0x69 0x6E 0x67 0x20 0x61    // 'opying a' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x61    // ' movie a' \n\t0x6E 0x64 0x20 0x73 0x61 0x76 0x69 0x6E    // 'nd savin' \n\t0x67 0x20 0x69 0x74 0x20 0x75 0x6E 0x64    // 'g it und' \n\t0x65 0x72 0x20 0x61 0x20 0x6E 0x65 0x77    // 'er a new' \n\t0x20 0x6E 0x61 0x6D 0x65 0x0D 0x0A 0x48    // ' name??H' \n\t0x65 0x6C 0x70 0x0D 0x0A 0x01 0x09 0x54    // 'elp????T' \n\t0x6F 0x6F 0x6C 0x74 0x69 0x70 0x73 0x0D    // 'ooltips?' \n\t0x0A 0x01 0x09 0x47 0x65 0x74 0x74 0x69    // '???Getti' \n\t0x6E 0x67 0x20 0x68 0x65 0x6C 0x70 0x0D    // 'ng help?' \n\t0x0A 0x01 0x09 0x54 0x75 0x72 0x6E 0x69    // '???Turni' \n\t0x6E 0x67 0x20 0x4D 0x63 0x5A 0x65 0x65    // 'ng McZee' \n\t0x27 0x73 0x20 0x76 0x6F 0x69 0x63 0x65    // ''s voice' \n\t0x20 0x6F 0x6E 0x20 0x6F 0x72 0x20 0x6F    // ' on or o' \n\t0x66 0x66                                  // 'ff' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpcBook2Basics2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"(R) - Basics - page 1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"(R) - Basics - page 1\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 kidHelpBookBasics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBook2Basics2\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpBookBasics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG kidBasics08 __HELP_SYMBOL( STN \"kidBasics08\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kidBasics09 __HELP_SYMBOL( STN \"kidBasics09\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x19 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x01 0x00 0x00 0x00 0x49 0x00 0x00 0x01    // '????I???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x01    // '????K???' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0x01    // '????S???' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x02    // '????+???' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x02    // '????-???' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x02    // '????I???' \n\t0x01 0x00 0x00 0x00 0x4B 0x00 0x00 0x02    // '????K???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x2B 0x00 0x00 0x03    // '???+???' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x03    // '????-???' \n\t0x0A 0x00 0x00 0xFD 0x49 0x00 0x00 0x03    // '???I???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x03    // '????K???' \n\t0x0F 0x00 0x00 0xFD 0x53 0x00 0x00 0x03    // '???S???' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x2B 0x00 0x00 0x40    // '????+??@' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x40    // '????I??@' \n\t0x05 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x80    // '????-??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1C 0x00 0x00 0xC0    // '???????' \n\t0x04 0x00 0x00 0x00 0x49 0x00 0x00 0xC0    // '????I??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x65 0x74 0x74 0x69 0x6E    // '??Gettin' \n\t0x67 0x20 0x61 0x72 0x6F 0x75 0x6E 0x64    // 'g around' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x68 0x65    // ' the the' \n\t0x61 0x74 0x65 0x72 0x0D 0x0A 0x01 0x09    // 'ater????' \n\t0x55 0x73 0x69 0x6E 0x67 0x20 0x74 0x68    // 'Using th' \n\t0x65 0x20 0x6D 0x61 0x70 0x0D 0x0A 0x47    // 'e map??G' \n\t0x65 0x74 0x74 0x69 0x6E 0x67 0x20 0x61    // 'etting a' \n\t0x72 0x6F 0x75 0x6E 0x64 0x20 0x74 0x68    // 'round th' \n\t0x65 0x20 0x74 0x68 0x65 0x61 0x74 0x65    // 'e theate' \n\t0x72 0x0D 0x0A 0x01 0x09 0x51 0x75 0x69    // 'r????Qui' \n\t0x74 0x74 0x69 0x6E 0x67                   // 'tting' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/bktools.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcBookSceneTools1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"(L) Scene Tools Pg 1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"(L) Scene Tools Pg 1\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookSceneTools1\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\nAG(4)\n\tITEM LONG 0x2000014\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thCameraAngles __HELP_SYMBOL( STN \"thCameraAngles\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thSceneChoices __HELP_SYMBOL( STN \"thSceneChoices\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thSceneOrganizer __HELP_SYMBOL( STN \"thSceneOrganizer\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneChoices __HELP_SYMBOL( STN \"mbmpSceneChoices\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSettingsCameras __HELP_SYMBOL( STN \"mbmpSettingsCameras\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPRemoveBefore __HELP_SYMBOL( STN \"mbmpCCPRemoveBefore\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSorter __HELP_SYMBOL( STN \"mbmpSceneSorter\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPRemoveAfter __HELP_SYMBOL( STN \"mbmpCCPRemoveAfter\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thGetRidofEverythingBefore __HELP_SYMBOL( STN \"thGetRidofEverythingBefore\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG thGetRidofEverythingAfter __HELP_SYMBOL( STN \"thGetRidofEverythingAfter\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x4B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // 'K???????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x01    // '????6???' \n\t0x00 0x00 0x00 0x00 0x3B 0x00 0x00 0x01    // '????;???' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x7C 0x00 0x00 0x01    // '????|???' \n\t0x01 0x00 0x01 0x00 0x7F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8C 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xC0 0x00 0x00 0x01    // '???????' \n\t0x00 0xFB 0x00 0x00 0xC2 0x00 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0xC5 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDD 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xFF 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x16 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x38 0x01 0x00 0x01    // '????8???' \n\t0x01 0x00 0x00 0x00 0x47 0x01 0x00 0x01    // '????G???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x02    // '????8???' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x02    // '????9???' \n\t0x00 0x00 0x00 0x00 0x3B 0x00 0x00 0x02    // '????;???' \n\t0x01 0x00 0x00 0x00 0x47 0x00 0x00 0x02    // '????G???' \n\t0x00 0x00 0x00 0x00 0x5A 0x00 0x00 0x02    // '????Z???' \n\t0x01 0x00 0x00 0x00 0x65 0x00 0x00 0x02    // '????e???' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x02    // '????o???' \n\t0x01 0x00 0x00 0x00 0x79 0x00 0x00 0x02    // '????y???' \n\t0x01 0x00 0x00 0x00 0x7A 0x00 0x00 0x02    // '????z???' \n\t0x01 0x00 0x00 0x00 0x7D 0x00 0x00 0x02    // '????}???' \n\t0x00 0x00 0x00 0x00 0x86 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x8B 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x9C 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xAB 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xAC 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xBB 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xC0 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xC2 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xCB 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xD6 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xD7 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xDD 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xFC 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x05 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x10 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x17 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x01 0x00 0x02    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x23 0x01 0x00 0x02    // '????#???' \n\t0x01 0x00 0x00 0x00 0x2C 0x01 0x00 0x02    // '????,???' \n\t0x00 0x00 0x00 0x00 0x35 0x01 0x00 0x02    // '????5???' \n\t0x01 0x00 0x00 0x00 0x36 0x01 0x00 0x02    // '????6???' \n\t0x00 0x00 0x00 0x00 0x38 0x01 0x00 0x02    // '????8???' \n\t0x01 0x00 0x00 0x00 0x47 0x01 0x00 0x02    // '????G???' \n\t0x00 0x00 0x00 0x00 0x54 0x01 0x00 0x02    // '????T???' \n\t0x01 0x00 0x00 0x00 0x72 0x01 0x00 0x02    // '????r???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x36 0x00 0x00 0x03    // '???6???' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x03    // '????H???' \n\t0x0F 0x00 0x00 0xFD 0x59 0x00 0x00 0x03    // '???Y???' \n\t0x00 0x00 0x00 0x00 0xCB 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x35 0x01 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x40    // '????8??@' \n\t0x03 0x00 0x00 0x00 0x79 0x00 0x00 0x40    // '????y??@' \n\t0x00 0x00 0x00 0x00 0x7C 0x00 0x00 0x40    // '????|??@' \n\t0x02 0x00 0x00 0x00 0xC0 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC2 0x00 0x00 0x40    // '??????@' \n\t0x0A 0x00 0x00 0x00 0xFA 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xFC 0x00 0x00 0x40    // '??????@' \n\t0x0B 0x00 0x00 0x00 0x33 0x01 0x00 0x40    // '????3??@' \n\t0x00 0x00 0x00 0x00 0x35 0x01 0x00 0x40    // '????5??@' \n\t0x04 0x00 0x00 0x00 0x72 0x01 0x00 0x40    // '????r??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x35 0x01 0x00 0x82    // '????5??' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0xC0    // '????8??' \n\t0x05 0x00 0x00 0x00 0x7C 0x00 0x00 0xC0    // '????|??' \n\t0x06 0x00 0x00 0x00 0xC2 0x00 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00 0xFC 0x00 0x00 0xC0    // '??????' \n\t0x09 0x00 0x00 0x00 0x35 0x01 0x00 0xC0    // '????5??' \n\t0x08 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x63 0x65 0x6E 0x65 0x73    // '??Scenes' \n\t0x97 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // 'click t' \n\t0x68 0x65 0x20 0x70 0x69 0x63 0x74 0x75    // 'he pictu' \n\t0x72 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 're of th' \n\t0x65 0x20 0x74 0x6F 0x6F 0x6C 0x20 0x79    // 'e tool y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x68 0x65 0x6C 0x70 0x20 0x6F 0x6E 0x2E    // 'help on.' \n\t0x0D 0x0A 0x01 0x09 0x09 0x53 0x63 0x65    // '?????Sce' \n\t0x6E 0x65 0x20 0x43 0x68 0x6F 0x69 0x63    // 'ne Choic' \n\t0x65 0x73 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // 'es......' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x63 0x68 0x6F 0x6F 0x73    // '...choos' \n\t0x65 0x20 0x66 0x72 0x6F 0x6D 0x20 0x64    // 'e from d' \n\t0x69 0x66 0x66 0x65 0x72 0x65 0x6E 0x74    // 'ifferent' \n\t0x20 0x63 0x61 0x74 0x65 0x67 0x6F 0x72    // ' categor' \n\t0x69 0x65 0x73 0x09 0x0D 0x0A 0x01 0x09    // 'ies?????' \n\t0x09 0x43 0x61 0x6D 0x65 0x72 0x61 0x20    // '?Camera ' \n\t0x41 0x6E 0x67 0x6C 0x65 0x73 0x2E 0x2E    // 'Angles..' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x64 0x69    // '......di' \n\t0x66 0x66 0x65 0x72 0x65 0x6E 0x74 0x20    // 'fferent ' \n\t0x76 0x69 0x65 0x77 0x73 0x20 0x6F 0x66    // 'views of' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x75 0x72    // ' the cur' \n\t0x72 0x65 0x6E 0x74 0x20 0x73 0x63 0x65    // 'rent sce' \n\t0x6E 0x65 0x0D 0x0A 0x01 0x09 0x09 0x52    // 'ne?????R' \n\t0x65 0x6D 0x6F 0x76 0x65 0x20 0x45 0x76    // 'emove Ev' \n\t0x65 0x72 0x79 0x74 0x68 0x69 0x6E 0x67    // 'erything' \n\t0x20 0x42 0x65 0x66 0x6F 0x72 0x65 0x20    // ' Before ' \n\t0x74 0x68 0x65 0x20 0x63 0x75 0x72 0x72    // 'the curr' \n\t0x65 0x6E 0x74 0x20 0x66 0x72 0x61 0x6D    // 'ent fram' \n\t0x65 0x20 0x69 0x6E 0x20 0x61 0x20 0x73    // 'e in a s' \n\t0x63 0x65 0x6E 0x65 0x0D 0x0A 0x01 0x09    // 'cene????' \n\t0x09 0x52 0x65 0x6D 0x6F 0x76 0x65 0x20    // '?Remove ' \n\t0x45 0x76 0x65 0x72 0x79 0x74 0x68 0x69    // 'Everythi' \n\t0x6E 0x67 0x20 0x41 0x66 0x74 0x65 0x72    // 'ng After' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x75 0x72    // ' the cur' \n\t0x72 0x65 0x6E 0x74 0x20 0x66 0x72 0x61    // 'rent fra' \n\t0x6D 0x65 0x20 0x69 0x6E 0x20 0x61 0x20    // 'me in a ' \n\t0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A 0x01    // 'scene???' \n\t0x09 0x09 0x53 0x63 0x65 0x6E 0x65 0x20    // '??Scene ' \n\t0x4F 0x72 0x67 0x61 0x6E 0x69 0x7A 0x65    // 'Organize' \n\t0x72 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // 'r.......' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x72 0x65 0x6F    // '.....reo' \n\t0x72 0x64 0x65 0x72 0x20 0x73 0x63 0x65    // 'rder sce' \n\t0x6E 0x65 0x73 0x2C 0x20 0x61 0x64 0x64    // 'nes, add' \n\t0x20 0x74 0x72 0x61 0x6E 0x73 0x69 0x74    // ' transit' \n\t0x69 0x6F 0x6E 0x73                        // 'ions' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpcBookActorTools1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"(L) Actor Tools Pg 1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"(L) Actor Tools Pg 1\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookActorTools1\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\nAG(4)\n\tITEM LONG 0x2000011\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsBrowser __HELP_SYMBOL( STN \"mbmpActorsBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsPropBrowser __HELP_SYMBOL( STN \"mbmpActorsPropBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsSpletters __HELP_SYMBOL( STN \"mbmpActorsSpletters\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thActors __HELP_SYMBOL( STN \"thActors\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thProps __HELP_SYMBOL( STN \"thProps\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG thReposition __HELP_SYMBOL( STN \"thReposition\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thLivingWords __HELP_SYMBOL( STN \"thLivingWords\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorActions __HELP_SYMBOL( STN \"mbmpActorActions\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG thActions __HELP_SYMBOL( STN \"thActions\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsCompose __HELP_SYMBOL( STN \"mbmpActorsCompose\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x4A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // 'J???????' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x01    // '????F???' \n\t0x00 0x00 0x01 0x00 0x4B 0x00 0x00 0x01    // '????K???' \n\t0x01 0x00 0x00 0x00 0x51 0x00 0x00 0x01    // '????Q???' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x95 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xDA 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xE2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x01 0x00 0x01    // '????,???' \n\t0x00 0x00 0x00 0x00 0x6F 0x01 0x00 0x01    // '????o???' \n\t0x01 0x00 0x00 0x00 0x76 0x01 0x00 0x01    // '????v???' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x02    // '????H???' \n\t0x01 0x00 0x00 0x00 0x49 0x00 0x00 0x02    // '????I???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x02    // '????K???' \n\t0x01 0x00 0x00 0x00 0x51 0x00 0x00 0x02    // '????Q???' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0x02    // '????q???' \n\t0x01 0x00 0x00 0x00 0x7C 0x00 0x00 0x02    // '????|???' \n\t0x00 0x00 0x00 0x00 0x8B 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x8D 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x8E 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x95 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xD1 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xD7 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xD8 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xDA 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xDD 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xFC 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x03 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1F 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x01 0x00 0x02    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x25 0x01 0x00 0x02    // '????%???' \n\t0x01 0x00 0x00 0x00 0x2C 0x01 0x00 0x02    // '????,???' \n\t0x00 0x00 0x00 0x00 0x50 0x01 0x00 0x02    // '????P???' \n\t0x01 0x00 0x00 0x00 0x59 0x01 0x00 0x02    // '????Y???' \n\t0x00 0x00 0x00 0x00 0x5A 0x01 0x00 0x02    // '????Z???' \n\t0x01 0x00 0x00 0x00 0x63 0x01 0x00 0x02    // '????c???' \n\t0x00 0x00 0x00 0x00 0x6A 0x01 0x00 0x02    // '????j???' \n\t0x00 0x00 0x00 0x00 0x6F 0x01 0x00 0x02    // '????o???' \n\t0x01 0x00 0x00 0x00 0x76 0x01 0x00 0x02    // '????v???' \n\t0x00 0x00 0x00 0x00 0x95 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xAC 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xB3 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xB8 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x46 0x00 0x00 0x03    // '???F???' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x03    // '????Q???' \n\t0x0F 0x00 0x00 0xFD 0x70 0x00 0x00 0x03    // '???p???' \n\t0x00 0x00 0x00 0x00 0x95 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xB7 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xE2 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xFB 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x1F 0x01 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x6C 0x01 0x00 0x03    // '???l???' \n\t0x00 0x00 0x00 0x00 0x6F 0x01 0x00 0x03    // '????o???' \n\t0x0F 0x00 0x00 0xFD 0xB8 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x40    // '????H??@' \n\t0x05 0x00 0x00 0x00 0x8B 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x8D 0x00 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0xD1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD7 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0x1D 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x1F 0x01 0x00 0x40    // '???????@' \n\t0x07 0x00 0x00 0x00 0x6A 0x01 0x00 0x40    // '????j??@' \n\t0x00 0x00 0x00 0x00 0x6C 0x01 0x00 0x40    // '????l??@' \n\t0x0B 0x00 0x00 0x00 0xB8 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x6C 0x01 0x00 0x82    // '????l??' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0xC0    // '????H??' \n\t0x02 0x00 0x00 0x00 0x8D 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00 0xD7 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00 0x1F 0x01 0x00 0xC0    // '???????' \n\t0x0D 0x00 0x00 0x00 0x6C 0x01 0x00 0xC0    // '????l??' \n\t0x0A 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x63 0x74 0x6F 0x72 0x2C    // '??Actor,' \n\t0x20 0x50 0x72 0x6F 0x70 0x20 0x26 0x20    // ' Prop & ' \n\t0x33 0x44 0x20 0x57 0x6F 0x72 0x64 0x73    // '3D Words' \n\t0x97 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // 'click t' \n\t0x68 0x65 0x20 0x70 0x69 0x63 0x74 0x75    // 'he pictu' \n\t0x72 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 're of th' \n\t0x65 0x20 0x74 0x6F 0x6F 0x6C 0x20 0x79    // 'e tool y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x68 0x65 0x6C 0x70 0x20 0x6F 0x6E 0x2E    // 'help on.' \n\t0x0D 0x0A 0x01 0x09 0x09 0x41 0x63 0x74    // '?????Act' \n\t0x6F 0x72 0x73 0x2E 0x2E 0x2E 0x2E 0x2E    // 'ors.....' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x63 0x68 0x6F 0x6F 0x73 0x65    // '..choose' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x6D 0x61    // ' from ma' \n\t0x6E 0x79 0x20 0x63 0x68 0x61 0x72 0x61    // 'ny chara' \n\t0x63 0x74 0x65 0x72 0x73 0x0D 0x0A 0x01    // 'cters???' \n\t0x09 0x09 0x50 0x72 0x6F 0x70 0x73 0x2E    // '??Props.' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x66 0x75 0x72 0x6E 0x69 0x74 0x75    // '.furnitu' \n\t0x72 0x65 0x2C 0x20 0x63 0x61 0x72 0x73    // 're, cars' \n\t0x2C 0x20 0x61 0x6E 0x64 0x20 0x73 0x6F    // ', and so' \n\t0x20 0x6F 0x6E 0x09 0x09 0x09 0x09 0x0D    // ' on?????' \n\t0x0A 0x01 0x09 0x09 0x33 0x44 0x20 0x57    // '????3D W' \n\t0x6F 0x72 0x64 0x73 0x2E 0x2E 0x2E 0x2E    // 'ords....' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x63 0x72 0x65    // '.....cre' \n\t0x61 0x74 0x65 0x20 0x33 0x44 0x20 0x77    // 'ate 3D w' \n\t0x6F 0x72 0x64 0x73 0x20 0x74 0x68 0x61    // 'ords tha' \n\t0x74 0x20 0x73 0x70 0x69 0x6E 0x20 0x61    // 't spin a' \n\t0x6E 0x64 0x20 0x6D 0x6F 0x76 0x65 0x0D    // 'nd move?' \n\t0x0A 0x01 0x09 0x09 0x52 0x65 0x70 0x6F    // '????Repo' \n\t0x73 0x69 0x74 0x69 0x6F 0x6E 0x2E 0x2E    // 'sition..' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x72    // '.......r' \n\t0x65 0x70 0x6F 0x73 0x69 0x74 0x69 0x6F    // 'epositio' \n\t0x6E 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'n an act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x0D 0x0A 0x01 0x09    // 'word????' \n\t0x09 0x41 0x63 0x74 0x69 0x6F 0x6E 0x73    // '?Actions' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x6D 0x61    // '......ma' \n\t0x6B 0x65 0x20 0x61 0x6E 0x20 0x61 0x63    // 'ke an ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x6D 0x6F    // ' word mo' \n\t0x76 0x65                                  // 've' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpcBookActorTools2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"(L) Actor Tools Pg 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"(L) Actor Tools Pg 2\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookActorTools2\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tITEM LONG 0x2000009\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thRotateTools __HELP_SYMBOL( STN \"thRotateTools\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thCostumeChanger __HELP_SYMBOL( STN \"thCostumeChanger\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thRecordSameAction __HELP_SYMBOL( STN \"thRecordSameAction\" )\n\tFREE\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG thTurnLeftRight __HELP_SYMBOL( STN \"thTurnLeftRight\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsContinue __HELP_SYMBOL( STN \"mbmpActorsContinue\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsCostume __HELP_SYMBOL( STN \"mbmpActorsCostume\" )\n\tFREE\n\tFREE\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'MBMP' mbmpActorsRotateY __HELP_SYMBOL( STN \"mbmpActorsRotateY\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x35 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '5???????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x01    // '????K???' \n\t0x01 0x00 0x00 0x00 0x5D 0x00 0x00 0x01    // '????]???' \n\t0x00 0x00 0x00 0x00 0xAD 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xBC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x09 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x70 0x01 0x00 0x01    // '????p???' \n\t0x01 0x00 0x00 0x00 0x82 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA8 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x02    // '????V???' \n\t0x01 0x00 0x00 0x00 0x5D 0x00 0x00 0x02    // '????]???' \n\t0x00 0x00 0x00 0x00 0xAD 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xBC 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xC9 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xCE 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x09 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x2A 0x01 0x00 0x02    // '????*???' \n\t0x01 0x00 0x00 0x00 0x40 0x01 0x00 0x02    // '????@???' \n\t0x00 0x00 0x00 0x00 0x41 0x01 0x00 0x02    // '????A???' \n\t0x01 0x00 0x00 0x00 0x51 0x01 0x00 0x02    // '????Q???' \n\t0x00 0x00 0x00 0x00 0x70 0x01 0x00 0x02    // '????p???' \n\t0x01 0x00 0x00 0x00 0x82 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x8B 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x90 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x9B 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xA8 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x46 0x00 0x00 0x03    // '???F???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x03    // '????K???' \n\t0x0F 0x00 0x00 0xFD 0xAA 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xAD 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xC9 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x09 0x01 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x6D 0x01 0x00 0x03    // '???m???' \n\t0x00 0x00 0x00 0x00 0x70 0x01 0x00 0x03    // '????p???' \n\t0x0F 0x00 0x00 0xFD 0xA8 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x40    // '????H??@' \n\t0x04 0x00 0x00 0x00 0xA8 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xAA 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0x04 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x06 0x01 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x6B 0x01 0x00 0x40    // '????k??@' \n\t0x00 0x00 0x00 0x00 0x6D 0x01 0x00 0x40    // '????m??@' \n\t0x08 0x00 0x00 0x00 0xA8 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x6D 0x01 0x00 0x82    // '????m??' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0xC0    // '????H??' \n\t0x09 0x00 0x00 0x00 0xAA 0x00 0x00 0xC0    // '??????' \n\t0x0B 0x00 0x00 0x00 0x06 0x01 0x00 0xC0    // '???????' \n\t0x0E 0x00 0x00 0x00 0x6D 0x01 0x00 0xC0    // '????m??' \n\t0x0E 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x63 0x74 0x6F 0x72 0x2C    // '??Actor,' \n\t0x20 0x50 0x72 0x6F 0x70 0x20 0x26 0x20    // ' Prop & ' \n\t0x33 0x44 0x20 0x57 0x6F 0x72 0x64 0x73    // '3D Words' \n\t0x97 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // 'click t' \n\t0x68 0x65 0x20 0x70 0x69 0x63 0x74 0x75    // 'he pictu' \n\t0x72 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 're of th' \n\t0x65 0x20 0x74 0x6F 0x6F 0x6C 0x20 0x79    // 'e tool y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x68 0x65 0x6C 0x70 0x20 0x6F 0x6E 0x2E    // 'help on.' \n\t0x0D 0x0A 0x01 0x09 0x09 0x52 0x65 0x73    // '?????Res' \n\t0x75 0x6D 0x65 0x20 0x4C 0x61 0x73 0x74    // 'ume Last' \n\t0x20 0x41 0x63 0x74 0x69 0x6F 0x6E 0x2E    // ' Action.' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x63 0x6F 0x6E    // '.....con' \n\t0x74 0x69 0x6E 0x75 0x65 0x20 0x74 0x68    // 'tinue th' \n\t0x65 0x20 0x6C 0x61 0x73 0x74 0x20 0x61    // 'e last a' \n\t0x63 0x74 0x69 0x6F 0x6E 0x20 0x61 0x6E    // 'ction an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x09 0x09 0x09 0x09 0x09 0x09 0x09    // ' ???????' \n\t0x09 0x09 0x09 0x20 0x20 0x20 0x33 0x44    // '???   3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x75 0x73    // ' word us' \n\t0x65 0x64 0x0D 0x0A 0x01 0x09 0x09 0x43    // 'ed?????C' \n\t0x6F 0x73 0x74 0x75 0x6D 0x65 0x20 0x43    // 'ostume C' \n\t0x68 0x61 0x6E 0x67 0x65 0x72 0x2E 0x2E    // 'hanger..' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x63 0x68 0x61 0x6E 0x67 0x65    // '..change' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x61 0x79    // ' the way' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x09 0x09 0x09 0x09    // 'ord ????' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x20 0x20    // '??????  ' \n\t0x20 0x6C 0x6F 0x6F 0x6B 0x73 0x0D 0x0A    // ' looks??' \n\t0x01 0x09 0x09 0x52 0x6F 0x74 0x61 0x74    // '???Rotat' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E    // 'e Tools.' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x63 0x68 0x61 0x6E 0x67    // '...chang' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x64 0x69    // 'e the di' \n\t0x72 0x65 0x63 0x74 0x69 0x6F 0x6E 0x20    // 'rection ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C 0x20    // ', prop, ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x09 0x09    // 'or 3D ??' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09    // '????????' \n\t0x20 0x20 0x20 0x77 0x6F 0x72 0x64 0x20    // '   word ' \n\t0x66 0x61 0x63 0x65 0x73 0x0D 0x0A 0x01    // 'faces???' \n\t0x09 0x09 0x54 0x75 0x72 0x6E 0x20 0x4C    // '??Turn L' \n\t0x65 0x66 0x74 0x20 0x6F 0x72 0x20 0x52    // 'eft or R' \n\t0x69 0x67 0x68 0x74 0x2E 0x2E 0x2E 0x2E    // 'ight....' \n\t0x2E 0x2E 0x2E 0x2E 0x74 0x75 0x72 0x6E    // '....turn' \n\t0x20 0x61 0x20 0x33 0x44 0x20 0x6F 0x62    // ' a 3D ob' \n\t0x6A 0x65 0x63 0x74 0x20 0x6C 0x65 0x66    // 'ject lef' \n\t0x74 0x20 0x6F 0x72 0x20 0x72 0x69 0x67    // 't or rig' \n\t0x68 0x74                                  // 'ht' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpcBookActorTools3\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"(L) Actor Tools Pg 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"(L) Actor Tools Pg 3\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookActorTools3\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\nAG(4)\n\tITEM LONG 0x2000010\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thTipForwardsBackwards __HELP_SYMBOL( STN \"thTipForwardsBackwards\" )\n\tFREE\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsNormalizeRot __HELP_SYMBOL( STN \"mbmpActorsNormalizeRot\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsRotateX __HELP_SYMBOL( STN \"mbmpActorsRotateX\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsRotateZ __HELP_SYMBOL( STN \"mbmpActorsRotateZ\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsXY __HELP_SYMBOL( STN \"mbmpActorsXY\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thTipSideToSide __HELP_SYMBOL( STN \"thTipSideToSide\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thChangeBackRotate __HELP_SYMBOL( STN \"thChangeBackRotate\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG thUpandDown __HELP_SYMBOL( STN \"thUpandDown\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x40 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '@???????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x01    // '????K???' \n\t0x01 0x00 0x00 0x00 0x5E 0x00 0x00 0x01    // '????^???' \n\t0x00 0x00 0x00 0x00 0x87 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x96 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xD4 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x45 0x01 0x00 0x01    // '????E???' \n\t0x01 0x00 0x00 0x00 0x4E 0x01 0x00 0x01    // '????N???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x02    // '????K???' \n\t0x01 0x00 0x00 0x00 0x55 0x00 0x00 0x02    // '????U???' \n\t0x00 0x00 0x00 0x00 0x5B 0x00 0x00 0x02    // '????[???' \n\t0x01 0x00 0x00 0x00 0x5E 0x00 0x00 0x02    // '????^???' \n\t0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x02    // '????d???' \n\t0x01 0x00 0x00 0x00 0x68 0x00 0x00 0x02    // '????h???' \n\t0x00 0x00 0x00 0x00 0x87 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x8B 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xA5 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xBB 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xC2 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xC3 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xD4 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xDF 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xF5 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xFC 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x06 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x2B 0x01 0x00 0x02    // '????+???' \n\t0x01 0x00 0x00 0x00 0x36 0x01 0x00 0x02    // '????6???' \n\t0x00 0x00 0x00 0x00 0x45 0x01 0x00 0x02    // '????E???' \n\t0x01 0x00 0x00 0x00 0x48 0x01 0x00 0x02    // '????H???' \n\t0x00 0x00 0x00 0x00 0x49 0x01 0x00 0x02    // '????I???' \n\t0x01 0x00 0x00 0x00 0x4E 0x01 0x00 0x02    // '????N???' \n\t0x00 0x00 0x00 0x00 0x67 0x01 0x00 0x02    // '????g???' \n\t0x01 0x00 0x00 0x00 0x85 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x91 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x92 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x9F 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xAA 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x46 0x00 0x00 0x03    // '???F???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x03    // '????K???' \n\t0x0F 0x00 0x00 0xFD 0x84 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x87 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xA5 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xD4 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xF5 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x45 0x01 0x00 0x03    // '????E???' \n\t0x0F 0x00 0x00 0xFD 0xAA 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x40    // '????H??@' \n\t0x03 0x00 0x00 0x00 0x82 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x84 0x00 0x00 0x40    // '??????@' \n\t0x0B 0x00 0x00 0x00 0xCF 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD1 0x00 0x00 0x40    // '??????@' \n\t0x0C 0x00 0x00 0x00 0x40 0x01 0x00 0x40    // '????@??@' \n\t0x00 0x00 0x00 0x00 0x42 0x01 0x00 0x40    // '????B??@' \n\t0x0D 0x00 0x00 0x00 0xAA 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x48 0x00 0x00 0xC0    // '????H??' \n\t0x07 0x00 0x00 0x00 0x84 0x00 0x00 0xC0    // '??????' \n\t0x08 0x00 0x00 0x00 0xD1 0x00 0x00 0xC0    // '??????' \n\t0x06 0x00 0x00 0x00 0x42 0x01 0x00 0xC0    // '????B??' \n\t0x0A 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x63 0x74 0x6F 0x72 0x2C    // '??Actor,' \n\t0x20 0x50 0x72 0x6F 0x70 0x20 0x26 0x20    // ' Prop & ' \n\t0x33 0x44 0x20 0x57 0x6F 0x72 0x64 0x73    // '3D Words' \n\t0x97 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // 'click t' \n\t0x68 0x65 0x20 0x70 0x69 0x63 0x74 0x75    // 'he pictu' \n\t0x72 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 're of th' \n\t0x65 0x20 0x74 0x6F 0x6F 0x6C 0x20 0x79    // 'e tool y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x68 0x65 0x6C 0x70 0x20 0x6F 0x6E 0x2E    // 'help on.' \n\t0x0D 0x0A 0x01 0x09 0x09 0x54 0x69 0x70    // '?????Tip' \n\t0x20 0x46 0x6F 0x72 0x77 0x61 0x72 0x64    // ' Forward' \n\t0x20 0x6F 0x72 0x20 0x42 0x61 0x63 0x6B    // ' or Back' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x74 0x69 0x70    // '.....tip' \n\t0x20 0x61 0x20 0x33 0x44 0x20 0x6F 0x62    // ' a 3D ob' \n\t0x6A 0x65 0x63 0x74 0x20 0x66 0x6F 0x72    // 'ject for' \n\t0x77 0x61 0x72 0x64 0x20 0x6F 0x72 0x20    // 'ward or ' \n\t0x62 0x61 0x63 0x6B 0x0D 0x0A 0x01 0x09    // 'back????' \n\t0x09 0x54 0x69 0x70 0x20 0x74 0x6F 0x20    // '?Tip to ' \n\t0x4F 0x6E 0x65 0x20 0x53 0x69 0x64 0x65    // 'One Side' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x74 0x69    // '......ti' \n\t0x70 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'p an act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x73 0x69 0x64    // 'word sid' \n\t0x65 0x20 0x74 0x6F 0x20 0x73 0x69 0x64    // 'e to sid' \n\t0x65 0x0D 0x0A 0x01 0x09 0x09 0x43 0x68    // 'e?????Ch' \n\t0x61 0x6E 0x67 0x65 0x20 0x42 0x61 0x63    // 'ange Bac' \n\t0x6B 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // 'k.......' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x20 0x63 0x68    // '..... ch' \n\t0x61 0x6E 0x67 0x65 0x20 0x61 0x20 0x33    // 'ange a 3' \n\t0x44 0x20 0x6F 0x62 0x6A 0x65 0x63 0x74    // 'D object' \n\t0x20 0x62 0x61 0x63 0x6B 0x20 0x74 0x6F    // ' back to' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x61 0x79    // ' the way' \n\t0x20 0x69 0x74 0x20 0x77 0x61 0x73 0x20    // ' it was ' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09    // '????????' \n\t0x09 0x09 0x20 0x20 0x20 0x62 0x65 0x66    // '??   bef' \n\t0x6F 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ore you ' \n\t0x72 0x6F 0x74 0x61 0x74 0x65 0x64 0x20    // 'rotated ' \n\t0x69 0x74 0x0D 0x0A 0x01 0x09 0x09 0x55    // 'it?????U' \n\t0x70 0x20 0x26 0x20 0x44 0x6F 0x77 0x6E    // 'p & Down' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x77 0x68 0x65 0x6E 0x20 0x74 0x68 0x69    // 'when thi' \n\t0x73 0x20 0x69 0x73 0x20 0x22 0x6F 0x6E    // 's is \"on' \n\t0x22 0x2C 0x20 0x79 0x6F 0x75 0x20 0x63    // '\", you c' \n\t0x61 0x6E 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'an move ' \n\t0x61 0x20 0x33 0x44 0x20 0x6F 0x62 0x6A    // 'a 3D obj' \n\t0x65 0x63 0x74 0x20 0x09 0x09 0x09 0x09    // 'ect ????' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x20 0x20    // '??????  ' \n\t0x20 0x75 0x70 0x20 0x61 0x6E 0x64 0x20    // ' up and ' \n\t0x64 0x6F 0x77 0x6E                        // 'down' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpcBookActorTools4\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"(L) Actor Tools Pg 4\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"(L) Actor Tools Pg 4\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookActorTools4\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\nAG(4)\n\tITEM LONG 0x2000011\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thFallThroughGround __HELP_SYMBOL( STN \"thFallThroughGround\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thSizeTools __HELP_SYMBOL( STN \"thSizeTools\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thSizeEvenly __HELP_SYMBOL( STN \"thSizeEvenly\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG thSquashStretch __HELP_SYMBOL( STN \"thSquashStretch\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsGround __HELP_SYMBOL( STN \"mbmpActorsGround\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'MBMP' mbmpActorsShrink __HELP_SYMBOL( STN \"mbmpActorsShrink\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsSquash __HELP_SYMBOL( STN \"mbmpActorsSquash\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x46 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // 'F???????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x01    // '????K???' \n\t0x01 0x00 0x00 0x00 0x5E 0x00 0x00 0x01    // '????^???' \n\t0x00 0x00 0x00 0x00 0xBB 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xC5 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x01 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x6B 0x01 0x00 0x01    // '????k???' \n\t0x01 0x00 0x00 0x00 0x7B 0x01 0x00 0x01    // '????{???' \n\t0x00 0x00 0x00 0x00 0xD9 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x02    // '????K???' \n\t0x01 0x00 0x00 0x00 0x5E 0x00 0x00 0x02    // '????^???' \n\t0x00 0x00 0x00 0x00 0x65 0x00 0x00 0x02    // '????e???' \n\t0x01 0x00 0x00 0x00 0x77 0x00 0x00 0x02    // '????w???' \n\t0x00 0x00 0x00 0x00 0x8F 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x90 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xA8 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xAE 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xBB 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xC5 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xE0 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xEE 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xEF 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xF8 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x04 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x27 0x01 0x00 0x02    // '????'???' \n\t0x01 0x00 0x00 0x00 0x35 0x01 0x00 0x02    // '????5???' \n\t0x00 0x00 0x00 0x00 0x3F 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x41 0x01 0x00 0x02    // '????A???' \n\t0x00 0x00 0x00 0x00 0x42 0x01 0x00 0x02    // '????B???' \n\t0x01 0x00 0x00 0x00 0x52 0x01 0x00 0x02    // '????R???' \n\t0x00 0x00 0x00 0x00 0x6B 0x01 0x00 0x02    // '????k???' \n\t0x01 0x00 0x00 0x00 0x72 0x01 0x00 0x02    // '????r???' \n\t0x00 0x00 0x00 0x00 0x73 0x01 0x00 0x02    // '????s???' \n\t0x01 0x00 0x00 0x00 0x7B 0x01 0x00 0x02    // '????{???' \n\t0x00 0x00 0x00 0x00 0x86 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x9D 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xA4 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xB1 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xBE 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xC6 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xC7 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xD9 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x46 0x00 0x00 0x03    // '???F???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x03    // '????K???' \n\t0x0F 0x00 0x00 0xFD 0xB8 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xBB 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x01 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x04 0x01 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x27 0x01 0x00 0x03    // '???'???' \n\t0x00 0x00 0x00 0x00 0x6B 0x01 0x00 0x03    // '????k???' \n\t0x0F 0x00 0x00 0xFD 0x86 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xD9 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x40    // '????H??@' \n\t0x03 0x00 0x00 0x00 0xB6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xB8 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xFF 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x01 0x01 0x00 0x40    // '???????@' \n\t0x05 0x00 0x00 0x00 0x66 0x01 0x00 0x40    // '????f??@' \n\t0x00 0x00 0x00 0x00 0x68 0x01 0x00 0x40    // '????h??@' \n\t0x06 0x00 0x00 0x00 0xD9 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x68 0x01 0x00 0x82    // '????h??' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0xC0    // '????H??' \n\t0x07 0x00 0x00 0x00 0xB8 0x00 0x00 0xC0    // '??????' \n\t0x08 0x00 0x00 0x00 0x01 0x01 0x00 0xC0    // '???????' \n\t0x08 0x00 0x00 0x00 0x68 0x01 0x00 0xC0    // '????h??' \n\t0x09 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x63 0x74 0x6F 0x72 0x2C    // '??Actor,' \n\t0x20 0x50 0x72 0x6F 0x70 0x20 0x26 0x20    // ' Prop & ' \n\t0x33 0x44 0x20 0x57 0x6F 0x72 0x64 0x73    // '3D Words' \n\t0x97 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // 'click t' \n\t0x68 0x65 0x20 0x70 0x69 0x63 0x74 0x75    // 'he pictu' \n\t0x72 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 're of th' \n\t0x65 0x20 0x74 0x6F 0x6F 0x6C 0x20 0x79    // 'e tool y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x68 0x65 0x6C 0x70 0x20 0x6F 0x6E 0x2E    // 'help on.' \n\t0x0D 0x0A 0x01 0x09 0x09 0x46 0x61 0x6C    // '?????Fal' \n\t0x6C 0x20 0x54 0x68 0x72 0x6F 0x75 0x67    // 'l Throug' \n\t0x68 0x20 0x47 0x72 0x6F 0x75 0x6E 0x64    // 'h Ground' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x77 0x68    // '......wh' \n\t0x65 0x6E 0x20 0x74 0x68 0x69 0x73 0x20    // 'en this ' \n\t0x69 0x73 0x20 0x22 0x6F 0x6E 0x22 0x2C    // 'is \"on\",' \n\t0x20 0x79 0x6F 0x75 0x20 0x63 0x61 0x6E    // ' you can' \n\t0x20 0x6D 0x6F 0x76 0x65 0x20 0x61 0x20    // ' move a ' \n\t0x33 0x44 0x20 0x6F 0x62 0x6A 0x65 0x63    // '3D objec' \n\t0x74 0x20 0x09 0x09 0x09 0x09 0x09 0x09    // 't ??????' \n\t0x09 0x09 0x09 0x09 0x20 0x20 0x74 0x68    // '????  th' \n\t0x72 0x6F 0x75 0x67 0x68 0x20 0x74 0x68    // 'rough th' \n\t0x65 0x20 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'e ground' \n\t0x20 0x73 0x75 0x72 0x66 0x61 0x63 0x65    // ' surface' \n\t0x0D 0x0A 0x01 0x09 0x09 0x53 0x69 0x7A    // '?????Siz' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E    // 'e Tools.' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x72 0x65 0x73 0x69 0x7A 0x65 0x20 0x61    // 'resize a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x2C    // 'n actor,' \n\t0x20 0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F    // ' prop, o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x0D 0x0A 0x01 0x09 0x09 0x53 0x69    // 'd?????Si' \n\t0x7A 0x65 0x20 0x45 0x76 0x65 0x6E 0x6C    // 'ze Evenl' \n\t0x79 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // 'y.......' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x65 0x76 0x65 0x6E 0x6C 0x79 0x20 0x73    // 'evenly s' \n\t0x74 0x72 0x65 0x74 0x63 0x68 0x20 0x6F    // 'tretch o' \n\t0x72 0x20 0x73 0x68 0x72 0x69 0x6E 0x6B    // 'r shrink' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x09 0x09 0x09 0x09    // ' or ????' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x20 0x20    // '??????  ' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x0D 0x0A 0x01 0x09 0x09 0x53 0x71 0x75    // '?????Squ' \n\t0x61 0x73 0x68 0x20 0x26 0x20 0x53 0x74    // 'ash & St' \n\t0x72 0x65 0x74 0x63 0x68 0x2E 0x2E 0x2E    // 'retch...' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x6D    // '.......m' \n\t0x61 0x6B 0x65 0x20 0x61 0x6E 0x20 0x61    // 'ake an a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x73    // 'D word s' \n\t0x68 0x6F 0x72 0x74 0x65 0x72 0x20 0x61    // 'horter a' \n\t0x6E 0x64 0x20 0x09 0x09 0x09 0x09 0x09    // 'nd ?????' \n\t0x09 0x09 0x09 0x09 0x09 0x20 0x20 0x20    // '?????   ' \n\t0x77 0x69 0x64 0x65 0x72 0x20 0x6F 0x72    // 'wider or' \n\t0x20 0x74 0x61 0x6C 0x6C 0x65 0x72 0x20    // ' taller ' \n\t0x61 0x6E 0x64 0x20 0x74 0x68 0x69 0x6E    // 'and thin' \n\t0x6E 0x65 0x72                             // 'ner' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpcBookActorTools5\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"(L) Actor Tools Pg 5\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"(L) Actor Tools Pg 5\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookActorTools5\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\nAG(4)\n\tITEM LONG 0x200000B\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thSynchronize __HELP_SYMBOL( STN \"thSynchronize\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsTransformNorm __HELP_SYMBOL( STN \"mbmpActorsTransformNorm\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsSooner __HELP_SYMBOL( STN \"mbmpActorsSooner\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thTalentBook __HELP_SYMBOL( STN \"thTalentBook\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsBiography __HELP_SYMBOL( STN \"mbmpActorsBiography\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thChangeBackSize __HELP_SYMBOL( STN \"thChangeBackSize\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x31 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '1???????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x01    // '????K???' \n\t0x01 0x00 0x00 0x00 0x56 0x00 0x00 0x01    // '????V???' \n\t0x00 0x00 0x00 0x00 0xD1 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x42 0x01 0x00 0x01    // '????B???' \n\t0x01 0x00 0x00 0x00 0x4D 0x01 0x00 0x01    // '????M???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x02    // '????K???' \n\t0x01 0x00 0x00 0x00 0x56 0x00 0x00 0x02    // '????V???' \n\t0x00 0x00 0x00 0x00 0x6C 0x00 0x00 0x02    // '????l???' \n\t0x01 0x00 0x00 0x00 0x84 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x8C 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x95 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xA2 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xA6 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xAD 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xC7 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xC8 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xCC 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x42 0x01 0x00 0x02    // '????B???' \n\t0x01 0x00 0x00 0x00 0x4D 0x01 0x00 0x02    // '????M???' \n\t0x00 0x00 0x00 0x00 0x64 0x01 0x00 0x02    // '????d???' \n\t0x01 0x00 0x00 0x00 0x88 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x89 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x8D 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x9A 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xA5 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xAF 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x46 0x00 0x00 0x03    // '???F???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x03    // '????K???' \n\t0x0F 0x00 0x00 0xFD 0x6C 0x00 0x00 0x03    // '???l???' \n\t0x00 0x00 0x00 0x00 0xD1 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xF3 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x42 0x01 0x00 0x03    // '????B???' \n\t0x0F 0x00 0x00 0xFD 0xAF 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x40    // '????H??@' \n\t0x08 0x00 0x00 0x00 0xCC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xCE 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0x3D 0x01 0x00 0x40    // '????=??@' \n\t0x00 0x00 0x00 0x00 0x3F 0x01 0x00 0x40    // '???????@' \n\t0x06 0x00 0x00 0x00 0xAF 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x3F 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x3F 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0xC0    // '????H??' \n\t0x04 0x00 0x00 0x00 0xCE 0x00 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00 0x3F 0x01 0x00 0xC0    // '???????' \n\t0x07 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x63 0x74 0x6F 0x72 0x2C    // '??Actor,' \n\t0x20 0x50 0x72 0x6F 0x70 0x20 0x26 0x20    // ' Prop & ' \n\t0x33 0x44 0x20 0x57 0x6F 0x72 0x64 0x73    // '3D Words' \n\t0x97 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // 'click t' \n\t0x68 0x65 0x20 0x70 0x69 0x63 0x74 0x75    // 'he pictu' \n\t0x72 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 're of th' \n\t0x65 0x20 0x74 0x6F 0x6F 0x6C 0x20 0x79    // 'e tool y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x68 0x65 0x6C 0x70 0x20 0x6F 0x6E 0x2E    // 'help on.' \n\t0x0D 0x0A 0x01 0x09 0x09 0x43 0x68 0x61    // '?????Cha' \n\t0x6E 0x67 0x65 0x20 0x42 0x61 0x63 0x6B    // 'nge Back' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x63 0x68 0x61    // '.....cha' \n\t0x6E 0x67 0x65 0x20 0x61 0x6E 0x20 0x61    // 'nge an a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x62    // 'D word b' \n\t0x61 0x63 0x6B 0x20 0x74 0x6F 0x20 0x09    // 'ack to ?' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09    // '????????' \n\t0x09 0x20 0x20 0x20 0x74 0x68 0x65 0x20    // '?   the ' \n\t0x77 0x61 0x79 0x20 0x69 0x74 0x20 0x77    // 'way it w' \n\t0x61 0x73 0x20 0x62 0x65 0x66 0x6F 0x72    // 'as befor' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x63 0x68    // 'e you ch' \n\t0x61 0x6E 0x67 0x65 0x64 0x20 0x69 0x74    // 'anged it' \n\t0x73 0x20 0x73 0x69 0x7A 0x65 0x0D 0x0A    // 's size??' \n\t0x01 0x09 0x09 0x53 0x79 0x6E 0x63 0x68    // '???Synch' \n\t0x72 0x6F 0x6E 0x69 0x7A 0x65 0x2E 0x2E    // 'ronize..' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x63 0x68 0x61 0x6E    // '....chan' \n\t0x67 0x65 0x20 0x70 0x61 0x74 0x68 0x20    // 'ge path ' \n\t0x74 0x69 0x6D 0x69 0x6E 0x67 0x20 0x73    // 'timing s' \n\t0x6F 0x20 0x74 0x68 0x61 0x74 0x20 0x61    // 'o that a' \n\t0x63 0x74 0x6F 0x72 0x73 0x20 0x6D 0x65    // 'ctors me' \n\t0x65 0x74 0x20 0x09 0x09 0x09 0x09 0x09    // 'et ?????' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x20 0x20    // '??????  ' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x68 0x65 0x6D 0x20 0x74 0x6F 0x0D    // 'them to?' \n\t0x0A 0x01 0x09 0x09 0x54 0x61 0x6C 0x65    // '????Tale' \n\t0x6E 0x74 0x20 0x42 0x6F 0x6F 0x6B 0x2E    // 'nt Book.' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x67 0x69 0x76    // '.....giv' \n\t0x65 0x73 0x20 0x79 0x6F 0x75 0x20 0x74    // 'es you t' \n\t0x68 0x65 0x20 0x73 0x63 0x6F 0x6F 0x70    // 'he scoop' \n\t0x20 0x6F 0x6E 0x20 0x61 0x6C 0x6C 0x20    // ' on all ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x73 0x20 0x79 0x6F 0x75 0x20 0x09    // 'rs you ?' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09    // '????????' \n\t0x09 0x20 0x20 0x20 0x63 0x61 0x6E 0x20    // '?   can ' \n\t0x75 0x73 0x65 0x20 0x69 0x6E 0x20 0x79    // 'use in y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65                                       // 'e' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= ktpcBookSoundTools1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"(L) Sound Tools Pg 1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"(L) Sound Tools Pg 1\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookSoundTools1\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thSoundEffects __HELP_SYMBOL( STN \"thSoundEffects\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thSpeech __HELP_SYMBOL( STN \"thSpeech\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thMusic __HELP_SYMBOL( STN \"thMusic\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsEfxBrowser __HELP_SYMBOL( STN \"mbmpSoundsEfxBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsMicBrowser __HELP_SYMBOL( STN \"mbmpSoundsMicBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsMusicBrowser __HELP_SYMBOL( STN \"mbmpSoundsMusicBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsPlayOnce __HELP_SYMBOL( STN \"mbmpSoundsPlayOnce\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG thPlayOneTime __HELP_SYMBOL( STN \"thPlayOneTime\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsLooping __HELP_SYMBOL( STN \"mbmpSoundsLooping\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG thPlayAgainAgain __HELP_SYMBOL( STN \"thPlayAgainAgain\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x31 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '1???????' \n\t0x01 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x00 0x00 0x00 0x00 0x3B 0x00 0x00 0x01    // '????;???' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x70 0x00 0x00 0x01    // '????p???' \n\t0x01 0x00 0x00 0x00 0x76 0x00 0x00 0x01    // '????v???' \n\t0x00 0x00 0x00 0x00 0xA7 0x00 0x00 0x01    // '???????' \n\t0x00 0xFB 0x00 0x00 0xAC 0x00 0x00 0x01    // '??????' \n\t0x01 0xFB 0x00 0x00 0xB1 0x00 0x00 0x01    // '??????' \n\t0x00 0xFB 0x00 0x00 0xDE 0x00 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0xE1 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xEA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x1E 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x01 0x00 0x01    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x6A 0x00 0x00 0x02    // '????j???' \n\t0x01 0x00 0x00 0x00 0x6E 0x00 0x00 0x02    // '????n???' \n\t0x00 0x00 0x00 0x00 0x70 0x00 0x00 0x02    // '????p???' \n\t0x01 0x00 0x00 0x00 0x71 0x00 0x00 0x02    // '????q???' \n\t0x00 0x00 0x00 0x00 0xA7 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xA9 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x1B 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1C 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x36 0x00 0x00 0x03    // '???6???' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x03    // '????H???' \n\t0x0F 0x00 0x00 0xFD 0x59 0x00 0x00 0x03    // '???Y???' \n\t0x00 0x00 0x00 0x00 0x76 0x00 0x00 0x03    // '????v???' \n\t0x0F 0x00 0x00 0xFD 0x95 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xEA 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x04 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x22 0x01 0x00 0x03    // '????\"???' \n\t0x0F 0x00 0x00 0xFD 0x47 0x01 0x00 0x03    // '???G???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x40    // '????8??@' \n\t0x02 0x00 0x00 0x00 0x6A 0x00 0x00 0x40    // '????j??@' \n\t0x00 0x00 0x00 0x00 0x6D 0x00 0x00 0x40    // '????m??@' \n\t0x03 0x00 0x00 0x00 0xA7 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA9 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xDC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xDE 0x00 0x00 0x40    // '??????@' \n\t0x0A 0x00 0x00 0x00 0x19 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x1B 0x01 0x00 0x40    // '???????@' \n\t0x0C 0x00 0x00 0x00 0x60 0x01 0x00 0x40    // '????`??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x1B 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0xC0    // '????8??' \n\t0x06 0x00 0x00 0x00 0x6D 0x00 0x00 0xC0    // '????m??' \n\t0x07 0x00 0x00 0x00 0xA9 0x00 0x00 0xC0    // '??????' \n\t0x08 0x00 0x00 0x00 0xDE 0x00 0x00 0xC0    // '??????' \n\t0x09 0x00 0x00 0x00 0x1B 0x01 0x00 0xC0    // '???????' \n\t0x0B 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x75 0x6E 0x64 0x73    // '??Sounds' \n\t0x97 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // 'click t' \n\t0x68 0x65 0x20 0x70 0x69 0x63 0x74 0x75    // 'he pictu' \n\t0x72 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 're of th' \n\t0x65 0x20 0x74 0x6F 0x6F 0x6C 0x20 0x79    // 'e tool y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x68 0x65 0x6C 0x70 0x20 0x6F 0x6E 0x2E    // 'help on.' \n\t0x0D 0x0A 0x01 0x09 0x09 0x53 0x6F 0x75    // '?????Sou' \n\t0x6E 0x64 0x20 0x45 0x66 0x66 0x65 0x63    // 'nd Effec' \n\t0x74 0x73 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // 'ts......' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x61 0x64 0x64 0x20 0x73    // '...add s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x65 0x66 0x66    // 'ound eff' \n\t0x65 0x63 0x74 0x73 0x09 0x0D 0x0A 0x01    // 'ects????' \n\t0x09 0x09 0x53 0x70 0x65 0x65 0x63 0x68    // '??Speech' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x6D    // '.......m' \n\t0x61 0x6B 0x65 0x20 0x61 0x6E 0x20 0x61    // 'ake an a' \n\t0x63 0x74 0x6F 0x72 0x20 0x74 0x61 0x6C    // 'ctor tal' \n\t0x6B 0x0D 0x0A 0x01 0x09 0x09 0x4D 0x75    // 'k?????Mu' \n\t0x73 0x69 0x63 0x2E 0x2E 0x2E 0x2E 0x2E    // 'sic.....' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x61 0x64 0x64    // '.....add' \n\t0x20 0x6D 0x75 0x73 0x69 0x63 0x0D 0x0A    // ' music??' \n\t0x01 0x09 0x09 0x50 0x6C 0x61 0x79 0x20    // '???Play ' \n\t0x4F 0x6E 0x63 0x65 0x2E 0x2E 0x2E 0x2E    // 'Once....' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x70 0x6C    // '......pl' \n\t0x61 0x79 0x20 0x61 0x20 0x73 0x6F 0x75    // 'ay a sou' \n\t0x6E 0x64 0x20 0x6F 0x6E 0x65 0x20 0x74    // 'nd one t' \n\t0x69 0x6D 0x65 0x0D 0x0A 0x01 0x09 0x09    // 'ime?????' \n\t0x4C 0x6F 0x6F 0x70 0x2E 0x2E 0x2E 0x2E    // 'Loop....' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x70 0x6C 0x61 0x79 0x20 0x61 0x20    // '.play a ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x63 0x6F    // 'sound co' \n\t0x6E 0x74 0x69 0x6E 0x75 0x6F 0x75 0x73    // 'ntinuous' \n\t0x6C 0x79                                  // 'ly' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= ktpcBookSoundTools2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"(L) Sound Tools Pg 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"(L) Sound Tools Pg 2\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookSoundTools2\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tITEM LONG 0x2000005\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thWaitUntilSound __HELP_SYMBOL( STN \"thWaitUntilSound\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsListen __HELP_SYMBOL( STN \"mbmpSoundsListen\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsAttachToCell __HELP_SYMBOL( STN \"mbmpSoundsAttachToCell\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPausesSound __HELP_SYMBOL( STN \"mbmpPausesSound\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thListener __HELP_SYMBOL( STN \"thListener\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thActionMatcher __HELP_SYMBOL( STN \"thActionMatcher\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x2B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '+???????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x01    // '????6???' \n\t0x00 0x00 0x00 0x00 0x3B 0x00 0x00 0x01    // '????;???' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x01    // '????C???' \n\t0x00 0x00 0x00 0x00 0x86 0x00 0x00 0x01    // '???????' \n\t0x00 0xFB 0x00 0x00 0x89 0x00 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0x8B 0x00 0x00 0x01    // '???????' \n\t0x01 0xFB 0x00 0x00 0x99 0x00 0x00 0x01    // '??????' \n\t0x00 0xFB 0x00 0x00 0xC6 0x00 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0xC9 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xDC 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xE2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x41 0x01 0x00 0x01    // '????A???' \n\t0x00 0x00 0x00 0x00 0x89 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x8A 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xC9 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xCE 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xD9 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x06 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1C 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x01 0x00 0x02    // '????,???' \n\t0x00 0x00 0x00 0x00 0x39 0x01 0x00 0x02    // '????9???' \n\t0x01 0x00 0x00 0x00 0x41 0x01 0x00 0x02    // '????A???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x36 0x00 0x00 0x03    // '???6???' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x03    // '????C???' \n\t0x0F 0x00 0x00 0xFD 0x62 0x00 0x00 0x03    // '???b???' \n\t0x00 0x00 0x00 0x00 0xC9 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x41 0x01 0x00 0x03    // '???A???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x40    // '????8??@' \n\t0x08 0x00 0x00 0x00 0x86 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x88 0x00 0x00 0x40    // '??????@' \n\t0x09 0x00 0x00 0x00 0xC4 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC6 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0x41 0x01 0x00 0x40    // '????A??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0xC6 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0xD9 0x00 0x00 0x82    // '??????' \n\t0x0A 0x00 0x00 0x00 0x38 0x00 0x00 0xC0    // '????8??' \n\t0x04 0x00 0x00 0x00 0x88 0x00 0x00 0xC0    // '??????' \n\t0x06 0x00 0x00 0x00 0xC6 0x00 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x75 0x6E 0x64 0x73    // '??Sounds' \n\t0x97 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // 'click t' \n\t0x68 0x65 0x20 0x70 0x69 0x63 0x74 0x75    // 'he pictu' \n\t0x72 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 're of th' \n\t0x65 0x20 0x74 0x6F 0x6F 0x6C 0x20 0x79    // 'e tool y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x68 0x65 0x6C 0x70 0x20 0x6F 0x6E 0x2E    // 'help on.' \n\t0x0D 0x0A 0x01 0x09 0x09 0x4C 0x69 0x73    // '?????Lis' \n\t0x74 0x65 0x6E 0x65 0x72 0x2E 0x2E 0x2E    // 'tener...' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x6C 0x69 0x73 0x74    // '....list' \n\t0x65 0x6E 0x20 0x74 0x6F 0x2C 0x20 0x61    // 'en to, a' \n\t0x64 0x6A 0x75 0x73 0x74 0x2C 0x20 0x6F    // 'djust, o' \n\t0x72 0x20 0x72 0x65 0x6D 0x6F 0x76 0x65    // 'r remove' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \n\t0x0D 0x0A 0x01 0x09 0x09 0x41 0x63 0x74    // '?????Act' \n\t0x69 0x6F 0x6E 0x20 0x4D 0x61 0x74 0x63    // 'ion Matc' \n\t0x68 0x65 0x72 0x2E 0x2E 0x2E 0x2E 0x2E    // 'her.....' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x6D 0x61 0x74 0x63    // '....matc' \n\t0x68 0x20 0x61 0x20 0x73 0x6F 0x75 0x6E    // 'h a soun' \n\t0x64 0x20 0x74 0x6F 0x20 0x61 0x6E 0x20    // 'd to an ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x0D 0x0A    // 'action??' \n\t0x01 0x09 0x09 0x57 0x61 0x69 0x74 0x20    // '???Wait ' \n\t0x66 0x6F 0x72 0x20 0x53 0x6F 0x75 0x6E    // 'for Soun' \n\t0x64 0x0D 0x0A 0x09 0x09 0x09 0x74 0x6F    // 'd?????to' \n\t0x20 0x45 0x6E 0x64 0x2E 0x2E 0x2E 0x2E    // ' End....' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x70    // '.......p' \n\t0x61 0x75 0x73 0x65 0x20 0x74 0x68 0x65    // 'ause the' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x61    // ' movie a' \n\t0x63 0x74 0x69 0x6F 0x6E 0x20 0x75 0x6E    // 'ction un' \n\t0x74 0x69 0x6C 0x20 0x61 0x20 0x73 0x6F    // 'til a so' \n\t0x75 0x6E 0x64 0x20 0x69 0x73 0x20 0x09    // 'und is ?' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09    // '????????' \n\t0x09 0x09 0x09 0x66 0x69 0x6E 0x69 0x73    // '???finis' \n\t0x68 0x65 0x64                             // 'hed' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= ktpcBookWordTools1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"(L) Word Tools Pg 1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"(L) Word Tools Pg 1\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookWordTools1\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_11=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\nAG(4)\n\tITEM LONG 0x2000006\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG thStyles __HELP_SYMBOL( STN \"thStyles\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thLetters __HELP_SYMBOL( STN \"thLetters\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsSelect __HELP_SYMBOL( STN \"mbmpTextsSelect\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsCreate __HELP_SYMBOL( STN \"mbmpTextsCreate\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thInsertion_Point __HELP_SYMBOL( STN \"thInsertion_Point\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thWordBox __HELP_SYMBOL( STN \"thWordBox\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsFont __HELP_SYMBOL( STN \"mbmpTextsFont\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsFontShape __HELP_SYMBOL( STN \"mbmpTextsFontShape\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x32 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '2???????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x01    // '????:???' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x00 0x00 0x00 0x00 0x7A 0x00 0x00 0x01    // '????z???' \n\t0x01 0x00 0x00 0x00 0x7C 0x00 0x00 0x01    // '????|???' \n\t0x00 0x00 0x00 0x00 0x7F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xC8 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x50 0x01 0x00 0x01    // '????P???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x02    // '????>???' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x02    // '????B???' \n\t0x00 0x00 0x00 0x00 0x7A 0x00 0x00 0x02    // '????z???' \n\t0x01 0x00 0x00 0x00 0x7C 0x00 0x00 0x02    // '????|???' \n\t0x00 0x00 0x00 0x00 0x7F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x8E 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xCB 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xD1 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xED 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xFF 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x50 0x01 0x00 0x02    // '????P???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x03    // '????:???' \n\t0x0F 0x00 0x00 0xFD 0x7A 0x00 0x00 0x03    // '???z???' \n\t0x0A 0x00 0x00 0xFD 0x7C 0x00 0x00 0x03    // '???|???' \n\t0x00 0x00 0x00 0x00 0x7F 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0xC8 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xCB 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x0E 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x50 0x01 0x00 0x03    // '????P???' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x08 0x00 0x00 0x00 0x7A 0x00 0x00 0x40    // '????z??@' \n\t0x00 0x00 0x00 0x00 0x7C 0x00 0x00 0x40    // '????|??@' \n\t0x06 0x00 0x00 0x00 0xC6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC8 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0x0C 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x0E 0x01 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x50 0x01 0x00 0x40    // '????P??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x37 0x00 0x00 0xC0    // '????7??' \n\t0x05 0x00 0x00 0x00 0x7C 0x00 0x00 0xC0    // '????|??' \n\t0x04 0x00 0x00 0x00 0xC8 0x00 0x00 0xC0    // '??????' \n\t0x09 0x00 0x00 0x00 0x0E 0x01 0x00 0xC0    // '???????' \n\t0x0A 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x6F 0x72 0x64 0x73 0x97    // '??Words' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x70 0x69 0x63 0x74 0x75 0x72    // 'e pictur' \n\t0x65 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'e of the' \n\t0x20 0x74 0x6F 0x6F 0x6C 0x20 0x79 0x6F    // ' tool yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x68    // 'u want h' \n\t0x65 0x6C 0x70 0x20 0x6F 0x6E 0x2E 0x0D    // 'elp on.?' \n\t0x0A 0x01 0x09 0x09 0x57 0x6F 0x72 0x64    // '????Word' \n\t0x20 0x42 0x6F 0x78 0x2E 0x2E 0x2E 0x2E    // ' Box....' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x61 0x64 0x64 0x20 0x77 0x6F    // '..add wo' \n\t0x72 0x64 0x73 0x20 0x6F 0x72 0x20 0x63    // 'rds or c' \n\t0x72 0x65 0x64 0x69 0x74 0x73 0x20 0x74    // 'redits t' \n\t0x6F 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'o your m' \n\t0x6F 0x76 0x69 0x65 0x0D 0x0A 0x01 0x09    // 'ovie????' \n\t0x09 0x49 0x6E 0x73 0x65 0x72 0x74 0x69    // '?Inserti' \n\t0x6F 0x6E 0x20 0x50 0x6F 0x69 0x6E 0x74    // 'on Point' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x6D 0x6F 0x76    // '.....mov' \n\t0x65 0x2C 0x20 0x72 0x65 0x73 0x69 0x7A    // 'e, resiz' \n\t0x65 0x2C 0x20 0x6F 0x72 0x20 0x63 0x68    // 'e, or ch' \n\t0x61 0x6E 0x67 0x65 0x20 0x77 0x6F 0x72    // 'ange wor' \n\t0x64 0x73 0x20 0x69 0x6E 0x20 0x61 0x20    // 'ds in a ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \n\t0x0D 0x0A 0x01 0x09 0x09 0x4C 0x65 0x74    // '?????Let' \n\t0x74 0x65 0x72 0x73 0x2E 0x2E 0x2E 0x2E    // 'ters....' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x63 0x68    // '......ch' \n\t0x61 0x6E 0x67 0x65 0x20 0x74 0x68 0x65    // 'ange the' \n\t0x20 0x77 0x61 0x79 0x20 0x79 0x6F 0x75    // ' way you' \n\t0x72 0x20 0x6C 0x65 0x74 0x74 0x65 0x72    // 'r letter' \n\t0x73 0x20 0x6C 0x6F 0x6F 0x6B 0x0D 0x0A    // 's look??' \n\t0x01 0x09 0x09 0x53 0x74 0x79 0x6C 0x65    // '???Style' \n\t0x73 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // 's.......' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x6D 0x61    // '......ma' \n\t0x6B 0x65 0x20 0x6C 0x65 0x74 0x74 0x65    // 'ke lette' \n\t0x72 0x73 0x20 0x20 0x62 0x6F 0x6C 0x64    // 'rs  bold' \n\t0x20 0x6F 0x72 0x20 0x69 0x74 0x61 0x6C    // ' or ital' \n\t0x69 0x63                                  // 'ic' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= ktpcBookWordTools2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"(L) Word Tools Pg 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"(L) Word Tools Pg 2\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookWordTools2\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_10=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\nAG(4)\n\tITEM LONG 0x200000C\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thLetterColor __HELP_SYMBOL( STN \"thLetterColor\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsFontSize __HELP_SYMBOL( STN \"mbmpTextsFontSize\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thBackground_Color __HELP_SYMBOL( STN \"thBackground_Color\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG thScrolling_NonScrolling __HELP_SYMBOL( STN \"thScrolling_NonScrolling\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsFontColor __HELP_SYMBOL( STN \"mbmpTextsFontColor\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsBkgdColor __HELP_SYMBOL( STN \"mbmpTextsBkgdColor\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thLetterSize __HELP_SYMBOL( STN \"thLetterSize\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsScrollType __HELP_SYMBOL( STN \"mbmpTextsScrollType\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x42 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // 'B???????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x01    // '????:???' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x01    // '????E???' \n\t0x00 0x00 0x00 0x00 0x7B 0x00 0x00 0x01    // '????{???' \n\t0x01 0x00 0x00 0x00 0x87 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xAF 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB1 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xB4 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xC4 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x02 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1C 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x21 0x01 0x00 0x01    // '????!???' \n\t0x01 0x00 0x00 0x00 0x30 0x01 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x02    // '????:???' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x02    // '????E???' \n\t0x00 0x00 0x00 0x00 0x58 0x00 0x00 0x02    // '????X???' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x02    // '????b???' \n\t0x00 0x00 0x00 0x00 0x7B 0x00 0x00 0x02    // '????{???' \n\t0x01 0x00 0x00 0x00 0x87 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x99 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xA3 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xAF 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xB1 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xB4 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xC4 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xCE 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xE2 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xE3 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xEE 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xF2 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xF3 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xFF 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x04 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x21 0x01 0x00 0x02    // '????!???' \n\t0x00 0x00 0x00 0x00 0x22 0x01 0x00 0x02    // '????\"???' \n\t0x01 0x00 0x00 0x00 0x29 0x01 0x00 0x02    // '????)???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x03    // '????:???' \n\t0x0F 0x00 0x00 0xFD 0x78 0x00 0x00 0x03    // '???x???' \n\t0x00 0x00 0x00 0x00 0x7B 0x00 0x00 0x03    // '????{???' \n\t0x0F 0x00 0x00 0xFD 0xAF 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xB1 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xB4 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x02 0x01 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x04 0x01 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x5B 0x01 0x00 0x03    // '???[???' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x09 0x00 0x00 0x00 0x76 0x00 0x00 0x40    // '????v??@' \n\t0x00 0x00 0x00 0x00 0x78 0x00 0x00 0x40    // '????x??@' \n\t0x02 0x00 0x00 0x00 0xAF 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xB1 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0x02 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x04 0x01 0x00 0x40    // '???????@' \n\t0x06 0x00 0x00 0x00 0x5B 0x01 0x00 0x40    // '????[??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x04 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0xC0    // '????7??' \n\t0x03 0x00 0x00 0x00 0x78 0x00 0x00 0xC0    // '????x??' \n\t0x07 0x00 0x00 0x00 0xB1 0x00 0x00 0xC0    // '??????' \n\t0x08 0x00 0x00 0x00 0x04 0x01 0x00 0xC0    // '???????' \n\t0x0A 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x6F 0x72 0x64 0x73 0x97    // '??Words' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x70 0x69 0x63 0x74 0x75 0x72    // 'e pictur' \n\t0x65 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'e of the' \n\t0x20 0x74 0x6F 0x6F 0x6C 0x20 0x79 0x6F    // ' tool yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x68    // 'u want h' \n\t0x65 0x6C 0x70 0x20 0x6F 0x6E 0x2E 0x0D    // 'elp on.?' \n\t0x0A 0x01 0x09 0x09 0x4C 0x65 0x74 0x74    // '????Lett' \n\t0x65 0x72 0x20 0x53 0x69 0x7A 0x65 0x2E    // 'er Size.' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x63 0x68 0x61 0x6E 0x67 0x65 0x20    // '.change ' \n\t0x74 0x68 0x65 0x20 0x73 0x69 0x7A 0x65    // 'the size' \n\t0x20 0x6F 0x66 0x20 0x79 0x6F 0x75 0x72    // ' of your' \n\t0x20 0x6C 0x65 0x74 0x74 0x65 0x72 0x73    // ' letters' \n\t0x0D 0x0A 0x01 0x09 0x09 0x4C 0x65 0x74    // '?????Let' \n\t0x74 0x65 0x72 0x20 0x43 0x6F 0x6C 0x6F    // 'ter Colo' \n\t0x72 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // 'r.......' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x63 0x68 0x61 0x6E 0x67 0x65    // '..change' \n\t0x20 0x74 0x68 0x65 0x20 0x6C 0x65 0x74    // ' the let' \n\t0x74 0x65 0x72 0x20 0x63 0x6F 0x6C 0x6F    // 'ter colo' \n\t0x72 0x0D 0x0A 0x01 0x09 0x09 0x42 0x61    // 'r?????Ba' \n\t0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'ckground' \n\t0x20 0x43 0x6F 0x6C 0x6F 0x72 0x2E 0x2E    // ' Color..' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x63    // '.......c' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x74 0x68    // 'hange th' \n\t0x65 0x20 0x62 0x61 0x63 0x6B 0x67 0x72    // 'e backgr' \n\t0x6F 0x75 0x6E 0x64 0x20 0x63 0x6F 0x6C    // 'ound col' \n\t0x6F 0x72 0x20 0x6F 0x66 0x20 0x61 0x20    // 'or of a ' \n\t0x77 0x6F 0x72 0x64 0x20 0x09 0x09 0x09    // 'word ???' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09    // '????????' \n\t0x09 0x62 0x6F 0x78 0x0D 0x0A 0x01 0x09    // '?box????' \n\t0x09 0x53 0x63 0x72 0x6F 0x6C 0x6C 0x69    // '?Scrolli' \n\t0x6E 0x67 0x20 0x6F 0x72 0x20 0x4E 0x6F    // 'ng or No' \n\t0x6E 0x2D 0x09 0x09 0x09 0x09 0x0D 0x0A    // 'n-??????' \n\t0x09 0x09 0x09 0x53 0x63 0x72 0x6F 0x6C    // '???Scrol' \n\t0x6C 0x69 0x6E 0x67 0x20 0x57 0x6F 0x72    // 'ling Wor' \n\t0x64 0x73 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // 'ds......' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x6D 0x61    // '......ma' \n\t0x6B 0x65 0x20 0x77 0x6F 0x72 0x64 0x73    // 'ke words' \n\t0x20 0x73 0x63 0x72 0x6F 0x6C 0x6C 0x20    // ' scroll ' \n\t0x6F 0x72 0x20 0x73 0x74 0x61 0x79 0x20    // 'or stay ' \n\t0x73 0x74 0x69 0x6C 0x6C                   // 'still' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= ktpcBookWordTools3\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"(L) Word Tools Pg 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"(L) Word Tools Pg 3\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookWordTools3\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFONonScrolling __HELP_SYMBOL( STN \"mbmpFONonScrolling\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thScrolling __HELP_SYMBOL( STN \"thScrolling\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFOScrolling __HELP_SYMBOL( STN \"mbmpFOScrolling\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thStory __HELP_SYMBOL( STN \"thStory\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x01    // '????:???' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x01    // '????C???' \n\t0x00 0x00 0x00 0x00 0xAD 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xAF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xB2 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xBF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xF2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x02    // '????:???' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x02    // '????C???' \n\t0x00 0x00 0x00 0x00 0xAD 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xAF 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xF2 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x03    // '????:???' \n\t0x0F 0x00 0x00 0xFD 0xAD 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xAF 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xB2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xD0 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xF2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x03 0x00 0x00 0x00 0xAD 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xAF 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xF2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x37 0x00 0x00 0xC0    // '????7??' \n\t0x04 0x00 0x00 0x00 0xAF 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x6F 0x72 0x64 0x73 0x97    // '??Words' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x70 0x69 0x63 0x74 0x75 0x72    // 'e pictur' \n\t0x65 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'e of the' \n\t0x20 0x74 0x6F 0x6F 0x6C 0x20 0x79 0x6F    // ' tool yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x68    // 'u want h' \n\t0x65 0x6C 0x70 0x20 0x6F 0x6E 0x2E 0x0D    // 'elp on.?' \n\t0x0A 0x01 0x09 0x09 0x53 0x63 0x72 0x6F    // '????Scro' \n\t0x6C 0x6C 0x69 0x6E 0x67 0x2E 0x2E 0x2E    // 'lling...' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x6D 0x61    // '......ma' \n\t0x6B 0x65 0x20 0x77 0x6F 0x72 0x64 0x73    // 'ke words' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x77 0x6F    // ' in a wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x20 0x72    // 'rd box r' \n\t0x6F 0x6C 0x6C 0x20 0x74 0x6F 0x20 0x74    // 'oll to t' \n\t0x68 0x65 0x20 0x74 0x6F 0x70 0x20 0x09    // 'he top ?' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09    // '????????' \n\t0x09 0x09 0x20 0x20 0x20 0x20 0x20 0x77    // '??     w' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x20    // 'hen you ' \n\t0x70 0x6C 0x61 0x79 0x20 0x79 0x6F 0x75    // 'play you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x0D    // 'r movie?' \n\t0x0A 0x01 0x09 0x09 0x4E 0x6F 0x6E 0x2D    // '????Non-' \n\t0x53 0x63 0x72 0x6F 0x6C 0x6C 0x69 0x6E    // 'Scrollin' \n\t0x67 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // 'g.......' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x6D 0x61 0x6B 0x65 0x20 0x77 0x6F    // '.make wo' \n\t0x72 0x64 0x73 0x20 0x69 0x6E 0x20 0x61    // 'rds in a' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x20 0x73 0x74 0x61 0x79 0x20 0x73    // 'x stay s' \n\t0x74 0x69 0x6C 0x6C                        // 'till' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= ktpcBookMasterTools1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"(L) Master Tools Pg 1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"(L) Master Tools Pg 1\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookMasterTools1\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thFrameSlider __HELP_SYMBOL( STN \"thFrameSlider\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thSceneSlider __HELP_SYMBOL( STN \"thSceneSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPlay __HELP_SYMBOL( STN \"mbmpPlay\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thPlayStop __HELP_SYMBOL( STN \"thPlayStop\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x24 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '$???????' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x01    // '????A???' \n\t0x01 0x00 0x00 0x00 0x4D 0x00 0x00 0x01    // '????M???' \n\t0x00 0x00 0x00 0x00 0x9E 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xA2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA5 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB1 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xF6 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xFF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x35 0x01 0x00 0x01    // '????5???' \n\t0x00 0x00 0x00 0x00 0xF6 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xFA 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x35 0x01 0x00 0x02    // '????5???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x03    // '????A???' \n\t0x0F 0x00 0x00 0xFD 0xA2 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xF2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xF6 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x35 0x01 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x02 0x00 0x00 0x00 0x9D 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA2 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xF0 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF4 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0x35 0x01 0x00 0x40    // '????5??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x3E 0x00 0x00 0x82    // '????>??' \n\t0x05 0x00 0x00 0x00 0x41 0x00 0x00 0x82    // '????A??' \n\t0x0A 0x00 0x00 0x00 0xA2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0xA5 0x00 0x00 0x82    // '??????' \n\t0x0A 0x00 0x00 0x00 0xF2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0xC0    // '????>??' \n\t0x06 0x00 0x00 0x00 0xA2 0x00 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00 0xF4 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x73 0x74 0x65 0x72    // '??Master' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x97 0x63    // ' Toolsc' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x70 0x69 0x63 0x74 0x75 0x72 0x65    // ' picture' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x74 0x6F 0x6F 0x6C 0x20 0x79 0x6F 0x75    // 'tool you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x68 0x65    // ' want he' \n\t0x6C 0x70 0x20 0x6F 0x6E 0x2E 0x0D 0x0A    // 'lp on.??' \n\t0x01 0x0D 0x0A 0x46 0x72 0x61 0x6D 0x65    // '???Frame' \n\t0x20 0x53 0x6C 0x69 0x64 0x65 0x72 0x2E    // ' Slider.' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x6D 0x6F    // '......mo' \n\t0x76 0x65 0x20 0x66 0x6F 0x72 0x77 0x61    // 've forwa' \n\t0x72 0x64 0x20 0x6F 0x72 0x20 0x62 0x61    // 'rd or ba' \n\t0x63 0x6B 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ck in th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x73 0x63 0x65 0x6E 0x65 0x20    // 't scene ' \n\t0x09 0x09 0x0D 0x0A 0x01 0x0D 0x0A 0x53    // '???????S' \n\t0x63 0x65 0x6E 0x65 0x20 0x53 0x6C 0x69    // 'cene Sli' \n\t0x64 0x65 0x72 0x2E 0x2E 0x2E 0x2E 0x2E    // 'der.....' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x6D 0x6F 0x76 0x65 0x20 0x66    // '..move f' \n\t0x72 0x6F 0x6D 0x20 0x73 0x63 0x65 0x6E    // 'rom scen' \n\t0x65 0x20 0x74 0x6F 0x20 0x73 0x63 0x65    // 'e to sce' \n\t0x6E 0x65 0x0D 0x0A 0x0D 0x0A 0x01 0x09    // 'ne??????' \n\t0x50 0x6C 0x61 0x79 0x2F 0x53 0x74 0x6F    // 'Play/Sto' \n\t0x70 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // 'p.......' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x70 0x6C 0x61 0x79 0x20 0x61    // '..play a' \n\t0x6E 0x64 0x20 0x73 0x74 0x6F 0x70 0x20    // 'nd stop ' \n\t0x61 0x20 0x6D 0x6F 0x76 0x69 0x65         // 'a movie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= ktpcBookMasterTools2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"(L) Master Tools Pg 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"(L) Master Tools Pg 2\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookMasterTools2\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\nAG(4)\n\tITEM LONG 0x200000A\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG thCut __HELP_SYMBOL( STN \"thCut\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpUndo __HELP_SYMBOL( STN \"mbmpUndo\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thVolumeControl __HELP_SYMBOL( STN \"thVolumeControl\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCutCopyPaste __HELP_SYMBOL( STN \"mbmpCutCopyPaste\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thUndoRedo __HELP_SYMBOL( STN \"thUndoRedo\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG thVolumeControl __HELP_SYMBOL( STN \"thVolumeControl\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpVolumeControl __HELP_SYMBOL( STN \"mbmpVolumeControl\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPCut __HELP_SYMBOL( STN \"mbmpCCPCut\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thCutCopyPaste __HELP_SYMBOL( STN \"thCutCopyPaste\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x38 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '8???????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x01    // '????A???' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x01    // '????O???' \n\t0x00 0x00 0x00 0x00 0x85 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x8E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xEE 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x02 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x39 0x01 0x00 0x01    // '????9???' \n\t0x01 0x00 0x00 0x00 0x3C 0x01 0x00 0x01    // '????<???' \n\t0x00 0x00 0x00 0x00 0x8C 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x02    // '????A???' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x02    // '????O???' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x02    // '????b???' \n\t0x01 0x00 0x00 0x00 0x74 0x00 0x00 0x02    // '????t???' \n\t0x00 0x00 0x00 0x00 0x85 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x8E 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xA8 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xC2 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xF1 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xFB 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xFC 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x02 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x01 0x00 0x02    // '????(???' \n\t0x00 0x00 0x00 0x00 0x29 0x01 0x00 0x02    // '????)???' \n\t0x01 0x00 0x00 0x00 0x34 0x01 0x00 0x02    // '????4???' \n\t0x00 0x00 0x00 0x00 0x39 0x01 0x00 0x02    // '????9???' \n\t0x01 0x00 0x00 0x00 0x3C 0x01 0x00 0x02    // '????<???' \n\t0x00 0x00 0x00 0x00 0x65 0x01 0x00 0x02    // '????e???' \n\t0x01 0x00 0x00 0x00 0x68 0x01 0x00 0x02    // '????h???' \n\t0x00 0x00 0x00 0x00 0x8C 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x03    // '????A???' \n\t0x0F 0x00 0x00 0xFD 0x82 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x85 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xEE 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xF1 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x36 0x01 0x00 0x03    // '???6???' \n\t0x00 0x00 0x00 0x00 0x39 0x01 0x00 0x03    // '????9???' \n\t0x0F 0x00 0x00 0xFD 0x8C 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x06 0x00 0x00 0x00 0x80 0x00 0x00 0x40    // '??????@' \n\t0x09 0x00 0x00 0x00 0x82 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0xEC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xEE 0x00 0x00 0x40    // '??????@' \n\t0x0C 0x00 0x00 0x00 0x34 0x01 0x00 0x40    // '????4??@' \n\t0x00 0x00 0x00 0x00 0x36 0x01 0x00 0x40    // '????6??@' \n\t0x03 0x00 0x00 0x00 0x8C 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x36 0x01 0x00 0x82    // '????6??' \n\t0x08 0x00 0x00 0x00 0x3E 0x00 0x00 0xC0    // '????>??' \n\t0x0A 0x00 0x00 0x00 0x82 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00 0xEE 0x00 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00 0x36 0x01 0x00 0xC0    // '????6??' \n\t0x0B 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x73 0x74 0x65 0x72    // '??Master' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x97 0x63    // ' Toolsc' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x70 0x69 0x63 0x74 0x75 0x72 0x65    // ' picture' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x74 0x6F 0x6F 0x6C 0x20 0x79 0x6F 0x75    // 'tool you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x68 0x65    // ' want he' \n\t0x6C 0x70 0x20 0x6F 0x6E 0x2E 0x0D 0x0A    // 'lp on.??' \n\t0x01 0x09 0x09 0x56 0x6F 0x6C 0x75 0x6D    // '???Volum' \n\t0x65 0x20 0x43 0x6F 0x6E 0x74 0x72 0x6F    // 'e Contro' \n\t0x6C 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // 'l.......' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x61 0x64 0x6A 0x75 0x73    // '...adjus' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x76 0x6F    // 't the vo' \n\t0x6C 0x75 0x6D 0x65 0x20 0x6F 0x66 0x20    // 'lume of ' \n\t0x61 0x6C 0x6C 0x20 0x73 0x6F 0x75 0x6E    // 'all soun' \n\t0x64 0x73 0x0D 0x0A 0x01 0x09 0x09 0x55    // 'ds?????U' \n\t0x6E 0x64 0x6F 0x2F 0x52 0x65 0x64 0x6F    // 'ndo/Redo' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x75 0x6E 0x64 0x6F 0x20 0x74 0x68    // '.undo th' \n\t0x65 0x20 0x6C 0x61 0x73 0x74 0x20 0x74    // 'e last t' \n\t0x68 0x69 0x6E 0x67 0x20 0x79 0x6F 0x75    // 'hing you' \n\t0x20 0x64 0x69 0x64 0x2C 0x20 0x6F 0x72    // ' did, or' \n\t0x20 0x72 0x65 0x64 0x6F 0x20 0x77 0x68    // ' redo wh' \n\t0x61 0x74 0x20 0x09 0x09 0x09 0x09 0x09    // 'at ?????' \n\t0x09 0x09 0x09 0x09 0x09 0x20 0x20 0x20    // '?????   ' \n\t0x20 0x09 0x20 0x20 0x20 0x79 0x6F 0x75    // ' ?   you' \n\t0x20 0x75 0x6E 0x64 0x69 0x64 0x0D 0x0A    // ' undid??' \n\t0x01 0x09 0x09 0x43 0x75 0x74 0x2C 0x20    // '???Cut, ' \n\t0x43 0x6F 0x70 0x79 0x2C 0x26 0x20 0x50    // 'Copy,& P' \n\t0x61 0x73 0x74 0x65 0x2E 0x2E 0x2E 0x2E    // 'aste....' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x67    // '.......g' \n\t0x65 0x74 0x20 0x72 0x69 0x64 0x20 0x6F    // 'et rid o' \n\t0x66 0x2C 0x20 0x63 0x6F 0x70 0x79 0x2C    // 'f, copy,' \n\t0x20 0x70 0x61 0x73 0x74 0x65 0x2C 0x20    // ' paste, ' \n\t0x6F 0x72 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'or move ' \n\t0x74 0x68 0x69 0x6E 0x67 0x73 0x0D 0x0A    // 'things??' \n\t0x01 0x09 0x09 0x43 0x75 0x74 0x2E 0x2E    // '???Cut..' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x63 0x75    // '......cu' \n\t0x74 0x20 0x73 0x6F 0x6D 0x65 0x74 0x68    // 't someth' \n\t0x69 0x6E 0x67 0x20 0x79 0x6F 0x75 0x20    // 'ing you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x6D 0x6F 0x76 0x65 0x20 0x65 0x6C 0x73    // 'move els' \n\t0x65 0x77 0x68 0x65 0x72 0x65              // 'ewhere' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= ktpcBookMasterTools3\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"(L) MasterTools Pg 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"(L) MasterTools Pg 3\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookMasterTools3\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\nAG(4)\n\tITEM LONG 0x200000E\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thCopyPath __HELP_SYMBOL( STN \"thCopyPath\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPRemoveScene __HELP_SYMBOL( STN \"mbmpCCPRemoveScene\" )\n\tFREE\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPPaste __HELP_SYMBOL( STN \"mbmpCCPPaste\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPCopyRoute __HELP_SYMBOL( STN \"mbmpCCPCopyRoute\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPCopy __HELP_SYMBOL( STN \"mbmpCCPCopy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thCopy __HELP_SYMBOL( STN \"thCopy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thPaste __HELP_SYMBOL( STN \"thPaste\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG thGetRidEntireScene __HELP_SYMBOL( STN \"thGetRidEntireScene\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x44 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // 'D???????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x01    // '????A???' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x01    // '????E???' \n\t0x00 0x00 0x00 0x00 0x94 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x9D 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0A 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x71 0x01 0x00 0x01    // '????q???' \n\t0x00 0x00 0x00 0x00 0x74 0x01 0x00 0x01    // '????t???' \n\t0x01 0x00 0x00 0x00 0x87 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xD1 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x02    // '????A???' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x02    // '????E???' \n\t0x00 0x00 0x00 0x00 0x6B 0x00 0x00 0x02    // '????k???' \n\t0x01 0x00 0x00 0x00 0x6D 0x00 0x00 0x02    // '????m???' \n\t0x00 0x00 0x00 0x00 0x6E 0x00 0x00 0x02    // '????n???' \n\t0x01 0x00 0x00 0x00 0x6F 0x00 0x00 0x02    // '????o???' \n\t0x00 0x00 0x00 0x00 0x7D 0x00 0x00 0x02    // '????}???' \n\t0x01 0x00 0x00 0x00 0x83 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x8F 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x94 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x9D 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x0A 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x33 0x01 0x00 0x02    // '????3???' \n\t0x01 0x00 0x00 0x00 0x49 0x01 0x00 0x02    // '????I???' \n\t0x00 0x00 0x00 0x00 0x4A 0x01 0x00 0x02    // '????J???' \n\t0x01 0x00 0x00 0x00 0x5A 0x01 0x00 0x02    // '????Z???' \n\t0x00 0x00 0x00 0x00 0x69 0x01 0x00 0x02    // '????i???' \n\t0x01 0x00 0x00 0x00 0x6F 0x01 0x00 0x02    // '????o???' \n\t0x00 0x00 0x00 0x00 0x71 0x01 0x00 0x02    // '????q???' \n\t0x00 0x00 0x00 0x00 0x7A 0x01 0x00 0x02    // '????z???' \n\t0x01 0x00 0x00 0x00 0x87 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x8C 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x96 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x9D 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xA3 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xA4 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xAE 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xBD 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xC7 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xD1 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x03    // '????A???' \n\t0x0F 0x00 0x00 0xFD 0x91 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x94 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0A 0x01 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x71 0x01 0x00 0x03    // '???q???' \n\t0x0F 0x00 0x00 0xFD 0x72 0x01 0x00 0x03    // '???r???' \n\t0x00 0x00 0x00 0x00 0x74 0x01 0x00 0x03    // '????t???' \n\t0x0F 0x00 0x00 0xFD 0xD1 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x0C 0x00 0x00 0x00 0x8F 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x91 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0x05 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x07 0x01 0x00 0x40    // '???????@' \n\t0x0D 0x00 0x00 0x00 0x6F 0x01 0x00 0x40    // '????o??@' \n\t0x00 0x00 0x00 0x00 0x71 0x01 0x00 0x40    // '????q??@' \n\t0x0E 0x00 0x00 0x00 0xD1 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x71 0x01 0x00 0x82    // '????q??' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0xC0    // '????>??' \n\t0x0B 0x00 0x00 0x00 0x91 0x00 0x00 0xC0    // '??????' \n\t0x09 0x00 0x00 0x00 0x07 0x01 0x00 0xC0    // '???????' \n\t0x07 0x00 0x00 0x00 0x71 0x01 0x00 0xC0    // '????q??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x73 0x74 0x65 0x72    // '??Master' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x97 0x63    // ' Toolsc' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x70 0x69 0x63 0x74 0x75 0x72 0x65    // ' picture' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x74 0x6F 0x6F 0x6C 0x20 0x79 0x6F 0x75    // 'tool you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x68 0x65    // ' want he' \n\t0x6C 0x70 0x20 0x6F 0x6E 0x2E 0x0D 0x0A    // 'lp on.??' \n\t0x01 0x09 0x09 0x43 0x6F 0x70 0x79 0x2E    // '???Copy.' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x63 0x6F 0x70 0x79    // '....copy' \n\t0x20 0x73 0x6F 0x6D 0x65 0x74 0x68 0x69    // ' somethi' \n\t0x6E 0x67 0x20 0x61 0x6E 0x64 0x20 0x70    // 'ng and p' \n\t0x61 0x73 0x74 0x65 0x20 0x69 0x74 0x20    // 'aste it ' \n\t0x65 0x6C 0x73 0x65 0x77 0x68 0x65 0x72    // 'elsewher' \n\t0x65 0x0D 0x0A 0x01 0x09 0x09 0x43 0x6F    // 'e?????Co' \n\t0x70 0x79 0x20 0x50 0x61 0x74 0x68 0x2E    // 'py Path.' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x63 0x6F 0x70 0x79 0x20 0x61    // '..copy a' \n\t0x20 0x70 0x61 0x74 0x68 0x20 0x61 0x6E    // ' path an' \n\t0x64 0x20 0x70 0x61 0x73 0x74 0x65 0x20    // 'd paste ' \n\t0x69 0x74 0x20 0x6F 0x6E 0x74 0x6F 0x20    // 'it onto ' \n\t0x61 0x6E 0x6F 0x74 0x68 0x65 0x72 0x20    // 'another ' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09    // '????????' \n\t0x09 0x09 0x09 0x09 0x20 0x20 0x20 0x20    // '????    ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2C 0x20 0x70    // 'actor, p' \n\t0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20    // 'rop, or ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x0D    // '3D word?' \n\t0x0A 0x01 0x09 0x09 0x50 0x61 0x73 0x74    // '????Past' \n\t0x65 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // 'e.......' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x70 0x61 0x73 0x74    // '....past' \n\t0x65 0x20 0x77 0x68 0x61 0x74 0x65 0x76    // 'e whatev' \n\t0x65 0x72 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'er you m' \n\t0x6F 0x73 0x74 0x20 0x72 0x65 0x63 0x65    // 'ost rece' \n\t0x6E 0x74 0x6C 0x79 0x20 0x63 0x75 0x74    // 'ntly cut' \n\t0x20 0x6F 0x72 0x20 0x09 0x09 0x09 0x09    // ' or ????' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x20    // '??????? ' \n\t0x20 0x20 0x20 0x63 0x6F 0x70 0x69 0x65    // '   copie' \n\t0x64 0x0D 0x0A 0x01 0x09 0x09 0x52 0x65    // 'd?????Re' \n\t0x6D 0x6F 0x76 0x65 0x20 0x45 0x6E 0x74    // 'move Ent' \n\t0x69 0x72 0x65 0x20 0x53 0x63 0x65 0x6E    // 'ire Scen' \n\t0x65 0x2E 0x2E 0x2E 0x2E 0x72 0x65 0x6D    // 'e....rem' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x63 0x75 0x72 0x72 0x65 0x6E 0x74 0x20    // 'current ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x69 0x6E    // 'scene in' \n\t0x63 0x6C 0x75 0x64 0x69 0x6E 0x67 0x20    // 'cluding ' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09    // '????????' \n\t0x09 0x09 0x09 0x09 0x20 0x20 0x20 0x61    // '????   a' \n\t0x6C 0x6C 0x20 0x61 0x63 0x74 0x6F 0x72    // 'll actor' \n\t0x73 0x20 0x61 0x6E 0x64 0x20 0x70 0x72    // 's and pr' \n\t0x6F 0x70 0x73                             // 'ops' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= ktpcBookMasterTools4\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"(L) Master Tools Pg 4\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"(L) Master Tools Pg 4\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookMasterTools4\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tITEM LONG 0x200000A\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thGetRidWordBox __HELP_SYMBOL( STN \"thGetRidWordBox\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG thPortfolio __HELP_SYMBOL( STN \"thPortfolio\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPortfolio __HELP_SYMBOL( STN \"mbmpPortfolio\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCutWordBox __HELP_SYMBOL( STN \"mbmpCutWordBox\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpNukeSound __HELP_SYMBOL( STN \"mbmpNukeSound\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPRemoveObject __HELP_SYMBOL( STN \"mbmpCCPRemoveObject\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thGetRid3DObject __HELP_SYMBOL( STN \"thGetRid3DObject\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thRemoveSound __HELP_SYMBOL( STN \"thRemoveSound\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x37 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '7???????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x01    // '????A???' \n\t0x01 0x00 0x00 0x00 0x51 0x00 0x00 0x01    // '????Q???' \n\t0x00 0x00 0x00 0x00 0xA5 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB1 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x1C 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x01 0x00 0x01    // '????+???' \n\t0x00 0x00 0x00 0x00 0x5F 0x01 0x00 0x01    // '????_???' \n\t0x00 0x00 0x00 0x00 0x62 0x01 0x00 0x01    // '????b???' \n\t0x01 0x00 0x00 0x00 0x6B 0x01 0x00 0x01    // '????k???' \n\t0x00 0x00 0x00 0x00 0xCD 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x5C 0x00 0x00 0x02    // '????\\???' \n\t0x01 0x00 0x00 0x00 0x61 0x00 0x00 0x02    // '????a???' \n\t0x00 0x00 0x00 0x00 0xA0 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xC4 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xCA 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x27 0x01 0x00 0x02    // '????'???' \n\t0x01 0x00 0x00 0x00 0x2B 0x01 0x00 0x02    // '????+???' \n\t0x00 0x00 0x00 0x00 0x36 0x01 0x00 0x02    // '????6???' \n\t0x01 0x00 0x00 0x00 0x3C 0x01 0x00 0x02    // '????<???' \n\t0x00 0x00 0x00 0x00 0x47 0x01 0x00 0x02    // '????G???' \n\t0x01 0x00 0x00 0x00 0x4F 0x01 0x00 0x02    // '????O???' \n\t0x00 0x00 0x00 0x00 0x50 0x01 0x00 0x02    // '????P???' \n\t0x01 0x00 0x00 0x00 0x58 0x01 0x00 0x02    // '????X???' \n\t0x00 0x00 0x00 0x00 0x5F 0x01 0x00 0x02    // '????_???' \n\t0x00 0x00 0x00 0x00 0x62 0x01 0x00 0x02    // '????b???' \n\t0x01 0x00 0x00 0x00 0x6A 0x01 0x00 0x02    // '????j???' \n\t0x00 0x00 0x00 0x00 0x89 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x99 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x9B 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xA3 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xA6 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xAE 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x03    // '????A???' \n\t0x0F 0x00 0x00 0xFD 0xA2 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x5F 0x01 0x00 0x03    // '???_???' \n\t0x00 0x00 0x00 0x00 0x62 0x01 0x00 0x03    // '????b???' \n\t0x0F 0x00 0x00 0xFD 0xCD 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x0B 0x00 0x00 0x00 0xA0 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA2 0x00 0x00 0x40    // '??????@' \n\t0x0C 0x00 0x00 0x00 0x17 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x19 0x01 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x5D 0x01 0x00 0x40    // '????]??@' \n\t0x00 0x00 0x00 0x00 0x5F 0x01 0x00 0x40    // '????_??@' \n\t0x04 0x00 0x00 0x00 0xCD 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x5F 0x01 0x00 0x82    // '????_??' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0xC0    // '????>??' \n\t0x09 0x00 0x00 0x00 0xA2 0x00 0x00 0xC0    // '??????' \n\t0x08 0x00 0x00 0x00 0x19 0x01 0x00 0xC0    // '???????' \n\t0x07 0x00 0x00 0x00 0x5F 0x01 0x00 0xC0    // '????_??' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x73 0x74 0x65 0x72    // '??Master' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x97 0x63    // ' Toolsc' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x70 0x69 0x63 0x74 0x75 0x72 0x65    // ' picture' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x74 0x6F 0x6F 0x6C 0x20 0x79 0x6F 0x75    // 'tool you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x68 0x65    // ' want he' \n\t0x6C 0x70 0x20 0x6F 0x6E 0x2E 0x0D 0x0A    // 'lp on.??' \n\t0x01 0x09 0x09 0x52 0x65 0x6D 0x6F 0x76    // '???Remov' \n\t0x65 0x20 0x33 0x44 0x20 0x4F 0x62 0x6A    // 'e 3D Obj' \n\t0x65 0x63 0x74 0x2E 0x2E 0x2E 0x2E 0x2E    // 'ect.....' \n\t0x2E 0x2E 0x2E 0x2E 0x72 0x65 0x6D 0x6F    // '....remo' \n\t0x76 0x65 0x20 0x61 0x6E 0x20 0x61 0x63    // 've an ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x66 0x72    // ' word fr' \n\t0x6F 0x6D 0x20 0x74 0x68 0x65 0x20 0x09    // 'om the ?' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09    // '????????' \n\t0x09 0x20 0x20 0x20 0x20 0x63 0x75 0x72    // '?    cur' \n\t0x72 0x65 0x6E 0x74 0x20 0x73 0x63 0x65    // 'rent sce' \n\t0x6E 0x65 0x0D 0x0A 0x01 0x09 0x09 0x52    // 'ne?????R' \n\t0x65 0x6D 0x6F 0x76 0x65 0x20 0x53 0x6F    // 'emove So' \n\t0x75 0x6E 0x64 0x2E 0x2E 0x2E 0x2E 0x2E    // 'und.....' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x72 0x65 0x6D    // '.....rem' \n\t0x6F 0x76 0x65 0x20 0x61 0x20 0x73 0x6F    // 'ove a so' \n\t0x75 0x6E 0x64 0x20 0x79 0x6F 0x75 0x20    // 'und you ' \n\t0x61 0x74 0x74 0x61 0x63 0x68 0x65 0x64    // 'attached' \n\t0x20 0x74 0x6F 0x20 0x61 0x20 0x09 0x09    // ' to a ??' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09    // '????????' \n\t0x09 0x09 0x09 0x20 0x20 0x20 0x62 0x61    // '???   ba' \n\t0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'ckground' \n\t0x2C 0x20 0x61 0x63 0x74 0x6F 0x72 0x2C    // ', actor,' \n\t0x20 0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F    // ' prop, o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x0D 0x0A 0x01 0x09 0x09 0x52 0x65    // 'd?????Re' \n\t0x6D 0x6F 0x76 0x65 0x20 0x57 0x6F 0x72    // 'move Wor' \n\t0x64 0x20 0x42 0x6F 0x78 0x2E 0x2E 0x2E    // 'd Box...' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x72    // '.......r' \n\t0x65 0x6D 0x6F 0x76 0x65 0x20 0x61 0x20    // 'emove a ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x74 0x68    // ' from th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x73 0x63 0x65 0x6E 0x65 0x0D    // 't scene?' \n\t0x0A 0x01 0x09 0x09 0x50 0x6F 0x72 0x74    // '????Port' \n\t0x66 0x6F 0x6C 0x69 0x6F 0x2E 0x2E 0x2E    // 'folio...' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x73 0x74 0x61 0x72 0x74 0x20    // '..start ' \n\t0x61 0x20 0x6E 0x65 0x77 0x20 0x6D 0x6F    // 'a new mo' \n\t0x76 0x69 0x65 0x2C 0x20 0x6F 0x70 0x65    // 'vie, ope' \n\t0x6E 0x20 0x61 0x6E 0x20 0x6F 0x6C 0x64    // 'n an old' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20    // ' movie, ' \n\t0x6F 0x72 0x20 0x09 0x09 0x09 0x09 0x09    // 'or ?????' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x20 0x20    // '??????  ' \n\t0x20 0x73 0x61 0x76 0x65 0x20 0x79 0x6F    // ' save yo' \n\t0x75 0x72 0x20 0x77 0x6F 0x72 0x6B         // 'ur work' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= ktpcBookMasterTools5\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"(L) MasterTools Pg 5\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"(L) MasterTools Pg 5\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookMasterTools5\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thSave __HELP_SYMBOL( STN \"thSave\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG thSaveAs __HELP_SYMBOL( STN \"thSaveAs\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thNew __HELP_SYMBOL( STN \"thNew\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPortfolioOpen __HELP_SYMBOL( STN \"mbmpPortfolioOpen\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPortsSave __HELP_SYMBOL( STN \"mbmpPortsSave\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPortfolioSaveAs __HELP_SYMBOL( STN \"mbmpPortfolioSaveAs\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thOpen __HELP_SYMBOL( STN \"thOpen\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPortsNew __HELP_SYMBOL( STN \"mbmpPortsNew\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0xDA 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x1D 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x62 0x00 0x00 0x03    // '???b???' \n\t0x00 0x00 0x00 0x00 0x73 0x00 0x00 0x03    // '????s???' \n\t0x0F 0x00 0x00 0xFD 0x94 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xAC 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xCD 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xDC 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xFE 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x1D 0x01 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x04 0x00 0x00 0x00 0x70 0x00 0x00 0x40    // '????p??@' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x40    // '????r??@' \n\t0x08 0x00 0x00 0x00 0xA9 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xAB 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xDA 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xDC 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x1D 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0xDC 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0xC0    // '????>??' \n\t0x0A 0x00 0x00 0x00 0x72 0x00 0x00 0xC0    // '????r??' \n\t0x05 0x00 0x00 0x00 0xAB 0x00 0x00 0xC0    // '??????' \n\t0x06 0x00 0x00 0x00 0xDC 0x00 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x73 0x74 0x65 0x72    // '??Master' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x97 0x63    // ' Toolsc' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x70 0x69 0x63 0x74 0x75 0x72 0x65    // ' picture' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x74 0x6F 0x6F 0x6C 0x20 0x79 0x6F 0x75    // 'tool you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x68 0x65    // ' want he' \n\t0x6C 0x70 0x20 0x6F 0x6E 0x2E 0x0D 0x0A    // 'lp on.??' \n\t0x01 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '?.......' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x73 0x74 0x61 0x72 0x74 0x20 0x61    // '.start a' \n\t0x20 0x6E 0x65 0x77 0x20 0x6D 0x6F 0x76    // ' new mov' \n\t0x69 0x65 0x0D 0x0A 0x01 0x2E 0x2E 0x2E    // 'ie???...' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x6F 0x70 0x65    // '.....ope' \n\t0x6E 0x20 0x61 0x6E 0x20 0x65 0x78 0x69    // 'n an exi' \n\t0x73 0x74 0x69 0x6E 0x67 0x20 0x6D 0x6F    // 'sting mo' \n\t0x76 0x69 0x65 0x0D 0x0A 0x01 0x2E 0x2E    // 'vie???..' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x73 0x61    // '......sa' \n\t0x76 0x65 0x20 0x79 0x6F 0x75 0x72 0x20    // 've your ' \n\t0x77 0x6F 0x72 0x6B 0x0D 0x0A 0x01 0x2E    // 'work???.' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x73    // '.......s' \n\t0x61 0x76 0x65 0x20 0x79 0x6F 0x75 0x72    // 'ave your' \n\t0x20 0x77 0x6F 0x72 0x6B 0x20 0x75 0x6E    // ' work un' \n\t0x64 0x65 0x72 0x20 0x61 0x20 0x20 0x6E    // 'der a  n' \n\t0x65 0x77 0x20 0x6E 0x61 0x6D 0x65         // 'ew name' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= ktpcBookMasterTools6\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"(L) Master Tools Pg 6\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"(L) Master Tools Pg 6\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageLeft kgobHelpBookPageLeft 0x0 ktpcBookToolTopics 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"ktpcBookMasterTools6\"\n\tITEM\n\t\t\"kgobHelpBookPageLeft\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBookToolTopics\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG thMap __HELP_SYMBOL( STN \"thMap\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG thExit __HELP_SYMBOL( STN \"thExit\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpMap __HELP_SYMBOL( STN \"mbmpMap\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpExit __HELP_SYMBOL( STN \"mbmpExit\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpBook __HELP_SYMBOL( STN \"mbmpBook\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG thHelp __HELP_SYMBOL( STN \"thHelp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x18 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x01 0x00 0x00 0x00 0x4E 0x00 0x00 0x01    // '????N???' \n\t0x00 0x00 0x00 0x00 0xA0 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xA3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xED 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xF1 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x03    // '????B???' \n\t0x0F 0x00 0x00 0xFD 0x9C 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xA0 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xEA 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x08 0x00 0x00 0x00 0x9A 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x9C 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xE8 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xEA 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x1C 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x3E 0x00 0x00 0xC0    // '????>??' \n\t0x07 0x00 0x00 0x00 0x9C 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00 0xEA 0x00 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x73 0x74 0x65 0x72    // '??Master' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x97 0x63    // ' Toolsc' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x70 0x69 0x63 0x74 0x75 0x72 0x65    // ' picture' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x74 0x6F 0x6F 0x6C 0x20 0x79 0x6F 0x75    // 'tool you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x68 0x65    // ' want he' \n\t0x6C 0x70 0x20 0x6F 0x6E 0x2E 0x0D 0x0A    // 'lp on.??' \n\t0x01 0x09 0x09 0x09 0x48 0x65 0x6C 0x70    // '????Help' \n\t0x20 0x4D 0x61 0x63 0x68 0x69 0x6E 0x65    // ' Machine' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x66 0x69 0x6E 0x64    // '....find' \n\t0x20 0x61 0x6C 0x6C 0x20 0x74 0x68 0x65    // ' all the' \n\t0x20 0x61 0x6E 0x73 0x77 0x65 0x72 0x73    // ' answers' \n\t0x20 0x74 0x6F 0x20 0x79 0x6F 0x75 0x72    // ' to your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2D 0x6D    // ' movie-m' \n\t0x61 0x6B 0x69 0x6E 0x67 0x20 0x09 0x09    // 'aking ??' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09    // '????????' \n\t0x09 0x20 0x20 0x71 0x75 0x65 0x73 0x74    // '?  quest' \n\t0x69 0x6F 0x6E 0x73 0x0D 0x0A 0x01 0x09    // 'ions????' \n\t0x09 0x09 0x4D 0x61 0x70 0x2E 0x2E 0x2E    // '??Map...' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x71 0x75 0x69 0x63    // '....quic' \n\t0x6B 0x6C 0x79 0x20 0x7A 0x69 0x70 0x20    // 'kly zip ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x72    // 'to the r' \n\t0x6F 0x6F 0x6D 0x20 0x6F 0x66 0x20 0x79    // 'oom of y' \n\t0x6F 0x75 0x72 0x20 0x63 0x68 0x6F 0x69    // 'our choi' \n\t0x63 0x65 0x0D 0x0A 0x01 0x09 0x09 0x45    // 'ce?????E' \n\t0x78 0x69 0x74 0x2E 0x2E 0x2E 0x2E 0x2E    // 'xit.....' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E 0x2E    // '........' \n\t0x2E 0x2E 0x71 0x75 0x69 0x74 0x20 0x77    // '..quit w' \n\t0x6F 0x72 0x6B 0x69 0x6E 0x67              // 'orking' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/booktpc.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_A= tpcPageNumber\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"Page Number\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"Page Number\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookPageNum kgobHelpBookPageNum 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookPageNum\"\n\tITEM\n\t\t\"tpcPageNumber\"\n\tITEM\n\t\t\"kgobHelpBookPageNum\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x48 0x00 0x00 0x00    // '????H???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x09 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x7E 0x31 0x20 0x6F 0x66    // '?? ~1 of' \n\t0x20 0x7E 0x32                             // ' ~2' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= tpcTitle1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"Book: Table of Contents title\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"Book: Table of Contents title\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookBkgd kgobHelpBookBkgd 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"tpcTitle1\"\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE0 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x0A 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x61 0x62 0x6C 0x65 0x20    // '??Table ' \n\t0x6F 0x66 0x20 0x43 0x6F 0x6E 0x74 0x65    // 'of Conte' \n\t0x6E 0x74 0x73                             // 'nts' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= tpcTitle2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"Book: Basics title\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"Book: Basics title\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookBkgd kgobHelpBookBkgd 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"tpcTitle2\"\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE0 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x0A 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x06 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x61 0x73 0x69 0x63 0x73    // '??Basics' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= tpcTitle3\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"Book: How to #1 Scenes\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"Book: How to #1 Scenes\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookBkgd kgobHelpBookBkgd 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"tpcTitle3\"\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE0 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x0A 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x6F 0x77 0x20 0x54 0x6F    // '??How To' \n\t0x2E 0x2E 0x2E 0x53 0x63 0x65 0x6E 0x65    // '...Scene' \n\t0x73                                       // 's' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= tpcTitle4\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"Book: How to #2 ActProp\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"Book: How to #2 ActProp\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookBkgd kgobHelpBookBkgd 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"tpcTitle4\"\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE0 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x0A 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x6F 0x77 0x20 0x54 0x6F    // '??How To' \n\t0x2E 0x2E 0x2E 0x41 0x63 0x74 0x6F 0x72    // '...Actor' \n\t0x73 0x20 0x26 0x20 0x50 0x72 0x6F 0x70    // 's & Prop' \n\t0x73                                       // 's' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= tpcTitle5\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"Book: How to #3 Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"Book: How to #3 Action\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookBkgd kgobHelpBookBkgd 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"tpcTitle5\"\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE0 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x0A 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x6F 0x77 0x20 0x54 0x6F    // '??How To' \n\t0x2E 0x2E 0x2E 0x41 0x63 0x74 0x69 0x6F    // '...Actio' \n\t0x6E                                       // 'n' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= tpcTitle6\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"Book: How to #4 Sounds\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"Book: How to #4 Sounds\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookBkgd kgobHelpBookBkgd 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"tpcTitle6\"\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE0 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x0A 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x6F 0x77 0x20 0x54 0x6F    // '??How To' \n\t0x2E 0x2E 0x2E 0x53 0x6F 0x75 0x6E 0x64    // '...Sound' \n\t0x73                                       // 's' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= tpcTitle7\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"Book: How to #5 Words\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"Book: How to #5 Words\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookBkgd kgobHelpBookBkgd 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"tpcTitle7\"\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE0 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x0A 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x6F 0x77 0x20 0x54 0x6F    // '??How To' \n\t0x2E 0x2E 0x2E 0x57 0x6F 0x72 0x64 0x73    // '...Words' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= tpcTitle8\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"Book: How to #6 Editing\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"Book: How to #6 Editing\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookBkgd kgobHelpBookBkgd 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"tpcTitle8\"\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE0 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x0A 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x10 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x6F 0x77 0x20 0x54 0x6F    // '??How To' \n\t0x2E 0x2E 0x2E 0x45 0x64 0x69 0x74 0x69    // '...Editi' \n\t0x6E 0x67                                  // 'ng' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= tpcTitle9\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"Book: Scene Tools Title\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"Book: Scene Tools Title\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookBkgd kgobHelpBookBkgd 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"tpcTitle9\"\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE0 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x0A 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x05 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x6F 0x6C 0x73         // '??Tools' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= tpcTitle10\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"Book: Tips title\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"Book: Tips title\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookBkgd kgobHelpBookBkgd 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"tpcTitle10\"\n\tITEM\n\t\t\"kgobHelpBookBkgd\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE0 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x0A 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x69 0x70 0x73              // '??Tips' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= ttBookCancel\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"TTBook: Close\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"TTBook: Close\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kgobHelpBookCancel kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHelpBook1\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"ttBookCancel\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kgobHelpBookCancel\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHelpBook1\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6E 0x00 0x00 0x00    // '????n???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x02    // '????'???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x6F 0x73 0x65 0x0D    // '??Close?' \n\t0x0A 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x6F 0x20 0x63 0x6C 0x6F 0x73 0x65 0x20    // 'o close ' \n\t0x74 0x68 0x65 0x20 0x48 0x65 0x6C 0x70    // 'the Help' \n\t0x20 0x4D 0x61 0x63 0x68 0x69 0x6E 0x65    // ' Machine' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= ttBookPageFwd\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"TTBook: Next Screen\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"TTBook: Next Screen\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kgobHelpBookPageFwd kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHelpBook2\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"ttBookPageFwd\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kgobHelpBookPageFwd\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHelpBook2\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6A 0x00 0x00 0x00    // '????j???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x02    // '????,???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x65 0x78 0x74 0x20 0x53    // '??Next S' \n\t0x63 0x72 0x65 0x65 0x6E 0x0D 0x0A 0x43    // 'creen??C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x6F 0x20    // 'lick to ' \n\t0x67 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'go to th' \n\t0x65 0x20 0x6E 0x65 0x78 0x74 0x20 0x73    // 'e next s' \n\t0x63 0x72 0x65 0x65 0x6E 0x2E              // 'creen.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_18= ttBookPageBack\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"TTBook: Previous Screen\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"TTBook: Previous Screen\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kgobHelpBookPageBack kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHelpBook3\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"ttBookPageBack\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kgobHelpBookPageBack\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHelpBook3\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6F 0x00 0x00 0x00    // '????o???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x72 0x65 0x76 0x69 0x6F    // '??Previo' \n\t0x75 0x73 0x20 0x53 0x63 0x72 0x65 0x65    // 'us Scree' \n\t0x6E 0x0D 0x0A 0x43 0x6C 0x69 0x63 0x6B    // 'n??Click' \n\t0x20 0x74 0x6F 0x20 0x67 0x6F 0x20 0x74    // ' to go t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x70 0x72    // 'o the pr' \n\t0x65 0x76 0x69 0x6F 0x75 0x73 0x20 0x73    // 'evious s' \n\t0x63 0x72 0x65 0x65 0x6E 0x2E              // 'creen.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_19= ttBookVolume\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"TTBook: Volume Control \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"TTBook: Volume Control \")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kgobHelpBookVolume kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHelpBook4\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"ttBookVolume\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kgobHelpBookVolume\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHelpBook4\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8F 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x02    // '????>???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x56 0x6F 0x6C 0x75 0x6D 0x65    // '??Volume' \n\t0x20 0x43 0x6F 0x6E 0x74 0x72 0x6F 0x6C    // ' Control' \n\t0x0D 0x0A 0x41 0x64 0x6A 0x75 0x73 0x74    // '??Adjust' \n\t0x20 0x74 0x68 0x65 0x20 0x76 0x6F 0x6C    // ' the vol' \n\t0x75 0x6D 0x65 0x20 0x66 0x6F 0x72 0x20    // 'ume for ' \n\t0x61 0x6C 0x6C 0x20 0x74 0x68 0x65 0x20    // 'all the ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x73 0x20 0x79    // 'sounds y' \n\t0x6F 0x75 0x20 0x68 0x65 0x61 0x72 0x2E    // 'ou hear.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= ttBookVoice\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"TTBook: Voice On Off Control \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"TTBook: Voice On Off Control \")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kgobHelpBookVoice kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHelpBook5\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"ttBookVoice\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kgobHelpBookVoice\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHelpBook5\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x62 0x00 0x00 0x00    // '????b???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x02    // '????-???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x2D 0x00 0x00 0x03    // '???-???' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x63 0x5A 0x65 0x65 0x27    // '??McZee'' \n\t0x73 0x20 0x56 0x6F 0x69 0x63 0x65 0x0D    // 's Voice?' \n\t0x0A 0x54 0x75 0x72 0x6E 0x20 0x4D 0x63    // '?Turn Mc' \n\t0x5A 0x65 0x65 0x27 0x73 0x20 0x76 0x6F    // 'Zee's vo' \n\t0x69 0x63 0x65 0x20 0x6F 0x6E 0x20 0x61    // 'ice on a' \n\t0x6E 0x64 0x20 0x6F 0x66 0x66 0x2E         // 'nd off.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1B= 0x1B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"On Idle--Help Machine\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"On Idle--Help Machine\")) __HELP_PACK2\n\tBO OSK LONG 0xFFFFFFFF 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_15=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpLeannOk __HELP_SYMBOL( STN \"mbmpLeannOk\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x77 0x00 0x00 0x01    // '????w???' \n\t0x01 0xFB 0x00 0x00 0x88 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x8A 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x89 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x65 0x79 0x3F 0x20 0x20    // '??Hey?  ' \n\t0x45 0x76 0x65 0x72 0x79 0x74 0x68 0x69    // 'Everythi' \n\t0x6E 0x67 0x20 0x4F 0x4B 0x3F 0x0D 0x0A    // 'ng OK???' \n\t0x54 0x6F 0x20 0x67 0x65 0x74 0x20 0x68    // 'To get h' \n\t0x65 0x6C 0x70 0x2C 0x20 0x63 0x6C 0x69    // 'elp, cli' \n\t0x63 0x6B 0x20 0x61 0x20 0x62 0x75 0x74    // 'ck a but' \n\t0x74 0x6F 0x6E 0x20 0x61 0x74 0x20 0x74    // 'ton at t' \n\t0x68 0x65 0x20 0x74 0x6F 0x70 0x20 0x6F    // 'he top o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x48 0x65    // 'f the He' \n\t0x6C 0x70 0x20 0x4D 0x61 0x63 0x68 0x69    // 'lp Machi' \n\t0x6E 0x65 0x2C 0x20 0x74 0x68 0x65 0x6E    // 'ne, then' \n\t0x20 0x63 0x68 0x6F 0x6F 0x73 0x65 0x20    // ' choose ' \n\t0x61 0x20 0x74 0x6F 0x70 0x69 0x63 0x2E    // 'a topic.' \n\t0x20 0x20 0x49 0x66 0x20 0x79 0x6F 0x75    // '  If you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x63 0x6C 0x6F 0x73 0x65 0x20 0x68    // ' close h' \n\t0x65 0x6C 0x70 0x2C 0x20 0x63 0x6C 0x69    // 'elp, cli' \n\t0x63 0x6B 0x20 0x01                        // 'ck ?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= 0x1C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"On Idle--Workspace\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"On Idle--Workspace\")) __HELP_PACK2\n\tBO OSK LONG 0xFFFFFFFF 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x0A 0x00 0x00 0xFD 0x31 0x00 0x00 0x03    // '???1???' \n\t0x0F 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x65 0x6D 0x62    // '??Rememb' \n\t0x65 0x72 0x2C 0x20 0x69 0x66 0x20 0x79    // 'er, if y' \n\t0x6F 0x75 0x20 0x6E 0x65 0x65 0x64 0x20    // 'ou need ' \n\t0x68 0x65 0x6C 0x70 0x20 0x63 0x6C 0x69    // 'help cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x48    // 'ck the H' \n\t0x65 0x6C 0x70 0x20 0x4D 0x61 0x63 0x68    // 'elp Mach' \n\t0x69 0x6E 0x65 0x21                        // 'ine!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/easelhp.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcEaselHelp00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"CO UP--SCENE ORGANIZER\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"CO UP--SCENE ORGANIZER\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x0 0x0 0x57415645 kwavEaselHelp00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_40=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcEaselHelp00\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavEaselHelp00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_40=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x3B 0x01 0x00 0x00    // '????;???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_13=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\nAG(4)\n\tFREE\n\tFREE\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcEaselHelp2F __HELP_SYMBOL( STN \"ktpcEaselHelp2F\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcEaselHelp2E __HELP_SYMBOL( STN \"ktpcEaselHelp2E\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_40=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x75 0x00 0x00 0x01    // '????u???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x75 0x00 0x00 0x03    // '????u???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x04    // '????%???' \n\t0x0D 0x00 0x00 0xFE 0x2A 0x00 0x00 0x04    // '???*???' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x04    // '????V???' \n\t0x0D 0x00 0x00 0xFE 0x5A 0x00 0x00 0x04    // '???Z???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x40    // '????%??@' \n\t0x06 0x00 0x00 0x00 0x2A 0x00 0x00 0x40    // '????*??@' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x40    // '????V??@' \n\t0x05 0x00 0x00 0x00 0x5A 0x00 0x00 0x40    // '????Z??@' \n\t0x00 0x00 0x00 0x00 0x75 0x00 0x00 0x40    // '????u??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_40=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x63 0x65 0x6E 0x65 0x20    // '??Scene ' \n\t0x4F 0x72 0x67 0x61 0x6E 0x69 0x7A 0x65    // 'Organize' \n\t0x72 0x0D 0x0A 0x53 0x68 0x6F 0x77 0x73    // 'r??Shows' \n\t0x20 0x79 0x6F 0x75 0x20 0x74 0x68 0x65    // ' you the' \n\t0x20 0x66 0x69 0x72 0x73 0x74 0x20 0x66    // ' first f' \n\t0x72 0x61 0x6D 0x65 0x20 0x6F 0x66 0x20    // 'rame of ' \n\t0x65 0x61 0x63 0x68 0x20 0x73 0x63 0x65    // 'each sce' \n\t0x6E 0x65 0x2E 0x20 0x20 0x54 0x6F 0x20    // 'ne.  To ' \n\t0x63 0x68 0x61 0x6E 0x67 0x65 0x20 0x74    // 'change t' \n\t0x68 0x65 0x20 0x73 0x63 0x65 0x6E 0x65    // 'he scene' \n\t0x20 0x6F 0x72 0x64 0x65 0x72 0x2C 0x20    // ' order, ' \n\t0x64 0x72 0x61 0x67 0x20 0x61 0x20 0x73    // 'drag a s' \n\t0x63 0x65 0x6E 0x65 0x20 0x77 0x68 0x65    // 'cene whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x69 0x74 0x2E         // 'ant it.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpcEaselHelp01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"blank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"blank\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavEaselHelp01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcEaselHelp01\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavEaselHelp01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x62 0x6C 0x61 0x6E 0x6B         // '??blank' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= kttTransition1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"tt--Cut to Black\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"tt--Cut to Black\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttTransition1\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4D 0x00 0x00 0x00    // '????M???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x20 0x74 0x6F    // '??Cut to' \n\t0x20 0x42 0x6C 0x61 0x63 0x6B              // ' Black' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= kttTransition2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"tt--Dissolve\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"tt--Dissolve\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttTransition2\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x35 0x00 0x00 0x00    // '????5???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x69 0x73 0x73 0x6F 0x6C    // '??Dissol' \n\t0x76 0x65                                  // 've' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= kttTransition3\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"tt--Disolve with black\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"tt--Disolve with black\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_20=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttTransition3\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_20=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x71 0x00 0x00 0x00    // '????q???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_20=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_20=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x69 0x73 0x73 0x6F 0x6C    // '??Dissol' \n\t0x76 0x65 0x20 0x77 0x69 0x74 0x68 0x20    // 've with ' \n\t0x42 0x6C 0x61 0x63 0x6B                   // 'Black' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= kttTransition4\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"tt--Dissolve with white\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"tt--Dissolve with white\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttTransition4\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x75 0x00 0x00 0x00    // '????u???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x69 0x73 0x73 0x6F 0x6C    // '??Dissol' \n\t0x76 0x65 0x20 0x77 0x69 0x74 0x68 0x20    // 've with ' \n\t0x57 0x68 0x69 0x74 0x65                   // 'White' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= kttSSorterHand\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"tt--Mover\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"tt--Mover\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_31=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttSSorterHand\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_31=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcEaselHelp2F __HELP_SYMBOL( STN \"ktpcEaselHelp2F\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_31=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x0B 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x0B 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x40    // '????&??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_31=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x6F 0x76 0x65 0x72 0x0D    // '??Mover?' \n\t0x0A 0x44 0x72 0x61 0x67 0x20 0x61 0x20    // '?Drag a ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x74 0x6F    // 'scene to' \n\t0x20 0x61 0x20 0x6E 0x65 0x77 0x20 0x6C    // ' a new l' \n\t0x6F 0x63 0x61 0x74 0x69 0x6F 0x6E 0x2E    // 'ocation.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= kttSSorterNuke\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"tt--Remove Entire Scene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"tt--Remove Entire Scene\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttSSorterNuke\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x30 0x00 0x00 0x03    // '???0???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x6F 0x76 0x65    // '??Remove' \n\t0x20 0x45 0x6E 0x74 0x69 0x72 0x65 0x20    // ' Entire ' \n\t0x53 0x63 0x65 0x6E 0x65 0x0D 0x0A 0x52    // 'Scene??R' \n\t0x65 0x6D 0x6F 0x76 0x65 0x20 0x74 0x68    // 'emove th' \n\t0x65 0x20 0x73 0x63 0x65 0x6E 0x65 0x20    // 'e scene ' \n\t0x79 0x6F 0x75 0x20 0x63 0x6C 0x69 0x63    // 'you clic' \n\t0x6B 0x2E                                  // 'k.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= kttSSorterOpen\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"tt--Find movie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"tt--Find movie\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_29=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttSSorterOpen\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_29=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_29=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x47 0x00 0x00 0x01    // '????G???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_29=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x69 0x6E 0x64 0x20 0x4D    // '??Find M' \n\t0x6F 0x76 0x69 0x65 0x0D 0x0A 0x46 0x69    // 'ovie??Fi' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x20 0x6D    // 'nd the m' \n\t0x6F 0x76 0x69 0x65 0x20 0x79 0x6F 0x75    // 'ovie you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x61 0x74 0x74 0x61 0x63 0x68 0x20    // ' attach ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x65    // 'to the e' \n\t0x6E 0x64 0x20 0x6F 0x66 0x20 0x74 0x68    // 'nd of th' \n\t0x69 0x73 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'is movie' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= kttEaselCancel\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"tt--Cancel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"tt--Cancel\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttEaselCancel\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x79 0x00 0x00 0x00    // '????y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x29 0x00 0x00 0x03    // '???)???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x61 0x6E 0x63 0x65 0x6C    // '??Cancel' \n\t0x0D 0x0A 0x43 0x6C 0x6F 0x73 0x65 0x20    // '??Close ' \n\t0x77 0x69 0x74 0x68 0x6F 0x75 0x74 0x20    // 'without ' \n\t0x6D 0x61 0x6B 0x69 0x6E 0x67 0x20 0x61    // 'making a' \n\t0x6E 0x79 0x20 0x63 0x68 0x61 0x6E 0x67    // 'ny chang' \n\t0x65 0x73 0x2E                             // 'es.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= kttEaselOk\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"tt--OK\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"tt--OK\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttEaselOk\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x5A 0x00 0x00 0x00    // '????Z???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x1F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x4B 0x0D 0x0A 0x43 0x6C    // '??OK??Cl' \n\t0x6F 0x73 0x65 0x20 0x61 0x6E 0x64 0x20    // 'ose and ' \n\t0x6D 0x61 0x6B 0x65 0x20 0x61 0x6C 0x6C    // 'make all' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x73    // ' changes' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= ktpcEaselHelp0B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO UP--3D WORDS\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO UP--3D WORDS\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x0 0x57415645 kwavEaselHelp0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcEaselHelp0B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavEaselHelp0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x41 0x00 0x00 0x01    // '????A???' \n\t0x01 0x00 0x00 0x00 0x4B 0x00 0x00 0x01    // '????K???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x40    // '????K??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x03 0x03 0x33 0x44 0x20 0x57 0x6F 0x72    // '??3D Wor' \n\t0x64 0x73 0x0D 0x0A 0x54 0x79 0x70 0x65    // 'ds??Type' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x6F 0x72    // ' the wor' \n\t0x64 0x73 0x20 0x79 0x6F 0x75 0x20 0x77    // 'ds you w' \n\t0x61 0x6E 0x74 0x2E 0x20 0x20 0x49 0x66    // 'ant.  If' \n\t0x20 0x79 0x6F 0x75 0x20 0x6D 0x61 0x6B    // ' you mak' \n\t0x65 0x20 0x61 0x20 0x6D 0x69 0x73 0x74    // 'e a mist' \n\t0x61 0x6B 0x65 0x2C 0x20 0x70 0x72 0x65    // 'ake, pre' \n\t0x73 0x73 0x20 0x42 0x61 0x63 0x6B 0x73    // 'ss Backs' \n\t0x70 0x61 0x63 0x65 0x2E                   // 'pace.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= ktpcEaselHelp0C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"Tip:  More help\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"Tip:  More help\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavEaselHelp0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcEaselHelp0C\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavEaselHelp0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x15 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x01 0x00 0x00 0x00 0x77 0x00 0x00 0x01    // '????w???' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x80    // '???? ??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x20 0x00 0x00 0x82    // '???? ??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4D 0x6F 0x72    // '???  Mor' \n\t0x65 0x20 0x68 0x65 0x6C 0x70 0x0D 0x0A    // 'e help??' \n\t0x54 0x6F 0x20 0x67 0x65 0x74 0x20 0x6D    // 'To get m' \n\t0x6F 0x72 0x65 0x20 0x68 0x65 0x6C 0x70    // 'ore help' \n\t0x0D 0x0A 0x95 0x09 0x4D 0x6F 0x76 0x65    // '???Move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x63 0x75 0x72 0x73 0x6F    // 'se curso' \n\t0x72 0x20 0x6F 0x76 0x65 0x72 0x20 0x74    // 'r over t' \n\t0x68 0x65 0x20 0x74 0x68 0x69 0x6E 0x67    // 'he thing' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x68 0x65 0x6C 0x70 0x20 0x6F    // 't help o' \n\t0x6E 0x2E 0x20 0x20 0x57 0x61 0x69 0x74    // 'n.  Wait' \n\t0x2E 0x2E 0x2E 0x61 0x20 0x64 0x65 0x73    // '...a des' \n\t0x63 0x72 0x69 0x70 0x74 0x69 0x6F 0x6E    // 'cription' \n\t0x20 0x61 0x70 0x70 0x65 0x61 0x72 0x73    // ' appears' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= kttSpltFont\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"tt--Letters\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"tt--Letters\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp0D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttSpltFont\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp0D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x02    // '????%???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x4C 0x65 0x74 0x74 0x65 0x72    // '??Letter' \n\t0x73 0x0D 0x0A 0x43 0x68 0x61 0x6E 0x67    // 's??Chang' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x77 0x61    // 'e the wa' \n\t0x79 0x20 0x6C 0x65 0x74 0x74 0x65 0x72    // 'y letter' \n\t0x73 0x20 0x6C 0x6F 0x6F 0x6B 0x21         // 's look!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= kttSpltShape\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"tt--Shape\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"tt--Shape\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp0E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttSpltShape\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp0E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_12=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x00 0x00 0x00 0x00 0x05 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x07 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x2D 0x00 0x00 0x03    // '???-???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x68 0x61 0x70 0x65 0x0D    // '??Shape?' \n\t0x0A 0x57 0x61 0x72 0x70 0x20 0x79 0x6F    // '?Warp yo' \n\t0x75 0x72 0x20 0x77 0x6F 0x72 0x64 0x73    // 'ur words' \n\t0x20 0x69 0x6E 0x74 0x6F 0x20 0x64 0x69    // ' into di' \n\t0x66 0x66 0x65 0x72 0x65 0x6E 0x74 0x20    // 'fferent ' \n\t0x73 0x68 0x61 0x70 0x65 0x73 0x2E         // 'shapes.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= kttSpltTextures\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"tt--Patterns & Colors\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"tt--Patterns & Colors\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp0F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_26=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttSpltTextures\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp0F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_26=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x69 0x00 0x00 0x00    // '????i???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_26=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_26=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x61 0x74 0x74 0x65 0x72    // '??Patter' \n\t0x6E 0x73 0x20 0x26 0x20 0x43 0x6F 0x6C    // 'ns & Col' \n\t0x6F 0x72 0x73                             // 'ors' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= kttSpltTransmogrify\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"tt--Cool ideas\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"tt--Cool ideas\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp10\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttSpltTransmogrify\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp10\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x40 0x00 0x00 0x00    // '????@???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x6F 0x6C 0x20 0x49    // '??Cool I' \n\t0x64 0x65 0x61 0x73                        // 'deas' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= kttSpltRotate\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"tt--Preview\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"tt--Preview\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp11\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttSpltRotate\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp11\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4E 0x00 0x00 0x01    // '????N???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x4E 0x00 0x00 0x03    // '???N???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x72 0x65 0x76 0x69 0x65    // '??Previe' \n\t0x77 0x0D 0x0A 0x43 0x6C 0x69 0x63 0x6B    // 'w??Click' \n\t0x20 0x72 0x65 0x70 0x65 0x61 0x74 0x65    // ' repeate' \n\t0x64 0x6C 0x79 0x20 0x74 0x6F 0x20 0x73    // 'dly to s' \n\t0x65 0x65 0x20 0x77 0x68 0x61 0x74 0x20    // 'ee what ' \n\t0x79 0x6F 0x75 0x72 0x20 0x33 0x44 0x20    // 'your 3D ' \n\t0x77 0x6F 0x72 0x64 0x73 0x20 0x6C 0x6F    // 'words lo' \n\t0x6F 0x6B 0x20 0x6C 0x69 0x6B 0x65 0x20    // 'ok like ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x61 0x6C 0x6C    // 'from all' \n\t0x20 0x61 0x6E 0x67 0x6C 0x65 0x73 0x2E    // ' angles.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= ktpcEaselHelp12\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavEaselHelp12\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"ktpcEaselHelp12\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavEaselHelp12\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8C 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x1D 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x62 0x00 0x00 0x03    // '???b???' \n\t0x0A 0x00 0x00 0xFD 0x6D 0x00 0x00 0x03    // '???m???' \n\t0x0F 0x00 0x00 0xFD 0x78 0x00 0x00 0x03    // '???x???' \n\t0x0A 0x00 0x00 0xFD 0x7C 0x00 0x00 0x03    // '???|???' \n\t0x0F 0x00 0x00 0xFD 0x81 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0x85 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x8C 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x0D 0x0A 0x46    // '??Cut??F' \n\t0x69 0x6E 0x64 0x20 0x50 0x61 0x74 0x74    // 'ind Patt' \n\t0x65 0x72 0x6E 0x73 0x20 0x26 0x20 0x43    // 'erns & C' \n\t0x6F 0x6C 0x6F 0x72 0x73 0x0D 0x0A 0x46    // 'olors??F' \n\t0x69 0x6E 0x64 0x20 0x6F 0x74 0x68 0x65    // 'ind othe' \n\t0x72 0x20 0x70 0x61 0x74 0x74 0x65 0x72    // 'r patter' \n\t0x6E 0x73 0x20 0x79 0x6F 0x75 0x20 0x77    // 'ns you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x61    // 'ant to a' \n\t0x70 0x70 0x6C 0x79 0x20 0x74 0x6F 0x20    // 'pply to ' \n\t0x79 0x6F 0x75 0x72 0x20 0x33 0x44 0x20    // 'your 3D ' \n\t0x77 0x6F 0x72 0x64 0x73 0x2E 0x20 0x20    // 'words.  ' \n\t0x59 0x6F 0x75 0x20 0x63 0x61 0x6E 0x20    // 'You can ' \n\t0x75 0x73 0x65 0x20 0x46 0x69 0x6E 0x65    // 'use Fine' \n\t0x20 0x41 0x72 0x74 0x69 0x73 0x74 0x20    // ' Artist ' \n\t0x70 0x69 0x63 0x74 0x75 0x72 0x65 0x73    // 'pictures' \n\t0x2C 0x20 0x2E 0x62 0x6D 0x70 0x20 0x61    // ', .bmp a' \n\t0x6E 0x64 0x20 0x2E 0x77 0x6D 0x66 0x20    // 'nd .wmf ' \n\t0x66 0x69 0x6C 0x65 0x73 0x2E              // 'files.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= ktpcEaselHelp13\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO UP--LISTENER BROWSER\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO UP--LISTENER BROWSER\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x154 0x57415645 kwavEaselHelp13\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcEaselHelp13\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavEaselHelp13\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' 0x16102 0xFFFFFFFF __HELP_SYMBOL( STN )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcEaselHelp3B __HELP_SYMBOL( STN \"ktpcEaselHelp3B\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcEaselHelp2F __HELP_SYMBOL( STN \"ktpcEaselHelp2F\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x94 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x7F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x04    // '????d???' \n\t0x0D 0x00 0x00 0xFE 0x68 0x00 0x00 0x04    // '???h???' \n\t0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x40    // '????d??@' \n\t0x04 0x00 0x00 0x00 0x68 0x00 0x00 0x40    // '????h??@' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x94 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x4C 0x69 0x73 0x74 0x65 0x6E    // '??Listen' \n\t0x65 0x72 0x0D 0x0A 0x53 0x68 0x6F 0x77    // 'er??Show' \n\t0x73 0x20 0x79 0x6F 0x75 0x20 0x61 0x6C    // 's you al' \n\t0x6C 0x20 0x74 0x68 0x65 0x20 0x73 0x6F    // 'l the so' \n\t0x75 0x6E 0x64 0x73 0x20 0x61 0x74 0x74    // 'unds att' \n\t0x61 0x63 0x68 0x65 0x64 0x20 0x74 0x6F    // 'ached to' \n\t0x20 0x74 0x68 0x65 0x20 0x6F 0x62 0x6A    // ' the obj' \n\t0x65 0x63 0x74 0x20 0x79 0x6F 0x75 0x20    // 'ect you ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x65 0x64 0x2E    // 'clicked.' \n\t0x20 0x20 0x54 0x6F 0x20 0x63 0x68 0x61    // '  To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x76 0x6F    // 'sound vo' \n\t0x6C 0x75 0x6D 0x65 0x2C 0x20 0x64 0x72    // 'lume, dr' \n\t0x61 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ag the s' \n\t0x6C 0x69 0x64 0x65 0x72 0x20 0x75 0x70    // 'lider up' \n\t0x20 0x6F 0x72 0x20 0x64 0x6F 0x77 0x6E    // ' or down' \n\t0x2E 0x0D 0x0A 0x01 0x20 0x20 0x52 0x65    // '.???  Re' \n\t0x6D 0x6F 0x76 0x69 0x6E 0x67 0x20 0x61    // 'moving a' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64              // ' sound' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= kttListenVolSpeech\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"tt--Slider\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"tt--Slider\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp14\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttListenVolSpeech\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp14\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x2A 0x00 0x00 0x00    // '????*???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6C 0x69 0x64 0x65 0x72    // '??Slider' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= ktpcEaselHelp15\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"CO UP--COSTUME CHANGER\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"CO UP--COSTUME CHANGER\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x0 0x57415645 kwavEaselHelp15\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcEaselHelp15\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavEaselHelp15\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x64 0x00 0x00 0x01    // '????d???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x03    // '????d???' \n\t0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x40    // '????d??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x73 0x74 0x75 0x6D    // '??Costum' \n\t0x65 0x20 0x43 0x68 0x61 0x6E 0x67 0x65    // 'e Change' \n\t0x72 0x0D 0x0A 0x54 0x6F 0x20 0x63 0x68    // 'r??To ch' \n\t0x61 0x6E 0x67 0x65 0x20 0x61 0x20 0x63    // 'ange a c' \n\t0x6F 0x73 0x74 0x75 0x6D 0x65 0x2C 0x20    // 'ostume, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x61 0x63 0x74 0x6F 0x72 0x20    // 'e actor ' \n\t0x6F 0x72 0x20 0x70 0x72 0x6F 0x70 0x20    // 'or prop ' \n\t0x75 0x6E 0x74 0x69 0x6C 0x20 0x79 0x6F    // 'until yo' \n\t0x75 0x20 0x66 0x69 0x6E 0x64 0x20 0x74    // 'u find t' \n\t0x68 0x65 0x20 0x22 0x63 0x6F 0x73 0x74    // 'he \"cost' \n\t0x75 0x6D 0x65 0x22 0x20 0x79 0x6F 0x75    // 'ume\" you' \n\t0x20 0x6C 0x69 0x6B 0x65 0x2E              // ' like.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= kttCostAccessories\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"tt--Accessories\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"tt--Accessories\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp16\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttCostAccessories\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp16\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x59 0x00 0x00 0x01    // '????Y???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x59 0x00 0x00 0x03    // '???Y???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x63 0x63 0x65 0x73 0x73    // '??Access' \n\t0x6F 0x72 0x69 0x65 0x73 0x0D 0x0A 0x41    // 'ories??A' \n\t0x64 0x64 0x20 0x61 0x63 0x63 0x65 0x73    // 'dd acces' \n\t0x73 0x6F 0x72 0x69 0x65 0x73 0x97 0x68    // 'soriesh' \n\t0x61 0x74 0x73 0x2C 0x20 0x67 0x6C 0x61    // 'ats, gla' \n\t0x73 0x73 0x65 0x73 0x2C 0x20 0x61 0x6E    // 'sses, an' \n\t0x64 0x20 0x73 0x6F 0x20 0x6F 0x6E 0x97    // 'd so on' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x61 0x72 0x74 0x20 0x6F 0x66 0x20 0x74    // 'art of t' \n\t0x68 0x65 0x20 0x61 0x63 0x74 0x6F 0x72    // 'he actor' \n\t0x20 0x79 0x6F 0x75 0x20 0x63 0x6C 0x69    // ' you cli' \n\t0x63 0x6B 0x2E                             // 'ck.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= kttCostRotate\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"tt--Preview Costume\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"tt--Preview Costume\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp17\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttCostRotate\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp17\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x51 0x00 0x00 0x01    // '????Q???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x51 0x00 0x00 0x03    // '???Q???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x72 0x65 0x76 0x69 0x65    // '??Previe' \n\t0x77 0x0D 0x0A 0x43 0x6C 0x69 0x63 0x6B    // 'w??Click' \n\t0x20 0x72 0x65 0x70 0x65 0x61 0x74 0x65    // ' repeate' \n\t0x64 0x6C 0x79 0x20 0x74 0x6F 0x20 0x73    // 'dly to s' \n\t0x65 0x65 0x20 0x77 0x68 0x61 0x74 0x20    // 'ee what ' \n\t0x74 0x68 0x65 0x20 0x6E 0x65 0x77 0x20    // 'the new ' \n\t0x63 0x6F 0x73 0x74 0x75 0x6D 0x65 0x20    // 'costume ' \n\t0x6C 0x6F 0x6F 0x6B 0x73 0x20 0x6C 0x69    // 'looks li' \n\t0x6B 0x65 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'ke from ' \n\t0x61 0x6C 0x6C 0x20 0x61 0x6E 0x67 0x6C    // 'all angl' \n\t0x65 0x73 0x2E                             // 'es.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_18= kttCostCostumes\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"tt--Costumes\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"tt--Costumes\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp18\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttCostCostumes\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp18\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x59 0x00 0x00 0x01    // '????Y???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x59 0x00 0x00 0x03    // '???Y???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x73 0x74 0x75 0x6D    // '??Costum' \n\t0x65 0x73 0x0D 0x0A 0x43 0x68 0x61 0x6E    // 'es??Chan' \n\t0x67 0x65 0x20 0x63 0x6F 0x73 0x74 0x75    // 'ge costu' \n\t0x6D 0x65 0x73 0x20 0x62 0x79 0x20 0x63    // 'mes by c' \n\t0x6C 0x69 0x63 0x6B 0x69 0x6E 0x67 0x20    // 'licking ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x20 0x6F 0x72 0x20 0x70 0x72 0x6F    // 'r or pro' \n\t0x70 0x20 0x75 0x6E 0x74 0x69 0x6C 0x20    // 'p until ' \n\t0x79 0x6F 0x75 0x20 0x73 0x65 0x65 0x20    // 'you see ' \n\t0x61 0x20 0x63 0x6F 0x73 0x74 0x75 0x6D    // 'a costum' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x6C 0x69    // 'e you li' \n\t0x6B 0x65 0x2E                             // 'ke.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_19= ktpcEaselHelp19\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO Up--SOUND EFFECTS\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO Up--SOUND EFFECTS\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0xF1 0x0 0x57415645 kwavEaselHelp19\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcEaselHelp19\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavEaselHelp19\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x00 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x01 0x00 0x00 0x00 0x56 0x00 0x00 0x01    // '????V???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x40    // '????V??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'the soun' \n\t0x64 0x20 0x65 0x66 0x66 0x65 0x63 0x74    // 'd effect' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x70 0x72 0x65    // 't to pre' \n\t0x76 0x69 0x65 0x77 0x2E 0x0D 0x0A 0x57    // 'view.??W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x20    // 'hen you ' \n\t0x66 0x69 0x6E 0x64 0x20 0x74 0x68 0x65    // 'find the' \n\t0x20 0x6F 0x6E 0x65 0x20 0x79 0x6F 0x75    // ' one you' \n\t0x20 0x77 0x61 0x6E 0x74 0x2C 0x20 0x63    // ' want, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x4F 0x4B 0x2E    // 'lick OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= kttBrowserRecord\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"tt--Remove sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"tt--Remove sound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp1A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttBrowserRecord\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp1A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x67 0x00 0x00 0x00    // '????g???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x63 0x6F 0x72 0x64    // '??Record' \n\t0x20 0x59 0x6F 0x75 0x72 0x20 0x4F 0x77    // ' Your Ow' \n\t0x6E                                       // 'n' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1B= kttBrowserImportFX\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"tt--Find sound effects\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"tt--Find sound effects\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp1B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttBrowserImportFX\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp1B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x61 0x00 0x00 0x01    // '????a???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x61 0x00 0x00 0x03    // '???a???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x69 0x6E 0x64 0x20 0x53    // '??Find S' \n\t0x6F 0x75 0x6E 0x64 0x20 0x45 0x66 0x66    // 'ound Eff' \n\t0x65 0x63 0x74 0x73 0x0D 0x0A 0x46 0x69    // 'ects??Fi' \n\t0x6E 0x64 0x20 0x6F 0x74 0x68 0x65 0x72    // 'nd other' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x65    // ' sound e' \n\t0x66 0x66 0x65 0x63 0x74 0x73 0x2E 0x20    // 'ffects. ' \n\t0x20 0x59 0x6F 0x75 0x20 0x63 0x61 0x6E    // ' You can' \n\t0x20 0x69 0x6D 0x70 0x6F 0x72 0x74 0x20    // ' import ' \n\t0x57 0x61 0x76 0x65 0x20 0x6F 0x72 0x20    // 'Wave or ' \n\t0x6F 0x74 0x68 0x65 0x72 0x20 0x33 0x44    // 'other 3D' \n\t0x20 0x4D 0x6F 0x76 0x69 0x65 0x20 0x4D    // ' Movie M' \n\t0x61 0x6B 0x65 0x72 0x20 0x66 0x69 0x6C    // 'aker fil' \n\t0x65 0x73 0x2E                             // 'es.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= ktpcEaselHelp1C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"tt--Cancel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"tt--Cancel\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp1C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"ktpcEaselHelp1C\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp1C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x61 0x6E 0x63 0x65 0x6C    // '??Cancel' \n\t0x0D 0x0A 0x55 0x73 0x65 0x20 0x74 0x6F    // '??Use to' \n\t0x70 0x69 0x63 0x20 0x23 0x39 0x2E         // 'pic #9.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1D= ktpcEaselHelp1D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"tt--OK\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"tt--OK\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp1D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"ktpcEaselHelp1D\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp1D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x54 0x00 0x00 0x00    // '????T???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x4B 0x0D 0x0A 0x55 0x73    // '??OK??Us' \n\t0x65 0x20 0x74 0x6F 0x70 0x69 0x63 0x20    // 'e topic ' \n\t0x23 0x31 0x30 0x2E                        // '#10.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1E= ktpcEaselHelp1E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"CO Up--RECORD YOUR OWN\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"CO Up--RECORD YOUR OWN\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x0 0x57415645 kwavEaselHelp1E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcEaselHelp1E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavEaselHelp1E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundRecord __HELP_SYMBOL( STN \"mbmpSoundRecord\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x31 0x00 0x00 0x01    // '???1???' \n\t0x01 0x00 0x00 0x00 0x9C 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x1B 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x1C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x9C 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x80    // '????4??' \n\t0x00 0x00 0x03 0x00 0x51 0x00 0x00 0x80    // '????Q??' \n\t0x00 0x00 0x02 0x00 0x73 0x00 0x00 0x80    // '????s??' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x82    // '????4??' \n\t0x05 0x00 0x00 0x00 0x91 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0xC0    // '????1??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x63    // '??To rec' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x72    // 'ord your' \n\t0x20 0x6F 0x77 0x6E 0x20 0x73 0x6F 0x75    // ' own sou' \n\t0x6E 0x64 0x0D 0x0A 0x31 0x09 0x43 0x6C    // 'nd??1?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x4D 0x69 0x63 0x72 0x6F 0x70 0x68 0x6F    // 'Micropho' \n\t0x6E 0x65 0x2D 0x01 0x0D 0x0A 0x54 0x68    // 'ne-???Th' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x73    // ' changes' \n\t0x20 0x74 0x6F 0x20 0x53 0x74 0x6F 0x70    // ' to Stop' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x54 0x6F 0x20    // '.??2?To ' \n\t0x73 0x74 0x6F 0x70 0x20 0x72 0x65 0x63    // 'stop rec' \n\t0x6F 0x72 0x64 0x69 0x6E 0x67 0x2C 0x20    // 'ording, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x53 0x74    // 'click St' \n\t0x6F 0x70 0x2E 0x0D 0x0A 0x33 0x09 0x54    // 'op.??3?T' \n\t0x79 0x70 0x65 0x20 0x61 0x20 0x6E 0x61    // 'ype a na' \n\t0x6D 0x65 0x20 0x66 0x6F 0x72 0x20 0x74    // 'me for t' \n\t0x68 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'he sound' \n\t0x2E 0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69    // '.??4?Cli' \n\t0x63 0x6B 0x20 0x4F 0x4B 0x2E              // 'ck OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1F= kttRecordRecord\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"tt--Microphone\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"tt--Microphone\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavEaselHelp1F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttRecordRecord\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavEaselHelp1F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x88 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x69 0x63 0x72 0x6F 0x70    // '??Microp' \n\t0x68 0x6F 0x6E 0x65 0x0D 0x0A 0x52 0x65    // 'hone??Re' \n\t0x63 0x6F 0x72 0x64 0x20 0x79 0x6F 0x75    // 'cord you' \n\t0x72 0x20 0x6F 0x77 0x6E 0x20 0x73 0x6F    // 'r own so' \n\t0x75 0x6E 0x64 0x20 0x28 0x75 0x70 0x20    // 'und (up ' \n\t0x74 0x6F 0x20 0x31 0x30 0x20 0x73 0x65    // 'to 10 se' \n\t0x63 0x6F 0x6E 0x64 0x73 0x29 0x2E         // 'conds).' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_20= kttRecordPlay\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"tt--Play\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"tt--Play\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavEaselHelp20\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttRecordPlay\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavEaselHelp20\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_17=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x5C 0x00 0x00 0x00    // '????\\???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_17=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x22 0x00 0x00 0x03    // '???\"???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_17=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x6C 0x61 0x79 0x0D 0x0A    // '??Play??' \n\t0x50 0x6C 0x61 0x79 0x20 0x62 0x61 0x63    // 'Play bac' \n\t0x6B 0x20 0x77 0x68 0x61 0x74 0x20 0x79    // 'k what y' \n\t0x6F 0x75 0x20 0x72 0x65 0x63 0x6F 0x72    // 'ou recor' \n\t0x64 0x65 0x64 0x2E                        // 'ded.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_21= ktpcEaselHelp21\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"tt--Name Sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"tt--Name Sound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp21\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"ktpcEaselHelp21\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp21\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x50 0x00 0x00 0x01    // '????P???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x50 0x00 0x00 0x03    // '???P???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x61 0x6D 0x65 0x20 0x53    // '??Name S' \n\t0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x54 0x79    // 'ound??Ty' \n\t0x70 0x65 0x20 0x61 0x20 0x6E 0x61 0x6D    // 'pe a nam' \n\t0x65 0x20 0x66 0x6F 0x72 0x20 0x79 0x6F    // 'e for yo' \n\t0x75 0x72 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'ur sound' \n\t0x2E 0x20 0x20 0x49 0x66 0x20 0x79 0x6F    // '.  If yo' \n\t0x75 0x20 0x6D 0x61 0x6B 0x65 0x20 0x61    // 'u make a' \n\t0x20 0x6D 0x69 0x73 0x74 0x61 0x6B 0x65    // ' mistake' \n\t0x2C 0x20 0x70 0x72 0x65 0x73 0x73 0x20    // ', press ' \n\t0x42 0x61 0x63 0x6B 0x73 0x70 0x61 0x63    // 'Backspac' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_22= ktpcEaselHelp22\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"tt--Cancel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"tt--Cancel\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavEaselHelp22\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"ktpcEaselHelp22\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavEaselHelp22\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x61 0x6E 0x63 0x65 0x6C    // '??Cancel' \n\t0x0D 0x0A 0x55 0x73 0x65 0x20 0x74 0x6F    // '??Use to' \n\t0x70 0x69 0x63 0x20 0x23 0x39 0x2E         // 'pic #9.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_23= ktpcEaselHelp23\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"tt--OK\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"tt--OK\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavEaselHelp23\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_21=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"ktpcEaselHelp23\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavEaselHelp23\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_21=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x54 0x00 0x00 0x00    // '????T???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_21=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_21=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x4B 0x0D 0x0A 0x55 0x73    // '??OK??Us' \n\t0x65 0x20 0x74 0x6F 0x70 0x69 0x63 0x20    // 'e topic ' \n\t0x23 0x31 0x30 0x2E                        // '#10.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_24= ktpcEaselHelp24\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"CO UP--SPEECH BROWSER\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"CO UP--SPEECH BROWSER\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0xF1 0x0 0x57415645 kwavEaselHelp24\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_36=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcEaselHelp24\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavEaselHelp24\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_36=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x51 0x01 0x00 0x00    // '????Q???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_36=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6D 0x00 0x00 0x01    // '????m???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x6D 0x00 0x00 0x40    // '????m??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_36=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x6C 0x69 0x6E 0x65    // 'the line' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x2E 0x20 0x20 0x4F 0x72 0x2C 0x20    // 't.  Or, ' \n\t0x74 0x6F 0x20 0x72 0x65 0x63 0x6F 0x72    // 'to recor' \n\t0x64 0x20 0x79 0x6F 0x75 0x72 0x20 0x6F    // 'd your o' \n\t0x77 0x6E 0x20 0x64 0x69 0x61 0x6C 0x6F    // 'wn dialo' \n\t0x67 0x75 0x65 0x2C 0x20 0x63 0x6C 0x69    // 'gue, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x6D    // 'ck the m' \n\t0x69 0x63 0x72 0x6F 0x70 0x68 0x6F 0x6E    // 'icrophon' \n\t0x65 0x2E 0x20 0x20 0x57 0x68 0x65 0x6E    // 'e.  When' \n\t0x20 0x79 0x6F 0x75 0x27 0x72 0x65 0x20    // ' you're ' \n\t0x64 0x6F 0x6E 0x65 0x2C 0x20 0x63 0x6C    // 'done, cl' \n\t0x69 0x63 0x6B 0x20 0x4F 0x4B 0x2E         // 'ick OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_25= kttBrowserImportSpeech\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"tt--Find dialogue\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"tt--Find dialogue\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp25\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttBrowserImportSpeech\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp25\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x57 0x00 0x00 0x01    // '????W???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x57 0x00 0x00 0x03    // '???W???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x69 0x6E 0x64 0x20 0x44    // '??Find D' \n\t0x69 0x61 0x6C 0x6F 0x67 0x75 0x65 0x0D    // 'ialogue?' \n\t0x0A 0x46 0x69 0x6E 0x64 0x20 0x6F 0x74    // '?Find ot' \n\t0x68 0x65 0x72 0x20 0x64 0x69 0x61 0x6C    // 'her dial' \n\t0x6F 0x67 0x75 0x65 0x2E 0x20 0x20 0x59    // 'ogue.  Y' \n\t0x6F 0x75 0x20 0x63 0x61 0x6E 0x20 0x69    // 'ou can i' \n\t0x6D 0x70 0x6F 0x72 0x74 0x20 0x57 0x61    // 'mport Wa' \n\t0x76 0x65 0x20 0x6F 0x72 0x20 0x6F 0x74    // 've or ot' \n\t0x68 0x65 0x72 0x20 0x33 0x44 0x20 0x4D    // 'her 3D M' \n\t0x6F 0x76 0x69 0x65 0x20 0x4D 0x61 0x6B    // 'ovie Mak' \n\t0x65 0x72 0x20 0x66 0x69 0x6C 0x65 0x73    // 'er files' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_26= ktpcEaselHelp26\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"tt--Cancel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"tt--Cancel\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavEaselHelp26\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_27=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"ktpcEaselHelp26\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavEaselHelp26\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_27=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_27=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_27=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x61 0x6E 0x63 0x65 0x6C    // '??Cancel' \n\t0x0D 0x0A 0x55 0x73 0x65 0x20 0x74 0x6F    // '??Use to' \n\t0x70 0x69 0x63 0x20 0x23 0x39 0x2E         // 'pic #9.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_27= ktpcEaselHelp27\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"tt--OK\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"tt--OK\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavEaselHelp27\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"ktpcEaselHelp27\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavEaselHelp27\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x54 0x00 0x00 0x00    // '????T???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x4B 0x0D 0x0A 0x55 0x73    // '??OK??Us' \n\t0x65 0x20 0x74 0x6F 0x70 0x69 0x63 0x20    // 'e topic ' \n\t0x23 0x31 0x30 0x2E                        // '#10.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_28= ktpcEaselHelp28\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"tt--Record your own\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"tt--Record your own\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp28\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"ktpcEaselHelp28\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp28\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x67 0x00 0x00 0x00    // '????g???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x63 0x6F 0x72 0x64    // '??Record' \n\t0x20 0x59 0x6F 0x75 0x72 0x20 0x4F 0x77    // ' Your Ow' \n\t0x6E                                       // 'n' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_29= ktpcEaselHelp29\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"CO UP--MUSIC BROWSER\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"CO UP--MUSIC BROWSER\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0xF1 0x0 0x57415645 kwavEaselHelp29\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcEaselHelp29\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavEaselHelp29\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x51 0x00 0x00 0x01    // '????Q???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x40    // '????Q??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x6D 0x75 0x73 0x69    // 'the musi' \n\t0x63 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'c you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x70 0x72    // 'nt to pr' \n\t0x65 0x76 0x69 0x65 0x77 0x2E 0x20 0x20    // 'eview.  ' \n\t0x57 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'When you' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x74 0x68    // ' find th' \n\t0x65 0x20 0x70 0x69 0x65 0x63 0x65 0x20    // 'e piece ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x4F 0x4B 0x2E                             // 'OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2A= kttBrowserImportMidi\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"tt--Find music\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"tt--Find music\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp2A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttBrowserImportMidi\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp2A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9D 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x3F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x69 0x6E 0x64 0x20 0x4D    // '??Find M' \n\t0x75 0x73 0x69 0x63 0x0D 0x0A 0x46 0x69    // 'usic??Fi' \n\t0x6E 0x64 0x20 0x6F 0x74 0x68 0x65 0x72    // 'nd other' \n\t0x20 0x6D 0x75 0x73 0x69 0x63 0x2E 0x20    // ' music. ' \n\t0x20 0x59 0x6F 0x75 0x20 0x63 0x61 0x6E    // ' You can' \n\t0x20 0x69 0x6D 0x70 0x6F 0x72 0x74 0x20    // ' import ' \n\t0x6F 0x74 0x68 0x65 0x72 0x20 0x4D 0x49    // 'other MI' \n\t0x44 0x49 0x20 0x66 0x69 0x6C 0x65 0x73    // 'DI files' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2B= ktpcEaselHelp2B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"tt--Cancel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"tt--Cancel\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavEaselHelp2B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_24=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"ktpcEaselHelp2B\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavEaselHelp2B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_24=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_24=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_24=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x61 0x6E 0x63 0x65 0x6C    // '??Cancel' \n\t0x0D 0x0A 0x55 0x73 0x65 0x20 0x74 0x6F    // '??Use to' \n\t0x70 0x69 0x63 0x20 0x23 0x39 0x2E         // 'pic #9.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2C= ktpcEaselHelp2C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"tt--OK\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"tt--OK\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavEaselHelp2C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_28=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"ktpcEaselHelp2C\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavEaselHelp2C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_28=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x54 0x00 0x00 0x00    // '????T???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_28=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_28=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x4B 0x0D 0x0A 0x55 0x73    // '??OK??Us' \n\t0x65 0x20 0x74 0x6F 0x70 0x69 0x63 0x20    // 'e topic ' \n\t0x23 0x31 0x30 0x2E                        // '#10.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2D= ktpcEaselHelp2D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"CO UP--ACTION BROWSER\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"CO UP--ACTION BROWSER\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x0 0x57415645 kwavEaselHelp2D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_17=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcEaselHelp2D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavEaselHelp2D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcEaselHelp3F __HELP_SYMBOL( STN \"ktpcEaselHelp3F\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' 0x16104 0xFFFFFFFF __HELP_SYMBOL( STN )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x69 0x00 0x00 0x01    // '????i???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0x40    // '????R??@' \n\t0x01 0x00 0x00 0x00 0x69 0x00 0x00 0x40    // '????i??@' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0xC0    // '????R??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x69    // 'the acti' \n\t0x6F 0x6E 0x20 0x79 0x6F 0x75 0x20 0x77    // 'on you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x70    // 'ant to p' \n\t0x72 0x65 0x76 0x69 0x65 0x77 0x2E 0x20    // 'review. ' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // ' When yo' \n\t0x75 0x20 0x66 0x69 0x6E 0x64 0x20 0x74    // 'u find t' \n\t0x68 0x65 0x20 0x6F 0x6E 0x65 0x20 0x79    // 'he one y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x2C    // 'ou want,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x4F    // ' click O' \n\t0x4B 0x2E 0x0D 0x0A 0x01 0x09 0x57 0x68    // 'K.????Wh' \n\t0x61 0x74 0x20 0x64 0x6F 0x65 0x73 0x20    // 'at does ' \n\t0x74 0x68 0x65 0x20 0x2A 0x20 0x6D 0x65    // 'the * me' \n\t0x61 0x6E 0x3F                             // 'an?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2E= ktpcEaselHelp2E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"Def:  frame\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"Def:  frame\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavEaselHelp2E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcEaselHelp2E\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavEaselHelp2E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x39 0x01 0x00 0x00    // '????9???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x9A 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0x9C 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xC6 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x6B 0x00 0x00 0x02    // '????k???' \n\t0x01 0x00 0x00 0x00 0x71 0x00 0x00 0x02    // '????q???' \n\t0x00 0x00 0x00 0x00 0xA1 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xC6 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x0A 0x00 0x00 0xFD 0x4D 0x00 0x00 0x03    // '???M???' \n\t0x0F 0x00 0x00 0xFD 0x66 0x00 0x00 0x03    // '???f???' \n\t0x0A 0x00 0x00 0xFD 0x69 0x00 0x00 0x03    // '???i???' \n\t0x0F 0x00 0x00 0xFD 0x6B 0x00 0x00 0x03    // '???k???' \n\t0x00 0x00 0x00 0x00 0x68 0x00 0x00 0x80    // '????h??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x68 0x00 0x00 0xC0    // '????h??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x66 0x72 0x61 0x6D 0x65 0x0D    // '??frame?' \n\t0x0A 0x4F 0x6E 0x65 0x20 0x73 0x63 0x72    // '?One scr' \n\t0x65 0x65 0x6E 0x20 0x6F 0x66 0x20 0x79    // 'een of y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x2E 0x20 0x0D 0x0A 0x54 0x6F 0x20    // 'e. ??To ' \n\t0x6D 0x6F 0x76 0x65 0x20 0x66 0x72 0x6F    // 'move fro' \n\t0x6D 0x20 0x66 0x72 0x61 0x6D 0x65 0x20    // 'm frame ' \n\t0x74 0x6F 0x20 0x66 0x72 0x61 0x6D 0x65    // 'to frame' \n\t0x20 0x77 0x69 0x74 0x68 0x69 0x6E 0x20    // ' within ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65 0x0D    // 'a scene?' \n\t0x0A 0x95 0x09 0x55 0x73 0x65 0x20 0x74    // '??Use t' \n\t0x68 0x65 0x20 0x46 0x72 0x61 0x6D 0x65    // 'he Frame' \n\t0x20 0x53 0x6C 0x69 0x64 0x65 0x72 0x2E    // ' Slider.' \n\t0x0D 0x0A 0x01 0x0D 0x0A 0x43 0x6C 0x69    // '?????Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x46    // 'ck the F' \n\t0x69 0x72 0x73 0x74 0x2C 0x20 0x50 0x72    // 'irst, Pr' \n\t0x65 0x76 0x69 0x6F 0x75 0x73 0x2C 0x20    // 'evious, ' \n\t0x4E 0x65 0x78 0x74 0x2C 0x20 0x6F 0x72    // 'Next, or' \n\t0x20 0x4C 0x61 0x73 0x74 0x20 0x41 0x72    // ' Last Ar' \n\t0x72 0x6F 0x77 0x20 0x6F 0x72 0x20 0x64    // 'row or d' \n\t0x72 0x61 0x67 0x20 0x74 0x68 0x65 0x20    // 'rag the ' \n\t0x73 0x6C 0x69 0x64 0x65 0x72 0x20 0x69    // 'slider i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x6D 0x69    // 'n the mi' \n\t0x64 0x64 0x6C 0x65 0x20 0x6F 0x66 0x20    // 'ddle of ' \n\t0x74 0x68 0x65 0x20 0x62 0x61 0x72 0x2E    // 'the bar.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2F= ktpcEaselHelp2F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavEaselHelp2F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_23=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcEaselHelp2F\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavEaselHelp2F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_23=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_23=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xCF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x03    // '????y???' \n\t0x0A 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x79 0x00 0x00 0x80    // '????y??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x79 0x00 0x00 0x82    // '????y??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_23=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x0D 0x0A    // '??Drag??' \n\t0x31 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '1?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x73 0x20    // 'tton as ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'you move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x57    // 'se.??2?W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x76 0x65 0x20 0x66 0x69 0x6E 0x69 0x73    // 've finis' \n\t0x68 0x65 0x64 0x20 0x64 0x72 0x61 0x67    // 'hed drag' \n\t0x67 0x69 0x6E 0x67 0x2C 0x20 0x6C 0x65    // 'ging, le' \n\t0x74 0x20 0x67 0x6F 0x20 0x6F 0x66 0x20    // 't go of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x2E 0x0D 0x0A 0x54 0x69 0x70 0x20 0x66    // '.??Tip f' \n\t0x72 0x6F 0x6D 0x20 0x4D 0x63 0x5A 0x65    // 'rom McZe' \n\t0x65 0x3A 0x20 0x20 0x59 0x6F 0x75 0x27    // 'e:  You'' \n\t0x6C 0x6C 0x20 0x67 0x65 0x74 0x20 0x74    // 'll get t' \n\t0x68 0x65 0x20 0x62 0x65 0x73 0x74 0x20    // 'he best ' \n\t0x72 0x65 0x73 0x75 0x6C 0x74 0x73 0x20    // 'results ' \n\t0x69 0x66 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'if you m' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x73 0x6C    // 'mouse sl' \n\t0x6F 0x77 0x6C 0x79 0x20 0x61 0x73 0x20    // 'owly as ' \n\t0x79 0x6F 0x75 0x20 0x64 0x72 0x61 0x67    // 'you drag' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_30= ktpcEaselHelp30\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"tt--Rename actor, prop--Costume Changer\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"tt--Rename actor, prop--Costume Changer\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp30\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_22=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"ktpcEaselHelp30\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp30\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_22=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_22=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x65 0x00 0x00 0x01    // '????e???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_22=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x61 0x6E 0x20 0x61    // 'nge an a' \n\t0x63 0x74 0x6F 0x72 0x27 0x73 0x20 0x6F    // 'ctor's o' \n\t0x72 0x20 0x70 0x72 0x6F 0x70 0x27 0x73    // 'r prop's' \n\t0x20 0x6E 0x61 0x6D 0x65 0x2C 0x20 0x74    // ' name, t' \n\t0x79 0x70 0x65 0x20 0x74 0x68 0x65 0x20    // 'ype the ' \n\t0x6E 0x65 0x77 0x20 0x6E 0x61 0x6D 0x65    // 'new name' \n\t0x20 0x68 0x65 0x72 0x65 0x2E 0x20 0x20    // ' here.  ' \n\t0x49 0x66 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'If you m' \n\t0x61 0x6B 0x65 0x20 0x61 0x20 0x6D 0x69    // 'ake a mi' \n\t0x73 0x74 0x61 0x6B 0x65 0x2C 0x20 0x70    // 'stake, p' \n\t0x72 0x65 0x73 0x73 0x20 0x42 0x61 0x63    // 'ress Bac' \n\t0x6B 0x73 0x70 0x61 0x63 0x65 0x2E         // 'kspace.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_31= ktpcEaselHelp31\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"cut tt--Rename actor, prop--Costume Changer\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"cut tt--Rename actor, prop--Costume Changer\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavEaselHelp31\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"ktpcEaselHelp31\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavEaselHelp31\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x66 0x00 0x00 0x01    // '????f???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x0D 0x0A 0x52    // '??Cut??R' \n\t0x65 0x6D 0x6F 0x76 0x65 0x20 0x53 0x6F    // 'emove So' \n\t0x75 0x6E 0x64 0x0D 0x0A 0x54 0x6F 0x20    // 'und??To ' \n\t0x72 0x65 0x6D 0x6F 0x76 0x65 0x20 0x61    // 'remove a' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x79    // ' sound y' \n\t0x6F 0x75 0x20 0x72 0x65 0x63 0x6F 0x72    // 'ou recor' \n\t0x64 0x65 0x64 0x20 0x6F 0x72 0x20 0x69    // 'ded or i' \n\t0x6D 0x70 0x6F 0x72 0x74 0x65 0x64 0x2C    // 'mported,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'he sound' \n\t0x20 0x74 0x68 0x65 0x6E 0x20 0x63 0x6C    // ' then cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x69 0x73    // 'ick this' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E    // ' button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_32= ktpcEaselHelp32\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"CO UP--SCENE ORGANIZER 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"CO UP--SCENE ORGANIZER 2\")) __HELP_PACK2\n\tBO OSK LONG kgobEaselBalloonP kgobHowtoSequence 0x0 0xFFFFFFFF 0x140 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobEaselBalloonP\"\n\tITEM\n\t\t\"ktpcEaselHelp32\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x67 0x01 0x00 0x00    // '????g???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcEaselHelp0C __HELP_SYMBOL( STN \"ktpcEaselHelp0C\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcEaselHelp2F __HELP_SYMBOL( STN \"ktpcEaselHelp2F\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcEaselHelp2E __HELP_SYMBOL( STN \"ktpcEaselHelp2E\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x82 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x82 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x04    // '????%???' \n\t0x0D 0x00 0x00 0xFE 0x2A 0x00 0x00 0x04    // '???*???' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x04    // '????V???' \n\t0x0D 0x00 0x00 0xFE 0x5A 0x00 0x00 0x04    // '???Z???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x40    // '????%??@' \n\t0x06 0x00 0x00 0x00 0x2A 0x00 0x00 0x40    // '????*??@' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x40    // '????V??@' \n\t0x05 0x00 0x00 0x00 0x5A 0x00 0x00 0x40    // '????Z??@' \n\t0x00 0x00 0x00 0x00 0x77 0x00 0x00 0x40    // '????w??@' \n\t0x01 0x00 0x00 0x00 0x82 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x77 0x00 0x00 0xC0    // '????w??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x63 0x65 0x6E 0x65 0x20    // '??Scene ' \n\t0x4F 0x72 0x67 0x61 0x6E 0x69 0x7A 0x65    // 'Organize' \n\t0x72 0x0D 0x0A 0x53 0x68 0x6F 0x77 0x73    // 'r??Shows' \n\t0x20 0x79 0x6F 0x75 0x20 0x74 0x68 0x65    // ' you the' \n\t0x20 0x66 0x69 0x72 0x73 0x74 0x20 0x66    // ' first f' \n\t0x72 0x61 0x6D 0x65 0x20 0x6F 0x66 0x20    // 'rame of ' \n\t0x65 0x61 0x63 0x68 0x20 0x73 0x63 0x65    // 'each sce' \n\t0x6E 0x65 0x2E 0x20 0x20 0x54 0x6F 0x20    // 'ne.  To ' \n\t0x63 0x68 0x61 0x6E 0x67 0x65 0x20 0x74    // 'change t' \n\t0x68 0x65 0x20 0x73 0x63 0x65 0x6E 0x65    // 'he scene' \n\t0x20 0x6F 0x72 0x64 0x65 0x72 0x2C 0x20    // ' order, ' \n\t0x64 0x72 0x61 0x67 0x20 0x61 0x20 0x73    // 'drag a s' \n\t0x63 0x65 0x6E 0x65 0x20 0x77 0x68 0x65    // 'cene whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x69 0x74 0x2E 0x20    // 'ant it. ' \n\t0x20 0x01 0x20 0x4D 0x6F 0x72 0x65 0x20    // ' ? More ' \n\t0x68 0x65 0x6C 0x70                        // 'help' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_33= ktpcEaselHelp33\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"CO UP--3D WORDS 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"CO UP--3D WORDS 2\")) __HELP_PACK2\n\tBO OSK LONG kgobEaselBalloonP kgobHowtoSequence 0x0 0xFFFFFFFF 0x140 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_30=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobEaselBalloonP\"\n\tITEM\n\t\t\"ktpcEaselHelp33\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_30=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcEaselHelp0C __HELP_SYMBOL( STN \"ktpcEaselHelp0C\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_30=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x41 0x00 0x00 0x01    // '????A???' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x01    // '????X???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x4D 0x00 0x00 0x40    // '????M??@' \n\t0x03 0x00 0x00 0x00 0x58 0x00 0x00 0x40    // '????X??@' \n\t0x00 0x00 0x00 0x00 0x4D 0x00 0x00 0xC0    // '????M??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_30=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x03 0x03 0x33 0x44 0x20 0x57 0x6F 0x72    // '??3D Wor' \n\t0x64 0x73 0x0D 0x0A 0x54 0x79 0x70 0x65    // 'ds??Type' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x6F 0x72    // ' the wor' \n\t0x64 0x73 0x20 0x79 0x6F 0x75 0x20 0x77    // 'ds you w' \n\t0x61 0x6E 0x74 0x2E 0x20 0x20 0x49 0x66    // 'ant.  If' \n\t0x20 0x79 0x6F 0x75 0x20 0x6D 0x61 0x6B    // ' you mak' \n\t0x65 0x20 0x61 0x20 0x6D 0x69 0x73 0x74    // 'e a mist' \n\t0x61 0x6B 0x65 0x2C 0x20 0x70 0x72 0x65    // 'ake, pre' \n\t0x73 0x73 0x20 0x42 0x61 0x63 0x6B 0x73    // 'ss Backs' \n\t0x70 0x61 0x63 0x65 0x2E 0x0D 0x0A 0x01    // 'pace.???' \n\t0x20 0x4D 0x6F 0x72 0x65 0x20 0x68 0x65    // ' More he' \n\t0x6C 0x70                                  // 'lp' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_34= ktpcEaselHelp34\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"CO UP--LISTENER BROWSER 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"CO UP--LISTENER BROWSER 2\")) __HELP_PACK2\n\tBO OSK LONG kgobEaselBalloonP kgobHowtoSequence 0x0 0xFFFFFFFF 0x140 0x186 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_35=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobEaselBalloonP\"\n\tITEM\n\t\t\"ktpcEaselHelp34\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_35=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcEaselHelp0C __HELP_SYMBOL( STN \"ktpcEaselHelp0C\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcEaselHelp2F __HELP_SYMBOL( STN \"ktpcEaselHelp2F\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_35=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x7F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8C 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x7F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x8C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x04    // '????d???' \n\t0x0D 0x00 0x00 0xFE 0x68 0x00 0x00 0x04    // '???h???' \n\t0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x40    // '????d??@' \n\t0x04 0x00 0x00 0x00 0x68 0x00 0x00 0x40    // '????h??@' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x8C 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_35=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x03 0x03 0x4C 0x69 0x73 0x74 0x65 0x6E    // '??Listen' \n\t0x65 0x72 0x0D 0x0A 0x53 0x68 0x6F 0x77    // 'er??Show' \n\t0x73 0x20 0x79 0x6F 0x75 0x20 0x61 0x6C    // 's you al' \n\t0x6C 0x20 0x74 0x68 0x65 0x20 0x73 0x6F    // 'l the so' \n\t0x75 0x6E 0x64 0x73 0x20 0x61 0x74 0x74    // 'unds att' \n\t0x61 0x63 0x68 0x65 0x64 0x20 0x74 0x6F    // 'ached to' \n\t0x20 0x74 0x68 0x65 0x20 0x6F 0x62 0x6A    // ' the obj' \n\t0x65 0x63 0x74 0x20 0x79 0x6F 0x75 0x20    // 'ect you ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x65 0x64 0x2E    // 'clicked.' \n\t0x20 0x20 0x54 0x6F 0x20 0x63 0x68 0x61    // '  To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x76 0x6F    // 'sound vo' \n\t0x6C 0x75 0x6D 0x65 0x2C 0x20 0x64 0x72    // 'lume, dr' \n\t0x61 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ag the s' \n\t0x6C 0x69 0x64 0x65 0x72 0x20 0x75 0x70    // 'lider up' \n\t0x20 0x6F 0x72 0x20 0x64 0x6F 0x77 0x6E    // ' or down' \n\t0x2E 0x0D 0x0A 0x01 0x20 0x4D 0x6F 0x72    // '.??? Mor' \n\t0x65 0x20 0x68 0x65 0x6C 0x70              // 'e help' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_35= ktpcEaselHelp35\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"CO UP--COSTUME CHANGER 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"CO UP--COSTUME CHANGER 2\")) __HELP_PACK2\n\tBO OSK LONG kgobEaselBalloonP kgobHowtoSequence 0x0 0xFFFFFFFF 0x140 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobEaselBalloonP\"\n\tITEM\n\t\t\"ktpcEaselHelp35\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_10=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcEaselHelp0C __HELP_SYMBOL( STN \"ktpcEaselHelp0C\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0x01    // '????p???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00 0x70 0x00 0x00 0x03    // '????p???' \n\t0x00 0x00 0x00 0x00 0x65 0x00 0x00 0x40    // '????e??@' \n\t0x02 0x00 0x00 0x00 0x70 0x00 0x00 0x40    // '????p??@' \n\t0x00 0x00 0x00 0x00 0x65 0x00 0x00 0xC0    // '????e??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x73 0x74 0x75 0x6D    // '??Costum' \n\t0x65 0x20 0x43 0x68 0x61 0x6E 0x67 0x65    // 'e Change' \n\t0x72 0x0D 0x0A 0x54 0x6F 0x20 0x63 0x68    // 'r??To ch' \n\t0x61 0x6E 0x67 0x65 0x20 0x61 0x20 0x63    // 'ange a c' \n\t0x6F 0x73 0x74 0x75 0x6D 0x65 0x2C 0x20    // 'ostume, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x61 0x63 0x74 0x6F 0x72 0x20    // 'e actor ' \n\t0x6F 0x72 0x20 0x70 0x72 0x6F 0x70 0x20    // 'or prop ' \n\t0x75 0x6E 0x74 0x69 0x6C 0x20 0x79 0x6F    // 'until yo' \n\t0x75 0x20 0x66 0x69 0x6E 0x64 0x20 0x74    // 'u find t' \n\t0x68 0x65 0x20 0x22 0x63 0x6F 0x73 0x74    // 'he \"cost' \n\t0x75 0x6D 0x65 0x22 0x20 0x79 0x6F 0x75    // 'ume\" you' \n\t0x20 0x6C 0x69 0x6B 0x65 0x2E 0x20 0x01    // ' like. ?' \n\t0x20 0x4D 0x6F 0x72 0x65 0x20 0x68 0x65    // ' More he' \n\t0x6C 0x70                                  // 'lp' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_36= ktpcEaselHelp36\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"CO Up--SOUND EFFECTS 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"CO Up--SOUND EFFECTS 2\")) __HELP_PACK2\n\tBO OSK LONG kgobEaselBalloonP kgobHowtoSequence 0x0 0xFFFFFFFF 0x140 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_34=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobEaselBalloonP\"\n\tITEM\n\t\t\"ktpcEaselHelp36\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_34=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x2F 0x01 0x00 0x00    // '????/???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcEaselHelp0C __HELP_SYMBOL( STN \"ktpcEaselHelp0C\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_34=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x01 0x00 0x00 0x00 0x63 0x00 0x00 0x01    // '????c???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x58 0x00 0x00 0x40    // '????X??@' \n\t0x01 0x00 0x00 0x00 0x63 0x00 0x00 0x40    // '????c??@' \n\t0x00 0x00 0x00 0x00 0x58 0x00 0x00 0xC0    // '????X??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_34=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'the soun' \n\t0x64 0x20 0x65 0x66 0x66 0x65 0x63 0x74    // 'd effect' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x70 0x72 0x65    // 't to pre' \n\t0x76 0x69 0x65 0x77 0x2E 0x20 0x20 0x57    // 'view.  W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x20    // 'hen you ' \n\t0x66 0x69 0x6E 0x64 0x20 0x74 0x68 0x65    // 'find the' \n\t0x20 0x6F 0x6E 0x65 0x20 0x79 0x6F 0x75    // ' one you' \n\t0x20 0x77 0x61 0x6E 0x74 0x2C 0x20 0x63    // ' want, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x4F 0x4B 0x2E    // 'lick OK.' \n\t0x20 0x20 0x01 0x20 0x4D 0x6F 0x72 0x65    // '  ? More' \n\t0x20 0x68 0x65 0x6C 0x70                   // ' help' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_37= ktpcEaselHelp37\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"CO Up--RECORD YOUR OWN 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"CO Up--RECORD YOUR OWN 2\")) __HELP_PACK2\n\tBO OSK LONG kgobEaselBalloonP kgobHowtoSequence 0x0 0xFFFFFFFF 0x140 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_32=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobEaselBalloonP\"\n\tITEM\n\t\t\"ktpcEaselHelp37\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_32=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_11=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcEaselHelp0C __HELP_SYMBOL( STN \"ktpcEaselHelp0C\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundRecord __HELP_SYMBOL( STN \"mbmpSoundRecord\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_32=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x31 0x00 0x00 0x01    // '???1???' \n\t0x01 0x00 0x00 0x00 0xA9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x1B 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x1C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x9E 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xA9 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x80    // '????4??' \n\t0x00 0x00 0x03 0x00 0x51 0x00 0x00 0x80    // '????Q??' \n\t0x00 0x00 0x02 0x00 0x73 0x00 0x00 0x80    // '????s??' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x82    // '????4??' \n\t0x05 0x00 0x00 0x00 0x9E 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0xC0    // '????1??' \n\t0x02 0x00 0x00 0x00 0x9E 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_32=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x63    // '??To rec' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x72    // 'ord your' \n\t0x20 0x6F 0x77 0x6E 0x20 0x73 0x6F 0x75    // ' own sou' \n\t0x6E 0x64 0x0D 0x0A 0x31 0x09 0x43 0x6C    // 'nd??1?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x4D 0x69 0x63 0x72 0x6F 0x70 0x68 0x6F    // 'Micropho' \n\t0x6E 0x65 0x2D 0x01 0x0D 0x0A 0x54 0x68    // 'ne-???Th' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x73    // ' changes' \n\t0x20 0x74 0x6F 0x20 0x53 0x74 0x6F 0x70    // ' to Stop' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x54 0x6F 0x20    // '.??2?To ' \n\t0x73 0x74 0x6F 0x70 0x20 0x72 0x65 0x63    // 'stop rec' \n\t0x6F 0x72 0x64 0x69 0x6E 0x67 0x2C 0x20    // 'ording, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x53 0x74    // 'click St' \n\t0x6F 0x70 0x2E 0x0D 0x0A 0x33 0x09 0x54    // 'op.??3?T' \n\t0x79 0x70 0x65 0x20 0x61 0x20 0x6E 0x61    // 'ype a na' \n\t0x6D 0x65 0x20 0x66 0x6F 0x72 0x20 0x74    // 'me for t' \n\t0x68 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'he sound' \n\t0x2E 0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69    // '.??4?Cli' \n\t0x63 0x6B 0x20 0x4F 0x4B 0x2E 0x0D 0x0A    // 'ck OK.??' \n\t0x01 0x20 0x4D 0x6F 0x72 0x65 0x20 0x68    // '? More h' \n\t0x65 0x6C 0x70                             // 'elp' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_38= ktpcEaselHelp38\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"CO UP--SPEECH BROWSER 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"CO UP--SPEECH BROWSER 2\")) __HELP_PACK2\n\tBO OSK LONG kgobEaselBalloonP kgobHowtoSequence 0x0 0xFFFFFFFF 0x140 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobEaselBalloonP\"\n\tITEM\n\t\t\"ktpcEaselHelp38\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8C 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_15=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcEaselHelp0C __HELP_SYMBOL( STN \"ktpcEaselHelp0C\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5C 0x00 0x00 0x01    // '????\\???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x40    // '????Q??@' \n\t0x01 0x00 0x00 0x00 0x5C 0x00 0x00 0x40    // '????\\??@' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0xC0    // '????Q??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x63    // '??To rec' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x72    // 'ord your' \n\t0x20 0x6F 0x77 0x6E 0x20 0x64 0x69 0x61    // ' own dia' \n\t0x6C 0x6F 0x67 0x75 0x65 0x2C 0x20 0x63    // 'logue, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x6D 0x69 0x63 0x72 0x6F 0x70 0x68    // ' microph' \n\t0x6F 0x6E 0x65 0x2E 0x0D 0x0A 0x57 0x68    // 'one.??Wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x27 0x72    // 'en you'r' \n\t0x65 0x20 0x64 0x6F 0x6E 0x65 0x2C 0x20    // 'e done, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x4F 0x4B    // 'click OK' \n\t0x2E 0x20 0x20 0x01 0x20 0x4D 0x6F 0x72    // '.  ? Mor' \n\t0x65 0x20 0x68 0x65 0x6C 0x70              // 'e help' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_39= ktpcEaselHelp39\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"CO UP--MUSIC BROWSER 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"CO UP--MUSIC BROWSER 2\")) __HELP_PACK2\n\tBO OSK LONG kgobEaselBalloonP kgobHowtoSequence 0x0 0xFFFFFFFF 0x140 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_33=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobEaselBalloonP\"\n\tITEM\n\t\t\"ktpcEaselHelp39\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_33=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x20 0x01 0x00 0x00    // '???? ???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcEaselHelp0C __HELP_SYMBOL( STN \"ktpcEaselHelp0C\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_33=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5E 0x00 0x00 0x01    // '????^???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x01 0x00 0x00 0x00 0x5E 0x00 0x00 0x40    // '????^??@' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0xC0    // '????S??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_33=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x6D 0x75 0x73 0x69    // 'the musi' \n\t0x63 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'c you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x70 0x72    // 'nt to pr' \n\t0x65 0x76 0x69 0x65 0x77 0x2E 0x20 0x20    // 'eview.  ' \n\t0x57 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'When you' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x74 0x68    // ' find th' \n\t0x65 0x20 0x70 0x69 0x65 0x63 0x65 0x20    // 'e piece ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x4F 0x4B 0x2E 0x20 0x20 0x01 0x20 0x4D    // 'OK.  ? M' \n\t0x6F 0x72 0x65 0x20 0x68 0x65 0x6C 0x70    // 'ore help' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3A= ktpcEaselHelp3A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"CO UP--ACTION BROWSER 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"CO UP--ACTION BROWSER 2\")) __HELP_PACK2\n\tBO OSK LONG kgobEaselBalloonP kgobHowtoSequence 0x0 0xFFFFFFFF 0x140 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_25=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobEaselBalloonP\"\n\tITEM\n\t\t\"ktpcEaselHelp3A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_25=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' 0x16104 0xFFFFFFFF __HELP_SYMBOL( STN )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcEaselHelp0C __HELP_SYMBOL( STN \"ktpcEaselHelp0C\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcEaselHelp3F __HELP_SYMBOL( STN \"ktpcEaselHelp3F\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_25=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x76 0x00 0x00 0x01    // '????v???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0x40    // '????R??@' \n\t0x06 0x00 0x00 0x00 0x69 0x00 0x00 0x40    // '????i??@' \n\t0x00 0x00 0x00 0x00 0x6B 0x00 0x00 0x40    // '????k??@' \n\t0x04 0x00 0x00 0x00 0x76 0x00 0x00 0x40    // '????v??@' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0xC0    // '????R??' \n\t0x02 0x00 0x00 0x00 0x6B 0x00 0x00 0xC0    // '????k??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_25=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x69    // 'the acti' \n\t0x6F 0x6E 0x20 0x79 0x6F 0x75 0x20 0x77    // 'on you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x70    // 'ant to p' \n\t0x72 0x65 0x76 0x69 0x65 0x77 0x2E 0x20    // 'review. ' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // ' When yo' \n\t0x75 0x20 0x66 0x69 0x6E 0x64 0x20 0x74    // 'u find t' \n\t0x68 0x65 0x20 0x6F 0x6E 0x65 0x20 0x79    // 'he one y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x2C    // 'ou want,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x4F    // ' click O' \n\t0x4B 0x2E 0x0D 0x0A 0x01 0x09 0x57 0x68    // 'K.????Wh' \n\t0x61 0x74 0x20 0x64 0x6F 0x65 0x73 0x20    // 'at does ' \n\t0x74 0x68 0x65 0x20 0x2A 0x20 0x6D 0x65    // 'the * me' \n\t0x61 0x6E 0x3F 0x0D 0x0A 0x01 0x20 0x4D    // 'an???? M' \n\t0x6F 0x72 0x65 0x20 0x68 0x65 0x6C 0x70    // 'ore help' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3B= ktpcEaselHelp3B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"Tip:  Removing a sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"Tip:  Removing a sound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcEaselHelp3B\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x15 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpNukeSound __HELP_SYMBOL( STN \"mbmpNukeSound\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x01 0xF6 0x00 0x00 0x30 0x00 0x00 0x01    // '???0???' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x80    // '????(??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x28 0x00 0x00 0x82    // '????(??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0xC0    // '????0??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x52 0x65 0x6D    // '???  Rem' \n\t0x6F 0x76 0x69 0x6E 0x67 0x20 0x61 0x20    // 'oving a ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x54    // 'sound??T' \n\t0x6F 0x20 0x72 0x65 0x6D 0x6F 0x76 0x65    // 'o remove' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \n\t0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69 0x63    // '???Clic' \n\t0x6B 0x20 0x01                             // 'k ?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3C= kttRecordEaselOk\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"tt--OK\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"tt--OK\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttRecordEaselOk\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x5A 0x00 0x00 0x00    // '????Z???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x1F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x4B 0x0D 0x0A 0x43 0x6C    // '??OK??Cl' \n\t0x6F 0x73 0x65 0x20 0x61 0x6E 0x64 0x20    // 'ose and ' \n\t0x6D 0x61 0x6B 0x65 0x20 0x61 0x6C 0x6C    // 'make all' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x73    // ' changes' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3D= kttRecordEaselCancel\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"tt--Cancel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"tt--Cancel\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_37=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttRecordEaselCancel\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_37=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x79 0x00 0x00 0x00    // '????y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_37=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x29 0x00 0x00 0x03    // '???)???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_37=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x61 0x6E 0x63 0x65 0x6C    // '??Cancel' \n\t0x0D 0x0A 0x43 0x6C 0x6F 0x73 0x65 0x20    // '??Close ' \n\t0x77 0x69 0x74 0x68 0x6F 0x75 0x74 0x20    // 'without ' \n\t0x6D 0x61 0x6B 0x69 0x6E 0x67 0x20 0x61    // 'making a' \n\t0x6E 0x79 0x20 0x63 0x68 0x61 0x6E 0x67    // 'ny chang' \n\t0x65 0x73 0x2E                             // 'es.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3E= kttListenNukeSpeech\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"tt--Remove Sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"tt--Remove Sound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip 0x0 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavEaselHelp3E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip\"\n\tITEM\n\t\t\"kttListenNukeSpeech\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavEaselHelp3E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x91 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x6F 0x76 0x65    // '??Remove' \n\t0x20 0x53 0x6F 0x75 0x6E 0x64 0x0D 0x0A    // ' Sound??' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x6F    // 'Click to' \n\t0x20 0x72 0x65 0x6D 0x6F 0x76 0x65 0x20    // ' remove ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64 0x2E    // 'a sound.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3F= ktpcEaselHelp3F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"Tip:  What does * mean?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"Tip:  What does * mean?\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_38=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcEaselHelp3F\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_38=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_14=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_38=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xDA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1A 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_38=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x57 0x68 0x61    // '???  Wha' \n\t0x74 0x20 0x64 0x6F 0x65 0x73 0x20 0x74    // 't does t' \n\t0x68 0x65 0x20 0x2A 0x20 0x6D 0x65 0x61    // 'he * mea' \n\t0x6E 0x3F 0x0D 0x0A 0x41 0x63 0x74 0x69    // 'n???Acti' \n\t0x6F 0x6E 0x73 0x20 0x66 0x6F 0x6C 0x6C    // 'ons foll' \n\t0x6F 0x77 0x65 0x64 0x20 0x62 0x79 0x20    // 'owed by ' \n\t0x61 0x6E 0x20 0x61 0x73 0x74 0x65 0x72    // 'an aster' \n\t0x69 0x73 0x6B 0x20 0x28 0x2A 0x29 0x20    // 'isk (*) ' \n\t0x77 0x6F 0x72 0x6B 0x20 0x62 0x65 0x73    // 'work bes' \n\t0x74 0x20 0x77 0x68 0x65 0x6E 0x20 0x79    // 't when y' \n\t0x6F 0x75 0x20 0x68 0x6F 0x6C 0x64 0x20    // 'ou hold ' \n\t0x64 0x6F 0x77 0x6E 0x20 0x74 0x68 0x65    // 'down the' \n\t0x20 0x6D 0x6F 0x75 0x73 0x65 0x20 0x62    // ' mouse b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x20 0x61 0x6E    // 'utton an' \n\t0x64 0x20 0x64 0x72 0x61 0x67 0x2E 0x20    // 'd drag. ' \n\t0x20 0x4F 0x74 0x68 0x65 0x72 0x77 0x69    // ' Otherwi' \n\t0x73 0x65 0x2C 0x20 0x68 0x6F 0x6C 0x64    // 'se, hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x68    // ' down th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x61    // 'button a' \n\t0x6E 0x64 0x20 0x77 0x61 0x69 0x74 0x20    // 'nd wait ' \n\t0x75 0x6E 0x74 0x69 0x6C 0x20 0x74 0x68    // 'until th' \n\t0x65 0x20 0x61 0x63 0x74 0x6F 0x72 0x2C    // 'e actor,' \n\t0x20 0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F    // ' prop, o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x20 0x61 0x6E 0x69 0x6D 0x61 0x74    // 'd animat' \n\t0x65 0x73 0x20 0x69 0x6E 0x20 0x70 0x6C    // 'es in pl' \n\t0x61 0x63 0x65 0x2E                        // 'ace.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/errors.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcercOomHq\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"ercOomHq\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"ercOomHq\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_35=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercOomHq\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_35=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_35=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_35=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x01 0x00 0xFC 0xFF 0x29 0x00 0x00 0x01    // '??)???' \n\t0x01 0x00 0x00 0x00 0x85 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0x87 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xC1 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xC5 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xC6 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x0F 0x00 0x00 0xFD 0xC6 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xC5 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xC6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x80    // '????'??' \n\t0x00 0x00 0x00 0x02 0x29 0x00 0x00 0x80    // '????)??' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x80    // '????C??' \n\t0x00 0x00 0x02 0x00 0xC3 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xC5 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_35=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x68 0x6F 0x61 0x21 0x20    // '??Whoa! ' \n\t0x79 0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D    // 'your com' \n\t0x70 0x75 0x74 0x65 0x72 0x20 0x69 0x73    // 'puter is' \n\t0x20 0x6F 0x75 0x74 0x20 0x6F 0x66 0x20    // ' out of ' \n\t0x6D 0x65 0x6D 0x6F 0x72 0x79 0x21 0x0D    // 'memory!?' \n\t0x0A 0x0D 0x0A 0x54 0x72 0x79 0x20 0x66    // '???Try f' \n\t0x72 0x65 0x65 0x69 0x6E 0x67 0x20 0x73    // 'reeing s' \n\t0x6F 0x6D 0x65 0x20 0x6D 0x65 0x6D 0x6F    // 'ome memo' \n\t0x72 0x79 0x2E 0x0D 0x0A 0x2A 0x20 0x20    // 'ry.??*  ' \n\t0x53 0x77 0x69 0x74 0x63 0x68 0x20 0x74    // 'Switch t' \n\t0x6F 0x20 0x57 0x69 0x6E 0x64 0x6F 0x77    // 'o Window' \n\t0x73 0x20 0x28 0x70 0x72 0x65 0x73 0x73    // 's (press' \n\t0x20 0x43 0x54 0x52 0x4C 0x2B 0x45 0x53    // ' CTRL+ES' \n\t0x43 0x29 0x20 0x61 0x6E 0x64 0x20 0x63    // 'C) and c' \n\t0x6C 0x6F 0x73 0x65 0x20 0x6F 0x74 0x68    // 'lose oth' \n\t0x65 0x72 0x20 0x70 0x72 0x6F 0x67 0x72    // 'er progr' \n\t0x61 0x6D 0x73 0x2E 0x20 0x0D 0x0A 0x0D    // 'ams. ???' \n\t0x0A 0x2A 0x20 0x20 0x4F 0x72 0x2C 0x20    // '?*  Or, ' \n\t0x64 0x65 0x6C 0x65 0x74 0x65 0x20 0x6F    // 'delete o' \n\t0x6E 0x65 0x20 0x6F 0x72 0x20 0x74 0x77    // 'ne or tw' \n\t0x6F 0x20 0x61 0x63 0x74 0x6F 0x72 0x73    // 'o actors' \n\t0x20 0x6F 0x72 0x20 0x70 0x72 0x6F 0x70    // ' or prop' \n\t0x73 0x20 0x66 0x72 0x6F 0x6D 0x20 0x79    // 's from y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x2E 0x20 0x0D 0x0A 0x0D 0x0A 0x01    // 'e. ?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpcercOomPv\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"ercOomPv\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"ercOomPv\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_25=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercOomPv\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_25=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_25=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_25=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x01 0x00 0xFC 0xFF 0x29 0x00 0x00 0x01    // '??)???' \n\t0x01 0x00 0x00 0x00 0x84 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0x86 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xC2 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xC4 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xC5 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x0F 0x00 0x00 0xFD 0xC5 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xC4 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xC5 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x80    // '????'??' \n\t0x00 0x00 0x00 0x02 0x29 0x00 0x00 0x80    // '????)??' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x80    // '????C??' \n\t0x00 0x00 0x02 0x00 0xC2 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xC4 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_25=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x68 0x6F 0x61 0x21 0x20    // '??Whoa! ' \n\t0x79 0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D    // 'your com' \n\t0x70 0x75 0x74 0x65 0x72 0x20 0x69 0x73    // 'puter is' \n\t0x20 0x6F 0x75 0x74 0x20 0x6F 0x66 0x20    // ' out of ' \n\t0x6D 0x65 0x6D 0x6F 0x72 0x79 0x21 0x0D    // 'memory!?' \n\t0x0A 0x0D 0x0A 0x54 0x72 0x79 0x20 0x66    // '???Try f' \n\t0x72 0x65 0x65 0x69 0x6E 0x67 0x20 0x73    // 'reeing s' \n\t0x6F 0x6D 0x65 0x20 0x6D 0x65 0x6D 0x6F    // 'ome memo' \n\t0x72 0x79 0x2E 0x0D 0x0A 0x2A 0x20 0x20    // 'ry.??*  ' \n\t0x53 0x77 0x69 0x74 0x63 0x68 0x20 0x74    // 'Switch t' \n\t0x6F 0x20 0x57 0x69 0x6E 0x64 0x6F 0x77    // 'o Window' \n\t0x73 0x20 0x28 0x70 0x72 0x65 0x73 0x73    // 's (press' \n\t0x20 0x43 0x54 0x52 0x4C 0x2B 0x45 0x53    // ' CTRL+ES' \n\t0x43 0x29 0x20 0x61 0x6E 0x64 0x20 0x63    // 'C) and c' \n\t0x6C 0x6F 0x73 0x65 0x20 0x6F 0x74 0x68    // 'lose oth' \n\t0x65 0x72 0x20 0x70 0x72 0x6F 0x67 0x72    // 'er progr' \n\t0x61 0x6D 0x73 0x2E 0x0D 0x0A 0x0D 0x0A    // 'ams.????' \n\t0x2A 0x20 0x20 0x4F 0x72 0x2C 0x20 0x64    // '*  Or, d' \n\t0x65 0x6C 0x65 0x74 0x65 0x20 0x6F 0x6E    // 'elete on' \n\t0x65 0x20 0x6F 0x72 0x20 0x74 0x77 0x6F    // 'e or two' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x73 0x20    // ' actors ' \n\t0x6F 0x72 0x20 0x70 0x72 0x6F 0x70 0x73    // 'or props' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x79 0x6F    // ' from yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x2E 0x20 0x0D 0x0A 0x0D 0x0A 0x01         // '. ?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpcercOomNew\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"ercOomNew\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"ercOomNew\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_31=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercOomNew\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_31=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_31=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_31=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x01 0x00 0xFC 0xFF 0x29 0x00 0x00 0x01    // '??)???' \n\t0x01 0x00 0x00 0x00 0x84 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0x86 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xC2 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xC4 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xC5 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x0F 0x00 0x00 0xFD 0xC5 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xC4 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xC5 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x80    // '????'??' \n\t0x00 0x00 0x00 0x02 0x29 0x00 0x00 0x80    // '????)??' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x80    // '????C??' \n\t0x00 0x00 0x02 0x00 0xC2 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xC4 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_31=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x68 0x6F 0x61 0x21 0x20    // '??Whoa! ' \n\t0x79 0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D    // 'your com' \n\t0x70 0x75 0x74 0x65 0x72 0x20 0x69 0x73    // 'puter is' \n\t0x20 0x6F 0x75 0x74 0x20 0x6F 0x66 0x20    // ' out of ' \n\t0x6D 0x65 0x6D 0x6F 0x72 0x79 0x21 0x0D    // 'memory!?' \n\t0x0A 0x0D 0x0A 0x54 0x72 0x79 0x20 0x66    // '???Try f' \n\t0x72 0x65 0x65 0x69 0x6E 0x67 0x20 0x73    // 'reeing s' \n\t0x6F 0x6D 0x65 0x20 0x6D 0x65 0x6D 0x6F    // 'ome memo' \n\t0x72 0x79 0x2E 0x0D 0x0A 0x2A 0x20 0x53    // 'ry.??* S' \n\t0x77 0x69 0x74 0x63 0x68 0x20 0x74 0x6F    // 'witch to' \n\t0x20 0x57 0x69 0x6E 0x64 0x6F 0x77 0x73    // ' Windows' \n\t0x20 0x28 0x70 0x72 0x65 0x73 0x73 0x20    // ' (press ' \n\t0x43 0x54 0x52 0x4C 0x2B 0x45 0x53 0x43    // 'CTRL+ESC' \n\t0x29 0x20 0x61 0x6E 0x64 0x20 0x63 0x6C    // ') and cl' \n\t0x6F 0x73 0x65 0x20 0x6F 0x74 0x68 0x65    // 'ose othe' \n\t0x72 0x20 0x70 0x72 0x6F 0x67 0x72 0x61    // 'r progra' \n\t0x6D 0x73 0x2E 0x20 0x0D 0x0A 0x0D 0x0A    // 'ms. ????' \n\t0x2A 0x20 0x20 0x4F 0x72 0x2C 0x20 0x64    // '*  Or, d' \n\t0x65 0x6C 0x65 0x74 0x65 0x20 0x6F 0x6E    // 'elete on' \n\t0x65 0x20 0x6F 0x72 0x20 0x74 0x77 0x6F    // 'e or two' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x73 0x20    // ' actors ' \n\t0x6F 0x72 0x20 0x70 0x72 0x6F 0x70 0x73    // 'or props' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x79 0x6F    // ' from yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x2E 0x20 0x0D 0x0A 0x0D 0x0A 0x01         // '. ?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpcercSocNoSndOnPaste\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"ercSocNoSndOnPaste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"ercSocNoSndOnPaste\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNoSndOnPaste\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0x01    // '????p???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x70 0x00 0x00 0x03    // '???p???' \n\t0x00 0x00 0x00 0x00 0x74 0x00 0x00 0x40    // '????t??@' \n\t0x02 0x00 0x00 0x00 0x75 0x00 0x00 0x40    // '????u??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x00 0x74 0x00 0x00 0x80    // '????t??' \n\t0x00 0x00 0x00 0x02 0x74 0x00 0x00 0xC0    // '????t??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x4A 0x75 0x73 0x74 0x20 0x73    // '??Just s' \n\t0x6F 0x20 0x79 0x6F 0x75 0x20 0x6B 0x6E    // 'o you kn' \n\t0x6F 0x77 0x2E 0x2E 0x2E 0x74 0x68 0x65    // 'ow...the' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x20 0x79    // ' actor y' \n\t0x6F 0x75 0x20 0x6A 0x75 0x73 0x74 0x20    // 'ou just ' \n\t0x70 0x61 0x73 0x74 0x65 0x64 0x20 0x77    // 'pasted w' \n\t0x69 0x6C 0x6C 0x20 0x6E 0x6F 0x74 0x20    // 'ill not ' \n\t0x68 0x61 0x76 0x65 0x20 0x61 0x6E 0x79    // 'have any' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x73 0x20    // ' sounds ' \n\t0x74 0x68 0x61 0x74 0x20 0x77 0x65 0x72    // 'that wer' \n\t0x65 0x20 0x64 0x65 0x6C 0x65 0x74 0x65    // 'e delete' \n\t0x64 0x20 0x66 0x72 0x6F 0x6D 0x20 0x69    // 'd from i' \n\t0x74 0x73 0x20 0x6F 0x72 0x69 0x67 0x69    // 'ts origi' \n\t0x6E 0x61 0x6C 0x20 0x6D 0x6F 0x76 0x69    // 'nal movi' \n\t0x65 0x2E 0x0D 0x0A 0x0D 0x0A 0x01         // 'e.?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpcercFileGeneral\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"ercFileGeneral\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"ercFileGeneral\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_37=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercFileGeneral\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_37=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_37=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_37=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x16 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x01 0x00 0xFC 0xFF 0x2A 0x00 0x00 0x01    // '??*???' \n\t0x01 0x00 0x00 0x00 0xAE 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xB0 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xF8 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xFA 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x6F 0x01 0x00 0x01    // '????o???' \n\t0x01 0x00 0xFC 0xFF 0x71 0x01 0x00 0x01    // '??q???' \n\t0x01 0x00 0x00 0x00 0x74 0x01 0x00 0x01    // '????t???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x0F 0x00 0x00 0xFD 0xFA 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x6F 0x01 0x00 0x03    // '????o???' \n\t0x0F 0x00 0x00 0xFD 0x74 0x01 0x00 0x03    // '???t???' \n\t0x00 0x00 0x00 0x00 0x73 0x01 0x00 0x40    // '????s??@' \n\t0x02 0x00 0x00 0x00 0x74 0x01 0x00 0x40    // '????t??@' \n\t0x00 0x00 0x00 0x00 0x5A 0x00 0x00 0x80    // '????Z??' \n\t0x00 0x00 0x02 0x00 0xF8 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xFA 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x71 0x01 0x00 0x80    // '????q??' \n\t0x00 0x00 0x00 0x02 0x73 0x01 0x00 0xC0    // '????s??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_37=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x2E 0x20    // '??Oops. ' \n\t0x20 0x57 0x65 0x20 0x68 0x61 0x64 0x20    // ' We had ' \n\t0x74 0x72 0x6F 0x75 0x62 0x6C 0x65 0x20    // 'trouble ' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x74 0x68    // ' with th' \n\t0x69 0x73 0x20 0x66 0x69 0x6C 0x65 0x2E    // 'is file.' \n\t0x0D 0x0A 0x0D 0x0A 0x42 0x65 0x66 0x6F    // '????Befo' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x74    // 're you t' \n\t0x72 0x79 0x20 0x61 0x67 0x61 0x69 0x6E    // 'ry again' \n\t0x2C 0x20 0x63 0x68 0x65 0x63 0x6B 0x20    // ', check ' \n\t0x74 0x68 0x65 0x73 0x65 0x20 0x73 0x75    // 'these su' \n\t0x67 0x67 0x65 0x73 0x74 0x69 0x6F 0x6E    // 'ggestion' \n\t0x73 0x2E 0x0D 0x0A 0x2A 0x20 0x20 0x49    // 's.??*  I' \n\t0x66 0x20 0x79 0x6F 0x75 0x27 0x72 0x65    // 'f you're' \n\t0x20 0x75 0x73 0x69 0x6E 0x67 0x20 0x61    // ' using a' \n\t0x20 0x66 0x6C 0x6F 0x70 0x70 0x79 0x20    // ' floppy ' \n\t0x64 0x69 0x73 0x6B 0x2C 0x20 0x6D 0x61    // 'disk, ma' \n\t0x6B 0x65 0x20 0x73 0x75 0x72 0x65 0x20    // 'ke sure ' \n\t0x69 0x74 0x20 0x69 0x73 0x20 0x63 0x6F    // 'it is co' \n\t0x72 0x72 0x65 0x63 0x74 0x6C 0x79 0x20    // 'rrectly ' \n\t0x69 0x6E 0x73 0x65 0x72 0x74 0x65 0x64    // 'inserted' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x64 0x72 0x69 0x76 0x65 0x2E 0x0D 0x0A    // 'drive.??' \n\t0x0D 0x0A 0x2A 0x20 0x20 0x4D 0x61 0x6B    // '??*  Mak' \n\t0x65 0x20 0x73 0x75 0x72 0x65 0x20 0x74    // 'e sure t' \n\t0x68 0x65 0x20 0x33 0x44 0x20 0x4D 0x6F    // 'he 3D Mo' \n\t0x76 0x69 0x65 0x20 0x4D 0x61 0x6B 0x65    // 'vie Make' \n\t0x72 0x20 0x43 0x44 0x20 0x69 0x73 0x20    // 'r CD is ' \n\t0x63 0x6F 0x72 0x72 0x65 0x63 0x74 0x6C    // 'correctl' \n\t0x79 0x20 0x69 0x6E 0x73 0x65 0x72 0x74    // 'y insert' \n\t0x65 0x64 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ed in th' \n\t0x65 0x20 0x64 0x72 0x69 0x76 0x65 0x2E    // 'e drive.' \n\t0x0D 0x0A 0x0D 0x0A 0x2A 0x20 0x20 0x20    // '????*   ' \n\t0x59 0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D    // 'Your com' \n\t0x70 0x75 0x74 0x65 0x72 0x27 0x73 0x20    // 'puter's ' \n\t0x68 0x61 0x72 0x64 0x20 0x64 0x72 0x69    // 'hard dri' \n\t0x76 0x65 0x20 0x6D 0x61 0x79 0x20 0x62    // 've may b' \n\t0x65 0x20 0x66 0x75 0x6C 0x6C 0x2E 0x20    // 'e full. ' \n\t0x53 0x77 0x69 0x74 0x63 0x68 0x20 0x74    // 'Switch t' \n\t0x6F 0x20 0x57 0x69 0x6E 0x64 0x6F 0x77    // 'o Window' \n\t0x73 0x20 0x28 0x70 0x72 0x65 0x73 0x73    // 's (press' \n\t0x20 0x43 0x54 0x52 0x4C 0x2B 0x45 0x53    // ' CTRL+ES' \n\t0x43 0x29 0x20 0x61 0x6E 0x64 0x20 0x6D    // 'C) and m' \n\t0x6F 0x76 0x65 0x20 0x6F 0x72 0x20 0x64    // 'ove or d' \n\t0x65 0x6C 0x65 0x74 0x65 0x20 0x75 0x6E    // 'elete un' \n\t0x6E 0x65 0x63 0x65 0x73 0x73 0x61 0x72    // 'necessar' \n\t0x79 0x20 0x66 0x69 0x6C 0x65 0x73 0x2E    // 'y files.' \n\t0x20 0x0D 0x0A 0x0D 0x0A 0x01              // ' ?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpcercCflOpen\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"ercCflOpen\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"ercCflOpen\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercCflOpen\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x19 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x01 0x00 0xFC 0xFF 0x3A 0x00 0x00 0x01    // '??:???' \n\t0x01 0x00 0x00 0x00 0xA2 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xA4 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xE6 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xE8 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x35 0x01 0x00 0x01    // '????5???' \n\t0x01 0x00 0xFC 0xFF 0x37 0x01 0x00 0x01    // '??7???' \n\t0x01 0x00 0x00 0x00 0x7F 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0xFC 0xFF 0x81 0x01 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x84 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x0F 0x00 0x00 0xFD 0xA4 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x33 0x01 0x00 0x03    // '????3???' \n\t0x0F 0x00 0x00 0xFD 0x84 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x83 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x84 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x5A 0x00 0x00 0x80    // '????Z??' \n\t0x00 0x00 0x02 0x00 0xA2 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xA4 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x35 0x01 0x00 0x80    // '????5??' \n\t0x00 0x00 0x00 0x00 0x81 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x83 0x01 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x75 0x65 0x20 0x74 0x6F    // '??Due to' \n\t0x20 0x74 0x65 0x63 0x68 0x6E 0x69 0x63    // ' technic' \n\t0x61 0x6C 0x20 0x64 0x69 0x66 0x66 0x69    // 'al diffi' \n\t0x63 0x75 0x6C 0x74 0x69 0x65 0x73 0x20    // 'culties ' \n\t0x77 0x65 0x20 0x63 0x61 0x6E 0x27 0x74    // 'we can't' \n\t0x20 0x6F 0x70 0x65 0x6E 0x20 0x74 0x68    // ' open th' \n\t0x69 0x73 0x20 0x66 0x69 0x6C 0x65 0x2E    // 'is file.' \n\t0x0D 0x0A 0x0D 0x0A 0x54 0x72 0x79 0x20    // '????Try ' \n\t0x74 0x68 0x65 0x20 0x66 0x6F 0x6C 0x6C    // 'the foll' \n\t0x6F 0x77 0x69 0x6E 0x67 0x20 0x73 0x75    // 'owing su' \n\t0x67 0x67 0x65 0x73 0x74 0x69 0x6F 0x6E    // 'ggestion' \n\t0x73 0x2E 0x0D 0x0A 0x2A 0x20 0x20 0x4D    // 's.??*  M' \n\t0x61 0x6B 0x65 0x20 0x73 0x75 0x72 0x65    // 'ake sure' \n\t0x20 0x61 0x6E 0x79 0x20 0x64 0x69 0x73    // ' any dis' \n\t0x6B 0x20 0x79 0x6F 0x75 0x27 0x72 0x65    // 'k you're' \n\t0x20 0x75 0x73 0x69 0x6E 0x67 0x20 0x69    // ' using i' \n\t0x73 0x20 0x63 0x6F 0x72 0x72 0x65 0x63    // 's correc' \n\t0x74 0x6C 0x79 0x20 0x69 0x6E 0x73 0x65    // 'tly inse' \n\t0x72 0x74 0x65 0x64 0x20 0x69 0x6E 0x20    // 'rted in ' \n\t0x69 0x74 0x73 0x20 0x64 0x72 0x69 0x76    // 'its driv' \n\t0x65 0x2E 0x0D 0x0A 0x0D 0x0A 0x2A 0x20    // 'e.????* ' \n\t0x20 0x53 0x77 0x69 0x74 0x63 0x68 0x20    // ' Switch ' \n\t0x74 0x6F 0x20 0x57 0x69 0x6E 0x64 0x6F    // 'to Windo' \n\t0x77 0x73 0x20 0x28 0x70 0x72 0x65 0x73    // 'ws (pres' \n\t0x73 0x20 0x43 0x54 0x52 0x4C 0x2B 0x45    // 's CTRL+E' \n\t0x53 0x43 0x29 0x20 0x61 0x6E 0x64 0x20    // 'SC) and ' \n\t0x63 0x6C 0x6F 0x73 0x65 0x20 0x6F 0x74    // 'close ot' \n\t0x68 0x65 0x72 0x20 0x70 0x72 0x6F 0x67    // 'her prog' \n\t0x72 0x61 0x6D 0x73 0x2E 0x20 0x0D 0x0A    // 'rams. ??' \n\t0x0D 0x0A 0x2A 0x20 0x20 0x53 0x77 0x69    // '??*  Swi' \n\t0x74 0x63 0x68 0x20 0x74 0x6F 0x20 0x57    // 'tch to W' \n\t0x69 0x6E 0x64 0x6F 0x77 0x73 0x20 0x28    // 'indows (' \n\t0x70 0x72 0x65 0x73 0x73 0x20 0x43 0x54    // 'press CT' \n\t0x52 0x4C 0x2B 0x45 0x53 0x43 0x29 0x20    // 'RL+ESC) ' \n\t0x61 0x6E 0x64 0x20 0x6D 0x6F 0x76 0x65    // 'and move' \n\t0x20 0x6F 0x72 0x20 0x64 0x65 0x6C 0x65    // ' or dele' \n\t0x74 0x65 0x20 0x75 0x6E 0x6E 0x63 0x65    // 'te unnce' \n\t0x73 0x73 0x61 0x72 0x79 0x20 0x66 0x69    // 'ssary fi' \n\t0x6C 0x65 0x73 0x2E 0x20 0x0D 0x0A 0x0D    // 'les. ???' \n\t0x0A 0x4F 0x74 0x68 0x65 0x72 0x77 0x69    // '?Otherwi' \n\t0x73 0x65 0x2C 0x20 0x74 0x68 0x65 0x20    // 'se, the ' \n\t0x66 0x69 0x6C 0x65 0x20 0x6D 0x61 0x79    // 'file may' \n\t0x20 0x62 0x65 0x20 0x63 0x6F 0x72 0x72    // ' be corr' \n\t0x75 0x70 0x74 0x2C 0x20 0x6F 0x72 0x20    // 'upt, or ' \n\t0x69 0x74 0x20 0x69 0x73 0x20 0x6E 0x6F    // 'it is no' \n\t0x74 0x20 0x61 0x20 0x33 0x44 0x20 0x4D    // 't a 3D M' \n\t0x6F 0x76 0x69 0x65 0x20 0x4D 0x61 0x6B    // 'ovie Mak' \n\t0x65 0x72 0x20 0x66 0x69 0x6C 0x65 0x2E    // 'er file.' \n\t0x20 0x0D 0x0A 0x0D 0x0A 0x01              // ' ?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpcercCflSave\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"ercCflSave\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"ercCflSave\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercCflSave\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x16 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x01 0x00 0xFC 0xFF 0x26 0x00 0x00 0x01    // '??&???' \n\t0x01 0x00 0x00 0x00 0xA6 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xA8 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xEA 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xEC 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x37 0x01 0x00 0x01    // '????7???' \n\t0x01 0x00 0xFC 0xFF 0x39 0x01 0x00 0x01    // '??9???' \n\t0x01 0x00 0x00 0x00 0x3C 0x01 0x00 0x01    // '????<???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x0F 0x00 0x00 0xFD 0xA8 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x37 0x01 0x00 0x03    // '????7???' \n\t0x0F 0x00 0x00 0xFD 0x3C 0x01 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00 0x3B 0x01 0x00 0x40    // '????;??@' \n\t0x02 0x00 0x00 0x00 0x3C 0x01 0x00 0x40    // '????<??@' \n\t0x00 0x00 0x00 0x00 0x5E 0x00 0x00 0x80    // '????^??' \n\t0x00 0x00 0x02 0x00 0xA6 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xA8 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x39 0x01 0x00 0x80    // '????9??' \n\t0x00 0x00 0x00 0x02 0x3B 0x01 0x00 0xC0    // '????;??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x75 0x6D 0x6D 0x2E 0x20    // '??Humm. ' \n\t0x57 0x65 0x20 0x63 0x61 0x6E 0x27 0x74    // 'We can't' \n\t0x20 0x73 0x65 0x65 0x6D 0x20 0x74 0x6F    // ' seem to' \n\t0x20 0x73 0x61 0x76 0x65 0x20 0x74 0x68    // ' save th' \n\t0x69 0x73 0x2E 0x20 0x0D 0x0A 0x0D 0x0A    // 'is. ????' \n\t0x54 0x72 0x79 0x20 0x74 0x68 0x65 0x20    // 'Try the ' \n\t0x66 0x6F 0x6C 0x6C 0x6F 0x77 0x69 0x6E    // 'followin' \n\t0x67 0x2C 0x20 0x61 0x6E 0x64 0x20 0x74    // 'g, and t' \n\t0x68 0x65 0x6E 0x20 0x74 0x72 0x79 0x20    // 'hen try ' \n\t0x73 0x61 0x76 0x69 0x6E 0x67 0x20 0x74    // 'saving t' \n\t0x68 0x65 0x20 0x66 0x69 0x6C 0x65 0x20    // 'he file ' \n\t0x61 0x67 0x61 0x69 0x6E 0x2E 0x0D 0x0A    // 'again.??' \n\t0x2A 0x20 0x20 0x4D 0x61 0x6B 0x65 0x20    // '*  Make ' \n\t0x73 0x75 0x72 0x65 0x20 0x61 0x6E 0x79    // 'sure any' \n\t0x20 0x64 0x69 0x73 0x6B 0x20 0x79 0x6F    // ' disk yo' \n\t0x75 0x27 0x72 0x65 0x20 0x75 0x73 0x69    // 'u're usi' \n\t0x6E 0x67 0x20 0x69 0x73 0x20 0x63 0x6F    // 'ng is co' \n\t0x72 0x72 0x65 0x63 0x74 0x6C 0x79 0x20    // 'rrectly ' \n\t0x69 0x6E 0x73 0x65 0x72 0x74 0x65 0x64    // 'inserted' \n\t0x20 0x69 0x6E 0x20 0x69 0x74 0x73 0x20    // ' in its ' \n\t0x64 0x72 0x69 0x76 0x65 0x2E 0x0D 0x0A    // 'drive.??' \n\t0x0D 0x0A 0x2A 0x20 0x20 0x53 0x77 0x69    // '??*  Swi' \n\t0x74 0x63 0x68 0x20 0x74 0x6F 0x20 0x57    // 'tch to W' \n\t0x69 0x6E 0x64 0x6F 0x77 0x73 0x20 0x28    // 'indows (' \n\t0x70 0x72 0x65 0x73 0x73 0x20 0x43 0x54    // 'press CT' \n\t0x52 0x4C 0x2B 0x45 0x53 0x43 0x29 0x20    // 'RL+ESC) ' \n\t0x61 0x6E 0x64 0x20 0x63 0x6C 0x6F 0x73    // 'and clos' \n\t0x65 0x20 0x6F 0x74 0x68 0x65 0x72 0x20    // 'e other ' \n\t0x70 0x72 0x6F 0x67 0x72 0x61 0x6D 0x73    // 'programs' \n\t0x2E 0x20 0x0D 0x0A 0x0D 0x0A 0x2A 0x20    // '. ????* ' \n\t0x20 0x53 0x77 0x69 0x74 0x63 0x68 0x20    // ' Switch ' \n\t0x74 0x6F 0x20 0x57 0x69 0x6E 0x64 0x6F    // 'to Windo' \n\t0x77 0x73 0x20 0x28 0x70 0x72 0x65 0x73    // 'ws (pres' \n\t0x73 0x20 0x43 0x54 0x52 0x4C 0x2B 0x45    // 's CTRL+E' \n\t0x53 0x43 0x29 0x20 0x61 0x6E 0x64 0x20    // 'SC) and ' \n\t0x6D 0x6F 0x76 0x65 0x20 0x6F 0x72 0x20    // 'move or ' \n\t0x64 0x65 0x6C 0x65 0x74 0x65 0x20 0x75    // 'delete u' \n\t0x6E 0x6E 0x63 0x65 0x73 0x73 0x61 0x72    // 'nncessar' \n\t0x79 0x20 0x66 0x69 0x6C 0x65 0x73 0x2E    // 'y files.' \n\t0x20 0x0D 0x0A 0x0D 0x0A 0x01              // ' ?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpcercCrfCantLoad\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"ercCrfCantLoad\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"ercCrfCantLoad\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_39=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercCrfCantLoad\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_39=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_39=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_39=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x16 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4A 0x00 0x00 0x01    // '????J???' \n\t0x01 0x00 0xFC 0xFF 0x4C 0x00 0x00 0x01    // '??L???' \n\t0x01 0x00 0x00 0x00 0xB4 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xB6 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x1B 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0xFC 0xFF 0x1D 0x01 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x90 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0x92 0x01 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x95 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x4A 0x00 0x00 0x03    // '???J???' \n\t0x0F 0x00 0x00 0xFD 0xB6 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x90 0x01 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x95 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x94 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x95 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x6C 0x00 0x00 0x80    // '????l??' \n\t0x00 0x00 0x02 0x00 0xB4 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xB6 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x92 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x94 0x01 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_39=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x2E 0x20    // '??Oops. ' \n\t0x57 0x65 0x20 0x61 0x72 0x65 0x20 0x68    // 'We are h' \n\t0x61 0x76 0x69 0x6E 0x67 0x20 0x74 0x72    // 'aving tr' \n\t0x6F 0x75 0x62 0x6C 0x65 0x20 0x67 0x65    // 'ouble ge' \n\t0x74 0x74 0x69 0x6E 0x67 0x20 0x74 0x68    // 'tting th' \n\t0x65 0x20 0x69 0x6E 0x66 0x6F 0x72 0x6D    // 'e inform' \n\t0x61 0x74 0x69 0x6F 0x6E 0x20 0x77 0x65    // 'ation we' \n\t0x20 0x6E 0x65 0x65 0x64 0x20 0x66 0x72    // ' need fr' \n\t0x6F 0x6D 0x20 0x61 0x20 0x66 0x69 0x6C    // 'om a fil' \n\t0x65 0x2E 0x0D 0x0A 0x0D 0x0A 0x54 0x72    // 'e.????Tr' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x66 0x6F    // 'y the fo' \n\t0x6C 0x6C 0x6F 0x77 0x69 0x6E 0x67 0x20    // 'llowing ' \n\t0x73 0x75 0x67 0x67 0x65 0x73 0x74 0x69    // 'suggesti' \n\t0x6F 0x6E 0x73 0x2E 0x0D 0x0A 0x2A 0x20    // 'ons.??* ' \n\t0x20 0x4D 0x61 0x6B 0x65 0x20 0x73 0x75    // ' Make su' \n\t0x72 0x65 0x20 0x61 0x6E 0x79 0x20 0x64    // 're any d' \n\t0x69 0x73 0x6B 0x20 0x79 0x6F 0x75 0x27    // 'isk you'' \n\t0x72 0x65 0x20 0x75 0x73 0x69 0x6E 0x67    // 're using' \n\t0x20 0x69 0x73 0x20 0x63 0x6F 0x72 0x72    // ' is corr' \n\t0x65 0x63 0x74 0x6C 0x79 0x20 0x69 0x6E    // 'ectly in' \n\t0x73 0x65 0x72 0x74 0x65 0x64 0x20 0x69    // 'serted i' \n\t0x6E 0x20 0x69 0x74 0x73 0x20 0x64 0x72    // 'n its dr' \n\t0x69 0x76 0x65 0x2E 0x0D 0x0A 0x0D 0x0A    // 'ive.????' \n\t0x2A 0x20 0x20 0x59 0x6F 0x75 0x72 0x20    // '*  Your ' \n\t0x63 0x6F 0x6D 0x70 0x75 0x74 0x65 0x72    // 'computer' \n\t0x27 0x73 0x20 0x6D 0x65 0x6D 0x6F 0x72    // ''s memor' \n\t0x79 0x20 0x6D 0x61 0x79 0x20 0x62 0x65    // 'y may be' \n\t0x20 0x6C 0x6F 0x77 0x2E 0x20 0x53 0x77    // ' low. Sw' \n\t0x69 0x74 0x63 0x68 0x20 0x74 0x6F 0x20    // 'itch to ' \n\t0x57 0x69 0x6E 0x64 0x6F 0x77 0x73 0x20    // 'Windows ' \n\t0x28 0x70 0x72 0x65 0x73 0x73 0x20 0x43    // '(press C' \n\t0x54 0x52 0x4C 0x2B 0x45 0x53 0x43 0x29    // 'TRL+ESC)' \n\t0x20 0x61 0x6E 0x64 0x20 0x63 0x6C 0x6F    // ' and clo' \n\t0x73 0x65 0x20 0x6F 0x74 0x68 0x65 0x72    // 'se other' \n\t0x20 0x70 0x72 0x6F 0x67 0x72 0x61 0x6D    // ' program' \n\t0x73 0x2E 0x20 0x0D 0x0A 0x0D 0x0A 0x2A    // 's. ????*' \n\t0x20 0x20 0x59 0x6F 0x75 0x72 0x20 0x63    // '  Your c' \n\t0x6F 0x6D 0x70 0x75 0x74 0x65 0x72 0x27    // 'omputer'' \n\t0x73 0x20 0x68 0x61 0x72 0x64 0x20 0x64    // 's hard d' \n\t0x72 0x69 0x76 0x65 0x20 0x6D 0x61 0x79    // 'rive may' \n\t0x20 0x62 0x65 0x20 0x66 0x75 0x6C 0x6C    // ' be full' \n\t0x2E 0x20 0x53 0x77 0x69 0x74 0x63 0x68    // '. Switch' \n\t0x20 0x74 0x6F 0x20 0x57 0x69 0x6E 0x64    // ' to Wind' \n\t0x6F 0x77 0x73 0x20 0x28 0x70 0x72 0x65    // 'ows (pre' \n\t0x73 0x73 0x20 0x43 0x54 0x52 0x4C 0x2B    // 'ss CTRL+' \n\t0x45 0x53 0x43 0x29 0x20 0x61 0x6E 0x64    // 'ESC) and' \n\t0x20 0x6D 0x6F 0x76 0x65 0x20 0x6F 0x72    // ' move or' \n\t0x20 0x64 0x65 0x6C 0x65 0x74 0x65 0x20    // ' delete ' \n\t0x75 0x6E 0x6E 0x63 0x65 0x73 0x73 0x61    // 'unncessa' \n\t0x72 0x79 0x20 0x66 0x69 0x6C 0x65 0x73    // 'ry files' \n\t0x2E 0x20 0x0D 0x0A 0x0D 0x0A 0x01         // '. ?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpcercSocCantCopyMsnd\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"ercSocCantCopyMsnd\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"ercSocCantCopyMsnd\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocCantCopyMsnd\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x01 0x00 0xFC 0xFF 0x2F 0x00 0x00 0x01    // '??/???' \n\t0x01 0x00 0x00 0x00 0x94 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0x96 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x09 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0xFC 0xFF 0x0D 0x01 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x0E 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x2F 0x00 0x00 0x03    // '???/???' \n\t0x00 0x00 0x00 0x00 0x09 0x01 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0E 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0D 0x01 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x0E 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x80    // '????-??' \n\t0x00 0x00 0x02 0x00 0x0B 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02 0x0D 0x01 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x65 0x20 0x63 0x6F 0x75    // '??We cou' \n\t0x6C 0x64 0x6E 0x27 0x74 0x20 0x63 0x6F    // 'ldn't co' \n\t0x70 0x79 0x20 0x74 0x68 0x65 0x20 0x73    // 'py the s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x69 0x6E 0x74    // 'ound int' \n\t0x6F 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'o your m' \n\t0x6F 0x76 0x69 0x65 0x2E 0x0D 0x0A 0x0D    // 'ovie.???' \n\t0x0A 0x2A 0x20 0x20 0x59 0x6F 0x75 0x72    // '?*  Your' \n\t0x20 0x63 0x6F 0x6D 0x70 0x75 0x74 0x65    // ' compute' \n\t0x72 0x27 0x73 0x20 0x6D 0x65 0x6D 0x6F    // 'r's memo' \n\t0x72 0x79 0x20 0x6D 0x61 0x79 0x20 0x62    // 'ry may b' \n\t0x65 0x20 0x6C 0x6F 0x77 0x2E 0x20 0x53    // 'e low. S' \n\t0x77 0x69 0x74 0x63 0x68 0x20 0x74 0x6F    // 'witch to' \n\t0x20 0x57 0x69 0x6E 0x64 0x6F 0x77 0x73    // ' Windows' \n\t0x20 0x28 0x70 0x72 0x65 0x73 0x73 0x20    // ' (press ' \n\t0x43 0x54 0x52 0x4C 0x2B 0x45 0x53 0x43    // 'CTRL+ESC' \n\t0x29 0x20 0x61 0x6E 0x64 0x20 0x63 0x6C    // ') and cl' \n\t0x6F 0x73 0x65 0x20 0x6F 0x74 0x68 0x65    // 'ose othe' \n\t0x72 0x20 0x70 0x72 0x6F 0x67 0x72 0x61    // 'r progra' \n\t0x6D 0x73 0x2E 0x20 0x0D 0x0A 0x0D 0x0A    // 'ms. ????' \n\t0x2A 0x20 0x20 0x59 0x6F 0x75 0x72 0x20    // '*  Your ' \n\t0x63 0x6F 0x6D 0x70 0x75 0x74 0x65 0x72    // 'computer' \n\t0x27 0x73 0x20 0x68 0x61 0x72 0x64 0x20    // ''s hard ' \n\t0x64 0x72 0x69 0x76 0x65 0x20 0x6D 0x61    // 'drive ma' \n\t0x79 0x20 0x62 0x65 0x20 0x66 0x75 0x6C    // 'y be ful' \n\t0x6C 0x2E 0x20 0x53 0x77 0x69 0x74 0x63    // 'l. Switc' \n\t0x68 0x20 0x74 0x6F 0x20 0x57 0x69 0x6E    // 'h to Win' \n\t0x64 0x6F 0x77 0x73 0x20 0x28 0x70 0x72    // 'dows (pr' \n\t0x65 0x73 0x73 0x20 0x43 0x54 0x52 0x4C    // 'ess CTRL' \n\t0x2B 0x45 0x53 0x43 0x29 0x20 0x61 0x6E    // '+ESC) an' \n\t0x64 0x20 0x6D 0x6F 0x76 0x65 0x20 0x6F    // 'd move o' \n\t0x72 0x20 0x64 0x65 0x6C 0x65 0x74 0x65    // 'r delete' \n\t0x20 0x75 0x6E 0x6E 0x63 0x65 0x73 0x73    // ' unncess' \n\t0x61 0x72 0x79 0x20 0x66 0x69 0x6C 0x65    // 'ary file' \n\t0x73 0x2E 0x20 0x0D 0x0A 0x0D 0x0A 0x01    // 's. ?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= ktpcercFniHidden\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"ercFniHidden\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"ercFniHidden\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercFniHidden\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x83 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0x85 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xB6 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xB8 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xBB 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x81 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xBB 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xBA 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xBB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xB8 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xBA 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x2C 0x20    // '??Oops, ' \n\t0x74 0x68 0x65 0x20 0x66 0x69 0x6C 0x65    // 'the file' \n\t0x6E 0x61 0x6D 0x65 0x20 0x79 0x6F 0x75    // 'name you' \n\t0x20 0x67 0x61 0x76 0x65 0x20 0x62 0x65    // ' gave be' \n\t0x6C 0x6F 0x6E 0x67 0x73 0x20 0x74 0x6F    // 'longs to' \n\t0x20 0x61 0x20 0x73 0x70 0x65 0x63 0x69    // ' a speci' \n\t0x61 0x6C 0x20 0x66 0x69 0x6C 0x65 0x20    // 'al file ' \n\t0x74 0x68 0x61 0x74 0x20 0x79 0x6F 0x75    // 'that you' \n\t0x72 0x20 0x63 0x6F 0x6D 0x70 0x75 0x74    // 'r comput' \n\t0x65 0x72 0x20 0x6E 0x65 0x65 0x64 0x73    // 'er needs' \n\t0x20 0x74 0x6F 0x20 0x77 0x6F 0x72 0x6B    // ' to work' \n\t0x20 0x70 0x72 0x6F 0x70 0x65 0x72 0x6C    // ' properl' \n\t0x79 0x2E 0x20 0x49 0x74 0x20 0x69 0x73    // 'y. It is' \n\t0x20 0x75 0x73 0x65 0x64 0x20 0x6F 0x6E    // ' used on' \n\t0x6C 0x79 0x20 0x62 0x79 0x20 0x79 0x6F    // 'ly by yo' \n\t0x75 0x72 0x20 0x63 0x6F 0x6D 0x70 0x74    // 'ur compt' \n\t0x65 0x72 0x2E 0x0D 0x0A 0x0D 0x0A 0x54    // 'er.????T' \n\t0x72 0x79 0x20 0x74 0x79 0x70 0x69 0x6E    // 'ry typin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x6E 0x61    // 'g the na' \n\t0x6D 0x65 0x20 0x61 0x67 0x61 0x69 0x6E    // 'me again' \n\t0x2C 0x20 0x6F 0x72 0x20 0x74 0x79 0x70    // ', or typ' \n\t0x65 0x20 0x61 0x6E 0x6F 0x74 0x68 0x65    // 'e anothe' \n\t0x72 0x20 0x6E 0x61 0x6D 0x65 0x2E 0x20    // 'r name. ' \n\t0x0D 0x0A 0x0D 0x0A 0x01                   // '?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= ktpcercOomGdi\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"ercOomGdi\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"ercOomGdi\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercOomGdi\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x01 0x00 0xFC 0xFF 0x29 0x00 0x00 0x01    // '??)???' \n\t0x01 0x00 0x00 0x00 0x81 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0x83 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xBD 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xBF 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xC2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x0F 0x00 0x00 0xFD 0xC2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xC1 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xC2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x80    // '????'??' \n\t0x00 0x00 0x00 0x02 0x29 0x00 0x00 0x80    // '????)??' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0xBF 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xC1 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x68 0x6F 0x61 0x21 0x20    // '??Whoa! ' \n\t0x79 0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D    // 'your com' \n\t0x70 0x75 0x74 0x65 0x72 0x20 0x69 0x73    // 'puter is' \n\t0x20 0x6F 0x75 0x74 0x20 0x6F 0x66 0x20    // ' out of ' \n\t0x6D 0x65 0x6D 0x6F 0x72 0x79 0x21 0x0D    // 'memory!?' \n\t0x0A 0x0D 0x0A 0x54 0x6F 0x20 0x66 0x72    // '???To fr' \n\t0x65 0x65 0x20 0x73 0x6F 0x6D 0x65 0x20    // 'ee some ' \n\t0x6D 0x65 0x6D 0x6F 0x72 0x79 0x3A 0x0D    // 'memory:?' \n\t0x0A 0x2A 0x20 0x20 0x53 0x77 0x69 0x74    // '?*  Swit' \n\t0x63 0x68 0x20 0x74 0x6F 0x20 0x57 0x69    // 'ch to Wi' \n\t0x6E 0x64 0x6F 0x77 0x73 0x20 0x28 0x70    // 'ndows (p' \n\t0x72 0x65 0x73 0x73 0x20 0x43 0x54 0x52    // 'ress CTR' \n\t0x4C 0x2B 0x45 0x53 0x43 0x29 0x20 0x61    // 'L+ESC) a' \n\t0x6E 0x64 0x20 0x63 0x6C 0x6F 0x73 0x65    // 'nd close' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x20 0x70    // ' other p' \n\t0x72 0x6F 0x67 0x72 0x61 0x6D 0x73 0x2E    // 'rograms.' \n\t0x20 0x0D 0x0A 0x0D 0x0A 0x2A 0x20 0x20    // ' ????*  ' \n\t0x4F 0x72 0x2C 0x20 0x64 0x65 0x6C 0x65    // 'Or, dele' \n\t0x74 0x65 0x20 0x6F 0x6E 0x65 0x20 0x6F    // 'te one o' \n\t0x72 0x20 0x74 0x77 0x6F 0x20 0x61 0x63    // 'r two ac' \n\t0x74 0x6F 0x72 0x73 0x20 0x6F 0x72 0x20    // 'tors or ' \n\t0x70 0x72 0x6F 0x70 0x73 0x20 0x66 0x72    // 'props fr' \n\t0x6F 0x6D 0x20 0x79 0x6F 0x75 0x72 0x20    // 'om your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2E 0x20 0x0D    // 'movie. ?' \n\t0x0A 0x0D 0x0A 0x01                        // '????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1E= ktpcercDlgOom\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"ercDlgOom\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"ercDlgOom\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercDlgOom\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_14=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x01 0x00 0xFC 0xFF 0x29 0x00 0x00 0x01    // '??)???' \n\t0x01 0x00 0x00 0x00 0x81 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0x83 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xBD 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xBF 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xC2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x0F 0x00 0x00 0xFD 0xBF 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xC1 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xC2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x80    // '????'??' \n\t0x00 0x00 0x00 0x02 0x29 0x00 0x00 0x80    // '????)??' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0xBF 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xC1 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x68 0x6F 0x61 0x21 0x20    // '??Whoa! ' \n\t0x79 0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D    // 'your com' \n\t0x70 0x75 0x74 0x65 0x72 0x20 0x69 0x73    // 'puter is' \n\t0x20 0x6F 0x75 0x74 0x20 0x6F 0x66 0x20    // ' out of ' \n\t0x6D 0x65 0x6D 0x6F 0x72 0x79 0x21 0x0D    // 'memory!?' \n\t0x0A 0x0D 0x0A 0x54 0x6F 0x20 0x66 0x72    // '???To fr' \n\t0x65 0x65 0x20 0x73 0x6F 0x6D 0x65 0x20    // 'ee some ' \n\t0x6D 0x65 0x6D 0x6F 0x72 0x79 0x3A 0x0D    // 'memory:?' \n\t0x0A 0x2A 0x20 0x20 0x53 0x77 0x69 0x74    // '?*  Swit' \n\t0x63 0x68 0x20 0x74 0x6F 0x20 0x57 0x69    // 'ch to Wi' \n\t0x6E 0x64 0x6F 0x77 0x73 0x20 0x28 0x70    // 'ndows (p' \n\t0x72 0x65 0x73 0x73 0x20 0x43 0x54 0x52    // 'ress CTR' \n\t0x4C 0x2B 0x45 0x53 0x43 0x29 0x20 0x61    // 'L+ESC) a' \n\t0x6E 0x64 0x20 0x63 0x6C 0x6F 0x73 0x65    // 'nd close' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x20 0x70    // ' other p' \n\t0x72 0x6F 0x67 0x72 0x61 0x6D 0x73 0x2E    // 'rograms.' \n\t0x20 0x0D 0x0A 0x0D 0x0A 0x2A 0x20 0x20    // ' ????*  ' \n\t0x4F 0x72 0x2C 0x20 0x64 0x65 0x6C 0x65    // 'Or, dele' \n\t0x74 0x65 0x20 0x6F 0x6E 0x65 0x20 0x6F    // 'te one o' \n\t0x72 0x20 0x74 0x77 0x6F 0x20 0x61 0x63    // 'r two ac' \n\t0x74 0x6F 0x72 0x73 0x20 0x6F 0x72 0x20    // 'tors or ' \n\t0x70 0x72 0x6F 0x70 0x73 0x20 0x66 0x72    // 'props fr' \n\t0x6F 0x6D 0x20 0x79 0x6F 0x75 0x72 0x20    // 'om your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2E 0x20 0x0D    // 'movie. ?' \n\t0x0A 0x0D 0x0A 0x01                        // '????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1F= ktpcercCantSave\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"ercCantSave\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"ercCantSave\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_36=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercCantSave\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_36=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_36=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_36=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x44 0x00 0x00 0x01    // '????D???' \n\t0x01 0x00 0xFB 0xFF 0x46 0x00 0x00 0x01    // '??F???' \n\t0x01 0x00 0x00 0x00 0xB1 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFB 0xFF 0xB3 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x18 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0xFB 0xFF 0x1A 0x01 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x8F 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0xFB 0xFF 0x91 0x01 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xDB 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0xFB 0xFF 0xDD 0x01 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xDF 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x44 0x00 0x00 0x03    // '???D???' \n\t0x00 0x00 0x00 0x00 0xDE 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xDF 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x7A 0x00 0x00 0x80    // '????z??' \n\t0x00 0x00 0x02 0x00 0xDD 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x02 0xDE 0x01 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_36=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x75 0x65 0x20 0x74 0x6F    // '??Due to' \n\t0x20 0x74 0x65 0x63 0x68 0x6E 0x69 0x63    // ' technic' \n\t0x61 0x6C 0x20 0x64 0x69 0x66 0x66 0x69    // 'al diffi' \n\t0x63 0x75 0x6C 0x74 0x69 0x65 0x73 0x2C    // 'culties,' \n\t0x20 0x77 0x65 0x20 0x63 0x61 0x6E 0x27    // ' we can'' \n\t0x74 0x20 0x73 0x61 0x76 0x65 0x20 0x79    // 't save y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x72 0x69 0x67 0x68 0x74 0x20    // 'e right ' \n\t0x6E 0x6F 0x77 0x2E 0x0D 0x0A 0x0D 0x0A    // 'now.????' \n\t0x54 0x72 0x79 0x20 0x74 0x68 0x65 0x73    // 'Try thes' \n\t0x65 0x20 0x73 0x75 0x67 0x67 0x65 0x73    // 'e sugges' \n\t0x74 0x69 0x6F 0x6E 0x73 0x2C 0x20 0x61    // 'tions, a' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x6E 0x20    // 'nd then ' \n\t0x74 0x72 0x79 0x20 0x73 0x61 0x76 0x69    // 'try savi' \n\t0x6E 0x67 0x20 0x61 0x67 0x61 0x69 0x6E    // 'ng again' \n\t0x2E 0x20 0x0D 0x0A 0x2A 0x20 0x20 0x42    // '. ??*  B' \n\t0x65 0x20 0x73 0x75 0x72 0x65 0x20 0x79    // 'e sure y' \n\t0x6F 0x75 0x20 0x68 0x61 0x76 0x65 0x20    // 'ou have ' \n\t0x61 0x74 0x20 0x6C 0x65 0x61 0x73 0x74    // 'at least' \n\t0x20 0x6F 0x6E 0x65 0x20 0x73 0x63 0x65    // ' one sce' \n\t0x6E 0x65 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ne in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x2E 0x0D 0x0A 0x0D 0x0A 0x2A 0x20 0x20    // '.????*  ' \n\t0x59 0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D    // 'Your com' \n\t0x70 0x75 0x74 0x65 0x72 0x27 0x73 0x20    // 'puter's ' \n\t0x6D 0x65 0x6D 0x6F 0x72 0x79 0x20 0x6D    // 'memory m' \n\t0x61 0x79 0x20 0x62 0x65 0x20 0x6C 0x6F    // 'ay be lo' \n\t0x77 0x2E 0x20 0x53 0x77 0x69 0x74 0x63    // 'w. Switc' \n\t0x68 0x20 0x74 0x6F 0x20 0x57 0x69 0x6E    // 'h to Win' \n\t0x64 0x6F 0x77 0x73 0x20 0x28 0x70 0x72    // 'dows (pr' \n\t0x65 0x73 0x73 0x20 0x43 0x54 0x52 0x4C    // 'ess CTRL' \n\t0x2B 0x45 0x53 0x43 0x29 0x20 0x61 0x6E    // '+ESC) an' \n\t0x64 0x20 0x63 0x6C 0x6F 0x73 0x65 0x20    // 'd close ' \n\t0x6F 0x74 0x68 0x65 0x72 0x20 0x70 0x72    // 'other pr' \n\t0x6F 0x67 0x72 0x61 0x6D 0x73 0x2E 0x20    // 'ograms. ' \n\t0x0D 0x0A 0x0D 0x0A 0x2A 0x20 0x20 0x20    // '????*   ' \n\t0x59 0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D    // 'Your com' \n\t0x70 0x75 0x74 0x65 0x72 0x27 0x73 0x20    // 'puter's ' \n\t0x68 0x61 0x72 0x64 0x20 0x64 0x72 0x69    // 'hard dri' \n\t0x76 0x65 0x20 0x6D 0x61 0x79 0x20 0x62    // 've may b' \n\t0x65 0x20 0x66 0x75 0x6C 0x6C 0x2E 0x20    // 'e full. ' \n\t0x53 0x77 0x69 0x74 0x63 0x68 0x20 0x74    // 'Switch t' \n\t0x6F 0x20 0x57 0x69 0x6E 0x64 0x6F 0x77    // 'o Window' \n\t0x73 0x20 0x28 0x70 0x72 0x65 0x73 0x73    // 's (press' \n\t0x20 0x43 0x54 0x52 0x4C 0x2B 0x45 0x53    // ' CTRL+ES' \n\t0x43 0x29 0x20 0x61 0x6E 0x64 0x20 0x6D    // 'C) and m' \n\t0x6F 0x76 0x65 0x20 0x6F 0x72 0x20 0x64    // 'ove or d' \n\t0x65 0x6C 0x65 0x74 0x65 0x20 0x75 0x6E    // 'elete un' \n\t0x6E 0x63 0x65 0x73 0x73 0x61 0x72 0x79    // 'ncessary' \n\t0x20 0x66 0x69 0x6C 0x65 0x73 0x2E 0x0D    // ' files.?' \n\t0x0A 0x0D 0x0A 0x2A 0x20 0x20 0x49 0x66    // '???*  If' \n\t0x20 0x79 0x6F 0x75 0x27 0x72 0x65 0x20    // ' you're ' \n\t0x73 0x61 0x76 0x69 0x6E 0x67 0x20 0x74    // 'saving t' \n\t0x6F 0x20 0x61 0x20 0x66 0x6C 0x6F 0x70    // 'o a flop' \n\t0x70 0x79 0x20 0x64 0x69 0x73 0x6B 0x2C    // 'py disk,' \n\t0x20 0x62 0x65 0x20 0x73 0x75 0x72 0x65    // ' be sure' \n\t0x20 0x74 0x68 0x65 0x20 0x64 0x69 0x73    // ' the dis' \n\t0x6B 0x20 0x69 0x73 0x20 0x69 0x6E 0x20    // 'k is in ' \n\t0x74 0x68 0x65 0x20 0x64 0x72 0x69 0x76    // 'the driv' \n\t0x65 0x2E 0x20 0x0D 0x0A 0x0D 0x0A 0x20    // 'e. ???? ' \n\t0x01                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_25= ktpcercSocSaveFailure\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"ercSocSaveFailure\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"ercSocSaveFailure\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocSaveFailure\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_10=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA0 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xA2 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x2B 0x01 0x00 0x01    // '????+???' \n\t0x01 0x00 0xFC 0xFF 0x2D 0x01 0x00 0x01    // '??-???' \n\t0x01 0x00 0x00 0x00 0x96 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0x98 0x01 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xE4 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0xA0 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xE3 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xE4 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xBB 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x2D 0x01 0x00 0x80    // '????-??' \n\t0x00 0x00 0x02 0x00 0xE3 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xE3 0x01 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x2C 0x20    // '??Oops, ' \n\t0x77 0x65 0x20 0x63 0x61 0x6E 0x27 0x74    // 'we can't' \n\t0x20 0x73 0x61 0x76 0x65 0x20 0x79 0x6F    // ' save yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x72 0x69 0x67 0x68 0x74 0x20 0x6E    // ' right n' \n\t0x6F 0x77 0x2E 0x20 0x54 0x68 0x69 0x73    // 'ow. This' \n\t0x20 0x6D 0x61 0x79 0x20 0x6D 0x65 0x61    // ' may mea' \n\t0x6E 0x20 0x79 0x6F 0x75 0x20 0x64 0x6F    // 'n you do' \n\t0x6E 0x27 0x74 0x20 0x68 0x61 0x76 0x65    // 'n't have' \n\t0x20 0x70 0x65 0x72 0x6D 0x69 0x73 0x73    // ' permiss' \n\t0x69 0x6F 0x6E 0x20 0x74 0x6F 0x20 0x63    // 'ion to c' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x74 0x68    // 'hange th' \n\t0x69 0x73 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'is movie' \n\t0x2C 0x20 0x6F 0x72 0x20 0x74 0x68 0x61    // ', or tha' \n\t0x74 0x20 0x74 0x68 0x65 0x72 0x65 0x20    // 't there ' \n\t0x69 0x73 0x6E 0x27 0x74 0x20 0x65 0x6E    // 'isn't en' \n\t0x6F 0x75 0x67 0x68 0x20 0x6D 0x65 0x6D    // 'ough mem' \n\t0x6F 0x72 0x79 0x20 0x6F 0x72 0x20 0x73    // 'ory or s' \n\t0x70 0x61 0x63 0x65 0x20 0x74 0x6F 0x20    // 'pace to ' \n\t0x73 0x61 0x76 0x65 0x20 0x69 0x74 0x2E    // 'save it.' \n\t0x0D 0x0A 0x0D 0x0A 0x54 0x72 0x79 0x20    // '????Try ' \n\t0x74 0x68 0x65 0x73 0x65 0x20 0x73 0x75    // 'these su' \n\t0x67 0x67 0x65 0x73 0x74 0x69 0x6F 0x6E    // 'ggestion' \n\t0x73 0x2E 0x20 0x0D 0x0A 0x2A 0x20 0x20    // 's. ??*  ' \n\t0x49 0x66 0x20 0x74 0x68 0x65 0x20 0x6D    // 'If the m' \n\t0x6F 0x76 0x69 0x65 0x20 0x69 0x73 0x20    // 'ovie is ' \n\t0x22 0x52 0x65 0x61 0x64 0x20 0x4F 0x6E    // '\"Read On' \n\t0x6C 0x79 0x2C 0x22 0x20 0x20 0x63 0x6C    // 'ly,\"  cl' \n\t0x69 0x63 0x6B 0x20 0x50 0x6F 0x72 0x74    // 'ick Port' \n\t0x66 0x6F 0x6C 0x69 0x6F 0x2C 0x20 0x63    // 'folio, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x53 0x61 0x76    // 'lick Sav' \n\t0x65 0x20 0x41 0x73 0x2C 0x20 0x61 0x6E    // 'e As, an' \n\t0x64 0x20 0x74 0x68 0x65 0x6E 0x20 0x74    // 'd then t' \n\t0x79 0x70 0x65 0x20 0x61 0x20 0x64 0x69    // 'ype a di' \n\t0x66 0x66 0x65 0x72 0x65 0x6E 0x74 0x20    // 'fferent ' \n\t0x6E 0x61 0x6D 0x65 0x20 0x66 0x6F 0x72    // 'name for' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x2E 0x0D 0x0A 0x0D 0x0A 0x2A    // 'ie.????*' \n\t0x20 0x20 0x53 0x77 0x69 0x74 0x63 0x68    // '  Switch' \n\t0x20 0x74 0x6F 0x20 0x57 0x69 0x6E 0x64    // ' to Wind' \n\t0x6F 0x77 0x73 0x20 0x28 0x70 0x72 0x65    // 'ows (pre' \n\t0x73 0x73 0x20 0x43 0x54 0x52 0x4C 0x2B    // 'ss CTRL+' \n\t0x45 0x53 0x43 0x29 0x20 0x61 0x6E 0x64    // 'ESC) and' \n\t0x20 0x63 0x6C 0x6F 0x73 0x65 0x20 0x6F    // ' close o' \n\t0x74 0x68 0x65 0x72 0x20 0x70 0x72 0x6F    // 'ther pro' \n\t0x67 0x72 0x61 0x6D 0x73 0x2E 0x20 0x41    // 'grams. A' \n\t0x6C 0x73 0x6F 0x2C 0x20 0x6D 0x6F 0x76    // 'lso, mov' \n\t0x65 0x20 0x6F 0x72 0x20 0x64 0x65 0x6C    // 'e or del' \n\t0x65 0x74 0x65 0x20 0x75 0x6E 0x6E 0x65    // 'ete unne' \n\t0x63 0x65 0x73 0x73 0x61 0x72 0x79 0x20    // 'cessary ' \n\t0x66 0x69 0x6C 0x65 0x73 0x2E 0x0D 0x0A    // 'files.??' \n\t0x0D 0x0A 0x2A 0x20 0x20 0x49 0x66 0x20    // '??*  If ' \n\t0x79 0x6F 0x75 0x27 0x72 0x65 0x20 0x73    // 'you're s' \n\t0x61 0x76 0x69 0x6E 0x67 0x20 0x74 0x6F    // 'aving to' \n\t0x20 0x61 0x20 0x66 0x6C 0x6F 0x70 0x70    // ' a flopp' \n\t0x79 0x20 0x64 0x69 0x73 0x6B 0x2C 0x20    // 'y disk, ' \n\t0x62 0x65 0x20 0x73 0x75 0x72 0x65 0x20    // 'be sure ' \n\t0x74 0x68 0x65 0x20 0x64 0x69 0x73 0x6B    // 'the disk' \n\t0x20 0x69 0x73 0x20 0x69 0x6E 0x20 0x74    // ' is in t' \n\t0x68 0x65 0x20 0x64 0x72 0x69 0x76 0x65    // 'he drive' \n\t0x2E 0x20 0x20 0x0D 0x0A 0x01              // '.  ???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_27= ktpcercSocSceneSwitch\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"ercSocSceneSwitch\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"ercSocSceneSwitch\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocSceneSwitch\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0xFC 0xFF 0x21 0x00 0x00 0x01    // '??!???' \n\t0x01 0x00 0x00 0x00 0xBF 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xC1 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x2D 0x01 0x00 0x01    // '????-???' \n\t0x01 0x00 0xFC 0xFF 0x2F 0x01 0x00 0x01    // '??/???' \n\t0x01 0x00 0x00 0x00 0x8A 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x1D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x89 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x8A 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x5D 0x00 0x00 0x80    // '????]??' \n\t0x00 0x00 0x02 0x00 0xBF 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x2D 0x01 0x00 0x80    // '????-??' \n\t0x00 0x00 0x00 0x00 0x89 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x89 0x01 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x2C 0x20    // '??Oops, ' \n\t0x77 0x65 0x20 0x63 0x61 0x6E 0x27 0x74    // 'we can't' \n\t0x20 0x73 0x77 0x69 0x74 0x63 0x68 0x20    // ' switch ' \n\t0x73 0x63 0x65 0x6E 0x65 0x73 0x2E 0x0D    // 'scenes.?' \n\t0x0A 0x0D 0x0A 0x54 0x68 0x69 0x73 0x20    // '???This ' \n\t0x63 0x6F 0x75 0x6C 0x64 0x20 0x62 0x65    // 'could be' \n\t0x20 0x62 0x65 0x63 0x61 0x75 0x73 0x65    // ' because' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x63 0x6F    // ' your co' \n\t0x6D 0x70 0x75 0x74 0x65 0x72 0x27 0x73    // 'mputer's' \n\t0x20 0x68 0x61 0x72 0x64 0x20 0x64 0x72    // ' hard dr' \n\t0x69 0x76 0x65 0x20 0x69 0x73 0x20 0x66    // 'ive is f' \n\t0x75 0x6C 0x6C 0x2E 0x20 0x0D 0x0A 0x2A    // 'ull. ??*' \n\t0x20 0x20 0x53 0x77 0x69 0x74 0x63 0x68    // '  Switch' \n\t0x20 0x74 0x6F 0x20 0x57 0x69 0x6E 0x64    // ' to Wind' \n\t0x6F 0x77 0x73 0x20 0x28 0x70 0x72 0x65    // 'ows (pre' \n\t0x73 0x73 0x20 0x43 0x54 0x52 0x4C 0x2B    // 'ss CTRL+' \n\t0x45 0x53 0x43 0x29 0x20 0x61 0x6E 0x64    // 'ESC) and' \n\t0x20 0x64 0x65 0x6C 0x65 0x74 0x65 0x20    // ' delete ' \n\t0x75 0x6E 0x6E 0x63 0x65 0x73 0x73 0x61    // 'unncessa' \n\t0x72 0x79 0x20 0x66 0x69 0x6C 0x65 0x73    // 'ry files' \n\t0x20 0x6F 0x72 0x20 0x6D 0x6F 0x76 0x65    // ' or move' \n\t0x20 0x74 0x68 0x65 0x6D 0x20 0x74 0x6F    // ' them to' \n\t0x20 0x66 0x6C 0x6F 0x70 0x70 0x79 0x20    // ' floppy ' \n\t0x64 0x69 0x73 0x6B 0x2E 0x20 0x20 0x0D    // 'disk.  ?' \n\t0x0A 0x0D 0x0A 0x4F 0x72 0x2C 0x20 0x6D    // '???Or, m' \n\t0x61 0x79 0x62 0x65 0x20 0x79 0x6F 0x75    // 'aybe you' \n\t0x72 0x20 0x63 0x6F 0x6D 0x70 0x75 0x74    // 'r comput' \n\t0x65 0x72 0x20 0x69 0x73 0x20 0x6C 0x6F    // 'er is lo' \n\t0x77 0x20 0x6F 0x6E 0x20 0x6D 0x65 0x6D    // 'w on mem' \n\t0x6F 0x72 0x79 0x2E 0x0D 0x0A 0x2A 0x20    // 'ory.??* ' \n\t0x20 0x53 0x77 0x69 0x74 0x63 0x68 0x20    // ' Switch ' \n\t0x74 0x6F 0x20 0x57 0x69 0x6E 0x64 0x6F    // 'to Windo' \n\t0x77 0x73 0x20 0x28 0x70 0x72 0x65 0x73    // 'ws (pres' \n\t0x73 0x20 0x43 0x54 0x52 0x4C 0x2B 0x45    // 's CTRL+E' \n\t0x53 0x43 0x29 0x20 0x61 0x6E 0x64 0x20    // 'SC) and ' \n\t0x63 0x6C 0x6F 0x73 0x65 0x20 0x6F 0x74    // 'close ot' \n\t0x68 0x65 0x72 0x20 0x70 0x72 0x6F 0x67    // 'her prog' \n\t0x72 0x61 0x6D 0x73 0x2E 0x0D 0x0A 0x0D    // 'rams.???' \n\t0x0A 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // '?When yo' \n\t0x75 0x20 0x66 0x69 0x6E 0x69 0x73 0x68    // 'u finish' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x33 0x44 0x20 0x4D 0x6F 0x76 0x69 0x65    // '3D Movie' \n\t0x20 0x4D 0x61 0x6B 0x65 0x72 0x20 0x6F    // ' Maker o' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x54 0x61    // 'n the Ta' \n\t0x73 0x6B 0x20 0x42 0x61 0x72 0x20 0x61    // 'sk Bar a' \n\t0x6E 0x64 0x20 0x74 0x72 0x79 0x20 0x73    // 'nd try s' \n\t0x77 0x69 0x74 0x63 0x68 0x69 0x6E 0x67    // 'witching' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x73 0x20    // ' scenes ' \n\t0x61 0x67 0x61 0x69 0x6E 0x2E 0x20 0x0D    // 'again. ?' \n\t0x0A 0x0D 0x0A 0x01                        // '????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_28= ktpcercSocSceneChop\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"ercSocSceneChop\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"ercSocSceneChop\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocSceneChop\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x01 0x00 0xFC 0xFF 0x2D 0x00 0x00 0x01    // '??-???' \n\t0x01 0x00 0x00 0x00 0xA7 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xA9 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x15 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0xFC 0xFF 0x17 0x01 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x73 0x01 0x00 0x01    // '????s???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x29 0x00 0x00 0x03    // '???)???' \n\t0x00 0x00 0x00 0x00 0x72 0x01 0x00 0x40    // '????r??@' \n\t0x02 0x00 0x00 0x00 0x73 0x01 0x00 0x40    // '????s??@' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x80    // '????Y??' \n\t0x00 0x00 0x02 0x00 0xA7 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xD4 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x15 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x00 0x72 0x01 0x00 0x80    // '????r??' \n\t0x00 0x00 0x00 0x02 0x72 0x01 0x00 0xC0    // '????r??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x2C 0x20    // '??Oops, ' \n\t0x77 0x65 0x20 0x63 0x61 0x6E 0x27 0x74    // 'we can't' \n\t0x20 0x63 0x68 0x6F 0x70 0x20 0x74 0x68    // ' chop th' \n\t0x69 0x73 0x20 0x73 0x63 0x65 0x6E 0x65    // 'is scene' \n\t0x20 0x72 0x69 0x67 0x68 0x74 0x20 0x6E    // ' right n' \n\t0x6F 0x77 0x2E 0x0D 0x0A 0x0D 0x0A 0x4D    // 'ow.????M' \n\t0x61 0x79 0x62 0x65 0x20 0x79 0x6F 0x75    // 'aybe you' \n\t0x72 0x20 0x63 0x6F 0x6D 0x70 0x75 0x74    // 'r comput' \n\t0x65 0x72 0x27 0x73 0x20 0x68 0x61 0x72    // 'er's har' \n\t0x64 0x20 0x64 0x72 0x69 0x76 0x65 0x20    // 'd drive ' \n\t0x69 0x73 0x20 0x66 0x75 0x6C 0x6C 0x2E    // 'is full.' \n\t0x20 0x0D 0x0A 0x2A 0x20 0x20 0x53 0x77    // ' ??*  Sw' \n\t0x69 0x74 0x63 0x68 0x20 0x74 0x6F 0x20    // 'itch to ' \n\t0x57 0x69 0x6E 0x64 0x6F 0x77 0x73 0x20    // 'Windows ' \n\t0x28 0x70 0x72 0x65 0x73 0x73 0x20 0x43    // '(press C' \n\t0x54 0x52 0x4C 0x2B 0x45 0x53 0x43 0x29    // 'TRL+ESC)' \n\t0x20 0x61 0x6E 0x64 0x20 0x6D 0x6F 0x76    // ' and mov' \n\t0x65 0x20 0x6F 0x72 0x20 0x64 0x65 0x6C    // 'e or del' \n\t0x65 0x74 0x65 0x20 0x75 0x6E 0x6E 0x65    // 'ete unne' \n\t0x63 0x65 0x73 0x73 0x61 0x72 0x79 0x20    // 'cessary ' \n\t0x66 0x69 0x6C 0x65 0x73 0x2E 0x20 0x0D    // 'files. ?' \n\t0x0A 0x0D 0x0A 0x4F 0x72 0x2C 0x20 0x6D    // '???Or, m' \n\t0x61 0x79 0x62 0x65 0x20 0x79 0x6F 0x75    // 'aybe you' \n\t0x72 0x20 0x63 0x6F 0x6D 0x70 0x75 0x74    // 'r comput' \n\t0x65 0x72 0x20 0x69 0x73 0x20 0x6C 0x6F    // 'er is lo' \n\t0x77 0x20 0x6F 0x6E 0x20 0x6D 0x65 0x6D    // 'w on mem' \n\t0x6F 0x72 0x79 0x2E 0x0D 0x0A 0x2A 0x20    // 'ory.??* ' \n\t0x20 0x53 0x77 0x69 0x74 0x63 0x68 0x20    // ' Switch ' \n\t0x74 0x6F 0x20 0x57 0x69 0x6E 0x64 0x6F    // 'to Windo' \n\t0x77 0x73 0x20 0x28 0x70 0x72 0x65 0x73    // 'ws (pres' \n\t0x73 0x20 0x43 0x54 0x52 0x4C 0x2B 0x45    // 's CTRL+E' \n\t0x53 0x43 0x29 0x20 0x61 0x6E 0x64 0x20    // 'SC) and ' \n\t0x63 0x6C 0x6F 0x73 0x65 0x20 0x6F 0x74    // 'close ot' \n\t0x68 0x65 0x72 0x20 0x70 0x72 0x6F 0x67    // 'her prog' \n\t0x72 0x61 0x6D 0x73 0x2E 0x0D 0x0A 0x0D    // 'rams.???' \n\t0x0A 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // '?When yo' \n\t0x75 0x20 0x66 0x69 0x6E 0x69 0x73 0x68    // 'u finish' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x33 0x44 0x20 0x4D 0x6F 0x76 0x69 0x65    // '3D Movie' \n\t0x20 0x4D 0x61 0x6B 0x65 0x72 0x20 0x6F    // ' Maker o' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x54 0x61    // 'n the Ta' \n\t0x73 0x6B 0x20 0x42 0x61 0x72 0x20 0x61    // 'sk Bar a' \n\t0x6E 0x64 0x20 0x74 0x72 0x79 0x20 0x63    // 'nd try c' \n\t0x68 0x6F 0x70 0x70 0x69 0x6E 0x67 0x20    // 'hopping ' \n\t0x74 0x68 0x65 0x20 0x73 0x63 0x65 0x6E    // 'the scen' \n\t0x65 0x20 0x61 0x67 0x61 0x69 0x6E 0x2E    // 'e again.' \n\t0x0D 0x0A 0x0D 0x0A 0x01                   // '?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_29= ktpcercSocBadFile\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"ercSocBadFile\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"ercSocBadFile\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_34=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocBadFile\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_34=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_34=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_34=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x01 0x00 0xFC 0xFF 0x37 0x00 0x00 0x01    // '??7???' \n\t0x01 0x00 0x00 0x00 0xA6 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xA8 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xD2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00 0xD1 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xD2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xCF 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xD1 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_34=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x72 0x72 0x79 0x2E    // '??Sorry.' \n\t0x20 0x57 0x65 0x20 0x74 0x72 0x69 0x65    // ' We trie' \n\t0x64 0x2C 0x20 0x62 0x75 0x74 0x20 0x77    // 'd, but w' \n\t0x65 0x20 0x63 0x61 0x6E 0x27 0x74 0x20    // 'e can't ' \n\t0x75 0x73 0x65 0x20 0x74 0x68 0x69 0x73    // 'use this' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x66    // ' movie f' \n\t0x69 0x6C 0x65 0x2E 0x20 0x0D 0x0A 0x0D    // 'ile. ???' \n\t0x0A 0x49 0x74 0x20 0x63 0x6F 0x75 0x6C    // '?It coul' \n\t0x64 0x20 0x62 0x65 0x20 0x74 0x68 0x61    // 'd be tha' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x66 0x69    // 't the fi' \n\t0x6C 0x65 0x20 0x79 0x6F 0x75 0x20 0x63    // 'le you c' \n\t0x68 0x6F 0x73 0x65 0x20 0x69 0x73 0x20    // 'hose is ' \n\t0x62 0x72 0x6F 0x6B 0x65 0x6E 0x2C 0x20    // 'broken, ' \n\t0x6F 0x72 0x20 0x69 0x73 0x20 0x6E 0x6F    // 'or is no' \n\t0x74 0x20 0x61 0x20 0x6D 0x6F 0x76 0x69    // 't a movi' \n\t0x65 0x20 0x66 0x69 0x6C 0x65 0x2C 0x20    // 'e file, ' \n\t0x6F 0x72 0x20 0x69 0x74 0x20 0x64 0x6F    // 'or it do' \n\t0x65 0x73 0x6E 0x27 0x74 0x20 0x68 0x61    // 'esn't ha' \n\t0x76 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 've sound' \n\t0x73 0x20 0x77 0x65 0x20 0x63 0x61 0x6E    // 's we can' \n\t0x20 0x63 0x6F 0x70 0x79 0x2E 0x0D 0x0A    // ' copy.??' \n\t0x0D 0x0A 0x54 0x72 0x79 0x20 0x75 0x73    // '??Try us' \n\t0x69 0x6E 0x67 0x20 0x61 0x6E 0x6F 0x74    // 'ing anot' \n\t0x68 0x65 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'her movi' \n\t0x65 0x20 0x66 0x69 0x6C 0x65 0x20 0x69    // 'e file i' \n\t0x6E 0x73 0x74 0x65 0x61 0x64 0x2E 0x0D    // 'nstead.?' \n\t0x0A 0x0D 0x0A 0x01                        // '????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2A= ktpcercSocNoTboxSelected\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"ercSocNoTboxSelected\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"ercSocNoTboxSelected\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNoTboxSelected\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x01    // '????X???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x55 0x00 0x00 0x03    // '???U???' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0x40    // '????W??@' \n\t0x02 0x00 0x00 0x00 0x58 0x00 0x00 0x40    // '????X??@' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0x80    // '????W??' \n\t0x00 0x00 0x00 0x02 0x57 0x00 0x00 0xC0    // '????W??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x03 0x03 0x59 0x6F 0x21 0x20 0x20 0x49    // '??Yo!  I' \n\t0x66 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'f you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x6D 0x61    // 'nt to ma' \n\t0x6B 0x65 0x20 0x63 0x68 0x61 0x6E 0x67    // 'ke chang' \n\t0x65 0x73 0x20 0x74 0x6F 0x20 0x74 0x65    // 'es to te' \n\t0x78 0x74 0x20 0x69 0x6E 0x20 0x61 0x20    // 'xt in a ' \n\t0x74 0x65 0x78 0x74 0x20 0x62 0x6F 0x78    // 'text box' \n\t0x2C 0x20 0x79 0x6F 0x75 0x20 0x68 0x61    // ', you ha' \n\t0x76 0x65 0x20 0x74 0x6F 0x20 0x63 0x6C    // 've to cl' \n\t0x69 0x63 0x6B 0x20 0x69 0x74 0x20 0x66    // 'ick it f' \n\t0x69 0x72 0x73 0x74 0x2E 0x0D 0x0A 0x0D    // 'irst.???' \n\t0x0A 0x01                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2B= ktpcercSocNoActrSelected\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"ercSocNoActrSelected\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"ercSocNoActrSelected\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNoActrSelected\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_11=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x01    // '????E???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x40 0x00 0x00 0x03    // '???@???' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0x40    // '????D??@' \n\t0x02 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x80    // '????B??' \n\t0x00 0x00 0x00 0x02 0x44 0x00 0x00 0xC0    // '????D??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x64 0x6F 0x20    // '??To do ' \n\t0x74 0x68 0x69 0x73 0x2C 0x20 0x79 0x6F    // 'this, yo' \n\t0x75 0x20 0x6E 0x65 0x65 0x64 0x20 0x74    // 'u need t' \n\t0x6F 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // 'o click ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C 0x20    // ', prop, ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x77 0x6F    // 'or 3D wo' \n\t0x72 0x64 0x20 0x66 0x69 0x72 0x73 0x74    // 'rd first' \n\t0x2E 0x20 0x0D 0x0A 0x0D 0x0A 0x01         // '. ?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2C= ktpcercSocNotUndoable\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"ercSocNotUndoable\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"ercSocNotUndoable\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNotUndoable\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x19 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x54 0x00 0x00 0x01    // '????T???' \n\t0x01 0x00 0xFC 0xFF 0x56 0x00 0x00 0x01    // '??V???' \n\t0x01 0x00 0x00 0x00 0x89 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x8A 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x8E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x8F 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x90 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x91 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x93 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0x95 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xFC 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xFE 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x01 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x52 0x00 0x00 0x03    // '???R???' \n\t0x00 0x00 0x00 0x00 0x8A 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x8E 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x8F 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x90 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x01 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0xBD 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0xFE 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x00 0x01 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x68 0x65 0x77 0x21 0x20    // '??Shew! ' \n\t0x20 0x53 0x69 0x6E 0x63 0x65 0x20 0x73    // ' Since s' \n\t0x70 0x61 0x63 0x65 0x20 0x61 0x72 0x6F    // 'pace aro' \n\t0x75 0x6E 0x64 0x20 0x68 0x65 0x72 0x65    // 'und here' \n\t0x20 0x69 0x73 0x20 0x67 0x65 0x74 0x74    // ' is gett' \n\t0x69 0x6E 0x67 0x20 0x74 0x69 0x67 0x68    // 'ing tigh' \n\t0x74 0x2C 0x20 0x77 0x65 0x20 0x77 0x69    // 't, we wi' \n\t0x6C 0x6C 0x20 0x6E 0x6F 0x74 0x20 0x62    // 'll not b' \n\t0x65 0x20 0x61 0x62 0x6C 0x65 0x20 0x74    // 'e able t' \n\t0x6F 0x20 0x75 0x6E 0x64 0x6F 0x20 0x74    // 'o undo t' \n\t0x68 0x69 0x73 0x2E 0x0D 0x0A 0x0D 0x0A    // 'his.????' \n\t0x4A 0x75 0x73 0x74 0x20 0x74 0x6F 0x20    // 'Just to ' \n\t0x62 0x65 0x20 0x73 0x61 0x66 0x65 0x2C    // 'be safe,' \n\t0x20 0x73 0x61 0x76 0x65 0x20 0x79 0x6F    // ' save yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x6E 0x6F 0x77 0x2E 0x0D 0x0A 0x2A    // ' now.??*' \n\t0x20 0x20 0x48 0x6F 0x6C 0x64 0x20 0x64    // '  Hold d' \n\t0x6F 0x77 0x6E 0x20 0x43 0x74 0x72 0x6C    // 'own Ctrl' \n\t0x2B 0x53 0x2E 0x0D 0x0A 0x0D 0x0A 0x54    // '+S.????T' \n\t0x68 0x65 0x6E 0x20 0x66 0x72 0x65 0x65    // 'hen free' \n\t0x20 0x73 0x6F 0x6D 0x65 0x20 0x73 0x70    // ' some sp' \n\t0x61 0x63 0x65 0x20 0x6F 0x6E 0x20 0x79    // 'ace on y' \n\t0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D 0x70    // 'our comp' \n\t0x75 0x74 0x65 0x72 0x2E 0x0D 0x0A 0x2A    // 'uter.??*' \n\t0x20 0x20 0x53 0x77 0x69 0x74 0x63 0x68    // '  Switch' \n\t0x20 0x74 0x6F 0x20 0x57 0x69 0x6E 0x64    // ' to Wind' \n\t0x6F 0x77 0x73 0x20 0x28 0x70 0x72 0x65    // 'ows (pre' \n\t0x73 0x73 0x20 0x43 0x54 0x52 0x4C 0x2B    // 'ss CTRL+' \n\t0x45 0x53 0x43 0x29 0x20 0x61 0x6E 0x64    // 'ESC) and' \n\t0x20 0x63 0x6C 0x6F 0x73 0x65 0x20 0x6F    // ' close o' \n\t0x74 0x68 0x65 0x72 0x20 0x70 0x72 0x6F    // 'ther pro' \n\t0x67 0x72 0x61 0x6D 0x73 0x2E 0x0D 0x0A    // 'grams.??' \n\t0x0D 0x0A 0x01                             // '???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2D= ktpcercSocNoScene\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"ercSocNoScene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"ercSocNoScene\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_30=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNoScene\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_30=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_30=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_30=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x01    // '????9???' \n\t0x01 0x00 0xFC 0xFF 0x3B 0x00 0x00 0x01    // '??;???' \n\t0x01 0x00 0x00 0x00 0x91 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0x93 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x94 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x37 0x00 0x00 0x03    // '???7???' \n\t0x00 0x00 0x00 0x00 0x93 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x94 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x80    // '????K??' \n\t0x00 0x00 0x02 0x00 0x91 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x93 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_30=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x68 0x6F 0x61 0x21 0x20    // '??Whoa! ' \n\t0x42 0x65 0x66 0x6F 0x72 0x65 0x20 0x79    // 'Before y' \n\t0x6F 0x75 0x20 0x63 0x61 0x6E 0x20 0x64    // 'ou can d' \n\t0x6F 0x20 0x74 0x68 0x61 0x74 0x2C 0x20    // 'o that, ' \n\t0x79 0x6F 0x75 0x20 0x6E 0x65 0x65 0x64    // 'you need' \n\t0x20 0x74 0x6F 0x20 0x61 0x64 0x64 0x20    // ' to add ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65 0x2E    // 'a scene.' \n\t0x20 0x0D 0x0A 0x0D 0x0A 0x54 0x6F 0x20    // ' ????To ' \n\t0x61 0x64 0x64 0x20 0x61 0x20 0x73 0x63    // 'add a sc' \n\t0x65 0x6E 0x65 0x0D 0x0A 0x31 0x20 0x20    // 'ene??1  ' \n\t0x49 0x6E 0x20 0x74 0x68 0x65 0x20 0x53    // 'In the S' \n\t0x74 0x75 0x64 0x69 0x6F 0x2C 0x20 0x63    // 'tudio, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x53 0x63 0x65    // 'lick Sce' \n\t0x6E 0x65 0x20 0x43 0x68 0x6F 0x69 0x63    // 'ne Choic' \n\t0x65 0x73 0x2E 0x0D 0x0A 0x32 0x20 0x20    // 'es.??2  ' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x73 0x63 0x65 0x6E 0x65 0x20    // 'e scene ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x2E 0x0D 0x0A 0x0D 0x0A 0x01              // '.?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2E= ktpcercSocBadVersion\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"ercSocBadVersion\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"ercSocBadVersion\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocBadVersion\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x61 0x00 0x00 0x01    // '????a???' \n\t0x01 0x00 0xFC 0xFF 0x63 0x00 0x00 0x01    // '??c???' \n\t0x01 0x00 0x00 0x00 0xB9 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xBC 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xBF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x5F 0x00 0x00 0x03    // '???_???' \n\t0x00 0x00 0x00 0x00 0xBE 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xBF 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xBC 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xBE 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x65 0x20 0x74 0x72 0x69    // '??We tri' \n\t0x65 0x64 0x2C 0x20 0x62 0x75 0x74 0x20    // 'ed, but ' \n\t0x77 0x65 0x20 0x63 0x6F 0x75 0x6C 0x64    // 'we could' \n\t0x6E 0x27 0x74 0x20 0x6F 0x70 0x65 0x6E    // 'n't open' \n\t0x20 0x74 0x68 0x69 0x73 0x20 0x6D 0x6F    // ' this mo' \n\t0x76 0x69 0x65 0x2E 0x20 0x49 0x74 0x20    // 'vie. It ' \n\t0x77 0x61 0x73 0x20 0x63 0x72 0x65 0x61    // 'was crea' \n\t0x74 0x65 0x64 0x20 0x62 0x79 0x20 0x61    // 'ted by a' \n\t0x20 0x6E 0x65 0x77 0x65 0x72 0x20 0x76    // ' newer v' \n\t0x65 0x72 0x73 0x69 0x6F 0x6E 0x20 0x6F    // 'ersion o' \n\t0x66 0x20 0x33 0x44 0x20 0x4D 0x6F 0x76    // 'f 3D Mov' \n\t0x69 0x65 0x20 0x4D 0x61 0x6B 0x65 0x72    // 'ie Maker' \n\t0x2E 0x0D 0x0A 0x0D 0x0A 0x54 0x6F 0x20    // '.????To ' \n\t0x70 0x6C 0x61 0x79 0x20 0x74 0x68 0x69    // 'play thi' \n\t0x73 0x20 0x6D 0x6F 0x76 0x69 0x65 0x2C    // 's movie,' \n\t0x20 0x75 0x73 0x65 0x20 0x74 0x68 0x65    // ' use the' \n\t0x20 0x20 0x76 0x65 0x72 0x73 0x69 0x6F    // '  versio' \n\t0x6E 0x20 0x6F 0x66 0x20 0x33 0x44 0x20    // 'n of 3D ' \n\t0x4D 0x6F 0x76 0x69 0x65 0x20 0x4D 0x61    // 'Movie Ma' \n\t0x6B 0x65 0x72 0x20 0x69 0x6E 0x20 0x77    // 'ker in w' \n\t0x68 0x69 0x63 0x68 0x20 0x74 0x68 0x65    // 'hich the' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x77    // ' movie w' \n\t0x61 0x73 0x20 0x63 0x72 0x65 0x61 0x74    // 'as creat' \n\t0x65 0x64 0x2E 0x20 0x0D 0x0A 0x0D 0x0A    // 'ed. ????' \n\t0x01                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2F= ktpcercSocNothingToPaste\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"ercSocNothingToPaste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"ercSocNothingToPaste\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNothingToPaste\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x01 0x00 0xFC 0xFF 0x25 0x00 0x00 0x01    // '??%???' \n\t0x01 0x00 0x00 0x00 0xBB 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xBF 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xC0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x21 0x00 0x00 0x03    // '???!???' \n\t0x00 0x00 0x00 0x00 0xBD 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xBF 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xC0 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xBD 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xBF 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xBF 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x2C 0x20    // '??Oops, ' \n\t0x74 0x68 0x65 0x72 0x65 0x27 0x73 0x20    // 'there's ' \n\t0x6E 0x6F 0x74 0x68 0x69 0x6E 0x67 0x20    // 'nothing ' \n\t0x74 0x6F 0x20 0x70 0x61 0x73 0x74 0x65    // 'to paste' \n\t0x2E 0x2E 0x2E 0x0D 0x0A 0x0D 0x0A 0x54    // '...????T' \n\t0x72 0x79 0x20 0x67 0x6F 0x69 0x6E 0x67    // 'ry going' \n\t0x20 0x62 0x61 0x63 0x6B 0x20 0x61 0x20    // ' back a ' \n\t0x66 0x72 0x61 0x6D 0x65 0x20 0x6F 0x72    // 'frame or' \n\t0x20 0x73 0x6F 0x20 0x69 0x6E 0x20 0x74    // ' so in t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'he movie' \n\t0x2E 0x20 0x54 0x68 0x65 0x6E 0x20 0x75    // '. Then u' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x43    // 'se the C' \n\t0x6F 0x70 0x79 0x20 0x50 0x61 0x74 0x68    // 'opy Path' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x20 0x28 0x63    // ' Tool (c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x43 0x75 0x74 0x2C 0x20 0x43 0x6F    // ' Cut, Co' \n\t0x70 0x79 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'py, and ' \n\t0x50 0x61 0x73 0x74 0x65 0x20 0x54 0x6F    // 'Paste To' \n\t0x6F 0x6C 0x73 0x29 0x20 0x74 0x6F 0x20    // 'ols) to ' \n\t0x63 0x6F 0x70 0x79 0x20 0x74 0x68 0x65    // 'copy the' \n\t0x20 0x70 0x61 0x74 0x68 0x20 0x6F 0x66    // ' path of' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x20 0x6F 0x72 0x20 0x77 0x6F    // 'or or wo' \n\t0x72 0x64 0x2E 0x20 0x20 0x0D 0x0A 0x0D    // 'rd.  ???' \n\t0x0A 0x01                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_30= ktpcercSocBadFrameSlider\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"ercSocBadFrameSlider\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"ercSocBadFrameSlider\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_22=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocBadFrameSlider\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_22=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_22=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_22=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x60 0x00 0x00 0x01    // '????`???' \n\t0x01 0x00 0xFC 0xFF 0x62 0x00 0x00 0x01    // '??b???' \n\t0x01 0x00 0x00 0x00 0xB3 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xB5 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xB6 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x5E 0x00 0x00 0x03    // '???^???' \n\t0x00 0x00 0x00 0x00 0xB5 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xB6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x80    // '????r??' \n\t0x00 0x00 0x02 0x00 0xB3 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xB5 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_22=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x72 0x72 0x79 0x2C    // '??Sorry,' \n\t0x20 0x74 0x68 0x65 0x20 0x66 0x72 0x61    // ' the fra' \n\t0x6D 0x65 0x20 0x73 0x6C 0x69 0x64 0x65    // 'me slide' \n\t0x72 0x20 0x63 0x61 0x6E 0x27 0x74 0x20    // 'r can't ' \n\t0x73 0x68 0x6F 0x77 0x20 0x74 0x68 0x65    // 'show the' \n\t0x20 0x72 0x65 0x61 0x6C 0x20 0x6C 0x65    // ' real le' \n\t0x6E 0x67 0x74 0x68 0x20 0x6F 0x66 0x20    // 'ngth of ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x62 0x65 0x63 0x61 0x75    // 'ie becau' \n\t0x73 0x65 0x20 0x6D 0x65 0x6D 0x6F 0x72    // 'se memor' \n\t0x79 0x20 0x69 0x73 0x20 0x72 0x65 0x61    // 'y is rea' \n\t0x6C 0x6C 0x79 0x20 0x6C 0x6F 0x77 0x21    // 'lly low!' \n\t0x0D 0x0A 0x0D 0x0A 0x54 0x6F 0x20 0x66    // '????To f' \n\t0x72 0x65 0x65 0x20 0x6D 0x65 0x6D 0x6F    // 'ree memo' \n\t0x72 0x79 0x0D 0x0A 0x2A 0x20 0x20 0x53    // 'ry??*  S' \n\t0x77 0x69 0x74 0x63 0x68 0x20 0x74 0x6F    // 'witch to' \n\t0x20 0x57 0x69 0x6E 0x64 0x6F 0x77 0x73    // ' Windows' \n\t0x20 0x28 0x70 0x72 0x65 0x73 0x73 0x20    // ' (press ' \n\t0x43 0x54 0x52 0x4C 0x2B 0x45 0x53 0x43    // 'CTRL+ESC' \n\t0x29 0x20 0x61 0x6E 0x64 0x20 0x63 0x6C    // ') and cl' \n\t0x6F 0x73 0x65 0x20 0x6F 0x74 0x68 0x65    // 'ose othe' \n\t0x72 0x20 0x70 0x72 0x6F 0x67 0x72 0x61    // 'r progra' \n\t0x6D 0x73 0x2E 0x0D 0x0A 0x0D 0x0A 0x01    // 'ms.?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_31= ktpcercSocGotoFrameFailure\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"ercSocGotoFrameFailure\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"ercSocGotoFrameFailure\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocGotoFrameFailure\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_16=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2E 0x00 0x00 0x01    // '????.???' \n\t0x01 0x00 0xFC 0xFF 0x30 0x00 0x00 0x01    // '??0???' \n\t0x01 0x00 0x00 0x00 0xA7 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xA9 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x15 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0xFC 0xFF 0x17 0x01 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x64 0x01 0x00 0x01    // '????d???' \n\t0x01 0x00 0xFC 0xFF 0x66 0x01 0x00 0x01    // '??f???' \n\t0x01 0x00 0x00 0x00 0x69 0x01 0x00 0x01    // '????i???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x00 0x00 0x00 0x00 0x68 0x01 0x00 0x40    // '????h??@' \n\t0x02 0x00 0x00 0x00 0x69 0x01 0x00 0x40    // '????i??@' \n\t0x00 0x00 0x00 0x00 0x5A 0x00 0x00 0x80    // '????Z??' \n\t0x00 0x00 0x02 0x00 0xA7 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xD4 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x15 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x00 0x66 0x01 0x00 0x80    // '????f??' \n\t0x00 0x00 0x00 0x02 0x68 0x01 0x00 0xC0    // '????h??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x72 0x72 0x79 0x2C    // '??Sorry,' \n\t0x20 0x77 0x65 0x20 0x63 0x61 0x6E 0x27    // ' we can'' \n\t0x74 0x20 0x67 0x6F 0x20 0x74 0x6F 0x20    // 't go to ' \n\t0x74 0x68 0x61 0x74 0x20 0x66 0x72 0x61    // 'that fra' \n\t0x6D 0x65 0x20 0x72 0x69 0x67 0x68 0x74    // 'me right' \n\t0x20 0x6E 0x6F 0x77 0x2E 0x20 0x0D 0x0A    // ' now. ??' \n\t0x0D 0x0A 0x59 0x6F 0x75 0x72 0x20 0x63    // '??Your c' \n\t0x6F 0x6D 0x70 0x75 0x74 0x65 0x72 0x27    // 'omputer'' \n\t0x73 0x20 0x68 0x61 0x72 0x64 0x20 0x64    // 's hard d' \n\t0x72 0x69 0x76 0x65 0x20 0x6D 0x61 0x79    // 'rive may' \n\t0x20 0x62 0x65 0x20 0x66 0x75 0x6C 0x6C    // ' be full' \n\t0x2E 0x20 0x0D 0x0A 0x2A 0x20 0x20 0x53    // '. ??*  S' \n\t0x77 0x69 0x74 0x63 0x68 0x20 0x74 0x6F    // 'witch to' \n\t0x20 0x57 0x69 0x6E 0x64 0x6F 0x77 0x73    // ' Windows' \n\t0x20 0x28 0x70 0x72 0x65 0x73 0x73 0x20    // ' (press ' \n\t0x43 0x54 0x52 0x4C 0x2B 0x45 0x53 0x43    // 'CTRL+ESC' \n\t0x29 0x20 0x61 0x6E 0x64 0x20 0x6D 0x6F    // ') and mo' \n\t0x76 0x65 0x20 0x6F 0x72 0x20 0x64 0x65    // 've or de' \n\t0x6C 0x65 0x74 0x65 0x20 0x75 0x6E 0x6E    // 'lete unn' \n\t0x65 0x63 0x65 0x73 0x73 0x61 0x72 0x79    // 'ecessary' \n\t0x20 0x66 0x69 0x6C 0x65 0x73 0x2E 0x0D    // ' files.?' \n\t0x0A 0x0D 0x0A 0x4F 0x72 0x2C 0x20 0x6D    // '???Or, m' \n\t0x61 0x79 0x62 0x65 0x20 0x79 0x6F 0x75    // 'aybe you' \n\t0x72 0x20 0x63 0x6F 0x6D 0x70 0x75 0x74    // 'r comput' \n\t0x65 0x72 0x20 0x69 0x73 0x20 0x6C 0x6F    // 'er is lo' \n\t0x77 0x20 0x6F 0x6E 0x20 0x6D 0x65 0x6D    // 'w on mem' \n\t0x6F 0x72 0x79 0x2E 0x0D 0x0A 0x2A 0x20    // 'ory.??* ' \n\t0x20 0x53 0x77 0x69 0x74 0x63 0x68 0x20    // ' Switch ' \n\t0x74 0x6F 0x20 0x57 0x69 0x6E 0x64 0x6F    // 'to Windo' \n\t0x77 0x73 0x20 0x28 0x70 0x72 0x65 0x73    // 'ws (pres' \n\t0x73 0x20 0x43 0x54 0x52 0x4C 0x2B 0x45    // 's CTRL+E' \n\t0x53 0x43 0x29 0x20 0x61 0x6E 0x64 0x20    // 'SC) and ' \n\t0x63 0x6C 0x6F 0x73 0x65 0x20 0x6F 0x74    // 'close ot' \n\t0x68 0x65 0x72 0x20 0x70 0x72 0x6F 0x67    // 'her prog' \n\t0x72 0x61 0x6D 0x73 0x2E 0x0D 0x0A 0x0D    // 'rams.???' \n\t0x0A 0x54 0x68 0x65 0x6E 0x2C 0x20 0x63    // '?Then, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x33 0x44 0x20    // 'lick 3D ' \n\t0x4D 0x6F 0x76 0x69 0x65 0x20 0x4D 0x61    // 'Movie Ma' \n\t0x6B 0x65 0x72 0x20 0x6F 0x6E 0x20 0x74    // 'ker on t' \n\t0x68 0x65 0x20 0x54 0x61 0x73 0x6B 0x20    // 'he Task ' \n\t0x42 0x61 0x72 0x20 0x61 0x6E 0x64 0x20    // 'Bar and ' \n\t0x74 0x72 0x79 0x20 0x67 0x6F 0x69 0x6E    // 'try goin' \n\t0x67 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'g to the' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x61    // ' frame a' \n\t0x67 0x61 0x69 0x6E 0x2E 0x20 0x0D 0x0A    // 'gain. ??' \n\t0x0D 0x0A 0x01                             // '???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_32= ktpcercSocDeleteBackFailure\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"ercSocDeleteBackFailure\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"ercSocDeleteBackFailure\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocDeleteBackFailure\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0xFC 0xFF 0x20 0x00 0x00 0x01    // '?? ???' \n\t0x01 0x00 0x00 0x00 0x98 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0x9A 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x06 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0xFC 0xFF 0x08 0x01 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x55 0x01 0x00 0x01    // '????U???' \n\t0x01 0x00 0xFC 0xFF 0x57 0x01 0x00 0x01    // '??W???' \n\t0x01 0x00 0x00 0x00 0x5A 0x01 0x00 0x01    // '????Z???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x1C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x59 0x01 0x00 0x40    // '????Y??@' \n\t0x02 0x00 0x00 0x00 0x5A 0x01 0x00 0x40    // '????Z??@' \n\t0x00 0x00 0x00 0x00 0x4A 0x00 0x00 0x80    // '????J??' \n\t0x00 0x00 0x02 0x00 0x98 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xC5 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x06 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x00 0x57 0x01 0x00 0x80    // '????W??' \n\t0x00 0x00 0x00 0x02 0x59 0x01 0x00 0xC0    // '????Y??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x72 0x72 0x79 0x2C    // '??Sorry,' \n\t0x20 0x77 0x65 0x20 0x63 0x61 0x6E 0x27    // ' we can'' \n\t0x74 0x20 0x64 0x65 0x6C 0x65 0x74 0x65    // 't delete' \n\t0x20 0x74 0x68 0x61 0x74 0x2E 0x0D 0x0A    // ' that.??' \n\t0x0D 0x0A 0x59 0x6F 0x75 0x72 0x20 0x63    // '??Your c' \n\t0x6F 0x6D 0x70 0x75 0x74 0x65 0x72 0x27    // 'omputer'' \n\t0x73 0x20 0x68 0x61 0x72 0x64 0x20 0x64    // 's hard d' \n\t0x72 0x69 0x76 0x65 0x20 0x6D 0x61 0x79    // 'rive may' \n\t0x20 0x62 0x65 0x20 0x66 0x75 0x6C 0x6C    // ' be full' \n\t0x2E 0x20 0x0D 0x0A 0x2A 0x20 0x20 0x53    // '. ??*  S' \n\t0x77 0x69 0x74 0x63 0x68 0x20 0x74 0x6F    // 'witch to' \n\t0x20 0x57 0x69 0x6E 0x64 0x6F 0x77 0x73    // ' Windows' \n\t0x20 0x28 0x70 0x72 0x65 0x73 0x73 0x20    // ' (press ' \n\t0x43 0x54 0x52 0x4C 0x2B 0x45 0x53 0x43    // 'CTRL+ESC' \n\t0x29 0x20 0x61 0x6E 0x64 0x20 0x6D 0x6F    // ') and mo' \n\t0x76 0x65 0x20 0x6F 0x72 0x20 0x64 0x65    // 've or de' \n\t0x6C 0x65 0x74 0x65 0x20 0x75 0x6E 0x6E    // 'lete unn' \n\t0x65 0x63 0x65 0x73 0x73 0x61 0x72 0x79    // 'ecessary' \n\t0x20 0x66 0x69 0x6C 0x65 0x73 0x2E 0x20    // ' files. ' \n\t0x0D 0x0A 0x0D 0x0A 0x4F 0x72 0x2C 0x20    // '????Or, ' \n\t0x6D 0x61 0x79 0x62 0x65 0x20 0x79 0x6F    // 'maybe yo' \n\t0x75 0x72 0x20 0x63 0x6F 0x6D 0x70 0x75    // 'ur compu' \n\t0x74 0x65 0x72 0x20 0x69 0x73 0x20 0x6C    // 'ter is l' \n\t0x6F 0x77 0x20 0x6F 0x6E 0x20 0x6D 0x65    // 'ow on me' \n\t0x6D 0x6F 0x72 0x79 0x2E 0x0D 0x0A 0x2A    // 'mory.??*' \n\t0x20 0x20 0x53 0x77 0x69 0x74 0x63 0x68    // '  Switch' \n\t0x20 0x74 0x6F 0x20 0x57 0x69 0x6E 0x64    // ' to Wind' \n\t0x6F 0x77 0x73 0x20 0x28 0x70 0x72 0x65    // 'ows (pre' \n\t0x73 0x73 0x20 0x43 0x54 0x52 0x4C 0x2B    // 'ss CTRL+' \n\t0x45 0x53 0x43 0x29 0x20 0x61 0x6E 0x64    // 'ESC) and' \n\t0x20 0x63 0x6C 0x6F 0x73 0x65 0x20 0x6F    // ' close o' \n\t0x74 0x68 0x65 0x72 0x20 0x70 0x72 0x6F    // 'ther pro' \n\t0x67 0x72 0x61 0x6D 0x73 0x2E 0x0D 0x0A    // 'grams.??' \n\t0x0D 0x0A 0x57 0x68 0x65 0x6E 0x20 0x79    // '??When y' \n\t0x6F 0x75 0x20 0x66 0x69 0x6E 0x69 0x73    // 'ou finis' \n\t0x68 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'h, click' \n\t0x20 0x33 0x44 0x20 0x4D 0x6F 0x76 0x69    // ' 3D Movi' \n\t0x65 0x20 0x4D 0x61 0x6B 0x65 0x72 0x20    // 'e Maker ' \n\t0x6F 0x6E 0x20 0x74 0x68 0x65 0x20 0x54    // 'on the T' \n\t0x61 0x73 0x6B 0x20 0x42 0x61 0x72 0x20    // 'ask Bar ' \n\t0x61 0x6E 0x64 0x20 0x74 0x72 0x79 0x20    // 'and try ' \n\t0x64 0x65 0x6C 0x65 0x74 0x69 0x6E 0x67    // 'deleting' \n\t0x20 0x61 0x67 0x61 0x69 0x6E 0x2E 0x0D    // ' again.?' \n\t0x0A 0x0D 0x0A 0x01                        // '????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_33= ktpcercSocActionNotApplicable\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"ercSocActionNotApplicable\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"ercSocActionNotApplicable\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocActionNotApplicable\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2F 0x00 0x00 0x01    // '????/???' \n\t0x01 0x00 0xFC 0xFF 0x31 0x00 0x00 0x01    // '??1???' \n\t0x01 0x00 0x00 0x00 0xB3 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xB5 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xE5 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xE7 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xE8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x2D 0x00 0x00 0x03    // '???-???' \n\t0x00 0x00 0x00 0x00 0xE7 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xE8 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x8B 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0xE7 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xB7 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0xE7 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0xE7 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x2C 0x20    // '??Oops, ' \n\t0x74 0x68 0x69 0x73 0x20 0x61 0x63 0x74    // 'this act' \n\t0x6F 0x72 0x20 0x64 0x6F 0x65 0x73 0x6E    // 'or doesn' \n\t0x27 0x74 0x20 0x6B 0x6E 0x6F 0x77 0x20    // ''t know ' \n\t0x68 0x6F 0x77 0x20 0x74 0x6F 0x20 0x64    // 'how to d' \n\t0x6F 0x20 0x74 0x68 0x61 0x74 0x2E 0x0D    // 'o that.?' \n\t0x0A 0x0D 0x0A 0x54 0x6F 0x20 0x66 0x69    // '???To fi' \n\t0x6E 0x64 0x20 0x6F 0x75 0x74 0x20 0x77    // 'nd out w' \n\t0x68 0x61 0x74 0x20 0x74 0x68 0x69 0x73    // 'hat this' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x20 0x64    // ' actor d' \n\t0x6F 0x65 0x73 0x20 0x6B 0x6E 0x6F 0x77    // 'oes know' \n\t0x20 0x68 0x6F 0x77 0x20 0x74 0x6F 0x20    // ' how to ' \n\t0x64 0x6F 0x0D 0x0A 0x31 0x20 0x20 0x43    // 'do??1  C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x41 0x63 0x74    // 'lick Act' \n\t0x69 0x6F 0x6E 0x73 0x2E 0x20 0x0D 0x0A    // 'ions. ??' \n\t0x32 0x20 0x20 0x43 0x6C 0x69 0x63 0x6B    // '2  Click' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x2E 0x0D 0x0A 0x33 0x20 0x20    // 'or.??3  ' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'e action' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x70 0x72 0x65    // 't to pre' \n\t0x76 0x69 0x65 0x77 0x2E 0x20 0x20 0x0D    // 'view.  ?' \n\t0x0A 0x34 0x20 0x20 0x57 0x68 0x65 0x6E    // '?4  When' \n\t0x20 0x79 0x6F 0x75 0x20 0x66 0x69 0x6E    // ' you fin' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x6F 0x6E    // 'd the on' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'nt, clic' \n\t0x6B 0x20 0x4F 0x4B 0x2E 0x0D 0x0A 0x0D    // 'k OK.???' \n\t0x0A 0x01                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_34= ktpcercSocCannotPasteThatHere\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"ercSocCannotPasteThatThere\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"ercSocCannotPasteThatThere\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocCannotPasteThatHere\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x01 0x00 0xFC 0xFF 0x39 0x00 0x00 0x01    // '??9???' \n\t0x01 0x00 0x00 0x00 0x7F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0xFC 0xFF 0x81 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xDD 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xDF 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xE4 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0xE1 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xE2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE4 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xDF 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xE1 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x72 0x72 0x79 0x2C    // '??Sorry,' \n\t0x20 0x62 0x75 0x74 0x20 0x79 0x6F 0x75    // ' but you' \n\t0x20 0x63 0x61 0x6E 0x27 0x74 0x20 0x70    // ' can't p' \n\t0x61 0x73 0x74 0x65 0x20 0x74 0x68 0x69    // 'aste thi' \n\t0x73 0x20 0x68 0x65 0x72 0x65 0x2D 0x2D    // 's here--' \n\t0x69 0x74 0x20 0x77 0x6F 0x6E 0x27 0x74    // 'it won't' \n\t0x20 0x73 0x74 0x69 0x63 0x6B 0x2E 0x0D    // ' stick.?' \n\t0x0A 0x0D 0x0A 0x54 0x72 0x79 0x20 0x70    // '???Try p' \n\t0x61 0x73 0x74 0x69 0x6E 0x67 0x20 0x69    // 'asting i' \n\t0x74 0x20 0x6F 0x6E 0x20 0x73 0x6F 0x6D    // 't on som' \n\t0x65 0x74 0x68 0x69 0x6E 0x67 0x20 0x74    // 'ething t' \n\t0x68 0x61 0x74 0x20 0x69 0x73 0x20 0x6C    // 'hat is l' \n\t0x69 0x6B 0x65 0x20 0x74 0x68 0x65 0x20    // 'ike the ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x20 0x79    // 'object y' \n\t0x6F 0x75 0x27 0x72 0x65 0x20 0x70 0x61    // 'ou're pa' \n\t0x73 0x74 0x69 0x6E 0x67 0x2E 0x20 0x0D    // 'sting. ?' \n\t0x0A 0x0D 0x0A 0x46 0x6F 0x72 0x20 0x65    // '???For e' \n\t0x78 0x61 0x6D 0x70 0x6C 0x65 0x2C 0x20    // 'xample, ' \n\t0x79 0x6F 0x75 0x20 0x63 0x61 0x6E 0x20    // 'you can ' \n\t0x70 0x61 0x73 0x74 0x65 0x20 0x74 0x65    // 'paste te' \n\t0x78 0x74 0x20 0x69 0x6E 0x20 0x77 0x69    // 'xt in wi' \n\t0x74 0x68 0x20 0x6F 0x74 0x68 0x65 0x72    // 'th other' \n\t0x20 0x74 0x65 0x78 0x74 0x2E 0x20 0x42    // ' text. B' \n\t0x75 0x74 0x20 0x79 0x6F 0x75 0x20 0x63    // 'ut you c' \n\t0x61 0x6E 0x27 0x74 0x20 0x70 0x61 0x73    // 'an't pas' \n\t0x74 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'te text ' \n\t0x6F 0x6E 0x74 0x6F 0x20 0x61 0x6E 0x20    // 'onto an ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2E 0x20 0x0D    // 'actor. ?' \n\t0x0A 0x0D 0x0A 0x01 0x0D 0x0A              // '??????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_35= ktpcercSocNoModlForChar\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"ercSocNoModlForChar\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"ercSocNoModlForChar\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNoModlForChar\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x01 0x00 0xFC 0xFF 0x39 0x00 0x00 0x01    // '??9???' \n\t0x01 0x00 0x00 0x00 0x57 0x00 0x00 0x01    // '????W???' \n\t0x01 0x00 0xFC 0xFF 0x59 0x00 0x00 0x01    // '??Y???' \n\t0x01 0x00 0x00 0x00 0x5A 0x00 0x00 0x01    // '????Z???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x40    // '????Y??@' \n\t0x02 0x00 0x00 0x00 0x5A 0x00 0x00 0x40    // '????Z??@' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x80    // '????Y??' \n\t0x00 0x00 0x00 0x02 0x59 0x00 0x00 0xC0    // '????Y??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x2E 0x20    // '??Oops. ' \n\t0x53 0x6F 0x6D 0x65 0x20 0x6F 0x66 0x20    // 'Some of ' \n\t0x74 0x68 0x65 0x20 0x6C 0x65 0x74 0x74    // 'the lett' \n\t0x65 0x72 0x73 0x20 0x69 0x6E 0x20 0x74    // 'ers in t' \n\t0x68 0x69 0x73 0x20 0x33 0x44 0x20 0x66    // 'his 3D f' \n\t0x6F 0x6E 0x74 0x20 0x61 0x72 0x65 0x20    // 'ont are ' \n\t0x6D 0x69 0x73 0x73 0x69 0x6E 0x67 0x0D    // 'missing?' \n\t0x0A 0x0D 0x0A 0x50 0x6C 0x65 0x61 0x73    // '???Pleas' \n\t0x65 0x20 0x63 0x68 0x6F 0x6F 0x73 0x65    // 'e choose' \n\t0x20 0x61 0x6E 0x6F 0x74 0x68 0x65 0x72    // ' another' \n\t0x20 0x66 0x6F 0x6E 0x74 0x2E 0x20 0x0D    // ' font. ?' \n\t0x0A 0x0D 0x0A 0x01                        // '????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_36= ktpcercSocNameTooLong\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"ercSocNameTooLong\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"ercSocNameTooLong\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNameTooLong\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x01 0x00 0xFC 0xFF 0x22 0x00 0x00 0x01    // '??\"???' \n\t0x01 0x00 0x00 0x00 0x3F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0xFC 0xFF 0x41 0x00 0x00 0x01    // '??A???' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x20 0x00 0x00 0x03    // '??? ???' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x40    // '????A??@' \n\t0x02 0x00 0x00 0x00 0x42 0x00 0x00 0x40    // '????B??@' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02 0x41 0x00 0x00 0xC0    // '????A??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x69 0x73 0x20 0x6E    // '??This n' \n\t0x61 0x6D 0x65 0x20 0x69 0x73 0x20 0x74    // 'ame is t' \n\t0x6F 0x6F 0x6F 0x6F 0x6F 0x20 0x6C 0x6F    // 'ooooo lo' \n\t0x6F 0x6F 0x6F 0x6F 0x6E 0x67 0x2E 0x20    // 'oooong. ' \n\t0x0D 0x0A 0x0D 0x0A 0x50 0x6C 0x65 0x61    // '????Plea' \n\t0x73 0x65 0x20 0x74 0x79 0x70 0x65 0x20    // 'se type ' \n\t0x61 0x20 0x73 0x68 0x6F 0x72 0x74 0x65    // 'a shorte' \n\t0x72 0x20 0x6E 0x61 0x6D 0x65 0x2E 0x0D    // 'r name.?' \n\t0x0A 0x0D 0x0A 0x01                        // '????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_37= ktpcercSocTboxTooSmall\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"ercSocTboxTooSmall\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"ercSocTboxTooSmall\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocTboxTooSmall\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_19=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x1F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02 0x1E 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x65 0x78 0x74 0x20 0x62    // '??Text b' \n\t0x6F 0x78 0x20 0x69 0x73 0x20 0x74 0x6F    // 'ox is to' \n\t0x6F 0x20 0x73 0x6D 0x61 0x6C 0x6C 0x0D    // 'o small?' \n\t0x0A 0x0D 0x0A 0x43 0x55 0x54 0x0D 0x0A    // '???CUT??' \n\t0x01                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_38= ktpcercSocNoThumbnails\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"ercSocNoThumbnails\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"ercSocNoThumbnails\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNoThumbnails\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x51 0x00 0x00 0x01    // '????Q???' \n\t0x01 0x00 0xFC 0xFF 0x53 0x00 0x00 0x01    // '??S???' \n\t0x01 0x00 0x00 0x00 0xDC 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xDE 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xE1 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x51 0x00 0x00 0x03    // '???Q???' \n\t0x00 0x00 0x00 0x00 0xE0 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xE1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xDE 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xE0 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x68 0x6F 0x6F 0x70 0x73    // '??Whoops' \n\t0x2E 0x20 0x53 0x6F 0x6D 0x65 0x74 0x68    // '. Someth' \n\t0x69 0x6E 0x67 0x27 0x73 0x20 0x6D 0x69    // 'ing's mi' \n\t0x73 0x73 0x69 0x6E 0x67 0x20 0x68 0x65    // 'ssing he' \n\t0x72 0x65 0x2E 0x20 0x53 0x6F 0x6D 0x65    // 're. Some' \n\t0x20 0x66 0x69 0x6C 0x65 0x73 0x20 0x77    // ' files w' \n\t0x65 0x20 0x6E 0x65 0x65 0x64 0x20 0x61    // 'e need a' \n\t0x72 0x65 0x20 0x6D 0x69 0x73 0x73 0x69    // 're missi' \n\t0x6E 0x67 0x20 0x6F 0x72 0x20 0x61 0x72    // 'ng or ar' \n\t0x65 0x20 0x62 0x72 0x6F 0x6B 0x65 0x6E    // 'e broken' \n\t0x2E 0x0D 0x0A 0x0D 0x0A 0x54 0x6F 0x20    // '.????To ' \n\t0x66 0x69 0x78 0x20 0x74 0x68 0x69 0x73    // 'fix this' \n\t0x20 0x70 0x72 0x6F 0x62 0x6C 0x65 0x6D    // ' problem' \n\t0x2C 0x20 0x70 0x6C 0x65 0x61 0x73 0x65    // ', please' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x45    // ' click E' \n\t0x78 0x69 0x74 0x2C 0x20 0x61 0x6E 0x64    // 'xit, and' \n\t0x20 0x74 0x68 0x65 0x6E 0x20 0x72 0x75    // ' then ru' \n\t0x6E 0x20 0x4D 0x69 0x63 0x72 0x6F 0x73    // 'n Micros' \n\t0x6F 0x66 0x74 0x20 0x33 0x44 0x20 0x4D    // 'oft 3D M' \n\t0x6F 0x76 0x69 0x65 0x20 0x4D 0x61 0x6B    // 'ovie Mak' \n\t0x65 0x72 0x20 0x53 0x65 0x74 0x75 0x70    // 'er Setup' \n\t0x20 0x61 0x67 0x61 0x69 0x6E 0x2E 0x20    // ' again. ' \n\t0x28 0x53 0x65 0x65 0x20 0x79 0x6F 0x75    // '(See you' \n\t0x72 0x20 0x6A 0x65 0x77 0x65 0x6C 0x63    // 'r jewelc' \n\t0x61 0x73 0x65 0x20 0x62 0x6F 0x6F 0x6B    // 'ase book' \n\t0x6C 0x65 0x74 0x20 0x66 0x6F 0x72 0x20    // 'let for ' \n\t0x69 0x6E 0x73 0x74 0x72 0x75 0x63 0x74    // 'instruct' \n\t0x69 0x6F 0x6E 0x73 0x2E 0x29 0x0D 0x0A    // 'ions.)??' \n\t0x0D 0x0A 0x01                             // '???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_39= ktpcercSocTdtTooLong\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"ercSocTdtTooLong\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"ercSocTdtTooLong\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocTdtTooLong\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_18=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x40 0x00 0x00 0x01    // '????@???' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02 0x3F 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x33 0x44 0x20 0x77 0x6F 0x72    // '??3D wor' \n\t0x64 0x73 0x20 0x63 0x61 0x6E 0x20 0x6F    // 'ds can o' \n\t0x6E 0x6C 0x79 0x20 0x62 0x65 0x20 0x35    // 'nly be 5' \n\t0x30 0x20 0x63 0x68 0x61 0x72 0x61 0x63    // '0 charac' \n\t0x74 0x65 0x72 0x73 0x20 0x6C 0x6F 0x6E    // 'ters lon' \n\t0x67 0x0D 0x0A 0x4E 0x4F 0x20 0x4C 0x4F    // 'g??NO LO' \n\t0x4E 0x47 0x45 0x52 0x20 0x41 0x50 0x50    // 'NGER APP' \n\t0x4C 0x49 0x43 0x41 0x42 0x4C 0x45 0x0D    // 'LICABLE?' \n\t0x0A 0x01                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3A= ktpcercSocBadTdf\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"ercSocBadTdf\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"ercSocBadTdf\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocBadTdf\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_12=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0xFC 0xFF 0x21 0x00 0x00 0x01    // '??!???' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x01 0x00 0xFC 0xFF 0x3E 0x00 0x00 0x01    // '??>???' \n\t0x01 0x00 0x00 0x00 0x41 0x00 0x00 0x01    // '????A???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x1F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x02 0x00 0x00 0x00 0x41 0x00 0x00 0x40    // '????A??@' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x80    // '????>??' \n\t0x00 0x00 0x00 0x02 0x40 0x00 0x00 0xC0    // '????@??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x2C 0x20    // '??Oops, ' \n\t0x74 0x68 0x69 0x73 0x20 0x33 0x44 0x20    // 'this 3D ' \n\t0x66 0x6F 0x6E 0x74 0x20 0x69 0x73 0x20    // 'font is ' \n\t0x62 0x72 0x6F 0x6B 0x65 0x6E 0x2E 0x0D    // 'broken.?' \n\t0x0A 0x0D 0x0A 0x50 0x6C 0x65 0x61 0x73    // '???Pleas' \n\t0x65 0x20 0x63 0x68 0x6F 0x6F 0x73 0x65    // 'e choose' \n\t0x20 0x61 0x6E 0x6F 0x74 0x68 0x65 0x72    // ' another' \n\t0x20 0x66 0x6F 0x6E 0x74 0x2E 0x0D 0x0A    // ' font.??' \n\t0x0D 0x0A 0x01                             // '???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3B= ktpcercSocNoActrMidi\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"ercSocNoActrMidi\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"ercSocNoActrMidi\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNoActrMidi\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0xFC 0xFF 0x41 0x00 0x00 0x01    // '??A???' \n\t0x01 0x00 0x00 0x00 0x77 0x00 0x00 0x01    // '????w???' \n\t0x01 0x00 0xFC 0xFF 0x79 0x00 0x00 0x01    // '??y???' \n\t0x01 0x00 0x00 0x00 0xF7 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xF9 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xFA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00 0xF9 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xFA 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF7 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xF9 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x2C 0x20    // '??Oops, ' \n\t0x6D 0x75 0x73 0x69 0x63 0x20 0x64 0x6F    // 'music do' \n\t0x65 0x73 0x6E 0x27 0x74 0x20 0x77 0x6F    // 'esn't wo' \n\t0x72 0x6B 0x20 0x77 0x69 0x74 0x68 0x20    // 'rk with ' \n\t0x61 0x63 0x74 0x6F 0x72 0x73 0x2C 0x20    // 'actors, ' \n\t0x6F 0x6E 0x6C 0x79 0x20 0x77 0x69 0x74    // 'only wit' \n\t0x68 0x20 0x62 0x61 0x63 0x6B 0x67 0x72    // 'h backgr' \n\t0x6F 0x75 0x6E 0x64 0x73 0x2E 0x20 0x0D    // 'ounds. ?' \n\t0x0A 0x0D 0x0A 0x49 0x66 0x20 0x79 0x6F    // '???If yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x75 0x73 0x65 0x20 0x74 0x68    // 'o use th' \n\t0x69 0x73 0x20 0x6D 0x75 0x73 0x69 0x63    // 'is music' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x62 0x61 0x63 0x6B    // 'the back' \n\t0x67 0x72 0x6F 0x75 0x6E 0x64 0x2E 0x0D    // 'ground.?' \n\t0x0A 0x0D 0x0A 0x4F 0x72 0x2C 0x20 0x69    // '???Or, i' \n\t0x66 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'f you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x61 0x64    // 'nt to ad' \n\t0x64 0x20 0x73 0x6F 0x75 0x6E 0x64 0x20    // 'd sound ' \n\t0x65 0x66 0x66 0x65 0x63 0x74 0x73 0x20    // 'effects ' \n\t0x6F 0x72 0x20 0x73 0x70 0x65 0x65 0x63    // 'or speec' \n\t0x68 0x20 0x74 0x6F 0x20 0x74 0x68 0x69    // 'h to thi' \n\t0x73 0x20 0x61 0x63 0x74 0x6F 0x72 0x2C    // 's actor,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x53    // ' click S' \n\t0x6F 0x75 0x6E 0x64 0x73 0x2C 0x20 0x61    // 'ounds, a' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x6E 0x20    // 'nd then ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x53 0x70 0x65 0x65 0x63 0x68    // 'e Speech' \n\t0x20 0x6F 0x72 0x20 0x53 0x6F 0x75 0x6E    // ' or Soun' \n\t0x64 0x20 0x45 0x66 0x66 0x65 0x63 0x74    // 'd Effect' \n\t0x73 0x20 0x54 0x6F 0x6F 0x6C 0x2E 0x0D    // 's Tool.?' \n\t0x0A 0x0D 0x0A 0x01                        // '????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3C= ktpcercSocNoImportRollCall\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"ercSocNoImportRollCall\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"ercSocNoImportRollCall\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNoImportRollCall\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x01    // '????3???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x00 0x00 0xFC 0xFF 0x37 0x00 0x00 0x01    // '??7???' \n\t0x01 0x00 0x00 0x00 0xBC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xBE 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0xFC 0xFF 0xC0 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00 0xC0 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xC1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xBE 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xC0 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x68 0x6F 0x61 0x21 0x20    // '??Whoa! ' \n\t0x41 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'Are you ' \n\t0x77 0x6F 0x6E 0x64 0x65 0x72 0x69 0x6E    // 'wonderin' \n\t0x67 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'g where ' \n\t0x74 0x68 0x6F 0x73 0x65 0x20 0x6E 0x65    // 'those ne' \n\t0x77 0x20 0x61 0x63 0x74 0x6F 0x72 0x73    // 'w actors' \n\t0x20 0x61 0x72 0x65 0x3F 0x0D 0x0A 0x0D    // ' are????' \n\t0x0A 0x43 0x68 0x61 0x6E 0x63 0x65 0x73    // '?Chances' \n\t0x20 0x61 0x72 0x65 0x20 0x79 0x6F 0x75    // ' are you' \n\t0x72 0x20 0x63 0x6F 0x6D 0x70 0x75 0x74    // 'r comput' \n\t0x65 0x72 0x20 0x77 0x61 0x73 0x20 0x6C    // 'er was l' \n\t0x6F 0x77 0x20 0x6F 0x6E 0x20 0x6D 0x65    // 'ow on me' \n\t0x6D 0x6F 0x72 0x79 0x20 0x77 0x68 0x65    // 'mory whe' \n\t0x6E 0x20 0x77 0x65 0x20 0x62 0x72 0x6F    // 'n we bro' \n\t0x75 0x67 0x68 0x74 0x20 0x69 0x6E 0x20    // 'ught in ' \n\t0x74 0x68 0x65 0x20 0x6F 0x74 0x68 0x65    // 'the othe' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E    // 'r movie.' \n\t0x20 0x54 0x68 0x65 0x20 0x61 0x63 0x74    // ' The act' \n\t0x6F 0x72 0x73 0x20 0x77 0x69 0x6C 0x6C    // 'ors will' \n\t0x20 0x73 0x68 0x6F 0x77 0x20 0x75 0x70    // ' show up' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x79 0x6F    // ' when yo' \n\t0x75 0x20 0x72 0x65 0x73 0x74 0x61 0x72    // 'u restar' \n\t0x74 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 't your m' \n\t0x6F 0x76 0x69 0x65 0x2E 0x20 0x0D 0x0A    // 'ovie. ??' \n\t0x0D 0x0A 0x01                             // '???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3D= ktpcercSocNoNukeRollCall\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"ercSocNoNukeRollCall\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"ercSocNoNukeRollCall\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNoNukeRollCall\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5D 0x00 0x00 0x01    // '????]???' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x01    // '????_???' \n\t0x00 0x00 0xFC 0xFF 0x61 0x00 0x00 0x01    // '??a???' \n\t0x01 0x00 0x00 0x00 0xF8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0xFC 0xFF 0xFC 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x5D 0x00 0x00 0x03    // '???]???' \n\t0x00 0x00 0x00 0x00 0xFC 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xFD 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x80    // '????_??' \n\t0x00 0x00 0x00 0x02 0x61 0x00 0x00 0x80    // '????a??' \n\t0x00 0x00 0x00 0x00 0xFA 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xFC 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x75 0x6D 0x6D 0x6D 0x2E    // '??Hummm.' \n\t0x20 0x41 0x72 0x65 0x20 0x79 0x6F 0x75    // ' Are you' \n\t0x20 0x77 0x6F 0x6E 0x64 0x65 0x72 0x69    // ' wonderi' \n\t0x6E 0x67 0x20 0x77 0x68 0x79 0x20 0x74    // 'ng why t' \n\t0x68 0x65 0x73 0x65 0x20 0x61 0x63 0x74    // 'hese act' \n\t0x6F 0x72 0x73 0x20 0x61 0x72 0x65 0x20    // 'ors are ' \n\t0x73 0x74 0x69 0x6C 0x6C 0x20 0x73 0x68    // 'still sh' \n\t0x6F 0x77 0x69 0x6E 0x67 0x20 0x75 0x70    // 'owing up' \n\t0x20 0x61 0x66 0x74 0x65 0x72 0x20 0x79    // ' after y' \n\t0x6F 0x75 0x20 0x64 0x65 0x6C 0x65 0x74    // 'ou delet' \n\t0x65 0x64 0x20 0x74 0x68 0x65 0x69 0x72    // 'ed their' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x3F 0x0D    // ' scene??' \n\t0x0A 0x0D 0x0A 0x43 0x68 0x61 0x6E 0x63    // '???Chanc' \n\t0x65 0x73 0x20 0x61 0x72 0x65 0x20 0x79    // 'es are y' \n\t0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D 0x70    // 'our comp' \n\t0x75 0x74 0x65 0x72 0x20 0x77 0x61 0x73    // 'uter was' \n\t0x20 0x6C 0x6F 0x77 0x20 0x6F 0x6E 0x20    // ' low on ' \n\t0x6D 0x65 0x6D 0x6F 0x72 0x79 0x20 0x77    // 'memory w' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x20    // 'hen you ' \n\t0x64 0x65 0x6C 0x65 0x74 0x65 0x64 0x20    // 'deleted ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65 0x2E    // 'a scene.' \n\t0x20 0x44 0x6F 0x6E 0x27 0x74 0x20 0x77    // ' Don't w' \n\t0x6F 0x72 0x72 0x79 0x2C 0x20 0x74 0x68    // 'orry, th' \n\t0x65 0x20 0x61 0x63 0x74 0x6F 0x72 0x73    // 'e actors' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x74 0x68    // ' from th' \n\t0x65 0x20 0x73 0x63 0x65 0x6E 0x65 0x20    // 'e scene ' \n\t0x6D 0x61 0x79 0x20 0x73 0x74 0x69 0x6C    // 'may stil' \n\t0x6C 0x20 0x61 0x70 0x70 0x65 0x61 0x72    // 'l appear' \n\t0x2C 0x20 0x62 0x75 0x74 0x20 0x74 0x68    // ', but th' \n\t0x65 0x79 0x20 0x77 0x6F 0x6E 0x27 0x74    // 'ey won't' \n\t0x20 0x62 0x65 0x20 0x75 0x73 0x65 0x64    // ' be used' \n\t0x2E 0x20 0x0D 0x0A 0x0D 0x0A 0x01         // '. ?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3E= ktpcercSocSceneSortError\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"ercSocSceneSortError\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"ercSocSceneSortError\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocSceneSortError\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x16 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x01 0x00 0xFC 0xFF 0x4A 0x00 0x00 0x01    // '??J???' \n\t0x01 0x00 0x00 0x00 0x82 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0x84 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xBB 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xBC 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xC0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xC1 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x1A 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x46 0x00 0x00 0x03    // '???F???' \n\t0x00 0x00 0x00 0x00 0xBC 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xC0 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xC1 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xC3 0x00 0x00 0x03    // '??????' \n\t0x0E 0x00 0x00 0xFD 0xD6 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x1C 0x01 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x1D 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0xAF 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x1A 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02 0x1C 0x01 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x75 0x65 0x20 0x74 0x6F    // '??Due to' \n\t0x20 0x74 0x65 0x63 0x68 0x6E 0x69 0x63    // ' technic' \n\t0x61 0x6C 0x20 0x64 0x69 0x66 0x66 0x69    // 'al diffi' \n\t0x63 0x75 0x6C 0x74 0x69 0x65 0x73 0x2C    // 'culties,' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x63 0x65    // ' the sce' \n\t0x6E 0x65 0x20 0x73 0x6F 0x72 0x74 0x65    // 'ne sorte' \n\t0x72 0x20 0x64 0x69 0x64 0x6E 0x27 0x74    // 'r didn't' \n\t0x20 0x77 0x6F 0x72 0x6B 0x20 0x63 0x6F    // ' work co' \n\t0x72 0x72 0x65 0x63 0x74 0x6C 0x79 0x2E    // 'rrectly.' \n\t0x0D 0x0A 0x0D 0x0A 0x54 0x68 0x69 0x73    // '????This' \n\t0x20 0x63 0x6F 0x75 0x6C 0x64 0x20 0x62    // ' could b' \n\t0x65 0x20 0x62 0x65 0x63 0x61 0x75 0x73    // 'e becaus' \n\t0x65 0x20 0x79 0x6F 0x75 0x72 0x20 0x63    // 'e your c' \n\t0x6F 0x6D 0x70 0x75 0x74 0x65 0x72 0x20    // 'omputer ' \n\t0x69 0x73 0x20 0x6C 0x6F 0x77 0x20 0x6F    // 'is low o' \n\t0x6E 0x20 0x6D 0x65 0x6D 0x6F 0x72 0x79    // 'n memory' \n\t0x2E 0x20 0x0D 0x0A 0x0D 0x0A 0x53 0x61    // '. ????Sa' \n\t0x76 0x65 0x20 0x79 0x6F 0x75 0x72 0x20    // 've your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x61 0x6E    // 'movie an' \n\t0x64 0x20 0x63 0x6C 0x6F 0x73 0x65 0x20    // 'd close ' \n\t0x6F 0x74 0x68 0x65 0x72 0x20 0x70 0x72    // 'other pr' \n\t0x6F 0x67 0x72 0x61 0x6D 0x73 0x2E 0x0D    // 'ograms.?' \n\t0x0A 0x31 0x20 0x20 0x48 0x6F 0x6C 0x64    // '?1  Hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x43 0x74    // ' down Ct' \n\t0x72 0x6C 0x2B 0x53 0x20 0x74 0x6F 0x20    // 'rl+S to ' \n\t0x73 0x61 0x76 0x65 0x20 0x79 0x6F 0x75    // 'save you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E    // 'r movie.' \n\t0x0D 0x0A 0x32 0x20 0x20 0x53 0x77 0x69    // '??2  Swi' \n\t0x74 0x63 0x68 0x20 0x74 0x6F 0x20 0x57    // 'tch to W' \n\t0x69 0x6E 0x64 0x6F 0x77 0x73 0x20 0x28    // 'indows (' \n\t0x70 0x72 0x65 0x73 0x73 0x20 0x43 0x54    // 'press CT' \n\t0x52 0x4C 0x20 0x2B 0x45 0x53 0x43 0x29    // 'RL +ESC)' \n\t0x20 0x61 0x6E 0x64 0x20 0x63 0x6C 0x6F    // ' and clo' \n\t0x73 0x65 0x20 0x6F 0x74 0x68 0x65 0x72    // 'se other' \n\t0x20 0x70 0x72 0x6F 0x67 0x72 0x61 0x6D    // ' program' \n\t0x73 0x2E 0x0D 0x0A 0x0D 0x0A 0x01         // 's.?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3F= ktpcercSocCantInitSceneSort\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"ercSocCantInitSceneSort\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"ercSocCantInitSceneSort\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_17=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocCantInitSceneSort\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_17=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_17=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_17=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x17 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x01    // '????6???' \n\t0x01 0x00 0xFC 0xFF 0x38 0x00 0x00 0x01    // '??8???' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0x01    // '????p???' \n\t0x01 0x00 0xFC 0xFF 0x72 0x00 0x00 0x01    // '??r???' \n\t0x01 0x00 0x00 0x00 0xA9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xAA 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xAE 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xAF 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x08 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0xFC 0xFF 0x0A 0x01 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x34 0x00 0x00 0x03    // '???4???' \n\t0x00 0x00 0x00 0x00 0xAA 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xAE 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xAF 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xB1 0x00 0x00 0x03    // '??????' \n\t0x0E 0x00 0x00 0xFD 0xC4 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x0A 0x01 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x0B 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x9D 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x08 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02 0x0A 0x01 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_17=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x75 0x65 0x20 0x74 0x6F    // '??Due to' \n\t0x20 0x74 0x65 0x63 0x68 0x6E 0x69 0x63    // ' technic' \n\t0x61 0x6C 0x20 0x64 0x69 0x66 0x66 0x69    // 'al diffi' \n\t0x63 0x75 0x6C 0x74 0x69 0x65 0x73 0x2C    // 'culties,' \n\t0x20 0x77 0x65 0x20 0x63 0x61 0x6E 0x27    // ' we can'' \n\t0x74 0x20 0x73 0x6F 0x72 0x74 0x20 0x73    // 't sort s' \n\t0x63 0x65 0x6E 0x65 0x73 0x2E 0x0D 0x0A    // 'cenes.??' \n\t0x0D 0x0A 0x54 0x68 0x69 0x73 0x20 0x63    // '??This c' \n\t0x6F 0x75 0x6C 0x64 0x20 0x62 0x65 0x20    // 'ould be ' \n\t0x62 0x65 0x63 0x61 0x75 0x73 0x65 0x20    // 'because ' \n\t0x79 0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D    // 'your com' \n\t0x70 0x75 0x74 0x65 0x72 0x20 0x69 0x73    // 'puter is' \n\t0x20 0x6C 0x6F 0x77 0x20 0x6F 0x6E 0x20    // ' low on ' \n\t0x6D 0x65 0x6D 0x6F 0x72 0x79 0x2E 0x20    // 'memory. ' \n\t0x0D 0x0A 0x0D 0x0A 0x53 0x61 0x76 0x65    // '????Save' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x61 0x6E 0x64 0x20    // 'vie and ' \n\t0x63 0x6C 0x6F 0x73 0x65 0x20 0x6F 0x74    // 'close ot' \n\t0x68 0x65 0x72 0x20 0x70 0x72 0x6F 0x67    // 'her prog' \n\t0x72 0x61 0x6D 0x73 0x2E 0x0D 0x0A 0x31    // 'rams.??1' \n\t0x20 0x20 0x48 0x6F 0x6C 0x64 0x20 0x64    // '  Hold d' \n\t0x6F 0x77 0x6E 0x20 0x43 0x74 0x72 0x6C    // 'own Ctrl' \n\t0x2B 0x53 0x20 0x74 0x6F 0x20 0x73 0x61    // '+S to sa' \n\t0x76 0x65 0x20 0x79 0x6F 0x75 0x72 0x20    // 've your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2E 0x0D 0x0A    // 'movie.??' \n\t0x32 0x20 0x20 0x53 0x77 0x69 0x74 0x63    // '2  Switc' \n\t0x68 0x20 0x74 0x6F 0x20 0x57 0x69 0x6E    // 'h to Win' \n\t0x64 0x6F 0x77 0x73 0x20 0x28 0x70 0x72    // 'dows (pr' \n\t0x65 0x73 0x73 0x20 0x43 0x54 0x52 0x4C    // 'ess CTRL' \n\t0x20 0x2B 0x45 0x53 0x43 0x29 0x20 0x61    // ' +ESC) a' \n\t0x6E 0x64 0x20 0x63 0x6C 0x6F 0x73 0x65    // 'nd close' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x20 0x70    // ' other p' \n\t0x72 0x6F 0x67 0x72 0x61 0x6D 0x73 0x2E    // 'rograms.' \n\t0x0D 0x0A 0x0D 0x0A 0x01                   // '?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_40= ktpcercSocCantInitSplot\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_40, __HELP_NAME(\"ercSocCantInitSplot\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_40, __HELP_NAME(\"ercSocCantInitSplot\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_40, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocCantInitSplot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x01 0x00 0xFC 0xFF 0x2D 0x00 0x00 0x01    // '??-???' \n\t0x01 0x00 0x00 0x00 0xA7 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xA9 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0xE2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xE3 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xE7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xE8 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x41 0x01 0x00 0x01    // '????A???' \n\t0x01 0x00 0xFC 0xFF 0x43 0x01 0x00 0x01    // '??C???' \n\t0x01 0x00 0x00 0x00 0xAA 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0xFC 0xFF 0xAC 0x01 0x00 0x01    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x00 0x00 0x00 0x00 0xE3 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xE7 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xE8 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xEA 0x00 0x00 0x03    // '??????' \n\t0x0E 0x00 0x00 0xFD 0xFD 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xAC 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xAD 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD6 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x43 0x01 0x00 0x80    // '????C??' \n\t0x00 0x00 0x00 0x00 0xAC 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xAC 0x01 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x72 0x72 0x79 0x2E    // '??Sorry.' \n\t0x20 0x57 0x65 0x20 0x63 0x61 0x6E 0x27    // ' We can'' \n\t0x74 0x20 0x73 0x74 0x61 0x72 0x74 0x20    // 't start ' \n\t0x74 0x68 0x65 0x20 0x53 0x70 0x6C 0x6F    // 'the Splo' \n\t0x74 0x20 0x4D 0x61 0x63 0x68 0x69 0x6E    // 't Machin' \n\t0x65 0x2E 0x20 0x0D 0x0A 0x0D 0x0A 0x46    // 'e. ????F' \n\t0x69 0x72 0x73 0x74 0x2C 0x20 0x62 0x65    // 'irst, be' \n\t0x20 0x73 0x75 0x72 0x65 0x20 0x74 0x68    // ' sure th' \n\t0x65 0x20 0x43 0x44 0x20 0x69 0x73 0x20    // 'e CD is ' \n\t0x63 0x6F 0x72 0x72 0x65 0x63 0x74 0x6C    // 'correctl' \n\t0x79 0x20 0x69 0x6E 0x73 0x65 0x72 0x74    // 'y insert' \n\t0x65 0x64 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ed in th' \n\t0x65 0x20 0x64 0x72 0x69 0x76 0x65 0x2E    // 'e drive.' \n\t0x20 0x49 0x66 0x20 0x69 0x74 0x20 0x69    // ' If it i' \n\t0x73 0x2C 0x20 0x74 0x68 0x65 0x6E 0x20    // 's, then ' \n\t0x69 0x74 0x20 0x6D 0x61 0x79 0x20 0x62    // 'it may b' \n\t0x65 0x20 0x74 0x68 0x61 0x74 0x20 0x79    // 'e that y' \n\t0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D 0x70    // 'our comp' \n\t0x75 0x74 0x65 0x72 0x20 0x69 0x73 0x20    // 'uter is ' \n\t0x6C 0x6F 0x77 0x20 0x6F 0x6E 0x20 0x6D    // 'low on m' \n\t0x65 0x6D 0x6F 0x72 0x79 0x2E 0x20 0x0D    // 'emory. ?' \n\t0x0A 0x0D 0x0A 0x54 0x6F 0x20 0x73 0x61    // '???To sa' \n\t0x76 0x65 0x20 0x79 0x6F 0x75 0x72 0x20    // 've your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x61 0x6E    // 'movie an' \n\t0x64 0x20 0x63 0x6C 0x6F 0x73 0x65 0x20    // 'd close ' \n\t0x6F 0x74 0x68 0x65 0x72 0x20 0x70 0x72    // 'other pr' \n\t0x6F 0x67 0x72 0x61 0x6D 0x73 0x0D 0x0A    // 'ograms??' \n\t0x31 0x20 0x20 0x48 0x6F 0x6C 0x64 0x20    // '1  Hold ' \n\t0x64 0x6F 0x77 0x6E 0x20 0x43 0x74 0x72    // 'down Ctr' \n\t0x6C 0x2B 0x53 0x20 0x74 0x6F 0x20 0x73    // 'l+S to s' \n\t0x61 0x76 0x65 0x20 0x79 0x6F 0x75 0x72    // 'ave your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E 0x0D    // ' movie.?' \n\t0x0A 0x32 0x20 0x20 0x53 0x77 0x69 0x74    // '?2  Swit' \n\t0x63 0x68 0x20 0x74 0x6F 0x20 0x57 0x69    // 'ch to Wi' \n\t0x6E 0x64 0x6F 0x77 0x73 0x20 0x28 0x70    // 'ndows (p' \n\t0x72 0x65 0x73 0x73 0x20 0x43 0x54 0x52    // 'ress CTR' \n\t0x4C 0x20 0x2B 0x45 0x53 0x43 0x29 0x20    // 'L +ESC) ' \n\t0x61 0x6E 0x64 0x20 0x63 0x6C 0x6F 0x73    // 'and clos' \n\t0x65 0x20 0x6F 0x74 0x68 0x65 0x72 0x20    // 'e other ' \n\t0x70 0x72 0x6F 0x67 0x72 0x61 0x6D 0x73    // 'programs' \n\t0x2E 0x0D 0x0A 0x0D 0x0A 0x49 0x66 0x20    // '.????If ' \n\t0x74 0x68 0x69 0x73 0x20 0x64 0x6F 0x65    // 'this doe' \n\t0x73 0x6E 0x27 0x74 0x20 0x77 0x6F 0x72    // 'sn't wor' \n\t0x6B 0x2C 0x20 0x74 0x72 0x79 0x20 0x72    // 'k, try r' \n\t0x65 0x69 0x6E 0x73 0x74 0x61 0x6C 0x6C    // 'einstall' \n\t0x69 0x6E 0x67 0x20 0x33 0x44 0x20 0x4D    // 'ing 3D M' \n\t0x6F 0x76 0x69 0x65 0x20 0x4D 0x61 0x6B    // 'ovie Mak' \n\t0x65 0x72 0x20 0x28 0x73 0x65 0x65 0x20    // 'er (see ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6A 0x65 0x77    // 'your jew' \n\t0x65 0x6C 0x63 0x61 0x73 0x65 0x20 0x62    // 'elcase b' \n\t0x6F 0x6F 0x6B 0x6C 0x65 0x74 0x20 0x66    // 'ooklet f' \n\t0x6F 0x72 0x20 0x69 0x6E 0x73 0x74 0x72    // 'or instr' \n\t0x75 0x63 0x74 0x69 0x6F 0x6E 0x73 0x29    // 'uctions)' \n\t0x2E 0x20 0x0D 0x0A 0x0D 0x0A 0x01         // '. ?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_41= ktpcercSocNoWaveIn\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_41, __HELP_NAME(\"ercSocNoWaveIn\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_41, __HELP_NAME(\"ercSocNoWaveIn\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_41, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNoWaveIn\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_41, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_13=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x01 0x00 0xFC 0xFF 0x37 0x00 0x00 0x01    // '??7???' \n\t0x01 0x00 0x00 0x00 0x79 0x00 0x00 0x01    // '????y???' \n\t0x01 0x00 0xFC 0xFF 0x7B 0x00 0x00 0x01    // '??{???' \n\t0x00 0x00 0xFC 0xFF 0x7D 0x00 0x00 0x01    // '??}???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00 0x7D 0x00 0x00 0x40    // '????}??@' \n\t0x02 0x00 0x00 0x00 0x7E 0x00 0x00 0x40    // '????~??@' \n\t0x00 0x00 0x00 0x00 0x7B 0x00 0x00 0x80    // '????{??' \n\t0x00 0x00 0x00 0x02 0x7D 0x00 0x00 0xC0    // '????}??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x2C 0x20 0x79 0x6F    // '??So, yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x65 0x64    // 'u wanted' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x2C 0x20    // ' sound, ' \n\t0x62 0x75 0x74 0x20 0x61 0x6C 0x6C 0x20    // 'but all ' \n\t0x79 0x6F 0x75 0x20 0x67 0x6F 0x74 0x20    // 'you got ' \n\t0x77 0x61 0x73 0x20 0x73 0x69 0x6C 0x65    // 'was sile' \n\t0x6E 0x63 0x65 0x3F 0x20 0x0D 0x0A 0x0D    // 'nce? ???' \n\t0x0A 0x54 0x6F 0x20 0x72 0x65 0x63 0x6F    // '?To reco' \n\t0x72 0x64 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'rd sound' \n\t0x73 0x2C 0x20 0x79 0x6F 0x75 0x20 0x6E    // 's, you n' \n\t0x65 0x65 0x64 0x20 0x74 0x6F 0x20 0x69    // 'eed to i' \n\t0x6E 0x73 0x74 0x61 0x6C 0x6C 0x20 0x61    // 'nstall a' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x63    // ' sound c' \n\t0x61 0x72 0x64 0x20 0x61 0x6E 0x64 0x20    // 'ard and ' \n\t0x6D 0x69 0x63 0x72 0x6F 0x70 0x68 0x6F    // 'micropho' \n\t0x6E 0x65 0x2E 0x0D 0x0A 0x0D 0x0A 0x01    // 'ne.?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_43= ktpcercSocPortfolioFailed\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_43, __HELP_NAME(\"ercSocPortfolioFailed\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_43, __HELP_NAME(\"ercSocPortfolioFailed\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_20=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_43, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocPortfolioFailed\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_20=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_43, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_20=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_20=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x01 0x00 0xFC 0xFF 0x27 0x00 0x00 0x01    // '??'???' \n\t0x01 0x00 0x00 0x00 0x0F 0x01 0x00 0x01    // '????????' \n\t0x01 0x00 0xFC 0xFF 0x11 0x01 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x85 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0xFC 0xFF 0x87 0x01 0x00 0x01    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x87 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x88 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x7D 0x00 0x00 0x80    // '????}??' \n\t0x00 0x00 0x02 0x00 0x0F 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x00 0x87 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x87 0x01 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_20=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x72 0x72 0x79 0x2E    // '??Sorry.' \n\t0x20 0x57 0x65 0x20 0x63 0x61 0x6E 0x27    // ' We can'' \n\t0x74 0x20 0x6F 0x70 0x65 0x6E 0x20 0x74    // 't open t' \n\t0x68 0x65 0x20 0x50 0x6F 0x72 0x74 0x66    // 'he Portf' \n\t0x6F 0x6C 0x69 0x6F 0x2E 0x0D 0x0A 0x0D    // 'olio.???' \n\t0x0A 0x43 0x68 0x61 0x6E 0x63 0x65 0x73    // '?Chances' \n\t0x20 0x61 0x72 0x65 0x20 0x79 0x6F 0x75    // ' are you' \n\t0x72 0x20 0x63 0x6F 0x6D 0x70 0x75 0x74    // 'r comput' \n\t0x65 0x72 0x20 0x69 0x73 0x20 0x6C 0x6F    // 'er is lo' \n\t0x77 0x20 0x6F 0x6E 0x20 0x6D 0x65 0x6D    // 'w on mem' \n\t0x6F 0x72 0x79 0x2C 0x20 0x6F 0x72 0x20    // 'ory, or ' \n\t0x79 0x6F 0x75 0x20 0x6E 0x65 0x65 0x64    // 'you need' \n\t0x20 0x74 0x6F 0x20 0x72 0x65 0x69 0x6E    // ' to rein' \n\t0x73 0x74 0x61 0x6C 0x6C 0x20 0x33 0x44    // 'stall 3D' \n\t0x20 0x4D 0x6F 0x76 0x69 0x65 0x20 0x4D    // ' Movie M' \n\t0x61 0x6B 0x65 0x72 0x2E 0x0D 0x0A 0x2A    // 'aker.??*' \n\t0x20 0x20 0x53 0x77 0x69 0x74 0x63 0x68    // '  Switch' \n\t0x20 0x74 0x6F 0x20 0x57 0x69 0x6E 0x64    // ' to Wind' \n\t0x6F 0x77 0x73 0x20 0x28 0x70 0x72 0x65    // 'ows (pre' \n\t0x73 0x73 0x20 0x43 0x54 0x52 0x4C 0x2B    // 'ss CTRL+' \n\t0x45 0x53 0x43 0x29 0x20 0x61 0x6E 0x64    // 'ESC) and' \n\t0x20 0x63 0x6C 0x6F 0x73 0x65 0x20 0x6F    // ' close o' \n\t0x74 0x68 0x65 0x72 0x20 0x70 0x72 0x6F    // 'ther pro' \n\t0x67 0x72 0x61 0x6D 0x73 0x2E 0x0D 0x0A    // 'grams.??' \n\t0x2A 0x20 0x20 0x46 0x6F 0x72 0x20 0x69    // '*  For i' \n\t0x6E 0x73 0x74 0x72 0x75 0x63 0x74 0x69    // 'nstructi' \n\t0x6F 0x6E 0x73 0x20 0x6F 0x6E 0x20 0x72    // 'ons on r' \n\t0x65 0x69 0x6E 0x73 0x74 0x61 0x6C 0x6C    // 'einstall' \n\t0x69 0x6E 0x67 0x20 0x33 0x44 0x20 0x4D    // 'ing 3D M' \n\t0x6F 0x76 0x69 0x65 0x20 0x4D 0x61 0x6B    // 'ovie Mak' \n\t0x65 0x72 0x2C 0x20 0x73 0x65 0x65 0x20    // 'er, see ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6A 0x65 0x77    // 'your jew' \n\t0x65 0x6C 0x63 0x61 0x73 0x65 0x20 0x62    // 'elcase b' \n\t0x6F 0x6F 0x6B 0x6C 0x65 0x74 0x2E 0x0D    // 'ooklet.?' \n\t0x0A 0x0D 0x0A 0x57 0x68 0x65 0x6E 0x20    // '???When ' \n\t0x79 0x6F 0x75 0x20 0x66 0x69 0x6E 0x69    // 'you fini' \n\t0x73 0x68 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'sh, clic' \n\t0x6B 0x20 0x33 0x44 0x20 0x4D 0x6F 0x76    // 'k 3D Mov' \n\t0x69 0x65 0x20 0x4D 0x61 0x6B 0x65 0x72    // 'ie Maker' \n\t0x20 0x6F 0x6E 0x20 0x74 0x68 0x65 0x20    // ' on the ' \n\t0x54 0x61 0x73 0x6B 0x20 0x42 0x61 0x72    // 'Task Bar' \n\t0x2C 0x20 0x6F 0x72 0x20 0x72 0x65 0x73    // ', or res' \n\t0x74 0x61 0x72 0x74 0x20 0x74 0x68 0x65    // 'tart the' \n\t0x20 0x70 0x72 0x6F 0x67 0x72 0x61 0x6D    // ' program' \n\t0x2C 0x20 0x61 0x6E 0x64 0x20 0x74 0x68    // ', and th' \n\t0x65 0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'en click' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x6F 0x72    // ' the Por' \n\t0x74 0x66 0x6F 0x6C 0x69 0x6F 0x20 0x61    // 'tfolio a' \n\t0x67 0x61 0x69 0x6E 0x2E 0x0D 0x0A 0x0D    // 'gain.???' \n\t0x0A 0x01                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_44= ktpcercSocCantInitStudio\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"ercSocCantInitStudio\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"ercSocCantInitStudio\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_27=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocCantInitStudio\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_27=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_27=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_27=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x01 0x00 0xFC 0xFF 0x25 0x00 0x00 0x01    // '??%???' \n\t0x01 0x00 0x00 0x00 0xF0 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xF2 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x33 0x01 0x00 0x01    // '????3???' \n\t0x01 0x00 0xFC 0xFF 0x35 0x01 0x00 0x01    // '??5???' \n\t0x01 0x00 0x00 0x00 0x8D 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0x8F 0x01 0x00 0x01    // '?????' \n\t0x00 0x00 0xFC 0xFF 0x91 0x01 0x00 0x01    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x21 0x00 0x00 0x03    // '???!???' \n\t0x00 0x00 0x00 0x00 0x91 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x92 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x80    // '????%??' \n\t0x00 0x00 0x00 0x00 0xA3 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0xF0 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xF2 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x33 0x01 0x00 0x80    // '????3??' \n\t0x00 0x00 0x00 0x00 0x91 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x91 0x01 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_27=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x72 0x72 0x79 0x2E    // '??Sorry.' \n\t0x20 0x57 0x65 0x20 0x63 0x61 0x6E 0x27    // ' We can'' \n\t0x74 0x20 0x67 0x6F 0x20 0x74 0x6F 0x20    // 't go to ' \n\t0x74 0x68 0x65 0x20 0x53 0x74 0x75 0x64    // 'the Stud' \n\t0x69 0x6F 0x2E 0x0D 0x0A 0x0D 0x0A 0x46    // 'io.????F' \n\t0x69 0x72 0x73 0x74 0x2C 0x20 0x62 0x65    // 'irst, be' \n\t0x20 0x73 0x75 0x72 0x65 0x20 0x74 0x68    // ' sure th' \n\t0x65 0x20 0x43 0x44 0x20 0x69 0x73 0x20    // 'e CD is ' \n\t0x63 0x6F 0x72 0x72 0x65 0x63 0x74 0x6C    // 'correctl' \n\t0x79 0x20 0x69 0x6E 0x73 0x65 0x72 0x74    // 'y insert' \n\t0x65 0x64 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ed in th' \n\t0x65 0x20 0x64 0x72 0x69 0x76 0x65 0x2E    // 'e drive.' \n\t0x20 0x49 0x66 0x20 0x69 0x74 0x20 0x69    // ' If it i' \n\t0x73 0x2C 0x20 0x74 0x68 0x65 0x6E 0x20    // 's, then ' \n\t0x69 0x74 0x20 0x6D 0x61 0x79 0x20 0x62    // 'it may b' \n\t0x65 0x20 0x74 0x68 0x61 0x74 0x20 0x79    // 'e that y' \n\t0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D 0x70    // 'our comp' \n\t0x75 0x74 0x65 0x72 0x27 0x73 0x20 0x68    // 'uter's h' \n\t0x61 0x72 0x64 0x20 0x64 0x72 0x69 0x76    // 'ard driv' \n\t0x65 0x20 0x69 0x73 0x20 0x66 0x75 0x6C    // 'e is ful' \n\t0x6C 0x2E 0x20 0x0D 0x0A 0x2A 0x20 0x20    // 'l. ??*  ' \n\t0x53 0x77 0x69 0x74 0x63 0x68 0x20 0x74    // 'Switch t' \n\t0x6F 0x20 0x57 0x69 0x6E 0x64 0x6F 0x77    // 'o Window' \n\t0x73 0x20 0x28 0x70 0x72 0x65 0x73 0x73    // 's (press' \n\t0x20 0x43 0x54 0x52 0x4C 0x2B 0x45 0x53    // ' CTRL+ES' \n\t0x43 0x29 0x20 0x61 0x6E 0x64 0x20 0x6D    // 'C) and m' \n\t0x6F 0x76 0x65 0x20 0x6F 0x72 0x20 0x64    // 'ove or d' \n\t0x65 0x6C 0x65 0x74 0x65 0x20 0x75 0x6E    // 'elete un' \n\t0x6E 0x63 0x65 0x73 0x73 0x61 0x72 0x79    // 'ncessary' \n\t0x20 0x66 0x69 0x6C 0x65 0x73 0x2E 0x20    // ' files. ' \n\t0x0D 0x0A 0x0D 0x0A 0x2A 0x20 0x20 0x53    // '????*  S' \n\t0x77 0x69 0x74 0x63 0x68 0x20 0x74 0x6F    // 'witch to' \n\t0x20 0x57 0x69 0x6E 0x64 0x6F 0x77 0x73    // ' Windows' \n\t0x20 0x28 0x70 0x72 0x65 0x73 0x73 0x20    // ' (press ' \n\t0x43 0x54 0x52 0x4C 0x2B 0x45 0x53 0x43    // 'CTRL+ESC' \n\t0x29 0x20 0x61 0x6E 0x64 0x20 0x63 0x6C    // ') and cl' \n\t0x6F 0x73 0x65 0x20 0x6F 0x74 0x68 0x65    // 'ose othe' \n\t0x72 0x20 0x70 0x72 0x6F 0x67 0x72 0x61    // 'r progra' \n\t0x6D 0x73 0x2E 0x0D 0x0A 0x0D 0x0A 0x57    // 'ms.????W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x20    // 'hen you ' \n\t0x66 0x69 0x6E 0x69 0x73 0x68 0x2C 0x20    // 'finish, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x33 0x44    // 'click 3D' \n\t0x20 0x4D 0x6F 0x76 0x69 0x65 0x20 0x4D    // ' Movie M' \n\t0x61 0x6B 0x65 0x72 0x20 0x6F 0x6E 0x20    // 'aker on ' \n\t0x74 0x68 0x65 0x20 0x54 0x61 0x73 0x6B    // 'the Task' \n\t0x20 0x42 0x61 0x72 0x20 0x61 0x6E 0x64    // ' Bar and' \n\t0x20 0x74 0x72 0x79 0x20 0x67 0x6F 0x69    // ' try goi' \n\t0x6E 0x67 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ng to th' \n\t0x65 0x20 0x53 0x74 0x75 0x64 0x69 0x6F    // 'e Studio' \n\t0x20 0x61 0x67 0x61 0x69 0x6E 0x2E 0x0D    // ' again.?' \n\t0x0A 0x0D 0x0A 0x01                        // '????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_45= ktpcercSoc3DWordCreate\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"ercSoc3DWordCreate\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"ercSoc3DWordCreate\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSoc3DWordCreate\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x01 0x00 0xFC 0xFF 0x28 0x00 0x00 0x01    // '??(???' \n\t0x01 0x00 0x00 0x00 0x9E 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xA0 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0xFC 0xFF 0xA2 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00 0xA2 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xA3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x80    // '????_??' \n\t0x00 0x00 0x02 0x00 0xA0 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xA2 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x72 0x72 0x79 0x2E    // '??Sorry.' \n\t0x20 0x57 0x65 0x20 0x63 0x61 0x6E 0x27    // ' We can'' \n\t0x74 0x20 0x63 0x72 0x65 0x61 0x74 0x65    // 't create' \n\t0x20 0x74 0x68 0x65 0x20 0x33 0x44 0x20    // ' the 3D ' \n\t0x77 0x6F 0x72 0x64 0x2E 0x20 0x0D 0x0A    // 'word. ??' \n\t0x0D 0x0A 0x54 0x68 0x69 0x73 0x20 0x6D    // '??This m' \n\t0x69 0x67 0x68 0x74 0x20 0x62 0x65 0x20    // 'ight be ' \n\t0x62 0x65 0x63 0x61 0x75 0x73 0x65 0x20    // 'because ' \n\t0x79 0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D    // 'your com' \n\t0x70 0x75 0x74 0x65 0x72 0x20 0x69 0x73    // 'puter is' \n\t0x20 0x6C 0x6F 0x77 0x20 0x6F 0x6E 0x20    // ' low on ' \n\t0x6D 0x65 0x6D 0x6F 0x72 0x79 0x2E 0x0D    // 'memory.?' \n\t0x0A 0x2A 0x20 0x20 0x53 0x77 0x69 0x74    // '?*  Swit' \n\t0x63 0x68 0x20 0x74 0x6F 0x20 0x57 0x69    // 'ch to Wi' \n\t0x6E 0x64 0x6F 0x77 0x73 0x20 0x28 0x70    // 'ndows (p' \n\t0x72 0x65 0x73 0x73 0x20 0x43 0x54 0x52    // 'ress CTR' \n\t0x4C 0x2B 0x45 0x53 0x43 0x29 0x20 0x61    // 'L+ESC) a' \n\t0x6E 0x64 0x20 0x63 0x6C 0x6F 0x73 0x65    // 'nd close' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x20 0x70    // ' other p' \n\t0x72 0x6F 0x67 0x72 0x61 0x6D 0x73 0x2E    // 'rograms.' \n\t0x0D 0x0A 0x0D 0x0A 0x01                   // '?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_46= ktpcercSoc3DWordChange\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"ercSoc3DWordChange\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"ercSoc3DWordChange\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSoc3DWordChange\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_15=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x01 0x00 0xFC 0xFF 0x28 0x00 0x00 0x01    // '??(???' \n\t0x01 0x00 0x00 0x00 0x9E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0xFC 0xFF 0xA2 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00 0xA2 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xA3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x80    // '????_??' \n\t0x00 0x00 0x02 0x00 0xA0 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xA2 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x72 0x72 0x79 0x2E    // '??Sorry.' \n\t0x20 0x57 0x65 0x20 0x63 0x61 0x6E 0x27    // ' We can'' \n\t0x74 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 't change' \n\t0x20 0x74 0x68 0x65 0x20 0x33 0x44 0x20    // ' the 3D ' \n\t0x77 0x6F 0x72 0x64 0x2E 0x20 0x0D 0x0A    // 'word. ??' \n\t0x0D 0x0A 0x54 0x68 0x69 0x73 0x20 0x6D    // '??This m' \n\t0x69 0x67 0x68 0x74 0x20 0x62 0x65 0x20    // 'ight be ' \n\t0x62 0x65 0x63 0x61 0x75 0x73 0x65 0x20    // 'because ' \n\t0x79 0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D    // 'your com' \n\t0x70 0x75 0x74 0x65 0x72 0x20 0x69 0x73    // 'puter is' \n\t0x20 0x6C 0x6F 0x77 0x20 0x6F 0x6E 0x20    // ' low on ' \n\t0x6D 0x65 0x6D 0x6F 0x72 0x79 0x2E 0x0D    // 'memory.?' \n\t0x0A 0x2A 0x20 0x20 0x53 0x77 0x69 0x74    // '?*  Swit' \n\t0x63 0x68 0x20 0x74 0x6F 0x20 0x57 0x69    // 'ch to Wi' \n\t0x6E 0x64 0x6F 0x77 0x73 0x20 0x28 0x70    // 'ndows (p' \n\t0x72 0x65 0x73 0x73 0x20 0x43 0x54 0x52    // 'ress CTR' \n\t0x4C 0x2B 0x45 0x53 0x43 0x29 0x20 0x61    // 'L+ESC) a' \n\t0x6E 0x64 0x20 0x63 0x6C 0x6F 0x73 0x65    // 'nd close' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x20 0x70    // ' other p' \n\t0x72 0x6F 0x67 0x72 0x61 0x6D 0x73 0x2E    // 'rograms.' \n\t0x0D 0x0A 0x0D 0x0A 0x01                   // '?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_47= ktpcercSocNoSoundName\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_47, __HELP_NAME(\"ercSocNoSoundName\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_47, __HELP_NAME(\"ercSocNoSoundName\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_26=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_47, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNoSoundName\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_26=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_47, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_26=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_26=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x01 0x00 0xFC 0xFF 0x29 0x00 0x00 0x01    // '??)???' \n\t0x00 0x00 0xFC 0xFF 0x2B 0x00 0x00 0x01    // '??+???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x29 0x00 0x00 0x03    // '???)???' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x40    // '????+??@' \n\t0x02 0x00 0x00 0x00 0x2C 0x00 0x00 0x40    // '????,??@' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x80    // '????)??' \n\t0x00 0x00 0x00 0x02 0x2B 0x00 0x00 0xC0    // '????+??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_26=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x03 0x03 0x59 0x6F 0x21 0x20 0x20 0x50    // '??Yo!  P' \n\t0x6C 0x65 0x61 0x73 0x65 0x20 0x74 0x79    // 'lease ty' \n\t0x70 0x65 0x20 0x61 0x20 0x6E 0x61 0x6D    // 'pe a nam' \n\t0x65 0x20 0x66 0x6F 0x72 0x20 0x79 0x6F    // 'e for yo' \n\t0x75 0x72 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'ur sound' \n\t0x2E 0x0D 0x0A 0x0D 0x0A 0x01              // '.?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_48= ktpcercSndamWaveDeviceBusy\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_48, __HELP_NAME(\"ercSndamWaveDeviceBusy\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_48, __HELP_NAME(\"ercSndamWaveDeviceBusy\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_21=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_48, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSndamWaveDeviceBusy\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_21=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_48, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_21=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_21=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x49 0x00 0x00 0x01    // '????I???' \n\t0x01 0x00 0xFC 0xFF 0x4B 0x00 0x00 0x01    // '??K???' \n\t0x01 0x00 0x00 0x00 0xA1 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xA3 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0xFC 0xFF 0xA5 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x00 0x00 0x00 0x00 0xA5 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xA6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA3 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xA5 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_21=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x75 0x73 0x79 0x20 0x73    // '??Busy s' \n\t0x69 0x67 0x6E 0x61 0x6C 0x21 0x20 0x20    // 'ignal!  ' \n\t0x59 0x6F 0x75 0x72 0x20 0x73 0x6F 0x75    // 'Your sou' \n\t0x6E 0x64 0x20 0x63 0x61 0x72 0x64 0x20    // 'nd card ' \n\t0x69 0x73 0x20 0x61 0x6C 0x72 0x65 0x61    // 'is alrea' \n\t0x64 0x79 0x20 0x62 0x65 0x69 0x6E 0x67    // 'dy being' \n\t0x20 0x75 0x73 0x65 0x64 0x20 0x62 0x79    // ' used by' \n\t0x20 0x61 0x6E 0x6F 0x74 0x68 0x65 0x72    // ' another' \n\t0x20 0x70 0x72 0x6F 0x67 0x72 0x61 0x6D    // ' program' \n\t0x2E 0x0D 0x0A 0x0D 0x0A 0x54 0x6F 0x20    // '.????To ' \n\t0x75 0x73 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'use soun' \n\t0x64 0x20 0x77 0x69 0x74 0x68 0x20 0x33    // 'd with 3' \n\t0x44 0x20 0x4D 0x6F 0x76 0x69 0x65 0x20    // 'D Movie ' \n\t0x4D 0x61 0x6B 0x65 0x72 0x20 0x72 0x69    // 'Maker ri' \n\t0x67 0x68 0x74 0x20 0x61 0x77 0x61 0x79    // 'ght away' \n\t0x2C 0x20 0x73 0x77 0x69 0x74 0x63 0x68    // ', switch' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x6F 0x74 0x68 0x65 0x72 0x20 0x70 0x72    // 'other pr' \n\t0x6F 0x67 0x72 0x61 0x6D 0x20 0x61 0x6E    // 'ogram an' \n\t0x64 0x20 0x63 0x6C 0x6F 0x73 0x65 0x20    // 'd close ' \n\t0x69 0x74 0x2E 0x0D 0x0A 0x0D 0x0A 0x01    // 'it.?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_49= ktpcercSocBadSceneSound\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"ercSocBadSceneSound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"ercSocBadSceneSound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_29=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocBadSceneSound\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_29=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_29=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_29=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x01 0x00 0xFC 0xFF 0x37 0x00 0x00 0x01    // '??7???' \n\t0x01 0x00 0x00 0x00 0xCC 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xCE 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0xFC 0xFF 0xD0 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00 0xD0 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xD1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD0 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xD0 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_29=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x68 0x6F 0x61 0x21 0x20    // '??Whoa! ' \n\t0x59 0x6F 0x75 0x20 0x63 0x61 0x6E 0x20    // 'You can ' \n\t0x6F 0x6E 0x6C 0x79 0x20 0x6D 0x6F 0x74    // 'only mot' \n\t0x69 0x6F 0x6E 0x2D 0x6D 0x61 0x74 0x63    // 'ion-matc' \n\t0x68 0x20 0x73 0x6F 0x75 0x6E 0x64 0x73    // 'h sounds' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x61 0x63    // ' with ac' \n\t0x74 0x6F 0x72 0x73 0x2E 0x0D 0x0A 0x0D    // 'tors.???' \n\t0x0A 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // '?When yo' \n\t0x75 0x20 0x75 0x73 0x65 0x20 0x74 0x68    // 'u use th' \n\t0x65 0x20 0x4D 0x6F 0x74 0x69 0x6F 0x6E    // 'e Motion' \n\t0x20 0x4D 0x61 0x74 0x63 0x68 0x20 0x54    // ' Match T' \n\t0x6F 0x6F 0x6C 0x2C 0x20 0x66 0x69 0x72    // 'ool, fir' \n\t0x73 0x74 0x2C 0x20 0x63 0x68 0x6F 0x6F    // 'st, choo' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x73    // 'se the s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x79 0x6F 0x75    // 'ound you' \n\t0x20 0x77 0x61 0x6E 0x74 0x2C 0x20 0x61    // ' want, a' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x6E 0x20    // 'nd then ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x61 0x6E    // 'click an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x20 0x28    // ' actor (' \n\t0x69 0x6E 0x73 0x74 0x65 0x61 0x64 0x20    // 'instead ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x62    // 'of the b' \n\t0x61 0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E    // 'ackgroun' \n\t0x64 0x29 0x20 0x74 0x6F 0x20 0x6D 0x61    // 'd) to ma' \n\t0x74 0x63 0x68 0x20 0x73 0x6F 0x75 0x6E    // 'tch soun' \n\t0x64 0x20 0x61 0x6E 0x64 0x20 0x6D 0x6F    // 'd and mo' \n\t0x74 0x69 0x6F 0x6E 0x2E 0x20 0x0D 0x0A    // 'tion. ??' \n\t0x0D 0x0A 0x01                             // '???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4A= ktpcercSocCantCacheTag\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4A, __HELP_NAME(\"ercSocCantCacheTag\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4A, __HELP_NAME(\"ercSocCantCacheTag\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_28=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocCantCacheTag\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_28=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_28=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_28=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x52 0x00 0x00 0x01    // '????R???' \n\t0x01 0x00 0xFC 0xFF 0x54 0x00 0x00 0x01    // '??T???' \n\t0x01 0x00 0x00 0x00 0xB8 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xBA 0x00 0x00 0x01    // '?????' \n\t0x01 0x00 0x00 0x00 0x35 0x01 0x00 0x01    // '????5???' \n\t0x00 0x00 0xFC 0xFF 0x37 0x01 0x00 0x01    // '??7???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x50 0x00 0x00 0x03    // '???P???' \n\t0x00 0x00 0x00 0x00 0x37 0x01 0x00 0x40    // '????7??@' \n\t0x01 0x00 0x00 0x00 0x38 0x01 0x00 0x40    // '????8??@' \n\t0x00 0x00 0x00 0x00 0xE8 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x37 0x01 0x00 0x80    // '????7??' \n\t0x00 0x00 0x00 0x02 0x37 0x01 0x00 0xC0    // '????7??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_28=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x65 0x27 0x72 0x65 0x20    // '??We're ' \n\t0x68 0x61 0x76 0x69 0x6E 0x67 0x20 0x74    // 'having t' \n\t0x72 0x6F 0x75 0x62 0x6C 0x65 0x20 0x63    // 'rouble c' \n\t0x6F 0x70 0x79 0x69 0x6E 0x67 0x20 0x73    // 'opying s' \n\t0x6F 0x6D 0x65 0x20 0x69 0x6E 0x66 0x6F    // 'ome info' \n\t0x72 0x6D 0x61 0x74 0x69 0x6F 0x6E 0x20    // 'rmation ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x74 0x68 0x65    // 'from the' \n\t0x20 0x43 0x44 0x2D 0x52 0x4F 0x4D 0x20    // ' CD-ROM ' \n\t0x74 0x6F 0x20 0x79 0x6F 0x75 0x72 0x20    // 'to your ' \n\t0x63 0x6F 0x6D 0x70 0x75 0x74 0x65 0x72    // 'computer' \n\t0x2E 0x20 0x0D 0x0A 0x0D 0x0A 0x54 0x68    // '. ????Th' \n\t0x69 0x73 0x20 0x6D 0x61 0x79 0x20 0x62    // 'is may b' \n\t0x65 0x20 0x62 0x65 0x63 0x61 0x75 0x73    // 'e becaus' \n\t0x65 0x20 0x79 0x6F 0x75 0x72 0x20 0x43    // 'e your C' \n\t0x44 0x20 0x69 0x73 0x20 0x6E 0x6F 0x74    // 'D is not' \n\t0x20 0x63 0x6F 0x72 0x72 0x65 0x63 0x74    // ' correct' \n\t0x6C 0x79 0x20 0x69 0x6E 0x73 0x65 0x72    // 'ly inser' \n\t0x74 0x65 0x64 0x20 0x69 0x6E 0x20 0x74    // 'ted in t' \n\t0x68 0x65 0x20 0x64 0x72 0x69 0x76 0x65    // 'he drive' \n\t0x2C 0x20 0x6F 0x72 0x20 0x74 0x68 0x65    // ', or the' \n\t0x20 0x43 0x44 0x2D 0x52 0x4F 0x4D 0x20    // ' CD-ROM ' \n\t0x68 0x61 0x73 0x20 0x64 0x75 0x73 0x74    // 'has dust' \n\t0x20 0x6F 0x6E 0x20 0x69 0x74 0x2E 0x20    // ' on it. ' \n\t0x0D 0x0A 0x0D 0x0A 0x4F 0x72 0x2C 0x20    // '????Or, ' \n\t0x79 0x6F 0x75 0x72 0x20 0x63 0x6F 0x6D    // 'your com' \n\t0x70 0x75 0x74 0x65 0x72 0x27 0x73 0x20    // 'puter's ' \n\t0x68 0x61 0x72 0x64 0x20 0x64 0x72 0x69    // 'hard dri' \n\t0x76 0x65 0x20 0x6D 0x61 0x79 0x20 0x62    // 've may b' \n\t0x65 0x20 0x66 0x75 0x6C 0x6C 0x2E 0x20    // 'e full. ' \n\t0x0D 0x0A 0x2A 0x20 0x20 0x53 0x77 0x69    // '??*  Swi' \n\t0x74 0x63 0x68 0x20 0x74 0x6F 0x20 0x57    // 'tch to W' \n\t0x69 0x6E 0x64 0x6F 0x77 0x73 0x20 0x28    // 'indows (' \n\t0x70 0x72 0x65 0x73 0x73 0x20 0x43 0x54    // 'press CT' \n\t0x52 0x4C 0x2B 0x45 0x53 0x43 0x29 0x20    // 'RL+ESC) ' \n\t0x61 0x6E 0x64 0x20 0x6D 0x6F 0x76 0x65    // 'and move' \n\t0x20 0x6F 0x72 0x20 0x64 0x65 0x6C 0x65    // ' or dele' \n\t0x74 0x65 0x20 0x75 0x6E 0x6E 0x63 0x65    // 'te unnce' \n\t0x73 0x73 0x61 0x72 0x79 0x20 0x66 0x69    // 'ssary fi' \n\t0x6C 0x65 0x73 0x2E 0x20 0x0D 0x0A 0x0D    // 'les. ???' \n\t0x0A 0x01                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4B= ktpcercSocInvalidFilename\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4B, __HELP_NAME(\"ercSocInvalidFilename\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4B, __HELP_NAME(\"ercSocInvalidFilename\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_23=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocInvalidFilename\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_23=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_23=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_23=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5C 0x00 0x00 0x01    // '????\\???' \n\t0x01 0x00 0xFC 0xFF 0x5E 0x00 0x00 0x01    // '??^???' \n\t0x01 0x00 0x00 0x00 0x7D 0x00 0x00 0x01    // '????}???' \n\t0x00 0x00 0xFC 0xFF 0x7F 0x00 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x5A 0x00 0x00 0x03    // '???Z???' \n\t0x00 0x00 0x00 0x00 0x7F 0x00 0x00 0x40    // '???????@' \n\t0x01 0x00 0x00 0x00 0x80 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x7F 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02 0x7F 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_23=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x65 0x20 0x6E 0x61    // '??The na' \n\t0x6D 0x65 0x20 0x79 0x6F 0x75 0x20 0x74    // 'me you t' \n\t0x79 0x70 0x65 0x64 0x20 0x77 0x6F 0x6E    // 'yped won' \n\t0x27 0x74 0x20 0x77 0x6F 0x72 0x6B 0x20    // ''t work ' \n\t0x62 0x65 0x63 0x61 0x75 0x73 0x65 0x20    // 'because ' \n\t0x69 0x74 0x20 0x69 0x73 0x20 0x74 0x6F    // 'it is to' \n\t0x6F 0x20 0x6C 0x6F 0x6E 0x67 0x20 0x6F    // 'o long o' \n\t0x72 0x20 0x68 0x61 0x73 0x20 0x63 0x68    // 'r has ch' \n\t0x61 0x72 0x61 0x63 0x74 0x65 0x72 0x73    // 'aracters' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x63 0x61    // ' that ca' \n\t0x6E 0x27 0x74 0x20 0x62 0x65 0x20 0x75    // 'n't be u' \n\t0x73 0x65 0x64 0x2E 0x0D 0x0A 0x0D 0x0A    // 'sed.????' \n\t0x50 0x6C 0x65 0x61 0x73 0x65 0x20 0x74    // 'Please t' \n\t0x79 0x70 0x65 0x20 0x61 0x20 0x64 0x69    // 'ype a di' \n\t0x66 0x66 0x65 0x72 0x65 0x6E 0x74 0x20    // 'fferent ' \n\t0x6E 0x61 0x6D 0x65 0x2E 0x0D 0x0A 0x0D    // 'name.???' \n\t0x0A 0x01                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4D= ktpcercSocNoDefaultFont\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4D, __HELP_NAME(\"ercSocNoDefaultFont\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4D, __HELP_NAME(\"ercSocNoDefaultFont\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNoDefaultFont\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x01 0x00 0xFC 0xFF 0x4A 0x00 0x00 0x01    // '??J???' \n\t0x01 0x00 0x00 0x00 0xE0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0xFC 0xFF 0xE4 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x46 0x00 0x00 0x03    // '???F???' \n\t0x00 0x00 0x00 0x00 0xE4 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xE5 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE4 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0xE4 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x2E 0x20    // '??Oops. ' \n\t0x4F 0x6E 0x65 0x20 0x6F 0x72 0x20 0x6D    // 'One or m' \n\t0x6F 0x72 0x65 0x20 0x6F 0x66 0x20 0x74    // 'ore of t' \n\t0x68 0x65 0x20 0x66 0x6F 0x6E 0x74 0x73    // 'he fonts' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x33 0x44    // ' that 3D' \n\t0x20 0x4D 0x6F 0x76 0x69 0x65 0x20 0x4D    // ' Movie M' \n\t0x61 0x6B 0x65 0x72 0x20 0x6E 0x65 0x65    // 'aker nee' \n\t0x64 0x73 0x20 0x61 0x72 0x65 0x20 0x6D    // 'ds are m' \n\t0x69 0x73 0x73 0x69 0x6E 0x67 0x2E 0x20    // 'issing. ' \n\t0x0D 0x0A 0x0D 0x0A 0x54 0x6F 0x20 0x72    // '????To r' \n\t0x65 0x70 0x6C 0x61 0x63 0x65 0x20 0x74    // 'eplace t' \n\t0x68 0x65 0x20 0x6D 0x69 0x73 0x73 0x69    // 'he missi' \n\t0x6E 0x67 0x20 0x66 0x6F 0x6E 0x74 0x73    // 'ng fonts' \n\t0x2C 0x20 0x64 0x65 0x2D 0x69 0x6E 0x73    // ', de-ins' \n\t0x74 0x61 0x6C 0x6C 0x20 0x4D 0x69 0x63    // 'tall Mic' \n\t0x72 0x6F 0x73 0x6F 0x66 0x74 0x20 0x33    // 'rosoft 3' \n\t0x44 0x20 0x4D 0x6F 0x76 0x69 0x65 0x20    // 'D Movie ' \n\t0x4D 0x61 0x6B 0x65 0x72 0x2C 0x20 0x61    // 'Maker, a' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x6E 0x20    // 'nd then ' \n\t0x72 0x75 0x6E 0x20 0x74 0x68 0x65 0x20    // 'run the ' \n\t0x53 0x65 0x74 0x75 0x70 0x20 0x70 0x72    // 'Setup pr' \n\t0x6F 0x67 0x72 0x61 0x6D 0x20 0x61 0x67    // 'ogram ag' \n\t0x61 0x69 0x6E 0x20 0x28 0x73 0x65 0x65    // 'ain (see' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6A 0x65    // ' your je' \n\t0x77 0x65 0x6C 0x63 0x61 0x73 0x65 0x20    // 'welcase ' \n\t0x62 0x6F 0x6F 0x6B 0x6C 0x65 0x74 0x20    // 'booklet ' \n\t0x66 0x6F 0x72 0x20 0x69 0x6E 0x73 0x74    // 'for inst' \n\t0x72 0x75 0x63 0x74 0x69 0x6F 0x6E 0x73    // 'ructions' \n\t0x29 0x2E 0x0D 0x0A 0x0D 0x0A 0x01         // ').?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4E= ktpcercSocCantLoadMelanieDoc\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4E, __HELP_NAME(\"ktpcercSocCantLoadMelanieDoc\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4E, __HELP_NAME(\"ktpcercSocCantLoadMelanieDoc\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_24=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocCantLoadMelanieDoc\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_24=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_24=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_24=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0xFC 0xFF 0x26 0x00 0x00 0x01    // '??&???' \n\t0x01 0x00 0x00 0x00 0x82 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0xFC 0xFF 0x86 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x22 0x00 0x00 0x03    // '???\"???' \n\t0x00 0x00 0x00 0x00 0x86 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x87 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x86 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x86 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_24=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x21 0x20    // '??Oops! ' \n\t0x4D 0x65 0x6C 0x61 0x6E 0x69 0x65 0x27    // 'Melanie'' \n\t0x73 0x20 0x6D 0x6F 0x76 0x69 0x65 0x73    // 's movies' \n\t0x20 0x61 0x72 0x65 0x20 0x62 0x72 0x6F    // ' are bro' \n\t0x6B 0x65 0x6E 0x2E 0x0D 0x0A 0x0D 0x0A    // 'ken.????' \n\t0x54 0x6F 0x20 0x72 0x65 0x70 0x6C 0x61    // 'To repla' \n\t0x63 0x65 0x20 0x74 0x68 0x65 0x20 0x62    // 'ce the b' \n\t0x72 0x6F 0x6B 0x65 0x6E 0x20 0x6D 0x6F    // 'roken mo' \n\t0x76 0x69 0x65 0x73 0x2C 0x20 0x72 0x75    // 'vies, ru' \n\t0x6E 0x20 0x53 0x65 0x74 0x75 0x70 0x20    // 'n Setup ' \n\t0x61 0x67 0x61 0x69 0x6E 0x20 0x28 0x73    // 'again (s' \n\t0x65 0x65 0x20 0x79 0x6F 0x75 0x72 0x20    // 'ee your ' \n\t0x6A 0x65 0x77 0x65 0x6C 0x63 0x61 0x73    // 'jewelcas' \n\t0x65 0x20 0x62 0x6F 0x6F 0x6B 0x6C 0x65    // 'e bookle' \n\t0x74 0x20 0x66 0x6F 0x72 0x20 0x69 0x6E    // 't for in' \n\t0x73 0x74 0x72 0x75 0x63 0x74 0x69 0x6F    // 'structio' \n\t0x6E 0x73 0x29 0x2E 0x0D 0x0A 0x0D 0x0A    // 'ns).????' \n\t0x01                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4F= ktpcercSocBadSoundFile\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4F, __HELP_NAME(\"ktpcercSocBadSoundFile\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4F, __HELP_NAME(\"ktpcercSocBadSoundFile\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocBadSoundFile\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x01 0x00 0xFC 0xFF 0x28 0x00 0x00 0x01    // '??(???' \n\t0x01 0x00 0x00 0x00 0x6E 0x00 0x00 0x01    // '????n???' \n\t0x01 0x00 0xFC 0xFF 0x71 0x00 0x00 0x01    // '??q???' \n\t0x00 0x00 0xFC 0xFF 0x73 0x00 0x00 0x01    // '??s???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x00 0x00 0x00 0x00 0x73 0x00 0x00 0x40    // '????s??@' \n\t0x02 0x00 0x00 0x00 0x74 0x00 0x00 0x40    // '????t??@' \n\t0x00 0x00 0x00 0x00 0x73 0x00 0x00 0x80    // '????s??' \n\t0x00 0x00 0x00 0x02 0x73 0x00 0x00 0xC0    // '????s??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x72 0x72 0x79 0x2E    // '??Sorry.' \n\t0x20 0x57 0x65 0x20 0x63 0x61 0x6E 0x27    // ' We can'' \n\t0x74 0x20 0x75 0x73 0x65 0x20 0x74 0x68    // 't use th' \n\t0x61 0x74 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'at sound' \n\t0x20 0x66 0x69 0x6C 0x65 0x2E 0x0D 0x0A    // ' file.??' \n\t0x0D 0x0A 0x54 0x72 0x79 0x20 0x75 0x73    // '??Try us' \n\t0x69 0x6E 0x67 0x20 0x61 0x6E 0x6F 0x74    // 'ing anot' \n\t0x68 0x65 0x72 0x20 0x73 0x6F 0x75 0x6E    // 'her soun' \n\t0x64 0x20 0x66 0x69 0x6C 0x65 0x20 0x6F    // 'd file o' \n\t0x72 0x20 0x6F 0x6E 0x65 0x20 0x6F 0x66    // 'r one of' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x73 0x20 0x66 0x72 0x6F 0x6D    // 'nds from' \n\t0x20 0x33 0x44 0x20 0x4D 0x6F 0x76 0x69    // ' 3D Movi' \n\t0x65 0x20 0x4D 0x61 0x6B 0x65 0x72 0x2E    // 'e Maker.' \n\t0x0D 0x0A 0x20 0x0D 0x0A 0x01              // '?? ???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_50= ktpcercSocMissingMelanieDoc\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_50, __HELP_NAME(\"ktpcercSocMissingMelanieDoc\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_50, __HELP_NAME(\"ktpcercSocMissingMelanieDoc\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_50, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocMissingMelanieDoc\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_50, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x01 0x00 0xFC 0xFF 0x27 0x00 0x00 0x01    // '??'???' \n\t0x01 0x00 0x00 0x00 0x7C 0x00 0x00 0x01    // '????|???' \n\t0x00 0x00 0x00 0x00 0x7E 0x00 0x00 0x01    // '????~???' \n\t0x00 0x00 0xFC 0xFF 0x80 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x80 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x81 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x7E 0x00 0x00 0x80    // '????~??' \n\t0x00 0x00 0x00 0x00 0x80 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x80 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x21 0x20    // '??Oops! ' \n\t0x4D 0x65 0x6C 0x61 0x6E 0x69 0x65 0x27    // 'Melanie'' \n\t0x73 0x20 0x6D 0x6F 0x76 0x69 0x65 0x73    // 's movies' \n\t0x20 0x61 0x72 0x65 0x20 0x6D 0x69 0x73    // ' are mis' \n\t0x73 0x69 0x6E 0x67 0x2E 0x0D 0x0A 0x0D    // 'sing.???' \n\t0x0A 0x54 0x6F 0x20 0x72 0x65 0x70 0x6C    // '?To repl' \n\t0x61 0x63 0x65 0x20 0x68 0x65 0x72 0x20    // 'ace her ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x73 0x2C 0x20    // 'movies, ' \n\t0x72 0x75 0x6E 0x20 0x53 0x65 0x74 0x75    // 'run Setu' \n\t0x70 0x20 0x61 0x67 0x61 0x69 0x6E 0x20    // 'p again ' \n\t0x28 0x73 0x65 0x65 0x20 0x79 0x6F 0x75    // '(see you' \n\t0x72 0x20 0x6A 0x65 0x77 0x65 0x6C 0x63    // 'r jewelc' \n\t0x61 0x73 0x65 0x20 0x62 0x6F 0x6F 0x6B    // 'ase book' \n\t0x6C 0x65 0x74 0x20 0x66 0x6F 0x72 0x20    // 'let for ' \n\t0x69 0x6E 0x73 0x74 0x72 0x75 0x63 0x74    // 'instruct' \n\t0x69 0x6F 0x6E 0x73 0x29 0x2E 0x0D 0x0A    // 'ions).??' \n\t0x0D 0x0A 0x01                             // '???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_51= ktpcercSocNoKidSndsInMovie\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"ktpcercSocNoKidSndsInMovie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"ktpcercSocNoKidSndsInMovie\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocNoKidSndsInMovie\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x01    // '????=???' \n\t0x01 0x00 0xFC 0xFF 0x3F 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x96 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0xFC 0xFF 0x98 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x3B 0x00 0x00 0x03    // '???;???' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x98 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x99 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x98 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x98 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x72 0x72 0x79 0x2E    // '??Sorry.' \n\t0x20 0x57 0x65 0x20 0x74 0x72 0x69 0x65    // ' We trie' \n\t0x64 0x2C 0x20 0x62 0x75 0x74 0x20 0x63    // 'd, but c' \n\t0x6F 0x75 0x6C 0x64 0x6E 0x27 0x74 0x20    // 'ouldn't ' \n\t0x66 0x69 0x6E 0x64 0x20 0x61 0x6E 0x79    // 'find any' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x73 0x20    // ' sounds ' \n\t0x77 0x65 0x20 0x63 0x6F 0x75 0x6C 0x64    // 'we could' \n\t0x20 0x75 0x73 0x65 0x2E 0x0D 0x0A 0x0D    // ' use.???' \n\t0x0A 0x54 0x72 0x79 0x20 0x75 0x73 0x69    // '?Try usi' \n\t0x6E 0x67 0x20 0x61 0x6E 0x6F 0x74 0x68    // 'ng anoth' \n\t0x65 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'er movie' \n\t0x20 0x66 0x69 0x6C 0x65 0x2C 0x20 0x61    // ' file, a' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x66    // ' sound f' \n\t0x69 0x6C 0x65 0x2C 0x20 0x6F 0x72 0x20    // 'ile, or ' \n\t0x6F 0x6E 0x65 0x20 0x6F 0x66 0x20 0x74    // 'one of t' \n\t0x68 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'he sound' \n\t0x73 0x20 0x66 0x72 0x6F 0x6D 0x20 0x33    // 's from 3' \n\t0x44 0x20 0x4D 0x6F 0x76 0x69 0x65 0x20    // 'D Movie ' \n\t0x4D 0x61 0x6B 0x65 0x72 0x2E 0x0D 0x0A    // 'Maker.??' \n\t0x0D 0x0A 0x01                             // '???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_52= ktpcercSocCantGoToStudio\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_52, __HELP_NAME(\"ktpcercSocCantGoToStudio\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_52, __HELP_NAME(\"ktpcercSocCantGoToStudio\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_52, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocCantGoToStudio\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_52, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x41 0x00 0x00 0x01    // '????A???' \n\t0x01 0x00 0xFC 0xFF 0x43 0x00 0x00 0x01    // '??C???' \n\t0x01 0x00 0x00 0x00 0x92 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0x94 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0xFC 0xFF 0x96 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x3F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x97 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x96 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x72 0x72 0x79 0x2E    // '??Sorry.' \n\t0x20 0x59 0x6F 0x75 0x20 0x63 0x61 0x6E    // ' You can' \n\t0x27 0x74 0x20 0x67 0x6F 0x20 0x74 0x6F    // ''t go to' \n\t0x20 0x74 0x68 0x65 0x20 0x53 0x74 0x75    // ' the Stu' \n\t0x64 0x69 0x6F 0x20 0x66 0x72 0x6F 0x6D    // 'dio from' \n\t0x20 0x68 0x65 0x72 0x65 0x20 0x75 0x73    // ' here us' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x61 0x74    // 'ing that' \n\t0x20 0x6D 0x65 0x74 0x68 0x6F 0x64 0x2E    // ' method.' \n\t0x20 0x0D 0x0A 0x0D 0x0A 0x54 0x6F 0x20    // ' ????To ' \n\t0x67 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'go to th' \n\t0x65 0x20 0x53 0x74 0x75 0x64 0x69 0x6F    // 'e Studio' \n\t0x2C 0x20 0x63 0x68 0x6F 0x6F 0x73 0x65    // ', choose' \n\t0x20 0x74 0x6F 0x20 0x65 0x69 0x74 0x68    // ' to eith' \n\t0x65 0x72 0x20 0x6D 0x61 0x6B 0x65 0x20    // 'er make ' \n\t0x61 0x20 0x6E 0x65 0x77 0x20 0x6D 0x6F    // 'a new mo' \n\t0x76 0x69 0x65 0x20 0x6F 0x72 0x20 0x77    // 'vie or w' \n\t0x6F 0x72 0x6B 0x20 0x6F 0x6E 0x20 0x61    // 'ork on a' \n\t0x6E 0x20 0x6F 0x6C 0x64 0x20 0x6D 0x6F    // 'n old mo' \n\t0x76 0x69 0x65 0x2E 0x0D 0x0A 0x0D 0x0A    // 'vie.????' \n\t0x01                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_53= ktpcercSocCantGoToMap\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_53, __HELP_NAME(\"ktpcercSocCantGoToMap\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_53, __HELP_NAME(\"ktpcercSocCantGoToMap\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_38=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_53, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocCantGoToMap\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_38=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_53, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_38=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_38=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x01    // '????/???' \n\t0x00 0x00 0xFC 0xFF 0x31 0x00 0x00 0x01    // '??1???' \n\t0x01 0x00 0x00 0x00 0x66 0x00 0x00 0x01    // '????f???' \n\t0x00 0x00 0xFC 0xFF 0x6A 0x00 0x00 0x01    // '??j???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x2B 0x00 0x00 0x03    // '???+???' \n\t0x00 0x00 0x00 0x00 0x6A 0x00 0x00 0x40    // '????j??@' \n\t0x02 0x00 0x00 0x00 0x6B 0x00 0x00 0x40    // '????k??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x00 0x6A 0x00 0x00 0x80    // '????j??' \n\t0x00 0x00 0x00 0x02 0x6A 0x00 0x00 0xC0    // '????j??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_38=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x72 0x72 0x79 0x2E    // '??Sorry.' \n\t0x20 0x59 0x6F 0x75 0x20 0x63 0x61 0x6E    // ' You can' \n\t0x27 0x74 0x20 0x67 0x65 0x74 0x20 0x74    // ''t get t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x4D 0x61    // 'o the Ma' \n\t0x70 0x20 0x66 0x72 0x6F 0x6D 0x20 0x68    // 'p from h' \n\t0x65 0x72 0x65 0x2E 0x20 0x20 0x20 0x0D    // 'ere.   ?' \n\t0x0A 0x0D 0x0A 0x47 0x6F 0x20 0x74 0x6F    // '???Go to' \n\t0x20 0x6F 0x6E 0x65 0x20 0x6F 0x66 0x20    // ' one of ' \n\t0x74 0x68 0x65 0x20 0x72 0x6F 0x6F 0x6D    // 'the room' \n\t0x73 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 's in the' \n\t0x20 0x62 0x75 0x69 0x6C 0x64 0x69 0x6E    // ' buildin' \n\t0x67 0x20 0x61 0x6E 0x64 0x20 0x74 0x72    // 'g and tr' \n\t0x79 0x20 0x61 0x67 0x61 0x69 0x6E 0x2E    // 'y again.' \n\t0x0D 0x0A 0x0D 0x0A 0x01                   // '?????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_54= ktpcercSndMidiDeviceBusy\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_54, __HELP_NAME(\"ktpcercSndMidiDeviceBusy\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_54, __HELP_NAME(\"ktpcercSndMidiDeviceBusy\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_33=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_54, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSndMidiDeviceBusy\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_33=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_54, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_33=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_33=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6A 0x00 0x00 0x01    // '????j???' \n\t0x01 0x00 0xFC 0xFF 0x6C 0x00 0x00 0x01    // '??l???' \n\t0x01 0x00 0x00 0x00 0xFD 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0xFC 0xFF 0xFF 0x00 0x00 0x01    // '?????' \n\t0x00 0x00 0xFC 0xFF 0x01 0x01 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x05 0x00 0x00 0xFD 0x68 0x00 0x00 0x03    // '???h???' \n\t0x00 0x00 0x00 0x00 0x01 0x01 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x02 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x01 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02 0x01 0x01 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_33=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x75 0x73 0x79 0x20 0x73    // '??Busy s' \n\t0x69 0x67 0x6E 0x61 0x6C 0x21 0x20 0x41    // 'ignal! A' \n\t0x6E 0x6F 0x74 0x68 0x65 0x72 0x20 0x70    // 'nother p' \n\t0x72 0x6F 0x67 0x72 0x61 0x6D 0x20 0x69    // 'rogram i' \n\t0x73 0x20 0x75 0x73 0x69 0x6E 0x67 0x20    // 's using ' \n\t0x4D 0x49 0x44 0x49 0x20 0x73 0x6F 0x75    // 'MIDI sou' \n\t0x6E 0x64 0x20 0x6E 0x6F 0x77 0x2C 0x20    // 'nd now, ' \n\t0x6F 0x72 0x20 0x79 0x6F 0x75 0x72 0x20    // 'or your ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x63 0x61    // 'sound ca' \n\t0x72 0x64 0x20 0x6D 0x61 0x79 0x20 0x6E    // 'rd may n' \n\t0x6F 0x74 0x20 0x62 0x65 0x20 0x73 0x65    // 'ot be se' \n\t0x74 0x20 0x75 0x70 0x20 0x74 0x6F 0x20    // 't up to ' \n\t0x70 0x6C 0x61 0x79 0x20 0x4D 0x49 0x44    // 'play MID' \n\t0x49 0x2E 0x0D 0x0A 0x0D 0x0A 0x49 0x66    // 'I.????If' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x73 0x6F    // ' your so' \n\t0x75 0x6E 0x64 0x20 0x63 0x61 0x72 0x64    // 'und card' \n\t0x20 0x69 0x73 0x20 0x73 0x65 0x74 0x20    // ' is set ' \n\t0x75 0x70 0x20 0x74 0x6F 0x20 0x70 0x6C    // 'up to pl' \n\t0x61 0x79 0x20 0x4D 0x49 0x44 0x49 0x20    // 'ay MIDI ' \n\t0x61 0x6E 0x64 0x20 0x79 0x6F 0x75 0x20    // 'and you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x75 0x73 0x65 0x20 0x4D 0x49 0x44 0x49    // 'use MIDI' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x69    // ' sound i' \n\t0x6E 0x20 0x33 0x44 0x20 0x4D 0x6F 0x76    // 'n 3D Mov' \n\t0x69 0x65 0x20 0x4D 0x61 0x6B 0x65 0x72    // 'ie Maker' \n\t0x20 0x72 0x69 0x67 0x68 0x74 0x20 0x61    // ' right a' \n\t0x77 0x61 0x79 0x2C 0x20 0x73 0x77 0x69    // 'way, swi' \n\t0x74 0x63 0x68 0x20 0x74 0x6F 0x20 0x74    // 'tch to t' \n\t0x68 0x65 0x20 0x6F 0x74 0x68 0x65 0x72    // 'he other' \n\t0x20 0x70 0x72 0x6F 0x67 0x72 0x61 0x6D    // ' program' \n\t0x20 0x61 0x6E 0x64 0x20 0x63 0x6C 0x6F    // ' and clo' \n\t0x73 0x65 0x20 0x69 0x74 0x2E 0x20 0x0D    // 'se it. ?' \n\t0x0A 0x0D 0x0A 0x01                        // '????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_55= ktpcercSocGenericError\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_55, __HELP_NAME(\"ercSocGenericError\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_55, __HELP_NAME(\"ercSocGenericError\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonError 0x0 0x0 ktpcErrorScript 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_32=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_55, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonError\"\n\tITEM\n\t\t\"ktpcercSocGenericError\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcErrorScript\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_32=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_55, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_32=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_32=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x23 0x00 0x00 0x40    // '????#??@' \n\t0x02 0x00 0x00 0x00 0x24 0x00 0x00 0x40    // '????$??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x80    // '????#??' \n\t0x00 0x00 0x00 0x02 0x23 0x00 0x00 0xC0    // '????#??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_32=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x6E 0x20 0x69 0x6E 0x74    // '??An int' \n\t0x65 0x72 0x6E 0x61 0x6C 0x20 0x65 0x72    // 'ernal er' \n\t0x72 0x6F 0x72 0x20 0x6F 0x63 0x63 0x75    // 'ror occu' \n\t0x72 0x72 0x65 0x64 0x3A 0x20 0x7E 0x31    // 'rred: ~1' \n\t0x33 0x32 0x31 0x0D 0x0A 0x01              // '321???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/gadget1.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpc1Gadget00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"The Conversation\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"The Conversation\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc1Gadget00\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x88 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x16 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x72 0x65 0x61 0x74 0x65    // '??Create' \n\t0x20 0x61 0x20 0x63 0x6F 0x6E 0x76 0x65    // ' a conve' \n\t0x72 0x73 0x61 0x74 0x69 0x6F 0x6E 0x2E    // 'rsation.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpc1Gadget01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Step 1:  Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Step 1:  Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc1Gadget01\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x31    // '??Step 1' \n\t0x3A 0x20 0x20 0x41 0x63 0x74 0x69 0x6F    // ':  Actio' \n\t0x6E                                       // 'n' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpc1Gadget02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Step 2:  Speech\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Step 2:  Speech\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc1Gadget02\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x32    // '??Step 2' \n\t0x3A 0x20 0x20 0x53 0x70 0x65 0x65 0x63    // ':  Speec' \n\t0x68                                       // 'h' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpc1Gadget03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Step 3:  Camera Angles\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Step 3:  Camera Angles\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc1Gadget03\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x33    // '??Step 3' \n\t0x3A 0x20 0x20 0x43 0x61 0x6D 0x65 0x72    // ':  Camer' \n\t0x61 0x20 0x41 0x6E 0x67 0x6C 0x65 0x73    // 'a Angles' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpc1Gadget04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Step 4:  Speech\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Step 4:  Speech\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc1Gadget04\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x34    // '??Step 4' \n\t0x3A 0x20 0x20 0x53 0x70 0x65 0x65 0x63    // ':  Speec' \n\t0x68                                       // 'h' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpc1Gadget05\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"Step 5:  Camera Angles\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"Step 5:  Camera Angles\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc1Gadget05\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x35    // '??Step 5' \n\t0x3A 0x20 0x20 0x43 0x61 0x6D 0x65 0x72    // ':  Camer' \n\t0x61 0x20 0x41 0x6E 0x67 0x6C 0x65 0x73    // 'a Angles' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpc1Gadget06\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"Step 6:  Speech\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"Step 6:  Speech\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc1Gadget06\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x36    // '??Step 6' \n\t0x3A 0x20 0x20 0x53 0x70 0x65 0x65 0x63    // ':  Speec' \n\t0x68                                       // 'h' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpc1Gadget07\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"The Conversation\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"The Conversation\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc1Gadget07\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x88 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x16 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x72 0x65 0x61 0x74 0x65    // '??Create' \n\t0x20 0x61 0x20 0x63 0x6F 0x6E 0x76 0x65    // ' a conve' \n\t0x72 0x73 0x61 0x74 0x69 0x6F 0x6E 0x2E    // 'rsation.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/gadget2.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpc2Gadget00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Kim, Hiro\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Kim, Hiro\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc2Gadget00\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x66 0x00 0x00 0x00    // '????f???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0xFF 0xFF 0x1F 0x00 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x1F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x65    // '??Change' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x27 0x73 0x20 0x61 0x72 0x72 0x69    // 'r's arri' \n\t0x76 0x61 0x6C 0x20 0x74 0x69 0x6D 0x65    // 'val time' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpc2Gadget01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Step 1:  Synchronize\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Step 1:  Synchronize\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc2Gadget01\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0xFF 0xFF 0x14 0x00 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x31    // '??Step 1' \n\t0x3A 0x20 0x20 0x53 0x79 0x6E 0x63 0x68    // ':  Synch' \n\t0x72 0x6F 0x6E 0x69 0x7A 0x65              // 'ronize' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpc2Gadget02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Step 2:  Remove Everything\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Step 2:  Remove Everything\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc2Gadget02\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x74 0x00 0x00 0x00    // '????t???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x32    // '??Step 2' \n\t0x3A 0x20 0x20 0x52 0x65 0x6D 0x6F 0x76    // ':  Remov' \n\t0x65 0x20 0x45 0x76 0x65 0x72 0x79 0x74    // 'e Everyt' \n\t0x68 0x69 0x6E 0x67 0x20 0x42 0x65 0x66    // 'hing Bef' \n\t0x6F 0x72 0x65                             // 'ore' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpc2Gadget03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Kim, Hiro\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Kim, Hiro\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc2Gadget03\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x66 0x00 0x00 0x00    // '????f???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0xFF 0xFF 0x1F 0x00 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x1F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x65    // '??Change' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x27 0x73 0x20 0x61 0x72 0x72 0x69    // 'r's arri' \n\t0x76 0x61 0x6C 0x20 0x74 0x69 0x6D 0x65    // 'val time' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/gadget3.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpc3Gadget00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Morning Jog\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Morning Jog\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc3Gadget00\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x22 0x00 0x00 0x03    // '???\"???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x65    // '??Change' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x69    // ' an acti' \n\t0x6F 0x6E 0x20 0x77 0x69 0x74 0x68 0x6F    // 'on witho' \n\t0x75 0x74 0x20 0x64 0x72 0x61 0x67 0x67    // 'ut dragg' \n\t0x69 0x6E 0x67 0x2E                        // 'ing.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpc3Gadget01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Step 1:  Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Step 1:  Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc3Gadget01\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x31    // '??Step 1' \n\t0x3A 0x20 0x20 0x41 0x63 0x74 0x69 0x6F    // ':  Actio' \n\t0x6E                                       // 'n' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpc3Gadget02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Step 2:  Speech\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Step 2:  Speech\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc3Gadget02\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x32    // '??Step 2' \n\t0x3A 0x20 0x20 0x53 0x70 0x65 0x65 0x63    // ':  Speec' \n\t0x68                                       // 'h' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpc3Gadget03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Step 3:  Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Step 3:  Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc3Gadget03\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x33    // '??Step 3' \n\t0x3A 0x20 0x20 0x41 0x63 0x74 0x69 0x6F    // ':  Actio' \n\t0x6E                                       // 'n' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpc3Gadget04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Step 4:  Speech\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Step 4:  Speech\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc3Gadget04\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x34    // '??Step 4' \n\t0x3A 0x20 0x20 0x53 0x70 0x65 0x65 0x63    // ':  Speec' \n\t0x68                                       // 'h' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpc3Gadget05\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"Morning Jog\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"Morning Jog\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc3Gadget05\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x22 0x00 0x00 0x03    // '???\"???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x65    // '??Change' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x69    // ' an acti' \n\t0x6F 0x6E 0x20 0x77 0x69 0x74 0x68 0x6F    // 'on witho' \n\t0x75 0x74 0x20 0x64 0x72 0x61 0x67 0x67    // 'ut dragg' \n\t0x69 0x6E 0x67 0x2E                        // 'ing.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/gadget4.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpc4Gadget00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"The Bridge\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"The Bridge\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc4Gadget00\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6F 0x00 0x00 0x00    // '????o???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x1A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x6B 0x65 0x20 0x74    // '??Make t' \n\t0x68 0x69 0x6E 0x67 0x73 0x20 0x6D 0x6F    // 'hings mo' \n\t0x76 0x65 0x20 0x74 0x6F 0x67 0x65 0x74    // 've toget' \n\t0x68 0x65 0x72 0x2E                        // 'her.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpc4Gadget01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Step 1:  Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Step 1:  Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc4Gadget01\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x31    // '??Step 1' \n\t0x3A 0x20 0x20 0x41 0x63 0x74 0x69 0x6F    // ':  Actio' \n\t0x6E                                       // 'n' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpc4Gadget02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Step 2:  Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Step 2:  Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc4Gadget02\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x32    // '??Step 2' \n\t0x3A 0x20 0x20 0x50 0x72 0x6F 0x70         // ':  Prop' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpc4Gadget03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Step 3:  Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Step 3:  Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc4Gadget03\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x33    // '??Step 3' \n\t0x3A 0x20 0x20 0x41 0x63 0x74 0x69 0x6F    // ':  Actio' \n\t0x6E                                       // 'n' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpc4Gadget04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Step 4:  Copy Path\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Step 4:  Copy Path\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc4Gadget04\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x34    // '??Step 4' \n\t0x3A 0x20 0x20 0x43 0x6F 0x70 0x79 0x20    // ':  Copy ' \n\t0x50 0x61 0x74 0x68                        // 'Path' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpc4Gadget07\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"The Bridge\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"The Bridge\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc4Gadget07\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6F 0x00 0x00 0x00    // '????o???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x1A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x6B 0x65 0x20 0x74    // '??Make t' \n\t0x68 0x69 0x6E 0x67 0x73 0x20 0x6D 0x6F    // 'hings mo' \n\t0x76 0x65 0x20 0x74 0x6F 0x67 0x65 0x74    // 've toget' \n\t0x68 0x65 0x72 0x2E                        // 'her.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/gadget5.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpc5Gadget00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Tall, Dark, Handsome\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Tall, Dark, Handsome\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc5Gadget00\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x80 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x72 0x61 0x6E 0x73 0x66    // '??Transf' \n\t0x6F 0x72 0x6D 0x20 0x61 0x6E 0x20 0x61    // 'orm an a' \n\t0x63 0x74 0x6F 0x72 0x2E                   // 'ctor.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpc5Gadget01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Step 1:  Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Step 1:  Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc5Gadget01\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x31    // '??Step 1' \n\t0x3A 0x20 0x20 0x41 0x63 0x74 0x69 0x6F    // ':  Actio' \n\t0x6E                                       // 'n' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpc5Gadget02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Step 2:  Camera Angle\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Step 2:  Camera Angle\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc5Gadget02\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x32    // '??Step 2' \n\t0x3A 0x20 0x20 0x43 0x61 0x6D 0x65 0x72    // ':  Camer' \n\t0x61 0x20 0x41 0x6E 0x67 0x6C 0x65 0x73    // 'a Angles' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpc5Gadget03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Step 3:  Prop\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Step 3:  Prop\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc5Gadget03\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x33    // '??Step 3' \n\t0x3A 0x20 0x20 0x50 0x72 0x6F 0x70         // ':  Prop' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpc5Gadget04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Step 4:  Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Step 4:  Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc5Gadget04\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x34    // '??Step 4' \n\t0x3A 0x20 0x20 0x41 0x63 0x74 0x69 0x6F    // ':  Actio' \n\t0x6E                                       // 'n' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpc5Gadget05\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"Step 5:  Sound Effects\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"Step 5:  Sound Effects\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc5Gadget05\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x35    // '??Step 5' \n\t0x3A 0x20 0x20 0x53 0x6F 0x75 0x6E 0x64    // ':  Sound' \n\t0x20 0x45 0x66 0x66 0x65 0x63 0x74 0x73    // ' Effects' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpc5Gadget06\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"Step 6:  Actor\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"Step 6:  Actor\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc5Gadget06\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x36    // '??Step 6' \n\t0x3A 0x20 0x20 0x41 0x63 0x74 0x6F 0x72    // ':  Actor' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpc5Gadget07\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"Step 7:  Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"Step 7:  Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc5Gadget07\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x37    // '??Step 7' \n\t0x3A 0x20 0x20 0x41 0x63 0x74 0x69 0x6F    // ':  Actio' \n\t0x6E                                       // 'n' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpc5Gadget08\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"Step 8:  Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"Step 8:  Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc5Gadget08\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x38    // '??Step 8' \n\t0x3A 0x20 0x20 0x41 0x63 0x74 0x69 0x6F    // ':  Actio' \n\t0x6E                                       // 'n' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= ktpc5Gadget09\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"Step 9:  Size Tools\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"Step 9:  Size Tools\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc5Gadget09\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x39    // '??Step 9' \n\t0x3A 0x20 0x20 0x53 0x69 0x7A 0x65 0x20    // ':  Size ' \n\t0x54 0x6F 0x6F 0x6C 0x73                   // 'Tools' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= ktpc5Gadget0A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"Tall, Dark, Handsome\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"Tall, Dark, Handsome\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc5Gadget0A\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x80 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x72 0x61 0x6E 0x73 0x66    // '??Transf' \n\t0x6F 0x72 0x6D 0x20 0x61 0x6E 0x20 0x61    // 'orm an a' \n\t0x63 0x74 0x6F 0x72 0x2E                   // 'ctor.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/gadget6.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpc6Gadget00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Missing Mummy\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Missing Mummy\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc6Gadget00\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x70 0x00 0x00 0x00    // '????p???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0xFF 0xFF 0x1C 0x00 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x1C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x55 0x73 0x65 0x20 0x6D 0x75    // '??Use mu' \n\t0x73 0x69 0x63 0x20 0x74 0x6F 0x20 0x63    // 'sic to c' \n\t0x72 0x65 0x61 0x74 0x65 0x20 0x74 0x65    // 'reate te' \n\t0x6E 0x73 0x69 0x6F 0x6E 0x2E              // 'nsion.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpc6Gadget01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Step 1:  Music\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Step 1:  Music\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc6Gadget01\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6A 0x00 0x00 0x00    // '????j???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x31    // '??Step 1' \n\t0x3A 0x20 0x20 0x4D 0x75 0x73 0x69 0x63    // ':  Music' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpc6Gadget02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Step 2:  Action Matcher\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Step 2:  Action Matcher\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc6Gadget02\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x94 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x32    // '??Step 2' \n\t0x3A 0x20 0x20 0x41 0x63 0x74 0x69 0x6F    // ':  Actio' \n\t0x6E 0x20 0x4D 0x61 0x74 0x63 0x68 0x65    // 'n Matche' \n\t0x72                                       // 'r' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpc6Gadget03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Step 3:  Action Matcher\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Step 3:  Action Matcher\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc6Gadget03\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x90 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x33    // '??Step 3' \n\t0x3A 0x20 0x41 0x63 0x74 0x69 0x6F 0x6E    // ': Action' \n\t0x20 0x4D 0x61 0x74 0x63 0x68 0x65 0x72    // ' Matcher' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpc6Gadget04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Step 4:  Wait for Sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Step 4:  Wait for Sound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc6Gadget04\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x88 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x34    // '??Step 4' \n\t0x3A 0x0D 0x0A 0x57 0x61 0x69 0x74 0x20    // ':??Wait ' \n\t0x66 0x6F 0x72 0x20 0x53 0x6F 0x75 0x6E    // 'for Soun' \n\t0x64 0x20 0x74 0x6F 0x20 0x45 0x6E 0x64    // 'd to End' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpc6Gadget05\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"Step 5:  Remove Sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"Step 5:  Remove Sound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc6Gadget05\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x97 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x65 0x70 0x20 0x35    // '??Step 5' \n\t0x3A 0x20 0x20 0x52 0x65 0x6D 0x6F 0x76    // ':  Remov' \n\t0x65 0x20 0x61 0x20 0x53 0x6F 0x75 0x6E    // 'e a Soun' \n\t0x64                                       // 'd' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpc6Gadget06\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"Missing Mummy\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"Missing Mummy\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonLabel kgobGadgetText 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonLabel\"\n\tITEM\n\t\t\"ktpc6Gadget06\"\n\tITEM\n\t\t\"kgobGadgetText\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x70 0x00 0x00 0x00    // '????p???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0xFF 0xFF 0x1C 0x00 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x1C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x55 0x73 0x65 0x20 0x6D 0x75    // '??Use mu' \n\t0x73 0x69 0x63 0x20 0x74 0x6F 0x20 0x63    // 'sic to c' \n\t0x72 0x65 0x61 0x74 0x65 0x20 0x74 0x65    // 'reate te' \n\t0x6E 0x73 0x69 0x6F 0x6E 0x2E              // 'nsion.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/guidhelp.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= CO__To_see_the_scenes\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"CO--To see the scenes you \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"CO--To see the scenes you \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobGuideHelp kidSettingsBrowser kidPlayGuideSounds 0x0 0x0 0x57415645 kwavGuideHelp00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"CO__To_see_the_scenes\"\n\tITEM\n\t\t\"kgobGuideHelp\"\n\tITEM\n\t\t\"kidSettingsBrowser\"\n\tITEM\n\t\t\"kidPlayGuideSounds\"\n\tITEM\n\t\t\"kwavGuideHelp00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7F 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobCancelButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobCancelButton\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x03    // '????-???' \n\t0x0A 0x00 0x00 0xFD 0x3A 0x00 0x00 0x03    // '???:???' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x40    // '????=??@' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x80    // '????=??' \n\t0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3D 0x00 0x00 0x82    // '????=??' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0xC0    // '????=??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x63 0x65    // ' the sce' \n\t0x6E 0x65 0x73 0x20 0x79 0x6F 0x75 0x20    // 'nes you ' \n\t0x63 0x61 0x6E 0x20 0x63 0x68 0x6F 0x6F    // 'can choo' \n\t0x73 0x65 0x20 0x66 0x72 0x6F 0x6D 0x2C    // 'se from,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x53    // ' click S' \n\t0x63 0x65 0x6E 0x65 0x20 0x43 0x68 0x6F    // 'cene Cho' \n\t0x69 0x63 0x65 0x73 0x2E 0x0D 0x0A 0x01    // 'ices.???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= CO__Click_the_scene_you_want\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"CO--Click the scene you want...\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"CO--Click the scene you want...\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobGuideHelp 0x0 kidPlayGuideSounds 0xAA 0x32 0x57415645 kwavGuideHelp01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Click_the_scene_you_want\"\n\tITEM\n\t\t\"kgobGuideHelp\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayGuideSounds\"\n\tITEM\n\t\t\"kwavGuideHelp01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x73 0x63 0x65 0x6E    // 'the scen' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x2E                             // 'nt.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= CO___then_click_the_camera\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"CO--Click the camera\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"CO--Click the camera\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobGuideHelp 0x0 kidPlayGuideSounds 0x140 0x32 0x57415645 kwavGuideHelp02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO___then_click_the_camera\"\n\tITEM\n\t\t\"kgobGuideHelp\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayGuideSounds\"\n\tITEM\n\t\t\"kwavGuideHelp02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4B 0x00 0x00 0x01    // '????K???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x65 0x6E 0x20 0x63    // '??Then c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x63 0x61 0x6D 0x65 0x72 0x61 0x20    // ' camera ' \n\t0x61 0x6E 0x67 0x6C 0x65 0x20 0x79 0x6F    // 'angle yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x75 0x73 0x65 0x20 0x61 0x74    // 'o use at' \n\t0x20 0x74 0x68 0x65 0x20 0x62 0x65 0x67    // ' the beg' \n\t0x69 0x6E 0x6E 0x69 0x6E 0x67 0x20 0x6F    // 'inning o' \n\t0x66 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'f your m' \n\t0x6F 0x76 0x69 0x65 0x2E                   // 'ovie.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= CO__When_you_re_ready\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"CO--When_you're_ready\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"CO--When_you're_ready\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobGuideHelp kidActorsCover kidPlayGuideSounds 0x0 0x0 0x57415645 kwavGuideHelp03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"CO__When_you_re_ready\"\n\tITEM\n\t\t\"kgobGuideHelp\"\n\tITEM\n\t\t\"kidActorsCover\"\n\tITEM\n\t\t\"kidPlayGuideSounds\"\n\tITEM\n\t\t\"kwavGuideHelp03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x03    // '????)???' \n\t0x0A 0x00 0x00 0xFD 0x37 0x00 0x00 0x03    // '???7???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x68 0x65 0x6E 0x20 0x79    // '??When y' \n\t0x6F 0x75 0x92 0x72 0x65 0x20 0x72 0x65    // 'oure re' \n\t0x61 0x64 0x79 0x20 0x74 0x6F 0x20 0x61    // 'ady to a' \n\t0x64 0x64 0x20 0x61 0x6E 0x20 0x61 0x63    // 'dd an ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x63 0x6C 0x69    // 'tor, cli' \n\t0x63 0x6B 0x20 0x41 0x63 0x74 0x6F 0x72    // 'ck Actor' \n\t0x73 0x20 0x26 0x20 0x50 0x72 0x6F 0x70    // 's & Prop' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= CO__Click_Actors\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"CO--Click Actors\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"CO--Click Actors\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobGuideHelp kidActorsBrowser kidPlayGuideSounds 0x0 0x0 0x57415645 kwavGuideHelp04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"CO__Click_Actors\"\n\tITEM\n\t\t\"kgobGuideHelp\"\n\tITEM\n\t\t\"kidActorsBrowser\"\n\tITEM\n\t\t\"kidPlayGuideSounds\"\n\tITEM\n\t\t\"kwavGuideHelp04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4A 0x00 0x00 0x00    // '????J???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x41 0x63 0x74 0x6F 0x72 0x73 0x2E         // 'Actors.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= CO__Click_the_actor_you_want\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO--Click the actor you want\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO--Click the actor you want\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobGuideHelp 0x0 kidPlayGuideSounds 0xAA 0x32 0x57415645 kwavGuideHelp05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Click_the_actor_you_want\"\n\tITEM\n\t\t\"kgobGuideHelp\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayGuideSounds\"\n\tITEM\n\t\t\"kwavGuideHelp05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'r you wa' \n\t0x6E 0x74 0x2E                             // 'nt.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= CO__Click_where_you_want_to\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--Click where you want to \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--Click where you want to \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobGuideHelp 0x0 kidPlayGuideSounds 0x140 0x6E 0x57415645 kwavGuideHelp06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Click_where_you_want_to\"\n\tITEM\n\t\t\"kgobGuideHelp\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayGuideSounds\"\n\tITEM\n\t\t\"kwavGuideHelp06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x88 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2A 0x00 0x00 0x82    // '????*??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'o place ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2E 0x0D 0x0A 0x49 0x66 0x20 0x79    // 'r.??If y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'to move ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x20 0x75 0x70 0x20 0x6F 0x72 0x20    // 'r up or ' \n\t0x64 0x6F 0x77 0x6E 0x2C 0x20 0x68 0x6F    // 'down, ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x74 0x68 0x65 0x20 0x55 0x70 0x20 0x6F    // 'the Up o' \n\t0x72 0x20 0x44 0x6F 0x77 0x6E 0x20 0x41    // 'r Down A' \n\t0x72 0x72 0x6F 0x77 0x20 0x6B 0x65 0x79    // 'rrow key' \n\t0x20 0x62 0x65 0x66 0x6F 0x72 0x65 0x20    // ' before ' \n\t0x79 0x6F 0x75 0x20 0x63 0x6C 0x69 0x63    // 'you clic' \n\t0x6B 0x2E                                  // 'k.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= CO__To_make_an_actor_move\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO--To make an actor move\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO--To make an actor move\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobGuideHelp kidActorsActionBrowser kidPlayGuideSounds 0x0 0x0 0x57415645 kwavGuideHelp07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"CO__To_make_an_actor_move\"\n\tITEM\n\t\t\"kgobGuideHelp\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayGuideSounds\"\n\tITEM\n\t\t\"kwavGuideHelp07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6E 0x00 0x00 0x00    // '????n???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x61 0x6B    // '??To mak' \n\t0x65 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'e an act' \n\t0x6F 0x72 0x20 0x20 0x6D 0x6F 0x76 0x65    // 'or  move' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x41 0x63 0x74 0x69 0x6F 0x6E 0x73 0x2E    // 'Actions.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= CO__Click_the_actor\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"CO--Click the actor.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"CO--Click the actor.\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobGuideHelp 0x0 kidPlayGuideSounds 0x140 0x6E 0x57415645 kwavGuideHelp08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Click_the_actor\"\n\tITEM\n\t\t\"kgobGuideHelp\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayGuideSounds\"\n\tITEM\n\t\t\"kwavGuideHelp08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x5C 0x00 0x00 0x00    // '????\\???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2E                                  // 'r.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= CO__Click_the_action_you\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO--Click the action you\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO--Click the action you\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobGuideHelp 0x0 kidPlayGuideSounds 0x140 0x32 0x57415645 kwavGuideHelp09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Click_the_action_you\"\n\tITEM\n\t\t\"kgobGuideHelp\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayGuideSounds\"\n\tITEM\n\t\t\"kwavGuideHelp09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Tip__Choose_Start_Position __HELP_SYMBOL( STN \"Tip__Choose_Start_Position\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x01 0x00 0x00 0x00 0x6E 0x00 0x00 0x01    // '????n???' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0x40    // '????R??@' \n\t0x01 0x00 0x00 0x00 0x6E 0x00 0x00 0x40    // '????n??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x52 0x00 0x00 0x82    // '????R??' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0xC0    // '????R??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x69    // 'the acti' \n\t0x6F 0x6E 0x20 0x79 0x6F 0x75 0x20 0x77    // 'on you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x70    // 'ant to p' \n\t0x72 0x65 0x76 0x69 0x65 0x77 0x2E 0x20    // 'review. ' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // ' When yo' \n\t0x75 0x20 0x66 0x69 0x6E 0x64 0x20 0x74    // 'u find t' \n\t0x68 0x65 0x20 0x6F 0x6E 0x65 0x20 0x79    // 'he one y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x2C    // 'ou want,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x4F    // ' click O' \n\t0x4B 0x2E 0x0D 0x0A 0x01 0x20 0x20 0x53    // 'K.???  S' \n\t0x65 0x74 0x74 0x69 0x6E 0x67 0x20 0x74    // 'etting t' \n\t0x68 0x65 0x20 0x73 0x74 0x61 0x72 0x74    // 'he start' \n\t0x69 0x6E 0x67 0x20 0x70 0x6F 0x73 0x65    // 'ing pose' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= CO__Drag_the_actor\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO--Drag the actor\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO--Drag the actor\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobGuideHelp 0x0 kidPlayGuideSounds 0x140 0x6E 0x57415645 kwavGuideHelp0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Drag_the_actor\"\n\tITEM\n\t\t\"kgobGuideHelp\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayGuideSounds\"\n\tITEM\n\t\t\"kwavGuideHelp0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x00 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Tip___Move_Up_Down __HELP_SYMBOL( STN \"Tip___Move_Up_Down\" )\n\tFREE\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def_Drag __HELP_SYMBOL( STN \"Def_Drag\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x04 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x7F 0x00 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x06 0x00 0x00 0x00 0x04 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x7F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xA3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x31 0x00 0x00 0x82    // '????1??' \n\t0x05 0x00 0x00 0x00 0x81 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x20 0x74    // '??Drag t' \n\t0x68 0x65 0x20 0x61 0x63 0x74 0x6F 0x72    // 'he actor' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x69 0x74 0x20 0x74 0x6F 0x20 0x67 0x6F    // 'it to go' \n\t0x2E 0x0D 0x0A 0x2D 0x2D 0x6F 0x72 0x2D    // '.??--or-' \n\t0x2D 0x0D 0x0A 0x4D 0x6F 0x76 0x65 0x20    // '-??Move ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x63 0x75 0x72 0x73 0x6F 0x72    // 'e cursor' \n\t0x20 0x6F 0x76 0x65 0x72 0x20 0x74 0x68    // ' over th' \n\t0x65 0x20 0x61 0x63 0x74 0x6F 0x72 0x20    // 'e actor ' \n\t0x74 0x68 0x65 0x6E 0x20 0x68 0x6F 0x6C    // 'then hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x74    // 'd down t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x20    // ' button ' \n\t0x61 0x6E 0x64 0x20 0x77 0x61 0x69 0x74    // 'and wait' \n\t0x2E 0x0D 0x0A 0x01 0x4D 0x6F 0x76 0x69    // '.???Movi' \n\t0x6E 0x67 0x20 0x75 0x70 0x20 0x6F 0x72    // 'ng up or' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x61 0x6E    // ' down an' \n\t0x64 0x20 0x6E 0x65 0x61 0x72 0x20 0x6F    // 'd near o' \n\t0x72 0x20 0x66 0x61 0x72                   // 'r far' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= CO__To_see_what_your\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO--To see what your \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO--To see what your \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobGuideHelp kidPlay kidPlayGuideSounds 0x0 0x0 0x57415645 kwavGuideHelp0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__To_see_what_your\"\n\tITEM\n\t\t\"kgobGuideHelp\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayGuideSounds\"\n\tITEM\n\t\t\"kwavGuideHelp0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x40 0x00 0x00 0x01    // '????@???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x03    // '????4???' \n\t0x0A 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x77 0x68 0x61 0x74 0x20 0x79 0x6F    // ' what yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x6C 0x6F 0x6F 0x6B 0x73 0x20 0x6C    // ' looks l' \n\t0x69 0x6B 0x65 0x20 0x73 0x6F 0x20 0x66    // 'ike so f' \n\t0x61 0x72 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ar, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x50 0x6C    // 'k the Pl' \n\t0x61 0x79 0x20 0x62 0x75 0x74 0x74 0x6F    // 'ay butto' \n\t0x6E 0x2E                                  // 'n.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= CO__If_you_want_to_save\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"CO--If you want to save \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"CO--If you want to save \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobGuideHelp 0x0 kidPlayGuideSounds 0x140 0xF0 0x57415645 kwavGuideHelp0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"CO__If_you_want_to_save\"\n\tITEM\n\t\t\"kgobGuideHelp\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayGuideSounds\"\n\tITEM\n\t\t\"kwavGuideHelp0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x01    // '????*???' \n\t0x01 0x00 0x00 0x00 0x2E 0x00 0x00 0x01    // '????.???' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x01    // '????/???' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x03    // '????*???' \n\t0x0A 0x00 0x00 0xFD 0x2E 0x00 0x00 0x03    // '???.???' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x03    // '????/???' \n\t0x0A 0x00 0x00 0xFD 0x30 0x00 0x00 0x03    // '???0???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x66 0x20 0x79 0x6F 0x75    // '??If you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x73 0x61 0x76 0x65 0x20 0x79 0x6F    // ' save yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x2C 0x20 0x68 0x6F 0x6C 0x64 0x20 0x64    // ', hold d' \n\t0x6F 0x77 0x6E 0x20 0x43 0x74 0x72 0x6C    // 'own Ctrl' \n\t0x2B 0x53 0x2E                             // '+S.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= Tip__Choose_Start_Position\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"Tip: Set Starting Pose\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"Tip: Set Starting Pose\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobGuideHelpHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip__Choose_Start_Position\"\n\tITEM\n\t\t\"kgobGuideHelpHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x10 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0xA0 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xB8 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xBA 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xBA 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x53 0x65 0x74 0x74    // '??? Sett' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x73 0x74 0x61 0x72 0x74 0x69 0x6E 0x67    // 'starting' \n\t0x20 0x70 0x6F 0x73 0x65 0x0D 0x0A 0x57    // ' pose??W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x20    // 'hen you ' \n\t0x63 0x68 0x6F 0x6F 0x73 0x65 0x20 0x61    // 'choose a' \n\t0x6E 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'n action' \n\t0x2C 0x20 0x79 0x6F 0x75 0x20 0x63 0x61    // ', you ca' \n\t0x6E 0x20 0x64 0x65 0x63 0x69 0x64 0x65    // 'n decide' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x69    // 'the acti' \n\t0x6F 0x6E 0x20 0x74 0x6F 0x20 0x62 0x65    // 'on to be' \n\t0x67 0x69 0x6E 0x20 0x28 0x62 0x6F 0x74    // 'gin (bot' \n\t0x68 0x20 0x66 0x65 0x65 0x74 0x20 0x6F    // 'h feet o' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x67 0x72    // 'n the gr' \n\t0x6F 0x75 0x6E 0x64 0x2C 0x20 0x72 0x69    // 'ound, ri' \n\t0x67 0x68 0x74 0x20 0x66 0x6F 0x6F 0x74    // 'ght foot' \n\t0x20 0x75 0x70 0x2C 0x20 0x61 0x6E 0x64    // ' up, and' \n\t0x20 0x73 0x6F 0x20 0x6F 0x6E 0x29 0x2E    // ' so on).' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x73 0x65 0x74    // '??To set' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x61    // ' the sta' \n\t0x72 0x74 0x69 0x6E 0x67 0x20 0x70 0x6F    // 'rting po' \n\t0x73 0x65 0x0D 0x0A 0x95 0x09 0x43 0x6C    // 'se???Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x61 0x72 0x72 0x6F 0x77 0x73 0x20 0x74    // 'arrows t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x72 0x69    // 'o the ri' \n\t0x67 0x68 0x74 0x20 0x6F 0x66 0x20 0x53    // 'ght of S' \n\t0x65 0x74 0x20 0x53 0x74 0x61 0x72 0x74    // 'et Start' \n\t0x69 0x6E 0x67 0x20 0x50 0x6F 0x73 0x65    // 'ing Pose' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x79    // ' until y' \n\t0x6F 0x75 0x20 0x66 0x69 0x6E 0x64 0x20    // 'ou find ' \n\t0x74 0x68 0x65 0x20 0x73 0x74 0x61 0x72    // 'the star' \n\t0x74 0x69 0x6E 0x67 0x20 0x70 0x6F 0x73    // 'ting pos' \n\t0x69 0x74 0x69 0x6F 0x6E 0x20 0x79 0x6F    // 'ition yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x2E         // 'u want.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= Def_Drag\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobGuideHelpHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def_Drag\"\n\tITEM\n\t\t\"kgobGuideHelpHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x03    // '????y???' \n\t0x0A 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x79 0x00 0x00 0x80    // '????y??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x79 0x00 0x00 0x82    // '????y??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x0D 0x0A    // '??Drag??' \n\t0x31 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '1?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x73 0x20    // 'tton as ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'you move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x57    // 'se.??2?W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x76 0x65 0x20 0x66 0x69 0x6E 0x69 0x73    // 've finis' \n\t0x68 0x65 0x64 0x20 0x64 0x72 0x61 0x67    // 'hed drag' \n\t0x67 0x69 0x6E 0x67 0x2C 0x20 0x6C 0x65    // 'ging, le' \n\t0x74 0x20 0x67 0x6F 0x20 0x6F 0x66 0x20    // 't go of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x2E 0x0D 0x0A 0x54 0x69 0x70 0x20 0x66    // '.??Tip f' \n\t0x72 0x6F 0x6D 0x20 0x4D 0x63 0x5A 0x65    // 'rom McZe' \n\t0x65 0x3A 0x20 0x20 0x59 0x6F 0x75 0x27    // 'e:  You'' \n\t0x6C 0x6C 0x20 0x67 0x65 0x74 0x20 0x74    // 'll get t' \n\t0x68 0x65 0x20 0x62 0x65 0x73 0x74 0x20    // 'he best ' \n\t0x72 0x65 0x73 0x75 0x6C 0x74 0x73 0x20    // 'results ' \n\t0x69 0x66 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'if you m' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x73 0x6C    // 'mouse sl' \n\t0x6F 0x77 0x6C 0x79 0x20 0x61 0x73 0x20    // 'owly as ' \n\t0x79 0x6F 0x75 0x20 0x64 0x72 0x61 0x67    // 'you drag' \n\t0x2E 0x20                                  // '. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= Tip___Change_Start_Position\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"Tip:  Change Start Position\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"Tip:  Change Start Position\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobGuideHelpHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Change_Start_Position\"\n\tITEM\n\t\t\"kgobGuideHelpHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x01    // '????O???' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x01    // '????Q???' \n\t0x01 0x00 0x00 0x00 0x09 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x03    // '????)???' \n\t0x0A 0x00 0x00 0xFD 0x4F 0x00 0x00 0x03    // '???O???' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x80    // '????Q??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xBE 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x43 0x68 0x61 0x6E    // '??? Chan' \n\t0x67 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ging the' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x20    // ' action ' \n\t0x73 0x74 0x61 0x72 0x74 0x69 0x6E 0x67    // 'starting' \n\t0x20 0x70 0x6F 0x73 0x69 0x74 0x69 0x6F    // ' positio' \n\t0x6E 0x0D 0x0A 0x54 0x6F 0x20 0x63 0x68    // 'n??To ch' \n\t0x61 0x6E 0x67 0x65 0x20 0x74 0x68 0x65    // 'ange the' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x20    // ' action ' \n\t0x73 0x74 0x61 0x72 0x74 0x69 0x6E 0x67    // 'starting' \n\t0x20 0x70 0x6F 0x73 0x69 0x74 0x69 0x6F    // ' positio' \n\t0x6E 0x0D 0x0A 0x31 0x09 0x4D 0x6F 0x76    // 'n??1?Mov' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'e the mo' \n\t0x75 0x73 0x65 0x20 0x63 0x75 0x72 0x73    // 'use curs' \n\t0x6F 0x72 0x20 0x6F 0x76 0x65 0x72 0x20    // 'or over ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x77 0x68 0x6F 0x73    // 'ord whos' \n\t0x65 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'e action' \n\t0x20 0x73 0x74 0x61 0x72 0x74 0x69 0x6E    // ' startin' \n\t0x67 0x20 0x70 0x6F 0x73 0x69 0x74 0x69    // 'g positi' \n\t0x6F 0x6E 0x20 0x79 0x6F 0x75 0x20 0x77    // 'on you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ant to c' \n\t0x68 0x61 0x6E 0x67 0x65 0x2E 0x0D 0x0A    // 'hange.??' \n\t0x32 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '2?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x43 0x74 0x72 0x6C    // 'own Ctrl' \n\t0x20 0x61 0x6E 0x64 0x20 0x74 0x68 0x65    // ' and the' \n\t0x20 0x6D 0x6F 0x75 0x73 0x65 0x20 0x62    // ' mouse b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x20 0x75 0x6E    // 'utton un' \n\t0x74 0x69 0x6C 0x20 0x79 0x6F 0x75 0x20    // 'til you ' \n\t0x66 0x69 0x6E 0x64 0x20 0x74 0x68 0x65    // 'find the' \n\t0x20 0x70 0x6F 0x73 0x69 0x74 0x69 0x6F    // ' positio' \n\t0x6E 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'n you wa' \n\t0x6E 0x74 0x2E                             // 'nt.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= ktpcGuideHelp10\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO--To choose the camera angle\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO--To choose the camera angle\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobGuideHelp kidSettingsCameras kidPlayGuideSounds 0x0 0x0 0x57415645 kwavGuideHelp10\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcGuideHelp10\"\n\tITEM\n\t\t\"kgobGuideHelp\"\n\tITEM\n\t\t\"kidSettingsCameras\"\n\tITEM\n\t\t\"kidPlayGuideSounds\"\n\tITEM\n\t\t\"kwavGuideHelp10\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___camera_angle __HELP_SYMBOL( STN \"Def___camera_angle\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x03    // '????\"???' \n\t0x0A 0x00 0x00 0xFD 0x2F 0x00 0x00 0x03    // '???/???' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x1A 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x40    // '???????@' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x6F    // '??To cho' \n\t0x6F 0x73 0x65 0x20 0x74 0x68 0x65 0x20    // 'ose the ' \n\t0x63 0x61 0x6D 0x65 0x72 0x61 0x20 0x61    // 'camera a' \n\t0x6E 0x67 0x6C 0x65 0x2C 0x20 0x63 0x6C    // 'ngle, cl' \n\t0x69 0x63 0x6B 0x20 0x43 0x61 0x6D 0x65    // 'ick Came' \n\t0x72 0x61 0x20 0x41 0x6E 0x67 0x6C 0x65    // 'ra Angle' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= Def___camera_angle\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"Def:  Camera Angle\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"Def:  Camera Angle\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobGuideHelpHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___camera_angle\"\n\tITEM\n\t\t\"kgobGuideHelpHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA6 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0E 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x61 0x6D 0x65 0x72 0x61    // '??Camera' \n\t0x20 0x61 0x6E 0x67 0x6C 0x65 0x0D 0x0A    // ' angle??' \n\t0x45 0x61 0x63 0x68 0x20 0x73 0x63 0x65    // 'Each sce' \n\t0x6E 0x65 0x20 0x68 0x61 0x73 0x20 0x6D    // 'ne has m' \n\t0x61 0x6E 0x79 0x20 0x64 0x69 0x66 0x66    // 'any diff' \n\t0x65 0x72 0x65 0x6E 0x74 0x20 0x63 0x61    // 'erent ca' \n\t0x6D 0x65 0x72 0x61 0x20 0x61 0x6E 0x67    // 'mera ang' \n\t0x6C 0x65 0x73 0x2E 0x20 0x20 0x57 0x68    // 'les.  Wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x20 0x63    // 'en you c' \n\t0x68 0x6F 0x6F 0x73 0x65 0x20 0x61 0x20    // 'hoose a ' \n\t0x63 0x61 0x6D 0x65 0x72 0x61 0x20 0x61    // 'camera a' \n\t0x6E 0x67 0x6C 0x65 0x2C 0x20 0x79 0x6F    // 'ngle, yo' \n\t0x75 0x20 0x61 0x72 0x65 0x6E 0x27 0x74    // 'u aren't' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x69 0x6E    // ' changin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x73 0x63    // 'g the sc' \n\t0x65 0x6E 0x65 0x97 0x79 0x6F 0x75 0x27    // 'eneyou'' \n\t0x72 0x65 0x20 0x6A 0x75 0x73 0x74 0x20    // 're just ' \n\t0x63 0x68 0x61 0x6E 0x67 0x69 0x6E 0x67    // 'changing' \n\t0x20 0x74 0x68 0x65 0x20 0x76 0x69 0x65    // ' the vie' \n\t0x77 0x20 0x6F 0x66 0x20 0x74 0x68 0x61    // 'w of tha' \n\t0x74 0x20 0x73 0x63 0x65 0x6E 0x65 0x2E    // 't scene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_59= Tip___Freezing_Action\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_59, __HELP_NAME(\"Tip:  Freezing an Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_59, __HELP_NAME(\"Tip:  Freezing an Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobGuideHelpHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_59, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Freezing_Action\"\n\tITEM\n\t\t\"kgobGuideHelpHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_59, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4E 0x01 0x00 0x01    // '????N???' \n\t0x00 0x00 0x00 0x00 0xED 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x00 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x02 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x02 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x46 0x72 0x65    // '???  Fre' \n\t0x65 0x7A 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'ezing an' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x0D    // ' action?' \n\t0x0A 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // '?When yo' \n\t0x75 0x20 0x6D 0x6F 0x76 0x65 0x20 0x61    // 'u move a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x20    // 'n actor ' \n\t0x61 0x63 0x72 0x6F 0x73 0x73 0x20 0x74    // 'across t' \n\t0x68 0x65 0x20 0x73 0x74 0x61 0x67 0x65    // 'he stage' \n\t0x2C 0x20 0x79 0x6F 0x75 0x20 0x63 0x61    // ', you ca' \n\t0x6E 0x20 0x22 0x66 0x72 0x65 0x65 0x7A    // 'n \"freez' \n\t0x65 0x22 0x20 0x61 0x6E 0x20 0x61 0x63    // 'e\" an ac' \n\t0x74 0x69 0x6F 0x6E 0x2E 0x20 0x20 0x46    // 'tion.  F' \n\t0x6F 0x72 0x20 0x65 0x78 0x61 0x6D 0x70    // 'or examp' \n\t0x6C 0x65 0x2C 0x20 0x69 0x66 0x20 0x79    // 'le, if y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x20 0x74 0x6F 0x20 0x6A 0x75 0x6D 0x70    // ' to jump' \n\t0x20 0x75 0x70 0x20 0x69 0x6E 0x74 0x6F    // ' up into' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x69 0x72    // ' the air' \n\t0x2C 0x20 0x79 0x6F 0x75 0x20 0x63 0x61    // ', you ca' \n\t0x6E 0x20 0x66 0x72 0x65 0x65 0x7A 0x65    // 'n freeze' \n\t0x20 0x74 0x68 0x65 0x20 0x6A 0x75 0x6D    // ' the jum' \n\t0x70 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'p action' \n\t0x20 0x61 0x6E 0x64 0x20 0x63 0x6F 0x6E    // ' and con' \n\t0x74 0x69 0x6E 0x75 0x65 0x20 0x64 0x72    // 'tinue dr' \n\t0x61 0x67 0x67 0x69 0x6E 0x67 0x20 0x74    // 'agging t' \n\t0x6F 0x20 0x63 0x72 0x65 0x61 0x74 0x65    // 'o create' \n\t0x20 0x61 0x20 0x22 0x66 0x6C 0x6F 0x61    // ' a \"floa' \n\t0x74 0x69 0x6E 0x67 0x22 0x20 0x65 0x66    // 'ting\" ef' \n\t0x66 0x65 0x63 0x74 0x2E 0x0D 0x0A 0x54    // 'fect.??T' \n\t0x6F 0x20 0x66 0x72 0x65 0x65 0x7A 0x65    // 'o freeze' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x69    // ' an acti' \n\t0x6F 0x6E 0x0D 0x0A 0x95 0x09 0x48 0x6F    // 'on???Ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x53 0x68 0x69 0x66 0x74 0x20 0x61 0x73    // 'Shift as' \n\t0x20 0x79 0x6F 0x75 0x20 0x64 0x72 0x61    // ' you dra' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'g the ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x77 0x68    // ' word wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x69 0x74 0x2E    // 'want it.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5C= Tip___Move_Up_Down\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5C, __HELP_NAME(\"Tip:  Move Up Down Near Far\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5C, __HELP_NAME(\"Tip:  Move Up Down Near Far\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobGuideHelpHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Move_Up_Down\"\n\tITEM\n\t\t\"kgobGuideHelpHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0A 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x01 0x00 0x00 0x00 0x64 0x00 0x00 0x01    // '????d???' \n\t0x00 0x00 0x00 0x00 0x66 0x00 0x00 0x01    // '????f???' \n\t0x01 0x00 0x00 0x00 0xB5 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03    // '????????' \n\t0x46 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // 'F??????' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x03    // '????'???' \n\t0x0A 0x00 0x00 0xFD 0x64 0x00 0x00 0x03    // '???d???' \n\t0x00 0x00 0x00 0x00 0x66 0x00 0x00 0x80    // '????f??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x4D 0x6F    // '???   Mo' \n\t0x76 0x69 0x6E 0x67 0x20 0x75 0x70 0x20    // 'ving up ' \n\t0x6F 0x72 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'or down ' \n\t0x61 0x6E 0x64 0x20 0x6E 0x65 0x61 0x72    // 'and near' \n\t0x20 0x6F 0x72 0x20 0x66 0x61 0x72 0x0D    // ' or far?' \n\t0x0A 0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65    // '?To move' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x75 0x70 0x20 0x6F    // 'ord up o' \n\t0x72 0x20 0x64 0x6F 0x77 0x6E 0x20 0x61    // 'r down a' \n\t0x6E 0x64 0x20 0x6E 0x65 0x61 0x72 0x20    // 'nd near ' \n\t0x6F 0x72 0x20 0x66 0x61 0x72 0x0D 0x0A    // 'or far??' \n\t0x95 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x55 0x70 0x20 0x6F 0x72 0x20 0x44 0x6F    // 'Up or Do' \n\t0x77 0x6E 0x20 0x41 0x72 0x72 0x6F 0x77    // 'wn Arrow' \n\t0x20 0x6B 0x65 0x79 0x20 0x61 0x73 0x20    // ' key as ' \n\t0x79 0x6F 0x75 0x20 0x68 0x6F 0x6C 0x64    // 'you hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x68    // ' down th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x6F    // 'button o' \n\t0x72 0x20 0x64 0x72 0x61 0x67 0x2E         // 'r drag.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_92= Tip___Path_through\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_92, __HELP_NAME(\"blank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_92, __HELP_NAME(\"blank\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobGuideHelpHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_92, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Path_through\"\n\tITEM\n\t\t\"kgobGuideHelpHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_92, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7C 0x01 0x00 0x00    // '????|???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/help.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#define  NO_HELP_NAMES\n#define HELP_SINGLE_CHUNK\n#define NO_HELP_SYMBOLS\n//#define PACK_HELP\n\n#include \"kidgs.chh\"\n#include \"stdiodef.h\"\n#include \"helptops.h\"\n#include \"helpbook.h\"\n#include \"projmain.h\"\n#include \"helpres.h\"\n#include \"balloons.chh\"\n#include \"socdefn.h\"\n#include \"sharedef.h\"\n#include \"biopage.chh\"\n\n#include \"help\\toolhelp.cht\"\n#include \"help\\tooltips.cht\"\n\n#include \"help\\bkhowto.cht\"\n#include \"help\\bktips.cht\"\n#include \"help\\bktocbas.cht\"\n#include \"help\\bktools.cht\"\n#include \"help\\booktpc.cht\"\n#include \"help\\basics.cht\"\n#include \"help\\htscenes.cht\"\n#include \"help\\logo.cht\"\n#include \"help\\prjalert.cht\"\n#include \"help\\prjintro.cht\"\n#include \"help\\prjtips.cht\"\n#include \"help\\project1.cht\"\n#include \"help\\project2.cht\"\n#include \"help\\project3.cht\"\n#include \"help\\project4.cht\"\n#include \"help\\project5.cht\"\n#include \"help\\project6.cht\"\n#include \"help\\gadget1.cht\"\n#include \"help\\gadget2.cht\"\n#include \"help\\gadget3.cht\"\n#include \"help\\gadget4.cht\"\n#include \"help\\gadget5.cht\"\n#include \"help\\gadget6.cht\"\n#include \"help\\easelhp.cht\"\n#include \"help\\errors.cht\"\n#include \"help\\guidhelp.cht\"\n#include \"help\\htactors.cht\"\n#include \"help\\htalerts.cht\"\n#include \"help\\htsounds.cht\"\n#include \"help\\htwords.cht\"\n#include \"help\\app.cht\"\n\n// Help topics from the building\n#include \"help\\topics1.cht\"\n\n// Bio page topics\n\n#include \"help\\bio.cht\"\n"
  },
  {
    "path": "src/help/htactors.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcHowToActors00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"CO--Actors & Props\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"CO--Actors & Props\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidActorsCover kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToActors00\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsCover\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x81 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x41 0x63 0x74 0x6F 0x72 0x73 0x20 0x26    // 'Actors &' \n\t0x20 0x50 0x72 0x6F 0x70 0x73 0x2E         // ' Props.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpcHowToActors01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"CO 1) To see the characters\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"CO 1) To see the characters\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidActorsBrowser kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToActors01\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsBrowser\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x00 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7D, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x7B 0x00 0x00 0x01    // '????{???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x02    // '????)???' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x02    // '????o???' \n\t0x01 0x00 0x00 0x00 0x74 0x00 0x00 0x02    // '????t???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x29 0x00 0x00 0x03    // '???)???' \n\t0x00 0x00 0x00 0x00 0x74 0x00 0x00 0x03    // '????t???' \n\t0x0A 0x00 0x00 0xFD 0x7A 0x00 0x00 0x03    // '???z???' \n\t0x0F 0x00 0x00 0xFD 0x7B 0x00 0x00 0x03    // '???{???' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x04    // '????-???' \n\t0x0D 0x00 0x00 0xFE 0x3C 0x00 0x00 0x04    // '???<???' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x40    // '????-??@' \n\t0x03 0x00 0x00 0x00 0x3C 0x00 0x00 0x40    // '????<??@' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x80    // '????+??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6C 0x00 0x00 0x82    // '????l??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7D, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x68 0x61    // ' the cha' \n\t0x72 0x61 0x63 0x74 0x65 0x72 0x73 0x20    // 'racters ' \n\t0x79 0x6F 0x75 0x20 0x63 0x61 0x6E 0x20    // 'you can ' \n\t0x63 0x68 0x6F 0x6F 0x73 0x65 0x20 0x66    // 'choose f' \n\t0x72 0x6F 0x6D 0x0D 0x0A 0x31 0x09 0x47    // 'rom??1?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x61    // 'ant to a' \n\t0x64 0x64 0x20 0x61 0x6E 0x20 0x61 0x63    // 'dd an ac' \n\t0x74 0x6F 0x72 0x2E 0x0D 0x0A 0x32 0x09    // 'tor.??2?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x41 0x63    // 'Click Ac' \n\t0x74 0x6F 0x72 0x73 0x2E                   // 'tors.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpcHowToActors02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"CO 2) Click the actor you \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"CO 2) Click the actor you \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x0 0x57415645 kwavHTActors02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors02\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x56 0x00 0x00 0x00    // '????V???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'r you wa' \n\t0x6E 0x74 0x2E                             // 'nt.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpcHowToActors03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"CO 3) Click where you  \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"CO 3) Click where you  \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors03\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x88 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x88 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'o place ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2E 0x0D 0x0A 0x49 0x66 0x20 0x79    // 'r.??If y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'to move ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x20 0x75 0x70 0x20 0x6F 0x72 0x20    // 'r up or ' \n\t0x64 0x6F 0x77 0x6E 0x2C 0x20 0x68 0x6F    // 'down, ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x74 0x68 0x65 0x20 0x55 0x70 0x20 0x6F    // 'the Up o' \n\t0x72 0x20 0x44 0x6F 0x77 0x6E 0x20 0x41    // 'r Down A' \n\t0x72 0x72 0x6F 0x77 0x20 0x6B 0x65 0x79    // 'rrow key' \n\t0x20 0x62 0x65 0x66 0x6F 0x72 0x65 0x20    // ' before ' \n\t0x79 0x6F 0x75 0x20 0x63 0x6C 0x69 0x63    // 'you clic' \n\t0x6B 0x2E                                  // 'k.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpcHowToActors04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Actor--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Actor--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_28=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors04\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_28=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors79 __HELP_SYMBOL( STN \"ktpcHowToActors79\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToActors7B __HELP_SYMBOL( STN \"ktpcHowToActors7B\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG ktpcHowToActors7C __HELP_SYMBOL( STN \"ktpcHowToActors7C\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_28=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x01 0x00 0x00 0x00 0x5B 0x00 0x00 0x01    // '????[???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x26 0x00 0x00 0x40    // '????&??@' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x02 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x03 0x00 0x00 0x00 0x4A 0x00 0x00 0x40    // '????J??@' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x40    // '????L??@' \n\t0x05 0x00 0x00 0x00 0x5B 0x00 0x00 0x40    // '????[??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0xC0    // '???????' \n\t0x06 0x00 0x00 0x00 0x28 0x00 0x00 0xC0    // '????(??' \n\t0x06 0x00 0x00 0x00 0x40 0x00 0x00 0xC0    // '????@??' \n\t0x06 0x00 0x00 0x00 0x4C 0x00 0x00 0xC0    // '????L??' \n\t0x06 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_28=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x6F 0x6F 0x73 0x69    // '??Choosi' \n\t0x6E 0x67 0x20 0x61 0x6E 0x20 0x61 0x63    // 'ng an ac' \n\t0x74 0x6F 0x72 0x2D 0x2D 0x57 0x68 0x61    // 'tor--Wha' \n\t0x74 0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D    // 't next??' \n\t0x0A 0x01 0x20 0x20 0x55 0x6E 0x64 0x6F    // '??  Undo' \n\t0x0D 0x0A 0x01 0x20 0x41 0x73 0x73 0x69    // '??? Assi' \n\t0x67 0x6E 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'gning an' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x20    // ' action ' \n\t0x0D 0x0A 0x01 0x20 0x52 0x65 0x6D 0x6F    // '??? Remo' \n\t0x76 0x69 0x6E 0x67 0x0D 0x0A 0x01 0x20    // 'ving??? ' \n\t0x52 0x65 0x70 0x6F 0x73 0x69 0x74 0x69    // 'Repositi' \n\t0x6F 0x6E 0x69 0x6E 0x67                   // 'oning' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpcHowToActors05\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO 1) To see the props\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO 1) To see the props\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidActorsPropBrowser kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_17=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToActors05\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsPropBrowser\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_17=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_17=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x73 0x00 0x00 0x01    // '????s???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x02    // '????$???' \n\t0x00 0x00 0x00 0x00 0x68 0x00 0x00 0x02    // '????h???' \n\t0x01 0x00 0x00 0x00 0x6D 0x00 0x00 0x02    // '????m???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x00 0x00 0x00 0x00 0x6D 0x00 0x00 0x03    // '????m???' \n\t0x0A 0x00 0x00 0xFD 0x72 0x00 0x00 0x03    // '???r???' \n\t0x0F 0x00 0x00 0xFD 0x73 0x00 0x00 0x03    // '???s???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x04    // '????(???' \n\t0x0D 0x00 0x00 0xFE 0x37 0x00 0x00 0x04    // '???7???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x03 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x80    // '????&??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x65 0x00 0x00 0x82    // '????e??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_17=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x72 0x6F    // ' the pro' \n\t0x70 0x73 0x20 0x79 0x6F 0x75 0x20 0x63    // 'ps you c' \n\t0x61 0x6E 0x20 0x63 0x68 0x6F 0x6F 0x73    // 'an choos' \n\t0x65 0x20 0x66 0x72 0x6F 0x6D 0x0D 0x0A    // 'e from??' \n\t0x31 0x09 0x47 0x6F 0x20 0x74 0x6F 0x20    // '1?Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'e in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'r movie ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x61 0x64 0x64 0x20 0x61 0x20    // 'o add a ' \n\t0x70 0x72 0x6F 0x70 0x2E 0x0D 0x0A 0x32    // 'prop.??2' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x50    // '?Click P' \n\t0x72 0x6F 0x70 0x73 0x2E                   // 'rops.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpcHowToActors06\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO 2) Click the actor you \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO 2) Click the actor you \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x0 0x57415645 kwavHTActors06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_91=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors06\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_91=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_91=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_91, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_91=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_91, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x70 0x72 0x6F 0x70    // 'the prop' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpcHowToActors07\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO 3) Click where you 2 \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO 3) Click where you 2 \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_58=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors07\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_58=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_58=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_58, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x86 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x29 0x00 0x00 0x82    // '????)??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_58=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_58, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'o place ' \n\t0x74 0x68 0x65 0x20 0x70 0x72 0x6F 0x70    // 'the prop' \n\t0x2E 0x0D 0x0A 0x49 0x66 0x20 0x79 0x6F    // '.??If yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20 0x74    // 'o move t' \n\t0x68 0x65 0x20 0x70 0x72 0x6F 0x70 0x20    // 'he prop ' \n\t0x75 0x70 0x20 0x6F 0x72 0x20 0x64 0x6F    // 'up or do' \n\t0x77 0x6E 0x2C 0x20 0x68 0x6F 0x6C 0x64    // 'wn, hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x68    // ' down th' \n\t0x65 0x20 0x55 0x70 0x20 0x6F 0x72 0x20    // 'e Up or ' \n\t0x44 0x6F 0x77 0x6E 0x20 0x41 0x72 0x72    // 'Down Arr' \n\t0x6F 0x77 0x20 0x6B 0x65 0x79 0x20 0x62    // 'ow key b' \n\t0x65 0x66 0x6F 0x72 0x65 0x20 0x79 0x6F    // 'efore yo' \n\t0x75 0x20 0x63 0x6C 0x69 0x63 0x6B 0x2E    // 'u click.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpcHowToActors08\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"Prop--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"Prop--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors08\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors79 __HELP_SYMBOL( STN \"ktpcHowToActors79\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToActors7B __HELP_SYMBOL( STN \"ktpcHowToActors7B\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG ktpcHowToActors7C __HELP_SYMBOL( STN \"ktpcHowToActors7C\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x01    // '????X???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1B 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x23 0x00 0x00 0x40    // '????#??@' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x40    // '????%??@' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0x40    // '????;??@' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x40    // '????=??@' \n\t0x02 0x00 0x00 0x00 0x47 0x00 0x00 0x40    // '????G??@' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x40    // '????I??@' \n\t0x04 0x00 0x00 0x00 0x58 0x00 0x00 0x40    // '????X??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1D 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0xC0    // '???????' \n\t0x05 0x00 0x00 0x00 0x25 0x00 0x00 0xC0    // '????%??' \n\t0x05 0x00 0x00 0x00 0x3D 0x00 0x00 0xC0    // '????=??' \n\t0x05 0x00 0x00 0x00 0x49 0x00 0x00 0xC0    // '????I??' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x6F 0x6F 0x73 0x69    // '??Choosi' \n\t0x6E 0x67 0x20 0x61 0x20 0x70 0x72 0x6F    // 'ng a pro' \n\t0x70 0x2D 0x2D 0x57 0x68 0x61 0x74 0x20    // 'p--What ' \n\t0x6E 0x65 0x78 0x74 0x3F 0x0D 0x0A 0x01    // 'next????' \n\t0x20 0x55 0x6E 0x64 0x6F 0x0D 0x0A 0x01    // ' Undo???' \n\t0x20 0x41 0x73 0x73 0x69 0x67 0x6E 0x69    // ' Assigni' \n\t0x6E 0x67 0x20 0x61 0x6E 0x20 0x61 0x63    // 'ng an ac' \n\t0x74 0x69 0x6F 0x6E 0x20 0x0D 0x0A 0x01    // 'tion ???' \n\t0x20 0x52 0x65 0x6D 0x6F 0x76 0x69 0x6E    // ' Removin' \n\t0x67 0x0D 0x0A 0x01 0x20 0x52 0x65 0x70    // 'g??? Rep' \n\t0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E 0x69    // 'ositioni' \n\t0x6E 0x67                                  // 'ng' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= ktpcHowToActors09\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO 1) To create a 3D word\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO 1) To create a 3D word\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidActorsSpletters kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToActors09\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsSpletters\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_27=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6B 0x00 0x00 0x01    // '????k???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x02    // '????b???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x03    // '????b???' \n\t0x0A 0x00 0x00 0xFD 0x6A 0x00 0x00 0x03    // '???j???' \n\t0x0F 0x00 0x00 0xFD 0x6B 0x00 0x00 0x03    // '???k???' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x26 0x00 0x00 0x04    // '???&???' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x26 0x00 0x00 0x40    // '????&??@' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5A 0x00 0x00 0x82    // '????Z??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x72 0x65    // '??To cre' \n\t0x61 0x74 0x65 0x20 0x61 0x20 0x33 0x44    // 'ate a 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x0D 0x0A 0x31    // ' word??1' \n\t0x09 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x77    // ' movie w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x63 0x72 0x65 0x61 0x74 0x65 0x20    // ' create ' \n\t0x61 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'a 3D wor' \n\t0x64 0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C    // 'd.??2?Cl' \n\t0x69 0x63 0x6B 0x20 0x33 0x44 0x20 0x57    // 'ick 3D W' \n\t0x6F 0x72 0x64 0x73 0x2E                   // 'ords.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= ktpcHowToActors0A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO 2) Standard 3D Word Easel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO 2) Standard 3D Word Easel\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTActors0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToActors0A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x86 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6B, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x74 0x65 0x20 0x74    // '??Note t' \n\t0x6F 0x20 0x54 0x6F 0x6E 0x79 0x3A 0x20    // 'o Tony: ' \n\t0x20 0x55 0x73 0x65 0x20 0x74 0x65 0x78    // ' Use tex' \n\t0x74 0x20 0x74 0x68 0x61 0x74 0x20 0x61    // 't that a' \n\t0x70 0x70 0x65 0x61 0x72 0x73 0x20 0x77    // 'ppears w' \n\t0x68 0x65 0x6E 0x20 0x74 0x68 0x65 0x79    // 'hen they' \n\t0x20 0x75 0x73 0x65 0x20 0x33 0x44 0x20    // ' use 3D ' \n\t0x65 0x61 0x73 0x65 0x6C 0x2E              // 'easel.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= ktpcHowToActors0B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO 3) Click where you 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO 3) Click where you 3\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors0B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8C 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2C 0x00 0x00 0x82    // '????,??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'o place ' \n\t0x74 0x68 0x65 0x20 0x33 0x44 0x20 0x77    // 'the 3D w' \n\t0x6F 0x72 0x64 0x2E 0x0D 0x0A 0x49 0x66    // 'ord.??If' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x6D 0x6F 0x76    // 't to mov' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x33 0x44    // 'e the 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x75 0x70    // ' word up' \n\t0x20 0x6F 0x72 0x20 0x64 0x6F 0x77 0x6E    // ' or down' \n\t0x2C 0x20 0x68 0x6F 0x6C 0x64 0x20 0x64    // ', hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x55 0x70 0x20 0x6F 0x72 0x20 0x44 0x6F    // 'Up or Do' \n\t0x77 0x6E 0x20 0x41 0x72 0x72 0x6F 0x77    // 'wn Arrow' \n\t0x20 0x6B 0x65 0x79 0x20 0x62 0x65 0x66    // ' key bef' \n\t0x6F 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ore you ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x2E              // 'click.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= ktpcHowToActors0C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"3D Word--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"3D Word--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors0C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors79 __HELP_SYMBOL( STN \"ktpcHowToActors79\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToActors7B __HELP_SYMBOL( STN \"ktpcHowToActors7B\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG ktpcHowToActors7C __HELP_SYMBOL( STN \"ktpcHowToActors7C\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x01 0x00 0x00 0x00 0x5B 0x00 0x00 0x01    // '????[???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x40    // '???? ??@' \n\t0x03 0x00 0x00 0x00 0x26 0x00 0x00 0x40    // '????&??@' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x02 0x00 0x00 0x00 0x4A 0x00 0x00 0x40    // '????J??@' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x40    // '????L??@' \n\t0x04 0x00 0x00 0x00 0x5B 0x00 0x00 0x40    // '????[??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x20 0x00 0x00 0x82    // '???? ??' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0xC0    // '???? ??' \n\t0x05 0x00 0x00 0x00 0x28 0x00 0x00 0xC0    // '????(??' \n\t0x05 0x00 0x00 0x00 0x40 0x00 0x00 0xC0    // '????@??' \n\t0x05 0x00 0x00 0x00 0x4C 0x00 0x00 0xC0    // '????L??' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x72 0x65 0x61 0x74 0x69    // '??Creati' \n\t0x6E 0x67 0x20 0x61 0x20 0x33 0x44 0x20    // 'ng a 3D ' \n\t0x77 0x6F 0x72 0x64 0x2D 0x2D 0x57 0x68    // 'word--Wh' \n\t0x61 0x74 0x20 0x6E 0x65 0x78 0x74 0x3F    // 'at next?' \n\t0x0D 0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F    // '??? Undo' \n\t0x0D 0x0A 0x01 0x20 0x41 0x73 0x73 0x69    // '??? Assi' \n\t0x67 0x6E 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'gning an' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x20    // ' action ' \n\t0x0D 0x0A 0x01 0x20 0x52 0x65 0x6D 0x6F    // '??? Remo' \n\t0x76 0x69 0x6E 0x67 0x0D 0x0A 0x01 0x20    // 'ving??? ' \n\t0x52 0x65 0x70 0x6F 0x73 0x69 0x74 0x69    // 'Repositi' \n\t0x6F 0x6E 0x69 0x6E 0x67                   // 'oning' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= ktpcHowToActors0D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO 1) To change the way\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO 1) To change the way\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidActorsCostume kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors0D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToActors0D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsCostume\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors0D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_55=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6D, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x92 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00 0x82 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x91 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x04    // '????6???' \n\t0x0D 0x00 0x00 0xFE 0x45 0x00 0x00 0x04    // '???E???' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x40    // '????6??@' \n\t0x03 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x80    // '????4??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x76 0x00 0x00 0x82    // '????v??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6D, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x77 0x61 0x79 0x20 0x61 0x6E 0x20 0x61    // 'way an a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x6C    // 'D word l' \n\t0x6F 0x6F 0x6B 0x73 0x0D 0x0A 0x31 0x09    // 'ooks??1?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x6D 0x61 0x6B 0x65 0x20 0x61 0x20 0x63    // 'make a c' \n\t0x68 0x61 0x6E 0x67 0x65 0x2E 0x0D 0x0A    // 'hange.??' \n\t0x32 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '2?Click ' \n\t0x74 0x68 0x65 0x20 0x43 0x6F 0x73 0x74    // 'the Cost' \n\t0x75 0x6D 0x65 0x20 0x43 0x68 0x61 0x6E    // 'ume Chan' \n\t0x67 0x65 0x72 0x2E                        // 'ger.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= ktpcHowToActors0E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO 2) Standard 3D Word Easel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO 2) Standard 3D Word Easel\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTActors0E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToActors0E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors0E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x86 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x74 0x65 0x20 0x74    // '??Note t' \n\t0x6F 0x20 0x54 0x6F 0x6E 0x79 0x3A 0x20    // 'o Tony: ' \n\t0x20 0x55 0x73 0x65 0x20 0x74 0x65 0x78    // ' Use tex' \n\t0x74 0x20 0x74 0x68 0x61 0x74 0x20 0x61    // 't that a' \n\t0x70 0x70 0x65 0x61 0x72 0x73 0x20 0x77    // 'ppears w' \n\t0x68 0x65 0x6E 0x20 0x74 0x68 0x65 0x79    // 'hen they' \n\t0x20 0x75 0x73 0x65 0x20 0x33 0x44 0x20    // ' use 3D ' \n\t0x65 0x61 0x73 0x65 0x6C 0x2E              // 'easel.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= ktpcHowToActors0F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO 2) Standard Actor Easel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO 2) Standard Actor Easel\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTActors0F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToActors0F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors0F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x86 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x74 0x65 0x20 0x74    // '??Note t' \n\t0x6F 0x20 0x54 0x6F 0x6E 0x79 0x3A 0x20    // 'o Tony: ' \n\t0x20 0x55 0x73 0x65 0x20 0x74 0x65 0x78    // ' Use tex' \n\t0x74 0x20 0x74 0x68 0x61 0x74 0x20 0x61    // 't that a' \n\t0x70 0x70 0x65 0x61 0x72 0x73 0x20 0x77    // 'ppears w' \n\t0x68 0x65 0x6E 0x20 0x74 0x68 0x65 0x79    // 'hen they' \n\t0x20 0x75 0x73 0x65 0x20 0x41 0x63 0x74    // ' use Act' \n\t0x6F 0x72 0x20 0x65 0x61 0x73 0x65 0x6C    // 'or easel' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= ktpcHowToActors10\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO 2) Standard Prop Easel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO 2) Standard Prop Easel\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTActors10\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToActors10\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors10\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x86 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x74 0x65 0x20 0x74    // '??Note t' \n\t0x6F 0x20 0x54 0x6F 0x6E 0x79 0x3A 0x20    // 'o Tony: ' \n\t0x20 0x55 0x73 0x65 0x20 0x74 0x65 0x78    // ' Use tex' \n\t0x74 0x20 0x74 0x68 0x61 0x74 0x20 0x61    // 't that a' \n\t0x70 0x70 0x65 0x61 0x72 0x73 0x20 0x77    // 'ppears w' \n\t0x68 0x65 0x6E 0x20 0x74 0x68 0x65 0x79    // 'hen they' \n\t0x20 0x75 0x73 0x65 0x20 0x50 0x72 0x6F    // ' use Pro' \n\t0x70 0x20 0x65 0x61 0x73 0x65 0x6C 0x2E    // 'p easel.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= ktpcHowToActors11\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"Costume--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"Costume--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors11\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors11\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors11\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_49=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x40    // '???????@' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x40    // '????%??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x6C    // 'ng the l' \n\t0x6F 0x6F 0x6B 0x2D 0x2D 0x57 0x68 0x61    // 'ook--Wha' \n\t0x74 0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D    // 't next??' \n\t0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F         // '?? Undo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= ktpcHowToActors12\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"CO 1)  To use the same actor\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"CO 1)  To use the same actor\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobHowtoSequence kidRollCallActor kidPlayHelpSounds 0x2E 0x8B 0x57415645 kwavHTActors12\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_68=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpcHowToActors12\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidRollCallActor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors12\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_68=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x37 0x01 0x00 0x00    // '????7???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_68, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_68=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_68, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00 0xAC 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xB6 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x04    // '????7???' \n\t0x0D 0x00 0x00 0xFE 0x46 0x00 0x00 0x04    // '???F???' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x40    // '????F??@' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x80    // '????5??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x89 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_68=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_68, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x75 0x73 0x65    // '??To use' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x61 0x6D    // ' the sam' \n\t0x65 0x20 0x61 0x63 0x74 0x6F 0x72 0x20    // 'e actor ' \n\t0x69 0x6E 0x20 0x61 0x6E 0x6F 0x74 0x68    // 'in anoth' \n\t0x65 0x72 0x20 0x70 0x61 0x72 0x74 0x20    // 'er part ' \n\t0x6F 0x66 0x20 0x79 0x6F 0x75 0x72 0x20    // 'of your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x0D 0x0A 0x31    // 'movie??1' \n\t0x09 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x77    // ' movie w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x61 0x64 0x64 0x20 0x61 0x6E 0x20    // ' add an ' \n\t0x61 0x63 0x74 0x6F 0x72 0x20 0x79 0x6F    // 'actor yo' \n\t0x75 0x27 0x76 0x65 0x20 0x75 0x73 0x65    // 'u've use' \n\t0x64 0x20 0x62 0x65 0x66 0x6F 0x72 0x65    // 'd before' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69    // '.??2?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x61    // 'ck the a' \n\t0x63 0x74 0x6F 0x72 0x27 0x73 0x20 0x70    // 'ctor's p' \n\t0x69 0x63 0x74 0x75 0x72 0x65 0x20 0x69    // 'icture i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x41 0x63    // 'n the Ac' \n\t0x74 0x6F 0x72 0x20 0x4C 0x69 0x73 0x74    // 'tor List' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= ktpcHowToActors13\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO 2)  Click where 4\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO 2)  Click where 4\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors13\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors13\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors13\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x88 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2A 0x00 0x00 0x82    // '????*??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'o place ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2E 0x0D 0x0A 0x49 0x66 0x20 0x79    // 'r.??If y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'to move ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x20 0x75 0x70 0x20 0x6F 0x72 0x20    // 'r up or ' \n\t0x64 0x6F 0x77 0x6E 0x2C 0x20 0x68 0x6F    // 'down, ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x74 0x68 0x65 0x20 0x55 0x70 0x20 0x6F    // 'the Up o' \n\t0x72 0x20 0x44 0x6F 0x77 0x6E 0x20 0x41    // 'r Down A' \n\t0x72 0x72 0x6F 0x77 0x20 0x6B 0x65 0x79    // 'rrow key' \n\t0x20 0x62 0x65 0x66 0x6F 0x72 0x65 0x20    // ' before ' \n\t0x79 0x6F 0x75 0x20 0x63 0x6C 0x69 0x63    // 'you clic' \n\t0x6B 0x2E                                  // 'k.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= ktpcHowToActors14\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"Actor List--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"Actor List--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors14\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors14\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors14\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_46=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6E, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors79 __HELP_SYMBOL( STN \"ktpcHowToActors79\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToActors7C __HELP_SYMBOL( STN \"ktpcHowToActors7C\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToActors7B __HELP_SYMBOL( STN \"ktpcHowToActors7B\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x01 0x00 0x00 0x00 0x5D 0x00 0x00 0x01    // '????]???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x20 0x00 0x00 0x03    // '??? ???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x40    // '????\"??@' \n\t0x03 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x40    // '????*??@' \n\t0x01 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x40    // '????B??@' \n\t0x05 0x00 0x00 0x00 0x4C 0x00 0x00 0x40    // '????L??@' \n\t0x00 0x00 0x00 0x00 0x4E 0x00 0x00 0x40    // '????N??@' \n\t0x02 0x00 0x00 0x00 0x5D 0x00 0x00 0x40    // '????]??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x22 0x00 0x00 0x82    // '????\"??' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0xC0    // '????\"??' \n\t0x04 0x00 0x00 0x00 0x2A 0x00 0x00 0xC0    // '????*??' \n\t0x04 0x00 0x00 0x00 0x42 0x00 0x00 0xC0    // '????B??' \n\t0x04 0x00 0x00 0x00 0x4E 0x00 0x00 0xC0    // '????N??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6E, 0x0)\n\tBYTE\n\t0x03 0x03 0x55 0x73 0x69 0x6E 0x67 0x20    // '??Using ' \n\t0x74 0x68 0x65 0x20 0x73 0x61 0x6D 0x65    // 'the same' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2D 0x2D    // ' actor--' \n\t0x57 0x68 0x61 0x74 0x20 0x6E 0x65 0x78    // 'What nex' \n\t0x74 0x3F 0x0D 0x0A 0x01 0x20 0x55 0x6E    // 't???? Un' \n\t0x64 0x6F 0x0D 0x0A 0x01 0x20 0x41 0x73    // 'do??? As' \n\t0x73 0x69 0x67 0x6E 0x69 0x6E 0x67 0x20    // 'signing ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x69 0x6F    // 'an actio' \n\t0x6E 0x20 0x0D 0x0A 0x01 0x20 0x52 0x65    // 'n ??? Re' \n\t0x6D 0x6F 0x76 0x69 0x6E 0x67 0x0D 0x0A    // 'moving??' \n\t0x01 0x20 0x52 0x65 0x70 0x6F 0x73 0x69    // '? Reposi' \n\t0x74 0x69 0x6F 0x6E 0x69 0x6E 0x67         // 'tioning' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= ktpcHowToActors15\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"CO 1)  To use the same prop\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"CO 1)  To use the same prop\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobHowtoSequence kidRollCallProp kidPlayHelpSounds 0x24E 0x82 0x57415645 kwavHTActors15\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpcHowToActors15\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidRollCallProp\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors15\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x35 0x01 0x00 0x00    // '????5???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xC9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00 0xBF 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xC8 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xC9 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x04    // '????A???' \n\t0x0D 0x00 0x00 0xFE 0x50 0x00 0x00 0x04    // '???P???' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x40    // '????A??@' \n\t0x02 0x00 0x00 0x00 0x50 0x00 0x00 0x40    // '????P??@' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x9C 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x75 0x73 0x65    // '??To use' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x61 0x6D    // ' the sam' \n\t0x65 0x20 0x70 0x72 0x6F 0x70 0x20 0x6F    // 'e prop o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x20 0x69 0x6E 0x20 0x61 0x6E 0x6F    // 'd in ano' \n\t0x74 0x68 0x65 0x72 0x20 0x70 0x61 0x72    // 'ther par' \n\t0x74 0x20 0x6F 0x66 0x20 0x79 0x6F 0x75    // 't of you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x0D    // 'r movie?' \n\t0x0A 0x31 0x09 0x47 0x6F 0x20 0x74 0x6F    // '?1?Go to' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x63 0x65 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ce in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x61 0x64 0x64 0x20 0x61    // 'to add a' \n\t0x20 0x70 0x72 0x6F 0x70 0x20 0x6F 0x72    // ' prop or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x79 0x6F 0x75 0x27 0x76 0x65 0x20    // ' you've ' \n\t0x75 0x73 0x65 0x64 0x20 0x62 0x65 0x66    // 'used bef' \n\t0x6F 0x72 0x65 0x2E 0x0D 0x0A 0x32 0x09    // 'ore.??2?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x70 0x72 0x6F 0x70 0x20 0x6F    // 'e prop o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'd in the' \n\t0x20 0x50 0x72 0x6F 0x70 0x20 0x4C 0x69    // ' Prop Li' \n\t0x73 0x74 0x2E                             // 'st.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= ktpcHowToActors16\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO 2)  Click place prop\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO 2)  Click place prop\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors16\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors16\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors16\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x9C 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x34 0x00 0x00 0x82    // '????4??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'o place ' \n\t0x74 0x68 0x65 0x20 0x70 0x72 0x6F 0x70    // 'the prop' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x2E 0x0D 0x0A 0x49 0x66    // 'ord.??If' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x6D 0x6F 0x76    // 't to mov' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x70 0x72    // 'e the pr' \n\t0x6F 0x70 0x20 0x6F 0x72 0x20 0x33 0x44    // 'op or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x75 0x70    // ' word up' \n\t0x20 0x6F 0x72 0x20 0x64 0x6F 0x77 0x6E    // ' or down' \n\t0x2C 0x20 0x68 0x6F 0x6C 0x64 0x20 0x64    // ', hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x55 0x70 0x20 0x6F 0x72 0x20 0x44 0x6F    // 'Up or Do' \n\t0x77 0x6E 0x20 0x41 0x72 0x72 0x6F 0x77    // 'wn Arrow' \n\t0x20 0x6B 0x65 0x79 0x20 0x62 0x65 0x66    // ' key bef' \n\t0x6F 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ore you ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x2E              // 'click.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= ktpcHowToActors17\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"Prop List--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"Prop List--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors17\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors17\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors17\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x1B 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors79 __HELP_SYMBOL( STN \"ktpcHowToActors79\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToActors7B __HELP_SYMBOL( STN \"ktpcHowToActors7B\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG ktpcHowToActors7C __HELP_SYMBOL( STN \"ktpcHowToActors7C\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2A 0x00 0x00 0x01    // '????*???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x01 0x00 0x00 0x00 0x67 0x00 0x00 0x01    // '????g???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2A 0x00 0x00 0x03    // '???*???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x40    // '????,??@' \n\t0x03 0x00 0x00 0x00 0x32 0x00 0x00 0x40    // '????2??@' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x40    // '????4??@' \n\t0x01 0x00 0x00 0x00 0x4A 0x00 0x00 0x40    // '????J??@' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x40    // '????L??@' \n\t0x02 0x00 0x00 0x00 0x56 0x00 0x00 0x40    // '????V??@' \n\t0x00 0x00 0x00 0x00 0x58 0x00 0x00 0x40    // '????X??@' \n\t0x04 0x00 0x00 0x00 0x67 0x00 0x00 0x40    // '????g??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2C 0x00 0x00 0x82    // '????,??' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0xC0    // '????,??' \n\t0x05 0x00 0x00 0x00 0x34 0x00 0x00 0xC0    // '????4??' \n\t0x05 0x00 0x00 0x00 0x4C 0x00 0x00 0xC0    // '????L??' \n\t0x05 0x00 0x00 0x00 0x58 0x00 0x00 0xC0    // '????X??' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x03 0x03 0x55 0x73 0x69 0x6E 0x67 0x20    // '??Using ' \n\t0x74 0x68 0x65 0x20 0x73 0x61 0x6D 0x65    // 'the same' \n\t0x20 0x70 0x72 0x6F 0x70 0x20 0x6F 0x72    // ' prop or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x2D 0x2D 0x57 0x68 0x61 0x74 0x20 0x6E    // '--What n' \n\t0x65 0x78 0x74 0x3F 0x0D 0x0A 0x01 0x20    // 'ext???? ' \n\t0x55 0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20    // 'Undo??? ' \n\t0x41 0x73 0x73 0x69 0x67 0x6E 0x69 0x6E    // 'Assignin' \n\t0x67 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'g an act' \n\t0x69 0x6F 0x6E 0x20 0x0D 0x0A 0x01 0x20    // 'ion ??? ' \n\t0x52 0x65 0x6D 0x6F 0x76 0x69 0x6E 0x67    // 'Removing' \n\t0x0D 0x0A 0x01 0x20 0x52 0x65 0x70 0x6F    // '??? Repo' \n\t0x73 0x69 0x74 0x69 0x6F 0x6E 0x69 0x6E    // 'sitionin' \n\t0x67                                       // 'g' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_18= ktpcHowToActors18\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"CO 1) To animate\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"CO 1) To animate\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobHowtoSequence kidActorsActionBrowser kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors18\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_27=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpcHowToActors18\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors18\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_27=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_19=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_27=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x91 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x27 0x00 0x00 0x03    // '???'???' \n\t0x00 0x00 0x00 0x00 0x89 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x90 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x04    // '????+???' \n\t0x0D 0x00 0x00 0xFE 0x3A 0x00 0x00 0x04    // '???:???' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x40    // '????+??@' \n\t0x03 0x00 0x00 0x00 0x3A 0x00 0x00 0x40    // '????:??@' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x80    // '????)??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x81 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_27=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x61 0x6B    // '??To mak' \n\t0x65 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'e an act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x6D 0x6F 0x76    // 'word mov' \n\t0x65 0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20    // 'e??1?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x61 0x6E 0x69    // 't to ani' \n\t0x6D 0x61 0x74 0x65 0x20 0x74 0x68 0x65    // 'mate the' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69    // '.??2?Cli' \n\t0x63 0x6B 0x20 0x41 0x63 0x74 0x69 0x6F    // 'ck Actio' \n\t0x6E 0x73 0x2E                             // 'ns.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_19= ktpcHowToActors19\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO 2)  Click the 3D object animate\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO 2)  Click the 3D object animate\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors19\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_74=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors19\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors19\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_74=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_74=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_74, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x01    // '????6???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_74=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_74, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x20    // 'ord you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x61 0x6E 0x69 0x6D 0x61 0x74 0x65 0x2E    // 'animate.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= ktpcHowToActors1A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"CO 3) Standard Action Browser\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"CO 3) Standard Action Browser\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTActors1A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToActors1A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors1A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x74 0x65 0x20 0x74    // '??Note t' \n\t0x6F 0x20 0x54 0x6F 0x6E 0x79 0x3A 0x20    // 'o Tony: ' \n\t0x20 0x55 0x73 0x65 0x20 0x73 0x74 0x61    // ' Use sta' \n\t0x6E 0x64 0x61 0x72 0x64 0x20 0x41 0x63    // 'ndard Ac' \n\t0x74 0x69 0x6F 0x6E 0x20 0x42 0x72 0x6F    // 'tion Bro' \n\t0x77 0x73 0x65 0x72 0x20 0x62 0x61 0x6C    // 'wser bal' \n\t0x6C 0x6F 0x6F 0x6E 0x2E                   // 'loon.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1B= ktpcHowToActors1B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"CO 4)  If the action you picked\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"CO 4)  If the action you picked\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors1B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_71=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors1B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors1B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_71=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x17 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_45=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_71, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors7E __HELP_SYMBOL( STN \"ktpcHowToActors7E\" )\n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors94 __HELP_SYMBOL( STN \"ktpcHowToActors94\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToActors7D __HELP_SYMBOL( STN \"ktpcHowToActors7D\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG ktpcHowToActors7F __HELP_SYMBOL( STN \"ktpcHowToActors7F\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_71=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_71, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x03    // '????1???' \n\t0x0F 0x00 0x00 0xFD 0xAC 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x04    // '????1???' \n\t0x0D 0x00 0x00 0xFE 0x35 0x00 0x00 0x04    // '???5???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x40    // '????1??@' \n\t0x04 0x00 0x00 0x00 0x35 0x00 0x00 0x40    // '????5??@' \n\t0x00 0x00 0x00 0x00 0xB7 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xD7 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD9 0x00 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0xED 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xEF 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0x12 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x80    // '????/??' \n\t0x00 0x00 0x02 0x00 0x58 0x00 0x00 0x80    // '????X??' \n\t0x00 0x00 0x03 0x00 0x60 0x00 0x00 0x80    // '????`??' \n\t0x00 0x00 0x02 0x00 0xB7 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2F 0x00 0x00 0x82    // '????/??' \n\t0x00 0x00 0x00 0x00 0x60 0x00 0x00 0x82    // '????`??' \n\t0x05 0x00 0x00 0x00 0xB7 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0xB7 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00 0xD9 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00 0xEF 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_71=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_71, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x65 0x70 0x65 0x6E 0x64    // '??Depend' \n\t0x69 0x6E 0x67 0x20 0x6F 0x6E 0x20 0x74    // 'ing on t' \n\t0x68 0x65 0x20 0x61 0x63 0x74 0x69 0x6F    // 'he actio' \n\t0x6E 0x20 0x79 0x6F 0x75 0x20 0x73 0x65    // 'n you se' \n\t0x6C 0x65 0x63 0x74 0x65 0x64 0x2C 0x20    // 'lected, ' \n\t0x65 0x69 0x74 0x68 0x65 0x72 0x3A 0x0D    // 'either:?' \n\t0x0A 0x95 0x09 0x44 0x72 0x61 0x67 0x20    // '??Drag ' \n\t0x74 0x68 0x65 0x20 0x33 0x44 0x20 0x6F    // 'the 3D o' \n\t0x62 0x6A 0x65 0x63 0x74 0x20 0x77 0x68    // 'bject wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x69 0x74 0x2E    // 'want it.' \n\t0x0D 0x0A 0x2D 0x2D 0x6F 0x72 0x2D 0x2D    // '??--or--' \n\t0x0D 0x0A 0x95 0x09 0x4D 0x6F 0x76 0x65    // '???Move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x63 0x75 0x72 0x73 0x6F    // 'se curso' \n\t0x72 0x20 0x6F 0x76 0x65 0x72 0x20 0x74    // 'r over t' \n\t0x68 0x65 0x20 0x33 0x44 0x20 0x6F 0x62    // 'he 3D ob' \n\t0x6A 0x65 0x63 0x74 0x2C 0x20 0x74 0x68    // 'ject, th' \n\t0x65 0x6E 0x20 0x68 0x6F 0x6C 0x64 0x20    // 'en hold ' \n\t0x64 0x6F 0x77 0x6E 0x20 0x74 0x68 0x65    // 'down the' \n\t0x20 0x6D 0x6F 0x75 0x73 0x65 0x20 0x62    // ' mouse b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x20 0x61 0x6E    // 'utton an' \n\t0x64 0x20 0x77 0x61 0x69 0x74 0x2E 0x0D    // 'd wait.?' \n\t0x0A 0x01 0x20 0x43 0x68 0x61 0x6E 0x67    // '?? Chang' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x73 0x74 0x61 0x72 0x74 0x69 0x6E 0x67    // 'starting' \n\t0x20 0x70 0x6F 0x73 0x69 0x74 0x69 0x6F    // ' positio' \n\t0x6E 0x0D 0x0A 0x01 0x20 0x46 0x72 0x65    // 'n??? Fre' \n\t0x65 0x7A 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'ezing an' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x0D    // ' action?' \n\t0x0A 0x01 0x20 0x4D 0x6F 0x76 0x69 0x6E    // '?? Movin' \n\t0x67 0x20 0x75 0x70 0x20 0x6F 0x72 0x20    // 'g up or ' \n\t0x64 0x6F 0x77 0x6E 0x20 0x61 0x6E 0x64    // 'down and' \n\t0x20 0x6E 0x65 0x61 0x72 0x20 0x6F 0x72    // ' near or' \n\t0x20 0x66 0x61 0x72                        // ' far' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= ktpcHowToActors1C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"Actions--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"Actions--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xC8 0x57415645 kwavHTActors1C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors1C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors1C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_21=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8C, 0x0)\nAG(4)\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG ktpcHowToActors7C __HELP_SYMBOL( STN \"ktpcHowToActors7C\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToActors81 __HELP_SYMBOL( STN \"ktpcHowToActors81\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors89 __HELP_SYMBOL( STN \"ktpcHowToActors89\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x01 0x00 0x00 0x00 0x78 0x00 0x00 0x01    // '????x???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x40    // '????4??@' \n\t0x04 0x00 0x00 0x00 0x3A 0x00 0x00 0x40    // '????:??@' \n\t0x00 0x00 0x00 0x00 0x3C 0x00 0x00 0x40    // '????<??@' \n\t0x09 0x00 0x00 0x00 0x51 0x00 0x00 0x40    // '????Q??@' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x08 0x00 0x00 0x00 0x67 0x00 0x00 0x40    // '????g??@' \n\t0x00 0x00 0x00 0x00 0x69 0x00 0x00 0x40    // '????i??@' \n\t0x03 0x00 0x00 0x00 0x78 0x00 0x00 0x40    // '????x??@' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x80    // '????4??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x34 0x00 0x00 0x82    // '????4??' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0xC0    // '????4??' \n\t0x05 0x00 0x00 0x00 0x3C 0x00 0x00 0xC0    // '????<??' \n\t0x05 0x00 0x00 0x00 0x53 0x00 0x00 0xC0    // '????S??' \n\t0x05 0x00 0x00 0x00 0x69 0x00 0x00 0xC0    // '????i??' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8C, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x6B 0x69 0x6E 0x67    // '??Making' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x6D 0x6F 0x76 0x65    // 'ord move' \n\t0x2D 0x2D 0x57 0x68 0x61 0x74 0x20 0x6E    // '--What n' \n\t0x65 0x78 0x74 0x3F 0x0D 0x0A 0x01 0x20    // 'ext???? ' \n\t0x55 0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20    // 'Undo??? ' \n\t0x43 0x68 0x61 0x6E 0x67 0x69 0x6E 0x67    // 'Changing' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x69 0x6F 0x6E 0x0D 0x0A 0x01 0x20 0x50    // 'ion??? P' \n\t0x6C 0x61 0x79 0x69 0x6E 0x67 0x20 0x79    // 'laying y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x0D 0x0A 0x01 0x20 0x52 0x65 0x70    // 'e??? Rep' \n\t0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E 0x69    // 'ositioni' \n\t0x6E 0x67                                  // 'ng' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1D= ktpcHowToActors1D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"CO 1) To change the action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"CO 1) To change the action\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobHowtoSequence kidActorsActionBrowser kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors1D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpcHowToActors1D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors1D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_14=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x97 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x03    // '????A???' \n\t0x0F 0x00 0x00 0xFD 0x8F 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0x96 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x97 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x04    // '????C???' \n\t0x0D 0x00 0x00 0xFE 0x52 0x00 0x00 0x04    // '???R???' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x40    // '????C??@' \n\t0x03 0x00 0x00 0x00 0x52 0x00 0x00 0x40    // '????R??@' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x80    // '????A??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x87 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x20 0x79    // 'action y' \n\t0x6F 0x75 0x20 0x61 0x73 0x73 0x69 0x67    // 'ou assig' \n\t0x6E 0x65 0x64 0x20 0x74 0x6F 0x20 0x61    // 'ned to a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x2C    // 'n actor,' \n\t0x20 0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F    // ' prop, o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20    // 'd??1?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x68 0x61    // 't to cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x2E 0x0D    // 'action.?' \n\t0x0A 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?2?Click' \n\t0x20 0x41 0x63 0x74 0x69 0x6F 0x6E 0x73    // ' Actions' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1E= ktpcHowToActors1E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"CO 2)  Click the 3D object change action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"CO 2)  Click the 3D object change action\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors1E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_95=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors1E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors1E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_95=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_95=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_95, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_95=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_95, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x77 0x68 0x6F 0x73    // 'ord whos' \n\t0x65 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'e action' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x68 0x61    // 't to cha' \n\t0x6E 0x67 0x65 0x2E                        // 'nge.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1F= ktpcHowToActors1F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"Change Action--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"Change Action--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors1F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_93=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors1F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors1F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_93=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_93, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToActors81 __HELP_SYMBOL( STN \"ktpcHowToActors81\" )\n\tFREE\n\tFREE\n\tITEM LONG 0xC0000005\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors7E __HELP_SYMBOL( STN \"ktpcHowToActors7E\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 6 LONG ktpcHowToActors7C __HELP_SYMBOL( STN \"ktpcHowToActors7C\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToActors7D __HELP_SYMBOL( STN \"ktpcHowToActors7D\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_93=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_93, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x01 0x00 0x00 0x00 0xBC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x95 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0x40    // '????W??@' \n\t0x05 0x00 0x00 0x00 0x5D 0x00 0x00 0x40    // '????]??@' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x40    // '????_??@' \n\t0x07 0x00 0x00 0x00 0x7F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x40    // '??????@' \n\t0x09 0x00 0x00 0x00 0x95 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x97 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xAB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xAD 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0xBC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x97 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x57 0x00 0x00 0x82    // '????W??' \n\t0x00 0x00 0x00 0x00 0x97 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0xC0    // '????W??' \n\t0x04 0x00 0x00 0x00 0x5F 0x00 0x00 0xC0    // '????_??' \n\t0x04 0x00 0x00 0x00 0x81 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00 0x97 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00 0xAD 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_93=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_93, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x61 0x6E 0x20 0x61 0x63    // 'ng an ac' \n\t0x74 0x69 0x6F 0x6E 0x2D 0x2D 0x57 0x68    // 'tion--Wh' \n\t0x61 0x74 0x20 0x6E 0x65 0x78 0x74 0x3F    // 'at next?' \n\t0x0D 0x0A 0x54 0x68 0x65 0x20 0x61 0x63    // '??The ac' \n\t0x74 0x69 0x6F 0x6E 0x20 0x69 0x73 0x20    // 'tion is ' \n\t0x63 0x68 0x61 0x6E 0x67 0x65 0x64 0x20    // 'changed ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x74 0x68 0x65    // 'from the' \n\t0x20 0x63 0x75 0x72 0x72 0x65 0x6E 0x74    // ' current' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x66    // ' frame f' \n\t0x6F 0x72 0x77 0x61 0x72 0x64 0x2E 0x0D    // 'orward.?' \n\t0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F 0x0D    // '?? Undo?' \n\t0x0A 0x01 0x20 0x43 0x68 0x61 0x6E 0x67    // '?? Chang' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x73 0x74 0x61 0x72 0x74 0x69 0x6E 0x67    // 'starting' \n\t0x20 0x70 0x6F 0x73 0x69 0x74 0x69 0x6F    // ' positio' \n\t0x6E 0x0D 0x0A 0x01 0x20 0x46 0x72 0x65    // 'n??? Fre' \n\t0x65 0x7A 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'ezing an' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x0D    // ' action?' \n\t0x0A 0x01 0x20 0x50 0x6C 0x61 0x79 0x69    // '?? Playi' \n\t0x6E 0x67 0x20 0x79 0x6F 0x75 0x72 0x20    // 'ng your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x0D 0x0A 0x01    // 'movie???' \n\t0x20 0x52 0x65 0x70 0x6F 0x73 0x69 0x74    // ' Reposit' \n\t0x69 0x6F 0x6E 0x69 0x6E 0x67              // 'ioning' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_20= ktpcHowToActors20\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"CO 1) To reposition\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"CO 1) To reposition\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobHowtoSequence kidActorsCompose kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors20\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_73=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpcHowToActors20\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsCompose\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors20\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_73=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_73, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_73=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_73, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA4 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x03    // '????7???' \n\t0x0F 0x00 0x00 0xFD 0x99 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xA3 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xA4 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x04    // '????9???' \n\t0x0D 0x00 0x00 0xFE 0x48 0x00 0x00 0x04    // '???H???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x40    // '????9??@' \n\t0x03 0x00 0x00 0x00 0x48 0x00 0x00 0x40    // '????H??@' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x80    // '????7??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x91 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_73=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_73, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x70    // '??To rep' \n\t0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E 0x20    // 'osition ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C 0x20    // ', prop, ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x77 0x6F    // 'or 3D wo' \n\t0x72 0x64 0x20 0x61 0x6E 0x64 0x20 0x69    // 'rd and i' \n\t0x74 0x73 0x20 0x70 0x61 0x74 0x68 0x0D    // 'ts path?' \n\t0x0A 0x31 0x09 0x47 0x6F 0x20 0x74 0x6F    // '?1?Go to' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x63 0x65 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ce in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x72 0x65 0x70 0x6F 0x73    // 'to repos' \n\t0x69 0x74 0x69 0x6F 0x6E 0x20 0x74 0x68    // 'ition th' \n\t0x65 0x20 0x33 0x44 0x20 0x6F 0x62 0x6A    // 'e 3D obj' \n\t0x65 0x63 0x74 0x20 0x61 0x6E 0x64 0x20    // 'ect and ' \n\t0x69 0x74 0x73 0x20 0x70 0x61 0x74 0x68    // 'its path' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69    // '.??2?Cli' \n\t0x63 0x6B 0x20 0x52 0x65 0x70 0x6F 0x73    // 'ck Repos' \n\t0x69 0x74 0x69 0x6F 0x6E 0x2E              // 'ition.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_21= ktpcHowToActors21\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"CO 2)  Drag the object where you\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"CO 2)  Drag the object where you\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors21\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors21\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors21\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors94 __HELP_SYMBOL( STN \"ktpcHowToActors94\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG ktpcHowToActors85 __HELP_SYMBOL( STN \"ktpcHowToActors85\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToActors83 __HELP_SYMBOL( STN \"ktpcHowToActors83\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToActors84 __HELP_SYMBOL( STN \"ktpcHowToActors84\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x18 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xFD 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x03    // '????6???' \n\t0x0F 0x00 0x00 0xFD 0x9C 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x9E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xFD 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x04 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x04 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x9E 0x00 0x00 0x40    // '??????@' \n\t0x07 0x00 0x00 0x00 0xC1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC3 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0xDC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xDE 0x00 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0xFD 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x9E 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x9E 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x9E 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0xC3 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0xDE 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x20 0x74    // '??Drag t' \n\t0x68 0x65 0x20 0x61 0x63 0x74 0x6F 0x72    // 'he actor' \n\t0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C 0x20    // ', prop, ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x77 0x6F    // 'or 3D wo' \n\t0x72 0x64 0x20 0x77 0x68 0x65 0x72 0x65    // 'rd where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x69 0x74 0x2E 0x0D 0x0A 0x49    // 't it.??I' \n\t0x66 0x20 0x79 0x6F 0x75 0x20 0x68 0x61    // 'f you ha' \n\t0x76 0x65 0x20 0x63 0x72 0x65 0x61 0x74    // 've creat' \n\t0x65 0x64 0x20 0x61 0x20 0x70 0x61 0x74    // 'ed a pat' \n\t0x68 0x20 0x66 0x6F 0x72 0x20 0x74 0x68    // 'h for th' \n\t0x65 0x20 0x33 0x44 0x20 0x6F 0x62 0x6A    // 'e 3D obj' \n\t0x65 0x63 0x74 0x2C 0x20 0x74 0x68 0x65    // 'ect, the' \n\t0x20 0x70 0x61 0x74 0x68 0x20 0x6D 0x6F    // ' path mo' \n\t0x76 0x65 0x73 0x20 0x77 0x69 0x74 0x68    // 'ves with' \n\t0x20 0x74 0x68 0x65 0x20 0x6F 0x62 0x6A    // ' the obj' \n\t0x65 0x63 0x74 0x20 0x66 0x72 0x6F 0x6D    // 'ect from' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x75 0x72    // ' the cur' \n\t0x72 0x65 0x6E 0x74 0x20 0x66 0x72 0x61    // 'rent fra' \n\t0x6D 0x65 0x20 0x6F 0x6E 0x2E 0x0D 0x0A    // 'me on.??' \n\t0x01 0x20 0x4D 0x6F 0x76 0x69 0x6E 0x67    // '? Moving' \n\t0x20 0x75 0x70 0x20 0x6F 0x72 0x20 0x64    // ' up or d' \n\t0x6F 0x77 0x6E 0x20 0x61 0x6E 0x64 0x20    // 'own and ' \n\t0x6E 0x65 0x61 0x72 0x20 0x6F 0x72 0x20    // 'near or ' \n\t0x66 0x61 0x72 0x0D 0x0A 0x01 0x20 0x52    // 'far??? R' \n\t0x65 0x70 0x6F 0x73 0x69 0x74 0x69 0x6F    // 'epositio' \n\t0x6E 0x69 0x6E 0x67 0x20 0x6F 0x6E 0x65    // 'ning one' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x0D 0x0A    // ' frame??' \n\t0x01 0x20 0x52 0x65 0x70 0x6F 0x73 0x69    // '? Reposi' \n\t0x74 0x69 0x6F 0x6E 0x69 0x6E 0x67 0x20    // 'tioning ' \n\t0x74 0x68 0x65 0x20 0x65 0x6E 0x74 0x69    // 'the enti' \n\t0x72 0x65 0x20 0x70 0x61 0x74 0x68         // 're path' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_22= ktpcHowToActors22\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"Reposition--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"Reposition--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors22\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors22\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors22\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_11=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors81 __HELP_SYMBOL( STN \"ktpcHowToActors81\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x21 0x00 0x00 0x40    // '????!??@' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x40    // '????#??@' \n\t0x05 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1B 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x23 0x00 0x00 0xC0    // '????#??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x70 0x6F 0x73 0x69    // '??Reposi' \n\t0x74 0x69 0x6F 0x6E 0x69 0x6E 0x67 0x2D    // 'tioning-' \n\t0x2D 0x57 0x68 0x61 0x74 0x20 0x6E 0x65    // '-What ne' \n\t0x78 0x74 0x3F 0x0D 0x0A 0x01 0x20 0x55    // 'xt???? U' \n\t0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20 0x50    // 'ndo??? P' \n\t0x6C 0x61 0x79 0x69 0x6E 0x67 0x20 0x79    // 'laying y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65                                       // 'e' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_23= ktpcHowToActors23\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"CO 1) To continue same action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"CO 1) To continue same action\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidActorsContinue kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors23\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_49=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToActors23\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsContinue\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors23\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_49=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_49=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x45 0x00 0x00 0x03    // '???E???' \n\t0x0F 0x00 0x00 0xFD 0x9C 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xAE 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xAF 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x04    // '????I???' \n\t0x0D 0x00 0x00 0xFE 0x58 0x00 0x00 0x04    // '???X???' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x40    // '????I??@' \n\t0x03 0x00 0x00 0x00 0x58 0x00 0x00 0x40    // '????X??@' \n\t0x00 0x00 0x00 0x00 0x47 0x00 0x00 0x80    // '????G??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x94 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_49=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x6F 0x6E    // '??To con' \n\t0x74 0x69 0x6E 0x75 0x65 0x20 0x72 0x65    // 'tinue re' \n\t0x63 0x6F 0x72 0x64 0x69 0x6E 0x67 0x20    // 'cording ' \n\t0x74 0x68 0x65 0x20 0x6C 0x61 0x73 0x74    // 'the last' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x20    // ' action ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C 0x20    // ', prop, ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x77 0x6F    // 'or 3D wo' \n\t0x72 0x64 0x20 0x75 0x73 0x65 0x64 0x0D    // 'rd used?' \n\t0x0A 0x31 0x09 0x47 0x6F 0x20 0x74 0x6F    // '?1?Go to' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x63 0x65 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ce in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6E 0x74 0x69    // 'to conti' \n\t0x6E 0x75 0x65 0x20 0x74 0x68 0x65 0x20    // 'nue the ' \n\t0x6C 0x61 0x73 0x74 0x20 0x61 0x63 0x74    // 'last act' \n\t0x69 0x6F 0x6E 0x2E 0x0D 0x0A 0x32 0x09    // 'ion.??2?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x52 0x65    // 'Click Re' \n\t0x73 0x75 0x6D 0x65 0x20 0x4C 0x61 0x73    // 'sume Las' \n\t0x74 0x20 0x41 0x63 0x74 0x69 0x6F 0x6E    // 't Action' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_24= ktpcHowToActors24\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"CO 2)  Depending upon the action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"CO 2)  Depending upon the action\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors24\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors24\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors24\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_36=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8B, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors7E __HELP_SYMBOL( STN \"ktpcHowToActors7E\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToActors92 __HELP_SYMBOL( STN \"ktpcHowToActors92\" )\n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors94 __HELP_SYMBOL( STN \"ktpcHowToActors94\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToActors7D __HELP_SYMBOL( STN \"ktpcHowToActors7D\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG ktpcHowToActors7F __HELP_SYMBOL( STN \"ktpcHowToActors7F\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x02 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x03    // '????#???' \n\t0x0F 0x00 0x00 0xFD 0x9E 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x04    // '????#???' \n\t0x0D 0x00 0x00 0xFE 0x27 0x00 0x00 0x04    // '???'???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x40    // '????#??@' \n\t0x04 0x00 0x00 0x00 0x27 0x00 0x00 0x40    // '????'??@' \n\t0x00 0x00 0x00 0x00 0xA9 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xCB 0x00 0x00 0x40    // '??????@' \n\t0x07 0x00 0x00 0x00 0xDF 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xE1 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0x02 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x80    // '????!??' \n\t0x00 0x00 0x02 0x00 0x4A 0x00 0x00 0x80    // '????J??' \n\t0x00 0x00 0x03 0x00 0x52 0x00 0x00 0x80    // '????R??' \n\t0x00 0x00 0x02 0x00 0xA9 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x21 0x00 0x00 0x82    // '????!??' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0x82    // '????R??' \n\t0x05 0x00 0x00 0x00 0xA9 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0xA9 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00 0xCB 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00 0xE1 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8B, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x65 0x70 0x65 0x6E 0x64    // '??Depend' \n\t0x69 0x6E 0x67 0x20 0x6F 0x6E 0x20 0x74    // 'ing on t' \n\t0x68 0x65 0x20 0x61 0x63 0x74 0x69 0x6F    // 'he actio' \n\t0x6E 0x20 0x65 0x69 0x74 0x68 0x65 0x72    // 'n either' \n\t0x3A 0x0D 0x0A 0x95 0x09 0x44 0x72 0x61    // ':???Dra' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x33 0x44    // 'g the 3D' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x20    // ' object ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x69    // 'u want i' \n\t0x74 0x2E 0x0D 0x0A 0x2D 0x2D 0x6F 0x72    // 't.??--or' \n\t0x2D 0x2D 0x0D 0x0A 0x95 0x09 0x4D 0x6F    // '--???Mo' \n\t0x76 0x65 0x20 0x74 0x68 0x65 0x20 0x6D    // 've the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x63 0x75 0x72    // 'ouse cur' \n\t0x73 0x6F 0x72 0x20 0x6F 0x76 0x65 0x72    // 'sor over' \n\t0x20 0x74 0x68 0x65 0x20 0x33 0x44 0x20    // ' the 3D ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x2C 0x20    // 'object, ' \n\t0x74 0x68 0x65 0x6E 0x20 0x68 0x6F 0x6C    // 'then hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x74    // 'd down t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x20    // ' button ' \n\t0x61 0x6E 0x64 0x20 0x77 0x61 0x69 0x74    // 'and wait' \n\t0x2E 0x0D 0x0A 0x01 0x20 0x43 0x68 0x61    // '.??? Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x73 0x74 0x61 0x72 0x74 0x69    // 'e starti' \n\t0x6E 0x67 0x20 0x70 0x6F 0x73 0x69 0x74    // 'ng posit' \n\t0x69 0x6F 0x6E 0x0D 0x0A 0x01 0x20 0x46    // 'ion??? F' \n\t0x72 0x65 0x65 0x7A 0x69 0x6E 0x67 0x20    // 'reezing ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x69 0x6F    // 'an actio' \n\t0x6E 0x0D 0x0A 0x01 0x20 0x4D 0x6F 0x76    // 'n??? Mov' \n\t0x69 0x6E 0x67 0x20 0x75 0x70 0x20 0x6F    // 'ing up o' \n\t0x72 0x20 0x64 0x6F 0x77 0x6E 0x20 0x26    // 'r down &' \n\t0x20 0x6E 0x65 0x61 0x72 0x20 0x6F 0x72    // ' near or' \n\t0x20 0x66 0x61 0x72                        // ' far' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_25= ktpcHowToActors25\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"Continue Action--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"Continue Action--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors25\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_80=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors25\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors25\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_80=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x05 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_18=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_80, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors81 __HELP_SYMBOL( STN \"ktpcHowToActors81\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_80=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_80, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x01 0x00 0x00 0x00 0x44 0x00 0x00 0x01    // '????D???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x02 0x00 0x00 0x00 0x2E 0x00 0x00 0x40    // '????.??@' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x40    // '????0??@' \n\t0x01 0x00 0x00 0x00 0x44 0x00 0x00 0x40    // '????D??@' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x80    // '????(??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x28 0x00 0x00 0x82    // '????(??' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0xC0    // '????(??' \n\t0x03 0x00 0x00 0x00 0x30 0x00 0x00 0xC0    // '????0??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_80=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_80, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x6E 0x74 0x69 0x6E    // '??Contin' \n\t0x75 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'uing the' \n\t0x20 0x73 0x61 0x6D 0x65 0x20 0x61 0x63    // ' same ac' \n\t0x74 0x69 0x6F 0x6E 0x2D 0x2D 0x57 0x68    // 'tion--Wh' \n\t0x61 0x74 0x20 0x6E 0x65 0x78 0x74 0x3F    // 'at next?' \n\t0x0D 0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F    // '??? Undo' \n\t0x0D 0x0A 0x01 0x20 0x50 0x6C 0x61 0x79    // '??? Play' \n\t0x69 0x6E 0x67 0x20 0x79 0x6F 0x75 0x72    // 'ing your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65              // ' movie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_26= ktpcHowToActors26\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"Blank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"Blank\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTActors26\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_22=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToActors26\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors26\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_22=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x3A 0x01 0x00 0x00    // '????:???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_22=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x05 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_22=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x6C 0x61 0x6E 0x6B         // '??Blank' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_27= ktpcHowToActors27\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"Blank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"Blank\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTActors27\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_25=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToActors27\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors27\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_25=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_25=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x05 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_25=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x6C 0x61 0x6E 0x6B         // '??Blank' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_28= ktpcHowToActors28\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"Blank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"Blank\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTActors28\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_88=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToActors28\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors28\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_88=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_88=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_88, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x05 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_88=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_88, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x6C 0x61 0x6E 0x6B         // '??Blank' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_29= ktpcHowToActors29\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"Blank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"Blank\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTActors29\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_38=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToActors29\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors29\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_38=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_38=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x05 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_38=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x6C 0x61 0x6E 0x6B 0x0D    // '??Blank?' \n\t0x0A                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2A= ktpcHowToActors2A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidActorsRecordMode kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors2A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToActors2A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsRecordMode\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors2A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors86 __HELP_SYMBOL( STN \"ktpcHowToActors86\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x16 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xCB 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x05 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x07 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x27 0x00 0x00 0x03    // '???'???' \n\t0x0F 0x00 0x00 0xFD 0x80 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0x94 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xCB 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x04    // '????+???' \n\t0x0D 0x00 0x00 0xFE 0x3A 0x00 0x00 0x04    // '???:???' \n\t0x00 0x00 0x00 0x00 0x78 0x00 0x00 0x04    // '????x???' \n\t0x0D 0x00 0x00 0xFE 0x7F 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x40    // '????'??@' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x40    // '????+??@' \n\t0x04 0x00 0x00 0x00 0x3A 0x00 0x00 0x40    // '????:??@' \n\t0x00 0x00 0x00 0x00 0x78 0x00 0x00 0x40    // '????x??@' \n\t0x02 0x00 0x00 0x00 0x7F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x80    // '????)??' \n\t0x00 0x00 0x02 0x00 0x97 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x0D 0x0A 0x54    // '??Cut??T' \n\t0x6F 0x20 0x72 0x65 0x70 0x6C 0x61 0x63    // 'o replac' \n\t0x65 0x20 0x70 0x61 0x72 0x74 0x20 0x6F    // 'e part o' \n\t0x66 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'f an act' \n\t0x6F 0x72 0x27 0x73 0x20 0x70 0x61 0x74    // 'or's pat' \n\t0x68 0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20    // 'h??1?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x72 0x65 0x70    // 't to rep' \n\t0x6C 0x61 0x63 0x65 0x20 0x70 0x61 0x72    // 'lace par' \n\t0x74 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 't of the' \n\t0x20 0x70 0x61 0x74 0x68 0x2E 0x0D 0x0A    // ' path.??' \n\t0x32 0x09 0x54 0x75 0x72 0x6E 0x20 0x6F    // '2?Turn o' \n\t0x6E 0x20 0x52 0x65 0x70 0x6C 0x61 0x63    // 'n Replac' \n\t0x65 0x20 0x50 0x61 0x72 0x74 0x20 0x6F    // 'e Part o' \n\t0x66 0x20 0x50 0x61 0x74 0x68 0x2E 0x0D    // 'f Path.?' \n\t0x0A 0x57 0x68 0x65 0x6E 0x20 0x22 0x6F    // '?When \"o' \n\t0x6E 0x2C 0x22 0x20 0x74 0x68 0x65 0x20    // 'n,\" the ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x69    // 'button i' \n\t0x73 0x20 0x70 0x75 0x73 0x68 0x65 0x64    // 's pushed' \n\t0x20 0x69 0x6E 0x20 0x61 0x6E 0x64 0x20    // ' in and ' \n\t0x69 0x74 0x20 0x6C 0x69 0x67 0x68 0x74    // 'it light' \n\t0x73 0x20 0x75 0x70 0x2E                   // 's up.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2B= ktpcHowToActors2B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon8 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x24E 0xF0 0x57415645 kwavHTActors2B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon8\"\n\tITEM\n\t\t\"ktpcHowToActors2B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors2B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x35 0x01 0x00 0x00    // '????5???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_13=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors89 __HELP_SYMBOL( STN \"ktpcHowToActors89\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG ktpcHowToActors92 __HELP_SYMBOL( STN \"ktpcHowToActors92\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 6 LONG ktpcHowToActors7F __HELP_SYMBOL( STN \"ktpcHowToActors7F\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToActors7E __HELP_SYMBOL( STN \"ktpcHowToActors7E\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors94 __HELP_SYMBOL( STN \"ktpcHowToActors94\" )\n\tITEM LONG 0xC0000005\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToActors7D __HELP_SYMBOL( STN \"ktpcHowToActors7D\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // ' ???????' \n\t0x01 0x00 0x00 0x00 0xEF 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x03    // '????)???' \n\t0x0F 0x00 0x00 0xFD 0xA5 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x04    // '????*???' \n\t0x0D 0x00 0x00 0xFE 0x2E 0x00 0x00 0x04    // '???.???' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x40    // '????*??@' \n\t0x05 0x00 0x00 0x00 0x2E 0x00 0x00 0x40    // '????.??@' \n\t0x00 0x00 0x00 0x00 0x55 0x01 0x00 0x40    // '????U??@' \n\t0x01 0x00 0x00 0x00 0x6D 0x01 0x00 0x40    // '????m??@' \n\t0x04 0x00 0x00 0x00 0x90 0x01 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0xA7 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xCD 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xEF 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x80    // '????(??' \n\t0x00 0x00 0x02 0x00 0x51 0x00 0x00 0x80    // '????Q??' \n\t0x00 0x00 0x03 0x00 0x59 0x00 0x00 0x80    // '????Y??' \n\t0x00 0x00 0x02 0x00 0xB0 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x55 0x01 0x00 0x80    // '????U??' \n\t0x00 0x00 0x02 0x00 0x6D 0x01 0x00 0x80    // '????m??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x28 0x00 0x00 0x82    // '????(??' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x82    // '????Y??' \n\t0x05 0x00 0x00 0x00 0x55 0x01 0x00 0x82    // '????U??' \n\t0x00 0x00 0x00 0x00 0x55 0x01 0x00 0xC0    // '????U??' \n\t0x06 0x00 0x00 0x00 0x6D 0x01 0x00 0xC0    // '????m??' \n\t0x06 0x00 0x00 0x00 0x90 0x01 0x00 0xC0    // '??????' \n\t0x06 0x00 0x00 0x00 0xA7 0x01 0x00 0xC0    // '??????' \n\t0x06 0x00 0x00 0x00 0xCD 0x01 0x00 0xC0    // '??????' \n\t0x06 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x0D 0x0A 0x44    // '??Cut??D' \n\t0x65 0x70 0x65 0x6E 0x64 0x69 0x6E 0x67    // 'epending' \n\t0x20 0x75 0x70 0x6F 0x6E 0x20 0x74 0x68    // ' upon th' \n\t0x65 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'e action' \n\t0x20 0x65 0x69 0x74 0x68 0x65 0x72 0x3A    // ' either:' \n\t0x0D 0x0A 0x95 0x09 0x44 0x72 0x61 0x67    // '???Drag' \n\t0x20 0x74 0x68 0x65 0x20 0x33 0x44 0x20    // ' the 3D ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x20 0x77    // 'object w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x69 0x74    // ' want it' \n\t0x2E 0x0D 0x0A 0x2D 0x2D 0x6F 0x72 0x2D    // '.??--or-' \n\t0x2D 0x0D 0x0A 0x95 0x09 0x4D 0x6F 0x76    // '-???Mov' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'e the mo' \n\t0x75 0x73 0x65 0x20 0x63 0x75 0x72 0x73    // 'use curs' \n\t0x6F 0x72 0x20 0x6F 0x76 0x65 0x72 0x20    // 'or over ' \n\t0x74 0x68 0x65 0x20 0x33 0x44 0x20 0x6F    // 'the 3D o' \n\t0x62 0x6A 0x65 0x63 0x74 0x2C 0x20 0x74    // 'bject, t' \n\t0x68 0x65 0x6E 0x20 0x68 0x6F 0x6C 0x64    // 'hen hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x68    // ' down th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x61    // 'button a' \n\t0x6E 0x64 0x20 0x77 0x61 0x69 0x74 0x2E    // 'nd wait.' \n\t0x0D 0x0A 0x4E 0x6F 0x74 0x65 0x3A 0x20    // '??Note: ' \n\t0x20 0x41 0x63 0x74 0x69 0x6F 0x6E 0x73    // ' Actions' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x22 0x57    // ' like \"W' \n\t0x61 0x6C 0x6B 0x22 0x20 0x61 0x6E 0x64    // 'alk\" and' \n\t0x20 0x22 0x52 0x75 0x6E 0x22 0x20 0x77    // ' \"Run\" w' \n\t0x6F 0x72 0x6B 0x20 0x62 0x65 0x73 0x74    // 'ork best' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x79 0x6F    // ' when yo' \n\t0x75 0x20 0x64 0x72 0x61 0x67 0x2E 0x20    // 'u drag. ' \n\t0x20 0x41 0x63 0x74 0x69 0x6F 0x6E 0x73    // ' Actions' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x22 0x47    // ' like \"G' \n\t0x72 0x65 0x65 0x74 0x2C 0x22 0x20 0x22    // 'reet,\" \"' \n\t0x54 0x61 0x6C 0x6B 0x2C 0x22 0x20 0x61    // 'Talk,\" a' \n\t0x6E 0x64 0x20 0x22 0x4C 0x61 0x79 0x20    // 'nd \"Lay ' \n\t0x44 0x6F 0x77 0x6E 0x22 0x20 0x77 0x6F    // 'Down\" wo' \n\t0x72 0x6B 0x20 0x62 0x65 0x73 0x74 0x20    // 'rk best ' \n\t0x77 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'when you' \n\t0x20 0x68 0x6F 0x6C 0x64 0x20 0x64 0x6F    // ' hold do' \n\t0x77 0x6E 0x20 0x74 0x68 0x65 0x20 0x6D    // 'wn the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x62 0x75 0x74    // 'ouse but' \n\t0x74 0x6F 0x6E 0x20 0x61 0x6E 0x64 0x20    // 'ton and ' \n\t0x77 0x61 0x69 0x74 0x2E 0x0D 0x0A 0x01    // 'wait.???' \n\t0x20 0x20 0x43 0x68 0x61 0x6E 0x67 0x69    // '  Changi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x61    // 'ng the a' \n\t0x63 0x74 0x69 0x6F 0x6E 0x0D 0x0A 0x01    // 'ction???' \n\t0x20 0x20 0x43 0x68 0x61 0x6E 0x67 0x69    // '  Changi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ng the s' \n\t0x74 0x61 0x72 0x74 0x69 0x6E 0x67 0x20    // 'tarting ' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x0D 0x0A 0x01 0x20 0x20 0x46 0x72 0x65    // '???  Fre' \n\t0x65 0x7A 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'ezing an' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x0D    // ' action?' \n\t0x0A 0x01 0x20 0x20 0x4D 0x6F 0x76 0x69    // '??  Movi' \n\t0x6E 0x67 0x20 0x74 0x68 0x72 0x6F 0x75    // 'ng throu' \n\t0x67 0x68 0x20 0x74 0x68 0x65 0x20 0x67    // 'gh the g' \n\t0x72 0x6F 0x75 0x6E 0x64 0x20 0x73 0x75    // 'round su' \n\t0x72 0x66 0x61 0x63 0x65 0x0D 0x0A 0x01    // 'rface???' \n\t0x20 0x20 0x4D 0x6F 0x76 0x69 0x6E 0x67    // '  Moving' \n\t0x20 0x75 0x70 0x20 0x6F 0x72 0x20 0x64    // ' up or d' \n\t0x6F 0x77 0x6E 0x20 0x26 0x20 0x6E 0x65    // 'own & ne' \n\t0x61 0x72 0x20 0x6F 0x72 0x20 0x66 0x61    // 'ar or fa' \n\t0x72                                       // 'r' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2C= ktpcHowToActors2C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors2C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_24=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors2C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors2C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_24=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\nAG(4)\n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipKey 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipKey\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors82 __HELP_SYMBOL( STN \"ktpcHowToActors82\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToActors81 __HELP_SYMBOL( STN \"ktpcHowToActors81\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToActors7C __HELP_SYMBOL( STN \"ktpcHowToActors7C\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_24=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x18 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x2D 0x00 0x00 0x03    // '???-???' \n\t0x0F 0x00 0x00 0xFD 0x94 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xCE 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xD2 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xDE 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xCF 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xDE 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE0 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xE6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE8 0x00 0x00 0x40    // '??????@' \n\t0x07 0x00 0x00 0x00 0xFC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xFE 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0x0D 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0xE0 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xCE 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0xCF 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0xE0 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xE8 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xFE 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_24=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x0D 0x0A 0x52    // '??Cut??R' \n\t0x65 0x70 0x6C 0x61 0x63 0x69 0x6E 0x67    // 'eplacing' \n\t0x20 0x50 0x61 0x72 0x74 0x20 0x6F 0x66    // ' Part of' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x61 0x74    // ' the Pat' \n\t0x68 0x2D 0x2D 0x57 0x68 0x61 0x74 0x20    // 'h--What ' \n\t0x4E 0x65 0x78 0x74 0x3F 0x0D 0x0A 0x54    // 'Next???T' \n\t0x68 0x65 0x20 0x6E 0x65 0x77 0x20 0x70    // 'he new p' \n\t0x61 0x74 0x68 0x20 0x72 0x65 0x6A 0x6F    // 'ath rejo' \n\t0x69 0x6E 0x73 0x20 0x74 0x68 0x65 0x20    // 'ins the ' \n\t0x6F 0x6C 0x64 0x20 0x70 0x61 0x74 0x68    // 'old path' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x63 0x6C 0x6F 0x73 0x65 0x73 0x74 0x20    // 'closest ' \n\t0x70 0x6F 0x69 0x6E 0x74 0x2E 0x20 0x0D    // 'point. ?' \n\t0x0A 0x49 0x66 0x20 0x79 0x6F 0x75 0x20    // '?If you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x72 0x65 0x70 0x6C 0x61 0x63 0x65 0x20    // 'replace ' \n\t0x61 0x6E 0x20 0x65 0x6E 0x74 0x69 0x72    // 'an entir' \n\t0x65 0x20 0x70 0x61 0x74 0x68 0x2C 0x20    // 'e path, ' \n\t0x74 0x75 0x72 0x6E 0x20 0x6F 0x66 0x66    // 'turn off' \n\t0x20 0x74 0x68 0x65 0x20 0x52 0x65 0x70    // ' the Rep' \n\t0x6C 0x61 0x63 0x65 0x20 0x50 0x61 0x72    // 'lace Par' \n\t0x74 0x20 0x6F 0x66 0x20 0x50 0x61 0x74    // 't of Pat' \n\t0x68 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'h button' \n\t0x20 0x62 0x79 0x20 0x63 0x6C 0x69 0x63    // ' by clic' \n\t0x6B 0x69 0x6E 0x67 0x20 0x69 0x74 0x20    // 'king it ' \n\t0x61 0x67 0x61 0x69 0x6E 0x2E 0x0D 0x0A    // 'again.??' \n\t0x20 0x01 0x20 0x20 0x53 0x68 0x6F 0x72    // ' ?  Shor' \n\t0x74 0x63 0x75 0x74 0x20 0x6B 0x65 0x79    // 'tcut key' \n\t0x0D 0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F    // '??? Undo' \n\t0x0D 0x0A 0x01 0x20 0x50 0x6C 0x61 0x79    // '??? Play' \n\t0x69 0x6E 0x67 0x20 0x79 0x6F 0x75 0x72    // 'ing your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x0D 0x0A    // ' movie??' \n\t0x01 0x20 0x52 0x65 0x70 0x6F 0x73 0x69    // '? Reposi' \n\t0x74 0x69 0x6F 0x6E 0x69 0x6E 0x67         // 'tioning' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2D= ktpcHowToActors2D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"Blank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"Blank\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTActors2D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_67=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToActors2D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors2D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_67=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_67=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_67, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_67=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_67, 0x0)\n\tBYTE\n\t0x03 0x03                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2E= ktpcHowToActors2E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"Blank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"Blank\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTActors2E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_89=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToActors2E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors2E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_89=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_89=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_89, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x05 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_89=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_89, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x6C 0x61 0x6E 0x6B         // '??Blank' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2F= ktpcHowToActors2F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"Blank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"Blank\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTActors2F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_21=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToActors2F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors2F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_21=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_21=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x05 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_21=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x6C 0x61 0x6E 0x6B         // '??Blank' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_30= ktpcHowToActors30\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"CO 1) To synchronize\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"CO 1) To synchronize\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon3 kgobHowtoSequence kidActorsSooner kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors30\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_31=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon3\"\n\tITEM\n\t\t\"ktpcHowToActors30\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsSooner\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors30\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_31=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_31=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x03    // '????I???' \n\t0x0F 0x00 0x00 0xFD 0xA0 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xAB 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xAC 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x04    // '????K???' \n\t0x0D 0x00 0x00 0xFE 0x5A 0x00 0x00 0x04    // '???Z???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x40    // '????K??@' \n\t0x03 0x00 0x00 0x00 0x5A 0x00 0x00 0x40    // '????Z??@' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x80    // '????I??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_31=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x77 0x68 0x65 0x6E    // 'nge when' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x67 0x65 0x74 0x73    // 'ord gets' \n\t0x20 0x74 0x6F 0x20 0x61 0x20 0x70 0x61    // ' to a pa' \n\t0x72 0x74 0x69 0x63 0x75 0x6C 0x61 0x72    // 'rticular' \n\t0x20 0x6C 0x6F 0x63 0x61 0x74 0x69 0x6F    // ' locatio' \n\t0x6E 0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20    // 'n??1?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x6E 0x20    // 'ie when ' \n\t0x74 0x68 0x65 0x20 0x33 0x44 0x20 0x6F    // 'the 3D o' \n\t0x62 0x6A 0x65 0x63 0x74 0x20 0x61 0x70    // 'bject ap' \n\t0x70 0x65 0x61 0x72 0x73 0x20 0x69 0x6E    // 'pears in' \n\t0x20 0x74 0x68 0x65 0x20 0x72 0x69 0x67    // ' the rig' \n\t0x68 0x74 0x20 0x73 0x70 0x6F 0x74 0x2E    // 'ht spot.' \n\t0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69 0x63    // '??2?Clic' \n\t0x6B 0x20 0x53 0x79 0x6E 0x63 0x68 0x72    // 'k Synchr' \n\t0x6F 0x6E 0x69 0x7A 0x65 0x2E              // 'onize.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_31= ktpcHowToActors31\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"CO 2)  To freeze\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"CO 2)  To freeze\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors31\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_40=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors31\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors31\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_40=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_40=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_40=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x2E 0x20 0x20 0x54 0x68    // 'ord.  Th' \n\t0x65 0x20 0x33 0x44 0x20 0x6F 0x62 0x6A    // 'e 3D obj' \n\t0x65 0x63 0x74 0x20 0x69 0x73 0x20 0x22    // 'ect is \"' \n\t0x66 0x72 0x6F 0x7A 0x65 0x6E 0x2E 0x22    // 'frozen.\"' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_32= ktpcHowToActors32\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"CO 3)  Click Forward or Back\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"CO 3)  Click Forward or Back\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors32\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors32\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors32\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x94 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x94 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x52 0x00 0x00 0x82    // '????R??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x46 0x6F 0x72 0x77    // 'the Forw' \n\t0x61 0x72 0x64 0x20 0x6F 0x72 0x20 0x42    // 'ard or B' \n\t0x61 0x63 0x6B 0x20 0x41 0x72 0x72 0x6F    // 'ack Arro' \n\t0x77 0x20 0x74 0x6F 0x20 0x6D 0x6F 0x76    // 'w to mov' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'e the mo' \n\t0x76 0x69 0x65 0x20 0x66 0x6F 0x72 0x77    // 'vie forw' \n\t0x61 0x72 0x64 0x73 0x20 0x6F 0x72 0x20    // 'ards or ' \n\t0x62 0x61 0x63 0x6B 0x77 0x61 0x72 0x64    // 'backward' \n\t0x73 0x20 0x69 0x6E 0x20 0x74 0x69 0x6D    // 's in tim' \n\t0x65 0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x63    // 'e.??To c' \n\t0x68 0x65 0x63 0x6B 0x20 0x79 0x6F 0x75    // 'heck you' \n\t0x72 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'r change' \n\t0x73 0x2C 0x20 0x72 0x65 0x77 0x69 0x6E    // 's, rewin' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'd the mo' \n\t0x76 0x69 0x65 0x20 0x61 0x6E 0x64 0x20    // 'vie and ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x50 0x6C 0x61 0x79 0x20 0x62    // 'e Play b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x2E              // 'utton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_33= ktpcHowToActors33\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"Synchronize--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"Synchronize--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors33\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_37=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors33\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors33\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_37=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x04 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_29=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors81 __HELP_SYMBOL( STN \"ktpcHowToActors81\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_37=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x52 0x00 0x00 0x01    // '????R???' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x01    // '????T???' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0x01    // '????p???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x52 0x00 0x00 0x03    // '???R???' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x40    // '????T??@' \n\t0x04 0x00 0x00 0x00 0x5A 0x00 0x00 0x40    // '????Z??@' \n\t0x00 0x00 0x00 0x00 0x5C 0x00 0x00 0x40    // '????\\??@' \n\t0x05 0x00 0x00 0x00 0x70 0x00 0x00 0x40    // '????p??@' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x80    // '????T??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x54 0x00 0x00 0x82    // '????T??' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0xC0    // '????T??' \n\t0x02 0x00 0x00 0x00 0x5C 0x00 0x00 0xC0    // '????\\??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_37=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x77 0x68 0x65 0x6E 0x20    // 'ng when ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C 0x20    // ', prop, ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x77 0x6F    // 'or 3D wo' \n\t0x72 0x64 0x20 0x67 0x65 0x74 0x73 0x20    // 'rd gets ' \n\t0x74 0x6F 0x20 0x61 0x20 0x70 0x61 0x72    // 'to a par' \n\t0x74 0x69 0x63 0x75 0x6C 0x61 0x72 0x20    // 'ticular ' \n\t0x6C 0x6F 0x63 0x61 0x74 0x69 0x6F 0x6E    // 'location' \n\t0x2D 0x2D 0x57 0x68 0x61 0x74 0x20 0x6E    // '--What n' \n\t0x65 0x78 0x74 0x3F 0x0D 0x0A 0x01 0x20    // 'ext???? ' \n\t0x55 0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20    // 'Undo??? ' \n\t0x50 0x6C 0x61 0x79 0x69 0x6E 0x67 0x20    // 'Playing ' \n\t0x59 0x6F 0x75 0x72 0x20 0x4D 0x6F 0x76    // 'Your Mov' \n\t0x69 0x65                                  // 'ie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_34= ktpcHowToActors34\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"CO 1) To change path timing\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"CO 1) To change path timing\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon3 kgobHowtoSequence kidActorsSooner kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors34\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon3\"\n\tITEM\n\t\t\"ktpcHowToActors34\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsSooner\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors34\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x41 0x00 0x00 0x03    // '???A???' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x03    // '????C???' \n\t0x0F 0x00 0x00 0xFD 0xDC 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xE7 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xE8 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x04    // '????E???' \n\t0x0D 0x00 0x00 0xFE 0x54 0x00 0x00 0x04    // '???T???' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x03 0x00 0x00 0x00 0x54 0x00 0x00 0x40    // '????T??@' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x80    // '????C??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xD4 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x70 0x61 0x74 0x68    // 'nge path' \n\t0x20 0x74 0x69 0x6D 0x69 0x6E 0x67 0x20    // ' timing ' \n\t0x73 0x6F 0x20 0x74 0x68 0x61 0x74 0x20    // 'so that ' \n\t0x74 0x77 0x6F 0x20 0x61 0x63 0x74 0x6F    // 'two acto' \n\t0x72 0x73 0x20 0x20 0x6D 0x65 0x65 0x74    // 'rs  meet' \n\t0x20 0x75 0x70 0x20 0x77 0x69 0x74 0x68    // ' up with' \n\t0x20 0x65 0x61 0x63 0x68 0x20 0x6F 0x74    // ' each ot' \n\t0x68 0x65 0x72 0x0D 0x0A 0x31 0x09 0x47    // 'her??1?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x68 0x65 0x20    // 'ant the ' \n\t0x33 0x44 0x20 0x6F 0x62 0x6A 0x65 0x63    // '3D objec' \n\t0x74 0x73 0x20 0x74 0x6F 0x20 0x6D 0x65    // 'ts to me' \n\t0x65 0x74 0x2E 0x20 0x20 0x4E 0x6F 0x74    // 'et.  Not' \n\t0x65 0x3A 0x20 0x20 0x4F 0x6E 0x65 0x20    // 'e:  One ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x6F    // 'of the o' \n\t0x62 0x6A 0x65 0x63 0x74 0x73 0x20 0x6D    // 'bjects m' \n\t0x75 0x73 0x74 0x20 0x61 0x6C 0x72 0x65    // 'ust alre' \n\t0x61 0x64 0x79 0x20 0x62 0x65 0x20 0x70    // 'ady be p' \n\t0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E 0x65    // 'ositione' \n\t0x64 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'd where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09    // ' it.??2?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x53 0x79    // 'Click Sy' \n\t0x6E 0x63 0x68 0x72 0x6F 0x6E 0x69 0x7A    // 'nchroniz' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_35= ktpcHowToActors35\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"CO 2)  To freeze in right spot\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"CO 2)  To freeze in right spot\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors35\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_79=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors35\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors35\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_79=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_79=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_79, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x57 0x00 0x00 0x01    // '????W???' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0x40    // '????W??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_79=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_79, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x74 0x68 0x61 0x74    // 'ord that' \n\t0x20 0x69 0x73 0x20 0x69 0x6E 0x20 0x74    // ' is in t' \n\t0x68 0x65 0x20 0x72 0x69 0x67 0x68 0x74    // 'he right' \n\t0x20 0x73 0x70 0x6F 0x74 0x2E 0x20 0x54    // ' spot. T' \n\t0x68 0x65 0x20 0x33 0x44 0x20 0x6F 0x62    // 'he 3D ob' \n\t0x6A 0x65 0x63 0x74 0x20 0x69 0x73 0x20    // 'ject is ' \n\t0x22 0x66 0x72 0x6F 0x7A 0x65 0x6E 0x2E    // '\"frozen.' \n\t0x22                                       // '\"' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_36= ktpcHowToActors36\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"CO 3)  Click arrows until\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"CO 3)  Click arrows until\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors36\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_35=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors36\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors36\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_35=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_35=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x93 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x51 0x00 0x00 0x82    // '????Q??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_35=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x46 0x6F 0x72 0x77    // 'the Forw' \n\t0x61 0x72 0x64 0x20 0x6F 0x72 0x20 0x42    // 'ard or B' \n\t0x61 0x63 0x6B 0x20 0x41 0x72 0x72 0x6F    // 'ack Arro' \n\t0x77 0x20 0x75 0x6E 0x74 0x69 0x6C 0x20    // 'w until ' \n\t0x74 0x68 0x65 0x20 0x6F 0x74 0x68 0x65    // 'the othe' \n\t0x72 0x20 0x33 0x44 0x20 0x6F 0x62 0x6A    // 'r 3D obj' \n\t0x65 0x63 0x74 0x20 0x69 0x73 0x20 0x77    // 'ect is w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x69 0x74    // ' want it' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x63 0x68    // '.??To ch' \n\t0x65 0x63 0x6B 0x20 0x79 0x6F 0x75 0x72    // 'eck your' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x73    // ' changes' \n\t0x2C 0x20 0x72 0x65 0x77 0x69 0x6E 0x64    // ', rewind' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x61 0x6E 0x64 0x20 0x63    // 'ie and c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x50 0x6C 0x61 0x79 0x20 0x62 0x75    // ' Play bu' \n\t0x74 0x74 0x6F 0x6E 0x2E                   // 'tton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_37= ktpcHowToActors37\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"Meet up--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"Meet up--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors37\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors37\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors37\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors81 __HELP_SYMBOL( STN \"ktpcHowToActors81\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x01 0x00 0x00 0x00 0x40 0x00 0x00 0x01    // '????@???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x22 0x00 0x00 0x03    // '???\"???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x40    // '????$??@' \n\t0x04 0x00 0x00 0x00 0x2A 0x00 0x00 0x40    // '????*??@' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x40    // '????,??@' \n\t0x05 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x80    // '????$??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x24 0x00 0x00 0x82    // '????$??' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0xC0    // '????$??' \n\t0x02 0x00 0x00 0x00 0x2C 0x00 0x00 0xC0    // '????,??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x6B 0x69 0x6E 0x67    // '??Making' \n\t0x20 0x74 0x77 0x6F 0x20 0x61 0x63 0x74    // ' two act' \n\t0x6F 0x72 0x73 0x20 0x6D 0x65 0x65 0x74    // 'ors meet' \n\t0x2D 0x2D 0x57 0x68 0x61 0x74 0x20 0x6E    // '--What n' \n\t0x65 0x78 0x74 0x3F 0x0D 0x0A 0x01 0x20    // 'ext???? ' \n\t0x55 0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20    // 'Undo??? ' \n\t0x50 0x6C 0x61 0x79 0x69 0x6E 0x67 0x20    // 'Playing ' \n\t0x59 0x6F 0x75 0x72 0x20 0x4D 0x6F 0x76    // 'Your Mov' \n\t0x69 0x65                                  // 'ie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_38= ktpcHowToActors38\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"CO 1) To copy path\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"CO 1) To copy path\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors38\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors38\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors38\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xC4 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x52 0x00 0x00 0x03    // '???R???' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x03    // '????T???' \n\t0x0F 0x00 0x00 0xFD 0xAB 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xC3 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xC4 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x04    // '????V???' \n\t0x0D 0x00 0x00 0xFE 0x65 0x00 0x00 0x04    // '???e???' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x40    // '????V??@' \n\t0x03 0x00 0x00 0x00 0x65 0x00 0x00 0x40    // '????e??@' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x80    // '????T??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x9F 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x6F 0x70    // '??To cop' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x70 0x61    // 'y the pa' \n\t0x74 0x68 0x20 0x6F 0x66 0x20 0x61 0x6E    // 'th of an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x61 0x6E 0x64 0x20 0x70 0x61 0x73    // ' and pas' \n\t0x74 0x65 0x20 0x69 0x74 0x20 0x6F 0x6E    // 'te it on' \n\t0x74 0x6F 0x20 0x61 0x6E 0x6F 0x74 0x68    // 'to anoth' \n\t0x65 0x72 0x20 0x33 0x44 0x20 0x6F 0x62    // 'er 3D ob' \n\t0x6A 0x65 0x63 0x74 0x0D 0x0A 0x31 0x09    // 'ject??1?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x62 0x65 0x67 0x69 0x6E 0x20 0x63 0x6F    // 'begin co' \n\t0x70 0x79 0x69 0x6E 0x67 0x20 0x74 0x68    // 'pying th' \n\t0x65 0x20 0x70 0x61 0x74 0x68 0x2E 0x0D    // 'e path.?' \n\t0x0A 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?2?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x43 0x75 0x74    // ' the Cut' \n\t0x2C 0x20 0x43 0x6F 0x70 0x79 0x2C 0x20    // ', Copy, ' \n\t0x26 0x20 0x50 0x61 0x73 0x74 0x65 0x20    // '& Paste ' \n\t0x54 0x6F 0x6F 0x6C 0x73 0x2E              // 'Tools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_39= ktpcHowToActors39\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"CO 2)  Click Copy Path\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"CO 2)  Click Copy Path\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPCopyRoute kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors39\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors39\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPCopyRoute\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors39\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x64 0x00 0x00 0x00    // '????d???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7B, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x6F 0x70 0x79 0x20 0x50 0x61 0x74    // 'Copy Pat' \n\t0x68 0x2E                                  // 'h.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3A= ktpcHowToActors3A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"CO 3)  Click actor copy path\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"CO 3)  Click actor copy path\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors3A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors3A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors3A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x93 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x77 0x68 0x6F 0x73    // 'ord whos' \n\t0x65 0x20 0x70 0x61 0x74 0x68 0x20 0x79    // 'e path y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x70 0x79 0x2E    // 'to copy.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3B= ktpcHowToActors3B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"CO 4)  Click Cut, Copy, Paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"CO 4)  Click Cut, Copy, Paste\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors3B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors3B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors3B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_44=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4F, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x72 0x00 0x00 0x01    // '????r???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x59 0x00 0x00 0x03    // '???Y???' \n\t0x0A 0x00 0x00 0xFD 0x71 0x00 0x00 0x03    // '???q???' \n\t0x0F 0x00 0x00 0xFD 0x72 0x00 0x00 0x03    // '???r???' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x1B 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x1B 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x40    // '????r??@' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4D 0x00 0x00 0x82    // '????M??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x61 0x73    // '??To pas' \n\t0x74 0x65 0x0D 0x0A 0x31 0x09 0x47 0x6F    // 'te??1?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x70 0x61    // 'nt to pa' \n\t0x73 0x74 0x65 0x20 0x74 0x68 0x65 0x20    // 'ste the ' \n\t0x70 0x61 0x74 0x68 0x2E 0x0D 0x0A 0x32    // 'path.??2' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x43 0x75 0x74 0x2C 0x20    // 'he Cut, ' \n\t0x43 0x6F 0x70 0x79 0x2C 0x20 0x26 0x20    // 'Copy, & ' \n\t0x50 0x61 0x73 0x74 0x65 0x20 0x54 0x6F    // 'Paste To' \n\t0x6F 0x6C 0x73 0x2E                        // 'ols.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3C= ktpcHowToActors3C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"CO 5)  Click Paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"CO 5)  Click Paste\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors3C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors3C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors3C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x46 0x00 0x00 0x00    // '????F???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x50 0x61 0x73 0x74 0x65 0x2E              // 'Paste.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3D= ktpcHowToActors3D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"CO 6)  Apply paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"CO 6)  Apply paste\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors3D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors3D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors3D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x40 0x00 0x00 0x01    // '????@???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x40 0x00 0x00 0x03    // '???@???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x20    // 'ord you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x61 0x70 0x70 0x6C 0x79 0x20 0x74 0x68    // 'apply th' \n\t0x65 0x20 0x70 0x61 0x74 0x68 0x20 0x74    // 'e path t' \n\t0x6F 0x2E                                  // 'o.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3E= ktpcHowToActors3E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"Copy Path--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"Copy Path--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors3E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors3E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors3E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tFREE\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors89 __HELP_SYMBOL( STN \"ktpcHowToActors89\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x01    // '????9???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x40    // '???????@' \n\t0x01 0x00 0x00 0x00 0x22 0x00 0x00 0x40    // '????\"??@' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x40    // '????$??@' \n\t0x04 0x00 0x00 0x00 0x39 0x00 0x00 0x40    // '????9??@' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1C 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0x24 0x00 0x00 0xC0    // '????$??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x70 0x79 0x69 0x6E    // '??Copyin' \n\t0x67 0x20 0x61 0x20 0x70 0x61 0x74 0x68    // 'g a path' \n\t0x2D 0x2D 0x57 0x68 0x61 0x74 0x20 0x6E    // '--What n' \n\t0x65 0x78 0x74 0x3F 0x0D 0x0A 0x01 0x20    // 'ext???? ' \n\t0x55 0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20    // 'Undo??? ' \n\t0x43 0x68 0x61 0x6E 0x67 0x69 0x6E 0x67    // 'Changing' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x69 0x6F 0x6E                             // 'ion' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3F= ktpcHowToActors3F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"CO 1) To copy and paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"CO 1) To copy and paste\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors3F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_45=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors3F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors3F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_45=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0E 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_42=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_45=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x98 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x03    // '????.???' \n\t0x0F 0x00 0x00 0xFD 0x71 0x00 0x00 0x03    // '???q???' \n\t0x00 0x00 0x00 0x00 0x7F 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x97 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x98 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x04    // '????0???' \n\t0x0D 0x00 0x00 0xFE 0x3F 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x40    // '????0??@' \n\t0x03 0x00 0x00 0x00 0x3F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x76 0x00 0x00 0x40    // '????v??@' \n\t0x00 0x00 0x00 0x00 0x7F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x80    // '????.??' \n\t0x00 0x00 0x02 0x00 0x73 0x00 0x00 0x80    // '????s??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x73 0x00 0x00 0x82    // '????s??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_45=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x6F 0x70    // '??To cop' \n\t0x79 0x20 0x61 0x6E 0x64 0x20 0x70 0x61    // 'y and pa' \n\t0x73 0x74 0x65 0x20 0x61 0x6E 0x20 0x61    // 'ste an a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x0D 0x0A    // 'D word??' \n\t0x31 0x09 0x47 0x6F 0x20 0x74 0x6F 0x20    // '1?Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'e in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'r movie ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x63 0x6F 0x70 0x79 0x20 0x61    // 'o copy a' \n\t0x20 0x33 0x44 0x20 0x6F 0x62 0x6A 0x65    // ' 3D obje' \n\t0x63 0x74 0x2E 0x0D 0x0A 0x32 0x09 0x43    // 'ct.??2?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x43 0x75 0x74 0x2C 0x20 0x43 0x6F    // ' Cut, Co' \n\t0x70 0x79 0x2C 0x20 0x26 0x20 0x50 0x61    // 'py, & Pa' \n\t0x73 0x74 0x65 0x20 0x54 0x6F 0x6F 0x6C    // 'ste Tool' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_40= ktpcHowToActors40\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_40, __HELP_NAME(\"CO 2)  Click Copy \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_40, __HELP_NAME(\"CO 2)  Click Copy \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPCopy kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors40\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_42=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_40, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors40\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPCopy\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors40\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_42=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x43 0x00 0x00 0x00    // '????C???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_42=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_42=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x6F 0x70 0x79 0x2E                   // 'Copy.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_41= ktpcHowToActors41\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_41, __HELP_NAME(\"CO 3)  Click actor copy\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_41, __HELP_NAME(\"CO 3)  Click actor copy\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors41\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_41=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_41, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors41\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors41\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_41=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_41, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9D 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_41=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x01    // '????3???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x40    // '????3??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_41=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x20    // 'ord you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x63 0x6F 0x70 0x79 0x2E                   // 'copy.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_42= ktpcHowToActors42\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_42, __HELP_NAME(\"CO 4) To paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_42, __HELP_NAME(\"CO 4) To paste\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors42\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_32=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_42, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors42\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors42\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_32=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_42, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x06 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_25=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_32=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x78 0x00 0x00 0x01    // '????x???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x53 0x00 0x00 0x03    // '???S???' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x03    // '????_???' \n\t0x0A 0x00 0x00 0xFD 0x77 0x00 0x00 0x03    // '???w???' \n\t0x0F 0x00 0x00 0xFD 0x78 0x00 0x00 0x03    // '???x???' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x1C 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x1C 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x40    // '????_??@' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x53 0x00 0x00 0x82    // '????S??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_32=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x20 0x70 0x61    // '??To  pa' \n\t0x73 0x74 0x65 0x0D 0x0A 0x31 0x09 0x47    // 'ste??1?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x70    // 'ant to p' \n\t0x61 0x73 0x74 0x65 0x20 0x74 0x68 0x65    // 'aste the' \n\t0x20 0x33 0x44 0x20 0x6F 0x62 0x6A 0x65    // ' 3D obje' \n\t0x63 0x74 0x2E 0x0D 0x0A 0x32 0x09 0x43    // 'ct.??2?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x43 0x75 0x74 0x2C 0x20 0x43 0x6F    // ' Cut, Co' \n\t0x70 0x79 0x2C 0x20 0x26 0x20 0x50 0x61    // 'py, & Pa' \n\t0x73 0x74 0x65 0x20 0x54 0x6F 0x6F 0x6C    // 'ste Tool' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_43= ktpcHowToActors43\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_43, __HELP_NAME(\"CO 5) To paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_43, __HELP_NAME(\"CO 5) To paste\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors43\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_39=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_43, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors43\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors43\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_39=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_43, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4B 0x00 0x00 0x00    // '????K???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_39=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_39=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x20 0x50 0x61 0x73 0x74 0x65 0x2E         // ' Paste.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_44= ktpcHowToActors44\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"CO 6)  Click where paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"CO 6)  Click where paste\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors44\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_83=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors44\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors44\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_83=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_83=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_83, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x9E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3C 0x00 0x00 0x82    // '????<??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_83=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_83, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x70 0x61 0x73 0x74 0x65 0x20    // 'o paste ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x2E 0x0D 0x0A 0x49 0x66    // 'ord.??If' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x6D 0x6F 0x76    // 't to mov' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x33 0x44    // 'e the 3D' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x20    // ' object ' \n\t0x75 0x70 0x20 0x6F 0x72 0x20 0x64 0x6F    // 'up or do' \n\t0x77 0x6E 0x2C 0x20 0x68 0x6F 0x6C 0x64    // 'wn, hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x68    // ' down th' \n\t0x65 0x20 0x55 0x70 0x20 0x6F 0x72 0x20    // 'e Up or ' \n\t0x44 0x6F 0x77 0x6E 0x20 0x41 0x72 0x72    // 'Down Arr' \n\t0x6F 0x77 0x20 0x6B 0x65 0x79 0x20 0x62    // 'ow key b' \n\t0x65 0x66 0x6F 0x72 0x65 0x20 0x79 0x6F    // 'efore yo' \n\t0x75 0x20 0x63 0x6C 0x69 0x63 0x6B 0x2E    // 'u click.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_45= ktpcHowToActors45\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"Copy Paste--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"Copy Paste--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors45\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors45\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors45\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x25 0x00 0x00 0x40    // '????%??@' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x70 0x79 0x69 0x6E    // '??Copyin' \n\t0x67 0x20 0x26 0x20 0x70 0x61 0x73 0x74    // 'g & past' \n\t0x69 0x6E 0x67 0x2D 0x2D 0x57 0x68 0x61    // 'ing--Wha' \n\t0x74 0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D    // 't next??' \n\t0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F         // '?? Undo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_46= ktpcHowToActors46\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"CO 1) To cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"CO 1) To cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors46\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_33=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors46\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors46\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_33=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0B 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_26=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_33=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x96 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2B 0x00 0x00 0x03    // '???+???' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x03    // '????-???' \n\t0x0F 0x00 0x00 0xFD 0x74 0x00 0x00 0x03    // '???t???' \n\t0x00 0x00 0x00 0x00 0x7D 0x00 0x00 0x03    // '????}???' \n\t0x0A 0x00 0x00 0xFD 0x95 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x96 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x04    // '????/???' \n\t0x0D 0x00 0x00 0xFE 0x3E 0x00 0x00 0x04    // '???>???' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x40    // '????/??@' \n\t0x03 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x00 0x00 0x00 0x00 0x7D 0x00 0x00 0x40    // '????}??@' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x80    // '????-??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x71 0x00 0x00 0x82    // '????q??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_33=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x75 0x74    // '??To cut' \n\t0x20 0x61 0x6E 0x64 0x20 0x70 0x61 0x73    // ' and pas' \n\t0x74 0x65 0x20 0x61 0x6E 0x20 0x61 0x63    // 'te an ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x0D 0x0A 0x31    // ' word??1' \n\t0x09 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x77    // ' movie w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x63 0x75 0x74 0x20 0x61 0x20 0x33    // ' cut a 3' \n\t0x44 0x20 0x6F 0x62 0x6A 0x65 0x63 0x74    // 'D object' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69    // '.??2?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x43    // 'ck the C' \n\t0x75 0x74 0x2C 0x20 0x43 0x6F 0x70 0x79    // 'ut, Copy' \n\t0x2C 0x20 0x26 0x20 0x50 0x61 0x73 0x74    // ', & Past' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E    // 'e Tools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_47= ktpcHowToActors47\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_47, __HELP_NAME(\"CO 2)  Click Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_47, __HELP_NAME(\"CO 2)  Click Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPCut kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors47\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_48=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_47, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors47\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPCut\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors47\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_48=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_47, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x3B 0x00 0x00 0x00    // '????;???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_48=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_48, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_48=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_48, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x75 0x74 0x2E                        // 'Cut.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_48= ktpcHowToActors48\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_48, __HELP_NAME(\"CO 3)  Click actor cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_48, __HELP_NAME(\"CO 3)  Click actor cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors48\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_43=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_48, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors48\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors48\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_43=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_48, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_43=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_43, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x40    // '????2??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_43=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_43, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x20    // 'ord you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x63 0x75 0x74 0x2E                        // 'cut.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_49= ktpcHowToActors49\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"CO 4) To paste 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"CO 4) To paste 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors49\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_46=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors49\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors49\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_46=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x00 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_46=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x78 0x00 0x00 0x01    // '????x???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x56 0x00 0x00 0x03    // '???V???' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x03    // '????_???' \n\t0x0A 0x00 0x00 0xFD 0x77 0x00 0x00 0x03    // '???w???' \n\t0x0F 0x00 0x00 0xFD 0x78 0x00 0x00 0x03    // '???x???' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x1C 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x1C 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x53 0x00 0x00 0x82    // '????S??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_46=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x20 0x70 0x61    // '??To  pa' \n\t0x73 0x74 0x65 0x0D 0x0A 0x31 0x09 0x47    // 'ste??1?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x70    // 'ant to p' \n\t0x61 0x73 0x74 0x65 0x20 0x74 0x68 0x65    // 'aste the' \n\t0x20 0x33 0x44 0x20 0x6F 0x62 0x6A 0x65    // ' 3D obje' \n\t0x63 0x74 0x2E 0x0D 0x0A 0x32 0x09 0x43    // 'ct.??2?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x43 0x75 0x74 0x2C 0x20 0x43 0x6F    // ' Cut, Co' \n\t0x70 0x79 0x2C 0x20 0x26 0x20 0x50 0x61    // 'py, & Pa' \n\t0x73 0x74 0x65 0x20 0x54 0x6F 0x6F 0x6C    // 'ste Tool' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4A= ktpcHowToActors4A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4A, __HELP_NAME(\"CO 5) To paste 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4A, __HELP_NAME(\"CO 5) To paste 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors4A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors4A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors4A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4B 0x00 0x00 0x00    // '????K???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4B, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x50 0x61 0x73 0x74 0x65 0x2E              // 'Paste.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4B= ktpcHowToActors4B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4B, __HELP_NAME(\"CO 6)  Click where paste 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4B, __HELP_NAME(\"CO 6)  Click where paste 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors4B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_77=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors4B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors4B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_77=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_77=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_77, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x9E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3C 0x00 0x00 0x82    // '????<??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_77=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_77, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x70 0x61 0x73 0x74 0x65 0x20    // 'o paste ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x2E 0x0D 0x0A 0x49 0x66    // 'ord.??If' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x6D 0x6F 0x76    // 't to mov' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x33 0x44    // 'e the 3D' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x20    // ' object ' \n\t0x75 0x70 0x20 0x6F 0x72 0x20 0x64 0x6F    // 'up or do' \n\t0x77 0x6E 0x2C 0x20 0x68 0x6F 0x6C 0x64    // 'wn, hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x68    // ' down th' \n\t0x65 0x20 0x55 0x70 0x20 0x6F 0x72 0x20    // 'e Up or ' \n\t0x44 0x6F 0x77 0x6E 0x20 0x41 0x72 0x72    // 'Down Arr' \n\t0x6F 0x77 0x20 0x6B 0x65 0x79 0x20 0x62    // 'ow key b' \n\t0x65 0x66 0x6F 0x72 0x65 0x20 0x79 0x6F    // 'efore yo' \n\t0x75 0x20 0x63 0x6C 0x69 0x63 0x6B 0x2E    // 'u click.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4C= ktpcHowToActors4C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4C, __HELP_NAME(\"Cut Paste--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4C, __HELP_NAME(\"Cut Paste--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors4C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_47=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors4C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors4C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_47=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_30=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_47, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_47=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_47, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x25 0x00 0x00 0x40    // '????%??@' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_47=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_47, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x74 0x69 0x6E    // '??Cuttin' \n\t0x67 0x20 0x26 0x20 0x70 0x61 0x73 0x74    // 'g & past' \n\t0x69 0x6E 0x67 0x2D 0x2D 0x57 0x68 0x61    // 'ing--Wha' \n\t0x74 0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D    // 't next??' \n\t0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F         // '?? Undo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4D= ktpcHowToActors4D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4D, __HELP_NAME(\"CO 1) To remove\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4D, __HELP_NAME(\"CO 1) To remove\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors4D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors4D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors4D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_31=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5D, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3B 0x00 0x00 0x03    // '???;???' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x03    // '????=???' \n\t0x0F 0x00 0x00 0xFD 0x84 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xA8 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xA9 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x4E 0x00 0x00 0x04    // '???N???' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x4E 0x00 0x00 0x40    // '????N??@' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x80    // '????=??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x84 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5D, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x6D    // '??To rem' \n\t0x6F 0x76 0x65 0x20 0x61 0x6E 0x20 0x61    // 'ove an a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x66    // 'D word f' \n\t0x72 0x6F 0x6D 0x20 0x74 0x68 0x65 0x20    // 'rom the ' \n\t0x63 0x75 0x72 0x72 0x65 0x6E 0x74 0x20    // 'current ' \n\t0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A 0x31    // 'scene??1' \n\t0x09 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x77    // ' movie w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x72 0x65 0x6D 0x6F 0x76 0x65 0x20    // ' remove ' \n\t0x61 0x20 0x33 0x44 0x20 0x6F 0x62 0x6A    // 'a 3D obj' \n\t0x65 0x63 0x74 0x2E 0x0D 0x0A 0x32 0x09    // 'ect.??2?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x43 0x75 0x74 0x2C 0x20 0x43    // 'e Cut, C' \n\t0x6F 0x70 0x79 0x2C 0x20 0x26 0x20 0x50    // 'opy, & P' \n\t0x61 0x73 0x74 0x65 0x20 0x54 0x6F 0x6F    // 'aste Too' \n\t0x6C 0x73 0x2E                             // 'ls.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4E= ktpcHowToActors4E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4E, __HELP_NAME(\"CO 2)  Click Remove Object\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4E, __HELP_NAME(\"CO 2)  Click Remove Object\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPActorNuke kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors4E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors4E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPActorNuke\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors4E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x92 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x16 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x52 0x65 0x6D 0x6F 0x76 0x65 0x20 0x33    // 'Remove 3' \n\t0x44 0x20 0x4F 0x62 0x6A 0x65 0x63 0x74    // 'D Object' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4F= ktpcHowToActors4F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4F, __HELP_NAME(\"CO 3)  Click actor remove\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4F, __HELP_NAME(\"CO 3)  Click actor remove\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors4F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors4F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors4F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4B 0x00 0x00 0x01    // '????K???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x4B 0x00 0x00 0x03    // '???K???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x40    // '????K??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x20    // 'ord you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x72 0x65 0x6D 0x6F 0x76 0x65 0x20 0x66    // 'remove f' \n\t0x72 0x6F 0x6D 0x20 0x74 0x68 0x65 0x20    // 'rom the ' \n\t0x65 0x6E 0x74 0x69 0x72 0x65 0x20 0x73    // 'entire s' \n\t0x63 0x65 0x6E 0x65 0x2E                   // 'cene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_50= ktpcHowToActors50\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_50, __HELP_NAME(\"Remove--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_50, __HELP_NAME(\"Remove--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors50\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_69=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_50, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors50\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors50\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_69=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_50, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9F 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_39=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_69, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_69=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_69, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x01    // '????3???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2B 0x00 0x00 0x03    // '???+???' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x40    // '????-??@' \n\t0x03 0x00 0x00 0x00 0x33 0x00 0x00 0x40    // '????3??@' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x80    // '????-??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2D 0x00 0x00 0x82    // '????-??' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0xC0    // '????-??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_69=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_69, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x6F 0x76 0x69    // '??Removi' \n\t0x6E 0x67 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'ng from ' \n\t0x74 0x68 0x65 0x20 0x63 0x75 0x72 0x72    // 'the curr' \n\t0x65 0x6E 0x74 0x20 0x73 0x63 0x65 0x6E    // 'ent scen' \n\t0x65 0x2D 0x2D 0x57 0x68 0x61 0x74 0x20    // 'e--What ' \n\t0x6E 0x65 0x78 0x74 0x3F 0x0D 0x0A 0x01    // 'next????' \n\t0x20 0x55 0x6E 0x64 0x6F                   // ' Undo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_51= ktpcHowToActors51\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"CO 1) To tip forward or back\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"CO 1) To tip forward or back\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidActorsRotate kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors51\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_51=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToActors51\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsRotate\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors51\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_51=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_34=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_51, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_51=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_51, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x92 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x31 0x00 0x00 0x03    // '???1???' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x03    // '????3???' \n\t0x0F 0x00 0x00 0xFD 0x7B 0x00 0x00 0x03    // '???{???' \n\t0x00 0x00 0x00 0x00 0x85 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x91 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x92 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x04    // '????5???' \n\t0x0D 0x00 0x00 0xFE 0x44 0x00 0x00 0x04    // '???D???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x40    // '????5??@' \n\t0x03 0x00 0x00 0x00 0x44 0x00 0x00 0x40    // '????D??@' \n\t0x00 0x00 0x00 0x00 0x92 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x80    // '????3??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x79 0x00 0x00 0x82    // '????y??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_51=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_51, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x74 0x69 0x70    // '??To tip' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x66 0x6F 0x72 0x77    // 'ord forw' \n\t0x61 0x72 0x64 0x20 0x6F 0x72 0x20 0x62    // 'ard or b' \n\t0x61 0x63 0x6B 0x0D 0x0A 0x31 0x09 0x47    // 'ack??1?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x74    // 'ant to t' \n\t0x69 0x70 0x20 0x74 0x68 0x65 0x20 0x33    // 'ip the 3' \n\t0x44 0x20 0x6F 0x62 0x6A 0x65 0x63 0x74    // 'D object' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69    // '.??2?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x52    // 'ck the R' \n\t0x6F 0x74 0x61 0x74 0x65 0x20 0x54 0x6F    // 'otate To' \n\t0x6F 0x6C 0x73 0x2E                        // 'ols.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_52= ktpcHowToActors52\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_52, __HELP_NAME(\"CO 2)  Click Tip Forward \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_52, __HELP_NAME(\"CO 2)  Click Tip Forward \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon8 kgobHowtoSequence kidActorsRotateX kidPlayHelpSounds 0x0 0x2 0x57415645 kwavHTActors52\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_66=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_52, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon8\"\n\tITEM\n\t\t\"ktpcHowToActors52\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsRotateX\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors52\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_66=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_52, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_66=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_66, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_66=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_66, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x54 0x69 0x70 0x20 0x46 0x6F 0x72 0x77    // 'Tip Forw' \n\t0x61 0x72 0x64 0x20 0x6F 0x72 0x20 0x42    // 'ard or B' \n\t0x61 0x63 0x6B 0x2E                        // 'ack.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_53= ktpcHowToActors53\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_53, __HELP_NAME(\"CO 3)  Drag until \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_53, __HELP_NAME(\"CO 3)  Drag until \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors53\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_72=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_53, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors53\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors53\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_72=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_53, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_59=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_72, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors94 __HELP_SYMBOL( STN \"ktpcHowToActors94\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_72=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_72, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x90 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00 0x4A 0x00 0x00 0x04    // '????J???' \n\t0x0D 0x00 0x00 0xFE 0x4E 0x00 0x00 0x04    // '???N???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x4A 0x00 0x00 0x40    // '????J??@' \n\t0x02 0x00 0x00 0x00 0x4E 0x00 0x00 0x40    // '????N??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4A 0x00 0x00 0x82    // '????J??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_72=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_72, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x6F 0x76 0x65 0x20 0x74    // '??Move t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x63 0x75 0x72 0x73 0x6F 0x72 0x20    // ' cursor ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x74 0x69 0x70    // 't to tip' \n\t0x2E 0x20 0x0D 0x0A 0x44 0x72 0x61 0x67    // '. ??Drag' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x75 0x6E 0x74 0x69 0x6C    // 'se until' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x69 0x73 0x20    // 'word is ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x69    // 'u want i' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_54= ktpcHowToActors54\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_54, __HELP_NAME(\"Tip Forward Back--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_54, __HELP_NAME(\"Tip Forward Back--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors54\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_54=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_54, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors54\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors54\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_54=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_54, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_54, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors81 __HELP_SYMBOL( STN \"ktpcHowToActors81\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_54=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_54, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x40    // '????%??@' \n\t0x03 0x00 0x00 0x00 0x2B 0x00 0x00 0x40    // '????+??@' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x40    // '????-??@' \n\t0x04 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x80    // '????%??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x25 0x00 0x00 0x82    // '????%??' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0xC0    // '????%??' \n\t0x02 0x00 0x00 0x00 0x2D 0x00 0x00 0xC0    // '????-??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_54=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_54, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x69 0x70 0x70 0x69 0x6E    // '??Tippin' \n\t0x67 0x20 0x66 0x6F 0x72 0x77 0x61 0x72    // 'g forwar' \n\t0x64 0x20 0x6F 0x72 0x20 0x62 0x61 0x63    // 'd or bac' \n\t0x6B 0x2D 0x2D 0x57 0x68 0x61 0x74 0x20    // 'k--What ' \n\t0x6E 0x65 0x78 0x74 0x3F 0x0D 0x0A 0x01    // 'next????' \n\t0x20 0x55 0x6E 0x64 0x6F 0x0D 0x0A 0x01    // ' Undo???' \n\t0x20 0x50 0x6C 0x61 0x79 0x20 0x79 0x6F    // ' Play yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_55= ktpcHowToActors55\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_55, __HELP_NAME(\"CO 1) To turn left or right\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_55, __HELP_NAME(\"CO 1) To turn left or right\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidActorsRotate kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors55\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_59=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_55, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToActors55\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsRotate\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors55\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_59=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_55, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x1C 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_59, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_59=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_59, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x90 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x30 0x00 0x00 0x03    // '???0???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x03    // '????2???' \n\t0x0F 0x00 0x00 0xFD 0x79 0x00 0x00 0x03    // '???y???' \n\t0x00 0x00 0x00 0x00 0x83 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x8F 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x90 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x04    // '????4???' \n\t0x0D 0x00 0x00 0xFE 0x43 0x00 0x00 0x04    // '???C???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x40    // '????4??@' \n\t0x03 0x00 0x00 0x00 0x43 0x00 0x00 0x40    // '????C??@' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x80    // '????2??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x77 0x00 0x00 0x82    // '????w??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_59=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_59, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x74 0x75 0x72    // '??To tur' \n\t0x6E 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'n an act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x6C 0x65 0x66    // 'word lef' \n\t0x74 0x20 0x6F 0x72 0x20 0x72 0x69 0x67    // 't or rig' \n\t0x68 0x74 0x0D 0x0A 0x31 0x09 0x47 0x6F    // 'ht??1?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x74 0x75    // 'nt to tu' \n\t0x72 0x6E 0x20 0x61 0x20 0x33 0x44 0x20    // 'rn a 3D ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x2E 0x0D    // 'object.?' \n\t0x0A 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?2?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x52 0x6F 0x74    // ' the Rot' \n\t0x61 0x74 0x65 0x20 0x54 0x6F 0x6F 0x6C    // 'ate Tool' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_56= ktpcHowToActors56\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_56, __HELP_NAME(\"CO 2)  Click Turn Left Right\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_56, __HELP_NAME(\"CO 2)  Click Turn Left Right\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon8 kgobHowtoSequence kidActorsRotateY kidPlayHelpSounds 0x0 0x2 0x57415645 kwavHTActors56\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_29=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_56, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon8\"\n\tITEM\n\t\t\"ktpcHowToActors56\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsRotateY\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors56\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_29=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_56, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x94 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_29=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x18 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_29=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x54 0x75 0x72 0x6E 0x20 0x4C 0x65 0x66    // 'Turn Lef' \n\t0x74 0x20 0x6F 0x72 0x20 0x52 0x69 0x67    // 't or Rig' \n\t0x68 0x74 0x2E                             // 'ht.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_57= ktpcHowToActors57\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_57, __HELP_NAME(\"CO 3)  Drag until 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_57, __HELP_NAME(\"CO 3)  Drag until 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors57\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_57, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors57\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors57\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_57, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xED 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors94 __HELP_SYMBOL( STN \"ktpcHowToActors94\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x91 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x04    // '????K???' \n\t0x0D 0x00 0x00 0xFE 0x4F 0x00 0x00 0x04    // '???O???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x40    // '????K??@' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x40    // '????O??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4B 0x00 0x00 0x82    // '????K??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x6F 0x76 0x65 0x20 0x74    // '??Move t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x63 0x75 0x72 0x73 0x6F 0x72 0x20    // ' cursor ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x74 0x75 0x72    // 't to tur' \n\t0x6E 0x2E 0x20 0x0D 0x0A 0x44 0x72 0x61    // 'n. ??Dra' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'g the mo' \n\t0x75 0x73 0x65 0x20 0x75 0x6E 0x74 0x69    // 'use unti' \n\t0x6C 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'l the ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x69 0x73    // ' word is' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x69 0x74 0x2E                             // 'it.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_58= ktpcHowToActors58\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_58, __HELP_NAME(\"Turn Left Right--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_58, __HELP_NAME(\"Turn Left Right--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors58\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_34=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_58, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors58\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors58\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_34=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_58, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_20=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors81 __HELP_SYMBOL( STN \"ktpcHowToActors81\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_34=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x21 0x00 0x00 0x03    // '???!???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x40    // '????#??@' \n\t0x05 0x00 0x00 0x00 0x29 0x00 0x00 0x40    // '????)??@' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x40    // '????+??@' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x40    // '????<??@' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x80    // '????#??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x23 0x00 0x00 0x82    // '????#??' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0xC0    // '????#??' \n\t0x02 0x00 0x00 0x00 0x2B 0x00 0x00 0xC0    // '????+??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_34=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x75 0x72 0x6E 0x69 0x6E    // '??Turnin' \n\t0x67 0x20 0x6C 0x65 0x66 0x74 0x20 0x6F    // 'g left o' \n\t0x72 0x20 0x72 0x69 0x67 0x68 0x74 0x2D    // 'r right-' \n\t0x2D 0x57 0x68 0x61 0x74 0x20 0x6E 0x65    // '-What ne' \n\t0x78 0x74 0x3F 0x0D 0x0A 0x01 0x20 0x55    // 'xt???? U' \n\t0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20 0x50    // 'ndo??? P' \n\t0x6C 0x61 0x79 0x20 0x79 0x6F 0x75 0x72    // 'lay your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65              // ' movie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_59= ktpcHowToActors59\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_59, __HELP_NAME(\"CO 1) To tip to one side\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_59, __HELP_NAME(\"CO 1) To tip to one side\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidActorsRotate kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors59\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_52=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_59, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToActors59\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsRotate\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors59\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_52=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_59, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x10 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_35=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_52, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_52=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_52, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8C 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2D 0x00 0x00 0x03    // '???-???' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x03    // '????/???' \n\t0x0F 0x00 0x00 0xFD 0x75 0x00 0x00 0x03    // '???u???' \n\t0x00 0x00 0x00 0x00 0x7F 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x8B 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x8C 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x04    // '????1???' \n\t0x0D 0x00 0x00 0xFE 0x40 0x00 0x00 0x04    // '???@???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x40    // '????1??@' \n\t0x03 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x00 0x00 0x00 0x00 0x8C 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x80    // '????/??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x73 0x00 0x00 0x82    // '????s??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_52=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_52, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x74 0x69 0x70    // '??To tip' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x74 0x6F 0x20 0x6F    // 'ord to o' \n\t0x6E 0x65 0x20 0x73 0x69 0x64 0x65 0x0D    // 'ne side?' \n\t0x0A 0x31 0x09 0x47 0x6F 0x20 0x74 0x6F    // '?1?Go to' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x63 0x65 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ce in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x74 0x69 0x70 0x20 0x61    // 'to tip a' \n\t0x20 0x33 0x44 0x20 0x6F 0x62 0x6A 0x65    // ' 3D obje' \n\t0x63 0x74 0x2E 0x0D 0x0A 0x32 0x09 0x43    // 'ct.??2?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x52 0x6F 0x74 0x61 0x74 0x65 0x20    // ' Rotate ' \n\t0x54 0x6F 0x6F 0x6C 0x73 0x2E              // 'Tools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5A= ktpcHowToActors5A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5A, __HELP_NAME(\"CO 2)  Click Tip to One Side\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5A, __HELP_NAME(\"CO 2)  Click Tip to One Side\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon8 kgobHowtoSequence kidActorsRotateZ kidPlayHelpSounds 0x0 0x2 0x57415645 kwavHTActors5A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_53=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon8\"\n\tITEM\n\t\t\"ktpcHowToActors5A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsRotateZ\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors5A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_53=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x82 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_53=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_53, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_53=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_53, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x54 0x69 0x70 0x20 0x74 0x6F 0x20 0x4F    // 'Tip to O' \n\t0x6E 0x65 0x20 0x53 0x69 0x64 0x65 0x2E    // 'ne Side.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5B= ktpcHowToActors5B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5B, __HELP_NAME(\"CO 3)  Drag until 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5B, __HELP_NAME(\"CO 3)  Drag until 3\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors5B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_62=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors5B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors5B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_62=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_40=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_62, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors94 __HELP_SYMBOL( STN \"ktpcHowToActors94\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_62=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_62, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x90 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x4A 0x00 0x00 0x04    // '????J???' \n\t0x0D 0x00 0x00 0xFE 0x4E 0x00 0x00 0x04    // '???N???' \n\t0x00 0x00 0x00 0x00 0x4A 0x00 0x00 0x40    // '????J??@' \n\t0x02 0x00 0x00 0x00 0x4E 0x00 0x00 0x40    // '????N??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4A 0x00 0x00 0x82    // '????J??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_62=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_62, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x6F 0x76 0x65 0x20 0x74    // '??Move t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x63 0x75 0x72 0x73 0x6F 0x72 0x20    // ' cursor ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x74 0x69 0x70    // 't to tip' \n\t0x2E 0x20 0x0D 0x0A 0x44 0x72 0x61 0x67    // '. ??Drag' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x75 0x6E 0x74 0x69 0x6C    // 'se until' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x69 0x73 0x20    // 'word is ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x69    // 'u want i' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5C= ktpcHowToActors5C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5C, __HELP_NAME(\"Tip to One Side--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5C, __HELP_NAME(\"Tip to One Side--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xC8 0x57415645 kwavHTActors5C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors5C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors5C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_33=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors81 __HELP_SYMBOL( STN \"ktpcHowToActors81\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x01 0x00 0x00 0x00 0x3A 0x00 0x00 0x01    // '????:???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x40    // '????!??@' \n\t0x05 0x00 0x00 0x00 0x27 0x00 0x00 0x40    // '????'??@' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x40    // '????)??@' \n\t0x01 0x00 0x00 0x00 0x3A 0x00 0x00 0x40    // '????:??@' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x80    // '????!??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x21 0x00 0x00 0x82    // '????!??' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0xC0    // '????!??' \n\t0x02 0x00 0x00 0x00 0x29 0x00 0x00 0xC0    // '????)??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x69 0x70 0x70 0x69 0x6E    // '??Tippin' \n\t0x67 0x20 0x74 0x6F 0x20 0x6F 0x6E 0x65    // 'g to one' \n\t0x20 0x73 0x69 0x64 0x65 0x2D 0x2D 0x57    // ' side--W' \n\t0x68 0x61 0x74 0x20 0x6E 0x65 0x78 0x74    // 'hat next' \n\t0x3F 0x0D 0x0A 0x01 0x20 0x55 0x6E 0x64    // '???? Und' \n\t0x6F 0x0D 0x0A 0x01 0x20 0x50 0x6C 0x61    // 'o??? Pla' \n\t0x79 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'y your m' \n\t0x6F 0x76 0x69 0x65                        // 'ovie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5D= ktpcHowToActors5D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5D, __HELP_NAME(\"CO 1) To change back\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5D, __HELP_NAME(\"CO 1) To change back\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidActorsRotate kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors5D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_61=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToActors5D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsRotate\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors5D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_61=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x01 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_61, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_61=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_61, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x51 0x00 0x00 0x03    // '???Q???' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x03    // '????S???' \n\t0x0F 0x00 0x00 0xFD 0x93 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x9F 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xAB 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xAC 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x04    // '????U???' \n\t0x0D 0x00 0x00 0xFE 0x64 0x00 0x00 0x04    // '???d???' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x40    // '????U??@' \n\t0x03 0x00 0x00 0x00 0x64 0x00 0x00 0x40    // '????d??@' \n\t0x00 0x00 0x00 0x00 0xAC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x80    // '????S??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x93 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_61=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_61, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x61 0x6E 0x20 0x61    // 'nge an a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x62    // 'D word b' \n\t0x61 0x63 0x6B 0x20 0x74 0x6F 0x20 0x74    // 'ack to t' \n\t0x68 0x65 0x20 0x77 0x61 0x79 0x20 0x69    // 'he way i' \n\t0x74 0x20 0x77 0x61 0x73 0x20 0x62 0x65    // 't was be' \n\t0x66 0x6F 0x72 0x65 0x20 0x79 0x6F 0x75    // 'fore you' \n\t0x20 0x72 0x6F 0x74 0x61 0x74 0x65 0x64    // ' rotated' \n\t0x20 0x69 0x74 0x0D 0x0A 0x31 0x09 0x47    // ' it??1?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ant to c' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x62 0x61    // 'hange ba' \n\t0x63 0x6B 0x2E 0x0D 0x0A 0x32 0x09 0x43    // 'ck.??2?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x52 0x6F 0x74 0x61 0x74 0x65 0x20    // ' Rotate ' \n\t0x54 0x6F 0x6F 0x6C 0x73 0x2E              // 'Tools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5E= ktpcHowToActors5E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5E, __HELP_NAME(\"CO 2)  Click Change Back\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5E, __HELP_NAME(\"CO 2)  Click Change Back\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon8 kgobHowtoSequence kidActorsRotateNorm kidPlayHelpSounds 0x0 0x2 0x57415645 kwavHTActors5E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_57=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon8\"\n\tITEM\n\t\t\"ktpcHowToActors5E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsRotateNorm\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors5E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_57=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6F 0x00 0x00 0x00    // '????o???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_57=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_57, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_57=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_57, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x20 0x43 0x68 0x61 0x6E 0x67 0x65 0x20    // ' Change ' \n\t0x42 0x61 0x63 0x6B 0x2E                   // 'Back.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5F= ktpcHowToActors5F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5F, __HELP_NAME(\"CO 3)  Click change back\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5F, __HELP_NAME(\"CO 3)  Click change back\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors5F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors5F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors5F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3A 0x00 0x00 0x01    // '????:???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x04    // '????9???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x40    // '????9??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x20    // 'ord you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x63 0x68 0x61 0x6E 0x67 0x65 0x20 0x62    // 'change b' \n\t0x61 0x63 0x6B 0x2E                        // 'ack.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_60= ktpcHowToActors60\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_60, __HELP_NAME(\"Change Back--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_60, __HELP_NAME(\"Change Back--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors60\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_60=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_60, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors60\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors60\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_60=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_60, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_60, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors81 __HELP_SYMBOL( STN \"ktpcHowToActors81\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_60=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_60, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x40    // '???????@' \n\t0x05 0x00 0x00 0x00 0x21 0x00 0x00 0x40    // '????!??@' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x40    // '????#??@' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x40    // '????4??@' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1B 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x23 0x00 0x00 0xC0    // '????#??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_60=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_60, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x62 0x61 0x63 0x6B 0x2D    // 'ng back-' \n\t0x2D 0x57 0x68 0x61 0x74 0x20 0x6E 0x65    // '-What ne' \n\t0x78 0x74 0x3F 0x0D 0x0A 0x01 0x20 0x55    // 'xt???? U' \n\t0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20 0x50    // 'ndo??? P' \n\t0x6C 0x61 0x79 0x20 0x79 0x6F 0x75 0x72    // 'lay your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65              // ' movie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_61= ktpcHowToActors61\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_61, __HELP_NAME(\"Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_61, __HELP_NAME(\"Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidActorsSelect kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors61\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_55=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_61, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToActors61\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsSelect\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors61\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_55=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_61, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_32=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_55, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_55=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_55, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x81 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x05 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x29 0x00 0x00 0x03    // '???)???' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x03    // '????+???' \n\t0x0F 0x00 0x00 0xFD 0x75 0x00 0x00 0x03    // '???u???' \n\t0x00 0x00 0x00 0x00 0x7A 0x00 0x00 0x03    // '????z???' \n\t0x0A 0x00 0x00 0xFD 0x80 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x04    // '????-???' \n\t0x0D 0x00 0x00 0xFE 0x3C 0x00 0x00 0x04    // '???<???' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x40    // '????)??@' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x40    // '????-??@' \n\t0x03 0x00 0x00 0x00 0x3C 0x00 0x00 0x40    // '????<??@' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x80    // '????+??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2B 0x00 0x00 0x82    // '????+??' \n\t0x05 0x00 0x00 0x00 0x72 0x00 0x00 0x82    // '????r??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_55=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_55, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x0D 0x0A 0x54    // '??Cut??T' \n\t0x6F 0x20 0x73 0x65 0x6C 0x65 0x63 0x74    // 'o select' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x0D 0x0A 0x31 0x09 0x47    // 'ord??1?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x73    // 'ant to s' \n\t0x65 0x6C 0x65 0x63 0x74 0x20 0x61 0x20    // 'elect a ' \n\t0x33 0x44 0x20 0x6F 0x62 0x6A 0x65 0x63    // '3D objec' \n\t0x74 0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C    // 't.??2?Cl' \n\t0x69 0x63 0x6B 0x20 0x53 0x65 0x6C 0x65    // 'ick Sele' \n\t0x63 0x74 0x2E                             // 'ct.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_62= ktpcHowToActors62\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_62, __HELP_NAME(\"Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_62, __HELP_NAME(\"Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon8 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x24E 0xF0 0x57415645 kwavHTActors62\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_82=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_62, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon8\"\n\tITEM\n\t\t\"ktpcHowToActors62\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors62\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_82=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_62, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_82=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_82, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x40    // '????5??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_82=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_82, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x20    // 'ord you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x73 0x65 0x6C 0x65 0x63 0x74 0x2E         // 'select.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_63= ktpcHowToActors63\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_63, __HELP_NAME(\"Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_63, __HELP_NAME(\"Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors63\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_63=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_63, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors63\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors63\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_63=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_63, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_48=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_63, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors8D __HELP_SYMBOL( STN \"ktpcHowToActors8D\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors8E __HELP_SYMBOL( STN \"ktpcHowToActors8E\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_63=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_63, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5E 0x00 0x00 0x01    // '????^???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x3B 0x00 0x00 0x40    // '????;??@' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x40    // '????=??@' \n\t0x03 0x00 0x00 0x00 0x5E 0x00 0x00 0x40    // '????^??@' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x17 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0xC0    // '???????' \n\t0x04 0x00 0x00 0x00 0x3D 0x00 0x00 0xC0    // '????=??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_63=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_63, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x65 0x6C 0x65 0x63 0x74    // '??Select' \n\t0x69 0x6E 0x67 0x2D 0x2D 0x57 0x68 0x61    // 'ing--Wha' \n\t0x74 0x20 0x4E 0x65 0x78 0x74 0x3F 0x0D    // 't Next??' \n\t0x0A 0x01 0x20 0x53 0x65 0x6C 0x65 0x63    // '?? Selec' \n\t0x74 0x69 0x6E 0x67 0x20 0x61 0x6E 0x20    // 'ting an ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x20 0x62    // 'object b' \n\t0x65 0x68 0x69 0x6E 0x64 0x20 0x61 0x6E    // 'ehind an' \n\t0x6F 0x74 0x68 0x65 0x72 0x0D 0x0A 0x01    // 'other???' \n\t0x20 0x53 0x65 0x6C 0x65 0x63 0x74 0x69    // ' Selecti' \n\t0x6E 0x67 0x20 0x61 0x6E 0x20 0x6F 0x62    // 'ng an ob' \n\t0x6A 0x65 0x63 0x74 0x20 0x6F 0x75 0x74    // 'ject out' \n\t0x20 0x6F 0x66 0x20 0x76 0x69 0x65 0x77    // ' of view' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_64= ktpcHowToActors64\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_64, __HELP_NAME(\"CO 1) To select actor\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_64, __HELP_NAME(\"CO 1) To select actor\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobHowtoSequence kidRollCallActor kidPlayHelpSounds 0x2E 0x6E 0x57415645 kwavHTActors64\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_64, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpcHowToActors64\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidRollCallActor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors64\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_64, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0F 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5A, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAD 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x03    // '????:???' \n\t0x0F 0x00 0x00 0xFD 0x82 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xA2 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xAC 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x3C 0x00 0x00 0x04    // '????<???' \n\t0x0D 0x00 0x00 0xFE 0x4B 0x00 0x00 0x04    // '???K???' \n\t0x00 0x00 0x00 0x00 0x3C 0x00 0x00 0x40    // '????<??@' \n\t0x03 0x00 0x00 0x00 0x4B 0x00 0x00 0x40    // '????K??@' \n\t0x00 0x00 0x00 0x00 0xAD 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x80    // '????:??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5A, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x6C    // '??To sel' \n\t0x65 0x63 0x74 0x20 0x61 0x6E 0x20 0x61    // 'ect an a' \n\t0x63 0x74 0x6F 0x72 0x20 0x74 0x68 0x61    // 'ctor tha' \n\t0x74 0x20 0x69 0x73 0x20 0x62 0x65 0x68    // 't is beh' \n\t0x69 0x6E 0x64 0x20 0x61 0x6E 0x6F 0x74    // 'ind anot' \n\t0x68 0x65 0x72 0x20 0x6F 0x72 0x20 0x6F    // 'her or o' \n\t0x75 0x74 0x20 0x6F 0x66 0x20 0x76 0x69    // 'ut of vi' \n\t0x65 0x77 0x0D 0x0A 0x31 0x09 0x47 0x6F    // 'ew??1?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x73 0x65    // 'nt to se' \n\t0x6C 0x65 0x63 0x74 0x20 0x74 0x68 0x65    // 'lect the' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2E 0x0D    // ' actor.?' \n\t0x0A 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?2?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x27 0x73 0x20 0x70 0x69 0x63    // 'or's pic' \n\t0x74 0x75 0x72 0x65 0x20 0x69 0x6E 0x20    // 'ture in ' \n\t0x74 0x68 0x65 0x20 0x41 0x63 0x74 0x6F    // 'the Acto' \n\t0x72 0x20 0x4C 0x69 0x73 0x74 0x2E         // 'r List.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_65= ktpcHowToActors65\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_65, __HELP_NAME(\"Select Actor--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_65, __HELP_NAME(\"Select Actor--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors65\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_65, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors65\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors65\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_65, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_43=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8F, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD1 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x0F 0x00 0x00 0xFD 0xC9 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xCB 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xD1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xCB 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xCB 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0xCB 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8F, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x65 0x6C 0x65 0x63 0x74    // '??Select' \n\t0x69 0x6E 0x67 0x20 0x61 0x6E 0x20 0x61    // 'ing an a' \n\t0x63 0x74 0x6F 0x72 0x20 0x62 0x65 0x68    // 'ctor beh' \n\t0x69 0x6E 0x64 0x20 0x61 0x6E 0x6F 0x74    // 'ind anot' \n\t0x68 0x65 0x72 0x20 0x6F 0x72 0x20 0x6F    // 'her or o' \n\t0x75 0x74 0x20 0x6F 0x66 0x20 0x76 0x69    // 'ut of vi' \n\t0x65 0x77 0x2D 0x2D 0x57 0x68 0x61 0x74    // 'ew--What' \n\t0x20 0x4E 0x65 0x78 0x74 0x3F 0x0D 0x0A    // ' Next???' \n\t0x49 0x66 0x20 0x74 0x68 0x65 0x20 0x61    // 'If the a' \n\t0x63 0x74 0x6F 0x72 0x20 0x77 0x61 0x73    // 'ctor was' \n\t0x20 0x6F 0x75 0x74 0x20 0x6F 0x66 0x20    // ' out of ' \n\t0x76 0x69 0x65 0x77 0x2C 0x20 0x74 0x68    // 'view, th' \n\t0x65 0x20 0x61 0x63 0x74 0x6F 0x72 0x20    // 'e actor ' \n\t0x72 0x65 0x61 0x70 0x70 0x65 0x61 0x72    // 'reappear' \n\t0x73 0x20 0x6F 0x6E 0x2D 0x73 0x74 0x61    // 's on-sta' \n\t0x67 0x65 0x2E 0x20 0x20 0x4D 0x6F 0x76    // 'ge.  Mov' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'e the mo' \n\t0x75 0x73 0x65 0x20 0x75 0x6E 0x74 0x69    // 'use unti' \n\t0x6C 0x20 0x79 0x6F 0x75 0x20 0x66 0x69    // 'l you fi' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x20 0x70    // 'nd the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x79 0x6F 0x75    // 'lace you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x70 0x75 0x74 0x20 0x74 0x68 0x65    // ' put the' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x74 0x68 0x65 0x6E 0x20 0x63 0x6C 0x69    // 'then cli' \n\t0x63 0x6B 0x2E 0x0D 0x0A 0x01 0x20 0x55    // 'ck.??? U' \n\t0x6E 0x64 0x6F                             // 'ndo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_66= ktpcHowToActors66\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_66, __HELP_NAME(\"CO 1) To select prop\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_66, __HELP_NAME(\"CO 1) To select prop\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobHowtoSequence kidRollCallProp kidPlayHelpSounds 0x24E 0x85 0x57415645 kwavHTActors66\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_26=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_66, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpcHowToActors66\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidRollCallProp\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors66\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_26=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_66, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_12=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_26=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x41 0x00 0x00 0x03    // '???A???' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x03    // '????C???' \n\t0x0F 0x00 0x00 0xFD 0x92 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xAD 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xB6 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x04    // '????E???' \n\t0x0D 0x00 0x00 0xFE 0x54 0x00 0x00 0x04    // '???T???' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x03 0x00 0x00 0x00 0x54 0x00 0x00 0x40    // '????T??@' \n\t0x00 0x00 0x00 0x00 0xB7 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x80    // '????C??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x92 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_26=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x6C    // '??To sel' \n\t0x65 0x63 0x74 0x20 0x61 0x20 0x70 0x72    // 'ect a pr' \n\t0x6F 0x70 0x20 0x6F 0x72 0x20 0x33 0x44    // 'op or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x74 0x68    // ' word th' \n\t0x61 0x74 0x20 0x69 0x73 0x20 0x62 0x65    // 'at is be' \n\t0x68 0x69 0x6E 0x64 0x20 0x61 0x6E 0x6F    // 'hind ano' \n\t0x74 0x68 0x65 0x72 0x20 0x6F 0x72 0x20    // 'ther or ' \n\t0x6F 0x75 0x74 0x20 0x6F 0x66 0x20 0x76    // 'out of v' \n\t0x69 0x65 0x77 0x0D 0x0A 0x31 0x09 0x47    // 'iew??1?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x73    // 'ant to s' \n\t0x65 0x6C 0x65 0x63 0x74 0x20 0x74 0x68    // 'elect th' \n\t0x65 0x20 0x70 0x72 0x6F 0x70 0x20 0x6F    // 'e prop o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C    // 'd.??2?Cl' \n\t0x69 0x63 0x6B 0x20 0x69 0x74 0x73 0x20    // 'ick its ' \n\t0x70 0x69 0x63 0x74 0x75 0x72 0x65 0x20    // 'picture ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x50    // 'in the P' \n\t0x72 0x6F 0x70 0x20 0x4C 0x69 0x73 0x74    // 'rop List' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_67= ktpcHowToActors67\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_67, __HELP_NAME(\"Select Prop--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_67, __HELP_NAME(\"Select Prop--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors67\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_36=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_67, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors67\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors67\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_36=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_67, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_28=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_36=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x01    // '????E???' \n\t0x00 0x00 0x00 0x00 0x47 0x00 0x00 0x01    // '????G???' \n\t0x01 0x00 0x00 0x00 0xEE 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x45 0x00 0x00 0x03    // '???E???' \n\t0x00 0x00 0x00 0x00 0x47 0x00 0x00 0x03    // '????G???' \n\t0x0F 0x00 0x00 0xFD 0xE6 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xE8 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xEE 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE8 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE8 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0xE8 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_36=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x65 0x6C 0x65 0x63 0x74    // '??Select' \n\t0x69 0x6E 0x67 0x20 0x61 0x20 0x70 0x72    // 'ing a pr' \n\t0x6F 0x70 0x20 0x6F 0x72 0x20 0x33 0x44    // 'op or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x65    // ' word be' \n\t0x68 0x69 0x6E 0x64 0x20 0x61 0x6E 0x6F    // 'hind ano' \n\t0x74 0x68 0x65 0x72 0x20 0x6F 0x72 0x20    // 'ther or ' \n\t0x6F 0x75 0x74 0x20 0x6F 0x66 0x20 0x76    // 'out of v' \n\t0x69 0x65 0x77 0x2D 0x2D 0x57 0x68 0x61    // 'iew--Wha' \n\t0x74 0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D    // 't next??' \n\t0x0A 0x49 0x66 0x20 0x74 0x68 0x65 0x20    // '?If the ' \n\t0x70 0x72 0x6F 0x70 0x20 0x6F 0x72 0x20    // 'prop or ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x20    // '3D word ' \n\t0x77 0x61 0x73 0x20 0x6F 0x75 0x74 0x20    // 'was out ' \n\t0x6F 0x66 0x20 0x76 0x69 0x65 0x77 0x2C    // 'of view,' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x72 0x6F    // ' the pro' \n\t0x70 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // 'p or 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x72 0x65 0x61    // 'word rea' \n\t0x70 0x70 0x65 0x61 0x72 0x73 0x20 0x6F    // 'ppears o' \n\t0x6E 0x2D 0x73 0x74 0x61 0x67 0x65 0x2E    // 'n-stage.' \n\t0x20 0x4D 0x6F 0x76 0x65 0x20 0x74 0x68    // ' Move th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x75 0x6E 0x74 0x69 0x6C 0x20 0x79 0x6F    // 'until yo' \n\t0x75 0x20 0x66 0x69 0x6E 0x64 0x20 0x74    // 'u find t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x70 0x75 0x74    // 't to put' \n\t0x20 0x74 0x68 0x65 0x20 0x6F 0x62 0x6A    // ' the obj' \n\t0x65 0x63 0x74 0x2C 0x20 0x74 0x68 0x65    // 'ect, the' \n\t0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B 0x2E    // 'n click.' \n\t0x0D 0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F    // '??? Undo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_68= ktpcHowToActors68\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_68, __HELP_NAME(\"CO 1) To size evenly\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_68, __HELP_NAME(\"CO 1) To size evenly\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon3 kgobHowtoSequence kidActorsTransform kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors68\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_65=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_68, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon3\"\n\tITEM\n\t\t\"ktpcHowToActors68\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsTransform\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors68\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_65=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_68, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x33 0x01 0x00 0x00    // '????3???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_65, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_65=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_65, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x96 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x03    // '????5???' \n\t0x0F 0x00 0x00 0xFD 0x7F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x8B 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x95 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x96 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x04    // '????7???' \n\t0x0D 0x00 0x00 0xFE 0x46 0x00 0x00 0x04    // '???F???' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x03 0x00 0x00 0x00 0x46 0x00 0x00 0x40    // '????F??@' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x80    // '????5??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_65=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_65, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x65 0x76 0x65    // '??To eve' \n\t0x6E 0x6C 0x79 0x20 0x67 0x72 0x6F 0x77    // 'nly grow' \n\t0x20 0x6F 0x72 0x20 0x73 0x68 0x72 0x69    // ' or shri' \n\t0x6E 0x6B 0x20 0x61 0x6E 0x20 0x61 0x63    // 'nk an ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x0D 0x0A 0x31    // ' word??1' \n\t0x09 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x77    // ' movie w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x6D 0x61 0x6B 0x69 0x6E 0x67 0x20    // ' making ' \n\t0x73 0x69 0x7A 0x69 0x6E 0x67 0x20 0x63    // 'sizing c' \n\t0x68 0x61 0x6E 0x67 0x65 0x73 0x2E 0x0D    // 'hanges.?' \n\t0x0A 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?2?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x53 0x69 0x7A    // ' the Siz' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E    // 'e Tools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_69= ktpcHowToActors69\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_69, __HELP_NAME(\"CO 2)  Click Size Evenly\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_69, __HELP_NAME(\"CO 2)  Click Size Evenly\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon4 kgobHowtoSequence kidActorsShrink kidPlayHelpSounds 0x0 0xFFFFFFEC 0x57415645 kwavHTActors69\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_69, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon4\"\n\tITEM\n\t\t\"ktpcHowToActors69\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsShrink\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors69\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_69, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6C 0x00 0x00 0x00    // '????l???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x12 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x53 0x69 0x7A 0x65 0x20 0x45 0x76 0x65    // 'Size Eve' \n\t0x6E 0x6C 0x79 0x2E                        // 'nly.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6A= ktpcHowToActors6A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6A, __HELP_NAME(\"CO 3)  Move cursor\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6A, __HELP_NAME(\"CO 3)  Move cursor\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors6A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_78=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors6A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors6A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_78=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_37=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_78, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors94 __HELP_SYMBOL( STN \"ktpcHowToActors94\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_78=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_78, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x77 0x00 0x00 0x01    // '????w???' \n\t0x00 0x00 0x00 0x00 0x4F 0x00 0x00 0x03    // '????O???' \n\t0x0F 0x00 0x00 0xFD 0x56 0x00 0x00 0x03    // '???V???' \n\t0x00 0x00 0x00 0x00 0x4F 0x00 0x00 0x04    // '????O???' \n\t0x0D 0x00 0x00 0xFE 0x53 0x00 0x00 0x04    // '???S???' \n\t0x00 0x00 0x00 0x00 0x4F 0x00 0x00 0x40    // '????O??@' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3C 0x00 0x00 0x82    // '????<??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_78=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_78, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x6F 0x76 0x65 0x20 0x74    // '??Move t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x63 0x75 0x72 0x73 0x6F 0x72 0x20    // ' cursor ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x33 0x44 0x20 0x6F 0x62 0x6A 0x65    // ' 3D obje' \n\t0x63 0x74 0x20 0x79 0x6F 0x75 0x20 0x77    // 'ct you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x73    // 'ant to s' \n\t0x69 0x7A 0x65 0x2E 0x0D 0x0A 0x54 0x6F    // 'ize.??To' \n\t0x20 0x67 0x72 0x6F 0x77 0x20 0x73 0x6F    // ' grow so' \n\t0x6D 0x65 0x74 0x68 0x69 0x6E 0x67 0x2C    // 'mething,' \n\t0x20 0x64 0x72 0x61 0x67 0x20 0x75 0x70    // ' drag up' \n\t0x2E 0x20 0x54 0x6F 0x20 0x73 0x68 0x72    // '. To shr' \n\t0x69 0x6E 0x6B 0x20 0x73 0x6F 0x6D 0x65    // 'ink some' \n\t0x74 0x68 0x69 0x6E 0x67 0x2C 0x20 0x64    // 'thing, d' \n\t0x72 0x61 0x67 0x20 0x64 0x6F 0x77 0x6E    // 'rag down' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6B= ktpcHowToActors6B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6B, __HELP_NAME(\"Size Evenly--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6B, __HELP_NAME(\"Size Evenly--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors6B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_44=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors6B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors6B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_44=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_16=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_44, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors8F __HELP_SYMBOL( STN \"ktpcHowToActors8F\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_44=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_44, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x41 0x00 0x00 0x01    // '????A???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x20 0x00 0x00 0x40    // '???? ??@' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x40    // '????\"??@' \n\t0x04 0x00 0x00 0x00 0x41 0x00 0x00 0x40    // '????A??@' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1B 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0x22 0x00 0x00 0xC0    // '????\"??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_44=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_44, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x69 0x7A 0x69 0x6E 0x67    // '??Sizing' \n\t0x20 0x65 0x76 0x65 0x6E 0x6C 0x79 0x2D    // ' evenly-' \n\t0x2D 0x57 0x68 0x61 0x74 0x20 0x6E 0x65    // '-What ne' \n\t0x78 0x74 0x3F 0x0D 0x0A 0x01 0x55 0x6E    // 'xt????Un' \n\t0x64 0x6F 0x0D 0x0A 0x01 0x53 0x68 0x72    // 'do???Shr' \n\t0x69 0x6E 0x6B 0x69 0x6E 0x67 0x20 0x6F    // 'inking o' \n\t0x72 0x20 0x67 0x72 0x6F 0x77 0x69 0x6E    // 'r growin' \n\t0x67 0x20 0x6F 0x76 0x65 0x72 0x20 0x74    // 'g over t' \n\t0x69 0x6D 0x65                             // 'ime' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6C= ktpcHowToActors6C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6C, __HELP_NAME(\"CO 1) To squash\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6C, __HELP_NAME(\"CO 1) To squash\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon3 kgobHowtoSequence kidActorsTransform kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors6C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon3\"\n\tITEM\n\t\t\"ktpcHowToActors6C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsTransform\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors6C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x24 0x01 0x00 0x00    // '????$???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5F, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAE 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x04 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x4A 0x00 0x00 0x02    // '????J???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x4A 0x00 0x00 0x03    // '???J???' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x03    // '????L???' \n\t0x0F 0x00 0x00 0xFD 0x96 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xA3 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xAD 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xAE 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x4E 0x00 0x00 0x04    // '????N???' \n\t0x0D 0x00 0x00 0xFE 0x5D 0x00 0x00 0x04    // '???]???' \n\t0x00 0x00 0x00 0x00 0x4E 0x00 0x00 0x40    // '????N??@' \n\t0x03 0x00 0x00 0x00 0x5D 0x00 0x00 0x40    // '????]??@' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x80    // '????L??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x96 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x61 0x6B    // '??To mak' \n\t0x65 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'e an act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x73 0x68 0x6F    // 'word sho' \n\t0x72 0x74 0x65 0x72 0x20 0x61 0x6E 0x64    // 'rter and' \n\t0x20 0x77 0x69 0x64 0x65 0x72 0x20 0x6F    // ' wider o' \n\t0x72 0x20 0x74 0x61 0x6C 0x6C 0x65 0x72    // 'r taller' \n\t0x20 0x61 0x6E 0x64 0x20 0x74 0x68 0x69    // ' and thi' \n\t0x6E 0x6E 0x65 0x72 0x0D 0x0A 0x31 0x09    // 'nner??1?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x6D 0x61 0x6B 0x69 0x6E 0x67 0x20 0x73    // 'making s' \n\t0x69 0x7A 0x69 0x6E 0x67 0x20 0x63 0x68    // 'izing ch' \n\t0x61 0x6E 0x67 0x65 0x73 0x2E 0x0D 0x0A    // 'anges.??' \n\t0x20 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // ' 2?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x53 0x69 0x7A    // ' the Siz' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E    // 'e Tools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6D= ktpcHowToActors6D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6D, __HELP_NAME(\"CO 2)  Click Squash\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6D, __HELP_NAME(\"CO 2)  Click Squash\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon4 kgobHowtoSequence kidActorsSquash kidPlayHelpSounds 0x0 0xFFFFFFEC 0x57415645 kwavHTActors6D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon4\"\n\tITEM\n\t\t\"ktpcHowToActors6D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsSquash\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors6D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8F 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x16 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x53 0x71 0x75 0x61 0x73 0x68 0x20 0x26    // 'Squash &' \n\t0x20 0x53 0x74 0x72 0x65 0x74 0x63 0x68    // ' Stretch' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6E= ktpcHowToActors6E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6E, __HELP_NAME(\"CO 3)  Move cursor 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6E, __HELP_NAME(\"CO 3)  Move cursor 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors6E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_75=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors6E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors6E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_75=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_52=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_75, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG kwavHTActors94 __HELP_SYMBOL( STN \"kwavHTActors94\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_75=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_75, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x7D 0x00 0x00 0x01    // '????}???' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x03    // '????S???' \n\t0x0F 0x00 0x00 0xFD 0x5C 0x00 0x00 0x03    // '???\\???' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x04    // '????S???' \n\t0x0D 0x00 0x00 0xFE 0x57 0x00 0x00 0x04    // '???W???' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x02 0x00 0x00 0x00 0x57 0x00 0x00 0x40    // '????W??@' \n\t0x00 0x00 0x00 0x00 0x7D 0x00 0x00 0x40    // '????}??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3E 0x00 0x00 0x82    // '????>??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_75=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_75, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x6F 0x76 0x65 0x20 0x74    // '??Move t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x63 0x75 0x72 0x73 0x6F 0x72 0x20    // ' cursor ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x33 0x44 0x20 0x6F 0x62 0x6A 0x65    // ' 3D obje' \n\t0x63 0x74 0x20 0x79 0x6F 0x75 0x20 0x77    // 'ct you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ant to c' \n\t0x68 0x61 0x6E 0x67 0x65 0x2E 0x0D 0x0A    // 'hange.??' \n\t0x54 0x6F 0x20 0x73 0x71 0x75 0x61 0x73    // 'To squas' \n\t0x68 0x20 0x73 0x6F 0x6D 0x65 0x74 0x68    // 'h someth' \n\t0x69 0x6E 0x67 0x2C 0x20 0x64 0x72 0x61    // 'ing, dra' \n\t0x67 0x20 0x64 0x6F 0x77 0x6E 0x2E 0x20    // 'g down. ' \n\t0x54 0x6F 0x20 0x73 0x74 0x72 0x65 0x74    // 'To stret' \n\t0x63 0x68 0x20 0x73 0x6F 0x6D 0x65 0x74    // 'ch somet' \n\t0x68 0x69 0x6E 0x67 0x2C 0x20 0x64 0x72    // 'hing, dr' \n\t0x61 0x67 0x20 0x75 0x70 0x2E 0x20         // 'ag up. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6F= ktpcHowToActors6F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6F, __HELP_NAME(\"Squash--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6F, __HELP_NAME(\"Squash--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors6F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_92=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors6F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors6F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_92=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_53=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_92, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors90 __HELP_SYMBOL( STN \"ktpcHowToActors90\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_92=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_92, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x01 0x00 0x00 0x00 0x4D 0x00 0x00 0x01    // '????M???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x22 0x00 0x00 0x03    // '???\"???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x40    // '????$??@' \n\t0x02 0x00 0x00 0x00 0x29 0x00 0x00 0x40    // '????)??@' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x40    // '????+??@' \n\t0x04 0x00 0x00 0x00 0x4D 0x00 0x00 0x40    // '????M??@' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x80    // '????$??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x24 0x00 0x00 0x82    // '????$??' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0xC0    // '????$??' \n\t0x03 0x00 0x00 0x00 0x2B 0x00 0x00 0xC0    // '????+??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_92=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_92, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x71 0x75 0x61 0x73 0x68    // '??Squash' \n\t0x69 0x6E 0x67 0x20 0x26 0x20 0x73 0x74    // 'ing & st' \n\t0x72 0x65 0x74 0x63 0x68 0x69 0x6E 0x67    // 'retching' \n\t0x2D 0x2D 0x57 0x68 0x61 0x74 0x20 0x6E    // '--What n' \n\t0x65 0x78 0x74 0x3F 0x0D 0x0A 0x01 0x55    // 'ext????U' \n\t0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x53 0x71    // 'ndo???Sq' \n\t0x75 0x61 0x73 0x68 0x69 0x6E 0x67 0x20    // 'uashing ' \n\t0x6F 0x72 0x20 0x73 0x74 0x72 0x65 0x74    // 'or stret' \n\t0x63 0x68 0x69 0x6E 0x67 0x20 0x6F 0x76    // 'ching ov' \n\t0x65 0x72 0x20 0x74 0x69 0x6D 0x65         // 'er time' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_70= ktpcHowToActors70\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_70, __HELP_NAME(\"CO 1) To change back 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_70, __HELP_NAME(\"CO 1) To change back 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon3 kgobHowtoSequence kidActorsTransform kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors70\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_70, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon3\"\n\tITEM\n\t\t\"ktpcHowToActors70\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsTransform\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors70\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_70, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_10=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x03    // '????A???' \n\t0x0F 0x00 0x00 0xFD 0x8B 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x97 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xA1 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xA2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x04    // '????C???' \n\t0x0D 0x00 0x00 0xFE 0x52 0x00 0x00 0x04    // '???R???' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x40    // '????C??@' \n\t0x03 0x00 0x00 0x00 0x52 0x00 0x00 0x40    // '????R??@' \n\t0x00 0x00 0x00 0x00 0xA2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x80    // '????@??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8B 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x61 0x6E 0x20 0x61    // 'nge an a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x62    // 'D word b' \n\t0x61 0x63 0x6B 0x20 0x74 0x6F 0x20 0x69    // 'ack to i' \n\t0x74 0x73 0x20 0x6F 0x72 0x69 0x67 0x69    // 'ts origi' \n\t0x6E 0x61 0x6C 0x20 0x73 0x69 0x7A 0x65    // 'nal size' \n\t0x0D 0x0A 0x20 0x31 0x09 0x47 0x6F 0x20    // '?? 1?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B    // 't to mak' \n\t0x69 0x6E 0x67 0x20 0x73 0x69 0x7A 0x69    // 'ing sizi' \n\t0x6E 0x67 0x20 0x63 0x68 0x61 0x6E 0x67    // 'ng chang' \n\t0x65 0x73 0x2E 0x0D 0x0A 0x32 0x09 0x43    // 'es.??2?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x53 0x69 0x7A 0x65 0x20 0x54 0x6F    // ' Size To' \n\t0x6F 0x6C 0x73 0x2E                        // 'ols.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_71= ktpcHowToActors71\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_71, __HELP_NAME(\"CO 2)  Click Change Back 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_71, __HELP_NAME(\"CO 2)  Click Change Back 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon4 kgobHowtoSequence kidActorsTransformNorm kidPlayHelpSounds 0x0 0xFFFFFFEC 0x57415645 kwavHTActors71\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_87=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_71, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon4\"\n\tITEM\n\t\t\"ktpcHowToActors71\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsTransformNorm\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors71\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_87=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_71, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6F 0x00 0x00 0x00    // '????o???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_87=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_87, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_87=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_87, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x20 0x43 0x68 0x61 0x6E 0x67 0x65 0x20    // ' Change ' \n\t0x42 0x61 0x63 0x6B 0x2E                   // 'Back.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_72= ktpcHowToActors72\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_72, __HELP_NAME(\"CO 3)  Click change back 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_72, __HELP_NAME(\"CO 3)  Click change back 3\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors72\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_72, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors72\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors72\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_72, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3A 0x00 0x00 0x01    // '????:???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x04    // '????9???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x40    // '????9??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x20    // 'ord you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x63 0x68 0x61 0x6E 0x67 0x65 0x20 0x62    // 'change b' \n\t0x61 0x63 0x6B 0x2E                        // 'ack.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_73= ktpcHowToActors73\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_73, __HELP_NAME(\"Change Back 2--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_73, __HELP_NAME(\"Change Back 2--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors73\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_73, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors73\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors73\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_73, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5C, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToActors81 __HELP_SYMBOL( STN \"ktpcHowToActors81\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x20 0x00 0x00 0x40    // '???? ??@' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x40    // '????\"??@' \n\t0x04 0x00 0x00 0x00 0x35 0x00 0x00 0x40    // '????5??@' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1B 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0x22 0x00 0x00 0xC0    // '????\"??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x62 0x61 0x63 0x6B 0x2D    // 'ng back-' \n\t0x2D 0x57 0x68 0x61 0x74 0x20 0x6E 0x65    // '-What ne' \n\t0x78 0x74 0x3F 0x0D 0x0A 0x01 0x55 0x6E    // 'xt????Un' \n\t0x64 0x6F 0x0D 0x0A 0x01 0x50 0x6C 0x61    // 'do???Pla' \n\t0x79 0x69 0x6E 0x67 0x20 0x79 0x6F 0x75    // 'ying you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65         // 'r movie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_74= ktpcHowToActors74\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_74, __HELP_NAME(\"CO 1) To change costume\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_74, __HELP_NAME(\"CO 1) To change costume\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidActorsCostume kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors74\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_70=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_74, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToActors74\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsCostume\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors74\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_70=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_74, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x31 0x01 0x00 0x00    // '????1???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_70, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_70=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_70, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x91 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x03    // '????4???' \n\t0x0F 0x00 0x00 0xFD 0x73 0x00 0x00 0x03    // '???s???' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x90 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x91 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x04    // '????6???' \n\t0x0D 0x00 0x00 0xFE 0x45 0x00 0x00 0x04    // '???E???' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x40    // '????6??@' \n\t0x04 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x00 0x00 0x00 0x00 0x91 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x80    // '????4??' \n\t0x00 0x00 0x02 0x00 0x75 0x00 0x00 0x80    // '????u??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x75 0x00 0x00 0x82    // '????u??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_70=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_70, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x77 0x61 0x79 0x20 0x61 0x6E 0x20 0x61    // 'way an a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x6C    // 'D word l' \n\t0x6F 0x6F 0x6B 0x73 0x0D 0x0A 0x31 0x09    // 'ooks??1?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x6D 0x61 0x6B 0x65 0x20 0x63 0x68 0x61    // 'make cha' \n\t0x6E 0x67 0x65 0x73 0x2E 0x0D 0x0A 0x32    // 'nges.??2' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x43 0x6F 0x73 0x74 0x75    // 'he Costu' \n\t0x6D 0x65 0x20 0x43 0x68 0x61 0x6E 0x67    // 'me Chang' \n\t0x65 0x72 0x2E                             // 'er.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_75= ktpcHowToActors75\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_75, __HELP_NAME(\"CO 2)  Click one costume\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_75, __HELP_NAME(\"CO 2)  Click one costume\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTActors75\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_75, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToActors75\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors75\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_75, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x40    // '????5??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x20    // 'ord you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x63 0x68 0x61 0x6E 0x67 0x65 0x2E         // 'change.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_76= ktpcHowToActors76\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_76, __HELP_NAME(\"CO 3)  Costume or 3D Easel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_76, __HELP_NAME(\"CO 3)  Costume or 3D Easel\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTActors76\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_76=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_76, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToActors76\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors76\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_76=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_76, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_76=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_76, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0xA1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_76=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_76, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x74 0x65 0x20 0x74    // '??Note t' \n\t0x6F 0x20 0x54 0x6F 0x6E 0x79 0x3A 0x0D    // 'o Tony:?' \n\t0x0A 0x20 0x49 0x66 0x20 0x74 0x68 0x65    // '? If the' \n\t0x79 0x20 0x63 0x6C 0x69 0x63 0x6B 0x65    // 'y clicke' \n\t0x64 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'd an act' \n\t0x6F 0x72 0x20 0x6F 0x72 0x20 0x70 0x72    // 'or or pr' \n\t0x6F 0x70 0x2C 0x20 0x64 0x69 0x73 0x70    // 'op, disp' \n\t0x6C 0x61 0x79 0x20 0x73 0x74 0x61 0x6E    // 'lay stan' \n\t0x64 0x61 0x72 0x64 0x20 0x43 0x6F 0x73    // 'dard Cos' \n\t0x74 0x75 0x6D 0x65 0x20 0x43 0x68 0x61    // 'tume Cha' \n\t0x6E 0x67 0x65 0x72 0x20 0x62 0x61 0x6C    // 'nger bal' \n\t0x6C 0x6F 0x6F 0x6E 0x2E 0x0D 0x0A 0x0D    // 'loon.???' \n\t0x0A 0x49 0x66 0x20 0x74 0x68 0x65 0x79    // '?If they' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x65 0x64    // ' clicked' \n\t0x20 0x61 0x20 0x33 0x44 0x20 0x77 0x6F    // ' a 3D wo' \n\t0x72 0x64 0x2C 0x20 0x64 0x69 0x73 0x70    // 'rd, disp' \n\t0x6C 0x61 0x79 0x20 0x73 0x74 0x61 0x6E    // 'lay stan' \n\t0x64 0x61 0x72 0x64 0x20 0x33 0x44 0x20    // 'dard 3D ' \n\t0x57 0x6F 0x72 0x64 0x20 0x45 0x61 0x73    // 'Word Eas' \n\t0x65 0x6C 0x20 0x62 0x61 0x6C 0x6C 0x6F    // 'el ballo' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_77= ktpcHowToActors77\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_77, __HELP_NAME(\"Costume--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_77, __HELP_NAME(\"Costume--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTActors77\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_30=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_77, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToActors77\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors77\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_30=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_77, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_22=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors78 __HELP_SYMBOL( STN \"ktpcHowToActors78\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_30=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x24 0x00 0x00 0x40    // '????$??@' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_30=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x6C    // 'ng the l' \n\t0x6F 0x6F 0x6B 0x2D 0x2D 0x57 0x68 0x61    // 'ook--Wha' \n\t0x74 0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D    // 't next??' \n\t0x0A 0x01 0x55 0x6E 0x64 0x6F              // '??Undo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_78= ktpcHowToActors78\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_78, __HELP_NAME(\"Tip:  Undo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_78, __HELP_NAME(\"Tip:  Undo\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors78\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_94=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_78, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors78\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors78\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_94=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_78, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_47=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_94, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpUndo __HELP_SYMBOL( STN \"mbmpUndo\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRedo __HELP_SYMBOL( STN \"mbmpRedo\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_94=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_94, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x01    // '????.???' \n\t0x01 0xF1 0x00 0x00 0x3B 0x00 0x00 0x01    // '???;???' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x01 0x00 0x00 0x00 0x56 0x00 0x00 0x01    // '????V???' \n\t0x01 0xF1 0x00 0x00 0x63 0x00 0x00 0x01    // '???c???' \n\t0x01 0x00 0x00 0x00 0x64 0x00 0x00 0x01    // '????d???' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x03    // '????>???' \n\t0x0A 0x00 0x00 0xFD 0x54 0x00 0x00 0x03    // '???T???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x56 0x00 0x00 0x82    // '????V??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0xC0    // '????;??' \n\t0x02 0x00 0x00 0x00 0x63 0x00 0x00 0xC0    // '????c??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_94=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_94, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x55 0x6E 0x64    // '???  Und' \n\t0x6F 0x2F 0x52 0x65 0x64 0x6F 0x0D 0x0A    // 'o/Redo??' \n\t0x54 0x6F 0x20 0x75 0x6E 0x64 0x6F 0x20    // 'To undo ' \n\t0x74 0x68 0x65 0x20 0x6C 0x61 0x73 0x74    // 'the last' \n\t0x20 0x74 0x68 0x69 0x6E 0x67 0x20 0x79    // ' thing y' \n\t0x6F 0x75 0x20 0x64 0x69 0x64 0x0D 0x0A    // 'ou did??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x55 0x6E 0x64 0x6F 0x2D 0x01 0x0D 0x0A    // 'Undo-???' \n\t0x54 0x6F 0x20 0x72 0x65 0x64 0x6F 0x20    // 'To redo ' \n\t0x77 0x68 0x61 0x74 0x20 0x79 0x6F 0x75    // 'what you' \n\t0x20 0x75 0x6E 0x64 0x69 0x64 0x0D 0x0A    // ' undid??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x52 0x65 0x64 0x6F 0x2D 0x01              // 'Redo-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_79= ktpcHowToActors79\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_79, __HELP_NAME(\"Tip:  Assign Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_79, __HELP_NAME(\"Tip:  Assign Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors79\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_79, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors79\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors79\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_79, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x27 0x01 0x00 0x00    // '????'???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_41=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorActions __HELP_SYMBOL( STN \"mbmpActorActions\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4A 0x00 0x00 0x01    // '????J???' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x01    // '????L???' \n\t0x01 0xF6 0x00 0x00 0x5C 0x00 0x00 0x01    // '???\\???' \n\t0x01 0x00 0x00 0x00 0xA4 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x4A 0x00 0x00 0x03    // '???J???' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x80    // '????L??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5F 0x00 0x00 0x82    // '????_??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x5C 0x00 0x00 0xC0    // '????\\??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x41 0x73    // '???   As' \n\t0x73 0x69 0x67 0x6E 0x69 0x6E 0x67 0x20    // 'signing ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x69 0x6F    // 'an actio' \n\t0x6E 0x0D 0x0A 0x54 0x6F 0x20 0x61 0x73    // 'n??To as' \n\t0x73 0x69 0x67 0x6E 0x20 0x61 0x6E 0x20    // 'sign an ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x20 0x74    // 'action t' \n\t0x6F 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'o an act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x0D 0x0A 0x31 0x09    // 'word??1?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x41 0x63    // 'Click Ac' \n\t0x74 0x69 0x6F 0x6E 0x73 0x2D 0x01 0x0D    // 'tions-??' \n\t0x0A 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?2?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x79 0x6F 0x75    // 'word you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x61 0x73 0x73 0x69 0x67 0x6E 0x20    // ' assign ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x69    // 'the acti' \n\t0x6F 0x6E 0x20 0x74 0x6F 0x2E              // 'on to.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7A= ktpcHowToActors7A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7A, __HELP_NAME(\"Tip:  Move Up or Down\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7A, __HELP_NAME(\"Tip:  Move Up or Down\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors7A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors7A\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors7A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x69 0x01 0x00 0x00    // '????i???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsCompose __HELP_SYMBOL( STN \"mbmpActorsCompose\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsXY __HELP_SYMBOL( STN \"mbmpActorsXY\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x51 0x00 0x00 0x01    // '????Q???' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x01    // '????S???' \n\t0x01 0xF6 0x00 0x00 0x66 0x00 0x00 0x01    // '???f???' \n\t0x01 0x00 0x00 0x00 0x69 0x00 0x00 0x01    // '????i???' \n\t0x01 0xF6 0x00 0x00 0x8A 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x10 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x51 0x00 0x00 0x03    // '???Q???' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x80    // '????S??' \n\t0x00 0x00 0x02 0x00 0x8D 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xC3 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xC3 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x66 0x00 0x00 0xC0    // '????f??' \n\t0x01 0x00 0x00 0x00 0x8A 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x4D 0x6F    // '???   Mo' \n\t0x76 0x69 0x6E 0x67 0x20 0x75 0x70 0x20    // 'ving up ' \n\t0x6F 0x72 0x20 0x64 0x6F 0x77 0x6E 0x0D    // 'or down?' \n\t0x0A 0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65    // '?To move' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x61 0x6E 0x64 0x20    // 'ord and ' \n\t0x69 0x74 0x73 0x20 0x70 0x61 0x74 0x68    // 'its path' \n\t0x20 0x75 0x70 0x20 0x6F 0x72 0x20 0x64    // ' up or d' \n\t0x6F 0x77 0x6E 0x0D 0x0A 0x31 0x09 0x43    // 'own??1?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x52 0x65 0x70    // 'lick Rep' \n\t0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E 0x2D    // 'osition-' \n\t0x01 0x0D 0x0A 0x32 0x09 0x22 0x54 0x75    // '???2?\"Tu' \n\t0x72 0x6E 0x20 0x6F 0x6E 0x22 0x20 0x74    // 'rn on\" t' \n\t0x68 0x65 0x20 0x55 0x70 0x20 0x26 0x20    // 'he Up & ' \n\t0x44 0x6F 0x77 0x6E 0x20 0x62 0x75 0x74    // 'Down but' \n\t0x74 0x6F 0x6E 0x2D 0x01 0x0D 0x0A 0x57    // 'ton-???W' \n\t0x68 0x65 0x6E 0x20 0x22 0x6F 0x6E 0x2C    // 'hen \"on,' \n\t0x22 0x20 0x74 0x68 0x65 0x20 0x62 0x75    // '\" the bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x69 0x73 0x20    // 'tton is ' \n\t0x70 0x75 0x73 0x68 0x65 0x64 0x20 0x69    // 'pushed i' \n\t0x6E 0x20 0x61 0x6E 0x64 0x20 0x69 0x74    // 'n and it' \n\t0x20 0x6C 0x69 0x67 0x68 0x74 0x73 0x20    // ' lights ' \n\t0x75 0x70 0x2E 0x0D 0x0A 0x33 0x09 0x48    // 'up.??3?H' \n\t0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E    // 'old down' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x62 0x75 0x74 0x74 0x6F    // 'se butto' \n\t0x6E 0x20 0x61 0x6E 0x64 0x20 0x64 0x72    // 'n and dr' \n\t0x61 0x67 0x20 0x74 0x68 0x65 0x20 0x61    // 'ag the a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x75    // 'D word u' \n\t0x70 0x20 0x6F 0x72 0x20 0x64 0x6F 0x77    // 'p or dow' \n\t0x6E 0x2E                                  // 'n.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7B= ktpcHowToActors7B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7B, __HELP_NAME(\"Tip:  Remove\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7B, __HELP_NAME(\"Tip:  Remove\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors7B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors7B\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors7B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x79 0x01 0x00 0x00    // '????y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_54=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6A, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCutCopyPaste __HELP_SYMBOL( STN \"mbmpCutCopyPaste\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPRemoveObject __HELP_SYMBOL( STN \"mbmpCCPRemoveObject\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x4A 0x00 0x00 0x01    // '????J???' \n\t0x01 0xF6 0x00 0x00 0x6F 0x00 0x00 0x01    // '???o???' \n\t0x01 0x00 0x00 0x00 0x72 0x00 0x00 0x01    // '????r???' \n\t0x01 0xF6 0x00 0x00 0x8B 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x8C 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xBB 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x48 0x00 0x00 0x03    // '???H???' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x03    // '????o???' \n\t0x0A 0x00 0x00 0xFD 0x70 0x00 0x00 0x03    // '???p???' \n\t0x00 0x00 0x00 0x00 0x4A 0x00 0x00 0x80    // '????J??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8E 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x6F 0x00 0x00 0xC0    // '????o??' \n\t0x01 0x00 0x00 0x00 0x8B 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6A, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x52 0x65 0x6D    // '???  Rem' \n\t0x6F 0x76 0x69 0x6E 0x67 0x0D 0x0A 0x54    // 'oving??T' \n\t0x6F 0x20 0x72 0x65 0x6D 0x6F 0x76 0x65    // 'o remove' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x66 0x72 0x6F 0x6D    // 'ord from' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x75 0x72    // ' the cur' \n\t0x72 0x65 0x6E 0x74 0x20 0x73 0x63 0x65    // 'rent sce' \n\t0x6E 0x65 0x0D 0x0A 0x31 0x09 0x43 0x6C    // 'ne??1?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x43 0x75 0x74 0x2C 0x20 0x43 0x6F 0x70    // 'Cut, Cop' \n\t0x79 0x2C 0x20 0x26 0x20 0x50 0x61 0x73    // 'y, & Pas' \n\t0x74 0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73    // 'te Tools' \n\t0x2D 0x01 0x0D 0x0A 0x32 0x09 0x43 0x6C    // '-???2?Cl' \n\t0x69 0x63 0x6B 0x20 0x52 0x65 0x6D 0x6F    // 'ick Remo' \n\t0x76 0x65 0x20 0x33 0x44 0x20 0x4F 0x62    // 've 3D Ob' \n\t0x6A 0x65 0x63 0x74 0x2D 0x01 0x0D 0x0A    // 'ject-???' \n\t0x33 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '3?Click ' \n\t0x74 0x68 0x65 0x20 0x33 0x44 0x20 0x6F    // 'the 3D o' \n\t0x62 0x6A 0x65 0x63 0x74 0x20 0x79 0x6F    // 'bject yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x67 0x65 0x74 0x20 0x72 0x69    // 'o get ri' \n\t0x64 0x20 0x6F 0x66 0x2E                   // 'd of.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7C= ktpcHowToActors7C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7C, __HELP_NAME(\"Tip:  Reposition\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7C, __HELP_NAME(\"Tip:  Reposition\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors7C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors7C\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors7C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x74 0x01 0x00 0x00    // '????t???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7C, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsCompose __HELP_SYMBOL( STN \"mbmpActorsCompose\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x16 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x64 0x00 0x00 0x01    // '????d???' \n\t0x01 0xF6 0x00 0x00 0x77 0x00 0x00 0x01    // '???w???' \n\t0x01 0x00 0x00 0x00 0x78 0x00 0x00 0x01    // '????x???' \n\t0x01 0x00 0x00 0x00 0xC2 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD7 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0xE0 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x9C 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x62 0x00 0x00 0x03    // '???b???' \n\t0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x80    // '????d??' \n\t0x00 0x00 0x02 0x00 0x7A 0x00 0x00 0x80    // '????z??' \n\t0x00 0x00 0x02 0x00 0xC2 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x0B 0x01 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x6D 0x01 0x00 0x82    // '????m??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x77 0x00 0x00 0xC0    // '????w??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7C, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x52 0x65    // '???   Re' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x69 0x6E 0x67 0x0D 0x0A 0x54 0x6F 0x20    // 'ing??To ' \n\t0x72 0x65 0x70 0x6F 0x73 0x69 0x74 0x69    // 'repositi' \n\t0x6F 0x6E 0x20 0x61 0x6E 0x20 0x61 0x63    // 'on an ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x61 0x6E    // ' word an' \n\t0x64 0x20 0x69 0x74 0x73 0x20 0x70 0x61    // 'd its pa' \n\t0x74 0x68 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'th from ' \n\t0x74 0x68 0x65 0x20 0x63 0x75 0x72 0x72    // 'the curr' \n\t0x65 0x6E 0x74 0x20 0x66 0x72 0x61 0x6D    // 'ent fram' \n\t0x65 0x20 0x6F 0x6E 0x0D 0x0A 0x31 0x09    // 'e on??1?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x52 0x65    // 'Click Re' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x2D 0x01 0x0D 0x0A 0x32 0x09 0x48 0x6F    // '-???2?Ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x20 0x61 0x6E 0x64 0x20 0x64 0x72 0x61    // ' and dra' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x33 0x44    // 'g the 3D' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x20    // ' object ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x69    // 'u want i' \n\t0x74 0x2E 0x0D 0x0A 0x49 0x66 0x20 0x79    // 't.??If y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x09 0x09 0x09 0x09 0x09 0x09    // 'to??????' \n\t0x09 0x48 0x6F 0x6C 0x64 0x20 0x64 0x6F    // '?Hold do' \n\t0x77 0x6E 0x0D 0x0A 0x4D 0x6F 0x76 0x65    // 'wn??Move' \n\t0x20 0x74 0x68 0x65 0x20 0x33 0x44 0x20    // ' the 3D ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x20 0x75    // 'object u' \n\t0x70 0x09 0x09 0x09 0x09 0x74 0x68 0x65    // 'p????the' \n\t0x20 0x55 0x70 0x20 0x6F 0x72 0x20 0x44    // ' Up or D' \n\t0x6F 0x77 0x6E 0x0D 0x0A 0x6F 0x72 0x20    // 'own??or ' \n\t0x64 0x6F 0x77 0x6E 0x20 0x61 0x6E 0x64    // 'down and' \n\t0x20 0x6E 0x65 0x61 0x72 0x20 0x6F 0x72    // ' near or' \n\t0x20 0x66 0x61 0x72 0x09 0x09 0x09 0x09    // ' far????' \n\t0x41 0x72 0x72 0x6F 0x77 0x20 0x6B 0x65    // 'Arrow ke' \n\t0x79 0x20 0x61 0x73 0x20 0x79 0x6F 0x75    // 'y as you' \n\t0x20 0x64 0x72 0x61 0x67 0x2E 0x0D 0x0A    // ' drag.??' \n\t0x52 0x65 0x70 0x6F 0x73 0x69 0x74 0x69    // 'Repositi' \n\t0x6F 0x6E 0x20 0x6F 0x6E 0x6C 0x79 0x20    // 'on only ' \n\t0x6F 0x6E 0x65 0x20 0x66 0x72 0x61 0x6D    // 'one fram' \n\t0x65 0x09 0x09 0x09 0x43 0x74 0x72 0x6C    // 'e???Ctrl' \n\t0x20 0x61 0x73 0x20 0x79 0x6F 0x75 0x20    // ' as you ' \n\t0x64 0x72 0x61 0x67 0x2E 0x0D 0x0A 0x52    // 'drag.??R' \n\t0x65 0x70 0x6F 0x73 0x69 0x74 0x69 0x6F    // 'epositio' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x65 0x6E    // 'n the en' \n\t0x74 0x69 0x72 0x65 0x20 0x70 0x61 0x74    // 'tire pat' \n\t0x68 0x09 0x09 0x09 0x53 0x68 0x69 0x66    // 'h???Shif' \n\t0x74 0x20 0x61 0x73 0x20 0x79 0x6F 0x75    // 't as you' \n\t0x20 0x64 0x72 0x61 0x67 0x2E              // ' drag.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7D= ktpcHowToActors7D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7D, __HELP_NAME(\"Tip:  Freezing an Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7D, __HELP_NAME(\"Tip:  Freezing an Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors7D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors7D\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors7D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x06 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_51=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7F, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4F 0x01 0x00 0x01    // '????O???' \n\t0x00 0x00 0x00 0x00 0xEE 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x01 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x03 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7F, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x46 0x72    // '???   Fr' \n\t0x65 0x65 0x7A 0x69 0x6E 0x67 0x20 0x61    // 'eezing a' \n\t0x6E 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'n action' \n\t0x0D 0x0A 0x57 0x68 0x65 0x6E 0x20 0x79    // '??When y' \n\t0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'ou move ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x20 0x61 0x63 0x72 0x6F 0x73 0x73 0x20    // ' across ' \n\t0x74 0x68 0x65 0x20 0x73 0x74 0x61 0x67    // 'the stag' \n\t0x65 0x2C 0x20 0x79 0x6F 0x75 0x20 0x63    // 'e, you c' \n\t0x61 0x6E 0x20 0x22 0x66 0x72 0x65 0x65    // 'an \"free' \n\t0x7A 0x65 0x22 0x20 0x61 0x6E 0x20 0x61    // 'ze\" an a' \n\t0x63 0x74 0x69 0x6F 0x6E 0x2E 0x20 0x20    // 'ction.  ' \n\t0x46 0x6F 0x72 0x20 0x65 0x78 0x61 0x6D    // 'For exam' \n\t0x70 0x6C 0x65 0x2C 0x20 0x69 0x66 0x20    // 'ple, if ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x20 0x74 0x6F 0x20 0x6A 0x75 0x6D    // 'r to jum' \n\t0x70 0x20 0x75 0x70 0x20 0x69 0x6E 0x74    // 'p up int' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x61 0x69    // 'o the ai' \n\t0x72 0x2C 0x20 0x79 0x6F 0x75 0x20 0x63    // 'r, you c' \n\t0x61 0x6E 0x20 0x66 0x72 0x65 0x65 0x7A    // 'an freez' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x6A 0x75    // 'e the ju' \n\t0x6D 0x70 0x20 0x61 0x63 0x74 0x69 0x6F    // 'mp actio' \n\t0x6E 0x20 0x61 0x6E 0x64 0x20 0x63 0x6F    // 'n and co' \n\t0x6E 0x74 0x69 0x6E 0x75 0x65 0x20 0x64    // 'ntinue d' \n\t0x72 0x61 0x67 0x67 0x69 0x6E 0x67 0x20    // 'ragging ' \n\t0x74 0x6F 0x20 0x63 0x72 0x65 0x61 0x74    // 'to creat' \n\t0x65 0x20 0x61 0x20 0x22 0x66 0x6C 0x6F    // 'e a \"flo' \n\t0x61 0x74 0x69 0x6E 0x67 0x22 0x20 0x65    // 'ating\" e' \n\t0x66 0x66 0x65 0x63 0x74 0x2E 0x0D 0x0A    // 'ffect.??' \n\t0x54 0x6F 0x20 0x66 0x72 0x65 0x65 0x7A    // 'To freez' \n\t0x65 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'e an act' \n\t0x69 0x6F 0x6E 0x0D 0x0A 0x95 0x09 0x48    // 'ion???H' \n\t0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E    // 'old down' \n\t0x20 0x53 0x68 0x69 0x66 0x74 0x20 0x61    // ' Shift a' \n\t0x73 0x20 0x79 0x6F 0x75 0x20 0x64 0x72    // 's you dr' \n\t0x61 0x67 0x20 0x74 0x68 0x65 0x20 0x61    // 'ag the a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x77    // 'D word w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x69 0x74    // ' want it' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7E= ktpcHowToActors7E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7E, __HELP_NAME(\"Tip:  Change Start Position\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7E, __HELP_NAME(\"Tip:  Change Start Position\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors7E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors7E\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors7E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0C 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x01 0x00 0x00 0x00 0x4A 0x00 0x00 0x01    // '????J???' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x01    // '????L???' \n\t0x01 0x00 0x00 0x00 0x04 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x03    // '????$???' \n\t0x0A 0x00 0x00 0xFD 0x4A 0x00 0x00 0x03    // '???J???' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x80    // '????L??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB9 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x43 0x68    // '???   Ch' \n\t0x61 0x6E 0x67 0x69 0x6E 0x67 0x20 0x74    // 'anging t' \n\t0x68 0x65 0x20 0x73 0x74 0x61 0x72 0x74    // 'he start' \n\t0x69 0x6E 0x67 0x20 0x70 0x6F 0x73 0x69    // 'ing posi' \n\t0x74 0x69 0x6F 0x6E 0x0D 0x0A 0x54 0x6F    // 'tion??To' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x20    // ' change ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x69    // 'the acti' \n\t0x6F 0x6E 0x20 0x73 0x74 0x61 0x72 0x74    // 'on start' \n\t0x69 0x6E 0x67 0x20 0x70 0x6F 0x73 0x69    // 'ing posi' \n\t0x74 0x69 0x6F 0x6E 0x0D 0x0A 0x31 0x09    // 'tion??1?' \n\t0x4D 0x6F 0x76 0x65 0x20 0x74 0x68 0x65    // 'Move the' \n\t0x20 0x6D 0x6F 0x75 0x73 0x65 0x20 0x63    // ' mouse c' \n\t0x75 0x72 0x73 0x6F 0x72 0x20 0x6F 0x76    // 'ursor ov' \n\t0x65 0x72 0x20 0x74 0x68 0x65 0x20 0x61    // 'er the a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x77    // 'D word w' \n\t0x68 0x6F 0x73 0x65 0x20 0x61 0x63 0x74    // 'hose act' \n\t0x69 0x6F 0x6E 0x20 0x73 0x74 0x61 0x72    // 'ion star' \n\t0x74 0x69 0x6E 0x67 0x20 0x70 0x6F 0x73    // 'ting pos' \n\t0x69 0x74 0x69 0x6F 0x6E 0x20 0x79 0x6F    // 'ition yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'o change' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x48 0x6F 0x6C    // '.??2?Hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x43    // 'd down C' \n\t0x74 0x72 0x6C 0x20 0x61 0x6E 0x64 0x20    // 'trl and ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x79    // ' until y' \n\t0x6F 0x75 0x20 0x66 0x69 0x6E 0x64 0x20    // 'ou find ' \n\t0x74 0x68 0x65 0x20 0x70 0x6F 0x73 0x69    // 'the posi' \n\t0x74 0x69 0x6F 0x6E 0x20 0x79 0x6F 0x75    // 'tion you' \n\t0x20 0x77 0x61 0x6E 0x74 0x2E              // ' want.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7F= ktpcHowToActors7F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7F, __HELP_NAME(\"Tip:  Move Up or Down 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7F, __HELP_NAME(\"Tip:  Move Up or Down 2\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors7F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors7F\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors7F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x05 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_50=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7E, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x01 0x00 0x00 0x00 0x64 0x00 0x00 0x01    // '????d???' \n\t0x00 0x00 0x00 0x00 0x66 0x00 0x00 0x01    // '????f???' \n\t0x01 0x00 0x00 0x00 0xB5 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x03    // '????'???' \n\t0x0A 0x00 0x00 0xFD 0x64 0x00 0x00 0x03    // '???d???' \n\t0x00 0x00 0x00 0x00 0x66 0x00 0x00 0x80    // '????f??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x66 0x00 0x00 0x82    // '????f??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7E, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x4D 0x6F    // '???   Mo' \n\t0x76 0x69 0x6E 0x67 0x20 0x75 0x70 0x20    // 'ving up ' \n\t0x6F 0x72 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'or down ' \n\t0x61 0x6E 0x64 0x20 0x6E 0x65 0x61 0x72    // 'and near' \n\t0x20 0x6F 0x72 0x20 0x66 0x61 0x72 0x0D    // ' or far?' \n\t0x0A 0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65    // '?To move' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x75 0x70 0x20 0x6F    // 'ord up o' \n\t0x72 0x20 0x64 0x6F 0x77 0x6E 0x20 0x61    // 'r down a' \n\t0x6E 0x64 0x20 0x6E 0x65 0x61 0x72 0x20    // 'nd near ' \n\t0x6F 0x72 0x20 0x66 0x61 0x72 0x0D 0x0A    // 'or far??' \n\t0x95 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x55 0x70 0x20 0x6F 0x72 0x20 0x44 0x6F    // 'Up or Do' \n\t0x77 0x6E 0x20 0x41 0x72 0x72 0x6F 0x77    // 'wn Arrow' \n\t0x20 0x6B 0x65 0x79 0x20 0x61 0x73 0x20    // ' key as ' \n\t0x79 0x6F 0x75 0x20 0x68 0x6F 0x6C 0x64    // 'you hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x68    // ' down th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x6F    // 'button o' \n\t0x72 0x20 0x64 0x72 0x61 0x67 0x2E         // 'r drag.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_80= ktpcHowToActors80\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_80, __HELP_NAME(\"Tip:  Change Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_80, __HELP_NAME(\"Tip:  Change Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors80\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_80, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors80\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors80\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_80, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x42 0x01 0x00 0x00    // '????B???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7A, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorActions __HELP_SYMBOL( STN \"mbmpActorActions\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x18 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x01    // '????.???' \n\t0x01 0x00 0x00 0x00 0xF7 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x07 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x50 0x01 0x00 0x01    // '????P???' \n\t0x01 0xFB 0x00 0x00 0x76 0x01 0x00 0x01    // '???v???' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x03    // '????0???' \n\t0x0F 0x00 0x00 0xFD 0x5D 0x00 0x00 0x03    // '???]???' \n\t0x00 0x00 0x00 0x00 0x8B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xF5 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x80    // '????.??' \n\t0x00 0x00 0x02 0x00 0x8E 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xF7 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x50 0x01 0x00 0x82    // '????P??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x8E 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00 0x91 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00 0x07 0x01 0x00 0xC0    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7A, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x68 0x61    // '???  Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'e action' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x0D 0x0A    // 'action??' \n\t0x31 0x09 0x47 0x6F 0x20 0x74 0x6F 0x20    // '1?Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x63 0x68 0x61 0x6E    // ' to chan' \n\t0x67 0x65 0x20 0x74 0x68 0x65 0x20 0x61    // 'ge the a' \n\t0x63 0x74 0x69 0x6F 0x6E 0x20 0x61 0x73    // 'ction as' \n\t0x73 0x69 0x67 0x6E 0x65 0x64 0x20 0x74    // 'signed t' \n\t0x6F 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'o an act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x2E 0x20 0x0D 0x0A    // 'word. ??' \n\t0x01 0x0D 0x0A 0x01 0x0D 0x0A 0x54 0x6F    // '??????To' \n\t0x20 0x6D 0x6F 0x76 0x65 0x20 0x77 0x69    // ' move wi' \n\t0x74 0x68 0x69 0x6E 0x20 0x61 0x20 0x73    // 'thin a s' \n\t0x63 0x65 0x6E 0x65 0x2C 0x20 0x75 0x73    // 'cene, us' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x46 0x72    // 'e the Fr' \n\t0x61 0x6D 0x65 0x20 0x53 0x6C 0x69 0x64    // 'ame Slid' \n\t0x65 0x72 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'er.??To ' \n\t0x6D 0x6F 0x76 0x65 0x20 0x66 0x72 0x6F    // 'move fro' \n\t0x6D 0x20 0x73 0x63 0x65 0x6E 0x65 0x20    // 'm scene ' \n\t0x74 0x6F 0x20 0x73 0x63 0x65 0x6E 0x65    // 'to scene' \n\t0x2C 0x20 0x75 0x73 0x65 0x20 0x74 0x68    // ', use th' \n\t0x65 0x20 0x53 0x63 0x65 0x6E 0x65 0x20    // 'e Scene ' \n\t0x53 0x6C 0x69 0x64 0x65 0x72 0x2E 0x0D    // 'Slider.?' \n\t0x0A 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?2?Click' \n\t0x20 0x41 0x63 0x74 0x69 0x6F 0x6E 0x73    // ' Actions' \n\t0x2D 0x01 0x0D 0x0A 0x33 0x09 0x43 0x6C    // '-???3?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2C 0x20 0x70    // 'actor, p' \n\t0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20    // 'rop, or ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x20    // '3D word ' \n\t0x77 0x68 0x6F 0x73 0x65 0x20 0x61 0x63    // 'whose ac' \n\t0x74 0x69 0x6F 0x6E 0x20 0x79 0x6F 0x75    // 'tion you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x2E    // ' change.' \n\t0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69 0x63    // '??4?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'k the ne' \n\t0x77 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'w action' \n\t0x2C 0x20 0x74 0x68 0x65 0x6E 0x20 0x63    // ', then c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x4F 0x4B 0x2E    // 'lick OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_81= ktpcHowToActors81\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_81, __HELP_NAME(\"Tip:  Play Movie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_81, __HELP_NAME(\"Tip:  Play Movie\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors81\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_81, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors81\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors81\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_81, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x5E 0x01 0x00 0x00    // '????^???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPlay __HELP_SYMBOL( STN \"mbmpPlay\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE9 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0x01 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x7A 0x01 0x00 0x01    // '????z???' \n\t0x00 0x00 0x00 0x00 0x7A 0x01 0x00 0x02    // '????z???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x2B 0x00 0x00 0x03    // '???+???' \n\t0x0F 0x00 0x00 0xFD 0xE7 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x80    // '????+??' \n\t0x00 0x00 0x02 0x00 0x80 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xE9 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x04 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x04 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x80 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0x83 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00 0x01 0x01 0x00 0xC0    // '???????' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5B, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x50 0x6C 0x61    // '???  Pla' \n\t0x79 0x69 0x6E 0x67 0x20 0x79 0x6F 0x75    // 'ying you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x0D    // 'r movie?' \n\t0x0A 0x54 0x6F 0x20 0x70 0x6C 0x61 0x79    // '?To play' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x0D 0x0A 0x31 0x09 0x55    // 'vie??1?U' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x46    // 'se the F' \n\t0x72 0x61 0x6D 0x65 0x20 0x61 0x6E 0x64    // 'rame and' \n\t0x20 0x53 0x63 0x65 0x6E 0x65 0x20 0x53    // ' Scene S' \n\t0x6C 0x69 0x64 0x65 0x72 0x73 0x20 0x74    // 'liders t' \n\t0x6F 0x20 0x72 0x65 0x77 0x69 0x6E 0x64    // 'o rewind' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ie to th' \n\t0x65 0x20 0x70 0x61 0x72 0x74 0x20 0x79    // 'e part y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x70 0x6C 0x61 0x79 0x2E    // 'to play.' \n\t0x0D 0x0A 0x01 0x0D 0x0A 0x01 0x0D 0x0A    // '????????' \n\t0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'To move ' \n\t0x77 0x69 0x74 0x68 0x69 0x6E 0x20 0x61    // 'within a' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x2C 0x20    // ' scene, ' \n\t0x75 0x73 0x65 0x20 0x74 0x68 0x65 0x20    // 'use the ' \n\t0x46 0x72 0x61 0x6D 0x65 0x20 0x53 0x6C    // 'Frame Sl' \n\t0x69 0x64 0x65 0x72 0x2E 0x0D 0x0A 0x54    // 'ider.??T' \n\t0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20 0x66    // 'o move f' \n\t0x72 0x6F 0x6D 0x20 0x73 0x63 0x65 0x6E    // 'rom scen' \n\t0x65 0x20 0x74 0x6F 0x20 0x73 0x63 0x65    // 'e to sce' \n\t0x6E 0x65 0x2C 0x20 0x75 0x73 0x65 0x20    // 'ne, use ' \n\t0x74 0x68 0x65 0x20 0x53 0x63 0x65 0x6E    // 'the Scen' \n\t0x65 0x20 0x53 0x6C 0x69 0x64 0x65 0x72    // 'e Slider' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69    // '.??2?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x50    // 'ck the P' \n\t0x6C 0x61 0x79 0x20 0x62 0x75 0x74 0x74    // 'lay butt' \n\t0x6F 0x6E 0x2D 0x01 0x0D 0x0A 0x4E 0x6F    // 'on-???No' \n\t0x74 0x65 0x3A 0x20 0x20 0x49 0x66 0x20    // 'te:  If ' \n\t0x79 0x6F 0x75 0x27 0x72 0x65 0x20 0x61    // 'you're a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x6C 0x61    // 't the la' \n\t0x73 0x74 0x20 0x66 0x72 0x61 0x6D 0x65    // 'st frame' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x20 0x63    // 'en you c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x50 0x6C 0x61    // 'lick Pla' \n\t0x79 0x2C 0x20 0x74 0x68 0x65 0x20 0x6D    // 'y, the m' \n\t0x6F 0x76 0x69 0x65 0x20 0x61 0x75 0x74    // 'ovie aut' \n\t0x6F 0x6D 0x61 0x74 0x69 0x63 0x61 0x6C    // 'omatical' \n\t0x6C 0x79 0x20 0x72 0x65 0x77 0x69 0x6E    // 'ly rewin' \n\t0x64 0x73 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ds to th' \n\t0x65 0x20 0x62 0x65 0x67 0x69 0x6E 0x6E    // 'e beginn' \n\t0x69 0x6E 0x67 0x2E                        // 'ing.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_82= ktpcHowToActors82\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_82, __HELP_NAME(\"Cut--Replace Path Tip\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_82, __HELP_NAME(\"Cut--Replace Path Tip\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTActors82\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_82, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors82\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors82\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_82, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x50 0x01 0x00 0x00    // '????P???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74                   // '??Cut' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_83= ktpcHowToActors83\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_83, __HELP_NAME(\"Tip:  Move Up or Down 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_83, __HELP_NAME(\"Tip:  Move Up or Down 3\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors83\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_23=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_83, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors83\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors83\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_23=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_83, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_23=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x01 0x00 0x00 0x00 0x64 0x00 0x00 0x01    // '????d???' \n\t0x00 0x00 0x00 0x00 0x66 0x00 0x00 0x01    // '????f???' \n\t0x01 0x00 0x00 0x00 0x97 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x03    // '????'???' \n\t0x0A 0x00 0x00 0xFD 0x64 0x00 0x00 0x03    // '???d???' \n\t0x00 0x00 0x00 0x00 0x66 0x00 0x00 0x80    // '????f??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x66 0x00 0x00 0x82    // '????f??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_23=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x4D 0x6F    // '???   Mo' \n\t0x76 0x69 0x6E 0x67 0x20 0x75 0x70 0x20    // 'ving up ' \n\t0x6F 0x72 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'or down ' \n\t0x61 0x6E 0x64 0x20 0x6E 0x65 0x61 0x72    // 'and near' \n\t0x20 0x6F 0x72 0x20 0x66 0x61 0x72 0x0D    // ' or far?' \n\t0x0A 0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65    // '?To move' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x75 0x70 0x20 0x6F    // 'ord up o' \n\t0x72 0x20 0x64 0x6F 0x77 0x6E 0x20 0x61    // 'r down a' \n\t0x6E 0x64 0x20 0x6E 0x65 0x61 0x72 0x20    // 'nd near ' \n\t0x6F 0x72 0x20 0x66 0x61 0x72 0x0D 0x0A    // 'or far??' \n\t0x95 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x55 0x70 0x20 0x6F 0x72 0x20 0x44 0x6F    // 'Up or Do' \n\t0x77 0x6E 0x20 0x41 0x72 0x72 0x6F 0x77    // 'wn Arrow' \n\t0x20 0x6B 0x65 0x79 0x20 0x61 0x73 0x20    // ' key as ' \n\t0x79 0x6F 0x75 0x20 0x64 0x72 0x61 0x67    // 'you drag' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_84= ktpcHowToActors84\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_84, __HELP_NAME(\"Tip:  Reposition one frame\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_84, __HELP_NAME(\"Tip:  Reposition one frame\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors84\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_84=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_84, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors84\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors84\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_84=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_84, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x33 0x01 0x00 0x00    // '????3???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_56=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_84, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_84=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_84, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x01    // '????O???' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x01    // '????Q???' \n\t0x01 0x00 0x00 0x00 0x6E 0x00 0x00 0x01    // '????n???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x4F 0x00 0x00 0x03    // '???O???' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x80    // '????Q??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x51 0x00 0x00 0x82    // '????Q??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_84=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_84, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x52 0x65    // '???   Re' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x69 0x6E 0x67 0x20 0x6F 0x6E 0x65 0x20    // 'ing one ' \n\t0x66 0x72 0x61 0x6D 0x65 0x0D 0x0A 0x54    // 'frame??T' \n\t0x6F 0x20 0x72 0x65 0x70 0x6F 0x73 0x69    // 'o reposi' \n\t0x74 0x69 0x6F 0x6E 0x20 0x6F 0x6E 0x6C    // 'tion onl' \n\t0x79 0x20 0x6F 0x6E 0x65 0x20 0x66 0x72    // 'y one fr' \n\t0x61 0x6D 0x65 0x20 0x6F 0x66 0x20 0x61    // 'ame of a' \n\t0x20 0x33 0x44 0x20 0x6F 0x62 0x6A 0x65    // ' 3D obje' \n\t0x63 0x74 0x27 0x73 0x20 0x70 0x61 0x74    // 'ct's pat' \n\t0x68 0x0D 0x0A 0x95 0x09 0x48 0x6F 0x6C    // 'h???Hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x43    // 'd down C' \n\t0x74 0x72 0x6C 0x20 0x61 0x73 0x20 0x79    // 'trl as y' \n\t0x6F 0x75 0x20 0x64 0x72 0x61 0x67 0x2E    // 'ou drag.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_85= ktpcHowToActors85\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_85, __HELP_NAME(\"Tip:  Reposition Entire Path\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_85, __HELP_NAME(\"Tip:  Reposition Entire Path\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors85\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_85, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors85\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors85\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_85, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x33 0x01 0x00 0x00    // '????3???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x40 0x00 0x00 0x01    // '????@???' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x01 0x00 0x00 0x00 0x60 0x00 0x00 0x01    // '????`???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x03    // '????#???' \n\t0x0A 0x00 0x00 0xFD 0x40 0x00 0x00 0x03    // '???@???' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x80    // '????B??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x42 0x00 0x00 0x82    // '????B??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x52 0x65    // '???   Re' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x65 0x6E 0x74 0x69 0x72 0x65 0x20 0x70    // 'entire p' \n\t0x61 0x74 0x68 0x0D 0x0A 0x54 0x6F 0x20    // 'ath??To ' \n\t0x72 0x65 0x70 0x6F 0x73 0x69 0x74 0x69    // 'repositi' \n\t0x6F 0x6E 0x20 0x74 0x68 0x65 0x20 0x65    // 'on the e' \n\t0x6E 0x74 0x69 0x72 0x65 0x20 0x70 0x61    // 'ntire pa' \n\t0x74 0x68 0x0D 0x0A 0x95 0x09 0x48 0x6F    // 'th???Ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x53 0x68 0x69 0x66 0x74 0x20 0x61 0x73    // 'Shift as' \n\t0x20 0x79 0x6F 0x75 0x20 0x64 0x72 0x61    // ' you dra' \n\t0x67 0x2E                                  // 'g.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_86= ktpcHowToActors86\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_86, __HELP_NAME(\"Def:  Turn on\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_86, __HELP_NAME(\"Def:  Turn on\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors86\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_86, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors86\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors86\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_86, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x01 0x00 0x00 0x00 0xA9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x20 0x00 0x00 0x03    // '??? ???' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x03    // '????P???' \n\t0x0A 0x00 0x00 0xFD 0x68 0x00 0x00 0x03    // '???h???' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x2F 0x00 0x00 0x80    // '????/??' \n\t0x00 0x00 0x03 0x00 0x50 0x00 0x00 0x80    // '????P??' \n\t0x00 0x00 0x02 0x00 0x7D 0x00 0x00 0x80    // '????}??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7D 0x00 0x00 0x82    // '????}??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8D, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x75 0x72 0x6E 0x20 0x6F    // '??Turn o' \n\t0x6E 0x0D 0x0A 0x54 0x6F 0x20 0x22 0x74    // 'n??To \"t' \n\t0x75 0x72 0x6E 0x20 0x6F 0x6E 0x22 0x20    // 'urn on\" ' \n\t0x74 0x68 0x65 0x20 0x62 0x75 0x74 0x74    // 'the butt' \n\t0x6F 0x6E 0x0D 0x0A 0x95 0x09 0x43 0x6C    // 'on???Cl' \n\t0x69 0x63 0x6B 0x20 0x69 0x74 0x2E 0x0D    // 'ick it.?' \n\t0x0A 0x57 0x68 0x65 0x6E 0x20 0x22 0x6F    // '?When \"o' \n\t0x6E 0x2C 0x22 0x20 0x79 0x6F 0x75 0x20    // 'n,\" you ' \n\t0x73 0x65 0x65 0x20 0x61 0x20 0x72 0x65    // 'see a re' \n\t0x64 0x20 0x6C 0x69 0x67 0x68 0x74 0x2E    // 'd light.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x22 0x74 0x75    // '??To \"tu' \n\t0x72 0x6E 0x20 0x6F 0x66 0x66 0x22 0x20    // 'rn off\" ' \n\t0x74 0x68 0x65 0x20 0x62 0x75 0x74 0x74    // 'the butt' \n\t0x6F 0x6E 0x0D 0x0A 0x95 0x09 0x43 0x6C    // 'on???Cl' \n\t0x69 0x63 0x6B 0x20 0x69 0x74 0x20 0x61    // 'ick it a' \n\t0x67 0x61 0x69 0x6E 0x2E 0x0D 0x0A 0x57    // 'gain.??W' \n\t0x68 0x65 0x6E 0x20 0x22 0x6F 0x66 0x66    // 'hen \"off' \n\t0x2C 0x22 0x20 0x79 0x6F 0x75 0x20 0x6E    // ',\" you n' \n\t0x6F 0x20 0x6C 0x6F 0x6E 0x67 0x65 0x72    // 'o longer' \n\t0x20 0x73 0x65 0x65 0x20 0x74 0x68 0x65    // ' see the' \n\t0x20 0x72 0x65 0x64 0x20 0x6C 0x69 0x67    // ' red lig' \n\t0x68 0x74 0x2E                             // 'ht.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_87= ktpcHowToActors87\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_87, __HELP_NAME(\"Key:  Up Down\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_87, __HELP_NAME(\"Key:  Up Down\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors87\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_87, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors87\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors87\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_87, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1020_bmp __HELP_SYMBOL( STN \"helppic1020_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x10 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x53 0x68 0x6F 0x72    // '??? Shor' \n\t0x74 0x63 0x75 0x74 0x20 0x6B 0x65 0x79    // 'tcut key' \n\t0x0D 0x0A 0x95 0x09 0x48 0x6F 0x6C 0x64    // '???Hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x46 0x39    // ' down F9' \n\t0x20 0x61 0x73 0x20 0x79 0x6F 0x75 0x20    // ' as you ' \n\t0x64 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'drag the' \n\t0x20 0x6D 0x6F 0x75 0x73 0x65 0x2E         // ' mouse.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_88= ktpcHowToActors88\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_88, __HELP_NAME(\"Tip:  Move Near Far \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_88, __HELP_NAME(\"Tip:  Move Near Far \")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors88\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_86=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_88, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors88\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors88\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_86=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_88, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xED 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_58=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_86, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_86=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_86, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x4A 0x00 0x00 0x01    // '????J???' \n\t0x01 0x00 0x00 0x00 0x85 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x03    // '????&???' \n\t0x0A 0x00 0x00 0xFD 0x48 0x00 0x00 0x03    // '???H???' \n\t0x00 0x00 0x00 0x00 0x4A 0x00 0x00 0x80    // '????J??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4A 0x00 0x00 0x82    // '????J??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_86=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_86, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4D 0x6F 0x76    // '???  Mov' \n\t0x69 0x6E 0x67 0x20 0x6E 0x65 0x61 0x72    // 'ing near' \n\t0x20 0x6F 0x72 0x20 0x66 0x61 0x72 0x20    // ' or far ' \n\t0x61 0x6E 0x64 0x20 0x75 0x70 0x20 0x6F    // 'and up o' \n\t0x72 0x20 0x64 0x6F 0x77 0x6E 0x0D 0x0A    // 'r down??' \n\t0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'To move ' \n\t0x6E 0x65 0x61 0x72 0x20 0x6F 0x72 0x20    // 'near or ' \n\t0x66 0x61 0x72 0x20 0x61 0x6E 0x64 0x20    // 'far and ' \n\t0x75 0x70 0x20 0x6F 0x72 0x20 0x64 0x6F    // 'up or do' \n\t0x77 0x6E 0x0D 0x0A 0x95 0x09 0x48 0x6F    // 'wn???Ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x74 0x68 0x65 0x20 0x44 0x6F 0x77 0x6E    // 'the Down' \n\t0x20 0x6F 0x72 0x20 0x55 0x70 0x20 0x41    // ' or Up A' \n\t0x72 0x72 0x6F 0x77 0x20 0x6B 0x65 0x79    // 'rrow key' \n\t0x20 0x61 0x73 0x20 0x79 0x6F 0x75 0x20    // ' as you ' \n\t0x64 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'drag the' \n\t0x20 0x6D 0x6F 0x75 0x73 0x65 0x2E         // ' mouse.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_89= ktpcHowToActors89\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_89, __HELP_NAME(\"Tip:  Change Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_89, __HELP_NAME(\"Tip:  Change Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors89\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_20=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_89, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors89\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors89\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_20=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_89, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x00 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorActions __HELP_SYMBOL( STN \"mbmpActorActions\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_20=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x54 0x00 0x00 0x01    // '????T???' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x01    // '????V???' \n\t0x01 0xF6 0x00 0x00 0x66 0x00 0x00 0x01    // '???f???' \n\t0x01 0x00 0x00 0x00 0xAF 0x00 0x00 0x01    // '???????' \n\t0x01 0xFB 0x00 0x00 0xDA 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x11 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x54 0x00 0x00 0x03    // '???T???' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x80    // '????V??' \n\t0x00 0x00 0x02 0x00 0xDC 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xDC 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x66 0x00 0x00 0xC0    // '????f??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_20=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x43 0x68    // '???   Ch' \n\t0x61 0x6E 0x67 0x69 0x6E 0x67 0x20 0x74    // 'anging t' \n\t0x68 0x65 0x20 0x61 0x63 0x74 0x69 0x6F    // 'he actio' \n\t0x6E 0x0D 0x0A 0x54 0x6F 0x20 0x63 0x68    // 'n??To ch' \n\t0x61 0x6E 0x67 0x65 0x20 0x74 0x68 0x65    // 'ange the' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x20    // ' action ' \n\t0x61 0x73 0x73 0x69 0x67 0x6E 0x65 0x64    // 'assigned' \n\t0x20 0x74 0x6F 0x20 0x61 0x6E 0x20 0x61    // ' to an a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x0D 0x0A    // 'D word??' \n\t0x31 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '1?Click ' \n\t0x41 0x63 0x74 0x69 0x6F 0x6E 0x73 0x2D    // 'Actions-' \n\t0x01 0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69    // '???2?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x61    // 'ck the a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x77    // 'D word w' \n\t0x68 0x6F 0x73 0x65 0x20 0x61 0x63 0x74    // 'hose act' \n\t0x69 0x6F 0x6E 0x20 0x79 0x6F 0x75 0x20    // 'ion you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x63 0x68 0x61 0x6E 0x67 0x65 0x2E 0x0D    // 'change.?' \n\t0x0A 0x33 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?3?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x69 0x6F 0x6E 0x20 0x79 0x6F 0x75 0x20    // 'ion you ' \n\t0x77 0x61 0x6E 0x74 0x2C 0x20 0x74 0x68    // 'want, th' \n\t0x65 0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'en click' \n\t0x20 0x4F 0x4B 0x2E 0x0D 0x0A 0x54 0x68    // ' OK.??Th' \n\t0x65 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'e action' \n\t0x20 0x69 0x73 0x20 0x63 0x68 0x61 0x6E    // ' is chan' \n\t0x67 0x65 0x64 0x20 0x66 0x72 0x6F 0x6D    // 'ged from' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x75 0x72    // ' the cur' \n\t0x72 0x65 0x6E 0x74 0x20 0x66 0x72 0x61    // 'rent fra' \n\t0x6D 0x65 0x20 0x66 0x6F 0x72 0x77 0x61    // 'me forwa' \n\t0x72 0x64 0x2E                             // 'rd.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8A= ktpcHowToActors8A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8A, __HELP_NAME(\"Blank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8A, __HELP_NAME(\"Blank\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTActors8A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToActors8A\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors8A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x65 0x00 0x00 0x00    // '????e???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8A, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x6C 0x61 0x6E 0x6B         // '??Blank' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8B= ktpcHowToActors8B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8B, __HELP_NAME(\"Def:  rewind\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8B, __HELP_NAME(\"Def:  rewind\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors8B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors8B\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors8B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x5D 0x01 0x00 0x00    // '????]???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_24=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xA9 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x42 0x00 0x00 0x80    // '????B??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x77 0x00 0x00 0x82    // '????w??' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0xC0    // '????B??' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0xC0    // '????E??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x03 0x03 0x72 0x65 0x77 0x69 0x6E 0x64    // '??rewind' \n\t0x0D 0x0A 0x95 0x09 0x54 0x6F 0x20 0x72    // '???To r' \n\t0x65 0x77 0x69 0x6E 0x64 0x20 0x79 0x6F    // 'ewind yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x2C 0x20 0x75 0x73 0x65 0x20 0x74 0x68    // ', use th' \n\t0x65 0x20 0x46 0x72 0x61 0x6D 0x65 0x20    // 'e Frame ' \n\t0x61 0x6E 0x64 0x20 0x53 0x63 0x65 0x6E    // 'and Scen' \n\t0x65 0x20 0x53 0x6C 0x69 0x64 0x65 0x72    // 'e Slider' \n\t0x73 0x2E 0x0D 0x0A 0x01 0x0D 0x0A 0x01    // 's.??????' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x6F 0x76    // '??To mov' \n\t0x65 0x20 0x77 0x69 0x74 0x68 0x69 0x6E    // 'e within' \n\t0x20 0x61 0x20 0x73 0x63 0x65 0x6E 0x65    // ' a scene' \n\t0x2C 0x20 0x75 0x73 0x65 0x20 0x74 0x68    // ', use th' \n\t0x65 0x20 0x46 0x72 0x61 0x6D 0x65 0x20    // 'e Frame ' \n\t0x53 0x6C 0x69 0x64 0x65 0x72 0x2E 0x0D    // 'Slider.?' \n\t0x0A 0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65    // '?To move' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x73 0x63    // ' from sc' \n\t0x65 0x6E 0x65 0x20 0x74 0x6F 0x20 0x73    // 'ene to s' \n\t0x63 0x65 0x6E 0x65 0x2C 0x20 0x75 0x73    // 'cene, us' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x53 0x63    // 'e the Sc' \n\t0x65 0x6E 0x65 0x20 0x53 0x6C 0x69 0x64    // 'ene Slid' \n\t0x65 0x72 0x2E                             // 'er.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8C= ktpcHowToActors8C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8C, __HELP_NAME(\"Def:  Play button\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8C, __HELP_NAME(\"Def:  Play button\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors8C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors8C\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors8C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4A 0x00 0x00 0x00    // '????J???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_57=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPlay __HELP_SYMBOL( STN \"mbmpPlay\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0D 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x6C 0x61 0x79 0x20 0x62    // '??Play b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x0D 0x0A 0x01    // 'utton???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8D= ktpcHowToActors8D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8D, __HELP_NAME(\"Tip:  Select Object Behind\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8D, __HELP_NAME(\"Tip:  Select Object Behind\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors8D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors8D\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors8D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x23 0x01 0x00 0x00    // '????#???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x01 0x00 0x00 0x00 0x4A 0x00 0x00 0x01    // '????J???' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x01    // '????L???' \n\t0x01 0x00 0x00 0x00 0xA8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x03    // '????(???' \n\t0x0A 0x00 0x00 0xFD 0x4A 0x00 0x00 0x03    // '???J???' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x80    // '????L??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4C 0x00 0x00 0x82    // '????L??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x53 0x65    // '???   Se' \n\t0x6C 0x65 0x63 0x74 0x69 0x6E 0x67 0x20    // 'lecting ' \n\t0x61 0x6E 0x20 0x6F 0x62 0x6A 0x65 0x63    // 'an objec' \n\t0x74 0x20 0x62 0x65 0x68 0x69 0x6E 0x64    // 't behind' \n\t0x20 0x61 0x6E 0x6F 0x74 0x68 0x65 0x72    // ' another' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x73 0x65 0x6C    // '??To sel' \n\t0x65 0x63 0x74 0x20 0x61 0x6E 0x20 0x6F    // 'ect an o' \n\t0x62 0x6A 0x65 0x63 0x74 0x20 0x62 0x65    // 'bject be' \n\t0x68 0x69 0x6E 0x64 0x20 0x61 0x6E 0x6F    // 'hind ano' \n\t0x74 0x68 0x65 0x72 0x0D 0x0A 0x95 0x09    // 'ther???' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x6F 0x62 0x6A 0x65 0x63 0x74    // 'e object' \n\t0x27 0x73 0x20 0x70 0x69 0x63 0x74 0x75    // ''s pictu' \n\t0x72 0x65 0x20 0x69 0x6E 0x20 0x74 0x68    // 're in th' \n\t0x65 0x20 0x41 0x63 0x74 0x6F 0x72 0x20    // 'e Actor ' \n\t0x6F 0x72 0x20 0x50 0x72 0x6F 0x70 0x20    // 'or Prop ' \n\t0x4C 0x69 0x73 0x74 0x2D 0x2D 0x6C 0x6F    // 'List--lo' \n\t0x63 0x61 0x74 0x65 0x64 0x20 0x6F 0x6E    // 'cated on' \n\t0x20 0x65 0x69 0x74 0x68 0x65 0x72 0x20    // ' either ' \n\t0x73 0x69 0x64 0x65 0x20 0x6F 0x66 0x20    // 'side of ' \n\t0x74 0x68 0x65 0x20 0x73 0x74 0x61 0x67    // 'the stag' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8E= ktpcHowToActors8E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8E, __HELP_NAME(\"Tip:  Select Object Out View\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8E, __HELP_NAME(\"Tip:  Select Object Out View\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors8E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_56=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors8E\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors8E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_56=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x49 0x01 0x00 0x00    // '????I???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_38=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_56, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_56=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_56, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x01 0x00 0x00 0x00 0x44 0x00 0x00 0x01    // '????D???' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x01    // '????F???' \n\t0x01 0x00 0x00 0x00 0x2D 0x01 0x00 0x01    // '????-???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x03    // '????%???' \n\t0x0A 0x00 0x00 0xFD 0x44 0x00 0x00 0x03    // '???D???' \n\t0x00 0x00 0x00 0x00 0xA4 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xC2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xC6 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x2D 0x01 0x00 0x03    // '???-???' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x80    // '????F??' \n\t0x00 0x00 0x02 0x00 0xA4 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xC4 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_56=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_56, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x53 0x65    // '???   Se' \n\t0x6C 0x65 0x63 0x74 0x69 0x6E 0x67 0x20    // 'lecting ' \n\t0x61 0x6E 0x20 0x6F 0x62 0x6A 0x65 0x63    // 'an objec' \n\t0x74 0x20 0x6F 0x75 0x74 0x20 0x6F 0x66    // 't out of' \n\t0x20 0x76 0x69 0x65 0x77 0x0D 0x0A 0x54    // ' view??T' \n\t0x6F 0x20 0x73 0x65 0x6C 0x65 0x63 0x74    // 'o select' \n\t0x20 0x61 0x6E 0x20 0x6F 0x62 0x6A 0x65    // ' an obje' \n\t0x63 0x74 0x20 0x6F 0x75 0x74 0x20 0x6F    // 'ct out o' \n\t0x66 0x20 0x76 0x69 0x65 0x77 0x0D 0x0A    // 'f view??' \n\t0x31 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '1?Click ' \n\t0x74 0x68 0x65 0x20 0x6F 0x62 0x6A 0x65    // 'the obje' \n\t0x63 0x74 0x27 0x73 0x20 0x70 0x69 0x63    // 'ct's pic' \n\t0x74 0x75 0x72 0x65 0x20 0x69 0x6E 0x20    // 'ture in ' \n\t0x74 0x68 0x65 0x20 0x41 0x63 0x74 0x6F    // 'the Acto' \n\t0x72 0x20 0x6F 0x72 0x20 0x50 0x72 0x6F    // 'r or Pro' \n\t0x70 0x20 0x4C 0x69 0x73 0x74 0x2D 0x2D    // 'p List--' \n\t0x6C 0x6F 0x63 0x61 0x74 0x65 0x64 0x20    // 'located ' \n\t0x6F 0x6E 0x20 0x65 0x69 0x74 0x68 0x65    // 'on eithe' \n\t0x72 0x20 0x73 0x69 0x64 0x65 0x20 0x6F    // 'r side o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x73 0x74    // 'f the st' \n\t0x61 0x67 0x65 0x2E 0x0D 0x0A 0x54 0x68    // 'age.??Th' \n\t0x65 0x20 0x6F 0x62 0x6A 0x65 0x63 0x74    // 'e object' \n\t0x20 0x72 0x65 0x61 0x70 0x70 0x65 0x61    // ' reappea' \n\t0x72 0x73 0x20 0x6F 0x6E 0x2D 0x73 0x74    // 'rs on-st' \n\t0x61 0x67 0x65 0x2E 0x0D 0x0A 0x32 0x09    // 'age.??2?' \n\t0x54 0x6F 0x20 0x70 0x6F 0x73 0x69 0x74    // 'To posit' \n\t0x69 0x6F 0x6E 0x20 0x74 0x68 0x65 0x20    // 'ion the ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x2C 0x20    // 'object, ' \n\t0x6D 0x6F 0x76 0x65 0x20 0x74 0x68 0x65    // 'move the' \n\t0x20 0x6D 0x6F 0x75 0x73 0x65 0x20 0x75    // ' mouse u' \n\t0x6E 0x74 0x69 0x6C 0x20 0x79 0x6F 0x75    // 'ntil you' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x74 0x68    // ' find th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x70 0x75 0x74 0x20    // ' to put ' \n\t0x74 0x68 0x65 0x20 0x6F 0x62 0x6A 0x65    // 'the obje' \n\t0x63 0x74 0x2C 0x20 0x74 0x68 0x65 0x6E    // 'ct, then' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x2E         // ' click.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8F= ktpcHowToActors8F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8F, __HELP_NAME(\"Tip:  Shrink Grow Over Time\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8F, __HELP_NAME(\"Tip:  Shrink Grow Over Time\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors8F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_81=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors8F\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors8F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_81=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x37 0x01 0x00 0x00    // '????7???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_81, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorActions __HELP_SYMBOL( STN \"mbmpActorActions\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_81=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_81, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x4A 0x00 0x00 0x01    // '????J???' \n\t0x01 0x00 0x00 0x00 0x98 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xA8 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x9D 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x03    // '????#???' \n\t0x0A 0x00 0x00 0xFD 0x48 0x00 0x00 0x03    // '???H???' \n\t0x00 0x00 0x00 0x00 0x4A 0x00 0x00 0x80    // '????J??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x22 0x01 0x00 0x82    // '????\"??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0xA8 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_81=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_81, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x68 0x72    // '???  Shr' \n\t0x69 0x6E 0x6B 0x69 0x6E 0x67 0x20 0x6F    // 'inking o' \n\t0x72 0x20 0x67 0x72 0x6F 0x77 0x69 0x6E    // 'r growin' \n\t0x67 0x20 0x6F 0x76 0x65 0x72 0x20 0x74    // 'g over t' \n\t0x69 0x6D 0x65 0x0D 0x0A 0x54 0x6F 0x20    // 'ime??To ' \n\t0x73 0x68 0x72 0x69 0x6E 0x6B 0x20 0x6F    // 'shrink o' \n\t0x72 0x20 0x67 0x72 0x6F 0x77 0x20 0x61    // 'r grow a' \n\t0x6E 0x20 0x6F 0x62 0x6A 0x65 0x63 0x74    // 'n object' \n\t0x20 0x6F 0x76 0x65 0x72 0x20 0x74 0x69    // ' over ti' \n\t0x6D 0x65 0x0D 0x0A 0x31 0x09 0x47 0x6F    // 'me??1?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x73 0x68    // 'nt to sh' \n\t0x72 0x69 0x6E 0x6B 0x20 0x6F 0x72 0x20    // 'rink or ' \n\t0x67 0x72 0x6F 0x77 0x20 0x74 0x68 0x65    // 'grow the' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x2E    // ' object.' \n\t0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69 0x63    // '??2?Clic' \n\t0x6B 0x20 0x41 0x63 0x74 0x69 0x6F 0x6E    // 'k Action' \n\t0x73 0x2D 0x01 0x0D 0x0A 0x33 0x09 0x43    // 's-???3?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x73 0x68 0x72    // 't to shr' \n\t0x69 0x6E 0x6B 0x20 0x6F 0x72 0x20 0x67    // 'ink or g' \n\t0x72 0x6F 0x77 0x20 0x6F 0x76 0x65 0x72    // 'row over' \n\t0x20 0x74 0x69 0x6D 0x65 0x2E 0x0D 0x0A    // ' time.??' \n\t0x34 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '4?Click ' \n\t0x22 0x53 0x68 0x72 0x69 0x6E 0x6B 0x22    // '\"Shrink\"' \n\t0x20 0x6F 0x72 0x20 0x22 0x47 0x72 0x6F    // ' or \"Gro' \n\t0x77 0x2C 0x22 0x20 0x74 0x68 0x65 0x6E    // 'w,\" then' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x4F    // ' click O' \n\t0x4B 0x2E 0x0D 0x0A 0x35 0x09 0x4D 0x6F    // 'K.??5?Mo' \n\t0x76 0x65 0x20 0x74 0x68 0x65 0x20 0x6D    // 've the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x63 0x75 0x72    // 'ouse cur' \n\t0x73 0x6F 0x72 0x20 0x6F 0x76 0x65 0x72    // 'sor over' \n\t0x20 0x74 0x68 0x65 0x20 0x33 0x44 0x20    // ' the 3D ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x2C 0x20    // 'object, ' \n\t0x74 0x68 0x65 0x6E 0x20 0x68 0x6F 0x6C    // 'then hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x74    // 'd down t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x20    // ' button ' \n\t0x61 0x6E 0x64 0x20 0x77 0x61 0x69 0x74    // 'and wait' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x74    // ' until t' \n\t0x68 0x65 0x20 0x6F 0x62 0x6A 0x65 0x63    // 'he objec' \n\t0x74 0x20 0x69 0x73 0x20 0x74 0x68 0x65    // 't is the' \n\t0x20 0x73 0x69 0x7A 0x65 0x20 0x79 0x6F    // ' size yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x2E         // 'u want.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_90= ktpcHowToActors90\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_90, __HELP_NAME(\"Tip:  Squash Stretch Over Time\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_90, __HELP_NAME(\"Tip:  Squash Stretch Over Time\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors90\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_90, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors90\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors90\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_90, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x37 0x01 0x00 0x00    // '????7???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_17=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorActions __HELP_SYMBOL( STN \"mbmpActorActions\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x01    // '????O???' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x01    // '????Q???' \n\t0x01 0x00 0x00 0x00 0xA2 0x00 0x00 0x01    // '???????' \n\t0x01 0xFB 0x00 0x00 0xB2 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xAD 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x03    // '????'???' \n\t0x0A 0x00 0x00 0xFD 0x4F 0x00 0x00 0x03    // '???O???' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x80    // '????Q??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x32 0x01 0x00 0x82    // '????2??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0xB2 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x53 0x71    // '???   Sq' \n\t0x75 0x61 0x73 0x68 0x69 0x6E 0x67 0x20    // 'uashing ' \n\t0x6F 0x72 0x20 0x73 0x74 0x72 0x65 0x74    // 'or stret' \n\t0x63 0x68 0x69 0x6E 0x67 0x20 0x6F 0x76    // 'ching ov' \n\t0x65 0x72 0x20 0x74 0x69 0x6D 0x65 0x0D    // 'er time?' \n\t0x0A 0x54 0x6F 0x20 0x73 0x71 0x75 0x61    // '?To squa' \n\t0x73 0x68 0x20 0x6F 0x72 0x20 0x73 0x74    // 'sh or st' \n\t0x72 0x65 0x74 0x63 0x68 0x20 0x61 0x6E    // 'retch an' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x20    // ' object ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x69 0x6D    // 'over tim' \n\t0x65 0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20    // 'e??1?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x73 0x71 0x75    // 't to squ' \n\t0x61 0x73 0x68 0x20 0x6F 0x72 0x20 0x73    // 'ash or s' \n\t0x74 0x72 0x65 0x74 0x63 0x68 0x20 0x74    // 'tretch t' \n\t0x68 0x65 0x20 0x6F 0x62 0x6A 0x65 0x63    // 'he objec' \n\t0x74 0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C    // 't.??2?Cl' \n\t0x69 0x63 0x6B 0x20 0x41 0x63 0x74 0x69    // 'ick Acti' \n\t0x6F 0x6E 0x73 0x2D 0x01 0x0D 0x0A 0x33    // 'ons-???3' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x61 0x63 0x74 0x6F 0x72    // 'he actor' \n\t0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C 0x20    // ', prop, ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x77 0x6F    // 'or 3D wo' \n\t0x72 0x64 0x20 0x79 0x6F 0x75 0x20 0x77    // 'rd you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x73    // 'ant to s' \n\t0x71 0x75 0x61 0x73 0x68 0x20 0x6F 0x72    // 'quash or' \n\t0x20 0x73 0x74 0x72 0x65 0x74 0x63 0x68    // ' stretch' \n\t0x20 0x6F 0x76 0x65 0x72 0x20 0x74 0x69    // ' over ti' \n\t0x6D 0x65 0x2E 0x0D 0x0A 0x34 0x09 0x43    // 'me.??4?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x22 0x53 0x71    // 'lick \"Sq' \n\t0x75 0x61 0x73 0x68 0x22 0x20 0x6F 0x72    // 'uash\" or' \n\t0x20 0x22 0x53 0x74 0x72 0x65 0x74 0x63    // ' \"Stretc' \n\t0x68 0x2C 0x22 0x20 0x74 0x68 0x65 0x6E    // 'h,\" then' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x4F    // ' click O' \n\t0x4B 0x2E 0x0D 0x0A 0x35 0x09 0x4D 0x6F    // 'K.??5?Mo' \n\t0x76 0x65 0x20 0x74 0x68 0x65 0x20 0x6D    // 've the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x63 0x75 0x72    // 'ouse cur' \n\t0x73 0x6F 0x72 0x20 0x6F 0x76 0x65 0x72    // 'sor over' \n\t0x20 0x74 0x68 0x65 0x20 0x33 0x44 0x20    // ' the 3D ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x2C 0x20    // 'object, ' \n\t0x74 0x68 0x65 0x6E 0x20 0x68 0x6F 0x6C    // 'then hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x74    // 'd down t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x20    // ' button ' \n\t0x61 0x6E 0x64 0x20 0x77 0x61 0x69 0x74    // 'and wait' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x74    // ' until t' \n\t0x68 0x65 0x20 0x6F 0x62 0x6A 0x65 0x63    // 'he objec' \n\t0x74 0x20 0x69 0x73 0x20 0x74 0x68 0x65    // 't is the' \n\t0x20 0x73 0x69 0x7A 0x65 0x20 0x79 0x6F    // ' size yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x2E         // 'u want.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_91= ktpcHowToActors91\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_91, __HELP_NAME(\"CO 2)  Click Resume Last\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_91, __HELP_NAME(\"CO 2)  Click Resume Last\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidActorsContinue kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTActors91\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_91, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToActors91\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidActorsContinue\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTActors91\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_91, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x20 0x52 0x65 0x73 0x75 0x6D 0x65 0x20    // ' Resume ' \n\t0x4C 0x61 0x73 0x74 0x20 0x41 0x63 0x74    // 'Last Act' \n\t0x69 0x6F 0x6E 0x2E                        // 'ion.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_92= ktpcHowToActors92\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_92, __HELP_NAME(\"Tip:  Path through ground\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_92, __HELP_NAME(\"Tip:  Path through ground\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors92\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_85=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_92, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors92\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors92\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_85=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_92, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x2C 0x01 0x00 0x00    // '????,???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_85, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsGround __HELP_SYMBOL( STN \"mbmpActorsGround\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_85=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_85, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x01 0x00 0x00 0x00 0x63 0x00 0x00 0x01    // '????c???' \n\t0x00 0x00 0x00 0x00 0x65 0x00 0x00 0x01    // '????e???' \n\t0x01 0xF6 0x00 0x00 0x90 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x1D 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x03    // '????&???' \n\t0x0A 0x00 0x00 0xFD 0x63 0x00 0x00 0x03    // '???c???' \n\t0x00 0x00 0x00 0x00 0x65 0x00 0x00 0x80    // '????e??' \n\t0x00 0x00 0x02 0x00 0x93 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xC9 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xC9 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x90 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_85=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_85, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4D 0x6F 0x76    // '???  Mov' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x72 0x6F    // 'ing thro' \n\t0x75 0x67 0x68 0x20 0x74 0x68 0x65 0x20    // 'ugh the ' \n\t0x67 0x72 0x6F 0x75 0x6E 0x64 0x20 0x73    // 'ground s' \n\t0x75 0x72 0x66 0x61 0x63 0x65 0x0D 0x0A    // 'urface??' \n\t0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'To move ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C 0x20    // ', prop, ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x77 0x6F    // 'or 3D wo' \n\t0x72 0x64 0x20 0x74 0x68 0x72 0x6F 0x75    // 'rd throu' \n\t0x67 0x68 0x20 0x74 0x68 0x65 0x20 0x67    // 'gh the g' \n\t0x72 0x6F 0x75 0x6E 0x64 0x20 0x73 0x75    // 'round su' \n\t0x72 0x66 0x61 0x63 0x65 0x0D 0x0A 0x31    // 'rface??1' \n\t0x09 0x22 0x54 0x75 0x72 0x6E 0x20 0x6F    // '?\"Turn o' \n\t0x6E 0x22 0x20 0x74 0x68 0x65 0x20 0x46    // 'n\" the F' \n\t0x61 0x6C 0x6C 0x20 0x54 0x68 0x72 0x6F    // 'all Thro' \n\t0x75 0x67 0x68 0x20 0x47 0x72 0x6F 0x75    // 'ugh Grou' \n\t0x6E 0x64 0x20 0x62 0x75 0x74 0x74 0x6F    // 'nd butto' \n\t0x6E 0x2D 0x01 0x0D 0x0A 0x57 0x68 0x65    // 'n-???Whe' \n\t0x6E 0x20 0x22 0x6F 0x6E 0x2C 0x22 0x20    // 'n \"on,\" ' \n\t0x74 0x68 0x65 0x20 0x62 0x75 0x74 0x74    // 'the butt' \n\t0x6F 0x6E 0x20 0x69 0x73 0x20 0x70 0x75    // 'on is pu' \n\t0x73 0x68 0x65 0x64 0x20 0x69 0x6E 0x20    // 'shed in ' \n\t0x61 0x6E 0x64 0x20 0x69 0x74 0x20 0x6C    // 'and it l' \n\t0x69 0x67 0x68 0x74 0x73 0x20 0x75 0x70    // 'ights up' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x48 0x6F 0x6C    // '.??2?Hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x74    // 'd down t' \n\t0x68 0x65 0x20 0x44 0x6F 0x77 0x6E 0x20    // 'he Down ' \n\t0x41 0x72 0x72 0x6F 0x77 0x20 0x6B 0x65    // 'Arrow ke' \n\t0x79 0x20 0x61 0x73 0x20 0x79 0x6F 0x75    // 'y as you' \n\t0x20 0x64 0x72 0x61 0x67 0x20 0x74 0x68    // ' drag th' \n\t0x65 0x20 0x33 0x44 0x20 0x6F 0x62 0x6A    // 'e 3D obj' \n\t0x65 0x63 0x74 0x20 0x74 0x68 0x72 0x6F    // 'ect thro' \n\t0x75 0x67 0x68 0x20 0x74 0x68 0x65 0x20    // 'ugh the ' \n\t0x67 0x72 0x6F 0x75 0x6E 0x64 0x20 0x73    // 'ground s' \n\t0x75 0x72 0x66 0x61 0x63 0x65 0x2E         // 'urface.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_93= ktpcHowToActors93\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_93, __HELP_NAME(\"Def:  Go to the place\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_93, __HELP_NAME(\"Def:  Go to the place\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors93\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_50=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_93, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors93\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors93\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_50=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_93, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x36 0x01 0x00 0x00    // '????6???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_23=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_50=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4D 0x01 0x00 0x01    // '????M???' \n\t0x00 0x00 0x00 0x00 0x5C 0x00 0x00 0x02    // '????\\???' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x02    // '????b???' \n\t0x00 0x00 0x00 0x00 0xF2 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xF8 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00 0xB9 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xD4 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x80    // '????Y??' \n\t0x00 0x00 0x03 0x00 0xB9 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xEF 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xF2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0xC0    // '????Y??' \n\t0x02 0x00 0x00 0x00 0xEF 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_50=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x6F 0x20 0x74 0x6F 0x20    // '??Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x6F    // 'e??To mo' \n\t0x76 0x65 0x20 0x66 0x6F 0x72 0x77 0x61    // 've forwa' \n\t0x72 0x64 0x73 0x20 0x6F 0x72 0x20 0x62    // 'rds or b' \n\t0x61 0x63 0x6B 0x77 0x61 0x72 0x64 0x73    // 'ackwards' \n\t0x20 0x77 0x69 0x74 0x68 0x69 0x6E 0x20    // ' within ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65 0x0D    // 'a scene?' \n\t0x0A 0x95 0x09 0x55 0x73 0x65 0x20 0x74    // '??Use t' \n\t0x68 0x65 0x20 0x46 0x72 0x61 0x6D 0x65    // 'he Frame' \n\t0x20 0x53 0x6C 0x69 0x64 0x65 0x72 0x2E    // ' Slider.' \n\t0x20 0x0D 0x0A 0x01 0x0D 0x0A 0x43 0x6C    // ' ?????Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x46 0x69 0x72 0x73 0x74 0x2C 0x20 0x50    // 'First, P' \n\t0x72 0x65 0x76 0x69 0x6F 0x75 0x73 0x2C    // 'revious,' \n\t0x20 0x4E 0x65 0x78 0x74 0x2C 0x20 0x6F    // ' Next, o' \n\t0x72 0x20 0x4C 0x61 0x73 0x74 0x20 0x41    // 'r Last A' \n\t0x72 0x72 0x6F 0x77 0x20 0x6F 0x72 0x20    // 'rrow or ' \n\t0x64 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'drag the' \n\t0x20 0x73 0x6C 0x69 0x64 0x65 0x72 0x20    // ' slider ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x6D    // 'in the m' \n\t0x69 0x64 0x64 0x6C 0x65 0x20 0x6F 0x66    // 'iddle of' \n\t0x20 0x74 0x68 0x65 0x20 0x62 0x61 0x72    // ' the bar' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x6F    // '.??To mo' \n\t0x76 0x65 0x20 0x66 0x72 0x6F 0x6D 0x20    // 've from ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x74 0x6F    // 'scene to' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A    // ' scene??' \n\t0x95 0x09 0x55 0x73 0x65 0x20 0x74 0x68    // '?Use th' \n\t0x65 0x20 0x53 0x63 0x65 0x6E 0x65 0x20    // 'e Scene ' \n\t0x53 0x6C 0x69 0x64 0x65 0x72 0x2E 0x0D    // 'Slider.?' \n\t0x0A 0x01 0x0D 0x0A 0x43 0x6C 0x69 0x63    // '????Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x46 0x69    // 'k the Fi' \n\t0x72 0x73 0x74 0x2C 0x20 0x50 0x72 0x65    // 'rst, Pre' \n\t0x76 0x69 0x6F 0x75 0x73 0x2C 0x20 0x4E    // 'vious, N' \n\t0x65 0x78 0x74 0x2C 0x20 0x6F 0x72 0x20    // 'ext, or ' \n\t0x4C 0x61 0x73 0x74 0x20 0x41 0x72 0x72    // 'Last Arr' \n\t0x6F 0x77 0x20 0x6F 0x72 0x20 0x64 0x72    // 'ow or dr' \n\t0x61 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ag the s' \n\t0x6C 0x69 0x64 0x65 0x72 0x20 0x69 0x6E    // 'lider in' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x69 0x64    // ' the mid' \n\t0x64 0x6C 0x65 0x20 0x6F 0x66 0x20 0x74    // 'dle of t' \n\t0x68 0x65 0x20 0x62 0x61 0x72 0x2E         // 'he bar.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_94= ktpcHowToActors94\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_94, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_94, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTActors94\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_64=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_94, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToActors94\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTActors94\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_64=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_94, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_64=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_64, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x03    // '????y???' \n\t0x0A 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x79 0x00 0x00 0x80    // '????y??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x79 0x00 0x00 0x82    // '????y??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_64=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_64, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x0D 0x0A    // '??Drag??' \n\t0x31 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '1?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x73 0x20    // 'tton as ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'you move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x57    // 'se.??2?W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x76 0x65 0x20 0x66 0x69 0x6E 0x69 0x73    // 've finis' \n\t0x68 0x65 0x64 0x20 0x64 0x72 0x61 0x67    // 'hed drag' \n\t0x67 0x69 0x6E 0x67 0x2C 0x20 0x6C 0x65    // 'ging, le' \n\t0x74 0x20 0x67 0x6F 0x20 0x6F 0x66 0x20    // 't go of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x2E 0x0D 0x0A 0x54 0x69 0x70 0x20 0x66    // '.??Tip f' \n\t0x72 0x6F 0x6D 0x20 0x4D 0x63 0x5A 0x65    // 'rom McZe' \n\t0x65 0x3A 0x20 0x20 0x59 0x6F 0x75 0x27    // 'e:  You'' \n\t0x6C 0x6C 0x20 0x67 0x65 0x74 0x20 0x74    // 'll get t' \n\t0x68 0x65 0x20 0x62 0x65 0x73 0x74 0x20    // 'he best ' \n\t0x72 0x65 0x73 0x75 0x6C 0x74 0x73 0x20    // 'results ' \n\t0x69 0x66 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'if you m' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x73 0x6C    // 'mouse sl' \n\t0x6F 0x77 0x6C 0x79 0x20 0x61 0x73 0x20    // 'owly as ' \n\t0x79 0x6F 0x75 0x20 0x64 0x72 0x61 0x67    // 'you drag' \n\t0x2E 0x20                                  // '. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/htalerts.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= No_Scene\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"No Scene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"No Scene\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTAlert00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"No_Scene\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTAlert00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneChoices __HELP_SYMBOL( STN \"mbmpSceneChoices\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x40 0x00 0x00 0x01    // '????@???' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x01 0x00 0x00 0x00 0x86 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x9C 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x9D 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x40 0x00 0x00 0x03    // '???@???' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x80    // '????B??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x9C 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x21 0x20    // '??Oops! ' \n\t0x20 0x42 0x65 0x66 0x6F 0x72 0x65 0x20    // ' Before ' \n\t0x79 0x6F 0x75 0x20 0x63 0x61 0x6E 0x20    // 'you can ' \n\t0x64 0x6F 0x20 0x61 0x6E 0x79 0x74 0x68    // 'do anyth' \n\t0x69 0x6E 0x67 0x20 0x65 0x6C 0x73 0x65    // 'ing else' \n\t0x2C 0x20 0x79 0x6F 0x75 0x20 0x6E 0x65    // ', you ne' \n\t0x65 0x64 0x20 0x74 0x6F 0x20 0x61 0x64    // 'ed to ad' \n\t0x64 0x20 0x61 0x20 0x73 0x63 0x65 0x6E    // 'd a scen' \n\t0x65 0x2E 0x0D 0x0A 0x31 0x09 0x49 0x66    // 'e.??1?If' \n\t0x20 0x79 0x6F 0x75 0x20 0x73 0x65 0x65    // ' you see' \n\t0x20 0x74 0x68 0x65 0x20 0x53 0x63 0x65    // ' the Sce' \n\t0x6E 0x65 0x73 0x20 0x62 0x75 0x74 0x74    // 'nes butt' \n\t0x6F 0x6E 0x20 0x61 0x74 0x20 0x74 0x68    // 'on at th' \n\t0x65 0x20 0x74 0x6F 0x70 0x20 0x6F 0x66    // 'e top of' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x63 0x72    // ' the scr' \n\t0x65 0x65 0x6E 0x2C 0x20 0x63 0x6C 0x69    // 'een, cli' \n\t0x63 0x6B 0x20 0x69 0x74 0x2E 0x0D 0x0A    // 'ck it.??' \n\t0x32 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '2?Click ' \n\t0x53 0x63 0x65 0x6E 0x65 0x20 0x43 0x68    // 'Scene Ch' \n\t0x6F 0x69 0x63 0x65 0x73 0x2D 0x01         // 'oices-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= No_Actor\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"No Actor\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"No Actor\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTAlert01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"No_Actor\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTAlert01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsBrowser __HELP_SYMBOL( STN \"mbmpActorsBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsPropBrowser __HELP_SYMBOL( STN \"mbmpActorsPropBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsSpletters __HELP_SYMBOL( STN \"mbmpActorsSpletters\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x19 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x50 0x00 0x00 0x01    // '????P???' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0x01    // '????R???' \n\t0x01 0x00 0x00 0x00 0xA0 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0xA2 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xAA 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0xAF 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB1 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0xC1 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xC4 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0xD3 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xD6 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0xE9 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xEA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x50 0x00 0x00 0x03    // '???P???' \n\t0x00 0x00 0x00 0x00 0x63 0x00 0x00 0x03    // '????c???' \n\t0x0F 0x00 0x00 0xFD 0x9C 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0xF7 0xFF 0x00 0x00 0x52 0x00 0x00 0x80    // '??R??' \n\t0x00 0x00 0x02 0x00 0xB1 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xC1 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xD3 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0xE9 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x21 0x20    // '??Oops! ' \n\t0x20 0x42 0x65 0x66 0x6F 0x72 0x65 0x20    // ' Before ' \n\t0x79 0x6F 0x75 0x20 0x63 0x61 0x6E 0x20    // 'you can ' \n\t0x75 0x73 0x65 0x20 0x74 0x68 0x69 0x73    // 'use this' \n\t0x20 0x74 0x6F 0x6F 0x6C 0x2C 0x20 0x79    // ' tool, y' \n\t0x6F 0x75 0x20 0x6E 0x65 0x65 0x64 0x20    // 'ou need ' \n\t0x74 0x6F 0x20 0x61 0x64 0x64 0x20 0x61    // 'to add a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x2C    // 'n actor,' \n\t0x20 0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F    // ' prop, o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x2E 0x0D 0x0A 0x31 0x09 0x49 0x66    // 'd.??1?If' \n\t0x20 0x79 0x6F 0x75 0x20 0x73 0x65 0x65    // ' you see' \n\t0x20 0x74 0x68 0x65 0x20 0x41 0x63 0x74    // ' the Act' \n\t0x6F 0x72 0x73 0x20 0x26 0x20 0x50 0x72    // 'ors & Pr' \n\t0x6F 0x70 0x73 0x20 0x62 0x75 0x74 0x74    // 'ops butt' \n\t0x6F 0x6E 0x20 0x61 0x74 0x20 0x74 0x68    // 'on at th' \n\t0x65 0x20 0x74 0x6F 0x70 0x20 0x6F 0x66    // 'e top of' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x63 0x72    // ' the scr' \n\t0x65 0x65 0x6E 0x2C 0x20 0x63 0x6C 0x69    // 'een, cli' \n\t0x63 0x6B 0x20 0x69 0x74 0x2E 0x0D 0x0A    // 'ck it.??' \n\t0x32 0x09 0x54 0x6F 0x09 0x09 0x09 0x09    // '2?To????' \n\t0x09 0x09 0x09 0x09 0x43 0x6C 0x69 0x63    // '????Clic' \n\t0x6B 0x0D 0x0A 0x41 0x64 0x64 0x20 0x61    // 'k??Add a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x09    // 'n actor?' \n\t0x09 0x09 0x09 0x01 0x0D 0x0A 0x41 0x64    // '??????Ad' \n\t0x64 0x20 0x61 0x20 0x70 0x72 0x6F 0x70    // 'd a prop' \n\t0x09 0x09 0x09 0x09 0x09 0x01 0x0D 0x0A    // '????????' \n\t0x43 0x72 0x65 0x61 0x74 0x65 0x20 0x61    // 'Create a' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x09 0x09 0x09 0x01                        // '????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= No_Word_Box\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"No Word Box\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"No Word Box\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTAlert02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"No_Word_Box\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTAlert02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsCreate __HELP_SYMBOL( STN \"mbmpTextsCreate\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x40 0x00 0x00 0x01    // '????@???' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x01 0x00 0x00 0x00 0x85 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x9A 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x9B 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x40 0x00 0x00 0x03    // '???@???' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x80    // '????B??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x9A 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6F 0x70 0x73 0x21 0x20    // '??Oops! ' \n\t0x20 0x42 0x65 0x66 0x6F 0x72 0x65 0x20    // ' Before ' \n\t0x79 0x6F 0x75 0x20 0x63 0x61 0x6E 0x20    // 'you can ' \n\t0x75 0x73 0x65 0x20 0x74 0x68 0x69 0x73    // 'use this' \n\t0x20 0x74 0x6F 0x6F 0x6C 0x2C 0x20 0x79    // ' tool, y' \n\t0x6F 0x75 0x20 0x6E 0x65 0x65 0x64 0x20    // 'ou need ' \n\t0x74 0x6F 0x20 0x61 0x64 0x64 0x20 0x61    // 'to add a' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x2E 0x0D 0x0A 0x31 0x09 0x49 0x66    // 'x.??1?If' \n\t0x20 0x79 0x6F 0x75 0x20 0x73 0x65 0x65    // ' you see' \n\t0x20 0x74 0x68 0x65 0x20 0x57 0x6F 0x72    // ' the Wor' \n\t0x64 0x73 0x20 0x62 0x75 0x74 0x74 0x6F    // 'ds butto' \n\t0x6E 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 'n at the' \n\t0x20 0x74 0x6F 0x70 0x20 0x6F 0x66 0x20    // ' top of ' \n\t0x74 0x68 0x65 0x20 0x73 0x63 0x72 0x65    // 'the scre' \n\t0x65 0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'en, clic' \n\t0x6B 0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32    // 'k it.??2' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x57 0x6F 0x72 0x64 0x20    // 'he Word ' \n\t0x42 0x6F 0x78 0x2D 0x01                   // 'Box-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= No_Undo\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"No Undo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"No Undo\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"No_Undo\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7B 0x00 0x00 0x00    // '????{???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x72 0x72 0x79 0x21    // '??Sorry!' \n\t0x20 0x20 0x59 0x6F 0x75 0x20 0x63 0x61    // '  You ca' \n\t0x6E 0x27 0x74 0x20 0x75 0x73 0x65 0x20    // 'n't use ' \n\t0x55 0x6E 0x64 0x6F 0x20 0x72 0x69 0x67    // 'Undo rig' \n\t0x68 0x74 0x20 0x6E 0x6F 0x77 0x2E         // 'ht now.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/htscenes.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcHowToScenes00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"CO--Click Scenes.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"CO--Click Scenes.\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobHowtoSequence kidSettingsCover kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpcHowToScenes00\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSettingsCover\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4E 0x00 0x00 0x00    // '????N???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x53 0x63 0x65 0x6E 0x65 0x73 0x2E         // 'Scenes.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpcHowToScenes01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"CO 1) If you're choosing\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"CO 1) If you're choosing\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobHowtoSequence kidSettingsBrowser kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpcHowToScenes01\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSettingsBrowser\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x68 0x01 0x00 0x00    // '????h???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes2B __HELP_SYMBOL( STN \"ktpcHowToScenes2B\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD1 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x02    // '????6???' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x02    // '????E???' \n\t0x00 0x00 0x00 0x00 0xC2 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xD1 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x2D 0x00 0x00 0x03    // '???-???' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x03    // '????7???' \n\t0x0A 0x00 0x00 0xFD 0x44 0x00 0x00 0x03    // '???D???' \n\t0x00 0x00 0x00 0x00 0x47 0x00 0x00 0x03    // '????G???' \n\t0x0F 0x00 0x00 0xFD 0x81 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xC3 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xD0 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x85 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x94 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x85 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x94 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xBB 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x66 0x20 0x79 0x6F 0x75    // '??If you' \n\t0x27 0x72 0x65 0x20 0x63 0x68 0x6F 0x6F    // ''re choo' \n\t0x73 0x69 0x6E 0x67 0x20 0x61 0x20 0x73    // 'sing a s' \n\t0x63 0x65 0x6E 0x65 0x20 0x66 0x6F 0x72    // 'cene for' \n\t0x20 0x74 0x68 0x65 0x20 0x66 0x69 0x72    // ' the fir' \n\t0x73 0x74 0x20 0x74 0x69 0x6D 0x65 0x0D    // 'st time?' \n\t0x0A 0x95 0x09 0x43 0x6C 0x69 0x63 0x6B    // '??Click' \n\t0x20 0x53 0x63 0x65 0x6E 0x65 0x20 0x43    // ' Scene C' \n\t0x68 0x6F 0x69 0x63 0x65 0x73 0x2E 0x0D    // 'hoices.?' \n\t0x0A 0x49 0x66 0x20 0x79 0x6F 0x75 0x27    // '?If you'' \n\t0x76 0x65 0x20 0x61 0x6C 0x72 0x65 0x61    // 've alrea' \n\t0x64 0x79 0x20 0x61 0x64 0x64 0x65 0x64    // 'dy added' \n\t0x20 0x61 0x20 0x73 0x63 0x65 0x6E 0x65    // ' a scene' \n\t0x20 0x61 0x6E 0x64 0x20 0x77 0x61 0x6E    // ' and wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x68 0x6F    // 't to cho' \n\t0x6F 0x73 0x65 0x20 0x61 0x6E 0x6F 0x74    // 'ose anot' \n\t0x68 0x65 0x72 0x0D 0x0A 0x31 0x09 0x47    // 'her??1?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x77    // ' place w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x61 0x64 0x64 0x20 0x74 0x68 0x65    // ' add the' \n\t0x20 0x6E 0x65 0x77 0x20 0x73 0x63 0x65    // ' new sce' \n\t0x6E 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x43    // 'ne.??2?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x53 0x63 0x65    // 'lick Sce' \n\t0x6E 0x65 0x20 0x43 0x68 0x6F 0x69 0x63    // 'ne Choic' \n\t0x65 0x73 0x2E                             // 'es.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpcHowToScenes02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"CO 2) Click the scene you \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"CO 2) Click the scene you \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0xAA 0x0 0x57415645 kwavHTScenes02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes02\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x97 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x73 0x63 0x65 0x6E    // 'the scen' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x2E                             // 'nt.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpcHowToScenes03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"CO 3) Click the camera\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"CO 3) Click the camera\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x0 0x57415645 kwavHTScenes03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes03\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x87 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes33 __HELP_SYMBOL( STN \"ktpcHowToScenes33\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x02    // '????&???' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x16 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x16 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x63 0x61 0x6D 0x65    // 'the came' \n\t0x72 0x61 0x20 0x61 0x6E 0x67 0x6C 0x65    // 'ra angle' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x75 0x73 0x65    // 't to use' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpcHowToScenes04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"What Next--Scenes\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"What Next--Scenes\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTScenes04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToScenes04\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_21=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' 0x16102 0xFFFFFFFF __HELP_SYMBOL( STN )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToScenes5C __HELP_SYMBOL( STN \"ktpcHowToScenes5C\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes44 __HELP_SYMBOL( STN \"ktpcHowToScenes44\" )\n\tFREE\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToScenes46 __HELP_SYMBOL( STN \"ktpcHowToScenes46\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToScenes2C __HELP_SYMBOL( STN \"ktpcHowToScenes2C\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG ktpcHowToScenes2D __HELP_SYMBOL( STN \"ktpcHowToScenes2D\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x16 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x93 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x24 0x00 0x00 0x40    // '????$??@' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x40    // '????&??@' \n\t0x03 0x00 0x00 0x00 0x48 0x00 0x00 0x40    // '????H??@' \n\t0x08 0x00 0x00 0x00 0x63 0x00 0x00 0x40    // '????c??@' \n\t0x00 0x00 0x00 0x00 0x65 0x00 0x00 0x40    // '????e??@' \n\t0x09 0x00 0x00 0x00 0x7F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x40    // '??????@' \n\t0x0A 0x00 0x00 0x00 0x93 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1E 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x26 0x00 0x00 0xC0    // '????&??' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0xC0    // '????H??' \n\t0x02 0x00 0x00 0x00 0x65 0x00 0x00 0xC0    // '????e??' \n\t0x02 0x00 0x00 0x00 0x81 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x6F 0x6F 0x73 0x69    // '??Choosi' \n\t0x6E 0x67 0x20 0x61 0x20 0x73 0x63 0x65    // 'ng a sce' \n\t0x6E 0x65 0x2D 0x2D 0x57 0x68 0x61 0x74    // 'ne--What' \n\t0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D 0x0A    // ' next???' \n\t0x01 0x20 0x55 0x6E 0x64 0x6F 0x0D 0x0A    // '? Undo??' \n\t0x01 0x09 0x41 0x64 0x64 0x69 0x6E 0x67    // '??Adding' \n\t0x20 0x65 0x78 0x74 0x72 0x61 0x20 0x66    // ' extra f' \n\t0x72 0x61 0x6D 0x65 0x73 0x20 0x74 0x6F    // 'rames to' \n\t0x20 0x61 0x20 0x73 0x63 0x65 0x6E 0x65    // ' a scene' \n\t0x0D 0x0A 0x01 0x20 0x43 0x68 0x61 0x6E    // '??? Chan' \n\t0x67 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ging the' \n\t0x20 0x63 0x61 0x6D 0x65 0x72 0x61 0x20    // ' camera ' \n\t0x61 0x6E 0x67 0x6C 0x65 0x0D 0x0A 0x01    // 'angle???' \n\t0x20 0x43 0x68 0x61 0x6E 0x67 0x69 0x6E    // ' Changin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x73 0x63    // 'g the sc' \n\t0x65 0x6E 0x65 0x20 0x6F 0x72 0x64 0x65    // 'ene orde' \n\t0x72 0x0D 0x0A 0x01 0x20 0x52 0x65 0x6D    // 'r??? Rem' \n\t0x6F 0x76 0x69 0x6E 0x67 0x20 0x61 0x20    // 'oving a ' \n\t0x73 0x63 0x65 0x6E 0x65                   // 'scene' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpcHowToScenes05\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO 1) To change the camera\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO 1) To change the camera\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidSettingsCameras kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToScenes05\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSettingsCameras\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes2B __HELP_SYMBOL( STN \"ktpcHowToScenes2B\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0x01    // '????p???' \n\t0x00 0x00 0x00 0x00 0x61 0x00 0x00 0x02    // '????a???' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x02    // '????b???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x03    // '????b???' \n\t0x0A 0x00 0x00 0xFD 0x6F 0x00 0x00 0x03    // '???o???' \n\t0x0F 0x00 0x00 0xFD 0x70 0x00 0x00 0x03    // '???p???' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x2D 0x00 0x00 0x04    // '???-???' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x2D 0x00 0x00 0x40    // '????-??@' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5A 0x00 0x00 0x82    // '????Z??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x63 0x61 0x6D 0x65 0x72 0x61 0x20 0x61    // 'camera a' \n\t0x6E 0x67 0x6C 0x65 0x0D 0x0A 0x31 0x09    // 'ngle??1?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'o change' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x61 0x6D    // ' the cam' \n\t0x65 0x72 0x61 0x20 0x61 0x6E 0x67 0x6C    // 'era angl' \n\t0x65 0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C    // 'e.??2?Cl' \n\t0x69 0x63 0x6B 0x20 0x43 0x61 0x6D 0x65    // 'ick Came' \n\t0x72 0x61 0x20 0x41 0x6E 0x67 0x6C 0x65    // 'ra Angle' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpcHowToScenes06\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO 2) Click the view you \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO 2) Click the view you \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTScenes06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes06\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8C 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x76 0x69 0x65 0x77    // 'the view' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpcHowToScenes07\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"What Next--Camera Angles\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"What Next--Camera Angles\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTScenes07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToScenes07\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_20=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes44 __HELP_SYMBOL( STN \"ktpcHowToScenes44\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToScenes2E __HELP_SYMBOL( STN \"ktpcHowToScenes2E\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x01    // '????C???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x40    // '????'??@' \n\t0x02 0x00 0x00 0x00 0x2D 0x00 0x00 0x40    // '????-??@' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x40    // '????/??@' \n\t0x04 0x00 0x00 0x00 0x43 0x00 0x00 0x40    // '????C??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x27 0x00 0x00 0x82    // '????'??' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0xC0    // '????'??' \n\t0x03 0x00 0x00 0x00 0x2F 0x00 0x00 0xC0    // '????/??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x63    // 'ng the c' \n\t0x61 0x6D 0x65 0x72 0x61 0x20 0x61 0x6E    // 'amera an' \n\t0x67 0x6C 0x65 0x2D 0x2D 0x57 0x68 0x61    // 'gle--Wha' \n\t0x74 0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D    // 't next??' \n\t0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F 0x0D    // '?? Undo?' \n\t0x0A 0x01 0x20 0x50 0x6C 0x61 0x79 0x69    // '?? Playi' \n\t0x6E 0x67 0x20 0x79 0x6F 0x75 0x72 0x20    // 'ng your ' \n\t0x6D 0x6F 0x76 0x69 0x65                   // 'movie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpcHowToScenes08\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidPausesMouse kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToScenes08\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidPausesMouse\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x20 0x00 0x00 0x00    // '???? ???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x03 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74                   // '??Cut' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= ktpcHowToScenes09\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToScenes09\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x24 0x00 0x00 0x00    // '????$???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74                   // '??Cut' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= ktpcHowToScenes0A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO 1) To wait for sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO 1) To wait for sound\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidPausesSound kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToScenes0A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidPausesSound\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_13=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes45 __HELP_SYMBOL( STN \"ktpcHowToScenes45\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToScenes2B __HELP_SYMBOL( STN \"ktpcHowToScenes2B\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x04 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x02    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x4D 0x00 0x00 0x03    // '???M???' \n\t0x0F 0x00 0x00 0xFD 0x9C 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xB1 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xB2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x04    // '????:???' \n\t0x0D 0x00 0x00 0xFE 0x3F 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x04    // '????Q???' \n\t0x0D 0x00 0x00 0xFE 0x60 0x00 0x00 0x04    // '???`???' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x40    // '????:??@' \n\t0x02 0x00 0x00 0x00 0x3F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x40    // '????Q??@' \n\t0x03 0x00 0x00 0x00 0x60 0x00 0x00 0x40    // '????`??@' \n\t0x00 0x00 0x00 0x00 0xB2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x4F 0x00 0x00 0x80    // '????O??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x94 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x61 0x75    // '??To pau' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x6D    // 'se the m' \n\t0x6F 0x76 0x69 0x65 0x20 0x61 0x63 0x74    // 'ovie act' \n\t0x69 0x6F 0x6E 0x20 0x75 0x6E 0x74 0x69    // 'ion unti' \n\t0x6C 0x20 0x61 0x6C 0x6C 0x20 0x73 0x6F    // 'l all so' \n\t0x75 0x6E 0x64 0x73 0x20 0x61 0x74 0x20    // 'unds at ' \n\t0x74 0x68 0x65 0x20 0x63 0x75 0x72 0x72    // 'the curr' \n\t0x65 0x6E 0x74 0x20 0x66 0x72 0x61 0x6D    // 'ent fram' \n\t0x65 0x20 0x68 0x61 0x76 0x65 0x20 0x66    // 'e have f' \n\t0x69 0x6E 0x69 0x73 0x68 0x65 0x64 0x0D    // 'inished?' \n\t0x0A 0x31 0x09 0x47 0x6F 0x20 0x74 0x6F    // '?1?Go to' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x63 0x65 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ce in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x70 0x61 0x75 0x73 0x65    // 'to pause' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x69 0x6F 0x6E 0x2E 0x0D 0x0A 0x32 0x09    // 'ion.??2?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x57 0x61    // 'Click Wa' \n\t0x69 0x74 0x20 0x66 0x6F 0x72 0x20 0x53    // 'it for S' \n\t0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F 0x20    // 'ound to ' \n\t0x45 0x6E 0x64 0x2E                        // 'End.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= ktpcHowToScenes0B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"What Next--Wait for Sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"What Next--Wait for Sound\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTScenes0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToScenes0B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9E 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_22=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes44 __HELP_SYMBOL( STN \"ktpcHowToScenes44\" )\n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToScenes2E __HELP_SYMBOL( STN \"ktpcHowToScenes2E\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToScenes2F __HELP_SYMBOL( STN \"ktpcHowToScenes2F\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x01    // '????/???' \n\t0x01 0x00 0x00 0x00 0x5F 0x00 0x00 0x01    // '????_???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2D 0x00 0x00 0x03    // '???-???' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x40    // '????/??@' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x40    // '????5??@' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x05 0x00 0x00 0x00 0x4B 0x00 0x00 0x40    // '????K??@' \n\t0x00 0x00 0x00 0x00 0x4D 0x00 0x00 0x40    // '????M??@' \n\t0x06 0x00 0x00 0x00 0x5F 0x00 0x00 0x40    // '????_??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2F 0x00 0x00 0x82    // '????/??' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0xC0    // '????/??' \n\t0x02 0x00 0x00 0x00 0x37 0x00 0x00 0xC0    // '????7??' \n\t0x02 0x00 0x00 0x00 0x4D 0x00 0x00 0xC0    // '????M??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x61 0x69 0x74 0x69 0x6E    // '??Waitin' \n\t0x67 0x20 0x75 0x6E 0x74 0x69 0x6C 0x20    // 'g until ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64 0x20    // 'a sound ' \n\t0x69 0x73 0x20 0x66 0x69 0x6E 0x69 0x73    // 'is finis' \n\t0x68 0x65 0x64 0x2D 0x2D 0x57 0x68 0x61    // 'hed--Wha' \n\t0x74 0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D    // 't next??' \n\t0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F 0x0D    // '?? Undo?' \n\t0x0A 0x01 0x20 0x50 0x6C 0x61 0x79 0x69    // '?? Playi' \n\t0x6E 0x67 0x20 0x79 0x6F 0x75 0x72 0x20    // 'ng your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x0D 0x0A 0x01    // 'movie???' \n\t0x20 0x52 0x65 0x6D 0x6F 0x76 0x69 0x6E    // ' Removin' \n\t0x67 0x20 0x61 0x20 0x70 0x61 0x75 0x73    // 'g a paus' \n\t0x65                                       // 'e' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= ktpcHowToScenes0C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidPausesClear kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToScenes0C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidPausesClear\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x24 0x00 0x00 0x00    // '????$???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74                   // '??Cut' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= ktpcHowToScenes0D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO 1) To add a transition\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO 1) To add a transition\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidSceneSorter kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes0D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToScenes0D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSceneSorter\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes0D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x2E 0x00 0x00 0x03    // '???.???' \n\t0x0A 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x0F 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x04    // '????>???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x61 0x20 0x74 0x72 0x61 0x6E 0x73    // ' a trans' \n\t0x69 0x74 0x69 0x6F 0x6E 0x20 0x62 0x65    // 'ition be' \n\t0x74 0x77 0x65 0x65 0x6E 0x20 0x73 0x63    // 'tween sc' \n\t0x65 0x6E 0x65 0x73 0x2C 0x20 0x63 0x6C    // 'enes, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x53 0x63 0x65 0x6E 0x65 0x20 0x4F 0x72    // 'Scene Or' \n\t0x67 0x61 0x6E 0x69 0x7A 0x65 0x72 0x2E    // 'ganizer.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= ktpcHowToScenes0E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO 2) Click the transition\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO 2) Click the transition\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobHowtoSequence 0x0 kidPlayHelpSounds 0xD2 0x6E 0x57415645 kwavHTScenes0E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_35=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpcHowToScenes0E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes0E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_35=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes27 __HELP_SYMBOL( STN \"ktpcHowToScenes27\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_35=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4A 0x00 0x00 0x01    // '????J???' \n\t0x01 0xFB 0x00 0x00 0x65 0x00 0x00 0x01    // '???e???' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x25 0x00 0x00 0x04    // '???%???' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x25 0x00 0x00 0x40    // '????%??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4A 0x00 0x00 0x82    // '????J??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_35=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x6F 0x6E 0x65 0x20 0x6F 0x66 0x20 0x74    // 'one of t' \n\t0x68 0x65 0x20 0x34 0x20 0x74 0x72 0x61    // 'he 4 tra' \n\t0x6E 0x73 0x69 0x74 0x69 0x6F 0x6E 0x20    // 'nsition ' \n\t0x63 0x68 0x6F 0x69 0x63 0x65 0x73 0x20    // 'choices ' \n\t0x6C 0x69 0x73 0x74 0x65 0x64 0x20 0x74    // 'listed t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x72 0x69    // 'o the ri' \n\t0x67 0x68 0x74 0x20 0x6F 0x66 0x20 0x65    // 'ght of e' \n\t0x61 0x63 0x68 0x20 0x73 0x63 0x65 0x6E    // 'ach scen' \n\t0x65 0x2E 0x0D 0x0A 0x57 0x68 0x65 0x6E    // 'e.??When' \n\t0x20 0x79 0x6F 0x75 0x27 0x72 0x65 0x20    // ' you're ' \n\t0x64 0x6F 0x6E 0x65 0x2C 0x20 0x63 0x6C    // 'done, cl' \n\t0x69 0x63 0x6B 0x20 0x4F 0x4B 0x2E         // 'ick OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= ktpcHowToScenes0F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"What Next--Transitions\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"What Next--Transitions\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTScenes0F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_23=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToScenes0F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes0F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_23=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes2E __HELP_SYMBOL( STN \"ktpcHowToScenes2E\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_23=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x01    // '????C???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2D 0x00 0x00 0x03    // '???-???' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x40    // '????-??@' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x40    // '????/??@' \n\t0x03 0x00 0x00 0x00 0x43 0x00 0x00 0x40    // '????C??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2F 0x00 0x00 0x82    // '????/??' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0xC0    // '????/??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_23=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x64 0x64 0x69 0x6E 0x67    // '??Adding' \n\t0x20 0x74 0x72 0x61 0x6E 0x73 0x69 0x74    // ' transit' \n\t0x69 0x6F 0x6E 0x73 0x20 0x62 0x65 0x74    // 'ions bet' \n\t0x77 0x65 0x65 0x6E 0x20 0x73 0x63 0x65    // 'ween sce' \n\t0x6E 0x65 0x73 0x2D 0x2D 0x57 0x68 0x61    // 'nes--Wha' \n\t0x74 0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D    // 't next??' \n\t0x0A 0x01 0x20 0x50 0x6C 0x61 0x79 0x69    // '?? Playi' \n\t0x6E 0x67 0x20 0x79 0x6F 0x75 0x72 0x20    // 'ng your ' \n\t0x6D 0x6F 0x76 0x69 0x65                   // 'movie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= ktpcHowToScenes10\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO 1) To change the scene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO 1) To change the scene\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidSceneSorter kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes10\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_25=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToScenes10\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSceneSorter\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes10\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_25=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_25=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x0A 0x00 0x00 0xFD 0x34 0x00 0x00 0x03    // '???4???' \n\t0x0F 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x04    // '????5???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x40    // '????5??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_25=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x6F 0x72    // 'scene or' \n\t0x64 0x65 0x72 0x2C 0x20 0x63 0x6C 0x69    // 'der, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x53    // 'ck the S' \n\t0x63 0x65 0x6E 0x65 0x20 0x4F 0x72 0x67    // 'cene Org' \n\t0x61 0x6E 0x69 0x7A 0x65 0x72 0x2E         // 'anizer.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= ktpcHowToScenes11\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO 2) Drag a scene where \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO 2) Drag a scene where \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x0 0x57415645 kwavHTScenes11\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_21=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes11\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes11\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_21=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\nAG(4)\n\tFREE\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes51 __HELP_SYMBOL( STN \"ktpcHowToScenes51\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_21=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0x01    // '????;???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x04 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x04 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x3B 0x00 0x00 0x40    // '????;??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_21=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x20 0x61    // '??Drag a' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x20 0x77    // ' scene w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x69 0x74    // ' want it' \n\t0x2E 0x20 0x57 0x68 0x65 0x6E 0x20 0x79    // '. When y' \n\t0x6F 0x75 0x27 0x72 0x65 0x20 0x64 0x6F    // 'ou're do' \n\t0x6E 0x65 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ne, clic' \n\t0x6B 0x20 0x4F 0x4B 0x2E                   // 'k OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= ktpcHowToScenes12\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"What Next--Scene Order\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"What Next--Scene Order\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTScenes12\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToScenes12\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes12\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_11=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes2E __HELP_SYMBOL( STN \"ktpcHowToScenes2E\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x01 0x00 0x00 0x00 0x3A 0x00 0x00 0x01    // '????:???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x40    // '????&??@' \n\t0x03 0x00 0x00 0x00 0x3A 0x00 0x00 0x40    // '????:??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x26 0x00 0x00 0x82    // '????&??' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0xC0    // '????&??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ng the s' \n\t0x63 0x65 0x6E 0x65 0x20 0x6F 0x72 0x64    // 'cene ord' \n\t0x65 0x72 0x2D 0x2D 0x57 0x68 0x61 0x74    // 'er--What' \n\t0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D 0x0A    // ' next???' \n\t0x01 0x20 0x50 0x6C 0x61 0x79 0x69 0x6E    // '? Playin' \n\t0x67 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'g your m' \n\t0x6F 0x76 0x69 0x65                        // 'ovie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= ktpcHowToScenes13\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO 1) To move from scene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO 1) To move from scene\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidSceneBackground kidPlayHelpSounds 0x12 0x5 0x57415645 kwavHTScenes13\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes13\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSceneBackground\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes13\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x38 0x01 0x00 0x00    // '????8???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_17=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes51 __HELP_SYMBOL( STN \"ktpcHowToScenes51\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x9B 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x02    // '????2???' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x02    // '????4???' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x02    // '????6???' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x02    // '????<???' \n\t0x00 0x00 0x00 0x00 0x76 0x00 0x00 0x02    // '????v???' \n\t0x01 0x00 0x00 0x00 0x9B 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x31 0x00 0x00 0x03    // '???1???' \n\t0x0F 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x03    // '????4???' \n\t0x0F 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x0A 0x00 0x00 0xFD 0x36 0x00 0x00 0x03    // '???6???' \n\t0x00 0x00 0x00 0x00 0x70 0x00 0x00 0x03    // '????p???' \n\t0x0F 0x00 0x00 0xFD 0x71 0x00 0x00 0x03    // '???q???' \n\t0x0A 0x00 0x00 0xFD 0x72 0x00 0x00 0x03    // '???r???' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x04    // '????r???' \n\t0x0D 0x00 0x00 0xFE 0x76 0x00 0x00 0x04    // '???v???' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x40    // '????r??@' \n\t0x03 0x00 0x00 0x00 0x76 0x00 0x00 0x40    // '????v??@' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x80    // '????4??' \n\t0x00 0x00 0x02 0x00 0x68 0x00 0x00 0x80    // '????h??' \n\t0x00 0x00 0x03 0x00 0x70 0x00 0x00 0x80    // '????p??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x70 0x00 0x00 0x82    // '????p??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x6F 0x76    // '??To mov' \n\t0x65 0x20 0x66 0x72 0x6F 0x6D 0x20 0x73    // 'e from s' \n\t0x63 0x65 0x6E 0x65 0x20 0x74 0x6F 0x20    // 'cene to ' \n\t0x73 0x63 0x65 0x6E 0x65 0x2C 0x20 0x75    // 'scene, u' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x53    // 'se the S' \n\t0x63 0x65 0x6E 0x65 0x20 0x53 0x6C 0x69    // 'cene Sli' \n\t0x64 0x65 0x72 0x2E 0x0D 0x0A 0x95 0x09    // 'der.???' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x20 0x74    // 'Click  t' \n\t0x68 0x65 0x20 0x46 0x69 0x72 0x73 0x74    // 'he First' \n\t0x2C 0x20 0x50 0x72 0x65 0x76 0x69 0x6F    // ', Previo' \n\t0x75 0x73 0x2C 0x20 0x4E 0x65 0x78 0x74    // 'us, Next' \n\t0x2C 0x20 0x6F 0x72 0x20 0x4C 0x61 0x73    // ', or Las' \n\t0x74 0x20 0x41 0x72 0x72 0x6F 0x77 0x2E    // 't Arrow.' \n\t0x0D 0x0A 0x2D 0x2D 0x6F 0x72 0x2D 0x2D    // '??--or--' \n\t0x0D 0x0A 0x95 0x09 0x44 0x72 0x61 0x67    // '???Drag' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6C 0x69    // ' the sli' \n\t0x64 0x65 0x72 0x20 0x69 0x6E 0x20 0x74    // 'der in t' \n\t0x68 0x65 0x20 0x6D 0x69 0x64 0x64 0x6C    // 'he middl' \n\t0x65 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'e of the' \n\t0x20 0x62 0x61 0x72 0x2E                   // ' bar.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= ktpcHowToScenes14\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"What Next--Scene Slider\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"What Next--Scene Slider\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTScenes14\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToScenes14\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes14\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes49 __HELP_SYMBOL( STN \"ktpcHowToScenes49\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x01 0x00 0x00 0x00 0x3F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x03 0x00 0x00 0x00 0x3F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x28 0x00 0x00 0x82    // '????(??' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0xC0    // '????(??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x6F 0x76 0x69 0x6E 0x67    // '??Moving' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x73 0x63    // ' from sc' \n\t0x65 0x6E 0x65 0x20 0x74 0x6F 0x20 0x73    // 'ene to s' \n\t0x63 0x65 0x6E 0x65 0x2D 0x2D 0x57 0x68    // 'cene--Wh' \n\t0x61 0x74 0x20 0x6E 0x65 0x78 0x74 0x3F    // 'at next?' \n\t0x0D 0x0A 0x01 0x20 0x4D 0x6F 0x76 0x69    // '??? Movi' \n\t0x6E 0x67 0x20 0x77 0x69 0x74 0x68 0x69    // 'ng withi' \n\t0x6E 0x20 0x61 0x20 0x73 0x63 0x65 0x6E    // 'n a scen' \n\t0x65                                       // 'e' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= ktpcHowToScenes15\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"CO 1) To move within\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"CO 1) To move within\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidFrameBackground kidPlayHelpSounds 0x1A 0x5 0x57415645 kwavHTScenes15\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes15\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidFrameBackground\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes15\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x2D 0x01 0x00 0x00    // '????-???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_12=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes51 __HELP_SYMBOL( STN \"ktpcHowToScenes51\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x19 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x02    // '????I???' \n\t0x01 0x00 0x00 0x00 0x4B 0x00 0x00 0x02    // '????K???' \n\t0x00 0x00 0x00 0x00 0x4D 0x00 0x00 0x02    // '????M???' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0x02    // '????S???' \n\t0x00 0x00 0x00 0x00 0x8D 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xB2 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x49 0x00 0x00 0x03    // '???I???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x03    // '????K???' \n\t0x0F 0x00 0x00 0xFD 0x4C 0x00 0x00 0x03    // '???L???' \n\t0x0A 0x00 0x00 0xFD 0x4D 0x00 0x00 0x03    // '???M???' \n\t0x00 0x00 0x00 0x00 0x87 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0x89 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x89 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x8D 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x89 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0x8D 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x80    // '????K??' \n\t0x00 0x00 0x02 0x00 0x7F 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x03 0x00 0x87 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x87 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x6F 0x76    // '??To mov' \n\t0x65 0x20 0x66 0x6F 0x72 0x77 0x61 0x72    // 'e forwar' \n\t0x64 0x73 0x20 0x6F 0x72 0x20 0x62 0x61    // 'ds or ba' \n\t0x63 0x6B 0x77 0x61 0x72 0x64 0x73 0x20    // 'ckwards ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x63    // 'in the c' \n\t0x75 0x72 0x72 0x65 0x6E 0x74 0x20 0x73    // 'urrent s' \n\t0x63 0x65 0x6E 0x65 0x2C 0x20 0x75 0x73    // 'cene, us' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x46 0x72    // 'e the Fr' \n\t0x61 0x6D 0x65 0x20 0x53 0x6C 0x69 0x64    // 'ame Slid' \n\t0x65 0x72 0x2E 0x0D 0x0A 0x95 0x09 0x43    // 'er.???C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x20 0x74 0x68    // 'lick  th' \n\t0x65 0x20 0x46 0x69 0x72 0x73 0x74 0x2C    // 'e First,' \n\t0x20 0x50 0x72 0x65 0x76 0x69 0x6F 0x75    // ' Previou' \n\t0x73 0x2C 0x20 0x4E 0x65 0x78 0x74 0x2C    // 's, Next,' \n\t0x20 0x6F 0x72 0x20 0x4C 0x61 0x73 0x74    // ' or Last' \n\t0x20 0x41 0x72 0x72 0x6F 0x77 0x2E 0x0D    // ' Arrow.?' \n\t0x0A 0x2D 0x2D 0x6F 0x72 0x2D 0x2D 0x0D    // '?--or--?' \n\t0x0A 0x95 0x09 0x44 0x72 0x61 0x67 0x20    // '??Drag ' \n\t0x74 0x68 0x65 0x20 0x73 0x6C 0x69 0x64    // 'the slid' \n\t0x65 0x72 0x20 0x69 0x6E 0x20 0x74 0x68    // 'er in th' \n\t0x65 0x20 0x6D 0x69 0x64 0x64 0x6C 0x65    // 'e middle' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x62 0x61 0x72 0x2E                        // 'bar.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= ktpcHowToScenes16\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"What Next--Frame Slider\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"What Next--Frame Slider\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTScenes16\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToScenes16\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes16\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes31 __HELP_SYMBOL( STN \"ktpcHowToScenes31\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x21 0x00 0x00 0x03    // '???!???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x40    // '????#??@' \n\t0x03 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x23 0x00 0x00 0x82    // '????#??' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0xC0    // '????#??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x6F 0x76 0x69 0x6E 0x67    // '??Moving' \n\t0x20 0x77 0x69 0x74 0x68 0x69 0x6E 0x20    // ' within ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65 0x2D    // 'a scene-' \n\t0x2D 0x57 0x68 0x61 0x74 0x20 0x6E 0x65    // '-What ne' \n\t0x78 0x74 0x3F 0x0D 0x0A 0x01 0x4D 0x6F    // 'xt????Mo' \n\t0x76 0x69 0x6E 0x67 0x20 0x66 0x72 0x6F    // 'ving fro' \n\t0x6D 0x20 0x73 0x63 0x65 0x6E 0x65 0x20    // 'm scene ' \n\t0x74 0x6F 0x20 0x73 0x63 0x65 0x6E 0x65    // 'to scene' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= ktpcHowToScenes17\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"CO 1) To remove the entire \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"CO 1) To remove the entire \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes17\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes17\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes17\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x83 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x6A 0x00 0x00 0x03    // '???j???' \n\t0x0A 0x00 0x00 0xFD 0x82 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x83 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x2C 0x00 0x00 0x04    // '???,???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x40    // '???????@' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x40    // '????,??@' \n\t0x00 0x00 0x00 0x00 0x83 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5E 0x00 0x00 0x82    // '????^??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x6D    // '??To rem' \n\t0x6F 0x76 0x65 0x20 0x61 0x6E 0x20 0x65    // 'ove an e' \n\t0x6E 0x74 0x69 0x72 0x65 0x20 0x73 0x63    // 'ntire sc' \n\t0x65 0x6E 0x65 0x0D 0x0A 0x31 0x09 0x47    // 'ene??1?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x72    // 'ant to r' \n\t0x65 0x6D 0x6F 0x76 0x65 0x20 0x61 0x20    // 'emove a ' \n\t0x73 0x63 0x65 0x6E 0x65 0x2E 0x0D 0x0A    // 'scene.??' \n\t0x32 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '2?Click ' \n\t0x74 0x68 0x65 0x20 0x43 0x75 0x74 0x2C    // 'the Cut,' \n\t0x20 0x43 0x6F 0x70 0x79 0x2C 0x20 0x26    // ' Copy, &' \n\t0x20 0x50 0x61 0x73 0x74 0x65 0x20 0x54    // ' Paste T' \n\t0x6F 0x6F 0x6C 0x73 0x2E                   // 'ools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_18= ktpcHowToScenes18\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"CO 2) Click Remove Entire\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"CO 2) Click Remove Entire\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPActorNuke kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes18\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes18\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPActorNuke\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes18\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x52 0x65 0x6D 0x6F 0x76 0x65 0x20 0x45    // 'Remove E' \n\t0x6E 0x74 0x69 0x72 0x65 0x20 0x53 0x63    // 'ntire Sc' \n\t0x65 0x6E 0x65 0x2E                        // 'ene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_19= ktpcHowToScenes19\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"What Next--Remove Entire\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"What Next--Remove Entire\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTScenes19\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_41=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToScenes19\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes19\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_41=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_27=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes44 __HELP_SYMBOL( STN \"ktpcHowToScenes44\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToScenes2E __HELP_SYMBOL( STN \"ktpcHowToScenes2E\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_41=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x40    // '????&??@' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x40    // '????,??@' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x40    // '????.??@' \n\t0x02 0x00 0x00 0x00 0x42 0x00 0x00 0x40    // '????B??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x26 0x00 0x00 0x82    // '????&??' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0xC0    // '????&??' \n\t0x03 0x00 0x00 0x00 0x2E 0x00 0x00 0xC0    // '????.??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_41=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x6F 0x76 0x69    // '??Removi' \n\t0x6E 0x67 0x20 0x61 0x6E 0x20 0x65 0x6E    // 'ng an en' \n\t0x74 0x69 0x72 0x65 0x20 0x73 0x63 0x65    // 'tire sce' \n\t0x6E 0x65 0x2D 0x2D 0x57 0x68 0x61 0x74    // 'ne--What' \n\t0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D 0x0A    // ' next???' \n\t0x01 0x20 0x55 0x6E 0x64 0x6F 0x0D 0x0A    // '? Undo??' \n\t0x01 0x20 0x50 0x6C 0x61 0x79 0x69 0x6E    // '? Playin' \n\t0x67 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'g your m' \n\t0x6F 0x76 0x69 0x65                        // 'ovie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= ktpcHowToScenes1A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"CO 1) To remove before\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"CO 1) To remove before\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidCCPSceneChopBack kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes1A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToScenes1A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPSceneChopBack\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes1A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x25 0x01 0x00 0x00    // '????%???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_26=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes2B __HELP_SYMBOL( STN \"ktpcHowToScenes2B\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAD 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2D 0x00 0x00 0x03    // '???-???' \n\t0x0F 0x00 0x00 0xFD 0x94 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xAC 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xAD 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x04    // '????1???' \n\t0x0D 0x00 0x00 0xFE 0x40 0x00 0x00 0x04    // '???@???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x40    // '????1??@' \n\t0x02 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x00 0x00 0x00 0x00 0xAD 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x80    // '????/??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8C 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x6D    // '??To rem' \n\t0x6F 0x76 0x65 0x20 0x65 0x76 0x65 0x72    // 'ove ever' \n\t0x79 0x74 0x68 0x69 0x6E 0x67 0x20 0x62    // 'ything b' \n\t0x65 0x66 0x6F 0x72 0x65 0x20 0x74 0x68    // 'efore th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x66 0x72 0x61 0x6D 0x65 0x0D    // 't frame?' \n\t0x0A 0x31 0x09 0x47 0x6F 0x20 0x74 0x6F    // '?1?Go to' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x63 0x65 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ce in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x79 0x6F    // ' that yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20 0x74    // 'o make t' \n\t0x68 0x65 0x20 0x66 0x69 0x72 0x73 0x74    // 'he first' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x6F    // ' frame o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x63 0x75    // 'f the cu' \n\t0x72 0x72 0x65 0x6E 0x74 0x20 0x73 0x63    // 'rrent sc' \n\t0x65 0x6E 0x65 0x2E 0x0D 0x0A 0x32 0x09    // 'ene.??2?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x52 0x65    // 'Click Re' \n\t0x6D 0x6F 0x76 0x65 0x20 0x45 0x76 0x65    // 'move Eve' \n\t0x72 0x79 0x74 0x68 0x69 0x6E 0x67 0x20    // 'rything ' \n\t0x42 0x65 0x66 0x6F 0x72 0x65 0x2E         // 'Before.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1B= ktpcHowToScenes1B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPSceneChopBack kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes1B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_17=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes1B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPSceneChopBack\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes1B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_17=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_17=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_17=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x03 0x03 0x63 0x75 0x74                   // '??cut' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= ktpcHowToScenes1C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"CO 3) Click anywhere\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"CO 3) Click anywhere\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTScenes1C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes1C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes1C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x05 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x01 0x00 0x00 0x00 0x56 0x00 0x00 0x01    // '????V???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x56 0x00 0x00 0x03    // '???V???' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x40    // '????V??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x22 0x00 0x00 0x80    // '????\"??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x22 0x00 0x00 0x82    // '????\"??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x61 0x6E 0x79 0x77 0x68 0x65 0x72 0x65    // 'anywhere' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x77 0x6F 0x72 0x6B 0x73 0x70 0x61 0x63    // 'workspac' \n\t0x65 0x2E 0x0D 0x0A 0x41 0x6C 0x6C 0x20    // 'e.??All ' \n\t0x74 0x68 0x65 0x20 0x66 0x72 0x61 0x6D    // 'the fram' \n\t0x65 0x73 0x20 0x62 0x65 0x66 0x6F 0x72    // 'es befor' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x63 0x75    // 'e the cu' \n\t0x72 0x72 0x65 0x6E 0x74 0x20 0x66 0x72    // 'rrent fr' \n\t0x61 0x6D 0x65 0x20 0x61 0x72 0x65 0x20    // 'ame are ' \n\t0x72 0x65 0x6D 0x6F 0x76 0x65 0x64 0x2E    // 'removed.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1D= ktpcHowToScenes1D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"What Next--Remove Everything Before\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"What Next--Remove Everything Before\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTScenes1D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToScenes1D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes1D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToScenes2E __HELP_SYMBOL( STN \"ktpcHowToScenes2E\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes44 __HELP_SYMBOL( STN \"ktpcHowToScenes44\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x01    // '????6???' \n\t0x01 0x00 0x00 0x00 0x52 0x00 0x00 0x01    // '????R???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x34 0x00 0x00 0x03    // '???4???' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x40    // '????6??@' \n\t0x02 0x00 0x00 0x00 0x3C 0x00 0x00 0x40    // '????<??@' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x01 0x00 0x00 0x00 0x52 0x00 0x00 0x40    // '????R??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x36 0x00 0x00 0x82    // '????6??' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0xC0    // '????6??' \n\t0x03 0x00 0x00 0x00 0x3E 0x00 0x00 0xC0    // '????>??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x6F 0x76 0x69    // '??Removi' \n\t0x6E 0x67 0x20 0x66 0x72 0x61 0x6D 0x65    // 'ng frame' \n\t0x73 0x20 0x62 0x65 0x66 0x6F 0x72 0x65    // 's before' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x75 0x72    // ' the cur' \n\t0x72 0x65 0x6E 0x74 0x20 0x66 0x72 0x61    // 'rent fra' \n\t0x6D 0x65 0x2D 0x2D 0x57 0x68 0x61 0x74    // 'me--What' \n\t0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D 0x0A    // ' next???' \n\t0x01 0x20 0x55 0x6E 0x64 0x6F 0x0D 0x0A    // '? Undo??' \n\t0x01 0x20 0x50 0x6C 0x61 0x79 0x69 0x6E    // '? Playin' \n\t0x67 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'g your m' \n\t0x6F 0x76 0x69 0x65                        // 'ovie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1E= ktpcHowToScenes1E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"CO 1) To remove after\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"CO 1) To remove after\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidCCPSceneChopFwd kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes1E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_26=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToScenes1E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPSceneChopFwd\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes1E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_26=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x24 0x01 0x00 0x00    // '????$???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes2B __HELP_SYMBOL( STN \"ktpcHowToScenes2B\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_26=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x0F 0x00 0x00 0xFD 0x92 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xA9 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xAA 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x04    // '????0???' \n\t0x0D 0x00 0x00 0xFE 0x3F 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x40    // '????0??@' \n\t0x02 0x00 0x00 0x00 0x3F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0xAA 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x80    // '????.??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8A 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_26=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x6D    // '??To rem' \n\t0x6F 0x76 0x65 0x20 0x65 0x76 0x65 0x72    // 'ove ever' \n\t0x79 0x74 0x68 0x69 0x6E 0x67 0x20 0x61    // 'ything a' \n\t0x66 0x74 0x65 0x72 0x20 0x74 0x68 0x65    // 'fter the' \n\t0x20 0x63 0x75 0x72 0x72 0x65 0x6E 0x74    // ' current' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x0D 0x0A    // ' frame??' \n\t0x31 0x09 0x47 0x6F 0x20 0x74 0x6F 0x20    // '1?Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'e in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'r movie ' \n\t0x74 0x68 0x61 0x74 0x20 0x79 0x6F 0x75    // 'that you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x6D 0x61 0x6B 0x65 0x20 0x74 0x68    // ' make th' \n\t0x65 0x20 0x6C 0x61 0x73 0x74 0x20 0x66    // 'e last f' \n\t0x72 0x61 0x6D 0x65 0x20 0x6F 0x66 0x20    // 'rame of ' \n\t0x74 0x68 0x65 0x20 0x63 0x75 0x72 0x72    // 'the curr' \n\t0x65 0x6E 0x74 0x20 0x73 0x63 0x65 0x6E    // 'ent scen' \n\t0x65 0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C    // 'e.??2?Cl' \n\t0x69 0x63 0x6B 0x20 0x52 0x65 0x6D 0x6F    // 'ick Remo' \n\t0x76 0x65 0x20 0x45 0x76 0x65 0x72 0x79    // 've Every' \n\t0x74 0x68 0x69 0x6E 0x67 0x20 0x41 0x66    // 'thing Af' \n\t0x74 0x65 0x72 0x2E                        // 'ter.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1F= ktpcHowToScenes1F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPSceneChopFwd kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes1F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes1F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPSceneChopFwd\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes1F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74                   // '??Cut' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_20= ktpcHowToScenes20\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"CO 3) Click anywhere\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"CO 3) Click anywhere\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTScenes20\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes20\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes20\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x05 0x00 0x00 0x00 0x36 0x00 0x00 0x01    // '????6???' \n\t0x01 0x00 0x00 0x00 0x55 0x00 0x00 0x01    // '????U???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x55 0x00 0x00 0x03    // '???U???' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x40    // '????U??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x22 0x00 0x00 0x80    // '????\"??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x22 0x00 0x00 0x82    // '????\"??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x61 0x6E 0x79 0x77 0x68 0x65 0x72 0x65    // 'anywhere' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x77 0x6F 0x72 0x6B 0x73 0x70 0x61 0x63    // 'workspac' \n\t0x65 0x2E 0x0D 0x0A 0x41 0x6C 0x6C 0x20    // 'e.??All ' \n\t0x74 0x68 0x65 0x20 0x66 0x72 0x61 0x6D    // 'the fram' \n\t0x65 0x73 0x20 0x61 0x66 0x74 0x65 0x72    // 'es after' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x75 0x72    // ' the cur' \n\t0x72 0x65 0x6E 0x74 0x20 0x66 0x72 0x61    // 'rent fra' \n\t0x6D 0x65 0x20 0x61 0x72 0x65 0x20 0x72    // 'me are r' \n\t0x65 0x6D 0x6F 0x76 0x65 0x64 0x2E         // 'emoved.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_21= ktpcHowToScenes21\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"What Next--Remove Everything After\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"What Next--Remove Everything After\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTScenes21\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToScenes21\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes21\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_18=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToScenes2E __HELP_SYMBOL( STN \"ktpcHowToScenes2E\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes44 __HELP_SYMBOL( STN \"ktpcHowToScenes44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x01    // '????3???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x01 0x00 0x00 0x00 0x51 0x00 0x00 0x01    // '????Q???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x40    // '????5??@' \n\t0x05 0x00 0x00 0x00 0x3B 0x00 0x00 0x40    // '????;??@' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x40    // '????=??@' \n\t0x01 0x00 0x00 0x00 0x51 0x00 0x00 0x40    // '????Q??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x35 0x00 0x00 0x82    // '????5??' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0xC0    // '????5??' \n\t0x02 0x00 0x00 0x00 0x3D 0x00 0x00 0xC0    // '????=??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x6F 0x76 0x69    // '??Removi' \n\t0x6E 0x67 0x20 0x66 0x72 0x61 0x6D 0x65    // 'ng frame' \n\t0x73 0x20 0x61 0x66 0x74 0x65 0x72 0x20    // 's after ' \n\t0x74 0x68 0x65 0x20 0x63 0x75 0x72 0x72    // 'the curr' \n\t0x65 0x6E 0x74 0x20 0x66 0x72 0x61 0x6D    // 'ent fram' \n\t0x65 0x2D 0x2D 0x57 0x68 0x61 0x74 0x20    // 'e--What ' \n\t0x6E 0x65 0x78 0x74 0x3F 0x0D 0x0A 0x01    // 'next????' \n\t0x20 0x55 0x6E 0x64 0x6F 0x0D 0x0A 0x01    // ' Undo???' \n\t0x20 0x50 0x6C 0x61 0x79 0x69 0x6E 0x67    // ' Playing' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65                             // 'vie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_22= ktpcHowToScenes22\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"CO 1) To attach one movie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"CO 1) To attach one movie\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidSceneSorter kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes22\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_20=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToScenes22\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSceneSorter\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes22\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_20=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_20=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x01    // '????E???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x0A 0x00 0x00 0xFD 0x45 0x00 0x00 0x03    // '???E???' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_20=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x74 0x74    // '??To att' \n\t0x61 0x63 0x68 0x20 0x6F 0x6E 0x65 0x20    // 'ach one ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x74 0x6F    // 'movie to' \n\t0x20 0x74 0x68 0x65 0x20 0x65 0x6E 0x64    // ' the end' \n\t0x20 0x6F 0x66 0x20 0x61 0x6E 0x6F 0x74    // ' of anot' \n\t0x68 0x65 0x72 0x2C 0x20 0x63 0x6C 0x69    // 'her, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x53    // 'ck the S' \n\t0x63 0x65 0x6E 0x65 0x20 0x4F 0x72 0x67    // 'cene Org' \n\t0x61 0x6E 0x69 0x7A 0x65 0x72 0x2E         // 'anizer.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_23= ktpcHowToScenes23\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"CO 2) Click the portfolio\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"CO 2) Click the portfolio\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidSSorterOpen kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes23\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_29=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes23\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSSorterOpen\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes23\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_29=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6D 0x00 0x00 0x00    // '????m???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_29=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_29=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x50 0x6F 0x72 0x74    // 'the Port' \n\t0x66 0x6F 0x6C 0x69 0x6F 0x2E              // 'folio.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_24= ktpcHowToScenes24\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"CO 3) Click the movie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"CO 3) Click the movie\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes24\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpcHowToScenes24\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes24\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x95 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x20 0x00 0x00 0x03    // '??? ???' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x40    // '???? ??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x2D 0x2D 0x67    // '??Cut--g' \n\t0x6F 0x20 0x74 0x6F 0x20 0x73 0x74 0x61    // 'o to sta' \n\t0x6E 0x64 0x61 0x72 0x64 0x20 0x69 0x6D    // 'ndard im' \n\t0x70 0x6F 0x72 0x74 0x20 0x61 0x75 0x64    // 'port aud' \n\t0x69 0x6F                                  // 'io' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_25= ktpcHowToScenes25\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"CO 4)  The new movie is \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"CO 4)  The new movie is \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x0 0x57415645 kwavHTScenes25\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_22=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes25\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes25\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_22=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_22=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5F 0x00 0x00 0x01    // '????_???' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x40    // '????_??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_22=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x65 0x20 0x6E 0x65    // '??The ne' \n\t0x77 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'w movie ' \n\t0x69 0x73 0x20 0x61 0x74 0x74 0x61 0x63    // 'is attac' \n\t0x68 0x65 0x64 0x20 0x74 0x6F 0x20 0x74    // 'hed to t' \n\t0x68 0x65 0x20 0x65 0x6E 0x64 0x20 0x6F    // 'he end o' \n\t0x66 0x20 0x79 0x6F 0x75 0x72 0x20 0x63    // 'f your c' \n\t0x75 0x72 0x72 0x65 0x6E 0x74 0x20 0x6D    // 'urrent m' \n\t0x6F 0x76 0x69 0x65 0x2E 0x20 0x20 0x54    // 'ovie.  T' \n\t0x6F 0x20 0x72 0x65 0x74 0x75 0x72 0x6E    // 'o return' \n\t0x20 0x74 0x6F 0x20 0x79 0x6F 0x75 0x72    // ' to your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20    // ' movie, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x4F 0x4B    // 'click OK' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_26= ktpcHowToScenes26\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"CO 1) To undo the last thing\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"CO 1) To undo the last thing\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidUndo kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes26\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes26\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidUndo\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes26\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x54 0x00 0x00 0x01    // '????T???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x0A 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x0F 0x00 0x00 0xFD 0x2F 0x00 0x00 0x03    // '???/???' \n\t0x0A 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x0F 0x00 0x00 0xFD 0x4F 0x00 0x00 0x03    // '???O???' \n\t0x0A 0x00 0x00 0xFD 0x53 0x00 0x00 0x03    // '???S???' \n\t0x0F 0x00 0x00 0xFD 0x54 0x00 0x00 0x03    // '???T???' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x40    // '????T??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x47 0x00 0x00 0x82    // '????G??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x75 0x6E 0x64    // '??To und' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x6C 0x61    // 'o the la' \n\t0x73 0x74 0x20 0x74 0x68 0x69 0x6E 0x67    // 'st thing' \n\t0x20 0x79 0x6F 0x75 0x20 0x64 0x69 0x64    // ' you did' \n\t0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69 0x63    // '???Clic' \n\t0x6B 0x20 0x55 0x6E 0x64 0x6F 0x2E 0x0D    // 'k Undo.?' \n\t0x0A 0x54 0x6F 0x20 0x72 0x65 0x64 0x6F    // '?To redo' \n\t0x20 0x77 0x68 0x61 0x74 0x20 0x79 0x6F    // ' what yo' \n\t0x75 0x20 0x75 0x6E 0x64 0x69 0x64 0x0D    // 'u undid?' \n\t0x0A 0x95 0x09 0x43 0x6C 0x69 0x63 0x6B    // '??Click' \n\t0x20 0x52 0x65 0x64 0x6F 0x2E              // ' Redo.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_27= ktpcHowToScenes27\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"Def:  4 choices\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"Def:  4 choices\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTScenes27\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_37=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToScenes27\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTScenes27\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_37=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x98 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSOTransition1 __HELP_SYMBOL( STN \"mbmpSOTransition1\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSOTransition2 __HELP_SYMBOL( STN \"mbmpSOTransition2\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSOTransition3 __HELP_SYMBOL( STN \"mbmpSOTransition3\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSOTransition4 __HELP_SYMBOL( STN \"mbmpSOTransition4\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_37=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x01 0xFD 0x00 0x00 0x24 0x00 0x00 0x01    // '???$???' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x01 0xFD 0x00 0x00 0x30 0x00 0x00 0x01    // '???0???' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x01 0xFD 0x00 0x00 0x47 0x00 0x00 0x01    // '???G???' \n\t0x01 0x00 0x00 0x00 0x4B 0x00 0x00 0x01    // '????K???' \n\t0x01 0xFD 0x00 0x00 0x5E 0x00 0x00 0x01    // '???^???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x49 0x00 0x00 0x82    // '????I??' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0xC0    // '????&??' \n\t0x02 0x00 0x00 0x00 0x32 0x00 0x00 0xC0    // '????2??' \n\t0x03 0x00 0x00 0x00 0x49 0x00 0x00 0xC0    // '????I??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_37=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x03 0x03 0x34 0x20 0x74 0x72 0x61 0x6E    // '??4 tran' \n\t0x73 0x69 0x74 0x69 0x6F 0x6E 0x20 0x63    // 'sition c' \n\t0x68 0x6F 0x69 0x63 0x65 0x73 0x0D 0x0A    // 'hoices??' \n\t0x01 0x09 0x43 0x75 0x74 0x20 0x74 0x6F    // '??Cut to' \n\t0x20 0x62 0x6C 0x61 0x63 0x6B 0x0D 0x0A    // ' black??' \n\t0x01 0x09 0x44 0x69 0x73 0x73 0x6F 0x6C    // '??Dissol' \n\t0x76 0x65 0x0D 0x0A 0x01 0x09 0x44 0x69    // 've????Di' \n\t0x73 0x73 0x6F 0x6C 0x76 0x65 0x20 0x77    // 'ssolve w' \n\t0x69 0x74 0x68 0x20 0x62 0x6C 0x61 0x63    // 'ith blac' \n\t0x6B 0x0D 0x0A 0x01 0x09 0x44 0x69 0x73    // 'k????Dis' \n\t0x73 0x6F 0x6C 0x76 0x65 0x20 0x77 0x69    // 'solve wi' \n\t0x74 0x68 0x20 0x77 0x68 0x69 0x74 0x65    // 'th white' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_28= ktpcHowToScenes28\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes28\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToScenes28\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes28\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x1A 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74                   // '??Cut' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_29= ktpcHowToScenes29\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"What Next--Attach Movie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"What Next--Attach Movie\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTScenes29\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToScenes29\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes29\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToScenes2E __HELP_SYMBOL( STN \"ktpcHowToScenes2E\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes44 __HELP_SYMBOL( STN \"ktpcHowToScenes44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x01    // '????6???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x01 0x00 0x00 0x00 0x54 0x00 0x00 0x01    // '????T???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x36 0x00 0x00 0x03    // '???6???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x40    // '????8??@' \n\t0x05 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x01 0x00 0x00 0x00 0x54 0x00 0x00 0x40    // '????T??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x38 0x00 0x00 0x82    // '????8??' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0xC0    // '????8??' \n\t0x02 0x00 0x00 0x00 0x40 0x00 0x00 0xC0    // '????@??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x74 0x74 0x61 0x63 0x68    // '??Attach' \n\t0x69 0x6E 0x67 0x20 0x6F 0x6E 0x65 0x20    // 'ing one ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x74 0x6F    // 'movie to' \n\t0x20 0x74 0x68 0x65 0x20 0x65 0x6E 0x64    // ' the end' \n\t0x20 0x6F 0x66 0x20 0x61 0x6E 0x6F 0x74    // ' of anot' \n\t0x68 0x65 0x72 0x2D 0x2D 0x20 0x57 0x68    // 'her-- Wh' \n\t0x61 0x74 0x20 0x6E 0x65 0x78 0x74 0x3F    // 'at next?' \n\t0x0D 0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F    // '??? Undo' \n\t0x0D 0x0A 0x01 0x20 0x50 0x6C 0x61 0x79    // '??? Play' \n\t0x69 0x6E 0x67 0x20 0x79 0x6F 0x75 0x72    // 'ing your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65              // ' movie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2A= ktpcHowToScenes2A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"What Next--Undo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"What Next--Undo\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTScenes2A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_40=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToScenes2A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes2A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_40=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_24=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes2E __HELP_SYMBOL( STN \"ktpcHowToScenes2E\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_40=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x40    // '????!??@' \n\t0x02 0x00 0x00 0x00 0x35 0x00 0x00 0x40    // '????5??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x21 0x00 0x00 0x82    // '????!??' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0xC0    // '????!??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_40=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x03 0x03 0x55 0x6E 0x64 0x6F 0x69 0x6E    // '??Undoin' \n\t0x67 0x20 0x61 0x6E 0x64 0x20 0x72 0x65    // 'g and re' \n\t0x64 0x6F 0x69 0x6E 0x67 0x2D 0x2D 0x57    // 'doing--W' \n\t0x68 0x61 0x74 0x20 0x6E 0x65 0x78 0x74    // 'hat next' \n\t0x3F 0x0D 0x0A 0x01 0x20 0x50 0x6C 0x61    // '???? Pla' \n\t0x79 0x69 0x6E 0x67 0x20 0x79 0x6F 0x75    // 'ying you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65         // 'r movie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2B= ktpcHowToScenes2B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"Def:  Go to the place\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"Def:  Go to the place\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTScenes2B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToScenes2B\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTScenes2B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x38 0x01 0x00 0x00    // '????8???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_14=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4D 0x01 0x00 0x01    // '????M???' \n\t0x00 0x00 0x00 0x00 0x5C 0x00 0x00 0x02    // '????\\???' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x02    // '????b???' \n\t0x00 0x00 0x00 0x00 0xF2 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xF8 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00 0xB9 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xD4 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x80    // '????Y??' \n\t0x00 0x00 0x03 0x00 0xB9 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xEF 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xF2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0xC0    // '????Y??' \n\t0x02 0x00 0x00 0x00 0xEF 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x6F 0x20 0x74 0x6F 0x20    // '??Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x6F    // 'e??To mo' \n\t0x76 0x65 0x20 0x66 0x6F 0x72 0x77 0x61    // 've forwa' \n\t0x72 0x64 0x73 0x20 0x6F 0x72 0x20 0x62    // 'rds or b' \n\t0x61 0x63 0x6B 0x77 0x61 0x72 0x64 0x73    // 'ackwards' \n\t0x20 0x77 0x69 0x74 0x68 0x69 0x6E 0x20    // ' within ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65 0x0D    // 'a scene?' \n\t0x0A 0x95 0x09 0x55 0x73 0x65 0x20 0x74    // '??Use t' \n\t0x68 0x65 0x20 0x46 0x72 0x61 0x6D 0x65    // 'he Frame' \n\t0x20 0x53 0x6C 0x69 0x64 0x65 0x72 0x2E    // ' Slider.' \n\t0x20 0x0D 0x0A 0x01 0x0D 0x0A 0x43 0x6C    // ' ?????Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x46 0x69 0x72 0x73 0x74 0x2C 0x20 0x50    // 'First, P' \n\t0x72 0x65 0x76 0x69 0x6F 0x75 0x73 0x2C    // 'revious,' \n\t0x20 0x4E 0x65 0x78 0x74 0x2C 0x20 0x6F    // ' Next, o' \n\t0x72 0x20 0x4C 0x61 0x73 0x74 0x20 0x41    // 'r Last A' \n\t0x72 0x72 0x6F 0x77 0x20 0x6F 0x72 0x20    // 'rrow or ' \n\t0x64 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'drag the' \n\t0x20 0x73 0x6C 0x69 0x64 0x65 0x72 0x20    // ' slider ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x6D    // 'in the m' \n\t0x69 0x64 0x64 0x6C 0x65 0x20 0x6F 0x66    // 'iddle of' \n\t0x20 0x74 0x68 0x65 0x20 0x62 0x61 0x72    // ' the bar' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x6F    // '.??To mo' \n\t0x76 0x65 0x20 0x66 0x72 0x6F 0x6D 0x20    // 've from ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x74 0x6F    // 'scene to' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A    // ' scene??' \n\t0x95 0x09 0x55 0x73 0x65 0x20 0x74 0x68    // '?Use th' \n\t0x65 0x20 0x53 0x63 0x65 0x6E 0x65 0x20    // 'e Scene ' \n\t0x53 0x6C 0x69 0x64 0x65 0x72 0x2E 0x0D    // 'Slider.?' \n\t0x0A 0x01 0x0D 0x0A 0x43 0x6C 0x69 0x63    // '????Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x46 0x69    // 'k the Fi' \n\t0x72 0x73 0x74 0x2C 0x20 0x50 0x72 0x65    // 'rst, Pre' \n\t0x76 0x69 0x6F 0x75 0x73 0x2C 0x20 0x4E    // 'vious, N' \n\t0x65 0x78 0x74 0x2C 0x20 0x6F 0x72 0x20    // 'ext, or ' \n\t0x4C 0x61 0x73 0x74 0x20 0x41 0x72 0x72    // 'Last Arr' \n\t0x6F 0x77 0x20 0x6F 0x72 0x20 0x64 0x72    // 'ow or dr' \n\t0x61 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ag the s' \n\t0x6C 0x69 0x64 0x65 0x72 0x20 0x69 0x6E    // 'lider in' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x69 0x64    // ' the mid' \n\t0x64 0x6C 0x65 0x20 0x6F 0x66 0x20 0x74    // 'dle of t' \n\t0x68 0x65 0x20 0x62 0x61 0x72 0x2E         // 'he bar.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2C= ktpcHowToScenes2C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"Tip:  Change Scene Order\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"Tip:  Change Scene Order\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTScenes2C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_28=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToScenes2C\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTScenes2C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_28=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x34 0x01 0x00 0x00    // '????4???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_16=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSorter __HELP_SYMBOL( STN \"mbmpSceneSorter\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_28=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x01 0xF1 0x00 0x00 0x4D 0x00 0x00 0x01    // '???M???' \n\t0x01 0xF6 0x00 0x00 0x69 0x00 0x00 0x01    // '???i???' \n\t0x01 0x00 0x00 0x00 0x92 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x1B 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x0F 0x00 0x00 0xFD 0x92 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x80    // '????8??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6C 0x00 0x00 0x82    // '????l??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x69 0x00 0x00 0xC0    // '????i??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_28=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x68 0x61    // '???  Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x73 0x63 0x65 0x6E 0x65 0x20    // 'e scene ' \n\t0x6F 0x72 0x64 0x65 0x72 0x0D 0x0A 0x54    // 'order??T' \n\t0x6F 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'o change' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x63 0x65    // ' the sce' \n\t0x6E 0x65 0x20 0x6F 0x72 0x64 0x65 0x72    // 'ne order' \n\t0x0D 0x0A 0x31 0x09 0x43 0x6C 0x69 0x63    // '??1?Clic' \n\t0x6B 0x20 0x4D 0x6F 0x72 0x65 0x20 0x54    // 'k More T' \n\t0x6F 0x6F 0x6C 0x73 0x2E 0x0D 0x0A 0x32    // 'ools.??2' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x53 0x63 0x65 0x6E 0x65    // 'he Scene' \n\t0x20 0x4F 0x72 0x67 0x61 0x6E 0x69 0x7A    // ' Organiz' \n\t0x65 0x72 0x2D 0x01 0x0D 0x0A 0x33 0x09    // 'er-???3?' \n\t0x44 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'Drag the' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x73 0x20    // ' scenes ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x68 0x65 0x6D 0x2E                        // 'hem.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2D= ktpcHowToScenes2D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"Tip:  Remove Scene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"Tip:  Remove Scene\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTScenes2D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_39=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToScenes2D\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTScenes2D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_39=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x10 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_10=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCutCopyPaste __HELP_SYMBOL( STN \"mbmpCutCopyPaste\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPRemoveScene __HELP_SYMBOL( STN \"mbmpCCPRemoveScene\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_39=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x01 0xF6 0x00 0x00 0x4D 0x00 0x00 0x01    // '???M???' \n\t0x01 0x00 0x00 0x00 0x50 0x00 0x00 0x01    // '????P???' \n\t0x01 0xF6 0x00 0x00 0x6C 0x00 0x00 0x01    // '???l???' \n\t0x01 0x00 0x00 0x00 0x6D 0x00 0x00 0x01    // '????m???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x0F 0x00 0x00 0xFD 0x4D 0x00 0x00 0x03    // '???M???' \n\t0x0A 0x00 0x00 0xFD 0x4E 0x00 0x00 0x03    // '???N???' \n\t0x0F 0x00 0x00 0xFD 0x6D 0x00 0x00 0x03    // '???m???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x80    // '????(??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x50 0x00 0x00 0x82    // '????P??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x4D 0x00 0x00 0xC0    // '????M??' \n\t0x02 0x00 0x00 0x00 0x6C 0x00 0x00 0xC0    // '????l??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_39=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x52 0x65 0x6D    // '???  Rem' \n\t0x6F 0x76 0x69 0x6E 0x67 0x20 0x61 0x20    // 'oving a ' \n\t0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A 0x54    // 'scene??T' \n\t0x6F 0x20 0x72 0x65 0x6D 0x6F 0x76 0x65    // 'o remove' \n\t0x20 0x61 0x20 0x73 0x63 0x65 0x6E 0x65    // ' a scene' \n\t0x0D 0x0A 0x31 0x09 0x43 0x6C 0x69 0x63    // '??1?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x43 0x75    // 'k the Cu' \n\t0x74 0x2C 0x20 0x43 0x6F 0x70 0x79 0x2C    // 't, Copy,' \n\t0x20 0x26 0x20 0x50 0x61 0x73 0x74 0x65    // ' & Paste' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2D 0x01    // ' Tools-?' \n\t0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69 0x63    // '??2?Clic' \n\t0x6B 0x20 0x52 0x65 0x6D 0x6F 0x76 0x65    // 'k Remove' \n\t0x20 0x45 0x6E 0x74 0x69 0x72 0x65 0x20    // ' Entire ' \n\t0x53 0x63 0x65 0x6E 0x65 0x2D 0x01         // 'Scene-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2E= ktpcHowToScenes2E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"Tip:  Play Movie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"Tip:  Play Movie\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTScenes2E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToScenes2E\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTScenes2E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x5F 0x01 0x00 0x00    // '????_???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPlay __HELP_SYMBOL( STN \"mbmpPlay\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE9 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0x01 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x7A 0x01 0x00 0x01    // '????z???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x2B 0x00 0x00 0x03    // '???+???' \n\t0x0F 0x00 0x00 0xFD 0xE7 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x80    // '????+??' \n\t0x00 0x00 0x02 0x00 0x80 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xE9 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x04 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x04 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x80 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00 0x83 0x00 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00 0x01 0x01 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x50 0x6C 0x61    // '???  Pla' \n\t0x79 0x69 0x6E 0x67 0x20 0x79 0x6F 0x75    // 'ying you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x0D    // 'r movie?' \n\t0x0A 0x54 0x6F 0x20 0x70 0x6C 0x61 0x79    // '?To play' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x0D 0x0A 0x31 0x09 0x55    // 'vie??1?U' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x46    // 'se the F' \n\t0x72 0x61 0x6D 0x65 0x20 0x61 0x6E 0x64    // 'rame and' \n\t0x20 0x53 0x63 0x65 0x6E 0x65 0x20 0x53    // ' Scene S' \n\t0x6C 0x69 0x64 0x65 0x72 0x73 0x20 0x74    // 'liders t' \n\t0x6F 0x20 0x72 0x65 0x77 0x69 0x6E 0x64    // 'o rewind' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ie to th' \n\t0x65 0x20 0x70 0x61 0x72 0x74 0x20 0x79    // 'e part y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x70 0x6C 0x61 0x79 0x2E    // 'to play.' \n\t0x0D 0x0A 0x01 0x0D 0x0A 0x01 0x0D 0x0A    // '????????' \n\t0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'To move ' \n\t0x77 0x69 0x74 0x68 0x69 0x6E 0x20 0x61    // 'within a' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x2C 0x20    // ' scene, ' \n\t0x75 0x73 0x65 0x20 0x74 0x68 0x65 0x20    // 'use the ' \n\t0x46 0x72 0x61 0x6D 0x65 0x20 0x53 0x6C    // 'Frame Sl' \n\t0x69 0x64 0x65 0x72 0x2E 0x0D 0x0A 0x54    // 'ider.??T' \n\t0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20 0x66    // 'o move f' \n\t0x72 0x6F 0x6D 0x20 0x73 0x63 0x65 0x6E    // 'rom scen' \n\t0x65 0x20 0x74 0x6F 0x20 0x73 0x63 0x65    // 'e to sce' \n\t0x6E 0x65 0x2C 0x20 0x75 0x73 0x65 0x20    // 'ne, use ' \n\t0x74 0x68 0x65 0x20 0x53 0x63 0x65 0x6E    // 'the Scen' \n\t0x65 0x20 0x53 0x6C 0x69 0x64 0x65 0x72    // 'e Slider' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69    // '.??2?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x50    // 'ck the P' \n\t0x6C 0x61 0x79 0x20 0x62 0x75 0x74 0x74    // 'lay butt' \n\t0x6F 0x6E 0x2D 0x01 0x0D 0x0A 0x4E 0x6F    // 'on-???No' \n\t0x74 0x65 0x3A 0x20 0x20 0x49 0x66 0x20    // 'te:  If ' \n\t0x79 0x6F 0x75 0x27 0x72 0x65 0x20 0x61    // 'you're a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x6C 0x61    // 't the la' \n\t0x73 0x74 0x20 0x66 0x72 0x61 0x6D 0x65    // 'st frame' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x20 0x63    // 'en you c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x50 0x6C 0x61    // 'lick Pla' \n\t0x79 0x2C 0x20 0x74 0x68 0x65 0x20 0x6D    // 'y, the m' \n\t0x6F 0x76 0x69 0x65 0x20 0x61 0x75 0x74    // 'ovie aut' \n\t0x6F 0x6D 0x61 0x74 0x69 0x63 0x61 0x6C    // 'omatical' \n\t0x6C 0x79 0x20 0x72 0x65 0x77 0x69 0x6E    // 'ly rewin' \n\t0x64 0x73 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ds to th' \n\t0x65 0x20 0x62 0x65 0x67 0x69 0x6E 0x6E    // 'e beginn' \n\t0x69 0x6E 0x67 0x2E                        // 'ing.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2F= ktpcHowToScenes2F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"Tip:  Remove Pause\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"Tip:  Remove Pause\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTScenes2F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToScenes2F\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTScenes2F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_19=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\nAG(4)\n\tFREE\n\tFREE\n\tFREE\n\tFREE\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x01 0x00 0x00 0x00 0x97 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x0F 0x00 0x00 0xFD 0x97 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x60 0x00 0x00 0x80    // '????`??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x60 0x00 0x00 0x82    // '????`??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x06 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x52 0x65 0x6D    // '???  Rem' \n\t0x6F 0x76 0x69 0x6E 0x67 0x20 0x61 0x20    // 'oving a ' \n\t0x70 0x61 0x75 0x73 0x65 0x0D 0x0A 0x54    // 'pause??T' \n\t0x6F 0x20 0x72 0x65 0x6D 0x6F 0x76 0x65    // 'o remove' \n\t0x20 0x61 0x20 0x70 0x61 0x75 0x73 0x65    // ' a pause' \n\t0x0D 0x0A 0x95 0x09 0x54 0x75 0x72 0x6E    // '???Turn' \n\t0x20 0x6F 0x66 0x66 0x20 0x57 0x61 0x69    // ' off Wai' \n\t0x74 0x20 0x66 0x6F 0x72 0x20 0x53 0x6F    // 't for So' \n\t0x75 0x6E 0x64 0x20 0x74 0x6F 0x20 0x45    // 'und to E' \n\t0x6E 0x64 0x20 0x62 0x79 0x20 0x63 0x6C    // 'nd by cl' \n\t0x69 0x63 0x6B 0x69 0x6E 0x67 0x20 0x69    // 'icking i' \n\t0x74 0x20 0x61 0x67 0x61 0x69 0x6E 0x2E    // 't again.' \n\t0x0D 0x0A 0x54 0x68 0x65 0x20 0x62 0x75    // '??The bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x69 0x73 0x20    // 'tton is ' \n\t0x6F 0x66 0x66 0x20 0x77 0x68 0x65 0x6E    // 'off when' \n\t0x20 0x79 0x6F 0x75 0x20 0x6E 0x6F 0x20    // ' you no ' \n\t0x6C 0x6F 0x6E 0x67 0x65 0x72 0x20 0x73    // 'longer s' \n\t0x65 0x65 0x20 0x74 0x68 0x65 0x20 0x72    // 'ee the r' \n\t0x65 0x64 0x20 0x6C 0x69 0x67 0x68 0x74    // 'ed light' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_30= ktpcHowToScenes30\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTScenes30\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToScenes30\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes30\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74                   // '??Cut' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_31= ktpcHowToScenes31\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"Tip:  Moving Scene to Scene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"Tip:  Moving Scene to Scene\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTScenes31\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToScenes31\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTScenes31\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x51 0x01 0x00 0x00    // '????Q???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x17 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8D 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0x8F 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x02    // '????????' \n\t0x02 0x00 0x00 0x00 0x22 0x00 0x00 0x02    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x02    // '????5???' \n\t0x02 0x00 0x00 0x00 0x3A 0x00 0x00 0x02    // '????:???' \n\t0x00 0x00 0x00 0x00 0x5E 0x00 0x00 0x02    // '????^???' \n\t0x02 0x00 0x00 0x00 0x64 0x00 0x00 0x02    // '????d???' \n\t0x00 0x00 0x00 0x00 0x95 0x00 0x00 0x02    // '???????' \n\t0x02 0x00 0x00 0x00 0xB9 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x0F 0x00 0x00 0xFD 0x5E 0x00 0x00 0x03    // '???^???' \n\t0x00 0x00 0x00 0x00 0x95 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x80    // '????T??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x54 0x00 0x00 0x82    // '????T??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x54 0x00 0x00 0xC0    // '????T??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4D 0x6F 0x76    // '???  Mov' \n\t0x69 0x6E 0x67 0x20 0x66 0x72 0x6F 0x6D    // 'ing from' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x20 0x74    // ' scene t' \n\t0x6F 0x20 0x73 0x63 0x65 0x6E 0x65 0x0D    // 'o scene?' \n\t0x0A 0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65    // '?To move' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x73 0x63    // ' from sc' \n\t0x65 0x6E 0x65 0x20 0x74 0x6F 0x20 0x73    // 'ene to s' \n\t0x63 0x65 0x6E 0x65 0x0D 0x0A 0x95 0x09    // 'cene???' \n\t0x55 0x73 0x65 0x20 0x74 0x68 0x65 0x20    // 'Use the ' \n\t0x53 0x63 0x65 0x6E 0x65 0x20 0x53 0x6C    // 'Scene Sl' \n\t0x69 0x64 0x65 0x72 0x0D 0x0A 0x01 0x20    // 'ider??? ' \n\t0x20 0x4E 0x6F 0x74 0x65 0x3A 0x20 0x20    // ' Note:  ' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x46 0x69 0x72 0x73 0x74 0x2C    // 'e First,' \n\t0x20 0x50 0x72 0x65 0x76 0x69 0x6F 0x75    // ' Previou' \n\t0x73 0x2C 0x20 0x4E 0x65 0x78 0x74 0x2C    // 's, Next,' \n\t0x20 0x6F 0x72 0x20 0x4C 0x61 0x73 0x74    // ' or Last' \n\t0x20 0x41 0x72 0x72 0x6F 0x77 0x20 0x6F    // ' Arrow o' \n\t0x72 0x20 0x64 0x72 0x61 0x67 0x20 0x74    // 'r drag t' \n\t0x68 0x65 0x20 0x73 0x6C 0x69 0x64 0x65    // 'he slide' \n\t0x72 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'r in the' \n\t0x20 0x6D 0x69 0x64 0x64 0x6C 0x65 0x20    // ' middle ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x62    // 'of the b' \n\t0x61 0x72 0x2E                             // 'ar.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_32= ktpcHowToScenes32\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"2a)  Click Camera Angles\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"2a)  Click Camera Angles\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidSettingsCameras kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes32\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_42=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToScenes32\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSettingsCameras\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes32\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_42=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x79 0x00 0x00 0x00    // '????y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_42=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_42=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x61 0x6D 0x65 0x72 0x61 0x20 0x41    // 'Camera A' \n\t0x6E 0x67 0x6C 0x65 0x73 0x2E              // 'ngles.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_33= ktpcHowToScenes33\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"Def:  Camera Angle\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"Def:  Camera Angle\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToScenes33\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x61 0x6D 0x65 0x72 0x61    // '??Camera' \n\t0x20 0x61 0x6E 0x67 0x6C 0x65 0x73 0x0D    // ' angles?' \n\t0x0A 0x54 0x68 0x65 0x72 0x65 0x20 0x61    // '?There a' \n\t0x72 0x65 0x20 0x6D 0x61 0x6E 0x79 0x20    // 're many ' \n\t0x64 0x69 0x66 0x66 0x65 0x72 0x65 0x6E    // 'differen' \n\t0x74 0x20 0x63 0x61 0x6D 0x65 0x72 0x61    // 't camera' \n\t0x20 0x61 0x6E 0x67 0x6C 0x65 0x73 0x20    // ' angles ' \n\t0x66 0x6F 0x72 0x20 0x65 0x61 0x63 0x68    // 'for each' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x2E 0x20    // ' scene. ' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // ' When yo' \n\t0x75 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'u change' \n\t0x20 0x61 0x20 0x63 0x61 0x6D 0x65 0x72    // ' a camer' \n\t0x61 0x20 0x61 0x6E 0x67 0x6C 0x65 0x2C    // 'a angle,' \n\t0x20 0x79 0x6F 0x75 0x20 0x61 0x72 0x65    // ' you are' \n\t0x6E 0x27 0x74 0x20 0x63 0x68 0x61 0x6E    // 'n't chan' \n\t0x67 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ging the' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x2D 0x2D    // ' scene--' \n\t0x79 0x6F 0x75 0x27 0x72 0x65 0x20 0x6A    // 'you're j' \n\t0x75 0x73 0x74 0x20 0x63 0x68 0x61 0x6E    // 'ust chan' \n\t0x67 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ging the' \n\t0x20 0x76 0x69 0x65 0x77 0x20 0x6F 0x66    // ' view of' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x73 0x63    // ' that sc' \n\t0x65 0x6E 0x65 0x2E                        // 'ene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_34= ktpcHowToScenes34\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"CO 1) To add a transition beginning\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"CO 1) To add a transition beginning\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobHowtoSequence kidSettingsCover kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes34\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_32=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpcHowToScenes34\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSettingsCover\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes34\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_32=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_32=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x3A 0x00 0x00 0x03    // '???:???' \n\t0x0A 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x0F 0x00 0x00 0xFD 0x48 0x00 0x00 0x03    // '???H???' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x40    // '????H??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_32=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x61 0x20 0x74 0x72 0x61 0x6E 0x73    // ' a trans' \n\t0x69 0x74 0x69 0x6F 0x6E 0x20 0x61 0x74    // 'ition at' \n\t0x20 0x74 0x68 0x65 0x20 0x62 0x65 0x67    // ' the beg' \n\t0x69 0x6E 0x6E 0x69 0x6E 0x67 0x20 0x6F    // 'inning o' \n\t0x66 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'f your m' \n\t0x6F 0x76 0x69 0x65 0x2C 0x20 0x63 0x6C    // 'ovie, cl' \n\t0x69 0x63 0x6B 0x20 0x53 0x63 0x65 0x6E    // 'ick Scen' \n\t0x65 0x20 0x43 0x68 0x6F 0x69 0x63 0x65    // 'e Choice' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_35= ktpcHowToScenes35\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"CO 2) Click the arrows\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"CO 2) Click the arrows\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon3 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x168 0x18B 0x57415645 kwavHTScenes35\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_34=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon3\"\n\tITEM\n\t\t\"ktpcHowToScenes35\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes35\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_34=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x02 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_34=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x67 0x00 0x00 0x01    // '????g???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x4A 0x00 0x00 0x03    // '???J???' \n\t0x00 0x00 0x00 0x00 0x67 0x00 0x00 0x40    // '????g??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4A 0x00 0x00 0x82    // '????J??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_34=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x03 0x03 0x31 0x09 0x49 0x66 0x20 0x6E    // '??1?If n' \n\t0x65 0x63 0x65 0x73 0x73 0x61 0x72 0x79    // 'ecessary' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x4E 0x65 0x78 0x74    // 'the Next' \n\t0x20 0x61 0x72 0x72 0x6F 0x77 0x20 0x75    // ' arrow u' \n\t0x6E 0x74 0x69 0x6C 0x20 0x79 0x6F 0x75    // 'ntil you' \n\t0x20 0x73 0x65 0x65 0x20 0x74 0x68 0x65    // ' see the' \n\t0x20 0x62 0x6C 0x61 0x63 0x6B 0x20 0x62    // ' black b' \n\t0x61 0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E    // 'ackgroun' \n\t0x64 0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C    // 'd.??2?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x62 0x6C 0x61 0x63 0x6B 0x20 0x62 0x61    // 'black ba' \n\t0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'ckground' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_36= ktpcHowToScenes36\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"CO 3) Click the Scene Organizer.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"CO 3) Click the Scene Organizer.\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidSceneSorter kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes36\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToScenes36\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSceneSorter\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes36\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x53 0x63 0x65 0x6E    // 'the Scen' \n\t0x65 0x20 0x4F 0x72 0x67 0x61 0x6E 0x69    // 'e Organi' \n\t0x7A 0x65 0x72 0x2E                        // 'zer.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_37= ktpcHowToScenes37\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"CO 4) Drag the black background to the first slot.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"CO 4) Drag the black background to the first slot.\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x82 0x0 0x57415645 kwavHTScenes37\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_24=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpcHowToScenes37\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes37\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_24=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x05 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes27 __HELP_SYMBOL( STN \"ktpcHowToScenes27\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_24=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x86 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x53 0x00 0x00 0x04    // '???S???' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x40    // '???????@' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7B 0x00 0x00 0x82    // '????{??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_24=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x03 0x03 0x31 0x09 0x44 0x72 0x61 0x67    // '??1?Drag' \n\t0x20 0x74 0x68 0x65 0x20 0x62 0x6C 0x61    // ' the bla' \n\t0x63 0x6B 0x20 0x62 0x61 0x63 0x6B 0x67    // 'ck backg' \n\t0x72 0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F    // 'round to' \n\t0x20 0x74 0x68 0x69 0x73 0x20 0x73 0x6C    // ' this sl' \n\t0x6F 0x74 0x2E 0x20 0x0D 0x0A 0x32 0x09    // 'ot. ??2?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x6F 0x6E    // 'Click on' \n\t0x65 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'e of the' \n\t0x20 0x34 0x20 0x74 0x72 0x61 0x6E 0x73    // ' 4 trans' \n\t0x69 0x74 0x69 0x6F 0x6E 0x20 0x63 0x68    // 'ition ch' \n\t0x6F 0x69 0x63 0x65 0x73 0x20 0x74 0x6F    // 'oices to' \n\t0x20 0x74 0x68 0x65 0x20 0x72 0x69 0x67    // ' the rig' \n\t0x68 0x74 0x20 0x6F 0x66 0x20 0x74 0x68    // 'ht of th' \n\t0x65 0x20 0x62 0x6C 0x61 0x63 0x6B 0x20    // 'e black ' \n\t0x62 0x61 0x63 0x6B 0x67 0x72 0x6F 0x75    // 'backgrou' \n\t0x6E 0x64 0x2E 0x0D 0x0A 0x33 0x09 0x43    // 'nd.??3?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x4F 0x4B 0x2E    // 'lick OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_38= ktpcHowToScenes38\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"CO 5) Click the transition\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"CO 5) Click the transition\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidSceneSorter kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes38\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToScenes38\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSceneSorter\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes38\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x04 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x2E              // '??Cut.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_39= ktpcHowToScenes39\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"CO 6) Then click OK--Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"CO 6) Then click OK--Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidSSorterOk kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTScenes39\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_31=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes39\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSSorterOk\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes39\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_31=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x38 0x00 0x00 0x00    // '????8???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_31=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x04 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_31=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x2E              // '??Cut.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3A= ktpcHowToScenes3A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"Transition Beginning--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"Transition Beginning--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTScenes3A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToScenes3A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes3A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToScenes44 __HELP_SYMBOL( STN \"ktpcHowToScenes44\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToScenes2E __HELP_SYMBOL( STN \"ktpcHowToScenes2E\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5C 0x00 0x00 0x01    // '????\\???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x40    // '????F??@' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x40    // '????H??@' \n\t0x02 0x00 0x00 0x00 0x5C 0x00 0x00 0x40    // '????\\??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x40 0x00 0x00 0x82    // '????@??' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0xC0    // '????@??' \n\t0x03 0x00 0x00 0x00 0x48 0x00 0x00 0xC0    // '????H??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x64 0x64 0x69 0x6E 0x67    // '??Adding' \n\t0x20 0x61 0x20 0x74 0x72 0x61 0x6E 0x73    // ' a trans' \n\t0x69 0x74 0x69 0x6F 0x6E 0x20 0x74 0x6F    // 'ition to' \n\t0x20 0x74 0x68 0x65 0x20 0x62 0x65 0x67    // ' the beg' \n\t0x69 0x6E 0x6E 0x69 0x6E 0x67 0x20 0x6F    // 'inning o' \n\t0x66 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'f your m' \n\t0x6F 0x76 0x69 0x65 0x2D 0x2D 0x57 0x68    // 'ovie--Wh' \n\t0x61 0x74 0x20 0x6E 0x65 0x78 0x74 0x3F    // 'at next?' \n\t0x0D 0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F    // '??? Undo' \n\t0x0D 0x0A 0x01 0x20 0x50 0x6C 0x61 0x79    // '??? Play' \n\t0x69 0x6E 0x67 0x20 0x79 0x6F 0x75 0x72    // 'ing your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65              // ' movie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3B= ktpcHowToScenes3B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"CO 2a)  Click the scene.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"CO 2a)  Click the scene.\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTScenes3B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToScenes3B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTScenes3B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x61 0x00 0x00 0x00    // '????a???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x73 0x63 0x65 0x6E    // 'the scen' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_44= ktpcHowToScenes44\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"Tip:  Undo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"Tip:  Undo\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTScenes44\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_33=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToScenes44\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTScenes44\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_33=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpUndo __HELP_SYMBOL( STN \"mbmpUndo\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRedo __HELP_SYMBOL( STN \"mbmpRedo\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_33=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x01    // '????.???' \n\t0x01 0xF6 0x00 0x00 0x3B 0x00 0x00 0x01    // '???;???' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x01 0xF1 0x00 0x00 0x3E 0x00 0x00 0x01    // '???>???' \n\t0x01 0x00 0x00 0x00 0x56 0x00 0x00 0x01    // '????V???' \n\t0x01 0xF6 0x00 0x00 0x63 0x00 0x00 0x01    // '???c???' \n\t0x01 0x00 0x00 0x00 0x64 0x00 0x00 0x01    // '????d???' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x03    // '????>???' \n\t0x0A 0x00 0x00 0xFD 0x54 0x00 0x00 0x03    // '???T???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x56 0x00 0x00 0x82    // '????V??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0xC0    // '????;??' \n\t0x02 0x00 0x00 0x00 0x63 0x00 0x00 0xC0    // '????c??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_33=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x55 0x6E 0x64    // '???  Und' \n\t0x6F 0x2F 0x52 0x65 0x64 0x6F 0x0D 0x0A    // 'o/Redo??' \n\t0x54 0x6F 0x20 0x75 0x6E 0x64 0x6F 0x20    // 'To undo ' \n\t0x74 0x68 0x65 0x20 0x6C 0x61 0x73 0x74    // 'the last' \n\t0x20 0x74 0x68 0x69 0x6E 0x67 0x20 0x79    // ' thing y' \n\t0x6F 0x75 0x20 0x64 0x69 0x64 0x0D 0x0A    // 'ou did??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x55 0x6E 0x64 0x6F 0x2D 0x01 0x0D 0x0A    // 'Undo-???' \n\t0x54 0x6F 0x20 0x72 0x65 0x64 0x6F 0x20    // 'To redo ' \n\t0x77 0x68 0x61 0x74 0x20 0x79 0x6F 0x75    // 'what you' \n\t0x20 0x75 0x6E 0x64 0x69 0x64 0x0D 0x0A    // ' undid??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x52 0x65 0x64 0x6F 0x2D 0x01              // 'Redo-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_45= ktpcHowToScenes45\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"Def:  frame\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"Def:  frame\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTScenes45\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToScenes45\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTScenes45\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x56 0x01 0x00 0x00    // '????V???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA4 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0xA6 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x74 0x00 0x00 0x02    // '????t???' \n\t0x01 0x00 0x00 0x00 0x7A 0x00 0x00 0x02    // '????z???' \n\t0x00 0x00 0x00 0x00 0xAB 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xD0 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x0A 0x00 0x00 0xFD 0x4F 0x00 0x00 0x03    // '???O???' \n\t0x0F 0x00 0x00 0xFD 0x68 0x00 0x00 0x03    // '???h???' \n\t0x0A 0x00 0x00 0xFD 0x6B 0x00 0x00 0x03    // '???k???' \n\t0x0F 0x00 0x00 0xFD 0x74 0x00 0x00 0x03    // '???t???' \n\t0x00 0x00 0x00 0x00 0xAB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x6A 0x00 0x00 0x80    // '????j??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6D 0x00 0x00 0x82    // '????m??' \n\t0x00 0x00 0x00 0x00 0x6A 0x00 0x00 0xC0    // '????j??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x72 0x61 0x6D 0x65 0x0D    // '??Frame?' \n\t0x0A 0x4F 0x6E 0x65 0x20 0x73 0x63 0x72    // '?One scr' \n\t0x65 0x65 0x6E 0x20 0x6F 0x66 0x20 0x79    // 'een of y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x2E 0x20 0x0D 0x0A 0x54 0x6F 0x20    // 'e. ??To ' \n\t0x6D 0x6F 0x76 0x65 0x20 0x66 0x6F 0x72    // 'move for' \n\t0x77 0x61 0x72 0x64 0x73 0x20 0x6F 0x72    // 'wards or' \n\t0x20 0x62 0x61 0x63 0x6B 0x77 0x61 0x72    // ' backwar' \n\t0x64 0x73 0x20 0x77 0x69 0x74 0x68 0x69    // 'ds withi' \n\t0x6E 0x20 0x61 0x20 0x73 0x63 0x65 0x6E    // 'n a scen' \n\t0x65 0x0D 0x0A 0x95 0x09 0x55 0x73 0x65    // 'e???Use' \n\t0x20 0x74 0x68 0x65 0x20 0x46 0x72 0x61    // ' the Fra' \n\t0x6D 0x65 0x20 0x53 0x6C 0x69 0x64 0x65    // 'me Slide' \n\t0x72 0x2E 0x0D 0x0A 0x01 0x0D 0x0A 0x4E    // 'r.?????N' \n\t0x6F 0x74 0x65 0x3A 0x20 0x20 0x43 0x6C    // 'ote:  Cl' \n\t0x69 0x63 0x6B 0x20 0x20 0x74 0x68 0x65    // 'ick  the' \n\t0x20 0x46 0x69 0x72 0x73 0x74 0x2C 0x20    // ' First, ' \n\t0x50 0x72 0x65 0x76 0x69 0x6F 0x75 0x73    // 'Previous' \n\t0x2C 0x20 0x4E 0x65 0x78 0x74 0x2C 0x20    // ', Next, ' \n\t0x6F 0x72 0x20 0x4C 0x61 0x73 0x74 0x20    // 'or Last ' \n\t0x41 0x72 0x72 0x6F 0x77 0x20 0x6F 0x72    // 'Arrow or' \n\t0x20 0x64 0x72 0x61 0x67 0x20 0x74 0x68    // ' drag th' \n\t0x65 0x20 0x73 0x6C 0x69 0x64 0x65 0x72    // 'e slider' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x6D 0x69 0x64 0x64 0x6C 0x65 0x20 0x6F    // 'middle o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x62 0x61    // 'f the ba' \n\t0x72 0x2E                                  // 'r.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_46= ktpcHowToScenes46\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"Tip:  Change Camera Angle\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"Tip:  Change Camera Angle\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTScenes46\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToScenes46\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTScenes46\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4D 0x01 0x00 0x00    // '????M???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSettingsCameras __HELP_SYMBOL( STN \"mbmpSettingsCameras\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x71 0x00 0x00 0x01    // '????q???' \n\t0x01 0xF6 0x00 0x00 0x87 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xAC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x53 0x00 0x00 0x03    // '???S???' \n\t0x0A 0x00 0x00 0xFD 0x71 0x00 0x00 0x03    // '???q???' \n\t0x0F 0x00 0x00 0xFD 0xAC 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0x80    // '????q??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8A 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x87 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x43 0x68 0x61 0x6E    // '??? Chan' \n\t0x67 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ging the' \n\t0x20 0x63 0x61 0x6D 0x65 0x72 0x61 0x20    // ' camera ' \n\t0x61 0x6E 0x67 0x6C 0x65 0x0D 0x0A 0x54    // 'angle??T' \n\t0x68 0x65 0x72 0x65 0x20 0x61 0x72 0x65    // 'here are' \n\t0x20 0x6D 0x61 0x6E 0x79 0x20 0x70 0x6F    // ' many po' \n\t0x73 0x73 0x69 0x62 0x6C 0x65 0x20 0x63    // 'ssible c' \n\t0x61 0x6D 0x65 0x72 0x61 0x20 0x61 0x6E    // 'amera an' \n\t0x67 0x6C 0x65 0x73 0x20 0x66 0x6F 0x72    // 'gles for' \n\t0x20 0x65 0x61 0x63 0x68 0x20 0x73 0x63    // ' each sc' \n\t0x65 0x6E 0x65 0x2E 0x20 0x0D 0x0A 0x54    // 'ene. ??T' \n\t0x6F 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'o change' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x61 0x6D    // ' the cam' \n\t0x65 0x72 0x61 0x20 0x61 0x6E 0x67 0x6C    // 'era angl' \n\t0x65 0x0D 0x0A 0x31 0x09 0x43 0x6C 0x69    // 'e??1?Cli' \n\t0x63 0x6B 0x20 0x43 0x61 0x6D 0x65 0x72    // 'ck Camer' \n\t0x61 0x20 0x41 0x6E 0x67 0x6C 0x65 0x73    // 'a Angles' \n\t0x2D 0x01 0x0D 0x0A 0x32 0x09 0x43 0x6C    // '-???2?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x63 0x61 0x6D 0x65 0x72 0x61 0x20 0x61    // 'camera a' \n\t0x6E 0x67 0x6C 0x65 0x20 0x79 0x6F 0x75    // 'ngle you' \n\t0x20 0x77 0x61 0x6E 0x74 0x2E              // ' want.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_49= ktpcHowToScenes49\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"Tip:  Moving Within Scene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"Tip:  Moving Within Scene\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTScenes49\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_30=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToScenes49\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTScenes49\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_30=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4E 0x01 0x00 0x00    // '????N???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_30=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x99 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0x9B 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xC5 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x6A 0x00 0x00 0x02    // '????j???' \n\t0x02 0x00 0x00 0x00 0x70 0x00 0x00 0x02    // '????p???' \n\t0x00 0x00 0x00 0x00 0xA1 0x00 0x00 0x02    // '???????' \n\t0x02 0x00 0x00 0x00 0xC5 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x48 0x00 0x00 0x03    // '???H???' \n\t0x0F 0x00 0x00 0xFD 0x6A 0x00 0x00 0x03    // '???j???' \n\t0x00 0x00 0x00 0x00 0xA1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x60 0x00 0x00 0x80    // '????`??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x63 0x00 0x00 0x82    // '????c??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x60 0x00 0x00 0xC0    // '????`??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_30=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4D 0x6F 0x76    // '???  Mov' \n\t0x69 0x6E 0x67 0x20 0x77 0x69 0x74 0x68    // 'ing with' \n\t0x69 0x6E 0x20 0x61 0x20 0x73 0x63 0x65    // 'in a sce' \n\t0x6E 0x65 0x0D 0x0A 0x54 0x6F 0x20 0x6D    // 'ne??To m' \n\t0x6F 0x76 0x65 0x20 0x66 0x6F 0x72 0x77    // 'ove forw' \n\t0x61 0x72 0x64 0x73 0x20 0x6F 0x72 0x20    // 'ards or ' \n\t0x62 0x61 0x63 0x6B 0x77 0x61 0x72 0x64    // 'backward' \n\t0x73 0x20 0x77 0x69 0x74 0x68 0x69 0x6E    // 's within' \n\t0x20 0x61 0x20 0x73 0x63 0x65 0x6E 0x65    // ' a scene' \n\t0x0D 0x0A 0x95 0x09 0x55 0x73 0x65 0x20    // '???Use ' \n\t0x74 0x68 0x65 0x20 0x46 0x72 0x61 0x6D    // 'the Fram' \n\t0x65 0x20 0x53 0x6C 0x69 0x64 0x65 0x72    // 'e Slider' \n\t0x0D 0x0A 0x01 0x0D 0x0A 0x4E 0x6F 0x74    // '?????Not' \n\t0x65 0x3A 0x20 0x20 0x43 0x6C 0x69 0x63    // 'e:  Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x46 0x69    // 'k the Fi' \n\t0x72 0x73 0x74 0x2C 0x20 0x50 0x72 0x65    // 'rst, Pre' \n\t0x76 0x69 0x6F 0x75 0x73 0x2C 0x20 0x4E    // 'vious, N' \n\t0x65 0x78 0x74 0x2C 0x20 0x6F 0x72 0x20    // 'ext, or ' \n\t0x4C 0x61 0x73 0x74 0x20 0x41 0x72 0x72    // 'Last Arr' \n\t0x6F 0x77 0x20 0x6F 0x72 0x20 0x64 0x72    // 'ow or dr' \n\t0x61 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ag the s' \n\t0x6C 0x69 0x64 0x65 0x72 0x20 0x69 0x6E    // 'lider in' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x69 0x64    // ' the mid' \n\t0x64 0x6C 0x65 0x20 0x6F 0x66 0x20 0x74    // 'dle of t' \n\t0x68 0x65 0x20 0x62 0x61 0x72 0x2E         // 'he bar.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_51= ktpcHowToScenes51\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTScenes51\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_36=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToScenes51\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTScenes51\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_36=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_36=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x03    // '????y???' \n\t0x0A 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x79 0x00 0x00 0x80    // '????y??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x79 0x00 0x00 0x82    // '????y??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_36=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x0D 0x0A    // '??Drag??' \n\t0x31 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '1?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x73 0x20    // 'tton as ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'you move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x57    // 'se.??2?W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x76 0x65 0x20 0x66 0x69 0x6E 0x69 0x73    // 've finis' \n\t0x68 0x65 0x64 0x20 0x64 0x72 0x61 0x67    // 'hed drag' \n\t0x67 0x69 0x6E 0x67 0x2C 0x20 0x6C 0x65    // 'ging, le' \n\t0x74 0x20 0x67 0x6F 0x20 0x6F 0x66 0x20    // 't go of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x2E 0x0D 0x0A 0x54 0x69 0x70 0x20 0x66    // '.??Tip f' \n\t0x72 0x6F 0x6D 0x20 0x4D 0x63 0x5A 0x65    // 'rom McZe' \n\t0x65 0x3A 0x20 0x20 0x59 0x6F 0x75 0x27    // 'e:  You'' \n\t0x6C 0x6C 0x20 0x67 0x65 0x74 0x20 0x74    // 'll get t' \n\t0x68 0x65 0x20 0x62 0x65 0x73 0x74 0x20    // 'he best ' \n\t0x72 0x65 0x73 0x75 0x6C 0x74 0x73 0x20    // 'results ' \n\t0x69 0x66 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'if you m' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x73 0x6C    // 'mouse sl' \n\t0x6F 0x77 0x6C 0x79 0x20 0x61 0x73 0x20    // 'owly as ' \n\t0x79 0x6F 0x75 0x20 0x64 0x72 0x61 0x67    // 'you drag' \n\t0x2E 0x20                                  // '. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5C= ktpcHowToScenes5C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5C, __HELP_NAME(\"Tip:  Add frames\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5C, __HELP_NAME(\"Tip:  Add frames\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_38=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToScenes5C\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_38=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x54 0x01 0x00 0x00    // '????T???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewind __HELP_SYMBOL( STN \"mbmpRewind\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpForward __HELP_SYMBOL( STN \"mbmpForward\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_38=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4D 0x00 0x00 0x01    // '????M???' \n\t0x01 0xFE 0x00 0x00 0x7F 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x80 0x00 0x00 0x01    // '???????' \n\t0x01 0xFE 0x00 0x00 0x83 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xDD 0x00 0x00 0x01    // '???????' \n\t0x01 0xFE 0x00 0x00 0x0D 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x0E 0x01 0x00 0x01    // '????????' \n\t0x01 0xFE 0x00 0x00 0x11 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x23 0x01 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x03    // '????\"???' \n\t0x0A 0x00 0x00 0xFD 0x4D 0x00 0x00 0x03    // '???M???' \n\t0x00 0x00 0x00 0x00 0xBA 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xDD 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xDF 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x7F 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x0D 0x01 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_38=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x41 0x64 0x64 0x69    // '??? Addi' \n\t0x6E 0x67 0x20 0x65 0x78 0x74 0x72 0x61    // 'ng extra' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x73 0x20    // ' frames ' \n\t0x74 0x6F 0x20 0x61 0x20 0x73 0x63 0x65    // 'to a sce' \n\t0x6E 0x65 0x0D 0x0A 0x54 0x6F 0x20 0x61    // 'ne??To a' \n\t0x64 0x64 0x20 0x66 0x72 0x61 0x6D 0x65    // 'dd frame' \n\t0x73 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 's to the' \n\t0x20 0x62 0x65 0x67 0x69 0x6E 0x6E 0x69    // ' beginni' \n\t0x6E 0x67 0x20 0x6F 0x66 0x20 0x61 0x20    // 'ng of a ' \n\t0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A 0x95    // 'scene??' \n\t0x09 0x48 0x6F 0x6C 0x64 0x20 0x64 0x6F    // '?Hold do' \n\t0x77 0x6E 0x20 0x43 0x74 0x72 0x6C 0x20    // 'wn Ctrl ' \n\t0x61 0x73 0x20 0x79 0x6F 0x75 0x20 0x63    // 'as you c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x50 0x72 0x65 0x76 0x69 0x6F 0x75    // ' Previou' \n\t0x73 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 's button' \n\t0x2D 0x01 0x20 0x6F 0x6E 0x20 0x74 0x68    // '-? on th' \n\t0x65 0x20 0x46 0x72 0x61 0x6D 0x65 0x20    // 'e Frame ' \n\t0x53 0x6C 0x69 0x64 0x65 0x72 0x20 0x28    // 'Slider (' \n\t0x6C 0x6F 0x63 0x61 0x74 0x65 0x64 0x20    // 'located ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x6C    // 'in the l' \n\t0x6F 0x77 0x65 0x72 0x2D 0x6C 0x65 0x66    // 'ower-lef' \n\t0x74 0x20 0x63 0x6F 0x72 0x6E 0x65 0x72    // 't corner' \n\t0x29 0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x61    // ').??To a' \n\t0x64 0x64 0x20 0x66 0x72 0x61 0x6D 0x65    // 'dd frame' \n\t0x73 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 's at the' \n\t0x20 0x65 0x6E 0x64 0x20 0x6F 0x66 0x20    // ' end of ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65 0x0D    // 'a scene?' \n\t0x0A 0x95 0x09 0x48 0x6F 0x6C 0x64 0x20    // '??Hold ' \n\t0x64 0x6F 0x77 0x6E 0x20 0x43 0x74 0x72    // 'down Ctr' \n\t0x6C 0x20 0x61 0x73 0x20 0x79 0x6F 0x75    // 'l as you' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x4E 0x65 0x78 0x74 0x20    // 'he Next ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2D 0x01    // 'button-?' \n\t0x20 0x6F 0x6E 0x20 0x74 0x68 0x65 0x20    // ' on the ' \n\t0x46 0x72 0x61 0x6D 0x65 0x20 0x53 0x6C    // 'Frame Sl' \n\t0x69 0x64 0x65 0x72 0x2E                   // 'ider.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/htsounds.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcHowToSounds00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"CO--Click Sounds\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"CO--Click Sounds\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidSoundsCover kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToSounds00\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSoundsCover\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4E 0x00 0x00 0x00    // '????N???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x53 0x6F 0x75 0x6E 0x64 0x73 0x2E         // 'Sounds.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpcHowToSounds01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"CO 1) To see the sound effect\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"CO 1) To see the sound effect\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidSoundsEfxBrowser kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_21=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToSounds01\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSoundsEfxBrowser\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_21=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x12 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_26=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds52 __HELP_SYMBOL( STN \"ktpcHowToSounds52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_21=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8B 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x78 0x00 0x00 0x02    // '????x???' \n\t0x01 0x00 0x00 0x00 0x7E 0x00 0x00 0x02    // '????~???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x0F 0x00 0x00 0xFD 0x7C 0x00 0x00 0x03    // '???|???' \n\t0x00 0x00 0x00 0x00 0x7D 0x00 0x00 0x03    // '????}???' \n\t0x0A 0x00 0x00 0xFD 0x8A 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x8B 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x04    // '????0???' \n\t0x0D 0x00 0x00 0xFE 0x3F 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x40    // '????0??@' \n\t0x03 0x00 0x00 0x00 0x3F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x80    // '????.??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x75 0x00 0x00 0x82    // '????u??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_21=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x20 0x65 0x66 0x66 0x65 0x63    // 'nd effec' \n\t0x74 0x73 0x20 0x79 0x6F 0x75 0x20 0x63    // 'ts you c' \n\t0x61 0x6E 0x20 0x63 0x68 0x6F 0x6F 0x73    // 'an choos' \n\t0x65 0x20 0x66 0x72 0x6F 0x6D 0x0D 0x0A    // 'e from??' \n\t0x31 0x09 0x47 0x6F 0x20 0x74 0x6F 0x20    // '1?Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'e in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'r movie ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x61 0x64 0x64 0x20 0x61 0x20    // 'o add a ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x65 0x66    // 'sound ef' \n\t0x66 0x65 0x63 0x74 0x2E 0x0D 0x0A 0x32    // 'fect.??2' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x53    // '?Click S' \n\t0x6F 0x75 0x6E 0x64 0x20 0x45 0x66 0x66    // 'ound Eff' \n\t0x65 0x63 0x74 0x73 0x2E                   // 'ects.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpcHowToSounds02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"CO 2) Sound Effects Browser\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"CO 2) Sound Effects Browser\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTSounds02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToSounds02\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x80 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x74 0x65 0x20 0x74    // '??Note t' \n\t0x6F 0x20 0x54 0x6F 0x6E 0x79 0x3A 0x20    // 'o Tony: ' \n\t0x20 0x55 0x73 0x65 0x20 0x74 0x65 0x78    // ' Use tex' \n\t0x74 0x20 0x74 0x68 0x61 0x74 0x20 0x61    // 't that a' \n\t0x70 0x70 0x65 0x61 0x72 0x73 0x20 0x77    // 'ppears w' \n\t0x68 0x65 0x6E 0x20 0x74 0x68 0x65 0x79    // 'hen they' \n\t0x20 0x75 0x73 0x65 0x20 0x53 0x6F 0x75    // ' use Sou' \n\t0x6E 0x64 0x20 0x45 0x66 0x66 0x65 0x63    // 'nd Effec' \n\t0x74 0x73 0x20 0x62 0x72 0x6F 0x77 0x73    // 'ts brows' \n\t0x65 0x72 0x2E                             // 'er.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpcHowToSounds03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"CO 3) Click the actor, prop\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"CO 3) Click the actor, prop\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTSounds03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToSounds03\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0E 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_21=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds77 __HELP_SYMBOL( STN \"ktpcHowToSounds77\" )\n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToSounds60 __HELP_SYMBOL( STN \"ktpcHowToSounds60\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds61 __HELP_SYMBOL( STN \"ktpcHowToSounds61\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0x40    // '????W??@' \n\t0x05 0x00 0x00 0x00 0x77 0x00 0x00 0x40    // '????w??@' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x40    // '????y??@' \n\t0x02 0x00 0x00 0x00 0x93 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x95 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xB3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0x80    // '????W??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x57 0x00 0x00 0x82    // '????W??' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0xC0    // '????W??' \n\t0x03 0x00 0x00 0x00 0x79 0x00 0x00 0xC0    // '????y??' \n\t0x03 0x00 0x00 0x00 0x95 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x2C 0x20 0x6F 0x72 0x20 0x62 0x61 0x63    // ', or bac' \n\t0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64 0x20    // 'kground ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x61 0x74 0x74 0x61    // ' to atta' \n\t0x63 0x68 0x20 0x74 0x68 0x65 0x20 0x73    // 'ch the s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x65 0x66 0x66    // 'ound eff' \n\t0x65 0x63 0x74 0x20 0x74 0x6F 0x2E 0x0D    // 'ect to.?' \n\t0x0A 0x01 0x20 0x41 0x74 0x74 0x61 0x63    // '?? Attac' \n\t0x68 0x69 0x6E 0x67 0x20 0x61 0x20 0x73    // 'hing a s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F 0x20    // 'ound to ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x69 0x6F    // 'an actio' \n\t0x6E 0x0D 0x0A 0x01 0x20 0x43 0x68 0x61    // 'n??? Cha' \n\t0x69 0x6E 0x69 0x6E 0x67 0x20 0x73 0x6F    // 'ining so' \n\t0x75 0x6E 0x64 0x73 0x20 0x74 0x6F 0x67    // 'unds tog' \n\t0x65 0x74 0x68 0x65 0x72 0x0D 0x0A 0x01    // 'ether???' \n\t0x20 0x50 0x6C 0x61 0x79 0x69 0x6E 0x67    // ' Playing' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \n\t0x20 0x63 0x6F 0x6E 0x74 0x69 0x6E 0x75    // ' continu' \n\t0x6F 0x75 0x73 0x6C 0x79                   // 'ously' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpcHowToSounds04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"What Next--Sound Effects\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"What Next--Sound Effects\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTSounds04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_24=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToSounds04\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_24=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x05 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds69 __HELP_SYMBOL( STN \"ktpcHowToSounds69\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds44 __HELP_SYMBOL( STN \"ktpcHowToSounds44\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToSounds62 __HELP_SYMBOL( STN \"ktpcHowToSounds62\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToSounds73 __HELP_SYMBOL( STN \"ktpcHowToSounds73\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_24=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x17 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x75 0x00 0x00 0x01    // '????u???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x03    // '????%???' \n\t0x0F 0x00 0x00 0xFD 0x4D 0x00 0x00 0x03    // '???M???' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x21 0x00 0x00 0x40    // '????!??@' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x40    // '????#??@' \n\t0x02 0x00 0x00 0x00 0x4F 0x00 0x00 0x40    // '????O??@' \n\t0x04 0x00 0x00 0x00 0x61 0x00 0x00 0x40    // '????a??@' \n\t0x00 0x00 0x00 0x00 0x63 0x00 0x00 0x40    // '????c??@' \n\t0x06 0x00 0x00 0x00 0x75 0x00 0x00 0x40    // '????u??@' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x4F 0x00 0x00 0x80    // '????O??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1B 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0xC0    // '???????' \n\t0x05 0x00 0x00 0x00 0x23 0x00 0x00 0xC0    // '????#??' \n\t0x05 0x00 0x00 0x00 0x4F 0x00 0x00 0xC0    // '????O??' \n\t0x05 0x00 0x00 0x00 0x63 0x00 0x00 0xC0    // '????c??' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_24=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x75 0x6E 0x64 0x20    // '??Sound ' \n\t0x65 0x66 0x66 0x65 0x63 0x74 0x73 0x2D    // 'effects-' \n\t0x2D 0x57 0x68 0x61 0x74 0x20 0x6E 0x65    // '-What ne' \n\t0x78 0x74 0x3F 0x0D 0x0A 0x01 0x20 0x55    // 'xt???? U' \n\t0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20 0x43    // 'ndo??? C' \n\t0x68 0x61 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'hanging ' \n\t0x74 0x68 0x65 0x20 0x76 0x6F 0x6C 0x75    // 'the volu' \n\t0x6D 0x65 0x20 0x6F 0x66 0x20 0x69 0x6E    // 'me of in' \n\t0x64 0x69 0x76 0x69 0x64 0x75 0x61 0x6C    // 'dividual' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x73 0x0D    // ' sounds?' \n\t0x0A 0x01 0x20 0x52 0x65 0x6D 0x6F 0x76    // '?? Remov' \n\t0x69 0x6E 0x67 0x20 0x61 0x20 0x73 0x6F    // 'ing a so' \n\t0x75 0x6E 0x64 0x0D 0x0A 0x01 0x20 0x53    // 'und??? S' \n\t0x74 0x6F 0x70 0x70 0x69 0x6E 0x67 0x20    // 'topping ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64         // 'a sound' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpcHowToSounds05\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO 1) To add dialogue\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO 1) To add dialogue\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidSoundsMicBrowser kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_23=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToSounds05\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSoundsMicBrowser\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_23=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_11=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds52 __HELP_SYMBOL( STN \"ktpcHowToSounds52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_23=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x61 0x00 0x00 0x01    // '????a???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x02    // '????U???' \n\t0x01 0x00 0x00 0x00 0x5A 0x00 0x00 0x02    // '????Z???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x55 0x00 0x00 0x03    // '???U???' \n\t0x00 0x00 0x00 0x00 0x5A 0x00 0x00 0x03    // '????Z???' \n\t0x0A 0x00 0x00 0xFD 0x60 0x00 0x00 0x03    // '???`???' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x22 0x00 0x00 0x04    // '???\"???' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x22 0x00 0x00 0x40    // '????\"??@' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x52 0x00 0x00 0x80    // '????R??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x52 0x00 0x00 0x82    // '????R??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_23=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x64 0x69 0x61 0x6C 0x6F 0x67 0x75    // ' dialogu' \n\t0x65 0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20    // 'e??1?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x61 0x64 0x64    // 't to add' \n\t0x20 0x64 0x69 0x61 0x6C 0x6F 0x67 0x75    // ' dialogu' \n\t0x65 0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C    // 'e.??2?Cl' \n\t0x69 0x63 0x6B 0x20 0x53 0x70 0x65 0x65    // 'ick Spee' \n\t0x63 0x68 0x2E                             // 'ch.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpcHowToSounds06\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO 2) Speech Browser\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO 2) Speech Browser\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTSounds06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToSounds06\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x80 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x74 0x65 0x20 0x74    // '??Note t' \n\t0x6F 0x20 0x54 0x6F 0x6E 0x79 0x3A 0x20    // 'o Tony: ' \n\t0x20 0x55 0x73 0x65 0x20 0x74 0x65 0x78    // ' Use tex' \n\t0x74 0x20 0x74 0x68 0x61 0x74 0x20 0x61    // 't that a' \n\t0x70 0x70 0x65 0x61 0x72 0x73 0x20 0x77    // 'ppears w' \n\t0x68 0x65 0x6E 0x20 0x74 0x68 0x65 0x79    // 'hen they' \n\t0x20 0x75 0x73 0x65 0x20 0x53 0x70 0x65    // ' use Spe' \n\t0x65 0x63 0x68 0x20 0x62 0x72 0x6F 0x77    // 'ech brow' \n\t0x73 0x65 0x72 0x2E                        // 'ser.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpcHowToSounds07\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO 3) Click the actor\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO 3) Click the actor\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTSounds07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_26=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToSounds07\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_26=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_18=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds77 __HELP_SYMBOL( STN \"ktpcHowToSounds77\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds61 __HELP_SYMBOL( STN \"ktpcHowToSounds61\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_26=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5F 0x00 0x00 0x01    // '????_???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x40    // '????#??@' \n\t0x04 0x00 0x00 0x00 0x43 0x00 0x00 0x40    // '????C??@' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x02 0x00 0x00 0x00 0x5F 0x00 0x00 0x40    // '????_??@' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x80    // '????#??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x23 0x00 0x00 0x82    // '????#??' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0xC0    // '????#??' \n\t0x03 0x00 0x00 0x00 0x45 0x00 0x00 0xC0    // '????E??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_26=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'r you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x74 0x61    // 'nt to ta' \n\t0x6C 0x6B 0x2E 0x0D 0x0A 0x01 0x20 0x41    // 'lk.??? A' \n\t0x74 0x74 0x61 0x63 0x68 0x69 0x6E 0x67    // 'ttaching' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \n\t0x20 0x74 0x6F 0x20 0x61 0x6E 0x20 0x61    // ' to an a' \n\t0x63 0x74 0x69 0x6F 0x6E 0x0D 0x0A 0x01    // 'ction???' \n\t0x20 0x43 0x68 0x61 0x69 0x6E 0x69 0x6E    // ' Chainin' \n\t0x67 0x20 0x73 0x6F 0x75 0x6E 0x64 0x73    // 'g sounds' \n\t0x20 0x74 0x6F 0x67 0x65 0x74 0x68 0x65    // ' togethe' \n\t0x72                                       // 'r' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpcHowToSounds08\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"What Next--Speech\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"What Next--Speech\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTSounds08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToSounds08\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x2C 0x01 0x00 0x00    // '????,???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds69 __HELP_SYMBOL( STN \"ktpcHowToSounds69\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToSounds63 __HELP_SYMBOL( STN \"ktpcHowToSounds63\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToSounds62 __HELP_SYMBOL( STN \"ktpcHowToSounds62\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds44 __HELP_SYMBOL( STN \"ktpcHowToSounds44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x19 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x46 0x00 0x00 0x03    // '???F???' \n\t0x00 0x00 0x00 0x00 0x8E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x40    // '???????@' \n\t0x06 0x00 0x00 0x00 0x1A 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x46 0x00 0x00 0x40    // '????F??@' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x40    // '????H??@' \n\t0x03 0x00 0x00 0x00 0x7A 0x00 0x00 0x40    // '????z??@' \n\t0x00 0x00 0x00 0x00 0x7C 0x00 0x00 0x40    // '????|??@' \n\t0x04 0x00 0x00 0x00 0x8E 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x7C 0x00 0x00 0x80    // '????|??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x14 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0xC0    // '???????' \n\t0x05 0x00 0x00 0x00 0x1C 0x00 0x00 0xC0    // '???????' \n\t0x05 0x00 0x00 0x00 0x48 0x00 0x00 0xC0    // '????H??' \n\t0x05 0x00 0x00 0x00 0x7C 0x00 0x00 0xC0    // '????|??' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x70 0x65 0x65 0x63 0x68    // '??Speech' \n\t0x2D 0x2D 0x57 0x68 0x61 0x74 0x20 0x6E    // '--What n' \n\t0x65 0x78 0x74 0x3F 0x0D 0x0A 0x01 0x20    // 'ext???? ' \n\t0x55 0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20    // 'Undo??? ' \n\t0x43 0x68 0x61 0x6E 0x67 0x69 0x6E 0x67    // 'Changing' \n\t0x20 0x74 0x68 0x65 0x20 0x76 0x6F 0x6C    // ' the vol' \n\t0x75 0x6D 0x65 0x20 0x6F 0x66 0x20 0x69    // 'ume of i' \n\t0x6E 0x64 0x69 0x76 0x69 0x64 0x75 0x61    // 'ndividua' \n\t0x6C 0x20 0x73 0x6F 0x75 0x6E 0x64 0x73    // 'l sounds' \n\t0x0D 0x0A 0x01 0x20 0x50 0x61 0x75 0x73    // '??? Paus' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x75 0x6E    // 'movie un' \n\t0x74 0x69 0x6C 0x20 0x61 0x6E 0x20 0x61    // 'til an a' \n\t0x63 0x74 0x6F 0x72 0x20 0x69 0x73 0x20    // 'ctor is ' \n\t0x64 0x6F 0x6E 0x65 0x20 0x74 0x61 0x6C    // 'done tal' \n\t0x6B 0x69 0x6E 0x67 0x0D 0x0A 0x01 0x20    // 'king??? ' \n\t0x52 0x65 0x6D 0x6F 0x76 0x69 0x6E 0x67    // 'Removing' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= ktpcHowToSounds09\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO 1) To add music\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO 1) To add music\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidSoundsMusicBrowser kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToSounds09\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSoundsMusicBrowser\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds52 __HELP_SYMBOL( STN \"ktpcHowToSounds52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5A 0x00 0x00 0x01    // '????Z???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x02 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x4F 0x00 0x00 0x02    // '????O???' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0x02    // '????S???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x4C 0x00 0x00 0x03    // '???L???' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x03    // '????T???' \n\t0x0A 0x00 0x00 0xFD 0x59 0x00 0x00 0x03    // '???Y???' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x1F 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x1F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4C 0x00 0x00 0x82    // '????L??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x6D 0x75 0x73 0x69 0x63 0x0D 0x0A    // ' music??' \n\t0x31 0x09 0x47 0x6F 0x20 0x74 0x6F 0x20    // '1?Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'e in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'r movie ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x61 0x64 0x64 0x20 0x6D 0x75    // 'o add mu' \n\t0x73 0x69 0x63 0x2E 0x0D 0x0A 0x32 0x09    // 'sic.??2?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x4D 0x75    // 'Click Mu' \n\t0x73 0x69 0x63 0x2E                        // 'sic.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= ktpcHowToSounds0A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO 2) Music Browser\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO 2) Music Browser\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTSounds0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToSounds0A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8C 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x74 0x65 0x20 0x74    // '??Note t' \n\t0x6F 0x20 0x54 0x6F 0x6E 0x79 0x3A 0x20    // 'o Tony: ' \n\t0x20 0x55 0x73 0x65 0x20 0x74 0x65 0x78    // ' Use tex' \n\t0x74 0x20 0x74 0x68 0x61 0x74 0x20 0x61    // 't that a' \n\t0x70 0x70 0x65 0x61 0x72 0x73 0x20 0x77    // 'ppears w' \n\t0x68 0x65 0x6E 0x20 0x74 0x68 0x65 0x79    // 'hen they' \n\t0x20 0x75 0x73 0x65 0x20 0x4D 0x75 0x73    // ' use Mus' \n\t0x69 0x63 0x20 0x42 0x72 0x6F 0x77 0x73    // 'ic Brows' \n\t0x65 0x72 0x2E                             // 'er.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= ktpcHowToSounds0B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO 3) Click the background\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO 3) Click the background\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTSounds0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToSounds0B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds60 __HELP_SYMBOL( STN \"ktpcHowToSounds60\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x55 0x00 0x00 0x01    // '????U???' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x03 0x00 0x00 0x00 0x55 0x00 0x00 0x40    // '????U??@' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x80    // '????7??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x37 0x00 0x00 0x82    // '????7??' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0xC0    // '????7??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x62 0x61 0x63 0x6B    // 'the back' \n\t0x67 0x72 0x6F 0x75 0x6E 0x64 0x20 0x79    // 'ground y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x61 0x74 0x74 0x61 0x63    // 'to attac' \n\t0x68 0x20 0x74 0x68 0x65 0x20 0x6D 0x75    // 'h the mu' \n\t0x73 0x69 0x63 0x20 0x74 0x6F 0x2E 0x0D    // 'sic to.?' \n\t0x0A 0x01 0x20 0x50 0x6C 0x61 0x79 0x69    // '?? Playi' \n\t0x6E 0x67 0x20 0x61 0x20 0x73 0x6F 0x75    // 'ng a sou' \n\t0x6E 0x64 0x20 0x63 0x6F 0x6E 0x74 0x69    // 'nd conti' \n\t0x6E 0x75 0x6F 0x75 0x73 0x6C 0x79         // 'nuously' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= ktpcHowToSounds0C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"What Next--Music\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"What Next--Music\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTSounds0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToSounds0C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x09 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_12=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToSounds73 __HELP_SYMBOL( STN \"ktpcHowToSounds73\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds69 __HELP_SYMBOL( STN \"ktpcHowToSounds69\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToSounds62 __HELP_SYMBOL( STN \"ktpcHowToSounds62\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds44 __HELP_SYMBOL( STN \"ktpcHowToSounds44\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x19 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6D 0x00 0x00 0x01    // '????m???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x45 0x00 0x00 0x03    // '???E???' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x40    // '???????@' \n\t0x05 0x00 0x00 0x00 0x19 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x47 0x00 0x00 0x40    // '????G??@' \n\t0x04 0x00 0x00 0x00 0x59 0x00 0x00 0x40    // '????Y??@' \n\t0x00 0x00 0x00 0x00 0x5B 0x00 0x00 0x40    // '????[??@' \n\t0x02 0x00 0x00 0x00 0x6D 0x00 0x00 0x40    // '????m??@' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x47 0x00 0x00 0x80    // '????G??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x13 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0xC0    // '???????' \n\t0x06 0x00 0x00 0x00 0x1B 0x00 0x00 0xC0    // '???????' \n\t0x06 0x00 0x00 0x00 0x47 0x00 0x00 0xC0    // '????G??' \n\t0x06 0x00 0x00 0x00 0x5B 0x00 0x00 0xC0    // '????[??' \n\t0x06 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x75 0x73 0x69 0x63 0x2D    // '??Music-' \n\t0x2D 0x57 0x68 0x61 0x74 0x20 0x6E 0x65    // '-What ne' \n\t0x78 0x74 0x3F 0x0D 0x0A 0x01 0x20 0x55    // 'xt???? U' \n\t0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20 0x43    // 'ndo??? C' \n\t0x68 0x61 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'hanging ' \n\t0x74 0x68 0x65 0x20 0x76 0x6F 0x6C 0x75    // 'the volu' \n\t0x6D 0x65 0x20 0x6F 0x66 0x20 0x69 0x6E    // 'me of in' \n\t0x64 0x69 0x76 0x69 0x64 0x75 0x61 0x6C    // 'dividual' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x73 0x0D    // ' sounds?' \n\t0x0A 0x01 0x20 0x52 0x65 0x6D 0x6F 0x76    // '?? Remov' \n\t0x69 0x6E 0x67 0x20 0x61 0x20 0x73 0x6F    // 'ing a so' \n\t0x75 0x6E 0x64 0x0D 0x0A 0x01 0x20 0x53    // 'und??? S' \n\t0x74 0x6F 0x70 0x70 0x69 0x6E 0x67 0x20    // 'topping ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64         // 'a sound' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= ktpcHowToSounds0D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO 1)  To play once\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO 1)  To play once\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x1AF 0x30 0x57415645 kwavHTSounds0D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToSounds0D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds0D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds74 __HELP_SYMBOL( STN \"ktpcHowToSounds74\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds52 __HELP_SYMBOL( STN \"ktpcHowToSounds52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x89 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x0F 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x00 0x00 0x00 0x00 0x89 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x04    // '????*???' \n\t0x0D 0x00 0x00 0xFE 0x39 0x00 0x00 0x04    // '???9???' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x04    // '????o???' \n\t0x0D 0x00 0x00 0xFE 0x7F 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x40    // '????*??@' \n\t0x03 0x00 0x00 0x00 0x39 0x00 0x00 0x40    // '????9??@' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x40    // '????o??@' \n\t0x01 0x00 0x00 0x00 0x7F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x80    // '????(??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6D 0x00 0x00 0x82    // '????m??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x74 0x74    // '??To att' \n\t0x61 0x63 0x68 0x20 0x61 0x20 0x73 0x6F    // 'ach a so' \n\t0x75 0x6E 0x64 0x20 0x61 0x6E 0x64 0x20    // 'und and ' \n\t0x70 0x6C 0x61 0x79 0x20 0x69 0x74 0x20    // 'play it ' \n\t0x6F 0x6E 0x65 0x20 0x74 0x69 0x6D 0x65    // 'one time' \n\t0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20 0x74    // '??1?Go t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x70 0x6C    // 'o the pl' \n\t0x61 0x63 0x65 0x20 0x69 0x6E 0x20 0x79    // 'ace in y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x61 0x74 0x74 0x61    // ' to atta' \n\t0x63 0x68 0x20 0x74 0x68 0x65 0x20 0x73    // 'ch the s' \n\t0x6F 0x75 0x6E 0x64 0x2E 0x0D 0x0A 0x32    // 'ound.??2' \n\t0x09 0x43 0x68 0x6F 0x6F 0x73 0x65 0x20    // '?Choose ' \n\t0x74 0x68 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'the soun' \n\t0x64 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'd you wa' \n\t0x6E 0x74 0x2E                             // 'nt.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= ktpcHowToSounds0E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO 2) Click the actor, prop\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO 2) Click the actor, prop\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTSounds0E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToSounds0E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds0E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x07 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_17=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\nAG(4)\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds76 __HELP_SYMBOL( STN \"ktpcHowToSounds76\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds77 __HELP_SYMBOL( STN \"ktpcHowToSounds77\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8B 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x40    // '????P??@' \n\t0x05 0x00 0x00 0x00 0x6A 0x00 0x00 0x40    // '????j??@' \n\t0x00 0x00 0x00 0x00 0x6C 0x00 0x00 0x40    // '????l??@' \n\t0x03 0x00 0x00 0x00 0x8B 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x80    // '????P??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x50 0x00 0x00 0x82    // '????P??' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0xC0    // '????P??' \n\t0x01 0x00 0x00 0x00 0x6C 0x00 0x00 0xC0    // '????l??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x2C 0x20 0x6F 0x72 0x20 0x62 0x61 0x63    // ', or bac' \n\t0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64 0x20    // 'kground ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x61 0x74 0x74 0x61    // ' to atta' \n\t0x63 0x68 0x20 0x74 0x68 0x65 0x20 0x73    // 'ch the s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F 0x2E    // 'ound to.' \n\t0x0D 0x0A 0x01 0x20 0x43 0x68 0x61 0x69    // '??? Chai' \n\t0x6E 0x69 0x6E 0x67 0x20 0x73 0x6F 0x75    // 'ning sou' \n\t0x6E 0x64 0x73 0x20 0x74 0x6F 0x67 0x65    // 'nds toge' \n\t0x74 0x68 0x65 0x72 0x0D 0x0A 0x01 0x20    // 'ther??? ' \n\t0x48 0x6F 0x77 0x20 0x6D 0x61 0x6E 0x79    // 'How many' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x73 0x20    // ' sounds ' \n\t0x63 0x61 0x6E 0x20 0x49 0x20 0x61 0x74    // 'can I at' \n\t0x74 0x61 0x63 0x68 0x3F                   // 'tach?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= ktpcHowToSounds0F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"What Next--Play Once\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"What Next--Play Once\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTSounds0F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToSounds0F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds0F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x06 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds69 __HELP_SYMBOL( STN \"ktpcHowToSounds69\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToSounds62 __HELP_SYMBOL( STN \"ktpcHowToSounds62\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToSounds73 __HELP_SYMBOL( STN \"ktpcHowToSounds73\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds44 __HELP_SYMBOL( STN \"ktpcHowToSounds44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x18 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x01 0x00 0x00 0x00 0x7C 0x00 0x00 0x01    // '????|???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x20 0x00 0x00 0x03    // '??? ???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x03    // '????,???' \n\t0x0F 0x00 0x00 0xFD 0x54 0x00 0x00 0x03    // '???T???' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x40    // '???? ??@' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x40    // '????\"??@' \n\t0x07 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x40    // '????*??@' \n\t0x01 0x00 0x00 0x00 0x56 0x00 0x00 0x40    // '????V??@' \n\t0x02 0x00 0x00 0x00 0x68 0x00 0x00 0x40    // '????h??@' \n\t0x00 0x00 0x00 0x00 0x6A 0x00 0x00 0x40    // '????j??@' \n\t0x03 0x00 0x00 0x00 0x7C 0x00 0x00 0x40    // '????|??@' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x80    // '????\"??' \n\t0x00 0x00 0x02 0x00 0x56 0x00 0x00 0x80    // '????V??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x22 0x00 0x00 0x82    // '????\"??' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0xC0    // '????\"??' \n\t0x04 0x00 0x00 0x00 0x2A 0x00 0x00 0xC0    // '????*??' \n\t0x04 0x00 0x00 0x00 0x56 0x00 0x00 0xC0    // '????V??' \n\t0x04 0x00 0x00 0x00 0x6A 0x00 0x00 0xC0    // '????j??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x6C 0x61 0x79 0x69 0x6E    // '??Playin' \n\t0x67 0x20 0x61 0x20 0x73 0x6F 0x75 0x6E    // 'g a soun' \n\t0x64 0x20 0x6F 0x6E 0x63 0x65 0x2D 0x2D    // 'd once--' \n\t0x57 0x68 0x61 0x74 0x20 0x6E 0x65 0x78    // 'What nex' \n\t0x74 0x3F 0x0D 0x0A 0x01 0x20 0x55 0x6E    // 't???? Un' \n\t0x64 0x6F 0x0D 0x0A 0x01 0x20 0x43 0x68    // 'do??? Ch' \n\t0x61 0x6E 0x67 0x69 0x6E 0x67 0x20 0x74    // 'anging t' \n\t0x68 0x65 0x20 0x76 0x6F 0x6C 0x75 0x6D    // 'he volum' \n\t0x65 0x20 0x6F 0x66 0x20 0x69 0x6E 0x64    // 'e of ind' \n\t0x69 0x76 0x69 0x64 0x75 0x61 0x6C 0x20    // 'ividual ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x73 0x0D 0x0A    // 'sounds??' \n\t0x01 0x20 0x52 0x65 0x6D 0x6F 0x76 0x69    // '? Removi' \n\t0x6E 0x67 0x20 0x61 0x20 0x73 0x6F 0x75    // 'ng a sou' \n\t0x6E 0x64 0x0D 0x0A 0x01 0x20 0x53 0x74    // 'nd??? St' \n\t0x6F 0x70 0x70 0x69 0x6E 0x67 0x20 0x61    // 'opping a' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64              // ' sound' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= ktpcHowToSounds10\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO 1)  To play again & again\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO 1)  To play again & again\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x1AF 0x30 0x57415645 kwavHTSounds10\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_39=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToSounds10\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds10\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_39=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x04 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_29=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds52 __HELP_SYMBOL( STN \"ktpcHowToSounds52\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds74 __HELP_SYMBOL( STN \"ktpcHowToSounds74\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_39=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8D 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x12 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x02    // '????*???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2A 0x00 0x00 0x03    // '???*???' \n\t0x00 0x00 0x00 0x00 0x8D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x04    // '????.???' \n\t0x0D 0x00 0x00 0xFE 0x3D 0x00 0x00 0x04    // '???=???' \n\t0x00 0x00 0x00 0x00 0x73 0x00 0x00 0x04    // '????s???' \n\t0x0D 0x00 0x00 0xFE 0x83 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x40    // '????.??@' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x40    // '????=??@' \n\t0x00 0x00 0x00 0x00 0x73 0x00 0x00 0x40    // '????s??@' \n\t0x02 0x00 0x00 0x00 0x83 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x80    // '????,??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x71 0x00 0x00 0x82    // '????q??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_39=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x74 0x74    // '??To att' \n\t0x61 0x63 0x68 0x20 0x61 0x20 0x73 0x6F    // 'ach a so' \n\t0x75 0x6E 0x64 0x20 0x61 0x6E 0x64 0x20    // 'und and ' \n\t0x70 0x6C 0x61 0x79 0x20 0x69 0x74 0x20    // 'play it ' \n\t0x63 0x6F 0x6E 0x74 0x69 0x6E 0x75 0x6F    // 'continuo' \n\t0x75 0x73 0x6C 0x79 0x0D 0x0A 0x31 0x09    // 'usly??1?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x61 0x74 0x74 0x61 0x63 0x68 0x20 0x74    // 'attach t' \n\t0x68 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'he sound' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x43 0x68 0x6F    // '.??2?Cho' \n\t0x6F 0x73 0x65 0x20 0x74 0x68 0x65 0x20    // 'ose the ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x79 0x6F    // 'sound yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x2E         // 'u want.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= ktpcHowToSounds11\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO 2) Click the actor, prop\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO 2) Click the actor, prop\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTSounds11\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_38=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToSounds11\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds11\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_38=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x07 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_27=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds76 __HELP_SYMBOL( STN \"ktpcHowToSounds76\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_38=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6F 0x00 0x00 0x01    // '????o???' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x40    // '????P??@' \n\t0x01 0x00 0x00 0x00 0x6F 0x00 0x00 0x40    // '????o??@' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x80    // '????P??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x50 0x00 0x00 0x82    // '????P??' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0xC0    // '????P??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_38=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x2C 0x20 0x6F 0x72 0x20 0x62 0x61 0x63    // ', or bac' \n\t0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64 0x20    // 'kground ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x61 0x74 0x74 0x61    // ' to atta' \n\t0x63 0x68 0x20 0x74 0x68 0x65 0x20 0x73    // 'ch the s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F 0x2E    // 'ound to.' \n\t0x0D 0x0A 0x01 0x20 0x48 0x6F 0x77 0x20    // '??? How ' \n\t0x6D 0x61 0x6E 0x79 0x20 0x73 0x6F 0x75    // 'many sou' \n\t0x6E 0x64 0x73 0x20 0x63 0x61 0x6E 0x20    // 'nds can ' \n\t0x49 0x20 0x61 0x74 0x74 0x61 0x63 0x68    // 'I attach' \n\t0x3F                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= ktpcHowToSounds12\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"What Next--Play Again & Again\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"What Next--Play Again & Again\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTSounds12\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToSounds12\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds12\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x02 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds69 __HELP_SYMBOL( STN \"ktpcHowToSounds69\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG ktpcHowToSounds73 __HELP_SYMBOL( STN \"ktpcHowToSounds73\" )\n\tFREE\n\tITEM LONG 0xC0000005\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds44 __HELP_SYMBOL( STN \"ktpcHowToSounds44\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToSounds2E __HELP_SYMBOL( STN \"ktpcHowToSounds2E\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToSounds62 __HELP_SYMBOL( STN \"ktpcHowToSounds62\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x69 0x00 0x00 0x01    // '????i???' \n\t0x00 0x00 0x00 0x00 0x6B 0x00 0x00 0x01    // '????k???' \n\t0x01 0x00 0x00 0x00 0xDB 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2A 0x00 0x00 0x03    // '???*???' \n\t0x0F 0x00 0x00 0xFD 0x69 0x00 0x00 0x03    // '???i???' \n\t0x00 0x00 0x00 0x00 0x75 0x00 0x00 0x03    // '????u???' \n\t0x0F 0x00 0x00 0xFD 0x9D 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xA1 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xB5 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x69 0x00 0x00 0x40    // '????i??@' \n\t0x00 0x00 0x00 0x00 0x6B 0x00 0x00 0x40    // '????k??@' \n\t0x05 0x00 0x00 0x00 0x71 0x00 0x00 0x40    // '????q??@' \n\t0x00 0x00 0x00 0x00 0x73 0x00 0x00 0x40    // '????s??@' \n\t0x01 0x00 0x00 0x00 0x9F 0x00 0x00 0x40    // '??????@' \n\t0x07 0x00 0x00 0x00 0xB3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xB5 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0xC7 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC9 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xDB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x6B 0x00 0x00 0x80    // '????k??' \n\t0x00 0x00 0x02 0x00 0x9F 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6B 0x00 0x00 0x82    // '????k??' \n\t0x00 0x00 0x00 0x00 0x6B 0x00 0x00 0xC0    // '????k??' \n\t0x04 0x00 0x00 0x00 0x73 0x00 0x00 0xC0    // '????s??' \n\t0x04 0x00 0x00 0x00 0x9F 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00 0xB5 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00 0xC9 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x6C 0x61 0x79 0x69 0x6E    // '??Playin' \n\t0x67 0x20 0x61 0x20 0x73 0x6F 0x75 0x6E    // 'g a soun' \n\t0x64 0x20 0x63 0x6F 0x6E 0x74 0x69 0x6E    // 'd contin' \n\t0x75 0x6F 0x75 0x73 0x6C 0x79 0x2D 0x2D    // 'uously--' \n\t0x57 0x68 0x61 0x74 0x20 0x6E 0x65 0x78    // 'What nex' \n\t0x74 0x3F 0x0D 0x0A 0x4E 0x6F 0x74 0x65    // 't???Note' \n\t0x3A 0x20 0x20 0x59 0x6F 0x75 0x20 0x77    // ':  You w' \n\t0x6F 0x6E 0x27 0x74 0x20 0x68 0x65 0x61    // 'on't hea' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x73 0x6F    // 'r the so' \n\t0x75 0x6E 0x64 0x20 0x6C 0x6F 0x6F 0x70    // 'und loop' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x79    // ' until y' \n\t0x6F 0x75 0x20 0x70 0x6C 0x61 0x79 0x20    // 'ou play ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x2E 0x0D 0x0A 0x01 0x20 0x55    // 'ie.??? U' \n\t0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20 0x43    // 'ndo??? C' \n\t0x68 0x61 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'hanging ' \n\t0x74 0x68 0x65 0x20 0x76 0x6F 0x6C 0x75    // 'the volu' \n\t0x6D 0x65 0x20 0x6F 0x66 0x20 0x69 0x6E    // 'me of in' \n\t0x64 0x69 0x76 0x69 0x64 0x75 0x61 0x6C    // 'dividual' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x73 0x0D    // ' sounds?' \n\t0x0A 0x01 0x20 0x50 0x6C 0x61 0x79 0x69    // '?? Playi' \n\t0x6E 0x67 0x20 0x79 0x6F 0x75 0x72 0x20    // 'ng your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x0D 0x0A 0x01    // 'movie???' \n\t0x20 0x52 0x65 0x6D 0x6F 0x76 0x69 0x6E    // ' Removin' \n\t0x67 0x20 0x61 0x20 0x73 0x6F 0x75 0x6E    // 'g a soun' \n\t0x64 0x0D 0x0A 0x01 0x20 0x53 0x74 0x6F    // 'd??? Sto' \n\t0x70 0x70 0x69 0x6E 0x67 0x20 0x61 0x20    // 'pping a ' \n\t0x73 0x6F 0x75 0x6E 0x64                   // 'sound' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= ktpcHowToSounds13\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO 1)  To attach sound+action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO 1)  To attach sound+action\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x1AF 0x30 0x57415645 kwavHTSounds13\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToSounds13\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds13\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds74 __HELP_SYMBOL( STN \"ktpcHowToSounds74\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds52 __HELP_SYMBOL( STN \"ktpcHowToSounds52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x81 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x04 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x04    // '????\"???' \n\t0x0D 0x00 0x00 0xFE 0x31 0x00 0x00 0x04    // '???1???' \n\t0x00 0x00 0x00 0x00 0x67 0x00 0x00 0x04    // '????g???' \n\t0x0D 0x00 0x00 0xFE 0x77 0x00 0x00 0x04    // '???w???' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x40    // '????\"??@' \n\t0x04 0x00 0x00 0x00 0x31 0x00 0x00 0x40    // '????1??@' \n\t0x00 0x00 0x00 0x00 0x67 0x00 0x00 0x40    // '????g??@' \n\t0x02 0x00 0x00 0x00 0x77 0x00 0x00 0x40    // '????w??@' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x80    // '???? ??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x65 0x00 0x00 0x82    // '????e??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x74 0x74    // '??To att' \n\t0x61 0x63 0x68 0x20 0x61 0x20 0x73 0x6F    // 'ach a so' \n\t0x75 0x6E 0x64 0x20 0x74 0x6F 0x20 0x61    // 'und to a' \n\t0x6E 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'n action' \n\t0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20 0x74    // '??1?Go t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x70 0x6C    // 'o the pl' \n\t0x61 0x63 0x65 0x20 0x69 0x6E 0x20 0x79    // 'ace in y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x61 0x74 0x74 0x61    // ' to atta' \n\t0x63 0x68 0x20 0x74 0x68 0x65 0x20 0x73    // 'ch the s' \n\t0x6F 0x75 0x6E 0x64 0x2E 0x0D 0x0A 0x32    // 'ound.??2' \n\t0x09 0x43 0x68 0x6F 0x6F 0x73 0x65 0x20    // '?Choose ' \n\t0x74 0x68 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'the soun' \n\t0x64 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'd you wa' \n\t0x6E 0x74 0x2E                             // 'nt.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= ktpcHowToSounds14\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"CO 2) Click the actor, prop\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"CO 2) Click the actor, prop\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTSounds14\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_34=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToSounds14\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds14\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_34=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_14=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds76 __HELP_SYMBOL( STN \"ktpcHowToSounds76\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_34=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x63 0x00 0x00 0x01    // '????c???' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0x40    // '????D??@' \n\t0x01 0x00 0x00 0x00 0x63 0x00 0x00 0x40    // '????c??@' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0x80    // '????D??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x44 0x00 0x00 0x82    // '????D??' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0xC0    // '????D??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_34=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x20    // 'ord you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x61 0x74 0x74 0x61 0x63 0x68 0x20 0x74    // 'attach t' \n\t0x68 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'he sound' \n\t0x20 0x74 0x6F 0x2E 0x0D 0x0A 0x01 0x20    // ' to.??? ' \n\t0x48 0x6F 0x77 0x20 0x6D 0x61 0x6E 0x79    // 'How many' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x73 0x20    // ' sounds ' \n\t0x63 0x61 0x6E 0x20 0x49 0x20 0x61 0x74    // 'can I at' \n\t0x74 0x61 0x63 0x68 0x3F                   // 'tach?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= ktpcHowToSounds15\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"What Next--Action Matcher\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"What Next--Action Matcher\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTSounds15\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_17=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToSounds15\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds15\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_17=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x14 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds69 __HELP_SYMBOL( STN \"ktpcHowToSounds69\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToSounds62 __HELP_SYMBOL( STN \"ktpcHowToSounds62\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToSounds73 __HELP_SYMBOL( STN \"ktpcHowToSounds73\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds44 __HELP_SYMBOL( STN \"ktpcHowToSounds44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_17=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x17 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2A 0x00 0x00 0x01    // '????*???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x01 0x00 0x00 0x00 0x86 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2A 0x00 0x00 0x03    // '???*???' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x03    // '????6???' \n\t0x0F 0x00 0x00 0xFD 0x5E 0x00 0x00 0x03    // '???^???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x40    // '????,??@' \n\t0x07 0x00 0x00 0x00 0x32 0x00 0x00 0x40    // '????2??@' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x40    // '????4??@' \n\t0x01 0x00 0x00 0x00 0x60 0x00 0x00 0x40    // '????`??@' \n\t0x02 0x00 0x00 0x00 0x72 0x00 0x00 0x40    // '????r??@' \n\t0x00 0x00 0x00 0x00 0x74 0x00 0x00 0x40    // '????t??@' \n\t0x03 0x00 0x00 0x00 0x86 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x80    // '????,??' \n\t0x00 0x00 0x02 0x00 0x60 0x00 0x00 0x80    // '????`??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2C 0x00 0x00 0x82    // '????,??' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0xC0    // '????,??' \n\t0x04 0x00 0x00 0x00 0x34 0x00 0x00 0xC0    // '????4??' \n\t0x04 0x00 0x00 0x00 0x60 0x00 0x00 0xC0    // '????`??' \n\t0x04 0x00 0x00 0x00 0x74 0x00 0x00 0xC0    // '????t??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_17=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x74 0x74 0x61 0x63 0x68    // '??Attach' \n\t0x69 0x6E 0x67 0x20 0x61 0x20 0x73 0x6F    // 'ing a so' \n\t0x75 0x6E 0x64 0x20 0x74 0x6F 0x20 0x61    // 'und to a' \n\t0x6E 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'n action' \n\t0x2D 0x2D 0x57 0x68 0x61 0x74 0x20 0x6E    // '--What n' \n\t0x65 0x78 0x74 0x3F 0x0D 0x0A 0x01 0x20    // 'ext???? ' \n\t0x55 0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20    // 'Undo??? ' \n\t0x43 0x68 0x61 0x6E 0x67 0x69 0x6E 0x67    // 'Changing' \n\t0x20 0x74 0x68 0x65 0x20 0x76 0x6F 0x6C    // ' the vol' \n\t0x75 0x6D 0x65 0x20 0x6F 0x66 0x20 0x69    // 'ume of i' \n\t0x6E 0x64 0x69 0x76 0x69 0x64 0x75 0x61    // 'ndividua' \n\t0x6C 0x20 0x73 0x6F 0x75 0x6E 0x64 0x73    // 'l sounds' \n\t0x0D 0x0A 0x01 0x20 0x52 0x65 0x6D 0x6F    // '??? Remo' \n\t0x76 0x69 0x6E 0x67 0x20 0x61 0x20 0x73    // 'ving a s' \n\t0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x01 0x20    // 'ound??? ' \n\t0x53 0x74 0x6F 0x70 0x70 0x69 0x6E 0x67    // 'Stopping' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= ktpcHowToSounds16\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO 1)  To change all volume\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO 1)  To change all volume\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidVolumeSlider kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds16\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToSounds16\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidVolumeSlider\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds16\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x50 0x00 0x00 0x01    // '????P???' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x02    // '????P???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x41 0x00 0x00 0x03    // '???A???' \n\t0x0A 0x00 0x00 0xFD 0x4F 0x00 0x00 0x03    // '???O???' \n\t0x0F 0x00 0x00 0xFD 0x50 0x00 0x00 0x03    // '???P???' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x04    // '????P???' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x40    // '????P??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x76 0x6F 0x6C 0x75 0x6D 0x65 0x20 0x66    // 'volume f' \n\t0x6F 0x72 0x20 0x61 0x6C 0x6C 0x20 0x73    // 'or all s' \n\t0x6F 0x75 0x6E 0x64 0x73 0x20 0x69 0x6E    // 'ounds in' \n\t0x20 0x33 0x44 0x20 0x4D 0x6F 0x76 0x69    // ' 3D Movi' \n\t0x65 0x20 0x4D 0x61 0x6B 0x65 0x72 0x2C    // 'e Maker,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x56 0x6F 0x6C 0x75 0x6D    // 'he Volum' \n\t0x65 0x20 0x43 0x6F 0x6E 0x74 0x72 0x6F    // 'e Contro' \n\t0x6C 0x2E                                  // 'l.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= ktpcHowToSounds17\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"CO 2) Drag the Volume Control\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"CO 2) Drag the Volume Control\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidVolumeSlider kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds17\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToSounds17\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidVolumeSlider\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds17\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x99 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_16=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds51 __HELP_SYMBOL( STN \"ktpcHowToSounds51\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2A 0x00 0x00 0x01    // '????*???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x2A 0x00 0x00 0x03    // '???*???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x04 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x04 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x40    // '????*??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x20 0x74    // '??Drag t' \n\t0x68 0x65 0x20 0x56 0x6F 0x6C 0x75 0x6D    // 'he Volum' \n\t0x65 0x20 0x43 0x6F 0x6E 0x74 0x72 0x6F    // 'e Contro' \n\t0x6C 0x20 0x73 0x6C 0x69 0x64 0x65 0x72    // 'l slider' \n\t0x20 0x75 0x70 0x20 0x6F 0x72 0x20 0x64    // ' up or d' \n\t0x6F 0x77 0x6E 0x2E                        // 'own.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_18= ktpcHowToSounds18\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"What Next--Volume Control\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"What Next--Volume Control\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTSounds18\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToSounds18\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds18\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x22 0x01 0x00 0x00    // '????\"???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds69 __HELP_SYMBOL( STN \"ktpcHowToSounds69\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2F 0x00 0x00 0x01    // '????/???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x01 0x00 0x00 0x00 0x5B 0x00 0x00 0x01    // '????[???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2F 0x00 0x00 0x03    // '???/???' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x03    // '????3???' \n\t0x0F 0x00 0x00 0xFD 0x5B 0x00 0x00 0x03    // '???[???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x40    // '????1??@' \n\t0x02 0x00 0x00 0x00 0x5B 0x00 0x00 0x40    // '????[??@' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x80    // '????1??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x31 0x00 0x00 0x82    // '????1??' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0xC0    // '????1??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x64 0x6A 0x75 0x73 0x74    // '??Adjust' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x76 0x6F 0x6C 0x75 0x6D 0x65 0x20 0x66    // 'volume f' \n\t0x6F 0x72 0x20 0x61 0x6C 0x6C 0x20 0x73    // 'or all s' \n\t0x6F 0x75 0x6E 0x64 0x73 0x2D 0x2D 0x57    // 'ounds--W' \n\t0x68 0x61 0x74 0x20 0x6E 0x65 0x78 0x74    // 'hat next' \n\t0x3F 0x0D 0x0A 0x01 0x20 0x43 0x68 0x61    // '???? Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x76 0x6F 0x6C 0x75 0x6D 0x65    // 'e volume' \n\t0x20 0x6F 0x66 0x20 0x69 0x6E 0x64 0x69    // ' of indi' \n\t0x76 0x69 0x64 0x75 0x61 0x6C 0x20 0x73    // 'vidual s' \n\t0x6F 0x75 0x6E 0x64 0x73                   // 'ounds' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_19= ktpcHowToSounds19\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO 1)  To change individual volume\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO 1)  To change individual volume\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidSoundsListen kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds19\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToSounds19\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSoundsListen\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds19\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds52 __HELP_SYMBOL( STN \"ktpcHowToSounds52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xC8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x02 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x02    // '????????' \n\t0x02 0x00 0x00 0x00 0x2B 0x00 0x00 0x02    // '????+???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3F 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x43 0x00 0x00 0x03    // '???C???' \n\t0x00 0x00 0x00 0x00 0xBF 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xC7 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x04    // '????C???' \n\t0x0D 0x00 0x00 0xFE 0x52 0x00 0x00 0x04    // '???R???' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x40    // '????C??@' \n\t0x03 0x00 0x00 0x00 0x52 0x00 0x00 0x40    // '????R??@' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x80    // '????A??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB3 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6C 0x69 0x73    // '??To lis' \n\t0x74 0x65 0x6E 0x20 0x74 0x6F 0x2C 0x20    // 'ten to, ' \n\t0x72 0x65 0x6D 0x6F 0x76 0x65 0x2C 0x20    // 'remove, ' \n\t0x6F 0x72 0x20 0x63 0x68 0x61 0x6E 0x67    // 'or chang' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x76 0x6F    // 'e the vo' \n\t0x6C 0x75 0x6D 0x65 0x20 0x6F 0x66 0x20    // 'lume of ' \n\t0x69 0x6E 0x64 0x69 0x76 0x69 0x64 0x75    // 'individu' \n\t0x61 0x6C 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'al sound' \n\t0x73 0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20    // 's??1?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x20 0x62 0x65 0x67 0x69 0x6E    // 'nd begin' \n\t0x73 0x2E 0x20 0x20 0x59 0x6F 0x75 0x27    // 's.  You'' \n\t0x6C 0x6C 0x20 0x68 0x65 0x61 0x72 0x20    // 'll hear ' \n\t0x74 0x68 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'the soun' \n\t0x64 0x73 0x20 0x61 0x73 0x20 0x79 0x6F    // 'ds as yo' \n\t0x75 0x20 0x6D 0x6F 0x76 0x65 0x20 0x66    // 'u move f' \n\t0x72 0x6F 0x6D 0x20 0x66 0x72 0x61 0x6D    // 'rom fram' \n\t0x65 0x20 0x74 0x6F 0x20 0x66 0x72 0x61    // 'e to fra' \n\t0x6D 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x43    // 'me.??2?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x4C 0x69 0x73 0x74 0x65 0x6E 0x65    // ' Listene' \n\t0x72 0x2E                                  // 'r.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= ktpcHowToSounds1A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"CO 2)  To listen to \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"CO 2)  To listen to \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTSounds1A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToSounds1A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds1A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xEC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x73 0x00 0x00 0x82    // '????s??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6C 0x69 0x73    // '??To lis' \n\t0x74 0x65 0x6E 0x20 0x74 0x6F 0x20 0x73    // 'ten to s' \n\t0x6F 0x75 0x6E 0x64 0x73 0x2C 0x20 0x6D    // 'ounds, m' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x63 0x75    // 'mouse cu' \n\t0x72 0x73 0x6F 0x72 0x20 0x6F 0x76 0x65    // 'rsor ove' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'r the ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x77 0x68    // ' word wh' \n\t0x6F 0x73 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'ose soun' \n\t0x64 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'd you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x68 0x65    // 'nt to he' \n\t0x61 0x72 0x2E 0x0D 0x0A 0x2D 0x2D 0x6F    // 'ar.??--o' \n\t0x72 0x2D 0x2D 0x0D 0x0A 0x54 0x6F 0x20    // 'r--??To ' \n\t0x63 0x68 0x61 0x6E 0x67 0x65 0x20 0x74    // 'change t' \n\t0x68 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'he sound' \n\t0x20 0x76 0x6F 0x6C 0x75 0x6D 0x65 0x20    // ' volume ' \n\t0x6F 0x72 0x20 0x72 0x65 0x6D 0x6F 0x76    // 'or remov' \n\t0x65 0x20 0x61 0x20 0x73 0x6F 0x75 0x6E    // 'e a soun' \n\t0x64 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'd, click' \n\t0x20 0x74 0x68 0x65 0x20 0x33 0x44 0x20    // ' the 3D ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x20 0x6F    // 'object o' \n\t0x72 0x20 0x62 0x61 0x63 0x6B 0x67 0x72    // 'r backgr' \n\t0x6F 0x75 0x6E 0x64 0x20 0x77 0x68 0x6F    // 'ound who' \n\t0x73 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'se sound' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x68 0x61    // 't to cha' \n\t0x6E 0x67 0x65 0x20 0x6F 0x72 0x20 0x72    // 'nge or r' \n\t0x65 0x6D 0x6F 0x76 0x65 0x2E              // 'emove.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1B= ktpcHowToSounds1B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"CO 3)  Listener Easel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"CO 3)  Listener Easel\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds1B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcHowToSounds1B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds1B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8C 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x74 0x65 0x20 0x74    // '??Note t' \n\t0x6F 0x20 0x54 0x6F 0x6E 0x79 0x3A 0x20    // 'o Tony: ' \n\t0x20 0x55 0x73 0x65 0x20 0x74 0x65 0x78    // ' Use tex' \n\t0x74 0x20 0x74 0x68 0x61 0x74 0x20 0x61    // 't that a' \n\t0x70 0x70 0x65 0x61 0x72 0x73 0x20 0x77    // 'ppears w' \n\t0x68 0x65 0x6E 0x20 0x74 0x68 0x65 0x79    // 'hen they' \n\t0x20 0x75 0x73 0x65 0x20 0x74 0x68 0x65    // ' use the' \n\t0x20 0x4C 0x69 0x73 0x74 0x65 0x6E 0x65    // ' Listene' \n\t0x72 0x20 0x65 0x61 0x73 0x65 0x6C 0x2E    // 'r easel.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= ktpcHowToSounds1C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"What Next--Listener\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"What Next--Listener\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTSounds1C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToSounds1C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds1C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_28=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds44 __HELP_SYMBOL( STN \"ktpcHowToSounds44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x01    // '????O???' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x01    // '????Q???' \n\t0x01 0x00 0x00 0x00 0x57 0x00 0x00 0x01    // '????W???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x4F 0x00 0x00 0x03    // '???O???' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x03    // '????S???' \n\t0x0F 0x00 0x00 0xFD 0x57 0x00 0x00 0x03    // '???W???' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x40    // '????Q??@' \n\t0x03 0x00 0x00 0x00 0x57 0x00 0x00 0x40    // '????W??@' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x80    // '????Q??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x51 0x00 0x00 0x82    // '????Q??' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0xC0    // '????Q??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x4C 0x69 0x73 0x74 0x65 0x6E    // '??Listen' \n\t0x69 0x6E 0x67 0x20 0x74 0x6F 0x2C 0x20    // 'ing to, ' \n\t0x72 0x65 0x6D 0x6F 0x76 0x69 0x6E 0x67    // 'removing' \n\t0x2C 0x20 0x6F 0x72 0x20 0x63 0x68 0x61    // ', or cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x76 0x6F 0x6C 0x75 0x6D 0x65    // 'e volume' \n\t0x20 0x6F 0x66 0x20 0x69 0x6E 0x64 0x69    // ' of indi' \n\t0x76 0x69 0x64 0x75 0x61 0x6C 0x20 0x73    // 'vidual s' \n\t0x6F 0x75 0x6E 0x64 0x73 0x2D 0x2D 0x57    // 'ounds--W' \n\t0x68 0x61 0x74 0x20 0x6E 0x65 0x78 0x74    // 'hat next' \n\t0x3F 0x0D 0x0A 0x01 0x20 0x55 0x6E 0x64    // '???? Und' \n\t0x6F                                       // 'o' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1D= ktpcHowToSounds1D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"CO 1)  Turn off McZee\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"CO 1)  Turn off McZee\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobHowtoSequence kidBook kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds1D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_20=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpcHowToSounds1D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidBook\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds1D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_20=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_20=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x2B 0x00 0x00 0x03    // '???+???' \n\t0x0A 0x00 0x00 0xFD 0x37 0x00 0x00 0x03    // '???7???' \n\t0x0F 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x40    // '????8??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_20=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x74 0x75 0x72    // '??To tur' \n\t0x6E 0x20 0x4D 0x63 0x5A 0x65 0x65 0x27    // 'n McZee'' \n\t0x73 0x20 0x76 0x6F 0x69 0x63 0x65 0x20    // 's voice ' \n\t0x6F 0x6E 0x20 0x6F 0x72 0x20 0x6F 0x66    // 'on or of' \n\t0x66 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'f, click' \n\t0x20 0x74 0x68 0x65 0x20 0x48 0x65 0x6C    // ' the Hel' \n\t0x70 0x20 0x4D 0x61 0x63 0x68 0x69 0x6E    // 'p Machin' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1E= ktpcHowToSounds1E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"CO 2)  Click audio on/off\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"CO 2)  Click audio on/off\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobHowtoSequence kgobHelpBookVoice kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds1E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpcHowToSounds1E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kgobHelpBookVoice\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds1E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x65 0x00 0x00 0x00    // '????e???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x69 0x73 0x20 0x62 0x75 0x74    // 'this but' \n\t0x74 0x6F 0x6E 0x2E                        // 'ton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1F= ktpcHowToSounds1F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"CO 2)  Click Close.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"CO 2)  Click Close.\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobHowtoSequence kgobHelpBookCancel kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds1F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpcHowToSounds1F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kgobHelpBookCancel\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds1F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x44 0x00 0x00 0x00    // '????D???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x6C 0x6F 0x73 0x65 0x2E              // 'Close.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_20= ktpcHowToSounds20\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"CO 1)  To chain sounds together\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"CO 1)  To chain sounds together\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x1AF 0x30 0x57415645 kwavHTSounds20\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToSounds20\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds20\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xED 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds74 __HELP_SYMBOL( STN \"ktpcHowToSounds74\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds52 __HELP_SYMBOL( STN \"ktpcHowToSounds52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x0F 0x00 0x00 0xFD 0x49 0x00 0x00 0x03    // '???I???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x04    // '????K???' \n\t0x0D 0x00 0x00 0xFE 0x5A 0x00 0x00 0x04    // '???Z???' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA0 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x40    // '????K??@' \n\t0x03 0x00 0x00 0x00 0x5A 0x00 0x00 0x40    // '????Z??@' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xA0 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x80    // '????I??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8E 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x69 0x6E 0x20 0x61 0x20 0x73 0x6F 0x75    // 'in a sou' \n\t0x6E 0x64 0x20 0x74 0x6F 0x20 0x61 0x6E    // 'nd to an' \n\t0x6F 0x74 0x68 0x65 0x72 0x20 0x73 0x6F    // 'other so' \n\t0x75 0x6E 0x64 0x20 0x73 0x6F 0x20 0x74    // 'und so t' \n\t0x68 0x61 0x74 0x20 0x74 0x68 0x65 0x79    // 'hat they' \n\t0x20 0x70 0x6C 0x61 0x79 0x20 0x6F 0x6E    // ' play on' \n\t0x65 0x20 0x61 0x66 0x74 0x65 0x72 0x20    // 'e after ' \n\t0x74 0x68 0x65 0x20 0x6F 0x74 0x68 0x65    // 'the othe' \n\t0x72 0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20    // 'r??1?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x61 0x74 0x74    // 't to att' \n\t0x61 0x63 0x68 0x20 0x74 0x68 0x65 0x20    // 'ach the ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x2E 0x0D 0x0A    // 'sound.??' \n\t0x32 0x09 0x43 0x68 0x6F 0x6F 0x73 0x65    // '2?Choose' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x20 0x79 0x6F 0x75 0x20 0x77    // 'nd you w' \n\t0x61 0x6E 0x74 0x2E                        // 'ant.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_21= ktpcHowToSounds21\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"CO 2) Click Play Once.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"CO 2) Click Play Once.\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidSoundsPlayOnce kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds21\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToSounds21\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSoundsPlayOnce\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds21\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x5D 0x00 0x00 0x00    // '????]???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x50 0x6C 0x61 0x79 0x20 0x4F 0x6E 0x63    // 'Play Onc' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_22= ktpcHowToSounds22\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"CO 3)  Hold down Ctrl when \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"CO 3)  Hold down Ctrl when \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTSounds22\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToSounds22\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds22\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x09 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0B 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x68 0x00 0x00 0x82    // '????h??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x6F 0x6C 0x64 0x20 0x64    // '??Hold d' \n\t0x6F 0x77 0x6E 0x20 0x43 0x74 0x72 0x6C    // 'own Ctrl' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x79 0x6F    // ' when yo' \n\t0x75 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // 'u click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x2C 0x20 0x6F 0x72 0x20 0x62 0x61 0x63    // ', or bac' \n\t0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64 0x20    // 'kground ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x61 0x74 0x74 0x61    // ' to atta' \n\t0x63 0x68 0x20 0x74 0x68 0x65 0x20 0x73    // 'ch the s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F 0x2E    // 'ound to.' \n\t0x0D 0x0A 0x54 0x68 0x65 0x20 0x73 0x6F    // '??The so' \n\t0x75 0x6E 0x64 0x20 0x69 0x73 0x20 0x63    // 'und is c' \n\t0x68 0x61 0x69 0x6E 0x65 0x64 0x20 0x74    // 'hained t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x73 0x6F    // 'o the so' \n\t0x75 0x6E 0x64 0x20 0x74 0x68 0x61 0x74    // 'und that' \n\t0x20 0x79 0x6F 0x75 0x20 0x70 0x72 0x65    // ' you pre' \n\t0x76 0x69 0x6F 0x75 0x73 0x6C 0x79 0x20    // 'viously ' \n\t0x61 0x74 0x74 0x61 0x63 0x68 0x65 0x64    // 'attached' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x2E 0x20    // 'object. ' \n\t0x20 0x54 0x68 0x65 0x20 0x6E 0x65 0x77    // ' The new' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x70    // ' sound p' \n\t0x6C 0x61 0x79 0x73 0x20 0x61 0x74 0x20    // 'lays at ' \n\t0x74 0x68 0x65 0x20 0x65 0x6E 0x64 0x20    // 'the end ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x63    // 'of the c' \n\t0x68 0x61 0x69 0x6E 0x2D 0x2D 0x79 0x6F    // 'hain--yo' \n\t0x75 0x20 0x63 0x61 0x6E 0x27 0x74 0x20    // 'u can't ' \n\t0x69 0x6E 0x73 0x65 0x72 0x74 0x20 0x61    // 'insert a' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x69    // ' sound i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x6D 0x69    // 'n the mi' \n\t0x64 0x64 0x6C 0x65 0x2E                   // 'ddle.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_23= ktpcHowToSounds23\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"CO 1)  To stop a sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"CO 1)  To stop a sound\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x1AF 0x30 0x57415645 kwavHTSounds23\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToSounds23\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds23\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x13 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds74 __HELP_SYMBOL( STN \"ktpcHowToSounds74\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds52 __HELP_SYMBOL( STN \"ktpcHowToSounds52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x80 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x22 0x00 0x00 0x04    // '???\"???' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x04    // '????V???' \n\t0x0D 0x00 0x00 0xFE 0x6E 0x00 0x00 0x04    // '???n???' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x22 0x00 0x00 0x40    // '????\"??@' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x40    // '????V??@' \n\t0x01 0x00 0x00 0x00 0x6E 0x00 0x00 0x40    // '????n??@' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x54 0x00 0x00 0x82    // '????T??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x74 0x6F    // '??To sto' \n\t0x70 0x20 0x61 0x20 0x73 0x6F 0x75 0x6E    // 'p a soun' \n\t0x64 0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20    // 'd??1?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x73 0x74 0x6F    // 't to sto' \n\t0x70 0x20 0x74 0x68 0x65 0x20 0x73 0x6F    // 'p the so' \n\t0x75 0x6E 0x64 0x2E 0x0D 0x0A 0x32 0x09    // 'und.??2?' \n\t0x43 0x68 0x6F 0x6F 0x73 0x65 0x20 0x74    // 'Choose t' \n\t0x68 0x65 0x20 0x6B 0x69 0x6E 0x64 0x20    // 'he kind ' \n\t0x6F 0x66 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'of sound' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x73 0x74 0x6F    // 't to sto' \n\t0x70 0x2E                                  // 'p.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_24= ktpcHowToSounds24\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"CO 2)  Click No Sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"CO 2)  Click No Sound\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidSoundsClear kidPlayHelpSounds 0x140 0x0 0x57415645 kwavHTSounds24\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToSounds24\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSoundsClear\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds24\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x86 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x40    // '????%??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x22 0x53 0x6F 0x75 0x6E 0x64 0x20 0x53    // '\"Sound S' \n\t0x74 0x6F 0x70 0x70 0x65 0x72 0x2C 0x22    // 'topper,\"' \n\t0x20 0x74 0x68 0x65 0x6E 0x20 0x63 0x6C    // ' then cl' \n\t0x69 0x63 0x6B 0x20 0x4F 0x4B 0x2E         // 'ick OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_25= ktpcHowToSounds25\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"What Next--Stop Sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"What Next--Stop Sound\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTSounds25\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_35=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToSounds25\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds25\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_37=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_13=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds2E __HELP_SYMBOL( STN \"ktpcHowToSounds2E\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds44 __HELP_SYMBOL( STN \"ktpcHowToSounds44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_37=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3A 0x00 0x00 0x01    // '????:???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x03    // '???? ???' \n\t0x0F 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x03    // '????(???' \n\t0x0F 0x00 0x00 0xFD 0x3A 0x00 0x00 0x03    // '???:???' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x24 0x00 0x00 0x40    // '????$??@' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x40    // '????&??@' \n\t0x02 0x00 0x00 0x00 0x3A 0x00 0x00 0x40    // '????:??@' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1E 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0x26 0x00 0x00 0xC0    // '????&??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_37=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x6F 0x70 0x70 0x69    // '??Stoppi' \n\t0x6E 0x67 0x20 0x61 0x20 0x73 0x6F 0x75    // 'ng a sou' \n\t0x6E 0x64 0x2D 0x2D 0x57 0x68 0x61 0x74    // 'nd--What' \n\t0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D 0x0A    // ' next???' \n\t0x01 0x20 0x55 0x6E 0x64 0x6F 0x0D 0x0A    // '? Undo??' \n\t0x01 0x20 0x50 0x6C 0x61 0x79 0x69 0x6E    // '? Playin' \n\t0x67 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'g your m' \n\t0x6F 0x76 0x69 0x65                        // 'ovie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_26= ktpcHowToSounds26\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"What Next--Chain Sounds\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"What Next--Chain Sounds\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTSounds26\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToSounds26\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds26\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToSounds2E __HELP_SYMBOL( STN \"ktpcHowToSounds2E\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds44 __HELP_SYMBOL( STN \"ktpcHowToSounds44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x01    // '????9???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1B 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x03    // '????'???' \n\t0x0F 0x00 0x00 0xFD 0x39 0x00 0x00 0x03    // '???9???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x23 0x00 0x00 0x40    // '????#??@' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x40    // '????%??@' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x40    // '????9??@' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1D 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x25 0x00 0x00 0xC0    // '????%??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x69 0x6E 0x69    // '??Chaini' \n\t0x6E 0x67 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'ng sound' \n\t0x73 0x2D 0x2D 0x57 0x68 0x61 0x74 0x20    // 's--What ' \n\t0x6E 0x65 0x78 0x74 0x3F 0x0D 0x0A 0x01    // 'next????' \n\t0x20 0x55 0x6E 0x64 0x6F 0x0D 0x0A 0x01    // ' Undo???' \n\t0x20 0x50 0x6C 0x61 0x79 0x69 0x6E 0x67    // ' Playing' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65                             // 'vie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_27= ktpcHowToSounds27\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"CO 1) To remove a sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"CO 1) To remove a sound\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds27\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_37=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToSounds27\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds27\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_35=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x02 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds52 __HELP_SYMBOL( STN \"ktpcHowToSounds52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_35=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x91 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xA9 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x24 0x00 0x00 0x04    // '???$???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x24 0x00 0x00 0x40    // '????$??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x85 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_35=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x6D    // '??To rem' \n\t0x6F 0x76 0x65 0x20 0x61 0x20 0x73 0x6F    // 'ove a so' \n\t0x75 0x6E 0x64 0x0D 0x0A 0x31 0x09 0x47    // 'und??1?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x74 0x68 0x65 0x20 0x73    // 're the s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x62 0x65 0x67    // 'ound beg' \n\t0x69 0x6E 0x73 0x2E 0x20 0x20 0x59 0x6F    // 'ins.  Yo' \n\t0x75 0x27 0x6C 0x6C 0x20 0x68 0x65 0x61    // 'u'll hea' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x73 0x6F    // 'r the so' \n\t0x75 0x6E 0x64 0x73 0x20 0x61 0x73 0x20    // 'unds as ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'you move' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x66 0x72    // ' from fr' \n\t0x61 0x6D 0x65 0x20 0x74 0x6F 0x20 0x66    // 'ame to f' \n\t0x72 0x61 0x6D 0x65 0x2E 0x0D 0x0A 0x32    // 'rame.??2' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x43 0x75 0x74 0x2C 0x20    // 'he Cut, ' \n\t0x43 0x6F 0x70 0x79 0x2C 0x20 0x26 0x20    // 'Copy, & ' \n\t0x50 0x61 0x73 0x74 0x65 0x20 0x54 0x6F    // 'Paste To' \n\t0x6F 0x6C 0x73 0x2E                        // 'ols.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_28= ktpcHowToSounds28\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"CO 2)  Click Remove Sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"CO 2)  Click Remove Sound\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPActorNuke kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds28\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_25=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToSounds28\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPActorNuke\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds28\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_25=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_25=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_25=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x52 0x65 0x6D 0x6F 0x76 0x65 0x20 0x53    // 'Remove S' \n\t0x6F 0x75 0x6E 0x64 0x2E                   // 'ound.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_29= ktpcHowToSounds29\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"CO 3)  Click the actor\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"CO 3)  Click the actor\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTSounds29\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_22=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToSounds29\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds29\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_22=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9C 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_22=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4C 0x00 0x00 0x01    // '????L???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_22=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x6F 0x72 0x20 0x62 0x61 0x63 0x6B    // ' or back' \n\t0x67 0x72 0x6F 0x75 0x6E 0x64 0x20 0x77    // 'ground w' \n\t0x68 0x6F 0x73 0x65 0x20 0x73 0x6F 0x75    // 'hose sou' \n\t0x6E 0x64 0x20 0x79 0x6F 0x75 0x20 0x77    // 'nd you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x72    // 'ant to r' \n\t0x65 0x6D 0x6F 0x76 0x65 0x2E              // 'emove.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2A= ktpcHowToSounds2A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"Remove Sound--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"Remove Sound--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTSounds2A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_36=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToSounds2A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds2A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_36=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_15=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToSounds2E __HELP_SYMBOL( STN \"ktpcHowToSounds2E\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_36=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x03    // '???? ???' \n\t0x0F 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x32 0x00 0x00 0x40    // '????2??@' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1E 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_36=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x6F 0x76 0x69    // '??Removi' \n\t0x6E 0x67 0x20 0x61 0x20 0x73 0x6F 0x75    // 'ng a sou' \n\t0x6E 0x64 0x2D 0x2D 0x57 0x68 0x61 0x74    // 'nd--What' \n\t0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D 0x0A    // ' next???' \n\t0x01 0x20 0x50 0x6C 0x61 0x79 0x69 0x6E    // '? Playin' \n\t0x67 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'g your m' \n\t0x6F 0x76 0x69 0x65                        // 'ovie' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2C= ktpcHowToSounds2C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"CO 1a)  Click Loop\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"CO 1a)  Click Loop\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidSoundsLooping kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds2C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToSounds2C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSoundsLooping\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds2C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x3F 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x06 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x4C 0x6F 0x6F 0x70 0x2E                   // 'Loop.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2D= ktpcHowToSounds2D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"CO 1a)  Click Action Matcher\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"CO 1a)  Click Action Matcher\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidSoundsAttachToCell kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTSounds2D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToSounds2D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidSoundsAttachToCell\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTSounds2D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9A 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x06 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x41 0x63 0x74 0x69    // 'the Acti' \n\t0x6F 0x6E 0x20 0x4D 0x61 0x74 0x63 0x68    // 'on Match' \n\t0x65 0x72 0x2E                             // 'er.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2E= ktpcHowToSounds2E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"Tip:  Play Movie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"Tip:  Play Movie\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTSounds2E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToSounds2E\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds2E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x58 0x01 0x00 0x00    // '????X???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_10=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPlay __HELP_SYMBOL( STN \"mbmpPlay\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE9 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0x01 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x7A 0x01 0x00 0x01    // '????z???' \n\t0x00 0x00 0x00 0x00 0x7A 0x01 0x00 0x02    // '????z???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x2B 0x00 0x00 0x03    // '???+???' \n\t0x0F 0x00 0x00 0xFD 0xE7 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x80    // '????+??' \n\t0x00 0x00 0x02 0x00 0x80 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xE9 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x04 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x04 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x80 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0x83 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00 0x01 0x01 0x00 0xC0    // '???????' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x50 0x6C 0x61    // '???  Pla' \n\t0x79 0x69 0x6E 0x67 0x20 0x79 0x6F 0x75    // 'ying you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x0D    // 'r movie?' \n\t0x0A 0x54 0x6F 0x20 0x70 0x6C 0x61 0x79    // '?To play' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x0D 0x0A 0x31 0x09 0x55    // 'vie??1?U' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x46    // 'se the F' \n\t0x72 0x61 0x6D 0x65 0x20 0x61 0x6E 0x64    // 'rame and' \n\t0x20 0x53 0x63 0x65 0x6E 0x65 0x20 0x53    // ' Scene S' \n\t0x6C 0x69 0x64 0x65 0x72 0x73 0x20 0x74    // 'liders t' \n\t0x6F 0x20 0x72 0x65 0x77 0x69 0x6E 0x64    // 'o rewind' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ie to th' \n\t0x65 0x20 0x70 0x61 0x72 0x74 0x20 0x79    // 'e part y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x70 0x6C 0x61 0x79 0x2E    // 'to play.' \n\t0x0D 0x0A 0x01 0x0D 0x0A 0x01 0x0D 0x0A    // '????????' \n\t0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'To move ' \n\t0x77 0x69 0x74 0x68 0x69 0x6E 0x20 0x61    // 'within a' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x2C 0x20    // ' scene, ' \n\t0x75 0x73 0x65 0x20 0x74 0x68 0x65 0x20    // 'use the ' \n\t0x46 0x72 0x61 0x6D 0x65 0x20 0x53 0x6C    // 'Frame Sl' \n\t0x69 0x64 0x65 0x72 0x2E 0x0D 0x0A 0x54    // 'ider.??T' \n\t0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20 0x66    // 'o move f' \n\t0x72 0x6F 0x6D 0x20 0x73 0x63 0x65 0x6E    // 'rom scen' \n\t0x65 0x20 0x74 0x6F 0x20 0x73 0x63 0x65    // 'e to sce' \n\t0x6E 0x65 0x2C 0x20 0x75 0x73 0x65 0x20    // 'ne, use ' \n\t0x74 0x68 0x65 0x20 0x53 0x63 0x65 0x6E    // 'the Scen' \n\t0x65 0x20 0x53 0x6C 0x69 0x64 0x65 0x72    // 'e Slider' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69    // '.??2?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x50    // 'ck the P' \n\t0x6C 0x61 0x79 0x20 0x62 0x75 0x74 0x74    // 'lay butt' \n\t0x6F 0x6E 0x2D 0x01 0x0D 0x0A 0x4E 0x6F    // 'on-???No' \n\t0x74 0x65 0x3A 0x20 0x20 0x49 0x66 0x20    // 'te:  If ' \n\t0x79 0x6F 0x75 0x27 0x72 0x65 0x20 0x61    // 'you're a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x6C 0x61    // 't the la' \n\t0x73 0x74 0x20 0x66 0x72 0x61 0x6D 0x65    // 'st frame' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x20 0x63    // 'en you c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x50 0x6C 0x61    // 'lick Pla' \n\t0x79 0x2C 0x20 0x74 0x68 0x65 0x20 0x6D    // 'y, the m' \n\t0x6F 0x76 0x69 0x65 0x20 0x61 0x75 0x74    // 'ovie aut' \n\t0x6F 0x6D 0x61 0x74 0x69 0x63 0x61 0x6C    // 'omatical' \n\t0x6C 0x79 0x20 0x72 0x65 0x77 0x69 0x6E    // 'ly rewin' \n\t0x64 0x73 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ds to th' \n\t0x65 0x20 0x62 0x65 0x67 0x69 0x6E 0x6E    // 'e beginn' \n\t0x69 0x6E 0x67 0x2E                        // 'ing.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_44= ktpcHowToSounds44\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"Tip:  Undo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"Tip:  Undo\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTSounds44\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToSounds44\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds44\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpUndo __HELP_SYMBOL( STN \"mbmpUndo\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRedo __HELP_SYMBOL( STN \"mbmpRedo\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x01    // '????.???' \n\t0x01 0xF1 0x00 0x00 0x3B 0x00 0x00 0x01    // '???;???' \n\t0x01 0x00 0x00 0x00 0x56 0x00 0x00 0x01    // '????V???' \n\t0x01 0xF6 0x00 0x00 0x63 0x00 0x00 0x01    // '???c???' \n\t0x01 0x00 0x00 0x00 0x64 0x00 0x00 0x01    // '????d???' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x03    // '????>???' \n\t0x0A 0x00 0x00 0xFD 0x54 0x00 0x00 0x03    // '???T???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x56 0x00 0x00 0x82    // '????V??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0xC0    // '????;??' \n\t0x02 0x00 0x00 0x00 0x63 0x00 0x00 0xC0    // '????c??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x55 0x6E 0x64    // '???  Und' \n\t0x6F 0x2F 0x52 0x65 0x64 0x6F 0x0D 0x0A    // 'o/Redo??' \n\t0x54 0x6F 0x20 0x75 0x6E 0x64 0x6F 0x20    // 'To undo ' \n\t0x74 0x68 0x65 0x20 0x6C 0x61 0x73 0x74    // 'the last' \n\t0x20 0x74 0x68 0x69 0x6E 0x67 0x20 0x79    // ' thing y' \n\t0x6F 0x75 0x20 0x64 0x69 0x64 0x0D 0x0A    // 'ou did??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x55 0x6E 0x64 0x6F 0x2D 0x01 0x0D 0x0A    // 'Undo-???' \n\t0x54 0x6F 0x20 0x72 0x65 0x64 0x6F 0x20    // 'To redo ' \n\t0x77 0x68 0x61 0x74 0x20 0x79 0x6F 0x75    // 'what you' \n\t0x20 0x75 0x6E 0x64 0x69 0x64 0x0D 0x0A    // ' undid??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x52 0x65 0x64 0x6F 0x2D 0x01              // 'Redo-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_51= ktpcHowToSounds51\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTSounds51\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_31=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToSounds51\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds51\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_31=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_31=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x03    // '????y???' \n\t0x0A 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x79 0x00 0x00 0x80    // '????y??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x79 0x00 0x00 0x82    // '????y??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_31=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x0D 0x0A    // '??Drag??' \n\t0x31 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '1?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x73 0x20    // 'tton as ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'you move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x57    // 'se.??2?W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x76 0x65 0x20 0x66 0x69 0x6E 0x69 0x73    // 've finis' \n\t0x68 0x65 0x64 0x20 0x64 0x72 0x61 0x67    // 'hed drag' \n\t0x67 0x69 0x6E 0x67 0x2C 0x20 0x6C 0x65    // 'ging, le' \n\t0x74 0x20 0x67 0x6F 0x20 0x6F 0x66 0x20    // 't go of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x2E 0x0D 0x0A 0x54 0x69 0x70 0x20 0x66    // '.??Tip f' \n\t0x72 0x6F 0x6D 0x20 0x4D 0x63 0x5A 0x65    // 'rom McZe' \n\t0x65 0x3A 0x20 0x20 0x59 0x6F 0x75 0x27    // 'e:  You'' \n\t0x6C 0x6C 0x20 0x67 0x65 0x74 0x20 0x74    // 'll get t' \n\t0x68 0x65 0x20 0x62 0x65 0x73 0x74 0x20    // 'he best ' \n\t0x72 0x65 0x73 0x75 0x6C 0x74 0x73 0x20    // 'results ' \n\t0x69 0x66 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'if you m' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x73 0x6C    // 'mouse sl' \n\t0x6F 0x77 0x6C 0x79 0x20 0x61 0x73 0x20    // 'owly as ' \n\t0x79 0x6F 0x75 0x20 0x64 0x72 0x61 0x67    // 'you drag' \n\t0x2E 0x20                                  // '. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_52= ktpcHowToSounds52\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_52, __HELP_NAME(\"Def:  Go to the place\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_52, __HELP_NAME(\"Def:  Go to the place\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTSounds52\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_52, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToSounds52\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds52\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_52, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x41 0x01 0x00 0x00    // '????A???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_23=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4D 0x01 0x00 0x01    // '????M???' \n\t0x00 0x00 0x00 0x00 0x5C 0x00 0x00 0x02    // '????\\???' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x02    // '????b???' \n\t0x00 0x00 0x00 0x00 0xF2 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xF8 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00 0xB9 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xD4 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x80    // '????Y??' \n\t0x00 0x00 0x03 0x00 0xB9 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xEF 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xF2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0xC0    // '????Y??' \n\t0x02 0x00 0x00 0x00 0xEF 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x6F 0x20 0x74 0x6F 0x20    // '??Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x6F    // 'e??To mo' \n\t0x76 0x65 0x20 0x66 0x6F 0x72 0x77 0x61    // 've forwa' \n\t0x72 0x64 0x73 0x20 0x6F 0x72 0x20 0x62    // 'rds or b' \n\t0x61 0x63 0x6B 0x77 0x61 0x72 0x64 0x73    // 'ackwards' \n\t0x20 0x77 0x69 0x74 0x68 0x69 0x6E 0x20    // ' within ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65 0x0D    // 'a scene?' \n\t0x0A 0x95 0x09 0x55 0x73 0x65 0x20 0x74    // '??Use t' \n\t0x68 0x65 0x20 0x46 0x72 0x61 0x6D 0x65    // 'he Frame' \n\t0x20 0x53 0x6C 0x69 0x64 0x65 0x72 0x2E    // ' Slider.' \n\t0x20 0x0D 0x0A 0x01 0x0D 0x0A 0x43 0x6C    // ' ?????Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x46 0x69 0x72 0x73 0x74 0x2C 0x20 0x50    // 'First, P' \n\t0x72 0x65 0x76 0x69 0x6F 0x75 0x73 0x2C    // 'revious,' \n\t0x20 0x4E 0x65 0x78 0x74 0x2C 0x20 0x6F    // ' Next, o' \n\t0x72 0x20 0x4C 0x61 0x73 0x74 0x20 0x41    // 'r Last A' \n\t0x72 0x72 0x6F 0x77 0x20 0x6F 0x72 0x20    // 'rrow or ' \n\t0x64 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'drag the' \n\t0x20 0x73 0x6C 0x69 0x64 0x65 0x72 0x20    // ' slider ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x6D    // 'in the m' \n\t0x69 0x64 0x64 0x6C 0x65 0x20 0x6F 0x66    // 'iddle of' \n\t0x20 0x74 0x68 0x65 0x20 0x62 0x61 0x72    // ' the bar' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x6F    // '.??To mo' \n\t0x76 0x65 0x20 0x66 0x72 0x6F 0x6D 0x20    // 've from ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x74 0x6F    // 'scene to' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A    // ' scene??' \n\t0x95 0x09 0x55 0x73 0x65 0x20 0x74 0x68    // '?Use th' \n\t0x65 0x20 0x53 0x63 0x65 0x6E 0x65 0x20    // 'e Scene ' \n\t0x53 0x6C 0x69 0x64 0x65 0x72 0x2E 0x0D    // 'Slider.?' \n\t0x0A 0x01 0x0D 0x0A 0x43 0x6C 0x69 0x63    // '????Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x46 0x69    // 'k the Fi' \n\t0x72 0x73 0x74 0x2C 0x20 0x50 0x72 0x65    // 'rst, Pre' \n\t0x76 0x69 0x6F 0x75 0x73 0x2C 0x20 0x4E    // 'vious, N' \n\t0x65 0x78 0x74 0x2C 0x20 0x6F 0x72 0x20    // 'ext, or ' \n\t0x4C 0x61 0x73 0x74 0x20 0x41 0x72 0x72    // 'Last Arr' \n\t0x6F 0x77 0x20 0x6F 0x72 0x20 0x64 0x72    // 'ow or dr' \n\t0x61 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ag the s' \n\t0x6C 0x69 0x64 0x65 0x72 0x20 0x69 0x6E    // 'lider in' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x69 0x64    // ' the mid' \n\t0x64 0x6C 0x65 0x20 0x6F 0x66 0x20 0x74    // 'dle of t' \n\t0x68 0x65 0x20 0x62 0x61 0x72 0x2E         // 'he bar.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_60= ktpcHowToSounds60\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_60, __HELP_NAME(\"Tip:  Play continuously\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_60, __HELP_NAME(\"Tip:  Play continuously\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTSounds60\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_60, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToSounds60\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds60\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_60, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x3F 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_25=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsLooping __HELP_SYMBOL( STN \"mbmpSoundsLooping\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x01    // '????=???' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x6C 0x00 0x00 0x01    // '???l???' \n\t0x01 0x00 0x00 0x00 0xBF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x03    // '????!???' \n\t0x0A 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x80    // '????!??' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6F 0x00 0x00 0x82    // '????o??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x6C 0x00 0x00 0xC0    // '????l??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x50 0x6C 0x61    // '???  Pla' \n\t0x79 0x69 0x6E 0x67 0x20 0x61 0x20 0x73    // 'ying a s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x63 0x6F 0x6E    // 'ound con' \n\t0x74 0x69 0x6E 0x75 0x6F 0x75 0x73 0x6C    // 'tinuousl' \n\t0x79 0x0D 0x0A 0x54 0x6F 0x20 0x70 0x6C    // 'y??To pl' \n\t0x61 0x79 0x20 0x61 0x20 0x73 0x6F 0x75    // 'ay a sou' \n\t0x6E 0x64 0x20 0x63 0x6F 0x6E 0x74 0x69    // 'nd conti' \n\t0x6E 0x75 0x6F 0x75 0x73 0x6C 0x79 0x0D    // 'nuously?' \n\t0x0A 0x31 0x09 0x43 0x68 0x6F 0x6F 0x73    // '?1?Choos' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x73 0x6F    // 'e the so' \n\t0x75 0x6E 0x64 0x20 0x79 0x6F 0x75 0x20    // 'und you ' \n\t0x77 0x61 0x6E 0x74 0x2C 0x20 0x74 0x68    // 'want, th' \n\t0x65 0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'en click' \n\t0x20 0x4C 0x6F 0x6F 0x70 0x2D 0x01 0x0D    // ' Loop-??' \n\t0x0A 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?2?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // ', 3D wor' \n\t0x64 0x2C 0x20 0x6F 0x72 0x20 0x62 0x61    // 'd, or ba' \n\t0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'ckground' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x61 0x74 0x74    // 't to att' \n\t0x61 0x63 0x68 0x20 0x74 0x68 0x65 0x20    // 'ach the ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F    // 'sound to' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_61= ktpcHowToSounds61\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_61, __HELP_NAME(\"Tip:  Attach action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_61, __HELP_NAME(\"Tip:  Attach action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTSounds61\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_61, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToSounds61\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds61\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_61, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x20 0x01 0x00 0x00    // '???? ???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsAttachToCell __HELP_SYMBOL( STN \"mbmpSoundsAttachToCell\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0x01    // '????S???' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x01    // '????U???' \n\t0x01 0x00 0x00 0x00 0xCF 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0xE4 0x00 0x00 0x01    // '??????' \n\t0x01 0xF6 0x00 0x00 0xFF 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x46 0x01 0x00 0x01    // '????F???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x03    // '????#???' \n\t0x0A 0x00 0x00 0xFD 0x53 0x00 0x00 0x03    // '???S???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x80    // '????#??' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x80    // '????U??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x02 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0xFF 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x41 0x74 0x74    // '???  Att' \n\t0x61 0x63 0x68 0x69 0x6E 0x67 0x20 0x61    // 'aching a' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x74    // ' sound t' \n\t0x6F 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'o an act' \n\t0x69 0x6F 0x6E 0x0D 0x0A 0x54 0x6F 0x20    // 'ion??To ' \n\t0x61 0x74 0x74 0x61 0x63 0x68 0x20 0x61    // 'attach a' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x74    // ' sound t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x63 0x75    // 'o the cu' \n\t0x72 0x72 0x65 0x6E 0x74 0x20 0x61 0x63    // 'rrent ac' \n\t0x74 0x69 0x6F 0x6E 0x20 0x70 0x6F 0x73    // 'tion pos' \n\t0x69 0x74 0x69 0x6F 0x6E 0x0D 0x0A 0x31    // 'ition??1' \n\t0x09 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x77    // ' movie w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x61 0x74 0x74 0x61 0x63 0x68 0x20    // ' attach ' \n\t0x74 0x68 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'the soun' \n\t0x64 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'd to the' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x20    // ' action ' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x43 0x68 0x6F    // '.??2?Cho' \n\t0x6F 0x73 0x65 0x20 0x74 0x68 0x65 0x20    // 'ose the ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x79 0x6F    // 'sound yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x2E 0x0D    // 'u want.?' \n\t0x0A 0x33 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?3?Click' \n\t0x20 0x4D 0x6F 0x72 0x65 0x20 0x54 0x6F    // ' More To' \n\t0x6F 0x6C 0x73 0x2E 0x0D 0x0A 0x34 0x09    // 'ols.??4?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x41 0x63 0x74 0x69 0x6F 0x6E    // 'e Action' \n\t0x20 0x4D 0x61 0x74 0x63 0x68 0x65 0x72    // ' Matcher' \n\t0x2D 0x01 0x0D 0x0A 0x35 0x09 0x43 0x6C    // '-???5?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2C 0x20 0x70    // 'actor, p' \n\t0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20    // 'rop, or ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x20    // '3D word ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x61 0x74 0x74 0x61    // ' to atta' \n\t0x63 0x68 0x20 0x74 0x68 0x65 0x20 0x73    // 'ch the s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F 0x2E    // 'ound to.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_62= ktpcHowToSounds62\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_62, __HELP_NAME(\"Tip:  Remove Sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_62, __HELP_NAME(\"Tip:  Remove Sound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTSounds62\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_62, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToSounds62\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds62\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_62, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x04 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_24=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCutCopyPaste __HELP_SYMBOL( STN \"mbmpCutCopyPaste\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpNukeSound __HELP_SYMBOL( STN \"mbmpNukeSound\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x01 0xF6 0x00 0x00 0x4D 0x00 0x00 0x01    // '???M???' \n\t0x01 0x00 0x00 0x00 0x4E 0x00 0x00 0x01    // '????N???' \n\t0x01 0xF1 0x00 0x00 0x50 0x00 0x00 0x01    // '???P???' \n\t0x01 0xF6 0x00 0x00 0x65 0x00 0x00 0x01    // '???e???' \n\t0x01 0x00 0x00 0x00 0xAD 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xF3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x80    // '????P??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xAD 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0x4D 0x00 0x00 0xC0    // '????M??' \n\t0x01 0x00 0x00 0x00 0x65 0x00 0x00 0xC0    // '????e??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x52 0x65 0x6D    // '???  Rem' \n\t0x6F 0x76 0x69 0x6E 0x67 0x20 0x61 0x20    // 'oving a ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x54    // 'sound??T' \n\t0x6F 0x20 0x72 0x65 0x6D 0x6F 0x76 0x65    // 'o remove' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \n\t0x0D 0x0A 0x31 0x09 0x43 0x6C 0x69 0x63    // '??1?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x43 0x75    // 'k the Cu' \n\t0x74 0x2C 0x20 0x43 0x6F 0x70 0x79 0x2C    // 't, Copy,' \n\t0x20 0x26 0x20 0x50 0x61 0x73 0x74 0x65    // ' & Paste' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2D 0x01    // ' Tools-?' \n\t0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69 0x63    // '??2?Clic' \n\t0x6B 0x20 0x52 0x65 0x6D 0x6F 0x76 0x65    // 'k Remove' \n\t0x20 0x53 0x6F 0x75 0x6E 0x64 0x2D 0x01    // ' Sound-?' \n\t0x0D 0x0A 0x33 0x09 0x43 0x6C 0x69 0x63    // '??3?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x33 0x44    // 'k the 3D' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x20    // ' object ' \n\t0x6F 0x72 0x20 0x62 0x61 0x63 0x6B 0x67    // 'or backg' \n\t0x72 0x6F 0x75 0x6E 0x64 0x20 0x77 0x68    // 'round wh' \n\t0x6F 0x73 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'ose soun' \n\t0x64 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'd you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x72 0x65    // 'nt to re' \n\t0x6D 0x6F 0x76 0x65 0x2E 0x0D 0x0A 0x34    // 'move.??4' \n\t0x09 0x48 0x6F 0x6C 0x64 0x20 0x64 0x6F    // '?Hold do' \n\t0x77 0x6E 0x20 0x74 0x68 0x65 0x20 0x6D    // 'wn the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x62 0x75 0x74    // 'ouse but' \n\t0x74 0x6F 0x6E 0x20 0x61 0x6E 0x64 0x20    // 'ton and ' \n\t0x64 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'drag the' \n\t0x20 0x76 0x6F 0x6C 0x75 0x6D 0x65 0x20    // ' volume ' \n\t0x73 0x6C 0x69 0x64 0x65 0x72 0x20 0x74    // 'slider t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x62 0x6F    // 'o the bo' \n\t0x74 0x74 0x6F 0x6D 0x2E                   // 'ttom.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_63= ktpcHowToSounds63\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_63, __HELP_NAME(\"Tip:  Pause Sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_63, __HELP_NAME(\"Tip:  Pause Sound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTSounds63\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_27=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_63, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToSounds63\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds63\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_27=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_63, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x38 0x01 0x00 0x00    // '????8???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_19=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPausesSound __HELP_SYMBOL( STN \"mbmpPausesSound\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_27=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x01    // '????3???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x01 0x00 0x00 0x00 0x66 0x00 0x00 0x01    // '????f???' \n\t0x00 0x00 0x00 0x00 0x68 0x00 0x00 0x01    // '????h???' \n\t0x01 0x00 0x00 0x00 0xC1 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xDF 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xE0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x03    // '????5???' \n\t0x0A 0x00 0x00 0xFD 0x66 0x00 0x00 0x03    // '???f???' \n\t0x00 0x00 0x00 0x00 0x68 0x00 0x00 0x03    // '????h???' \n\t0x0F 0x00 0x00 0xFD 0xE0 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x68 0x00 0x00 0x80    // '????h??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xC1 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0xDF 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_27=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x50 0x61 0x75    // '???  Pau' \n\t0x73 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'sing the' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x75    // ' movie u' \n\t0x6E 0x74 0x69 0x6C 0x20 0x61 0x6E 0x20    // 'ntil an ' \n\t0x61 0x63 0x74 0x6F 0x72 0x20 0x69 0x73    // 'actor is' \n\t0x20 0x64 0x6F 0x6E 0x65 0x20 0x74 0x61    // ' done ta' \n\t0x6C 0x6B 0x69 0x6E 0x67 0x0D 0x0A 0x54    // 'lking??T' \n\t0x6F 0x20 0x70 0x61 0x75 0x73 0x65 0x20    // 'o pause ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x76 0x69    // 'the movi' \n\t0x65 0x20 0x75 0x6E 0x74 0x69 0x6C 0x20    // 'e until ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x20 0x69 0x73 0x20 0x64 0x6F 0x6E 0x65    // ' is done' \n\t0x20 0x74 0x61 0x6C 0x6B 0x69 0x6E 0x67    // ' talking' \n\t0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20 0x74    // '??1?Go t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x70 0x6C    // 'o the pl' \n\t0x61 0x63 0x65 0x20 0x69 0x6E 0x20 0x79    // 'ace in y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x70 0x61 0x75 0x73    // ' to paus' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'e the mo' \n\t0x76 0x69 0x65 0x2E 0x0D 0x0A 0x32 0x09    // 'vie.??2?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x4D 0x6F    // 'Click Mo' \n\t0x72 0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73    // 're Tools' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69    // '.??2?Cli' \n\t0x63 0x6B 0x20 0x57 0x61 0x69 0x74 0x20    // 'ck Wait ' \n\t0x66 0x6F 0x72 0x20 0x53 0x6F 0x75 0x6E    // 'for Soun' \n\t0x64 0x20 0x74 0x6F 0x20 0x45 0x6E 0x64    // 'd to End' \n\t0x2D 0x01                                  // '-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_69= ktpcHowToSounds69\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_69, __HELP_NAME(\"Tip:  Individual sounds\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_69, __HELP_NAME(\"Tip:  Individual sounds\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTSounds69\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_30=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_69, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToSounds69\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds69\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_30=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_69, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x00 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_20=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsListen __HELP_SYMBOL( STN \"mbmpSoundsListen\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_30=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x01    // '????X???' \n\t0x01 0xF6 0x00 0x00 0x6D 0x00 0x00 0x01    // '???m???' \n\t0x01 0x00 0x00 0x00 0xA9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x03    // '????-???' \n\t0x0A 0x00 0x00 0xFD 0x58 0x00 0x00 0x03    // '???X???' \n\t0x0F 0x00 0x00 0xFD 0xA9 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x58 0x00 0x00 0x80    // '????X??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x70 0x00 0x00 0x82    // '????p??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x6D 0x00 0x00 0xC0    // '????m??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_30=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x68 0x61    // '???  Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x76 0x6F 0x6C 0x75 0x6D 0x65    // 'e volume' \n\t0x20 0x6F 0x66 0x20 0x69 0x6E 0x64 0x69    // ' of indi' \n\t0x76 0x69 0x64 0x75 0x61 0x6C 0x20 0x73    // 'vidual s' \n\t0x6F 0x75 0x6E 0x64 0x73 0x0D 0x0A 0x54    // 'ounds??T' \n\t0x6F 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'o change' \n\t0x20 0x74 0x68 0x65 0x20 0x76 0x6F 0x6C    // ' the vol' \n\t0x75 0x6D 0x65 0x20 0x6F 0x66 0x20 0x69    // 'ume of i' \n\t0x6E 0x64 0x69 0x76 0x69 0x64 0x75 0x61    // 'ndividua' \n\t0x6C 0x20 0x73 0x6F 0x75 0x6E 0x64 0x73    // 'l sounds' \n\t0x0D 0x0A 0x31 0x09 0x43 0x6C 0x69 0x63    // '??1?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x4C 0x69    // 'k the Li' \n\t0x73 0x74 0x65 0x6E 0x65 0x72 0x2D 0x01    // 'stener-?' \n\t0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69 0x63    // '??2?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x6F 0x62    // 'k the ob' \n\t0x6A 0x65 0x63 0x74 0x20 0x77 0x68 0x6F    // 'ject who' \n\t0x73 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'se sound' \n\t0x20 0x76 0x6F 0x6C 0x75 0x6D 0x65 0x20    // ' volume ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x63 0x68 0x61 0x6E    // ' to chan' \n\t0x67 0x65 0x2E                             // 'ge.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_73= ktpcHowToSounds73\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_73, __HELP_NAME(\"Tip:  Stop sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_73, __HELP_NAME(\"Tip:  Stop sound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTSounds73\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_28=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_73, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToSounds73\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds73\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_28=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_73, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x01 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsEfxBrowser __HELP_SYMBOL( STN \"mbmpSoundsEfxBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsMicBrowser __HELP_SYMBOL( STN \"mbmpSoundsMicBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsMusicBrowser __HELP_SYMBOL( STN \"mbmpSoundsMusicBrowser\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_28=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x16 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x97 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xA5 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xA8 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xAF 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xB2 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xB8 0x00 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0xBA 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDD 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x80    // '????&??' \n\t0x00 0x00 0x02 0x00 0x96 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xBA 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xD2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x96 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0xA7 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00 0xB1 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_28=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x74 0x6F    // '???  Sto' \n\t0x70 0x70 0x69 0x6E 0x67 0x20 0x61 0x20    // 'pping a ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x54    // 'sound??T' \n\t0x6F 0x20 0x73 0x74 0x6F 0x70 0x20 0x61    // 'o stop a' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x0D 0x0A    // ' sound??' \n\t0x31 0x09 0x47 0x6F 0x20 0x74 0x6F 0x20    // '1?Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'e in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'r movie ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x73 0x74 0x6F 0x70 0x20 0x74    // 'o stop t' \n\t0x68 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'he sound' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69    // '.??2?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x6B    // 'ck the k' \n\t0x69 0x6E 0x64 0x20 0x6F 0x66 0x20 0x73    // 'ind of s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x79 0x6F 0x75    // 'ound you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x73 0x74 0x6F 0x70 0x3A 0x0D 0x0A    // ' stop:??' \n\t0x01 0x2D 0x53 0x6F 0x75 0x6E 0x64 0x20    // '?-Sound ' \n\t0x45 0x66 0x66 0x65 0x63 0x74 0x73 0x0D    // 'Effects?' \n\t0x0A 0x01 0x2D 0x53 0x70 0x65 0x65 0x63    // '??-Speec' \n\t0x68 0x0D 0x0A 0x01 0x2D 0x4D 0x75 0x73    // 'h???-Mus' \n\t0x69 0x63 0x0D 0x0A 0x33 0x09 0x43 0x6C    // 'ic??3?Cl' \n\t0x69 0x63 0x6B 0x20 0x53 0x6F 0x75 0x6E    // 'ick Soun' \n\t0x64 0x20 0x53 0x74 0x6F 0x70 0x70 0x65    // 'd Stoppe' \n\t0x72 0x2E 0x0D 0x0A 0x34 0x09 0x43 0x6C    // 'r.??4?Cl' \n\t0x69 0x63 0x6B 0x20 0x4F 0x4B 0x2E         // 'ick OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_74= ktpcHowToSounds74\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_74, __HELP_NAME(\"Def:  Choose sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_74, __HELP_NAME(\"Def:  Choose sound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTSounds74\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_33=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_74, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToSounds74\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds74\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_33=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_74, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsEfxBrowser __HELP_SYMBOL( STN \"mbmpSoundsEfxBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsMicBrowser __HELP_SYMBOL( STN \"mbmpSoundsMicBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsMusicBrowser __HELP_SYMBOL( STN \"mbmpSoundsMusicBrowser\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_33=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x01 0xF6 0x00 0x00 0x43 0x00 0x00 0x01    // '???C???' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x01    // '????F???' \n\t0x01 0xF6 0x00 0x00 0x5F 0x00 0x00 0x01    // '???_???' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x01    // '????b???' \n\t0x01 0xF6 0x00 0x00 0x78 0x00 0x00 0x01    // '???x???' \n\t0x01 0x00 0x00 0x00 0x79 0x00 0x00 0x01    // '????y???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x80    // '????%??' \n\t0x00 0x00 0x02 0x00 0x7B 0x00 0x00 0x80    // '????{??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x62 0x00 0x00 0x82    // '????b??' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0xC0    // '????C??' \n\t0x01 0x00 0x00 0x00 0x5F 0x00 0x00 0xC0    // '????_??' \n\t0x02 0x00 0x00 0x00 0x78 0x00 0x00 0xC0    // '????x??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_33=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x6F 0x6F 0x73 0x65    // '??Choose' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x0D 0x0A 0x54 0x6F 0x20 0x63    // 'nd??To c' \n\t0x68 0x6F 0x6F 0x73 0x65 0x20 0x61 0x20    // 'hoose a ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x95    // 'sound??' \n\t0x09 0x54 0x6F 0x20 0x61 0x64 0x64 0x20    // '?To add ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x65 0x66    // 'sound ef' \n\t0x66 0x65 0x63 0x74 0x73 0x2C 0x20 0x63    // 'fects, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x01 0x0D 0x0A    // 'lick ???' \n\t0x95 0x09 0x54 0x6F 0x20 0x61 0x64 0x64    // '?To add' \n\t0x20 0x64 0x69 0x61 0x6C 0x6F 0x67 0x75    // ' dialogu' \n\t0x65 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'e, click' \n\t0x20 0x01 0x0D 0x0A 0x95 0x09 0x54 0x6F    // ' ????To' \n\t0x20 0x61 0x64 0x64 0x20 0x6D 0x75 0x73    // ' add mus' \n\t0x69 0x63 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ic, clic' \n\t0x6B 0x20 0x01 0x0D 0x0A                   // 'k ???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_76= ktpcHowToSounds76\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_76, __HELP_NAME(\"Tip:  How many sounds\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_76, __HELP_NAME(\"Tip:  How many sounds\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTSounds76\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_76, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToSounds76\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds76\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_76, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x1D 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD4 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x80    // '????2??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7C 0x00 0x00 0x82    // '????|??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x48 0x6F 0x77 0x20    // '??? How ' \n\t0x6D 0x61 0x6E 0x79 0x20 0x73 0x6F 0x75    // 'many sou' \n\t0x6E 0x64 0x73 0x20 0x63 0x61 0x6E 0x20    // 'nds can ' \n\t0x49 0x20 0x61 0x74 0x74 0x61 0x63 0x68    // 'I attach' \n\t0x3F 0x0D 0x0A 0x59 0x6F 0x75 0x20 0x63    // '???You c' \n\t0x61 0x6E 0x20 0x61 0x74 0x74 0x61 0x63    // 'an attac' \n\t0x68 0x3A 0x0D 0x0A 0x95 0x09 0x54 0x77    // 'h:???Tw' \n\t0x6F 0x20 0x73 0x6F 0x75 0x6E 0x64 0x73    // 'o sounds' \n\t0x20 0x74 0x6F 0x20 0x61 0x20 0x62 0x61    // ' to a ba' \n\t0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'ckground' \n\t0x20 0x28 0x6F 0x6E 0x65 0x20 0x73 0x6F    // ' (one so' \n\t0x75 0x6E 0x64 0x20 0x65 0x66 0x66 0x65    // 'und effe' \n\t0x63 0x74 0x20 0x61 0x6E 0x64 0x20 0x6F    // 'ct and o' \n\t0x6E 0x65 0x20 0x6D 0x75 0x73 0x69 0x63    // 'ne music' \n\t0x20 0x73 0x65 0x6C 0x65 0x63 0x74 0x69    // ' selecti' \n\t0x6F 0x6E 0x29 0x2E 0x0D 0x0A 0x95 0x09    // 'on).???' \n\t0x54 0x77 0x6F 0x20 0x73 0x6F 0x75 0x6E    // 'Two soun' \n\t0x64 0x73 0x20 0x74 0x6F 0x20 0x61 0x6E    // 'ds to an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x20 0x28 0x6F 0x6E 0x65 0x20 0x73    // '  (one s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x65 0x66 0x66    // 'ound eff' \n\t0x65 0x63 0x74 0x20 0x61 0x6E 0x64 0x20    // 'ect and ' \n\t0x6F 0x6E 0x65 0x20 0x73 0x70 0x65 0x65    // 'one spee' \n\t0x63 0x68 0x20 0x72 0x65 0x63 0x6F 0x72    // 'ch recor' \n\t0x64 0x69 0x6E 0x67 0x29 0x2E              // 'ding).' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_77= ktpcHowToSounds77\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_77, __HELP_NAME(\"Tip:  Chaining sounds\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_77, __HELP_NAME(\"Tip:  Chaining sounds\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTSounds77\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_32=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_77, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToSounds77\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTSounds77\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_32=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_77, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x00 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_22=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_32=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x61 0x01 0x00 0x01    // '????a???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x5D 0x00 0x00 0x03    // '???]???' \n\t0x00 0x00 0x00 0x00 0x5D 0x00 0x00 0x80    // '????]??' \n\t0x00 0x00 0x02 0x00 0xBE 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x1D 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xBE 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_32=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x68 0x61    // '???  Cha' \n\t0x69 0x6E 0x69 0x6E 0x67 0x20 0x73 0x6F    // 'ining so' \n\t0x75 0x6E 0x64 0x73 0x20 0x74 0x6F 0x67    // 'unds tog' \n\t0x65 0x74 0x68 0x65 0x72 0x0D 0x0A 0x54    // 'ether??T' \n\t0x6F 0x20 0x63 0x68 0x61 0x69 0x6E 0x20    // 'o chain ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x73 0x20 0x74    // 'sounds t' \n\t0x6F 0x67 0x65 0x74 0x68 0x65 0x72 0x20    // 'ogether ' \n\t0x73 0x6F 0x20 0x74 0x68 0x61 0x74 0x20    // 'so that ' \n\t0x74 0x68 0x65 0x79 0x20 0x70 0x6C 0x61    // 'they pla' \n\t0x79 0x20 0x6F 0x6E 0x65 0x20 0x61 0x66    // 'y one af' \n\t0x74 0x65 0x72 0x20 0x74 0x68 0x65 0x20    // 'ter the ' \n\t0x6F 0x74 0x68 0x65 0x72 0x0D 0x0A 0x31    // 'other??1' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x50    // '?Click P' \n\t0x6C 0x61 0x79 0x20 0x4F 0x6E 0x63 0x65    // 'lay Once' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x48 0x6F 0x6C    // '.??2?Hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x43    // 'd down C' \n\t0x74 0x72 0x6C 0x20 0x77 0x68 0x65 0x6E    // 'trl when' \n\t0x20 0x79 0x6F 0x75 0x20 0x63 0x6C 0x69    // ' you cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x6F    // 'ck the o' \n\t0x62 0x6A 0x65 0x63 0x74 0x20 0x79 0x6F    // 'bject yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x61 0x74 0x74 0x61 0x63 0x68    // 'o attach' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x20 0x74 0x6F 0x2E 0x0D 0x0A    // 'nd to.??' \n\t0x54 0x68 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'The soun' \n\t0x64 0x20 0x69 0x73 0x20 0x63 0x68 0x61    // 'd is cha' \n\t0x69 0x6E 0x65 0x64 0x20 0x74 0x6F 0x20    // 'ined to ' \n\t0x74 0x68 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'the soun' \n\t0x64 0x20 0x74 0x68 0x61 0x74 0x20 0x79    // 'd that y' \n\t0x6F 0x75 0x20 0x70 0x72 0x65 0x76 0x69    // 'ou previ' \n\t0x6F 0x75 0x73 0x6C 0x79 0x20 0x61 0x74    // 'ously at' \n\t0x74 0x61 0x63 0x68 0x65 0x64 0x20 0x74    // 'tached t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x6F 0x62    // 'o the ob' \n\t0x6A 0x65 0x63 0x74 0x2E 0x20 0x20 0x54    // 'ject.  T' \n\t0x68 0x65 0x20 0x6E 0x65 0x77 0x20 0x73    // 'he new s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x70 0x6C 0x61    // 'ound pla' \n\t0x79 0x73 0x20 0x61 0x74 0x20 0x74 0x68    // 'ys at th' \n\t0x65 0x20 0x65 0x6E 0x64 0x20 0x6F 0x66    // 'e end of' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x68 0x61    // ' the cha' \n\t0x69 0x6E 0x2D 0x2D 0x79 0x6F 0x75 0x20    // 'in--you ' \n\t0x63 0x61 0x6E 0x27 0x74 0x20 0x69 0x6E    // 'can't in' \n\t0x73 0x65 0x72 0x74 0x20 0x61 0x20 0x73    // 'sert a s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x69 0x6E 0x20    // 'ound in ' \n\t0x74 0x68 0x65 0x20 0x6D 0x69 0x64 0x64    // 'the midd' \n\t0x6C 0x65 0x2E                             // 'le.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/htwords.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcHowToWords00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"CO--Click Words\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"CO--Click Words\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon3 kgobHowtoSequence kidTextsCover kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon3\"\n\tITEM\n\t\t\"ktpcHowToWords00\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidTextsCover\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4E 0x00 0x00 0x00    // '????N???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x57 0x6F 0x72 0x64 0x73 0x2E              // 'Words.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpcHowToWords01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"CO 1) To add words\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"CO 1) To add words\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon3 kgobHowtoSequence kidTextsCreate kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon3\"\n\tITEM\n\t\t\"ktpcHowToWords01\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidTextsCreate\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x92 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x7D 0x00 0x00 0x03    // '???}???' \n\t0x00 0x00 0x00 0x00 0x89 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x91 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x04    // '????A???' \n\t0x0D 0x00 0x00 0xFE 0x50 0x00 0x00 0x04    // '???P???' \n\t0x00 0x00 0x00 0x00 0x41 0x00 0x00 0x40    // '????A??@' \n\t0x03 0x00 0x00 0x00 0x50 0x00 0x00 0x40    // '????P??@' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7D 0x00 0x00 0x82    // '????}??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x72 0x65    // '??To cre' \n\t0x61 0x74 0x65 0x20 0x61 0x20 0x77 0x6F    // 'ate a wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x20 0x77    // 'rd box w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x63 0x61 0x6E 0x20 0x74 0x79 0x70    // ' can typ' \n\t0x65 0x20 0x79 0x6F 0x75 0x72 0x20 0x73    // 'e your s' \n\t0x74 0x6F 0x72 0x79 0x20 0x6F 0x72 0x20    // 'tory or ' \n\t0x63 0x72 0x65 0x64 0x69 0x74 0x73 0x0D    // 'credits?' \n\t0x0A 0x31 0x09 0x47 0x6F 0x20 0x74 0x6F    // '?1?Go to' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x63 0x65 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ce in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x61 0x64 0x64 0x20 0x77    // 'to add w' \n\t0x6F 0x72 0x64 0x73 0x2E 0x0D 0x0A 0x32    // 'ords.??2' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x57 0x6F 0x72 0x64 0x20    // 'he Word ' \n\t0x42 0x6F 0x78 0x2E                        // 'Box.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpcHowToWords02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"CO 2) Click Story or Credits\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"CO 2) Click Story or Credits\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x0 0x57415645 kwavHTWords02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords02\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_17=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords67 __HELP_SYMBOL( STN \"ktpcHowToWords67\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x7C 0x00 0x00 0x01    // '????|???' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x16 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x03    // '????>???' \n\t0x0F 0x00 0x00 0xFD 0x44 0x00 0x00 0x03    // '???D???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x04    // '????>???' \n\t0x0D 0x00 0x00 0xFE 0x44 0x00 0x00 0x04    // '???D???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x02 0x00 0x00 0x00 0x44 0x00 0x00 0x40    // '????D??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x34 0x00 0x00 0x82    // '????4??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x53 0x74 0x6F 0x72 0x79 0x20 0x6F 0x72    // 'Story or' \n\t0x20 0x43 0x72 0x65 0x64 0x69 0x74 0x73    // ' Credits' \n\t0x2E 0x0D 0x0A 0x95 0x09 0x53 0x74 0x6F    // '.???Sto' \n\t0x72 0x79 0x20 0x77 0x6F 0x72 0x64 0x73    // 'ry words' \n\t0x20 0x64 0x6F 0x6E 0x27 0x74 0x20 0x6D    // ' don't m' \n\t0x6F 0x76 0x65 0x2E 0x0D 0x0A 0x95 0x09    // 'ove.???' \n\t0x43 0x72 0x65 0x64 0x69 0x74 0x73 0x20    // 'Credits ' \n\t0x73 0x63 0x72 0x6F 0x6C 0x6C 0x20 0x74    // 'scroll t' \n\t0x6F 0x77 0x61 0x72 0x64 0x73 0x20 0x74    // 'owards t' \n\t0x68 0x65 0x20 0x74 0x6F 0x70 0x20 0x6F    // 'he top o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x73 0x63    // 'f the sc' \n\t0x72 0x65 0x65 0x6E 0x20 0x77 0x68 0x65    // 'reen whe' \n\t0x6E 0x20 0x79 0x6F 0x75 0x20 0x70 0x6C    // 'n you pl' \n\t0x61 0x79 0x20 0x79 0x6F 0x75 0x72 0x20    // 'ay your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2E              // 'movie.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpcHowToWords03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"CO 3) Type the words you \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"CO 3) Type the words you \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_34=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords03\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_34=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_34=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' 0x16102 0xFFFFFFFF __HELP_SYMBOL( STN )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords4B __HELP_SYMBOL( STN \"ktpcHowToWords4B\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_34=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5A 0x00 0x00 0x01    // '????Z???' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x40    // '????C??@' \n\t0x02 0x00 0x00 0x00 0x5A 0x00 0x00 0x40    // '????Z??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x43 0x00 0x00 0x82    // '????C??' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0xC0    // '????C??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_34=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x79 0x70 0x65 0x20 0x74    // '??Type t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x64 0x73    // 'he words' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x2E 0x20 0x20 0x49 0x66 0x20 0x79    // 't.  If y' \n\t0x6F 0x75 0x20 0x6D 0x61 0x6B 0x65 0x20    // 'ou make ' \n\t0x61 0x20 0x6D 0x69 0x73 0x74 0x61 0x6B    // 'a mistak' \n\t0x65 0x2C 0x20 0x70 0x72 0x65 0x73 0x73    // 'e, press' \n\t0x20 0x42 0x61 0x63 0x6B 0x73 0x70 0x61    // ' Backspa' \n\t0x63 0x65 0x2E 0x0D 0x0A 0x01 0x09 0x4D    // 'ce.????M' \n\t0x61 0x6B 0x69 0x6E 0x67 0x20 0x63 0x72    // 'aking cr' \n\t0x65 0x64 0x69 0x74 0x73 0x20 0x73 0x63    // 'edits sc' \n\t0x72 0x6F 0x6C 0x6C                        // 'roll' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpcHowToWords04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Words--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Words--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTWords04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_52=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords04\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_52=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_35=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_52, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToWords66 __HELP_SYMBOL( STN \"ktpcHowToWords66\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToWords43 __HELP_SYMBOL( STN \"ktpcHowToWords43\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToWords45 __HELP_SYMBOL( STN \"ktpcHowToWords45\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords44 __HELP_SYMBOL( STN \"ktpcHowToWords44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_52=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_52, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x01 0x00 0x00 0x00 0x6D 0x00 0x00 0x01    // '????m???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x40    // '????!??@' \n\t0x07 0x00 0x00 0x00 0x26 0x00 0x00 0x40    // '????&??@' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x03 0x00 0x00 0x00 0x43 0x00 0x00 0x40    // '????C??@' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x05 0x00 0x00 0x00 0x57 0x00 0x00 0x40    // '????W??@' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x40    // '????Y??@' \n\t0x01 0x00 0x00 0x00 0x6D 0x00 0x00 0x40    // '????m??@' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x80    // '????!??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x21 0x00 0x00 0x82    // '????!??' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0xC0    // '????!??' \n\t0x04 0x00 0x00 0x00 0x28 0x00 0x00 0xC0    // '????(??' \n\t0x04 0x00 0x00 0x00 0x45 0x00 0x00 0xC0    // '????E??' \n\t0x04 0x00 0x00 0x00 0x59 0x00 0x00 0xC0    // '????Y??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_52=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_52, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x72 0x65 0x61 0x74 0x69    // '??Creati' \n\t0x6E 0x67 0x20 0x61 0x20 0x77 0x6F 0x72    // 'ng a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x2D 0x2D 0x57    // 'd box--W' \n\t0x68 0x61 0x74 0x20 0x6E 0x65 0x78 0x74    // 'hat next' \n\t0x3F 0x0D 0x0A 0x01 0x55 0x6E 0x64 0x6F    // '????Undo' \n\t0x0D 0x0A 0x01 0x43 0x68 0x61 0x6E 0x67    // '???Chang' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \n\t0x20 0x73 0x69 0x7A 0x65 0x0D 0x0A 0x01    // ' size???' \n\t0x4D 0x6F 0x76 0x69 0x6E 0x67 0x20 0x61    // 'Moving a' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x0D 0x0A 0x01 0x52 0x65 0x6D 0x6F    // 'x???Remo' \n\t0x76 0x69 0x6E 0x67 0x20 0x61 0x20 0x77    // 'ving a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78         // 'ord box' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpcHowToWords05\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO 1)  To change the way\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO 1)  To change the way\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidTextsFont kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToWords05\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidTextsFont\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x77 0x00 0x00 0x01    // '????w???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x03    // '????%???' \n\t0x0F 0x00 0x00 0xFD 0x67 0x00 0x00 0x03    // '???g???' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x03    // '????o???' \n\t0x0A 0x00 0x00 0xFD 0x76 0x00 0x00 0x03    // '???v???' \n\t0x00 0x00 0x00 0x00 0x77 0x00 0x00 0x03    // '????w???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x04    // '????'???' \n\t0x0D 0x00 0x00 0xFE 0x36 0x00 0x00 0x04    // '???6???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x40    // '????'??@' \n\t0x03 0x00 0x00 0x00 0x36 0x00 0x00 0x40    // '????6??@' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x80    // '????%??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x67 0x00 0x00 0x82    // '????g??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x77 0x61 0x79 0x20 0x79 0x6F 0x75 0x72    // 'way your' \n\t0x20 0x6C 0x65 0x74 0x74 0x65 0x72 0x73    // ' letters' \n\t0x20 0x6C 0x6F 0x6F 0x6B 0x0D 0x0A 0x31    // ' look??1' \n\t0x09 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x77    // ' movie w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x6D 0x61 0x6B 0x65 0x20 0x61 0x20    // ' make a ' \n\t0x63 0x68 0x61 0x6E 0x67 0x65 0x2E 0x0D    // 'change.?' \n\t0x0A 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?2?Click' \n\t0x20 0x4C 0x65 0x74 0x74 0x65 0x72 0x73    // ' Letters' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpcHowToWords06\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO 2)  Click the letter style\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO 2)  Click the letter style\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon8 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x14E 0xD3 0x57415645 kwavHTWords06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_47=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon8\"\n\tITEM\n\t\t\"ktpcHowToWords06\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_47=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_47=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_47, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x02    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x04    // '???? ???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_47=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_47, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x6C 0x65 0x74 0x74    // 'the lett' \n\t0x65 0x72 0x20 0x73 0x74 0x79 0x6C 0x65    // 'er style' \n\t0x20 0x79 0x6F 0x75 0x20 0x6C 0x69 0x6B    // ' you lik' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpcHowToWords07\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO 3)  Drag the mouse over\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO 3)  Drag the mouse over\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords07\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_18=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords50 __HELP_SYMBOL( STN \"ktpcHowToWords50\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x42 0x00 0x00 0x03    // '???B???' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x13 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x04    // '????B???' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x40    // '???????@' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x40    // '????B??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x6E 0x20 0x61 0x20 0x77    // '??In a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x2C    // 'ord box,' \n\t0x20 0x64 0x72 0x61 0x67 0x20 0x74 0x68    // ' drag th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x6C 0x65 0x74 0x74 0x65 0x72 0x73    // ' letters' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x68 0x61    // 't to cha' \n\t0x6E 0x67 0x65 0x2E                        // 'nge.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpcHowToWords08\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"Letters--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"Letters--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTWords08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_49=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords08\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_49=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x11 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToWords4A __HELP_SYMBOL( STN \"ktpcHowToWords4A\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToWords47 __HELP_SYMBOL( STN \"ktpcHowToWords47\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToWords48 __HELP_SYMBOL( STN \"ktpcHowToWords48\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords44 __HELP_SYMBOL( STN \"ktpcHowToWords44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_49=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x01 0x00 0x00 0x00 0x72 0x00 0x00 0x01    // '????r???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x29 0x00 0x00 0x03    // '???)???' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x04    // '????r???' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x40    // '????+??@' \n\t0x06 0x00 0x00 0x00 0x31 0x00 0x00 0x40    // '????1??@' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x40    // '????3??@' \n\t0x02 0x00 0x00 0x00 0x47 0x00 0x00 0x40    // '????G??@' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x40    // '????I??@' \n\t0x03 0x00 0x00 0x00 0x5C 0x00 0x00 0x40    // '????\\??@' \n\t0x00 0x00 0x00 0x00 0x5E 0x00 0x00 0x40    // '????^??@' \n\t0x04 0x00 0x00 0x00 0x72 0x00 0x00 0x40    // '????r??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2B 0x00 0x00 0x82    // '????+??' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0xC0    // '????+??' \n\t0x05 0x00 0x00 0x00 0x33 0x00 0x00 0xC0    // '????3??' \n\t0x05 0x00 0x00 0x00 0x49 0x00 0x00 0xC0    // '????I??' \n\t0x05 0x00 0x00 0x00 0x5E 0x00 0x00 0xC0    // '????^??' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_49=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x77    // 'ng the w' \n\t0x61 0x79 0x20 0x6C 0x65 0x74 0x74 0x65    // 'ay lette' \n\t0x72 0x73 0x20 0x6C 0x6F 0x6F 0x6B 0x2D    // 'rs look-' \n\t0x2D 0x57 0x68 0x61 0x74 0x20 0x6E 0x65    // '-What ne' \n\t0x78 0x74 0x3F 0x0D 0x0A 0x01 0x20 0x55    // 'xt???? U' \n\t0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20 0x43    // 'ndo??? C' \n\t0x68 0x61 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'hanging ' \n\t0x74 0x68 0x65 0x20 0x63 0x6F 0x6C 0x6F    // 'the colo' \n\t0x72 0x0D 0x0A 0x01 0x20 0x43 0x68 0x61    // 'r??? Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x73 0x69 0x7A 0x65 0x0D 0x0A    // 'e size??' \n\t0x01 0x20 0x43 0x68 0x61 0x6E 0x67 0x69    // '? Changi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ng the s' \n\t0x74 0x79 0x6C 0x65                        // 'tyle' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= ktpcHowToWords09\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO 1)  To change style\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO 1)  To change style\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidTextsFontShape kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToWords09\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidTextsFontShape\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_12=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x03 0x00 0x00 0x00 0x2F 0x00 0x00 0x01    // '????/???' \n\t0x05 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x01 0x00 0x00 0x00 0x82 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x82 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2F 0x00 0x00 0x03    // '???/???' \n\t0x0F 0x00 0x00 0xFD 0x7B 0x00 0x00 0x03    // '???{???' \n\t0x0A 0x00 0x00 0xFD 0x81 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x82 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x04    // '????3???' \n\t0x0D 0x00 0x00 0xFE 0x42 0x00 0x00 0x04    // '???B???' \n\t0x00 0x00 0x00 0x00 0x82 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x40    // '????3??@' \n\t0x02 0x00 0x00 0x00 0x42 0x00 0x00 0x40    // '????B??@' \n\t0x00 0x00 0x00 0x00 0x82 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x80    // '????1??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x73 0x00 0x00 0x82    // '????s??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x73 0x74 0x79 0x6C 0x65 0x2C 0x20 0x66    // 'style, f' \n\t0x6F 0x72 0x20 0x65 0x78 0x61 0x6D 0x70    // 'or examp' \n\t0x6C 0x65 0x20 0x62 0x6F 0x6C 0x64 0x20    // 'le bold ' \n\t0x6F 0x72 0x20 0x69 0x74 0x61 0x6C 0x69    // 'or itali' \n\t0x63 0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20    // 'c??1?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B    // 't to mak' \n\t0x65 0x20 0x61 0x20 0x63 0x68 0x61 0x6E    // 'e a chan' \n\t0x67 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x43    // 'ge.??2?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x53 0x74 0x79    // 'lick Sty' \n\t0x6C 0x65 0x73 0x2E                        // 'les.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= ktpcHowToWords0A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO 2)  Click the style\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO 2)  Click the style\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon8 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x19C 0x91 0x57415645 kwavHTWords0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon8\"\n\tITEM\n\t\t\"ktpcHowToWords0A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x98 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x73 0x74 0x79 0x6C    // 'the styl' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x2E                             // 'nt.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= ktpcHowToWords0B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO 3)  Drag the mouse over 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO 3)  Drag the mouse over 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords0B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xED 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_13=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords50 __HELP_SYMBOL( STN \"ktpcHowToWords50\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4E 0x00 0x00 0x01    // '????N???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x4E 0x00 0x00 0x03    // '???N???' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x13 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x4E 0x00 0x00 0x04    // '????N???' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x13 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x4E 0x00 0x00 0x40    // '????N??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x6E 0x20 0x61 0x20 0x77    // '??In a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x2C    // 'ord box,' \n\t0x20 0x64 0x72 0x61 0x67 0x20 0x74 0x68    // ' drag th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x6C 0x65 0x74 0x74 0x65 0x72 0x73    // ' letters' \n\t0x20 0x77 0x68 0x6F 0x73 0x65 0x20 0x73    // ' whose s' \n\t0x74 0x79 0x6C 0x65 0x20 0x79 0x6F 0x75    // 'tyle you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x2E    // ' change.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= ktpcHowToWords0C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"Styles--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"Styles--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTWords0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_32=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords0C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_32=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToWords46 __HELP_SYMBOL( STN \"ktpcHowToWords46\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToWords47 __HELP_SYMBOL( STN \"ktpcHowToWords47\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToWords49 __HELP_SYMBOL( STN \"ktpcHowToWords49\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords44 __HELP_SYMBOL( STN \"ktpcHowToWords44\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_32=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x01 0x00 0x00 0x00 0x72 0x00 0x00 0x01    // '????r???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x04    // '????r???' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x40    // '???? ??@' \n\t0x05 0x00 0x00 0x00 0x26 0x00 0x00 0x40    // '????&??@' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x02 0x00 0x00 0x00 0x3C 0x00 0x00 0x40    // '????<??@' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x03 0x00 0x00 0x00 0x51 0x00 0x00 0x40    // '????Q??@' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x04 0x00 0x00 0x00 0x72 0x00 0x00 0x40    // '????r??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x20 0x00 0x00 0x82    // '???? ??' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0xC0    // '???? ??' \n\t0x06 0x00 0x00 0x00 0x28 0x00 0x00 0xC0    // '????(??' \n\t0x06 0x00 0x00 0x00 0x3E 0x00 0x00 0xC0    // '????>??' \n\t0x06 0x00 0x00 0x00 0x53 0x00 0x00 0xC0    // '????S??' \n\t0x06 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_32=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ng the s' \n\t0x74 0x79 0x6C 0x65 0x2D 0x2D 0x57 0x68    // 'tyle--Wh' \n\t0x61 0x74 0x20 0x6E 0x65 0x78 0x74 0x3F    // 'at next?' \n\t0x0D 0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F    // '??? Undo' \n\t0x0D 0x0A 0x01 0x20 0x43 0x68 0x61 0x6E    // '??? Chan' \n\t0x67 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ging the' \n\t0x20 0x63 0x6F 0x6C 0x6F 0x72 0x0D 0x0A    // ' color??' \n\t0x01 0x20 0x43 0x68 0x61 0x6E 0x67 0x69    // '? Changi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ng the s' \n\t0x69 0x7A 0x65 0x0D 0x0A 0x01 0x20 0x43    // 'ize??? C' \n\t0x68 0x61 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'hanging ' \n\t0x74 0x68 0x65 0x20 0x77 0x61 0x79 0x20    // 'the way ' \n\t0x6C 0x65 0x74 0x74 0x65 0x72 0x73 0x20    // 'letters ' \n\t0x6C 0x6F 0x6F 0x6B                        // 'look' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= ktpcHowToWords0D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO 1)  To change size\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO 1)  To change size\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidTextsFontSize kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords0D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToWords0D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidTextsFontSize\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords0D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x71 0x00 0x00 0x01    // '????q???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x65 0x00 0x00 0x03    // '???e???' \n\t0x0A 0x00 0x00 0xFD 0x70 0x00 0x00 0x03    // '???p???' \n\t0x0F 0x00 0x00 0xFD 0x71 0x00 0x00 0x03    // '???q???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x2C 0x00 0x00 0x04    // '???,???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x2C 0x00 0x00 0x40    // '????,??@' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0x40    // '????q??@' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5D 0x00 0x00 0x82    // '????]??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x6C 0x65 0x74 0x74 0x65 0x72 0x20 0x73    // 'letter s' \n\t0x69 0x7A 0x65 0x0D 0x0A 0x31 0x09 0x47    // 'ize??1?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x6D    // 'ant to m' \n\t0x61 0x6B 0x65 0x20 0x61 0x20 0x63 0x68    // 'ake a ch' \n\t0x61 0x6E 0x67 0x65 0x2E 0x0D 0x0A 0x32    // 'ange.??2' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x4C    // '?Click L' \n\t0x65 0x74 0x74 0x65 0x72 0x20 0x53 0x69    // 'etter Si' \n\t0x7A 0x65 0x2E                             // 'ze.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= ktpcHowToWords0E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO 2)  Click the size\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO 2)  Click the size\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon4 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x11D 0xDB 0x57415645 kwavHTWords0E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon4\"\n\tITEM\n\t\t\"ktpcHowToWords0E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords0E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8F 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x73 0x69 0x7A 0x65    // 'the size' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= ktpcHowToWords0F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO 3)  Drag the mouse over 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO 3)  Drag the mouse over 3\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords0F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords0F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords0F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_20=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords50 __HELP_SYMBOL( STN \"ktpcHowToWords50\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4D 0x00 0x00 0x01    // '????M???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x4D 0x00 0x00 0x03    // '???M???' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x13 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x4D 0x00 0x00 0x04    // '????M???' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x13 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x4D 0x00 0x00 0x40    // '????M??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x6E 0x20 0x61 0x20 0x77    // '??In a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x2C    // 'ord box,' \n\t0x20 0x64 0x72 0x61 0x67 0x20 0x74 0x68    // ' drag th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x6C 0x65 0x74 0x74 0x65 0x72 0x73    // ' letters' \n\t0x20 0x77 0x68 0x6F 0x73 0x65 0x20 0x73    // ' whose s' \n\t0x69 0x7A 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ize you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x63 0x68 0x61 0x6E 0x67 0x65 0x2E         // 'change.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= ktpcHowToWords10\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"Size--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"Size--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTWords10\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords10\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords10\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_21=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToWords46 __HELP_SYMBOL( STN \"ktpcHowToWords46\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToWords48 __HELP_SYMBOL( STN \"ktpcHowToWords48\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords44 __HELP_SYMBOL( STN \"ktpcHowToWords44\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToWords49 __HELP_SYMBOL( STN \"ktpcHowToWords49\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x72 0x00 0x00 0x01    // '????r???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x04    // '????r???' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x40    // '???????@' \n\t0x06 0x00 0x00 0x00 0x25 0x00 0x00 0x40    // '????%??@' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x40    // '????'??@' \n\t0x02 0x00 0x00 0x00 0x3B 0x00 0x00 0x40    // '????;??@' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x40    // '????=??@' \n\t0x03 0x00 0x00 0x00 0x51 0x00 0x00 0x40    // '????Q??@' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x07 0x00 0x00 0x00 0x72 0x00 0x00 0x40    // '????r??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0xC0    // '???????' \n\t0x04 0x00 0x00 0x00 0x27 0x00 0x00 0xC0    // '????'??' \n\t0x04 0x00 0x00 0x00 0x3D 0x00 0x00 0xC0    // '????=??' \n\t0x04 0x00 0x00 0x00 0x53 0x00 0x00 0xC0    // '????S??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ng the s' \n\t0x69 0x7A 0x65 0x2D 0x2D 0x57 0x68 0x61    // 'ize--Wha' \n\t0x74 0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D    // 't next??' \n\t0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F 0x0D    // '?? Undo?' \n\t0x0A 0x01 0x20 0x43 0x68 0x61 0x6E 0x67    // '?? Chang' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x63 0x6F 0x6C 0x6F 0x72 0x0D 0x0A 0x01    // 'color???' \n\t0x20 0x43 0x68 0x61 0x6E 0x67 0x69 0x6E    // ' Changin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x73 0x74    // 'g the st' \n\t0x79 0x6C 0x65 0x0D 0x0A 0x01 0x20 0x43    // 'yle??? C' \n\t0x68 0x61 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'hanging ' \n\t0x74 0x68 0x65 0x20 0x77 0x61 0x79 0x20    // 'the way ' \n\t0x6C 0x65 0x74 0x74 0x65 0x72 0x73 0x20    // 'letters ' \n\t0x6C 0x6F 0x6F 0x6B                        // 'look' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= ktpcHowToWords11\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO 1)  To change color\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO 1)  To change color\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidTextsFontColor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords11\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToWords11\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidTextsFontColor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords11\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x73 0x00 0x00 0x01    // '????s???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x66 0x00 0x00 0x03    // '???f???' \n\t0x0A 0x00 0x00 0xFD 0x72 0x00 0x00 0x03    // '???r???' \n\t0x0F 0x00 0x00 0xFD 0x73 0x00 0x00 0x03    // '???s???' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x2D 0x00 0x00 0x04    // '???-???' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x40    // '???????@' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x40    // '????-??@' \n\t0x00 0x00 0x00 0x00 0x73 0x00 0x00 0x40    // '????s??@' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5E 0x00 0x00 0x82    // '????^??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x6C 0x65 0x74 0x74 0x65 0x72 0x20 0x63    // 'letter c' \n\t0x6F 0x6C 0x6F 0x72 0x0D 0x0A 0x31 0x09    // 'olor??1?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x6D 0x61 0x6B 0x65 0x20 0x61 0x20 0x63    // 'make a c' \n\t0x68 0x61 0x6E 0x67 0x65 0x2E 0x0D 0x0A    // 'hange.??' \n\t0x32 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '2?Click ' \n\t0x4C 0x65 0x74 0x74 0x65 0x72 0x20 0x43    // 'Letter C' \n\t0x6F 0x6C 0x6F 0x72 0x2E                   // 'olor.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= ktpcHowToWords12\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"CO 2)  Click the color\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"CO 2)  Click the color\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon4 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x157 0xBC 0x57415645 kwavHTWords12\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon4\"\n\tITEM\n\t\t\"ktpcHowToWords12\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords12\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x91 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x63 0x6F 0x6C 0x6F    // 'the colo' \n\t0x72 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'r you wa' \n\t0x6E 0x74 0x2E                             // 'nt.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= ktpcHowToWords13\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO 3)  Drag the mouse over 4\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO 3)  Drag the mouse over 4\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords13\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_39=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords13\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords13\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_39=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xED 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_22=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords50 __HELP_SYMBOL( STN \"ktpcHowToWords50\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_39=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4E 0x00 0x00 0x01    // '????N???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x4E 0x00 0x00 0x03    // '???N???' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x13 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x4E 0x00 0x00 0x04    // '????N???' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x13 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x4E 0x00 0x00 0x40    // '????N??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_39=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x6E 0x20 0x61 0x20 0x77    // '??In a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x2C    // 'ord box,' \n\t0x20 0x64 0x72 0x61 0x67 0x20 0x74 0x68    // ' drag th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x6C 0x65 0x74 0x74 0x65 0x72 0x73    // ' letters' \n\t0x20 0x77 0x68 0x6F 0x73 0x65 0x20 0x63    // ' whose c' \n\t0x6F 0x6C 0x6F 0x72 0x20 0x79 0x6F 0x75    // 'olor you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x2E    // ' change.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= ktpcHowToWords14\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"Color--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"Color--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTWords14\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords14\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords14\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToWords4A __HELP_SYMBOL( STN \"ktpcHowToWords4A\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG ktpcHowToWords49 __HELP_SYMBOL( STN \"ktpcHowToWords49\" )\n\tITEM LONG 0xC0000005\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords44 __HELP_SYMBOL( STN \"ktpcHowToWords44\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToWords47 __HELP_SYMBOL( STN \"ktpcHowToWords47\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToWords48 __HELP_SYMBOL( STN \"ktpcHowToWords48\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x17 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x01 0x00 0x00 0x00 0x9A 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x40    // '????'??@' \n\t0x05 0x00 0x00 0x00 0x2D 0x00 0x00 0x40    // '????-??@' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x40    // '????/??@' \n\t0x02 0x00 0x00 0x00 0x4E 0x00 0x00 0x40    // '????N??@' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x40    // '????P??@' \n\t0x06 0x00 0x00 0x00 0x63 0x00 0x00 0x40    // '????c??@' \n\t0x00 0x00 0x00 0x00 0x65 0x00 0x00 0x40    // '????e??@' \n\t0x08 0x00 0x00 0x00 0x79 0x00 0x00 0x40    // '????y??@' \n\t0x00 0x00 0x00 0x00 0x7B 0x00 0x00 0x40    // '????{??@' \n\t0x03 0x00 0x00 0x00 0x9A 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x27 0x00 0x00 0x82    // '????'??' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0xC0    // '????'??' \n\t0x04 0x00 0x00 0x00 0x2F 0x00 0x00 0xC0    // '????/??' \n\t0x04 0x00 0x00 0x00 0x50 0x00 0x00 0xC0    // '????P??' \n\t0x04 0x00 0x00 0x00 0x65 0x00 0x00 0xC0    // '????e??' \n\t0x04 0x00 0x00 0x00 0x7B 0x00 0x00 0xC0    // '????{??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x6C    // 'ng the l' \n\t0x65 0x74 0x74 0x65 0x72 0x20 0x63 0x6F    // 'etter co' \n\t0x6C 0x6F 0x72 0x2D 0x2D 0x57 0x68 0x61    // 'lor--Wha' \n\t0x74 0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D    // 't next??' \n\t0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F 0x0D    // '?? Undo?' \n\t0x0A 0x01 0x20 0x43 0x68 0x61 0x6E 0x67    // '?? Chang' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x62 0x61 0x63 0x6B 0x67 0x72 0x6F 0x75    // 'backgrou' \n\t0x6E 0x64 0x20 0x63 0x6F 0x6C 0x6F 0x72    // 'nd color' \n\t0x0D 0x0A 0x01 0x20 0x43 0x68 0x61 0x6E    // '??? Chan' \n\t0x67 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ging the' \n\t0x20 0x73 0x69 0x7A 0x65 0x0D 0x0A 0x01    // ' size???' \n\t0x20 0x43 0x68 0x61 0x6E 0x67 0x69 0x6E    // ' Changin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x73 0x74    // 'g the st' \n\t0x79 0x6C 0x65 0x0D 0x0A 0x01 0x20 0x43    // 'yle??? C' \n\t0x68 0x61 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'hanging ' \n\t0x74 0x68 0x65 0x20 0x77 0x61 0x79 0x20    // 'the way ' \n\t0x6C 0x65 0x74 0x74 0x65 0x72 0x73 0x20    // 'letters ' \n\t0x6C 0x6F 0x6F 0x6B                        // 'look' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= ktpcHowToWords15\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"CO 1)  To change background\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"CO 1)  To change background\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobHowtoSequence kidTextsBkgdColor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords15\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcHowToWords15\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidTextsBkgdColor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords15\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x10 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x89 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x0F 0x00 0x00 0xFD 0x78 0x00 0x00 0x03    // '???x???' \n\t0x0A 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x89 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x04    // '????0???' \n\t0x0D 0x00 0x00 0xFE 0x3F 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x40    // '????0??@' \n\t0x02 0x00 0x00 0x00 0x3F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x89 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x80    // '????.??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x70 0x00 0x00 0x82    // '????p??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x62 0x61 0x63 0x6B 0x67 0x72 0x6F 0x75    // 'backgrou' \n\t0x6E 0x64 0x20 0x63 0x6F 0x6C 0x6F 0x72    // 'nd color' \n\t0x20 0x6F 0x66 0x20 0x61 0x20 0x77 0x6F    // ' of a wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x0D 0x0A    // 'rd box??' \n\t0x31 0x09 0x47 0x6F 0x20 0x74 0x6F 0x20    // '1?Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'e in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'r movie ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20 0x61    // 'o make a' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x2E    // ' change.' \n\t0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69 0x63    // '??2?Clic' \n\t0x6B 0x20 0x42 0x61 0x63 0x6B 0x67 0x72    // 'k Backgr' \n\t0x6F 0x75 0x6E 0x64 0x20 0x43 0x6F 0x6C    // 'ound Col' \n\t0x6F 0x72 0x2E                             // 'or.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= ktpcHowToWords16\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO 2)  Click the color 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO 2)  Click the color 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon4 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x1A2 0xBD 0x57415645 kwavHTWords16\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon4\"\n\tITEM\n\t\t\"ktpcHowToWords16\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords16\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x90 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x63 0x6F 0x6C 0x6F    // 'the colo' \n\t0x72 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'r you wa' \n\t0x6E 0x74 0x2E                             // 'nt.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= ktpcHowToWords17\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"CO 3)  Click the word box\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"CO 3)  Click the word box\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords17\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords17\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords17\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x99 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x04    // '????2???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x40    // '????2??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x77 0x6F 0x72 0x64    // 'the word' \n\t0x20 0x62 0x6F 0x78 0x20 0x77 0x68 0x6F    // ' box who' \n\t0x73 0x65 0x20 0x63 0x6F 0x6C 0x6F 0x72    // 'se color' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x68 0x61    // 't to cha' \n\t0x6E 0x67 0x65 0x2E                        // 'nge.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_18= ktpcHowToWords18\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"Background Color--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"Background Color--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTWords18\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_17=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords18\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords18\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_17=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x07 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_37=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords44 __HELP_SYMBOL( STN \"ktpcHowToWords44\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToWords46 __HELP_SYMBOL( STN \"ktpcHowToWords46\" )\n\tITEM LONG 0xC0000005\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToWords48 __HELP_SYMBOL( STN \"ktpcHowToWords48\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToWords47 __HELP_SYMBOL( STN \"ktpcHowToWords47\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG ktpcHowToWords49 __HELP_SYMBOL( STN \"ktpcHowToWords49\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_17=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x18 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x01 0x00 0x00 0x00 0x9A 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x29 0x00 0x00 0x03    // '???)???' \n\t0x00 0x00 0x00 0x00 0x9A 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x40    // '????+??@' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x40    // '????1??@' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x40    // '????3??@' \n\t0x02 0x00 0x00 0x00 0x4E 0x00 0x00 0x40    // '????N??@' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x40    // '????P??@' \n\t0x08 0x00 0x00 0x00 0x63 0x00 0x00 0x40    // '????c??@' \n\t0x00 0x00 0x00 0x00 0x65 0x00 0x00 0x40    // '????e??@' \n\t0x06 0x00 0x00 0x00 0x79 0x00 0x00 0x40    // '????y??@' \n\t0x00 0x00 0x00 0x00 0x7B 0x00 0x00 0x40    // '????{??@' \n\t0x09 0x00 0x00 0x00 0x9A 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2B 0x00 0x00 0x82    // '????+??' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0xC0    // '????+??' \n\t0x03 0x00 0x00 0x00 0x33 0x00 0x00 0xC0    // '????3??' \n\t0x03 0x00 0x00 0x00 0x50 0x00 0x00 0xC0    // '????P??' \n\t0x03 0x00 0x00 0x00 0x65 0x00 0x00 0xC0    // '????e??' \n\t0x03 0x00 0x00 0x00 0x7B 0x00 0x00 0xC0    // '????{??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_17=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x62    // 'ng the b' \n\t0x61 0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E    // 'ackgroun' \n\t0x64 0x20 0x63 0x6F 0x6C 0x6F 0x72 0x2D    // 'd color-' \n\t0x2D 0x57 0x68 0x61 0x74 0x20 0x6E 0x65    // '-What ne' \n\t0x78 0x74 0x3F 0x0D 0x0A 0x01 0x20 0x55    // 'xt???? U' \n\t0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20 0x43    // 'ndo??? C' \n\t0x68 0x61 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'hanging ' \n\t0x74 0x68 0x65 0x20 0x6C 0x65 0x74 0x74    // 'the lett' \n\t0x65 0x72 0x20 0x63 0x6F 0x6C 0x6F 0x72    // 'er color' \n\t0x0D 0x0A 0x01 0x20 0x43 0x68 0x61 0x6E    // '??? Chan' \n\t0x67 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ging the' \n\t0x20 0x73 0x69 0x7A 0x65 0x0D 0x0A 0x01    // ' size???' \n\t0x20 0x43 0x68 0x61 0x6E 0x67 0x69 0x6E    // ' Changin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x73 0x74    // 'g the st' \n\t0x79 0x6C 0x65 0x0D 0x0A 0x01 0x20 0x43    // 'yle??? C' \n\t0x68 0x61 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'hanging ' \n\t0x74 0x68 0x65 0x20 0x77 0x61 0x79 0x20    // 'the way ' \n\t0x6C 0x65 0x74 0x74 0x65 0x72 0x73 0x20    // 'letters ' \n\t0x6C 0x6F 0x6F 0x6B                        // 'look' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_19= ktpcHowToWords19\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO 1)  To move a word box\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO 1)  To move a word box\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords19\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords19\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords19\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x1F 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_27=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords51 __HELP_SYMBOL( STN \"ktpcHowToWords51\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xC7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x87 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x25 0x00 0x00 0x04    // '???%???' \n\t0x00 0x00 0x00 0x00 0xA8 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xAC 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x25 0x00 0x00 0x40    // '????%??@' \n\t0x00 0x00 0x00 0x00 0x87 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA8 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xAC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0xA6 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xA6 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x6F 0x76    // '??To mov' \n\t0x65 0x20 0x61 0x20 0x77 0x6F 0x72 0x64    // 'e a word' \n\t0x20 0x62 0x6F 0x78 0x0D 0x0A 0x31 0x09    // ' box??1?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x6D 0x6F 0x76 0x65 0x20 0x61 0x20 0x77    // 'move a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x2E    // 'ord box.' \n\t0x0D 0x0A 0x32 0x09 0x4D 0x6F 0x76 0x65    // '??2?Move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x63 0x75 0x72 0x73 0x6F    // 'se curso' \n\t0x72 0x20 0x6F 0x76 0x65 0x72 0x20 0x61    // 'r over a' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x20 0x73 0x69 0x64 0x65 0x2E 0x20    // 'x side. ' \n\t0x20 0x54 0x68 0x65 0x20 0x63 0x75 0x72    // ' The cur' \n\t0x73 0x6F 0x72 0x20 0x63 0x68 0x61 0x6E    // 'sor chan' \n\t0x67 0x65 0x73 0x20 0x74 0x6F 0x20 0x61    // 'ges to a' \n\t0x20 0x68 0x61 0x6E 0x64 0x2E 0x0D 0x0A    // ' hand.??' \n\t0x33 0x09 0x44 0x72 0x61 0x67 0x20 0x74    // '3?Drag t' \n\t0x68 0x65 0x20 0x62 0x6F 0x78 0x20 0x77    // 'he box w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x69 0x74    // ' want it' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= ktpcHowToWords1A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"Move Box--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"Move Box--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTWords1A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords1A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords1A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToWords43 __HELP_SYMBOL( STN \"ktpcHowToWords43\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords44 __HELP_SYMBOL( STN \"ktpcHowToWords44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x01    // '????C???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x04    // '????C???' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x25 0x00 0x00 0x40    // '????%??@' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x40    // '????'??@' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x40    // '????C??@' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x27 0x00 0x00 0xC0    // '????'??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x6F 0x76 0x69 0x6E 0x67    // '??Moving' \n\t0x20 0x61 0x20 0x77 0x6F 0x72 0x64 0x20    // ' a word ' \n\t0x62 0x6F 0x78 0x2D 0x2D 0x57 0x68 0x61    // 'box--Wha' \n\t0x74 0x20 0x6E 0x65 0x78 0x74 0x3F 0x0D    // 't next??' \n\t0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F 0x0D    // '?? Undo?' \n\t0x0A 0x01 0x20 0x43 0x68 0x61 0x6E 0x67    // '?? Chang' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \n\t0x20 0x73 0x69 0x7A 0x65                   // ' size' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1B= ktpcHowToWords1B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"CO 1)  To resize a word box\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"CO 1)  To resize a word box\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords1B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords1B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords1B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_28=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords51 __HELP_SYMBOL( STN \"ktpcHowToWords51\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xF4 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x9D 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xBD 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xC1 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x27 0x00 0x00 0x04    // '???'???' \n\t0x00 0x00 0x00 0x00 0xC1 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xC5 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x27 0x00 0x00 0x40    // '????'??@' \n\t0x00 0x00 0x00 0x00 0xC1 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xC5 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x5C 0x00 0x00 0x80    // '????\\??' \n\t0x00 0x00 0x03 0x00 0xBF 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xBF 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x73    // '??To res' \n\t0x69 0x7A 0x65 0x20 0x61 0x20 0x77 0x6F    // 'ize a wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x0D 0x0A    // 'rd box??' \n\t0x31 0x09 0x47 0x6F 0x20 0x74 0x6F 0x20    // '1?Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'e in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'r movie ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x72 0x65 0x73 0x69 0x7A 0x65    // 'o resize' \n\t0x20 0x61 0x20 0x77 0x6F 0x72 0x64 0x20    // ' a word ' \n\t0x62 0x6F 0x78 0x2E 0x0D 0x0A 0x4D 0x6F    // 'box.??Mo' \n\t0x76 0x65 0x20 0x74 0x68 0x65 0x20 0x6D    // 've the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x63 0x75 0x72    // 'ouse cur' \n\t0x73 0x6F 0x72 0x20 0x6F 0x76 0x65 0x72    // 'sor over' \n\t0x20 0x61 0x20 0x77 0x6F 0x72 0x64 0x20    // ' a word ' \n\t0x62 0x6F 0x78 0x20 0x68 0x61 0x6E 0x64    // 'box hand' \n\t0x6C 0x65 0x20 0x28 0x61 0x20 0x6C 0x69    // 'le (a li' \n\t0x74 0x74 0x6C 0x65 0x20 0x73 0x71 0x75    // 'ttle squ' \n\t0x61 0x72 0x65 0x29 0x2E 0x20 0x20 0x54    // 'are).  T' \n\t0x68 0x65 0x20 0x63 0x75 0x72 0x73 0x6F    // 'he curso' \n\t0x72 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'r change' \n\t0x73 0x20 0x74 0x6F 0x20 0x61 0x6E 0x20    // 's to an ' \n\t0x61 0x72 0x72 0x6F 0x77 0x2E 0x20 0x0D    // 'arrow. ?' \n\t0x0A 0x32 0x09 0x44 0x72 0x61 0x67 0x20    // '?2?Drag ' \n\t0x74 0x68 0x65 0x20 0x68 0x61 0x6E 0x64    // 'the hand' \n\t0x6C 0x65 0x20 0x75 0x6E 0x74 0x69 0x6C    // 'le until' \n\t0x20 0x74 0x68 0x65 0x20 0x62 0x6F 0x78    // ' the box' \n\t0x20 0x69 0x73 0x20 0x74 0x68 0x65 0x20    // ' is the ' \n\t0x73 0x69 0x7A 0x65 0x20 0x79 0x6F 0x75    // 'size you' \n\t0x20 0x77 0x61 0x6E 0x74 0x2E              // ' want.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= ktpcHowToWords1C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"Resize--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"Resize--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTWords1C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords1C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords1C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToWords45 __HELP_SYMBOL( STN \"ktpcHowToWords45\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords44 __HELP_SYMBOL( STN \"ktpcHowToWords44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x3C 0x00 0x00 0x04    // '????<???' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x40    // '????!??@' \n\t0x04 0x00 0x00 0x00 0x27 0x00 0x00 0x40    // '????'??@' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x40    // '????)??@' \n\t0x02 0x00 0x00 0x00 0x3C 0x00 0x00 0x40    // '????<??@' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x80    // '????!??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x21 0x00 0x00 0x82    // '????!??' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0xC0    // '????!??' \n\t0x03 0x00 0x00 0x00 0x29 0x00 0x00 0xC0    // '????)??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x73 0x69 0x7A 0x69    // '??Resizi' \n\t0x6E 0x67 0x20 0x61 0x20 0x77 0x6F 0x72    // 'ng a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x2D 0x2D 0x57    // 'd box--W' \n\t0x68 0x61 0x74 0x20 0x6E 0x65 0x78 0x74    // 'hat next' \n\t0x3F 0x0D 0x0A 0x01 0x20 0x55 0x6E 0x64    // '???? Und' \n\t0x6F 0x0D 0x0A 0x01 0x20 0x4D 0x6F 0x76    // 'o??? Mov' \n\t0x69 0x6E 0x67 0x20 0x61 0x20 0x77 0x6F    // 'ing a wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78              // 'rd box' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1D= ktpcHowToWords1D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"CO 1)  To scroll or not\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"CO 1)  To scroll or not\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon3 kgobHowtoSequence kidTextsScrollType kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords1D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_41=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon3\"\n\tITEM\n\t\t\"ktpcHowToWords1D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidTextsScrollType\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords1D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_41=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x43 0x01 0x00 0x00    // '????C???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_26=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords67 __HELP_SYMBOL( STN \"ktpcHowToWords67\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_41=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x16 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x9E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x37 0x00 0x00 0x03    // '???7???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x03    // '????9???' \n\t0x0F 0x00 0x00 0xFD 0x7E 0x00 0x00 0x03    // '???~???' \n\t0x00 0x00 0x00 0x00 0x83 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x8C 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x9D 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x9E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x04    // '????#???' \n\t0x0D 0x00 0x00 0xFE 0x29 0x00 0x00 0x04    // '???)???' \n\t0x00 0x00 0x00 0x00 0x3B 0x00 0x00 0x04    // '????;???' \n\t0x0D 0x00 0x00 0xFE 0x4A 0x00 0x00 0x04    // '???J???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x40    // '????#??@' \n\t0x03 0x00 0x00 0x00 0x29 0x00 0x00 0x40    // '????)??@' \n\t0x00 0x00 0x00 0x00 0x3B 0x00 0x00 0x40    // '????;??@' \n\t0x01 0x00 0x00 0x00 0x4A 0x00 0x00 0x40    // '????J??@' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x80    // '????9??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7B 0x00 0x00 0x82    // '????{??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_41=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x61 0x20 0x77 0x6F    // 'nge a wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x20 0x73    // 'rd box s' \n\t0x6F 0x20 0x74 0x68 0x61 0x74 0x20 0x77    // 'o that w' \n\t0x6F 0x72 0x64 0x73 0x20 0x73 0x63 0x72    // 'ords scr' \n\t0x6F 0x6C 0x6C 0x20 0x6F 0x72 0x20 0x73    // 'oll or s' \n\t0x74 0x61 0x79 0x20 0x73 0x74 0x69 0x6C    // 'tay stil' \n\t0x6C 0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20    // 'l??1?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B    // 't to mak' \n\t0x65 0x20 0x61 0x20 0x63 0x68 0x61 0x6E    // 'e a chan' \n\t0x67 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x43    // 'ge.??2?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x53 0x63 0x72    // 'lick Scr' \n\t0x6F 0x6C 0x6C 0x69 0x6E 0x67 0x20 0x6F    // 'olling o' \n\t0x72 0x20 0x4E 0x6F 0x6E 0x2D 0x53 0x63    // 'r Non-Sc' \n\t0x72 0x6F 0x6C 0x6C 0x69 0x6E 0x67 0x2E    // 'rolling.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1E= ktpcHowToWords1E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"CO 2)  Click scrolling or non\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"CO 2)  Click scrolling or non\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon4 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x1E0 0x90 0x57415645 kwavHTWords1E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon4\"\n\tITEM\n\t\t\"ktpcHowToWords1E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords1E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x20 0x00 0x00 0x03    // '??? ???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x53 0x63 0x72 0x6F 0x6C 0x6C 0x69 0x6E    // 'Scrollin' \n\t0x67 0x20 0x6F 0x72 0x20 0x4E 0x6F 0x6E    // 'g or Non' \n\t0x2D 0x53 0x63 0x72 0x6F 0x6C 0x6C 0x69    // '-Scrolli' \n\t0x6E 0x67 0x2E                             // 'ng.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1F= ktpcHowToWords1F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"CO 3)  Click the word box 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"CO 3)  Click the word box 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords1F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_36=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords1F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords1F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_36=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x78 0x00 0x00 0x00    // '????x???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_36=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x04    // '????&???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x40    // '????&??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_36=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x77 0x6F 0x72 0x64    // 'the word' \n\t0x20 0x62 0x6F 0x78 0x20 0x79 0x6F 0x75    // ' box you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x2E    // ' change.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_20= ktpcHowToWords20\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"Scrolling--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"Scrolling--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTWords20\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_40=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords20\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords20\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_40=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords4B __HELP_SYMBOL( STN \"ktpcHowToWords4B\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' 0x16102 0xFFFFFFFF __HELP_SYMBOL( STN )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToWords44 __HELP_SYMBOL( STN \"ktpcHowToWords44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_40=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0x01    // '????D???' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x01    // '????b???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x42 0x00 0x00 0x03    // '???B???' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x04    // '????b???' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0x40    // '????D??@' \n\t0x01 0x00 0x00 0x00 0x5B 0x00 0x00 0x40    // '????[??@' \n\t0x00 0x00 0x00 0x00 0x5D 0x00 0x00 0x40    // '????]??@' \n\t0x05 0x00 0x00 0x00 0x62 0x00 0x00 0x40    // '????b??@' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0x80    // '????D??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x44 0x00 0x00 0x82    // '????D??' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0xC0    // '????D??' \n\t0x02 0x00 0x00 0x00 0x5D 0x00 0x00 0xC0    // '????]??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_40=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x69    // '??Changi' \n\t0x6E 0x67 0x20 0x61 0x20 0x77 0x6F 0x72    // 'ng a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x20 0x73 0x6F    // 'd box so' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x77 0x6F    // ' that wo' \n\t0x72 0x64 0x73 0x20 0x73 0x63 0x72 0x6F    // 'rds scro' \n\t0x6C 0x6C 0x20 0x6F 0x72 0x20 0x73 0x74    // 'll or st' \n\t0x61 0x79 0x20 0x73 0x74 0x69 0x6C 0x6C    // 'ay still' \n\t0x2D 0x2D 0x57 0x68 0x61 0x74 0x20 0x6E    // '--What n' \n\t0x65 0x78 0x74 0x3F 0x0D 0x0A 0x01 0x09    // 'ext?????' \n\t0x4D 0x61 0x6B 0x69 0x6E 0x67 0x20 0x63    // 'Making c' \n\t0x72 0x65 0x64 0x69 0x74 0x73 0x20 0x73    // 'redits s' \n\t0x63 0x72 0x6F 0x6C 0x6C 0x0D 0x0A 0x01    // 'croll???' \n\t0x55 0x6E 0x64 0x6F                        // 'Undo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_21= ktpcHowToWords21\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"Message--typing hints\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"Message--typing hints\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTWords21\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_22=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords21\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords21\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_22=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_22=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xF9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x9F 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_22=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x79 0x70 0x69 0x6E 0x67    // '??Typing' \n\t0x20 0x68 0x69 0x6E 0x74 0x73 0x0D 0x0A    // ' hints??' \n\t0x95 0x09 0x54 0x68 0x65 0x20 0x62 0x6C    // '?The bl' \n\t0x69 0x6E 0x6B 0x69 0x6E 0x67 0x20 0x69    // 'inking i' \n\t0x6E 0x73 0x65 0x72 0x74 0x69 0x6F 0x6E    // 'nsertion' \n\t0x20 0x70 0x6F 0x69 0x6E 0x74 0x20 0x28    // ' point (' \n\t0x6C 0x29 0x20 0x69 0x6E 0x20 0x74 0x68    // 'l) in th' \n\t0x65 0x20 0x77 0x6F 0x72 0x64 0x20 0x62    // 'e word b' \n\t0x6F 0x78 0x20 0x73 0x68 0x6F 0x77 0x73    // 'ox shows' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x68 0x65    // ' you whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x72 0x20    // 're your ' \n\t0x77 0x6F 0x72 0x64 0x73 0x20 0x77 0x69    // 'words wi' \n\t0x6C 0x6C 0x20 0x67 0x6F 0x20 0x77 0x68    // 'll go wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x20 0x74    // 'en you t' \n\t0x79 0x70 0x65 0x2E 0x0D 0x0A 0x95 0x09    // 'ype.???' \n\t0x49 0x66 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'If you m' \n\t0x61 0x6B 0x65 0x20 0x61 0x20 0x6D 0x69    // 'ake a mi' \n\t0x73 0x74 0x61 0x6B 0x65 0x2C 0x20 0x70    // 'stake, p' \n\t0x72 0x65 0x73 0x73 0x20 0x42 0x61 0x63    // 'ress Bac' \n\t0x6B 0x73 0x70 0x61 0x63 0x65 0x2E 0x0D    // 'kspace.?' \n\t0x0A 0x95 0x09 0x57 0x68 0x65 0x6E 0x20    // '??When ' \n\t0x79 0x6F 0x75 0x20 0x72 0x65 0x61 0x63    // 'you reac' \n\t0x68 0x20 0x74 0x68 0x65 0x20 0x72 0x69    // 'h the ri' \n\t0x67 0x68 0x74 0x20 0x65 0x64 0x67 0x65    // 'ght edge' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x62 0x6F 0x78 0x2C 0x20 0x74 0x68 0x65    // 'box, the' \n\t0x20 0x77 0x6F 0x72 0x64 0x73 0x20 0x61    // ' words a' \n\t0x75 0x74 0x6F 0x6D 0x61 0x74 0x69 0x63    // 'utomatic' \n\t0x61 0x6C 0x6C 0x79 0x20 0x6D 0x6F 0x76    // 'ally mov' \n\t0x65 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'e to the' \n\t0x20 0x6E 0x65 0x78 0x74 0x20 0x6C 0x69    // ' next li' \n\t0x6E 0x65 0x2E                             // 'ne.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_22= ktpcHowToWords22\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"Typing--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"Typing--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xC8 0x57415645 kwavHTWords22\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords22\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords22\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x59 0x01 0x00 0x00    // '????Y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_33=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToWords43 __HELP_SYMBOL( STN \"ktpcHowToWords43\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG ktpcHowToWords45 __HELP_SYMBOL( STN \"ktpcHowToWords45\" )\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG ktpcHowToWords66 __HELP_SYMBOL( STN \"ktpcHowToWords66\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords44 __HELP_SYMBOL( STN \"ktpcHowToWords44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x16 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6A 0x00 0x00 0x01    // '????j???' \n\t0x00 0x00 0x00 0x00 0x6A 0x00 0x00 0x02    // '????j???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x18 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0x40    // '???????@' \n\t0x07 0x00 0x00 0x00 0x20 0x00 0x00 0x40    // '???? ??@' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x40    // '????\"??@' \n\t0x02 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x03 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x40    // '????U??@' \n\t0x06 0x00 0x00 0x00 0x6A 0x00 0x00 0x40    // '????j??@' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1A 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0xC0    // '???????' \n\t0x04 0x00 0x00 0x00 0x22 0x00 0x00 0xC0    // '????\"??' \n\t0x04 0x00 0x00 0x00 0x40 0x00 0x00 0xC0    // '????@??' \n\t0x04 0x00 0x00 0x00 0x55 0x00 0x00 0xC0    // '????U??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x79 0x70 0x69 0x6E 0x67    // '??Typing' \n\t0x20 0x68 0x69 0x6E 0x74 0x73 0x2D 0x2D    // ' hints--' \n\t0x57 0x68 0x61 0x74 0x20 0x6E 0x65 0x78    // 'What nex' \n\t0x74 0x3F 0x0D 0x0A 0x01 0x20 0x55 0x6E    // 't???? Un' \n\t0x64 0x6F 0x0D 0x0A 0x01 0x20 0x43 0x68    // 'do??? Ch' \n\t0x61 0x6E 0x67 0x69 0x6E 0x67 0x20 0x74    // 'anging t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x64 0x20    // 'he word ' \n\t0x62 0x6F 0x78 0x20 0x73 0x69 0x7A 0x65    // 'box size' \n\t0x0D 0x0A 0x01 0x20 0x4D 0x6F 0x76 0x69    // '??? Movi' \n\t0x6E 0x67 0x20 0x61 0x20 0x77 0x6F 0x72    // 'ng a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x0D 0x0A 0x01    // 'd box???' \n\t0x20 0x52 0x65 0x6D 0x6F 0x76 0x69 0x6E    // ' Removin' \n\t0x67 0x20 0x61 0x20 0x77 0x6F 0x72 0x64    // 'g a word' \n\t0x20 0x62 0x6F 0x78                        // ' box' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_23= ktpcHowToWords23\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"CO 1) To copy & paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"CO 1) To copy & paste\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords23\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords23\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords23\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_16=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8B 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x03    // '????'???' \n\t0x0F 0x00 0x00 0xFD 0x64 0x00 0x00 0x03    // '???d???' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x03    // '????r???' \n\t0x0A 0x00 0x00 0xFD 0x8A 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x8B 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x04    // '????)???' \n\t0x0D 0x00 0x00 0xFE 0x38 0x00 0x00 0x04    // '???8???' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x40    // '????)??@' \n\t0x03 0x00 0x00 0x00 0x38 0x00 0x00 0x40    // '????8??@' \n\t0x00 0x00 0x00 0x00 0x66 0x00 0x00 0x40    // '????f??@' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x80    // '????'??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x81    // '???????' \n\t0x05 0x00 0x00 0x00 0x27 0x00 0x00 0x81    // '????'??' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x82    // '????'??' \n\t0x05 0x00 0x00 0x00 0x66 0x00 0x00 0x82    // '????f??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x6F 0x70    // '??To cop' \n\t0x79 0x20 0x61 0x6E 0x64 0x20 0x70 0x61    // 'y and pa' \n\t0x73 0x74 0x65 0x20 0x77 0x6F 0x72 0x64    // 'ste word' \n\t0x73 0x20 0x69 0x6E 0x20 0x61 0x20 0x77    // 's in a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x0D    // 'ord box?' \n\t0x0A 0x31 0x09 0x47 0x6F 0x20 0x74 0x6F    // '?1?Go to' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x63 0x65 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ce in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x70 0x79 0x20    // 'to copy ' \n\t0x77 0x6F 0x72 0x64 0x73 0x2E 0x0D 0x0A    // 'words.??' \n\t0x32 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '2?Click ' \n\t0x74 0x68 0x65 0x20 0x43 0x75 0x74 0x2C    // 'the Cut,' \n\t0x20 0x43 0x6F 0x70 0x79 0x2C 0x20 0x26    // ' Copy, &' \n\t0x20 0x50 0x61 0x73 0x74 0x65 0x20 0x54    // ' Paste T' \n\t0x6F 0x6F 0x6C 0x73 0x2E                   // 'ools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_24= ktpcHowToWords24\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"CO 2)  Click Copy\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"CO 2)  Click Copy\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPCopy kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords24\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords24\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPCopy\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords24\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x40 0x00 0x00 0x00    // '????@???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x6F 0x70 0x79 0x2E                   // 'Copy.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_25= ktpcHowToWords25\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"CO 3)  Drag the mouse\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"CO 3)  Drag the mouse\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords25\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords25\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords25\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords50 __HELP_SYMBOL( STN \"ktpcHowToWords50\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x13 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x13 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x6E 0x20 0x61 0x20 0x77    // '??In a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x2C    // 'ord box,' \n\t0x20 0x64 0x72 0x61 0x67 0x20 0x74 0x68    // ' drag th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x77 0x6F 0x72 0x64 0x73 0x20 0x79    // ' words y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x70 0x79 0x2E    // 'to copy.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_26= ktpcHowToWords26\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"CO 4)  To paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"CO 4)  To paste\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords26\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_28=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords26\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords26\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_28=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_29=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_28=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x73 0x00 0x00 0x01    // '????s???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x5A 0x00 0x00 0x03    // '????Z???' \n\t0x0A 0x00 0x00 0xFD 0x72 0x00 0x00 0x03    // '???r???' \n\t0x0F 0x00 0x00 0xFD 0x73 0x00 0x00 0x03    // '???s???' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x29 0x00 0x00 0x04    // '???)???' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x29 0x00 0x00 0x40    // '????)??@' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4E 0x00 0x00 0x82    // '????N??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_28=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x61 0x73    // '??To pas' \n\t0x74 0x65 0x0D 0x0A 0x31 0x09 0x49 0x66    // 'te??1?If' \n\t0x20 0x6E 0x65 0x63 0x65 0x73 0x73 0x61    // ' necessa' \n\t0x72 0x79 0x2C 0x20 0x67 0x6F 0x20 0x74    // 'ry, go t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x70 0x6C    // 'o the pl' \n\t0x61 0x63 0x65 0x20 0x77 0x68 0x65 0x72    // 'ace wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x70 0x61    // 'nt to pa' \n\t0x73 0x74 0x65 0x20 0x74 0x68 0x65 0x20    // 'ste the ' \n\t0x77 0x6F 0x72 0x64 0x73 0x2E 0x0D 0x0A    // 'words.??' \n\t0x32 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '2?Click ' \n\t0x74 0x68 0x65 0x20 0x43 0x75 0x74 0x2C    // 'the Cut,' \n\t0x20 0x43 0x6F 0x70 0x79 0x2C 0x20 0x26    // ' Copy, &' \n\t0x20 0x50 0x61 0x73 0x74 0x65 0x20 0x54    // ' Paste T' \n\t0x6F 0x6F 0x6C 0x73 0x2E                   // 'ools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_27= ktpcHowToWords27\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"CO 5)  Click Paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"CO 5)  Click Paste\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords27\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_33=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords27\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords27\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_33=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4A 0x00 0x00 0x00    // '????J???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_33=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_33=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x20 0x50 0x61 0x73 0x74 0x65 0x2E         // ' Paste.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_28= ktpcHowToWords28\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"CO 2a)  Click where you \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"CO 2a)  Click where you \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords28\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_25=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords28\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords28\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_25=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8A 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_25=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_25=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'o place ' \n\t0x74 0x68 0x65 0x20 0x77 0x6F 0x72 0x64    // 'the word' \n\t0x20 0x62 0x6F 0x78 0x2E                   // ' box.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_29= ktpcHowToWords29\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"CO 6)  Click where you want\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"CO 6)  Click where you want\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords29\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords29\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords29\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x37 0x00 0x00 0x03    // '???7???' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x6E 0x20 0x61 0x20 0x77    // '??In a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x2C    // 'ord box,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x77    // ' click w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x70 0x61 0x73 0x74 0x65 0x20 0x74    // ' paste t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x64 0x73    // 'he words' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2A= ktpcHowToWords2A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"Copy words--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"Copy words--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTWords2A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords2A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords2A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x75 0x00 0x00 0x00    // '????u???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_25=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords44 __HELP_SYMBOL( STN \"ktpcHowToWords44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x02    // '????+???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x40    // '????%??@' \n\t0x03 0x00 0x00 0x00 0x2B 0x00 0x00 0x40    // '????+??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x25 0x00 0x00 0x82    // '????%??' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0xC0    // '????%??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x70 0x79 0x69 0x6E    // '??Copyin' \n\t0x67 0x20 0x26 0x20 0x70 0x61 0x73 0x74    // 'g & past' \n\t0x69 0x6E 0x67 0x20 0x77 0x6F 0x72 0x64    // 'ing word' \n\t0x73 0x2D 0x2D 0x57 0x68 0x61 0x74 0x20    // 's--What ' \n\t0x6E 0x65 0x78 0x74 0x3F 0x0D 0x0A 0x01    // 'next????' \n\t0x20 0x55 0x6E 0x64 0x6F                   // ' Undo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2B= ktpcHowToWords2B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"CO 1) To copy & paste entire\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"CO 1) To copy & paste entire\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords2B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_43=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords2B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords2B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_43=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_43, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_43=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_43, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8F 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x03    // '????&???' \n\t0x0F 0x00 0x00 0xFD 0x6D 0x00 0x00 0x03    // '???m???' \n\t0x00 0x00 0x00 0x00 0x76 0x00 0x00 0x03    // '????v???' \n\t0x0A 0x00 0x00 0xFD 0x8E 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x8F 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x04    // '????(???' \n\t0x0D 0x00 0x00 0xFE 0x37 0x00 0x00 0x04    // '???7???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x03 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x80    // '????&??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6A 0x00 0x00 0x82    // '????j??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_43=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_43, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x6F 0x70    // '??To cop' \n\t0x79 0x20 0x61 0x6E 0x64 0x20 0x70 0x61    // 'y and pa' \n\t0x73 0x74 0x65 0x20 0x61 0x6E 0x20 0x65    // 'ste an e' \n\t0x6E 0x74 0x69 0x72 0x65 0x20 0x77 0x6F    // 'ntire wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x0D 0x0A    // 'rd box??' \n\t0x31 0x09 0x47 0x6F 0x20 0x74 0x6F 0x20    // '1?Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'e in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'r movie ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x63 0x6F 0x70 0x79 0x20 0x61    // 'o copy a' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C    // 'x.??2?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x43 0x75 0x74 0x2C 0x20 0x43 0x6F 0x70    // 'Cut, Cop' \n\t0x79 0x2C 0x20 0x26 0x20 0x50 0x61 0x73    // 'y, & Pas' \n\t0x74 0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73    // 'te Tools' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2C= ktpcHowToWords2C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"CO 2)  Click Copy 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"CO 2)  Click Copy 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPCopy kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords2C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_30=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords2C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPCopy\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords2C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_30=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x3F 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_30=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_30=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x6F 0x70 0x79 0x2E                   // 'Copy.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2D= ktpcHowToWords2D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"CO 3)  Click the wb you want\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"CO 3)  Click the wb you want\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords2D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_21=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords2D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords2D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_21=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x97 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_21=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2E 0x00 0x00 0x01    // '????.???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x2E 0x00 0x00 0x03    // '???.???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_21=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x61 0x20 0x73 0x69 0x64 0x65 0x20 0x6F    // 'a side o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x77 0x6F    // 'f the wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x20 0x79    // 'rd box y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x70 0x79 0x2E    // 'to copy.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2E= ktpcHowToWords2E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"CO 4)  To paste 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"CO 4)  To paste 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords2E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_45=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords2E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords2E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_45=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_30=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_45=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x76 0x00 0x00 0x01    // '????v???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x53 0x00 0x00 0x03    // '???S???' \n\t0x00 0x00 0x00 0x00 0x5D 0x00 0x00 0x03    // '????]???' \n\t0x0A 0x00 0x00 0xFD 0x75 0x00 0x00 0x03    // '???u???' \n\t0x0F 0x00 0x00 0xFD 0x76 0x00 0x00 0x03    // '???v???' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x1B 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x1B 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x51 0x00 0x00 0x82    // '????Q??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_45=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x61 0x73    // '??To pas' \n\t0x74 0x65 0x0D 0x0A 0x31 0x09 0x47 0x6F    // 'te??1?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x70 0x61    // 'nt to pa' \n\t0x73 0x74 0x65 0x20 0x74 0x68 0x65 0x20    // 'ste the ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69    // '.??2?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x43    // 'ck the C' \n\t0x75 0x74 0x2C 0x20 0x43 0x6F 0x70 0x79    // 'ut, Copy' \n\t0x2C 0x20 0x26 0x20 0x50 0x61 0x73 0x74    // ', & Past' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E    // 'e Tools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2F= ktpcHowToWords2F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"CO 5)  Click Paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"CO 5)  Click Paste\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords2F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_29=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords2F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords2F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_29=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4A 0x00 0x00 0x00    // '????J???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_29=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_29=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x50 0x61 0x73 0x74 0x65 0x2E              // 'Paste.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_30= ktpcHowToWords30\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"Copy word box---What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"Copy word box---What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTWords30\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords30\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords30\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_14=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToWords45 __HELP_SYMBOL( STN \"ktpcHowToWords45\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords44 __HELP_SYMBOL( STN \"ktpcHowToWords44\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x01 0x00 0x00 0x00 0x76 0x00 0x00 0x01    // '????v???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x30 0x00 0x00 0x03    // '???0???' \n\t0x00 0x00 0x00 0x00 0x5B 0x00 0x00 0x40    // '????[??@' \n\t0x03 0x00 0x00 0x00 0x61 0x00 0x00 0x40    // '????a??@' \n\t0x00 0x00 0x00 0x00 0x63 0x00 0x00 0x40    // '????c??@' \n\t0x02 0x00 0x00 0x00 0x76 0x00 0x00 0x40    // '????v??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5B 0x00 0x00 0x82    // '????[??' \n\t0x00 0x00 0x00 0x00 0x5B 0x00 0x00 0xC0    // '????[??' \n\t0x04 0x00 0x00 0x00 0x63 0x00 0x00 0xC0    // '????c??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x70 0x79 0x69 0x6E    // '??Copyin' \n\t0x67 0x20 0x26 0x20 0x70 0x61 0x73 0x74    // 'g & past' \n\t0x69 0x6E 0x67 0x20 0x61 0x6E 0x20 0x65    // 'ing an e' \n\t0x6E 0x74 0x69 0x72 0x65 0x20 0x77 0x6F    // 'ntire wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x2D 0x2D    // 'rd box--' \n\t0x57 0x68 0x61 0x74 0x20 0x6E 0x65 0x78    // 'What nex' \n\t0x74 0x3F 0x0D 0x0A 0x54 0x68 0x65 0x20    // 't???The ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \n\t0x20 0x69 0x73 0x20 0x70 0x61 0x73 0x74    // ' is past' \n\t0x65 0x64 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ed in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x2E 0x20 0x20 0x0D 0x0A 0x01 0x20 0x55    // '.  ??? U' \n\t0x6E 0x64 0x6F 0x0D 0x0A 0x01 0x20 0x4D    // 'ndo??? M' \n\t0x6F 0x76 0x69 0x6E 0x67 0x20 0x61 0x20    // 'oving a ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_31= ktpcHowToWords31\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"CO 1) To cut & paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"CO 1) To cut & paste\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords31\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_24=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords31\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords31\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_24=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_15=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_24=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x88 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x03    // '????&???' \n\t0x0F 0x00 0x00 0xFD 0x66 0x00 0x00 0x03    // '???f???' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x03    // '????o???' \n\t0x0A 0x00 0x00 0xFD 0x87 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x04    // '????(???' \n\t0x0D 0x00 0x00 0xFE 0x37 0x00 0x00 0x04    // '???7???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x03 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x80    // '????&??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x63 0x00 0x00 0x82    // '????c??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_24=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x75 0x74    // '??To cut' \n\t0x20 0x61 0x6E 0x64 0x20 0x70 0x61 0x73    // ' and pas' \n\t0x74 0x65 0x20 0x77 0x6F 0x72 0x64 0x73    // 'te words' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x77 0x6F    // ' in a wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x0D 0x0A    // 'rd box??' \n\t0x31 0x09 0x47 0x6F 0x20 0x74 0x6F 0x20    // '1?Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'e in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'r movie ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x63 0x75 0x74 0x20 0x77 0x6F    // 'o cut wo' \n\t0x72 0x64 0x73 0x0D 0x0A 0x32 0x09 0x43    // 'rds??2?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x43 0x75 0x74 0x2C 0x20 0x43 0x6F    // ' Cut, Co' \n\t0x70 0x79 0x2C 0x20 0x26 0x20 0x50 0x61    // 'py, & Pa' \n\t0x73 0x74 0x65 0x20 0x54 0x6F 0x6F 0x6C    // 'ste Tool' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_32= ktpcHowToWords32\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"CO 2)  Click Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"CO 2)  Click Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPCut kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords32\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_31=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords32\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPCut\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords32\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_31=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x3B 0x00 0x00 0x00    // '????;???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_31=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_31=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x20 0x43 0x75 0x74 0x2E                   // ' Cut.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_33= ktpcHowToWords33\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"CO 3)  Drag the mouse 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"CO 3)  Drag the mouse 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords33\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_27=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords33\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords33\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_27=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_11=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords50 __HELP_SYMBOL( STN \"ktpcHowToWords50\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_27=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x01    // '????=???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x13 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x13 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_27=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x6E 0x20 0x61 0x20 0x77    // '??In a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x2C    // 'ord box,' \n\t0x20 0x64 0x72 0x61 0x67 0x20 0x74 0x68    // ' drag th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x77 0x6F 0x72 0x64 0x73 0x20 0x79    // ' words y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x63 0x75 0x74 0x2E         // 'to cut.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_34= ktpcHowToWords34\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"CO 4)  To paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"CO 4)  To paste\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords34\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_26=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords34\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords34\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_26=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_26=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x74 0x00 0x00 0x01    // '????t???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x5B 0x00 0x00 0x03    // '????[???' \n\t0x0A 0x00 0x00 0xFD 0x73 0x00 0x00 0x03    // '???s???' \n\t0x0F 0x00 0x00 0xFD 0x74 0x00 0x00 0x03    // '???t???' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x2A 0x00 0x00 0x04    // '???*???' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x2A 0x00 0x00 0x40    // '????*??@' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4F 0x00 0x00 0x82    // '????O??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_26=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x20 0x70 0x61    // '??To  pa' \n\t0x73 0x74 0x65 0x0D 0x0A 0x31 0x09 0x49    // 'ste??1?I' \n\t0x66 0x20 0x6E 0x65 0x63 0x65 0x73 0x73    // 'f necess' \n\t0x61 0x72 0x79 0x2C 0x20 0x67 0x6F 0x20    // 'ary, go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x77 0x68 0x65    // 'lace whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x70    // 'ant to p' \n\t0x61 0x73 0x74 0x65 0x20 0x74 0x68 0x65    // 'aste the' \n\t0x20 0x77 0x6F 0x72 0x64 0x73 0x2E 0x0D    // ' words.?' \n\t0x0A 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?2?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x43 0x75 0x74    // ' the Cut' \n\t0x2C 0x20 0x43 0x6F 0x70 0x79 0x2C 0x20    // ', Copy, ' \n\t0x26 0x20 0x50 0x61 0x73 0x74 0x65 0x20    // '& Paste ' \n\t0x54 0x6F 0x6F 0x6C 0x73 0x2E              // 'Tools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_35= ktpcHowToWords35\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"CO 5)  Click Paste 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"CO 5)  Click Paste 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords35\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_35=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords35\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords35\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_35=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x46 0x00 0x00 0x00    // '????F???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_35=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_35=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x50 0x61 0x73 0x74 0x65 0x2E              // 'Paste.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_36= ktpcHowToWords36\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"CO 6)  Click where you want 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"CO 6)  Click where you want 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords36\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords36\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords36\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x37 0x00 0x00 0x03    // '???7???' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x6E 0x20 0x61 0x20 0x77    // '??In a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x2C    // 'ord box,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x77    // ' click w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x70 0x61 0x73 0x74 0x65 0x20 0x74    // ' paste t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x64 0x73    // 'he words' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_37= ktpcHowToWords37\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"Cut words--What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"Cut words--What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTWords37\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords37\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords37\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x97 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords44 __HELP_SYMBOL( STN \"ktpcHowToWords44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x01    // '????3???' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x01    // '????9???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x02    // '????9???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x31 0x00 0x00 0x03    // '???1???' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x40    // '????3??@' \n\t0x03 0x00 0x00 0x00 0x39 0x00 0x00 0x40    // '????9??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x33 0x00 0x00 0x82    // '????3??' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0xC0    // '????3??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x74 0x69 0x6E    // '??Cuttin' \n\t0x67 0x20 0x26 0x20 0x70 0x61 0x73 0x74    // 'g & past' \n\t0x69 0x6E 0x67 0x20 0x77 0x6F 0x72 0x64    // 'ing word' \n\t0x73 0x20 0x69 0x6E 0x20 0x61 0x20 0x77    // 's in a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x2D    // 'ord box-' \n\t0x2D 0x57 0x68 0x61 0x74 0x20 0x6E 0x65    // '-What ne' \n\t0x78 0x74 0x3F 0x0D 0x0A 0x01 0x20 0x55    // 'xt???? U' \n\t0x6E 0x64 0x6F                             // 'ndo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_38= ktpcHowToWords38\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"CO 1) To cut & paste entire\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"CO 1) To cut & paste entire\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords38\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_38=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords38\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords38\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_38=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_38=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8D 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x03    // '????%???' \n\t0x0F 0x00 0x00 0xFD 0x6B 0x00 0x00 0x03    // '???k???' \n\t0x00 0x00 0x00 0x00 0x74 0x00 0x00 0x03    // '????t???' \n\t0x0A 0x00 0x00 0xFD 0x8C 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x8D 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x04    // '????'???' \n\t0x0D 0x00 0x00 0xFE 0x36 0x00 0x00 0x04    // '???6???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x40    // '????'??@' \n\t0x03 0x00 0x00 0x00 0x36 0x00 0x00 0x40    // '????6??@' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x80    // '????%??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x68 0x00 0x00 0x82    // '????h??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_38=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x75 0x74    // '??To cut' \n\t0x20 0x61 0x6E 0x64 0x20 0x70 0x61 0x73    // ' and pas' \n\t0x74 0x65 0x20 0x61 0x6E 0x20 0x65 0x6E    // 'te an en' \n\t0x74 0x69 0x72 0x65 0x20 0x77 0x6F 0x72    // 'tire wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x0D 0x0A 0x31    // 'd box??1' \n\t0x09 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x77    // ' movie w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x63 0x75 0x74 0x20 0x61 0x20 0x77    // ' cut a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x2E    // 'ord box.' \n\t0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69 0x63    // '??2?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x43 0x75    // 'k the Cu' \n\t0x74 0x2C 0x20 0x43 0x6F 0x70 0x79 0x2C    // 't, Copy,' \n\t0x20 0x26 0x20 0x50 0x61 0x73 0x74 0x65    // ' & Paste' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E         // ' Tools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_39= ktpcHowToWords39\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"CO 2)  Click Cut 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"CO 2)  Click Cut 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPCut kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords39\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords39\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPCut\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords39\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x38 0x00 0x00 0x00    // '????8???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x75 0x74 0x2E                        // 'Cut.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3A= ktpcHowToWords3A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"CO 3)  Click the wb you want 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"CO 3)  Click the wb you want 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords3A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords3A\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords3A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x90 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x2D 0x00 0x00 0x03    // '???-???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x61 0x20 0x73 0x69 0x64 0x65 0x20 0x6F    // 'a side o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x77 0x6F    // 'f the wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x20 0x79    // 'rd box y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x63 0x75 0x74 0x2E         // 'to cut.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3B= ktpcHowToWords3B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"CO 4)  To paste 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"CO 4)  To paste 3\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords3B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords3B\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords3B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_23=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x76 0x00 0x00 0x01    // '????v???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x54 0x00 0x00 0x03    // '???T???' \n\t0x00 0x00 0x00 0x00 0x5D 0x00 0x00 0x03    // '????]???' \n\t0x0A 0x00 0x00 0xFD 0x75 0x00 0x00 0x03    // '???u???' \n\t0x0F 0x00 0x00 0xFD 0x76 0x00 0x00 0x03    // '???v???' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x1B 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x1B 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x51 0x00 0x00 0x82    // '????Q??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x61 0x73    // '??To pas' \n\t0x74 0x65 0x0D 0x0A 0x31 0x09 0x47 0x6F    // 'te??1?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x70 0x61    // 'nt to pa' \n\t0x73 0x74 0x65 0x20 0x74 0x68 0x65 0x20    // 'ste the ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69    // '.??2?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x43    // 'ck the C' \n\t0x75 0x74 0x2C 0x20 0x43 0x6F 0x70 0x79    // 'ut, Copy' \n\t0x2C 0x20 0x26 0x20 0x50 0x61 0x73 0x74    // ', & Past' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E    // 'e Tools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3C= ktpcHowToWords3C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"CO 5)  Go to the place\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"CO 5)  Go to the place\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords3C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords3C\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords3C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x44 0x00 0x00 0x00    // '????D???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x50 0x61 0x73 0x74 0x65 0x2E              // 'Paste.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3D= ktpcHowToWords3D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"Cut word box---What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"Cut word box---What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTWords3D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords3D\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords3D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_10=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcHowToWords45 __HELP_SYMBOL( STN \"ktpcHowToWords45\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords44 __HELP_SYMBOL( STN \"ktpcHowToWords44\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x01 0x00 0x00 0x00 0x74 0x00 0x00 0x01    // '????t???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x30 0x00 0x00 0x03    // '???0???' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x40    // '????Y??@' \n\t0x04 0x00 0x00 0x00 0x5F 0x00 0x00 0x40    // '????_??@' \n\t0x00 0x00 0x00 0x00 0x61 0x00 0x00 0x40    // '????a??@' \n\t0x01 0x00 0x00 0x00 0x74 0x00 0x00 0x40    // '????t??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x59 0x00 0x00 0x82    // '????Y??' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0xC0    // '????Y??' \n\t0x02 0x00 0x00 0x00 0x61 0x00 0x00 0xC0    // '????a??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x74 0x69 0x6E    // '??Cuttin' \n\t0x67 0x20 0x26 0x20 0x70 0x61 0x73 0x74    // 'g & past' \n\t0x69 0x6E 0x67 0x20 0x61 0x6E 0x20 0x65    // 'ing an e' \n\t0x6E 0x74 0x69 0x72 0x65 0x20 0x77 0x6F    // 'ntire wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x2D 0x2D    // 'rd box--' \n\t0x57 0x68 0x61 0x74 0x20 0x6E 0x65 0x78    // 'What nex' \n\t0x74 0x3F 0x0D 0x0A 0x54 0x68 0x65 0x20    // 't???The ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \n\t0x20 0x69 0x73 0x20 0x70 0x61 0x73 0x74    // ' is past' \n\t0x65 0x64 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ed in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x2E 0x0D 0x0A 0x01 0x20 0x55 0x6E 0x64    // '.??? Und' \n\t0x6F 0x0D 0x0A 0x01 0x20 0x4D 0x6F 0x76    // 'o??? Mov' \n\t0x69 0x6E 0x67 0x20 0x61 0x20 0x77 0x6F    // 'ing a wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78              // 'rd box' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3E= ktpcHowToWords3E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"CO 1) To remove word box\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"CO 1) To remove word box\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCutCopyPaste kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords3E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords3E\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords3E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x3E 0x01 0x00 0x00    // '????>???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords52 __HELP_SYMBOL( STN \"ktpcHowToWords52\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x03    // '????5???' \n\t0x0F 0x00 0x00 0xFD 0x7D 0x00 0x00 0x03    // '???}???' \n\t0x00 0x00 0x00 0x00 0x89 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xA1 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xA2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x04    // '????7???' \n\t0x0D 0x00 0x00 0xFE 0x46 0x00 0x00 0x04    // '???F???' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x02 0x00 0x00 0x00 0x46 0x00 0x00 0x40    // '????F??@' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x80    // '????5??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7D 0x00 0x00 0x82    // '????}??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x6D    // '??To rem' \n\t0x6F 0x76 0x65 0x20 0x61 0x6E 0x20 0x65    // 'ove an e' \n\t0x6E 0x74 0x69 0x72 0x65 0x20 0x77 0x6F    // 'ntire wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x20 0x66    // 'rd box f' \n\t0x72 0x6F 0x6D 0x20 0x74 0x68 0x65 0x20    // 'rom the ' \n\t0x63 0x75 0x72 0x72 0x65 0x6E 0x74 0x20    // 'current ' \n\t0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A 0x31    // 'scene??1' \n\t0x09 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x77    // ' movie w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x72 0x65 0x6D 0x6F 0x76 0x65 0x20    // ' remove ' \n\t0x74 0x68 0x65 0x20 0x77 0x6F 0x72 0x64    // 'the word' \n\t0x20 0x62 0x6F 0x78 0x2E 0x0D 0x0A 0x32    // ' box.??2' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x43 0x75 0x74 0x2C 0x20    // 'he Cut, ' \n\t0x43 0x6F 0x70 0x79 0x2C 0x20 0x26 0x20    // 'Copy, & ' \n\t0x50 0x61 0x73 0x74 0x65 0x20 0x54 0x6F    // 'Paste To' \n\t0x6F 0x6C 0x73 0x2E                        // 'ols.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3F= ktpcHowToWords3F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"CO 2)  Click Remove Word \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"CO 2)  Click Remove Word \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence kidCCPActorNuke kidPlayHelpSounds 0x0 0x0 0x57415645 kwavHTWords3F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords3F\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"kidCCPActorNuke\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords3F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8E 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x52 0x65 0x6D 0x6F 0x76 0x65 0x20 0x57    // 'Remove W' \n\t0x6F 0x72 0x64 0x20 0x42 0x6F 0x78 0x2E    // 'ord Box.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_40= ktpcHowToWords40\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_40, __HELP_NAME(\"CO 3)  Click the word box \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_40, __HELP_NAME(\"CO 3)  Click the word box \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0x6E 0x57415645 kwavHTWords40\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_23=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_40, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcHowToWords40\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords40\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_23=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x88 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_23=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2A 0x00 0x00 0x01    // '????*???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_23=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x77 0x6F 0x72 0x64    // 'the word' \n\t0x20 0x62 0x6F 0x78 0x20 0x79 0x6F 0x75    // ' box you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x67 0x65 0x74 0x20 0x72 0x69 0x64    // ' get rid' \n\t0x20 0x6F 0x66 0x2E                        // ' of.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_41= ktpcHowToWords41\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_41, __HELP_NAME(\"Remove word box---What Next?\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_41, __HELP_NAME(\"Remove word box---What Next?\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobHowtoSequence 0x0 kidPlayHelpSounds 0x140 0xF0 0x57415645 kwavHTWords41\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_41, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcHowToWords41\"\n\tITEM\n\t\t\"kgobHowtoSequence\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavHTWords41\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_41, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToWords44 __HELP_SYMBOL( STN \"ktpcHowToWords44\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x01    // '????6???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x01 0x00 0x00 0x00 0x6F 0x00 0x00 0x01    // '????o???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x36 0x00 0x00 0x03    // '???6???' \n\t0x00 0x00 0x00 0x00 0x67 0x00 0x00 0x40    // '????g??@' \n\t0x00 0x00 0x00 0x00 0x69 0x00 0x00 0x40    // '????i??@' \n\t0x01 0x00 0x00 0x00 0x6F 0x00 0x00 0x40    // '????o??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x69 0x00 0x00 0x82    // '????i??' \n\t0x00 0x00 0x00 0x00 0x69 0x00 0x00 0xC0    // '????i??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x6F 0x76 0x69    // '??Removi' \n\t0x6E 0x67 0x20 0x61 0x20 0x77 0x6F 0x72    // 'ng a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x20 0x66 0x72    // 'd box fr' \n\t0x6F 0x6D 0x20 0x74 0x68 0x65 0x20 0x63    // 'om the c' \n\t0x75 0x72 0x72 0x65 0x6E 0x74 0x20 0x73    // 'urrent s' \n\t0x63 0x65 0x6E 0x65 0x2D 0x2D 0x57 0x68    // 'cene--Wh' \n\t0x61 0x74 0x20 0x6E 0x65 0x78 0x74 0x3F    // 'at next?' \n\t0x0D 0x0A 0x54 0x68 0x65 0x20 0x77 0x6F    // '??The wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x20 0x69    // 'rd box i' \n\t0x73 0x20 0x72 0x65 0x6D 0x6F 0x76 0x65    // 's remove' \n\t0x64 0x20 0x66 0x72 0x6F 0x6D 0x20 0x74    // 'd from t' \n\t0x68 0x65 0x20 0x63 0x75 0x72 0x72 0x65    // 'he curre' \n\t0x6E 0x74 0x20 0x73 0x63 0x65 0x6E 0x65    // 'nt scene' \n\t0x2E 0x0D 0x0A 0x01 0x20 0x55 0x6E 0x64    // '.??? Und' \n\t0x6F                                       // 'o' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_42= ktpcHowToWords42\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_42, __HELP_NAME(\"Key:  Paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_42, __HELP_NAME(\"Key:  Paste\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavHTWords42\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_42, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords42\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTWords42\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_42, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7E 0x00 0x00 0x00    // '????~???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_19=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1020_bmp __HELP_SYMBOL( STN \"helppic1020_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x21 0x00 0x00 0x03    // '???!???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x03    // '????\"???' \n\t0x0A 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x11 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x68 0x6F    // '???  Sho' \n\t0x72 0x74 0x63 0x75 0x74 0x20 0x4B 0x65    // 'rtcut Ke' \n\t0x79 0x0D 0x0A 0x95 0x09 0x48 0x6F 0x6C    // 'y???Hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x43    // 'd down C' \n\t0x74 0x72 0x6C 0x2B 0x56 0x2E              // 'trl+V.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_43= ktpcHowToWords43\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_43, __HELP_NAME(\"Tip:  Change word box size\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_43, __HELP_NAME(\"Tip:  Change word box size\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTWords43\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_43, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords43\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTWords43\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_43, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0A 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xF9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x40 0x00 0x00 0x03    // '???@???' \n\t0x0F 0x00 0x00 0xFD 0x44 0x00 0x00 0x03    // '???D???' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x80    // '????@??' \n\t0x00 0x00 0x02 0x00 0x84 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xA5 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xA5 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x43 0x68 0x61 0x6E    // '??? Chan' \n\t0x67 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ging the' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x20 0x73 0x69 0x7A 0x65 0x0D 0x0A    // 'x size??' \n\t0x54 0x6F 0x20 0x63 0x68 0x61 0x6E 0x67    // 'To chang' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x73 0x69    // 'e the si' \n\t0x7A 0x65 0x20 0x6F 0x66 0x20 0x61 0x20    // 'ze of a ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \n\t0x0D 0x0A 0x31 0x09 0x4D 0x6F 0x76 0x65    // '??1?Move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x63 0x75 0x72 0x73 0x6F    // 'se curso' \n\t0x72 0x20 0x6F 0x76 0x65 0x72 0x20 0x61    // 'r over a' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x20 0x68 0x61 0x6E 0x64 0x6C 0x65    // 'x handle' \n\t0x20 0x28 0x61 0x20 0x6C 0x69 0x74 0x74    // ' (a litt' \n\t0x6C 0x65 0x20 0x73 0x71 0x75 0x61 0x72    // 'le squar' \n\t0x65 0x29 0x2E 0x20 0x0D 0x0A 0x54 0x68    // 'e). ??Th' \n\t0x65 0x20 0x63 0x75 0x72 0x73 0x6F 0x72    // 'e cursor' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x73    // ' changes' \n\t0x20 0x74 0x6F 0x20 0x61 0x6E 0x20 0x61    // ' to an a' \n\t0x72 0x72 0x6F 0x77 0x2E 0x0D 0x0A 0x32    // 'rrow.??2' \n\t0x09 0x48 0x6F 0x6C 0x64 0x20 0x64 0x6F    // '?Hold do' \n\t0x77 0x6E 0x20 0x74 0x68 0x65 0x20 0x6D    // 'wn the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x62 0x75 0x74    // 'ouse but' \n\t0x74 0x6F 0x6E 0x20 0x61 0x6E 0x64 0x20    // 'ton and ' \n\t0x64 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'drag the' \n\t0x20 0x68 0x61 0x6E 0x64 0x6C 0x65 0x20    // ' handle ' \n\t0x75 0x6E 0x74 0x69 0x6C 0x20 0x74 0x68    // 'until th' \n\t0x65 0x20 0x62 0x6F 0x78 0x20 0x69 0x73    // 'e box is' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x69 0x7A    // ' the siz' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x2E                             // 'nt.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_44= ktpcHowToWords44\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"Tip:  Undo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"Tip:  Undo\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTWords44\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_37=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords44\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTWords44\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_37=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_24=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpUndo __HELP_SYMBOL( STN \"mbmpUndo\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRedo __HELP_SYMBOL( STN \"mbmpRedo\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_37=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x01    // '????.???' \n\t0x01 0xF1 0x00 0x00 0x3B 0x00 0x00 0x01    // '???;???' \n\t0x01 0x00 0x00 0x00 0x56 0x00 0x00 0x01    // '????V???' \n\t0x01 0xF6 0x00 0x00 0x63 0x00 0x00 0x01    // '???c???' \n\t0x01 0x00 0x00 0x00 0x64 0x00 0x00 0x01    // '????d???' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x03    // '????>???' \n\t0x0A 0x00 0x00 0xFD 0x54 0x00 0x00 0x03    // '???T???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x56 0x00 0x00 0x82    // '????V??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0xC0    // '????;??' \n\t0x02 0x00 0x00 0x00 0x63 0x00 0x00 0xC0    // '????c??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_37=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x55 0x6E 0x64    // '???  Und' \n\t0x6F 0x2F 0x52 0x65 0x64 0x6F 0x0D 0x0A    // 'o/Redo??' \n\t0x54 0x6F 0x20 0x75 0x6E 0x64 0x6F 0x20    // 'To undo ' \n\t0x74 0x68 0x65 0x20 0x6C 0x61 0x73 0x74    // 'the last' \n\t0x20 0x74 0x68 0x69 0x6E 0x67 0x20 0x79    // ' thing y' \n\t0x6F 0x75 0x20 0x64 0x69 0x64 0x0D 0x0A    // 'ou did??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x55 0x6E 0x64 0x6F 0x2D 0x01 0x0D 0x0A    // 'Undo-???' \n\t0x54 0x6F 0x20 0x72 0x65 0x64 0x6F 0x20    // 'To redo ' \n\t0x77 0x68 0x61 0x74 0x20 0x79 0x6F 0x75    // 'what you' \n\t0x20 0x75 0x6E 0x64 0x69 0x64 0x0D 0x0A    // ' undid??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x52 0x65 0x64 0x6F 0x2D 0x01              // 'Redo-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_45= ktpcHowToWords45\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"Tip:  Move word box\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"Tip:  Move word box\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTWords45\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_48=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords45\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTWords45\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_48=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x1F 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_48, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_48=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_48, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2A 0x00 0x00 0x03    // '???*???' \n\t0x0F 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x00 0x00 0x00 0x00 0xA1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x80    // '????*??' \n\t0x00 0x00 0x02 0x00 0x59 0x00 0x00 0x80    // '????Y??' \n\t0x00 0x00 0x03 0x00 0x78 0x00 0x00 0x80    // '????x??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x78 0x00 0x00 0x82    // '????x??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_48=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_48, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4D 0x6F 0x76    // '???  Mov' \n\t0x69 0x6E 0x67 0x20 0x61 0x20 0x77 0x6F    // 'ing a wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x0D 0x0A    // 'rd box??' \n\t0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'To move ' \n\t0x61 0x20 0x77 0x6F 0x72 0x64 0x20 0x62    // 'a word b' \n\t0x6F 0x78 0x0D 0x0A 0x31 0x09 0x4D 0x6F    // 'ox??1?Mo' \n\t0x76 0x65 0x20 0x74 0x68 0x65 0x20 0x6D    // 've the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x63 0x75 0x72    // 'ouse cur' \n\t0x73 0x6F 0x72 0x20 0x6F 0x76 0x65 0x72    // 'sor over' \n\t0x20 0x61 0x20 0x77 0x6F 0x72 0x64 0x20    // ' a word ' \n\t0x62 0x6F 0x78 0x20 0x73 0x69 0x64 0x65    // 'box side' \n\t0x2E 0x0D 0x0A 0x54 0x68 0x65 0x20 0x63    // '.??The c' \n\t0x75 0x72 0x73 0x6F 0x72 0x20 0x63 0x68    // 'ursor ch' \n\t0x61 0x6E 0x67 0x65 0x73 0x20 0x74 0x6F    // 'anges to' \n\t0x20 0x61 0x20 0x68 0x61 0x6E 0x64 0x2E    // ' a hand.' \n\t0x0D 0x0A 0x32 0x09 0x48 0x6F 0x6C 0x64    // '??2?Hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x68    // ' down th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x61    // 'button a' \n\t0x6E 0x64 0x20 0x64 0x72 0x61 0x67 0x20    // 'nd drag ' \n\t0x74 0x68 0x65 0x20 0x62 0x6F 0x78 0x20    // 'the box ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x69    // 'u want i' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_46= ktpcHowToWords46\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"Tip:  Change color\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"Tip:  Change color\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTWords46\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords46\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTWords46\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsFontColor __HELP_SYMBOL( STN \"mbmpTextsFontColor\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x01    // '????3???' \n\t0x01 0xF6 0x00 0x00 0x48 0x00 0x00 0x01    // '???H???' \n\t0x01 0x00 0x00 0x00 0xD7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x0F 0x00 0x00 0xFD 0x49 0x00 0x00 0x03    // '???I???' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x80    // '????3??' \n\t0x00 0x00 0x02 0x00 0x4B 0x00 0x00 0x80    // '????K??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x68 0x00 0x00 0x82    // '????h??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0x48 0x00 0x00 0xC0    // '????H??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x68 0x61    // '???  Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x63 0x6F 0x6C 0x6F 0x72 0x0D    // 'e color?' \n\t0x0A 0x54 0x6F 0x20 0x63 0x68 0x61 0x6E    // '?To chan' \n\t0x67 0x65 0x20 0x74 0x68 0x65 0x20 0x6C    // 'ge the l' \n\t0x65 0x74 0x74 0x65 0x72 0x20 0x63 0x6F    // 'etter co' \n\t0x6C 0x6F 0x72 0x0D 0x0A 0x31 0x09 0x43    // 'lor??1?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x4C 0x65 0x74    // 'lick Let' \n\t0x74 0x65 0x72 0x20 0x43 0x6F 0x6C 0x6F    // 'ter Colo' \n\t0x72 0x2D 0x01 0x0D 0x0A 0x32 0x09 0x43    // 'r-???2?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x63 0x6F 0x6C 0x6F 0x72 0x20 0x79    // ' color y' \n\t0x6F 0x75 0x20 0x6C 0x69 0x6B 0x65 0x2E    // 'ou like.' \n\t0x0D 0x0A 0x33 0x09 0x49 0x6E 0x20 0x61    // '??3?In a' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x2C 0x20 0x68 0x6F 0x6C 0x64 0x20    // 'x, hold ' \n\t0x64 0x6F 0x77 0x6E 0x20 0x74 0x68 0x65    // 'down the' \n\t0x20 0x6D 0x6F 0x75 0x73 0x65 0x20 0x62    // ' mouse b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x20 0x61 0x6E    // 'utton an' \n\t0x64 0x20 0x64 0x72 0x61 0x67 0x20 0x74    // 'd drag t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x6F 0x76 0x65 0x72 0x20 0x74 0x68    // ' over th' \n\t0x65 0x20 0x6C 0x65 0x74 0x74 0x65 0x72    // 'e letter' \n\t0x73 0x20 0x77 0x68 0x6F 0x73 0x65 0x20    // 's whose ' \n\t0x63 0x6F 0x6C 0x6F 0x72 0x20 0x79 0x6F    // 'color yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'o change' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_47= ktpcHowToWords47\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_47, __HELP_NAME(\"Tip:  Change size\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_47, __HELP_NAME(\"Tip:  Change size\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTWords47\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_50=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_47, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords47\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTWords47\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_50=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_47, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsFontSize __HELP_SYMBOL( STN \"mbmpTextsFontSize\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_50=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x01 0xF6 0x00 0x00 0x45 0x00 0x00 0x01    // '???E???' \n\t0x01 0x00 0x00 0x00 0xD2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x02    // '????F???' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x31 0x00 0x00 0x03    // '???1???' \n\t0x0F 0x00 0x00 0xFD 0x45 0x00 0x00 0x03    // '???E???' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x03    // '????F???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x80    // '????1??' \n\t0x00 0x00 0x02 0x00 0x48 0x00 0x00 0x80    // '????H??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x64 0x00 0x00 0x82    // '????d??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0xC0    // '????E??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_50=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x68 0x61    // '???  Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x73 0x69 0x7A 0x65 0x0D 0x0A    // 'e size??' \n\t0x54 0x6F 0x20 0x63 0x68 0x61 0x6E 0x67    // 'To chang' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x6C 0x65    // 'e the le' \n\t0x74 0x74 0x65 0x72 0x20 0x73 0x69 0x7A    // 'tter siz' \n\t0x65 0x0D 0x0A 0x31 0x09 0x43 0x6C 0x69    // 'e??1?Cli' \n\t0x63 0x6B 0x20 0x4C 0x65 0x74 0x74 0x65    // 'ck Lette' \n\t0x72 0x20 0x53 0x69 0x7A 0x65 0x2D 0x01    // 'r Size-?' \n\t0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69 0x63    // '??2?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x73 0x69    // 'k the si' \n\t0x7A 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 'ze you w' \n\t0x61 0x6E 0x74 0x2E 0x0D 0x0A 0x33 0x09    // 'ant.??3?' \n\t0x49 0x6E 0x20 0x61 0x20 0x77 0x6F 0x72    // 'In a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x2C 0x20 0x68    // 'd box, h' \n\t0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E    // 'old down' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x62 0x75 0x74 0x74 0x6F    // 'se butto' \n\t0x6E 0x20 0x61 0x6E 0x64 0x20 0x64 0x72    // 'n and dr' \n\t0x61 0x67 0x20 0x74 0x68 0x65 0x20 0x6D    // 'ag the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x6F 0x76 0x65    // 'ouse ove' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x6C 0x65    // 'r the le' \n\t0x74 0x74 0x65 0x72 0x73 0x20 0x77 0x68    // 'tters wh' \n\t0x6F 0x73 0x65 0x20 0x73 0x69 0x7A 0x65    // 'ose size' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x68 0x61    // 't to cha' \n\t0x6E 0x67 0x65 0x2E                        // 'nge.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_48= ktpcHowToWords48\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_48, __HELP_NAME(\"Tip:  Change style\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_48, __HELP_NAME(\"Tip:  Change style\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTWords48\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_48, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords48\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTWords48\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_48, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsFontShape __HELP_SYMBOL( STN \"mbmpTextsFontShape\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x01 0xF6 0x00 0x00 0x3B 0x00 0x00 0x01    // '???;???' \n\t0x01 0x00 0x00 0x00 0xCA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x0F 0x00 0x00 0xFD 0x3B 0x00 0x00 0x03    // '???;???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x80    // '????,??' \n\t0x00 0x00 0x02 0x00 0x3E 0x00 0x00 0x80    // '????>??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5B 0x00 0x00 0x82    // '????[??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0xC0    // '????;??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x68 0x61    // '???  Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x73 0x74 0x79 0x6C 0x65 0x0D    // 'e style?' \n\t0x0A 0x54 0x6F 0x20 0x63 0x68 0x61 0x6E    // '?To chan' \n\t0x67 0x65 0x20 0x74 0x68 0x65 0x20 0x73    // 'ge the s' \n\t0x74 0x79 0x6C 0x65 0x0D 0x0A 0x31 0x09    // 'tyle??1?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x53 0x74    // 'Click St' \n\t0x79 0x6C 0x65 0x73 0x2D 0x01 0x0D 0x0A    // 'yles-???' \n\t0x32 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '2?Click ' \n\t0x74 0x68 0x65 0x20 0x73 0x74 0x79 0x6C    // 'the styl' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x2E 0x0D 0x0A 0x33 0x09 0x49    // 'nt.??3?I' \n\t0x6E 0x20 0x61 0x20 0x77 0x6F 0x72 0x64    // 'n a word' \n\t0x20 0x62 0x6F 0x78 0x2C 0x20 0x68 0x6F    // ' box, ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x20 0x61 0x6E 0x64 0x20 0x64 0x72 0x61    // ' and dra' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'g the mo' \n\t0x75 0x73 0x65 0x20 0x6F 0x76 0x65 0x72    // 'use over' \n\t0x20 0x74 0x68 0x65 0x20 0x6C 0x65 0x74    // ' the let' \n\t0x74 0x65 0x72 0x73 0x20 0x77 0x68 0x6F    // 'ters who' \n\t0x73 0x65 0x20 0x73 0x74 0x79 0x6C 0x65    // 'se style' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x68 0x61    // 't to cha' \n\t0x6E 0x67 0x65 0x2E                        // 'nge.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_49= ktpcHowToWords49\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"Tip:  Change letter look\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"Tip:  Change letter look\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTWords49\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords49\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTWords49\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsFont __HELP_SYMBOL( STN \"mbmpTextsFont\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x01 0xF6 0x00 0x00 0x52 0x00 0x00 0x01    // '???R???' \n\t0x01 0x00 0x00 0x00 0xD4 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x03    // '???? ???' \n\t0x0A 0x00 0x00 0xFD 0x42 0x00 0x00 0x03    // '???B???' \n\t0x0F 0x00 0x00 0xFD 0x52 0x00 0x00 0x03    // '???R???' \n\t0x0A 0x00 0x00 0xFD 0x53 0x00 0x00 0x03    // '???S???' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x80    // '????B??' \n\t0x00 0x00 0x02 0x00 0x55 0x00 0x00 0x80    // '????U??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x71 0x00 0x00 0x82    // '????q??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x52 0x00 0x00 0xC0    // '????R??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4B, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x68 0x61    // '???  Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x77 0x61 0x79 0x20 0x6C 0x65    // 'e way le' \n\t0x74 0x74 0x65 0x72 0x73 0x20 0x6C 0x6F    // 'tters lo' \n\t0x6F 0x6B 0x0D 0x0A 0x54 0x6F 0x20 0x63    // 'ok??To c' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x74 0x68    // 'hange th' \n\t0x65 0x20 0x77 0x61 0x79 0x20 0x6C 0x65    // 'e way le' \n\t0x74 0x74 0x65 0x72 0x73 0x20 0x6C 0x6F    // 'tters lo' \n\t0x6F 0x6B 0x0D 0x0A 0x31 0x09 0x43 0x6C    // 'ok??1?Cl' \n\t0x69 0x63 0x6B 0x20 0x4C 0x65 0x74 0x74    // 'ick Lett' \n\t0x65 0x72 0x73 0x2D 0x01 0x0D 0x0A 0x32    // 'ers-???2' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x66 0x6F 0x6E 0x74 0x20    // 'he font ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x2E 0x0D 0x0A 0x33 0x09 0x49 0x6E 0x20    // '.??3?In ' \n\t0x61 0x20 0x77 0x6F 0x72 0x64 0x20 0x62    // 'a word b' \n\t0x6F 0x78 0x2C 0x20 0x68 0x6F 0x6C 0x64    // 'ox, hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x68    // ' down th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x61    // 'button a' \n\t0x6E 0x64 0x20 0x64 0x72 0x61 0x67 0x20    // 'nd drag ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x6F 0x76 0x65 0x72 0x20 0x74    // 'e over t' \n\t0x68 0x65 0x20 0x6C 0x65 0x74 0x74 0x65    // 'he lette' \n\t0x72 0x73 0x20 0x79 0x6F 0x75 0x20 0x77    // 'rs you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ant to c' \n\t0x68 0x61 0x6E 0x67 0x65 0x2E              // 'hange.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4A= ktpcHowToWords4A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4A, __HELP_NAME(\"Tip:  Change background color\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4A, __HELP_NAME(\"Tip:  Change background color\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTWords4A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_46=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords4A\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTWords4A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_46=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsBkgdColor __HELP_SYMBOL( STN \"mbmpTextsBkgdColor\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_46=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x01 0xF1 0x00 0x00 0x57 0x00 0x00 0x01    // '???W???' \n\t0x01 0xF6 0x00 0x00 0x70 0x00 0x00 0x01    // '???p???' \n\t0x01 0x00 0x00 0x00 0xC4 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x03    // '???? ???' \n\t0x0A 0x00 0x00 0xFD 0x42 0x00 0x00 0x03    // '???B???' \n\t0x0F 0x00 0x00 0xFD 0x70 0x00 0x00 0x03    // '???p???' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x80    // '????B??' \n\t0x00 0x00 0x02 0x00 0x90 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x90 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0xC0    // '????p??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_46=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x68 0x61    // '???  Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x62 0x61 0x63 0x6B 0x67 0x72    // 'e backgr' \n\t0x6F 0x75 0x6E 0x64 0x20 0x63 0x6F 0x6C    // 'ound col' \n\t0x6F 0x72 0x0D 0x0A 0x54 0x6F 0x20 0x63    // 'or??To c' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x74 0x68    // 'hange th' \n\t0x65 0x20 0x62 0x61 0x63 0x6B 0x67 0x72    // 'e backgr' \n\t0x6F 0x75 0x6E 0x64 0x20 0x63 0x6F 0x6C    // 'ound col' \n\t0x6F 0x72 0x0D 0x0A 0x31 0x09 0x43 0x6C    // 'or??1?Cl' \n\t0x69 0x63 0x6B 0x20 0x4D 0x6F 0x72 0x65    // 'ick More' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E 0x0D    // ' Tools.?' \n\t0x0A 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?2?Click' \n\t0x20 0x42 0x61 0x63 0x6B 0x67 0x72 0x6F    // ' Backgro' \n\t0x75 0x6E 0x64 0x20 0x43 0x6F 0x6C 0x6F    // 'und Colo' \n\t0x72 0x2D 0x01 0x0D 0x0A 0x33 0x09 0x43    // 'r-???3?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x63 0x6F 0x6C 0x6F 0x72 0x20 0x79    // ' color y' \n\t0x6F 0x75 0x20 0x6C 0x69 0x6B 0x65 0x2E    // 'ou like.' \n\t0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69 0x63    // '??4?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x77 0x6F    // 'k the wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x20 0x77    // 'rd box w' \n\t0x68 0x6F 0x73 0x65 0x20 0x63 0x6F 0x6C    // 'hose col' \n\t0x6F 0x72 0x20 0x79 0x6F 0x75 0x20 0x77    // 'or you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ant to c' \n\t0x68 0x61 0x6E 0x67 0x65 0x2E              // 'hange.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4B= ktpcHowToWords4B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4B, __HELP_NAME(\"Tip:  Making words scroll\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4B, __HELP_NAME(\"Tip:  Making words scroll\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords4B\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x21 0x01 0x00 0x00    // '????!???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_31=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPlay __HELP_SYMBOL( STN \"mbmpPlay\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xFC 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0x26 0x01 0x00 0x01    // '???&???' \n\t0x01 0x00 0x00 0x00 0x27 0x01 0x00 0x01    // '????'???' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2E 0x00 0x00 0x03    // '???.???' \n\t0x0F 0x00 0x00 0xFD 0x27 0x01 0x00 0x03    // '???'???' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x80    // '????.??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xFC 0x00 0x00 0x82    // '??????' \n\t0xFB 0xFF 0x00 0x00 0x00 0x00 0x00 0xC0    // '?????' \n\t0x01 0x00 0x00 0x00 0x26 0x01 0x00 0xC0    // '????&??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x09 0x4D 0x61 0x6B 0x69    // '????Maki' \n\t0x6E 0x67 0x20 0x63 0x72 0x65 0x64 0x69    // 'ng credi' \n\t0x74 0x73 0x20 0x73 0x63 0x72 0x6F 0x6C    // 'ts scrol' \n\t0x6C 0x0D 0x0A 0x54 0x6F 0x20 0x73 0x65    // 'l??To se' \n\t0x65 0x20 0x77 0x6F 0x72 0x64 0x73 0x20    // 'e words ' \n\t0x73 0x63 0x72 0x6F 0x6C 0x6C 0x0D 0x0A    // 'scroll??' \n\t0x31 0x09 0x54 0x79 0x70 0x65 0x20 0x65    // '1?Type e' \n\t0x6E 0x6F 0x75 0x67 0x68 0x20 0x77 0x6F    // 'nough wo' \n\t0x72 0x64 0x73 0x20 0x74 0x6F 0x20 0x66    // 'rds to f' \n\t0x69 0x6C 0x6C 0x20 0x75 0x70 0x20 0x74    // 'ill up t' \n\t0x68 0x65 0x20 0x63 0x72 0x65 0x64 0x69    // 'he credi' \n\t0x74 0x73 0x20 0x62 0x6F 0x78 0x2E 0x0D    // 'ts box.?' \n\t0x0A 0x32 0x09 0x49 0x66 0x20 0x79 0x6F    // '?2?If yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x64 0x73    // 'he words' \n\t0x20 0x74 0x6F 0x20 0x73 0x63 0x72 0x6F    // ' to scro' \n\t0x6C 0x6C 0x20 0x63 0x6F 0x6D 0x70 0x6C    // 'll compl' \n\t0x65 0x74 0x65 0x6C 0x79 0x20 0x6F 0x66    // 'etely of' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x73 0x63    // 'f the sc' \n\t0x72 0x65 0x65 0x6E 0x2C 0x20 0x61 0x64    // 'reen, ad' \n\t0x64 0x20 0x62 0x6C 0x61 0x6E 0x6B 0x20    // 'd blank ' \n\t0x6C 0x69 0x6E 0x65 0x73 0x20 0x74 0x6F    // 'lines to' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x72 0x65    // ' the cre' \n\t0x64 0x69 0x74 0x73 0x20 0x62 0x6F 0x78    // 'dits box' \n\t0x20 0x62 0x79 0x20 0x70 0x72 0x65 0x73    // ' by pres' \n\t0x73 0x69 0x6E 0x67 0x20 0x45 0x6E 0x74    // 'sing Ent' \n\t0x65 0x72 0x20 0x75 0x6E 0x74 0x69 0x6C    // 'er until' \n\t0x20 0x79 0x6F 0x75 0x20 0x6E 0x6F 0x20    // ' you no ' \n\t0x6C 0x6F 0x6E 0x67 0x65 0x72 0x20 0x73    // 'longer s' \n\t0x65 0x65 0x20 0x61 0x6E 0x79 0x20 0x6F    // 'ee any o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x77 0x6F    // 'f the wo' \n\t0x72 0x64 0x73 0x2E 0x0D 0x0A 0x33 0x09    // 'rds.??3?' \n\t0x57 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'When you' \n\t0x27 0x72 0x65 0x20 0x64 0x6F 0x6E 0x65    // ''re done' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x50 0x6C 0x61 0x79    // 'the Play' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x2D    // ' button-' \n\t0x01                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_50= ktpcHowToWords50\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_50, __HELP_NAME(\"Def:  drag\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_50, __HELP_NAME(\"Def:  drag\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTWords50\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_44=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_50, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords50\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTWords50\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_44=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_50, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_44=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_44, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x03    // '????y???' \n\t0x0A 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x79 0x00 0x00 0x80    // '????y??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x79 0x00 0x00 0x82    // '????y??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_44=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_44, 0x0)\n\tBYTE\n\t0x03 0x03 0x64 0x72 0x61 0x67 0x0D 0x0A    // '??drag??' \n\t0x31 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '1?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x73 0x20    // 'tton as ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'you move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x57    // 'se.??2?W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x76 0x65 0x20 0x66 0x69 0x6E 0x69 0x73    // 've finis' \n\t0x68 0x65 0x64 0x20 0x64 0x72 0x61 0x67    // 'hed drag' \n\t0x67 0x69 0x6E 0x67 0x2C 0x20 0x6C 0x65    // 'ging, le' \n\t0x74 0x20 0x67 0x6F 0x20 0x6F 0x66 0x20    // 't go of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x2E 0x0D 0x0A 0x54 0x69 0x70 0x20 0x66    // '.??Tip f' \n\t0x72 0x6F 0x6D 0x20 0x4D 0x63 0x5A 0x65    // 'rom McZe' \n\t0x65 0x3A 0x20 0x20 0x59 0x6F 0x75 0x27    // 'e:  You'' \n\t0x6C 0x6C 0x20 0x67 0x65 0x74 0x20 0x74    // 'll get t' \n\t0x68 0x65 0x20 0x62 0x65 0x73 0x74 0x20    // 'he best ' \n\t0x72 0x65 0x73 0x75 0x6C 0x74 0x73 0x20    // 'results ' \n\t0x69 0x66 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'if you m' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x73 0x6C    // 'mouse sl' \n\t0x6F 0x77 0x6C 0x79 0x20 0x61 0x73 0x20    // 'owly as ' \n\t0x79 0x6F 0x75 0x20 0x64 0x72 0x61 0x67    // 'you drag' \n\t0x2E 0x20                                  // '. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_51= ktpcHowToWords51\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTWords51\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_51=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords51\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTWords51\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_51=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_51=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_51, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x03    // '????y???' \n\t0x0A 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x79 0x00 0x00 0x80    // '????y??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x79 0x00 0x00 0x82    // '????y??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_51=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_51, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x0D 0x0A    // '??Drag??' \n\t0x31 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '1?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x73 0x20    // 'tton as ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'you move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x57    // 'se.??2?W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x76 0x65 0x20 0x66 0x69 0x6E 0x69 0x73    // 've finis' \n\t0x68 0x65 0x64 0x20 0x64 0x72 0x61 0x67    // 'hed drag' \n\t0x67 0x69 0x6E 0x67 0x2C 0x20 0x6C 0x65    // 'ging, le' \n\t0x74 0x20 0x67 0x6F 0x20 0x6F 0x66 0x20    // 't go of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x2E 0x0D 0x0A 0x54 0x69 0x70 0x20 0x66    // '.??Tip f' \n\t0x72 0x6F 0x6D 0x20 0x4D 0x63 0x5A 0x65    // 'rom McZe' \n\t0x65 0x3A 0x20 0x20 0x59 0x6F 0x75 0x27    // 'e:  You'' \n\t0x6C 0x6C 0x20 0x67 0x65 0x74 0x20 0x74    // 'll get t' \n\t0x68 0x65 0x20 0x62 0x65 0x73 0x74 0x20    // 'he best ' \n\t0x72 0x65 0x73 0x75 0x6C 0x74 0x73 0x20    // 'results ' \n\t0x69 0x66 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'if you m' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x73 0x6C    // 'mouse sl' \n\t0x6F 0x77 0x6C 0x79 0x20 0x61 0x73 0x20    // 'owly as ' \n\t0x79 0x6F 0x75 0x20 0x64 0x72 0x61 0x67    // 'you drag' \n\t0x2E 0x20                                  // '. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_52= ktpcHowToWords52\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_52, __HELP_NAME(\"Def:  Go to the place\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_52, __HELP_NAME(\"Def:  Go to the place\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTWords52\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_52, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords52\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTWords52\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_52, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x38 0x01 0x00 0x00    // '????8???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4F, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4D 0x01 0x00 0x01    // '????M???' \n\t0x00 0x00 0x00 0x00 0x5C 0x00 0x00 0x02    // '????\\???' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x02    // '????b???' \n\t0x00 0x00 0x00 0x00 0xF2 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xF8 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00 0xB9 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xD4 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x80    // '????Y??' \n\t0x00 0x00 0x03 0x00 0xB9 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xEF 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xF2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0xC0    // '????Y??' \n\t0x02 0x00 0x00 0x00 0xEF 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4F, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x6F 0x20 0x74 0x6F 0x20    // '??Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x6F    // 'e??To mo' \n\t0x76 0x65 0x20 0x66 0x6F 0x72 0x77 0x61    // 've forwa' \n\t0x72 0x64 0x73 0x20 0x6F 0x72 0x20 0x62    // 'rds or b' \n\t0x61 0x63 0x6B 0x77 0x61 0x72 0x64 0x73    // 'ackwards' \n\t0x20 0x77 0x69 0x74 0x68 0x69 0x6E 0x20    // ' within ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65 0x0D    // 'a scene?' \n\t0x0A 0x95 0x09 0x55 0x73 0x65 0x20 0x74    // '??Use t' \n\t0x68 0x65 0x20 0x46 0x72 0x61 0x6D 0x65    // 'he Frame' \n\t0x20 0x53 0x6C 0x69 0x64 0x65 0x72 0x2E    // ' Slider.' \n\t0x20 0x0D 0x0A 0x01 0x0D 0x0A 0x43 0x6C    // ' ?????Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x46 0x69 0x72 0x73 0x74 0x2C 0x20 0x50    // 'First, P' \n\t0x72 0x65 0x76 0x69 0x6F 0x75 0x73 0x2C    // 'revious,' \n\t0x20 0x4E 0x65 0x78 0x74 0x2C 0x20 0x6F    // ' Next, o' \n\t0x72 0x20 0x4C 0x61 0x73 0x74 0x20 0x41    // 'r Last A' \n\t0x72 0x72 0x6F 0x77 0x20 0x6F 0x72 0x20    // 'rrow or ' \n\t0x64 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'drag the' \n\t0x20 0x73 0x6C 0x69 0x64 0x65 0x72 0x20    // ' slider ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x6D    // 'in the m' \n\t0x69 0x64 0x64 0x6C 0x65 0x20 0x6F 0x66    // 'iddle of' \n\t0x20 0x74 0x68 0x65 0x20 0x62 0x61 0x72    // ' the bar' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x6F    // '.??To mo' \n\t0x76 0x65 0x20 0x66 0x72 0x6F 0x6D 0x20    // 've from ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x74 0x6F    // 'scene to' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A    // ' scene??' \n\t0x95 0x09 0x55 0x73 0x65 0x20 0x74 0x68    // '?Use th' \n\t0x65 0x20 0x53 0x63 0x65 0x6E 0x65 0x20    // 'e Scene ' \n\t0x53 0x6C 0x69 0x64 0x65 0x72 0x2E 0x0D    // 'Slider.?' \n\t0x0A 0x01 0x0D 0x0A 0x43 0x6C 0x69 0x63    // '????Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x46 0x69    // 'k the Fi' \n\t0x72 0x73 0x74 0x2C 0x20 0x50 0x72 0x65    // 'rst, Pre' \n\t0x76 0x69 0x6F 0x75 0x73 0x2C 0x20 0x4E    // 'vious, N' \n\t0x65 0x78 0x74 0x2C 0x20 0x6F 0x72 0x20    // 'ext, or ' \n\t0x4C 0x61 0x73 0x74 0x20 0x41 0x72 0x72    // 'Last Arr' \n\t0x6F 0x77 0x20 0x6F 0x72 0x20 0x64 0x72    // 'ow or dr' \n\t0x61 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ag the s' \n\t0x6C 0x69 0x64 0x65 0x72 0x20 0x69 0x6E    // 'lider in' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x69 0x64    // ' the mid' \n\t0x64 0x6C 0x65 0x20 0x6F 0x66 0x20 0x74    // 'dle of t' \n\t0x68 0x65 0x20 0x62 0x61 0x72 0x2E         // 'he bar.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_64= ktpcHowToWords64\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_64, __HELP_NAME(\"Cut  Tip:  Pause Click\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_64, __HELP_NAME(\"Cut  Tip:  Pause Click\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTWords64\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_64, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords64\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTWords64\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_64, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x58 0x01 0x00 0x00    // '????X???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\nAG(4)\n\tFREE\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPausesMouse __HELP_SYMBOL( STN \"mbmpPausesMouse\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x01    // '????9???' \n\t0x00 0x00 0x00 0x00 0x3B 0x00 0x00 0x01    // '????;???' \n\t0x01 0x00 0x00 0x00 0x71 0x00 0x00 0x01    // '????q???' \n\t0x00 0x00 0x00 0x00 0x73 0x00 0x00 0x01    // '????s???' \n\t0x01 0x00 0x00 0x00 0xD7 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0xEE 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xEF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x05 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x3B 0x00 0x00 0x03    // '????;???' \n\t0x0A 0x00 0x00 0xFD 0x71 0x00 0x00 0x03    // '???q???' \n\t0x00 0x00 0x00 0x00 0x73 0x00 0x00 0x03    // '????s???' \n\t0x0F 0x00 0x00 0xFD 0xEF 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x3B 0x00 0x00 0x80    // '????;??' \n\t0x00 0x00 0x00 0x00 0x73 0x00 0x00 0x80    // '????s??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xD7 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0xEE 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x0D 0x0A 0x50    // '??Cut??P' \n\t0x61 0x75 0x73 0x69 0x6E 0x67 0x20 0x74    // 'ausing t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'he movie' \n\t0x20 0x73 0x6F 0x20 0x79 0x6F 0x75 0x20    // ' so you ' \n\t0x68 0x61 0x76 0x65 0x20 0x74 0x69 0x6D    // 'have tim' \n\t0x65 0x20 0x74 0x6F 0x20 0x72 0x65 0x61    // 'e to rea' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x77 0x6F    // 'd the wo' \n\t0x72 0x64 0x73 0x0D 0x0A 0x54 0x6F 0x20    // 'rds??To ' \n\t0x70 0x61 0x75 0x73 0x65 0x20 0x79 0x6F    // 'pause yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x73 0x6F 0x20 0x79 0x6F 0x75 0x20    // ' so you ' \n\t0x68 0x61 0x76 0x65 0x20 0x74 0x69 0x6D    // 'have tim' \n\t0x65 0x20 0x74 0x6F 0x20 0x72 0x65 0x61    // 'e to rea' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x77 0x6F    // 'd the wo' \n\t0x72 0x64 0x73 0x0D 0x0A 0x31 0x09 0x49    // 'rds??1?I' \n\t0x66 0x20 0x6E 0x65 0x63 0x65 0x73 0x73    // 'f necess' \n\t0x61 0x72 0x79 0x2C 0x20 0x63 0x6C 0x69    // 'ary, cli' \n\t0x63 0x6B 0x20 0x53 0x63 0x65 0x6E 0x65    // 'ck Scene' \n\t0x73 0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F    // 's.??2?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x70 0x61    // 'nt to pa' \n\t0x75 0x73 0x65 0x20 0x74 0x68 0x65 0x20    // 'use the ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x2E 0x0D    // 'action.?' \n\t0x0A 0x33 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?3?Click' \n\t0x20 0x57 0x61 0x69 0x74 0x20 0x46 0x6F    // ' Wait Fo' \n\t0x72 0x20 0x43 0x6C 0x69 0x63 0x6B 0x2D    // 'r Click-' \n\t0x01                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_66= ktpcHowToWords66\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_66, __HELP_NAME(\"Tip:  Remove word box\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_66, __HELP_NAME(\"Tip:  Remove word box\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTWords66\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_42=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_66, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords66\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTWords66\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_42=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_66, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x00 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_32=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCutCopyPaste __HELP_SYMBOL( STN \"mbmpCutCopyPaste\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCutWordBox __HELP_SYMBOL( STN \"mbmpCutWordBox\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_42=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x01 0xF6 0x00 0x00 0x52 0x00 0x00 0x01    // '???R???' \n\t0x01 0x00 0x00 0x00 0x55 0x00 0x00 0x01    // '????U???' \n\t0x01 0xF6 0x00 0x00 0x6D 0x00 0x00 0x01    // '???m???' \n\t0x01 0x00 0x00 0x00 0xD2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x02 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x2D 0x00 0x00 0x03    // '???-???' \n\t0x0F 0x00 0x00 0xFD 0xD2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x70 0x00 0x00 0x80    // '????p??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xBD 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x04 0x00 0x00 0x00 0x52 0x00 0x00 0xC0    // '????R??' \n\t0x02 0x00 0x00 0x00 0x6D 0x00 0x00 0xC0    // '????m??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_42=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x52 0x65 0x6D 0x6F    // '??? Remo' \n\t0x76 0x69 0x6E 0x67 0x20 0x61 0x20 0x77    // 'ving a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x0D    // 'ord box?' \n\t0x0A 0x54 0x6F 0x20 0x72 0x65 0x6D 0x6F    // '?To remo' \n\t0x76 0x65 0x20 0x61 0x20 0x77 0x6F 0x72    // 've a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x0D 0x0A 0x31    // 'd box??1' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x43 0x75 0x74 0x2C 0x20    // 'he Cut, ' \n\t0x43 0x6F 0x70 0x79 0x2C 0x20 0x26 0x20    // 'Copy, & ' \n\t0x50 0x61 0x73 0x74 0x65 0x20 0x54 0x6F    // 'Paste To' \n\t0x6F 0x6C 0x73 0x2D 0x01 0x0D 0x0A 0x32    // 'ols-???2' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x52    // '?Click R' \n\t0x65 0x6D 0x6F 0x76 0x65 0x20 0x57 0x6F    // 'emove Wo' \n\t0x72 0x64 0x20 0x42 0x6F 0x78 0x2D 0x01    // 'rd Box-?' \n\t0x0D 0x0A 0x33 0x09 0x4D 0x6F 0x76 0x65    // '??3?Move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x63 0x75 0x72 0x73 0x6F    // 'se curso' \n\t0x72 0x20 0x6F 0x76 0x65 0x72 0x20 0x74    // 'r over t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x64 0x20    // 'he word ' \n\t0x62 0x6F 0x78 0x20 0x65 0x64 0x67 0x65    // 'box edge' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x79    // ' until y' \n\t0x6F 0x75 0x20 0x73 0x65 0x65 0x20 0x74    // 'ou see t' \n\t0x68 0x65 0x20 0x73 0x63 0x69 0x73 0x73    // 'he sciss' \n\t0x6F 0x72 0x73 0x2E 0x20 0x0D 0x0A 0x34    // 'ors. ??4' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x64 0x20    // 'he word ' \n\t0x62 0x6F 0x78 0x2E                        // 'box.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_67= ktpcHowToWords67\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_67, __HELP_NAME(\"Def:  scroll\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_67, __HELP_NAME(\"Def:  scroll\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobHowToSequenceHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwavHTWords67\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_20=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_67, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcHowToWords67\"\n\tITEM\n\t\t\"kgobHowToSequenceHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavHTWords67\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_20=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_67, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_20=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x01    // '????O???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x08 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_20=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x03 0x03 0x73 0x63 0x72 0x6F 0x6C 0x6C    // '??scroll' \n\t0x0D 0x0A 0x57 0x6F 0x72 0x64 0x73 0x20    // '??Words ' \n\t0x74 0x68 0x61 0x74 0x20 0x72 0x6F 0x6C    // 'that rol' \n\t0x6C 0x20 0x74 0x6F 0x77 0x61 0x72 0x64    // 'l toward' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 's the to' \n\t0x70 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'p of the' \n\t0x20 0x73 0x63 0x72 0x65 0x65 0x6E 0x20    // ' screen ' \n\t0x77 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'when you' \n\t0x20 0x70 0x6C 0x61 0x79 0x20 0x79 0x6F    // ' play yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/logo.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcLogo00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"This project helps you\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"This project helps you\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobProject 0x0 kidPlayLogoSounds 0x140 0xF0 0x57415645 kwavLogo00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcLogo00\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayLogoSounds\"\n\tITEM\n\t\t\"kwavLogo00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x29 0x00 0x00 0x03    // '???)???' \n\t0x0F 0x00 0x00 0xFD 0xAA 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xAC 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xAD 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xAC 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xAC 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0xAC 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x69 0x73 0x20 0x70    // '??This p' \n\t0x72 0x6F 0x6A 0x65 0x63 0x74 0x20 0x68    // 'roject h' \n\t0x65 0x6C 0x70 0x73 0x20 0x79 0x6F 0x75    // 'elps you' \n\t0x20 0x6D 0x61 0x6B 0x65 0x20 0x61 0x20    // ' make a ' \n\t0x66 0x6C 0x79 0x69 0x6E 0x67 0x20 0x6C    // 'flying l' \n\t0x6F 0x67 0x6F 0x97 0x33 0x44 0x20 0x77    // 'ogo3D w' \n\t0x6F 0x72 0x64 0x73 0x20 0x74 0x68 0x61    // 'ords tha' \n\t0x74 0x20 0x66 0x6C 0x79 0x20 0x6F 0x6E    // 't fly on' \n\t0x20 0x73 0x63 0x72 0x65 0x65 0x6E 0x21    // ' screen!' \n\t0x0D 0x0A 0x46 0x6F 0x72 0x20 0x65 0x78    // '??For ex' \n\t0x61 0x6D 0x70 0x6C 0x65 0x2C 0x20 0x79    // 'ample, y' \n\t0x6F 0x75 0x20 0x6D 0x61 0x79 0x20 0x77    // 'ou may w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x6D    // 'ant to m' \n\t0x61 0x6B 0x65 0x20 0x79 0x6F 0x75 0x72    // 'ake your' \n\t0x20 0x6F 0x77 0x6E 0x20 0x6D 0x6F 0x76    // ' own mov' \n\t0x69 0x65 0x20 0x63 0x6F 0x6D 0x70 0x61    // 'ie compa' \n\t0x6E 0x79 0x20 0x6E 0x61 0x6D 0x65 0x20    // 'ny name ' \n\t0x6F 0x72 0x20 0x63 0x72 0x65 0x61 0x74    // 'or creat' \n\t0x65 0x20 0x61 0x20 0x33 0x44 0x20 0x74    // 'e a 3D t' \n\t0x69 0x74 0x6C 0x65 0x20 0x66 0x6F 0x72    // 'itle for' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x2E 0x0D 0x0A 0x01         // 'vie.???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpcLogo01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Camera Angles\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Camera Angles\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSettingsCameras kidPlayLogoSounds 0x0 0x0 0x57415645 kwavLogo01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcLogo01\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSettingsCameras\"\n\tITEM\n\t\t\"kidPlayLogoSounds\"\n\tITEM\n\t\t\"kwavLogo01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7C 0x00 0x00 0x00    // '????|???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x61 0x6D 0x65 0x72 0x61 0x20 0x41    // 'Camera A' \n\t0x6E 0x67 0x6C 0x65 0x73 0x2E              // 'ngles.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpcLogo02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"CO--To see background \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"CO--To see background \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobProject kidSettingsBrowser kidPlayLogoSounds 0x0 0x0 0x57415645 kwavLogo02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpcLogo02\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSettingsBrowser\"\n\tITEM\n\t\t\"kidPlayLogoSounds\"\n\tITEM\n\t\t\"kwavLogo02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9E 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x03    // '????!???' \n\t0x0B 0x00 0x00 0xFD 0x27 0x00 0x00 0x03    // '???'???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x62 0x61 0x63 0x6B 0x67 0x72 0x6F    // ' backgro' \n\t0x75 0x6E 0x64 0x20 0x63 0x68 0x6F 0x69    // 'und choi' \n\t0x63 0x65 0x73 0x2C 0x20 0x63 0x6C 0x69    // 'ces, cli' \n\t0x63 0x6B 0x20 0x53 0x63 0x65 0x6E 0x65    // 'ck Scene' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpcLogo03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"CO--Click the background\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"CO--Click the background\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayLogoSounds 0xAA 0x0 0x57415645 kwavLogo03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcLogo03\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayLogoSounds\"\n\tITEM\n\t\t\"kwavLogo03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x62 0x61 0x63 0x6B    // 'the back' \n\t0x67 0x72 0x6F 0x75 0x6E 0x64 0x20 0x79    // 'ground y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x2E    // 'ou want.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpcLogo04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"CO--Then click the camera\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"CO--Then click the camera\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayLogoSounds 0x140 0x6E 0x57415645 kwavLogo04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcLogo04\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayLogoSounds\"\n\tITEM\n\t\t\"kwavLogo04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x83 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x65 0x6E 0x20 0x63    // '??Then c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x63 0x61 0x6D 0x65 0x72 0x61 0x20    // ' camera ' \n\t0x61 0x6E 0x67 0x6C 0x65 0x20 0x79 0x6F    // 'angle yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x75 0x73 0x65 0x2E              // 'o use.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpcLogo05\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO--To create 3D words for\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO--To create 3D words for\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsCover kidPlayLogoSounds 0x0 0x0 0x57415645 kwavLogo05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcLogo05\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsCover\"\n\tITEM\n\t\t\"kidPlayLogoSounds\"\n\tITEM\n\t\t\"kwavLogo05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x01    // '????9???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x03    // '????(???' \n\t0x0B 0x00 0x00 0xFD 0x36 0x00 0x00 0x03    // '???6???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x72 0x65    // '??To cre' \n\t0x61 0x74 0x65 0x20 0x33 0x44 0x20 0x77    // 'ate 3D w' \n\t0x6F 0x72 0x64 0x73 0x20 0x66 0x6F 0x72    // 'ords for' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6C 0x6F    // ' your lo' \n\t0x67 0x6F 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'go, clic' \n\t0x6B 0x20 0x41 0x63 0x74 0x6F 0x72 0x73    // 'k Actors' \n\t0x20 0x26 0x20 0x50 0x72 0x6F 0x70 0x73    // ' & Props' \n\t0x2E 0x2E 0x2E                             // '...' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpcLogo06\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--Then click 3D Words\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--Then click 3D Words\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsSpletters kidPlayLogoSounds 0x0 0x0 0x57415645 kwavLogo06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcLogo06\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsSpletters\"\n\tITEM\n\t\t\"kidPlayLogoSounds\"\n\tITEM\n\t\t\"kwavLogo06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8C 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x16 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x2E 0x2E 0x2E 0x74 0x68 0x65    // '??...the' \n\t0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // 'n click ' \n\t0x33 0x44 0x20 0x57 0x6F 0x72 0x64 0x73    // '3D Words' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpcLogo07\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO--Type your words here\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO--Type your words here\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayLogoSounds 0x140 0x6E 0x57415645 kwavLogo07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcLogo07\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayLogoSounds\"\n\tITEM\n\t\t\"kwavLogo07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5A 0x00 0x00 0x01    // '????Z???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x79 0x70 0x65 0x20 0x79    // '??Type y' \n\t0x6F 0x75 0x72 0x20 0x77 0x6F 0x72 0x64    // 'our word' \n\t0x73 0x20 0x68 0x65 0x72 0x65 0x2E 0x20    // 's here. ' \n\t0x20 0x49 0x66 0x20 0x79 0x6F 0x75 0x20    // ' If you ' \n\t0x6D 0x61 0x6B 0x65 0x20 0x61 0x20 0x6D    // 'make a m' \n\t0x69 0x73 0x74 0x61 0x6B 0x65 0x2C 0x20    // 'istake, ' \n\t0x70 0x72 0x65 0x73 0x73 0x20 0x42 0x61    // 'press Ba' \n\t0x63 0x6B 0x73 0x70 0x61 0x63 0x65 0x2E    // 'ckspace.' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // ' When yo' \n\t0x75 0x92 0x72 0x65 0x20 0x64 0x6F 0x6E    // 'ure don' \n\t0x65 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'e, click' \n\t0x20 0x4F 0x4B 0x2E                        // ' OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpcLogo08\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"Alert--You need a 3D word for\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"Alert--You need a 3D word for\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsSpletters kidPlayLogoSounds 0x0 0x0 0x57415645 kwavLogo08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcLogo08\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsSpletters\"\n\tITEM\n\t\t\"kidPlayLogoSounds\"\n\tITEM\n\t\t\"kwavLogo08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x03    // '????,???' \n\t0x0B 0x00 0x00 0xFD 0x34 0x00 0x00 0x03    // '???4???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x59 0x6F 0x75 0x20 0x6E 0x65    // '??You ne' \n\t0x65 0x64 0x20 0x61 0x20 0x33 0x44 0x20    // 'ed a 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x66 0x6F 0x72    // 'word for' \n\t0x20 0x74 0x68 0x69 0x73 0x20 0x70 0x72    // ' this pr' \n\t0x6F 0x6A 0x65 0x63 0x74 0x2E 0x20 0x20    // 'oject.  ' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x33 0x44    // 'Click 3D' \n\t0x20 0x57 0x6F 0x72 0x64 0x73 0x2E         // ' Words.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= ktpcLogo09\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO--Click the place you want\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO--Click the place you want\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayLogoSounds 0x140 0x6E 0x57415645 kwavLogo09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcLogo09\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayLogoSounds\"\n\tITEM\n\t\t\"kwavLogo09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x98 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3B 0x00 0x00 0x82    // '????;??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6C 0x6F    // ' your lo' \n\t0x67 0x6F 0x20 0x74 0x6F 0x20 0x66 0x69    // 'go to fi' \n\t0x72 0x73 0x74 0x20 0x61 0x70 0x70 0x65    // 'rst appe' \n\t0x61 0x72 0x2E 0x0D 0x0A 0x49 0x66 0x20    // 'ar.??If ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x6D 0x6F 0x76 0x65    // ' to move' \n\t0x20 0x74 0x68 0x65 0x20 0x6C 0x6F 0x67    // ' the log' \n\t0x6F 0x20 0x75 0x70 0x20 0x6F 0x72 0x20    // 'o up or ' \n\t0x64 0x6F 0x77 0x6E 0x2C 0x20 0x68 0x6F    // 'down, ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x74 0x68 0x65 0x20 0x55 0x70 0x20 0x6F    // 'the Up o' \n\t0x72 0x20 0x44 0x6F 0x77 0x6E 0x20 0x41    // 'r Down A' \n\t0x72 0x72 0x6F 0x77 0x20 0x6B 0x65 0x79    // 'rrow key' \n\t0x20 0x62 0x65 0x66 0x6F 0x72 0x65 0x20    // ' before ' \n\t0x79 0x6F 0x75 0x20 0x63 0x6C 0x69 0x63    // 'you clic' \n\t0x6B 0x2E                                  // 'k.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= ktpcLogo0A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO--To make the logo move\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO--To make the logo move\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsActionBrowser kidPlayLogoSounds 0x0 0x0 0x57415645 kwavLogo0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpcLogo0A\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayLogoSounds\"\n\tITEM\n\t\t\"kwavLogo0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x80 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x0F 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x61 0x6B    // '??To mak' \n\t0x65 0x20 0x79 0x6F 0x75 0x72 0x20 0x6C    // 'e your l' \n\t0x6F 0x67 0x6F 0x20 0x6D 0x6F 0x76 0x65    // 'ogo move' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x41 0x63 0x74 0x69 0x6F 0x6E 0x73 0x2E    // 'Actions.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= ktpcLogo0B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO--Click the logo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO--Click the logo\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayLogoSounds 0x140 0x6E 0x57415645 kwavLogo0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcLogo0B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayLogoSounds\"\n\tITEM\n\t\t\"kwavLogo0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x51 0x00 0x00 0x00    // '????Q???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x6C 0x6F 0x67 0x6F    // 'the logo' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= ktpcLogo0C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"CO--Click the action you\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"CO--Click the action you\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayLogoSounds 0x140 0x6E 0x57415645 kwavLogo0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcLogo0C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayLogoSounds\"\n\tITEM\n\t\t\"kwavLogo0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x01    // '????F???' \n\t0x01 0x00 0x00 0x00 0x50 0x00 0x00 0x01    // '????P???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x69    // 'the acti' \n\t0x6F 0x6E 0x20 0x79 0x6F 0x75 0x20 0x77    // 'on you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x70    // 'ant to p' \n\t0x72 0x65 0x76 0x69 0x65 0x77 0x2E 0x20    // 'review. ' \n\t0x20 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // ' When yo' \n\t0x75 0x20 0x66 0x69 0x6E 0x64 0x20 0x74    // 'u find t' \n\t0x68 0x65 0x20 0x6F 0x6E 0x65 0x20 0x79    // 'he one y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x2C    // 'ou want,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x4F    // ' click O' \n\t0x4B 0x2E                                  // 'K.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= ktpcLogo11\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO--Hold down the mouse \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO--Hold down the mouse \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayLogoSounds 0x140 0x6E 0x57415645 kwavLogo11\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpcLogo11\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayLogoSounds\"\n\tITEM\n\t\t\"kwavLogo11\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcLogo5C __HELP_SYMBOL( STN \"ktpcLogo5C\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x94 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x63 0x00 0x00 0x03    // '????c???' \n\t0x0B 0x00 0x00 0xFD 0x67 0x00 0x00 0x03    // '???g???' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0x40    // '????q??@' \n\t0x03 0x00 0x00 0x00 0x94 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0x80    // '????q??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x71 0x00 0x00 0x82    // '????q??' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0xC0    // '????q??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x6F 0x6C 0x64 0x20 0x64    // '??Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x6E 0x64    // 'tton and' \n\t0x20 0x64 0x72 0x61 0x67 0x20 0x74 0x68    // ' drag th' \n\t0x65 0x20 0x6C 0x6F 0x67 0x6F 0x20 0x77    // 'e logo w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x69 0x74    // ' want it' \n\t0x20 0x74 0x6F 0x20 0x67 0x6F 0x2E 0x0D    // ' to go.?' \n\t0x0A 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // '?When yo' \n\t0x75 0x92 0x72 0x65 0x20 0x64 0x6F 0x6E    // 'ure don' \n\t0x65 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'e, click' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x6C 0x61    // ' the Pla' \n\t0x79 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'y button' \n\t0x2E 0x0D 0x0A 0x01 0x20 0x4D 0x6F 0x76    // '.??? Mov' \n\t0x69 0x6E 0x67 0x20 0x75 0x70 0x20 0x6F    // 'ing up o' \n\t0x72 0x20 0x64 0x6F 0x77 0x6E 0x20 0x61    // 'r down a' \n\t0x6E 0x64 0x20 0x6E 0x65 0x61 0x72 0x20    // 'nd near ' \n\t0x6F 0x72 0x20 0x66 0x61 0x72              // 'or far' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= ktpcLogo12\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"Great!  You're done\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"Great!  You're done\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 kidPlayLogoSounds 0x140 0xF0 0x57415645 kwavLogo12\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcLogo12\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayLogoSounds\"\n\tITEM\n\t\t\"kwavLogo12\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\nAG(4)\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x04 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x01 0x00 0x00 0x00 0x98 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x34 0x00 0x00 0x03    // '???4???' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x40    // '????6??@' \n\t0x02 0x00 0x00 0x00 0x49 0x00 0x00 0x40    // '????I??@' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x40    // '????K??@' \n\t0x03 0x00 0x00 0x00 0x5F 0x00 0x00 0x40    // '????_??@' \n\t0x00 0x00 0x00 0x00 0x61 0x00 0x00 0x40    // '????a??@' \n\t0x04 0x00 0x00 0x00 0x80 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x82 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0x98 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x82 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0xC0    // '????6??' \n\t0x01 0x00 0x00 0x00 0x4B 0x00 0x00 0xC0    // '????K??' \n\t0x01 0x00 0x00 0x00 0x61 0x00 0x00 0xC0    // '????a??' \n\t0x01 0x00 0x00 0x00 0x82 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x72 0x65 0x61 0x74 0x21    // '??Great!' \n\t0x20 0x20 0x59 0x6F 0x75 0x92 0x72 0x65    // '  Youre' \n\t0x20 0x64 0x6F 0x6E 0x65 0x21 0x20 0x20    // ' done!  ' \n\t0x57 0x68 0x61 0x74 0x20 0x77 0x6F 0x75    // 'What wou' \n\t0x6C 0x64 0x20 0x79 0x6F 0x75 0x20 0x6C    // 'ld you l' \n\t0x69 0x6B 0x65 0x20 0x74 0x6F 0x20 0x64    // 'ike to d' \n\t0x6F 0x20 0x6E 0x6F 0x77 0x3F 0x0D 0x0A    // 'o now???' \n\t0x01 0x09 0x57 0x6F 0x72 0x6B 0x20 0x6F    // '??Work o' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6F    // 'n your o' \n\t0x77 0x6E 0x3F 0x0D 0x0A 0x01 0x09 0x4D    // 'wn?????M' \n\t0x61 0x6B 0x65 0x20 0x61 0x6E 0x6F 0x74    // 'ake anot' \n\t0x68 0x65 0x72 0x20 0x6C 0x6F 0x67 0x6F    // 'her logo' \n\t0x3F 0x0D 0x0A 0x01 0x09 0x47 0x6F 0x20    // '?????Go ' \n\t0x62 0x61 0x63 0x6B 0x20 0x74 0x6F 0x20    // 'back to ' \n\t0x74 0x68 0x65 0x20 0x50 0x72 0x6F 0x6A    // 'the Proj' \n\t0x65 0x63 0x74 0x73 0x20 0x52 0x6F 0x6F    // 'ects Roo' \n\t0x6D 0x3F 0x0D 0x0A 0x01 0x09 0x51 0x75    // 'm?????Qu' \n\t0x69 0x74 0x20 0x33 0x44 0x20 0x4D 0x6F    // 'it 3D Mo' \n\t0x76 0x69 0x65 0x20 0x4D 0x61 0x6B 0x65    // 'vie Make' \n\t0x72 0x3F                                  // 'r?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5C= ktpcLogo5C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5C, __HELP_NAME(\"Tip:  Move Up Down Near Far\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5C, __HELP_NAME(\"Tip:  Move Up Down Near Far\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"ktpcLogo5C\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0A 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x01 0x00 0x00 0x00 0x52 0x00 0x00 0x01    // '????R???' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x01    // '????T???' \n\t0x01 0x00 0x00 0x00 0x79 0x00 0x00 0x01    // '????y???' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03    // '????????' \n\t0x46 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // 'F??????' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x03    // '????'???' \n\t0x0B 0x00 0x00 0xFD 0x52 0x00 0x00 0x03    // '???R???' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x80    // '????T??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x54 0x00 0x00 0x82    // '????T??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x4D 0x6F    // '???   Mo' \n\t0x76 0x69 0x6E 0x67 0x20 0x75 0x70 0x20    // 'ving up ' \n\t0x6F 0x72 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'or down ' \n\t0x61 0x6E 0x64 0x20 0x6E 0x65 0x61 0x72    // 'and near' \n\t0x20 0x6F 0x72 0x20 0x66 0x61 0x72 0x0D    // ' or far?' \n\t0x0A 0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65    // '?To move' \n\t0x20 0x74 0x68 0x65 0x20 0x6C 0x6F 0x67    // ' the log' \n\t0x6F 0x20 0x75 0x70 0x20 0x6F 0x72 0x20    // 'o up or ' \n\t0x64 0x6F 0x77 0x6E 0x20 0x61 0x6E 0x64    // 'down and' \n\t0x20 0x6E 0x65 0x61 0x72 0x20 0x6F 0x72    // ' near or' \n\t0x20 0x66 0x61 0x72 0x0D 0x0A 0x95 0x09    // ' far???' \n\t0x48 0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77    // 'Hold dow' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x55 0x70    // 'n the Up' \n\t0x20 0x6F 0x72 0x20 0x44 0x6F 0x77 0x6E    // ' or Down' \n\t0x20 0x41 0x72 0x72 0x6F 0x77 0x20 0x6B    // ' Arrow k' \n\t0x65 0x79 0x2E                             // 'ey.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/makefile",
    "content": "#---$(SOC_ROOT)\\src\\help\\makefile\n\n!IFNDEF MAKEFILE_HELP\nMAKEFILE_HELP = 1\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.def\n\n\n#HELP SOURCE DIRECTORY\nHELP_SRC_DIR = $(SOC_ROOT)\\src\\help\n\n#SOC OBJ DIRECTORY\nSOC_OBJ_ROOT_DIR = $(SOC_ROOT)\\obj\nSOC_OBJ_DIR = $(SOC_OBJ_ROOT_DIR)\\$(BLD_TYPE_DIR)\n\n!IF \"$(LOCAL_BUILD)\" == \"1\"\nTARGET_DIR =\n!ELSE # LOCAL_BUILD\nTARGET_DIR = $(SOC_OBJ_DIR)^\\\n!ENDIF # !LOCAL_BUILD\n\nHELP_CHT_FILES = \\\n\t$(HELP_SRC_DIR)\\help.cht\\\n\t$(HELP_SRC_DIR)\\actorbio.cht\\\n\t$(HELP_SRC_DIR)\\bktips.cht\\\n\t$(HELP_SRC_DIR)\\bkhowto.cht\\\n\t$(HELP_SRC_DIR)\\bktocbas.cht\\\n\t$(HELP_SRC_DIR)\\bktools.cht\\\n\t$(HELP_SRC_DIR)\\basics.cht\\\n\t$(HELP_SRC_DIR)\\booktpc.cht\\\n\t$(HELP_SRC_DIR)\\easelhp.cht\\\n\t$(HELP_SRC_DIR)\\errors.cht\\\n\t$(HELP_SRC_DIR)\\guidhelp.cht\\\n\t$(HELP_SRC_DIR)\\htalerts.cht\\\n\t$(HELP_SRC_DIR)\\htactors.cht\\\n\t$(HELP_SRC_DIR)\\htscenes.cht\\\n\t$(HELP_SRC_DIR)\\htsounds.cht\\\n\t$(HELP_SRC_DIR)\\htwords.cht\\\n\t$(HELP_SRC_DIR)\\logo.cht\\\n\t$(HELP_SRC_DIR)\\prjalert.cht\\\n\t$(HELP_SRC_DIR)\\prjtips.cht\\\n\t$(HELP_SRC_DIR)\\prjintro.cht\\\n\t$(HELP_SRC_DIR)\\project1.cht\\\n\t$(HELP_SRC_DIR)\\project2.cht\\\n\t$(HELP_SRC_DIR)\\project3.cht\\\n\t$(HELP_SRC_DIR)\\project4.cht\\\n\t$(HELP_SRC_DIR)\\project5.cht\\\n\t$(HELP_SRC_DIR)\\project6.cht\\\n\t$(HELP_SRC_DIR)\\gadget1.cht\\\n\t$(HELP_SRC_DIR)\\gadget2.cht\\\n\t$(HELP_SRC_DIR)\\gadget3.cht\\\n\t$(HELP_SRC_DIR)\\gadget4.cht\\\n\t$(HELP_SRC_DIR)\\gadget5.cht\\\n\t$(HELP_SRC_DIR)\\gadget6.cht\\\n\t$(HELP_SRC_DIR)\\toolhelp.cht\\\n\t$(HELP_SRC_DIR)\\tooltips.cht\\\n\t$(HELP_SRC_DIR)\\app.cht\\\n\t$(HELP_SRC_DIR)\\topics1.cht\n\n\nHELP_CHUNK_TARGETS =\\\n    $(TARGET_DIR)help.chk\n\n\n#-Compile rules-------------------------------------------------------------\n\nSRC_DIR = $(HELP_SRC_DIR)\nOBJ_DIR = $(SOC_OBJ_DIR)\nTGT_NAME = Help\n\n!INCLUDE $(SOC_ROOT)\\makefile.rul\n\n#-Targets-------------------------------------------------------------------\n\nALL_HELP = $(TARGET_DIR)help.chk\nALL_TARGETS_ROOT = $(ALL_TARGETS_ROOT) $(ALL_HELP)\n\nCLEAN_HELP = CLEAN_HELP_CHUNKS\nCLEAN_TARGETS_ROOT = $(CLEAN_TARGETS_ROOT) $(CLEAN_HELP)\n\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\n!IF \"$(LOCAL_BUILD)\" != \"0\"\n\nALL: $(SOC_OBJ_DIR) HELP_CONTENT\nCLEAN: CLEAN_HELP_CHUNKS ALL\n\n!ENDIF # LOCAL_BUILD != 0\n\n$(SOC_OBJ_DIR) :\n    @echo Making Directories $(SOC_OBJ_DIR)...\n    if not exist $(SOC_OBJ_ROOT_DIR)/nul mkdir $(SOC_OBJ_ROOT_DIR)\n    if not exist $(SOC_OBJ_DIR)/nul mkdir $(SOC_OBJ_DIR)\n\n!ENDIF # LOCAL_BUILD != 1\n\n\nCLEAN_HELP_CHUNKS:\n    @echo <<delhelp.bat\n@echo off\nDEL /q dummy.nul $(HELP_CHUNK_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    call delhelp.bat\n\n\n#\n#Create Help Chunky Files\n#\nHELP_CONTENT: $(SOC_OBJ_DIR)\\help.chk\n\n$(TARGET_DIR)help.chk : $(SOC_OBJ_DIR) $(HELP_CHT_FILES)\n\nMAKEFILE_HELP = 0\n!ENDIF # !MAKEFILE_HELP\n"
  },
  {
    "path": "src/help/prjalert.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcDeviation\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Deviation alert\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Deviation alert\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 kidPlayProjectSounds 0x140 0xF0 0x57415645 kwavPrjAlert00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcDeviation\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwavPrjAlert00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\nAG(4)\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x04 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x01    // '????F???' \n\t0x01 0x00 0x00 0x00 0x59 0x00 0x00 0x01    // '????Y???' \n\t0x00 0x00 0x00 0x00 0x5B 0x00 0x00 0x01    // '????[???' \n\t0x01 0x00 0x00 0x00 0x7A 0x00 0x00 0x01    // '????z???' \n\t0x00 0x00 0x00 0x00 0x7C 0x00 0x00 0x01    // '????|???' \n\t0x01 0x00 0x00 0x00 0x92 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x94 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x42 0x00 0x00 0x03    // '???B???' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0x40    // '????D??@' \n\t0x02 0x00 0x00 0x00 0x57 0x00 0x00 0x40    // '????W??@' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x40    // '????Y??@' \n\t0x03 0x00 0x00 0x00 0x78 0x00 0x00 0x40    // '????x??@' \n\t0x00 0x00 0x00 0x00 0x7A 0x00 0x00 0x40    // '????z??@' \n\t0x04 0x00 0x00 0x00 0x90 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x92 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xB7 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0x80    // '????D??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x92 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0xC0    // '????D??' \n\t0x01 0x00 0x00 0x00 0x59 0x00 0x00 0xC0    // '????Y??' \n\t0x01 0x00 0x00 0x00 0x7A 0x00 0x00 0xC0    // '????z??' \n\t0x01 0x00 0x00 0x00 0x92 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x20 0x77 0x61 0x73 0x6E    // '??I wasn' \n\t0x27 0x74 0x20 0x65 0x78 0x70 0x65 0x63    // ''t expec' \n\t0x74 0x69 0x6E 0x67 0x20 0x79 0x6F 0x75    // 'ting you' \n\t0x20 0x74 0x6F 0x20 0x63 0x6C 0x69 0x63    // ' to clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x72 0x65 0x21    // 'k there!' \n\t0x20 0x20 0x57 0x68 0x61 0x74 0x20 0x77    // '  What w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x79 0x6F 0x75    // 'ould you' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x74 0x6F    // ' like to' \n\t0x20 0x64 0x6F 0x3F 0x0D 0x0A 0x01 0x09    // ' do?????' \n\t0x57 0x6F 0x72 0x6B 0x20 0x6F 0x6E 0x20    // 'Work on ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6F 0x77 0x6E    // 'your own' \n\t0x3F 0x0D 0x0A 0x01 0x09 0x47 0x6F 0x20    // '?????Go ' \n\t0x62 0x61 0x63 0x6B 0x20 0x74 0x6F 0x20    // 'back to ' \n\t0x74 0x68 0x65 0x20 0x50 0x72 0x6F 0x6A    // 'the Proj' \n\t0x65 0x63 0x74 0x73 0x20 0x72 0x6F 0x6F    // 'ects roo' \n\t0x6D 0x3F 0x0D 0x0A 0x01 0x09 0x51 0x75    // 'm?????Qu' \n\t0x69 0x74 0x20 0x33 0x44 0x20 0x4D 0x6F    // 'it 3D Mo' \n\t0x76 0x69 0x65 0x20 0x4D 0x61 0x6B 0x65    // 'vie Make' \n\t0x72 0x3F 0x0D 0x0A 0x01 0x09 0x43 0x6F    // 'r?????Co' \n\t0x6E 0x74 0x69 0x6E 0x75 0x65 0x20 0x74    // 'ntinue t' \n\t0x68 0x69 0x73 0x20 0x70 0x72 0x6F 0x6A    // 'his proj' \n\t0x65 0x63 0x74 0x20 0x77 0x69 0x74 0x68    // 'ect with' \n\t0x20 0x6D 0x79 0x20 0x68 0x65 0x6C 0x70    // ' my help' \n\t0x3F                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpcExitHelp\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"User clicks Exit\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"User clicks Exit\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 kidPlayProjectSounds 0x140 0xF0 0x57415645 kwavPrjAlert01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcExitHelp\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwavPrjAlert01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x16 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x01 0x00 0x00 0x00 0x4A 0x00 0x00 0x01    // '????J???' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x01    // '????L???' \n\t0x01 0x00 0x00 0x00 0x6D 0x00 0x00 0x01    // '????m???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x30 0x00 0x00 0x40    // '????0??@' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x40    // '????2??@' \n\t0x03 0x00 0x00 0x00 0x48 0x00 0x00 0x40    // '????H??@' \n\t0x00 0x00 0x00 0x00 0x4A 0x00 0x00 0x40    // '????J??@' \n\t0x04 0x00 0x00 0x00 0x6D 0x00 0x00 0x40    // '????m??@' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4A 0x00 0x00 0x82    // '????J??' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0xC0    // '????2??' \n\t0x01 0x00 0x00 0x00 0x4A 0x00 0x00 0xC0    // '????J??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x6F 0x20 0x79 0x6F 0x75    // '??Do you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x3A 0x0D 0x0A 0x01 0x09 0x47 0x6F 0x20    // ':????Go ' \n\t0x62 0x61 0x63 0x6B 0x20 0x74 0x6F 0x20    // 'back to ' \n\t0x74 0x68 0x65 0x20 0x50 0x72 0x6F 0x6A    // 'the Proj' \n\t0x65 0x63 0x74 0x73 0x20 0x52 0x6F 0x6F    // 'ects Roo' \n\t0x6D 0x3F 0x0D 0x0A 0x01 0x09 0x51 0x75    // 'm?????Qu' \n\t0x69 0x74 0x20 0x33 0x44 0x20 0x4D 0x6F    // 'it 3D Mo' \n\t0x76 0x69 0x65 0x20 0x4D 0x61 0x6B 0x65    // 'vie Make' \n\t0x72 0x3F 0x0D 0x0A 0x01 0x09 0x43 0x6F    // 'r?????Co' \n\t0x6E 0x74 0x69 0x6E 0x75 0x65 0x20 0x77    // 'ntinue w' \n\t0x6F 0x72 0x6B 0x69 0x6E 0x67 0x20 0x6F    // 'orking o' \n\t0x6E 0x20 0x74 0x68 0x69 0x73 0x20 0x70    // 'n this p' \n\t0x72 0x6F 0x6A 0x65 0x63 0x74 0x3F         // 'roject?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpcUserQuitsHelp\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"User quits project--help intro\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"User quits project--help intro\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProject 0x0 kidPlayProjectSounds 0x140 0xF0 0x57415645 kwavPrjAlert02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpcUserQuitsHelp\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwavPrjAlert02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x01    // '????b???' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x66 0x20 0x79 0x6F 0x75    // '??If you' \n\t0x20 0x6E 0x65 0x65 0x64 0x20 0x68 0x65    // ' need he' \n\t0x6C 0x70 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'lp, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x48 0x65    // 'k the He' \n\t0x6C 0x70 0x20 0x4D 0x61 0x63 0x68 0x69    // 'lp Machi' \n\t0x6E 0x65 0x20 0x6F 0x72 0x20 0x6D 0x6F    // 'ne or mo' \n\t0x76 0x65 0x20 0x74 0x68 0x65 0x20 0x6D    // 've the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x70 0x6F 0x69    // 'ouse poi' \n\t0x6E 0x74 0x65 0x72 0x20 0x6F 0x76 0x65    // 'nter ove' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 'r the to' \n\t0x6F 0x6C 0x20 0x79 0x6F 0x75 0x20 0x77    // 'ol you w' \n\t0x61 0x6E 0x74 0x20 0x68 0x65 0x6C 0x70    // 'ant help' \n\t0x20 0x6F 0x6E 0x21                        // ' on!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpcUserIdle\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Idle--Remember to get the next\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Idle--Remember to get the next\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject kidGadget 0xFFFFFFFF 0x0 0x0 0x57415645 kwavPrjAlert03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcUserIdle\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadget\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavPrjAlert03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x03    // '????(???' \n\t0x0B 0x00 0x00 0xFD 0x36 0x00 0x00 0x03    // '???6???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x65 0x6D 0x62    // '??Rememb' \n\t0x65 0x72 0x20 0x74 0x6F 0x20 0x67 0x65    // 'er to ge' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 't the ne' \n\t0x78 0x74 0x20 0x73 0x74 0x65 0x70 0x2C    // 'xt step,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x6D    // ' click m' \n\t0x79 0x20 0x50 0x72 0x6F 0x6A 0x65 0x63    // 'y Projec' \n\t0x74 0x20 0x47 0x61 0x64 0x67 0x65 0x74    // 't Gadget' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpcProjectCancel\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"User clicks Cancel button\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"User clicks Cancel button\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProjectHot 0x0 ktpcProjectCancel 0x140 0xF0 0x57415645 kwavPrjAlert04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcProjectCancel\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcProjectCancel\"\n\tITEM\n\t\t\"kwavPrjAlert04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x16 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x01    // '????3???' \n\t0x01 0x00 0x00 0x00 0x52 0x00 0x00 0x01    // '????R???' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x01    // '????T???' \n\t0x01 0x00 0x00 0x00 0x77 0x00 0x00 0x01    // '????w???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x1A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x2F 0x00 0x00 0x40    // '????/??@' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x40    // '????1??@' \n\t0x03 0x00 0x00 0x00 0x50 0x00 0x00 0x40    // '????P??@' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0x40    // '????R??@' \n\t0x04 0x00 0x00 0x00 0x77 0x00 0x00 0x40    // '????w??@' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1C 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0xC0    // '????1??' \n\t0x01 0x00 0x00 0x00 0x52 0x00 0x00 0xC0    // '????R??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x68 0x61 0x74 0x20 0x77    // '??What w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x79 0x6F 0x75    // 'ould you' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x74 0x6F    // ' like to' \n\t0x20 0x64 0x6F 0x3F 0x0D 0x0A 0x01 0x09    // ' do?????' \n\t0x57 0x6F 0x72 0x6B 0x20 0x6F 0x6E 0x20    // 'Work on ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6F 0x77 0x6E    // 'your own' \n\t0x3F 0x0D 0x0A 0x01 0x09 0x47 0x6F 0x20    // '?????Go ' \n\t0x62 0x61 0x63 0x6B 0x20 0x74 0x6F 0x20    // 'back to ' \n\t0x74 0x68 0x65 0x20 0x50 0x72 0x6F 0x6A    // 'the Proj' \n\t0x65 0x63 0x74 0x73 0x20 0x72 0x6F 0x6F    // 'ects roo' \n\t0x6D 0x3F 0x0D 0x0A 0x01 0x09 0x43 0x6F    // 'm?????Co' \n\t0x6E 0x74 0x69 0x6E 0x75 0x65 0x20 0x74    // 'ntinue t' \n\t0x68 0x69 0x73 0x20 0x70 0x72 0x6F 0x6A    // 'his proj' \n\t0x65 0x63 0x74 0x20 0x77 0x69 0x74 0x68    // 'ect with' \n\t0x20 0x6D 0x79 0x20 0x68 0x65 0x6C 0x70    // ' my help' \n\t0x3F                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpcNewMovie\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"User clicks arrows on gadget\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"User clicks arrows on gadget\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProjectHot 0x0 ktpcNewMovie 0x140 0xF0 0x57415645 kwavPrjAlert05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpcNewMovie\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcNewMovie\"\n\tITEM\n\t\t\"kwavPrjAlert05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x01 0x00 0x00 0x00 0x49 0x00 0x00 0x01    // '????I???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x24 0x00 0x00 0x40    // '????$??@' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x40    // '????&??@' \n\t0x03 0x00 0x00 0x00 0x49 0x00 0x00 0x40    // '????I??@' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x11 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0xC0    // '????&??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x6F 0x20 0x79 0x6F 0x75    // '??Do you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x3A 0x0D 0x0A 0x01 0x09 0x53 0x65 0x65    // ':????See' \n\t0x20 0x61 0x6E 0x6F 0x74 0x68 0x65 0x72    // ' another' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x0D 0x0A    // ' movie??' \n\t0x01 0x09 0x43 0x6F 0x6E 0x74 0x69 0x6E    // '??Contin' \n\t0x75 0x65 0x20 0x77 0x6F 0x72 0x6B 0x69    // 'ue worki' \n\t0x6E 0x67 0x20 0x6F 0x6E 0x20 0x74 0x68    // 'ng on th' \n\t0x69 0x73 0x20 0x70 0x72 0x6F 0x6A 0x65    // 'is proje' \n\t0x63 0x74 0x3F                             // 'ct?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/prjintro.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= Audio_only___Long_Intro\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Audio only:  Long Intro\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Audio only:  Long Intro\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonAO kgobProject 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavPrjIntro00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonAO\"\n\tITEM\n\t\t\"Audio_only___Long_Intro\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavPrjIntro00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x75 0x64 0x69 0x6F 0x20    // '??Audio ' \n\t0x6F 0x6E 0x6C 0x79 0x2D 0x2D 0x2D 0x0D    // 'only---?' \n\t0x0A 0x48 0x69 0x21 0x20 0x20 0x57 0x65    // '?Hi!  We' \n\t0x6C 0x63 0x6F 0x6D 0x65 0x20 0x74 0x6F    // 'lcome to' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x72 0x6F    // ' the Pro' \n\t0x6A 0x65 0x63 0x74 0x73 0x20 0x52 0x6F    // 'jects Ro' \n\t0x6F 0x6D 0x2E 0x20 0x20 0x49 0x66 0x20    // 'om.  If ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x6D 0x65 0x20 0x74 0x6F 0x20 0x73    // ' me to s' \n\t0x68 0x6F 0x77 0x20 0x79 0x6F 0x75 0x20    // 'how you ' \n\t0x68 0x6F 0x77 0x20 0x74 0x6F 0x20 0x63    // 'how to c' \n\t0x72 0x65 0x61 0x74 0x65 0x20 0x61 0x20    // 'reate a ' \n\t0x66 0x6C 0x79 0x69 0x6E 0x67 0x20 0x6C    // 'flying l' \n\t0x6F 0x67 0x6F 0x2C 0x20 0x63 0x6C 0x69    // 'ogo, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x73    // 'ck the s' \n\t0x63 0x72 0x65 0x65 0x6E 0x20 0x6F 0x6E    // 'creen on' \n\t0x20 0x74 0x68 0x65 0x20 0x6C 0x65 0x66    // ' the lef' \n\t0x74 0x2E 0x20 0x20 0x49 0x66 0x20 0x79    // 't.  If y' \n\t0x6F 0x75 0x27 0x64 0x20 0x6C 0x69 0x6B    // 'ou'd lik' \n\t0x65 0x20 0x74 0x6F 0x20 0x73 0x65 0x65    // 'e to see' \n\t0x20 0x73 0x6F 0x6D 0x65 0x20 0x63 0x6F    // ' some co' \n\t0x6F 0x6C 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ol movie' \n\t0x2D 0x6D 0x61 0x6B 0x69 0x6E 0x67 0x20    // '-making ' \n\t0x74 0x65 0x63 0x68 0x6E 0x69 0x71 0x75    // 'techniqu' \n\t0x65 0x73 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'es, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x73 0x63    // 'k the sc' \n\t0x72 0x65 0x65 0x6E 0x20 0x6F 0x6E 0x20    // 'reen on ' \n\t0x74 0x68 0x65 0x20 0x72 0x69 0x67 0x68    // 'the righ' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= Would_you_like_to\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Would you like to...\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Would you like to...\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonAO kgobProject 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavPrjIntro01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonAO\"\n\tITEM\n\t\t\"Would_you_like_to\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavPrjIntro01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x01    // '????E???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2B 0x00 0x00 0x82    // '????+??' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0xC0    // '????+??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x6F 0x75 0x6C 0x64 0x20    // '??Would ' \n\t0x79 0x6F 0x75 0x20 0x6C 0x69 0x6B 0x65    // 'you like' \n\t0x20 0x74 0x6F 0x3A 0x0D 0x0A 0x01 0x09    // ' to:????' \n\t0x4D 0x61 0x6B 0x65 0x20 0x61 0x20 0x66    // 'Make a f' \n\t0x6C 0x79 0x69 0x6E 0x67 0x20 0x6C 0x6F    // 'lying lo' \n\t0x67 0x6F 0x3F 0x0D 0x0A 0x01 0x09 0x4C    // 'go?????L' \n\t0x65 0x61 0x72 0x6E 0x20 0x61 0x20 0x6D    // 'earn a m' \n\t0x6F 0x76 0x69 0x65 0x20 0x74 0x65 0x63    // 'ovie tec' \n\t0x68 0x6E 0x69 0x71 0x75 0x65 0x3F         // 'hnique?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= Audio_only___The_Project_Gad\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Audio only:  The Project Gad\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Audio only:  The Project Gad\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonAO kgobProject 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 kwavPrjIntro02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonAO\"\n\tITEM\n\t\t\"Audio_only___The_Project_Gad\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavPrjIntro02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x75 0x64 0x69 0x6F 0x20    // '??Audio ' \n\t0x6F 0x6E 0x6C 0x79 0x2E 0x2E 0x2E 0x0D    // 'only...?' \n\t0x0A 0x54 0x68 0x65 0x20 0x50 0x72 0x6F    // '?The Pro' \n\t0x6A 0x65 0x63 0x74 0x20 0x47 0x61 0x64    // 'ject Gad' \n\t0x67 0x65 0x74 0x20 0x73 0x68 0x6F 0x77    // 'get show' \n\t0x73 0x20 0x79 0x6F 0x75 0x20 0x39 0x20    // 's you 9 ' \n\t0x64 0x69 0x66 0x66 0x65 0x72 0x65 0x6E    // 'differen' \n\t0x74 0x20 0x6D 0x6F 0x76 0x69 0x65 0x2D    // 't movie-' \n\t0x6D 0x61 0x6B 0x69 0x6E 0x67 0x20 0x74    // 'making t' \n\t0x65 0x63 0x68 0x6E 0x69 0x71 0x75 0x65    // 'echnique' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpcPrjIntro03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"My Project Gadget\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"My Project Gadget\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobProject 0x0 kidGadgetStartOk 0x140 0xF0 0x57415645 kwavPrjIntro03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpcPrjIntro03\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidGadgetStartOk\"\n\tITEM\n\t\t\"kwavPrjIntro03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x97 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x97 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x96 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x79 0x20 0x50 0x72 0x6F    // '??My Pro' \n\t0x6A 0x65 0x63 0x74 0x20 0x47 0x61 0x64    // 'ject Gad' \n\t0x67 0x65 0x74 0x20 0x77 0x69 0x6C 0x6C    // 'get will' \n\t0x20 0x68 0x65 0x6C 0x70 0x20 0x79 0x6F    // ' help yo' \n\t0x75 0x20 0x63 0x72 0x65 0x61 0x74 0x65    // 'u create' \n\t0x20 0x36 0x20 0x6D 0x6F 0x76 0x69 0x65    // ' 6 movie' \n\t0x73 0x20 0x73 0x74 0x65 0x70 0x2D 0x62    // 's step-b' \n\t0x79 0x2D 0x73 0x74 0x65 0x70 0x2E 0x20    // 'y-step. ' \n\t0x20 0x49 0x27 0x76 0x65 0x20 0x6D 0x61    // ' I've ma' \n\t0x64 0x65 0x20 0x70 0x61 0x72 0x74 0x20    // 'de part ' \n\t0x6F 0x66 0x20 0x65 0x61 0x63 0x68 0x20    // 'of each ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x66 0x6F    // 'movie fo' \n\t0x72 0x20 0x79 0x6F 0x75 0x2E 0x20 0x20    // 'r you.  ' \n\t0x55 0x73 0x65 0x20 0x6D 0x79 0x20 0x50    // 'Use my P' \n\t0x72 0x6F 0x6A 0x65 0x63 0x74 0x20 0x47    // 'roject G' \n\t0x61 0x64 0x67 0x65 0x74 0x20 0x74 0x6F    // 'adget to' \n\t0x20 0x68 0x65 0x6C 0x70 0x20 0x79 0x6F    // ' help yo' \n\t0x75 0x20 0x64 0x6F 0x20 0x74 0x68 0x65    // 'u do the' \n\t0x20 0x72 0x65 0x73 0x74 0x21 0x0D 0x0A    // ' rest!??' \n\t0x01                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/prjtips.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ttVolumeControl\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"ttVolumeControl\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"ttVolumeControl\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidGadgetVolume 0xFFFFFFFF 0x0 0x0 0x57415645 kwavPrjTips00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"ttVolumeControl\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidGadgetVolume\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavPrjTips00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x93 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x10 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x56 0x6F 0x6C 0x75 0x6D 0x65    // '??Volume' \n\t0x20 0x43 0x6F 0x6E 0x74 0x72 0x6F 0x6C    // ' Control' \n\t0x0D 0x0A 0x41 0x64 0x6A 0x75 0x73 0x74    // '??Adjust' \n\t0x20 0x74 0x68 0x65 0x20 0x76 0x6F 0x6C    // ' the vol' \n\t0x75 0x6D 0x65 0x20 0x66 0x6F 0x72 0x20    // 'ume for ' \n\t0x61 0x6C 0x6C 0x20 0x74 0x68 0x65 0x20    // 'all the ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x73 0x20 0x79    // 'sounds y' \n\t0x6F 0x75 0x20 0x68 0x65 0x61 0x72 0x2E    // 'ou hear.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ttNextMovie\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"ttNextMovie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"ttNextMovie\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidGadgetSelectorUp 0xFFFFFFFF 0xB9 0x14 0x57415645 kwavPrjTips01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"ttNextMovie\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidGadgetSelectorUp\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavPrjTips01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x83 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x65 0x78 0x74 0x20 0x4D    // '??Next M' \n\t0x6F 0x76 0x69 0x65 0x0D 0x0A 0x47 0x6F    // 'ovie??Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x6E 0x65 0x78 0x74 0x20 0x6D 0x6F 0x76    // 'next mov' \n\t0x69 0x65 0x2E                             // 'ie.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ttPreviousMovie\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"ttPreviousMovie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"ttPreviousMovie\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidGadgetSelectorDown 0xFFFFFFFF 0xC9 0x14 0x57415645 kwavPrjTips02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"ttPreviousMovie\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidGadgetSelectorDown\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavPrjTips02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x94 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x10 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x72 0x65 0x76 0x69 0x6F    // '??Previo' \n\t0x75 0x73 0x20 0x4D 0x6F 0x76 0x69 0x65    // 'us Movie' \n\t0x0D 0x0A 0x47 0x6F 0x20 0x74 0x6F 0x20    // '??Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x72 0x65 0x76    // 'the prev' \n\t0x69 0x6F 0x75 0x73 0x20 0x6D 0x6F 0x76    // 'ious mov' \n\t0x69 0x65 0x2E                             // 'ie.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ttPlayButton\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"ttPlayButton\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"ttPlayButton\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidGadgetPlay 0xFFFFFFFF 0x0 0x0 0x57415645 kwavPrjTips03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"ttPlayButton\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidGadgetPlay\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavPrjTips03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x88 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x6C 0x61 0x79 0x20 0x42    // '??Play B' \n\t0x75 0x74 0x74 0x6F 0x6E 0x0D 0x0A 0x43    // 'utton??C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x6F 0x20    // 'lick to ' \n\t0x70 0x6C 0x61 0x79 0x20 0x74 0x68 0x65    // 'play the' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E         // ' movie.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ttHowButton\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"ttHowButton\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"ttHowButton\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidGadgetHow 0xFFFFFFFF 0x0 0x0 0x57415645 kwavPrjTips04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"ttHowButton\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavPrjTips04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x87 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x6F 0x77 0x20 0x42 0x75    // '??How Bu' \n\t0x74 0x74 0x6F 0x6E 0x0D 0x0A 0x43 0x6C    // 'tton??Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x6F 0x20 0x73    // 'ick to s' \n\t0x65 0x65 0x20 0x74 0x68 0x65 0x20 0x73    // 'ee the s' \n\t0x74 0x65 0x70 0x73 0x2E                   // 'teps.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ttCloseButton\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"ttCloseButton\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"ttCloseButton\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidGadgetCancel 0xFFFFFFFF 0x0 0x0 0x57415645 kwavPrjTips05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"ttCloseButton\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidGadgetCancel\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavPrjTips05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x6F 0x73 0x65 0x20    // '??Close ' \n\t0x42 0x75 0x74 0x74 0x6F 0x6E 0x0D 0x0A    // 'Button??' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x6F    // 'Click to' \n\t0x20 0x63 0x6C 0x6F 0x73 0x65 0x20 0x74    // ' close t' \n\t0x68 0x65 0x20 0x50 0x72 0x6F 0x6A 0x65    // 'he Proje' \n\t0x63 0x74 0x20 0x47 0x61 0x64 0x67 0x65    // 'ct Gadge' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ttMelanieOnOff\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"ttMelanieOnOff\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"ttMelanieOnOff\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidGadgetVoice 0xFFFFFFFF 0x0 0x0 0x57415645 kwavPrjTips06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"ttMelanieOnOff\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidGadgetVoice\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavPrjTips06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x65 0x6C 0x61 0x6E 0x69    // '??Melani' \n\t0x65 0x27 0x73 0x20 0x56 0x6F 0x69 0x63    // 'e's Voic' \n\t0x65 0x0D 0x0A 0x54 0x75 0x72 0x6E 0x20    // 'e??Turn ' \n\t0x4D 0x65 0x6C 0x61 0x6E 0x69 0x65 0x27    // 'Melanie'' \n\t0x73 0x20 0x76 0x6F 0x69 0x63 0x65 0x20    // 's voice ' \n\t0x6F 0x6E 0x20 0x6F 0x72 0x20 0x6F 0x66    // 'on or of' \n\t0x66 0x2E                                  // 'f.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ttWhyButton\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"ttWhyButton\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"ttWhyButton\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidGadgetWhy 0xFFFFFFFF 0x0 0x0 0x57415645 kwavPrjTips07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"ttWhyButton\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidGadgetWhy\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwavPrjTips07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x74 0x00 0x00 0x00    // '????t???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x69 0x70 0x0D 0x0A 0x43    // '??Tip??C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x6F 0x20    // 'lick to ' \n\t0x6C 0x65 0x61 0x72 0x6E 0x20 0x6D 0x6F    // 'learn mo' \n\t0x72 0x65 0x2E                             // 're.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/project1.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpc1Project00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"To see this movie--CUT\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"To see this movie--CUT\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobProject kidGadgetPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpc1Project00\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7D 0x00 0x00 0x00    // '????}???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x03    // '????%???' \n\t0x0B 0x00 0x00 0xFD 0x29 0x00 0x00 0x03    // '???)???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x2E 0x2E 0x2E    // '??Cut...' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x69 0x73 0x20 0x6D 0x6F    // ' this mo' \n\t0x76 0x69 0x65 0x2C 0x20 0x63 0x6C 0x69    // 'vie, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x50    // 'ck the P' \n\t0x6C 0x61 0x79 0x20 0x62 0x75 0x74 0x74    // 'lay butt' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpc1Project01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"To see the steps\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"To see the steps\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc1Project01\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc1Project32 __HELP_SYMBOL( STN \"ktpc1Project32\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x55 0x00 0x00 0x01    // '????U???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x03    // '????2???' \n\t0x0B 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x55 0x00 0x00 0x40    // '????U??@' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x6D    // 'ps for m' \n\t0x61 0x6B 0x69 0x6E 0x67 0x20 0x74 0x68    // 'aking th' \n\t0x69 0x73 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'is movie' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x48 0x6F 0x77 0x20    // 'the How ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E 0x0D    // 'button.?' \n\t0x0A 0x01 0x20 0x4D 0x61 0x6B 0x69 0x6E    // '?? Makin' \n\t0x67 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'g an act' \n\t0x6F 0x72 0x20 0x74 0x61 0x6C 0x6B         // 'or talk' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpc1Project02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Why--Claudia's sentence\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Why--Claudia's sentence\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav1Project02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc1Project02\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav1Project02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x69 0x64 0x20 0x79 0x6F    // '??Did yo' \n\t0x75 0x20 0x65 0x76 0x65 0x72 0x20 0x77    // 'u ever w' \n\t0x6F 0x6E 0x64 0x65 0x72 0x20 0x68 0x6F    // 'onder ho' \n\t0x77 0x20 0x74 0x6F 0x20 0x6D 0x61 0x74    // 'w to mat' \n\t0x63 0x68 0x20 0x77 0x68 0x61 0x74 0x20    // 'ch what ' \n\t0x61 0x63 0x74 0x6F 0x72 0x73 0x20 0x73    // 'actors s' \n\t0x61 0x79 0x20 0x74 0x6F 0x20 0x77 0x68    // 'ay to wh' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x79 0x20    // 'at they ' \n\t0x64 0x6F 0x3F 0x20 0x20 0x49 0x74 0x27    // 'do?  It'' \n\t0x73 0x20 0x6E 0x6F 0x74 0x20 0x61 0x73    // 's not as' \n\t0x20 0x65 0x61 0x73 0x79 0x20 0x61 0x73    // ' easy as' \n\t0x20 0x69 0x74 0x20 0x6C 0x6F 0x6F 0x6B    // ' it look' \n\t0x73 0x2E 0x20 0x20 0x57 0x61 0x74 0x63    // 's.  Watc' \n\t0x68 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'h the mo' \n\t0x76 0x69 0x65 0x20 0x61 0x67 0x61 0x69    // 'vie agai' \n\t0x6E 0x2E 0x20 0x20 0x4E 0x6F 0x74 0x69    // 'n.  Noti' \n\t0x63 0x65 0x20 0x68 0x6F 0x77 0x20 0x47    // 'ce how G' \n\t0x72 0x65 0x67 0x6F 0x72 0x79 0x20 0x61    // 'regory a' \n\t0x6E 0x64 0x20 0x43 0x6C 0x61 0x75 0x64    // 'nd Claud' \n\t0x69 0x61 0x27 0x73 0x20 0x61 0x72 0x6D    // 'ia's arm' \n\t0x73 0x20 0x73 0x74 0x61 0x72 0x74 0x20    // 's start ' \n\t0x6D 0x6F 0x76 0x69 0x6E 0x67 0x20 0x61    // 'moving a' \n\t0x74 0x20 0x61 0x62 0x6F 0x75 0x74 0x20    // 't about ' \n\t0x74 0x68 0x65 0x20 0x73 0x61 0x6D 0x65    // 'the same' \n\t0x20 0x74 0x69 0x6D 0x65 0x20 0x74 0x68    // ' time th' \n\t0x65 0x79 0x20 0x73 0x74 0x61 0x72 0x74    // 'ey start' \n\t0x20 0x73 0x70 0x65 0x61 0x6B 0x69 0x6E    // ' speakin' \n\t0x67 0x2E                                  // 'g.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpc1Project03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"I created the first part of\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"I created the first part of\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobProject 0x0 kidPlayProjectSounds 0x140 0xF0 0x57415645 kwav1Project03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpc1Project03\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xAA 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xAB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xAA 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xAA 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0xAA 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x20 0x63 0x72 0x65 0x61    // '??I crea' \n\t0x74 0x65 0x64 0x20 0x74 0x68 0x65 0x20    // 'ted the ' \n\t0x66 0x69 0x72 0x73 0x74 0x20 0x70 0x61    // 'first pa' \n\t0x72 0x74 0x20 0x6F 0x66 0x20 0x74 0x68    // 'rt of th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'e movie ' \n\t0x66 0x6F 0x72 0x20 0x79 0x6F 0x75 0x2E    // 'for you.' \n\t0x20 0x20 0x47 0x72 0x65 0x67 0x6F 0x72    // '  Gregor' \n\t0x79 0x20 0x6A 0x75 0x73 0x74 0x20 0x73    // 'y just s' \n\t0x61 0x69 0x64 0x2C 0x20 0x93 0x49 0x92    // 'aid, I' \n\t0x6C 0x6C 0x20 0x74 0x72 0x61 0x64 0x65    // 'll trade' \n\t0x20 0x61 0x20 0x6D 0x61 0x67 0x69 0x63    // ' a magic' \n\t0x20 0x74 0x72 0x69 0x63 0x6B 0x20 0x66    // ' trick f' \n\t0x6F 0x72 0x20 0x61 0x20 0x76 0x61 0x73    // 'or a vas' \n\t0x65 0x2E 0x94 0x0D 0x0A 0x4E 0x6F 0x77    // 'e.??Now' \n\t0x20 0x69 0x74 0x92 0x73 0x20 0x79 0x6F    // ' its yo' \n\t0x75 0x72 0x20 0x74 0x75 0x72 0x6E 0x20    // 'ur turn ' \n\t0x74 0x6F 0x20 0x61 0x64 0x64 0x20 0x43    // 'to add C' \n\t0x6C 0x61 0x75 0x64 0x69 0x61 0x92 0x73    // 'laudias' \n\t0x20 0x54 0x61 0x6C 0x6B 0x20 0x61 0x63    // ' Talk ac' \n\t0x74 0x69 0x6F 0x6E 0x20 0x61 0x6E 0x64    // 'tion and' \n\t0x20 0x64 0x69 0x61 0x6C 0x6F 0x67 0x75    // ' dialogu' \n\t0x65 0x2E 0x0D 0x0A 0x01                   // 'e.???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpc1Project04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"CO--To find the talk action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"CO--To find the talk action\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsActionBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc1Project04\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8B 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x66 0x69 0x6E    // '??To fin' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x54 0x61    // 'd the Ta' \n\t0x6C 0x6B 0x20 0x61 0x63 0x74 0x69 0x6F    // 'lk actio' \n\t0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'n, click' \n\t0x20 0x41 0x63 0x74 0x69 0x6F 0x6E 0x73    // ' Actions' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpc1Project05\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO--Click Claudia.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO--Click Claudia.\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav1Project05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_31=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project05\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_31=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4E 0x00 0x00 0x00    // '????N???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_31=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_31=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x6C 0x61 0x75 0x64 0x69 0x61 0x2E    // 'Claudia.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpc1Project06\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--Click Talk\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--Click Talk\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav1Project06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_20=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project06\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_20=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7D 0x00 0x00 0x00    // '????}???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_20=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_20=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x54 0x61 0x6C 0x6B    // 'the Talk' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x2E    // ' action.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpc1Project07\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO--Click OK\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO--Click OK\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidBrowserOk kidPlayProjectSounds 0x17 0xFFFFFFCE 0x57415645 kwav1Project07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project07\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidBrowserOk\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x37 0x00 0x00 0x00    // '????7???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x09 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x4F 0x4B 0x2E                             // 'OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpc1Project08\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"CO--I don't know\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"CO--I don't know\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav1Project08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project08\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8F 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x78 0x00 0x00 0x01    // '????x???' \n\t0x01 0x00 0x00 0x00 0xB3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA7 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xAB 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x6C 0x61 0x75 0x64 0x69 0x61 0x2E    // 'Claudia.' \n\t0x20 0x20 0x54 0x68 0x65 0x6E 0x20 0x68    // '  Then h' \n\t0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E    // 'old down' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x62 0x75 0x74 0x74 0x6F    // 'se butto' \n\t0x6E 0x20 0x66 0x6F 0x72 0x20 0x61 0x73    // 'n for as' \n\t0x20 0x6C 0x6F 0x6E 0x67 0x20 0x61 0x73    // ' long as' \n\t0x20 0x69 0x74 0x20 0x74 0x61 0x6B 0x65    // ' it take' \n\t0x73 0x20 0x43 0x6C 0x61 0x75 0x64 0x69    // 's Claudi' \n\t0x61 0x92 0x73 0x20 0x61 0x72 0x6D 0x73    // 'as arms' \n\t0x20 0x74 0x6F 0x20 0x6D 0x6F 0x76 0x65    // ' to move' \n\t0x20 0x61 0x6E 0x64 0x20 0x65 0x6E 0x64    // ' and end' \n\t0x20 0x75 0x70 0x20 0x62 0x79 0x20 0x68    // ' up by h' \n\t0x65 0x72 0x20 0x73 0x69 0x64 0x65 0x2E    // 'er side.' \n\t0x0D 0x0A 0x57 0x68 0x65 0x6E 0x20 0x79    // '??When y' \n\t0x6F 0x75 0x92 0x72 0x65 0x20 0x72 0x65    // 'oure re' \n\t0x61 0x64 0x79 0x20 0x74 0x6F 0x20 0x70    // 'ady to p' \n\t0x6C 0x61 0x79 0x20 0x74 0x68 0x65 0x20    // 'lay the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20 0x63    // 'movie, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x50 0x6C 0x61 0x79 0x20 0x62 0x75    // ' Play bu' \n\t0x74 0x74 0x6F 0x6E 0x2E                   // 'tton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= ktpc1Project09\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO--Until Claudia moves hands\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO--Until Claudia moves hands\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameRW kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project09\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameRW\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewind __HELP_SYMBOL( STN \"mbmpRewind\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0xFC 0x00 0x00 0x1A 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xAC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x9D 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xAB 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6E 0x00 0x00 0x82    // '????n??' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x50 0x72 0x65 0x76    // 'the Prev' \n\t0x69 0x6F 0x75 0x73 0x20 0x62 0x75 0x74    // 'ious but' \n\t0x74 0x6F 0x6E 0x2D 0x01 0x20 0x75 0x6E    // 'ton-? un' \n\t0x74 0x69 0x6C 0x20 0x79 0x6F 0x75 0x20    // 'til you ' \n\t0x72 0x65 0x77 0x69 0x6E 0x64 0x20 0x79    // 'rewind y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'e to the' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x77    // ' frame w' \n\t0x68 0x65 0x72 0x65 0x20 0x43 0x6C 0x61    // 'here Cla' \n\t0x75 0x64 0x69 0x61 0x20 0x73 0x74 0x61    // 'udia sta' \n\t0x72 0x74 0x73 0x20 0x74 0x6F 0x20 0x6D    // 'rts to m' \n\t0x6F 0x76 0x65 0x20 0x68 0x65 0x72 0x20    // 'ove her ' \n\t0x68 0x61 0x6E 0x64 0x73 0x2E 0x0D 0x0A    // 'hands.??' \n\t0x57 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'When you' \n\t0x92 0x72 0x65 0x20 0x72 0x65 0x61 0x64    // 're read' \n\t0x79 0x20 0x66 0x6F 0x72 0x20 0x74 0x68    // 'y for th' \n\t0x65 0x20 0x6E 0x65 0x78 0x74 0x20 0x73    // 'e next s' \n\t0x74 0x65 0x70 0x2C 0x20 0x63 0x6C 0x69    // 'tep, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x50    // 'ck the P' \n\t0x72 0x6F 0x6A 0x65 0x63 0x74 0x20 0x47    // 'roject G' \n\t0x61 0x64 0x67 0x65 0x74 0x2E              // 'adget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= ktpc1Project0A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO--Click Speech\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO--Click Speech\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobProject kidGadget kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_25=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpc1Project0A\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadget\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_25=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x98 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_25=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x03    // '????9???' \n\t0x0B 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_25=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x65 0x6D 0x62    // '??Rememb' \n\t0x65 0x72 0x2C 0x20 0x77 0x68 0x65 0x6E    // 'er, when' \n\t0x20 0x79 0x6F 0x75 0x92 0x72 0x65 0x20    // ' youre ' \n\t0x72 0x65 0x61 0x64 0x79 0x20 0x66 0x6F    // 'ready fo' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'r the ne' \n\t0x78 0x74 0x20 0x73 0x74 0x65 0x70 0x2C    // 'xt step,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x50 0x72 0x6F 0x6A 0x65    // 'he Proje' \n\t0x63 0x74 0x20 0x47 0x61 0x64 0x67 0x65    // 'ct Gadge' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= ktpc1Project0B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO--To see steps Claudia\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO--To see steps Claudia\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_17=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc1Project0B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_17=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_17=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x41 0x00 0x00 0x01    // '????A???' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x03    // '????6???' \n\t0x0B 0x00 0x00 0xFD 0x39 0x00 0x00 0x03    // '???9???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_17=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ps for a' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x43 0x6C    // 'dding Cl' \n\t0x61 0x75 0x64 0x69 0x61 0x92 0x73 0x20    // 'audias ' \n\t0x6C 0x69 0x6E 0x65 0x2C 0x20 0x63 0x6C    // 'line, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x48 0x6F 0x77 0x20 0x62 0x75 0x74 0x74    // 'How butt' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= ktpc1Project0C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"Why--The talk action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"Why--The talk action\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav1Project0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc1Project0C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav1Project0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x7C 0x00 0x00 0x01    // '????|???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x61 0x75 0x64 0x69    // '??Claudi' \n\t0x61 0x27 0x73 0x20 0x54 0x61 0x6C 0x6B    // 'a's Talk' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x20    // ' action ' \n\t0x70 0x75 0x6C 0x6C 0x73 0x20 0x79 0x6F    // 'pulls yo' \n\t0x75 0x20 0x69 0x6E 0x20 0x61 0x6E 0x64    // 'u in and' \n\t0x20 0x66 0x6F 0x63 0x75 0x73 0x65 0x73    // ' focuses' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x61 0x74    // ' your at' \n\t0x74 0x65 0x6E 0x74 0x69 0x6F 0x6E 0x20    // 'tention ' \n\t0x6F 0x6E 0x20 0x43 0x6C 0x61 0x75 0x64    // 'on Claud' \n\t0x69 0x61 0x2E 0x20 0x20 0x4E 0x6F 0x77    // 'ia.  Now' \n\t0x20 0x77 0x65 0x20 0x6E 0x65 0x65 0x64    // ' we need' \n\t0x20 0x74 0x6F 0x20 0x61 0x64 0x64 0x20    // ' to add ' \n\t0x74 0x68 0x65 0x20 0x6C 0x69 0x6E 0x65    // 'the line' \n\t0x20 0x43 0x6C 0x61 0x75 0x64 0x69 0x61    // ' Claudia' \n\t0x20 0x77 0x61 0x6E 0x74 0x73 0x20 0x74    // ' wants t' \n\t0x6F 0x20 0x73 0x61 0x79 0x2E              // 'o say.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= ktpc1Project0D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO--To find Claudia's line\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO--To find Claudia's line\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSoundsCover kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project0D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc1Project0D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSoundsCover\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project0D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7E 0x00 0x00 0x00    // '????~???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x66 0x69 0x6E    // '??To fin' \n\t0x64 0x20 0x43 0x6C 0x61 0x75 0x64 0x69    // 'd Claudi' \n\t0x61 0x92 0x73 0x20 0x6C 0x69 0x6E 0x65    // 'as line' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x53 0x6F 0x75 0x6E 0x64 0x73 0x2E         // 'Sounds.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= ktpc1Project0E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO--Click Speech\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO--Click Speech\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSoundsMicBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project0E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc1Project0E\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSoundsMicBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project0E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4C 0x00 0x00 0x00    // '????L???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x53 0x70 0x65 0x65 0x63 0x68 0x2E         // 'Speech.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= ktpc1Project0F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO--Click Oh I don't know\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO--Click Oh I don't know\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav1Project0F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project0F\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project0F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x94 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x93 0x4F 0x68 0x2C 0x20 0x49 0x20 0x64    // 'Oh, I d' \n\t0x6F 0x6E 0x92 0x74 0x20 0x6B 0x6E 0x6F    // 'ont kno' \n\t0x77 0x2E 0x94 0x20 0x20 0x54 0x68 0x65    // 'w.  The' \n\t0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // 'n click ' \n\t0x4F 0x4B 0x2E                             // 'OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= ktpc1Project10\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO--Click Claudia.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO--Click Claudia.\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav1Project10\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_30=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project10\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project10\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_30=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4E 0x00 0x00 0x00    // '????N???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_30=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_30=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x6C 0x61 0x75 0x64 0x69 0x61 0x2E    // 'Claudia.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= ktpc1Project11\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO--To play Claudia's line\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO--To play Claudia's line\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project11\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpc1Project11\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project11\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6E 0x00 0x00 0x01    // '????n???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x03    // '????\"???' \n\t0x0B 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x03    // '????_???' \n\t0x0B 0x00 0x00 0xFD 0x6D 0x00 0x00 0x03    // '???m???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x30 0x00 0x00 0x82    // '????0??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x6C 0x61    // '??To pla' \n\t0x79 0x20 0x43 0x6C 0x61 0x75 0x64 0x69    // 'y Claudi' \n\t0x61 0x92 0x73 0x20 0x6C 0x69 0x6E 0x65    // 'as line' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x50 0x6C 0x61 0x79    // 'the Play' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E    // ' button.' \n\t0x0D 0x0A 0x57 0x68 0x65 0x6E 0x20 0x79    // '??When y' \n\t0x6F 0x75 0x92 0x72 0x65 0x20 0x72 0x65    // 'oure re' \n\t0x61 0x64 0x79 0x20 0x66 0x6F 0x72 0x20    // 'ady for ' \n\t0x74 0x68 0x65 0x20 0x6E 0x65 0x78 0x74    // 'the next' \n\t0x20 0x73 0x74 0x65 0x70 0x2C 0x20 0x63    // ' step, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x50 0x72 0x6F 0x6A 0x65 0x63 0x74    // ' Project' \n\t0x20 0x47 0x61 0x64 0x67 0x65 0x74 0x2E    // ' Gadget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= ktpc1Project12\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"CO--To see the steps for\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"CO--To see the steps for\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project12\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc1Project12\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project12\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x01    // '????E???' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x03    // '????:???' \n\t0x0B 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x63    // 'ps for c' \n\t0x68 0x61 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'hanging ' \n\t0x74 0x68 0x65 0x20 0x63 0x61 0x6D 0x65    // 'the came' \n\t0x72 0x61 0x20 0x61 0x6E 0x67 0x6C 0x65    // 'ra angle' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x48 0x6F 0x77 0x20    // 'the How ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E         // 'button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= ktpc1Project13\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"Why--Conversations are \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"Why--Conversations are \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav1Project13\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc1Project13\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav1Project13\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x2E 0x01 0x00 0x00    // '????.???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xE8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x6E 0x76 0x65 0x72    // '??Conver' \n\t0x73 0x61 0x74 0x69 0x6F 0x6E 0x73 0x20    // 'sations ' \n\t0x61 0x72 0x65 0x20 0x66 0x69 0x6C 0x6D    // 'are film' \n\t0x65 0x64 0x20 0x77 0x69 0x74 0x68 0x20    // 'ed with ' \n\t0x93 0x6F 0x76 0x65 0x72 0x2D 0x74 0x68    // 'over-th' \n\t0x65 0x2D 0x73 0x68 0x6F 0x75 0x6C 0x64    // 'e-should' \n\t0x65 0x72 0x94 0x20 0x73 0x68 0x6F 0x74    // 'er shot' \n\t0x73 0x2E 0x20 0x20 0x50 0x6F 0x73 0x69    // 's.  Posi' \n\t0x74 0x69 0x6F 0x6E 0x20 0x61 0x63 0x74    // 'tion act' \n\t0x6F 0x72 0x73 0x20 0x73 0x6F 0x20 0x74    // 'ors so t' \n\t0x68 0x61 0x74 0x20 0x77 0x68 0x65 0x6E    // 'hat when' \n\t0x20 0x79 0x6F 0x75 0x20 0x63 0x68 0x61    // ' you cha' \n\t0x6E 0x67 0x65 0x20 0x63 0x61 0x6D 0x65    // 'nge came' \n\t0x72 0x61 0x20 0x61 0x6E 0x67 0x6C 0x65    // 'ra angle' \n\t0x73 0x2C 0x20 0x79 0x6F 0x75 0x72 0x20    // 's, your ' \n\t0x61 0x75 0x64 0x69 0x65 0x6E 0x63 0x65    // 'audience' \n\t0x20 0x69 0x73 0x20 0x6C 0x6F 0x6F 0x6B    // ' is look' \n\t0x69 0x6E 0x67 0x20 0x6F 0x76 0x65 0x72    // 'ing over' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x68 0x6F    // ' the sho' \n\t0x75 0x6C 0x64 0x65 0x72 0x20 0x6F 0x66    // 'ulder of' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x20 0x77 0x68 0x6F 0x20 0x69    // 'or who i' \n\t0x73 0x20 0x6C 0x69 0x73 0x74 0x65 0x6E    // 's listen' \n\t0x69 0x6E 0x67 0x20 0x61 0x6E 0x64 0x20    // 'ing and ' \n\t0x69 0x6E 0x74 0x6F 0x20 0x74 0x68 0x65    // 'into the' \n\t0x20 0x66 0x61 0x63 0x65 0x20 0x6F 0x66    // ' face of' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x20 0x77 0x68 0x6F 0x20 0x69    // 'or who i' \n\t0x73 0x20 0x74 0x61 0x6C 0x6B 0x69 0x6E    // 's talkin' \n\t0x67 0x2E                                  // 'g.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= ktpc1Project14\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"CO--To find camera angle\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"CO--To find camera angle\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobProject kidSettingsCover kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project14\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpc1Project14\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSettingsCover\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project14\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc1Project15 __HELP_SYMBOL( STN \"ktpc1Project15\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x03    // '????$???' \n\t0x0B 0x00 0x00 0xFD 0x2A 0x00 0x00 0x03    // '???*???' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x40    // '????-??@' \n\t0x03 0x00 0x00 0x00 0x48 0x00 0x00 0x40    // '????H??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2D 0x00 0x00 0x82    // '????-??' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0xC0    // '????-??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x66 0x69 0x6E    // '??To fin' \n\t0x64 0x20 0x63 0x61 0x6D 0x65 0x72 0x61    // 'd camera' \n\t0x20 0x61 0x6E 0x67 0x6C 0x65 0x20 0x63    // ' angle c' \n\t0x68 0x6F 0x69 0x63 0x65 0x73 0x2C 0x20    // 'hoices, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x53 0x63    // 'click Sc' \n\t0x65 0x6E 0x65 0x73 0x2E 0x0D 0x0A 0x01    // 'enes.???' \n\t0x20 0x20 0x53 0x63 0x65 0x6E 0x65 0x73    // '  Scenes' \n\t0x20 0x61 0x6E 0x64 0x20 0x63 0x61 0x6D    // ' and cam' \n\t0x65 0x72 0x61 0x20 0x61 0x6E 0x67 0x6C    // 'era angl' \n\t0x65 0x73                                  // 'es' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= ktpc1Project15\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"Why--A scene is\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"Why--A scene is\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav1Project15\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc1Project15\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav1Project15\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1D 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x63 0x65    // '???  Sce' \n\t0x6E 0x65 0x73 0x20 0x61 0x6E 0x64 0x20    // 'nes and ' \n\t0x63 0x61 0x6D 0x65 0x72 0x61 0x20 0x61    // 'camera a' \n\t0x6E 0x67 0x6C 0x65 0x73 0x0D 0x0A 0x41    // 'ngles??A' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x20 0x69    // ' scene i' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x6F 0x76    // 's the ov' \n\t0x65 0x72 0x61 0x6C 0x6C 0x20 0x65 0x6E    // 'erall en' \n\t0x76 0x69 0x72 0x6F 0x6E 0x6D 0x65 0x6E    // 'vironmen' \n\t0x74 0x20 0x69 0x6E 0x20 0x77 0x68 0x69    // 't in whi' \n\t0x63 0x68 0x20 0x74 0x68 0x65 0x20 0x63    // 'ch the c' \n\t0x61 0x6D 0x65 0x72 0x61 0x20 0x61 0x6E    // 'amera an' \n\t0x67 0x6C 0x65 0x73 0x20 0x61 0x72 0x65    // 'gles are' \n\t0x20 0x73 0x68 0x6F 0x74 0x2E 0x20 0x20    // ' shot.  ' \n\t0x54 0x68 0x65 0x20 0x76 0x61 0x73 0x65    // 'The vase' \n\t0x20 0x62 0x6F 0x6F 0x74 0x68 0x20 0x69    // ' booth i' \n\t0x73 0x20 0x61 0x20 0x63 0x61 0x6D 0x65    // 's a came' \n\t0x72 0x61 0x20 0x61 0x6E 0x67 0x6C 0x65    // 'ra angle' \n\t0x20 0x77 0x69 0x74 0x68 0x69 0x6E 0x20    // ' within ' \n\t0x6F 0x6E 0x65 0x20 0x6F 0x66 0x20 0x74    // 'one of t' \n\t0x68 0x65 0x20 0x6D 0x61 0x72 0x6B 0x65    // 'he marke' \n\t0x74 0x20 0x73 0x63 0x65 0x6E 0x65 0x73    // 't scenes' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= ktpc1Project16\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO--Click Camera Angles\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO--Click Camera Angles\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSettingsCameras kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project16\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc1Project16\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSettingsCameras\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project16\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x78 0x00 0x00 0x00    // '????x???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x61 0x6D 0x65 0x72 0x61 0x20 0x41    // 'Camera A' \n\t0x6E 0x67 0x6C 0x65 0x73 0x2E              // 'ngles.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= ktpc1Project17\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"CO--To see Gregory's face\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"CO--To see Gregory's face\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x43 0x0 0x57415645 kwav1Project17\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project17\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project17\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8B 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2F 0x00 0x00 0x01    // '????/???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x47 0x72 0x65 0x67 0x6F 0x72 0x79    // ' Gregory' \n\t0x92 0x73 0x20 0x66 0x61 0x63 0x65 0x2C    // 's face,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x69 0x73 0x20 0x63 0x61 0x6D 0x65    // 'his came' \n\t0x72 0x61 0x20 0x61 0x6E 0x67 0x6C 0x65    // 'ra angle' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_18= ktpc1Project18\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"CO--To continue Gregory's\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"CO--To continue Gregory's\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsCover kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project18\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc1Project18\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsCover\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project18\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x01 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x03    // '????)???' \n\t0x0B 0x00 0x00 0xFD 0x37 0x00 0x00 0x03    // '???7???' \n\t0x0F 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x6F 0x6E    // '??To con' \n\t0x74 0x69 0x6E 0x75 0x65 0x20 0x47 0x72    // 'tinue Gr' \n\t0x65 0x67 0x6F 0x72 0x79 0x92 0x73 0x20    // 'egorys ' \n\t0x54 0x61 0x6C 0x6B 0x20 0x61 0x63 0x74    // 'Talk act' \n\t0x69 0x6F 0x6E 0x2C 0x20 0x63 0x6C 0x69    // 'ion, cli' \n\t0x63 0x6B 0x20 0x41 0x63 0x74 0x6F 0x72    // 'ck Actor' \n\t0x73 0x20 0x26 0x20 0x50 0x72 0x6F 0x70    // 's & Prop' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_19= ktpc1Project19\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO--Click Resume Last\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO--Click Resume Last\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsContinue kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project19\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_23=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc1Project19\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsContinue\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project19\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_23=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc1Project1A __HELP_SYMBOL( STN \"ktpc1Project1A\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_23=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x18 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x35 0x00 0x00 0x40    // '????5??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1B 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_23=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x52 0x65 0x73 0x75 0x6D 0x65 0x20 0x4C    // 'Resume L' \n\t0x61 0x73 0x74 0x20 0x41 0x63 0x74 0x69    // 'ast Acti' \n\t0x6F 0x6E 0x2E 0x0D 0x0A 0x01 0x20 0x52    // 'on.??? R' \n\t0x65 0x73 0x75 0x6D 0x69 0x6E 0x67 0x20    // 'esuming ' \n\t0x74 0x68 0x65 0x20 0x6C 0x61 0x73 0x74    // 'the last' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E         // ' action' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= ktpc1Project1A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"Why--Continue Same Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"Why--Continue Same Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav1Project1A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc1Project1A\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav1Project1A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\nAG(4)\n\tFREE\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x90 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1C 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x52 0x65 0x73 0x75    // '??? Resu' \n\t0x6D 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ming the' \n\t0x20 0x6C 0x61 0x73 0x74 0x20 0x61 0x63    // ' last ac' \n\t0x74 0x69 0x6F 0x6E 0x0D 0x0A 0x55 0x73    // 'tion??Us' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x52 0x65    // 'e the Re' \n\t0x73 0x75 0x6D 0x65 0x20 0x4C 0x61 0x73    // 'sume Las' \n\t0x74 0x20 0x41 0x63 0x74 0x69 0x6F 0x6E    // 't Action' \n\t0x20 0x74 0x6F 0x6F 0x6C 0x20 0x77 0x68    // ' tool wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x20 0x77    // 'en you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ant to c' \n\t0x6F 0x6E 0x74 0x69 0x6E 0x75 0x65 0x20    // 'ontinue ' \n\t0x72 0x65 0x63 0x6F 0x72 0x64 0x69 0x6E    // 'recordin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x6C 0x61    // 'g the la' \n\t0x73 0x74 0x20 0x61 0x63 0x74 0x69 0x6F    // 'st actio' \n\t0x6E 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'n an act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x75 0x73 0x65    // 'word use' \n\t0x64 0x2E                                  // 'd.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1B= ktpc1Project1B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"CO--I'll show you my best\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"CO--I'll show you my best\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav1Project1B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project1B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project1B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA7 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xAC 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x78 0x00 0x00 0x82    // '????x??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x47 0x72 0x65 0x67 0x6F 0x72 0x79 0x2E    // 'Gregory.' \n\t0x20 0x20 0x54 0x68 0x65 0x6E 0x20 0x68    // '  Then h' \n\t0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E    // 'old down' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x62 0x75 0x74 0x74 0x6F    // 'se butto' \n\t0x6E 0x20 0x66 0x6F 0x72 0x20 0x61 0x73    // 'n for as' \n\t0x20 0x6C 0x6F 0x6E 0x67 0x20 0x61 0x73    // ' long as' \n\t0x20 0x69 0x74 0x20 0x74 0x61 0x6B 0x65    // ' it take' \n\t0x73 0x20 0x47 0x72 0x65 0x67 0x6F 0x72    // 's Gregor' \n\t0x79 0x27 0x73 0x20 0x61 0x72 0x6D 0x73    // 'y's arms' \n\t0x20 0x74 0x6F 0x20 0x6D 0x6F 0x76 0x65    // ' to move' \n\t0x20 0x61 0x6E 0x64 0x20 0x65 0x6E 0x64    // ' and end' \n\t0x20 0x75 0x70 0x20 0x62 0x79 0x20 0x68    // ' up by h' \n\t0x69 0x73 0x20 0x73 0x69 0x64 0x65 0x2E    // 'is side.' \n\t0x0D 0x0A 0x57 0x68 0x65 0x6E 0x20 0x79    // '??When y' \n\t0x6F 0x75 0x92 0x72 0x65 0x20 0x72 0x65    // 'oure re' \n\t0x61 0x64 0x79 0x20 0x74 0x6F 0x20 0x70    // 'ady to p' \n\t0x6C 0x61 0x79 0x20 0x74 0x68 0x65 0x20    // 'lay the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20 0x63    // 'movie, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x50 0x6C 0x61 0x79 0x20 0x62 0x75    // ' Play bu' \n\t0x74 0x74 0x6F 0x6E 0x2E                   // 'tton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= ktpc1Project1C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"CO--Click Gregory moves hands\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"CO--Click Gregory moves hands\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameRW kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project1C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_28=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project1C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameRW\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project1C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_28=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewind __HELP_SYMBOL( STN \"mbmpRewind\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_28=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0xFC 0x00 0x00 0x1A 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xAB 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x9C 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xAA 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6D 0x00 0x00 0x82    // '????m??' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_28=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x50 0x72 0x65 0x76    // 'the Prev' \n\t0x69 0x6F 0x75 0x73 0x20 0x62 0x75 0x74    // 'ious but' \n\t0x74 0x6F 0x6E 0x2D 0x01 0x20 0x75 0x6E    // 'ton-? un' \n\t0x74 0x69 0x6C 0x20 0x79 0x6F 0x75 0x20    // 'til you ' \n\t0x72 0x65 0x77 0x69 0x6E 0x64 0x20 0x74    // 'rewind t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'he movie' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x66 0x72 0x61 0x6D 0x65 0x20 0x77 0x68    // 'frame wh' \n\t0x65 0x72 0x65 0x20 0x47 0x72 0x65 0x67    // 'ere Greg' \n\t0x6F 0x72 0x79 0x20 0x73 0x74 0x61 0x72    // 'ory star' \n\t0x74 0x73 0x20 0x74 0x6F 0x20 0x6D 0x6F    // 'ts to mo' \n\t0x76 0x65 0x20 0x68 0x69 0x73 0x20 0x68    // 've his h' \n\t0x61 0x6E 0x64 0x73 0x2E 0x0D 0x0A 0x57    // 'ands.??W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x92    // 'hen you' \n\t0x72 0x65 0x20 0x72 0x65 0x61 0x64 0x79    // 're ready' \n\t0x20 0x66 0x6F 0x72 0x20 0x74 0x68 0x65    // ' for the' \n\t0x20 0x6E 0x65 0x78 0x74 0x20 0x73 0x74    // ' next st' \n\t0x65 0x70 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ep, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x50 0x72    // 'k the Pr' \n\t0x6F 0x6A 0x65 0x63 0x74 0x20 0x47 0x61    // 'oject Ga' \n\t0x64 0x67 0x65 0x74 0x2E                   // 'dget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1D= ktpc1Project1D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"To see the steps for adding\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"To see the steps for adding\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project1D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc1Project1D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project1D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x41 0x00 0x00 0x01    // '????A???' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x03    // '????6???' \n\t0x0B 0x00 0x00 0xFD 0x39 0x00 0x00 0x03    // '???9???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ps for a' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x47 0x72    // 'dding Gr' \n\t0x65 0x67 0x6F 0x72 0x79 0x92 0x73 0x20    // 'egorys ' \n\t0x6C 0x69 0x6E 0x65 0x2C 0x20 0x63 0x6C    // 'line, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x48 0x6F 0x77 0x20 0x62 0x75 0x74 0x74    // 'How butt' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1E= ktpc1Project1E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"Why--Claudia's previous\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"Why--Claudia's previous\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav1Project1E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc1Project1E\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav1Project1E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB5 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x61 0x75 0x64 0x69    // '??Claudi' \n\t0x61 0x27 0x73 0x20 0x70 0x72 0x65 0x76    // 'a's prev' \n\t0x69 0x6F 0x75 0x73 0x20 0x73 0x65 0x6E    // 'ious sen' \n\t0x74 0x65 0x6E 0x63 0x65 0x20 0x77 0x61    // 'tence wa' \n\t0x73 0x20 0x73 0x68 0x6F 0x72 0x74 0x20    // 's short ' \n\t0x73 0x6F 0x20 0x77 0x65 0x20 0x6B 0x65    // 'so we ke' \n\t0x70 0x74 0x20 0x74 0x68 0x65 0x20 0x63    // 'pt the c' \n\t0x61 0x6D 0x65 0x72 0x61 0x20 0x6F 0x6E    // 'amera on' \n\t0x20 0x43 0x6C 0x61 0x75 0x64 0x69 0x61    // ' Claudia' \n\t0x2E 0x20 0x20 0x42 0x75 0x74 0x20 0x77    // '.  But w' \n\t0x68 0x65 0x6E 0x20 0x61 0x20 0x73 0x65    // 'hen a se' \n\t0x6E 0x74 0x65 0x6E 0x63 0x65 0x20 0x69    // 'ntence i' \n\t0x73 0x20 0x6C 0x6F 0x6E 0x67 0x2C 0x20    // 's long, ' \n\t0x6C 0x69 0x6B 0x65 0x20 0x47 0x72 0x65    // 'like Gre' \n\t0x67 0x6F 0x72 0x79 0x27 0x73 0x20 0x6E    // 'gory's n' \n\t0x65 0x78 0x74 0x20 0x6C 0x69 0x6E 0x65    // 'ext line' \n\t0x2C 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // ', change' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x61 0x6D    // ' the cam' \n\t0x65 0x72 0x61 0x20 0x61 0x6E 0x67 0x6C    // 'era angl' \n\t0x65 0x20 0x6E 0x65 0x61 0x72 0x20 0x74    // 'e near t' \n\t0x68 0x65 0x20 0x65 0x6E 0x64 0x20 0x6F    // 'he end o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x73 0x65    // 'f the se' \n\t0x6E 0x74 0x65 0x6E 0x63 0x65 0x2E         // 'ntence.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1F= ktpc1Project1F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"CO--To find Gregory's line\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"CO--To find Gregory's line\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSoundsCover kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project1F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_24=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc1Project1F\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSoundsCover\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project1F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_24=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x82 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_24=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_24=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x66 0x69 0x6E    // '??To fin' \n\t0x64 0x20 0x47 0x72 0x65 0x67 0x6F 0x72    // 'd Gregor' \n\t0x79 0x92 0x73 0x20 0x6C 0x69 0x6E 0x65    // 'ys line' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x53 0x6F 0x75 0x6E 0x64 0x73 0x2E         // 'Sounds.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_20= ktpc1Project20\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"Congratulations!  You're done.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"Congratulations!  You're done.\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 kidPlayProjectSounds 0x258 0x1C2 0x57415645 kwav1Project20\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_21=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc1Project20\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project20\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_21=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9B 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\nAG(4)\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x04 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_21=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA6 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x02 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x40    // '????U??@' \n\t0x03 0x00 0x00 0x00 0x6F 0x00 0x00 0x40    // '????o??@' \n\t0x04 0x00 0x00 0x00 0x8E 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xA6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x80    // '????@??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x90 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0xC0    // '????@??' \n\t0x01 0x00 0x00 0x00 0x55 0x00 0x00 0xC0    // '????U??' \n\t0x01 0x00 0x00 0x00 0x6F 0x00 0x00 0xC0    // '????o??' \n\t0x01 0x00 0x00 0x00 0x90 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_21=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x6E 0x67 0x72 0x61    // '??Congra' \n\t0x74 0x75 0x6C 0x61 0x74 0x69 0x6F 0x6E    // 'tulation' \n\t0x73 0x21 0x20 0x20 0x59 0x6F 0x75 0x27    // 's!  You'' \n\t0x72 0x65 0x20 0x64 0x6F 0x6E 0x65 0x21    // 're done!' \n\t0x20 0x20 0x57 0x68 0x61 0x74 0x20 0x77    // '  What w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x79 0x6F 0x75    // 'ould you' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x74 0x6F    // ' like to' \n\t0x20 0x64 0x6F 0x20 0x6E 0x6F 0x77 0x3F    // ' do now?' \n\t0x0D 0x0A 0x01 0x09 0x57 0x6F 0x72 0x6B    // '????Work' \n\t0x20 0x6F 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' on your' \n\t0x20 0x6F 0x77 0x6E 0x3F 0x0D 0x0A 0x01    // ' own????' \n\t0x09 0x53 0x74 0x61 0x72 0x74 0x20 0x61    // '?Start a' \n\t0x6E 0x6F 0x74 0x68 0x65 0x72 0x20 0x70    // 'nother p' \n\t0x72 0x6F 0x6A 0x65 0x63 0x74 0x3F 0x0D    // 'roject??' \n\t0x0A 0x01 0x09 0x47 0x6F 0x20 0x62 0x61    // '???Go ba' \n\t0x63 0x6B 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ck to th' \n\t0x65 0x20 0x50 0x72 0x6F 0x6A 0x65 0x63    // 'e Projec' \n\t0x74 0x73 0x20 0x52 0x6F 0x6F 0x6D 0x3F    // 'ts Room?' \n\t0x0D 0x0A 0x01 0x09 0x51 0x75 0x69 0x74    // '????Quit' \n\t0x20 0x33 0x44 0x20 0x4D 0x6F 0x76 0x69    // ' 3D Movi' \n\t0x65 0x20 0x4D 0x61 0x6B 0x65 0x72 0x3F    // 'e Maker?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_21= ktpc1Project21\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"Tip:  Another movie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"Tip:  Another movie\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav1Project21\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc1Project21\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav1Project21\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6B 0x00 0x00 0x01    // '????k???' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x2E 0x00 0x00 0x03    // '???.???' \n\t0x0A 0x00 0x00 0xFD 0x30 0x00 0x00 0x03    // '???0???' \n\t0x0F 0x00 0x00 0xFD 0x6B 0x00 0x00 0x03    // '???k???' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x80    // '????0??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x30 0x00 0x00 0x82    // '????0??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x41 0x6E 0x6F    // '???  Ano' \n\t0x74 0x68 0x65 0x72 0x20 0x70 0x72 0x6F    // 'ther pro' \n\t0x6A 0x65 0x63 0x74 0x3F 0x0D 0x0A 0x54    // 'ject???T' \n\t0x6F 0x20 0x63 0x68 0x6F 0x6F 0x73 0x65    // 'o choose' \n\t0x20 0x61 0x6E 0x6F 0x74 0x68 0x65 0x72    // ' another' \n\t0x20 0x70 0x72 0x6F 0x6A 0x65 0x63 0x74    // ' project' \n\t0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69 0x63    // '???Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x61 0x72    // 'k the ar' \n\t0x72 0x6F 0x77 0x73 0x20 0x6F 0x6E 0x20    // 'rows on ' \n\t0x74 0x68 0x65 0x20 0x72 0x69 0x67 0x68    // 'the righ' \n\t0x74 0x20 0x73 0x69 0x64 0x65 0x20 0x6F    // 't side o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x50 0x72    // 'f the Pr' \n\t0x6F 0x6A 0x65 0x63 0x74 0x20 0x47 0x61    // 'oject Ga' \n\t0x64 0x67 0x65 0x74 0x2E                   // 'dget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_22= ktpc1Project22\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"CO--To see this movie 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"CO--To see this movie 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobProject kidGadgetPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project22\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpc1Project22\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project22\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x78 0x00 0x00 0x00    // '????x???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc1Project21 __HELP_SYMBOL( STN \"ktpc1Project21\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x01    // '????X???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x03    // '????8???' \n\t0x0B 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x40    // '????F??@' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x40    // '????X??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x46 0x00 0x00 0x82    // '????F??' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0xC0    // '????F??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x61 0x79    // ' the way' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x69 0x73 0x20 0x73 0x75    // 'ie is su' \n\t0x70 0x70 0x6F 0x73 0x65 0x64 0x20 0x74    // 'pposed t' \n\t0x6F 0x20 0x6C 0x6F 0x6F 0x6B 0x2C 0x20    // 'o look, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x50 0x6C 0x61 0x79 0x20 0x62    // 'e Play b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x2E 0x0D 0x0A    // 'utton.??' \n\t0x01 0x20 0x41 0x6E 0x6F 0x74 0x68 0x65    // '? Anothe' \n\t0x72 0x20 0x70 0x72 0x6F 0x6A 0x65 0x63    // 'r projec' \n\t0x74 0x3F                                  // 't?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_23= ktpc1Project23\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"CO--I'll show you my best 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"CO--I'll show you my best 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav1Project23\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_27=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project23\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project23\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_27=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x89 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_27=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_27=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x93 0x49 0x92 0x6C 0x6C 0x20 0x73 0x68    // 'Ill sh' \n\t0x6F 0x77 0x20 0x79 0x6F 0x75 0x2E 0x2E    // 'ow you..' \n\t0x2E 0x22 0x20 0x20 0x54 0x68 0x65 0x6E    // '.\"  Then' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x4F    // ' click O' \n\t0x4B 0x2E                                  // 'K.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_24= ktpc1Project24\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"CO--Now click Gregory\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"CO--Now click Gregory\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav1Project24\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project24\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project24\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x77 0x20 0x63 0x6C    // '??Now cl' \n\t0x69 0x63 0x6B 0x20 0x47 0x72 0x65 0x67    // 'ick Greg' \n\t0x6F 0x72 0x79 0x2E                        // 'ory.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_25= ktpc1Project25\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"CO--To play Gregory's line\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"CO--To play Gregory's line\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project25\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project25\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project25\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x88 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2E 0x00 0x00 0x01    // '????.???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x03    // '????\"???' \n\t0x0B 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x6C 0x61    // '??To pla' \n\t0x79 0x20 0x47 0x72 0x65 0x67 0x6F 0x72    // 'y Gregor' \n\t0x79 0x92 0x73 0x20 0x6C 0x69 0x6E 0x65    // 'ys line' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x50 0x6C 0x61 0x79    // 'the Play' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E    // ' button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_26= ktpc1Project26\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"CO--I'll show you\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"CO--I'll show you\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameRW kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project26\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project26\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameRW\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project26\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewind __HELP_SYMBOL( STN \"mbmpRewind\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0xFC 0x00 0x00 0x1A 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xA5 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xA4 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x67 0x00 0x00 0x82    // '????g??' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x50 0x72 0x65 0x76    // 'the Prev' \n\t0x69 0x6F 0x75 0x73 0x20 0x62 0x75 0x74    // 'ious but' \n\t0x74 0x6F 0x6E 0x2D 0x01 0x0D 0x0A 0x38    // 'ton-???8' \n\t0x20 0x74 0x69 0x6D 0x65 0x73 0x20 0x74    // ' times t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x66 0x72    // 'o the fr' \n\t0x61 0x6D 0x65 0x20 0x77 0x68 0x65 0x72    // 'ame wher' \n\t0x65 0x20 0x47 0x72 0x65 0x67 0x6F 0x72    // 'e Gregor' \n\t0x79 0x20 0x68 0x61 0x73 0x20 0x61 0x6C    // 'y has al' \n\t0x6D 0x6F 0x73 0x74 0x20 0x66 0x69 0x6E    // 'most fin' \n\t0x69 0x73 0x68 0x65 0x64 0x20 0x6D 0x6F    // 'ished mo' \n\t0x76 0x69 0x6E 0x67 0x20 0x68 0x69 0x73    // 'ving his' \n\t0x20 0x68 0x61 0x6E 0x64 0x73 0x2E 0x0D    // ' hands.?' \n\t0x0A 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // '?When yo' \n\t0x75 0x92 0x72 0x65 0x20 0x72 0x65 0x61    // 'ure rea' \n\t0x64 0x79 0x20 0x66 0x6F 0x72 0x20 0x74    // 'dy for t' \n\t0x68 0x65 0x20 0x6E 0x65 0x78 0x74 0x20    // 'he next ' \n\t0x73 0x74 0x65 0x70 0x2C 0x20 0x63 0x6C    // 'step, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x50 0x72 0x6F 0x6A 0x65 0x63 0x74 0x20    // 'Project ' \n\t0x47 0x61 0x64 0x67 0x65 0x74 0x2E         // 'Gadget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_27= ktpc1Project27\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"CO--To see camera angle\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"CO--To see camera angle\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project27\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_29=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc1Project27\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project27\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_29=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_29=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x01    // '????E???' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x03    // '????:???' \n\t0x0B 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_29=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x63    // 'ps for c' \n\t0x68 0x61 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'hanging ' \n\t0x74 0x68 0x65 0x20 0x63 0x61 0x6D 0x65    // 'the came' \n\t0x72 0x61 0x20 0x61 0x6E 0x67 0x6C 0x65    // 'ra angle' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x48 0x6F 0x77 0x20    // 'the How ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E         // 'button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_28= ktpc1Project28\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"Why--Change the camera\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"Why--Change the camera\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav1Project28\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc1Project28\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav1Project28\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x98 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x65    // '??Change' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x61 0x6D    // ' the cam' \n\t0x65 0x72 0x61 0x20 0x61 0x6E 0x67 0x6C    // 'era angl' \n\t0x65 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 'e at the' \n\t0x20 0x6C 0x65 0x61 0x73 0x74 0x20 0x6E    // ' least n' \n\t0x6F 0x74 0x69 0x63 0x65 0x61 0x62 0x6C    // 'oticeabl' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x2E    // 'e place.' \n\t0x20 0x20 0x49 0x74 0x92 0x73 0x20 0x61    // '  Its a' \n\t0x20 0x6D 0x61 0x74 0x74 0x65 0x72 0x20    // ' matter ' \n\t0x6F 0x66 0x20 0x74 0x69 0x6D 0x69 0x6E    // 'of timin' \n\t0x67 0x3A 0x20 0x20 0x63 0x68 0x61 0x6E    // 'g:  chan' \n\t0x67 0x65 0x20 0x74 0x68 0x65 0x20 0x63    // 'ge the c' \n\t0x61 0x6D 0x65 0x72 0x61 0x20 0x61 0x6E    // 'amera an' \n\t0x67 0x6C 0x65 0x20 0x6F 0x6E 0x20 0x61    // 'gle on a' \n\t0x20 0x6B 0x65 0x79 0x20 0x77 0x6F 0x72    // ' key wor' \n\t0x64 0x2C 0x20 0x61 0x6E 0x20 0x69 0x64    // 'd, an id' \n\t0x65 0x61 0x20 0x6F 0x72 0x20 0x65 0x76    // 'ea or ev' \n\t0x65 0x6E 0x20 0x61 0x20 0x68 0x61 0x6E    // 'en a han' \n\t0x64 0x20 0x67 0x65 0x73 0x74 0x75 0x72    // 'd gestur' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_29= ktpc1Project29\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"CO--To see Claudia's face\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"CO--To see Claudia's face\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x43 0x0 0x57415645 kwav1Project29\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project29\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project29\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8C 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2F 0x00 0x00 0x01    // '????/???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x43 0x6C 0x61 0x75 0x64 0x69 0x61    // ' Claudia' \n\t0x92 0x73 0x20 0x66 0x61 0x63 0x65 0x2C    // 's face,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x69 0x73 0x20 0x63 0x61 0x6D 0x65    // 'his came' \n\t0x72 0x61 0x20 0x61 0x6E 0x67 0x6C 0x65    // 'ra angle' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2A= ktpc1Project2A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"CO--Now click the \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"CO--Now click the \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project2A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_26=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project2A\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project2A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_26=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9F 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_26=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_26=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x77 0x20 0x63 0x6C    // '??Now cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x50 0x6C 0x61 0x79 0x20 0x62 0x75 0x74    // 'Play but' \n\t0x74 0x6F 0x6E 0x2E                        // 'ton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2B= ktpc1Project2B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"CO--To continue Claudia's\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"CO--To continue Claudia's\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsCover kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project2B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_32=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc1Project2B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsCover\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project2B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_32=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_32=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x03    // '????)???' \n\t0x0B 0x00 0x00 0xFD 0x37 0x00 0x00 0x03    // '???7???' \n\t0x0F 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_32=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x6F 0x6E    // '??To con' \n\t0x74 0x69 0x6E 0x75 0x65 0x20 0x43 0x6C    // 'tinue Cl' \n\t0x61 0x75 0x64 0x69 0x61 0x92 0x73 0x20    // 'audias ' \n\t0x54 0x61 0x6C 0x6B 0x20 0x61 0x63 0x74    // 'Talk act' \n\t0x69 0x6F 0x6E 0x2C 0x20 0x63 0x6C 0x69    // 'ion, cli' \n\t0x63 0x6B 0x20 0x41 0x63 0x74 0x6F 0x72    // 'ck Actor' \n\t0x73 0x20 0x26 0x20 0x50 0x72 0x6F 0x70    // 's & Prop' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2C= ktpc1Project2C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"CO--You've got a deal 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"CO--You've got a deal 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav1Project2C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project2C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project2C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8D 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAE 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA2 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xA6 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x78 0x00 0x00 0x82    // '????x??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x6C 0x61 0x75 0x64 0x69 0x61 0x2E    // 'Claudia.' \n\t0x20 0x20 0x54 0x68 0x65 0x6E 0x20 0x68    // '  Then h' \n\t0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E    // 'old down' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x62 0x75 0x74 0x74 0x6F    // 'se butto' \n\t0x6E 0x20 0x66 0x6F 0x72 0x20 0x61 0x73    // 'n for as' \n\t0x20 0x6C 0x6F 0x6E 0x67 0x20 0x61 0x73    // ' long as' \n\t0x20 0x69 0x74 0x20 0x74 0x61 0x6B 0x65    // ' it take' \n\t0x73 0x20 0x43 0x6C 0x61 0x75 0x64 0x69    // 's Claudi' \n\t0x61 0x27 0x73 0x20 0x61 0x72 0x6D 0x73    // 'a's arms' \n\t0x20 0x74 0x6F 0x20 0x6D 0x6F 0x76 0x65    // ' to move' \n\t0x20 0x61 0x6E 0x64 0x20 0x65 0x6E 0x64    // ' and end' \n\t0x20 0x75 0x70 0x20 0x62 0x79 0x20 0x68    // ' up by h' \n\t0x65 0x72 0x20 0x73 0x69 0x64 0x65 0x2E    // 'er side.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x77 0x68 0x61 0x74 0x20 0x79 0x6F    // ' what yo' \n\t0x75 0x27 0x76 0x65 0x20 0x64 0x6F 0x6E    // 'u've don' \n\t0x65 0x20 0x73 0x6F 0x20 0x66 0x61 0x72    // 'e so far' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x50 0x6C 0x61 0x79    // 'the Play' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E    // ' button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2D= ktpc1Project2D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"CO--To see steps 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"CO--To see steps 3\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project2D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_22=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc1Project2D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project2D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_22=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_22=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x41 0x00 0x00 0x01    // '????A???' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x03    // '????6???' \n\t0x0B 0x00 0x00 0xFD 0x39 0x00 0x00 0x03    // '???9???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_22=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ps for a' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x43 0x6C    // 'dding Cl' \n\t0x61 0x75 0x64 0x69 0x61 0x92 0x73 0x20    // 'audias ' \n\t0x6C 0x69 0x6E 0x65 0x2C 0x20 0x63 0x6C    // 'line, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x48 0x6F 0x77 0x20 0x62 0x75 0x74 0x74    // 'How butt' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2E= ktpc1Project2E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"Why--As the director\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"Why--As the director\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav1Project2E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc1Project2E\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav1Project2E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB5 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x65 0x20 0x61 0x63    // '??The ac' \n\t0x74 0x69 0x6F 0x6E 0x20 0x68 0x61 0x73    // 'tion has' \n\t0x20 0x61 0x64 0x76 0x61 0x6E 0x63 0x65    // ' advance' \n\t0x64 0x3A 0x20 0x20 0x43 0x6C 0x61 0x75    // 'd:  Clau' \n\t0x64 0x69 0x61 0x20 0x69 0x73 0x20 0x77    // 'dia is w' \n\t0x69 0x6C 0x6C 0x69 0x6E 0x67 0x20 0x74    // 'illing t' \n\t0x6F 0x20 0x6E 0x65 0x67 0x6F 0x74 0x69    // 'o negoti' \n\t0x61 0x74 0x65 0x20 0x77 0x69 0x74 0x68    // 'ate with' \n\t0x20 0x47 0x72 0x65 0x67 0x6F 0x72 0x79    // ' Gregory' \n\t0x2E 0x20 0x20 0x44 0x6F 0x65 0x73 0x20    // '.  Does ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x76 0x69    // 'the movi' \n\t0x65 0x20 0x65 0x6E 0x64 0x20 0x68 0x65    // 'e end he' \n\t0x72 0x65 0x20 0x6F 0x72 0x20 0x63 0x6F    // 're or co' \n\t0x6E 0x74 0x69 0x6E 0x75 0x65 0x3F 0x20    // 'ntinue? ' \n\t0x20 0x49 0x74 0x92 0x73 0x20 0x75 0x70    // ' Its up' \n\t0x20 0x74 0x6F 0x20 0x79 0x6F 0x75 0x21    // ' to you!' \n\t0x20 0x20 0x46 0x69 0x72 0x73 0x74 0x20    // '  First ' \n\t0x66 0x69 0x6E 0x69 0x73 0x68 0x20 0x74    // 'finish t' \n\t0x68 0x65 0x20 0x70 0x72 0x6F 0x6A 0x65    // 'he proje' \n\t0x63 0x74 0x2C 0x20 0x74 0x68 0x65 0x6E    // 'ct, then' \n\t0x20 0x61 0x64 0x64 0x20 0x6D 0x6F 0x72    // ' add mor' \n\t0x65 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'e to the' \n\t0x20 0x73 0x74 0x6F 0x72 0x79 0x2E         // ' story.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2F= ktpc1Project2F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"CO--Click OK you've got a \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"CO--Click OK you've got a \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav1Project2F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_33=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project2F\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project2F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_33=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x98 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_33=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2A 0x00 0x00 0x01    // '????*???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_33=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x93 0x4F 0x4B 0x2C 0x20 0x79 0x6F 0x75    // 'OK, you' \n\t0x92 0x76 0x65 0x20 0x67 0x6F 0x74 0x2E    // 've got.' \n\t0x2E 0x2E 0x94 0x20 0x0D 0x0A 0x54 0x68    // '.. ??Th' \n\t0x65 0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'en click' \n\t0x20 0x4F 0x4B 0x2E                        // ' OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_30= ktpc1Project30\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"CO--To play Claudia's line\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"CO--To play Claudia's line\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project30\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project30\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project30\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x81 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2E 0x00 0x00 0x01    // '????.???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x03    // '????\"???' \n\t0x0B 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x6C 0x61    // '??To pla' \n\t0x79 0x20 0x43 0x6C 0x61 0x75 0x64 0x69    // 'y Claudi' \n\t0x61 0x92 0x73 0x20 0x6C 0x69 0x6E 0x65    // 'as line' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x50 0x6C 0x61 0x79    // 'the Play' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E    // ' button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_31= ktpc1Project31\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"CO--To see the movie beginning\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"CO--To see the movie beginning\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav1Project31\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc1Project31\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav1Project31\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x81 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x03    // '????/???' \n\t0x0B 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x03    // '????r???' \n\t0x0B 0x00 0x00 0xFD 0x80 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x43 0x00 0x00 0x82    // '????C??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'ie from ' \n\t0x74 0x68 0x65 0x20 0x62 0x65 0x67 0x69    // 'the begi' \n\t0x6E 0x6E 0x69 0x6E 0x67 0x2C 0x20 0x63    // 'nning, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x50 0x6C 0x61 0x79 0x20 0x62 0x75    // ' Play bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x67 0x61    // 'tton aga' \n\t0x69 0x6E 0x2E 0x0D 0x0A 0x57 0x68 0x65    // 'in.??Whe' \n\t0x6E 0x20 0x79 0x6F 0x75 0x92 0x72 0x65    // 'n youre' \n\t0x20 0x72 0x65 0x61 0x64 0x79 0x20 0x66    // ' ready f' \n\t0x6F 0x72 0x20 0x74 0x68 0x65 0x20 0x6E    // 'or the n' \n\t0x65 0x78 0x74 0x20 0x73 0x74 0x65 0x70    // 'ext step' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x50 0x72 0x6F 0x6A    // 'the Proj' \n\t0x65 0x63 0x74 0x20 0x47 0x61 0x64 0x67    // 'ect Gadg' \n\t0x65 0x74 0x2E                             // 'et.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_32= ktpc1Project32\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"Tip:  Making an actor talk\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"Tip:  Making an actor talk\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc1Project32\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x5F 0x00 0x00 0x03    // '???_???' \n\t0x0A 0x00 0x00 0xFD 0x61 0x00 0x00 0x03    // '???a???' \n\t0x0F 0x00 0x00 0xFD 0x0F 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x61 0x00 0x00 0x80    // '????a??' \n\t0x00 0x00 0x02 0x00 0x8F 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0xF7 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xF7 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4D 0x61 0x6B    // '???  Mak' \n\t0x69 0x6E 0x67 0x20 0x61 0x6E 0x20 0x61    // 'ing an a' \n\t0x63 0x74 0x6F 0x72 0x20 0x74 0x61 0x6C    // 'ctor tal' \n\t0x6B 0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x61    // 'k??To ma' \n\t0x6B 0x65 0x20 0x61 0x6E 0x20 0x61 0x63    // 'ke an ac' \n\t0x74 0x6F 0x72 0x20 0x74 0x61 0x6C 0x6B    // 'tor talk' \n\t0x20 0x79 0x6F 0x75 0x20 0x6E 0x65 0x65    // ' you nee' \n\t0x64 0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B    // 'd to mak' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'e the ac' \n\t0x74 0x6F 0x72 0x20 0x6D 0x6F 0x76 0x65    // 'tor move' \n\t0x20 0x74 0x68 0x65 0x6E 0x20 0x61 0x64    // ' then ad' \n\t0x64 0x20 0x73 0x70 0x65 0x65 0x63 0x68    // 'd speech' \n\t0x2E 0x0D 0x0A 0x31 0x09 0x4D 0x61 0x6B    // '.??1?Mak' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'e the ac' \n\t0x74 0x6F 0x72 0x20 0x6D 0x6F 0x76 0x65    // 'tor move' \n\t0x20 0x75 0x73 0x69 0x6E 0x67 0x20 0x74    // ' using t' \n\t0x68 0x65 0x20 0x54 0x61 0x6C 0x6B 0x20    // 'he Talk ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x2E 0x0D    // 'action.?' \n\t0x0A 0x32 0x09 0x52 0x65 0x77 0x69 0x6E    // '?2?Rewin' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'd the mo' \n\t0x76 0x69 0x65 0x20 0x74 0x6F 0x20 0x74    // 'vie to t' \n\t0x68 0x65 0x20 0x66 0x72 0x61 0x6D 0x65    // 'he frame' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x74    // ' where t' \n\t0x68 0x65 0x20 0x61 0x63 0x74 0x6F 0x72    // 'he actor' \n\t0x20 0x66 0x69 0x72 0x73 0x74 0x20 0x73    // ' first s' \n\t0x74 0x61 0x72 0x74 0x73 0x20 0x74 0x6F    // 'tarts to' \n\t0x20 0x6D 0x6F 0x76 0x65 0x2E 0x0D 0x0A    // ' move.??' \n\t0x33 0x09 0x41 0x74 0x74 0x61 0x63 0x68    // '3?Attach' \n\t0x20 0x64 0x69 0x61 0x6C 0x6F 0x67 0x75    // ' dialogu' \n\t0x65 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'e to the' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2E 0x0D    // ' actor.?' \n\t0x0A 0x34 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?4?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x6C 0x61    // ' the Pla' \n\t0x79 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'y button' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_33= ktpc1Project33\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"Tip:  If you rewind too far\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"Tip:  If you rewind too far\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_34=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc1Project33\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_34=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x06 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewind __HELP_SYMBOL( STN \"mbmpRewind\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpForward __HELP_SYMBOL( STN \"mbmpForward\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_34=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x68 0x00 0x00 0x01    // '????h???' \n\t0x01 0xFC 0x00 0x00 0x8E 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x91 0x00 0x00 0x01    // '???????' \n\t0x01 0xFC 0x00 0x00 0xB8 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xB9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x66 0x00 0x00 0x03    // '???f???' \n\t0x0A 0x00 0x00 0xFD 0x68 0x00 0x00 0x03    // '???h???' \n\t0x0F 0x00 0x00 0xFD 0xB9 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x68 0x00 0x00 0x80    // '????h??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x91 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x8E 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00 0xB8 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_34=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x49 0x66 0x20    // '???  If ' \n\t0x79 0x6F 0x75 0x20 0x72 0x65 0x77 0x69    // 'you rewi' \n\t0x6E 0x64 0x20 0x74 0x6F 0x6F 0x20 0x66    // 'nd too f' \n\t0x61 0x72 0x2E 0x2E 0x2E 0x0D 0x0A 0x55    // 'ar...??U' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x46    // 'se the F' \n\t0x72 0x61 0x6D 0x65 0x20 0x53 0x6C 0x69    // 'rame Sli' \n\t0x64 0x65 0x72 0x20 0x74 0x6F 0x20 0x6D    // 'der to m' \n\t0x6F 0x76 0x65 0x20 0x66 0x6F 0x72 0x77    // 'ove forw' \n\t0x61 0x72 0x64 0x73 0x20 0x6F 0x72 0x20    // 'ards or ' \n\t0x62 0x61 0x63 0x6B 0x77 0x61 0x72 0x64    // 'backward' \n\t0x73 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 's in the' \n\t0x20 0x63 0x75 0x72 0x72 0x65 0x6E 0x74    // ' current' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x2E 0x20    // ' scene. ' \n\t0x0D 0x0A 0x95 0x09 0x54 0x6F 0x20 0x67    // '???To g' \n\t0x6F 0x20 0x66 0x6F 0x72 0x77 0x61 0x72    // 'o forwar' \n\t0x64 0x20 0x6F 0x6E 0x65 0x20 0x66 0x72    // 'd one fr' \n\t0x61 0x6D 0x65 0x2C 0x20 0x63 0x6C 0x69    // 'ame, cli' \n\t0x63 0x6B 0x20 0x4E 0x65 0x78 0x74 0x2D    // 'ck Next-' \n\t0x01 0x0D 0x0A 0x95 0x09 0x54 0x6F 0x20    // '????To ' \n\t0x67 0x6F 0x20 0x62 0x61 0x63 0x6B 0x20    // 'go back ' \n\t0x6F 0x6E 0x65 0x20 0x66 0x72 0x61 0x6D    // 'one fram' \n\t0x65 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'e, click' \n\t0x20 0x50 0x72 0x65 0x76 0x69 0x6F 0x75    // ' Previou' \n\t0x73 0x2D 0x01                             // 's-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/project2.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpc2Project00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"To see this movie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"To see this movie\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobProject kidGadgetPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav2Project00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpc2Project00\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x78 0x00 0x00 0x00    // '????x???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc2Project2D __HELP_SYMBOL( STN \"ktpc2Project2D\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x01    // '????X???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x03    // '????8???' \n\t0x0B 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x40    // '????F??@' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x40    // '????X??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x46 0x00 0x00 0x82    // '????F??' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0xC0    // '????F??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x61 0x79    // ' the way' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x69 0x73 0x20 0x73 0x75    // 'ie is su' \n\t0x70 0x70 0x6F 0x73 0x65 0x64 0x20 0x74    // 'pposed t' \n\t0x6F 0x20 0x6C 0x6F 0x6F 0x6B 0x2C 0x20    // 'o look, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x50 0x6C 0x61 0x79 0x20 0x62    // 'e Play b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x2E 0x0D 0x0A    // 'utton.??' \n\t0x01 0x20 0x41 0x6E 0x6F 0x74 0x68 0x65    // '? Anothe' \n\t0x72 0x20 0x70 0x72 0x6F 0x6A 0x65 0x63    // 'r projec' \n\t0x74 0x3F                                  // 't?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpc2Project01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"To see the steps\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"To see the steps\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav2Project01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc2Project01\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x01    // '????=???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x03    // '????2???' \n\t0x0B 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x40    // '????=??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x6D    // 'ps for m' \n\t0x61 0x6B 0x69 0x6E 0x67 0x20 0x74 0x68    // 'aking th' \n\t0x69 0x73 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'is movie' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x48 0x6F 0x77 0x20    // 'the How ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E         // 'button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpc2Project02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Why--Mimi's run\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Why--Mimi's run\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav2Project02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc2Project02\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav2Project02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x69 0x6D 0x69 0x27 0x73    // '??Mimi's' \n\t0x20 0x72 0x75 0x6E 0x20 0x69 0x73 0x20    // ' run is ' \n\t0x73 0x6C 0x6F 0x77 0x65 0x72 0x20 0x74    // 'slower t' \n\t0x68 0x61 0x6E 0x20 0x43 0x68 0x61 0x72    // 'han Char' \n\t0x6C 0x69 0x65 0x27 0x73 0x20 0x72 0x75    // 'lie's ru' \n\t0x6E 0x2C 0x20 0x73 0x6F 0x20 0x69 0x66    // 'n, so if' \n\t0x20 0x74 0x68 0x65 0x79 0x20 0x73 0x74    // ' they st' \n\t0x61 0x72 0x74 0x20 0x61 0x74 0x20 0x74    // 'art at t' \n\t0x68 0x65 0x20 0x73 0x61 0x6D 0x65 0x20    // 'he same ' \n\t0x74 0x69 0x6D 0x65 0x20 0x43 0x68 0x61    // 'time Cha' \n\t0x72 0x6C 0x69 0x65 0x20 0x77 0x69 0x6C    // 'rlie wil' \n\t0x6C 0x20 0x61 0x72 0x72 0x69 0x76 0x65    // 'l arrive' \n\t0x20 0x66 0x69 0x72 0x73 0x74 0x2E 0x20    // ' first. ' \n\t0x20 0x55 0x73 0x65 0x20 0x74 0x68 0x65    // ' Use the' \n\t0x20 0x53 0x79 0x6E 0x63 0x68 0x72 0x6F    // ' Synchro' \n\t0x6E 0x69 0x7A 0x65 0x20 0x74 0x6F 0x6F    // 'nize too' \n\t0x6C 0x20 0x74 0x6F 0x20 0x63 0x68 0x61    // 'l to cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x73 0x6F    // 'movie so' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x4D 0x69    // ' that Mi' \n\t0x6D 0x69 0x20 0x61 0x72 0x72 0x69 0x76    // 'mi arriv' \n\t0x65 0x73 0x20 0x62 0x65 0x66 0x6F 0x72    // 'es befor' \n\t0x65 0x20 0x43 0x68 0x61 0x72 0x6C 0x69    // 'e Charli' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpc2Project03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"I created the first part of the\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"I created the first part of the\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobProject 0x0 kidPlayProjectSounds 0x140 0xF0 0x57415645 kwav2Project03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_17=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpc2Project03\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_17=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_17=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x57 0x01 0x00 0x01    // '????W???' \n\t0x00 0x00 0x00 0x00 0x59 0x01 0x00 0x40    // '????Y??@' \n\t0x02 0x00 0x00 0x00 0x5A 0x01 0x00 0x40    // '????Z??@' \n\t0x00 0x00 0x00 0x00 0x59 0x01 0x00 0x80    // '????Y??' \n\t0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x59 0x01 0x00 0x82    // '????Y??' \n\t0x00 0x00 0x00 0x00 0x59 0x01 0x00 0xC0    // '????Y??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_17=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x20 0x63 0x72 0x65 0x61    // '??I crea' \n\t0x74 0x65 0x64 0x20 0x74 0x68 0x65 0x20    // 'ted the ' \n\t0x66 0x69 0x72 0x73 0x74 0x20 0x70 0x61    // 'first pa' \n\t0x72 0x74 0x20 0x6F 0x66 0x20 0x74 0x68    // 'rt of th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'e movie ' \n\t0x66 0x6F 0x72 0x20 0x79 0x6F 0x75 0x2E    // 'for you.' \n\t0x20 0x20 0x4D 0x69 0x6D 0x69 0x20 0x72    // '  Mimi r' \n\t0x75 0x6E 0x73 0x20 0x74 0x6F 0x20 0x67    // 'uns to g' \n\t0x65 0x74 0x20 0x74 0x6F 0x20 0x43 0x68    // 'et to Ch' \n\t0x61 0x72 0x6C 0x69 0x65 0x92 0x73 0x20    // 'arlies ' \n\t0x73 0x75 0x72 0x70 0x72 0x69 0x73 0x65    // 'surprise' \n\t0x20 0x70 0x61 0x72 0x74 0x79 0x20 0x62    // ' party b' \n\t0x65 0x66 0x6F 0x72 0x65 0x20 0x43 0x68    // 'efore Ch' \n\t0x61 0x72 0x6C 0x69 0x65 0x2E 0x20 0x20    // 'arlie.  ' \n\t0x4D 0x69 0x6D 0x69 0x20 0x64 0x6F 0x65    // 'Mimi doe' \n\t0x73 0x6E 0x92 0x74 0x20 0x6B 0x6E 0x6F    // 'snt kno' \n\t0x77 0x20 0x69 0x74 0x2C 0x20 0x62 0x75    // 'w it, bu' \n\t0x74 0x20 0x43 0x68 0x61 0x72 0x6C 0x69    // 't Charli' \n\t0x65 0x20 0x69 0x73 0x20 0x68 0x69 0x64    // 'e is hid' \n\t0x69 0x6E 0x67 0x20 0x62 0x65 0x68 0x69    // 'ing behi' \n\t0x6E 0x64 0x20 0x61 0x20 0x67 0x72 0x61    // 'nd a gra' \n\t0x76 0x65 0x73 0x74 0x6F 0x6E 0x65 0x2E    // 'vestone.' \n\t0x20 0x20 0x43 0x68 0x61 0x72 0x6C 0x69    // '  Charli' \n\t0x65 0x20 0x6A 0x75 0x6D 0x70 0x73 0x20    // 'e jumps ' \n\t0x75 0x70 0x2C 0x20 0x72 0x61 0x63 0x65    // 'up, race' \n\t0x73 0x20 0x4D 0x69 0x6D 0x69 0x2C 0x20    // 's Mimi, ' \n\t0x61 0x6E 0x64 0x20 0x61 0x72 0x72 0x69    // 'and arri' \n\t0x76 0x65 0x73 0x20 0x61 0x74 0x20 0x74    // 'ves at t' \n\t0x68 0x65 0x20 0x70 0x61 0x72 0x74 0x79    // 'he party' \n\t0x20 0x62 0x65 0x66 0x6F 0x72 0x65 0x20    // ' before ' \n\t0x73 0x68 0x65 0x20 0x64 0x6F 0x65 0x73    // 'she does' \n\t0x2E 0x0D 0x0A 0x4E 0x6F 0x77 0x20 0x69    // '.??Now i' \n\t0x74 0x92 0x73 0x20 0x79 0x6F 0x75 0x72    // 'ts your' \n\t0x20 0x74 0x75 0x72 0x6E 0x20 0x74 0x6F    // ' turn to' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x20    // ' change ' \n\t0x4D 0x69 0x6D 0x69 0x92 0x73 0x20 0x61    // 'Mimis a' \n\t0x72 0x72 0x69 0x76 0x61 0x6C 0x20 0x74    // 'rrival t' \n\t0x69 0x6D 0x65 0x20 0x73 0x6F 0x20 0x74    // 'ime so t' \n\t0x68 0x61 0x74 0x20 0x73 0x68 0x65 0x20    // 'hat she ' \n\t0x67 0x65 0x74 0x73 0x20 0x74 0x6F 0x20    // 'gets to ' \n\t0x74 0x68 0x65 0x20 0x70 0x61 0x72 0x74    // 'the part' \n\t0x79 0x20 0x62 0x65 0x66 0x6F 0x72 0x65    // 'y before' \n\t0x20 0x43 0x68 0x61 0x72 0x6C 0x69 0x65    // ' Charlie' \n\t0x21 0x0D 0x0A 0x01                        // '!???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpc2Project04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"CO--Before we begin\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"CO--Before we begin\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav2Project04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc2Project04\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x79 0x00 0x00 0x00    // '????y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4E 0x00 0x00 0x01    // '????N???' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x1F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x03    // '???? ???' \n\t0x0B 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00 0x4E 0x00 0x00 0x03    // '????N???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x65 0x66 0x6F 0x72 0x65    // '??Before' \n\t0x20 0x77 0x65 0x20 0x62 0x65 0x67 0x69    // ' we begi' \n\t0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'n, click' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x6C 0x61    // ' the Pla' \n\t0x79 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'y button' \n\t0x20 0x74 0x6F 0x20 0x73 0x65 0x65 0x20    // ' to see ' \n\t0x74 0x68 0x65 0x20 0x63 0x75 0x72 0x72    // 'the curr' \n\t0x65 0x6E 0x74 0x20 0x65 0x6E 0x64 0x69    // 'ent endi' \n\t0x6E 0x67 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ng to th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E    // 'e movie.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpc2Project05\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO--To find Mimi\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO--To find Mimi\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidRollCallActor kidPlayProjectSounds 0x2E 0x8B 0x57415645 kwav2Project05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc2Project05\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidRollCallActor\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc2Project31 __HELP_SYMBOL( STN \"ktpc2Project31\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x7C 0x00 0x00 0x01    // '????|???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x03    // '????'???' \n\t0x0B 0x00 0x00 0xFD 0x31 0x00 0x00 0x03    // '???1???' \n\t0x00 0x00 0x00 0x00 0x70 0x00 0x00 0x40    // '????p??@' \n\t0x02 0x00 0x00 0x00 0x7C 0x00 0x00 0x40    // '????|??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x70 0x00 0x00 0x82    // '????p??' \n\t0x00 0x00 0x00 0x00 0x70 0x00 0x00 0xC0    // '????p??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x66 0x69 0x6E    // '??To fin' \n\t0x64 0x20 0x4D 0x69 0x6D 0x69 0x2C 0x20    // 'd Mimi, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x68 0x65    // 'click he' \n\t0x72 0x20 0x70 0x69 0x63 0x74 0x75 0x72    // 'r pictur' \n\t0x65 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'e in the' \n\t0x20 0x41 0x63 0x74 0x6F 0x72 0x20 0x4C    // ' Actor L' \n\t0x69 0x73 0x74 0x2E 0x20 0x20 0x54 0x68    // 'ist.  Th' \n\t0x65 0x6E 0x20 0x6C 0x6F 0x6F 0x6B 0x20    // 'en look ' \n\t0x66 0x6F 0x72 0x20 0x68 0x65 0x72 0x20    // 'for her ' \n\t0x79 0x65 0x6C 0x6C 0x6F 0x77 0x20 0x6F    // 'yellow o' \n\t0x75 0x74 0x6C 0x69 0x6E 0x65 0x20 0x69    // 'utline i' \n\t0x6E 0x73 0x69 0x64 0x65 0x20 0x74 0x68    // 'nside th' \n\t0x65 0x20 0x67 0x72 0x61 0x76 0x65 0x20    // 'e grave ' \n\t0x63 0x68 0x61 0x6D 0x62 0x65 0x72 0x2E    // 'chamber.' \n\t0x0D 0x0A 0x01 0x20 0x41 0x63 0x74 0x6F    // '??? Acto' \n\t0x72 0x20 0x4C 0x69 0x73 0x74              // 'r List' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpc2Project06\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--To make Mimi arrive\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--To make Mimi arrive\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsSooner kidPlayProjectSounds 0x0 0x0 0x57415645 kwav2Project06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc2Project06\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsSooner\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc2Project07 __HELP_SYMBOL( STN \"ktpc2Project07\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x01    // '????F???' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x03    // '????*???' \n\t0x0B 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x40    // '????8??@' \n\t0x02 0x00 0x00 0x00 0x46 0x00 0x00 0x40    // '????F??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x38 0x00 0x00 0x82    // '????8??' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0xC0    // '????8??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x61 0x6B    // '??To mak' \n\t0x65 0x20 0x4D 0x69 0x6D 0x69 0x20 0x61    // 'e Mimi a' \n\t0x72 0x72 0x69 0x76 0x65 0x20 0x62 0x65    // 'rrive be' \n\t0x66 0x6F 0x72 0x65 0x20 0x43 0x68 0x61    // 'fore Cha' \n\t0x72 0x6C 0x69 0x65 0x2C 0x20 0x63 0x6C    // 'rlie, cl' \n\t0x69 0x63 0x6B 0x20 0x53 0x79 0x6E 0x63    // 'ick Sync' \n\t0x68 0x72 0x6F 0x6E 0x69 0x7A 0x65 0x2E    // 'hronize.' \n\t0x0D 0x0A 0x01 0x20 0x20 0x53 0x79 0x6E    // '???  Syn' \n\t0x63 0x68 0x72 0x6F 0x6E 0x69 0x7A 0x65    // 'chronize' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpc2Project07\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"Tip:  Synchronize\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"Tip:  Synchronize\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav2Project07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc2Project07\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav2Project07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9C 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x72 0x00 0x00 0x01    // '????r???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x53 0x79 0x6E 0x63    // '??? Sync' \n\t0x68 0x72 0x6F 0x6E 0x69 0x7A 0x65 0x0D    // 'hronize?' \n\t0x0A 0x54 0x68 0x65 0x20 0x53 0x79 0x6E    // '?The Syn' \n\t0x63 0x68 0x72 0x6F 0x6E 0x69 0x7A 0x65    // 'chronize' \n\t0x20 0x74 0x6F 0x6F 0x6C 0x20 0x6C 0x65    // ' tool le' \n\t0x74 0x73 0x20 0x79 0x6F 0x75 0x20 0x63    // 'ts you c' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x77 0x68    // 'hange wh' \n\t0x65 0x6E 0x20 0x61 0x6E 0x20 0x61 0x63    // 'en an ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x67 0x65    // ' word ge' \n\t0x74 0x73 0x20 0x74 0x6F 0x20 0x61 0x20    // 'ts to a ' \n\t0x70 0x61 0x72 0x74 0x69 0x63 0x75 0x6C    // 'particul' \n\t0x61 0x72 0x20 0x6C 0x6F 0x63 0x61 0x74    // 'ar locat' \n\t0x69 0x6F 0x6E 0x2E                        // 'ion.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpc2Project08\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"CO--Click Mimi to freeze\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"CO--Click Mimi to freeze\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav2Project08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc2Project08\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc2Project09 __HELP_SYMBOL( STN \"ktpc2Project09\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x56 0x00 0x00 0x01    // '????V???' \n\t0x00 0x00 0x00 0x00 0x3C 0x00 0x00 0x04    // '????<???' \n\t0x0D 0x00 0x00 0xFE 0x3F 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x40    // '????>??@' \n\t0x02 0x00 0x00 0x00 0x56 0x00 0x00 0x40    // '????V??@' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x80    // '????>??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3E 0x00 0x00 0x82    // '????>??' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0xC0    // '????>??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x69 0x6E 0x73 0x69 0x64 0x65 0x20 0x4D    // 'inside M' \n\t0x69 0x6D 0x69 0x27 0x73 0x20 0x79 0x65    // 'imi's ye' \n\t0x6C 0x6C 0x6F 0x77 0x20 0x6F 0x75 0x74    // 'llow out' \n\t0x6C 0x69 0x6E 0x65 0x20 0x74 0x6F 0x20    // 'line to ' \n\t0x22 0x66 0x72 0x65 0x65 0x7A 0x65 0x22    // '\"freeze\"' \n\t0x20 0x68 0x65 0x72 0x20 0x69 0x6E 0x20    // ' her in ' \n\t0x70 0x6C 0x61 0x63 0x65 0x2E 0x0D 0x0A    // 'place.??' \n\t0x01 0x20 0x57 0x68 0x69 0x63 0x68 0x20    // '? Which ' \n\t0x61 0x63 0x74 0x6F 0x72 0x20 0x74 0x6F    // 'actor to' \n\t0x20 0x66 0x72 0x65 0x65 0x7A 0x65 0x3F    // ' freeze?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= ktpc2Project09\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"Tip:  Which actor to freeze\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"Tip:  Which actor to freeze\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav2Project09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc2Project09\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav2Project09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x44 0x01 0x00 0x01    // '????D???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1B 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x57 0x68 0x69    // '???  Whi' \n\t0x63 0x68 0x20 0x61 0x63 0x74 0x6F 0x72    // 'ch actor' \n\t0x20 0x74 0x6F 0x20 0x66 0x72 0x65 0x65    // ' to free' \n\t0x7A 0x65 0x3F 0x0D 0x0A 0x47 0x6F 0x20    // 'ze???Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x66    // 'to the f' \n\t0x72 0x61 0x6D 0x65 0x20 0x69 0x6E 0x20    // 'rame in ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x76 0x69    // 'the movi' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x6F 0x6E 0x65 0x20 0x61 0x63 0x74 0x6F    // 'one acto' \n\t0x72 0x20 0x69 0x73 0x20 0x69 0x6E 0x20    // 'r is in ' \n\t0x74 0x68 0x65 0x20 0x63 0x6F 0x72 0x72    // 'the corr' \n\t0x65 0x63 0x74 0x20 0x73 0x70 0x6F 0x74    // 'ect spot' \n\t0x2E 0x20 0x20 0x55 0x73 0x65 0x20 0x74    // '.  Use t' \n\t0x68 0x65 0x20 0x53 0x79 0x6E 0x63 0x68    // 'he Synch' \n\t0x72 0x6F 0x6E 0x69 0x7A 0x65 0x20 0x74    // 'ronize t' \n\t0x6F 0x6F 0x6C 0x20 0x74 0x6F 0x20 0x22    // 'ool to \"' \n\t0x66 0x72 0x65 0x65 0x7A 0x65 0x22 0x20    // 'freeze\" ' \n\t0x74 0x68 0x61 0x74 0x20 0x61 0x63 0x74    // 'that act' \n\t0x6F 0x72 0x20 0x69 0x6E 0x20 0x70 0x6C    // 'or in pl' \n\t0x61 0x63 0x65 0x2E 0x20 0x20 0x54 0x68    // 'ace.  Th' \n\t0x65 0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'en click' \n\t0x20 0x74 0x68 0x65 0x20 0x42 0x61 0x63    // ' the Bac' \n\t0x6B 0x20 0x6F 0x72 0x20 0x46 0x6F 0x72    // 'k or For' \n\t0x77 0x61 0x72 0x64 0x20 0x41 0x72 0x72    // 'ward Arr' \n\t0x6F 0x77 0x73 0x20 0x74 0x6F 0x20 0x72    // 'ows to r' \n\t0x65 0x77 0x69 0x6E 0x64 0x20 0x6F 0x72    // 'ewind or' \n\t0x20 0x61 0x64 0x76 0x61 0x6E 0x63 0x65    // ' advance' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x2E 0x20 0x20 0x4B 0x65 0x65    // 'ie.  Kee' \n\t0x70 0x20 0x63 0x6C 0x69 0x63 0x6B 0x69    // 'p clicki' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x61    // 'ng the a' \n\t0x72 0x72 0x6F 0x77 0x73 0x20 0x75 0x6E    // 'rrows un' \n\t0x74 0x69 0x6C 0x20 0x74 0x68 0x65 0x20    // 'til the ' \n\t0x73 0x65 0x63 0x6F 0x6E 0x64 0x20 0x61    // 'second a' \n\t0x63 0x74 0x6F 0x72 0x20 0x69 0x73 0x20    // 'ctor is ' \n\t0x62 0x65 0x68 0x69 0x6E 0x64 0x2C 0x20    // 'behind, ' \n\t0x61 0x68 0x65 0x61 0x64 0x20 0x6F 0x66    // 'ahead of' \n\t0x2C 0x20 0x6F 0x72 0x20 0x6D 0x65 0x65    // ', or mee' \n\t0x74 0x73 0x20 0x74 0x68 0x65 0x20 0x22    // 'ts the \"' \n\t0x66 0x72 0x6F 0x7A 0x65 0x6E 0x22 0x20    // 'frozen\" ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2E              // 'actor.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= ktpc2Project0A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO--Click the back arrow\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO--Click the back arrow\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon4 kgobProject kidActorsSoonerButton kidPlayProjectSounds 0xFFFFFFDC 0x10 0x57415645 kwav2Project0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon4\"\n\tITEM\n\t\t\"ktpc2Project0A\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsSoonerButton\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x95 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5A 0x00 0x00 0x01    // '????Z???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x42 0x61 0x63 0x6B    // 'the Back' \n\t0x20 0x41 0x72 0x72 0x6F 0x77 0x20 0x31    // ' Arrow 1' \n\t0x32 0x20 0x74 0x69 0x6D 0x65 0x73 0x20    // '2 times ' \n\t0x75 0x6E 0x74 0x69 0x6C 0x20 0x43 0x68    // 'until Ch' \n\t0x61 0x72 0x6C 0x69 0x65 0x20 0x61 0x70    // 'arlie ap' \n\t0x70 0x65 0x61 0x72 0x73 0x20 0x6F 0x75    // 'pears ou' \n\t0x74 0x73 0x69 0x64 0x65 0x20 0x6F 0x66    // 'tside of' \n\t0x20 0x74 0x68 0x65 0x20 0x67 0x72 0x61    // ' the gra' \n\t0x76 0x65 0x20 0x63 0x68 0x61 0x6D 0x62    // 've chamb' \n\t0x65 0x72 0x20 0x65 0x6E 0x74 0x72 0x61    // 'er entra' \n\t0x6E 0x63 0x65 0x2E                        // 'nce.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= ktpc2Project0B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO--Click the first button\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO--Click the first button\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameRWEnd kidPlayProjectSounds 0x0 0x0 0x57415645 kwav2Project0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc2Project0B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameRWEnd\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewindEnd __HELP_SYMBOL( STN \"mbmpRewindEnd\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0xFD 0x00 0x00 0x45 0x00 0x00 0x01    // '???E???' \n\t0x01 0x00 0x00 0x00 0x47 0x00 0x00 0x01    // '????G???' \n\t0x01 0xFD 0x00 0x00 0x50 0x00 0x00 0x01    // '???P???' \n\t0x01 0x00 0x00 0x00 0x67 0x00 0x00 0x01    // '????g???' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0xC0    // '????E??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x6E 0x63 0x65 0x20 0x43    // '??Once C' \n\t0x68 0x61 0x72 0x6C 0x69 0x65 0x20 0x69    // 'harlie i' \n\t0x73 0x20 0x6F 0x75 0x74 0x73 0x69 0x64    // 's outsid' \n\t0x65 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'e of the' \n\t0x20 0x67 0x72 0x61 0x76 0x65 0x20 0x63    // ' grave c' \n\t0x68 0x61 0x6D 0x62 0x65 0x72 0x2C 0x20    // 'hamber, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x46 0x69 0x72 0x73 0x74 0x20    // 'e First ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2D 0x01    // 'button-?' \n\t0x20 0x74 0x6F 0x20 0x72 0x65 0x77 0x69    // ' to rewi' \n\t0x6E 0x64 0x20 0x79 0x6F 0x75 0x72 0x20    // 'nd your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x74 0x6F    // 'movie to' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x31    // ' frame 1' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= ktpc2Project0C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"CO--To play new ending\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"CO--To play new ending\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav2Project0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc2Project0C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x89 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x03    // '????!???' \n\t0x0B 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6E 0x65    // ' your ne' \n\t0x77 0x20 0x6D 0x6F 0x76 0x69 0x65 0x2C    // 'w movie,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x50 0x6C 0x61 0x79 0x20    // 'he Play ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E         // 'button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= ktpc2Project0D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO  Click the First again\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO  Click the First again\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameRWEnd kidPlayProjectSounds 0x0 0x0 0x57415645 kwav2Project0D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc2Project0D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameRWEnd\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project0D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewindEnd __HELP_SYMBOL( STN \"mbmpRewindEnd\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x46 0x69 0x72 0x73    // 'the Firs' \n\t0x74 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 't button' \n\t0x2D 0x01 0x61 0x67 0x61 0x69 0x6E 0x20    // '-?again ' \n\t0x74 0x6F 0x20 0x72 0x65 0x77 0x69 0x6E    // 'to rewin' \n\t0x64 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'd your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x74 0x6F 0x20    // 'ovie to ' \n\t0x66 0x72 0x61 0x6D 0x65 0x20 0x31 0x2E    // 'frame 1.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= ktpc2Project0E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO--To add Kim's action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO--To add Kim's action\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameFW kidPlayProjectSounds 0x0 0x0 0x57415645 kwav2Project0E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc2Project0E\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameFW\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project0E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpForward __HELP_SYMBOL( STN \"mbmpForward\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc2Project0F __HELP_SYMBOL( STN \"ktpc2Project0F\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0xFC 0x00 0x00 0x1A 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xCC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA1 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xAF 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xCC 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xB2 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xCC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0xB2 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x77 0x20 0x63 0x6C    // '??Now cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x4E 0x65 0x78 0x74 0x20 0x62 0x75 0x74    // 'Next but' \n\t0x74 0x6F 0x6E 0x2D 0x01 0x20 0x75 0x6E    // 'ton-? un' \n\t0x74 0x69 0x6C 0x20 0x79 0x6F 0x75 0x20    // 'til you ' \n\t0x61 0x64 0x76 0x61 0x6E 0x63 0x65 0x20    // 'advance ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ie to th' \n\t0x65 0x20 0x66 0x72 0x61 0x6D 0x65 0x20    // 'e frame ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x74 0x68    // 'where th' \n\t0x65 0x20 0x74 0x69 0x74 0x6C 0x65 0x2C    // 'e title,' \n\t0x20 0x93 0x53 0x75 0x72 0x70 0x72 0x69    // ' Surpri' \n\t0x73 0x65 0x94 0x20 0x66 0x69 0x72 0x73    // 'se firs' \n\t0x74 0x20 0x61 0x70 0x70 0x65 0x61 0x72    // 't appear' \n\t0x73 0x2E 0x0D 0x0A 0x57 0x68 0x65 0x6E    // 's.??When' \n\t0x20 0x79 0x6F 0x75 0x92 0x72 0x65 0x20    // ' youre ' \n\t0x72 0x65 0x61 0x64 0x79 0x20 0x66 0x6F    // 'ready fo' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'r the ne' \n\t0x78 0x74 0x20 0x73 0x74 0x65 0x70 0x2C    // 'xt step,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x50 0x72 0x6F 0x6A 0x65    // 'he Proje' \n\t0x63 0x74 0x20 0x47 0x61 0x64 0x67 0x65    // 'ct Gadge' \n\t0x74 0x2E 0x0D 0x0A 0x01 0x20 0x57 0x61    // 't.??? Wa' \n\t0x74 0x63 0x68 0x20 0x66 0x6F 0x72 0x20    // 'tch for ' \n\t0x74 0x68 0x65 0x20 0x6D 0x75 0x73 0x69    // 'the musi' \n\t0x63 0x20 0x6E 0x6F 0x74 0x65              // 'c note' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= ktpc2Project0F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"Tip:  Watch for the music note\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"Tip:  Watch for the music note\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav2Project0F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc2Project0F\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav2Project0F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xDE 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x57 0x61 0x74 0x63    // '??? Watc' \n\t0x68 0x20 0x66 0x6F 0x72 0x20 0x74 0x68    // 'h for th' \n\t0x65 0x20 0x6D 0x75 0x73 0x69 0x63 0x20    // 'e music ' \n\t0x6E 0x6F 0x74 0x65 0x0D 0x0A 0x54 0x68    // 'note??Th' \n\t0x65 0x20 0x6D 0x75 0x73 0x69 0x63 0x20    // 'e music ' \n\t0x6E 0x6F 0x74 0x65 0x20 0x6F 0x6E 0x20    // 'note on ' \n\t0x74 0x68 0x65 0x20 0x46 0x72 0x61 0x6D    // 'the Fram' \n\t0x65 0x20 0x53 0x6C 0x69 0x64 0x65 0x72    // 'e Slider' \n\t0x20 0x69 0x73 0x20 0x61 0x6E 0x6F 0x74    // ' is anot' \n\t0x68 0x65 0x72 0x20 0x77 0x61 0x79 0x20    // 'her way ' \n\t0x74 0x6F 0x20 0x6B 0x6E 0x6F 0x77 0x20    // 'to know ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x74 0x6F    // 'where to' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x74 0x68    // ' find th' \n\t0x65 0x20 0x6F 0x72 0x69 0x67 0x69 0x6E    // 'e origin' \n\t0x61 0x6C 0x20 0x66 0x69 0x72 0x73 0x74    // 'al first' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x6F    // ' frame o' \n\t0x66 0x20 0x79 0x6F 0x75 0x20 0x6D 0x6F    // 'f you mo' \n\t0x76 0x69 0x65 0x2E 0x20 0x20 0x49 0x6E    // 'vie.  In' \n\t0x20 0x74 0x68 0x69 0x73 0x20 0x63 0x61    // ' this ca' \n\t0x73 0x65 0x2C 0x20 0x74 0x68 0x65 0x20    // 'se, the ' \n\t0x6D 0x75 0x73 0x69 0x63 0x20 0x6E 0x6F    // 'music no' \n\t0x74 0x65 0x20 0x69 0x6E 0x64 0x69 0x63    // 'te indic' \n\t0x61 0x74 0x65 0x73 0x20 0x74 0x68 0x65    // 'ates the' \n\t0x72 0x65 0x20 0x69 0x73 0x20 0x6D 0x75    // 're is mu' \n\t0x73 0x69 0x63 0x20 0x61 0x74 0x74 0x61    // 'sic atta' \n\t0x63 0x68 0x65 0x64 0x20 0x74 0x6F 0x20    // 'ched to ' \n\t0x74 0x68 0x69 0x73 0x20 0x62 0x61 0x63    // 'this bac' \n\t0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64 0x2E    // 'kground.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= ktpc2Project10\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"Idle--Remember when you're\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"Idle--Remember when you're\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobProject kidGadget kidPlayProjectSounds 0x0 0x0 0x57415645 kwav2Project10\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpc2Project10\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadget\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project10\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x03    // '????9???' \n\t0x0B 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x65 0x6D 0x62    // '??Rememb' \n\t0x65 0x72 0x2C 0x20 0x77 0x68 0x65 0x6E    // 'er, when' \n\t0x20 0x79 0x6F 0x75 0x92 0x72 0x65 0x20    // ' youre ' \n\t0x72 0x65 0x61 0x64 0x79 0x20 0x66 0x6F    // 'ready fo' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'r the ne' \n\t0x78 0x74 0x20 0x73 0x74 0x65 0x70 0x2C    // 'xt step,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x50 0x72 0x6F 0x6A 0x65    // 'he Proje' \n\t0x63 0x74 0x20 0x47 0x61 0x64 0x67 0x65    // 'ct Gadge' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= ktpc2Project11\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO--Drag Kim to the grave\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO--Drag Kim to the grave\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav2Project11\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc2Project11\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project11\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x50 0x00 0x00 0x01    // '????P???' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0x03    // '????D???' \n\t0x0B 0x00 0x00 0xFD 0x48 0x00 0x00 0x03    // '???H???' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x03    // '????P???' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x40    // '????P??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x72    // 'ps for r' \n\t0x65 0x6D 0x6F 0x76 0x69 0x6E 0x67 0x20    // 'emoving ' \n\t0x65 0x76 0x65 0x72 0x79 0x74 0x68 0x69    // 'everythi' \n\t0x6E 0x67 0x20 0x62 0x65 0x66 0x6F 0x72    // 'ng befor' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x74 0x69    // 'e the ti' \n\t0x74 0x6C 0x65 0x2C 0x20 0x63 0x6C 0x69    // 'tle, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x48    // 'ck the H' \n\t0x6F 0x77 0x20 0x62 0x75 0x74 0x74 0x6F    // 'ow butto' \n\t0x6E 0x2E                                  // 'n.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= ktpc2Project12\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"Why--Extra frames\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"Why--Extra frames\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav2Project12\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc2Project12\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav2Project12\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xBA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xBA 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x45 0x78 0x74 0x72 0x61 0x20    // '??Extra ' \n\t0x66 0x72 0x61 0x6D 0x65 0x73 0x20 0x61    // 'frames a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x62 0x65    // 't the be' \n\t0x67 0x69 0x6E 0x6E 0x69 0x6E 0x67 0x20    // 'ginning ' \n\t0x6F 0x66 0x20 0x79 0x6F 0x75 0x72 0x20    // 'of your ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x63 0x61    // 'scene ca' \n\t0x6E 0x20 0x62 0x65 0x20 0x75 0x73 0x65    // 'n be use' \n\t0x66 0x75 0x6C 0x2C 0x20 0x69 0x66 0x20    // 'ful, if ' \n\t0x79 0x6F 0x75 0x20 0x70 0x6C 0x61 0x6E    // 'you plan' \n\t0x20 0x66 0x6F 0x72 0x20 0x74 0x68 0x61    // ' for tha' \n\t0x74 0x20 0x65 0x66 0x66 0x65 0x63 0x74    // 't effect' \n\t0x2E 0x20 0x20 0x46 0x6F 0x72 0x20 0x65    // '.  For e' \n\t0x78 0x61 0x6D 0x70 0x6C 0x65 0x2C 0x20    // 'xample, ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x69 0x67 0x68    // 'you migh' \n\t0x74 0x20 0x77 0x61 0x6E 0x74 0x20 0x61    // 't want a' \n\t0x6E 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'n action' \n\t0x20 0x74 0x6F 0x20 0x6F 0x63 0x63 0x75    // ' to occu' \n\t0x72 0x20 0x62 0x65 0x66 0x6F 0x72 0x65    // 'r before' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x69 0x74    // ' the tit' \n\t0x6C 0x65 0x20 0x61 0x70 0x70 0x65 0x61    // 'le appea' \n\t0x72 0x73 0x20 0x74 0x6F 0x20 0x63 0x72    // 'rs to cr' \n\t0x65 0x61 0x74 0x65 0x20 0x61 0x20 0x63    // 'eate a c' \n\t0x65 0x72 0x74 0x61 0x69 0x6E 0x20 0x6D    // 'ertain m' \n\t0x6F 0x6F 0x64 0x2E                        // 'ood.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= ktpc2Project13\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO  To remove everything\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO  To remove everything\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobProject kidSettingsCover kidPlayProjectSounds 0x0 0x0 0x57415645 kwav2Project13\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpc2Project13\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSettingsCover\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project13\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x82 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x03    // '????5???' \n\t0x0B 0x00 0x00 0xFD 0x3B 0x00 0x00 0x03    // '???;???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x6D    // '??To rem' \n\t0x6F 0x76 0x65 0x20 0x65 0x76 0x65 0x72    // 'ove ever' \n\t0x79 0x74 0x68 0x69 0x6E 0x67 0x20 0x62    // 'ything b' \n\t0x65 0x66 0x6F 0x72 0x65 0x20 0x74 0x68    // 'efore th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x66 0x72 0x61 0x6D 0x65 0x2C    // 't frame,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x53    // ' click S' \n\t0x63 0x65 0x6E 0x65 0x73 0x2E              // 'cenes.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= ktpc2Project14\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"CO--Click Remove Everything\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"CO--Click Remove Everything\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidCCPSceneChopBack kidPlayProjectSounds 0x0 0x0 0x57415645 kwav2Project14\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc2Project14\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidCCPSceneChopBack\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project14\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x52 0x65 0x6D 0x6F 0x76 0x65 0x20 0x45    // 'Remove E' \n\t0x76 0x65 0x72 0x79 0x74 0x68 0x69 0x6E    // 'verythin' \n\t0x67 0x20 0x42 0x65 0x66 0x6F 0x72 0x65    // 'g Before' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= ktpc2Project15\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"CO--Click the background\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"CO--Click the background\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav2Project15\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc2Project15\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project15\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7F 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x62 0x61 0x63 0x6B    // 'the back' \n\t0x67 0x72 0x6F 0x75 0x6E 0x64 0x2E         // 'ground.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= ktpc2Project16\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO--To see your\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO--To see your\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav2Project16\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc2Project16\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project16\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9B 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6F 0x00 0x00 0x01    // '????o???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x03    // '????#???' \n\t0x0B 0x00 0x00 0xFD 0x2E 0x00 0x00 0x03    // '???.???' \n\t0x00 0x00 0x00 0x00 0x60 0x00 0x00 0x03    // '????`???' \n\t0x0B 0x00 0x00 0xFD 0x6E 0x00 0x00 0x03    // '???n???' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x40    // '????o??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x31 0x00 0x00 0x82    // '????1??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x77 0x68    // ' your wh' \n\t0x6F 0x6C 0x65 0x20 0x6D 0x6F 0x76 0x69    // 'ole movi' \n\t0x65 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'e, click' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x6C 0x61    // ' the Pla' \n\t0x79 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'y button' \n\t0x2E 0x0D 0x0A 0x57 0x68 0x65 0x6E 0x20    // '.??When ' \n\t0x79 0x6F 0x75 0x92 0x72 0x65 0x20 0x72    // 'youre r' \n\t0x65 0x61 0x64 0x79 0x20 0x66 0x6F 0x72    // 'eady for' \n\t0x20 0x74 0x68 0x65 0x20 0x6E 0x65 0x78    // ' the nex' \n\t0x74 0x20 0x73 0x74 0x65 0x70 0x2C 0x20    // 't step, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x50 0x72 0x6F 0x6A 0x65 0x63    // 'e Projec' \n\t0x74 0x20 0x47 0x61 0x64 0x67 0x65 0x74    // 't Gadget' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2B= ktpc2Project2B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"Congratulations!  You're done.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"Congratulations!  You're done.\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 kidPlayProjectSounds 0x258 0x1C2 0x57415645 kwav2Project2B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc2Project2B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav2Project2B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9D 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\nAG(4)\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x04 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA6 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x02 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x40    // '????U??@' \n\t0x03 0x00 0x00 0x00 0x6D 0x00 0x00 0x40    // '????m??@' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x40    // '????o??@' \n\t0x04 0x00 0x00 0x00 0x8E 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xA6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x80    // '????@??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x90 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0xC0    // '????@??' \n\t0x01 0x00 0x00 0x00 0x55 0x00 0x00 0xC0    // '????U??' \n\t0x01 0x00 0x00 0x00 0x6F 0x00 0x00 0xC0    // '????o??' \n\t0x01 0x00 0x00 0x00 0x90 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x6E 0x67 0x72 0x61    // '??Congra' \n\t0x74 0x75 0x6C 0x61 0x74 0x69 0x6F 0x6E    // 'tulation' \n\t0x73 0x21 0x20 0x20 0x59 0x6F 0x75 0x27    // 's!  You'' \n\t0x72 0x65 0x20 0x64 0x6F 0x6E 0x65 0x21    // 're done!' \n\t0x20 0x20 0x57 0x68 0x61 0x74 0x20 0x77    // '  What w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x79 0x6F 0x75    // 'ould you' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x74 0x6F    // ' like to' \n\t0x20 0x64 0x6F 0x20 0x6E 0x6F 0x77 0x3F    // ' do now?' \n\t0x0D 0x0A 0x01 0x09 0x57 0x6F 0x72 0x6B    // '????Work' \n\t0x20 0x6F 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' on your' \n\t0x20 0x6F 0x77 0x6E 0x3F 0x0D 0x0A 0x01    // ' own????' \n\t0x09 0x53 0x74 0x61 0x72 0x74 0x20 0x61    // '?Start a' \n\t0x6E 0x6F 0x74 0x68 0x65 0x72 0x20 0x70    // 'nother p' \n\t0x72 0x6F 0x6A 0x65 0x63 0x74 0x3F 0x0D    // 'roject??' \n\t0x0A 0x01 0x09 0x47 0x6F 0x20 0x62 0x61    // '???Go ba' \n\t0x63 0x6B 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ck to th' \n\t0x65 0x20 0x50 0x72 0x6F 0x6A 0x65 0x63    // 'e Projec' \n\t0x74 0x73 0x20 0x52 0x6F 0x6F 0x6D 0x3F    // 'ts Room?' \n\t0x0D 0x0A 0x01 0x09 0x51 0x75 0x69 0x74    // '????Quit' \n\t0x20 0x33 0x44 0x20 0x4D 0x6F 0x76 0x69    // ' 3D Movi' \n\t0x65 0x20 0x4D 0x61 0x6B 0x65 0x72 0x3F    // 'e Maker?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2D= ktpc2Project2D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"Tip:  Another movie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"Tip:  Another movie\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav2Project2D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc2Project2D\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav2Project2D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6B 0x00 0x00 0x01    // '????k???' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x2E 0x00 0x00 0x03    // '???.???' \n\t0x0A 0x00 0x00 0xFD 0x30 0x00 0x00 0x03    // '???0???' \n\t0x0F 0x00 0x00 0xFD 0x6B 0x00 0x00 0x03    // '???k???' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x80    // '????0??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x30 0x00 0x00 0x82    // '????0??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x41 0x6E 0x6F    // '???  Ano' \n\t0x74 0x68 0x65 0x72 0x20 0x70 0x72 0x6F    // 'ther pro' \n\t0x6A 0x65 0x63 0x74 0x3F 0x0D 0x0A 0x54    // 'ject???T' \n\t0x6F 0x20 0x63 0x68 0x6F 0x6F 0x73 0x65    // 'o choose' \n\t0x20 0x61 0x6E 0x6F 0x74 0x68 0x65 0x72    // ' another' \n\t0x20 0x70 0x72 0x6F 0x6A 0x65 0x63 0x74    // ' project' \n\t0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69 0x63    // '???Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x61 0x72    // 'k the ar' \n\t0x72 0x6F 0x77 0x73 0x20 0x6F 0x6E 0x20    // 'rows on ' \n\t0x74 0x68 0x65 0x20 0x72 0x69 0x67 0x68    // 'the righ' \n\t0x74 0x20 0x73 0x69 0x64 0x65 0x20 0x6F    // 't side o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x50 0x72    // 'f the Pr' \n\t0x6F 0x6A 0x65 0x63 0x74 0x20 0x47 0x61    // 'oject Ga' \n\t0x64 0x67 0x65 0x74 0x2E                   // 'dget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_30= ktpc2Project30\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"Def:  drag\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"Def:  drag\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav2Project30\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc2Project30\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav2Project30\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x77 0x00 0x00 0x01    // '????w???' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3B 0x00 0x00 0x82    // '????;??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x64 0x72 0x61 0x67 0x0D 0x0A    // '??drag??' \n\t0x31 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '1?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x73 0x20    // 'tton as ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'you move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x57    // 'se.??2?W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x76 0x65 0x20 0x66 0x69 0x6E 0x69 0x73    // 've finis' \n\t0x68 0x65 0x64 0x20 0x64 0x72 0x61 0x67    // 'hed drag' \n\t0x67 0x69 0x6E 0x67 0x2C 0x20 0x6C 0x65    // 'ging, le' \n\t0x74 0x20 0x67 0x6F 0x20 0x6F 0x66 0x20    // 't go of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_31= ktpc2Project31\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"Tip:  Actor List\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"Tip:  Actor List\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc2Project31\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xC6 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xC6 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0F 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x41 0x63 0x74    // '???  Act' \n\t0x6F 0x72 0x20 0x4C 0x69 0x73 0x74 0x0D    // 'or List?' \n\t0x0A 0x54 0x68 0x65 0x20 0x41 0x63 0x74    // '?The Act' \n\t0x6F 0x72 0x20 0x4C 0x69 0x73 0x74 0x20    // 'or List ' \n\t0x6B 0x65 0x65 0x70 0x73 0x20 0x74 0x72    // 'keeps tr' \n\t0x61 0x63 0x6B 0x20 0x6F 0x66 0x20 0x61    // 'ack of a' \n\t0x6C 0x6C 0x20 0x74 0x68 0x65 0x20 0x61    // 'll the a' \n\t0x63 0x74 0x6F 0x72 0x73 0x20 0x69 0x6E    // 'ctors in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x2E 0x20 0x20 0x49 0x66    // 'vie.  If' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x20 0x69 0x73 0x20 0x6F 0x75 0x74    // 'r is out' \n\t0x2D 0x6F 0x66 0x2D 0x76 0x69 0x65 0x77    // '-of-view' \n\t0x20 0x6F 0x72 0x20 0x62 0x65 0x68 0x69    // ' or behi' \n\t0x6E 0x64 0x20 0x61 0x6E 0x6F 0x74 0x68    // 'nd anoth' \n\t0x65 0x72 0x20 0x6F 0x62 0x6A 0x65 0x63    // 'er objec' \n\t0x74 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 't, click' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x20 0x69 0x6E 0x20 0x74 0x68    // 'or in th' \n\t0x65 0x20 0x41 0x63 0x74 0x6F 0x72 0x20    // 'e Actor ' \n\t0x4C 0x69 0x73 0x74 0x2E 0x20 0x20 0x54    // 'List.  T' \n\t0x68 0x65 0x20 0x61 0x63 0x74 0x6F 0x72    // 'he actor' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x72 0x65    // ' will re' \n\t0x61 0x70 0x70 0x65 0x61 0x72 0x20 0x6F    // 'appear o' \n\t0x6E 0x2D 0x73 0x74 0x61 0x67 0x65 0x2E    // 'n-stage.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/project3.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= To_play_this_movie__click\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"To play this movie, click \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"To play this movie, click \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobProject kidGadgetPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"To_play_this_movie__click\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x78 0x00 0x00 0x00    // '????x???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Tip___Another_movie __HELP_SYMBOL( STN \"Tip___Another_movie\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x01    // '????X???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x03    // '????8???' \n\t0x0B 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x40    // '????F??@' \n\t0x03 0x00 0x00 0x00 0x58 0x00 0x00 0x40    // '????X??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x46 0x00 0x00 0x82    // '????F??' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0xC0    // '????F??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x61 0x79    // ' the way' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x69 0x73 0x20 0x73 0x75    // 'ie is su' \n\t0x70 0x70 0x6F 0x73 0x65 0x64 0x20 0x74    // 'pposed t' \n\t0x6F 0x20 0x6C 0x6F 0x6F 0x6B 0x2C 0x20    // 'o look, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x50 0x6C 0x61 0x79 0x20 0x62    // 'e Play b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x2E 0x0D 0x0A    // 'utton.??' \n\t0x01 0x20 0x41 0x6E 0x6F 0x74 0x68 0x65    // '? Anothe' \n\t0x72 0x20 0x70 0x72 0x6F 0x6A 0x65 0x63    // 'r projec' \n\t0x74 0x3F                                  // 't?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= To_see_the_steps_for_changing\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"To see the steps for changing\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"To see the steps for changing\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"To_see_the_steps_for_changing\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x01    // '????=???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x03    // '????2???' \n\t0x0B 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x40    // '????=??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x6D    // 'ps for m' \n\t0x61 0x6B 0x69 0x6E 0x67 0x20 0x74 0x68    // 'aking th' \n\t0x69 0x73 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'is movie' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x48 0x6F 0x77 0x20    // 'the How ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E         // 'button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= Why__Actions__when_viewed\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Why--When Nakita sees\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Why--When Nakita sees\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav3Project02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"Why__Actions__when_viewed\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav3Project02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x68 0x65 0x6E 0x20 0x4E    // '??When N' \n\t0x61 0x6B 0x69 0x74 0x61 0x20 0x73 0x65    // 'akita se' \n\t0x65 0x73 0x20 0x74 0x68 0x65 0x20 0x72    // 'es the r' \n\t0x61 0x74 0x2C 0x20 0x68 0x65 0x72 0x20    // 'at, her ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x20 0x63    // 'action c' \n\t0x68 0x61 0x6E 0x67 0x65 0x73 0x20 0x66    // 'hanges f' \n\t0x72 0x6F 0x6D 0x20 0x52 0x75 0x6E 0x20    // 'rom Run ' \n\t0x28 0x72 0x75 0x6E 0x6E 0x69 0x6E 0x67    // '(running' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x68 0x65    // ' with he' \n\t0x72 0x20 0x61 0x72 0x6D 0x73 0x20 0x62    // 'r arms b' \n\t0x79 0x20 0x68 0x65 0x72 0x20 0x73 0x69    // 'y her si' \n\t0x64 0x65 0x29 0x20 0x74 0x6F 0x20 0x52    // 'de) to R' \n\t0x75 0x6E 0x20 0x53 0x63 0x61 0x72 0x65    // 'un Scare' \n\t0x64 0x20 0x28 0x72 0x75 0x6E 0x6E 0x69    // 'd (runni' \n\t0x6E 0x67 0x20 0x77 0x69 0x74 0x68 0x20    // 'ng with ' \n\t0x68 0x65 0x72 0x20 0x61 0x72 0x6D 0x73    // 'her arms' \n\t0x20 0x6F 0x75 0x74 0x20 0x69 0x6E 0x20    // ' out in ' \n\t0x66 0x72 0x6F 0x6E 0x74 0x20 0x6F 0x66    // 'front of' \n\t0x20 0x68 0x65 0x72 0x29 0x2E 0x20 0x20    // ' her).  ' \n\t0x57 0x61 0x74 0x63 0x68 0x20 0x74 0x68    // 'Watch th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'e movie ' \n\t0x61 0x67 0x61 0x69 0x6E 0x20 0x74 0x6F    // 'again to' \n\t0x20 0x73 0x65 0x65 0x20 0x69 0x66 0x20    // ' see if ' \n\t0x79 0x6F 0x75 0x20 0x63 0x61 0x6E 0x20    // 'you can ' \n\t0x74 0x65 0x6C 0x6C 0x20 0x74 0x68 0x65    // 'tell the' \n\t0x20 0x64 0x69 0x66 0x66 0x65 0x72 0x65    // ' differe' \n\t0x6E 0x63 0x65 0x2E                        // 'nce.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= I_created_the_first_part\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"I created the first part\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"I created the first part\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobProject 0x0 kidPlayProjectSounds 0x140 0xF0 0x57415645 kwav3Project03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"I_created_the_first_part\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x10 0x01 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x11 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x10 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x10 0x01 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x20 0x63 0x72 0x65 0x61    // '??I crea' \n\t0x74 0x65 0x64 0x20 0x74 0x68 0x65 0x20    // 'ted the ' \n\t0x66 0x69 0x72 0x73 0x74 0x20 0x70 0x61    // 'first pa' \n\t0x72 0x74 0x20 0x6F 0x66 0x20 0x74 0x68    // 'rt of th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'e movie ' \n\t0x66 0x6F 0x72 0x20 0x79 0x6F 0x75 0x2E    // 'for you.' \n\t0x20 0x20 0x41 0x20 0x72 0x61 0x74 0x20    // '  A rat ' \n\t0x6A 0x75 0x73 0x74 0x20 0x63 0x72 0x6F    // 'just cro' \n\t0x73 0x73 0x65 0x64 0x20 0x4E 0x61 0x6B    // 'ssed Nak' \n\t0x69 0x74 0x61 0x27 0x73 0x20 0x70 0x61    // 'ita's pa' \n\t0x74 0x68 0x20 0x61 0x6E 0x64 0x20 0x73    // 'th and s' \n\t0x74 0x61 0x72 0x74 0x6C 0x65 0x64 0x20    // 'tartled ' \n\t0x68 0x65 0x72 0x2E 0x20 0x20 0x49 0x20    // 'her.  I ' \n\t0x61 0x64 0x64 0x65 0x64 0x20 0x4E 0x61    // 'added Na' \n\t0x6B 0x69 0x74 0x61 0x27 0x73 0x20 0x72    // 'kita's r' \n\t0x75 0x6E 0x20 0x61 0x63 0x74 0x69 0x6F    // 'un actio' \n\t0x6E 0x2C 0x20 0x77 0x68 0x69 0x63 0x68    // 'n, which' \n\t0x20 0x70 0x6C 0x61 0x79 0x73 0x20 0x75    // ' plays u' \n\t0x6E 0x74 0x69 0x6C 0x20 0x74 0x68 0x65    // 'ntil the' \n\t0x20 0x65 0x6E 0x64 0x20 0x6F 0x66 0x20    // ' end of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x76 0x69    // 'the movi' \n\t0x65 0x2E 0x0D 0x0A 0x4E 0x6F 0x77 0x20    // 'e.??Now ' \n\t0x69 0x74 0x92 0x73 0x20 0x79 0x6F 0x75    // 'its you' \n\t0x72 0x20 0x74 0x75 0x72 0x6E 0x20 0x74    // 'r turn t' \n\t0x6F 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'o change' \n\t0x20 0x4E 0x61 0x6B 0x69 0x74 0x61 0x27    // ' Nakita'' \n\t0x73 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 's action' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x52 0x75    // ' from Ru' \n\t0x6E 0x2A 0x20 0x74 0x6F 0x20 0x52 0x75    // 'n* to Ru' \n\t0x6E 0x20 0x53 0x63 0x61 0x72 0x65 0x64    // 'n Scared' \n\t0x2A 0x2C 0x20 0x61 0x6E 0x64 0x20 0x66    // '*, and f' \n\t0x72 0x6F 0x6D 0x20 0x52 0x75 0x6E 0x20    // 'rom Run ' \n\t0x53 0x63 0x61 0x72 0x65 0x64 0x2A 0x20    // 'Scared* ' \n\t0x74 0x6F 0x20 0x59 0x65 0x6C 0x6C 0x2E    // 'to Yell.' \n\t0x0D 0x0A 0x01                             // '???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= CO__To_change_Nakita_s_act\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"CO--To change Nakita's act\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"CO--To change Nakita's act\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsActionBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"CO__To_change_Nakita_s_act\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x78 0x00 0x00 0x00    // '????x???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x03    // '????!???' \n\t0x0B 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x0F 0x00 0x00 0xFD 0x29 0x00 0x00 0x03    // '???)???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x4E 0x61 0x6B 0x69    // 'nge Naki' \n\t0x74 0x61 0x27 0x73 0x20 0x61 0x63 0x74    // 'ta's act' \n\t0x69 0x6F 0x6E 0x2C 0x20 0x63 0x6C 0x69    // 'ion, cli' \n\t0x63 0x6B 0x20 0x41 0x63 0x74 0x69 0x6F    // 'ck Actio' \n\t0x6E 0x73 0x2E                             // 'ns.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= CO__Click_Nakita\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO--Click Nakita\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO--Click Nakita\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav3Project05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Click_Nakita\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4D 0x00 0x00 0x00    // '????M???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x4E 0x61 0x6B 0x69 0x74 0x61 0x2E         // 'Nakita.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= CO__Click_Run_Scared\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--Click Run Scared\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--Click Run Scared\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav3Project06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_21=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Click_Run_Scared\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_21=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8C 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Tip__Mean __HELP_SYMBOL( STN \"Tip__Mean\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_21=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x29 0x00 0x00 0x40    // '????)??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x16 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_21=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x93 0x52 0x75 0x6E 0x20 0x53 0x63 0x61    // 'Run Sca' \n\t0x72 0x65 0x64 0x2A 0x2E 0x94 0x0D 0x0A    // 'red*.??' \n\t0x01 0x20 0x57 0x68 0x61 0x74 0x20 0x64    // '? What d' \n\t0x6F 0x65 0x73 0x20 0x2A 0x20 0x6D 0x65    // 'oes * me' \n\t0x61 0x6E 0x3F                             // 'an?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= CO__Then_click_OK\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO--Then click OK \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO--Then click OK \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidBrowserOk kidPlayProjectSounds 0x17 0xFFFFFFCE 0x57415645 kwav3Project07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Then_click_OK\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidBrowserOk\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x56 0x00 0x00 0x00    // '????V???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0xFB 0x00 0x00 0x0E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x65 0x6E 0x20 0x63    // '??Then c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x4F 0x4B 0x2E    // 'lick OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= CO__Presto___The_new_action\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"CO--Presto!  The new action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"CO--Presto!  The new action\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_24=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Presto___The_new_action\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_24=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x04 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_24=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x7D 0x00 0x00 0x01    // '????}???' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0x03    // '????q???' \n\t0x0B 0x00 0x00 0xFD 0x75 0x00 0x00 0x03    // '???u???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_24=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x72 0x65 0x73 0x74 0x6F    // '??Presto' \n\t0x21 0x20 0x20 0x54 0x68 0x65 0x20 0x6E    // '!  The n' \n\t0x65 0x77 0x20 0x61 0x63 0x74 0x69 0x6F    // 'ew actio' \n\t0x6E 0x20 0x69 0x73 0x20 0x61 0x70 0x70    // 'n is app' \n\t0x6C 0x69 0x65 0x64 0x20 0x74 0x6F 0x20    // 'lied to ' \n\t0x4E 0x61 0x6B 0x69 0x74 0x61 0x20 0x66    // 'Nakita f' \n\t0x72 0x6F 0x6D 0x20 0x74 0x68 0x69 0x73    // 'rom this' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x6F    // ' frame o' \n\t0x6E 0x2E 0x20 0x20 0x54 0x6F 0x20 0x70    // 'n.  To p' \n\t0x6C 0x61 0x79 0x20 0x74 0x68 0x65 0x20    // 'lay the ' \n\t0x6E 0x65 0x77 0x20 0x65 0x6E 0x64 0x69    // 'new endi' \n\t0x6E 0x67 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ng to th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x2C    // 'e movie,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x50 0x6C 0x61 0x79 0x20    // 'he Play ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E         // 'button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= CO__Click_the_button_below\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO--Click the button below\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO--Click the button below\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameRW kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_22=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Click_the_button_below\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameRW\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_22=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Tip___If_you_rewind_too_far __HELP_SYMBOL( STN \"Tip___If_you_rewind_too_far\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewind __HELP_SYMBOL( STN \"mbmpRewind\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_22=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0xFC 0x00 0x00 0x1A 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xC3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xC7 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x83 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xB4 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xC2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xC5 0x00 0x00 0x03    // '???????' \n\t0xF0 0x00 0x00 0xFD 0xC7 0x00 0x00 0x03    // '?????' \n\t0x0F 0x00 0x00 0xFD 0xDC 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xC5 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0xDC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x85 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0xC5 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0xC5 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_22=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x50 0x72 0x65 0x76    // 'the Prev' \n\t0x69 0x6F 0x75 0x73 0x20 0x62 0x75 0x74    // 'ious but' \n\t0x74 0x6F 0x6E 0x2D 0x01 0x20 0x75 0x6E    // 'ton-? un' \n\t0x74 0x69 0x6C 0x20 0x79 0x6F 0x75 0x20    // 'til you ' \n\t0x72 0x65 0x77 0x69 0x6E 0x64 0x20 0x79    // 'rewind y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'e to the' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x77    // ' frame w' \n\t0x68 0x65 0x72 0x65 0x20 0x4E 0x61 0x6B    // 'here Nak' \n\t0x69 0x74 0x61 0x27 0x73 0x20 0x61 0x72    // 'ita's ar' \n\t0x6D 0x73 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'ms move ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x68 0x65 0x72    // 'from her' \n\t0x20 0x73 0x69 0x64 0x65 0x20 0x74 0x6F    // ' side to' \n\t0x20 0x6F 0x75 0x74 0x20 0x69 0x6E 0x20    // ' out in ' \n\t0x66 0x72 0x6F 0x6E 0x74 0x20 0x6F 0x66    // 'front of' \n\t0x20 0x68 0x65 0x72 0x2E 0x0D 0x0A 0x57    // ' her.??W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x72 0x65 0x20 0x72 0x65 0x61 0x64 0x79    // 're ready' \n\t0x20 0x66 0x6F 0x72 0x20 0x74 0x68 0x65    // ' for the' \n\t0x20 0x6E 0x65 0x78 0x74 0x20 0x73 0x74    // ' next st' \n\t0x65 0x70 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ep, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x50 0x72    // 'k the Pr' \n\t0x6F 0x6A 0x65 0x63 0x74 0x20 0x47 0x61    // 'oject Ga' \n\t0x64 0x67 0x65 0x74 0x2E 0x0D 0x0A 0x01    // 'dget.???' \n\t0x20 0x49 0x66 0x20 0x79 0x6F 0x75 0x20    // ' If you ' \n\t0x72 0x65 0x77 0x69 0x6E 0x64 0x20 0x74    // 'rewind t' \n\t0x6F 0x6F 0x20 0x66 0x61 0x72              // 'oo far' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= To_see_the_steps_for_adding\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"To see the steps for adding\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"To see the steps for adding\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"To_see_the_steps_for_adding\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7E 0x00 0x00 0x00    // '????~???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x40 0x00 0x00 0x01    // '????@???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x03    // '????5???' \n\t0x0B 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ps for a' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x4E 0x61    // 'dding Na' \n\t0x6B 0x69 0x74 0x61 0x92 0x73 0x20 0x6C    // 'kitas l' \n\t0x69 0x6E 0x65 0x2C 0x20 0x63 0x6C 0x69    // 'ine, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x48    // 'ck the H' \n\t0x6F 0x77 0x20 0x62 0x75 0x74 0x74 0x6F    // 'ow butto' \n\t0x6E 0x2E                                  // 'n.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= Why__There_are_two_ways_to\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"Why--There are two ways to \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"Why--There are two ways to \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav3Project0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"Why__There_are_two_ways_to\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav3Project0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x80    // '????6??' \n\t0x00 0x00 0x02 0x00 0x7E 0x00 0x00 0x80    // '????~??' \n\t0x00 0x00 0x00 0x00 0xA0 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x36 0x00 0x00 0x82    // '????6??' \n\t0x05 0x00 0x00 0x00 0xA0 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x61 0x6B    // '??To mak' \n\t0x65 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'e an act' \n\t0x6F 0x72 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'or move ' \n\t0x61 0x6E 0x64 0x20 0x73 0x70 0x65 0x61    // 'and spea' \n\t0x6B 0x0D 0x0A 0x31 0x09 0x43 0x68 0x6F    // 'k??1?Cho' \n\t0x6F 0x73 0x65 0x20 0x61 0x6E 0x20 0x61    // 'ose an a' \n\t0x63 0x74 0x69 0x6F 0x6E 0x2E 0x0D 0x0A    // 'ction.??' \n\t0x32 0x20 0x20 0x52 0x65 0x77 0x69 0x6E    // '2  Rewin' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'd the mo' \n\t0x76 0x69 0x65 0x20 0x74 0x6F 0x20 0x74    // 'vie to t' \n\t0x68 0x65 0x20 0x66 0x72 0x61 0x6D 0x65    // 'he frame' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x74    // ' where t' \n\t0x68 0x65 0x20 0x61 0x63 0x74 0x6F 0x72    // 'he actor' \n\t0x20 0x66 0x69 0x72 0x73 0x74 0x20 0x73    // ' first s' \n\t0x74 0x61 0x72 0x74 0x73 0x20 0x74 0x6F    // 'tarts to' \n\t0x20 0x6D 0x6F 0x76 0x65 0x2E 0x0D 0x0A    // ' move.??' \n\t0x33 0x20 0x20 0x41 0x74 0x74 0x61 0x63    // '3  Attac' \n\t0x68 0x20 0x64 0x69 0x61 0x6C 0x6F 0x67    // 'h dialog' \n\t0x75 0x65 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ue to th' \n\t0x65 0x20 0x61 0x63 0x74 0x6F 0x72 0x2E    // 'e actor.' \n\t0x0D 0x0A 0x34 0x20 0x20 0x43 0x6C 0x69    // '??4  Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x50    // 'ck the P' \n\t0x6C 0x61 0x79 0x20 0x62 0x75 0x74 0x74    // 'lay butt' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= CO__To_play_the_movie_so\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"CO--To play the movie so\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"CO--To play the movie so\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_23=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__To_play_the_movie_so\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_23=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x95 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_23=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x03    // '????$???' \n\t0x0B 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_23=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x6C 0x61    // '??To pla' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'y the mo' \n\t0x76 0x69 0x65 0x20 0x73 0x6F 0x20 0x66    // 'vie so f' \n\t0x61 0x72 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ar, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x50 0x6C    // 'k the Pl' \n\t0x61 0x79 0x20 0x62 0x75 0x74 0x74 0x6F    // 'ay butto' \n\t0x6E 0x2E                                  // 'n.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= Why__Frame_Slider\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"Why--Frame Slider\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"Why--Frame Slider\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav3Project0D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"Why__Frame_Slider\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav3Project0D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpQstButton_bmp __HELP_SYMBOL( STN \"mbmpQstButton_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewind __HELP_SYMBOL( STN \"mbmpRewind\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpForward __HELP_SYMBOL( STN \"mbmpForward\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xF0 0x00 0x00 0x01    // '???????' \n\t0x01 0xFD 0x00 0x00 0xFB 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x20 0x01 0x00 0x01    // '???? ???' \n\t0x01 0xFD 0x00 0x00 0x2F 0x01 0x00 0x01    // '???/???' \n\t0x01 0x00 0x00 0x00 0x30 0x01 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0xCB 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0xFB 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00 0x2F 0x01 0x00 0xC0    // '????/??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x57 0x68 0x79    // '???  Why' \n\t0x3F 0x0D 0x0A 0x54 0x68 0x65 0x20 0x46    // '???The F' \n\t0x72 0x61 0x6D 0x65 0x20 0x53 0x6C 0x69    // 'rame Sli' \n\t0x64 0x65 0x72 0x20 0x61 0x6C 0x6C 0x6F    // 'der allo' \n\t0x77 0x73 0x20 0x79 0x6F 0x75 0x20 0x74    // 'ws you t' \n\t0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20 0x66    // 'o move f' \n\t0x6F 0x72 0x77 0x61 0x72 0x64 0x73 0x20    // 'orwards ' \n\t0x6F 0x72 0x20 0x62 0x61 0x63 0x6B 0x77    // 'or backw' \n\t0x61 0x72 0x64 0x73 0x20 0x77 0x69 0x74    // 'ards wit' \n\t0x68 0x69 0x6E 0x20 0x61 0x20 0x73 0x63    // 'hin a sc' \n\t0x65 0x6E 0x65 0x2E 0x20 0x20 0x54 0x6F    // 'ene.  To' \n\t0x20 0x75 0x73 0x65 0x20 0x74 0x68 0x65    // ' use the' \n\t0x20 0x46 0x72 0x61 0x6D 0x65 0x20 0x53    // ' Frame S' \n\t0x6C 0x69 0x64 0x65 0x72 0x2C 0x20 0x63    // 'lider, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x46 0x69 0x72 0x73 0x74 0x2C 0x20    // ' First, ' \n\t0x50 0x72 0x65 0x76 0x69 0x6F 0x75 0x73    // 'Previous' \n\t0x2C 0x20 0x4E 0x65 0x78 0x74 0x2C 0x20    // ', Next, ' \n\t0x6F 0x72 0x20 0x4C 0x61 0x73 0x74 0x20    // 'or Last ' \n\t0x41 0x72 0x72 0x6F 0x77 0x73 0x20 0x6F    // 'Arrows o' \n\t0x72 0x20 0x64 0x72 0x61 0x67 0x20 0x74    // 'r drag t' \n\t0x68 0x65 0x20 0x73 0x6C 0x69 0x64 0x65    // 'he slide' \n\t0x72 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'r in the' \n\t0x20 0x6D 0x69 0x64 0x64 0x6C 0x65 0x20    // ' middle ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x62    // 'of the b' \n\t0x61 0x72 0x2E 0x0D 0x0A 0x95 0x09 0x54    // 'ar.???T' \n\t0x6F 0x20 0x67 0x6F 0x20 0x66 0x6F 0x72    // 'o go for' \n\t0x77 0x61 0x72 0x64 0x20 0x6F 0x6E 0x65    // 'ward one' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x2C 0x20    // ' frame, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x4E 0x65 0x78 0x74 0x20 0x41    // 'e Next A' \n\t0x72 0x72 0x6F 0x77 0x2D 0x01 0x0D 0x0A    // 'rrow-???' \n\t0x95 0x09 0x54 0x6F 0x20 0x67 0x6F 0x20    // '?To go ' \n\t0x62 0x61 0x63 0x6B 0x20 0x6F 0x6E 0x65    // 'back one' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x2C 0x20    // ' frame, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x50 0x72 0x65 0x76 0x69 0x6F    // 'e Previo' \n\t0x75 0x73 0x20 0x41 0x72 0x72 0x6F 0x77    // 'us Arrow' \n\t0x2D 0x01                                  // '-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= CO__To_find_Nakita_s_line\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO--To find Nakita's line\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO--To find Nakita's line\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSoundsCover kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project0E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"CO__To_find_Nakita_s_line\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSoundsCover\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project0E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x74 0x00 0x00 0x00    // '????t???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x66 0x69 0x6E    // '??To fin' \n\t0x64 0x20 0x4E 0x61 0x6B 0x69 0x74 0x61    // 'd Nakita' \n\t0x92 0x73 0x20 0x6C 0x69 0x6E 0x65 0x2C    // 's line,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x53    // ' click S' \n\t0x6F 0x75 0x6E 0x64 0x73 0x2E              // 'ounds.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= CO__Click_Speech\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO--Click Speech\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO--Click Speech\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSoundsMicBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project0F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"CO__Click_Speech\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSoundsMicBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project0F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4F 0x00 0x00 0x00    // '????O???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x53 0x70 0x65 0x65 0x63 0x68 0x2E         // 'Speech.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= CO__Click__A_rat\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO--Click \\\"A rat!\\\"\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO--Click \\\"A rat!\\\"\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav3Project10\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Click__A_rat\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project10\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7F 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x93 0x4F 0x68 0x20 0x6E 0x6F 0x21 0x20    // 'Oh no! ' \n\t0x20 0x41 0x20 0x72 0x61 0x74 0x21 0x94    // ' A rat!' \n\t0x20 0x54 0x68 0x65 0x6E 0x20 0x63 0x6C    // ' Then cl' \n\t0x69 0x63 0x6B 0x20 0x4F 0x4B 0x2E         // 'ick OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= Tip__Undo\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"blank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"blank\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 kidPlayProjectSounds 0x140 0xF0 0x57415645 kwav3Project11\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"Tip__Undo\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project11\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9B 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x62 0x6C 0x61 0x6E 0x6B         // '??blank' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= CO__Now_click_Nakita\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"CO--Now click Nakita\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"CO--Now click Nakita\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav3Project12\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Now_click_Nakita\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project12\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6D 0x00 0x00 0x00    // '????m???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x77 0x20 0x63 0x6C    // '??Now cl' \n\t0x69 0x63 0x6B 0x20 0x4E 0x61 0x6B 0x69    // 'ick Naki' \n\t0x74 0x61 0x2E                             // 'ta.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= CO__To_see_the_steps_for\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO--To see the steps for\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO--To see the steps for\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project13\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"CO__To_see_the_steps_for\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project13\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x03    // '????1???' \n\t0x0B 0x00 0x00 0xFD 0x34 0x00 0x00 0x03    // '???4???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ps for a' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'dding an' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x2C    // ' action,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x48 0x6F 0x77 0x20 0x62    // 'he How b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x2E              // 'utton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= Why_Each_action_moves\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"Why--Each action moves the \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"Why--Each action moves the \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav3Project14\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"Why_Each_action_moves\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav3Project14\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xF1 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x65 0x20 0x59 0x65    // '??The Ye' \n\t0x6C 0x6C 0x20 0x61 0x63 0x74 0x69 0x6F    // 'll actio' \n\t0x6E 0x20 0x6D 0x61 0x6B 0x65 0x73 0x20    // 'n makes ' \n\t0x4E 0x61 0x6B 0x69 0x74 0x61 0x27 0x73    // 'Nakita's' \n\t0x20 0x61 0x72 0x6D 0x73 0x20 0x6D 0x6F    // ' arms mo' \n\t0x76 0x65 0x20 0x75 0x70 0x20 0x74 0x6F    // 've up to' \n\t0x20 0x68 0x65 0x72 0x20 0x6D 0x6F 0x75    // ' her mou' \n\t0x74 0x68 0x20 0x61 0x73 0x20 0x69 0x66    // 'th as if' \n\t0x20 0x73 0x68 0x65 0x20 0x69 0x73 0x20    // ' she is ' \n\t0x79 0x65 0x6C 0x6C 0x69 0x6E 0x67 0x2E    // 'yelling.' \n\t0x20 0x20 0x48 0x65 0x72 0x20 0x61 0x72    // '  Her ar' \n\t0x6D 0x20 0x6D 0x6F 0x76 0x65 0x6D 0x65    // 'm moveme' \n\t0x6E 0x74 0x20 0x61 0x64 0x64 0x73 0x20    // 'nt adds ' \n\t0x66 0x72 0x61 0x6D 0x65 0x73 0x20 0x74    // 'frames t' \n\t0x6F 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'o your m' \n\t0x6F 0x76 0x69 0x65 0x2E 0x20 0x20 0x49    // 'ovie.  I' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'n the ne' \n\t0x78 0x74 0x20 0x73 0x74 0x65 0x70 0x2C    // 'xt step,' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x77 0x65    // ' when we' \n\t0x20 0x61 0x74 0x74 0x61 0x63 0x68 0x20    // ' attach ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F    // 'sound to' \n\t0x20 0x4E 0x61 0x6B 0x69 0x74 0x61 0x2C    // ' Nakita,' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x20 0x77 0x69 0x6C 0x6C 0x20    // 'nd will ' \n\t0x70 0x6C 0x61 0x79 0x20 0x6F 0x76 0x65    // 'play ove' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x66 0x72    // 'r the fr' \n\t0x61 0x6D 0x65 0x73 0x20 0x6D 0x61 0x64    // 'ames mad' \n\t0x65 0x20 0x62 0x79 0x20 0x4E 0x61 0x6B    // 'e by Nak' \n\t0x69 0x74 0x61 0x27 0x73 0x20 0x61 0x72    // 'ita's ar' \n\t0x6D 0x20 0x6D 0x6F 0x76 0x65 0x6D 0x65    // 'm moveme' \n\t0x6E 0x74 0x2E                             // 'nt.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= CO__Click_the_button_below_to\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"CO--Click the button below to \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"CO--Click the button below to \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameRW kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project15\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Click_the_button_below_to\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameRW\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project15\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewind __HELP_SYMBOL( STN \"mbmpRewind\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0xFC 0x00 0x00 0x1A 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA8 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xB6 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1A 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x50 0x72 0x65 0x76    // 'the Prev' \n\t0x69 0x6F 0x75 0x73 0x20 0x62 0x75 0x74    // 'ious but' \n\t0x74 0x6F 0x6E 0x2D 0x01 0x20 0x75 0x6E    // 'ton-? un' \n\t0x74 0x69 0x6C 0x20 0x79 0x6F 0x75 0x20    // 'til you ' \n\t0x72 0x65 0x77 0x69 0x6E 0x64 0x20 0x79    // 'rewind y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'e to the' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x77    // ' frame w' \n\t0x68 0x65 0x72 0x65 0x20 0x4E 0x61 0x6B    // 'here Nak' \n\t0x69 0x74 0x61 0x27 0x73 0x20 0x61 0x72    // 'ita's ar' \n\t0x6D 0x73 0x20 0x73 0x74 0x61 0x72 0x74    // 'ms start' \n\t0x20 0x74 0x6F 0x20 0x6D 0x6F 0x76 0x65    // ' to move' \n\t0x20 0x75 0x70 0x20 0x74 0x6F 0x20 0x68    // ' up to h' \n\t0x65 0x72 0x20 0x6D 0x6F 0x75 0x74 0x68    // 'er mouth' \n\t0x2E 0x0D 0x0A 0x57 0x68 0x65 0x6E 0x20    // '.??When ' \n\t0x79 0x6F 0x75 0x27 0x72 0x65 0x20 0x72    // 'you're r' \n\t0x65 0x61 0x64 0x79 0x20 0x66 0x6F 0x72    // 'eady for' \n\t0x20 0x74 0x68 0x65 0x20 0x6E 0x65 0x78    // ' the nex' \n\t0x74 0x20 0x73 0x74 0x65 0x70 0x2C 0x20    // 't step, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x50 0x72 0x6F 0x6A 0x65 0x63    // 'e Projec' \n\t0x74 0x20 0x47 0x61 0x64 0x67 0x65 0x74    // 't Gadget' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= CO__To_add_an_action\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO--To add an action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO--To add an action\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsCover kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project16\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"CO__To_add_an_action\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsCover\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project16\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7D 0x00 0x00 0x00    // '????}???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x0F 0x00 0x00 0xFD 0x27 0x00 0x00 0x03    // '???'???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x69    // ' an acti' \n\t0x6F 0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'on, clic' \n\t0x6B 0x20 0x41 0x63 0x74 0x6F 0x72 0x73    // 'k Actors' \n\t0x20 0x26 0x20 0x50 0x72 0x6F 0x70 0x73    // ' & Props' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= CO__Click_Actions\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"CO--Click Actions\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"CO--Click Actions\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsActionBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project17\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"CO__Click_Actions\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project17\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4F 0x00 0x00 0x00    // '????O???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x0E 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x41 0x63 0x74 0x69 0x6F 0x6E 0x73 0x2E    // 'Actions.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_18= CO__Click_yell\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"CO--Click yell\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"CO--Click yell\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav3Project18\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Click_yell\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project18\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x83 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x22 0x59 0x65 0x6C    // 'the \"Yel' \n\t0x6C 0x22 0x20 0x61 0x63 0x74 0x69 0x6F    // 'l\" actio' \n\t0x6E 0x2E                                  // 'n.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_19= CO__Click_Nakita_Then_hold\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO--Click Nakita.  Then, hold\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO--Click Nakita.  Then, hold\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav3Project19\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Click_Nakita_Then_hold\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project19\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA7 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xAB 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xB3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x4E 0x61 0x6B 0x69 0x74 0x61 0x2E 0x20    // 'Nakita. ' \n\t0x20 0x54 0x68 0x65 0x6E 0x2C 0x20 0x68    // ' Then, h' \n\t0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E    // 'old down' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x62 0x75 0x74 0x74 0x6F    // 'se butto' \n\t0x6E 0x20 0x61 0x6E 0x64 0x20 0x77 0x61    // 'n and wa' \n\t0x69 0x74 0x20 0x75 0x6E 0x74 0x69 0x6C    // 'it until' \n\t0x20 0x4E 0x61 0x6B 0x69 0x74 0x61 0x27    // ' Nakita'' \n\t0x73 0x20 0x61 0x72 0x6D 0x73 0x20 0x6D    // 's arms m' \n\t0x6F 0x76 0x65 0x20 0x75 0x70 0x20 0x74    // 'ove up t' \n\t0x6F 0x20 0x68 0x65 0x72 0x20 0x6D 0x6F    // 'o her mo' \n\t0x75 0x74 0x68 0x20 0x61 0x6E 0x64 0x20    // 'uth and ' \n\t0x74 0x68 0x65 0x6E 0x20 0x62 0x61 0x63    // 'then bac' \n\t0x6B 0x20 0x64 0x6F 0x77 0x6E 0x20 0x74    // 'k down t' \n\t0x6F 0x20 0x68 0x65 0x72 0x20 0x73 0x69    // 'o her si' \n\t0x64 0x65 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'de.??To ' \n\t0x73 0x65 0x65 0x20 0x79 0x6F 0x75 0x72    // 'see your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x73    // ' movie s' \n\t0x6F 0x20 0x66 0x61 0x72 0x2C 0x20 0x63    // 'o far, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x50 0x6C 0x61 0x79 0x20 0x62 0x75    // ' Play bu' \n\t0x74 0x74 0x6F 0x6E 0x2E                   // 'tton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= CO__To_see_the_steps\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"CO--To see the steps\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"CO--To see the steps\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project1A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"CO__To_see_the_steps\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project1A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x40 0x00 0x00 0x01    // '????@???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x03    // '????5???' \n\t0x0B 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ps for a' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x4E 0x61    // 'dding Na' \n\t0x6B 0x69 0x74 0x61 0x92 0x73 0x20 0x6C    // 'kitas l' \n\t0x69 0x6E 0x65 0x2C 0x20 0x63 0x6C 0x69    // 'ine, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x48    // 'ck the H' \n\t0x6F 0x77 0x20 0x62 0x75 0x74 0x74 0x6F    // 'ow butto' \n\t0x6E 0x2E                                  // 'n.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1B= Why__Some_actions_need\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"Why--Some actions need \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"Why--Some actions need \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav3Project1B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"Why__Some_actions_need\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav3Project1B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x21 0x01 0x00 0x00    // '????!???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x6D 0x65 0x20 0x61    // '??Some a' \n\t0x63 0x74 0x69 0x6F 0x6E 0x73 0x20 0x6E    // 'ctions n' \n\t0x65 0x65 0x64 0x20 0x64 0x69 0x61 0x6C    // 'eed dial' \n\t0x6F 0x67 0x75 0x65 0x20 0x74 0x6F 0x20    // 'ogue to ' \n\t0x66 0x75 0x6C 0x6C 0x79 0x20 0x63 0x6F    // 'fully co' \n\t0x6D 0x6D 0x75 0x6E 0x69 0x63 0x61 0x74    // 'mmunicat' \n\t0x65 0x20 0x61 0x6E 0x20 0x69 0x64 0x65    // 'e an ide' \n\t0x61 0x2E 0x20 0x20 0x46 0x6F 0x72 0x20    // 'a.  For ' \n\t0x65 0x78 0x61 0x6D 0x70 0x6C 0x65 0x2C    // 'example,' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x4E 0x61    // ' when Na' \n\t0x6B 0x69 0x74 0x61 0x20 0x79 0x65 0x6C    // 'kita yel' \n\t0x6C 0x73 0x2C 0x20 0x69 0x74 0x20 0x73    // 'ls, it s' \n\t0x65 0x74 0x73 0x20 0x75 0x70 0x20 0x74    // 'ets up t' \n\t0x68 0x65 0x20 0x73 0x69 0x74 0x75 0x61    // 'he situa' \n\t0x74 0x69 0x6F 0x6E 0x2C 0x20 0x62 0x75    // 'tion, bu' \n\t0x74 0x20 0x77 0x65 0x20 0x6E 0x65 0x65    // 't we nee' \n\t0x64 0x20 0x4E 0x61 0x6B 0x69 0x74 0x61    // 'd Nakita' \n\t0x27 0x73 0x20 0x6E 0x65 0x78 0x74 0x20    // ''s next ' \n\t0x6C 0x69 0x6E 0x65 0x2C 0x20 0x22 0x57    // 'line, \"W' \n\t0x61 0x69 0x74 0x20 0x75 0x70 0x2C 0x20    // 'ait up, ' \n\t0x57 0x61 0x6E 0x64 0x61 0x22 0x20 0x74    // 'Wanda\" t' \n\t0x6F 0x20 0x75 0x6E 0x64 0x65 0x72 0x73    // 'o unders' \n\t0x74 0x61 0x6E 0x64 0x20 0x77 0x68 0x61    // 'tand wha' \n\t0x74 0x27 0x73 0x20 0x63 0x6F 0x6D 0x69    // 't's comi' \n\t0x6E 0x67 0x20 0x6E 0x65 0x78 0x74 0x20    // 'ng next ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x73    // 'in the s' \n\t0x74 0x6F 0x72 0x79 0x2E 0x20 0x20 0x54    // 'tory.  T' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x64 0x73    // 'he words' \n\t0x20 0x61 0x6E 0x64 0x20 0x74 0x68 0x65    // ' and the' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x20    // ' action ' \n\t0x73 0x68 0x61 0x72 0x65 0x20 0x69 0x6E    // 'share in' \n\t0x20 0x6D 0x61 0x6B 0x69 0x6E 0x67 0x20    // ' making ' \n\t0x74 0x68 0x69 0x73 0x20 0x61 0x20 0x73    // 'this a s' \n\t0x75 0x63 0x63 0x65 0x73 0x73 0x66 0x75    // 'uccessfu' \n\t0x6C 0x20 0x73 0x63 0x65 0x6E 0x65 0x2E    // 'l scene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= CO__To_rewind_the_movie_to\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"CO--To rewind the movie to\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"CO--To rewind the movie to\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameRW kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project1C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__To_rewind_the_movie_to\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameRW\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project1C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5B 0x00 0x00 0x01    // '????[???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x2E 0x2E 0x2E    // '??Cut...' \n\t0x54 0x6F 0x20 0x72 0x65 0x77 0x69 0x6E    // 'To rewin' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'd the mo' \n\t0x76 0x69 0x65 0x20 0x74 0x6F 0x20 0x74    // 'vie to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x4E    // ' where N' \n\t0x61 0x6B 0x69 0x74 0x61 0x20 0x73 0x74    // 'akita st' \n\t0x61 0x72 0x74 0x73 0x20 0x74 0x6F 0x20    // 'arts to ' \n\t0x79 0x65 0x6C 0x6C 0x2C 0x20 0x63 0x6C    // 'yell, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x62    // 'button b' \n\t0x65 0x6C 0x6F 0x77 0x2E                   // 'elow.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1D= CO__Click__Wait_up__Wanda\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"CO--Click \\\"Wait up, Wanda!\\\"\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"CO--Click \\\"Wait up, Wanda!\\\"\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav3Project1D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__Click__Wait_up__Wanda\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project1D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x91 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x93 0x20 0x57 0x61 0x69 0x74 0x20 0x75    // ' Wait u' \n\t0x70 0x2C 0x20 0x57 0x61 0x6E 0x64 0x61    // 'p, Wanda' \n\t0x21 0x94 0x20 0x54 0x68 0x65 0x6E 0x20    // '! Then ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x4F 0x4B    // 'click OK' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1E= Tip__Mean\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"Tip:  *\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"Tip:  *\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"Tip__Mean\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x89 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x89 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x57 0x68 0x61    // '???  Wha' \n\t0x74 0x20 0x64 0x6F 0x65 0x73 0x20 0x2A    // 't does *' \n\t0x20 0x6D 0x65 0x61 0x6E 0x3F 0x0D 0x0A    // ' mean???' \n\t0x41 0x63 0x74 0x69 0x6F 0x6E 0x73 0x20    // 'Actions ' \n\t0x6D 0x61 0x72 0x6B 0x65 0x64 0x20 0x77    // 'marked w' \n\t0x69 0x74 0x68 0x20 0x61 0x6E 0x20 0x61    // 'ith an a' \n\t0x73 0x74 0x65 0x72 0x69 0x73 0x6B 0x20    // 'sterisk ' \n\t0x28 0x2A 0x29 0x20 0x6D 0x65 0x61 0x6E    // '(*) mean' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x74 0x68    // ' that th' \n\t0x65 0x73 0x65 0x20 0x61 0x63 0x74 0x69    // 'ese acti' \n\t0x6F 0x6E 0x73 0x20 0x77 0x6F 0x72 0x6B    // 'ons work' \n\t0x20 0x62 0x65 0x73 0x74 0x20 0x77 0x68    // ' best wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x20 0x68    // 'en you h' \n\t0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E    // 'old down' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x62 0x75 0x74 0x74 0x6F    // 'se butto' \n\t0x6E 0x20 0x61 0x6E 0x64 0x20 0x64 0x72    // 'n and dr' \n\t0x61 0x67 0x2E                             // 'ag.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1F= Congratulations\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"Congratulations!\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"Congratulations!\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 kidPlayProjectSounds 0x258 0x1C2 0x57415645 kwav3Project1F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"Congratulations\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project1F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9C 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x04 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA6 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x02 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x40    // '????U??@' \n\t0x03 0x00 0x00 0x00 0x6D 0x00 0x00 0x40    // '????m??@' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x40    // '????o??@' \n\t0x04 0x00 0x00 0x00 0x8E 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xA6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x80    // '????@??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x90 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0xC0    // '????@??' \n\t0x01 0x00 0x00 0x00 0x55 0x00 0x00 0xC0    // '????U??' \n\t0x01 0x00 0x00 0x00 0x6F 0x00 0x00 0xC0    // '????o??' \n\t0x01 0x00 0x00 0x00 0x90 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x6E 0x67 0x72 0x61    // '??Congra' \n\t0x74 0x75 0x6C 0x61 0x74 0x69 0x6F 0x6E    // 'tulation' \n\t0x73 0x21 0x20 0x20 0x59 0x6F 0x75 0x27    // 's!  You'' \n\t0x72 0x65 0x20 0x64 0x6F 0x6E 0x65 0x21    // 're done!' \n\t0x20 0x20 0x57 0x68 0x61 0x74 0x20 0x77    // '  What w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x79 0x6F 0x75    // 'ould you' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x74 0x6F    // ' like to' \n\t0x20 0x64 0x6F 0x20 0x6E 0x6F 0x77 0x3F    // ' do now?' \n\t0x0D 0x0A 0x01 0x09 0x57 0x6F 0x72 0x6B    // '????Work' \n\t0x20 0x6F 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' on your' \n\t0x20 0x6F 0x77 0x6E 0x3F 0x0D 0x0A 0x01    // ' own????' \n\t0x09 0x53 0x74 0x61 0x72 0x74 0x20 0x61    // '?Start a' \n\t0x6E 0x6F 0x74 0x68 0x65 0x72 0x20 0x70    // 'nother p' \n\t0x72 0x6F 0x6A 0x65 0x63 0x74 0x3F 0x0D    // 'roject??' \n\t0x0A 0x01 0x09 0x47 0x6F 0x20 0x62 0x61    // '???Go ba' \n\t0x63 0x6B 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ck to th' \n\t0x65 0x20 0x50 0x72 0x6F 0x6A 0x65 0x63    // 'e Projec' \n\t0x74 0x73 0x20 0x52 0x6F 0x6F 0x6D 0x3F    // 'ts Room?' \n\t0x0D 0x0A 0x01 0x09 0x51 0x75 0x69 0x74    // '????Quit' \n\t0x20 0x33 0x44 0x20 0x4D 0x6F 0x76 0x69    // ' 3D Movi' \n\t0x65 0x20 0x4D 0x61 0x6B 0x65 0x72 0x3F    // 'e Maker?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_20= Tip___Another_movie\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"Tip:  Another movie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"Tip:  Another movie\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav3Project20\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"Tip___Another_movie\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav3Project20\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6B 0x00 0x00 0x01    // '????k???' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x2E 0x00 0x00 0x03    // '???.???' \n\t0x0A 0x00 0x00 0xFD 0x30 0x00 0x00 0x03    // '???0???' \n\t0x0F 0x00 0x00 0xFD 0x6B 0x00 0x00 0x03    // '???k???' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x80    // '????0??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x30 0x00 0x00 0x82    // '????0??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x41 0x6E 0x6F    // '???  Ano' \n\t0x74 0x68 0x65 0x72 0x20 0x70 0x72 0x6F    // 'ther pro' \n\t0x6A 0x65 0x63 0x74 0x3F 0x0D 0x0A 0x54    // 'ject???T' \n\t0x6F 0x20 0x63 0x68 0x6F 0x6F 0x73 0x65    // 'o choose' \n\t0x20 0x61 0x6E 0x6F 0x74 0x68 0x65 0x72    // ' another' \n\t0x20 0x70 0x72 0x6F 0x6A 0x65 0x63 0x74    // ' project' \n\t0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69 0x63    // '???Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x61 0x72    // 'k the ar' \n\t0x72 0x6F 0x77 0x73 0x20 0x6F 0x6E 0x20    // 'rows on ' \n\t0x74 0x68 0x65 0x20 0x72 0x69 0x67 0x68    // 'the righ' \n\t0x74 0x20 0x73 0x69 0x64 0x65 0x20 0x6F    // 't side o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x50 0x72    // 'f the Pr' \n\t0x6F 0x6A 0x65 0x63 0x74 0x20 0x47 0x61    // 'oject Ga' \n\t0x64 0x67 0x65 0x74 0x2E                   // 'dget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_21= CO__To_see_the_movie_from\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"CO--To see the movie from\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"CO--To see the movie from\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project21\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__To_see_the_movie_from\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project21\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x41 0x00 0x00 0x01    // '????A???' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x03    // '????/???' \n\t0x0B 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'ie from ' \n\t0x74 0x68 0x65 0x20 0x62 0x65 0x67 0x69    // 'the begi' \n\t0x6E 0x6E 0x69 0x6E 0x67 0x2C 0x20 0x63    // 'nning, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x50 0x6C 0x61 0x79 0x20 0x62 0x75    // ' Play bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x67 0x61    // 'tton aga' \n\t0x69 0x6E 0x2E                             // 'in.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_22= IDLE__Remember_to_get\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"IDLE--Remember to get \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"IDLE--Remember to get \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobProject kidGadget kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project22\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"IDLE__Remember_to_get\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadget\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project22\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7C 0x00 0x00 0x00    // '????|???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x03    // '????)???' \n\t0x0B 0x00 0x00 0xFD 0x37 0x00 0x00 0x03    // '???7???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x65 0x6D 0x62    // '??Rememb' \n\t0x65 0x72 0x2C 0x20 0x74 0x6F 0x20 0x67    // 'er, to g' \n\t0x65 0x74 0x20 0x74 0x68 0x65 0x20 0x6E    // 'et the n' \n\t0x65 0x78 0x74 0x20 0x73 0x74 0x65 0x70    // 'ext step' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x50 0x72 0x6F 0x6A 0x65    // 'he Proje' \n\t0x63 0x74 0x20 0x47 0x61 0x64 0x67 0x65    // 'ct Gadge' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_23= CO__To_play_the_new_ending\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"CO--To play the new ending\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"CO--To play the new ending\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav3Project23\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_20=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"CO__To_play_the_new_ending\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav3Project23\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_20=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_20=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0x01    // '????;???' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x03    // '????/???' \n\t0x0B 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_20=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x6C 0x61    // '??To pla' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'y the ne' \n\t0x77 0x20 0x65 0x6E 0x64 0x69 0x6E 0x67    // 'w ending' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20 0x63    // 'movie, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x50 0x6C 0x61 0x79 0x20 0x62 0x75    // ' Play bu' \n\t0x74 0x74 0x6F 0x6E 0x2E                   // 'tton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_24= Tip___If_you_rewind_too_far\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"Tip:  If you rewind too far\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"Tip:  If you rewind too far\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_25=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"Tip___If_you_rewind_too_far\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_25=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x07 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpForward __HELP_SYMBOL( STN \"mbmpForward\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewind __HELP_SYMBOL( STN \"mbmpRewind\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_25=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x68 0x00 0x00 0x01    // '????h???' \n\t0x01 0xFC 0x00 0x00 0x8E 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x91 0x00 0x00 0x01    // '???????' \n\t0x01 0xFC 0x00 0x00 0xB8 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xB9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x66 0x00 0x00 0x03    // '???f???' \n\t0x0A 0x00 0x00 0xFD 0x68 0x00 0x00 0x03    // '???h???' \n\t0x0F 0x00 0x00 0xFD 0xB9 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x68 0x00 0x00 0x80    // '????h??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x91 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x8E 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0xB8 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_25=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x49 0x66 0x20    // '???  If ' \n\t0x79 0x6F 0x75 0x20 0x72 0x65 0x77 0x69    // 'you rewi' \n\t0x6E 0x64 0x20 0x74 0x6F 0x6F 0x20 0x66    // 'nd too f' \n\t0x61 0x72 0x2E 0x2E 0x2E 0x0D 0x0A 0x55    // 'ar...??U' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x46    // 'se the F' \n\t0x72 0x61 0x6D 0x65 0x20 0x53 0x6C 0x69    // 'rame Sli' \n\t0x64 0x65 0x72 0x20 0x74 0x6F 0x20 0x6D    // 'der to m' \n\t0x6F 0x76 0x65 0x20 0x66 0x6F 0x72 0x77    // 'ove forw' \n\t0x61 0x72 0x64 0x73 0x20 0x6F 0x72 0x20    // 'ards or ' \n\t0x62 0x61 0x63 0x6B 0x77 0x61 0x72 0x64    // 'backward' \n\t0x73 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 's in the' \n\t0x20 0x63 0x75 0x72 0x72 0x65 0x6E 0x74    // ' current' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x2E 0x20    // ' scene. ' \n\t0x0D 0x0A 0x95 0x09 0x54 0x6F 0x20 0x67    // '???To g' \n\t0x6F 0x20 0x66 0x6F 0x72 0x77 0x61 0x72    // 'o forwar' \n\t0x64 0x20 0x6F 0x6E 0x65 0x20 0x66 0x72    // 'd one fr' \n\t0x61 0x6D 0x65 0x2C 0x20 0x63 0x6C 0x69    // 'ame, cli' \n\t0x63 0x6B 0x20 0x4E 0x65 0x78 0x74 0x2D    // 'ck Next-' \n\t0x01 0x0D 0x0A 0x95 0x09 0x54 0x6F 0x20    // '????To ' \n\t0x67 0x6F 0x20 0x62 0x61 0x63 0x6B 0x20    // 'go back ' \n\t0x6F 0x6E 0x65 0x20 0x66 0x72 0x61 0x6D    // 'one fram' \n\t0x65 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'e, click' \n\t0x20 0x50 0x72 0x65 0x76 0x69 0x6F 0x75    // ' Previou' \n\t0x73 0x2D 0x01                             // 's-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/project4.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpc4Project00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"To see this movie, click \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"To see this movie, click \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobProject kidGadgetPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpc4Project00\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x78 0x00 0x00 0x00    // '????x???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc4Project25 __HELP_SYMBOL( STN \"ktpc4Project25\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x01    // '????X???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x03    // '????8???' \n\t0x0B 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x40    // '????F??@' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x40    // '????X??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x46 0x00 0x00 0x82    // '????F??' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0xC0    // '????F??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x61 0x79    // ' the way' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x69 0x73 0x20 0x73 0x75    // 'ie is su' \n\t0x70 0x70 0x6F 0x73 0x65 0x64 0x20 0x74    // 'pposed t' \n\t0x6F 0x20 0x6C 0x6F 0x6F 0x6B 0x2C 0x20    // 'o look, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x50 0x6C 0x61 0x79 0x20 0x62    // 'e Play b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x2E 0x0D 0x0A    // 'utton.??' \n\t0x01 0x20 0x41 0x6E 0x6F 0x74 0x68 0x65    // '? Anothe' \n\t0x72 0x20 0x70 0x72 0x6F 0x6A 0x65 0x63    // 'r projec' \n\t0x74 0x3F                                  // 't?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpc4Project01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"To see the steps for creating\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"To see the steps for creating\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc4Project01\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x01    // '????=???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x03    // '????2???' \n\t0x0B 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x40    // '????=??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x6D    // 'ps for m' \n\t0x61 0x6B 0x69 0x6E 0x67 0x20 0x74 0x68    // 'aking th' \n\t0x69 0x73 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'is movie' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x48 0x6F 0x77 0x20    // 'the How ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E         // 'button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpc4Project02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Why--Rotate tools\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Why--Rotate tools\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav4Project02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc4Project02\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav4Project02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x65 0x20 0x52 0x6F    // '??The Ro' \n\t0x74 0x61 0x74 0x65 0x20 0x54 0x6F 0x6F    // 'tate Too' \n\t0x6C 0x73 0x20 0x61 0x6C 0x6C 0x6F 0x77    // 'ls allow' \n\t0x20 0x79 0x6F 0x75 0x20 0x74 0x6F 0x20    // ' you to ' \n\t0x77 0x6F 0x72 0x6B 0x20 0x77 0x69 0x74    // 'work wit' \n\t0x68 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'h action' \n\t0x73 0x20 0x73 0x6F 0x20 0x74 0x68 0x61    // 's so tha' \n\t0x74 0x20 0x77 0x68 0x65 0x6E 0x20 0x70    // 't when p' \n\t0x6C 0x61 0x79 0x65 0x64 0x2C 0x20 0x74    // 'layed, t' \n\t0x68 0x65 0x79 0x20 0x6C 0x6F 0x6F 0x6B    // 'hey look' \n\t0x20 0x62 0x65 0x6C 0x69 0x65 0x76 0x61    // ' believa' \n\t0x62 0x6C 0x65 0x2E 0x20 0x20 0x54 0x68    // 'ble.  Th' \n\t0x65 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'e action' \n\t0x20 0x64 0x6F 0x65 0x73 0x6E 0x27 0x74    // ' doesn't' \n\t0x20 0x6E 0x65 0x65 0x64 0x20 0x74 0x6F    // ' need to' \n\t0x20 0x6C 0x6F 0x6F 0x6B 0x20 0x63 0x6F    // ' look co' \n\t0x6D 0x70 0x6C 0x65 0x74 0x65 0x6C 0x79    // 'mpletely' \n\t0x20 0x72 0x65 0x61 0x6C 0x69 0x73 0x74    // ' realist' \n\t0x69 0x63 0x2E 0x20 0x20 0x4F 0x75 0x72    // 'ic.  Our' \n\t0x20 0x6D 0x69 0x6E 0x64 0x73 0x20 0x77    // ' minds w' \n\t0x69 0x6C 0x6C 0x20 0x66 0x69 0x6C 0x6C    // 'ill fill' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x67 0x61 0x70 0x73 0x2E                   // 'gaps.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpc4Project03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"I created the first part\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"I created the first part\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobProject 0x0 kidPlayProjectSounds 0x140 0xF0 0x57415645 kwav4Project03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpc4Project03\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x00 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xF0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xF2 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xF3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF2 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xF2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0xF2 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x20 0x63 0x72 0x65 0x61    // '??I crea' \n\t0x74 0x65 0x64 0x20 0x74 0x68 0x65 0x20    // 'ted the ' \n\t0x66 0x69 0x72 0x73 0x74 0x20 0x70 0x61    // 'first pa' \n\t0x72 0x74 0x20 0x6F 0x66 0x20 0x74 0x68    // 'rt of th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'e movie ' \n\t0x66 0x6F 0x72 0x20 0x79 0x6F 0x75 0x2E    // 'for you.' \n\t0x20 0x20 0x47 0x61 0x62 0x72 0x69 0x65    // '  Gabrie' \n\t0x6C 0x20 0x69 0x73 0x20 0x74 0x69 0x72    // 'l is tir' \n\t0x65 0x64 0x20 0x6F 0x66 0x20 0x77 0x61    // 'ed of wa' \n\t0x69 0x74 0x69 0x6E 0x67 0x20 0x66 0x6F    // 'iting fo' \n\t0x72 0x20 0x68 0x69 0x73 0x20 0x70 0x61    // 'r his pa' \n\t0x72 0x65 0x6E 0x74 0x73 0x20 0x61 0x6E    // 'rents an' \n\t0x64 0x20 0x63 0x72 0x61 0x77 0x6C 0x73    // 'd crawls' \n\t0x20 0x6F 0x66 0x66 0x20 0x74 0x6F 0x20    // ' off to ' \n\t0x65 0x78 0x70 0x6C 0x6F 0x72 0x65 0x2E    // 'explore.' \n\t0x20 0x20 0x48 0x65 0x20 0x6D 0x61 0x6B    // '  He mak' \n\t0x65 0x73 0x20 0x69 0x74 0x20 0x61 0x73    // 'es it as' \n\t0x20 0x66 0x61 0x72 0x20 0x61 0x73 0x20    // ' far as ' \n\t0x74 0x68 0x65 0x20 0x6D 0x69 0x64 0x64    // 'the midd' \n\t0x6C 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 'le of th' \n\t0x65 0x20 0x62 0x72 0x69 0x64 0x67 0x65    // 'e bridge' \n\t0x2C 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // ', where ' \n\t0x74 0x68 0x65 0x72 0x65 0x20 0x69 0x73    // 'there is' \n\t0x20 0x61 0x20 0x62 0x69 0x67 0x20 0x68    // ' a big h' \n\t0x6F 0x6C 0x65 0x2E 0x0D 0x0A 0x4E 0x6F    // 'ole.??No' \n\t0x77 0x20 0x69 0x74 0x92 0x73 0x20 0x79    // 'w its y' \n\t0x6F 0x75 0x72 0x20 0x74 0x75 0x72 0x6E    // 'our turn' \n\t0x20 0x74 0x6F 0x20 0x61 0x64 0x64 0x20    // ' to add ' \n\t0x47 0x61 0x62 0x72 0x69 0x65 0x6C 0x92    // 'Gabriel' \n\t0x73 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 's action' \n\t0x73 0x2E 0x0D 0x0A 0x01                   // 's.???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpc4Project04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"CO--To rotate Gabriel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"CO--To rotate Gabriel\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsRotate kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc4Project04\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsRotate\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x68 0x00 0x00 0x01    // '????h???' \n\t0x00 0x00 0x00 0x00 0x5B 0x00 0x00 0x03    // '????[???' \n\t0x0B 0x00 0x00 0xFD 0x67 0x00 0x00 0x03    // '???g???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x6F 0x74    // '??To rot' \n\t0x61 0x74 0x65 0x20 0x47 0x61 0x62 0x72    // 'ate Gabr' \n\t0x69 0x65 0x6C 0x20 0x73 0x6F 0x20 0x68    // 'iel so h' \n\t0x65 0x20 0x6C 0x6F 0x6F 0x6B 0x73 0x20    // 'e looks ' \n\t0x6C 0x69 0x6B 0x65 0x20 0x68 0x65 0x20    // 'like he ' \n\t0x69 0x73 0x20 0x66 0x61 0x6C 0x6C 0x69    // 'is falli' \n\t0x6E 0x67 0x20 0x74 0x68 0x72 0x6F 0x75    // 'ng throu' \n\t0x67 0x68 0x20 0x74 0x68 0x65 0x20 0x68    // 'gh the h' \n\t0x6F 0x6C 0x65 0x20 0x69 0x6E 0x20 0x74    // 'ole in t' \n\t0x68 0x65 0x20 0x62 0x72 0x69 0x64 0x67    // 'he bridg' \n\t0x65 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'e, click' \n\t0x20 0x74 0x68 0x65 0x20 0x52 0x6F 0x74    // ' the Rot' \n\t0x61 0x74 0x65 0x20 0x54 0x6F 0x6F 0x6C    // 'ate Tool' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpc4Project05\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO--Click Tip Forward or Back\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"CO--Click Tip Forward or Back\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon8 kgobProject kidActorsRotateX kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon8\"\n\tITEM\n\t\t\"ktpc4Project05\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsRotateX\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9B 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x54 0x69 0x70 0x20 0x46 0x6F 0x72 0x77    // 'Tip Forw' \n\t0x61 0x72 0x64 0x20 0x6F 0x72 0x20 0x42    // 'ard or B' \n\t0x61 0x63 0x6B 0x2E                        // 'ack.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpc4Project06\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--Drag Gabriel's\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--Drag Gabriel's\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav4Project06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_36=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project06\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_36=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc4Project3A __HELP_SYMBOL( STN \"ktpc4Project3A\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_36=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x91 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x9F 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x04 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x04 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x62 0x00 0x00 0x82    // '????b??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_36=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x20 0x47    // '??Drag G' \n\t0x61 0x62 0x72 0x69 0x65 0x6C 0x27 0x73    // 'abriel's' \n\t0x20 0x68 0x65 0x61 0x64 0x20 0x64 0x6F    // ' head do' \n\t0x77 0x6E 0x20 0x73 0x6F 0x20 0x69 0x74    // 'wn so it' \n\t0x20 0x6C 0x6F 0x6F 0x6B 0x73 0x20 0x6C    // ' looks l' \n\t0x69 0x6B 0x65 0x20 0x68 0x65 0x20 0x69    // 'ike he i' \n\t0x73 0x20 0x73 0x74 0x61 0x72 0x74 0x69    // 's starti' \n\t0x6E 0x67 0x20 0x74 0x6F 0x20 0x66 0x61    // 'ng to fa' \n\t0x6C 0x6C 0x20 0x74 0x68 0x72 0x6F 0x75    // 'll throu' \n\t0x67 0x68 0x20 0x74 0x68 0x65 0x20 0x68    // 'gh the h' \n\t0x6F 0x6C 0x65 0x20 0x69 0x6E 0x20 0x74    // 'ole in t' \n\t0x68 0x65 0x20 0x62 0x72 0x69 0x64 0x67    // 'he bridg' \n\t0x65 0x2E 0x0D 0x0A 0x57 0x68 0x65 0x6E    // 'e.??When' \n\t0x20 0x79 0x6F 0x75 0x92 0x72 0x65 0x20    // ' youre ' \n\t0x72 0x65 0x61 0x64 0x79 0x20 0x66 0x6F    // 'ready fo' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'r the ne' \n\t0x78 0x74 0x20 0x73 0x74 0x65 0x70 0x2C    // 'xt step,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x50 0x72 0x6F 0x6A 0x65    // 'he Proje' \n\t0x63 0x74 0x20 0x47 0x61 0x64 0x67 0x65    // 'ct Gadge' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpc4Project07\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO--Remember, when you're\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO--Remember, when you're\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobProject kidGadget kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_17=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpc4Project07\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadget\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_17=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_17=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x03    // '????9???' \n\t0x0B 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x40    // '????H??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_17=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x65 0x6D 0x62    // '??Rememb' \n\t0x65 0x72 0x2C 0x20 0x77 0x68 0x65 0x6E    // 'er, when' \n\t0x20 0x79 0x6F 0x75 0x92 0x72 0x65 0x20    // ' youre ' \n\t0x72 0x65 0x61 0x64 0x79 0x20 0x66 0x6F    // 'ready fo' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'r the ne' \n\t0x78 0x74 0x20 0x73 0x74 0x65 0x70 0x2C    // 'xt step,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x50 0x72 0x6F 0x6A 0x65    // 'he Proje' \n\t0x63 0x74 0x20 0x47 0x61 0x64 0x67 0x65    // 'ct Gadge' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpc4Project08\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"To see the steps\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"To see the steps\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc4Project08\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x68 0x00 0x00 0x00    // '????h???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x03    // '????1???' \n\t0x0B 0x00 0x00 0xFD 0x34 0x00 0x00 0x03    // '???4???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ps for a' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'dding an' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x2C    // ' action,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x48 0x6F 0x77 0x20 0x62    // 'he How b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x2E              // 'utton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= ktpc4Project09\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"Why--Gabriel's fall\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"Why--Gabriel's fall\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav4Project09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_25=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc4Project09\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav4Project09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_25=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x04 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_25=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD1 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_25=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x61 0x62 0x72 0x69 0x65    // '??Gabrie' \n\t0x6C 0x92 0x73 0x20 0x66 0x61 0x6C 0x6C    // 'ls fall' \n\t0x20 0x69 0x73 0x20 0x63 0x6F 0x6D 0x62    // ' is comb' \n\t0x69 0x6E 0x65 0x64 0x20 0x77 0x69 0x74    // 'ined wit' \n\t0x68 0x20 0x74 0x77 0x6F 0x20 0x6F 0x74    // 'h two ot' \n\t0x68 0x65 0x72 0x20 0x65 0x6C 0x65 0x6D    // 'her elem' \n\t0x65 0x6E 0x74 0x73 0x97 0x74 0x68 0x65    // 'entsthe' \n\t0x20 0x6C 0x6F 0x75 0x64 0x20 0x73 0x6F    // ' loud so' \n\t0x75 0x6E 0x64 0x20 0x6F 0x66 0x20 0x74    // 'und of t' \n\t0x68 0x65 0x20 0x72 0x75 0x73 0x68 0x69    // 'he rushi' \n\t0x6E 0x67 0x20 0x77 0x61 0x74 0x65 0x72    // 'ng water' \n\t0x20 0x62 0x65 0x6C 0x6F 0x77 0x20 0x61    // ' below a' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x20 0x70    // 'nd the p' \n\t0x61 0x75 0x73 0x65 0x20 0x61 0x66 0x74    // 'ause aft' \n\t0x65 0x72 0x20 0x47 0x61 0x62 0x72 0x69    // 'er Gabri' \n\t0x65 0x6C 0x92 0x73 0x20 0x66 0x61 0x6C    // 'els fal' \n\t0x6C 0x2E 0x20 0x20 0x54 0x68 0x65 0x20    // 'l.  The ' \n\t0x63 0x6F 0x6D 0x62 0x69 0x6E 0x61 0x74    // 'combinat' \n\t0x69 0x6F 0x6E 0x20 0x6F 0x66 0x20 0x61    // 'ion of a' \n\t0x6C 0x6C 0x20 0x74 0x68 0x72 0x65 0x65    // 'll three' \n\t0x20 0x65 0x6C 0x65 0x6D 0x65 0x6E 0x74    // ' element' \n\t0x73 0x20 0x63 0x72 0x65 0x61 0x74 0x65    // 's create' \n\t0x73 0x20 0x61 0x6E 0x74 0x69 0x63 0x69    // 's antici' \n\t0x70 0x61 0x74 0x69 0x6F 0x6E 0x20 0x6F    // 'pation o' \n\t0x66 0x20 0x77 0x68 0x61 0x74 0x92 0x73    // 'f whats' \n\t0x20 0x74 0x6F 0x20 0x66 0x6F 0x6C 0x6C    // ' to foll' \n\t0x6F 0x77 0x2E                             // 'ow.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= ktpc4Project0A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO--To finish \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO--To finish \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsActionBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_21=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc4Project0A\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_21=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6E 0x00 0x00 0x00    // '????n???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_21=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_21=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x61 0x6B    // '??To mak' \n\t0x65 0x20 0x47 0x61 0x62 0x72 0x69 0x65    // 'e Gabrie' \n\t0x6C 0x20 0x66 0x61 0x6C 0x6C 0x2C 0x20    // 'l fall, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x41 0x63    // 'click Ac' \n\t0x74 0x69 0x6F 0x6E 0x73 0x2E              // 'tions.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= ktpc4Project0B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO--Click Gabriel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO--Click Gabriel\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav4Project0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project0B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4E 0x00 0x00 0x00    // '????N???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x47 0x61 0x62 0x72 0x69 0x65 0x6C 0x2E    // 'Gabriel.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= ktpc4Project0C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"CO--Click Fly\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"CO--Click Fly\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav4Project0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project0C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x48 0x00 0x00 0x00    // '????H???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x22 0x46 0x6C 0x79 0x2E 0x22              // '\"Fly.\"' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= ktpc4Project0D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO--To make Gabriel fall--CUT\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO--To make Gabriel fall--CUT\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsGround kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project0D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc4Project0D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsGround\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project0D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x39 0x00 0x00 0x00    // '????9???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x2E 0x2E 0x2E    // '??Cut...' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= ktpc4Project0E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"Why--Fall Through Ground--Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"Why--Fall Through Ground--Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav4Project0E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_28=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc4Project0E\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav4Project0E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_28=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_28=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_28=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x2E 0x2E 0x2E    // '??Cut...' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= ktpc4Project0F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO--To drag down\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO--To drag down\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsXY kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project0F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_39=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc4Project0F\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsXY\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project0F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_39=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x82 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc4Project3B __HELP_SYMBOL( STN \"ktpc4Project3B\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc4Project10 __HELP_SYMBOL( STN \"ktpc4Project10\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_39=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x01    // '????3???' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x07 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x07 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x04 0x00 0x00 0x00 0x33 0x00 0x00 0x40    // '????3??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x28 0x00 0x00 0x82    // '????(??' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0xC0    // '????(??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_39=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x64 0x72 0x61    // '??To dra' \n\t0x67 0x20 0x47 0x61 0x62 0x72 0x69 0x65    // 'g Gabrie' \n\t0x6C 0x20 0x64 0x6F 0x77 0x6E 0x2C 0x20    // 'l down, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x55 0x70    // 'click Up' \n\t0x20 0x26 0x20 0x44 0x6F 0x77 0x6E 0x2E    // ' & Down.' \n\t0x0D 0x0A 0x01 0x20 0x55 0x70 0x20 0x26    // '??? Up &' \n\t0x20 0x44 0x6F 0x77 0x6E                   // ' Down' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= ktpc4Project10\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"Why--Up & Down\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"Why--Up & Down\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav4Project10\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_27=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc4Project10\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav4Project10\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_27=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_10=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_27=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x94 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0E 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_27=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x55 0x70 0x20    // '???  Up ' \n\t0x26 0x20 0x44 0x6F 0x77 0x6E 0x0D 0x0A    // '& Down??' \n\t0x57 0x68 0x65 0x6E 0x20 0x74 0x68 0x69    // 'When thi' \n\t0x73 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 's button' \n\t0x20 0x69 0x73 0x20 0x93 0x6F 0x6E 0x2C    // ' is on,' \n\t0x94 0x20 0x79 0x6F 0x75 0x20 0x63 0x61    // ' you ca' \n\t0x6E 0x20 0x6D 0x6F 0x76 0x65 0x20 0x61    // 'n move a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x2C    // 'n actor,' \n\t0x20 0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F    // ' prop, o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x20 0x75 0x70 0x20 0x61 0x6E 0x64    // 'd up and' \n\t0x20 0x64 0x6F 0x77 0x6E 0x2E 0x20 0x20    // ' down.  ' \n\t0x4F 0x74 0x68 0x65 0x72 0x77 0x69 0x73    // 'Otherwis' \n\t0x65 0x2C 0x20 0x79 0x6F 0x75 0x20 0x63    // 'e, you c' \n\t0x61 0x6E 0x20 0x6F 0x6E 0x6C 0x79 0x20    // 'an only ' \n\t0x6D 0x6F 0x76 0x65 0x20 0x61 0x20 0x33    // 'move a 3' \n\t0x44 0x20 0x6F 0x62 0x6A 0x65 0x63 0x74    // 'D object' \n\t0x20 0x6E 0x65 0x61 0x72 0x20 0x61 0x6E    // ' near an' \n\t0x64 0x20 0x66 0x61 0x72 0x2E              // 'd far.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= ktpc4Project11\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO--Drag Gabriel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO--Drag Gabriel\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav4Project11\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project11\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project11\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc4Project3A __HELP_SYMBOL( STN \"ktpc4Project3A\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x66 0x00 0x00 0x01    // '????f???' \n\t0x00 0x00 0x00 0x00 0x5A 0x00 0x00 0x03    // '????Z???' \n\t0x0B 0x00 0x00 0xFD 0x5E 0x00 0x00 0x03    // '???^???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x04 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x27 0x00 0x00 0x82    // '????'??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x20 0x47    // '??Drag G' \n\t0x61 0x62 0x72 0x69 0x65 0x6C 0x20 0x64    // 'abriel d' \n\t0x6F 0x77 0x6E 0x20 0x61 0x6E 0x64 0x20    // 'own and ' \n\t0x6F 0x66 0x66 0x20 0x74 0x68 0x65 0x20    // 'off the ' \n\t0x73 0x63 0x72 0x65 0x65 0x6E 0x2E 0x0D    // 'screen.?' \n\t0x0A 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // '?When yo' \n\t0x75 0x27 0x72 0x65 0x20 0x72 0x65 0x61    // 'u're rea' \n\t0x64 0x79 0x20 0x74 0x6F 0x20 0x74 0x68    // 'dy to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x79 0x20 0x74    // 'e play t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'he movie' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x50 0x6C 0x61 0x79    // 'the Play' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E    // ' button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= ktpc4Project12\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"CO--To add extra\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"CO--To add extra\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameFW kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project12\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_20=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project12\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameFW\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project12\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_20=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpForward __HELP_SYMBOL( STN \"mbmpForward\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc4Project13 __HELP_SYMBOL( STN \"ktpc4Project13\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_20=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x01 0xFC 0x00 0x00 0x61 0x00 0x00 0x01    // '???a???' \n\t0x01 0x00 0x00 0x00 0xBB 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x9D 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xAB 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xAE 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xBB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xAE 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x61 0x00 0x00 0xC0    // '????a??' \n\t0x02 0x00 0x00 0x00 0xAE 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_20=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x65 0x78 0x74 0x72 0x61 0x20 0x66    // ' extra f' \n\t0x72 0x61 0x6D 0x65 0x73 0x20 0x62 0x65    // 'rames be' \n\t0x66 0x6F 0x72 0x65 0x20 0x74 0x68 0x65    // 'fore the' \n\t0x20 0x68 0x6F 0x74 0x20 0x61 0x69 0x72    // ' hot air' \n\t0x20 0x62 0x61 0x6C 0x6C 0x6F 0x6F 0x6E    // ' balloon' \n\t0x20 0x61 0x70 0x70 0x65 0x61 0x72 0x73    // ' appears' \n\t0x2C 0x20 0x68 0x6F 0x6C 0x64 0x20 0x64    // ', hold d' \n\t0x6F 0x77 0x6E 0x20 0x43 0x74 0x72 0x6C    // 'own Ctrl' \n\t0x20 0x61 0x6E 0x64 0x20 0x63 0x6C 0x69    // ' and cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x4E    // 'ck the N' \n\t0x65 0x78 0x74 0x20 0x62 0x75 0x74 0x74    // 'ext butt' \n\t0x6F 0x6E 0x2D 0x01 0x20 0x31 0x30 0x20    // 'on-? 10 ' \n\t0x74 0x69 0x6D 0x65 0x73 0x2E 0x0D 0x0A    // 'times.??' \n\t0x57 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'When you' \n\t0x27 0x72 0x65 0x20 0x72 0x65 0x61 0x64    // ''re read' \n\t0x79 0x20 0x66 0x6F 0x72 0x20 0x74 0x68    // 'y for th' \n\t0x65 0x20 0x6E 0x65 0x78 0x74 0x20 0x73    // 'e next s' \n\t0x74 0x65 0x70 0x2C 0x20 0x63 0x6C 0x69    // 'tep, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x50    // 'ck the P' \n\t0x72 0x6F 0x6A 0x65 0x63 0x74 0x20 0x47    // 'roject G' \n\t0x61 0x64 0x67 0x65 0x74 0x2E 0x0D 0x0A    // 'adget.??' \n\t0x01 0x20 0x4E 0x65 0x78 0x74 0x20 0x62    // '? Next b' \n\t0x75 0x74 0x74 0x6F 0x6E                   // 'utton' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= ktpc4Project13\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"Why--Next Button\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"Why--Next Button\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav4Project13\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc4Project13\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav4Project13\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xFD 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8F 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x4E 0x65 0x78 0x74    // '??? Next' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x0D    // ' button?' \n\t0x0A 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // '?When yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x61 0x64 0x64 0x20 0x70 0x61    // 'o add pa' \n\t0x75 0x73 0x65 0x73 0x20 0x66 0x6F 0x72    // 'uses for' \n\t0x20 0x61 0x20 0x64 0x72 0x61 0x6D 0x61    // ' a drama' \n\t0x74 0x69 0x63 0x20 0x65 0x66 0x66 0x65    // 'tic effe' \n\t0x63 0x74 0x2C 0x20 0x68 0x6F 0x6C 0x64    // 'ct, hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x43 0x74    // ' down Ct' \n\t0x72 0x6C 0x20 0x61 0x6E 0x64 0x20 0x63    // 'rl and c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x4E 0x65 0x78 0x74 0x20 0x62 0x75    // ' Next bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x74 0x6F 0x20    // 'tton to ' \n\t0x61 0x64 0x64 0x20 0x65 0x78 0x74 0x72    // 'add extr' \n\t0x61 0x20 0x66 0x72 0x61 0x6D 0x65 0x73    // 'a frames' \n\t0x20 0x74 0x6F 0x20 0x79 0x6F 0x75 0x72    // ' to your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E 0x0D    // ' movie.?' \n\t0x0A 0x54 0x6F 0x20 0x63 0x72 0x65 0x61    // '?To crea' \n\t0x74 0x65 0x20 0x61 0x20 0x73 0x68 0x6F    // 'te a sho' \n\t0x72 0x74 0x20 0x70 0x61 0x75 0x73 0x65    // 'rt pause' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x62 0x75 0x74 0x74    // 'the butt' \n\t0x6F 0x6E 0x20 0x61 0x20 0x66 0x65 0x77    // 'on a few' \n\t0x20 0x74 0x69 0x6D 0x65 0x73 0x2E 0x20    // ' times. ' \n\t0x20 0x54 0x6F 0x20 0x63 0x72 0x65 0x61    // ' To crea' \n\t0x74 0x65 0x20 0x61 0x20 0x6C 0x6F 0x6E    // 'te a lon' \n\t0x67 0x65 0x72 0x20 0x70 0x61 0x75 0x73    // 'ger paus' \n\t0x65 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'e, click' \n\t0x20 0x74 0x68 0x65 0x20 0x62 0x75 0x74    // ' the but' \n\t0x74 0x6F 0x6E 0x20 0x6D 0x61 0x6E 0x79    // 'ton many' \n\t0x20 0x74 0x69 0x6D 0x65 0x73 0x2E         // ' times.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= ktpc4Project14\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"To see the steps\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"To see the steps\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project14\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc4Project14\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project14\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6C 0x00 0x00 0x00    // '????l???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x01    // '????9???' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x03    // '????.???' \n\t0x0B 0x00 0x00 0xFD 0x31 0x00 0x00 0x03    // '???1???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ps for a' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x61 0x20    // 'dding a ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x63 0x6C    // 'prop, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x48 0x6F 0x77 0x20 0x62 0x75 0x74 0x74    // 'How butt' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= ktpc4Project15\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"Why--Introducing\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"Why--Introducing\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav4Project15\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_31=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc4Project15\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav4Project15\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_31=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_31=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xC1 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_31=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x6E 0x74 0x72 0x6F 0x64    // '??Introd' \n\t0x75 0x63 0x69 0x6E 0x67 0x20 0x61 0x20    // 'ucing a ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x73 0x75    // 'prop, su' \n\t0x63 0x68 0x20 0x61 0x73 0x20 0x74 0x68    // 'ch as th' \n\t0x65 0x20 0x68 0x6F 0x74 0x2D 0x61 0x69    // 'e hot-ai' \n\t0x72 0x20 0x62 0x61 0x6C 0x6C 0x6F 0x6F    // 'r balloo' \n\t0x6E 0x2C 0x20 0x69 0x73 0x20 0x75 0x6E    // 'n, is un' \n\t0x65 0x78 0x70 0x65 0x63 0x74 0x65 0x64    // 'expected' \n\t0x20 0x62 0x75 0x74 0x20 0x61 0x64 0x64    // ' but add' \n\t0x73 0x20 0x68 0x75 0x6D 0x6F 0x72 0x20    // 's humor ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x6D    // 'to the m' \n\t0x6F 0x76 0x69 0x65 0x2E 0x20 0x20 0x45    // 'ovie.  E' \n\t0x76 0x65 0x6E 0x20 0x74 0x68 0x6F 0x75    // 'ven thou' \n\t0x67 0x68 0x20 0x6D 0x61 0x6B 0x69 0x6E    // 'gh makin' \n\t0x67 0x20 0x47 0x61 0x62 0x72 0x69 0x65    // 'g Gabrie' \n\t0x6C 0x20 0x6C 0x61 0x6E 0x64 0x20 0x69    // 'l land i' \n\t0x6E 0x20 0x61 0x20 0x68 0x6F 0x74 0x20    // 'n a hot ' \n\t0x61 0x69 0x72 0x20 0x62 0x61 0x6C 0x6C    // 'air ball' \n\t0x6F 0x6F 0x6E 0x20 0x6D 0x69 0x67 0x68    // 'oon migh' \n\t0x74 0x20 0x62 0x65 0x20 0x66 0x61 0x72    // 't be far' \n\t0x66 0x65 0x74 0x63 0x68 0x65 0x64 0x2C    // 'fetched,' \n\t0x20 0x49 0x92 0x6D 0x20 0x72 0x65 0x6C    // ' Im rel' \n\t0x69 0x65 0x76 0x65 0x64 0x2E 0x20 0x20    // 'ieved.  ' \n\t0x41 0x72 0x65 0x6E 0x27 0x74 0x20 0x79    // 'Aren't y' \n\t0x6F 0x75 0x3F                             // 'ou?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= ktpc4Project16\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO--Click Props\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO--Click Props\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsPropBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project16\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc4Project16\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsPropBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project16\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x45 0x00 0x00 0x00    // '????E???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x50 0x72 0x6F 0x70 0x73 0x2E              // 'Props.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= ktpc4Project17\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"CO--Click the hot air balloon\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"CO--Click the hot air balloon\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x25 0x0 0x57415645 kwav4Project17\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project17\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project17\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x92 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x68 0x6F 0x74 0x2D    // 'the hot-' \n\t0x61 0x69 0x72 0x20 0x62 0x61 0x6C 0x6C    // 'air ball' \n\t0x6F 0x6F 0x6E 0x2E                        // 'oon.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_18= ktpc4Project18\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"CO--Click to place the \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"CO--Click to place the \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav4Project18\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project18\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project18\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9A 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x6C 0x61 0x63 0x65 0x20    // '??Place ' \n\t0x74 0x68 0x65 0x20 0x68 0x6F 0x74 0x2D    // 'the hot-' \n\t0x61 0x69 0x72 0x20 0x62 0x61 0x6C 0x6C    // 'air ball' \n\t0x6F 0x6F 0x6E 0x20 0x74 0x6F 0x20 0x74    // 'oon to t' \n\t0x68 0x65 0x20 0x6C 0x65 0x66 0x74 0x20    // 'he left ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x62    // 'of the b' \n\t0x72 0x69 0x64 0x67 0x65 0x2E              // 'ridge.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_19= ktpc4Project19\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO--To move the balloon\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO--To move the balloon\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsXY kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project19\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc4Project19\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsXY\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project19\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x01    // '????C???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x03    // '????9???' \n\t0x0B 0x00 0x00 0xFD 0x42 0x00 0x00 0x03    // '???B???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x6F 0x76    // '??To mov' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x62 0x61    // 'e the ba' \n\t0x6C 0x6C 0x6F 0x6F 0x6E 0x20 0x64 0x6F    // 'lloon do' \n\t0x77 0x6E 0x20 0x74 0x6F 0x20 0x69 0x74    // 'wn to it' \n\t0x73 0x20 0x73 0x74 0x61 0x72 0x74 0x69    // 's starti' \n\t0x6E 0x67 0x20 0x70 0x6F 0x73 0x69 0x74    // 'ng posit' \n\t0x69 0x6F 0x6E 0x2C 0x20 0x63 0x6C 0x69    // 'ion, cli' \n\t0x63 0x6B 0x20 0x55 0x70 0x20 0x26 0x20    // 'ck Up & ' \n\t0x44 0x6F 0x77 0x6E 0x2E                   // 'Down.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= ktpc4Project1A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"CO--Drag the balloon\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"CO--Drag the balloon\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav4Project1A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_40=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project1A\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project1A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_40=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9C 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc4Project3A __HELP_SYMBOL( STN \"ktpc4Project3A\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_40=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8C 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x7D 0x00 0x00 0x03    // '????}???' \n\t0x0B 0x00 0x00 0xFD 0x8B 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x04 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x04 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4E 0x00 0x00 0x82    // '????N??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_40=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x20 0x74    // '??Drag t' \n\t0x68 0x65 0x20 0x62 0x61 0x6C 0x6C 0x6F    // 'he ballo' \n\t0x6F 0x6E 0x20 0x74 0x6F 0x20 0x74 0x68    // 'on to th' \n\t0x65 0x20 0x62 0x6F 0x74 0x74 0x6F 0x6D    // 'e bottom' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x73 0x63 0x72 0x65 0x65 0x6E 0x20 0x77    // 'screen w' \n\t0x69 0x74 0x68 0x20 0x6A 0x75 0x73 0x74    // 'ith just' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x6F 0x70    // ' the top' \n\t0x20 0x65 0x64 0x67 0x65 0x20 0x73 0x68    // ' edge sh' \n\t0x6F 0x77 0x69 0x6E 0x67 0x2E 0x0D 0x0A    // 'owing.??' \n\t0x57 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'When you' \n\t0x92 0x72 0x65 0x20 0x72 0x65 0x61 0x64    // 're read' \n\t0x79 0x20 0x66 0x6F 0x72 0x20 0x74 0x68    // 'y for th' \n\t0x65 0x20 0x6E 0x65 0x78 0x74 0x20 0x73    // 'e next s' \n\t0x74 0x65 0x70 0x2C 0x20 0x63 0x6C 0x69    // 'tep, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x50    // 'ck the P' \n\t0x72 0x6F 0x6A 0x65 0x63 0x74 0x20 0x47    // 'roject G' \n\t0x61 0x64 0x67 0x65 0x74 0x2E              // 'adget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1B= ktpc4Project1B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"To see the steps 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"To see the steps 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project1B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_24=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc4Project1B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project1B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_24=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_24=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0x01    // '????;???' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x03    // '????0???' \n\t0x0B 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_24=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ps for a' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x61 0x20    // 'dding a ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x2C 0x20    // 'action, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x48 0x6F 0x77 0x20 0x62 0x75    // 'e How bu' \n\t0x74 0x74 0x6F 0x6E 0x2E                   // 'tton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= ktpc4Project1C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"Why--Add variety\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"Why--Add variety\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav4Project1C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc4Project1C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav4Project1C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x75 0x00 0x00 0x01    // '????u???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x64 0x64 0x20 0x76 0x61    // '??Add va' \n\t0x72 0x69 0x65 0x74 0x79 0x20 0x74 0x6F    // 'riety to' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x62 0x79 0x20 0x63 0x68    // 'ie by ch' \n\t0x61 0x6E 0x67 0x69 0x6E 0x67 0x20 0x74    // 'anging t' \n\t0x68 0x65 0x20 0x70 0x61 0x63 0x65 0x2E    // 'he pace.' \n\t0x20 0x20 0x57 0x68 0x65 0x6E 0x20 0x74    // '  When t' \n\t0x68 0x65 0x20 0x68 0x6F 0x74 0x2D 0x61    // 'he hot-a' \n\t0x69 0x72 0x20 0x62 0x61 0x6C 0x6C 0x6F    // 'ir ballo' \n\t0x6F 0x6E 0x20 0x73 0x70 0x69 0x6E 0x73    // 'on spins' \n\t0x2C 0x20 0x69 0x74 0x20 0x61 0x64 0x64    // ', it add' \n\t0x73 0x20 0x61 0x20 0x73 0x65 0x6E 0x73    // 's a sens' \n\t0x65 0x20 0x6F 0x66 0x20 0x63 0x61 0x6C    // 'e of cal' \n\t0x6D 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'm to the' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x2E         // ' scene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1D= ktpc4Project1D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"CO--To make spin\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"CO--To make spin\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsActionBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project1D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc4Project1D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project1D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9A 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x03    // '????(???' \n\t0x0B 0x00 0x00 0xFD 0x2F 0x00 0x00 0x03    // '???/???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x61 0x6B    // '??To mak' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x68 0x6F    // 'e the ho' \n\t0x74 0x2D 0x61 0x69 0x72 0x20 0x62 0x61    // 't-air ba' \n\t0x6C 0x6C 0x6F 0x6F 0x6E 0x20 0x73 0x70    // 'lloon sp' \n\t0x69 0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'in, clic' \n\t0x6B 0x20 0x41 0x63 0x74 0x69 0x6F 0x6E    // 'k Action' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1E= ktpc4Project1E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"CO--Click the hot air balloon\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"CO--Click the hot air balloon\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav4Project1E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project1E\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project1E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x91 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x68 0x6F 0x74 0x2D    // 'the hot-' \n\t0x61 0x69 0x72 0x20 0x62 0x61 0x6C 0x6C    // 'air ball' \n\t0x6F 0x6F 0x6E 0x2E                        // 'oon.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1F= ktpc4Project1F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"CO--Click Spin\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"CO--Click Spin\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav4Project1F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project1F\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project1F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4B 0x00 0x00 0x00    // '????K???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x22 0x53 0x70 0x69 0x6E 0x2E 0x22         // '\"Spin.\"' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_20= ktpc4Project20\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"CO--Click OK\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"CO--Click OK\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidBrowserOk kidPlayProjectSounds 0x17 0xFFFFFFCE 0x57415645 kwav4Project20\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project20\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidBrowserOk\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project20\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x37 0x00 0x00 0x00    // '????7???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x09 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x4F 0x4B 0x2E                             // 'OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_21= ktpc4Project21\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"CO--Drag balloon whole\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"CO--Drag balloon whole\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav4Project21\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project21\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project21\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc4Project3A __HELP_SYMBOL( STN \"ktpc4Project3A\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6A 0x00 0x00 0x01    // '????j???' \n\t0x00 0x00 0x00 0x00 0x5E 0x00 0x00 0x03    // '????^???' \n\t0x0B 0x00 0x00 0xFD 0x62 0x00 0x00 0x03    // '???b???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x04 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x04 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3A 0x00 0x00 0x82    // '????:??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x20 0x74    // '??Drag t' \n\t0x68 0x65 0x20 0x68 0x6F 0x74 0x2D 0x61    // 'he hot-a' \n\t0x69 0x72 0x20 0x62 0x61 0x6C 0x6C 0x6F    // 'ir ballo' \n\t0x6F 0x6E 0x20 0x73 0x74 0x72 0x61 0x69    // 'on strai' \n\t0x67 0x68 0x74 0x20 0x75 0x70 0x20 0x61    // 'ght up a' \n\t0x6E 0x64 0x20 0x6F 0x66 0x66 0x20 0x74    // 'nd off t' \n\t0x68 0x65 0x20 0x73 0x63 0x72 0x65 0x65    // 'he scree' \n\t0x6E 0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x73    // 'n.??To s' \n\t0x65 0x65 0x20 0x79 0x6F 0x75 0x72 0x20    // 'ee your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x73 0x6F    // 'movie so' \n\t0x20 0x66 0x61 0x72 0x2C 0x20 0x63 0x6C    // ' far, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x50 0x6C 0x61 0x79 0x20 0x62 0x75 0x74    // 'Play but' \n\t0x74 0x6F 0x6E 0x2E                        // 'ton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_22= ktpc4Project22\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"CO--Click until Gabriel's head\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"CO--Click until Gabriel's head\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameRW kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project22\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project22\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameRW\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project22\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewind __HELP_SYMBOL( STN \"mbmpRewind\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0xFC 0x00 0x00 0x1A 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDB 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xCC 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xDA 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x9D 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x50 0x72 0x65 0x76    // 'the Prev' \n\t0x69 0x6F 0x75 0x73 0x20 0x62 0x75 0x74    // 'ious but' \n\t0x74 0x6F 0x6E 0x2D 0x01 0x20 0x75 0x6E    // 'ton-? un' \n\t0x74 0x69 0x6C 0x20 0x79 0x6F 0x75 0x20    // 'til you ' \n\t0x72 0x65 0x77 0x69 0x6E 0x64 0x20 0x74    // 'rewind t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'he movie' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x66 0x72 0x61 0x6D 0x65 0x20 0x77 0x68    // 'frame wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x66 0x69 0x72 0x73 0x74 0x20 0x73 0x65    // 'first se' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x69 0x6E    // 'e the in' \n\t0x73 0x69 0x64 0x65 0x20 0x6F 0x66 0x20    // 'side of ' \n\t0x74 0x68 0x65 0x20 0x62 0x61 0x6C 0x6C    // 'the ball' \n\t0x6F 0x6F 0x6E 0x27 0x73 0x20 0x62 0x61    // 'oon's ba' \n\t0x73 0x6B 0x65 0x74 0x20 0x61 0x73 0x20    // 'sket as ' \n\t0x69 0x74 0x20 0x66 0x6C 0x6F 0x61 0x74    // 'it float' \n\t0x73 0x20 0x75 0x70 0x20 0x66 0x72 0x6F    // 's up fro' \n\t0x6D 0x20 0x74 0x68 0x65 0x20 0x72 0x61    // 'm the ra' \n\t0x76 0x69 0x6E 0x65 0x2E 0x0D 0x0A 0x57    // 'vine.??W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x92    // 'hen you' \n\t0x72 0x65 0x20 0x72 0x65 0x61 0x64 0x79    // 're ready' \n\t0x20 0x66 0x6F 0x72 0x20 0x74 0x68 0x65    // ' for the' \n\t0x20 0x6E 0x65 0x78 0x74 0x20 0x73 0x74    // ' next st' \n\t0x65 0x70 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ep, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x50 0x72    // 'k the Pr' \n\t0x6F 0x6A 0x65 0x63 0x74 0x20 0x47 0x61    // 'oject Ga' \n\t0x64 0x67 0x65 0x74 0x2E                   // 'dget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_23= ktpc4Project23\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"To see the steps for 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"To see the steps for 3\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project23\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc4Project23\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project23\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x67 0x00 0x00 0x00    // '????g???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x47 0x00 0x00 0x01    // '????G???' \n\t0x00 0x00 0x00 0x00 0x3C 0x00 0x00 0x03    // '????<???' \n\t0x0B 0x00 0x00 0xFD 0x3F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x63    // 'ps for c' \n\t0x68 0x61 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'hanging ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x27 0x73 0x20 0x63 0x6F 0x73 0x74 0x75    // ''s costu' \n\t0x6D 0x65 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'me, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x48 0x6F    // 'k the Ho' \n\t0x77 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'w button' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_24= ktpc4Project24\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"Why---Gabriel's costume\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"Why---Gabriel's costume\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav4Project24\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc4Project24\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav4Project24\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xBE 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x61 0x62 0x72 0x69 0x65    // '??Gabrie' \n\t0x6C 0x27 0x73 0x20 0x63 0x6F 0x73 0x74    // 'l's cost' \n\t0x75 0x6D 0x65 0x20 0x73 0x61 0x79 0x73    // 'ume says' \n\t0x20 0x69 0x74 0x20 0x61 0x6C 0x6C 0x21    // ' it all!' \n\t0x20 0x20 0x48 0x65 0x27 0x73 0x20 0x79    // '  He's y' \n\t0x6F 0x75 0x6E 0x67 0x2C 0x20 0x69 0x6E    // 'oung, in' \n\t0x76 0x69 0x6E 0x63 0x69 0x62 0x6C 0x65    // 'vincible' \n\t0x20 0x61 0x6E 0x64 0x20 0x63 0x6F 0x6F    // ' and coo' \n\t0x6C 0x2E 0x20 0x20 0x59 0x6F 0x75 0x20    // 'l.  You ' \n\t0x63 0x61 0x6E 0x20 0x74 0x65 0x6C 0x6C    // 'can tell' \n\t0x20 0x61 0x20 0x73 0x74 0x6F 0x72 0x79    // ' a story' \n\t0x20 0x77 0x69 0x74 0x68 0x20 0x61 0x63    // ' with ac' \n\t0x74 0x69 0x6F 0x6E 0x73 0x20 0x61 0x6E    // 'tions an' \n\t0x64 0x20 0x73 0x6F 0x75 0x6E 0x64 0x73    // 'd sounds' \n\t0x2C 0x20 0x62 0x75 0x74 0x20 0x64 0x6F    // ', but do' \n\t0x6E 0x27 0x74 0x20 0x66 0x6F 0x72 0x67    // 'n't forg' \n\t0x65 0x74 0x20 0x61 0x62 0x6F 0x75 0x74    // 'et about' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x20 0x74    // ' other t' \n\t0x68 0x69 0x6E 0x67 0x73 0x2C 0x20 0x73    // 'hings, s' \n\t0x75 0x63 0x68 0x20 0x61 0x73 0x20 0x74    // 'uch as t' \n\t0x68 0x65 0x20 0x63 0x6C 0x6F 0x74 0x68    // 'he cloth' \n\t0x65 0x73 0x20 0x74 0x68 0x65 0x20 0x61    // 'es the a' \n\t0x63 0x74 0x6F 0x72 0x20 0x69 0x73 0x20    // 'ctor is ' \n\t0x77 0x65 0x61 0x72 0x69 0x6E 0x67 0x2E    // 'wearing.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_25= ktpc4Project25\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"Tip:  Another movie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"Tip:  Another movie\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav4Project25\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_23=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc4Project25\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav4Project25\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_23=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_23=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x01 0x00 0x00 0x00 0x6F 0x00 0x00 0x01    // '????o???' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x03    // '????4???' \n\t0x0F 0x00 0x00 0xFD 0x6F 0x00 0x00 0x03    // '???o???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x80    // '????4??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x34 0x00 0x00 0x82    // '????4??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_23=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x41 0x6E 0x6F    // '???  Ano' \n\t0x74 0x68 0x65 0x72 0x20 0x70 0x72 0x6F    // 'ther pro' \n\t0x6A 0x65 0x63 0x74 0x3F 0x0D 0x0A 0x54    // 'ject???T' \n\t0x6F 0x20 0x63 0x68 0x6F 0x6F 0x73 0x65    // 'o choose' \n\t0x20 0x61 0x20 0x64 0x69 0x66 0x66 0x65    // ' a diffe' \n\t0x72 0x65 0x6E 0x74 0x20 0x70 0x72 0x6F    // 'rent pro' \n\t0x6A 0x65 0x63 0x74 0x0D 0x0A 0x95 0x09    // 'ject???' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x61 0x72 0x72 0x6F 0x77 0x73    // 'e arrows' \n\t0x20 0x6F 0x6E 0x20 0x74 0x68 0x65 0x20    // ' on the ' \n\t0x72 0x69 0x67 0x68 0x74 0x20 0x73 0x69    // 'right si' \n\t0x64 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 'de of th' \n\t0x65 0x20 0x50 0x72 0x6F 0x6A 0x65 0x63    // 'e Projec' \n\t0x74 0x20 0x47 0x61 0x64 0x67 0x65 0x74    // 't Gadget' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_26= ktpc4Project26\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"Why--CUT\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"Why--CUT\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav4Project26\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc4Project26\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav4Project26\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x2D 0x00 0x00 0x00    // '????-???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x2E 0x2E 0x2E    // '??Cut...' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_27= ktpc4Project27\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"CO--To add Gabriel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"CO--To add Gabriel\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidRollCallActor kidPlayProjectSounds 0x2E 0x8B 0x57415645 kwav4Project27\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc4Project27\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidRollCallActor\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project27\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x88 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc4Project28 __HELP_SYMBOL( STN \"ktpc4Project28\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x50 0x00 0x00 0x01    // '????P???' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x03    // '????7???' \n\t0x0B 0x00 0x00 0xFD 0x41 0x00 0x00 0x03    // '???A???' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0x40    // '????D??@' \n\t0x03 0x00 0x00 0x00 0x50 0x00 0x00 0x40    // '????P??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x44 0x00 0x00 0x82    // '????D??' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0xC0    // '????D??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x47 0x61 0x62 0x72 0x69 0x65 0x6C    // ' Gabriel' \n\t0x20 0x74 0x6F 0x20 0x79 0x6F 0x75 0x72    // ' to your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20    // ' movie, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x68 0x69    // 'click hi' \n\t0x73 0x20 0x70 0x69 0x63 0x74 0x75 0x72    // 's pictur' \n\t0x65 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'e in the' \n\t0x20 0x41 0x63 0x74 0x6F 0x72 0x20 0x4C    // ' Actor L' \n\t0x69 0x73 0x74 0x2E 0x0D 0x0A 0x01 0x20    // 'ist.??? ' \n\t0x41 0x63 0x74 0x6F 0x72 0x20 0x4C 0x69    // 'Actor Li' \n\t0x73 0x74                                  // 'st' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_28= ktpc4Project28\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"Why--Actor List\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"Why--Actor List\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav4Project28\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc4Project28\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav4Project28\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x07 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0E 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x41 0x63 0x74 0x6F    // '??? Acto' \n\t0x72 0x20 0x4C 0x69 0x73 0x74 0x0D 0x0A    // 'r List??' \n\t0x54 0x68 0x65 0x20 0x41 0x63 0x74 0x6F    // 'The Acto' \n\t0x72 0x20 0x4C 0x69 0x73 0x74 0x20 0x6B    // 'r List k' \n\t0x65 0x65 0x70 0x73 0x20 0x74 0x72 0x61    // 'eeps tra' \n\t0x63 0x6B 0x20 0x6F 0x66 0x20 0x61 0x6C    // 'ck of al' \n\t0x6C 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'l the ac' \n\t0x74 0x6F 0x72 0x73 0x20 0x69 0x6E 0x20    // 'tors in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x2E 0x20 0x20 0x49 0x66 0x20    // 'ie.  If ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x20 0x69 0x73 0x20 0x6F 0x75 0x74 0x2D    // ' is out-' \n\t0x6F 0x66 0x2D 0x76 0x69 0x65 0x77 0x20    // 'of-view ' \n\t0x6F 0x72 0x20 0x62 0x65 0x68 0x69 0x6E    // 'or behin' \n\t0x64 0x20 0x61 0x6E 0x6F 0x74 0x68 0x65    // 'd anothe' \n\t0x72 0x20 0x6F 0x62 0x6A 0x65 0x63 0x74    // 'r object' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'r in the' \n\t0x20 0x41 0x63 0x74 0x6F 0x72 0x20 0x4C    // ' Actor L' \n\t0x69 0x73 0x74 0x20 0x61 0x6E 0x64 0x20    // 'ist and ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x20 0x77 0x69 0x6C 0x6C 0x20 0x72    // 'r will r' \n\t0x65 0x61 0x70 0x70 0x65 0x61 0x72 0x20    // 'eappear ' \n\t0x6F 0x6E 0x2D 0x73 0x74 0x61 0x67 0x65    // 'on-stage' \n\t0x2C 0x20 0x77 0x69 0x74 0x68 0x20 0x74    // ', with t' \n\t0x68 0x65 0x20 0x73 0x61 0x6D 0x65 0x20    // 'he same ' \n\t0x63 0x6F 0x73 0x74 0x75 0x6D 0x65 0x2C    // 'costume,' \n\t0x20 0x72 0x6F 0x74 0x61 0x74 0x69 0x6F    // ' rotatio' \n\t0x6E 0x20 0x61 0x6E 0x64 0x20 0x61 0x63    // 'n and ac' \n\t0x74 0x69 0x6F 0x6E 0x20 0x61 0x73 0x20    // 'tion as ' \n\t0x77 0x68 0x65 0x6E 0x20 0x69 0x74 0x20    // 'when it ' \n\t0x6C 0x65 0x66 0x74 0x2E                   // 'left.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_29= ktpc4Project29\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"CO--Click to place\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"CO--Click to place\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav4Project29\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project29\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project29\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x89 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x01    // '????E???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x6F 0x20 0x70 0x6C 0x61 0x63 0x65    // 'to place' \n\t0x20 0x47 0x61 0x62 0x72 0x69 0x65 0x6C    // ' Gabriel' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x77 0x6F 0x72 0x6B 0x73 0x70 0x61 0x63    // 'workspac' \n\t0x65 0x20 0x77 0x69 0x74 0x68 0x20 0x68    // 'e with h' \n\t0x69 0x73 0x20 0x68 0x65 0x61 0x64 0x20    // 'is head ' \n\t0x66 0x61 0x63 0x69 0x6E 0x67 0x20 0x66    // 'facing f' \n\t0x6F 0x72 0x77 0x61 0x72 0x64 0x2E         // 'orward.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2A= ktpc4Project2A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"CO--To change costume\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"CO--To change costume\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsCostume kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project2A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_29=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc4Project2A\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsCostume\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project2A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_29=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_29=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x03    // '????'???' \n\t0x0B 0x00 0x00 0xFD 0x36 0x00 0x00 0x03    // '???6???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_29=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x47 0x61 0x62 0x72    // 'nge Gabr' \n\t0x69 0x65 0x6C 0x92 0x73 0x20 0x63 0x6F    // 'iels co' \n\t0x73 0x74 0x75 0x6D 0x65 0x2C 0x20 0x63    // 'stume, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x43 0x6F 0x73 0x74 0x75 0x6D 0x65    // ' Costume' \n\t0x20 0x43 0x68 0x61 0x6E 0x67 0x65 0x72    // ' Changer' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2B= ktpc4Project2B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"CO--To see costume\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"CO--To see costume\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x0 0x57415645 kwav4Project2B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project2B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project2B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8E 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x63 0x6F 0x73 0x74 0x75 0x6D 0x65    // ' costume' \n\t0x20 0x63 0x68 0x6F 0x69 0x63 0x65 0x73    // ' choices' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x43 0x6F 0x73 0x74 0x75 0x6D 0x65 0x73    // 'Costumes' \n\t0x2C 0x20 0x74 0x68 0x65 0x6E 0x20 0x63    // ', then c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x47 0x61 0x62    // 'lick Gab' \n\t0x72 0x69 0x65 0x6C 0x27 0x73 0x20 0x73    // 'riel's s' \n\t0x68 0x69 0x72 0x74 0x2E 0x0D 0x0A 0x54    // 'hirt.??T' \n\t0x6F 0x20 0x73 0x65 0x65 0x20 0x61 0x63    // 'o see ac' \n\t0x63 0x65 0x73 0x73 0x6F 0x72 0x79 0x20    // 'cessory ' \n\t0x63 0x68 0x6F 0x69 0x63 0x65 0x73 0x2C    // 'choices,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x41    // ' click A' \n\t0x63 0x63 0x65 0x73 0x73 0x6F 0x72 0x69    // 'ccessori' \n\t0x65 0x73 0x2C 0x20 0x74 0x68 0x65 0x6E    // 'es, then' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x47    // ' click G' \n\t0x61 0x62 0x72 0x69 0x65 0x6C 0x27 0x73    // 'abriel's' \n\t0x20 0x68 0x65 0x61 0x64 0x2E 0x0D 0x0A    // ' head.??' \n\t0x57 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'When you' \n\t0x27 0x72 0x65 0x20 0x64 0x6F 0x6E 0x65    // ''re done' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x4F 0x4B 0x2E                             // 'OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2C= ktpc4Project2C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"To see the steps 4\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"To see the steps 4\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project2C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc4Project2C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project2C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x52 0x00 0x00 0x01    // '????R???' \n\t0x00 0x00 0x00 0x00 0x47 0x00 0x00 0x03    // '????G???' \n\t0x0B 0x00 0x00 0xFD 0x4A 0x00 0x00 0x03    // '???J???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x6D    // 'ps for m' \n\t0x61 0x6B 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'aking an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x20 0x61    // ' actor a' \n\t0x6E 0x64 0x20 0x70 0x72 0x6F 0x70 0x20    // 'nd prop ' \n\t0x6D 0x6F 0x76 0x65 0x20 0x74 0x6F 0x67    // 'move tog' \n\t0x65 0x74 0x68 0x65 0x72 0x2C 0x20 0x63    // 'ether, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x48 0x6F 0x77 0x20 0x62 0x75 0x74    // ' How but' \n\t0x74 0x6F 0x6E 0x2E                        // 'ton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2D= ktpc4Project2D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"Why--Leave the audience\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"Why--Leave the audience\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav4Project2D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc4Project2D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav4Project2D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x87 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x03 0x03 0x4C 0x65 0x61 0x76 0x65 0x20    // '??Leave ' \n\t0x74 0x68 0x65 0x20 0x61 0x75 0x64 0x69    // 'the audi' \n\t0x65 0x6E 0x63 0x65 0x20 0x77 0x6F 0x6E    // 'ence won' \n\t0x64 0x65 0x72 0x69 0x6E 0x67 0x20 0x77    // 'dering w' \n\t0x68 0x61 0x74 0x92 0x73 0x20 0x6E 0x65    // 'hats ne' \n\t0x78 0x74 0x20 0x66 0x6F 0x72 0x20 0x47    // 'xt for G' \n\t0x61 0x62 0x72 0x69 0x65 0x6C 0x2E 0x20    // 'abriel. ' \n\t0x20 0x43 0x72 0x65 0x61 0x74 0x65 0x20    // ' Create ' \n\t0x61 0x6E 0x20 0x65 0x6E 0x64 0x69 0x6E    // 'an endin' \n\t0x67 0x20 0x74 0x68 0x61 0x74 0x20 0x77    // 'g that w' \n\t0x69 0x6C 0x6C 0x20 0x63 0x61 0x72 0x72    // 'ill carr' \n\t0x79 0x20 0x74 0x68 0x65 0x69 0x72 0x20    // 'y their ' \n\t0x69 0x6D 0x61 0x67 0x69 0x6E 0x61 0x74    // 'imaginat' \n\t0x69 0x6F 0x6E 0x73 0x20 0x62 0x65 0x79    // 'ions bey' \n\t0x6F 0x6E 0x64 0x20 0x74 0x68 0x65 0x20    // 'ond the ' \n\t0x65 0x6E 0x64 0x20 0x6F 0x66 0x20 0x74    // 'end of t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'he movie' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2E= ktpc4Project2E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"CO--To add Gabriel's spin\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"CO--To add Gabriel's spin\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsActionBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project2E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_34=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc4Project2E\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project2E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_34=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7F 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_34=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x03    // '????$???' \n\t0x0B 0x00 0x00 0xFD 0x2B 0x00 0x00 0x03    // '???+???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_34=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x47 0x61 0x62 0x72 0x69 0x65 0x6C    // ' Gabriel' \n\t0x92 0x73 0x20 0x73 0x70 0x69 0x6E 0x20    // 's spin ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x2C 0x20    // 'action, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x41 0x63    // 'click Ac' \n\t0x74 0x69 0x6F 0x6E 0x73 0x2E              // 'tions.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2F= ktpc4Project2F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"CO--Click the arrow\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"CO--Click the arrow\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobProject 0x0 kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project2F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpc4Project2F\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project2F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8E 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x72 0x72 0x6F    // 'the arro' \n\t0x77 0x20 0x74 0x6F 0x20 0x6D 0x6F 0x76    // 'w to mov' \n\t0x65 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'e to the' \n\t0x20 0x6E 0x65 0x78 0x74 0x20 0x70 0x61    // ' next pa' \n\t0x67 0x65 0x2E                             // 'ge.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_30= ktpc4Project30\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"CO--Click Spin\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"CO--Click Spin\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav4Project30\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_22=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project30\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project30\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_22=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4D 0x00 0x00 0x00    // '????M???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_22=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_22=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x22 0x53 0x70 0x69 0x6E 0x2E 0x22         // '\"Spin.\"' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_31= ktpc4Project31\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"CO--To copy path\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"CO--To copy path\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidCutCopyPaste kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project31\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_32=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project31\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project31\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_32=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x02 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_32=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x7B 0x00 0x00 0x01    // '????{???' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x03    // '????b???' \n\t0x0B 0x00 0x00 0xFD 0x7A 0x00 0x00 0x03    // '???z???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_32=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x63 0x6F 0x70    // '??To cop' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x70 0x61    // 'y the pa' \n\t0x74 0x68 0x20 0x6F 0x66 0x20 0x74 0x68    // 'th of th' \n\t0x65 0x20 0x68 0x6F 0x74 0x20 0x61 0x69    // 'e hot ai' \n\t0x72 0x20 0x62 0x61 0x6C 0x6C 0x6F 0x6F    // 'r balloo' \n\t0x6E 0x20 0x28 0x73 0x6F 0x20 0x47 0x61    // 'n (so Ga' \n\t0x62 0x72 0x69 0x65 0x6C 0x20 0x61 0x6E    // 'briel an' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x62 0x61    // 'd the ba' \n\t0x6C 0x6C 0x6F 0x6F 0x6E 0x20 0x63 0x61    // 'lloon ca' \n\t0x6E 0x20 0x6D 0x6F 0x76 0x65 0x20 0x74    // 'n move t' \n\t0x6F 0x67 0x65 0x74 0x68 0x65 0x72 0x29    // 'ogether)' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x43 0x75 0x74 0x2C    // 'the Cut,' \n\t0x20 0x43 0x6F 0x70 0x79 0x2C 0x20 0x26    // ' Copy, &' \n\t0x20 0x50 0x61 0x73 0x74 0x65 0x20 0x54    // ' Paste T' \n\t0x6F 0x6F 0x6C 0x73 0x2E                   // 'ools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_32= ktpc4Project32\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"CO--Click Copy Path\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"CO--Click Copy Path\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidCCPCopyRoute kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project32\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project32\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidCCPCopyRoute\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project32\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x5C 0x00 0x00 0x00    // '????\\???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x6F 0x70 0x79 0x20 0x50 0x61 0x74    // 'Copy Pat' \n\t0x68 0x2E                                  // 'h.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_33= ktpc4Project33\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"CO--To paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"CO--To paste\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidCutCopyPaste kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project33\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_30=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project33\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project33\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_30=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_30=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x01    // '????6???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x0F 0x00 0x00 0xFD 0x36 0x00 0x00 0x03    // '???6???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_30=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x61 0x73    // '??To pas' \n\t0x74 0x65 0x20 0x74 0x68 0x65 0x20 0x70    // 'te the p' \n\t0x61 0x74 0x68 0x2C 0x20 0x63 0x6C 0x69    // 'ath, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x43    // 'ck the C' \n\t0x75 0x74 0x2C 0x20 0x43 0x6F 0x70 0x79    // 'ut, Copy' \n\t0x2C 0x20 0x26 0x20 0x50 0x61 0x73 0x74    // ', & Past' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E    // 'e Tools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_34= ktpc4Project34\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"CO--Click Paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"CO--Click Paste\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidCCPPaste kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project34\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_33=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project34\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidCCPPaste\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project34\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_33=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x44 0x00 0x00 0x00    // '????D???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_33=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_33=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x20 0x50 0x61 0x73 0x74 0x65 0x2E         // ' Paste.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_35= ktpc4Project35\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"CO--To move\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"CO--To move\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsXY kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project35\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc4Project35\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsXY\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project35\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x91 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x03    // '????5???' \n\t0x0B 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x0F 0x00 0x00 0xFD 0x3F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x6F 0x76    // '??To mov' \n\t0x65 0x20 0x47 0x61 0x62 0x72 0x69 0x65    // 'e Gabrie' \n\t0x6C 0x20 0x64 0x6F 0x77 0x6E 0x20 0x69    // 'l down i' \n\t0x6E 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // 'nto the ' \n\t0x68 0x6F 0x74 0x2D 0x61 0x69 0x72 0x20    // 'hot-air ' \n\t0x62 0x61 0x6C 0x6C 0x6F 0x6F 0x6E 0x2C    // 'balloon,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x55    // ' click U' \n\t0x70 0x20 0x26 0x20 0x44 0x6F 0x77 0x6E    // 'p & Down' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_36= ktpc4Project36\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"CO--Click Reposition\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"CO--Click Reposition\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsCompose kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project36\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc4Project36\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsCompose\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project36\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x5B 0x00 0x00 0x00    // '????[???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x52 0x65 0x70 0x6F 0x73 0x69 0x74 0x69    // 'Repositi' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_37= ktpc4Project37\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"CO--Drag Gabriel top head\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"CO--Drag Gabriel top head\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav4Project37\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project37\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project37\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc4Project3A __HELP_SYMBOL( STN \"ktpc4Project3A\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xAB 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xAF 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x04 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x04 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x75 0x00 0x00 0x82    // '????u??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x20 0x47    // '??Drag G' \n\t0x61 0x62 0x72 0x69 0x65 0x6C 0x20 0x69    // 'abriel i' \n\t0x6E 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // 'nto the ' \n\t0x62 0x61 0x6C 0x6C 0x6F 0x6F 0x6E 0x27    // 'balloon'' \n\t0x73 0x20 0x62 0x61 0x73 0x6B 0x65 0x74    // 's basket' \n\t0x2E 0x20 0x20 0x49 0x66 0x20 0x74 0x68    // '.  If th' \n\t0x65 0x20 0x62 0x61 0x6C 0x6C 0x6F 0x6F    // 'e balloo' \n\t0x6E 0x20 0x63 0x6F 0x76 0x65 0x72 0x73    // 'n covers' \n\t0x20 0x47 0x61 0x62 0x72 0x69 0x65 0x6C    // ' Gabriel' \n\t0x2C 0x20 0x70 0x72 0x65 0x73 0x73 0x20    // ', press ' \n\t0x74 0x68 0x65 0x20 0x55 0x70 0x20 0x6F    // 'the Up o' \n\t0x72 0x20 0x44 0x6F 0x77 0x6E 0x20 0x41    // 'r Down A' \n\t0x72 0x72 0x6F 0x77 0x20 0x6B 0x65 0x79    // 'rrow key' \n\t0x20 0x61 0x73 0x20 0x79 0x6F 0x75 0x20    // ' as you ' \n\t0x64 0x72 0x61 0x67 0x2E 0x0D 0x0A 0x57    // 'drag.??W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x92    // 'hen you' \n\t0x72 0x65 0x20 0x72 0x65 0x61 0x64 0x79    // 're ready' \n\t0x20 0x74 0x6F 0x20 0x70 0x6C 0x61 0x79    // ' to play' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x73 0x6F 0x20 0x66 0x61    // 'ie so fa' \n\t0x72 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'r, click' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x6C 0x61    // ' the Pla' \n\t0x79 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'y button' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_38= ktpc4Project38\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"CO--To play so far\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"CO--To play so far\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project38\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_35=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project38\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project38\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_35=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_35=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x03    // '????$???' \n\t0x0B 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_35=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x6C 0x61    // '??To pla' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'y the mo' \n\t0x76 0x69 0x65 0x20 0x73 0x6F 0x20 0x66    // 'vie so f' \n\t0x61 0x72 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ar, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x50 0x6C    // 'k the Pl' \n\t0x61 0x79 0x20 0x62 0x75 0x74 0x74 0x6F    // 'ay butto' \n\t0x6E 0x2E                                  // 'n.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_39= ktpc4Project39\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"CO--To play entire \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"CO--To play entire \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project39\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_26=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project39\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project39\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_26=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_26=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0x01    // '????p???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x03    // '????$???' \n\t0x0B 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x00 0x00 0x00 0x00 0x61 0x00 0x00 0x03    // '????a???' \n\t0x0B 0x00 0x00 0xFD 0x6F 0x00 0x00 0x03    // '???o???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x32 0x00 0x00 0x82    // '????2??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_26=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x6C 0x61    // '??To pla' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x65 0x6E    // 'y the en' \n\t0x74 0x69 0x72 0x65 0x20 0x6D 0x6F 0x76    // 'tire mov' \n\t0x69 0x65 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ie, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x50 0x6C    // 'k the Pl' \n\t0x61 0x79 0x20 0x62 0x75 0x74 0x74 0x6F    // 'ay butto' \n\t0x6E 0x2E 0x0D 0x0A 0x57 0x68 0x65 0x6E    // 'n.??When' \n\t0x20 0x79 0x6F 0x75 0x27 0x72 0x65 0x20    // ' you're ' \n\t0x72 0x65 0x61 0x64 0x79 0x20 0x66 0x6F    // 'ready fo' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'r the ne' \n\t0x78 0x74 0x20 0x73 0x74 0x65 0x70 0x2C    // 'xt step,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x50 0x72 0x6F 0x6A 0x65    // 'he Proje' \n\t0x63 0x74 0x20 0x47 0x61 0x64 0x67 0x65    // 'ct Gadge' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3A= ktpc4Project3A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav4Project3A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_37=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc4Project3A\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav4Project3A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_37=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_37=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x03    // '????y???' \n\t0x0A 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x79 0x00 0x00 0x80    // '????y??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x79 0x00 0x00 0x82    // '????y??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_37=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x0D 0x0A    // '??Drag??' \n\t0x31 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '1?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x73 0x20    // 'tton as ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'you move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x57    // 'se.??2?W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x76 0x65 0x20 0x66 0x69 0x6E 0x69 0x73    // 've finis' \n\t0x68 0x65 0x64 0x20 0x64 0x72 0x61 0x67    // 'hed drag' \n\t0x67 0x69 0x6E 0x67 0x2C 0x20 0x6C 0x65    // 'ging, le' \n\t0x74 0x20 0x67 0x6F 0x20 0x6F 0x66 0x20    // 't go of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x2E 0x0D 0x0A 0x54 0x69 0x70 0x20 0x66    // '.??Tip f' \n\t0x72 0x6F 0x6D 0x20 0x4D 0x63 0x5A 0x65    // 'rom McZe' \n\t0x65 0x3A 0x20 0x20 0x59 0x6F 0x75 0x27    // 'e:  You'' \n\t0x6C 0x6C 0x20 0x67 0x65 0x74 0x20 0x74    // 'll get t' \n\t0x68 0x65 0x20 0x62 0x65 0x73 0x74 0x20    // 'he best ' \n\t0x72 0x65 0x73 0x75 0x6C 0x74 0x73 0x20    // 'results ' \n\t0x69 0x66 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'if you m' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x73 0x6C    // 'mouse sl' \n\t0x6F 0x77 0x6C 0x79 0x20 0x61 0x73 0x20    // 'owly as ' \n\t0x79 0x6F 0x75 0x20 0x64 0x72 0x61 0x67    // 'you drag' \n\t0x2E 0x20                                  // '. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3B= ktpc4Project3B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"Def:  drag\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"Def:  drag\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav4Project3B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc4Project3B\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav4Project3B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x03    // '????y???' \n\t0x0A 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x79 0x00 0x00 0x80    // '????y??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x79 0x00 0x00 0x82    // '????y??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x64 0x72 0x61 0x67 0x0D 0x0A    // '??drag??' \n\t0x31 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '1?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x73 0x20    // 'tton as ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'you move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x57    // 'se.??2?W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x76 0x65 0x20 0x66 0x69 0x6E 0x69 0x73    // 've finis' \n\t0x68 0x65 0x64 0x20 0x64 0x72 0x61 0x67    // 'hed drag' \n\t0x67 0x69 0x6E 0x67 0x2C 0x20 0x6C 0x65    // 'ging, le' \n\t0x74 0x20 0x67 0x6F 0x20 0x6F 0x66 0x20    // 't go of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x2E 0x0D 0x0A 0x54 0x69 0x70 0x20 0x66    // '.??Tip f' \n\t0x72 0x6F 0x6D 0x20 0x4D 0x63 0x5A 0x65    // 'rom McZe' \n\t0x65 0x3A 0x20 0x20 0x59 0x6F 0x75 0x27    // 'e:  You'' \n\t0x6C 0x6C 0x20 0x67 0x65 0x74 0x20 0x74    // 'll get t' \n\t0x68 0x65 0x20 0x62 0x65 0x73 0x74 0x20    // 'he best ' \n\t0x72 0x65 0x73 0x75 0x6C 0x74 0x73 0x20    // 'results ' \n\t0x69 0x66 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'if you m' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x73 0x6C    // 'mouse sl' \n\t0x6F 0x77 0x6C 0x79 0x20 0x61 0x73 0x20    // 'owly as ' \n\t0x79 0x6F 0x75 0x20 0x64 0x72 0x61 0x67    // 'you drag' \n\t0x2E 0x20                                  // '. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3C= ktpc4Project3C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"Congratulations\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"Congratulations\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 kidPlayProjectSounds 0x258 0x1C2 0x57415645 kwav4Project3C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc4Project3C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project3C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9D 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x04 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA6 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x40    // '????U??@' \n\t0x02 0x00 0x00 0x00 0x6D 0x00 0x00 0x40    // '????m??@' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x40    // '????o??@' \n\t0x03 0x00 0x00 0x00 0x8E 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xA6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x80    // '????@??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x90 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0xC0    // '????@??' \n\t0x05 0x00 0x00 0x00 0x55 0x00 0x00 0xC0    // '????U??' \n\t0x05 0x00 0x00 0x00 0x6F 0x00 0x00 0xC0    // '????o??' \n\t0x05 0x00 0x00 0x00 0x90 0x00 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x6E 0x67 0x72 0x61    // '??Congra' \n\t0x74 0x75 0x6C 0x61 0x74 0x69 0x6F 0x6E    // 'tulation' \n\t0x73 0x21 0x20 0x20 0x59 0x6F 0x75 0x27    // 's!  You'' \n\t0x72 0x65 0x20 0x64 0x6F 0x6E 0x65 0x21    // 're done!' \n\t0x20 0x20 0x57 0x68 0x61 0x74 0x20 0x77    // '  What w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x79 0x6F 0x75    // 'ould you' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x74 0x6F    // ' like to' \n\t0x20 0x64 0x6F 0x20 0x6E 0x6F 0x77 0x3F    // ' do now?' \n\t0x0D 0x0A 0x01 0x09 0x57 0x6F 0x72 0x6B    // '????Work' \n\t0x20 0x6F 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' on your' \n\t0x20 0x6F 0x77 0x6E 0x3F 0x0D 0x0A 0x01    // ' own????' \n\t0x09 0x53 0x74 0x61 0x72 0x74 0x20 0x61    // '?Start a' \n\t0x6E 0x6F 0x74 0x68 0x65 0x72 0x20 0x70    // 'nother p' \n\t0x72 0x6F 0x6A 0x65 0x63 0x74 0x3F 0x0D    // 'roject??' \n\t0x0A 0x01 0x09 0x47 0x6F 0x20 0x62 0x61    // '???Go ba' \n\t0x63 0x6B 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ck to th' \n\t0x65 0x20 0x50 0x72 0x6F 0x6A 0x65 0x63    // 'e Projec' \n\t0x74 0x73 0x20 0x52 0x6F 0x6F 0x6D 0x3F    // 'ts Room?' \n\t0x0D 0x0A 0x01 0x09 0x51 0x75 0x69 0x74    // '????Quit' \n\t0x20 0x33 0x44 0x20 0x4D 0x6F 0x76 0x69    // ' 3D Movi' \n\t0x65 0x20 0x4D 0x61 0x6B 0x65 0x72 0x3F    // 'e Maker?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3D= ktpc4Project3D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"CO--Click Reposition\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"CO--Click Reposition\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsCompose kidPlayProjectSounds 0x0 0x0 0x57415645 kwav4Project3D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc4Project3D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsCompose\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project3D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x5C 0x00 0x00 0x00    // '????\\???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x52 0x65 0x70 0x6F 0x73 0x69 0x74 0x69    // 'Repositi' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3E= ktpc4Project3E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"CO--To select Gabriel\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"CO--To select Gabriel\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidRollCallActor kidPlayProjectSounds 0x2E 0x8B 0x57415645 kwav4Project3E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_38=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc4Project3E\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidRollCallActor\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project3E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_38=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9E 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_38=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x03    // '????,???' \n\t0x0B 0x00 0x00 0xFD 0x36 0x00 0x00 0x03    // '???6???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_38=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x6C    // '??To sel' \n\t0x65 0x63 0x74 0x20 0x47 0x61 0x62 0x72    // 'ect Gabr' \n\t0x69 0x65 0x6C 0x2C 0x20 0x63 0x6C 0x69    // 'iel, cli' \n\t0x63 0x6B 0x20 0x68 0x69 0x73 0x20 0x70    // 'ck his p' \n\t0x69 0x63 0x74 0x75 0x72 0x65 0x20 0x69    // 'icture i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x41 0x63    // 'n the Ac' \n\t0x74 0x6F 0x72 0x20 0x4C 0x69 0x73 0x74    // 'tor List' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3F= ktpc4Project3F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"CO--Now click Gabriel.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"CO--Now click Gabriel.\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav4Project3F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc4Project3F\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav4Project3F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x70 0x00 0x00 0x00    // '????p???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x77 0x20 0x63 0x6C    // '??Now cl' \n\t0x69 0x63 0x6B 0x20 0x47 0x61 0x62 0x72    // 'ick Gabr' \n\t0x69 0x65 0x6C 0x2E                        // 'iel.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/project5.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpc5Project00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"To see this movie, click --Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"To see this movie, click --Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_31=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project00\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_31=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4B 0x00 0x00 0x00    // '????K???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_31=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_31=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x20 0x41 0x63 0x74 0x6F 0x72 0x73 0x2E    // ' Actors.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpc5Project01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"To see this movie 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"To see this movie 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobProject kidGadgetPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_40=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpc5Project01\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_40=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x78 0x00 0x00 0x00    // '????x???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc5Project03 __HELP_SYMBOL( STN \"ktpc5Project03\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_40=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x01    // '????X???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x03    // '????8???' \n\t0x0B 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x40    // '????F??@' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x40    // '????X??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x46 0x00 0x00 0x82    // '????F??' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0xC0    // '????F??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_40=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x61 0x79    // ' the way' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x69 0x73 0x20 0x73 0x75    // 'ie is su' \n\t0x70 0x70 0x6F 0x73 0x65 0x64 0x20 0x74    // 'pposed t' \n\t0x6F 0x20 0x6C 0x6F 0x6F 0x6B 0x2C 0x20    // 'o look, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x50 0x6C 0x61 0x79 0x20 0x62    // 'e Play b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x2E 0x0D 0x0A    // 'utton.??' \n\t0x01 0x20 0x41 0x6E 0x6F 0x74 0x68 0x65    // '? Anothe' \n\t0x72 0x20 0x70 0x72 0x6F 0x6A 0x65 0x63    // 'r projec' \n\t0x74 0x3F                                  // 't?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpc5Project02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"To see the steps\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"To see the steps\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc5Project02\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x67 0x00 0x00 0x00    // '????g???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x01    // '????=???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x03    // '????2???' \n\t0x0B 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x40    // '????=??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x6D    // 'ps for m' \n\t0x61 0x6B 0x69 0x6E 0x67 0x20 0x74 0x68    // 'aking th' \n\t0x69 0x73 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'is movie' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x48 0x6F 0x77 0x20    // 'the How ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E         // 'button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpc5Project03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Tip:  Another movie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Tip:  Another movie\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav5Project03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc5Project03\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav5Project03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x01 0x00 0x00 0x00 0x6F 0x00 0x00 0x01    // '????o???' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x03    // '????4???' \n\t0x0F 0x00 0x00 0xFD 0x6F 0x00 0x00 0x03    // '???o???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x80    // '????4??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x34 0x00 0x00 0x82    // '????4??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x41 0x6E 0x6F    // '???  Ano' \n\t0x74 0x68 0x65 0x72 0x20 0x70 0x72 0x6F    // 'ther pro' \n\t0x6A 0x65 0x63 0x74 0x3F 0x0D 0x0A 0x54    // 'ject???T' \n\t0x6F 0x20 0x63 0x68 0x6F 0x6F 0x73 0x65    // 'o choose' \n\t0x20 0x61 0x20 0x64 0x69 0x66 0x66 0x65    // ' a diffe' \n\t0x72 0x65 0x6E 0x74 0x20 0x70 0x72 0x6F    // 'rent pro' \n\t0x6A 0x65 0x63 0x74 0x0D 0x0A 0x95 0x09    // 'ject???' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x61 0x72 0x72 0x6F 0x77 0x73    // 'e arrows' \n\t0x20 0x6F 0x6E 0x20 0x74 0x68 0x65 0x20    // ' on the ' \n\t0x72 0x69 0x67 0x68 0x74 0x20 0x73 0x69    // 'right si' \n\t0x64 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 'de of th' \n\t0x65 0x20 0x50 0x72 0x6F 0x6A 0x65 0x63    // 'e Projec' \n\t0x74 0x20 0x47 0x61 0x64 0x67 0x65 0x74    // 't Gadget' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpc5Project04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Why--For a special effect\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Why--For a special effect\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav5Project04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc5Project04\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav5Project04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x06 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x46 0x01 0x00 0x01    // '????F???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x65 0x20 0x61 0x63    // '??The ac' \n\t0x74 0x69 0x6F 0x6E 0x73 0x20 0x53 0x71    // 'tions Sq' \n\t0x75 0x61 0x73 0x68 0x2C 0x20 0x53 0x74    // 'uash, St' \n\t0x72 0x65 0x74 0x63 0x68 0x2C 0x20 0x53    // 'retch, S' \n\t0x68 0x72 0x69 0x6E 0x6B 0x2C 0x20 0x61    // 'hrink, a' \n\t0x6E 0x64 0x20 0x47 0x72 0x6F 0x77 0x20    // 'nd Grow ' \n\t0x61 0x72 0x65 0x20 0x64 0x69 0x66 0x66    // 'are diff' \n\t0x65 0x72 0x65 0x6E 0x74 0x20 0x66 0x72    // 'erent fr' \n\t0x6F 0x6D 0x20 0x74 0x68 0x65 0x20 0x53    // 'om the S' \n\t0x69 0x7A 0x65 0x20 0x74 0x6F 0x6F 0x6C    // 'ize tool' \n\t0x73 0x2E 0x20 0x20 0x54 0x68 0x65 0x73    // 's.  Thes' \n\t0x65 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'e action' \n\t0x73 0x20 0x6E 0x6F 0x74 0x20 0x6F 0x6E    // 's not on' \n\t0x6C 0x79 0x20 0x74 0x72 0x61 0x6E 0x73    // 'ly trans' \n\t0x66 0x6F 0x72 0x6D 0x20 0x74 0x68 0x65    // 'form the' \n\t0x20 0x73 0x68 0x61 0x70 0x65 0x20 0x61    // ' shape a' \n\t0x6E 0x64 0x20 0x73 0x69 0x7A 0x65 0x20    // 'nd size ' \n\t0x6F 0x66 0x20 0x61 0x6E 0x20 0x61 0x63    // 'of an ac' \n\t0x74 0x6F 0x72 0x20 0x6F 0x72 0x20 0x70    // 'tor or p' \n\t0x72 0x6F 0x70 0x2C 0x20 0x74 0x68 0x65    // 'rop, the' \n\t0x79 0x20 0x72 0x65 0x63 0x6F 0x72 0x64    // 'y record' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x20 0x6F 0x72 0x20 0x70 0x72    // 'or or pr' \n\t0x6F 0x70 0x27 0x73 0x20 0x63 0x68 0x61    // 'op's cha' \n\t0x6E 0x67 0x65 0x73 0x20 0x66 0x72 0x61    // 'nges fra' \n\t0x6D 0x65 0x20 0x62 0x79 0x20 0x66 0x72    // 'me by fr' \n\t0x61 0x6D 0x65 0x2E 0x20 0x20 0x59 0x6F    // 'ame.  Yo' \n\t0x75 0x20 0x63 0x61 0x6E 0x20 0x61 0x6C    // 'u can al' \n\t0x73 0x6F 0x20 0x76 0x61 0x72 0x79 0x20    // 'so vary ' \n\t0x74 0x68 0x65 0x20 0x70 0x61 0x63 0x65    // 'the pace' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x74 0x72 0x61 0x6E 0x73 0x66 0x6F 0x72    // 'transfor' \n\t0x6D 0x61 0x74 0x69 0x6F 0x6E 0x20 0x77    // 'mation w' \n\t0x69 0x74 0x68 0x20 0x74 0x68 0x65 0x20    // 'ith the ' \n\t0x74 0x77 0x6F 0x20 0x73 0x70 0x65 0x65    // 'two spee' \n\t0x64 0x73 0x3A 0x20 0x20 0x53 0x68 0x72    // 'ds:  Shr' \n\t0x69 0x6E 0x6B 0x20 0x61 0x6E 0x64 0x20    // 'ink and ' \n\t0x53 0x68 0x72 0x69 0x6E 0x6B 0x20 0x46    // 'Shrink F' \n\t0x61 0x73 0x74 0x2C 0x20 0x47 0x72 0x6F    // 'ast, Gro' \n\t0x77 0x20 0x61 0x6E 0x64 0x20 0x47 0x72    // 'w and Gr' \n\t0x6F 0x77 0x20 0x46 0x61 0x73 0x74 0x2E    // 'ow Fast.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpc5Project05\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"I created\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"I created\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobProject 0x0 kidPlayProjectSounds 0x140 0xF0 0x57415645 kwav5Project05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_49=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpc5Project05\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_49=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x01 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_49=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xF9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xFB 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xFC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xFB 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xFB 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0xFB 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_49=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x20 0x63 0x72 0x65 0x61    // '??I crea' \n\t0x74 0x65 0x64 0x20 0x74 0x68 0x65 0x20    // 'ted the ' \n\t0x66 0x69 0x72 0x73 0x74 0x20 0x70 0x61    // 'first pa' \n\t0x72 0x74 0x20 0x6F 0x66 0x20 0x74 0x68    // 'rt of th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'e movie ' \n\t0x66 0x6F 0x72 0x20 0x79 0x6F 0x75 0x2E    // 'for you.' \n\t0x20 0x20 0x42 0x6F 0x6E 0x67 0x6F 0x20    // '  Bongo ' \n\t0x77 0x61 0x6E 0x74 0x73 0x20 0x61 0x20    // 'wants a ' \n\t0x6E 0x65 0x77 0x20 0x69 0x64 0x65 0x6E    // 'new iden' \n\t0x74 0x69 0x74 0x79 0x2E 0x20 0x20 0x57    // 'tity.  W' \n\t0x69 0x6C 0x6C 0x79 0x20 0x74 0x68 0x65    // 'illy the' \n\t0x20 0x61 0x62 0x73 0x65 0x6E 0x74 0x2D    // ' absent-' \n\t0x6D 0x69 0x6E 0x64 0x65 0x64 0x20 0x70    // 'minded p' \n\t0x72 0x6F 0x66 0x65 0x73 0x73 0x6F 0x72    // 'rofessor' \n\t0x20 0x68 0x61 0x73 0x20 0x61 0x67 0x72    // ' has agr' \n\t0x65 0x65 0x64 0x20 0x74 0x6F 0x20 0x68    // 'eed to h' \n\t0x65 0x6C 0x70 0x2E 0x20 0x20 0x54 0x68    // 'elp.  Th' \n\t0x65 0x20 0x65 0x78 0x70 0x65 0x72 0x69    // 'e experi' \n\t0x6D 0x65 0x6E 0x74 0x20 0x73 0x74 0x61    // 'ment sta' \n\t0x72 0x74 0x65 0x64 0x20 0x77 0x69 0x74    // 'rted wit' \n\t0x68 0x20 0x74 0x77 0x6F 0x20 0x61 0x63    // 'h two ac' \n\t0x74 0x69 0x6F 0x6E 0x73 0x3A 0x20 0x20    // 'tions:  ' \n\t0x53 0x71 0x75 0x61 0x73 0x68 0x20 0x61    // 'Squash a' \n\t0x6E 0x64 0x20 0x53 0x74 0x72 0x65 0x74    // 'nd Stret' \n\t0x63 0x68 0x2E 0x0D 0x0A 0x4E 0x6F 0x77    // 'ch.??Now' \n\t0x20 0x69 0x74 0x92 0x73 0x20 0x79 0x6F    // ' its yo' \n\t0x75 0x72 0x20 0x74 0x75 0x72 0x6E 0x20    // 'ur turn ' \n\t0x74 0x6F 0x20 0x61 0x64 0x64 0x20 0x53    // 'to add S' \n\t0x71 0x75 0x61 0x73 0x68 0x2C 0x20 0x53    // 'quash, S' \n\t0x74 0x72 0x65 0x74 0x63 0x68 0x2C 0x20    // 'tretch, ' \n\t0x61 0x6E 0x64 0x20 0x53 0x68 0x72 0x69    // 'and Shri' \n\t0x6E 0x6B 0x2E 0x0D 0x0A 0x01              // 'nk.???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpc5Project06\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--To add Bongo's squash\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--To add Bongo's squash\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsActionBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project06\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8B 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x03    // '????$???' \n\t0x0B 0x00 0x00 0xFD 0x2B 0x00 0x00 0x03    // '???+???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x40    // '????,??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x42 0x6F 0x6E 0x67 0x6F 0x92 0x73    // ' Bongos' \n\t0x20 0x53 0x71 0x75 0x61 0x73 0x68 0x20    // ' Squash ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x2C 0x20    // 'action, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x41 0x63    // 'click Ac' \n\t0x74 0x69 0x6F 0x6E 0x73 0x2E              // 'tions.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpc5Project07\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO--Click Bongo.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO--Click Bongo.\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav5Project07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_52=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project07\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_52=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x47 0x00 0x00 0x00    // '????G???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_52=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_52, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_52=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_52, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x42 0x6F 0x6E 0x67 0x6F 0x2E              // 'Bongo.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpc5Project08\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"CO--Click the arrow\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"CO--Click the arrow\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project08\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x89 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x62 0x6C 0x61 0x6E 0x6B         // '??blank' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= ktpc5Project09\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO--Click squash\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO--Click squash\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav5Project09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_22=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project09\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_22=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x57 0x00 0x00 0x00    // '????W???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_22=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_22=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x93 0x53 0x71 0x75 0x61 0x73 0x68 0x2E    // 'Squash.' \n\t0x94                                       // '' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= ktpc5Project0A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO--Click OK\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO--Click OK\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidBrowserOk kidPlayProjectSounds 0x17 0xFFFFFFCE 0x57415645 kwav5Project0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project0A\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidBrowserOk\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x3E 0x00 0x00 0x00    // '????>???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x09 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x4F 0x4B 0x2E                             // 'OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= ktpc5Project0B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO--Click Bongo until squashed\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO--Click Bongo until squashed\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav5Project0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project0B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x97 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x9B 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x68 0x00 0x00 0x82    // '????h??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x42 0x6F 0x6E 0x67 0x6F 0x2E 0x20 0x20    // 'Bongo.  ' \n\t0x54 0x68 0x65 0x6E 0x20 0x68 0x6F 0x6C    // 'Then hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x74    // 'd down t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x20    // ' button ' \n\t0x61 0x6E 0x64 0x20 0x77 0x61 0x69 0x74    // 'and wait' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x42    // ' until B' \n\t0x6F 0x6E 0x67 0x6F 0x92 0x73 0x20 0x68    // 'ongos h' \n\t0x65 0x61 0x64 0x20 0x69 0x73 0x20 0x73    // 'ead is s' \n\t0x71 0x75 0x61 0x73 0x68 0x65 0x64 0x20    // 'quashed ' \n\t0x62 0x65 0x6C 0x6F 0x77 0x20 0x74 0x68    // 'below th' \n\t0x65 0x20 0x74 0x61 0x62 0x6C 0x65 0x2E    // 'e table.' \n\t0x0D 0x0A 0x57 0x68 0x65 0x6E 0x20 0x79    // '??When y' \n\t0x6F 0x75 0x92 0x72 0x65 0x20 0x72 0x65    // 'oure re' \n\t0x61 0x64 0x79 0x20 0x74 0x6F 0x20 0x70    // 'ady to p' \n\t0x6C 0x61 0x79 0x20 0x74 0x68 0x65 0x20    // 'lay the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20 0x63    // 'movie, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x50 0x6C 0x61 0x79 0x20 0x62 0x75    // ' Play bu' \n\t0x74 0x74 0x6F 0x6E 0x2E                   // 'tton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= ktpc5Project0C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"CO--To add Bongo's stretch\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"CO--To add Bongo's stretch\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsActionBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project0C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x03    // '????%???' \n\t0x0B 0x00 0x00 0xFD 0x2C 0x00 0x00 0x03    // '???,???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x42 0x6F 0x6E 0x67 0x6F 0x92 0x73    // ' Bongos' \n\t0x20 0x53 0x74 0x72 0x65 0x74 0x63 0x68    // ' Stretch' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x2C    // ' action,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x41    // ' click A' \n\t0x63 0x74 0x69 0x6F 0x6E 0x73 0x2E         // 'ctions.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= ktpc5Project0D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO--Click stretch\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO--Click stretch\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav5Project0D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_17=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project0D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project0D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_17=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x62 0x00 0x00 0x00    // '????b???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_17=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_17=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x93 0x53 0x74 0x72 0x65 0x74 0x63 0x68    // 'Stretch' \n\t0x2E 0x94                                  // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= ktpc5Project0E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO--Click until Bongo's head\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO--Click until Bongo's head\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav5Project0E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project0E\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project0E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x91 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x85 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x89 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5B 0x00 0x00 0x82    // '????[??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x42 0x6F 0x6E 0x67 0x6F 0x2E 0x20 0x20    // 'Bongo.  ' \n\t0x54 0x68 0x65 0x6E 0x20 0x68 0x6F 0x6C    // 'Then hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x74    // 'd down t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x20    // ' button ' \n\t0x61 0x6E 0x64 0x20 0x77 0x61 0x69 0x74    // 'and wait' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x42    // ' until B' \n\t0x6F 0x6E 0x67 0x6F 0x92 0x73 0x20 0x68    // 'ongos h' \n\t0x65 0x61 0x64 0x20 0x69 0x73 0x20 0x6F    // 'ead is o' \n\t0x75 0x74 0x2D 0x6F 0x66 0x2D 0x76 0x69    // 'ut-of-vi' \n\t0x65 0x77 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'ew.??To ' \n\t0x73 0x65 0x65 0x20 0x77 0x68 0x61 0x74    // 'see what' \n\t0x20 0x79 0x6F 0x75 0x92 0x76 0x65 0x20    // ' youve ' \n\t0x64 0x6F 0x6E 0x65 0x20 0x73 0x6F 0x20    // 'done so ' \n\t0x66 0x61 0x72 0x2C 0x20 0x63 0x6C 0x69    // 'far, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x50    // 'ck the P' \n\t0x6C 0x61 0x79 0x20 0x62 0x75 0x74 0x74    // 'lay butt' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= ktpc5Project0F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO--To shrink Bongo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO--To shrink Bongo\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsActionBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project0F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project0F\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project0F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x01    // '????9???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x03    // '????1???' \n\t0x0B 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x04    // '????9???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x68 0x72    // '??To shr' \n\t0x69 0x6E 0x6B 0x20 0x42 0x6F 0x6E 0x67    // 'ink Bong' \n\t0x6F 0x20 0x73 0x6F 0x20 0x79 0x6F 0x75    // 'o so you' \n\t0x20 0x63 0x61 0x6E 0x20 0x68 0x61 0x72    // ' can har' \n\t0x64 0x6C 0x79 0x20 0x73 0x65 0x65 0x20    // 'dly see ' \n\t0x68 0x69 0x6D 0x2C 0x20 0x63 0x6C 0x69    // 'him, cli' \n\t0x63 0x6B 0x20 0x41 0x63 0x74 0x69 0x6F    // 'ck Actio' \n\t0x6E 0x73 0x2E                             // 'ns.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= ktpc5Project10\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO--Click shrink fast\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO--Click shrink fast\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav5Project10\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_45=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project10\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project10\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_45=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_45=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_45=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x93 0x53 0x68 0x72 0x69 0x6E 0x6B 0x20    // 'Shrink ' \n\t0x46 0x61 0x73 0x74 0x2E 0x94              // 'Fast.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= ktpc5Project11\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO--Click Bongo small box\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO--Click Bongo small box\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav5Project11\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_51=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project11\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project11\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_51=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_51=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_51, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x95 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x89 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x8D 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x95 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x53 0x00 0x00 0x82    // '????S??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_51=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_51, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x42 0x6F 0x6E 0x67 0x6F 0x2E 0x20 0x20    // 'Bongo.  ' \n\t0x54 0x68 0x65 0x6E 0x20 0x68 0x6F 0x6C    // 'Then hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x74    // 'd down t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x20    // ' button ' \n\t0x61 0x6E 0x64 0x20 0x77 0x61 0x69 0x74    // 'and wait' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x42    // ' until B' \n\t0x6F 0x6E 0x67 0x6F 0x20 0x69 0x73 0x20    // 'ongo is ' \n\t0x76 0x65 0x72 0x79 0x20 0x73 0x6D 0x61    // 'very sma' \n\t0x6C 0x6C 0x2E 0x0D 0x0A 0x57 0x68 0x65    // 'll.??Whe' \n\t0x6E 0x20 0x79 0x6F 0x75 0x92 0x72 0x65    // 'n youre' \n\t0x20 0x72 0x65 0x61 0x64 0x79 0x20 0x74    // ' ready t' \n\t0x6F 0x20 0x70 0x6C 0x61 0x79 0x20 0x74    // 'o play t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'he movie' \n\t0x20 0x73 0x6F 0x20 0x66 0x61 0x72 0x2C    // ' so far,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x50 0x6C 0x61 0x79 0x20    // 'he Play ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E         // 'button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= ktpc5Project12\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"CO--Click until shrink\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"CO--Click until shrink\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameRW kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project12\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project12\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameRW\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project12\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4C, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewind __HELP_SYMBOL( STN \"mbmpRewind\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0xFC 0x00 0x00 0x1A 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xAC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x9D 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xAB 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6E 0x00 0x00 0x82    // '????n??' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x50 0x72 0x65 0x76    // 'the Prev' \n\t0x69 0x6F 0x75 0x73 0x20 0x62 0x75 0x74    // 'ious but' \n\t0x74 0x6F 0x6E 0x2D 0x01 0x20 0x75 0x6E    // 'ton-? un' \n\t0x74 0x69 0x6C 0x20 0x79 0x6F 0x75 0x20    // 'til you ' \n\t0x72 0x65 0x77 0x69 0x6E 0x64 0x20 0x79    // 'rewind y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'e to the' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x77    // ' frame w' \n\t0x68 0x65 0x72 0x65 0x20 0x42 0x6F 0x6E    // 'here Bon' \n\t0x67 0x6F 0x20 0x69 0x73 0x20 0x6A 0x75    // 'go is ju' \n\t0x73 0x74 0x20 0x73 0x74 0x61 0x72 0x74    // 'st start' \n\t0x69 0x6E 0x67 0x20 0x74 0x6F 0x20 0x73    // 'ing to s' \n\t0x68 0x72 0x69 0x6E 0x6B 0x2E 0x0D 0x0A    // 'hrink.??' \n\t0x57 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'When you' \n\t0x92 0x72 0x65 0x20 0x72 0x65 0x61 0x64    // 're read' \n\t0x79 0x20 0x66 0x6F 0x72 0x20 0x74 0x68    // 'y for th' \n\t0x65 0x20 0x6E 0x65 0x78 0x74 0x20 0x73    // 'e next s' \n\t0x74 0x65 0x70 0x2C 0x20 0x63 0x6C 0x69    // 'tep, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x50    // 'ck the P' \n\t0x72 0x6F 0x6A 0x65 0x63 0x74 0x20 0x47    // 'roject G' \n\t0x61 0x64 0x67 0x65 0x74 0x2E              // 'adget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= ktpc5Project13\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO--Remember, when \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO--Remember, when \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobProject kidGadget kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project13\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpc5Project13\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadget\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project13\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x03    // '????9???' \n\t0x0B 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x65 0x6D 0x62    // '??Rememb' \n\t0x65 0x72 0x2C 0x20 0x77 0x68 0x65 0x6E    // 'er, when' \n\t0x20 0x79 0x6F 0x75 0x92 0x72 0x65 0x20    // ' youre ' \n\t0x72 0x65 0x61 0x64 0x79 0x20 0x66 0x6F    // 'ready fo' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'r the ne' \n\t0x78 0x74 0x20 0x73 0x74 0x65 0x70 0x2C    // 'xt step,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x50 0x72 0x6F 0x6A 0x65    // 'he Proje' \n\t0x63 0x74 0x20 0x47 0x61 0x64 0x67 0x65    // 'ct Gadge' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= ktpc5Project14\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"To see the steps 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"To see the steps 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project14\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc5Project14\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project14\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x01    // '????E???' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x03    // '????:???' \n\t0x0B 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x63    // 'ps for c' \n\t0x68 0x61 0x6E 0x67 0x69 0x6E 0x67 0x20    // 'hanging ' \n\t0x74 0x68 0x65 0x20 0x63 0x61 0x6D 0x65    // 'the came' \n\t0x72 0x61 0x20 0x61 0x6E 0x67 0x6C 0x65    // 'ra angle' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x48 0x6F 0x77 0x20    // 'the How ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E         // 'button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= ktpc5Project15\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"Why--Changing camera\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"Why--Changing camera\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav5Project15\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc5Project15\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav5Project15\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x02 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xCB 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x65    // '??Change' \n\t0x20 0x63 0x61 0x6D 0x65 0x72 0x61 0x20    // ' camera ' \n\t0x61 0x6E 0x67 0x6C 0x65 0x73 0x20 0x61    // 'angles a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x6C 0x65    // 't the le' \n\t0x61 0x73 0x74 0x20 0x6E 0x6F 0x74 0x69    // 'ast noti' \n\t0x63 0x65 0x61 0x62 0x6C 0x65 0x20 0x70    // 'ceable p' \n\t0x6C 0x61 0x63 0x65 0x2D 0x2D 0x69 0x6E    // 'lace--in' \n\t0x20 0x74 0x68 0x69 0x73 0x20 0x63 0x61    // ' this ca' \n\t0x73 0x65 0x2C 0x20 0x69 0x6E 0x20 0x74    // 'se, in t' \n\t0x68 0x65 0x20 0x6D 0x69 0x64 0x64 0x6C    // 'he middl' \n\t0x65 0x20 0x6F 0x66 0x20 0x61 0x6E 0x20    // 'e of an ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x2E 0x20    // 'action. ' \n\t0x20 0x52 0x65 0x63 0x6F 0x72 0x64 0x20    // ' Record ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x69    // 'the acti' \n\t0x6F 0x6E 0x20 0x69 0x6E 0x20 0x66 0x75    // 'on in fu' \n\t0x6C 0x6C 0x2C 0x20 0x72 0x65 0x77 0x69    // 'll, rewi' \n\t0x6E 0x64 0x20 0x74 0x6F 0x20 0x74 0x68    // 'nd to th' \n\t0x65 0x20 0x66 0x72 0x61 0x6D 0x65 0x20    // 'e frame ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x92 0x64 0x20 0x6C 0x69 0x6B 0x65    // 'ud like' \n\t0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B 0x65    // ' to make' \n\t0x20 0x61 0x20 0x63 0x75 0x74 0x2C 0x20    // ' a cut, ' \n\t0x74 0x68 0x65 0x6E 0x20 0x63 0x68 0x61    // 'then cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x63 0x61 0x6D 0x65 0x72 0x61 0x20 0x61    // 'camera a' \n\t0x6E 0x67 0x6C 0x65 0x2E                   // 'ngle.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= ktpc5Project16\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO--To find camera angles\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"CO--To find camera angles\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobProject kidSettingsBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project16\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_43=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpc5Project16\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSettingsBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project16\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_43=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9F 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_43=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_43, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x03    // '????!???' \n\t0x0B 0x00 0x00 0xFD 0x27 0x00 0x00 0x03    // '???'???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_43=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_43, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x66 0x69 0x6E    // '??To fin' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x63 0x61    // 'd the ca' \n\t0x6D 0x65 0x72 0x61 0x20 0x61 0x6E 0x67    // 'mera ang' \n\t0x6C 0x65 0x73 0x2C 0x20 0x63 0x6C 0x69    // 'les, cli' \n\t0x63 0x6B 0x20 0x53 0x63 0x65 0x6E 0x65    // 'ck Scene' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= ktpc5Project17\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"CO--Click Scenes\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"CO--Click Scenes\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSettingsCameras kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project17\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_34=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project17\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSettingsCameras\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project17\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_34=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x78 0x00 0x00 0x00    // '????x???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_34=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_34=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x61 0x6D 0x65 0x72 0x61 0x20 0x41    // 'Camera A' \n\t0x6E 0x67 0x6C 0x65 0x73 0x2E              // 'ngles.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_18= ktpc5Project18\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"CO--Click this camera angle\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"CO--Click this camera angle\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x43 0x0 0x57415645 kwav5Project18\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_37=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project18\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project18\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_37=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x90 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_37=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_37=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x69 0x73 0x20 0x63 0x61 0x6D    // 'this cam' \n\t0x65 0x72 0x61 0x20 0x61 0x6E 0x67 0x6C    // 'era angl' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_19= ktpc5Project19\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO--To see new ending\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO--To see new ending\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project19\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project19\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project19\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x7A 0x00 0x00 0x01    // '????z???' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x03    // '????.???' \n\t0x0B 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00 0x6B 0x00 0x00 0x03    // '????k???' \n\t0x0B 0x00 0x00 0xFD 0x79 0x00 0x00 0x03    // '???y???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3C 0x00 0x00 0x82    // '????<??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x6E 0x65 0x77    // ' the new' \n\t0x20 0x65 0x6E 0x64 0x69 0x6E 0x67 0x20    // ' ending ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x6D    // 'to the m' \n\t0x6F 0x76 0x69 0x65 0x2C 0x20 0x63 0x6C    // 'ovie, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x50 0x6C 0x61 0x79 0x20 0x62 0x75 0x74    // 'Play but' \n\t0x74 0x6F 0x6E 0x2E 0x0D 0x0A 0x57 0x68    // 'ton.??Wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x27 0x72    // 'en you'r' \n\t0x65 0x20 0x72 0x65 0x61 0x64 0x79 0x20    // 'e ready ' \n\t0x66 0x6F 0x72 0x20 0x74 0x68 0x65 0x20    // 'for the ' \n\t0x6E 0x65 0x78 0x74 0x20 0x73 0x74 0x65    // 'next ste' \n\t0x70 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'p, click' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x72 0x6F    // ' the Pro' \n\t0x6A 0x65 0x63 0x74 0x20 0x47 0x61 0x64    // 'ject Gad' \n\t0x67 0x65 0x74 0x2E                        // 'get.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= ktpc5Project1A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"To see the steps 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"To see the steps 3\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project1A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc5Project1A\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project1A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6A 0x00 0x00 0x00    // '????j???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x01    // '????9???' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x03    // '????.???' \n\t0x0B 0x00 0x00 0xFD 0x31 0x00 0x00 0x03    // '???1???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x40    // '????9??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ps for a' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x61 0x20    // 'dding a ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x63 0x6C    // 'prop, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x48 0x6F 0x77 0x20 0x62 0x75 0x74 0x74    // 'How butt' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1B= ktpc5Project1B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"Why--Use the explosion\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"Why--Use the explosion\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav5Project1B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc5Project1B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav5Project1B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8C 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x55 0x73 0x65 0x20 0x74 0x68    // '??Use th' \n\t0x65 0x20 0x45 0x78 0x70 0x6C 0x6F 0x73    // 'e Explos' \n\t0x69 0x6F 0x6E 0x20 0x70 0x72 0x6F 0x70    // 'ion prop' \n\t0x20 0x61 0x6E 0x64 0x20 0x6C 0x65 0x61    // ' and lea' \n\t0x76 0x65 0x20 0x74 0x68 0x65 0x6D 0x20    // 've them ' \n\t0x69 0x6E 0x20 0x61 0x77 0x65 0x21         // 'in awe!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= ktpc5Project1C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"CO--To find props\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"CO--To find props\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsCover kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project1C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project1C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsCover\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project1C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x88 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x27 0x00 0x00 0x03    // '???'???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x66 0x69 0x6E    // '??To fin' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x70 0x72    // 'd the pr' \n\t0x6F 0x70 0x73 0x2C 0x20 0x63 0x6C 0x69    // 'ops, cli' \n\t0x63 0x6B 0x20 0x41 0x63 0x74 0x6F 0x72    // 'ck Actor' \n\t0x73 0x20 0x26 0x20 0x50 0x72 0x6F 0x70    // 's & Prop' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1D= ktpc5Project1D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"CO--Click Props.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"CO--Click Props.\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsPropBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project1D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project1D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsPropBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project1D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x43 0x00 0x00 0x00    // '????C???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x20 0x50 0x72 0x6F 0x70 0x73 0x2E         // ' Props.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1E= ktpc5Project1E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"CO--Click the explosion\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"CO--Click the explosion\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x25 0x0 0x57415645 kwav5Project1E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_28=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project1E\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project1E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_28=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6E 0x00 0x00 0x00    // '????n???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_28=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_28=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x65 0x78 0x70 0x6C    // 'the expl' \n\t0x6F 0x73 0x69 0x6F 0x6E 0x2E              // 'osion.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1F= ktpc5Project1F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"CO--Now place \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"CO--Now place \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav5Project1F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project1F\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project1F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8F 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2A 0x00 0x00 0x01    // '????*???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x77 0x20 0x70 0x6C    // '??Now pl' \n\t0x61 0x63 0x65 0x20 0x74 0x68 0x65 0x20    // 'ace the ' \n\t0x65 0x78 0x70 0x6C 0x6F 0x73 0x69 0x6F    // 'explosio' \n\t0x6E 0x20 0x69 0x6E 0x20 0x66 0x72 0x6F    // 'n in fro' \n\t0x6E 0x74 0x20 0x6F 0x66 0x20 0x42 0x6F    // 'nt of Bo' \n\t0x6E 0x67 0x6F 0x2E                        // 'ngo.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_20= ktpc5Project20\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"CO--To reduce size\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"CO--To reduce size\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsTransform kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project20\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project20\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsTransform\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project20\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3A 0x00 0x00 0x01    // '????:???' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x03    // '????/???' \n\t0x0B 0x00 0x00 0xFD 0x39 0x00 0x00 0x03    // '???9???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x64    // '??To red' \n\t0x75 0x63 0x65 0x20 0x74 0x68 0x65 0x20    // 'uce the ' \n\t0x73 0x69 0x7A 0x65 0x20 0x6F 0x66 0x20    // 'size of ' \n\t0x74 0x68 0x65 0x20 0x65 0x78 0x70 0x6C    // 'the expl' \n\t0x6F 0x73 0x69 0x6F 0x6E 0x2C 0x20 0x63    // 'osion, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x53 0x69 0x7A 0x65 0x20 0x54 0x6F    // ' Size To' \n\t0x6F 0x6C 0x73 0x2E                        // 'ols.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_21= ktpc5Project21\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"CO--Click Size Evenly\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"CO--Click Size Evenly\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon4 kgobProject kidActorsShrink kidPlayProjectSounds 0x0 0xFFFFFFEC 0x57415645 kwav5Project21\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_21=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon4\"\n\tITEM\n\t\t\"ktpc5Project21\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsShrink\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project21\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_21=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6B 0x00 0x00 0x00    // '????k???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_21=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x12 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_21=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x53 0x69 0x7A 0x65 0x20 0x45 0x76 0x65    // 'Size Eve' \n\t0x6E 0x6C 0x79 0x2E                        // 'nly.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_22= ktpc5Project22\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"CO--Move cursor\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"CO--Move cursor\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav5Project22\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project22\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project22\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x94 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xA2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x65 0x00 0x00 0x82    // '????e??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x6F 0x76 0x65 0x20 0x74    // '??Move t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x63 0x75 0x72 0x73 0x6F 0x72 0x20    // ' cursor ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x65 0x78 0x70 0x6C 0x6F 0x73 0x69    // ' explosi' \n\t0x6F 0x6E 0x20 0x61 0x6E 0x64 0x20 0x64    // 'on and d' \n\t0x72 0x61 0x67 0x20 0x69 0x6E 0x20 0x75    // 'rag in u' \n\t0x6E 0x74 0x69 0x6C 0x20 0x74 0x68 0x65    // 'ntil the' \n\t0x20 0x65 0x78 0x70 0x6C 0x6F 0x73 0x69    // ' explosi' \n\t0x6F 0x6E 0x20 0x69 0x73 0x20 0x74 0x68    // 'on is th' \n\t0x65 0x20 0x73 0x61 0x6D 0x65 0x20 0x73    // 'e same s' \n\t0x69 0x7A 0x65 0x20 0x61 0x73 0x20 0x42    // 'ize as B' \n\t0x6F 0x6E 0x67 0x6F 0x2E 0x0D 0x0A 0x57    // 'ongo.??W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x92    // 'hen you' \n\t0x72 0x65 0x20 0x72 0x65 0x61 0x64 0x79    // 're ready' \n\t0x20 0x66 0x6F 0x72 0x20 0x74 0x68 0x65    // ' for the' \n\t0x20 0x6E 0x65 0x78 0x74 0x20 0x73 0x74    // ' next st' \n\t0x65 0x70 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ep, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x50 0x72    // 'k the Pr' \n\t0x6F 0x6A 0x65 0x63 0x74 0x20 0x47 0x61    // 'oject Ga' \n\t0x64 0x67 0x65 0x74 0x2E                   // 'dget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_23= ktpc5Project23\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"Why--Size Evenly\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"Why--Size Evenly\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav5Project23\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_32=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc5Project23\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav5Project23\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_32=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_32=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_32=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74                   // '??Cut' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_24= ktpc5Project24\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"To see steps 4\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"To see steps 4\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project24\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_29=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc5Project24\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project24\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_29=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6A 0x00 0x00 0x00    // '????j???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_29=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x03    // '????1???' \n\t0x0B 0x00 0x00 0xFD 0x34 0x00 0x00 0x03    // '???4???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_29=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ps for a' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'dding an' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x2C    // ' action,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x48 0x6F 0x77 0x20 0x62    // 'he How b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x2E              // 'utton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_25= ktpc5Project25\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"Why--Make this special\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"Why--Make this special\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav5Project25\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc5Project25\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav5Project25\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xB7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xB7 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x6B 0x65 0x20 0x74    // '??Make t' \n\t0x68 0x69 0x73 0x20 0x73 0x70 0x65 0x63    // 'his spec' \n\t0x69 0x61 0x6C 0x20 0x65 0x66 0x66 0x65    // 'ial effe' \n\t0x63 0x74 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'ct come ' \n\t0x74 0x6F 0x20 0x6C 0x69 0x66 0x65 0x20    // 'to life ' \n\t0x62 0x79 0x20 0x6D 0x61 0x6B 0x69 0x6E    // 'by makin' \n\t0x67 0x20 0x69 0x74 0x20 0x67 0x72 0x6F    // 'g it gro' \n\t0x77 0x20 0x66 0x61 0x73 0x74 0x2E 0x20    // 'w fast. ' \n\t0x20 0x54 0x68 0x65 0x20 0x66 0x61 0x73    // ' The fas' \n\t0x74 0x65 0x72 0x20 0x73 0x70 0x65 0x65    // 'ter spee' \n\t0x64 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'd of the' \n\t0x20 0x47 0x72 0x6F 0x77 0x20 0x46 0x61    // ' Grow Fa' \n\t0x73 0x74 0x20 0x61 0x63 0x74 0x69 0x6F    // 'st actio' \n\t0x6E 0x2D 0x2D 0x63 0x6F 0x6D 0x70 0x61    // 'n--compa' \n\t0x72 0x65 0x64 0x20 0x74 0x6F 0x20 0x74    // 'red to t' \n\t0x68 0x65 0x20 0x47 0x72 0x6F 0x77 0x20    // 'he Grow ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x2D 0x2D    // 'action--' \n\t0x6D 0x61 0x6B 0x65 0x73 0x20 0x74 0x68    // 'makes th' \n\t0x65 0x20 0x65 0x78 0x70 0x6C 0x6F 0x73    // 'e explos' \n\t0x69 0x6F 0x6E 0x20 0x62 0x65 0x6C 0x69    // 'ion beli' \n\t0x65 0x76 0x61 0x62 0x6C 0x65 0x20 0x61    // 'evable a' \n\t0x6E 0x64 0x20 0x6D 0x6F 0x72 0x65 0x20    // 'nd more ' \n\t0x64 0x72 0x61 0x6D 0x61 0x74 0x69 0x63    // 'dramatic' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_26= ktpc5Project26\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"CO--To add grow fast\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"CO--To add grow fast\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsActionBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project26\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_27=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project26\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project26\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_27=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_27=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x03    // '????#???' \n\t0x0B 0x00 0x00 0xFD 0x2A 0x00 0x00 0x03    // '???*???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_27=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x74 0x68 0x65 0x20 0x47 0x72 0x6F    // ' the Gro' \n\t0x77 0x20 0x46 0x61 0x73 0x74 0x20 0x61    // 'w Fast a' \n\t0x63 0x74 0x69 0x6F 0x6E 0x2C 0x20 0x63    // 'ction, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x41 0x63 0x74    // 'lick Act' \n\t0x69 0x6F 0x6E 0x73 0x2E                   // 'ions.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_27= ktpc5Project27\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"CO--Click the explosion\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"CO--Click the explosion\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav5Project27\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project27\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project27\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x76 0x00 0x00 0x00    // '????v???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x65 0x78 0x70 0x6C    // 'the expl' \n\t0x6F 0x73 0x69 0x6F 0x6E 0x2E              // 'osion.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_28= ktpc5Project28\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"CO--Click grow fast\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"CO--Click grow fast\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav5Project28\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_23=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project28\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project28\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_23=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6B 0x00 0x00 0x00    // '????k???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_23=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_23=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x93 0x47 0x72 0x6F 0x77 0x20 0x46 0x61    // 'Grow Fa' \n\t0x73 0x74 0x2E 0x94                        // 'st.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_29= ktpc5Project29\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"CO--Click the explosion until\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"CO--Click the explosion until\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav5Project29\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project29\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project29\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x9E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x92 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x96 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x63 0x00 0x00 0x82    // '????c??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x65 0x78 0x70 0x6C    // 'the expl' \n\t0x6F 0x73 0x69 0x6F 0x6E 0x2E 0x20 0x20    // 'osion.  ' \n\t0x54 0x68 0x65 0x6E 0x20 0x68 0x6F 0x6C    // 'Then hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x74    // 'd down t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x20    // ' button ' \n\t0x61 0x6E 0x64 0x20 0x77 0x61 0x69 0x74    // 'and wait' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x74    // ' until t' \n\t0x68 0x65 0x20 0x65 0x78 0x70 0x6C 0x6F    // 'he explo' \n\t0x73 0x69 0x6F 0x6E 0x20 0x69 0x73 0x20    // 'sion is ' \n\t0x72 0x65 0x61 0x6C 0x6C 0x79 0x20 0x62    // 'really b' \n\t0x69 0x67 0x2E 0x0D 0x0A 0x57 0x68 0x65    // 'ig.??Whe' \n\t0x6E 0x20 0x79 0x6F 0x75 0x92 0x72 0x65    // 'n youre' \n\t0x20 0x72 0x65 0x61 0x64 0x79 0x20 0x74    // ' ready t' \n\t0x6F 0x20 0x70 0x6C 0x61 0x79 0x20 0x74    // 'o play t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'he movie' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x50 0x6C 0x61 0x79    // 'the Play' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E    // ' button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2A= ktpc5Project2A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"CO--Rewind first appears\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"CO--Rewind first appears\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameRW kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project2A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_25=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project2A\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameRW\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project2A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_25=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_25=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA1 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x92 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xA0 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x63 0x00 0x00 0x82    // '????c??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_25=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x62 0x75 0x74 0x74    // 'the butt' \n\t0x6F 0x6E 0x20 0x62 0x65 0x6C 0x6F 0x77    // 'on below' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x79    // ' until y' \n\t0x6F 0x75 0x20 0x72 0x65 0x77 0x69 0x6E    // 'ou rewin' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'd the mo' \n\t0x76 0x69 0x65 0x20 0x74 0x6F 0x20 0x74    // 'vie to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x74    // ' where t' \n\t0x68 0x65 0x20 0x65 0x78 0x70 0x6C 0x6F    // 'he explo' \n\t0x73 0x69 0x6F 0x6E 0x20 0x66 0x69 0x72    // 'sion fir' \n\t0x73 0x74 0x20 0x61 0x70 0x70 0x65 0x61    // 'st appea' \n\t0x72 0x73 0x2E 0x0D 0x0A 0x57 0x68 0x65    // 'rs.??Whe' \n\t0x6E 0x20 0x79 0x6F 0x75 0x92 0x72 0x65    // 'n youre' \n\t0x20 0x72 0x65 0x61 0x64 0x79 0x20 0x66    // ' ready f' \n\t0x6F 0x72 0x20 0x74 0x68 0x65 0x20 0x6E    // 'or the n' \n\t0x65 0x78 0x74 0x20 0x73 0x74 0x65 0x70    // 'ext step' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x50 0x72 0x6F 0x6A    // 'the Proj' \n\t0x65 0x63 0x74 0x20 0x47 0x61 0x64 0x67    // 'ect Gadg' \n\t0x65 0x74 0x2E                             // 'et.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2B= ktpc5Project2B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"To see steps 5\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"To see steps 5\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project2B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_24=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc5Project2B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project2B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_24=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x70 0x00 0x00 0x00    // '????p???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_24=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x41 0x00 0x00 0x01    // '????A???' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x03    // '????6???' \n\t0x0B 0x00 0x00 0xFD 0x39 0x00 0x00 0x03    // '???9???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_24=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ps for a' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x61 0x20    // 'dding a ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x65 0x66    // 'sound ef' \n\t0x66 0x65 0x63 0x74 0x2C 0x20 0x63 0x6C    // 'fect, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x48 0x6F 0x77 0x20 0x62 0x75 0x74 0x74    // 'How butt' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2C= ktpc5Project2C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"Why--Sound Effects\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"Why--Sound Effects\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav5Project2C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc5Project2C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav5Project2C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x75 0x00 0x00 0x01    // '????u???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x75 0x6E 0x64 0x20    // '??Sound ' \n\t0x65 0x66 0x66 0x65 0x63 0x74 0x73 0x2C    // 'effects,' \n\t0x20 0x73 0x75 0x63 0x68 0x20 0x61 0x73    // ' such as' \n\t0x20 0x93 0x45 0x78 0x70 0x6C 0x6F 0x73    // ' Explos' \n\t0x69 0x6F 0x6E 0x20 0x42 0x69 0x67 0x2C    // 'ion Big,' \n\t0x94 0x20 0x6D 0x61 0x6B 0x65 0x20 0x74    // ' make t' \n\t0x68 0x65 0x20 0x65 0x78 0x70 0x6C 0x6F    // 'he explo' \n\t0x73 0x69 0x6F 0x6E 0x20 0x69 0x6D 0x70    // 'sion imp' \n\t0x6F 0x72 0x74 0x61 0x6E 0x74 0x20 0x61    // 'ortant a' \n\t0x6E 0x64 0x20 0x61 0x64 0x64 0x20 0x73    // 'nd add s' \n\t0x75 0x73 0x70 0x65 0x6E 0x73 0x65 0x20    // 'uspense ' \n\t0x74 0x6F 0x20 0x74 0x68 0x69 0x73 0x20    // 'to this ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x2D 0x70    // 'action-p' \n\t0x61 0x63 0x6B 0x65 0x64 0x20 0x73 0x65    // 'acked se' \n\t0x71 0x75 0x65 0x6E 0x63 0x65 0x2E         // 'quence.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2D= ktpc5Project2D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"CO--To add sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"CO--To add sound\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSoundsCover kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project2D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project2D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSoundsCover\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project2D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x88 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x0F 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \n\t0x20 0x65 0x66 0x66 0x65 0x63 0x74 0x2C    // ' effect,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x53    // ' click S' \n\t0x6F 0x75 0x6E 0x64 0x73 0x2E              // 'ounds.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2E= ktpc5Project2E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"CO--Click Sound Effects\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"CO--Click Sound Effects\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSoundsEfxBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project2E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project2E\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSoundsEfxBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project2E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7B 0x00 0x00 0x00    // '????{???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x53 0x6F 0x75 0x6E 0x64 0x20 0x45 0x66    // 'Sound Ef' \n\t0x66 0x65 0x63 0x74 0x73 0x2E              // 'fects.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2F= ktpc5Project2F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"CO--Click Explosion big\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"CO--Click Explosion big\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav5Project2F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_50=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project2F\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project2F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_50=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7A 0x00 0x00 0x00    // '????z???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_50=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_50=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x93 0x65 0x78 0x70 0x6C 0x6F 0x73 0x69    // 'explosi' \n\t0x6F 0x6E 0x20 0x62 0x69 0x67 0x2E 0x94    // 'on big.' \n\t0x20 0x54 0x68 0x65 0x6E 0x20 0x63 0x6C    // ' Then cl' \n\t0x69 0x63 0x6B 0x20 0x4F 0x4B 0x2E         // 'ick OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_30= ktpc5Project30\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"CO--To play new ending\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"CO--To play new ending\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project30\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project30\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project30\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0x01    // '????;???' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x03    // '????/???' \n\t0x0B 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x6C 0x61    // '??To pla' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'y the ne' \n\t0x77 0x20 0x65 0x6E 0x64 0x69 0x6E 0x67    // 'w ending' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20 0x63    // 'movie, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x50 0x6C 0x61 0x79 0x20 0x62 0x75    // ' Play bu' \n\t0x74 0x74 0x6F 0x6E 0x2E                   // 'tton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_31= ktpc5Project31\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"CO--To make room\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"CO--To make room\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidCutCopyPaste kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project31\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project31\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project31\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x63 0x00 0x00 0x01    // '????c???' \n\t0x00 0x00 0x00 0x00 0x4A 0x00 0x00 0x03    // '????J???' \n\t0x0B 0x00 0x00 0xFD 0x62 0x00 0x00 0x03    // '???b???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x61 0x6B    // '??To mak' \n\t0x65 0x20 0x72 0x6F 0x6F 0x6D 0x20 0x66    // 'e room f' \n\t0x6F 0x72 0x20 0x74 0x68 0x65 0x20 0x73    // 'or the s' \n\t0x6B 0x65 0x6C 0x65 0x74 0x6F 0x6E 0x2C    // 'keleton,' \n\t0x20 0x72 0x65 0x6D 0x6F 0x76 0x65 0x20    // ' remove ' \n\t0x42 0x6F 0x6E 0x67 0x6F 0x20 0x61 0x6E    // 'Bongo an' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x65 0x78    // 'd the ex' \n\t0x70 0x6C 0x6F 0x73 0x69 0x6F 0x6E 0x2E    // 'plosion.' \n\t0x20 0x20 0x43 0x6C 0x69 0x63 0x6B 0x20    // '  Click ' \n\t0x74 0x68 0x65 0x20 0x43 0x75 0x74 0x2C    // 'the Cut,' \n\t0x20 0x43 0x6F 0x70 0x79 0x2C 0x20 0x26    // ' Copy, &' \n\t0x20 0x50 0x61 0x73 0x74 0x65 0x20 0x54    // ' Paste T' \n\t0x6F 0x6F 0x6C 0x73 0x2E                   // 'ools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_32= ktpc5Project32\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"CO--Click Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"CO--Click Cut\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidCCPCut kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project32\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_30=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project32\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidCCPCut\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project32\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_30=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x39 0x00 0x00 0x00    // '????9???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_30=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_30=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x43 0x75 0x74 0x2E                        // 'Cut.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_33= ktpc5Project33\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"CO--Click Bongo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"CO--Click Bongo\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav5Project33\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project33\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project33\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7B 0x00 0x00 0x00    // '????{???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4C 0x00 0x00 0x01    // '????L???' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x03    // '????=???' \n\t0x0B 0x00 0x00 0xFD 0x4B 0x00 0x00 0x03    // '???K???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x42 0x6F 0x6E 0x67 0x6F 0x2E 0x20 0x20    // 'Bongo.  ' \n\t0x57 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'When you' \n\t0x27 0x72 0x65 0x20 0x72 0x65 0x61 0x64    // ''re read' \n\t0x79 0x20 0x66 0x6F 0x72 0x20 0x74 0x68    // 'y for th' \n\t0x65 0x20 0x6E 0x65 0x78 0x74 0x20 0x73    // 'e next s' \n\t0x74 0x65 0x70 0x2C 0x20 0x63 0x6C 0x69    // 'tep, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x50    // 'ck the P' \n\t0x72 0x6F 0x6A 0x65 0x63 0x74 0x20 0x47    // 'roject G' \n\t0x61 0x64 0x67 0x65 0x74 0x2E              // 'adget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_34= ktpc5Project34\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"To see the steps 6\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"To see the steps 6\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project34\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_20=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc5Project34\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project34\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_20=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x66 0x00 0x00 0x00    // '????f???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_20=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0x01    // '????;???' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x03    // '????0???' \n\t0x0B 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_20=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ps for a' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'dding an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x48 0x6F 0x77 0x20 0x62 0x75    // 'e How bu' \n\t0x74 0x74 0x6F 0x6E 0x2E                   // 'tton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_35= ktpc5Project35\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"Why--Casting\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"Why--Casting\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav5Project35\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc5Project35\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav5Project35\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x61 0x73 0x74 0x69 0x6E    // '??Castin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x70 0x65    // 'g the pe' \n\t0x72 0x66 0x65 0x63 0x74 0x20 0x61 0x63    // 'rfect ac' \n\t0x74 0x6F 0x72 0x20 0x66 0x6F 0x72 0x20    // 'tor for ' \n\t0x74 0x68 0x65 0x20 0x63 0x6C 0x69 0x6D    // 'the clim' \n\t0x61 0x78 0x20 0x6F 0x66 0x20 0x61 0x20    // 'ax of a ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x69 0x73    // 'movie is' \n\t0x20 0x61 0x20 0x62 0x69 0x67 0x20 0x63    // ' a big c' \n\t0x68 0x61 0x6C 0x6C 0x65 0x6E 0x67 0x65    // 'hallenge' \n\t0x21 0x20 0x20 0x42 0x6F 0x6E 0x67 0x6F    // '!  Bongo' \n\t0x20 0x61 0x6E 0x64 0x20 0x74 0x68 0x65    // ' and the' \n\t0x20 0x73 0x6B 0x65 0x6C 0x65 0x74 0x6F    // ' skeleto' \n\t0x6E 0x20 0x61 0x72 0x65 0x20 0x74 0x77    // 'n are tw' \n\t0x6F 0x20 0x65 0x78 0x74 0x72 0x65 0x6D    // 'o extrem' \n\t0x65 0x73 0x2E 0x20 0x20 0x43 0x6F 0x6D    // 'es.  Com' \n\t0x65 0x64 0x79 0x20 0x74 0x68 0x72 0x69    // 'edy thri' \n\t0x76 0x65 0x73 0x20 0x6F 0x6E 0x20 0x63    // 'ves on c' \n\t0x6F 0x6D 0x70 0x61 0x72 0x69 0x6E 0x67    // 'omparing' \n\t0x20 0x61 0x6E 0x64 0x20 0x63 0x6F 0x6E    // ' and con' \n\t0x74 0x72 0x61 0x73 0x74 0x69 0x6E 0x67    // 'trasting' \n\t0x20 0x6F 0x70 0x70 0x6F 0x73 0x69 0x74    // ' opposit' \n\t0x65 0x73 0x2E                             // 'es.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_36= ktpc5Project36\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"CO--To add an actor\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"CO--To add an actor\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsCover kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project36\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_36=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project36\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsCover\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project36\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_36=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x87 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_36=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_36=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'r, click' \n\t0x20 0x41 0x63 0x74 0x6F 0x72 0x73 0x20    // ' Actors ' \n\t0x26 0x20 0x50 0x72 0x6F 0x70 0x73 0x2E    // '& Props.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_37= ktpc5Project37\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"CO--Click the skeleton\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"CO--Click the skeleton\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x25 0x0 0x57415645 kwav5Project37\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project37\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project37\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6C 0x00 0x00 0x00    // '????l???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x73 0x6B 0x65 0x6C    // 'the skel' \n\t0x65 0x74 0x6F 0x6E 0x2E                   // 'eton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_38= ktpc5Project38\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"CO--Place the skeleton\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"CO--Place the skeleton\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav5Project38\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project38\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project38\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x6C 0x61 0x63 0x65 0x20    // '??Place ' \n\t0x74 0x68 0x65 0x20 0x73 0x6B 0x65 0x6C    // 'the skel' \n\t0x65 0x74 0x6F 0x6E 0x20 0x69 0x6E 0x20    // 'eton in ' \n\t0x74 0x68 0x65 0x20 0x6D 0x69 0x64 0x64    // 'the midd' \n\t0x6C 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 'le of th' \n\t0x65 0x20 0x58 0x2C 0x20 0x66 0x61 0x63    // 'e X, fac' \n\t0x69 0x6E 0x67 0x20 0x57 0x69 0x6C 0x6C    // 'ing Will' \n\t0x79 0x2E                                  // 'y.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_39= ktpc5Project39\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"CO--To reduce\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"CO--To reduce\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsTransform kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project39\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_35=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project39\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsTransform\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project39\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_35=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_35=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x01    // '????9???' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x03    // '????.???' \n\t0x0B 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x0F 0x00 0x00 0xFD 0x39 0x00 0x00 0x03    // '???9???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_35=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x64    // '??To red' \n\t0x75 0x63 0x65 0x20 0x74 0x68 0x65 0x20    // 'uce the ' \n\t0x73 0x69 0x7A 0x65 0x20 0x6F 0x66 0x20    // 'size of ' \n\t0x74 0x68 0x65 0x20 0x73 0x6B 0x65 0x6C    // 'the skel' \n\t0x65 0x74 0x6F 0x6E 0x2C 0x20 0x63 0x6C    // 'eton, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x53 0x69 0x7A 0x65 0x20 0x54 0x6F 0x6F    // 'Size Too' \n\t0x6C 0x73 0x2E                             // 'ls.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3A= ktpc5Project3A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav5Project3A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_38=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc5Project3A\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav5Project3A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_38=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_38=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x03    // '????y???' \n\t0x0A 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x79 0x00 0x00 0x80    // '????y??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x79 0x00 0x00 0x82    // '????y??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_38=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x0D 0x0A    // '??Drag??' \n\t0x31 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '1?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x73 0x20    // 'tton as ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'you move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x57    // 'se.??2?W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x76 0x65 0x20 0x66 0x69 0x6E 0x69 0x73    // 've finis' \n\t0x68 0x65 0x64 0x20 0x64 0x72 0x61 0x67    // 'hed drag' \n\t0x67 0x69 0x6E 0x67 0x2C 0x20 0x6C 0x65    // 'ging, le' \n\t0x74 0x20 0x67 0x6F 0x20 0x6F 0x66 0x20    // 't go of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x2E 0x0D 0x0A 0x54 0x69 0x70 0x20 0x66    // '.??Tip f' \n\t0x72 0x6F 0x6D 0x20 0x4D 0x63 0x5A 0x65    // 'rom McZe' \n\t0x65 0x3A 0x20 0x20 0x59 0x6F 0x75 0x27    // 'e:  You'' \n\t0x6C 0x6C 0x20 0x67 0x65 0x74 0x20 0x74    // 'll get t' \n\t0x68 0x65 0x20 0x62 0x65 0x73 0x74 0x20    // 'he best ' \n\t0x72 0x65 0x73 0x75 0x6C 0x74 0x73 0x20    // 'results ' \n\t0x69 0x66 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'if you m' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x73 0x6C    // 'mouse sl' \n\t0x6F 0x77 0x6C 0x79 0x20 0x61 0x73 0x20    // 'owly as ' \n\t0x79 0x6F 0x75 0x20 0x64 0x72 0x61 0x67    // 'you drag' \n\t0x2E 0x20                                  // '. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3B= ktpc5Project3B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"Def:  drag\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"Def:  drag\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav5Project3B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc5Project3B\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav5Project3B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x03    // '????y???' \n\t0x0A 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x79 0x00 0x00 0x80    // '????y??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x79 0x00 0x00 0x82    // '????y??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x64 0x72 0x61 0x67 0x0D 0x0A    // '??drag??' \n\t0x31 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '1?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x73 0x20    // 'tton as ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'you move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x57    // 'se.??2?W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x76 0x65 0x20 0x66 0x69 0x6E 0x69 0x73    // 've finis' \n\t0x68 0x65 0x64 0x20 0x64 0x72 0x61 0x67    // 'hed drag' \n\t0x67 0x69 0x6E 0x67 0x2C 0x20 0x6C 0x65    // 'ging, le' \n\t0x74 0x20 0x67 0x6F 0x20 0x6F 0x66 0x20    // 't go of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x2E 0x0D 0x0A 0x54 0x69 0x70 0x20 0x66    // '.??Tip f' \n\t0x72 0x6F 0x6D 0x20 0x4D 0x63 0x5A 0x65    // 'rom McZe' \n\t0x65 0x3A 0x20 0x20 0x59 0x6F 0x75 0x27    // 'e:  You'' \n\t0x6C 0x6C 0x20 0x67 0x65 0x74 0x20 0x74    // 'll get t' \n\t0x68 0x65 0x20 0x62 0x65 0x73 0x74 0x20    // 'he best ' \n\t0x72 0x65 0x73 0x75 0x6C 0x74 0x73 0x20    // 'results ' \n\t0x69 0x66 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'if you m' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x73 0x6C    // 'mouse sl' \n\t0x6F 0x77 0x6C 0x79 0x20 0x61 0x73 0x20    // 'owly as ' \n\t0x79 0x6F 0x75 0x20 0x64 0x72 0x61 0x67    // 'you drag' \n\t0x2E 0x20                                  // '. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3C= ktpc5Project3C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"CO--Click Size Evenly\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"CO--Click Size Evenly\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon4 kgobProject kidActorsShrink kidPlayProjectSounds 0x0 0xFFFFFFEC 0x57415645 kwav5Project3C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon4\"\n\tITEM\n\t\t\"ktpc5Project3C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsShrink\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project3C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x66 0x00 0x00 0x00    // '????f???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x53 0x69 0x7A 0x65 0x20 0x45 0x76 0x65    // 'Size Eve' \n\t0x6E 0x6C 0x79 0x2E                        // 'nly.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3D= ktpc5Project3D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"CO--Until skeleton small\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"CO--Until skeleton small\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav5Project3D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_47=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project3D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project3D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_47=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_47=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_47, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x95 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x86 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x94 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x57 0x00 0x00 0x82    // '????W??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_47=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_47, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x6F 0x76 0x65 0x20 0x74    // '??Move t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x63 0x75 0x72 0x73 0x6F 0x72 0x20    // ' cursor ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x73 0x6B 0x65 0x6C 0x65 0x74 0x6F    // ' skeleto' \n\t0x6E 0x20 0x61 0x6E 0x64 0x20 0x64 0x72    // 'n and dr' \n\t0x61 0x67 0x20 0x69 0x6E 0x20 0x75 0x6E    // 'ag in un' \n\t0x74 0x69 0x6C 0x20 0x74 0x68 0x65 0x20    // 'til the ' \n\t0x73 0x6B 0x65 0x6C 0x65 0x74 0x6F 0x6E    // 'skeleton' \n\t0x20 0x69 0x73 0x20 0x76 0x65 0x72 0x79    // ' is very' \n\t0x20 0x73 0x6D 0x61 0x6C 0x6C 0x2E 0x0D    // ' small.?' \n\t0x0A 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // '?When yo' \n\t0x75 0x92 0x72 0x65 0x20 0x72 0x65 0x61    // 'ure rea' \n\t0x64 0x79 0x20 0x66 0x6F 0x72 0x20 0x74    // 'dy for t' \n\t0x68 0x65 0x20 0x6E 0x65 0x78 0x74 0x20    // 'he next ' \n\t0x73 0x74 0x65 0x70 0x2C 0x20 0x63 0x6C    // 'step, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x50 0x72 0x6F 0x6A 0x65 0x63 0x74 0x20    // 'Project ' \n\t0x47 0x61 0x64 0x67 0x65 0x74 0x2E         // 'Gadget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3E= ktpc5Project3E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"To see steps 7\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"To see steps 7\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project3E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_42=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc5Project3E\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project3E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_42=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6A 0x00 0x00 0x00    // '????j???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_42=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x03    // '????1???' \n\t0x0B 0x00 0x00 0xFD 0x34 0x00 0x00 0x03    // '???4???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_42=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ps for a' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'dding an' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x2C    // ' action,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x48 0x6F 0x77 0x20 0x62    // 'he How b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x2E              // 'utton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3F= ktpc5Project3F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"Why--Grow Fast\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"Why--Grow Fast\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav5Project3F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_39=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc5Project3F\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav5Project3F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_39=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_39=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x66 0x00 0x00 0x01    // '????f???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_39=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x65 0x20 0x47 0x72    // '??The Gr' \n\t0x6F 0x77 0x20 0x46 0x61 0x73 0x74 0x20    // 'ow Fast ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x20 0x77    // 'action w' \n\t0x69 0x6C 0x6C 0x20 0x6D 0x61 0x6B 0x65    // 'ill make' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x75 0x64    // ' the aud' \n\t0x69 0x65 0x6E 0x63 0x65 0x20 0x74 0x68    // 'ience th' \n\t0x69 0x6E 0x6B 0x20 0x74 0x68 0x61 0x74    // 'ink that' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6B 0x65    // ' the ske' \n\t0x6C 0x65 0x74 0x6F 0x6E 0x20 0x69 0x73    // 'leton is' \n\t0x20 0x93 0x67 0x72 0x6F 0x77 0x69 0x6E    // ' growin' \n\t0x67 0x94 0x20 0x6F 0x75 0x74 0x20 0x6F    // 'g out o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x65 0x78    // 'f the ex' \n\t0x70 0x6C 0x6F 0x73 0x69 0x6F 0x6E 0x2E    // 'plosion.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_40= ktpc5Project40\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_40, __HELP_NAME(\"CO--To add Grow Fast\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_40, __HELP_NAME(\"CO--To add Grow Fast\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsActionBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project40\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_40, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project40\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project40\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x03    // '????#???' \n\t0x0B 0x00 0x00 0xFD 0x2A 0x00 0x00 0x03    // '???*???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x74 0x68 0x65 0x20 0x47 0x72 0x6F    // ' the Gro' \n\t0x77 0x20 0x46 0x61 0x73 0x74 0x20 0x61    // 'w Fast a' \n\t0x63 0x74 0x69 0x6F 0x6E 0x2C 0x20 0x63    // 'ction, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x41 0x63 0x74    // 'lick Act' \n\t0x69 0x6F 0x6E 0x73 0x2E                   // 'ions.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_41= ktpc5Project41\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_41, __HELP_NAME(\"CO--Click Grow Fast\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_41, __HELP_NAME(\"CO--Click Grow Fast\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav5Project41\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_41, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project41\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project41\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_41, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6E 0x00 0x00 0x00    // '????n???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x93 0x47 0x72 0x6F 0x77 0x20 0x46 0x61    // 'Grow Fa' \n\t0x73 0x74 0x2E 0x94                        // 'st.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_42= ktpc5Project42\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_42, __HELP_NAME(\"CO--Skeleton grow fast\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_42, __HELP_NAME(\"CO--Skeleton grow fast\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav5Project42\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_46=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_42, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project42\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project42\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_46=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_42, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_46=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x97 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x8B 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x8F 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_46=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x73 0x6B 0x65 0x6C    // 'the skel' \n\t0x65 0x74 0x6F 0x6E 0x2E 0x20 0x20 0x54    // 'eton.  T' \n\t0x68 0x65 0x6E 0x20 0x68 0x6F 0x6C 0x64    // 'hen hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x68    // ' down th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x61    // 'button a' \n\t0x6E 0x64 0x20 0x77 0x61 0x69 0x74 0x20    // 'nd wait ' \n\t0x75 0x6E 0x74 0x69 0x6C 0x20 0x74 0x68    // 'until th' \n\t0x65 0x20 0x73 0x6B 0x65 0x6C 0x65 0x74    // 'e skelet' \n\t0x6F 0x6E 0x20 0x69 0x73 0x20 0x68 0x69    // 'on is hi' \n\t0x73 0x20 0x6F 0x72 0x69 0x67 0x69 0x6E    // 's origin' \n\t0x61 0x6C 0x20 0x73 0x69 0x7A 0x65 0x2E    // 'al size.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x77 0x68 0x61 0x74 0x20 0x79 0x6F    // ' what yo' \n\t0x75 0x92 0x76 0x65 0x20 0x64 0x6F 0x6E    // 'uve don' \n\t0x65 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'e, click' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x6C 0x61    // ' the Pla' \n\t0x79 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'y button' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_43= ktpc5Project43\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_43, __HELP_NAME(\"To see the steps 8\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_43, __HELP_NAME(\"To see the steps 8\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project43\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_33=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_43, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc5Project43\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project43\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_33=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_43, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x68 0x00 0x00 0x00    // '????h???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_33=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x03    // '????1???' \n\t0x0B 0x00 0x00 0xFD 0x34 0x00 0x00 0x03    // '???4???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_33=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x61    // 'ps for a' \n\t0x64 0x64 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'dding an' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x2C    // ' action,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x48 0x6F 0x77 0x20 0x62    // 'he How b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x2E              // 'utton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_44= ktpc5Project44\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"Why--The skeleton's\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"Why--The skeleton's\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav5Project44\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc5Project44\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav5Project44\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x84 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x65 0x20 0x73 0x6B    // '??The sk' \n\t0x65 0x6C 0x65 0x74 0x6F 0x6E 0x92 0x73    // 'eletons' \n\t0x20 0x57 0x61 0x6C 0x6B 0x20 0x61 0x63    // ' Walk ac' \n\t0x74 0x69 0x6F 0x6E 0x20 0x61 0x6E 0x64    // 'tion and' \n\t0x20 0x68 0x69 0x73 0x20 0x65 0x78 0x69    // ' his exi' \n\t0x74 0x20 0x6F 0x66 0x66 0x2D 0x73 0x74    // 't off-st' \n\t0x61 0x67 0x65 0x20 0x61 0x72 0x65 0x20    // 'age are ' \n\t0x61 0x20 0x67 0x6F 0x6F 0x64 0x20 0x77    // 'a good w' \n\t0x61 0x79 0x73 0x20 0x74 0x6F 0x20 0x69    // 'ays to i' \n\t0x6E 0x64 0x69 0x63 0x61 0x74 0x65 0x20    // 'ndicate ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65 0x20    // 'a scene ' \n\t0x63 0x68 0x61 0x6E 0x67 0x65 0x20 0x6F    // 'change o' \n\t0x72 0x2C 0x20 0x69 0x6E 0x20 0x74 0x68    // 'r, in th' \n\t0x69 0x73 0x20 0x63 0x61 0x73 0x65 0x2C    // 'is case,' \n\t0x20 0x74 0x68 0x65 0x20 0x65 0x6E 0x64    // ' the end' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2E              // 'movie.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_45= ktpc5Project45\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"CO--To add the walk action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"CO--To add the walk action\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsActionBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project45\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project45\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project45\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x03    // '????)???' \n\t0x0B 0x00 0x00 0xFD 0x30 0x00 0x00 0x03    // '???0???' \n\t0x0F 0x00 0x00 0xFD 0x31 0x00 0x00 0x03    // '???1???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6B 0x65    // ' the ske' \n\t0x6C 0x65 0x74 0x6F 0x6E 0x92 0x73 0x20    // 'letons ' \n\t0x57 0x61 0x6C 0x6B 0x20 0x61 0x63 0x74    // 'Walk act' \n\t0x69 0x6F 0x6E 0x2C 0x20 0x63 0x6C 0x69    // 'ion, cli' \n\t0x63 0x6B 0x20 0x41 0x63 0x74 0x69 0x6F    // 'ck Actio' \n\t0x6E 0x73 0x2E                             // 'ns.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_46= ktpc5Project46\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"CO--Click walk\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"CO--Click walk\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav5Project46\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project46\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project46\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x53 0x00 0x00 0x00    // '????S???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x93 0x57 0x61 0x6C 0x6B 0x2E 0x94         // 'Walk.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_47= ktpc5Project47\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_47, __HELP_NAME(\"CO--Drag the skeleton\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_47, __HELP_NAME(\"CO--Drag the skeleton\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav5Project47\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_41=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_47, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project47\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project47\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_41=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_47, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc5Project3A __HELP_SYMBOL( STN \"ktpc5Project3A\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_41=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x77 0x00 0x00 0x01    // '????w???' \n\t0x00 0x00 0x00 0x00 0x6B 0x00 0x00 0x03    // '????k???' \n\t0x0B 0x00 0x00 0xFD 0x6F 0x00 0x00 0x03    // '???o???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x04 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x04 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3C 0x00 0x00 0x82    // '????<??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_41=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x20 0x74    // '??Drag t' \n\t0x68 0x65 0x20 0x73 0x6B 0x65 0x6C 0x65    // 'he skele' \n\t0x74 0x6F 0x6E 0x20 0x6C 0x65 0x66 0x74    // 'ton left' \n\t0x2C 0x20 0x6F 0x66 0x66 0x20 0x74 0x68    // ', off th' \n\t0x65 0x20 0x70 0x6C 0x61 0x74 0x66 0x6F    // 'e platfo' \n\t0x72 0x6D 0x2C 0x20 0x61 0x6E 0x64 0x20    // 'rm, and ' \n\t0x6F 0x75 0x74 0x2D 0x6F 0x66 0x2D 0x76    // 'out-of-v' \n\t0x69 0x65 0x77 0x2E 0x0D 0x0A 0x57 0x68    // 'iew.??Wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x92 0x72    // 'en your' \n\t0x65 0x20 0x72 0x65 0x61 0x64 0x79 0x20    // 'e ready ' \n\t0x74 0x6F 0x20 0x70 0x6C 0x61 0x79 0x20    // 'to play ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x76 0x69    // 'the movi' \n\t0x65 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'e, click' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x6C 0x61    // ' the Pla' \n\t0x79 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'y button' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_48= ktpc5Project48\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_48, __HELP_NAME(\"CO--Click until walk\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_48, __HELP_NAME(\"CO--Click until walk\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameRW kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project48\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_48, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project48\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameRW\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project48\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_48, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewind __HELP_SYMBOL( STN \"mbmpRewind\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0xFC 0x00 0x00 0x1A 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA4 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xB2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x75 0x00 0x00 0x82    // '????u??' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x50 0x72 0x65 0x76    // 'the Prev' \n\t0x69 0x6F 0x75 0x73 0x20 0x62 0x75 0x74    // 'ious but' \n\t0x74 0x6F 0x6E 0x2D 0x01 0x20 0x75 0x6E    // 'ton-? un' \n\t0x74 0x69 0x6C 0x20 0x79 0x6F 0x75 0x20    // 'til you ' \n\t0x72 0x65 0x77 0x69 0x6E 0x64 0x20 0x79    // 'rewind y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'e to the' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x77    // ' frame w' \n\t0x68 0x65 0x72 0x65 0x20 0x74 0x68 0x65    // 'here the' \n\t0x20 0x73 0x6B 0x65 0x6C 0x65 0x74 0x6F    // ' skeleto' \n\t0x6E 0x20 0x73 0x74 0x61 0x72 0x74 0x73    // 'n starts' \n\t0x20 0x74 0x6F 0x20 0x77 0x61 0x6C 0x6B    // ' to walk' \n\t0x20 0x62 0x75 0x74 0x20 0x73 0x68 0x72    // ' but shr' \n\t0x69 0x6E 0x6B 0x73 0x2E 0x0D 0x0A 0x57    // 'inks.??W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x92    // 'hen you' \n\t0x72 0x65 0x20 0x72 0x65 0x61 0x64 0x79    // 're ready' \n\t0x20 0x66 0x6F 0x72 0x20 0x74 0x68 0x65    // ' for the' \n\t0x20 0x6E 0x65 0x78 0x74 0x20 0x73 0x74    // ' next st' \n\t0x65 0x70 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ep, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x50 0x72    // 'k the Pr' \n\t0x6F 0x6A 0x65 0x63 0x74 0x20 0x47 0x61    // 'oject Ga' \n\t0x64 0x67 0x65 0x74 0x2E                   // 'dget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_49= ktpc5Project49\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"CO--To add line\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"CO--To add line\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project49\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_26=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc5Project49\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project49\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_26=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x72 0x00 0x00 0x00    // '????r???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_26=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5C 0x00 0x00 0x01    // '????\\???' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x03    // '????Q???' \n\t0x0B 0x00 0x00 0xFD 0x54 0x00 0x00 0x03    // '???T???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_26=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x6D    // 'ps for m' \n\t0x61 0x6B 0x69 0x6E 0x67 0x20 0x74 0x68    // 'aking th' \n\t0x65 0x20 0x73 0x6B 0x65 0x6C 0x65 0x74    // 'e skelet' \n\t0x6F 0x6E 0x20 0x77 0x61 0x6C 0x6B 0x20    // 'on walk ' \n\t0x69 0x6E 0x20 0x68 0x69 0x73 0x20 0x74    // 'in his t' \n\t0x72 0x61 0x6E 0x73 0x66 0x6F 0x72 0x6D    // 'ransform' \n\t0x65 0x64 0x20 0x73 0x69 0x7A 0x65 0x2C    // 'ed size,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x48 0x6F 0x77 0x20 0x62    // 'he How b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x2E              // 'utton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4A= ktpc5Project4A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4A, __HELP_NAME(\"Why--To animate\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4A, __HELP_NAME(\"Why--To animate\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav5Project4A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc5Project4A\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav5Project4A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x03 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xC7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x6E 0x69    // '??To ani' \n\t0x6D 0x61 0x74 0x65 0x20 0x61 0x6E 0x20    // 'mate an ' \n\t0x61 0x63 0x74 0x6F 0x72 0x20 0x69 0x6E    // 'actor in' \n\t0x20 0x68 0x69 0x73 0x20 0x74 0x72 0x61    // ' his tra' \n\t0x6E 0x73 0x66 0x6F 0x72 0x6D 0x65 0x64    // 'nsformed' \n\t0x20 0x73 0x74 0x61 0x74 0x65 0x2C 0x20    // ' state, ' \n\t0x72 0x65 0x77 0x69 0x6E 0x64 0x20 0x74    // 'rewind t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x66 0x69    // 'o the fi' \n\t0x72 0x73 0x74 0x20 0x66 0x72 0x61 0x6D    // 'rst fram' \n\t0x65 0x20 0x6F 0x66 0x20 0x68 0x69 0x73    // 'e of his' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x2E    // ' action.' \n\t0x20 0x20 0x55 0x73 0x65 0x20 0x74 0x68    // '  Use th' \n\t0x65 0x20 0x53 0x69 0x7A 0x65 0x20 0x74    // 'e Size t' \n\t0x6F 0x6F 0x6C 0x73 0x20 0x74 0x6F 0x20    // 'ools to ' \n\t0x67 0x72 0x6F 0x77 0x2C 0x20 0x72 0x65    // 'grow, re' \n\t0x64 0x75 0x63 0x65 0x2C 0x20 0x73 0x71    // 'duce, sq' \n\t0x75 0x61 0x73 0x68 0x20 0x6F 0x72 0x20    // 'uash or ' \n\t0x73 0x74 0x72 0x65 0x74 0x63 0x68 0x20    // 'stretch ' \n\t0x68 0x69 0x6D 0x20 0x74 0x6F 0x20 0x68    // 'him to h' \n\t0x69 0x73 0x20 0x74 0x72 0x61 0x6E 0x73    // 'is trans' \n\t0x66 0x6F 0x72 0x6D 0x65 0x64 0x20 0x73    // 'formed s' \n\t0x69 0x7A 0x65 0x2E 0x20 0x20 0x54 0x68    // 'ize.  Th' \n\t0x65 0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'en click' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x6C 0x61    // ' the Pla' \n\t0x79 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'y button' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4B= ktpc5Project4B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4B, __HELP_NAME(\"CO--To make the skeleton\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4B, __HELP_NAME(\"CO--To make the skeleton\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidActorsTransform kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project4B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_48=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc5Project4B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsTransform\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project4B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_48=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x82 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_48=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_48, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x03    // '????!???' \n\t0x0B 0x00 0x00 0xFD 0x2B 0x00 0x00 0x03    // '???+???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x03    // '????,???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_48=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_48, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x6D 0x61 0x6B    // '??To mak' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x73 0x6B    // 'e the sk' \n\t0x65 0x6C 0x65 0x74 0x6F 0x6E 0x20 0x74    // 'eleton t' \n\t0x61 0x6C 0x6C 0x2C 0x20 0x63 0x6C 0x69    // 'all, cli' \n\t0x63 0x6B 0x20 0x53 0x69 0x7A 0x65 0x20    // 'ck Size ' \n\t0x54 0x6F 0x6F 0x6C 0x73 0x2E              // 'Tools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4C= ktpc5Project4C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4C, __HELP_NAME(\"CO--Click Size Evenly\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4C, __HELP_NAME(\"CO--Click Size Evenly\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon4 kgobProject kidActorsShrink kidPlayProjectSounds 0x0 0xFFFFFFEC 0x57415645 kwav5Project4C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_44=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon4\"\n\tITEM\n\t\t\"ktpc5Project4C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidActorsShrink\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project4C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_44=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x69 0x00 0x00 0x00    // '????i???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_44=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_44, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_44=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_44, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x53 0x69 0x7A 0x65 0x20 0x45 0x76 0x65    // 'Size Eve' \n\t0x6E 0x6C 0x79 0x2E                        // 'nly.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4D= ktpc5Project4D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4D, __HELP_NAME(\"CO--Move the mouse\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4D, __HELP_NAME(\"CO--Move the mouse\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav5Project4D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project4D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project4D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x97 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0x9C 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xA2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x64 0x00 0x00 0x82    // '????d??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x6F 0x76 0x65 0x20 0x74    // '??Move t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x63 0x75 0x72 0x73 0x6F 0x72 0x20    // ' cursor ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x73 0x6B 0x65 0x6C 0x65 0x74 0x6F    // ' skeleto' \n\t0x6E 0x20 0x61 0x6E 0x64 0x20 0x64 0x72    // 'n and dr' \n\t0x61 0x67 0x20 0x6F 0x75 0x74 0x20 0x74    // 'ag out t' \n\t0x6F 0x20 0x65 0x6E 0x6C 0x61 0x72 0x67    // 'o enlarg' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x73 0x6B    // 'e the sk' \n\t0x65 0x6C 0x65 0x74 0x6F 0x6E 0x20 0x74    // 'eleton t' \n\t0x6F 0x20 0x68 0x69 0x73 0x20 0x6F 0x72    // 'o his or' \n\t0x69 0x67 0x69 0x6E 0x61 0x6C 0x20 0x73    // 'iginal s' \n\t0x69 0x7A 0x65 0x2E 0x0D 0x0A 0x57 0x68    // 'ize.??Wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x27 0x72    // 'en you'r' \n\t0x65 0x20 0x72 0x65 0x61 0x64 0x79 0x20    // 'e ready ' \n\t0x74 0x6F 0x20 0x73 0x65 0x65 0x20 0x74    // 'to see t' \n\t0x68 0x65 0x20 0x6E 0x65 0x77 0x20 0x65    // 'he new e' \n\t0x6E 0x64 0x69 0x6E 0x67 0x2C 0x20 0x63    // 'nding, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x50 0x6C 0x61 0x79 0x20 0x62 0x75    // ' Play bu' \n\t0x74 0x74 0x6F 0x6E 0x2E                   // 'tton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4E= ktpc5Project4E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4E, __HELP_NAME(\"CO--To see the new ending\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4E, __HELP_NAME(\"CO--To see the new ending\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project4E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project4E\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project4E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x7A 0x00 0x00 0x01    // '????z???' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x03    // '????.???' \n\t0x0B 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00 0x6B 0x00 0x00 0x03    // '????k???' \n\t0x0B 0x00 0x00 0xFD 0x79 0x00 0x00 0x03    // '???y???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3C 0x00 0x00 0x82    // '????<??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4B, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x6E 0x65 0x77    // ' the new' \n\t0x20 0x65 0x6E 0x64 0x69 0x6E 0x67 0x20    // ' ending ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x6D    // 'to the m' \n\t0x6F 0x76 0x69 0x65 0x2C 0x20 0x63 0x6C    // 'ovie, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x50 0x6C 0x61 0x79 0x20 0x62 0x75 0x74    // 'Play but' \n\t0x74 0x6F 0x6E 0x2E 0x0D 0x0A 0x57 0x68    // 'ton.??Wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x92 0x72    // 'en your' \n\t0x65 0x20 0x72 0x65 0x61 0x64 0x79 0x20    // 'e ready ' \n\t0x66 0x6F 0x72 0x20 0x74 0x68 0x65 0x20    // 'for the ' \n\t0x6E 0x65 0x78 0x74 0x20 0x73 0x74 0x65    // 'next ste' \n\t0x70 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'p, click' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x72 0x6F    // ' the Pro' \n\t0x6A 0x65 0x63 0x74 0x20 0x47 0x61 0x64    // 'ject Gad' \n\t0x67 0x65 0x74 0x2E                        // 'get.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4F= ktpc5Project4F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4F, __HELP_NAME(\"CO--To play entire\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4F, __HELP_NAME(\"CO--To play entire\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav5Project4F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project4F\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project4F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0x01    // '????p???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x03    // '????$???' \n\t0x0B 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x00 0x00 0x00 0x00 0x61 0x00 0x00 0x03    // '????a???' \n\t0x0B 0x00 0x00 0xFD 0x6F 0x00 0x00 0x03    // '???o???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x32 0x00 0x00 0x82    // '????2??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x6C 0x61    // '??To pla' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x65 0x6E    // 'y the en' \n\t0x74 0x69 0x72 0x65 0x20 0x6D 0x6F 0x76    // 'tire mov' \n\t0x69 0x65 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ie, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x50 0x6C    // 'k the Pl' \n\t0x61 0x79 0x20 0x62 0x75 0x74 0x74 0x6F    // 'ay butto' \n\t0x6E 0x2E 0x0D 0x0A 0x57 0x68 0x65 0x6E    // 'n.??When' \n\t0x20 0x79 0x6F 0x75 0x27 0x72 0x65 0x20    // ' you're ' \n\t0x72 0x65 0x61 0x64 0x79 0x20 0x66 0x6F    // 'ready fo' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'r the ne' \n\t0x78 0x74 0x20 0x73 0x74 0x65 0x70 0x2C    // 'xt step,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x50 0x72 0x6F 0x6A 0x65    // 'he Proje' \n\t0x63 0x74 0x20 0x47 0x61 0x64 0x67 0x65    // 'ct Gadge' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_50= ktpc5Project50\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_50, __HELP_NAME(\"Congratulations\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_50, __HELP_NAME(\"Congratulations\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 kidPlayProjectSounds 0x258 0x1C2 0x57415645 kwav5Project50\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_50, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc5Project50\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project50\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_50, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9D 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x04 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA6 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x40    // '????U??@' \n\t0x02 0x00 0x00 0x00 0x6D 0x00 0x00 0x40    // '????m??@' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x40    // '????o??@' \n\t0x03 0x00 0x00 0x00 0x8E 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xA6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x80    // '????@??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x90 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0xC0    // '????@??' \n\t0x05 0x00 0x00 0x00 0x55 0x00 0x00 0xC0    // '????U??' \n\t0x05 0x00 0x00 0x00 0x6F 0x00 0x00 0xC0    // '????o??' \n\t0x05 0x00 0x00 0x00 0x90 0x00 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x6E 0x67 0x72 0x61    // '??Congra' \n\t0x74 0x75 0x6C 0x61 0x74 0x69 0x6F 0x6E    // 'tulation' \n\t0x73 0x21 0x20 0x20 0x59 0x6F 0x75 0x27    // 's!  You'' \n\t0x72 0x65 0x20 0x64 0x6F 0x6E 0x65 0x21    // 're done!' \n\t0x20 0x20 0x57 0x68 0x61 0x74 0x20 0x77    // '  What w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x79 0x6F 0x75    // 'ould you' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x74 0x6F    // ' like to' \n\t0x20 0x64 0x6F 0x20 0x6E 0x6F 0x77 0x3F    // ' do now?' \n\t0x0D 0x0A 0x01 0x09 0x57 0x6F 0x72 0x6B    // '????Work' \n\t0x20 0x6F 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' on your' \n\t0x20 0x6F 0x77 0x6E 0x3F 0x0D 0x0A 0x01    // ' own????' \n\t0x09 0x53 0x74 0x61 0x72 0x74 0x20 0x61    // '?Start a' \n\t0x6E 0x6F 0x74 0x68 0x65 0x72 0x20 0x70    // 'nother p' \n\t0x72 0x6F 0x6A 0x65 0x63 0x74 0x3F 0x0D    // 'roject??' \n\t0x0A 0x01 0x09 0x47 0x6F 0x20 0x62 0x61    // '???Go ba' \n\t0x63 0x6B 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ck to th' \n\t0x65 0x20 0x50 0x72 0x6F 0x6A 0x65 0x63    // 'e Projec' \n\t0x74 0x73 0x20 0x52 0x6F 0x6F 0x6D 0x3F    // 'ts Room?' \n\t0x0D 0x0A 0x01 0x09 0x51 0x75 0x69 0x74    // '????Quit' \n\t0x20 0x33 0x44 0x20 0x4D 0x6F 0x76 0x69    // ' 3D Movi' \n\t0x65 0x20 0x4D 0x61 0x6B 0x65 0x72 0x3F    // 'e Maker?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_51= ktpc5Project51\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"CO - Click Skeleton in workspace\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"CO - Click Skeleton in workspace\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav5Project51\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc5Project51\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav5Project51\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6C 0x00 0x00 0x00    // '????l???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x73 0x6B 0x65 0x6C    // 'the skel' \n\t0x65 0x74 0x6F 0x6E 0x2E                   // 'eton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/project6.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpc6Project00\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"To see this movie, click \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"To see this movie, click \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobProject kidGadgetPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpc6Project00\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x82 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x03    // '????%???' \n\t0x0B 0x00 0x00 0xFD 0x29 0x00 0x00 0x03    // '???)???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x2E 0x2E 0x2E    // '??Cut...' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x69 0x73 0x20 0x6D 0x6F    // ' this mo' \n\t0x76 0x69 0x65 0x2C 0x20 0x63 0x6C 0x69    // 'vie, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x50    // 'ck the P' \n\t0x6C 0x61 0x79 0x20 0x62 0x75 0x74 0x74    // 'lay butt' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpc6Project01\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"To see this movie 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"To see this movie 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon1 kgobProject kidGadgetPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_29=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon1\"\n\tITEM\n\t\t\"ktpc6Project01\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_29=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x78 0x00 0x00 0x00    // '????x???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc6Project03 __HELP_SYMBOL( STN \"ktpc6Project03\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_29=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x50 0x00 0x00 0x01    // '????P???' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0x01    // '????R???' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x01    // '????b???' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x03    // '????B???' \n\t0x0B 0x00 0x00 0xFD 0x46 0x00 0x00 0x03    // '???F???' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x40    // '????P??@' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x40    // '????b??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x50 0x00 0x00 0x82    // '????P??' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0xC0    // '????P??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_29=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x61 0x79    // ' the way' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x69 0x73 0x20 0x73 0x75    // 'ie is su' \n\t0x70 0x70 0x6F 0x73 0x65 0x64 0x20 0x74    // 'pposed t' \n\t0x6F 0x20 0x6C 0x6F 0x6F 0x6B 0x20 0x61    // 'o look a' \n\t0x6E 0x64 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'nd sound' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x50 0x6C 0x61 0x79    // 'the Play' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E    // ' button.' \n\t0x0D 0x0A 0x01 0x20 0x41 0x6E 0x6F 0x74    // '??? Anot' \n\t0x68 0x65 0x72 0x20 0x70 0x72 0x6F 0x6A    // 'her proj' \n\t0x65 0x63 0x74 0x3F                        // 'ect?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpc6Project02\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"To see the steps\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"To see the steps\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc6Project02\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6E 0x00 0x00 0x00    // '????n???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x01    // '????=???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x03    // '????2???' \n\t0x0B 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x40    // '????=??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x6D    // 'ps for m' \n\t0x61 0x6B 0x69 0x6E 0x67 0x20 0x74 0x68    // 'aking th' \n\t0x69 0x73 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'is movie' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x48 0x6F 0x77 0x20    // 'the How ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E         // 'button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpc6Project03\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Tip:  Another movie\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Tip:  Another movie\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav6Project03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc6Project03\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav6Project03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x01 0x00 0x00 0x00 0x6F 0x00 0x00 0x01    // '????o???' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x03    // '????4???' \n\t0x0F 0x00 0x00 0xFD 0x6F 0x00 0x00 0x03    // '???o???' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x80    // '????4??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x34 0x00 0x00 0x82    // '????4??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x41 0x6E 0x6F    // '???  Ano' \n\t0x74 0x68 0x65 0x72 0x20 0x70 0x72 0x6F    // 'ther pro' \n\t0x6A 0x65 0x63 0x74 0x3F 0x0D 0x0A 0x54    // 'ject???T' \n\t0x6F 0x20 0x63 0x68 0x6F 0x6F 0x73 0x65    // 'o choose' \n\t0x20 0x61 0x20 0x64 0x69 0x66 0x66 0x65    // ' a diffe' \n\t0x72 0x65 0x6E 0x74 0x20 0x70 0x72 0x6F    // 'rent pro' \n\t0x6A 0x65 0x63 0x74 0x0D 0x0A 0x95 0x09    // 'ject???' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x61 0x72 0x72 0x6F 0x77 0x73    // 'e arrows' \n\t0x20 0x6F 0x6E 0x20 0x74 0x68 0x65 0x20    // ' on the ' \n\t0x72 0x69 0x67 0x68 0x74 0x20 0x73 0x69    // 'right si' \n\t0x64 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 'de of th' \n\t0x65 0x20 0x50 0x72 0x6F 0x6A 0x65 0x63    // 'e Projec' \n\t0x74 0x20 0x47 0x61 0x64 0x67 0x65 0x74    // 't Gadget' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpc6Project04\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Why--I chose this combo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Why--I chose this combo\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav6Project04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc6Project04\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav6Project04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x07 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xCF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0xCF 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x20 0x63 0x68 0x6F 0x73    // '??I chos' \n\t0x65 0x20 0x74 0x68 0x69 0x73 0x20 0x63    // 'e this c' \n\t0x6F 0x6D 0x62 0x69 0x6E 0x61 0x74 0x69    // 'ombinati' \n\t0x6F 0x6E 0x20 0x6F 0x66 0x20 0x6D 0x75    // 'on of mu' \n\t0x73 0x69 0x63 0x20 0x62 0x65 0x63 0x61    // 'sic beca' \n\t0x75 0x73 0x65 0x20 0x69 0x74 0x20 0x62    // 'use it b' \n\t0x75 0x69 0x6C 0x64 0x73 0x20 0x73 0x75    // 'uilds su' \n\t0x73 0x70 0x65 0x6E 0x73 0x65 0x20 0x73    // 'spense s' \n\t0x6C 0x6F 0x77 0x6C 0x79 0x2E 0x20 0x20    // 'lowly.  ' \n\t0x41 0x66 0x74 0x65 0x72 0x20 0x79 0x6F    // 'After yo' \n\t0x75 0x20 0x66 0x69 0x6E 0x69 0x73 0x68    // 'u finish' \n\t0x20 0x74 0x68 0x69 0x73 0x20 0x70 0x72    // ' this pr' \n\t0x6F 0x6A 0x65 0x63 0x74 0x2C 0x20 0x72    // 'oject, r' \n\t0x65 0x6D 0x6F 0x76 0x65 0x20 0x74 0x68    // 'emove th' \n\t0x69 0x73 0x20 0x6D 0x75 0x73 0x69 0x63    // 'is music' \n\t0x20 0x61 0x6E 0x64 0x20 0x74 0x72 0x79    // ' and try' \n\t0x20 0x6F 0x74 0x68 0x65 0x72 0x20 0x63    // ' other c' \n\t0x6F 0x6D 0x62 0x69 0x6E 0x61 0x74 0x69    // 'ombinati' \n\t0x6F 0x6E 0x73 0x2E 0x20 0x20 0x44 0x69    // 'ons.  Di' \n\t0x73 0x63 0x6F 0x76 0x65 0x72 0x20 0x68    // 'scover h' \n\t0x6F 0x77 0x20 0x64 0x69 0x66 0x66 0x65    // 'ow diffe' \n\t0x72 0x65 0x6E 0x74 0x20 0x6D 0x75 0x73    // 'rent mus' \n\t0x69 0x63 0x20 0x63 0x68 0x61 0x6E 0x67    // 'ic chang' \n\t0x65 0x73 0x20 0x74 0x68 0x65 0x20 0x6D    // 'es the m' \n\t0x6F 0x6F 0x64 0x20 0x6F 0x66 0x20 0x74    // 'ood of t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'he movie' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpc6Project05\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"I created\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"I created\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon0 kgobProject 0x0 kidPlayProjectSounds 0x140 0xF0 0x57415645 kwav6Project05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_22=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon0\"\n\tITEM\n\t\t\"ktpc6Project05\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_22=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobOkButton 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobOkButton\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_22=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x01 0x00 0x01    // '????-???' \n\t0x00 0x00 0x00 0x00 0x2F 0x01 0x00 0x40    // '????/??@' \n\t0x02 0x00 0x00 0x00 0x30 0x01 0x00 0x40    // '????0??@' \n\t0x00 0x00 0x00 0x00 0x2F 0x01 0x00 0x80    // '????/??' \n\t0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2F 0x01 0x00 0x82    // '????/??' \n\t0x00 0x00 0x00 0x00 0x2F 0x01 0x00 0xC0    // '????/??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_22=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x20 0x63 0x72 0x65 0x61    // '??I crea' \n\t0x74 0x65 0x64 0x20 0x74 0x68 0x65 0x20    // 'ted the ' \n\t0x66 0x69 0x72 0x73 0x74 0x20 0x70 0x61    // 'first pa' \n\t0x72 0x74 0x20 0x6F 0x66 0x20 0x74 0x68    // 'rt of th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'e movie ' \n\t0x66 0x6F 0x72 0x20 0x79 0x6F 0x75 0x2E    // 'for you.' \n\t0x20 0x20 0x42 0x65 0x6E 0x65 0x64 0x69    // '  Benedi' \n\t0x63 0x74 0x2C 0x20 0x74 0x68 0x65 0x20    // 'ct, the ' \n\t0x6D 0x75 0x6D 0x6D 0x79 0x2C 0x20 0x68    // 'mummy, h' \n\t0x61 0x73 0x20 0x72 0x65 0x74 0x75 0x72    // 'as retur' \n\t0x6E 0x65 0x64 0x20 0x66 0x72 0x6F 0x6D    // 'ned from' \n\t0x20 0x61 0x20 0x6A 0x6F 0x67 0x20 0x74    // ' a jog t' \n\t0x6F 0x20 0x66 0x69 0x6E 0x64 0x20 0x6F    // 'o find o' \n\t0x75 0x74 0x20 0x68 0x65 0x20 0x69 0x73    // 'ut he is' \n\t0x20 0x62 0x65 0x69 0x6E 0x67 0x20 0x73    // ' being s' \n\t0x6F 0x6C 0x64 0x20 0x74 0x6F 0x20 0x61    // 'old to a' \n\t0x20 0x6D 0x75 0x73 0x65 0x75 0x6D 0x2E    // ' museum.' \n\t0x20 0x20 0x48 0x65 0x20 0x6D 0x75 0x73    // '  He mus' \n\t0x74 0x20 0x67 0x65 0x74 0x20 0x69 0x6E    // 't get in' \n\t0x74 0x6F 0x20 0x68 0x69 0x73 0x20 0x63    // 'to his c' \n\t0x6F 0x66 0x66 0x69 0x6E 0x20 0x62 0x65    // 'offin be' \n\t0x66 0x6F 0x72 0x65 0x20 0x74 0x68 0x65    // 'fore the' \n\t0x79 0x20 0x66 0x69 0x6E 0x64 0x20 0x6F    // 'y find o' \n\t0x75 0x74 0x20 0x68 0x65 0x20 0x69 0x73    // 'ut he is' \n\t0x20 0x67 0x6F 0x6E 0x65 0x2E 0x0D 0x0A    // ' gone.??' \n\t0x4E 0x6F 0x77 0x20 0x69 0x74 0x92 0x73    // 'Now its' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x74 0x75    // ' your tu' \n\t0x72 0x6E 0x20 0x74 0x6F 0x20 0x61 0x64    // 'rn to ad' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x66 0x69    // 'd the fi' \n\t0x6E 0x69 0x73 0x68 0x69 0x6E 0x67 0x20    // 'nishing ' \n\t0x74 0x6F 0x75 0x63 0x68 0x65 0x73 0x20    // 'touches ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x6D    // 'to the m' \n\t0x75 0x73 0x69 0x63 0x20 0x61 0x6E 0x64    // 'usic and' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x73 0x20    // ' sounds ' \n\t0x74 0x6F 0x20 0x63 0x72 0x65 0x61 0x74    // 'to creat' \n\t0x65 0x20 0x74 0x65 0x6E 0x73 0x69 0x6F    // 'e tensio' \n\t0x6E 0x20 0x61 0x6E 0x64 0x20 0x73 0x75    // 'n and su' \n\t0x73 0x70 0x65 0x6E 0x73 0x65 0x2E 0x0D    // 'spense.?' \n\t0x0A 0x01                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpc6Project06\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--Before we begin\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"CO--Before we begin\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project06\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc6Project2E __HELP_SYMBOL( STN \"ktpc6Project2E\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6C 0x00 0x00 0x01    // '????l???' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x1F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x5A 0x00 0x00 0x40    // '????Z??@' \n\t0x02 0x00 0x00 0x00 0x6C 0x00 0x00 0x40    // '????l??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5A 0x00 0x00 0x82    // '????Z??' \n\t0x00 0x00 0x00 0x00 0x5A 0x00 0x00 0xC0    // '????Z??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x65 0x66 0x6F 0x72 0x65    // '??Before' \n\t0x20 0x77 0x65 0x20 0x62 0x65 0x67 0x69    // ' we begi' \n\t0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'n, click' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x6C 0x61    // ' the Pla' \n\t0x79 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'y button' \n\t0x20 0x74 0x6F 0x20 0x68 0x65 0x61 0x72    // ' to hear' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x75 0x73    // ' the mus' \n\t0x69 0x63 0x20 0x61 0x6E 0x64 0x20 0x73    // 'ic and s' \n\t0x6F 0x75 0x6E 0x64 0x73 0x20 0x69 0x6E    // 'ounds in' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x73 0x6F 0x20 0x66 0x61    // 'ie so fa' \n\t0x72 0x2E 0x0D 0x0A 0x01 0x20 0x20 0x53    // 'r.???  S' \n\t0x6F 0x75 0x6E 0x64 0x20 0x49 0x6E 0x64    // 'ound Ind' \n\t0x69 0x63 0x61 0x74 0x6F 0x72              // 'icator' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpc6Project07\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO--Click the button below\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"CO--Click the button below\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameRWEnd kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project07\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameRWEnd\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewindEnd __HELP_SYMBOL( STN \"mbmpRewindEnd\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0xFB 0x00 0x00 0x17 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x01    // '????9???' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x46 0x69 0x72 0x73    // 'the Firs' \n\t0x74 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 't button' \n\t0x2D 0x01 0x20 0x74 0x6F 0x20 0x72 0x65    // '-? to re' \n\t0x77 0x69 0x6E 0x64 0x20 0x79 0x6F 0x75    // 'wind you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'r movie ' \n\t0x74 0x6F 0x20 0x66 0x72 0x61 0x6D 0x65    // 'to frame' \n\t0x20 0x31 0x2E                             // ' 1.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= ktpc6Project08\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"CO--To find the \")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"CO--To find the \")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSoundsMusicBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_30=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc6Project08\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSoundsMusicBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_30=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x84 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_30=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x03    // '????2???' \n\t0x0B 0x00 0x00 0xFD 0x37 0x00 0x00 0x03    // '???7???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x40    // '????8??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_30=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x61 0x6E 0x6F 0x74 0x68 0x65 0x72    // ' another' \n\t0x20 0x70 0x69 0x65 0x63 0x65 0x20 0x6F    // ' piece o' \n\t0x66 0x20 0x6D 0x75 0x73 0x69 0x63 0x20    // 'f music ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x63    // 'to the c' \n\t0x68 0x61 0x69 0x6E 0x2C 0x20 0x63 0x6C    // 'hain, cl' \n\t0x69 0x63 0x6B 0x20 0x4D 0x75 0x73 0x69    // 'ick Musi' \n\t0x63 0x2E                                  // 'c.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= ktpc6Project09\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO--Click Run Away 1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"CO--Click Run Away 1\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav6Project09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_27=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project09\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_27=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x83 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_27=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_27=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x22 0x72 0x75 0x6E 0x20 0x61 0x77 0x61    // '\"run awa' \n\t0x79 0x20 0x31 0x2E 0x22 0x20 0x20 0x54    // 'y 1.\"  T' \n\t0x68 0x65 0x6E 0x20 0x63 0x6C 0x69 0x63    // 'hen clic' \n\t0x6B 0x20 0x4F 0x4B 0x2E                   // 'k OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= ktpc6Project0A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO--Click OK\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"CO--Click OK\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidBrowserOk kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project0A\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidBrowserOk\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x3E 0x00 0x00 0x00    // '????>???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x2E 0x2E 0x2E    // '??Cut...' \n\t0x0D 0x0A 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x4F 0x4B 0x2E                             // 'OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= ktpc6Project0B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO--To attach\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"CO--To attach\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav6Project0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project0B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc6Project0C __HELP_SYMBOL( STN \"ktpc6Project0C\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0x01    // '????p???' \n\t0x00 0x00 0x00 0x00 0x61 0x00 0x00 0x40    // '????a??@' \n\t0x03 0x00 0x00 0x00 0x70 0x00 0x00 0x40    // '????p??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x61 0x00 0x00 0x82    // '????a??' \n\t0x00 0x00 0x00 0x00 0x61 0x00 0x00 0xC0    // '????a??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x61 0x74 0x74    // '??To att' \n\t0x61 0x63 0x68 0x20 0x74 0x68 0x69 0x73    // 'ach this' \n\t0x20 0x70 0x69 0x65 0x63 0x65 0x20 0x74    // ' piece t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x65 0x6E    // 'o the en' \n\t0x64 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'd of the' \n\t0x20 0x6D 0x75 0x73 0x69 0x63 0x20 0x73    // ' music s' \n\t0x65 0x71 0x75 0x65 0x6E 0x63 0x65 0x2C    // 'equence,' \n\t0x20 0x68 0x6F 0x6C 0x64 0x20 0x64 0x6F    // ' hold do' \n\t0x77 0x6E 0x20 0x43 0x74 0x72 0x6C 0x20    // 'wn Ctrl ' \n\t0x61 0x6E 0x64 0x20 0x63 0x6C 0x69 0x63    // 'and clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x62 0x61    // 'k the ba' \n\t0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'ckground' \n\t0x2E 0x0D 0x0A 0x01 0x43 0x68 0x61 0x69    // '.???Chai' \n\t0x6E 0x69 0x6E 0x67 0x20 0x4D 0x75 0x73    // 'ning Mus' \n\t0x69 0x63                                  // 'ic' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= ktpc6Project0C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"Why--chaining\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"Why--chaining\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav6Project0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc6Project0C\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav6Project0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x01 0x00 0x01    // '????+???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x68 0x61    // '???  Cha' \n\t0x69 0x6E 0x69 0x6E 0x67 0x20 0x6D 0x75    // 'ining mu' \n\t0x73 0x69 0x63 0x0D 0x0A 0x57 0x68 0x65    // 'sic??Whe' \n\t0x6E 0x20 0x79 0x6F 0x75 0x20 0x68 0x6F    // 'n you ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x74 0x68 0x65 0x20 0x43 0x74 0x72 0x6C    // 'the Ctrl' \n\t0x20 0x6B 0x65 0x79 0x2C 0x20 0x79 0x6F    // ' key, yo' \n\t0x75 0x20 0x61 0x72 0x65 0x20 0x63 0x68    // 'u are ch' \n\t0x61 0x69 0x6E 0x69 0x6E 0x67 0x20 0x6F    // 'aining o' \n\t0x6E 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'ne sound' \n\t0x20 0x74 0x6F 0x20 0x61 0x6E 0x6F 0x74    // ' to anot' \n\t0x68 0x65 0x72 0x2E 0x20 0x20 0x54 0x68    // 'her.  Th' \n\t0x65 0x20 0x6E 0x65 0x77 0x20 0x73 0x6F    // 'e new so' \n\t0x75 0x6E 0x64 0x20 0x70 0x6C 0x61 0x79    // 'und play' \n\t0x73 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 's at the' \n\t0x20 0x65 0x6E 0x64 0x20 0x6F 0x66 0x20    // ' end of ' \n\t0x74 0x68 0x65 0x20 0x63 0x68 0x61 0x69    // 'the chai' \n\t0x6E 0x2D 0x2D 0x79 0x6F 0x75 0x20 0x63    // 'n--you c' \n\t0x61 0x6E 0x27 0x74 0x20 0x69 0x6E 0x73    // 'an't ins' \n\t0x65 0x72 0x74 0x20 0x61 0x20 0x73 0x6F    // 'ert a so' \n\t0x75 0x6E 0x64 0x20 0x69 0x6E 0x20 0x74    // 'und in t' \n\t0x68 0x65 0x20 0x6D 0x69 0x64 0x64 0x6C    // 'he middl' \n\t0x65 0x2E 0x0D 0x0A 0x57 0x68 0x65 0x6E    // 'e.??When' \n\t0x20 0x79 0x6F 0x75 0x20 0x63 0x68 0x61    // ' you cha' \n\t0x69 0x6E 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'in sound' \n\t0x73 0x20 0x74 0x6F 0x67 0x65 0x74 0x68    // 's togeth' \n\t0x65 0x72 0x2C 0x20 0x79 0x6F 0x75 0x20    // 'er, you ' \n\t0x68 0x61 0x76 0x65 0x20 0x74 0x6F 0x20    // 'have to ' \n\t0x64 0x6F 0x20 0x69 0x74 0x20 0x61 0x74    // 'do it at' \n\t0x20 0x74 0x68 0x65 0x20 0x66 0x72 0x61    // ' the fra' \n\t0x6D 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'me where' \n\t0x20 0x74 0x68 0x65 0x20 0x66 0x69 0x72    // ' the fir' \n\t0x73 0x74 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'st sound' \n\t0x20 0x77 0x61 0x73 0x20 0x61 0x74 0x74    // ' was att' \n\t0x61 0x63 0x68 0x65 0x64 0x20 0x28 0x69    // 'ached (i' \n\t0x6E 0x20 0x74 0x68 0x69 0x73 0x20 0x63    // 'n this c' \n\t0x61 0x73 0x65 0x20 0x66 0x72 0x61 0x6D    // 'ase fram' \n\t0x65 0x20 0x31 0x29 0x2E                   // 'e 1).' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= ktpc6Project0D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO--To find the next piece\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"CO--To find the next piece\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSoundsMusicBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project0D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_26=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc6Project0D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSoundsMusicBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project0D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_26=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_26=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_26=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x66 0x69 0x6E    // '??To fin' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'd the ne' \n\t0x78 0x74 0x20 0x70 0x69 0x65 0x63 0x65    // 'xt piece' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x4D 0x75 0x73 0x69 0x63 0x2E              // 'Music.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= ktpc6Project0E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO--Click \\\"Run Away 2\\\"\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"CO--Click \\\"Run Away 2\\\"\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav6Project0E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project0E\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project0E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x77 0x00 0x00 0x00    // '????w???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x22 0x72 0x75 0x6E 0x20 0x61 0x77 0x61    // '\"run awa' \n\t0x79 0x20 0x32 0x2E 0x22 0x20 0x20 0x54    // 'y 2.\"  T' \n\t0x68 0x65 0x6E 0x20 0x63 0x6C 0x69 0x63    // 'hen clic' \n\t0x6B 0x20 0x4F 0x4B 0x2E                   // 'k OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= ktpc6Project0F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO--Hold down Ctrl\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"CO--Hold down Ctrl\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav6Project0F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project0F\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project0F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x81 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x04    // '????(???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x6F 0x6C 0x64 0x20 0x64    // '??Hold d' \n\t0x6F 0x77 0x6E 0x20 0x43 0x74 0x72 0x6C    // 'own Ctrl' \n\t0x20 0x61 0x6E 0x64 0x20 0x63 0x6C 0x69    // ' and cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x62    // 'ck the b' \n\t0x61 0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E    // 'ackgroun' \n\t0x64 0x2E                                  // 'd.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= ktpc6Project10\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO--Click \\\"Attack\\\"\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"CO--Click \\\"Attack\\\"\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav6Project10\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_28=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project10\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project10\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_28=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x5D 0x00 0x00 0x00    // '????]???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_28=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_28=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x22 0x61 0x74 0x74 0x61 0x63 0x6B 0x2E    // '\"attack.' \n\t0x22 0x20 0x20 0x54 0x68 0x65 0x6E 0x20    // '\"  Then ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x4F 0x4B    // 'click OK' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= ktpc6Project11\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO--To find last\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"CO--To find last\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSoundsMusicBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project11\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc6Project11\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSoundsMusicBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project11\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6C 0x00 0x00 0x00    // '????l???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x04    // '????$???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x66 0x69 0x6E    // '??To fin' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x6C 0x61    // 'd the la' \n\t0x73 0x74 0x20 0x70 0x69 0x65 0x63 0x65    // 'st piece' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x4D 0x75 0x73 0x69 0x63 0x2E              // 'Music.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= ktpc6Project12\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"CO--Click Monster\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"CO--Click Monster\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav6Project12\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project12\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project12\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x65 0x00 0x00 0x00    // '????e???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x22 0x6D 0x6F 0x6E 0x73 0x74 0x65 0x72    // '\"monster' \n\t0x2E 0x22 0x20 0x20 0x54 0x68 0x65 0x6E    // '.\"  Then' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x4F    // ' click O' \n\t0x4B 0x2E                                  // 'K.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= ktpc6Project13\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO--To play\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"CO--To play\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project13\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project13\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project13\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x97 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x03    // '????$???' \n\t0x0B 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x6C 0x61    // '??To pla' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'y the mo' \n\t0x76 0x69 0x65 0x20 0x73 0x6F 0x20 0x66    // 'vie so f' \n\t0x61 0x72 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ar, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x50 0x6C    // 'k the Pl' \n\t0x61 0x79 0x20 0x62 0x75 0x74 0x74 0x6F    // 'ay butto' \n\t0x6E 0x2E                                  // 'n.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= ktpc6Project14\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"CO--Click until Gustave\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"CO--Click until Gustave\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameRW kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project14\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project14\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameRW\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project14\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewind __HELP_SYMBOL( STN \"mbmpRewind\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0xFC 0x00 0x00 0x1A 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA9 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xB7 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7A 0x00 0x00 0x82    // '????z??' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x50 0x72 0x65 0x76    // 'the Prev' \n\t0x69 0x6F 0x75 0x73 0x20 0x62 0x75 0x74    // 'ious but' \n\t0x74 0x6F 0x6E 0x2D 0x01 0x20 0x75 0x6E    // 'ton-? un' \n\t0x74 0x69 0x6C 0x20 0x79 0x6F 0x75 0x20    // 'til you ' \n\t0x72 0x65 0x77 0x69 0x6E 0x64 0x20 0x79    // 'rewind y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'e to the' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x77    // ' frame w' \n\t0x68 0x65 0x72 0x65 0x20 0x47 0x75 0x73    // 'here Gus' \n\t0x74 0x61 0x76 0x65 0x20 0x68 0x61 0x73    // 'tave has' \n\t0x20 0x6A 0x75 0x73 0x74 0x20 0x63 0x6F    // ' just co' \n\t0x6D 0x65 0x20 0x6F 0x75 0x74 0x20 0x6F    // 'me out o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x64 0x69    // 'f the di' \n\t0x6E 0x69 0x6E 0x67 0x20 0x72 0x6F 0x6F    // 'ning roo' \n\t0x6D 0x2E 0x0D 0x0A 0x57 0x68 0x65 0x6E    // 'm.??When' \n\t0x20 0x79 0x6F 0x75 0x92 0x72 0x65 0x20    // ' youre ' \n\t0x72 0x65 0x61 0x64 0x79 0x20 0x66 0x6F    // 'ready fo' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'r the ne' \n\t0x78 0x74 0x20 0x73 0x74 0x65 0x70 0x2C    // 'xt step,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x50 0x72 0x6F 0x6A 0x65    // 'he Proje' \n\t0x63 0x74 0x20 0x47 0x61 0x64 0x67 0x65    // 'ct Gadge' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= ktpc6Project15\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"CO--Remember click Gadget\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"CO--Remember click Gadget\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon5 kgobProject kidGadget kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project15\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon5\"\n\tITEM\n\t\t\"ktpc6Project15\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadget\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project15\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9B 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x03    // '????9???' \n\t0x0B 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x65 0x6D 0x62    // '??Rememb' \n\t0x65 0x72 0x2C 0x20 0x77 0x68 0x65 0x6E    // 'er, when' \n\t0x20 0x79 0x6F 0x75 0x92 0x72 0x65 0x20    // ' youre ' \n\t0x72 0x65 0x61 0x64 0x79 0x20 0x66 0x6F    // 'ready fo' \n\t0x72 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'r the ne' \n\t0x78 0x74 0x20 0x73 0x74 0x65 0x70 0x2C    // 'xt step,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x50 0x72 0x6F 0x6A 0x65    // 'he Proje' \n\t0x63 0x74 0x20 0x47 0x61 0x64 0x67 0x65    // 'ct Gadge' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= ktpc6Project16\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"To see steps\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"To see steps\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project16\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc6Project16\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project16\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x49 0x00 0x00 0x01    // '????I???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x03    // '????>???' \n\t0x0B 0x00 0x00 0xFD 0x41 0x00 0x00 0x03    // '???A???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x6D    // 'ps for m' \n\t0x61 0x74 0x63 0x68 0x69 0x6E 0x67 0x20    // 'atching ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64 0x20    // 'a sound ' \n\t0x74 0x6F 0x20 0x61 0x6E 0x20 0x61 0x63    // 'to an ac' \n\t0x74 0x69 0x6F 0x6E 0x2C 0x20 0x63 0x6C    // 'tion, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x48 0x6F 0x77 0x20 0x62 0x75 0x74 0x74    // 'How butt' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= ktpc6Project17\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"Why--action matcher\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"Why--action matcher\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav6Project17\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc6Project17\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav6Project17\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD4 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x65 0x20 0x41 0x63    // '??The Ac' \n\t0x74 0x69 0x6F 0x6E 0x20 0x4D 0x61 0x74    // 'tion Mat' \n\t0x63 0x68 0x65 0x72 0x20 0x69 0x73 0x20    // 'cher is ' \n\t0x61 0x20 0x75 0x73 0x65 0x66 0x75 0x6C    // 'a useful' \n\t0x20 0x74 0x6F 0x6F 0x6C 0x20 0x77 0x68    // ' tool wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x20 0x77    // 'en you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x65    // 'ant to e' \n\t0x6D 0x70 0x68 0x61 0x73 0x69 0x7A 0x65    // 'mphasize' \n\t0x20 0x61 0x20 0x73 0x70 0x65 0x63 0x69    // ' a speci' \n\t0x66 0x69 0x63 0x20 0x61 0x63 0x74 0x69    // 'fic acti' \n\t0x6F 0x6E 0x2E 0x20 0x20 0x42 0x79 0x20    // 'on.  By ' \n\t0x6D 0x61 0x74 0x63 0x68 0x69 0x6E 0x67    // 'matching' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \n\t0x20 0x74 0x6F 0x20 0x47 0x75 0x73 0x74    // ' to Gust' \n\t0x61 0x76 0x65 0x27 0x73 0x20 0x66 0x6F    // 'ave's fo' \n\t0x6F 0x74 0x73 0x74 0x65 0x70 0x2C 0x20    // 'otstep, ' \n\t0x49 0x27 0x6D 0x20 0x64 0x72 0x61 0x77    // 'I'm draw' \n\t0x69 0x6E 0x67 0x20 0x61 0x74 0x74 0x65    // 'ing atte' \n\t0x6E 0x74 0x69 0x6F 0x6E 0x20 0x74 0x6F    // 'ntion to' \n\t0x20 0x68 0x69 0x73 0x20 0x6D 0x6F 0x76    // ' his mov' \n\t0x65 0x6D 0x65 0x6E 0x74 0x20 0x61 0x6E    // 'ement an' \n\t0x64 0x20 0x77 0x68 0x61 0x74 0x27 0x73    // 'd what's' \n\t0x20 0x67 0x6F 0x69 0x6E 0x67 0x20 0x74    // ' going t' \n\t0x6F 0x20 0x68 0x61 0x70 0x70 0x65 0x6E    // 'o happen' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x47 0x75    // ' when Gu' \n\t0x73 0x74 0x61 0x76 0x65 0x20 0x72 0x65    // 'stave re' \n\t0x74 0x75 0x72 0x6E 0x73 0x2E              // 'turns.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_18= ktpc6Project18\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"CO--To find sound effects\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"CO--To find sound effects\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSoundsEfxBrowser kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project18\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc6Project18\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSoundsEfxBrowser\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project18\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x97 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2E 0x00 0x00 0x01    // '????.???' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x03    // '???? ???' \n\t0x0B 0x00 0x00 0xFD 0x2D 0x00 0x00 0x03    // '???-???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x66 0x69 0x6E    // '??To fin' \n\t0x64 0x20 0x61 0x20 0x66 0x6F 0x6F 0x74    // 'd a foot' \n\t0x73 0x74 0x65 0x70 0x20 0x73 0x6F 0x75    // 'step sou' \n\t0x6E 0x64 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'nd, clic' \n\t0x6B 0x20 0x53 0x6F 0x75 0x6E 0x64 0x20    // 'k Sound ' \n\t0x45 0x66 0x66 0x65 0x63 0x74 0x73 0x2E    // 'Effects.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_19= ktpc6Project19\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO--Click Step Floor Right\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"CO--Click Step Floor Right\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav6Project19\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project19\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project19\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x93 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x93 0x73 0x74 0x65 0x70 0x20 0x66 0x6C    // 'step fl' \n\t0x6F 0x6F 0x72 0x20 0x72 0x69 0x67 0x68    // 'oor righ' \n\t0x74 0x2E 0x94 0x0D 0x0A 0x54 0x68 0x65    // 't.??The' \n\t0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // 'n click ' \n\t0x4F 0x4B 0x2E                             // 'OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= ktpc6Project1A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"CO--Click the Action Matcher\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"CO--Click the Action Matcher\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSoundsAttachToCell kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project1A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc6Project1A\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSoundsAttachToCell\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project1A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9D 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x18 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x41 0x63 0x74 0x69    // 'the Acti' \n\t0x6F 0x6E 0x20 0x4D 0x61 0x74 0x63 0x68    // 'on Match' \n\t0x65 0x72 0x2E                             // 'er.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1B= ktpc6Project1B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"CO--Click Gustave\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"CO--Click Gustave\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav6Project1B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project1B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project1B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x54 0x00 0x00 0x00    // '????T???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x47 0x75 0x73 0x74 0x61 0x76 0x65 0x2E    // 'Gustave.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= ktpc6Project1C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"CO--Click button 2 to 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"CO--Click button 2 to 3\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidFrameFW kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project1C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_20=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project1C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidFrameFW\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project1C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_20=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9D 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpForward __HELP_SYMBOL( STN \"mbmpForward\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_20=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0xFB 0x00 0x00 0x16 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x01 0xFB 0x00 0x00 0x18 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xAA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x9B 0x00 0x00 0x03    // '???????' \n\t0x0B 0x00 0x00 0xFD 0xA9 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6C 0x00 0x00 0x82    // '????l??' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_20=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x4E 0x65 0x78 0x74    // 'the Next' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x2D    // ' button-' \n\t0x01 0x20 0x32 0x20 0x74 0x6F 0x20 0x33    // '? 2 to 3' \n\t0x20 0x74 0x69 0x6D 0x65 0x73 0x20 0x75    // ' times u' \n\t0x6E 0x74 0x69 0x6C 0x20 0x79 0x6F 0x75    // 'ntil you' \n\t0x20 0x67 0x65 0x74 0x20 0x74 0x6F 0x20    // ' get to ' \n\t0x74 0x68 0x65 0x20 0x66 0x72 0x61 0x6D    // 'the fram' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x47 0x75 0x73 0x74 0x61 0x76 0x65 0x27    // 'Gustave'' \n\t0x73 0x20 0x6F 0x74 0x68 0x65 0x72 0x20    // 's other ' \n\t0x66 0x6F 0x6F 0x74 0x20 0x68 0x69 0x74    // 'foot hit' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x66 0x6C    // 's the fl' \n\t0x6F 0x6F 0x72 0x2E 0x0D 0x0A 0x57 0x68    // 'oor.??Wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x27 0x72    // 'en you'r' \n\t0x65 0x20 0x72 0x65 0x61 0x64 0x79 0x20    // 'e ready ' \n\t0x66 0x6F 0x72 0x20 0x74 0x68 0x65 0x20    // 'for the ' \n\t0x6E 0x65 0x78 0x74 0x20 0x73 0x74 0x65    // 'next ste' \n\t0x70 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'p, click' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x72 0x6F    // ' the Pro' \n\t0x6A 0x65 0x63 0x74 0x20 0x47 0x61 0x64    // 'ject Gad' \n\t0x67 0x65 0x74 0x2E                        // 'get.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1D= ktpc6Project1D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"CO--To see the steps 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"CO--To see the steps 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project1D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc6Project1D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project1D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x49 0x00 0x00 0x01    // '????I???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x03    // '????>???' \n\t0x0B 0x00 0x00 0xFD 0x41 0x00 0x00 0x03    // '???A???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x6D    // 'ps for m' \n\t0x61 0x74 0x63 0x68 0x69 0x6E 0x67 0x20    // 'atching ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64 0x20    // 'a sound ' \n\t0x74 0x6F 0x20 0x61 0x6E 0x20 0x61 0x63    // 'to an ac' \n\t0x74 0x69 0x6F 0x6E 0x2C 0x20 0x63 0x6C    // 'tion, cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x48 0x6F 0x77 0x20 0x62 0x75 0x74 0x74    // 'How butt' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1E= ktpc6Project1E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"Why--If the sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"Why--If the sound\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav6Project1E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc6Project1E\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav6Project1E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x66 0x20 0x74 0x68 0x65    // '??If the' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x6F    // ' sound o' \n\t0x66 0x20 0x47 0x75 0x73 0x74 0x61 0x76    // 'f Gustav' \n\t0x65 0x92 0x73 0x20 0x66 0x6F 0x6F 0x74    // 'es foot' \n\t0x73 0x74 0x65 0x70 0x73 0x20 0x61 0x72    // 'steps ar' \n\t0x65 0x20 0x6D 0x65 0x61 0x6E 0x74 0x20    // 'e meant ' \n\t0x74 0x6F 0x20 0x64 0x72 0x61 0x77 0x20    // 'to draw ' \n\t0x61 0x74 0x74 0x65 0x6E 0x74 0x69 0x6F    // 'attentio' \n\t0x6E 0x20 0x74 0x6F 0x20 0x68 0x69 0x73    // 'n to his' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x61 0x62    // ' whereab' \n\t0x6F 0x75 0x74 0x73 0x2C 0x20 0x77 0x68    // 'outs, wh' \n\t0x79 0x20 0x64 0x6F 0x65 0x73 0x6E 0x92    // 'y doesn' \n\t0x74 0x20 0x42 0x65 0x6E 0x65 0x64 0x69    // 't Benedi' \n\t0x63 0x74 0x20 0x68 0x61 0x76 0x65 0x20    // 'ct have ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x63 0x6F    // 'sound co' \n\t0x6E 0x6E 0x65 0x63 0x74 0x65 0x64 0x20    // 'nnected ' \n\t0x74 0x6F 0x20 0x68 0x69 0x73 0x20 0x66    // 'to his f' \n\t0x6F 0x6F 0x74 0x73 0x74 0x65 0x70 0x73    // 'ootsteps' \n\t0x3F 0x20 0x20 0x42 0x65 0x6E 0x65 0x64    // '?  Bened' \n\t0x69 0x63 0x74 0x20 0x69 0x73 0x20 0x74    // 'ict is t' \n\t0x72 0x79 0x69 0x6E 0x67 0x20 0x74 0x6F    // 'rying to' \n\t0x20 0x62 0x65 0x20 0x71 0x75 0x69 0x65    // ' be quie' \n\t0x74 0x2E 0x20 0x20 0x49 0x6E 0x20 0x63    // 't.  In c' \n\t0x6F 0x6E 0x74 0x72 0x61 0x73 0x74 0x2C    // 'ontrast,' \n\t0x20 0x68 0x69 0x73 0x20 0x66 0x6F 0x6F    // ' his foo' \n\t0x74 0x73 0x74 0x65 0x70 0x73 0x20 0x61    // 'tsteps a' \n\t0x72 0x65 0x20 0x73 0x69 0x6C 0x65 0x6E    // 're silen' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1F= ktpc6Project1F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"CO--Click Step Floor Left\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"CO--Click Step Floor Left\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidReserveProjects kidPlayProjectSounds 0x0 0xFFFFFFF7 0x57415645 kwav6Project1F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project1F\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidReserveProjects\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project1F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8D 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x93 0x73 0x74 0x65 0x70 0x20 0x66 0x6C    // 'step fl' \n\t0x6F 0x6F 0x72 0x20 0x6C 0x65 0x66 0x74    // 'oor left' \n\t0x2E 0x94 0x20 0x20 0x54 0x68 0x65 0x6E    // '.  Then' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x4F    // ' click O' \n\t0x4B 0x2E                                  // 'K.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_20= ktpc6Project20\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"CO--To play the new ending\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"CO--To play the new ending\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project20\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project20\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project20\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x7B 0x00 0x00 0x01    // '????{???' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x03    // '????/???' \n\t0x0B 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00 0x6C 0x00 0x00 0x03    // '????l???' \n\t0x0B 0x00 0x00 0xFD 0x7A 0x00 0x00 0x03    // '???z???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3D 0x00 0x00 0x82    // '????=??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x6C 0x61    // '??To pla' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x6E 0x65    // 'y the ne' \n\t0x77 0x20 0x65 0x6E 0x64 0x69 0x6E 0x67    // 'w ending' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20 0x63    // 'movie, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x50 0x6C 0x61 0x79 0x20 0x62 0x75    // ' Play bu' \n\t0x74 0x74 0x6F 0x6E 0x2E 0x0D 0x0A 0x57    // 'tton.??W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x92    // 'hen you' \n\t0x72 0x65 0x20 0x72 0x65 0x61 0x64 0x79    // 're ready' \n\t0x20 0x66 0x6F 0x72 0x20 0x74 0x68 0x65    // ' for the' \n\t0x20 0x6E 0x65 0x78 0x74 0x20 0x73 0x74    // ' next st' \n\t0x65 0x70 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ep, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x50 0x72    // 'k the Pr' \n\t0x6F 0x6A 0x65 0x63 0x74 0x20 0x47 0x61    // 'oject Ga' \n\t0x64 0x67 0x65 0x74 0x2E                   // 'dget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_21= ktpc6Project21\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"CO--To see the steps 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"CO--To see the steps 3\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project21\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc6Project21\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project21\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5D 0x00 0x00 0x01    // '????]???' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0x03    // '????R???' \n\t0x0B 0x00 0x00 0xFD 0x55 0x00 0x00 0x03    // '???U???' \n\t0x00 0x00 0x00 0x00 0x5D 0x00 0x00 0x40    // '????]??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x20 0x66 0x6F 0x72 0x20 0x70 0x61    // 'p for pa' \n\t0x75 0x73 0x69 0x6E 0x67 0x20 0x74 0x68    // 'using th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'e movie ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x20 0x75    // 'action u' \n\t0x6E 0x74 0x69 0x6C 0x20 0x61 0x20 0x73    // 'ntil a s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x69 0x73 0x20    // 'ound is ' \n\t0x66 0x69 0x6E 0x69 0x73 0x68 0x65 0x64    // 'finished' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x48 0x6F 0x77 0x20    // 'the How ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E         // 'button.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_22= ktpc6Project22\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"Why--Wait for Sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"Why--Wait for Sound\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav6Project22\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc6Project22\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav6Project22\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAD 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x61 0x69 0x74 0x20 0x66    // '??Wait f' \n\t0x6F 0x72 0x20 0x53 0x6F 0x75 0x6E 0x64    // 'or Sound' \n\t0x20 0x74 0x6F 0x20 0x45 0x6E 0x64 0x20    // ' to End ' \n\t0x61 0x6C 0x6C 0x6F 0x77 0x73 0x20 0x61    // 'allows a' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x74    // ' sound t' \n\t0x6F 0x20 0x70 0x6C 0x61 0x79 0x20 0x75    // 'o play u' \n\t0x6E 0x74 0x69 0x6C 0x20 0x69 0x74 0x20    // 'ntil it ' \n\t0x66 0x69 0x6E 0x69 0x73 0x68 0x65 0x73    // 'finishes' \n\t0x20 0x69 0x6E 0x73 0x74 0x65 0x61 0x64    // ' instead' \n\t0x20 0x6F 0x66 0x20 0x63 0x75 0x74 0x74    // ' of cutt' \n\t0x69 0x6E 0x67 0x20 0x69 0x74 0x20 0x6F    // 'ing it o' \n\t0x66 0x66 0x2E 0x20 0x20 0x54 0x68 0x69    // 'ff.  Thi' \n\t0x73 0x20 0x69 0x73 0x20 0x75 0x73 0x65    // 's is use' \n\t0x66 0x75 0x6C 0x20 0x65 0x73 0x70 0x65    // 'ful espe' \n\t0x63 0x69 0x61 0x6C 0x6C 0x79 0x20 0x69    // 'cially i' \n\t0x66 0x20 0x79 0x6F 0x75 0x27 0x76 0x65    // 'f you've' \n\t0x20 0x61 0x74 0x74 0x61 0x63 0x68 0x65    // ' attache' \n\t0x64 0x20 0x61 0x20 0x73 0x6F 0x75 0x6E    // 'd a soun' \n\t0x64 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'd to the' \n\t0x20 0x6C 0x61 0x73 0x74 0x20 0x66 0x72    // ' last fr' \n\t0x61 0x6D 0x65 0x20 0x6F 0x66 0x20 0x61    // 'ame of a' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x2E         // ' scene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_23= ktpc6Project23\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"CO--blank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"CO--blank\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidSettingsCover kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project23\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_21=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc6Project23\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidSettingsCover\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project23\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_21=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8D 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_21=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_21=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x03 0x03 0x62 0x6C 0x61 0x6E 0x6B         // '??blank' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_24= ktpc6Project24\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"CO--Turn on Wait\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"CO--Turn on Wait\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon2 kgobProject kidPausesSound kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project24\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_25=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon2\"\n\tITEM\n\t\t\"ktpc6Project24\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPausesSound\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project24\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_25=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpc6Project4F __HELP_SYMBOL( STN \"ktpc6Project4F\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_25=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x72 0x00 0x00 0x01    // '????r???' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x31 0x00 0x00 0x03    // '???1???' \n\t0x00 0x00 0x00 0x00 0x63 0x00 0x00 0x03    // '????c???' \n\t0x0B 0x00 0x00 0xFD 0x71 0x00 0x00 0x03    // '???q???' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x1B 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x1B 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x34 0x00 0x00 0x82    // '????4??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_25=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x70 0x61 0x75    // '??To pau' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x6D    // 'se the m' \n\t0x6F 0x76 0x69 0x65 0x2C 0x20 0x74 0x75    // 'ovie, tu' \n\t0x72 0x6E 0x20 0x6F 0x6E 0x20 0x57 0x61    // 'rn on Wa' \n\t0x69 0x74 0x20 0x66 0x6F 0x72 0x20 0x53    // 'it for S' \n\t0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F 0x20    // 'ound to ' \n\t0x45 0x6E 0x64 0x2E 0x0D 0x0A 0x57 0x68    // 'End.??Wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x27 0x72    // 'en you'r' \n\t0x65 0x20 0x72 0x65 0x61 0x64 0x79 0x20    // 'e ready ' \n\t0x66 0x6F 0x72 0x20 0x74 0x68 0x65 0x20    // 'for the ' \n\t0x6E 0x65 0x78 0x74 0x20 0x73 0x74 0x65    // 'next ste' \n\t0x70 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'p, click' \n\t0x20 0x74 0x68 0x65 0x20 0x50 0x72 0x6F    // ' the Pro' \n\t0x6A 0x65 0x63 0x74 0x20 0x47 0x61 0x64    // 'ject Gad' \n\t0x67 0x65 0x74 0x2E                        // 'get.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_25= ktpc6Project25\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"CO--To see if it worked\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"CO--To see if it worked\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project25\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project25\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project25\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8C 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6B 0x00 0x00 0x01    // '????k???' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x5C 0x00 0x00 0x03    // '????\\???' \n\t0x0B 0x00 0x00 0xFD 0x6A 0x00 0x00 0x03    // '???j???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2D 0x00 0x00 0x82    // '????-??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x69 0x66 0x20 0x69 0x74 0x20 0x77    // ' if it w' \n\t0x6F 0x72 0x6B 0x65 0x64 0x2C 0x20 0x63    // 'orked, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x50 0x6C 0x61 0x79 0x20 0x62 0x75    // ' Play bu' \n\t0x74 0x74 0x6F 0x6E 0x2E 0x0D 0x0A 0x57    // 'tton.??W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x72 0x65 0x20 0x72 0x65 0x61 0x64 0x79    // 're ready' \n\t0x20 0x66 0x6F 0x72 0x20 0x74 0x68 0x65    // ' for the' \n\t0x20 0x6E 0x65 0x78 0x74 0x20 0x73 0x74    // ' next st' \n\t0x65 0x70 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ep, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x50 0x72    // 'k the Pr' \n\t0x6F 0x6A 0x65 0x63 0x74 0x20 0x47 0x61    // 'oject Ga' \n\t0x64 0x67 0x65 0x74 0x2E                   // 'dget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_26= ktpc6Project26\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"CO--To see the steps 4\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"CO--To see the steps 4\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon7 kgobProject kidGadgetHow kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project26\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon7\"\n\tITEM\n\t\t\"ktpc6Project26\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidGadgetHow\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project26\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x69 0x00 0x00 0x00    // '????i???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x03    // '????1???' \n\t0x0B 0x00 0x00 0xFD 0x34 0x00 0x00 0x03    // '???4???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x74 0x65    // ' the ste' \n\t0x70 0x73 0x20 0x66 0x6F 0x72 0x20 0x72    // 'ps for r' \n\t0x65 0x6D 0x6F 0x76 0x69 0x6E 0x67 0x20    // 'emoving ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64 0x2C    // 'a sound,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' click t' \n\t0x68 0x65 0x20 0x48 0x6F 0x77 0x20 0x62    // 'he How b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x2E              // 'utton.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_27= ktpc6Project27\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"Why--Sounds that have\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"Why--Sounds that have\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav6Project27\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc6Project27\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav6Project27\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x02 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xC4 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x75 0x6E 0x64 0x73    // '??Sounds' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x68 0x61    // ' that ha' \n\t0x76 0x65 0x20 0x74 0x68 0x65 0x20 0x67    // 've the g' \n\t0x72 0x65 0x61 0x74 0x65 0x73 0x74 0x20    // 'reatest ' \n\t0x69 0x6D 0x70 0x61 0x63 0x74 0x20 0x61    // 'impact a' \n\t0x72 0x65 0x20 0x74 0x68 0x65 0x20 0x6F    // 're the o' \n\t0x6E 0x65 0x73 0x20 0x74 0x68 0x61 0x74    // 'nes that' \n\t0x20 0x74 0x65 0x6C 0x6C 0x20 0x75 0x73    // ' tell us' \n\t0x20 0x73 0x6F 0x6D 0x65 0x74 0x68 0x69    // ' somethi' \n\t0x6E 0x67 0x20 0x6E 0x65 0x77 0x2E 0x20    // 'ng new. ' \n\t0x20 0x4D 0x79 0x20 0x6C 0x69 0x6E 0x65    // ' My line' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x65 0x6E 0x64 0x20 0x6F 0x66 0x20 0x74    // 'end of t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'he movie' \n\t0x20 0x74 0x65 0x6C 0x6C 0x73 0x20 0x75    // ' tells u' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 's the mo' \n\t0x76 0x69 0x65 0x20 0x69 0x73 0x20 0x6F    // 'vie is o' \n\t0x76 0x65 0x72 0x2C 0x20 0x77 0x68 0x69    // 'ver, whi' \n\t0x63 0x68 0x20 0x69 0x73 0x20 0x73 0x6F    // 'ch is so' \n\t0x6D 0x65 0x74 0x68 0x69 0x6E 0x67 0x20    // 'mething ' \n\t0x77 0x65 0x20 0x61 0x6C 0x72 0x65 0x61    // 'we alrea' \n\t0x64 0x79 0x20 0x6B 0x6E 0x6F 0x77 0x2E    // 'dy know.' \n\t0x20 0x20 0x4C 0x65 0x74 0x27 0x73 0x20    // '  Let's ' \n\t0x67 0x65 0x74 0x20 0x72 0x69 0x64 0x20    // 'get rid ' \n\t0x6F 0x66 0x20 0x69 0x74 0x21              // 'of it!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_28= ktpc6Project28\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"CO--To remove a sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"CO--To remove a sound\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidCutCopyPaste kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project28\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_17=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project28\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project28\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_17=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_17=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x01    // '????6???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_17=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x72 0x65 0x6D    // '??To rem' \n\t0x6F 0x76 0x65 0x20 0x61 0x20 0x73 0x6F    // 'ove a so' \n\t0x75 0x6E 0x64 0x2C 0x20 0x63 0x6C 0x69    // 'und, cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x43    // 'ck the C' \n\t0x75 0x74 0x2C 0x20 0x43 0x6F 0x70 0x79    // 'ut, Copy' \n\t0x2C 0x20 0x26 0x20 0x50 0x61 0x73 0x74    // ', & Past' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E    // 'e Tools.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_29= ktpc6Project29\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"CO--Click Remove Sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"CO--Click Remove Sound\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidCCPActorNuke kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project29\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project29\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidCCPActorNuke\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project29\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7F 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x52 0x65 0x6D 0x6F 0x76 0x65 0x20 0x53    // 'Remove S' \n\t0x6F 0x75 0x6E 0x64 0x2E                   // 'ound.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2A= ktpc6Project2A\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"CO--Click the coffin\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"CO--Click the coffin\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x6E 0x57415645 kwav6Project2A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project2A\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project2A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x01    // '????3???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x63 0x6F 0x66 0x66    // 'the coff' \n\t0x69 0x6E 0x2D 0x2D 0x49 0x20 0x61 0x74    // 'in--I at' \n\t0x74 0x61 0x63 0x68 0x65 0x64 0x20 0x6D    // 'tached m' \n\t0x79 0x20 0x76 0x6F 0x69 0x63 0x65 0x20    // 'y voice ' \n\t0x74 0x6F 0x20 0x74 0x68 0x69 0x73 0x20    // 'to this ' \n\t0x70 0x72 0x6F 0x70 0x2E                   // 'prop.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2B= ktpc6Project2B\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"CO--Drag the slider\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"CO--Drag the slider\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject 0x0 kidPlayProjectSounds 0x140 0x0 0x57415645 kwav6Project2B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project2B\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project2B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x04 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x52 0x00 0x00 0x01    // '????R???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x37 0x00 0x00 0x82    // '????7??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x67 0x65 0x74    // '??To get' \n\t0x20 0x72 0x69 0x64 0x20 0x6F 0x66 0x20    // ' rid of ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64 0x2C    // 'a sound,' \n\t0x20 0x64 0x72 0x61 0x67 0x20 0x74 0x68    // ' drag th' \n\t0x65 0x20 0x73 0x6C 0x69 0x64 0x65 0x72    // 'e slider' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x62 0x6F 0x74 0x74 0x6F 0x6D 0x2E 0x0D    // 'bottom.?' \n\t0x0A 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // '?When yo' \n\t0x75 0x92 0x72 0x65 0x20 0x64 0x6F 0x6E    // 'ure don' \n\t0x65 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'e, click' \n\t0x20 0x4F 0x4B 0x2E                        // ' OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2C= ktpc6Project2C\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"CO--To see the Play button\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"CO--To see the Play button\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon6 kgobProject kidPlay kidPlayProjectSounds 0x0 0x0 0x57415645 kwav6Project2C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon6\"\n\tITEM\n\t\t\"ktpc6Project2C\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project2C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9A 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6E 0x00 0x00 0x01    // '????n???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x03    // '????\"???' \n\t0x0B 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x03    // '????_???' \n\t0x0B 0x00 0x00 0xFD 0x6D 0x00 0x00 0x03    // '???m???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x30 0x00 0x00 0x82    // '????0??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x73 0x65 0x65    // '??To see' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x68 0x6F    // ' the who' \n\t0x6C 0x65 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'le movie' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x50 0x6C 0x61 0x79    // 'the Play' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E    // ' button.' \n\t0x0D 0x0A 0x57 0x68 0x65 0x6E 0x20 0x79    // '??When y' \n\t0x6F 0x75 0x92 0x72 0x65 0x20 0x72 0x65    // 'oure re' \n\t0x61 0x64 0x79 0x20 0x66 0x6F 0x72 0x20    // 'ady for ' \n\t0x74 0x68 0x65 0x20 0x6E 0x65 0x78 0x74    // 'the next' \n\t0x20 0x73 0x74 0x65 0x70 0x2C 0x20 0x63    // ' step, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x50 0x72 0x6F 0x6A 0x65 0x63 0x74    // ' Project' \n\t0x20 0x47 0x61 0x64 0x67 0x65 0x74 0x2E    // ' Gadget.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2D= ktpc6Project2D\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"Congratulations\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"Congratulations\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloonP kgobProject 0x0 kidPlayProjectSounds 0x258 0x1C2 0x57415645 kwav6Project2D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_23=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloonP\"\n\tITEM\n\t\t\"ktpc6Project2D\"\n\tITEM\n\t\t\"kgobProject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayProjectSounds\"\n\tITEM\n\t\t\"kwav6Project2D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_23=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9D 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x04 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0xC0000004\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_23=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA6 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0B 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x40    // '????@??@' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x40    // '????U??@' \n\t0x02 0x00 0x00 0x00 0x6D 0x00 0x00 0x40    // '????m??@' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x40    // '????o??@' \n\t0x03 0x00 0x00 0x00 0x8E 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xA6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x80    // '????@??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x90 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0xC0    // '????@??' \n\t0x05 0x00 0x00 0x00 0x55 0x00 0x00 0xC0    // '????U??' \n\t0x05 0x00 0x00 0x00 0x6F 0x00 0x00 0xC0    // '????o??' \n\t0x05 0x00 0x00 0x00 0x90 0x00 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_23=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x6E 0x67 0x72 0x61    // '??Congra' \n\t0x74 0x75 0x6C 0x61 0x74 0x69 0x6F 0x6E    // 'tulation' \n\t0x73 0x21 0x20 0x20 0x59 0x6F 0x75 0x27    // 's!  You'' \n\t0x72 0x65 0x20 0x64 0x6F 0x6E 0x65 0x21    // 're done!' \n\t0x20 0x20 0x57 0x68 0x61 0x74 0x20 0x77    // '  What w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x79 0x6F 0x75    // 'ould you' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x74 0x6F    // ' like to' \n\t0x20 0x64 0x6F 0x20 0x6E 0x6F 0x77 0x3F    // ' do now?' \n\t0x0D 0x0A 0x01 0x09 0x57 0x6F 0x72 0x6B    // '????Work' \n\t0x20 0x6F 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' on your' \n\t0x20 0x6F 0x77 0x6E 0x3F 0x0D 0x0A 0x01    // ' own????' \n\t0x09 0x53 0x74 0x61 0x72 0x74 0x20 0x61    // '?Start a' \n\t0x6E 0x6F 0x74 0x68 0x65 0x72 0x20 0x70    // 'nother p' \n\t0x72 0x6F 0x6A 0x65 0x63 0x74 0x3F 0x0D    // 'roject??' \n\t0x0A 0x01 0x09 0x47 0x6F 0x20 0x62 0x61    // '???Go ba' \n\t0x63 0x6B 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ck to th' \n\t0x65 0x20 0x50 0x72 0x6F 0x6A 0x65 0x63    // 'e Projec' \n\t0x74 0x73 0x20 0x52 0x6F 0x6F 0x6D 0x3F    // 'ts Room?' \n\t0x0D 0x0A 0x01 0x09 0x51 0x75 0x69 0x74    // '????Quit' \n\t0x20 0x33 0x44 0x20 0x4D 0x6F 0x76 0x69    // ' 3D Movi' \n\t0x65 0x20 0x4D 0x61 0x6B 0x65 0x72 0x3F    // 'e Maker?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2E= ktpc6Project2E\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"Tip:  Sound Indicator\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"Tip:  Sound Indicator\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc6Project2E\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xCB 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x8C 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x14 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x6F 0x75    // '???  Sou' \n\t0x6E 0x64 0x20 0x49 0x6E 0x64 0x69 0x63    // 'nd Indic' \n\t0x61 0x74 0x6F 0x72 0x0D 0x0A 0x57 0x68    // 'ator??Wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x27 0x72    // 'en you'r' \n\t0x65 0x20 0x61 0x74 0x20 0x61 0x20 0x66    // 'e at a f' \n\t0x72 0x61 0x6D 0x65 0x20 0x77 0x68 0x65    // 'rame whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x68    // 're you h' \n\t0x61 0x76 0x65 0x20 0x61 0x74 0x74 0x61    // 'ave atta' \n\t0x63 0x68 0x65 0x64 0x20 0x73 0x6F 0x75    // 'ched sou' \n\t0x6E 0x64 0x2C 0x20 0x79 0x6F 0x75 0x27    // 'nd, you'' \n\t0x6C 0x6C 0x20 0x73 0x65 0x65 0x20 0x61    // 'll see a' \n\t0x20 0x6D 0x75 0x73 0x69 0x63 0x20 0x6E    // ' music n' \n\t0x6F 0x74 0x65 0x20 0x6F 0x6E 0x20 0x74    // 'ote on t' \n\t0x68 0x65 0x20 0x73 0x6C 0x69 0x64 0x69    // 'he slidi' \n\t0x6E 0x67 0x20 0x70 0x61 0x72 0x74 0x20    // 'ng part ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x46    // 'of the F' \n\t0x72 0x61 0x6D 0x65 0x20 0x53 0x6C 0x69    // 'rame Sli' \n\t0x64 0x65 0x72 0x2E 0x20 0x20 0x59 0x6F    // 'der.  Yo' \n\t0x75 0x20 0x63 0x61 0x6E 0x20 0x61 0x74    // 'u can at' \n\t0x74 0x61 0x63 0x68 0x20 0x73 0x6F 0x75    // 'tach sou' \n\t0x6E 0x64 0x73 0x20 0x74 0x6F 0x20 0x61    // 'nds to a' \n\t0x20 0x62 0x61 0x63 0x6B 0x67 0x72 0x6F    // ' backgro' \n\t0x75 0x6E 0x64 0x2C 0x20 0x61 0x63 0x74    // 'und, act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x2E                   // 'word.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4F= ktpc6Project4F\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4F, __HELP_NAME(\"Def:  Turn on\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4F, __HELP_NAME(\"Def:  Turn on\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotGadgetHelp kgobProjectHot 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 kwav6Project4F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_24=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotGadgetHelp\"\n\tITEM\n\t\t\"ktpc6Project4F\"\n\tITEM\n\t\t\"kgobProjectHot\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kwav6Project4F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_24=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_24=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x01 0x00 0x00 0x00 0xCA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x20 0x00 0x00 0x03    // '??? ???' \n\t0x00 0x00 0x00 0x00 0x68 0x00 0x00 0x03    // '????h???' \n\t0x0A 0x00 0x00 0xFD 0x80 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x2F 0x00 0x00 0x80    // '????/??' \n\t0x00 0x00 0x03 0x00 0x68 0x00 0x00 0x80    // '????h??' \n\t0x00 0x00 0x02 0x00 0x95 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x95 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_24=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x75 0x72 0x6E 0x20 0x6F    // '??Turn o' \n\t0x6E 0x0D 0x0A 0x54 0x6F 0x20 0x22 0x74    // 'n??To \"t' \n\t0x75 0x72 0x6E 0x20 0x6F 0x6E 0x22 0x20    // 'urn on\" ' \n\t0x74 0x68 0x65 0x20 0x62 0x75 0x74 0x74    // 'the butt' \n\t0x6F 0x6E 0x0D 0x0A 0x95 0x09 0x43 0x6C    // 'on???Cl' \n\t0x69 0x63 0x6B 0x20 0x69 0x74 0x2E 0x0D    // 'ick it.?' \n\t0x0A 0x57 0x68 0x65 0x6E 0x20 0x22 0x6F    // '?When \"o' \n\t0x6E 0x2C 0x22 0x20 0x74 0x68 0x65 0x20    // 'n,\" the ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x69    // 'button i' \n\t0x73 0x20 0x70 0x75 0x73 0x68 0x65 0x64    // 's pushed' \n\t0x20 0x69 0x6E 0x20 0x61 0x6E 0x64 0x20    // ' in and ' \n\t0x74 0x68 0x65 0x20 0x6C 0x69 0x67 0x68    // 'the ligh' \n\t0x74 0x20 0x69 0x73 0x20 0x6F 0x6E 0x2E    // 't is on.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x22 0x74 0x75    // '??To \"tu' \n\t0x72 0x6E 0x20 0x6F 0x66 0x66 0x22 0x20    // 'rn off\" ' \n\t0x74 0x68 0x65 0x20 0x62 0x75 0x74 0x74    // 'the butt' \n\t0x6F 0x6E 0x0D 0x0A 0x95 0x09 0x43 0x6C    // 'on???Cl' \n\t0x69 0x63 0x6B 0x20 0x69 0x74 0x20 0x61    // 'ick it a' \n\t0x67 0x61 0x69 0x6E 0x2E 0x0D 0x0A 0x57    // 'gain.??W' \n\t0x68 0x65 0x6E 0x20 0x22 0x6F 0x66 0x66    // 'hen \"off' \n\t0x2C 0x22 0x20 0x74 0x68 0x65 0x20 0x62    // ',\" the b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x20 0x70 0x6F    // 'utton po' \n\t0x70 0x73 0x20 0x6F 0x75 0x74 0x20 0x61    // 'ps out a' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x20 0x6C    // 'nd the l' \n\t0x69 0x67 0x68 0x74 0x20 0x69 0x73 0x20    // 'ight is ' \n\t0x6F 0x66 0x66 0x2E                        // 'off.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/toolhelp.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= thCameraAngles\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"thCameraAngles\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"thCameraAngles\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thCameraAngles\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4F, 0x0)\nAG(4)\n\tITEM LONG 0x2000005\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSettingsCameras __HELP_SYMBOL( STN \"mbmpSettingsCameras\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Tip___Undo __HELP_SYMBOL( STN \"Tip___Undo\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x21 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '!???????' \n\t0x00 0xF6 0x00 0x00 0x03 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x10 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x98 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x01 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0xBE 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xDE 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x90 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x92 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x94 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x98 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xC0 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xDA 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x22 0x01 0x00 0x04    // '????\"???' \n\t0x0D 0x00 0x00 0xFE 0x31 0x01 0x00 0x04    // '???1???' \n\t0x00 0x00 0x00 0x00 0x22 0x01 0x00 0x40    // '????\"??@' \n\t0x04 0x00 0x00 0x00 0x31 0x01 0x00 0x40    // '????1??@' \n\t0x00 0x00 0x00 0x00 0x92 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0x98 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xDC 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x5E 0x01 0x00 0x80    // '????^??' \n\t0x00 0x00 0x00 0x00 0x76 0x01 0x00 0x80    // '????v??' \n\t0x00 0x00 0x02 0x00 0x92 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x92 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x92 0x01 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4F, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x61 0x6D    // '???  Cam' \n\t0x65 0x72 0x61 0x20 0x41 0x6E 0x67 0x6C    // 'era Angl' \n\t0x65 0x73 0x0D 0x0A 0x49 0x6D 0x61 0x67    // 'es??Imag' \n\t0x69 0x6E 0x65 0x20 0x74 0x68 0x65 0x72    // 'ine ther' \n\t0x65 0x20 0x61 0x72 0x65 0x20 0x64 0x69    // 'e are di' \n\t0x66 0x66 0x65 0x72 0x65 0x6E 0x74 0x20    // 'fferent ' \n\t0x63 0x61 0x6D 0x65 0x72 0x61 0x73 0x20    // 'cameras ' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x65 0x64 0x20 0x61 0x72 0x6F 0x75 0x6E    // 'ed aroun' \n\t0x64 0x20 0x61 0x20 0x6D 0x6F 0x76 0x69    // 'd a movi' \n\t0x65 0x20 0x73 0x65 0x74 0x2E 0x20 0x20    // 'e set.  ' \n\t0x57 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'When you' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x20    // ' change ' \n\t0x63 0x61 0x6D 0x65 0x72 0x61 0x20 0x61    // 'camera a' \n\t0x6E 0x67 0x6C 0x65 0x73 0x20 0x79 0x6F    // 'ngles yo' \n\t0x75 0x20 0x61 0x72 0x65 0x6E 0x27 0x74    // 'u aren't' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x69 0x6E    // ' changin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x73 0x63    // 'g the sc' \n\t0x65 0x6E 0x65 0x97 0x79 0x6F 0x75 0x27    // 'eneyou'' \n\t0x72 0x65 0x20 0x6A 0x75 0x73 0x74 0x20    // 're just ' \n\t0x63 0x68 0x61 0x6E 0x67 0x69 0x6E 0x67    // 'changing' \n\t0x20 0x74 0x68 0x65 0x20 0x76 0x69 0x65    // ' the vie' \n\t0x77 0x20 0x6F 0x66 0x20 0x74 0x68 0x61    // 'w of tha' \n\t0x74 0x20 0x73 0x63 0x65 0x6E 0x65 0x2E    // 't scene.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x63 0x61 0x6D 0x65 0x72 0x61 0x20 0x61    // 'camera a' \n\t0x6E 0x67 0x6C 0x65 0x0D 0x0A 0x31 0x09    // 'ngle??1?' \n\t0x49 0x66 0x20 0x79 0x6F 0x75 0x20 0x73    // 'If you s' \n\t0x65 0x65 0x20 0x74 0x68 0x65 0x20 0x53    // 'ee the S' \n\t0x63 0x65 0x6E 0x65 0x73 0x20 0x62 0x75    // 'cenes bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x74 0x20    // 'tton at ' \n\t0x74 0x68 0x65 0x20 0x74 0x6F 0x70 0x20    // 'the top ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x73    // 'of the s' \n\t0x63 0x72 0x65 0x65 0x6E 0x2C 0x20 0x63    // 'creen, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x69 0x74 0x2E    // 'lick it.' \n\t0x0D 0x0A 0x32 0x09 0x47 0x6F 0x20 0x74    // '??2?Go t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x70 0x6C    // 'o the pl' \n\t0x61 0x63 0x65 0x20 0x77 0x68 0x65 0x72    // 'ace wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x63 0x68    // 'nt to ch' \n\t0x61 0x6E 0x67 0x65 0x20 0x74 0x68 0x65    // 'ange the' \n\t0x20 0x63 0x61 0x6D 0x65 0x72 0x61 0x20    // ' camera ' \n\t0x61 0x6E 0x67 0x6C 0x65 0x2E 0x0D 0x0A    // 'angle.??' \n\t0x33 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '3?Click ' \n\t0x43 0x61 0x6D 0x65 0x72 0x61 0x20 0x41    // 'Camera A' \n\t0x6E 0x67 0x6C 0x65 0x73 0x2E 0x0D 0x0A    // 'ngles.??' \n\t0x34 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '4?Click ' \n\t0x74 0x68 0x65 0x20 0x76 0x69 0x65 0x77    // 'the view' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x2E 0x0D 0x0A 0x01 0x20 0x55 0x6E    // 't.??? Un' \n\t0x64 0x6F                                  // 'do' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= thSceneChoices\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"thSceneChoices\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"thSceneChoices\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thSceneChoices\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\nAG(4)\n\tITEM LONG 0x2000006\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Change_Camera_Angle __HELP_SYMBOL( STN \"Tip___Change_Camera_Angle\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG Tip___Moving_Scene_to_Scene __HELP_SYMBOL( STN \"Tip___Moving_Scene_to_Scene\" )\n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneChoices __HELP_SYMBOL( STN \"mbmpSceneChoices\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Tip___Undo __HELP_SYMBOL( STN \"Tip___Undo\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___frame __HELP_SYMBOL( STN \"Def___frame\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x2C 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // ',???????' \n\t0x01 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x0F 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4A 0x01 0x00 0x01    // '????J???' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x02    // '????3???' \n\t0x01 0x00 0x00 0x00 0x4A 0x00 0x00 0x02    // '????J???' \n\t0x00 0x00 0x00 0x00 0x93 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xB0 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x07 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x09 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x13 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x2E 0x01 0x00 0x02    // '????.???' \n\t0x00 0x00 0x00 0x00 0x30 0x01 0x00 0x02    // '????0???' \n\t0x01 0x00 0x00 0x00 0x4A 0x01 0x00 0x02    // '????J???' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x02 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x03    // '????5???' \n\t0x0A 0x00 0x00 0xFD 0x46 0x00 0x00 0x03    // '???F???' \n\t0x00 0x00 0x00 0x00 0x94 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xA1 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xF1 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x40    // '??????@' \n\t0x07 0x00 0x00 0x00 0xF1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x09 0x01 0x00 0x40    // '???????@' \n\t0x06 0x00 0x00 0x00 0x0F 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x11 0x01 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x2C 0x01 0x00 0x40    // '????,??@' \n\t0x00 0x00 0x00 0x00 0x2E 0x01 0x00 0x40    // '????.??@' \n\t0x03 0x00 0x00 0x00 0x4A 0x01 0x00 0x40    // '????J??@' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x80    // '????H??' \n\t0x00 0x00 0x02 0x00 0xC1 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x09 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x11 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x09 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x05 0x00 0x00 0x00 0x09 0x01 0x00 0xC0    // '???????' \n\t0x04 0x00 0x00 0x00 0x11 0x01 0x00 0xC0    // '???????' \n\t0x04 0x00 0x00 0x00 0x2E 0x01 0x00 0xC0    // '????.??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x53 0x63 0x65 0x6E    // '??? Scen' \n\t0x65 0x20 0x43 0x68 0x6F 0x69 0x63 0x65    // 'e Choice' \n\t0x73 0x0D 0x0A 0x43 0x68 0x6F 0x6F 0x73    // 's??Choos' \n\t0x65 0x20 0x66 0x72 0x6F 0x6D 0x20 0x6D    // 'e from m' \n\t0x61 0x6E 0x79 0x20 0x64 0x69 0x66 0x66    // 'any diff' \n\t0x65 0x72 0x65 0x6E 0x74 0x20 0x73 0x63    // 'erent sc' \n\t0x65 0x6E 0x65 0x73 0x21 0x0D 0x0A 0x54    // 'enes!??T' \n\t0x6F 0x20 0x63 0x68 0x6F 0x6F 0x73 0x65    // 'o choose' \n\t0x20 0x61 0x20 0x73 0x63 0x65 0x6E 0x65    // ' a scene' \n\t0x0D 0x0A 0x31 0x09 0x49 0x66 0x20 0x79    // '??1?If y' \n\t0x6F 0x75 0x20 0x73 0x65 0x65 0x20 0x74    // 'ou see t' \n\t0x68 0x65 0x20 0x53 0x63 0x65 0x6E 0x65    // 'he Scene' \n\t0x73 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 's button' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x74 0x6F 0x70 0x20 0x6F 0x66 0x20 0x74    // 'top of t' \n\t0x68 0x65 0x20 0x73 0x63 0x72 0x65 0x65    // 'he scree' \n\t0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'n, click' \n\t0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09    // ' it.??2?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x53 0x63    // 'Click Sc' \n\t0x65 0x6E 0x65 0x20 0x43 0x68 0x6F 0x69    // 'ene Choi' \n\t0x63 0x65 0x73 0x2E 0x0D 0x0A 0x33 0x09    // 'ces.??3?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x73 0x63 0x65 0x6E 0x65 0x20    // 'e scene ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x2E 0x0D 0x0A 0x4E 0x65 0x77 0x20 0x73    // '.??New s' \n\t0x63 0x65 0x6E 0x65 0x73 0x20 0x61 0x72    // 'cenes ar' \n\t0x65 0x20 0x61 0x6C 0x77 0x61 0x79 0x73    // 'e always' \n\t0x20 0x61 0x64 0x64 0x65 0x64 0x20 0x61    // ' added a' \n\t0x66 0x74 0x65 0x72 0x20 0x74 0x68 0x65    // 'fter the' \n\t0x20 0x6C 0x61 0x73 0x74 0x20 0x66 0x72    // ' last fr' \n\t0x61 0x6D 0x65 0x20 0x6F 0x66 0x20 0x74    // 'ame of t' \n\t0x68 0x65 0x20 0x63 0x75 0x72 0x72 0x65    // 'he curre' \n\t0x6E 0x74 0x20 0x73 0x63 0x65 0x6E 0x65    // 'nt scene' \n\t0x2E 0x0D 0x0A 0x01 0x20 0x55 0x6E 0x64    // '.??? Und' \n\t0x6F 0x0D 0x0A 0x01 0x20 0x43 0x68 0x61    // 'o??? Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x63 0x61 0x6D 0x65 0x72 0x61    // 'e camera' \n\t0x20 0x61 0x6E 0x67 0x6C 0x65 0x0D 0x0A    // ' angle??' \n\t0x01 0x20 0x4D 0x6F 0x76 0x69 0x6E 0x67    // '? Moving' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x73 0x63    // ' from sc' \n\t0x65 0x6E 0x65 0x20 0x74 0x6F 0x20 0x73    // 'ene to s' \n\t0x63 0x65 0x6E 0x65                        // 'cene' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= thSceneOrganizer\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"thSceneOrganizer\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"thSceneOrganizer\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thSceneOrganizer\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_25=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\nAG(4)\n\tITEM LONG 0x200000B\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSorter __HELP_SYMBOL( STN \"mbmpSceneSorter\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___frame __HELP_SYMBOL( STN \"Def___frame\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___transitions __HELP_SYMBOL( STN \"Def___transitions\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_25=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x2E 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '.???????' \n\t0x01 0xF6 0x00 0x00 0x12 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x77 0x01 0x00 0x01    // '????w???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x01 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x02    // '????0???' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0x02    // '????S???' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x02    // '????T???' \n\t0x01 0x00 0x00 0x00 0x56 0x00 0x00 0x02    // '????V???' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0x02    // '????W???' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0x02    // '????p???' \n\t0x00 0x00 0x00 0x00 0x81 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x82 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x92 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x93 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xB0 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xB1 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xB9 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xBC 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xF9 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x39 0x01 0x00 0x02    // '????9???' \n\t0x00 0x00 0x00 0x00 0x3C 0x01 0x00 0x02    // '????<???' \n\t0x01 0x00 0x00 0x00 0x56 0x01 0x00 0x02    // '????V???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xDB 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xF5 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x04    // '????(???' \n\t0x0D 0x00 0x00 0xFE 0x2D 0x00 0x00 0x04    // '???-???' \n\t0x00 0x00 0x00 0x00 0x76 0x00 0x00 0x04    // '????v???' \n\t0x0D 0x00 0x00 0xFE 0x81 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x04 0x00 0x00 0x00 0x2D 0x00 0x00 0x40    // '????-??@' \n\t0x00 0x00 0x00 0x00 0x76 0x00 0x00 0x40    // '????v??@' \n\t0x05 0x00 0x00 0x00 0x81 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x80    // '????V??' \n\t0x00 0x00 0x02 0x00 0xDB 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xF7 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x14 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x56 0x00 0x00 0x82    // '????V??' \n\t0x00 0x00 0x00 0x00 0xB0 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_25=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x63 0x65    // '???  Sce' \n\t0x6E 0x65 0x20 0x4F 0x72 0x67 0x61 0x6E    // 'ne Organ' \n\t0x69 0x7A 0x65 0x72 0x0D 0x0A 0x53 0x68    // 'izer??Sh' \n\t0x6F 0x77 0x73 0x20 0x79 0x6F 0x75 0x20    // 'ows you ' \n\t0x74 0x68 0x65 0x20 0x66 0x69 0x72 0x73    // 'the firs' \n\t0x74 0x20 0x66 0x72 0x61 0x6D 0x65 0x20    // 't frame ' \n\t0x6F 0x66 0x20 0x65 0x61 0x63 0x68 0x20    // 'of each ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x69 0x6E    // 'scene in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x2E 0x20 0x20 0x59 0x6F    // 'vie.  Yo' \n\t0x75 0x20 0x63 0x61 0x6E 0x3A 0x0D 0x0A    // 'u can:??' \n\t0x95 0x09 0x43 0x68 0x61 0x6E 0x67 0x65    // '?Change' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x63 0x65    // ' the sce' \n\t0x6E 0x65 0x20 0x6F 0x72 0x64 0x65 0x72    // 'ne order' \n\t0x0D 0x0A 0x95 0x09 0x41 0x64 0x64 0x20    // '???Add ' \n\t0x74 0x72 0x61 0x6E 0x73 0x69 0x74 0x69    // 'transiti' \n\t0x6F 0x6E 0x73 0x20 0x62 0x65 0x74 0x77    // 'ons betw' \n\t0x65 0x65 0x6E 0x20 0x73 0x63 0x65 0x6E    // 'een scen' \n\t0x65 0x73 0x0D 0x0A 0x95 0x09 0x47 0x65    // 'es???Ge' \n\t0x74 0x20 0x72 0x69 0x64 0x20 0x6F 0x66    // 't rid of' \n\t0x20 0x61 0x6E 0x20 0x65 0x6E 0x74 0x69    // ' an enti' \n\t0x72 0x65 0x20 0x73 0x63 0x65 0x6E 0x65    // 're scene' \n\t0x0D 0x0A 0x95 0x09 0x41 0x74 0x74 0x61    // '???Atta' \n\t0x63 0x68 0x20 0x6F 0x6E 0x65 0x20 0x6D    // 'ch one m' \n\t0x6F 0x76 0x69 0x65 0x20 0x74 0x6F 0x20    // 'ovie to ' \n\t0x74 0x68 0x65 0x20 0x65 0x6E 0x64 0x20    // 'the end ' \n\t0x6F 0x66 0x20 0x61 0x6E 0x6F 0x74 0x68    // 'of anoth' \n\t0x65 0x72 0x20 0x0D 0x0A 0x54 0x6F 0x20    // 'er ??To ' \n\t0x75 0x73 0x65 0x20 0x74 0x68 0x65 0x20    // 'use the ' \n\t0x53 0x63 0x65 0x6E 0x65 0x20 0x4F 0x72    // 'Scene Or' \n\t0x67 0x61 0x6E 0x69 0x7A 0x65 0x72 0x0D    // 'ganizer?' \n\t0x0A 0x31 0x09 0x49 0x66 0x20 0x79 0x6F    // '?1?If yo' \n\t0x75 0x20 0x73 0x65 0x65 0x20 0x74 0x68    // 'u see th' \n\t0x65 0x20 0x53 0x63 0x65 0x6E 0x65 0x73    // 'e Scenes' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x20    // ' button ' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x74    // 'at the t' \n\t0x6F 0x70 0x20 0x6F 0x66 0x20 0x74 0x68    // 'op of th' \n\t0x65 0x20 0x73 0x63 0x72 0x65 0x65 0x6E    // 'e screen' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09 0x43    // 'it.??2?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x53 0x63 0x65 0x6E 0x65 0x20 0x4F    // ' Scene O' \n\t0x72 0x67 0x61 0x6E 0x69 0x7A 0x65 0x72    // 'rganizer' \n\t0x97 0x79 0x6F 0x75 0x27 0x6C 0x6C 0x20    // 'you'll ' \n\t0x66 0x69 0x6E 0x64 0x20 0x69 0x74 0x20    // 'find it ' \n\t0x75 0x6E 0x64 0x65 0x72 0x20 0x4D 0x6F    // 'under Mo' \n\t0x72 0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73    // 're Tools' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= thSceneSlider\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"thSceneSlider\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"thSceneSlider\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thSceneSlider\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x29 0x01 0x00 0x00    // '????)???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_14=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\nAG(4)\n\tITEM LONG 0x2000005\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Drag __HELP_SYMBOL( STN \"Def___Drag\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x26 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '&???????' \n\t0x01 0xFB 0x00 0x00 0x0E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xAF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x02    // '????*???' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x02    // '????4???' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x02    // '????9???' \n\t0x01 0x00 0x00 0x00 0x49 0x00 0x00 0x02    // '????I???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x02    // '????K???' \n\t0x01 0x00 0x00 0x00 0x51 0x00 0x00 0x02    // '????Q???' \n\t0x00 0x00 0x00 0x00 0x8A 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xAF 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x2A 0x00 0x00 0x03    // '???*???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x03    // '????,???' \n\t0x0A 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x03    // '????I???' \n\t0x0F 0x00 0x00 0xFD 0x4A 0x00 0x00 0x03    // '???J???' \n\t0x0A 0x00 0x00 0xFD 0x4B 0x00 0x00 0x03    // '???K???' \n\t0x00 0x00 0x00 0x00 0x84 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x85 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0x86 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x86 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x8A 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x86 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x8A 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x80    // '????I??' \n\t0x00 0x00 0x02 0x00 0x7C 0x00 0x00 0x80    // '????|??' \n\t0x00 0x00 0x03 0x00 0x84 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x84 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x63 0x65 0x6E 0x65 0x20    // '??Scene ' \n\t0x53 0x6C 0x69 0x64 0x65 0x72 0x0D 0x0A    // 'Slider??' \n\t0x01 0x0D 0x0A 0x4D 0x6F 0x76 0x65 0x20    // '???Move ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x73 0x63 0x65    // 'from sce' \n\t0x6E 0x65 0x20 0x74 0x6F 0x20 0x73 0x63    // 'ne to sc' \n\t0x65 0x6E 0x65 0x2E 0x0D 0x0A 0x54 0x6F    // 'ene.??To' \n\t0x20 0x6D 0x6F 0x76 0x65 0x20 0x66 0x72    // ' move fr' \n\t0x6F 0x6D 0x20 0x73 0x63 0x65 0x6E 0x65    // 'om scene' \n\t0x20 0x74 0x6F 0x20 0x73 0x63 0x65 0x6E    // ' to scen' \n\t0x65 0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69    // 'e???Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x46    // 'ck the F' \n\t0x69 0x72 0x73 0x74 0x2C 0x20 0x50 0x72    // 'irst, Pr' \n\t0x65 0x76 0x69 0x6F 0x75 0x73 0x2C 0x20    // 'evious, ' \n\t0x4E 0x65 0x78 0x74 0x2C 0x20 0x6F 0x72    // 'Next, or' \n\t0x20 0x4C 0x61 0x73 0x74 0x20 0x41 0x72    // ' Last Ar' \n\t0x72 0x6F 0x77 0x2E 0x0D 0x0A 0x2D 0x2D    // 'row.??--' \n\t0x6F 0x72 0x2D 0x2D 0x0D 0x0A 0x95 0x09    // 'or--???' \n\t0x44 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'Drag the' \n\t0x20 0x73 0x6C 0x69 0x64 0x65 0x72 0x20    // ' slider ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x6D    // 'in the m' \n\t0x69 0x64 0x64 0x6C 0x65 0x20 0x6F 0x66    // 'iddle of' \n\t0x20 0x74 0x68 0x65 0x20 0x62 0x61 0x72    // ' the bar' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= thNew\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"thNew\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"thNew\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thNew\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7E 0x00 0x00 0x00    // '????~???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6A, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPortsNew __HELP_SYMBOL( STN \"mbmpPortsNew\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Key___New __HELP_SYMBOL( STN \"Key___New\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipKey 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipKey\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___portfolio __HELP_SYMBOL( STN \"Def___portfolio\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6E 0x00 0x00 0x01    // '????n???' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x03    // '????$???' \n\t0x0A 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x0B 0x00 0x00 0xFD 0x3A 0x00 0x00 0x03    // '???:???' \n\t0x0F 0x00 0x00 0xFD 0x6E 0x00 0x00 0x03    // '???n???' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x04    // '????F???' \n\t0x0D 0x00 0x00 0xFE 0x4F 0x00 0x00 0x04    // '???O???' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x40    // '????F??@' \n\t0x04 0x00 0x00 0x00 0x4F 0x00 0x00 0x40    // '????O??@' \n\t0x00 0x00 0x00 0x00 0x60 0x00 0x00 0x40    // '????`??@' \n\t0x02 0x00 0x00 0x00 0x6E 0x00 0x00 0x40    // '????n??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x60 0x00 0x00 0x82    // '????`??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x60 0x00 0x00 0xC0    // '????`??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6A, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x0D 0x0A 0x53 0x74 0x61    // '?????Sta' \n\t0x72 0x74 0x20 0x61 0x20 0x6E 0x65 0x77    // 'rt a new' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x66    // ' movie f' \n\t0x72 0x6F 0x6D 0x20 0x73 0x63 0x72 0x61    // 'rom scra' \n\t0x74 0x63 0x68 0x21 0x0D 0x0A 0x54 0x6F    // 'tch!??To' \n\t0x20 0x73 0x74 0x61 0x72 0x74 0x20 0x61    // ' start a' \n\t0x20 0x6E 0x65 0x77 0x20 0x6D 0x6F 0x76    // ' new mov' \n\t0x69 0x65 0x0D 0x0A 0x31 0x09 0x43 0x6C    // 'ie??1?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x70 0x6F 0x72 0x74 0x66 0x6F 0x6C 0x69    // 'portfoli' \n\t0x6F 0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C    // 'o.??2?Cl' \n\t0x69 0x63 0x6B 0x20 0x4E 0x65 0x77 0x2E    // 'ick New.' \n\t0x0D 0x0A 0x01 0x20 0x53 0x68 0x6F 0x72    // '??? Shor' \n\t0x74 0x63 0x75 0x74 0x20 0x6B 0x65 0x79    // 'tcut key' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= thActors\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"thActors\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"thActors\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thActors\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_54=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5E, 0x0)\nAG(4)\n\tITEM LONG 0x2000007\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsBrowser __HELP_SYMBOL( STN \"mbmpActorsBrowser\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Animating __HELP_SYMBOL( STN \"Tip___Animating\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Tip___Reposition __HELP_SYMBOL( STN \"Tip___Reposition\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x25 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '%???????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x09 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4B 0x01 0x00 0x01    // '????K???' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x02    // '????'???' \n\t0x01 0x00 0x00 0x00 0x3F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x87 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x89 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xCB 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xDB 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xDC 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xF5 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xF6 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xF8 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xF9 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x24 0x01 0x00 0x02    // '????$???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x03    // '????)???' \n\t0x0A 0x00 0x00 0xFD 0x3B 0x00 0x00 0x03    // '???;???' \n\t0x00 0x00 0x00 0x00 0x8B 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x9A 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x8B 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0x9A 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x24 0x01 0x00 0x40    // '????$??@' \n\t0x08 0x00 0x00 0x00 0x33 0x01 0x00 0x40    // '????3??@' \n\t0x00 0x00 0x00 0x00 0x35 0x01 0x00 0x40    // '????5??@' \n\t0x04 0x00 0x00 0x00 0x4B 0x01 0x00 0x40    // '????K??@' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x80    // '????=??' \n\t0x00 0x00 0x02 0x00 0x0B 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x24 0x01 0x00 0x82    // '????$??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x24 0x01 0x00 0xC0    // '????$??' \n\t0x03 0x00 0x00 0x00 0x35 0x01 0x00 0xC0    // '????5??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5E, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x41 0x63 0x74    // '???  Act' \n\t0x6F 0x72 0x73 0x0D 0x0A 0x43 0x68 0x6F    // 'ors??Cho' \n\t0x6F 0x73 0x65 0x20 0x66 0x72 0x6F 0x6D    // 'ose from' \n\t0x20 0x6D 0x61 0x6E 0x79 0x20 0x63 0x68    // ' many ch' \n\t0x61 0x72 0x61 0x63 0x74 0x65 0x72 0x73    // 'aracters' \n\t0x21 0x0D 0x0A 0x54 0x6F 0x20 0x63 0x68    // '!??To ch' \n\t0x6F 0x6F 0x73 0x65 0x20 0x61 0x6E 0x20    // 'oose an ' \n\t0x61 0x63 0x74 0x6F 0x72 0x0D 0x0A 0x31    // 'actor??1' \n\t0x09 0x49 0x66 0x20 0x79 0x6F 0x75 0x20    // '?If you ' \n\t0x73 0x65 0x65 0x20 0x74 0x68 0x65 0x20    // 'see the ' \n\t0x41 0x63 0x74 0x6F 0x72 0x73 0x20 0x26    // 'Actors &' \n\t0x20 0x50 0x72 0x6F 0x70 0x73 0x20 0x62    // ' Props b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x20 0x61 0x74    // 'utton at' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x6F 0x70    // ' the top' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x73 0x63 0x72 0x65 0x65 0x6E 0x2C 0x20    // 'screen, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x69 0x74    // 'click it' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F 0x20    // '.??2?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x61 0x64 0x64    // 't to add' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2E 0x0D 0x0A 0x33 0x09 0x43 0x6C    // 'r.??3?Cl' \n\t0x69 0x63 0x6B 0x20 0x41 0x63 0x74 0x6F    // 'ick Acto' \n\t0x72 0x73 0x2E 0x0D 0x0A 0x34 0x09 0x43    // 'rs.??4?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x20 0x79    // ' actor y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x2E    // 'ou want.' \n\t0x0D 0x0A 0x35 0x09 0x43 0x6C 0x69 0x63    // '??5?Clic' \n\t0x6B 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'k where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x70 0x6C 0x61 0x63    // ' to plac' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'e the ac' \n\t0x74 0x6F 0x72 0x2E 0x0D 0x0A 0x01 0x20    // 'tor.??? ' \n\t0x52 0x65 0x70 0x6F 0x73 0x69 0x74 0x69    // 'Repositi' \n\t0x6F 0x6E 0x69 0x6E 0x67 0x0D 0x0A 0x01    // 'oning???' \n\t0x20 0x4D 0x61 0x6B 0x69 0x6E 0x67 0x20    // ' Making ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x20 0x6D 0x6F 0x76 0x65                   // ' move' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= thOpen\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"thOpen\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"thOpen\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_62=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thOpen\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_62=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_62, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipKey 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipKey\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Key___Open __HELP_SYMBOL( STN \"Key___Open\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPortfolioOpen __HELP_SYMBOL( STN \"mbmpPortfolioOpen\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___portfolio __HELP_SYMBOL( STN \"Def___portfolio\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_62=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_62, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x74 0x00 0x00 0x01    // '????t???' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x03    // '????#???' \n\t0x0A 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x0B 0x00 0x00 0xFD 0x3F 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x74 0x00 0x00 0x03    // '???t???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x04    // '????K???' \n\t0x0D 0x00 0x00 0xFE 0x54 0x00 0x00 0x04    // '???T???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x40    // '????K??@' \n\t0x04 0x00 0x00 0x00 0x54 0x00 0x00 0x40    // '????T??@' \n\t0x00 0x00 0x00 0x00 0x66 0x00 0x00 0x40    // '????f??@' \n\t0x02 0x00 0x00 0x00 0x74 0x00 0x00 0x40    // '????t??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x66 0x00 0x00 0x82    // '????f??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0x66 0x00 0x00 0xC0    // '????f??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_62=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_62, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x0D 0x0A 0x57 0x61 0x74    // '?????Wat' \n\t0x63 0x68 0x20 0x6F 0x72 0x20 0x77 0x6F    // 'ch or wo' \n\t0x72 0x6B 0x20 0x6F 0x6E 0x20 0x61 0x6E    // 'rk on an' \n\t0x20 0x6F 0x6C 0x64 0x20 0x6D 0x6F 0x76    // ' old mov' \n\t0x69 0x65 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'ie.??To ' \n\t0x6F 0x70 0x65 0x6E 0x20 0x61 0x6E 0x20    // 'open an ' \n\t0x65 0x78 0x69 0x73 0x74 0x69 0x6E 0x67    // 'existing' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x0D    // ' movie ?' \n\t0x0A 0x31 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?1?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6F 0x72    // ' the por' \n\t0x74 0x66 0x6F 0x6C 0x69 0x6F 0x2E 0x0D    // 'tfolio.?' \n\t0x0A 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?2?Click' \n\t0x20 0x4F 0x70 0x65 0x6E 0x2E 0x0D 0x0A    // ' Open.??' \n\t0x01 0x20 0x53 0x68 0x6F 0x72 0x74 0x63    // '? Shortc' \n\t0x75 0x74 0x20 0x6B 0x65 0x79              // 'ut key' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= thProps\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"thProps\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"thProps\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thProps\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\nAG(4)\n\tITEM LONG 0x2000006\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsPropBrowser __HELP_SYMBOL( STN \"mbmpActorsPropBrowser\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Tip___Reposition __HELP_SYMBOL( STN \"Tip___Reposition\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Animating __HELP_SYMBOL( STN \"Tip___Animating\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x22 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '\"???????' \n\t0x01 0xF6 0x00 0x00 0x08 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x58 0x01 0x00 0x01    // '????X???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x02    // '????=???' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0x02    // '????S???' \n\t0x00 0x00 0x00 0x00 0x9B 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x9D 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xDD 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xEC 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xED 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x08 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x09 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x33 0x01 0x00 0x02    // '????3???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x4F 0x00 0x00 0x03    // '???O???' \n\t0x00 0x00 0x00 0x00 0x9F 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xAE 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x9F 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xAE 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x33 0x01 0x00 0x40    // '????3??@' \n\t0x03 0x00 0x00 0x00 0x42 0x01 0x00 0x40    // '????B??@' \n\t0x00 0x00 0x00 0x00 0x44 0x01 0x00 0x40    // '????D??@' \n\t0x06 0x00 0x00 0x00 0x58 0x01 0x00 0x40    // '????X??@' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x80    // '????Q??' \n\t0x00 0x00 0x02 0x00 0x0A 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x33 0x01 0x00 0x82    // '????3??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x33 0x01 0x00 0xC0    // '????3??' \n\t0x05 0x00 0x00 0x00 0x44 0x01 0x00 0xC0    // '????D??' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x50 0x72 0x6F    // '???  Pro' \n\t0x70 0x73 0x0D 0x0A 0x41 0x64 0x64 0x20    // 'ps??Add ' \n\t0x70 0x72 0x6F 0x70 0x73 0x20 0x6C 0x69    // 'props li' \n\t0x6B 0x65 0x20 0x61 0x20 0x74 0x72 0x65    // 'ke a tre' \n\t0x61 0x73 0x75 0x72 0x65 0x20 0x63 0x68    // 'asure ch' \n\t0x65 0x73 0x74 0x20 0x6F 0x72 0x20 0x68    // 'est or h' \n\t0x6F 0x74 0x2D 0x61 0x69 0x72 0x20 0x62    // 'ot-air b' \n\t0x61 0x6C 0x6C 0x6F 0x6F 0x6E 0x21 0x0D    // 'alloon!?' \n\t0x0A 0x54 0x6F 0x20 0x63 0x68 0x6F 0x6F    // '?To choo' \n\t0x73 0x65 0x20 0x61 0x20 0x70 0x72 0x6F    // 'se a pro' \n\t0x70 0x0D 0x0A 0x31 0x09 0x49 0x66 0x20    // 'p??1?If ' \n\t0x79 0x6F 0x75 0x20 0x73 0x65 0x65 0x20    // 'you see ' \n\t0x74 0x68 0x65 0x20 0x41 0x63 0x74 0x6F    // 'the Acto' \n\t0x72 0x73 0x20 0x26 0x20 0x50 0x72 0x6F    // 'rs & Pro' \n\t0x70 0x73 0x20 0x62 0x75 0x74 0x74 0x6F    // 'ps butto' \n\t0x6E 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 'n at the' \n\t0x20 0x74 0x6F 0x70 0x20 0x6F 0x66 0x20    // ' top of ' \n\t0x74 0x68 0x65 0x20 0x73 0x63 0x72 0x65    // 'the scre' \n\t0x65 0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'en, clic' \n\t0x6B 0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32    // 'k it.??2' \n\t0x09 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x77    // ' movie w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x61 0x64 0x64 0x20 0x61 0x20 0x70    // ' add a p' \n\t0x72 0x6F 0x70 0x2E 0x0D 0x0A 0x33 0x09    // 'rop.??3?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x50 0x72    // 'Click Pr' \n\t0x6F 0x70 0x73 0x2E 0x0D 0x0A 0x34 0x09    // 'ops.??4?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x70 0x72 0x6F 0x70 0x20 0x79    // 'e prop y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x2E    // 'ou want.' \n\t0x0D 0x0A 0x35 0x09 0x43 0x6C 0x69 0x63    // '??5?Clic' \n\t0x6B 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'k where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x70 0x6C 0x61 0x63    // ' to plac' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x70 0x72    // 'e the pr' \n\t0x6F 0x70 0x2E 0x0D 0x0A 0x01 0x20 0x52    // 'op.??? R' \n\t0x65 0x70 0x6F 0x73 0x69 0x74 0x69 0x6F    // 'epositio' \n\t0x6E 0x69 0x6E 0x67 0x0D 0x0A 0x01 0x20    // 'ning??? ' \n\t0x4D 0x61 0x6B 0x69 0x6E 0x67 0x20 0x61    // 'Making a' \n\t0x20 0x70 0x72 0x6F 0x70 0x20 0x6D 0x6F    // ' prop mo' \n\t0x76 0x65                                  // 've' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= thLivingWords\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"th3DWords\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"th3DWords\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_36=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thLivingWords\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_36=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_32=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\nAG(4)\n\tITEM LONG 0x2000008\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsSpletters __HELP_SYMBOL( STN \"mbmpActorsSpletters\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Animating __HELP_SYMBOL( STN \"Tip___Animating\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Tip___Reposition __HELP_SYMBOL( STN \"Tip___Reposition\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_36=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x26 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '&???????' \n\t0x01 0xF6 0x00 0x00 0x0B 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3A 0x01 0x00 0x01    // '????:???' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x00 0x00 0x02    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x02    // '????&???' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x02    // '????4???' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0x02    // '????W???' \n\t0x01 0x00 0x00 0x00 0x65 0x00 0x00 0x02    // '????e???' \n\t0x00 0x00 0x00 0x00 0x67 0x00 0x00 0x02    // '????g???' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0x02    // '????p???' \n\t0x00 0x00 0x00 0x00 0xB8 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xBA 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x07 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x10 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x03    // '????Y???' \n\t0x0A 0x00 0x00 0xFD 0x6C 0x00 0x00 0x03    // '???l???' \n\t0x00 0x00 0x00 0x00 0xBC 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xCB 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xBC 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xCB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x12 0x01 0x00 0x40    // '???????@' \n\t0x05 0x00 0x00 0x00 0x21 0x01 0x00 0x40    // '????!??@' \n\t0x00 0x00 0x00 0x00 0x23 0x01 0x00 0x40    // '????#??@' \n\t0x03 0x00 0x00 0x00 0x3A 0x01 0x00 0x40    // '????:??@' \n\t0x00 0x00 0x00 0x00 0x6E 0x00 0x00 0x80    // '????n??' \n\t0x00 0x00 0x02 0x00 0x0D 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x12 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x12 0x01 0x00 0xC0    // '???????' \n\t0x06 0x00 0x00 0x00 0x23 0x01 0x00 0xC0    // '????#??' \n\t0x06 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_36=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x33 0x44 0x20    // '???  3D ' \n\t0x57 0x6F 0x72 0x64 0x73 0x0D 0x0A 0x43    // 'Words??C' \n\t0x72 0x65 0x61 0x74 0x65 0x20 0x33 0x44    // 'reate 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x73 0x20 0x74    // ' words t' \n\t0x68 0x61 0x74 0x20 0x63 0x61 0x6E 0x20    // 'hat can ' \n\t0x73 0x70 0x69 0x6E 0x20 0x61 0x6E 0x64    // 'spin and' \n\t0x20 0x6D 0x6F 0x76 0x65 0x21 0x20 0x20    // ' move!  ' \n\t0x54 0x68 0x65 0x73 0x65 0x20 0x61 0x72    // 'These ar' \n\t0x65 0x20 0x67 0x72 0x65 0x61 0x74 0x20    // 'e great ' \n\t0x66 0x6F 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'for movi' \n\t0x65 0x20 0x74 0x69 0x74 0x6C 0x65 0x73    // 'e titles' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x63 0x72    // '.??To cr' \n\t0x65 0x61 0x74 0x65 0x20 0x61 0x20 0x33    // 'eate a 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x0D 0x0A    // 'D word??' \n\t0x31 0x09 0x49 0x66 0x20 0x79 0x6F 0x75    // '1?If you' \n\t0x20 0x73 0x65 0x65 0x20 0x74 0x68 0x65    // ' see the' \n\t0x20 0x41 0x63 0x74 0x6F 0x72 0x73 0x20    // ' Actors ' \n\t0x26 0x20 0x50 0x72 0x6F 0x70 0x73 0x20    // '& Props ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x61    // 'button a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 't the to' \n\t0x70 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'p of the' \n\t0x20 0x73 0x63 0x72 0x65 0x65 0x6E 0x2C    // ' screen,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x69    // ' click i' \n\t0x74 0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F    // 't.??2?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x63 0x72    // 'nt to cr' \n\t0x65 0x61 0x74 0x65 0x20 0x61 0x20 0x33    // 'eate a 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x2E 0x0D    // 'D word.?' \n\t0x0A 0x33 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?3?Click' \n\t0x20 0x33 0x44 0x20 0x57 0x6F 0x72 0x64    // ' 3D Word' \n\t0x73 0x2E 0x0D 0x0A 0x01 0x20 0x52 0x65    // 's.??? Re' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x69 0x6E 0x67 0x0D 0x0A 0x01 0x20 0x4D    // 'ing??? M' \n\t0x61 0x6B 0x69 0x6E 0x67 0x20 0x61 0x20    // 'aking a ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x20    // '3D word ' \n\t0x6D 0x6F 0x76 0x65                        // 'move' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= thCostumeChanger\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"thCostumeChanger\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"thCostumeChanger\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_71=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thCostumeChanger\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_71=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_63=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_71, 0x0)\nAG(4)\n\tITEM LONG 0x2000005\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsCostume __HELP_SYMBOL( STN \"mbmpActorsCostume\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_71=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_71, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1B 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x00 0xF1 0x00 0x00 0x03 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x12 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x40 0x01 0x00 0x01    // '????@???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x02    // '????F???' \n\t0x01 0x00 0x00 0x00 0x4B 0x00 0x00 0x02    // '????K???' \n\t0x00 0x00 0x00 0x00 0x5B 0x00 0x00 0x02    // '????[???' \n\t0x01 0x00 0x00 0x00 0x5F 0x00 0x00 0x02    // '????_???' \n\t0x00 0x00 0x00 0x00 0xA7 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xA9 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xF3 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x03    // '????H???' \n\t0x0A 0x00 0x00 0xFD 0x5B 0x00 0x00 0x03    // '???[???' \n\t0x00 0x00 0x00 0x00 0xAB 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xBA 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xAB 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xBA 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x5D 0x00 0x00 0x80    // '????]??' \n\t0x00 0x00 0x02 0x00 0x14 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x09 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_71=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_71, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x6F 0x73    // '???  Cos' \n\t0x74 0x75 0x6D 0x65 0x20 0x43 0x68 0x61    // 'tume Cha' \n\t0x6E 0x67 0x65 0x72 0x0D 0x0A 0x43 0x68    // 'nger??Ch' \n\t0x61 0x6E 0x67 0x65 0x20 0x74 0x68 0x65    // 'ange the' \n\t0x20 0x77 0x61 0x79 0x20 0x61 0x6E 0x20    // ' way an ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2C 0x20 0x70    // 'actor, p' \n\t0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20    // 'rop, or ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x20    // '3D word ' \n\t0x6C 0x6F 0x6F 0x6B 0x73 0x21 0x20 0x20    // 'looks!  ' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x61 0x20 0x63 0x6F    // 'nge a co' \n\t0x73 0x74 0x75 0x6D 0x65 0x0D 0x0A 0x31    // 'stume??1' \n\t0x09 0x49 0x66 0x20 0x79 0x6F 0x75 0x20    // '?If you ' \n\t0x73 0x65 0x65 0x20 0x74 0x68 0x65 0x20    // 'see the ' \n\t0x41 0x63 0x74 0x6F 0x72 0x73 0x20 0x26    // 'Actors &' \n\t0x20 0x50 0x72 0x6F 0x70 0x73 0x20 0x62    // ' Props b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x20 0x61 0x74    // 'utton at' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x6F 0x70    // ' the top' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x73 0x63 0x72 0x65 0x65 0x6E 0x2C 0x20    // 'screen, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x69 0x74    // 'click it' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F 0x20    // '.??2?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B    // 't to mak' \n\t0x65 0x20 0x61 0x20 0x63 0x68 0x61 0x6E    // 'e a chan' \n\t0x67 0x65 0x2E 0x0D 0x0A 0x33 0x09 0x43    // 'ge.??3?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x43 0x6F 0x73 0x74 0x75 0x6D 0x65    // ' Costume' \n\t0x20 0x43 0x68 0x61 0x6E 0x67 0x65 0x72    // ' Changer' \n\t0x2E 0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69    // '.??4?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x61    // 'ck the a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x79    // 'D word y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x63 0x68 0x61 0x6E 0x67    // 'to chang' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= thSizeTools\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"thSizeTools\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"thSizeTools\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thSizeTools\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_38=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsShrink __HELP_SYMBOL( STN \"mbmpActorsShrink\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1C 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x0C 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xCC 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x2F 0x00 0x00 0x02    // '????/???' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x02    // '????I???' \n\t0x01 0x00 0x00 0x00 0x4B 0x00 0x00 0x02    // '????K???' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x0A 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x0F 0x00 0x00 0xFD 0x49 0x00 0x00 0x03    // '???I???' \n\t0x00 0x00 0x00 0x00 0x93 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x95 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xDC 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xCC 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x97 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA6 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x97 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xA6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x80    // '????I??' \n\t0x00 0x00 0x02 0x00 0x14 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x67 0x01 0x00 0x80    // '????g??' \n\t0x00 0x00 0x03 0x00 0x0E 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x53 0x69 0x7A 0x65    // '??? Size' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x0D 0x0A    // ' Tools??' \n\t0x52 0x65 0x73 0x69 0x7A 0x65 0x20 0x61    // 'Resize a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x2C    // 'n actor,' \n\t0x20 0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F    // ' prop, o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x73    // 'd.??To s' \n\t0x65 0x65 0x20 0x74 0x68 0x65 0x20 0x73    // 'ee the s' \n\t0x69 0x7A 0x65 0x20 0x74 0x6F 0x6F 0x6C    // 'ize tool' \n\t0x73 0x0D 0x0A 0x31 0x09 0x49 0x66 0x20    // 's??1?If ' \n\t0x79 0x6F 0x75 0x20 0x73 0x65 0x65 0x20    // 'you see ' \n\t0x74 0x68 0x65 0x20 0x41 0x63 0x74 0x6F    // 'the Acto' \n\t0x72 0x73 0x20 0x26 0x20 0x50 0x72 0x6F    // 'rs & Pro' \n\t0x70 0x73 0x20 0x62 0x75 0x74 0x74 0x6F    // 'ps butto' \n\t0x6E 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 'n at the' \n\t0x20 0x74 0x6F 0x70 0x20 0x6F 0x66 0x20    // ' top of ' \n\t0x74 0x68 0x65 0x20 0x73 0x63 0x72 0x65    // 'the scre' \n\t0x65 0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'en, clic' \n\t0x6B 0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32    // 'k it.??2' \n\t0x09 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x77    // ' movie w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x6D 0x61 0x6B 0x65 0x20 0x61 0x20    // ' make a ' \n\t0x73 0x69 0x7A 0x69 0x6E 0x67 0x20 0x63    // 'sizing c' \n\t0x68 0x61 0x6E 0x67 0x65 0x2E 0x0D 0x0A    // 'hange.??' \n\t0x33 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '3?Click ' \n\t0x53 0x69 0x7A 0x65 0x20 0x54 0x6F 0x6F    // 'Size Too' \n\t0x6C 0x73 0x2D 0x2D 0x79 0x6F 0x75 0x27    // 'ls--you'' \n\t0x6C 0x6C 0x20 0x66 0x69 0x6E 0x64 0x20    // 'll find ' \n\t0x69 0x74 0x20 0x75 0x6E 0x64 0x65 0x72    // 'it under' \n\t0x20 0x4D 0x6F 0x72 0x65 0x20 0x54 0x6F    // ' More To' \n\t0x6F 0x6C 0x73 0x2E 0x0D 0x0A 0x34 0x09    // 'ols.??4?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x74 0x6F 0x6F 0x6C 0x20 0x79    // 'e tool y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x75 0x73 0x65 0x3A 0x20    // 'to use: ' \n\t0x20 0x53 0x69 0x7A 0x65 0x20 0x45 0x76    // ' Size Ev' \n\t0x65 0x6E 0x6C 0x79 0x2C 0x20 0x53 0x71    // 'enly, Sq' \n\t0x75 0x61 0x73 0x68 0x20 0x26 0x20 0x53    // 'uash & S' \n\t0x74 0x72 0x65 0x74 0x63 0x68 0x2C 0x20    // 'tretch, ' \n\t0x6F 0x72 0x20 0x43 0x68 0x61 0x6E 0x67    // 'or Chang' \n\t0x65 0x20 0x42 0x61 0x63 0x6B 0x2E 0x0D    // 'e Back.?' \n\t0x0A 0x54 0x6F 0x20 0x66 0x69 0x6E 0x64    // '?To find' \n\t0x20 0x6F 0x75 0x74 0x20 0x6D 0x6F 0x72    // ' out mor' \n\t0x65 0x2C 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'e, move ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x63 0x75 0x72 0x73 0x6F 0x72    // 'e cursor' \n\t0x20 0x6F 0x76 0x65 0x72 0x20 0x65 0x61    // ' over ea' \n\t0x63 0x68 0x20 0x74 0x6F 0x6F 0x6C 0x2E    // 'ch tool.' \n\t0x20 0x57 0x61 0x69 0x74 0x2E 0x2E 0x2E    // ' Wait...' \n\t0x79 0x6F 0x75 0x27 0x6C 0x6C 0x20 0x67    // 'you'll g' \n\t0x65 0x74 0x20 0x61 0x20 0x64 0x65 0x73    // 'et a des' \n\t0x63 0x72 0x69 0x70 0x74 0x69 0x6F 0x6E    // 'cription' \n\t0x20 0x6F 0x66 0x20 0x65 0x61 0x63 0x68    // ' of each' \n\t0x20 0x74 0x6F 0x6F 0x6C 0x2E              // ' tool.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= thSizeEvenly\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"thSizeEvenly\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"thSizeEvenly\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thSizeEvenly\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\nAG(4)\n\tITEM LONG 0x2000008\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsShrink __HELP_SYMBOL( STN \"mbmpActorsShrink\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG Tip___Undo __HELP_SYMBOL( STN \"Tip___Undo\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Def___drag __HELP_SYMBOL( STN \"Def___drag\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Size_Tools __HELP_SYMBOL( STN \"Def___Size_Tools\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x2F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '/???????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x0E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x7C 0x01 0x00 0x01    // '????|???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x02    // '????&???' \n\t0x01 0x00 0x00 0x00 0x40 0x00 0x00 0x02    // '????@???' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x02    // '????C???' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x02    // '????F???' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x02    // '????T???' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x02    // '????X???' \n\t0x00 0x00 0x00 0x00 0xA0 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xA2 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xF2 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xF3 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x03    // '????C???' \n\t0x0A 0x00 0x00 0xFD 0x54 0x00 0x00 0x03    // '???T???' \n\t0x00 0x00 0x00 0x00 0x4C 0x01 0x00 0x03    // '????L???' \n\t0x0F 0x00 0x00 0xFD 0x53 0x01 0x00 0x03    // '???S???' \n\t0x00 0x00 0x00 0x00 0xA4 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xB3 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x04    // '???????' \n\t0x09 0x00 0x00 0xFE 0xED 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xF3 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xFD 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x4C 0x01 0x00 0x04    // '????L???' \n\t0x0D 0x00 0x00 0xFE 0x50 0x01 0x00 0x04    // '???P???' \n\t0x00 0x00 0x00 0x00 0xA4 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xB3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF3 0x00 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0xFD 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x4C 0x01 0x00 0x40    // '????L??@' \n\t0x05 0x00 0x00 0x00 0x50 0x01 0x00 0x40    // '????P??@' \n\t0x00 0x00 0x00 0x00 0x76 0x01 0x00 0x40    // '????v??@' \n\t0x03 0x00 0x00 0x00 0x7C 0x01 0x00 0x40    // '????|??@' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x80    // '????V??' \n\t0x00 0x00 0x02 0x00 0x10 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x76 0x01 0x00 0x82    // '????v??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x76 0x01 0x00 0xC0    // '????v??' \n\t0x06 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x69 0x7A    // '???  Siz' \n\t0x65 0x20 0x45 0x76 0x65 0x6E 0x6C 0x79    // 'e Evenly' \n\t0x0D 0x0A 0x45 0x76 0x65 0x6E 0x6C 0x79    // '??Evenly' \n\t0x20 0x67 0x72 0x6F 0x77 0x20 0x6F 0x72    // ' grow or' \n\t0x20 0x73 0x68 0x72 0x69 0x6E 0x6B 0x20    // ' shrink ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C 0x20    // ', prop, ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x77 0x6F    // 'or 3D wo' \n\t0x72 0x64 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'rd.??To ' \n\t0x67 0x72 0x6F 0x77 0x20 0x6F 0x72 0x20    // 'grow or ' \n\t0x73 0x68 0x72 0x69 0x6E 0x6B 0x0D 0x0A    // 'shrink??' \n\t0x31 0x09 0x49 0x66 0x20 0x79 0x6F 0x75    // '1?If you' \n\t0x20 0x73 0x65 0x65 0x20 0x74 0x68 0x65    // ' see the' \n\t0x20 0x41 0x63 0x74 0x6F 0x72 0x73 0x20    // ' Actors ' \n\t0x26 0x20 0x50 0x72 0x6F 0x70 0x73 0x20    // '& Props ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x61    // 'button a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 't the to' \n\t0x70 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'p of the' \n\t0x20 0x73 0x63 0x72 0x65 0x65 0x6E 0x2C    // ' screen,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x69    // ' click i' \n\t0x74 0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F    // 't.??2?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x6D 0x61    // 'nt to ma' \n\t0x6B 0x65 0x20 0x61 0x20 0x73 0x69 0x7A    // 'ke a siz' \n\t0x69 0x6E 0x67 0x20 0x63 0x68 0x61 0x6E    // 'ing chan' \n\t0x67 0x65 0x2E 0x0D 0x0A 0x33 0x09 0x43    // 'ge.??3?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x53 0x69 0x7A    // 'lick Siz' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2D    // 'e Tools-' \n\t0x2D 0x79 0x6F 0x75 0x27 0x6C 0x6C 0x20    // '-you'll ' \n\t0x66 0x69 0x6E 0x64 0x20 0x69 0x74 0x20    // 'find it ' \n\t0x75 0x6E 0x64 0x65 0x72 0x20 0x4D 0x6F    // 'under Mo' \n\t0x72 0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73    // 're Tools' \n\t0x2E 0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69    // '.??4?Cli' \n\t0x63 0x6B 0x20 0x53 0x69 0x7A 0x65 0x20    // 'ck Size ' \n\t0x45 0x76 0x65 0x6E 0x6C 0x79 0x2E 0x0D    // 'Evenly.?' \n\t0x0A 0x35 0x09 0x54 0x6F 0x20 0x67 0x72    // '?5?To gr' \n\t0x6F 0x77 0x20 0x73 0x6F 0x6D 0x65 0x74    // 'ow somet' \n\t0x68 0x69 0x6E 0x67 0x2C 0x20 0x64 0x72    // 'hing, dr' \n\t0x61 0x67 0x20 0x75 0x70 0x2E 0x20 0x54    // 'ag up. T' \n\t0x6F 0x20 0x73 0x68 0x72 0x69 0x6E 0x6B    // 'o shrink' \n\t0x20 0x73 0x6F 0x6D 0x65 0x74 0x68 0x69    // ' somethi' \n\t0x6E 0x67 0x2C 0x20 0x64 0x72 0x61 0x67    // 'ng, drag' \n\t0x20 0x64 0x6F 0x77 0x6E 0x2E 0x0D 0x0A    // ' down.??' \n\t0x01 0x20 0x55 0x6E 0x64 0x6F              // '? Undo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= thSquashStretch\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"thSquashStretch\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"thSquashStretch\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_46=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thSquashStretch\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_46=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xED 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_45=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\nAG(4)\n\tITEM LONG 0x2000008\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsSquash __HELP_SYMBOL( STN \"mbmpActorsSquash\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG Tip___Undo __HELP_SYMBOL( STN \"Tip___Undo\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Def___drag __HELP_SYMBOL( STN \"Def___drag\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Size_Tools __HELP_SYMBOL( STN \"Def___Size_Tools\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_46=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x2C 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // ',???????' \n\t0x01 0xF6 0x00 0x00 0x13 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xA4 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x02    // '????4???' \n\t0x01 0x00 0x00 0x00 0x5C 0x00 0x00 0x02    // '????\\???' \n\t0x00 0x00 0x00 0x00 0x75 0x00 0x00 0x02    // '????u???' \n\t0x01 0x00 0x00 0x00 0x77 0x00 0x00 0x02    // '????w???' \n\t0x00 0x00 0x00 0x00 0xBF 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xC1 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x0B 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x41 0x01 0x00 0x02    // '????A???' \n\t0x01 0x00 0x00 0x00 0x48 0x01 0x00 0x02    // '????H???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x03    // '????_???' \n\t0x0A 0x00 0x00 0xFD 0x73 0x00 0x00 0x03    // '???s???' \n\t0x00 0x00 0x00 0x00 0x72 0x01 0x00 0x03    // '????r???' \n\t0x0F 0x00 0x00 0xFD 0x7B 0x01 0x00 0x03    // '???{???' \n\t0x00 0x00 0x00 0x00 0xC3 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xD2 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x0B 0x01 0x00 0x04    // '????????' \n\t0x09 0x00 0x00 0xFE 0x0C 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x12 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x1C 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x72 0x01 0x00 0x04    // '????r???' \n\t0x0D 0x00 0x00 0xFE 0x76 0x01 0x00 0x04    // '???v???' \n\t0x00 0x00 0x00 0x00 0xC3 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xD2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x12 0x01 0x00 0x40    // '???????@' \n\t0x08 0x00 0x00 0x00 0x1C 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x72 0x01 0x00 0x40    // '????r??@' \n\t0x05 0x00 0x00 0x00 0x76 0x01 0x00 0x40    // '????v??@' \n\t0x00 0x00 0x00 0x00 0x9E 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xA4 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x75 0x00 0x00 0x80    // '????u??' \n\t0x00 0x00 0x02 0x00 0x15 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x9E 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x9E 0x01 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_46=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x71 0x75    // '???  Squ' \n\t0x61 0x73 0x68 0x20 0x26 0x20 0x53 0x74    // 'ash & St' \n\t0x72 0x65 0x74 0x63 0x68 0x0D 0x0A 0x4D    // 'retch??M' \n\t0x61 0x6B 0x65 0x20 0x61 0x6E 0x20 0x61    // 'ake an a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x73    // 'D word s' \n\t0x68 0x6F 0x72 0x74 0x65 0x72 0x20 0x61    // 'horter a' \n\t0x6E 0x64 0x20 0x77 0x69 0x64 0x65 0x72    // 'nd wider' \n\t0x20 0x6F 0x72 0x20 0x74 0x61 0x6C 0x6C    // ' or tall' \n\t0x65 0x72 0x20 0x61 0x6E 0x64 0x20 0x74    // 'er and t' \n\t0x68 0x69 0x6E 0x6E 0x65 0x72 0x2E 0x0D    // 'hinner.?' \n\t0x0A 0x54 0x6F 0x20 0x73 0x71 0x75 0x61    // '?To squa' \n\t0x73 0x68 0x20 0x6F 0x72 0x20 0x73 0x74    // 'sh or st' \n\t0x72 0x65 0x74 0x63 0x68 0x0D 0x0A 0x31    // 'retch??1' \n\t0x09 0x49 0x66 0x20 0x79 0x6F 0x75 0x20    // '?If you ' \n\t0x73 0x65 0x65 0x20 0x74 0x68 0x65 0x20    // 'see the ' \n\t0x41 0x63 0x74 0x6F 0x72 0x73 0x20 0x26    // 'Actors &' \n\t0x20 0x50 0x72 0x6F 0x70 0x73 0x20 0x62    // ' Props b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x20 0x61 0x74    // 'utton at' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x6F 0x70    // ' the top' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x73 0x63 0x72 0x65 0x65 0x6E 0x2C 0x20    // 'screen, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x69 0x74    // 'click it' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F 0x20    // '.??2?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B    // 't to mak' \n\t0x65 0x20 0x61 0x20 0x73 0x69 0x7A 0x69    // 'e a sizi' \n\t0x6E 0x67 0x20 0x63 0x68 0x61 0x6E 0x67    // 'ng chang' \n\t0x65 0x2E 0x0D 0x0A 0x33 0x09 0x43 0x6C    // 'e.??3?Cl' \n\t0x69 0x63 0x6B 0x20 0x53 0x69 0x7A 0x65    // 'ick Size' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2D 0x2D    // ' Tools--' \n\t0x79 0x6F 0x75 0x27 0x6C 0x6C 0x20 0x66    // 'you'll f' \n\t0x69 0x6E 0x64 0x20 0x69 0x74 0x20 0x75    // 'ind it u' \n\t0x6E 0x64 0x65 0x72 0x20 0x4D 0x6F 0x72    // 'nder Mor' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E    // 'e Tools.' \n\t0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69 0x63    // '??4?Clic' \n\t0x6B 0x20 0x53 0x71 0x75 0x61 0x73 0x68    // 'k Squash' \n\t0x20 0x26 0x20 0x53 0x74 0x72 0x65 0x74    // ' & Stret' \n\t0x63 0x68 0x2E 0x0D 0x0A 0x35 0x09 0x54    // 'ch.??5?T' \n\t0x6F 0x20 0x73 0x71 0x75 0x61 0x73 0x68    // 'o squash' \n\t0x20 0x73 0x6F 0x6D 0x65 0x74 0x68 0x69    // ' somethi' \n\t0x6E 0x67 0x2C 0x20 0x64 0x72 0x61 0x67    // 'ng, drag' \n\t0x20 0x64 0x6F 0x77 0x6E 0x2E 0x20 0x54    // ' down. T' \n\t0x6F 0x20 0x73 0x74 0x72 0x65 0x74 0x63    // 'o stretc' \n\t0x68 0x20 0x73 0x6F 0x6D 0x65 0x74 0x68    // 'h someth' \n\t0x69 0x6E 0x67 0x2C 0x20 0x64 0x72 0x61    // 'ing, dra' \n\t0x67 0x20 0x75 0x70 0x2E 0x20 0x0D 0x0A    // 'g up. ??' \n\t0x01 0x20 0x55 0x6E 0x64 0x6F              // '? Undo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= thChangeBackSize\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"thChangeBackSize\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"thChangeBackSize\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp0D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thChangeBackSize\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp0D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_35=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5B, 0x0)\nAG(4)\n\tITEM LONG 0x2000009\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Size_Tools __HELP_SYMBOL( STN \"Def___Size_Tools\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsNormalizeRot __HELP_SYMBOL( STN \"mbmpActorsNormalizeRot\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x25 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '%???????' \n\t0x01 0xF6 0x00 0x00 0x0E 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x79 0x01 0x00 0x01    // '????y???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x02    // '????1???' \n\t0x01 0x00 0x00 0x00 0x3A 0x00 0x00 0x02    // '????:???' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x02    // '????F???' \n\t0x01 0x00 0x00 0x00 0x4C 0x00 0x00 0x02    // '????L???' \n\t0x00 0x00 0x00 0x00 0x4E 0x00 0x00 0x02    // '????N???' \n\t0x01 0x00 0x00 0x00 0x51 0x00 0x00 0x02    // '????Q???' \n\t0x00 0x00 0x00 0x00 0x5C 0x00 0x00 0x02    // '????\\???' \n\t0x01 0x00 0x00 0x00 0x60 0x00 0x00 0x02    // '????`???' \n\t0x00 0x00 0x00 0x00 0xA8 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xAA 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xF4 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xFA 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xFB 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x2B 0x01 0x00 0x02    // '????+???' \n\t0x01 0x00 0x00 0x00 0x32 0x01 0x00 0x02    // '????2???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x4E 0x00 0x00 0x03    // '????N???' \n\t0x0A 0x00 0x00 0xFD 0x5C 0x00 0x00 0x03    // '???\\???' \n\t0x00 0x00 0x00 0x00 0xAC 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xBB 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xF4 0x00 0x00 0x04    // '???????' \n\t0x09 0x00 0x00 0xFE 0xF5 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xFB 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x05 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0xAC 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xBB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xFB 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x05 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x5E 0x00 0x00 0x80    // '????^??' \n\t0x00 0x00 0x02 0x00 0x10 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x40 0x01 0x00 0x82    // '????@??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5B, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x68 0x61    // '???  Cha' \n\t0x6E 0x67 0x65 0x20 0x42 0x61 0x63 0x6B    // 'nge Back' \n\t0x0D 0x0A 0x43 0x68 0x61 0x6E 0x67 0x65    // '??Change' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x62 0x61 0x63 0x6B    // 'ord back' \n\t0x20 0x74 0x6F 0x20 0x69 0x74 0x73 0x20    // ' to its ' \n\t0x6F 0x72 0x69 0x67 0x69 0x6E 0x61 0x6C    // 'original' \n\t0x20 0x73 0x69 0x7A 0x65 0x2E 0x0D 0x0A    // ' size.??' \n\t0x54 0x6F 0x20 0x63 0x68 0x61 0x6E 0x67    // 'To chang' \n\t0x65 0x20 0x62 0x61 0x63 0x6B 0x0D 0x0A    // 'e back??' \n\t0x31 0x09 0x49 0x66 0x20 0x79 0x6F 0x75    // '1?If you' \n\t0x20 0x73 0x65 0x65 0x20 0x74 0x68 0x65    // ' see the' \n\t0x20 0x41 0x63 0x74 0x6F 0x72 0x73 0x20    // ' Actors ' \n\t0x26 0x20 0x50 0x72 0x6F 0x70 0x73 0x20    // '& Props ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x61    // 'button a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 't the to' \n\t0x70 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'p of the' \n\t0x20 0x73 0x63 0x72 0x65 0x65 0x6E 0x2C    // ' screen,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x69    // ' click i' \n\t0x74 0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F    // 't.??2?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x6D 0x61    // 'nt to ma' \n\t0x6B 0x65 0x20 0x61 0x20 0x73 0x69 0x7A    // 'ke a siz' \n\t0x69 0x6E 0x67 0x20 0x63 0x68 0x61 0x6E    // 'ing chan' \n\t0x67 0x65 0x2E 0x0D 0x0A 0x33 0x09 0x43    // 'ge.??3?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x53 0x69 0x7A    // 'lick Siz' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E    // 'e Tools.' \n\t0x2D 0x2D 0x79 0x6F 0x75 0x27 0x6C 0x6C    // '--you'll' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x69 0x74    // ' find it' \n\t0x20 0x75 0x6E 0x64 0x65 0x72 0x20 0x4D    // ' under M' \n\t0x6F 0x72 0x65 0x20 0x54 0x6F 0x6F 0x6C    // 'ore Tool' \n\t0x73 0x2E 0x0D 0x0A 0x34 0x09 0x43 0x6C    // 's.??4?Cl' \n\t0x69 0x63 0x6B 0x20 0x43 0x68 0x61 0x6E    // 'ick Chan' \n\t0x67 0x65 0x20 0x42 0x61 0x63 0x6B 0x2E    // 'ge Back.' \n\t0x0D 0x0A 0x35 0x09 0x43 0x6C 0x69 0x63    // '??5?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x33 0x44    // 'k the 3D' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x20    // ' object ' \n\t0x77 0x68 0x6F 0x73 0x65 0x20 0x73 0x69    // 'whose si' \n\t0x7A 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 'ze you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ant to c' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x62 0x61    // 'hange ba' \n\t0x63 0x6B 0x2E                             // 'ck.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= thRotateTools\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"thRotateTools\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"thRotateTools\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp0E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thRotateTools\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp0E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x49 0x01 0x00 0x00    // '????I???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsRotateY __HELP_SYMBOL( STN \"mbmpActorsRotateY\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Tip___Change_direction __HELP_SYMBOL( STN \"Tip___Change_direction\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // ' ???????' \n\t0x01 0xF6 0x00 0x00 0x0F 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x0E 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x12 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x40 0x00 0x00 0x02    // '????@???' \n\t0x01 0x00 0x00 0x00 0x47 0x00 0x00 0x02    // '????G???' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x02    // '????I???' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x02    // '????b???' \n\t0x01 0x00 0x00 0x00 0x64 0x00 0x00 0x02    // '????d???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x49 0x00 0x00 0x03    // '???I???' \n\t0x0A 0x00 0x00 0xFD 0x60 0x00 0x00 0x03    // '???`???' \n\t0x00 0x00 0x00 0x00 0xAC 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xAE 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xF0 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xDE 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xB0 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xBF 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xB0 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xBF 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xDD 0x01 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0x0E 0x02 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x80    // '????b??' \n\t0x00 0x00 0x02 0x00 0x75 0x01 0x00 0x80    // '????u??' \n\t0x00 0x00 0x03 0x00 0xDD 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xDD 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0xDD 0x01 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x52 0x6F 0x74    // '???  Rot' \n\t0x61 0x74 0x65 0x20 0x54 0x6F 0x6F 0x6C    // 'ate Tool' \n\t0x73 0x0D 0x0A 0x43 0x68 0x61 0x6E 0x67    // 's??Chang' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x64 0x69    // 'e the di' \n\t0x72 0x65 0x63 0x74 0x69 0x6F 0x6E 0x20    // 'rection ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C 0x20    // ', prop, ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x77 0x6F    // 'or 3D wo' \n\t0x72 0x64 0x20 0x66 0x61 0x63 0x65 0x73    // 'rd faces' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x73 0x65    // '.??To se' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x72 0x6F    // 'e the ro' \n\t0x74 0x61 0x74 0x65 0x20 0x74 0x6F 0x6F    // 'tate too' \n\t0x6C 0x73 0x0D 0x0A 0x31 0x09 0x49 0x66    // 'ls??1?If' \n\t0x20 0x79 0x6F 0x75 0x20 0x73 0x65 0x65    // ' you see' \n\t0x20 0x74 0x68 0x65 0x20 0x41 0x63 0x74    // ' the Act' \n\t0x6F 0x72 0x73 0x20 0x26 0x20 0x50 0x72    // 'ors & Pr' \n\t0x6F 0x70 0x73 0x20 0x62 0x75 0x74 0x74    // 'ops butt' \n\t0x6F 0x6E 0x20 0x61 0x74 0x20 0x74 0x68    // 'on at th' \n\t0x65 0x20 0x74 0x6F 0x70 0x20 0x6F 0x66    // 'e top of' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x63 0x72    // ' the scr' \n\t0x65 0x65 0x6E 0x2C 0x20 0x63 0x6C 0x69    // 'een, cli' \n\t0x63 0x6B 0x20 0x69 0x74 0x2E 0x0D 0x0A    // 'ck it.??' \n\t0x32 0x09 0x47 0x6F 0x20 0x74 0x6F 0x20    // '2?Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'e in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'r movie ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20 0x61    // 'o make a' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x2E    // ' change.' \n\t0x0D 0x0A 0x33 0x09 0x43 0x6C 0x69 0x63    // '??3?Clic' \n\t0x6B 0x20 0x52 0x6F 0x74 0x61 0x74 0x65    // 'k Rotate' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E 0x0D    // ' Tools.?' \n\t0x0A 0x34 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?4?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x6F 0x6F    // ' the too' \n\t0x6C 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'l you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x75 0x73    // 'nt to us' \n\t0x65 0x3A 0x20 0x20 0x54 0x69 0x70 0x20    // 'e:  Tip ' \n\t0x46 0x6F 0x72 0x77 0x61 0x72 0x64 0x20    // 'Forward ' \n\t0x6F 0x72 0x20 0x42 0x61 0x63 0x6B 0x2C    // 'or Back,' \n\t0x20 0x54 0x75 0x72 0x6E 0x20 0x4C 0x65    // ' Turn Le' \n\t0x66 0x74 0x20 0x6F 0x72 0x20 0x52 0x69    // 'ft or Ri' \n\t0x67 0x68 0x74 0x2C 0x20 0x54 0x69 0x70    // 'ght, Tip' \n\t0x20 0x74 0x6F 0x20 0x4F 0x6E 0x65 0x20    // ' to One ' \n\t0x53 0x69 0x64 0x65 0x2C 0x20 0x6F 0x72    // 'Side, or' \n\t0x20 0x43 0x68 0x61 0x6E 0x67 0x65 0x20    // ' Change ' \n\t0x42 0x61 0x63 0x6B 0x2E 0x0D 0x0A 0x54    // 'Back.??T' \n\t0x6F 0x20 0x66 0x69 0x6E 0x64 0x20 0x6F    // 'o find o' \n\t0x75 0x74 0x20 0x6D 0x6F 0x72 0x65 0x2C    // 'ut more,' \n\t0x20 0x6D 0x6F 0x76 0x65 0x20 0x74 0x68    // ' move th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x63 0x75 0x72 0x73 0x6F 0x72 0x20 0x6F    // 'cursor o' \n\t0x76 0x65 0x72 0x20 0x65 0x61 0x63 0x68    // 'ver each' \n\t0x20 0x74 0x6F 0x6F 0x6C 0x2E 0x20 0x20    // ' tool.  ' \n\t0x57 0x61 0x69 0x74 0x2E 0x2E 0x2E 0x79    // 'Wait...y' \n\t0x6F 0x75 0x27 0x6C 0x6C 0x20 0x67 0x65    // 'ou'll ge' \n\t0x74 0x20 0x61 0x20 0x64 0x65 0x73 0x63    // 't a desc' \n\t0x72 0x69 0x70 0x74 0x69 0x6F 0x6E 0x20    // 'ription ' \n\t0x6F 0x66 0x20 0x65 0x61 0x63 0x68 0x20    // 'of each ' \n\t0x74 0x6F 0x6F 0x6C 0x2E 0x0D 0x0A 0x01    // 'tool.???' \n\t0x09 0x4D 0x61 0x69 0x6E 0x74 0x61 0x69    // '?Maintai' \n\t0x6E 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ning the' \n\t0x20 0x72 0x6F 0x74 0x61 0x74 0x69 0x6F    // ' rotatio' \n\t0x6E 0x20 0x77 0x68 0x65 0x6E 0x20 0x61    // 'n when a' \n\t0x20 0x33 0x44 0x20 0x6F 0x62 0x6A 0x65    // ' 3D obje' \n\t0x63 0x74 0x20 0x6D 0x6F 0x76 0x65 0x73    // 'ct moves' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= thTurnLeftRight\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"thTurnLeftRight\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"thTurnLeftRight\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp0F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thTurnLeftRight\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp0F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0F 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_49=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4B, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsRotateY __HELP_SYMBOL( STN \"mbmpActorsRotateY\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Def___drag __HELP_SYMBOL( STN \"Def___drag\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Tip___Change_direction __HELP_SYMBOL( STN \"Tip___Change_direction\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Rotate_Tools __HELP_SYMBOL( STN \"Def___Rotate_Tools\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x23 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '#???????' \n\t0x01 0xF6 0x00 0x00 0x15 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD3 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x02    // '????6???' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x02    // '????7???' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x02    // '????E???' \n\t0x00 0x00 0x00 0x00 0x5E 0x00 0x00 0x02    // '????^???' \n\t0x01 0x00 0x00 0x00 0x60 0x00 0x00 0x02    // '????`???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x17 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x45 0x00 0x00 0x03    // '???E???' \n\t0x00 0x00 0x00 0x00 0x47 0x00 0x00 0x03    // '????G???' \n\t0x0A 0x00 0x00 0xFD 0x5C 0x00 0x00 0x03    // '???\\???' \n\t0x00 0x00 0x00 0x00 0xA2 0x01 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xA3 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xAC 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xBB 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xF4 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x00 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x60 0x01 0x00 0x04    // '????`???' \n\t0x0D 0x00 0x00 0xFE 0x64 0x01 0x00 0x04    // '???d???' \n\t0x00 0x00 0x00 0x00 0xAC 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xBB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF4 0x00 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0x00 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x60 0x01 0x00 0x40    // '????`??@' \n\t0x03 0x00 0x00 0x00 0x64 0x01 0x00 0x40    // '????d??@' \n\t0x00 0x00 0x00 0x00 0xA2 0x01 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xD3 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x5E 0x00 0x00 0x80    // '????^??' \n\t0x00 0x00 0x02 0x00 0x17 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xA2 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0xA2 0x01 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4B, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x54 0x75 0x72    // '???  Tur' \n\t0x6E 0x20 0x4C 0x65 0x66 0x74 0x20 0x6F    // 'n Left o' \n\t0x72 0x20 0x52 0x69 0x67 0x68 0x74 0x0D    // 'r Right?' \n\t0x0A 0x54 0x75 0x72 0x6E 0x20 0x61 0x6E    // '?Turn an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x6C 0x65 0x66 0x74 0x20 0x6F 0x72    // ' left or' \n\t0x20 0x72 0x69 0x67 0x68 0x74 0x2E 0x0D    // ' right.?' \n\t0x0A 0x54 0x6F 0x20 0x74 0x75 0x72 0x6E    // '?To turn' \n\t0x20 0x6C 0x65 0x66 0x74 0x20 0x6F 0x72    // ' left or' \n\t0x20 0x72 0x69 0x67 0x68 0x74 0x0D 0x0A    // ' right??' \n\t0x31 0x09 0x49 0x66 0x20 0x79 0x6F 0x75    // '1?If you' \n\t0x20 0x73 0x65 0x65 0x20 0x74 0x68 0x65    // ' see the' \n\t0x20 0x41 0x63 0x74 0x6F 0x72 0x73 0x20    // ' Actors ' \n\t0x26 0x20 0x50 0x72 0x6F 0x70 0x73 0x20    // '& Props ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x61    // 'button a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 't the to' \n\t0x70 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'p of the' \n\t0x20 0x73 0x63 0x72 0x65 0x65 0x6E 0x2C    // ' screen,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x69    // ' click i' \n\t0x74 0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F    // 't.??2?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x6D 0x61    // 'nt to ma' \n\t0x6B 0x65 0x20 0x61 0x20 0x63 0x68 0x61    // 'ke a cha' \n\t0x6E 0x67 0x65 0x2E 0x0D 0x0A 0x33 0x09    // 'nge.??3?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x52 0x6F    // 'Click Ro' \n\t0x74 0x61 0x74 0x65 0x20 0x54 0x6F 0x6F    // 'tate Too' \n\t0x6C 0x73 0x2E 0x0D 0x0A 0x34 0x09 0x43    // 'ls.??4?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x54 0x75 0x72    // 'lick Tur' \n\t0x6E 0x20 0x4C 0x65 0x66 0x74 0x20 0x6F    // 'n Left o' \n\t0x72 0x20 0x52 0x69 0x67 0x68 0x74 0x2E    // 'r Right.' \n\t0x0D 0x0A 0x35 0x09 0x4D 0x6F 0x76 0x65    // '??5?Move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x63 0x75 0x72 0x73 0x6F    // 'se curso' \n\t0x72 0x20 0x6F 0x76 0x65 0x72 0x20 0x74    // 'r over t' \n\t0x68 0x65 0x20 0x33 0x44 0x20 0x6F 0x62    // 'he 3D ob' \n\t0x6A 0x65 0x63 0x74 0x20 0x79 0x6F 0x75    // 'ject you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x74 0x75 0x72 0x6E 0x2E 0x0D 0x0A    // ' turn.??' \n\t0x36 0x09 0x44 0x72 0x61 0x67 0x20 0x74    // '6?Drag t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x74    // ' until t' \n\t0x68 0x65 0x20 0x33 0x44 0x20 0x6F 0x62    // 'he 3D ob' \n\t0x6A 0x65 0x63 0x74 0x20 0x66 0x61 0x63    // 'ject fac' \n\t0x65 0x73 0x20 0x74 0x68 0x65 0x20 0x64    // 'es the d' \n\t0x69 0x72 0x65 0x63 0x74 0x69 0x6F 0x6E    // 'irection' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x2E 0x0D 0x0A 0x01 0x09 0x4D 0x61    // 't.????Ma' \n\t0x69 0x6E 0x74 0x61 0x69 0x6E 0x69 0x6E    // 'intainin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x72 0x6F    // 'g the ro' \n\t0x74 0x61 0x74 0x69 0x6F 0x6E 0x20 0x77    // 'tation w' \n\t0x68 0x65 0x6E 0x20 0x61 0x20 0x33 0x44    // 'hen a 3D' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x20    // ' object ' \n\t0x6D 0x6F 0x76 0x65 0x73                   // 'moves' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= thTipForwardsBackwards\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"thTipForwardBack\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"thTipForwardBack\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolTips10\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thTipForwardsBackwards\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolTips10\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x1C 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsRotateX __HELP_SYMBOL( STN \"mbmpActorsRotateX\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Def___Drag __HELP_SYMBOL( STN \"Def___Drag\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Tip___Change_direction __HELP_SYMBOL( STN \"Tip___Change_direction\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Rotate_Tools __HELP_SYMBOL( STN \"Def___Rotate_Tools\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x22 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '\"???????' \n\t0x01 0xF6 0x00 0x00 0x16 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDD 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x02    // '????6???' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x02    // '????7???' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x02    // '????b???' \n\t0x01 0x00 0x00 0x00 0x64 0x00 0x00 0x02    // '????d???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x18 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x03    // '????I???' \n\t0x0A 0x00 0x00 0xFD 0x60 0x00 0x00 0x03    // '???`???' \n\t0x00 0x00 0x00 0x00 0xAC 0x01 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xAE 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xB0 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xBF 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xF8 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x04 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x64 0x01 0x00 0x04    // '????d???' \n\t0x0D 0x00 0x00 0xFE 0x68 0x01 0x00 0x04    // '???h???' \n\t0x00 0x00 0x00 0x00 0xB0 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xBF 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF8 0x00 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0x04 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x64 0x01 0x00 0x40    // '????d??@' \n\t0x03 0x00 0x00 0x00 0x68 0x01 0x00 0x40    // '????h??@' \n\t0x00 0x00 0x00 0x00 0xAC 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xDD 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x80    // '????b??' \n\t0x00 0x00 0x02 0x00 0x18 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xAC 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0xAC 0x01 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x54 0x69 0x70    // '???  Tip' \n\t0x20 0x46 0x6F 0x72 0x77 0x61 0x72 0x64    // ' Forward' \n\t0x20 0x6F 0x72 0x20 0x42 0x61 0x63 0x6B    // ' or Back' \n\t0x0D 0x0A 0x54 0x69 0x70 0x20 0x61 0x6E    // '??Tip an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x66 0x6F 0x72 0x77 0x61 0x72 0x64    // ' forward' \n\t0x20 0x6F 0x72 0x20 0x62 0x61 0x63 0x6B    // ' or back' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x74 0x69    // '.??To ti' \n\t0x70 0x20 0x66 0x6F 0x72 0x77 0x61 0x72    // 'p forwar' \n\t0x64 0x73 0x20 0x6F 0x72 0x20 0x62 0x61    // 'ds or ba' \n\t0x63 0x6B 0x0D 0x0A 0x31 0x09 0x49 0x66    // 'ck??1?If' \n\t0x20 0x79 0x6F 0x75 0x20 0x73 0x65 0x65    // ' you see' \n\t0x20 0x74 0x68 0x65 0x20 0x41 0x63 0x74    // ' the Act' \n\t0x6F 0x72 0x73 0x20 0x26 0x20 0x50 0x72    // 'ors & Pr' \n\t0x6F 0x70 0x73 0x20 0x62 0x75 0x74 0x74    // 'ops butt' \n\t0x6F 0x6E 0x20 0x61 0x74 0x20 0x74 0x68    // 'on at th' \n\t0x65 0x20 0x74 0x6F 0x70 0x20 0x6F 0x66    // 'e top of' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x63 0x72    // ' the scr' \n\t0x65 0x65 0x6E 0x2C 0x20 0x63 0x6C 0x69    // 'een, cli' \n\t0x63 0x6B 0x20 0x69 0x74 0x2E 0x0D 0x0A    // 'ck it.??' \n\t0x32 0x09 0x47 0x6F 0x20 0x74 0x6F 0x20    // '2?Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'e in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'r movie ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20 0x61    // 'o make a' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x2E    // ' change.' \n\t0x0D 0x0A 0x33 0x09 0x43 0x6C 0x69 0x63    // '??3?Clic' \n\t0x6B 0x20 0x52 0x6F 0x74 0x61 0x74 0x65    // 'k Rotate' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E 0x0D    // ' Tools.?' \n\t0x0A 0x34 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?4?Click' \n\t0x20 0x54 0x69 0x70 0x20 0x46 0x6F 0x72    // ' Tip For' \n\t0x77 0x61 0x72 0x64 0x20 0x6F 0x72 0x20    // 'ward or ' \n\t0x42 0x61 0x63 0x6B 0x2E 0x0D 0x0A 0x35    // 'Back.??5' \n\t0x09 0x4D 0x6F 0x76 0x65 0x20 0x74 0x68    // '?Move th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x63 0x75 0x72 0x73 0x6F 0x72 0x20 0x6F    // 'cursor o' \n\t0x76 0x65 0x72 0x20 0x74 0x68 0x65 0x20    // 'ver the ' \n\t0x33 0x44 0x20 0x6F 0x62 0x6A 0x65 0x63    // '3D objec' \n\t0x74 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 't you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x74 0x69    // 'nt to ti' \n\t0x70 0x2E 0x0D 0x0A 0x36 0x09 0x44 0x72    // 'p.??6?Dr' \n\t0x61 0x67 0x20 0x74 0x68 0x65 0x20 0x6D    // 'ag the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x75 0x6E 0x74    // 'ouse unt' \n\t0x69 0x6C 0x20 0x74 0x68 0x65 0x20 0x61    // 'il the a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x69    // 'D word i' \n\t0x73 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 's where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x69 0x74 0x2E 0x0D 0x0A 0x01 0x20    // ' it.??? ' \n\t0x4D 0x61 0x69 0x6E 0x74 0x61 0x69 0x6E    // 'Maintain' \n\t0x69 0x6E 0x67 0x20 0x74 0x68 0x65 0x20    // 'ing the ' \n\t0x72 0x6F 0x74 0x61 0x74 0x69 0x6F 0x6E    // 'rotation' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x61 0x20    // ' when a ' \n\t0x33 0x44 0x20 0x6F 0x62 0x6A 0x65 0x63    // '3D objec' \n\t0x74 0x20 0x6D 0x6F 0x76 0x65 0x73         // 't moves' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= thTipSideToSide\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"thTipToOneSide\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"thTipToOneSide\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp11\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thTipSideToSide\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp11\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x05 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsRotateZ __HELP_SYMBOL( STN \"mbmpActorsRotateZ\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Tip___Change_direction __HELP_SYMBOL( STN \"Tip___Change_direction\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Def___Drag __HELP_SYMBOL( STN \"Def___Drag\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Rotate_Tools __HELP_SYMBOL( STN \"Def___Rotate_Tools\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x24 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '$???????' \n\t0x00 0xF1 0x00 0x00 0x03 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x12 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xCC 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x07 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x12 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x02    // '????2???' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x02    // '????3???' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x02    // '????V???' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x02    // '????X???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x03    // '????B???' \n\t0x0A 0x00 0x00 0xFD 0x54 0x00 0x00 0x03    // '???T???' \n\t0x00 0x00 0x00 0x00 0x9B 0x01 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x9C 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xA4 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xB3 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xF8 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x53 0x01 0x00 0x04    // '????S???' \n\t0x0D 0x00 0x00 0xFE 0x57 0x01 0x00 0x04    // '???W???' \n\t0x00 0x00 0x00 0x00 0xA4 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xB3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0xF8 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x53 0x01 0x00 0x40    // '????S??@' \n\t0x04 0x00 0x00 0x00 0x57 0x01 0x00 0x40    // '????W??@' \n\t0x00 0x00 0x00 0x00 0x9B 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xCC 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x80    // '????V??' \n\t0x00 0x00 0x02 0x00 0x14 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x9B 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x9B 0x01 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x54 0x69 0x70    // '???  Tip' \n\t0x20 0x74 0x6F 0x20 0x4F 0x6E 0x65 0x20    // ' to One ' \n\t0x53 0x69 0x64 0x65 0x0D 0x0A 0x54 0x69    // 'Side??Ti' \n\t0x70 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'p an act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x73 0x69 0x64    // 'word sid' \n\t0x65 0x20 0x74 0x6F 0x20 0x73 0x69 0x64    // 'e to sid' \n\t0x65 0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x74    // 'e.??To t' \n\t0x69 0x70 0x20 0x74 0x6F 0x20 0x6F 0x6E    // 'ip to on' \n\t0x65 0x20 0x73 0x69 0x64 0x65 0x0D 0x0A    // 'e side??' \n\t0x31 0x09 0x49 0x66 0x20 0x79 0x6F 0x75    // '1?If you' \n\t0x20 0x73 0x65 0x65 0x20 0x74 0x68 0x65    // ' see the' \n\t0x20 0x41 0x63 0x74 0x6F 0x72 0x73 0x20    // ' Actors ' \n\t0x26 0x20 0x50 0x72 0x6F 0x70 0x73 0x20    // '& Props ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x61    // 'button a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 't the to' \n\t0x70 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'p of the' \n\t0x20 0x73 0x63 0x72 0x65 0x65 0x6E 0x2C    // ' screen,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x69    // ' click i' \n\t0x74 0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F    // 't.??2?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x6D 0x61    // 'nt to ma' \n\t0x6B 0x65 0x20 0x61 0x20 0x63 0x68 0x61    // 'ke a cha' \n\t0x6E 0x67 0x65 0x2E 0x0D 0x0A 0x33 0x09    // 'nge.??3?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x52 0x6F    // 'Click Ro' \n\t0x74 0x61 0x74 0x65 0x20 0x54 0x6F 0x6F    // 'tate Too' \n\t0x6C 0x73 0x2E 0x0D 0x0A 0x34 0x09 0x43    // 'ls.??4?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x54 0x69 0x70    // 'lick Tip' \n\t0x20 0x74 0x6F 0x20 0x4F 0x6E 0x65 0x20    // ' to One ' \n\t0x53 0x69 0x64 0x65 0x0D 0x0A 0x35 0x09    // 'Side??5?' \n\t0x4D 0x6F 0x76 0x65 0x20 0x74 0x68 0x65    // 'Move the' \n\t0x20 0x6D 0x6F 0x75 0x73 0x65 0x20 0x63    // ' mouse c' \n\t0x75 0x72 0x73 0x6F 0x72 0x20 0x6F 0x76    // 'ursor ov' \n\t0x65 0x72 0x20 0x74 0x68 0x65 0x20 0x33    // 'er the 3' \n\t0x44 0x20 0x6F 0x62 0x6A 0x65 0x63 0x74    // 'D object' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x74 0x69 0x70    // 't to tip' \n\t0x2E 0x0D 0x0A 0x36 0x09 0x44 0x72 0x61    // '.??6?Dra' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'g the mo' \n\t0x75 0x73 0x65 0x20 0x75 0x6E 0x74 0x69    // 'use unti' \n\t0x6C 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'l the ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x69 0x73    // ' word is' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x69 0x74 0x2E 0x0D 0x0A 0x01 0x20 0x4D    // 'it.??? M' \n\t0x61 0x69 0x6E 0x74 0x61 0x69 0x6E 0x69    // 'aintaini' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x72    // 'ng the r' \n\t0x6F 0x74 0x61 0x74 0x69 0x6F 0x6E 0x20    // 'otation ' \n\t0x77 0x68 0x65 0x6E 0x20 0x61 0x20 0x33    // 'when a 3' \n\t0x44 0x20 0x6F 0x62 0x6A 0x65 0x63 0x74    // 'D object' \n\t0x20 0x6D 0x6F 0x76 0x65 0x73              // ' moves' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= thChangeBackRotate\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"thChangeBackRotate\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"thChangeBackRotate\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp12\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_51=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thChangeBackRotate\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp12\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_51=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_18=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_51, 0x0)\nAG(4)\n\tITEM LONG 0x2000005\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsTransformNorm __HELP_SYMBOL( STN \"mbmpActorsTransformNorm\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Rotate_Tools __HELP_SYMBOL( STN \"Def___Rotate_Tools\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_51=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_51, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1E 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x0D 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x59 0x01 0x00 0x01    // '????Y???' \n\t0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x02    // '????0???' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0x02    // '????S???' \n\t0x00 0x00 0x00 0x00 0x60 0x00 0x00 0x02    // '????`???' \n\t0x01 0x00 0x00 0x00 0x63 0x00 0x00 0x02    // '????c???' \n\t0x00 0x00 0x00 0x00 0x6E 0x00 0x00 0x02    // '????n???' \n\t0x01 0x00 0x00 0x00 0x72 0x00 0x00 0x02    // '????r???' \n\t0x00 0x00 0x00 0x00 0xBA 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xBC 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x02 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x60 0x00 0x00 0x03    // '????`???' \n\t0x0A 0x00 0x00 0xFD 0x6E 0x00 0x00 0x03    // '???n???' \n\t0x00 0x00 0x00 0x00 0xBE 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xCD 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x12 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0xBE 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xCD 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x06 0x01 0x00 0x40    // '???????@' \n\t0x05 0x00 0x00 0x00 0x12 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x70 0x00 0x00 0x80    // '????p??' \n\t0x00 0x00 0x02 0x00 0x0F 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2B 0x01 0x00 0x82    // '????+??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_51=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_51, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x43 0x68 0x61 0x6E    // '??? Chan' \n\t0x67 0x65 0x20 0x42 0x61 0x63 0x6B 0x0D    // 'ge Back?' \n\t0x0A 0x43 0x68 0x61 0x6E 0x67 0x65 0x20    // '?Change ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C 0x20    // ', prop, ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x77 0x6F    // 'or 3D wo' \n\t0x72 0x64 0x20 0x62 0x61 0x63 0x6B 0x20    // 'rd back ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x77    // 'to the w' \n\t0x61 0x79 0x20 0x69 0x74 0x20 0x77 0x61    // 'ay it wa' \n\t0x73 0x20 0x62 0x65 0x66 0x6F 0x72 0x65    // 's before' \n\t0x20 0x79 0x6F 0x75 0x20 0x72 0x6F 0x74    // ' you rot' \n\t0x61 0x74 0x65 0x64 0x20 0x69 0x74 0x2E    // 'ated it.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x63 0x68 0x61    // '??To cha' \n\t0x6E 0x67 0x65 0x20 0x62 0x61 0x63 0x6B    // 'nge back' \n\t0x0D 0x0A 0x31 0x09 0x49 0x66 0x20 0x79    // '??1?If y' \n\t0x6F 0x75 0x20 0x73 0x65 0x65 0x20 0x74    // 'ou see t' \n\t0x68 0x65 0x20 0x41 0x63 0x74 0x6F 0x72    // 'he Actor' \n\t0x73 0x20 0x26 0x20 0x50 0x72 0x6F 0x70    // 's & Prop' \n\t0x73 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 's button' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x74 0x6F 0x70 0x20 0x6F 0x66 0x20 0x74    // 'top of t' \n\t0x68 0x65 0x20 0x73 0x63 0x72 0x65 0x65    // 'he scree' \n\t0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'n, click' \n\t0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09    // ' it.??2?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x6D 0x61 0x6B 0x65 0x20 0x61 0x20 0x63    // 'make a c' \n\t0x68 0x61 0x6E 0x67 0x65 0x2E 0x0D 0x0A    // 'hange.??' \n\t0x33 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '3?Click ' \n\t0x52 0x6F 0x74 0x61 0x74 0x65 0x20 0x54    // 'Rotate T' \n\t0x6F 0x6F 0x6C 0x73 0x2E 0x0D 0x0A 0x34    // 'ools.??4' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x43    // '?Click C' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x42 0x61    // 'hange Ba' \n\t0x63 0x6B 0x2E 0x0D 0x0A 0x35 0x09 0x43    // 'ck.??5?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x33 0x44 0x20 0x6F 0x62 0x6A 0x65    // ' 3D obje' \n\t0x63 0x74 0x20 0x79 0x6F 0x75 0x20 0x77    // 'ct you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ant to c' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x62 0x61    // 'hange ba' \n\t0x63 0x6B 0x2E                             // 'ck.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= thSynchronize\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"thSynchronize\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"thSynchronize\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp13\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_65=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thSynchronize\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp13\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_65=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x09 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_59=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_65, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsSooner __HELP_SYMBOL( STN \"mbmpActorsSooner\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcHowToActors93 __HELP_SYMBOL( STN \"ktpcHowToActors93\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Def___Play_button __HELP_SYMBOL( STN \"Def___Play_button\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___rewind __HELP_SYMBOL( STN \"Def___rewind\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_65=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_65, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x23 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '#???????' \n\t0x01 0xF6 0x00 0x00 0x0E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x02 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0x02    // '????W???' \n\t0x01 0x00 0x00 0x00 0x5A 0x00 0x00 0x02    // '????Z???' \n\t0x00 0x00 0x00 0x00 0x67 0x00 0x00 0x02    // '????g???' \n\t0x01 0x00 0x00 0x00 0x69 0x00 0x00 0x02    // '????i???' \n\t0x00 0x00 0x00 0x00 0x38 0x01 0x00 0x02    // '????8???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0x03    // '????W???' \n\t0x0A 0x00 0x00 0xFD 0x65 0x00 0x00 0x03    // '???e???' \n\t0x00 0x00 0x00 0x00 0xB3 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x38 0x01 0x00 0x03    // '????8???' \n\t0x00 0x00 0x00 0x00 0xB5 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xC4 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x38 0x01 0x00 0x04    // '????8???' \n\t0x00 0x00 0x00 0x00 0xFE 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x04 0x02 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x1D 0x02 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x28 0x02 0x00 0x04    // '???(???' \n\t0x00 0x00 0x00 0x00 0xB5 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xC4 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x38 0x01 0x00 0x40    // '????8??@' \n\t0x00 0x00 0x00 0x00 0xFE 0x01 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0x04 0x02 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x1D 0x02 0x00 0x40    // '???????@' \n\t0x05 0x00 0x00 0x00 0x28 0x02 0x00 0x40    // '????(??@' \n\t0x00 0x00 0x00 0x00 0x67 0x00 0x00 0x80    // '????g??' \n\t0x00 0x00 0x02 0x00 0x91 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x10 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE5 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_65=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_65, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x79 0x6E    // '???  Syn' \n\t0x63 0x68 0x72 0x6F 0x6E 0x69 0x7A 0x65    // 'chronize' \n\t0x0D 0x0A 0x43 0x68 0x61 0x6E 0x67 0x65    // '??Change' \n\t0x20 0x77 0x68 0x65 0x6E 0x20 0x61 0x6E    // ' when an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x67 0x65 0x74 0x73 0x20 0x74 0x6F    // ' gets to' \n\t0x20 0x61 0x20 0x70 0x61 0x72 0x74 0x69    // ' a parti' \n\t0x63 0x75 0x6C 0x61 0x72 0x20 0x6C 0x6F    // 'cular lo' \n\t0x63 0x61 0x74 0x69 0x6F 0x6E 0x2E 0x0D    // 'cation.?' \n\t0x0A 0x54 0x6F 0x20 0x73 0x79 0x6E 0x63    // '?To sync' \n\t0x68 0x72 0x6F 0x6E 0x69 0x7A 0x65 0x0D    // 'hronize?' \n\t0x0A 0x31 0x09 0x49 0x66 0x20 0x79 0x6F    // '?1?If yo' \n\t0x75 0x20 0x73 0x65 0x65 0x20 0x74 0x68    // 'u see th' \n\t0x65 0x20 0x41 0x63 0x74 0x6F 0x72 0x73    // 'e Actors' \n\t0x20 0x26 0x20 0x50 0x72 0x6F 0x70 0x73    // ' & Props' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x20    // ' button ' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x74    // 'at the t' \n\t0x6F 0x70 0x20 0x6F 0x66 0x20 0x74 0x68    // 'op of th' \n\t0x65 0x20 0x73 0x63 0x72 0x65 0x65 0x6E    // 'e screen' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09 0x47    // 'it.??2?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x6F 0x6E 0x65 0x20 0x33    // 're one 3' \n\t0x44 0x20 0x6F 0x62 0x6A 0x65 0x63 0x74    // 'D object' \n\t0x20 0x61 0x70 0x70 0x65 0x61 0x72 0x73    // ' appears' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x72 0x69 0x67 0x68 0x74 0x20 0x73 0x70    // 'right sp' \n\t0x6F 0x74 0x2E 0x0D 0x0A 0x33 0x09 0x43    // 'ot.??3?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x53 0x79 0x6E    // 'lick Syn' \n\t0x63 0x68 0x72 0x6F 0x6E 0x69 0x7A 0x65    // 'chronize' \n\t0x2D 0x2D 0x79 0x6F 0x75 0x27 0x6C 0x6C    // '--you'll' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x69 0x74    // ' find it' \n\t0x20 0x75 0x6E 0x64 0x65 0x72 0x20 0x4D    // ' under M' \n\t0x6F 0x72 0x65 0x20 0x54 0x6F 0x6F 0x6C    // 'ore Tool' \n\t0x73 0x2E 0x0D 0x0A 0x34 0x09 0x43 0x6C    // 's.??4?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x33 0x44 0x20 0x6F 0x62 0x6A 0x65 0x63    // '3D objec' \n\t0x74 0x20 0x74 0x68 0x61 0x74 0x20 0x69    // 't that i' \n\t0x73 0x20 0x61 0x6C 0x72 0x65 0x61 0x64    // 's alread' \n\t0x79 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'y in the' \n\t0x20 0x72 0x69 0x67 0x68 0x74 0x20 0x73    // ' right s' \n\t0x70 0x6F 0x74 0x2E 0x20 0x20 0x54 0x68    // 'pot.  Th' \n\t0x69 0x73 0x20 0x33 0x44 0x20 0x6F 0x62    // 'is 3D ob' \n\t0x6A 0x65 0x63 0x74 0x20 0x69 0x73 0x20    // 'ject is ' \n\t0x22 0x66 0x72 0x6F 0x7A 0x65 0x6E 0x2E    // '\"frozen.' \n\t0x22 0x0D 0x0A 0x35 0x09 0x43 0x6C 0x69    // '\"??5?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x46    // 'ck the F' \n\t0x6F 0x72 0x77 0x61 0x72 0x64 0x20 0x6F    // 'orward o' \n\t0x72 0x20 0x42 0x61 0x63 0x6B 0x20 0x41    // 'r Back A' \n\t0x72 0x72 0x6F 0x77 0x20 0x74 0x6F 0x20    // 'rrow to ' \n\t0x6D 0x6F 0x76 0x65 0x20 0x74 0x68 0x65    // 'move the' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x66    // ' movie f' \n\t0x6F 0x72 0x77 0x61 0x72 0x64 0x73 0x20    // 'orwards ' \n\t0x6F 0x72 0x20 0x62 0x61 0x63 0x6B 0x77    // 'or backw' \n\t0x61 0x72 0x64 0x73 0x20 0x69 0x6E 0x20    // 'ards in ' \n\t0x74 0x69 0x6D 0x65 0x2E 0x0D 0x0A 0x36    // 'time.??6' \n\t0x09 0x54 0x6F 0x20 0x63 0x68 0x65 0x63    // '?To chec' \n\t0x6B 0x20 0x79 0x6F 0x75 0x72 0x20 0x63    // 'k your c' \n\t0x68 0x61 0x6E 0x67 0x65 0x73 0x2C 0x20    // 'hanges, ' \n\t0x72 0x65 0x77 0x69 0x6E 0x64 0x20 0x74    // 'rewind t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'he movie' \n\t0x20 0x61 0x6E 0x64 0x20 0x63 0x6C 0x69    // ' and cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x50    // 'ck the P' \n\t0x6C 0x61 0x79 0x20 0x62 0x75 0x74 0x74    // 'lay butt' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= thReposition\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"thReposition\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"thReposition\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp14\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_44=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thReposition\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp14\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_44=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_44, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsCompose __HELP_SYMBOL( STN \"mbmpActorsCompose\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG Tip___Reposition_One_Frame __HELP_SYMBOL( STN \"Tip___Reposition_One_Frame\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG Tip___Reposition_Entire_Path __HELP_SYMBOL( STN \"Tip___Reposition_Entire_Path\" )\n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Drag __HELP_SYMBOL( STN \"Def___Drag\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Move_Up_or_Down_3 __HELP_SYMBOL( STN \"Tip___Move_Up_or_Down_3\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_44=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_44, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x2B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '+???????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x0D 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB2 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x01 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x02    // '????4???' \n\t0x00 0x00 0x00 0x00 0x6D 0x00 0x00 0x02    // '????m???' \n\t0x01 0x00 0x00 0x00 0x6F 0x00 0x00 0x02    // '????o???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x5E 0x00 0x00 0x03    // '???^???' \n\t0x0A 0x00 0x00 0xFD 0x6B 0x00 0x00 0x03    // '???k???' \n\t0x00 0x00 0x00 0x00 0x16 0x01 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x47 0x01 0x00 0x03    // '???G???' \n\t0x00 0x00 0x00 0x00 0x6E 0x01 0x00 0x03    // '????n???' \n\t0x0F 0x00 0x00 0xFD 0xB2 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xBB 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xCA 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x12 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x16 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0xBB 0x00 0x00 0x40    // '??????@' \n\t0x07 0x00 0x00 0x00 0xCA 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x12 0x01 0x00 0x40    // '???????@' \n\t0x08 0x00 0x00 0x00 0x16 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x47 0x01 0x00 0x40    // '????G??@' \n\t0x09 0x00 0x00 0x00 0x6A 0x01 0x00 0x40    // '????j??@' \n\t0x00 0x00 0x00 0x00 0x6C 0x01 0x00 0x40    // '????l??@' \n\t0x04 0x00 0x00 0x00 0x91 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x93 0x01 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xB2 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x6D 0x00 0x00 0x80    // '????m??' \n\t0x00 0x00 0x02 0x00 0x47 0x01 0x00 0x80    // '????G??' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x47 0x01 0x00 0x82    // '????G??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x47 0x01 0x00 0xC0    // '????G??' \n\t0x06 0x00 0x00 0x00 0x6C 0x01 0x00 0xC0    // '????l??' \n\t0x06 0x00 0x00 0x00 0x93 0x01 0x00 0xC0    // '??????' \n\t0x06 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_44=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_44, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x52 0x65 0x70    // '???  Rep' \n\t0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E 0x0D    // 'osition?' \n\t0x0A 0x52 0x65 0x70 0x6F 0x73 0x69 0x74    // '?Reposit' \n\t0x69 0x6F 0x6E 0x20 0x61 0x6E 0x20 0x61    // 'ion an a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x61    // 'D word a' \n\t0x6E 0x64 0x20 0x69 0x74 0x73 0x20 0x70    // 'nd its p' \n\t0x61 0x74 0x68 0x20 0x66 0x72 0x6F 0x6D    // 'ath from' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x75 0x72    // ' the cur' \n\t0x72 0x65 0x6E 0x74 0x20 0x66 0x72 0x61    // 'rent fra' \n\t0x6D 0x65 0x20 0x6F 0x6E 0x2E 0x0D 0x0A    // 'me on.??' \n\t0x54 0x6F 0x20 0x72 0x65 0x70 0x6F 0x73    // 'To repos' \n\t0x69 0x74 0x69 0x6F 0x6E 0x0D 0x0A 0x31    // 'ition??1' \n\t0x09 0x49 0x66 0x20 0x79 0x6F 0x75 0x20    // '?If you ' \n\t0x73 0x65 0x65 0x20 0x74 0x68 0x65 0x20    // 'see the ' \n\t0x41 0x63 0x74 0x6F 0x72 0x73 0x20 0x26    // 'Actors &' \n\t0x20 0x50 0x72 0x6F 0x70 0x73 0x20 0x62    // ' Props b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x20 0x61 0x74    // 'utton at' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x6F 0x70    // ' the top' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x73 0x63 0x72 0x65 0x65 0x6E 0x2C 0x20    // 'screen, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x69 0x74    // 'click it' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F 0x20    // '.??2?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B    // 't to mak' \n\t0x65 0x20 0x61 0x20 0x63 0x68 0x61 0x6E    // 'e a chan' \n\t0x67 0x65 0x2E 0x0D 0x0A 0x33 0x09 0x43    // 'ge.??3?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x52 0x65 0x70    // 'lick Rep' \n\t0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E 0x2E    // 'osition.' \n\t0x0D 0x0A 0x34 0x09 0x44 0x72 0x61 0x67    // '??4?Drag' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x77 0x68 0x65    // 'word whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x69 0x74 0x2E 0x0D    // 'ant it.?' \n\t0x0A 0x01 0x20 0x4D 0x6F 0x76 0x69 0x6E    // '?? Movin' \n\t0x67 0x20 0x75 0x70 0x20 0x6F 0x72 0x20    // 'g up or ' \n\t0x64 0x6F 0x77 0x6E 0x20 0x61 0x6E 0x64    // 'down and' \n\t0x20 0x6E 0x65 0x61 0x72 0x20 0x6F 0x72    // ' near or' \n\t0x20 0x66 0x61 0x72 0x0D 0x0A 0x01 0x20    // ' far??? ' \n\t0x52 0x65 0x70 0x6F 0x73 0x69 0x74 0x69    // 'Repositi' \n\t0x6F 0x6E 0x69 0x6E 0x67 0x20 0x6F 0x6E    // 'oning on' \n\t0x65 0x20 0x66 0x72 0x61 0x6D 0x65 0x20    // 'e frame ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x70    // 'of the p' \n\t0x61 0x74 0x68 0x0D 0x0A 0x01 0x20 0x52    // 'ath??? R' \n\t0x65 0x70 0x6F 0x73 0x69 0x74 0x69 0x6F    // 'epositio' \n\t0x6E 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ning the' \n\t0x20 0x65 0x6E 0x74 0x69 0x72 0x65 0x20    // ' entire ' \n\t0x70 0x61 0x74 0x68                        // 'path' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= thSelect\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"Cut:  thSelect\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"Cut:  thSelect\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp15\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_29=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thSelect\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp15\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_29=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_29=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_29=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x3A 0x20 0x20    // '??Cut:  ' \n\t0x53 0x65 0x6C 0x65 0x63 0x74              // 'Select' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= thActions\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"thActions\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"thActions\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp16\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_31=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thActions\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp16\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_31=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x14 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorActions __HELP_SYMBOL( STN \"mbmpActorActions\" )\n\tFREE\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___drag __HELP_SYMBOL( STN \"Def___drag\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_31=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1D 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x0A 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDC 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x02    // '????+???' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x02    // '????1???' \n\t0x00 0x00 0x00 0x00 0x4D 0x00 0x00 0x02    // '????M???' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x02    // '????O???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x0A 0x00 0x00 0xFD 0x4B 0x00 0x00 0x03    // '???K???' \n\t0x00 0x00 0x00 0x00 0xDC 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x9B 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xAA 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x57 0x01 0x00 0x04    // '????W???' \n\t0x0D 0x00 0x00 0xFE 0x5B 0x01 0x00 0x04    // '???[???' \n\t0x00 0x00 0x00 0x00 0xDC 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x9B 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xAA 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x57 0x01 0x00 0x40    // '????W??@' \n\t0x07 0x00 0x00 0x00 0x5B 0x01 0x00 0x40    // '????[??@' \n\t0x00 0x00 0x00 0x00 0xDC 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x4D 0x00 0x00 0x80    // '????M??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x55 0x01 0x00 0x82    // '????U??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_31=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x41 0x63 0x74    // '???  Act' \n\t0x69 0x6F 0x6E 0x73 0x0D 0x0A 0x4D 0x61    // 'ions??Ma' \n\t0x6B 0x65 0x20 0x61 0x6E 0x20 0x61 0x63    // 'ke an ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x6D 0x6F    // ' word mo' \n\t0x76 0x65 0x21 0x0D 0x0A 0x54 0x6F 0x20    // 've!??To ' \n\t0x6D 0x61 0x6B 0x65 0x20 0x61 0x20 0x33    // 'make a 3' \n\t0x44 0x20 0x6F 0x62 0x6A 0x65 0x63 0x74    // 'D object' \n\t0x20 0x6D 0x6F 0x76 0x65 0x0D 0x0A 0x31    // ' move??1' \n\t0x09 0x49 0x66 0x20 0x79 0x6F 0x75 0x20    // '?If you ' \n\t0x73 0x65 0x65 0x20 0x74 0x68 0x65 0x20    // 'see the ' \n\t0x41 0x63 0x74 0x6F 0x72 0x73 0x20 0x26    // 'Actors &' \n\t0x20 0x50 0x72 0x6F 0x70 0x73 0x20 0x62    // ' Props b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x20 0x61 0x74    // 'utton at' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x6F 0x70    // ' the top' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x73 0x63 0x72 0x65 0x65 0x6E 0x2C 0x20    // 'screen, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x69 0x74    // 'click it' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F 0x20    // '.??2?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B    // 't to mak' \n\t0x65 0x20 0x61 0x20 0x33 0x44 0x20 0x6F    // 'e a 3D o' \n\t0x62 0x6A 0x65 0x63 0x74 0x20 0x6D 0x6F    // 'bject mo' \n\t0x76 0x65 0x2E 0x0D 0x0A 0x33 0x09 0x43    // 've.??3?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x41 0x63 0x74    // 'lick Act' \n\t0x69 0x6F 0x6E 0x73 0x2E 0x0D 0x0A 0x34    // 'ions.??4' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x74 0x68 0x69 0x6E 0x67    // 'he thing' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x61 0x6E 0x69    // 't to ani' \n\t0x6D 0x61 0x74 0x65 0x2E 0x0D 0x0A 0x35    // 'mate.??5' \n\t0x09 0x43 0x68 0x6F 0x6F 0x73 0x65 0x20    // '?Choose ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x69 0x6F    // 'an actio' \n\t0x6E 0x2E 0x0D 0x0A 0x36 0x09 0x44 0x65    // 'n.??6?De' \n\t0x70 0x65 0x6E 0x64 0x69 0x6E 0x67 0x20    // 'pending ' \n\t0x6F 0x6E 0x20 0x74 0x68 0x65 0x20 0x61    // 'on the a' \n\t0x63 0x74 0x69 0x6F 0x6E 0x2C 0x20 0x65    // 'ction, e' \n\t0x69 0x74 0x68 0x65 0x72 0x0D 0x0A 0x95    // 'ither??' \n\t0x09 0x44 0x72 0x61 0x67 0x20 0x74 0x68    // '?Drag th' \n\t0x65 0x20 0x33 0x44 0x20 0x6F 0x62 0x6A    // 'e 3D obj' \n\t0x65 0x63 0x74 0x20 0x77 0x68 0x65 0x72    // 'ect wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x69 0x74 0x2E 0x0D 0x0A    // 'nt it.??' \n\t0x09 0x2D 0x2D 0x6F 0x72 0x2D 0x2D 0x0D    // '?--or--?' \n\t0x0A 0x95 0x09 0x4D 0x6F 0x76 0x65 0x20    // '??Move ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x63 0x75 0x72 0x73 0x6F 0x72    // 'e cursor' \n\t0x20 0x6F 0x76 0x65 0x72 0x20 0x74 0x68    // ' over th' \n\t0x65 0x20 0x33 0x44 0x20 0x6F 0x62 0x6A    // 'e 3D obj' \n\t0x65 0x63 0x74 0x2C 0x20 0x74 0x68 0x65    // 'ect, the' \n\t0x6E 0x20 0x68 0x6F 0x6C 0x64 0x20 0x64    // 'n hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x6E 0x64    // 'tton and' \n\t0x20 0x77 0x61 0x69 0x74 0x2E              // ' wait.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= thRecordSameAction\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"thResumeLastAction\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"thResumeLastAction\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp17\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_38=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thRecordSameAction\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp17\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_38=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_34=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\nAG(4)\n\tITEM LONG 0x2000006\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsContinue __HELP_SYMBOL( STN \"mbmpActorsContinue\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Drag __HELP_SYMBOL( STN \"Def___Drag\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_38=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x21 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '!???????' \n\t0x01 0xF6 0x00 0x00 0x15 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xCB 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x02    // '????S???' \n\t0x01 0x00 0x00 0x00 0x56 0x00 0x00 0x02    // '????V???' \n\t0x00 0x00 0x00 0x00 0x6C 0x00 0x00 0x02    // '????l???' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0x02    // '????p???' \n\t0x00 0x00 0x00 0x00 0xB8 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xBA 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x09 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x10 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x17 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x51 0x00 0x00 0x03    // '???Q???' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x03    // '????S???' \n\t0x0A 0x00 0x00 0xFD 0x6C 0x00 0x00 0x03    // '???l???' \n\t0x00 0x00 0x00 0x00 0xBC 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xCB 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x49 0x01 0x00 0x04    // '????I???' \n\t0x0D 0x00 0x00 0xFE 0x4D 0x01 0x00 0x04    // '???M???' \n\t0x00 0x00 0x00 0x00 0xBC 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xCB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x49 0x01 0x00 0x40    // '????I??@' \n\t0x05 0x00 0x00 0x00 0x4D 0x01 0x00 0x40    // '????M??@' \n\t0x00 0x00 0x00 0x00 0x6E 0x00 0x00 0x80    // '????n??' \n\t0x00 0x00 0x02 0x00 0x70 0x01 0x00 0x80    // '????p??' \n\t0x00 0x00 0x03 0x00 0x17 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x48 0x01 0x00 0x82    // '????H??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_38=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x52 0x65 0x73    // '???  Res' \n\t0x75 0x6D 0x65 0x20 0x4C 0x61 0x73 0x74    // 'ume Last' \n\t0x20 0x41 0x63 0x74 0x69 0x6F 0x6E 0x0D    // ' Action?' \n\t0x0A 0x43 0x6F 0x6E 0x74 0x69 0x6E 0x75    // '?Continu' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x6C 0x61    // 'e the la' \n\t0x73 0x74 0x20 0x61 0x63 0x74 0x69 0x6F    // 'st actio' \n\t0x6E 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'n an act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x75 0x73 0x65    // 'word use' \n\t0x64 0x2E 0x20 0x0D 0x0A 0x54 0x6F 0x20    // 'd. ??To ' \n\t0x72 0x65 0x73 0x75 0x6D 0x65 0x20 0x74    // 'resume t' \n\t0x68 0x65 0x20 0x6C 0x61 0x73 0x74 0x20    // 'he last ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x0D 0x0A    // 'action??' \n\t0x31 0x09 0x49 0x66 0x20 0x79 0x6F 0x75    // '1?If you' \n\t0x20 0x73 0x65 0x65 0x20 0x74 0x68 0x65    // ' see the' \n\t0x20 0x41 0x63 0x74 0x6F 0x72 0x73 0x20    // ' Actors ' \n\t0x26 0x20 0x50 0x72 0x6F 0x70 0x73 0x20    // '& Props ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x61    // 'button a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 't the to' \n\t0x70 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'p of the' \n\t0x20 0x73 0x63 0x72 0x65 0x65 0x6E 0x2C    // ' screen,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x69    // ' click i' \n\t0x74 0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F    // 't.??2?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'nt to co' \n\t0x6E 0x74 0x69 0x6E 0x75 0x65 0x20 0x72    // 'ntinue r' \n\t0x65 0x63 0x6F 0x72 0x64 0x69 0x6E 0x67    // 'ecording' \n\t0x20 0x61 0x20 0x70 0x61 0x74 0x68 0x2E    // ' a path.' \n\t0x0D 0x0A 0x33 0x09 0x43 0x6C 0x69 0x63    // '??3?Clic' \n\t0x6B 0x20 0x52 0x65 0x73 0x75 0x6D 0x65    // 'k Resume' \n\t0x20 0x4C 0x61 0x73 0x74 0x20 0x41 0x63    // ' Last Ac' \n\t0x74 0x69 0x6F 0x6E 0x2E 0x0D 0x0A 0x34    // 'tion.??4' \n\t0x09 0x44 0x65 0x70 0x65 0x6E 0x64 0x69    // '?Dependi' \n\t0x6E 0x67 0x20 0x6F 0x6E 0x20 0x74 0x68    // 'ng on th' \n\t0x65 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'e action' \n\t0x2C 0x20 0x65 0x69 0x74 0x68 0x65 0x72    // ', either' \n\t0x0D 0x0A 0x09 0x44 0x72 0x61 0x67 0x20    // '???Drag ' \n\t0x74 0x68 0x65 0x20 0x33 0x44 0x20 0x6F    // 'the 3D o' \n\t0x62 0x6A 0x65 0x63 0x74 0x20 0x77 0x68    // 'bject wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x69 0x74 0x2E    // 'want it.' \n\t0x0D 0x0A 0x2D 0x2D 0x6F 0x72 0x2D 0x2D    // '??--or--' \n\t0x0D 0x0A 0x4D 0x6F 0x76 0x65 0x20 0x74    // '??Move t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x75 0x73 0x65    // 'he mouse' \n\t0x20 0x63 0x75 0x72 0x73 0x6F 0x72 0x20    // ' cursor ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x33 0x44 0x20 0x6F 0x62 0x6A 0x65    // ' 3D obje' \n\t0x63 0x74 0x2C 0x20 0x74 0x68 0x65 0x6E    // 'ct, then' \n\t0x20 0x68 0x6F 0x6C 0x64 0x20 0x64 0x6F    // ' hold do' \n\t0x77 0x6E 0x20 0x74 0x68 0x65 0x20 0x6D    // 'wn the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x62 0x75 0x74    // 'ouse but' \n\t0x74 0x6F 0x6E 0x20 0x61 0x6E 0x64 0x20    // 'ton and ' \n\t0x77 0x61 0x69 0x74 0x2E                   // 'wait.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_18= thReplacePartofPath\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"Cut:  thReplacePartofPath\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"Cut:  thReplacePartofPath\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp18\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_40=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thReplacePartofPath\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp18\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_40=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x63 0x01 0x00 0x00    // '????c???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_17=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\nAG(4)\n\tITEM LONG 0x2000008\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsRecordMode __HELP_SYMBOL( STN \"mbmpActorsRecordMode\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Turn_on __HELP_SYMBOL( STN \"Def___Turn_on\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Def___Drag __HELP_SYMBOL( STN \"Def___Drag\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG Key___Replace_Part_Path __HELP_SYMBOL( STN \"Key___Replace_Part_Path\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsContinue __HELP_SYMBOL( STN \"mbmpActorsContinue\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipKey 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipKey\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_40=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x33 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '3???????' \n\t0x00 0xF1 0x00 0x00 0x08 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0x1C 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD3 0x01 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0xF0 0x01 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x7D 0x02 0x00 0x01    // '????}???' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x2E 0x00 0x00 0x02    // '????.???' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x02    // '????/???' \n\t0x01 0x00 0x00 0x00 0x59 0x00 0x00 0x02    // '????Y???' \n\t0x00 0x00 0x00 0x00 0x94 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xA3 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xAA 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xD4 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xDC 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xDD 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xFA 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x17 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x18 0x01 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x01 0x00 0x02    // '????!???' \n\t0x00 0x00 0x00 0x00 0x6F 0x01 0x00 0x02    // '????o???' \n\t0x01 0x00 0x00 0x00 0x70 0x01 0x00 0x02    // '????p???' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xDF 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xF8 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x7D 0x02 0x00 0x03    // '????}???' \n\t0x00 0x00 0x00 0x00 0x23 0x01 0x00 0x04    // '????#???' \n\t0x0D 0x00 0x00 0xFE 0x32 0x01 0x00 0x04    // '???2???' \n\t0x00 0x00 0x00 0x00 0x70 0x01 0x00 0x04    // '????p???' \n\t0x0D 0x00 0x00 0xFE 0x77 0x01 0x00 0x04    // '???w???' \n\t0x00 0x00 0x00 0x00 0xF5 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xF9 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x23 0x01 0x00 0x40    // '????#??@' \n\t0x06 0x00 0x00 0x00 0x32 0x01 0x00 0x40    // '????2??@' \n\t0x00 0x00 0x00 0x00 0x70 0x01 0x00 0x40    // '????p??@' \n\t0x04 0x00 0x00 0x00 0x77 0x01 0x00 0x40    // '????w??@' \n\t0x00 0x00 0x00 0x00 0xF5 0x01 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xF9 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x6E 0x02 0x00 0x40    // '????n??@' \n\t0x07 0x00 0x00 0x00 0x7D 0x02 0x00 0x40    // '????}??@' \n\t0x00 0x00 0x00 0x00 0xFA 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x9A 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xD3 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x2A 0x02 0x00 0x80    // '????*??' \n\t0x00 0x00 0x03 0x00 0x6E 0x02 0x00 0x80    // '????n??' \n\t0x00 0x00 0x00 0x00 0xDF 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0x6E 0x02 0x00 0x82    // '????n??' \n\t0x00 0x00 0x00 0x00 0x05 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0xF0 0x01 0x00 0xC0    // '??????' \n\t0x08 0x00 0x00 0x00 0x6E 0x02 0x00 0xC0    // '????n??' \n\t0x09 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_40=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x0D 0x0A 0x01    // '??Cut???' \n\t0x20 0x20 0x52 0x65 0x70 0x6C 0x61 0x63    // '  Replac' \n\t0x65 0x20 0x50 0x61 0x72 0x74 0x20 0x6F    // 'e Part o' \n\t0x66 0x20 0x50 0x61 0x74 0x68 0x0D 0x0A    // 'f Path??' \n\t0x57 0x68 0x65 0x6E 0x20 0x74 0x68 0x69    // 'When thi' \n\t0x73 0x20 0x69 0x73 0x20 0x22 0x6F 0x6E    // 's is \"on' \n\t0x2C 0x22 0x20 0x79 0x6F 0x75 0x20 0x63    // ',\" you c' \n\t0x61 0x6E 0x20 0x72 0x65 0x70 0x6C 0x61    // 'an repla' \n\t0x63 0x65 0x20 0x70 0x61 0x72 0x74 0x20    // 'ce part ' \n\t0x6F 0x66 0x20 0x61 0x6E 0x20 0x61 0x63    // 'of an ac' \n\t0x74 0x6F 0x72 0x27 0x73 0x20 0x70 0x61    // 'tor's pa' \n\t0x74 0x68 0x2E 0x20 0x20 0x54 0x68 0x65    // 'th.  The' \n\t0x20 0x6E 0x65 0x77 0x20 0x70 0x61 0x74    // ' new pat' \n\t0x68 0x20 0x72 0x65 0x6A 0x6F 0x69 0x6E    // 'h rejoin' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x6F 0x6C    // 's the ol' \n\t0x64 0x20 0x70 0x61 0x74 0x68 0x20 0x61    // 'd path a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x63 0x6C    // 't the cl' \n\t0x6F 0x73 0x65 0x73 0x74 0x20 0x70 0x6F    // 'osest po' \n\t0x69 0x6E 0x74 0x2E 0x20 0x20 0x4F 0x74    // 'int.  Ot' \n\t0x68 0x65 0x72 0x77 0x69 0x73 0x65 0x2C    // 'herwise,' \n\t0x20 0x74 0x68 0x65 0x20 0x65 0x6E 0x74    // ' the ent' \n\t0x69 0x72 0x65 0x20 0x70 0x61 0x74 0x68    // 'ire path' \n\t0x20 0x69 0x73 0x20 0x72 0x65 0x70 0x6C    // ' is repl' \n\t0x61 0x63 0x65 0x64 0x20 0x66 0x72 0x6F    // 'aced fro' \n\t0x6D 0x20 0x74 0x68 0x65 0x20 0x70 0x6F    // 'm the po' \n\t0x69 0x6E 0x74 0x20 0x79 0x6F 0x75 0x20    // 'int you ' \n\t0x62 0x65 0x67 0x69 0x6E 0x20 0x64 0x72    // 'begin dr' \n\t0x61 0x67 0x67 0x69 0x6E 0x67 0x2E 0x0D    // 'agging.?' \n\t0x0A 0x54 0x6F 0x20 0x72 0x65 0x70 0x6C    // '?To repl' \n\t0x61 0x63 0x65 0x20 0x70 0x61 0x72 0x74    // 'ace part' \n\t0x20 0x6F 0x66 0x20 0x61 0x20 0x70 0x61    // ' of a pa' \n\t0x74 0x68 0x0D 0x0A 0x31 0x09 0x49 0x66    // 'th??1?If' \n\t0x20 0x6E 0x65 0x63 0x65 0x73 0x73 0x61    // ' necessa' \n\t0x72 0x79 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ry, clic' \n\t0x6B 0x20 0x41 0x63 0x74 0x6F 0x72 0x73    // 'k Actors' \n\t0x20 0x26 0x20 0x50 0x72 0x6F 0x70 0x73    // ' & Props' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F 0x20    // '.??2?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x72 0x65 0x70    // 't to rep' \n\t0x6C 0x61 0x63 0x65 0x20 0x70 0x61 0x72    // 'lace par' \n\t0x74 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 't of the' \n\t0x20 0x70 0x61 0x74 0x68 0x2E 0x0D 0x0A    // ' path.??' \n\t0x33 0x09 0x54 0x75 0x72 0x6E 0x20 0x6F    // '3?Turn o' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x52 0x65    // 'n the Re' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x50 0x61    // 'place Pa' \n\t0x72 0x74 0x20 0x6F 0x66 0x20 0x50 0x61    // 'rt of Pa' \n\t0x74 0x68 0x20 0x62 0x75 0x74 0x74 0x6F    // 'th butto' \n\t0x6E 0x2E 0x0D 0x0A 0x57 0x68 0x65 0x6E    // 'n.??When' \n\t0x20 0x22 0x6F 0x6E 0x2C 0x22 0x20 0x74    // ' \"on,\" t' \n\t0x68 0x65 0x20 0x62 0x75 0x74 0x74 0x6F    // 'he butto' \n\t0x6E 0x20 0x69 0x73 0x20 0x70 0x75 0x73    // 'n is pus' \n\t0x68 0x65 0x64 0x20 0x69 0x6E 0x20 0x61    // 'hed in a' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x20 0x6C    // 'nd the l' \n\t0x69 0x67 0x68 0x74 0x20 0x69 0x73 0x20    // 'ight is ' \n\t0x6F 0x6E 0x2E 0x0D 0x0A 0x34 0x09 0x43    // 'on.??4?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x43 0x6F 0x6E    // 'lick Con' \n\t0x74 0x69 0x6E 0x75 0x65 0x20 0x53 0x61    // 'tinue Sa' \n\t0x6D 0x65 0x20 0x41 0x63 0x74 0x69 0x6F    // 'me Actio' \n\t0x6E 0x2D 0x01 0x0D 0x0A 0x35 0x09 0x44    // 'n-???5?D' \n\t0x72 0x61 0x67 0x20 0x74 0x68 0x65 0x20    // 'rag the ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2C 0x20 0x70    // 'actor, p' \n\t0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20    // 'rop, or ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x20    // '3D word ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x69    // 'u want i' \n\t0x74 0x2E 0x0D 0x0A 0x57 0x68 0x65 0x6E    // 't.??When' \n\t0x20 0x79 0x6F 0x75 0x20 0x73 0x74 0x6F    // ' you sto' \n\t0x70 0x20 0x64 0x72 0x61 0x67 0x67 0x69    // 'p draggi' \n\t0x6E 0x67 0x2C 0x20 0x74 0x68 0x65 0x20    // 'ng, the ' \n\t0x6F 0x6C 0x64 0x20 0x70 0x61 0x74 0x68    // 'old path' \n\t0x20 0x63 0x6F 0x6E 0x74 0x69 0x6E 0x75    // ' continu' \n\t0x65 0x73 0x20 0x77 0x68 0x65 0x72 0x65    // 'es where' \n\t0x20 0x79 0x6F 0x75 0x20 0x6C 0x65 0x66    // ' you lef' \n\t0x74 0x20 0x6F 0x66 0x66 0x2E 0x0D 0x0A    // 't off.??' \n\t0x01 0x20 0x20 0x53 0x68 0x6F 0x72 0x74    // '?  Short' \n\t0x63 0x75 0x74 0x20 0x6B 0x65 0x79         // 'cut key' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_19= thFallThroughGround\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"thFallThroughGround\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"thFallThroughGround\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp19\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thFallThroughGround\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp19\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7B 0x01 0x00 0x00    // '????{???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\nAG(4)\n\tITEM LONG 0x2000009\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsGround __HELP_SYMBOL( STN \"mbmpActorsGround\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Turn_on __HELP_SYMBOL( STN \"Def___Turn_on\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsCompose __HELP_SYMBOL( STN \"mbmpActorsCompose\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsContinue __HELP_SYMBOL( STN \"mbmpActorsContinue\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Def___drag __HELP_SYMBOL( STN \"Def___drag\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x37 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '7???????' \n\t0x01 0xF6 0x00 0x00 0x16 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x31 0x01 0x00 0x01    // '????1???' \n\t0x01 0xF6 0x00 0x00 0x67 0x01 0x00 0x01    // '???g???' \n\t0x01 0x00 0x00 0x00 0x6A 0x01 0x00 0x01    // '????j???' \n\t0x01 0xF6 0x00 0x00 0x92 0x01 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x16 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x02    // '????(???' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x02    // '????)???' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x02    // '????E???' \n\t0x01 0x00 0x00 0x00 0x4A 0x00 0x00 0x02    // '????J???' \n\t0x00 0x00 0x00 0x00 0x5A 0x00 0x00 0x02    // '????Z???' \n\t0x01 0x00 0x00 0x00 0x61 0x00 0x00 0x02    // '????a???' \n\t0x00 0x00 0x00 0x00 0x69 0x00 0x00 0x02    // '????i???' \n\t0x01 0x00 0x00 0x00 0x6A 0x00 0x00 0x02    // '????j???' \n\t0x00 0x00 0x00 0x00 0x88 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x8A 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xD2 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xD4 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x67 0x01 0x00 0x02    // '????g???' \n\t0x01 0x00 0x00 0x00 0x68 0x01 0x00 0x02    // '????h???' \n\t0x00 0x00 0x00 0x00 0x96 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x97 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x18 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x6C 0x00 0x00 0x03    // '???l???' \n\t0x0A 0x00 0x00 0xFD 0x86 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x67 0x01 0x00 0x03    // '????g???' \n\t0x0F 0x00 0x00 0xFD 0x92 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x93 0x01 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x95 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xD6 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE5 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x97 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x9E 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xE3 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE7 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xD6 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xE5 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x97 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0x9E 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE3 0x01 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0xE7 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x88 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x31 0x01 0x00 0x80    // '????1??' \n\t0x00 0x00 0x03 0x00 0x95 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0xE1 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x18 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1E 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x95 0x01 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0xE1 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x67 0x01 0x00 0xC0    // '????g??' \n\t0x06 0x00 0x00 0x00 0x92 0x01 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x46 0x61 0x6C    // '???  Fal' \n\t0x6C 0x20 0x54 0x68 0x72 0x6F 0x75 0x67    // 'l Throug' \n\t0x68 0x20 0x47 0x72 0x6F 0x75 0x6E 0x64    // 'h Ground' \n\t0x0D 0x0A 0x57 0x68 0x65 0x6E 0x20 0x74    // '??When t' \n\t0x68 0x69 0x73 0x20 0x69 0x73 0x20 0x22    // 'his is \"' \n\t0x6F 0x6E 0x2C 0x22 0x20 0x61 0x6E 0x20    // 'on,\" an ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2C 0x20 0x70    // 'actor, p' \n\t0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20    // 'rop, or ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x20    // '3D word ' \n\t0x63 0x61 0x6E 0x20 0x6D 0x6F 0x76 0x65    // 'can move' \n\t0x20 0x74 0x68 0x72 0x6F 0x75 0x67 0x68    // ' through' \n\t0x20 0x74 0x68 0x65 0x20 0x67 0x72 0x6F    // ' the gro' \n\t0x75 0x6E 0x64 0x20 0x73 0x75 0x72 0x66    // 'und surf' \n\t0x61 0x63 0x65 0x2E 0x0D 0x0A 0x54 0x6F    // 'ace.??To' \n\t0x20 0x66 0x61 0x6C 0x6C 0x20 0x74 0x68    // ' fall th' \n\t0x72 0x6F 0x75 0x67 0x68 0x20 0x74 0x68    // 'rough th' \n\t0x65 0x20 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'e ground' \n\t0x0D 0x0A 0x31 0x09 0x49 0x66 0x20 0x79    // '??1?If y' \n\t0x6F 0x75 0x20 0x73 0x65 0x65 0x20 0x74    // 'ou see t' \n\t0x68 0x65 0x20 0x41 0x63 0x74 0x6F 0x72    // 'he Actor' \n\t0x73 0x20 0x26 0x20 0x50 0x72 0x6F 0x70    // 's & Prop' \n\t0x73 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 's button' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x74 0x6F 0x70 0x20 0x6F 0x66 0x20 0x74    // 'top of t' \n\t0x68 0x65 0x20 0x73 0x63 0x72 0x65 0x65    // 'he scree' \n\t0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'n, click' \n\t0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09    // ' it.??2?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20 0x61    // 'o move a' \n\t0x20 0x33 0x44 0x20 0x6F 0x62 0x6A 0x65    // ' 3D obje' \n\t0x63 0x74 0x20 0x74 0x68 0x72 0x6F 0x75    // 'ct throu' \n\t0x67 0x68 0x20 0x74 0x68 0x65 0x20 0x67    // 'gh the g' \n\t0x72 0x6F 0x75 0x6E 0x64 0x2E 0x0D 0x0A    // 'round.??' \n\t0x33 0x09 0x49 0x66 0x20 0x79 0x6F 0x75    // '3?If you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x3A 0x0D 0x0A 0x52 0x65 0x70 0x6F 0x73    // ':??Repos' \n\t0x69 0x74 0x69 0x6F 0x6E 0x20 0x61 0x20    // 'ition a ' \n\t0x33 0x44 0x20 0x6F 0x62 0x6A 0x65 0x63    // '3D objec' \n\t0x74 0x20 0x61 0x6E 0x64 0x20 0x69 0x74    // 't and it' \n\t0x73 0x20 0x70 0x61 0x74 0x68 0x2C 0x20    // 's path, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x52 0x65    // 'click Re' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x2D 0x01 0x0D 0x0A 0x43 0x72 0x65 0x61    // '-???Crea' \n\t0x74 0x65 0x20 0x61 0x20 0x70 0x61 0x74    // 'te a pat' \n\t0x68 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'h, click' \n\t0x20 0x52 0x65 0x73 0x75 0x6D 0x65 0x20    // ' Resume ' \n\t0x4C 0x61 0x73 0x74 0x20 0x41 0x63 0x74    // 'Last Act' \n\t0x69 0x6F 0x6E 0x2D 0x01 0x0D 0x0A 0x33    // 'ion-???3' \n\t0x09 0x54 0x75 0x72 0x6E 0x20 0x6F 0x6E    // '?Turn on' \n\t0x20 0x74 0x68 0x65 0x20 0x46 0x61 0x6C    // ' the Fal' \n\t0x6C 0x20 0x54 0x68 0x72 0x6F 0x75 0x67    // 'l Throug' \n\t0x68 0x20 0x47 0x72 0x6F 0x75 0x6E 0x64    // 'h Ground' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x2D    // ' button-' \n\t0x2D 0x79 0x6F 0x75 0x27 0x6C 0x6C 0x20    // '-you'll ' \n\t0x66 0x69 0x6E 0x64 0x20 0x69 0x74 0x20    // 'find it ' \n\t0x75 0x6E 0x64 0x65 0x72 0x20 0x4D 0x6F    // 'under Mo' \n\t0x72 0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73    // 're Tools' \n\t0x2E 0x0D 0x0A 0x34 0x09 0x44 0x72 0x61    // '.??4?Dra' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'g the ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x77 0x68    // ' word wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x69 0x74 0x2E    // 'want it.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= thUpandDown\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"thUpandDown\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"thUpandDown\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp1A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thUpandDown\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp1A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x85 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_65=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6D, 0x0)\nAG(4)\n\tITEM LONG 0x2000008\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsXY __HELP_SYMBOL( STN \"mbmpActorsXY\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsCompose __HELP_SYMBOL( STN \"mbmpActorsCompose\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Turn_on __HELP_SYMBOL( STN \"Def___Turn_on\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Def___Drag __HELP_SYMBOL( STN \"Def___Drag\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsContinue __HELP_SYMBOL( STN \"mbmpActorsContinue\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipKey 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipKey\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG Key___Up_Down __HELP_SYMBOL( STN \"Key___Up_Down\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x36 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '6???????' \n\t0x01 0x00 0x00 0x00 0x1E 0x01 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x54 0x01 0x00 0x01    // '???T???' \n\t0x01 0x00 0x00 0x00 0x57 0x01 0x00 0x01    // '????W???' \n\t0x01 0xF6 0x00 0x00 0x7F 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xE8 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x06 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x02    // '????H???' \n\t0x01 0x00 0x00 0x00 0x55 0x00 0x00 0x02    // '????U???' \n\t0x00 0x00 0x00 0x00 0x6C 0x00 0x00 0x02    // '????l???' \n\t0x01 0x00 0x00 0x00 0x6E 0x00 0x00 0x02    // '????n???' \n\t0x00 0x00 0x00 0x00 0xB6 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xB8 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x54 0x01 0x00 0x02    // '????T???' \n\t0x01 0x00 0x00 0x00 0x55 0x01 0x00 0x02    // '????U???' \n\t0x00 0x00 0x00 0x00 0x83 0x01 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x84 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x57 0x00 0x00 0x03    // '???W???' \n\t0x0A 0x00 0x00 0xFD 0x6A 0x00 0x00 0x03    // '???j???' \n\t0x00 0x00 0x00 0x00 0x54 0x01 0x00 0x03    // '????T???' \n\t0x0F 0x00 0x00 0xFD 0x7F 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xBA 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xC9 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x84 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x8B 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xA5 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA9 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xBA 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xC9 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x84 0x01 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0x8B 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA5 0x01 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0xA9 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xDA 0x01 0x00 0x40    // '??????@' \n\t0x0A 0x00 0x00 0x00 0xE8 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x6C 0x00 0x00 0x80    // '????l??' \n\t0x00 0x00 0x02 0x00 0x1E 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x03 0x00 0x82 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0xA3 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x57 0x00 0x00 0x82    // '????W??' \n\t0x05 0x00 0x00 0x00 0x0B 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x82 0x01 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0xDA 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x54 0x01 0x00 0xC0    // '????T??' \n\t0x03 0x00 0x00 0x00 0x7F 0x01 0x00 0xC0    // '???????' \n\t0x07 0x00 0x00 0x00 0xDA 0x01 0x00 0xC0    // '??????' \n\t0x08 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6D, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x55 0x70 0x20    // '???  Up ' \n\t0x26 0x20 0x44 0x6F 0x77 0x6E 0x0D 0x0A    // '& Down??' \n\t0x57 0x68 0x65 0x6E 0x20 0x74 0x68 0x69    // 'When thi' \n\t0x73 0x20 0x69 0x73 0x20 0x22 0x6F 0x6E    // 's is \"on' \n\t0x2C 0x22 0x20 0x79 0x6F 0x75 0x20 0x63    // ',\" you c' \n\t0x61 0x6E 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'an move ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C 0x20    // ', prop, ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x77 0x6F    // 'or 3D wo' \n\t0x72 0x64 0x20 0x75 0x70 0x20 0x61 0x6E    // 'rd up an' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x2E 0x0D    // 'd down.?' \n\t0x0A 0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65    // '?To move' \n\t0x20 0x75 0x70 0x20 0x61 0x6E 0x64 0x20    // ' up and ' \n\t0x64 0x6F 0x77 0x6E 0x0D 0x0A 0x31 0x09    // 'down??1?' \n\t0x49 0x66 0x20 0x79 0x6F 0x75 0x20 0x73    // 'If you s' \n\t0x65 0x65 0x20 0x74 0x68 0x65 0x20 0x41    // 'ee the A' \n\t0x63 0x74 0x6F 0x72 0x73 0x20 0x26 0x20    // 'ctors & ' \n\t0x50 0x72 0x6F 0x70 0x73 0x20 0x62 0x75    // 'Props bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x74 0x20    // 'tton at ' \n\t0x74 0x68 0x65 0x20 0x74 0x6F 0x70 0x20    // 'the top ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x73    // 'of the s' \n\t0x63 0x72 0x65 0x65 0x6E 0x2C 0x20 0x63    // 'creen, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x69 0x74 0x2E    // 'lick it.' \n\t0x0D 0x0A 0x32 0x09 0x47 0x6F 0x20 0x74    // '??2?Go t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x70 0x6C    // 'o the pl' \n\t0x61 0x63 0x65 0x20 0x69 0x6E 0x20 0x79    // 'ace in y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x68 0x65 0x20 0x33 0x44 0x20    // ' the 3D ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x20 0x74    // 'object t' \n\t0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20 0x75    // 'o move u' \n\t0x70 0x20 0x61 0x6E 0x64 0x20 0x64 0x6F    // 'p and do' \n\t0x77 0x6E 0x2E 0x0D 0x0A 0x33 0x09 0x49    // 'wn.??3?I' \n\t0x66 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'f you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x3A 0x0D 0x0A    // 'nt to:??' \n\t0x52 0x65 0x70 0x6F 0x73 0x69 0x74 0x69    // 'Repositi' \n\t0x6F 0x6E 0x20 0x61 0x20 0x33 0x44 0x20    // 'on a 3D ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x20 0x61    // 'object a' \n\t0x6E 0x64 0x20 0x69 0x74 0x73 0x20 0x70    // 'nd its p' \n\t0x61 0x74 0x68 0x2C 0x20 0x63 0x6C 0x69    // 'ath, cli' \n\t0x63 0x6B 0x20 0x52 0x65 0x70 0x6F 0x73    // 'ck Repos' \n\t0x69 0x74 0x69 0x6F 0x6E 0x2D 0x01 0x0D    // 'ition-??' \n\t0x0A 0x43 0x72 0x65 0x61 0x74 0x65 0x20    // '?Create ' \n\t0x61 0x20 0x70 0x61 0x74 0x68 0x2C 0x20    // 'a path, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x52 0x65    // 'click Re' \n\t0x73 0x75 0x6D 0x65 0x20 0x4C 0x61 0x73    // 'sume Las' \n\t0x74 0x20 0x41 0x63 0x74 0x69 0x6F 0x6E    // 't Action' \n\t0x2D 0x01 0x0D 0x0A 0x34 0x09 0x54 0x75    // '-???4?Tu' \n\t0x72 0x6E 0x20 0x6F 0x6E 0x20 0x74 0x68    // 'rn on th' \n\t0x65 0x20 0x55 0x70 0x20 0x26 0x20 0x44    // 'e Up & D' \n\t0x6F 0x77 0x6E 0x20 0x62 0x75 0x74 0x74    // 'own butt' \n\t0x6F 0x6E 0x2E 0x0D 0x0A 0x35 0x09 0x44    // 'on.??5?D' \n\t0x72 0x61 0x67 0x20 0x74 0x68 0x65 0x20    // 'rag the ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2C 0x20 0x70    // 'actor, p' \n\t0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20    // 'rop, or ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x20    // '3D word ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x69    // 'u want i' \n\t0x74 0x2E 0x0D 0x0A 0x01 0x20 0x53 0x68    // 't.??? Sh' \n\t0x6F 0x72 0x74 0x63 0x75 0x74 0x20 0x6B    // 'ortcut k' \n\t0x65 0x79                                  // 'ey' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1B= thTalentBook\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"thTalentBook\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"thTalentBook\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp1B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_58=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thTalentBook\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp1B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_58=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8D 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_40=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_58, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsBiography __HELP_SYMBOL( STN \"mbmpActorsBiography\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_58=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_58, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x0E 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x40 0x01 0x00 0x01    // '????@???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x50 0x00 0x00 0x02    // '????P???' \n\t0x00 0x00 0x00 0x00 0xBB 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xBD 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xA2 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xB9 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xBB 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x10 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x07 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_58=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_58, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x54 0x61 0x6C    // '???  Tal' \n\t0x65 0x6E 0x74 0x20 0x42 0x6F 0x6F 0x6B    // 'ent Book' \n\t0x0D 0x0A 0x47 0x69 0x76 0x65 0x73 0x20    // '??Gives ' \n\t0x79 0x6F 0x75 0x20 0x74 0x68 0x65 0x20    // 'you the ' \n\t0x73 0x63 0x6F 0x6F 0x70 0x20 0x6F 0x6E    // 'scoop on' \n\t0x20 0x61 0x6C 0x6C 0x20 0x74 0x68 0x65    // ' all the' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x73 0x20    // ' actors ' \n\t0x79 0x6F 0x75 0x20 0x63 0x61 0x6E 0x20    // 'you can ' \n\t0x75 0x73 0x65 0x20 0x69 0x6E 0x20 0x79    // 'use in y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x21 0x0D 0x0A 0x4E 0x6F 0x74 0x65    // 'e!??Note' \n\t0x3A 0x20 0x20 0x59 0x6F 0x75 0x20 0x77    // ':  You w' \n\t0x6F 0x6E 0x27 0x74 0x20 0x73 0x65 0x65    // 'on't see' \n\t0x20 0x74 0x68 0x65 0x20 0x54 0x61 0x6C    // ' the Tal' \n\t0x65 0x6E 0x74 0x20 0x42 0x6F 0x6F 0x6B    // 'ent Book' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x79    // ' until y' \n\t0x6F 0x75 0x27 0x76 0x65 0x20 0x66 0x6F    // 'ou've fo' \n\t0x75 0x6E 0x64 0x20 0x61 0x6C 0x6C 0x20    // 'und all ' \n\t0x74 0x68 0x65 0x20 0x6D 0x69 0x73 0x73    // 'the miss' \n\t0x69 0x6E 0x67 0x20 0x70 0x61 0x67 0x65    // 'ing page' \n\t0x73 0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x6F    // 's.??To o' \n\t0x70 0x65 0x6E 0x20 0x74 0x68 0x65 0x20    // 'pen the ' \n\t0x54 0x61 0x6C 0x65 0x6E 0x74 0x20 0x42    // 'Talent B' \n\t0x6F 0x6F 0x6B 0x0D 0x0A 0x31 0x09 0x49    // 'ook??1?I' \n\t0x66 0x20 0x79 0x6F 0x75 0x20 0x73 0x65    // 'f you se' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x41 0x63    // 'e the Ac' \n\t0x74 0x6F 0x72 0x73 0x20 0x26 0x20 0x50    // 'tors & P' \n\t0x72 0x6F 0x70 0x73 0x20 0x62 0x75 0x74    // 'rops but' \n\t0x74 0x6F 0x6E 0x20 0x61 0x74 0x20 0x74    // 'ton at t' \n\t0x68 0x65 0x20 0x74 0x6F 0x70 0x20 0x6F    // 'he top o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x73 0x63    // 'f the sc' \n\t0x72 0x65 0x65 0x6E 0x2C 0x20 0x63 0x6C    // 'reen, cl' \n\t0x69 0x63 0x6B 0x20 0x69 0x74 0x2E 0x0D    // 'ick it.?' \n\t0x0A 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?2?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x54 0x61 0x6C    // ' the Tal' \n\t0x65 0x6E 0x74 0x20 0x42 0x6F 0x6F 0x6B    // 'ent Book' \n\t0x2D 0x2D 0x79 0x6F 0x75 0x27 0x6C 0x6C    // '--you'll' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x69 0x74    // ' find it' \n\t0x20 0x75 0x6E 0x64 0x65 0x72 0x20 0x4D    // ' under M' \n\t0x6F 0x72 0x65 0x20 0x54 0x6F 0x6F 0x6C    // 'ore Tool' \n\t0x73 0x2E                                  // 's.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= thActorList\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"thActorList\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"thActorList\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp1C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_47=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thActorList\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp1C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_47=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_25=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_47, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_47=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_47, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xC0 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0x02    // '????;???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xC2 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xD7 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xC0 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xC0 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD9 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x20 0x01 0x00 0x80    // '???? ??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_47=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_47, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x63 0x74 0x6F 0x72 0x20    // '??Actor ' \n\t0x4C 0x69 0x73 0x74 0x0D 0x0A 0x53 0x68    // 'List??Sh' \n\t0x6F 0x77 0x73 0x20 0x79 0x6F 0x75 0x20    // 'ows you ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x73 0x20 0x79 0x6F 0x75 0x27 0x76    // 'rs you'v' \n\t0x65 0x20 0x75 0x73 0x65 0x64 0x20 0x69    // 'e used i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x2E 0x20 0x20 0x59    // 'ovie.  Y' \n\t0x6F 0x75 0x20 0x63 0x61 0x6E 0x20 0x73    // 'ou can s' \n\t0x65 0x6C 0x65 0x63 0x74 0x20 0x61 0x6E    // 'elect an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x20 0x77    // ' actor w' \n\t0x68 0x6F 0x20 0x69 0x73 0x20 0x62 0x65    // 'ho is be' \n\t0x68 0x69 0x6E 0x64 0x20 0x73 0x6F 0x6D    // 'hind som' \n\t0x65 0x74 0x68 0x69 0x6E 0x67 0x20 0x65    // 'ething e' \n\t0x6C 0x73 0x65 0x20 0x6F 0x72 0x20 0x6F    // 'lse or o' \n\t0x75 0x74 0x20 0x6F 0x66 0x20 0x76 0x69    // 'ut of vi' \n\t0x65 0x77 0x2E 0x20 0x20 0x4F 0x72 0x2C    // 'ew.  Or,' \n\t0x20 0x79 0x6F 0x75 0x20 0x63 0x61 0x6E    // ' you can' \n\t0x20 0x75 0x73 0x65 0x20 0x74 0x68 0x65    // ' use the' \n\t0x20 0x73 0x61 0x6D 0x65 0x20 0x61 0x63    // ' same ac' \n\t0x74 0x6F 0x72 0x20 0x69 0x6E 0x20 0x61    // 'tor in a' \n\t0x6E 0x6F 0x74 0x68 0x65 0x72 0x20 0x70    // 'nother p' \n\t0x61 0x72 0x74 0x20 0x6F 0x66 0x20 0x79    // 'art of y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x75    // 'e.??To u' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x61    // 'se the a' \n\t0x63 0x74 0x6F 0x72 0x20 0x6C 0x69 0x73    // 'ctor lis' \n\t0x74 0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69    // 't???Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x61    // 'ck the a' \n\t0x63 0x74 0x6F 0x72 0x20 0x79 0x6F 0x75    // 'ctor you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x73 0x65 0x6C 0x65 0x63 0x74 0x2C    // ' select,' \n\t0x20 0x62 0x72 0x69 0x6E 0x67 0x20 0x62    // ' bring b' \n\t0x61 0x63 0x6B 0x20 0x69 0x6E 0x74 0x6F    // 'ack into' \n\t0x20 0x76 0x69 0x65 0x77 0x2C 0x20 0x6F    // ' view, o' \n\t0x72 0x20 0x72 0x65 0x75 0x73 0x65 0x2E    // 'r reuse.' \n\t0x0D 0x0A 0x49 0x66 0x20 0x74 0x68 0x65    // '??If the' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x20 0x69    // ' actor i' \n\t0x73 0x20 0x6F 0x75 0x74 0x20 0x6F 0x66    // 's out of' \n\t0x20 0x76 0x69 0x65 0x77 0x2C 0x20 0x74    // ' view, t' \n\t0x68 0x65 0x20 0x61 0x63 0x74 0x6F 0x72    // 'he actor' \n\t0x20 0x72 0x65 0x61 0x70 0x70 0x65 0x61    // ' reappea' \n\t0x72 0x73 0x20 0x6F 0x6E 0x2D 0x73 0x74    // 'rs on-st' \n\t0x61 0x67 0x65 0x2E 0x20 0x20 0x54 0x6F    // 'age.  To' \n\t0x20 0x70 0x6F 0x73 0x69 0x74 0x69 0x6F    // ' positio' \n\t0x6E 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'n an act' \n\t0x6F 0x72 0x2C 0x20 0x6D 0x6F 0x76 0x65    // 'or, move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x75 0x6E 0x74 0x69 0x6C    // 'se until' \n\t0x20 0x79 0x6F 0x75 0x20 0x66 0x69 0x6E    // ' you fin' \n\t0x64 0x20 0x74 0x68 0x65 0x20 0x70 0x6C    // 'd the pl' \n\t0x61 0x63 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ace you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x70 0x75 0x74 0x20 0x74 0x68 0x65 0x20    // 'put the ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2C 0x20 0x74    // 'actor, t' \n\t0x68 0x65 0x6E 0x20 0x63 0x6C 0x69 0x63    // 'hen clic' \n\t0x6B 0x2E                                  // 'k.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1D= thPropList\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"thPropList\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"thPropList\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp1D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thPropList\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp1D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_47=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5A, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xFF 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x05 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x2A 0x00 0x00 0x02    // '????*???' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x02    // '????+???' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x02    // '????F???' \n\t0x00 0x00 0x00 0x00 0xDF 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xE1 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xF7 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xE3 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xF7 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xFF 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xFF 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF9 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x4A 0x01 0x00 0x80    // '????J??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xF9 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5A, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x72 0x6F 0x70 0x20 0x4C    // '??Prop L' \n\t0x69 0x73 0x74 0x0D 0x0A 0x53 0x68 0x6F    // 'ist??Sho' \n\t0x77 0x73 0x20 0x79 0x6F 0x75 0x20 0x74    // 'ws you t' \n\t0x68 0x65 0x20 0x70 0x72 0x6F 0x70 0x73    // 'he props' \n\t0x20 0x61 0x6E 0x64 0x20 0x33 0x44 0x20    // ' and 3D ' \n\t0x77 0x6F 0x72 0x64 0x73 0x20 0x79 0x6F    // 'words yo' \n\t0x75 0x27 0x76 0x65 0x20 0x75 0x73 0x65    // 'u've use' \n\t0x64 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'd in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E    // 'r movie.' \n\t0x20 0x20 0x59 0x6F 0x75 0x20 0x63 0x61    // '  You ca' \n\t0x6E 0x20 0x73 0x65 0x6C 0x65 0x63 0x74    // 'n select' \n\t0x20 0x61 0x20 0x70 0x72 0x6F 0x70 0x20    // ' a prop ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x77 0x6F    // 'or 3D wo' \n\t0x72 0x64 0x20 0x74 0x68 0x61 0x74 0x20    // 'rd that ' \n\t0x69 0x73 0x20 0x62 0x65 0x68 0x69 0x6E    // 'is behin' \n\t0x64 0x20 0x73 0x6F 0x6D 0x65 0x74 0x68    // 'd someth' \n\t0x69 0x6E 0x67 0x20 0x65 0x6C 0x73 0x65    // 'ing else' \n\t0x20 0x6F 0x72 0x20 0x6F 0x75 0x74 0x20    // ' or out ' \n\t0x6F 0x66 0x20 0x76 0x69 0x65 0x77 0x2E    // 'of view.' \n\t0x20 0x20 0x4F 0x72 0x2C 0x20 0x79 0x6F    // '  Or, yo' \n\t0x75 0x20 0x63 0x61 0x6E 0x20 0x75 0x73    // 'u can us' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x73 0x61    // 'e the sa' \n\t0x6D 0x65 0x20 0x70 0x72 0x6F 0x70 0x20    // 'me prop ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x77 0x6F    // 'or 3D wo' \n\t0x72 0x64 0x20 0x69 0x6E 0x20 0x61 0x6E    // 'rd in an' \n\t0x6F 0x74 0x68 0x65 0x72 0x20 0x70 0x61    // 'other pa' \n\t0x72 0x74 0x20 0x6F 0x66 0x20 0x79 0x6F    // 'rt of yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x2E 0x20 0x20 0x0D 0x0A 0x54 0x6F 0x20    // '.  ??To ' \n\t0x75 0x73 0x65 0x20 0x74 0x68 0x65 0x20    // 'use the ' \n\t0x70 0x72 0x6F 0x70 0x20 0x6C 0x69 0x73    // 'prop lis' \n\t0x74 0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69    // 't???Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x70    // 'ck the p' \n\t0x72 0x6F 0x70 0x20 0x6F 0x72 0x20 0x33    // 'rop or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x79    // 'D word y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x73 0x65 0x6C 0x65 0x63    // 'to selec' \n\t0x74 0x2C 0x20 0x62 0x72 0x69 0x6E 0x67    // 't, bring' \n\t0x20 0x62 0x61 0x63 0x6B 0x20 0x69 0x6E    // ' back in' \n\t0x74 0x6F 0x20 0x76 0x69 0x65 0x77 0x2C    // 'to view,' \n\t0x20 0x6F 0x72 0x20 0x72 0x65 0x75 0x73    // ' or reus' \n\t0x65 0x2E 0x0D 0x0A 0x49 0x66 0x20 0x74    // 'e.??If t' \n\t0x68 0x65 0x20 0x70 0x72 0x6F 0x70 0x20    // 'he prop ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x77 0x6F    // 'or 3D wo' \n\t0x72 0x64 0x20 0x69 0x73 0x20 0x6F 0x75    // 'rd is ou' \n\t0x74 0x20 0x6F 0x66 0x20 0x76 0x69 0x65    // 't of vie' \n\t0x77 0x2C 0x20 0x74 0x68 0x65 0x20 0x6F    // 'w, the o' \n\t0x62 0x6A 0x65 0x63 0x74 0x20 0x72 0x65    // 'bject re' \n\t0x61 0x70 0x70 0x65 0x61 0x72 0x73 0x20    // 'appears ' \n\t0x6F 0x6E 0x2D 0x73 0x74 0x61 0x67 0x65    // 'on-stage' \n\t0x2E 0x20 0x20 0x54 0x6F 0x20 0x70 0x6F    // '.  To po' \n\t0x73 0x69 0x74 0x69 0x6F 0x6E 0x20 0x61    // 'sition a' \n\t0x20 0x70 0x72 0x6F 0x70 0x20 0x6F 0x72    // ' prop or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x2C 0x20 0x20 0x6D 0x6F 0x76 0x65 0x20    // ',  move ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x75 0x6E 0x74 0x69 0x6C 0x20    // 'e until ' \n\t0x79 0x6F 0x75 0x20 0x66 0x69 0x6E 0x64    // 'you find' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x63 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 'ce you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x70    // 'ant to p' \n\t0x75 0x74 0x20 0x74 0x68 0x65 0x20 0x61    // 'ut the a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x74 0x68    // 'ctor, th' \n\t0x65 0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'en click' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1E= thSave\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"thSave\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"thSave\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp1E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thSave\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp1E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x85 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_28=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___portfolio __HELP_SYMBOL( STN \"Def___portfolio\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPortsSave __HELP_SYMBOL( STN \"mbmpPortsSave\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Key___Save __HELP_SYMBOL( STN \"Key___Save\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipKey 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipKey\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5A 0x00 0x00 0x01    // '????Z???' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x0B 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x0F 0x00 0x00 0xFD 0x4C 0x00 0x00 0x03    // '???L???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x04    // '????1???' \n\t0x0D 0x00 0x00 0xFE 0x3A 0x00 0x00 0x04    // '???:???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x40    // '????1??@' \n\t0x01 0x00 0x00 0x00 0x3A 0x00 0x00 0x40    // '????:??@' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x40    // '????L??@' \n\t0x03 0x00 0x00 0x00 0x5A 0x00 0x00 0x40    // '????Z??@' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x80    // '????L??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4C 0x00 0x00 0x82    // '????L??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x4C 0x00 0x00 0xC0    // '????L??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x0D 0x0A 0x53 0x61 0x76    // '?????Sav' \n\t0x65 0x20 0x79 0x6F 0x75 0x72 0x20 0x77    // 'e your w' \n\t0x6F 0x72 0x6B 0x21 0x0D 0x0A 0x54 0x6F    // 'ork!??To' \n\t0x20 0x73 0x61 0x76 0x65 0x20 0x61 0x20    // ' save a ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x0D 0x0A 0x31    // 'movie??1' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x70 0x6F 0x72 0x74 0x66    // 'he portf' \n\t0x6F 0x6C 0x69 0x6F 0x2E 0x0D 0x0A 0x32    // 'olio.??2' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x53    // '?Click S' \n\t0x61 0x76 0x65 0x2E 0x0D 0x0A 0x01 0x20    // 'ave.??? ' \n\t0x53 0x68 0x6F 0x72 0x74 0x63 0x75 0x74    // 'Shortcut' \n\t0x20 0x6B 0x65 0x79                        // ' key' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1F= thSoundEffects\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"thSoundEffects\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"thSoundEffects\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp1F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_61=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thSoundEffects\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp1F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_61=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x31 0x01 0x00 0x00    // '????1???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_57=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_61, 0x0)\nAG(4)\n\tITEM LONG 0x2000009\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsEfxBrowser __HELP_SYMBOL( STN \"mbmpSoundsEfxBrowser\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Attach_Action __HELP_SYMBOL( STN \"Tip___Attach_Action\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG Tip___Play_continuously __HELP_SYMBOL( STN \"Tip___Play_continuously\" )\n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Import __HELP_SYMBOL( STN \"Def___Import\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG Tip___Chaining_sounds __HELP_SYMBOL( STN \"Tip___Chaining_sounds\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_61=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_61, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x2E 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '.???????' \n\t0x01 0xF6 0x00 0x00 0x10 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x0F 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x02    // '????$???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x02    // '????&???' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x02    // '????1???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x02    // '????2???' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x02    // '????<???' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x02    // '????U???' \n\t0x01 0x00 0x00 0x00 0x63 0x00 0x00 0x02    // '????c???' \n\t0x01 0x00 0x00 0x00 0x70 0x00 0x00 0x02    // '????p???' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0x02    // '????q???' \n\t0x01 0x00 0x00 0x00 0x77 0x00 0x00 0x02    // '????w???' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x02    // '????y???' \n\t0x01 0x00 0x00 0x00 0x7C 0x00 0x00 0x02    // '????|???' \n\t0x00 0x00 0x00 0x00 0x8E 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x92 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x79 0x00 0x00 0x03    // '???y???' \n\t0x0A 0x00 0x00 0xFD 0x8E 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x68 0x00 0x00 0x04    // '????h???' \n\t0x0D 0x00 0x00 0xFE 0x6E 0x00 0x00 0x04    // '???n???' \n\t0x00 0x00 0x00 0x00 0xD6 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE5 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x59 0x01 0x00 0x04    // '????Y???' \n\t0x00 0x00 0x00 0x00 0x68 0x00 0x00 0x40    // '????h??@' \n\t0x06 0x00 0x00 0x00 0x6E 0x00 0x00 0x40    // '????n??@' \n\t0x00 0x00 0x00 0x00 0xD6 0x00 0x00 0x40    // '??????@' \n\t0x07 0x00 0x00 0x00 0xE5 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xB3 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xD3 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD5 0x01 0x00 0x40    // '??????@' \n\t0x0A 0x00 0x00 0x00 0xEF 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF1 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0x0F 0x02 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x12 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB3 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0xB3 0x01 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00 0xD5 0x01 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00 0xF1 0x01 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_61=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_61, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x6F 0x75    // '???  Sou' \n\t0x6E 0x64 0x20 0x45 0x66 0x66 0x65 0x63    // 'nd Effec' \n\t0x74 0x73 0x0D 0x0A 0x41 0x64 0x64 0x20    // 'ts??Add ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x65 0x66    // 'sound ef' \n\t0x66 0x65 0x63 0x74 0x73 0x20 0x74 0x6F    // 'fects to' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x21 0x20 0x20 0x59 0x6F    // 'vie!  Yo' \n\t0x75 0x20 0x63 0x61 0x6E 0x20 0x63 0x68    // 'u can ch' \n\t0x6F 0x6F 0x73 0x65 0x20 0x6F 0x6E 0x65    // 'oose one' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x61 0x20    // ' from a ' \n\t0x6C 0x69 0x73 0x74 0x2C 0x20 0x72 0x65    // 'list, re' \n\t0x63 0x6F 0x72 0x64 0x20 0x79 0x6F 0x75    // 'cord you' \n\t0x72 0x20 0x6F 0x77 0x6E 0x2C 0x20 0x6F    // 'r own, o' \n\t0x72 0x20 0x69 0x6D 0x70 0x6F 0x72 0x74    // 'r import' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x61 0x64    // '.??To ad' \n\t0x64 0x20 0x61 0x20 0x73 0x6F 0x75 0x6E    // 'd a soun' \n\t0x64 0x20 0x65 0x66 0x66 0x65 0x63 0x74    // 'd effect' \n\t0x0D 0x0A 0x31 0x09 0x49 0x66 0x20 0x79    // '??1?If y' \n\t0x6F 0x75 0x20 0x73 0x65 0x65 0x20 0x74    // 'ou see t' \n\t0x68 0x65 0x20 0x53 0x6F 0x75 0x6E 0x64    // 'he Sound' \n\t0x73 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 's button' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x74 0x6F 0x70 0x20 0x6F 0x66 0x20 0x74    // 'top of t' \n\t0x68 0x65 0x20 0x73 0x63 0x72 0x65 0x65    // 'he scree' \n\t0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'n, click' \n\t0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09    // ' it.??2?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x61 0x74 0x74 0x61 0x63 0x68 0x20 0x61    // 'attach a' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x2E 0x0D    // ' sound.?' \n\t0x0A 0x33 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?3?Click' \n\t0x20 0x53 0x6F 0x75 0x6E 0x64 0x20 0x45    // ' Sound E' \n\t0x66 0x66 0x65 0x63 0x74 0x73 0x2E 0x0D    // 'ffects.?' \n\t0x0A 0x34 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?4?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x20 0x79 0x6F 0x75 0x20 0x77    // 'nd you w' \n\t0x61 0x6E 0x74 0x2C 0x20 0x74 0x68 0x65    // 'ant, the' \n\t0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // 'n click ' \n\t0x4F 0x4B 0x2E 0x0D 0x0A 0x35 0x09 0x43    // 'OK.??5?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x33 0x44    // 'prop, 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x6F 0x72    // ' word or' \n\t0x20 0x62 0x61 0x63 0x6B 0x67 0x72 0x6F    // ' backgro' \n\t0x75 0x6E 0x64 0x20 0x79 0x6F 0x75 0x20    // 'und you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x61 0x74 0x74 0x61 0x63 0x68 0x20 0x74    // 'attach t' \n\t0x68 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'he sound' \n\t0x20 0x65 0x66 0x66 0x65 0x63 0x74 0x20    // ' effect ' \n\t0x74 0x6F 0x2E 0x0D 0x0A 0x01 0x20 0x41    // 'to.??? A' \n\t0x74 0x74 0x61 0x63 0x68 0x69 0x6E 0x67    // 'ttaching' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \n\t0x20 0x74 0x6F 0x20 0x61 0x6E 0x20 0x61    // ' to an a' \n\t0x63 0x74 0x69 0x6F 0x6E 0x0D 0x0A 0x01    // 'ction???' \n\t0x20 0x43 0x68 0x61 0x69 0x6E 0x69 0x6E    // ' Chainin' \n\t0x67 0x20 0x73 0x6F 0x75 0x6E 0x64 0x73    // 'g sounds' \n\t0x20 0x74 0x6F 0x67 0x65 0x74 0x68 0x65    // ' togethe' \n\t0x72 0x0D 0x0A 0x01 0x20 0x50 0x6C 0x61    // 'r??? Pla' \n\t0x79 0x69 0x6E 0x67 0x20 0x61 0x20 0x73    // 'ying a s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x63 0x6F 0x6E    // 'ound con' \n\t0x74 0x69 0x6E 0x75 0x6F 0x75 0x73 0x6C    // 'tinuousl' \n\t0x79                                       // 'y' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_20= thSpeech\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"thSpeech\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"thSpeech\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp20\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thSpeech\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp20\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x26 0x01 0x00 0x00    // '????&???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0x2000006\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsMicBrowser __HELP_SYMBOL( STN \"mbmpSoundsMicBrowser\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Attach_Action __HELP_SYMBOL( STN \"Tip___Attach_Action\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Import __HELP_SYMBOL( STN \"Def___Import\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG Tip___Chaining_sounds __HELP_SYMBOL( STN \"Tip___Chaining_sounds\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG Tip___Pause_Sound __HELP_SYMBOL( STN \"Tip___Pause_Sound\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x28 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '(???????' \n\t0x01 0xF6 0x00 0x00 0x09 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xF4 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x10 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x12 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x02    // '????(???' \n\t0x01 0x00 0x00 0x00 0x4D 0x00 0x00 0x02    // '????M???' \n\t0x00 0x00 0x00 0x00 0x7D 0x00 0x00 0x02    // '????}???' \n\t0x01 0x00 0x00 0x00 0x80 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x92 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x96 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x7D 0x00 0x00 0x03    // '???}???' \n\t0x0A 0x00 0x00 0xFD 0x92 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x45 0x00 0x00 0x04    // '???E???' \n\t0x00 0x00 0x00 0x00 0xDA 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE9 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x58 0x01 0x00 0x04    // '????X???' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x40    // '???????@' \n\t0x05 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x00 0x00 0x00 0x00 0xDA 0x00 0x00 0x40    // '??????@' \n\t0x09 0x00 0x00 0x00 0xE9 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x84 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xA4 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xA6 0x01 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0xC0 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC2 0x01 0x00 0x40    // '??????@' \n\t0x0A 0x00 0x00 0x00 0xF4 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x94 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x0B 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x84 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0x84 0x01 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0xA6 0x01 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0xC2 0x01 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x70 0x65    // '???  Spe' \n\t0x65 0x63 0x68 0x0D 0x0A 0x4D 0x61 0x6B    // 'ech??Mak' \n\t0x65 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // 'e an act' \n\t0x6F 0x72 0x20 0x74 0x61 0x6C 0x6B 0x21    // 'or talk!' \n\t0x20 0x20 0x59 0x6F 0x75 0x20 0x63 0x61    // '  You ca' \n\t0x6E 0x20 0x72 0x65 0x63 0x6F 0x72 0x64    // 'n record' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6F 0x77    // ' your ow' \n\t0x6E 0x20 0x76 0x6F 0x69 0x63 0x65 0x2C    // 'n voice,' \n\t0x20 0x69 0x6D 0x70 0x6F 0x72 0x74 0x20    // ' import ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64 0x2C    // 'a sound,' \n\t0x20 0x6F 0x72 0x20 0x63 0x68 0x6F 0x6F    // ' or choo' \n\t0x73 0x65 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'se from ' \n\t0x61 0x20 0x6C 0x69 0x73 0x74 0x20 0x6F    // 'a list o' \n\t0x66 0x20 0x6C 0x69 0x6E 0x65 0x73 0x20    // 'f lines ' \n\t0x79 0x6F 0x75 0x20 0x72 0x65 0x63 0x6F    // 'you reco' \n\t0x72 0x64 0x65 0x64 0x2E 0x0D 0x0A 0x54    // 'rded.??T' \n\t0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20 0x61    // 'o make a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x20    // 'n actor ' \n\t0x74 0x61 0x6C 0x6B 0x0D 0x0A 0x31 0x09    // 'talk??1?' \n\t0x49 0x66 0x20 0x79 0x6F 0x75 0x20 0x73    // 'If you s' \n\t0x65 0x65 0x20 0x74 0x68 0x65 0x20 0x53    // 'ee the S' \n\t0x6F 0x75 0x6E 0x64 0x73 0x20 0x62 0x75    // 'ounds bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x74 0x20    // 'tton at ' \n\t0x74 0x68 0x65 0x20 0x74 0x6F 0x70 0x20    // 'the top ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x73    // 'of the s' \n\t0x63 0x72 0x65 0x65 0x6E 0x2C 0x20 0x63    // 'creen, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x69 0x74 0x2E    // 'lick it.' \n\t0x0D 0x0A 0x32 0x09 0x47 0x6F 0x20 0x74    // '??2?Go t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x70 0x6C    // 'o the pl' \n\t0x61 0x63 0x65 0x20 0x69 0x6E 0x20 0x79    // 'ace in y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x61 0x74 0x74 0x61    // ' to atta' \n\t0x63 0x68 0x20 0x74 0x68 0x65 0x20 0x73    // 'ch the s' \n\t0x6F 0x75 0x6E 0x64 0x2E 0x0D 0x0A 0x33    // 'ound.??3' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x53    // '?Click S' \n\t0x70 0x65 0x65 0x63 0x68 0x2E 0x0D 0x0A    // 'peech.??' \n\t0x34 0x09 0x52 0x65 0x63 0x6F 0x72 0x64    // '4?Record' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6F 0x77    // ' your ow' \n\t0x6E 0x20 0x64 0x69 0x61 0x6C 0x6F 0x67    // 'n dialog' \n\t0x75 0x65 0x2C 0x20 0x74 0x68 0x65 0x6E    // 'ue, then' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x4F    // ' click O' \n\t0x4B 0x2E 0x0D 0x0A 0x35 0x09 0x43 0x6C    // 'K.??5?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x61 0x63 0x74 0x6F 0x72 0x20 0x79 0x6F    // 'actor yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20 0x74    // 'o make t' \n\t0x61 0x6C 0x6B 0x2E 0x0D 0x0A 0x01 0x20    // 'alk.??? ' \n\t0x41 0x74 0x74 0x61 0x63 0x68 0x69 0x6E    // 'Attachin' \n\t0x67 0x20 0x61 0x20 0x73 0x6F 0x75 0x6E    // 'g a soun' \n\t0x64 0x20 0x74 0x6F 0x20 0x61 0x6E 0x20    // 'd to an ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x0D 0x0A    // 'action??' \n\t0x01 0x20 0x43 0x68 0x61 0x69 0x6E 0x69    // '? Chaini' \n\t0x6E 0x67 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'ng sound' \n\t0x73 0x20 0x74 0x6F 0x67 0x65 0x74 0x68    // 's togeth' \n\t0x65 0x72 0x0D 0x0A 0x01 0x20 0x50 0x61    // 'er??? Pa' \n\t0x75 0x73 0x69 0x6E 0x67 0x20 0x74 0x68    // 'using th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'e movie ' \n\t0x75 0x6E 0x74 0x69 0x6C 0x20 0x61 0x6E    // 'until an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x20 0x69    // ' actor i' \n\t0x73 0x20 0x64 0x6F 0x6E 0x65 0x20 0x74    // 's done t' \n\t0x61 0x6C 0x6B 0x69 0x6E 0x67              // 'alking' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_21= thMusic\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"thMusic\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"thMusic\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp21\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thMusic\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp21\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Play_continuously __HELP_SYMBOL( STN \"Tip___Play_continuously\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsMusicBrowser __HELP_SYMBOL( STN \"mbmpSoundsMusicBrowser\" )\n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG Tip___Stop_sound __HELP_SYMBOL( STN \"Tip___Stop_sound\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Import __HELP_SYMBOL( STN \"Def___Import\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x24 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '$???????' \n\t0x01 0xF6 0x00 0x00 0x08 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x8E 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x02    // '????(???' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x02    // '????)???' \n\t0x01 0x00 0x00 0x00 0x4E 0x00 0x00 0x02    // '????N???' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x02    // '????P???' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0x02    // '????S???' \n\t0x00 0x00 0x00 0x00 0x5C 0x00 0x00 0x02    // '????\\???' \n\t0x01 0x00 0x00 0x00 0x60 0x00 0x00 0x02    // '????`???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x50 0x00 0x00 0x03    // '???P???' \n\t0x0A 0x00 0x00 0xFD 0x5C 0x00 0x00 0x03    // '???\\???' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x45 0x00 0x00 0x04    // '???E???' \n\t0x00 0x00 0x00 0x00 0xA4 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xB3 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x21 0x01 0x00 0x04    // '????!???' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x40    // '???????@' \n\t0x07 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x00 0x00 0x00 0x00 0xA4 0x00 0x00 0x40    // '??????@' \n\t0x09 0x00 0x00 0x00 0xB3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x5C 0x01 0x00 0x40    // '????\\??@' \n\t0x02 0x00 0x00 0x00 0x7A 0x01 0x00 0x40    // '????z??@' \n\t0x00 0x00 0x00 0x00 0x7C 0x01 0x00 0x40    // '????|??@' \n\t0x05 0x00 0x00 0x00 0x8E 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x5E 0x00 0x00 0x80    // '????^??' \n\t0x00 0x00 0x02 0x00 0x90 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5C 0x01 0x00 0x82    // '????\\??' \n\t0x00 0x00 0x00 0x00 0x90 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0x5C 0x01 0x00 0xC0    // '????\\??' \n\t0x04 0x00 0x00 0x00 0x7C 0x01 0x00 0xC0    // '????|??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4D 0x75 0x73    // '???  Mus' \n\t0x69 0x63 0x0D 0x0A 0x41 0x74 0x74 0x61    // 'ic??Atta' \n\t0x63 0x68 0x20 0x6D 0x75 0x73 0x69 0x63    // 'ch music' \n\t0x20 0x74 0x6F 0x20 0x61 0x20 0x62 0x61    // ' to a ba' \n\t0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'ckground' \n\t0x21 0x20 0x20 0x43 0x68 0x6F 0x6F 0x73    // '!  Choos' \n\t0x65 0x20 0x66 0x72 0x6F 0x6D 0x20 0x61    // 'e from a' \n\t0x20 0x6C 0x69 0x73 0x74 0x20 0x6F 0x72    // ' list or' \n\t0x20 0x69 0x6D 0x70 0x6F 0x72 0x74 0x20    // ' import ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64 0x2E    // 'a sound.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x6D 0x75 0x73 0x69 0x63 0x0D 0x0A    // ' music??' \n\t0x31 0x09 0x49 0x66 0x20 0x79 0x6F 0x75    // '1?If you' \n\t0x20 0x73 0x65 0x65 0x20 0x74 0x68 0x65    // ' see the' \n\t0x20 0x53 0x6F 0x75 0x6E 0x64 0x73 0x20    // ' Sounds ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x61    // 'button a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 't the to' \n\t0x70 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'p of the' \n\t0x20 0x73 0x63 0x72 0x65 0x65 0x6E 0x2C    // ' screen,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x69    // ' click i' \n\t0x74 0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F    // 't.??2?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x61 0x74    // 'nt to at' \n\t0x74 0x61 0x63 0x68 0x20 0x74 0x68 0x65    // 'tach the' \n\t0x20 0x6D 0x75 0x73 0x69 0x63 0x2E 0x0D    // ' music.?' \n\t0x0A 0x33 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?3?Click' \n\t0x20 0x4D 0x75 0x73 0x69 0x63 0x2E 0x0D    // ' Music.?' \n\t0x0A 0x34 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?4?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x75 0x73    // ' the mus' \n\t0x69 0x63 0x20 0x79 0x6F 0x75 0x20 0x77    // 'ic you w' \n\t0x61 0x6E 0x74 0x2C 0x20 0x74 0x68 0x65    // 'ant, the' \n\t0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // 'n click ' \n\t0x4F 0x4B 0x2E 0x0D 0x0A 0x35 0x09 0x43    // 'OK.??5?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x62 0x61 0x63 0x6B 0x67 0x72 0x6F    // ' backgro' \n\t0x75 0x6E 0x64 0x20 0x79 0x6F 0x75 0x20    // 'und you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x61 0x74 0x74 0x61 0x63 0x68 0x20 0x74    // 'attach t' \n\t0x68 0x65 0x20 0x6D 0x75 0x73 0x69 0x63    // 'he music' \n\t0x20 0x74 0x6F 0x2E 0x0D 0x0A 0x01 0x20    // ' to.??? ' \n\t0x50 0x6C 0x61 0x79 0x69 0x6E 0x67 0x20    // 'Playing ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64 0x20    // 'a sound ' \n\t0x63 0x6F 0x6E 0x74 0x69 0x6E 0x75 0x6F    // 'continuo' \n\t0x75 0x73 0x6C 0x79 0x0D 0x0A 0x01 0x20    // 'usly??? ' \n\t0x53 0x74 0x6F 0x70 0x70 0x69 0x6E 0x67    // 'Stopping' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \n\t0x0D 0x0A                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_22= thPlayOneTime\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"thPlayOnce\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"thPlayOnce\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp22\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_73=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thPlayOneTime\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp22\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_73=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_62=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_73, 0x0)\nAG(4)\n\tITEM LONG 0x2000005\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsPlayOnce __HELP_SYMBOL( STN \"mbmpSoundsPlayOnce\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Chaining_sounds __HELP_SYMBOL( STN \"Tip___Chaining_sounds\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Choose_sound __HELP_SYMBOL( STN \"Def___Choose_sound\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 5 LONG Tip___Stop_sound __HELP_SYMBOL( STN \"Tip___Stop_sound\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG Tip___How_many_sounds __HELP_SYMBOL( STN \"Tip___How_many_sounds\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_73=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_73, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x29 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // ')???????' \n\t0x01 0xF6 0x00 0x00 0x0C 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xA3 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x01 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x02    // '????4???' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x02    // '????7???' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x02    // '????E???' \n\t0x01 0x00 0x00 0x00 0x49 0x00 0x00 0x02    // '????I???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x34 0x00 0x00 0x03    // '???4???' \n\t0x0A 0x00 0x00 0xFD 0x45 0x00 0x00 0x03    // '???E???' \n\t0x00 0x00 0x00 0x00 0xA3 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x8D 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x9C 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xD2 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE2 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x8D 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0x9C 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD2 0x00 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0xE2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x52 0x01 0x00 0x40    // '????R??@' \n\t0x00 0x00 0x00 0x00 0x54 0x01 0x00 0x40    // '????T??@' \n\t0x03 0x00 0x00 0x00 0x6E 0x01 0x00 0x40    // '????n??@' \n\t0x00 0x00 0x00 0x00 0x70 0x01 0x00 0x40    // '????p??@' \n\t0x0A 0x00 0x00 0x00 0x8F 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x91 0x01 0x00 0x40    // '??????@' \n\t0x07 0x00 0x00 0x00 0xA3 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x47 0x00 0x00 0x80    // '????G??' \n\t0x00 0x00 0x02 0x00 0x0E 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x54 0x01 0x00 0x82    // '????T??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x54 0x01 0x00 0xC0    // '????T??' \n\t0x05 0x00 0x00 0x00 0x70 0x01 0x00 0xC0    // '????p??' \n\t0x05 0x00 0x00 0x00 0x91 0x01 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_73=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_73, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x50 0x6C 0x61    // '???  Pla' \n\t0x79 0x20 0x4F 0x6E 0x63 0x65 0x0D 0x0A    // 'y Once??' \n\t0x41 0x74 0x74 0x61 0x63 0x68 0x20 0x61    // 'Attach a' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x61    // ' sound a' \n\t0x6E 0x64 0x20 0x70 0x6C 0x61 0x79 0x20    // 'nd play ' \n\t0x69 0x74 0x20 0x6F 0x6E 0x65 0x20 0x74    // 'it one t' \n\t0x69 0x6D 0x65 0x2E 0x0D 0x0A 0x54 0x6F    // 'ime.??To' \n\t0x20 0x61 0x74 0x74 0x61 0x63 0x68 0x20    // ' attach ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64 0x0D    // 'a sound?' \n\t0x0A 0x31 0x09 0x49 0x66 0x20 0x79 0x6F    // '?1?If yo' \n\t0x75 0x20 0x73 0x65 0x65 0x20 0x74 0x68    // 'u see th' \n\t0x65 0x20 0x53 0x6F 0x75 0x6E 0x64 0x73    // 'e Sounds' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x20    // ' button ' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x74    // 'at the t' \n\t0x6F 0x70 0x20 0x6F 0x66 0x20 0x74 0x68    // 'op of th' \n\t0x65 0x20 0x73 0x63 0x72 0x65 0x65 0x6E    // 'e screen' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09 0x47    // 'it.??2?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x61    // 'ant to a' \n\t0x74 0x74 0x61 0x63 0x68 0x20 0x74 0x68    // 'ttach th' \n\t0x65 0x20 0x73 0x6F 0x75 0x6E 0x64 0x2E    // 'e sound.' \n\t0x0D 0x0A 0x33 0x09 0x43 0x68 0x6F 0x6F    // '??3?Choo' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x73    // 'se the s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x79 0x6F 0x75    // 'ound you' \n\t0x20 0x77 0x61 0x6E 0x74 0x2E 0x0D 0x0A    // ' want.??' \n\t0x34 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '4?Click ' \n\t0x50 0x6C 0x61 0x79 0x20 0x4F 0x6E 0x63    // 'Play Onc' \n\t0x65 0x2E 0x0D 0x0A 0x35 0x09 0x43 0x6C    // 'e.??5?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2C 0x20 0x70    // 'actor, p' \n\t0x72 0x6F 0x70 0x2C 0x20 0x33 0x44 0x20    // 'rop, 3D ' \n\t0x77 0x6F 0x72 0x64 0x2C 0x20 0x6F 0x72    // 'word, or' \n\t0x20 0x62 0x61 0x63 0x6B 0x67 0x72 0x6F    // ' backgro' \n\t0x75 0x6E 0x64 0x20 0x79 0x6F 0x75 0x20    // 'und you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x61 0x74 0x74 0x61 0x63 0x68 0x20 0x74    // 'attach t' \n\t0x68 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'he sound' \n\t0x20 0x74 0x6F 0x2E 0x0D 0x0A 0x01 0x20    // ' to.??? ' \n\t0x43 0x68 0x61 0x69 0x6E 0x69 0x6E 0x67    // 'Chaining' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x73 0x20    // ' sounds ' \n\t0x74 0x6F 0x67 0x65 0x74 0x68 0x65 0x72    // 'together' \n\t0x0D 0x0A 0x01 0x20 0x48 0x6F 0x77 0x20    // '??? How ' \n\t0x6D 0x61 0x6E 0x79 0x20 0x73 0x6F 0x75    // 'many sou' \n\t0x6E 0x64 0x73 0x20 0x63 0x61 0x6E 0x20    // 'nds can ' \n\t0x49 0x20 0x61 0x74 0x74 0x61 0x63 0x68    // 'I attach' \n\t0x3F 0x0D 0x0A 0x01 0x20 0x53 0x74 0x6F    // '???? Sto' \n\t0x70 0x70 0x69 0x6E 0x67 0x20 0x61 0x20    // 'pping a ' \n\t0x73 0x6F 0x75 0x6E 0x64                   // 'sound' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_23= thPlayAgainAgain\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"thLoop\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"thLoop\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp23\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thPlayAgainAgain\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp23\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_69=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000002\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsLooping __HELP_SYMBOL( STN \"mbmpSoundsLooping\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Choose_sound __HELP_SYMBOL( STN \"Def___Choose_sound\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___How_many_sounds __HELP_SYMBOL( STN \"Tip___How_many_sounds\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG Tip___Stop_sound __HELP_SYMBOL( STN \"Tip___Stop_sound\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x21 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '!???????' \n\t0x01 0xF6 0x00 0x00 0x07 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xBD 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0x02    // '????R???' \n\t0x01 0x00 0x00 0x00 0x54 0x00 0x00 0x02    // '????T???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x0A 0x00 0x00 0xFD 0x50 0x00 0x00 0x03    // '???P???' \n\t0x0F 0x00 0x00 0xFD 0x52 0x00 0x00 0x03    // '???R???' \n\t0x00 0x00 0x00 0x00 0x98 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA7 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xDD 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xED 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x98 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xA7 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xDD 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xED 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x88 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x8A 0x01 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0xA9 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xAB 0x01 0x00 0x40    // '??????@' \n\t0x08 0x00 0x00 0x00 0xBD 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0x80    // '????R??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8A 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0x8A 0x01 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0xAB 0x01 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4C 0x6F 0x6F    // '???  Loo' \n\t0x70 0x0D 0x0A 0x41 0x74 0x74 0x61 0x63    // 'p??Attac' \n\t0x68 0x20 0x61 0x20 0x73 0x6F 0x75 0x6E    // 'h a soun' \n\t0x64 0x20 0x61 0x6E 0x64 0x20 0x70 0x6C    // 'd and pl' \n\t0x61 0x79 0x20 0x69 0x74 0x20 0x63 0x6F    // 'ay it co' \n\t0x6E 0x74 0x69 0x6E 0x75 0x6F 0x75 0x73    // 'ntinuous' \n\t0x6C 0x79 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'ly.??To ' \n\t0x70 0x6C 0x61 0x79 0x20 0x61 0x20 0x73    // 'play a s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x63 0x6F 0x6E    // 'ound con' \n\t0x74 0x69 0x6E 0x75 0x6F 0x75 0x73 0x6C    // 'tinuousl' \n\t0x79 0x20 0x0D 0x0A 0x31 0x09 0x49 0x66    // 'y ??1?If' \n\t0x20 0x79 0x6F 0x75 0x20 0x73 0x65 0x65    // ' you see' \n\t0x20 0x74 0x68 0x65 0x20 0x53 0x6F 0x75    // ' the Sou' \n\t0x6E 0x64 0x73 0x20 0x62 0x75 0x74 0x74    // 'nds butt' \n\t0x6F 0x6E 0x20 0x61 0x74 0x20 0x74 0x68    // 'on at th' \n\t0x65 0x20 0x74 0x6F 0x70 0x20 0x6F 0x66    // 'e top of' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x63 0x72    // ' the scr' \n\t0x65 0x65 0x6E 0x2C 0x20 0x63 0x6C 0x69    // 'een, cli' \n\t0x63 0x6B 0x20 0x69 0x74 0x2E 0x0D 0x0A    // 'ck it.??' \n\t0x32 0x09 0x47 0x6F 0x20 0x74 0x6F 0x20    // '2?Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'e in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'r movie ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x61 0x74 0x74 0x61 0x63 0x68    // 'o attach' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x2E 0x0D 0x0A 0x33 0x09 0x43    // 'nd.??3?C' \n\t0x68 0x6F 0x6F 0x73 0x65 0x20 0x74 0x68    // 'hoose th' \n\t0x65 0x20 0x73 0x6F 0x75 0x6E 0x64 0x20    // 'e sound ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x2E 0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69    // '.??4?Cli' \n\t0x63 0x6B 0x20 0x4C 0x6F 0x6F 0x70 0x2E    // 'ck Loop.' \n\t0x0D 0x0A 0x35 0x09 0x43 0x6C 0x69 0x63    // '??5?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'k the ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x33 0x44 0x20 0x77 0x6F    // 'p, 3D wo' \n\t0x72 0x64 0x2C 0x20 0x6F 0x72 0x20 0x62    // 'rd, or b' \n\t0x61 0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E    // 'ackgroun' \n\t0x64 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'd you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x61 0x74    // 'nt to at' \n\t0x74 0x61 0x63 0x68 0x20 0x74 0x68 0x65    // 'tach the' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x74    // ' sound t' \n\t0x6F 0x2E 0x20 0x20 0x57 0x68 0x65 0x6E    // 'o.  When' \n\t0x20 0x79 0x6F 0x75 0x20 0x70 0x6C 0x61    // ' you pla' \n\t0x79 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'y your m' \n\t0x6F 0x76 0x69 0x65 0x2C 0x20 0x74 0x68    // 'ovie, th' \n\t0x65 0x20 0x73 0x6F 0x75 0x6E 0x64 0x20    // 'e sound ' \n\t0x77 0x69 0x6C 0x6C 0x20 0x6C 0x6F 0x6F    // 'will loo' \n\t0x70 0x2E 0x0D 0x0A 0x01 0x20 0x48 0x6F    // 'p.??? Ho' \n\t0x77 0x20 0x6D 0x61 0x6E 0x79 0x20 0x73    // 'w many s' \n\t0x6F 0x75 0x6E 0x64 0x73 0x20 0x63 0x61    // 'ounds ca' \n\t0x6E 0x20 0x49 0x20 0x61 0x74 0x74 0x61    // 'n I atta' \n\t0x63 0x68 0x3F 0x0D 0x0A 0x01 0x20 0x53    // 'ch???? S' \n\t0x74 0x6F 0x70 0x70 0x69 0x6E 0x67 0x20    // 'topping ' \n\t0x61 0x20 0x73 0x6F 0x75 0x6E 0x64         // 'a sound' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_24= thActionMatcher\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"thActionMatcher\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"thActionMatcher\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp24\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_56=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thActionMatcher\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp24\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_56=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x18 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_50=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_56, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsAttachToCell __HELP_SYMBOL( STN \"mbmpSoundsAttachToCell\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Choose_sound __HELP_SYMBOL( STN \"Def___Choose_sound\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___How_many_sounds __HELP_SYMBOL( STN \"Tip___How_many_sounds\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_56=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_56, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // ' ???????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x11 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x1D 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x02    // '????$???' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x02    // '????%???' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x02    // '????@???' \n\t0x01 0x00 0x00 0x00 0x41 0x00 0x00 0x02    // '????A???' \n\t0x00 0x00 0x00 0x00 0xC0 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xC2 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xA0 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xC0 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x1D 0x02 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x15 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x5E 0x01 0x00 0x04    // '????^???' \n\t0x0D 0x00 0x00 0xFE 0x6E 0x01 0x00 0x04    // '???n???' \n\t0x00 0x00 0x00 0x00 0x06 0x01 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x15 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x5E 0x01 0x00 0x40    // '????^??@' \n\t0x05 0x00 0x00 0x00 0x6E 0x01 0x00 0x40    // '????n??@' \n\t0x00 0x00 0x00 0x00 0xFE 0x01 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0x1D 0x02 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0xC0 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x13 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xFE 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0xFE 0x01 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_56=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_56, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x41 0x63 0x74    // '???  Act' \n\t0x69 0x6F 0x6E 0x20 0x4D 0x61 0x74 0x63    // 'ion Matc' \n\t0x68 0x65 0x72 0x0D 0x0A 0x41 0x74 0x74    // 'her??Att' \n\t0x61 0x63 0x68 0x20 0x61 0x20 0x73 0x6F    // 'ach a so' \n\t0x75 0x6E 0x64 0x20 0x74 0x6F 0x20 0x74    // 'und to t' \n\t0x68 0x65 0x20 0x63 0x75 0x72 0x72 0x65    // 'he curre' \n\t0x6E 0x74 0x20 0x61 0x63 0x74 0x69 0x6F    // 'nt actio' \n\t0x6E 0x20 0x70 0x6F 0x73 0x69 0x74 0x69    // 'n positi' \n\t0x6F 0x6E 0x2E 0x20 0x20 0x46 0x6F 0x72    // 'on.  For' \n\t0x20 0x65 0x78 0x61 0x6D 0x70 0x6C 0x65    // ' example' \n\t0x2C 0x20 0x75 0x73 0x65 0x20 0x77 0x68    // ', use wh' \n\t0x65 0x6E 0x20 0x79 0x6F 0x75 0x20 0x77    // 'en you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x68 0x65 0x20    // 'ant the ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x6F 0x66    // 'sound of' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x20 0x72 0x75 0x6E 0x6E 0x69 0x6E    // 'r runnin' \n\t0x67 0x20 0x6D 0x61 0x74 0x63 0x68 0x65    // 'g matche' \n\t0x64 0x20 0x75 0x70 0x20 0x77 0x69 0x74    // 'd up wit' \n\t0x68 0x20 0x68 0x69 0x73 0x20 0x66 0x6F    // 'h his fo' \n\t0x6F 0x74 0x73 0x74 0x65 0x70 0x73 0x2E    // 'otsteps.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x61 0x74 0x74    // '??To att' \n\t0x61 0x63 0x68 0x20 0x61 0x20 0x73 0x6F    // 'ach a so' \n\t0x75 0x6E 0x64 0x20 0x74 0x6F 0x20 0x61    // 'und to a' \n\t0x6E 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'n action' \n\t0x0D 0x0A 0x31 0x09 0x49 0x66 0x20 0x79    // '??1?If y' \n\t0x6F 0x75 0x20 0x73 0x65 0x65 0x20 0x74    // 'ou see t' \n\t0x68 0x65 0x20 0x53 0x6F 0x75 0x6E 0x64    // 'he Sound' \n\t0x73 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 's button' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x74 0x6F 0x70 0x20 0x6F 0x66 0x20 0x74    // 'top of t' \n\t0x68 0x65 0x20 0x73 0x63 0x72 0x65 0x65    // 'he scree' \n\t0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'n, click' \n\t0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09    // ' it.??2?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x6D 0x61 0x74 0x63 0x68 0x20 0x61 0x20    // 'match a ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F    // 'sound to' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x69    // ' an acti' \n\t0x6F 0x6E 0x20 0x70 0x6F 0x73 0x69 0x74    // 'on posit' \n\t0x69 0x6F 0x6E 0x2E 0x0D 0x0A 0x33 0x09    // 'ion.??3?' \n\t0x43 0x68 0x6F 0x6F 0x73 0x65 0x20 0x74    // 'Choose t' \n\t0x68 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'he sound' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x2E 0x0D 0x0A 0x34 0x09 0x43 0x6C    // 't.??4?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x41 0x63 0x74 0x69 0x6F 0x6E 0x20 0x4D    // 'Action M' \n\t0x61 0x74 0x63 0x68 0x65 0x72 0x2D 0x2D    // 'atcher--' \n\t0x79 0x6F 0x75 0x27 0x6C 0x6C 0x20 0x66    // 'you'll f' \n\t0x69 0x6E 0x64 0x20 0x69 0x74 0x20 0x75    // 'ind it u' \n\t0x6E 0x64 0x65 0x72 0x20 0x4D 0x6F 0x72    // 'nder Mor' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E    // 'e Tools.' \n\t0x0D 0x0A 0x35 0x09 0x43 0x6C 0x69 0x63    // '??5?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'k the ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x79 0x6F    // ' word yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x61 0x74 0x74 0x61 0x63 0x68    // 'o attach' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x20 0x74 0x6F 0x2E 0x0D 0x0A    // 'nd to.??' \n\t0x01 0x20 0x48 0x6F 0x77 0x20 0x6D 0x61    // '? How ma' \n\t0x6E 0x79 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'ny sound' \n\t0x73 0x20 0x63 0x61 0x6E 0x20 0x49 0x20    // 's can I ' \n\t0x61 0x74 0x74 0x61 0x63 0x68 0x3F         // 'attach?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_25= thListener\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"thListener\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"thListener\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp25\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_74=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thListener\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp25\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_74=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x2C 0x01 0x00 0x00    // '????,???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_71=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_74, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsListen __HELP_SYMBOL( STN \"mbmpSoundsListen\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_74=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_74, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1F 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x0B 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x15 0x02 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x02    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x02    // '????'???' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x02    // '????5???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x02    // '????K???' \n\t0x00 0x00 0x00 0x00 0x67 0x00 0x00 0x02    // '????g???' \n\t0x01 0x00 0x00 0x00 0x69 0x00 0x00 0x02    // '????i???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x4D 0x00 0x00 0x03    // '???M???' \n\t0x0A 0x00 0x00 0xFD 0x65 0x00 0x00 0x03    // '???e???' \n\t0x0F 0x00 0x00 0xFD 0x67 0x00 0x00 0x03    // '???g???' \n\t0x00 0x00 0x00 0x00 0xAD 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xBC 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x33 0x01 0x00 0x04    // '????3???' \n\t0x00 0x00 0x00 0x00 0xAD 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xBC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x15 0x02 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x67 0x00 0x00 0x80    // '????g??' \n\t0x00 0x00 0x02 0x00 0x94 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x0D 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x35 0x01 0x00 0x82    // '????5??' \n\t0x00 0x00 0x00 0x00 0x9C 0x01 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_74=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_74, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4C 0x69 0x73    // '???  Lis' \n\t0x74 0x65 0x6E 0x65 0x72 0x0D 0x0A 0x4C    // 'tener??L' \n\t0x69 0x73 0x74 0x65 0x6E 0x20 0x74 0x6F    // 'isten to' \n\t0x2C 0x20 0x72 0x65 0x6D 0x6F 0x76 0x65    // ', remove' \n\t0x2C 0x20 0x6F 0x72 0x20 0x63 0x68 0x61    // ', or cha' \n\t0x6E 0x67 0x65 0x20 0x74 0x68 0x65 0x20    // 'nge the ' \n\t0x76 0x6F 0x6C 0x75 0x6D 0x65 0x20 0x6F    // 'volume o' \n\t0x66 0x20 0x69 0x6E 0x64 0x69 0x76 0x69    // 'f indivi' \n\t0x64 0x75 0x61 0x6C 0x20 0x73 0x6F 0x75    // 'dual sou' \n\t0x6E 0x64 0x73 0x2E 0x20 0x0D 0x0A 0x54    // 'nds. ??T' \n\t0x6F 0x20 0x75 0x73 0x65 0x20 0x74 0x68    // 'o use th' \n\t0x65 0x20 0x4C 0x69 0x73 0x74 0x65 0x6E    // 'e Listen' \n\t0x65 0x72 0x20 0x74 0x6F 0x6F 0x6C 0x0D    // 'er tool?' \n\t0x0A 0x31 0x09 0x49 0x66 0x20 0x79 0x6F    // '?1?If yo' \n\t0x75 0x20 0x73 0x65 0x65 0x20 0x74 0x68    // 'u see th' \n\t0x65 0x20 0x53 0x6F 0x75 0x6E 0x64 0x73    // 'e Sounds' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x20    // ' button ' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x74    // 'at the t' \n\t0x6F 0x70 0x20 0x6F 0x66 0x20 0x74 0x68    // 'op of th' \n\t0x65 0x20 0x73 0x63 0x72 0x65 0x65 0x6E    // 'e screen' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09 0x47    // 'it.??2?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x74 0x68 0x65 0x20 0x73    // 're the s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x62 0x65 0x67    // 'ound beg' \n\t0x69 0x6E 0x73 0x2E 0x20 0x20 0x20 0x59    // 'ins.   Y' \n\t0x6F 0x75 0x27 0x6C 0x6C 0x20 0x68 0x65    // 'ou'll he' \n\t0x61 0x72 0x20 0x74 0x68 0x65 0x20 0x73    // 'ar the s' \n\t0x6F 0x75 0x6E 0x64 0x73 0x20 0x61 0x73    // 'ounds as' \n\t0x20 0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76    // ' you mov' \n\t0x65 0x20 0x66 0x72 0x6F 0x6D 0x20 0x66    // 'e from f' \n\t0x72 0x61 0x6D 0x65 0x20 0x74 0x6F 0x20    // 'rame to ' \n\t0x66 0x72 0x61 0x6D 0x65 0x2E 0x0D 0x0A    // 'frame.??' \n\t0x33 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '3?Click ' \n\t0x74 0x68 0x65 0x20 0x4C 0x69 0x73 0x74    // 'the List' \n\t0x65 0x6E 0x65 0x72 0x2E 0x0D 0x0A 0x34    // 'ener.??4' \n\t0x09 0x54 0x6F 0x20 0x6C 0x69 0x73 0x74    // '?To list' \n\t0x65 0x6E 0x20 0x74 0x6F 0x20 0x73 0x6F    // 'en to so' \n\t0x75 0x6E 0x64 0x73 0x2C 0x20 0x6D 0x6F    // 'unds, mo' \n\t0x76 0x65 0x20 0x74 0x68 0x65 0x20 0x6D    // 've the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x63 0x75 0x72    // 'ouse cur' \n\t0x73 0x6F 0x72 0x20 0x6F 0x76 0x65 0x72    // 'sor over' \n\t0x20 0x74 0x68 0x65 0x20 0x33 0x44 0x20    // ' the 3D ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x20 0x77    // 'object w' \n\t0x68 0x6F 0x73 0x65 0x20 0x73 0x6F 0x75    // 'hose sou' \n\t0x6E 0x64 0x20 0x79 0x6F 0x75 0x20 0x77    // 'nd you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x68    // 'ant to h' \n\t0x65 0x61 0x72 0x2E 0x0D 0x0A 0x2D 0x2D    // 'ear.??--' \n\t0x6F 0x72 0x2D 0x2D 0x0D 0x0A 0x54 0x6F    // 'or--??To' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x20    // ' change ' \n\t0x74 0x68 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'the soun' \n\t0x64 0x20 0x76 0x6F 0x6C 0x75 0x6D 0x65    // 'd volume' \n\t0x20 0x6F 0x72 0x20 0x72 0x65 0x6D 0x6F    // ' or remo' \n\t0x76 0x65 0x20 0x61 0x20 0x73 0x6F 0x75    // 've a sou' \n\t0x6E 0x64 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'nd, clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x33 0x44    // 'k the 3D' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x20    // ' object ' \n\t0x6F 0x72 0x20 0x62 0x61 0x63 0x6B 0x67    // 'or backg' \n\t0x72 0x6F 0x75 0x6E 0x64 0x20 0x77 0x68    // 'round wh' \n\t0x6F 0x73 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'ose soun' \n\t0x64 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'd you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x63 0x68    // 'nt to ch' \n\t0x61 0x6E 0x67 0x65 0x20 0x6F 0x72 0x20    // 'ange or ' \n\t0x72 0x65 0x6D 0x6F 0x76 0x65 0x2E         // 'remove.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_26= thSaveAs\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"thSaveAs\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"thSaveAs\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp26\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_54=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thSaveAs\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp26\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_54=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_54, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___portfolio __HELP_SYMBOL( STN \"Def___portfolio\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPortfolioSaveAs __HELP_SYMBOL( STN \"mbmpPortfolioSaveAs\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_54=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_54, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD5 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x03    // '????y???' \n\t0x0A 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x0B 0x00 0x00 0xFD 0x8A 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xD5 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x9F 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0x40    // '??????@' \n\t0x01 0x00 0x00 0x00 0x9F 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xCA 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xCA 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_54=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_54, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x0D 0x0A 0x53 0x61 0x76    // '?????Sav' \n\t0x65 0x20 0x79 0x6F 0x75 0x72 0x20 0x77    // 'e your w' \n\t0x6F 0x72 0x6B 0x20 0x75 0x6E 0x64 0x65    // 'ork unde' \n\t0x72 0x20 0x61 0x20 0x6E 0x65 0x77 0x20    // 'r a new ' \n\t0x6E 0x61 0x6D 0x65 0x2E 0x20 0x20 0x46    // 'name.  F' \n\t0x6F 0x72 0x20 0x65 0x78 0x61 0x6D 0x70    // 'or examp' \n\t0x6C 0x65 0x2C 0x20 0x79 0x6F 0x75 0x20    // 'le, you ' \n\t0x6D 0x61 0x79 0x20 0x77 0x61 0x6E 0x74    // 'may want' \n\t0x20 0x74 0x6F 0x20 0x73 0x61 0x76 0x65    // ' to save' \n\t0x20 0x61 0x20 0x63 0x6F 0x70 0x79 0x20    // ' a copy ' \n\t0x6F 0x66 0x20 0x61 0x20 0x6D 0x6F 0x76    // 'of a mov' \n\t0x69 0x65 0x20 0x62 0x79 0x20 0x67 0x69    // 'ie by gi' \n\t0x76 0x69 0x6E 0x67 0x20 0x69 0x74 0x20    // 'ving it ' \n\t0x61 0x20 0x64 0x69 0x66 0x66 0x65 0x72    // 'a differ' \n\t0x65 0x6E 0x74 0x20 0x6E 0x61 0x6D 0x65    // 'ent name' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x73 0x61    // '.??To sa' \n\t0x76 0x65 0x20 0x61 0x20 0x6D 0x6F 0x76    // 've a mov' \n\t0x69 0x65 0x0D 0x0A 0x31 0x09 0x43 0x6C    // 'ie??1?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x70 0x6F 0x72 0x74 0x66 0x6F 0x6C 0x69    // 'portfoli' \n\t0x6F 0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C    // 'o.??2?Cl' \n\t0x69 0x63 0x6B 0x20 0x53 0x61 0x76 0x65    // 'ick Save' \n\t0x20 0x41 0x73 0x2E 0x0D 0x0A 0x33 0x09    // ' As.??3?' \n\t0x54 0x79 0x70 0x65 0x20 0x74 0x68 0x65    // 'Type the' \n\t0x20 0x6E 0x65 0x77 0x20 0x6E 0x61 0x6D    // ' new nam' \n\t0x65 0x2E 0x0D 0x0A 0x34 0x09 0x43 0x6C    // 'e.??4?Cl' \n\t0x69 0x63 0x6B 0x20 0x4F 0x4B 0x2E         // 'ick OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_27= thWordBox\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"thWordBox\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"thWordBox\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp27\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_67=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thWordBox\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp27\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_67=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_60=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_67, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsCreate __HELP_SYMBOL( STN \"mbmpTextsCreate\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG Tip___Making_words_scroll __HELP_SYMBOL( STN \"Tip___Making_words_scroll\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' 0x16102 0xFFFFFFFF __HELP_SYMBOL( STN )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Typing_hints __HELP_SYMBOL( STN \"Tip___Typing_hints\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___scroll __HELP_SYMBOL( STN \"Def___scroll\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_67=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_67, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x27 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // ''???????' \n\t0x00 0xF1 0x00 0x00 0x03 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x0B 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xE1 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x02    // '????2???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x02    // '????8???' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x02    // '????=???' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x02    // '????K???' \n\t0x01 0x00 0x00 0x00 0x4E 0x00 0x00 0x02    // '????N???' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x02    // '????_???' \n\t0x01 0x00 0x00 0x00 0x63 0x00 0x00 0x02    // '????c???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x4B 0x00 0x00 0x03    // '???K???' \n\t0x0A 0x00 0x00 0xFD 0x5F 0x00 0x00 0x03    // '???_???' \n\t0x00 0x00 0x00 0x00 0xA4 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xE2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x31 0x01 0x00 0x03    // '????1???' \n\t0x0F 0x00 0x00 0xFD 0x37 0x01 0x00 0x03    // '???7???' \n\t0x00 0x00 0x00 0x00 0xA6 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xB5 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x31 0x01 0x00 0x04    // '????1???' \n\t0x0D 0x00 0x00 0xFE 0x37 0x01 0x00 0x04    // '???7???' \n\t0x00 0x00 0x00 0x00 0xA6 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xB5 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x31 0x01 0x00 0x40    // '????1??@' \n\t0x09 0x00 0x00 0x00 0x37 0x01 0x00 0x40    // '????7??@' \n\t0x00 0x00 0x00 0x00 0xB8 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xBA 0x01 0x00 0x40    // '??????@' \n\t0x07 0x00 0x00 0x00 0xC8 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xCA 0x01 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xE1 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x61 0x00 0x00 0x80    // '????a??' \n\t0x00 0x00 0x02 0x00 0x0D 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xBA 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0xBA 0x01 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00 0xCA 0x01 0x00 0xC0    // '??????' \n\t0x06 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_67=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_67, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x57 0x6F 0x72    // '???  Wor' \n\t0x64 0x20 0x42 0x6F 0x78 0x0D 0x0A 0x43    // 'd Box??C' \n\t0x72 0x65 0x61 0x74 0x65 0x20 0x61 0x20    // 'reate a ' \n\t0x62 0x6F 0x78 0x20 0x77 0x68 0x65 0x72    // 'box wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x63 0x61    // 'e you ca' \n\t0x6E 0x20 0x74 0x79 0x70 0x65 0x20 0x79    // 'n type y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x73 0x74 0x6F 0x72 0x79 0x20    // 'e story ' \n\t0x6F 0x72 0x20 0x63 0x72 0x65 0x64 0x69    // 'or credi' \n\t0x74 0x73 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'ts.??To ' \n\t0x63 0x72 0x65 0x61 0x74 0x65 0x20 0x61    // 'create a' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x0D 0x0A 0x31 0x09 0x49 0x66 0x20    // 'x??1?If ' \n\t0x79 0x6F 0x75 0x20 0x73 0x65 0x65 0x20    // 'you see ' \n\t0x74 0x68 0x65 0x20 0x57 0x6F 0x72 0x64    // 'the Word' \n\t0x73 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 's button' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x74 0x6F 0x70 0x20 0x6F 0x66 0x20 0x74    // 'top of t' \n\t0x68 0x65 0x20 0x73 0x63 0x72 0x65 0x65    // 'he scree' \n\t0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'n, click' \n\t0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09    // ' it.??2?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x61 0x64 0x64 0x20 0x77 0x6F 0x72 0x64    // 'add word' \n\t0x73 0x2E 0x0D 0x0A 0x33 0x09 0x43 0x6C    // 's.??3?Cl' \n\t0x69 0x63 0x6B 0x20 0x57 0x6F 0x72 0x64    // 'ick Word' \n\t0x20 0x42 0x6F 0x78 0x2E 0x0D 0x0A 0x34    // ' Box.??4' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x53    // '?Click S' \n\t0x74 0x6F 0x72 0x79 0x20 0x6F 0x72 0x20    // 'tory or ' \n\t0x43 0x72 0x65 0x64 0x69 0x74 0x73 0x2E    // 'Credits.' \n\t0x20 0x20 0x53 0x74 0x6F 0x72 0x79 0x20    // '  Story ' \n\t0x77 0x6F 0x72 0x64 0x73 0x20 0x64 0x6F    // 'words do' \n\t0x6E 0x27 0x74 0x20 0x6D 0x6F 0x76 0x65    // 'n't move' \n\t0x2E 0x20 0x20 0x43 0x72 0x65 0x64 0x69    // '.  Credi' \n\t0x74 0x73 0x20 0x73 0x63 0x72 0x6F 0x6C    // 'ts scrol' \n\t0x6C 0x20 0x74 0x6F 0x77 0x61 0x72 0x64    // 'l toward' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 's the to' \n\t0x70 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'p of the' \n\t0x20 0x73 0x63 0x72 0x65 0x65 0x6E 0x20    // ' screen ' \n\t0x77 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'when you' \n\t0x20 0x70 0x6C 0x61 0x79 0x20 0x79 0x6F    // ' play yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x21 0x0D 0x0A 0x35 0x09 0x43 0x6C 0x69    // '!??5?Cli' \n\t0x63 0x6B 0x20 0x77 0x68 0x65 0x72 0x65    // 'ck where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x70 0x6C 0x61    // 't to pla' \n\t0x63 0x65 0x20 0x74 0x68 0x65 0x20 0x77    // 'ce the w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x2E    // 'ord box.' \n\t0x20 0x20 0x54 0x79 0x70 0x65 0x20 0x74    // '  Type t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x64 0x73    // 'he words' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x2E 0x0D 0x0A 0x01 0x20 0x54 0x79    // 't.??? Ty' \n\t0x70 0x69 0x6E 0x67 0x20 0x68 0x69 0x6E    // 'ping hin' \n\t0x74 0x73 0x09 0x20 0x01 0x20 0x4D 0x61    // 'ts? ? Ma' \n\t0x6B 0x69 0x6E 0x67 0x20 0x63 0x72 0x65    // 'king cre' \n\t0x64 0x69 0x74 0x73 0x20 0x73 0x63 0x72    // 'dits scr' \n\t0x6F 0x6C 0x6C                             // 'oll' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_28= thInsertion_Point\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"thInsertion Point\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"thInsertion Point\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp28\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thInsertion_Point\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp28\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x6F 0x01 0x00 0x00    // '????o???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6F, 0x0)\nAG(4)\n\tITEM LONG 0x2000007\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsSelect __HELP_SYMBOL( STN \"mbmpTextsSelect\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Drag __HELP_SYMBOL( STN \"Def___Drag\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x25 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '%???????' \n\t0x01 0xF6 0x00 0x00 0x12 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB1 0x02 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x02    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x02    // '????!???' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x02    // '????7???' \n\t0x00 0x00 0x00 0x00 0x3B 0x00 0x00 0x02    // '????;???' \n\t0x01 0x00 0x00 0x00 0x61 0x00 0x00 0x02    // '????a???' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x02    // '????b???' \n\t0x01 0x00 0x00 0x00 0x7A 0x00 0x00 0x02    // '????z???' \n\t0x00 0x00 0x00 0x00 0x7C 0x00 0x00 0x02    // '????|???' \n\t0x01 0x00 0x00 0x00 0x7F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x9A 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x7C 0x00 0x00 0x03    // '???|???' \n\t0x0A 0x00 0x00 0xFD 0x96 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xDB 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x0F 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xDD 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xEC 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xE4 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE8 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xDD 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xEC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE4 0x01 0x00 0x40    // '??????@' \n\t0x07 0x00 0x00 0x00 0xE8 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xB1 0x02 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x98 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x2D 0x01 0x00 0x80    // '????-??' \n\t0x00 0x00 0x02 0x00 0x14 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x05 0x02 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6F, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x49 0x6E 0x73    // '???  Ins' \n\t0x65 0x72 0x74 0x69 0x6F 0x6E 0x20 0x50    // 'ertion P' \n\t0x6F 0x69 0x6E 0x74 0x0D 0x0A 0x4D 0x6F    // 'oint??Mo' \n\t0x76 0x65 0x2C 0x20 0x72 0x65 0x73 0x69    // 've, resi' \n\t0x7A 0x65 0x2C 0x20 0x6F 0x72 0x20 0x63    // 'ze, or c' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x77 0x6F    // 'hange wo' \n\t0x72 0x64 0x73 0x20 0x69 0x6E 0x20 0x61    // 'rds in a' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x2E 0x20 0x20 0x54 0x68 0x69 0x73    // 'x.  This' \n\t0x20 0x74 0x6F 0x6F 0x6C 0x20 0x61 0x6C    // ' tool al' \n\t0x73 0x6F 0x20 0x63 0x6C 0x65 0x61 0x72    // 'so clear' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x6C 0x61    // 's the la' \n\t0x73 0x74 0x20 0x57 0x6F 0x72 0x64 0x20    // 'st Word ' \n\t0x74 0x6F 0x6F 0x6C 0x20 0x79 0x6F 0x75    // 'tool you' \n\t0x20 0x77 0x65 0x72 0x65 0x20 0x75 0x73    // ' were us' \n\t0x69 0x6E 0x67 0x2E 0x0D 0x0A 0x54 0x6F    // 'ing.??To' \n\t0x20 0x75 0x73 0x65 0x20 0x74 0x68 0x65    // ' use the' \n\t0x20 0x49 0x6E 0x73 0x65 0x72 0x74 0x69    // ' Inserti' \n\t0x6F 0x6E 0x20 0x50 0x6F 0x69 0x6E 0x74    // 'on Point' \n\t0x0D 0x0A 0x31 0x09 0x49 0x66 0x20 0x79    // '??1?If y' \n\t0x6F 0x75 0x20 0x73 0x65 0x65 0x20 0x74    // 'ou see t' \n\t0x68 0x65 0x20 0x57 0x6F 0x72 0x64 0x73    // 'he Words' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x20    // ' button ' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x74    // 'at the t' \n\t0x6F 0x70 0x20 0x6F 0x66 0x20 0x74 0x68    // 'op of th' \n\t0x65 0x20 0x73 0x63 0x72 0x65 0x65 0x6E    // 'e screen' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09 0x47    // 'it.??2?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x77    // ' place w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x6D 0x61 0x6B 0x65 0x20 0x61 0x20    // ' make a ' \n\t0x63 0x68 0x61 0x6E 0x67 0x65 0x2E 0x0D    // 'change.?' \n\t0x0A 0x33 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?3?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x49 0x6E 0x73    // ' the Ins' \n\t0x65 0x72 0x74 0x69 0x6F 0x6E 0x20 0x50    // 'ertion P' \n\t0x6F 0x69 0x6E 0x74 0x2E 0x0D 0x0A 0x34    // 'oint.??4' \n\t0x09 0x54 0x6F 0x20 0x63 0x68 0x61 0x6E    // '?To chan' \n\t0x67 0x65 0x20 0x77 0x6F 0x72 0x64 0x73    // 'ge words' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'e in the' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'x where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B 0x65    // ' to make' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x73    // ' changes' \n\t0x2E 0x0D 0x0A 0x35 0x09 0x54 0x6F 0x20    // '.??5?To ' \n\t0x6D 0x6F 0x76 0x65 0x20 0x61 0x20 0x77    // 'move a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x2C    // 'ord box,' \n\t0x20 0x6D 0x6F 0x76 0x65 0x20 0x74 0x68    // ' move th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x63 0x75 0x72 0x73 0x6F 0x72 0x20 0x6F    // 'cursor o' \n\t0x76 0x65 0x72 0x20 0x61 0x20 0x77 0x6F    // 'ver a wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x20 0x73    // 'rd box s' \n\t0x69 0x64 0x65 0x2E 0x20 0x20 0x54 0x68    // 'ide.  Th' \n\t0x65 0x20 0x63 0x75 0x72 0x73 0x6F 0x72    // 'e cursor' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x73    // ' changes' \n\t0x20 0x74 0x6F 0x20 0x61 0x20 0x68 0x61    // ' to a ha' \n\t0x6E 0x64 0x2E 0x20 0x20 0x20 0x44 0x72    // 'nd.   Dr' \n\t0x61 0x67 0x20 0x74 0x68 0x65 0x20 0x62    // 'ag the b' \n\t0x6F 0x78 0x20 0x77 0x68 0x65 0x72 0x65    // 'ox where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x69 0x74 0x2E 0x0D 0x0A 0x36    // 't it.??6' \n\t0x09 0x54 0x6F 0x20 0x72 0x65 0x73 0x69    // '?To resi' \n\t0x7A 0x65 0x20 0x61 0x20 0x77 0x6F 0x72    // 'ze a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x2C 0x20 0x6D    // 'd box, m' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x63 0x75    // 'mouse cu' \n\t0x72 0x73 0x6F 0x72 0x20 0x6F 0x76 0x65    // 'rsor ove' \n\t0x72 0x20 0x61 0x20 0x77 0x6F 0x72 0x64    // 'r a word' \n\t0x20 0x62 0x6F 0x78 0x20 0x68 0x61 0x6E    // ' box han' \n\t0x64 0x6C 0x65 0x20 0x28 0x61 0x20 0x6C    // 'dle (a l' \n\t0x69 0x74 0x74 0x6C 0x65 0x20 0x73 0x71    // 'ittle sq' \n\t0x75 0x61 0x72 0x65 0x29 0x2E 0x20 0x54    // 'uare). T' \n\t0x68 0x65 0x20 0x63 0x75 0x72 0x73 0x6F    // 'he curso' \n\t0x72 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'r change' \n\t0x73 0x20 0x74 0x6F 0x20 0x61 0x6E 0x20    // 's to an ' \n\t0x61 0x72 0x72 0x6F 0x77 0x2E 0x20 0x20    // 'arrow.  ' \n\t0x44 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'Drag the' \n\t0x20 0x68 0x61 0x6E 0x64 0x6C 0x65 0x20    // ' handle ' \n\t0x75 0x6E 0x74 0x69 0x6C 0x20 0x74 0x68    // 'until th' \n\t0x65 0x20 0x62 0x6F 0x78 0x20 0x69 0x73    // 'e box is' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x69 0x7A    // ' the siz' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x2E                             // 'nt.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_29= thLetters\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"thLetters\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"thLetters\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp29\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_22=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thLetters\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp29\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_22=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9F 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsFont __HELP_SYMBOL( STN \"mbmpTextsFont\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___drag __HELP_SYMBOL( STN \"Def___drag\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_22=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x0A 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2F 0x00 0x00 0x01    // '????/???' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x01 0x00 0x00 0x00 0x34 0x01 0x00 0x01    // '????4???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x02    // '????1???' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x02    // '????3???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x2F 0x00 0x00 0x03    // '???/???' \n\t0x0F 0x00 0x00 0xFD 0x31 0x00 0x00 0x03    // '???1???' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x03    // '????r???' \n\t0x0F 0x00 0x00 0xFD 0x34 0x01 0x00 0x03    // '???4???' \n\t0x00 0x00 0x00 0x00 0x76 0x00 0x00 0x04    // '????v???' \n\t0x0D 0x00 0x00 0xFE 0x85 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xF5 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xF9 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x76 0x00 0x00 0x40    // '????v??@' \n\t0x03 0x00 0x00 0x00 0x85 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF5 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xF9 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x80    // '????1??' \n\t0x00 0x00 0x02 0x00 0x0C 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE4 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_22=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4C 0x65 0x74    // '???  Let' \n\t0x74 0x65 0x72 0x73 0x0D 0x0A 0x54 0x6F    // 'ters??To' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x20    // ' change ' \n\t0x74 0x68 0x65 0x20 0x77 0x61 0x79 0x20    // 'the way ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6C 0x65 0x74    // 'your let' \n\t0x74 0x65 0x72 0x73 0x20 0x6C 0x6F 0x6F    // 'ters loo' \n\t0x6B 0x0D 0x0A 0x31 0x09 0x49 0x66 0x20    // 'k??1?If ' \n\t0x79 0x6F 0x75 0x20 0x73 0x65 0x65 0x20    // 'you see ' \n\t0x74 0x68 0x65 0x20 0x57 0x6F 0x72 0x64    // 'the Word' \n\t0x73 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 's button' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x74 0x6F 0x70 0x20 0x6F 0x66 0x20 0x74    // 'top of t' \n\t0x68 0x65 0x20 0x73 0x63 0x72 0x65 0x65    // 'he scree' \n\t0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'n, click' \n\t0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09    // ' it.??2?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x6D 0x61 0x6B 0x65 0x20 0x61 0x20 0x63    // 'make a c' \n\t0x68 0x61 0x6E 0x67 0x65 0x2E 0x0D 0x0A    // 'hange.??' \n\t0x33 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '3?Click ' \n\t0x4C 0x65 0x74 0x74 0x65 0x72 0x73 0x2E    // 'Letters.' \n\t0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69 0x63    // '??4?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x66 0x6F    // 'k the fo' \n\t0x6E 0x74 0x20 0x79 0x6F 0x75 0x20 0x6C    // 'nt you l' \n\t0x69 0x6B 0x65 0x2E 0x0D 0x0A 0x35 0x09    // 'ike.??5?' \n\t0x49 0x6E 0x20 0x61 0x20 0x77 0x6F 0x72    // 'In a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x2C 0x20 0x64    // 'd box, d' \n\t0x72 0x61 0x67 0x20 0x74 0x68 0x65 0x20    // 'rag the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x6F 0x76    // 'mouse ov' \n\t0x65 0x72 0x20 0x74 0x68 0x65 0x20 0x6C    // 'er the l' \n\t0x65 0x74 0x74 0x65 0x72 0x73 0x20 0x77    // 'etters w' \n\t0x68 0x6F 0x73 0x65 0x20 0x73 0x74 0x79    // 'hose sty' \n\t0x6C 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 'le you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ant to c' \n\t0x68 0x61 0x6E 0x67 0x65 0x2E              // 'hange.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2A= thStyles\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"thStyles\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"thStyles\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp2A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_75=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thStyles\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp2A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_75=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_75, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsFontShape __HELP_SYMBOL( STN \"mbmpTextsFontShape\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___drag __HELP_SYMBOL( STN \"Def___drag\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_75=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_75, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1C 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x09 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x5A 0x01 0x00 0x01    // '????Z???' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x02    // '????9???' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x40 0x00 0x00 0x02    // '????@???' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0x02    // '????W???' \n\t0x01 0x00 0x00 0x00 0x59 0x00 0x00 0x02    // '????Y???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x42 0x00 0x00 0x03    // '???B???' \n\t0x0A 0x00 0x00 0xFD 0x55 0x00 0x00 0x03    // '???U???' \n\t0x0F 0x00 0x00 0xFD 0x57 0x00 0x00 0x03    // '???W???' \n\t0x00 0x00 0x00 0x00 0x98 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x5A 0x01 0x00 0x03    // '???Z???' \n\t0x00 0x00 0x00 0x00 0x9C 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xAB 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x1B 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x1F 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x9C 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xAB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x1B 0x01 0x00 0x40    // '???????@' \n\t0x05 0x00 0x00 0x00 0x1F 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0x80    // '????W??' \n\t0x00 0x00 0x02 0x00 0x0B 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0A 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_75=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_75, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x74 0x79    // '???  Sty' \n\t0x6C 0x65 0x73 0x0D 0x0A 0x4D 0x61 0x6B    // 'les??Mak' \n\t0x65 0x20 0x77 0x6F 0x72 0x64 0x73 0x20    // 'e words ' \n\t0x73 0x74 0x61 0x6E 0x64 0x20 0x6F 0x75    // 'stand ou' \n\t0x74 0x20 0x77 0x69 0x74 0x68 0x20 0x73    // 't with s' \n\t0x74 0x79 0x6C 0x65 0x73 0x20 0x6C 0x69    // 'tyles li' \n\t0x6B 0x65 0x20 0x62 0x6F 0x6C 0x64 0x20    // 'ke bold ' \n\t0x6F 0x72 0x20 0x69 0x74 0x61 0x6C 0x69    // 'or itali' \n\t0x63 0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x63    // 'c.??To c' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x74 0x68    // 'hange th' \n\t0x65 0x20 0x73 0x74 0x79 0x6C 0x65 0x0D    // 'e style?' \n\t0x0A 0x31 0x09 0x49 0x66 0x20 0x79 0x6F    // '?1?If yo' \n\t0x75 0x20 0x73 0x65 0x65 0x20 0x74 0x68    // 'u see th' \n\t0x65 0x20 0x57 0x6F 0x72 0x64 0x73 0x20    // 'e Words ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x61    // 'button a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 't the to' \n\t0x70 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'p of the' \n\t0x20 0x73 0x63 0x72 0x65 0x65 0x6E 0x2C    // ' screen,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x69    // ' click i' \n\t0x74 0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F    // 't.??2?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x6D 0x61    // 'nt to ma' \n\t0x6B 0x65 0x20 0x61 0x20 0x63 0x68 0x61    // 'ke a cha' \n\t0x6E 0x67 0x65 0x2E 0x0D 0x0A 0x33 0x09    // 'nge.??3?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x53 0x74    // 'Click St' \n\t0x79 0x6C 0x65 0x73 0x2E 0x0D 0x0A 0x34    // 'yles.??4' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x73 0x74 0x79 0x6C 0x65    // 'he style' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x2E 0x0D 0x0A 0x35 0x09 0x49 0x6E    // 't.??5?In' \n\t0x20 0x61 0x20 0x77 0x6F 0x72 0x64 0x20    // ' a word ' \n\t0x62 0x6F 0x78 0x2C 0x20 0x64 0x72 0x61    // 'box, dra' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'g the mo' \n\t0x75 0x73 0x65 0x20 0x6F 0x76 0x65 0x72    // 'use over' \n\t0x20 0x74 0x68 0x65 0x20 0x6C 0x65 0x74    // ' the let' \n\t0x74 0x65 0x72 0x73 0x20 0x77 0x68 0x6F    // 'ters who' \n\t0x73 0x65 0x20 0x73 0x74 0x79 0x6C 0x65    // 'se style' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x68 0x61    // 't to cha' \n\t0x6E 0x67 0x65 0x2E                        // 'nge.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2B= thLetterSize\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"thLetterSize\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"thLetterSize\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp2B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_55=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thLetterSize\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp2B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_55=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_55, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsFontSize __HELP_SYMBOL( STN \"mbmpTextsFontSize\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___drag __HELP_SYMBOL( STN \"Def___drag\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_55=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_55, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1B 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x0E 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x4F 0x01 0x00 0x01    // '????O???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x02    // '????'???' \n\t0x01 0x00 0x00 0x00 0x2F 0x00 0x00 0x02    // '????/???' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x02    // '????I???' \n\t0x01 0x00 0x00 0x00 0x4B 0x00 0x00 0x02    // '????K???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x0A 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x0F 0x00 0x00 0xFD 0x49 0x00 0x00 0x03    // '???I???' \n\t0x00 0x00 0x00 0x00 0x8A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x4F 0x01 0x00 0x03    // '???O???' \n\t0x00 0x00 0x00 0x00 0x8E 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x9D 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x11 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x15 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x8E 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0x9D 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x11 0x01 0x00 0x40    // '???????@' \n\t0x05 0x00 0x00 0x00 0x15 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x80    // '????I??' \n\t0x00 0x00 0x02 0x00 0x10 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x00 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_55=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_55, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4C 0x65 0x74    // '???  Let' \n\t0x74 0x65 0x72 0x20 0x53 0x69 0x7A 0x65    // 'ter Size' \n\t0x0D 0x0A 0x43 0x68 0x61 0x6E 0x67 0x65    // '??Change' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x69 0x7A    // ' the siz' \n\t0x65 0x20 0x6F 0x66 0x20 0x79 0x6F 0x75    // 'e of you' \n\t0x72 0x20 0x6C 0x65 0x74 0x74 0x65 0x72    // 'r letter' \n\t0x73 0x21 0x0D 0x0A 0x54 0x6F 0x20 0x63    // 's!??To c' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x6C 0x65    // 'hange le' \n\t0x74 0x74 0x65 0x72 0x20 0x73 0x69 0x7A    // 'tter siz' \n\t0x65 0x0D 0x0A 0x31 0x09 0x49 0x66 0x20    // 'e??1?If ' \n\t0x79 0x6F 0x75 0x20 0x73 0x65 0x65 0x20    // 'you see ' \n\t0x74 0x68 0x65 0x20 0x57 0x6F 0x72 0x64    // 'the Word' \n\t0x73 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 's button' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x74 0x6F 0x70 0x20 0x6F 0x66 0x20 0x74    // 'top of t' \n\t0x68 0x65 0x20 0x73 0x63 0x72 0x65 0x65    // 'he scree' \n\t0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'n, click' \n\t0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09    // ' it.??2?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x6D 0x61 0x6B 0x65 0x20 0x61 0x20 0x63    // 'make a c' \n\t0x68 0x61 0x6E 0x67 0x65 0x2E 0x0D 0x0A    // 'hange.??' \n\t0x33 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '3?Click ' \n\t0x4C 0x65 0x74 0x74 0x65 0x72 0x20 0x53    // 'Letter S' \n\t0x69 0x7A 0x65 0x2E 0x0D 0x0A 0x34 0x09    // 'ize.??4?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x73 0x69 0x7A 0x65 0x20 0x79    // 'e size y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x2E    // 'ou want.' \n\t0x0D 0x0A 0x35 0x09 0x49 0x6E 0x20 0x61    // '??5?In a' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x2C 0x20 0x64 0x72 0x61 0x67 0x20    // 'x, drag ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x6F 0x76 0x65 0x72 0x20 0x74    // 'e over t' \n\t0x68 0x65 0x20 0x6C 0x65 0x74 0x74 0x65    // 'he lette' \n\t0x72 0x73 0x20 0x77 0x68 0x6F 0x73 0x65    // 'rs whose' \n\t0x20 0x73 0x69 0x7A 0x65 0x20 0x79 0x6F    // ' size yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'o change' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2C= thLetterColor\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"thLetterColor\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"thLetterColor\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp2C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_66=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thLetterColor\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp2C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_66=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_66, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsFontColor __HELP_SYMBOL( STN \"mbmpTextsFontColor\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___drag __HELP_SYMBOL( STN \"Def___drag\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_66=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_66, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1A 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x0F 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x56 0x01 0x00 0x01    // '????V???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x02    // '????3???' \n\t0x00 0x00 0x00 0x00 0x4D 0x00 0x00 0x02    // '????M???' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x02    // '????O???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x0A 0x00 0x00 0xFD 0x4B 0x00 0x00 0x03    // '???K???' \n\t0x0F 0x00 0x00 0xFD 0x4D 0x00 0x00 0x03    // '???M???' \n\t0x00 0x00 0x00 0x00 0x8E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x56 0x01 0x00 0x03    // '???V???' \n\t0x00 0x00 0x00 0x00 0x92 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA1 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x17 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x1B 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x92 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xA1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x17 0x01 0x00 0x40    // '???????@' \n\t0x05 0x00 0x00 0x00 0x1B 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x4D 0x00 0x00 0x80    // '????M??' \n\t0x00 0x00 0x02 0x00 0x11 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x06 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_66=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_66, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4C 0x65 0x74    // '???  Let' \n\t0x74 0x65 0x72 0x20 0x43 0x6F 0x6C 0x6F    // 'ter Colo' \n\t0x72 0x0D 0x0A 0x43 0x68 0x61 0x6E 0x67    // 'r??Chang' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x63 0x6F    // 'e the co' \n\t0x6C 0x6F 0x72 0x20 0x6F 0x66 0x20 0x79    // 'lor of y' \n\t0x6F 0x75 0x72 0x20 0x20 0x6C 0x65 0x74    // 'our  let' \n\t0x74 0x65 0x72 0x73 0x2E 0x0D 0x0A 0x54    // 'ters.??T' \n\t0x6F 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'o change' \n\t0x20 0x6C 0x65 0x74 0x74 0x65 0x72 0x20    // ' letter ' \n\t0x63 0x6F 0x6C 0x6F 0x72 0x0D 0x0A 0x31    // 'color??1' \n\t0x09 0x49 0x66 0x20 0x79 0x6F 0x75 0x20    // '?If you ' \n\t0x73 0x65 0x65 0x20 0x74 0x68 0x65 0x20    // 'see the ' \n\t0x57 0x6F 0x72 0x64 0x73 0x20 0x62 0x75    // 'Words bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x74 0x20    // 'tton at ' \n\t0x74 0x68 0x65 0x20 0x74 0x6F 0x70 0x20    // 'the top ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x73    // 'of the s' \n\t0x63 0x72 0x65 0x65 0x6E 0x2C 0x20 0x63    // 'creen, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x69 0x74 0x2E    // 'lick it.' \n\t0x0D 0x0A 0x32 0x09 0x47 0x6F 0x20 0x74    // '??2?Go t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x70 0x6C    // 'o the pl' \n\t0x61 0x63 0x65 0x20 0x69 0x6E 0x20 0x79    // 'ace in y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B 0x65    // ' to make' \n\t0x20 0x61 0x20 0x63 0x68 0x61 0x6E 0x67    // ' a chang' \n\t0x65 0x2E 0x0D 0x0A 0x33 0x09 0x43 0x6C    // 'e.??3?Cl' \n\t0x69 0x63 0x6B 0x20 0x4C 0x65 0x74 0x74    // 'ick Lett' \n\t0x65 0x72 0x20 0x43 0x6F 0x6C 0x6F 0x72    // 'er Color' \n\t0x2E 0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69    // '.??4?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x63    // 'ck the c' \n\t0x6F 0x6C 0x6F 0x72 0x20 0x79 0x6F 0x75    // 'olor you' \n\t0x20 0x77 0x61 0x6E 0x74 0x2E 0x0D 0x0A    // ' want.??' \n\t0x35 0x09 0x49 0x6E 0x20 0x61 0x20 0x77    // '5?In a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x2C    // 'ord box,' \n\t0x20 0x64 0x72 0x61 0x67 0x20 0x74 0x68    // ' drag th' \n\t0x65 0x20 0x6D 0x6F 0x75 0x73 0x65 0x20    // 'e mouse ' \n\t0x6F 0x76 0x65 0x72 0x20 0x74 0x68 0x65    // 'over the' \n\t0x20 0x6C 0x65 0x74 0x74 0x65 0x72 0x73    // ' letters' \n\t0x20 0x77 0x68 0x6F 0x73 0x65 0x20 0x63    // ' whose c' \n\t0x6F 0x6C 0x6F 0x72 0x20 0x79 0x6F 0x75    // 'olor you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x2E    // ' change.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2D= thBackground_Color\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"thBackground Color\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"thBackground Color\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp2D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_64=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thBackground_Color\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp2D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_64=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_64, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsBkgdColor __HELP_SYMBOL( STN \"mbmpTextsBkgdColor\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_64=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_64, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x18 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x13 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x6F 0x01 0x00 0x01    // '????o???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x02    // '????5???' \n\t0x00 0x00 0x00 0x00 0x3A 0x00 0x00 0x02    // '????:???' \n\t0x01 0x00 0x00 0x00 0x3F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x5D 0x00 0x00 0x02    // '????]???' \n\t0x01 0x00 0x00 0x00 0x5F 0x00 0x00 0x02    // '????_???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x41 0x00 0x00 0x03    // '???A???' \n\t0x0A 0x00 0x00 0xFD 0x5B 0x00 0x00 0x03    // '???[???' \n\t0x0F 0x00 0x00 0xFD 0x5D 0x00 0x00 0x03    // '???]???' \n\t0x00 0x00 0x00 0x00 0x9E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x6F 0x01 0x00 0x03    // '???o???' \n\t0x00 0x00 0x00 0x00 0xA2 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xB1 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xA2 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xB1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x5D 0x00 0x00 0x80    // '????]??' \n\t0x00 0x00 0x02 0x00 0x15 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x3B 0x01 0x00 0x82    // '????;??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_64=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_64, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x42 0x61 0x63    // '???  Bac' \n\t0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64 0x20    // 'kground ' \n\t0x43 0x6F 0x6C 0x6F 0x72 0x0D 0x0A 0x43    // 'Color??C' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x74 0x68    // 'hange th' \n\t0x65 0x20 0x62 0x61 0x63 0x6B 0x67 0x72    // 'e backgr' \n\t0x6F 0x75 0x6E 0x64 0x20 0x63 0x6F 0x6C    // 'ound col' \n\t0x6F 0x72 0x20 0x6F 0x66 0x20 0x61 0x20    // 'or of a ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x63 0x68    // '.??To ch' \n\t0x61 0x6E 0x67 0x65 0x20 0x62 0x61 0x63    // 'ange bac' \n\t0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64 0x20    // 'kground ' \n\t0x63 0x6F 0x6C 0x6F 0x72 0x0D 0x0A 0x31    // 'color??1' \n\t0x09 0x49 0x66 0x20 0x79 0x6F 0x75 0x20    // '?If you ' \n\t0x73 0x65 0x65 0x20 0x74 0x68 0x65 0x20    // 'see the ' \n\t0x57 0x6F 0x72 0x64 0x73 0x20 0x62 0x75    // 'Words bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x74 0x20    // 'tton at ' \n\t0x74 0x68 0x65 0x20 0x74 0x6F 0x70 0x20    // 'the top ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x73    // 'of the s' \n\t0x63 0x72 0x65 0x65 0x6E 0x2C 0x20 0x63    // 'creen, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x69 0x74 0x2E    // 'lick it.' \n\t0x0D 0x0A 0x32 0x09 0x47 0x6F 0x20 0x74    // '??2?Go t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x70 0x6C    // 'o the pl' \n\t0x61 0x63 0x65 0x20 0x69 0x6E 0x20 0x79    // 'ace in y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B 0x65    // ' to make' \n\t0x20 0x61 0x20 0x63 0x68 0x61 0x6E 0x67    // ' a chang' \n\t0x65 0x2E 0x0D 0x0A 0x33 0x09 0x43 0x6C    // 'e.??3?Cl' \n\t0x69 0x63 0x6B 0x20 0x42 0x61 0x63 0x6B    // 'ick Back' \n\t0x67 0x72 0x6F 0x75 0x6E 0x64 0x20 0x43    // 'ground C' \n\t0x6F 0x6C 0x6F 0x72 0x2D 0x2D 0x79 0x6F    // 'olor--yo' \n\t0x75 0x27 0x6C 0x6C 0x20 0x66 0x69 0x6E    // 'u'll fin' \n\t0x64 0x20 0x69 0x74 0x20 0x75 0x6E 0x64    // 'd it und' \n\t0x65 0x72 0x20 0x4D 0x6F 0x72 0x65 0x20    // 'er More ' \n\t0x54 0x6F 0x6F 0x6C 0x73 0x2E 0x0D 0x0A    // 'Tools.??' \n\t0x34 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '4?Click ' \n\t0x74 0x68 0x65 0x20 0x63 0x6F 0x6C 0x6F    // 'the colo' \n\t0x72 0x20 0x79 0x6F 0x75 0x20 0x6C 0x69    // 'r you li' \n\t0x6B 0x65 0x2E 0x0D 0x0A 0x35 0x09 0x43    // 'ke.??5?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x20 0x77 0x68 0x6F 0x73 0x65 0x20    // 'x whose ' \n\t0x63 0x6F 0x6C 0x6F 0x72 0x20 0x79 0x6F    // 'color yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'o change' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2E= thScrolling_NonScrolling\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"thScrolling\\\\Nonscrolling\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"thScrolling\\\\Nonscrolling\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp2E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thScrolling_NonScrolling\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp2E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4C, 0x0)\nAG(4)\n\tITEM LONG 0x2000005\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsScrollType __HELP_SYMBOL( STN \"mbmpTextsScrollType\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___scroll __HELP_SYMBOL( STN \"Def___scroll\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // ' ???????' \n\t0x01 0xF6 0x00 0x00 0x23 0x00 0x00 0x01    // '???#???' \n\t0x01 0x00 0x00 0x00 0x83 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x02    // '????#???' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x02    // '????%???' \n\t0x00 0x00 0x00 0x00 0x70 0x00 0x00 0x02    // '????p???' \n\t0x01 0x00 0x00 0x00 0x74 0x00 0x00 0x02    // '????t???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '???%???' \n\t0x0F 0x00 0x00 0xFD 0x5C 0x00 0x00 0x03    // '???\\???' \n\t0x0A 0x00 0x00 0xFD 0x70 0x00 0x00 0x03    // '???p???' \n\t0x00 0x00 0x00 0x00 0xB5 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xF7 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x83 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x04    // '????E???' \n\t0x0D 0x00 0x00 0xFE 0x4B 0x00 0x00 0x04    // '???K???' \n\t0x00 0x00 0x00 0x00 0xB7 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xC6 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x40    // '????E??@' \n\t0x03 0x00 0x00 0x00 0x4B 0x00 0x00 0x40    // '????K??@' \n\t0x00 0x00 0x00 0x00 0xB7 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xC6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x80    // '????r??' \n\t0x00 0x00 0x02 0x00 0x25 0x00 0x00 0x82    // '????%??' \n\t0x05 0x00 0x00 0x00 0x5B 0x01 0x00 0x82    // '????[??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4C, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x63 0x72    // '???  Scr' \n\t0x6F 0x6C 0x6C 0x69 0x6E 0x67 0x20 0x6F    // 'olling o' \n\t0x72 0x20 0x4E 0x6F 0x6E 0x2D 0x53 0x63    // 'r Non-Sc' \n\t0x72 0x6F 0x6C 0x6C 0x69 0x6E 0x67 0x20    // 'rolling ' \n\t0x57 0x6F 0x72 0x64 0x73 0x0D 0x0A 0x43    // 'Words??C' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x61 0x20    // 'hange a ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \n\t0x20 0x73 0x6F 0x20 0x74 0x68 0x61 0x74    // ' so that' \n\t0x20 0x77 0x6F 0x72 0x64 0x73 0x20 0x73    // ' words s' \n\t0x63 0x72 0x6F 0x6C 0x6C 0x20 0x6F 0x72    // 'croll or' \n\t0x20 0x73 0x74 0x61 0x79 0x20 0x73 0x74    // ' stay st' \n\t0x69 0x6C 0x6C 0x21 0x0D 0x0A 0x54 0x6F    // 'ill!??To' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x20    // ' change ' \n\t0x61 0x20 0x77 0x6F 0x72 0x64 0x20 0x62    // 'a word b' \n\t0x6F 0x78 0x0D 0x0A 0x31 0x09 0x49 0x66    // 'ox??1?If' \n\t0x20 0x79 0x6F 0x75 0x20 0x73 0x65 0x65    // ' you see' \n\t0x20 0x74 0x68 0x65 0x20 0x57 0x6F 0x72    // ' the Wor' \n\t0x64 0x73 0x20 0x62 0x75 0x74 0x74 0x6F    // 'ds butto' \n\t0x6E 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 'n at the' \n\t0x20 0x74 0x6F 0x70 0x20 0x6F 0x66 0x20    // ' top of ' \n\t0x74 0x68 0x65 0x20 0x73 0x63 0x72 0x65    // 'the scre' \n\t0x65 0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'en, clic' \n\t0x6B 0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32    // 'k it.??2' \n\t0x09 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x77    // ' movie w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x6D 0x61 0x6B 0x65 0x20 0x61 0x20    // ' make a ' \n\t0x63 0x68 0x61 0x6E 0x67 0x65 0x2E 0x0D    // 'change.?' \n\t0x0A 0x33 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?3?Click' \n\t0x20 0x53 0x63 0x72 0x6F 0x6C 0x6C 0x69    // ' Scrolli' \n\t0x6E 0x67 0x20 0x6F 0x72 0x20 0x4E 0x6F    // 'ng or No' \n\t0x6E 0x2D 0x53 0x63 0x72 0x6F 0x6C 0x6C    // 'n-Scroll' \n\t0x69 0x6E 0x67 0x2D 0x2D 0x79 0x6F 0x75    // 'ing--you' \n\t0x27 0x6C 0x6C 0x20 0x66 0x69 0x6E 0x64    // ''ll find' \n\t0x20 0x69 0x74 0x20 0x75 0x6E 0x64 0x65    // ' it unde' \n\t0x72 0x20 0x4D 0x6F 0x72 0x65 0x20 0x54    // 'r More T' \n\t0x6F 0x6F 0x6C 0x73 0x2E 0x0D 0x0A 0x34    // 'ools.??4' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x6F 0x70 0x74 0x69 0x6F    // 'he optio' \n\t0x6E 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'n you wa' \n\t0x6E 0x74 0x2E 0x0D 0x0A 0x35 0x09 0x43    // 'nt.??5?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'x you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x63 0x68    // 'nt to ch' \n\t0x61 0x6E 0x67 0x65 0x2E                   // 'ange.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2F= thScrolling\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"thScrolling\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"thScrolling\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp2F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thScrolling\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp2F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_64=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6C, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpTextsScrollType __HELP_SYMBOL( STN \"mbmpTextsScrollType\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___scroll __HELP_SYMBOL( STN \"Def___scroll\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' 0x16102 0xFFFFFFFF __HELP_SYMBOL( STN )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Making_words_scroll __HELP_SYMBOL( STN \"Tip___Making_words_scroll\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1E 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x0C 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xA8 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x87 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x89 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x71 0x00 0x00 0x03    // '???q???' \n\t0x0A 0x00 0x00 0xFD 0x85 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x87 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xCA 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x0C 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x04    // '????'???' \n\t0x0D 0x00 0x00 0xFE 0x2D 0x00 0x00 0x04    // '???-???' \n\t0x00 0x00 0x00 0x00 0xCC 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xDB 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x40    // '????'??@' \n\t0x03 0x00 0x00 0x00 0x2D 0x00 0x00 0x40    // '????-??@' \n\t0x00 0x00 0x00 0x00 0xCC 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xDB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x91 0x01 0x00 0x40    // '??????@' \n\t0x07 0x00 0x00 0x00 0xA8 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x87 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x0E 0x00 0x00 0x82    // '???????' \n\t0x03 0x00 0x00 0x00 0x87 0x00 0x00 0x82    // '??????' \n\t0x05 0x00 0x00 0x00 0x67 0x01 0x00 0x82    // '????g??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x91 0x01 0x00 0xC0    // '??????' \n\t0x06 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6C, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x63 0x72    // '???  Scr' \n\t0x6F 0x6C 0x6C 0x69 0x6E 0x67 0x0D 0x0A    // 'olling??' \n\t0x4D 0x61 0x6B 0x65 0x20 0x77 0x6F 0x72    // 'Make wor' \n\t0x64 0x73 0x20 0x69 0x6E 0x20 0x61 0x20    // 'ds in a ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \n\t0x20 0x73 0x63 0x72 0x6F 0x6C 0x6C 0x2E    // ' scroll.' \n\t0x20 0x20 0x53 0x63 0x72 0x6F 0x6C 0x6C    // '  Scroll' \n\t0x69 0x6E 0x67 0x20 0x77 0x6F 0x72 0x64    // 'ing word' \n\t0x73 0x20 0x61 0x72 0x65 0x20 0x67 0x72    // 's are gr' \n\t0x65 0x61 0x74 0x20 0x66 0x6F 0x72 0x20    // 'eat for ' \n\t0x63 0x72 0x65 0x64 0x69 0x74 0x73 0x20    // 'credits ' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x65    // 'at the e' \n\t0x6E 0x64 0x20 0x6F 0x66 0x20 0x79 0x6F    // 'nd of yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x61    // '.??To ma' \n\t0x6B 0x65 0x20 0x77 0x6F 0x72 0x64 0x73    // 'ke words' \n\t0x20 0x73 0x63 0x72 0x6F 0x6C 0x6C 0x0D    // ' scroll?' \n\t0x0A 0x31 0x09 0x49 0x66 0x20 0x79 0x6F    // '?1?If yo' \n\t0x75 0x20 0x73 0x65 0x65 0x20 0x74 0x68    // 'u see th' \n\t0x65 0x20 0x57 0x6F 0x72 0x64 0x73 0x20    // 'e Words ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x61    // 'button a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 't the to' \n\t0x70 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'p of the' \n\t0x20 0x73 0x63 0x72 0x65 0x65 0x6E 0x2C    // ' screen,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x69    // ' click i' \n\t0x74 0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F    // 't.??2?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x69 0x6E    // 'place in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x77 0x68 0x65 0x72    // 'vie wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'e you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x6D 0x61    // 'nt to ma' \n\t0x6B 0x65 0x20 0x61 0x20 0x63 0x68 0x61    // 'ke a cha' \n\t0x6E 0x67 0x65 0x2E 0x0D 0x0A 0x33 0x09    // 'nge.??3?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x53 0x63    // 'Click Sc' \n\t0x72 0x6F 0x6C 0x6C 0x69 0x6E 0x67 0x20    // 'rolling ' \n\t0x6F 0x72 0x20 0x4E 0x6F 0x6E 0x2D 0x53    // 'or Non-S' \n\t0x63 0x72 0x6F 0x6C 0x6C 0x69 0x6E 0x67    // 'crolling' \n\t0x20 0x2D 0x2D 0x79 0x6F 0x75 0x27 0x6C    // ' --you'l' \n\t0x6C 0x20 0x66 0x69 0x6E 0x64 0x20 0x69    // 'l find i' \n\t0x74 0x20 0x75 0x6E 0x64 0x65 0x72 0x20    // 't under ' \n\t0x4D 0x6F 0x72 0x65 0x20 0x54 0x6F 0x6F    // 'More Too' \n\t0x6C 0x73 0x2E 0x0D 0x0A 0x34 0x09 0x43    // 'ls.??4?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x53 0x63 0x72    // 'lick Scr' \n\t0x6F 0x6C 0x6C 0x69 0x6E 0x67 0x2E 0x0D    // 'olling.?' \n\t0x0A 0x35 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?5?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x6F 0x72    // ' the wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x20 0x79 0x6F    // 'd box yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'o change' \n\t0x2E 0x0D 0x0A 0x01 0x20 0x4D 0x61 0x6B    // '.??? Mak' \n\t0x69 0x6E 0x67 0x20 0x63 0x72 0x65 0x64    // 'ing cred' \n\t0x69 0x74 0x73 0x20 0x73 0x63 0x72 0x6F    // 'its scro' \n\t0x6C 0x6C                                  // 'll' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_30= thStory\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"thNon-Scrolling\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"thNon-Scrolling\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp30\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_53=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thStory\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp30\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_53=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_53, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFONonScrolling __HELP_SYMBOL( STN \"mbmpFONonScrolling\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_53=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_53, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x17 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x10 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x5E 0x01 0x00 0x01    // '????^???' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0x02    // '????R???' \n\t0x01 0x00 0x00 0x00 0x54 0x00 0x00 0x02    // '????T???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x0A 0x00 0x00 0xFD 0x50 0x00 0x00 0x03    // '???P???' \n\t0x0F 0x00 0x00 0xFD 0x52 0x00 0x00 0x03    // '???R???' \n\t0x00 0x00 0x00 0x00 0x95 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xD7 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x97 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA6 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x97 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xA6 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x5E 0x01 0x00 0x40    // '????^??@' \n\t0x00 0x00 0x00 0x00 0x52 0x00 0x00 0x80    // '????R??' \n\t0x00 0x00 0x02 0x00 0x12 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x36 0x01 0x00 0x82    // '????6??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_53=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_53, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4E 0x6F 0x6E    // '???  Non' \n\t0x2D 0x53 0x63 0x72 0x6F 0x6C 0x6C 0x69    // '-Scrolli' \n\t0x6E 0x67 0x0D 0x0A 0x4D 0x61 0x6B 0x65    // 'ng??Make' \n\t0x20 0x77 0x6F 0x72 0x64 0x73 0x20 0x69    // ' words i' \n\t0x6E 0x20 0x61 0x20 0x77 0x6F 0x72 0x64    // 'n a word' \n\t0x20 0x62 0x6F 0x78 0x20 0x73 0x74 0x61    // ' box sta' \n\t0x79 0x20 0x73 0x74 0x69 0x6C 0x6C 0x2E    // 'y still.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x61 0x6B    // '??To mak' \n\t0x65 0x20 0x77 0x6F 0x72 0x64 0x73 0x20    // 'e words ' \n\t0x73 0x74 0x61 0x79 0x20 0x73 0x74 0x69    // 'stay sti' \n\t0x6C 0x6C 0x0D 0x0A 0x31 0x09 0x49 0x66    // 'll??1?If' \n\t0x20 0x79 0x6F 0x75 0x20 0x73 0x65 0x65    // ' you see' \n\t0x20 0x74 0x68 0x65 0x20 0x57 0x6F 0x72    // ' the Wor' \n\t0x64 0x73 0x20 0x62 0x75 0x74 0x74 0x6F    // 'ds butto' \n\t0x6E 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 'n at the' \n\t0x20 0x74 0x6F 0x70 0x20 0x6F 0x66 0x20    // ' top of ' \n\t0x74 0x68 0x65 0x20 0x73 0x63 0x72 0x65    // 'the scre' \n\t0x65 0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'en, clic' \n\t0x6B 0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32    // 'k it.??2' \n\t0x09 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x77    // ' movie w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x6D 0x61 0x6B 0x65 0x20 0x61 0x20    // ' make a ' \n\t0x63 0x68 0x61 0x6E 0x67 0x65 0x2E 0x0D    // 'change.?' \n\t0x0A 0x33 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?3?Click' \n\t0x20 0x53 0x63 0x72 0x6F 0x6C 0x6C 0x69    // ' Scrolli' \n\t0x6E 0x67 0x20 0x6F 0x72 0x20 0x4E 0x6F    // 'ng or No' \n\t0x6E 0x2D 0x73 0x63 0x72 0x6F 0x6C 0x6C    // 'n-scroll' \n\t0x69 0x6E 0x67 0x20 0x2D 0x2D 0x79 0x6F    // 'ing --yo' \n\t0x75 0x27 0x6C 0x6C 0x20 0x66 0x69 0x6E    // 'u'll fin' \n\t0x64 0x20 0x69 0x74 0x20 0x75 0x6E 0x64    // 'd it und' \n\t0x65 0x72 0x20 0x4D 0x6F 0x72 0x65 0x20    // 'er More ' \n\t0x54 0x6F 0x6F 0x6C 0x73 0x2E 0x0D 0x0A    // 'Tools.??' \n\t0x34 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '4?Click ' \n\t0x4E 0x6F 0x6E 0x2D 0x53 0x63 0x72 0x6F    // 'Non-Scro' \n\t0x6C 0x6C 0x69 0x6E 0x67 0x2E 0x0D 0x0A    // 'lling.??' \n\t0x35 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '5?Click ' \n\t0x74 0x68 0x65 0x20 0x77 0x6F 0x72 0x64    // 'the word' \n\t0x20 0x62 0x6F 0x78 0x20 0x79 0x6F 0x75    // ' box you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x2E    // ' change.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_31= thFrameSlider\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"thFrameSlider\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"thFrameSlider\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp31\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thFrameSlider\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp31\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x35 0x01 0x00 0x00    // '????5???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_37=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Drag __HELP_SYMBOL( STN \"Def___Drag\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Tip___Add_frames __HELP_SYMBOL( STN \"Tip___Add_frames\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x22 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '\"???????' \n\t0x01 0x00 0x00 0x00 0xEF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x02    // '????C???' \n\t0x00 0x00 0x00 0x00 0x73 0x00 0x00 0x02    // '????s???' \n\t0x01 0x00 0x00 0x00 0x79 0x00 0x00 0x02    // '????y???' \n\t0x00 0x00 0x00 0x00 0xAF 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xB3 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xD8 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x43 0x00 0x00 0x03    // '???C???' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x03    // '????E???' \n\t0x0A 0x00 0x00 0xFD 0x71 0x00 0x00 0x03    // '???q???' \n\t0x0F 0x00 0x00 0xFD 0x72 0x00 0x00 0x03    // '???r???' \n\t0x0A 0x00 0x00 0xFD 0x73 0x00 0x00 0x03    // '???s???' \n\t0x00 0x00 0x00 0x00 0xAD 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xAE 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xAF 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xAF 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xB3 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xAF 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xB3 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xDA 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xEF 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0x80    // '????q??' \n\t0x00 0x00 0x02 0x00 0xA5 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xAD 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xAD 0x00 0x00 0x82    // '??????' \n\t0x0A 0x00 0x00 0x00 0xDA 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0xDA 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x72 0x61 0x6D 0x65 0x20    // '??Frame ' \n\t0x53 0x6C 0x69 0x64 0x65 0x72 0x0D 0x0A    // 'Slider??' \n\t0x01 0x0D 0x0A 0x4D 0x6F 0x76 0x65 0x20    // '???Move ' \n\t0x66 0x6F 0x72 0x77 0x61 0x72 0x64 0x73    // 'forwards' \n\t0x20 0x6F 0x72 0x20 0x62 0x61 0x63 0x6B    // ' or back' \n\t0x77 0x61 0x72 0x64 0x73 0x20 0x69 0x6E    // 'wards in' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x75 0x72    // ' the cur' \n\t0x72 0x65 0x6E 0x74 0x20 0x73 0x63 0x65    // 'rent sce' \n\t0x6E 0x65 0x2E 0x20 0x20 0x0D 0x0A 0x54    // 'ne.  ??T' \n\t0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20 0x66    // 'o move f' \n\t0x72 0x6F 0x6D 0x20 0x66 0x72 0x61 0x6D    // 'rom fram' \n\t0x65 0x20 0x74 0x6F 0x20 0x66 0x72 0x61    // 'e to fra' \n\t0x6D 0x65 0x20 0x77 0x69 0x74 0x68 0x69    // 'me withi' \n\t0x6E 0x20 0x61 0x20 0x73 0x63 0x65 0x6E    // 'n a scen' \n\t0x65 0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69    // 'e???Cli' \n\t0x63 0x6B 0x20 0x20 0x74 0x68 0x65 0x20    // 'ck  the ' \n\t0x46 0x69 0x72 0x73 0x74 0x2C 0x20 0x50    // 'First, P' \n\t0x72 0x65 0x76 0x69 0x6F 0x75 0x73 0x2C    // 'revious,' \n\t0x20 0x4E 0x65 0x78 0x74 0x2C 0x20 0x6F    // ' Next, o' \n\t0x72 0x20 0x4C 0x61 0x73 0x74 0x20 0x41    // 'r Last A' \n\t0x72 0x72 0x6F 0x77 0x2E 0x0D 0x0A 0x2D    // 'rrow.??-' \n\t0x2D 0x6F 0x72 0x2D 0x2D 0x0D 0x0A 0x95    // '-or--??' \n\t0x09 0x44 0x72 0x61 0x67 0x20 0x74 0x68    // '?Drag th' \n\t0x65 0x20 0x73 0x6C 0x69 0x64 0x65 0x72    // 'e slider' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x6D 0x69 0x64 0x64 0x6C 0x65 0x20 0x6F    // 'middle o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x62 0x61    // 'f the ba' \n\t0x72 0x2E 0x0D 0x0A 0x01 0x20 0x41 0x64    // 'r.??? Ad' \n\t0x64 0x69 0x6E 0x67 0x20 0x65 0x78 0x74    // 'ding ext' \n\t0x72 0x61 0x20 0x66 0x72 0x61 0x6D 0x65    // 'ra frame' \n\t0x73                                       // 's' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_32= thWaitUntilMouseClick\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"Cut:  thWaitForClick\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"Cut:  thWaitForClick\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp32\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_76=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thWaitUntilMouseClick\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp32\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_76=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_67=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_76, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPausesMouse __HELP_SYMBOL( STN \"mbmpPausesMouse\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Tip___Remove_pause __HELP_SYMBOL( STN \"Tip___Remove_pause\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_76=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_76, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x18 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x01 0xF1 0x00 0x00 0x16 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x57 0x01 0x00 0x01    // '????W???' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x4C 0x00 0x00 0x02    // '????L???' \n\t0x00 0x00 0x00 0x00 0xA1 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x18 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xA3 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xC5 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x57 0x01 0x00 0x03    // '???W???' \n\t0x00 0x00 0x00 0x00 0xE8 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xF7 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xE8 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xF7 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x44 0x01 0x00 0x40    // '????D??@' \n\t0x05 0x00 0x00 0x00 0x57 0x01 0x00 0x40    // '????W??@' \n\t0x00 0x00 0x00 0x00 0xC7 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x18 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x44 0x01 0x00 0x82    // '????D??' \n\t0x00 0x00 0x00 0x00 0x05 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x44 0x01 0x00 0xC0    // '????D??' \n\t0x06 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_76=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_76, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x0D 0x0A 0x01    // '??Cut???' \n\t0x20 0x20 0x57 0x61 0x69 0x74 0x20 0x46    // '  Wait F' \n\t0x6F 0x72 0x20 0x43 0x6C 0x69 0x63 0x6B    // 'or Click' \n\t0x0D 0x0A 0x50 0x61 0x75 0x73 0x65 0x20    // '??Pause ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x76 0x69    // 'the movi' \n\t0x65 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'e action' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x79    // ' until y' \n\t0x6F 0x75 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'ou click' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x63 0x72    // ' the scr' \n\t0x65 0x65 0x6E 0x2E 0x20 0x20 0x59 0x6F    // 'een.  Yo' \n\t0x75 0x20 0x63 0x61 0x6E 0x20 0x75 0x73    // 'u can us' \n\t0x65 0x20 0x74 0x68 0x69 0x73 0x20 0x69    // 'e this i' \n\t0x66 0x20 0x79 0x6F 0x75 0x27 0x76 0x65    // 'f you've' \n\t0x20 0x61 0x64 0x64 0x65 0x64 0x20 0x77    // ' added w' \n\t0x6F 0x72 0x64 0x73 0x20 0x74 0x6F 0x20    // 'ords to ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x61 0x6E 0x64 0x20 0x77    // 'ie and w' \n\t0x61 0x6E 0x74 0x20 0x6D 0x6F 0x72 0x65    // 'ant more' \n\t0x20 0x74 0x69 0x6D 0x65 0x20 0x74 0x6F    // ' time to' \n\t0x20 0x72 0x65 0x61 0x64 0x20 0x74 0x68    // ' read th' \n\t0x65 0x6D 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'em.??To ' \n\t0x70 0x61 0x75 0x73 0x65 0x20 0x74 0x68    // 'pause th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'e movie ' \n\t0x75 0x6E 0x74 0x69 0x6C 0x20 0x79 0x6F    // 'until yo' \n\t0x75 0x20 0x63 0x6C 0x69 0x63 0x6B 0x0D    // 'u click?' \n\t0x0A 0x31 0x09 0x49 0x66 0x20 0x6E 0x65    // '?1?If ne' \n\t0x63 0x65 0x73 0x73 0x61 0x72 0x79 0x2C    // 'cessary,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x53    // ' click S' \n\t0x63 0x65 0x6E 0x65 0x73 0x2E 0x0D 0x0A    // 'cenes.??' \n\t0x32 0x09 0x47 0x6F 0x20 0x74 0x6F 0x20    // '2?Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'e in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'r movie ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x70 0x61 0x75 0x73 0x65 0x20    // 'o pause ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x69    // 'the acti' \n\t0x6F 0x6E 0x2E 0x0D 0x0A 0x33 0x09 0x43    // 'on.??3?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x57 0x61 0x69    // 'lick Wai' \n\t0x74 0x20 0x66 0x6F 0x72 0x20 0x43 0x6C    // 't for Cl' \n\t0x69 0x63 0x6B 0x2E 0x0D 0x0A 0x01 0x20    // 'ick.??? ' \n\t0x20 0x52 0x65 0x6D 0x6F 0x76 0x69 0x6E    // ' Removin' \n\t0x67 0x20 0x61 0x20 0x70 0x61 0x75 0x73    // 'g a paus' \n\t0x65                                       // 'e' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_33= thWaitUntilSound\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"thWaitForSoundtoEnd\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"thWaitForSoundtoEnd\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp33\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thWaitUntilSound\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp33\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_70=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7D, 0x0)\nAG(4)\n\tITEM LONG 0x2000006\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPausesSound __HELP_SYMBOL( STN \"mbmpPausesSound\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___frame __HELP_SYMBOL( STN \"Def___frame\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Def___Turn_on __HELP_SYMBOL( STN \"Def___Turn_on\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x29 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // ')???????' \n\t0x01 0xF6 0x00 0x00 0x17 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x92 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x07 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x02    // '????6???' \n\t0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x02    // '????d???' \n\t0x01 0x00 0x00 0x00 0x65 0x00 0x00 0x02    // '????e???' \n\t0x00 0x00 0x00 0x00 0x8D 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0x9D 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xA9 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xB2 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xC8 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xCA 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xB4 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xC6 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xC8 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x0A 0x01 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x53 0x01 0x00 0x03    // '???S???' \n\t0x00 0x00 0x00 0x00 0x5A 0x01 0x00 0x03    // '????Z???' \n\t0x0F 0x00 0x00 0xFD 0x92 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x04    // '????P???' \n\t0x0D 0x00 0x00 0xFE 0x55 0x00 0x00 0x04    // '???U???' \n\t0x00 0x00 0x00 0x00 0x0E 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x1D 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x53 0x01 0x00 0x04    // '????S???' \n\t0x0D 0x00 0x00 0xFE 0x5A 0x01 0x00 0x04    // '???Z???' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x40    // '????P??@' \n\t0x04 0x00 0x00 0x00 0x55 0x00 0x00 0x40    // '????U??@' \n\t0x00 0x00 0x00 0x00 0x0E 0x01 0x00 0x40    // '???????@' \n\t0x07 0x00 0x00 0x00 0x1D 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x53 0x01 0x00 0x40    // '????S??@' \n\t0x08 0x00 0x00 0x00 0x5A 0x01 0x00 0x40    // '????Z??@' \n\t0x00 0x00 0x00 0x00 0x92 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC8 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x19 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x51 0x01 0x00 0x82    // '????Q??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7D, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x57 0x61 0x69 0x74    // '??? Wait' \n\t0x20 0x66 0x6F 0x72 0x20 0x53 0x6F 0x75    // ' for Sou' \n\t0x6E 0x64 0x20 0x74 0x6F 0x20 0x45 0x6E    // 'nd to En' \n\t0x64 0x0D 0x0A 0x50 0x61 0x75 0x73 0x65    // 'd??Pause' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x61 0x63 0x74 0x69 0x6F    // 'ie actio' \n\t0x6E 0x20 0x75 0x6E 0x74 0x69 0x6C 0x20    // 'n until ' \n\t0x61 0x6C 0x6C 0x20 0x73 0x6F 0x75 0x6E    // 'all soun' \n\t0x64 0x73 0x20 0x61 0x74 0x20 0x74 0x68    // 'ds at th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x66 0x72 0x61 0x6D 0x65 0x20    // 't frame ' \n\t0x68 0x61 0x76 0x65 0x20 0x66 0x69 0x6E    // 'have fin' \n\t0x69 0x73 0x68 0x65 0x64 0x2E 0x20 0x20    // 'ished.  ' \n\t0x55 0x73 0x65 0x20 0x74 0x68 0x69 0x73    // 'Use this' \n\t0x20 0x69 0x66 0x20 0x79 0x6F 0x75 0x20    // ' if you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x70 0x61 0x75 0x73 0x65 0x20 0x74 0x68    // 'pause th' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'e movie ' \n\t0x75 0x6E 0x74 0x69 0x6C 0x20 0x61 0x6E    // 'until an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x20 0x68    // ' actor h' \n\t0x61 0x73 0x20 0x66 0x69 0x6E 0x69 0x73    // 'as finis' \n\t0x68 0x65 0x64 0x20 0x74 0x61 0x6C 0x6B    // 'hed talk' \n\t0x69 0x6E 0x67 0x2E 0x0D 0x0A 0x54 0x6F    // 'ing.??To' \n\t0x20 0x70 0x61 0x75 0x73 0x65 0x20 0x74    // ' pause t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'he movie' \n\t0x0D 0x0A 0x31 0x09 0x49 0x66 0x20 0x79    // '??1?If y' \n\t0x6F 0x75 0x20 0x73 0x65 0x65 0x20 0x74    // 'ou see t' \n\t0x68 0x65 0x20 0x53 0x6F 0x75 0x6E 0x64    // 'he Sound' \n\t0x73 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 's button' \n\t0x20 0x61 0x74 0x20 0x74 0x68 0x65 0x20    // ' at the ' \n\t0x74 0x6F 0x70 0x20 0x6F 0x66 0x20 0x74    // 'top of t' \n\t0x68 0x65 0x20 0x73 0x63 0x72 0x65 0x65    // 'he scree' \n\t0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'n, click' \n\t0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09    // ' it.??2?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x70 0x61 0x75 0x73 0x65 0x20 0x74 0x68    // 'pause th' \n\t0x65 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'e action' \n\t0x2E 0x0D 0x0A 0x33 0x09 0x54 0x75 0x72    // '.??3?Tur' \n\t0x6E 0x20 0x6F 0x6E 0x20 0x57 0x61 0x69    // 'n on Wai' \n\t0x74 0x20 0x66 0x6F 0x72 0x20 0x53 0x6F    // 't for So' \n\t0x75 0x6E 0x64 0x20 0x74 0x6F 0x20 0x45    // 'und to E' \n\t0x6E 0x64 0x2D 0x2D 0x79 0x6F 0x75 0x27    // 'nd--you'' \n\t0x6C 0x6C 0x20 0x66 0x69 0x6E 0x64 0x20    // 'll find ' \n\t0x69 0x74 0x20 0x75 0x6E 0x64 0x65 0x72    // 'it under' \n\t0x20 0x4D 0x6F 0x72 0x65 0x20 0x54 0x6F    // ' More To' \n\t0x6F 0x6C 0x73 0x2E                        // 'ols.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_34= thDontWait\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"Cut:  thDontWait\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"Cut:  thDontWait\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp34\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thDontWait\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp34\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_10=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPausesClear __HELP_SYMBOL( STN \"mbmpPausesClear\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x18 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x01 0xF1 0x00 0x00 0x12 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0x01    // '????;???' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x01    // '????=???' \n\t0x01 0x00 0x00 0x00 0xC5 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1A 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x02    // '????%???' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0x02    // '????;???' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x0A 0x00 0x00 0xFD 0x4E 0x00 0x00 0x03    // '???N???' \n\t0x0F 0x00 0x00 0xFD 0xC5 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0x04    // '????q???' \n\t0x0D 0x00 0x00 0xFE 0x80 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0x40    // '????q??@' \n\t0x03 0x00 0x00 0x00 0x80 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x80    // '????P??' \n\t0x00 0x00 0x02 0x00 0x14 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x05 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x0D 0x0A 0x01    // '??Cut???' \n\t0x20 0x20 0x44 0x6F 0x6E 0x27 0x74 0x20    // '  Don't ' \n\t0x57 0x61 0x69 0x74 0x0D 0x0A 0x52 0x65    // 'Wait??Re' \n\t0x6D 0x6F 0x76 0x65 0x20 0x61 0x6E 0x79    // 'move any' \n\t0x20 0x70 0x61 0x75 0x73 0x65 0x73 0x20    // ' pauses ' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x63    // 'at the c' \n\t0x75 0x72 0x72 0x65 0x6E 0x74 0x20 0x66    // 'urrent f' \n\t0x72 0x61 0x6D 0x65 0x2E 0x0D 0x0A 0x54    // 'rame.??T' \n\t0x6F 0x20 0x72 0x65 0x6D 0x6F 0x76 0x65    // 'o remove' \n\t0x20 0x61 0x20 0x70 0x61 0x75 0x73 0x65    // ' a pause' \n\t0x0D 0x0A 0x31 0x09 0x49 0x66 0x20 0x6E    // '??1?If n' \n\t0x65 0x63 0x65 0x73 0x73 0x61 0x72 0x79    // 'ecessary' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x53 0x63 0x65 0x6E 0x65 0x73 0x2E 0x0D    // 'Scenes.?' \n\t0x0A 0x32 0x09 0x47 0x6F 0x20 0x74 0x6F    // '?2?Go to' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x63 0x65 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ce in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x72 0x65 0x6D 0x6F 0x76    // 'to remov' \n\t0x65 0x20 0x61 0x20 0x70 0x61 0x75 0x73    // 'e a paus' \n\t0x65 0x2E 0x0D 0x0A 0x33 0x09 0x43 0x6C    // 'e.??3?Cl' \n\t0x69 0x63 0x6B 0x20 0x44 0x6F 0x6E 0x27    // 'ick Don'' \n\t0x74 0x20 0x57 0x61 0x69 0x74 0x2E         // 't Wait.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_35= thPlayStop\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"thPlayStop\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"thPlayStop\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp35\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thPlayStop\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp35\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\nAG(4)\n\tITEM LONG 0x2000009\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPlay __HELP_SYMBOL( STN \"mbmpPlay\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPlayStop __HELP_SYMBOL( STN \"mbmpPlayStop\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x2C 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // ',???????' \n\t0x01 0xF1 0x00 0x00 0x0F 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x01 0x00 0x01    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x10 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x00 0x00 0x02    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x02    // '????#???' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x02    // '????5???' \n\t0x00 0x00 0x00 0x00 0x4F 0x00 0x00 0x02    // '????O???' \n\t0x01 0x00 0x00 0x00 0x72 0x00 0x00 0x02    // '????r???' \n\t0x00 0x00 0x00 0x00 0x78 0x00 0x00 0x02    // '????x???' \n\t0x01 0x00 0x00 0x00 0x7B 0x00 0x00 0x02    // '????{???' \n\t0x00 0x00 0x00 0x00 0x7F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x8B 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x8D 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0x9E 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x9F 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xA0 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xB6 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xB8 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xD5 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xE6 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xE7 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xE8 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0x20 0x01 0x00 0x03    // '??? ???' \n\t0x00 0x00 0x00 0x00 0x9E 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0xB8 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xD5 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xE6 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x03 0x00 0x12 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x00 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x03 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x01 0x20 0x20    // '???  ?  ' \n\t0x50 0x6C 0x61 0x79 0x2F 0x53 0x74 0x6F    // 'Play/Sto' \n\t0x70 0x20 0x0D 0x0A 0x52 0x65 0x77 0x69    // 'p ??Rewi' \n\t0x6E 0x64 0x73 0x20 0x61 0x6E 0x64 0x20    // 'nds and ' \n\t0x70 0x6C 0x61 0x79 0x73 0x20 0x79 0x6F    // 'plays yo' \n\t0x75 0x72 0x20 0x65 0x6E 0x74 0x69 0x72    // 'ur entir' \n\t0x65 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'e movie ' \n\t0x69 0x66 0x20 0x79 0x6F 0x75 0x27 0x72    // 'if you'r' \n\t0x65 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 'e at the' \n\t0x20 0x76 0x65 0x72 0x79 0x20 0x65 0x6E    // ' very en' \n\t0x64 0x2E 0x20 0x20 0x4F 0x74 0x68 0x65    // 'd.  Othe' \n\t0x72 0x77 0x69 0x73 0x65 0x2C 0x20 0x70    // 'rwise, p' \n\t0x6C 0x61 0x79 0x73 0x20 0x66 0x72 0x6F    // 'lays fro' \n\t0x6D 0x20 0x74 0x68 0x65 0x20 0x70 0x6F    // 'm the po' \n\t0x69 0x6E 0x74 0x20 0x77 0x68 0x65 0x72    // 'int wher' \n\t0x65 0x20 0x79 0x6F 0x75 0x20 0x61 0x72    // 'e you ar' \n\t0x65 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'e to the' \n\t0x20 0x65 0x6E 0x64 0x2E 0x0D 0x0A 0x54    // ' end.??T' \n\t0x6F 0x20 0x70 0x6C 0x61 0x79 0x20 0x61    // 'o play a' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x0D 0x0A    // ' movie??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x74 0x68 0x65 0x20 0x50 0x6C 0x61 0x79    // 'the Play' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E    // ' button.' \n\t0x0D 0x0A 0x54 0x68 0x65 0x20 0x62 0x75    // '??The bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x63 0x68 0x61    // 'tton cha' \n\t0x6E 0x67 0x65 0x73 0x20 0x74 0x6F 0x20    // 'nges to ' \n\t0x53 0x74 0x6F 0x70 0x2E 0x0D 0x0A 0x54    // 'Stop.??T' \n\t0x6F 0x20 0x73 0x74 0x6F 0x70 0x20 0x61    // 'o stop a' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x0D 0x0A    // ' movie??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x74 0x68 0x65 0x20 0x53 0x74 0x6F 0x70    // 'the Stop' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x2E    // ' button.' \n\t0x0D 0x0A 0x54 0x68 0x65 0x20 0x62 0x75    // '??The bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x63 0x68 0x61    // 'tton cha' \n\t0x6E 0x67 0x65 0x73 0x20 0x62 0x61 0x63    // 'nges bac' \n\t0x6B 0x20 0x74 0x6F 0x20 0x50 0x6C 0x61    // 'k to Pla' \n\t0x79 0x2E                                  // 'y.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_36= thVolumeControl\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"thVolumeControl\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"thVolumeControl\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp36\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_27=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thVolumeControl\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp36\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_27=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0C 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_23=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Tip___Individual_Sounds __HELP_SYMBOL( STN \"Tip___Individual_Sounds\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpVolumeControl __HELP_SYMBOL( STN \"mbmpVolumeControl\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Drag __HELP_SYMBOL( STN \"Def___Drag\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_27=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x17 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF1 0x00 0x00 0x11 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xE7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x02    // '????(???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x13 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x7A 0x00 0x00 0x03    // '???z???' \n\t0x0A 0x00 0x00 0xFD 0x8E 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xE7 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x8E 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x92 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x96 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x8E 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x92 0x00 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0x96 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xBE 0x00 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xE7 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x13 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xBE 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x05 0x00 0x00 0x00 0xBE 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_27=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x56 0x6F 0x6C    // '???  Vol' \n\t0x75 0x6D 0x65 0x20 0x43 0x6F 0x6E 0x74    // 'ume Cont' \n\t0x72 0x6F 0x6C 0x0D 0x0A 0x41 0x64 0x6A    // 'rol??Adj' \n\t0x75 0x73 0x74 0x20 0x74 0x68 0x65 0x20    // 'ust the ' \n\t0x76 0x6F 0x6C 0x75 0x6D 0x65 0x20 0x6F    // 'volume o' \n\t0x66 0x20 0x61 0x6C 0x6C 0x20 0x73 0x6F    // 'f all so' \n\t0x75 0x6E 0x64 0x73 0x20 0x69 0x6E 0x20    // 'unds in ' \n\t0x33 0x44 0x20 0x4D 0x6F 0x76 0x69 0x65    // '3D Movie' \n\t0x20 0x4D 0x61 0x6B 0x65 0x72 0x2D 0x2D    // ' Maker--' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x73 0x6F    // 'movie so' \n\t0x75 0x6E 0x64 0x73 0x2C 0x20 0x74 0x6F    // 'unds, to' \n\t0x6F 0x6C 0x73 0x2C 0x20 0x4D 0x63 0x5A    // 'ols, McZ' \n\t0x65 0x65 0x27 0x73 0x20 0x61 0x6E 0x64    // 'ee's and' \n\t0x20 0x4D 0x65 0x6C 0x61 0x6E 0x69 0x65    // ' Melanie' \n\t0x27 0x73 0x20 0x76 0x6F 0x69 0x63 0x65    // ''s voice' \n\t0x73 0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x63    // 's.??To c' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x74 0x68    // 'hange th' \n\t0x65 0x20 0x76 0x6F 0x6C 0x75 0x6D 0x65    // 'e volume' \n\t0x0D 0x0A 0x95 0x09 0x44 0x72 0x61 0x67    // '???Drag' \n\t0x20 0x74 0x68 0x65 0x20 0x56 0x6F 0x6C    // ' the Vol' \n\t0x75 0x6D 0x65 0x20 0x43 0x6F 0x6E 0x74    // 'ume Cont' \n\t0x72 0x6F 0x6C 0x20 0x73 0x6C 0x69 0x64    // 'rol slid' \n\t0x65 0x72 0x20 0x75 0x70 0x20 0x6F 0x72    // 'er up or' \n\t0x20 0x64 0x6F 0x77 0x6E 0x2E 0x0D 0x0A    // ' down.??' \n\t0x01 0x43 0x68 0x61 0x6E 0x67 0x69 0x6E    // '?Changin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x76 0x6F    // 'g the vo' \n\t0x6C 0x75 0x6D 0x65 0x20 0x6F 0x66 0x20    // 'lume of ' \n\t0x69 0x6E 0x64 0x69 0x76 0x69 0x64 0x75    // 'individu' \n\t0x61 0x6C 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'al sound' \n\t0x73                                       // 's' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_37= thUndoRedo\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"thUndoRedo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"thUndoRedo\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp37\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_23=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thUndoRedo\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp37\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_23=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_20=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpUndo __HELP_SYMBOL( STN \"mbmpUndo\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRedo __HELP_SYMBOL( STN \"mbmpRedo\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Key___Undo __HELP_SYMBOL( STN \"Key___Undo\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipKey 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipKey\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_23=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x17 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xF1 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x02    // '????X???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x5A 0x00 0x00 0x03    // '???Z???' \n\t0x0A 0x00 0x00 0xFD 0x6B 0x00 0x00 0x03    // '???k???' \n\t0x0F 0x00 0x00 0xFD 0x99 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xB1 0x00 0x00 0x03    // '??????' \n\t0x0F 0x00 0x00 0xFD 0xF1 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xE2 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xF1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x7C 0x00 0x00 0x80    // '????|??' \n\t0x00 0x00 0x03 0x00 0x99 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xC0 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xE2 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x05 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x02 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0xE2 0x00 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_23=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x01 0x0D 0x0A 0x55    // '??? ???U' \n\t0x6E 0x64 0x6F 0x20 0x74 0x68 0x65 0x20    // 'ndo the ' \n\t0x6C 0x61 0x73 0x74 0x20 0x74 0x68 0x69    // 'last thi' \n\t0x6E 0x67 0x20 0x79 0x6F 0x75 0x20 0x64    // 'ng you d' \n\t0x69 0x64 0x21 0x20 0x20 0x49 0x66 0x20    // 'id!  If ' \n\t0x79 0x6F 0x75 0x20 0x63 0x68 0x61 0x6E    // 'you chan' \n\t0x67 0x65 0x20 0x79 0x6F 0x75 0x72 0x20    // 'ge your ' \n\t0x6D 0x69 0x6E 0x64 0x2C 0x20 0x79 0x6F    // 'mind, yo' \n\t0x75 0x20 0x63 0x61 0x6E 0x20 0x72 0x65    // 'u can re' \n\t0x64 0x6F 0x20 0x77 0x68 0x61 0x74 0x20    // 'do what ' \n\t0x79 0x6F 0x75 0x20 0x75 0x6E 0x64 0x69    // 'you undi' \n\t0x64 0x21 0x0D 0x0A 0x54 0x6F 0x20 0x75    // 'd!??To u' \n\t0x6E 0x64 0x6F 0x20 0x61 0x20 0x6D 0x69    // 'ndo a mi' \n\t0x73 0x74 0x61 0x6B 0x65 0x0D 0x0A 0x95    // 'stake??' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x55    // '?Click U' \n\t0x6E 0x64 0x6F 0x2E 0x0D 0x0A 0x54 0x68    // 'ndo.??Th' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x20 0x63 0x68 0x61 0x6E 0x67 0x65 0x73    // ' changes' \n\t0x20 0x74 0x6F 0x20 0x52 0x65 0x64 0x6F    // ' to Redo' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x72 0x65    // '.??To re' \n\t0x64 0x6F 0x20 0x77 0x68 0x61 0x74 0x20    // 'do what ' \n\t0x79 0x6F 0x75 0x20 0x75 0x6E 0x64 0x69    // 'you undi' \n\t0x64 0x0D 0x0A 0x95 0x09 0x43 0x6C 0x69    // 'd???Cli' \n\t0x63 0x6B 0x20 0x52 0x65 0x64 0x6F 0x2E    // 'ck Redo.' \n\t0x0D 0x0A 0x54 0x68 0x65 0x20 0x62 0x75    // '??The bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x63 0x68 0x61    // 'tton cha' \n\t0x6E 0x67 0x65 0x73 0x20 0x62 0x61 0x63    // 'nges bac' \n\t0x6B 0x20 0x74 0x6F 0x20 0x55 0x6E 0x64    // 'k to Und' \n\t0x6F 0x2E 0x0D 0x0A 0x01 0x20 0x53 0x68    // 'o.??? Sh' \n\t0x6F 0x72 0x74 0x63 0x75 0x74 0x20 0x6B    // 'ortcut k' \n\t0x65 0x79 0x73                             // 'eys' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_38= thCutCopyPaste\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"thCutCopyPaste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"thCutCopyPaste\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp38\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thCutCopyPaste\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp38\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_32=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCutCopyPaste __HELP_SYMBOL( STN \"mbmpCutCopyPaste\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_32=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x16 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0xF1 0x00 0x00 0x03 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x1A 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x21 0x01 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x5E 0x00 0x00 0x02    // '????^???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x60 0x00 0x00 0x03    // '???`???' \n\t0x0A 0x00 0x00 0xFD 0x76 0x00 0x00 0x03    // '???v???' \n\t0x0F 0x00 0x00 0xFD 0x21 0x01 0x00 0x03    // '???!???' \n\t0x00 0x00 0x00 0x00 0x78 0x00 0x00 0x80    // '????x??' \n\t0x00 0x00 0x02 0x00 0x9F 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x07 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x1C 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x07 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_32=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x75 0x74    // '???  Cut' \n\t0x2C 0x20 0x43 0x6F 0x70 0x79 0x2C 0x26    // ', Copy,&' \n\t0x20 0x50 0x61 0x73 0x74 0x65 0x20 0x54    // ' Paste T' \n\t0x6F 0x6F 0x6C 0x73 0x0D 0x0A 0x47 0x65    // 'ools??Ge' \n\t0x74 0x20 0x72 0x69 0x64 0x20 0x6F 0x66    // 't rid of' \n\t0x2C 0x20 0x63 0x6F 0x70 0x79 0x2C 0x20    // ', copy, ' \n\t0x70 0x61 0x73 0x74 0x65 0x2C 0x20 0x6F    // 'paste, o' \n\t0x72 0x20 0x6D 0x6F 0x76 0x65 0x20 0x74    // 'r move t' \n\t0x68 0x69 0x6E 0x67 0x73 0x20 0x66 0x72    // 'hings fr' \n\t0x6F 0x6D 0x20 0x6F 0x6E 0x65 0x20 0x70    // 'om one p' \n\t0x6C 0x61 0x63 0x65 0x20 0x74 0x6F 0x20    // 'lace to ' \n\t0x61 0x6E 0x6F 0x74 0x68 0x65 0x72 0x2E    // 'another.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x63 0x75 0x74    // '??To cut' \n\t0x2C 0x20 0x63 0x6F 0x70 0x79 0x2C 0x20    // ', copy, ' \n\t0x6F 0x72 0x20 0x70 0x61 0x73 0x74 0x65    // 'or paste' \n\t0x0D 0x0A 0x31 0x09 0x43 0x6C 0x69 0x63    // '??1?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x43 0x75    // 'k the Cu' \n\t0x74 0x2C 0x20 0x43 0x6F 0x70 0x79 0x2C    // 't, Copy,' \n\t0x20 0x26 0x20 0x50 0x61 0x73 0x74 0x65    // ' & Paste' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E 0x0D    // ' Tools.?' \n\t0x0A 0x54 0x6F 0x20 0x66 0x69 0x6E 0x64    // '?To find' \n\t0x20 0x6F 0x75 0x74 0x20 0x6D 0x6F 0x72    // ' out mor' \n\t0x65 0x2C 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'e, move ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x63 0x75 0x72 0x73 0x6F 0x72    // 'e cursor' \n\t0x20 0x6F 0x76 0x65 0x72 0x20 0x65 0x61    // ' over ea' \n\t0x63 0x68 0x20 0x74 0x6F 0x6F 0x6C 0x2E    // 'ch tool.' \n\t0x20 0x20 0x57 0x61 0x69 0x74 0x2E 0x2E    // '  Wait..' \n\t0x2E 0x79 0x6F 0x75 0x27 0x6C 0x6C 0x20    // '.you'll ' \n\t0x67 0x65 0x74 0x20 0x61 0x20 0x64 0x65    // 'get a de' \n\t0x73 0x63 0x72 0x69 0x70 0x74 0x69 0x6F    // 'scriptio' \n\t0x6E 0x20 0x6F 0x66 0x20 0x65 0x61 0x63    // 'n of eac' \n\t0x68 0x20 0x74 0x6F 0x6F 0x6C 0x2E 0x0D    // 'h tool.?' \n\t0x0A 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?2?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x74 0x6F 0x6F    // ' the too' \n\t0x6C 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'l you wa' \n\t0x6E 0x74 0x2E                             // 'nt.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_39= thGetRidofEverythingBefore\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"thRemoveEverythingBefore\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"thRemoveEverythingBefore\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp39\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thGetRidofEverythingBefore\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp39\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_56=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5D, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPRemoveBefore __HELP_SYMBOL( STN \"mbmpCCPRemoveBefore\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Tip___Undo __HELP_SYMBOL( STN \"Tip___Undo\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x22 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '\"???????' \n\t0x01 0xF6 0x00 0x00 0x1B 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x73 0x01 0x00 0x01    // '????s???' \n\t0x05 0x00 0x00 0x00 0x79 0x01 0x00 0x01    // '????y???' \n\t0x01 0x00 0x00 0x00 0xA0 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x02    // '????#???' \n\t0x01 0x00 0x00 0x00 0x4D 0x00 0x00 0x02    // '????M???' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x02    // '????V???' \n\t0x01 0x00 0x00 0x00 0x5D 0x00 0x00 0x02    // '????]???' \n\t0x00 0x00 0x00 0x00 0x7C 0x00 0x00 0x02    // '????|???' \n\t0x01 0x00 0x00 0x00 0x7E 0x00 0x00 0x02    // '????~???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1D 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x5F 0x00 0x00 0x03    // '???_???' \n\t0x0A 0x00 0x00 0xFD 0x7A 0x00 0x00 0x03    // '???z???' \n\t0x0F 0x00 0x00 0xFD 0x7C 0x00 0x00 0x03    // '???|???' \n\t0x00 0x00 0x00 0x00 0xC0 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xA0 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xC2 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xD1 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x1D 0x01 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00 0xC2 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xD1 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x1D 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x9A 0x01 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xA0 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x7C 0x00 0x00 0x80    // '????|??' \n\t0x00 0x00 0x02 0x00 0x64 0x01 0x00 0x80    // '????d??' \n\t0x00 0x00 0x03 0x00 0x9A 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x1D 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x9A 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x9A 0x01 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5D, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x52 0x65 0x6D    // '???  Rem' \n\t0x6F 0x76 0x65 0x20 0x45 0x76 0x65 0x72    // 'ove Ever' \n\t0x79 0x74 0x68 0x69 0x6E 0x67 0x20 0x42    // 'ything B' \n\t0x65 0x66 0x6F 0x72 0x65 0x0D 0x0A 0x52    // 'efore??R' \n\t0x65 0x6D 0x6F 0x76 0x65 0x20 0x65 0x76    // 'emove ev' \n\t0x65 0x72 0x79 0x74 0x68 0x69 0x6E 0x67    // 'erything' \n\t0x20 0x62 0x65 0x66 0x6F 0x72 0x65 0x20    // ' before ' \n\t0x74 0x68 0x65 0x20 0x63 0x75 0x72 0x72    // 'the curr' \n\t0x65 0x6E 0x74 0x20 0x66 0x72 0x61 0x6D    // 'ent fram' \n\t0x65 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'e in the' \n\t0x20 0x63 0x75 0x72 0x72 0x65 0x6E 0x74    // ' current' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x2E 0x0D    // ' scene.?' \n\t0x0A 0x54 0x6F 0x20 0x72 0x65 0x6D 0x6F    // '?To remo' \n\t0x76 0x65 0x20 0x65 0x76 0x65 0x72 0x79    // 've every' \n\t0x74 0x68 0x69 0x6E 0x67 0x20 0x62 0x65    // 'thing be' \n\t0x66 0x6F 0x72 0x65 0x0D 0x0A 0x31 0x09    // 'fore??1?' \n\t0x49 0x66 0x20 0x79 0x6F 0x75 0x20 0x73    // 'If you s' \n\t0x65 0x65 0x20 0x74 0x68 0x65 0x20 0x53    // 'ee the S' \n\t0x63 0x65 0x6E 0x65 0x73 0x20 0x62 0x75    // 'cenes bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x74 0x20    // 'tton at ' \n\t0x74 0x68 0x65 0x20 0x74 0x6F 0x70 0x20    // 'the top ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x73    // 'of the s' \n\t0x63 0x72 0x65 0x65 0x6E 0x2C 0x20 0x63    // 'creen, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x69 0x74 0x2E    // 'lick it.' \n\t0x0D 0x0A 0x32 0x09 0x47 0x6F 0x20 0x74    // '??2?Go t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x70 0x6C    // 'o the pl' \n\t0x61 0x63 0x65 0x20 0x69 0x6E 0x20 0x79    // 'ace in y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x74 0x68 0x61 0x74 0x20 0x79    // 'e that y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20    // 'to make ' \n\t0x74 0x68 0x65 0x20 0x66 0x69 0x72 0x73    // 'the firs' \n\t0x74 0x20 0x66 0x72 0x61 0x6D 0x65 0x20    // 't frame ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x63    // 'of the c' \n\t0x75 0x72 0x72 0x65 0x6E 0x74 0x20 0x73    // 'urrent s' \n\t0x63 0x65 0x6E 0x65 0x2E 0x0D 0x0A 0x33    // 'cene.??3' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x52    // '?Click R' \n\t0x65 0x6D 0x6F 0x76 0x65 0x20 0x45 0x76    // 'emove Ev' \n\t0x65 0x72 0x79 0x74 0x68 0x69 0x6E 0x67    // 'erything' \n\t0x20 0x42 0x65 0x66 0x6F 0x72 0x65 0x2E    // ' Before.' \n\t0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69 0x63    // '??4?Clic' \n\t0x6B 0x20 0x61 0x6E 0x79 0x77 0x68 0x65    // 'k anywhe' \n\t0x72 0x65 0x20 0x69 0x6E 0x20 0x74 0x68    // 're in th' \n\t0x65 0x20 0x77 0x6F 0x72 0x6B 0x73 0x70    // 'e worksp' \n\t0x61 0x63 0x65 0x2E 0x0D 0x0A 0x41 0x6C    // 'ace.??Al' \n\t0x6C 0x20 0x74 0x68 0x65 0x20 0x66 0x72    // 'l the fr' \n\t0x61 0x6D 0x65 0x73 0x20 0x62 0x65 0x66    // 'ames bef' \n\t0x6F 0x72 0x65 0x20 0x74 0x68 0x65 0x20    // 'ore the ' \n\t0x63 0x75 0x72 0x72 0x65 0x6E 0x74 0x20    // 'current ' \n\t0x66 0x72 0x61 0x6D 0x65 0x20 0x61 0x72    // 'frame ar' \n\t0x65 0x20 0x72 0x65 0x6D 0x6F 0x76 0x65    // 'e remove' \n\t0x64 0x2E 0x0D 0x0A 0x01 0x20 0x55 0x6E    // 'd.??? Un' \n\t0x64 0x6F                                  // 'do' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3A= thGetRidofEverythingAfter\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"thRemoveEverythingAfter\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"thRemoveEverythingAfter\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp3A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_42=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thGetRidofEverythingAfter\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp3A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_42=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\nAG(4)\n\tITEM LONG 0x2000005\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPRemoveAfter __HELP_SYMBOL( STN \"mbmpCCPRemoveAfter\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Tip___Undo __HELP_SYMBOL( STN \"Tip___Undo\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_42=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x24 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '$???????' \n\t0x01 0xF6 0x00 0x00 0x1A 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x6E 0x01 0x00 0x01    // '????n???' \n\t0x05 0x00 0x00 0x00 0x73 0x01 0x00 0x01    // '????s???' \n\t0x01 0x00 0x00 0x00 0x9A 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x00 0x00 0x02    // '????\"???' \n\t0x01 0x00 0x00 0x00 0x49 0x00 0x00 0x02    // '????I???' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x02    // '????T???' \n\t0x01 0x00 0x00 0x00 0x5B 0x00 0x00 0x02    // '????[???' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x02    // '????y???' \n\t0x01 0x00 0x00 0x00 0x7B 0x00 0x00 0x02    // '????{???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x5D 0x00 0x00 0x03    // '???]???' \n\t0x0A 0x00 0x00 0xFD 0x77 0x00 0x00 0x03    // '???w???' \n\t0x0F 0x00 0x00 0xFD 0x79 0x00 0x00 0x03    // '???y???' \n\t0x00 0x00 0x00 0x00 0xBD 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x9A 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xBF 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xCE 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x17 0x01 0x00 0x04    // '????????' \n\t0x00 0x00 0x00 0x00 0xBF 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0xCE 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x17 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x94 0x01 0x00 0x40    // '??????@' \n\t0x06 0x00 0x00 0x00 0x9A 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x80    // '????y??' \n\t0x00 0x00 0x02 0x00 0x5F 0x01 0x00 0x80    // '????_??' \n\t0x00 0x00 0x03 0x00 0x94 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x1C 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x94 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x05 0x00 0x00 0x00 0x94 0x01 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_42=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x52 0x65 0x6D    // '???  Rem' \n\t0x6F 0x76 0x65 0x20 0x45 0x76 0x65 0x72    // 'ove Ever' \n\t0x79 0x74 0x68 0x69 0x6E 0x67 0x20 0x41    // 'ything A' \n\t0x66 0x74 0x65 0x72 0x0D 0x0A 0x52 0x65    // 'fter??Re' \n\t0x6D 0x6F 0x76 0x65 0x20 0x65 0x76 0x65    // 'move eve' \n\t0x72 0x79 0x74 0x68 0x69 0x6E 0x67 0x20    // 'rything ' \n\t0x61 0x66 0x74 0x65 0x72 0x20 0x74 0x68    // 'after th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x66 0x72 0x61 0x6D 0x65 0x20    // 't frame ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x63    // 'in the c' \n\t0x75 0x72 0x72 0x65 0x6E 0x74 0x20 0x73    // 'urrent s' \n\t0x63 0x65 0x6E 0x65 0x2E 0x0D 0x0A 0x54    // 'cene.??T' \n\t0x6F 0x20 0x72 0x65 0x6D 0x6F 0x76 0x65    // 'o remove' \n\t0x20 0x65 0x76 0x65 0x72 0x79 0x74 0x68    // ' everyth' \n\t0x69 0x6E 0x67 0x20 0x61 0x66 0x74 0x65    // 'ing afte' \n\t0x72 0x0D 0x0A 0x31 0x09 0x49 0x66 0x20    // 'r??1?If ' \n\t0x79 0x6F 0x75 0x20 0x73 0x65 0x65 0x20    // 'you see ' \n\t0x74 0x68 0x65 0x20 0x53 0x63 0x65 0x6E    // 'the Scen' \n\t0x65 0x73 0x20 0x62 0x75 0x74 0x74 0x6F    // 'es butto' \n\t0x6E 0x20 0x61 0x74 0x20 0x74 0x68 0x65    // 'n at the' \n\t0x20 0x74 0x6F 0x70 0x20 0x6F 0x66 0x20    // ' top of ' \n\t0x74 0x68 0x65 0x20 0x73 0x63 0x72 0x65    // 'the scre' \n\t0x65 0x6E 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'en, clic' \n\t0x6B 0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32    // 'k it.??2' \n\t0x09 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x74    // ' movie t' \n\t0x68 0x61 0x74 0x20 0x79 0x6F 0x75 0x20    // 'hat you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x6D 0x61 0x6B 0x65 0x20 0x74 0x68 0x65    // 'make the' \n\t0x20 0x6C 0x61 0x73 0x74 0x20 0x66 0x72    // ' last fr' \n\t0x61 0x6D 0x65 0x20 0x6F 0x66 0x20 0x74    // 'ame of t' \n\t0x68 0x65 0x20 0x63 0x75 0x72 0x72 0x65    // 'he curre' \n\t0x6E 0x74 0x20 0x73 0x63 0x65 0x6E 0x65    // 'nt scene' \n\t0x2E 0x0D 0x0A 0x33 0x09 0x43 0x6C 0x69    // '.??3?Cli' \n\t0x63 0x6B 0x20 0x52 0x65 0x6D 0x6F 0x76    // 'ck Remov' \n\t0x65 0x20 0x45 0x76 0x65 0x72 0x79 0x74    // 'e Everyt' \n\t0x68 0x69 0x6E 0x67 0x20 0x41 0x66 0x74    // 'hing Aft' \n\t0x65 0x72 0x2E 0x0D 0x0A 0x34 0x09 0x43    // 'er.??4?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x61 0x6E 0x79    // 'lick any' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x69 0x6E    // 'where in' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x6F 0x72    // ' the wor' \n\t0x6B 0x73 0x70 0x61 0x63 0x65 0x2E 0x0D    // 'kspace.?' \n\t0x0A 0x41 0x6C 0x6C 0x20 0x74 0x68 0x65    // '?All the' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x73 0x20    // ' frames ' \n\t0x61 0x66 0x74 0x65 0x72 0x20 0x74 0x68    // 'after th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x66 0x72 0x61 0x6D 0x65 0x20    // 't frame ' \n\t0x61 0x72 0x65 0x20 0x72 0x65 0x6D 0x6F    // 'are remo' \n\t0x76 0x65 0x64 0x2E 0x0D 0x0A 0x01 0x20    // 'ved.??? ' \n\t0x55 0x6E 0x64 0x6F                        // 'Undo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3B= thGetRidEntireScene\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"thRemoveEntireScene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"thRemoveEntireScene\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp3B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thGetRidEntireScene\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp3B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Undo __HELP_SYMBOL( STN \"Tip___Undo\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPRemoveScene __HELP_SYMBOL( STN \"mbmpCCPRemoveScene\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Cut_Copy_Paste __HELP_SYMBOL( STN \"Def___Cut_Copy_Paste\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Move_to_scene __HELP_SYMBOL( STN \"Def___Move_to_scene\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // ' ???????' \n\t0x01 0xF6 0x00 0x00 0x16 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x52 0x01 0x00 0x01    // '????R???' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x02    // '????#???' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x02    // '????*???' \n\t0x01 0x00 0x00 0x00 0x59 0x00 0x00 0x02    // '????Y???' \n\t0x00 0x00 0x00 0x00 0x76 0x00 0x00 0x02    // '????v???' \n\t0x01 0x00 0x00 0x00 0x78 0x00 0x00 0x02    // '????x???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x18 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x5B 0x00 0x00 0x03    // '???[???' \n\t0x0A 0x00 0x00 0xFD 0x74 0x00 0x00 0x03    // '???t???' \n\t0x0F 0x00 0x00 0xFD 0x76 0x00 0x00 0x03    // '???v???' \n\t0x00 0x00 0x00 0x00 0xBA 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x52 0x01 0x00 0x03    // '???R???' \n\t0x00 0x00 0x00 0x00 0xBC 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xCB 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xF8 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x11 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0xBC 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xCB 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF8 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0x10 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x4D 0x01 0x00 0x40    // '????M??@' \n\t0x02 0x00 0x00 0x00 0x52 0x01 0x00 0x40    // '????R??@' \n\t0x00 0x00 0x00 0x00 0x76 0x00 0x00 0x80    // '????v??' \n\t0x00 0x00 0x02 0x00 0x18 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x4D 0x01 0x00 0x82    // '????M??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0x4D 0x01 0x00 0xC0    // '????M??' \n\t0x07 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x52 0x65 0x6D    // '???  Rem' \n\t0x6F 0x76 0x65 0x20 0x45 0x6E 0x74 0x69    // 'ove Enti' \n\t0x72 0x65 0x20 0x53 0x63 0x65 0x6E 0x65    // 're Scene' \n\t0x0D 0x0A 0x52 0x65 0x6D 0x6F 0x76 0x65    // '??Remove' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x75 0x72    // ' the cur' \n\t0x72 0x65 0x6E 0x74 0x20 0x73 0x63 0x65    // 'rent sce' \n\t0x6E 0x65 0x2D 0x2D 0x69 0x6E 0x63 0x6C    // 'ne--incl' \n\t0x75 0x64 0x69 0x6E 0x67 0x20 0x61 0x6C    // 'uding al' \n\t0x6C 0x20 0x61 0x63 0x74 0x6F 0x72 0x73    // 'l actors' \n\t0x2C 0x20 0x70 0x72 0x6F 0x70 0x73 0x2C    // ', props,' \n\t0x20 0x61 0x6E 0x64 0x20 0x73 0x6F 0x20    // ' and so ' \n\t0x6F 0x6E 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'on.??To ' \n\t0x72 0x65 0x6D 0x6F 0x76 0x65 0x20 0x61    // 'remove a' \n\t0x6E 0x20 0x65 0x6E 0x74 0x69 0x72 0x65    // 'n entire' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A    // ' scene??' \n\t0x31 0x09 0x49 0x66 0x20 0x79 0x6F 0x75    // '1?If you' \n\t0x20 0x73 0x65 0x65 0x20 0x74 0x68 0x65    // ' see the' \n\t0x20 0x53 0x63 0x65 0x6E 0x65 0x73 0x20    // ' Scenes ' \n\t0x62 0x75 0x74 0x74 0x6F 0x6E 0x20 0x61    // 'button a' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 't the to' \n\t0x70 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'p of the' \n\t0x20 0x73 0x63 0x72 0x65 0x65 0x6E 0x2C    // ' screen,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x69    // ' click i' \n\t0x74 0x2E 0x0D 0x0A 0x32 0x09 0x47 0x6F    // 't.??2?Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x69 0x6E    // 'scene in' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F    // ' your mo' \n\t0x76 0x69 0x65 0x20 0x79 0x6F 0x75 0x20    // 'vie you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x72 0x65 0x6D    // 'want rem' \n\t0x6F 0x76 0x65 0x2E 0x0D 0x0A 0x33 0x09    // 'ove.??3?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x43 0x75 0x74 0x2C 0x20 0x43    // 'e Cut, C' \n\t0x6F 0x70 0x79 0x2C 0x20 0x26 0x20 0x50    // 'opy, & P' \n\t0x61 0x73 0x74 0x65 0x20 0x54 0x6F 0x6F    // 'aste Too' \n\t0x6C 0x73 0x2E 0x0D 0x0A 0x34 0x09 0x43    // 'ls.??4?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x52 0x65 0x6D    // 'lick Rem' \n\t0x6F 0x76 0x65 0x20 0x45 0x6E 0x74 0x69    // 'ove Enti' \n\t0x72 0x65 0x20 0x53 0x63 0x65 0x6E 0x65    // 're Scene' \n\t0x2E 0x0D 0x0A 0x35 0x09 0x43 0x6C 0x69    // '.??5?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x63    // 'ck the c' \n\t0x75 0x72 0x72 0x65 0x6E 0x74 0x20 0x73    // 'urrent s' \n\t0x63 0x65 0x6E 0x65 0x2E 0x0D 0x0A 0x01    // 'cene.???' \n\t0x55 0x6E 0x64 0x6F                        // 'Undo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3C= thGetRid3DObject\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"thRemove3DObject\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"thRemove3DObject\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp3C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_78=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thGetRid3DObject\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp3C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_78=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_78, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Undo __HELP_SYMBOL( STN \"Tip___Undo\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPRemoveObject __HELP_SYMBOL( STN \"mbmpCCPRemoveObject\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Cut_Copy_Paste __HELP_SYMBOL( STN \"Def___Cut_Copy_Paste\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_78=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_78, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // ' ???????' \n\t0x01 0xF6 0x00 0x00 0x13 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xAE 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x02    // '????6???' \n\t0x01 0x00 0x00 0x00 0x4E 0x00 0x00 0x02    // '????N???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x50 0x00 0x00 0x03    // '???P???' \n\t0x0A 0x00 0x00 0xFD 0x65 0x00 0x00 0x03    // '???e???' \n\t0x0F 0x00 0x00 0xFD 0xAE 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xB5 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xC4 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x08 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x20 0x01 0x00 0x04    // '??? ???' \n\t0x00 0x00 0x00 0x00 0xB5 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xC4 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x08 0x01 0x00 0x40    // '???????@' \n\t0x05 0x00 0x00 0x00 0x20 0x01 0x00 0x40    // '???? ??@' \n\t0x00 0x00 0x00 0x00 0xA8 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xAE 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x67 0x00 0x00 0x80    // '????g??' \n\t0x00 0x00 0x02 0x00 0x77 0x01 0x00 0x80    // '????w??' \n\t0x00 0x00 0x03 0x00 0xA8 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x15 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xA8 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x04 0x00 0x00 0x00 0xA8 0x01 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_78=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_78, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x52 0x65 0x6D    // '???  Rem' \n\t0x6F 0x76 0x65 0x20 0x33 0x44 0x20 0x4F    // 'ove 3D O' \n\t0x62 0x6A 0x65 0x63 0x74 0x0D 0x0A 0x52    // 'bject??R' \n\t0x65 0x6D 0x6F 0x76 0x65 0x20 0x61 0x6E    // 'emove an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x74 0x68    // ' from th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x73 0x63 0x65 0x6E 0x65 0x2E    // 't scene.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x72 0x65 0x6D    // '??To rem' \n\t0x6F 0x76 0x65 0x20 0x61 0x20 0x33 0x44    // 'ove a 3D' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x0D    // ' object?' \n\t0x0A 0x31 0x09 0x49 0x66 0x20 0x79 0x6F    // '?1?If yo' \n\t0x75 0x20 0x73 0x65 0x65 0x20 0x74 0x68    // 'u see th' \n\t0x65 0x20 0x41 0x63 0x74 0x6F 0x72 0x73    // 'e Actors' \n\t0x20 0x26 0x20 0x50 0x72 0x6F 0x70 0x73    // ' & Props' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x20    // ' button ' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x74    // 'at the t' \n\t0x6F 0x70 0x20 0x6F 0x66 0x20 0x74 0x68    // 'op of th' \n\t0x65 0x20 0x73 0x63 0x72 0x65 0x65 0x6E    // 'e screen' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09 0x47    // 'it.??2?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x72    // 'ant to r' \n\t0x65 0x6D 0x6F 0x76 0x65 0x20 0x74 0x68    // 'emove th' \n\t0x65 0x20 0x33 0x44 0x20 0x6F 0x62 0x6A    // 'e 3D obj' \n\t0x65 0x63 0x74 0x2E 0x0D 0x0A 0x33 0x09    // 'ect.??3?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x43 0x75 0x74 0x2C 0x20 0x43    // 'e Cut, C' \n\t0x6F 0x70 0x79 0x2C 0x20 0x26 0x20 0x50    // 'opy, & P' \n\t0x61 0x73 0x74 0x65 0x20 0x54 0x6F 0x6F    // 'aste Too' \n\t0x6C 0x73 0x2E 0x0D 0x0A 0x34 0x09 0x43    // 'ls.??4?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x52 0x65 0x6D    // 'lick Rem' \n\t0x6F 0x76 0x65 0x20 0x33 0x44 0x20 0x4F    // 'ove 3D O' \n\t0x62 0x6A 0x65 0x63 0x74 0x2E 0x0D 0x0A    // 'bject.??' \n\t0x35 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '5?Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x20    // 'ord you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x72 0x65 0x6D 0x6F 0x76 0x65 0x2E 0x0D    // 'remove.?' \n\t0x0A 0x54 0x68 0x65 0x20 0x33 0x44 0x20    // '?The 3D ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x20 0x69    // 'object i' \n\t0x73 0x20 0x72 0x65 0x6D 0x6F 0x76 0x65    // 's remove' \n\t0x64 0x20 0x66 0x72 0x6F 0x6D 0x20 0x74    // 'd from t' \n\t0x68 0x65 0x20 0x65 0x6E 0x74 0x69 0x72    // 'he entir' \n\t0x65 0x20 0x73 0x63 0x65 0x6E 0x65 0x2E    // 'e scene.' \n\t0x0D 0x0A 0x01 0x20 0x55 0x6E 0x64 0x6F    // '??? Undo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3D= thGetRidWordBox\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"thRemoveWordBox\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"thRemoveWordBox\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp3D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thGetRidWordBox\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp3D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x04 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Undo __HELP_SYMBOL( STN \"Tip___Undo\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Cut_Copy_Paste __HELP_SYMBOL( STN \"Def___Cut_Copy_Paste\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCutWordBox __HELP_SYMBOL( STN \"mbmpCutWordBox\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x20 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // ' ???????' \n\t0x01 0xF1 0x00 0x00 0x03 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x12 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x81 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x02    // '????&???' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x02    // '????=???' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x3F 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x53 0x00 0x00 0x03    // '???S???' \n\t0x0F 0x00 0x00 0xFD 0x81 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x9A 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA9 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x04 0x01 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x9A 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xA9 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xEC 0x00 0x00 0x40    // '??????@' \n\t0x04 0x00 0x00 0x00 0x04 0x01 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x7B 0x01 0x00 0x40    // '????{??@' \n\t0x02 0x00 0x00 0x00 0x81 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x80    // '????U??' \n\t0x00 0x00 0x02 0x00 0x4B 0x01 0x00 0x80    // '????K??' \n\t0x00 0x00 0x03 0x00 0x7B 0x01 0x00 0x80    // '????{??' \n\t0x00 0x00 0x02 0x00 0x3F 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7B 0x01 0x00 0x82    // '????{??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x06 0x00 0x00 0x00 0x7B 0x01 0x00 0xC0    // '????{??' \n\t0x07 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x52 0x65 0x6D    // '???  Rem' \n\t0x6F 0x76 0x65 0x20 0x57 0x6F 0x72 0x64    // 'ove Word' \n\t0x20 0x42 0x6F 0x78 0x0D 0x0A 0x52 0x65    // ' Box??Re' \n\t0x6D 0x6F 0x76 0x65 0x20 0x61 0x20 0x77    // 'move a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x20    // 'ord box ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x74 0x68 0x65    // 'from the' \n\t0x20 0x63 0x75 0x72 0x72 0x65 0x6E 0x74    // ' current' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x2E 0x0D    // ' scene.?' \n\t0x0A 0x54 0x6F 0x20 0x72 0x65 0x6D 0x6F    // '?To remo' \n\t0x76 0x65 0x20 0x61 0x20 0x77 0x6F 0x72    // 've a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x0D 0x0A 0x31    // 'd box??1' \n\t0x09 0x49 0x66 0x20 0x79 0x6F 0x75 0x20    // '?If you ' \n\t0x73 0x65 0x65 0x20 0x74 0x68 0x65 0x20    // 'see the ' \n\t0x57 0x6F 0x72 0x64 0x73 0x20 0x62 0x75    // 'Words bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x74 0x20    // 'tton at ' \n\t0x74 0x68 0x65 0x20 0x74 0x6F 0x70 0x20    // 'the top ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x73    // 'of the s' \n\t0x63 0x72 0x65 0x65 0x6E 0x2C 0x20 0x63    // 'creen, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x69 0x74 0x2E    // 'lick it.' \n\t0x0D 0x0A 0x32 0x09 0x47 0x6F 0x20 0x74    // '??2?Go t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x70 0x6C    // 'o the pl' \n\t0x61 0x63 0x65 0x20 0x69 0x6E 0x20 0x79    // 'ace in y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x72 0x65 0x6D 0x6F    // ' to remo' \n\t0x76 0x65 0x20 0x74 0x68 0x65 0x20 0x77    // 've the w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x2E    // 'ord box.' \n\t0x0D 0x0A 0x33 0x09 0x43 0x6C 0x69 0x63    // '??3?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x43 0x75    // 'k the Cu' \n\t0x74 0x2C 0x20 0x43 0x6F 0x70 0x79 0x2C    // 't, Copy,' \n\t0x20 0x26 0x20 0x50 0x61 0x73 0x74 0x65    // ' & Paste' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E 0x0D    // ' Tools.?' \n\t0x0A 0x34 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?4?Click' \n\t0x20 0x52 0x65 0x6D 0x6F 0x76 0x65 0x20    // ' Remove ' \n\t0x57 0x6F 0x72 0x64 0x20 0x42 0x6F 0x78    // 'Word Box' \n\t0x2E 0x0D 0x0A 0x35 0x09 0x43 0x6C 0x69    // '.??5?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x77    // 'ck the w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x20    // 'ord box ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x72 0x65 0x6D 0x6F    // ' to remo' \n\t0x76 0x65 0x2E 0x0D 0x0A 0x54 0x68 0x65    // 've.??The' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x20 0x69 0x73 0x20 0x72 0x65 0x6D    // 'x is rem' \n\t0x6F 0x76 0x65 0x64 0x20 0x66 0x72 0x6F    // 'oved fro' \n\t0x6D 0x20 0x74 0x68 0x65 0x20 0x65 0x6E    // 'm the en' \n\t0x74 0x69 0x72 0x65 0x20 0x73 0x63 0x65    // 'tire sce' \n\t0x6E 0x65 0x2E 0x0D 0x0A 0x01 0x20 0x55    // 'ne.??? U' \n\t0x6E 0x64 0x6F                             // 'ndo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3E= thCopyPath\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"thCopyPath\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"thCopyPath\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp3E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_39=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thCopyPath\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp3E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_39=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x02 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\nAG(4)\n\tITEM LONG 0x2000005\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPCopyRoute __HELP_SYMBOL( STN \"mbmpCCPCopyRoute\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Undo __HELP_SYMBOL( STN \"Tip___Undo\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Cut_Copy_Paste __HELP_SYMBOL( STN \"Def___Cut_Copy_Paste\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_39=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x26 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '&???????' \n\t0x01 0xF6 0x00 0x00 0x0C 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xBA 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x02    // '????!???' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x02    // '????9???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x02    // '????>???' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x02    // '????E???' \n\t0x00 0x00 0x00 0x00 0x47 0x00 0x00 0x02    // '????G???' \n\t0x01 0x00 0x00 0x00 0x55 0x00 0x00 0x02    // '????U???' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x02    // '????_???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x61 0x00 0x00 0x03    // '???a???' \n\t0x0A 0x00 0x00 0xFD 0x6F 0x00 0x00 0x03    // '???o???' \n\t0x0F 0x00 0x00 0xFD 0xBA 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x6F 0x00 0x00 0x04    // '????o???' \n\t0x00 0x00 0x00 0x00 0x73 0x00 0x00 0x04    // '????s???' \n\t0x0D 0x00 0x00 0xFE 0x82 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xC8 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xE0 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xF7 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x73 0x00 0x00 0x40    // '????s??@' \n\t0x06 0x00 0x00 0x00 0x82 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xC8 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xE0 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xF7 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xB4 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xBA 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0x80    // '????q??' \n\t0x00 0x00 0x02 0x00 0x39 0x01 0x00 0x80    // '????9??' \n\t0x00 0x00 0x02 0x00 0x0E 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xB4 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0xB4 0x01 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_39=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x6F 0x70    // '???  Cop' \n\t0x79 0x20 0x50 0x61 0x74 0x68 0x0D 0x0A    // 'y Path??' \n\t0x43 0x6F 0x70 0x79 0x20 0x74 0x68 0x65    // 'Copy the' \n\t0x20 0x70 0x61 0x74 0x68 0x20 0x6F 0x66    // ' path of' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x61 0x6E 0x64 0x20    // 'ord and ' \n\t0x20 0x70 0x61 0x73 0x74 0x65 0x20 0x69    // ' paste i' \n\t0x74 0x20 0x6F 0x6E 0x74 0x6F 0x20 0x61    // 't onto a' \n\t0x6E 0x6F 0x74 0x68 0x65 0x72 0x20 0x33    // 'nother 3' \n\t0x44 0x20 0x6F 0x62 0x6A 0x65 0x63 0x74    // 'D object' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x63 0x6F    // '.??To co' \n\t0x70 0x79 0x20 0x61 0x20 0x70 0x61 0x74    // 'py a pat' \n\t0x68 0x0D 0x0A 0x31 0x09 0x47 0x6F 0x20    // 'h??1?Go ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x70    // 'to the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x69 0x6E 0x20    // 'lace in ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x77 0x68 0x65 0x72 0x65    // 'ie where' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x62 0x65 0x67    // 't to beg' \n\t0x69 0x6E 0x20 0x63 0x6F 0x70 0x79 0x69    // 'in copyi' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x70    // 'ng the p' \n\t0x61 0x74 0x68 0x2E 0x0D 0x0A 0x32 0x09    // 'ath.??2?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x43 0x75 0x74 0x2C 0x20 0x43    // 'e Cut, C' \n\t0x6F 0x70 0x79 0x2C 0x20 0x26 0x20 0x50    // 'opy, & P' \n\t0x61 0x73 0x74 0x65 0x20 0x54 0x6F 0x6F    // 'aste Too' \n\t0x6C 0x73 0x2E 0x0D 0x0A 0x33 0x09 0x43    // 'ls.??3?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x43 0x6F 0x70    // 'lick Cop' \n\t0x79 0x20 0x50 0x61 0x74 0x68 0x2E 0x0D    // 'y Path.?' \n\t0x0A 0x34 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?4?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x77 0x68 0x6F    // 'word who' \n\t0x73 0x65 0x20 0x70 0x61 0x74 0x68 0x20    // 'se path ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x70 0x79    // ' to copy' \n\t0x2E 0x0D 0x0A 0x35 0x09 0x43 0x6C 0x69    // '.??5?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x43    // 'ck the C' \n\t0x75 0x74 0x2C 0x20 0x43 0x6F 0x70 0x79    // 'ut, Copy' \n\t0x2C 0x20 0x26 0x20 0x50 0x61 0x73 0x74    // ', & Past' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E    // 'e Tools.' \n\t0x0D 0x0A 0x36 0x09 0x43 0x6C 0x69 0x63    // '??6?Clic' \n\t0x6B 0x20 0x50 0x61 0x73 0x74 0x65 0x2E    // 'k Paste.' \n\t0x0D 0x0A 0x37 0x09 0x43 0x6C 0x69 0x63    // '??7?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'k the ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x79 0x6F    // ' word yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x61 0x70 0x70 0x6C 0x79 0x20    // 'o apply ' \n\t0x74 0x68 0x65 0x20 0x70 0x61 0x74 0x68    // 'the path' \n\t0x20 0x74 0x6F 0x2E 0x0D 0x0A 0x01 0x20    // ' to.??? ' \n\t0x55 0x6E 0x64 0x6F                        // 'Undo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3F= thPaste\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"thPaste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"thPaste\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp3F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thPaste\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp3F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPPaste __HELP_SYMBOL( STN \"mbmpCCPPaste\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Key___Paste __HELP_SYMBOL( STN \"Key___Paste\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipKey 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipKey\" )\n\tFREE\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Cut_Copy_Paste __HELP_SYMBOL( STN \"Def___Cut_Copy_Paste\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x1D 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x08 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xF0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x38 0x00 0x00 0x02    // '????8???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x3B 0x00 0x00 0x03    // '???;???' \n\t0x0A 0x00 0x00 0xFD 0x4D 0x00 0x00 0x03    // '???M???' \n\t0x0F 0x00 0x00 0xFD 0xF0 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x4D 0x00 0x00 0x04    // '????M???' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x04    // '????Q???' \n\t0x0D 0x00 0x00 0xFE 0x60 0x00 0x00 0x04    // '???`???' \n\t0x00 0x00 0x00 0x00 0x95 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xAD 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0xAE 0x00 0x00 0x04    // '???????' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x40    // '????Q??@' \n\t0x03 0x00 0x00 0x00 0x60 0x00 0x00 0x40    // '????`??@' \n\t0x00 0x00 0x00 0x00 0x95 0x00 0x00 0x40    // '??????@' \n\t0x09 0x00 0x00 0x00 0xAD 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xAE 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xE2 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xF0 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x4F 0x00 0x00 0x80    // '????O??' \n\t0x00 0x00 0x02 0x00 0x3B 0x00 0x00 0x82    // '????;??' \n\t0x05 0x00 0x00 0x00 0xE2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0xE2 0x00 0x00 0xC0    // '??????' \n\t0x06 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x50 0x61 0x73    // '???  Pas' \n\t0x74 0x65 0x0D 0x0A 0x50 0x61 0x73 0x74    // 'te??Past' \n\t0x65 0x20 0x77 0x68 0x61 0x74 0x65 0x76    // 'e whatev' \n\t0x65 0x72 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'er you m' \n\t0x6F 0x73 0x74 0x20 0x72 0x65 0x63 0x65    // 'ost rece' \n\t0x6E 0x74 0x6C 0x79 0x20 0x63 0x75 0x74    // 'ntly cut' \n\t0x20 0x6F 0x72 0x20 0x63 0x6F 0x70 0x69    // ' or copi' \n\t0x65 0x64 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'ed.??To ' \n\t0x70 0x61 0x73 0x74 0x65 0x20 0x73 0x6F    // 'paste so' \n\t0x6D 0x65 0x74 0x68 0x69 0x6E 0x67 0x0D    // 'mething?' \n\t0x0A 0x31 0x09 0x47 0x6F 0x20 0x74 0x6F    // '?1?Go to' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x63 0x65 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ce in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x70 0x61 0x73 0x74 0x65    // 'to paste' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69    // '.??2?Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x43    // 'ck the C' \n\t0x75 0x74 0x2C 0x20 0x43 0x6F 0x70 0x79    // 'ut, Copy' \n\t0x2C 0x20 0x26 0x20 0x50 0x61 0x73 0x74    // ', & Past' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E    // 'e Tools.' \n\t0x0D 0x0A 0x33 0x09 0x43 0x6C 0x69 0x63    // '??3?Clic' \n\t0x6B 0x20 0x50 0x61 0x73 0x74 0x65 0x2E    // 'k Paste.' \n\t0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69 0x63    // '??4?Clic' \n\t0x6B 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'k where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x70 0x61 0x73 0x74    // ' to past' \n\t0x65 0x2E 0x0D 0x0A 0x01 0x20 0x53 0x68    // 'e.??? Sh' \n\t0x6F 0x72 0x74 0x63 0x75 0x74 0x20 0x6B    // 'ortcut k' \n\t0x65 0x79                                  // 'ey' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_40= thCopy\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_40, __HELP_NAME(\"thCopy\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_40, __HELP_NAME(\"thCopy\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp40\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_68=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_40, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thCopy\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp40\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_68=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x55 0x01 0x00 0x00    // '????U???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_68, 0x0)\nAG(4)\n\tITEM LONG 0x2000005\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPCopy __HELP_SYMBOL( STN \"mbmpCCPCopy\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG Tip___Copy_until_end_of_scene __HELP_SYMBOL( STN \"Tip___Copy_until_end_of_scene\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Def___drag __HELP_SYMBOL( STN \"Def___drag\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Cut_Copy_Paste __HELP_SYMBOL( STN \"Def___Cut_Copy_Paste\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_68=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_68, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x2A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '*???????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x07 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xED 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x02    // '????#???' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x02    // '????$???' \n\t0x00 0x00 0x00 0x00 0x32 0x00 0x00 0x02    // '????2???' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x02    // '????E???' \n\t0x00 0x00 0x00 0x00 0x47 0x00 0x00 0x02    // '????G???' \n\t0x01 0x00 0x00 0x00 0x4C 0x00 0x00 0x02    // '????L???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x4E 0x00 0x00 0x03    // '???N???' \n\t0x0A 0x00 0x00 0xFD 0x55 0x00 0x00 0x03    // '???U???' \n\t0x0F 0x00 0x00 0xFD 0xED 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x04    // '????Y???' \n\t0x0D 0x00 0x00 0xFE 0x68 0x00 0x00 0x04    // '???h???' \n\t0x00 0x00 0x00 0x00 0x9C 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xB4 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x9A 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x9E 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x40    // '????Y??@' \n\t0x06 0x00 0x00 0x00 0x68 0x00 0x00 0x40    // '????h??@' \n\t0x00 0x00 0x00 0x00 0x9C 0x00 0x00 0x40    // '??????@' \n\t0x09 0x00 0x00 0x00 0xB4 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x9A 0x01 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0x9E 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xCB 0x01 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xED 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0x80    // '????W??' \n\t0x00 0x00 0x02 0x00 0xFD 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xCB 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x4E 0x00 0x00 0x82    // '????N??' \n\t0x05 0x00 0x00 0x00 0xC6 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x7B 0x01 0x00 0x82    // '????{??' \n\t0x05 0x00 0x00 0x00 0xCB 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0xCB 0x01 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_68=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_68, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x6F 0x70    // '???  Cop' \n\t0x79 0x0D 0x0A 0x43 0x6F 0x70 0x79 0x20    // 'y??Copy ' \n\t0x73 0x6F 0x6D 0x65 0x74 0x68 0x69 0x6E    // 'somethin' \n\t0x67 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'g you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x64 0x75    // 'nt to du' \n\t0x70 0x6C 0x69 0x63 0x61 0x74 0x65 0x20    // 'plicate ' \n\t0x61 0x6E 0x64 0x20 0x70 0x61 0x73 0x74    // 'and past' \n\t0x65 0x20 0x69 0x6E 0x20 0x61 0x6E 0x6F    // 'e in ano' \n\t0x74 0x68 0x65 0x72 0x20 0x6C 0x6F 0x63    // 'ther loc' \n\t0x61 0x74 0x69 0x6F 0x6E 0x2E 0x0D 0x0A    // 'ation.??' \n\t0x54 0x6F 0x20 0x63 0x6F 0x70 0x79 0x0D    // 'To copy?' \n\t0x0A 0x31 0x09 0x47 0x6F 0x20 0x74 0x6F    // '?1?Go to' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x63 0x65 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ce in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x70 0x79 0x2E    // 'to copy.' \n\t0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69 0x63    // '??2?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x43 0x75    // 'k the Cu' \n\t0x74 0x2C 0x20 0x43 0x6F 0x70 0x79 0x2C    // 't, Copy,' \n\t0x20 0x26 0x20 0x50 0x61 0x73 0x74 0x65    // ' & Paste' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x2E 0x0D    // ' Tools.?' \n\t0x0A 0x33 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?3?Click' \n\t0x20 0x43 0x6F 0x70 0x79 0x2E 0x0D 0x0A    // ' Copy.??' \n\t0x34 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '4?Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x20    // 'ord you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x63 0x6F 0x70 0x79 0x2E 0x0D 0x0A 0x2D    // 'copy.??-' \n\t0x2D 0x6F 0x72 0x2D 0x2D 0x0D 0x0A 0x54    // '-or--??T' \n\t0x6F 0x20 0x63 0x6F 0x70 0x79 0x20 0x61    // 'o copy a' \n\t0x6E 0x20 0x65 0x6E 0x74 0x69 0x72 0x65    // 'n entire' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x2C 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'x, move ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x63 0x75 0x72 0x73 0x6F 0x72    // 'e cursor' \n\t0x20 0x6F 0x76 0x65 0x72 0x20 0x61 0x20    // ' over a ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \n\t0x20 0x65 0x64 0x67 0x65 0x20 0x75 0x6E    // ' edge un' \n\t0x74 0x69 0x6C 0x20 0x79 0x6F 0x75 0x20    // 'til you ' \n\t0x73 0x65 0x65 0x20 0x74 0x68 0x65 0x20    // 'see the ' \n\t0x63 0x61 0x6D 0x65 0x72 0x61 0x2C 0x20    // 'camera, ' \n\t0x74 0x68 0x65 0x6E 0x20 0x63 0x6C 0x69    // 'then cli' \n\t0x63 0x6B 0x2E 0x0D 0x0A 0x2D 0x2D 0x6F    // 'ck.??--o' \n\t0x72 0x2D 0x2D 0x0D 0x0A 0x54 0x6F 0x20    // 'r--??To ' \n\t0x63 0x6F 0x70 0x79 0x20 0x6C 0x65 0x74    // 'copy let' \n\t0x74 0x65 0x72 0x73 0x20 0x69 0x6E 0x20    // 'ters in ' \n\t0x61 0x20 0x77 0x6F 0x72 0x64 0x20 0x62    // 'a word b' \n\t0x6F 0x78 0x2C 0x20 0x64 0x72 0x61 0x67    // 'ox, drag' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x6F 0x76 0x65 0x72 0x20    // 'se over ' \n\t0x74 0x68 0x65 0x20 0x77 0x6F 0x72 0x64    // 'the word' \n\t0x73 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 's you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'nt to co' \n\t0x70 0x79 0x2E 0x0D 0x0A 0x01 0x20 0x43    // 'py.??? C' \n\t0x6F 0x70 0x79 0x69 0x6E 0x67 0x20 0x75    // 'opying u' \n\t0x6E 0x74 0x69 0x6C 0x20 0x74 0x68 0x65    // 'ntil the' \n\t0x20 0x65 0x6E 0x64 0x20 0x6F 0x66 0x20    // ' end of ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65         // 'a scene' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_41= thCut\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_41, __HELP_NAME(\"thCut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_41, __HELP_NAME(\"thCut\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp41\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_41, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thCut\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp41\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_41, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4A 0x01 0x00 0x00    // '????J???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_58=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5F, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 4 LONG Tip___Cut_until_end_of_scene __HELP_SYMBOL( STN \"Tip___Cut_until_end_of_scene\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCCPCut __HELP_SYMBOL( STN \"mbmpCCPCut\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Cut_Copy_Paste __HELP_SYMBOL( STN \"Def___Cut_Copy_Paste\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Def___drag __HELP_SYMBOL( STN \"Def___drag\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x23 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '#???????' \n\t0x01 0xF6 0x00 0x00 0x06 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDD 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x4B 0x00 0x00 0x03    // '???K???' \n\t0x0A 0x00 0x00 0xFD 0x51 0x00 0x00 0x03    // '???Q???' \n\t0x0F 0x00 0x00 0xFD 0xDD 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x04    // '????U???' \n\t0x0D 0x00 0x00 0xFE 0x64 0x00 0x00 0x04    // '???d???' \n\t0x00 0x00 0x00 0x00 0x97 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xAF 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x8B 0x01 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0x8F 0x01 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x40    // '????U??@' \n\t0x08 0x00 0x00 0x00 0x64 0x00 0x00 0x40    // '????d??@' \n\t0x00 0x00 0x00 0x00 0x97 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xAF 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x8B 0x01 0x00 0x40    // '??????@' \n\t0x09 0x00 0x00 0x00 0x8F 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xBB 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0xDD 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x80    // '????S??' \n\t0x00 0x00 0x02 0x00 0xF6 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xBB 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x4B 0x00 0x00 0x82    // '????K??' \n\t0x05 0x00 0x00 0x00 0xC0 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x6D 0x01 0x00 0x82    // '????m??' \n\t0x05 0x00 0x00 0x00 0xBB 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0xBB 0x01 0x00 0xC0    // '??????' \n\t0x06 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5F, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x75 0x74    // '???  Cut' \n\t0x0D 0x0A 0x43 0x75 0x74 0x20 0x73 0x6F    // '??Cut so' \n\t0x6D 0x65 0x74 0x68 0x69 0x6E 0x67 0x20    // 'mething ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x67 0x65 0x74 0x20    // ' to get ' \n\t0x72 0x69 0x64 0x20 0x6F 0x66 0x20 0x6F    // 'rid of o' \n\t0x72 0x20 0x6D 0x6F 0x76 0x65 0x20 0x74    // 'r move t' \n\t0x6F 0x20 0x61 0x6E 0x6F 0x74 0x68 0x65    // 'o anothe' \n\t0x72 0x20 0x6C 0x6F 0x63 0x61 0x74 0x69    // 'r locati' \n\t0x6F 0x6E 0x2E 0x0D 0x0A 0x54 0x6F 0x20    // 'on.??To ' \n\t0x63 0x75 0x74 0x0D 0x0A 0x31 0x09 0x47    // 'cut??1?G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x20 0x69    // ' place i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x68 0x65    // 'ovie whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ant to c' \n\t0x75 0x74 0x2E 0x0D 0x0A 0x32 0x09 0x43    // 'ut.??2?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x74 0x68 0x65    // 'lick the' \n\t0x20 0x43 0x75 0x74 0x2C 0x20 0x43 0x6F    // ' Cut, Co' \n\t0x70 0x79 0x2C 0x20 0x26 0x20 0x50 0x61    // 'py, & Pa' \n\t0x73 0x74 0x65 0x20 0x54 0x6F 0x6F 0x6C    // 'ste Tool' \n\t0x73 0x2E 0x0D 0x0A 0x33 0x09 0x43 0x6C    // 's.??3?Cl' \n\t0x69 0x63 0x6B 0x20 0x43 0x75 0x74 0x2E    // 'ick Cut.' \n\t0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69 0x63    // '??4?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'k the ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x79 0x6F    // ' word yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x63 0x75 0x74 0x2E 0x0D 0x0A    // 'o cut.??' \n\t0x54 0x6F 0x20 0x63 0x75 0x74 0x20 0x61    // 'To cut a' \n\t0x6E 0x20 0x65 0x6E 0x74 0x69 0x72 0x65    // 'n entire' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x2C 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'x, move ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x63 0x75 0x72 0x73 0x6F 0x72    // 'e cursor' \n\t0x20 0x6F 0x76 0x65 0x72 0x20 0x61 0x20    // ' over a ' \n\t0x77 0x6F 0x72 0x64 0x20 0x62 0x6F 0x78    // 'word box' \n\t0x20 0x65 0x64 0x67 0x65 0x20 0x75 0x6E    // ' edge un' \n\t0x74 0x69 0x6C 0x20 0x79 0x6F 0x75 0x20    // 'til you ' \n\t0x73 0x65 0x65 0x20 0x74 0x68 0x65 0x20    // 'see the ' \n\t0x73 0x63 0x69 0x73 0x73 0x6F 0x72 0x73    // 'scissors' \n\t0x2C 0x20 0x74 0x68 0x65 0x6E 0x20 0x63    // ', then c' \n\t0x6C 0x69 0x63 0x6B 0x2E 0x0D 0x0A 0x2D    // 'lick.??-' \n\t0x2D 0x6F 0x72 0x2D 0x2D 0x0D 0x0A 0x54    // '-or--??T' \n\t0x6F 0x20 0x63 0x75 0x74 0x20 0x6C 0x65    // 'o cut le' \n\t0x74 0x74 0x65 0x72 0x73 0x20 0x69 0x6E    // 'tters in' \n\t0x20 0x61 0x20 0x77 0x6F 0x72 0x64 0x20    // ' a word ' \n\t0x62 0x6F 0x78 0x2C 0x20 0x64 0x72 0x61    // 'box, dra' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'g the mo' \n\t0x75 0x73 0x65 0x20 0x6F 0x76 0x65 0x72    // 'use over' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x6F 0x72    // ' the wor' \n\t0x64 0x73 0x20 0x79 0x6F 0x75 0x20 0x77    // 'ds you w' \n\t0x61 0x6E 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ant to c' \n\t0x75 0x74 0x2E 0x0D 0x0A 0x01 0x20 0x43    // 'ut.??? C' \n\t0x75 0x74 0x74 0x69 0x6E 0x67 0x20 0x75    // 'utting u' \n\t0x6E 0x74 0x69 0x6C 0x20 0x74 0x68 0x65    // 'ntil the' \n\t0x20 0x65 0x6E 0x64 0x20 0x6F 0x66 0x20    // ' end of ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65         // 'a scene' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_42= thPortfolio\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_42, __HELP_NAME(\"thPortfolio\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_42, __HELP_NAME(\"thPortfolio\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp42\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_42, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thPortfolio\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp42\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_42, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_39=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPortfolio __HELP_SYMBOL( STN \"mbmpPortfolio\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x18 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x75 0x01 0x00 0x01    // '????u???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x41 0x00 0x00 0x02    // '????A???' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x02    // '????F???' \n\t0x01 0x00 0x00 0x00 0x57 0x00 0x00 0x02    // '????W???' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x02    // '????Y???' \n\t0x01 0x00 0x00 0x00 0xA3 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xC8 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xC9 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xB0 0x00 0x00 0x03    // '??????' \n\t0x0A 0x00 0x00 0xFD 0xC5 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xD2 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xD4 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x75 0x01 0x00 0x03    // '???u???' \n\t0x00 0x00 0x00 0x00 0xC7 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0xD4 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x10 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x03 0x00 0x0E 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x10 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x50 0x6F 0x72    // '???  Por' \n\t0x74 0x66 0x6F 0x6C 0x69 0x6F 0x0D 0x0A    // 'tfolio??' \n\t0x54 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'The plac' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x79 0x6F 0x75 0x20 0x6B 0x65 0x65 0x70    // 'you keep' \n\t0x20 0x61 0x6C 0x6C 0x20 0x6F 0x66 0x20    // ' all of ' \n\t0x79 0x6F 0x75 0x72 0x20 0x77 0x6F 0x72    // 'your wor' \n\t0x6B 0x2E 0x20 0x59 0x6F 0x75 0x20 0x63    // 'k. You c' \n\t0x61 0x6E 0x20 0x61 0x6C 0x73 0x6F 0x20    // 'an also ' \n\t0x73 0x74 0x61 0x72 0x74 0x20 0x61 0x20    // 'start a ' \n\t0x6E 0x65 0x77 0x20 0x6D 0x6F 0x76 0x69    // 'new movi' \n\t0x65 0x2C 0x20 0x6F 0x70 0x65 0x6E 0x20    // 'e, open ' \n\t0x61 0x6E 0x20 0x65 0x78 0x69 0x73 0x74    // 'an exist' \n\t0x69 0x6E 0x67 0x20 0x6D 0x6F 0x76 0x69    // 'ing movi' \n\t0x65 0x2C 0x20 0x73 0x61 0x76 0x65 0x20    // 'e, save ' \n\t0x79 0x6F 0x75 0x72 0x20 0x77 0x6F 0x72    // 'your wor' \n\t0x6B 0x2C 0x20 0x6F 0x72 0x20 0x73 0x61    // 'k, or sa' \n\t0x76 0x65 0x20 0x79 0x6F 0x75 0x72 0x20    // 've your ' \n\t0x77 0x6F 0x72 0x6B 0x20 0x75 0x6E 0x64    // 'work und' \n\t0x65 0x72 0x20 0x61 0x20 0x6E 0x65 0x77    // 'er a new' \n\t0x20 0x6E 0x61 0x6D 0x65 0x20 0x28 0x53    // ' name (S' \n\t0x61 0x76 0x65 0x20 0x41 0x73 0x29 0x2E    // 'ave As).' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x6F 0x70 0x65    // '??To ope' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x70 0x6F    // 'n the po' \n\t0x72 0x74 0x66 0x6F 0x6C 0x69 0x6F 0x0D    // 'rtfolio?' \n\t0x0A 0x31 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?1?Click' \n\t0x20 0x69 0x74 0x2E 0x0D 0x0A 0x32 0x09    // ' it.??2?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x6F 0x70 0x74 0x69 0x6F 0x6E    // 'e option' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x3A 0x20 0x20 0x4E 0x65 0x77 0x2C    // 't:  New,' \n\t0x20 0x4F 0x70 0x65 0x6E 0x2C 0x20 0x53    // ' Open, S' \n\t0x61 0x76 0x65 0x2C 0x20 0x6F 0x72 0x20    // 'ave, or ' \n\t0x53 0x61 0x76 0x65 0x20 0x41 0x73 0x2E    // 'Save As.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x66 0x69 0x6E    // '??To fin' \n\t0x64 0x20 0x6F 0x75 0x74 0x20 0x6D 0x6F    // 'd out mo' \n\t0x72 0x65 0x2C 0x20 0x6D 0x6F 0x76 0x65    // 're, move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x63 0x75 0x72 0x73 0x6F    // 'se curso' \n\t0x72 0x20 0x6F 0x76 0x65 0x72 0x20 0x65    // 'r over e' \n\t0x61 0x63 0x68 0x20 0x74 0x6F 0x6F 0x6C    // 'ach tool' \n\t0x2E 0x20 0x57 0x61 0x69 0x74 0x2E 0x2E    // '. Wait..' \n\t0x2E 0x79 0x6F 0x75 0x27 0x6C 0x6C 0x20    // '.you'll ' \n\t0x67 0x65 0x74 0x20 0x61 0x20 0x64 0x65    // 'get a de' \n\t0x73 0x63 0x72 0x69 0x70 0x74 0x69 0x6F    // 'scriptio' \n\t0x6E 0x20 0x6F 0x66 0x20 0x65 0x61 0x63    // 'n of eac' \n\t0x68 0x20 0x74 0x6F 0x6F 0x6C 0x2E         // 'h tool.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_43= thExit\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_43, __HELP_NAME(\"thExit\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_43, __HELP_NAME(\"thExit\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp43\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_43, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thExit\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp43\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_43, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpExit __HELP_SYMBOL( STN \"mbmpExit\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipKey 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipKey\" )\n\tFREE\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Key___Exit __HELP_SYMBOL( STN \"Key___Exit\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x83 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00 0x12 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x75 0x00 0x00 0x03    // '????u???' \n\t0x0F 0x00 0x00 0xFD 0x83 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x75 0x00 0x00 0x40    // '????u??@' \n\t0x04 0x00 0x00 0x00 0x83 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x75 0x00 0x00 0x82    // '????u??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x75 0x00 0x00 0xC0    // '????u??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x0D 0x0A 0x51 0x75 0x69    // '?????Qui' \n\t0x74 0x20 0x77 0x6F 0x72 0x6B 0x69 0x6E    // 't workin' \n\t0x67 0x21 0x0D 0x0A 0x54 0x6F 0x20 0x71    // 'g!??To q' \n\t0x75 0x69 0x74 0x0D 0x0A 0x31 0x09 0x43    // 'uit??1?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x45 0x78 0x69    // 'lick Exi' \n\t0x74 0x2E 0x0D 0x0A 0x32 0x09 0x59 0x6F    // 't.??2?Yo' \n\t0x75 0x20 0x63 0x61 0x6E 0x20 0x65 0x69    // 'u can ei' \n\t0x74 0x68 0x65 0x72 0x20 0x72 0x65 0x74    // 'ther ret' \n\t0x75 0x72 0x6E 0x20 0x74 0x6F 0x20 0x74    // 'urn to t' \n\t0x68 0x65 0x20 0x72 0x6F 0x6F 0x6D 0x20    // 'he room ' \n\t0x79 0x6F 0x75 0x20 0x63 0x61 0x6D 0x65    // 'you came' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x6F 0x72    // ' from or' \n\t0x20 0x71 0x75 0x69 0x74 0x20 0x33 0x44    // ' quit 3D' \n\t0x20 0x4D 0x6F 0x76 0x69 0x65 0x20 0x4D    // ' Movie M' \n\t0x61 0x6B 0x65 0x72 0x2E 0x0D 0x0A 0x01    // 'aker.???' \n\t0x20 0x53 0x68 0x6F 0x72 0x74 0x63 0x75    // ' Shortcu' \n\t0x74 0x20 0x6B 0x65 0x79                   // 't key' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_44= Tip___Undo\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"Tip:  Undo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"Tip:  Undo\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_34=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Undo\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_34=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_30=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpUndo __HELP_SYMBOL( STN \"mbmpUndo\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRedo __HELP_SYMBOL( STN \"mbmpRedo\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_34=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x00 0x00 0x00 0x00 0x36 0x00 0x00 0x01    // '????6???' \n\t0x01 0xF1 0x00 0x00 0x43 0x00 0x00 0x01    // '???C???' \n\t0x01 0x00 0x00 0x00 0x5E 0x00 0x00 0x01    // '????^???' \n\t0x01 0xF6 0x00 0x00 0x6B 0x00 0x00 0x01    // '???k???' \n\t0x01 0x00 0x00 0x00 0x6C 0x00 0x00 0x01    // '????l???' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x34 0x00 0x00 0x03    // '???4???' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x03    // '????F???' \n\t0x0A 0x00 0x00 0xFD 0x5C 0x00 0x00 0x03    // '???\\???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x5E 0x00 0x00 0x82    // '????^??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0x43 0x00 0x00 0xC0    // '????C??' \n\t0x01 0x00 0x00 0x00 0x6B 0x00 0x00 0xC0    // '????k??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_34=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x55 0x6E 0x64    // '???  Und' \n\t0x6F 0x69 0x6E 0x67 0x20 0x26 0x20 0x72    // 'oing & r' \n\t0x65 0x64 0x6F 0x69 0x6E 0x67 0x0D 0x0A    // 'edoing??' \n\t0x54 0x6F 0x20 0x75 0x6E 0x64 0x6F 0x20    // 'To undo ' \n\t0x74 0x68 0x65 0x20 0x6C 0x61 0x73 0x74    // 'the last' \n\t0x20 0x74 0x68 0x69 0x6E 0x67 0x20 0x79    // ' thing y' \n\t0x6F 0x75 0x20 0x64 0x69 0x64 0x0D 0x0A    // 'ou did??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x55 0x6E 0x64 0x6F 0x2D 0x01 0x0D 0x0A    // 'Undo-???' \n\t0x54 0x6F 0x20 0x72 0x65 0x64 0x6F 0x20    // 'To redo ' \n\t0x77 0x68 0x61 0x74 0x20 0x79 0x6F 0x75    // 'what you' \n\t0x20 0x75 0x6E 0x64 0x69 0x64 0x0D 0x0A    // ' undid??' \n\t0x95 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '?Click ' \n\t0x52 0x65 0x64 0x6F 0x2D 0x01              // 'Redo-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_45= Def___frame\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"Def:  frame\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"Def:  frame\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_50=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___frame\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_50=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4D 0x01 0x00 0x00    // '????M???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_19=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_50=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x14 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA2 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0xA4 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xCE 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x73 0x00 0x00 0x02    // '????s???' \n\t0x01 0x00 0x00 0x00 0x79 0x00 0x00 0x02    // '????y???' \n\t0x00 0x00 0x00 0x00 0xAA 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xCE 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x0A 0x00 0x00 0xFD 0x4E 0x00 0x00 0x03    // '???N???' \n\t0x0F 0x00 0x00 0xFD 0x67 0x00 0x00 0x03    // '???g???' \n\t0x0A 0x00 0x00 0xFD 0x6A 0x00 0x00 0x03    // '???j???' \n\t0x0F 0x00 0x00 0xFD 0x73 0x00 0x00 0x03    // '???s???' \n\t0x00 0x00 0x00 0x00 0x69 0x00 0x00 0x80    // '????i??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6C 0x00 0x00 0x82    // '????l??' \n\t0x00 0x00 0x00 0x00 0x69 0x00 0x00 0xC0    // '????i??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_50=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x72 0x61 0x6D 0x65 0x0D    // '??Frame?' \n\t0x0A 0x4F 0x6E 0x65 0x20 0x73 0x63 0x72    // '?One scr' \n\t0x65 0x65 0x6E 0x20 0x6F 0x66 0x20 0x79    // 'een of y' \n\t0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'our movi' \n\t0x65 0x2E 0x20 0x0D 0x0A 0x54 0x6F 0x20    // 'e. ??To ' \n\t0x6D 0x6F 0x76 0x65 0x20 0x66 0x72 0x6F    // 'move fro' \n\t0x6D 0x20 0x66 0x72 0x61 0x6D 0x65 0x20    // 'm frame ' \n\t0x74 0x6F 0x20 0x66 0x72 0x61 0x6D 0x65    // 'to frame' \n\t0x20 0x77 0x69 0x74 0x68 0x69 0x6E 0x20    // ' within ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65 0x2E    // 'a scene.' \n\t0x0D 0x0A 0x95 0x09 0x55 0x73 0x65 0x20    // '???Use ' \n\t0x74 0x68 0x65 0x20 0x46 0x72 0x61 0x6D    // 'the Fram' \n\t0x65 0x20 0x53 0x6C 0x69 0x64 0x65 0x72    // 'e Slider' \n\t0x2E 0x0D 0x0A 0x01 0x0D 0x0A 0x4E 0x6F    // '.?????No' \n\t0x74 0x65 0x3A 0x20 0x20 0x43 0x6C 0x69    // 'te:  Cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x46    // 'ck the F' \n\t0x69 0x72 0x73 0x74 0x2C 0x20 0x50 0x72    // 'irst, Pr' \n\t0x65 0x76 0x69 0x6F 0x75 0x73 0x2C 0x20    // 'evious, ' \n\t0x4E 0x65 0x78 0x74 0x2C 0x20 0x6F 0x72    // 'Next, or' \n\t0x20 0x4C 0x61 0x73 0x74 0x20 0x41 0x72    // ' Last Ar' \n\t0x72 0x6F 0x77 0x20 0x6F 0x72 0x20 0x64    // 'row or d' \n\t0x72 0x61 0x67 0x20 0x74 0x68 0x65 0x20    // 'rag the ' \n\t0x73 0x6C 0x69 0x64 0x65 0x72 0x20 0x69    // 'slider i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x6D 0x69    // 'n the mi' \n\t0x64 0x64 0x6C 0x65 0x20 0x6F 0x66 0x20    // 'ddle of ' \n\t0x74 0x68 0x65 0x20 0x62 0x61 0x72 0x2E    // 'the bar.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_46= Tip___Change_Camera_Angle\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"Tip:  Change Camera Angle\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"Tip:  Change Camera Angle\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Change_Camera_Angle\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x49 0x01 0x00 0x00    // '????I???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_26=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSettingsCameras __HELP_SYMBOL( STN \"mbmpSettingsCameras\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x71 0x00 0x00 0x01    // '????q???' \n\t0x01 0xF6 0x00 0x00 0x87 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xAC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x55 0x00 0x00 0x03    // '???U???' \n\t0x0A 0x00 0x00 0xFD 0x71 0x00 0x00 0x03    // '???q???' \n\t0x0F 0x00 0x00 0xFD 0xAC 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0x80    // '????q??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x8A 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x87 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x68 0x61    // '???  Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x63 0x61 0x6D 0x65 0x72 0x61    // 'e camera' \n\t0x20 0x61 0x6E 0x67 0x6C 0x65 0x0D 0x0A    // ' angle??' \n\t0x54 0x68 0x65 0x72 0x65 0x20 0x61 0x72    // 'There ar' \n\t0x65 0x20 0x6D 0x61 0x6E 0x79 0x20 0x70    // 'e many p' \n\t0x6F 0x73 0x73 0x69 0x62 0x6C 0x65 0x20    // 'ossible ' \n\t0x63 0x61 0x6D 0x65 0x72 0x61 0x20 0x61    // 'camera a' \n\t0x6E 0x67 0x6C 0x65 0x73 0x20 0x66 0x6F    // 'ngles fo' \n\t0x72 0x20 0x65 0x61 0x63 0x68 0x20 0x73    // 'r each s' \n\t0x63 0x65 0x6E 0x65 0x2E 0x0D 0x0A 0x54    // 'cene.??T' \n\t0x6F 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'o change' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x61 0x6D    // ' the cam' \n\t0x65 0x72 0x61 0x20 0x61 0x6E 0x67 0x6C    // 'era angl' \n\t0x65 0x0D 0x0A 0x31 0x09 0x43 0x6C 0x69    // 'e??1?Cli' \n\t0x63 0x6B 0x20 0x43 0x61 0x6D 0x65 0x72    // 'ck Camer' \n\t0x61 0x20 0x41 0x6E 0x67 0x6C 0x65 0x73    // 'a Angles' \n\t0x2D 0x01 0x0D 0x0A 0x32 0x09 0x43 0x6C    // '-???2?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x63 0x61 0x6D 0x65 0x72 0x61 0x20 0x61    // 'camera a' \n\t0x6E 0x67 0x6C 0x65 0x20 0x79 0x6F 0x75    // 'ngle you' \n\t0x20 0x77 0x61 0x6E 0x74 0x2E              // ' want.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_47= thHelp\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_47, __HELP_NAME(\"thHelp\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_47, __HELP_NAME(\"thHelp\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp47\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_32=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_47, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thHelp\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp47\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_47, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_66=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6E, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpBook __HELP_SYMBOL( STN \"mbmpBook\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipKey 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipKey\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Key___Help __HELP_SYMBOL( STN \"Key___Help\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x16 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x0E 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x7F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x47 0x00 0x00 0x02    // '????G???' \n\t0x00 0x00 0x00 0x00 0x65 0x00 0x00 0x02    // '????e???' \n\t0x01 0x00 0x00 0x00 0x66 0x00 0x00 0x02    // '????f???' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x02 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x4A 0x00 0x00 0x03    // '???J???' \n\t0x0A 0x00 0x00 0xFD 0x62 0x00 0x00 0x03    // '???b???' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0x03    // '????q???' \n\t0x0F 0x00 0x00 0xFD 0x7F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x71 0x00 0x00 0x40    // '????q??@' \n\t0x04 0x00 0x00 0x00 0x7F 0x00 0x00 0x40    // '???????@' \n\t0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x80    // '????d??' \n\t0x00 0x00 0x02 0x00 0x10 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x71 0x00 0x00 0x82    // '????q??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x71 0x00 0x00 0xC0    // '????q??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6E, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x48 0x65 0x6C 0x70    // '??? Help' \n\t0x20 0x4D 0x61 0x63 0x68 0x69 0x6E 0x65    // ' Machine' \n\t0x0D 0x0A 0x46 0x69 0x6E 0x64 0x20 0x61    // '??Find a' \n\t0x6C 0x6C 0x20 0x74 0x68 0x65 0x20 0x61    // 'll the a' \n\t0x6E 0x73 0x77 0x65 0x72 0x73 0x20 0x74    // 'nswers t' \n\t0x6F 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'o your m' \n\t0x6F 0x76 0x69 0x65 0x2D 0x6D 0x61 0x6B    // 'ovie-mak' \n\t0x69 0x6E 0x67 0x20 0x71 0x75 0x65 0x73    // 'ing ques' \n\t0x74 0x69 0x6F 0x6E 0x73 0x21 0x20 0x20    // 'tions!  ' \n\t0x20 0x20 0x0D 0x0A 0x54 0x6F 0x20 0x6F    // '  ??To o' \n\t0x70 0x65 0x6E 0x20 0x74 0x68 0x65 0x20    // 'pen the ' \n\t0x48 0x65 0x6C 0x70 0x20 0x4D 0x61 0x63    // 'Help Mac' \n\t0x68 0x69 0x6E 0x65 0x0D 0x0A 0x95 0x09    // 'hine???' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x69 0x74    // 'Click it' \n\t0x2E 0x0D 0x0A 0x01 0x20 0x53 0x68 0x6F    // '.??? Sho' \n\t0x72 0x74 0x63 0x75 0x74 0x20 0x6B 0x65    // 'rtcut ke' \n\t0x79                                       // 'y' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_48= thMap\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_48, __HELP_NAME(\"thMap\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_48, __HELP_NAME(\"thMap\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp48\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_48, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thMap\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp48\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_48, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x99 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_33=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpMap __HELP_SYMBOL( STN \"mbmpMap\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipKey 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipKey\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Key___Map __HELP_SYMBOL( STN \"Key___Map\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x16 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x06 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x8B 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x3A 0x00 0x00 0x02    // '????:???' \n\t0x00 0x00 0x00 0x00 0x4E 0x00 0x00 0x02    // '????N???' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x02    // '????O???' \n\t0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x03 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x0A 0x00 0x00 0xFD 0x4B 0x00 0x00 0x03    // '???K???' \n\t0x00 0x00 0x00 0x00 0x7D 0x00 0x00 0x03    // '????}???' \n\t0x0F 0x00 0x00 0xFD 0x8B 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x7D 0x00 0x00 0x40    // '????}??@' \n\t0x05 0x00 0x00 0x00 0x8B 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x4D 0x00 0x00 0x80    // '????M??' \n\t0x00 0x00 0x02 0x00 0x08 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7D 0x00 0x00 0x82    // '????}??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x7D 0x00 0x00 0xC0    // '????}??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4D 0x61 0x70    // '???  Map' \n\t0x0D 0x0A 0x51 0x75 0x69 0x63 0x6B 0x6C    // '??Quickl' \n\t0x79 0x20 0x7A 0x69 0x70 0x20 0x74 0x6F    // 'y zip to' \n\t0x20 0x74 0x68 0x65 0x20 0x72 0x6F 0x6F    // ' the roo' \n\t0x6D 0x20 0x6F 0x72 0x20 0x70 0x72 0x6F    // 'm or pro' \n\t0x6A 0x65 0x63 0x74 0x20 0x6F 0x66 0x20    // 'ject of ' \n\t0x79 0x6F 0x75 0x72 0x20 0x63 0x68 0x6F    // 'your cho' \n\t0x69 0x63 0x65 0x2E 0x0D 0x0A 0x54 0x6F    // 'ice.??To' \n\t0x20 0x6F 0x70 0x65 0x6E 0x20 0x74 0x68    // ' open th' \n\t0x65 0x20 0x6D 0x61 0x70 0x0D 0x0A 0x31    // 'e map??1' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x69    // '?Click i' \n\t0x74 0x2E 0x0D 0x0A 0x32 0x09 0x43 0x6C    // 't.??2?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x70 0x6C 0x61 0x63 0x65 0x20 0x79 0x6F    // 'place yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x67 0x6F 0x2E 0x0D 0x0A 0x01    // 'o go.???' \n\t0x20 0x53 0x68 0x6F 0x72 0x74 0x63 0x75    // ' Shortcu' \n\t0x74 0x20 0x6B 0x65 0x79                   // 't key' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_49= Tip___Moving_Scene_to_Scene\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"Tip:  Moving Scene to Scene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"Tip:  Moving Scene to Scene\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Moving_Scene_to_Scene\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4D 0x01 0x00 0x00    // '????M???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x17 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x01 0x00 0x00 0x00 0x8E 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0x90 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xBA 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x02    // '???? ???' \n\t0x02 0x00 0x00 0x00 0x28 0x00 0x00 0x02    // '????(???' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x02    // '????-???' \n\t0x02 0x00 0x00 0x00 0x3B 0x00 0x00 0x02    // '????;???' \n\t0x00 0x00 0x00 0x00 0x5F 0x00 0x00 0x02    // '????_???' \n\t0x02 0x00 0x00 0x00 0x65 0x00 0x00 0x02    // '????e???' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0x02    // '???????' \n\t0x02 0x00 0x00 0x00 0xBA 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x03    // '???? ???' \n\t0x0A 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x0F 0x00 0x00 0xFD 0x5F 0x00 0x00 0x03    // '???_???' \n\t0x00 0x00 0x00 0x00 0x96 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x80    // '????U??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x58 0x00 0x00 0x82    // '????X??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x55 0x00 0x00 0xC0    // '????U??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x4D 0x6F    // '???   Mo' \n\t0x76 0x69 0x6E 0x67 0x20 0x66 0x72 0x6F    // 'ving fro' \n\t0x6D 0x20 0x73 0x63 0x65 0x6E 0x65 0x20    // 'm scene ' \n\t0x74 0x6F 0x20 0x73 0x63 0x65 0x6E 0x65    // 'to scene' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x6F 0x76    // '??To mov' \n\t0x65 0x20 0x66 0x72 0x6F 0x6D 0x20 0x73    // 'e from s' \n\t0x63 0x65 0x6E 0x65 0x20 0x74 0x6F 0x20    // 'cene to ' \n\t0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A 0x95    // 'scene??' \n\t0x09 0x55 0x73 0x65 0x20 0x74 0x68 0x65    // '?Use the' \n\t0x20 0x53 0x63 0x65 0x6E 0x65 0x20 0x53    // ' Scene S' \n\t0x6C 0x69 0x64 0x65 0x72 0x0D 0x0A 0x01    // 'lider???' \n\t0x0D 0x0A 0x4E 0x6F 0x74 0x65 0x3A 0x20    // '??Note: ' \n\t0x20 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // ' Click t' \n\t0x68 0x65 0x20 0x46 0x69 0x72 0x73 0x74    // 'he First' \n\t0x2C 0x20 0x50 0x72 0x65 0x76 0x69 0x6F    // ', Previo' \n\t0x75 0x73 0x2C 0x20 0x4E 0x65 0x78 0x74    // 'us, Next' \n\t0x2C 0x20 0x6F 0x72 0x20 0x4C 0x61 0x73    // ', or Las' \n\t0x74 0x20 0x41 0x72 0x72 0x6F 0x77 0x20    // 't Arrow ' \n\t0x6F 0x72 0x20 0x64 0x72 0x61 0x67 0x20    // 'or drag ' \n\t0x74 0x68 0x65 0x20 0x73 0x6C 0x69 0x64    // 'the slid' \n\t0x65 0x72 0x20 0x69 0x6E 0x20 0x74 0x68    // 'er in th' \n\t0x65 0x20 0x6D 0x69 0x64 0x64 0x6C 0x65    // 'e middle' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x62 0x61 0x72 0x2E                        // 'bar.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4A= Key___New\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4A, __HELP_NAME(\"Key:  New\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4A, __HELP_NAME(\"Key:  New\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_37=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Key___New\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_37=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x88 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_42=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1020_bmp __HELP_SYMBOL( STN \"helppic1020_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_37=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x1D 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x21 0x00 0x00 0x03    // '???!???' \n\t0x0F 0x00 0x00 0xFD 0x22 0x00 0x00 0x03    // '???\"???' \n\t0x0A 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x0F 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x11 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_37=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x68 0x6F    // '???  Sho' \n\t0x72 0x74 0x63 0x75 0x74 0x20 0x6B 0x65    // 'rtcut ke' \n\t0x79 0x0D 0x0A 0x95 0x09 0x48 0x6F 0x6C    // 'y???Hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x43    // 'd down C' \n\t0x74 0x72 0x6C 0x2B 0x4E 0x2E              // 'trl+N.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4B= Tip___Reposition\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4B, __HELP_NAME(\"Tip:  Reposition\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4B, __HELP_NAME(\"Tip:  Reposition\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Reposition\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x46 0x01 0x00 0x00    // '????F???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsCompose __HELP_SYMBOL( STN \"mbmpActorsCompose\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x64 0x00 0x00 0x01    // '????d???' \n\t0x01 0xF1 0x00 0x00 0x77 0x00 0x00 0x01    // '???w???' \n\t0x01 0x00 0x00 0x00 0xC2 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xD6 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0xDF 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xA2 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA2 0x01 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x62 0x00 0x00 0x03    // '???b???' \n\t0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x80    // '????d??' \n\t0x00 0x00 0x02 0x00 0xC2 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xE1 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x09 0x01 0x00 0x82    // '???????' \n\t0x0A 0x00 0x00 0x00 0x74 0x01 0x00 0x82    // '????t??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x77 0x00 0x00 0xC0    // '????w??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x20 0x52 0x65    // '???   Re' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x69 0x6E 0x67 0x0D 0x0A 0x54 0x6F 0x20    // 'ing??To ' \n\t0x72 0x65 0x70 0x6F 0x73 0x69 0x74 0x69    // 'repositi' \n\t0x6F 0x6E 0x20 0x61 0x6E 0x20 0x61 0x63    // 'on an ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x61 0x6E    // ' word an' \n\t0x64 0x20 0x69 0x74 0x73 0x20 0x70 0x61    // 'd its pa' \n\t0x74 0x68 0x20 0x66 0x72 0x6F 0x6D 0x20    // 'th from ' \n\t0x74 0x68 0x65 0x20 0x63 0x75 0x72 0x72    // 'the curr' \n\t0x65 0x6E 0x74 0x20 0x66 0x72 0x61 0x6D    // 'ent fram' \n\t0x65 0x20 0x6F 0x6E 0x0D 0x0A 0x31 0x09    // 'e on??1?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x52 0x65    // 'Click Re' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x2D 0x01 0x0D 0x0A 0x32 0x09 0x48 0x6F    // '-???2?Ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x20 0x61 0x6E 0x64 0x20 0x64 0x72 0x61    // ' and dra' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x33 0x44    // 'g the 3D' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x20    // ' object ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x69    // 'u want i' \n\t0x74 0x2E 0x0D 0x0A 0x49 0x66 0x20 0x79    // 't.??If y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x09 0x09 0x09 0x09 0x09 0x09    // 'to??????' \n\t0x48 0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77    // 'Hold dow' \n\t0x6E 0x0D 0x0A 0x4D 0x6F 0x76 0x65 0x20    // 'n??Move ' \n\t0x74 0x68 0x65 0x20 0x33 0x44 0x20 0x6F    // 'the 3D o' \n\t0x62 0x6A 0x65 0x63 0x74 0x20 0x75 0x70    // 'bject up' \n\t0x09 0x09 0x09 0x74 0x68 0x65 0x20 0x55    // '???the U' \n\t0x70 0x20 0x6F 0x72 0x20 0x44 0x6F 0x77    // 'p or Dow' \n\t0x6E 0x0D 0x0A 0x6F 0x72 0x20 0x64 0x6F    // 'n??or do' \n\t0x77 0x6E 0x20 0x61 0x6E 0x64 0x20 0x6E    // 'wn and n' \n\t0x65 0x61 0x72 0x20 0x6F 0x72 0x20 0x66    // 'ear or f' \n\t0x61 0x72 0x09 0x09 0x09 0x41 0x72 0x72    // 'ar???Arr' \n\t0x6F 0x77 0x20 0x6B 0x65 0x79 0x20 0x61    // 'ow key a' \n\t0x73 0x20 0x79 0x6F 0x75 0x20 0x09 0x09    // 's you ??' \n\t0x09 0x09 0x09 0x09 0x09 0x09 0x09 0x09    // '????????' \n\t0x09 0x64 0x72 0x61 0x67 0x2E 0x0D 0x0A    // '?drag.??' \n\t0x52 0x65 0x70 0x6F 0x73 0x69 0x74 0x69    // 'Repositi' \n\t0x6F 0x6E 0x20 0x6F 0x6E 0x6C 0x79 0x20    // 'on only ' \n\t0x6F 0x6E 0x65 0x20 0x66 0x72 0x61 0x6D    // 'one fram' \n\t0x65 0x09 0x09 0x43 0x74 0x72 0x6C 0x20    // 'e??Ctrl ' \n\t0x61 0x73 0x20 0x79 0x6F 0x75 0x20 0x64    // 'as you d' \n\t0x72 0x61 0x67 0x2E 0x0D 0x0A 0x52 0x65    // 'rag.??Re' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x20 0x74 0x68 0x65 0x20 0x65 0x6E 0x74    // ' the ent' \n\t0x69 0x72 0x65 0x20 0x70 0x61 0x74 0x68    // 'ire path' \n\t0x09 0x09 0x53 0x68 0x69 0x66 0x74 0x20    // '??Shift ' \n\t0x61 0x73 0x20 0x79 0x6F 0x75 0x20 0x64    // 'as you d' \n\t0x72 0x61 0x67 0x2E                        // 'rag.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4C= Tip___Animating\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4C, __HELP_NAME(\"Tip:  Animating\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4C, __HELP_NAME(\"Tip:  Animating\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_48=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Animating\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_49=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x20 0x01 0x00 0x00    // '???? ???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorActions __HELP_SYMBOL( STN \"mbmpActorActions\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_49=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0x01    // '????S???' \n\t0x01 0xF6 0x00 0x00 0x63 0x00 0x00 0x01    // '???c???' \n\t0x01 0x00 0x00 0x00 0x8A 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x03    // '????*???' \n\t0x0A 0x00 0x00 0xFD 0x53 0x00 0x00 0x03    // '???S???' \n\t0x0F 0x00 0x00 0xFD 0xBF 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xE5 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x80    // '????S??' \n\t0x00 0x00 0x02 0x00 0x09 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xBF 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x63 0x00 0x00 0xC0    // '????c??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_49=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x4D 0x61 0x6B 0x69    // '??? Maki' \n\t0x6E 0x67 0x20 0x61 0x6E 0x20 0x61 0x63    // 'ng an ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x6D 0x6F    // ' word mo' \n\t0x76 0x65 0x0D 0x0A 0x54 0x6F 0x20 0x6D    // 've??To m' \n\t0x61 0x6B 0x65 0x20 0x61 0x6E 0x20 0x61    // 'ake an a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x6D    // 'D word m' \n\t0x6F 0x76 0x65 0x0D 0x0A 0x31 0x09 0x43    // 'ove??1?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x41 0x63 0x74    // 'lick Act' \n\t0x69 0x6F 0x6E 0x73 0x2D 0x01 0x0D 0x0A    // 'ions-???' \n\t0x32 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '2?Click ' \n\t0x74 0x68 0x65 0x20 0x33 0x44 0x20 0x6F    // 'the 3D o' \n\t0x62 0x6A 0x65 0x63 0x74 0x20 0x79 0x6F    // 'bject yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x61 0x6E 0x69 0x6D 0x61 0x74    // 'o animat' \n\t0x65 0x2E 0x0D 0x0A 0x33 0x09 0x43 0x6C    // 'e.??3?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x20 0x79    // 'action y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x2C    // 'ou want,' \n\t0x20 0x74 0x68 0x65 0x6E 0x20 0x63 0x6C    // ' then cl' \n\t0x69 0x63 0x6B 0x20 0x4F 0x4B 0x2E 0x0D    // 'ick OK.?' \n\t0x0A 0x34 0x09 0x48 0x6F 0x6C 0x64 0x20    // '?4?Hold ' \n\t0x64 0x6F 0x77 0x6E 0x20 0x74 0x68 0x65    // 'down the' \n\t0x20 0x6D 0x6F 0x75 0x73 0x65 0x20 0x62    // ' mouse b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x20 0x61 0x6E    // 'utton an' \n\t0x64 0x20 0x64 0x72 0x61 0x67 0x20 0x74    // 'd drag t' \n\t0x68 0x65 0x20 0x61 0x63 0x74 0x6F 0x72    // 'he actor' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x69 0x74 0x20 0x74 0x6F 0x20 0x67 0x6F    // 'it to go' \n\t0x2E 0x0D 0x0A 0x2D 0x2D 0x6F 0x72 0x2D    // '.??--or-' \n\t0x2D 0x0D 0x0A 0x49 0x66 0x20 0x79 0x6F    // '-??If yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x68 0x65 0x20 0x61 0x63 0x74 0x6F 0x72    // 'he actor' \n\t0x20 0x74 0x6F 0x20 0x61 0x6E 0x69 0x6D    // ' to anim' \n\t0x61 0x74 0x65 0x20 0x69 0x6E 0x20 0x70    // 'ate in p' \n\t0x6C 0x61 0x63 0x65 0x2C 0x20 0x6D 0x6F    // 'lace, mo' \n\t0x76 0x65 0x20 0x74 0x68 0x65 0x20 0x6D    // 've the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x63 0x75 0x72    // 'ouse cur' \n\t0x73 0x6F 0x72 0x20 0x6F 0x76 0x65 0x72    // 'sor over' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x20 0x74 0x68 0x65 0x6E 0x20    // 'or then ' \n\t0x68 0x6F 0x6C 0x64 0x20 0x64 0x6F 0x77    // 'hold dow' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x6D 0x6F    // 'n the mo' \n\t0x75 0x73 0x65 0x20 0x62 0x75 0x74 0x74    // 'use butt' \n\t0x6F 0x6E 0x20 0x61 0x6E 0x64 0x20 0x77    // 'on and w' \n\t0x61 0x69 0x74 0x2E                        // 'ait.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4D= Key___Open\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4D, __HELP_NAME(\"Key:  Open\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4D, __HELP_NAME(\"Key:  Open\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Key___Open\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7E 0x00 0x00 0x00    // '????~???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_13=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1020_bmp __HELP_SYMBOL( STN \"helppic1020_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x21 0x00 0x00 0x03    // '???!???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x03    // '????\"???' \n\t0x0A 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x11 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x68 0x6F    // '???  Sho' \n\t0x72 0x74 0x63 0x75 0x74 0x20 0x6B 0x65    // 'rtcut ke' \n\t0x79 0x0D 0x0A 0x95 0x09 0x48 0x6F 0x6C    // 'y???Hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x43    // 'd down C' \n\t0x74 0x72 0x6C 0x2B 0x4F 0x2E              // 'trl+O.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4E= Def___Size_Tools\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4E, __HELP_NAME(\"Def:  Size Tools\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4E, __HELP_NAME(\"Def:  Size Tools\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_45=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___Size_Tools\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_45=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x41 0x00 0x00 0x00    // '????A???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_44=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsShrink __HELP_SYMBOL( STN \"mbmpActorsShrink\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_45=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0C 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_45=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x69 0x7A 0x65 0x20 0x54    // '??Size T' \n\t0x6F 0x6F 0x6C 0x73 0x0D 0x0A 0x01 0x20    // 'ools??? ' \n\t0x20                                       // ' ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4F= Def___Rotate_Tools\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4F, __HELP_NAME(\"Def:  Rotate Tools\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4F, __HELP_NAME(\"Def:  Rotate Tools\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___Rotate_Tools\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4D 0x00 0x00 0x00    // '????M???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsRotateY __HELP_SYMBOL( STN \"mbmpActorsRotateY\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0E 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x6F 0x74 0x61 0x74 0x65    // '??Rotate' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x0D 0x0A    // ' Tools??' \n\t0x01                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_50= Def___drag\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_50, __HELP_NAME(\"Def:  drag\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_50, __HELP_NAME(\"Def:  drag\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_79=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_50, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___drag\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_79=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_50, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_79=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_79, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x03    // '????y???' \n\t0x0A 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x79 0x00 0x00 0x80    // '????y??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x79 0x00 0x00 0x82    // '????y??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_79=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_79, 0x0)\n\tBYTE\n\t0x03 0x03 0x64 0x72 0x61 0x67 0x0D 0x0A    // '??drag??' \n\t0x31 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '1?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x73 0x20    // 'tton as ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'you move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x57    // 'se.??2?W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x76 0x65 0x20 0x66 0x69 0x6E 0x69 0x73    // 've finis' \n\t0x68 0x65 0x64 0x20 0x64 0x72 0x61 0x67    // 'hed drag' \n\t0x67 0x69 0x6E 0x67 0x2C 0x20 0x6C 0x65    // 'ging, le' \n\t0x74 0x20 0x67 0x6F 0x20 0x6F 0x66 0x20    // 't go of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x2E 0x0D 0x0A 0x54 0x69 0x70 0x20 0x66    // '.??Tip f' \n\t0x72 0x6F 0x6D 0x20 0x4D 0x63 0x5A 0x65    // 'rom McZe' \n\t0x65 0x3A 0x20 0x20 0x59 0x6F 0x75 0x27    // 'e:  You'' \n\t0x6C 0x6C 0x20 0x67 0x65 0x74 0x20 0x74    // 'll get t' \n\t0x68 0x65 0x20 0x62 0x65 0x73 0x74 0x20    // 'he best ' \n\t0x72 0x65 0x73 0x75 0x6C 0x74 0x73 0x20    // 'results ' \n\t0x69 0x66 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'if you m' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x73 0x6C    // 'mouse sl' \n\t0x6F 0x77 0x6C 0x79 0x20 0x61 0x73 0x20    // 'owly as ' \n\t0x79 0x6F 0x75 0x20 0x64 0x72 0x61 0x67    // 'you drag' \n\t0x2E 0x20                                  // '. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_51= Def___Drag\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"Def:  Drag\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___Drag\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD0 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x79 0x00 0x00 0x03    // '????y???' \n\t0x0A 0x00 0x00 0xFD 0x88 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x79 0x00 0x00 0x80    // '????y??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x79 0x00 0x00 0x82    // '????y??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x72 0x61 0x67 0x0D 0x0A    // '??Drag??' \n\t0x31 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '1?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x74 0x68 0x65 0x20    // 'own the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x62 0x75    // 'mouse bu' \n\t0x74 0x74 0x6F 0x6E 0x20 0x61 0x73 0x20    // 'tton as ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x76 0x65    // 'you move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x2E 0x0D 0x0A 0x32 0x09 0x57    // 'se.??2?W' \n\t0x68 0x65 0x6E 0x20 0x79 0x6F 0x75 0x27    // 'hen you'' \n\t0x76 0x65 0x20 0x66 0x69 0x6E 0x69 0x73    // 've finis' \n\t0x68 0x65 0x64 0x20 0x64 0x72 0x61 0x67    // 'hed drag' \n\t0x67 0x69 0x6E 0x67 0x2C 0x20 0x6C 0x65    // 'ging, le' \n\t0x74 0x20 0x67 0x6F 0x20 0x6F 0x66 0x20    // 't go of ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x75 0x73    // 'the mous' \n\t0x65 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'e button' \n\t0x2E 0x0D 0x0A 0x54 0x69 0x70 0x20 0x66    // '.??Tip f' \n\t0x72 0x6F 0x6D 0x20 0x4D 0x63 0x5A 0x65    // 'rom McZe' \n\t0x65 0x3A 0x20 0x20 0x59 0x6F 0x75 0x27    // 'e:  You'' \n\t0x6C 0x6C 0x20 0x67 0x65 0x74 0x20 0x74    // 'll get t' \n\t0x68 0x65 0x20 0x62 0x65 0x73 0x74 0x20    // 'he best ' \n\t0x72 0x65 0x73 0x75 0x6C 0x74 0x73 0x20    // 'results ' \n\t0x69 0x66 0x20 0x79 0x6F 0x75 0x20 0x6D    // 'if you m' \n\t0x6F 0x76 0x65 0x20 0x74 0x68 0x65 0x20    // 'ove the ' \n\t0x6D 0x6F 0x75 0x73 0x65 0x20 0x73 0x6C    // 'mouse sl' \n\t0x6F 0x77 0x6C 0x79 0x20 0x61 0x73 0x20    // 'owly as ' \n\t0x79 0x6F 0x75 0x20 0x64 0x72 0x61 0x67    // 'you drag' \n\t0x2E 0x20                                  // '. ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_52= Def___Go_to_the_place\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_52, __HELP_NAME(\"Def:  Go to the place\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_52, __HELP_NAME(\"Def:  Go to the place\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_33=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_52, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___Go_to_the_place\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_33=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_52, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x36 0x01 0x00 0x00    // '????6???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_52=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_33=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x13 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4D 0x01 0x00 0x01    // '????M???' \n\t0x00 0x00 0x00 0x00 0x5C 0x00 0x00 0x02    // '????\\???' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x02    // '????b???' \n\t0x00 0x00 0x00 0x00 0xF2 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xF8 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00 0xB9 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xD4 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0x80    // '????Y??' \n\t0x00 0x00 0x03 0x00 0xB9 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xEF 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xF2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x59 0x00 0x00 0xC0    // '????Y??' \n\t0x02 0x00 0x00 0x00 0xEF 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_33=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x03 0x03 0x47 0x6F 0x20 0x74 0x6F 0x20    // '??Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x6F    // 'e??To mo' \n\t0x76 0x65 0x20 0x66 0x6F 0x72 0x77 0x61    // 've forwa' \n\t0x72 0x64 0x73 0x20 0x6F 0x72 0x20 0x62    // 'rds or b' \n\t0x61 0x63 0x6B 0x77 0x61 0x72 0x64 0x73    // 'ackwards' \n\t0x20 0x77 0x69 0x74 0x68 0x69 0x6E 0x20    // ' within ' \n\t0x61 0x20 0x73 0x63 0x65 0x6E 0x65 0x0D    // 'a scene?' \n\t0x0A 0x95 0x09 0x55 0x73 0x65 0x20 0x74    // '??Use t' \n\t0x68 0x65 0x20 0x46 0x72 0x61 0x6D 0x65    // 'he Frame' \n\t0x20 0x53 0x6C 0x69 0x64 0x65 0x72 0x2E    // ' Slider.' \n\t0x20 0x0D 0x0A 0x01 0x0D 0x0A 0x43 0x6C    // ' ?????Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x46 0x69 0x72 0x73 0x74 0x2C 0x20 0x50    // 'First, P' \n\t0x72 0x65 0x76 0x69 0x6F 0x75 0x73 0x2C    // 'revious,' \n\t0x20 0x4E 0x65 0x78 0x74 0x2C 0x20 0x6F    // ' Next, o' \n\t0x72 0x20 0x4C 0x61 0x73 0x74 0x20 0x41    // 'r Last A' \n\t0x72 0x72 0x6F 0x77 0x20 0x6F 0x72 0x20    // 'rrow or ' \n\t0x64 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'drag the' \n\t0x20 0x73 0x6C 0x69 0x64 0x65 0x72 0x20    // ' slider ' \n\t0x69 0x6E 0x20 0x74 0x68 0x65 0x20 0x6D    // 'in the m' \n\t0x69 0x64 0x64 0x6C 0x65 0x20 0x6F 0x66    // 'iddle of' \n\t0x20 0x74 0x68 0x65 0x20 0x62 0x61 0x72    // ' the bar' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x6F    // '.??To mo' \n\t0x76 0x65 0x20 0x66 0x72 0x6F 0x6D 0x20    // 've from ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x74 0x6F    // 'scene to' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A    // ' scene??' \n\t0x95 0x09 0x55 0x73 0x65 0x20 0x74 0x68    // '?Use th' \n\t0x65 0x20 0x53 0x63 0x65 0x6E 0x65 0x20    // 'e Scene ' \n\t0x53 0x6C 0x69 0x64 0x65 0x72 0x2E 0x0D    // 'Slider.?' \n\t0x0A 0x01 0x0D 0x0A 0x43 0x6C 0x69 0x63    // '????Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x46 0x69    // 'k the Fi' \n\t0x72 0x73 0x74 0x2C 0x20 0x50 0x72 0x65    // 'rst, Pre' \n\t0x76 0x69 0x6F 0x75 0x73 0x2C 0x20 0x4E    // 'vious, N' \n\t0x65 0x78 0x74 0x2C 0x20 0x6F 0x72 0x20    // 'ext, or ' \n\t0x4C 0x61 0x73 0x74 0x20 0x41 0x72 0x72    // 'Last Arr' \n\t0x6F 0x77 0x20 0x6F 0x72 0x20 0x64 0x72    // 'ow or dr' \n\t0x61 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ag the s' \n\t0x6C 0x69 0x64 0x65 0x72 0x20 0x69 0x6E    // 'lider in' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x69 0x64    // ' the mid' \n\t0x64 0x6C 0x65 0x20 0x6F 0x66 0x20 0x74    // 'dle of t' \n\t0x68 0x65 0x20 0x62 0x61 0x72 0x2E         // 'he bar.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_53= Def___rewind\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_53, __HELP_NAME(\"Def:  rewind\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_53, __HELP_NAME(\"Def:  rewind\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_59=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_53, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___rewind\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_59=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_53, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x64 0x01 0x00 0x00    // '????d???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_53=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_59, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_59=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_59, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xA9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA9 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0xA9 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x42 0x00 0x00 0x80    // '????B??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x42 0x00 0x00 0xC0    // '????B??' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0xC0    // '????E??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_59=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_59, 0x0)\n\tBYTE\n\t0x03 0x03 0x72 0x65 0x77 0x69 0x6E 0x64    // '??rewind' \n\t0x0D 0x0A 0x95 0x09 0x54 0x6F 0x20 0x72    // '???To r' \n\t0x65 0x77 0x69 0x6E 0x64 0x20 0x79 0x6F    // 'ewind yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x2C 0x20 0x75 0x73 0x65 0x20 0x74 0x68    // ', use th' \n\t0x65 0x20 0x46 0x72 0x61 0x6D 0x65 0x20    // 'e Frame ' \n\t0x61 0x6E 0x64 0x20 0x53 0x63 0x65 0x6E    // 'and Scen' \n\t0x65 0x20 0x53 0x6C 0x69 0x64 0x65 0x72    // 'e Slider' \n\t0x73 0x2E 0x0D 0x0A 0x01 0x0D 0x0A 0x01    // 's.??????' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x6F 0x76    // '??To mov' \n\t0x65 0x20 0x77 0x69 0x74 0x68 0x69 0x6E    // 'e within' \n\t0x20 0x61 0x20 0x73 0x63 0x65 0x6E 0x65    // ' a scene' \n\t0x2C 0x20 0x75 0x73 0x65 0x20 0x74 0x68    // ', use th' \n\t0x65 0x20 0x46 0x72 0x61 0x6D 0x65 0x20    // 'e Frame ' \n\t0x53 0x6C 0x69 0x64 0x65 0x72 0x2E 0x0D    // 'Slider.?' \n\t0x0A 0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65    // '?To move' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x73 0x63    // ' from sc' \n\t0x65 0x6E 0x65 0x20 0x74 0x6F 0x20 0x73    // 'ene to s' \n\t0x63 0x65 0x6E 0x65 0x2C 0x20 0x75 0x73    // 'cene, us' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x53 0x63    // 'e the Sc' \n\t0x65 0x6E 0x65 0x20 0x53 0x6C 0x69 0x64    // 'ene Slid' \n\t0x65 0x72 0x2E                             // 'er.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_54= Def___Play_button\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_54, __HELP_NAME(\"Def:  Play button\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_54, __HELP_NAME(\"Def:  Play button\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_52=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_54, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___Play_button\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_52=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_54, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4A 0x00 0x00 0x00    // '????J???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_52, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPlay __HELP_SYMBOL( STN \"mbmpPlay\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_52=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_52, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0D 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_52=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_52, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x6C 0x61 0x79 0x20 0x62    // '??Play b' \n\t0x75 0x74 0x74 0x6F 0x6E 0x0D 0x0A 0x01    // 'utton???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_55= Tip___Reposition_One_Frame\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_55, __HELP_NAME(\"Tip:  Reposition One Frame\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_55, __HELP_NAME(\"Tip:  Reposition One Frame\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_55, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Reposition_One_Frame\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_55, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x01    // '????F???' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x01 0x00 0x00 0x00 0xA8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x03    // '????%???' \n\t0x0A 0x00 0x00 0xFD 0x46 0x00 0x00 0x03    // '???F???' \n\t0x00 0x00 0x00 0x00 0x69 0x00 0x00 0x03    // '????i???' \n\t0x0F 0x00 0x00 0xFD 0x6D 0x00 0x00 0x03    // '???m???' \n\t0x00 0x00 0x00 0x00 0x48 0x00 0x00 0x80    // '????H??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x52 0x65 0x70 0x6F    // '??? Repo' \n\t0x73 0x69 0x74 0x69 0x6F 0x6E 0x69 0x6E    // 'sitionin' \n\t0x67 0x20 0x6F 0x6E 0x65 0x20 0x66 0x72    // 'g one fr' \n\t0x61 0x6D 0x65 0x20 0x6F 0x66 0x20 0x61    // 'ame of a' \n\t0x20 0x70 0x61 0x74 0x68 0x0D 0x0A 0x54    // ' path??T' \n\t0x6F 0x20 0x72 0x65 0x70 0x6F 0x73 0x69    // 'o reposi' \n\t0x74 0x69 0x6F 0x6E 0x20 0x6F 0x6E 0x65    // 'tion one' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x6F    // ' frame o' \n\t0x66 0x20 0x61 0x20 0x70 0x61 0x74 0x68    // 'f a path' \n\t0x0D 0x0A 0x31 0x09 0x43 0x6C 0x69 0x63    // '??1?Clic' \n\t0x6B 0x20 0x52 0x65 0x70 0x6F 0x73 0x69    // 'k Reposi' \n\t0x74 0x69 0x6F 0x6E 0x2E 0x0D 0x0A 0x32    // 'tion.??2' \n\t0x09 0x48 0x6F 0x6C 0x64 0x20 0x64 0x6F    // '?Hold do' \n\t0x77 0x6E 0x20 0x43 0x74 0x72 0x6C 0x20    // 'wn Ctrl ' \n\t0x61 0x73 0x20 0x79 0x6F 0x75 0x20 0x64    // 'as you d' \n\t0x72 0x61 0x67 0x20 0x74 0x68 0x65 0x20    // 'rag the ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2C 0x20 0x70    // 'actor, p' \n\t0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20    // 'rop, or ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x20    // '3D word ' \n\t0x77 0x68 0x65 0x72 0x65 0x20 0x79 0x6F    // 'where yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x69    // 'u want i' \n\t0x74 0x2E                                  // 't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_56= Tip___Select_Object_Behind\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_56, __HELP_NAME(\"Tip:  Select Object Behind\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_56, __HELP_NAME(\"Tip:  Select Object Behind\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_28=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_56, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Select_Object_Behind\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_28=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_56, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x27 0x01 0x00 0x00    // '????'???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_24=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_28=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x4A 0x00 0x00 0x01    // '????J???' \n\t0x01 0x00 0x00 0x00 0xA5 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x03    // '????&???' \n\t0x0A 0x00 0x00 0xFD 0x48 0x00 0x00 0x03    // '???H???' \n\t0x00 0x00 0x00 0x00 0x4A 0x00 0x00 0x80    // '????J??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_28=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x53 0x65 0x6C 0x65    // '??? Sele' \n\t0x63 0x74 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'cting an' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x20    // ' object ' \n\t0x62 0x65 0x68 0x69 0x6E 0x64 0x20 0x61    // 'behind a' \n\t0x6E 0x6F 0x74 0x68 0x65 0x72 0x0D 0x0A    // 'nother??' \n\t0x54 0x6F 0x20 0x73 0x65 0x6C 0x65 0x63    // 'To selec' \n\t0x74 0x20 0x61 0x6E 0x20 0x6F 0x62 0x6A    // 't an obj' \n\t0x65 0x63 0x74 0x20 0x62 0x65 0x68 0x69    // 'ect behi' \n\t0x6E 0x64 0x20 0x61 0x6E 0x6F 0x74 0x68    // 'nd anoth' \n\t0x65 0x72 0x0D 0x0A 0x95 0x09 0x43 0x6C    // 'er???Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x27 0x73    // 'object's' \n\t0x20 0x70 0x69 0x63 0x74 0x75 0x72 0x65    // ' picture' \n\t0x20 0x69 0x6E 0x20 0x74 0x68 0x65 0x20    // ' in the ' \n\t0x41 0x63 0x74 0x6F 0x72 0x20 0x6F 0x72    // 'Actor or' \n\t0x20 0x50 0x72 0x6F 0x70 0x20 0x4C 0x69    // ' Prop Li' \n\t0x73 0x74 0x20 0x6C 0x6F 0x63 0x61 0x74    // 'st locat' \n\t0x65 0x64 0x20 0x6F 0x6E 0x20 0x65 0x69    // 'ed on ei' \n\t0x74 0x68 0x65 0x72 0x20 0x73 0x69 0x64    // 'ther sid' \n\t0x65 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'e of the' \n\t0x20 0x73 0x74 0x61 0x67 0x65 0x2E         // ' stage.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_57= Tip___Select_Object_Out_of_View\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_57, __HELP_NAME(\"Tip:  Select Object Out of View\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_57, __HELP_NAME(\"Tip:  Select Object Out of View\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_57, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Select_Object_Out_of_View\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_57, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x03 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_29=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x01    // '????C???' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x01    // '????E???' \n\t0x01 0x00 0x00 0x00 0x05 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x03    // '????$???' \n\t0x0A 0x00 0x00 0xFD 0x43 0x00 0x00 0x03    // '???C???' \n\t0x00 0x00 0x00 0x00 0x45 0x00 0x00 0x80    // '????E??' \n\t0x00 0x00 0x02 0x00 0xA2 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xA2 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x65 0x6C    // '???  Sel' \n\t0x65 0x63 0x74 0x69 0x6E 0x67 0x20 0x61    // 'ecting a' \n\t0x6E 0x20 0x6F 0x62 0x6A 0x65 0x63 0x74    // 'n object' \n\t0x20 0x6F 0x75 0x74 0x20 0x6F 0x66 0x20    // ' out of ' \n\t0x76 0x69 0x65 0x77 0x0D 0x0A 0x54 0x6F    // 'view??To' \n\t0x20 0x73 0x65 0x6C 0x65 0x63 0x74 0x20    // ' select ' \n\t0x61 0x6E 0x20 0x6F 0x62 0x6A 0x65 0x63    // 'an objec' \n\t0x74 0x20 0x6F 0x75 0x74 0x20 0x6F 0x66    // 't out of' \n\t0x20 0x76 0x69 0x65 0x77 0x0D 0x0A 0x95    // ' view??' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x6F 0x62 0x6A 0x65 0x63    // 'he objec' \n\t0x74 0x27 0x73 0x20 0x70 0x69 0x63 0x74    // 't's pict' \n\t0x75 0x72 0x65 0x20 0x69 0x6E 0x20 0x74    // 'ure in t' \n\t0x68 0x65 0x20 0x41 0x63 0x74 0x6F 0x72    // 'he Actor' \n\t0x20 0x6F 0x72 0x20 0x50 0x72 0x6F 0x70    // ' or Prop' \n\t0x20 0x4C 0x69 0x73 0x74 0x20 0x6C 0x6F    // ' List lo' \n\t0x63 0x61 0x74 0x65 0x64 0x20 0x6F 0x6E    // 'cated on' \n\t0x20 0x65 0x69 0x74 0x68 0x65 0x72 0x20    // ' either ' \n\t0x73 0x69 0x64 0x65 0x20 0x6F 0x66 0x20    // 'side of ' \n\t0x74 0x68 0x65 0x20 0x73 0x74 0x61 0x67    // 'the stag' \n\t0x65 0x2E 0x0D 0x0A 0x54 0x68 0x69 0x73    // 'e.??This' \n\t0x20 0x70 0x6C 0x61 0x63 0x65 0x73 0x20    // ' places ' \n\t0x74 0x68 0x65 0x20 0x6F 0x62 0x6A 0x65    // 'the obje' \n\t0x63 0x74 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ct in th' \n\t0x65 0x20 0x6D 0x69 0x64 0x64 0x6C 0x65    // 'e middle' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x73 0x74 0x61 0x67 0x65 0x2E 0x20 0x20    // 'stage.  ' \n\t0x59 0x6F 0x75 0x20 0x63 0x61 0x6E 0x20    // 'You can ' \n\t0x74 0x68 0x65 0x6E 0x20 0x6D 0x6F 0x76    // 'then mov' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x6F 0x62    // 'e the ob' \n\t0x6A 0x65 0x63 0x74 0x20 0x77 0x68 0x65    // 'ject whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x77    // 're you w' \n\t0x61 0x6E 0x74 0x20 0x69 0x74 0x2E         // 'ant it.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_58= Tip___Change_Starting_Position\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_58, __HELP_NAME(\"Tip:  Setting starting pose\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_58, __HELP_NAME(\"Tip:  Setting starting pose\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_21=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_58, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Change_Starting_Position\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_21=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_58, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x16 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_41=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorActions __HELP_SYMBOL( STN \"mbmpActorActions\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_21=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xBB 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xCB 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xCC 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xAD 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xA1 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xB9 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0xAD 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0xBB 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xA2 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0xCB 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_21=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x65 0x74    // '???  Set' \n\t0x74 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'ting the' \n\t0x20 0x73 0x74 0x61 0x72 0x74 0x69 0x6E    // ' startin' \n\t0x67 0x20 0x70 0x6F 0x73 0x65 0x0D 0x0A    // 'g pose??' \n\t0x57 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'When you' \n\t0x20 0x63 0x68 0x6F 0x6F 0x73 0x65 0x20    // ' choose ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x69 0x6F    // 'an actio' \n\t0x6E 0x2C 0x20 0x79 0x6F 0x75 0x20 0x63    // 'n, you c' \n\t0x61 0x6E 0x20 0x64 0x65 0x63 0x69 0x64    // 'an decid' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x69 0x6F 0x6E 0x20 0x74 0x6F 0x20 0x62    // 'ion to b' \n\t0x65 0x67 0x69 0x6E 0x20 0x28 0x62 0x6F    // 'egin (bo' \n\t0x74 0x68 0x20 0x66 0x65 0x65 0x74 0x20    // 'th feet ' \n\t0x6F 0x6E 0x20 0x74 0x68 0x65 0x20 0x67    // 'on the g' \n\t0x72 0x6F 0x75 0x6E 0x64 0x2C 0x20 0x72    // 'round, r' \n\t0x69 0x67 0x68 0x74 0x20 0x66 0x6F 0x6F    // 'ight foo' \n\t0x74 0x20 0x75 0x70 0x2C 0x20 0x61 0x6E    // 't up, an' \n\t0x64 0x20 0x73 0x6F 0x20 0x6F 0x6E 0x29    // 'd so on)' \n\t0x2E 0x0D 0x0A 0x54 0x6F 0x20 0x73 0x65    // '.??To se' \n\t0x74 0x20 0x74 0x68 0x65 0x20 0x73 0x74    // 't the st' \n\t0x61 0x72 0x74 0x69 0x6E 0x67 0x20 0x70    // 'arting p' \n\t0x6F 0x73 0x65 0x0D 0x0A 0x31 0x09 0x43    // 'ose??1?C' \n\t0x6C 0x69 0x63 0x6B 0x20 0x41 0x63 0x74    // 'lick Act' \n\t0x69 0x6F 0x6E 0x73 0x2D 0x01 0x0D 0x0A    // 'ions-???' \n\t0x32 0x09 0x43 0x6C 0x69 0x63 0x6B 0x20    // '2?Click ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x20    // 'ord you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x61 0x73 0x73 0x69 0x67 0x6E 0x20 0x61    // 'assign a' \n\t0x6E 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'n action' \n\t0x20 0x74 0x6F 0x2E 0x0D 0x0A 0x33 0x09    // ' to.??3?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'e action' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x70 0x72 0x65    // 't to pre' \n\t0x76 0x69 0x65 0x77 0x2E 0x0D 0x0A 0x34    // 'view.??4' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x61 0x72 0x72 0x6F 0x77    // 'he arrow' \n\t0x73 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 's to the' \n\t0x20 0x72 0x69 0x67 0x68 0x74 0x20 0x6F    // ' right o' \n\t0x66 0x20 0x53 0x65 0x74 0x20 0x53 0x74    // 'f Set St' \n\t0x61 0x72 0x74 0x69 0x6E 0x67 0x20 0x50    // 'arting P' \n\t0x6F 0x73 0x65 0x20 0x75 0x6E 0x74 0x69    // 'ose unti' \n\t0x6C 0x20 0x79 0x6F 0x75 0x20 0x66 0x69    // 'l you fi' \n\t0x6E 0x64 0x20 0x74 0x68 0x65 0x20 0x73    // 'nd the s' \n\t0x74 0x61 0x72 0x74 0x69 0x6E 0x67 0x20    // 'tarting ' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x2E 0x0D 0x0A 0x35 0x09 0x43 0x6C    // 't.??5?Cl' \n\t0x69 0x63 0x6B 0x20 0x4F 0x4B 0x2E         // 'ick OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_59= Tip___Freezing_an_Action\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_59, __HELP_NAME(\"Tip:  Freezing an Action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_59, __HELP_NAME(\"Tip:  Freezing an Action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_59, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Freezing_an_Action\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_59, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x04 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4E 0x01 0x00 0x01    // '????N???' \n\t0x00 0x00 0x00 0x00 0xED 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x00 0x01 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x02 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x02 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x46 0x72 0x65    // '???  Fre' \n\t0x65 0x7A 0x69 0x6E 0x67 0x20 0x61 0x6E    // 'ezing an' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x0D    // ' action?' \n\t0x0A 0x57 0x68 0x65 0x6E 0x20 0x79 0x6F    // '?When yo' \n\t0x75 0x20 0x6D 0x6F 0x76 0x65 0x20 0x61    // 'u move a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x20    // 'n actor ' \n\t0x61 0x63 0x72 0x6F 0x73 0x73 0x20 0x74    // 'across t' \n\t0x68 0x65 0x20 0x73 0x74 0x61 0x67 0x65    // 'he stage' \n\t0x2C 0x20 0x79 0x6F 0x75 0x20 0x63 0x61    // ', you ca' \n\t0x6E 0x20 0x22 0x66 0x72 0x65 0x65 0x7A    // 'n \"freez' \n\t0x65 0x22 0x20 0x61 0x6E 0x20 0x61 0x63    // 'e\" an ac' \n\t0x74 0x69 0x6F 0x6E 0x2E 0x20 0x20 0x46    // 'tion.  F' \n\t0x6F 0x72 0x20 0x65 0x78 0x61 0x6D 0x70    // 'or examp' \n\t0x6C 0x65 0x2C 0x20 0x69 0x66 0x20 0x79    // 'le, if y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x20 0x74 0x6F 0x20 0x6A 0x75 0x6D 0x70    // ' to jump' \n\t0x20 0x75 0x70 0x20 0x69 0x6E 0x74 0x6F    // ' up into' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x69 0x72    // ' the air' \n\t0x2C 0x20 0x79 0x6F 0x75 0x20 0x63 0x61    // ', you ca' \n\t0x6E 0x20 0x66 0x72 0x65 0x65 0x7A 0x65    // 'n freeze' \n\t0x20 0x74 0x68 0x65 0x20 0x6A 0x75 0x6D    // ' the jum' \n\t0x70 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'p action' \n\t0x20 0x61 0x6E 0x64 0x20 0x63 0x6F 0x6E    // ' and con' \n\t0x74 0x69 0x6E 0x75 0x65 0x20 0x64 0x72    // 'tinue dr' \n\t0x61 0x67 0x67 0x69 0x6E 0x67 0x20 0x74    // 'agging t' \n\t0x6F 0x20 0x63 0x72 0x65 0x61 0x74 0x65    // 'o create' \n\t0x20 0x61 0x20 0x22 0x66 0x6C 0x6F 0x61    // ' a \"floa' \n\t0x74 0x69 0x6E 0x67 0x22 0x20 0x65 0x66    // 'ting\" ef' \n\t0x66 0x65 0x63 0x74 0x2E 0x0D 0x0A 0x54    // 'fect.??T' \n\t0x6F 0x20 0x66 0x72 0x65 0x65 0x7A 0x65    // 'o freeze' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x69    // ' an acti' \n\t0x6F 0x6E 0x0D 0x0A 0x95 0x09 0x48 0x6F    // 'on???Ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x53 0x68 0x69 0x66 0x74 0x20 0x61 0x73    // 'Shift as' \n\t0x20 0x79 0x6F 0x75 0x20 0x64 0x72 0x61    // ' you dra' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'g the ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x77 0x68    // ' word wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x69 0x74 0x2E    // 'want it.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5A= Def___Turn_on\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5A, __HELP_NAME(\"Def:  Turn on\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5A, __HELP_NAME(\"Def:  Turn on\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_72=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___Turn_on\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_72=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_72=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_72, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x01 0x00 0x00 0x00 0xA9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x20 0x00 0x00 0x03    // '??? ???' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x03    // '????P???' \n\t0x0A 0x00 0x00 0xFD 0x68 0x00 0x00 0x03    // '???h???' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x2F 0x00 0x00 0x80    // '????/??' \n\t0x00 0x00 0x03 0x00 0x50 0x00 0x00 0x80    // '????P??' \n\t0x00 0x00 0x02 0x00 0x7D 0x00 0x00 0x80    // '????}??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7D 0x00 0x00 0x82    // '????}??' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_72=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_72, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x75 0x72 0x6E 0x20 0x6F    // '??Turn o' \n\t0x6E 0x0D 0x0A 0x54 0x6F 0x20 0x22 0x74    // 'n??To \"t' \n\t0x75 0x72 0x6E 0x20 0x6F 0x6E 0x22 0x20    // 'urn on\" ' \n\t0x74 0x68 0x65 0x20 0x62 0x75 0x74 0x74    // 'the butt' \n\t0x6F 0x6E 0x0D 0x0A 0x95 0x09 0x43 0x6C    // 'on???Cl' \n\t0x69 0x63 0x6B 0x20 0x69 0x74 0x2E 0x0D    // 'ick it.?' \n\t0x0A 0x57 0x68 0x65 0x6E 0x20 0x22 0x6F    // '?When \"o' \n\t0x6E 0x2C 0x22 0x20 0x79 0x6F 0x75 0x20    // 'n,\" you ' \n\t0x73 0x65 0x65 0x20 0x61 0x20 0x72 0x65    // 'see a re' \n\t0x64 0x20 0x6C 0x69 0x67 0x68 0x74 0x2E    // 'd light.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x22 0x74 0x75    // '??To \"tu' \n\t0x72 0x6E 0x20 0x6F 0x66 0x66 0x22 0x20    // 'rn off\" ' \n\t0x74 0x68 0x65 0x20 0x62 0x75 0x74 0x74    // 'the butt' \n\t0x6F 0x6E 0x0D 0x0A 0x95 0x09 0x43 0x6C    // 'on???Cl' \n\t0x69 0x63 0x6B 0x20 0x69 0x74 0x20 0x61    // 'ick it a' \n\t0x67 0x61 0x69 0x6E 0x2E 0x0D 0x0A 0x57    // 'gain.??W' \n\t0x68 0x65 0x6E 0x20 0x22 0x6F 0x66 0x66    // 'hen \"off' \n\t0x2C 0x22 0x20 0x79 0x6F 0x75 0x20 0x6E    // ',\" you n' \n\t0x6F 0x20 0x6C 0x6F 0x6E 0x67 0x65 0x72    // 'o longer' \n\t0x20 0x73 0x65 0x65 0x20 0x74 0x68 0x65    // ' see the' \n\t0x20 0x72 0x65 0x64 0x20 0x6C 0x69 0x67    // ' red lig' \n\t0x68 0x74 0x2E                             // 'ht.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5B= Key___Replace_Part_Path\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5B, __HELP_NAME(\"Key:  Replace Part Path\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5B, __HELP_NAME(\"Key:  Replace Part Path\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_57=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Key___Replace_Part_Path\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_57=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_51=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_57, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_57=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_57, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x01    // '????I???' \n\t0x01 0x00 0x00 0x00 0x89 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x44 0x00 0x00 0x03    // '????D???' \n\t0x0A 0x00 0x00 0xFD 0x48 0x00 0x00 0x03    // '???H???' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x03    // '????I???' \n\t0x0A 0x00 0x00 0xFD 0x4E 0x00 0x00 0x03    // '???N???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x1D 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_57=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_57, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x52 0x65 0x70    // '???  Rep' \n\t0x6C 0x61 0x63 0x69 0x6E 0x67 0x20 0x70    // 'lacing p' \n\t0x61 0x72 0x74 0x20 0x6F 0x66 0x20 0x61    // 'art of a' \n\t0x20 0x70 0x61 0x74 0x68 0x0D 0x0A 0x95    // ' path??' \n\t0x09 0x54 0x6F 0x20 0x72 0x65 0x70 0x6C    // '?To repl' \n\t0x61 0x63 0x65 0x20 0x70 0x61 0x72 0x74    // 'ace part' \n\t0x20 0x6F 0x66 0x20 0x61 0x20 0x70 0x61    // ' of a pa' \n\t0x74 0x68 0x2C 0x20 0x68 0x6F 0x6C 0x64    // 'th, hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x43 0x74    // ' down Ct' \n\t0x72 0x6C 0x2B 0x53 0x68 0x69 0x66 0x74    // 'rl+Shift' \n\t0x20 0x61 0x73 0x20 0x79 0x6F 0x75 0x20    // ' as you ' \n\t0x64 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'drag the' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x69 0x74 0x2E                             // 'it.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5C= Tip___Add_frames\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5C, __HELP_NAME(\"Tip:  Add frames\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5C, __HELP_NAME(\"Tip:  Add frames\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Add_frames\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x48 0x01 0x00 0x00    // '????H???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_79=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7F, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpRewind __HELP_SYMBOL( STN \"mbmpRewind\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpForward __HELP_SYMBOL( STN \"mbmpForward\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x01 0xFE 0x00 0x00 0xC0 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xFD 0x00 0x00 0x01    // '???????' \n\t0x01 0xFE 0x00 0x00 0x77 0x01 0x00 0x01    // '???w???' \n\t0x01 0x00 0x00 0x00 0x8D 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x42 0x00 0x00 0x03    // '???B???' \n\t0x00 0x00 0x00 0x00 0xD8 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xFD 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xFD 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0xC0 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0x77 0x01 0x00 0xC0    // '????w??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7F, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x41 0x64 0x64 0x69    // '??? Addi' \n\t0x6E 0x67 0x20 0x65 0x78 0x74 0x72 0x61    // 'ng extra' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x73 0x0D    // ' frames?' \n\t0x0A 0x54 0x6F 0x20 0x61 0x64 0x64 0x20    // '?To add ' \n\t0x66 0x72 0x61 0x6D 0x65 0x73 0x20 0x74    // 'frames t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x62 0x65    // 'o the be' \n\t0x67 0x69 0x6E 0x6E 0x69 0x6E 0x67 0x20    // 'ginning ' \n\t0x6F 0x66 0x20 0x61 0x20 0x73 0x63 0x65    // 'of a sce' \n\t0x6E 0x65 0x0D 0x0A 0x31 0x09 0x55 0x73    // 'ne??1?Us' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x53 0x63    // 'e the Sc' \n\t0x65 0x6E 0x65 0x20 0x53 0x6C 0x69 0x64    // 'ene Slid' \n\t0x65 0x72 0x20 0x74 0x6F 0x20 0x67 0x6F    // 'er to go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x73 0x63 0x65 0x6E 0x65 0x20 0x74 0x6F    // 'scene to' \n\t0x20 0x77 0x68 0x69 0x63 0x68 0x20 0x79    // ' which y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x61 0x64 0x64 0x20 0x66    // 'to add f' \n\t0x72 0x61 0x6D 0x65 0x73 0x2E 0x0D 0x0A    // 'rames.??' \n\t0x32 0x09 0x48 0x6F 0x6C 0x64 0x20 0x64    // '2?Hold d' \n\t0x6F 0x77 0x6E 0x20 0x43 0x74 0x72 0x6C    // 'own Ctrl' \n\t0x20 0x61 0x73 0x20 0x79 0x6F 0x75 0x20    // ' as you ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x50 0x72 0x65 0x76 0x69 0x6F    // 'e Previo' \n\t0x75 0x73 0x20 0x62 0x75 0x74 0x74 0x6F    // 'us butto' \n\t0x6E 0x2D 0x01 0x20 0x6F 0x6E 0x20 0x74    // 'n-? on t' \n\t0x68 0x65 0x20 0x46 0x72 0x61 0x6D 0x65    // 'he Frame' \n\t0x20 0x53 0x6C 0x69 0x64 0x65 0x72 0x2E    // ' Slider.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x61 0x64 0x64    // '??To add' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x73 0x20    // ' frames ' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x65    // 'at the e' \n\t0x6E 0x64 0x20 0x6F 0x66 0x20 0x61 0x20    // 'nd of a ' \n\t0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A 0x31    // 'scene??1' \n\t0x09 0x55 0x73 0x65 0x20 0x74 0x68 0x65    // '?Use the' \n\t0x20 0x53 0x63 0x65 0x6E 0x65 0x20 0x53    // ' Scene S' \n\t0x6C 0x69 0x64 0x65 0x72 0x20 0x74 0x6F    // 'lider to' \n\t0x20 0x67 0x6F 0x20 0x74 0x6F 0x20 0x74    // ' go to t' \n\t0x68 0x65 0x20 0x73 0x63 0x65 0x6E 0x65    // 'he scene' \n\t0x20 0x74 0x6F 0x20 0x77 0x68 0x69 0x63    // ' to whic' \n\t0x68 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'h you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x61 0x64    // 'nt to ad' \n\t0x64 0x20 0x66 0x72 0x61 0x6D 0x65 0x73    // 'd frames' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x48 0x6F 0x6C    // '.??2?Hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x43    // 'd down C' \n\t0x74 0x72 0x6C 0x20 0x61 0x73 0x20 0x79    // 'trl as y' \n\t0x6F 0x75 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'ou click' \n\t0x20 0x74 0x68 0x65 0x20 0x4E 0x65 0x78    // ' the Nex' \n\t0x74 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 't button' \n\t0x2D 0x01 0x20 0x6F 0x6E 0x20 0x74 0x68    // '-? on th' \n\t0x65 0x20 0x46 0x72 0x61 0x6D 0x65 0x20    // 'e Frame ' \n\t0x53 0x6C 0x69 0x64 0x65 0x72 0x2E         // 'Slider.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5D= Tip___Change_direction\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5D, __HELP_NAME(\"Tip:  Change direction\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5D, __HELP_NAME(\"Tip:  Change direction\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Change_direction\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x54 0x01 0x00 0x00    // '????T???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_48=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\nAG(4)\n\tFREE\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x01 0x00 0x00 0x00 0xE7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x34 0x00 0x00 0x03    // '????4???' \n\t0x0A 0x00 0x00 0xFD 0x63 0x00 0x00 0x03    // '???c???' \n\t0x00 0x00 0x00 0x00 0x9D 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x9D 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4D 0x61 0x69    // '???  Mai' \n\t0x6E 0x74 0x61 0x69 0x6E 0x69 0x6E 0x67    // 'ntaining' \n\t0x20 0x74 0x68 0x65 0x20 0x72 0x6F 0x74    // ' the rot' \n\t0x61 0x74 0x69 0x6F 0x6E 0x20 0x77 0x68    // 'ation wh' \n\t0x65 0x6E 0x20 0x61 0x20 0x33 0x44 0x20    // 'en a 3D ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x20 0x6D    // 'object m' \n\t0x6F 0x76 0x65 0x73 0x0D 0x0A 0x54 0x6F    // 'oves??To' \n\t0x20 0x6D 0x61 0x69 0x6E 0x74 0x61 0x69    // ' maintai' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x72 0x6F    // 'n the ro' \n\t0x74 0x61 0x74 0x69 0x6F 0x6E 0x20 0x77    // 'tation w' \n\t0x68 0x65 0x6E 0x20 0x61 0x20 0x33 0x44    // 'hen a 3D' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x20    // ' object ' \n\t0x6D 0x6F 0x76 0x65 0x73 0x0D 0x0A 0x95    // 'moves??' \n\t0x09 0x48 0x6F 0x6C 0x64 0x20 0x64 0x6F    // '?Hold do' \n\t0x77 0x6E 0x20 0x43 0x74 0x72 0x6C 0x20    // 'wn Ctrl ' \n\t0x77 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'when you' \n\t0x20 0x75 0x73 0x65 0x20 0x61 0x6E 0x79    // ' use any' \n\t0x20 0x6F 0x66 0x20 0x74 0x68 0x65 0x20    // ' of the ' \n\t0x52 0x6F 0x74 0x61 0x74 0x65 0x20 0x74    // 'Rotate t' \n\t0x6F 0x6F 0x6C 0x73 0x2E 0x0D 0x0A 0x4E    // 'ools.??N' \n\t0x6F 0x74 0x65 0x3A 0x20 0x20 0x49 0x66    // 'ote:  If' \n\t0x20 0x79 0x6F 0x75 0x20 0x64 0x6F 0x6E    // ' you don' \n\t0x27 0x74 0x20 0x68 0x6F 0x6C 0x64 0x20    // ''t hold ' \n\t0x64 0x6F 0x77 0x6E 0x20 0x43 0x74 0x72    // 'down Ctr' \n\t0x6C 0x2C 0x20 0x74 0x68 0x65 0x20 0x72    // 'l, the r' \n\t0x6F 0x74 0x61 0x74 0x69 0x6F 0x6E 0x20    // 'otation ' \n\t0x6F 0x6E 0x6C 0x79 0x20 0x6C 0x61 0x73    // 'only las' \n\t0x74 0x73 0x20 0x66 0x6F 0x72 0x20 0x6F    // 'ts for o' \n\t0x6E 0x65 0x20 0x66 0x72 0x61 0x6D 0x65    // 'ne frame' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5E= Key___Up_Down\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5E, __HELP_NAME(\"Key:  Up Down\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5E, __HELP_NAME(\"Key:  Up Down\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_26=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Key___Up_Down\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_26=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_22=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1020_bmp __HELP_SYMBOL( STN \"helppic1020_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_26=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x10 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_26=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x53 0x68 0x6F 0x72    // '??? Shor' \n\t0x74 0x63 0x75 0x74 0x20 0x6B 0x65 0x79    // 'tcut key' \n\t0x0D 0x0A 0x95 0x09 0x48 0x6F 0x6C 0x64    // '???Hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x46 0x39    // ' down F9' \n\t0x20 0x61 0x73 0x20 0x79 0x6F 0x75 0x20    // ' as you ' \n\t0x64 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'drag the' \n\t0x20 0x6D 0x6F 0x75 0x73 0x65 0x2E         // ' mouse.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5F= Key___Save\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5F, __HELP_NAME(\"Key:  Save\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5F, __HELP_NAME(\"Key:  Save\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Key___Save\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7C 0x00 0x00 0x00    // '????|???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1020_bmp __HELP_SYMBOL( STN \"helppic1020_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x21 0x00 0x00 0x03    // '???!???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x03    // '????\"???' \n\t0x0A 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x11 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x68 0x6F    // '???  Sho' \n\t0x72 0x74 0x63 0x75 0x74 0x20 0x4B 0x65    // 'rtcut Ke' \n\t0x79 0x0D 0x0A 0x95 0x09 0x48 0x6F 0x6C    // 'y???Hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x43    // 'd down C' \n\t0x74 0x72 0x6C 0x2B 0x53 0x2E              // 'trl+S.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_60= Tip___Play_continuously\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_60, __HELP_NAME(\"Tip:  Play continuously\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_60, __HELP_NAME(\"Tip:  Play continuously\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_60, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Play_continuously\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_60, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x44 0x01 0x00 0x00    // '????D???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_75=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7C, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsLooping __HELP_SYMBOL( STN \"mbmpSoundsLooping\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x01    // '????=???' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x6C 0x00 0x00 0x01    // '???l???' \n\t0x01 0x00 0x00 0x00 0xBF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x03    // '????!???' \n\t0x0A 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x6F 0x00 0x00 0x82    // '????o??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x6C 0x00 0x00 0xC0    // '????l??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7C, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x50 0x6C 0x61    // '???  Pla' \n\t0x79 0x69 0x6E 0x67 0x20 0x61 0x20 0x73    // 'ying a s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x63 0x6F 0x6E    // 'ound con' \n\t0x74 0x69 0x6E 0x75 0x6F 0x75 0x73 0x6C    // 'tinuousl' \n\t0x79 0x0D 0x0A 0x54 0x6F 0x20 0x70 0x6C    // 'y??To pl' \n\t0x61 0x79 0x20 0x61 0x20 0x73 0x6F 0x75    // 'ay a sou' \n\t0x6E 0x64 0x20 0x63 0x6F 0x6E 0x74 0x69    // 'nd conti' \n\t0x6E 0x75 0x6F 0x75 0x73 0x6C 0x79 0x0D    // 'nuously?' \n\t0x0A 0x31 0x09 0x43 0x68 0x6F 0x6F 0x73    // '?1?Choos' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x73 0x6F    // 'e the so' \n\t0x75 0x6E 0x64 0x20 0x79 0x6F 0x75 0x20    // 'und you ' \n\t0x77 0x61 0x6E 0x74 0x2C 0x20 0x74 0x68    // 'want, th' \n\t0x65 0x6E 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'en click' \n\t0x20 0x4C 0x6F 0x6F 0x70 0x2D 0x01 0x0D    // ' Loop-??' \n\t0x0A 0x32 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?2?Click' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // ', 3D wor' \n\t0x64 0x2C 0x20 0x6F 0x72 0x20 0x62 0x61    // 'd, or ba' \n\t0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'ckground' \n\t0x20 0x79 0x6F 0x75 0x20 0x77 0x61 0x6E    // ' you wan' \n\t0x74 0x20 0x74 0x6F 0x20 0x61 0x74 0x74    // 't to att' \n\t0x61 0x63 0x68 0x20 0x74 0x68 0x65 0x20    // 'ach the ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F    // 'sound to' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_61= Tip___Attach_Action\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_61, __HELP_NAME(\"Tip:  Attach action\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_61, __HELP_NAME(\"Tip:  Attach action\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_61, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Attach_Action\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_61, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x24 0x01 0x00 0x00    // '????$???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_11=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsAttachToCell __HELP_SYMBOL( STN \"mbmpSoundsAttachToCell\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x01 0x00 0x00 0x00 0x52 0x00 0x00 0x01    // '????R???' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x01    // '????T???' \n\t0x01 0x00 0x00 0x00 0xCD 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0xE2 0x00 0x00 0x01    // '??????' \n\t0x01 0xF6 0x00 0x00 0xFD 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x44 0x01 0x00 0x01    // '????D???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x03    // '????\"???' \n\t0x0A 0x00 0x00 0xFD 0x52 0x00 0x00 0x03    // '???R???' \n\t0x00 0x00 0x00 0x00 0x54 0x00 0x00 0x80    // '????T??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x00 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0xFD 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x41 0x74 0x74 0x61    // '??? Atta' \n\t0x63 0x68 0x69 0x6E 0x67 0x20 0x61 0x20    // 'ching a ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F    // 'sound to' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x69    // ' an acti' \n\t0x6F 0x6E 0x0D 0x0A 0x54 0x6F 0x20 0x61    // 'on??To a' \n\t0x74 0x74 0x61 0x63 0x68 0x20 0x61 0x20    // 'ttach a ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x74 0x6F    // 'sound to' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x75 0x72    // ' the cur' \n\t0x72 0x65 0x6E 0x74 0x20 0x61 0x63 0x74    // 'rent act' \n\t0x69 0x6F 0x6E 0x20 0x70 0x6F 0x73 0x69    // 'ion posi' \n\t0x74 0x69 0x6F 0x6E 0x0D 0x0A 0x31 0x09    // 'tion??1?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x6D 0x61 0x74 0x63 0x68 0x20 0x74 0x68    // 'match th' \n\t0x65 0x20 0x73 0x6F 0x75 0x6E 0x64 0x20    // 'e sound ' \n\t0x74 0x6F 0x20 0x74 0x68 0x65 0x20 0x61    // 'to the a' \n\t0x63 0x74 0x69 0x6F 0x6E 0x20 0x70 0x6F    // 'ction po' \n\t0x73 0x69 0x74 0x69 0x6F 0x6E 0x2E 0x0D    // 'sition.?' \n\t0x0A 0x32 0x09 0x43 0x68 0x6F 0x6F 0x73    // '?2?Choos' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x73 0x6F    // 'e the so' \n\t0x75 0x6E 0x64 0x20 0x79 0x6F 0x75 0x20    // 'und you ' \n\t0x77 0x61 0x6E 0x74 0x2E 0x0D 0x0A 0x33    // 'want.??3' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x4D    // '?Click M' \n\t0x6F 0x72 0x65 0x20 0x54 0x6F 0x6F 0x6C    // 'ore Tool' \n\t0x73 0x2E 0x0D 0x0A 0x34 0x09 0x43 0x6C    // 's.??4?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x41 0x63 0x74 0x69 0x6F 0x6E 0x20 0x4D    // 'Action M' \n\t0x61 0x74 0x63 0x68 0x65 0x72 0x2D 0x01    // 'atcher-?' \n\t0x0D 0x0A 0x35 0x09 0x43 0x6C 0x69 0x63    // '??5?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'k the ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x79 0x6F    // ' word yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x61 0x74 0x74 0x61 0x63 0x68    // 'o attach' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x20 0x74 0x6F 0x2E              // 'nd to.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_62= Tip___Remove_Sound\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_62, __HELP_NAME(\"Tip:  Remove Sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_62, __HELP_NAME(\"Tip:  Remove Sound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_60=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_62, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Remove_Sound\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_60=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_62, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_31=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_60, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsListen __HELP_SYMBOL( STN \"mbmpSoundsListen\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_60=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_60, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x01 0xF6 0x00 0x00 0x3D 0x00 0x00 0x01    // '???=???' \n\t0x01 0x00 0x00 0x00 0x87 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xCB 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x26 0x00 0x00 0x03    // '???&???' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x80    // '????(??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x85 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0xC0    // '????=??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_60=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_60, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x52 0x65 0x6D    // '???  Rem' \n\t0x6F 0x76 0x69 0x6E 0x67 0x20 0x61 0x20    // 'oving a ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x54    // 'sound??T' \n\t0x6F 0x20 0x72 0x65 0x6D 0x6F 0x76 0x65    // 'o remove' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \n\t0x0D 0x0A 0x31 0x09 0x43 0x6C 0x69 0x63    // '??1?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x4C 0x69    // 'k the Li' \n\t0x73 0x74 0x65 0x6E 0x65 0x72 0x2D 0x01    // 'stener-?' \n\t0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69 0x63    // '??2?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x33 0x44    // 'k the 3D' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x20    // ' object ' \n\t0x6F 0x72 0x20 0x62 0x61 0x63 0x6B 0x67    // 'or backg' \n\t0x72 0x6F 0x75 0x6E 0x64 0x20 0x77 0x68    // 'round wh' \n\t0x6F 0x73 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'ose soun' \n\t0x64 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'd you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x72 0x65    // 'nt to re' \n\t0x6D 0x6F 0x76 0x65 0x2E 0x0D 0x0A 0x33    // 'move.??3' \n\t0x09 0x48 0x6F 0x6C 0x64 0x20 0x64 0x6F    // '?Hold do' \n\t0x77 0x6E 0x20 0x74 0x68 0x65 0x20 0x6D    // 'wn the m' \n\t0x6F 0x75 0x73 0x65 0x20 0x62 0x75 0x74    // 'ouse but' \n\t0x74 0x6F 0x6E 0x20 0x61 0x6E 0x64 0x20    // 'ton and ' \n\t0x64 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'drag the' \n\t0x20 0x76 0x6F 0x6C 0x75 0x6D 0x65 0x20    // ' volume ' \n\t0x73 0x6C 0x69 0x64 0x65 0x72 0x20 0x74    // 'slider t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x62 0x6F    // 'o the bo' \n\t0x74 0x74 0x6F 0x6D 0x2E                   // 'ttom.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_63= Tip___Pause_Sound\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_63, __HELP_NAME(\"Tip:  Pause Sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_63, __HELP_NAME(\"Tip:  Pause Sound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_30=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_63, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Pause_Sound\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_30=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_63, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x30 0x01 0x00 0x00    // '????0???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPausesSound __HELP_SYMBOL( STN \"mbmpPausesSound\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_30=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x61 0x00 0x00 0x01    // '????a???' \n\t0x00 0x00 0x00 0x00 0x63 0x00 0x00 0x01    // '????c???' \n\t0x01 0x00 0x00 0x00 0xFF 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0x01 0x01 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0x1F 0x01 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x20 0x01 0x00 0x01    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x03    // '????0???' \n\t0x0A 0x00 0x00 0xFD 0x61 0x00 0x00 0x03    // '???a???' \n\t0x00 0x00 0x00 0x00 0x63 0x00 0x00 0x03    // '????c???' \n\t0x0F 0x00 0x00 0xFD 0x20 0x01 0x00 0x03    // '??? ???' \n\t0x00 0x00 0x00 0x00 0x63 0x00 0x00 0x80    // '????c??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x01 0x01 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x1F 0x01 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_30=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x50 0x61 0x75    // '???  Pau' \n\t0x73 0x69 0x6E 0x67 0x20 0x74 0x68 0x65    // 'sing the' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x75    // ' movie u' \n\t0x6E 0x74 0x69 0x6C 0x20 0x61 0x20 0x73    // 'ntil a s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x69 0x73 0x20    // 'ound is ' \n\t0x66 0x69 0x6E 0x69 0x73 0x68 0x65 0x64    // 'finished' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x70 0x61 0x75    // '??To pau' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x6D    // 'se the m' \n\t0x6F 0x76 0x69 0x65 0x20 0x75 0x6E 0x74    // 'ovie unt' \n\t0x69 0x6C 0x20 0x61 0x6E 0x20 0x61 0x63    // 'il an ac' \n\t0x74 0x6F 0x72 0x20 0x69 0x73 0x20 0x64    // 'tor is d' \n\t0x6F 0x6E 0x65 0x20 0x74 0x61 0x6C 0x6B    // 'one talk' \n\t0x69 0x6E 0x67 0x0D 0x0A 0x31 0x09 0x49    // 'ing??1?I' \n\t0x66 0x20 0x79 0x6F 0x75 0x20 0x73 0x65    // 'f you se' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x53 0x63    // 'e the Sc' \n\t0x65 0x6E 0x65 0x73 0x20 0x62 0x75 0x74    // 'enes but' \n\t0x74 0x6F 0x6E 0x20 0x61 0x74 0x20 0x74    // 'ton at t' \n\t0x68 0x65 0x20 0x74 0x6F 0x70 0x20 0x6F    // 'he top o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x73 0x63    // 'f the sc' \n\t0x72 0x65 0x65 0x6E 0x2C 0x20 0x63 0x6C    // 'reen, cl' \n\t0x69 0x63 0x6B 0x20 0x69 0x74 0x2E 0x0D    // 'ick it.?' \n\t0x0A 0x32 0x09 0x47 0x6F 0x20 0x74 0x6F    // '?2?Go to' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x63 0x65 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ce in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x70 0x61 0x75 0x73 0x65    // 'to pause' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x63 0x74    // ' the act' \n\t0x69 0x6F 0x6E 0x2E 0x0D 0x0A 0x33 0x09    // 'ion.??3?' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x4D 0x6F    // 'Click Mo' \n\t0x72 0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73    // 're Tools' \n\t0x2E 0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69    // '.??4?Cli' \n\t0x63 0x6B 0x20 0x57 0x61 0x69 0x74 0x20    // 'ck Wait ' \n\t0x66 0x6F 0x72 0x20 0x53 0x6F 0x75 0x6E    // 'for Soun' \n\t0x64 0x20 0x74 0x6F 0x20 0x45 0x6E 0x64    // 'd to End' \n\t0x2D 0x01                                  // '-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_64= Tip___Pause_Click\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_64, __HELP_NAME(\"Cut:  Tip:  Pause Click\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_64, __HELP_NAME(\"Cut:  Tip:  Pause Click\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_24=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_64, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Pause_Click\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_24=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_64, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x55 0x01 0x00 0x00    // '????U???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_21=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPausesMouse __HELP_SYMBOL( STN \"mbmpPausesMouse\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_24=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD9 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0xF0 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xF1 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x3D 0x00 0x00 0x03    // '????=???' \n\t0x0A 0x00 0x00 0xFD 0x73 0x00 0x00 0x03    // '???s???' \n\t0x00 0x00 0x00 0x00 0x75 0x00 0x00 0x03    // '????u???' \n\t0x0F 0x00 0x00 0xFD 0xF1 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x75 0x00 0x00 0x80    // '????u??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xD9 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x05 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0xF0 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_24=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x0D 0x0A 0x01    // '??Cut???' \n\t0x20 0x50 0x61 0x75 0x73 0x69 0x6E 0x67    // ' Pausing' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x76    // ' the mov' \n\t0x69 0x65 0x20 0x73 0x6F 0x20 0x79 0x6F    // 'ie so yo' \n\t0x75 0x20 0x68 0x61 0x76 0x65 0x20 0x74    // 'u have t' \n\t0x69 0x6D 0x65 0x20 0x74 0x6F 0x20 0x72    // 'ime to r' \n\t0x65 0x61 0x64 0x20 0x74 0x68 0x65 0x20    // 'ead the ' \n\t0x77 0x6F 0x72 0x64 0x73 0x0D 0x0A 0x54    // 'words??T' \n\t0x6F 0x20 0x70 0x61 0x75 0x73 0x65 0x20    // 'o pause ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x20 0x73 0x6F 0x20 0x79 0x6F    // 'ie so yo' \n\t0x75 0x20 0x68 0x61 0x76 0x65 0x20 0x74    // 'u have t' \n\t0x69 0x6D 0x65 0x20 0x74 0x6F 0x20 0x72    // 'ime to r' \n\t0x65 0x61 0x64 0x20 0x74 0x68 0x65 0x20    // 'ead the ' \n\t0x77 0x6F 0x72 0x64 0x73 0x0D 0x0A 0x31    // 'words??1' \n\t0x09 0x49 0x66 0x20 0x6E 0x65 0x63 0x65    // '?If nece' \n\t0x73 0x73 0x61 0x72 0x79 0x2C 0x20 0x63    // 'ssary, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x53 0x63 0x65    // 'lick Sce' \n\t0x6E 0x65 0x73 0x2E 0x0D 0x0A 0x32 0x09    // 'nes.??2?' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x70 0x6C 0x61 0x63 0x65 0x20    // 'e place ' \n\t0x69 0x6E 0x20 0x79 0x6F 0x75 0x72 0x20    // 'in your ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x20 0x77 0x68    // 'movie wh' \n\t0x65 0x72 0x65 0x20 0x79 0x6F 0x75 0x20    // 'ere you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x70 0x61 0x75 0x73 0x65 0x20 0x74 0x68    // 'pause th' \n\t0x65 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 'e action' \n\t0x2E 0x0D 0x0A 0x33 0x09 0x43 0x6C 0x69    // '.??3?Cli' \n\t0x63 0x6B 0x20 0x57 0x61 0x69 0x74 0x20    // 'ck Wait ' \n\t0x46 0x6F 0x72 0x20 0x43 0x6C 0x69 0x63    // 'For Clic' \n\t0x6B 0x2D 0x01                             // 'k-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_65= Tip___Typing_hints\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_65, __HELP_NAME(\"Tip:  Typing hints\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_65, __HELP_NAME(\"Tip:  Typing hints\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_65, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Typing_hints\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_65, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x01 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xA1 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x54 0x79 0x70 0x69    // '??? Typi' \n\t0x6E 0x67 0x20 0x68 0x69 0x6E 0x74 0x73    // 'ng hints' \n\t0x0D 0x0A 0x95 0x09 0x54 0x68 0x65 0x20    // '???The ' \n\t0x62 0x6C 0x69 0x6E 0x6B 0x69 0x6E 0x67    // 'blinking' \n\t0x20 0x69 0x6E 0x73 0x65 0x72 0x74 0x69    // ' inserti' \n\t0x6F 0x6E 0x20 0x70 0x6F 0x69 0x6E 0x74    // 'on point' \n\t0x20 0x28 0x6C 0x29 0x20 0x69 0x6E 0x20    // ' (l) in ' \n\t0x74 0x68 0x65 0x20 0x77 0x6F 0x72 0x64    // 'the word' \n\t0x20 0x62 0x6F 0x78 0x20 0x73 0x68 0x6F    // ' box sho' \n\t0x77 0x73 0x20 0x79 0x6F 0x75 0x20 0x77    // 'ws you w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x72 0x20 0x77 0x6F 0x72 0x64 0x73 0x20    // 'r words ' \n\t0x77 0x69 0x6C 0x6C 0x20 0x67 0x6F 0x20    // 'will go ' \n\t0x77 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'when you' \n\t0x20 0x74 0x79 0x70 0x65 0x2E 0x0D 0x0A    // ' type.??' \n\t0x95 0x09 0x49 0x66 0x20 0x79 0x6F 0x75    // '?If you' \n\t0x20 0x6D 0x61 0x6B 0x65 0x20 0x61 0x20    // ' make a ' \n\t0x6D 0x69 0x73 0x74 0x61 0x6B 0x65 0x2C    // 'mistake,' \n\t0x20 0x70 0x72 0x65 0x73 0x73 0x20 0x42    // ' press B' \n\t0x61 0x63 0x6B 0x73 0x70 0x61 0x63 0x65    // 'ackspace' \n\t0x2E 0x0D 0x0A 0x95 0x09 0x57 0x68 0x65    // '.???Whe' \n\t0x6E 0x20 0x79 0x6F 0x75 0x20 0x72 0x65    // 'n you re' \n\t0x61 0x63 0x68 0x20 0x74 0x68 0x65 0x20    // 'ach the ' \n\t0x72 0x69 0x67 0x68 0x74 0x20 0x65 0x64    // 'right ed' \n\t0x67 0x65 0x20 0x6F 0x66 0x20 0x74 0x68    // 'ge of th' \n\t0x65 0x20 0x62 0x6F 0x78 0x2C 0x20 0x74    // 'e box, t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x64 0x73    // 'he words' \n\t0x20 0x77 0x69 0x6C 0x6C 0x20 0x61 0x75    // ' will au' \n\t0x74 0x6F 0x6D 0x61 0x74 0x69 0x63 0x61    // 'tomatica' \n\t0x6C 0x6C 0x79 0x20 0x6D 0x6F 0x76 0x65    // 'lly move' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x6E 0x65 0x78 0x74 0x20 0x6C 0x69 0x6E    // 'next lin' \n\t0x65 0x2E 0x20 0x20 0x59 0x6F 0x75 0x20    // 'e.  You ' \n\t0x63 0x61 0x6E 0x20 0x63 0x68 0x61 0x6E    // 'can chan' \n\t0x67 0x65 0x20 0x74 0x68 0x65 0x20 0x77    // 'ge the w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x20    // 'ord box ' \n\t0x73 0x69 0x7A 0x65 0x2E                   // 'size.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_66= Tip___Remove_word_box\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_66, __HELP_NAME(\"Tip:  Remove word box\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_66, __HELP_NAME(\"Tip:  Remove word box\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_66, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Remove_word_box\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_66, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x1F 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCutCopyPaste __HELP_SYMBOL( STN \"mbmpCutCopyPaste\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCutWordBox __HELP_SYMBOL( STN \"mbmpCutWordBox\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x11 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x01 0xF6 0x00 0x00 0x52 0x00 0x00 0x01    // '???R???' \n\t0x01 0x00 0x00 0x00 0x55 0x00 0x00 0x01    // '????U???' \n\t0x01 0xF6 0x00 0x00 0x6D 0x00 0x00 0x01    // '???m???' \n\t0x01 0x00 0x00 0x00 0xD2 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x02 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x2D 0x00 0x00 0x03    // '???-???' \n\t0x0F 0x00 0x00 0xFD 0xD2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x70 0x00 0x00 0x80    // '????p??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xBD 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x52 0x00 0x00 0xC0    // '????R??' \n\t0x02 0x00 0x00 0x00 0x6D 0x00 0x00 0xC0    // '????m??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x52 0x65 0x6D 0x6F    // '??? Remo' \n\t0x76 0x69 0x6E 0x67 0x20 0x61 0x20 0x77    // 'ving a w' \n\t0x6F 0x72 0x64 0x20 0x62 0x6F 0x78 0x0D    // 'ord box?' \n\t0x0A 0x54 0x6F 0x20 0x72 0x65 0x6D 0x6F    // '?To remo' \n\t0x76 0x65 0x20 0x61 0x20 0x77 0x6F 0x72    // 've a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x0D 0x0A 0x31    // 'd box??1' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x43 0x75 0x74 0x2C 0x20    // 'he Cut, ' \n\t0x43 0x6F 0x70 0x79 0x2C 0x20 0x26 0x20    // 'Copy, & ' \n\t0x50 0x61 0x73 0x74 0x65 0x20 0x54 0x6F    // 'Paste To' \n\t0x6F 0x6C 0x73 0x2D 0x01 0x0D 0x0A 0x32    // 'ols-???2' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x52    // '?Click R' \n\t0x65 0x6D 0x6F 0x76 0x65 0x20 0x57 0x6F    // 'emove Wo' \n\t0x72 0x64 0x20 0x42 0x6F 0x78 0x2D 0x01    // 'rd Box-?' \n\t0x0D 0x0A 0x33 0x09 0x4D 0x6F 0x76 0x65    // '??3?Move' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x6F 0x75    // ' the mou' \n\t0x73 0x65 0x20 0x63 0x75 0x72 0x73 0x6F    // 'se curso' \n\t0x72 0x20 0x6F 0x76 0x65 0x72 0x20 0x74    // 'r over t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x64 0x20    // 'he word ' \n\t0x62 0x6F 0x78 0x20 0x65 0x64 0x67 0x65    // 'box edge' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x79    // ' until y' \n\t0x6F 0x75 0x20 0x73 0x65 0x65 0x20 0x74    // 'ou see t' \n\t0x68 0x65 0x20 0x73 0x63 0x69 0x73 0x73    // 'he sciss' \n\t0x6F 0x72 0x73 0x2E 0x20 0x0D 0x0A 0x34    // 'ors. ??4' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x74    // '?Click t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x64 0x20    // 'he word ' \n\t0x62 0x6F 0x78 0x2E                        // 'box.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_67= Def___scroll\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_67, __HELP_NAME(\"Def:  scroll\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_67, __HELP_NAME(\"Def:  scroll\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_67, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___scroll\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_67, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4F 0x00 0x00 0x01    // '????O???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x08 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x73 0x63 0x72 0x6F 0x6C 0x6C    // '??scroll' \n\t0x0D 0x0A 0x57 0x6F 0x72 0x64 0x73 0x20    // '??Words ' \n\t0x74 0x68 0x61 0x74 0x20 0x72 0x6F 0x6C    // 'that rol' \n\t0x6C 0x20 0x74 0x6F 0x77 0x61 0x72 0x64    // 'l toward' \n\t0x73 0x20 0x74 0x68 0x65 0x20 0x74 0x6F    // 's the to' \n\t0x70 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'p of the' \n\t0x20 0x73 0x63 0x72 0x65 0x65 0x6E 0x20    // ' screen ' \n\t0x77 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'when you' \n\t0x20 0x70 0x6C 0x61 0x79 0x20 0x79 0x6F    // ' play yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_68= Tip___Remove_pause\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_68, __HELP_NAME(\"Cut:Tip:  Remove pause\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_68, __HELP_NAME(\"Cut:Tip:  Remove pause\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_70=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_68, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Remove_pause\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_70=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_68, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x51 0x01 0x00 0x00    // '????Q???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_68=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_70, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPausesClear __HELP_SYMBOL( STN \"mbmpPausesClear\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_70=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_70, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x19 0x00 0x00 0x00 0x07 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2A 0x00 0x00 0x01    // '????*???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x01 0x00 0x00 0x00 0x0F 0x01 0x00 0x01    // '????????' \n\t0x01 0xF1 0x00 0x00 0x22 0x01 0x00 0x01    // '???\"???' \n\t0x01 0x00 0x00 0x00 0x23 0x01 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00 0xB2 0x00 0x00 0x02    // '???????' \n\t0x01 0x00 0x00 0x00 0xB8 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x07 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x17 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2A 0x00 0x00 0x03    // '???*???' \n\t0x0F 0x00 0x00 0xFD 0xB2 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x0D 0x01 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x23 0x01 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0xA5 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x0F 0x01 0x00 0x80    // '???????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x05 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0xA5 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00 0xA8 0x00 0x00 0xC0    // '??????' \n\t0x05 0x00 0x00 0x00 0x22 0x01 0x00 0xC0    // '????\"??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_70=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_70, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x0D 0x0A 0x01    // '??Cut???' \n\t0x20 0x52 0x65 0x6D 0x6F 0x76 0x69 0x6E    // ' Removin' \n\t0x67 0x20 0x61 0x20 0x70 0x61 0x75 0x73    // 'g a paus' \n\t0x65 0x0D 0x0A 0x54 0x6F 0x20 0x72 0x65    // 'e??To re' \n\t0x6D 0x6F 0x76 0x65 0x20 0x61 0x20 0x70    // 'move a p' \n\t0x61 0x75 0x73 0x65 0x0D 0x0A 0x31 0x09    // 'ause??1?' \n\t0x49 0x66 0x20 0x6E 0x65 0x63 0x65 0x73    // 'If neces' \n\t0x73 0x61 0x72 0x79 0x2C 0x20 0x63 0x6C    // 'sary, cl' \n\t0x69 0x63 0x6B 0x20 0x53 0x63 0x65 0x6E    // 'ick Scen' \n\t0x65 0x73 0x2E 0x0D 0x0A 0x32 0x09 0x55    // 'es.??2?U' \n\t0x73 0x65 0x20 0x74 0x68 0x65 0x20 0x46    // 'se the F' \n\t0x72 0x61 0x6D 0x65 0x20 0x61 0x6E 0x64    // 'rame and' \n\t0x20 0x53 0x63 0x65 0x6E 0x65 0x20 0x53    // ' Scene S' \n\t0x6C 0x69 0x64 0x65 0x72 0x73 0x20 0x74    // 'liders t' \n\t0x6F 0x20 0x67 0x6F 0x20 0x74 0x6F 0x20    // 'o go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x6C 0x61 0x63    // 'the plac' \n\t0x65 0x20 0x77 0x68 0x65 0x72 0x65 0x20    // 'e where ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x72 0x65 0x6D 0x6F    // ' to remo' \n\t0x76 0x65 0x20 0x74 0x68 0x65 0x20 0x70    // 've the p' \n\t0x61 0x75 0x73 0x65 0x2E 0x0D 0x0A 0x01    // 'ause.???' \n\t0x0D 0x0A 0x01 0x0D 0x0A 0x4E 0x6F 0x74    // '?????Not' \n\t0x65 0x3A 0x20 0x20 0x43 0x6C 0x69 0x63    // 'e:  Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x46 0x69    // 'k the Fi' \n\t0x72 0x73 0x74 0x2C 0x20 0x50 0x72 0x65    // 'rst, Pre' \n\t0x76 0x69 0x6F 0x75 0x73 0x2C 0x20 0x4E    // 'vious, N' \n\t0x65 0x78 0x74 0x2C 0x20 0x6F 0x72 0x20    // 'ext, or ' \n\t0x4C 0x61 0x73 0x74 0x20 0x41 0x72 0x72    // 'Last Arr' \n\t0x6F 0x77 0x20 0x6F 0x72 0x20 0x64 0x72    // 'ow or dr' \n\t0x61 0x67 0x20 0x74 0x68 0x65 0x20 0x73    // 'ag the s' \n\t0x6C 0x69 0x64 0x65 0x72 0x20 0x69 0x6E    // 'lider in' \n\t0x20 0x74 0x68 0x65 0x20 0x6D 0x69 0x64    // ' the mid' \n\t0x64 0x6C 0x65 0x20 0x6F 0x66 0x20 0x74    // 'dle of t' \n\t0x68 0x65 0x20 0x62 0x61 0x72 0x2E 0x0D    // 'he bar.?' \n\t0x0A 0x33 0x09 0x43 0x6C 0x69 0x63 0x6B    // '?3?Click' \n\t0x20 0x44 0x6F 0x6E 0x27 0x74 0x20 0x57    // ' Don't W' \n\t0x61 0x69 0x74 0x2D 0x01                   // 'ait-?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_69= Tip___Individual_Sounds\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_69, __HELP_NAME(\"Tip:  Individual Sounds\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_69, __HELP_NAME(\"Tip:  Individual Sounds\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_20=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_69, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Individual_Sounds\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_20=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_69, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsListen __HELP_SYMBOL( STN \"mbmpSoundsListen\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_20=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x01    // '????X???' \n\t0x01 0xF6 0x00 0x00 0x6D 0x00 0x00 0x01    // '???m???' \n\t0x01 0x00 0x00 0x00 0xA9 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x03    // '????-???' \n\t0x0A 0x00 0x00 0xFD 0x58 0x00 0x00 0x03    // '???X???' \n\t0x0F 0x00 0x00 0xFD 0xA9 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x58 0x00 0x00 0x80    // '????X??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x70 0x00 0x00 0x82    // '????p??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x6D 0x00 0x00 0xC0    // '????m??' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_20=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x68 0x61    // '???  Cha' \n\t0x6E 0x67 0x69 0x6E 0x67 0x20 0x74 0x68    // 'nging th' \n\t0x65 0x20 0x76 0x6F 0x6C 0x75 0x6D 0x65    // 'e volume' \n\t0x20 0x6F 0x66 0x20 0x69 0x6E 0x64 0x69    // ' of indi' \n\t0x76 0x69 0x64 0x75 0x61 0x6C 0x20 0x73    // 'vidual s' \n\t0x6F 0x75 0x6E 0x64 0x73 0x0D 0x0A 0x54    // 'ounds??T' \n\t0x6F 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'o change' \n\t0x20 0x74 0x68 0x65 0x20 0x76 0x6F 0x6C    // ' the vol' \n\t0x75 0x6D 0x65 0x20 0x6F 0x66 0x20 0x69    // 'ume of i' \n\t0x6E 0x64 0x69 0x76 0x69 0x64 0x75 0x61    // 'ndividua' \n\t0x6C 0x20 0x73 0x6F 0x75 0x6E 0x64 0x73    // 'l sounds' \n\t0x0D 0x0A 0x31 0x09 0x43 0x6C 0x69 0x63    // '??1?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x4C 0x69    // 'k the Li' \n\t0x73 0x74 0x65 0x6E 0x65 0x72 0x2D 0x01    // 'stener-?' \n\t0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69 0x63    // '??2?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x6F 0x62    // 'k the ob' \n\t0x6A 0x65 0x63 0x74 0x20 0x77 0x68 0x6F    // 'ject who' \n\t0x73 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'se sound' \n\t0x20 0x76 0x6F 0x6C 0x75 0x6D 0x65 0x20    // ' volume ' \n\t0x79 0x6F 0x75 0x20 0x77 0x61 0x6E 0x74    // 'you want' \n\t0x20 0x74 0x6F 0x20 0x63 0x68 0x61 0x6E    // ' to chan' \n\t0x67 0x65 0x2E                             // 'ge.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6A= Key___Undo\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6A, __HELP_NAME(\"Key:  Undo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6A, __HELP_NAME(\"Key:  Undo\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_17=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Key___Undo\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_17=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_15=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1020_bmp __HELP_SYMBOL( STN \"helppic1020_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_17=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x01    // '????C???' \n\t0x01 0x00 0x00 0x00 0x69 0x00 0x00 0x01    // '????i???' \n\t0x01 0x00 0x00 0x00 0x79 0x00 0x00 0x01    // '????y???' \n\t0x00 0x00 0x00 0x00 0x7A 0x00 0x00 0x01    // '????z???' \n\t0x01 0x00 0x00 0x00 0x7C 0x00 0x00 0x01    // '????|???' \n\t0x00 0x00 0x00 0x00 0x12 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x03    // '????>???' \n\t0x0F 0x00 0x00 0xFD 0x45 0x00 0x00 0x03    // '???E???' \n\t0x00 0x00 0x00 0x00 0x47 0x00 0x00 0x03    // '????G???' \n\t0x0A 0x00 0x00 0xFD 0x69 0x00 0x00 0x03    // '???i???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x69 0x00 0x00 0x82    // '????i??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_17=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x68 0x6F    // '???  Sho' \n\t0x72 0x74 0x63 0x75 0x74 0x20 0x6B 0x65    // 'rtcut ke' \n\t0x79 0x73 0x0D 0x0A 0x54 0x6F 0x20 0x75    // 'ys??To u' \n\t0x6E 0x64 0x6F 0x20 0x74 0x68 0x65 0x20    // 'ndo the ' \n\t0x6C 0x61 0x73 0x74 0x20 0x74 0x68 0x69    // 'last thi' \n\t0x6E 0x67 0x20 0x79 0x6F 0x75 0x20 0x64    // 'ng you d' \n\t0x69 0x64 0x0D 0x0A 0x95 0x09 0x48 0x6F    // 'id???Ho' \n\t0x6C 0x64 0x20 0x64 0x6F 0x77 0x6E 0x20    // 'ld down ' \n\t0x43 0x74 0x72 0x6C 0x2B 0x5A 0x2E 0x0D    // 'Ctrl+Z.?' \n\t0x0A 0x54 0x6F 0x20 0x72 0x65 0x64 0x6F    // '?To redo' \n\t0x20 0x74 0x68 0x65 0x20 0x6C 0x61 0x73    // ' the las' \n\t0x74 0x20 0x74 0x68 0x69 0x6E 0x67 0x20    // 't thing ' \n\t0x79 0x6F 0x75 0x20 0x75 0x6E 0x64 0x69    // 'you undi' \n\t0x64 0x0D 0x0A 0x95 0x09 0x48 0x6F 0x6C    // 'd???Hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x43    // 'd down C' \n\t0x74 0x72 0x6C 0x2B 0x59 0x2E              // 'trl+Y.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6B= Def___Cut_Copy_Paste\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6B, __HELP_NAME(\"Def:  Cut Copy Paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6B, __HELP_NAME(\"Def:  Cut Copy Paste\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___Cut_Copy_Paste\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9F 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_16=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpCutCopyPaste __HELP_SYMBOL( STN \"mbmpCutCopyPaste\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x19 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x2C 0x20 0x43    // '??Cut, C' \n\t0x6F 0x70 0x79 0x2C 0x26 0x20 0x50 0x61    // 'opy,& Pa' \n\t0x73 0x74 0x65 0x20 0x54 0x6F 0x6F 0x6C    // 'ste Tool' \n\t0x73 0x0D 0x0A 0x01                        // 's???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6C= Def___Move_to_scene\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6C, __HELP_NAME(\"Def:  Move to scene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6C, __HELP_NAME(\"Def:  Move to scene\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_35=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___Move_to_scene\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_35=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x36 0x01 0x00 0x00    // '????6???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_35=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3A 0x00 0x00 0x01    // '????:???' \n\t0x00 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x01 0x00 0x00 0x00 0x87 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0x89 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xB3 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x58 0x00 0x00 0x02    // '????X???' \n\t0x02 0x00 0x00 0x00 0x5E 0x00 0x00 0x02    // '????^???' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x02    // '???????' \n\t0x02 0x00 0x00 0x00 0xB3 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x3A 0x00 0x00 0x03    // '???:???' \n\t0x00 0x00 0x00 0x00 0x58 0x00 0x00 0x03    // '????X???' \n\t0x00 0x00 0x00 0x00 0x90 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x55 0x00 0x00 0x80    // '????U??' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x58 0x00 0x00 0x82    // '????X??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x03 0x00 0x00 0x00 0x55 0x00 0x00 0xC0    // '????U??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_35=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4D 0x6F 0x76    // '???  Mov' \n\t0x69 0x6E 0x67 0x20 0x66 0x72 0x6F 0x6D    // 'ing from' \n\t0x20 0x73 0x63 0x65 0x6E 0x65 0x20 0x74    // ' scene t' \n\t0x6F 0x20 0x73 0x63 0x65 0x6E 0x65 0x0D    // 'o scene?' \n\t0x0A 0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65    // '?To move' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x73 0x63    // ' from sc' \n\t0x65 0x6E 0x65 0x20 0x74 0x6F 0x20 0x73    // 'ene to s' \n\t0x63 0x65 0x6E 0x65 0x0D 0x0A 0x95 0x09    // 'cene???' \n\t0x55 0x73 0x65 0x20 0x74 0x68 0x65 0x20    // 'Use the ' \n\t0x53 0x63 0x65 0x6E 0x65 0x20 0x53 0x6C    // 'Scene Sl' \n\t0x69 0x64 0x65 0x72 0x2E 0x0D 0x0A 0x01    // 'ider.???' \n\t0x0D 0x0A 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x46 0x69 0x72 0x73    // 'the Firs' \n\t0x74 0x2C 0x20 0x50 0x72 0x65 0x76 0x69    // 't, Previ' \n\t0x6F 0x75 0x73 0x2C 0x20 0x4E 0x65 0x78    // 'ous, Nex' \n\t0x74 0x2C 0x20 0x6F 0x72 0x20 0x4C 0x61    // 't, or La' \n\t0x73 0x74 0x20 0x41 0x72 0x72 0x6F 0x77    // 'st Arrow' \n\t0x20 0x6F 0x72 0x20 0x64 0x72 0x61 0x67    // ' or drag' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6C 0x69    // ' the sli' \n\t0x64 0x65 0x72 0x20 0x69 0x6E 0x20 0x74    // 'der in t' \n\t0x68 0x65 0x20 0x6D 0x69 0x64 0x64 0x6C    // 'he middl' \n\t0x65 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'e of the' \n\t0x20 0x62 0x61 0x72 0x2E                   // ' bar.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6D= Tip___Moving_around\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6D, __HELP_NAME(\"Tip:  Moving around\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6D, __HELP_NAME(\"Tip:  Moving around\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_41=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Moving_around\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_41=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x35 0x01 0x00 0x00    // '????5???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpFrameSlider __HELP_SYMBOL( STN \"mbmpFrameSlider\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSceneSlider __HELP_SYMBOL( STN \"mbmpSceneSlider\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_41=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x19 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4A 0x00 0x00 0x01    // '????J???' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x01    // '????L???' \n\t0x01 0x00 0x00 0x00 0x97 0x00 0x00 0x01    // '???????' \n\t0x05 0x00 0x00 0x00 0x99 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x2D 0x01 0x00 0x01    // '????-???' \n\t0x05 0x00 0x00 0x00 0x2F 0x01 0x00 0x01    // '????/???' \n\t0x01 0x00 0x00 0x00 0x59 0x01 0x00 0x01    // '????Y???' \n\t0x00 0x00 0x00 0x00 0x68 0x00 0x00 0x02    // '????h???' \n\t0x02 0x00 0x00 0x00 0x6E 0x00 0x00 0x02    // '????n???' \n\t0x00 0x00 0x00 0x00 0xFE 0x00 0x00 0x02    // '???????' \n\t0x02 0x00 0x00 0x00 0x04 0x01 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x03    // '???? ???' \n\t0x0A 0x00 0x00 0xFD 0x4A 0x00 0x00 0x03    // '???J???' \n\t0x00 0x00 0x00 0x00 0x68 0x00 0x00 0x03    // '????h???' \n\t0x00 0x00 0x00 0x00 0xC5 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0xE0 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x65 0x00 0x00 0x80    // '????e??' \n\t0x00 0x00 0x03 0x00 0xC5 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0xFB 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xFE 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x65 0x00 0x00 0xC0    // '????e??' \n\t0x03 0x00 0x00 0x00 0xFB 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_41=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4D 0x6F 0x76    // '???  Mov' \n\t0x69 0x6E 0x67 0x20 0x61 0x72 0x6F 0x75    // 'ing arou' \n\t0x6E 0x64 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'nd in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x6D 0x6F 0x76    // '??To mov' \n\t0x65 0x20 0x66 0x72 0x6F 0x6D 0x20 0x66    // 'e from f' \n\t0x72 0x61 0x6D 0x65 0x20 0x74 0x6F 0x20    // 'rame to ' \n\t0x66 0x72 0x61 0x6D 0x65 0x20 0x77 0x69    // 'frame wi' \n\t0x74 0x68 0x69 0x6E 0x20 0x61 0x20 0x73    // 'thin a s' \n\t0x63 0x65 0x6E 0x65 0x0D 0x0A 0x95 0x09    // 'cene???' \n\t0x55 0x73 0x65 0x20 0x74 0x68 0x65 0x20    // 'Use the ' \n\t0x46 0x72 0x61 0x6D 0x65 0x20 0x53 0x6C    // 'Frame Sl' \n\t0x69 0x64 0x65 0x72 0x2E 0x0D 0x0A 0x01    // 'ider.???' \n\t0x0D 0x0A 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x74 0x68 0x65 0x20 0x46 0x69 0x72 0x73    // 'the Firs' \n\t0x74 0x2C 0x20 0x50 0x72 0x65 0x76 0x69    // 't, Previ' \n\t0x6F 0x75 0x73 0x2C 0x20 0x4E 0x65 0x78    // 'ous, Nex' \n\t0x74 0x2C 0x20 0x6F 0x72 0x20 0x4C 0x61    // 't, or La' \n\t0x73 0x74 0x20 0x41 0x72 0x72 0x6F 0x77    // 'st Arrow' \n\t0x20 0x6F 0x72 0x20 0x64 0x72 0x61 0x67    // ' or drag' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6C 0x69    // ' the sli' \n\t0x64 0x65 0x72 0x20 0x69 0x6E 0x20 0x74    // 'der in t' \n\t0x68 0x65 0x20 0x6D 0x69 0x64 0x64 0x6C    // 'he middl' \n\t0x65 0x20 0x6F 0x66 0x20 0x74 0x68 0x65    // 'e of the' \n\t0x20 0x62 0x61 0x72 0x2E 0x0D 0x0A 0x54    // ' bar.??T' \n\t0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20 0x66    // 'o move f' \n\t0x72 0x6F 0x6D 0x20 0x73 0x63 0x65 0x6E    // 'rom scen' \n\t0x65 0x20 0x74 0x6F 0x20 0x73 0x63 0x65    // 'e to sce' \n\t0x6E 0x65 0x0D 0x0A 0x95 0x09 0x55 0x73    // 'ne???Us' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x53 0x63    // 'e the Sc' \n\t0x65 0x6E 0x65 0x20 0x53 0x6C 0x69 0x64    // 'ene Slid' \n\t0x65 0x72 0x2E 0x0D 0x0A 0x01 0x0D 0x0A    // 'er.?????' \n\t0x43 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'Click th' \n\t0x65 0x20 0x46 0x69 0x72 0x73 0x74 0x2C    // 'e First,' \n\t0x20 0x50 0x72 0x65 0x76 0x69 0x6F 0x75    // ' Previou' \n\t0x73 0x2C 0x20 0x4E 0x65 0x78 0x74 0x2C    // 's, Next,' \n\t0x20 0x6F 0x72 0x20 0x4C 0x61 0x73 0x74    // ' or Last' \n\t0x20 0x41 0x72 0x72 0x6F 0x77 0x20 0x6F    // ' Arrow o' \n\t0x72 0x20 0x64 0x72 0x61 0x67 0x20 0x74    // 'r drag t' \n\t0x68 0x65 0x20 0x73 0x6C 0x69 0x64 0x65    // 'he slide' \n\t0x72 0x20 0x69 0x6E 0x20 0x74 0x68 0x65    // 'r in the' \n\t0x20 0x6D 0x69 0x64 0x64 0x6C 0x65 0x20    // ' middle ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x62    // 'of the b' \n\t0x61 0x72 0x2E                             // 'ar.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6E= Key___Paste\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6E, __HELP_NAME(\"Key:  Paste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6E, __HELP_NAME(\"Key:  Paste\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_69=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Key___Paste\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_69=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x79 0x00 0x00 0x00    // '????y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_61=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_69, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1020_bmp __HELP_SYMBOL( STN \"helppic1020_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_69=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_69, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x01    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x20 0x00 0x00 0x03    // '??? ???' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x03    // '????!???' \n\t0x0A 0x00 0x00 0xFD 0x22 0x00 0x00 0x03    // '???\"???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x10 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_69=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_69, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x53 0x68 0x6F 0x72    // '??? Shor' \n\t0x74 0x63 0x75 0x74 0x20 0x6B 0x65 0x79    // 'tcut key' \n\t0x0D 0x0A 0x95 0x09 0x48 0x6F 0x6C 0x64    // '???Hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x43 0x74    // ' down Ct' \n\t0x72 0x6C 0x2B 0x56 0x2E                   // 'rl+V.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6F= Tip___Copy_until_end_of_scene\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6F, __HELP_NAME(\"Tip:  Copy until end of scene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6F, __HELP_NAME(\"Tip:  Copy until end of scene\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Copy_until_end_of_scene\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_27=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x01 0x00 0x00 0x00 0x8E 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x03    // '????%???' \n\t0x0A 0x00 0x00 0xFD 0x51 0x00 0x00 0x03    // '???Q???' \n\t0x0F 0x00 0x00 0xFD 0x8E 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x80    // '????Q??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x51 0x00 0x00 0x82    // '????Q??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x6F 0x70    // '???  Cop' \n\t0x79 0x69 0x6E 0x67 0x20 0x75 0x6E 0x74    // 'ying unt' \n\t0x69 0x6C 0x20 0x74 0x68 0x65 0x20 0x65    // 'il the e' \n\t0x6E 0x64 0x20 0x6F 0x66 0x20 0x61 0x20    // 'nd of a ' \n\t0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A 0x54    // 'scene??T' \n\t0x6F 0x20 0x63 0x6F 0x70 0x79 0x20 0x73    // 'o copy s' \n\t0x6F 0x6D 0x65 0x74 0x68 0x69 0x6E 0x67    // 'omething' \n\t0x20 0x75 0x6E 0x74 0x69 0x6C 0x20 0x74    // ' until t' \n\t0x68 0x65 0x20 0x65 0x6E 0x64 0x20 0x6F    // 'he end o' \n\t0x66 0x20 0x61 0x20 0x73 0x63 0x65 0x6E    // 'f a scen' \n\t0x65 0x0D 0x0A 0x95 0x09 0x48 0x6F 0x6C    // 'e???Hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x53    // 'd down S' \n\t0x68 0x69 0x66 0x74 0x20 0x77 0x68 0x65    // 'hift whe' \n\t0x6E 0x20 0x79 0x6F 0x75 0x20 0x63 0x6C    // 'n you cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x6F 0x62 0x6A 0x65 0x63 0x74 0x20 0x79    // 'object y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x70 0x79 0x2E    // 'to copy.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_70= Tip___Cut_until_end_of_scene\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_70, __HELP_NAME(\"Tip:  Cut until end of scene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_70, __HELP_NAME(\"Tip:  Cut until end of scene\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_70, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Cut_until_end_of_scene\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_70, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x0F 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x8C 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x03    // '????%???' \n\t0x0A 0x00 0x00 0xFD 0x50 0x00 0x00 0x03    // '???P???' \n\t0x0F 0x00 0x00 0xFD 0x8C 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x80    // '????P??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x50 0x00 0x00 0x82    // '????P??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x75 0x74    // '???  Cut' \n\t0x74 0x69 0x6E 0x67 0x20 0x75 0x6E 0x74    // 'ting unt' \n\t0x69 0x6C 0x20 0x74 0x68 0x65 0x20 0x65    // 'il the e' \n\t0x6E 0x64 0x20 0x6F 0x66 0x20 0x61 0x20    // 'nd of a ' \n\t0x73 0x63 0x65 0x6E 0x65 0x0D 0x0A 0x54    // 'scene??T' \n\t0x6F 0x20 0x63 0x75 0x74 0x20 0x73 0x6F    // 'o cut so' \n\t0x6D 0x65 0x74 0x68 0x69 0x6E 0x67 0x20    // 'mething ' \n\t0x75 0x6E 0x74 0x69 0x6C 0x20 0x74 0x68    // 'until th' \n\t0x65 0x20 0x65 0x6E 0x64 0x20 0x6F 0x66    // 'e end of' \n\t0x20 0x61 0x20 0x73 0x63 0x65 0x6E 0x65    // ' a scene' \n\t0x0D 0x0A 0x95 0x09 0x48 0x6F 0x6C 0x64    // '???Hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x53 0x68    // ' down Sh' \n\t0x69 0x66 0x74 0x20 0x77 0x68 0x65 0x6E    // 'ift when' \n\t0x20 0x79 0x6F 0x75 0x20 0x63 0x6C 0x69    // ' you cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x6F    // 'ck the o' \n\t0x62 0x6A 0x65 0x63 0x74 0x20 0x79 0x6F    // 'bject yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x63 0x75 0x74 0x2E              // 'o cut.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_71= Key___Exit\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_71, __HELP_NAME(\"Key:  Exit\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_71, __HELP_NAME(\"Key:  Exit\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_71, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Key___Exit\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_71, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7F 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_12=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1020_bmp __HELP_SYMBOL( STN \"helppic1020_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x21 0x00 0x00 0x03    // '???!???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x03    // '????\"???' \n\t0x0A 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x11 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x68 0x6F    // '???  Sho' \n\t0x72 0x74 0x63 0x75 0x74 0x20 0x6B 0x65    // 'rtcut ke' \n\t0x79 0x0D 0x0A 0x95 0x09 0x48 0x6F 0x6C    // 'y???Hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x43    // 'd down C' \n\t0x74 0x72 0x6C 0x2B 0x51 0x2E              // 'trl+Q.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_72= Key___Help\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_72, __HELP_NAME(\"Key:  Help\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_72, __HELP_NAME(\"Key:  Help\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_72, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Key___Help\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_72, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x7F 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_73=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1020_bmp __HELP_SYMBOL( STN \"helppic1020_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x1B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x1C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x11 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x68 0x6F    // '???  Sho' \n\t0x72 0x74 0x63 0x75 0x74 0x20 0x6B 0x65    // 'rtcut ke' \n\t0x79 0x0D 0x0A 0x95 0x09 0x50 0x72 0x65    // 'y???Pre' \n\t0x73 0x73 0x20 0x46 0x31 0x2E              // 'ss F1.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_73= Tip___Stop_sound\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_73, __HELP_NAME(\"Tip:  Stop sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_73, __HELP_NAME(\"Tip:  Stop sound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_73, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Stop_sound\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_73, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x03 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_78=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsEfxBrowser __HELP_SYMBOL( STN \"mbmpSoundsEfxBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsMicBrowser __HELP_SYMBOL( STN \"mbmpSoundsMicBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsMusicBrowser __HELP_SYMBOL( STN \"mbmpSoundsMusicBrowser\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x17 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x12 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x96 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xA4 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xA7 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xAE 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xB1 0x00 0x00 0x01    // '???????' \n\t0x01 0xF6 0x00 0x00 0xB7 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0xCF 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0xD1 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0xDC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x80    // '????%??' \n\t0x00 0x00 0x02 0x00 0x95 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xB9 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xD1 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x95 0x00 0x00 0xC0    // '??????' \n\t0x02 0x00 0x00 0x00 0xA6 0x00 0x00 0xC0    // '??????' \n\t0x03 0x00 0x00 0x00 0xB0 0x00 0x00 0xC0    // '??????' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7B, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x53 0x74 0x6F 0x70    // '??? Stop' \n\t0x70 0x69 0x6E 0x67 0x20 0x61 0x20 0x73    // 'ping a s' \n\t0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x54 0x6F    // 'ound??To' \n\t0x20 0x73 0x74 0x6F 0x70 0x20 0x61 0x20    // ' stop a ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x31    // 'sound??1' \n\t0x09 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x70 0x6C 0x61 0x63 0x65    // 'he place' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x77    // ' movie w' \n\t0x68 0x65 0x72 0x65 0x20 0x79 0x6F 0x75    // 'here you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x20 0x73 0x74 0x6F 0x70 0x20 0x74 0x68    // ' stop th' \n\t0x65 0x20 0x73 0x6F 0x75 0x6E 0x64 0x2E    // 'e sound.' \n\t0x0D 0x0A 0x32 0x09 0x43 0x6C 0x69 0x63    // '??2?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x6B 0x69    // 'k the ki' \n\t0x6E 0x64 0x20 0x6F 0x66 0x20 0x73 0x6F    // 'nd of so' \n\t0x75 0x6E 0x64 0x20 0x79 0x6F 0x75 0x20    // 'und you ' \n\t0x77 0x61 0x6E 0x74 0x20 0x74 0x6F 0x20    // 'want to ' \n\t0x73 0x74 0x6F 0x70 0x3A 0x0D 0x0A 0x01    // 'stop:???' \n\t0x2D 0x53 0x6F 0x75 0x6E 0x64 0x20 0x45    // '-Sound E' \n\t0x66 0x66 0x65 0x63 0x74 0x73 0x0D 0x0A    // 'ffects??' \n\t0x01 0x2D 0x53 0x70 0x65 0x65 0x63 0x68    // '?-Speech' \n\t0x0D 0x0A 0x01 0x2D 0x4D 0x75 0x73 0x69    // '???-Musi' \n\t0x63 0x0D 0x0A 0x33 0x09 0x43 0x6C 0x69    // 'c??3?Cli' \n\t0x63 0x6B 0x20 0x53 0x6F 0x75 0x6E 0x64    // 'ck Sound' \n\t0x20 0x53 0x74 0x6F 0x70 0x70 0x65 0x72    // ' Stopper' \n\t0x2E 0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69    // '.??4?Cli' \n\t0x63 0x6B 0x20 0x4F 0x4B 0x2E              // 'ck OK.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_74= Def___Choose_sound\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_74, __HELP_NAME(\"Def:  Choose sound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_74, __HELP_NAME(\"Def:  Choose sound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_43=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_74, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___Choose_sound\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_43=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_74, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_43=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_43, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsEfxBrowser __HELP_SYMBOL( STN \"mbmpSoundsEfxBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsMicBrowser __HELP_SYMBOL( STN \"mbmpSoundsMicBrowser\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSoundsMusicBrowser __HELP_SYMBOL( STN \"mbmpSoundsMusicBrowser\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_43=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_43, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x01 0xF6 0x00 0x00 0x43 0x00 0x00 0x01    // '???C???' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x01    // '????F???' \n\t0x01 0xF6 0x00 0x00 0x5F 0x00 0x00 0x01    // '???_???' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x01    // '????b???' \n\t0x01 0xF6 0x00 0x00 0x78 0x00 0x00 0x01    // '???x???' \n\t0x01 0x00 0x00 0x00 0x79 0x00 0x00 0x01    // '????y???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x80    // '????%??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x62 0x00 0x00 0x82    // '????b??' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0xC0    // '????C??' \n\t0x01 0x00 0x00 0x00 0x5F 0x00 0x00 0xC0    // '????_??' \n\t0x02 0x00 0x00 0x00 0x78 0x00 0x00 0xC0    // '????x??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_43=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_43, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x6F 0x6F 0x73 0x65    // '??Choose' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x0D 0x0A 0x54 0x6F 0x20 0x63    // 'nd??To c' \n\t0x68 0x6F 0x6F 0x73 0x65 0x20 0x61 0x20    // 'hoose a ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x95    // 'sound??' \n\t0x09 0x54 0x6F 0x20 0x61 0x64 0x64 0x20    // '?To add ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x65 0x66    // 'sound ef' \n\t0x66 0x65 0x63 0x74 0x73 0x2C 0x20 0x63    // 'fects, c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x01 0x0D 0x0A    // 'lick ???' \n\t0x95 0x09 0x54 0x6F 0x20 0x61 0x64 0x64    // '?To add' \n\t0x20 0x64 0x69 0x61 0x6C 0x6F 0x67 0x75    // ' dialogu' \n\t0x65 0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'e, click' \n\t0x20 0x01 0x0D 0x0A 0x95 0x09 0x54 0x6F    // ' ????To' \n\t0x20 0x61 0x64 0x64 0x20 0x6D 0x75 0x73    // ' add mus' \n\t0x69 0x63 0x2C 0x20 0x63 0x6C 0x69 0x63    // 'ic, clic' \n\t0x6B 0x20 0x01                             // 'k ?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_75= Def___portfolio\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_75, __HELP_NAME(\"Def:  portfolio\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_75, __HELP_NAME(\"Def:  portfolio\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_25=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_75, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___portfolio\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_75, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPortfolio __HELP_SYMBOL( STN \"mbmpPortfolio\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x0B 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6B, 0x0)\n\tBYTE\n\t0x03 0x03 0x70 0x6F 0x72 0x74 0x66 0x6F    // '??portfo' \n\t0x6C 0x69 0x6F 0x0D 0x0A 0x01              // 'lio???' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_76= Tip___How_many_sounds\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_76, __HELP_NAME(\"Tip:  How many sounds\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_76, __HELP_NAME(\"Tip:  How many sounds\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_76, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___How_many_sounds\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_76, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x1F 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xD5 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x33 0x00 0x00 0x80    // '????3??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x7D 0x00 0x00 0x82    // '????}??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x48 0x6F 0x77    // '???  How' \n\t0x20 0x6D 0x61 0x6E 0x79 0x20 0x73 0x6F    // ' many so' \n\t0x75 0x6E 0x64 0x73 0x20 0x63 0x61 0x6E    // 'unds can' \n\t0x20 0x49 0x20 0x61 0x74 0x74 0x61 0x63    // ' I attac' \n\t0x68 0x3F 0x0D 0x0A 0x59 0x6F 0x75 0x20    // 'h???You ' \n\t0x63 0x61 0x6E 0x20 0x61 0x74 0x74 0x61    // 'can atta' \n\t0x63 0x68 0x3A 0x0D 0x0A 0x95 0x09 0x54    // 'ch:???T' \n\t0x77 0x6F 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'wo sound' \n\t0x73 0x20 0x74 0x6F 0x20 0x61 0x20 0x62    // 's to a b' \n\t0x61 0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E    // 'ackgroun' \n\t0x64 0x20 0x28 0x6F 0x6E 0x65 0x20 0x73    // 'd (one s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x65 0x66 0x66    // 'ound eff' \n\t0x65 0x63 0x74 0x20 0x61 0x6E 0x64 0x20    // 'ect and ' \n\t0x6F 0x6E 0x65 0x20 0x6D 0x75 0x73 0x69    // 'one musi' \n\t0x63 0x20 0x73 0x65 0x6C 0x65 0x63 0x74    // 'c select' \n\t0x69 0x6F 0x6E 0x29 0x2E 0x0D 0x0A 0x95    // 'ion).??' \n\t0x09 0x54 0x77 0x6F 0x20 0x73 0x6F 0x75    // '?Two sou' \n\t0x6E 0x64 0x73 0x20 0x74 0x6F 0x20 0x61    // 'nds to a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x2C    // 'n actor,' \n\t0x20 0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F    // ' prop, o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x20 0x20 0x28 0x6F 0x6E 0x65 0x20    // 'd  (one ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x65 0x66    // 'sound ef' \n\t0x66 0x65 0x63 0x74 0x20 0x61 0x6E 0x64    // 'fect and' \n\t0x20 0x6F 0x6E 0x65 0x20 0x73 0x70 0x65    // ' one spe' \n\t0x65 0x63 0x68 0x20 0x72 0x65 0x63 0x6F    // 'ech reco' \n\t0x72 0x64 0x69 0x6E 0x67 0x29 0x2E         // 'rding).' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_77= Tip___Chaining_sounds\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_77, __HELP_NAME(\"Tip:  Chaining sounds\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_77, __HELP_NAME(\"Tip:  Chaining sounds\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_77, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Chaining_sounds\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_77, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_76=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x61 0x01 0x00 0x01    // '????a???' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x5D 0x00 0x00 0x03    // '???]???' \n\t0x00 0x00 0x00 0x00 0x5D 0x00 0x00 0x80    // '????]??' \n\t0x00 0x00 0x02 0x00 0xBE 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0x1D 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xBE 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x43 0x68 0x61    // '???  Cha' \n\t0x69 0x6E 0x69 0x6E 0x67 0x20 0x73 0x6F    // 'ining so' \n\t0x75 0x6E 0x64 0x73 0x20 0x74 0x6F 0x67    // 'unds tog' \n\t0x65 0x74 0x68 0x65 0x72 0x0D 0x0A 0x54    // 'ether??T' \n\t0x6F 0x20 0x63 0x68 0x61 0x69 0x6E 0x20    // 'o chain ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x73 0x20 0x74    // 'sounds t' \n\t0x6F 0x67 0x65 0x74 0x68 0x65 0x72 0x20    // 'ogether ' \n\t0x73 0x6F 0x20 0x74 0x68 0x61 0x74 0x20    // 'so that ' \n\t0x74 0x68 0x65 0x79 0x20 0x70 0x6C 0x61    // 'they pla' \n\t0x79 0x20 0x6F 0x6E 0x65 0x20 0x61 0x66    // 'y one af' \n\t0x74 0x65 0x72 0x20 0x74 0x68 0x65 0x20    // 'ter the ' \n\t0x6F 0x74 0x68 0x65 0x72 0x0D 0x0A 0x31    // 'other??1' \n\t0x09 0x43 0x6C 0x69 0x63 0x6B 0x20 0x50    // '?Click P' \n\t0x6C 0x61 0x79 0x20 0x4F 0x6E 0x63 0x65    // 'lay Once' \n\t0x2E 0x0D 0x0A 0x32 0x09 0x48 0x6F 0x6C    // '.??2?Hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x43    // 'd down C' \n\t0x74 0x72 0x6C 0x20 0x77 0x68 0x65 0x6E    // 'trl when' \n\t0x20 0x79 0x6F 0x75 0x20 0x63 0x6C 0x69    // ' you cli' \n\t0x63 0x6B 0x20 0x74 0x68 0x65 0x20 0x6F    // 'ck the o' \n\t0x62 0x6A 0x65 0x63 0x74 0x20 0x79 0x6F    // 'bject yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x6F 0x20 0x61 0x74 0x74 0x61 0x63 0x68    // 'o attach' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x20 0x74 0x6F 0x2E 0x0D 0x0A    // 'nd to.??' \n\t0x54 0x68 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'The soun' \n\t0x64 0x20 0x69 0x73 0x20 0x63 0x68 0x61    // 'd is cha' \n\t0x69 0x6E 0x65 0x64 0x20 0x74 0x6F 0x20    // 'ined to ' \n\t0x74 0x68 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'the soun' \n\t0x64 0x20 0x74 0x68 0x61 0x74 0x20 0x79    // 'd that y' \n\t0x6F 0x75 0x20 0x70 0x72 0x65 0x76 0x69    // 'ou previ' \n\t0x6F 0x75 0x73 0x6C 0x79 0x20 0x61 0x74    // 'ously at' \n\t0x74 0x61 0x63 0x68 0x65 0x64 0x20 0x74    // 'tached t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x6F 0x62    // 'o the ob' \n\t0x6A 0x65 0x63 0x74 0x2E 0x20 0x20 0x54    // 'ject.  T' \n\t0x68 0x65 0x20 0x6E 0x65 0x77 0x20 0x73    // 'he new s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x70 0x6C 0x61    // 'ound pla' \n\t0x79 0x73 0x20 0x61 0x74 0x20 0x74 0x68    // 'ys at th' \n\t0x65 0x20 0x65 0x6E 0x64 0x20 0x6F 0x66    // 'e end of' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x68 0x61    // ' the cha' \n\t0x69 0x6E 0x2D 0x2D 0x79 0x6F 0x75 0x20    // 'in--you ' \n\t0x63 0x61 0x6E 0x27 0x74 0x20 0x69 0x6E    // 'can't in' \n\t0x73 0x65 0x72 0x74 0x20 0x61 0x20 0x73    // 'sert a s' \n\t0x6F 0x75 0x6E 0x64 0x20 0x69 0x6E 0x20    // 'ound in ' \n\t0x74 0x68 0x65 0x20 0x6D 0x69 0x64 0x64    // 'the midd' \n\t0x6C 0x65 0x2E                             // 'le.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_78= Tip___Reposition_Entire_Path\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_78, __HELP_NAME(\"Tip:  Reposition Entire Path\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_78, __HELP_NAME(\"Tip:  Reposition Entire Path\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_49=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_78, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Reposition_Entire_Path\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_48=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_78, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_46=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_48, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_48=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_48, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x01    // '????@???' \n\t0x01 0x00 0x00 0x00 0xA1 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x03    // '????!???' \n\t0x0A 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x00 0x00 0x00 0x00 0x40 0x00 0x00 0x80    // '????@??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x55 0x00 0x00 0x82    // '????U??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_48=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_48, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x52 0x65 0x70 0x6F    // '??? Repo' \n\t0x73 0x69 0x74 0x69 0x6F 0x6E 0x69 0x6E    // 'sitionin' \n\t0x67 0x20 0x74 0x68 0x65 0x20 0x65 0x6E    // 'g the en' \n\t0x74 0x69 0x72 0x65 0x20 0x70 0x61 0x74    // 'tire pat' \n\t0x68 0x0D 0x0A 0x54 0x6F 0x20 0x72 0x65    // 'h??To re' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x20 0x74 0x68 0x65 0x20 0x65 0x6E 0x74    // ' the ent' \n\t0x69 0x72 0x65 0x20 0x70 0x61 0x74 0x68    // 'ire path' \n\t0x0D 0x0A 0x31 0x09 0x43 0x6C 0x69 0x63    // '??1?Clic' \n\t0x6B 0x20 0x52 0x65 0x70 0x6F 0x73 0x69    // 'k Reposi' \n\t0x74 0x69 0x6F 0x6E 0x2E 0x0D 0x0A 0x32    // 'tion.??2' \n\t0x09 0x48 0x6F 0x6C 0x64 0x20 0x64 0x6F    // '?Hold do' \n\t0x77 0x6E 0x20 0x53 0x68 0x69 0x66 0x74    // 'wn Shift' \n\t0x20 0x61 0x73 0x20 0x79 0x6F 0x75 0x20    // ' as you ' \n\t0x64 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'drag the' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x20    // 'ou want ' \n\t0x69 0x74 0x2E                             // 'it.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_79= Def___Import\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_79, __HELP_NAME(\"Def:  Import\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_79, __HELP_NAME(\"Def:  Import\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_63=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_79, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___Import\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_63=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_79, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_63=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_63, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x08 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_63=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_63, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x6D 0x70 0x6F 0x72 0x74    // '??Import' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x75 0x73 0x65    // '??To use' \n\t0x20 0x61 0x20 0x66 0x69 0x6C 0x65 0x20    // ' a file ' \n\t0x79 0x6F 0x75 0x20 0x63 0x72 0x65 0x61    // 'you crea' \n\t0x74 0x65 0x64 0x20 0x77 0x69 0x74 0x68    // 'ted with' \n\t0x20 0x61 0x6E 0x6F 0x74 0x68 0x65 0x72    // ' another' \n\t0x20 0x70 0x72 0x6F 0x67 0x72 0x61 0x6D    // ' program' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7A= Def___transitions\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7A, __HELP_NAME(\"Def:  transitions\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7A, __HELP_NAME(\"Def:  transitions\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Def___transitions\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9F 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_72=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7E, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSOTransition1 __HELP_SYMBOL( STN \"mbmpSOTransition1\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSOTransition2 __HELP_SYMBOL( STN \"mbmpSOTransition2\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSOTransition3 __HELP_SYMBOL( STN \"mbmpSOTransition3\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpSOTransition4 __HELP_SYMBOL( STN \"mbmpSOTransition4\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x10 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0xFD 0x00 0x00 0x1B 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x01    // '????????' \n\t0x01 0xFD 0x00 0x00 0x27 0x00 0x00 0x01    // '???'???' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x01 0xFD 0x00 0x00 0x3E 0x00 0x00 0x01    // '???>???' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x01 0xFD 0x00 0x00 0x55 0x00 0x00 0x01    // '???U???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x40 0x00 0x00 0x82    // '????@??' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x1D 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x29 0x00 0x00 0xC0    // '????)??' \n\t0x03 0x00 0x00 0x00 0x40 0x00 0x00 0xC0    // '????@??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7E, 0x0)\n\tBYTE\n\t0x03 0x03 0x74 0x72 0x61 0x6E 0x73 0x69    // '??transi' \n\t0x74 0x69 0x6F 0x6E 0x73 0x0D 0x0A 0x01    // 'tions???' \n\t0x09 0x43 0x75 0x74 0x20 0x74 0x6F 0x20    // '?Cut to ' \n\t0x62 0x6C 0x61 0x63 0x6B 0x0D 0x0A 0x01    // 'black???' \n\t0x09 0x44 0x69 0x73 0x73 0x6F 0x6C 0x76    // '?Dissolv' \n\t0x65 0x0D 0x0A 0x01 0x09 0x44 0x69 0x73    // 'e????Dis' \n\t0x73 0x6F 0x6C 0x76 0x65 0x20 0x77 0x69    // 'solve wi' \n\t0x74 0x68 0x20 0x62 0x6C 0x61 0x63 0x6B    // 'th black' \n\t0x0D 0x0A 0x01 0x09 0x44 0x69 0x73 0x73    // '????Diss' \n\t0x6F 0x6C 0x76 0x65 0x20 0x77 0x69 0x74    // 'olve wit' \n\t0x68 0x20 0x77 0x68 0x69 0x74 0x65         // 'h white' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7B= thRemoveSound\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7B, __HELP_NAME(\"thRemoveSound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7B, __HELP_NAME(\"thRemoveSound\")) __HELP_PACK2\n\tBO OSK LONG kgobHelpBookToolTopics 0x0 kidHelpAnchor kidPlayHelpSounds 0x0 0x0 0x57415645 kwavToolHelp7B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobHelpBookToolTopics\"\n\tITEM\n\t\t\"thRemoveSound\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidHelpAnchor\"\n\tITEM\n\t\t\"kidPlayHelpSounds\"\n\tITEM\n\t\t\"kwavToolHelp7B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xFE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_55=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5C, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR BYTE 3 LONG Tip___Undo __HELP_SYMBOL( STN \"Tip___Undo\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG Def___Go_to_the_place __HELP_SYMBOL( STN \"Def___Go_to_the_place\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG Def___Cut_Copy_Paste __HELP_SYMBOL( STN \"Def___Cut_Copy_Paste\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpNukeSound __HELP_SYMBOL( STN \"mbmpNukeSound\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobTipGem 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobTipGem\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x23 0x00 0x00 0x00 0x01 0x00 0x00 0x01    // '#???????' \n\t0x01 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0xF6 0x00 0x00 0x0E 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x00 0x00 0x8B 0x01 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x02    // '????6???' \n\t0x00 0x00 0x00 0x00 0x01 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x02 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x0A 0x00 0x00 0xFD 0x49 0x00 0x00 0x03    // '???I???' \n\t0x0F 0x00 0x00 0xFD 0x8F 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x01 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x42 0x01 0x00 0x03    // '???B???' \n\t0x00 0x00 0x00 0x00 0x83 0x01 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x8B 0x01 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x91 0x00 0x00 0x04    // '???????' \n\t0x0D 0x00 0x00 0xFE 0xA0 0x00 0x00 0x04    // '??????' \n\t0x00 0x00 0x00 0x00 0x0E 0x01 0x00 0x04    // '????????' \n\t0x0D 0x00 0x00 0xFE 0x26 0x01 0x00 0x04    // '???&???' \n\t0x00 0x00 0x00 0x00 0x91 0x00 0x00 0x40    // '??????@' \n\t0x03 0x00 0x00 0x00 0xA0 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x0E 0x01 0x00 0x40    // '???????@' \n\t0x04 0x00 0x00 0x00 0x26 0x01 0x00 0x40    // '????&??@' \n\t0x00 0x00 0x00 0x00 0x85 0x01 0x00 0x40    // '??????@' \n\t0x02 0x00 0x00 0x00 0x8B 0x01 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x4B 0x00 0x00 0x80    // '????K??' \n\t0x00 0x00 0x02 0x00 0x85 0x01 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x85 0x01 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x05 0x00 0x00 0x00 0x85 0x01 0x00 0xC0    // '??????' \n\t0x07 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5C, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x52 0x65 0x6D 0x6F    // '??? Remo' \n\t0x76 0x65 0x20 0x53 0x6F 0x75 0x6E 0x64    // 've Sound' \n\t0x0D 0x0A 0x52 0x65 0x6D 0x6F 0x76 0x65    // '??Remove' \n\t0x20 0x61 0x20 0x73 0x6F 0x75 0x6E 0x64    // ' a sound' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x74 0x68    // ' from th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x73 0x63 0x65 0x6E 0x65 0x2E    // 't scene.' \n\t0x0D 0x0A 0x54 0x6F 0x20 0x72 0x65 0x6D    // '??To rem' \n\t0x6F 0x76 0x65 0x20 0x61 0x20 0x73 0x6F    // 'ove a so' \n\t0x75 0x6E 0x64 0x0D 0x0A 0x31 0x09 0x49    // 'und??1?I' \n\t0x66 0x20 0x79 0x6F 0x75 0x20 0x73 0x65    // 'f you se' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x53 0x6F    // 'e the So' \n\t0x75 0x6E 0x64 0x73 0x20 0x62 0x75 0x74    // 'unds but' \n\t0x74 0x6F 0x6E 0x20 0x61 0x74 0x20 0x74    // 'ton at t' \n\t0x68 0x65 0x20 0x74 0x6F 0x70 0x20 0x6F    // 'he top o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x73 0x63    // 'f the sc' \n\t0x72 0x65 0x65 0x6E 0x2C 0x20 0x63 0x6C    // 'reen, cl' \n\t0x69 0x63 0x6B 0x20 0x69 0x74 0x2E 0x0D    // 'ick it.?' \n\t0x0A 0x32 0x09 0x47 0x6F 0x20 0x74 0x6F    // '?2?Go to' \n\t0x20 0x74 0x68 0x65 0x20 0x70 0x6C 0x61    // ' the pla' \n\t0x63 0x65 0x20 0x69 0x6E 0x20 0x79 0x6F    // 'ce in yo' \n\t0x75 0x72 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ur movie' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x74    // ' where t' \n\t0x68 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'he sound' \n\t0x20 0x62 0x65 0x67 0x69 0x6E 0x73 0x2E    // ' begins.' \n\t0x20 0x20 0x20 0x59 0x6F 0x75 0x27 0x6C    // '   You'l' \n\t0x6C 0x20 0x68 0x65 0x61 0x72 0x20 0x74    // 'l hear t' \n\t0x68 0x65 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'he sound' \n\t0x73 0x20 0x61 0x73 0x20 0x79 0x6F 0x75    // 's as you' \n\t0x20 0x6D 0x6F 0x76 0x65 0x20 0x66 0x72    // ' move fr' \n\t0x6F 0x6D 0x20 0x66 0x72 0x61 0x6D 0x65    // 'om frame' \n\t0x20 0x74 0x6F 0x20 0x66 0x72 0x61 0x6D    // ' to fram' \n\t0x65 0x2E 0x0D 0x0A 0x33 0x09 0x43 0x6C    // 'e.??3?Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x68 0x65 0x20    // 'ick the ' \n\t0x43 0x75 0x74 0x2C 0x20 0x43 0x6F 0x70    // 'Cut, Cop' \n\t0x79 0x2C 0x20 0x26 0x20 0x50 0x61 0x73    // 'y, & Pas' \n\t0x74 0x65 0x20 0x54 0x6F 0x6F 0x6C 0x73    // 'te Tools' \n\t0x2E 0x0D 0x0A 0x34 0x09 0x43 0x6C 0x69    // '.??4?Cli' \n\t0x63 0x6B 0x20 0x52 0x65 0x6D 0x6F 0x76    // 'ck Remov' \n\t0x65 0x20 0x53 0x6F 0x75 0x6E 0x64 0x2E    // 'e Sound.' \n\t0x0D 0x0A 0x35 0x09 0x43 0x6C 0x69 0x63    // '??5?Clic' \n\t0x6B 0x20 0x74 0x68 0x65 0x20 0x33 0x44    // 'k the 3D' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x20    // ' object ' \n\t0x6F 0x72 0x20 0x62 0x61 0x63 0x6B 0x67    // 'or backg' \n\t0x72 0x6F 0x75 0x6E 0x64 0x20 0x77 0x68    // 'round wh' \n\t0x6F 0x73 0x65 0x20 0x73 0x6F 0x75 0x6E    // 'ose soun' \n\t0x64 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'd you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x72 0x65    // 'nt to re' \n\t0x6D 0x6F 0x76 0x65 0x2E 0x0D 0x0A 0x01    // 'move.???' \n\t0x20 0x55 0x6E 0x64 0x6F                   // ' Undo' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7C= Key___Map\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7C, __HELP_NAME(\"Key:  Map\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7C, __HELP_NAME(\"Key:  Map\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Key___Map\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x88 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_77=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7A, 0x0)\nAG(4)\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1020_bmp __HELP_SYMBOL( STN \"helppic1020_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0F 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x13 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x1D 0x00 0x00 0x03    // '???????' \n\t0x0A 0x00 0x00 0xFD 0x21 0x00 0x00 0x03    // '???!???' \n\t0x0F 0x00 0x00 0xFD 0x22 0x00 0x00 0x03    // '???\"???' \n\t0x0A 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x0F 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x11 0x00 0x00 0x82    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7A, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x53 0x68 0x6F    // '???  Sho' \n\t0x72 0x74 0x63 0x75 0x74 0x20 0x6B 0x65    // 'rtcut ke' \n\t0x79 0x0D 0x0A 0x95 0x09 0x48 0x6F 0x6C    // 'y???Hol' \n\t0x64 0x20 0x64 0x6F 0x77 0x6E 0x20 0x43    // 'd down C' \n\t0x74 0x72 0x6C 0x2B 0x4D 0x2E              // 'trl+M.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7D= Tip___Making_words_scroll\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7D, __HELP_NAME(\"Tip:  Making words scroll\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7D, __HELP_NAME(\"Tip:  Making words scroll\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_80=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Making_words_scroll\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_80=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x21 0x01 0x00 0x00    // '????!???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_80, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\n\tFREE\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpPlay __HELP_SYMBOL( STN \"mbmpPlay\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_80=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_80, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0xFC 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0x26 0x01 0x00 0x01    // '???&???' \n\t0x01 0x00 0x00 0x00 0x27 0x01 0x00 0x01    // '????'???' \n\t0x00 0x00 0x00 0x00 0x17 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x2E 0x00 0x00 0x03    // '???.???' \n\t0x0F 0x00 0x00 0xFD 0x27 0x01 0x00 0x03    // '???'???' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x80    // '????.??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xFC 0x00 0x00 0x82    // '??????' \n\t0xFB 0xFF 0x00 0x00 0x00 0x00 0x00 0xC0    // '?????' \n\t0x01 0x00 0x00 0x00 0x26 0x01 0x00 0xC0    // '????&??' \n\t0x03 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_80=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_80, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x09 0x4D 0x61 0x6B 0x69    // '????Maki' \n\t0x6E 0x67 0x20 0x63 0x72 0x65 0x64 0x69    // 'ng credi' \n\t0x74 0x73 0x20 0x73 0x63 0x72 0x6F 0x6C    // 'ts scrol' \n\t0x6C 0x0D 0x0A 0x54 0x6F 0x20 0x73 0x65    // 'l??To se' \n\t0x65 0x20 0x77 0x6F 0x72 0x64 0x73 0x20    // 'e words ' \n\t0x73 0x63 0x72 0x6F 0x6C 0x6C 0x0D 0x0A    // 'scroll??' \n\t0x31 0x09 0x54 0x79 0x70 0x65 0x20 0x65    // '1?Type e' \n\t0x6E 0x6F 0x75 0x67 0x68 0x20 0x77 0x6F    // 'nough wo' \n\t0x72 0x64 0x73 0x20 0x74 0x6F 0x20 0x66    // 'rds to f' \n\t0x69 0x6C 0x6C 0x20 0x75 0x70 0x20 0x74    // 'ill up t' \n\t0x68 0x65 0x20 0x63 0x72 0x65 0x64 0x69    // 'he credi' \n\t0x74 0x73 0x20 0x62 0x6F 0x78 0x2E 0x0D    // 'ts box.?' \n\t0x0A 0x32 0x09 0x49 0x66 0x20 0x79 0x6F    // '?2?If yo' \n\t0x75 0x20 0x77 0x61 0x6E 0x74 0x20 0x74    // 'u want t' \n\t0x68 0x65 0x20 0x77 0x6F 0x72 0x64 0x73    // 'he words' \n\t0x20 0x74 0x6F 0x20 0x73 0x63 0x72 0x6F    // ' to scro' \n\t0x6C 0x6C 0x20 0x63 0x6F 0x6D 0x70 0x6C    // 'll compl' \n\t0x65 0x74 0x65 0x6C 0x79 0x20 0x6F 0x66    // 'etely of' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x73 0x63    // 'f the sc' \n\t0x72 0x65 0x65 0x6E 0x2C 0x20 0x61 0x64    // 'reen, ad' \n\t0x64 0x20 0x62 0x6C 0x61 0x6E 0x6B 0x20    // 'd blank ' \n\t0x6C 0x69 0x6E 0x65 0x73 0x20 0x74 0x6F    // 'lines to' \n\t0x20 0x74 0x68 0x65 0x20 0x63 0x72 0x65    // ' the cre' \n\t0x64 0x69 0x74 0x73 0x20 0x62 0x6F 0x78    // 'dits box' \n\t0x20 0x62 0x79 0x20 0x70 0x72 0x65 0x73    // ' by pres' \n\t0x73 0x69 0x6E 0x67 0x20 0x45 0x6E 0x74    // 'sing Ent' \n\t0x65 0x72 0x20 0x75 0x6E 0x74 0x69 0x6C    // 'er until' \n\t0x20 0x79 0x6F 0x75 0x20 0x6E 0x6F 0x20    // ' you no ' \n\t0x6C 0x6F 0x6E 0x67 0x65 0x72 0x20 0x73    // 'longer s' \n\t0x65 0x65 0x20 0x61 0x6E 0x79 0x20 0x6F    // 'ee any o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x77 0x6F    // 'f the wo' \n\t0x72 0x64 0x73 0x2E 0x0D 0x0A 0x33 0x09    // 'rds.??3?' \n\t0x57 0x68 0x65 0x6E 0x20 0x79 0x6F 0x75    // 'When you' \n\t0x27 0x72 0x65 0x20 0x64 0x6F 0x6E 0x65    // ''re done' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x65 0x20 0x50 0x6C 0x61 0x79    // 'the Play' \n\t0x20 0x62 0x75 0x74 0x74 0x6F 0x6E 0x2D    // ' button-' \n\t0x01                                       // '?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_83= Tip___Move_Up_or_Down_3\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_83, __HELP_NAME(\"Tip:  Move Up or Down 3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_83, __HELP_NAME(\"Tip:  Move Up or Down 3\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_83, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Move_Up_or_Down_3\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_83, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_36=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x01 0x00 0x00 0x00 0x63 0x00 0x00 0x01    // '????c???' \n\t0x00 0x00 0x00 0x00 0x65 0x00 0x00 0x01    // '????e???' \n\t0x01 0x00 0x00 0x00 0x96 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x03    // '????&???' \n\t0x0A 0x00 0x00 0xFD 0x63 0x00 0x00 0x03    // '???c???' \n\t0x00 0x00 0x00 0x00 0x65 0x00 0x00 0x80    // '????e??' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x65 0x00 0x00 0x82    // '????e??' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x20 0x4D 0x6F 0x76    // '???  Mov' \n\t0x69 0x6E 0x67 0x20 0x75 0x70 0x20 0x6F    // 'ing up o' \n\t0x72 0x20 0x64 0x6F 0x77 0x6E 0x20 0x61    // 'r down a' \n\t0x6E 0x64 0x20 0x6E 0x65 0x61 0x72 0x20    // 'nd near ' \n\t0x6F 0x72 0x20 0x66 0x61 0x72 0x0D 0x0A    // 'or far??' \n\t0x54 0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20    // 'To move ' \n\t0x61 0x6E 0x20 0x61 0x63 0x74 0x6F 0x72    // 'an actor' \n\t0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C 0x20    // ', prop, ' \n\t0x6F 0x72 0x20 0x33 0x44 0x20 0x77 0x6F    // 'or 3D wo' \n\t0x72 0x64 0x20 0x75 0x70 0x20 0x6F 0x72    // 'rd up or' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x61 0x6E    // ' down an' \n\t0x64 0x20 0x6E 0x65 0x61 0x72 0x20 0x6F    // 'd near o' \n\t0x72 0x20 0x66 0x61 0x72 0x0D 0x0A 0x95    // 'r far??' \n\t0x09 0x48 0x6F 0x6C 0x64 0x20 0x64 0x6F    // '?Hold do' \n\t0x77 0x6E 0x20 0x74 0x68 0x65 0x20 0x55    // 'wn the U' \n\t0x70 0x20 0x6F 0x72 0x20 0x44 0x6F 0x77    // 'p or Dow' \n\t0x6E 0x20 0x41 0x72 0x72 0x6F 0x77 0x20    // 'n Arrow ' \n\t0x6B 0x65 0x79 0x20 0x61 0x73 0x20 0x79    // 'key as y' \n\t0x6F 0x75 0x20 0x64 0x72 0x61 0x67 0x2E    // 'ou drag.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_92= Tip___Path_through_ground\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_92, __HELP_NAME(\"Tip:  Path through ground\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_92, __HELP_NAME(\"Tip:  Path through ground\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonHotHelp 0x0 0x0 0xFFFFFFFF 0x140 0xF0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_92, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonHotHelp\"\n\tITEM\n\t\t\"Tip___Path_through_ground\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_92, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_74=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' mbmpActorsGround __HELP_SYMBOL( STN \"mbmpActorsGround\" )\n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'MBMP' helppic1016_bmp __HELP_SYMBOL( STN \"helppic1016_bmp\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x12 0x00 0x00 0x00 0x02 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x01    // '????%???' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x01    // '????b???' \n\t0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x01    // '????d???' \n\t0x01 0x00 0x00 0x00 0x87 0x00 0x00 0x01    // '???????' \n\t0x01 0xF1 0x00 0x00 0x88 0x00 0x00 0x01    // '??????' \n\t0x01 0xF6 0x00 0x00 0x8F 0x00 0x00 0x01    // '??????' \n\t0x01 0x00 0x00 0x00 0x1C 0x01 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x25 0x00 0x00 0x03    // '????%???' \n\t0x0A 0x00 0x00 0xFD 0x62 0x00 0x00 0x03    // '???b???' \n\t0x00 0x00 0x00 0x00 0x64 0x00 0x00 0x80    // '????d??' \n\t0x00 0x00 0x02 0x00 0x92 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x03 0x00 0xC8 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0xC8 0x00 0x00 0x82    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xC0    // '???????' \n\t0x02 0x00 0x00 0x00 0x8F 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x01 0x20 0x4D 0x6F 0x76 0x69    // '??? Movi' \n\t0x6E 0x67 0x20 0x74 0x68 0x72 0x6F 0x75    // 'ng throu' \n\t0x67 0x68 0x20 0x74 0x68 0x65 0x20 0x67    // 'gh the g' \n\t0x72 0x6F 0x75 0x6E 0x64 0x20 0x73 0x75    // 'round su' \n\t0x72 0x66 0x61 0x63 0x65 0x0D 0x0A 0x54    // 'rface??T' \n\t0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20 0x61    // 'o move a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x2C    // 'n actor,' \n\t0x20 0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F    // ' prop, o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x20 0x74 0x68 0x72 0x6F 0x75 0x67    // 'd throug' \n\t0x68 0x20 0x74 0x68 0x65 0x20 0x67 0x72    // 'h the gr' \n\t0x6F 0x75 0x6E 0x64 0x20 0x73 0x75 0x72    // 'ound sur' \n\t0x66 0x61 0x63 0x65 0x0D 0x0A 0x31 0x09    // 'face??1?' \n\t0x22 0x54 0x75 0x72 0x6E 0x20 0x6F 0x6E    // '\"Turn on' \n\t0x22 0x20 0x74 0x68 0x65 0x20 0x46 0x61    // '\" the Fa' \n\t0x6C 0x6C 0x20 0x54 0x68 0x72 0x6F 0x75    // 'll Throu' \n\t0x67 0x68 0x20 0x47 0x72 0x6F 0x75 0x6E    // 'gh Groun' \n\t0x64 0x20 0x62 0x75 0x74 0x74 0x6F 0x6E    // 'd button' \n\t0x2D 0x01 0x0D 0x0A 0x57 0x68 0x65 0x6E    // '-???When' \n\t0x20 0x22 0x6F 0x6E 0x2C 0x22 0x20 0x74    // ' \"on,\" t' \n\t0x68 0x65 0x20 0x62 0x75 0x74 0x74 0x6F    // 'he butto' \n\t0x6E 0x20 0x69 0x73 0x20 0x70 0x75 0x73    // 'n is pus' \n\t0x68 0x65 0x64 0x20 0x69 0x6E 0x20 0x61    // 'hed in a' \n\t0x6E 0x64 0x20 0x69 0x74 0x20 0x6C 0x69    // 'nd it li' \n\t0x67 0x68 0x74 0x73 0x20 0x75 0x70 0x2E    // 'ghts up.' \n\t0x0D 0x0A 0x32 0x09 0x48 0x6F 0x6C 0x64    // '??2?Hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x74 0x68    // ' down th' \n\t0x65 0x20 0x44 0x6F 0x77 0x6E 0x20 0x41    // 'e Down A' \n\t0x72 0x72 0x6F 0x77 0x20 0x6B 0x65 0x79    // 'rrow key' \n\t0x20 0x61 0x73 0x20 0x79 0x6F 0x75 0x20    // ' as you ' \n\t0x64 0x72 0x61 0x67 0x20 0x74 0x68 0x65    // 'drag the' \n\t0x20 0x33 0x44 0x20 0x6F 0x62 0x6A 0x65    // ' 3D obje' \n\t0x63 0x74 0x20 0x74 0x68 0x72 0x6F 0x75    // 'ct throu' \n\t0x67 0x68 0x20 0x74 0x68 0x65 0x20 0x67    // 'gh the g' \n\t0x72 0x6F 0x75 0x6E 0x64 0x20 0x73 0x75    // 'round su' \n\t0x72 0x66 0x61 0x63 0x65 0x2E              // 'rface.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/tooltips.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= kttSettingsCover\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"ttScenes\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"ttScenes\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTipAO 0x0 kidSettingsCover kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips00\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTipAO\"\n\tITEM\n\t\t\"kttSettingsCover\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSettingsCover\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips00\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3B, 0x0)\n\tBYTE\n\t0x03 0x03                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= kttSettingsBrowser\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"ttSceneChoices\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"ttSceneChoices\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidSettingsBrowser kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips01\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttSettingsBrowser\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSettingsBrowser\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips01\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x63 0x65 0x6E 0x65 0x20    // '??Scene ' \n\t0x43 0x68 0x6F 0x69 0x63 0x65 0x73 0x0D    // 'Choices?' \n\t0x0A 0x43 0x68 0x6F 0x6F 0x73 0x65 0x20    // '?Choose ' \n\t0x66 0x72 0x6F 0x6D 0x20 0x6D 0x61 0x6E    // 'from man' \n\t0x79 0x20 0x64 0x69 0x66 0x66 0x65 0x72    // 'y differ' \n\t0x65 0x6E 0x74 0x20 0x73 0x63 0x65 0x6E    // 'ent scen' \n\t0x65 0x73 0x21                             // 'es!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= kttSettingsCameras\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"ttCameraAngles\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"ttCameraAngles\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidSettingsCameras kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips02\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttSettingsCameras\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSettingsCameras\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips02\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_40=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x01    // '????C???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x02    // '????\"???' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x02    // '????-???' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x02    // '????C???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x61 0x6D 0x65 0x72 0x61    // '??Camera' \n\t0x20 0x41 0x6E 0x67 0x6C 0x65 0x73 0x0D    // ' Angles?' \n\t0x0A 0x43 0x68 0x6F 0x6F 0x73 0x65 0x20    // '?Choose ' \n\t0x61 0x20 0x64 0x69 0x66 0x66 0x65 0x72    // 'a differ' \n\t0x65 0x6E 0x74 0x20 0x63 0x61 0x6D 0x65    // 'ent came' \n\t0x72 0x61 0x20 0x76 0x69 0x65 0x77 0x20    // 'ra view ' \n\t0x6F 0x66 0x20 0x74 0x68 0x65 0x20 0x63    // 'of the c' \n\t0x75 0x72 0x72 0x65 0x6E 0x74 0x20 0x73    // 'urrent s' \n\t0x63 0x65 0x6E 0x65 0x2E                   // 'cene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= kttSceneBackground\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"ttSceneSlider\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"ttSceneSlider\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidSceneBackground kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips03\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttSceneBackground\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSceneBackground\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips03\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x02    // '????'???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x63 0x65 0x6E 0x65 0x20    // '??Scene ' \n\t0x53 0x6C 0x69 0x64 0x65 0x72 0x0D 0x0A    // 'Slider??' \n\t0x4D 0x6F 0x76 0x65 0x20 0x66 0x72 0x6F    // 'Move fro' \n\t0x6D 0x20 0x73 0x63 0x65 0x6E 0x65 0x20    // 'm scene ' \n\t0x74 0x6F 0x20 0x73 0x63 0x65 0x6E 0x65    // 'to scene' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= kttActorsCover\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"ttActorsProps\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"ttActorsProps\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTipAO 0x0 kidActorsCover kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips04\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTipAO\"\n\tITEM\n\t\t\"kttActorsCover\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsCover\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips04\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= kttActorsBrowser\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"ttActors\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"ttActors\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsBrowser kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips05\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_34=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsBrowser\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsBrowser\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips05\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_34=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_34=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x02    // '????#???' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x02    // '????$???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_34=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_34, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x63 0x74 0x6F 0x72 0x73    // '??Actors' \n\t0x0D 0x0A 0x43 0x68 0x6F 0x6F 0x73 0x65    // '??Choose' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x6D 0x61    // ' from ma' \n\t0x6E 0x79 0x20 0x63 0x68 0x61 0x72 0x61    // 'ny chara' \n\t0x63 0x74 0x65 0x72 0x73 0x21              // 'cters!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= kttSceneSorter\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"ttSceneOrganizer\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"ttSceneOrganizer\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidSceneSorter kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips06\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttSceneSorter\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSceneSorter\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips06\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x90 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_30=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x3C 0x00 0x00 0x02    // '????<???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x63 0x65 0x6E 0x65 0x20    // '??Scene ' \n\t0x4F 0x72 0x67 0x61 0x6E 0x69 0x7A 0x65    // 'Organize' \n\t0x72 0x0D 0x0A 0x43 0x68 0x61 0x6E 0x67    // 'r??Chang' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x73 0x63    // 'e the sc' \n\t0x65 0x6E 0x65 0x20 0x6F 0x72 0x64 0x65    // 'ene orde' \n\t0x72 0x20 0x61 0x6E 0x64 0x20 0x61 0x64    // 'r and ad' \n\t0x64 0x20 0x74 0x72 0x61 0x6E 0x73 0x69    // 'd transi' \n\t0x74 0x69 0x6F 0x6E 0x73 0x2E              // 'tions.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= kttActorsPropBrowser\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"ttProps\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"ttProps\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsPropBrowser kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips07\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsPropBrowser\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsPropBrowser\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips07\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_36=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2A 0x00 0x00 0x01    // '????*???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x16 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3C, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x72 0x6F 0x70 0x73 0x20    // '??Props ' \n\t0x0D 0x0A 0x41 0x64 0x64 0x20 0x70 0x72    // '??Add pr' \n\t0x6F 0x70 0x73 0x20 0x6C 0x69 0x6B 0x65    // 'ops like' \n\t0x20 0x66 0x75 0x72 0x6E 0x69 0x74 0x75    // ' furnitu' \n\t0x72 0x65 0x20 0x61 0x6E 0x64 0x20 0x63    // 're and c' \n\t0x61 0x72 0x73 0x21                        // 'ars!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_8= kttActorsSpletters\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"tt3DWords\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_8, __HELP_NAME(\"tt3DWords\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsSpletters kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips08\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_48=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsSpletters\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsSpletters\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips08\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_48=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x86 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_37=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_48, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_48=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_48, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x31 0x00 0x00 0x01    // '????1???' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x31 0x00 0x00 0x02    // '????1???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_48=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_48, 0x0)\n\tBYTE\n\t0x03 0x03 0x33 0x44 0x20 0x57 0x6F 0x72    // '??3D Wor' \n\t0x64 0x73 0x0D 0x0A 0x43 0x72 0x65 0x61    // 'ds??Crea' \n\t0x74 0x65 0x20 0x33 0x44 0x20 0x77 0x6F    // 'te 3D wo' \n\t0x72 0x64 0x73 0x20 0x74 0x68 0x61 0x74    // 'rds that' \n\t0x20 0x63 0x61 0x6E 0x20 0x73 0x70 0x69    // ' can spi' \n\t0x6E 0x20 0x61 0x6E 0x64 0x20 0x6D 0x6F    // 'n and mo' \n\t0x76 0x65 0x21                             // 've!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_9= kttActorsCostume\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"ttCostumeChanger\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_9, __HELP_NAME(\"ttCostumeChanger\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsCostume kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips09\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsCostume\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsCostume\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips09\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_18=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4C 0x00 0x00 0x01    // '????L???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x4C 0x00 0x00 0x02    // '????L???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x73 0x74 0x75 0x6D    // '??Costum' \n\t0x65 0x20 0x43 0x68 0x61 0x6E 0x67 0x65    // 'e Change' \n\t0x72 0x0D 0x0A 0x43 0x68 0x61 0x6E 0x67    // 'r??Chang' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x77 0x61    // 'e the wa' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'y the ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x79 0x6F    // ' word yo' \n\t0x75 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // 'u click ' \n\t0x6C 0x6F 0x6F 0x6B 0x73 0x21              // 'looks!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_A= kttActorsTransform\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"ttSizeTools\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_A, __HELP_NAME(\"ttSizeTools\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsTransform kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips0A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_49=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsTransform\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsTransform\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips0A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_49=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x68 0x00 0x00 0x00    // '????h???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_44=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_49=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2E 0x00 0x00 0x01    // '????.???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x12 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x26 0x00 0x00 0x02    // '????&???' \n\t0x00 0x00 0x00 0x00 0x2D 0x00 0x00 0x02    // '????-???' \n\t0x01 0x00 0x00 0x00 0x2E 0x00 0x00 0x02    // '????.???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x2E 0x00 0x00 0x03    // '???.???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_49=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_49, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x69 0x7A 0x65 0x20 0x54    // '??Size T' \n\t0x6F 0x6F 0x6C 0x73 0x0D 0x0A 0x52 0x65    // 'ools??Re' \n\t0x73 0x69 0x7A 0x65 0x20 0x61 0x6E 0x20    // 'size an ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2C 0x20 0x70    // 'actor, p' \n\t0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20    // 'rop, or ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x21    // '3D word!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_B= kttActorsShrink\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"ttSizeEvenly\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_B, __HELP_NAME(\"ttSizeEvenly\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidActorsShrink kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips0B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_44=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttActorsShrink\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsShrink\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips0B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_44=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x84 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_44, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_44=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_44, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x02    // '????#???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_44=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_44, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x69 0x7A 0x65 0x20 0x45    // '??Size E' \n\t0x76 0x65 0x6E 0x6C 0x79 0x0D 0x0A 0x45    // 'venly??E' \n\t0x76 0x65 0x6E 0x6C 0x79 0x20 0x67 0x72    // 'venly gr' \n\t0x6F 0x77 0x20 0x6F 0x72 0x20 0x73 0x68    // 'ow or sh' \n\t0x72 0x69 0x6E 0x6B 0x2E                   // 'rink.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_C= kttActorsSquash\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"ttSquashStretch\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_C, __HELP_NAME(\"ttSquashStretch\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidActorsSquash kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips0C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_29=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttActorsSquash\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsSquash\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips0C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_29=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x92 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_25=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_29=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x07 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x3F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_29=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x71 0x75 0x61 0x73 0x68    // '??Squash' \n\t0x20 0x26 0x20 0x53 0x74 0x72 0x65 0x74    // ' & Stret' \n\t0x63 0x68 0x0D 0x0A 0x4D 0x61 0x6B 0x65    // 'ch??Make' \n\t0x20 0x73 0x68 0x6F 0x72 0x74 0x65 0x72    // ' shorter' \n\t0x20 0x61 0x6E 0x64 0x20 0x77 0x69 0x64    // ' and wid' \n\t0x65 0x72 0x20 0x6F 0x72 0x20 0x74 0x61    // 'er or ta' \n\t0x6C 0x6C 0x65 0x72 0x20 0x61 0x6E 0x64    // 'ller and' \n\t0x20 0x74 0x68 0x69 0x6E 0x6E 0x65 0x72    // ' thinner' \n\t0x21                                       // '!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_D= kttActorsTransformNorm\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"ttChangeBackSize\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_D, __HELP_NAME(\"ttChangeBackSize\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidActorsTransformNorm kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips0D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttActorsTransformNorm\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsTransformNorm\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips0D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x49 0x00 0x00 0x01    // '????I???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x02    // '????.???' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x02    // '????7???' \n\t0x00 0x00 0x00 0x00 0x43 0x00 0x00 0x02    // '????C???' \n\t0x01 0x00 0x00 0x00 0x49 0x00 0x00 0x02    // '????I???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x65    // '??Change' \n\t0x20 0x42 0x61 0x63 0x6B 0x0D 0x0A 0x43    // ' Back??C' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x61 0x6E    // 'hange an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x62 0x61 0x63 0x6B 0x20 0x74 0x6F    // ' back to' \n\t0x20 0x69 0x74 0x73 0x20 0x6F 0x72 0x69    // ' its ori' \n\t0x67 0x69 0x6E 0x61 0x6C 0x20 0x73 0x69    // 'ginal si' \n\t0x7A 0x65 0x2E                             // 'ze.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_E= kttActorsRotate\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"ttRotateTools\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_E, __HELP_NAME(\"ttRotateTools\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsRotate kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips0E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsRotate\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsRotate\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips0E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_10=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x44 0x00 0x00 0x01    // '????D???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x02    // '????6???' \n\t0x00 0x00 0x00 0x00 0x3E 0x00 0x00 0x02    // '????>???' \n\t0x01 0x00 0x00 0x00 0x44 0x00 0x00 0x02    // '????D???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x44 0x00 0x00 0x03    // '???D???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x6F 0x74 0x61 0x74 0x65    // '??Rotate' \n\t0x20 0x54 0x6F 0x6F 0x6C 0x73 0x0D 0x0A    // ' Tools??' \n\t0x43 0x68 0x61 0x6E 0x67 0x65 0x20 0x74    // 'Change t' \n\t0x68 0x65 0x20 0x64 0x69 0x72 0x65 0x63    // 'he direc' \n\t0x74 0x69 0x6F 0x6E 0x20 0x61 0x6E 0x20    // 'tion an ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2C 0x20 0x70    // 'actor, p' \n\t0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20    // 'rop, or ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x20    // '3D word ' \n\t0x66 0x61 0x63 0x65 0x73 0x2E              // 'faces.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_F= kttActorsRotateY\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"ttTurnLeftRight\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_F, __HELP_NAME(\"ttTurnLeftRight\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsRotateY kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips0F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsRotateY\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsRotateY\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips0F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x86 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x55 0x00 0x00 0x01    // '????U???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x55 0x00 0x00 0x03    // '???U???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x75 0x72 0x6E 0x20 0x4C    // '??Turn L' \n\t0x65 0x66 0x74 0x20 0x6F 0x72 0x20 0x52    // 'eft or R' \n\t0x69 0x67 0x68 0x74 0x0D 0x0A 0x54 0x75    // 'ight??Tu' \n\t0x72 0x6E 0x20 0x6C 0x65 0x66 0x74 0x20    // 'rn left ' \n\t0x6F 0x72 0x20 0x72 0x69 0x67 0x68 0x74    // 'or right' \n\t0x2E 0x0D 0x0A 0x50 0x2E 0x53 0x2E 0x20    // '.??P.S. ' \n\t0x20 0x48 0x6F 0x6C 0x64 0x20 0x64 0x6F    // ' Hold do' \n\t0x77 0x6E 0x20 0x43 0x74 0x72 0x6C 0x20    // 'wn Ctrl ' \n\t0x74 0x6F 0x20 0x6D 0x61 0x6B 0x65 0x20    // 'to make ' \n\t0x69 0x74 0x20 0x6C 0x61 0x73 0x74 0x20    // 'it last ' \n\t0x6C 0x6F 0x6E 0x67 0x65 0x72 0x2E         // 'longer.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_10= kttActorsRotateX\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"ttTipForwardBack\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_10, __HELP_NAME(\"ttTipForwardBack\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsRotateX kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips10\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsRotateX\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsRotateX\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips10\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x89 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x57 0x00 0x00 0x01    // '????W???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x19 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x57 0x00 0x00 0x03    // '???W???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x69 0x70 0x20 0x46 0x6F    // '??Tip Fo' \n\t0x72 0x77 0x61 0x72 0x64 0x20 0x6F 0x72    // 'rward or' \n\t0x20 0x42 0x61 0x63 0x6B 0x0D 0x0A 0x54    // ' Back??T' \n\t0x69 0x70 0x20 0x66 0x6F 0x72 0x77 0x61    // 'ip forwa' \n\t0x72 0x64 0x20 0x6F 0x72 0x20 0x62 0x61    // 'rd or ba' \n\t0x63 0x6B 0x2E 0x0D 0x0A 0x50 0x2E 0x53    // 'ck.??P.S' \n\t0x2E 0x20 0x20 0x48 0x6F 0x6C 0x64 0x20    // '.  Hold ' \n\t0x64 0x6F 0x77 0x6E 0x20 0x43 0x74 0x72    // 'down Ctr' \n\t0x6C 0x20 0x74 0x6F 0x20 0x6D 0x61 0x6B    // 'l to mak' \n\t0x65 0x20 0x69 0x74 0x20 0x6C 0x61 0x73    // 'e it las' \n\t0x74 0x20 0x6C 0x6F 0x6E 0x67 0x65 0x72    // 't longer' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_11= kttActorsRotateZ\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"ttTipToOneSide\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_11, __HELP_NAME(\"ttTipToOneSide\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsRotateZ kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips11\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_46=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsRotateZ\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsRotateZ\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips11\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_46=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x84 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_38=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_46=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x50 0x00 0x00 0x01    // '????P???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x03    // '????$???' \n\t0x0F 0x00 0x00 0xFD 0x50 0x00 0x00 0x03    // '???P???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_46=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_46, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x69 0x70 0x20 0x74 0x6F    // '??Tip to' \n\t0x20 0x4F 0x6E 0x65 0x20 0x53 0x69 0x64    // ' One Sid' \n\t0x65 0x0D 0x0A 0x54 0x69 0x70 0x20 0x73    // 'e??Tip s' \n\t0x69 0x64 0x65 0x20 0x74 0x6F 0x20 0x73    // 'ide to s' \n\t0x69 0x64 0x65 0x2E 0x0D 0x0A 0x50 0x2E    // 'ide.??P.' \n\t0x53 0x2E 0x20 0x20 0x48 0x6F 0x6C 0x64    // 'S.  Hold' \n\t0x20 0x64 0x6F 0x77 0x6E 0x20 0x43 0x74    // ' down Ct' \n\t0x72 0x6C 0x20 0x74 0x6F 0x20 0x6D 0x61    // 'rl to ma' \n\t0x6B 0x65 0x20 0x69 0x74 0x20 0x6C 0x61    // 'ke it la' \n\t0x73 0x74 0x20 0x6C 0x6F 0x6E 0x67 0x65    // 'st longe' \n\t0x72 0x2E                                  // 'r.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_12= kttActorsRotateNorm\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"ttChangeBackRotate\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_12, __HELP_NAME(\"ttChangeBackRotate\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsRotateNorm kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips12\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsRotateNorm\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsRotateNorm\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips12\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xF3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_39=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5C 0x00 0x00 0x01    // '????\\???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x30 0x00 0x00 0x02    // '????0???' \n\t0x01 0x00 0x00 0x00 0x51 0x00 0x00 0x02    // '????Q???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x5C 0x00 0x00 0x03    // '???\\???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4A, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x68 0x61 0x6E 0x67 0x65    // '??Change' \n\t0x20 0x42 0x61 0x63 0x6B 0x0D 0x0A 0x43    // ' Back??C' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x61 0x6E    // 'hange an' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x2C 0x20    // ' actor, ' \n\t0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72    // 'prop, or' \n\t0x20 0x33 0x44 0x20 0x77 0x6F 0x72 0x64    // ' 3D word' \n\t0x20 0x62 0x61 0x63 0x6B 0x20 0x74 0x6F    // ' back to' \n\t0x20 0x74 0x68 0x65 0x20 0x77 0x61 0x79    // ' the way' \n\t0x20 0x69 0x74 0x20 0x77 0x61 0x73 0x20    // ' it was ' \n\t0x62 0x65 0x66 0x6F 0x72 0x65 0x20 0x79    // 'before y' \n\t0x6F 0x75 0x20 0x72 0x6F 0x74 0x61 0x74    // 'ou rotat' \n\t0x65 0x64 0x20 0x69 0x74 0x2E              // 'ed it.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_13= kttActorsSooner\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"thSynchronize\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_13, __HELP_NAME(\"thSynchronize\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsSooner kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips13\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsSooner\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsSooner\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips13\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x52 0x00 0x00 0x01    // '????R???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4E, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x79 0x6E 0x63 0x68 0x72    // '??Synchr' \n\t0x6F 0x6E 0x69 0x7A 0x65 0x0D 0x0A 0x43    // 'onize??C' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x77 0x68    // 'hange wh' \n\t0x65 0x6E 0x20 0x61 0x6E 0x20 0x61 0x63    // 'en an ac' \n\t0x74 0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F    // 'tor, pro' \n\t0x70 0x2C 0x20 0x6F 0x72 0x20 0x33 0x44    // 'p, or 3D' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x67 0x65    // ' word ge' \n\t0x74 0x73 0x20 0x74 0x6F 0x20 0x61 0x20    // 'ts to a ' \n\t0x70 0x61 0x72 0x74 0x69 0x63 0x75 0x6C    // 'particul' \n\t0x61 0x72 0x20 0x6C 0x6F 0x63 0x61 0x74    // 'ar locat' \n\t0x69 0x6F 0x6E 0x2E                        // 'ion.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_14= kttActorsCompose\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"ttReposition\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_14, __HELP_NAME(\"ttReposition\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsCompose kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips14\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsCompose\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsCompose\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips14\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xEE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_15=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x59 0x00 0x00 0x01    // '????Y???' \n\t0x00 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x59 0x00 0x00 0x03    // '???Y???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x70 0x6F 0x73 0x69    // '??Reposi' \n\t0x74 0x69 0x6F 0x6E 0x0D 0x0A 0x52 0x65    // 'tion??Re' \n\t0x70 0x6F 0x73 0x69 0x74 0x69 0x6F 0x6E    // 'position' \n\t0x20 0x61 0x6E 0x20 0x61 0x63 0x74 0x6F    // ' an acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x61 0x6E 0x64 0x20    // 'ord and ' \n\t0x69 0x74 0x73 0x20 0x70 0x61 0x74 0x68    // 'its path' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x74 0x68    // ' from th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x66 0x72 0x61 0x6D 0x65 0x20    // 't frame ' \n\t0x6F 0x6E 0x2E                             // 'on.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_15= kttActorsSelect\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"blank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_15, __HELP_NAME(\"blank\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsSelect kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips15\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsSelect\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsSelect\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips15\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2E, 0x0)\n\tBYTE\n\t0x03 0x03                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16= kttActorsActionBrowser\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"ttActions\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16, __HELP_NAME(\"ttActions\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsActionBrowser kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips16\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsActionBrowser\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsActionBrowser\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips16\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x97 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0x01    // '????9???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x39 0x00 0x00 0x03    // '???9???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3F, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x63 0x74 0x69 0x6F 0x6E    // '??Action' \n\t0x73 0x0D 0x0A 0x4D 0x61 0x6B 0x65 0x20    // 's??Make ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x2C 0x20 0x70 0x72 0x6F 0x70 0x2C    // 'r, prop,' \n\t0x20 0x6F 0x72 0x20 0x33 0x44 0x20 0x77    // ' or 3D w' \n\t0x6F 0x72 0x64 0x20 0x79 0x6F 0x75 0x20    // 'ord you ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x6D 0x6F    // 'click mo' \n\t0x76 0x65 0x21                             // 've!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_17= kttActorsContinue\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"ttResumeLastAction\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_17, __HELP_NAME(\"ttResumeLastAction\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsContinue kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips17\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsContinue\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsContinue\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips17\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_14=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4D 0x00 0x00 0x01    // '????M???' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x07 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0B 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x14 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x4D 0x00 0x00 0x03    // '???M???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x73 0x75 0x6D 0x65    // '??Resume' \n\t0x20 0x4C 0x61 0x73 0x74 0x20 0x41 0x63    // ' Last Ac' \n\t0x74 0x69 0x6F 0x6E 0x0D 0x0A 0x43 0x6F    // 'tion??Co' \n\t0x6E 0x74 0x69 0x6E 0x75 0x65 0x20 0x74    // 'ntinue t' \n\t0x68 0x65 0x20 0x6C 0x61 0x73 0x74 0x20    // 'he last ' \n\t0x61 0x63 0x74 0x69 0x6F 0x6E 0x20 0x61    // 'action a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x2C    // 'n actor,' \n\t0x20 0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F    // ' prop, o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x20 0x75 0x73 0x65 0x64 0x2E         // 'd used.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_18= kttActorsRecordMode\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"Cut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_18, __HELP_NAME(\"Cut\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsRecordMode kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips18\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_33=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsRecordMode\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsRecordMode\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips18\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_33=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA9 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_33=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_33=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_33, 0x0)\n\tBYTE\n\t0x03 0x03                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_19= kttActorsGround\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"ttFallThroughGround\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_19, __HELP_NAME(\"ttFallThroughGround\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsGround kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips19\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsGround\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsGround\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips19\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xDE 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x7D 0x00 0x00 0x01    // '????}???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x02    // '????%???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x02    // '????&???' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x02    // '????)???' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x02    // '????B???' \n\t0x01 0x00 0x00 0x00 0x47 0x00 0x00 0x02    // '????G???' \n\t0x00 0x00 0x00 0x00 0x57 0x00 0x00 0x02    // '????W???' \n\t0x01 0x00 0x00 0x00 0x5E 0x00 0x00 0x02    // '????^???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x7D 0x00 0x00 0x03    // '???}???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x61 0x6C 0x6C 0x20 0x54    // '??Fall T' \n\t0x68 0x72 0x6F 0x75 0x67 0x68 0x20 0x47    // 'hrough G' \n\t0x72 0x6F 0x75 0x6E 0x64 0x0D 0x0A 0x57    // 'round??W' \n\t0x68 0x65 0x6E 0x20 0x74 0x68 0x69 0x73    // 'hen this' \n\t0x20 0x69 0x73 0x20 0x22 0x6F 0x6E 0x2C    // ' is \"on,' \n\t0x22 0x20 0x61 0x6E 0x20 0x61 0x63 0x74    // '\" an act' \n\t0x6F 0x72 0x2C 0x20 0x70 0x72 0x6F 0x70    // 'or, prop' \n\t0x2C 0x20 0x6F 0x72 0x20 0x33 0x44 0x20    // ', or 3D ' \n\t0x77 0x6F 0x72 0x64 0x20 0x63 0x61 0x6E    // 'word can' \n\t0x20 0x6D 0x6F 0x76 0x65 0x20 0x74 0x68    // ' move th' \n\t0x72 0x6F 0x75 0x67 0x68 0x20 0x74 0x68    // 'rough th' \n\t0x65 0x20 0x67 0x72 0x6F 0x75 0x6E 0x64    // 'e ground' \n\t0x20 0x73 0x75 0x72 0x66 0x61 0x63 0x65    // ' surface' \n\t0x2E 0x20 0x20 0x4F 0x74 0x68 0x65 0x72    // '.  Other' \n\t0x77 0x69 0x73 0x65 0x2C 0x20 0x69 0x74    // 'wise, it' \n\t0x20 0x63 0x61 0x6E 0x27 0x74 0x2E         // ' can't.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1A= kttActorsXY\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"ttUpandDown\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1A, __HELP_NAME(\"ttUpandDown\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsXY kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips1A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsXY\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsXY\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips1A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6C 0x00 0x00 0x01    // '????l???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x03 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x04 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1C 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x2C 0x00 0x00 0x02    // '????,???' \n\t0x00 0x00 0x00 0x00 0x47 0x00 0x00 0x02    // '????G???' \n\t0x01 0x00 0x00 0x00 0x50 0x00 0x00 0x02    // '????P???' \n\t0x00 0x00 0x00 0x00 0x6C 0x00 0x00 0x02    // '????l???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x6C 0x00 0x00 0x03    // '???l???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x55 0x70 0x20 0x26 0x20 0x44    // '??Up & D' \n\t0x6F 0x77 0x6E 0x0D 0x0A 0x57 0x68 0x65    // 'own??Whe' \n\t0x6E 0x20 0x74 0x68 0x69 0x73 0x20 0x69    // 'n this i' \n\t0x73 0x20 0x22 0x6F 0x6E 0x2C 0x22 0x20    // 's \"on,\" ' \n\t0x79 0x6F 0x75 0x20 0x63 0x61 0x6E 0x20    // 'you can ' \n\t0x6D 0x6F 0x76 0x65 0x20 0x61 0x6E 0x20    // 'move an ' \n\t0x61 0x63 0x74 0x6F 0x72 0x2C 0x20 0x70    // 'actor, p' \n\t0x72 0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20    // 'rop, or ' \n\t0x33 0x44 0x20 0x77 0x6F 0x72 0x64 0x20    // '3D word ' \n\t0x75 0x70 0x20 0x61 0x6E 0x64 0x20 0x64    // 'up and d' \n\t0x6F 0x77 0x6E 0x20 0x28 0x69 0x6E 0x73    // 'own (ins' \n\t0x74 0x65 0x61 0x64 0x20 0x6F 0x66 0x20    // 'tead of ' \n\t0x6E 0x65 0x61 0x72 0x20 0x61 0x6E 0x64    // 'near and' \n\t0x20 0x66 0x61 0x72 0x29 0x2E              // ' far).' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1B= kttActorsBiography\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"ttTalentBook\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1B, __HELP_NAME(\"ttTalentBook\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidActorsBiography kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips1B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_45=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttActorsBiography\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsBiography\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips1B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_45=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_41=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_45=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4D 0x00 0x00 0x01    // '????M???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x4D 0x00 0x00 0x02    // '????M???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x4D 0x00 0x00 0x03    // '???M???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_45=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_45, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x61 0x6C 0x65 0x6E 0x74    // '??Talent' \n\t0x20 0x42 0x6F 0x6F 0x6B 0x0D 0x0A 0x47    // ' Book??G' \n\t0x69 0x76 0x65 0x73 0x20 0x79 0x6F 0x75    // 'ives you' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x63 0x6F    // ' the sco' \n\t0x6F 0x70 0x20 0x6F 0x6E 0x20 0x61 0x6C    // 'op on al' \n\t0x6C 0x20 0x74 0x68 0x65 0x20 0x61 0x63    // 'l the ac' \n\t0x74 0x6F 0x72 0x73 0x20 0x79 0x6F 0x75    // 'tors you' \n\t0x20 0x63 0x61 0x6E 0x20 0x75 0x73 0x65    // ' can use' \n\t0x20 0x69 0x6E 0x20 0x79 0x6F 0x75 0x72    // ' in your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x21         // ' movie!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1C= kttRollCallActorFrame\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"ttActorList\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1C, __HELP_NAME(\"ttActorList\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidRollCallActorFrame kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips1C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_30=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttRollCallActorFrame\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidRollCallActorFrame\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips1C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_30=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x99 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_30=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0x01    // '????;???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x3B 0x00 0x00 0x02    // '????;???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x3B 0x00 0x00 0x03    // '???;???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_30=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_30, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x63 0x74 0x6F 0x72 0x20    // '??Actor ' \n\t0x4C 0x69 0x73 0x74 0x0D 0x0A 0x53 0x68    // 'List??Sh' \n\t0x6F 0x77 0x73 0x20 0x79 0x6F 0x75 0x20    // 'ows you ' \n\t0x74 0x68 0x65 0x20 0x61 0x63 0x74 0x6F    // 'the acto' \n\t0x72 0x73 0x20 0x79 0x6F 0x75 0x27 0x76    // 'rs you'v' \n\t0x65 0x20 0x75 0x73 0x65 0x64 0x20 0x69    // 'e used i' \n\t0x6E 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'n your m' \n\t0x6F 0x76 0x69 0x65 0x2E                   // 'ovie.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1D= kttRollCallPropFrame\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"ttPropList\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1D, __HELP_NAME(\"ttPropList\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidRollCallPropFrame kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips1D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttRollCallPropFrame\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidRollCallPropFrame\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips1D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_12=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x01    // '????F???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x05 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x02    // '????#???' \n\t0x00 0x00 0x00 0x00 0x2B 0x00 0x00 0x02    // '????+???' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x02    // '????F???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x46 0x00 0x00 0x03    // '???F???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x72 0x6F 0x70 0x20 0x4C    // '??Prop L' \n\t0x69 0x73 0x74 0x0D 0x0A 0x53 0x68 0x6F    // 'ist??Sho' \n\t0x77 0x73 0x20 0x79 0x6F 0x75 0x20 0x74    // 'ws you t' \n\t0x68 0x65 0x20 0x70 0x72 0x6F 0x70 0x73    // 'he props' \n\t0x20 0x61 0x6E 0x64 0x20 0x33 0x44 0x20    // ' and 3D ' \n\t0x77 0x6F 0x72 0x64 0x73 0x20 0x79 0x6F    // 'words yo' \n\t0x75 0x27 0x76 0x65 0x20 0x75 0x73 0x65    // 'u've use' \n\t0x64 0x20 0x69 0x6E 0x20 0x79 0x6F 0x75    // 'd in you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E    // 'r movie.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1E= kttSoundsCover\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"ttSoundTools\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1E, __HELP_NAME(\"ttSoundTools\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTipAO 0x0 kidSoundsCover kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips1E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_43=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTipAO\"\n\tITEM\n\t\t\"kttSoundsCover\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSoundsCover\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips1E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_43=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB0 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_43=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_43, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_43=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_43, 0x0)\n\tBYTE\n\t0x03 0x03                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1F= kttSoundsEfxBrowser\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"ttSoundEffects\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1F, __HELP_NAME(\"ttSoundEffects\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidSoundsEfxBrowser kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips1F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_50=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttSoundsEfxBrowser\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSoundsEfxBrowser\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips1F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_50=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x73 0x00 0x00 0x00    // '????s???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_50=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x12 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x02    // '???? ???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x21 0x00 0x00 0x03    // '???!???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_50=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_50, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6F 0x75 0x6E 0x64 0x20    // '??Sound ' \n\t0x45 0x66 0x66 0x65 0x63 0x74 0x73 0x0D    // 'Effects?' \n\t0x0A 0x41 0x64 0x64 0x20 0x73 0x6F 0x75    // '?Add sou' \n\t0x6E 0x64 0x20 0x65 0x66 0x66 0x65 0x63    // 'nd effec' \n\t0x74 0x73 0x2E                             // 'ts.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_20= kttSoundsMicBrowser\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"ttSpeech\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_20, __HELP_NAME(\"ttSpeech\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kttSoundsMicBrowser kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips20\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttSoundsMicBrowser\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kttSoundsMicBrowser\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips20\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x79 0x00 0x00 0x00    // '????y???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x1B 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x70 0x65 0x65 0x63 0x68    // '??Speech' \n\t0x0D 0x0A 0x4D 0x61 0x6B 0x65 0x20 0x61    // '??Make a' \n\t0x6E 0x20 0x61 0x63 0x74 0x6F 0x72 0x20    // 'n actor ' \n\t0x74 0x61 0x6C 0x6B 0x21                   // 'talk!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_21= kttSoundsMusicBrowser\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"ttMusic\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_21, __HELP_NAME(\"ttMusic\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidSoundsMusicBrowser kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips21\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttSoundsMusicBrowser\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSoundsMusicBrowser\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips21\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB5 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_16=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x02    // '????#???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x75 0x73 0x69 0x63 0x0D    // '??Music?' \n\t0x0A 0x41 0x74 0x74 0x61 0x63 0x68 0x20    // '?Attach ' \n\t0x6D 0x75 0x73 0x69 0x63 0x20 0x74 0x6F    // 'music to' \n\t0x20 0x61 0x20 0x62 0x61 0x63 0x6B 0x67    // ' a backg' \n\t0x72 0x6F 0x75 0x6E 0x64 0x2E              // 'round.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_22= kttSoundsPlayOnce\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"ttPlayOnce\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_22, __HELP_NAME(\"ttPlayOnce\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidSoundsPlayOnce kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips22\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttSoundsPlayOnce\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSoundsPlayOnce\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips22\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_11=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3F 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x07 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x02    // '????)???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x3F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x6C 0x61 0x79 0x20 0x4F    // '??Play O' \n\t0x6E 0x63 0x65 0x0D 0x0A 0x41 0x74 0x74    // 'nce??Att' \n\t0x61 0x63 0x68 0x65 0x73 0x20 0x74 0x68    // 'aches th' \n\t0x65 0x20 0x73 0x6F 0x75 0x6E 0x64 0x20    // 'e sound ' \n\t0x79 0x6F 0x75 0x20 0x63 0x68 0x6F 0x6F    // 'you choo' \n\t0x73 0x65 0x20 0x61 0x6E 0x64 0x20 0x70    // 'se and p' \n\t0x6C 0x61 0x79 0x73 0x20 0x69 0x74 0x20    // 'lays it ' \n\t0x6F 0x6E 0x65 0x20 0x74 0x69 0x6D 0x65    // 'one time' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_23= kttSoundsLooping\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"ttLoop\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_23, __HELP_NAME(\"ttLoop\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidSoundsLooping kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips23\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttSoundsLooping\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSoundsLooping\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips23\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x04 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x06 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x02    // '????$???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x4C 0x6F 0x6F 0x70 0x0D 0x0A    // '??Loop??' \n\t0x41 0x74 0x74 0x61 0x63 0x68 0x65 0x73    // 'Attaches' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x20 0x79 0x6F 0x75 0x20 0x63    // 'nd you c' \n\t0x68 0x6F 0x6F 0x73 0x65 0x20 0x61 0x6E    // 'hoose an' \n\t0x64 0x20 0x70 0x6C 0x61 0x79 0x73 0x20    // 'd plays ' \n\t0x69 0x74 0x20 0x63 0x6F 0x6E 0x74 0x69    // 'it conti' \n\t0x6E 0x75 0x6F 0x75 0x73 0x6C 0x79 0x2E    // 'nuously.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_24= kttSoundsAttachToCell\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"ttActionMatcher\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_24, __HELP_NAME(\"ttActionMatcher\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidSoundsAttachToCell kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips24\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttSoundsAttachToCell\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSoundsAttachToCell\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips24\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x95 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x40 0x00 0x00 0x01    // '????@???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x16 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x02    // '????#???' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x02    // '????$???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x40 0x00 0x00 0x03    // '???@???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x41 0x63 0x74 0x69 0x6F 0x6E    // '??Action' \n\t0x20 0x4D 0x61 0x74 0x63 0x68 0x65 0x72    // ' Matcher' \n\t0x0D 0x0A 0x41 0x74 0x74 0x61 0x63 0x68    // '??Attach' \n\t0x65 0x73 0x20 0x61 0x20 0x73 0x6F 0x75    // 'es a sou' \n\t0x6E 0x64 0x20 0x74 0x6F 0x20 0x74 0x68    // 'nd to th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x61 0x63 0x74 0x69 0x6F 0x6E    // 't action' \n\t0x20 0x70 0x6F 0x73 0x69 0x74 0x69 0x6F    // ' positio' \n\t0x6E 0x2E                                  // 'n.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_25= kttSoundsListen\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"ttListener\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_25, __HELP_NAME(\"ttListener\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidSoundsListen kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips25\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_21=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttSoundsListen\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSoundsListen\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips25\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_21=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_21=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x47 0x00 0x00 0x01    // '????G???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1D 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x02    // '????$???' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x02    // '????2???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_21=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x03 0x03 0x4C 0x69 0x73 0x74 0x65 0x6E    // '??Listen' \n\t0x65 0x72 0x0D 0x0A 0x4C 0x69 0x73 0x74    // 'er??List' \n\t0x65 0x6E 0x20 0x74 0x6F 0x2C 0x20 0x72    // 'en to, r' \n\t0x65 0x6D 0x6F 0x76 0x65 0x2C 0x20 0x6F    // 'emove, o' \n\t0x72 0x20 0x63 0x68 0x61 0x6E 0x67 0x65    // 'r change' \n\t0x20 0x74 0x68 0x65 0x20 0x76 0x6F 0x6C    // ' the vol' \n\t0x75 0x6D 0x65 0x20 0x6F 0x66 0x20 0x69    // 'ume of i' \n\t0x6E 0x64 0x69 0x76 0x69 0x64 0x75 0x61    // 'ndividua' \n\t0x6C 0x20 0x73 0x6F 0x75 0x6E 0x64 0x73    // 'l sounds' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_26= kttTextsCover\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"ttWordTools\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_26, __HELP_NAME(\"ttWordTools\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTipAO 0x0 kidTextsCover kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips26\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTipAO\"\n\tITEM\n\t\t\"kttTextsCover\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidTextsCover\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips26\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3E, 0x0)\n\tBYTE\n\t0x03 0x03                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_27= kttTextsCreate\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"ttWordBox\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_27, __HELP_NAME(\"ttWordBox\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidTextsCreate kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips27\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttTextsCreate\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidTextsCreate\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips27\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x01    // '????F???' \n\t0x00 0x00 0x00 0x00 0x04 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x2F 0x00 0x00 0x02    // '????/???' \n\t0x00 0x00 0x00 0x00 0x35 0x00 0x00 0x02    // '????5???' \n\t0x01 0x00 0x00 0x00 0x3A 0x00 0x00 0x02    // '????:???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x46 0x00 0x00 0x03    // '???F???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x6F 0x72 0x64 0x20 0x42    // '??Word B' \n\t0x6F 0x78 0x0D 0x0A 0x43 0x72 0x65 0x61    // 'ox??Crea' \n\t0x74 0x65 0x20 0x61 0x20 0x62 0x6F 0x78    // 'te a box' \n\t0x20 0x77 0x68 0x65 0x72 0x65 0x20 0x79    // ' where y' \n\t0x6F 0x75 0x20 0x63 0x61 0x6E 0x20 0x74    // 'ou can t' \n\t0x79 0x70 0x65 0x20 0x79 0x6F 0x75 0x72    // 'ype your' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x73    // ' movie s' \n\t0x74 0x6F 0x72 0x79 0x20 0x6F 0x72 0x20    // 'tory or ' \n\t0x63 0x72 0x65 0x64 0x69 0x74 0x73 0x2E    // 'credits.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_28= kttTextsSelect\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"ttInsertion Point\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_28, __HELP_NAME(\"ttInsertion Point\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidTextsSelect kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips28\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_25=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttTextsSelect\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidTextsSelect\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips28\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_25=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x8D 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_C=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_25=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x01    // '????=???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x11 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x12 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1D 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x02    // '????4???' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x02    // '????8???' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x02    // '????=???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_25=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_25, 0x0)\n\tBYTE\n\t0x03 0x03 0x49 0x6E 0x73 0x65 0x72 0x74    // '??Insert' \n\t0x69 0x6F 0x6E 0x20 0x50 0x6F 0x69 0x6E    // 'ion Poin' \n\t0x74 0x0D 0x0A 0x4D 0x6F 0x76 0x65 0x2C    // 't??Move,' \n\t0x20 0x72 0x65 0x73 0x69 0x7A 0x65 0x2C    // ' resize,' \n\t0x20 0x6F 0x72 0x20 0x63 0x68 0x61 0x6E    // ' or chan' \n\t0x67 0x65 0x20 0x77 0x6F 0x72 0x64 0x73    // 'ge words' \n\t0x20 0x69 0x6E 0x20 0x61 0x20 0x77 0x6F    // ' in a wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x2E         // 'rd box.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_29= kttTextsFont\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"ttLetters\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_29, __HELP_NAME(\"ttLetters\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidTextsFont kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips29\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_47=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttTextsFont\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidTextsFont\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips29\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_47=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_43=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_47, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_47=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_47, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2A 0x00 0x00 0x01    // '????*???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x2A 0x00 0x00 0x02    // '????*???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x2A 0x00 0x00 0x03    // '???*???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_47=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_47, 0x0)\n\tBYTE\n\t0x03 0x03 0x4C 0x65 0x74 0x74 0x65 0x72    // '??Letter' \n\t0x73 0x0D 0x0A 0x43 0x68 0x61 0x6E 0x67    // 's??Chang' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x77 0x61    // 'e the wa' \n\t0x79 0x20 0x79 0x6F 0x75 0x72 0x20 0x6C    // 'y your l' \n\t0x65 0x74 0x74 0x65 0x72 0x73 0x20 0x6C    // 'etters l' \n\t0x6F 0x6F 0x6B 0x21                        // 'ook!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2A= kttTextsFontShape\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"ttStyles\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2A, __HELP_NAME(\"ttStyles\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidTextsFontShape kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips2A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttTextsFontShape\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidTextsFontShape\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips2A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9F 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x01    // '????=???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x02    // '????6???' \n\t0x00 0x00 0x00 0x00 0x3C 0x00 0x00 0x02    // '????<???' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x02    // '????=???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x74 0x79 0x6C 0x65 0x73    // '??Styles' \n\t0x0D 0x0A 0x4D 0x61 0x6B 0x65 0x20 0x77    // '??Make w' \n\t0x6F 0x72 0x64 0x73 0x20 0x73 0x74 0x61    // 'ords sta' \n\t0x6E 0x64 0x20 0x6F 0x75 0x74 0x20 0x77    // 'nd out w' \n\t0x69 0x74 0x68 0x20 0x73 0x74 0x79 0x6C    // 'ith styl' \n\t0x65 0x73 0x20 0x6C 0x69 0x6B 0x65 0x20    // 'es like ' \n\t0x62 0x6F 0x6C 0x64 0x20 0x6F 0x72 0x20    // 'bold or ' \n\t0x69 0x74 0x61 0x6C 0x69 0x63 0x2E         // 'italic.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2B= kttTextsFontSize\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"ttLetterSize\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2B, __HELP_NAME(\"ttLetterSize\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidTextsFontSize kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips2B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttTextsFontSize\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidTextsFontSize\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips2B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_19=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x01    // '????-???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x02    // '????$???' \n\t0x01 0x00 0x00 0x00 0x2D 0x00 0x00 0x02    // '????-???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x2D 0x00 0x00 0x03    // '???-???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x4C 0x65 0x74 0x74 0x65 0x72    // '??Letter' \n\t0x20 0x53 0x69 0x7A 0x65 0x0D 0x0A 0x43    // ' Size??C' \n\t0x68 0x61 0x6E 0x67 0x65 0x20 0x74 0x68    // 'hange th' \n\t0x65 0x20 0x73 0x69 0x7A 0x65 0x20 0x6F    // 'e size o' \n\t0x66 0x20 0x79 0x6F 0x75 0x72 0x20 0x6C    // 'f your l' \n\t0x65 0x74 0x74 0x65 0x72 0x73 0x2E         // 'etters.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2C= kttTextsFontColor\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"ttLetterColor\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2C, __HELP_NAME(\"ttLetterColor\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidTextsFontColor kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips2C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttTextsFontColor\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidTextsFontColor\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips2C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2F 0x00 0x00 0x01    // '????/???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x2F 0x00 0x00 0x02    // '????/???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x2F 0x00 0x00 0x03    // '???/???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x4C 0x65 0x74 0x74 0x65 0x72    // '??Letter' \n\t0x20 0x43 0x6F 0x6C 0x6F 0x72 0x0D 0x0A    // ' Color??' \n\t0x43 0x68 0x61 0x6E 0x67 0x65 0x20 0x74    // 'Change t' \n\t0x68 0x65 0x20 0x63 0x6F 0x6C 0x6F 0x72    // 'he color' \n\t0x20 0x6F 0x66 0x20 0x79 0x6F 0x75 0x72    // ' of your' \n\t0x20 0x6C 0x65 0x74 0x74 0x65 0x72 0x73    // ' letters' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2D= kttTextsBkgdColor\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"ttBackground Color\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2D, __HELP_NAME(\"ttBackground Color\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidTextsBkgdColor kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips2D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_27=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttTextsBkgdColor\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidTextsBkgdColor\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips2D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_27=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x89 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_23=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_27=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x01    // '????<???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x02    // '????3???' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x02    // '????7???' \n\t0x01 0x00 0x00 0x00 0x3C 0x00 0x00 0x02    // '????<???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x3C 0x00 0x00 0x03    // '???<???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_27=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_27, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x61 0x63 0x6B 0x67 0x72    // '??Backgr' \n\t0x6F 0x75 0x6E 0x64 0x20 0x43 0x6F 0x6C    // 'ound Col' \n\t0x6F 0x72 0x0D 0x0A 0x43 0x68 0x61 0x6E    // 'or??Chan' \n\t0x67 0x65 0x20 0x74 0x68 0x65 0x20 0x62    // 'ge the b' \n\t0x61 0x63 0x6B 0x67 0x72 0x6F 0x75 0x6E    // 'ackgroun' \n\t0x64 0x20 0x63 0x6F 0x6C 0x6F 0x72 0x20    // 'd color ' \n\t0x6F 0x66 0x20 0x61 0x20 0x77 0x6F 0x72    // 'of a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x2E              // 'd box.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2E= kttTextsScrollType\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"ttScrolling\\\\Nonscrolling\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2E, __HELP_NAME(\"ttScrolling\\\\Nonscrolling\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidTextsScrollType kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips2E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttTextsScrollType\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidTextsScrollType\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips2E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC1 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x57 0x00 0x00 0x01    // '????W???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x00 0x00 0x02    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x22 0x00 0x00 0x03    // '???\"???' \n\t0x0F 0x00 0x00 0xFD 0x57 0x00 0x00 0x03    // '???W???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x63 0x72 0x6F 0x6C 0x6C    // '??Scroll' \n\t0x69 0x6E 0x67 0x20 0x6F 0x72 0x20 0x4E    // 'ing or N' \n\t0x6F 0x6E 0x2D 0x53 0x63 0x72 0x6F 0x6C    // 'on-Scrol' \n\t0x6C 0x69 0x6E 0x67 0x20 0x57 0x6F 0x72    // 'ling Wor' \n\t0x64 0x73 0x0D 0x0A 0x43 0x68 0x61 0x6E    // 'ds??Chan' \n\t0x67 0x65 0x20 0x61 0x20 0x77 0x6F 0x72    // 'ge a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x20 0x73 0x6F    // 'd box so' \n\t0x20 0x74 0x68 0x61 0x74 0x20 0x77 0x6F    // ' that wo' \n\t0x72 0x64 0x73 0x20 0x73 0x63 0x72 0x6F    // 'rds scro' \n\t0x6C 0x6C 0x20 0x6F 0x72 0x20 0x73 0x74    // 'll or st' \n\t0x61 0x79 0x20 0x73 0x74 0x69 0x6C 0x6C    // 'ay still' \n\t0x21                                       // '!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2F= kttTextsScroll\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"ttScrolling\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2F, __HELP_NAME(\"ttScrolling\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidTextsScroll kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips2F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_20=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttTextsScroll\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidTextsScroll\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips2F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_20=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1D=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_20=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x2B 0x00 0x00 0x03    // '???+???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_20=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x63 0x72 0x6F 0x6C 0x6C    // '??Scroll' \n\t0x69 0x6E 0x67 0x0D 0x0A 0x4D 0x61 0x6B    // 'ing??Mak' \n\t0x65 0x20 0x77 0x6F 0x72 0x64 0x73 0x20    // 'e words ' \n\t0x69 0x6E 0x20 0x61 0x20 0x77 0x6F 0x72    // 'in a wor' \n\t0x64 0x20 0x62 0x6F 0x78 0x20 0x73 0x63    // 'd box sc' \n\t0x72 0x6F 0x6C 0x6C 0x2E                   // 'roll.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_30= kttTextsStory\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"ttNonScrolling\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_30, __HELP_NAME(\"ttNonScrolling\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidTextsStory kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips30\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_28=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttTextsStory\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidTextsStory\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips30\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_28=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_30, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_24=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_28=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x01    // '????3???' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_28=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_28, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x6F 0x6E 0x2D 0x53 0x63    // '??Non-Sc' \n\t0x72 0x6F 0x6C 0x6C 0x69 0x6E 0x67 0x0D    // 'rolling?' \n\t0x0A 0x4D 0x61 0x6B 0x65 0x20 0x77 0x6F    // '?Make wo' \n\t0x72 0x64 0x73 0x20 0x69 0x6E 0x20 0x61    // 'rds in a' \n\t0x20 0x77 0x6F 0x72 0x64 0x20 0x62 0x6F    // ' word bo' \n\t0x78 0x20 0x73 0x74 0x61 0x79 0x20 0x73    // 'x stay s' \n\t0x74 0x69 0x6C 0x6C 0x2E                   // 'till.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_31= kttFrameBackground\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"ttFrameSlider\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_31, __HELP_NAME(\"ttFrameSlider\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidFrameBackground kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips31\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_56=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttFrameBackground\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidFrameBackground\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips31\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_56=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_56, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_56=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_56, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3E 0x00 0x00 0x01    // '????>???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x05 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0E 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x3E 0x00 0x00 0x03    // '???>???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_56=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_56, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x72 0x61 0x6D 0x65 0x20    // '??Frame ' \n\t0x53 0x6C 0x69 0x64 0x65 0x72 0x0D 0x0A    // 'Slider??' \n\t0x4D 0x6F 0x76 0x65 0x20 0x66 0x6F 0x72    // 'Move for' \n\t0x77 0x61 0x72 0x64 0x73 0x20 0x6F 0x72    // 'wards or' \n\t0x20 0x62 0x61 0x63 0x6B 0x77 0x61 0x72    // ' backwar' \n\t0x64 0x73 0x20 0x69 0x6E 0x20 0x74 0x68    // 'ds in th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x73 0x63 0x65 0x6E 0x65 0x2E    // 't scene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_32= kttPausesMouse\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"blank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_32, __HELP_NAME(\"blank\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidPausesMouse kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips32\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_24=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttPausesMouse\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPausesMouse\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips32\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_24=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_24=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_24=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x03 0x03                                  // '??' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_33= kttPausesSound\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"ttWaitForSoundEnd\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_33, __HELP_NAME(\"ttWaitForSoundEnd\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidPausesSound kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips33\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_1A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttPausesSound\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPausesSound\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips33\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_33, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x93 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_17=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x47 0x00 0x00 0x02    // '????G???' \n\t0x01 0x00 0x00 0x00 0x48 0x00 0x00 0x02    // '????H???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x17 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x48 0x00 0x00 0x03    // '???H???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x61 0x69 0x74 0x20 0x46    // '??Wait F' \n\t0x6F 0x72 0x20 0x53 0x6F 0x75 0x6E 0x64    // 'or Sound' \n\t0x20 0x74 0x6F 0x20 0x45 0x6E 0x64 0x0D    // ' to End?' \n\t0x0A 0x50 0x61 0x75 0x73 0x65 0x20 0x74    // '?Pause t' \n\t0x68 0x65 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'he movie' \n\t0x20 0x61 0x63 0x74 0x69 0x6F 0x6E 0x20    // ' action ' \n\t0x75 0x6E 0x74 0x69 0x6C 0x20 0x61 0x20    // 'until a ' \n\t0x73 0x6F 0x75 0x6E 0x64 0x20 0x69 0x73    // 'sound is' \n\t0x20 0x66 0x69 0x6E 0x69 0x73 0x68 0x65    // ' finishe' \n\t0x64 0x2E                                  // 'd.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_34= kttPausesClear\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"blank\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_34, __HELP_NAME(\"blank\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidPausesClear kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips34\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_22=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttPausesClear\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPausesClear\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips34\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_22=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_34, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x85 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_22=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_22=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x03 0x03 0x62 0x6C 0x61 0x6E 0x6B         // '??blank' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_35= kttPlay\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"ttPlay\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_35, __HELP_NAME(\"ttPlay\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidPlay kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips35\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttPlay\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlay\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips35\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_21=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2E 0x00 0x00 0x01    // '????.???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x2E 0x00 0x00 0x03    // '???.???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2C, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x6C 0x61 0x79 0x2F 0x53    // '??Play/S' \n\t0x74 0x6F 0x70 0x20 0x0D 0x0A 0x43 0x6C    // 'top ??Cl' \n\t0x69 0x63 0x6B 0x20 0x74 0x6F 0x20 0x50    // 'ick to P' \n\t0x6C 0x61 0x79 0x20 0x61 0x6E 0x64 0x20    // 'lay and ' \n\t0x53 0x74 0x6F 0x70 0x20 0x79 0x6F 0x75    // 'Stop you' \n\t0x72 0x20 0x6D 0x6F 0x76 0x69 0x65 0x2E    // 'r movie.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_36= kttVolumeSlider\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"ttVolumeControl\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_36, __HELP_NAME(\"ttVolumeControl\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidVolumeSlider kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips36\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttVolumeSlider\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidVolumeSlider\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips36\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_26=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x02    // '????%???' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x02    // '????B???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x42 0x00 0x00 0x03    // '???B???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2F, 0x0)\n\tBYTE\n\t0x03 0x03 0x56 0x6F 0x6C 0x75 0x6D 0x65    // '??Volume' \n\t0x20 0x43 0x6F 0x6E 0x74 0x72 0x6F 0x6C    // ' Control' \n\t0x0D 0x0A 0x41 0x64 0x6A 0x75 0x73 0x74    // '??Adjust' \n\t0x20 0x74 0x68 0x65 0x20 0x76 0x6F 0x6C    // ' the vol' \n\t0x75 0x6D 0x65 0x20 0x6F 0x66 0x20 0x61    // 'ume of a' \n\t0x6C 0x6C 0x20 0x73 0x6F 0x75 0x6E 0x64    // 'll sound' \n\t0x73 0x20 0x69 0x6E 0x20 0x33 0x44 0x20    // 's in 3D ' \n\t0x4D 0x6F 0x76 0x69 0x65 0x20 0x4D 0x61    // 'Movie Ma' \n\t0x6B 0x65 0x72 0x2E                        // 'ker.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_37= kttUndo\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"ttUndoRedo\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_37, __HELP_NAME(\"ttUndoRedo\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidUndo kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips37\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttUndo\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidUndo\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips37\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9B 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_27=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x01    // '????=???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x02    // '????(???' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x02    // '????*???' \n\t0x01 0x00 0x00 0x00 0x3D 0x00 0x00 0x02    // '????=???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x3D 0x00 0x00 0x03    // '???=???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x03 0x03 0x55 0x6E 0x64 0x6F 0x2F 0x52    // '??Undo/R' \n\t0x65 0x64 0x6F 0x0D 0x0A 0x55 0x6E 0x64    // 'edo??Und' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x6C 0x61    // 'o the la' \n\t0x73 0x74 0x20 0x74 0x68 0x69 0x6E 0x67    // 'st thing' \n\t0x20 0x79 0x6F 0x75 0x20 0x64 0x69 0x64    // ' you did' \n\t0x21 0x20 0x20 0x52 0x65 0x64 0x6F 0x20    // '!  Redo ' \n\t0x77 0x68 0x61 0x74 0x20 0x79 0x6F 0x75    // 'what you' \n\t0x20 0x75 0x6E 0x64 0x69 0x64 0x21         // ' undid!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_38= kttCutCopyPaste\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"ttCutCopyPaste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_38, __HELP_NAME(\"ttCutCopyPaste\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidCutCopyPaste kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips38\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_42=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttCutCopyPaste\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidCutCopyPaste\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips38\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_42=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_3B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0B 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_42=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0B 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5C 0x00 0x00 0x01    // '????\\???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0A 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1A 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1B 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x5C 0x00 0x00 0x02    // '????\\???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x5C 0x00 0x00 0x03    // '???\\???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_42=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_42, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x2C 0x20 0x43    // '??Cut, C' \n\t0x6F 0x70 0x79 0x2C 0x20 0x26 0x20 0x50    // 'opy, & P' \n\t0x61 0x73 0x74 0x65 0x20 0x54 0x6F 0x6F    // 'aste Too' \n\t0x6C 0x73 0x0D 0x0A 0x47 0x65 0x74 0x20    // 'ls??Get ' \n\t0x72 0x69 0x64 0x20 0x6F 0x66 0x2C 0x20    // 'rid of, ' \n\t0x63 0x6F 0x70 0x79 0x2C 0x20 0x70 0x61    // 'copy, pa' \n\t0x73 0x74 0x65 0x2C 0x20 0x6F 0x72 0x20    // 'ste, or ' \n\t0x6D 0x6F 0x76 0x65 0x20 0x74 0x68 0x69    // 'move thi' \n\t0x6E 0x67 0x73 0x20 0x66 0x72 0x6F 0x6D    // 'ngs from' \n\t0x20 0x6F 0x6E 0x65 0x20 0x70 0x6C 0x61    // ' one pla' \n\t0x63 0x65 0x20 0x74 0x6F 0x20 0x61 0x6E    // 'ce to an' \n\t0x6F 0x74 0x68 0x65 0x72 0x2E              // 'other.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_39= kttCCPSceneChopBack\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"ttRemoveEverythingBefore\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_39, __HELP_NAME(\"ttRemoveEverythingBefore\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidCCPSceneChopBack kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips39\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_32=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttCCPSceneChopBack\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidCCPSceneChopBack\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips39\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_32=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_32=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5A 0x00 0x00 0x01    // '????Z???' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x20 0x00 0x00 0x02    // '???? ???' \n\t0x01 0x00 0x00 0x00 0x4A 0x00 0x00 0x02    // '????J???' \n\t0x00 0x00 0x00 0x00 0x53 0x00 0x00 0x02    // '????S???' \n\t0x01 0x00 0x00 0x00 0x5A 0x00 0x00 0x02    // '????Z???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x5A 0x00 0x00 0x03    // '???Z???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_32=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_32, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x6F 0x76 0x65    // '??Remove' \n\t0x20 0x45 0x76 0x65 0x72 0x79 0x74 0x68    // ' Everyth' \n\t0x69 0x6E 0x67 0x20 0x42 0x65 0x66 0x6F    // 'ing Befo' \n\t0x72 0x65 0x0D 0x0A 0x52 0x65 0x6D 0x6F    // 're??Remo' \n\t0x76 0x65 0x20 0x65 0x76 0x65 0x72 0x79    // 've every' \n\t0x74 0x68 0x69 0x6E 0x67 0x20 0x62 0x65    // 'thing be' \n\t0x66 0x6F 0x72 0x65 0x20 0x74 0x68 0x65    // 'fore the' \n\t0x20 0x63 0x75 0x72 0x72 0x65 0x6E 0x74    // ' current' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x69    // ' frame i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x63 0x75    // 'n the cu' \n\t0x72 0x72 0x65 0x6E 0x74 0x20 0x73 0x63    // 'rrent sc' \n\t0x65 0x6E 0x65 0x2E                        // 'ene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3A= kttCCPSceneChopFwd\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"ttRemoveEverythingAfter\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3A, __HELP_NAME(\"ttRemoveEverythingAfter\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidCCPSceneChopFwd kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips3A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttCCPSceneChopFwd\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidCCPSceneChopFwd\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips3A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD4 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_E=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\nAG(4)\n\tITEM LONG 0x2000003\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x0C 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0A 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x01    // '????X???' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x02    // '????F???' \n\t0x00 0x00 0x00 0x00 0x51 0x00 0x00 0x02    // '????Q???' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x02    // '????X???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x19 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x58 0x00 0x00 0x03    // '???X???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x6F 0x76 0x65    // '??Remove' \n\t0x20 0x45 0x76 0x65 0x72 0x79 0x74 0x68    // ' Everyth' \n\t0x69 0x6E 0x67 0x20 0x41 0x66 0x74 0x65    // 'ing Afte' \n\t0x72 0x0D 0x0A 0x52 0x65 0x6D 0x6F 0x76    // 'r??Remov' \n\t0x65 0x20 0x65 0x76 0x65 0x72 0x79 0x74    // 'e everyt' \n\t0x68 0x69 0x6E 0x67 0x20 0x61 0x66 0x74    // 'hing aft' \n\t0x65 0x72 0x20 0x74 0x68 0x65 0x20 0x63    // 'er the c' \n\t0x75 0x72 0x72 0x65 0x6E 0x74 0x20 0x66    // 'urrent f' \n\t0x72 0x61 0x6D 0x65 0x20 0x69 0x6E 0x20    // 'rame in ' \n\t0x74 0x68 0x65 0x20 0x63 0x75 0x72 0x72    // 'the curr' \n\t0x65 0x6E 0x74 0x20 0x73 0x63 0x65 0x6E    // 'ent scen' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3B= kttCCPSceneNuke\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"ttRemoveEntireScene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3B, __HELP_NAME(\"ttRemoveEntireScene\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidCCPSceneNuke kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips3B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_37=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttCCPSceneNuke\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidCCPSceneNuke\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips3B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_37=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x9F 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_28=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_37=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2E 0x00 0x00 0x01    // '????.???' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1B 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x2E 0x00 0x00 0x02    // '????.???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x2E 0x00 0x00 0x03    // '???.???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_37=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_37, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x6F 0x76 0x65    // '??Remove' \n\t0x20 0x45 0x6E 0x74 0x69 0x72 0x65 0x20    // ' Entire ' \n\t0x53 0x63 0x65 0x6E 0x65 0x0D 0x0A 0x52    // 'Scene??R' \n\t0x65 0x6D 0x6F 0x76 0x65 0x20 0x74 0x68    // 'emove th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x73 0x63 0x65 0x6E 0x65 0x2E    // 't scene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3C= kttCCPActorNuke\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"ttRemove3DObject\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3C, __HELP_NAME(\"ttRemove3DObject\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidCCPActorNuke kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips3C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttCCPActorNuke\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidCCPActorNuke\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips3C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD7 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x56 0x00 0x00 0x01    // '????V???' \n\t0x00 0x00 0x00 0x00 0x10 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x18 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x56 0x00 0x00 0x02    // '????V???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x56 0x00 0x00 0x03    // '???V???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x6F 0x76 0x65    // '??Remove' \n\t0x20 0x33 0x44 0x20 0x4F 0x62 0x6A 0x65    // ' 3D Obje' \n\t0x63 0x74 0x0D 0x0A 0x52 0x65 0x6D 0x6F    // 'ct??Remo' \n\t0x76 0x65 0x20 0x74 0x68 0x65 0x20 0x61    // 've the a' \n\t0x63 0x74 0x6F 0x72 0x2C 0x20 0x70 0x72    // 'ctor, pr' \n\t0x6F 0x70 0x2C 0x20 0x6F 0x72 0x20 0x33    // 'op, or 3' \n\t0x44 0x20 0x77 0x6F 0x72 0x64 0x20 0x79    // 'D word y' \n\t0x6F 0x75 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'ou click' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x74 0x68    // ' from th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x73 0x63 0x65 0x6E 0x65 0x2E    // 't scene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3D= kttCCPTboxNuke\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"ttRemoveWordBox\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3D, __HELP_NAME(\"ttRemoveWordBox\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidCCPActorNuke kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips3D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_39=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttCCPTboxNuke\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidCCPActorNuke\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips3D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_39=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2B=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_39=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x01    // '????F???' \n\t0x00 0x00 0x00 0x00 0x0F 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x17 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x2F 0x00 0x00 0x02    // '????/???' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0x02    // '????F???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x11 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x46 0x00 0x00 0x03    // '???F???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_39=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_39, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x6F 0x76 0x65    // '??Remove' \n\t0x20 0x57 0x6F 0x72 0x64 0x20 0x42 0x6F    // ' Word Bo' \n\t0x78 0x0D 0x0A 0x52 0x65 0x6D 0x6F 0x76    // 'x??Remov' \n\t0x65 0x20 0x74 0x68 0x65 0x20 0x77 0x6F    // 'e the wo' \n\t0x72 0x64 0x20 0x62 0x6F 0x78 0x20 0x79    // 'rd box y' \n\t0x6F 0x75 0x20 0x63 0x6C 0x69 0x63 0x6B    // 'ou click' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x74 0x68    // ' from th' \n\t0x65 0x20 0x63 0x75 0x72 0x72 0x65 0x6E    // 'e curren' \n\t0x74 0x20 0x73 0x63 0x65 0x6E 0x65 0x2E    // 't scene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3E= kttCCPCopyRoute\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"ttCopyPath\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3E, __HELP_NAME(\"ttCopyPath\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidCCPCopyRoute kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips3E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_23=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttCCPCopyRoute\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidCCPCopyRoute\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips3E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_23=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_20=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_23=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x42 0x00 0x00 0x01    // '????B???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x02    // '????B???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x42 0x00 0x00 0x03    // '???B???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_23=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x70 0x79 0x20 0x50    // '??Copy P' \n\t0x61 0x74 0x68 0x0D 0x0A 0x43 0x6F 0x70    // 'ath??Cop' \n\t0x79 0x20 0x74 0x68 0x65 0x20 0x70 0x61    // 'y the pa' \n\t0x74 0x68 0x20 0x6F 0x66 0x20 0x74 0x68    // 'th of th' \n\t0x65 0x20 0x61 0x63 0x74 0x6F 0x72 0x2C    // 'e actor,' \n\t0x20 0x70 0x72 0x6F 0x70 0x2C 0x20 0x6F    // ' prop, o' \n\t0x72 0x20 0x33 0x44 0x20 0x77 0x6F 0x72    // 'r 3D wor' \n\t0x64 0x20 0x79 0x6F 0x75 0x20 0x63 0x6C    // 'd you cl' \n\t0x69 0x63 0x6B 0x2E                        // 'ick.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3F= kttCCPPaste\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"ttPaste\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3F, __HELP_NAME(\"ttPaste\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidCCPPaste kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips3F\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttCCPPaste\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidCCPPaste\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips3F\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xE6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_13=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0x01    // '????S???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x02    // '????5???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x53 0x00 0x00 0x03    // '???S???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x61 0x73 0x74 0x65 0x0D    // '??Paste?' \n\t0x0A 0x50 0x61 0x73 0x74 0x65 0x20 0x77    // '?Paste w' \n\t0x68 0x61 0x74 0x65 0x76 0x65 0x72 0x20    // 'hatever ' \n\t0x79 0x6F 0x75 0x20 0x6D 0x6F 0x73 0x74    // 'you most' \n\t0x20 0x72 0x65 0x63 0x65 0x6E 0x74 0x6C    // ' recentl' \n\t0x79 0x20 0x63 0x75 0x74 0x20 0x6F 0x72    // 'y cut or' \n\t0x20 0x63 0x6F 0x70 0x69 0x65 0x64 0x20    // ' copied ' \n\t0x61 0x74 0x20 0x74 0x68 0x65 0x20 0x70    // 'at the p' \n\t0x6C 0x61 0x63 0x65 0x20 0x77 0x68 0x65    // 'lace whe' \n\t0x72 0x65 0x20 0x79 0x6F 0x75 0x20 0x63    // 're you c' \n\t0x6C 0x69 0x63 0x6B 0x2E                   // 'lick.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_40= kttCCPCopy\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_40, __HELP_NAME(\"ttCopy\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_40, __HELP_NAME(\"ttCopy\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidCCPCopy kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips40\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_35=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_40, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttCCPCopy\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidCCPCopy\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips40\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_35=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_31=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_35=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x47 0x00 0x00 0x01    // '????G???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0A 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x40 0x00 0x00 0x02    // '????@???' \n\t0x00 0x00 0x00 0x00 0x42 0x00 0x00 0x02    // '????B???' \n\t0x01 0x00 0x00 0x00 0x47 0x00 0x00 0x02    // '????G???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x47 0x00 0x00 0x03    // '???G???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_35=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_35, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6F 0x70 0x79 0x0D 0x0A    // '??Copy??' \n\t0x43 0x6F 0x70 0x79 0x20 0x77 0x68 0x61    // 'Copy wha' \n\t0x74 0x20 0x79 0x6F 0x75 0x20 0x63 0x6C    // 't you cl' \n\t0x69 0x63 0x6B 0x20 0x73 0x6F 0x20 0x74    // 'ick so t' \n\t0x68 0x61 0x74 0x20 0x79 0x6F 0x75 0x20    // 'hat you ' \n\t0x63 0x61 0x6E 0x20 0x70 0x61 0x73 0x74    // 'can past' \n\t0x65 0x20 0x69 0x74 0x20 0x69 0x6E 0x20    // 'e it in ' \n\t0x61 0x6E 0x6F 0x74 0x68 0x65 0x72 0x20    // 'another ' \n\t0x6C 0x6F 0x63 0x61 0x74 0x69 0x6F 0x6E    // 'location' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_41= kttCCPCut\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_41, __HELP_NAME(\"ttCut\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_41, __HELP_NAME(\"ttCut\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidCCPCut kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips41\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_38=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_41, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttCCPCut\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidCCPCut\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips41\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_38=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_41, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_32=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\nAG(4)\n\tITEM LONG 0x2000005\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_38=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x4C 0x00 0x00 0x01    // '????L???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0D 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x25 0x00 0x00 0x02    // '????%???' \n\t0x00 0x00 0x00 0x00 0x26 0x00 0x00 0x02    // '????&???' \n\t0x01 0x00 0x00 0x00 0x45 0x00 0x00 0x02    // '????E???' \n\t0x00 0x00 0x00 0x00 0x47 0x00 0x00 0x02    // '????G???' \n\t0x01 0x00 0x00 0x00 0x4C 0x00 0x00 0x02    // '????L???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x4C 0x00 0x00 0x03    // '???L???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_38=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_38, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x75 0x74 0x0D 0x0A 0x43    // '??Cut??C' \n\t0x75 0x74 0x20 0x77 0x68 0x61 0x74 0x20    // 'ut what ' \n\t0x79 0x6F 0x75 0x20 0x63 0x6C 0x69 0x63    // 'you clic' \n\t0x6B 0x2E 0x20 0x20 0x49 0x66 0x20 0x79    // 'k.  If y' \n\t0x6F 0x75 0x20 0x77 0x61 0x6E 0x74 0x2C    // 'ou want,' \n\t0x20 0x79 0x6F 0x75 0x20 0x63 0x61 0x6E    // ' you can' \n\t0x20 0x70 0x61 0x73 0x74 0x65 0x20 0x69    // ' paste i' \n\t0x74 0x20 0x69 0x6E 0x20 0x61 0x6E 0x6F    // 't in ano' \n\t0x74 0x68 0x65 0x72 0x20 0x6C 0x6F 0x63    // 'ther loc' \n\t0x61 0x74 0x69 0x6F 0x6E 0x2E              // 'ation.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_42= kttPortfolio\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_42, __HELP_NAME(\"ttPortfolio\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_42, __HELP_NAME(\"ttPortfolio\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidPortfolio kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips42\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_36=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_42, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttPortfolio\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPortfolio\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips42\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_36=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_42, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1F=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\nAG(4)\n\tITEM LONG 0x2000004\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_36=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x49 0x00 0x00 0x01    // '????I???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0B 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x00 0x00 0x02    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x02    // '????#???' \n\t0x01 0x00 0x00 0x00 0x36 0x00 0x00 0x02    // '????6???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0B 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x49 0x00 0x00 0x03    // '???I???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_36=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_36, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x6F 0x72 0x74 0x66 0x6F    // '??Portfo' \n\t0x6C 0x69 0x6F 0x0D 0x0A 0x53 0x74 0x61    // 'lio??Sta' \n\t0x72 0x74 0x20 0x61 0x20 0x6E 0x65 0x77    // 'rt a new' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20    // ' movie, ' \n\t0x6F 0x70 0x65 0x6E 0x20 0x61 0x6E 0x20    // 'open an ' \n\t0x65 0x78 0x69 0x73 0x74 0x69 0x6E 0x67    // 'existing' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20    // ' movie, ' \n\t0x61 0x6E 0x64 0x20 0x73 0x61 0x76 0x65    // 'and save' \n\t0x20 0x79 0x6F 0x75 0x72 0x20 0x77 0x6F    // ' your wo' \n\t0x72 0x6B 0x21                             // 'rk!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_43= kttPortsNew\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_43, __HELP_NAME(\"ttPortfolioNew\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_43, __HELP_NAME(\"ttPortfolioNew\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidPortsNew kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips43\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_43, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttPortsNew\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPortsNew\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips43\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_43, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xBF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_33=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x02    // '????$???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x24 0x00 0x00 0x03    // '???$???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3D, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x65 0x77 0x0D 0x0A 0x53    // '??New??S' \n\t0x74 0x61 0x72 0x74 0x20 0x61 0x20 0x6E    // 'tart a n' \n\t0x65 0x77 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'ew movie' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x73 0x63    // ' from sc' \n\t0x72 0x61 0x74 0x63 0x68 0x21              // 'ratch!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_44= kttPortsPortfolio\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"ttPortfolioOpen\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_44, __HELP_NAME(\"ttPortfolioOpen\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidPortsPortfolio kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips44\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_26=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttPortsPortfolio\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPortsPortfolio\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips44\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_26=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_44, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x90 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_22=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_26=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x01    // '????5???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x1E 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x02    // '????#???' \n\t0x01 0x00 0x00 0x00 0x35 0x00 0x00 0x02    // '????5???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x35 0x00 0x00 0x03    // '???5???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_26=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_26, 0x0)\n\tBYTE\n\t0x03 0x03 0x4F 0x70 0x65 0x6E 0x0D 0x0A    // '??Open??' \n\t0x4F 0x70 0x65 0x6E 0x20 0x61 0x20 0x6D    // 'Open a m' \n\t0x6F 0x76 0x69 0x65 0x20 0x73 0x6F 0x20    // 'ovie so ' \n\t0x79 0x6F 0x75 0x20 0x63 0x61 0x6E 0x20    // 'you can ' \n\t0x77 0x61 0x74 0x63 0x68 0x20 0x69 0x74    // 'watch it' \n\t0x20 0x6F 0x72 0x20 0x77 0x6F 0x72 0x6B    // ' or work' \n\t0x20 0x6F 0x6E 0x20 0x69 0x74 0x21         // ' on it!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_45= kttPortsSave\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"ttPortfolioSave\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_45, __HELP_NAME(\"ttPortfolioSave\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidPortsSave kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips45\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttPortsSave\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPortsSave\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips45\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_45, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x63 0x00 0x00 0x00    // '????c???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_A=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x15 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x14 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x15 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x15 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x61 0x76 0x65 0x0D 0x0A    // '??Save??' \n\t0x53 0x61 0x76 0x65 0x20 0x79 0x6F 0x75    // 'Save you' \n\t0x72 0x20 0x77 0x6F 0x72 0x6B 0x2E         // 'r work.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_46= kttPortsSaveAs\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"ttPortfolioSaveAs\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_46, __HELP_NAME(\"ttPortfolioSaveAs\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidPortsSaveAs kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips46\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttPortsSaveAs\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPortsSaveAs\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips46\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_46, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x89 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_34=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x33 0x00 0x00 0x01    // '????3???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x33 0x00 0x00 0x03    // '???3???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3A, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x61 0x76 0x65 0x20 0x41    // '??Save A' \n\t0x73 0x0D 0x0A 0x53 0x61 0x76 0x65 0x20    // 's??Save ' \n\t0x61 0x20 0x63 0x6F 0x70 0x79 0x20 0x6F    // 'a copy o' \n\t0x66 0x20 0x79 0x6F 0x75 0x72 0x20 0x6D    // 'f your m' \n\t0x6F 0x76 0x69 0x65 0x20 0x77 0x69 0x74    // 'ovie wit' \n\t0x68 0x20 0x61 0x20 0x6E 0x65 0x77 0x20    // 'h a new ' \n\t0x6E 0x61 0x6D 0x65 0x2E                   // 'name.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_47= kttBook\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_47, __HELP_NAME(\"ttHelp\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_47, __HELP_NAME(\"ttHelp\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidBook kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips47\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_31=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_47, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttBook\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidBook\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips47\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_31=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_47, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAA 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_29=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_31=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x09 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x01    // '????C???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x43 0x00 0x00 0x02    // '????C???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x43 0x00 0x00 0x03    // '???C???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_31=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_31, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x65 0x6C 0x70 0x20 0x4D    // '??Help M' \n\t0x61 0x63 0x68 0x69 0x6E 0x65 0x0D 0x0A    // 'achine??' \n\t0x46 0x69 0x6E 0x64 0x20 0x61 0x6C 0x6C    // 'Find all' \n\t0x20 0x74 0x68 0x65 0x20 0x61 0x6E 0x73    // ' the ans' \n\t0x77 0x65 0x72 0x73 0x20 0x74 0x6F 0x20    // 'wers to ' \n\t0x79 0x6F 0x75 0x72 0x20 0x6D 0x6F 0x76    // 'your mov' \n\t0x69 0x65 0x2D 0x6D 0x61 0x6B 0x69 0x6E    // 'ie-makin' \n\t0x67 0x20 0x71 0x75 0x65 0x73 0x74 0x69    // 'g questi' \n\t0x6F 0x6E 0x73 0x21 0x20                   // 'ons! ' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_48= kttMap\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_48, __HELP_NAME(\"ttMap\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_48, __HELP_NAME(\"ttMap\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidMap kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips48\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_41=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_48, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttMap\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidMap\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips48\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_41=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_48, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x97 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_35=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\nAG(4)\n\tITEM LONG 0x2000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_41=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x01    // '????7???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0x02    // '????7???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x05 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x37 0x00 0x00 0x03    // '???7???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_41=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_41, 0x0)\n\tBYTE\n\t0x03 0x03 0x4D 0x61 0x70 0x0D 0x0A 0x51    // '??Map??Q' \n\t0x75 0x69 0x63 0x6B 0x6C 0x79 0x20 0x7A    // 'uickly z' \n\t0x69 0x70 0x20 0x74 0x6F 0x20 0x74 0x68    // 'ip to th' \n\t0x65 0x20 0x72 0x6F 0x6F 0x6D 0x20 0x6F    // 'e room o' \n\t0x72 0x20 0x70 0x72 0x6F 0x6A 0x65 0x63    // 'r projec' \n\t0x74 0x20 0x6F 0x66 0x20 0x79 0x6F 0x75    // 't of you' \n\t0x72 0x20 0x63 0x68 0x6F 0x69 0x63 0x65    // 'r choice' \n\t0x2E                                       // '.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_49= kttExit\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"ttExit\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_49, __HELP_NAME(\"ttExit\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidExit kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips49\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttExit\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidExit\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips49\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_49, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x4F 0x00 0x00 0x00    // '????O???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x06 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x13 0x00 0x00 0x01    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x04 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x45 0x78 0x69 0x74 0x0D 0x0A    // '??Exit??' \n\t0x51 0x75 0x69 0x74 0x20 0x77 0x6F 0x72    // 'Quit wor' \n\t0x6B 0x69 0x6E 0x67 0x21                   // 'king!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4A= kttRollCallActorFrame1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4A, __HELP_NAME(\"ttRollCallActor1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4A, __HELP_NAME(\"ttRollCallActor1\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidRollCallActorFrame1 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttRollCallActorFrame1\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidRollCallActorFrame1\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x82 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4D, 0x0)\n\tBYTE\n\t0x03 0x03 0x7E 0x31 0x32 0x38 0x30         // '??~1280' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4B= kttRollCallActorFrame2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4B, __HELP_NAME(\"ttRollCallActor2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4B, __HELP_NAME(\"ttRollCallActor2\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidRollCallActorFrame2 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_52=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttRollCallActorFrame2\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidRollCallActorFrame2\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_52=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x82 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_52=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_52, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_52=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_52, 0x0)\n\tBYTE\n\t0x03 0x03 0x7E 0x31 0x32 0x38 0x31         // '??~1281' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4C= kttRollCallActorFrame3\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4C, __HELP_NAME(\"ttRollCallActor3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4C, __HELP_NAME(\"ttRollCallActor3\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidRollCallActorFrame3 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttRollCallActorFrame3\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidRollCallActorFrame3\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x82 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4C, 0x0)\n\tBYTE\n\t0x03 0x03 0x7E 0x31 0x32 0x38 0x32         // '??~1282' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4D= kttRollCallActorFrame4\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4D, __HELP_NAME(\"ttRollCallActor4\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4D, __HELP_NAME(\"ttRollCallActor4\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidRollCallActorFrame4 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttRollCallActorFrame4\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidRollCallActorFrame4\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x82 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4F, 0x0)\n\tBYTE\n\t0x03 0x03 0x7E 0x31 0x32 0x38 0x33         // '??~1283' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4E= kttRollCallPropFrame1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4E, __HELP_NAME(\"ttRollCallProp1\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4E, __HELP_NAME(\"ttRollCallProp1\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidRollCallPropFrame1 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_51=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttRollCallPropFrame1\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidRollCallPropFrame1\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_51=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x82 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_51=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_51, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_51=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_51, 0x0)\n\tBYTE\n\t0x03 0x03 0x7E 0x31 0x32 0x39 0x36         // '??~1296' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4F= kttRollCallPropFrame2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4F, __HELP_NAME(\"ttRollCallProp2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4F, __HELP_NAME(\"ttRollCallProp2\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidRollCallPropFrame2 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttRollCallPropFrame2\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidRollCallPropFrame2\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x82 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4B, 0x0)\n\tBYTE\n\t0x03 0x03 0x7E 0x31 0x32 0x39 0x37         // '??~1297' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_50= kttRollCallPropFrame3\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_50, __HELP_NAME(\"ttRollCallProp3\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_50, __HELP_NAME(\"ttRollCallProp3\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidRollCallPropFrame3 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_17=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_50, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttRollCallPropFrame3\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidRollCallPropFrame3\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_17=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_50, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x82 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_17=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_17=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x03 0x03 0x7E 0x31 0x32 0x39 0x38         // '??~1298' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_51= kttRollCallPropFrame4\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"ttRollCallProp4\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_51, __HELP_NAME(\"ttRollCallProp4\")) __HELP_PACK2\n\tBO OSK LONG gobBalloonToolTip 0x0 kidRollCallPropFrame4 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_40=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"gobBalloonToolTip\"\n\tITEM\n\t\t\"kttRollCallPropFrame4\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidRollCallPropFrame4\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_40=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_51, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x82 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_40=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_40=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_40, 0x0)\n\tBYTE\n\t0x03 0x03 0x7E 0x31 0x32 0x39 0x39         // '??~1299' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_52= kttRemoveSound\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_52, __HELP_NAME(\"ttRemoveSound\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_52, __HELP_NAME(\"ttRemoveSound\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidSoundsClear kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips52\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5F=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_52, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttRemoveSound\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSoundsClear\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips52\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5F=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_52, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAC 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5F=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x5C 0x00 0x00 0x01    // '????\\???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0E 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x5C 0x00 0x00 0x03    // '???\\???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5F=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5F, 0x0)\n\tBYTE\n\t0x03 0x03 0x52 0x65 0x6D 0x6F 0x76 0x65    // '??Remove' \n\t0x20 0x53 0x6F 0x75 0x6E 0x64 0x0D 0x0A    // ' Sound??' \n\t0x52 0x65 0x6D 0x6F 0x76 0x65 0x20 0x61    // 'Remove a' \n\t0x20 0x73 0x6F 0x75 0x6E 0x64 0x20 0x62    // ' sound b' \n\t0x79 0x20 0x63 0x6C 0x69 0x63 0x6B 0x69    // 'y clicki' \n\t0x6E 0x67 0x20 0x74 0x68 0x65 0x20 0x6F    // 'ng the o' \n\t0x62 0x6A 0x65 0x63 0x74 0x20 0x6F 0x72    // 'bject or' \n\t0x20 0x62 0x61 0x63 0x6B 0x67 0x72 0x6F    // ' backgro' \n\t0x75 0x6E 0x64 0x20 0x79 0x6F 0x75 0x20    // 'und you ' \n\t0x61 0x74 0x74 0x61 0x63 0x68 0x65 0x64    // 'attached' \n\t0x20 0x74 0x68 0x65 0x20 0x73 0x6F 0x75    // ' the sou' \n\t0x6E 0x64 0x20 0x74 0x6F 0x2E              // 'nd to.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_53= kttRewindEnd\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_53, __HELP_NAME(\"ttFirstFrame\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_53, __HELP_NAME(\"ttFirstFrame\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidFrameRWEnd kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips53\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_53=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_53, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttRewindEnd\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidFrameRWEnd\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips53\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_53=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_53, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x83 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_53=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_53, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x32 0x00 0x00 0x01    // '????2???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x07 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x32 0x00 0x00 0x03    // '???2???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_53=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_53, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x69 0x72 0x73 0x74 0x0D    // '??First?' \n\t0x0A 0x47 0x6F 0x20 0x74 0x6F 0x20 0x74    // '?Go to t' \n\t0x68 0x65 0x20 0x66 0x69 0x72 0x73 0x74    // 'he first' \n\t0x20 0x66 0x72 0x61 0x6D 0x65 0x20 0x6F    // ' frame o' \n\t0x66 0x20 0x74 0x68 0x65 0x20 0x63 0x75    // 'f the cu' \n\t0x72 0x72 0x65 0x6E 0x74 0x20 0x73 0x63    // 'rrent sc' \n\t0x65 0x6E 0x65 0x2E                        // 'ene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_54= kttRewind\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_54, __HELP_NAME(\"ttPreviousFrame\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_54, __HELP_NAME(\"ttPreviousFrame\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidFrameRW kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips54\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_54, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttRewind\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidFrameRW\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips54\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_54, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x38 0x00 0x00 0x01    // '????8???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0A 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x38 0x00 0x00 0x03    // '???8???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5C, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x72 0x65 0x76 0x69 0x6F    // '??Previo' \n\t0x75 0x73 0x0D 0x0A 0x47 0x6F 0x20 0x74    // 'us??Go t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x70 0x72    // 'o the pr' \n\t0x65 0x76 0x69 0x6F 0x75 0x73 0x20 0x66    // 'evious f' \n\t0x72 0x61 0x6D 0x65 0x20 0x6F 0x66 0x20    // 'rame of ' \n\t0x74 0x68 0x65 0x20 0x63 0x75 0x72 0x72    // 'the curr' \n\t0x65 0x6E 0x74 0x20 0x73 0x63 0x65 0x6E    // 'ent scen' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_55= kttFForward\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_55, __HELP_NAME(\"ttNextFrame\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_55, __HELP_NAME(\"ttNextFrame\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidFrameFW kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips55\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_55=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_55, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttFForward\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidFrameFW\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips55\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_55=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_55, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x81 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_55=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_55, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x30 0x00 0x00 0x03    // '???0???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_55=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_55, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x65 0x78 0x74 0x0D 0x0A    // '??Next??' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x6E 0x65 0x78 0x74 0x20 0x66    // 'e next f' \n\t0x72 0x61 0x6D 0x65 0x20 0x6F 0x66 0x20    // 'rame of ' \n\t0x74 0x68 0x65 0x20 0x63 0x75 0x72 0x72    // 'the curr' \n\t0x65 0x6E 0x74 0x20 0x73 0x63 0x65 0x6E    // 'ent scen' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_56= kttFForwardEnd\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_56, __HELP_NAME(\"ttLastFrame\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_56, __HELP_NAME(\"ttLastFrame\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidFrameFWEnd kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips56\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_56, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttFForwardEnd\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidFrameFWEnd\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips56\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_2A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_56, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x80 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x30 0x00 0x00 0x01    // '????0???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x30 0x00 0x00 0x03    // '???0???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x03 0x03 0x4C 0x61 0x73 0x74 0x0D 0x0A    // '??Last??' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x6C 0x61 0x73 0x74 0x20 0x66    // 'e last f' \n\t0x72 0x61 0x6D 0x65 0x20 0x6F 0x66 0x20    // 'rame of ' \n\t0x74 0x68 0x65 0x20 0x63 0x75 0x72 0x72    // 'the curr' \n\t0x65 0x6E 0x74 0x20 0x73 0x63 0x65 0x6E    // 'ent scen' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_57= kttFirstScene\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_57, __HELP_NAME(\"ttFirstScene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_57, __HELP_NAME(\"ttFirstScene\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidSceneRWEnd kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips57\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_54=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_57, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttFirstScene\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSceneRWEnd\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips57\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_54=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_57, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x83 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_54=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_54, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x23 0x00 0x00 0x03    // '???#???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_54=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_54, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x69 0x72 0x73 0x74 0x20    // '??First ' \n\t0x53 0x63 0x65 0x6E 0x65 0x0D 0x0A 0x47    // 'Scene??G' \n\t0x6F 0x20 0x74 0x6F 0x20 0x74 0x68 0x65    // 'o to the' \n\t0x20 0x66 0x69 0x72 0x73 0x74 0x20 0x73    // ' first s' \n\t0x63 0x65 0x6E 0x65 0x2E                   // 'cene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_58= kttPrevScene\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_58, __HELP_NAME(\"ttPreviousScene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_58, __HELP_NAME(\"ttPreviousScene\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidSceneRW kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips58\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_58=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_58, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttPrevScene\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSceneRW\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips58\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_58=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_58, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x96 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_58=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_58, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x10 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x29 0x00 0x00 0x03    // '???)???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_58=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_58, 0x0)\n\tBYTE\n\t0x03 0x03 0x50 0x72 0x65 0x76 0x69 0x6F    // '??Previo' \n\t0x75 0x73 0x20 0x53 0x63 0x65 0x6E 0x65    // 'us Scene' \n\t0x0D 0x0A 0x47 0x6F 0x20 0x74 0x6F 0x20    // '??Go to ' \n\t0x74 0x68 0x65 0x20 0x70 0x72 0x65 0x76    // 'the prev' \n\t0x69 0x6F 0x75 0x73 0x20 0x73 0x63 0x65    // 'ious sce' \n\t0x6E 0x65 0x2E                             // 'ne.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_59= kttNextScene\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_59, __HELP_NAME(\"ttNextScene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_59, __HELP_NAME(\"ttNextScene\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidSceneFW kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips59\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_59=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_59, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttNextScene\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSceneFW\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips59\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_59=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_59, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x81 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_59=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_59, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x21 0x00 0x00 0x03    // '???!???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_59=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_59, 0x0)\n\tBYTE\n\t0x03 0x03 0x4E 0x65 0x78 0x74 0x20 0x53    // '??Next S' \n\t0x63 0x65 0x6E 0x65 0x0D 0x0A 0x47 0x6F    // 'cene??Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x6E 0x65 0x78 0x74 0x20 0x73 0x63 0x65    // 'next sce' \n\t0x6E 0x65 0x2E                             // 'ne.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5A= kttLastScene\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5A, __HELP_NAME(\"ttLastScene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5A, __HELP_NAME(\"ttLastScene\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 0x0 kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips5A\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttLastScene\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips5A\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x80 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0C 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x21 0x00 0x00 0x03    // '???!???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5A, 0x0)\n\tBYTE\n\t0x03 0x03 0x4C 0x61 0x73 0x74 0x20 0x53    // '??Last S' \n\t0x63 0x65 0x6E 0x65 0x0D 0x0A 0x47 0x6F    // 'cene??Go' \n\t0x20 0x74 0x6F 0x20 0x74 0x68 0x65 0x20    // ' to the ' \n\t0x6C 0x61 0x73 0x74 0x20 0x73 0x63 0x65    // 'last sce' \n\t0x6E 0x65 0x2E                             // 'ne.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5B= kttActorsLaterButton\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5B, __HELP_NAME(\"ttForward\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5B, __HELP_NAME(\"ttForward\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidActorsLaterButton kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips5B\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5D=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttActorsLaterButton\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsLaterButton\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips5B\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5D=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x61 0x00 0x00 0x00    // '????a???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5D=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0x01    // '????(???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x09 0x00 0x00 0x03    // '???????' \n\t0x0F 0x00 0x00 0xFD 0x28 0x00 0x00 0x03    // '???(???' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5D=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5D, 0x0)\n\tBYTE\n\t0x03 0x03 0x46 0x6F 0x72 0x77 0x61 0x72    // '??Forwar' \n\t0x64 0x0D 0x0A 0x4D 0x6F 0x76 0x65 0x20    // 'd??Move ' \n\t0x74 0x68 0x65 0x20 0x6D 0x6F 0x76 0x69    // 'the movi' \n\t0x65 0x20 0x66 0x6F 0x72 0x77 0x61 0x72    // 'e forwar' \n\t0x64 0x20 0x69 0x6E 0x20 0x74 0x69 0x6D    // 'd in tim' \n\t0x65 0x2E                                  // 'e.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5C= kttActorsSoonerButton\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5C, __HELP_NAME(\"ttBack\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5C, __HELP_NAME(\"ttBack\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidActorsSoonerButton kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips5C\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttActorsSoonerButton\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidActorsSoonerButton\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips5C\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x60 0x00 0x00 0x00    // '????`???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x22 0x00 0x00 0x01    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x06 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x04    // '????\"???' \n\t0x00 0x00 0x00 0x00 0x22 0x00 0x00 0x40    // '????\"??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5B, 0x0)\n\tBYTE\n\t0x03 0x03 0x42 0x61 0x63 0x6B 0x0D 0x0A    // '??Back??' \n\t0x4D 0x6F 0x76 0x65 0x20 0x74 0x68 0x65    // 'Move the' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x20 0x62    // ' movie b' \n\t0x61 0x63 0x6B 0x20 0x69 0x6E 0x20 0x74    // 'ack in t' \n\t0x69 0x6D 0x65 0x2E                        // 'ime.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5D= kttFrameSlider\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5D, __HELP_NAME(\"ttSliderFrame\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5D, __HELP_NAME(\"ttSliderFrame\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidFrameScrollbar kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips5D\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5E=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttFrameSlider\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidFrameScrollbar\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips5D\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5E=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAB 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5E=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x24 0x00 0x00 0x40    // '????$??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5E=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5E, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6C 0x69 0x64 0x65 0x72    // '??Slider' \n\t0x0D 0x0A 0x44 0x72 0x61 0x67 0x20 0x74    // '??Drag t' \n\t0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20 0x77    // 'o move w' \n\t0x69 0x74 0x68 0x69 0x6E 0x20 0x61 0x20    // 'ithin a ' \n\t0x73 0x63 0x65 0x6E 0x65 0x2E              // 'scene.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5E= kttSceneSlider\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5E, __HELP_NAME(\"ttSliderScene\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5E, __HELP_NAME(\"ttSliderScene\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonToolTip2 0x0 kidSceneScrollbar kidPlayToolTipSounds 0x0 0x0 0x57415645 kwavToolTips5E\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_57=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonToolTip2\"\n\tITEM\n\t\t\"kttSceneSlider\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"kidSceneScrollbar\"\n\tITEM\n\t\t\"kidPlayToolTipSounds\"\n\tITEM\n\t\t\"kwavToolTips5E\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_57=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_57=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_57, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x29 0x00 0x00 0x01    // '????)???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x08 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x40    // '????)??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_57=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_57, 0x0)\n\tBYTE\n\t0x03 0x03 0x53 0x6C 0x69 0x64 0x65 0x72    // '??Slider' \n\t0x0D 0x0A 0x44 0x72 0x61 0x67 0x20 0x74    // '??Drag t' \n\t0x6F 0x20 0x6D 0x6F 0x76 0x65 0x20 0x66    // 'o move f' \n\t0x72 0x6F 0x6D 0x20 0x73 0x63 0x65 0x6E    // 'rom scen' \n\t0x65 0x20 0x74 0x6F 0x20 0x73 0x63 0x65    // 'e to sce' \n\t0x6E 0x65 0x2E                             // 'ne.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/help/topics1.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#undef __HELP_NAME\n#undef __HELP_SYMBOL\n#undef __HELP_PACK\n#undef __HELP_PACK2\n#ifdef NO_HELP_NAMES\n#define __HELP_NAME(name) \"\"\n#else\n#define __HELP_NAME(name) name\n#endif\n#ifdef NO_HELP_SYMBOLS\n#define __HELP_SYMBOL(stuff)\n#else\n#define __HELP_SYMBOL(stuff) stuff\n#endif\n#ifdef PACK_HELP\n#define __HELP_PACK PACK\n#else\n#define __HELP_PACK\n#endif\n#ifdef HELP_SINGLE_CHUNK\n#define __HELP_PACK2\n#else\n#define __HELP_PACK2 __HELP_PACK\n#endif\n\nSET _help_48544F50_0= ktpcTheatre2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Mz movie help.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_0, __HELP_NAME(\"Mz movie help.\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloon1e kgobBalloon1e 0x0 ktpcTheatre2 0x17C 0xB4 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloon1e\"\n\tITEM\n\t\t\"ktpcTheatre2\"\n\tITEM\n\t\t\"kgobBalloon1e\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcTheatre2\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xAF 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_5=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\nAG(4)\n\tITEM LONG 0xC0000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x44 0x4B 0x4F 0x47 0x00 0x61 0x01 0x00    // 'DKOG?a??' \n\t\t\t0xFF 0xFF 0xFF 0xFF 0x03 0x03 0x0F 0x6B    // '???k' \n\t\t\t0x67 0x6F 0x62                             // 'gob' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0xC0000003\n\t\tVAR LONG 'GOKD' kgobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x04 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x05 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x89 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x26 0x00 0x00 0x40    // '????&??@' \n\t0x00 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x03 0x00 0x00 0x00 0x3D 0x00 0x00 0x40    // '????=??@' \n\t0x00 0x00 0x00 0x00 0x3F 0x00 0x00 0x40    // '???????@' \n\t0x05 0x00 0x00 0x00 0x58 0x00 0x00 0x40    // '????X??@' \n\t0x00 0x00 0x00 0x00 0x5A 0x00 0x00 0x40    // '????Z??@' \n\t0x06 0x00 0x00 0x00 0x70 0x00 0x00 0x40    // '????p??@' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x40    // '????r??@' \n\t0x07 0x00 0x00 0x00 0x89 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x72 0x00 0x00 0x82    // '????r??' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x28 0x00 0x00 0xC0    // '????(??' \n\t0x01 0x00 0x00 0x00 0x3F 0x00 0x00 0xC0    // '???????' \n\t0x04 0x00 0x00 0x00 0x5A 0x00 0x00 0xC0    // '????Z??' \n\t0x04 0x00 0x00 0x00 0x72 0x00 0x00 0xC0    // '????r??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x6F 0x20 0x79 0x6F 0x75    // '??Do you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x3A 0x0D 0x0A 0x01 0x09 0x57 0x6F 0x72    // ':????Wor' \n\t0x6B 0x20 0x6F 0x6E 0x20 0x74 0x68 0x69    // 'k on thi' \n\t0x73 0x20 0x6D 0x6F 0x76 0x69 0x65 0x3F    // 's movie?' \n\t0x0D 0x0A 0x01 0x09 0x43 0x72 0x65 0x61    // '????Crea' \n\t0x74 0x65 0x20 0x61 0x20 0x6E 0x65 0x77    // 'te a new' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x3F 0x0D    // ' movie??' \n\t0x0A 0x01 0x09 0x57 0x61 0x74 0x63 0x68    // '???Watch' \n\t0x20 0x74 0x68 0x69 0x73 0x20 0x6D 0x6F    // ' this mo' \n\t0x76 0x69 0x65 0x20 0x61 0x67 0x61 0x69    // 'vie agai' \n\t0x6E 0x3F 0x0D 0x0A 0x01 0x09 0x57 0x61    // 'n?????Wa' \n\t0x74 0x63 0x68 0x20 0x61 0x6E 0x6F 0x74    // 'tch anot' \n\t0x68 0x65 0x72 0x20 0x6D 0x6F 0x76 0x69    // 'her movi' \n\t0x65 0x3F 0x0D 0x0A 0x01 0x09 0x53 0x74    // 'e?????St' \n\t0x6F 0x70 0x20 0x77 0x61 0x74 0x63 0x68    // 'op watch' \n\t0x69 0x6E 0x67 0x20 0x6D 0x6F 0x76 0x69    // 'ing movi' \n\t0x65 0x73 0x3F                             // 'es?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_1= ktpcTheatre1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Mz theater help.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_1, __HELP_NAME(\"Mz theater help.\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloon1e kgobBalloon1e 0x0 ktpcTheatre1 0x140 0x96 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloon1e\"\n\tITEM\n\t\t\"ktpcTheatre1\"\n\tITEM\n\t\t\"kgobBalloon1e\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcTheatre1\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB6 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\nAG(4)\n\tITEM LONG 0xC0000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x44 0x4B 0x4F 0x47 0x00 0x61 0x01 0x00    // 'DKOG?a??' \n\t\t\t0xFF 0xFF 0xFF 0xFF 0x03 0x03 0x0F 0x6B    // '???k' \n\t\t\t0x67 0x6F 0x62                             // 'gob' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x2B 0x00 0x00 0x01    // '????+???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x40    // '???? ??@' \n\t0x02 0x00 0x00 0x00 0x25 0x00 0x00 0x40    // '????%??@' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x40    // '????'??@' \n\t0x03 0x00 0x00 0x00 0x2B 0x00 0x00 0x40    // '????+??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x27 0x00 0x00 0x82    // '????'??' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0xC0    // '???? ??' \n\t0x01 0x00 0x00 0x00 0x27 0x00 0x00 0xC0    // '????'??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x6F 0x75 0x6C 0x64 0x20    // '??Would ' \n\t0x79 0x6F 0x75 0x20 0x6C 0x69 0x6B 0x65    // 'you like' \n\t0x20 0x74 0x6F 0x20 0x73 0x65 0x65 0x20    // ' to see ' \n\t0x61 0x20 0x6D 0x6F 0x76 0x69 0x65 0x3F    // 'a movie?' \n\t0x0D 0x0A 0x01 0x09 0x59 0x65 0x73 0x0D    // '????Yes?' \n\t0x0A 0x01 0x09 0x4E 0x6F                   // '???No' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_2= ktpcSplotIdea2\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Splot machine callout # 2\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_2, __HELP_NAME(\"Splot machine callout # 2\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon4 kgobCalloutBalloon4 0x0 ktpcSplotIdea2 0x1D7 0x1C2 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon4\"\n\tITEM\n\t\t\"ktpcSplotIdea2\"\n\tITEM\n\t\t\"kgobCalloutBalloon4\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcSplotIdea2\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xA2 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x49 0x00 0x00 0x01    // '????I???' \n\t0x00 0x00 0x00 0x00 0x49 0x00 0x00 0x40    // '????I??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x43 0x6C 0x69 0x63 0x6B 0x20    // '??Click ' \n\t0x68 0x65 0x72 0x65 0x20 0x74 0x6F 0x20    // 'here to ' \n\t0x77 0x6F 0x72 0x6B 0x20 0x6F 0x6E 0x20    // 'work on ' \n\t0x74 0x68 0x69 0x73 0x20 0x6D 0x6F 0x76    // 'this mov' \n\t0x69 0x65 0x2C 0x20 0x6F 0x72 0x20 0x63    // 'ie, or c' \n\t0x6C 0x69 0x63 0x6B 0x20 0x43 0x61 0x6E    // 'lick Can' \n\t0x63 0x65 0x6C 0x20 0x74 0x6F 0x20 0x67    // 'cel to g' \n\t0x6F 0x20 0x62 0x61 0x63 0x6B 0x20 0x74    // 'o back t' \n\t0x6F 0x20 0x74 0x68 0x65 0x20 0x72 0x6F    // 'o the ro' \n\t0x6F 0x6D 0x2E                             // 'om.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_3= ktpcBackstage\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Mz backstage help.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_3, __HELP_NAME(\"Mz backstage help.\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloon1d kgobBalloon1d 0x0 ktpcBackstage 0x142 0x90 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloon1d\"\n\tITEM\n\t\t\"ktpcBackstage\"\n\tITEM\n\t\t\"kgobBalloon1d\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcBackstage\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_0=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\nAG(4)\n\tITEM LONG 0xC0000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x44 0x4B 0x4F 0x47 0x00 0x61 0x01 0x00    // 'DKOG?a??' \n\t\t\t0xFF 0xFF 0xFF 0xFF 0x03 0x03 0x0F 0x6B    // '???k' \n\t\t\t0x67 0x6F 0x62                             // 'gob' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0E 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x6B 0x00 0x00 0x01    // '????k???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x17 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x35 0x00 0x00 0x40    // '????5??@' \n\t0x00 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x03 0x00 0x00 0x00 0x53 0x00 0x00 0x40    // '????S??@' \n\t0x05 0x00 0x00 0x00 0x6B 0x00 0x00 0x40    // '????k??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x53 0x00 0x00 0x82    // '????S??' \n\t0x00 0x00 0x00 0x00 0x19 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x37 0x00 0x00 0xC0    // '????7??' \n\t0x01 0x00 0x00 0x00 0x53 0x00 0x00 0xC0    // '????S??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x68 0x61 0x74 0x20 0x64    // '??What d' \n\t0x6F 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'o you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x64 0x6F    // 'nt to do' \n\t0x3F 0x0D 0x0A 0x01 0x09 0x4D 0x61 0x6B    // '?????Mak' \n\t0x65 0x20 0x61 0x20 0x6D 0x6F 0x76 0x69    // 'e a movi' \n\t0x65 0x20 0x77 0x69 0x74 0x68 0x20 0x4D    // 'e with M' \n\t0x65 0x6C 0x61 0x6E 0x69 0x65 0x3F 0x0D    // 'elanie??' \n\t0x0A 0x01 0x09 0x47 0x65 0x74 0x20 0x61    // '???Get a' \n\t0x6E 0x20 0x69 0x64 0x65 0x61 0x20 0x66    // 'n idea f' \n\t0x6F 0x72 0x20 0x61 0x20 0x6D 0x6F 0x76    // 'or a mov' \n\t0x69 0x65 0x3F 0x0D 0x0A 0x01 0x09 0x43    // 'ie?????C' \n\t0x72 0x65 0x61 0x74 0x65 0x20 0x79 0x6F    // 'reate yo' \n\t0x75 0x72 0x20 0x6F 0x77 0x6E 0x20 0x6D    // 'ur own m' \n\t0x6F 0x76 0x69 0x65 0x3F                   // 'ovie?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_4= ktpcProject1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Project help.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_4, __HELP_NAME(\"Project help.\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloon1d kgobBalloon1d 0x0 ktpcProject1 0x1AA 0x140 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloon1d\"\n\tITEM\n\t\t\"ktpcProject1\"\n\tITEM\n\t\t\"kgobBalloon1d\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcProject1\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xCD 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_4=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\nAG(4)\n\tITEM LONG 0xC0000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x44 0x4B 0x4F 0x47 0x00 0x61 0x01 0x00    // 'DKOG?a??' \n\t\t\t0xFF 0xFF 0xFF 0xFF 0x03 0x03 0x0F 0x6B    // '???k' \n\t\t\t0x67 0x6F 0x62                             // 'gob' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' kgobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"kgobHelpSquishy\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x59 0x00 0x00 0x01    // '????Y???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0x40    // '???? ??@' \n\t0x02 0x00 0x00 0x00 0x37 0x00 0x00 0x40    // '????7??@' \n\t0x00 0x00 0x00 0x00 0x39 0x00 0x00 0x40    // '????9??@' \n\t0x03 0x00 0x00 0x00 0x59 0x00 0x00 0x40    // '????Y??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x39 0x00 0x00 0x82    // '????9??' \n\t0x00 0x00 0x00 0x00 0x20 0x00 0x00 0xC0    // '???? ??' \n\t0x01 0x00 0x00 0x00 0x39 0x00 0x00 0xC0    // '????9??' \n\t0x04 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x68 0x61 0x74 0x20 0x77    // '??What w' \n\t0x6F 0x75 0x6C 0x64 0x20 0x79 0x6F 0x75    // 'ould you' \n\t0x20 0x6C 0x69 0x6B 0x65 0x20 0x74 0x6F    // ' like to' \n\t0x20 0x64 0x6F 0x20 0x6E 0x6F 0x77 0x3F    // ' do now?' \n\t0x0D 0x0A 0x01 0x09 0x43 0x72 0x65 0x61    // '????Crea' \n\t0x74 0x65 0x20 0x61 0x20 0x66 0x6C 0x79    // 'te a fly' \n\t0x69 0x6E 0x67 0x20 0x6C 0x6F 0x67 0x6F    // 'ing logo' \n\t0x3F 0x0D 0x0A 0x01 0x09 0x4C 0x65 0x61    // '?????Lea' \n\t0x72 0x6E 0x20 0x6D 0x6F 0x76 0x69 0x65    // 'rn movie' \n\t0x2D 0x6D 0x61 0x6B 0x69 0x6E 0x67 0x20    // '-making ' \n\t0x74 0x65 0x63 0x68 0x6E 0x69 0x71 0x75    // 'techniqu' \n\t0x65 0x73 0x3F                             // 'es?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_5= ktpcIdeas\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"Mz Ideas help\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_5, __HELP_NAME(\"Mz Ideas help\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloon1e kgobBalloon1e 0x0 ktpcIdeas 0x168 0x50 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloon1e\"\n\tITEM\n\t\t\"ktpcIdeas\"\n\tITEM\n\t\t\"kgobBalloon1e\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcIdeas\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x16 0x01 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_9=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\nAG(4)\n\tITEM LONG 0xC0000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x44 0x4B 0x4F 0x47 0x00 0x61 0x01 0x00    // 'DKOG?a??' \n\t\t\t0xFF 0xFF 0xFF 0xFF 0x03 0x03 0x0F 0x6B    // '???k' \n\t\t\t0x67 0x6F 0x62                             // 'gob' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x62 0x00 0x00 0x01    // '????b???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x36 0x00 0x00 0x40    // '????6??@' \n\t0x00 0x00 0x00 0x00 0x38 0x00 0x00 0x40    // '????8??@' \n\t0x03 0x00 0x00 0x00 0x62 0x00 0x00 0x40    // '????b??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x38 0x00 0x00 0x82    // '????8??' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x38 0x00 0x00 0xC0    // '????8??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x6F 0x20 0x79 0x6F 0x75    // '??Do you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x3A 0x0D 0x0A 0x01 0x09 0x47 0x65 0x74    // ':????Get' \n\t0x20 0x61 0x6E 0x20 0x69 0x64 0x65 0x61    // ' an idea' \n\t0x20 0x66 0x72 0x6F 0x6D 0x20 0x74 0x68    // ' from th' \n\t0x65 0x20 0x53 0x70 0x6C 0x6F 0x74 0x20    // 'e Splot ' \n\t0x4D 0x61 0x63 0x68 0x69 0x6E 0x65 0x3F    // 'Machine?' \n\t0x0D 0x0A 0x01 0x09 0x52 0x65 0x61 0x64    // '????Read' \n\t0x20 0x61 0x63 0x74 0x6F 0x72 0x20 0x72    // ' actor r' \n\t0xE9 0x73 0x75 0x6D 0xE9 0x73 0x20 0x66    // 'sums f' \n\t0x72 0x6F 0x6D 0x20 0x74 0x68 0x65 0x20    // 'rom the ' \n\t0x54 0x61 0x6C 0x65 0x6E 0x74 0x20 0x42    // 'Talent B' \n\t0x6F 0x6F 0x6B 0x3F                        // 'ook?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_6= ktpcStudio1\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"Studio help.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_6, __HELP_NAME(\"Studio help.\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloon1d kgobBalloon1d 0x0 ktpcStudio1 0x1AA 0x78 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloon1d\"\n\tITEM\n\t\t\"ktpcStudio1\"\n\tITEM\n\t\t\"kgobBalloon1d\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcStudio1\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC0 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x07 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x58 0x00 0x00 0x01    // '????X???' \n\t0x00 0x00 0x00 0x00 0x18 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x1E 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x50 0x00 0x00 0x03    // '????P???' \n\t0x0A 0x00 0x00 0xFD 0x57 0x00 0x00 0x03    // '???W???' \n\t0x00 0x00 0x00 0x00 0x58 0x00 0x00 0x40    // '????X??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x48 0x65 0x79 0x21 0x20 0x59    // '??Hey! Y' \n\t0x6F 0x75 0x20 0x6D 0x61 0x64 0x65 0x20    // 'ou made ' \n\t0x69 0x74 0x20 0x74 0x6F 0x20 0x74 0x68    // 'it to th' \n\t0x65 0x20 0x53 0x74 0x75 0x64 0x69 0x6F    // 'e Studio' \n\t0x21 0x20 0x20 0x57 0x68 0x65 0x6E 0x20    // '!  When ' \n\t0x79 0x6F 0x75 0x27 0x72 0x65 0x20 0x72    // 'you're r' \n\t0x65 0x61 0x64 0x79 0x20 0x74 0x6F 0x20    // 'eady to ' \n\t0x63 0x72 0x65 0x61 0x74 0x65 0x20 0x61    // 'create a' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x2C 0x20    // ' movie, ' \n\t0x63 0x6C 0x69 0x63 0x6B 0x20 0x74 0x68    // 'click th' \n\t0x65 0x20 0x54 0x6F 0x6F 0x6C 0x62 0x6F    // 'e Toolbo' \n\t0x78 0x21                                  // 'x!' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_7= ktpcSplotIdea\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"Splot machine callout.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_7, __HELP_NAME(\"Splot machine callout.\")) __HELP_PACK2\n\tBO OSK LONG kgobCalloutBalloon4 kgobCalloutBalloon4 0x0 ktpcSplotIdea 0x244 0xEB 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobCalloutBalloon4\"\n\tITEM\n\t\t\"ktpcSplotIdea\"\n\tITEM\n\t\t\"kgobCalloutBalloon4\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcSplotIdea\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x5B 0x00 0x00 0x00    // '????[???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x03 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x21 0x00 0x00 0x01    // '????!???' \n\t0x00 0x00 0x00 0x00 0x21 0x00 0x00 0x40    // '????!??@' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x6F 0x20 0x67 0x65 0x74    // '??To get' \n\t0x20 0x61 0x6E 0x20 0x69 0x64 0x65 0x61    // ' an idea' \n\t0x2C 0x20 0x63 0x6C 0x69 0x63 0x6B 0x20    // ', click ' \n\t0x74 0x68 0x69 0x73 0x20 0x6C 0x65 0x76    // 'this lev' \n\t0x65 0x72 0x2E                             // 'er.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16042= ktpcLoginChoice\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16042, __HELP_NAME(\"Login: Choices\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16042, __HELP_NAME(\"Login: Choices\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloonBlank kgobBalloonBlank 0x0 ktpcLoginChoice 0x28 0x8C 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16042, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloonBlank\"\n\tITEM\n\t\t\"ktpcLoginChoice\"\n\tITEM\n\t\t\"kgobBalloonBlank\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcLoginChoice\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16042, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xED 0x01 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_8=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\nAG(4)\n\tITEM LONG 0xC0000006\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x44 0x4B 0x4F 0x47 0x00 0x61 0x01 0x00    // 'DKOG?a??' \n\t\t\t0xFF 0xFF 0xFF 0xFF 0x03 0x03 0x0F 0x6B    // '???k' \n\t\t\t0x67 0x6F 0x62                             // 'gob' \n\tITEM LONG 0x200000B\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x06 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x03 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x04 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0xC0000001\n\t\tVAR LONG 'GOKD' _gobHelpSquishy 0xFFFFFFFF __HELP_SYMBOL( STN \"_gobHelpSquishy\" )\n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x05 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x07 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x45 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // 'E???????' \n\t0x01 0x00 0x10 0x00 0x04 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x0C 0x00 0x27 0x00 0x00 0x01    // '????'???' \n\t0x00 0x00 0x08 0x00 0x2C 0x00 0x00 0x01    // '????,???' \n\t0x01 0x00 0x0C 0x00 0xB7 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x0C 0x00 0xB9 0x00 0x00 0x01    // '???????' \n\t0x01 0x00 0x0C 0x00 0xD8 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x0C 0x00 0xDC 0x00 0x00 0x01    // '???????' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x02    // '????????' \n\t0x02 0x00 0x00 0x00 0x0A 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x02 0x00 0x00 0x00 0x1C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x1E 0x00 0x00 0x02    // '????????' \n\t0x02 0x00 0x00 0x00 0x25 0x00 0x00 0x02    // '????%???' \n\t0x00 0x00 0x00 0x00 0x27 0x00 0x00 0x02    // '????'???' \n\t0x02 0x00 0x00 0x00 0x29 0x00 0x00 0x02    // '????)???' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x02    // '????,???' \n\t0x02 0x00 0x00 0x00 0x2E 0x00 0x00 0x02    // '????.???' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x02    // '????b???' \n\t0x02 0x00 0x00 0x00 0x64 0x00 0x00 0x02    // '????d???' \n\t0x00 0x00 0x00 0x00 0x69 0x00 0x00 0x02    // '????i???' \n\t0x02 0x00 0x00 0x00 0x6B 0x00 0x00 0x02    // '????k???' \n\t0x00 0x00 0x00 0x00 0x72 0x00 0x00 0x02    // '????r???' \n\t0x02 0x00 0x00 0x00 0x92 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x93 0x00 0x00 0x02    // '???????' \n\t0x02 0x00 0x00 0x00 0xB1 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xB2 0x00 0x00 0x02    // '???????' \n\t0x02 0x00 0x00 0x00 0xCB 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0xD8 0x00 0x00 0x02    // '???????' \n\t0x02 0x00 0x00 0x00 0xDC 0x00 0x00 0x02    // '???????' \n\t0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x03    // '????????' \n\t0x22 0x00 0x00 0xFD 0x25 0x00 0x00 0x03    // '\"??%???' \n\t0x00 0x00 0x00 0x00 0x29 0x00 0x00 0x03    // '????)???' \n\t0x0F 0x00 0x00 0xFD 0xDA 0x00 0x00 0x03    // '??????' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x05    // '????,???' \n\t0x05 0x00 0x00 0x00 0x41 0x00 0x00 0x05    // '????A???' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x05    // '????b???' \n\t0x02 0x00 0x00 0x00 0x72 0x00 0x00 0x05    // '????r???' \n\t0x00 0x00 0x00 0x00 0x74 0x00 0x00 0x05    // '????t???' \n\t0x03 0x00 0x00 0x00 0x93 0x00 0x00 0x05    // '???????' \n\t0x00 0x00 0x00 0x00 0x95 0x00 0x00 0x05    // '???????' \n\t0x04 0x00 0x00 0x00 0xB2 0x00 0x00 0x05    // '???????' \n\t0x00 0x00 0x00 0x00 0xB5 0x00 0x00 0x05    // '???????' \n\t0x05 0x00 0x00 0x00 0xB7 0x00 0x00 0x05    // '???????' \n\t0x01 0x00 0x00 0x00 0xD1 0x00 0x00 0x05    // '???????' \n\t0x05 0x00 0x00 0x00 0xD8 0x00 0x00 0x05    // '???????' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0x40    // '????,??@' \n\t0x03 0x00 0x00 0x00 0x41 0x00 0x00 0x40    // '????A??@' \n\t0x00 0x00 0x00 0x00 0x46 0x00 0x00 0x40    // '????F??@' \n\t0x04 0x00 0x00 0x00 0x5D 0x00 0x00 0x40    // '????]??@' \n\t0x00 0x00 0x00 0x00 0x62 0x00 0x00 0x40    // '????b??@' \n\t0x06 0x00 0x00 0x00 0x72 0x00 0x00 0x40    // '????r??@' \n\t0x00 0x00 0x00 0x00 0x77 0x00 0x00 0x40    // '????w??@' \n\t0x07 0x00 0x00 0x00 0x93 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x98 0x00 0x00 0x40    // '??????@' \n\t0x09 0x00 0x00 0x00 0xB2 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xB7 0x00 0x00 0x40    // '??????@' \n\t0x05 0x00 0x00 0x00 0xCC 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0xD1 0x00 0x00 0x40    // '??????@' \n\t0x0A 0x00 0x00 0x00 0xD8 0x00 0x00 0x40    // '??????@' \n\t0x00 0x00 0x00 0x00 0x02 0x00 0x00 0x80    // '???????' \n\t0x12 0x00 0x00 0x00 0xDE 0x00 0x00 0x80    // '??????' \n\t0x00 0x00 0x00 0x00 0x2C 0x00 0x00 0xC0    // '????,??' \n\t0x01 0x00 0x00 0x00 0x46 0x00 0x00 0xC0    // '????F??' \n\t0x08 0x00 0x00 0x00 0x62 0x00 0x00 0xC0    // '????b??' \n\t0x01 0x00 0x00 0x00 0x77 0x00 0x00 0xC0    // '????w??' \n\t0x01 0x00 0x00 0x00 0x98 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xB7 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00 0xD1 0x00 0x00 0xC0    // '??????' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x0D 0x0A 0x0D 0x0A 0x09 0x20    // '??????? ' \n\t0x20 0x20 0x57 0x68 0x61 0x74 0x20 0x64    // '  What d' \n\t0x6F 0x20 0x79 0x6F 0x75 0x20 0x77 0x61    // 'o you wa' \n\t0x6E 0x74 0x20 0x74 0x6F 0x20 0x64 0x6F    // 'nt to do' \n\t0x20 0x74 0x6F 0x64 0x61 0x79 0x3F 0x0D    // ' today??' \n\t0x0A 0x0D 0x0A 0x09 0x09 0x09 0x01 0x09    // '????????' \n\t0x43 0x72 0x65 0x61 0x74 0x65 0x20 0x61    // 'Create a' \n\t0x20 0x6E 0x65 0x77 0x20 0x6D 0x6F 0x76    // ' new mov' \n\t0x69 0x65 0x3F 0x0D 0x0A 0x09 0x09 0x09    // 'ie??????' \n\t0x01 0x09 0x57 0x6F 0x72 0x6B 0x20 0x6F    // '??Work o' \n\t0x6E 0x20 0x61 0x6E 0x20 0x6F 0x6C 0x64    // 'n an old' \n\t0x20 0x6D 0x6F 0x76 0x69 0x65 0x3F 0x0D    // ' movie??' \n\t0x0A 0x09 0x09 0x09 0x01 0x09 0x57 0x61    // '??????Wa' \n\t0x74 0x63 0x68 0x20 0x61 0x20 0x6D 0x6F    // 'tch a mo' \n\t0x76 0x69 0x65 0x3F 0x0D 0x0A 0x09 0x09    // 'vie?????' \n\t0x09 0x01 0x09 0x4D 0x61 0x6B 0x65 0x20    // '???Make ' \n\t0x61 0x20 0x6D 0x6F 0x76 0x69 0x65 0x20    // 'a movie ' \n\t0x77 0x69 0x74 0x68 0x20 0x4D 0x65 0x6C    // 'with Mel' \n\t0x61 0x6E 0x69 0x65 0x3F 0x0D 0x0A 0x09    // 'anie????' \n\t0x09 0x09 0x01 0x09 0x47 0x65 0x74 0x20    // '????Get ' \n\t0x61 0x6E 0x20 0x69 0x64 0x65 0x61 0x20    // 'an idea ' \n\t0x66 0x6F 0x72 0x20 0x61 0x20 0x6D 0x6F    // 'for a mo' \n\t0x76 0x69 0x65 0x3F 0x0D 0x0A 0x09 0x09    // 'vie?????' \n\t0x09 0x01 0x09 0x47 0x6F 0x20 0x74 0x6F    // '???Go to' \n\t0x20 0x49 0x6D 0x61 0x67 0x69 0x6E 0x6F    // ' Imagino' \n\t0x70 0x6F 0x6C 0x69 0x73 0x3F 0x0D 0x0A    // 'polis???' \n\t0x09 0x09 0x09 0x01 0x09 0x51 0x75 0x69    // '?????Qui' \n\t0x74 0x3F 0x0D 0x0A 0x0D 0x0A 0x0D 0x0A    // 't???????' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16047= ktpcYouHere\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16047, __HELP_NAME(\"Map - you are here topic\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16047, __HELP_NAME(\"Map - you are here topic\")) __HELP_PACK2\n\tBO OSK LONG kgobMapHere kgobMapHere 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16047, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobMapHere\"\n\tITEM\n\t\t\"ktpcYouHere\"\n\tITEM\n\t\t\"kgobMapHere\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16047, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x5A 0x00 0x00 0x00    // '????Z???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_2=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\nAG(4)\n\tITEM LONG 0x2000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x10 0x00 0x00 0x00 0x03 0x03 0x03 0x03    // '????????' \n\t\t\t0x0D 0x43 0x6F 0x6D 0x69 0x63 0x20 0x53    // '?Comic S' \n\t\t\t0x61 0x6E 0x73 0x20 0x4D 0x53 0x00         // 'ans MS?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0xFF 0xFF 0x0D 0x00 0x00 0x01    // '??????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x08 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x09 0x00 0x00 0x02    // '????????' \n\t0x01 0x00 0x00 0x00 0x0C 0x00 0x00 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0F 0x00 0x00 0xFD 0x0D 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x59 0x6F 0x75 0x20 0x61 0x72    // '??You ar' \n\t0x65 0x20 0x68 0x65 0x72 0x65 0x2E         // 'e here.' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16048= ktpcTicketChoices\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16048, __HELP_NAME(\"ktpcTicketChoices\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16048, __HELP_NAME(\"ktpcTicketChoices\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloon1d kgobBalloon1d kgobTicket2McZee ktpcTicketChoices 0x190 0x64 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16048, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloon1d\"\n\tITEM\n\t\t\"ktpcTicketChoices\"\n\tITEM\n\t\t\"kgobBalloon1d\"\n\tITEM\n\t\t\"kgobTicket2McZee\"\n\tITEM\n\t\t\"ktpcTicketChoices\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16048, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x80 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_6=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\nAG(4)\n\tITEM LONG 0xC0000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x44 0x4B 0x4F 0x47 0x00 0x61 0x01 0x00    // 'DKOG?a??' \n\t\t\t0xFF 0xFF 0xFF 0xFF 0x03 0x03 0x0F 0x6B    // '???k' \n\t\t\t0x67 0x6F 0x62                             // 'gob' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0D 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x34 0x00 0x00 0x01    // '????4???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x0F 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x40    // '???????@' \n\t0x03 0x00 0x00 0x00 0x21 0x00 0x00 0x40    // '????!??@' \n\t0x00 0x00 0x00 0x00 0x23 0x00 0x00 0x40    // '????#??@' \n\t0x02 0x00 0x00 0x00 0x34 0x00 0x00 0x40    // '????4??@' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0x80    // '???????' \n\t0x12 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x23 0x00 0x00 0x82    // '????#??' \n\t0x00 0x00 0x00 0x00 0x11 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x23 0x00 0x00 0xC0    // '????#??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x44 0x6F 0x20 0x79 0x6F 0x75    // '??Do you' \n\t0x20 0x77 0x61 0x6E 0x74 0x20 0x74 0x6F    // ' want to' \n\t0x3A 0x0D 0x0A 0x01 0x20 0x20 0x4D 0x61    // ':???  Ma' \n\t0x6B 0x65 0x20 0x61 0x20 0x6D 0x6F 0x76    // 'ke a mov' \n\t0x69 0x65 0x3F 0x0D 0x0A 0x01 0x20 0x20    // 'ie????  ' \n\t0x57 0x61 0x74 0x63 0x68 0x20 0x61 0x20    // 'Watch a ' \n\t0x6D 0x6F 0x76 0x69 0x65 0x3F              // 'movie?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n\nSET _help_48544F50_16051= ktpcLobbyTip\n\n#ifdef HELP_SINGLE_CHUNK\nCHUNK('HTOP', _help_48544F50_16051, __HELP_NAME(\"Lobby Mz balloon.\")) __HELP_PACK\nSUBFILE\n#endif //HELP_SINGLE_CHUNK\n\nCHUNK('HTOP', _help_48544F50_16051, __HELP_NAME(\"Lobby Mz balloon.\")) __HELP_PACK2\n\tBO OSK LONG kgobBalloon1d kgobBalloon1d 0x0 ktpcLobbyTip 0x17C 0xB4 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifndef NO_HELP_SYMBOLS\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16051, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBalloon1d\"\n\tITEM\n\t\t\"ktpcLobbyTip\"\n\tITEM\n\t\t\"kgobBalloon1d\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"ktpcLobbyTip\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //!NO_HELP_SYMBOLS\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('HTOP', _help_48544F50_16051, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xB3 0x00 0x00 0x00    // '???????' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_7=_help_cno\nCHUNK('AGPA', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\nAG(4)\n\tITEM LONG 0xC0000002\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x44 0x4B 0x4F 0x47 0x00 0x61 0x01 0x00    // 'DKOG?a??' \n\t\t\t0xFF 0xFF 0xFF 0xFF 0x03 0x03 0x0F 0x6B    // '???k' \n\t\t\t0x67 0x6F 0x62                             // 'gob' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x01 0xFF 0xFF 0xFF 0xFF                   // '?' \n\tITEM LONG 0x40000001\n\t\tVAR\n\t\t\tBYTE\n\t\t\t0x02 0xFF 0xFF 0xFF 0xFF                   // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x0C 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x00 0x00 0x44 0x00 0x00 0x01    // '????D???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x03    // '????????' \n\t0x0A 0x00 0x00 0xFD 0x12 0x00 0x00 0x03    // '???????' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0x40    // '???????@' \n\t0x02 0x00 0x00 0x00 0x28 0x00 0x00 0x40    // '????(??@' \n\t0x00 0x00 0x00 0x00 0x2A 0x00 0x00 0x40    // '????*??@' \n\t0x03 0x00 0x00 0x00 0x44 0x00 0x00 0x40    // '????D??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x82    // '???????' \n\t0x05 0x00 0x00 0x00 0x2A 0x00 0x00 0x82    // '????*??' \n\t0x00 0x00 0x00 0x00 0x14 0x00 0x00 0xC0    // '???????' \n\t0x01 0x00 0x00 0x00 0x2A 0x00 0x00 0xC0    // '????*??' \n\t0x01 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, __HELP_NAME(\"\")) __HELP_PACK2\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x57 0x6F 0x75 0x6C 0x64 0x20    // '??Would ' \n\t0x79 0x6F 0x75 0x20 0x6C 0x69 0x6B 0x65    // 'you like' \n\t0x20 0x74 0x6F 0x3A 0x0D 0x0A 0x01 0x09    // ' to:????' \n\t0x47 0x6F 0x20 0x74 0x6F 0x20 0x74 0x68    // 'Go to th' \n\t0x65 0x20 0x74 0x68 0x65 0x61 0x74 0x65    // 'e theate' \n\t0x72 0x3F 0x0D 0x0A 0x01 0x09 0x43 0x68    // 'r?????Ch' \n\t0x65 0x63 0x6B 0x20 0x6F 0x75 0x74 0x20    // 'eck out ' \n\t0x74 0x68 0x65 0x20 0x73 0x6E 0x61 0x63    // 'the snac' \n\t0x6B 0x20 0x62 0x61 0x72 0x3F              // 'k bar?' \nENDCHUNK\n\n#ifdef HELP_SINGLE_CHUNK\nENDCHUNK\n#endif //HELP_SINGLE_CHUNK\n\n"
  },
  {
    "path": "src/helpaud/helpaud.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n\n// \n//  HELP AUDIO CHUNK FILE \n//\n\n#include \"kidgs.chh\"\n#include \"stdiodef.h\"\n#include \"helptops.h\"\n#include \"helpbook.h\"\n#include \"projmain.h\"\n#include \"helpres.h\"\n\n// here are the WAVES to include\n\n#include \"wctooltp.cht\"\n#include \"wcbasics.cht\"\n#include \"wctoolhp.cht\"\n#include \"wcgdelgo.cht\"\n#include \"wcproj.cht\"\n#include \"wchowto.cht\"\n\n\n"
  },
  {
    "path": "src/helpaud/makefile",
    "content": "#---$(SOC_ROOT)\\src\\helpaud\\makefile\n\n!IFNDEF MAKEFILE_HELPAUD\nMAKEFILE_HELPAUD = 1\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.def\n\n\n#HELP SOURCE DIRECTORY\nHELPAUD_SRC_DIR = $(SOC_ROOT)\\src\\helpaud\n\n#SOC OBJ DIRECTORY\nSOC_OBJ_ROOT_DIR = $(SOC_ROOT)\\obj\nSOC_OBJ_DIR = $(SOC_OBJ_ROOT_DIR)\\$(BLD_TYPE_DIR)\n\n!IF \"$(LOCAL_BUILD)\" == \"1\"\nTARGET_DIR =\n!ELSE # LOCAL_BUILD\nTARGET_DIR = $(SOC_OBJ_DIR)^\\\n!ENDIF # !LOCAL_BUILD\n\nHELPAUD_CHT_FILES = \\\n\t$(HELPAUD_SRC_DIR)\\helpaud.cht\\\n\t$(HELPAUD_SRC_DIR)\\wctooltp.cht\\\n\t$(HELPAUD_SRC_DIR)\\wcbasics.cht\\\n\t$(HELPAUD_SRC_DIR)\\wctoolhp.cht\\\n\t$(HELPAUD_SRC_DIR)\\wcgdelgo.cht\\\n\t$(HELPAUD_SRC_DIR)\\wcproj.cht\\\n\t$(HELPAUD_SRC_DIR)\\wchowto.cht\n\nHELPAUD_CHUNK_TARGETS =\\\n    $(TARGET_DIR)helpaud.chk\n\n\n#-Compile rules-------------------------------------------------------------\n\nSRC_DIR = $(HELPAUD_SRC_DIR)\nOBJ_DIR = $(SOC_OBJ_DIR)\nTGT_NAME = HelpAud\n\n!INCLUDE $(SOC_ROOT)\\makefile.rul\n\n#-Targets-------------------------------------------------------------------\n\nALL_HELPAUD = $(TARGET_DIR)helpaud.chk\nALL_TARGETS_ROOT = $(ALL_TARGETS_ROOT) $(ALL_HELPAUD)\n\nCLEAN_HELP = CLEAN_HELPAUD_CHUNKS\nCLEAN_TARGETS_ROOT = $(CLEAN_TARGETS_ROOT) $(CLEAN_HELP)\n\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\n!IF \"$(LOCAL_BUILD)\" != \"0\"\n\nALL: $(SOC_OBJ_DIR) HELPAUD_CONTENT\nCLEAN: CLEAN_HELPAUD_CHUNKS ALL\n\n!ENDIF # LOCAL_BUILD != 0\n\n$(SOC_OBJ_DIR) :\n    @echo Making Directories $(SOC_OBJ_DIR)...\n    if not exist $(SOC_OBJ_ROOT_DIR)/nul mkdir $(SOC_OBJ_ROOT_DIR)\n    if not exist $(SOC_OBJ_DIR)/nul mkdir $(SOC_OBJ_DIR)\n\n!ENDIF # LOCAL_BUILD != 1\n\n\nCLEAN_HELPAUD_CHUNKS:\n    @echo <<delhelp.bat\n@echo off\nDEL /q dummy.nul $(HELPAUD_CHUNK_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    call delhelp.bat\n\n\n#\n#Create Help Chunky Files\n#\nHELPAUD_CONTENT: $(SOC_OBJ_DIR)\\helpaud.chk\n\n$(TARGET_DIR)helpaud.chk : $(SOC_OBJ_DIR) $(HELPAUD_CHT_FILES)\n\nMAKEFILE_HELPAUD = 0\n!ENDIF # !MAKEFILE_HELPAUD\n"
  },
  {
    "path": "src/helpaud/wcbasics.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// wave chunks for help book basics\nWAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1001.WAV\", kwavBasics00)\nWAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1002.WAV\", kwavBasics01)\nWAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1003.WAV\", kwavBasics02)\nWAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1004.WAV\", kwavBasics03)\nWAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1005.WAV\", kwavBasics04)\nWAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1006.WAV\", kwavBasics05)\nWAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1007.WAV\", kwavBasics06)\nWAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1008.WAV\", kwavBasics07)\nWAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1009.WAV\", kwavBasics08)\n//WAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1000.WAV\", kwavBasics09)\nWAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1010.WAV\", kwavBasics0A)\n//WAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1000.WAV\", kwavBasics0B)\nWAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1011.WAV\", kwavBasics0C)\nWAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1012.WAV\", kwavBasics0D)\nWAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1014.WAV\", kwavBasics0E)\nWAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1015.WAV\", kwavBasics0F)\nWAVE_CHUNK (\"helpaud\\sound\\basics\\VZH1013.WAV\", kwavBasics10)\n"
  },
  {
    "path": "src/helpaud/wcgdelgo.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// wave chunks for logo wizard\nWAVE_CHUNK (\"helpaud\\sound\\logo\\VMP0001.WAV\", kwavLogo00)\nWAVE_CHUNK (\"helpaud\\sound\\logo\\VMP0001A.WAV\", kwavLogo01)\nWAVE_CHUNK (\"helpaud\\sound\\logo\\VMP0002.WAV\", kwavLogo02)\nWAVE_CHUNK (\"helpaud\\sound\\logo\\VMP0003.WAV\", kwavLogo03)\nWAVE_CHUNK (\"helpaud\\sound\\logo\\VMP0004.WAV\", kwavLogo04)\nWAVE_CHUNK (\"helpaud\\sound\\logo\\VMP0005.WAV\", kwavLogo05)\nWAVE_CHUNK (\"helpaud\\sound\\logo\\VMP0006.WAV\", kwavLogo06)\nWAVE_CHUNK (\"helpaud\\sound\\logo\\VMP0007.WAV\", kwavLogo07)\nWAVE_CHUNK (\"helpaud\\sound\\logo\\VMP0008.WAV\", kwavLogo08)\nWAVE_CHUNK (\"helpaud\\sound\\logo\\VMP0009.WAV\", kwavLogo09)\nWAVE_CHUNK (\"helpaud\\sound\\logo\\VMP0010.WAV\", kwavLogo0A)\nWAVE_CHUNK (\"helpaud\\sound\\logo\\VMP0011.WAV\", kwavLogo0B)\nWAVE_CHUNK (\"helpaud\\sound\\logo\\VMP0012.WAV\", kwavLogo0C)\nWAVE_CHUNK (\"helpaud\\sound\\logo\\VMP0013.WAV\", kwavLogo11)\nWAVE_CHUNK (\"helpaud\\sound\\logo\\VMP0014.WAV\", kwavLogo12)\n\n// wave chunks for guidehelp\nWAVE_CHUNK (\"helpaud\\sound\\guidhelp\\VZG001.WAV\", kwavGuideHelp00)\nWAVE_CHUNK (\"helpaud\\sound\\guidhelp\\VZG002.WAV\", kwavGuideHelp01)\nWAVE_CHUNK (\"helpaud\\sound\\guidhelp\\VZG003.WAV\", kwavGuideHelp02)\nWAVE_CHUNK (\"helpaud\\sound\\guidhelp\\VZG004.WAV\", kwavGuideHelp03)\nWAVE_CHUNK (\"helpaud\\sound\\guidhelp\\VZG005.WAV\", kwavGuideHelp04)\nWAVE_CHUNK (\"helpaud\\sound\\guidhelp\\VZG006.WAV\", kwavGuideHelp05)\nWAVE_CHUNK (\"helpaud\\sound\\guidhelp\\VZG007.WAV\", kwavGuideHelp06)\nWAVE_CHUNK (\"helpaud\\sound\\guidhelp\\VZG008.WAV\", kwavGuideHelp07)\nWAVE_CHUNK (\"helpaud\\sound\\guidhelp\\VZG009.WAV\", kwavGuideHelp08)\nWAVE_CHUNK (\"helpaud\\sound\\guidhelp\\VZG010.WAV\", kwavGuideHelp09)\nWAVE_CHUNK (\"helpaud\\sound\\guidhelp\\VZG011.WAV\", kwavGuideHelp0A)\nWAVE_CHUNK (\"helpaud\\sound\\guidhelp\\VZG012.WAV\", kwavGuideHelp0B)\nWAVE_CHUNK (\"helpaud\\sound\\guidhelp\\VZG013.WAV\", kwavGuideHelp0C)\nWAVE_CHUNK (\"helpaud\\sound\\guidhelp\\VZG014.WAV\", kwavGuideHelp10)\n"
  },
  {
    "path": "src/helpaud/wchowto.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// sounds for how to sequences\n// how to scenes\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2001.WAV\", kwavHTScenes00)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2002.WAV\", kwavHTScenes01)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2003.WAV\", kwavHTScenes02)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2004.WAV\", kwavHTScenes03)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2005.WAV\", kwavHTScenes04)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2006.WAV\", kwavHTScenes05)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2007.WAV\", kwavHTScenes06)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2008.WAV\", kwavHTScenes07)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2009.WAV\", kwavHTScenes08)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2010.WAV\", kwavHTScenes09)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2011.WAV\", kwavHTScenes0A)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2012.WAV\", kwavHTScenes0B)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2013.WAV\", kwavHTScenes0C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2014.WAV\", kwavHTScenes0D)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2015.WAV\", kwavHTScenes0E)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2016.WAV\", kwavHTScenes0F)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2017.WAV\", kwavHTScenes10)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2018.WAV\", kwavHTScenes11)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2019.WAV\", kwavHTScenes12)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2020.WAV\", kwavHTScenes13)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2021.WAV\", kwavHTScenes14)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2022.WAV\", kwavHTScenes15)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2023.WAV\", kwavHTScenes16)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2024.WAV\", kwavHTScenes17)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2025.WAV\", kwavHTScenes18)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2026.WAV\", kwavHTScenes19)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2027.WAV\", kwavHTScenes1A)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2028.WAV\", kwavHTScenes1B)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2029.WAV\", kwavHTScenes1C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2030.WAV\", kwavHTScenes1D)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2031.WAV\", kwavHTScenes1E)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2032.WAV\", kwavHTScenes1F)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2033.WAV\", kwavHTScenes20)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2034.WAV\", kwavHTScenes21)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2035.WAV\", kwavHTScenes22)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2036.WAV\", kwavHTScenes23)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2037.WAV\", kwavHTScenes24)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2038.WAV\", kwavHTScenes25)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2039.WAV\", kwavHTScenes26)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2040.WAV\", kwavHTScenes28)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2041.WAV\", kwavHTScenes29)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2042.WAV\", kwavHTScenes2A)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2003A.WAV\", kwavHTScenes32)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2252.WAV\", kwavHTScenes34)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2253.WAV\", kwavHTScenes35)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2254.WAV\", kwavHTScenes36)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2255.WAV\", kwavHTScenes37)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2256.WAV\", kwavHTScenes38)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2257.WAV\", kwavHTScenes39)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2258.WAV\", kwavHTScenes3A)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2004A.WAV\", kwavHTScenes3B)\n\n// how to actors\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2043.WAV\", kwavHTActors00)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2044.WAV\", kwavHTActors01)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2045.WAV\", kwavHTActors02)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2046.WAV\", kwavHTActors03)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2047.WAV\", kwavHTActors04)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2048.WAV\", kwavHTActors05)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2049.WAV\", kwavHTActors06)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2050.WAV\", kwavHTActors07)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2051.WAV\", kwavHTActors08)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2052.WAV\", kwavHTActors09)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2053.WAV\", kwavHTActors0B)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2054.WAV\", kwavHTActors0C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2055.WAV\", kwavHTActors0D)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2057.WAV\", kwavHTActors11)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2058.WAV\", kwavHTActors12)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2059.WAV\", kwavHTActors13)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2060.WAV\", kwavHTActors14)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2061.WAV\", kwavHTActors15)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2062.WAV\", kwavHTActors16)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2063.WAV\", kwavHTActors17)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2064.WAV\", kwavHTActors18)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2065.WAV\", kwavHTActors19)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2075.WAV\", kwavHTActors1B)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2067.WAV\", kwavHTActors1C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2068.WAV\", kwavHTActors1D)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2069.WAV\", kwavHTActors1E)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2070.WAV\", kwavHTActors1F)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2071.WAV\", kwavHTActors20)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2072.WAV\", kwavHTActors21)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2073.WAV\", kwavHTActors22)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2074.WAV\", kwavHTActors23)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2075.WAV\", kwavHTActors24)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2076.WAV\", kwavHTActors25)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2077.WAV\", kwavHTActors2A)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2079.WAV\", kwavHTActors2B)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2080.WAV\", kwavHTActors2C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2081.WAV\", kwavHTActors30)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2082.WAV\", kwavHTActors31)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2083.WAV\", kwavHTActors32)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2084.WAV\", kwavHTActors33)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2085.WAV\", kwavHTActors34)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2086.WAV\", kwavHTActors35)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2087.WAV\", kwavHTActors36)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2088.WAV\", kwavHTActors37)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2089.WAV\", kwavHTActors38)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2090.WAV\", kwavHTActors39)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2091.WAV\", kwavHTActors3A)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2092.WAV\", kwavHTActors3B)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2093.WAV\", kwavHTActors3C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2094.WAV\", kwavHTActors3D)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2095.WAV\", kwavHTActors3E)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2096.WAV\", kwavHTActors3F)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2097.WAV\", kwavHTActors40)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2098.WAV\", kwavHTActors41)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2099.WAV\", kwavHTActors42)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2100.WAV\", kwavHTActors43)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2101.WAV\", kwavHTActors44)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2102.WAV\", kwavHTActors45)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2103.WAV\", kwavHTActors46)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2104.WAV\", kwavHTActors47)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2105.WAV\", kwavHTActors48)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2106.WAV\", kwavHTActors49)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2107.WAV\", kwavHTActors4A)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2108.WAV\", kwavHTActors4B)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2109.WAV\", kwavHTActors4C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2110.WAV\", kwavHTActors4D)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2111.WAV\", kwavHTActors4E)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2112.WAV\", kwavHTActors4F)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2113.WAV\", kwavHTActors50)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2114.WAV\", kwavHTActors51)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2115.WAV\", kwavHTActors52)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2116.WAV\", kwavHTActors53)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2117.WAV\", kwavHTActors54)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2118.WAV\", kwavHTActors55)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2119.WAV\", kwavHTActors56)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2120.WAV\", kwavHTActors57)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2121.WAV\", kwavHTActors58)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2122.WAV\", kwavHTActors59)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2123.WAV\", kwavHTActors5A)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2124.WAV\", kwavHTActors5B)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2125.WAV\", kwavHTActors5C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2126.WAV\", kwavHTActors5D)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2127.WAV\", kwavHTActors5E)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2128.WAV\", kwavHTActors5F)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2129.WAV\", kwavHTActors60)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2130.WAV\", kwavHTActors61)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2131.WAV\", kwavHTActors62)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2132.WAV\", kwavHTActors63)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2133.WAV\", kwavHTActors64)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2134.WAV\", kwavHTActors65)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2135.WAV\", kwavHTActors66)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2136.WAV\", kwavHTActors67)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2137.WAV\", kwavHTActors68)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2138.WAV\", kwavHTActors69)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2139.WAV\", kwavHTActors6A)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2140.WAV\", kwavHTActors6B)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2141.WAV\", kwavHTActors6C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2142.WAV\", kwavHTActors6D)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2143.WAV\", kwavHTActors6E)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2144.WAV\", kwavHTActors6F)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2145.WAV\", kwavHTActors70)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2146.WAV\", kwavHTActors71)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2147.WAV\", kwavHTActors72)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2148.WAV\", kwavHTActors73)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2149.WAV\", kwavHTActors74)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2150.WAV\", kwavHTActors75)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2151.WAV\", kwavHTActors77)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2078.WAV\", kwavHTActors91)\n\n// how to sounds\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2152.WAV\", kwavHTSounds00)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2153.WAV\", kwavHTSounds01)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2154.WAV\", kwavHTSounds03)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2155.WAV\", kwavHTSounds04)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2156.WAV\", kwavHTSounds05)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2157.WAV\", kwavHTSounds07)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2158.WAV\", kwavHTSounds08)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2159.WAV\", kwavHTSounds09)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2160.WAV\", kwavHTSounds0B)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2161.WAV\", kwavHTSounds0C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2162.WAV\", kwavHTSounds0D)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2163.WAV\", kwavHTSounds0E)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2164.WAV\", kwavHTSounds0F)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2165.WAV\", kwavHTSounds10)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2166.WAV\", kwavHTSounds11)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2167.WAV\", kwavHTSounds12)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2168.WAV\", kwavHTSounds13)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2169.WAV\", kwavHTSounds14)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2170.WAV\", kwavHTSounds15)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2171.WAV\", kwavHTSounds16)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2172.WAV\", kwavHTSounds17)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2173.WAV\", kwavHTSounds18)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2174.WAV\", kwavHTSounds19)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2175.WAV\", kwavHTSounds1A)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2176.WAV\", kwavHTSounds1C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2177.WAV\", kwavHTSounds1D)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2178.WAV\", kwavHTSounds1E)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2179.WAV\", kwavHTSounds1F)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2180.WAV\", kwavHTSounds20)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2181.WAV\", kwavHTSounds21)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2182.WAV\", kwavHTSounds22)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2183.WAV\", kwavHTSounds23)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2184.WAV\", kwavHTSounds24)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2185.WAV\", kwavHTSounds25)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2186.WAV\", kwavHTSounds26)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2259.WAV\", kwavHTSounds27)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2260.WAV\", kwavHTSounds28)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2261.WAV\", kwavHTSounds29)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2262.WAV\", kwavHTSounds2A)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2165a.WAV\", kwavHTSounds2C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2168a.WAV\", kwavHTSounds2D)\n\t\t\t\t\t\t\t\t\t\t\t\t\t  \n// how to words\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2187.WAV\", kwavHTWords00)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2188.WAV\", kwavHTWords01)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2189.WAV\", kwavHTWords02)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2190.WAV\", kwavHTWords03)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2191.WAV\", kwavHTWords04)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2192.WAV\", kwavHTWords05)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2193.WAV\", kwavHTWords06)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2194.WAV\", kwavHTWords07)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2195.WAV\", kwavHTWords08)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2196.WAV\", kwavHTWords09)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2197.WAV\", kwavHTWords0A)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2198.WAV\", kwavHTWords0B)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2199.WAV\", kwavHTWords0C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2200.WAV\", kwavHTWords0D)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2201.WAV\", kwavHTWords0E)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2202.WAV\", kwavHTWords0F)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2203.WAV\", kwavHTWords10)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2204.WAV\", kwavHTWords11)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2205.WAV\", kwavHTWords12)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2206.WAV\", kwavHTWords13)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2207.WAV\", kwavHTWords14)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2208.WAV\", kwavHTWords15)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2209.WAV\", kwavHTWords16)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2210.WAV\", kwavHTWords17)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2211.WAV\", kwavHTWords18)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2212.WAV\", kwavHTWords19)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2213.WAV\", kwavHTWords1A)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2214.WAV\", kwavHTWords1B)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2215.WAV\", kwavHTWords1C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2216.WAV\", kwavHTWords1D)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2217.WAV\", kwavHTWords1E)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2218.WAV\", kwavHTWords1F)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2219.WAV\", kwavHTWords20)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2220.WAV\", kwavHTWords21)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2221.WAV\", kwavHTWords22)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2222.WAV\", kwavHTWords23)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2223.WAV\", kwavHTWords24)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2224.WAV\", kwavHTWords25)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2225.WAV\", kwavHTWords26)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2226.WAV\", kwavHTWords27)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2233A.WAV\", kwavHTWords28)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2227.WAV\", kwavHTWords29)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2228.WAV\", kwavHTWords2A)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2229.WAV\", kwavHTWords2B)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2230.WAV\", kwavHTWords2C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2231.WAV\", kwavHTWords2D)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2232.WAV\", kwavHTWords2E)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2233.WAV\", kwavHTWords2F)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2234.WAV\", kwavHTWords30)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2235.WAV\", kwavHTWords31)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2236.WAV\", kwavHTWords32)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2237.WAV\", kwavHTWords33)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2238.WAV\", kwavHTWords34)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2239.WAV\", kwavHTWords35)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2240.WAV\", kwavHTWords36)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2241.WAV\", kwavHTWords37)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2242.WAV\", kwavHTWords38)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2243.WAV\", kwavHTWords39)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2244.WAV\", kwavHTWords3A)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2245.WAV\", kwavHTWords3B)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2246.WAV\", kwavHTWords3C)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2247.WAV\", kwavHTWords3D)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2248.WAV\", kwavHTWords3E)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2249.WAV\", kwavHTWords3F)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2250.WAV\", kwavHTWords40)\nWAVE_CHUNK (\"helpaud\\sound\\howto\\VZH2251.WAV\", kwavHTWords41)\n"
  },
  {
    "path": "src/helpaud/wcproj.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// wave chunks for the projects\n// project 1\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp1003.WAV\", kwav1Project01)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1004.WAV\", kwav1Project03)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1005.WAV\", kwav1Project04)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1006.WAV\", kwav1Project05)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1007.WAV\", kwav1Project06)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1008.WAV\", kwav1Project07)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1009.WAV\", kwav1Project08)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1010.WAV\", kwav1Project09)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1011.WAV\", kwav1Project0A)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1012.WAV\", kwav1Project0B)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1013.WAV\", kwav1Project0D)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1014.WAV\", kwav1Project0E)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1015.WAV\", kwav1Project0F)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1016.WAV\", kwav1Project10)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1017.WAV\", kwav1Project11)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1018.WAV\", kwav1Project12)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1019.WAV\", kwav1Project14)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1020.WAV\", kwav1Project16)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1021.WAV\", kwav1Project17)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1022.WAV\", kwav1Project18)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1023.WAV\", kwav1Project19)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1024.WAV\", kwav1Project1B)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1025.WAV\", kwav1Project1C)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1026.WAV\", kwav1Project1D)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1027.WAV\", kwav1Project1F)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1041.WAV\", kwav1Project20)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1002.WAV\", kwav1Project22)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1028.WAV\", kwav1Project23)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1029.WAV\", kwav1Project24)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1030.WAV\", kwav1Project25)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1031.WAV\", kwav1Project26)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1032.WAV\", kwav1Project27)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1033.WAV\", kwav1Project29)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1034.WAV\", kwav1Project2A)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1035.WAV\", kwav1Project2B)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1036.WAV\", kwav1Project2C)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1037.WAV\", kwav1Project2D)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1038.WAV\", kwav1Project2F)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1039.WAV\", kwav1Project30)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMP1040.WAV\", kwav1Project31)\n\n// project 2\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3002.WAV\", kwav2Project00)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3003.WAV\", kwav2Project01)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3004.WAV\", kwav2Project03)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3005.WAV\", kwav2Project04)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3006.WAV\", kwav2Project05)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3007.WAV\", kwav2Project06)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3008.WAV\", kwav2Project08)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3009.WAV\", kwav2Project0A)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3010.WAV\", kwav2Project0B)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3011.WAV\", kwav2Project0C)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3012.WAV\", kwav2Project0D)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3013.WAV\", kwav2Project0E)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3014.WAV\", kwav2Project10)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3015.WAV\", kwav2Project11)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3016.WAV\", kwav2Project13)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3017.WAV\", kwav2Project14)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3018.WAV\", kwav2Project15)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3019.WAV\", kwav2Project16)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp3020.WAV\", kwav2Project2B)\n\n// project 3\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2002.WAV\", kwav3Project00)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2003.WAV\", kwav3Project01)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2004.WAV\", kwav3Project03)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2005.WAV\", kwav3Project04)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2006.WAV\", kwav3Project05)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2007.WAV\", kwav3Project06)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2008.WAV\", kwav3Project07)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2009.WAV\", kwav3Project08)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2011.WAV\", kwav3Project09)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2014.WAV\", kwav3Project0A)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2019.WAV\", kwav3Project0C)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2015.WAV\", kwav3Project0E)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2016.WAV\", kwav3Project0F)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2017.WAV\", kwav3Project10)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2018.WAV\", kwav3Project12)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2020.WAV\", kwav3Project13)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2025.WAV\", kwav3Project15)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2021.WAV\", kwav3Project16)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2022.WAV\", kwav3Project17)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2023.WAV\", kwav3Project18)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2024.WAV\", kwav3Project19)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2026.WAV\", kwav3Project1A)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2027.WAV\", kwav3Project1D)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2029.WAV\", kwav3Project1F)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2010.WAV\", kwav3Project21)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2013.WAV\", kwav3Project22)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp2028.WAV\", kwav3Project23)\n\n// project 4\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6002.WAV\", kwav4Project00)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6003.WAV\", kwav4Project01)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6005.WAV\", kwav4Project03)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6009.WAV\", kwav4Project07)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6011.WAV\", kwav4Project0A)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6012.WAV\", kwav4Project0B)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6013.WAV\", kwav4Project0C)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6015.WAV\", kwav4Project0F)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6016.WAV\", kwav4Project11)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6017.WAV\", kwav4Project12)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6018.WAV\", kwav4Project14)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6019.WAV\", kwav4Project16)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6020.WAV\", kwav4Project17)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6021.WAV\", kwav4Project18)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6022.WAV\", kwav4Project19)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6023.WAV\", kwav4Project1A)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6024.WAV\", kwav4Project1B)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6025.WAV\", kwav4Project1D)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6026.WAV\", kwav4Project1E)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6027.WAV\", kwav4Project1F)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6028.WAV\", kwav4Project20)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6029.WAV\", kwav4Project21)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6030.WAV\", kwav4Project22)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6032.WAV\", kwav4Project27)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6033.WAV\", kwav4Project29)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6036.WAV\", kwav4Project2C)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6037.WAV\", kwav4Project2E)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6039.WAV\", kwav4Project30)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6040.WAV\", kwav4Project31)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6041.WAV\", kwav4Project32)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6042.WAV\", kwav4Project33)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6043.WAV\", kwav4Project34)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6044.WAV\", kwav4Project35)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6046.WAV\", kwav4Project37)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6048.WAV\", kwav4Project39)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6049.WAV\", kwav4Project3C)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6043A.WAV\", kwav4Project3E)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp6043b.WAV\", kwav4Project3F)\n\n// project 5\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5047a.WAV\", kwav5Project00)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5002.WAV\", kwav5Project01)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5003.WAV\", kwav5Project02)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5004.WAV\", kwav5Project05)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5005.WAV\", kwav5Project06)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5006.WAV\", kwav5Project07)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5008.WAV\", kwav5Project09)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5009.WAV\", kwav5Project0A)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5010.WAV\", kwav5Project0B)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5011.WAV\", kwav5Project0C)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5012.WAV\", kwav5Project0D)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5013.WAV\", kwav5Project0E)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5014.WAV\", kwav5Project0F)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5015.WAV\", kwav5Project10)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5016.WAV\", kwav5Project11)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5017.WAV\", kwav5Project12)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5018.WAV\", kwav5Project13)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5019.WAV\", kwav5Project14)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5020.WAV\", kwav5Project16)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5021.WAV\", kwav5Project17)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5022.WAV\", kwav5Project18)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5023.WAV\", kwav5Project19)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5024.WAV\", kwav5Project1A)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5025.WAV\", kwav5Project1C)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5026.WAV\", kwav5Project1D)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5027.WAV\", kwav5Project1E)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5028.WAV\", kwav5Project1F)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5029.WAV\", kwav5Project20)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5030.WAV\", kwav5Project21)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5031.WAV\", kwav5Project22)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5032.WAV\", kwav5Project24)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5033.WAV\", kwav5Project26)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5034.WAV\", kwav5Project27)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5035.WAV\", kwav5Project28)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5036.WAV\", kwav5Project29)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5037.WAV\", kwav5Project2A)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5038.WAV\", kwav5Project2B)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5039.WAV\", kwav5Project2D)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5040.WAV\", kwav5Project2E)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5041.WAV\", kwav5Project2F)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5042.WAV\", kwav5Project30)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5043.WAV\", kwav5Project31)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5044.WAV\", kwav5Project32)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5045.WAV\", kwav5Project33)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5046.WAV\", kwav5Project34)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5047.WAV\", kwav5Project36)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5048.WAV\", kwav5Project37)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5049.WAV\", kwav5Project38)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5050.WAV\", kwav5Project39)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5051.WAV\", kwav5Project3C)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5052.WAV\", kwav5Project3D)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5053.WAV\", kwav5Project3E)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5054.WAV\", kwav5Project40)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5055.WAV\", kwav5Project41)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5056.WAV\", kwav5Project42)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5057.WAV\", kwav5Project43)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5058.WAV\", kwav5Project45)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5059.WAV\", kwav5Project46)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5060.WAV\", kwav5Project47)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5061.WAV\", kwav5Project48)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5062.WAV\", kwav5Project49)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5063.WAV\", kwav5Project4B)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5064.WAV\", kwav5Project4C)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5065.WAV\", kwav5Project4D)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5067.WAV\", kwav5Project4F)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5068.WAV\", kwav5Project50)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp5048.WAV\", kwav5Project51)// Tony added\n\n// project 6\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4002.WAV\", kwav6Project01)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4003.WAV\", kwav6Project02)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4004.WAV\", kwav6Project05)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4005.WAV\", kwav6Project06)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4006.WAV\", kwav6Project07)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4007.WAV\", kwav6Project08)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4008.WAV\", kwav6Project09)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4010.WAV\", kwav6Project0B)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4011.WAV\", kwav6Project0D)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4012.WAV\", kwav6Project0E)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4013.WAV\", kwav6Project0F)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4014.WAV\", kwav6Project10)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4015.WAV\", kwav6Project11)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4016.WAV\", kwav6Project12)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4017.WAV\", kwav6Project13)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4018.WAV\", kwav6Project14)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4019.WAV\", kwav6Project15)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4020.WAV\", kwav6Project16)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4021.WAV\", kwav6Project18)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4022.WAV\", kwav6Project19)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4023.WAV\", kwav6Project1A)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4024.WAV\", kwav6Project1B)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4025.WAV\", kwav6Project1C)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4026.WAV\", kwav6Project1D)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4027.WAV\", kwav6Project1F)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4028.WAV\", kwav6Project20)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4029.WAV\", kwav6Project21)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4030.WAV\", kwav6Project24)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4031.WAV\", kwav6Project25)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4032.WAV\", kwav6Project26)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4033.WAV\", kwav6Project28)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4034.WAV\", kwav6Project29)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4037.WAV\", kwav6Project2A)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4038.WAV\", kwav6Project2B)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4039.WAV\", kwav6Project2C)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\Vmp4040.WAV\", kwav6Project2D)\n\n// project alerts\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMPA001.WAV\", kwavPrjAlert00)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMPA002.WAV\", kwavPrjAlert01)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VZA001.WAV\", kwavPrjAlert02)\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMPA002.WAV\", kwavPrjAlert04)\n\n// project intros\nWAVE_CHUNK (\"helpaud\\sound\\projects\\VMK010.WAV\", kwavPrjIntro03)\n"
  },
  {
    "path": "src/helpaud/wctoolhp.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// wave chunks for toolhelp\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3001.WAV\", kwavToolHelp00)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3002.WAV\", kwavToolHelp01)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3003.WAV\", kwavToolHelp02)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3004.WAV\", kwavToolHelp03)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3005.WAV\", kwavToolHelp04)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3006.WAV\", kwavToolHelp05)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3007.WAV\", kwavToolHelp06)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3008.WAV\", kwavToolHelp07)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3009.WAV\", kwavToolHelp08)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3010.WAV\", kwavToolHelp09)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3011.WAV\", kwavToolHelp0A)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3012.WAV\", kwavToolHelp0B)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3013.WAV\", kwavToolHelp0C)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3014.WAV\", kwavToolHelp0D)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3015.WAV\", kwavToolHelp0E)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3016.WAV\", kwavToolHelp0F)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR057.WAV\", kwavToolHelp10)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3018.WAV\", kwavToolHelp11)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3019.WAV\", kwavToolHelp12)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3020.WAV\", kwavToolHelp13)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3021.WAV\", kwavToolHelp14)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3022.WAV\", kwavToolHelp15)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3023.WAV\", kwavToolHelp16)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3024.WAV\", kwavToolHelp17)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3025.WAV\", kwavToolHelp18)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3026.WAV\", kwavToolHelp19)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3027.WAV\", kwavToolHelp1A)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3028.WAV\", kwavToolHelp1B)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3029.WAV\", kwavToolHelp1C)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3030.WAV\", kwavToolHelp1D)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3031.WAV\", kwavToolHelp1E)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3032.WAV\", kwavToolHelp1F)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3033.WAV\", kwavToolHelp20)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3034.WAV\", kwavToolHelp21)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3035.WAV\", kwavToolHelp22)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3036.WAV\", kwavToolHelp23)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3037.WAV\", kwavToolHelp24)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3038.WAV\", kwavToolHelp25)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3039.WAV\", kwavToolHelp26)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3040.WAV\", kwavToolHelp27)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3041.WAV\", kwavToolHelp28)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3042.WAV\", kwavToolHelp29)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3043.WAV\", kwavToolHelp2A)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3044.WAV\", kwavToolHelp2B)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3045.WAV\", kwavToolHelp2C)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3046.WAV\", kwavToolHelp2D)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3047.WAV\", kwavToolHelp2E)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3048.WAV\", kwavToolHelp2F)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3049.WAV\", kwavToolHelp30)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3050.WAV\", kwavToolHelp31)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3051.WAV\", kwavToolHelp32)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3052.WAV\", kwavToolHelp33)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3053.WAV\", kwavToolHelp34)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3054.WAV\", kwavToolHelp35)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3055.WAV\", kwavToolHelp36)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3056.WAV\", kwavToolHelp37)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3057.WAV\", kwavToolHelp38)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3058.WAV\", kwavToolHelp39)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3059.WAV\", kwavToolHelp3A)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3060.WAV\", kwavToolHelp3B)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3061.WAV\", kwavToolHelp3C)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3062.WAV\", kwavToolHelp3D)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3063.WAV\", kwavToolHelp3E)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3064.WAV\", kwavToolHelp3F)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3065.WAV\", kwavToolHelp40)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3066.WAV\", kwavToolHelp41)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3067.WAV\", kwavToolHelp42)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3068.WAV\", kwavToolHelp43)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3069.WAV\", kwavToolHelp47)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3070.WAV\", kwavToolHelp48)\nWAVE_CHUNK (\"helpaud\\sound\\toolhelp\\VZH3075.WAV\", kwavToolHelp7B)// wrong wave\n\t\t\t\t\t\t\t\t\t  \n"
  },
  {
    "path": "src/helpaud/wctooltp.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// tooltip wave chunks\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR001.WAV\", kwavToolTips00)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR005.WAV\", kwavToolTips01)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR014.WAV\", kwavToolTips02)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR044.WAV\", kwavToolTips03)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR002.WAV\", kwavToolTips04)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR006.WAV\", kwavToolTips05)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR013.WAV\", kwavToolTips06)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR007.WAV\", kwavToolTips07)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR008.WAV\", kwavToolTips08)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR019.WAV\", kwavToolTips09)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR020.WAV\", kwavToolTips0A)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR053.WAV\", kwavToolTips0B)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR054.WAV\", kwavToolTips0C)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR055.WAV\", kwavToolTips0D)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR021.WAV\", kwavToolTips0E)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR056.WAV\", kwavToolTips0F)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR057.WAV\", kwavToolTips10)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR058.WAV\", kwavToolTips11)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR059.WAV\", kwavToolTips12)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR022.WAV\", kwavToolTips13)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR023.WAV\", kwavToolTips14)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR024.WAV\", kwavToolTips16)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR025.WAV\", kwavToolTips17)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR027.WAV\", kwavToolTips19)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR028.WAV\", kwavToolTips1A)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR029.WAV\", kwavToolTips1B)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR041.WAV\", kwavToolTips1C)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR042.WAV\", kwavToolTips1D)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR003.WAV\", kwavToolTips1E)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR009.WAV\", kwavToolTips1F)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR010.WAV\", kwavToolTips20)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR011.WAV\", kwavToolTips21)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR030.WAV\", kwavToolTips22)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR031.WAV\", kwavToolTips23)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR032.WAV\", kwavToolTips24)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR033.WAV\", kwavToolTips25)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR004.WAV\", kwavToolTips26)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR012.WAV\", kwavToolTips27)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR034.WAV\", kwavToolTips28)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR035.WAV\", kwavToolTips29)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR036.WAV\", kwavToolTips2A)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR037.WAV\", kwavToolTips2B)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR038.WAV\", kwavToolTips2C)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR039.WAV\", kwavToolTips2D)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR040.WAV\", kwavToolTips2E)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR114.WAV\", kwavToolTips2F)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR115.WAV\", kwavToolTips30)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR043.WAV\", kwavToolTips31)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR016.WAV\", kwavToolTips33)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR045.WAV\", kwavToolTips35)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR046.WAV\", kwavToolTips36)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR047.WAV\", kwavToolTips37)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR048.WAV\", kwavToolTips38)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR060.WAV\", kwavToolTips39)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR061.WAV\", kwavToolTips3A)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR062.WAV\", kwavToolTips3B)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR063.WAV\", kwavToolTips3C)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR064.WAV\", kwavToolTips3D)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR066.WAV\", kwavToolTips3E)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR065.WAV\", kwavToolTips3F)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR067.WAV\", kwavToolTips40)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR068.WAV\", kwavToolTips41)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR049.WAV\", kwavToolTips42)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR069.WAV\", kwavToolTips43)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR070.WAV\", kwavToolTips44)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR071.WAV\", kwavToolTips45)\t\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR072.WAV\", kwavToolTips46)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR050.WAV\", kwavToolTips47)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR051.WAV\", kwavToolTips48)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR052.WAV\", kwavToolTips49)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR116.WAV\", kwavToolTips52)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR117.WAV\", kwavToolTips53)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR118.WAV\", kwavToolTips54)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR119.WAV\", kwavToolTips55)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR120.WAV\", kwavToolTips56)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR121.WAV\", kwavToolTips57)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR122.WAV\", kwavToolTips58)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR123.WAV\", kwavToolTips59)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR124.WAV\", kwavToolTips5A)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR125.WAV\", kwavToolTips5B)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR126.WAV\", kwavToolTips5C)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR127.WAV\", kwavToolTips5D)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR128.WAV\", kwavToolTips5E)\n\n// project tips\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VMR001.WAV\", kwavPrjTips00)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VMR002.WAV\", kwavPrjTips01)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VMR003.WAV\", kwavPrjTips02)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VMR004.WAV\", kwavPrjTips03)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VMR005.WAV\", kwavPrjTips04)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VMR006.WAV\", kwavPrjTips05)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VMR007.WAV\", kwavPrjTips06)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VMR008.WAV\", kwavPrjTips07)\n// easel help\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR073.WAV\", kwavEaselHelp00)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR074.WAV\", kwavEaselHelp02)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR075.WAV\", kwavEaselHelp03)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR076.WAV\", kwavEaselHelp04)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR077.WAV\", kwavEaselHelp05)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR078.WAV\", kwavEaselHelp06)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR079.WAV\", kwavEaselHelp07)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR080.WAV\", kwavEaselHelp08)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR081.WAV\", kwavEaselHelp09)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR082.WAV\", kwavEaselHelp0A)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR083.WAV\", kwavEaselHelp0B)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR084.WAV\", kwavEaselHelp0D)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR085.WAV\", kwavEaselHelp0E)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR086.WAV\", kwavEaselHelp0F)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR087.WAV\", kwavEaselHelp10)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR088.WAV\", kwavEaselHelp11)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR089.WAV\", kwavEaselHelp12)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR090.WAV\", kwavEaselHelp13)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR091.WAV\", kwavEaselHelp14)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR092.WAV\", kwavEaselHelp15)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR093.WAV\", kwavEaselHelp16)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR094.WAV\", kwavEaselHelp17)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR095.WAV\", kwavEaselHelp18)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR096.WAV\", kwavEaselHelp19)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR097.WAV\", kwavEaselHelp1A)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR104.WAV\", kwavEaselHelp1B)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR099.WAV\", kwavEaselHelp1E)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR100.WAV\", kwavEaselHelp1F)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR101.WAV\", kwavEaselHelp20)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR102.WAV\", kwavEaselHelp21)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR103.WAV\", kwavEaselHelp24)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR098.WAV\", kwavEaselHelp25)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR105.WAV\", kwavEaselHelp28)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR106.WAV\", kwavEaselHelp29)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR107.WAV\", kwavEaselHelp2A)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR108.WAV\", kwavEaselHelp2D)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR109.WAV\", kwavEaselHelp30)\n// helpbook tooltips\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR112.WAV\", kwavHelpBook1)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR110.WAV\", kwavHelpBook2)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR111.WAV\", kwavHelpBook3)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR046.WAV\", kwavHelpBook4)\nWAVE_CHUNK (\"helpaud\\sound\\tooltips\\VZR113.WAV\", kwavHelpBook5)\n"
  },
  {
    "path": "src/makefile",
    "content": "#--- $(SOC_ROOT)\\src\\makefile.mak\n\n.SILENT:\n\n#SOC SOURCE DIRECTORIES\nSOC_ENGINE_DIR = $(SOC_ROOT)\\engine\nSOC_STUDIO_DIR = $(SOC_ROOT)\\studio\nSOC_BLDG_DIR = $(SOC_ROOT)\\building\nSOC_SHARED_DIR = $(SOC_ROOT)\\shared\n\n{$(SOC_ENGINE_DIR)}.cpp.obj:\n    @cd engine\n    @nmake /NOLOGO $@\n\n{$(SOC_STUDIO_DIR)}.cpp.obj:\n    @cd studio\n    @nmake /NOLOGO $@\n\n{$(SOC_ENGINE_DIR)}.cpp.exe:\n    @cd engine\n    @nmake /NOLOGO $@\n\n{$(SOC_STUDIO_DIR)}.cpp.exe:\n    @cd studio\n    @nmake /NOLOGO $@\n\n{$(SOC_ENGINE_DIR)}.rc.res:\n    @cd engine\n    @nmake /NOLOGO $@\n\n{$(SOC_STUDIO_DIR)}.rc.res:\n    @cd studio\n    @nmake /NOLOGO $@\n\n{$(SOC_ENGINE_DIR)}.cht.chk:\n    @cd engine\n    @nmake /NOLOGO $@\n\n{$(SOC_STUDIO_DIR)}.cht.chk:\n    @cd studio\n    @nmake /NOLOGO $@\n\n{$(SOC_BLDG_DIR)}.cht.chk:\n    @cd studio\n    @nmake /NOLOGO $@\n\nALL_TARGETS = ALL_ENGINE ALL_STUDIO\n\n!IF EXIST($(SOC_ROOT)\\src\\building\\makefile)\nALL_TARGETS = $(ALL_TARGETS) ALL_BLDG\n!ENDIF\n\n!IF EXIST($(SOC_ROOT)\\src\\helpaud\\makefile)\nALL_TARGETS = $(ALL_TARGETS) ALL_HELPAUD\n!ENDIF\n\n!IF EXIST($(SOC_ROOT)\\src\\help\\makefile)\nALL_TARGETS = $(ALL_TARGETS) ALL_HELP\n!ENDIF\n\n!IF EXIST($(SOC_ROOT)\\src\\shared\\makefile)\nALL_TARGETS = $(ALL_TARGETS) ALL_SHARED\n!ENDIF\n\nALL: $(ALL_TARGETS)\n\nALL_ENGINE:\n    cd $(SOC_ROOT)\\src\\engine\n    @echo Making Engine All...\n    $(MAKE) /NOLOGO all\n    cd $(SOC_ROOT)\\src\n\n\nALL_STUDIO:\n    cd $(SOC_ROOT)\\src\\studio\n    @echo Making Studio All...\n    $(MAKE) /NOLOGO all\n    cd $(SOC_ROOT)\\src\n\n\nALL_BLDG:\n    cd $(SOC_ROOT)\\src\\building\n    @echo Making Building All...\n    $(MAKE) /NOLOGO all\n    cd $(SOC_ROOT)\\src\n\n\nALL_HELP:\n    cd $(SOC_ROOT)\\src\\help\n    @echo Making Help All...\n    $(MAKE) /NOLOGO all\n    cd $(SOC_ROOT)\\src\n\n\nALL_HELPAUD:\n    cd $(SOC_ROOT)\\src\\helpaud\n    @echo Making Helpaud All...\n    $(MAKE) /NOLOGO all\n    cd $(SOC_ROOT)\\src\n\n\nALL_SHARED:\n    cd $(SOC_ROOT)\\src\\shared\n    @echo Making Shared All...\n    $(MAKE) /NOLOGO all\n    cd $(SOC_ROOT)\\src\n\n\nCLEAN: CLEAN_ENGINE CLEAN_HELP CLEAN_HELPAUD CLEAN_STUDIO CLEAN_BLDG CLEAN_SHARED\n\nCLEAN_ENGINE:\n    cd $(SOC_ROOT)\\src\\engine\n    @echo Making Engine Clean...\n    $(MAKE) /NOLOGO clean\n    cd $(SOC_ROOT)\\src\n\n\nCLEAN_HELP:\n    cd $(SOC_ROOT)\\src\\help\n    @echo Making Help Clean...\n    $(MAKE) /NOLOGO clean\n    cd $(SOC_ROOT)\\src\n\n\nCLEAN_HELPAUD:\n    cd $(SOC_ROOT)\\src\\helpaud\n    @echo Making Helpaud Clean...\n    $(MAKE) /NOLOGO clean\n    cd $(SOC_ROOT)\\src\n\n\nCLEAN_STUDIO:\n    cd $(SOC_ROOT)\\src\\studio\n    @echo Making Studio Clean...\n    $(MAKE) /NOLOGO clean\n    cd $(SOC_ROOT)\\src\n\n\nCLEAN_BLDG:\n    cd $(SOC_ROOT)\\src\\building\n    @echo Making Building Clean...\n    $(MAKE) /NOLOGO clean\n    cd $(SOC_ROOT)\\src\n\n\nCLEAN_SHARED:\n    cd $(SOC_ROOT)\\src\\shared\n    @echo Making Shared Clean...\n    $(MAKE) /NOLOGO clean\n    cd $(SOC_ROOT)\\src\n\n"
  },
  {
    "path": "src/shared/bio.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n\nSET _help_48544F50_0= ktpcBioPage1\nCHUNK('HTOP', _help_48544F50_0, \"Bio Page : Table of Contents\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_2=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage1\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_2=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD8 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_41475041_1=_help_cno\nCHUNK('AGPA', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_2, 0x0)\nAG(4)\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 1 LONG ktpcBioTip001 Debug( STN \"ktpcBioTip001\" )\n\tITEM LONG 0x40000001\n\t\tVAR BYTE 2 LONG ktpcBioTip001 Debug( STN \"ktpcBioTip001\" )\nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x15 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0x03 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x23 0x00 0x00 0x01    // '????#???' \n\t0x01 0x00 0x03 0x00 0x24 0x00 0x00 0x01    // '????$???' \n\t0x01 0x00 0x10 0x00 0x26 0x00 0x00 0x01    // '????&???' \n\t0x01 0x00 0x0A 0x00 0x48 0x00 0x00 0x01    // '????H???' \n\t0x01 0x00 0x00 0x00 0x95 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0x74 0x01 0x00 0x03    // '????t???' \n\t0x43 0x00 0x00 0xFD 0x82 0x01 0x00 0x03    // 'C??��???' \n\t0x00 0x00 0x00 0x00 0x8A 0x01 0x00 0x03    // '????�???' \n\t0x2C 0x00 0x00 0xFD 0x94 0x01 0x00 0x03    // ',??��???' \n\t0x0C 0x00 0x00 0xFD 0x95 0x01 0x00 0x03    // '???��???' \n\t0x00 0x00 0x00 0x00 0x74 0x01 0x00 0x40    // '????t??@' \n\t0x01 0x00 0x00 0x00 0x82 0x01 0x00 0x40    // '????�??@' \n\t0x00 0x00 0x00 0x00 0x8A 0x01 0x00 0x40    // '????�??@' \n\t0x02 0x00 0x00 0x00 0x94 0x01 0x00 0x40    // '????�??@' \n\t0x00 0x00 0x00 0x00 0x95 0x01 0x00 0x40    // '????�??@' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0x09 0x00 0x00 0x02 0x03 0x00 0x00 0x80    // '???????�' \n\t0xCF 0x00 0x00 0x02 0x26 0x00 0x00 0x80    // '�???&??�' \n\t0xBD 0x00 0x00 0x02 0x48 0x00 0x00 0x80    // '�???H??�' \n\t0xBD 0x00 0x00 0x02                        // '�???' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_2, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x0D 0x0A 0x42 0x69 0x6F    // '?? ??Bio' \n\t0x20 0x50 0x61 0x67 0x65 0x20 0x49 0x6E    // ' Page In' \n\t0x73 0x74 0x72 0x75 0x63 0x74 0x69 0x6F    // 'structio' \n\t0x6E 0x73 0x0D 0x0A 0x28 0x70 0x61 0x67    // 'ns??(pag' \n\t0x65 0x31 0x29 0x0D 0x0A 0x20 0x0D 0x0A    // 'e1)?? ??' \n\t0x20 0x20 0x59 0x6F 0x75 0x72 0x20 0x4D    // '  Your M' \n\t0x69 0x73 0x73 0x69 0x6F 0x6E 0x3A 0x20    // 'ission: ' \n\t0x20 0x46 0x69 0x6E 0x64 0x20 0x74 0x68    // ' Find th' \n\t0x65 0x20 0x70 0x61 0x67 0x65 0x73 0x21    // 'e pages!' \n\t0x0D 0x0A 0x20 0x20 0x0D 0x0A 0x54 0x68    // '??  ??Th' \n\t0x65 0x20 0x41 0x63 0x74 0x6F 0x72 0x27    // 'e Actor'' \n\t0x73 0x20 0x62 0x69 0x6F 0x67 0x72 0x61    // 's biogra' \n\t0x70 0x68 0x69 0x65 0x73 0x20 0x68 0x61    // 'phies ha' \n\t0x76 0x65 0x20 0x62 0x65 0x65 0x6E 0x20    // 've been ' \n\t0x73 0x63 0x61 0x74 0x74 0x65 0x72 0x65    // 'scattere' \n\t0x64 0x20 0x74 0x68 0x72 0x6F 0x75 0x67    // 'd throug' \n\t0x68 0x6F 0x75 0x74 0x20 0x74 0x68 0x65    // 'hout the' \n\t0x20 0x62 0x75 0x69 0x6C 0x64 0x69 0x6E    // ' buildin' \n\t0x67 0x21 0x20 0x20 0x54 0x68 0x65 0x79    // 'g!  They' \n\t0x20 0x63 0x6F 0x75 0x6C 0x64 0x20 0x62    // ' could b' \n\t0x65 0x20 0x69 0x6E 0x73 0x69 0x64 0x65    // 'e inside' \n\t0x20 0x6F 0x62 0x6A 0x65 0x63 0x74 0x73    // ' objects' \n\t0x2C 0x20 0x62 0x65 0x68 0x69 0x6E 0x64    // ', behind' \n\t0x20 0x74 0x68 0x65 0x6D 0x20 0x6F 0x72    // ' them or' \n\t0x20 0x75 0x6E 0x64 0x65 0x72 0x6E 0x65    // ' underne' \n\t0x61 0x74 0x68 0x20 0x74 0x68 0x65 0x6D    // 'ath them' \n\t0x2E 0x20 0x0D 0x0A 0x0D 0x0A 0x54 0x6F    // '. ????To' \n\t0x20 0x66 0x69 0x6E 0x64 0x20 0x74 0x68    // ' find th' \n\t0x65 0x20 0x70 0x61 0x67 0x65 0x73 0x2C    // 'e pages,' \n\t0x20 0x63 0x6C 0x69 0x63 0x6B 0x20 0x6F    // ' click o' \n\t0x62 0x6A 0x65 0x63 0x74 0x73 0x20 0x69    // 'bjects i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x76 0x61    // 'n the va' \n\t0x72 0x69 0x6F 0x75 0x73 0x20 0x72 0x6F    // 'rious ro' \n\t0x6F 0x6D 0x73 0x2E 0x20 0x20 0x49 0x66    // 'oms.  If' \n\t0x20 0x79 0x6F 0x75 0x20 0x66 0x69 0x6E    // ' you fin' \n\t0x64 0x20 0x6F 0x6E 0x65 0x2C 0x20 0x74    // 'd one, t' \n\t0x68 0x65 0x20 0x70 0x61 0x67 0x65 0x20    // 'he page ' \n\t0x77 0x69 0x6C 0x6C 0x20 0x73 0x68 0x6F    // 'will sho' \n\t0x77 0x20 0x75 0x70 0x2E 0x20 0x20 0x4F    // 'w up.  O' \n\t0x6E 0x63 0x65 0x20 0x79 0x6F 0x75 0x27    // 'nce you'' \n\t0x76 0x65 0x20 0x72 0x65 0x61 0x64 0x20    // 've read ' \n\t0x61 0x6E 0x64 0x20 0x63 0x6C 0x6F 0x73    // 'and clos' \n\t0x65 0x64 0x20 0x69 0x74 0x2C 0x20 0x74    // 'ed it, t' \n\t0x68 0x65 0x20 0x70 0x61 0x67 0x65 0x20    // 'he page ' \n\t0x77 0x69 0x6C 0x6C 0x20 0x62 0x65 0x20    // 'will be ' \n\t0x73 0x74 0x6F 0x72 0x65 0x64 0x20 0x69    // 'stored i' \n\t0x6E 0x20 0x74 0x68 0x65 0x20 0x41 0x63    // 'n the Ac' \n\t0x74 0x6F 0x72 0x20 0x42 0x69 0x6F 0x20    // 'tor Bio ' \n\t0x42 0x6F 0x6F 0x6B 0x20 0x69 0x6E 0x20    // 'Book in ' \n\t0x74 0x68 0x65 0x20 0x49 0x64 0x65 0x61    // 'the Idea' \n\t0x73 0x20 0x72 0x6F 0x6F 0x6D 0x2E         // 's room.' \nENDCHUNK\n\nSET _help_48544F50_1= ktpcBioPage2\nCHUNK('HTOP', _help_48544F50_1, \"Bio Page 2\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_29=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage2\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_2B=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2B=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x06 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00                        // '�???' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2B=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_2B, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_2= ktpcBioPage3\nCHUNK('HTOP', _help_48544F50_2, \"Bio Page 3\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_2A=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage3\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_2A=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_2, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2A=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2A=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_2A, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_3= ktpcBioPage4\nCHUNK('HTOP', _help_48544F50_3, \"Bio Page 4\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_2D=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage4\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_2D=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_2D=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_2D=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_2D, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_4= ktpcBioPage5\nCHUNK('HTOP', _help_48544F50_4, \"Bio Page 5\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_0=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage5\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_0=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_0=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_0=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_0, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_5= ktpcBioPage6\nCHUNK('HTOP', _help_48544F50_5, \"Bio Page 6\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_1=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage6\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_1=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_6= ktpcBioPage7\nCHUNK('HTOP', _help_48544F50_6, \"Bio Page 7\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_3=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage7\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_3=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_3=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_3=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_3, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_7= ktpcBioPage8\nCHUNK('HTOP', _help_48544F50_7, \"Bio Page 8\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_4=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage8\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_4=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_4=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_4=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_4, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_8= ktpcBioPage9\nCHUNK('HTOP', _help_48544F50_8, \"Bio Page 9\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_6=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage9\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_6=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_6=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_6=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_6, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_9= ktpcBioPage10\nCHUNK('HTOP', _help_48544F50_9, \"Bio Page 10\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_5=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage10\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_5=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_5=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_5=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_5, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_A= ktpcBioPage11\nCHUNK('HTOP', _help_48544F50_A, \"Bio Page 11\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_7=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage11\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_7=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_7=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_7=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_7, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_B= ktpcBioPage12\nCHUNK('HTOP', _help_48544F50_B, \"Bio Page 12\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_8=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage12\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_8=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_8=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_8=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_8, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_C= ktpcBioPage13\nCHUNK('HTOP', _help_48544F50_C, \"Bio Page 13\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_9=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage13\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_9=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_9=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_9=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_9, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_D= ktpcBioPage14\nCHUNK('HTOP', _help_48544F50_D, \"Bio Page 14\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_A=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage14\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_A=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_A=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_A=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_A, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_E= ktpcBioPage15\nCHUNK('HTOP', _help_48544F50_E, \"Bio Page 15\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_B=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage15\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_B=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_B=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_B=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_B, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_F= ktpcBioPage16\nCHUNK('HTOP', _help_48544F50_F, \"Bio Page 16\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_C=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage16\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_C=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_C=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_C=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_C, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_10= ktpcBioPage17\nCHUNK('HTOP', _help_48544F50_10, \"Bio Page 17\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_D=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage17\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_D=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_D=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_D=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_D, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_11= ktpcBioPage18\nCHUNK('HTOP', _help_48544F50_11, \"Bio Page 18\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_E=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage18\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_E=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_E=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_E=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_E, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_12= ktpcBioPage19\nCHUNK('HTOP', _help_48544F50_12, \"Bio Page 19\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_F=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage19\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_F=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_F=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_F=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_F, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_13= ktpcBioPage20\nCHUNK('HTOP', _help_48544F50_13, \"Bio Page 20\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_10=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage20\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_10=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_10=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_10=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_10, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_14= ktpcBioPage21\nCHUNK('HTOP', _help_48544F50_14, \"Bio Page 21\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_11=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage21\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_11=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_11=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_11=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_11, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_15= ktpcBioPage22\nCHUNK('HTOP', _help_48544F50_15, \"Bio Page 22\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_12=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage22\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_12=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_12=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_12=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_12, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_16= ktpcBioPage23\nCHUNK('HTOP', _help_48544F50_16, \"Bio Page 23\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_13=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage23\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_13=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_13=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_13=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_13, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_17= ktpcBioPage24\nCHUNK('HTOP', _help_48544F50_17, \"Bio Page 24\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_14=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage24\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_14=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_14=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_14=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_14, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_18= ktpcBioPage25\nCHUNK('HTOP', _help_48544F50_18, \"Bio Page 25\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_15=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage25\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_15=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_15=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_15=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_15, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_19= ktpcBioPage26\nCHUNK('HTOP', _help_48544F50_19, \"Bio Page 26\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_16=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage26\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_16=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_16=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_16=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_16, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_1A= ktpcBioPage27\nCHUNK('HTOP', _help_48544F50_1A, \"Bio Page 27\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_17=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage27\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_17=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_17=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_17=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_17, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_1B= ktpcBioPage28\nCHUNK('HTOP', _help_48544F50_1B, \"Bio Page 28\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_18=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage28\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_18=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_18=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_18=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_18, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_1C= ktpcBioPage29\nCHUNK('HTOP', _help_48544F50_1C, \"Bio Page 29\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_19=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage29\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_19=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_19=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_19=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_19, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_1D= ktpcBioPage30\nCHUNK('HTOP', _help_48544F50_1D, \"Bio Page 30\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_1A=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage30\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_1A=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1A=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1A=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1A, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_1E= ktpcBioPage31\nCHUNK('HTOP', _help_48544F50_1E, \"Bio Page 31\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_1B=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage31\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_1B=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1B=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1B=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1B, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_1F= ktpcBioPage32\nCHUNK('HTOP', _help_48544F50_1F, \"Bio Page 32\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_1C=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage32\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_1C=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1C=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1C=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1C, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_20= ktpcBioPage33\nCHUNK('HTOP', _help_48544F50_20, \"Bio Page 33\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_1D=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage33\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_1D=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1D=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1D=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1D, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_21= ktpcBioPage34\nCHUNK('HTOP', _help_48544F50_21, \"Bio Page 34\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_1E=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage34\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_1E=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1E=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1E=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1E, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_22= ktpcBioPage35\nCHUNK('HTOP', _help_48544F50_22, \"Bio Page 35\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_1F=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage35\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_1F=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_1F=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_1F=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_1F, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_23= ktpcBioPage36\nCHUNK('HTOP', _help_48544F50_23, \"Bio Page 36\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_20=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage36\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_20=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_20=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_20=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_20, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_24= ktpcBioPage37\nCHUNK('HTOP', _help_48544F50_24, \"Bio Page 37\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_21=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage37\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_21=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_21=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_21=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_21, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_25= ktpcBioPage38\nCHUNK('HTOP', _help_48544F50_25, \"Bio Page 38\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_22=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage38\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_22=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_25, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_22=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_22=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_22, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_26= ktpcBioPage39\nCHUNK('HTOP', _help_48544F50_26, \"Bio Page 39\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_23=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage39\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_23=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_26, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_23=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_23=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_23, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_27= ktpcBioPage40\nCHUNK('HTOP', _help_48544F50_27, \"Bio Page 40\")\n\tBO OSK LONG kgobBlankBalloon kgobBlankBalloon 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_24=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"ktpcBioPage40\"\n\tITEM\n\t\t\"kgobBlankBalloon\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_24=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_27, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xD6 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_24=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x08 0x00 0x00 0x00 0x00 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x08 0x00 0x0F 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x10 0x00 0x11 0x00 0x00 0x01    // '????????' \n\t0x01 0x00 0x03 0x00 0xCF 0x01 0x00 0x01    // '????�???' \n\t0x00 0x00 0x00 0x00 0xCF 0x01 0x00 0x03    // '????�???' \n\t0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x80    // '???????�' \n\t0xF7 0xFF 0x00 0x02 0x11 0x00 0x00 0x80    // '��?????�' \n\t0xBD 0x00 0x00 0x00 0x33 0x01 0x00 0x80    // '�???3??�' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_24=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_24, 0x0)\n\tBYTE\n\t0x03 0x03 0x20 0x43 0x68 0x61 0x72 0x61    // '?? Chara' \n\t0x63 0x74 0x65 0x72 0x20 0x4E 0x61 0x6D    // 'cter Nam' \n\t0x65 0x0D 0x0A 0x0D 0x0A 0x74 0x65 0x78    // 'e????tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x0D 0x0A 0x74 0x65 0x78    // 'me ??tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20 0x74 0x65 0x78 0x74 0x20 0x74 0x6F    // ' text to' \n\t0x20 0x63 0x6F 0x6D 0x65 0x20 0x74 0x65    // ' come te' \n\t0x78 0x74 0x20 0x74 0x6F 0x20 0x63 0x6F    // 'xt to co' \n\t0x6D 0x65 0x20 0x74 0x65 0x78 0x74 0x20    // 'me text ' \n\t0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20    // 'to come ' \n\t0x74 0x65 0x78 0x74 0x20 0x74 0x6F 0x20    // 'text to ' \n\t0x63 0x6F 0x6D 0x65 0x20 0x74 0x65 0x78    // 'come tex' \n\t0x74 0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D    // 't to com' \n\t0x65 0x20 0x74 0x65 0x78 0x74 0x20 0x74    // 'e text t' \n\t0x6F 0x20 0x63 0x6F 0x6D 0x65 0x20 0x74    // 'o come t' \n\t0x65 0x78 0x74 0x20 0x74 0x6F 0x20 0x63    // 'ext to c' \n\t0x6F 0x6D 0x65 0x20 0x74 0x65 0x78 0x74    // 'ome text' \n\t0x20 0x74 0x6F 0x20 0x63 0x6F 0x6D 0x65    // ' to come' \n\t0x20                                       // ' ' \nENDCHUNK\n\nSET _help_48544F50_2A= ktpcBioTip001\nCHUNK('HTOP', _help_48544F50_2A, \"First tip\")\n\tBO OSK LONG kgobPopTip kgobPopTip 0x0 0xFFFFFFFF 0x0 0x0 0x57415645 0xFFFFFFFF\nENDCHUNK\n\n#ifdef DEBUG\nSET _help_cno++\nSET _help_47535420_2B=_help_cno\nCHUNK('GST ', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tGST(0)\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"ktpcBioTip001\"\n\tITEM\n\t\t\"kgobPopTip\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\n\tITEM\n\t\t\"\"\nENDCHUNK\n#endif //DEBUG\n\nSET _help_cno++\nSET _help_52545854_29=_help_cno\nCHUNK('RTXT', _help_cno, \"\")\nPARENT('HTOP', _help_48544F50_2A, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0xC8 0x00 0x00 0x00    // '????�???' \n\t0x0C 0x00 0x00 0x00 0xFF 0xFF 0xFF 0xFF    // '????����' \n\t0x03 0x03 0x0D 0x43 0x6F 0x6D 0x69 0x63    // '???Comic' \n\t0x20 0x53 0x61 0x6E 0x73 0x20 0x4D 0x53    // ' Sans MS' \n\t0x00                                       // '?' \nENDCHUNK\n\nSET _help_cno++\nSET _help_474C4D50_29=_help_cno\nCHUNK('GLMP', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x01 0x00 0x03 0x03 0x08 0x00 0x00 0x00    // '????????' \n\t0x00 0x00 0x00 0x00                        // '????' \nENDCHUNK\n\nSET _help_cno++\nSET _help_54455854_29=_help_cno\nCHUNK('TEXT', _help_cno, \"\")\nPARENT('RTXT', _help_52545854_29, 0x0)\n\tBYTE\n\t0x03 0x03 0x54 0x68 0x69 0x73 0x20 0x69    // '??This i' \n\t0x73 0x20 0x61 0x20 0x70 0x6F 0x70 0x75    // 's a popu' \n\t0x70 0x21 0x21 0x21 0x21 0x21 0x21 0x0D    // 'p!!!!!!?' \n\t0x0A 0x0D 0x0A 0x59 0x69 0x70 0x70 0x65    // '???Yippe' \n\t0x65 0x21                                  // 'e!' \nENDCHUNK\n"
  },
  {
    "path": "src/shared/biopage.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************\n\n   The bio page object.\n\n   Usage: \tset globals ::fBioCtrl if you want controls,\n\t\t\tset ::nBioPage to the page,\n\t\t\tthen create this object\n\n\t// rectangular hit region -- nothing passes through\n*****************************************************************/\n\n#include \"projmain.h\"\t// to get ksclBuilding?\n\nWAVE_CHUNK( \"shared\\sound\\biofound.wav\", kwavFoundBio )\nWAVE_CHUNK( \"shared\\sound\\bioalrdy.wav\", kwavBioAlreadyFound )\nWAVE_CHUNK( \"shared\\sound\\tbkopen.wav\", kwavOpenBio )\nWAVE_CHUNK( \"shared\\sound\\biocancl.wav\", kwavBioCancel )\nWAVE_CHUNK( \"shared\\sound\\biopop.wav\", kwavBioPopup )\n\nOBJECTTY( \"Bio Page background\", kgobBioPage, 1000, kcrsArrow1, kgokkRectHit )\nREP_PPMBMP( CHID1( krepDefault ), \"shared\\pbm\\biopage.pbm\" )\nADOPT_MBMP( LAST_MBMP, kcell1 )\nCREATE_SCRIPT( \"bio page : create\" )\n\t// Disable keyboard accelerators while the bio book is up.\n\tDISABLEACCEL(fFalse);\n\t.count = 0;\n\n\t// eat all clicks while the page is up\n\tFilterCmdsThis(cidKey, kidNil, kchidScript9);\n\n\t.snd = (::fBioCtrl ) ? kwavOpenBio : kwavFoundBio;\n\t// at startup, update the page.\n\tRunScriptThis( kchidScript1 );\nENDCHUNK\nCHILD_SCRIPT( \"update bio page\", kchidScript1 )\n\tASSERT(::nBioPage >= 0);\t// 0 = table of contents (valid)\n\tDEBUGCMD(PrintStr(\"Updating bio pages object\"));\n\n\tIf( ::nBioPage < 0 || ::nBioPage > NUM_BIOPAGES );\n\t\tDEBUGCMD( AlertStr( \"Invalid bio page start: default to 0 [toc]\" ));\n\t\t::nBioPage = 0;\n\tEnd;\n\n\t// Script to update the display of the bio page\n\t// First, map the internal ID to a page id ...\n\tid = Select( ::nBioPage, BIO_PAGE_ORDER );\n\t// update the pictures\n\tIf ( !FGobExists( kgobBioActors ));\n\t\tCreateChildThis( kgobBioActors, kgobBioActors );\n\tEnd;\n\tSetRepGob( kgobBioActors, kcell1 + id );\t\n\tNumToStr( id, kstidBioPageNum );\n\n\t\n\tIf ( !FGobExists( kgobBioHolder ));\n\t\tCreateChildThis( kgobBioHolder, kgobBioHolder );\n\tEnd;\n\n\tIf ( !FGobExists( kgobBioPageHolder ));\n\t\tCreateChildThis( kgobBioPageHolder, kgobBioPageHolder );\n\tEnd;\n\n\t// and the text...\n\tCreateHelpGob( kgobBioHolder, ktpcBioPage1 + id );\n\t\n\t// page number - not for table of contents page\n\tIf ( id != 0 );\n\t\tCreateHelpGob( kgobBioPageHolder, ktpcBioPageNum );\n\tElse;\n\t\tDestroyGob( kgobBioPageHolder );\n\tEnd;\n\n\t\n\tIf( ::fBioCtrl );\n\t\t// panel makes the page look like it's in a book\n\t\tIf( !FGobExists( kgobBioPanel));\n\t\t\tCreateChildThis( kgobBioPanel, kgobBioPanel );\n\t\tEnd;\n\t\t// forward button\n\t\tIf( !FGobExists( kgobBioFwd));\n\t\t\tCreateChildThis( kgobBioFwd, kgobBioFwd );\n\t\tEnd;\n\t\t// back button\n\t\tIf( !FGobExists( kgobBioBack ));\n\t\t\tCreateChildThis( kgobBioBack, kgobBioBack );\n\t\tEnd;\n\tEnd;\n\n\t// and make sure we've got a cancel button!\n\tIf( !FGobExists( kgobBioCancel ));\n\t\tCreateChildThis( kgobBioCancel,kgobBioCancel );\n\tEnd;\n\t\n\t// play the sound as appropriate..\n\tIf( .snd != cnoNil );\n\t\t// page by itself-- play the intro audio\n\t\tPlaySoundThis(kctgWave, .snd, 1, 0x00010000, 1, 1, ksclBldgSound);\n\t\t.snd = cnoNil;\n\tEnd;\n\nENDCHUNK\n// script to eat and throw away key clicks\nCHILD_SCRIPT( \"help book : switch to section\", kchidScript9  )\n\t\n\tIf ( _parm[2] == Select( .count, 's', 'o', 'c', 'r', 'a', 't', 'e', 's' ));\n\t\t++.count;\n\t\tIf( .count == 8 );\n\t\t\tCreateChildThis( 7777, 7777 );\t// video\n\t\tEnd;\n\tElse;\n\t\t.count = 0;\n\tEnd;\n\tReturn( fTrue );\nENDCHUNK\n\nGOBCHUNK(\"melanie - AVI \", 7777, gokkNoHitThis )\n\tDEFAULT_POSITION( 160, 120, 999 )\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_VIDEO( CHID1( krepDefault ), \"bldgdata.chk\", fTrue )\n\n\n// ---------------------------------------------------------------\n// graphic that contains the rings, etc.\nOBJECT( \"Bio Panel\", kgobBioPanel, 10, kcrsHand1 )\nREP_PPMBMP( CHID1(krepDefault ), \"shared\\pbm\\biopanel.pbm\" )\n\n\n// ---------------------------------------------------------------\nOBJECTREG( \"Bio cancel\", kgobBioCancel, kxpBioCancel, kypBioCancel, 10, kcrsHand1 )\nREP_PPMBMP( CHID1(krepDefault ), \"shared\\pbm\\cancel.pbm\" )\nADOPT_MBMP(LAST_MBMP, CHID1( krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID1( krepMouseDnOff))\nREP_PPMBMP(CHID1(krepMouseDnOn), \"shared\\pbm\\cancelc.pbm\" )\nCLICK_SCRIPT(\"Bio cancel clicked\")\n\t// This is the only way out of the biobook -- re-enable keyboard\n\t// accelerators here.\n\tPlaySoundThis(kctgWave, kwavBioCancel, 1, 0x00010000, 1, 4, ksclBldgSound);\n\tIf (FGobExists(kidActorsCompose));\n\t\tEnqueueCid(cidClicked, kidActorsCompose, 0, 0, 0, 0);\n\tEnd;\n\tDestroyGob( kgobBioPage );\n\tENABLEACCEL(fFalse);\nENDCHUNK\n\n\n// ---------------------------------------------------------------\nOBJECTREG( \"Bio Fwd\", kgobBioFwd, kxpBioFwd, kypBioFwd, 10, kcrsHand1 )\nREP_PPMBMP( CHID1(krepDefault ), \"shared\\pbm\\fwd.pbm\" )\nADOPT_MBMP(LAST_MBMP, CHID1( krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID1( krepMouseDnOff))\nREP_PPMBMP(CHID1(krepMouseDnOn), \"shared\\pbm\\fwdc.pbm\" )\nCLICK_SCRIPT(\"Bio forward clicked\")\n\tcurr = ::nBioPage;\n\tWhile( 1 );\n\t\t++::nBioPage;\t\t\t// next page\n\t\tIf ( ::nBioPage == NUM_BIOPAGES );\t // at the end?\n\t\t\t::nBioPage = curr;\t\t// don't advance then.\n\t\t\tBreak;\n\t\tEnd;\n\t\tIf( fBIO_AVAIL( ::nBioPage ));\t// do we have it?\n\t\t\twav = Rnd(2) + kwavBio3;\t// play a random sound\n\t\t\tPlaySoundThis(kctgWave, wav, 1, 0x00010000, 1, 4, ksclBldgSound);\n\t\t\tBreak;\t\t\t\t// yep, all done.\n\t\tEnd;\n\tEnd;\n\t\n\tRunScriptGob( kgobBioPage, kchidScript1 );\t\nENDCHUNK\n\n// ---------------------------------------------------------------\nOBJECTREG( \"Bio Back\", kgobBioBack, kxpBioBack, kypBioBack, 10, kcrsHand1 )\nREP_PPMBMP( CHID1(krepDefault ), \"shared\\pbm\\back.pbm\" )\nADOPT_MBMP(LAST_MBMP, CHID1( krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID1( krepMouseDnOff))\nREP_PPMBMP(CHID1(krepMouseDnOn), \"shared\\pbm\\backc.pbm\" )\nCLICK_SCRIPT(\"Bio back clicked\")\n\tcurr = ::nBioPage;\n\tWhile( 1 );\n\t\t--::nBioPage;\n\t\tIf ( ::nBioPage < 0 );\t // at the beginning\n\t\t\t::nBioPage = curr;\t  // don't change then.\n\t\t\tBreak;\n\t\tEnd;\n\n\t\tIf( fBIO_AVAIL( ::nBioPage ));\t// do we have it?\n\t\t\twav = Rnd(2) + kwavBio1;\t// play a random sound\n\t\t\tPlaySoundThis(kctgWave, wav, 1, 0x00010000, 1, 4, ksclBldgSound);\n\t\t\tBreak;\t\t\t\t// yep, all done.\n\t\tEnd;\n\tEnd;\n\t\n\tRunScriptGob( kgobBioPage, kchidScript1 );\t\nENDCHUNK\n\n\n// ---------------------------------------------------------\n// BUILDING BIO PAGE STUB\n\nWAVE_CHUNK( \"shared\\sound\\bio\\TBPAGEB1.WAV\", kwavBio1 )\t// back\nWAVE_CHUNK( \"shared\\sound\\bio\\TBPAGEB2.WAV\", kwavBio2 )\t// back 2\nWAVE_CHUNK( \"shared\\sound\\bio\\TBPAGEF1.WAV\", kwavBio3 )\nWAVE_CHUNK( \"shared\\sound\\bio\\TBPAGEF2.WAV\", kwavBio4 )\n\n// -----------------------------------------------------\n// transparent rectangular balloon that allows hit testing\n//\n// This'll grow to fit the text in it...\n// -----------------------------------------------------\nGOBCHUNK( \"biotopic balloon\", kgobBlankBalloon, 0)\n\tDEFAULT_POSITION( 0,0,500 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil )\nENDCHUNK\nREP_RECT( CHID1( krepDefault), \"page blank\", 0,0, 300, 300 )\n\n\n// this holds the above balloon\nOBJECT( \"\", kgobBioHolder, 3, kcrsArrow1 )\nREP_RECT( CHID1( krepDefault), \"page blank\", kxpBioPageLeft, kypBioPageTop, kxpBioPageRight, kypBioPageBottom )\n\n// holds the \"Page # of #\" balloon\nOBJECT( \"bio page #\", kgobBioPageHolder, 200, kcrsArrow1 )\nREP_RECT( CHID1( krepDefault), \"page blank\", kxpBioPageNumLeft, kypBioPageNumTop, kxpBioPageNumRight, kypBioPageNumBottom )\n\n\n\n// -----------------------------------------------------\n// Bio tip balloon\n// -----------------------------------------------------\nGOBCHUNK(\"Hot help for tools\", kgobPopTip, kgokkNormal)\n\tDEFAULT_POSITION(0,0,700)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, CHID1(kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"Tool topic tile\", \"shared\\bmp\\biotip.bmp\", 84, 61)\n\tTILEDEF( 15, 15, 24, 120, 8, 0, 0, 0, 24 )\n\tTILEDEF( 12, 12, 24,  74, 8, 0, 0, 0, 24 )\nENDCHUNK\n// filtering messages\nCREATE_ANIM(\"Filtering messages for help tools balloon\")\n\t// get all mouse downs\n\tFilterCmdsThis(cidMouseDown, kidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, kidNil, kchidScript1);\n\tPlaySoundThis(kctgWave, kwavBioPopup , 1, 0x00010000, 1, 1, ksclBldgSound);\n\t\nENDCHUNK\n// Handle mouse clicks\nCHILD_SCRIPT(\"Got a click or keydown\", kchidScript1)\n\tDestroyThis();\nENDCHUNK\nCLICK_SCRIPT(\"Got a click or keydown\" )\n\tDestroyThis();\nENDCHUNK\n\n// This script will be invoked if the user clicks on a tip inside the bio page.\n// This'll create a pop up tip --- but as a child of the biopage, *not* of the \n// bounding rectangle thing\n\nHELP_SCRIPT( kidBioTipScript )\n\t// parm[0] = group # passed in\n\tIf(_parm[0] != 0);\t\n\t\t// Valid group clicked _parm[4] is id of table object to run\n\t\tIf( _parm[4] != cnoNil );\n\t\t\tCreateHelpGob( kgobBioPage, _parm[4] );\n\t\tEnd;\n\t\tReturn( fTrue );\t// tell KAUAI NOT to create help balloon\n\tEnd;\nENDCHUNK\n\n\n"
  },
  {
    "path": "src/shared/cursors.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// ------------------------------------------------------------------------\n// Shared cursor definitions... \n// ------------------------------------------------------------------------\n\nCURSORCHUNK( \"shared\\cursors\\hotspot.cur\", kcrsHand1 )\nCURSORCHUNK( \"shared\\cursors\\default.cur\", kcrsArrow1 )\nCURSORCHUNK( \"shared\\cursors\\actions2.cur\", kcrsWand1 )\nCURSORCHUNK( \"shared\\cursors\\crs1018.cur\", kcrsStar )\nCURSORCHUNK( \"shared\\cursors\\turnleft.cur\", kcrsLeft )\nCURSORCHUNK( \"shared\\cursors\\turnrigt.cur\", kcrsRight )\nCURSORCHUNK( \"shared\\cursors\\turnarnd.cur\", kcrsDown )\nCURSORCHUNK( \"shared\\cursors\\turnarnd.cur\", kcrsTurn1 )\n\n"
  },
  {
    "path": "src/shared/makefile",
    "content": "#---shared.mak\n\n!IFNDEF MAKEFILE_SHARED\nMAKEFILE_SHARED = 1\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.def\n\n#SHARED SOURCE DIRECTORY\nSHARED_SRC_DIR = $(SOC_ROOT)\\src\\shared\n\n#SOC OBJ DIRECTORY\nSOC_OBJ_ROOT_DIR = $(SOC_ROOT)\\obj\nSOC_OBJ_DIR = $(SOC_OBJ_ROOT_DIR)\\$(BLD_TYPE_DIR)\n\n!IF \"$(LOCAL_BUILD)\" == \"1\"\nTARGET_DIR =\n!ELSE # LOCAL_BUILD\nTARGET_DIR = $(SOC_OBJ_DIR)^\\\n!ENDIF # !LOCAL_BUILD\n\nSOC_HEADER_FILES = \\\n\t$(SOC_ROOT)\\inc\\kidgs.chh \\\n!IF \"$(TYPE)\" == \"DEBUG\"\n\t$(SOC_ROOT)\\inc\\assert.chh \\\n!ENDIF\n\t$(SOC_ROOT)\\inc\\kidgsdef.h \\\n\t$(KAUAI_ROOT)\\src\\kiddef.h \\\n\t$(KAUAI_ROOT)\\src\\framedef.h \\\n\t$(SOC_ROOT)\\inc\\buildgob.h \\\n\t$(SOC_ROOT)\\inc\\sharedef.h \\\n\t$(SOC_ROOT)\\inc\\sharutil.chh\\\n\t$(SOC_ROOT)\\inc\\balloons.chh\n\n\nSHARED_CHT_FILES = \\\n\t$(SHARED_SRC_DIR)\\shared.cht\\\n\t$(SHARED_SRC_DIR)\\util.cht\\\n\t$(SHARED_SRC_DIR)\\cursors.cht\\\n\t$(SHARED_SRC_DIR)\\map.cht\\\n\t$(SHARED_SRC_DIR)\\biopage.cht\\\n\t$(SHARED_SRC_DIR)\\sharhelp.cht\\\n\t$(SHARED_SRC_DIR)\\sharecd.cht\n\nSHARED_CHH_FILES = $(SHARED_SRC_DIR)\\map.chh\n\nSHARED_CHUNK_TARGETS =\\\n    $(TARGET_DIR)shared.chk $(TARGET_DIR)sharecd.chk\n\n#-Compile rules-------------------------------------------------------------\n\nSRC_DIR = $(SHARED_SRC_DIR)\nOBJ_DIR = $(SOC_OBJ_DIR)\nTGT_NAME = Shared\n\n!INCLUDE $(SOC_ROOT)\\makefile.rul\n\n#-Targets-------------------------------------------------------------------\n\nALL_SHARED = $(TARGET_DIR)shared.chk $(TARGET_DIR)sharecd.chk \nALL_TARGETS_ROOT = $(ALL_TARGETS_ROOT) $(ALL_SHARED)\n\nCLEAN_SHARED = CLEAN_SHARED_CHUNKS\nCLEAN_TARGETS_ROOT = $(CLEAN_TARGETS_ROOT) $(CLEAN_SHARED)\n\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\n!IF \"$(LOCAL_BUILD)\" != \"0\"\n\nALL: $(SOC_OBJ_DIR) SHARED_CONTENT\nCLEAN: CLEAN_SHARED_CHUNKS ALL\n\n!ENDIF  # LOCAL_BUILD != 0\n\n$(SOC_OBJ_DIR) :\n    @echo Making Directories $(SOC_OBJ_DIR)...\n    if not exist $(SOC_OBJ_ROOT_DIR)/nul mkdir $(SOC_OBJ_ROOT_DIR)\n    if not exist $(SOC_OBJ_DIR)/nul mkdir $(SOC_OBJ_DIR)\n\n!ENDIF  # LOCAL_BUILD != 1\n\nCLEAN_SHARED_CHUNKS:\n    @echo <<delshrd.bat\n@echo off\nDEL /q dummy.nul $(SHARED_CHUNK_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    call delshrd.bat\n\t\t\t\t  \n\n#\n#Create Shared Chunky Files\n#\nSHARED_CONTENT: $(SOC_OBJ_DIR)\\shared.chk  $(SOC_OBJ_DIR)\\sharecd.chk\n\n$(TARGET_DIR)shared.chk : $(SOC_OBJ_DIR) $(SHARED_CHT_FILES) $(SHARED_CHH_FILES) $(SOC_HEADER_FILES)\n$(TARGET_DIR)sharecd.chk : $(SOC_OBJ_DIR) $(SHARED_CHT_FILES) $(SHARED_CHH_FILES) $(SOC_HEADER_FILES)\n\n!ENDIF  # !MAKEFILE_SHARED\n\n"
  },
  {
    "path": "src/shared/map.chh",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\n*\n*  MAP.CHH\n*\n*  Copyright (C) Microsoft Corporation 1995.\n*  All Rights reserved.\n*\n******************************************************************************\n*\n*  Module Intent\n*\n*  Constants used in the map object.  This is intended to be used only\n*  internally to the map object, not shared across other chunks.\n*\n******************************************************************************\n*\n*  Revision History:  Created 06/21/95 by *****.\n*\n*****************************************************************************/\n\n#ifndef MAP_CHH\n#define MAP_CHH\n\n// -----------------------------------------------------\n// Map object ids\n// -----------------------------------------------------\n\n#define kgobMapProjMask\t\t0x00012050\n#define kgobMapBackMask\t\t0x00012051\n#define kgobMapLobbyMask\t0x00012052\n#define kgobMapSnackMask\t0x00012053\n#define kgobMapTicketMask\t0x00012054\n#define kgobMapCancel\t\t0x00012055\n#define kgobMapIdeaMask\t\t0x00012056\n#define kgobMapStudioMask\t0x00012057\n#define kgobMapTheatreMask\t0x00012058\n#define kgobMapSplotMask\t0x00012059\n#define kgobMapBioMask\t\t0x0001205a\n#define kgobMapLogoMask\t\t0x0001205b\n#define kgobMapSnippetMask\t0x0001205c\n#define kgobMapToolsMask\t0x0001205d\n#define kgobMapVolumeSlider\t0x0001205f\n#define kgobVolumePath\t\t0x00012060\n#define kgobMapNoTalk\t\t0x00012061\n#define kgobMapExit\t\t\t0x00012062\n\n// -----------------------------------------------------\n// Coordinates defining map layout\n// -----------------------------------------------------\n\n#define kxpMapExit\t\t\t571\n#define kypMapExit\t\t\t426\n#define kxpregMapExit\t\t0\n#define kypregMapExit\t\t0\n\n#define kxpMapCancel\t\t581\n#define kypMapCancel\t\t365\n#define kxpregMapCancel\t\t0\n#define kypregMapCancel\t\t0\n\n#define kxpMapNoTalk\t\t28\n#define kypMapNoTalk\t\t365\n#define kxpregMapNoTalk\t\t0\n#define kypregMapNoTalk\t\t0\n\n#define kxpMapSlider\t\t22\n#define kypMapSlider\t\t294\n#define kdxpMapSlider\t\t48\n#define kdypMapSlider\t\t96\n\n#define kdypMapSliderTotal\t104\n\n\n// -----------------------------------------------------\n// reg points for the \"You are here\" (YAH) sign\n// -----------------------------------------------------\n  \n#define kxpMapYAHStudio\t\t322\n#define kypMapYAHStudio\t\t61\n#define kxpMapYAHIdeas\t\t238\n#define kypMapYAHIdeas\t\t141\n#define kxpMapYAHBackstage\t320\n#define kypMapYAHBackstage\t147\n#define kxpMapYAHProjects\t372\n#define kypMapYAHProjects\t134\n#define kxpMapYAHTheatre\t320\n#define kypMapYAHTheatre\t256\n#define kxpMapYAHLobby\t\t320\n#define kypMapYAHLobby\t\t363\n#define kxpMapYAHTicket\t\t346\n#define kypMapYAHTicket\t\t428\n\n#endif\t// !MAP_CHH\n"
  },
  {
    "path": "src/shared/map.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\n*\n*  MAP.CHT\n*\n*  Copyright (C) Microsoft Corporation 1995.\n*  All Rights reserved.\n*\n******************************************************************************\n*\n*  Module Intent\n*\n*  Defines the map object and scripts.\n*\n*  Assumptions / requirements:  \n*\n* \t\t1.  kgobMapMain is created as a child of the current place\n*\n******************************************************************************\n*\n*  Revision History:  Created 05/08/95 by *****.\n*\n*\t06/21/95\t*****\tMoved from building into shared directory and\n*\t\t\t\t\t\tdiscoupled from the Building util object.\n*\t06/30/95\t*****\tMade to use masks.\n*\t\t\t\t\t\t\n*\n*****************************************************************************/\n#include \"socdefn.h\"\n#include \"shared\\map.chh\"\n\nWAVE_CHUNK( \"shared\\sound\\mapobj.wav\", kwavMapObject )\nWAVE_CHUNK( \"shared\\sound\\mapopen.wav\", kwavMapOpen )\t\n//----------------------------------------------------------\n// This macro returns the normal map entry state for each place.\n//----------------------------------------------------------\n#define MAPENTRY(_kgobPlc)\\\n\tMatch(\t_kgobPlc,\t\t\tkst1,\\\n\t\t\tkgobProjects1,\t\tkst1,\\\n\t\t\tkgobBackstage1,\t\tkst2,\\\n\t\t\tkgobTheatre1,\t\tkst4,\\\n\t\t\tkgobLobby1,\t\t\tkst2,\\\n\t\t\tkgobTicket2,\t\tkst3,\\\n\t\t\tkgobInspiration1,\tkst6,\\\n\t\t\tkgobStudio1,\t\tkst1)\n\n// ------------------------------------------------------------------------\n// Main map object.\n// ------------------------------------------------------------------------\n\nOBJECT( \"Map main parent\", kgobMapMain, 900, kcrsArrow1)\nREP_PPMBMP( kcell1, \"shared\\pbm\\map\\mapback.pbm\" )\nCREATE_SCRIPT( \"main map startup\" )\n\tPlaySoundGob(kgobUtil, kctgWave, kwavMapOpen, 1, 0x00010000, 1, 1,ksclBldgSound);\n\n\n\t// Then disable accelerator keys while map is up.\n\tDISABLEACCEL(fFalse);\n\n\t// eat all clicks while the map is up\n\tFilterCmdsThis(cidKey, kidNil, kchidScript9);\n\n\t// Create the children masks\n\tCreateChildThis( kgobMapProjMask, kgobMapProjMask );\n\tCreateChildThis( kgobMapBackMask, kgobMapBackMask );\n\tCreateChildThis( kgobMapTheatreMask, kgobMapTheatreMask );\n\tCreateChildThis( kgobMapLobbyMask, kgobMapLobbyMask );\n\tCreateChildThis( kgobMapTicketMask, kgobMapTicketMask );\n\tCreateChildThis( kgobMapCancel, kgobMapCancel );\n\tCreateChildThis( kgobMapIdeaMask, kgobMapIdeaMask);\n\tCreateChildThis( kgobMapStudioMask, kgobMapStudioMask );\n\tCreateChildThis( kgobMapToolsMask, kgobMapToolsMask);\n\tCreateChildThis( kgobMapLogoMask, kgobMapLogoMask );\n\tCreateChildThis( kgobMapSnippetMask, kgobMapSnippetMask );\n\tCreateChildThis( kgobMapSplotMask, kgobMapSplotMask );\n\tCreateChildThis( kgobMapBioMask, kgobMapBioMask );\n\tCreateChildThis( kgobMapExit, kgobMapExit );\n\tCreateChildThis( kgobVolumePath, kgobVolumePath );\nENDCHUNK\n\nREP_ANIM( CHID1( krepDefault ), \"normal\" )\n\tCell( kcell1, 0, 0, 1 );\n\n\t// Create the \"You are here\" control\n\tCreateHelpThis( ktpcYouHere );\nENDCHUNK\n// -------------------------------------------------------------\n// script to eat and throw away key clicks\nCHILD_SCRIPT( \"help book : switch to section\", kchidScript9  )\n\tReturn( fTrue );\nENDCHUNK\n\n\n// --------------------------------------------------------------------------------\n//\tTakes down map, and moves to the place the user clicked on.\n//\n//  _parm[0]  = newplace = gob id of the place in building (e.g. kgobStudio1 )\n//  _parm[1]  = newstate = entry state to that place\n//\t_parm[2]  = fTools \t = boolean, TRUE if we're jumping to the tools\n// --------------------------------------------------------------------------------\nCHILD_SCRIPT( \"takedown map and switch\", kchidScript1 )\n\n\tnewplace = _parm[0];\n\tnewstate = _parm[1];\n\tfTools\t= _parm[2];\n\t  \n\t// Play the map clicked sound.\n\tPlaySoundGob(kgobUtil, kctgWave, kwavMapObject, 1, 0x00010000, 1, 1,\n\t\t\tksclBldgSound);\n\n\t// Note: When the map goes away, be sure to reenable accelerators\n\n\tIf ( ::fInStudio );\n\t\tIf( fTools );\n\t\t\t// tools -> tools = CANCEL\n\t\t\tDEBUGCMD(PrintStr(\"Studio=>Studio via Map\"));\n\t\t\tENABLEACCEL(fFalse); \n\t\t\tDestroyThis();\n\t\t\tExit();\n\t\tEnd;\n\n\t\t// tools -> building\n\n\t\tDEBUGCMD(PrintStr(\"Studio=>Building via Map\"));\n\t\tSetProp(kpridBuildingGob, newplace );\n\t\tSetProp(kpridBuildingState, newstate);\n\t\tENABLEACCEL(fFalse);\n\t\tSETPALETTE( cnoNil );\t\t// invalidate our palette and force a transition - bug #1708\n\n\t\tEnqueueCid(cidLoadBuilding, 0, 0, 0, 0, 0);\n\t\tDestroyThis();\n\n\tElse;\n\t\tIf (GidParThis() == newplace);\n\t\t\t// Building -> same place in building = cancel\n\t\t\t// except: when state of newplace is NOT the MAPENTRY state.\n\n\t\t\tDEBUGCMD(PrintStr(\"Building=>Same place in Building via Map\"));\n\t\t\tENABLEACCEL(fFalse);\n\t\t\tDestroyThis();\t\t\n\n\t\t\tIf (newstate != MAPENTRY(newplace));\n\t\t\t\tDEBUGCMD(PrintStr(\"Changing state to \", NumToStr(newstate, \"\")));\n\t\t\t\tSETGLOBAL(kstEntry, newstate);\n\t\t\t\t// Script0 contains the dispatch info for the place gob.  If\n\t\t\t\t// there is no script0, Kauai will complain so I won't bother\n\t\t\t\t// with any debug code here.\n\t\t\t\tRunScriptGob(newplace, kchidScript0);\n\t\t\tEnd;\n\n\t\t\tExit();\n\t\tEnd;\t\t\t\n\n\t\t// Building -> building case\n\t\t// Building -> building / tools \n\t\t\n\t\tDEBUGCMD(PrintStr(\"Building=>Building or Studio via Map\"));\n\t\tENABLEACCEL(fFalse);\n\t\tDestroyThis();\t\t\n\t\tNEXTPLACE1( newplace, newstate );\n\tEnd;\nENDCHUNK\n\n\n// --------------------------------------------------------------------------------\nOBJECTREG( \"map - cancel button\",   kgobMapCancel, kxpMapCancel, kypMapCancel, 60, kcrsHand1 )\nREP_MBMPREG(CHID1(krepDefault), \"shared\\bmp\\map\\cancel.bmp\", kxpregMapCancel, kypregMapCancel )\nADOPT_MBMP(LAST_MBMP, CHID1(krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID1(krepMouseDnOff))\nREP_MBMPREG(CHID1(krepMouseDnOn), \"shared\\bmp\\map\\cancelc.bmp\", kxpregMapCancel, kypregMapCancel )\nREP_WAVE( CHID1(krepClicked), \"shared\\sound\\map\\cancel.wav\" )\nCLICK_SCRIPT( \"cancel Mask clicked\" )\n\tENABLEACCEL(fFalse);\n\tDestroyGob( kgobMapMain );\n\nENDCHUNK\n\n//----------------------------------------------------------------------------------\nOBJECTREG( \"map - exit button\", kgobMapExit, kxpMapExit, kypMapExit, 60, kcrsHand1)\nREP_MBMPREG(CHID1(krepDefault), \"shared\\bmp\\map\\exit.bmp\", kxpregMapExit, kypregMapExit )\nADOPT_MBMP(LAST_MBMP, CHID1(krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID1(krepMouseDnOff))\nREP_MBMPREG(CHID1(krepMouseDnOn), \"shared\\bmp\\map\\exits.bmp\", kxpregMapExit, kypregMapExit )\nREP_WAVE( CHID1(krepClicked), \"shared\\sound\\map\\mapexit.wav\" )\nCLICK_SCRIPT( \"map - exit clicked\" )\n\tENABLEACCEL(fFalse);\n\tDestroyGob( kgobMapMain );\n\tQUITAPP();\nENDCHUNK\n\n// --------------------------------------------------------------------------------\n// balloon for \"You are Here\" object.  Ignores the mouse.\n// --------------------------------------------------------------------------------\nOBJECTTY( \"Map - You are here\", kgobMapHere, 555, kcrsArrow1, gokkNoHit )\nREP_TILE( CHID1( krepDefault), \"you are here Mask\", \"shared\\bmp\\map\\here.bmp\", 6, 22 )\n\tTILEDEF( 30,8,32,70,4,0,0,0,6 )\n\tTILEDEF( 13,1,22,4,2,0,0,0,4 )\nENDCHUNK\nCREATE_SCRIPT( \"you are here create\")\n\n\t// If we're in the studio, put the YAH sign in the room in the building\n\t// where we will end up if we leave the studio.\n\tIf (::fInStudio);\n\t\tplc = GetProp(kpridBuildingGob);\n\tElse;\n\t\tplc = GET_CURRENTPLACE();\n\tEnd;\n\n\t// get x.y to position ourselves appropriately when created\n\tx= Match( plc, -1,\t\t// -1 = invalid\n\t\tkgobTicket1, \t\tkxpMapYAHTicket,\n\t\tkgobTicket2, \t\tkxpMapYAHTicket,\n\t\tkgobLobby1, \t\tkxpMapYAHLobby, \n\t\tkgobLobby2, \t\tkxpMapYAHLobby, \n\t\tkgobSnackBar,\t\tkxpMapYAHLobby, \n\t\tkgobWaiting, \t\tkxpMapYAHLobby, \n\t\tkgobTheatre1, \t\tkxpMapYAHTheatre, \n\t\tkgobTheatre2, \t\tkxpMapYAHTheatre,\n\t\tkgobTheatre3, \t\tkxpMapYAHTheatre,\n\t\tkgobTheatre4, \t\tkxpMapYAHTheatre,\n\t\tkgobBackstage1, \tkxpMapYAHBackstage,\n\t\tkgobBackstage2, \tkxpMapYAHBackstage,\n\t\tkgobInspiration1,\tkxpMapYAHIdeas,\n\t\tkgobInspiration2,\tkxpMapYAHIdeas,\n\t\tkgobInspiration3,\tkxpMapYAHIdeas,\n\t\tkgobInspiration4,\tkxpMapYAHIdeas,\n\t\tkgobStudio1, \t\tkxpMapYAHStudio,\n\t\tkgobStudio2, \t\tkxpMapYAHStudio,\n\t\tkgobStudio3, \t\tkxpMapYAHStudio,\n\t\tkgobStudio4, \t\tkxpMapYAHStudio,\n\t\tkgobProjects1, \t\tkxpMapYAHProjects,\n\t\tkgobProjects2, \t\tkxpMapYAHProjects,\n\t\tkgobProjects3, \t\tkxpMapYAHProjects,\n\t\tkgobProjects4, \t\tkxpMapYAHProjects \n\t);\n\n\ty= Match( plc, -1,\t\t// -1 = invalid\n\t\tkgobTicket1, \t\tkypMapYAHTicket,\n\t\tkgobTicket2, \t\tkypMapYAHTicket,\n\t\tkgobLobby1, \t\tkypMapYAHLobby, \n\t\tkgobLobby2, \t\tkypMapYAHLobby, \n\t\tkgobSnackBar,\t\tkypMapYAHLobby, \n\t\tkgobWaiting, \t\tkypMapYAHLobby, \n\t\tkgobTheatre1, \t\tkypMapYAHTheatre, \n\t\tkgobTheatre2, \t\tkypMapYAHTheatre,\n\t\tkgobTheatre3, \t\tkypMapYAHTheatre,\n\t\tkgobTheatre4, \t\tkypMapYAHTheatre,\n\t\tkgobBackstage1, \tkypMapYAHBackstage,\n\t\tkgobBackstage2, \tkypMapYAHBackstage,\n\t\tkgobInspiration1,\tkypMapYAHIdeas,\n\t\tkgobInspiration2,\tkypMapYAHIdeas,\n\t\tkgobInspiration3,\tkypMapYAHIdeas,\n\t\tkgobInspiration4,\tkypMapYAHIdeas,\n\t\tkgobStudio1, \t\tkypMapYAHStudio,\n\t\tkgobStudio2, \t\tkypMapYAHStudio,\n\t\tkgobStudio3, \t\tkypMapYAHStudio,\n\t\tkgobStudio4, \t\tkypMapYAHStudio,\n\t\tkgobProjects1, \t\tkypMapYAHProjects,\n\t\tkgobProjects2, \t\tkypMapYAHProjects,\n\t\tkgobProjects3, \t\tkypMapYAHProjects,\n\t\tkgobProjects4, \t\tkypMapYAHProjects \n\t);\n\n\tASSERT(x != -1 && y != -1);\n\tMoveAbsThis( x, y );\n\nENDCHUNK\n\n\n\n// --------------------------------------------------------------------------------\nOBJECT( \"map - inspiration Mask\", kgobMapIdeaMask, 60, kcrsHand1 )\nREP_MASK( CHID1( krepDefault ),   \"shared\\bmp\\map\\ideamsk.bmp\", 0, 0 )\nCLICK_SCRIPT( \"inspiration Mask clicked\" )\n\t\n\tRunScriptGob(kgobMapMain, kchidScript1, kgobInspiration1,\n\t\t\tMAPENTRY(kgobInspiration1), fFalse);\nENDCHUNK\n\n// --------------------------------------------------------------------------------\nOBJECT( \"map - studio Mask\",   kgobMapStudioMask, 60, kcrsHand1 )\nREP_MASK( CHID1( krepDefault ), \"shared\\bmp\\map\\studmsk.bmp\", 0, 0 )\nCLICK_SCRIPT( \"studio Mask clicked\" )\n \tRunScriptGob(kgobMapMain, kchidScript1, kgobStudio1,\n\t\t\tMAPENTRY(kgobStudio1), fFalse);\nENDCHUNK\n\n// --------------------------------------------------------------------------------\nOBJECT( \"map - projects Mask\",   kgobMapProjMask, 60, kcrsHand1 )\nREP_MASK( CHID1( krepDefault ), \"shared\\bmp\\map\\projmsk.bmp\", 0, 0 )\nCLICK_SCRIPT( \"Mask clicked\" )\n \tRunScriptGob(kgobMapMain, kchidScript1, kgobProjects1,\n\t\t\tMAPENTRY(kgobProjects1), fFalse);\nENDCHUNK\n\n// --------------------------------------------------------------------------------\nOBJECT( \"map - backstage Mask\",  kgobMapBackMask, 60, kcrsHand1 )\nREP_MASK( CHID1( krepDefault ), \"shared\\bmp\\map\\bkstgmsk.bmp\", 0, 0 )\nCLICK_SCRIPT( \"Mask clicked\" )\n \tRunScriptGob(kgobMapMain, kchidScript1, kgobBackstage1,\n\t\t\tMAPENTRY(kgobBackstage1), fFalse);\nENDCHUNK\n\n// --------------------------------------------------------------------------------\nOBJECT( \"map - theater Mask\", kgobMapTheatreMask, 60, kcrsHand1 )\nREP_MASK( CHID1( krepDefault ), \"shared\\bmp\\map\\theatmsk.bmp\", 0, 0 )\nCLICK_SCRIPT( \"Mask clicked\" )\n \tRunScriptGob(kgobMapMain, kchidScript1, kgobTheatre1,\n\t\t\tMAPENTRY(kgobTheatre1), fFalse);\nENDCHUNK\n\n\n// --------------------------------------------------------------------------------\nOBJECT( \"map - lobby Mask\", kgobMapLobbyMask, 60, kcrsHand1 )\nREP_MASK( CHID1( krepDefault ), \"shared\\bmp\\map\\LOBBYMSK.BMP\", 0, 0 )\nCLICK_SCRIPT(\"Mask clicked\")\n \tRunScriptGob(kgobMapMain, kchidScript1, kgobLobby1, MAPENTRY(kgobLobby1),\n\t\t\tfFalse);\nENDCHUNK\n\n// --------------------------------------------------------------------------------\nOBJECT( \"map - ticketbooth Mask\",  kgobMapTicketMask, 60, kcrsHand1 )\nREP_MASK( CHID1( krepDefault ), \"shared\\bmp\\map\\TICKTMSK.BMP\", 0, 0 )\nCLICK_SCRIPT( \"Mask clicked\" )\n \tRunScriptGob(kgobMapMain, kchidScript1, kgobTicket2,\n\t\t\tMAPENTRY(kgobTicket2), fFalse);\nENDCHUNK\n\n\n// --------------------------------------------------------------------------------\nOBJECT( \"map - bio book Mask\", kgobMapBioMask, 60, kcrsHand1 )\nREP_MASK( CHID1( krepDefault ), \"shared\\bmp\\map\\biomsk.bmp\", 0, 0 )\nCLICK_SCRIPT( \"Mask clicked\" )\n \tRunScriptGob( kgobMapMain, kchidScript1, kgobInspiration1, kst8 , fFalse );\nENDCHUNK\n\n// --------------------------------------------------------------------------------\nOBJECT( \"map - idea room - splot machine\", kgobMapSplotMask, 60, kcrsHand1 )\nREP_MASK( CHID1( krepDefault ), \"shared\\bmp\\map\\SPLOTMSK.BMP\", 0, 0 )\nCLICK_SCRIPT( \"Mask clicked\" )\n \tRunScriptGob( kgobMapMain, kchidScript1, kgobInspiration1, kst7 , fFalse );\nENDCHUNK\n\n// --------------------------------------------------------------------------------\nOBJECT( \"map - tools Mask\", kgobMapToolsMask, 60, kcrsHand1 )\nREP_MASK( CHID1( krepDefault ), \"shared\\bmp\\map\\TBOXMSK.BMP\", 0, 0 )\nCLICK_SCRIPT( \"Mask clicked\" )\n \tRunScriptGob(kgobMapMain, kchidScript1, kgobStudio1, kst2, fTrue);\nENDCHUNK\n\n// --------------------------------------------------------------------------------\nOBJECT( \"map - project 1 Mask - logo\", kgobMapLogoMask, 60, kcrsHand1 )\nREP_MASK( CHID1( krepDefault ), \"shared\\bmp\\map\\LOGOMSK.BMP\", 0, 0 )\nCLICK_SCRIPT( \"Mask clicked\" )\n \tRunScriptGob( kgobMapMain, kchidScript1, kgobProjects1, kst4 , fFalse );\nENDCHUNK\n\n// --------------------------------------------------------------------------------\nOBJECT( \"map - project 2 Mask\",  kgobMapSnippetMask, 60, kcrsHand1 )\nREP_MASK( CHID1( krepDefault ), \"shared\\bmp\\map\\GIZMOMSK.BMP\", 0, 0 )\nCLICK_SCRIPT( \"Mask clicked\" )\n \tRunScriptGob( kgobMapMain, kchidScript1, kgobProjects1, kst5 , fFalse );\nENDCHUNK\n\n// --------------------------------------------------------------------------------\n// The thumbnail is the graphic indicator of volume level...\n// positioned within the slide path - not hittable\n// --------------------------------------------------------------------------------\nOBJECTTY( \"map - volume slider\",  kgobMapVolumeSlider, 60, kcrsArrow1, kgokkRectNoHit )\nREP_MBMP( CHID1( krepDefault ), \"shared\\bmp\\map\\volthmb.bmp\" )\n\n// --------------------------------------------------------------------------------\n// The slider is the rectangular path the volume slider rolls around in.\n//   kdypMapSlider is the height of the slidable area; kdypMapSliderTotal includes\n//   height of thumbnail to be sure it will show at the min setting\n// --------------------------------------------------------------------------------\nOBJECTREG( \"map - volume slidepath\", kgobVolumePath, kxpMapSlider, kypMapSlider, 500, kcrsHand1 )\nREP_RECT( CHID1( krepDefault), \"map rectangle\", 0, 0, kdxpMapSlider, kdypMapSliderTotal )\nCREATE_SCRIPT( \"create slidepath\")\n\tCreateChildThis( kgobMapVolumeSlider, kgobMapVolumeSlider  );\n\t// get initial volume value, move thumbnail\n\ty = kdypMapSlider  -(( GetMasterVolume() * kdypMapSlider )/ (kvlmFull*2));\n\tMoveAbsGob( kgobMapVolumeSlider, 0, y );\nENDCHUNK\nREP_ANIM( CHID1( krepMouseDnOn), \"slider\")\t\n\t// repeat up to 30000 times.\n\t.siiLoop = PlaySoundThis(kctgWave, kwavDing, 2, 0x00010000, 30000, 1, ksclBldgSound);\t\n\tWhile( 1 );\n\t\ty = YMouseThis();\n\t\tIf( y < 0 );\n\t\t\ty=0;\n\t\tElif( y > kdypMapSlider );\n\t\t\ty =kdypMapSlider;\n\t\tEnd;\n\t\t\n\t\t// move thumb slider\n\t\tMoveAbsGob( kgobMapVolumeSlider, 0, y );\n\t\t\n\t\t// track new volume\n\t\tnewvol = ( (kvlmFull*2)* (kdypMapSlider-y) ) / kdypMapSlider;\t\n\n\t\t// set the volume\n\t\tSetMasterVolume( newvol );\t\n\n\t\t// Sample at 10/60ths of a second.\n\t\tCell(  0 , 0,0, 10 );\t\n\tEnd;\nENDCHUNK\nREP_ANIM( CHID1( kchidDownUpOn ), \"release on\" )\n\tStopSound( .siiLoop );\nENDCHUNK\nADOPT_ANIM( LAST_ANIM, CHID1( kchidDownUpOff ))\n"
  },
  {
    "path": "src/shared/portbmp.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// This is the source file for portbmp.chk. Contain the bitmap related to the portfolio.\n\n// \"Portfolio open background\")\nMBMPCHUNK (\"studio\\bmp\\portfolo.bmp\", kcnoMbmpPortBackOpen, 0,0,0 )\n\n// \"Portfolio save background\")\nMBMPCHUNK (\"studio\\bmp\\portfols.bmp\", kcnoMbmpPortBackSave, 0,0,0 )\n\n// \"Portfolio ok button background\")\nMBMPCHUNK (\"studio\\bmp\\portok.bmp\", kcnoMbmpPortBtnOk, 0,0,0 )\n\n// \"Portfolio ok button selected background\")\nMBMPCHUNK (\"studio\\bmp\\portokc.bmp\", kcnoMbmpPortBtnOkSel, 0,0,0 )\n\n// \"Portfolio cancel button background\")\nMBMPCHUNK (\"studio\\bmp\\portcan.bmp\", kcnoMbmpPortBtnCancel, 0,0,0 )\n\n// \"Portfolio cancel button selected background\")\nMBMPCHUNK (\"studio\\bmp\\portcanc.bmp\", kcnoMbmpPortBtnCancelSel, 0,0,0 )\n\n// \"Portfolio home button background\")\nMBMPCHUNK (\"studio\\bmp\\porthm.bmp\", kcnoMbmpPortBtnHome, 0,0,0 )\n\n// \"Portfolio home button selected background\")\nMBMPCHUNK (\"studio\\bmp\\porthmc.bmp\", kcnoMbmpPortBtnHomeSel, 0,0,0 )\n\n\nWAVE_CHUNK( \"shared\\sound\\util\\vzh1016.wav\", kwavPortSaveMovie)\nWAVE_CHUNK( \"shared\\sound\\util\\vzh1017.wav\", kwavPortOpenMovie)\nWAVE_CHUNK( \"shared\\sound\\util\\vzh1018.wav\", kwavPortOpenSound)\n"
  },
  {
    "path": "src/shared/sharecd.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\n*\n*  SHARECD.CHT\n*\n*  Copyright (C) Microsoft Corporation 1995.\n*  All Rights reserved.\n*\n******************************************************************************\n*\n*  Module Intent\n*\n*  Contains objects shared between Socrates Building and Studio chunks; e.g.,\n*  Map.  These are kept on the CD instead of the hard drive\n*\n******************************************************************************\n*\n*  Revision History:  Created 09/06/95 by *****.\n*\n*\n*****************************************************************************/\n\n// Include and initialized chunky macros.\n\n#define PACKALL\n#include \"kidgs.chh\"\nSTARTCHUNKY\n\n// IDs\n#include \"stdiodef.h\"\n#include \"buildgob.h\"\n#include \"sharedef.h\"\n#include \"balloons.chh\"\n#include \"helpbook.h\"\n#include \"projmain.h\"\n\n// Include shared object scripts.\n#include \"biopage.chh\"\n\n// graphics for the bio page actors (excluding the page itself )\n\n// ---------------------------------------------------------------\n// representations follow - set by creator\nOBJECT( \"Bio Actors shot\", kgobBioActors, 1, kcrsArrow1 )\nREP_PPMBMP( kcell1, \"shared\\pbm\\page01.pbm\" )\nREP_PPMBMP( kcell2, \"shared\\pbm\\page02.pbm\" )\nREP_PPMBMP( kcell3, \"shared\\pbm\\page03.pbm\" )\nREP_PPMBMP( kcell4, \"shared\\pbm\\page04.pbm\" )\nREP_PPMBMP( kcell5, \"shared\\pbm\\page05.pbm\" )\nREP_PPMBMP( kcell6, \"shared\\pbm\\page06.pbm\" )\nREP_PPMBMP( kcell7, \"shared\\pbm\\page07.pbm\" )\nREP_PPMBMP( kcell8, \"shared\\pbm\\page08.pbm\" )\nREP_PPMBMP( kcell9, \"shared\\pbm\\page09.pbm\" )\nREP_PPMBMP( kcell10,\"shared\\pbm\\page10.pbm\" )\nREP_PPMBMP( kcell11, \"shared\\pbm\\page11.pbm\" )\nREP_PPMBMP( kcell12, \"shared\\pbm\\page12.pbm\" )\nREP_PPMBMP( kcell13, \"shared\\pbm\\page13.pbm\" )\nREP_PPMBMP( kcell14, \"shared\\pbm\\page14.pbm\" )\nREP_PPMBMP( kcell15, \"shared\\pbm\\page15.pbm\" )\nREP_PPMBMP( kcell16, \"shared\\pbm\\page16.pbm\" )\nREP_PPMBMP( kcell17, \"shared\\pbm\\page17.pbm\" )\nREP_PPMBMP( kcell18, \"shared\\pbm\\page18.pbm\" )\nREP_PPMBMP( kcell19, \"shared\\pbm\\page19.pbm\" )\nREP_PPMBMP( kcell20, \"shared\\pbm\\page20.pbm\" )\nREP_PPMBMP( kcell21, \"shared\\pbm\\page21.pbm\" )\nREP_PPMBMP( kcell22, \"shared\\pbm\\page22.pbm\" )\nREP_PPMBMP( kcell23, \"shared\\pbm\\page23.pbm\" )\nREP_PPMBMP( kcell24, \"shared\\pbm\\page24.pbm\" )\nREP_PPMBMP( kcell25, \"shared\\pbm\\page25.pbm\" )\nREP_PPMBMP( kcell26, \"shared\\pbm\\page26.pbm\" )\nREP_PPMBMP( kcell27, \"shared\\pbm\\page27.pbm\" )\nREP_PPMBMP( kcell28, \"shared\\pbm\\page28.pbm\" )\nREP_PPMBMP( kcell29, \"shared\\pbm\\page29.pbm\" )\nREP_PPMBMP( kcell30, \"shared\\pbm\\page30.pbm\" )\nREP_PPMBMP( kcell31, \"shared\\pbm\\page31.pbm\" )\nREP_PPMBMP( kcell32, \"shared\\pbm\\page32.pbm\" )\nREP_PPMBMP( kcell33, \"shared\\pbm\\page33.pbm\" )\nREP_PPMBMP( kcell34, \"shared\\pbm\\page34.pbm\" )\nREP_PPMBMP( kcell35, \"shared\\pbm\\page35.pbm\" )\nREP_PPMBMP( kcell36, \"shared\\pbm\\page36.pbm\" )\nREP_PPMBMP( kcell37, \"shared\\pbm\\page37.pbm\" )\nREP_PPMBMP( kcell38, \"shared\\pbm\\page38.pbm\" )\nREP_PPMBMP( kcell39, \"shared\\pbm\\page39.pbm\" )\nREP_PPMBMP( kcell40, \"shared\\pbm\\page40.pbm\" )\nREP_PPMBMP( kcell41, \"shared\\pbm\\page41.pbm\" )\n\n\n"
  },
  {
    "path": "src/shared/shared.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\n*\n*  SHARED.CHT\n*\n*  Copyright (C) Microsoft Corporation 1995.\n*  All Rights reserved.\n*\n******************************************************************************\n*\n*  Module Intent\n*\n*  Contains objects shared between Socrates Building and Studio chunks; e.g.,\n*  Map.\n*\n******************************************************************************\n*\n*  Revision History:  Created 06/26/95 by *****.\n*\n*\t06/27/95\t*****\tAdded Map and shared cursors.\n*\n*****************************************************************************/\n\n// Include and initialized chunky macros.\n#define PACKALL\n#include \"kidgs.chh\"\nSTARTCHUNKY\n\n// IDs\n#include \"stdiodef.h\"\n#include \"buildgob.h\"\n#include \"sharedef.h\"\n#include \"balloons.chh\"\n#include \"helpbook.h\"\n#include \"projmain.h\"\n\n// Include shared object scripts.\n#include \"biopage.chh\"\n#include \"sharutil.chh\"\n#include \"util.cht\"\n#include \"cursors.cht\"\n#include \"map.cht\"\n\n// Get the help topics that describe the actors from here -- for now only\n// REVIEW: Need a way to integrate these into HELP.CHK?  The only ugly thing\n// is that the building will have to load help from the studio and vice versa.\n#include \"sharhelp.cht\"\n\n#include \"biopage.cht\"\n#include \"portbmp.cht\"\n"
  },
  {
    "path": "src/shared/sharhelp.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//\n// Main build chunky text file for the Socrates Shared Help\n// Main build chunky text file for the Socrates Studio Help\n//\n// Sean Selitrennikoff\n// *******\n//\n// -----------------------------------------------------\n// Help objects for Errors\n// -----------------------------------------------------\n// -----------------------------------------------------\n// Utest errors balloon\n// -----------------------------------------------------\nGOBCHUNK(\"Utest Error\", kgobBalloonError, kgokkNormal)\n\tDEFAULT_POSITION(0,0,700)\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"Tool page tile\", \"shared\\bmp\\alert.bmp\", 115, 72 )\n\tTILEDEF( 14,14,24,183,8,0,0,0,24 )\n\tTILEDEF( 14,14,24,95,8,0,0,0,24 )\nENDCHUNK\nREP_WAVE( CHID1( krepDefault ), \"shared\\sound\\alert2.wav\" )\n\n// scripts to run\nSCRIPTCHUNK(\"Handling error messages\", ktpcErrorScript)\n\tIf(_parm[0] != 0);\t\n\t\tEnqueueCid(cidEndModal, 0, _parm[0], 0, 0, 0);\n\tEnd;\nENDCHUNK\n\n// -------------------------------------------------------\n//\tQuery CD not found\n// -------------------------------------------------------\nHELP_SCRIPT(ktpcQueryCD)\n\t// If _parm[0] != 0 then a button has been pushed.\n\tIf(_parm[0] != 0);\t\n\t\tEnqueueCid(cidEndModal, 0, _parm[0], 0, 0, 0);\n\tEnd;\nENDCHUNK\n\n// -----------------------------------------------------\n// Help objects(Balloons)\n// -----------------------------------------------------\n// -----------------------------------------------------\n// normal help balloon (mid right speech dippty)\n// -----------------------------------------------------\nGOBCHUNK( \"help balloon #1\", kgobBalloon1, 0)\n\tDEFAULT_POSITION( 40,40,500 )\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"help balloon 1 tile\", \"shared\\bmp\\balln1b.bmp\", 93, 29 )\n\tTILEDEF( 7, 24, 7, 64, 8, 0,0,0,22 )\n\tTILEDEF( 7, 8, 7, 22, 8, 17, 8, 8, 8 )\nENDCHUNK\n\n// -----------------------------------------------------\n// Tooltip balloon\n// -----------------------------------------------------\nGOBCHUNK( \"tooltip balloon\", kgobBalloonToolTip, 0)\n\tDEFAULT_POSITION( 0,0,500 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"Tool tip tile\", \"shared\\bmp\\tooltip.bmp\", 0, 0 )\n\tTILEDEF( 4,4,4, 160,8, 0, 0, 0, 4 )\n\tTILEDEF( 3,3,3,50,8,0,0,0,3 )\nENDCHUNK\n\n// -----------------------------------------------------\n// Tooltip balloon, with reg point at bottom right\n// -----------------------------------------------------\nGOBCHUNK( \"tooltip balloon\", kgobBalloonToolTip2, 0)\n\tDEFAULT_POSITION( 0,0,500 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"Tool tip tile\", \"shared\\bmp\\tooltip.bmp\", 168, 56 )\n\tTILEDEF( 4,4,4, 160,8, 0, 0, 0, 4 )\n\tTILEDEF( 3,3,3,50,8,0,0,0,3 )\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon Invisible for audio only\n// -----------------------------------------------------\nGOBCHUNK(\"Audio Only balloon\", kgobBalloonToolTipAO, gokkNoHit)\n\tDEFAULT_POSITION( 0,0,500 )\nENDCHUNK\nREP_FILL(CHID1(krepDefault), \"Callout BalloonAO\", 0, 0, 1, 1, Transparent, Transparent)\n\tPATTERN_0\nENDCHUNK\n\n// -----------------------------------------------------\n// Tool topic balloon\n// -----------------------------------------------------\nGOBCHUNK( \"tool topic\", kgobBalloonToolTopic, 0)\n\tDEFAULT_POSITION( 40,40,500 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"Tool page tile\", \"shared\\bmp\\toolhelp.bmp\", 231, 143 )\n\tTILEDEF( 14,14,24,183,8,0,0,0,24 )\n\tTILEDEF( 14,14,24,95,8,0,0,0,24 )\nENDCHUNK\n\n\n// -----------------------------------------------------\n// Query help balloon\n// -----------------------------------------------------\nGOBCHUNK(\"Query help topic\", kgobQueryTopics, kgokkNormal)\n\tDEFAULT_POSITION(100,100,700)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, kchidClick, cidNil, cnoNil)\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"Tool page tile\", \"shared\\bmp\\alert.bmp\", 120, 72 )\n\tTILEDEF( 14,14,24,191,8,0,0,0,24 )\n\tTILEDEF( 14,14,24,95,8,0,0,0,24 )\nENDCHUNK\n\n// -----------------------------------------------------\n// Label balloon, -- no hit testing\n// -----------------------------------------------------\nGOBCHUNK( \"blank label balloon\", kgobBalloonLabel, gokkNoHit )\n\tDEFAULT_POSITION( 0,0,899 )\nENDCHUNK\nREP_FILL(CHID1(krepDefault), \"kgobBalloonLabel\", 0, 0, 1, 1, Transparent, Transparent)\n\tPATTERN_0\nENDCHUNK\n\n// -----------------------------------------------------\n// Help Book left page balloon -- no hit testing\n// -----------------------------------------------------\nGOBCHUNK( \"blank label balloon\", kgobBalloonPageLeft, kgokkNormal )\n\tDEFAULT_POSITION( 0,0,899 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"Invisible\", \"shared\\bmp\\balln3.bmp\", 1, 1)\n\tTILEDEF( 0, 0, 0, 32, 1, 0, 0, 0,0  )\n\tTILEDEF( 0, 0, 0, 32, 1, 0, 0, 0,0  )\nENDCHUNK\n\n// -----------------------------------------------------\n// Help Book right page balloon -- no hit testing\n// -----------------------------------------------------\nGOBCHUNK( \"blank label balloon\", kgobBalloonPageRight, kgokkNormal )\n\tDEFAULT_POSITION( 0,0,899 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"Invisible\", \"shared\\bmp\\balln3.bmp\", 1, 1)\n\tTILEDEF( 0, 0, 0, 32, 1, 0, 0, 0,0  )\n\tTILEDEF( 0, 0, 0, 32, 1, 0, 0, 0,0  )\nENDCHUNK\n\n// -----------------------------------------------------\n// transparent rectangular balloon, that allows hit testing\n// -----------------------------------------------------\nGOBCHUNK( \"blank, invisible balloon\", kgobBalloonBlank, kgokkNormal )\n\tDEFAULT_POSITION( 0,0,899 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"Invisible\", \"shared\\bmp\\balln3.bmp\", 1, 1)\n\tTILEDEF( 0, 0, 0, 32, 1, 0, 0, 0,0  )\n\tTILEDEF( 0, 0, 0, 32, 1, 0, 0, 0,0  )\nENDCHUNK\n\n// -----------------------------------------------------\n// Centered,rectangular alert help balloon\n// -----------------------------------------------------\nGOBCHUNK( \"alert help\", kgobBalloonAlert, 0)\n\tDEFAULT_POSITION( 0, 0,999 )\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"alert tile\", \"shared\\bmp\\balln2.bmp\", 40, 29 )\n\tTILEDEF( 7, 24, 7, 64, 8, 0,0,0, 22 )\n\tTILEDEF( 3, 8, 7, 20, 8, 17, 8, 8, 8 )\nENDCHUNK\n\n// -----------------------------------------------------\n// Close caption balloon\n// -----------------------------------------------------\nGOBCHUNK( \"voice over balloon\", kgobVoiceOver, gokkNoHit )\n\tDEFAULT_POSITION( 0, 0,999 )\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"alert tile\", \"shared\\bmp\\vo.bmp\", 40, 29 )\n\tTILEDEF( 7, 24, 7, 64, 8, 0,0,0, 22 )\n\tTILEDEF( 3, 8, 7, 20, 8, 17, 8, 8, 8 )\nENDCHUNK\n\n// -----------------------------------------------------\n// Top left arrowed bordered balloon\n// -----------------------------------------------------\nGOBCHUNK( \"alert help\", kgobBalloonBorder1, 0)\n\tDEFAULT_POSITION( 0,0,999 )\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"Bordered tile\", \"shared\\bmp\\border1.bmp\", 30, 5 )\n\tTILEDEF( 11, 20, 31, 40, 1, 0,0,0, 8 )\n\tTILEDEF( 25, 8, 25, 32, 1, 0,0,0, 8 )\nENDCHUNK\n\n// -----------------------------------------------------\n// Help book tool help balloon, does filtering\n// -----------------------------------------------------\nGOBCHUNK(\"Tool help\", kgobHelpBookToolTopics, kgokkNormal)\n\tDEFAULT_POSITION(100,100,700)\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID1(kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"Tool page tile\", \"shared\\bmp\\tooltip.bmp\", 168, 56 )\n\tTILEDEF( 4,4,4, 160,8, 0, 0, 0, 4 )\n\tTILEDEF( 3,3,3,50,8,0,0,0,3 )\nENDCHUNK\n// filtering messages\nCREATE_ANIM(\"Filtering messages for help tools balloon\")\n\t// get all mouse downs, keys or the F1 hotkey\n\tFilterCmdsThis(cidMouseDown, kidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, kidNil, kchidScript1);\n\t// F1 key fixes bug # 678\n\tFilterCmdsThis(cidHelpBook, kidNil, kchidScript1);\n\tFilterCmdsThis(cidToggleXY, kidNil, kchidScript1);\nENDCHUNK\n// Handle mouse clicks\nCHILD_SCRIPT(\"Got a click or keydown\", kchidScript1)\n\tIf (!FIsDescendent(_parm[0], GidThis()));\n\t\tDestroyThis();\n\tEnd;\nENDCHUNK\nCLICK_SCRIPT(\"Tool help balloon got clicked\")\n\tDestroyThis();\nENDCHUNK\n\n// -----------------------------------------------------\n// balloon that comes up from clicks in hotspots of tool help\n// -----------------------------------------------------\nGOBCHUNK(\"Hot help for tools\", kgobBalloonHotHelp, kgokkNormal)\n\tDEFAULT_POSITION(100,100,700)\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, kchidScript1, cidNil, cnoNil) \nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"Tool page tile\", \"shared\\bmp\\tooltip.bmp\", 84, 28 )\n\tTILEDEF( 4,4,4, 160,8, 0, 0, 0, 4 )\n\tTILEDEF( 3,3,3,50,8,0,0,0,3 )\nENDCHUNK\n// filtering messages\nCREATE_ANIM(\"Filtering messages for help tools balloons\")\n\t// get all mouse downs\n\tFilterCmdsThis(cidMouseDown, kidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, kidNil, kchidScript1);\nENDCHUNK\n// Handle mouse clicks\nCHILD_SCRIPT(\"Got a click or keydown\", kchidScript1)\n\tDestroyThis();\nENDCHUNK\n\n// -----------------------------------------------------\n// balloon that comes up from clicks in hotspots of gadget help\n// -----------------------------------------------------\nGOBCHUNK(\"Hot help for projects\", kgobBalloonHotGadgetHelp, kgokkNormal)\n\tDEFAULT_POSITION(100,100,700)\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, kchidScript1, cidNil, cnoNil) \nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"Tool page tile\", \"shared\\bmp\\tooltip.bmp\", 84, 28 )\n\tTILEDEF( 4,4,4, 160,8, 0, 0, 0, 4 )\n\tTILEDEF( 3,3,3,50,8,0,0,0,3 )\nENDCHUNK\n// filtering messages\nCREATE_ANIM(\"Filtering messages for project hot balloons\")\n\t// get all mouse downs\n\tFilterCmdsThis(cidMouseDown, kidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, kidNil, kchidScript1);\n\t// F1 key fixes bug # 678\n\tFilterCmdsThis(cidHelpBook, kidNil, kchidScript1);\n\tFilterCmdsThis(cidToggleXY, kidNil, kchidScript1);\nENDCHUNK\n// Handle mouse clicks\nCHILD_SCRIPT(\"Got a click or keydown\", kchidScript1)\n\tDestroyThis();\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon crinkly style\n// -----------------------------------------------------\nGOBCHUNK( \"Callout Balloon0\", kgobCalloutBalloon0, kgokkNormal)\n\tDEFAULT_POSITION(0, 0, 500 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE(CHID1(krepDefault), \"Callout Balloon0 Tile\", \"shared\\bmp\\coblln0.bmp\", 83, 61 )\n\tTILEDEF( 5, 5, 8, 151, 8, 0, 0,0, 8  )\n\tTILEDEF( 4, 4, 8, 106, 8, 0, 0, 0,8  )\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon arrow to upper left\n// -----------------------------------------------------\nGOBCHUNK( \"Callout Balloon1\", kgobCalloutBalloon1, kgokkNormal)\n\tDEFAULT_POSITION(0, 0, 500 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE(CHID1(krepDefault), \"Callout Balloon1 Tile\", \"shared\\bmp\\coblln1.bmp\", 1, 1)\n\tTILEDEF( 29, 8, 36, 146, 8, 0, 0, 0,8 )\n\tTILEDEF( 28, 8, 32, 103, 8, 0, 0, 0,8  )\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon arrow to upper mid\n// -----------------------------------------------------\nGOBCHUNK( \"Callout Balloon2\", kgobCalloutBalloon2, kgokkNormal)\n\tDEFAULT_POSITION(0, 0, 500 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE(CHID1(krepDefault), \"Callout Balloon2 Tile\", \"shared\\bmp\\coblln2.bmp\", 83, 1)\n\tTILEDEF( 4, 8, 8, 58, 8, 35, 60, 8,8  )\n\tTILEDEF( 41, 8, 42, 108, 8, 0, 0, 0,8  )\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon arrow to upper right\n// -----------------------------------------------------\nGOBCHUNK( \"Callout Balloon3\", kgobCalloutBalloon3, kgokkNormal)\n\tDEFAULT_POSITION(0, 0, 500 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE(CHID1(krepDefault), \"Callout Balloon3 Tile\", \"shared\\bmp\\coblln3.bmp\", 189, 2 )\n\tTILEDEF( 4, 32, 8, 147, 8, 0, 0, 0, 36 )\n\tTILEDEF( 30, 8, 34, 103, 4, 0, 0, 0, 8  )\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon arrow to right\n// -----------------------------------------------------\nGOBCHUNK( \"Callout Balloon4\", kgobCalloutBalloon4, kgokkNormal)\n\tDEFAULT_POSITION(0, 0, 500 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE(CHID1(krepDefault), \"Callout Balloon4 Tile\", \"shared\\bmp\\coblln4.bmp\", 201, 65)\n\tTILEDEF( 4, 46, 8, 148, 8, 0, 0, 0, 48 )\n\tTILEDEF( 3, 8, 8, 40, 4, 34, 40, 4, 8  )\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon arrow to lower right\n// -----------------------------------------------------\nGOBCHUNK( \"Callout Balloon5\", kgobCalloutBalloon5, kgokkNormal)\n\tDEFAULT_POSITION(0, 0, 500 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE(CHID1(krepDefault), \"Callout Balloon5 Tile\", \"shared\\bmp\\coblln5.bmp\", 189, 143 )\n\tTILEDEF( 4, 32, 8, 148, 8, 0, 0, 0, 36 )\n\tTILEDEF( 3, 32, 8, 102, 8, 0, 0, 0, 36 )\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon arrow to lower mid\n// -----------------------------------------------------\nGOBCHUNK( \"Callout Balloon6\", kgobCalloutBalloon6, kgokkNormal)\n\tDEFAULT_POSITION(0, 0, 500 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE(CHID1(krepDefault), \"Callout Balloon6 Tile\", \"shared\\bmp\\coblln6.bmp\", 83, 155 )\n\tTILEDEF( 4, 8, 8, 60, 8, 33, 60, 8, 8  )\n\tTILEDEF( 3, 38, 8, 105, 8, 0, 0, 0, 44  )\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon arrow to lower left\n// -----------------------------------------------------\nGOBCHUNK( \"Callout Balloon7\", kgobCalloutBalloon7, kgokkNormal)\n\tDEFAULT_POSITION(0, 0, 500 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE(CHID1(krepDefault), \"Callout Balloon7 Tile\", \"shared\\bmp\\coblln7.bmp\", 0, 147 )\n\tTILEDEF( 30, 8, 34, 149, 8, 0, 0, 0, 8 )\n\tTILEDEF( 3, 28, 8, 101, 8, 0, 0, 0, 38 )\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon arrow to left\n// -----------------------------------------------------\nGOBCHUNK( \"Callout Balloon8\", kgobCalloutBalloon8, kgokkNormal)\n\tDEFAULT_POSITION(0, 0, 500 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE(CHID1(krepDefault), \"Callout Balloon8 Tile\", \"shared\\bmp\\coblln8.bmp\", 0, 66)\n\tTILEDEF( 32, 8, 42, 150, 8, 0, 0, 0, 8  )\n\tTILEDEF( 3,8, 8, 40, 4, 34, 32, 4, 8  )\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon plain\n// -----------------------------------------------------\nGOBCHUNK( \"Callout BalloonP\", kgobCalloutBalloonP, kgokkNormal)\n\tDEFAULT_POSITION(0, 0, 500 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_TILE(CHID1(krepDefault), \"Callout Balloon0 Tile\", \"shared\\bmp\\coblln0.bmp\", 83, 61 )\n\tTILEDEF( 5, 5, 8, 151, 8, 0, 0,0, 8  )\n\tTILEDEF( 4, 4, 8, 106, 8, 0, 0, 0,8  )\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon Invisible for audio only\n// -----------------------------------------------------\nGOBCHUNK(\"Audio Only balloon\", kgobCalloutBalloonAO, gokkNoHit)\n\tDEFAULT_POSITION( 0,0,500 )\nENDCHUNK\nREP_FILL(CHID1(krepDefault), \"Callout BalloonAO\", 0, 0, 1, 1, Transparent, Transparent)\n\tPATTERN_0\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon arrow to upper mid for easel help\n// -----------------------------------------------------\nGOBCHUNK( \"Easel Callout Balloon2\", kgobEaselBalloon2, kgokkNormal)\n\tDEFAULT_POSITION(0, 0, 700 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID1(kchidClick), cidNil, cnoNil) \nENDCHUNK\nREP_TILE(CHID1(krepDefault), \"Callout Balloon2 Easel Tile\", \"shared\\bmp\\coblln2.bmp\", 83, 1)\n\tTILEDEF( 4, 8, 8, 58, 8, 35, 60, 8,8  )\n\tTILEDEF( 41, 8, 42, 108, 8, 0, 0, 0,8  )\nENDCHUNK\n// filtering messages\nCREATE_ANIM(\"Filtering messages for easel help balloons\")\n\t// get all mouse downs\n\tFilterCmdsThis(cidMouseDown, kidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, kidNil, kchidScript1);\nENDCHUNK\n// Handle mouse clicks\nCHILD_SCRIPT(\"Got a click or keydown\", kchidScript1)\n\tIf (!FIsDescendent(_parm[0], GidThis()));\n\t\tDestroyThis();\n\tEnd;\nENDCHUNK\nCLICK_SCRIPT(\"Easel2 balloon got clicked\")\n\tDestroyThis();\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon arrow to right for easel help \n// -----------------------------------------------------\nGOBCHUNK( \"Easel Callout Balloon4\", kgobEaselBalloon4, kgokkNormal)\n\tDEFAULT_POSITION(0, 0, 700 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID1(kchidClick), cidNil, cnoNil) \nENDCHUNK\nREP_TILE(CHID1(krepDefault), \"Callout Balloon4 Easel Tile\", \"shared\\bmp\\coblln4.bmp\", 201, 65)\n\tTILEDEF( 8, 46, 8, 148, 8, 0, 0, 0, 48 )\n\tTILEDEF( 8, 8, 8, 40, 4, 34, 40, 4, 8  )\nENDCHUNK\n// filtering messages\nCREATE_ANIM(\"Filtering messages for easel help balloons\")\n\t// get all mouse downs\n\tFilterCmdsThis(cidMouseDown, kidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, kidNil, kchidScript1);\nENDCHUNK\n// Handle mouse clicks\nCHILD_SCRIPT(\"Got a click or keydown\", kchidScript1)\n\tIf (!FIsDescendent(_parm[0], GidThis()));\n\t\tDestroyThis();\n\tEnd;\nENDCHUNK\nCLICK_SCRIPT(\"Easel4 balloon got clicked\")\n\tDestroyThis();\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon no arrow easel help \n// -----------------------------------------------------\nGOBCHUNK( \"Easel Callout BalloonP\", kgobEaselBalloonP, kgokkNormal)\n\tDEFAULT_POSITION(0, 0, 700 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID1(kchidClick), cidNil, cnoNil) \nENDCHUNK\nREP_TILE(CHID1(krepDefault), \"Callout Balloon0 Tile\", \"shared\\bmp\\coblln0.bmp\", 83, 61 )\n\tTILEDEF( 5, 5, 8, 151, 8, 0, 0,0, 8  )\n\tTILEDEF( 4, 4, 8, 106, 8, 0, 0, 0,8  )\nENDCHUNK\n// filtering messages\nCREATE_ANIM(\"Filtering messages for easel help balloons\")\n\t// get all mouse downs\n\tFilterCmdsThis(cidMouseDown, kidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, kidNil, kchidScript1);\nENDCHUNK\n// Handle mouse clicks\nCHILD_SCRIPT(\"Got a click or keydown\", kchidScript1)\n\tIf (!FIsDescendent(_parm[0], GidThis()));\n\t\tDestroyThis();\n\tEnd;\nENDCHUNK\nCLICK_SCRIPT(\"Easel4 balloon got clicked\")\n\tDestroyThis();\nENDCHUNK\n\n// -----------------------------------------------------\n// Callout balloon arrow to lower mid for easel help\n// -----------------------------------------------------\nGOBCHUNK( \"Easel Callout Balloon6\", kgobEaselBalloon6, kgokkNormal)\n\tDEFAULT_POSITION(0, 0, 700 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID1(kchidClick), cidNil, cnoNil) \nENDCHUNK\nREP_TILE(CHID1(krepDefault), \"Callout Balloon6 Easel Tile\", \"shared\\bmp\\coblln6.bmp\", 83, 155 )\n\tTILEDEF( 8, 8, 8, 60, 8, 33, 60, 8, 8  )\n\tTILEDEF( 8, 38, 8, 105, 8, 0, 0, 0, 44  )\nENDCHUNK\n// filtering messages\nCREATE_ANIM(\"Filtering messages for easel help balloons\")\n\t// get all mouse downs\n\tFilterCmdsThis(cidMouseDown, kidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, kidNil, kchidScript1);\nENDCHUNK\n// Handle mouse clicks\nCHILD_SCRIPT(\"Got a click or keydown\", kchidScript1)\n\tIf (!FIsDescendent(_parm[0], GidThis()));\n\t\tDestroyThis();\n\tEnd;\nENDCHUNK\nCLICK_SCRIPT(\"Easel6 help balloon got clicked\")\n\tDestroyThis();\nENDCHUNK\n\n// -----------------------------------------------------\n// Scripts for playing help sounds\n// -----------------------------------------------------\n// -----------------------------------------------------\n// For playing help sounds\n// -----------------------------------------------------\nSCRIPTCHUNK(\"Playing help sounds\", kidPlayHelpSounds)\n\tIf(_parm[0] == 0);\t\n\t\tfMZAudio = GetProp( kpridMcZeeAudio ) & kflgMcZeeAudio;\n\t\tIf (._cnoSound != cnoNil && !fMZAudio);\t// not suppressing audio\n\t\t\tStopSoundClass(0, sclHelpSoundClass);\t\t\n\t\t\tPlaySoundGob(GidParThis(), ._ctgSound, ._cnoSound, ksqnNone, 0x10000, 1, 0, sclHelpSoundClass);\n\t\tEnd;\n\tEnd;\nENDCHUNK\n\n// -----------------------------------------------------\n// For playing project sounds\n// -----------------------------------------------------\nSCRIPTCHUNK(\"Playing project sounds\", kidPlayProjectSounds)\n\tIf(_parm[0] == 0);\t\n\t\tfMelAudio = GetProp( kpridMcZeeAudio ) & kflgMelAudio;\n\t\tIf (._cnoSound != cnoNil && !fMelAudio);\n\t\t\tStopSoundClass(0, sclHelpSoundClass);\t\t\n\t\t\tPlaySoundGob(GidParThis(), ._ctgSound, ._cnoSound, ksqnNone, 0x10000, 1, 0, sclHelpSoundClass);\n\t\tEnd;\n\tEnd;\nENDCHUNK\n\n// -----------------------------------------------------\n// For playing guidehelp sounds\n// -----------------------------------------------------\nSCRIPTCHUNK(\"Playing logo sounds\", kidPlayLogoSounds)\n\tIf(_parm[0] == 0);\t\n\t\tfMelAudio = GetProp( kpridMcZeeAudio ) & kflgMelAudio;\t\t\n\t\tIf (._cnoSound != cnoNil && !fMelAudio);\n\t\t\tStopSoundClass(0, sclHelpSoundClass);\t\t\n\t\t\tPlaySoundGob(GidParThis(), ._ctgSound, ._cnoSound, ksqnNone, 0x10000, 1, 0, sclHelpSoundClass);\n\t\tEnd;\n\tEnd;\nENDCHUNK\n\n// -----------------------------------------------------\n// For playing guidehelp sounds\n// -----------------------------------------------------\nSCRIPTCHUNK(\"Playing guide help sounds\", kidPlayGuideSounds)\n\tIf(_parm[0] == 0);\t\n\t\tfMZAudio = GetProp( kpridMcZeeAudio ) & kflgMcZeeAudio;\n\t\tIf (._cnoSound != cnoNil && !fMZAudio);\n\t\t\tStopSoundClass(0, sclHelpSoundClass);\t\t\n\t\t\tPlaySoundGob(GidParThis(), ._ctgSound, ._cnoSound, ksqnNone, 0x10000, 1, 0, sclHelpSoundClass);\n\t\tEnd;\n\tEnd;\nENDCHUNK\n\n// -----------------------------------------------------\n// For playing tooltip sounds\n// -----------------------------------------------------\nSCRIPTCHUNK(\"Playing other sounds\", kidPlayToolTipSounds)\n\tIf(_parm[0] == 0);\t\n\t\tfMZAudio = GetProp( kpridMcZeeAudio ) & kflgMcZeeAudio;\n\t\tIf (._cnoSound != cnoNil && !fMZAudio);\n\t\t\tStopSoundClass(0, sclHelpSoundClass);\t\t\n\t\t\tPlaySoundGob(GidParThis(), ._ctgSound, ._cnoSound, ksqnNone, 0x10000, 1, 0, sclHelpSoundClass);\n\t\tEnd;\n\tEnd;\nENDCHUNK\n\n// -----------------------------------------------------\n// Main build chunky text file for the Socrates Building Help\n// -----------------------------------------------------\n// -----------------------------------------------------\n// normal help balloon\n// -----------------------------------------------------\nGOBCHUNK( \"help balloon #1a\", kgobBalloon1a, 0)\n\tDEFAULT_POSITION( 40,40,800 )\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"help balloon 1 tile\", \"shared\\bmp\\balln1a.bmp\", 93, 29 )\n\tTILEDEF( 7, 7, 7, 133, 4, 0, 0, 0, 7 )\n\tTILEDEF( 7, 7, 7, 89, 4, 0, 0, 0, 7 )\nENDCHUNK\n\n// -----------------------------------------------------\n// normal help balloon (mid right speech dippty down)\n// -----------------------------------------------------\nGOBCHUNK( \"help balloon #1e\", kgobBalloon1e, 0)\n\tDEFAULT_POSITION( 40,40,800 )\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"help balloon 1 tile\", \"shared\\bmp\\balln1e.bmp\", 170, 103 )\n\tTILEDEF( 7, 32, 7, 131, 4, 0, 0, 0, 32 )\n\tTILEDEF( 7, 7, 7, 70, 4, 0, 0, 0, 26 )\nENDCHUNK\n\n\n// -----------------------------------------------------\n// normal help balloon (bottom left speech dippty down)\n// -----------------------------------------------------\nGOBCHUNK( \"help balloon #1d\", kgobBalloon1d, 0)\n\tDEFAULT_POSITION( 40,40,800 )\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"help balloon 1 tile\", \"shared\\bmp\\balln1d.bmp\", 0, 102 )\n\tTILEDEF( 32, 7, 32, 131, 4, 0, 0, 0, 7 )\n\tTILEDEF( 7, 7, 7, 68, 4, 0, 0, 0, 26 )\nENDCHUNK\n\n// -----------------------------------------------------\n// Tip help balloon\n// -----------------------------------------------------\nGOBCHUNK( \"alert help\", kgobBalloonTip, 0)\n\tDEFAULT_POSITION( 0, 0,999 )\nENDCHUNK\nREP_TILE( CHID1( krepDefault), \"alert tile\", \"shared\\bmp\\balln2.bmp\", 40, 29 )\n\tTILEDEF( 7, 24, 7, 64, 8, 0,0,0, 22 )\n\tTILEDEF( 7, 8, 7, 20, 8, 17, 8, 8, 8 )\nENDCHUNK\n\n// -----------------------------------------------------\n// squishy control, with tracking\n// -----------------------------------------------------\nGOBCHUNK( \"kgobHelpSquishy\", kgobHelpSquishy, 0 )\n\tDEFAULT_POSITION( 0,0,1)\n\tACTION( fcustNil, fcustNil, fgrfstAll, kcrsHand1, kchidClick, cidNil, cnoNil )\nENDCHUNK\n// normal\nREP_MBMP( CHID1( krepDefault), \"shared\\bmp\\squishy1.bmp\"  )\n// splotted\nREP_MBMP( CHID1( krepMouseDnOn ), \"shared\\bmp\\squishy3.bmp\" )\nREP_MBMP( CHID1( krepMouseUpOn ), \"shared\\bmp\\squishy2.bmp\" )\nADOPT_MBMP( LAST_MBMP, CHID1( krepMouseDnOff ))\nREP_WAVE( CHID1( krepClicked ), \"shared\\sound\\ok.wav\" )\n"
  },
  {
    "path": "src/shared/util.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// ---------------------------------------------------------\n//\n// Revisions:\n//\n// mm-dd-yy\n// ??-??-94\t\t******\t\t- Created\n// 05-16-95\t\t******\t\t- remove unimplemented hooks\n// 06-15-95\t\t******\t\t- Added globals list\n// ---------------------------------------------------------\n//\n// Global Variables:\n//\n// cnoMidi\t\tManage the midi soundtrack.  Always music playing -- music\n// siiMidi\t\tpointed to by cnoMidi. siiMidi is the Kauai Sound Instance\n//\t\t\t\tID associated with the soundtrack.\n//\n// kstEntry\t\tThis indicates which entry point into a room the user\n//\t\t\t\tis using.\n//\n// fHelpOn\t\tIndicates whether Help is turned on in the Building.  If Help\n//\t\t\t\tis turned on, McZee's (and Melanie's) Help bubbles appear\n//\t\t\t\tautomatically upon entry into a room.  Conversely, if the\n//\t\t\t\tuser clicks on McZee (or Melanie) to bring up the Help bubble,\n//\t\t\t\tfHelpOn gets set.\n//\n// fMovie\t\tIndicates whether there is currently a movie loaded; i.e.,\n//\t\t\t\twhether there is a movie selected in the Portfolio.\n//\n// fTrans\t\tPalette transition variables.  fTrans indicates that the next\n// cnoPal\t\tSETPALETTE should do a palette-to-palette transition effect.\n//\t\t\t\tSetting it to fFalse, turns off the transition effect for the\n//\t\t\t\tnext SETPALETTE, after which it will be reset to fTrue.\n//\t\t\t\tcnoPal stores the current palette so that SETPALETTE can\n//\t\t\t\tdetermine if a palette change is really necessary.\n//\n// keys\t\t\tkeys is a bitfield describing the Set of enabled hotkeys.\n// keysTmp\t\tkeysTmp is used to save the set of valid hotkeys between\n//\t\t\t\tDISABLE and ENABLE hotkeys calls.\n//\n// cDisable\t\tNumber of times the keyboard accelerators have been disabled\n//\t\t\t\tfrom script via cidDisableAccel.\n//\n//\n\n#include \"helptops.h\"\n\n// ---------------------------------------------------------\n// Initialization script for shared.chk is called by app on startup.  It\n// creates kgobUtil and runs its Script0.\n// ---------------------------------------------------------\nSCRIPTCHUNK(\"Init Shared\", kcnoInitShared)\n\tDEBUGCMD(PrintStr(\"Running shared init script\"));\n\tCreateChildThis(kgobUtil, kgobUtil);\n\tRunScriptGob(kgobUtil, kchidScript0);\nENDCHUNK\n\n// -----------------------------------------------------\n// help TOPIC definitions\n// -----------------------------------------------------\n\n#include \"socdefn.h\"\n\nWAVE_CHUNK( \"shared\\sound\\util\\splot.wav\", kwavSplot )\nWAVE_CHUNK( \"shared\\sound\\util\\ding.wav\", kwavDing )\n\n// ---------------------------------------------------------\n// The following is the object definition for the utility\n// object.\n// ---------------------------------------------------------\nGOBCHUNK( \"Utility object\", kgobUtil, 0 )\n\tDEFAULT_POSITION( 0,0, 0 )\nENDCHUNK\n\n\t// ---------------------------------------------------------\n\t// This is the first Gob to get created.  Do a whole lot of\n\t// initialization stuff.\n\t// ---------------------------------------------------------\n\tCHILD_SCRIPT( \"Util:start up\", kchidScript0 )\n\t\tSETKEYS(kflgBuildingAll);\n\n\t\t// The following are well known 'global' variables connected\n\t\t// to the UTIL gob... it's assumed that this list will grow\n\t\t// NOTE: MAKE SURE ALL GLOBALS ARE INITIALIZED HERE!\n\n\t\tSETGLOBAL(cnoMidi, cnoNil);\n \t\tSETGLOBAL(fHelpOn, fTrue);\n\t\tSETGLOBAL(fMovie, fFalse);\n\t\tSETGLOBAL(cnoPal, cnoNil);\n\n\t\tSetProp(kpridBuildingState, kst1);\n\n\t\t// Initializing a global variable used for tracking the voice over WAVE file\n\t\t// and stoping it when needed.  Used in the macros VOICE(..) and ENDVOICE();\n\t\t::siiVoice = 0;\n\n\t\t// A global variable used to track if there is a scene transition occuring.\n\t\t::fTransition = fFalse;\n\n\t\t// These flags are used to indicate whether or not we've visited this\n\t\t// room previously in this session.\n\t\tSETGLOBAL( fLobby1PS, fTrue );  // Flag, for Lobby1, indicates 1st time in room per session (PS)\n\t\tSETGLOBAL( fBackstagePS, fTrue );// Flag, for Backstage, indicates 1st time in room per session (PS)\n\t\tSETGLOBAL( fIdeasPS, fTrue );   // Flag, for Ideas room, indicates 1st time in room per session (PS)\n\t\tSETGLOBAL( fTicketPS, fTrue );   // Flag, for Ticketbooth, indicates 1st time in room per session (PS)\n\t\tSETGLOBAL( fStudioPS, fTrue );   // Flag, for Studio, indicates 1st time in room per session (PS)\n\n\t\t// These flags are used to indicate whether or not we've seen the\n\t\t// help/introduction animation for this room or not.  They are fTrue\n\t\t// if the help has not been seen.\n\t\tSETGLOBAL(fLob1stHelp, fTrue);\n\t\tSETGLOBAL(fTic1stHelp, fTrue);\n\t\tSETGLOBAL(fBkstg1stHelp, fTrue);\n\n\t\t// read bio page found flag\n\t\tBIO_INIT();\n\t\t\t\t\n\t\t// global flag: has the McZee in front of studio tools intro been played?\n\t\t::fStdIntro = fFalse;\t\t\n\t\tIf( GetProp( kpridMcZeeAudio ) & kflgMcZeeAudio );\t\n\t\t\t// suppress the intro too -- the RonPa fix!\n\t\t\t::fStdIntro = fTrue;\n\t\tEnd;\n\n\t\t// set according to help status in the studio, keep track of which is the Next Project\n\t\t::fHelpOn = fFalse;\n\t\t::NextProject = 1;\n\n\t\t// Initialize more global globals.\n\t\t::volume = 50;\n\t\t::kgobCurrentPlace = kidNil;\n\t\t::fInStudio = fTrue;\n\n\t\t// First palette is set without a transition effect.\n\t\tSETGLOBAL(fTrans, fFalse);\n\n\t\t// Number of times we've called disable is 0 to start with.\n\t\tkgobUtil->cDisable = 0;\n\t\t\t\t\t\t\t\t\n\t\t// Set this gob up to filter for map, open, and new commands;\n\t\t// Redirect them to Script6.\n\t\t// Note: Ctrl+O and Ctrl+N are translated by the app's accelerator\n\t\t// table into cidOpen and cidNew. We want to filter for those cids\n\t\t// as well, but only when the building is loaded, so those filters\n\t\t// are turned on in the Building Script0 and turned off in LOADTOOLS.\n\t\tFilterCmdsThis( cidMap, kidNil, kchidScript6 );\n\t\t\n\tENDCHUNK\n\n\t// ---------------------------------------------------------\n\t//\tSwitch from one place to another.  Maintains ::kgobCurrentPlace.\n\t//\n\t//      _parm[0] is the cno of the place we're to go next.\n\t//      _parm[1] is the state we're to enter that place in.\n\t// ---------------------------------------------------------\n\tCHILD_SCRIPT( \"Util:nextplace function\", kchidScript1 )\n\t\tASSERT(_parm[0] != kidNil);\n\t\tASSERT(_parm[1] >= kst1);\n\t\tDEBUGCMD(PrintStr(\"Moving to \", NumToStr(_parm[0], \"\"), \" with state = \", NumToStr(_parm[1], \"\")));\n\t\tIf (_parm[0] != GET_CURRENTPLACE());\n\t\t\tSETGLOBAL(kstEntry, _parm[1]);\n\t\t\tIf (GET_CURRENTPLACE() != kidNil);\n\t\t\t\tDestroyGob(GET_CURRENTPLACE());\n\t\t\tEnd;\n\t\t\tSET_CURRENTPLACE(_parm[0]);\n\t\t\tCreateChildGob(GidParThis(), _parm[0], _parm[0]);\n\t\tEnd;\n\t\tFlushUserEvents(kgrfevtAll);\n\tENDCHUNK\n\n\t//----------------------------------------------------------\n\t// This function is called when the user calls up the Portfolio via\n\t// CTRL+O and then closes it by pressing either Cancel or OK.  The\n\t// Portfolio is opened in the Keyboard handler in Script6.\n\t//\n\t//\t\t_parm[2] is fTrue if the user pressed OK; fFalse if they\n\t//\t\t\t\tpressed Cancel.\n\t//----------------------------------------------------------\n\tCHILD_SCRIPT(\"Util: Portfolio Callback\", kchidScript2)\n\t\t// End this filter as it is no longer required.\n\t\tFilterCmdsThis(cidPortfolioClosed, cidNil, chidNil);\n\n\t\tIf (_parm[2]);\t// User clicked OK\n\t\t\tLOADTOOLS(kgobStudio1, kst1, chidNil);\n\t\tEnd;\n\tENDCHUNK\n\n\t//----------------------------------------------------------\n\t// Function to lock out hot spots.\n\t//\n\t// _parm[0] is hot key state as well\n\t//----------------------------------------------------------\n\tCHILD_SCRIPT( \"Util: glass function\", kchidScript3 )\n\t\tIf( FGobExists( kgobGlass0 ) == fFalse);\n\t\t\t// create the balloon and set hotkeys appropriately\n\t\t\tCreateChildGob(GET_CURRENTPLACE(), kgobGlass0, kgobGlass0);\n\t\tEnd;\n\t\tSETKEYS( _parm[0] );\n\tENDCHUNK\n\n\t//----------------------------------------------------------\n\t// Function to manage midi music.  see SETMUSIC() #define\n\t// in util.h --- _parm[0] = cno of the MIDI chunk\n\t//    \t\t\t_parm[1] = bool : loop or not.\n\t//----------------------------------------------------------\n\tCHILD_SCRIPT( \"Util: midi function\", kchidScript4 )\n\t\tIf( _parm[0] != .cnoMidi );\n\t\t\tIf( .cnoMidi != cnoNil  );\n\t\t\t\t// stop the last MIDI played.  .siiMidi is always ok.\n\t\t\t\t// because of .cnoMidi usage\n\t\t\t\tStopSound( .siiMidi );\n\t\t\tEnd;\n\t\t\tIf( _parm[0] != cnoNil );\n\t\t\t    cnt = ( _parm[1] ) ? 0x00010000 : 1;\n\t\t\t\t.siiMidi = PlaySoundGob( kgobUtil, kctgMidi, _parm[0], 1, 0x00010000, cnt, 4, ksclBldgSound );\n\t\t\tEnd;\n\t\t\t.cnoMidi = _parm[0];\n\t\tEnd;\n\tENDCHUNK\n\n\t// ---------------------------------------------------------\n\t// These script invokes and handle confirm exit help balloon\n\t// ---------------------------------------------------------\n\tCHILD_SCRIPT( \"Util:quit app\", kchidScript5 )\n\t\t// Put up the glass and then a help ballooon to confirm quit\n\n\t\tCreateChildGob( SUPERPARENT(), kgobGlass1, kgobGlass1  );\n\t\tCreateHelpGob( kgobGlass1, ktpcQuitAlert );\n\t\t.keysTmp = KEYSTATE();          // save valid hotkeys\n\t\tSETKEYS( kflgKEYNONE );         // then disable all hotkeys\n\tENDCHUNK\n\n\t// ---------------------------------------------------------\n\t//  Script to handle Incoming cids.\n\t// ---------------------------------------------------------\n\tCHILD_SCRIPT( \"Util:handle cids\", kchidScript6 )\n\t\t// _parm[0] = gid/hid\n\t\t// _parm[1] = CID (cidMap, cidOpen, cidNew or cidLoadStudioDoc)\n\n\n\n\t\t//---------------------------PORTFOLIO KEY--------------------------\n\t\tIf (_parm[1] == cidOpen && KEYENABLED(kflgKEYPORTFOLIO));\n\t\t\t// Bring up the Movie Open portfolio.\n    \t\tEnqueueCid(cidPortfolioOpen, 0, kpfPortOpenMovie, 0, 0, 0);\n\t\t\t// Look out for the cid indicating that the portfolio has been closed.\n\t\t\tFilterCmdsThis(cidPortfolioClosed, cidNil, kchidScript2);\n\t\tElif (_parm[1] == cidOpen && !KEYENABLED(kflgKEYPORTFOLIO));\n\t\t\tModalHelp(ktpcercSocCantGoToStudio, -1);\n\n\t\t//---------------------------TOOLS KEY--------------------------\n\t\tElif (_parm[1] == cidNew && KEYENABLED(kflgKEYTOOLS));\n\t\t\t// Open the tools with a new movie.\n\t\t\tEnqueueCid(cidPortfolioClear, 0, 0, 0, 0, 0);\n\t\t\tLOADTOOLS(kgobStudio1, kst1, chidNil);\n\t\tElif (_parm[1] == cidNew && !KEYENABLED(kflgKEYTOOLS));\n\t\t\tModalHelp(ktpcercSocCantGoToStudio, -1);\n\n\t\t//---------------------------MAP KEY----------------------------\n\t\tElif (_parm[1] == cidMap && KEYENABLED(kflgKEYMAP));\n\t\t\tIf (::fInStudio);\n\t\t\t\tDEBUGCMD(PrintStr(\"Bringing up map from studio\"));\n\t\t\t\tCreateChildGob(kidBackground, kgobMapMain, kgobMapMain);\n\t\t\tElse;\n\t\t\t\tDEBUGCMD(PrintStr(\"Bringing up map from building\"));\n\t\t\t\tCreateChildGob(GET_CURRENTPLACE(), kgobMapMain, kgobMapMain);\n\t\t\tEnd;\n\t\t\tExit();\n\t\tElif (_parm[1] == cidMap && !KEYENABLED(kflgKEYMAP));\n\t\t\tModalHelp(ktpcercSocCantGoToMap, -1);\n\n\t\t//------------------------cidLoadStudioDoc----------------------\n\t\tElif (_parm[1] == cidLoadStudioDoc && KEYENABLED(kflgLOADSTUDIO));\n\t\t\tLOADTOOLS(kgobStudio1, kst1, chidNil);\n\t\tElif (_parm[1] == cidLoadStudioDoc && !KEYENABLED(kflgLOADSTUDIO));\n\t\t\tEnqueueCid(cidPortfolioClear, 0, 0, 0, 0, 0);\n\t\t\tModalHelp(ktpcercSocCantGoToStudio, -1);\n\n\t\tEnd;\n\n\tENDCHUNK\n\n\t//----------------------------------------------------------\n\t// Function to switch to a new palette, doing a palette transition\n\t// if necessary.  Also sets cnoPal, which always contains the current\n\t// building palette.\n\t//\n\t// _parm[0] is the palette to switch to.\n\t//----------------------------------------------------------\n\tCHILD_SCRIPT( \"Util:switch palette\", kchidScript7 )\n\t\t::fTransition = fFalse;\n\t\tIf ( (_parm[0] != GLOBAL( cnoPal)) && GLOBAL(fTrans) && (_parm[0] != cnoNil) );\n\t\t\t// different palette than what we had + okay to transition\n\t\t\tTransition(kgftDissolve, 0, kTransitionTime, Transparent, _parm[0]);\n\t\t\t::fTransition = fTrue;\n\t\tElse;\n\t\t\t// either the same palette or not allowed to transition, so just\n\t\t\t// switch the palette\n\t\t\tIf( _parm[0] != cnoNil );\n\t\t\t\tSetColorTable(_parm[0]);\n\t\t\tEnd;\n\t\tEnd;\n\t\tSETGLOBAL( cnoPal, _parm[0] );\t\n\t\tSETGLOBAL(fTrans, fTrue);       // Reset default state of fTrans.\n\tENDCHUNK\n\n\t// --------------------------------------------------------------\n\t//      Function to load the studio tools.  First, it sets up\n\t//      kpridBuildingGob with the place to return to.  Corresponds to\n\t//\t\tLOADTOOLS macro defined in sharutil.chh.\n\t//\n\t//      _parm[0] specifies where the studio should come back to when it\n\t//              returns to the Building.\n\t//\t\t_parm[1] specifies what state the return place in the Building\n\t//\t\t\t\tshould enter in.\n\t//      _parm[2] specifies which project the tools should be loaded with, if\n\t//              any.  Set to 0 to indicate no project.\n\t// --------------------------------------------------------------\n\n// cnoForeign and kgobForeign indicates that a non-building place is the\n// current place and it has a potentially different palette from the return\n// place.\n#define cnoForeign cnoNil\n#define kgobForeign kidNil\n\n\tCHILD_SCRIPT(\"Util: Load Studio\", kchidScript8)\n\t\tASSERT(_parm[0] != kidNil);\n\t\tDEBUGCMD(PrintStr(\"Util: Loading Studio\"));\n\t\tStartLongOp();\n\n\t\t// Stop filtering for these -- let the studio filter for them now.\n\t\tFilterCmdsThis(cidOpen, kidNil, chidNil);\n\t\tFilterCmdsThis(cidNew, kidNil, chidNil);\n\t\tFilterCmdsThis(cidLoadStudioDoc, kidNil, chidNil);\n\t\t// And make sure our hotkeys are enabled -- the Studio takes care\n\t\t// of enabling/disabling hotkeys from here in.\n\t\tENABLEHOTSPOTS(kflgBuildingAll);\n\n\t\t.kgobCurrentPlaceT = GET_CURRENTPLACE();\n\t\tSetProp(kpridBuildingGob, _parm[0]);\n\t\tSETGLOBAL(cnoPal, cnoForeign);\n\t\tSETGLOBAL(kstEntry, _parm[1]);\n\t\tSetProp(kpridBuildingState, _parm[1]);\n\t\tSET_CURRENTPLACE(kgobForeign);\n\n\t\t// Deal with failure to load the studio.\n\t\tFilterCmdsThis(cidLoadStudioFailed, kidNil, kchidScript9);\n\n\t\t// Stop the soundtrack.\n\t\tPLAYMIDI(cnoNil);\n\n\t\tEnqueueCid(cidLoadStudio, 0, .kgobCurrentPlaceT, _parm[2], 0, 0);\n\t\t::fInStudio = fTrue;\n\tENDCHUNK\n\n\t// --------------------------------------------------------------\n\t//\tThis function gets called if we try to load the tools in\n\t//\tScript8 and fail for whatever reason.  We just need to undo\n\t//\teverything we did in Script8 before enqueuing the LoadStudio\n\t//\tcommand. A couple things won't be restored -- cnoPal will still\n\t//\tbe set to cnoForeign; the soundtrack will still be stopped.\n\t// --------------------------------------------------------------\n\n\tCHILD_SCRIPT(\"Util: Load Studio Failed\", kchidScript9)\n\t\tDEBUGCMD(PrintStr(\"Load Studio Failed handler\"));\n\t\t::fInStudio = fFalse;\n\t\tSET_CURRENTPLACE(.kgobCurrentPlaceT);\n\t\tEnqueueCid(cidPortfolioClear, 0, 0,0,0,0);\n\t\tFilterCmdsThis(cidLoadStudioFailed, kidNil, chidNil);\n\t\tFilterCmdsGob(kgobUtil, cidOpen, kidNil, kchidScript6);\n\t\tFilterCmdsGob(kgobUtil, cidNew, kidNil, kchidScript6);\n\t\tEndLongOp(fTrue);\t// If the studio set the wait cursor, turn it off.\n\tENDCHUNK\n\n// ---------------------------------------------------------\nHELP_SCRIPT( ktpcQuitAlert )\n\t// _parm[0] = what happenned. 0=init, 1=exit, 2=cancel\n\t\n\tIf( _parm[0] == 2 );                            // cancel\n\t\tDestroyGob( kgobGlass1 );\n\t\tSETKEYS(kgobUtil->keysTmp);             // restore hot key setting\n\t\tDestroyGob( GidParThis() );\n\tElif( _parm[0] == 1 );\n\t\tEnqueueCid( cidQuit, 0,0,0,0,0 );\n\tEnd;\nENDCHUNK\n\n// ---------------------------------------------------------\n// This is the glass behind the help balloon\n// ---------------------------------------------------------\nOBJECT( \"glass#1\", kgobGlass1, 1000, kcrsArrow1 )\n\tREP_FILL( CHID1(krepDefault),\"glass1\",  0,0, 640, 480, Palette( 15 ), Transparent )\n\t\tPATTERN_50\n\tENDCHUNK\n\tCLICK_SCRIPT( \"glass#1 clicked!\" )\n\t\t// play a honk sound here.\n\tENDCHUNK\n\n// ---------------------------------------------------------\n// This object is used to lock out clicks on hot spots.\n// ---------------------------------------------------------\nOBJECT( \"glass#0\", kgobGlass0, 975, kcrsArrow1 )\n\tREP_FILL( CHID1(krepDefault),\"glass0\",  0,0, 640, 480, Palette( 15 ), Transparent )\n\t\tPATTERN_0\n\tENDCHUNK\n\tCLICK_SCRIPT( \"glass#0 clicked!\" )\n\t\tPlaySoundThis( kctgWave, kwavSplot, 1, 0x00010000, 1, 0, 789 );\n\tENDCHUNK\n\n\n// -----------------------------------------------------\n// script to handle 'Help, About' balloon\n// -----------------------------------------------------\nHELP_SCRIPT( ktpcHelpAbout )\n\tIf( _parm[0] != 0 );\n\t\tDestroyGob( GidParThis() );\n\tEnd;\nENDCHUNK\n"
  },
  {
    "path": "src/studio/ape.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    ape.cpp: Actor preview entity class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    The APE is used to preview a single actor.  The APE doesn't actually\n    contain an ACTR...more of an \"ACTR Jr.\": a _ptmpl, _pbody, _anid, and\n    a _pbwld to display in.  If fCycleCels is set to fTrue in PapeNew(),\n    the APE will cycle through the cels of the current action.\n\n    APE supports some simple editing operations, such as changing\n    materials and TDT properties.  The client must query these changes\n    before destroying the APE to make changes to the real actor.\n\n    The APE is currently used by the action browser, TDT easel, and\n    costume changer easel.\n\n***************************************************************************/\n#include \"studio.h\"\nASSERTNAME\n\n#define kdtimFrame (kdtimSecond / kfps) // clock ticks per frame\n\nconst BRA kaFov = BR_ANGLE_DEG(60.0); // camera field of view\n\nRTCLASS(APE)\n\nBEGIN_CMD_MAP(APE, GOB)\nON_CID_GEN(cidAlarm, &APE::FCmdNextCel, pvNil)\nEND_CMD_MAP_NIL()\n\n/***************************************************************************\n    Create a new APE\n***************************************************************************/\nPAPE APE::PapeNew(PGCB pgcb, PTMPL ptmpl, PCOST pcost, long anid, bool fCycleCels, PRCA prca)\n{\n    AssertVarMem(pgcb);\n    AssertPo(ptmpl, 0);\n    AssertNilOrPo(pcost, 0);\n    AssertNilOrPo(prca, 0);\n\n    PAPE pape;\n\n    pape = NewObj APE(pgcb);\n    if (pvNil == pape)\n        return pvNil;\n    if (!pape->_FInit(ptmpl, pcost, anid, fCycleCels, prca))\n    {\n        ReleasePpo(&pape);\n        return pvNil;\n    }\n    return pape;\n}\n\n/***************************************************************************\n    Set up the APE\n***************************************************************************/\nbool APE::_FInit(PTMPL ptmpl, PCOST pcost, long anid, bool fCycleCels, PRCA prca)\n{\n    AssertBaseThis(0);\n    AssertPo(ptmpl, 0);\n    AssertNilOrPo(pcost, 0);\n\n    long cbset;\n    long ibset;\n    RC rc;\n    GMS gms;\n\n    _fCycleCels = fCycleCels;\n    _prca = prca;\n    _ptmpl = ptmpl;\n    _ptmpl->AddRef();\n    _pbody = _ptmpl->PbodyCreate(); // note: also sets default costume\n    if (pvNil == _pbody)\n        return fFalse;\n    if (pvNil != pcost)\n        pcost->Set(_pbody);\n    cbset = _pbody->Cbset();\n\n    // If there is exactly one accessory body part set, set _ibsetOnlyAcc\n    // to that ibset.  Else set it to ivNil.\n    _ibsetOnlyAcc = ivNil;\n    for (ibset = 0; ibset < cbset; ibset++)\n    {\n        if (_ptmpl->FBsetIsAccessory(ibset))\n        {\n            if (ivNil == _ibsetOnlyAcc)\n            {\n                // First one found.  Remember it and keep looking\n                _ibsetOnlyAcc = ibset;\n            }\n            else\n            {\n                // Found a second accessory ibset.  Forget it.\n                _ibsetOnlyAcc = ivNil;\n                break;\n            }\n        }\n    }\n\n    _pglgms = GL::PglNew(size(GMS), cbset);\n    if (pvNil == _pglgms)\n        return fFalse;\n    AssertDo(_pglgms->FSetIvMac(cbset), \"PglNew should have ensured space\");\n    TrashVar(&gms);\n    gms.fValid = fFalse;\n    for (ibset = 0; ibset < cbset; ibset++)\n        _pglgms->Put(ibset, &gms);\n\n    GetRc(&rc, cooLocal);\n    _pbwld = BWLD::PbwldNew(rc.Dxp(), rc.Dyp());\n    if (pvNil == _pbwld)\n        return fFalse;\n\n    // Add a light source to the BWLD\n    _blit.type = BR_LIGHT_DIRECT;\n    _blit.colour = BR_COLOUR_RGB(0xff, 0xff, 0xff);\n    _blit.attenuation_c = rOne;\n    _bact.type = BR_ACTOR_LIGHT;\n    _bact.type_data = &_blit;\n    _bact.t.type = BR_TRANSFORM_MATRIX34;\n    BrMatrix34Identity(&_bact.t.t.mat);\n    BrMatrix34PostRotateX(&_bact.t.t.mat, BR_ANGLE_DEG(-40.0));\n    BrMatrix34PostRotateY(&_bact.t.t.mat, BR_ANGLE_DEG(-40.0));\n    _pbwld->AddActor(&_bact);\n    BrLightEnable(&_bact);\n    _pbody->SetBwld(_pbwld);\n    _pbody->Show();\n\n    _InitView();\n    if (!FSetAction(anid))\n        return fFalse;\n    if (fCycleCels)\n    {\n        _clok.Start(0);\n        if (!_clok.FSetAlarm(0, this))\n            return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Destroy the APE\n***************************************************************************/\nAPE::~APE()\n{\n    AssertBaseThis(0);\n\n    // If _blit is initialized, then it was added to _pbwld and should\n    // be removed and disabled.  We check whether _blit is initialized by\n    // seeing if _blit.type has been changed from the initial 0.\n    Assert(BR_LIGHT_DIRECT != 0, \"need a new test for whether _blit was added\");\n    if (_blit.type == BR_LIGHT_DIRECT)\n    {\n        BrLightDisable(&_bact);\n        BrActorRemove(&_bact);\n    }\n    ReleasePpo(&_ptmpl);\n    ReleasePpo(&_pbody);\n    ReleasePpo(&_pbwld);\n    ReleasePpo(&_pglgms);\n}\n\n/***************************************************************************\n    Load the brush with ptagMtrl (for a stock material)\n***************************************************************************/\nvoid APE::SetToolMtrl(PTAG ptagMtrl)\n{\n    AssertThis(0);\n    AssertVarMem(ptagMtrl);\n\n    _apet.apt = aptGms;\n    _apet.gms.fValid = fTrue;\n    _apet.gms.fMtrl = fTrue;\n    _apet.gms.tagMtrl = *ptagMtrl;\n    TrashVar(&_apet.gms.cmid);\n}\n\n/***************************************************************************\n    Load the brush with cmid (for a custom material)\n***************************************************************************/\nvoid APE::SetToolCmtl(long cmid)\n{\n    AssertThis(0);\n\n    _apet.apt = aptGms;\n    _apet.gms.fValid = fTrue;\n    _apet.gms.fMtrl = fFalse;\n    _apet.gms.cmid = cmid;\n    TrashVar(&_apet.gms.tagMtrl);\n}\n\n/***************************************************************************\n    Load the brush with the aptIncCmtl tool\n***************************************************************************/\nvoid APE::SetToolIncCmtl(void)\n{\n    AssertThis(0);\n\n    _apet.apt = aptIncCmtl;\n    TrashVar(&_apet.gms);\n    _apet.gms.fValid = fFalse;\n}\n\n/***************************************************************************\n    Load the brush with the aptIncAccessory tool\n***************************************************************************/\nvoid APE::SetToolIncAccessory(void)\n{\n    AssertThis(0);\n\n    _apet.apt = aptIncAccessory;\n    TrashVar(&_apet.gms);\n    _apet.gms.fValid = fFalse;\n}\n\n/***************************************************************************\n    Change the actor's action to anid\n***************************************************************************/\nbool APE::FSetAction(long anid)\n{\n    AssertThis(0);\n\n    if (!_ptmpl->FSetActnCel(_pbody, anid, 0))\n        return fFalse;\n    _anid = anid;\n    _celn = 0;\n    _SetScale();\n    _UpdateView();\n    return fTrue;\n}\n\n/***************************************************************************\n    Time to move to the next cel of the action.  Resets alarm\n***************************************************************************/\nbool APE::FCmdNextCel(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (_fCycleCels)\n    {\n        FDisplayCel(_celn + 1);\n    }\n\n    _clok.FSetAlarm(kdtimFrame, this);\n    return fTrue;\n}\n\n/***************************************************************************\n    Time to move to the next cel of the action.\n***************************************************************************/\nbool APE::FDisplayCel(long celn)\n{\n    AssertThis(0);\n\n    // Someone else will push an error if this fails\n    if (_ptmpl->FSetActnCel(_pbody, _anid, celn))\n    {\n        _celn = celn;\n        _UpdateView();\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Enable or disable cel cycling.\n***************************************************************************/\nvoid APE::SetCycleCels(bool fOn)\n{\n    AssertThis(0);\n    _fCycleCels = fOn;\n}\n\n/***************************************************************************\n    Go to the default view\n***************************************************************************/\nvoid APE::_InitView(void)\n{\n    AssertThis(0);\n\n    BMAT34 bmat34;\n    BRA xa, ya, za;\n\n    _iview = 0;\n    _ptmpl->GetRestOrien(&xa, &ya, &za);\n    BrMatrix34Identity(&bmat34);\n    BrMatrix34PostRotateX(&bmat34, xa);\n    BrMatrix34PostRotateY(&bmat34, ya);\n    BrMatrix34PostRotateZ(&bmat34, za);\n    _pbody->LocateOrient(rZero, rZero, rZero, &bmat34);\n    _SetScale();\n    _UpdateView();\n}\n\n/***************************************************************************\n    Set a custom view\n***************************************************************************/\nvoid APE::SetCustomView(BRA xa, BRA ya, BRA za)\n{\n    AssertThis(0);\n\n    BMAT34 bmat34;\n    BRA xaTmpl, yaTmpl, zaTmpl;\n\n    _iview = -1;\n    _ptmpl->GetRestOrien(&xaTmpl, &yaTmpl, &zaTmpl);\n    BrMatrix34Identity(&bmat34);\n    BrMatrix34PostRotateX(&bmat34, xaTmpl);\n    BrMatrix34PostRotateY(&bmat34, yaTmpl);\n    BrMatrix34PostRotateZ(&bmat34, zaTmpl);\n    BrMatrix34PostRotateX(&bmat34, xa);\n    BrMatrix34PostRotateY(&bmat34, ya);\n    BrMatrix34PostRotateZ(&bmat34, za);\n    _pbody->LocateOrient(rZero, rZero, rZero, &bmat34);\n    _SetScale();\n    _UpdateView();\n}\n\n/***************************************************************************\n    Rotate the BODY to see a different view\n***************************************************************************/\nvoid APE::ChangeView(void)\n{\n    AssertThis(0);\n\n    BMAT34 bmat34;\n    BRA xa, ya, za;\n\n    _iview = (_iview + 1) % 5;\n    _ptmpl->GetRestOrien(&xa, &ya, &za);\n    BrMatrix34Identity(&bmat34);\n    BrMatrix34PostRotateX(&bmat34, xa);\n    BrMatrix34PostRotateY(&bmat34, ya);\n    BrMatrix34PostRotateZ(&bmat34, za);\n\n    switch (_iview)\n    {\n    case 0:\n        _InitView();\n        return;\n    case 1:\n        BrMatrix34PostRotateY(&bmat34, BR_ANGLE_DEG(90.0));\n        break;\n    case 2:\n        BrMatrix34PostRotateY(&bmat34, BR_ANGLE_DEG(180.0));\n        break;\n    case 3:\n        BrMatrix34PostRotateY(&bmat34, BR_ANGLE_DEG(270.0));\n        break;\n    case 4:\n        BrMatrix34PostRotateX(&bmat34, BR_ANGLE_DEG(90.0));\n        break;\n    }\n\n    _pbody->LocateOrient(rZero, rZero, rZero, &bmat34);\n    _SetScale();\n    _UpdateView();\n}\n\n/***************************************************************************\n    Position the camera so the actor is centered and properly sized\n***************************************************************************/\nvoid APE::_SetScale(void)\n{\n    AssertThis(0);\n\n    RC rcView;\n    BCB bcbBody; // 3-D bounds of BODY\n    BRS dxrBody, dyrBody, dzrBody;\n    BRS rDydxBody;\n    BRS xrCam, yrCam, zrCam;\n    BRS zrHither, zrYon;\n    BMAT34 bmat34Camera;\n    BRS dxrView, dyrView;\n    BRS rDydxView;\n    BRA aFov;\n    BRS rAtan;\n\n    _pbody->GetBcbBounds(&bcbBody, fTrue);\n    dxrBody = bcbBody.xrMax - bcbBody.xrMin;\n    dyrBody = bcbBody.yrMax - bcbBody.yrMin;\n    dzrBody = bcbBody.zrMax - bcbBody.zrMin;\n\n    rDydxBody = BrsDiv(dyrBody, dxrBody);\n\n    // The x and y camera distances are functions of the body only\n    xrCam = BrsHalf(bcbBody.xrMax + bcbBody.xrMin);\n    yrCam = BrsHalf(bcbBody.yrMax + bcbBody.yrMin);\n\n    GetRc(&rcView, cooLocal);\n    dxrView = BrIntToScalar(rcView.Dxp());\n    dyrView = BrIntToScalar(rcView.Dyp());\n    rDydxView = BrsDiv(dyrView, dxrView);\n\n    aFov = BrScalarToAngle(BrsHalf(BrAngleToScalar(kaFov)));\n    rAtan = BrsDiv(BR_COS(aFov), BR_SIN(aFov));\n\n    if (rDydxBody > rDydxView)\n    {\n        // Tall actor : Compute z based on y\n        zrCam = BrsMul(BrsHalf(dyrBody), rAtan);\n    }\n    else\n    {\n        // Wide actor : Compute z based on x\n        // Fit the actor width into a narrow rc\n        dxrBody = BrsMul(dxrBody, rDydxView);\n        zrCam = BrsMul(BrsHalf(dxrBody), rAtan);\n    }\n\n    // Adjust for body depth\n    zrCam += bcbBody.zrMax;\n\n    // Set hither and yon.  Note: there's probably a good algorithm to\n    //    compute the optimal values for zrHither and zrYon, but I\n    //    don't have time to figure it out right now. :-) The goal is\n    //    to make zrHither as large as possible and zrYon as small as\n    //    possible without intersecting the actor.  -*****\n    if (zrCam < BR_SCALAR(10.0))\n        zrHither = BR_SCALAR(0.1);\n    else\n        zrHither = rOne;\n    zrYon = BR_SCALAR(1000.0);\n\n    BrMatrix34Translate(&bmat34Camera, xrCam, yrCam, zrCam);\n    _pbwld->SetCamera(&bmat34Camera, zrHither, zrYon, kaFov);\n}\n\n/***************************************************************************\n    Render and force redraw of the APE\n***************************************************************************/\nvoid APE::_UpdateView(void)\n{\n    AssertThis(0);\n\n    _pbwld->Render();\n    _pbwld->MarkRenderedRegn(this, 0, 0);\n}\n\n/***************************************************************************\n    Draw the contents of the APE's bwld\n***************************************************************************/\nvoid APE::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n\n    _pbwld->Draw(pgnv, prcClip, 0, 0);\n}\n\n/***************************************************************************\n    Set the cursor appropriately\n***************************************************************************/\nbool APE::FCmdMouseMove(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PBACT pbact;\n    PBODY pbody;\n    long ibset;\n    long ibsetAcc;\n\n    if (pvNil != _prca)\n    {\n        SetCursCno(_prca, kcrsDefault);\n        if (_pbwld->FClickedActor(pcmd->xp, pcmd->yp, &pbact))\n        {\n            pbody = BODY::PbodyFromBact(pbact, &ibset);\n            Assert(pbody == _pbody, \"what BODY is this?\");\n            if (_apet.apt == aptIncCmtl)\n            {\n                if (_ptmpl->CcmidOfBset(ibset) > 1)\n                    SetCursCno(_prca, kcrsCostume);\n            }\n            else if (_apet.apt == aptIncAccessory)\n            {\n                // Change cursor if there's only one accessory\n                // body part set or if cursor is on either an accessory\n                // body part set or the parent of one.\n                if (_ibsetOnlyAcc != ivNil || _ptmpl->FIbsetAccOfIbset(ibset, &ibsetAcc))\n                {\n                    SetCursCno(_prca, kcrsHand);\n                }\n            }\n        }\n    }\n    return APE_PAR::FCmdMouseMove(pcmd);\n}\n\n/***************************************************************************\n    Handle mouse-down.  Do the right thing depending on the current tool.\n***************************************************************************/\nbool APE::FCmdTrackMouse(PCMD_MOUSE pcmd)\n{\n    AssertThis(0);\n\n    PBACT pbact;\n    PBODY pbody;\n    long ibset;\n    long ibsetAcc;\n    GMS gms;\n\n    if (pcmd->cid != cidMouseDown)\n    {\n        Bug(\"Should only get a mousedown here!\");\n        return fTrue;\n    }\n    if (!_pbwld->FClickedActor(pcmd->xp, pcmd->yp, &pbact))\n        return fTrue;\n    pbody = BODY::PbodyFromBact(pbact, &ibset);\n    Assert(pbody == _pbody, \"what BODY is this?\");\n\n    switch (_apet.apt)\n    {\n    case aptNil:\n        break;\n\n    case aptGms:\n        gms = _apet.gms;\n        Assert(gms.fValid, 0);\n        if (_FApplyGms(&gms, ibset))\n            _pglgms->Put(ibset, &gms);\n        break;\n\n    case aptIncCmtl:\n        _pglgms->Get(ibset, &gms);\n        if (_FIncCmtl(&gms, ibset, fFalse))\n            _pglgms->Put(ibset, &gms);\n        break;\n\n    case aptIncAccessory:\n        if ((ibsetAcc = _ibsetOnlyAcc) != ivNil || _ptmpl->FIbsetAccOfIbset(ibset, &ibsetAcc))\n        {\n            _pglgms->Get(ibsetAcc, &gms);\n            if (_FIncCmtl(&gms, ibsetAcc, fTrue))\n                _pglgms->Put(ibsetAcc, &gms);\n            _SetScale();\n        }\n        break;\n\n    default:\n        BugVar(\"weird tool\", &_apet.apt);\n        break;\n    }\n\n    _UpdateView();\n    return fTrue;\n}\n\n/***************************************************************************\n    Apply a GMS to ibset\n***************************************************************************/\nbool APE::_FApplyGms(GMS *pgms, long ibset)\n{\n    AssertThis(0);\n    AssertVarMem(pgms);\n    Assert(pgms->fValid, \"bad gms\");\n    AssertIn(ibset, 0, _pbody->Cbset());\n\n    PMTRL pmtrl;\n    PCMTL pcmtl;\n\n    if (pgms->fMtrl)\n    {\n        pmtrl = (PMTRL)vptagm->PbacoFetch(&pgms->tagMtrl, MTRL::FReadMtrl);\n        if (pvNil == pmtrl)\n            return fFalse;\n        _pbody->SetPartSetMtrl(ibset, pmtrl);\n        ReleasePpo(&pmtrl);\n    }\n    else // cmtl\n    {\n        pcmtl = _ptmpl->PcmtlFetch(pgms->cmid);\n        if (pvNil == pcmtl)\n            return fFalse;\n        _pbody->SetPartSetCmtl(pcmtl);\n        ReleasePpo(&pcmtl);\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Fill in pgms with the next CMTL available for ibset and applies it\n    to _pbody.\n***************************************************************************/\nbool APE::_FIncCmtl(GMS *pgms, long ibset, bool fNextAccessory)\n{\n    AssertThis(0);\n    AssertVarMem(pgms);\n    AssertIn(ibset, 0, _pbody->Cbset());\n\n    long cmid;\n    long cmidNext;\n    long icmid;\n    long ccmid;\n    PCMTL pcmtl;\n    PCMTL pcmtlOld;\n    PMTRL pmtrlOld;\n    bool fMtrl;\n\n    // Default cmidNext is default cmid for this body part set\n    cmidNext = _ptmpl->CmidOfBset(ibset, 0);\n\n    ccmid = _ptmpl->CcmidOfBset(ibset);\n\n    // Need to find out what cmid (if any) is currently attached to ibset.\n    // If the GMS is valid, use it.  Otherwise, figure out which cmid\n    // generates the same pcmtl that is currently attached to the body.\n    if (!pgms->fValid || pgms->fMtrl)\n    {\n        // GMS is useless...look at the body\n        _pbody->GetPartSetMaterial(ibset, &fMtrl, &pmtrlOld, &pcmtlOld);\n        if (!fMtrl)\n        {\n            for (icmid = 0; icmid < ccmid; icmid++)\n            {\n                cmid = _ptmpl->CmidOfBset(ibset, icmid);\n                pcmtl = _ptmpl->PcmtlFetch(cmid);\n                if (pvNil == pcmtl)\n                    return fFalse;\n                if (pcmtl == pcmtlOld)\n                {\n                    ReleasePpo(&pcmtl);\n                    cmidNext = _CmidNext(ibset, icmid, fNextAccessory);\n                    break;\n                }\n                ReleasePpo(&pcmtl);\n            }\n        }\n    }\n    else\n    {\n        // GMS has current cmid\n        cmid = pgms->cmid;\n        for (icmid = 0; icmid < ccmid; icmid++)\n        {\n            if (cmid == _ptmpl->CmidOfBset(ibset, icmid))\n            {\n                cmidNext = _CmidNext(ibset, icmid, fNextAccessory);\n                break;\n            }\n        }\n    }\n    pcmtl = _ptmpl->PcmtlFetch(cmidNext);\n    if (pvNil == pcmtl)\n        return fFalse;\n    _pbody->SetPartSetCmtl(pcmtl);\n    ReleasePpo(&pcmtl);\n    pgms->cmid = cmidNext;\n    pgms->fMtrl = fFalse;\n    pgms->fValid = fTrue;\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the CMID that follows the given CMID.  If fNextAccessory, it\n    returns the next CMID that has a different set of models than icmidCur.\n    Otherwise it returns the next CMID that has the same set of models as\n    icmidCur.\n***************************************************************************/\nlong APE::_CmidNext(long ibset, long icmidCur, bool fNextAccessory)\n{\n    AssertThis(0);\n\n    long cmidCur;\n    long ccmid;\n    long icmidNext;\n    long cmidNext;\n    long dicmid;\n\n    cmidCur = _ptmpl->CmidOfBset(ibset, icmidCur);\n    ccmid = _ptmpl->CcmidOfBset(ibset);\n\n    for (dicmid = 1; dicmid < ccmid; dicmid++)\n    {\n        icmidNext = (icmidCur + dicmid) % ccmid;\n        cmidNext = _ptmpl->CmidOfBset(ibset, icmidNext);\n        if (fNextAccessory)\n        {\n            if (!_ptmpl->FSameAccCmids(cmidCur, cmidNext))\n                return cmidNext;\n        }\n        else\n        {\n            if (_ptmpl->FSameAccCmids(cmidCur, cmidNext))\n                return cmidNext;\n        }\n    }\n    return cmidCur; // couldn't find anything...just use this cmid\n}\n\n/***************************************************************************\n    Change this APE's TDT properties\n***************************************************************************/\nbool APE::FChangeTdt(PSTN pstn, long tdts, PTAG ptagTdf)\n{\n    AssertThis(0);\n    Assert(_ptmpl->FIsTdt(), \"FChangeTdt is only for TDTs\");\n    AssertNilOrPo(pstn, 0);\n    AssertNilOrVarMem(ptagTdf);\n\n    PTDT ptdtNew = pvNil;\n    PBODY pbodyNew = pvNil;\n\n    ptdtNew = ((PTDT)_ptmpl)->PtdtDup();\n    if (pvNil == ptdtNew)\n        goto LFail;\n    pbodyNew = _pbody->PbodyDup();\n    if (pvNil == pbodyNew)\n        goto LFail;\n\n    if (!ptdtNew->FChange(pstn, tdts, ptagTdf))\n        goto LFail;\n    if (!ptdtNew->FAdjustBody(pbodyNew))\n        goto LFail;\n    if (!ptdtNew->FSetActnCel(pbodyNew, _anid, _celn))\n        goto LFail;\n\n    ReleasePpo(&_ptmpl);\n    _ptmpl = ptdtNew;\n    _pbody->Restore(pbodyNew);\n    ReleasePpo(&pbodyNew);\n    _SetScale();\n    _UpdateView();\n    return fTrue;\nLFail:\n    ReleasePpo(&ptdtNew);\n    ReleasePpo(&pbodyNew);\n    return fFalse;\n}\n\n/***************************************************************************\n    Set material of this TDT to ptagMtrl\n***************************************************************************/\nbool APE::FSetTdtMtrl(PTAG ptagMtrl)\n{\n    AssertThis(0);\n    Assert(_ptmpl->FIsTdt(), \"FSetTdtMtrl is only for TDTs\");\n    Assert(_pbody->Cbset() == 1, \"TDTs should only have one body part set\");\n    AssertVarMem(ptagMtrl);\n\n    PMTRL pmtrl;\n    GMS gms;\n\n    pmtrl = (PMTRL)vptagm->PbacoFetch(ptagMtrl, MTRL::FReadMtrl);\n    if (pvNil == pmtrl)\n        return fFalse;\n    _pbody->SetPartSetMtrl(0, pmtrl);\n    ReleasePpo(&pmtrl);\n\n    gms.fValid = fTrue;\n    gms.fMtrl = fTrue;\n    TrashVar(&gms.cmid);\n    gms.tagMtrl = *ptagMtrl;\n    _pglgms->Put(0, &gms);\n\n    _UpdateView();\n    return fTrue;\n}\n\n/***************************************************************************\n    Get the CNO of the MTRL attached to this TDT.  Returns fFalse if there\n    is no MTRL attached or the MTRL didn't come from a chunk.\n***************************************************************************/\nbool APE::FGetTdtMtrlCno(CNO *pcno)\n{\n    AssertThis(0);\n    Assert(_ptmpl->FIsTdt(), \"FGetTdtMtrlCno is only for TDTs\");\n    AssertVarMem(pcno);\n\n    PMTRL pmtrl;\n    PCMTL pcmtl;\n    bool fMtrl;\n\n    _pbody->GetPartSetMaterial(0, &fMtrl, &pmtrl, &pcmtl);\n    if (!fMtrl)\n        return fFalse;\n    if (pvNil == pmtrl->Pcrf())\n        return fFalse;\n    *pcno = pmtrl->Cno();\n    return fTrue;\n}\n\n/***************************************************************************\n    Return info about the TDT\n***************************************************************************/\nvoid APE::GetTdtInfo(PSTN pstn, long *ptdts, PTAG ptagTdf)\n{\n    AssertThis(0);\n    Assert(_ptmpl->FIsTdt(), \"GetTdtInfo is only for TDTs\");\n    AssertNilOrVarMem(pstn);\n    AssertNilOrVarMem(ptdts);\n    AssertNilOrVarMem(ptagTdf);\n\n    ((PTDT)_ptmpl)->GetInfo(pstn, ptdts, ptagTdf);\n}\n\n/***************************************************************************\n    Fills in pfMtrl, pcmid, and ptagMtrl with the material that was\n    attached to ibset, if any.  If nothing was done to ibset, returns\n    fFalse.\n***************************************************************************/\nbool APE::FGetMaterial(long ibset, tribool *pfMtrl, long *pcmid, TAG *ptagMtrl)\n{\n    AssertThis(0);\n    AssertIn(ibset, 0, _pbody->Cbset());\n    AssertVarMem(pfMtrl);\n    AssertVarMem(pcmid);\n    AssertVarMem(ptagMtrl);\n\n    GMS gms;\n\n    _pglgms->Get(ibset, &gms);\n    if (!gms.fValid)\n        return fFalse; // nothing new for this ibset\n    *pfMtrl = (tribool)gms.fMtrl;\n    *pcmid = gms.cmid;\n    *ptagMtrl = gms.tagMtrl;\n\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the APE.\n***************************************************************************/\nvoid APE::AssertValid(ulong grf)\n{\n    APE_PAR::AssertValid(fobjAllocated);\n    AssertPo(_pbwld, 0);\n    AssertPo(_ptmpl, 0);\n    AssertPo(_pbody, 0);\n    AssertPo(_pglgms, 0);\n    Assert(_pglgms->IvMac() == _pbody->Cbset(), \"_pglgms wrong size\");\n    AssertNilOrPo(_prca, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the APE\n***************************************************************************/\nvoid APE::MarkMem(void)\n{\n    AssertThis(0);\n    APE_PAR::MarkMem();\n    MarkMemObj(_pbwld);\n    MarkMemObj(_ptmpl);\n    MarkMemObj(_pbody);\n    MarkMemObj(_pglgms);\n    MarkMemObj(_prca);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/studio/browser.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\\\n *\n *\tbrowser.cht\n *\n *\tAll browsers that appear in the studio\n *\n *\tAuthor: Sean Selitrennikoff\n *\n * \tStatus: REVIEWED\n *\n\\*****************************************************************************/\n\n//\n//\n// Generic objects shared by browsers\n// NOTE**: Generic controls need to be directed to parent of parent of control\n//\nGOBCHUNK(\"Generic browser page fwd\", kidGenericPageFwd, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttGenericPageFwd)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\fwd.bmp\",\n\tkxpregGenericPageFwd, kypregGenericPageFwd)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\fwdc.bmp\",\n\tkxpregGenericPageFwd, kypregGenericPageFwd)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoBrwzBtnWav, CHID(kstBrowserEnabled, krepClicked))\nCLICK_SCRIPT(\"Browser page fwd clicked\")\n\tEnqueueCid(cidBrowserFwd, GidParGob(GidParThis()), GidThis(), 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"Generic browser page back\", kidGenericPageBack, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttGenericPageBack)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\bback.bmp\",\n\tkxpregGenericPageBack, kypregGenericPageBack)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\bbackc.bmp\",\n\tkxpregGenericPageBack, kypregGenericPageBack)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoBrwzBtnWav, CHID(kstBrowserEnabled, krepClicked))\nCLICK_SCRIPT(\"Browser page back clicked\")\n\tEnqueueCid(cidBrowserBack, GidParGob(GidParThis()), GidThis(), 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"Generic browser cancel\", kidGenericCancel, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttEaselCancel)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\cancel.bmp\",\n\tkxpregGenericCancel, kypregGenericCancel)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\cancelc.bmp\",\n\tkxpregGenericCancel, kypregGenericCancel)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoCancelWav, CHID(kstBrowserEnabled, krepClicked))\nCLICK_SCRIPT(\"Browser cancel clicked\")\n\tEnqueueCid(cidBrowserCancel, GidParGob(GidParThis()), GidThis(), 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"Generic browser Okay\", kidGenericOk, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttEaselOk)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\okay.bmp\",\n\tkxpregGenericOk, kypregGenericOk)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\okayc.bmp\",\n\tkxpregGenericOk, kypregGenericOk)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoOkWav, CHID(kstBrowserEnabled, krepClicked))\nCLICK_SCRIPT(\"Browser Ok clicked\")\n\tEnqueueCid(cidBrowserOk, GidParGob(GidParThis()), GidThis(), 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"Generic browser pane of glass\", kidGenericGlass, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault ), \"Max\", 0, 0, kdxpBackground, kdypBackground)\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\nGOBCHUNK(\"Generic disable pane of glass\", kidGenericDisableGlass, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_FILL( CHID(kstDefault, krepDefault ), \"Max\", 0,0, kdxpBackground, kdypBackground, Transparent, Palette( 73 \t))\n\tPATTERN_50\nENDCHUNK\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n\n\n// Transparent area for page number insertion.\nOBJECT(\"Browser page number\", kidGenericPageNum, 100, kcrsArrow)\nREP_RECT(CHID(kstDefault, krepDefault), \"Visible\", 0, 0, kxpBrwsPageNumWidth, kypBrwsPageNumHeight)\n\n//\n// Settings browsers' very own glass\n//\nGOBCHUNK(\"Settings browser pane of glass\", kidSettingsGlass, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_FILL( CHID(kstDefault, krepDefault ), \"Max\", 0,0, kdxpBackground, kdypBackground, Transparent, Palette( 73 \t))\n\tPATTERN_50\nENDCHUNK\nCREATE_SCRIPT(\"Settings background\")\n\tCreateChildThis(kidBrwsBackground, kidBrwsBackground);\nENDCHUNK\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n//\n// Background\n//\n// Create self + NxM frames + controls, all are invisable\n// Enqueues: cidScenesBrowserReady when ready to go.\n//\nGOBCHUNK(\"Scene browser background\", kidBrwsBackground, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBrwsBackground, kypBrwsBackground, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault ), \"studio\\bmp\\book1.bmp\", kxpregBrwsBackground, kypregBrwsBackground )\nADOPT_WAVE(kcnoPBrowseWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Scene browser created\")\n\tCreateChildThis(kidBrowserPageFwd, kidGenericPageFwd);\n\tMoveAbsGob(kidBrowserPageFwd, kxpScenePageFwd, kypScenePageFwd);\n\tCreateChildThis(kidBrowserPageBack, kidGenericPageBack);\n\tMoveAbsGob(kidBrowserPageBack, kxpScenePageBack, kypScenePageBack);\n\n\tCreateChildThis(kidBrowserPageNum, kidGenericPageNum);\n\tMoveAbsGob(kidBrowserPageNum, kxpScenePageNum, kypScenePageNum);\n\n\tCreateChildThis(kidBrowserCancel, kidGenericCancel);\n\tMoveAbsGob(kidBrowserCancel, kxpSceneCancel, kypSceneCancel);\n\tChangeStateGob( kidBrowserCancel, kstBrowserEnabled );\n\n\typ = kdypSceneTop;\n\tnFrame = 0;\n\n\tWhile(yp <= (kdypScene - kdypSceneFrame - kdypSceneBottom));\n\n\t\txp = kdxpSceneLeft;\n\n\t\tWhile(xp <= (kdxpScene - kdxpSceneRight - kdxpSceneFrame));\n\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\t\t\tCreateChildThis(kidBrowserFrame + nFrame, kidBrwsSceneFrame);\n\t\t\tMoveAbsGob(kidBrowserFrame + nFrame, xp, yp);\n\t\t\tnFrame++;\n\t\t\txp += kdxpSceneSpacing + kdxpSceneFrame;\n        End;\n\t\t\n\t\typ += kdypSceneSpacing + kdypSceneFrame;\n\tEnd;\n\n\t//\n\t// This browser shuts when a selection occurs -- or when a thumb gets\n\t// clicked.\n\t//\t\n\tFilterCmdsThis(cidMouseDown, cidNil, kchidScript1);\nENDCHUNK\nCHILD_SCRIPT(\"par / filter cids\", kchidScript1)\n\tkid = _parm[0];\n\tcid = _parm[1];\n\n\tIf(cid == cidMouseDown);\n\n\t\tIf(((kid >= kidBrowserFrame) && (kid < kidBrowserFrameLim)) ||\n\t\t   (kid == kidBrowserCancel) ||\n\t\t   (kid == kidBrowserPageFwd) ||\n\t\t   (kid == kidBrowserPageBack));\n\t\t    Return(fFalse);\n        End;\n\n\tEnd;\nENDCHUNK\n//\n// \t\tA frame object for the settings browser.\n//\nGOBCHUNK(\"Scene browser Frame\", kidBrwsSceneFrame, kgokkRectNoKids)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\frame1.bmp\",\n\tkxpregBrwsSceneFrame, kypregBrwsSceneFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\frame1h.bmp\",\n\tkxpregBrwsSceneFrame, kypregBrwsSceneFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nCLICK_SCRIPT(\"Browser frame clicked\")\n\tChangeStateThis(kstBrowserSelected);\n\tEnqueueCid(cidBrowserSelect, kidSettingsGlass, GidThis(), 0, 0, 0);\n\tEnqueueCid(cidBrowserOk, kidSettingsGlass, GidThis(), 0, 0, 0);\n\tPlaySoundGob(kidBackground, kctgWave, kcnoBrwzPicWav, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n\n\n//\n// Camera browsers' very own glass\n//\nGOBCHUNK(\"Camera browser pane of glass\", kidCameraGlass, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_FILL( CHID(kstDefault, krepDefault ), \"Max\", 0,0, kdxpBackground, kdypBackground, Transparent, Palette( 73 \t))\n\tPATTERN_50\nENDCHUNK\nCREATE_SCRIPT(\"Camera background\")\n\tCreateChildThis(kidBrwsCamera, kidBrwsCamera);\nENDCHUNK\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n\n//\n// Background\n//\n// Create self + NxM frames + controls, all are invisible\n// Enqueues: cidCamerasBrowserReady when ready to go.\n//\nGOBCHUNK(\"Camera browser background\", kidBrwsCamera, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBrwsCamera, kypBrwsCamera, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault ), \"studio\\bmp\\book2.bmp\", kxpregBrwsCamera, kypregBrwsCamera )\nADOPT_WAVE(kcnoPBrowseWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Camera browser created\")\n\tCreateChildThis(kidBrowserPageFwd, kidGenericPageFwd);\n\tMoveAbsGob(kidBrowserPageFwd, kxpCameraPageFwd, kypCameraPageFwd);\n\tCreateChildThis(kidBrowserPageBack, kidGenericPageBack);\n\tMoveAbsGob(kidBrowserPageBack, kxpCameraPageBack, kypCameraPageBack);\n\n\tCreateChildThis(kidBrowserPageNum, kidGenericPageNum);\n\tMoveAbsGob(kidBrowserPageNum, kxpCameraPageNum, kypCameraPageNum);\n\n\tCreateChildThis(kidBrowserCancel, kidGenericCancel);\n\tMoveAbsGob(kidBrowserCancel, kxpCameraCancel, kypCameraCancel);\n\tChangeStateGob( kidBrowserCancel, kstBrowserEnabled );\n\n\typ = kdypCameraTop;\n\tnFrame = 0;\n\n\tWhile(yp <= (kdypCamera - kdypCameraFrame - kdypCameraBottom));\n\n\t\txp = kdxpCameraLeft;\n\n\t\tWhile(xp <= (kdxpCamera - kdxpCameraRight - kdxpCameraFrame));\n\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\t\t\tCreateChildThis(kidBrowserFrame + nFrame, kidBrwsCameraFrame);\n\t\t\tMoveAbsGob(kidBrowserFrame + nFrame, xp, yp);\n\t\t\tnFrame++;\n\t\t\txp += kdxpCameraSpacing + kdxpCameraFrame;\n        End;\n\t\t\n\t\typ += kdypCameraSpacing + kdypCameraFrame;\n\tEnd;\n\n\t//\n\t// This browser shuts when a selection ockcrs -- or when a thumb gets\n\t// clicked.\n\t//\t\n\tFilterCmdsThis(cidMouseDown, cidNil, kchidScript1);\nENDCHUNK\nCHILD_SCRIPT(\"par / filter cids\", kchidScript1)\n\tkid = _parm[0];\n\tcid = _parm[1];\n\n\tIf(cid == cidMouseDown);\n\n\t\tIf(((kid >= kidBrowserFrame) && (kid < kidBrowserFrameLim)) ||\n\t\t   (kid == kidBrowserCancel) ||\n\t\t   (kid == kidBrowserPageFwd) ||\n\t\t   (kid == kidBrowserPageBack));\n\t\t    Return(fFalse);\n        End;\n\n\tEnd;\nENDCHUNK\n\n//\n// \tA frame object for the camera view browser\n//\nGOBCHUNK(\"Object browser Frame\", kidBrwsCameraFrame, kgokkRectNoKids)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\frame2.bmp\",\n\tkxpregBrwsCameraFrame, kypregBrwsCameraFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\frame2h.bmp\",\n\tkxpregBrwsCameraFrame, kypregBrwsCameraFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nCLICK_SCRIPT(\"Browser frame clicked\")\n\tChangeStateThis(kstBrowserSelected);\n\tEnqueueCid(cidBrowserSelect, kidCameraGlass, GidThis(), 0, 0, 0);\n\tEnqueueCid(cidBrowserOk, kidCameraGlass, GidThis(), 0, 0, 0);\n\tPlaySoundGob(kidBackground, kctgWave, kcnoBrwzPicWav, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n\n\n\n//\n// Actor browsers' very own glass\n//\nGOBCHUNK(\"Actor browser pane of glass\", kidActorGlass, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_FILL( CHID(kstDefault, krepDefault ), \"Max\", 0,0, kdxpBackground, kdypBackground, Transparent, Palette( 73 \t))\n\tPATTERN_50\nENDCHUNK\nCREATE_SCRIPT(\"Actor background\")\n\tCreateChildThis(kidBrwsActor, kidBrwsActor);\nENDCHUNK\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n//\n// Background\n//\n// Create self + NxM frames + controls, all are invisible\n// Enqueues: cidActorsBrowserReady when ready to go.\n//\nGOBCHUNK(\"Actor browser background\", kidBrwsActor, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBrwsActor, kypBrwsActor, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault ), \"studio\\bmp\\book3.bmp\", kxpregBrwsActor, kypregBrwsActor )\nADOPT_WAVE(kcnoPBrowseWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Actor browser created\")\n\tCreateChildThis(kidBrowserPageFwd, kidGenericPageFwd);\n\tMoveAbsGob(kidBrowserPageFwd, kxpActorPageFwd, kypActorPageFwd);\n\tCreateChildThis(kidBrowserPageBack, kidGenericPageBack);\n\tMoveAbsGob(kidBrowserPageBack, kxpActorPageBack, kypActorPageBack);\n\n\tCreateChildThis(kidBrowserPageNum, kidGenericPageNum);\n\tMoveAbsGob(kidBrowserPageNum, kxpActorPageNum, kypActorPageNum);\n\n\tCreateChildThis(kidBrowserCancel, kidGenericCancel);\n\tMoveAbsGob(kidBrowserCancel, kxpActorCancel, kypActorCancel);\n\tChangeStateGob( kidBrowserCancel, kstBrowserEnabled );\n\n\typ = kdypActorTop;\n\tnFrame = 0;\n\n\tWhile(yp <= (kdypActor - kdypActorFrame - kdypActorBottom));\n\n\t\txp = kdxpActorLeft;\n\n\t\tWhile(xp <= (kdxpActor - kdxpActorRight - kdxpActorFrame));\n\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\t\t\tCreateChildThis(kidBrowserFrame + nFrame, kidBrwsActorFrame);\n\t\t\tMoveAbsGob(kidBrowserFrame + nFrame, xp, yp);\n\t\t\tnFrame++;\n\t\t\txp += kdxpActorSpacing + kdxpActorFrame;\n        End;\n\t\t\n\t\typ += kdypActorSpacing + kdypActorFrame;\n\tEnd;\n\n\t//\n\t// This browser shuts when a selection ockcrs -- or when a thumb gets\n\t// clicked.\n\t//\t\n\tFilterCmdsThis(cidMouseDown, cidNil, kchidScript1);\nENDCHUNK\nCHILD_SCRIPT(\"par / filter cids\", kchidScript1)\n\tkid = _parm[0];\n\tcid = _parm[1];\n\n\tIf(cid == cidMouseDown);\n\n\t\tIf(((kid >= kidBrowserFrame) && (kid < kidBrowserFrameLim)) ||\n\t\t   (kid == kidBrowserCancel) ||\n\t\t   (kid == kidBrowserPageFwd) ||\n\t\t   (kid == kidBrowserPageBack));\n\t\t    Return(fFalse);\n        End;\n\n\tEnd;\nENDCHUNK\n\n//\n//\tA frame object for the actors browser\n//\nGOBCHUNK(\"Actor browser Frame\", kidBrwsActorFrame, kgokkRectNoKids)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\frame3.bmp\",\n\tkxpregBrwsActorFrame, kypregBrwsActorFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\frame3h.bmp\",\n\tkxpregBrwsActorFrame, kypregBrwsActorFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nCLICK_SCRIPT(\"Browser frame clicked\")\n\tChangeStateThis(kstBrowserSelected);\n\tEnqueueCid(cidBrowserSelect, kidActorGlass, GidThis(), 0, 0, 0);\n\tEnqueueCid(cidBrowserOk, kidActorGlass, GidThis(), 0, 0, 0);\n\tPlaySoundGob(kidBackground, kctgWave, kcnoBrwzPicWav, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n\n\n\n//\n// Prop browsers' very own glass\n//\nGOBCHUNK(\"Prop browser pane of glass\", kidPropGlass, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_FILL( CHID(kstDefault, krepDefault ), \"Max\", 0,0, kdxpBackground, kdypBackground, Transparent, Palette( 73 \t))\n\tPATTERN_50\nENDCHUNK\nCREATE_SCRIPT(\"Prop background\")\n\tCreateChildThis(kidBrwsProp, kidBrwsProp);\nENDCHUNK\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n//\n// Background\n//\n// Create self + NxM frames + controls, all are invisible\n// Enqueues: cidPropsBrowserReady when ready to go.\n//\nGOBCHUNK(\"Prop browser background\", kidBrwsProp, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBrwsProp, kypBrwsProp, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault ), \"studio\\bmp\\book4.bmp\", kxpregBrwsProp, kypregBrwsProp )\nADOPT_WAVE(kcnoPBrowseWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Prop browser created\")\n\tCreateChildThis(kidBrowserPageFwd, kidGenericPageFwd);\n\tMoveAbsGob(kidBrowserPageFwd, kxpPropPageFwd, kypPropPageFwd);\n\tCreateChildThis(kidBrowserPageBack, kidGenericPageBack);\n\tMoveAbsGob(kidBrowserPageBack, kxpPropPageBack, kypPropPageBack);\n\n\tCreateChildThis(kidBrowserPageNum, kidGenericPageNum);\n\tMoveAbsGob(kidBrowserPageNum, kxpPropPageNum, kypPropPageNum);\n\n\tCreateChildThis(kidBrowserCancel, kidGenericCancel);\n\tMoveAbsGob(kidBrowserCancel, kxpPropCancel, kypPropCancel);\n\tChangeStateGob( kidBrowserCancel, kstBrowserEnabled );\n\n\typ = kdypPropTop;\n\tnFrame = 0;\n\n\tWhile(yp <= (kdypProp - kdypPropFrame - kdypPropBottom));\n\n\t\txp = kdxpPropLeft;\n\n\t\tWhile(xp <= (kdxpProp - kdxpPropRight - kdxpPropFrame));\n\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\t\t\tCreateChildThis(kidBrowserFrame + nFrame, kidBrwsPropFrame);\n\t\t\tMoveAbsGob(kidBrowserFrame + nFrame, xp, yp);\n\t\t\tnFrame++;\n\t\t\txp += kdxpPropSpacing + kdxpPropFrame;\n        End;\n\t\t\n\t\typ += kdypPropSpacing + kdypPropFrame;\n\tEnd;\n\n\t//\n\t// This browser shuts when a selection ockcrs -- or when a thumb gets\n\t// clicked.\n\t//\t\n\tFilterCmdsThis(cidMouseDown, cidNil, kchidScript1);\nENDCHUNK\nCHILD_SCRIPT(\"par / filter cids\", kchidScript1)\n\tkid = _parm[0];\n\tcid = _parm[1];\n\n\tIf(cid == cidMouseDown);\n\n\t\tIf(((kid >= kidBrowserFrame) && (kid < kidBrowserFrameLim)) ||\n\t\t   (kid == kidBrowserCancel) ||\n\t\t   (kid == kidBrowserPageFwd) ||\n\t\t   (kid == kidBrowserPageBack));\n\t\t    Return(fFalse);\n        End;\n\n\tEnd;\nENDCHUNK\n\n\n//\n// \tA frame object for the Prop browser\n//\nGOBCHUNK(\"Prop browser Frame\", kidBrwsPropFrame, kgokkRectNoKids)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\frame4.bmp\",\n\tkxpregBrwsPropFrame, kypregBrwsPropFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\frame4h.bmp\",\n\tkxpregBrwsPropFrame, kypregBrwsPropFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nCLICK_SCRIPT(\"Browser frame clicked\")\n\tChangeStateThis(kstBrowserSelected);\n\tEnqueueCid(cidBrowserSelect, kidPropGlass, GidThis(), 0, 0, 0);\n\tEnqueueCid(cidBrowserOk, kidPropGlass, GidThis(), 0, 0, 0);\n\tPlaySoundGob(kidBackground, kctgWave, kcnoBrwzPicWav, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n\n//\n// Action browsers' very own glass\n//\nGOBCHUNK(\"Action browser pane of glass\", kidActionGlass, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_FILL( CHID(kstDefault, krepDefault ), \"Max\", 0,0, kdxpBackground, kdypBackground, Transparent, Palette( 73 \t))\n\tPATTERN_50\nENDCHUNK\nCREATE_SCRIPT(\"Action background\")\n\tCreateChildThis(kidBrwsAction, kidBrwsAction);\n\t// help balloon\n\tIf (!::fHelpOn);\n\t\tCreateHelpGob(kidBackground, ktpcEaselHelp3A);\n\tEnd;\nENDCHUNK\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n\n//\n// Background\n//\n// Create self + NxM frames + controls, all are invisible\n// Enqueues: cidActionsBrowserReady when ready to go.\n//\nGOBCHUNK(\"Action browser background\", kidBrwsAction, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBrwsAction, kypBrwsAction, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault ), \"studio\\bmp\\book5.bmp\", kxpregBrwsAction, kypregBrwsAction )\nADOPT_WAVE(kcnoPBrowseWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Action browser created\")\n\tCreateChildThis(kidBrowserPageFwd, kidGenericPageFwd);\n\tMoveAbsGob(kidBrowserPageFwd, kxpActionPageFwd, kypActionPageFwd);\n\tCreateChildThis(kidBrowserPageBack, kidGenericPageBack);\n\tMoveAbsGob(kidBrowserPageBack, kxpActionPageBack, kypActionPageBack);\n\t\n\tCreateChildThis(kidBrowserPageNum, kidGenericPageNum);\n\tMoveAbsGob(kidBrowserPageNum, kxpActionPageNum, kypActionPageNum);\n\n\tCreateChildThis(kidBrowserOk, kidGenericOk);\n\tMoveAbsGob(kidBrowserOk, kxpActionOk, kypActionOk);\t\n\t// REVIEW: make the OK button enabled\t\n\tChangeStateGob( kidBrowserOk, kstBrowserEnabled );\n\n\tCreateChildThis(kidBrowserCancel, kidGenericCancel);\n\tMoveAbsGob(kidBrowserCancel, kxpActionCancel, kypActionCancel);\n\t// REVIEW: make the cancel button enabled\t\n\tChangeStateGob( kidBrowserCancel, kstBrowserEnabled );\n\n\tCreateChildThis(kidBrwsActionPrev, kidBrwsActionPrev);\n\tChangeStateGob(kidBrwsActionPrev, kstBrowserEnabled);\n\n\tCreateChildThis(kidBrowserActionBackCel, kidBrowserActionBackCel);\n\tChangeStateGob(kidBrowserActionBackCel, kstBrowserEnabled);\n\n\tCreateChildThis(kidBrowserActionFwdCel, kidBrowserActionFwdCel);\n\tChangeStateGob(kidBrowserActionFwdCel, kstBrowserEnabled);\n\n\txp = kdxpActionLeft;\n\tnFrame = 0;\n\n\tWhile(xp <= (kdxpAction - kdxpActionRight - kdxpActionFrame));\n\n\t\typ = kdypActionTop;\n\n\t\tWhile(yp <= (kdypAction - kdypActionFrame - kdypActionBottom));\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\t\t\tCreateChildThis(kidBrowserFrame + nFrame, kidBrwsActionFrame);\n\t\t\tMoveAbsGob(kidBrowserFrame + nFrame, xp, yp);\n\t\t\tnFrame++;\n\t\t\typ += kdypActionSpacing + kdypActionFrame;\n        End;\n\t\t\n\t\txp += kdxpActionSpacing + kdxpActionFrame;\n\tEnd;\n\n\t//\n\t// This browser shuts when a selection occurs -- or when a thumb gets\n\t// clicked.\n\t//\t\n\tFilterCmdsThis(cidMouseDown, cidNil, kchidScript1);\nENDCHUNK\nCHILD_SCRIPT(\"par / filter cids\", kchidScript1)\n\tkid = _parm[0];\n\tcid = _parm[1];\n\n\tIf(cid == cidMouseDown);\n\n\t\tIf(((kid >= kidBrowserFrame) && (kid < kidBrowserFrameLim)) ||\n\t\t   (kid == kidBrowserOk) ||\n\t\t   (kid == kidBrowserCancel) ||\n\t\t   (kid == kidBrowserPageFwd) ||\n\t\t   (kid == kidBrowserPageBack));\n\n\t\t    Return(fFalse);\n        End;\n\n\tEnd;\nENDCHUNK\n\n//\n// A frame object for the action browser\n//\nGOBCHUNK(\"Action browser Frame\", kidBrwsActionFrame, kgokkRectNoKids)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\frame5.bmp\",\n\tkxpregBrwsActionFrame, kypregBrwsActionFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\frame5h.bmp\",\n\tkxpregBrwsActionFrame, kypregBrwsActionFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nCLICK_SCRIPT(\"Browser frame clicked\")\n\tChangeStateThis(kstBrowserSelected);\n\tEnqueueCid(cidBrowserSelect, kidActionGlass, GidThis(), 0, 0, 0);\n\tPlaySoundGob(kidBackground, kctgWave, kcnoBrwzPicWav, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n\n//\n// The preview area for the action browser\n//\nGOBCHUNK(\"Action Browser preview\", kidBrwsActionPrev, gokkNoHit )\n\tDEFAULT_POSITION(0, 0, 100)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden5\", 0, 0, 0, 0)\nREP_RECT(CHID(kstBrowserEnabled, krepDefault), \"preview window\",\n\tkxpBrwsActionPrevLeft, kypBrwsActionPrevTop, kxpBrwsActionPrevRight, kypBrwsActionPrevBottom)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\n\n//\n// Back starting cell button\n//\nGOBCHUNK(\"Action browser - change cell\", kidBrowserActionBackCel, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBrwsActionBackCel, kypBrwsActionBackCel, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttBrwsActionBackCel)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\b5celbk.bmp\",\n\tkxpregBrwsActionBackCel, kypregBrwsActionBackCel)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\b5celbks.bmp\",\n\tkxpregBrwsActionBackCel, kypregBrwsActionBackCel)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoSyStepBWav, CHID(kstBrowserEnabled, krepClicked))\nCLICK_SCRIPT(\"Browser Back cel clicked\")\n\tEnqueueCid(cidBrowserChangeCel, kidActionGlass, GidThis(), 0, 0, 0);\nENDCHUNK\n\n//\n// Fwd starting cell button\n//\nGOBCHUNK(\"Action browser - change cell\", kidBrowserActionFwdCel, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBrwsActionFwdCel, kypBrwsActionFwdCel, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttBrwsActionFwdCel)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\b5celfw.bmp\",\n\tkxpregBrwsActionFwdCel, kypregBrwsActionFwdCel)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\b5celfws.bmp\",\n\tkxpregBrwsActionFwdCel, kypregBrwsActionFwdCel)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoSyStepFWav, CHID(kstBrowserEnabled, krepClicked))\nCLICK_SCRIPT(\"Browser Fwd cel clicked\")\n\tEnqueueCid(cidBrowserChangeCel, kidActionGlass, GidThis(), 0, 0, 0);\nENDCHUNK\n\n\n//\n//\n// Textbox create browser\n//\n//\n\nGOBCHUNK(\"Textbox create browser background\", kidBrwsTextCreate, kgokkRectHit)\n\tDEFAULT_POSITION( kxpBrwsTextCreate, kypBrwsTextCreate , 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault ), \"studio\\bmp\\book9.bmp\", kxpregBrwsTextCreate, kypregBrwsTextCreate )\nADOPT_WAVE(kcnoPBrowseWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Action browser created\")\n\tCreateChildGob(kidBackground, kidGenericDisableGlass, kidGenericDisableGlass);\n\tCreateChildThis(kidCTextsStory, kidCTextsStory);\n\tCreateChildThis(kidCTextsScroll, kidCTextsScroll);\n\n\tCreateChildThis(kidBrowserCancel, kidGenericCancel);\n\tMoveAbsGob(kidBrowserCancel, kxpCTextsCancel, kypCTextsCancel);\n\tChangeStateGob( kidBrowserCancel, kstBrowserEnabled );\n\n\tDISABLEACCEL(fFalse);\n\n\t//\n\t// This browser shuts when a selection occurs -- or when a thumb gets\n\t// clicked.\n\t//\t\n\t\n\t// enqueue for Tony's tracking (how to's and projects)\n\tEnqueueCid( cidBrowserVisible, 0,0,0,0, 0 );\n\tFilterCmdsThis(cidMouseDown, cidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, cidNil, kchidScript2);\n\tFilterCmdsThis(cidSelIdle, cidNil, kchidScript2);\nENDCHUNK\nCHILD_SCRIPT(\"Trap script\", kchidScript2)\n\tReturn(fTrue);\nENDCHUNK\nCHILD_SCRIPT(\"par / filter cids\", kchidScript1)\n\tkid = _parm[0];\n\tcid = _parm[1];\n\n\tIf(cid == cidMouseDown);\n\n\t\tIf((kid == kidCTextsStory) ||\n\t\t   (kid == kidCTextsScroll));\n\n\t\t    Return(fFalse);\n\n        Elif (kid == kidBrowserCancel);\n\t\t\tENABLEACCEL(fFalse);\n\t\t\tEnqueueCid(cidBrowserCancel, 0, 0, 0, 0, 0);\n\t\t\tDestroyGob(kidGenericDisableGlass);\n\t\t\tDestroyThis();\n\t\t\tReturn(fTrue);\n        End;\n\n\tEnd;\nENDCHUNK\n\nGOBCHUNK(\"Textbox create - story\", kidCTextsStory, kgokkRectHit)\n\tDEFAULT_POSITION(kxpCTextsStory, kypCTextsStory, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCTextsStory)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e6stor.bmp\",\n\tkxpregCTextsStory,\tkypregCTextsStory)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e6stors.bmp\",\n\tkxpregCTextsStory, kypregCTextsStory)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Click, create story\", CHID(kstDefault, kchidClick))\n\tENABLEACCEL(fFalse);\n\tEnqueueCid(cidCreateTbox, khidStudio, fFalse, 0, 0, 0);\n\tEnqueueCid(cidBrowserOk, 0, 0, 0, 0, 0);\n\tDestroyGob(kidGenericDisableGlass);\n\tDestroyGob(kidBrwsTextCreate);\n\tPlaySoundGob(kidBackground, kctgWave, kcnoBrwzPicWav, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\nGOBCHUNK(\"Textbox create - scroll\", kidCTextsScroll, kgokkRectHit)\n\tDEFAULT_POSITION(kxpCTextsScroll, kypCTextsScroll, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCTextsScroll)\nENDCHUNK\nREP_MBMPREG(kcell1, \"studio\\bmp\\e6scr1.bmp\", kxpregCTextsScroll, kypregCTextsScroll);\nREP_MBMPREG(kcell2, \"studio\\bmp\\e6scr2.bmp\", kxpregCTextsScroll, kypregCTextsScroll);\nREP_MBMPREG(kcell3, \"studio\\bmp\\e6scr3.bmp\", kxpregCTextsScroll, kypregCTextsScroll);\nREP_MBMPREG(kcell4, \"studio\\bmp\\e6scr4.bmp\", kxpregCTextsScroll, kypregCTextsScroll);\nREP_ANIM(CHID(kstDefault, krepDefault), \"Scroll tbox\")\n\tcell = 0;\n\tWhile();\n\t\tCell(kcell1 + cell, 0, 0, 60);\n\t\tcell = cell+1;\n\t\tIf( cell==4 );\n\t\t\tcell = 0;\n\t\tEnd;\n\t\t// cell = (cell++) % 4\n\tEnd;\t\nENDCHUNK\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e6scr1s.bmp\",\n\tkxpregCTextsScroll, kypregCTextsScroll)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Click, create Scroll\", CHID(kstDefault, kchidClick))\n\tENABLEACCEL(fFalse);\n\tEnqueueCid(cidCreateTbox, khidStudio, fTrue, 0, 0, 0);\n\tEnqueueCid(cidBrowserOk, 0, 0, 0, 0, 0);\n\tDestroyGob(kidGenericDisableGlass);\n\tDestroyGob(kidBrwsTextCreate);\n\tPlaySoundGob(kidBackground, kctgWave, kcnoBrwzPicWav, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n\n//\n// Sound Effects browser's very own glass\n//\nGOBCHUNK(\"Sound FX browser pane of glass\", kidFXGlass, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_FILL( CHID(kstDefault, krepDefault ), \"Max\", 0,0, kdxpBackground, kdypBackground, Transparent, Palette( 73 \t))\n\tPATTERN_50\nENDCHUNK\nCREATE_SCRIPT(\"Sound FX background\")\n\tCreateChildThis(kidBrwsSoundsBackground, kidBrwsSoundsBackground);\n\t// help balloon\n\tIf (!::fHelpOn);\n\t\tCreateHelpGob(kidBackground, ktpcEaselHelp36);\n\tEnd;\nENDCHUNK\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\nGOBCHUNK(\"Sound MIDI browser pane of glass\", kidMidiGlass, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_FILL( CHID(kstDefault, krepDefault ), \"Max\", 0,0, kdxpBackground, kdypBackground, Transparent, Palette( 73 \t))\n\tPATTERN_50\nENDCHUNK\nCREATE_SCRIPT(\"Sound Midi background\")\n\tCreateChildThis(kidBrwsSoundsBackground, kidBrwsSoundsBackground);\n\t// help balloon\n\tIf (!::fHelpOn);\n\t\tCreateHelpGob(kidBackground, ktpcEaselHelp39);\n\tEnd;\nENDCHUNK\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\nGOBCHUNK(\"Sound Speech browser pane of glass\", kidSpeechGlass, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_FILL( CHID(kstDefault, krepDefault ), \"Max\", 0,0, kdxpBackground, kdypBackground, Transparent, Palette( 73 \t))\n\tPATTERN_50\nENDCHUNK\nCREATE_SCRIPT(\"Sound Speech background\")\n\tCreateChildThis(kidBrwsSoundsBackground, kidBrwsSoundsBackground);\n\t// help balloon\n\tIf (!::fHelpOn);\n\t\tCreateHelpGob(kidBackground, ktpcEaselHelp38);\n\tEnd;\nENDCHUNK\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\nGOBCHUNK(\"Sound browser background\", kidBrwsSoundsBackground, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBrwsSoundsBackground, kypBrwsSoundsBackground, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(kcell1, \"studio\\bmp\\book6.bmp\", kxpregBrwsSoundsBackground, kypregBrwsSoundsBackground )\nREP_MBMPREG(kcell2, \"studio\\bmp\\book7.bmp\", kxpregBrwsSoundsBackground, kypregBrwsSoundsBackground )\nREP_MBMPREG(kcell3, \"studio\\bmp\\book8.bmp\", kxpregBrwsSoundsBackground, kypregBrwsSoundsBackground )\nREP_RECT(CHID(kstClosed, krepDefault), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPBrowseWav, CHID(kstDefault, krepEnterAnimation))\nREP_ANIM(CHID(kstDefault, krepDefault), \"Sound browser background\")\n\n\t// Display a background appropriate to the type of sound browser.\n\n\tIf (GidParThis() == kidMidiGlass);\n\t\tCell(kcell1, 0, 0, 10);\n\tElif (GidParThis() == kidFXGlass);\n\t\tCell(kcell2, 0, 0, 10);\n\tElse;\n\t\tCell(kcell3, 0, 0, 10);\n\tEnd;\n\nENDCHUNK\nCREATE_SCRIPT(\"Sound browser created\")\n\n\tCreateChildThis(kidBrowserPageFwd, kidGenericPageFwd);\n\tMoveAbsGob(kidBrowserPageFwd, kxpSoundPageFwd, kypSoundPageFwd);\n\n\tCreateChildThis(kidBrowserPageBack, kidGenericPageBack);\n\tMoveAbsGob(kidBrowserPageBack, kxpSoundPageBack, kypSoundPageBack);\n\n\tCreateChildThis(kidBrowserPageNum, kidGenericPageNum);\n\tMoveAbsGob(kidBrowserPageNum, kxpSoundPageNum, kypSoundPageNum);\n\n\tCreateChildThis(kidBrowserOk, kidGenericOk);\n\tMoveAbsGob(kidBrowserOk, kxpSoundOk, kypSoundOk);\t\n\tChangeStateGob( kidBrowserOk, kstBrowserEnabled );\n\n\tCreateChildThis(kidBrowserCancel, kidGenericCancel);\n\tMoveAbsGob(kidBrowserCancel, kxpSoundCancel, kypSoundCancel);\t\n\tChangeStateGob( kidBrowserCancel, kstBrowserEnabled );\n\n\tCreateChildThis(kidBrowserImport, kidBrowserImport);\n\tMoveAbsGob(kidBrowserImport, kxpBrowserImport, kypBrowserImport);\n\n\t// Change the state of the import button to use the appropriate tool tip.\n\tIf (GidParThis() == kidFXGlass);\n\t\tChangeStateGob(kidBrowserImport, kst1);\n\tElif (GidParThis() == kidSpeechGlass);\n\t\tChangeStateGob(kidBrowserImport, kst2);\n\tElif (GidParThis() == kidMidiGlass);\n\t\tChangeStateGob(kidBrowserImport, kst3);\n\tEnd;\t\n\n\t// No recording button for Midi browser.\n\tIf (GidParThis() != kidMidiGlass);\n\t\tCreateChildThis(kidBrowserRecord, kidBrowserRecord);\n\t\tMoveAbsGob(kidBrowserRecord, kxpBrowserRecord, kypBrowserRecord);\n\tEnd;\n\n\t// Display sound name frames on the browser.\n\txp = kdxpSoundLeft;\n\tnFrame = 0;\n\n\t// Create frames to order by column not row.\n\tWhile(xp <= (kdxpSound - kdxpSoundRight - kdxpSoundFrame));\n\n\t\typ = kdypSoundTop;\n\n\t\tWhile(yp <= (kdypSound - kdypSoundFrame - kdypSoundBottom));\n\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\n\t\t\tCreateChildThis(kidBrowserFrame + nFrame, kidBrwsSoundFrame);\n\n\t\t\tMoveAbsGob(kidBrowserFrame + nFrame, xp, yp);\n\t\t\tnFrame++;\n\t\t\typ += kdypSoundSpacing + kdypSoundFrame;\n\t\tEnd;\n\t\t\n\t\txp += kdxpSoundSpacing + kdxpSoundFrame;\n\tEnd;\n\n\t// Filter out the mouse dn events, to close the browser if click outside.\n\t\n\tFilterCmdsThis(cidMouseDown, cidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, cidNil, kchidScript2);\nENDCHUNK\nCHILD_SCRIPT(\"Delete user snd\", kchidScript2)\n\tkid = _parm[0];\n\tcid = _parm[1];\n\tvk = _parm[3];\n\n\t// If the record easel is displayed in front of the sound browser,\n\t// then don't take any action here as the key press was intended\n\t// for the record easel. We must take this action here as the\n\t// alternatives wold be to...\n\t// 1. Disable the borwser filter when the record easel is invoked\n\t// and reinstate the filter when the easel OK/Cancel is clicked.\n\t// This doesn't work because the easel is not necessarily dismissed\n\t// when the OK button is clicked, (may get error and keep easel up).\n\t// 2. Initiate key filter for record easel. This does indeed prevent\n\t// the browser acting on the key presses, but it also means the\n\t// keys don't have the desired effect in the edit ctrl. Presumably\n\t// we must pass the key press through the easel, otherwise it never\n\t// gets to whatever actually manipulates the text.\n\n\tIf(!FGobExists(kidRecordBackground));\n\t\tIf ((cid == cidKey) && ((vk == 46) || (vk == 8)));\n\t\t    EnqueueCid(cidBrowserDel, GidParGob( kidBrwsSoundsBackground ), GidThis(), 0, 0, 0);\n\t\tEnd;\n\tEnd;\nENDCHUNK\nCHILD_SCRIPT(\"par / filter cids\", kchidScript1)\n\tkid = _parm[0];\n\tcid = _parm[1];\n\n\t// Dismiss the Sound browser if the user btns down on anything\n\t// that is not the browser or is a child of the browser.\n\n\tIf(cid == cidMouseDown);\n\n\t\tIf((kid == GidThis()) ||\n\t\t   (GidParGob(kid) == GidThis()));\n\n\t\t    Return(fFalse);\n\n        End;\n\n\tEnd;\nENDCHUNK\n\n//\n// A frame object for the sound browser\n//\nGOBCHUNK(\"Sound browser Frame\", kidBrwsSoundFrame, kgokkRectNoKids)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\frame5.bmp\", kxpregBrwsActionFrame, kypregBrwsActionFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\frame5h.bmp\", kxpregBrwsActionFrame, kypregBrwsActionFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nCLICK_SCRIPT( \"Sound frame clicked\" )\n\tChangeStateThis(kstBrowserSelected);\n\t\n\t// send the message to the parent of this browser - the glass gob\n\tEnqueueCid(cidBrowserSelect, GidParGob( kidBrwsSoundsBackground ), GidThis(), 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"Sounds Browser Record\", kidBrowserRecord, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttBrowserRecord)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\mike.bmp\",\n\tkxpregBrowserRecord, kypregBrowserRecord)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\mikes.bmp\",\n\tkxpregBrowserRecord, kypregBrowserRecord )\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nADOPT_WAVE(kcnoMikeWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"Sounds Browser Record\", CHID(kstDefault, kchidClick))\n\n\t// Need to tell whether we're recording SFX or Speech\n\tIf(GidParGob( kidBrwsSoundsBackground) == kidFXGlass);\n\t\tEnqueueCid(cidOpenSoundRecord, 0, 0, 0, 0, 0);\n\tElif(GidParGob( kidBrwsSoundsBackground) == kidSpeechGlass);\n\t\tEnqueueCid(cidOpenSoundRecord, 0, 1, 0, 0, 0);\n\tEnd;\t\n\nENDCHUNK\n\nGOBCHUNK(\"Sounds Browser Import\", kidBrowserImport, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfst1, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttBrowserImportFX)\n\tACTION(fcustNil, fcustNil, fgrfst2, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttBrowserImportSpeech)\n\tACTION(fcustNil, fcustNil, fgrfst3, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttBrowserImportMidi)\nENDCHUNK\nREP_MBMPREG(CHID(kst1, krepDefault), \"studio\\bmp\\sndport.bmp\",\n\tkxpregBrowserImport, kypregBrowserImport)\nADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseDnOff))\nADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\nADOPT_MBMP(LAST_MBMP, CHID(kst2, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kst2, krepMouseDnOff))\nADOPT_MBMP(LAST_MBMP, CHID(kst3, krepDefault))\nADOPT_MBMP(LAST_MBMP, CHID(kst3, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kst3, krepMouseDnOff))\nREP_MBMPREG(CHID(kst1, krepMouseDnOn), \"studio\\bmp\\sndports.bmp\",\n\tkxpregBrowserImport, kypregBrowserImport)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nADOPT_MBMP(LAST_MBMP, CHID(kst2, krepMouseDnOn))\nADOPT_MBMP(LAST_MBMP, CHID(kst2, kstBrowserSelected))\nADOPT_MBMP(LAST_MBMP, CHID(kst3, krepMouseDnOn))\nADOPT_MBMP(LAST_MBMP, CHID(kst3, kstBrowserSelected))\nADOPT_WAVE(kcnoBrwzBtnWav, CHID(kst1, krepClicked))\nADOPT_WAVE(kcnoBrwzBtnWav, CHID(kst2, krepClicked))\nADOPT_WAVE(kcnoBrwzBtnWav, CHID(kst3, krepClicked))\nCHILD_SCRIPT(\"Sounds Browser Import\", CHID(kstDefault, kchidClick))\n\t// Bring up the Sound import portfolio.\n    EnqueueCid(cidPortfolioOpen, 0, kpfPortOpenSound, GidParGob( kidBrwsSoundsBackground ), 0, 0);\n\t\n\t// Look out for the cid indicating that the portfolio has been closed.\n\tFilterCmdsThis(cidPortfolioClosed, cidNil, kchidScript1);\n\nENDCHUNK\nCHILD_SCRIPT(\"par / filter cids\", kchidScript1)\n\t// End this filter as it is no longer required.\n\tFilterCmdsThis(cidPortfolioClosed, cidNil, chidNil);\n\n\t// Let the sound code know a file has been selected.\n\n\tIf(_parm[2] == fTrue);\n\t\tEnqueueCid(cidPortfolioFile, GidParGob(kidBrwsSoundsBackground), GidThis(), 0, 0, 0);\n\t\t// Now watch for the command to display the import browser.\n\t\tFilterCmdsThis(cidLaunchImport, cidNil, kchidScript2);\n\tEnd;\n\nENDCHUNK\nCHILD_SCRIPT(\"par / filter cids\", kchidScript2)\n\t// End this filter as it is no longer required.\n\tFilterCmdsThis(cidLaunchImport, cidNil, chidNil);\n\n\tEnqueueCid(cidBrowserReady, khidStudio, _parm[2], kidImportFrame, kidImportPageFwd,\n\t\t\t   (kdxpImportFrameBorder << 16) | kdypImportFrameBorder);\nENDCHUNK\n\n//\n// Sound import browser's very own glass\n//\nGOBCHUNK(\"Sound import browser pane of glass\", kidSoundsImportGlass, kgokkRectHit)\n\t// Raise the z-coord of this browser above the background browser.\n\tDEFAULT_POSITION(0, 0, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_FILL( CHID(kstDefault, krepDefault ), \"Max\", 0,0, kdxpBackground, kdypBackground, Transparent, Palette( 73 \t))\n\tPATTERN_50\nENDCHUNK\nCREATE_SCRIPT(\"Sound import background\")\n\tCreateChildThis(kidBrwsSoundsImportBackground, kidBrwsSoundsImportBackground);\nENDCHUNK\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\nGOBCHUNK(\"Sound import browser background\", kidBrwsSoundsImportBackground, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBrwsImportBackground, kypBrwsImportBackground, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(kcell1, \"studio\\bmp\\book6.bmp\", kxpregBrwsImportBackground, kypregBrwsImportBackground )\nREP_MBMPREG(kcell2, \"studio\\bmp\\book7.bmp\", kxpregBrwsImportBackground, kypregBrwsImportBackground )\nREP_MBMPREG(kcell3, \"studio\\bmp\\book8.bmp\", kxpregBrwsImportBackground, kypregBrwsImportBackground )\nREP_RECT(CHID(kstClosed, krepDefault), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPBrowseWav, CHID(kstDefault, krepEnterAnimation))\nREP_ANIM(CHID(kstDefault, krepDefault), \"Sound import browser background\")\n\n\t// Display a background appropriate to the type of underlying sound browser.\n\n\tIf (GidParGob(kidBrwsSoundsBackground) == kidMidiGlass);\n\t\tCell(kcell1, 0, 0, 10);\n\tElif (GidParGob(kidBrwsSoundsBackground) == kidFXGlass);\n\t\tCell(kcell2, 0, 0, 10);\n\tElse;\n\t\tCell(kcell3, 0, 0, 10);\n\tEnd;\n\nENDCHUNK\nCREATE_SCRIPT(\"Sound import browser created\")\n\t\n\tCreateChildThis(kidImportPageFwd, kidImportPageFwd);\n\tMoveAbsGob(kidImportPageFwd, kxpImportPageFwd, kypImportPageFwd);\n\tCreateChildThis(kidImportPageBack, kidImportPageBack);\n\tMoveAbsGob(kidImportPageBack, kxpImportPageBack, kypImportPageBack);\n\n\tCreateChildThis(kidImportPageNum, kidImportPageNum);\n\tMoveAbsGob(kidImportPageNum, kxpImportPageNum, kypImportPageNum);\n\n\tCreateChildThis(kidImportOk, kidGenericOk);\n\tMoveAbsGob(kidImportOk, kxpImportOk, kypImportOk);\t\n\tChangeStateGob( kidImportOk, kstBrowserEnabled );\n\n\tCreateChildThis(kidImportCancel, kidGenericCancel);\n\tMoveAbsGob(kidImportCancel, kxpImportCancel, kypImportCancel);\t\n\tChangeStateGob( kidImportCancel, kstBrowserEnabled );\n\n\t// Display import sound name frames on the browser.\n\t// Reuse the same positions as used for the other sound browsers.\n\txp = kdxpSoundLeft;\n\tnFrame = 0;\n\n\tWhile(xp <= (kdxpSound - kdxpSoundRight - kdxpSoundFrame));\n\n\t\typ = kdypSoundTop;\n\n\t\tWhile(yp <= (kdypSound - kdypSoundFrame - kdypSoundBottom));\n\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\n\t\t\tCreateChildThis(kidImportFrame + nFrame, kidBrwsSoundImportFrame);\n\n\t\t\tMoveAbsGob(kidImportFrame + nFrame, xp, yp);\n\t\t\tnFrame++;\n\t\t\typ += kdypSoundSpacing + kdypSoundFrame;\n\t\tEnd;\n\t\t\n\t\txp += kdxpSoundSpacing + kdxpSoundFrame;\n\tEnd;\n\n\t// Filter out the mouse dn events, to close the browser if click outside.\n\t\n\tFilterCmdsThis(cidMouseDown, cidNil, kchidScript1);\nENDCHUNK\nCHILD_SCRIPT(\"par / filter cids\", kchidScript1)\n\tkid = _parm[0];\n\tcid = _parm[1];\n\n\tIf(cid == cidMouseDown);\n\n\t\tIf((kid == GidThis()) ||\n\t\t   (GidParGob(kid) == GidThis()));\n\n\t\t    Return(fFalse);\n\n        End;\n\n\tEnd;\nENDCHUNK\n\n//\n// A frame object for the sound import browser\n//\nGOBCHUNK(\"Sound import browser Frame\", kidBrwsSoundImportFrame, kgokkRectNoKids)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\frame5.bmp\", kxpregBrwsActionFrame, kypregBrwsActionFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\frame5h.bmp\", kxpregBrwsActionFrame, kypregBrwsActionFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nCLICK_SCRIPT( \"Sound import frame clicked\" )\n\tChangeStateThis(kstBrowserSelected);\n\t// Send the message to the parent of this browser - the glass gob\n\tEnqueueCid(cidBrowserSelect, kidSoundsImportGlass, GidThis(), 0, 0, 0);\nENDCHUNK\n\n// No generic page up/down to be used here, as sounds browser still up behind this browser.\n\nGOBCHUNK(\"Sound import browser page fwd\", kidImportPageFwd, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttImportPageFwd)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\fwd.bmp\",\n\tkxpregImportPageFwd, kypregImportPageFwd)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\fwdc.bmp\",\n\tkxpregImportPageFwd, kypregImportPageFwd)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoBrwzBtnWav, CHID(kstBrowserEnabled, krepClicked))\nCLICK_SCRIPT(\"Import browser page fwd clicked\")\n\tEnqueueCid(cidBrowserFwd, kidSoundsImportGlass, GidThis(), 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"Sound import browser page back\", kidImportPageBack, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttImportPageBack)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\bback.bmp\",\n\tkxpregImportPageBack, kypregImportPageBack)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\bbackc.bmp\",\n\tkxpregImportPageBack, kypregImportPageBack)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoBrwzBtnWav, CHID(kstBrowserEnabled, krepClicked))\nCLICK_SCRIPT(\"Import browser page back clicked\")\n\tEnqueueCid(cidBrowserBack, kidSoundsImportGlass, GidThis(), 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"Import browser cancel\", kidImportCancel, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttEaselCancel)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\cancel.bmp\",\n\tkxpregImportCancel, kypregImportCancel)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\cancelc.bmp\",\n\tkxpregImportCancel, kypregImportCancel)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoCancelWav, CHID(kstBrowserEnabled, krepClicked))\nCLICK_SCRIPT(\"Import browser cancel clicked\")\n\tEnqueueCid(cidBrowserCancel, kidSoundsImportGlass, GidThis(), 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"Import browser Okay\", kidImportOk, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttEaselOk)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\okay.bmp\",\n\tkxpregImportOk, kypregImportOk)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\okayc.bmp\",\n\tkxpregImportOk, kypregImportOk)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoOkWav, CHID(kstBrowserEnabled, krepClicked))\nCLICK_SCRIPT(\"Import browser Ok clicked\")\n\tEnqueueCid(cidBrowserOk, kidSoundsImportGlass, GidThis(), 0, 0, 0);\nENDCHUNK\n\n// Transparent area for page number insertion.\nOBJECT(\"Import browser page number\", kidImportPageNum, 100, kcrsArrow)\nREP_RECT(CHID(kstDefault, krepDefault), \"Visible\", 0, 0, kxpImportPageNumWidth, kypImportPageNumHeight)\n\n//\n//\n// Actor RollCall browser\n//\n//\n\nGOBCHUNK(\"RollCall actor browser background\", kidRollCallActor, kgokkRectHit)\n\tDEFAULT_POSITION( 0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT( CHID1( krepDefault ), \"actor rollcall\", kxpRollCallActorLeft, kypRollCallActorTop,\n\tkxpRollCallActorRight, kypRollCallActorBottom )\nCREATE_SCRIPT(\"RollCall actor browser created\")\n\n\t// Create page up and page down btns.\n\tCreateChildThis(kidRollCallActorUpArrow, kidRollCallActorUpArrow);\n\tMoveAbsGob(kidRollCallActorUpArrow, kxpRollCallActorPageUp, kypRollCallActorPageUp);\n\tCreateChildThis(kidRollCallActorDownArrow, kidRollCallActorDownArrow);\n\tMoveAbsGob(kidRollCallActorDownArrow, kxpRollCallActorPageDown, kypRollCallActorPageDown);\n\n\t// Display actor thumbnail frames on the browser.\n\n\typ = kdypRollCallActorBorderTop;\n\t\t\n\t// Create four separate frames.\n\n\tCreateChildThis(kidRollCallActorBorder1, kidRollCallActorBorder1);\n\tMoveAbsGob(kidRollCallActorBorder1, kdxpRollCallActorBorderLeft, yp);\n\t\n\typ += kdypRollCallActorSpacing + kdypRollCallActorBorder;\n\n\tCreateChildThis(kidRollCallActorBorder2, kidRollCallActorBorder2);\n\tMoveAbsGob(kidRollCallActorBorder2, kdxpRollCallActorBorderLeft, yp);\n\t\n\typ += kdypRollCallActorSpacing + kdypRollCallActorBorder;\n\n\tCreateChildThis(kidRollCallActorBorder3, kidRollCallActorBorder3);\n\tMoveAbsGob(kidRollCallActorBorder3, kdxpRollCallActorBorderLeft, yp);\n\t\n\typ += kdypRollCallActorSpacing + kdypRollCallActorBorder;\n\n\tCreateChildThis(kidRollCallActorBorder4, kidRollCallActorBorder4);\n\tMoveAbsGob(kidRollCallActorBorder4, kdxpRollCallActorBorderLeft, yp);\n\nENDCHUNK\n\n// Create four separate frames here to allow different tooltips, (and bitmaps if necessary)\n\nGOBCHUNK(\"RollCall Actor browser border 1\", kidRollCallActorBorder1, gokkNoHitKids)\n\tDEFAULT_POSITION(0, 0, 20)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserEnabled, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallActorFrame1)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserSelected, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallActorFrame1)\nENDCHUNK\nREP_MBMPREG(CHID(kstBrowserInvisible, krepDefault), \"studio\\bmp\\rcact1.bmp\",\n\tkxpregRollCallActorBorder1, kypregRollCallActorBorder1)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\rcact1e.bmp\",\n\tkxpregRollCallActorBorder1, kypregRollCallActorBorder1)\nREP_MBMPREG(CHID(kstBrowserSelected, krepDefault), \"studio\\bmp\\rcact1s.bmp\",\n\tkxpregRollCallActorBorder1, kypregRollCallActorBorder1)\nCREATE_SCRIPT(\"Actor Rollcall border 1 create frame\")\n\t// We end up here ever time the state is changed to BrowserInvisible, because the\n\t// create state and BrowserInvisible have the same value. Therefore only create\n\t// the child frame here if it doesn't already exist.\n\n\tIf(!FGobExists(kidRollCallActorFrame1));\n\t\tCreateChildThis(kidRollCallActorFrame1, kidRollCallActorFrame1);\n\t\tMoveAbsGob(kidRollCallActorFrame1, kdxpRollCallActorLeft, kdypRollCallActorTop);\n\tEnd;\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t\t\nCHILD_SCRIPT(\"RollCall Actor enabled/selected border/frame 1 clicked\", CHID(kstBrowserEnabled, kchidClick))\n\tEnqueueCid(cidBrowserSelect, kidRollCallActor, kidRollCallActorFrame1, 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"RollCall Actor browser Frame 1\", kidRollCallActorFrame1, kgokkRectNoHit)\n\tDEFAULT_POSITION(0, 0, 30)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID1(krepDefault), \"thumb\", 0, 0, kdxpRollCallActorRight, kdypRollCallActorBottom)\nREP_ANIM(CHID(kstBrowserInvisible, krepDefault), \"Set state of parent border\")\n\tCell(CHID1(krepDefault), 0, 0, 10);\n\tChangeStateGob(GidParThis(), StateThis());\nENDCHUNK\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserEnabled, krepDefault))\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserSelected, krepDefault))\n\nGOBCHUNK(\"RollCall Actor browser border 2\", kidRollCallActorBorder2, gokkNoHitKids)\n\tDEFAULT_POSITION(0, 0, 20)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserEnabled, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallActorFrame2)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserSelected, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallActorFrame2)\nENDCHUNK\nREP_MBMPREG(CHID(kstBrowserInvisible, krepDefault), \"studio\\bmp\\rcact2.bmp\",\n\tkxpregRollCallActorBorder2, kypregRollCallActorBorder2)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\rcact2e.bmp\",\n\tkxpregRollCallActorBorder2, kypregRollCallActorBorder2)\nREP_MBMPREG(CHID(kstBrowserSelected, krepDefault), \"studio\\bmp\\rcact2s.bmp\",\n\tkxpregRollCallActorBorder2, kypregRollCallActorBorder2)\nCREATE_SCRIPT(\"Actor Rollcall border 2 create frame\")\n\tIf(!FGobExists(kidRollCallActorFrame2));\n\t\tCreateChildThis(kidRollCallActorFrame2, kidRollCallActorFrame2);\n\t\tMoveAbsGob(kidRollCallActorFrame2, kdxpRollCallActorLeft, kdypRollCallActorTop);\n\tEnd;\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t\t\nCHILD_SCRIPT(\"RollCall Actor enabled/selected border/frame 2 clicked\", CHID(kstBrowserEnabled, kchidClick))\n\tEnqueueCid(cidBrowserSelect, kidRollCallActor, kidRollCallActorFrame2, 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"RollCall Actor browser Frame 2\", kidRollCallActorFrame2, kgokkRectNoHit)\n\tDEFAULT_POSITION(0, 0, 30)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID1(krepDefault), \"thumb\", 0, 0, kdxpRollCallActorRight, kdypRollCallActorBottom)\nREP_ANIM(CHID(kstBrowserInvisible, krepDefault), \"Set state of parent border\")\n\tCell(CHID1(krepDefault), 0, 0, 10);\n\tChangeStateGob(GidParThis(), StateThis());\nENDCHUNK\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserEnabled, krepDefault))\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserSelected, krepDefault))\n\nGOBCHUNK(\"RollCall Actor browser border 3\", kidRollCallActorBorder3, gokkNoHitKids)\n\tDEFAULT_POSITION(0, 0, 20)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserEnabled, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallActorFrame3)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserSelected, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallActorFrame3)\nENDCHUNK\nREP_MBMPREG(CHID(kstBrowserInvisible, krepDefault), \"studio\\bmp\\rcact3.bmp\",\n\tkxpregRollCallActorBorder3, kypregRollCallActorBorder3)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\rcact3e.bmp\",\n\tkxpregRollCallActorBorder3, kypregRollCallActorBorder3)\nREP_MBMPREG(CHID(kstBrowserSelected, krepDefault), \"studio\\bmp\\rcact3s.bmp\",\n\tkxpregRollCallActorBorder3, kypregRollCallActorBorder3)\nCREATE_SCRIPT(\"Actor Rollcall border 3 create frame\")\n\tIf(!FGobExists(kidRollCallActorFrame3));\n\t\tCreateChildThis(kidRollCallActorFrame3, kidRollCallActorFrame3);\n\t\tMoveAbsGob(kidRollCallActorFrame3, kdxpRollCallActorLeft, kdypRollCallActorTop);\n\tEnd;\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t\t\nCHILD_SCRIPT(\"RollCall Actor enabled/selected border/frame 3 clicked\", CHID(kstBrowserEnabled, kchidClick))\n\tEnqueueCid(cidBrowserSelect, kidRollCallActor, kidRollCallActorFrame3, 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"RollCall Actor browser Frame 3\", kidRollCallActorFrame3, kgokkRectNoHit)\n\tDEFAULT_POSITION(0, 0, 30)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID1(krepDefault), \"thumb\", 0, 0, kdxpRollCallActorRight, kdypRollCallActorBottom)\nREP_ANIM(CHID(kstBrowserInvisible, krepDefault), \"Set state of parent border\")\n\tCell(CHID1(krepDefault), 0, 0, 10);\n\tChangeStateGob(GidParThis(), StateThis());\nENDCHUNK\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserEnabled, krepDefault))\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserSelected, krepDefault))\n\nGOBCHUNK(\"RollCall Actor browser border 4\", kidRollCallActorBorder4, gokkNoHitKids)\n\tDEFAULT_POSITION(0, 0, 20)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserEnabled, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallActorFrame4)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserSelected, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallActorFrame4)\nENDCHUNK\nREP_MBMPREG(CHID(kstBrowserInvisible, krepDefault), \"studio\\bmp\\rcact4.bmp\",\n\tkxpregRollCallActorBorder4, kypregRollCallActorBorder4)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\rcact4e.bmp\",\n\tkxpregRollCallActorBorder4, kypregRollCallActorBorder4)\nREP_MBMPREG(CHID(kstBrowserSelected, krepDefault), \"studio\\bmp\\rcact4s.bmp\",\n\tkxpregRollCallActorBorder4, kypregRollCallActorBorder4)\nCREATE_SCRIPT(\"Actor Rollcall border 4 create frame\")\n\tIf(!FGobExists(kidRollCallActorFrame4));\n\t\tCreateChildThis(kidRollCallActorFrame4, kidRollCallActorFrame4);\n\t\tMoveAbsGob(kidRollCallActorFrame4, kdxpRollCallActorLeft, kdypRollCallActorTop);\n\tEnd;\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t\t\nCHILD_SCRIPT(\"RollCall Actor enabled/selected border/frame 4 clicked\", CHID(kstBrowserEnabled, kchidClick))\n\tEnqueueCid(cidBrowserSelect, kidRollCallActor, kidRollCallActorFrame4, 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"RollCall Actor browser Frame 4\", kidRollCallActorFrame4, kgokkRectNoHit)\n\tDEFAULT_POSITION(0, 0, 30)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserEnabled, kcrsHand, chidNil, cidNil, kttRollCallActorFrame4)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserSelected, kcrsHand, chidNil, cidNil, kttRollCallActorFrame4)\nENDCHUNK\nREP_RECT(CHID1(krepDefault), \"thumb\", 0, 0, kdxpRollCallActorRight, kdypRollCallActorBottom)\nREP_ANIM(CHID(kstBrowserInvisible, krepDefault), \"Set state of parent border\")\n\tCell(CHID1(krepDefault), 0, 0, 10);\n\tChangeStateGob(GidParThis(), StateThis());\nENDCHUNK\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserEnabled, krepDefault))\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserSelected, krepDefault))\n\n// No generic page up/down to be used here, so must create these btns explicitly.\n\nGOBCHUNK(\"RollCall Actor up arrow\", kidRollCallActorUpArrow, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserEnabled, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallActorUpArrow)\nENDCHUNK\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\rcaup.bmp\",\n\tkxpregRollCallActorUp, kypregRollCallActorUp)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\rcaupc.bmp\",\n\tkxpregRollCallActorUp, kypregRollCallActorUp)\nREP_MBMPREG(CHID(kstBrowserInvisible, krepDefault), \"studio\\bmp\\rcaupd.bmp\",\n\tkxpregRollCallActorUp, kypregRollCallActorUp)\nADOPT_WAVE(kcnoBrwzBtnWav, CHID(kstBrowserEnabled, krepClicked))\nCHILD_SCRIPT(\"RollCall Actor up arrow clicked\", CHID(kstBrowserEnabled, kchidClick))\n\tEnqueueCid(cidBrowserBack, kidRollCallActor, GidThis(), 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"RollCall Actor down arrow\", kidRollCallActorDownArrow, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserEnabled, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallActorDownArrow)\nENDCHUNK\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\rcadwn.bmp\",\n\tkxpregRollCallActorDown, kypregRollCallActorDown)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\rcadwnc.bmp\",\n\tkxpregRollCallActorDown, kypregRollCallActorDown)\nREP_MBMPREG(CHID(kstBrowserInvisible, krepDefault), \"studio\\bmp\\rcadwnd.bmp\",\n\tkxpregRollCallActorDown, kypregRollCallActorDown)\nADOPT_WAVE(kcnoBrwzBtnWav, CHID(kstBrowserEnabled, krepClicked))\nCHILD_SCRIPT(\"RollCall Actor down arrow clicked\", CHID(kstBrowserEnabled, kchidClick))\n\tEnqueueCid(cidBrowserFwd, kidRollCallActor, GidThis(), 0, 0, 0);\nENDCHUNK\n\n\n//\n//\n// Prop RollCall browser\n//\n//\n\nGOBCHUNK(\"RollCall Prop browser background\", kidRollCallProp, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT( CHID1( krepDefault ), \"actor rollcall\", kxpRollCallPropLeft, kypRollCallPropTop,\n\tkxpRollCallPropRight, kypRollCallPropBottom )\nCREATE_SCRIPT(\"RollCall Prop browser created\")\n\n\t// Create page up and page down btns.\n\n\tCreateChildThis(kidRollCallPropUpArrow, kidRollCallPropUpArrow);\n\tMoveAbsGob(kidRollCallPropUpArrow, kxpRollCallPropPageUp, kypRollCallPropPageUp);\n\tCreateChildThis(kidRollCallPropDownArrow, kidRollCallPropDownArrow);\n\tMoveAbsGob(kidRollCallPropDownArrow, kxpRollCallPropPageDown, kypRollCallPropPageDown);\n\n\t// Display Prop thumbnail frames on the browser.\n\n\typ = kdypRollCallPropBorderTop;\n\t\t\n\t// Create four separate frames.\n\n\tCreateChildThis(kidRollCallPropBorder1, kidRollCallPropBorder1);\n\tMoveAbsGob(kidRollCallPropBorder1, kdxpRollCallPropBorderLeft, yp);\n\t\n\typ += kdypRollCallPropSpacing + kdypRollCallPropBorder;\n\n\tCreateChildThis(kidRollCallPropBorder2, kidRollCallPropBorder2);\n\tMoveAbsGob(kidRollCallPropBorder2, kdxpRollCallPropBorderLeft, yp);\n\t\n\typ += kdypRollCallPropSpacing + kdypRollCallPropBorder;\n\n\tCreateChildThis(kidRollCallPropBorder3, kidRollCallPropBorder3);\n\tMoveAbsGob(kidRollCallPropBorder3, kdxpRollCallPropBorderLeft, yp);\n\t\n\typ += kdypRollCallPropSpacing + kdypRollCallPropBorder;\n\n\tCreateChildThis(kidRollCallPropBorder4, kidRollCallPropBorder4);\n\tMoveAbsGob(kidRollCallPropBorder4, kdxpRollCallPropBorderLeft, yp);\n\nENDCHUNK\n\n// Create four separate frames here to allow different tooltips, (and bitmaps if necessary)\n\nGOBCHUNK(\"RollCall Prop browser border 1\", kidRollCallPropBorder1, gokkNoHitKids)\n\tDEFAULT_POSITION(0, 0, 20)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserEnabled, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallPropFrame1)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserSelected, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallPropFrame1)\nENDCHUNK\nREP_MBMPREG(CHID(kstBrowserInvisible, krepDefault), \"studio\\bmp\\rcp1.bmp\",\n\tkxpregRollCallPropBorder1, kypregRollCallPropBorder1)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\rcp1e.bmp\",\n\tkxpregRollCallPropBorder1, kypregRollCallPropBorder1)\nREP_MBMPREG(CHID(kstBrowserSelected, krepDefault), \"studio\\bmp\\rcp1s.bmp\",\n\tkxpregRollCallPropBorder1, kypregRollCallPropBorder1)\nCREATE_SCRIPT(\"Prop Rollcall border 1 create frame\")\n\tIf(!FGobExists(kidRollCallPropFrame1));\n\t\tCreateChildThis(kidRollCallPropFrame1, kidRollCallPropFrame1);\n\t\tMoveAbsGob(kidRollCallPropFrame1, kdxpRollCallPropLeft, kdypRollCallPropTop);\n\tEnd;\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t\t\nCHILD_SCRIPT(\"RollCall Prop enabled/selected border/frame 1 clicked\", CHID(kstBrowserEnabled, kchidClick))\n\tEnqueueCid(cidBrowserSelect, kidRollCallProp, kidRollCallPropFrame1, 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"RollCall Prop browser Frame 1\", kidRollCallPropFrame1, kgokkRectNoHit)\n\tDEFAULT_POSITION(0, 0, 30)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID1(krepDefault), \"thumb\", 0, 0, kdxpRollCallPropRight, kdypRollCallPropBottom)\nREP_ANIM(CHID(kstBrowserInvisible, krepDefault), \"Set state of parent border\")\n\tCell(CHID1(krepDefault), 0, 0, 10);\n\tChangeStateGob(GidParThis(), StateThis());\nENDCHUNK\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserEnabled, krepDefault))\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserSelected, krepDefault))\n\nGOBCHUNK(\"RollCall Prop browser border 2\", kidRollCallPropBorder2, gokkNoHitKids)\n\tDEFAULT_POSITION(0, 0, 20)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserEnabled, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallPropFrame2)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserSelected, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallPropFrame2)\nENDCHUNK\nREP_MBMPREG(CHID(kstBrowserInvisible, krepDefault), \"studio\\bmp\\rcp2.bmp\",\n\tkxpregRollCallPropBorder2, kypregRollCallPropBorder2)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\rcp2e.bmp\",\n\tkxpregRollCallPropBorder2, kypregRollCallPropBorder2)\nREP_MBMPREG(CHID(kstBrowserSelected, krepDefault), \"studio\\bmp\\rcp2s.bmp\",\n\tkxpregRollCallPropBorder2, kypregRollCallPropBorder2)\nCREATE_SCRIPT(\"Prop Rollcall border 2 create frame\")\n\tIf(!FGobExists(kidRollCallPropFrame2));\n\t\tCreateChildThis(kidRollCallPropFrame2, kidRollCallPropFrame2);\n\t\tMoveAbsGob(kidRollCallPropFrame2, kdxpRollCallPropLeft, kdypRollCallPropTop);\n\tEnd;\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t\t\nCHILD_SCRIPT(\"RollCall Prop enabled/selected border/frame 2 clicked\", CHID(kstBrowserEnabled, kchidClick))\n\tEnqueueCid(cidBrowserSelect, kidRollCallProp, kidRollCallPropFrame2, 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"RollCall Prop browser Frame 2\", kidRollCallPropFrame2, kgokkRectNoHit)\n\tDEFAULT_POSITION(0, 0, 30)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID1(krepDefault), \"thumb\", 0, 0, kdxpRollCallPropRight, kdypRollCallPropBottom)\nREP_ANIM(CHID(kstBrowserInvisible, krepDefault), \"Set state of parent border\")\n\tCell(CHID1(krepDefault), 0, 0, 10);\n\tChangeStateGob(GidParThis(), StateThis());\nENDCHUNK\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserEnabled, krepDefault))\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserSelected, krepDefault))\n\nGOBCHUNK(\"RollCall Prop browser border 3\", kidRollCallPropBorder3, gokkNoHitKids)\n\tDEFAULT_POSITION(0, 0, 20)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserEnabled, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallPropFrame3)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserSelected, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallPropFrame3)\nENDCHUNK\nREP_MBMPREG(CHID(kstBrowserInvisible, krepDefault), \"studio\\bmp\\rcp3.bmp\",\n\tkxpregRollCallPropBorder3, kypregRollCallPropBorder3)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\rcp3e.bmp\",\n\tkxpregRollCallPropBorder3, kypregRollCallPropBorder3)\nREP_MBMPREG(CHID(kstBrowserSelected, krepDefault), \"studio\\bmp\\rcp3s.bmp\",\n\tkxpregRollCallPropBorder3, kypregRollCallPropBorder3)\nCREATE_SCRIPT(\"Prop Rollcall border 3 create frame\")\n\tIf(!FGobExists(kidRollCallPropFrame3));\n\t\tCreateChildThis(kidRollCallPropFrame3, kidRollCallPropFrame3);\n\t\tMoveAbsGob(kidRollCallPropFrame3, kdxpRollCallPropLeft, kdypRollCallPropTop);\n\tEnd;\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t\t\nCHILD_SCRIPT(\"RollCall Prop enabled/selected border/frame 3 clicked\", CHID(kstBrowserEnabled, kchidClick))\n\tEnqueueCid(cidBrowserSelect, kidRollCallProp, kidRollCallPropFrame3, 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"RollCall Prop browser Frame 3\", kidRollCallPropFrame3, kgokkRectNoHit)\n\tDEFAULT_POSITION(0, 0, 30)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID1(krepDefault), \"thumb\", 0, 0, kdxpRollCallPropRight, kdypRollCallPropBottom)\nREP_ANIM(CHID(kstBrowserInvisible, krepDefault), \"Set state of parent border\")\n\tCell(CHID1(krepDefault), 0, 0, 10);\n\tChangeStateGob(GidParThis(), StateThis());\nENDCHUNK\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserEnabled, krepDefault))\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserSelected, krepDefault))\n\nGOBCHUNK(\"RollCall Prop browser border 4\", kidRollCallPropBorder4, gokkNoHitKids)\n\tDEFAULT_POSITION(0, 0, 20)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserEnabled, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallPropFrame4)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserSelected, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallPropFrame4)\nENDCHUNK\nREP_MBMPREG(CHID(kstBrowserInvisible, krepDefault), \"studio\\bmp\\rcp4.bmp\",\n\tkxpregRollCallPropBorder4, kypregRollCallPropBorder4)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\rcp4e.bmp\",\n\tkxpregRollCallPropBorder4, kypregRollCallPropBorder4)\nREP_MBMPREG(CHID(kstBrowserSelected, krepDefault), \"studio\\bmp\\rcp4s.bmp\",\n\tkxpregRollCallPropBorder4, kypregRollCallPropBorder4)\nCREATE_SCRIPT(\"Prop Rollcall border 4 create frame\")\n\tIf(!FGobExists(kidRollCallPropFrame4));\n\t\tCreateChildThis(kidRollCallPropFrame4, kidRollCallPropFrame4);\n\t\tMoveAbsGob(kidRollCallPropFrame4, kdxpRollCallPropLeft, kdypRollCallPropTop);\n\tEnd;\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t\t\nCHILD_SCRIPT(\"RollCall Prop enabled/selected border/frame 4 clicked\", CHID(kstBrowserEnabled, kchidClick))\n\tEnqueueCid(cidBrowserSelect, kidRollCallProp, kidRollCallPropFrame4, 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"RollCall Prop browser Frame 4\", kidRollCallPropFrame4, kgokkRectNoHit)\n\tDEFAULT_POSITION(0, 0, 30)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserEnabled, kcrsHand, chidNil, cidNil, kttRollCallPropFrame4)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserSelected, kcrsHand, chidNil, cidNil, kttRollCallPropFrame4)\nENDCHUNK\nREP_RECT(CHID1(krepDefault), \"thumb\", 0, 0, kdxpRollCallPropRight, kdypRollCallPropBottom)\nREP_ANIM(CHID(kstBrowserInvisible, krepDefault), \"Set state of parent border\")\n\tCell(CHID1(krepDefault), 0, 0, 10);\n\tChangeStateGob(GidParThis(), StateThis());\nENDCHUNK\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserEnabled, krepDefault))\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserSelected, krepDefault))\n\n// No generic page up/down to be used here, so must create these btns explicitly.\n\nGOBCHUNK(\"RollCall Prop up arrow\", kidRollCallPropUpArrow, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserEnabled, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallPropUpArrow)\nENDCHUNK\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\rcpup.bmp\",\n\tkxpregRollCallPropUp, kypregRollCallPropUp)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\rcpupc.bmp\",\n\tkxpregRollCallPropUp, kypregRollCallPropUp)\nREP_MBMPREG(CHID(kstBrowserInvisible, krepDefault), \"studio\\bmp\\rcpupd.bmp\",\n\tkxpregRollCallPropUp, kypregRollCallPropUp)\nADOPT_WAVE(kcnoBrwzBtnWav, CHID(kstBrowserEnabled, krepClicked))\nCHILD_SCRIPT(\"RollCall Prop up arrow clicked\", CHID(kstBrowserEnabled, kchidClick))\n\tEnqueueCid(cidBrowserBack, kidRollCallProp, GidThis(), 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"RollCall Prop down arrow\", kidRollCallPropDownArrow, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserInvisible, kcrsArrow, chidNil, cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstBrowserEnabled, kcrsHand, CHID(kstBrowserEnabled, kchidClick), cidNil, kttRollCallPropDownArrow)\nENDCHUNK\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\rcpdwn.bmp\",\n\tkxpregRollCallPropDown, kypregRollCallPropDown)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\rcpdwnc.bmp\",\n\tkxpregRollCallPropDown, kypregRollCallPropDown)\nREP_MBMPREG(CHID(kstBrowserInvisible, krepDefault), \"studio\\bmp\\rcpdwnd.bmp\",\n\tkxpregRollCallPropDown, kypregRollCallPropDown)\nADOPT_WAVE(kcnoBrwzBtnWav, CHID(kstBrowserEnabled, krepClicked))\nCHILD_SCRIPT(\"RollCall Prop down arrow clicked\", CHID(kstBrowserEnabled, kchidClick))\n\tEnqueueCid(cidBrowserFwd, kidRollCallProp, GidThis(), 0, 0, 0);\nENDCHUNK\n"
  },
  {
    "path": "src/studio/browser.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n  browser.cpp\n\n  Author: Sean Selitrennikoff\n\n  Date: March, 1995\n\n    Review Status: Reviewed\n\n  This file contains the browser display code.\n  Browsers (abbrev Brws) include display, list and text classes.\n\n    Studio Independent Browsers:\n    BASE --> CMH --> GOK\t-->\tBRWD  (Browser display class)\n    BRWD --> BRWL  (Browser list class; chunky based)\n    BRWD --> BRWT  (Browser text class)\n    BRWD --> BRWL --> BRWN  (Browser named list class)\n\n    Studio Dependent Browsers:\n    BRWD --> BRWR  (Roll call class)\n    BRWD --> BRWT --> BRWA  (Browser action class)\n    BRWD --> BRWL --> BRWP\t(Browser prop/actor class)\n    BRWD --> BRWL --> BRWB\t(Browser background class)\n    BRWD --> BRWL --> BRWC\t(Browser camera class)\n    BRWD --> BRWL --> BRWN --> BRWM (Browser music class)\n    BRWD --> BRWL --> BRWN --> BRWM --> BRWI (Browser import sound class)\n\n    Note: An \"frm\" refers to the displayed frames on any page.\n    A \"thum\" is a generic Browser Thumbnail, which may be a\n    chid, cno, cnoPar, gob, stn, etc.\tA browser will display,\n    over multiple pages, as many browser entities as there are\n    thum's.\n\n    This file contains the browser display code.\n\n    To add additional browsers, create a derived class of\n    the BRWD, BRWL or BRWT classes.\n\n    If a browser is to be chunky file based, the BRWL class can be used.\n    It includes GOKD chunks which are grandchildren of _ckiRoot (cnoNil\n    implies wildcarding) and children of _ctgContent  - from .thd files\n    entered in the registry of this product.\n    The BRWL class allows the option of displaying either all the thumbnails\n    of a particular ctg across registry specified directories (eg, scenes,\n    actors)\n        -or-\n    of filling frames from GOKD thumbnails which are children of a single\n    given chunk.\n\n    Text class browsers (BRWT) create child TGOBs for each frame.\n\n    Only cidBrowserCancel and cidBrowserOk exit the browser.\n    cidBrowserSelect is selection only, not application of the selection.\n\n    On creation of a new browser,\n     pcmd->rglw[0] = kid of Browser (type)\n     pcmd->rglw[1] = kid first frame.  Thumb kid is this + kidBrowserThumbOffset\n     pcmd->rglw[2] = kid of first control\n     pcmd->rglw[3] = x,y offsets\n\n    Upon exiting, some browser classes retain BRCN (or derived from BRCN)\n    context information for optimization.\n\n    The kid of a single frame may be overridden (eg, for project help) using\n    the override prids.\n\n***************************************************************************/\n\n#include \"soc.h\"\n#include \"studio.h\"\n\nASSERTNAME\n\nRTCLASS(BRCN)\nRTCLASS(BRCNL)\nRTCLASS(BRWD)\nRTCLASS(BRWL)\nRTCLASS(BRWT)\nRTCLASS(BRWA)\nRTCLASS(BRWP)\nRTCLASS(BRWB)\nRTCLASS(BRWC)\nRTCLASS(BRWN)\nRTCLASS(BRWM)\nRTCLASS(BRWR)\nRTCLASS(BRWI)\nRTCLASS(BCL)\nRTCLASS(BCLS)\nRTCLASS(FNET)\n\nBEGIN_CMD_MAP(BRWD, GOK)\nON_CID_GEN(cidBrowserFwd, &BRWD::FCmdFwd, pvNil)\nON_CID_GEN(cidBrowserBack, &BRWD::FCmdBack, pvNil)\nON_CID_GEN(cidBrowserCancel, &BRWD::FCmdCancel, pvNil)\nON_CID_GEN(cidBrowserOk, &BRWD::FCmdOk, pvNil)\nON_CID_GEN(cidBrowserSelect, &BRWD::FCmdSelect, pvNil)\nON_CID_GEN(cidBrowserSelectThum, &BRWD::FCmdSelectThum, pvNil)\nON_CID_GEN(cidPortfolioFile, &BRWD::FCmdFile, pvNil)\nON_CID_GEN(cidBrowserChangeCel, &BRWD::FCmdChangeCel, pvNil)\nON_CID_GEN(cidBrowserDel, &BRWD::FCmdDel, pvNil)\nEND_CMD_MAP_NIL()\n\n/****************************************************\n *\n * Create a browser display object\n *\n * Returns:\n *\tA pointer to the object, else pvNil.\n *\n ****************************************************/\nPBRWD BRWD::PbrwdNew(PRCA prca, long kidPar, long kidGlass)\n{\n    AssertPo(prca, 0);\n\n    PBRWD pbrwd;\n    GCB gcb;\n\n    if (!_FBuildGcb(&gcb, kidPar, kidGlass))\n        return pvNil;\n\n    if ((pbrwd = NewObj BRWD(&gcb)) == pvNil)\n        return pvNil;\n\n    // Initialize the gok\n    if (!pbrwd->_FInitGok(prca, kidGlass))\n    {\n        ReleasePpo(&pbrwd);\n        return pvNil;\n    }\n\n    return pbrwd;\n}\n\n/****************************************************\n *\n * Build the GOB creation block\n *\n ****************************************************/\nbool BRWD::_FBuildGcb(GCB *pgcb, long kidPar, long kidGlass)\n{\n    AssertVarMem(pgcb);\n\n    PGOB pgobPar;\n    RC rcRel;\n\n    pgobPar = vapp.Pkwa()->PgobFromHid(kidPar);\n    if (pvNil == pgobPar)\n    {\n        TrashVar(pgcb);\n        return fFalse;\n    }\n\n#ifdef DEBUG\n    Assert(pgobPar->FIs(kclsGOK), \"Parent isn't a GOK\");\n    {\n        PGOB pgob = vapp.Pkwa()->PgobFromHid(kidGlass);\n\n        Assert(pgob == pvNil, \"GOK already exists with given ID\");\n    }\n#endif // DEBUG\n\n    rcRel.Set(krelZero, krelZero, krelOne, krelOne);\n    pgcb->Set(kidGlass, pgobPar, fgobNil, kginDefault, pvNil, &rcRel);\n    return fTrue;\n}\n\n/****************************************************\n *\n * Initialize the Gok :\n * Do everything PgokNew would have done but didn't\n *\n ****************************************************/\nbool BRWD::_FInitGok(PRCA prca, long kid)\n{\n    AssertBaseThis(0);\n    AssertPo(prca, 0);\n\n    if (!BRWD_PAR::_FInit(vapp.Pkwa(), kid, prca))\n        return fFalse;\n    if (!_FEnterState(ksnoInit))\n        return fFalse;\n    return fTrue;\n}\n\n/****************************************************\n *\n * Initialize a new browser object\n * Init knows how to either initialize or reinitialize\n * itself on reinstantiation of a browser.\n *\n * NOTE:  This does not display - see FDraw()\n *\n * On input,\n * ithumSelect is the thumbnail to be hilited\n * ithumDisplay is a thumbnail to be on the first\n *\t\tpage displayed\n * pcmd->rglw[0] = kid of Browser (type)\n * pcmd->rglw[1] = kid first frame.  Thumb kid is\n *\t   this + kidBrowserThumbOffset\n * pcmd->rglw[2] = kid of first control\n * pcmd->rglw[3] = x,y offsets\n *\n ****************************************************/\nvoid BRWD::Init(PCMD pcmd, long ithumSelect, long ithumDisplay, PSTDIO pstdio, bool fWrapScroll, long cthumScroll)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    // Split the initialization into two parts. The first part initializes the\n    // state variables and can be done before the number of thumbnails on the\n    // browser is known. The second part of the initialization relates to\n    // browser display and requires the number of thumbnails to be known.\n\n    _InitStateVars(pcmd, pstdio, fWrapScroll, cthumScroll);\n    _InitFromData(pcmd, ithumSelect, ithumDisplay);\n}\n\n/****************************************************\n *\n * Initialize state variables for a new browser object.\n * A call will be made later to InitFromData to finish\n * the browser initialization based on thumbnail specific\n * information.\n *\n * On input,\n * pcmd->rglw[0] = kid of Browser (type)\n * pcmd->rglw[1] = kid first frame.  Thumb kid is\n *\t   this + kidBrowserThumbOffset\n * pcmd->rglw[2] = kid of first control\n * pcmd->rglw[3] = x,y offsets\n *\n ****************************************************/\nvoid BRWD::_InitStateVars(PCMD pcmd, PSTDIO pstdio, bool fWrapScroll, long cthumScroll)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    // Save parameters for this browser\n    _pstdio = pstdio;\n    _kidFrmFirst = pcmd->rglw[1];\n    _kidControlFirst = pcmd->rglw[2];\n    _dxpFrmOffset = SwHigh(pcmd->rglw[3]);\n    _dypFrmOffset = SwLow(pcmd->rglw[3]);\n    _cthumScroll = cthumScroll;\n    _fWrapScroll = fWrapScroll;\n    _fNoRepositionSel = fFalse;\n}\n\n/****************************************************\n *\n * Complete the initialization of  a new browser object.\n * The number of thumbnails for this browser has\n * already been determined. This call follows a\n * call to InitStateVars earlier.\n *\n * On input,\n * ithumSelect is the thumbnail to be hilited\n * ithumDisplay is a thumbnail to be on the first\n *\t\tpage displayed\n *\n ****************************************************/\nvoid BRWD::_InitFromData(PCMD pcmd, long ithumSelect, long ithumDisplay)\n{\n    AssertThis(0);\n    long cthum;\n\n    // Context carryover\n    if (_pbrcn != pvNil)\n    {\n        _pbrcn->brwdid = pcmd->rglw[0];\n    }\n\n    // Initialize variables\n    cthum = _Cthum();\n    AssertIn(ithumDisplay, -1, cthum);\n    AssertIn(ithumSelect, -1, cthum);\n    _ithumSelect = ithumSelect;\n    _cfrmPageCur = 0;\n    _cfrm = _CfrmCalc();\n    _SetScrollState(); // Set the state of the scroll arrows\n\n    // Adjust the display ifrm to begin at a page boundary\n    if (ithumDisplay != ivNil)\n        _ithumPageFirst = ithumDisplay;\n    _SetVarForOverride();\n    _CalcIthumPageFirst();\n}\n\n/****************************************************\n *\n * _SetVarForOverride : Projects may override kids\n *\n ****************************************************/\nvoid BRWD::_SetVarForOverride(void)\n{\n    AssertThis(0);\n    long thumOverride = -1;\n    long thumSidOverride = -1;\n\n    // Projects need to be able to hard wire one of the gob id's\n    if (vpappb->FGetProp(kpridBrwsOverrideThum, &thumOverride) &&\n        vpappb->FGetProp(kpridBrwsOverrideSidThum, &thumSidOverride) &&\n        vpappb->FGetProp(kpridBrwsOverrideKidThum, &_kidThumOverride))\n    {\n        if (thumOverride >= 0)\n        {\n            _ithumOverride = _IthumFromThum(thumOverride, thumSidOverride);\n\n            // Make sure this thum is on the displayed page\n            _ithumPageFirst = _ithumOverride;\n        }\n        else\n        {\n            _kidThumOverride = -1;\n            _ithumOverride = -1;\n        }\n    }\n}\n\n/****************************************************\n *\n * _GetThumFromIthum\n *\n ****************************************************/\n\nvoid BRWD::_GetThumFromIthum(long ithum, void *pThumSelect, long *psid)\n{\n    AssertThis(0);\n    AssertVarMem((long *)pThumSelect);\n    AssertVarMem(psid);\n\n    *((long *)pThumSelect) = ithum;\n    TrashVar(psid);\n}\n\n/****************************************************\n *\n * Count the number of frames possible per page\n *\n ****************************************************/\nlong BRWD::_CfrmCalc(void)\n{\n    AssertThis(0);\n\n    PGOB pgob;\n    long ifrm;\n\n    for (ifrm = 0;; ifrm++)\n    {\n        //\n        // If there is no GOKD parent, there are no more thumbnail\n        // slots on this page\n        //\n        pgob = vapp.Pkwa()->PgobFromHid(_kidFrmFirst + ifrm);\n        if (pvNil == pgob)\n        {\n            return ifrm;\n        }\n        AssertPo(pgob, 0);\n    }\n    return 0;\n}\n\n/****************************************************\n *\n * Determine the first thumbnail to display on the page\n *\n ****************************************************/\nvoid BRWD::_CalcIthumPageFirst(void)\n{\n    AssertThis(0);\n    long cthum = _Cthum();\n\n    // Place the selection as close to the top as _cthumScroll permits\n    if (!_fNoRepositionSel || _cthumScroll == ivNil)\n    {\n        if (_cthumScroll != ivNil)\n            _ithumPageFirst = _ithumPageFirst - (_ithumPageFirst % _cthumScroll);\n        else\n            _ithumPageFirst = _ithumPageFirst - (_ithumPageFirst % _cfrm);\n    }\n\n    // Verify that the viewed thumbnail is within range\n    if (_ithumPageFirst >= cthum)\n    {\n        if (cthum == 0)\n            _ithumPageFirst = 0;\n        else if (_cthumScroll != ivNil)\n            _ithumPageFirst = (cthum - 1) - ((cthum - 1) % _cthumScroll);\n        else\n            _ithumPageFirst = (cthum - 1) - ((cthum - 1) % _cfrm);\n    }\n\n    // Display a full last page if not wrapping around\n    if (!_fWrapScroll && (_ithumPageFirst + _cfrm > cthum) && _cthumScroll != ivNil)\n    {\n        while ((_ithumPageFirst - _cthumScroll) + _cfrm >= cthum)\n            _ithumPageFirst -= _cthumScroll;\n        if (_ithumPageFirst < 0)\n            _ithumPageFirst = 0;\n    }\n}\n\n/****************************************************\n *\n * Browser Display\n *\n ****************************************************/\nbool BRWD::FDraw(void)\n{\n    AssertThis(0);\n\n    PGOB pgobPar;\n    GCB gcb;\n    long ithum;\n    long ifrm;\n    long cthum = _Cthum();\n\n    _CalcIthumPageFirst();\n\n    // Begin a new page\n    _cfrmPageCur = 0;\n\n    for (ifrm = 0; ifrm < _cfrm; ifrm++)\n    {\n        ithum = _ithumPageFirst + ifrm;\n        // Release the previouly attached thum from this frame\n        _ReleaseThumFrame(ifrm);\n\n        pgobPar = vapp.Pkwa()->PgobFromHid(_kidFrmFirst + ifrm);\n        if (pvNil == pgobPar)\n            goto LContinue;\n        Assert(pgobPar->FIs(kclsGOK), \"Invalid class\");\n\n        if (ithum >= cthum)\n        {\n            // Render invisible\n            ((PGOK)pgobPar)->FChangeState(kstBrowserInvisible); // Ignore error\n            _FClearHelp(ifrm);                                  // Clear rollover help\n            continue;\n        }\n\n        // Get next gob from list\n        if (!_FSetThumFrame(ithum, pgobPar))\n            goto LContinue;\n\n        if (ithum == _ithumSelect)\n        {\n            ((PGOK)pgobPar)->FChangeState(kstBrowserSelected);\n        }\n        else\n        {\n            ((PGOK)pgobPar)->FChangeState(kstBrowserEnabled);\n        }\n    LContinue:\n        if (ithum < cthum)\n            _cfrmPageCur++;\n    }\n\n    // Update page number\n    if (pvNil != _ptgobPage)\n    {\n        long pagen;\n        long cpage;\n        STN stn;\n        STN stnT;\n        pagen = (_cfrm == 0) ? 0 : (_ithumPageFirst / _cfrm);\n        cpage = ((cthum - 1) / _cfrm) + 1;\n        _pstdio->GetStnMisc(idsBrowserPage, &stnT);\n        stn.FFormat(&stnT, pagen + 1, cpage);\n        _ptgobPage->SetText(&stn);\n    }\n\n    return fTrue;\n}\n\n/****************************************************\n *\n * Find a unique hid for the current frame\n *\n ****************************************************/\nlong BRWD::_KidThumFromIfrm(long ifrm)\n{\n    AssertBaseThis(0);\n    long kidThum;\n\n    if (_ithumPageFirst + ifrm == _ithumOverride)\n        kidThum = _kidThumOverride;\n    else\n        kidThum = GOB::HidUnique();\n\n    return kidThum;\n}\n\n/****************************************************\n *\n * Compute the pgob of the parent for frame ifrm\n *\n ****************************************************/\nPGOB BRWD::_PgobFromIfrm(long ifrm)\n{\n    AssertBaseThis(0);\n    PGOB pgob;\n    pgob = vapp.Pkwa()->PgobFromHid(_kidFrmFirst + ifrm);\n    if (pvNil == pgob)\n        return pvNil;\n    return pgob->PgobLastChild();\n}\n\n/****************************************************\n *\n * Set the state of the scroll arrows for the Display\n *\n ****************************************************/\nvoid BRWD::_SetScrollState(void)\n{\n    AssertThis(0);\n\n    PGOB pgob;\n    long st = (_Cthum() <= _cfrm) ? kstBrowserInvisible : kstBrowserEnabled;\n\n    pgob = vapp.Pkwa()->PgobFromHid(_kidControlFirst);\n    if (pvNil != pgob)\n    {\n        Assert(pgob->FIs(kclsGOK), \"Invalid class\");\n        if (!((PGOK)pgob)->FChangeState(st))\n            Warn(\"Failed to change state Page Fwd button\");\n    }\n\n    pgob = vapp.Pkwa()->PgobFromHid(_kidControlFirst + 1);\n    if (pvNil != pgob)\n    {\n        Assert(pgob->FIs(kclsGOK), \"Invalid class\");\n        if (!((PGOK)pgob)->FChangeState(st))\n            Warn(\"Failed to change state Page Back button\");\n    }\n}\n\n/****************************************************\n *\n * Browser Command Handler : Browser Forward\n *\n ****************************************************/\nbool BRWD::FCmdFwd(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    long cthumAdd;\n\n    // Default _cthumScroll -> page scrolling\n    if (ivNil == _cthumScroll)\n        cthumAdd = _cfrm;\n    else\n        cthumAdd = _cthumScroll;\n\n    // If either wrapping or there is more to see, increment first thumbnail index\n    if (_fWrapScroll || (_ithumPageFirst + _cfrm < _Cthum()))\n        _ithumPageFirst += cthumAdd;\n\n    if (_ithumPageFirst >= _Cthum())\n    {\n        _ithumPageFirst = 0;\n    }\n\n    FDraw(); // Ignore failure\n\n    return fTrue;\n}\n\n/****************************************************\n *\n * Browser Command Handler :\n * Set viewing page based on thumSelect == rglw[0]\n * and sid == rglw[1]\n * rglw[2] -> Hilite\n * rglw[3] -> Update Lists\n *\n ****************************************************/\nbool BRWD::FCmdSelectThum(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (pcmd->rglw[3] != 0)\n    {\n        if (!_FUpdateLists())\n            return fTrue;\n    }\n\n    if (pcmd->rglw[2] > 0)\n        _ithumSelect = _IthumFromThum(pcmd->rglw[0], pcmd->rglw[1]);\n    else\n        _ithumSelect = -1;\n    _ithumPageFirst = _ithumSelect - (_ithumSelect % _cfrm);\n\n    _SetScrollState(); // Set the state of the scroll arrows\n    FDraw();           // Ignore failure\n    return fTrue;\n}\n\n/****************************************************\n *\n * Browser Command Handler : Browser Back\n * Scroll back one page in the browser\n *\n ****************************************************/\nbool BRWD::FCmdBack(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (_ithumPageFirst == 0)\n    {\n        if (_fWrapScroll)\n        {\n            // Wrap back to the last page\n            _ithumPageFirst = _Cthum() - (_Cthum() % _cfrm);\n        }\n    }\n    else\n    {\n        // Normal non-wrap page scroll back\n        if (ivNil == _cthumScroll)\n            _ithumPageFirst -= _cfrmPageCur;\n        else\n            _ithumPageFirst -= _cthumScroll;\n    }\n\n    // FDraw updates _cfrmPageCur\n    FDraw(); // Ignore failure\n    return fTrue;\n}\n\n/****************************************************\n *\n * Browser Command Handler : Browser Frame Selected\n * (Thumbnail clicked)\n *\n * The script is expected to make the BrowserOK call\n * FCmdSelect does not exit\n *\n * pcmd->rglw[0] is browser id of thumb\n *\n ****************************************************/\nbool BRWD::FCmdSelect(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    long ifrmSelect = pcmd->rglw[0] - _kidFrmFirst;\n\n    _UnhiliteCurFrm();\n    _ithumSelect = _ithumPageFirst + ifrmSelect;\n    _FHiliteFrm(ifrmSelect);\n\n    // Handle any derived class special actions (eg previews)\n    _ProcessSelection();\n    return fTrue;\n}\n\n/****************************************************\n *\n * Create Tgob's for any of the text based browsers\n * These will be destroyed when the browser exits\n * NOTE:: FCreateAllTgob() requires previous initialization\n * of the override parameters from BRWD::Init()\n *\n ****************************************************/\nbool BRWD::FCreateAllTgob(void)\n{\n    AssertThis(0);\n\n    long ifrm;\n    long hid;\n    PTGOB ptgob;\n    RC rcAbs;\n    RC rcRel;\n\n    for (ifrm = 0; ifrm < _cfrm; ifrm++)\n    {\n        if (_ithumPageFirst + ifrm == _ithumOverride)\n            hid = _kidThumOverride;\n        else\n            hid = hidNil;\n\n        ptgob = TGOB::PtgobCreate(_kidFrmFirst + ifrm, _idsFont, tavTop, hid);\n        if (pvNil == ptgob)\n            return fFalse;\n        ptgob->SetAlign(tahLeft);\n\n        ptgob->GetPos(&rcAbs, &rcRel);\n        rcAbs.Inset(_dxpFrmOffset, _dypFrmOffset);\n        ptgob->SetPos(&rcAbs, &rcRel);\n    }\n\n    return fTrue;\n}\n\n/****************************************************\n *\n * Hilite frame\n *\n ****************************************************/\nbool BRWD::_FHiliteFrm(long ifrmSelect)\n{\n    AssertThis(0);\n    AssertIn(ifrmSelect, 0, _cfrm);\n    PGOB pgob;\n\n    // Hilite currently selected frame\n    AssertIn(ifrmSelect, 0, _cfrmPageCur);\n    pgob = vapp.Pkwa()->PgobFromHid(_kidFrmFirst + ifrmSelect);\n    if (pvNil == pgob)\n        return fFalse;\n\n    Assert(pgob->FIs(kclsGOK), \"Invalid class\");\n    if (!((PGOK)pgob)->FChangeState(kstBrowserSelected))\n    {\n        _ithumSelect = ivNil;\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/****************************************************\n *\n * Unhilite currently selected Frame\n *\n ****************************************************/\nvoid BRWD::_UnhiliteCurFrm(void)\n{\n    AssertThis(0);\n    PGOB pgob;\n    long ifrmSelectOld = _ithumSelect - _ithumPageFirst;\n\n    // Unhilite currently selected frame\n    if ((_ithumPageFirst <= _ithumSelect) && (_ithumPageFirst + _cfrmPageCur > _ithumSelect))\n    {\n        pgob = vapp.Pkwa()->PgobFromHid(_kidFrmFirst + ifrmSelectOld);\n        if (pvNil == pgob)\n            return;\n        Assert(pgob->FIs(kclsGOK), \"Invalid class\");\n        ((PGOK)pgob)->FChangeState(kstBrowserEnabled); // Ignore failure\n    }\n}\n\n/****************************************************\n *\n * Browser Command Handler : Browser Cancel\n * Exit without applying selection\n *\n ****************************************************/\nbool BRWD::FCmdCancel(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    vpsndm->StopAll();\n    Release(); // OK/Cancel common cleanup\n\n    return fTrue;\n}\n\n/****************************************************\n *\n * Browser cleanup for OK & Cancel\n *\n ****************************************************/\nvoid BRWD::Release(void)\n{\n    _CacheContext();\n\n    // Minimize the cache size on low mem machines\n    _SetCbPcrmMin();\n    BRWD_PAR::Release();\n}\n\n/****************************************************\n *\n * Browser Command Handler : Browser Ok\n * Apply selection & exit\n *\n ****************************************************/\nbool BRWD::FCmdOk(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    long sid;\n    long thumSelect;\n\n    _pstdio->SetDisplayCast(fFalse);\n\n    if (ivNil != _ithumSelect)\n    {\n        // Get Selection from virtual function\n        _GetThumFromIthum(_ithumSelect, &thumSelect, &sid);\n\n        // Apply the selection (could take awhile)\n        vapp.BeginLongOp();\n        _ApplySelection(thumSelect, sid);\n        vapp.EndLongOp();\n    }\n\n    // Cleanup & Dismiss browser\n    Release();\n\n    return fTrue;\n}\n\n/****************************************************\n *\n * BRWD _CacheContext\n *\n ****************************************************/\nvoid BRWD::_CacheContext(void)\n{\n    if (_pbrcn != pvNil)\n        _pbrcn->ithumPageFirst = _ithumPageFirst;\n}\n\n/****************************************************\n\n   Browser Lists\n   Derived from the BRWD display class\n\n ****************************************************/\n\n/****************************************************\n *\n * Create a browser list object\n *\n * Returns:\n *  A pointer to the view, else pvNil.\n *\n ****************************************************/\nPBRWL BRWL::PbrwlNew(PRCA prca, long kidPar, long kidGlass)\n{\n    AssertPo(prca, 0);\n\n    PBRWL pbrwl;\n    PGOK pgok;\n    GCB gcb;\n\n    if (!_FBuildGcb(&gcb, kidPar, kidGlass))\n        return pvNil;\n\n    if ((pbrwl = NewObj BRWL(&gcb)) == pvNil)\n        return pvNil;\n\n    // Initialize the gok\n    if (!pbrwl->_FInitGok(prca, kidGlass))\n    {\n        ReleasePpo(&pbrwl);\n        return pvNil;\n    }\n\n    //\n    // Stop the studio action button animation while\n    // any browser is up.\n    //\n    pgok = (PGOK)vapp.Pkwa()->PgobFromHid(kidActorsActionBrowser);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        Assert(pgok->FIs(kclsGOK), \"Invalid class\");\n        pgok->FChangeState(kstFreeze);\n    }\n\n    return pbrwl;\n}\n\n/****************************************************\n *\n * Initialize a browser list object\n *\n * Returns:\n *  A pointer to the view, else pvNil.\n *\n * On Input,\n *\tbws is the browser selection type\n *\tthumSelect is the thumbnail to be hilited\n *\n ****************************************************/\nbool BRWL::FInit(PCMD pcmd, BWS bws, long thumSelect, long sidSelect, CKI ckiRoot, CTG ctgContent, PSTDIO pstdio,\n                 PBRCNL pbrcnl, bool fWrapScroll, long cthumScroll)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    long ithumDisplay;\n    long ccrf = 1;\n    long ithumSelect;\n    bool fBuildGl;\n\n    _bws = bws;\n\n    _kidFrmFirst = pcmd->rglw[1];\n    _cfrm = _CfrmCalc();\n\n    // Initialize the state variables for the browser. This is required for\n    // the creation of the tgobs beneath the call to _FCreateBuildThd below.\n    // The call must be later followed by a call to BRWD::InitFromData().\n    _InitStateVars(pcmd, pstdio, fWrapScroll, cthumScroll);\n\n    if (pvNil == pbrcnl || pbrcnl->brwdid == 0 || pbrcnl->ckiRoot.cno != ckiRoot.cno)\n    {\n        fBuildGl = fTrue;\n\n        // Cache the GOKD's by first creating a\n        // chunky resource manager\n        Assert(pvNil == _pcrm, \"Logic error releasing pcrm\");\n        _pcrm = CRM::PcrmNew(ccrf);\n        if (pvNil == _pcrm)\n            goto LDismiss;\n\n        if (!_FInitNew(pcmd, bws, thumSelect, ckiRoot, ctgContent))\n        {\n            goto LDismiss;\n        }\n        _cthumCD = _pglthd->IvMac();\n    }\n    else\n    {\n        // Reinitialize based on pbrcnl\n        fBuildGl = fFalse;\n\n        _cthumCD = pbrcnl->cthumCD;\n        _pglthd = pbrcnl->pglthd;\n        Assert(_cthumCD == _pglthd->IvMac(), \"Logic error\");\n        _pglthd->AddRef();\n\n        _pgst = pbrcnl->pgst;\n        if (_pgst != pvNil)\n            _pgst->AddRef();\n\n        _pcrm = pbrcnl->pcrm;\n        _pcrm->AddRef();\n        for (long icrf = 0; icrf < _pcrm->Ccrf(); icrf++)\n            _pcrm->PcrfGet(icrf)->SetCbMax(kcbMaxCrm);\n\n        // First thumbnail on display page is inherited\n        _ithumPageFirst = pbrcnl->ithumPageFirst;\n\n        // This will make sure that we build any TGOBs\n        if (!_FCreateBuildThd(ckiRoot, ctgContent, fBuildGl))\n            goto LDismiss;\n    }\n\n    // Context carryover\n    Assert(_pbrcn == pvNil, \"Lost BRCN\");\n    _pbrcn = pbrcnl;\n    if (pvNil != pbrcnl)\n    {\n        _pbrcn->AddRef();\n        pbrcnl->ckiRoot = ckiRoot;\n        if (fBuildGl)\n        {\n            // Rebuilding the GL ->\n            // Remove old context\n            // Save new context later\n\n            /* Release */\n            ReleasePpo(&pbrcnl->pglthd);\n            ReleasePpo(&pbrcnl->pgst);\n            ReleasePpo(&pbrcnl->pcrm);\n        }\n    }\n\n    // Virtual function - used, eg., by sound browser to include user sounds\n    _FUpdateLists();\n\n    ithumSelect = _IthumFromThum(thumSelect, sidSelect);\n    if (fBuildGl)\n    {\n        // Display the selection if one exists\n        if (ithumSelect != ivNil)\n            ithumDisplay = ithumSelect;\n        else\n            ithumDisplay = _IthumFromThum(_thumDefault, _sidDefault);\n    }\n    else\n    {\n        // Display last page shown\n        ithumDisplay = ivNil;\n    }\n\n    // Now initialize the display part of the browser.\n    _InitFromData(pcmd, ithumSelect, ithumDisplay);\n\n    vapp.DisableAccel();\n    _fEnableAccel = fTrue;\n\n    return fTrue;\n\nLDismiss:\n    return fFalse;\n}\n\n/****************************************************\n *\n * Initialization specific to the first time a list\n * browser is invoked\n *\n ****************************************************/\nbool BRWL::_FInitNew(PCMD pcmd, BWS bws, long thumSelect, CKI ckiRoot, CTG ctgContent)\n{\n    AssertThis(0);\n\n    // Selection type\n    _bws = bws;\n\n    // Set the display default\n    _sidDefault = ((APP *)vpappb)->SidProduct();\n    if (!vpappb->FGetProp(kpridBrwsDefaultThum, &_thumDefault))\n    {\n        Warn(\"couldn't get property kpridBrwsDefaultThum\");\n        _thumDefault = 0;\n    }\n\n    // Build the Thd\n    if (!_FCreateBuildThd(ckiRoot, ctgContent))\n    {\n        return fFalse;\n    }\n\n    return fTrue;\n}\n\n/****************************************************\n *\n * Initialization\n * Called each time a browser is either first\n * instantiated or reinvoked.\n *\n * Each browser will have its own cache of gokd's.\n * The cache will vanish when the browser goes\n * away.\n *\n ****************************************************/\nbool BRWL::_FCreateBuildThd(CKI ckiRoot, CTG ctgContent, bool fBuildGl)\n{\n    AssertThis(0);\n\n    _fSinglePar = (ckiRoot.cno != cnoNil);\n    _ckiRoot = ckiRoot;\n    _ctgContent = ctgContent;\n\n    if (fBuildGl)\n    {\n        //\n        // Create the gl's\n        //\n        if (pvNil == (_pglthd = GL::PglNew(size(THD), kglthdGrow)))\n            return fFalse;\n        _pglthd->SetMinGrow(kglthdGrow);\n    }\n\n    if (!_FGetContent(_pcrm, &ckiRoot, ctgContent, fBuildGl))\n        goto LFail;\n\n    if (_Cthum() == 0)\n    {\n        PushErc(ercSocNoThumbnails);\n        return fFalse;\n    }\n\n    if (fBuildGl)\n        _SortThd();\n\n    return fTrue;\nLFail:\n    return fFalse;\n}\n\n/****************************************************\n *\n * BRWL _FGetContent : Enum files & build the THD\n *\n ****************************************************/\nbool BRWL::_FGetContent(PCRM pcrm, CKI *pcki, CTG ctg, bool fBuildGl)\n{\n    AssertThis(0);\n\n    bool fRet = fFalse;\n    PBCL pbcl = pvNil;\n\n    if (!fBuildGl)\n        return fTrue;\n\n    //\n    // Enumerate the files & build the THD\n    //\n    Assert(ctg != cnoNil || pcki->ctg == ctgNil, \"Invalid browser call\");\n\n    pbcl = BCL::PbclNew(pcrm, pcki, ctg, _pglthd);\n    if (pbcl == pvNil)\n        goto LFail;\n\n    /* We passed the pglthd and pgst in, so no need to get them back before\n        releasing the BCLS */\n    Assert(_pglthd->CactRef() > 1, \"GL of THDs will be lost!\");\n\n    fRet = fTrue;\nLFail:\n    ReleasePpo(&pbcl);\n    return fRet;\n}\n\n/****************************************************\n *\n * Get list selection from the ithum\n * Virtual function\n *\n ****************************************************/\nvoid BRWL::_GetThumFromIthum(long ithum, void *pvthumSelect, long *psid)\n{\n    AssertThis(0);\n    AssertIn(ithum, 0, _Cthum());\n    AssertVarMem(psid);\n\n    THD thd{};\n\n    if (_bws == kbwsIndex)\n    {\n        *psid = thd.tag.sid;\n        *((long *)pvthumSelect) = ithum;\n        return;\n    }\n\n    _pglthd->Get(ithum, &thd);\n    *psid = thd.tag.sid;\n\n    switch (_bws)\n    {\n    case kbwsChid:\n        Assert(thd.chid != chidNil, \"Bogus sort order for THD list\");\n        *((CHID *)pvthumSelect) = thd.chid;\n        break;\n    case kbwsCnoRoot:\n        *((CNO *)pvthumSelect) = thd.tag.cno;\n        break;\n    default:\n        Bug(\"Unhandled bws case\");\n    }\n\n    return;\n}\n\n/****************************************************\n *\n * BRWL _CacheContext for reentry into the browser\n *\n ****************************************************/\nvoid BRWL::_CacheContext(void)\n{\n    if (_pbrcn != pvNil)\n    {\n        PBRCNL pbrcnl = (PBRCNL)_pbrcn;\n\n        Assert(pbrcnl->FIs(kclsBRCNL), \"Bad context buffer\");\n\n        BRWL_PAR::_CacheContext();\n\n        if (pbrcnl->pglthd == pvNil)\n        {\n            Assert(pbrcnl->pgst == pvNil, \"Inconsistent state\");\n            Assert(pbrcnl->pcrm == pvNil, \"Inconsistent state\");\n\n            /* Copy */\n            pbrcnl->pglthd = _pglthd;\n            pbrcnl->pgst = _pgst;\n            pbrcnl->pcrm = _pcrm;\n\n            /* AddRef */\n            pbrcnl->pglthd->AddRef();\n            if (pbrcnl->pgst != pvNil)\n                pbrcnl->pgst->AddRef();\n            pbrcnl->pcrm->AddRef();\n        }\n        else\n        {\n            Assert(pbrcnl->pglthd == _pglthd, \"Inconsistent state\");\n            Assert(pbrcnl->pgst == _pgst, \"Inconsistent state\");\n            Assert(pbrcnl->pcrm == _pcrm, \"Inconsistent state\");\n        }\n\n        /* Munge */\n        /* Should never fail, since we should never be growing */\n        AssertDo(pbrcnl->pglthd->FSetIvMac(_cthumCD), \"Tried to grow pglthd (bad) and failed (also bad)\");\n        if (pbrcnl->pgst != pvNil)\n        {\n            long istn;\n\n            istn = pbrcnl->pgst->IstnMac();\n            while (istn > _cthumCD)\n                pbrcnl->pgst->Delete(--istn);\n        }\n        for (long icrf = 0; icrf < _pcrm->Ccrf(); icrf++)\n            _pcrm->PcrfGet(icrf)->SetCbMax(kcbMaxCrm);\n\n        pbrcnl->cthumCD = _cthumCD;\n    }\n}\n\n/****************************************************\n *\n * Sort the Thd gl by _bws\n * Uses bubble sort\n *\n ****************************************************/\nvoid BRWL::_SortThd(void)\n{\n    AssertThis(0);\n\n    long ithd;\n    long jthd;\n    long *plwJ, *plwI;\n    THD thdi;\n    THD thdj;\n    long sid;\n    long jthdMin = 0;\n    bool fSortBySid;\n\n    if (_bws == kbwsIndex)\n        return;\n\n    switch (_bws)\n    {\n    case kbwsChid:\n        Assert(size(thdj.chidThum) == size(long), \"Bad pointer cast\");\n        plwJ = (long *)&thdj.chidThum;\n        plwI = (long *)&thdi.chidThum;\n        fSortBySid = fFalse;\n        break;\n    case kbwsCnoRoot:\n        Assert(size(thdj.tag.cno) == size(long), \"Bad pointer cast\");\n        plwJ = (long *)&thdj.tag.cno;\n        plwI = (long *)&thdi.tag.cno;\n        fSortBySid = fTrue;\n        break;\n    default:\n        Bug(\"Illegal _bws value\");\n    }\n\n    if (fSortBySid && _pglthd->IvMac() > 0)\n    {\n        _pglthd->Get(0, &thdi);\n        sid = thdi.tag.sid;\n    }\n    for (ithd = 1; ithd < _pglthd->IvMac(); ithd++)\n    {\n        _pglthd->Get(ithd, &thdi);\n        if (fSortBySid && thdi.tag.sid != sid)\n        {\n            sid = thdi.tag.sid;\n            jthdMin = ithd;\n        }\n\n        for (jthd = jthdMin; jthd < ithd; jthd++)\n        {\n            _pglthd->Get(jthd, &thdj);\n            if (*plwJ < *plwI)\n                continue;\n\n            // Allow products to share identical content\n            // but only view it once\n            if (*plwJ == *plwI)\n            {\n                long ithdT;\n                THD thdT;\n                if (pvNil != _pgst && thdi.ithd < _pgst->IvMac())\n                {\n                    Assert(thdi.ithd == ithd, \"Logic error cleaning pgst\");\n                    _pgst->Delete(thdi.ithd);\n                }\n\n                for (ithdT = ithd + 1; ithdT < _pglthd->IvMac(); ithdT++)\n                {\n                    _pglthd->Get(ithdT, &thdT);\n                    thdT.ithd--;\n                    _pglthd->Put(ithdT, &thdT);\n                }\n#ifdef DEBUG\n                // Note: Files for the current product was enumerated first.\n                // This determines precedence.\n                if (thdj.tag.sid == _sidDefault || thdi.tag.sid == _sidDefault)\n                    Assert(thdj.tag.sid == _sidDefault, \"Browser deleting the wrong duplicate\");\n#endif // DEBUG\n                _pglthd->Delete(ithd);\n                ithd--;\n                break;\n            }\n            // Switch places\n            _pglthd->Put(ithd, &thdj);\n            _pglthd->Put(jthd, &thdi);\n            _pglthd->Get(ithd, &thdi);\n        }\n    }\n}\n\n/****************************************************\n *\n * Get the index to the Thi for the given selection\n * Note: The selection thumSelect is a cno, chid, etc,\n * not an index into either pgl.\n *\n ****************************************************/\nlong BRWL::_IthumFromThum(long thumSelect, long sidSelect)\n{\n    AssertThis(0);\n\n    long *plw;\n    THD thd;\n\n    if (thumSelect == ivNil)\n        return ivNil;\n\n    switch (_bws)\n    {\n    case kbwsIndex:\n        return thumSelect;\n\n    case kbwsChid:\n        Assert(size(thd.chid) == size(long), \"Bad pointer cast\");\n        plw = (long *)&thd.chid;\n        break;\n\n    case kbwsCnoRoot:\n        Assert(size(thd.tag.cno) == size(long), \"Bad pointer cast\");\n        plw = (long *)&thd.tag.cno;\n        break;\n\n    default:\n        Assert(0, \"Invalid _bws\");\n    }\n\n    for (long ithd = 0; ithd < _pglthd->IvMac(); ithd++)\n    {\n        _pglthd->Get(ithd, &thd);\n        if ((*plw == thumSelect) && (sidSelect == ksidInvalid || thd.tag.sid == sidSelect))\n        {\n            return ithd;\n        }\n    }\n\n    Warn(\"Selection not available\");\n    return ivNil;\n}\n\n/****************************************************\n *\n * Sets the ith Gob as a child of the current frame\n * Advance the gob (thumbnail) index\n *\n ****************************************************/\nbool BRWL::_FSetThumFrame(long ithd, PGOB pgobPar)\n{\n    AssertThis(0);\n    AssertPo(pgobPar, 0);\n\n    THD thd;\n    PGOK pgok;\n    RC rcAbs;\n    RC rcRel;\n    long kidThum;\n\n    // Associate the gob with the current frame\n    _pglthd->Get(ithd, &thd);\n\n    kidThum = _KidThumFromIfrm(_cfrmPageCur);\n    pgok = vapp.Pkwa()->PgokNew(pgobPar, kidThum, thd.cno, _pcrm);\n    if (pvNil == pgok)\n        return fFalse;\n\n    ((PGOB)pgok)->GetPos(&rcAbs, &rcRel);\n    rcAbs.Offset(_dxpFrmOffset, _dypFrmOffset);\n    ((PGOB)pgok)->SetPos(&rcAbs, &rcRel);\n\n    return fTrue;\n}\n\n/****************************************************\n *\n * Release previous thum from frame ifrm\n * Assumes gob based.\n *\n ****************************************************/\nvoid BRWL::_ReleaseThumFrame(long ifrm)\n{\n    AssertThis(0);\n    PGOB pgob;\n\n    // Release previous gob associated with the current frame\n    pgob = _PgobFromIfrm(ifrm);\n    if (pvNil != pgob)\n    {\n        ReleasePpo(&pgob);\n    }\n}\n\n/****************************************************\n *\n * BCL class routines\n *\n ****************************************************/\nPBCL BCL::PbclNew(PCRM pcrm, CKI *pckiRoot, CTG ctgContent, PGL pglthd, bool fOnlineOnly)\n{\n    PBCL pbcl;\n\n    pbcl = NewObj BCL;\n    if (pbcl == pvNil)\n        return pvNil;\n\n    if (!pbcl->_FInit(pcrm, pckiRoot, ctgContent, pglthd))\n        ReleasePpo(&pbcl);\n\n    return pbcl;\n}\n\nbool BCLS::_FInit(PCRM pcrm, CKI *pckiRoot, CTG ctgContent, PGST pgst, PGL pglthd)\n{\n    AssertNilOrPo(pgst, 0);\n\n    if (pgst == pvNil)\n    {\n        if ((pgst = GST::PgstNew()) == pvNil)\n            goto LFail;\n    }\n    else\n        pgst->AddRef();\n    _pgst = pgst;\n\n    if (!BCLS_PAR::_FInit(pcrm, pckiRoot, ctgContent, pglthd))\n        goto LFail;\n\n    return fTrue;\nLFail:\n    return fFalse;\n}\n\nbool BCL::_FInit(PCRM pcrm, CKI *pckiRoot, CTG ctgContent, PGL pglthd)\n{\n    AssertNilOrPo(pcrm, 0);\n    Assert(pckiRoot->ctg != ctgNil, \"Bad CKI\");\n    AssertNilOrPo(pglthd, 0);\n\n    if (pglthd == pvNil)\n    {\n        if ((pglthd = GL::PglNew(size(THD))) == pvNil)\n            goto LFail;\n    }\n    else\n        pglthd->AddRef();\n    _pglthd = pglthd;\n\n    _ctgRoot = pckiRoot->ctg;\n    _cnoRoot = pckiRoot->cno;\n    _ctgContent = ctgContent;\n    _fDescend = _cnoRoot != cnoNil;\n    Assert(!_fDescend || _ctgContent != ctgNil, \"Bad initialization\");\n\n    if (!_FBuildThd(pcrm))\n        goto LFail;\n\n    return fTrue;\nLFail:\n    return fFalse;\n}\n\nPBCLS BCLS::PbclsNew(PCRM pcrm, CKI *pckiRoot, CTG ctgContent, PGL pglthd, PGST pgst, bool fOnlineOnly)\n{\n    PBCLS pbcls;\n\n    pbcls = NewObj BCLS;\n    if (pbcls == pvNil)\n        goto LFail;\n\n    if (!pbcls->_FInit(pcrm, pckiRoot, ctgContent, pgst, pglthd))\n        ReleasePpo(&pbcls);\n\nLFail:\n    return pbcls;\n}\n\n/****************************************************\n *\n * Enumerate thumbnail files & create the THD\n * (Thumbnail descriptor gl)\n *\n * Note: In the case of actions & views, this is one\n * entry.\n * Input: fBuildGl is false if only the pcrm requires\n * initialization; otherwise the _pglthd is built.\n *\n * Sort based on _bws (browser selection flag)\n *\n ****************************************************/\nbool BCL::_FBuildThd(PCRM pcrm)\n{\n    AssertThis(0);\n    AssertNilOrPo(pcrm, 0);\n\n    bool fRet = fTrue;\n    PCFL pcfl;\n    long sid;\n    FNET fnet;\n    FNI fniThd;\n\n    if (!fnet.FInit())\n        return fFalse;\n    while (fnet.FNext(&fniThd, &sid) && fRet)\n    {\n        if (fniThd.Ftg() != kftgThumbDesc)\n            continue;\n        pcfl = CFL::PcflOpen(&fniThd, fcflNil);\n        if (pvNil == pcfl)\n        {\n            // Error reported elsewhere\n            continue;\n        }\n\n        /* Don't use this file if it doesn't have what we're looking for */\n        if (_fDescend ? !pcfl->FFind(_ctgRoot, _cnoRoot) : pcfl->CckiCtg(_ctgRoot) == 0)\n        {\n            goto LContinue;\n        }\n\n        // Add the file to the crm\n        if (pcrm != pvNil && !pcrm->FAddCfl(pcfl, kcbMaxCrm))\n        {\n            // fatal error\n            fRet = fFalse;\n            goto LContinue;\n        }\n\n        if (!_FAddFileToThd(pcfl, sid))\n        {\n            // Error issued elsewhere\n            fRet = fFalse;\n            goto LContinue;\n        }\n\n    LContinue:\n        ReleasePpo(&pcfl);\n    }\n\n    return fRet;\n}\n\n/****************************************************\n *\n *  Add the chunks of file pcfl to the THD\n *\n *\tRequires pre-definition of _ckiRoot, _ctgContent\n *\n *\tFiltering is based on ctg, cno, but not chid\n *\tA value of cnoNil => wild card search\n *\n ****************************************************/\nbool BCL::_FAddFileToThd(PCFL pcfl, long sid)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n\n    long ickiRoot;\n    long cckiRoot;\n    CKI ckiRoot;\n    KID kidPar;\n    long ikidPar;\n    long ckidPar;\n\n    Assert(ctgNil != _ctgRoot, \"Illegal call\");\n\n    if (!_fDescend)\n        cckiRoot = pcfl->CckiCtg(_ctgRoot);\n    else\n    {\n        ckiRoot.ctg = _ctgRoot;\n        ckiRoot.cno = _cnoRoot;\n        cckiRoot = 1;\n    }\n\n    // For each grandparent, define ckiRoot\n    for (ickiRoot = 0; ickiRoot < cckiRoot; ickiRoot++)\n    {\n        if (!_fDescend)\n        {\n            // Get the cki of the grandparent\n            if (!pcfl->FGetCkiCtg(_ctgRoot, ickiRoot, &ckiRoot))\n                return fFalse;\n\n            //\n            // If only one level of parent specified in the search\n            // then add the gokd from this parent and continue\n            //\n            if (!_FAddGokdToThd(pcfl, sid, &ckiRoot))\n                return fFalse;\n            continue;\n        }\n\n        //\n        // Drop down one more level\n        //\n        if (!pcfl->FFind(ckiRoot.ctg, ckiRoot.cno))\n            continue;\n\n        ckidPar = pcfl->Ckid(ckiRoot.ctg, ckiRoot.cno);\n\n        for (ikidPar = 0; ikidPar < ckidPar; ikidPar++)\n        {\n            if (!pcfl->FGetKid(ckiRoot.ctg, ckiRoot.cno, ikidPar, &kidPar))\n                return fFalse;\n\n            if (kidPar.cki.ctg != _ctgContent)\n                continue;\n\n            // On failure, continue to add other files\n            // Error reported elsewhere\n            _FAddGokdToThd(pcfl, sid, &kidPar);\n        }\n    }\n\n    return fTrue;\n}\n\nbool BCL::_FAddGokdToThd(PCFL pcfl, long sid, CKI *pcki)\n{\n    KID kid;\n\n    kid.cki = *pcki;\n    kid.chid = chidNil;\n    return _FAddGokdToThd(pcfl, sid, &kid);\n}\n\n/****************************************************\n *\n *  Add a single GOKD to the THD\n *\tThe GOKD is a child of ckiPar.\n *  cnoPar is read from the ckiPar chunk\n *\n ****************************************************/\nbool BCL::_FAddGokdToThd(PCFL pcfl, long sid, KID *pkid)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n    AssertVarMem(pkid);\n\n    CKI cki = pkid->cki;\n    KID kid;\n    THD thd;\n    BLCK blck;\n    TFC tfc;\n\n    // Read the Par chunk to find the cno of the CD content\n    if (!pcfl->FFind(cki.ctg, cki.cno, &blck) || !blck.FUnpackData())\n    {\n        goto LFail;\n    }\n    if (blck.Cb() != size(TFC))\n        goto LFail;\n    if (!blck.FReadRgb(&tfc, size(TFC), 0))\n        goto LFail;\n    if (kboCur != tfc.bo)\n        SwapBytesBom(&tfc, kbomTfc);\n    Assert(kboCur == tfc.bo, \"bad TFC\");\n    if (!_fDescend)\n    {\n        thd.tag.cno = tfc.cno;\n        thd.tag.ctg = tfc.ctg;\n    }\n    else\n    {\n        thd.tag.ctg = tfc.ctg;\n        thd.chid = tfc.chid;\n    }\n\n    Assert(thd.grfontMask == tfc.grfontMask, \"Font style browser broken\");\n    Assert(thd.grfont == tfc.grfont, \"Font style browser broken\");\n\n    thd.tag.sid = sid;\n    thd.chidThum = pkid->chid;\n    if (pcfl->FGetKidChidCtg(cki.ctg, cki.cno, 0, kctgGokd, &kid))\n        thd.cno = kid.cki.cno;\n    else\n    {\n        // If there are no GOKD children, enter the reference to the named\n        // parent chunk\n        thd.cno = tfc.cno;\n    }\n\n    thd.ithd = _pglthd->IvMac();\n    if (!_pglthd->FInsert(thd.ithd, &thd))\n        goto LFail;\n\n    return fTrue;\nLFail:\n    return fFalse;\n}\n\nbool BCLS::_FAddGokdToThd(PCFL pcfl, long sid, KID *pkid)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n    AssertVarMem(pkid);\n\n    if (!_FSetNameGst(pcfl, pkid->cki.ctg, pkid->cki.cno))\n        goto LFail;\n\n    if (!BCLS_PAR::_FAddGokdToThd(pcfl, sid, pkid))\n        goto LFail;\n\n    return fTrue;\nLFail:\n    return fFalse;\n}\n\n/****************************************************\n *\n * Save the name of the Par chunk in the Gst\n *\n ****************************************************/\nbool BCLS::_FSetNameGst(PCFL pcfl, CTG ctg, CNO cno)\n{\n    AssertThis(0);\n    AssertPo(pcfl, 0);\n    STN stn;\n\n    if (!pcfl->FGetName(ctg, cno, &stn))\n        return fFalse;\n    if (!_pgst->FAddStn(&stn))\n        return fFalse;\n    return fTrue;\n}\n\n/****************************************************\n *\n * Enumerate thumbnail files\n *\n * Initialization\n *\n ****************************************************/\nbool FNET::FInit(void)\n{\n    AssertThis(0);\n\n    FTG ftgThd = kftgThumbDesc;\n\n    vapp.GetFniProduct(&_fniDirProduct); // look for THD files in the product FIRST\n    _fniDir = _fniDirProduct;\n    _fniDirMSK = _fniDirProduct;\n    _fInitMSKDir = fTrue;\n\n    if (!_fniDirMSK.FUpDir(pvNil, ffniMoveToDir))\n        return fFalse;\n    if (!_fne.FInit(&_fniDir, &ftgThd, 1))\n        return fFalse;\n    _fInited = fTrue;\n    return fTrue;\n}\n\n/****************************************************\n *\n * Enumerate thumbnail files\n *\n * Return the fni & (optionally) the sid\n * Note: _idir == 0 -> current product\n *\n ****************************************************/\nbool FNET::FNext(FNI *pfni, long *psid)\n{\n    AssertThis(0);\n    AssertPo(pfni, 0);\n    AssertNilOrVarMem(psid);\n\n    FTG ftgThd = kftgThumbDesc;\n    FTG ftgDir = kftgDir;\n    STN stnProduct;\n\n    if (!_fInited)\n        return fFalse;\n\n    // Return files from currently enumerated directory\n    // Note: This returns files from current product before\n    // initializing _fneDir\n    if (_FNextFni(pfni, psid))\n        return fTrue;\n\n    if (_fInitMSKDir)\n    {\n        if (!_fneDir.FInit(&_fniDirMSK, &ftgDir, 1))\n            return fFalse;\n        _fInitMSKDir = fFalse;\n    }\n\n    while (_fneDir.FNextFni(&_fniDir))\n    {\n        if (_fniDir.FSameDir(&_fniDirProduct)) // already enumerated\n            continue;\n\n        if (!_fne.FInit(&_fniDir, &ftgThd, 1)) // Initialize the file enumeration\n            return fFalse;\n        if (_FNextFni(pfni, psid))\n            return fTrue;\n    }\n\n    return fFalse; // all done\n}\n\n/****************************************************\n *\n * Gets the file from the current FNET enumeration\n * This uses the current fne.\n *\n ****************************************************/\nbool FNET::_FNextFni(FNI *pfni, long *psid)\n{\n    AssertThis(0);\n    STN stnProduct;\n\n    Assert(_fniDir.Ftg() == kftgDir, \"Logic error\");\n    if (pvNil != psid)\n    {\n        if (!_fniDir.FUpDir(&stnProduct, ffniNil))\n            return fFalse;\n        if (!vptagm->FGetSid(&stnProduct, psid))\n            return fFalse;\n    }\n\n    return (_fne.FNextFni(pfni));\n}\n\n/****************************************************\n *\n * BRWN Initialization\n * -> BRWL Initialization plus tgob creation\n *\n ****************************************************/\nbool BRWN::FInit(PCMD pcmd, BWS bws, long thumSelect, long sidSelect, CKI ckiRoot, CTG ctgContent, PSTDIO pstdio,\n                 PBRCNL pbrcnl, bool fWrapScroll, long cthumScroll)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (!BRWN_PAR::FInit(pcmd, bws, thumSelect, sidSelect, ckiRoot, ctgContent, pstdio, pbrcnl, fWrapScroll,\n                         cthumScroll))\n    {\n        return fFalse;\n    }\n\n    if (!FCreateAllTgob())\n        return fFalse;\n    return fTrue;\n}\n\n/****************************************************\n *\n * Build the thd\n *\n ****************************************************/\nbool BRWN::_FGetContent(PCRM pcrm, CKI *pcki, CTG ctg, bool fBuildGl)\n{\n    AssertThis(0);\n\n    bool fRet = fFalse;\n    PBCLS pbcls = pvNil;\n\n    if (!fBuildGl)\n    {\n        return fTrue;\n    }\n\n    if (pvNil == (_pgst = GST::PgstNew(0)))\n        goto LFail;\n\n    //\n    // Enumerate the files & build the THD\n    //\n    Assert(ctg != cnoNil || pcki->ctg == ctgNil, \"Invalid browser call\");\n\n    pbcls = BCLS::PbclsNew(pcrm, pcki, ctg, _pglthd, _pgst);\n    if (pbcls == pvNil)\n        goto LFail;\n\n    /* We passed the pglthd and pgst in, so no need to get them back before\n        releasing the BCLS */\n    Assert(_pglthd->CactRef() > 1, \"GL of THDs will be lost!\");\n    Assert(_pgst->CactRef() > 1, \"GST will be lost!\");\n\n    fRet = fTrue;\nLFail:\n    ReleasePpo(&pbcls);\n    return fRet;\n}\n\n/****************************************************\n *\n * Removes the text from the unused tgob\n *\n ****************************************************/\nvoid BRWN::_ReleaseThumFrame(long ifrm)\n{\n    AssertThis(0);\n    AssertIn(ifrm, 0, _cfrm);\n\n    STN stn;\n    PGOB pgob;\n\n    pgob = _PgobFromIfrm(ifrm);\n    if (pvNil != pgob)\n    {\n        stn.SetNil();\n        ((PTGOB)pgob)->SetText(&stn);\n    }\n\n    // The BRWN class retains the tgob while the browser is up\n}\n\n/****************************************************\n *\n * Sets the ith text item in the child of the\n * current frame\n *\n ****************************************************/\nbool BRWN::_FSetThumFrame(long ithd, PGOB pgobPar)\n{\n    AssertThis(0);\n    AssertIn(ithd, 0, _pglthd->IvMac());\n    AssertPo(pgobPar, 0);\n\n    PTGOB ptgob;\n    STN stnLabel;\n    THD thd;\n\n    _pglthd->Get(ithd, &thd);\n    _pgst->GetStn(thd.ithd, &stnLabel);\n    ptgob = (PTGOB)(pgobPar->PgobFirstChild());\n\n    Assert(pvNil != ptgob, \"No TGOB for the text\");\n    if (pvNil != ptgob)\n        ptgob->SetText(&stnLabel);\n\n    return fTrue;\n}\n\n/****************************************************\n *\n * Browser Command Handler : Browser Ok\n * Apply selection & exit\n *\n ****************************************************/\nbool BRWN::FCmdOk(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (ivNil == _ithumSelect)\n    {\n        TAG tag;\n        PMVU pmvu;\n        pmvu = (PMVU)(_pstdio->Pmvie()->PddgGet(0));\n        tag.sid = ksidInvalid;\n        tag.pcrf = pvNil;\n        pmvu->SetTagTool(&tag); // No need to close tag with ksidInvalid\n    }\n\n    if (BRWD::FCmdOk(pcmd))\n    {\n        //\n        // Stop any playing sounds in a sound browser.  We do\n        // not stop playing sounds in non-sound browsers,\n        // because the selection sound may be playing.\n        //\n        vpsndm->StopAll();\n        return fTrue;\n    }\n\n    return fFalse;\n}\n\n/****************************************************\n *\n * Create a BRoWser Music Sound object\n *\n ****************************************************/\nPBRWM BRWM::PbrwmNew(PRCA prca, long kidGlass, long sty, PSTDIO pstdio)\n{\n    AssertPo(prca, 0);\n    AssertPo(pstdio, 0);\n\n    PBRWM pbrwm;\n    GCB gcb;\n\n    if (!_FBuildGcb(&gcb, kidBackground, kidGlass))\n        return pvNil;\n\n    if ((pbrwm = NewObj BRWM(&gcb)) == pvNil)\n        return pvNil;\n\n    // Initialize the gok\n    if (!pbrwm->_FInitGok(prca, kidGlass))\n    {\n        ReleasePpo(&pbrwm);\n        return pvNil;\n    }\n\n    pbrwm->_sty = sty;\n    pbrwm->_pstdio = pstdio;\n    if (!pstdio->Pmvie()->FEnsureAutosave(&pbrwm->_pcrf))\n    {\n        ReleasePpo(&pbrwm);\n        return pvNil;\n    }\n\n    pbrwm->_ptgobPage = TGOB::PtgobCreate(kidBrowserPageNum, idsBrwsPageFont, tavCenter);\n    return pbrwm;\n}\n\n/****************************************************\n *\n * Add all of the sounds of the movie from _pcrf\n * to the current BRWL lists:\n *\tpglthd, pgst\n *\n * Used at initialization time by both the BRWI and\n * the BRWM classes.\n *\n * It is assumed that initialization has created\n * (if empty) lists at this point.\n *\n ****************************************************/\nbool BRWM::_FUpdateLists(void)\n{\n    AssertThis(0);\n\n    STN stn;\n    THD thd;\n    long ithd;\n    long ithdOld;\n    long ccki;\n    long icki;\n    CKI cki;\n    TAG tag;\n    PMSND pmsnd = pvNil;\n    PCFL pcfl = _pcrf->Pcfl();\n\n    // Enum through current movie for user sounds\n    // For each\tone, extend the lists to include the new sound\n\n    ccki = pcfl->CckiCtg(kctgMsnd);\n    for (icki = 0; icki < ccki; icki++)\n    {\n        if (!pcfl->FGetCkiCtg(kctgMsnd, icki, &cki))\n            goto LNext;\n        tag.sid = ksidUseCrf; // Non-CD-loaded content\n        tag.pcrf = _pcrf;\n        tag.ctg = kctgMsnd;\n        tag.cno = cki.cno;\n\n        // Read the msnd chunk and continue if sty's do not match\n        pmsnd = (PMSND)vptagm->PbacoFetch(&tag, MSND::FReadMsnd);\n        if (pvNil == pmsnd)\n            goto LNext;\n\n        // Don't add user sounds multiple times on mult reinstantiations\n        if (_FSndListed(cki.cno, &ithdOld))\n        {\n            if (pmsnd->FValid())\n                goto LNext;\n            // Remove invalid snds from the lists\n            _pglthd->Delete(ithdOld);\n            _pgst->Delete(ithdOld);\n            for (ithd = ithdOld; ithd < _pglthd->IvMac(); ithd++)\n            {\n                _pglthd->Get(ithd, &thd);\n                thd.ithd--;\n                _pglthd->Put(ithd, &thd);\n            }\n            goto LNext;\n        }\n\n        if (_sty != pmsnd->Sty())\n            goto LNext;\n\n        if (!pmsnd->FValid())\n            goto LNext;\n\n        if (!pcfl->FGetName(kctgMsnd, cki.cno, &stn))\n            goto LNext;\n\n        if (!_FAddThd(&stn, &cki))\n            goto LNext;\n\n    LNext:\n        ReleasePpo(&pmsnd);\n    }\n    return fTrue;\n}\n\n/****************************************************\n *\n * Test to see if a sound is already in the lists\n *\n ****************************************************/\nbool BRWM::_FSndListed(CNO cno, long *pithd)\n{\n    AssertBaseThis(0);\n\n    long ithd;\n    THD *pthd;\n\n    for (ithd = _cthumCD; ithd < _pglthd->IvMac(); ithd++)\n    {\n        pthd = (THD *)_pglthd->QvGet(ithd);\n        if (pthd->tag.cno == cno)\n        {\n            if (pvNil != pithd)\n                *pithd = ithd;\n            return fTrue;\n        }\n    }\n    return fFalse;\n}\n\n/****************************************************\n *\n * Extend the BRWL lists\n *\n ****************************************************/\nbool BRWM::_FAddThd(STN *pstn, CKI *pcki)\n{\n    AssertBaseThis(0);\n    THD thd;\n\n    if (!_pgst->FAddStn(pstn))\n        return fFalse;\n    ;\n\n    thd.tag.sid = ksidUseCrf;\n    thd.tag.pcrf = _pcrf;\n    thd.tag.ctg = pcki->ctg;\n    thd.tag.cno = pcki->cno;\n    thd.cno = cnoNil;       // unused\n    thd.chidThum = chidNil; // unused\n    thd.ithd = _pglthd->IvMac();\n    if (!_pglthd->FAdd(&thd))\n        goto LFail1;\n\n    return fTrue;\nLFail1:\n    _pgst->Delete(_pgst->IstnMac() - 1);\n    return fFalse;\n}\n\n/****************************************************\n *\n * Process Browser Music Selection\n * Process selection from either main sound browser or\n * Import sound browser\n *\n ****************************************************/\nvoid BRWM::_ProcessSelection(void)\n{\n    AssertThis(0);\n    PMSND pmsnd;\n    TAG tag;\n    long thumSelect;\n    long sid;\n\n    // Get Selection from virtual function\n    _GetThumFromIthum(_ithumSelect, &thumSelect, &sid);\n\n    tag.sid = sid;\n    tag.pcrf = (ksidUseCrf == sid) ? _pcrf : pvNil;\n    tag.ctg = kctgMsnd;\n    tag.cno = (CNO)thumSelect;\n\n    if (!vptagm->FCacheTagToHD(&tag))\n    {\n        Warn(\"cache tag failed\");\n        return;\n    }\n\n    pmsnd = (PMSND)vptagm->PbacoFetch(&tag, MSND::FReadMsnd);\n\n    if (pvNil == pmsnd)\n        return;\n    pmsnd->Play(0, fFalse, fFalse, pmsnd->Vlm(), fTrue);\n    ReleasePpo(&pmsnd);\n\n    return;\n}\n\n/****************************************************\n *\n * Browser Command Handler : (For importing sounds)\n * This command will be generated following portfolio\n * execution\n *\n ****************************************************/\nbool BRWM::FCmdFile(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    FNI fni;\n    long kidBrws;\n    PFIL pfil = pvNil; // Wave or midi file\n    PCFL pcfl = pvNil; // Movie file\n    long icki;\n    long ccki;\n    STN stn;\n    CKI cki;\n    CMD cmd;\n\n    vapp.GetPortfolioDoc(&fni);\n    vpappb->BeginLongOp();\n\n    switch (fni.Ftg())\n    {\n    case kftgMidi:\n        // The non-score browsers only import wav files\n        Assert(_sty == styMidi, \"Portfolio should filter out Wave for this browser\");\n        if (_sty != styMidi)\n            goto LEnd;\n        cki.ctg = kctgMidi;\n        break;\n\n    case kftgWave:\n        Assert(_sty != styMidi, \"Portfolio should filter out Midi for this browser\");\n        // The score browser does not import wave files\n        if (_sty == styMidi)\n            goto LEnd;\n        cki.ctg = kctgWave;\n        break;\n\n    case kftg3mm:\n    default:\n        // Import <user> sounds from a movie\n        // Verify version numbers before accepting this file\n        pcfl = CFL::PcflOpen(&fni, fcflNil);\n\n        if (pvNil == pcfl)\n            goto LEnd;\n        if (!_pstdio->Pmvie()->FVerifyVersion(pcfl))\n        {\n            goto LEnd; // Erc already pushed\n        }\n\n        ccki = pcfl->CckiCtg(kctgMsnd);\n        if (ccki == 0)\n        {\n            // There may be sounds in the new movie, but no user sounds\n            PushErc(ercSocNoKidSndsInMovie);\n            goto LEnd;\n        }\n\n        // Are the user sounds valid?\n        for (icki = 0; icki < ccki; icki++)\n        {\n            bool fInvalid;\n            long sty;\n            if (!pcfl->FGetCkiCtg(kctgMsnd, icki, &cki))\n                goto LEnd;\n            if (!MSND::FGetMsndInfo(pcfl, kctgMsnd, cki.cno, &fInvalid, &sty))\n                goto LEnd;\n\n            if (!fInvalid && sty == _sty)\n                goto LValidSnds; // There are valid user snds\n        }\n\n        PushErc(ercSocNoKidSndsInMovie);\n        goto LEnd;\n\n    LValidSnds:\n        // Bring up a new import browser on top of this one\n        // Launch the script\n        switch (_sty)\n        {\n        case stySfx:\n            kidBrws = kidBrwsImportFX;\n            break;\n        case stySpeech:\n            kidBrws = kidBrwsImportSpeech;\n            break;\n        case styMidi:\n            kidBrws = kidBrwsImportMidi;\n            break;\n        default:\n            Assert(0, \"Invalid _sty in browser\");\n            break;\n        }\n        // Tell the script to launch the import browser & send a\n        // cidBrowserReady to kidBrws when ready\n        vpcex->EnqueueCid(cidLaunchImport, pvNil, pvNil, kidBrws);\n        goto LEnd;\n        break;\n    }\n\n    // Import sound from a wave or midi file\n    pfil = FIL::PfilOpen(&fni);\n    if (pvNil == pfil)\n        goto LEnd; // Error will have been reported\n\n    // Read the file & store as a chunk\tin the current movie\n    if (!_pstdio->Pmvie()->FCopySndFileToMvie(pfil, _sty, &cki.cno))\n        goto LEnd; // Error will have been reported\n\n    // Add (eg) the movie sounds from &fni to the current\n    // browser lists, which are BRWL derived.\n    cki.ctg = kctgMsnd;\n    fni.GetLeaf(&stn); // name of sound\n    if (!_FAddThd(&stn, &cki))\n        goto LEnd;\n\n    // Select the item, extend lists, hilite it\t& redraw\n    cmd.rglw[0] = cki.cno;\n    cmd.rglw[1] = ksidUseCrf;\n    cmd.rglw[2] = 1; // Hilite\n    cmd.rglw[3] = 0; // Lists already updated\n    if (!FCmdSelectThum(&cmd))\n        goto LEnd;\n\nLEnd:\n    vpappb->EndLongOp();\n    ReleasePpo(&pcfl);\n    ReleasePpo(&pfil);\n    return fTrue;\n}\n\n/****************************************************\n *\n * Browser Command Handler : (For deleting user snds)\n *\n ****************************************************/\nbool BRWM::FCmdDel(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    long sid;\n    TAG tag;\n    PTAG ptag;\n    PMSND pmsnd;\n    STN stnErr;\n    STN stnSnd;\n    PMVU pmvu;\n\n    if (_ithumSelect < _cthumCD)\n        return fTrue; // CD Sounds cannot be deleted\n\n    pmvu = (PMVU)(_pstdio->Pmvie()->PddgGet(0));\n    AssertPo(pmvu, 0);\n    _pgst->GetStn(_ithumSelect, &stnSnd);\n\n    // Display the sound name in the help topic.\n    AssertDo(vapp.FGetStnApp(idsDeleteSound, &stnErr), \"String not present\");\n    if (vapp.TModal(vapp.PcrmAll(), ktpcQuerySoundDelete, &stnErr, bkYesNo, kstidQuerySoundDelete, &stnSnd) != tYes)\n    {\n        return fTrue;\n    }\n\n    // Delete the midi or wave child chunk from the msnd\n    // Invalidate the sound\n    tag.sid = ksidUseCrf; // Non-CD-loaded content\n    tag.pcrf = _pcrf;\n    tag.ctg = kctgMsnd;\n    _GetThumFromIthum(_ithumSelect, &tag.cno, &sid);\n\n    pmsnd = (PMSND)vptagm->PbacoFetch(&tag, MSND::FReadMsnd);\n    if (pvNil == pmsnd)\n        return fTrue;\n\n    if (!pmsnd->FInvalidate())\n        Warn(\"Error invalidating sound\");\n    ReleasePpo(&pmsnd);\n\n    if (!_FUpdateLists())\n    {\n        Release(); // Release browser; labels might be wrong\n        return fTrue;\n    }\n\n    if (_ithumPageFirst >= _pglthd->IvMac())\n        _ithumPageFirst--;\n    if (_ithumPageFirst < 0)\n        _ithumPageFirst = 0;\n\n    _ithumSelect = ivNil;\n\n    // Clear the selection if deleted\n    tag.sid = ksidInvalid;\n    ptag = pmvu->PtagTool();\n    if (ptag->sid == ksidUseCrf && ptag->cno == tag.cno)\n    {\n        pmvu->SetTagTool(&tag); // No need to close tag with ksidInvalid\n    }\n    else if (ptag->sid != ksidInvalid)\n    {\n        // Show current cursor selection\n        _ithumSelect = _IthumFromThum(ptag->cno, ptag->sid);\n    }\n\n    _SetScrollState(); // Set the state of the scroll arrows\n    _pstdio->Pmvie()->Pmsq()->StopAll();\n    FDraw();\n    return fTrue;\n}\n\n/****************************************************\n *\n * Create a browser text object\n *\n * Returns:\n *\tA pointer to the object, else pvNil.\n *\n ****************************************************/\nPBRWT BRWT::PbrwtNew(PRCA prca, long kidPar, long kidGlass)\n{\n    AssertPo(prca, 0);\n\n    PBRWT pbrwt;\n    GCB gcb;\n\n    if (!_FBuildGcb(&gcb, kidPar, kidGlass))\n        return pvNil;\n\n    if ((pbrwt = NewObj BRWT(&gcb)) == pvNil)\n        return pvNil;\n\n    // Initialize the gok\n    if (!pbrwt->_FInitGok(prca, kidGlass))\n    {\n        ReleasePpo(&pbrwt);\n        return pvNil;\n    }\n\n    pbrwt->_pgst = pvNil;\n\n    return pbrwt;\n}\n\n/****************************************************\n *\n * Set the Gst for BRWT text\n *\n ****************************************************/\nvoid BRWT::SetGst(PGST pgst)\n{\n    AssertThis(0);\n    AssertPo(pgst, 0);\n\n    ReleasePpo(&_pgst);\n\n    _pgst = pgst;\n    _pgst->AddRef();\n}\n\n/****************************************************\n *\n * Initialize BRWT TGOB & text\n *\n ****************************************************/\nbool BRWT::FInit(PCMD pcmd, long thumSelect, long thumDisplay, PSTDIO pstdio, bool fWrapScroll, long cthumScroll)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    BRWD::Init(pcmd, thumSelect, thumDisplay, pstdio, fWrapScroll, cthumScroll);\n\n    //\n    // Create the tgob's for each frame on the page\n    //\n    if (!FCreateAllTgob())\n        return fFalse;\n\n    vapp.DisableAccel();\n    _fEnableAccel = fTrue;\n\n    return fTrue;\n}\n\n/****************************************************\n *\n * Sets the ith text item in the child of the\n * current frame\n *\n ****************************************************/\nbool BRWT::_FSetThumFrame(long istn, PGOB pgobPar)\n{\n    AssertThis(0);\n    AssertIn(istn, 0, _pgst->IvMac());\n    AssertPo(pgobPar, 0);\n\n    PTGOB ptgob;\n    STN stnLabel;\n\n    _pgst->GetStn(istn, &stnLabel);\n    ptgob = (PTGOB)(pgobPar->PgobFirstChild());\n\n    Assert(pvNil != ptgob, \"No TGOB for the text\");\n    if (pvNil != ptgob)\n    {\n        Assert(ptgob->FIs(kclsTGOB), \"GOB isn't a TGOB\");\n        if (ptgob->FIs(kclsTGOB))\n        {\n            ptgob->SetText(&stnLabel);\n            return fTrue;\n        }\n    }\n\n    return fFalse;\n}\n\n/****************************************************\n *\n * Create a BRoWser ActioN object\n *\n * Returns:\n *  A pointer to the view, else pvNil.\n *\n ****************************************************/\nPBRWA BRWA::PbrwaNew(PRCA prca)\n{\n    AssertPo(prca, 0);\n\n    PBRWA pbrwa;\n    PGOK pgok;\n    GCB gcb;\n\n    if (!_FBuildGcb(&gcb, kidBackground, kidActionGlass))\n        return pvNil;\n\n    if ((pbrwa = NewObj BRWA(&gcb)) == pvNil)\n        return pvNil;\n\n    // Initialize the gok\n    if (!pbrwa->_FInitGok(prca, kidActionGlass))\n    {\n        ReleasePpo(&pbrwa);\n        return pvNil;\n    }\n\n    //\n    // Stop the action browser animation while the browser is up.\n    //\n    pgok = (PGOK)vapp.Pkwa()->PgobFromHid(kidActorsActionBrowser);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        Assert(pgok->FIs(kclsGOK), \"Invalid class\");\n        pgok->FChangeState(kstSelected);\n    }\n\n    pbrwa->_ptgobPage = TGOB::PtgobCreate(kidBrowserPageNum, idsBrwsPageFont, tavCenter);\n    return pbrwa;\n}\n\n/****************************************************\n *\n * Build the ape\n *\n ****************************************************/\nbool BRWA::FBuildApe(PACTR pactr)\n{\n    AssertThis(0);\n    AssertPo(pactr, 0);\n\n    COST cost;\n    PGOK pgokFrame;\n    RC rcRel;\n    GCB gcb;\n\n    if (!cost.FGet(pactr->Pbody()))\n        return fFalse;\n    pgokFrame = (PGOK)vapp.Pkwa()->PgobFromHid(kidBrwsActionPrev);\n    Assert(pgokFrame->FIs(kclsGOK), \"Invalid class\");\n    rcRel.Set(krelZero, krelZero, krelOne, krelOne);\n    gcb.Set(kidBrwsActionPrev, pgokFrame, fgobNil, kginDefault, pvNil, &rcRel);\n    _pape = APE::PapeNew(&gcb, pactr->Ptmpl(), &cost, pactr->AnidCur(), fTrue);\n    if (pvNil == _pape)\n        return fFalse;\n    return fTrue;\n}\n\n/***************************************************************************\n *\n * Build the string table for actions prior to action initialization\n * Transfer the string table to BRWA\n *\n * NOTE:  The string table is built from the template as the code already\n * has action names cached on the hard drive for selected actors. The\n * string table is built for fast scrolling.\n *\n **************************************************************************/\nbool BRWA::FBuildGst(PSCEN pscen)\n{\n    AssertThis(0);\n\n    STN stn;\n    PTMPL ptmpl;\n    long cactn;\n    long iactn;\n    PGST pgst;\n\n    Assert(pvNil != pscen && pvNil != pscen->PactrSelected(), \"kidBrwsAction: Invalid actor\");\n\n    ptmpl = pscen->PactrSelected()->Ptmpl();\n    Assert(pvNil != ptmpl, \"Actor has no template\");\n\n    if (pvNil == (pgst = GST::PgstNew(0)))\n        return fFalse;\n\n    cactn = ptmpl->Cactn();\n    for (iactn = 0; iactn < cactn; iactn++)\n    {\n        if (!ptmpl->FGetActnName(iactn, &stn))\n            goto LFail;\n        if (!pgst->FAddStn(&stn))\n            goto LFail;\n    }\n\n    SetGst(pgst);\n    ReleasePpo(&pgst);\n\n    if (!FBuildApe(pscen->PactrSelected()))\n        goto LFail;\n\n    if (!ptmpl->FIsTdt())\n        _pape->SetCustomView(BR_ANGLE_DEG(0.0), BR_ANGLE_DEG(-30.0), BR_ANGLE_DEG(0.0));\n\n    return fTrue;\n\nLFail:\n    ReleasePpo(&pgst);\n    return fFalse;\n}\n\n/****************************************************\n *\n * Process Browser Action Selection\n *\n ****************************************************/\nvoid BRWA::_ProcessSelection(void)\n{\n    AssertThis(0);\n    _pape->FSetAction(_ithumSelect);\n    _pape->SetCycleCels(fTrue);\n    _pape->FDisplayCel(_celnStart); // Restart cycling at current display\n    _celnStart = 0;                 // When applying action, apply celn == 0\n}\n\n/****************************************************\n *\n * Browser Command Handler : Change cel (action brws)\n * pcmd->rglw[0] = kid of Change, Fwd, Back\n * pcmd->rglw[1] = bool reflection start/stop change cel\n *\n * Make button(s) invisible on single cel actions\n *\n ****************************************************/\nbool BRWA::FCmdChangeCel(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    long st;\n    long ccel;\n    PACTR pactr = _pstdio->Pmvie()->Pscen()->PactrSelected();\n\n    if (!pactr->Ptmpl()->FGetCcelActn(_pape->Anid(), &ccel))\n        return fTrue;\n\n    if (1 == ccel)\n        st = kstBrowserInvisible;\n    else\n        st = kstBrowserSelected;\n\n    if (_pape->FIsCycleCels())\n    {\n        _pape->SetCycleCels(fFalse);\n        _celnStart = _pape->Celn();\n    }\n\n    if (1 == ccel)\n        return fTrue;\n\n    switch (pcmd->rglw[0])\n    {\n    case kidBrowserActionFwdCel:\n        _celnStart++;\n        _pape->FDisplayCel(_celnStart);\n        break;\n    case kidBrowserActionBackCel:\n        _celnStart--;\n        _pape->FDisplayCel(_celnStart);\n        break;\n    default:\n        Bug(\"Unimplemented Change Cel kid\");\n        break;\n    }\n    return fTrue;\n}\n\n/****************************************************\n *\n * Create a BRoWser Import object\n * \t\t(A browser on top of a sound browser)\n * Returns:\n *  A pointer to the view, else pvNil.\n *\n ****************************************************/\nPBRWI BRWI::PbrwiNew(PRCA prca, long kidGlass, long sty)\n{\n    AssertPo(prca, 0);\n\n    PBRWI pbrwi;\n    GCB gcb;\n\n    if (!_FBuildGcb(&gcb, kidBackground, kidGlass))\n        return pvNil;\n\n    if ((pbrwi = NewObj BRWI(&gcb)) == pvNil)\n        return pvNil;\n\n    // Initialize the gok\n    if (!pbrwi->_FInitGok(prca, kidGlass))\n    {\n        ReleasePpo(&pbrwi);\n        return pvNil;\n    }\n\n    pbrwi->_sty = sty;\n    pbrwi->_ptgobPage = TGOB::PtgobCreate(kidImportPageNum, idsBrwsPageFont, tavCenter);\n    return pbrwi;\n}\n\n/***************************************************************************\n *\n * Initialize the BRWI\t (Import Browser)\n *\n **************************************************************************/\nbool BRWI::FInit(PCMD pcmd, CKI ckiRoot, PSTDIO pstdio)\n{\n    AssertBaseThis(0);\n\n    PCFL pcfl;\n    FNI fni;\n    STN stn;\n\n    _pstdio = pstdio;\n    //\n    // Create the gl's\n    //\n    if (pvNil == (_pglthd = GL::PglNew(size(THD), kglthdGrow)))\n        return fFalse;\n    _pglthd->SetMinGrow(kglthdGrow);\n\n    if (pvNil == (_pgst = GST::PgstNew(0)))\n        return fFalse;\n\n    _ckiRoot = ckiRoot;\n    _bws = kbwsCnoRoot;\n\n    // Fill the lists with sounds from the portfolio movie\n    vapp.GetPortfolioDoc(&fni);\n    pcfl = CFL::PcflOpen(&fni, fcflNil);\n    if (pvNil == pcfl)\n        goto LFail; // Error already reported\n    _pcrf = CRF::PcrfNew(pcfl, 0);\n    ReleasePpo(&pcfl);\n\n    if (pvNil == _pcrf)\n        goto LFail;\n    if (!_FUpdateLists()) // to include sounds from the selected movie\n        goto LFail;\n\n    BRWD::Init(pcmd, ivNil, ivNil, pstdio, fTrue);\n    if (!FCreateAllTgob())\n        goto LFail;\n\n    return fTrue;\n\nLFail:\n    return fFalse;\n}\n\n/****************************************************\n *\n * Create a BRoWser Prop/Actor object\n *\n * Returns:\n *  A pointer to the view, else pvNil.\n *\n ****************************************************/\nPBRWP BRWP::PbrwpNew(PRCA prca, long kidGlass)\n{\n    AssertPo(prca, 0);\n\n    PBRWP pbrwp;\n    GCB gcb;\n\n    if (!_FBuildGcb(&gcb, kidBackground, kidGlass))\n        return pvNil;\n\n    if ((pbrwp = NewObj BRWP(&gcb)) == pvNil)\n        return pvNil;\n\n    // Initialize the gok\n    if (!pbrwp->_FInitGok(prca, kidGlass))\n    {\n        ReleasePpo(&pbrwp);\n        return pvNil;\n    }\n\n    pbrwp->_ptgobPage = TGOB::PtgobCreate(kidBrowserPageNum, idsBrwsPageFont, tavCenter);\n    return pbrwp;\n}\n\n/****************************************************\n *\n * Create a BRoWser Background object\n *\n * Returns:\n *  A pointer to the view, else pvNil.\n *\n ****************************************************/\nPBRWB BRWB::PbrwbNew(PRCA prca)\n{\n    AssertPo(prca, 0);\n\n    PBRWB pbrwb;\n    GCB gcb;\n\n    if (!_FBuildGcb(&gcb, kidBackground, kidSettingsGlass))\n        return pvNil;\n\n    if ((pbrwb = NewObj BRWB(&gcb)) == pvNil)\n        return pvNil;\n\n    // Initialize the gok\n    if (!pbrwb->_FInitGok(prca, kidSettingsGlass))\n    {\n        ReleasePpo(&pbrwb);\n        return pvNil;\n    }\n\n    pbrwb->_ptgobPage = TGOB::PtgobCreate(kidBrowserPageNum, idsBrwsPageFont, tavCenter);\n    return pbrwb;\n}\n\n/****************************************************\n *\n * Background's virtual FCmdCancel\n *\n ****************************************************/\nbool BRWB::FCmdCancel(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    AssertVarMem(_pstdio);\n\n    PMVU pmvu;\n\n    // Update the tool\n    pmvu = (PMVU)(_pstdio->Pmvie()->PddgActive());\n    AssertPo(pmvu, 0);\n    pmvu->SetTool(toolDefault);\n\n    // Update the UI\n    _pstdio->Pmvie()->Pmcc()->ChangeTool(toolDefault);\n\n    if ((vpappb->GrfcustCur() & fcustCmd) && (_pstdio->Pmvie()->Cscen() == 0))\n        _pstdio->SetDisplayCast(fTrue);\n    else\n        _pstdio->SetDisplayCast(fFalse);\n    return BRWB_PAR::FCmdCancel(pcmd);\n}\n\n/****************************************************\n *\n * Set the size of the pcrm\n *\n ****************************************************/\nvoid BRWL::_SetCbPcrmMin(void)\n{\n    AssertThis(0);\n    long dwTotalPhys;\n    long dwAvailPhys;\n\n    // If short on memory, pull in the cache\n    ((APP *)vpappb)->MemStat(&dwTotalPhys, &dwAvailPhys);\n    if (dwTotalPhys > kdwTotalPhysLim && dwAvailPhys > kdwAvailPhysLim)\n        return;\n\n    if (pvNil != _pcrm)\n    {\n        for (long icrf = 0; icrf < _pcrm->Ccrf(); icrf++)\n        {\n            _pcrm->PcrfGet(icrf)->SetCbMax(0);\n        }\n    }\n}\n\n/****************************************************\n *\n * Create a BRoWser Camera object\n *\n * Returns:\n *  A pointer to the view, else pvNil.\n *\n ****************************************************/\nPBRWC BRWC::PbrwcNew(PRCA prca)\n{\n    AssertPo(prca, 0);\n\n    PBRWC pbrwc;\n    GCB gcb;\n\n    if (!_FBuildGcb(&gcb, kidBackground, kidCameraGlass))\n        return pvNil;\n\n    if ((pbrwc = NewObj BRWC(&gcb)) == pvNil)\n        return pvNil;\n\n    // Initialize the gok\n    if (!pbrwc->_FInitGok(prca, kidCameraGlass))\n    {\n        ReleasePpo(&pbrwc);\n        return pvNil;\n    }\n\n    pbrwc->_ptgobPage = TGOB::PtgobCreate(kidBrowserPageNum, idsBrwsPageFont, tavCenter);\n    return pbrwc;\n}\n\n/****************************************************\n *\n * Camera's virtual FCmdCancel\n *\n ****************************************************/\nbool BRWC::FCmdCancel(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    AssertVarMem(_pstdio);\n\n    PMVU pmvu;\n\n    // Update the tool\n    pmvu = (PMVU)(_pstdio->Pmvie()->PddgActive());\n    AssertPo(pmvu, 0);\n    pmvu->SetTool(toolDefault);\n\n    // Update the UI\n    _pstdio->Pmvie()->Pmcc()->ChangeTool(toolDefault);\n\n    return BRWC_PAR::FCmdCancel(pcmd);\n}\n\n/****************************************************\n *\n * Create a BRoWser Roll Call object\n *\n ****************************************************/\nPBRWR BRWR::PbrwrNew(PRCA prca, long kid)\n{\n    AssertPo(prca, 0);\n\n    PBRWR pbrwr;\n    GCB gcb;\n\n    if (!_FBuildGcb(&gcb, kidBackground, kid))\n        return pvNil;\n\n    if ((pbrwr = NewObj BRWR(&gcb)) == pvNil)\n        return pvNil;\n\n    // Initialize the gok\n    if (!pbrwr->_FInitGok(prca, kid))\n    {\n        ReleasePpo(&pbrwr);\n        return pvNil;\n    }\n\n    return pbrwr;\n}\n\n/****************************************************\n *\n * Initialize a BRoWser Roll Call object\n *\n ****************************************************/\nbool BRWR::FInit(PCMD pcmd, CTG ctgTmplThum, long ithumDisplay, PSTDIO pstdio)\n{\n    AssertThis(0);\n\n    long ccrf = 1;\n    PCFL pcfl;\n    BLCK blck;\n    long ccki;\n    long icki;\n    CKI cki;\n    TFC tfc;\n    KID kid;\n    FNET fnet;\n    FNI fniThd;\n\n    if (!fnet.FInit())\n        return fFalse;\n\n    _ctg = ctgTmplThum;\n    BRWD::Init(pcmd, ivNil, ithumDisplay, pstdio, fFalse, 1);\n\n    _pcrm = CRM::PcrmNew(ccrf);\n    if (pvNil == _pcrm)\n        goto LFail; // Error already reported\n\n    while (fnet.FNext(&fniThd))\n    {\n        if (fniThd.Ftg() != kftgThumbDesc)\n            continue;\n        pcfl = CFL::PcflOpen(&fniThd, fcflNil);\n        if (pvNil == pcfl)\n        {\n            goto LFail; // Error already reported\n        }\n\n        // Add the file to the crm\n        if (!_pcrm->FAddCfl(pcfl, kcbMaxCrm))\n            goto LFail; // Error already reported\n\n        // Create the cno map from tmpl->gokd\n        if (ctgTmplThum == kctgTmth)\n            ccki = pcfl->CckiCtg(kctgTmth);\n        else\n            ccki = pcfl->CckiCtg(kctgPrth);\n        for (icki = 0; icki < ccki; icki++)\n        {\n            if (!pcfl->FGetCkiCtg(ctgTmplThum, icki, &cki))\n                continue;\n\n            // Read the chunk to map the cno of the CD content\n            if (!pcfl->FFind(cki.ctg, cki.cno, &blck) || !blck.FUnpackData())\n            {\n                goto LFail;\n            }\n            if (blck.Cb() != size(TFC))\n                goto LFail;\n            if (!blck.FReadRgb(&tfc, size(TFC), 0))\n                goto LFail;\n            if (kboCur != tfc.bo)\n                SwapBytesBom(&tfc, kbomTfc);\n            Assert(kboCur == tfc.bo, \"bad TFC\");\n\n            if (!pcfl->FGetKidChidCtg(ctgTmplThum, cki.cno, 0, kctgGokd, &kid))\n            {\n                Warn(\"Actor content missing gokd\");\n                continue;\n            }\n\n            if (!_pstdio->FAddCmg(tfc.cno, kid.cki.cno))\n                goto LFail;\n        }\n    }\n\n    _fNoRepositionSel = fTrue;\n    return fTrue;\nLFail:\n    Warn(\"Failed to initialize RollCall\");\n    return fFalse;\n}\n\n/****************************************************\n *\n * Update the RollCall : Select actor arid\n *\n ****************************************************/\nbool BRWR::FUpdate(long arid, PSTDIO pstdio)\n{\n    AssertThis(0);\n    long ithumDisplay;\n\n    _pstdio = pstdio;\n    _ithumSelect = ithumDisplay = _IthumFromArid(arid);\n\n    // Define the index of the first thum on the page\n    if (ithumDisplay != ivNil)\n    {\n        if (!_fNoRepositionSel || ithumDisplay < _ithumPageFirst || ithumDisplay >= _ithumPageFirst + _cfrm)\n        {\n            _ithumPageFirst = ithumDisplay;\n        }\n    }\n\n    // Define the number of frames on the previous page and\n    // account for wrap-around\n    _SetScrollState(); // Set the state of the scroll arrows\n\n    return FDraw();\n}\n\n/****************************************************\n *\n * Process Browser Roll Call Selection\n * As the RollCall Browsers do not have OK buttons,\n * the selection is applied now.\n *\n * NOTE: The RollCall scripts cannot generate FCmdOk\n * as that would abort the browser script out from\n * underneath the code.\n *\n ****************************************************/\nvoid BRWR::_ProcessSelection(void)\n{\n    AssertThis(0);\n\n    long thumSelect;\n    long sid;\n\n    // Get Selection from virtual function\n    _GetThumFromIthum(_ithumSelect, &thumSelect, &sid);\n\n    // Apply the selection\n    _ApplySelection(thumSelect, sid);\n}\n\n/****************************************************\n *\n * Browser Roll Call Cthum\n *\n ****************************************************/\nlong BRWR::_Cthum(void)\n{\n    AssertThis(0);\n    STN stn;\n    long iarid;\n    long arid;\n    long cactRef;\n    long cthum = 0;\n    bool fProp;\n\n    Assert(_ctg == kctgPrth || _ctg == kctgTmth, \"Invalid BRWR initialization\");\n\n    if (_pstdio->Pmvie() == pvNil)\n        return 0;\n\n    for (iarid = 0; _pstdio->Pmvie()->FGetArid(iarid, &arid, &stn, &cactRef); iarid++)\n    {\n        // Verify actor in correct browser\n        fProp = _pstdio->Pmvie()->FIsPropBrwsIarid(iarid);\n\n        if (_ctg == kctgPrth && !fProp)\n            continue;\n        if (_ctg == kctgTmth && fProp)\n            continue;\n        if (!cactRef)\n            continue;\n        cthum++;\n    }\n    return cthum;\n}\n\n/****************************************************\n *\n * Iarid from Ithum\n *\n ****************************************************/\nlong BRWR::_IaridFromIthum(long ithum, long iaridFirst)\n{\n    AssertThis(0);\n    STN stn;\n    long iarid;\n    long arid;\n    long cactRef;\n    bool fProp;\n    long cthum = 0;\n\n    if (_pstdio->Pmvie() == pvNil)\n        return ivNil;\n\n    for (iarid = iaridFirst; _pstdio->Pmvie()->FGetArid(iarid, &arid, &stn, &cactRef); iarid++)\n    {\n        // Verify actor in correct browser\n        fProp = _pstdio->Pmvie()->FIsPropBrwsIarid(iarid);\n\n        if (_ctg == kctgPrth && !fProp)\n            continue;\n        if (_ctg == kctgTmth && fProp)\n            continue;\n        if (!cactRef)\n            continue;\n        if (cthum == ithum)\n            return iarid;\n        cthum++;\n    }\n    return iarid;\n}\n\n/****************************************************\n *\n * Ithum from AridSelect\n * (eg, find the thumbnail corresponding to the correct\n * copy of Billy)\n *\n ****************************************************/\nlong BRWR::_IthumFromArid(long aridSelect)\n{\n    AssertThis(0);\n\n    STN stn;\n    long iarid;\n    long arid;\n    long cactRef;\n    bool fProp;\n    long ithum = 0;\n\n    if (_pstdio->Pmvie() == pvNil)\n        return ivNil;\n\n    for (iarid = 0; _pstdio->Pmvie()->FGetArid(iarid, &arid, &stn, &cactRef); iarid++)\n    {\n        AssertDo(_pstdio->Pmvie()->FGetArid(iarid, &arid, &stn, &cactRef), \"Arid should exist\");\n        // Verify actor in correct browser\n        fProp = _pstdio->Pmvie()->FIsPropBrwsIarid(iarid);\n        if (arid == aridSelect)\n        {\n            if ((_ctg == kctgPrth) && !fProp)\n                return ivNil;\n            if ((_ctg == kctgTmth) && fProp)\n                return ivNil;\n            return ithum;\n        }\n\n        if (_ctg == kctgPrth && !fProp)\n            continue;\n        if (_ctg == kctgTmth && fProp)\n            continue;\n        if (!cactRef)\n            continue;\n        ithum++;\n    }\n    return ivNil;\n}\n\n/****************************************************\n *\n * Sets the ith Gob as a child of the current frame\n * Advance the gob (thumbnail) index\n *\n ****************************************************/\nbool BRWR::_FSetThumFrame(long ithum, PGOB pgobPar)\n{\n    AssertThis(0);\n    AssertIn(ithum, 0, _pstdio->Pmvie()->CmactrMac());\n    AssertPo(pgobPar, 0);\n\n    RC rcAbsPar;\n    RC rcAbs;\n    RC rcRel;\n    STN stnLabel;\n    long stid;\n    long cactRef;\n    long arid;\n    long iarid;\n    TAG tag;\n    STN stn;\n    long dxp;\n    long dyp;\n\n    // Associate the gob with the current frame\n    iarid = _IaridFromIthum(ithum);\n    if (!_pstdio->Pmvie()->FGetArid(iarid, &arid, &stn, &cactRef, &tag))\n        return fFalse;\n\n    _pstdio->Pmvie()->FGetName(arid, &stnLabel);\n\n    if (!_pstdio->Pmvie()->FIsIaridTdt(iarid))\n    {\n        PGOK pgok;\n        CNO cno = _pstdio->CnoGokdFromCnoTmpl(tag.cno);\n        long kidThum = _KidThumFromIfrm(_cfrmPageCur);\n        pgok = vapp.Pkwa()->PgokNew(pgobPar, kidThum, cno, _pcrm);\n        if (pvNil == pgok)\n            return fFalse;\n\n        // Note: The graphic is not the correct size\n        ((PGOB)pgok)->GetPos(&rcAbs, &rcRel);\n        pgobPar->GetPos(&rcAbsPar, pvNil);\n        dxp = (rcAbs.Dxp() - rcAbsPar.Dxp()) / 2;\n        dyp = (rcAbs.Dyp() - rcAbsPar.Dyp()) / 2;\n        rcAbs.xpLeft += (_dxpFrmOffset - dxp);\n        rcAbs.ypTop += (_dypFrmOffset - dyp);\n        rcAbs.xpRight += (dxp - _dxpFrmOffset);\n        rcAbs.ypBottom += (dyp - _dypFrmOffset);\n        ((PGOB)pgok)->SetPos(&rcAbs, &rcRel);\n    }\n    else\n    {\n        PTGOB ptgob;\n        STN stn = stnLabel;\n        long cch = stn.Cch();\n        long hidThum;\n\n        // Display the text as the thumbnail\n        hidThum = _KidThumFromIfrm(_cfrmPageCur);\n        ptgob = TGOB::PtgobCreate(_kidFrmFirst + _cfrmPageCur, _idsFont, tavCenter, hidThum);\n\n        if (pvNil != ptgob)\n        {\n            ptgob->SetText(&stn);\n        }\n    }\n\n    // Put the name in the global string registry for rollover help\n    stid = (_ctg == kctgPrth) ? kstidProp : kstidActor;\n    stid += _cfrmPageCur;\n    return vapp.Pkwa()->Pstrg()->FPut(stid, &stnLabel);\n}\n\n/****************************************************\n *\n * Clear rollover help\n *\n ****************************************************/\nbool BRWR::_FClearHelp(long ifrm)\n{\n    AssertThis(0);\n    AssertIn(ifrm, 0, _cfrm);\n\n    STN stn;\n    stn.SetNil();\n    long stid = (_ctg == kctgPrth) ? kstidProp : kstidActor;\n    stid += ifrm;\n    return vapp.Pkwa()->Pstrg()->FPut(stid, &stn);\n}\n\n/****************************************************\n *\n * Release previous thum from frame ifrm\n * Assumes gob based.\n *\n ****************************************************/\nvoid BRWR::_ReleaseThumFrame(long ifrm)\n{\n    AssertThis(0);\n    AssertIn(ifrm, 0, _cfrm);\n    PGOB pgob;\n\n    // Release previous gob associated with the current frame\n    pgob = _PgobFromIfrm(ifrm);\n    if (pvNil != pgob)\n    {\n        ReleasePpo(&pgob);\n    }\n}\n\n/****************************************************\n *\n * Browser Destructor\n *\n ****************************************************/\nBRWD::~BRWD(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pbrcn);\n    vpappb->FSetProp(kpridBrwsOverrideThum, -1);\n    vpappb->FSetProp(kpridBrwsOverrideKidThum, -1);\n}\n\n/****************************************************\n *\n * Browser List Destructor\n *\n ****************************************************/\nBRWL::~BRWL(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pglthd);\n    ReleasePpo(&_pcrm);\n    ReleasePpo(&_pgst);\n\n    if (_fEnableAccel)\n        vapp.EnableAccel();\n}\n\n/****************************************************\n *\n * Browser Text Destructor\n *\n ****************************************************/\nBRWT::~BRWT(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pgst);\n\n    if (_fEnableAccel)\n        vapp.EnableAccel();\n}\n\n/****************************************************\n *\n * Browser RollCall Destructor\n *\n ****************************************************/\nBRWR::~BRWR(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pcrm);\n}\n\n/****************************************************\n *\n * Browser Music Import Destructor\n *\n ****************************************************/\nBRWI::~BRWI(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pcrf);\n}\n\n/****************************************************\n *\n * Browser Context Destructor\n *\n ****************************************************/\nBRCNL::~BRCNL(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&pglthd);\n    ReleasePpo(&pgst);\n    ReleasePpo(&pcrm);\n}\n\n#ifdef DEBUG\n/****************************************************\n\n    Mark memory used by the BRCN\n\n ****************************************************/\nvoid BRCN::MarkMem(void)\n{\n    AssertThis(0);\n    BRCN_PAR::MarkMem();\n}\n\n/****************************************************\n\n    Mark memory used by the BRCNL\n\n ****************************************************/\nvoid BRCNL::MarkMem(void)\n{\n    AssertThis(0);\n    MarkMemObj(pglthd);\n    MarkMemObj(pgst);\n    MarkMemObj(pcrm);\n    BRCNL_PAR::MarkMem();\n}\n\n/****************************************************\n\n    Mark memory used by the BRWR\n\n ****************************************************/\nvoid BRWR::MarkMem(void)\n{\n    AssertThis(0);\n    MarkMemObj(_pcrm);\n    BRWR_PAR::MarkMem();\n}\n\n/****************************************************\n\n    Mark memory used by the BRWI\n\n ****************************************************/\nvoid BRWI::MarkMem(void)\n{\n    AssertThis(0);\n    MarkMemObj(_pcrf);\n    BRWI_PAR::MarkMem();\n}\n\n/****************************************************\n\n    Mark memory used by the BRWD\n\n ****************************************************/\nvoid BRWD::MarkMem(void)\n{\n    AssertThis(0);\n    BRWD_PAR::MarkMem();\n    MarkMemObj(_pbrcn);\n}\n\n/****************************************************\n\n    Mark memory used by the BRWL\n\n ****************************************************/\nvoid BRWL::MarkMem(void)\n{\n    AssertThis(0);\n\n    BRWL_PAR::MarkMem();\n    MarkMemObj(_pglthd);\n    MarkMemObj(_pcrm);\n    MarkMemObj(_pgst);\n}\n\n/****************************************************\n\n    Mark memory used by the BRWT\n\n ****************************************************/\nvoid BRWT::MarkMem(void)\n{\n    AssertThis(0);\n\n    MarkMemObj(_pgst);\n    BRWT_PAR::MarkMem();\n}\n\n/****************************************************\n\n    Mark memory used by the BRWA\n\n ****************************************************/\nvoid BRWA::MarkMem(void)\n{\n    AssertThis(0);\n\n    MarkMemObj(_pape);\n    BRWA_PAR::MarkMem();\n}\n\n/****************************************************\n\n    BCL Markmem\n\n ****************************************************/\nvoid BCL::MarkMem(void)\n{\n    BCL_PAR::MarkMem();\n    MarkMemObj(_pglthd);\n}\n\nvoid BCLS::MarkMem(void)\n{\n    BCLS_PAR::MarkMem();\n    MarkMemObj(_pgst);\n}\n\n/****************************************************\n\n    Assert the validity of the BRCN\n\n ****************************************************/\nvoid BRCN::AssertValid(ulong grfobj)\n{\n    BRCN_PAR::AssertValid(fobjAllocated);\n}\n\n/****************************************************\n\n    Assert the validity of the BRCNL\n\n ****************************************************/\nvoid BRCNL::AssertValid(ulong grfobj)\n{\n    BRCNL_PAR::AssertValid(fobjAllocated);\n}\n\n/****************************************************\n\n    BCL AssertValid\n\n ****************************************************/\nvoid BCLS::AssertValid(ulong grf)\n{\n    BCLS_PAR::AssertValid(grf);\n    AssertPo(_pgst, 0);\n}\nvoid BCL::AssertValid(ulong grf)\n{\n    BCL_PAR::AssertValid(grf);\n    AssertPo(_pglthd, 0);\n}\n\n/****************************************************\n\n    Assert the validity of the BRWD\n\n ****************************************************/\nvoid BRWD::AssertValid(ulong grfobj)\n{\n    BRWD_PAR::AssertValid(fobjAllocated);\n    AssertNilOrPo(_pbrcn, 0);\n}\n\n/****************************************************\n\n    Assert the validity of the BRWL\n\n ****************************************************/\nvoid BRWL::AssertValid(ulong grfobj)\n{\n\n    BRWL_PAR::AssertValid(fobjAllocated);\n    AssertNilOrPo(_pgst, 0);\n    AssertNilOrPo(_pglthd, 0);\n    AssertNilOrPo(_pcrm, 0);\n}\n\n/****************************************************\n\n    Assert the validity of the BRWR\n\n ****************************************************/\nvoid BRWR::AssertValid(ulong grfobj)\n{\n\n    BRWR_PAR::AssertValid(fobjAllocated);\n    AssertNilOrPo(_pcrm, 0);\n}\n\n/****************************************************\n\n    Assert the validity of the BRWI\n\n ****************************************************/\nvoid BRWI::AssertValid(ulong grfobj)\n{\n\n    BRWI_PAR::AssertValid(fobjAllocated);\n    AssertNilOrPo(_pcrf, 0);\n}\n\n/****************************************************\n\n    Assert the validity of the BRWT\n\n ****************************************************/\nvoid BRWT::AssertValid(ulong grfobj)\n{\n    BRWT_PAR::AssertValid(fobjAllocated);\n    AssertNilOrPo(_pgst, 0);\n}\n\n/****************************************************\n\n    Assert the validity of the BRWA\n\n ****************************************************/\nvoid BRWA::AssertValid(ulong grfobj)\n{\n    BRWA_PAR::AssertValid(fobjAllocated);\n    AssertNilOrPo(_pape, 0);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/studio/cur/cursors.rc",
    "content": "//Microsoft Visual C++ generated resource script.\n//\n#include \"resource.h\"\n\n#define APSTUDIO_READONLY_SYMBOLS\n/////////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 2 resource.\n//\n#include \"afxres.h\"\n\n/////////////////////////////////////////////////////////////////////////////\n#undef APSTUDIO_READONLY_SYMBOLS\n\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Cursor\n//\n\nIDC_TURNRIGHT2          CURSOR  DISCARDABLE     \"turnrigt.cur\"\nIDC_TURNLEFT2           CURSOR  DISCARDABLE     \"turnleft.cur\"\nIDC_TURNAROUND          CURSOR  DISCARDABLE     \"turnarnd.cur\"\nIDC_DEFAULT             CURSOR  DISCARDABLE     \"default.cur\"\nIDC_HTSPOT3             CURSOR  DISCARDABLE     \"hotspot.cur\"\nIDC_OBJECTINMAP         CURSOR  DISCARDABLE     \"hotspot2.cur\"\nIDC_WAIT                CURSOR  DISCARDABLE     \"wait.cur\"\nIDC_CUTACTOR            CURSOR  DISCARDABLE     \"cutactor.cur\"\nIDC_COPY                CURSOR  DISCARDABLE     \"copy.cur\"\nIDC_PASTE               CURSOR  DISCARDABLE     \"paste.cur\"\nIDC_NUKACTOR2           CURSOR  DISCARDABLE     \"nukeactr.cur\"\nIDC_NUKTEXT             CURSOR  DISCARDABLE     \"nuktext.cur\"\nIDC_NUKSCEN             CURSOR  DISCARDABLE     \"nukscen.cur\"\nIDC_REMOVBEF            CURSOR  DISCARDABLE     \"removbef.cur\"\nIDC_REMOVAFTER          CURSOR  DISCARDABLE     \"removaft.cur\"\nIDC_CUTEXT              CURSOR  DISCARDABLE     \"cutext.cur\"\nIDC_COPYTEXT            CURSOR  DISCARDABLE     \"copytext.cur\"\nIDC_PASTEPATH2          CURSOR  DISCARDABLE     \"pastepth.cur\"\nIDC_PASTETEXT2          CURSOR  DISCARDABLE     \"pastetex.cur\"\nIDC_COPYPATH            CURSOR  DISCARDABLE     \"copypath.cur\"\nIDC_ACTION2             CURSOR  DISCARDABLE     \"action2.cur\"\nIDC_REPOSITION          CURSOR  DISCARDABLE     \"repositi.cur\"\nSELECTEDSCENE           CURSOR  DISCARDABLE     \"selected.cur\"\nIDC_COSTUMECHANGER      CURSOR  DISCARDABLE     \"costume.cur\"\nIDC_SIZEVENLY           CURSOR  DISCARDABLE     \"sizevenl.cur\"\nIDC_SQUASHSTRETCH       CURSOR  DISCARDABLE     \"squashst.cur\"\nIDC_ROTATEX             CURSOR  DISCARDABLE     \"rotatex.cur\"\nIDC_ROTATEY             CURSOR  DISCARDABLE     \"rotatey.cur\"\nIDC_ROTATEZ             CURSOR  DISCARDABLE     \"rotatez.cur\"\nIDC_ATTACHSOUND         CURSOR  DISCARDABLE     \"attachso.cur\"\nIDC_LISTEN              CURSOR  DISCARDABLE     \"listen.cur\"\nIDC_CREATEXTBOX         CURSOR  DISCARDABLE     \"creatbox.cur\"\nRESIZETEXTBOX           CURSOR  DISCARDABLE     \"tboxfall.cur\"\nIDC_RESIZETEXTBOX       CURSOR  DISCARDABLE     \"tboxrise.cur\"\nIDC_RESIZETEXTBOXVERT   CURSOR  DISCARDABLE     \"tboxvert.cur\"\nRESIZETEXTBOXHOR        CURSOR  DISCARDABLE     \"tboxhor.cur\"\nIDC_IBEAM               CURSOR  DISCARDABLE     \"ibeam.cur\"\nIDC_FONTEXTCOLOR        CURSOR  DISCARDABLE     \"fontextc.cur\"\nIDC_TEXTBACKGROUNDCOL   CURSOR  DISCARDABLE     \"textback.cur\"\nIDC_ACTIONS2            CURSOR  DISCARDABLE     \"actions2.cur\"\nIDC_NUKACTOR3           CURSOR  DISCARDABLE     \"nukeactr.cur\"\nIDC_NORMALIZE           CURSOR  DISCARDABLE     \"normaliz.cur\"\nIDC_CURSOR1             CURSOR  DISCARDABLE     \"cur00001.cur\"\nIDC_CURSOR2             CURSOR  DISCARDABLE     \"cur00002.cur\"\nIDC_CURSOR3             CURSOR  DISCARDABLE     \"cur00003.cur\"\n\n#ifdef APSTUDIO_INVOKED\n/////////////////////////////////////////////////////////////////////////////\n//\n// TEXTINCLUDE\n//\n\n1 TEXTINCLUDE DISCARDABLE \nBEGIN\n    \"resource.h\\0\"\nEND\n\n2 TEXTINCLUDE DISCARDABLE \nBEGIN\n    \"#include \"\"afxres.h\"\"\\r\\n\"\n    \"\\0\"\nEND\n\n3 TEXTINCLUDE DISCARDABLE \nBEGIN\n    \"\\r\\n\"\n    \"\\0\"\nEND\n\n/////////////////////////////////////////////////////////////////////////////\n#endif    // APSTUDIO_INVOKED\n\n\n#ifndef APSTUDIO_INVOKED\n/////////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 3 resource.\n//\n\n\n/////////////////////////////////////////////////////////////////////////////\n#endif    // not APSTUDIO_INVOKED\n\n"
  },
  {
    "path": "src/studio/cur/resource.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//{{NO_DEPENDENCIES}}\n// Microsoft Visual C++ generated include file.\n// Used by cursors.rc\n//\n#define IDC_MOTION_MATCH_SOUND 101\n#define IDC_LOOPER_SOUND 102\n#define IDC_PASTE_SOUND 103\n#define IDC_CURSOR1 104\n#define IDC_CURSOR2 105\n#define IDC_CURSOR3 106\n\n// Next default values for new objects\n//\n#ifdef APSTUDIO_INVOKED\n#ifndef APSTUDIO_READONLY_SYMBOLS\n#define _APS_NEXT_RESOURCE_VALUE 107\n#define _APS_NEXT_COMMAND_VALUE 40001\n#define _APS_NEXT_CONTROL_VALUE 1000\n#define _APS_NEXT_SYMED_VALUE 101\n#endif\n#endif\n"
  },
  {
    "path": "src/studio/cursors.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//\n// Studio cur\n//\n\nCURSORCHUNK( \"studio\\cur\\repositi.cur\", kcrsCompose ) \t\t// \"Compose cursor\"\nCURSORCHUNK( \"studio\\cur\\squashst.cur\", kcrsSquashStretch ) // \"squashstretch\"\nCURSORCHUNK( \"studio\\cur\\sizevenl.cur\", kcrsResize ) \t\t// \"resize\"\nCURSORCHUNK( \"studio\\cur\\rotatex.cur\", kcrsRotateX ) \t\t// \"rotateX\"\nCURSORCHUNK( \"studio\\cur\\rotatey.cur\", kcrsRotateY ) \t\t// \"rotateY\"\nCURSORCHUNK( \"studio\\cur\\rotatez.cur\", kcrsRotateZ ) \t\t// \"rotateZ\"\nCURSORCHUNK( \"studio\\cur\\costume.cur\", kcrsCostume ) \t\t// \"costume\"\nCURSORCHUNK( \"studio\\cur\\repositi.cur\", kcrsRecord ) \t\t// \"motionfill\"\nCURSORCHUNK( \"studio\\cur\\hotspot.cur\", kcrsTweak ) \t\t// \"tweak\"\nCURSORCHUNK( \"studio\\cur\\normaliz.cur\", kcrsNormalizeRot ) \t// \"normalize\"\nCURSORCHUNK( \"studio\\cur\\default.cur\", kcrsDefault ) \t\t// \"Default\"\nCURSORCHUNK( \"studio\\cur\\repositi.cur\", kcrsTboxMove ) \t\t// \"TboxMove\"\nCURSORCHUNK( \"studio\\cur\\tboxvert.cur\", kcrsTboxUpDown ) \t// \"TboxUpDown\"\nCURSORCHUNK( \"studio\\cur\\tboxhor.cur\", kcrsTboxLeftRight ) // \"TboxLeftRight\"\nCURSORCHUNK( \"studio\\cur\\tboxfall.cur\", kcrsTboxFalling ) \t// \"TboxFalling\"\nCURSORCHUNK( \"studio\\cur\\tboxrise.cur\", kcrsTboxRising ) \t// \"TboxRising\"\nCURSORCHUNK( \"studio\\cur\\nukscen.cur\", kcrsNuke ) \t\t\t// \"Nuke\"\nCURSORCHUNK( \"studio\\cur\\creatbox.cur\", kcrsTboxCreate ) \t// \"TboxCreate\"\nCURSORCHUNK( \"studio\\cur\\ibeam.cur\", kcrsIBeam ) \t\t\t// \"IBeam\"\nCURSORCHUNK( \"studio\\cur\\cutactor.cur\", kcrsCutObject ) \t// \"CutObject\"\nCURSORCHUNK( \"studio\\cur\\copy.cur\", kcrsCopyObject ) \t\t// \"CopyObject\"\nCURSORCHUNK( \"studio\\cur\\copypath.cur\", kcrsCopyRte ) \t\t// \"CopyRte\"\nCURSORCHUNK( \"studio\\cur\\paste.cur\", kcrsPasteObject ) \t\t// \"PasteObject\"\nCURSORCHUNK( \"studio\\cur\\removaft.cur\", kcrsSceneChop ) \t// \"SceneChop\"\nCURSORCHUNK( \"studio\\cur\\cutext.cur\", kcrsCutText ) \t\t//  \"CutText\"\nCURSORCHUNK( \"studio\\cur\\copytext.cur\", kcrsCopyText ) \t\t// \"CopyText\"\nCURSORCHUNK( \"studio\\cur\\pastetex.cur\", kcrsPasteText ) \t// \"PasteText\"\nCURSORCHUNK( \"studio\\cur\\pastepth.cur\", kcrsPasteRte ) \t\t// \"PasteRte\"\nCURSORCHUNK( \"studio\\cur\\fontextc.cur\", kcrsPaintText ) \t// \"Paint Text\"\nCURSORCHUNK( \"studio\\cur\\textback.cur\", kcrsFillBkgd ) \t\t// \"Fill Text\"\nCURSORCHUNK( \"studio\\cur\\cur00001.cur\", kcrsMatcher )       // kcrsMatcher\nCURSORCHUNK( \"studio\\cur\\cur00002.cur\", kcrsLooper )        // kcrsLooper\nCURSORCHUNK( \"studio\\cur\\cur00003.cur\", kcrsSounder )       // kcrsSounder\nCURSORCHUNK( \"studio\\cur\\listen.cur\", kcrsListener )      // kcrsListener\nCURSORCHUNK( \"studio\\cur\\squashst.cur\", kcrsSoonerLater )   // kcrsSoonerLater\nCURSORCHUNK( \"studio\\cur\\repositi.cur\", kcrsComposeAll ) \t// \"Compose All cursor\"\nCURSORCHUNK( \"studio\\cur\\normaliz.cur\", kcrsNormalizeSize ) // \"Normalize size\"\nCURSORCHUNK( \"studio\\cur\\textback.cur\", kcrsTboxStory )\t\t// \"Make a tbox into a story tbox\"\nCURSORCHUNK( \"studio\\cur\\textback.cur\", kcrsTboxCredit )\t// \"Make a tbox into a credit tbox\"\nCURSORCHUNK( \"studio\\cur\\fontextc.cur\", kcrsTboxFont )\t\t// \"Set font of a tbox\"\nCURSORCHUNK( \"studio\\cur\\fontextc.cur\", kcrsTboxFontSize )\t// \"Set font size of a tbox\"\nCURSORCHUNK( \"studio\\cur\\fontextc.cur\", kcrsTboxFontStyle )\t// \"Set font style of a tbox\"\nCURSORCHUNK( \"studio\\cur\\removbef.cur\", kcrsSceneChopBack ) // \"SceneChopBack\"\n\n"
  },
  {
    "path": "src/studio/easels.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\\\n *\n *\teasels.cht\n *\n *\tAll easels that appear in the studio\n *\n *\tAuthor: Sean Selitrennikoff\n *\n * \tStatus: REVIEWED\n *\n\\*****************************************************************************/\n\n//\n//\n// Spletters easel\n//\n//\n\n\n//\n// Spletter easels very own glass\n//\nGOBCHUNK(\"Spletter Easel pane of glass\", kidSpltGlass, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_FILL( CHID(kstDefault, krepDefault ), \"Max\", 0,0, kdxpBackground, kdypBackground, Transparent, Palette( 73 \t))\n\tPATTERN_50\nENDCHUNK\nCREATE_SCRIPT(\"Costume changer\")\n\tCreateChildThis(kidSpltBackground, kidSpltBackground);\nENDCHUNK\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n\n//\n// Background\n//\nGOBCHUNK(\"Spletters easel background\", kidSpltBackground, kgokkRectHit)\n\tDEFAULT_POSITION( kxpSpltBackground, kypSpltBackground, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault ), \"studio\\bmp\\e1par.bmp\", kxpregSpltBackground, kypregSpltBackground )\nADOPT_WAVE(kcnoEzlOpenWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Spletters easel created\")\n\tCreateChildThis(kidSpltPreviewFrame, kidSpltPreviewFrame);\n\tCreateChildThis(kidSpltTransmogrify, kidSpltTransmogrify);\n\tCreateChildThis(kidSpltTextures, kidSpltTextures);\n\tCreateChildThis(kidSpltFont, kidSpltFont);\n\tCreateChildThis(kidSpltShape, kidSpltShape);\n\tCreateChildThis(kidSpltRotate, kidSpltRotate);\n\tCreateChildThis(kidSpltCancel, kidSpltCancel);\n\tCreateChildThis(kidSpltOk, kidSpltOk);\n\tCreateChildThis(kidSpltEditBox, kidSpltEditBox);\n\t// help balloon\n\tIf (!::fHelpOn);\n\t\tCreateHelpGob(kidBackground, ktpcEaselHelp33);\n\tEnd;\nENDCHUNK\n\n\n//\n// Preview area -- parent area for creating a brender world for viewing\n// the spletter.\n//\nOBJECT(\"Spletter easel preview Frame\", kidSpltPreviewFrame, 100, kcrsArrow)\nREP_RECT(CHID(kstDefault, krepDefault), \"Visible\",\n\tkxpSpltPreviewFrameLeft, kypSpltPreviewFrameTop, kxpSpltPreviewFrameRight, kypSpltPreviewFrameBottom)\n\n\n//\n// Parent rectangle for the edit box.\n//\nOBJECT(\"Spletter easel edit box\", kidSpltEditBox, 100, kcrsArrow)\nREP_RECT(CHID(kstDefault, krepDefault), \"Visible\",\n\tkxpSpltEditBoxLeft, kypSpltEditBoxTop, kxpSpltEditBoxRight, kypSpltEditBoxBottom)\n\n//\n// Transmogrify button\n//\nGOBCHUNK(\"Spletters easel Transmogrify\", kidSpltTransmogrify, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSpltTransmogrify, kypSpltTransmogrify, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSpltTransmogrify)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e1tran.bmp\",\n\tkxpregSpltTransmogrify, kypregSpltTransmogrify)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e1trans.bmp\",\n\tkxpregSpltTransmogrify, kypregSpltTransmogrify)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoRandomWav, CHID(kstDefault, krepClicked))\nCLICK_SCRIPT(\"Transmogrify clicked\")\n\tEnqueueCid(cidEaselTransmogrify, kidSpltGlass, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Texture popdown.  Starts the popdown.\n//\nGOBCHUNK(\"Spletters easel Textures\", kidSpltTextures, kgokkRectHit)\n\tDEFAULT_POSITION( kxpSpltTextures, kypSpltTextures, 10)\n\tACTION(fcustNil, fcustNil, fgrfstDefault, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSpltTextures)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e1text.bmp\",\n\tkxpregSpltTextures, kypregSpltTextures)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e1texts.bmp\",\n\tkxpregSpltTextures, kypregSpltTextures)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCLICK_SCRIPT(\"Texture clicked\")\n\tEnqueueCid(cidEaselTexture, kidSpltGlass, kidSpltGlass, kidSpltsColorFrame, kidSpltsColorPageDown,\n\t\t\t(kdxpSpltsColorFrameBorder << 16) | kdypSpltsColorFrameBorder);\t\t\nENDCHUNK\n\n//\n// Font popdown.  Starts the popdown.\n//\nGOBCHUNK(\"Spletters easel Font\", kidSpltFont, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSpltFont, kypSpltFont, 10)\n\tACTION(fcustNil, fcustNil, fgrfstDefault, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSpltFont)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e1font.bmp\",\n\tkxpregSpltFont, kypregSpltFont)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e1fonts.bmp\",\n\tkxpregSpltFont, kypregSpltFont)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCLICK_SCRIPT(\"Font clicked\")\n\tEnqueueCid(cidEaselFont, kidSpltGlass, kidSpltGlass, kidSpltsFontFrame, kidSpltsFontPageDown,\n\t\t\t(kdxpSpltsFontFrameBorder << 16) | kdypSpltsFontFrameBorder);\nENDCHUNK\n\n//\n// Shape popdown.  Starts the popdown.\n//\nGOBCHUNK(\"Spletters easel Shape\", kidSpltShape, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSpltShape, kypSpltShape, 10)\n\tACTION(fcustNil, fcustNil, fgrfstDefault, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSpltShape)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e1shap.bmp\",\n\tkxpregSpltShape, kypregSpltShape)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e1shaps.bmp\",\n\tkxpregSpltShape, kypregSpltShape)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCLICK_SCRIPT(\"Shape clicked\")\n\tEnqueueCid(cidEaselShape, kidSpltGlass, kidSpltsShape, kidSpltsShapeFrame, kidSpltsShapePageDown,\n\t\t\t(kdxpSpltsShapeFrameBorder << 16) | kdypSpltsShapeFrameBorder);\nENDCHUNK\n\n//\n// Rotate button.\n//\nGOBCHUNK(\"Spletters easel Rotate\", kidSpltRotate, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSpltRotate, kypSpltRotate, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSpltRotate)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e1rot.bmp\",\n\tkxpregSpltRotate, kypregSpltRotate)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e1rots.bmp\",\n\tkxpregSpltRotate, kypregSpltRotate)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSpinWav, CHID(kstDefault, krepClicked))\nCLICK_SCRIPT(\"Rotate clicked\")\n\tEnqueueCid(cidEaselRotate, kidSpltGlass, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Cancel button\n//\nGOBCHUNK(\"Spletters easel cancel\", kidSpltCancel, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSpltCancel, kypSpltCancel, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttEaselCancel)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e1can.bmp\",\n\tkxpregSpltCancel, kypregSpltCancel)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e1canc.bmp\",\n\tkxpregSpltCancel, kypregSpltCancel)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoCancelWav, CHID(kstDefault, krepClicked))\nCLICK_SCRIPT(\"Cancel clicked\")\n\tEnqueueCid(cidEaselCancel, kidSpltGlass, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// OK button\n//\nGOBCHUNK(\"Spletters easel ok\", kidSpltOk, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSpltOk, kypSpltOk, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttEaselOk)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e1okay.bmp\",\n\tkxpregSpltOk, kypregSpltOk)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e1okayc.bmp\",\n\tkxpregSpltOk, kypregSpltOk)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoOkWav, CHID(kstDefault, krepClicked))\nCLICK_SCRIPT(\"Ok clicked\")\n\tEnqueueCid(cidEaselOk, kidSpltGlass, 0, 0, 0, 0);\nENDCHUNK\n\n\n\n\n//\n// Costumes easels very own glass\n//\nGOBCHUNK(\"Costume changer easel pane of glass\", kidCostGlass, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_FILL(CHID(kstDefault, krepDefault ), \"Max\", 0, 0, kdxpBackground, kdypBackground, Transparent, Palette( 73 ))\n\tPATTERN_50\nENDCHUNK\nCREATE_SCRIPT(\"Costume changer\")\n\tCreateChildThis(kidCostBackground, kidCostBackground);\nENDCHUNK\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n\n//\n// Background\n//\nGOBCHUNK(\"Costume changer easel background\", kidCostBackground, kgokkRectHit)\n\tDEFAULT_POSITION( kxpCostBackground, kypCostBackground, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault ), \"studio\\bmp\\e2par.bmp\", kxpregCostBackground, kypregCostBackground )\nADOPT_WAVE(kcnoEzlOpenWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Costume changer easel created\")\n\tCreateChildThis(kidCostPreviewFrame, kidCostPreviewFrame);\n\tCreateChildThis(kidCostCostumes, kidCostCostumes);\n\tCreateChildThis(kidCostRotate, kidCostRotate);\n\tCreateChildThis(kidCostAccessories, kidCostAccessories);\n\tCreateChildThis(kidCostCancel, kidCostCancel);\n\tCreateChildThis(kidCostOk, kidCostOk);\n\tCreateChildThis(kidCostEditBox, kidCostEditBox);\n\tChangeStateGob(kidCostCostumes, kstSelected);\n\t// help balloon\n\tIf (!::fHelpOn);\n\t\tCreateHelpGob(kidBackground, ktpcEaselHelp35);\n\tEnd;\nENDCHUNK\n\n//\n// Preview area -- parent area for creating a brender world for viewing\n// the actor.\n//\nOBJECT(\"Costume changer easel preview Frame\", kidCostPreviewFrame, 100, kcrsHand)\nREP_RECT(CHID(kstDefault, krepDefault), \"Visible\",\n\tkxpCostPreviewFrameLeft, kypCostPreviewFrameTop, kxpCostPreviewFrameRight, kypCostPreviewFrameBottom)\n\n//\n// Parent rectangle for the edit box.\n//\nOBJECT(\"Costume changer edit box\", kidCostEditBox, 100, kcrsArrow)\nREP_RECT(CHID(kstDefault, krepDefault), \"Visible\",\n\tkxpCostEditBoxLeft, kypCostEditBoxTop, kxpCostEditBoxRight, kypCostEditBoxBottom)\n\n//\n// Costumes.\n//\nGOBCHUNK(\"Costume changer easel \", kidCostCostumes, kgokkRectHit)\n\tDEFAULT_POSITION(kxpCostCostumes, kypCostCostumes, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCostCostumes)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e2cost.bmp\",\n\tkxpregCostCostumes, kypregCostCostumes)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e2costs.bmp\",\n\tkxpregCostCostumes, kypregCostCostumes)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoCostumeWav, CHID(kstDefault, krepClicked))\nCLICK_SCRIPT(\"Costumes clicked\")\n\tEnqueueCid(cidEaselCostumes, kidCostGlass, 0, 0, 0, 0);\n\tChangeStateThis(kstSelected);\n\tChangeStateGob(kidCostAccessories, kstDefault);\nENDCHUNK\n\n//\n// Rotate button.\n//\nGOBCHUNK(\"Costume changer easel Rotate\", kidCostRotate, kgokkRectHit)\n\tDEFAULT_POSITION(kxpCostRotate, kypCostRotate, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCostRotate)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e2rot.bmp\",\n\tkxpregCostRotate, kypregCostRotate)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e2rots.bmp\",\n\tkxpregCostRotate, kypregCostRotate)\nADOPT_WAVE(kcnoSpinWav, CHID(kstDefault, krepClicked))\nCLICK_SCRIPT(\"Rotate clicked\")\n\tEnqueueCid(cidEaselRotate, kidCostGlass, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Accessories button\n//\nGOBCHUNK(\"Costume changer easel accessories\", kidCostAccessories, kgokkRectHit)\n\tDEFAULT_POSITION(kxpCostAccessories, kypCostAccessories, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCostAccessories)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e2acc.bmp\",\n\tkxpregCostAccessories, kypregCostAccessories)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e2accs.bmp\",\n\tkxpregCostAccessories, kypregCostAccessories)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoAcesoryWav, CHID(kstDefault, krepClicked))\nCLICK_SCRIPT(\"Accessories clicked\")\n\tEnqueueCid(cidEaselAccessories, kidCostGlass, 0, 0, 0, 0);\n\tChangeStateThis(kstSelected);\n\tChangeStateGob(kidCostCostumes, kstDefault);\nENDCHUNK\n\n\n//\n// Cancel button.\n//\nGOBCHUNK(\"Costume changer easel cancel\", kidCostCancel, kgokkRectHit)\n\tDEFAULT_POSITION(kxpCostCancel, kypCostCancel, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttEaselCancel)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e2can.bmp\",\n\tkxpregCostCancel, kypregCostCancel)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e2canc.bmp\",\n\tkxpregCostCancel, kypregCostCancel)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoCancelWav, CHID(kstDefault, krepClicked))\nCLICK_SCRIPT(\"Cancel clicked\")\n\tEnqueueCid(cidEaselCancel, kidCostGlass, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Ok button.\n//\nGOBCHUNK(\"Costume changer easel ok\", kidCostOk, kgokkRectHit)\n\tDEFAULT_POSITION(kxpCostOk, kypCostOk, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttEaselOk)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e2okay.bmp\",\n\tkxpregCostOk, kypregCostOk)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e2okayc.bmp\",\n\tkxpregCostOk, kypregCostOk)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoOkWav, CHID(kstDefault, krepClicked))\nCLICK_SCRIPT(\"Ok clicked\")\n\tEnqueueCid(cidEaselOk, kidCostGlass, 0, 0, 0, 0);\nENDCHUNK\n\n//\n//\n// Scene sorter easel\n//\n//\n#ifdef DEBUG\n#define klwSSorterDelayMax      90\n#define klwSSorterDelayMin      60\n#define kdlwSSorterDelay        6\n#else /* DEBUG */\n#define klwSSorterDelayMax      30\n#define klwSSorterDelayMin      5\n#define kdlwSSorterDelay        5\n#endif /* !DEBUG */\n\n\n#define kcgokFrame              7\n#define kdtimDragScroll         60\n#define kdtimDrag               10\n\n/******************************************************************************\n\tScene Sorter\n\n\t\tThis outlines the cids available to script from code.  It's\n\tbasically a cut-and-paste from the comments in the code.  Last update\n\twas 5/11/95.\n\t\n\tcidSceneSortInit:\n\t\tInitializes the Scene Sorter with the information about the easel\n\t\tin kidspace.\n\t\t\trglw[0] -- kid of the first thumbnail frame GOK\n\t\t\trglw[1] -- kid of the first scrollbar GOK button (scroll up)\n\t\t\trglw[2] -- number of GOKs in a single frame\n\n\tcidSceneSortSelect:\n\t\tSelects the scene corresponding to the given thumbnail frame.\n\t\t\trglw[0] -- the kid of the thumbnail frame\n\n\tcidSceneSortInsert:\n\t\tInserts the currently selected scene before the scene that\n\t\tcorresponds to the given thumbnail frame.  If the given thumbnail\n\t\tframe is larger than the last visible thumbnail frame, the scene is\n\t\tinserted after the last scene visible on the easel.\n\t\t\trglw[0] -- the kid of the frame to insert the scene before\n\n\tcidSceneSortScroll:\n\t\tScrolls the thumbnails by the given number of frames.  The sign of\n\t\tthe number of frames indicates whether to scroll forward (positive)\n\t\tor backward (negative).  Sets the selected frame to kstBrowserSelected\n\t\tif we're not drag & drop, or to kstBrowserScrollingSel if we are.\n\t\t\trglw[0] -- the number of frames to scroll\n\t\t\trglw[1] -- non-zero if we're scrolling during drag & drop\n\n\tcidSceneSortNuke:\n\t\tDeletes the currently selected scene from the movie.  Makes the\n\t\tfollowing scene the currently selected scene, unless there is no\n\t\tsuch scene, in which case the scene immediately before the deleted\n\t\tscene is the new currently selected scene.\n\n\tcidSceneSortOk:\n\tcidSceneSortCancel:\n\t\tAlerts the Scene Sorter that the easel is about to go away.  If the\n\t\teasel was not cancelled, the changes made in the easel are applied\n\t\tto the movie.\n\n\tcidSceneSortPortfolio:\n\t\tBrings up the portfolio so that the user can append movies from file.\n\n\tcidSceneSortTransition:\n\t\tSets the transition for the scene corresponding to the given frame.\n\t\t\trglw[0] -- GOK id of the frame\n\t\t\trglw[1] -- which transition to use\n\n\t\n************************************************************ PETED ***********/\n\n//\n// Scene sorter easel.  This is a hybrid easel, so it uses a few\n// browser-like conventions.\n//\n// Create self + NxM frames + controls, all are invisable\n// Enqueues: cidSSortersBrowserReady when ready to go.\n//\nGOBCHUNK(\"Scene sorter background\", kidSSorterBackground, kgokkRectHit)\n\tDEFAULT_POSITION( kxpSSorterBackground, kypSSorterBackground, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\e3par.bmp\", kxpregSSorterBackground, kypregSSorterBackground )\nADOPT_WAVE(kcnoEzlOpenWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Scene Sorter created\")\n\tCreateChildGob(kidBackground, kidGenericDisableGlass, kidGenericDisableGlass );\n\tCreateChildThis(kidSSorterScrollUp, kidSSorterScrollUp);\n\tCreateChildThis(kidSSorterScrollDn, kidSSorterScrollDn);\n\tCreateChildThis(kidSSorterOpen, kidSSorterOpen);\n\tCreateChildThis(kidSSorterNuke, kidSSorterNuke);\n\tCreateChildThis(kidSSorterHand, kidSSorterHand);\n\tCreateChildThis(kidSSorterOk, kidSSorterOk);\n\tCreateChildThis(kidSSorterCancel, kidSSorterCancel);\n\tCreateChildThis(kidSSorterBar, kidSSorterBar);\n\t// help balloon\n\tIf (!::fHelpOn);\n\t\tCreateHelpGob(kidBackground, ktpcEaselHelp32);\n\tEnd;\n\n\t.idSelected = kidStudio;\n\n\typ = kdypSSorterTop;\n\t.nFrame = 0;\n\n\t.dxpFrame = kdxpSSorterSpacing + kdxpSSorterFrame;\n\t.dypFrame = kdypSSorterSpacing + kdypSSorterFrame;\n\t.dxpSSorter = kdxpSSorter - kdxpSSorterRight + kdxpSSorterSpacing - kdxpSSorterLeft;\n\t.dypSSorter = kdypSSorter - kdypSSorterBottom - kdypSSorterTop;\n\t.nxFrame = .dxpSSorter / .dxpFrame;\n\n\tWhile(yp <= (kdypSSorter - kdypSSorterFrame - kdypSSorterBottom));\n\n\t\txp = kdxpSSorterLeft;\n\n\t\tWhile(xp <= (kdxpSSorter - kdxpSSorterRight - kdxpSSorterFrame));\n\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\t\t\tCreateChildThis(kidSSorterFrame + (.nFrame * kcgokFrame), kidSSorterFrame);\n\t\t\tMoveAbsGob(kidSSorterFrame + (.nFrame * kcgokFrame), xp, yp);\n\t\t\t.nFrame++;\n\t\t\txp += kdxpSSorterSpacing + kdxpSSorterFrame;\n        End;\n\t\t\n\t\typ += kdypSSorterSpacing + kdypSSorterFrame;\n\tEnd;\n\n\t/* .nxFrame == number of frames in a full row */\n\n\t// create frame used during drag & drop\n\t.idSelFrame = kidSSorterFrame + (.nFrame * kcgokFrame);\n\tCreateChildThis(.idSelFrame, kidSSorterFrame);\n\tChangeStateGob(.idSelFrame, kstBrowserDisabled);\n\t// don't bother moving it or showing it, since that will only happen\n\t// when the user actually wants to drag a frame\n\n\tEnqueueCid(cidSceneSortInit, kidSSorterBackground, kidSSorterFrame,\n\t\tkidSSorterScrollUp, kcgokFrame, 0);\n\n\tChangeModifierState(fcustHand, 0);\n\tChangeStateGob(kidSSorterHand, kstSelected);\n\tChangeStateThis(kstBrowserEnabled);\nENDCHUNK\n\n/* Handles the mouse tracking */\nREP_ANIM(CHID(kstBrowserDragging, kchidUpOff), \"Scene sorter, d&d mouse tracking\")\n\tidSelFrame = .idSelFrame;\n\tIf(GetModifierState() & fcustHand);\n\t\t// During dragging, allow the user to drag to right edge of scene sorter..\n\t\txpFrameMax = .dxpSSorter - .dxpFrame + kdxpSSorterRight;\n\t\typFrameMax = .dypSSorter - .dypFrame;\n\n\t\tdxpFrames = kdxpSSorterSpacing + kdxpSSorterFrame;\n\t\tdypFrames = kdypSSorterSpacing + kdypSSorterFrame;\n\n\t\tdtimCur = 0;\n\n\t\tPlaySoundThis(kctgWave, kcnoGrabSnWav, 0, 0x10000, 1, 0, 1);\n\n\t\tWhile(GetModifierState() & fcustMouse);\n\t\t\tCell(chidNil, 0, 0, kdtimDrag);\n\t\t\tdtimCur += kdtimDrag;\n\n\t\t\txpMouse = XMouseThis();\n\t\t\typMouse = YMouseThis();\n\n\t\t\txpNew = xpMouse - .dxpTrack;\n\t\t\typNew = ypMouse - .dypTrack;\n\n\t\t\tIf(xpNew < 0);\n\t\t\t\txpNew = 0;\n\t\t\tElif(xpNew > xpFrameMax);\n\t\t\t\txpNew = xpFrameMax;\n\t\t\tEnd;\n\t\t\tIf(ypNew < 0);\n\t\t\t\typNew = 0;\n\t\t\tElif(ypNew > ypFrameMax);\n\t\t\t\typNew = ypFrameMax;\n\t\t\tEnd;\n\n\t\t\tIf(dtimCur >= kdtimDragScroll);\n\t\t\t\tdtimCur = 0;\n\t\t\t\tIf(ypMouse < 0);\n\t\t\t\t\tEnqueueCid(cidSceneSortScroll, kidSSorterBackground, -1 * .nxFrame, 1, 0, 0);\n\t\t\t\tElif(ypMouse > .dypSSorter);\n\t\t\t\t\tEnqueueCid(cidSceneSortScroll, kidSSorterBackground, .nxFrame, 1, 0, 0);\n\t\t\t\tEnd;\n\t\t\tEnd;\n\t\t\tMoveAbsGob(idSelFrame, xpNew, ypNew);\n\t\t\t\n\t\t\tIf(xpNew < kdxpSSorterLeft);\n\t\t\t\txpBar = kdxpSSorterSpacing / 2;\n\t\t\tElse;\n\t\t\t\txpBar = (kdxpSSorterSpacing / 2) + (dxpFrames * (1 + ((xpNew - kdxpSSorterLeft - 1) / dxpFrames)));\n\t\t\tEnd;\n\n\t\t\typBar = (kdypSSorterSpacing / 2) + (dypFrames * ((ypNew + (dypFrames / 2)) / dypFrames));\n\n\t\t\tMoveAbsGob(kidSSorterBar, xpBar, ypBar);\n\n\t\t\t// Do not show the indicator bar until we have positioned it in the correct place.\n\t\t\tIf(StateGob(kidSSorterBar) == kstDefault);\n\t\t\t\tChangeStateGob(kidSSorterBar, kstSelected);\n\t\t\tEnd;\n\n\t\tEnd;\n\n\t\tChangeStateGob(kidSSorterBar, kstDefault);\n\n\t\tPlaySoundThis(kctgWave, kcnoDropSnWav, 0, 0x10000, 1, 0, 1);\n\n\t\t/* Find the target frame */\n\t\txpNew = XGob(idSelFrame);\n\t\typNew = YGob(idSelFrame);\n\n\t\tIf(xpNew < kdxpSSorterLeft);\n\t\t\txFrame = 0;\n\t\tElse;\n\t\t\txFrame = 1 + ((xpNew - kdxpSSorterLeft - 1) / dxpFrames);\n\t\tEnd;\n\n\t\tyFrame = (ypNew + (dypFrames / 2)) / dypFrames;\n\n\t\tgidFrame = yFrame * .nxFrame + xFrame;\n\t\tgidFrame = (gidFrame * kcgokFrame) + kidSSorterFrame;\n\t\n\t\t/* Insert the frame */\n\t\tEnqueueCid(cidSceneSortInsert, kidSSorterBackground, gidFrame, 0, 0, 0);\n\t\n\t\t/* Hide the dragging gob */\n\t\tEnqueueCid(cidSceneSortScroll, kidSSorterBackground, 0, 0, 0, 0);\n\t\tChangeStateGob(.idSelFrame, kstBrowserDisabled);\n\t\n\t\tChangeStateThis(kstBrowserEnabled);\n\tElse;\n\t\tDEBUGCMD( AlertStr(\"Bogus state for scene sorter\");)\n\tEnd;\nENDCHUNK\n\n//\n// Scroll up button\n//\nGOBCHUNK(\"Scene sorter - scroll up\", kidSSorterScrollUp, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSSorterScrollUp, kypSSorterScrollUp, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstBrowserEnabled, krepMouseDnOn), cidNil, kttSSorterScrollUp)\nENDCHUNK\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\e3up.bmp\",\n\tkxpregSSorterScrollUp, kypregSSorterScrollUp)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\e3upc.bmp\",\n\tkxpregSSorterScrollUp, kypregSSorterScrollUp)\nREP_ANIM(CHID(kstBrowserEnabled, krepMouseDnOn), \"Pressed\")\n\t/* Init */\n\tlwDelay = klwSSorterDelayMax;\n\tcgokScroll = GidParThis()->nxFrame * -1;\n\n\t/* Send first scroll command */\n\tPlaySoundThis(kctgWave, kcnoPageUpWav, 0, 0x10000, 1, 0, 1);\n\tEnqueueCid(cidSceneSortScroll, kidSSorterBackground, cgokScroll, 0, 0, 0);\n\tCell(CHID(kstBrowserEnabled, krepMouseDnOn), 0, 0, lwDelay);\n\n\t/* Loop until we exit this state */\n\tWhile();\n\t\tASSERT(GetModifierState() & fcustMouse);\n\t    If(lwDelay > lwSSorterDelayMin);\n\t\t\tlwDelay -= kdlwSSorterDelay;\n\t\tEnd;\n\t\tPlaySoundThis(kctgWave, kcnoPageUpWav, 0, 0x10000, 1, 0, 1);\n\t\tEnqueueCid(cidSceneSortScroll, kidSSorterBackground, cgokScroll, 0, 0, 0);\n\t\tCell(chidNil, 0, 0, lwDelay);\n\tEnd;\nENDCHUNK\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\n\n//\n// Scroll down button\n//\nGOBCHUNK(\"Scene sorter - scroll down\", kidSSorterScrollDn, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSSorterScrollDn, kypSSorterScrollDn, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstBrowserEnabled, krepMouseDnOn), cidNil, kttSSorterScrollDn)\nENDCHUNK\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\e3down.bmp\",\n\tkxpregSSorterScrollDn, kypregSSorterScrollDn)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\e3downc.bmp\",\n\tkxpregSSorterScrollDn, kypregSSorterScrollDn)\nREP_ANIM(CHID(kstBrowserEnabled, krepMouseDnOn), \"Pressed\")\n\t/* Init */\n\tlwDelay = klwSSorterDelayMax;\n\tcgokScroll = GidParThis()->nxFrame;\n\n\t/* Send first scroll command */\n\tPlaySoundThis(kctgWave, kcnoPageDnWav, 0, 0x10000, 1, 0, 1);\n\tEnqueueCid(cidSceneSortScroll, kidSSorterBackground, cgokScroll, 0, 0, 0);\n\tCell(CHID(kstBrowserEnabled, krepMouseDnOn), 0, 0, lwDelay);\n\n\t/* Loop until we exit this state */\n\tWhile();\n\t\tASSERT(GetModifierState() & fcustMouse);\n\t    If(lwDelay > lwSSorterDelayMin);\n\t\t\tlwDelay -= kdlwSSorterDelay;\n\t\tEnd;\n\t\tPlaySoundThis(kctgWave, kcnoPageDnWav, 0, 0x10000, 1, 0, 1);\n\t\tEnqueueCid(cidSceneSortScroll, kidSSorterBackground, cgokScroll, 0, 0, 0);\n\t\tCell(chidNil, 0, 0, lwDelay);\n\tEnd;\nENDCHUNK\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\n\n//\n// Bar indicating where scene will be dropped.\n//\nGOBCHUNK(\"Scene sorter - Bar\", kidSSorterBar, kgokkRectHit)\n\tDEFAULT_POSITION( 0, 0, 10 )\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, cnoNil )\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstSelected, krepDefault ), \"studio\\bmp\\ssbar.bmp\", 0, 0)\n\n//\n// Open file button.  Starts the dialog.\n//\nGOBCHUNK(\"Scene sorter - Open\", kidSSorterOpen, kgokkRectHit)\n\tDEFAULT_POSITION( kxpSSorterOpen, kypSSorterOpen, 10 )\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSSorterOpen )\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault ), \"studio\\bmp\\e3port.bmp\",\n\tkxpregSSorterOpen, kypregSSorterOpen)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e3portc.bmp\",\n\tkxpregSSorterOpen, kypregSSorterOpen)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCLICK_SCRIPT(\"Scene sorter, portfolio clicked\")\n\tEnqueueCid(cidSceneSortPortfolio, kidSSorterBackground, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Ok button.\n//\nGOBCHUNK(\"Scene sorter - Ok\", kidSSorterOk, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSSorterOk, kypSSorterOk, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidSceneSortOk, kttEaselOk)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e3okay.bmp\",\n\tkxpregSSorterOk, kypregSSorterOk)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e3okayc.bmp\",\n\tkxpregSSorterOk, kypregSSorterOk)\nADOPT_WAVE(kcnoOkWav, CHID(kstDefault, krepClicked))\nCLICK_SCRIPT(\"Scene sorter, ok, clicked\")\n\tEnqueueCid(cidSceneSortOk, kidSSorterBackground, 0, 0, 0, 0);\n\tOldState = GetModifierState();\n\tOldState &= (fcustHand | fcustNuke);\n\tChangeModifierState(0, OldState);\nENDCHUNK\n\n//\n// Cancel button.\n//\nGOBCHUNK(\"Scene sorter - Cancel\", kidSSorterCancel, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSSorterCancel, kypSSorterCancel, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidSceneSortCancel, kttEaselCancel)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e3can.bmp\",\n\tkxpregSSorterCancel, kypregSSorterCancel)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e3canc.bmp\",\n\tkxpregSSorterCancel, kypregSSorterCancel)\nADOPT_WAVE(kcnoCancelWav, CHID(kstDefault, krepClicked))\nCLICK_SCRIPT(\"Scene sorter, cancel, clicked\")\n\tEnqueueCid(cidSceneSortCancel, kidSSorterBackground, 0, 0, 0, 0);\n\tOldState = GetModifierState();\n\tOldState &= (fcustHand | fcustNuke);\n\tChangeModifierState(0, OldState);\nENDCHUNK\n\n//\n// Nuke scene button.\n//\nGOBCHUNK(\"Scene sorter - Nuke\", kidSSorterNuke, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSSorterNuke, kypSSorterNuke, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSSorterNuke)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault ), \"studio\\bmp\\e3rmsn.bmp\",\n\tkxpregSSorterNuke, kypregSSorterNuke)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e3rmsnc.bmp\",\n\tkxpregSSorterNuke, kypregSSorterNuke)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCLICK_SCRIPT(\"Scene sorter, Nuke, clicked\")\n\tOldState = GetModifierState();\n\tOldState &= fcustHand;\n\n\t//\n\t// Use the modifier state to tell if the Hand was selected.\n\t// If so, deselect it.\n\t//\n\tIf(OldState & fcustHand);\n\t\tChangeStateGob(kidSSorterHand, kstDefault);\n\tEnd;\n\tChangeModifierState(fcustNuke, OldState);\n\tChangeStateThis(kstSelected);\nENDCHUNK\n\n//\n// Hand button.\n//\nGOBCHUNK(\"Scene sorter - Nuke\", kidSSorterHand, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSSorterHand, kypSSorterHand, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSSorterHand)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault ), \"studio\\bmp\\e3hand.bmp\",\n\tkxpregSSorterHand, kypregSSorterHand)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e3handc.bmp\",\n\tkxpregSSorterHand, kypregSSorterHand)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCLICK_SCRIPT(\"Scene sorter, Nuke, clicked\")\n\tOldState = GetModifierState();\n\tOldState &= fcustNuke;\n\n\t//\n\t// Use the modifier state to tell if the Nuke was selected.\n\t// If so, deselect it.\n\t//\n\tIf(OldState & fcustNuke);\n\t\tChangeStateGob(kidSSorterNuke, kstDefault);\n\tEnd;\n\tChangeModifierState(fcustHand, OldState);\n\tChangeStateThis(kstSelected);\nENDCHUNK\n\n//\n// Frame object for the scene sorter.\n//\nGOBCHUNK(\"Scene sorter - Frame\", kidSSorterFrame, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSSorterFrame, kypSSorterFrame, 10)\n\tACTION(fcustHand, fcustHand, fgrfstAll, kcrsHand, chidNil, cidNil, kttSSorterFrame)\n\tACTION(fcustNuke, fcustNuke, fgrfstAll, kcrsNuke, chidNil, cidNil, kttSSorterFrame)\nENDCHUNK\n\n/* Define the default representations */\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\e3frm.bmp\",\n\tkxpregSSorterFrameBorder, kypregSSorterFrameBorder)\nREP_MBMPREG(CHID(kstBrowserSelected, krepDefault), \"studio\\bmp\\e3frms.bmp\",\n\tkxpregSSorterFrameBorder, kypregSSorterFrameBorder)\nREP_MBMPREG(CHID(kstBrowserDragging, krepDefault), \"studio\\bmp\\e3frms.bmp\",\n\tkxpregSSorterFrameBorder, kypregSSorterFrameBorder)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstBrowserScrollingSel, krepDefault), \"hidden\", 0, 0, 0, 0)\n\nCREATE_SCRIPT(\"Scene Sorter frame created\")\n\tCreateChildThis(GidThis() + 1, kidTransition1);\n\tCreateChildThis(GidThis() + 2, kidTransition2);\n\tCreateChildThis(GidThis() + 3, kidTransition3);\n\tCreateChildThis(GidThis() + 4, kidTransition4);\n\tCreateChildThis(GidThis() + 5, kidSSorterThumbFrame);\n\tChangeStateThis(kstBrowserDisabled);\nENDCHUNK\n\n/* Handles mouse down in a frame */\nREP_ANIM(CHID(kstBrowserEnabled, krepMouseDn), \"Scene sorter, frame, mouse down hand\")\n\tIf(StateGob(GidParThis()->idSelFrame) == kstBrowserDisabled);\n\t\tEnqueueCid(cidSceneSortSelect, kidSSorterBackground, GidThis(), 0, 0, 0);\n\tEnd;\nENDCHUNK\n\nREP_ANIM(CHID(kstBrowserSelected, krepMouseDn), \"Scene sorter, frame, start track\")\n\tIf(GetModifierState() & fcustHand);\n\t\tidSelFrame = GidParThis()->idSelFrame;\n\t\tIf(StateGob(idSelFrame) == kstBrowserDisabled);\n\t\t\tEnqueueCid(cidSceneSortScroll, kidSSorterBackground, 0, 1, 0, 0);\n\t\tEnd;\n\tEnd;\nENDCHUNK\n\nREP_ANIM(CHID(kstBrowserScrollingSel, kchidDownOn), \"Scene sorter, frame, start track\")\n\tgidParent = GidParThis();\n\tidSelFrame = gidParent->idSelFrame;\n\tIf(StateGob(idSelFrame) == kstBrowserDisabled);\n\t\txpThis = XThis();\n\t\typThis = YThis();\n\t\tIf(StateGob(idSelFrame) != kstBrowserDragging);\n\t\t\tMoveAbsGob(idSelFrame, xpThis, ypThis);\n\t\t\tChangeStateGob(idSelFrame, kstBrowserDragging);\n\t\tEnd;\n\n\t\tgidParent->dxpTrack = XMouseGob(gidParent) - xpThis;\n\t\tgidParent->dypTrack = YMouseGob(gidParent) - ypThis;\n\n\t\tChangeStateGob(gidParent, kstBrowserDragging);\n\tEnd;\nENDCHUNK\n\n/* Handles mouse up after tracking, \"no insert\" or \"nuke\" */\nREP_ANIM(CHID(kstBrowserSelected, kchidDownUpOn), \"Scene sorter, frame, mouse up on\")\n\tIf(GetModifierState() & fcustNuke);\n\t\tPlaySoundGob(kidSSorterBackground, kctgWave, kcnoNukeSnWav, 0, 0x10000, 1, 0, 1);\n\t\tEnqueueCid(cidSceneSortNuke, kidSSorterBackground, 0, 0, 0, 0);\n\tEnd;\nENDCHUNK\n\n\n//\n// Scene thumbnail frame\n//\nGOBCHUNK(\"Scene sorter - thumbnail frame\", kidSSorterThumbFrame, kgokkRectNoHit)\n\tDEFAULT_POSITION( 0, 0, 10)\nENDCHUNK\nREP_RECT( CHID(kstDefault,  krepDefault), \"scene holder\", kxpSSorterThumbLeft, kypSSorterThumbTop,\n\tkxpSSorterThumbRight, kypSSorterThumbBottom\t)\n\n\n//\n// Transition 1\n//\nGOBCHUNK(\"Scene sorter - Transition button\", kidTransition1, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTransition1, kypTransition1, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttTransition1)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e3trn1.bmp\",\n\tkxpregTransition1, kypregTransition1)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e3trn1s.bmp\",\n\tkxpregTransition1, kypregTransition1)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Transition 1\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidSceneSortTransition, kidSSorterBackground, GidParThis(), 1, 0, 0);\nENDCHUNK\n\n//\n// Transition 2\n//\nGOBCHUNK(\"Scene sorter - Transition button\", kidTransition2, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTransition2, kypTransition2, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttTransition2)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e3trn2.bmp\",\n\tkxpregTransition2, kypregTransition2)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e3trn2s.bmp\",\n\tkxpregTransition2, kypregTransition2)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Transition 2\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidSceneSortTransition, kidSSorterBackground, GidParThis(), 2, 0, 0);\nENDCHUNK\n\n//\n// Transition 3\n//\nGOBCHUNK(\"Scene sorter - Transition button\", kidTransition3, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTransition3, kypTransition3, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttTransition3)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e3trn3.bmp\",\n\tkxpregTransition3, kypregTransition3)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e3trn3s.bmp\",\n\tkxpregTransition3, kypregTransition3)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Transition 3\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidSceneSortTransition, kidSSorterBackground, GidParThis(), 3, 0, 0);\nENDCHUNK\n\n//\n// Transition 4\n//\nGOBCHUNK(\"Scene sorter - Transition button\", kidTransition4, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTransition4, kypTransition4, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttTransition4)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e3trn4.bmp\",\n\tkxpregTransition4, kypregTransition4)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e3trn4s.bmp\",\n\tkxpregTransition4, kypregTransition4)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Transition 4\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidSceneSortTransition, kidSSorterBackground, GidParThis(), 4, 0, 0);\nENDCHUNK\n\n//\n//\n// Sound Listener easel\n//\n\n//\n// Listener easel for actor's very own glass\n//\nGOBCHUNK(\"Listen easel for actors pane of glass\", kidListenGlassActor, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_FILL( CHID(kstDefault, krepDefault ), \"Max\", 0,0, kdxpBackground, kdypBackground, Transparent, Palette( 73 \t))\n\tPATTERN_50\nENDCHUNK\nCREATE_SCRIPT(\"Listener easel for actor - create\")\n\tCreateChildThis(kidListenBackgroundActor, kidListenBackgroundActor);\nENDCHUNK\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n//\n// Listener easel for background's very own glass\n//\nGOBCHUNK(\"Listen easel for background pane of glass\", kidListenGlassBkgd, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_FILL( CHID(kstDefault, krepDefault ), \"Max\", 0,0, kdxpBackground, kdypBackground, Transparent, Palette( 73 \t))\n\tPATTERN_50\nENDCHUNK\nCREATE_SCRIPT(\"Listener easel for background - create\")\n\tCreateChildThis(kidListenBackgroundBkgd, kidListenBackgroundBkgd);\nENDCHUNK\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n//\n// Listener easel for actor Background\n//\nGOBCHUNK(\"Listener easel for actor background\", kidListenBackgroundActor, kgokkRectHit)\n\tDEFAULT_POSITION( kxpListenBackgroundActor, kypListenBackgroundActor, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault ), \"studio\\bmp\\e4parmm.bmp\", kxpregListenBackgroundActor, kypregListenBackgroundActor )\nADOPT_WAVE(kcnoEzlOpenWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Listener easel for actor background created\")\n\n\t// Create the volume sliders.\n\tCreateChildThis(kidListenVolSpeech, kidListenVolSpeech);\n\tCreateChildThis(kidListenVolFX, kidListenVolFX);\n\tCreateChildThis(kidListenVolSpeechMM, kidListenVolSpeechMM);\n\tCreateChildThis(kidListenVolFXMM, kidListenVolFXMM);\n\n\t// Create the four nuke btns.\n\tCreateChildThis(kidListenNukeSpeech, kidListenNukeSpeech);\n\tMoveAbsGob(kidListenNukeSpeech, kxpActorListenNukeSpeech, kypActorListenNukeSpeech);\n\tCreateChildThis(kidListenNukeFX, kidListenNukeFX);\n\tMoveAbsGob(kidListenNukeFX, kxpActorListenNukeFX, kypActorListenNukeFX);\n\tCreateChildThis(kidListenNukeSpeechMM, kidListenNukeSpeechMM);\n\tMoveAbsGob(kidListenNukeSpeechMM, kxpActorListenNukeSpeechMM, kypActorListenNukeSpeechMM);\n\tCreateChildThis(kidListenNukeFXMM, kidListenNukeFXMM);\n\tMoveAbsGob(kidListenNukeFXMM, kxpActorListenNukeFXMM, kypActorListenNukeFXMM);\n\n\t// Create the sound name controls that exist beneath the volume sliders.\n\tCreateChildThis(kidListenEditBoxSpeech, kidListenEditBoxSpeech);\n\tMoveAbsGob(kidListenEditBoxSpeech, kxpListenActorEditBoxSpeech, kypListenActorEditBoxSpeech );\n\tCreateChildThis(kidListenEditBoxFX, kidListenEditBoxFX);\n\tMoveAbsGob(kidListenEditBoxFX, kxpListenActorEditBoxFX, kypListenActorEditBoxFX );\n\tCreateChildThis(kidListenEditBoxSpeechMM, kidListenEditBoxSpeechMM);\n\tMoveAbsGob(kidListenEditBoxSpeechMM, kxpListenActorEditBoxSpeechMM, kypListenActorEditBoxSpeechMM );\n\tCreateChildThis(kidListenEditBoxFXMM, kidListenEditBoxFXMM);\n\tMoveAbsGob(kidListenEditBoxFXMM, kxpListenActorEditBoxFXMM, kypListenActorEditBoxFXMM );\n\n\t// Create the Icons\n\tCreateChildThis(kidListenSpeechIcon, kidListenSpeechIcon);\n\tMoveAbsGob(kidListenSpeechIcon, kxpActorListenSpeechIcon, kypActorListenSpeechIcon);\n\tCreateChildThis(kidListenSpeechMMIcon, kidListenSpeechMMIcon);\n\tMoveAbsGob(kidListenSpeechMMIcon, kxpListenSpeechMMIcon, kypListenSpeechMMIcon);\n\tCreateChildThis(kidListenFXIcon, kidListenFXIcon);\n\tMoveAbsGob(kidListenFXIcon, kxpListenFXIcon, kypListenFXIcon);\n\tCreateChildThis(kidListenFXMMIcon, kidListenFXMMIcon);\n\tMoveAbsGob(kidListenFXMMIcon, kxpListenFXMMIcon, kypListenFXMMIcon);\n\n\t// reposition OK + CANCEL for the actor listener browser\n\n\tCreateChildThis(kidListenCancel, kidListenCancel);\n\tMoveAbsGob(kidListenCancel, kxpListenActorCancel, kypListenActorCancel );\n\tCreateChildThis(kidListenOk, kidListenOk);\n\tMoveAbsGob(kidListenOk, kxpListenActorOk, kypListenActorOk );\n\t// help balloon\n\tIf (!::fHelpOn);\n\t\tCreateHelpGob(kidBackground, ktpcEaselHelp34);\n\tEnd;\nENDCHUNK\n\n//\n// Listener easel for bkgd Background\n//\nGOBCHUNK(\"Listener easel for bkgd background\", kidListenBackgroundBkgd, kgokkRectHit)\n\tDEFAULT_POSITION( kxpListenBackgroundBkgd, kypListenBackgroundBkgd, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault ), \"studio\\bmp\\e4par.bmp\", kxpregListenBackgroundBkgd, kypregListenBackgroundBkgd )\nADOPT_WAVE(kcnoEzlOpenWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Listener easel for bkgd background created\")\n\n\t// Create the volume sliders.\n\tCreateChildThis(kidListenVolSpeech, kidListenVolSpeech);\n\tCreateChildThis(kidListenVolFX, kidListenVolFX);\n\tCreateChildThis(kidListenVolMidi, kidListenVolMidi);\n\n\t// Create the three nuke btns.\n\tCreateChildThis(kidListenNukeSpeech, kidListenNukeSpeech);\n\tMoveAbsGob(kidListenNukeSpeech, kxpListenNukeSpeech, kypListenNukeSpeech);\n\tCreateChildThis(kidListenNukeFX, kidListenNukeFX);\n\tMoveAbsGob(kidListenNukeFX, kxpListenNukeFX, kypListenNukeFX);\n\tCreateChildThis(kidListenNukeMidi, kidListenNukeMidi);\n\tMoveAbsGob(kidListenNukeMidi, kxpListenNukeMidi, kypListenNukeMidi);\n\n\t// Create the sound name controls that exist beneath the volume sliders.\n\tCreateChildThis(kidListenEditBoxSpeech, kidListenEditBoxSpeech);\n\tCreateChildThis(kidListenEditBoxFX, kidListenEditBoxFX);\n\tCreateChildThis(kidListenEditBoxMidi, kidListenEditBoxMidi);\n\n\t// Create the Icons\n\tCreateChildThis(kidListenSpeechIcon, kidListenSpeechIcon);\n\tMoveAbsGob(kidListenSpeechIcon, kxpListenSpeechIcon, kypListenSpeechIcon);\n\tCreateChildThis(kidListenFXIcon, kidListenFXIcon);\n\tMoveAbsGob(kidListenFXIcon, kxpListenFXIcon, kypListenFXIcon);\n\tCreateChildThis(kidListenMidiIcon, kidListenMidiIcon);\n\tMoveAbsGob(kidListenMidiIcon, kxpListenMidiIcon, kypListenMidiIcon);\n\n\tCreateChildThis(kidListenCancel, kidListenCancel);\n\tCreateChildThis(kidListenOk, kidListenOk);\n\t// help balloon\n\tIf (!::fHelpOn);\n\t\tCreateHelpGob(kidBackground, ktpcEaselHelp34);\n\tEnd;\nENDCHUNK\n\n//\n// Volume sliders\n//\n\n// For limiting slider thumb to legal range.\n#define GetYPos(yPos, min, max)\tyPos = YMouseThis(); \t\\\n\t\t\t\t\t\t\t\tIf(yPos > max);\t\t\\\n\t\t\t\t\t\t\t\t\tyPos = max;\t\t\\\n\t\t\t\t\t\t\t\tElif(yPos < min);\t\\\n\t\t\t\t\t\t\t\t\tyPos = min;\t\t\\\n\t\t\t\t\t\t\t\tEnd;\t\t\t\t\t\t\t\t\t\t\n\nGOBCHUNK(\"Listener easel speech volume slider\", kidListenVolSpeech, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, krepMouseDnOn), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstSliderInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstSliderEnabled, krepDefault), \"Visible\",\n\tkxpVolSpeechLeft, kypVolSpeechTop, kxpVolSpeechRight, kypVolSpeechBottom)\nCREATE_SCRIPT(\"Speech slider - create\")\n\tChangeStateThis(kstSliderInvisible);\n\t// Watch for the volume setting command sent from code.\n\tFilterCmdsThis(cidListenVolSet, cidNil, kchidScript1);\nENDCHUNK\nCHILD_SCRIPT(\"par / filter cids\", kchidScript1)\n\t// Convert the volume in the range 0 -> kvlmFull to the display range.\n\t// _parm[0] is the gok id\n\t// _parm[2] is the required volume setting.\n\n\tkid = _parm[0];\n\n\tIf(kid == kidListenVolSpeech);\n\n\t\tyMax = kypListenVolSpeechMax;\n\t\tyMin = kypListenVolSpeechMin;\n\t\tyNuke = kypSliderNukeSpeech;\n\t\t\n\t\tkidThumb = kidListenVolSpeechThumb;\n\t\tkidAudition = kidListenEditBoxSpeech;\n\t\tkidNuke = kidListenNukeSpeech;\n\n\tElif(kid == kidListenVolFX);\n\n\t\tyMax = kypListenVolFXMax;\n\t\tyMin = kypListenVolFXMin;\n\t\tyNuke = kypSliderNukeFX;\n\t\t\n\t\tkidThumb = kidListenVolFXThumb;\n\t\tkidAudition = kidListenEditBoxFX;\n\t\tkidNuke = kidListenNukeFX;\n\n\tElif(kid == kidListenVolMidi);\n\n\t\tyMax = kypListenVolMidiMax;\n\t\tyMin = kypListenVolMidiMin;\n\t\tyNuke = kypSliderNukeMidi;\n\t\t\n\t\tkidThumb = kidListenVolMidiThumb;\n\t\tkidAudition = kidListenEditBoxMidi;\n\t\tkidNuke = kidListenNukeMidi;\n\n\tElif(kid == kidListenVolSpeechMM);\n\n\t\tyMax = kypListenVolSpeechMMMax;\n\t\tyMin = kypListenVolSpeechMMMin;\n\t\tyNuke = kypSliderNukeSpeechMM;\n\t\t\n\t\tkidThumb = kidListenVolSpeechMMThumb;\n\t\tkidAudition = kidListenEditBoxSpeechMM;\n\t\tkidNuke = kidListenNukeSpeechMM;\n\n\tElif(kid == kidListenVolFXMM);\n\n\t\tyMax = kypListenVolFXMMMax;\n\t\tyMin = kypListenVolFXMMMin;\n\t\tyNuke = kypSliderNukeFXMM;\n\t\t\n\t\tkidThumb = kidListenVolFXMMThumb;\n\t\tkidAudition = kidListenEditBoxFXMM;\n\t\tkidNuke = kidListenNukeFXMM;\n\tEnd;\n\n\tChangeStateGob(kid, kstSliderEnabled);\n\n\tChangeStateGob(kidAudition, kstSliderEnabled);\n\tChangeStateGob(kidNuke, kstSliderEnabled);\n\n\t// Only create the thumb gok if it doesn't exist yet.\n\tIf(!FGobExists(kidThumb));\n\t\tCreateChildGob(kid, kidThumb, kidThumb);\n\tEnd;\n\n\tFullDisplay\t= yNuke - yMin;\n\tNewDisplay\t= (_parm[2] * FullDisplay) / kvlmFull;\n\tyPos\t\t= yNuke - NewDisplay;\n\n\tMoveAbsGob(kidThumb, kxpSliderThumb, yPos);\n\nENDCHUNK\nREP_ANIM(CHID(kstSliderEnabled, kchidDownOn), \"Speech slider - Pressed\")\n\tWhile(GetModifierState() & fcustMouse);\n\t\tCell(chidNil, 0, 0, 4);\n\t\tGetYPos(yPos, kypListenVolSpeechMin, kypListenVolSpeechMax);\n\t\tMoveAbsGob(kidListenVolSpeechThumb, kxpSliderThumb, yPos);\n\tEnd;\nENDCHUNK\nREP_ANIM(CHID(kstSliderEnabled, kchidDownUpOn), \"Up on\")\n\n\tGetYPos(yPos, kypListenVolSpeechMin, kypListenVolSpeechMax);\n\t\n\tFullDisplay\t= kypSliderNukeSpeech - kypListenVolSpeechMin + 1;\n\tNewDisplay\t= kypSliderNukeSpeech - yPos + 1;\n\n\tIf(NewDisplay < 0);\n\t\tNewVolume = -1;\n\tElse;\n\t\tNewVolume = (kvlmFull * NewDisplay) / FullDisplay;\n\tEnd;\n\n\tEnqueueCid(cidEaselVol, GidParGob(GidParThis()), kidListenVolSpeech, NewVolume, 0, 0);\n\tEnqueueCid(cidEaselPlay, GidParGob(GidParThis()), kidListenEditBoxSpeech, 1, 0, 0);\nENDCHUNK\nADOPT_ANIM(LAST_ANIM, CHID(kstSliderEnabled, kchidDownUpOff))\n\nGOBCHUNK(\"Listener easel Speech volume slider thumb\", kidListenVolSpeechThumb, kgokkRectNoHit)\n\tDEFAULT_POSITION( 0, 0, 10)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e4vol1.bmp\",\n\tkxpregListenerNuke, kypregListenerNuke )\n\nGOBCHUNK(\"Listener easel FX volume slider\", kidListenVolFX, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, krepMouseDnOn), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstSliderInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstSliderEnabled, krepDefault), \"Visible\",\n\tkxpVolFXLeft, kypVolFXTop, kxpVolFXRight, kypVolFXBottom)\nREP_ANIM(CHID(kstSliderEnabled, kchidDownOn), \"Down on\")\t\n\tWhile(GetModifierState() & fcustMouse);\n\t\tCell(chidNil, 0, 0, 4);\n\t\tGetYPos(yPos, kypListenVolFXMin, kypListenVolFXMax);\n\t\tMoveAbsGob(kidListenVolFXThumb, kxpSliderThumb, yPos);\n\tEnd;\nENDCHUNK\nREP_ANIM(CHID(kstSliderEnabled, kchidDownUpOn), \"Up on\")\n\t\n\tGetYPos(yPos, kypListenVolFXMin, kypListenVolFXMax);\n\t\n\tFullDisplay\t= kypSliderNukeFX - kypListenVolSpeechMin + 1;\n\tNewDisplay\t= kypSliderNukeFX - yPos + 1;\n\n\tIf(NewDisplay < 0);\n\t\tNewVolume = -1;\n\tElse;\n\t\tNewVolume = (kvlmFull * NewDisplay) / FullDisplay;\n\tEnd;\n\n\tEnqueueCid(cidEaselVol, GidParGob(GidParThis()), kidListenVolFX, NewVolume, 0, 0);\n\tEnqueueCid(cidEaselPlay, GidParGob(GidParThis()), kidListenEditBoxFX, 1, 0, 0);\nENDCHUNK\nADOPT_ANIM(LAST_ANIM, CHID(kstSliderEnabled, kchidDownUpOff))\nCREATE_SCRIPT(\"Speech slider - create\")\n\tChangeStateThis(kstSliderInvisible);\nENDCHUNK\n\nGOBCHUNK(\"Listener easel FX volume slider thumb\", kidListenVolFXThumb, kgokkRectNoHit)\n\tDEFAULT_POSITION( 0, 0, 10)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e4vol1.bmp\",\n\tkxpregListenerNuke, kypregListenerNuke )\n\nGOBCHUNK(\"Listener easel Midi volume slider\", kidListenVolMidi, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, krepMouseDnOn), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstSliderInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstSliderEnabled, krepDefault), \"Visible\",\n\tkxpVolMidiLeft, kypVolMidiTop, kxpVolMidiRight, kypVolMidiBottom)\nREP_ANIM(CHID(kstSliderEnabled, kchidDownOn), \"Down on\")\t\n\tWhile(GetModifierState() & fcustMouse);\n\t\tCell(chidNil, 0, 0, 4);\n\t\tGetYPos(yPos, kypListenVolMidiMin, kypListenVolMidiMax);\n\t\tMoveAbsGob(kidListenVolMidiThumb, kxpSliderThumb, yPos);\n\tEnd;\nENDCHUNK\nREP_ANIM(CHID(kstSliderEnabled, kchidDownUpOn), \"Up on\")\n\t\n\tGetYPos(yPos, kypListenVolMidiMin, kypListenVolMidiMax);\n\t\n\tFullDisplay\t= kypSliderNukeMidi - kypListenVolSpeechMin + 1;\n\tNewDisplay\t= kypSliderNukeMidi - yPos + 1;\n\n\tIf(NewDisplay < 0);\n\t\tNewVolume = -1;\n\tElse;\n\t\tNewVolume = (kvlmFull * NewDisplay) / FullDisplay;\n\tEnd;\n\n\tEnqueueCid(cidEaselVol, GidParGob(GidParThis()), kidListenVolMidi, NewVolume, 0, 0);\n\tEnqueueCid(cidEaselPlay, GidParGob(GidParThis()), kidListenEditBoxMidi, 1, 0, 0);\nENDCHUNK\nADOPT_ANIM(LAST_ANIM, CHID(kstSliderEnabled, kchidDownUpOff))\nCREATE_SCRIPT(\"Speech slider - create\")\n\tChangeStateThis(kstSliderInvisible);\nENDCHUNK\n\nGOBCHUNK(\"Listener easel Midi volume slider thumb\", kidListenVolMidiThumb, kgokkRectNoHit)\n\tDEFAULT_POSITION( 0, 0, 10)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e4vol1.bmp\",\n\tkxpregListenerNuke, kypregListenerNuke )\n\nGOBCHUNK(\"Listener easel speech motion matcher volume slider\", kidListenVolSpeechMM, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, krepMouseDnOn), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstSliderInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstSliderEnabled, krepDefault), \"Visible\",\n\tkxpVolSpeechMMLeft, kypVolSpeechMMTop, kxpVolSpeechMMRight, kypVolSpeechMMBottom)\nREP_ANIM(CHID(kstSliderEnabled, kchidDownOn), \"Down on\")\t\n\tWhile(GetModifierState() & fcustMouse);\n\t\tCell(chidNil, 0, 0, 4);\n\t\tGetYPos(yPos, kypListenVolSpeechMMMin, kypListenVolSpeechMMMax);\n\t\tMoveAbsGob(kidListenVolSpeechMMThumb, kxpSliderThumb, yPos);\n\tEnd;\nENDCHUNK\nREP_ANIM(CHID(kstSliderEnabled, kchidDownUpOn), \"Up on\")\n\t\n\tGetYPos(yPos, kypListenVolSpeechMMMin, kypListenVolSpeechMMMax);\n\t\n\tFullDisplay\t= kypSliderNukeSpeechMM - kypListenVolSpeechMin + 1;\n\tNewDisplay\t= kypSliderNukeSpeechMM - yPos + 1;\n\n\tIf(NewDisplay < 0);\n\t\tNewVolume = -1;\n\tElse;\n\t\tNewVolume = (kvlmFull * NewDisplay) / FullDisplay;\n\tEnd;\n\n\tEnqueueCid(cidEaselVol, GidParGob(GidParThis()), kidListenVolSpeechMM, NewVolume, 0, 0);\n\tEnqueueCid(cidEaselPlay, GidParGob(GidParThis()), kidListenEditBoxSpeechMM, 1, 0, 0);\nENDCHUNK\nADOPT_ANIM(LAST_ANIM, CHID(kstSliderEnabled, kchidDownUpOff))\nCREATE_SCRIPT(\"Speech slider - create\")\n\tChangeStateThis(kstSliderInvisible);\nENDCHUNK\n\nGOBCHUNK(\"Listener easel SpeechMM volume slider thumb\", kidListenVolSpeechMMThumb, kgokkRectNoHit)\n\tDEFAULT_POSITION( 0, 0, 10)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e4vol1.bmp\",\n\tkxpregListenerNuke, kypregListenerNuke )\n\nGOBCHUNK(\"Listener easel FX motion matcher volume slider\", kidListenVolFXMM, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, krepMouseDnOn), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstSliderInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstSliderEnabled, krepDefault), \"Visible\",\n\tkxpVolFXMMLeft, kypVolFXMMTop, kxpVolFXMMRight, kypVolFXMMBottom)\nREP_ANIM(CHID(kstSliderEnabled, kchidDownOn), \"Down on\")\t\n\tWhile(GetModifierState() & fcustMouse);\n\t\tCell(chidNil, 0, 0, 4);\n\t\tGetYPos(yPos, kypListenVolFXMMMin, kypListenVolFXMMMax);\n\t\tMoveAbsGob(kidListenVolFXMMThumb, kxpSliderThumb, yPos);\n\tEnd;\nENDCHUNK\nREP_ANIM(CHID(kstSliderEnabled, kchidDownUpOn), \"Up on\")\n\t\n\tGetYPos(yPos, kypListenVolFXMMMin, kypListenVolFXMMMax);\n\t\n\tFullDisplay\t= kypSliderNukeFXMM - kypListenVolSpeechMin + 1;\n\tNewDisplay\t= kypSliderNukeFXMM - yPos + 1;\n\n\tIf(NewDisplay < 0);\n\t\tNewVolume = -1;\n\tElse;\n\t\tNewVolume = (kvlmFull * NewDisplay) / FullDisplay;\n\tEnd;\n\n\tEnqueueCid(cidEaselVol, GidParGob(GidParThis()), kidListenVolFXMM, NewVolume, 0, 0);\n\tEnqueueCid(cidEaselPlay, GidParGob(GidParThis()), kidListenEditBoxFXMM, 1, 0, 0);\nENDCHUNK\nADOPT_ANIM(LAST_ANIM, CHID(kstSliderEnabled, kchidDownUpOff))\nCREATE_SCRIPT(\"Speech slider - create\")\n\tChangeStateThis(kstSliderInvisible);\nENDCHUNK\n\nGOBCHUNK(\"Listener easel FXMM volume slider thumb\", kidListenVolFXMMThumb, kgokkRectNoHit)\n\tDEFAULT_POSITION( 0, 0, 10)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e4vol1.bmp\",\n\tkxpregListenerNuke, kypregListenerNuke )\n\n//\n// Nuke speech button\n//\nGOBCHUNK(\"Listener easel nuke speech\", kidListenNukeSpeech, kgokkRectHit)\n\tDEFAULT_POSITION( kxpListenNukeSpeech, kypListenNukeSpeech, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstSliderEnabled, kchidClick), cidNil, kttListenNukeSpeech)\nENDCHUNK\nREP_RECT(CHID(kstSliderInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstSliderEnabled, krepDefault), \"studio\\bmp\\e4nuke.bmp\", kxpregListenNukeSpeech, kypregListenNukeSpeech )\nADOPT_MBMP(LAST_MBMP, CHID(kstSliderEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstSliderEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstSliderEnabled, krepMouseDnOn), \"studio\\bmp\\e4nukec.bmp\", kxpregListenNukeSpeech, kypregListenNukeSpeech )\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Listener easel nuke speech - click\", CHID(kstSliderEnabled, kchidClick))\n\tMoveAbsGob(kidListenVolSpeechThumb, kxpSliderThumb, kypListenVolSpeechMax);\n \tEnqueueCid(cidEaselVol, GidParGob(GidParThis()), kidListenVolSpeech, -1, 0, 0);\nENDCHUNK\n\n//\n// Nuke FX button\n//\nGOBCHUNK(\"Listener easel nuke FX\", kidListenNukeFX, kgokkRectHit)\n\tDEFAULT_POSITION( kxpListenNukeFX, kypListenNukeFX, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstSliderEnabled, kchidClick), cidNil, kttListenNukeSpeech)\nENDCHUNK\nREP_RECT(CHID(kstSliderInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstSliderEnabled, krepDefault), \"studio\\bmp\\e4nuke.bmp\", kxpregListenNukeFX, kypregListenNukeFX )\nADOPT_MBMP(LAST_MBMP, CHID(kstSliderEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstSliderEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstSliderEnabled, krepMouseDnOn), \"studio\\bmp\\e4nukec.bmp\", kxpregListenNukeFX, kypregListenNukeFX )\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Listener easel nuke FX - click\", CHID(kstSliderEnabled, kchidClick))\n\tMoveAbsGob(kidListenVolFXThumb, kxpSliderThumb, kypListenVolFXMax);\n \tEnqueueCid(cidEaselVol, GidParGob(GidParThis()), kidListenVolFX, -1, 0, 0);\nENDCHUNK\n\n//\n// Nuke Midi button\n//\nGOBCHUNK(\"Listener easel nuke Midi\", kidListenNukeMidi, kgokkRectHit)\n\tDEFAULT_POSITION( kxpListenNukeMidi, kypListenNukeMidi, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstSliderEnabled, kchidClick), cidNil, kttListenNukeSpeech)\nENDCHUNK\nREP_RECT(CHID(kstSliderInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstSliderEnabled, krepDefault), \"studio\\bmp\\e4nuke.bmp\", kxpregListenNukeMidi, kypregListenNukeMidi )\nADOPT_MBMP(LAST_MBMP, CHID(kstSliderEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstSliderEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstSliderEnabled, krepMouseDnOn), \"studio\\bmp\\e4nukec.bmp\", kxpregListenNukeMidi, kypregListenNukeMidi )\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Listener easel nuke Midi - click\", CHID(kstSliderEnabled, kchidClick))\n\tMoveAbsGob(kidListenVolMidiThumb, kxpSliderThumb, kypListenVolMidiMax);\n \tEnqueueCid(cidEaselVol, GidParGob(GidParThis()), kidListenVolMidi, -1, 0, 0);\nENDCHUNK\n\n//\n// Nuke speech motion matcher button\n//\nGOBCHUNK(\"Listener easel nuke speech motion matcher\", kidListenNukeSpeechMM, kgokkRectHit)\n\tDEFAULT_POSITION( kxpListenNukeSpeechMM, kypListenNukeSpeechMM, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstSliderEnabled, kchidClick), cidNil, kttListenNukeSpeech)\nENDCHUNK\nREP_RECT(CHID(kstSliderInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstSliderEnabled, krepDefault), \"studio\\bmp\\e4nuke.bmp\",  kxpregListenNukeSpeechMM, kypregListenNukeSpeechMM )\nADOPT_MBMP(LAST_MBMP, CHID(kstSliderEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstSliderEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstSliderEnabled, krepMouseDnOn), \"studio\\bmp\\e4nukec.bmp\", kxpregListenNukeSpeechMM, kypregListenNukeSpeechMM )\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Listener easel nuke speech motion matcher - click\", CHID(kstSliderEnabled, kchidClick))\n\tMoveAbsGob(kidListenVolSpeechMMThumb, kxpSliderThumb, kypListenVolSpeechMMMax);\n \tEnqueueCid(cidEaselVol, GidParGob(GidParThis()), kidListenVolSpeechMM, -1, 0, 0);\nENDCHUNK\n\n//\n// Nuke FX motion matcher button\n//\nGOBCHUNK(\"Listener easel nuke FX motion matcher\", kidListenNukeFXMM, kgokkRectHit)\n\tDEFAULT_POSITION( kxpListenNukeFXMM, kypListenNukeFXMM, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstSliderEnabled, kchidClick), cidNil, kttListenNukeSpeech)\nENDCHUNK\nREP_RECT(CHID(kstSliderInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstSliderEnabled, krepDefault), \"studio\\bmp\\e4nuke.bmp\",  kxpregListenNukeFXMM, kypregListenNukeFXMM )\nADOPT_MBMP(LAST_MBMP, CHID(kstSliderEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstSliderEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstSliderEnabled, krepMouseDnOn), \"studio\\bmp\\e4nukec.bmp\", kxpregListenNukeFXMM, kypregListenNukeFXMM )\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Listener easel nuke FX motion matcher - click\", CHID(kstSliderEnabled, kchidClick))\n\tMoveAbsGob(kidListenVolFXMMThumb, kxpSliderThumb, kypListenVolFXMMMax);\n \tEnqueueCid(cidEaselVol, GidParGob(GidParThis()), kidListenVolFXMM, -1, 0, 0);\nENDCHUNK\n\n//\n// Audition areas.\n//\nGOBCHUNK(\"Listener easel audition speech\", kidListenEditBoxSpeech, gokkNoHitKids)\n\tDEFAULT_POSITION(kxpListenEditBoxSpeech, kypListenEditBoxSpeech, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, cidNil, cidNil, kttListenEditBoxSpeech)\nENDCHUNK\nREP_RECT(CHID(kstSliderInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstSliderEnabled, krepDefault), \"studio\\bmp\\e4audit.bmp\",\n\tkxpregListenEditBoxSpeech, kypregListenEditBoxSpeech)\nADOPT_MBMP(LAST_MBMP, CHID(kstSliderEnabled, krepMouseDnOff))\nREP_MBMPREG(kcell1, \"studio\\bmp\\e4auditc.bmp\", kxpregListenEditBoxSpeech, kypregListenEditBoxSpeech)\nREP_MBMPREG(kcell2, \"studio\\bmp\\e4audit.bmp\", kxpregListenEditBoxSpeech, kypregListenEditBoxSpeech)\n// Ignore any btn down event in the audition area.\nREP_ANIM(CHID(kstSliderEnabled, krepMouseUpOn), \"Begin Rollover\")\n\t// User wants an audition of this sound.\n\tEnqueueCid(cidEaselPlay, GidParGob(GidParThis()), kidListenEditBoxSpeech, 1, 0, 0);\n\tCell(kcell1, 0, 0, 0);\nENDCHUNK\nREP_ANIM(CHID(kstSliderEnabled, krepMouseUpOff), \"End Rollover while btn up\")\n\t// End the audition of this sound.\n\tEnqueueCid(cidEaselPlay, GidParGob(GidParThis()), kidListenEditBoxSpeech, 0, 0, 0);\n\tCell(kcell2, 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"Listener easel audition FX\", kidListenEditBoxFX, gokkNoHitKids)\n\tDEFAULT_POSITION(kxpListenEditBoxFX, kypListenEditBoxFX, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, cidNil, cidNil, kttListenEditBoxFX)\nENDCHUNK\nREP_RECT(CHID(kstSliderInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstSliderEnabled, krepDefault), \"studio\\bmp\\e4audit.bmp\",\n\tkxpregListenEditBoxFX, kypregListenEditBoxFX)\nADOPT_MBMP(LAST_MBMP, CHID(kstSliderEnabled, krepMouseDnOff))\nREP_MBMPREG(kcell1, \"studio\\bmp\\e4auditc.bmp\", kxpregListenEditBoxFX, kypregListenEditBoxFX )\nREP_MBMPREG(kcell2, \"studio\\bmp\\e4audit.bmp\", kxpregListenEditBoxFX, kypregListenEditBoxFX )\nREP_ANIM(CHID(kstSliderEnabled, krepMouseUpOn), \"Begin Rollover\")\n\tEnqueueCid(cidEaselPlay, GidParGob(GidParThis()), kidListenEditBoxFX, 1, 0, 0);\n\tCell(kcell1, 0, 0, 0);\nENDCHUNK\nREP_ANIM(CHID(kstSliderEnabled, krepMouseUpOff), \"End Rollover\")\n\tEnqueueCid(cidEaselPlay, GidParGob(GidParThis()), kidListenEditBoxFX, 0, 0, 0);\n\tCell(kcell2, 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"Listener easel audition Midi\", kidListenEditBoxMidi, gokkNoHitKids)\n\tDEFAULT_POSITION(kxpListenEditBoxMidi, kypListenEditBoxMidi, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, cidNil, cidNil, kttListenEditBoxMidi)\nENDCHUNK\nREP_RECT(CHID(kstSliderInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstSliderEnabled, krepDefault), \"studio\\bmp\\e4audit.bmp\",\n\tkxpregListenEditBoxMidi, kypregListenEditBoxMidi)\nADOPT_MBMP(LAST_MBMP, CHID(kstSliderEnabled, krepMouseDnOff))\nREP_MBMPREG(kcell1, \"studio\\bmp\\e4auditc.bmp\", 0, 0)\nREP_MBMPREG(kcell2, \"studio\\bmp\\e4audit.bmp\", 0, 0)\nREP_ANIM(CHID(kstSliderEnabled, krepMouseUpOn), \"Begin Rollover\")\n\tEnqueueCid(cidEaselPlay, GidParGob(GidParThis()), kidListenEditBoxMidi, 1, 0, 0);\n\tCell(kcell1, 0, 0, 0);\nENDCHUNK\nREP_ANIM(CHID(kstSliderEnabled, krepMouseUpOff), \"End Rollover\")\n\tEnqueueCid(cidEaselPlay, GidParGob(GidParThis()), kidListenEditBoxMidi, 0, 0, 0);\n\tCell(kcell2, 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"Listener easel audition speech motion matcher\", kidListenEditBoxSpeechMM, gokkNoHitKids)\n\tDEFAULT_POSITION(kxpListenEditBoxSpeechMM, kypListenEditBoxSpeechMM, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, cidNil, cidNil, kttListenEditBoxSpeechMM)\nENDCHUNK\nREP_RECT(CHID(kstSliderInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstSliderEnabled, krepDefault), \"studio\\bmp\\e4audit.bmp\",\n\tkxpregListenEditBoxSpeechMM, kypregListenEditBoxSpeechMM)\nADOPT_MBMP(LAST_MBMP, CHID(kstSliderEnabled, krepMouseDnOff))\nREP_MBMPREG(kcell1, \"studio\\bmp\\e4auditc.bmp\", 0, 0)\nREP_MBMPREG(kcell2, \"studio\\bmp\\e4audit.bmp\", 0, 0)\nREP_ANIM(CHID(kstSliderEnabled, krepMouseUpOn), \"Begin Rollover\")\n\tEnqueueCid(cidEaselPlay, GidParGob(GidParThis()), kidListenEditBoxSpeechMM, 1, 0, 0);\n\tCell(kcell1, 0, 0, 0);\nENDCHUNK\nREP_ANIM(CHID(kstSliderEnabled, krepMouseUpOff), \"End Rollover while btn up\")\n\tEnqueueCid(cidEaselPlay, GidParGob(GidParThis()), kidListenEditBoxSpeechMM, 0, 0, 0);\n\tCell(kcell2, 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"Listener easel audition FX motion matcher\", kidListenEditBoxFXMM, gokkNoHitKids)\n\tDEFAULT_POSITION(kxpListenEditBoxFXMM, kypListenEditBoxFXMM, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, cidNil, cidNil, kttListenEditBoxFXMM)\nENDCHUNK\nREP_RECT(CHID(kstSliderInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstSliderEnabled, krepDefault), \"studio\\bmp\\e4audit.bmp\",\n\tkxpregListenEditBoxFXMM, kypregListenEditBoxFXMM)\nADOPT_MBMP(LAST_MBMP, CHID(kstSliderEnabled, krepMouseDnOff))\nREP_MBMPREG(kcell1, \"studio\\bmp\\e4auditc.bmp\", 0, 0)\nREP_MBMPREG(kcell2, \"studio\\bmp\\e4audit.bmp\", 0, 0)\nREP_ANIM(CHID(kstSliderEnabled, krepMouseUpOn), \"Begin Rollover\")\n\tEnqueueCid(cidEaselPlay, GidParGob(GidParThis()), kidListenEditBoxFXMM, 1, 0, 0);\n\tCell(kcell1, 0, 0, 0);\nENDCHUNK\nREP_ANIM(CHID(kstSliderEnabled, krepMouseUpOff), \"End Rollover\")\n\tEnqueueCid(cidEaselPlay, GidParGob(GidParThis()), kidListenEditBoxFXMM, 0, 0, 0);\n\tCell(kcell2, 0, 0, 0);\nENDCHUNK\n\n//\n// Cancel button.\n//\nGOBCHUNK(\"Listener easel cancel\", kidListenCancel, kgokkRectHit)\n\tDEFAULT_POSITION(kxpListenCancel, kypListenCancel, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttEaselCancel)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e4can.bmp\",\n\tkxpregListenCancel, kypregListenCancel)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e4canc.bmp\",\n\tkxpregListenCancel, kypregListenCancel)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoCancelWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"Listener easel cancel\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidEaselCancel, GidParGob(GidParThis()), 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Ok button.\n//\nGOBCHUNK(\"Listener easel ok\", kidListenOk, kgokkRectHit)\n\tDEFAULT_POSITION(kxpListenOk, kypListenOk, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttEaselOk)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e4okay.bmp\",\n\tkxpregListenOk, kypregListenOk)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e4okayc.bmp\",\n\tkxpregListenOk, kypregListenOk)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoOkWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"Listener easel ok\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidEaselOk, GidParGob(GidParThis()), 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Tool indicators.\n//\n\n// Indicator Icon for Midi\n\nGOBCHUNK(\"Listener icon for Midi icon\", kidListenMidiIcon, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cidNil)\nENDCHUNK\nREP_RECT(CHID(kstDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG( CHID( kstListenLooper, krepDefault ), \"studio\\bmp\\e4loop.bmp\",0,0  )\nREP_MBMPREG( CHID( kstListenSounderChain, krepDefault ), \"studio\\bmp\\e4queue.bmp\", 0,0 )\nREP_MBMPREG( CHID( kstListenMatcher, krepDefault ), \"studio\\bmp\\e4mm.bmp\", 0,0  )\nREP_MBMPREG( CHID( kstListenSounder, krepDefault ), \"studio\\bmp\\e4snd.bmp\", 0,0 )\n\n// Indicator Icon for speech\n\nGOBCHUNK(\"Listener icon for speech icon\", kidListenSpeechIcon, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cidNil)\nENDCHUNK\nREP_RECT(CHID(kstDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG( CHID( kstListenLooper, krepDefault ), \"studio\\bmp\\e4loop.bmp\",0,0  )\nREP_MBMPREG( CHID( kstListenSounderChain, krepDefault ), \"studio\\bmp\\e4queue.bmp\", 0,0 )\nREP_MBMPREG( CHID( kstListenMatcher, krepDefault ), \"studio\\bmp\\e4mm.bmp\", 0,0  )\nREP_MBMPREG( CHID( kstListenSounder, krepDefault ), \"studio\\bmp\\e4snd.bmp\", 0,0 )\n\n// Indicator Icon for FX\n\nGOBCHUNK(\"Listener easel FX icon\", kidListenFXIcon, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cidNil)\nENDCHUNK\nREP_RECT(CHID(kstDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG( CHID( kstListenLooper, krepDefault ), \"studio\\bmp\\e4loop.bmp\",0,0  )\nREP_MBMPREG( CHID( kstListenSounderChain, krepDefault ), \"studio\\bmp\\e4queue.bmp\", 0,0 )\nREP_MBMPREG( CHID( kstListenMatcher, krepDefault ), \"studio\\bmp\\e4mm.bmp\", 0,0  )\nREP_MBMPREG( CHID( kstListenSounder, krepDefault ), \"studio\\bmp\\e4snd.bmp\", 0,0 )\n\n// Indicator Icon for speech MM\n\nGOBCHUNK(\"Listener easel Speech MM Icon\", kidListenSpeechMMIcon, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cidNil)\nENDCHUNK\nREP_RECT(CHID(kstDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG( CHID( kstListenLooper, krepDefault ), \"studio\\bmp\\e4loop.bmp\",0,0  )\nREP_MBMPREG( CHID( kstListenSounderChain, krepDefault ), \"studio\\bmp\\e4queue.bmp\", 0,0 )\nREP_MBMPREG( CHID( kstListenMatcher, krepDefault ), \"studio\\bmp\\e4mm.bmp\", 0,0  )\nREP_MBMPREG( CHID( kstListenSounder, krepDefault ), \"studio\\bmp\\e4snd.bmp\", 0,0 )\n\n// Indicator Icon for FX motion matcher\n\nGOBCHUNK(\"Listener easel FX MM Icon\", kidListenFXMMIcon, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cidNil)\nENDCHUNK\nREP_RECT(CHID(kstDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG( CHID( kstListenLooper, krepDefault ), \"studio\\bmp\\e4loop.bmp\",0,0  )\nREP_MBMPREG( CHID( kstListenSounderChain, krepDefault ), \"studio\\bmp\\e4queue.bmp\", 0,0 )\nREP_MBMPREG( CHID( kstListenMatcher, krepDefault ), \"studio\\bmp\\e4mm.bmp\", 0,0  )\nREP_MBMPREG( CHID( kstListenSounder, krepDefault ), \"studio\\bmp\\e4snd.bmp\", 0,0 )\n\t\n//\n//\n// Sound Recorder easel\n//\n\n//\n// Recorder easel's very own glass\n//\nGOBCHUNK(\"Recorder easel pane of glass\", kidRecordGlass, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_FILL( CHID(kstDefault, krepDefault ), \"Max\", 0,0, kdxpBackground, kdypBackground, Transparent, Palette( 73 \t))\n\tPATTERN_50\nENDCHUNK\nCREATE_SCRIPT(\"Recorder easel - create\")\n\tCreateChildThis(kidRecordBackground, kidRecordBackground);\nENDCHUNK\nCHILD_SCRIPT(\"Glass clicked\", CHID(kstDefault, kchidClick))\n\tPlaySoundGob(kidBackground, kctgWave, kwavSplot, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n//\n// Recorder easel background\n//\nGOBCHUNK(\"Record easel background\", kidRecordBackground, kgokkRectHit)\n\tDEFAULT_POSITION(kxpRecordBackground, kypRecordBackground, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault ), \"studio\\bmp\\e5par.bmp\", 0, 0)\nADOPT_WAVE(kcnoEzlOpenWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Recorder easel background created\")\n\n\t// Create the sound length indicator controls.\n\tCreateChildThis(kidRecordSoundLength, kidRecordSoundLength);\n\n\t// Create the sound name control.\n\tCreateChildThis(kidRecordSoundName, kidRecordSoundName);\n\n\t// Create the four buttons that lie across the bottom of the easel.\n\n\tCreateChildThis(kidRecordRecord, kidRecordRecord);\n\tCreateChildThis(kidRecordPlay, kidRecordPlay);\n\tCreateChildThis(kidRecordCancel, kidRecordCancel);\n\tCreateChildThis(kidRecordOk, kidRecordOk);\n\t// help balloon\n\tIf (!::fHelpOn);\n\t\tCreateHelpGob(kidBackground, ktpcEaselHelp37);\n\tEnd;\nENDCHUNK\n\n//\n// Sound length area.\n//\nGOBCHUNK(\"Recorder easel sound length\", kidRecordSoundLength, gokkNoHitKids)\n\tDEFAULT_POSITION(0, 0, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, cidNil, cidNil, kttRecordSoundLength)\nENDCHUNK\nREP_FILL( CHID(kstDefault, krepDefault ), \"default\", kxpRecordSoundLengthLeft, kypRecordSoundLengthTop,\n\t\t\t\t\tkxpRecordSoundLengthRight, kypRecordSoundLengthBottom, Palette( 11 ), Transparent)\n\tPATTERN_100\nENDCHUNK\nCREATE_SCRIPT(\"Create recorder length\")\n\n\t// Filter for length setting command.\n\tFilterCmdsThis(cidRecordSetLength, cidNil, kchidScript1);\n\nENDCHUNK\nCHILD_SCRIPT(\"par / filter cids\", kchidScript1)\n\n\t// Fill the length thermometer as required.\n\n\tMaxWidth = kxpRecordSoundLengthRight - kxpRecordSoundLengthLeft + 1;\n\tNewWidth = (MaxWidth * _parm[2]) / 100;\n\n\tResizeThis( NewWidth, kypRecordSoundLengthBottom - kypRecordSoundLengthTop + 1 );\n\t\t\nENDCHUNK\n\n//\n// Parent rectangle for the sound name edit box.\n//\nOBJECT(\"Recorder easel sound name\", kidRecordSoundName, 100, kcrsArrow)\nREP_RECT(CHID(kstDefault, krepDefault), \"Visible\",\n\tkxpRecordSoundNameLeft, kypRecordSoundNameTop, kxpRecordSoundNameRight, kypRecordSoundNameBottom)\n\n\n//\n// Record button.\n//\nGOBCHUNK(\"Recorder easel record\", kidRecordRecord, kgokkRectHit)\n\tDEFAULT_POSITION(kxpRecordRecord, kypRecordRecord, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttRecordRecord)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e5mike.bmp\",\n\tkxpregRecordRecord, kypregRecordRecord)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e5mikes.bmp\",\n\tkxpregRecordRecord, kypregRecordRecord)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Recorder easel Record\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidEaselRecord, kidRecordGlass, 0, 0, 0, 0);\n\t// Set the state of both the record and play buttons here,\n\t// to prevent the two buttons being momentarily down simultaneously.\n\tChangeStateGob(kidRecordPlay, kstDefault);\n\tChangeStateGob(kidRecordRecord, kstSelected);\nENDCHUNK\n\n//\n// Play button.\n//\nGOBCHUNK(\"Recorder easel play\", kidRecordPlay, kgokkRectHit)\n\tDEFAULT_POSITION(kxpRecordPlay, kypRecordPlay, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttRecordPlay)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e5play.bmp\",\n\tkxpregRecordPlay, kypregRecordPlay)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e5plays.bmp\",\n\tkxpregRecordPlay, kypregRecordPlay)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoRPlayWav, CHID(kstDefault, krepClicked))\nADOPT_WAVE(kcnoRPlayWav, CHID(kstSelected, krepClicked))\nCHILD_SCRIPT(\"Recorder easel Play\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidEaselPlay, kidRecordGlass, 0, 0, 0, 0);\n\t// Set the state of both the record and play buttons here,\n\t// to prevent the two buttons being momentarily down simultaneously.\n\tChangeStateGob(kidRecordRecord, kstDefault);\n\tChangeStateGob(kidRecordPlay, kstSelected);\nENDCHUNK\n\n//\n// Cancel button.\n//\nGOBCHUNK(\"Recorder easel cancel\", kidRecordCancel, kgokkRectHit)\n\tDEFAULT_POSITION(kxpRecordCancel, kypRecordCancel, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttRecordEaselCancel)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e5can.bmp\",\n\tkxpregRecordCancel, kypregRecordCancel)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e5canc.bmp\",\n\tkxpregRecordCancel, kypregRecordCancel)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoCancelWav, CHID(kstDefault, krepClicked))\nCLICK_SCRIPT(\"Recorder easel cancel\")\n\tEnqueueCid(cidEaselCancel, kidRecordGlass, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Ok button.\n//\nGOBCHUNK(\"Recorder easel ok\", kidRecordOk, kgokkRectHit)\n\tDEFAULT_POSITION(kxpRecordOk, kypRecordOk, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttRecordEaselOk)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\e5okay.bmp\",\n\tkxpregRecordOk, kypregRecordOk)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\e5okayc.bmp\",\n\tkxpregRecordOk, kypregRecordOk)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoOkWav, CHID(kstDefault, krepClicked))\nCLICK_SCRIPT(\"Recorder easel ok\")\n\tEnqueueCid(cidEaselOk, kidRecordGlass, 0, 0, 0, 0);\nENDCHUNK\n\n"
  },
  {
    "path": "src/studio/esl.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    esl.cpp: Easel classes\n\n    Primary Author: ******\n    Listener Easel: *****\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    ESL is the base class for all easels.  It handles cidEaselOk and\n    cidEaselCancel commands, and calls the virtual _FAcceptChanges()\n    function for cidEaselOk.\n\n    Custom easels have their own command maps to handle specific messages,\n    and implement _FAcceptChanges() to do the right thing.\n\n***************************************************************************/\n#include \"studio.h\"\nASSERTNAME\n\nconst long kcchMaxTdt = 50;                     // max length of a spletter\nconst long kdtsMaxRecord = 10 * kdtsSecond;     // max time to record a sound\nconst long kdtimMeterUpdate = kdtimSecond / 10; // interval to update meter\nconst long kcsampSec = 11025;                   // sampling rate for recorder easel\nlong csampSec;                                  // sampling rate for recorder easel\n\nRTCLASS(ESL)\nRTCLASS(ESLT)\nRTCLASS(ESLA)\nRTCLASS(SNE)\nRTCLASS(ESLL)\nRTCLASS(LSND)\nRTCLASS(ESLR)\n\n/***************************************************************************\n    Function to build a GCB for creating a child GOB\n***************************************************************************/\nbool FBuildGcb(PGCB pgcb, long kidParent, long kidChild)\n{\n    AssertVarMem(pgcb);\n\n    PGOK pgokPar;\n    RC rcRel;\n\n    pgokPar = (PGOK)vpapp->Pkwa()->PgobFromHid(kidParent);\n    if (pvNil == pgokPar)\n    {\n        TrashVar(pgcb);\n        return fFalse;\n    }\n\n    rcRel.Set(krelZero, krelZero, krelOne, krelOne);\n    pgcb->Set(kidChild, pgokPar, fgobNil, kginDefault, pvNil, &rcRel);\n    return fTrue;\n}\n\n/***************************************************************************\n    Sets the given gok to the given state\n***************************************************************************/\nvoid SetGokState(long kid, long st)\n{\n    PGOK pgok;\n\n    pgok = (PGOK)vpapp->Pkwa()->PgobFromHid(kid);\n    if (pvNil != pgok && pgok->FIs(kclsGOK) && pgok->Sno() != st)\n        pgok->FChangeState(st); // ignore failure\n}\n\n//\n//\n//\n//  ESL (generic easel) stuff begins here\n//\n//\n//\n\nBEGIN_CMD_MAP(ESL, GOK)\nON_CID_GEN(cidEaselOk, &ESL::FCmdDismiss, pvNil)\nON_CID_GEN(cidEaselCancel, &ESL::FCmdDismiss, pvNil)\nEND_CMD_MAP_NIL()\n\n/***************************************************************************\n    Create a new easel\n***************************************************************************/\nPESL ESL::PeslNew(PRCA prca, long kidParent, long kidEasel)\n{\n    AssertPo(prca, 0);\n\n    GCB gcb;\n    PESL pesl;\n\n    if (!FBuildGcb(&gcb, kidParent, kidEasel))\n        return pvNil;\n    pesl = NewObj ESL(&gcb);\n    if (pvNil == pesl)\n        return pvNil;\n    if (!pesl->_FInit(prca, kidEasel))\n    {\n        ReleasePpo(&pesl);\n        return pvNil;\n    }\n    AssertPo(pesl, 0);\n    vpcex->EnqueueCid(cidEaselVisible);\n    return pesl;\n}\n\n/***************************************************************************\n    Initialize the easel and make it visible\n***************************************************************************/\nbool ESL::_FInit(PRCA prca, long kidEasel)\n{\n    AssertBaseThis(0);\n    AssertPo(prca, 0);\n\n    if (!ESL_PAR::_FInit(vpapp->Pkwa(), kidEasel, prca))\n        return fFalse;\n    if (!_FEnterState(ksnoInit))\n        return fFalse;\n\n    vpapp->DisableAccel();\n\n    STDIO::PauseActionButton();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Clean up and delete this easel\n***************************************************************************/\nESL::~ESL(void)\n{\n    AssertBaseThis(0);\n\n    vpapp->EnableAccel();\n    STDIO::ResumeActionButton();\n}\n\n/***************************************************************************\n    Dismiss and delete this easel\n***************************************************************************/\nbool ESL::FCmdDismiss(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (pcmd->cid == cidEaselOk)\n    {\n        bool fDismissEasel = fTrue;\n\n        // Could return fTrue here if _FAcceptChanges fails to abort\n        // dismissal of easel, but instead we release anyway to be\n        // consistent with browsers.\n        _FAcceptChanges(&fDismissEasel);\n\n        // If we did not accept the changes, (but nothing failed),\n        // then we will not dismiss the easel.\n        if (!fDismissEasel)\n            return fTrue;\n    }\n    Release(); // destroys entire gob tree\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the ESL.\n***************************************************************************/\nvoid ESL::AssertValid(ulong grf)\n{\n    ESL_PAR::AssertValid(fobjAllocated);\n}\n\n/***************************************************************************\n    Mark memory used by the ESL\n***************************************************************************/\nvoid ESL::MarkMem(void)\n{\n    AssertThis(0);\n    ESL_PAR::MarkMem();\n}\n#endif // DEBUG\n\n//\n//\n//\n//  ESLT (text easel) stuff begins here\n//\n//\n//\n\nBEGIN_CMD_MAP(ESLT, ESL)\nON_CID_GEN(cidEaselRotate, &ESLT::FCmdRotate, pvNil)\nON_CID_GEN(cidEaselTransmogrify, &ESLT::FCmdTransmogrify, pvNil)\nON_CID_GEN(cidEaselFont, &ESLT::FCmdStartPopup, pvNil)\nON_CID_GEN(cidEaselShape, &ESLT::FCmdStartPopup, pvNil)\nON_CID_GEN(cidEaselTexture, &ESLT::FCmdStartPopup, pvNil)\nON_CID_GEN(cidEaselSetFont, &ESLT::FCmdSetFont, pvNil)\nON_CID_GEN(cidEaselSetShape, &ESLT::FCmdSetShape, pvNil)\nON_CID_GEN(cidEaselSetColor, &ESLT::FCmdSetColor, pvNil)\nEND_CMD_MAP_NIL()\n\n/***************************************************************************\n    Create a new text easel.  If pactr is pvNil, this is for a new TDT\n    and pstnNew, tdtsNew, and ptagTdfNew will be used as initial values.\n***************************************************************************/\nPESLT ESLT::PesltNew(PRCA prca, PMVIE pmvie, PACTR pactr, PSTN pstnNew, long tdtsNew, PTAG ptagTdfNew)\n{\n    AssertPo(prca, 0);\n    AssertPo(pmvie, 0);\n    AssertNilOrPo(pactr, 0);\n    AssertNilOrPo(pstnNew, 0);\n    if (tdtsNew != tdtsNil)\n        AssertIn(tdtsNew, 0, tdtsLim);\n    AssertNilOrVarMem(ptagTdfNew);\n\n    PESLT peslt;\n    GCB gcb;\n\n    if (!FBuildGcb(&gcb, kidBackground, kidSpltGlass))\n        return pvNil;\n\n    peslt = NewObj ESLT(&gcb);\n    if (pvNil == peslt)\n        return pvNil;\n    if (!peslt->_FInit(prca, kidSpltGlass, pmvie, pactr, pstnNew, tdtsNew, ptagTdfNew))\n    {\n        ReleasePpo(&peslt);\n        return pvNil;\n    }\n    AssertPo(peslt, 0);\n    vpcex->EnqueueCid(cidEaselVisible);\n\n    return peslt;\n}\n\n/***************************************************************************\n    Set up this easel\n***************************************************************************/\nbool ESLT::_FInit(PRCA prca, long kidEasel, PMVIE pmvie, PACTR pactr, PSTN pstnNew, long tdtsNew, PTAG ptagTdfNew)\n{\n    AssertBaseThis(0);\n    AssertPo(prca, 0);\n    AssertPo(pmvie, 0);\n    AssertNilOrPo(pactr, 0);\n    Assert(pvNil == pactr || pactr->Ptmpl()->FIsTdt(), \"only use ESLT for TDTs\");\n    AssertNilOrPo(pstnNew, 0);\n    if (tdtsNew != tdtsNil)\n        AssertIn(tdtsNew, 0, tdtsLim);\n    AssertNilOrVarMem(ptagTdfNew);\n\n    GCB gcb;\n    COST cost;\n    STN stn;\n    bool fNewTdt = (pactr == pvNil);\n    PTDT ptdt;\n\n    _prca = prca;\n    _pactr = pactr;\n    _pmvie = pmvie;\n\n    if (!ESLT_PAR::_FInit(prca, kidEasel))\n        return fFalse;\n    if (!FBuildGcb(&gcb, kidSpltPreviewFrame, CMH::HidUnique()))\n        return fFalse;\n\n    _psflTdts = NewObj SFL;\n    if (pvNil == _psflTdts)\n        return fFalse;\n\n    _psflTdf = NewObj SFL;\n    if (pvNil == _psflTdf)\n        return fFalse;\n\n    _psflMtrl = NewObj SFL;\n    if (pvNil == _psflMtrl)\n        return fFalse;\n\n    if (fNewTdt)\n    {\n        AssertPo(pstnNew, 0);\n        AssertIn(tdtsNew, 0, tdtsLim);\n        AssertVarMem(ptagTdfNew);\n\n        ptdt = TDT::PtdtNew(pstnNew, tdtsNew, ptagTdfNew);\n        if (pvNil == ptdt)\n            return fFalse;\n        _pape = APE::PapeNew(&gcb, ptdt, pvNil, 0, fFalse, _prca);\n        ReleasePpo(&ptdt);\n        if (pvNil == _pape)\n            return fFalse;\n        stn = *pstnNew;\n    }\n    else\n    {\n        // We have to make a duplicate TDT rather than use the existing one\n        // because the user may experimentally change the TDT, then hit Cancel.\n        if (!cost.FGet(pactr->Pbody()))\n            return fFalse;\n        ptdt = ((PTDT)pactr->Ptmpl())->PtdtDup();\n        if (pvNil == ptdt)\n            return fFalse;\n        _pape = APE::PapeNew(&gcb, ptdt, &cost, 0, fFalse, _prca);\n        ReleasePpo(&ptdt);\n        if (pvNil == _pape)\n            return fFalse;\n        pactr->Ptmpl()->GetName(&stn);\n    }\n\n    // Set up the edit box\n    if (!FBuildGcb(&gcb, kidSpltEditBox, CMH::HidUnique()))\n        return fFalse;\n    EDPAR edpar(gcb._hid, gcb._pgob, gcb._grfgob, gcb._gin, &gcb._rcAbs, &gcb._rcRel, vpappb->OnnDefVariable(), 0,\n                vpappb->DypTextDef(), tahLeft, tavCenter);\n    _psne = SNE::PsneNew(&edpar, this, &stn);\n    if (pvNil == _psne)\n        return fFalse;\n    _psne->Activate(fTrue);\n    _psne->SetSel(0, _psne->IchMac(), fFalse); // select all of the text\n    _psne->SetCursCno(_prca, kcrsIBeam);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Clean up and delete this easel.  Note that I don't need to delete\n    _psne or _pape because they're GOBs and are automatically destroyed\n    with the gob tree.\n***************************************************************************/\nESLT::~ESLT(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_psflTdts);\n    ReleasePpo(&_psflTdf);\n    ReleasePpo(&_psflMtrl);\n    ReleasePpo(&_pbclTdf);\n    ReleasePpo(&_pbclMtrl);\n}\n\n/***************************************************************************\n    Handle a rotate command\n***************************************************************************/\nbool ESLT::FCmdRotate(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    _pape->ChangeView();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle a transmogrify command (pick a random shape, font, and material)\n***************************************************************************/\nbool ESLT::FCmdTransmogrify(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    long tdts;\n    CKI cki;\n    long ithd;\n    THD thd;\n    TAG tagTdf;\n    TAG tagMtrl;\n\n    vpappb->BeginLongOp();\n\n    // Pick a random shape\n    tdts = _psflTdts->LwNext(tdtsLim);\n\n    // Pick a random font\n    if (pvNil == _pbclTdf)\n    {\n        cki.ctg = kctgTfth;\n        cki.cno = cnoNil;\n        _pbclTdf = BCL::PbclNew(pvNil, &cki, ctgNil, pvNil, fTrue);\n    }\n    if (_pbclTdf != pvNil && _pbclTdf->IthdMac() != 0)\n    {\n        ithd = _psflTdf->LwNext(_pbclTdf->IthdMac());\n        _pbclTdf->GetThd(ithd, &thd);\n        tagTdf = thd.tag;\n        if (vptagm->FCacheTagToHD(&tagTdf))\n        {\n            // Failure here is harmless\n            _pape->FChangeTdt(pvNil, tdts, &tagTdf);\n        }\n    }\n\n    // Pick a random material\n    if (pvNil == _pbclMtrl)\n    {\n        cki.ctg = kctgMtth;\n        cki.cno = cnoNil;\n        _pbclMtrl = BCL::PbclNew(pvNil, &cki, ctgNil, pvNil, fTrue);\n    }\n    if (_pbclMtrl != pvNil && _pbclMtrl->IthdMac() != 0)\n    {\n        ithd = _psflMtrl->LwNext(_pbclMtrl->IthdMac());\n        _pbclMtrl->GetThd(ithd, &thd);\n        tagMtrl = thd.tag;\n        if (vptagm->FCacheTagToHD(&tagMtrl))\n        {\n            // Failure here is harmless\n            _pape->FSetTdtMtrl(&tagMtrl);\n        }\n    }\n\n    vpappb->EndLongOp();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Start a popup\n***************************************************************************/\nbool ESLT::FCmdStartPopup(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    CKI ckiGPar;\n    long kid;\n    long ithumSelect = ivNil;\n    long sidSelect = vpapp->SidProduct();\n    long cidSelect;\n    TAG tagTdf;\n    long tdts;\n    CNO cnoSelect;\n\n    ckiGPar.cno = cnoNil;\n\n    switch (pcmd->cid)\n    {\n    case cidEaselFont:\n        ckiGPar.ctg = kctgTfth;\n        kid = kidSpltsFont;\n        _pape->GetTdtInfo(pvNil, pvNil, &tagTdf);\n        ithumSelect = tagTdf.cno;\n        sidSelect = tagTdf.sid;\n        cidSelect = cidEaselSetFont;\n        break;\n\n    case cidEaselShape:\n        ckiGPar.ctg = kctgTsth;\n        kid = kidSpltsShape;\n        _pape->GetTdtInfo(pvNil, &tdts, pvNil);\n        ithumSelect = tdts;\n        cidSelect = cidEaselSetShape;\n        break;\n\n    case cidEaselTexture:\n        ckiGPar.ctg = kctgMtth;\n        if (_pape->FGetTdtMtrlCno(&cnoSelect))\n            ithumSelect = cnoSelect;\n        else\n            ithumSelect = ivNil;\n        kid = kidSpltsColor;\n        cidSelect = cidEaselSetColor;\n        break;\n\n    default:\n        Bug(\"Invalid cid for ESLT::FCmdStartPopup\");\n        break;\n    }\n\n    MP::PmpNew(kidSpltBackground, kid, _prca, pcmd, kbwsCnoRoot, ithumSelect, sidSelect, ckiGPar, ctgNil, this,\n               cidSelect, fTrue);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle a command to change the font\n***************************************************************************/\nbool ESLT::FCmdSetFont(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    TAG tagTdfOld;\n    TAG tagTdfNew;\n\n    tagTdfNew.sid = pcmd->rglw[1];\n    tagTdfNew.pcrf = pvNil;\n    tagTdfNew.ctg = kctgTdf;\n    tagTdfNew.cno = pcmd->rglw[0];\n\n    _pape->GetTdtInfo(pvNil, pvNil, &tagTdfOld);\n    if (fcmpEq == vptagm->FcmpCompareTags(&tagTdfOld, &tagTdfNew))\n        return fTrue; // nothing to do\n\n    // If FChangeTdt fails, someone will report the error\n    if (vptagm->FCacheTagToHD(&tagTdfNew))\n        _pape->FChangeTdt(pvNil, tdtsNil, &tagTdfNew);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle a command to change the shape\n***************************************************************************/\nbool ESLT::FCmdSetShape(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    long tdtsOld;\n    long tdtsNew = pcmd->rglw[0];\n\n    _pape->GetTdtInfo(pvNil, &tdtsOld, pvNil);\n    // If FChangeTdt fails, someone will report the error\n    if (tdtsOld != tdtsNew)\n        _pape->FChangeTdt(pvNil, tdtsNew, pvNil);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle a command to change the color\n***************************************************************************/\nbool ESLT::FCmdSetColor(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    TAG tagTdfNew;\n\n    tagTdfNew.sid = pcmd->rglw[1];\n    tagTdfNew.pcrf = pvNil;\n    tagTdfNew.ctg = kctgMtrl;\n    tagTdfNew.cno = pcmd->rglw[0];\n\n    // If FSetTdtMtrl fails, someone will report the error\n    if (vptagm->FCacheTagToHD(&tagTdfNew))\n        _pape->FSetTdtMtrl(&tagTdfNew);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Update the APE when the text of the SNE changed\n***************************************************************************/\nbool ESLT::FTextChanged(PSTN pstnNew)\n{\n    AssertBaseThis(0); // we may still be setting up the ESLT\n    AssertPo(pstnNew, 0);\n\n    return _pape->FChangeTdt(pstnNew, tdtsNil, pvNil);\n}\n\n/***************************************************************************\n    Make the changes to pactr\n***************************************************************************/\nbool ESLT::_FAcceptChanges(bool *pfDismissEasel)\n{\n    AssertThis(0);\n    AssertVarMem(pfDismissEasel);\n\n    long ich;\n    bool fNonSpaceFound = fFalse;\n    PACTR pactrDup = pvNil;\n    bool fChangesMade = fFalse;\n    PTDT ptdtOld;\n    STN stnOld;\n    long tdtsOld;\n    TAG tagTdfOld;\n    STN stnNew;\n    long tdtsNew;\n    TAG tagTdfNew;\n    long cbset;\n    long ibset;\n    tribool fMtrl;\n    long cmid;\n    TAG tagMtrl;\n\n    if (pvNil == _pactr) // new TDT\n    {\n        _pape->GetTdtInfo(&stnNew, &tdtsNew, &tagTdfNew);\n        for (ich = 0; ich < stnNew.Cch(); ich++)\n        {\n            if (stnNew.Psz()[ich] != ChLit(' '))\n            {\n                fNonSpaceFound = fTrue;\n                break;\n            }\n        }\n        if (!fNonSpaceFound)\n        {\n            // user deleted all text, so treat like a cancel\n            vpcex->EnqueueCid(cidEaselClosing, pvNil, pvNil, fFalse);\n            return fTrue;\n        }\n        if (!_pmvie->FInsTdt(&stnNew, tdtsNew, &tagTdfNew))\n            goto LFail;\n        _pactr = _pmvie->Pscen()->PactrSelected();\n\n        cbset = _pape->Cbset();\n        // Now apply costume changes\n        for (ibset = 0; ibset < cbset; ibset++)\n        {\n            if (_pape->FGetMaterial(ibset, &fMtrl, &cmid, &tagMtrl))\n            {\n                if (!_pactr->FSetCostumeCore(ibset, &tagMtrl, cmid, (tribool)!fMtrl))\n                    goto LFail;\n                fChangesMade = fTrue;\n            }\n        }\n        _pmvie->PmvuCur()->StartPlaceActor();\n    }\n    else\n    {\n        ptdtOld = (PTDT)_pactr->Ptmpl();\n\n        if (!_pactr->FDup(&pactrDup))\n            goto LFail;\n\n        // first apply TDT changes\n        ptdtOld->GetInfo(&stnOld, &tdtsOld, &tagTdfOld);\n        _pape->GetTdtInfo(&stnNew, &tdtsNew, &tagTdfNew);\n        if (!stnOld.FEqual(&stnNew) || tdtsOld != tdtsNew || fcmpEq != TAGM::FcmpCompareTags(&tagTdfOld, &tagTdfNew))\n        {\n            if (!_pmvie->FChangeActrTdt(_pactr, &stnNew, tdtsNew, &tagTdfNew))\n                goto LFail;\n            fChangesMade = fTrue;\n        }\n\n        // Now apply costume changes\n        cbset = _pape->Cbset();\n        for (ibset = 0; ibset < cbset; ibset++)\n        {\n            if (_pape->FGetMaterial(ibset, &fMtrl, &cmid, &tagMtrl))\n            {\n                if (!_pactr->FSetCostumeCore(ibset, &tagMtrl, cmid, (tribool)!fMtrl))\n                    goto LFail;\n                fChangesMade = fTrue;\n            }\n        }\n\n        if (fChangesMade)\n        {\n            if (!_pactr->FCreateUndo(pactrDup))\n                goto LFail;\n        }\n        ReleasePpo(&pactrDup);\n    }\n    vpcex->EnqueueCid(cidEaselClosing, pvNil, pvNil, fTrue);\n    _pmvie->Pscen()->SelectActr(_pactr);\n    return fTrue;\nLFail:\n    if (_pactr != pvNil)\n    {\n        if (pvNil != pactrDup)\n        {\n            _pactr->Restore(pactrDup);\n            ReleasePpo(&pactrDup);\n        }\n        PushErc(ercSoc3DWordChange);\n    }\n    else\n        PushErc(ercSoc3DWordCreate);\n    return fFalse;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the ESLT.\n***************************************************************************/\nvoid ESLT::AssertValid(ulong grf)\n{\n    ESLT_PAR::AssertValid(fobjAllocated);\n    AssertPo(_pmvie, 0);\n    AssertNilOrPo(_pactr, 0);\n    AssertPo(_pape, 0);\n    AssertPo(_psne, 0);\n    AssertPo(_prca, 0);\n    AssertPo(_psflTdts, 0);\n    AssertPo(_psflTdf, 0);\n    AssertPo(_psflMtrl, 0);\n    AssertNilOrPo(_pbclTdf, 0);\n    AssertNilOrPo(_pbclMtrl, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the ESLT.  The _pape and _psne are marked\n    automatically with the GOB tree.\n***************************************************************************/\nvoid ESLT::MarkMem(void)\n{\n    AssertThis(0);\n    ESLT_PAR::MarkMem();\n    MarkMemObj(_psflTdts);\n    MarkMemObj(_psflTdf);\n    MarkMemObj(_psflMtrl);\n    MarkMemObj(_pbclTdf);\n    MarkMemObj(_pbclMtrl);\n}\n#endif // DEBUG\n\n//\n//\n//\n//  SNE (spletter name editor) stuff begins here\n//\n//\n//\n\n/***************************************************************************\n    Create a new spletter name editor with initial string pstnInit.  Text\n    change notifications will be sent to peslt.\n***************************************************************************/\nPSNE SNE::PsneNew(PEDPAR pedpar, PESLT peslt, PSTN pstnInit)\n{\n    AssertVarMem(pedpar);\n    AssertBasePo(peslt, 0);\n    AssertPo(pstnInit, 0);\n\n    PSNE psne;\n\n    psne = NewObj SNE(pedpar);\n    if (pvNil == psne)\n        return pvNil;\n\n    if (!psne->_FInit())\n    {\n        ReleasePpo(&psne);\n        return pvNil;\n    }\n\n    psne->_peslt = peslt;\n    psne->SetStn(pstnInit, fFalse);\n    return psne;\n}\n\n/***************************************************************************\n    Trap the default FReplace to prevent illegal strings and to notify the\n    ESLT that the text has changed.\n***************************************************************************/\nbool SNE::FReplace(achar *prgch, long cchIns, long ich1, long ich2, long gin)\n{\n    AssertThis(0);\n\n    STN stnOld;\n    STN stnNew;\n\n    GetStn(&stnOld);\n\n    // Note that gin is forced to ginNil here so there's no flicker if\n    // the resulting text is illegal\n    if (!SNE_PAR::FReplace(prgch, cchIns, ich1, ich2, ginNil))\n        return fFalse;\n\n    // Look for illegal strings:\n    GetStn(&stnNew);\n    if (stnNew.Cch() > kcchMaxTdt)\n    {\n        SetStn(&stnOld, fFalse);\n        GetStn(&stnNew);\n    }\n#ifdef DEBUG\n    else if (stnNew.Cch() == 5 && stnNew.Psz()[0] == ChLit(')') && stnNew.Psz()[4] == ChLit('('))\n    {\n        // Hack for testing: \")xxx(\" changes the TDT to\n        // all ASCII values from xxx to xxx + kcchMaxTdt (or up to chNil).\n        STN stnT;\n        achar rgch[kcchMaxTdt];\n        long ichStart;\n        long ich;\n        long cch = 0;\n\n        stnT.SetRgch(&stnNew.Psz()[1], 3);\n        if (stnT.FGetLw(&ichStart, 10))\n        {\n            for (ich = 0; ich < kcchMaxTdt; ich++)\n            {\n                rgch[ich] = (achar)ichStart + (achar)ich;\n                if (rgch[ich] == chNil)\n                    break;\n                cch++;\n            }\n            SNE_PAR::FReplace(rgch, cch, 0, IchMac(), fFalse);\n            GetStn(&stnNew);\n        }\n    }\n#endif // DEBUG\n\n    // Notify the easel so the TDT can be updated\n    if (!_peslt->FTextChanged(&stnNew))\n        SetStn(&stnOld, fFalse);\n\n    // Now do the actual update\n    _UpdateLn(0, 1, 1, _dypLine, gin);\n\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the SNE.\n***************************************************************************/\nvoid SNE::AssertValid(ulong grf)\n{\n    SNE_PAR::AssertValid(fobjAllocated);\n    AssertBasePo(_peslt, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the SNE\n***************************************************************************/\nvoid SNE::MarkMem(void)\n{\n    AssertThis(0);\n    SNE_PAR::MarkMem();\n}\n#endif // DEBUG\n\n//\n//\n//\n//  ESLA (actor easel) stuff begins here\n//\n//\n//\n\nBEGIN_CMD_MAP(ESLA, ESL)\nON_CID_GEN(cidEaselRotate, &ESLA::FCmdRotate, pvNil)\nON_CID_GEN(cidEaselCostumes, &ESLA::FCmdTool, pvNil)\nON_CID_GEN(cidEaselAccessories, &ESLA::FCmdTool, pvNil)\nEND_CMD_MAP_NIL()\n\n/***************************************************************************\n    Create a new actor easel\n***************************************************************************/\nPESLA ESLA::PeslaNew(PRCA prca, PMVIE pmvie, PACTR pactr)\n{\n    AssertPo(prca, 0);\n    AssertPo(pmvie, 0);\n    AssertPo(pactr, 0);\n\n    PESLA pesla;\n    GCB gcb;\n\n    if (!FBuildGcb(&gcb, kidBackground, kidCostGlass))\n        return pvNil;\n\n    pesla = NewObj ESLA(&gcb);\n    if (pvNil == pesla)\n        return pvNil;\n    if (!pesla->_FInit(prca, kidCostGlass, pmvie, pactr))\n    {\n        ReleasePpo(&pesla);\n        return pvNil;\n    }\n    AssertPo(pesla, 0);\n    vpcex->EnqueueCid(cidEaselVisible);\n\n    return pesla;\n}\n\n/***************************************************************************\n    Set up this easel\n***************************************************************************/\nbool ESLA::_FInit(PRCA prca, long kidEasel, PMVIE pmvie, PACTR pactr)\n{\n    AssertBaseThis(0);\n    AssertPo(prca, 0);\n    AssertPo(pmvie, 0);\n    AssertPo(pactr, 0);\n\n    GCB gcb;\n    COST cost;\n    STN stn;\n    EDPAR edpar;\n\n    if (!ESLA_PAR::_FInit(prca, kidEasel))\n        return fFalse;\n    if (!cost.FGet(pactr->Pbody()))\n        return fFalse;\n    if (!FBuildGcb(&gcb, kidCostPreviewFrame, CMH::HidUnique()))\n        return fFalse;\n    _pape = APE::PapeNew(&gcb, pactr->Ptmpl(), &cost, pactr->AnidCur(), fFalse, prca);\n    if (pvNil == _pape)\n        return fFalse;\n    _pape->SetToolIncCmtl();\n\n    if (!FBuildGcb(&gcb, kidCostEditBox, CMH::HidUnique()))\n        return fFalse;\n    edpar.Set(gcb._hid, gcb._pgob, gcb._grfgob, gcb._gin, &gcb._rcAbs, &gcb._rcRel, vpappb->OnnDefVariable(), 0,\n              vpappb->DypTextDef(), tahLeft, tavCenter);\n    _pmvie = pmvie;\n    _pactr = pactr;\n    _pactr->GetName(&stn);\n    _pedsl = EDSL::PedslNew(&edpar);\n    if (pvNil == _pedsl)\n        return fFalse;\n    _pedsl->SetStn(&stn);\n    _pedsl->SetSel(0, _pedsl->IchMac()); // select all of the text\n    _pedsl->Activate(fTrue);\n    _pedsl->SetCursCno(prca, kcrsIBeam);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Clean up and delete this easel.  Note that I don't need to delete\n    _pedsl or _pape because they're GOBs and are automatically destroyed\n    with the gob tree.\n***************************************************************************/\nESLA::~ESLA(void)\n{\n    AssertBaseThis(0);\n}\n\n/***************************************************************************\n    Handle a rotate command\n***************************************************************************/\nbool ESLA::FCmdRotate(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    _pape->ChangeView();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle a tool change command\n***************************************************************************/\nbool ESLA::FCmdTool(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    switch (pcmd->cid)\n    {\n    case cidEaselAccessories:\n        _pape->SetToolIncAccessory();\n        break;\n\n    case cidEaselCostumes:\n        _pape->SetToolIncCmtl();\n        break;\n\n    default:\n        Bug(\"unexpected cid\");\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Make the changes to _pactr\n***************************************************************************/\nbool ESLA::_FAcceptChanges(bool *pfDismissEasel)\n{\n    AssertThis(0);\n    AssertVarMem(pfDismissEasel);\n\n    PACTR pactrDup;\n    bool fNonSpaceFound;\n    long ich;\n    bool fChangesMade = fFalse;\n    STN stnOld;\n    STN stnNew;\n    long cbset;\n    long ibset;\n    tribool fMtrl;\n    long cmid;\n    TAG tagMtrl;\n\n    if (!_pactr->FDup(&pactrDup))\n        return fFalse;\n\n    _pactr->GetName(&stnOld);\n    _pedsl->GetStn(&stnNew);\n    if (!stnOld.FEqual(&stnNew))\n    {\n        // Check for empty or \"spaces only\" string\n        fNonSpaceFound = fFalse;\n        for (ich = 0; ich < stnNew.Cch(); ich++)\n        {\n            if (stnNew.Psz()[ich] != ChLit(' '))\n            {\n                fNonSpaceFound = fTrue;\n                break;\n            }\n        }\n        if (fNonSpaceFound)\n        {\n            if (!_pmvie->FNameActr(_pactr->Arid(), &stnNew))\n                goto LFail;\n            fChangesMade = fTrue;\n        }\n    }\n\n    // Now apply costume changes\n    cbset = _pape->Cbset();\n    for (ibset = 0; ibset < cbset; ibset++)\n    {\n        if (_pape->FGetMaterial(ibset, &fMtrl, &cmid, &tagMtrl))\n        {\n            if (!_pactr->FSetCostumeCore(ibset, &tagMtrl, cmid, (tribool)!fMtrl))\n                goto LFail;\n            fChangesMade = fTrue;\n        }\n    }\n\n    if (fChangesMade)\n    {\n        if (!_pactr->FCreateUndo(pactrDup, fFalse, &stnOld))\n            goto LFail;\n    }\n    ReleasePpo(&pactrDup);\n    return fTrue;\nLFail:\n    _pactr->Restore(pactrDup);\n    ReleasePpo(&pactrDup);\n    return fFalse;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the ESLA.\n***************************************************************************/\nvoid ESLA::AssertValid(ulong grf)\n{\n    ESLA_PAR::AssertValid(fobjAllocated);\n    AssertPo(_pmvie, 0);\n    AssertPo(_pactr, 0);\n    AssertPo(_pape, 0);\n    AssertPo(_pedsl, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the ESLA.  The _pape and _pedsl are marked\n    automatically with the GOB tree.\n***************************************************************************/\nvoid ESLA::MarkMem(void)\n{\n    AssertThis(0);\n    ESLA_PAR::MarkMem();\n}\n#endif // DEBUG\n\n//\n//\n//  ESLL (EaSeL Listener)\n//\tThe Listener displays either all background sounds or the\n//  actor Sound Effects and the actor Speech sounds of highest precedence.\n//  Note:  A sounder speech sound takes precedence over a motion match\n//  speech sound\n//\n\nBEGIN_CMD_MAP(ESLL, ESL)\nON_CID_GEN(cidEaselVol, &ESLL::FCmdVlm, pvNil)\nON_CID_GEN(cidEaselPlay, &ESLL::FCmdPlay, pvNil)\nEND_CMD_MAP_NIL()\n\n/***************************************************************************\n    Create a new listener easel\n***************************************************************************/\nPESLL ESLL::PesllNew(PRCA prca, PMVIE pmvie, PACTR pactr)\n{\n    AssertPo(prca, 0);\n    AssertPo(pmvie, 0);\n    AssertNilOrPo(pactr, 0);\n\n    PESLL pesll;\n    GCB gcb;\n    long kidGlass;\n\n    if (pvNil == pactr)\n        kidGlass = kidListenGlassBkgd;\n    else\n        kidGlass = kidListenGlassActor;\n\n    if (!FBuildGcb(&gcb, kidBackground, kidGlass))\n        return pvNil;\n\n    pesll = NewObj ESLL(&gcb);\n    if (pvNil == pesll)\n        return pvNil;\n    if (!pesll->_FInit(prca, kidGlass, pmvie, pactr))\n    {\n        ReleasePpo(&pesll);\n        return pvNil;\n    }\n    AssertPo(pesll, 0);\n    vpcex->EnqueueCid(cidEaselVisible);\n\n    return pesll;\n}\n\n/***************************************************************************\n    Set up this easel\n***************************************************************************/\nbool ESLL::_FInit(PRCA prca, long kidEasel, PMVIE pmvie, PACTR pactr)\n{\n    AssertBaseThis(0);\n    AssertPo(prca, 0);\n    AssertPo(pmvie, 0);\n    AssertNilOrPo(pactr, 0);\n\n    PGL pgltag;\n    long vlm;\n    bool fLoop;\n\n    if (!ESLL_PAR::_FInit(prca, kidEasel))\n        return fFalse;\n    _pmvie = pmvie;\n    _pscen = pmvie->Pscen();\n    _pactr = pactr;\n\n    if (pvNil == pactr)\n    {\n        // Scene sounds\n\n        // Speech\n        if (!_pscen->FQuerySnd(stySpeech, &pgltag, &vlm, &fLoop))\n            return fFalse;\n        if (!_lsndSpeech.FInit(stySpeech, kidListenVolSpeech, kidListenSpeechIcon, kidListenEditBoxSpeech, &pgltag, vlm,\n                               fLoop, 0, fFalse))\n        {\n            return fFalse;\n        }\n\n        // SFX\n        if (!_pscen->FQuerySnd(stySfx, &pgltag, &vlm, &fLoop))\n            return fFalse;\n        if (!_lsndSfx.FInit(stySfx, kidListenVolFX, kidListenFXIcon, kidListenEditBoxFX, &pgltag, vlm, fLoop, 0,\n                            fFalse))\n        {\n            return fFalse;\n        }\n\n        // Midi\n        if (!_pscen->FQuerySnd(styMidi, &pgltag, &vlm, &fLoop))\n            return fFalse;\n        if (!_lsndMidi.FInit(styMidi, kidListenVolMidi, kidListenMidiIcon, kidListenEditBoxMidi, &pgltag, vlm, fLoop, 0,\n                             fFalse))\n        {\n            return fFalse;\n        }\n    }\n    else\n    {\n        // Actor sounds\n\n        // Speech\n        if (!_pactr->FQuerySnd(stySpeech, fFalse, &pgltag, &vlm, &fLoop))\n            return fFalse;\n        if (!_lsndSpeech.FInit(stySpeech, kidListenVolSpeech, kidListenSpeechIcon, kidListenEditBoxSpeech, &pgltag, vlm,\n                               fLoop, _pactr->Arid(), fFalse))\n        {\n            return fFalse;\n        }\n\n        // SFX\n        if (!_pactr->FQuerySnd(stySfx, fFalse, &pgltag, &vlm, &fLoop))\n            return fFalse;\n        if (!_lsndSfx.FInit(stySfx, kidListenVolFX, kidListenFXIcon, kidListenEditBoxFX, &pgltag, vlm, fLoop,\n                            _pactr->Arid(), fFalse))\n        {\n            return fFalse;\n        }\n\n        // Motion-match speech\n        // If no non-motion match speech sounds take precedence, display\n        // motion match speech sounds\n        if (!_lsndSpeech.FValidSnd())\n        {\n            if (!_pactr->FQuerySnd(stySpeech, fTrue, &pgltag, &vlm, &fLoop))\n                return fFalse;\n            if (!_lsndSpeechMM.FInit(stySpeech, kidListenVolSpeechMM, kidListenSpeechMMIcon, kidListenEditBoxSpeechMM,\n                                     &pgltag, vlm, fLoop, _pactr->Arid(), fTrue))\n            {\n                return fFalse;\n            }\n        }\n\n        // Motion-match SFX\n        // If no non-motion match sound effects sounds take precedence, display\n        // motion match sound effects sounds\n        if (!_lsndSfx.FValidSnd())\n        {\n            if (!_pactr->FQuerySnd(stySfx, fTrue, &pgltag, &vlm, &fLoop))\n                return fFalse;\n            if (!_lsndSfxMM.FInit(stySfx, kidListenVolFXMM, kidListenFXMMIcon, kidListenEditBoxFXMM, &pgltag, vlm,\n                                  fLoop, _pactr->Arid(), fTrue))\n            {\n                return fFalse;\n            }\n        }\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Are there valid sounds in this Lsnd?\n***************************************************************************/\nbool LSND::FValidSnd(void)\n{\n    AssertThis(0);\n    PMSND pmsnd;\n    long itag;\n    TAG tag;\n\n    if (pvNil == _pgltag)\n        return fFalse;\n\n    for (itag = 0; itag < _pgltag->IvMac(); itag++)\n    {\n        _pgltag->Get(itag, &tag);\n        pmsnd = (PMSND)vptagm->PbacoFetch(&tag, MSND::FReadMsnd);\n        if (pvNil == pmsnd)\n            continue;\n        if (!pmsnd->FValid())\n        {\n            ReleasePpo(&pmsnd);\n            continue;\n        }\n        ReleasePpo(&pmsnd);\n        return fTrue;\n    }\n    return fFalse;\n}\n\n/***************************************************************************\n    Clean up and delete this easel\n***************************************************************************/\nESLL::~ESLL(void)\n{\n    AssertBaseThis(0);\n}\n\n/***************************************************************************\n    Handle a Listener volume change command\n***************************************************************************/\nbool ESLL::FCmdVlm(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    long kid = pcmd->rglw[0];\n    long vlm = pcmd->rglw[1];\n\n    switch (kid)\n    {\n    case kidListenVolSpeech:\n        _lsndSpeech.SetVlmNew(vlm);\n        break;\n    case kidListenVolFX:\n        _lsndSfx.SetVlmNew(vlm);\n        break;\n    case kidListenVolSpeechMM:\n        _lsndSpeechMM.SetVlmNew(vlm);\n        break;\n    case kidListenVolFXMM:\n        _lsndSfxMM.SetVlmNew(vlm);\n        break;\n    case kidListenVolMidi:\n        _lsndMidi.SetVlmNew(vlm);\n        break;\n    default:\n        Bug(\"Invalid kid\");\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Handle a Listener play command\n***************************************************************************/\nbool ESLL::FCmdPlay(PCMD pcmd)\n{\n    AssertVarMem(pcmd);\n    AssertNilOrPo(_pactr, 0);\n\n    long kid = pcmd->rglw[0];\n    bool fPlay = FPure(pcmd->rglw[1]);\n\n    if (!fPlay)\n    {\n        StopAllMovieSounds();\n        return fTrue;\n    }\n\n    // Actor Sounds\n    switch (kid)\n    {\n    case kidListenEditBoxSpeech:\n        _lsndSpeech.Play();\n        break;\n    case kidListenEditBoxFX:\n        _lsndSfx.Play();\n        break;\n    case kidListenEditBoxSpeechMM:\n        _lsndSpeechMM.Play();\n        break;\n    case kidListenEditBoxFXMM:\n        _lsndSfxMM.Play();\n        break;\n    case kidListenEditBoxMidi:\n        _lsndMidi.Play();\n        break;\n    default:\n        Bug(\"Invalid Vlm type\");\n        break;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Make the changes to _pscen or _pactr.  For actor sounds, we could\n    create an undo object here, but we currently don't.  Scene sounds would\n    require a new type of undo object so that's definitely not supported.\n***************************************************************************/\nbool ESLL::_FAcceptChanges(bool *pfDismissEasel)\n{\n    AssertThis(0);\n    AssertVarMem(pfDismissEasel);\n\n    long vlmNew;\n    bool fNuked;\n\n    if (pvNil == _pactr)\n    {\n        // Scene sounds\n        if (_lsndSpeech.FChanged(&vlmNew, &fNuked))\n        {\n            if (fNuked)\n                _pscen->RemSndCore(stySpeech);\n            else\n                _pscen->SetSndVlmCore(stySpeech, vlmNew);\n        }\n\n        if (_lsndSfx.FChanged(&vlmNew, &fNuked))\n        {\n            if (fNuked)\n                _pscen->RemSndCore(stySfx);\n            else\n                _pscen->SetSndVlmCore(stySfx, vlmNew);\n        }\n\n        if (_lsndMidi.FChanged(&vlmNew, &fNuked))\n        {\n            if (fNuked)\n                _pscen->RemSndCore(styMidi);\n            else\n                _pscen->SetSndVlmCore(styMidi, vlmNew);\n        }\n    }\n    else\n    {\n        // Actor sounds\n        if (_lsndSpeech.FChanged(&vlmNew, &fNuked))\n        {\n            if (fNuked)\n            {\n                if (!_pactr->FDeleteSndCore(stySpeech, fFalse))\n                    return fFalse;\n            }\n            else\n            {\n                if (!_pactr->FSetVlmSnd(stySpeech, fFalse, vlmNew))\n                    return fFalse;\n            }\n        }\n\n        if (_lsndSfx.FChanged(&vlmNew, &fNuked))\n        {\n            if (fNuked)\n            {\n                if (!_pactr->FDeleteSndCore(stySfx, fFalse))\n                    return fFalse;\n            }\n            else\n            {\n                if (!_pactr->FSetVlmSnd(stySfx, fFalse, vlmNew))\n                    return fFalse;\n            }\n        }\n\n        if (_lsndSpeechMM.FChanged(&vlmNew, &fNuked))\n        {\n            if (fNuked)\n            {\n                if (!_pactr->FDeleteSndCore(stySpeech, fTrue))\n                    return fFalse;\n            }\n            else\n            {\n                if (!_pactr->FSetVlmSnd(stySpeech, fTrue, vlmNew))\n                    return fFalse;\n            }\n        }\n\n        if (_lsndSfxMM.FChanged(&vlmNew, &fNuked))\n        {\n            if (fNuked)\n            {\n                if (!_pactr->FDeleteSndCore(stySfx, fTrue))\n                    return fFalse;\n            }\n            else\n            {\n                if (!_pactr->FSetVlmSnd(stySfx, fTrue, vlmNew))\n                    return fFalse;\n            }\n        }\n    }\n\n    _pmvie->ClearUndo();\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the ESLL.\n***************************************************************************/\nvoid ESLL::AssertValid(ulong grf)\n{\n    ESLL_PAR::AssertValid(fobjAllocated);\n}\n\n/***************************************************************************\n    Mark memory used by the ESLL\n***************************************************************************/\nvoid ESLL::MarkMem(void)\n{\n    AssertThis(0);\n    ESLL_PAR::MarkMem();\n    MarkMemObj(&_lsndSpeech);\n    MarkMemObj(&_lsndSfx);\n    MarkMemObj(&_lsndSpeechMM);\n    MarkMemObj(&_lsndSfxMM);\n    MarkMemObj(&_lsndMidi);\n}\n#endif // DEBUG\n\n//\n//\n//  LSND (Listener Sound) stuff begins here\n//\n//\n\n/***************************************************************************\n    Initialize a LSND.  Note that the LSND takes over the reference to\n    *ppgltag.\n***************************************************************************/\nbool LSND::FInit(long sty, long kidVol, long kidIcon, long kidEditBox, PGL *ppgltag, long vlm, bool fLoop, long objID,\n                 bool fMatcher)\n{\n    AssertBaseThis(0);\n    AssertIn(sty, 0, styLim);\n    AssertNilOrPo(*ppgltag, 0);\n\n    long st;\n    PGOK pgok;\n    PTGOB ptgob;\n    PMSND pmsnd;\n    long itag;\n    TAG tag;\n\n    _sty = sty;\n    _kidVol = kidVol;\n    _kidIcon = kidIcon;\n    _kidEditBox = kidEditBox;\n    _pgltag = *ppgltag;\n    *ppgltag = pvNil;\n    _vlm = vlm;\n    _vlmNew = vlm;\n    _fLoop = fLoop;\n    _objID = objID;\n    _fMatcher = fMatcher;\n\n    if (pvNil == _pgltag || 0 == _pgltag->IvMac())\n        return fTrue;\n\n    // Set button state based on the tool\n    if (_pgltag == pvNil || _pgltag->IvMac() == 0)\n        st = kstListenDisabled;\n    else if (_fMatcher)\n        st = kstListenMatcher;\n    else if (_pgltag->IvMac() > 1)\n        st = kstListenSounderChain;\n    else if (_fLoop)\n        st = kstListenLooper;\n    else\n        st = kstListenSounder;\n\n    // Create the TGOB to display the sound name\n    // Search until a valid (not deleted) msnd is found\n    for (itag = 0; itag < _pgltag->IvMac(); itag++)\n    {\n        _pgltag->Get(itag, &tag);\n        pmsnd = (PMSND)vptagm->PbacoFetch(&tag, MSND::FReadMsnd);\n        if (pvNil == pmsnd)\n            return fFalse;\n        if (!pmsnd->FValid())\n        {\n            ReleasePpo(&pmsnd);\n            continue;\n        }\n        ptgob = TGOB::PtgobCreate(kidEditBox, idsListenFont, tavCenter);\n        if (pvNil == ptgob)\n        {\n            Warn(\"missing edit box\");\n            ReleasePpo(&pmsnd);\n            return fFalse;\n        }\n        ptgob->SetText(pmsnd->Pstn());\n        ReleasePpo(&pmsnd);\n        goto LFound;\n    }\n    // No valid msnd -> no UI change required\n    return fTrue;\n\nLFound:\n    // Update the slider volume\n    vpcex->EnqueueCid(cidListenVolSet, vpapp->Pkwa()->PgobFromHid(kidVol), pvNil, _vlm);\n\n    pgok = (PGOK)vpapp->Pkwa()->PgobFromHid(kidIcon);\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n        pgok->FChangeState(st);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Play the LSND's sound\n***************************************************************************/\nvoid LSND::Play(void)\n{\n    AssertThis(0);\n\n    long itag;\n    TAG tag;\n    PMSND pmsnd;\n\n    if (pvNil == _pgltag || _pgltag->IvMac() == 0)\n        return; // nothing to play\n    if (_vlmNew < 0)\n        return; // don't play nuked sounds\n\n    // Stop sounds that are already playing.  This handles, among other\n    // things, a problem that would otherwise occur when changing the\n    // volume of a MIDI sound.  Normally, MSND doesn't restart a MIDI\n    // sound that's currently playing, but we want to force it to\n    // restart here.\n    StopAllMovieSounds();\n\n    for (itag = 0; itag < _pgltag->IvMac(); itag++)\n    {\n        _pgltag->Get(itag, &tag);\n        // Verify sound before including in the event list\n        pmsnd = (PMSND)vptagm->PbacoFetch(&tag, MSND::FReadMsnd);\n        if (pvNil == pmsnd)\n            continue; // ignore failure\n        Assert(pmsnd->Sty() == _sty, 0);\n        pmsnd->Play(_objID, _fLoop, (itag > 0), _vlmNew, 1, fTrue);\n        ReleasePpo(&pmsnd);\n    }\n}\n\n/***************************************************************************\n    Return whether the LSND has changed.  Specifies new volume and whether\n    the sound was nuked.\n***************************************************************************/\nbool LSND::FChanged(long *pvlmNew, bool *pfNuked)\n{\n    AssertThis(0);\n    AssertVarMem(pvlmNew);\n    AssertVarMem(pfNuked);\n\n    *pfNuked = (_vlmNew < 0);\n    *pvlmNew = _vlmNew;\n    return (_pgltag != pvNil && _pgltag->IvMac() > 0 && _vlm != _vlmNew);\n}\n\n/***************************************************************************\n    Destroy a LSND\n***************************************************************************/\nLSND::~LSND(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pgltag);\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the LSND.\n***************************************************************************/\nvoid LSND::AssertValid(ulong grf)\n{\n    LSND_PAR::AssertValid(0);\n    AssertNilOrPo(_pgltag, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the LSND\n***************************************************************************/\nvoid LSND::MarkMem(void)\n{\n    AssertThis(0);\n    LSND_PAR::MarkMem();\n    MarkMemObj(_pgltag);\n}\n#endif // DEBUG\n\n//\n//\n//  ESLR (Sound recording easel) stuff begins here\n//\n//\n\nBEGIN_CMD_MAP(ESLR, ESL)\nON_CID_GEN(cidEaselRecord, &ESLR::FCmdRecord, pvNil)\nON_CID_GEN(cidEaselPlay, &ESLR::FCmdPlay, pvNil)\nON_CID_GEN(cidAlarm, &ESLR::FCmdUpdateMeter, pvNil)\nEND_CMD_MAP_NIL()\n\n/***************************************************************************\n    Create a new sound recording easel\n***************************************************************************/\nPESLR ESLR::PeslrNew(PRCA prca, PMVIE pmvie, bool fSpeech, PSTN pstnNew)\n{\n    AssertPo(prca, 0);\n    AssertPo(pmvie, 0);\n    AssertPo(pstnNew, 0);\n\n    PESLR peslr;\n    GCB gcb;\n\n    if (!FBuildGcb(&gcb, kidBackground, kidRecordGlass))\n        return pvNil;\n\n    peslr = NewObj ESLR(&gcb);\n    if (pvNil == peslr)\n        return pvNil;\n    if (!peslr->_FInit(prca, kidRecordGlass, pmvie, fSpeech, pstnNew))\n    {\n        ReleasePpo(&peslr);\n        return pvNil;\n    }\n    AssertPo(peslr, 0);\n    vpcex->EnqueueCid(cidEaselVisible);\n\n    return peslr;\n}\n\n/***************************************************************************\n    Set up this easel\n***************************************************************************/\nbool ESLR::_FInit(PRCA prca, long kidEasel, PMVIE pmvie, bool fSpeech, PSTN pstnNew)\n{\n    AssertBaseThis(0);\n    AssertPo(prca, 0);\n    AssertPo(pmvie, 0);\n    AssertPo(pstnNew, 0);\n\n    GCB gcb;\n    EDPAR edpar;\n\n    _pmvie = pmvie;\n    _fSpeech = fSpeech;\n\n    if (!ESLR_PAR::_FInit(prca, kidEasel))\n        return fFalse;\n\n    if (!FBuildGcb(&gcb, kidRecordSoundName, CMH::HidUnique()))\n        return fFalse;\n    edpar.Set(gcb._hid, gcb._pgob, gcb._grfgob, gcb._gin, &gcb._rcAbs, &gcb._rcRel, vpappb->OnnDefVariable(), 0,\n              vpappb->DypTextDef(), tahLeft, tavCenter);\n    _pedsl = EDSL::PedslNew(&edpar);\n    if (pvNil == _pedsl)\n        return fFalse;\n    _pedsl->SetStn(pstnNew, fFalse);\n    _pedsl->SetSel(0, _pedsl->IchMac(), fFalse); // select all of the text\n    _pedsl->Activate(fTrue);\n    _pedsl->SetCursCno(prca, kcrsIBeam);\n\n    // added loop around psrecNew to drop sample rate until it worked\n    // to work around Win95 SB16 bug. (Tom Laird-McConnell)\n    csampSec = kcsampSec;\n    do\n    {\n        _psrec = SREC::PsrecNew(csampSec, 1, 1, kdtsMaxRecord);\n\n        // if we failed, then the pointer is nil\n        if (pvNil == _psrec)\n        {\n            // then downgrade the samples per second to next level\n            csampSec >>= 1;\n        }\n        // until it succeeds, or the sample rate drops below 11025.\n    } while ((pvNil == _psrec) && (csampSec >= 11025));\n\n    // if we still failed\n    if (pvNil == _psrec)\n    {\n        PushErc(ercSndamWaveDeviceBusy);\n        return fFalse;\n    }\n\n    _clok.Start(0);\n\n    // Set sound meter to 0\n    PGOK pgok = (PGOK)vpapp->Pkwa()->PgobFromHid(kidRecordSoundLength);\n    if (pvNil != pgok)\n        vpcex->EnqueueCid(cidRecordSetLength, pgok, 0, 0, 0, 0, 0);\n    return fTrue;\n}\n\n/***************************************************************************\n    Clean up and delete this easel\n***************************************************************************/\nESLR::~ESLR(void)\n{\n    AssertBaseThis(0);\n\n    ReleasePpo(&_psrec);\n}\n\n/***************************************************************************\n    Update the meter that shows how long we've been recording.\n***************************************************************************/\nvoid ESLR::_UpdateMeter(void)\n{\n    AssertThis(0);\n\n    PGOK pgok;\n    long dtsRec;\n    long percentDone; // no good hungarian for a percent\n\n    if (_fRecording)\n    {\n        dtsRec = TsCurrent() - _tsStartRec;\n\n        percentDone = LwMulDiv(dtsRec, 100, kdtsMaxRecord);\n        percentDone = LwBound(percentDone, 0, 100);\n\n        pgok = (PGOK)vpapp->Pkwa()->PgobFromHid(kidRecordSoundLength);\n        if (pvNil != pgok)\n            vpcex->EnqueueCid(cidRecordSetLength, pgok, 0, percentDone, 0, 0, 0);\n        else\n            Bug(\"where's the sound length gok?\");\n    }\n}\n\n/***************************************************************************\n    Start or stop recording\n***************************************************************************/\nbool ESLR::FCmdRecord(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (!_fRecording)\n    {\n        if (_psrec->FStart())\n        {\n            _tsStartRec = TsCurrent();\n            _fRecording = fTrue;\n            if (!_clok.FSetAlarm(0, this))\n                return fFalse;\n        }\n        else\n        {\n            SetGokState(kidRecordRecord, kstDefault); // pop out rec button\n            _fRecording = fFalse;\n            _UpdateMeter();\n            PushErc(ercSndamWaveDeviceBusy);\n            return fFalse;\n        }\n    }\n    else\n    {\n        if (_psrec->FStop())\n        {\n            SetGokState(kidRecordRecord, kstDefault); // pop out rec button\n            _fRecording = fFalse;\n            _UpdateMeter();\n        }\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Time to update the meter that shows how long we've been recording.\n***************************************************************************/\nbool ESLR::FCmdUpdateMeter(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    bool fRecordingOld = _fRecording;\n    bool fPlayingOld = _fPlaying;\n\n    _UpdateMeter();\n    _fRecording = _psrec->FRecording();\n    _fPlaying = _psrec->FPlaying();\n    if (fRecordingOld && !_fRecording)\n    {\n        SetGokState(kidRecordRecord, kstDefault); // pop out rec button\n        _UpdateMeter();\n    }\n    if (fPlayingOld && !_fPlaying)\n        SetGokState(kidRecordPlay, kstDefault); // pop out play button\n    if (_fRecording || _fPlaying)\n        _clok.FSetAlarm(kdtimMeterUpdate, this);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Play the sound that was recorded\n***************************************************************************/\nbool ESLR::FCmdPlay(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (_fRecording)\n    {\n        // try to stop recording\n        if (_psrec->FStop())\n        {\n            SetGokState(kidRecordRecord, kstDefault); // pop out rec button\n            _fRecording = fFalse;\n            _UpdateMeter();\n        }\n        else\n        {\n            // We can't stop the recording, so set the record btn to its\n            // selected state. (Script had popped the record btn out as\n            // soon as the play button was selected).\n\n            SetGokState(kidRecordRecord, kstSelected); // pop in rec button\n        }\n    }\n\n    if (!_fRecording && _psrec->FHaveSound())\n    {\n        if (!_fPlaying)\n        {\n            if (_psrec->FPlay())\n            {\n                _fPlaying = fTrue;\n                if (!_clok.FSetAlarm(0, this))\n                    return fFalse;\n            }\n        }\n        else\n        {\n            if (_psrec->FStop())\n            {\n                _fPlaying = fFalse;\n                SetGokState(kidRecordPlay, kstDefault); // pop out play button\n            }\n        }\n    }\n    else\n    {\n        SetGokState(kidRecordPlay, kstDefault); // pop out play button\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Save the new sound\n***************************************************************************/\nbool ESLR::_FAcceptChanges(bool *pfDismissEasel)\n{\n    AssertThis(0);\n    AssertVarMem(pfDismissEasel);\n\n    FNI fni;\n    STN stn;\n    PFIL pfil = pvNil;\n    CNO cno;\n    long sty = _fSpeech ? stySpeech : stySfx;\n    long kid = _fSpeech ? kidSpeechGlass : kidFXGlass;\n\n    if (_psrec->FRecording())\n    {\n        if (_psrec->FStop())\n        {\n            SetGokState(kidRecordRecord, kstDefault); // pop out rec button\n            _fRecording = fFalse;\n            _UpdateMeter();\n        }\n    }\n\n    if (_psrec->FPlaying())\n    {\n        if (_psrec->FStop())\n        {\n            _fPlaying = fFalse;\n            SetGokState(kidRecordPlay, kstDefault); // pop out play button\n        }\n    }\n\n    if (!_psrec->FHaveSound())\n        return fTrue; // user didn't record anything, so don't do anything\n\n    _pedsl->GetStn(&stn);\n\n    // If the user did not specify a name for the recorded sound, then\n    // display an error and keep the recording easel displayed.\n\n    if (stn.Cch() == 0)\n    {\n        PushErc(ercSocNoSoundName);\n\n        *pfDismissEasel = fFalse;\n        return fTrue;\n    }\n\n    if (!fni.FGetTemp())\n        return fFalse;\n\n    if (!_psrec->FSave(&fni))\n        return fFalse;\n\n    pfil = FIL::PfilOpen(&fni, ffilNil);\n    if (pvNil == pfil)\n        goto LFail;\n\n    if (!_pmvie->FCopySndFileToMvie(pfil, sty, &cno, &stn))\n        goto LFail;\n\n    // Select the item, extend lists and hilite it\n    vpcex->EnqueueCid(cidBrowserSelectThum, vpappb->PcmhFromHid(kid), pvNil, cno, ksidUseCrf, 1, 1);\n\n    ReleasePpo(&pfil);\n    if (!fni.FDelete())\n        Warn(\"Couldn't delete temp sound file\");\n    return fTrue;\nLFail:\n    ReleasePpo(&pfil);\n    if (!fni.FDelete())\n        Warn(\"Couldn't delete temp sound file\");\n    return fFalse;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the ESLR.\n***************************************************************************/\nvoid ESLR::AssertValid(ulong grf)\n{\n    ESLL_PAR::AssertValid(fobjAllocated);\n    AssertPo(_psrec, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the ESLR\n***************************************************************************/\nvoid ESLR::MarkMem(void)\n{\n    AssertThis(0);\n    ESLL_PAR::MarkMem();\n    MarkMemObj(_psrec);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/studio/gadget.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// -----------------------------------------------------\n// get our labels and gadget help\n// -----------------------------------------------------\n// -----------------------------------------------------\n// and our gadget topics\n// -----------------------------------------------------\n\n\n//////////////////////////////////\n// Gadget Start Up Ok balloon\n//////////////////////////////////\nGOBCHUNK(\"Gadget Start up\", kidGadgetStartUp, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)\nENDCHUNK\n\t// grey out bkgrd\n\tREP_FILL( kcell1, \"kidGadgetStartUp\", 0, 0, 640, 480, Palette(73), Transparent)\n\t\tPATTERN_50\n\tENDCHUNK\n\tCREATE_SCRIPT(\"gadget startup created\")\n\t\tCell( kcell1, 0,0, 0);\t\t// draw ourselves\t\t\n\t\tCreateHelpThis(ktpcPrjIntro03);\t// then do the help balloon\n\tENDCHUNK\n\n// ----------------------------------------------------------------\n// Gadget Start Up script to run when the ok button is hit\n// ----------------------------------------------------------------\nHELP_SCRIPT(kidGadgetStartOk)\n\t// parm[0] = group # passed in\n\tIf(_parm[0] != 0);\t\n\t\t// create the gadget parent and sequencer\n\t\tCreateChildGob(kidBackground, kidGadgetPersistent, kidGadgetPersistent);\n\t\tCreateChildGob(kidBackground, kidSequenceParent, kidSequenceParent);\n\t\tCreateChildGob(kidBackground, kidGadgetParent, kidGadgetParent);\n\t\t// disable why button\n\t\tChangeStateGob(kidGadgetWhy, kst2);\n\t\tDestroyGob(kidGadgetStartUp);\n\t\tReturn(fTrue);\n\tElse;\n\t\tfMelAudio = GetProp( kpridMcZeeAudio ) & kflgMelAudio;\n\t\tIf (._cnoSound != cnoNil && !fMelAudio);\n\t\t\tStopSoundClass(0, sclHelpSoundClass);\t\t\n\t\t\tPlaySoundGob(GidParThis(), ._ctgSound, ._cnoSound, ksqnNone, 0x10000, 1, 0, sclHelpSoundClass);\n\t\tEnd;\n\tEnd;\nENDCHUNK\n\n//////////////////////////////////\n// Gadget parent object\n//////////////////////////////////\nGOBCHUNK(\"Gadget Parent\", kidGadgetParent, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, CHID1(kchidClick), cidNil, cnoNil)\nENDCHUNK\n\tREP_RECT( CHID1(krepDefault), \"kidGadgetParent\", 0, 0, 640, 480 )\n\tCREATE_SCRIPT(\"gadget parent created\")\n\n\t\t// Create the gadget body\t\n\t\tCreateChildThis(kidGadgetBody, kidGadgetBody);\n\t\tCreateChildThis(kidGadgetSelectorUp, kidGadgetSelectorUp);\n\t\tCreateChildThis(kidGadgetSelectorDown, kidGadgetSelectorDown);\n\t\tCreateChildThis(kidGadgetSelectorNum, kidGadgetSelectorNum);\n\t\tCreateChildThis(kidGadgetAviFrame, kidGadgetAviFrame);\n\t\tCreateChildThis(kidGadgetPlay, kidGadgetPlay);\n\t\tCreateChildThis(kidGadgetHow, kidGadgetHow);\n\t\tCreateChildThis(kidGadgetCancel, kidGadgetCancel);\n\t\tCreateChildThis(kidGadgetWhy, kidGadgetWhy);\n\t\tCreateChildThis(kidGadgetVoice, kidGadgetVoice);\n\t\tCreateChildThis(kidGadgetWord, kidGadgetWord);\n\t\tCreateChildThis(kidGadgetLockerFill, kidGadgetLockerFill);\n\t\t// change the gadget button to a black button\n\t\tChangeStateGob(kidGadget, kst2);\n\t\t// start up the next sequence\n\t\tRunScriptThis(kchidScript1);\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\t\t// turn tooltips on for the gadget\n\t\tSetProp(kpridToolTipDelay, kdtimToolTipDelay);\n\tENDCHUNK\n\n\t// create a new sequence to run\n\tCHILD_SCRIPT(\"Start up next project sequence\", kchidScript1)\n\t\t// Start the current sequence(should never be past end, but...)\n\t\tIf (::gdCurrStep <= ::gdSeqSteps[::gdCurrProj]);\n\t\t\t// reinitialize the sequence generator\n\t\t\tRunScriptGob(kidSequenceParent, kchidScript7);\n\t\t\ttbSeq = ::gdSeqNum[::gdProjEnd[::gdCurrProj - 1] + ::gdCurrStep];\n\t\t\tCreateChildGob(kidBackground, tbSeq, tbSeq);\t\t\n\t\t\tChangeStateGob(kidGadgetSelectorNum, (kst1 + ::gdCurrProj - 1));\n\t\t\t// Change locker picts, pressing play handles gdcurrstep one\n\t\t\tIf (::gdCurrStep > 1);\n\t\t\t\tCreateHelpGob(kidGadgetTextBox, ktpcGadgetTextStart + ::gdProjEnd[::gdCurrProj - 1] + ::gdCurrProj + ::gdCurrStep - 1);\n\t\t\t\tChangeStateGob(kidGadgetLockerPict, kst2); \n\t\t\tElse;\n\t\t\t\tCreateHelpGob(kidGadgetTextBox, ktpcGadgetTextStart + ::gdProjEnd[::gdCurrProj - 1] + (::gdCurrProj - 1) + ::gdCurrStep - 1);\n\t\t\tEnd;\n\t\tEnd;\n\tENDCHUNK\n\n\t// for handling modal dialog option on selector up and down\n\tCHILD_SCRIPT(\"Handle modal save options\", kchidScript3)\n\t\t// if they choose save do nothing let next portfolio results handle it, otherwise handle it\n\t\tIf (_parm[2] != 1);\n\t\t\t// kill all filters\n\t\t\tFilterCmdsThis(cidNil, kidNil, chidNil);\n\t\t\t// figure out what to do, 2 go on, 3 drop back to where we were\n\t\t\tIf (_parm[2] == 0);\n\t\t\t\tDestroyGob(kidGadgetAlertGlass);\t\t\t\t\t\t\n\t\t\t\tIf (::gdUpSelected == fTrue);\n\t\t\t\t\tRunScriptGob(kidGadgetSelectorUp, kchidScript1);\n\t\t\t\tElse;\n\t\t\t\t\tRunScriptGob(kidGadgetSelectorDown, kchidScript1);\n\t\t\t\tEnd;\n\t\t\tElse;\n\t\t\t\tCreateHelpGob(kidGadgetAlertGlass, ktpcNewMovie);\n\t\t\tEnd;\n\t\tEnd;\n\tENDCHUNK\n\n\t// for handling portfolio ok and cancel in selectors\n\tCHILD_SCRIPT(\"Handle modal save options\", kchidScript4)\n\t\t// kill all filters\n\t\tFilterCmdsThis(cidNil, kidNil, chidNil);\n\t\t// Make sure we have something to go on\n\t\tIf(_parm[2] == fTrue);\t\n\t\t\tDestroyGob(kidGadgetAlertGlass);\t\t\t\t\t\t\n\t\t\tIf (::gdUpSelected == fTrue);\n\t\t\t\tRunScriptGob(kidGadgetSelectorUp, kchidScript1);\n\t\t\tElse;\n\t\t\t\tRunScriptGob(kidGadgetSelectorDown, kchidScript1);\n\t\t\tEnd;\n\t\t// cancel from portfolio, put choices back up\n\t\tElse;\n\t\t\tCreateHelpGob(kidGadgetAlertGlass, ktpcNewMovie);\n\t\tEnd;\n\tENDCHUNK\n\n\t// for handling modal dialog option on cancel\n\tCHILD_SCRIPT(\"Handle modal save options\", kchidScript5)\n\t\t// if they choose save do nothing let next portfolio results handle it, otherwise handle it\n\t\tIf (_parm[2] != 1);\n\t\t\t// kill all filters\n\t\t\tFilterCmdsThis(cidNil, kidNil, chidNil);\n\t\t\t// figure out what to do, 2 go on, 3 drop back to where we were\n\t\t\tIf (_parm[2] == 0);\n\t\t\t\tDestroyGob(kidGadgetAlertGlass);\t\t\t\t\t\t\n\t\t\tElse;\n\t\t\t\tCreateHelpGob(kidGadgetAlertGlass, ktpcProjectCancel);\n\t\t\tEnd;\n\t\tEnd;\n\tENDCHUNK\n\n\t// for handling portfolio ok and cancel on cancel\n\tCHILD_SCRIPT(\"Handle modal save options\", kchidScript6)\n\t\t// kill all filters\n\t\tFilterCmdsThis(cidNil, kidNil, chidNil);\n\t\t// Make sure we have something to go on\n\t\tIf(_parm[2] == fTrue);\t\n\t\t\tDestroyGob(kidGadgetAlertGlass);\t\t\t\t\t\t\n\t\tElse;\n\t\t\tCreateHelpGob(kidGadgetAlertGlass, ktpcProjectCancel);\n\t\tEnd;\n\tENDCHUNK\n\n///////////////////////////////////\n// gadget object\n///////////////////////////////////\n// -----------------------------------------------------\n// gadget body image that masks stuff underneath it\n// -----------------------------------------------------\nGOBCHUNK(\"Body of gadget object\", kidGadgetBody, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 150)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMP( CHID1(krepDefault), \"studio\\bmp\\gdbody.bmp\")\nCREATE_ANIM( \"gadget created\" )\n\tCreateChildThis( kidGadgetVolumePath, kidGadgetVolumePath );\nENDCHUNK\n\n// -----------------------------------------------------\n// Gadget Play button \n// -----------------------------------------------------\nGOBCHUNK(\"Gadget play button\", kidGadgetPlay, kgokkRectHit)\n\tDEFAULT_POSITION(kxpGdPlay, kypGdPlay, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID1(kchidClick), cidNil, ttPlayButton)\nENDCHUNK\n\tREP_MBMPREG(kcell1, \"studio\\bmp\\gdplay.bmp\", kxpregGdPlay, kypregGdPlay)\n\tREP_MBMPREG(kcell2, \"studio\\bmp\\gdstop.bmp\", kxpregGdPlay, kypregGdPlay)\n\tREP_ANIM(CHID(kst1, krepDefault), \"play button, movie stopped\")\n\t\t// Got the play button showing -- make sure the movie isn't playing\n\t\t// reset the video to the static cell\n\t\tChangeStateGob(kidGadgetAvi, (kst1 + ::gdCurrProj - 1));\n\t\tCell(kcell1, 0, 0, 1);\n\tENDCHUNK\t\n\tREP_ANIM(CHID(kst2, krepDefault), \"play...poll movie\")\n\t\t// tell the movie gob to play by switching state\n\t\tChangeStateGob(kidGadgetAvi, (kst6 + ::gdCurrProj));\n\t\t// draw our representation\n\t\tCell( kcell2, 0, 0, 1 );\n\t\t// now poll the movie ... if it finishes, switch button back to state 1 (stopped)\n\t\tWhile(PlayingGob(kidGadgetAvi));\n\t\t\tCell(chidNil, 0, 0, 10);\t// poll at 1/6ths of a second\n\t\tEnd; \n\t\tChangeStateThis(kst1);\n\t\tEnqueueCid(cidGadgetAviStop, kidSequenceParent, 0, 0, 0, 0);\n\t\tCreateHelpGob(kidGadgetTextBox, ktpcGadgetTextStart + ::gdProjEnd[::gdCurrProj - 1] + ::gdCurrProj + ::gdCurrStep - 1);\n\t\tIf (StateGob(kidGadgetLockerPict) == kst1);\n\t\t\tChangeStateGob(kidGadgetLockerPict, kst2);\n\t\tEnd;\n\t\t// enable why button\n\t\tChangeStateGob(kidGadgetWhy, kst1);\n\tENDCHUNK\n\tCLICK_SCRIPT( \"button clicked\" );\n\t\tIf (StateThis() == kst1);\t\t\n\t\t\tChangeStateThis(kst2);\t\t\t// we are play button, switch to stop button and play movie\n\t\tElse;\n\t\t\tChangeStateThis(kst1);\n\t\t\tEnqueueCid(cidGadgetAviStop, kidSequenceParent, 0, 0, 0, 0);\n\t\t\tCreateHelpGob(kidGadgetTextBox, ktpcGadgetTextStart + ::gdProjEnd[::gdCurrProj - 1] + ::gdCurrProj + ::gdCurrStep - 1);\n\t\t\tIf (StateGob(kidGadgetLockerPict) == kst1);\n\t\t\t\tChangeStateGob(kidGadgetLockerPict, kst2);\n\t\t\tEnd;\n\t\t\t// enable why button\n\t\t\tChangeStateGob(kidGadgetWhy, kst1);\n\t\tEnd;\n\tENDCHUNK\n// -----------------------------------------------------\n// Gadget volume thumb \n// -----------------------------------------------------\nGOBCHUNK(\"Gadget Volume Thumb\", kidGadgetVolumeThumb, kgokkRectNoHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)\nENDCHUNK\n\tREP_MBMP(CHID1(krepDefault), \"studio\\bmp\\gdvolthm.bmp\")\n  \n// --------------------------------------------------------------------------------\n// The slider is the rectangular path the volume slider rolls around in.\n//   kdypGadgetSlider is the height of the slidable area; kdypGadgetSliderTotal includes\n//   height of thumbnail to be sure it will show at the min setting\n// --------------------------------------------------------------------------------\nGOBCHUNK(\"Gadget Volume SliderPath\", kidGadgetVolumePath, kgokkRectHit)\n\tDEFAULT_POSITION(kxpGadgetSlider, kypGadgetSlider, 210)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID1(kchidClick), cidNil, ttVolumeControl )\nENDCHUNK\nREP_RECT(CHID1(krepDefault), \"Gadget rectangle\", 0, 0, kdxpGadgetSlider, kdypGadgetSliderTotal)\nCREATE_SCRIPT(\"Create sliderpath\")\n\tCreateChildThis(kidGadgetVolumeThumb, kidGadgetVolumeThumb);\n\t// get initial volume value, move thumbnail\n\ty = kdypGadgetSlider  -((GetMasterVolume() * kdypGadgetSlider) / (kvlmFull*2));\n\tMoveAbsGob(kidGadgetVolumeThumb, 0, y);\nENDCHUNK\nREP_ANIM(CHID1(krepMouseDnOn), \"slider\")\t\n\t// repeat up to 30000 times.\n\t.siiLoop = PlaySoundThis( kctgWave, kwavDing, 2, 0x00010000, 30000, 1, 4 );\t\n\tWhile(1);\n\t\ty = YMouseThis();\n\t\tIf( y < 0 );\n\t\t\ty=0;\n\t\tElif(y > kdypGadgetSlider);\n\t\t\ty =kdypGadgetSlider;\n\t\tEnd;\n\t\t// move thumb slider\n\t\tMoveAbsGob(kidGadgetVolumeThumb, 0, y);\n\t\t// track new volume\n\t\tnewvol = ((kvlmFull*2)* (kdypGadgetSlider-y)) / kdypGadgetSlider;\t\n\t\t// set the volume\n\t\tSetMasterVolume(newvol);\t\n\t\t// Sample at 10/60ths of a second.\n\t\tCell(0, 0, 0, 10);\t\n\tEnd;\nENDCHUNK\nREP_ANIM(CHID1(kchidDownUpOn), \"release on\")\n\tStopSound(.siiLoop);\nENDCHUNK\nADOPT_ANIM( LAST_ANIM, CHID1(kchidDownUpOff))\n\n\n// -----------------------------------------------------\n// Gadget voice toggle control \n// -----------------------------------------------------\nGOBCHUNK(\"Gadget Voice Toggle\", kidGadgetVoice, kgokkRectHit)\n\tDEFAULT_POSITION(kxpGdMelVoice, kypGdMelVoice, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID1(kchidClick), cidNil, ttMelanieOnOff)\nENDCHUNK\n\tREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\gdmelon.bmp\", kxpregGdMelVoice, kypregGdMelVoice)\n\tADOPT_MBMP(LAST_MBMP, CHID1(krepMouseDnOn))\n\tREP_MBMPREG(CHID(kst2, krepDefault), \"studio\\bmp\\gdmeloff.bmp\", kxpregGdMelVoice, kypregGdMelVoice)\n\tCREATE_ANIM(\"Mel Voice control\")\n\t\t// see if voice should be on or off\n\t\tfMelAudio = GetProp( kpridMcZeeAudio ) & kflgMelAudio;\n\t\tIf ( fMelAudio );\t\t// audio suppressed = state 2\n\t\t\tChangeStateThis(kst2);\n\t\tEnd;\n\tENDCHUNK\n\tCLICK_SCRIPT(\"voice toggle clicked\")\n\t\tflg = GetProp( kpridMcZeeAudio ); \n\n\t\tIf (StateThis() == kst1);\t// audio on (suppress = FALSE)\n\t\t\tflg |= kflgMelAudio;\t// switch to audio off (suppress = TRUE)\n\t\t\tSetProp( kpridMcZeeAudio, flg );\n\t\t\tChangeStateThis(kst2);\t\n\t\t\tStopSoundClass(0, sclHelpSoundClass);\t// shut her up immediately (heh heh)\n\t\tElse;\n\t\t\tflg &= ~kflgMelAudio;\t// opposite of above\n\t\t\tSetProp( kpridMcZeeAudio, flg );\n\t\t\tChangeStateThis(kst1);\t// toggle audio on / off state\n\t\tEnd;\n\t\t\n\tENDCHUNK\n\n\n\n// -----------------------------------------------------\n// Gadget cancel control\n// -----------------------------------------------------\nGOBCHUNK(\"Gadget Cancel\", kidGadgetCancel, kgokkRectHit)\n\tDEFAULT_POSITION(kxpGdClose, kypGdClose, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID1(kchidClick), cidNil, ttCloseButton)\nENDCHUNK\n\tREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\gdclose.bmp\", kxpregGdClose, kypregGdClose)\n\tADOPT_MBMP(LAST_MBMP, CHID1(krepMouseDnOff))\n\tREP_MBMPREG(CHID1(krepMouseDnOn), \"studio\\bmp\\gdcloses.bmp\", kxpregGdClose, kypregGdClose)\n\tCLICK_SCRIPT(\"Cancel clicked\")\n\t\t// stop playing video from playing if playing\n\t\tIf (StateGob(kidGadgetPlay) == kst2);\t\t\n\t\t\tChangeStateGob(kidGadgetPlay, kst1);\n\t\tEnd;\n\t\tCreateChildGob(kidBackground, kidGadgetAlertGlass, kidGadgetAlertGlass);\t\t\n\t\tCreateHelpGob(kidGadgetAlertGlass, ktpcProjectCancel);\n\tENDCHUNK\n\tCHILD_SCRIPT(\"Exit the gadget\", kchidScript1)\n\t\tDestroyGob(kidSequenceParent->lastHelp);\n\t\tDestroyGob(kidSequenceParent);\n\t\tDestroyGob(kidGadget);\n\t\tDestroyGob(kidGadgetParent);\n\t\t// flag for easel help\n\t\t::fHelpOn = fFalse;\n\t\tCreateHelpGob(kidBackground, ktpcUserQuitsHelp);\n\t\tENABLEACCEL(fFalse);\n\tENDCHUNK\n\t\n// -----------------------------------------------------\n// Gadget alert glass for protecting against illegal click\n// -----------------------------------------------------\nGOBCHUNK(\"Gadget alert glass\", kidGadgetAlertGlass, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 600)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)\nENDCHUNK\n\tREP_FILL(CHID1(krepDefault), \"Gadget alert glass\", 0, 0, 640, 480, Palette(73), Transparent )\n\t\tPATTERN_50X\n\tENDCHUNK\n\n// -----------------------------------------------------\n// How button\n// -----------------------------------------------------\nGOBCHUNK(\"Gadget How button\", kidGadgetHow, kgokkRectHit)\n\tDEFAULT_POSITION(kxpGdHow, kypGdHow, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID1(kchidClick), cidNil, ttHowButton)\nENDCHUNK\n\tREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\gdhow.bmp\", kxpregGdHow, kypregGdHow)\n\tADOPT_MBMP(LAST_MBMP, CHID1(krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(krepMouseDnOff))\n\tREP_MBMPREG(CHID1(krepMouseDnOn), \"studio\\bmp\\gdhows.bmp\", kxpregGdHow, kypregGdHow)\n\tCLICK_SCRIPT(\"button up clicked\")\n\t\t::gdCurrStep++;\n\t\t// turn tooltips back off\n\t\tSetProp(kpridToolTipDelay, 999999);\n\t\tDestroyGob(kidGadgetParent);\n\t\t// change the gadget button to normal\n\t\tChangeStateGob(kidGadget, kst1);\n\tENDCHUNK\n\n// -----------------------------------------------------\n// Why button\n// -----------------------------------------------------\nGOBCHUNK(\"Gadget Why button\", kidGadgetWhy, kgokkRectHit)\t\t\t\t\n\tDEFAULT_POSITION(kxpGdWhy, kypGdWhy, 200)\n\tACTION(fcustNil, fcustNil, fgrfst1, kcrsHand1, CHID1(kchidClick), cidNil, ttWhyButton)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, ttWhyButton)\nENDCHUNK\n\tREP_MBMPREG(CHID(kst1, krepDefault), \"studio\\bmp\\gdwhy.bmp\", kxpregGdWhy, kypregGdWhy)\n\tADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseDnOff))\n\tREP_MBMPREG(CHID(kst1, krepMouseDnOn), \"studio\\bmp\\gdwhys.bmp\", kxpregGdWhy, kypregGdWhy)\n\tREP_MBMPREG(CHID(kst2, krepDefault), \"studio\\bmp\\gdwhyd.bmp\", kxpregGdWhy, kypregGdWhy)\n\tCLICK_SCRIPT(\"button clicked\")\n//\t  \tChangeStateGob( kidGadgetPlay, kst1 );\n\tENDCHUNK\n\tREP_WAVE( CHID1( krepClicked ), \"studio\\sound\\gemtip.wav\" )\n\n// -----------------------------------------------------\n// Selector up button\n// -----------------------------------------------------\nGOBCHUNK(\"Gadget up button\", kidGadgetSelectorUp, kgokkRectHit)\n\tDEFAULT_POSITION(kxpGdSelUp, kypGdSelUp, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID1(kchidClick), cidNil, ttNextMovie)\nENDCHUNK\n\tREP_MBMPREG(CHID(kst1, krepDefault), \"studio\\bmp\\gdselup.bmp\", kxpregGdSelUp, kypregGdSelUp)\n\tADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseDnOff))\n\tREP_MBMPREG(CHID(kst1, krepMouseDnOn), \"studio\\bmp\\gdselups.bmp\", kxpregGdSelUp, kypregGdSelUp)\n\tADOPT_WAVE( kcnoPageUpWav, CHID1( krepClicked ))\n\n\tCLICK_SCRIPT(\"button up clicked\")\n\t\t::gdUpSelected = fTrue;\n\t\t// stop playing video from playing if playing\n\t\tIf (StateGob(kidGadgetPlay) == kst2);\t\t\n\t\t\tChangeStateGob(kidGadgetPlay, kst1);\n\t\tEnd;\n\t\t// if already working on project#x then prompt\n\t\tIf (::gdCurrStep > 1);\n\t\t\tCreateChildGob(kidBackground, kidGadgetAlertGlass, kidGadgetAlertGlass);\t\t\n\t\t\tCreateHelpGob(kidGadgetAlertGlass, ktpcNewMovie);\n\t\tElse;\n\t\t\tRunScriptThis(kchidScript1);\n\t\tEnd;\n\tENDCHUNK\n\t\n\tCHILD_SCRIPT(\"Up button selected\", kchidScript1)\n\t\t// if last project then wrap around to first\n\t\tIf (::gdCurrProj > 5);\n\t\t\t::gdCurrProj = 1;\n\t\tElse;\n\t\t\t::gdCurrProj++;\n\t\tEnd;\n\t\t::gdCurrStep = 1;\n\t\tChangeStateGob(kidGadgetSelectorNum, (kst1 + ::gdCurrProj - 1));\n\t\tIf (StateGob(kidGadgetPlay) == kst2);\n\t\t\tChangeStateGob(kidGadgetPlay, kst1);\n\t\tElse;\n\t\t\tChangeStateGob(kidGadgetAvi, (kst1 + ::gdCurrProj - 1));\n\t\tEnd;\n\t\tIf (StateGob(kidGadgetLockerPict) == kst2);\n\t\t\tChangeStateGob(kidGadgetLockerPict, kst1);\n\t\tEnd;\n\t\t// disable why button\n\t\tChangeStateGob(kidGadgetWhy, kst2);\n\t\tRunScriptGob(kidGadgetParent, kchidScript1);\n\tENDCHUNK\n\n// -----------------------------------------------------\n// Selector number\n// -----------------------------------------------------\nGOBCHUNK(\"Gadget selector number\", kidGadgetSelectorNum, gokkNoHit)\n\tDEFAULT_POSITION(kxpGdMovieNum, kypGdMovieNum, 200)\n//\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, CHID1(kchidClick), cidNil, cnoNil)\nENDCHUNK\n\tREP_MBMPREG(CHID(kst1, krepDefault), \"studio\\bmp\\gdmovie1.bmp\", kxpregGdMovieNum, kypregGdMovieNum)\n\tREP_MBMPREG(CHID(kst2, krepDefault), \"studio\\bmp\\gdmovie2.bmp\", kxpregGdMovieNum, kypregGdMovieNum)\n\tREP_MBMPREG(CHID(kst3, krepDefault), \"studio\\bmp\\gdmovie3.bmp\", kxpregGdMovieNum, kypregGdMovieNum)\n\tREP_MBMPREG(CHID(kst4, krepDefault), \"studio\\bmp\\gdmovie4.bmp\", kxpregGdMovieNum, kypregGdMovieNum)\n\tREP_MBMPREG(CHID(kst5, krepDefault), \"studio\\bmp\\gdmovie5.bmp\", kxpregGdMovieNum, kypregGdMovieNum)\n\tREP_MBMPREG(CHID(kst6, krepDefault), \"studio\\bmp\\gdmovie6.bmp\", kxpregGdMovieNum, kypregGdMovieNum)\n\n// -----------------------------------------------------\n// Selector down button\n// -----------------------------------------------------\nGOBCHUNK(\"Gadget down button\", kidGadgetSelectorDown, kgokkRectHit)\n\tDEFAULT_POSITION(kxpGdSelDn, kypGdSelDn, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, CHID1(kchidClick), cidNil, ttPreviousMovie)\nENDCHUNK\n\tREP_MBMPREG(CHID(kst1, krepDefault), \"studio\\bmp\\gdseldn.bmp\", kxpregGdSelDn, kypregGdSelDn)\n\tADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseDnOff))\n\tREP_MBMPREG(CHID(kst1, krepMouseDnOn), \"studio\\bmp\\gdseldns.bmp\", kxpregGdSelDn, kypregGdSelDn)\n\tADOPT_WAVE( kcnoPageDnWav, CHID1( krepClicked ))\n\tCLICK_SCRIPT(\"button down clicked\")\n\t\t::gdUpSelected = fFalse;\n\t\t// stop playing video from playing if playing\n\t\tIf (StateGob(kidGadgetPlay) == kst2);\t\t\n\t\t\tChangeStateGob(kidGadgetPlay, kst1);\n\t\tEnd;\n\t\t// if already working on project#x then prompt\n\t\tIf (::gdCurrStep > 1);\n\t\t\tCreateChildGob(kidBackground, kidGadgetAlertGlass, kidGadgetAlertGlass);\t\t\n\t\t\tCreateHelpGob(kidGadgetAlertGlass, ktpcNewMovie);\n\t\tElse;\n\t\t\tRunScriptThis(kchidScript1);\n\t\tEnd;\n\tENDCHUNK\n\tCHILD_SCRIPT(\"Down button selected\", kchidScript1)\n\t\t// if first project then wrap around to last\n\t\tIf (::gdCurrProj < 2);\n\t\t\t::gdCurrProj = 6;\n\t\tElse;\n\t\t\t::gdCurrProj--;\n\t\tEnd;\t\n\t\t::gdCurrStep = 1;\n\t\tChangeStateGob(kidGadgetSelectorNum, (kst1 + ::gdCurrProj - 1));\n\t\tIf (StateGob(kidGadgetPlay) == kst2);\n\t\t\tChangeStateGob(kidGadgetPlay, kst1);\n\t\tElse;\n\t\t\tChangeStateGob(kidGadgetAvi, (kst1 + ::gdCurrProj - 1));\n\t\tEnd;\n\t\tIf (StateGob(kidGadgetLockerPict) == kst2);\n\t\t\tChangeStateGob(kidGadgetLockerPict, kst1);\n\t\tEnd;\n\t\t// disable why button\n\t\tChangeStateGob(kidGadgetWhy, kst2);\n\t\tRunScriptGob(kidGadgetParent, kchidScript1);\n\tENDCHUNK\n\n// -----------------------------------------------------\n// The frame around the movie, movies parent\n// -----------------------------------------------------\nGOBCHUNK(\"Gadget movie avi frame\", kidGadgetAviFrame, gokkNoHit)\n\tDEFAULT_POSITION( 241, 84, 200)\n//\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, CHID1(kchidClick), cidNil, cnoNil)\nENDCHUNK\n\tREP_RECT(CHID1(krepDefault), \"avi\", 0, 0, 160, 90 )\n\tCREATE_ANIM(\"\")\n\t\tCreateChildThis(kidGadgetAvi, kidGadgetAvi);\n\tENDCHUNK\n\n// -----------------------------------------------------\n// The area inside the movie frame\n// -----------------------------------------------------\nGOBCHUNK(\"Gadget movie avi\", kidGadgetAvi, gokkNoHit)\n\tDEFAULT_POSITION( 0, 0, 100)\n//\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, CHID1(kchidClick), cidNil, cnoNil)\nENDCHUNK\n\tREP_MBMP(CHID(kst1, krepDefault), \"studio\\bmp\\gdavi1.bmp\")\n\tREP_MBMP(CHID(kst2, krepDefault), \"studio\\bmp\\gdavi3.bmp\")\n\tREP_MBMP(CHID(kst3, krepDefault), \"studio\\bmp\\gdavi2.bmp\")\n\tREP_MBMP(CHID(kst4, krepDefault), \"studio\\bmp\\gdavi6.bmp\")\n\tREP_MBMP(CHID(kst5, krepDefault), \"studio\\bmp\\gdavi5.bmp\")\n\tREP_MBMP(CHID(kst6, krepDefault), \"studio\\bmp\\gdavi4.bmp\")\n\tREP_VIDEO(CHID(kst7, krepDefault), \"proj1.avi\", fTrue)\n\tREP_VIDEO(CHID(kst8, krepDefault), \"proj2.avi\", fTrue)\n\tREP_VIDEO(CHID(kst9, krepDefault), \"proj3.avi\", fTrue)\n\tREP_VIDEO(CHID(kst10, krepDefault), \"proj4.avi\", fTrue)\n\tREP_VIDEO(CHID(kst11, krepDefault), \"proj5.avi\", fTrue)\n\tREP_VIDEO(CHID(kst12, krepDefault), \"proj6.avi\", fTrue)\n\tCREATE_ANIM(\"\")\n\t\tChangeStateThis(kst1 + (::gdCurrProj - 1));\n\tENDCHUNK\n\n// -----------------------------------------------------\n// The frame behind the text\n// -----------------------------------------------------\nGOBCHUNK(\"Gadget text area\", kidGadgetWord, gokkNoHit)\n\tDEFAULT_POSITION(0, 0, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)\nENDCHUNK\n\tREP_MBMP(CHID(kst1, krepDefault), \"studio\\bmp\\gdword.bmp\")\n\tCREATE_ANIM(\"Text box created\")\n\t\tCreateChildThis(kidGadgetTextBox, kidGadgetTextBox);\n\tENDCHUNK\n\n// -----------------------------------------------------\n// The \"fill\" is the area that is writable on the word bitmap\n// -----------------------------------------------------\nGOBCHUNK(\"Gadget text box fill\", kidGadgetTextBox, gokkNoHit)\n\tDEFAULT_POSITION(0, 0, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)\nENDCHUNK\n\tREP_FILL(CHID(kst1, krepDefault), \"Text Box Fill\", kTextBoxFillLeft, kTextBoxFillTop, kTextBoxFillRight, kTextBoxFillBottom, Transparent, Transparent)\n\t\tPATTERN_0\n\tENDCHUNK\n\n// -----------------------------------------------------\n// The \"fill\" is behind the locker bmps, lockers parent\n// -----------------------------------------------------\nGOBCHUNK(\"Gadget locker fill\", kidGadgetLockerFill, gokkNoHit)\n\tDEFAULT_POSITION(0, 0, 200)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)\nENDCHUNK\n\tREP_FILL(CHID(kst1, krepDefault), \"Locker Fill\", kLockerFillLeft, kLockerFillTop, kLockerFillRight, kLockerFillBottom, Palette(20), Transparent)\n\t\tPATTERN_50X\n\tENDCHUNK\n\tCREATE_ANIM(\"gadget created\")\n\t\tCreateChildThis(kidGadgetLockerPict, kidGadgetLockerPict);\n\tENDCHUNK\n\n// -----------------------------------------------------\n// The picture in the gadgets locker area\n// -----------------------------------------------------\nGOBCHUNK(\"Gadget locker picture\", kidGadgetLockerPict, gokkNoHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)\nENDCHUNK\n\t\n\tREP_MBMP(kcell1, \"studio\\bmp\\pnshot7.bmp\")\n\tREP_MBMP(kcell2, \"studio\\bmp\\pnshot7a.bmp\")\n\tREP_MBMP(kcell3, \"studio\\bmp\\pnshot7b.bmp\")\n\tREP_MBMP(kcell4, \"studio\\bmp\\pnshot7c.bmp\")\n\tREP_MBMP(kcell5, \"studio\\bmp\\pnshot7d.bmp\")\n\tREP_MBMP(kcell6, \"studio\\bmp\\pnshot7e.bmp\")\n\tREP_MBMP(kcell7, \"studio\\bmp\\pnshot7f.bmp\")\n\n\tREP_MBMP(kcell8, \"studio\\bmp\\pnshot5.bmp\")\n\tREP_MBMP(kcell9, \"studio\\bmp\\pnshot5a.bmp\")\n\tREP_MBMP(kcell10, \"studio\\bmp\\pnshot5b.bmp\")\n\tREP_MBMP(kcell11, \"studio\\bmp\\pnshot5c.bmp\")\n\tREP_MBMP(kcell12, \"studio\\bmp\\pnshot5d.bmp\")\n\n\tREP_MBMP(kcell13, \"studio\\bmp\\pnshot9a.bmp\")\n\tREP_MBMP(kcell14, \"studio\\bmp\\pnshot9b.bmp\")\n\tREP_MBMP(kcell15, \"studio\\bmp\\pnshot9c.bmp\")\n\n\t// Review::temps - need bitmaps for project 6\n\n\tREP_MBMP(kcell16, \"studio\\bmp\\pnshot4.bmp\")\n\tREP_MBMP(kcell17, \"studio\\bmp\\pnshot4a.bmp\")\n\tREP_MBMP(kcell18, \"studio\\bmp\\pnshot4b.bmp\")\n\tREP_MBMP(kcell19, \"studio\\bmp\\pnshot4c.bmp\")\n\tREP_MBMP(kcell20, \"studio\\bmp\\pnshot4d.bmp\")\n\tREP_MBMP(kcell21, \"studio\\bmp\\pnshot4e.bmp\")\n\n\tREP_MBMP(kcell22, \"studio\\bmp\\pnshot6.bmp\")\n\tREP_MBMP(kcell23, \"studio\\bmp\\pnshot6a.bmp\")\n\tREP_MBMP(kcell24, \"studio\\bmp\\pnshot6b.bmp\")\n\tREP_MBMP(kcell25, \"studio\\bmp\\pnshot6c.bmp\")\n\tREP_MBMP(kcell26, \"studio\\bmp\\pnshot6d.bmp\")\n\tREP_MBMP(kcell27, \"studio\\bmp\\pnshot6e.bmp\")\n\tREP_MBMP(kcell28, \"studio\\bmp\\pnshot6f.bmp\")\n\tREP_MBMP(kcell29, \"studio\\bmp\\pnshot6g.bmp\")\n\tREP_MBMP(kcell30, \"studio\\bmp\\pnshot6h.bmp\")\n\tREP_MBMP(kcell31, \"studio\\bmp\\pnshot6i.bmp\")\n\n\tREP_MBMP(kcell32, \"studio\\bmp\\pnshot8.bmp\")\n\tREP_MBMP(kcell33, \"studio\\bmp\\pnshot8a.bmp\")\n\tREP_MBMP(kcell34, \"studio\\bmp\\pnshot8b.bmp\")\n\tREP_MBMP(kcell35, \"studio\\bmp\\pnshot8c.bmp\")\n\tREP_MBMP(kcell36, \"studio\\bmp\\pnshot8d.bmp\")\n\n\tREP_MBMP(kcell37, \"studio\\bmp\\pnclosed.bmp\")\n\tREP_ANIM(CHID(kst1, krepDefault), \"Show closed locker\")\n\t\tCell(kcell37, 0, 0, 1);\n\tENDCHUNK\t\n\tREP_ANIM(CHID(kst2, krepDefault), \"Show first step of current project\")\n\t\tCell((kcell1 + ::gdProjEnd[::gdCurrProj - 1] + ::gdCurrStep - 1) , 0, 0, 1);\n\tENDCHUNK\n\n// -------------------------------------------------------\n//\tUp and down selector arrows function\n// -------------------------------------------------------\nHELP_SCRIPT(ktpcNewMovie)\n\t// 0 means play sound, else see what button was hit\n\tIf (_parm[0] != 0);\t\n\t\t// try another movie\n\t\tIf (_parm[0] == 1);\n\t\t\t// clear existing moving in studio\n\t\t\tEnqueueCid(cidNew, khidStudio, 0, 0, 0, 0);\n\t\t\t// if we are past step 1 save stuff will come up, need to handle it\n\t\t\tIf (::gdCurrStep > 1);\n\t\t\t\tFilterCmdsGob(kidGadgetParent, cidQuerySaveDocResult, kidNil, kchidScript3);\n\t\t\t\tFilterCmdsGob(kidGadgetParent, cidPortfolioResult, kidNil, kchidScript4);\n\t\t\t\tDestroyGob(kgobProjectHot);\t\t\t\t\t\t\n\t\t\tElse;\n\t\t\t\tIf (::gdUpSelected == fTrue);\n\t\t\t\t\tRunScriptGob(kidGadgetSelectorUp, kchidScript1);\n\t\t\t\tElse;\n\t\t\t\t\tRunScriptGob(kidGadgetSelectorDown, kchidScript1);\n\t\t\t\tEnd;\n\t\t\t\tDestroyGob(kidGadgetAlertGlass);\t\t\t\t\t\t\n\t\t\tEnd;\n\t\t// continue with current project\n\t\tElse;\n\t\t\tDestroyGob(kidGadgetAlertGlass);\t\t\t\t\t\t\n\t\tEnd;\n\t\tReturn(fTrue);\n\tElse;\n//\t\tIf (._cnoSound != cnoNil && ::fMelAudio);\n\t\t\tStopSoundClass(0, sclHelpSoundClass);\t\t\n//\t\t\tPlaySoundGob(GidParThis(), ._ctgSound, ._cnoSound, ksqnNone, 0x10000, 1, 0, sclHelpSoundClass);\n//\t\tEnd;\n\tEnd;\nENDCHUNK\n\n// -------------------------------------------------------\n//\tCancel button function\n// -------------------------------------------------------\nHELP_SCRIPT(ktpcProjectCancel)\n\t// 0 means play sound, else see what button was hit\n\tIf(_parm[0] != 0);\t\n\t\t// work on your own\n\t\tIf (_parm[0] == 1);\n\t\t\t// work on my own case\n\t\t\tRunScriptGob(kidGadgetCancel, kchidScript1);\n\t\t\tDestroyGob(kidGadgetAlertGlass);\t\t\t\t\t\t\n\t\t// go to projects room\n\t\tElif (_parm[0] == 2);\n\t\t\tIf (::gdCurrStep > 1);\n\t\t\t\tFilterCmdsGob(kidGadgetParent, cidQuerySaveDocResult, kidNil, kchidScript5);\n\t\t\t\tFilterCmdsGob(kidGadgetParent, cidPortfolioResult, kidNil, kchidScript6);\n\t\t\t\tDestroyGob(kgobProjectHot);\t\t\t\t\t\t\n\t\t\tEnd;\n\t\t\t// go back to the projects room case\n\t\t\tENABLEACCEL(fFalse);\n\t\t \tEnqueueCid(cidLoadBuilding, 0, 0, 0, 0, 0);\n\t\t// continue project\n\t\tElse;\n\t\t\tDestroyGob(kidGadgetAlertGlass);\t\t\t\t\t\t\n\t\tEnd;\t\t\n\t\tReturn(fTrue);\n\tElse;\n\t\tfMelAudio = GetProp( kpridMcZeeAudio ) & kflgMelAudio;\t\t\n\t\tIf (._cnoSound != cnoNil && !fMelAudio);\n\t\t\tStopSoundClass(0, sclHelpSoundClass);\t\t\n\t\t\tPlaySoundGob(GidParThis(), ._ctgSound, ._cnoSound, ksqnNone, 0x10000, 1, 0, sclHelpSoundClass);\n\t\tEnd;\n\tEnd;\nENDCHUNK\n\n"
  },
  {
    "path": "src/studio/gadgpers.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//-------------------------------------------------------\n// gadgpers.cht - Persistent object for the gadget\n//-------------------------------------------------------\n//\n// Store an array that keeps track ofthe current topic for\n// each object in the gadget.  If not already created\n// everything will default to the first topic\n// \n//\tReview::This will probably be replace by globals later\n//-------------------------------------------------------\nGOBCHUNK(\"Persisent Gadget\", kidGadgetPersistent, gokkNoHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil)\nENDCHUNK\n\tREP_ANIM(CHID1(krepDefault), \"Gadget Persistent\")\n\t\t// current project and step\tfor that project\n\t\t::gdCurrProj = ::NextProject;\n\t\t::gdCurrStep = 1;\n\n\t\t// which selector button was last hit\n\t\t::gdUpSelected = fTrue;\n\n\t\t// number of steps in each sequence\n\t\t::gdSeqSteps[1] = 7;\t\n\t\t::gdSeqSteps[2] = 5;\n\t\t::gdSeqSteps[3] = 3;\n\t\t::gdSeqSteps[4] = 6;\n\t\t::gdSeqSteps[5] = 10;\n\t\t::gdSeqSteps[6] = 5;\n\n\t\t// Last step in each sequence, all are kept as one big sequence\n\t\t::gdProjEnd[0] = 0;\t\n\t\t::gdProjEnd[1] = 7;\n\t\t::gdProjEnd[2] = 12;\n\t\t::gdProjEnd[3] = 15;\n\t\t::gdProjEnd[4] = 21;\n\t\t::gdProjEnd[5] = 31;\n\t\t::gdProjEnd[6] = 36;\n\n\t\t// Sequence ids for each step\n\t\t// Review::make sequential and just use first one\n\t\t::gdSeqNum[1] = kid1Project01;\n\t\t::gdSeqNum[2] = kid1Project02;\n\t\t::gdSeqNum[3] = kid1Project03;\n\t\t::gdSeqNum[4] = kid1Project04;\n\t\t::gdSeqNum[5] = kid1Project05;\n\t\t::gdSeqNum[6] = kid1Project06;\n\t\t::gdSeqNum[7] = kid1Project07;\n\t\t::gdSeqNum[8] = kid3Project01;\t \n\t\t::gdSeqNum[9] = kid3Project02;\t\t \n\t\t::gdSeqNum[10] = kid3Project03;\t\t\n\t\t::gdSeqNum[11] = kid3Project04;\t\t \n\t\t::gdSeqNum[12] = kid3Project05;\t\t\n\t\t::gdSeqNum[13] = kid2Project01;\n\t\t::gdSeqNum[14] = kid2Project02;\n\t\t::gdSeqNum[15] = kid2Project03;\n\t\t::gdSeqNum[16] = kid6Project01;\t   \n\t\t::gdSeqNum[17] = kid6Project02;\t\t  \n\t\t::gdSeqNum[18] = kid6Project03;\t  \n\t\t::gdSeqNum[19] = kid6Project04;\t  \n\t\t::gdSeqNum[20] = kid6Project05;\t \n\t\t::gdSeqNum[21] = kid6Project06;\t \n\t\t::gdSeqNum[22] = kid5Project01;\n\t\t::gdSeqNum[23] = kid5Project02;\n\t\t::gdSeqNum[24] = kid5Project03;\n\t\t::gdSeqNum[25] = kid5Project04;\n\t\t::gdSeqNum[26] = kid5Project05;\n\t\t::gdSeqNum[27] = kid5Project06;\n\t\t::gdSeqNum[28] = kid5Project07;\n\t\t::gdSeqNum[29] = kid5Project08;\n\t\t::gdSeqNum[30] = kid5Project09;\n\t\t::gdSeqNum[31] = kid5Project10;\n\t\t::gdSeqNum[32] = kid4Project01;\n\t\t::gdSeqNum[33] = kid4Project02;\n\t\t::gdSeqNum[34] = kid4Project03;\n\t\t::gdSeqNum[35] = kid4Project04;\n\t\t::gdSeqNum[36] = kid4Project05;\n\tENDCHUNK\n"
  },
  {
    "path": "src/studio/helpbook.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// -----------------------------------------------------\n//  CHT file that defines the interaction with the\n//\t\tHelp Book.\n//\n// Modified / Reviewed:\n// 5.29.95  ***** -- made to use ::globals\n// -----------------------------------------------------\n\n// WAVE FILES for the help book \n\n//WAVE_CHUNK(\"studio\\sound\\hmbtn.wav\", kcnoHelpMainWav )\nWAVE_CHUNK(\"studio\\sound\\next.wav\", kcnoHelpMainWav )\nWAVE_CHUNK(\"studio\\sound\\next.wav\", kcnoHelpNextWav )\nWAVE_CHUNK(\"studio\\sound\\back.wav\", kcnoHelpBackWav )\n\n// WAVE_CHUNK (\"studio\\sound\\bingo.wav\", wavBingo)\n\n//------------------------------------------------------------------\n// Help book parent object\n//------------------------------------------------------------------\nOBJECT(\"Help Book Parent\", kgobHelpBookParent, 100, kcrsArrow)\n\tREP_RECT(CHID1(krepDefault), \"kgobHelpBookParent\", 0,0, 640, 480 )\n\tCREATE_ANIM(\"help book parent created\")\n\t\t\n\t\t.last = kidNil;\t\t// .last = kid of last primary button hilited\n\t\t.lasthow = kidNil;\t// .lasthow = kid of last how to button hilited\n\t\t.hsshow = 0;\t\t// flag: is how to sub section showing?\n\n\t\tDISABLEACCEL(fFalse);\n\t\t// Note: the above disable hotkeys while the book is up.\n\t\t// Note that since enables have to match with disables, any way the book is killed\n\t\t// *must* reenable the keys.  So far, the two book deconstructors are :\n\t\t//  hit cancel (easy)    choose a tool topic or how to.\n\n\t\t// eat all keys while the book is up\n\t\tFilterCmdsThis(cidKey, kidNil, kchidScript9);\n\n\t\t// Create the help gizmo and the fill\t\n\t\tCreateChildThis( kgobHelpBookGizmo, kgobHelpBookGizmo );\t\t\t\n\t\tCreateChildThis( kgobHelpBookFillPar, kgobHelpBookFillPar );\n\t\tCreateChildThis( kgobHelpBookHowSub, kgobHelpBookHowSub );\n\t\t\n\t\t\n\t\t// Switch to the current section + topic\n\t\tRunScriptThis(kchidScript4, ::HBSection, ::HBtpcCur[::HBSection ] );\n\tENDCHUNK\n\n\t//------------------------------------------------------------------\n\t// Script to switch to a particular section (first page of)\n\t// \n\t//------------------------------------------------------------------\n\tCHILD_SCRIPT( \"help book : switch to section\", kchidScript1  )\n\t\tIf( _parm[0] != 1 );\n\t\t\ttpc = ::HBtpcEnd[ _parm[0]-1 ] +1;\n\t\tElse;\n\t\t\ttpc = ktpcBook1TOC;\n\t\tEnd;\n\t\t// display!\n\t\tRunScriptThis( kchidScript4, _parm[0], tpc );\n\n\tENDCHUNK\n\n\n\t//------------------------------------------------------------------\n\t// Script to switch to the previous page.\n\t// -- no parameters --\n\t//------------------------------------------------------------------\n\tCHILD_SCRIPT(\"help book : prev page\", kchidScript2)\n\t\t\n\t\t// find current section # and topic\n\t\tsec = ::HBSection;\n\t\ttop = ::HBtpcCur[sec];\n\n\t\tIf (top == ktpcBookStart);\t// Can't go previous at first page TOC\n\t\t\tExit();\n\t\tEnd;\n\t\ttop--;\n\t\t// Check to see if we underflow the current section\n\t\tIf (sec > 1);\n\t\t\tIf (top <= ::HBtpcEnd[sec - 1]);\n\t\t\t\t// Did underflow.  Decrement section # (topic # is ok)\n\t\t\t\tsec--;\n\t\t\tEnd;\n\t\tEnd;\n\t\t// Then tell the book to switch to that page\n\t\tRunScriptThis(kchidScript4, sec, top);\n\tENDCHUNK\n\n\t//------------------------------------------------------------------\n\t// Script to switch to the next page.\n\t// -- no parameters --\n\t//------------------------------------------------------------------\n\tCHILD_SCRIPT( \"help book : next page\", kchidScript3 )\n\n\t\t// find current section # and topic\n\t\tsec = ::HBSection;\n\t\ttop = ::HBtpcCur[ sec ];\n\n\t\tIf (top == ktpcBookEnd);\t// Can't go next at last page\n\t\t\tExit();\n\t\tEnd;\n\t\ttop++;\n\t\tIf (sec < 10);\n\t\t\t// Check to see if we overflow the current section\n\t\t\tIf (top > ::HBtpcEnd[sec]);\n\t\t\t\t// Did overflow.  Decrement section # (topic # is ok)\n\t\t\t\tsec++;\n\t\t\tEnd;\n\t\tEnd;\n\t\t// tell the book to switch to that page\n\t\tRunScriptThis(kchidScript4, sec, top );\n\tENDCHUNK\n\n\t// -------------------------------------------------------------\n\t// Switch book display to section passed as _parm0, topic = _parm1\n\t//\n\t// This is the core of the help book display; all other scripts\n\t// fall through here for update.\n\t//\n\t// Parameters: \t_parm[0] = section #\n\t//\t\t\t\t_parm[1] = topic id\n\t// -------------------------------------------------------------\n\tCHILD_SCRIPT( \"help book : switch to section\", kchidScript4  )\n\t\tsec = _parm[0];\n\t\ttpc = _parm[1];\n\n\t\t::HBSection = sec;\t\t// update global section variable\n\t\t::HBtpcCur[sec] = tpc;\t// and MRU page in that section (for book re-open)\n\n\t\n\t\t// deselect last main section button\n\t\tIf (.last != kidNil);\n\t\t\tChangeStateGob(.last, kst1);\t// - deselect the last\n\t\tEnd;\n\n\t\t// select new one\n\t\tgob = Select(sec, kidNil,\n\t\t\tkgobHelpBookPrimary1, kgobHelpBookPrimary2, kgobHelpBookPrimary3,\n\t\t\tkgobHelpBookPrimary3, kgobHelpBookPrimary3, kgobHelpBookPrimary3,\n\t\t\tkgobHelpBookPrimary3, kgobHelpBookPrimary3, kgobHelpBookPrimary4,\n\t\t\tkgobHelpBookPrimary5);\n\t\t\n\t\tIf( gob != kidNil );\n\t\t\tChangeStateGob(gob, kst2);\n\t\t\t.last = gob;\t\n\t\tEnd;\n\n\t\t// If it's a HOW TO section -- select the second piece too\n\t\tIf ( sec >= 3 && sec <= 8);\t\n\t\t\t// set our lastsub section value\n\t\t\t::HBLastsub = sec;\n\n\t\t\t// send out how sub bar\n\t\t\tIf (.hsshow == 0);\n\t\t\t\tChangeStateGob(kgobHelpBookHowSub, kst2);\n\t\t\t\t.hsshow = 1;\n\t\t\tEnd;\n\n\t\t\t//  deselect the last \"how to\" subtopic\n\t\t\tIf (.lasthow != kidNil);\n\t\t\t\tChangeStateGob(.lasthow, kst1);\t\n\t\t\tEnd;\n\n\t\t\t// Select current how to\n\t\t\tgob = Select( sec - 2, 0,\n\t\t\t\tkgobHelpHowButton1, kgobHelpHowButton2,\n\t\t\t\tkgobHelpHowButton3, kgobHelpHowButton4,\n\t\t\t\tkgobHelpHowButton5, kgobHelpHowButton6);\n\n\t\t\t// Select & keep track of the last how to subtopic selected\n\t\t\tChangeStateGob(gob, kst2);\n\t\t\t.lasthow = gob;\t\t\t\t\n\t\t\t\n\t\t// wasn't a how sub section, get rid of How To subsection\n\t\tElse;\n\t\t\tIf (.hsshow == 1);\n\t\t\t\tChangeStateGob(kgobHelpBookHowSub, kst3);\n\t\t\t\t.hsshow = 0;\n\t\t\tEnd;\n\t\tEnd;\n\n\t\t// Check and set state of page forward button (kst2 = disabled)\n\t\tChangeStateGob( kgobHelpBookPageFwd,\n\t\t\t((tpc) >= ktpcBookEnd ) ? kst2 : kst1 );\n\n\t\t// Check and set state of page back button (kst2 = disabled)\n\t\tChangeStateGob( kgobHelpBookPageBack,\n\t\t\t(tpc <= ktpcBookStart ) ? kst2 : kst1 );\n\n\t\t// Calculate the page # ... section one is a special case\n\n\t\tstart = (sec == 1 ) ? (ktpcBookStart - 1) : (::HBtpcEnd[sec - 1]);\n\n\t\t// Now put values into the stringtable so help can show em.\n\t\tNumToStr((::HBtpcEnd[sec] - start), stidMaxPage);\n\t\tNumToStr((tpc - start), stidCurrPage);\n\n\t\t// destroy previous gobs\n\t\tIf (FGobExists(kgobHelpBookBkgd));\n\t\t\tDestroyGob(kgobHelpBookBkgd);\n\t\t\tDestroyGob(kgobHelpBookPageNum);\n\t\t\tDestroyGob(kgobHelpBookPageLeft);\n\t\tEnd;\n\t\t// create the title for this topic\n\t\tCreateHelpGob(kgobHelpTitlePar, tpcTitle1 + sec - 1);\n\t\t// and then the page itself\n\t\tCreateHelpGob(kgobHelpBookGizmo, tpcPageNumber);\n\n\t\t// set the rectangle which holds the topics up\n\t\tst = (sec > 2 && sec < 9) ? kst2 : kst1;\n\t\tChangeStateGob( kgobHelpBookFillPar, st );\n\n\t\t// and create the help topic\n\t\tCreateHelpGob(kgobHelpBookFillPar, tpc);\n\tENDCHUNK\n\n\t// -------------------------------------------------------------\n\t// script to eat and throw away key clicks\n\tCHILD_SCRIPT( \"help book : switch to section\", kchidScript9  )\n\t\tReturn( fTrue );\n\tENDCHUNK\n\n///////////////////////////////////\n// Help book gizmo object\n///////////////////////////////////\n// -----------------------------------------------------\n// Gizmo body image that masks stuff underneath it\n// -----------------------------------------------------\nOBJECTTY(\"Help Book Gizmo\", kgobHelpBookGizmo, 180, kcrsArrow, kgokkRectHit )\n\tREP_MBMP(CHID1(krepDefault), \"studio\\bmp\\gizmo.bmp\")\n\tCREATE_ANIM(\"help gizmo created\")\n\t\t\n\t// Spot for the Help topic title\n\tCreateChildGob( GidParThis(), kgobHelpTitlePar, kgobHelpTitlePar );\n\t\n\t// And controls / buttons on top...\n\tCreateChildThis(kgobHelpBookVolume, kgobHelpBookVolume);\t\t\n\tCreateChildThis( kgobHelpBookVolumePath, kgobHelpBookVolumePath );\n\tCreateChildThis(kgobHelpBookVoice, kgobHelpBookVoice);\n\tCreateChildThis(kgobHelpBookPageBack, kgobHelpBookPageBack);\n\tCreateChildThis(kgobHelpBookPageFwd, kgobHelpBookPageFwd);\n\tCreateChildThis(kgobHelpBookCancel, kgobHelpBookCancel);\t\n\n\tCreateChildThis(kgobHelpBookPrimary1, kgobHelpBookPrimary1);\n\tCreateChildThis(kgobHelpBookPrimary2, kgobHelpBookPrimary2);\n\tCreateChildThis(kgobHelpBookPrimary3, kgobHelpBookPrimary3);\n\tCreateChildThis(kgobHelpBookPrimary4, kgobHelpBookPrimary4);\n\tCreateChildThis(kgobHelpBookPrimary5, kgobHelpBookPrimary5);\n\n\tENDCHUNK\n\n// -----------------------------------------------------\n// The \"fill\" is the background page color - it changes\n// for each major book section\n// -----------------------------------------------------\nOBJECT(\"Help Book Fill parent\", kgobHelpBookFillPar, 200, kcrsArrow)\n\tREP_RECT(CHID(kst1, krepDefault), \"state1:normal\", kLeftPageL, kTopPage, kLeftPageR, kBottomPage )\n\tREP_RECT(CHID(kst2, krepDefault), \"state2:howto\", kLeftPageL2, kTopPage, kLeftPageR, kBottomPage )\n\n// this object is the balloon itself\nOBJECT(\"Help Book Fill\", kgobHelpBookFill, 200, kcrsArrow)\n\tREP_FILL(CHID(kst1, krepDefault), \"fill\", kLeftPageL, kTopPage, kLeftPageR, kBottomPage, Transparent, Transparent)\n\t\tPATTERN_0\n\tENDCHUNK\n\n// -----------------------------------------------------\n// Help book primary button #1\n// -----------------------------------------------------\nOBJECT(\"Help Table of Contents\", kgobHelpBookPrimary1, 350, kcrsHand1)\n\tREP_MBMP(CHID1(krepDefault), \"studio\\bmp\\prim1.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseDnOff))\n\tREP_MBMP(CHID(kst2, krepDefault), \"studio\\bmp\\prim1s.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\tCLICK_SCRIPT(\"button1 clicked\")\n\t\t// set section 1\n\t\tRunScriptGob( kgobHelpBookParent, kchidScript1, 1 );\n\tENDCHUNK\n\tADOPT_WAVE( kcnoHelpMainWav, CHID1(krepClicked))\n\n// -----------------------------------------------------\n// Help book primary button #2\n// -----------------------------------------------------\nOBJECT(\"Help Basics\", kgobHelpBookPrimary2, 350, kcrsHand1)\n\tREP_MBMP(CHID1(krepDefault), \"studio\\bmp\\prim2.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseDnOff))\n\tREP_MBMP(CHID(kst2, krepDefault), \"studio\\bmp\\prim2s.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\tCLICK_SCRIPT(\"button2 clicked\")\n\t\t// set section 1\n\t\tRunScriptGob( kgobHelpBookParent, kchidScript1, 2 );\n\tENDCHUNK\n\tADOPT_WAVE( kcnoHelpMainWav, CHID1(krepClicked))\n\n// -----------------------------------------------------\n// Help book primary button #3\n// -----------------------------------------------------\nOBJECT(\"Help How To\", kgobHelpBookPrimary3, 350, kcrsHand1)\n\tREP_MBMP(CHID1(krepDefault), \"studio\\bmp\\prim3.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseDnOff))\n\tREP_MBMP(CHID(kst2, krepDefault), \"studio\\bmp\\prim3s.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\tCLICK_SCRIPT(\"button3 clicked\")\n\t\t// Set book to last section within \"How To\" section\n\t\tRunScriptGob( kgobHelpBookParent, kchidScript1, ::HBLastsub );\n\tENDCHUNK\n\tADOPT_WAVE( kcnoHelpMainWav, CHID1(krepClicked))\n\n// -----------------------------------------------------\n// Help book primary button #4\n// -----------------------------------------------------\nOBJECT(\"Help Tools\", kgobHelpBookPrimary4, 350, kcrsHand1)\n\tREP_MBMP(CHID1(krepDefault), \"studio\\bmp\\prim4.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseDnOff))\n\tREP_MBMP(CHID(kst2, krepDefault), \"studio\\bmp\\prim4s.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\tCLICK_SCRIPT(\"button4 clicked\")\n\t\t// set section 1\n\t\tRunScriptGob( kgobHelpBookParent, kchidScript1, 9 );\n\tENDCHUNK\n\tADOPT_WAVE( kcnoHelpMainWav, CHID1(krepClicked))\n\n// -----------------------------------------------------\n// Help book primary button #5\n// -----------------------------------------------------\nOBJECT(\"Help Tips\", kgobHelpBookPrimary5, 350, kcrsHand1)\n\tREP_MBMP(CHID1(krepDefault), \"studio\\bmp\\prim5.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseDnOff))\n\tREP_MBMP(CHID(kst2, krepDefault), \"studio\\bmp\\prim5s.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\tCLICK_SCRIPT(\"button5 clicked\")\n\t\t// set section 1\n\t\tRunScriptGob( kgobHelpBookParent, kchidScript1, 10 );\n\tENDCHUNK\n\tADOPT_WAVE( kcnoHelpMainWav, CHID1(krepClicked))\n\n// -----------------------------------------------------\n// Gizmo volume control\n// -----------------------------------------------------\nOBJECTTTREG(\"Help Book Volume\", kgobHelpBookVolume, 350, kcrsHand1, ttBookVolume, 39, 168)\n\tREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\volume.bmp\", 39, 168)\n\n// --------------------------------------------------------------------------------\n// The thumbnail is the graphic indicator of volume level...\n// positioned within the slide path - not hittable\n// --------------------------------------------------------------------------------\nOBJECTTY( \"HelpBook - volume slider\",  kgobHelpBookVolumeSlider, 60, kcrsArrow1, kgokkRectNoHit )\nREP_MBMP( CHID1( krepDefault ), \"studio\\bmp\\volthmb.bmp\" )\n\n// --------------------------------------------------------------------------------\n// The slider is the rectangular path the volume slider rolls around in.\n//   kdypHelpBookSlider is the height of the slidable area; kdypHelpBookSliderTotal includes\n//   height of thumbnail to be sure it will show at the min setting\n// --------------------------------------------------------------------------------\nOBJECTREG( \"map - volume slidepath\", kgobHelpBookVolumePath, kxpHelpBookSlider, kypHelpBookSlider, 500, kcrsHand1)\nREP_RECT( CHID1( krepDefault), \"HelpBook rectangle\", 0, 0, kdxpHelpBookSlider, kdypHelpBookSliderTotal )\nCREATE_SCRIPT( \"create slidepath\")\n\tCreateChildThis( kgobHelpBookVolumeSlider, kgobHelpBookVolumeSlider  );\n\t// get initial volume value, move thumbnail\n\ty = kdypHelpBookSlider  -(( GetMasterVolume() * kdypHelpBookSlider )/ (2*kvlmFull));\n\tMoveAbsGob( kgobHelpBookVolumeSlider, 0, y );\nENDCHUNK\nREP_ANIM( CHID1( krepMouseDnOn), \"slider\")\t\n\t// repeat up to 30000 times.\n\t.siiLoop = PlaySoundThis( kctgWave, kwavDing, 2, 0x00010000, 30000, 1, 4 );\t\n\tWhile( 1 );\n\t\ty = YMouseThis();\n\t\tIf( y < 0 );\n\t\t\ty=0;\n\t\tElif( y > kdypHelpBookSlider );\n\t\t\ty =kdypHelpBookSlider;\n\t\tEnd;\n\t\t// move thumb slider\n\t\tMoveAbsGob( kgobHelpBookVolumeSlider, 0, y );\n\t\t// track new volume\n\t\tnewvol = ( (2*kvlmFull) * (kdypHelpBookSlider-y) ) / kdypHelpBookSlider;\t\n\t\t// set the volume\n\t\tSetMasterVolume( newvol );\t\n\t\t// Sample at 10/60ths of a second.\n\t\tCell(  0 , 0,0, 10 );\t\n\tEnd;\nENDCHUNK\nREP_ANIM( CHID1( kchidDownUpOn ), \"release on\" )\n\tStopSound( .siiLoop );\nENDCHUNK\nADOPT_ANIM( LAST_ANIM, CHID1( kchidDownUpOff ))\n\n\n\n// -----------------------------------------------------\n// Gizmo voice toggle control\n// -----------------------------------------------------\nOBJECTTTREG(\"Help Book Voice Toggle\", kgobHelpBookVoice, 350, kcrsHand1, ttBookVoice, kxpHelpBookVoice, kypHelpBookVoice)\n\tREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\vocon.bmp\", kxpregHelpBookVoice, kypregHelpBookVoice )\n\tADOPT_MBMP(LAST_MBMP, CHID1(krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(krepMouseDnOff))\n\tADOPT_MBMP( LAST_MBMP, CHID( kst2, krepMouseDnOn ))\n\n\tREP_MBMPREG(CHID1( krepMouseDnOn ), \"studio\\bmp\\vocoff.bmp\", kxpregHelpBookVoice, kypregHelpBookVoice )\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\t\n\tCREATE_ANIM(\"MZ Voice control\")\n\t\t// see if voice should be on or off\n\t\tfMZAudio = GetProp( kpridMcZeeAudio ) & kflgMcZeeAudio;\n\t\tIf ( fMZAudio );\t\t// audio suppressed = state 2\n\t\t\tChangeStateThis(kst2);\n\t\tEnd;\n\tENDCHUNK\n\tCLICK_SCRIPT(\"voice toggle clicked\")\n\t\tflg = GetProp( kpridMcZeeAudio ); \n\n\t\tIf (StateThis() == kst1);\t// audio on (suppress = FALSE)\n\t\t\tflg |= kflgMcZeeAudio;\t// switch to audio off (suppress = TRUE)\n\t\t\tSetProp( kpridMcZeeAudio, flg );\n\t\t\tChangeStateThis(kst2);\t\n\t\tElse;\n\t\t\tflg &= ~kflgMcZeeAudio;\t// opposite of above\n\t\t\tSetProp( kpridMcZeeAudio, flg );\n\t\t\tChangeStateThis(kst1);\t// toggle audio on / off state\n\t\tEnd;\n\t\t\n\tENDCHUNK\n\n// -----------------------------------------------------\n// Page forward control\n// -----------------------------------------------------\nGOBCHUNK(\"Help Book Page Forward\", kgobHelpBookPageFwd, kgokkNormal)\n\tDEFAULT_POSITION( kxpHelpBookPageFwd, kypHelpBookPageFwd, 350)\n\tACTION(fcustNil, fcustNil, fgrfst1, kcrsHand1, CHID(kst1, kchidClick), cidNil, ttBookPageFwd)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\n\tCHILD_SCRIPT(\"page Fwd clicked\", CHID(kst1, kchidClick))\n\t\tRunScriptGob( kgobHelpBookParent, kchidScript3 );\n\tENDCHUNK\n\tREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\pgfwd.bmp\" , kxpregHelpBookPageFwd, kypregHelpBookPageFwd )\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseDnOff))\n\tREP_MBMPREG(CHID1( krepMouseDnOn), \"studio\\bmp\\pgfwdds.bmp\", kxpregHelpBookPageFwd, kypregHelpBookPageFwd )\n\tREP_RECT( CHID(kst2, krepDefault), \"hidden\",0,0,0,0 )\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\tADOPT_WAVE( kcnoHelpNextWav , CHID1(krepClicked))\t\t\n// -----------------------------------------------------\n// Page back control\n// -----------------------------------------------------\nGOBCHUNK(\"Help Book Page Back\", kgobHelpBookPageBack, kgokkNormal)\n\tDEFAULT_POSITION(  kxpHelpBookPageBack, kypHelpBookPageBack, 350)\n\tACTION(fcustNil, fcustNil, fgrfst1, kcrsHand1, CHID(kst1, kchidClick), cidNil, ttBookPageBack)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\n\tCHILD_SCRIPT(\"page back clicked\", CHID(kst1, kchidClick))\n\t\tRunScriptGob( kgobHelpBookParent, kchidScript2 );\n\tENDCHUNK\n\tREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\pgback.bmp\" , kxpregHelpBookPageBack, kypregHelpBookPageBack)\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseDnOff))\n\tREP_MBMPREG(CHID1(krepMouseDnOn), \"studio\\bmp\\pgbackds.bmp\", kxpregHelpBookPageBack, kypregHelpBookPageBack)\n\tREP_RECT( CHID(kst2, krepDefault), \"hidden\",0,0,0,0 )\t\n\tADOPT_WAVE( kcnoHelpBackWav , CHID1(krepClicked))\t\n// -----------------------------------------------------\n// Help book cancel control -- ttBookCancel\n// -----------------------------------------------------\nOBJECTTTREG(\"Help Book Cancel\", kgobHelpBookCancel, 350, kcrsHand1, ttBookCancel, kxpHelpBookCancel, kypHelpBookCancel)\n\tREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\hcancel.bmp\", kxpregHelpBookCancel, kypregHelpBookCancel)\n\tADOPT_MBMP(LAST_MBMP, CHID1(krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(krepMouseDnOff))\n\tREP_MBMPREG(CHID1(krepMouseDnOn), \"studio\\bmp\\hcancelc.bmp\", kxpregHelpBookCancel, kypregHelpBookCancel)\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\tCLICK_SCRIPT(\"Cancel clicked\")\n\t\tENABLEACCEL(fFalse);\n\t\tDestroyGob(kgobHelpBookParent);\n\tENDCHUNK\n\tADOPT_WAVE(kcnoCancelWav, CHID1(krepClicked))\t\n\n// -----------------------------------------------------\n// How To Section subsection\n// -----------------------------------------------------\nOBJECT(\"Help Book How To Sub\", kgobHelpBookHowSub, 250, kcrsArrow)\n\tCREATE_ANIM(\"help book howsub-create\")\n\t\t// create all of our children and set appropriate states\n\t\tCreateChildThis(kgobHelpHowButton1, kgobHelpHowButton1);\n\t\tCreateChildThis(kgobHelpHowButton2, kgobHelpHowButton2);\n\t\tCreateChildThis(kgobHelpHowButton3, kgobHelpHowButton3);\n\t\tCreateChildThis(kgobHelpHowButton4, kgobHelpHowButton4);\n\t\tCreateChildThis(kgobHelpHowButton5, kgobHelpHowButton5);\n\t\tCreateChildThis(kgobHelpHowButton6, kgobHelpHowButton6);\n\tENDCHUNK\n\tREP_RECT( CHID1( krepDefault ), \"blank\", 0, 0, 0, 0 )\n\tREP_MASK( CHID( kst2, krepDefault ), \"studio\\bmp\\howmsk.bmp\", 0, 0 );\n\tREP_RECT( CHID( kst3, krepDefault ), \"blank\", 0, 0, 0, 0 )\n\n// -----------------------------------------------------\n// First \"how to\" subsection button\n// -----------------------------------------------------\nOBJECT(\"Help Book How button1\", kgobHelpHowButton1, 275, kcrsHand1)\n\tREP_MBMP(CHID(kst1, krepDefault), \"studio\\bmp\\hbut1.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseDnOff))\n\tREP_MBMP(CHID(kst2, krepDefault), \"studio\\bmp\\hbut1s.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\tCLICK_SCRIPT(\"button1 clicked\")\n\t\t// set book to section 3\n\t\tRunScriptGob( kgobHelpBookParent, kchidScript1, 3 );\n\tENDCHUNK\n\n\n\n\n// -----------------------------------------------------\n// Second \"how to\" subsection button\n// -----------------------------------------------------\nOBJECT(\"Help Book How button2\", kgobHelpHowButton2, 275, kcrsHand1)\n\tREP_MBMP(CHID(kst1, krepDefault), \"studio\\bmp\\hbut2.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseDnOff))\n\tREP_MBMP(CHID(kst2, krepDefault), \"studio\\bmp\\hbut2s.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\tCLICK_SCRIPT(\"button1 clicked\")\n\t\tRunScriptGob( kgobHelpBookParent, kchidScript1, 4 );\n\tENDCHUNK\n\n// -----------------------------------------------------\n// Third \"how to\" subsection button\n// -----------------------------------------------------\nOBJECT(\"help book How button3\", kgobHelpHowButton3, 275, kcrsHand1)\n\tREP_MBMP(CHID(kst1, krepDefault), \"studio\\bmp\\hbut3.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseDnOff))\n\tREP_MBMP(CHID(kst2, krepDefault), \"studio\\bmp\\hbut3s.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\tCLICK_SCRIPT(\"button1 clicked\")\n\t\tRunScriptGob( kgobHelpBookParent, kchidScript1, 5 );\n\tENDCHUNK\n\n// -----------------------------------------------------\n// Fourth \"how to\" subsection button\n// -----------------------------------------------------\nOBJECT(\"Help Book How button4\", kgobHelpHowButton4, 275, kcrsHand1)\n\tREP_MBMP(CHID(kst1, krepDefault), \"studio\\bmp\\hbut4.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseDnOff))\n\tREP_MBMP(CHID(kst2, krepDefault), \"studio\\bmp\\hbut4s.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\tCLICK_SCRIPT(\"button1 clicked\")\n\t\tRunScriptGob( kgobHelpBookParent, kchidScript1, 6 );\n\tENDCHUNK\n\n// -----------------------------------------------------\n// Fifth \"how to\" subsection button\n// -----------------------------------------------------\nOBJECT(\"Help Book How button5\", kgobHelpHowButton5, 275, kcrsHand1)\n\tREP_MBMP(CHID(kst1, krepDefault), \"studio\\bmp\\hbut5.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseDnOff))\n\tREP_MBMP(CHID(kst2, krepDefault), \"studio\\bmp\\hbut5s.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\tCLICK_SCRIPT(\"button1 clicked\")\n\t\tRunScriptGob( kgobHelpBookParent, kchidScript1, 7 );\n\tENDCHUNK\n\n// -----------------------------------------------------\n// Sixth \"how to\" subsection button\n// -----------------------------------------------------\nOBJECT(\"Help Book How button6\", kgobHelpHowButton6, 275, kcrsHand1)\n\tREP_MBMP(CHID(kst1, krepDefault), \"studio\\bmp\\hbut6.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseUpOn))\n\tADOPT_MBMP(LAST_MBMP, CHID1(  krepMouseDnOff))\n\tREP_MBMP(CHID(kst2, krepDefault), \"studio\\bmp\\hbut6s.bmp\")\n\tADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\tCLICK_SCRIPT(\"button1 clicked\")\n\t\tRunScriptGob( kgobHelpBookParent, kchidScript1, 8 );\n\tENDCHUNK\n\n// -----------------------------------------------------\n// Book Bkgd = rectangle to hold Title\n// size=nil; help will resize this puppy\n// -----------------------------------------------------\nOBJECTTY(\"Help Book Bkgd\", kgobHelpBookBkgd, 225, kcrsArrow, gokkNoHitThis )\nREP_FILL(CHID(kst1, krepDefault), \"title spot\", 0,0,0,0, Palette(44), Transparent )\n\tPATTERN_0\nENDCHUNK\n\n\n// this space is the parent of the help title balloon -- its \n// reg point is at 0,0  (size of the rect is -240,0  to +240, 80\n// so the position must be 320, 80\n\nGOBCHUNK( \"Title space\", kgobHelpTitlePar, gokkNoHitThis )\n\tDEFAULT_POSITION(kxpHelpTitle, kypHelpTitle, kzpHelpTitle)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow1, chidNil, cidNil, cnoNil )\nENDCHUNK\nREP_FILL(CHID(kst1, krepDefault), \"title spot\", kTitleLeft, kTitleTop, kTitleRight, kTitleBottom, Palette(21), Transparent )\n\tPATTERN_0\nENDCHUNK\n\t \t\t\n// -----------------------------------------------------\n// Book Bkgd = rectangle to hold page # help\n// -----------------------------------------------------\nOBJECT(\"Help Book Page Number\", kgobHelpBookPageNum, 350, kcrsArrow)\nREP_RECT(CHID(kst1, krepDefault), \"kgobHelpBookPageNum\", kxpPageNumLeft, kypPageNumTop, kxpPageNumRight, kypPageNumBot )\n\n// ----------------------------------------------------------------\n// Left Book Page - holds help topics\n// auto-resized to hold the help topic\n// ----------------------------------------------------------------\nGOBCHUNK(\"Help Book Page\", kgobHelpBookPageLeft, kgokkNormal)\n\tDEFAULT_POSITION( 0,0,225 )\n\tACTION(fcustHotText, fcustHotText, fgrfstAll, kcrsHand1, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kst1, krepDefault), \"kgobHelpBookPageLeft\", 0, 0, 0, 0 )\n\n// ----------------------------------------------------------------\n// Mouse click in the tools section of the help book\n// *** All tool topics have this listed as the script to run\n// ----------------------------------------------------------------\nHELP_SCRIPT( ktpcBookToolTopics )\n\t// parm[0] = group # passed in.  0 indicates creation only.\n\tIf(_parm[0] != 0);\t\n\t\t// Valid group clicked!  _parm[4] is balloon to automatically\n\t\t// create!\n\t\tIf( _parm[4] == cnoNil );\n\t\t\t// no balloon?  Error!\n\t\t\tDEBUGCMD( AlertStr(\"Not linked to a topic!\") );\n\t\tElse;\n\t\t\t// create the balloon and destroy the book\n\t\t\tCreateHelpGob(kidBackground, _parm[4]);\n\n\t\t\t// reenable the help book's hot keys\n\t\t\tENABLEACCEL(fFalse);\n\t\t\tDestroyGob(kgobHelpBookParent);\n\t\tEnd;\n\t\tReturn( fTrue );\t// tell code NOT to create balloon\n\tEnd;\nENDCHUNK\n\n// -------------------------------------------------------\n// choice button clicked in TOC #1 balloon\n// -------------------------------------------------------\nHELP_SCRIPT(ktpcBook1TOC)\n\t// _parm[0] : 0 = initialization, 1 ==BASICS, 2 = HOWTO, 3 = TOOLS, 4 = TIPS\n\tIf(_parm[0] != 0);\t\n\t\t// Switch to appropriate section.\n\t\tIf (_parm[0] < 3);\n\t\t\tRunScriptGob(kgobHelpBookParent, kchidScript1, _parm[0]+1 );\n\t\tElse;\n\t\t\tRunScriptGob(kgobHelpBookParent, kchidScript1, _parm[0]+6 );\n\t\tEnd;\n\tEnd;\nENDCHUNK\n\n// ----------------------------------------------------------------\n// Mouse click in basics in the help book\n// All how to objects have this listed as the script to run\n// ----------------------------------------------------------------\nHELP_SCRIPT(kidHelpBookBasics)\n\t// parm[0] = group # passed in\n\tIf(_parm[0] != 0);\t\n\t\t// Valid group clicked _parm[4] is id of table object to run\n\t\tIf( _parm[4] == cnoNil );\n\t\t\t// no table?  Error, display alert then get out\n\t\t\tDEBUGCMD( AlertStr(\"Not linked to basics\");)\n\t\tElse;\n\t\t\t// create the balloon and destroy the book\n\t\t\tCreateChildGob(kidBackground, kidSequenceParent, kidSequenceParent);\n\t\t\tCreateChildGob(kidBackground, _parm[4], _parm[4]);\n\n\t\t\t// re-enable the hotkeys for the book\n\t\t\tENABLEACCEL(fFalse);\n\t\t\tDestroyGob(kgobHelpBookParent);\n\t\tEnd;\n\t\tReturn( fTrue );\t// tell code NOT to create help sequence\n\tEnd;\nENDCHUNK\n\n// ----------------------------------------------------------------\n// Mouse click in howto in the help book\n// All how to objects have this listed as the script to run\n// ----------------------------------------------------------------\nHELP_SCRIPT(kidHelpBookHowTo)\n\t// parm[0] = group # passed in\n\tIf(_parm[0] != 0);\t\n\t\t// Valid group clicked _parm[4] is id of table object to run\n\t\tIf( _parm[4] == cnoNil );\n\t\t\t// no table?  Error, display alert then get out\n\t\t\tDEBUGCMD( AlertStr(\"Not linked to a howto!\"); )\n\t\tElse;\n\t\t\t// create the balloon and destroy the book\n\t\t\tCreateChildGob(kidBackground, kidSequenceParent, kidSequenceParent);\n\t\t\tCreateChildGob(kidBackground, _parm[4], _parm[4]);\n\t\t\t\n\t\t\t// re-enable the hotkeys for the book\n\t\t\tENABLEACCEL(fFalse);\n\t\t\tDestroyGob(kgobHelpBookParent);\n\t\tEnd;\n\t\tReturn( fTrue );\t// tell code NOT to create help sequence\n\tEnd;\nENDCHUNK\n\n//\n// Click scripts for query help topics.\n//\n\n// -------------------------------------------------------\n//\tQuery quit\n// -------------------------------------------------------\nHELP_SCRIPT(ktpcQueryQuit)\n\t// If _parm[0] != 0 then a button has been pushed.\n\tIf(_parm[0] != 0);\t\n\t\tEnqueueCid(cidEndModal, 0, _parm[0], 0, 0, 0);\n\tEnd;\nENDCHUNK\n\n// -------------------------------------------------------\n//\tQuery document save\n// -------------------------------------------------------\nHELP_SCRIPT(ktpcQuerySave)\n\t// If _parm[0] != 0 then a button has been pushed.\n\tIf(_parm[0] != 0);\t\n\t\tEnqueueCid(cidEndModal, 0, _parm[0], 0, 0, 0);\n\tEnd;\nENDCHUNK\n\n// -------------------------------------------------------\n//\tQuery sound delete\n// -------------------------------------------------------\nHELP_SCRIPT(ktpcQuerySoundDelete)\n\t// If _parm[0] != 0 then a button has been pushed.\n\tIf(_parm[0] != 0);\t\n\t\tEnqueueCid(cidEndModal, 0, _parm[0], 0, 0, 0);\n\tEnd;\nENDCHUNK\n\n// -------------------------------------------------------\n//\tQuery overwrite existing file\n// -------------------------------------------------------\nHELP_SCRIPT(ktpcQueryOverwrite)\n\t// If _parm[0] != 0 then a button has been pushed.\n\tIf(_parm[0] != 0);\t\n\t\tEnqueueCid(cidEndModal, 0, _parm[0], 0, 0, 0);\n\tEnd;\nENDCHUNK\n\n// -------------------------------------------------------\n//\tQuery exit studio to where\n// -------------------------------------------------------\nHELP_SCRIPT(ktpcQueryExitStudio)\n\t// If _parm[0] != 0 then a button has been pushed.\n\tIf(_parm[0] != 0);\t\n\t\tEnqueueCid(cidEndModal, 0, _parm[0], 0, 0, 0);\n\tEnd;\nENDCHUNK\n\n"
  },
  {
    "path": "src/studio/helpctrl.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\nPALETTECHUNK(\"Palette\", kidResPal, \"studio\\bmp\\socpal2.bmp\")\n\n// -----------------------------------------------------\n// squishy control, with tracking \n// -----------------------------------------------------\nGOBCHUNK(\"_gobHelpSquishy\", _gobHelpSquishy, 0)\n\tDEFAULT_POSITION(0,0,1)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, kchidClick, cidNil, cnoNil)\nENDCHUNK\n// normal\nREP_MBMP( CHID1( krepDefault), \"studio\\bmp\\squishy1.bmp\"  )\n// splotted\nREP_MBMP( CHID1( krepMouseDnOn ), \"studio\\bmp\\squishy2.bmp\" )\nREP_MBMP( CHID1( krepMouseUpOn ), \"studio\\bmp\\squishy3.bmp\" )\nADOPT_MBMP( LAST_MBMP, CHID1( krepMouseDnOff ))\nREP_WAVE( CHID1( krepClicked ), \"studio\\sound\\sqshbtn.wav\" )\n\n// ok button in help topics\nGOBCHUNK(\"kgobOkButton\", kgobOkButton, 0)\n\tDEFAULT_POSITION( 0,0,1)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, kchidClick, cidNil, cnoNil)\nENDCHUNK\n// normal\nREP_MBMPREG(CHID1( krepDefault), \"studio\\bmp\\okbtn1.bmp\", 10,10)\nADOPT_MBMP(LAST_MBMP, CHID1(krepMouseDnOff))\n// ring\nREP_MBMPREG(CHID1(krepMouseDnOn), \"studio\\bmp\\okbtn3.bmp\", 10, 10)\n// splotted\nREP_MBMPREG(CHID1(krepMouseUpOn), \"studio\\bmp\\okbtn2.bmp\", 10, 10)\nREP_WAVE( CHID1( krepClicked ), \"studio\\sound\\ok.wav\" )\n\n// question mark in help topics\n// changed to gem - ***** \nGOBCHUNK(\"kgobQuestionButton\", kgobQuestionButton, 0)\n\tDEFAULT_POSITION( 0,0,1)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, kchidClick, cidNil, cnoNil)\nENDCHUNK\n// normal\nREP_MBMP( CHID1( krepDefault), \"studio\\bmp\\pic1016.bmp\"  )\n// splotted\nREP_MBMP( CHID1( krepMouseDnOn ), \"studio\\bmp\\pic1016d.bmp\" )\nREP_MBMP( CHID1( krepMouseUpOn ), \"studio\\bmp\\pic1016r.bmp\" )\nADOPT_MBMP( LAST_MBMP, CHID1( krepMouseDnOff ))\nREP_WAVE( CHID1( krepClicked ), \"studio\\sound\\gemtip.wav\" )\n\n// Tip gem - pic1016\nGOBCHUNK(\"_gobTipGem\", _gobTipGem, 0)\n\tDEFAULT_POSITION( 0,0,1)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, kchidClick, cidNil, cnoNil)\nENDCHUNK\n// normal\nREP_MBMP( CHID1( krepDefault), \"studio\\bmp\\pic1016.bmp\"  )\n// splotted\nREP_MBMP( CHID1( krepMouseDnOn ), \"studio\\bmp\\pic1016d.bmp\" )\nREP_MBMP( CHID1( krepMouseUpOn ), \"studio\\bmp\\pic1016r.bmp\" )\nADOPT_MBMP( LAST_MBMP, CHID1( krepMouseDnOff ))\nREP_WAVE( CHID1( krepClicked ), \"studio\\sound\\gemtip.wav\" )\n\n// Key tip  - pic1020\nGOBCHUNK(\"_gobTipKey\", _gobTipKey, 0)\n\tDEFAULT_POSITION( 0,0,1)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, kchidClick, cidNil, cnoNil)\nENDCHUNK\n// normal\nREP_MBMP( CHID1( krepDefault), \"studio\\bmp\\pic1020.bmp\"  )\n// splotted\nREP_MBMP( CHID1( krepMouseDnOn ), \"studio\\bmp\\pic1020d.bmp\" )\nREP_MBMP( CHID1( krepMouseUpOn ), \"studio\\bmp\\pic1020r.bmp\" )\nADOPT_MBMP( LAST_MBMP, CHID1( krepMouseDnOff ))\nREP_WAVE( CHID1( krepClicked ), \"studio\\sound\\ok.wav\" )\n\n// Cancel Button in help topics\nGOBCHUNK(\"kgobCancelButton\", kgobCancelButton, 0)\n\tDEFAULT_POSITION( 0,0,1)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand1, kchidClick, cidNil, cnoNil)\nENDCHUNK\n// normal\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\cancbtn1.bmp\", 10,10)\nADOPT_MBMP(LAST_MBMP, CHID1(krepMouseDnOff))\nREP_MBMPREG(CHID1(krepMouseDnOn), \"studio\\bmp\\cancbtn3.bmp\", 10, 10)\n\n\n\n\n\n\n"
  },
  {
    "path": "src/studio/helpres.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// Help resource Chunky Text build file\n\n\n#define PACK PACK\n#include \"kidgs.chh\"\n#include \"helpres.h\"\n\n//STARTCHUNKY \n\nHELP_MBMP(helppic1016_bmp, \"studio\\bmp\\pic1016.bmp\")\nHELP_MBMP(helppic1016d_bmp, \"studio\\bmp\\pic1016d.bmp\")\nHELP_MBMP(helppic1016r_bmp, \"studio\\bmp\\pic1016r.bmp\")\nHELP_MBMP(helppic1020_bmp, \"studio\\bmp\\pic1020.bmp\")\nHELP_MBMP(helppic1020d_bmp, \"studio\\bmp\\pic1020d.bmp\")\nHELP_MBMP(helppic1020r_bmp, \"studio\\bmp\\pic1020r.bmp\")\nHELP_MBMP(mbmpOkButton_bmp, \"studio\\bmp\\okbtn1.bmp\")\nHELP_MBMP(mbmpOkButtond_bmp, \"studio\\bmp\\okbtn2.bmp\")\nHELP_MBMP(mbmpOkButtonr_bmp, \"studio\\bmp\\okbtn3.bmp\")\nHELP_MBMP(mbmpQstButton_bmp, \"studio\\bmp\\pic1016.bmp\")\nHELP_MBMP(mbmpQstButtond_bmp, \"studio\\bmp\\pic1016d.bmp\")\nHELP_MBMP(mbmpQstButtonr_bmp, \"studio\\bmp\\pic1016r.bmp\")\n\n//////////\n \n//HELP_MBMP(mbmpSettingsCover, \"covr1d.bmp\")\n//HELP_MBMP(mbmpActorsCover     , \"covr2d.bmp\")\n//HELP_MBMP(mbmpSoundsCover     , \"covr3d.bmp\")\n//HELP_MBMP(mbmpTextsCover      , \"covr4d.bmp\")\n//HELP_MBMP(mbmpScrollbarsCover, \"covr5d.bmp\")\n//HELP_MBMP(mbmpPlaysCover      , \"covr6d.bmp\")\n//HELP_MBMP(mbmpUndosCover      , \"covr7d.bmp\")\n//HELP_MBMP(mbmpBooksCover      , \"covr8d.bmp\")\n//HELP_MBMP(mbmpDoors           , \"door0.bmp\")\n//HELP_MBMP(mbmpSettingsBackground, \"1par.bmp\")\n//HELP_MBMP(mbmpActorsBackground, \"2par.bmp\")\n//HELP_MBMP(mbmpSoundsBackground, \"3par.bmp\")\n//HELP_MBMP(mbmpTextsBackground, \"4par.bmp\")\n\nHELP_MBMP(mbmpCutWordBox, \"studio\\bmp\\hpcutwbx.bmp\")\nHELP_MBMP(mbmpHandCursor, \"studio\\bmp\\hphndcur.bmp\")\nHELP_MBMP(mbmpWordBoxCursor, \"studio\\bmp\\hpwbcur.bmp\")\nHELP_MBMP(mbmpLeannCancel, \"studio\\bmp\\hplcanc.bmp\")\nHELP_MBMP(mbmpLeannOk, \"studio\\bmp\\hplok.bmp\")\nHELP_MBMP(mbmpFOScrolling, \"studio\\bmp\\hpscrl.bmp\")\nHELP_MBMP(mbmpFONonScrolling, \"studio\\bmp\\hpnscrl.bmp\")\nHELP_MBMP(mbmpVolumeControl, \"studio\\bmp\\hpvolctl.bmp\")\nHELP_MBMP(mbmpForward, \"studio\\bmp\\hpffw.bmp\")\nHELP_MBMP(mbmpForwardEnd, \"studio\\bmp\\hpffwe.bmp\")\nHELP_MBMP(mbmpRewind, \"studio\\bmp\\hpfrw.bmp\")\nHELP_MBMP(mbmpRewindEnd, \"studio\\bmp\\hpfrwe.bmp\")\nHELP_MBMP(mbmpNukeIcon, \"studio\\bmp\\hpnuke.bmp\")\nHELP_MBMP(mbmpSoundRecord, \"studio\\bmp\\hpsndrec.bmp\")\nHELP_MBMP(mbmpSoundPlay, \"studio\\bmp\\hpsndply.bmp\")\nHELP_MBMP(mbmpCostChangeIcon, \"studio\\bmp\\hpcstchg.bmp\")\nHELP_MBMP(mbmpSceneSlider, \"studio\\bmp\\hpscnsld.bmp\")\nHELP_MBMP(mbmpFrameSlider, \"studio\\bmp\\hpfrmsld.bmp\")\nHELP_MBMP(mbmpSOTransition1, \"studio\\bmp\\hpe3trn1.bmp\")\nHELP_MBMP(mbmpSOTransition2, \"studio\\bmp\\hpe3trn2.bmp\")\nHELP_MBMP(mbmpSOTransition3, \"studio\\bmp\\hpe3trn3.bmp\")\nHELP_MBMP(mbmpSOTransition4, \"studio\\bmp\\hpe3trn4.bmp\")\nHELP_MBMP(mbmpRecordMic, \"studio\\bmp\\hpsndmic.bmp\")\nHELP_MBMP(mbmpPortfolioOpen, \"studio\\bmp\\hpptopen.bmp\")\nHELP_MBMP(mbmpPortfolioSaveAs, \"studio\\bmp\\hpptsvas.bmp\")\nHELP_MBMP(mbmpCCPRemoveBefore, \"studio\\bmp\\hpccpreb.bmp\")\nHELP_MBMP(mbmpCCPRemoveAfter, \"studio\\bmp\\hpccprea.bmp\")\nHELP_MBMP(mbmpCCPRemoveScene, \"studio\\bmp\\hpccpres.bmp\")\nHELP_MBMP(mbmpCCPRemoveObject, \"studio\\bmp\\hpccprob.bmp\")\nHELP_MBMP(mbmpActorActions, \"studio\\bmp\\hpaction.bmp\")\n\nHELP_MBMP( mbmpSceneChoices, \"studio\\bmp\\hp1back.bmp\" )\n\nHELP_MBMP( mbmpSettingsCameras, \"studio\\bmp\\hp1view.bmp\" )\n\nHELP_MBMP( mbmpActorsSelect, \"studio\\bmp\\hp2arrw.bmp\" )\n\nHELP_MBMP( mbmpActorsBiography, \"studio\\bmp\\hp2bio.bmp\" )\n\nHELP_MBMP( mbmpActorsCompose, \"studio\\bmp\\hp2comp.bmp\" )\n\nHELP_MBMP( mbmpActorsCostume, \"studio\\bmp\\hp2cost.bmp\" )\n\nHELP_MBMP( mbmpActorsNormalizeRot, \"studio\\bmp\\hpp5norm.bmp\" )\n\n// REVIEW THIS PLEASE!\n\n//#define mbmpBrwsAction                0x2001A\n//REP_MBMPREG(CHID(kstDefault, krepDefault), \"2act01.bmp\",\n\nHELP_MBMP( mbmpActorsRecordMode, \"studio\\bmp\\hp2recd.bmp\" )\n\nHELP_MBMP( mbmpActorsRotateX, \"studio\\bmp\\hpp5rotx.bmp\" )\n\nHELP_MBMP( mbmpActorsRotateY, \"studio\\bmp\\hpp5roty.bmp\" )\n\nHELP_MBMP( mbmpActorsRotateZ, \"studio\\bmp\\hpp5rotz.bmp\" )\n\nHELP_MBMP( mbmpActorsSooner     , \"studio\\bmp\\hp2soon.bmp\" )\n\nHELP_MBMP( mbmpActorsSquash     , \"studio\\bmp\\hpp4sqsh.bmp\" )\n\nHELP_MBMP( mbmpActorsShrink     , \"studio\\bmp\\hpp4shrk.bmp\" )\n\nHELP_MBMP( mbmpActorsXY         , \"studio\\bmp\\hp2xy.bmp\" )\n\nHELP_MBMP( mbmpActorsXZ         , \"studio\\bmp\\hp2xys.bmp\" )\n\nHELP_MBMP( mbmpActorsGround     , \"studio\\bmp\\hp2zero.bmp\" )\n\n// #define mbmpSoundsMixer              0x20025\n\nHELP_MBMP( mbmpSoundsPlayOnce, \"studio\\bmp\\hp3sing.bmp\" )\n\nHELP_MBMP( mbmpSoundsListen     , \"studio\\bmp\\hp3ear.bmp\" )\n\n// #define mbmpSoundsRecord             0x20028\n\nHELP_MBMP( mbmpSoundsLooping, \"studio\\bmp\\hp3loop.bmp\" )\n\nHELP_MBMP( mbmpSoundsAttachToCell, \"studio\\bmp\\hp3rpt.bmp\" )\n\n// #define mbmpSoundsClear              0x2002B\n\nHELP_MBMP( mbmpTextsBkgdColor, \"studio\\bmp\\hp4back.bmp\" )\n\nHELP_MBMP( mbmpTextsFontShape, \"studio\\bmp\\hp4bold.bmp\" )\n\nHELP_MBMP( mbmpTextsFontColor, \"studio\\bmp\\hp4colr.bmp\" )\n\nHELP_MBMP( mbmpTextsFont        , \"studio\\bmp\\hp4font.bmp\" )\n\nHELP_MBMP( mbmpTextsSelect      , \"studio\\bmp\\hp4ins.bmp\" )\n\nHELP_MBMP( mbmpTextsScroll      , \"studio\\bmp\\hpp7scrl.bmp\" )\n\nHELP_MBMP( mbmpTextsFontSize, \"studio\\bmp\\hp4size.bmp\" )\n\nHELP_MBMP( mbmpTextsStory       , \"studio\\bmp\\hpp7nscr.bmp\" )\n\nHELP_MBMP( mbmpBook                     , \"studio\\bmp\\hpbook.bmp\" )\n\nHELP_MBMP( mbmpMap                      , \"studio\\bmp\\hpmap.bmp\" )\n\nHELP_MBMP( mbmpCutCopyPaste     , \"studio\\bmp\\hpccp.bmp\" )\n\nHELP_MBMP( mbmpUndo                     , \"studio\\bmp\\hpundo.bmp\" )\n\n//HELP_MBMP( mbmpVolumeSlider   , \"studio\\bmp\\hpvol.bmp\" )\n\nHELP_MBMP( mbmpPlay                     , \"studio\\bmp\\hpplay.bmp\" )\n\nHELP_MBMP( mbmpPlayStop         , \"studio\\bmp\\hpplays.bmp\" )\n\nHELP_MBMP( mbmpSceneSorter      , \"studio\\bmp\\hp1scen.bmp\" )\n\nHELP_MBMP( mbmpPortfolio        , \"studio\\bmp\\hpport.bmp\" )\n\nHELP_MBMP( mbmpExit                     , \"studio\\bmp\\hpexit.bmp\" )\n\n//HELP_MBMP( mbmpBrwsBackground, \"studio\\bmp\\hpbook1.bmp\" )\n\n// HELP_MBMP( mbmpBrwsActor     , \"studio\\bmp\\hpbook3.bmp\" )\n\n//#define mbmpBrwsProp                  0x20040\n//#define mbmpBrwsThreeD                0x20041\n//#define mbmpSettingsBrowser   0x20042\n//#define mbmpBrwsBkSound               0x20043\n//#define mbmpBrwsFXSound               0x20044\n//#define mbmpBrwsMusSound              0x20045\n\nHELP_MBMP( mbmpTextsCreate      , \"studio\\bmp\\hp4new.bmp\" )\n\n//HELP_MBMP( mbmpPortsBackground, \"studio\\bmp\\hpp1par.bmp\" )\n\n//HELP_MBMP( mbmpPortsPortfolio, \"studio\\bmp\\hpp1port.bmp\" )\n\nHELP_MBMP( mbmpPortsNew         , \"studio\\bmp\\hpp1new.bmp\" )\n\nHELP_MBMP( mbmpPortsSave        , \"studio\\bmp\\hpp1save.bmp\" )\n\nHELP_MBMP( mbmpPausesMouse      , \"studio\\bmp\\hp1mous.bmp\" )\n\nHELP_MBMP( mbmpPausesClear      , \"studio\\bmp\\hp1nops.bmp\" )\n\nHELP_MBMP( mbmpPausesSound      , \"studio\\bmp\\hp1note.bmp\" )\n\n//HELP_MBMP( mbmpCCPBackground, \"studio\\bmp\\hpp3par.bmp\" )\n\n//HELP_MBMP( mbmpCCPSceneChopFwd, \"studio\\bmp\\hpp3rmfw.bmp\" )\n\n//HELP_MBMP( mbmpCCPSceneNuke   , \"studio\\bmp\\hpp3rmsn.bmp\" )\n\n//HELP_MBMP( mbmpCCPActorNuke   , \"studio\\bmp\\hpp3rmac.bmp\" )\n\nHELP_MBMP( mbmpCCPCopyRoute     , \"studio\\bmp\\hpp3cppt.bmp\" )\n\nHELP_MBMP( mbmpCCPPaste         , \"studio\\bmp\\hpp3past.bmp\" )\n\nHELP_MBMP( mbmpCCPCopy          , \"studio\\bmp\\hpp3copy.bmp\" )\n\nHELP_MBMP( mbmpCCPCut           , \"studio\\bmp\\hpp3cut.bmp\" )\n\nHELP_MBMP( mbmpGenericCancel, \"studio\\bmp\\hpcancel.bmp\" )\n\nHELP_MBMP( mbmpGenericOk        , \"studio\\bmp\\hpokay.bmp\" )\n\nHELP_MBMP( mbmpGenericPageFwd, \"studio\\bmp\\hpfwd.bmp\" )\n\nHELP_MBMP( mbmpGenericPageBack, \"studio\\bmp\\hpbback.bmp\" )\n\n//#define mbmpBrowserCancel     0x2005C\n//#define mbmpBrowserOk         0x2005D\n//#define mbmpBrowserPageFwd    0x2005E\n//#define mbmpBrowserPageBack   0x2005F\n//#define mbmpBrowserFrame              0x20060 //Next 0x100 are reserved\n//#define mbmpBrowserFrameLim   0x2015F\n\n//HELP_MBMP( mbmpCameraFrame    , \"studio\\bmp\\hpframe2.bmp\", 8 ,8 )\n\n//#define mbmpWorkspace         0x20161\n//#define mbmpBackground1               0x20162\n//#define mbmpBackground2               0x20163\n//#define mbmpBackground3               0x20164\n//#define mbmpBackground4               0x20165\n\n//HELP_MBMP( mbmpCCPSceneChopBack, \"studio\\bmp\\hpp3rmbk.bmp\" )\n\nHELP_MBMP( mbmpActorsContinue, \"studio\\bmp\\hp2cont.bmp\" )\n\nHELP_MBMP( mbmpActorsRotate     , \"studio\\bmp\\hp2rot.bmp\" )\n\n\nHELP_MBMP( mbmpActorsTransform, \"studio\\bmp\\hp2tran.bmp\" )\n\n// HELP_MBMP( mbmpRotateBackground, \"studio\\bmp\\hpp5par.bmp\" )\n\n// HELP_MBMP( mbmpTransformBackground, \"studio\\bmp\\hpp4par.bmp\" )\n\n// HELP_MBMP( mbmpScrollBackground, \"studio\\bmp\\hpp7par.bmp\" )\n\nHELP_MBMP( mbmpTextsScrollType, \"studio\\bmp\\hp4scrl.bmp\" )\n\n//#define mbmpBrowserObj                0x2016E\n//#define mbmpBrowserThumb              0x20170 //Next 0x100 are reserved\n//#define mbmpBrowserThumbLim   0X2026F\n\nHELP_MBMP( mbmpActorsRotateNorm, \"studio\\bmp\\hpp5norm.bmp\" )\n\nHELP_MBMP( mbmpActorsTransformNorm, \"studio\\bmp\\hpp4norm.bmp\" )\n\n//HELP_MBMP( mbmpBrwsSceneFrame, \"studio\\bmp\\hpframe1.bmp\", 8 ,8 )\n\n//#define mbmpBrwsActorFrame    0x20275 // CNO for Actor browser frame\n//#define mbmpBrwsMaterial              0x20276\n//#define mbmpBrwsCMaterial     0x20277\n//#define mbmpBrwsThreeD                0x20278\n//#define mbmpBrwsFonts         0x20279\n//#define mbmpBrwsForeColor     0x2027A\n//#define mbmpBrwsBackColor     0x2027B\n//#define mbmpBrwsTextSize              0x2027C\n\nHELP_MBMP( mbmpActorsBrowser, \"studio\\bmp\\hp2actr.bmp\" )\n\nHELP_MBMP( mbmpActorsPropBrowser, \"studio\\bmp\\hp2prop.bmp\" )\n\nHELP_MBMP( mbmpActorsSpletters, \"studio\\bmp\\hp2splt.bmp\" )\n\nHELP_MBMP( mbmpSoundsEfxBrowser, \"studio\\bmp\\hp3horn.bmp\" )\n\nHELP_MBMP( mbmpSoundsMicBrowser , \"studio\\bmp\\hp3mike.bmp\" )\n\nHELP_MBMP( mbmpSoundsMusicBrowser, \"studio\\bmp\\hp3note.bmp\" )\n\nHELP_MBMP( mbmpRedo, \"studio\\bmp\\hpredo.bmp\" )\nHELP_MBMP( mbmpNukeSound, \"studio\\bmp\\hpp3rmsd.bmp\" )\n\n"
  },
  {
    "path": "src/studio/hlpbkper.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//-------------------------------------------------------\n// Helppers.cht - Persistent object for the help book\n//-------------------------------------------------------\n//\n// Store an array that keeps track ofthe current topic for\n// each object in the help book.  If not already created\n// everything will default to the first topic\n//\n// REVIEW: 5.29.95 *****\n// Use Global variables (::)   Make this object go away. \n// Take script below and wrap into Studio - it should \n// initialize these once per studio session.\n//-------------------------------------------------------\nOBJECT(\"Persisent Help\", kgobHelpBookPersistent, 0, kcrsArrow)\n\tREP_ANIM(CHID1(krepDefault), \"Help Book Persistent\")\n\t\t\n\t\t// Set current section, howto subs are 3-8\n\t\t::HBSection = 1;\n\t\t\n\t\t// set lastsub section, for remembering which section of \n\t\t// the \"How To\" section we were on. \n\t\t::HBLastsub = 3;\t// is first\n\n\t\t// Set current topic index -> is an absolute value\n\t\t::HBtpcCur[1] = ktpcBook1TOC;\n\t\t::HBtpcCur[2] = ktpcBook2Basics;\n\t\t::HBtpcCur[3] = ktpcBook3HowTo1;\n\t\t::HBtpcCur[4] = ktpcBook4HowTo1;\n\t\t::HBtpcCur[5] = ktpcBook5HowTo1;\n\t\t::HBtpcCur[6] = ktpcBook6HowTo1;\n\t\t::HBtpcCur[7] = ktpcBook7HowTo1;\n\t\t::HBtpcCur[8] = ktpcBook8HowTo1;\n\t\t::HBtpcCur[9] = ktpcBookSceneTools1;\n\t\t::HBtpcCur[10] = ktpcBook10Tips;\n\n\t\t// Set end point for topics -> is an absolute value\n\n\t\t::HBtpcEnd[1] = ktpcBook1TOC;\n\t\t::HBtpcEnd[2] = ktpcBook2Basics2;\n\t\t::HBtpcEnd[3] = ktpcBook3HowTo2;\n\t\t::HBtpcEnd[4] = ktpcBook4HowTo4;\n\t\t::HBtpcEnd[5] = ktpcBook5HowTo1;\n\t\t::HBtpcEnd[6] = ktpcBook6HowTo3;\n\t\t::HBtpcEnd[7] = ktpcBook7HowTo3;\n\t\t::HBtpcEnd[8] = ktpcBook8HowTo4;\n\t\t::HBtpcEnd[9] = ktpcBookMasterTools6;\n\t\t::HBtpcEnd[10] = ktpcBook10Tips18;\n\tENDCHUNK\n"
  },
  {
    "path": "src/studio/makefile",
    "content": "#---studio.mak\n\n!IFNDEF MAKEFILE_STUDIO\nMAKEFILE_STUDIO = 1\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.def\n\n\n#STUDIO SOURCE DIRECTORY\nSTUDIO_SRC_DIR = $(SOC_ROOT)\\src\\studio\n\n#SOC OBJ DIRECTORY\nSOC_OBJ_ROOT_DIR = $(SOC_ROOT)\\obj\nSOC_OBJ_DIR = $(SOC_OBJ_ROOT_DIR)\\$(BLD_TYPE_DIR)\n\n!IF \"$(LOCAL_BUILD)\" == \"1\"\nTARGET_DIR =\nCHT_BUILD_INC = -I.\n!ELSE # LOCAL_BUILD\nTARGET_DIR = $(SOC_OBJ_DIR)^\\\nCHT_BUILD_INC = -I$(SOC_OBJ_DIR)\n!ENDIF # !LOCAL_BUILD\n\nBREN_LIB =  $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\\bren.lib\\\n\t    $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\\brfmmxr.lib\\\n\t    $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\\brfwmxr.lib\\\n\t    $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\\brzbmxr.lib\n\n\n\nUTEST_TARGETS =\\\n    $(TARGET_DIR)splot.obj\\\n    $(TARGET_DIR)scnsort.obj\\\n    $(TARGET_DIR)browser.obj\\\n    $(TARGET_DIR)utest.obj\\\n    $(TARGET_DIR)stdioscb.obj\\\n    $(TARGET_DIR)stdiobrw.obj\\\n    $(TARGET_DIR)studio.obj\\\n    $(TARGET_DIR)tgob.obj\\\n    $(TARGET_DIR)esl.obj\\\n    $(TARGET_DIR)ape.obj\\\n    $(TARGET_DIR)popup.obj\\\n    $(TARGET_DIR)tatr.obj\\\n    $(TARGET_DIR)portf.obj\\\n    $(TARGET_DIR)mminstal.obj\\\n    $(TARGET_DIR)utest.res\n\nUTEST_DEPS =\\\n    $(WNET_LIB) \\\n    $(VFW32_LIB) \\\n    $(AUDIO_LIB) \\\n    $(BREN_LIB) \\\n    $(TARGET_DIR)engine.lib\n\nUTEST_CHT_FILES = \\\n    $(STUDIO_SRC_DIR)\\utestgst.cht\\\n    $(STUDIO_SRC_DIR)\\utest.cht\n\nSTUDIO_CHT_FILES = \\\n    $(STUDIO_SRC_DIR)\\browser.cht\\\n    $(STUDIO_SRC_DIR)\\cursors.cht\\\n    $(STUDIO_SRC_DIR)\\easels.cht\\\n    $(STUDIO_SRC_DIR)\\helpbook.cht\\\n    $(STUDIO_SRC_DIR)\\hlpbkper.cht\\\n    $(STUDIO_SRC_DIR)\\gadget.cht\\\n    $(STUDIO_SRC_DIR)\\gadgpers.cht\\\n    $(STUDIO_SRC_DIR)\\helpres.cht\\\n    $(STUDIO_SRC_DIR)\\helpctrl.cht\\\n    $(STUDIO_SRC_DIR)\\projmain.cht\\\n    $(STUDIO_SRC_DIR)\\popups.cht\\\n    $(STUDIO_SRC_DIR)\\popdn.cht\\\n    $(STUDIO_SRC_DIR)\\sectools.cht\\\n    $(STUDIO_SRC_DIR)\\stdioscb.cht\\\n    $(STUDIO_SRC_DIR)\\stdiosnd.cht\\\n    $(STUDIO_SRC_DIR)\\tbguidhp.cht\\\n    $(STUDIO_SRC_DIR)\\tbhtscen.cht\\\n    $(STUDIO_SRC_DIR)\\tbhtactr.cht\\\n    $(STUDIO_SRC_DIR)\\tbhtsoun.cht\\\n    $(STUDIO_SRC_DIR)\\tbhtword.cht\\\n    $(STUDIO_SRC_DIR)\\tblogowz.cht\\\n    $(STUDIO_SRC_DIR)\\tbbasics.cht\\\n    $(STUDIO_SRC_DIR)\\tbproj1.cht\\\n    $(STUDIO_SRC_DIR)\\tbproj2.cht\\\n    $(STUDIO_SRC_DIR)\\tbproj3.cht\\\n    $(STUDIO_SRC_DIR)\\tbproj4.cht\\\n    $(STUDIO_SRC_DIR)\\tbproj5.cht\\\n    $(STUDIO_SRC_DIR)\\tbproj6.cht\\\n    $(STUDIO_SRC_DIR)\\studio.cht\n\n\n\nSTUDIO_CHUNK_TARGETS =\\\n    $(TARGET_DIR)studio.chk\n\n\n\nKAUAI_OBJ_GROUPS_FOR_UTEST =\\\n    $(BASE_OBJS)\\\n    $(GUI_OBJS)\\\n    $(GROUP_OBJS)\\\n    $(FILE_OBJS)\\\n    $(MBMPIO_OBJS)\\\n    $(SOUND_OBJS)\\\n    $(VIDEO_OBJS)\\\n    $(SCREXE_OBJS)\\\n    $(DOC_OBJS)\\\n    $(RICHTEXT_OBJS)\\\n    $(CTL_OBJS)\\\n    $(STREAM_OBJS)\\\n    $(DLG_OBJS)\\\n    $(TEXTEDIT_OBJS)\\\n    $(KID_OBJS)\\\n    $(SCRCOM_OBJS)\\\n    $(LEXER_OBJS)\n\nTBOXTHD_DEPS = \\\n    $(STUDIO_SRC_DIR)\\tboxclr.cht \\\n    $(STUDIO_SRC_DIR)\\tboxsize.cht\n\n#-Compile rules-------------------------------------------------------------\n\n\nPROGRAM_DATABASE = $(TARGET_DIR)soc.pdb\nPRECOMPILED_HEADER = $(TARGET_DIR)soc.pch\n\nCPPEXTRA = /Zi /Fd$(PROGRAM_DATABASE) /Fp$(PRECOMPILED_HEADER)\n\nSRC_DIR=$(STUDIO_SRC_DIR)\nOBJ_DIR=$(SOC_OBJ_DIR)\nTGT_NAME=Studio\n\n!INCLUDE $(SOC_ROOT)\\makefile.rul\n\n\n#-Targets-------------------------------------------------------------------\n\nALL_STUDIO = $(TARGET_DIR)3dmovie.exe $(TARGET_DIR)3dmovie.chk STUDIO_CONTENT\nALL_TARGETS_ROOT = $(ALL_TARGETS_ROOT) $(ALL_STUDIO)\n\nCLEAN_STUDIO = CLEAN_UTEST CLEAN_STUDIO_CHUNKS CLEAN_STUDIO_CHTS\nCLEAN_TARGETS_ROOT=$(CLEAN_TARGETS_ROOT) $(CLEAN_STUDIO)\n\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\n!IF \"$(LOCAL_BUILD)\" != \"0\"\nALL: $(SOC_OBJ_DIR) $(ALL_STUDIO)\n3dmovie.exe : ALL\nCLEAN: $(CLEAN_STUDIO) ALL\n!ENDIF # LOCAL_BUILD != 0\n\n$(SOC_OBJ_DIR) :\n    @echo Making Directories $(SOC_OBJ_DIR)...\n    if not exist $(SOC_OBJ_ROOT_DIR)/nul mkdir $(SOC_OBJ_ROOT_DIR)\n    if not exist $(SOC_OBJ_DIR)/nul mkdir $(SOC_OBJ_DIR)\n\n\n!ENDIF # !LOCAL_BUILD\n\n\n\n# Why, you may ask, do I specify \"KEEP\" and then just go off and delete\n# the batch file anyway?  It's because if I'm building nmake commands but\n# not actually executing them right away, I need the batch file to stick\n# around.  It really is temporary though, so I go ahead and include an explicit\n# \"del\" so that it goes away after we've used it for real.\n\nCLEAN_UTEST:\n    @echo <<delutest.bat\n@echo off\nDEL /q dummy.nul $(UTEST_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\nDEL /q dummy.nul $(TARGET_DIR)3dmovie.chk 2>nul\n<<KEEP\n    cmd /c delutest.bat\n    rem del delutest.bat\n\n\nCLEAN_STUDIO_CHUNKS:\n    @echo <<delchunk.bat\n@echo off\nDEL /q dummy.nul $(STUDIO_CHUNK_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c delchunk.bat\n    rem del delchunk.bat\n\n\nCLEAN_STUDIO_CHTS:\n    @echo <<delcht.bat\n@echo off\nDEL /q dummy.nul $(STUDIO_CHT_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c delcht.bat\n    rem del delcht.bat\n\n\n\n\n\n#\n#Create Studio Chunky Files\n#\nSTUDIO_CONTENT: $(TARGET_DIR)studio.chk \n\n$(TARGET_DIR)studio.chk : $(STUDIO_CHT_FILES)\n\n\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\n3dmovie.exe : $(TARGET_DIR)3dmovie.exe\n$(TARGET_DIR)3dmovie.exe: $(SOC_OBJ_DIR)\n\n!ENDIF # !LOCAL_BUILD\n\n$(TARGET_DIR)utest.lnk: $(STUDIO_SRC_DIR)\\makefile $(KAUAI_ROOT)\\makefile.def\n\t@echo <<$(TARGET_DIR)utest.lnk\n$(KAUAI_OBJ_GROUPS_FOR_UTEST: =^\n)\n<<KEEP\n\n$(TARGET_DIR)3dmovie.chk : $(UTEST_CHT_FILES)\n\tcl /E -I$(STUDIO_SRC_DIR) $(CHT_BUILD_INC) $(DEFS) /Tp$(STUDIO_SRC_DIR)\\utest.cht > $*.i\n\t$(CHKERR)\n\t$(CHOMP) $*.i $@\n\t$(CHKERR)\n\n$(TARGET_DIR)3dmovie.exe : $(KAUAI_OBJ_GROUPS_FOR_UTEST)\n$(TARGET_DIR)3dmovie.exe : $(UTEST_DEPS) $(UTEST_TARGETS) $(TARGET_DIR)utest.lnk\n    @echo Linking Utest Objects...\n    $(LINK) -link $(LFLAGS_GUI) \\\n\t$(UTEST_DEPS) \\\n\t$(UTEST_TARGETS) \\\n\t-out:$(TARGET_DIR)3dmovie.exe @$(TARGET_DIR)utest.lnk\n    $(CHKERR)\n\n!ENDIF  # !MAKEFILE_STUDIO\n"
  },
  {
    "path": "src/studio/mminstal.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/******************************************************************************\n\n@doc    MMINSTAL\n\n@mod    MMINSTAL.CPP |\n\n        <cp> Copyright 1995 Microsoft Corporation - All rights reserved\n\n*******************************************************************************\n\n        Description: Ensures appropriate drivers and codecs are installed for\n                      audio and video playback.\n\n        Current Owner: *****\n\n*******************************************************************************\n\n        Known bugs: None\n\n*******************************************************************************\n\n        How it could be Improved:\n\n*******************************************************************************\n\n        Revision History:\n\n        07/31/95    *****    Created\n\n*******************************************************************************\n\n@comm   Under Windows95 we can automatically install the appropriate sections.\n        Under NT 3.51 we can not.\n\n        Link this module with MSACM32.LIB, VFW32.LIB and WINMM.LIB (from the\n        Win95 SDK).\n\n******************************************************************************/\n\n#include \"studio.h\"\n#include <mmsystem.h> // winmm.lib\n#include <mmreg.h>    // required by msacm.h\n#include <msacm.h>    // msacm32.lib\n#include <vfw.h>      // vfw32.lib\n\n#include \"mminstal.h\"\n#include \"utestres.h\"\n\n/******************************************************************************\n\n@func   WORD | wHaveWaveDevice |\n\n        Do we have a wave device capable of playing the passed PCM format(s).\n\n@parm  DWORD | dwFormats | WAVE formats needed to be supported.  These can be\n                            a bitwise combination of WAVE_FORMAT_???? flags\n                            which are defined in mmsystem.h.  If you don't\n                            care what formats are supported you can pass zero.\n\n@rdesc  HWD_SUCCESS   we have a functioning wave device that supports the format\n        HWD_NODEVICE  there are no wave devices\n        HWD_NODRIVER  the wave device doesn't have a driver installed\n        HWD_ERROR     some undefined error occured\n        HWD_NOFORMAT  we have a device but the requested format(s) is not supported\n\n******************************************************************************/\n\nWORD wHaveWaveDevice(DWORD dwReqFormats)\n{\n    WORD wNumWavDev;\n    WAVEOUTCAPS WOC;\n    WORD wDevID;\n    WORD wErr;\n\n    // Determine how many WAVE devices are in the user's system\n    wNumWavDev = waveOutGetNumDevs();\n\n    // If there are none, return indicating that\n    if (0 == wNumWavDev)\n    {\n#ifdef _DEBUG\n        MessageBox(NULL, \"No WAVE devices on your machine.\", NULL, MB_ICONINFORMATION);\n#endif\n        return (HWD_NODEVICE);\n    }\n\n    // Cycle through the WAVE devices to determine if any support\n    // the desired format.\n    for (wDevID = 0; wDevID < wNumWavDev; wDevID++)\n    {\n        wErr = waveOutGetDevCaps(wDevID, &WOC, sizeof(WAVEOUTCAPS));\n\n        // If we obtain a WAVE device's capabilities OK\n        if ((0 == wErr) &&\n            // and it supports the desired format\n            ((WOC.dwFormats & dwReqFormats) == dwReqFormats))\n            // then return success - we have a device that supports what we want\n            return (HWD_SUCCESS);\n\n    } // for(wDevID\n\n    // If we didn't find a device that supported what we wanted, why didn't we...\n    switch (wErr)\n    {\n        // We got the capabilities OK but the formats didn't match\n    case 0:\n#ifdef _DEBUG\n        MessageBox(NULL, \"Found 1 or more WAVE devices, but none support the desired PCM format.\", NULL, MB_ICONSTOP);\n#endif\n        return (HWD_NOFORMAT);\n\n        // There wasn't an installed driver for the WAVE device\n    case MMSYSERR_NODRIVER:\n#ifdef _DEBUG\n        MessageBox(NULL, \"Found 1 or more WAVE devices, but there was no driver installed for it.\", NULL, MB_ICONSTOP);\n#endif\n        return (HWD_NODRIVER);\n    }\n\n    // Some other error occured.\n#ifdef _DEBUG\n    MessageBox(NULL, \"Found 1 or more WAVE devices, but an error occured getting the device capabilities.\", NULL,\n               MB_ICONSTOP);\n#endif\n    return (HWD_ERROR);\n}\n\n/******************************************************************************\n\n@func   WORD | wHaveACM |\n\n        Do we have the audio compression manager installed?\n\n        Sound Mapper is another term for the \"audio compression manager\".\n\n        Under NT the drivers control pannel applet lists it as \"Microsoft\n        Audio Compression Manager\".\n\n        Under Win95 there does not appear to be a way to remove just the manager.\n\n@rdesc  0 ACM is installed\n        1 ACM is not installed or is an old version\n\n******************************************************************************/\n\nWORD wHaveACM()\n{\n    /* The following taken from MSDN ACMAPP sample exe.\n       Select options - wave device - output menu item.\n       Select the Microsoft Sound Mapper device.\n\n    Microsoft Audio Compression Manager driver installed:\n\n    [Wave Output Device Capabilities]\n\n            Device Id: -1\n      Manufacturer Id: 1\n           Product Id: 2\n       Driver Version: 3.51\n          Device Name: 'Microsoft Sound Mapper'\n             Channels: 2\n     Standard Formats: 00000FFFh\n                       8M11, 8S11, 16M11, 16S11\n                       8M22, 8S22, 16M22, 16S22\n                       8M44, 8S44, 16M44, 16S44\n     Standard Support: 0000000Ch\n                       Volume, L/R Volume\n\n    Microsoft Audio Compression Manager driver NOT installed:\n\n    [Wave Output Device Capabilities]\n\n            Device Id: -1\n      Manufacturer Id: 0\n           Product Id: 0\n       Driver Version: 0.00\n          Device Name: 'Default Wave Output Mapper'\n             Channels: 0\n     Standard Formats: 00000000h\n\n     Standard Support: 00000000h\n\n    */\n\n    WAVEOUTCAPS WOC;\n    WORD wErr;\n\n    wErr = waveOutGetDevCaps(WAVE_MAPPER, &WOC, sizeof(WAVEOUTCAPS));\n\n    if ((MMSYSERR_NOERROR != wErr) || // If the driver wasn't installed or\n\n        (WOC.vDriverVersion < 0x0332)) // ACM ver is less than 3.50 (for Win32) HIBYTE=Major LOBYTE=Minor ver num\n    {\n#ifdef _DEBUG\n        MessageBox(NULL, \"ACM not installed or it is an old version.\", NULL, MB_ICONSTOP);\n#endif\n        return (1);\n    }\n\n#ifdef _DEBUG\n    OutputDebugString(\n        TEXT(\"Microsoft Audio Compression Manager (Sound Mapper) is properly installed on your system\\n\"));\n#endif\n\n    return (0);\n}\n\n/******************************************************************************\n\n@func   WORD | wHaveACMCodec |\n\n        Do we have the audio compression manager codecs we need installed?\n\n@parm   DWORD | dwReqCodec | Audio codec we want to check for.  This value is\n                              one of the WAVE_FORMAT_* defines in mmreg.h.\n\n@rdesc  HAC_SUCCESS   ACM is installed, we've got a codec for the desired format\n        HAC_NOACM     Audio compression manager is not installed or is an old version\n        HAC_NOCODEC   The requested codec is not active or installed\n        HAC_NOCONVERT Codec is installed but won't convert wav data.\n\n******************************************************************************/\n\nWORD wHaveACMCodec(DWORD dwReqCodec)\n{\n    MMRESULT mmRet;\n    ACMFORMATTAGDETAILS acmFTD;\n\n    acmFTD.cbStruct = sizeof(ACMFORMATTAGDETAILS);\n    acmFTD.dwFormatTagIndex = 0;\n    acmFTD.dwFormatTag = dwReqCodec;\n    acmFTD.cbFormatSize = 0; // These must be initialized or the retail build breaks under NT\n    acmFTD.fdwSupport = 0;\n\n    mmRet = acmFormatTagDetails(NULL, &acmFTD, ACM_FORMATTAGDETAILSF_FORMATTAG);\n\n    if (MMSYSERR_NOERROR != mmRet)\n    {\n#ifdef _DEBUG\n        MessageBox(NULL, \"Requested audio codec is not installed or is not active.\", NULL, MB_ICONSTOP);\n#endif\n        return (HAC_NOCODEC);\n    }\n\n    if (acmFTD.fdwSupport & ACMDRIVERDETAILS_SUPPORTF_CODEC)\n    {\n#ifdef _DEBUG\n        OutputDebugString(acmFTD.szFormatTag);\n        OutputDebugString(TEXT(\"... is properly installed on your machine.\\n\"));\n#endif\n        return (HAC_SUCCESS);\n    }\n\n#ifdef _DEBUG\n    MessageBox(NULL, \"codec is installed but won't convert to PCM.\", acmFTD.szFormatTag, MB_ICONSTOP);\n#endif\n    return (HAC_NOCONVERT);\n}\n\n/******************************************************************************\n\n@func   WORD | wHaveICMCodec |\n\n        Do we have the installable (video) compression manager codecs we need\n        installed?\n\n@parm   DWORD | dwReqCodec | Video codec we want to check for.  This value is\n                              one of the WAVE_FORMAT_* defines in mmreg.h.\n\n@rdesc  HIC_SUCCESS   ICM is installed, we've got a codec for the desired format\n        HIC_NOICM     Installable compression manager is not installed or is an old version\n        HIC_NOCODEC   The requested codec is not active or installed\n        HIC_NOCONVERT Codec is installed but won't convert wav data.\n\n******************************************************************************/\n\nWORD wHaveICMCodec(DWORD dwReqCodec)\n{\n    ICINFO icInfo;\n\n    if (FALSE == ICInfo(ICTYPE_VIDEO, dwReqCodec, &icInfo))\n    {\n#ifdef _DEBUG\n        MessageBox(NULL, \"No ICM or no codec installed.\", NULL, MB_ICONSTOP);\n#endif\n        return (HIC_NOCODEC);\n    }\n\n#ifdef _DEBUG\n    OutputDebugStringW(icInfo.szDriver);\n    OutputDebugString(TEXT(\"... is properly installed on your machine.\"));\n#endif\n\n    return (HIC_SUCCESS);\n}\n\n/******************************************************************************\n\n@func   WORD | wHaveMCI |\n\n        Do we have the media control interface (MCI) for the desired device type?\n\n@parm   DWORD | dwDeviceType | MCI device type that we want supported.  It is\n                                one of the MCI_DEVTYPE_* constants defined in\n                                mmsystem.h.\n\n@rdesc  MMSYSERR_NOERROR  MCI for device type is installed\n        MCIERR_CANNOT_LOAD_DRIVER\n\n******************************************************************************/\n\nWORD wHaveMCI(LPSTR dwDeviceType)\n{\n    MCI_OPEN_PARMS mciOpen;\n    MCIERROR mciErr;\n\n    mciOpen.dwCallback = NULL;\n    mciOpen.lpstrDeviceType = (LPSTR)dwDeviceType;\n    mciOpen.lpstrElementName = NULL;\n    mciOpen.lpstrAlias = NULL;\n\n    // mciErr =  mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID, (DWORD)(LPMCI_OPEN_PARMS)&mciOpen);\n    mciErr = mciSendCommand(0, MCI_OPEN, MCI_OPEN_TYPE, (DWORD)(LPMCI_OPEN_PARMS)&mciOpen);\n\n    if (MMSYSERR_NOERROR == mciErr)\n    {\n        mciSendCommand(mciOpen.wDeviceID, MCI_CLOSE, 0, (DWORD)(LPMCI_OPEN_PARMS)&mciOpen);\n    }\n\n#ifdef _DEBUG\n    else\n    {\n        char szErrBuf[128] = \"Memory Error\";\n        mciGetErrorString(mciErr, szErrBuf, 128);\n        MessageBox(NULL, szErrBuf, \"MCI not installed\", MB_ICONSTOP);\n    }\n#endif\n\n    return ((WORD)mciErr);\n}\n\n/******************************************************************************\n\n@func   BOOL | FRunningChicagoUI |\n\n        Are we running on Win95?\n\n@rdesc  TRUE if running Win95\n\n******************************************************************************/\n\nBOOL fRunningWin95(void)\n{\n    DWORD dwVersion = GetVersion();\n\n    if ((LOBYTE(LOWORD(dwVersion)) >= 4) && // If windows version is >= 4.0 we're on Win95 or WinNT w/ new shell\n        (dwVersion & 0x80000000L))          // If high bit is set we're on Win95 or Win32s (not WinNT)\n        return (TRUE);\n\n    else\n        return (FALSE);\n}\n\n/******************************************************************************\n\n@func   WORD | wInstallComp |\n\n        Install the section under Win95 or ask user to do it under WinNT\n\n@parm   WORD | wComp | Component ID to install\n\n@rdesc  0 - success\n        1 - couldn't launch setup app (under Win95 only)\n\n******************************************************************************/\n\n#define HOW_NEVER_REBOOT \"0\" // Whatever happens the machine will not be rebooted.\n#define MMINF \"MOTOWN.INF\"\n\n// The following 2 arrays must parallel each other between Win95 setup sections & NT driver names\n\nWORD wInstallComp(WORD wComp)\n{\n    TCHAR szText[512];\n    TCHAR szDriverName[128];\n    bool fWin95 = fRunningWin95();\n\n    if (!LoadString(vwig.hinst, (fWin95) ? stidInstallDriverWin95 : stidInstallDriverNT, szText, sizeof(szText)))\n        return (1); // fail\n    if (!LoadString(vwig.hinst, stidDriverName + wComp, szDriverName, sizeof(szDriverName)))\n        return (1); // fail\n    MessageBox(NULL, szText, szDriverName, MB_ICONSTOP);\n\n    if (fWin95) // Running Win95 NOT NT 3.51 with or without new shell\n    {\n        STARTUPINFO si;\n        PROCESS_INFORMATION pi;\n        TCHAR szCommandLine[512];\n        TCHAR szSectionName[255];\n\n        if (!LoadString(vwig.hinst, stidInstallCmdLine, szCommandLine, sizeof(szCommandLine)))\n            return (1); // fail\n\n        if (!LoadString(vwig.hinst, stidSectionName + wComp, szSectionName, sizeof(szSectionName)))\n            return (1); // fail\n\n        // Command line should look like this:\n        //   RunDll.exe setupx.dll,InstallHinfSection <section> <reboot mode> <inf name>\n\n        // Add <section>\n        lstrcat(szCommandLine, szSectionName);\n\n        // Add <reboot mode> <inf name>\n        lstrcat(szCommandLine, \" \" HOW_NEVER_REBOOT \" \" MMINF);\n\n#ifdef _DEBUG\n        MessageBox(NULL, szCommandLine, \"Win95 setup command\", MB_ICONINFORMATION);\n#endif\n\n        // Now execute the command line to cause the actual install\n        si.cb = sizeof(STARTUPINFO);\n        si.lpReserved = NULL;\n        si.lpDesktop = NULL;\n        si.lpTitle = NULL;\n        si.dwFlags = 0;\n        si.cbReserved2 = 0;\n        si.lpReserved2 = NULL;\n\n        if (CreateProcess(NULL,             // address of module name\n                          szCommandLine,    // address of command line\n                          NULL,             // process security\n                          NULL,             // thread security\n                          FALSE,            // inherit handles?\n                          DETACHED_PROCESS, // creation flags\n                          NULL,             // address of new environment\n                          NULL,             // address of current directory\n                          &si,              // STARTUPINFO\n                          &pi))             // PROCESS_INFORMATION\n        {\n            // Wait until process is finished\n            WaitForSingleObject(pi.hProcess, INFINITE);\n\n            // Close the process down\n            CloseHandle(pi.hProcess);\n            CloseHandle(pi.hThread);\n\n            return (0);\n        }\n\n#ifdef _DEBUG\n        MessageBox(NULL, szCommandLine, \"Error launching command line\", MB_ICONINFORMATION);\n#endif\n\n        return (1);\n    }\n    return (1);\n}\n\n/******************************************************************************\n\n@func   int WINAPI | WinMain |\n\n        Entry point for a MS Windows app\n\n@rdesc  exit code\n\n******************************************************************************/\n\n/* Uncomment this WinMain function to make this module into a stand alone\n   Win32 app that will verify audio support with the MS-ADPCM codec and\n   video support with MS Video1 and Intel Indeo 3.2 codecs.\n\nint WINAPI\n  WinMain(\n    HINSTANCE   hInstance,\t    // handle of current instance\n    HINSTANCE   hPrevInstance,\t// handle of previous instance\n    LPSTR       lpszCmdLine,\t  // address of command line\n    int         nCmdShow \t      // show state of window\n  )\n{\n  if(HWD_SUCCESS == wHaveWaveDevice(WAVE_FORMAT_2M08)) // 22kHz, Mono, 8bit\n  {\n    if(wHaveMCI(\"WAVEAUDIO\"))\n        // MCI for audio is not installed\n      wInstallComp(IC_MCI_SOUND);\n\n    if(wHaveACM())\n        // audio compression manager (sound mapper) not installed\n      wInstallComp(IC_ACM);\n\n    if(wHaveACMCodec(WAVE_FORMAT_ADPCM))\n        // audio codecs not installed\n      wInstallComp(IC_ACM_ADPCM);\n\n  } // have wave device\n\n\n  if(wHaveMCI(\"AVIVIDEO\"))\n      // MCI for video is not installed\n    wInstallComp(IC_MCI_VFW);\n\n  if(HIC_SUCCESS != wHaveICMCodec(MS_VIDEO1))\n      //  video 1 codec not installed\n    wInstallComp(IC_ICM_VIDEO1);\n\n  if(HIC_SUCCESS != wHaveICMCodec(INTEL_INDEO32))\n      // indeo 3.2 codec not installed\n    wInstallComp(IC_ICM_INDEO32);\n\n  return(0);\n}\n*/\n"
  },
  {
    "path": "src/studio/mminstal.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#include <mmreg.h> // has WAVE_FORMAT_* defines for wHaveACMCodec()\n\n// return codes for wHaveWaveDevice()\n\n#define HWD_SUCCESS 0\n#define HWD_NODEVICE 1\n#define HWD_NODRIVER 2\n#define HWD_ERROR 3\n#define HWD_NOFORMAT 4\n\n// return codes for wHaveACMCodec()\n\n#define HAC_SUCCESS 0   // ACM is installed, we've got a codec for the desired format\n#define HAC_NOACM 1     // Audio compression manager is not installed or is an old version\n#define HAC_NOCODEC 2   // ACM is installed, The requested codec is not active or installed\n#define HAC_NOCONVERT 3 // ACM is installed, Codec is installed but won't convert wav data.\n\n// video codec types\n\n#define MS_VIDEO1 mmioFOURCC('m', 's', 'v', 'c')\n#define INTEL_INDEO32 mmioFOURCC('i', 'v', '3', '2')\n\n// return codes for wHaveICMCodec()\n\n#define HIC_SUCCESS 0   // ICM is installed, we've got a codec for the desired format\n#define HIC_NOICM 1     // Installable compression manager is not installed or is an old version\n#define HIC_NOCODEC 2   // The requested codec is not active or installed\n#define HIC_NOCONVERT 3 // Codec is installed but won't convert wav data.\n\n// Installable components\n\n#define IC_MCI_SOUND 0   // MCI wave audio driver\n#define IC_MCI_VFW 1     // MCI video driver\n#define IC_ACM 2         // audio compression manager (wave mapper) driver\n#define IC_ACM_ADPCM 3   // ACM Microsoft ADPCM codec driver\n#define IC_ICM_VIDEO1 4  // Microsoft Video 1 codec driver\n#define IC_ICM_INDEO32 5 // Intel Indeo 3.2 codec driver\n\n#ifdef __cplusplus\nextern \"C\"\n{\n#endif\n\n    WORD wInstallComp(WORD wComp);\n    WORD wHaveWaveDevice(DWORD dwReqFormats);\n    WORD wHaveACM();\n    WORD wHaveACMCodec(DWORD dwReqCodec);\n    WORD wHaveICMCodec(DWORD dwReqCodec);\n    WORD wHaveMCI(LPSTR dwDeviceType);\n\n#ifdef __cplusplus\n}\n#endif\n"
  },
  {
    "path": "src/studio/popdn.cht",
    "content": "/*****************************************************************************\\\n *\n *\tpopdn.cht\n *\n *\tAll pop-downs that appear in the studio.  \"Popdowns\" are browser type of\n *  popups.\n *\n *\tAuthor: Sean Selitrennikoff\n *\n * \tStatus: Not Reviewed\n *\n\\*****************************************************************************/\n\n\n//\n// Press and hold button constants\n//\n#define klwPressDelayMax             45\n#define klwPressDelayMin             10\n#define kdlwPressDelay               7\n\nANIMATION(kidPressPageFwd, \"Page Fwd Pressed\")\n\tlwDelay = klwPressDelayMax;\n\tEnqueueCid(cidBrowserFwd, GidParGob(GidParThis()), GidThis(), 0, 0, 0);\n\tCell(CHID(kstBrowserEnabled, krepMouseDnOn), 0, 0, lwDelay);\n\tWhile();\n\t\tIf(lwDelay > klwPressDelayMin);\n\t\t\tlwDelay -= kdlwPressDelay;\n\t\tEnd;\n\t\tEnqueueCid(cidBrowserFwd, GidParGob(GidParThis()), GidThis(), 0, 0, 0);\n\t\tCell(chidNil, 0, 0, lwDelay);\n\tEnd;\nENDCHUNK\n\n\nANIMATION(kidPressPageBack, \"Page Back Pressed\")\n\tlwDelay = klwPressDelayMax;\n\tEnqueueCid(cidBrowserBack, GidParGob(GidParThis()), GidThis(), 0, 0, 0);\n\tCell(CHID(kstBrowserEnabled, krepMouseDnOn), 0, 0, lwDelay);\n\tWhile();\n\t\tIf(lwDelay > klwPressDelayMin);\n\t\t\tlwDelay -= kdlwPressDelay;\n\t\tEnd;\n\t\tEnqueueCid(cidBrowserBack, GidParGob(GidParThis()), GidThis(), 0, 0, 0);\n\t\tCell(chidNil, 0, 0, lwDelay);\n\tEnd;\nENDCHUNK\n\n\n\n//\n//\n// Spletter Easel, Color Popdown\n//\n//\n\n//\n//\t\tParent\n//\nGOBCHUNK(\"Spletter Easel, Color Popdown\", kidSpltsColor, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"Sizer\",\n\t\t kxpSpltsColorLeft, kypSpltsColorTop,\n\t\t kxpSpltsColorRight, kypSpltsColorBottom\n\t\t )\nCREATE_SCRIPT(\"Spletter color parent\")\n\tCreateChildThis(kidSpltsColorBackground, kidSpltsColorBackground);\nENDCHUNK\n\n//\n// \t\tBackground\n//\nGOBCHUNK(\"Spletter Easel, Color Popdown\", kidSpltsColorBackground, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_FILL(CHID(kstDefault, krepDefault), \"Sizer\", 0, 0,kdxpSpltsColor, kdypSpltsColor, Palette( 21 ), Palette( 21 ) )\n\tPATTERN_100\nENDCHUNK\n\nADOPT_WAVE(kcnoDropDnWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Spletter color created\")\n\tCreateChildThis(kidSpltsColorPageDown, kidSpltsColorPageDown);\n\tChangeStateGob(kidSpltsColorPageDown, kstBrowserEnabled);\n\tCreateChildThis(kidSpltsColorPageUp, kidSpltsColorPageUp);\n\tChangeStateGob(kidSpltsColorPageUp, kstBrowserEnabled);\n\n\typ = kdypSpltsColorTop;\n\tnFrame = 0;\n\n\tWhile(yp <= (kdypSpltsColor - kdypSpltsColorFrame - kdypSpltsColorBottom));\n\n\t\txp = kdxpSpltsColorLeft;\n\n\t\tWhile(xp <= (kdxpSpltsColor - kdxpSpltsColorRight - kdxpSpltsColorFrame));\n\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\t\t\tCreateChildThis(kidSpltsColorFrame + nFrame, kidSpltsColorFrame);\n\t\t\tMoveAbsGob(kidSpltsColorFrame + nFrame, xp, yp);\n\t\t\tnFrame++;\n\t\t\txp += kdxpSpltsColorSpacing + kdxpSpltsColorFrame;\n        End;\n\t\t\n\t\typ += kdypSpltsColorSpacing + kdypSpltsColorFrame;\n\tEnd;\n\n\t//\n\t// This shuts when a mouse down occurs.\n\t//\t\n\tFilterCmdsThis(cidMouseDown, cidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, cidNil, kchidScript2);\nENDCHUNK\nCHILD_SCRIPT(\"Spletter Color, track mouse\", kchidScript1)\n\tkid = _parm[0];\n\n\tIf(((kid >= kidSpltsColorFrame) && (kid < kidSpltsColorFrameLim)) ||\n\t   (kid == kidSpltsColorPageDown) ||\n\t   (kid == kidSpltsColorPageUp));\n\t   Return(fFalse);\n\tEnd;\n\n\t//\n\t// Tell the parent to cancel the popup and pass the click thru.\n\t//\n\tEnqueueCid(cidBrowserCancel, kidSpltsColor, 0, 0, 0, 0);\n\tReturn(fFalse);\nENDCHUNK\nCHILD_SCRIPT(\"Spletter Color, disable keys\", kchidScript2)\n\tReturn(fTrue);\nENDCHUNK\n\n//\n// Spletters color frame\n//\nGOBCHUNK(\"Spletters Color Frame\", kidSpltsColorFrame, kgokkRectNoKids)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\d1frm.bmp\",\n\tkxpregSpltsColorFrame, kypregSpltsColorFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d1frmh.bmp\",\n\tkxpregSpltsColorFrame, kypregSpltsColorFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nCLICK_SCRIPT(\"Frame clicked\")\n\tPlaySoundGob(kidBackground, kctgWave, kcnoPSelectWav, 0, 0x10000, 1, 0, 1);\n\tEnqueueCid(cidBrowserSelect, kidSpltsColor, GidThis(), 0, 0, 0);\n\tEnqueueCid(cidBrowserOk, kidSpltsColor, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Spletters color page down\n//\nGOBCHUNK(\"Spletters Color page down\", kidSpltsColorPageDown, kgokkNormal)\n\tDEFAULT_POSITION(kxpSpltsColorPageDown, kypSpltsColorPageDown, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageFwd)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d1dn.bmp\",\n\tkxpregSpltsColorPageDown, kypregSpltsColorPageDown)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d1dns.bmp\",\n\tkxpregSpltsColorPageDown, kypregSpltsColorPageDown)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageDnWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageFwd, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n//\n// Spletters color page up\n//\nGOBCHUNK(\"Spletters Color page up\", kidSpltsColorPageUp, kgokkNormal)\n\tDEFAULT_POSITION(kxpSpltsColorPageUp, kypSpltsColorPageUp, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageBack)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d1up.bmp\",\n\tkxpregSpltsColorPageUp, kypregSpltsColorPageUp)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d1ups.bmp\",\n    kxpregSpltsColorPageUp, kypregSpltsColorPageUp)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageUpWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageBack, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n\n\n\n//\n//\n// Spletter Easel, Shape Popdown\n//\n//\n\n//\n//\t\tParent\n//\nGOBCHUNK(\"Spletter Easel, Shape Popdown\", kidSpltsShape, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"Sizer\",\n\t\t kxpSpltsShapeLeft, kypSpltsShapeTop,\n\t\t kxpSpltsShapeRight, kypSpltsShapeBottom\n\t\t )\nCREATE_SCRIPT(\"Spletter Shape parent\")\n\tCreateChildThis(kidSpltsShapeBackground, kidSpltsShapeBackground);\nENDCHUNK\n\n//\n// \t\tBackground\n//\nGOBCHUNK(\"Spletter Easel, Shape Popdown\", kidSpltsShapeBackground, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_FILL(CHID(kstDefault, krepDefault), \"Sizer\", 0, 0,kdxpSpltsShape, kdypSpltsShape, Palette( 21 ), Palette( 21 ) )\n\tPATTERN_100\nENDCHUNK\nADOPT_WAVE(kcnoDropDnWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Spletter Shape created\")\n\tCreateChildThis(kidSpltsShapePageDown, kidSpltsShapePageDown);\n\tChangeStateGob(kidSpltsShapePageDown, kstBrowserEnabled);\n\tCreateChildThis(kidSpltsShapePageUp, kidSpltsShapePageUp);\n\tChangeStateGob(kidSpltsShapePageUp, kstBrowserEnabled);\n\n\typ = kdypSpltsShapeTop;\n\tnFrame = 0;\n\n\tWhile(yp <= (kdypSpltsShape - kdypSpltsShapeFrame - kdypSpltsShapeBottom));\n\n\t\txp = kdxpSpltsShapeLeft;\n\n\t\tWhile(xp <= (kdxpSpltsShape - kdxpSpltsShapeRight - kdxpSpltsShapeFrame));\n\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\t\t\tCreateChildThis(kidSpltsShapeFrame + nFrame, kidSpltsShapeFrame);\n\t\t\tMoveAbsGob(kidSpltsShapeFrame + nFrame, xp, yp);\n\t\t\tChangeStateGob(kidSpltsShapeFrame + nFrame, kstBrowserEnabled);\n\t\t\tnFrame++;\n\t\t\txp += kdxpSpltsShapeSpacing + kdxpSpltsShapeFrame;\n        End;\n\t\t\n\t\typ += kdypSpltsShapeSpacing + kdypSpltsShapeFrame;\n\tEnd;\n\n\t//\n\t// This shuts when a mouse down occurs.\n\t//\t\n\tFilterCmdsThis(cidMouseDown, cidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, cidNil, kchidScript2);\nENDCHUNK\nCHILD_SCRIPT(\"Spletter Shape, track mouse\", kchidScript1)\n\tkid = _parm[0];\n\n\tIf(((kid >= kidSpltsShapeFrame) && (kid < kidSpltsShapeFrameLim)) ||\n\t   (kid == kidSpltsShapePageDown) ||\n\t   (kid == kidSpltsShapePageUp));\n\t   Return(fFalse);\n\tEnd;\n\n\t//\n\t// Tell the parent to cancel the popup and pass the click thru.\n\t//\n\tEnqueueCid(cidBrowserCancel, kidSpltsShape, 0, 0, 0, 0);\n\tReturn(fFalse);\nENDCHUNK\nCHILD_SCRIPT(\"Spletter Shape, disable keys\", kchidScript2)\n\tReturn(fTrue);\nENDCHUNK\n\n\n//\n// Spletters Shape frame\n//\nGOBCHUNK(\"Spletters Shape Frame\", kidSpltsShapeFrame, kgokkRectNoKids)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\d2frm.bmp\",\n\tkxpregSpltsShapeFrame, kypregSpltsShapeFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d2frmh.bmp\",\n\tkxpregSpltsShapeFrame, kypregSpltsShapeFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nCLICK_SCRIPT(\"Frame clicked\")\n\tPlaySoundGob(kidBackground, kctgWave, kcnoPSelectWav, 0, 0x10000, 1, 0, 1);\n\tEnqueueCid(cidBrowserSelect,kidSpltsShape, GidThis(), 0, 0, 0);\n\tEnqueueCid(cidBrowserOk, kidSpltsShape, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Spletters Shape page down\n//\nGOBCHUNK(\"Spletters Shape page down\", kidSpltsShapePageDown, kgokkNormal)\n\tDEFAULT_POSITION(kxpSpltsShapePageDown, kypSpltsShapePageDown, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageFwd)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d2dn.bmp\",\n\tkxpregSpltsShapePageDown, kypregSpltsShapePageDown)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d2dns.bmp\",\n\tkxpregSpltsShapePageDown, kypregSpltsShapePageDown)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageDnWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageFwd, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n//\n// Spletters Shape page up\n//\nGOBCHUNK(\"Spletters Shape page up\", kidSpltsShapePageUp, kgokkNormal)\n\tDEFAULT_POSITION(kxpSpltsShapePageUp, kypSpltsShapePageUp, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageBack)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d2up.bmp\",\n\tkxpregSpltsShapePageUp, kypregSpltsShapePageUp)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d2ups.bmp\",\n    kxpregSpltsShapePageUp, kypregSpltsShapePageUp)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageUpWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageBack, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n//\n//\n// Spletter Easel, Font Popdown\n//\n//\n\n//\n//\t\tParent\n//\nGOBCHUNK(\"Spletter Easel, Font Popdown\", kidSpltsFont, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"Sizer\",\n\t\t kxpSpltsFontLeft, kypSpltsFontTop,\n\t\t kxpSpltsFontRight, kypSpltsFontBottom\n\t\t )\nCREATE_SCRIPT(\"Spletter Font parent\")\n\tCreateChildThis(kidSpltsFontBackground, kidSpltsFontBackground);\nENDCHUNK\n\n//\n// \t\tBackground\n//\nGOBCHUNK(\"Spletter Easel, Font Popdown\", kidSpltsFontBackground, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_FILL(CHID(kstDefault, krepDefault), \"Sizer\", 0, 0,kdxpSpltsFont, kdypSpltsFont, Palette( 21 ), Palette( 21 ) )\n\tPATTERN_100\nENDCHUNK\nADOPT_WAVE(kcnoDropDnWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Spletter Font created\")\n\tCreateChildThis(kidSpltsFontPageDown, kidSpltsFontPageDown);\n\tChangeStateGob(kidSpltsFontPageDown, kstBrowserEnabled);\n\tCreateChildThis(kidSpltsFontPageUp, kidSpltsFontPageUp);\n\tChangeStateGob(kidSpltsFontPageUp, kstBrowserEnabled);\n\n\typ = kdypSpltsFontTop;\n\tnFrame = 0;\n\n\tWhile(yp <= (kdypSpltsFont - kdypSpltsFontFrame - kdypSpltsFontBottom));\n\n\t\txp = kdxpSpltsFontLeft;\n\n\t\tWhile(xp <= (kdxpSpltsFont - kdxpSpltsFontRight - kdxpSpltsFontFrame));\n\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\t\t\tCreateChildThis(kidSpltsFontFrame + nFrame, kidSpltsFontFrame);\n\t\t\tMoveAbsGob(kidSpltsFontFrame + nFrame, xp, yp);\n\t\t\tChangeStateGob(kidSpltsFontFrame + nFrame, kstBrowserEnabled);\n\t\t\tnFrame++;\n\t\t\txp += kdxpSpltsFontSpacing + kdxpSpltsFontFrame;\n        End;\n\t\t\n\t\typ += kdypSpltsFontSpacing + kdypSpltsFontFrame;\n\tEnd;\n\n\t//\n\t// This shuts when a mouse down occurs.\n\t//\t\n\tFilterCmdsThis(cidMouseDown, cidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, cidNil, kchidScript2);\nENDCHUNK\nCHILD_SCRIPT(\"Spletter Font, track mouse\", kchidScript1)\n\tkid = _parm[0];\n\n\tIf(((kid >= kidSpltsFontFrame) && (kid < kidSpltsFontFrameLim)) ||\n\t   (kid == kidSpltsFontPageDown) ||\n\t   (kid == kidSpltsFontPageUp));\n\t   Return(fFalse);\n\tEnd;\n\n\t//\n\t// Tell the parent to cancel the popup and pass the click thru.\n\t//\n\tEnqueueCid(cidBrowserCancel, kidSpltsFont, 0, 0, 0, 0);\n\tReturn(fFalse);\nENDCHUNK\nCHILD_SCRIPT(\"Spletter Font, disable keys\", kchidScript2)\n\tReturn(fTrue);\nENDCHUNK\n\n\n//\n// Spletters Font frame\n//\nGOBCHUNK(\"Spletters Font Frame\", kidSpltsFontFrame, kgokkRectNoKids)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\d3frm.bmp\",\n\tkxpregSpltsFontFrame, kypregSpltsFontFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d3frmh.bmp\",\n\tkxpregSpltsFontFrame, kypregSpltsFontFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nCLICK_SCRIPT(\"Frame clicked\")\n\tPlaySoundGob(kidBackground, kctgWave, kcnoPSelectWav, 0, 0x10000, 1, 0, 1);\n\tEnqueueCid(cidBrowserSelect, kidSpltsFont, GidThis(), 0, 0, 0);\n\tEnqueueCid(cidBrowserOk, kidSpltsFont, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Spletters Font page down\n//\nGOBCHUNK(\"Spletters Font page down\", kidSpltsFontPageDown, kgokkNormal)\n\tDEFAULT_POSITION(kxpSpltsFontPageDown, kypSpltsFontPageDown, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageFwd)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d3dn.bmp\",\n\tkxpregSpltsFontPageDown, kypregSpltsFontPageDown)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d3dns.bmp\",\n\tkxpregSpltsFontPageDown, kypregSpltsFontPageDown)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageDnWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageFwd, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n//\n// Spletters Font page up\n//\nGOBCHUNK(\"Spletters Font page up\", kidSpltsFontPageUp, kgokkNormal)\n\tDEFAULT_POSITION(kxpSpltsFontPageUp, kypSpltsFontPageUp, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageBack)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d3up.bmp\",\n\tkxpregSpltsFontPageUp, kypregSpltsFontPageUp)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d3ups.bmp\",\n    kxpregSpltsFontPageUp, kypregSpltsFontPageUp)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageUpWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageBack, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n\n//\n//\n// Text Font Popdown\n//\n//\n\n//\n//\t\tParent\n//\nGOBCHUNK(\"Text Font Popdown\", kidTextFont, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"Sizer\",\n\t\t kxpTextFontLeft, kypTextFontTop,\n\t\t kxpTextFontRight, kypTextFontBottom\n\t\t )\nCREATE_SCRIPT(\"Text Font parent\")\n\tCreateChildThis(kidTextFontBackground, kidTextFontBackground);\nENDCHUNK\n\n//\n// \t\tBackground\n//\nGOBCHUNK(\"Text Font Popdown\", kidTextFontBackground, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMP(CHID(kstDefault, krepDefault), \"studio\\bmp\\d5par.bmp\")\nADOPT_WAVE(kcnoDropDnWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Text Font created\")\n\tCreateChildThis(kidTextFontPageDown, kidTextFontPageDown);\n\tChangeStateGob(kidTextFontPageDown, kstBrowserEnabled);\n\tCreateChildThis(kidTextFontPageUp, kidTextFontPageUp);\n\tChangeStateGob(kidTextFontPageUp, kstBrowserEnabled);\n\n\typ = kdypTextFontTop;\n\t.kidThumb = kidTextFontFrame;\n\n\tWhile(yp <= (kdypTextFont - kdypTextFontFrame - kdypTextFontBottom));\n\n\t\txp = kdxpTextFontLeft;\n\n\t\tWhile(xp <= (kdxpTextFont - kdxpTextFontRight - kdxpTextFontFrame));\n\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\t\t\tASSERT(.kidThumb <= kidTextFontFrameLim);\n\t\t\tkidFrame = GidUnique();\n\t\t\tCreateChildThis(kidFrame, kidTextFontFrame);\n\t\t\tMoveAbsGob(kidFrame, xp, yp);\n\t\t\t.kidThumb++;\n\t\t\txp += kdxpTextFontSpacing + kdxpTextFontFrame;\n        End;\n\t\t\n\t\typ += kdypTextFontSpacing + kdypTextFontFrame;\n\tEnd;\n\n\t//\n\t// This shuts when a mouse down occurs.\n\t//\t\n\tFilterCmdsThis(cidMouseDown, hidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, hidNil, kchidScript2);\nENDCHUNK\nCHILD_SCRIPT(\"Text Font, track mouse\", kchidScript1)\n\tkid = _parm[0];\n\n\tIf(kid == kidTextsFont);\n\t\tReturn(fTrue);\n\tEnd;\n\n\tIf(GidParGob(kid) == kidTextFontBackground);\n\t\tReturn(fFalse);\n\tEnd;\n\n\tIf(((kid >= kidTextFontFrame) && (kid < kidTextFontFrameLim)) ||\n\t   (kid == kidTextFontPageDown) ||\n\t   (kid == kidTextFontPageUp));\n\t   DEBUGCMD( AlertStr(\"Handling kid the old way\");)\n\t   Return(fFalse);\n\tEnd;\n\n\t//\n\t// Tell the parent to cancel the popup and pass the click thru.\n\t//\n\tEnqueueCid(cidBrowserCancel, kidTextFont, 0, 0, 0, 0);\n\tChangeStateGob(kidTextsFont, kstDefault);\n\tReturn(fFalse);\nENDCHUNK\nCHILD_SCRIPT(\"Text Font, disable keys\", kchidScript2)\n\tReturn(fTrue);\nENDCHUNK\n\n\n//\n// Text Font frame\n//\nGOBCHUNK(\"Text Font Frame\", kidTextFontFrame, kgokkRectNoKids)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID1(kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\d5frm.bmp\",\n\tkxpregTextFontFrame, kypregTextFontFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d5frmh.bmp\",\n\tkxpregTextFontFrame, kypregTextFontFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoSecToolWav, CHID(kstBrowserEnabled, krepClicked))\nCREATE_SCRIPT(\"Frame created\")\n\tCreateChildThis(GidParThis()->kidThumb, kidTextFontThumb);\nENDCHUNK\nCLICK_SCRIPT(\"Frame clicked\")\n\tIf(kidBackground->idtbxDown != kidTextsFont);\n\t\tChangeStateGob(kidBackground->idtbxDown, kstDefault);\n\t\tkidBackground->idtbxDown = kidTextsFont;\t\n\t\tkidBackground->chttTbox = chttTboxSelect;\n\tEnd;\n\tEnqueueCid(cidBrowserSelect, kidTextFont, GidChild(GidThis()), 0, 0, 0);\n\tEnqueueCid(cidBrowserOk, kidTextFont, 0, 0, 0, 0);\nENDCHUNK\n\nGOBCHUNK(\"Text Font Thumb Frame\", kidTextFontThumb, kgokkRectNoHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"default\", 16, 4, 156, 17)\nREP_ANIM(CHID(kstBrowserEnabled, krepEnterAnimation), \"Font frame state change\")\n\tChangeStateGob(GidParThis(), StateThis());\nENDCHUNK\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserDisabled, krepEnterAnimation))\nADOPT_ANIM(LAST_ANIM, CHID(kstBrowserSelected, krepEnterAnimation))\n\n\n\n//\n// Text Font page down\n//\nGOBCHUNK(\"Text Font page down\", kidTextFontPageDown, kgokkNormal)\n\tDEFAULT_POSITION(kxpTextFontPageDown, kypTextFontPageDown, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageFwd)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d5dn.bmp\",\n\tkxpregTextFontPageDown, kypregTextFontPageDown)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d5dns.bmp\",\n\tkxpregTextFontPageDown, kypregTextFontPageDown)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageDnWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageFwd, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n//\n// Text Font page up\n//\nGOBCHUNK(\"Text Font page up\", kidTextFontPageUp, kgokkNormal)\n\tDEFAULT_POSITION(kxpTextFontPageUp, kypTextFontPageUp, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageBack)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d5up.bmp\",\n\tkxpregTextFontPageUp, kypregTextFontPageUp)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d5ups.bmp\",\n    kxpregTextFontPageUp, kypregTextFontPageUp)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageUpWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageBack, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n\n\n\n\n//\n//\n// Text Style Popdown\n//\n//\n\n//\n//\t\tParent\n//\nGOBCHUNK(\"Text Style Popdown\", kidTextStyle, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"Sizer\",\n\t\t kxpTextStyleLeft, kypTextStyleTop,\n\t\t kxpTextStyleRight, kypTextStyleBottom\n\t\t )\nCREATE_SCRIPT(\"Text Style parent\")\n\tCreateChildThis(kidTextStyleBackground, kidTextStyleBackground);\nENDCHUNK\n\n//\n// \t\tBackground\n//\nGOBCHUNK(\"Text Style Popdown\", kidTextStyleBackground, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMP(CHID(kstDefault, krepDefault), \"studio\\bmp\\d6par.bmp\")\nADOPT_WAVE(kcnoDropDnWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Text Style created\")\n\tCreateChildThis(kidTextStylePageDown, kidTextStylePageDown);\n\tChangeStateGob(kidTextStylePageDown, kstBrowserEnabled);\n\tCreateChildThis(kidTextStylePageUp, kidTextStylePageUp);\n\tChangeStateGob(kidTextStylePageUp, kstBrowserEnabled);\n\n\typ = kdypTextStyleTop;\n\tnFrame = 0;\n\n\tWhile(yp <= (kdypTextStyle - kdypTextStyleFrame - kdypTextStyleBottom));\n\n\t\txp = kdxpTextStyleLeft;\n\n\t\tWhile(xp <= (kdxpTextStyle - kdxpTextStyleRight - kdxpTextStyleFrame));\n\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\t\t\tCreateChildThis(kidTextStyleFrame + nFrame, kidTextStyleFrame);\n\t\t\tMoveAbsGob(kidTextStyleFrame + nFrame, xp, yp);\n\t\t\tnFrame++;\n\t\t\txp += kdxpTextStyleSpacing + kdxpTextStyleFrame;\n        End;\n\t\t\n\t\typ += kdypTextStyleSpacing + kdypTextStyleFrame;\n\tEnd;\n\tASSERT(!FGobExists(kidTextStyleFrame + nFrame));\n\n\t//\n\t// This shuts when a mouse down occurs.\n\t//\t\n\tFilterCmdsThis(cidMouseDown, cidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, cidNil, kchidScript2);\nENDCHUNK\nCHILD_SCRIPT(\"Text Style, track mouse\", kchidScript1)\n\tkid = _parm[0];\n\n\tIf(kid == kidTextsFontShape);\n\t\tReturn(fTrue);\n\tEnd;\n\n\tIf(((kid >= kidTextStyleFrame) && (kid < kidTextStyleFrameLim)) ||\n\t   (kid == kidTextStylePageDown) ||\n\t   (kid == kidTextStylePageUp));\n\t   Return(fFalse);\n\tEnd;\n\n\t//\n\t// Tell the parent to cancel the popup and pass the click thru.\n\t//\n\tEnqueueCid(cidBrowserCancel, kidTextStyle, 0, 0, 0, 0);\n\tChangeStateGob(kidTextsFontShape, kstDefault);\n\tReturn(fFalse);\nENDCHUNK\nCHILD_SCRIPT(\"Text Style, disable keys\", kchidScript2)\n\tReturn(fTrue);\nENDCHUNK\n\n\n//\n// Text Style frame\n//\nGOBCHUNK(\"Text Style Frame\", kidTextStyleFrame, kgokkRectNoKids)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\d6frm.bmp\",\n\tkxpregTextStyleFrame, kypregTextStyleFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d6frmh.bmp\",\n\tkxpregTextStyleFrame, kypregTextStyleFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoSecToolWav, CHID(kstBrowserEnabled, krepClicked))\nCLICK_SCRIPT(\"Frame clicked\")\n\tIf(kidBackground->idtbxDown != kidTextsFontShape);\n\t\tChangeStateGob(kidBackground->idtbxDown, kstDefault);\n\t\tkidBackground->idtbxDown = kidTextsFontShape;\t\n\t\tkidBackground->chttTbox = chttTboxSelect;\n\tEnd;\n\tEnqueueCid(cidBrowserSelect, kidTextStyle, GidThis(), 0, 0, 0);\n\tEnqueueCid(cidBrowserOk, kidTextStyle, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Text Style page down\n//\nGOBCHUNK(\"Text Style page down\", kidTextStylePageDown, kgokkNormal)\n\tDEFAULT_POSITION(kxpTextStylePageDown, kypTextStylePageDown, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageFwd)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d6dn.bmp\",\n\tkxpregTextStylePageDown, kypregTextStylePageDown)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d6dns.bmp\",\n\tkxpregTextStylePageDown, kypregTextStylePageDown)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageDnWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageFwd, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n\n//\n// Text Style page up\n//\nGOBCHUNK(\"Text Style page up\", kidTextStylePageUp, kgokkNormal)\n\tDEFAULT_POSITION(kxpTextStylePageUp, kypTextStylePageUp, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageBack)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d6up.bmp\",\n\tkxpregTextStylePageUp, kypregTextStylePageUp)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d6ups.bmp\",\n    kxpregTextStylePageUp, kypregTextStylePageUp)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageUpWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageBack, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n\n\n\n\n//\n//\n// Text Size Popdown\n//\n//\n\n//\n//\t\tParent\n//\nGOBCHUNK(\"Text Size Popdown\", kidTextSize, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"Sizer\",\n\t\t kxpTextSizeLeft, kypTextSizeTop,\n\t\t kxpTextSizeRight, kypTextSizeBottom\n\t\t )\nCREATE_SCRIPT(\"Text Size parent\")\n\tCreateChildThis(kidTextSizeBackground, kidTextSizeBackground);\nENDCHUNK\n\n//\n// \t\tBackground\n//\nGOBCHUNK(\"Text Size Popdown\", kidTextSizeBackground, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMP(CHID(kstDefault, krepDefault), \"studio\\bmp\\d7par.bmp\")\nADOPT_WAVE(kcnoDropDnWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Text Size created\")\n\tCreateChildThis(kidTextSizePageDown, kidTextSizePageDown);\n\tChangeStateGob(kidTextSizePageDown, kstBrowserEnabled);\n\tCreateChildThis(kidTextSizePageUp, kidTextSizePageUp);\n\tChangeStateGob(kidTextSizePageUp, kstBrowserEnabled);\n\n\typ = kdypTextSizeTop;\n\tnFrame = 0;\n\n\tWhile(yp <= (kdypTextSize - kdypTextSizeFrame - kdypTextSizeBottom));\n\n\t\txp = kdxpTextSizeLeft;\n\n\t\tWhile(xp <= (kdxpTextSize - kdxpTextSizeRight - kdxpTextSizeFrame));\n\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\t\t\tCreateChildThis(kidTextSizeFrame + nFrame, kidTextSizeFrame);\n\t\t\tMoveAbsGob(kidTextSizeFrame + nFrame, xp, yp);\n\t\t\tnFrame++;\n\t\t\txp += kdxpTextSizeSpacing + kdxpTextSizeFrame;\n        End;\n\t\t\n\t\typ += kdypTextSizeSpacing + kdypTextSizeFrame;\n\tEnd;\n\n\t//\n\t// This shuts when a mouse down occurs.\n\t//\t\n\tFilterCmdsThis(cidMouseDown, cidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, cidNil, kchidScript2);\nENDCHUNK\nCHILD_SCRIPT(\"Text Size, track mouse\", kchidScript1)\n\tkid = _parm[0];\n\n\tIf(kid == kidTextsFontSize);\n\t\tReturn(fTrue);\n\tEnd;\n\n\tIf(((kid >= kidTextSizeFrame) && (kid < kidTextSizeFrameLim)) ||\n\t   (kid == kidTextSizePageDown) ||\n\t   (kid == kidTextSizePageUp));\n\t   Return(fFalse);\n\tEnd;\n\n\t//\n\t// Tell the parent to cancel the popup and pass the click thru.\n\t//\n\tEnqueueCid(cidBrowserCancel, kidTextSize, 0, 0, 0, 0);\n\tChangeStateGob(kidTextsFontSize, kstDefault);\n\tReturn(fFalse);\nENDCHUNK\nCHILD_SCRIPT(\"Text Size, disable keys\", kchidScript2)\n\tReturn(fTrue);\nENDCHUNK\n\n\n//\n// Text Size frame\n//\nGOBCHUNK(\"Text Size Frame\", kidTextSizeFrame, kgokkRectNoKids)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\d7frm.bmp\",\n\tkxpregTextSizeFrame, kypregTextSizeFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d7frmh.bmp\",\n\tkxpregTextSizeFrame, kypregTextSizeFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoSecToolWav, CHID(kstBrowserEnabled, krepClicked))\nCLICK_SCRIPT(\"Frame clicked\")\n\tIf(kidBackground->idtbxDown != kidTextsFontSize);\n\t\tChangeStateGob(kidBackground->idtbxDown, kstDefault);\n\t\tkidBackground->idtbxDown = kidTextsFontSize;\t\n\t\tkidBackground->chttTbox = chttTboxSelect;\n\tEnd;\n\tEnqueueCid(cidBrowserSelect, kidTextSize, GidThis(), 0, 0, 0);\n\tEnqueueCid(cidBrowserOk, kidTextSize, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Text Size page down\n//\nGOBCHUNK(\"Text Size page down\", kidTextSizePageDown, kgokkNormal)\n\tDEFAULT_POSITION(kxpTextSizePageDown, kypTextSizePageDown, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageFwd)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d7dn.bmp\",\n\tkxpregTextSizePageDown, kypregTextSizePageDown)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d7dns.bmp\",\n\tkxpregTextSizePageDown, kypregTextSizePageDown)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageDnWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageFwd, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n//\n// Text Size page up\n//\nGOBCHUNK(\"Text Size page up\", kidTextSizePageUp, kgokkNormal)\n\tDEFAULT_POSITION(kxpTextSizePageUp, kypTextSizePageUp, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageBack)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d7up.bmp\",\n\tkxpregTextSizePageUp, kypregTextSizePageUp)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d7ups.bmp\",\n    kxpregTextSizePageUp, kypregTextSizePageUp)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageUpWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageBack, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n\n\n//\n//\n// Text Color Popdown\n//\n//\n\n//\n//\t\tParent\n//\nGOBCHUNK(\"Text Color Popdown\", kidTextColor, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"Sizer\",\n\t\t kxpTextColorLeft, kypTextColorTop,\n\t\t kxpTextColorRight, kypTextColorBottom\n\t\t )\nCREATE_SCRIPT(\"Text Color parent\")\n\tCreateChildThis(kidTextColorBackground, kidTextColorBackground);\nENDCHUNK\n\n//\n// \t\tBackground\n//\nGOBCHUNK(\"Text Color Popdown\", kidTextColorBackground, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_FILL(CHID(kstDefault, krepDefault), \"Color\", 0, 0, kdxpTextColor, kdypTextColor, Palette( 21 ), Palette( 21 ) )\n\tPATTERN_100\nENDCHUNK\nADOPT_WAVE(kcnoDropDnWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Text Color created\")\n\tCreateChildThis(kidTextColorPageDown, kidTextColorPageDown);\n\tChangeStateGob(kidTextColorPageDown, kstBrowserEnabled);\n\tCreateChildThis(kidTextColorPageUp, kidTextColorPageUp);\n\tChangeStateGob(kidTextColorPageUp, kstBrowserEnabled);\n\n\typ = kdypTextColorTop;\n\tnFrame = 0;\n\n\tWhile(yp <= (kdypTextColor - kdypTextColorFrame - kdypTextColorBottom));\n\n\t\txp = kdxpTextColorLeft;\n\n\t\tWhile(xp <= (kdxpTextColor - kdxpTextColorRight - kdxpTextColorFrame));\n\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\t\t\tCreateChildThis(kidTextColorFrame + nFrame, kidTextColorFrame);\n\t\t\tMoveAbsGob(kidTextColorFrame + nFrame, xp, yp);\n\t\t\tnFrame++;\n\t\t\txp += kdxpTextColorSpacing + kdxpTextColorFrame;\n        End;\n\t\t\n\t\typ += kdypTextColorSpacing + kdypTextColorFrame;\n\tEnd;\n\n\t//\n\t// This shuts when a mouse down occurs.\n\t//\t\n\tFilterCmdsThis(cidMouseDown, cidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, cidNil, kchidScript2);\nENDCHUNK\nCHILD_SCRIPT(\"Text Color, track mouse\", kchidScript1)\n\tkid = _parm[0];\n\n\tIf(kid == kidTextsFontColor);\n\t\tReturn(fTrue);\n\tEnd;\n\n\tIf(((kid >= kidTextColorFrame) && (kid < kidTextColorFrameLim)) ||\n\t   (kid == kidTextColorPageDown) ||\n\t   (kid == kidTextColorPageUp));\n\t   Return(fFalse);\n\tEnd;\n\n\tIf (kid == kidTextsFontColor);\n\t\tReturn(fTrue);\n\tEnd;\n\n\t//\n\t// Tell the parent to cancel the popup and pass the click thru.\n\t//\n\tEnqueueCid(cidBrowserCancel, kidTextColor, 0, 0, 0, 0);\n\tChangeStateGob(kidTextsFontColor, kstDefault);\n\tReturn(fFalse);\nENDCHUNK\nCHILD_SCRIPT(\"Text Color, disable keys\", kchidScript2)\n\tReturn(fTrue);\nENDCHUNK\n\n\n//\n// Text Color frame\n//\nGOBCHUNK(\"Text Color Frame\", kidTextColorFrame, kgokkRectNoKids)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\d8frm.bmp\",\n\tkxpregTextColorFrame, kypregTextColorFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d8frmh.bmp\",\n\tkxpregTextColorFrame, kypregTextColorFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoSecToolWav, CHID(kstBrowserEnabled, krepClicked))\nCLICK_SCRIPT(\"Frame clicked\")\n\tIf(kidBackground->idtbxDown != kidTextsFontColor);\n\t\tChangeStateGob(kidBackground->idtbxDown, kstDefault);\n\t\tkidBackground->idtbxDown = kidTextsFontColor;\t\n\t\tkidBackground->chttTbox = chttTboxSelect;\n\tEnd;\n\tEnqueueCid(cidBrowserSelect, kidTextColor, GidThis(), 0, 0, 0);\n\tEnqueueCid(cidBrowserOk, kidTextColor, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Text Color page down\n//\nGOBCHUNK(\"Text Color page down\", kidTextColorPageDown, kgokkNormal)\n\tDEFAULT_POSITION(kxpTextColorPageDown, kypTextColorPageDown, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageFwd)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d8dn.bmp\",\n\tkxpregTextColorPageDown, kypregTextColorPageDown)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d8dns.bmp\",\n\tkxpregTextColorPageDown, kypregTextColorPageDown)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageDnWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageFwd, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n//\n// Text Color page up\n//\nGOBCHUNK(\"Text Color page up\", kidTextColorPageUp, kgokkNormal)\n\tDEFAULT_POSITION(kxpTextColorPageUp, kypTextColorPageUp, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageBack)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d8up.bmp\",\n\tkxpregTextColorPageUp, kypregTextColorPageUp)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d8ups.bmp\",\n    kxpregTextColorPageUp, kypregTextColorPageUp)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageUpWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageBack, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n\n\n//\n//\n// Text BkgdColor Popdown\n//\n//\n\n//\n//\t\tParent\n//\nGOBCHUNK(\"Text BkgdColor Popdown\", kidTextBkgdColor, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"Sizer\",\n\t\t kxpTextBkgdColorLeft, kypTextBkgdColorTop,\n\t\t kxpTextBkgdColorRight, kypTextBkgdColorBottom\n\t\t )\nCREATE_SCRIPT(\"Text BkgdColor parent\")\n\tCreateChildThis(kidTextBkgdColorBackground, kidTextBkgdColorBackground);\nENDCHUNK\n\n//\n// \t\tBackground\n//\nGOBCHUNK(\"Text BkgdColor Popdown\", kidTextBkgdColorBackground, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMP(CHID(kstDefault, krepDefault), \"studio\\bmp\\d9par.bmp\")\nADOPT_WAVE(kcnoDropDnWav, CHID(kstDefault, krepEnterAnimation))\nCREATE_SCRIPT(\"Text BkgdColor created\")\n\tCreateChildThis(kidTextBkgdColorPageDown, kidTextBkgdColorPageDown);\n\tChangeStateGob(kidTextBkgdColorPageDown, kstBrowserEnabled);\n\tCreateChildThis(kidTextBkgdColorPageUp, kidTextBkgdColorPageUp);\n\tChangeStateGob(kidTextBkgdColorPageUp, kstBrowserEnabled);\n\n\typ = kdypTextBkgdColorTop;\n\tnFrame = 0;\n\n\tWhile(yp <= (kdypTextBkgdColor - kdypTextBkgdColorFrame - kdypTextBkgdColorBottom));\n\n\t\txp = kdxpTextBkgdColorLeft;\n\n\t\tWhile(xp <= (kdxpTextBkgdColor - kdxpTextBkgdColorRight - kdxpTextBkgdColorFrame));\n\n\t\t\t//\n\t\t\t// create and position frames\n\t\t\t//\n\t\t\tCreateChildThis(kidTextBkgdColorFrame + nFrame, kidTextBkgdColorFrame);\n\t\t\tMoveAbsGob(kidTextBkgdColorFrame + nFrame, xp, yp);\n\t\t\tnFrame++;\n\t\t\txp += kdxpTextBkgdColorSpacing + kdxpTextBkgdColorFrame;\n        End;\n\t\t\n\t\typ += kdypTextBkgdColorSpacing + kdypTextBkgdColorFrame;\n\tEnd;\n\n\t//\n\t// This shuts when a mouse down occurs.\n\t//\t\n\tFilterCmdsThis(cidMouseDown, cidNil, kchidScript1);\n\tFilterCmdsThis(cidKey, cidNil, kchidScript2);\nENDCHUNK\nCHILD_SCRIPT(\"Text BkgdColor, track mouse\", kchidScript1)\n\tkid = _parm[0];\n\n\tIf(kid == kidTextsBkgdColor);\n\t\tReturn(fTrue);\n\tEnd;\n\n\tIf(((kid >= kidTextBkgdColorFrame) && (kid < kidTextBkgdColorFrameLim)) ||\n\t   (kid == kidTextBkgdColorPageDown) ||\n\t   (kid == kidTextBkgdColorPageUp));\n\t   Return(fFalse);\n\tEnd;\n\n\tIf (kid == kidTextsBkgdColor);\n\t\tReturn(fTrue);\n\tEnd;\n\n\t//\n\t// Tell the parent to cancel the popup and pass the click thru.\n\t//\n\tASSERT(FGobExists(kidTextBkgdColor));\n\tEnqueueCid(cidBrowserCancel, kidTextBkgdColor, 0, 0, 0, 0);\n\tChangeStateGob(kidTextsBkgdColor, kstDefault);\n\tReturn(fFalse);\nENDCHUNK\nCHILD_SCRIPT(\"Text BkgdColor, disable keys\", kchidScript2)\n\tReturn(fTrue);\nENDCHUNK\n\n\n//\n// Text BkgdColor frame\n//\nGOBCHUNK(\"Text BkgdColor Frame\", kidTextBkgdColorFrame, kgokkRectNoKids)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault), \"studio\\bmp\\d9frm.bmp\",\n\tkxpregTextBkgdColorFrame, kypregTextBkgdColorFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d9frmh.bmp\",\n\tkxpregTextBkgdColorFrame, kypregTextBkgdColorFrame)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserSelected, krepDefault))\nREP_RECT(CHID(kstBrowserDisabled, krepDefault), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoSecToolWav, CHID(kstBrowserEnabled, krepClicked))\nCLICK_SCRIPT(\"Frame clicked\")\n\tIf(kidBackground->idtbxDown != kidTextsBkgdColor);\n\t\tChangeStateGob(kidBackground->idtbxDown, kstDefault);\n\t\tkidBackground->idtbxDown = kidTextsBkgdColor;\t\n\t\tkidBackground->chttTbox = chttTboxSelect;\n\tEnd;\n\tEnqueueCid(cidBrowserSelect, kidTextBkgdColor, GidThis(), 0, 0, 0);\n\tEnqueueCid(cidBrowserOk, kidTextBkgdColor, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Text BkgdColor page down\n//\nGOBCHUNK(\"Text BkgdColor page down\", kidTextBkgdColorPageDown, kgokkNormal)\n\tDEFAULT_POSITION(kxpTextBkgdColorPageDown, kypTextBkgdColorPageDown, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageFwd)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d9dn.bmp\",\n\tkxpregTextBkgdColorPageDown, kypregTextBkgdColorPageDown)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d9dns.bmp\",\n\tkxpregTextBkgdColorPageDown, kypregTextBkgdColorPageDown)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageDnWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageFwd, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n//\n// Text BkgdColor page up\n//\nGOBCHUNK(\"Text BkgdColor page up\", kidTextBkgdColorPageUp, kgokkNormal)\n\tDEFAULT_POSITION(kxpTextBkgdColorPageUp, kypTextBkgdColorPageUp, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttGenericPageBack)\nENDCHUNK\nREP_RECT(CHID(kstBrowserInvisible, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstBrowserEnabled, krepDefault ), \"studio\\bmp\\d9up.bmp\",\n\tkxpregTextBkgdColorPageUp, kypregTextBkgdColorPageUp)\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstBrowserEnabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstBrowserEnabled, krepMouseDnOn), \"studio\\bmp\\d9ups.bmp\",\n    kxpregTextBkgdColorPageUp, kypregTextBkgdColorPageUp)\nREP_RECT(CHID(kstBrowserDisabled, krepDefault ), \"hidden\", 0, 0, 0, 0)\nADOPT_WAVE(kcnoPageUpWav, CHID(kstBrowserEnabled, krepClicked))\nADOPT_ANIM(kidPressPageBack, CHID(kstBrowserEnabled, krepMouseDnOn))\n\n\n\n\n"
  },
  {
    "path": "src/studio/popup.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    popup.cpp: Popup menu classes\n\n    Primary Author: ******\n             MPFNT: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n\n***************************************************************************/\n#include \"studio.h\"\nASSERTNAME\n\nRTCLASS(MP)\nRTCLASS(MPFNT)\n\nBEGIN_CMD_MAP(MP, BRWD)\nON_CID_GEN(cidSelIdle, &MP::FCmdSelIdle, pvNil)\nEND_CMD_MAP_NIL()\n\n/***************************************************************************\n    Create a new popup menu\n***************************************************************************/\nPMP MP::PmpNew(long kidParent, long kidMenu, PRCA prca, PCMD pcmd, BWS bws, long ithumSelect, long sidSelect,\n               CKI ckiRoot, CTG ctg, PCMH pcmh, long cid, bool fMoveTop)\n{\n    AssertPo(prca, 0);\n    AssertVarMem(pcmd);\n    AssertPo(pcmh, 0);\n\n    PMP pmp;\n    GCB gcb;\n    PSTDIO pstdio;\n    long cthum;\n    long cfrm;\n\n    pstdio = vpapp->Pstdio();\n    if (pvNil == pstdio)\n    {\n        Bug(\"pstdio is nil\");\n        return pvNil;\n    }\n\n    if (!_FBuildGcb(&gcb, kidParent, kidMenu))\n        return pvNil;\n\n    pmp = NewObj MP(&gcb);\n    if (pvNil == pmp)\n        goto LFail;\n    if (!pmp->_FInitGok(prca, kidMenu))\n        goto LFail;\n    if (!pmp->FInit(pcmd, bws, ithumSelect, sidSelect, ckiRoot, ctg, pstdio, pvNil, fFalse, 1))\n    {\n        goto LFail;\n    }\n\n    //\n    // Add ourselves as a CMH with a high priority so that we can\n    // filter out SelIdle messages\n    //\n    if (!vpcex->FAddCmh(pmp, -1000))\n    {\n        goto LFail;\n    }\n    if (!pmp->FDraw())\n        goto LFail;\n\n    pmp->_cid = cid;\n    pmp->_pcmh = pcmh;\n\n    // Need to adjust the size if cthum <= cfrm\n    // New height should be dypTop + cthum * dypFrm + dypTop\n    cthum = pmp->_Cthum();\n    cfrm = pmp->_cfrm;\n\n    if (cthum <= cfrm)\n    {\n        PGOB pgob;\n        long dypFrm;\n        long dypTop;\n        RC rc;\n        RC rcAbs;\n        RC rcRel;\n\n        pgob = vpapp->Pkwa()->PgobFromHid(pmp->_kidFrmFirst);\n        AssertPo(pgob, 0);\n        pgob->GetRc(&rc, cooParent);\n        dypFrm = rc.Dyp();\n        dypTop = rc.ypTop;\n        pmp->GetPos(&rcAbs, &rcRel);\n        if (fMoveTop)\n            rcAbs.ypTop = rcAbs.ypBottom - (dypTop + LwMul(cthum, dypFrm) + dypTop);\n        else\n            rcAbs.ypBottom = rcAbs.ypTop + (dypTop + LwMul(cthum, dypFrm) + dypTop);\n        pmp->SetPos(&rcAbs, &rcRel);\n    }\n    AssertPo(pmp, 0);\n    return pmp;\nLFail:\n    ReleasePpo(&pmp);\n    return pvNil;\n}\n\n/***************************************************************************\n    Enqueue a cid saying what was selected\n***************************************************************************/\nvoid MP::_ApplySelection(long ithumSelect, long sid)\n{\n    AssertThis(0);\n\n    if (_ckiRoot.ctg == kctgTyth)\n    {\n        THD thd;\n\n        _pglthd->Get(ithumSelect, &thd);\n        vpcex->EnqueueCid(_cid, _pcmh, pvNil, thd.grfontMask, thd.grfont);\n        return;\n    }\n    vpcex->EnqueueCid(_cid, _pcmh, pvNil, ithumSelect, sid);\n}\n\n/******************************************************************************\n    _IthumFromThum\n        Override the default BWRL routine so that we can map a font bitfield\n        to the proper ithum.\n\n\n    Arguments:\n        long thumSelect\n        long sidSelect\n\n    Returns:\n\n    Keywords:\n\n************************************************************ PETED ***********/\nlong MP::_IthumFromThum(long thumSelect, long sidSelect)\n{\n    AssertBaseThis(0);\n\n    long ithum;\n\n    if (_ckiRoot.ctg == kctgTyth)\n    {\n        THD thd;\n\n        ithum = _pglthd->IvMac();\n        while (ithum-- > 0)\n        {\n            _pglthd->Get(ithum, &thd);\n            if (thd.grfont == (thumSelect & thd.grfontMask))\n                break;\n        }\n        Assert(ithum >= 0 || ithum == ivNil, \"Returning invalid ithum\");\n    }\n    else\n        ithum = MP_PAR::_IthumFromThum(thumSelect, sidSelect);\n    return ithum;\n}\n\n/***************************************************************************\n    Do selection idle processing.  Make sure not to change any selection\n    states.\n***************************************************************************/\nbool MP::FCmdSelIdle(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    MP_PAR::FCmdSelIdle(pcmd);\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the MP.\n***************************************************************************/\nvoid MP::AssertValid(ulong grf)\n{\n    MP_PAR::AssertValid(fobjAllocated);\n    AssertBasePo(_pcmh, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the MP\n***************************************************************************/\nvoid MP::MarkMem(void)\n{\n    AssertThis(0);\n    MP_PAR::MarkMem();\n    MarkMemObj(_pcmh);\n}\n#endif // DEBUG\n\n//\n//\n//\n//  MPFNT (font menu) stuff begins here\n//\n//\n//\n\nBEGIN_CMD_MAP(MPFNT, BRWD)\nON_CID_GEN(cidSelIdle, &MPFNT::FCmdSelIdle, pvNil)\nEND_CMD_MAP_NIL()\n\n/***************************************************************************\n    Create a new font menu\n***************************************************************************/\nPMPFNT MPFNT::PmpfntNew(PRCA prca, long kidParent, long kidMenu, PCMD pcmd, long ithumSelect, PGST pgst)\n{\n    AssertPo(prca, 0);\n    AssertVarMem(pcmd);\n    AssertPo(pgst, 0);\n\n    PMPFNT pmpfnt;\n    GCB gcb;\n    PSTDIO pstdio = vpapp->Pstdio();\n\n    if (pstdio == pvNil)\n    {\n        Bug(\"pstdio is nil\");\n        return pvNil;\n    }\n\n    if (pgst->CbExtra() != size(long))\n    {\n        Bug(\"GST CbExtra isn't the right size for an onn\");\n        return pvNil;\n    }\n\n    if (!_FBuildGcb(&gcb, kidParent, kidMenu))\n        return pvNil;\n\n    pmpfnt = NewObj MPFNT(&gcb);\n    if (pmpfnt == pvNil)\n        return pvNil;\n\n    pmpfnt->_pgst = pgst;\n    pmpfnt->_pgst->AddRef();\n\n    if (!pmpfnt->_FInitGok(prca, kidMenu))\n        goto LFail;\n\n    if (!pmpfnt->FInit(pcmd, ithumSelect, ithumSelect, pstdio, fFalse, 1))\n        goto LFail;\n\n    //\n    // Add ourselves as a CMH with a high priority so that we can\n    // filter out SelIdle messages\n    //\n    if (!vpcex->FAddCmh(pmpfnt, -1000))\n    {\n        goto LFail;\n    }\n\n    if (!pmpfnt->FDraw())\n        goto LFail;\n    pmpfnt->_AdjustRc(pmpfnt->_Cthum(), pmpfnt->_cfrm);\n\n    AssertPo(pmpfnt, 0);\n    return pmpfnt;\n\nLFail:\n    ReleasePpo(&pmpfnt);\n    return pvNil;\n}\n\n/***************************************************************************\n    Set the font of the TGOB to the font listed in the menu item\n***************************************************************************/\nbool MPFNT::_FSetThumFrame(long istn, PGOB pgobPar)\n{\n    if (MPFNT_PAR::_FSetThumFrame(istn, pgobPar))\n    {\n        PTGOB ptgob = (PTGOB)pgobPar->PgobFirstChild();\n        long onn;\n\n        /* By the time we get this far, MPFNT_PAR should have already checked\n            these */\n        Assert(ptgob != pvNil, \"No TGOB for the text\");\n        Assert(ptgob->FIs(kclsTGOB), \"GOB isn't a TGOB\");\n\n        _pgst->GetExtra(istn, &onn);\n        ptgob->SetFont(onn);\n        ptgob->SetAlign(tahLeft, tavCenter);\n        return fTrue;\n    }\n    return fFalse;\n}\n\n/***************************************************************************\n    Tell the studio that the font was selected\n***************************************************************************/\nvoid MPFNT::_ApplySelection(long ithumSelect, long sid)\n{\n    AssertThis(0);\n\n    long onn;\n\n    _pgst->GetExtra(ithumSelect, &onn);\n    vpcex->EnqueueCid(cidTextSetFont, _pstdio, pvNil, onn);\n}\n\n/***************************************************************************\n    Hide the scroll arrows if necessary\n***************************************************************************/\nvoid MPFNT::_AdjustRc(long cthum, long cfrm)\n{\n    PGOB pgob;\n    long dypFrm;\n    long dypTop;\n    RC rc;\n    RC rcAbs;\n    RC rcRel;\n\n    /* Still need to adjust if cthum == cfrm to hide scroll arrows */\n    if (cthum > cfrm)\n        return;\n\n    /* For the font popup, the GOBs that are interesting for adjusting the\n        entire browser are actually the parents of the thumbnail frames */\n    pgob = vapp.Pkwa()->PgobFromHid(_kidFrmFirst);\n    AssertPo(pgob, 0);\n    pgob = pgob->PgobPar();\n    AssertPo(pgob, 0);\n    pgob->GetRc(&rc, cooParent);\n    dypFrm = rc.Dyp();\n    dypTop = rc.ypTop;\n\n    GetPos(&rcAbs, &rcRel);\n    rcAbs.ypBottom = rcAbs.ypTop + (dypTop + LwMul(cthum, dypFrm) + dypTop);\n    SetPos(&rcAbs, &rcRel);\n}\n\n/***************************************************************************\n    Do selection idle processing.  Make sure not to change any selection\n    states.\n***************************************************************************/\nbool MPFNT::FCmdSelIdle(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    MPFNT_PAR::FCmdSelIdle(pcmd);\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the MPFNT.\n***************************************************************************/\nvoid MPFNT::AssertValid(ulong grf)\n{\n    MPFNT_PAR::AssertValid(0);\n}\n\n/***************************************************************************\n    Mark memory used by the MPFNT\n***************************************************************************/\nvoid MPFNT::MarkMem(void)\n{\n    AssertThis(0);\n    MPFNT_PAR::MarkMem();\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/studio/popups.cht",
    "content": "/*****************************************************************************\\\n *\n *\tpopups.cht\n *\n *\tAll popups that appear in the studio\n *\n *\tAuthor: Sean Selitrennikoff\n *\n * \tStatus: REVIEWED\n *\n\\*****************************************************************************/\n\n\n//\n//\n// Portfolio Popup\n//\n//\n\n//\n// \t\tBackground\n//\nGOBCHUNK(\"Portfolio Popup\", kidPortsBackground, kgokkRectHit)\n\tDEFAULT_POSITION(0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstClosed, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstOpen, krepDefault), \"open\", kxpPortsBackgroundLeft, kypPortsBackgroundTop, kxpPortsBackgroundRight, kypPortsBackgroundBottom )\nADOPT_WAVE(kcnoDropDnWav, CHID(kstOpen, krepEnterAnimation))\nCREATE_SCRIPT(\"Portfolio\")\n\tCreateChildThis(kidPortsPortfolio, kidPortsPortfolio);\n\tCreateChildThis(kidPortsNew, kidPortsNew);\n\tCreateChildThis(kidPortsSave, kidPortsSave);\n\tCreateChildThis(kidPortsSaveAs, kidPortsSaveAs);\nENDCHUNK\nCREATE_ANIMST(\"Portfolio\", kstOpen)\n\tFilterCmdsThis(cidMouseDown, hidNil, kchidClick);\n\tFilterCmdsThis(cidKey, hidNil, kchidScript2);\n\tFilterCmdsThis(cidSelIdle, hidNil, kchidScript2);\n\tChangeStateGob(kidPortfolio, kstSelected);\n\tDISABLEACCEL(fFalse);\nENDCHUNK\nCREATE_ANIMST(\"Portfolio\", kstClosed)\n\tFilterCmdsThis(cidMouseDown, hidNil, chidNil);\n\tFilterCmdsThis(cidKey, hidNil, chidNil);\n\tFilterCmdsThis(cidSelIdle, hidNil, chidNil);\n\tChangeStateGob(kidPortfolio, kstDefault);\n\tENABLEACCEL(fFalse);\nENDCHUNK\nCHILD_SCRIPT(\"Portfolio, track mouse\", kchidClick)\n\tkid = _parm[0];\n\n\t//\n\t// Pass clicks to the portfolio button\n\t//\n\tIf(kid == kidPortfolio);\n\t\tReturn(fFalse);\n    End;\n\n\tIf((kid != kidPortsPortfolio) &&\n\t   (kid != kidPortsNew) &&\n\t   (kid != kidPortsSave) &&\n\t   (kid != kidPortsSaveAs) &&\n\t   (kid != kidPortsBackground));\n\t    //\n\t\t// Hide this pop-up and pass click through\n\t\t//\n\t\tChangeStateThis(kstClosed);\n\tEnd;\n\n\t//\n\t// Pass clicks thru.\n\t//\n\tReturn(fFalse);\nENDCHUNK\nCHILD_SCRIPT(\"Portfolio, disable\", kchidScript2)\n\tReturn(fTrue);\nENDCHUNK\n\n\n//\n//\t\tFile Open\n//\nGOBCHUNK(\"Portfolio Popup - Portfolio\", kidPortsPortfolio, kgokkRectHit)\n\tDEFAULT_POSITION(kxpPortsPortfolio, kypPortsPortfolio, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttPortsPortfolio)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p1open.bmp\",\n\tkxpregPortsPortfolio, kypregPortsPortfolio)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p1openc.bmp\",\n\tkxpregPortsPortfolio, kypregPortsPortfolio)\nADOPT_WAVE(kcnoPFOpenWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"Portfolio Popup - Portfolio\", CHID(kstDefault, kchidClick))\n\tChangeStateGob(kidPortsBackground, kstClosed);\n\n\t// We could enqueue the cidPortfolioOpen here, as we do in other places\n\t// for displaying the portfolio. However, since code exists to handle\n\t// the ctrl-o accelerator, just use that.\n    EnqueueCid(cidOpen, 0, 0, 0, 0, 0);\nENDCHUNK\n\n\n//\n//\t\tFile New\n//\nGOBCHUNK(\"New Popup - New\", kidPortsNew, kgokkRectHit)\n\tDEFAULT_POSITION(kxpPortsNew, kypPortsNew, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttPortsNew)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p1new.bmp\",\n\tkxpregPortsNew, kypregPortsNew)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p1news.bmp\",\n\tkxpregPortsNew, kypregPortsNew)\nADOPT_WAVE(kcnoFNewWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"Portfolio Popup - New\", CHID(kstDefault, kchidClick))\n\tChangeStateGob(kidPortsBackground, kstClosed);\n\tEnqueueCid(cidNew, khidStudio, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// \t\tFile Save\n//\nGOBCHUNK(\"Save Popup - Save\", kidPortsSave, kgokkRectHit)\n\tDEFAULT_POSITION(kxpPortsSave, kypPortsSave, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttPortsSave)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p1save.bmp\",\n\tkxpregPortsSave, kypregPortsSave)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p1saves.bmp\",\n\tkxpregPortsSave, kypregPortsSave)\nADOPT_WAVE(kcnoFSaveWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"Portfolio Popup - Save\", CHID(kstDefault, kchidClick))\n\tChangeStateGob(kidPortsBackground, kstClosed);\n\tEnqueueCid(cidSave, 0, 0, 0, 0, 0);\nENDCHUNK\n\n//\n//\t\tFile Save As\n//\nGOBCHUNK(\"Save As Popup - Save As\", kidPortsSaveAs, kgokkRectHit)\n\tDEFAULT_POSITION(kxpPortsSaveAs, kypPortsSaveAs, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttPortsSaveAs)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p1svas.bmp\",\n\tkxpregPortsSaveAs, kypregPortsSaveAs)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p1svass.bmp\",\n\tkxpregPortsSaveAs, kypregPortsSaveAs)\nADOPT_WAVE(kcnoFSaveAsWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"Portfolio Popup - Save As\", CHID(kstDefault, kchidClick))\n\tChangeStateGob(kidPortsBackground, kstClosed);\n\tEnqueueCid(cidSaveAs, 0, 0, 0, 0, 0);\nENDCHUNK\n\n\n\n\n//\n//\n// Cut, Copy, Paste popup\n//\n//\n\n//\n// \t\tBackground\n//\nGOBCHUNK(\"CCP Popup\", kidCCPBackground, kgokkRectHit)\n\tDEFAULT_POSITION(0,0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstClosed, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstOpen, krepDefault), \"open\", kxpCCPBackgroundLeft, \n\tkypCCPBackgroundTop, kxpCCPBackgroundRight, kypCCPBackgroundBottom)\nADOPT_WAVE(kcnoDropDnWav, CHID(kstOpen, krepEnterAnimation))\nCREATE_SCRIPT(\"CCP\")\n\tCreateChildThis(kidCCPActorNuke, kidCCPActorNuke);\n\tCreateChildThis(kidCCPCopyRoute, kidCCPCopyRoute);\n\tCreateChildThis(kidCCPPaste, kidCCPPaste);\n\tCreateChildThis(kidCCPCopy, kidCCPCopy);\n\tCreateChildThis(kidCCPCut, kidCCPCut);\nENDCHUNK\nCREATE_ANIMST(\"CCP\", kstOpen)\n\tFilterCmdsThis(cidMouseDown, hidNil, kchidClick);\n\tFilterCmdsThis(cidKey, hidNil, kchidScript2);\n\tFilterCmdsThis(cidSelIdle, hidNil, kchidScript2);\n\tChangeStateGob(kidCutCopyPaste, kstSelected);\n\tDISABLEACCEL(fFalse);\nENDCHUNK\nCREATE_ANIMST(\"CCP\", kstClosed)\n\tIf(kidCutCopyPaste->idDown == kidStudio);\n\t\tChangeStateGob(kidCutCopyPaste, kstDefault);\n\tEnd;\n\tFilterCmdsThis(cidMouseDown, hidNil, chidNil);\n\tFilterCmdsThis(cidKey, hidNil, chidNil);\n\tFilterCmdsThis(cidSelIdle, hidNil, chidNil);\n\tENABLEACCEL(fFalse);\nENDCHUNK\nCHILD_SCRIPT(\"CCP, track mouse\", kchidClick)\n\tkid = _parm[0];\n\n\tIf(kid == kidCutCopyPaste);\n\t\tReturn(fTrue);\n    End;\n\n\tIf((kid != kidCCPActorNuke) &&\n\t   (kid != kidCCPCopyRoute) &&\n\t   (kid != kidCCPPaste) &&\n\t   (kid != kidCCPCopy) &&\n\t   (kid != kidCCPCut) &&\n\t   (kid != kidCCPBackground));\n\t    //\n\t\t// Hide this pop-up and pass click through\n\t\t//\n\t\tChangeStateThis(kstClosed);\n\tEnd;\n\n\t//\n\t// Pass clicks thru.\n\t//\n\tReturn(fFalse);\n\nENDCHUNK\nCHILD_SCRIPT(\"CCP, disable\", kchidScript2)\n\tReturn(fTrue);\nENDCHUNK\nCHILD_SCRIPT(\"CCP, Pops out nuker\", kchidScript3)\n\tIf (StateGob(kidCCPActorNuke) == kst2);\n\t\tChangeStateGob(kidCutCopyPaste->idDown, kst1);\t\t\t\t\n\tElif (StateGob(kidCCPActorNuke) == kst4);\n\t\tChangeStateGob(kidCutCopyPaste->idDown, kst3);\t\t\t\t\n\tElif (StateGob(kidCCPActorNuke) == kst6);\n\t\tChangeStateGob(kidCutCopyPaste->idDown, kst5);\t\t\t\t\n\tElif (StateGob(kidCCPActorNuke) == kst8);\n\t\tChangeStateGob(kidCutCopyPaste->idDown, kst7);\t\t\t\t\n\tEnd;\nENDCHUNK\n\n//\n// \t\tNuke a scene, actor, scene, or tbox\n//\nGOBCHUNK(\"CCP Popup - Scene nuke actor\", kidCCPActorNuke, kgokkRectHit)\n\tDEFAULT_POSITION(kxpCCPActorNuke, kypCCPActorNuke, 100)\n\tACTION(fcustNil, fcustNil, fgrfst1, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCCPSceneNuke)\n\tACTION(fcustNil, fcustNil, fgrfst2, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCCPSceneNuke)\n\tACTION(fcustNil, fcustNil, fgrfst3, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCCPActorNuke)\n\tACTION(fcustNil, fcustNil, fgrfst4, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCCPActorNuke)\n\tACTION(fcustNil, fcustNil, fgrfst5, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttRemoveSound)\n\tACTION(fcustNil, fcustNil, fgrfst6, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttRemoveSound)\n\tACTION(fcustNil, fcustNil, fgrfst7, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCCPTboxNuke)\n\tACTION(fcustNil, fcustNil, fgrfst8, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCCPTboxNuke)\nENDCHUNK\nREP_MBMPREG(CHID(kst1, krepDefault), \"studio\\bmp\\p3rmsn.bmp\",\n\tkxpregCCPActorNuke, kypregCCPActorNuke)\nADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseDnOff))\nREP_MBMPREG(CHID(kst1, krepMouseDnOn), \"studio\\bmp\\p3rmsnc.bmp\",\n\tkxpregCCPActorNuke, kypregCCPActorNuke)\nADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\n\nREP_MBMPREG(CHID(kst3, krepDefault), \"studio\\bmp\\p3rmac.bmp\",\n\tkxpregCCPActorNuke, kypregCCPActorNuke)\nADOPT_MBMP(LAST_MBMP, CHID(kst3, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kst3, krepMouseDnOff))\nREP_MBMPREG(CHID(kst3, krepMouseDnOn), \"studio\\bmp\\p3rmacc.bmp\",\n\tkxpregCCPActorNuke, kypregCCPActorNuke)\nADOPT_MBMP(LAST_MBMP, CHID(kst4, krepDefault))\n\nREP_MBMPREG(CHID(kst5, krepDefault), \"studio\\bmp\\p3rmsd.bmp\",\n\tkxpregCCPActorNuke, kypregCCPActorNuke)\nADOPT_MBMP(LAST_MBMP, CHID(kst5, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kst5, krepMouseDnOff))\nREP_MBMPREG(CHID(kst5, krepMouseDnOn), \"studio\\bmp\\p3rmsdc.bmp\",\n\tkxpregCCPActorNuke, kypregCCPActorNuke)\nADOPT_MBMP(LAST_MBMP, CHID(kst6, krepDefault))\n\nREP_MBMPREG(CHID(kst7, krepDefault), \"studio\\bmp\\p3rmtb.bmp\",\n\tkxpregCCPActorNuke, kypregCCPActorNuke)\nADOPT_MBMP(LAST_MBMP, CHID(kst7, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kst7, krepMouseDnOff))\nREP_MBMPREG(CHID(kst7, krepMouseDnOn), \"studio\\bmp\\p3rmtbc.bmp\",\n\tkxpregCCPActorNuke, kypregCCPActorNuke)\nADOPT_MBMP(LAST_MBMP, CHID(kst8, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kst1, krepClicked))\nADOPT_WAVE(kcnoSecToolWav, CHID(kst2, krepClicked))\nADOPT_WAVE(kcnoSecToolWav, CHID(kst3, krepClicked))\nADOPT_WAVE(kcnoSecToolWav, CHID(kst4, krepClicked))\nADOPT_WAVE(kcnoSecToolWav, CHID(kst5, krepClicked))\nADOPT_WAVE(kcnoSecToolWav, CHID(kst6, krepClicked))\nADOPT_WAVE(kcnoSecToolWav, CHID(kst7, krepClicked))\nADOPT_WAVE(kcnoSecToolWav, CHID(kst8, krepClicked))\nCHILD_SCRIPT(\"CCP Popup - Mouse\", CHID(kstDefault, kchidClick))\n\n\tIf (kidBackground->idactDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idactDown, kstDefault);\n\t\tkidBackground->chttActor = chttNone;\n\t\tkidBackground->idactDown = kidCutCopyPaste;\n    End;\n\n\tIf (kidBackground->idtbxDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idtbxDown, kstDefault);\n\t\tkidBackground->idtbxDown = kidCutCopyPaste;\n\t\tkidBackground->chttTbox = chttNone;\n    End;\n\n\tIf (kidBackground->idsndDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idsndDown, kstDefault);\n\t\tkidBackground->idsndDown = kidCutCopyPaste;\n    End;\n\n\tIf (kidBackground->idscnDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idscnDown, kstDefault);\n\t\tkidBackground->idscnDown = kidCutCopyPaste;\n    End;\n\n\tIf (StateThis() == kst1);\n\t\tChangeStateThis(kst2);\n\t\tEnqueueCid(cidSetTool, khidStudio, chttSceneNuke, 0, 0, 0);\n\tElif (StateThis() == kst3);\n\t\tChangeStateThis(kst4);\n\t\tEnqueueCid(cidSetTool, khidStudio, chttActorNuke, 0, 0, 0);\n\tElif (StateThis() == kst5);\n\t\tChangeStateThis(kst6);\n\t\tEnqueueCid(cidSetTool, khidStudio, chttListener, 0, 0, 0);\n\tElif (StateThis() == kst7);\n\t\tChangeStateThis(kst8);\n\t\tEnqueueCid(cidSetTool, khidStudio, chttActorNuke, 0, 0, 0);\n\tEnd;\n\n\tIf (FGobExists(kidCutCopyPaste->idDown) &&\n\t\t(kidCutCopyPaste->idDown != GidThis()) &&\n\t\t(kidCutCopyPaste->idDown != kidStudio));\n\t\tChangeStateGob(kidCutCopyPaste->idDown, kstDefault);\n    End;\n\n\tkidCutCopyPaste->idDown = GidThis();\n\tChangeStateGob(kidCCPBackground, kstClosed);\nENDCHUNK\n\n//\n//\t\tCopy a route\n//\nGOBCHUNK(\"CCP Popup - Copy route\", kidCCPCopyRoute, kgokkRectHit)\n\tDEFAULT_POSITION(kxpCCPCopyRoute, kypCCPCopyRoute, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCCPCopyRoute)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p3cppt.bmp\",\n\tkxpregCCPCopyRoute, kypregCCPCopyRoute)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p3cpptc.bmp\",\n\tkxpregCCPCopyRoute, kypregCCPCopyRoute)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault));\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepClicked))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstSelected, krepClicked))\nCHILD_SCRIPT(\"CCP Popup - Mouse\", CHID(kstDefault, kchidClick))\n\tIf (kidBackground->idactDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idactDown, kstDefault);\n\t\tkidBackground->chttActor = chttNone;\n\t\tkidBackground->idactDown = kidCutCopyPaste;\n    End;\n\n\tIf (kidBackground->idtbxDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idtbxDown, kstDefault);\n\t\tkidBackground->idtbxDown = kidCutCopyPaste;\n\t\tkidBackground->chttTbox = chttNone;\n    End;\n\n\tIf (kidBackground->idsndDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idsndDown, kstDefault);\n\t\tkidBackground->idsndDown = kidCutCopyPaste;\n    End;\n\n\tIf (kidBackground->idscnDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idscnDown, kstDefault);\n\t\tkidBackground->idscnDown = kidCutCopyPaste;\n    End;\n\n\tChangeStateThis(kstSelected);\n\n\tIf (FGobExists(kidCutCopyPaste->idDown) &&\n\t\t(kidCutCopyPaste->idDown != GidThis()) &&\n\t\t(kidCutCopyPaste->idDown != kidStudio));\n\t\tIf (kidCutCopyPaste->idDown == kidCCPActorNuke);\n\t\t\tRunScriptGob(kidCCPBackground, kchidScript3);\n\t\tElse;\n\t\t\tChangeStateGob(kidCutCopyPaste->idDown, kstDefault);\n        End;\n    End;\n\n\tkidCutCopyPaste->idDown = GidThis();\n\tChangeStateGob(kidCCPBackground, kstClosed);\n\n\t//\n\t// Do not use SetTool, because the DDG for the movie gets this command\n\t// directly.\n\t//\n\tEnqueueCid(cidCopyRoute, 0, 0, 0, 0, 0);\nENDCHUNK\n\n//\n//\t\tPaste\n//\nGOBCHUNK(\"CCP Popup - Paste\", kidCCPPaste, kgokkRectHit)\n\tDEFAULT_POSITION(kxpCCPPaste, kypCCPPaste, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCCPPaste)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p3past.bmp\",\n\tkxpregCCPPaste, kypregCCPPaste)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p3pastc.bmp\",\n\tkxpregCCPPaste, kypregCCPPaste)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault));\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepClicked))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstSelected, krepClicked))\nCHILD_SCRIPT(\"CCP Popup - Mouse\", CHID(kstDefault, kchidClick))\n\tIf (kidBackground->idactDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idactDown, kstDefault);\n\t\tkidBackground->chttActor = chttNone;\n\t\tkidBackground->idactDown = kidCutCopyPaste;\n    End;\n\n\tIf (kidBackground->idtbxDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idtbxDown, kstDefault);\n\t\tkidBackground->idtbxDown = kidCutCopyPaste;\n\t\tkidBackground->chttTbox = chttNone;\n    End;\n\n\tIf (kidBackground->idsndDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idsndDown, kstDefault);\n\t\tkidBackground->idsndDown = kidCutCopyPaste;\n    End;\n\n\tIf (kidBackground->idscnDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idscnDown, kstDefault);\n\t\tkidBackground->idscnDown = kidCutCopyPaste;\n    End;\n\n\tChangeStateThis(kstSelected);\n\n\tIf (FGobExists(kidCutCopyPaste->idDown) &&\n\t\t(kidCutCopyPaste->idDown != GidThis()) &&\n\t\t(kidCutCopyPaste->idDown != kidStudio));\n\t\tIf (kidCutCopyPaste->idDown == kidCCPActorNuke);\n\t\t\tRunScriptGob(kidCCPBackground, kchidScript3);\n\t\tElse;\n\t\t\tChangeStateGob(kidCutCopyPaste->idDown, kstDefault);\n        End;\n    End;\n\n\tkidCutCopyPaste->idDown = GidThis();\n\tChangeStateGob(kidCCPBackground, kstClosed);\n\n\t//\n\t// Do not use SetTool, because the DDG for the movie gets this command\n\t// directly.\n\t//\n\tEnqueueCid(cidPasteTool, 0, 0, 0, 0, 0);\nENDCHUNK\n\n//\n//\t\tCopy\n//\nGOBCHUNK(\"CCP Popup - Copy\", kidCCPCopy, kgokkRectHit)\n\tDEFAULT_POSITION(kxpCCPCopy, kypCCPCopy, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCCPCopy)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p3copy.bmp\",\n\tkxpregCCPCopy, kypregCCPCopy)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p3copyc.bmp\",\n\tkxpregCCPCopy, kypregCCPCopy)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault));\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepClicked))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstSelected, krepClicked))\nCHILD_SCRIPT(\"CCP Popup - Mouse\", CHID(kstDefault, kchidClick))\n\tIf (kidBackground->idactDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idactDown, kstDefault);\n\t\tkidBackground->chttActor = chttNone;\n\t\tkidBackground->idactDown = kidCutCopyPaste;\n    End;\n\n\tIf (kidBackground->idtbxDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idtbxDown, kstDefault);\n\t\tkidBackground->idtbxDown = kidCutCopyPaste;\n\t\tkidBackground->chttTbox = chttNone;\n    End;\n\n\tIf (kidBackground->idsndDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idsndDown, kstDefault);\n\t\tkidBackground->idsndDown = kidCutCopyPaste;\n    End;\n\n\tIf (kidBackground->idscnDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idscnDown, kstDefault);\n\t\tkidBackground->idscnDown = kidCutCopyPaste;\n    End;\n\n\tChangeStateThis(kstSelected);\n\n\tIf (FGobExists(kidCutCopyPaste->idDown) &&\n\t\t(kidCutCopyPaste->idDown != GidThis()) &&\n\t\t(kidCutCopyPaste->idDown != kidStudio));\n\t\tIf (kidCutCopyPaste->idDown == kidCCPActorNuke);\n\t\t\tRunScriptGob(kidCCPBackground, kchidScript3);\n\t\tElse;\n\t\t\tChangeStateGob(kidCutCopyPaste->idDown, kstDefault);\n        End;\n    End;\n\n\tkidCutCopyPaste->idDown = GidThis();\n\tChangeStateGob(kidCCPBackground, kstClosed);\n\n\t//\n\t// Do not use SetTool, because the DDG for the movie gets this command\n\t// directly.\n\t//\n\tEnqueueCid(cidCopyTool, 0, 0, 0, 0, 0);\nENDCHUNK\n\n//\n//\t\tCut\n//\nGOBCHUNK(\"CCP Popup - Cut\", kidCCPCut, kgokkRectHit)\n\tDEFAULT_POSITION(kxpCCPCut, kypCCPCut, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCCPCut)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p3cut.bmp\",\n\tkxpregCCPCut, kypregCCPCut)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p3cutc.bmp\",\n\tkxpregCCPCut, kypregCCPCut)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault));\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepClicked))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstSelected, krepClicked))\nCHILD_SCRIPT(\"CCP Popup - Mouse\", CHID(kstDefault, kchidClick))\n\tIf (kidBackground->idactDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idactDown, kstDefault);\n\t\tkidBackground->chttActor = chttNone;\n\t\tkidBackground->idactDown = kidCutCopyPaste;\n    End;\n\n\tIf (kidBackground->idtbxDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idtbxDown, kstDefault);\n\t\tkidBackground->idtbxDown = kidCutCopyPaste;\n\t\tkidBackground->chttTbox = chttNone;\n    End;\n\n\tIf (kidBackground->idsndDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idsndDown, kstDefault);\n\t\tkidBackground->idsndDown = kidCutCopyPaste;\n    End;\n\n\tIf (kidBackground->idscnDown != kidCutCopyPaste);\n\t\tChangeStateGob(kidBackground->idscnDown, kstDefault);\n\t\tkidBackground->idscnDown = kidCutCopyPaste;\n    End;\n\n\tChangeStateThis(kstSelected);\n\n\tIf (FGobExists(kidCutCopyPaste->idDown) &&\n\t\t(kidCutCopyPaste->idDown != GidThis()) &&\n\t\t(kidCutCopyPaste->idDown != kidStudio));\n\t\tIf (kidCutCopyPaste->idDown == kidCCPActorNuke);\n\t\t\tRunScriptGob(kidCCPBackground, kchidScript3);\n\t\tElse;\n\t\t\tChangeStateGob(kidCutCopyPaste->idDown, kstDefault);\n        End;\n    End;\n\n\tkidCutCopyPaste->idDown = GidThis();\n\tChangeStateGob(kidCCPBackground, kstClosed);\n\n\t//\n\t// Do not use SetTool, because the DDG for the movie gets this command\n\t// directly.\n\t//\n\tEnqueueCid(cidCutTool, 0, 0, 0, 0, 0);\nENDCHUNK\n\n\n\n\n//\n//\n// Actor rotate popup\n//\n//\n\n//\n//\t\tBackground\n//\nGOBCHUNK(\"Rotate Popup\", kidRotateBackground, kgokkRectHit)\n\tDEFAULT_POSITION(kxpRotateBackground, kypRotateBackground, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstClosed, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstOpen, krepDefault), \"studio\\bmp\\p5par.bmp\", kxpregRotateBackground, kypregRotateBackground)\nADOPT_WAVE(kcnoDropDnWav, CHID(kstOpen, krepEnterAnimation))\nCREATE_SCRIPT(\"Rotate\")\n\tCreateChildThis(kidActorsRotateX, kidActorsRotateX);\n\tCreateChildThis(kidActorsRotateY, kidActorsRotateY);\n\tCreateChildThis(kidActorsRotateZ, kidActorsRotateZ);\n\tCreateChildThis(kidActorsRotateNorm, kidActorsRotateNorm);\nENDCHUNK\nCREATE_ANIMST(\"Rotate\", kstOpen)\n\tFilterCmdsThis(cidMouseDown, hidNil, kchidClick);\n\tFilterCmdsThis(cidKey, hidNil, kchidScript2);\n\tDISABLEACCEL(fFalse);\nENDCHUNK\nCREATE_ANIMST(\"Rotate\", kstClosed)\n\tFilterCmdsThis(cidMouseDown, hidNil, chidNil);\n\tFilterCmdsThis(cidKey, hidNil, chidNil);\n\tENABLEACCEL(fFalse);\nENDCHUNK\nCHILD_SCRIPT(\"Rotate, track mouse\", kchidClick)\n\tkid = _parm[0];\n\n\tIf(kid == kidActorsRotate);\n\t\tReturn(fFalse);\n    End;\n\n\tIf((kid != kidActorsRotateX) &&\n\t   (kid != kidActorsRotateY) &&\n\t   (kid != kidActorsRotateZ) &&\n\t   (kid != kidActorsRotateNorm));\n\t    //\n\t\t// Hide this pop-up and pass click through\n\t\t//\n\t\tChangeStateThis(kstClosed);\n\n\t\tIf ((kidBackground->chttActor != chttRotateX) &&\n\t\t\t(kidBackground->chttActor != chttRotateY) &&\n\t\t\t(kidBackground->chttActor != chttRotateZ) &&\n            (kidBackground->chttActor != chttRotateNorm));\n\t\t\tChangeStateGob(kidActorsRotate, kstDefault);\n\t\tEnd;\n\tEnd;\n\n\t//\n\t// Pass clicks thru.\n\t//\n\tReturn(fFalse);\n\nENDCHUNK\nCHILD_SCRIPT(\"Actor Rotate, disable keys\", kchidScript2)\n\tReturn(fTrue);\nENDCHUNK\n\n//\n//\t\tRotate around X axis\n//\nGOBCHUNK(\"Secondary tools - Actor, RotateX\", kidActorsRotateX, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsRotateX, kypActorsRotateX, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsRotateX)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p5rotx.bmp\",\n\tkxpregActorsRotateX, kypregActorsRotateX)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p5rotxs.bmp\",\n\tkxpregActorsRotateX, kypregActorsRotateX)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"RotateX\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidSetTool, khidStudio, chttRotateX, 0, 0, 0);\n\tChangeStateGob(kidBackground->idactDown, kstDefault);\n\tChangeStateGob(kidRotateBackground, kstClosed);\n\tkidBackground->idactDown = kidActorsRotate;\n\tkidBackground->chttActor = chttRotateX;\n\tChangeStateGob(kidActorsRotate, kstSelected);\nENDCHUNK\n\n//\n//\t\tRotate around Y axis\n//\nGOBCHUNK(\"Secondary tools - Actor, RotateY\", kidActorsRotateY, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsRotateY, kypActorsRotateY, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsRotateY)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p5roty.bmp\",\n\tkxpregActorsRotateY, kypregActorsRotateY)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p5rotys.bmp\",\n\tkxpregActorsRotateY, kypregActorsRotateY)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"RotateY\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidSetTool, khidStudio, chttRotateY, 0, 0, 0);\n\tChangeStateGob(kidBackground->idactDown, kstDefault);\n\tChangeStateGob(kidRotateBackground, kstClosed);\n\tkidBackground->idactDown = kidActorsRotate;\n\tkidBackground->chttActor = chttRotateY;\n\tChangeStateGob(kidActorsRotate, kstSelected);\nENDCHUNK\n\n//\n//\t\tRotate around Z axis\n//\nGOBCHUNK(\"Secondary tools - Actor, RotateZ\", kidActorsRotateZ, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsRotateZ, kypActorsRotateZ, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsRotateZ)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p5rotz.bmp\",\n\tkxpregActorsRotateZ, kypregActorsRotateZ)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p5rotzs.bmp\",\n\tkxpregActorsRotateZ, kypregActorsRotateZ)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"RotateZ\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidSetTool, khidStudio, chttRotateZ, 0, 0, 0);\n\tChangeStateGob(kidBackground->idactDown, kstDefault);\n\tChangeStateGob(kidRotateBackground, kstClosed);\n\tkidBackground->idactDown = kidActorsRotate;\n\tkidBackground->chttActor = chttRotateZ;\n\tChangeStateGob(kidActorsRotate, kstSelected);\nENDCHUNK\n\n//\n//\t\tNormalize wrt to rotation\n//\nGOBCHUNK(\"Secondary tools - Actor, RotateNorm\", kidActorsRotateNorm, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsRotateNorm, kypActorsRotateNorm, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsRotateNorm)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p5norm.bmp\",\n\tkxpregActorsRotateNorm, kypregActorsRotateNorm)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p5norms.bmp\",\n\tkxpregActorsRotateNorm, kypregActorsRotateNorm)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"RotateNorm\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidSetTool, khidStudio, chttRotateNorm, 0, 0, 0);\n\tChangeStateGob(kidBackground->idactDown, kstDefault);\n\tChangeStateGob(kidRotateBackground, kstClosed);\n\tkidBackground->idactDown = kidActorsRotate;\n\tkidBackground->chttActor = chttRotateNorm;\n\tChangeStateGob(kidActorsRotate, kstSelected);\nENDCHUNK\n\n\n//\n//\n// Actor transform popup (squash/stretch)\n//\n//\n\n//\n//\t\tBackground\n//\nGOBCHUNK(\"Transform Popup\", kidTransformBackground, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTransformBackground, kypTransformBackground, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstClosed, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstOpen, krepDefault), \"studio\\bmp\\p4par.bmp\", kxpregTransformBackground, kypregTransformBackground )\nADOPT_WAVE(kcnoDropDnWav, CHID(kstOpen, krepEnterAnimation))\nCREATE_SCRIPT(\"Transform\")\n\tCreateChildThis(kidActorsSquash, kidActorsSquash);\n\tCreateChildThis(kidActorsShrink, kidActorsShrink);\n\tCreateChildThis(kidActorsTransformNorm, kidActorsTransformNorm);\nENDCHUNK\nCREATE_ANIMST(\"Transform\", kstOpen)\n\tFilterCmdsThis(cidMouseDown, hidNil, kchidClick);\n\tFilterCmdsThis(cidKey, hidNil, kchidScript2);\n\tDISABLEACCEL(fFalse);\nENDCHUNK\nCREATE_ANIMST(\"Transform\", kstClosed)\n\tFilterCmdsThis(cidMouseDown, hidNil, chidNil);\n\tFilterCmdsThis(cidKey, hidNil, chidNil);\n\tENABLEACCEL(fFalse);\nENDCHUNK\nCHILD_SCRIPT(\"Transform, track mouse\", kchidClick)\n\tkid = _parm[0];\n\n\tIf(kid == kidActorsTransform);\n\t\tReturn(fFalse);\n    End;\n\n\tIf((kid != kidActorsSquash) &&\n\t   (kid != kidActorsShrink) &&\n\t   (kid != kidActorsTransformNorm));\n\t    //\n\t\t// Hide this pop-up and pass click through\n\t\t//\n\t\tChangeStateThis(kstClosed);\n\n\t\tIf ((kidBackground->chttActor != chttSquash) &&\n            (kidBackground->chttActor != chttShrink) &&\n            (kidBackground->chttActor != chttTransformNorm));\n\t\t\tChangeStateGob(kidActorsTransform, kstDefault);\n\t\tEnd;\n\tEnd;\nENDCHUNK\nCHILD_SCRIPT(\"Actor Transform, disable keys\", kchidScript2)\n\tReturn(fTrue);\nENDCHUNK\n\n//\n//\t\tSquash\n//\nGOBCHUNK(\"Secondary tools - Actor, Squash\", kidActorsSquash, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsSquash, kypActorsSquash, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsSquash)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p4sqsh.bmp\",\n\tkxpregActorsSquash, kypregActorsSquash)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p4sqshs.bmp\",\n\tkxpregActorsSquash, kypregActorsSquash)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"Squash/Stretch\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidSetTool, khidStudio, chttSquash, 0, 0, 0);\n\tChangeStateGob(kidBackground->idactDown, kstDefault);\n\tChangeStateGob(kidTransformBackground, kstClosed);\n\tkidBackground->idactDown = kidActorsTransform;\n\tkidBackground->chttActor = chttSquash;\n\tChangeStateGob(kidActorsTransform, kstSelected);\nENDCHUNK\n\n//\n//\t\tStretch\n//\nGOBCHUNK(\"Secondary tools - Actor, Shrink\", kidActorsShrink, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsShrink, kypActorsShrink, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsShrink)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p4shrk.bmp\",\n\tkxpregActorsShrink, kypregActorsShrink)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p4shrks.bmp\",\n\tkxpregActorsShrink, kypregActorsShrink)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"Shrink/Grow\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidSetTool, khidStudio, chttShrink, 0, 0, 0);\n\tChangeStateGob(kidBackground->idactDown, kstDefault);\n\tChangeStateGob(kidTransformBackground, kstClosed);\n\tkidBackground->idactDown = kidActorsTransform;\n\tkidBackground->chttActor = chttShrink;\n\tChangeStateGob(kidActorsTransform, kstSelected);\nENDCHUNK\n\n//\n//\t\tNormalize wrt to squash/stretch\n//\nGOBCHUNK(\"Secondary tools - Actor, TransformNorm\", kidActorsTransformNorm, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsTransformNorm, kypActorsTransformNorm, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsTransformNorm)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p4norm.bmp\",\n\tkxpregActorsTransformNorm, kypregActorsTransformNorm)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p4norms.bmp\",\n\tkxpregActorsTransformNorm, kypregActorsTransformNorm)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"TransformNorm\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidSetTool, khidStudio, chttTransformNorm, 0, 0, 0);\n\tChangeStateGob(kidBackground->idactDown, kstDefault);\n\tChangeStateGob(kidTransformBackground, kstClosed);\n\tkidBackground->idactDown = kidActorsTransform;\n\tkidBackground->chttActor = chttTransformNorm;\n\tChangeStateGob(kidActorsTransform, kstSelected);\nENDCHUNK\n\n\n\n\n//\n//\n// Text box popup for type\n//\n//\n\n//\n//\t\tScroll (Credit) textbox\n//\nGOBCHUNK(\"Scroll Popup\", kidScrollBackground, kgokkRectHit)\n\tDEFAULT_POSITION( 0, 0, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstClosed, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstOpen, krepDefault), \"open\", kxpScrollBackgroundLeft, kypScrollBackgroundTop, kxpScrollBackgroundRight, kxpScrollBackgroundBottom )\nADOPT_WAVE(kcnoDropDnWav, CHID(kstOpen, krepEnterAnimation))\nCREATE_SCRIPT(\"Scroll\")\n\tCreateChildThis(kidTextsScroll, kidTextsScroll);\n\tCreateChildThis(kidTextsStory, kidTextsStory);\nENDCHUNK\nCREATE_ANIMST(\"Scroll\", kstOpen)\n\tFilterCmdsThis(cidMouseDown, hidNil, kchidClick);\n\tFilterCmdsThis(cidKey, hidNil, kchidScript2);\n\tFilterCmdsThis(cidSelIdle, hidNil, kchidScript2);\n\tDISABLEACCEL(fFalse);\n\tChangeStateGob(kidTextsScrollType, kstSelected);\nENDCHUNK\nCREATE_ANIMST(\"Scroll\", kstClosed)\n\tFilterCmdsThis(cidMouseDown, hidNil, chidNil);\n\tFilterCmdsThis(cidKey, hidNil, chidNil);\n\tFilterCmdsThis(cidSelIdle, hidNil, chidNil);\n\tENABLEACCEL(fFalse);\nENDCHUNK\nCHILD_SCRIPT(\"Scroll, track mouse\", kchidClick)\n\tkid = _parm[0];\n\n\tIf(kid == kidTextsScrollType);\n\t\tReturn(fFalse);\n    End;\n\n\tIf((kid != kidTextsScroll) && (kid != kidTextsStory));\n\t    //\n\t\t// Hide this pop-up and pass click through\n\t\t//\n\t\tChangeStateThis(kstClosed);\n\n\t\tIf ((kidBackground->chttTbox != chttTboxStory) &&\n            (kidBackground->chttTbox != chttTboxScroll));\n\t\t\tChangeStateGob(kidTextsScrollType, kstDefault);\n\t\tEnd;\n\tEnd;\nENDCHUNK\nCHILD_SCRIPT(\"Scroll popup, disable\", kchidScript2)\n\tReturn(fTrue);\nENDCHUNK\n\n//\n// \t\tScroll text box\n//\nGOBCHUNK(\"Secondary tools - Text, Scroll\", kidTextsScroll, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTextsScroll, kypTextsScroll, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttTextsScroll)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p7scrl.bmp\",\n\tkxpregTextsScroll, kypregTextsScroll)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p7scrls.bmp\",\n\tkxpregTextsScroll, kypregTextsScroll)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"Scroll Textbox\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidSetTool, khidStudio, chttTboxScroll, 0, 0, 0);\n\tChangeStateGob(kidBackground->idtbxDown, kstDefault);\n\tChangeStateGob(kidScrollBackground, kstClosed);\n\tkidBackground->idtbxDown = kidTextsScrollType;\n\tkidBackground->chttTbox = chttTboxScroll;\n\tChangeStateGob(kidTextsScrollType, kstSelected);\nENDCHUNK\n\n//\n//\t\tStory text box\n//\nGOBCHUNK(\"Secondary tools - Text, Story\", kidTextsStory, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTextsStory, kypTextsStory, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttTextsStory)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p7nscr.bmp\",\n\tkxpregTextsStory, kypregTextsStory)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p7nscrs.bmp\",\n\tkxpregTextsStory, kypregTextsStory)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"Story Textbox\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidSetTool, khidStudio, chttTboxStory, 0, 0, 0);\n\tChangeStateGob(kidBackground->idtbxDown, kstDefault);\n\tChangeStateGob(kidScrollBackground, kstClosed);\n\tkidBackground->idtbxDown = kidTextsScrollType;\n\tkidBackground->chttTbox = chttTboxStory;\n\tChangeStateGob(kidTextsScrollType, kstSelected);\nENDCHUNK\n\n\n"
  },
  {
    "path": "src/studio/portf.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    portf.cpp: Portfolio handler\n\n    Primary Author: ******\n    Review Status: peted has reviewed. Final version not yet approved.\n\n***************************************************************************/\n#include \"studio.h\"\n#include \"commctrl.h\"\n\nASSERTNAME\n\n/***************************************************************************\n\n FPortDisplayWithIds: Display the portfolio to open or save a file. Portfolio\n                    title and filters generated using supplied string ids.\n\n Arguments: fni \t\t\t- Output FNI for file selected\n            fOpen\t\t\t- fTrue if open portfolio, else save portfolio.\n            lFilterLabel\t- id of portfolio filter label\n            lFilterExt\t\t- id of portfolio filter extension\n            lTitle\t\t\t- id of portfolio title\n            lpstrDefExt\t\t- Ptr to string for default file extension for save if required.\n            pstnDefFileName - Ptr to default extension stn if required.\n            pfniInitialDir\t- Ptr to initial directory fni if required.\n            grfPrevType\t\t- Bits for types of preview required, (eg movie, sound etc) == 0 if no preview\n            cnoWave         - Wave cno for audio when portfolio is invoked\n\n Returns: \tTRUE\t- File selected\n            FALSE\t- User canceled portfolio.\n\n***************************************************************************/\nbool FPortDisplayWithIds(FNI *pfni, bool fOpen, long lFilterLabel, long lFilterExt, long lTitle, LPTSTR lpstrDefExt,\n                         PSTN pstnDefFileName, FNI *pfniInitialDir, ulong grfPrevType, CNO cnoWave)\n{\n    STN stnTitle;\n    STN stnFilterLabel;\n    STN stnFilterExt;\n    int cChLabel, cChExt;\n    SZ szFilter;\n    bool fRet;\n\n    AssertVarMem(pfni);\n    AssertNilOrPo(pfniInitialDir, 0);\n    AssertNilOrPo(pstnDefFileName, 0);\n\n    if (!vapp.FGetStnApp(lTitle, &stnTitle))\n        return fFalse;\n\n    // Filter string contain non-terminating null characters, so must\n    // build up string from separate label and file extension strings.\n\n    if (!vapp.FGetStnApp(lFilterLabel, &stnFilterLabel))\n        return fFalse;\n    if (!vapp.FGetStnApp(lFilterExt, &stnFilterExt))\n        return fFalse;\n\n    // Kauai does not like internal null chars in an STN. So build\n    // up the final final string as an SZ.\n\n    cChLabel = stnFilterLabel.Cch();\n    cChExt = stnFilterExt.Cch();\n\n    stnFilterLabel.GetSz(szFilter);\n    stnFilterExt.GetSz(&szFilter[cChLabel + 1]);\n\n    szFilter[cChLabel + cChExt + 2] = chNil;\n\n    // Now display the open or save portfolio as required\n    StopAllMovieSounds();\n    vapp.EnsureInteractive();\n    vapp.SetFInPortfolio(fTrue);\n    if (fOpen)\n    {\n        fRet = FPortGetFniOpen(pfni, szFilter, stnTitle.Prgch(), pfniInitialDir, grfPrevType, cnoWave);\n    }\n    else\n    {\n        fRet = FPortGetFniSave(pfni, szFilter, stnTitle.Prgch(), lpstrDefExt, pstnDefFileName, grfPrevType, cnoWave);\n    }\n\n    // Make sure no portfolio related audio is still playing.\n    vpsndm->StopAll(sqnNil, sclNil);\n    vapp.SetFInPortfolio(fFalse);\n\n    // Let the script know what the outcome is.\n    vpcex->EnqueueCid(cidPortfolioClosed, 0, 0, fRet);\n\n    // We must also enqueue a message for the help system here.\n    // Help doesn't get the above cidPortfolioClosed as it has\n    // already been filtered.\n    vpcex->EnqueueCid(cidPortfolioResult, 0, 0, fRet);\n\n    return fRet;\n}\n\n/***************************************************************************\n\n FPortGetFniOpen: Display the portfolio to open a file.\n\n Arguments: pfni \t\t- Output FNI for file selected\n            lpstrFilter\t- String containing files types to filter on\n            lpstrTitle\t- String containing title of portfolio\n            pfniInitialDir\t- Ptr to initial directory fni if required.\n            grfPrevType\t- Bits for types of preview required, (eg movie, sound etc) == 0 if no preview\n            cnoWave     - Wave cno for audio when portfolio is invoked\n\n Returns: \tTRUE\t- File selected\n            FALSE\t- User canceled portfolio.\n\n***************************************************************************/\nbool FPortGetFniOpen(FNI *pfni, LPTSTR lpstrFilter, LPTSTR lpstrTitle, FNI *pfniInitialDir, ulong grfPrevType,\n                     CNO cnoWave)\n{\n    SZ szFile;\n    DLGINFO diPortfolio;\n    OPENFILENAME ofn;\n    STN stn;\n    bool fOKed;\n    STN stnInitialDir;\n    SZ szInitialDir;\n\n    AssertPo(pfni, 0);\n    AssertNilOrPo(pfniInitialDir, 0);\n\n    ClearPb(&ofn, size(OPENFILENAME));\n    ClearPb(&diPortfolio, size(DLGINFO));\n\n    szFile[0] = 0;\n    ofn.lStructSize = size(OPENFILENAME);\n    ofn.hwndOwner = vwig.hwndApp;\n    ofn.hInstance = vwig.hinst;\n    ofn.nFilterIndex = 1L;\n    ofn.lpstrCustomFilter = NULL;\n    ofn.lpstrFile = szFile;\n    ofn.nMaxFile = kcchMaxSz;\n    ofn.lpstrFileTitle = NULL;\n    ofn.lpfnHook = OpenHookProc;\n    ofn.lpTemplateName = MAKEINTRESOURCE(dlidPortfolio);\n    ofn.Flags = OFN_FILEMUSTEXIST | OFN_HIDEREADONLY | OFN_EXPLORER | OFN_ENABLEHOOK | OFN_ENABLETEMPLATE;\n    ofn.FlagsEx = OFN_EX_NOPLACESBAR;\n\n    // lpstrDefExt is used for appended to the user typed filename is\n    // one is entered without an extension. As the user cannot type\n    // anything during a portfolio open, we don't use the lpstrDefExt here.\n    ofn.lpstrDefExt = NULL;\n\n    // Initialize internal data for accessing from inside dlg hook proc.\n    diPortfolio.fIsOpen = fTrue;\n    diPortfolio.fDrawnBkgnd = fFalse;\n    diPortfolio.grfPrevType = grfPrevType;\n    diPortfolio.cnoWave = cnoWave;\n    ofn.lCustData = (DWORD)&diPortfolio;\n\n    ofn.lpstrFilter = lpstrFilter;\n    ofn.lpstrTitle = lpstrTitle;\n\n    // Get the string for the initial directory if required.\n\n    if (pfniInitialDir != pvNil)\n    {\n        pfniInitialDir->GetStnPath(&stnInitialDir);\n        stnInitialDir.GetSz(szInitialDir);\n        ofn.lpstrInitialDir = szInitialDir;\n    }\n    else\n    {\n        // Initial directory will be current directory.\n        ofn.lpstrInitialDir = pvNil;\n    }\n\n    // Now display the portfolio.\n    fOKed = (GetOpenFileName(&ofn) == FALSE ? fFalse : fTrue);\n\n    if (!fOKed)\n    {\n        // Check if custom common dlg failed to initialize.\tDon't rely on the returned\n        // error being CDERR_INITIALIZATION, as who knows what error will be returned\n        // in future versions.\n        if (CommDlgExtendedError() != NOERROR)\n        {\n            // User never saw portfolio. Therefore attempt to display\n            // common dlg with no customization.\n            ofn.Flags &= ~(OFN_EXPLORER | OFN_ENABLEHOOK | OFN_ENABLETEMPLATE);\n\n            fOKed = (GetOpenFileName(&ofn) == FALSE ? fFalse : fTrue);\n        }\n    }\n\n    // If the user selected a file, build up the associated fni.\n    if (fOKed)\n    {\n        stn.SetSz(ofn.lpstrFile);\n\n        pfni->FBuildFromPath(&stn, 0);\n    }\n\n    // Update the app window to make sure no parts of the portfolio\n    // window are left on the screen while the file is being opened.\n    // Calling UpdateMarked() does not have the desired effect here.\n    UpdateWindow(vwig.hwndApp);\n\n    // Report error to user if never displayed the portfolio.\n    if (CommDlgExtendedError() != NOERROR)\n    {\n        PushErc(ercSocPortfolioFailed);\n    }\n\n    // Only return TRUE if the user selected a file.\n    return (fOKed);\n}\n\n/***************************************************************************\n\n pfGetFniSave: Display the save portfolio.\n\n Arguments: pfni\t\t- Output FNI for file selected\n            lpstrFilter\t- String containing files types to filter on\n            lpstrTitle\t- String containing title of portfolio\n            lpstrDefExt\t- String containing default extension for filenames\n                            typed by user without an extension.\n            pstnDefFileName - Ptr to default extension stn if required.\n            grfPrevType\t- Bits for types of preview required, (eg movie, sound etc) == 0 if no preview\n            cnoWave     - Wave cno for audio when portfolio is invoked\n\n Returns: \tTRUE\t- File selected\n            FALSE\t- User canceled portfolio, (or other error).\n\n***************************************************************************/\nbool FPortGetFniSave(FNI *pfni, LPTSTR lpstrFilter, LPTSTR lpstrTitle, LPTSTR lpstrDefExt, PSTN pstnDefFileName,\n                     ulong grfPrevType, CNO cnoWave)\n{\n    DLGINFO diPortfolio;\n    OPENFILENAME ofn;\n    bool fOKed;\n    bool tRet;\n    bool fRedisplayPortfolio = fFalse;\n    bool fExplorer = fTrue;\n    STN stnFile, stnErr;\n    FNI fniUserDir;\n    STN stnUserDir;\n    SZ szUserDir;\n    SZ szDefFileName;\n    SZ szFileTitle;\n\n    AssertPo(pfni, 0);\n    AssertNilOrPo(pstnDefFileName, 0);\n\n    ClearPb(&ofn, size(OPENFILENAME));\n    ClearPb(&diPortfolio, size(DLGINFO));\n\n    szFileTitle[0] = chNil;\n\n    ofn.lStructSize = size(OPENFILENAME);\n    ofn.hwndOwner = vwig.hwndApp;\n    ofn.hInstance = vwig.hinst;\n    ofn.nFilterIndex = 1L;\n    ofn.lpstrCustomFilter = NULL;\n    ofn.nMaxFile = kcchMaxSz;\n    ofn.lpstrFileTitle = szFileTitle;\n    ofn.nMaxFileTitle = kcchMaxSz;\n    ofn.lpfnHook = OpenHookProc;\n    ofn.lpTemplateName = MAKEINTRESOURCE(dlidPortfolio);\n\n    // Don't use OFN_OVERWRITEPROMPT here, otherwise we can't intercept\n    // the btn press on the Save btn to display our own message. Note,\n    // we don't do that either, because the help topic display mechanism\n    // was not designed for use within a modal dlg box such as the portfolio.\n    // Instead query overwrite after the portfolio has closed.\n    ofn.Flags = OFN_PATHMUSTEXIST | OFN_HIDEREADONLY | OFN_EXPLORER | OFN_ENABLEHOOK | OFN_ENABLETEMPLATE;\n    ofn.FlagsEx = OFN_EX_NOPLACESBAR;\n\n    // Do not allow the save portfolio to change the current directory.\n    ofn.Flags |= OFN_NOCHANGEDIR;\n\n    // Let the initial dir be the user's dir.\n    vapp.GetFniUser(&fniUserDir);\n    fniUserDir.GetStnPath(&stnUserDir);\n    stnUserDir.GetSz(szUserDir);\n    ofn.lpstrInitialDir = szUserDir;\n\n    // Initialize internal data for accessing from inside dlg hook proc.\n    diPortfolio.fIsOpen = fFalse;\n    diPortfolio.fDrawnBkgnd = fFalse;\n    diPortfolio.grfPrevType = grfPrevType;\n    diPortfolio.cnoWave = cnoWave;\n    ofn.lCustData = (DWORD)&diPortfolio;\n\n    ofn.lpstrFilter = lpstrFilter;\n    ofn.lpstrTitle = lpstrTitle;\n    ofn.lpstrDefExt = lpstrDefExt;\n\n    // Set the the portfolio default save file name if required.\n    if (pstnDefFileName != pvNil)\n    {\n        pstnDefFileName->GetSz(szDefFileName);\n    }\n    else\n    {\n        szDefFileName[0] = chNil;\n    }\n\n    ofn.lpstrFile = szDefFileName;\n\n    // We may need to display the portfolio multiple times if the user\n    // selects an existing file, and then says they don't want to overwrite it.\n\n    do // Display portfolio\n    {\n        fRedisplayPortfolio = fFalse;\n\n        // Now display the portfolio.\n        fOKed = (GetSaveFileName(&ofn) == FALSE ? fFalse : fTrue);\n\n        if (!fOKed)\n        {\n            DWORD dwRet;\n\n            // Check if custom common dlg failed to initialize.\tDon't rely on the returned\n            // error being CDERR_INITIALIZATION, as who knows what error will be returned\n            // in future versions.\n            if ((dwRet = CommDlgExtendedError()) != NOERROR)\n            {\n                if (dwRet == FNERR_INVALIDFILENAME || dwRet == FNERR_BUFFERTOOSMALL)\n                {\n                    // Set the the portfolio default save file name if required.\n                    if (pstnDefFileName != pvNil)\n                    {\n                        pstnDefFileName->GetSz(szDefFileName);\n                    }\n                    else\n                    {\n                        szDefFileName[0] = chNil;\n                    }\n                    ofn.lpstrFile = szDefFileName;\n\n                    PushErc(ercSocInvalidFilename);\n                    fRedisplayPortfolio = fTrue;\n                }\n                else if (dwRet == CDERR_INITIALIZATION && fExplorer)\n                {\n                    // User never saw portfolio. Therefore attempt to display\n                    // common dlg with no customization.\n                    ofn.Flags &= ~(OFN_EXPLORER | OFN_ENABLEHOOK | OFN_ENABLETEMPLATE);\n                    fRedisplayPortfolio = fTrue;\n                    fExplorer = fFalse;\n                }\n                else\n                    PushErc(ercSocPortfolioFailed);\n\n                vapp.DisplayErrors();\n                continue;\n            }\n        }\n        else\n        {\n            // Build stn if user selected a file.\n            stnFile.SetSz(ofn.lpstrFile);\n\n            // Query any attempt to overwrite an existing file now.\n            if (CchSz(ofn.lpstrFile) != 0)\n            {\n                bool tExists;\n\n                // We always save the file with the default extension. If the\n                // user used a different extension, add the default on the end.\n                if (ofn.Flags & OFN_EXTENSIONDIFFERENT)\n                {\n                    stnFile.FAppendCh('.');\n                    stnFile.FAppendSz(lpstrDefExt);\n                }\n\n                // Make sure the pfni is built from the appended file name if applicable.\n                pfni->FBuildFromPath(&stnFile, 0);\n\n                if ((tExists = pfni->TExists()) != tNo)\n                {\n                    long cch;\n                    achar *pch;\n                    // File already exists. Query user for overwrite.\n\n                    // The default name supplied to the user will only\n                    // be the file name without the path.\n                    stnFile.SetSz(ofn.lpstrFileTitle);\n\n                    /* Remove the extension */\n                    cch = stnFile.Cch();\n                    pch = stnFile.Psz() + cch;\n                    while (cch--)\n                    {\n                        pch--;\n                        if (*pch == ChLit('.'))\n                        {\n                            stnFile.Delete(cch);\n                            break;\n                        }\n                    }\n                    stnFile.GetSz(ofn.lpstrFile);\n\n                    // Only query if we know for sure the file's there.  If\n                    // it's not known for sure the file's there, just make the\n                    // user pick a new name.\n                    if (tExists == tYes)\n                    {\n                        AssertDo(vapp.FGetStnApp(idsReplaceFile, &stnErr), \"String not present\");\n                        tRet = vapp.TModal(vapp.PcrmAll(), ktpcQueryOverwrite, &stnErr, bkYesNo, kstidQueryOverwrite,\n                                           &stnFile);\n                    }\n                    else\n                    {\n                        vapp.DisplayErrors();\n                        tRet = tNo;\n                    }\n\n                    // Redisplay the portfolio if no overwrite.\n                    if (tRet == tNo)\n                    {\n                        fRedisplayPortfolio = fTrue;\n\n                        // Make sure the app window is updated, otherwise the help topic\n                        // may still be displayed while the portfolio is redisplayed.\n                        InvalidateRect(vwig.hwndApp, NULL, TRUE);\n                        UpdateWindow(vwig.hwndApp);\n                    }\n                }\n            }\n            else\n            {\n                // The user OKed the selection, and yet with have a zero length file name.\n                // Something must have gone wrong with the common dialog. Treat this as a\n                // cancel of the portfolio. (Remember we have not set up pfni in this case.)\n                Bug(\"Portfolio selection of a file with no name\");\n\n                fOKed = fFalse;\n            }\n        }\n    } while (fRedisplayPortfolio);\n\n    // If the user selected a file, build up the associated fni.\n    if (!fOKed)\n    {\n        pfni->SetNil();\n    }\n\n    // Update the app window to make sure no parts of the portfolio\n    // window are left on the screen while the file is being saved.\n    // Calling UpdateMarked() does not have the desired effect here.\n    UpdateWindow(vwig.hwndApp);\n\n    // Report error to user if never displayed the portfolio.\n    if (CommDlgExtendedError() != NOERROR)\n    {\n        PushErc(ercSocPortfolioFailed);\n    }\n\n    // Only return fTrue if the user selected a file.\n    return (fOKed);\n}\n\n/***************************************************************************\n\n OpenHookProc: Hook proc for get open/save common dlg.\n\n Arguments: standard dialog proc args.\n\n Returns: TRUE  - Common dlg will ignore message\n          FALSE - Common dlg will process this message after custom dlg.\n\n Note - on win95, hwndCustom is the handle to the custom dlg created as a\n child of the common dlg.\n\n***************************************************************************/\nUINT CALLBACK OpenHookProc(HWND hwndCustom, UINT msg, UINT wParam, LONG lParam)\n{\n    switch (msg)\n    {\n    case WM_INITDIALOG: {\n        PDLGINFO pdiPortfolio;\n        LONG lwStyle, lwExstyle;\n        OPENFILENAME *lpOfn;\n        HWND hwndDlg;\n        RC rc;\n        WNDPROC lpOtherBtnProc;\n\n        lpOfn = (OPENFILENAME *)lParam;\n        pdiPortfolio = (PDLGINFO)(lpOfn->lCustData);\n\n        SetWindowLong(hwndCustom, GWL_USERDATA, (LONG)pdiPortfolio);\n\n        hwndDlg = GetParent(hwndCustom);\n\n        // Give ourselves a way to access the custom dlg hwnd\n        // from the common dlg subclass wndproc.\n        SetWindowLong(hwndDlg, GWL_USERDATA, (LONG)hwndCustom);\n\n        // Hide common dlg controls that we're not interested in here. Use the Common Dialog\n        // Message for hiding the control. The documentation on CDM_HIDECONTROL doesn't really\n        // describe what the command actually does, so explictly disable the OK/Cancel btns here.\n\n        SendMessage(hwndDlg, CDM_HIDECONTROL, stc2, 0L); // File type label\n        EnableWindow(GetDlgItem(hwndDlg, stc2), FALSE);\n\n        SendMessage(hwndDlg, CDM_HIDECONTROL, cmb1, 0L); // File type combo box\n        EnableWindow(GetDlgItem(hwndDlg, cmb1), FALSE);\n\n        SendMessage(hwndDlg, CDM_HIDECONTROL, cmb13, 0L); // Filename entry box\n        EnableWindow(GetDlgItem(hwndDlg, cmb13), FALSE);\n\n        SendMessage(hwndDlg, CDM_HIDECONTROL, chx1, 0L); // Open as Read-only check box\n        EnableWindow(GetDlgItem(hwndDlg, chx1), FALSE);\n\n        // Even though we are hiding the OK/Cancel buttons, do not disable them.\n        // By doing this, we retain some default common dialog behavior. When the\n        // user hits the Enter key the highlighted file will be selected, and when\n        // the user hits the Escape key the portfolio is dismissed.\n\n        SendMessage(hwndDlg, CDM_HIDECONTROL, IDOK, 0L);     // OK btn.\n        SendMessage(hwndDlg, CDM_HIDECONTROL, IDCANCEL, 0L); // Cancel btn.\n\n        SendMessage(hwndDlg, CDM_HIDECONTROL, stc3, 0L); // 'File Name'\n        EnableWindow(GetDlgItem(hwndDlg, stc3), FALSE);\n\n        if (pdiPortfolio->fIsOpen)\n        {\n            SendMessage(hwndDlg, CDM_HIDECONTROL, edt1, 0L); // File name edit ctrl\n            EnableWindow(GetDlgItem(hwndDlg, edt1), FALSE);\n        }\n\n        // If no preview required then hide the preview window.\n\n        if (pdiPortfolio->grfPrevType == 0)\n        {\n            SendMessage(hwndCustom, CDM_HIDECONTROL, IDC_PREVIEW, 0L);\n            EnableWindow(GetDlgItem(hwndCustom, IDC_PREVIEW), FALSE);\n        }\n\n        // Give the main common dlg the required style for custom display.\n        // This means remove the caption bar, the system menu and the thick border.\n        // Note, We do not need a frame round the window, as we customize its\n        // background entirely. Therefore we should remove WS_CAPTION, (which is\n        // WS_BORDER | WS_DLGFRAME), and WS_EX_DLGMODALFRAME. However, if we do\n        // this, then when the user navigates around the list box in the dialog,\n        // the app window gets repainted. Presumably this is due to win95\n        // invalidating an area slightly larger than the dlg without any border.\n        // Therefore maintain the thin border.\n\n        lwStyle = GetWindowLong(hwndDlg, GWL_STYLE);\n        lwStyle &= ~(WS_DLGFRAME | WS_SYSMENU);\n        SetWindowLong(hwndDlg, GWL_STYLE, lwStyle);\n\n        lwExstyle = GetWindowLong(hwndDlg, GWL_EXSTYLE);\n        lwExstyle &= ~WS_EX_DLGMODALFRAME;\n        SetWindowLong(hwndDlg, GWL_EXSTYLE, lwExstyle);\n\n        // IMPORTANT NOTE. Cannot move or size the portfolio here. Otherwise this\n        // confuses win95 when it calculates whether all the controls fit in the\n        // common dlg or not. Instead we must wait for the INITDONE notification.\n        // Note, since the portfolio is full screen now, we don't need to move\n        // the window anyway..\n\n        // Subclass the push btns to prevent the background flashing in the default color.\n        lpBtnProc = (WNDPROC)SetWindowLong(GetDlgItem(hwndCustom, IDC_BUTTON1), GWL_WNDPROC, (LONG)SubClassBtnProc);\n\n        lpOtherBtnProc =\n            (WNDPROC)SetWindowLong(GetDlgItem(hwndCustom, IDC_BUTTON2), GWL_WNDPROC, (LONG)SubClassBtnProc);\n        Assert(lpBtnProc == lpOtherBtnProc, \"Custom portfolio buttons (ok/cancel) have different window procs\");\n\n        lpOtherBtnProc =\n            (WNDPROC)SetWindowLong(GetDlgItem(hwndCustom, IDC_BUTTON3), GWL_WNDPROC, (LONG)SubClassBtnProc);\n        Assert(lpBtnProc == lpOtherBtnProc, \"Custom portfolio buttons (ok/home) have different window procs\");\n\n        // Subclass the preview window to allow custom draw.\n        lpPreviewProc =\n            (WNDPROC)SetWindowLong(GetDlgItem(hwndCustom, IDC_PREVIEW), GWL_WNDPROC, (LONG)SubClassPreviewProc);\n\n        // Subclass the main common dlg window to stop static control backgrounds being\n        // fill with the current system color. Instead use a color that matches our\n        // custom background bitmap.\n        lpDlgProc = (WNDPROC)SetWindowLong(hwndDlg, GWL_WNDPROC, (LONG)SubClassDlgProc);\n\n        // For the save portfolio we want the file name control to have focus when displayed.\n        if (!pdiPortfolio->fIsOpen)\n        {\n            SetFocus(GetDlgItem(hwndDlg, edt1));\n\n            // Select all the text in the file name edit control.\n            SendMessage(GetDlgItem(hwndDlg, edt1), EM_SETSEL, 0, -1);\n\n            return (1);\n        }\n\n        // Allow Windows to set the focus wherever it wants to.\n        return (0);\n    }\n    case WM_COMMAND: {\n        // If the user has clicked on one of our custom buttons, then\n        // simulate a click on one of the hidden common dlg buttons.\n\n        if (HIWORD(wParam) == BN_CLICKED)\n        {\n            switch (LOWORD(wParam))\n            {\n            case IDC_BUTTON1:\n\n                PostMessage(GetParent(hwndCustom), WM_COMMAND, IDOK, 0);\n                return (1);\n\n            case IDC_BUTTON2:\n\n                PostMessage(GetParent(hwndCustom), WM_COMMAND, IDCANCEL, 0);\n                return (1);\n\n            case IDC_BUTTON3: {\n                FNI fniUserDir;\n                STN stnUserDir;\n                SZ szUserDir;\n                SZ szCurFile;\n                HWND hwndDlg = GetParent(hwndCustom);\n\n                // The user has pressed the Go To User's Home Folder btn. So get a SZ\n                // for the user's home folder.\n\n                vapp.GetFniUser(&fniUserDir);\n                fniUserDir.GetStnPath(&stnUserDir);\n                stnUserDir.GetSz(szUserDir);\n\n                // Ideally there would be some CDM_ message here to tell the common dialog\n                // that the current folder is to be changed. Unfortunately there is no such\n                // message. There is also no recommended way of doing this. Note that if we\n                // call SetCurrentDirectory here, then the common dialog is oblivious of the\n                // folder change.\n\n                // SO, we shall simulate a folder change by the user. Do this by filling\n                // the file name edit control with the target folder, and then sending an\n                // OK message to the common dlg.\n\n                // This would be enough to change the folder, but we would lose the current\n                // contents of the file name control. Therefore store the control contents\n                // before we overwrite it, and reset it afterwards. Ideally there would be\n                // some message to retrieve the contents of a control, (eg CDM_GETCONTROLTEXT),\n                // but there isn't, so use a regular Windows call for this.\n\n                // Get the current text for the control.\n                GetDlgItemText(hwndDlg, edt1, szCurFile, sizeof(szCurFile));\n\n                // Now change folder!\n                SendMessage(hwndDlg, CDM_SETCONTROLTEXT, edt1, (LPARAM)szUserDir);\n                SendMessage(hwndDlg, WM_COMMAND, IDOK, 0);\n\n                // Restore the edit control text.\n                SendMessage(hwndDlg, CDM_SETCONTROLTEXT, edt1, (LPARAM)szCurFile);\n\n                return (1);\n            }\n            default:\n                break;\n            }\n        }\n\n        break;\n    }\n    case WM_DRAWITEM: {\n        int iDlgId = (int)wParam;\n        DRAWITEMSTRUCT *pDrawItem = (DRAWITEMSTRUCT *)lParam;\n        CNO cnoDisplay = cnoNil;\n        PMBMP pmbmp;\n\n        // Custom draw the our push btns here.\n        switch (iDlgId)\n        {\n        case IDC_BUTTON1:\n\n            if (pDrawItem->itemState & ODS_SELECTED)\n            {\n                cnoDisplay = kcnoMbmpPortBtnOkSel;\n            }\n            else\n            {\n                cnoDisplay = kcnoMbmpPortBtnOk;\n            }\n\n            break;\n\n        case IDC_BUTTON2:\n\n            if (pDrawItem->itemState & ODS_SELECTED)\n            {\n                cnoDisplay = kcnoMbmpPortBtnCancelSel;\n            }\n            else\n            {\n                cnoDisplay = kcnoMbmpPortBtnCancel;\n            }\n\n            break;\n\n        case IDC_BUTTON3:\n\n            if (pDrawItem->itemState & ODS_SELECTED)\n            {\n                cnoDisplay = kcnoMbmpPortBtnHomeSel;\n            }\n            else\n            {\n                cnoDisplay = kcnoMbmpPortBtnHome;\n            }\n\n            break;\n\n        default:\n\n            break;\n        }\n\n        if (cnoDisplay != cnoNil)\n        {\n            // Select the appropriate bitmap to display.\n\n            if ((pmbmp = (PMBMP)vpapp->PcrmAll()->PbacoFetch(kctgMbmp, cnoDisplay, MBMP::FReadMbmp)))\n            {\n                PGPT pgpt;\n                HPEN hpen, hpenold;\n                HBRUSH hbr, hbrold;\n                HFONT hfnt, hfntold;\n\n                // To ensure that we don't return from here with different objects\n                // selected in the supplied hdc, save them here and restore later.\n                // (Note that Kauai will attempt to delete things it finds selected\n                // in the hdc passed to PgptNew).\n\n                hpen = (HPEN)GetStockObject(NULL_PEN);\n                Assert(hpen != hNil, \"Portfolio - draw items GetStockObject(NULL_PEN) failed\");\n                hpenold = (HPEN)SelectObject(pDrawItem->hDC, hpen);\n\n                hbr = (HBRUSH)GetStockObject(WHITE_BRUSH);\n                Assert(hbr != hNil, \"Portfolio - draw items GetStockObject(WHITE_BRUSH) failed\");\n                hbrold = (HBRUSH)SelectObject(pDrawItem->hDC, hbr);\n\n                hfnt = (HFONT)GetStockObject(SYSTEM_FONT);\n                Assert(hfnt != hNil, \"Portfolio - draw items GetStockObject(SYSTEM_FONT) failed\");\n                hfntold = (HFONT)SelectObject(pDrawItem->hDC, hfnt);\n\n                if ((pgpt = GPT::PgptNew(pDrawItem->hDC)) != pvNil)\n                {\n                    GNV gnv(pgpt);\n                    PGNV pgnvOff;\n                    PGPT pgptOff;\n                    RC rcItem(pDrawItem->rcItem);\n\n                    // Must create offscreen dc and blit into that. Then blit that\n                    // to dlg on screen. If we blit straight from mbmp to screen,\n                    // then screen flashes. (Due to white fillrect).\n\n                    if ((pgptOff = GPT::PgptNewOffscreen(&rcItem, 8)) != pvNil)\n                    {\n                        if ((pgnvOff = NewObj GNV(pgptOff)) != pvNil)\n                        {\n                            pgnvOff->DrawMbmp(pmbmp, rcItem.xpLeft, rcItem.ypTop);\n\n                            gnv.CopyPixels(pgnvOff, &rcItem, &rcItem);\n                            GPT::Flush();\n\n                            ReleasePpo(&pgnvOff);\n                        }\n\n                        ReleasePpo(&pgptOff);\n                    }\n\n                    ReleasePpo(&pgpt);\n                }\n\n                // Restore the currently secleted objects back into he supplied hdc.\n\n                SelectObject(pDrawItem->hDC, hpenold);\n                SelectObject(pDrawItem->hDC, hbrold);\n                SelectObject(pDrawItem->hDC, hfntold);\n\n                ReleasePpo(&pmbmp);\n            }\n\n            return (1);\n        }\n\n        break;\n    }\n    case WM_NOTIFY: {\n        LPOFNOTIFY lpofNotify = (LPOFNOTIFY)lParam;\n\n        switch (lpofNotify->hdr.code)\n        {\n        case CDN_INITDONE: {\n            // Win95 has finished doing any resizing of the custom dlg and the controls.\n            // So take any special action now to ensure the portfolio still looks good.\n\n            PDLGINFO pdiPortfolio = (PDLGINFO)GetWindowLong(hwndCustom, GWL_USERDATA);\n            RCS rcsApp;\n            POINT ptBtn;\n            int ypBtn;\n            PMBMP pmbmpBtn;\n            RC rcBmp;\n            RCS rcsAppScreen, rcsPreview;\n            int xOff = 0;\n            int yOff = 0;\n            LONG lStyle;\n            PCRF pcrf;\n            HWND hwndDlg = GetParent(hwndCustom);\n            HWND hwndApp = GetParent(hwndDlg);\n            HWND hwndPreview = GetDlgItem(hwndCustom, IDC_PREVIEW);\n\n            // Store the current size of the portfolio. We need this later when we stretch\n            // the background bitmap to match how win95 may have stretched the dlg controls.\n            GetClientRect(hwndDlg, &(pdiPortfolio->rcsDlg));\n\n            // Get the client area size of the app window.\n            GetClientRect(hwndApp, &rcsApp);\n\n            // Now move the custom buttons to always be to the right of the preview window.\n            // Make sure we keep the buttons above the bottom of the screen.\n\n            GetClientRect(hwndPreview, &rcsPreview);\n            ptBtn.x = rcsPreview.right;\n            ptBtn.y = (rcsPreview.top + rcsPreview.bottom) / 2;\n            MapWindowPoints(hwndPreview, hwndCustom, (POINT *)&ptBtn, 1);\n\n            // First the home button.\n            if ((pmbmpBtn = (PMBMP)vpapp->PcrmAll()->PbacoFetch(kctgMbmp, kcnoMbmpPortBtnHome, MBMP::FReadMbmp)))\n            {\n                pmbmpBtn->GetRc(&rcBmp);\n\n                ptBtn.x += (3 * rcBmp.Dxp()) / 4;\n                ypBtn = min(ptBtn.y - (rcBmp.Dyp() / 2), rcsApp.bottom - (2 * rcBmp.Dyp()));\n\n                SetWindowPos(GetDlgItem(hwndCustom, IDC_BUTTON3), 0, ptBtn.x, ypBtn, rcBmp.Dxp(), rcBmp.Dyp(),\n                             SWP_NOZORDER);\n\n                ReleasePpo(&pmbmpBtn);\n            }\n\n            // Now the cancel button.\n            if ((pmbmpBtn = (PMBMP)vpapp->PcrmAll()->PbacoFetch(kctgMbmp, kcnoMbmpPortBtnCancel, MBMP::FReadMbmp)))\n            {\n                pmbmpBtn->GetRc(&rcBmp);\n\n                ptBtn.x += (5 * rcBmp.Dxp()) / 4;\n                ypBtn = min(ptBtn.y - (rcBmp.Dyp() / 2), rcsApp.bottom - (2 * rcBmp.Dyp()));\n\n                SetWindowPos(GetDlgItem(hwndCustom, IDC_BUTTON2), 0, ptBtn.x, ypBtn, rcBmp.Dxp(), rcBmp.Dyp(),\n                             SWP_NOZORDER);\n\n                ReleasePpo(&pmbmpBtn);\n            }\n\n            // Now the ok button.\n            if ((pmbmpBtn = (PMBMP)vpapp->PcrmAll()->PbacoFetch(kctgMbmp, kcnoMbmpPortBtnOk, MBMP::FReadMbmp)))\n            {\n                pmbmpBtn->GetRc(&rcBmp);\n\n                ptBtn.x += (5 * rcBmp.Dxp()) / 4;\n                ypBtn = min(ptBtn.y - (rcBmp.Dyp() / 2), rcsApp.bottom - (2 * rcBmp.Dyp()));\n\n                SetWindowPos(GetDlgItem(hwndCustom, IDC_BUTTON1), 0, ptBtn.x, ypBtn, rcBmp.Dxp(), rcBmp.Dyp(),\n                             SWP_NOZORDER);\n\n                ReleasePpo(&pmbmpBtn);\n            }\n\n            // Note, win95 may have pushed the portfolio around depending on where the task bar is.\n            // Ensure that the top left corner of the portfolio is in the top left of the client\n            // area of the app window. Note that the common dlg is owned by the app window, but\n            // it is not a child window itself.\n\n            // Note, if we MapWindowPoints on (0,0) here, then the returned coords are shifted by\n            // the task bar which is just what we don't want. So GetWindowRect instead.\n            GetWindowRect(hwndApp, &rcsAppScreen);\n\n            // If running in a window, then we must find the offset from the top left of the app\n            // window's corner to its client area.\n            lStyle = GetWindowLong(hwndApp, GWL_STYLE);\n\n            if (lStyle & WS_CAPTION)\n            {\n                xOff = GetSystemMetrics(SM_CXDLGFRAME);\n\n                yOff = GetSystemMetrics(SM_CYDLGFRAME);\n                yOff += GetSystemMetrics(SM_CYCAPTION);\n            }\n\n            // Now move the common dialog itself. Resize the dialog too, to be the same size\n            // as the app window.\n            SetWindowPos(hwndDlg, 0, rcsAppScreen.left + xOff, rcsAppScreen.top + yOff, rcsApp.right, rcsApp.bottom,\n                         SWP_NOZORDER);\n\n            // Custom dialog is a child of the common dlg, so (0, 0) wil position it it the common\n            // dialog's client area.\n            SetWindowPos(hwndCustom, 0, 0, 0, rcsApp.right, rcsApp.bottom, SWP_NOZORDER);\n\n            // Now play the sound associated with this portfolio is there is one.\n            // Note that we are not currently queueing this sound or terminating\n            // any currently playing sound.\n            if (pdiPortfolio->cnoWave != cnoNil)\n            {\n                // There is a sound for the portfolio, so find it.\n                if ((pcrf = ((APP *)vpappb)->PcrmAll()->PcrfFindChunk(kctgWave, pdiPortfolio->cnoWave)) != pvNil)\n                {\n                    vpsndm->SiiPlay(pcrf, kctgWave, pdiPortfolio->cnoWave);\n                }\n            }\n\n            break;\n        }\n        case CDN_SELCHANGE: {\n            HWND hwndPreview = GetDlgItem(hwndCustom, IDC_PREVIEW);\n\n            // User has changed the file selected, so update the preview window.\n            InvalidateRect(hwndPreview, NULL, FALSE);\n            UpdateWindow(hwndPreview);\n\n            break;\n        }\n#ifdef QUERYINPORTFOLIO\n            // Do this if we ever have a way of querying the user with a help topic\n            // from inside the portfolio.\n        case CDN_FILEOK: {\n            PDLGINFO pdiPortfolio = (PDLGINFO)GetWindowLong(hwndCustom, GWL_USERDATA);\n\n            // User has hit OK or Save. Is the user trying to save over an existing file?\n            if (pdiPortfolio->fIsOpen != fTrue)\n            {\n                // Neither CommDlg_OpenSave_GetFilePath nor CommDlg_OpenSave_GetSpec\n                // always return the string with the default extension already added\n                // if applicable. Therefore get the file name from the returned OFN\n                // structure, as this stores the complete file name.\n\n                if (CchSz(lpofNotify->lpOFN->lpstrFile) != 0)\n                {\n                    FNI fni;\n                    STN stnFile, stnErr;\n                    bool fHelp, tRet;\n                    long lSelect;\n\n                    // Now does the specified file already exist?\n\n                    stnFile.SetSz(lpofNotify->lpOFN->lpstrFile);\n\n                    fni.FBuildFromPath(&stnFile, 0);\n\n                    if (fni.TExists() != tNo)\n                    {\n                        if (vpappb->TGiveAlertSz(\"The selected file already exists.\\n\\nDo you want to overwrite it?\",\n                                                 bkYesNo, cokQuestion) != tYes)\n                        {\n                            // Move the focus back to the file name edit ctrl.\n                            SetFocus(GetDlgItem(GetParent(hwndCustom), edt1));\n\n                            // Let win95 know that the portfolio is to stay up.\n                            SetWindowLong(hwndCustom, DWL_MSGRESULT, 1);\n                            return (1);\n                        }\n                    }\n                }\n            }\n\n            break;\n        }\n#endif // QUERYINPORTFOLIO\n        default: {\n            break;\n        }\n        }\n\n        break;\n    }\n    case WM_ERASEBKGND:\n\n        // We never want the background painted in the system colors.\n        return (1);\n\n    case WM_PAINT: {\n        PDLGINFO pdiPortfolio;\n\n        pdiPortfolio = (PDLGINFO)GetWindowLong(hwndCustom, GWL_USERDATA);\n\n        // Repaint the entire portfolio.\n        RepaintPortfolio(hwndCustom);\n\n        // Now the background is drawn, disallow erasing of the background in the\n        // system color before each future repaint.\n        pdiPortfolio->fDrawnBkgnd = fTrue;\n\n        return (1);\n    }\n    default:\n\n        break;\n    }\n\n    return (0);\n}\n\n/***************************************************************************\n\n RepaintPortfolio: Repaint the entire portfolio.\n\n Arguments: hwndCustom\t- Handle to our custom dialog, ie child of the main common dlg.\n\n Returns: \tnothing\n\n***************************************************************************/\nvoid RepaintPortfolio(HWND hwndCustom)\n{\n    PAINTSTRUCT ps;\n    TEXTMETRIC tmCaption;\n    SZ szCaption;\n    PDLGINFO pdiPortfolio = (PDLGINFO)GetWindowLong(hwndCustom, GWL_USERDATA);\n    PMBMP pmbmp, pmbmpBtn;\n    int iBtn;\n    CNO cnoBack;\n\n    // Draw the custom background for the common dlg.\n    BeginPaint(hwndCustom, &ps);\n\n    // Display the open or save portfolio background bitmap as appropriate.\n    if (pdiPortfolio->fIsOpen)\n    {\n        cnoBack = kcnoMbmpPortBackOpen;\n    }\n    else\n    {\n        cnoBack = kcnoMbmpPortBackSave;\n    }\n\n    // Get the background bitmap first.\n    if ((pmbmp = (PMBMP)vpapp->PcrmAll()->PbacoFetch(kctgMbmp, cnoBack, MBMP::FReadMbmp)))\n    {\n        PGPT pgpt;\n        HPEN hpen, hpenold;\n        HBRUSH hbr, hbrold;\n        HFONT hfnt, hfntold;\n\n        // To ensure that we don't return from here with different objects\n        // selected in the supplied hdc, save them here and restore later.\n        // (Note that Kauai will attempt to delete things it finds selected\n        // in the hdc passed to PgptNew).\n\n        hpen = (HPEN)GetStockObject(NULL_PEN);\n        Assert(hpen != hNil, \"Portfolio - draw background GetStockObject(NULL_PEN) failed\");\n        hpenold = (HPEN)SelectObject(ps.hdc, hpen);\n\n        hbr = (HBRUSH)GetStockObject(WHITE_BRUSH);\n        Assert(hbr != hNil, \"Portfolio - draw background GetStockObject(WHITE_BRUSH) failed\");\n        hbrold = (HBRUSH)SelectObject(ps.hdc, hbr);\n\n        hfnt = (HFONT)GetStockObject(SYSTEM_FONT);\n        Assert(hfnt != hNil, \"Portfolio - draw background GetStockObject(SYSTEM_FONT) failed\");\n        hfntold = (HFONT)SelectObject(ps.hdc, hfnt);\n\n        if ((pgpt = GPT::PgptNew(ps.hdc)) != pvNil)\n        {\n            RC rcDisplay;\n            RCS rcsPort, rcsPreview;\n            GNV gnv(pgpt);\n            PGNV pgnvOff;\n            PGPT pgptOff;\n            HWND hwndPreview;\n            CNO cnoBtn;\n            int iBtnId;\n\n            // Get the current size of the Portfolio window.\n            GetClientRect(hwndCustom, &rcsPort);\n            rcDisplay = rcsPort;\n\n            // Must create offscreen dc and blit into that. Then blit that to dlg on screen.\n            // If we blit straight from\tmbmp to screen, then screen flashes. (Due to white FILLRECT).\n\n            if ((pgptOff = GPT::PgptNewOffscreen(&rcDisplay, 8)) != pvNil)\n            {\n                if ((pgnvOff = NewObj GNV(pgptOff)) != pvNil)\n                {\n                    RC rcOrgPort(pdiPortfolio->rcsDlg);\n                    RC rcClip(ps.rcPaint);\n\n                    // Win95 may initially have streched the portfolio due to font sizing.\n                    // All the portfolio controls will also have been stretched. So we must\n                    // now stretch the portfolio background bitmap into the size win95\n                    // originally made it, to make the background fit the current size\n                    // of the controls.\n\n                    // Note, if the user has scaled down the font then the portfolio bitmap\n                    // will not fill the entire portfolio area now. The area outside the portfolio\n                    // will be black. While this is not ideal, it will be rare and everything will\n                    // still work.\n                    pgnvOff->DrawMbmp(pmbmp, &rcOrgPort);\n\n                    // While we have this offscreen dc, paint all our custom display into it now.\n\n                    // First the caption text. Position the text using its size.\n                    GetWindowText(GetParent(hwndCustom), szCaption, sizeof(szCaption));\n                    GetTextMetrics(ps.hdc, &tmCaption);\n                    pgnvOff->DrawRgch(szCaption, CchSz(szCaption), (tmCaption.tmAveCharWidth * 2),\n                                      tmCaption.tmHeight / 4, kacrBlack, kacrClear);\n\n                    // If we were to blit the current offscreen dc to the screen, then the\n                    // display of the preview window and custom buttons will be overwritten.\n                    // Those windows would immediately be repainted to make the portfolio\n                    // whole again. However, the windows would flash between blitting the\n                    // background bitmap and repainting them. Therefore add the preview\n                    // and custom buttons to the offscreen dc now, so that when the dc\n                    // is blitted to the screen, these controls are good.\n\n                    // Note, that the preview window alone is repainted when the user selection\n                    // changes. Also the custom buttons are redrawn when we get the notification\n                    // to redraw them in the dlg hook proc.\n\n                    // Update the preview window now.\n                    hwndPreview = GetDlgItem(hwndCustom, IDC_PREVIEW);\n                    GetClientRect(hwndPreview, &rcsPreview);\n                    MapWindowPoints(hwndPreview, hwndCustom, (POINT *)&rcsPreview, 2);\n\n                    OpenPreview(hwndCustom, pgnvOff, &rcsPreview);\n\n                    // Now the custom buttons.\n                    for (iBtn = 0; iBtn < 3; ++iBtn)\n                    {\n                        switch (iBtn)\n                        {\n                        case 0:\n\n                            cnoBtn = kcnoMbmpPortBtnOk;\n                            iBtnId = IDC_BUTTON1;\n\n                            break;\n\n                        case 1:\n\n                            cnoBtn = kcnoMbmpPortBtnCancel;\n                            iBtnId = IDC_BUTTON2;\n\n                            break;\n\n                        case 2:\n\n                            cnoBtn = kcnoMbmpPortBtnHome;\n                            iBtnId = IDC_BUTTON3;\n\n                            break;\n\n                        default:\n                            continue;\n                        }\n\n                        if ((pmbmpBtn = (PMBMP)vpapp->PcrmAll()->PbacoFetch(kctgMbmp, cnoBtn, MBMP::FReadMbmp)))\n                        {\n                            HWND hwndBtn = GetDlgItem(hwndCustom, iBtnId);\n                            RCS rcsBtn;\n                            RC rcItem;\n\n                            GetClientRect(hwndBtn, &rcsBtn);\n                            MapWindowPoints(hwndBtn, hwndCustom, (POINT *)&rcsBtn, 2);\n                            rcItem = rcsBtn;\n\n                            pgnvOff->DrawMbmp(pmbmpBtn, rcItem.xpLeft, rcItem.ypTop);\n\n                            ReleasePpo(&pmbmpBtn);\n                        }\n                    }\n\n                    // Clip the final blit, to the area which actually needs repainting.\n                    gnv.ClipRc(&rcClip);\n\n                    // Now finally blit our portfolio image to the screen.\n                    gnv.CopyPixels(pgnvOff, &rcDisplay, &rcDisplay);\n                    GPT::Flush();\n\n                    ReleasePpo(&pgnvOff);\n                }\n\n                ReleasePpo(&pgptOff);\n            }\n\n            ReleasePpo(&pgpt);\n        }\n\n        // Restore the currently secleted objects back into he supplied hdc.\n        SelectObject(ps.hdc, hpenold);\n        SelectObject(ps.hdc, hbrold);\n        SelectObject(ps.hdc, hfntold);\n\n        ReleasePpo(&pmbmp);\n    }\n\n    EndPaint(hwndCustom, &ps);\n\n    return;\n}\n\n/***************************************************************************\n\n OpenPreview: Generate display for the preview of a movie.\n\n Arguments: hwndCustom\t- Handle to custom dlg window\n            pgnvOff\t\t- Offscreen dc for displaying preview in.\n            prcsPreview - RCS for displaying preview.\n\n Returns: nothing.\n\n***************************************************************************/\nvoid OpenPreview(HWND hwndCustom, PGNV pgnvOff, RCS *prcsPreview)\n{\n    STN stn;\n    PCFL pcfl;\n    PMBMP pmbmp;\n    FNI fni;\n    SZ szFile;\n    ERS ersT;\n    ERS *pers;\n    PDLGINFO pdiPortfolio = (PDLGINFO)GetWindowLong(hwndCustom, GWL_USERDATA);\n    bool fPreviewed = fFalse;\n    RC rcPreview(*prcsPreview);\n\n    // If no preview is required, then do nothing here.\n    if (pdiPortfolio->grfPrevType == 0)\n        return;\n\n    // Do not allow default error reporting to take place. This is due\n    // to the fact that currently any queued errors do not appear\n    // until the portfolio has been dismissed.\n\n    pers = vpers;\n    vpers = &ersT;\n\n    // Clear the current contents of the preview window.\n    pgnvOff->FillRc(&rcPreview, kacrBlack);\n\n    // Get the currently selected file name.\n    CommDlg_OpenSave_GetSpec(GetParent(hwndCustom), szFile, sizeof(szFile));\n\n    // Note the above call returns the name of the last selected file, even if the\n    // user has since selected a folder! If the user hits the OK btn in this case,\n    // win95 opens the last selected file anyway, so we are consistent here.\n\n    if (CchSz(szFile) != 0)\n    {\n        // Get an fni for the selected file.\n        stn.SetSz(szFile);\n        fni.FBuildFromPath(&stn, 0);\n\n        // If the user specified a directory, then don't preview it.\n        if (!fni.FDir())\n        {\n            // The name specifies a file. How should we preview it?\n            if (pdiPortfolio->grfPrevType & fpfPortPrevMovie)\n            {\n                // Preview it as a movie if we can.\n                if ((pcfl = CFL::PcflOpen(&fni, fcflNil)) != pvNil)\n                {\n                    CKI ckiMovie;\n                    KID kidScene, kidThumb;\n                    BLCK blck;\n\n                    // Get the movie chunk from the open file.\n                    if (pcfl->FGetCkiCtg(kctgMvie, 0, &ckiMovie))\n                    {\n                        // Now get the scene chunk and details.\n                        if (pcfl->FGetKidChidCtg(kctgMvie, ckiMovie.cno, 0, kctgScen, &kidScene))\n                        {\n                            // Get the mbmp for the movie thumbnail.\n                            if (pcfl->FGetKidChidCtg(kctgScen, kidScene.cki.cno, 0, kctgThumbMbmp, &kidThumb) &&\n                                pcfl->FFind(kidThumb.cki.ctg, kidThumb.cki.cno, &blck))\n                            {\n                                if ((pmbmp = MBMP::PmbmpRead(&blck)) != pvNil)\n                                {\n                                    // Stretch the preview into the preview window.\n                                    pgnvOff->DrawMbmp(pmbmp, &rcPreview);\n\n                                    ReleasePpo(&pmbmp);\n\n                                    fPreviewed = fTrue;\n                                }\n                            }\n                        }\n                    }\n\n                    ReleasePpo(&pcfl);\n                }\n            }\n\n            if (!fPreviewed && (pdiPortfolio->grfPrevType & fpfPortPrevTexture))\n            {\n                // Preview the file as a .bmp file if we can.\n                if ((pmbmp = MBMP::PmbmpReadNative(&fni, 0, 0, 0, fmbmpNil)) != pvNil)\n                {\n                    // Stretch the bitmap in the preview window.\n                    pgnvOff->DrawMbmp(pmbmp, &rcPreview);\n                    ReleasePpo(&pmbmp);\n\n                    fPreviewed = fTrue;\n                }\n            }\n\n            // Currently portfolio is not required to preview sound files.\n        }\n    }\n\n    // Restore the default error reporting.\n    vpers = pers;\n\n    return;\n}\n\n/***************************************************************************\n\n SubClassBtnProc: Subclass proc for custom btn ctrls..\n\n Arguments: standard dialog proc args.\n\n Returns: TRUE/FALSE\n***************************************************************************/\nLRESULT CALLBACK SubClassBtnProc(HWND hwndBtn, UINT msg, WPARAM wParam, LPARAM lParam)\n{\n\n    switch (msg)\n    {\n    case WM_ERASEBKGND:\n\n        // We draw the button entirely later, so don't change the screen\n        // at all here, This prevents any flashing while dlg repainted.\n        return (1);\n\n    default:\n\n        break;\n    }\n\n    return (CallWindowProc(lpBtnProc, hwndBtn, msg, wParam, lParam));\n}\n\n/***************************************************************************\n\n SubClassPreviewProc: Subclass proc for preview window.\n\n Arguments: standard dialog proc args.\n\n Returns: TRUE/FALSE\n***************************************************************************/\nLRESULT CALLBACK SubClassPreviewProc(HWND hwndPreview, UINT msg, WPARAM wParam, LPARAM lParam)\n{\n\n    switch (msg)\n    {\n    case WM_PAINT: {\n        PAINTSTRUCT ps;\n        RCS rcsPreview;\n        RC rcPreview;\n        PGNV pgnvOff;\n        PGPT pgpt, pgptOff;\n        HPEN hpen, hpenold;\n        HBRUSH hbr, hbrold;\n        HFONT hfnt, hfntold;\n\n        // Subclass this window so that when the user selects a file, we can only\n        // invalidate and repaint this window, rather than repainting the entire dlg.\n        BeginPaint(hwndPreview, &ps);\n\n        // To ensure that we don't return from here with different objects\n        // selected in the supplied hdc, save them here and restore later.\n        // (Note that Kauai will attempt to delete things it finds selected\n        // in the hdc passed to PgptNew).\n\n        hpen = (HPEN)GetStockObject(NULL_PEN);\n        Assert(hpen != hNil, \"Portfolio - draw Preview GetStockObject(NULL_PEN) failed\");\n        hpenold = (HPEN)SelectObject(ps.hdc, hpen);\n\n        hbr = (HBRUSH)GetStockObject(WHITE_BRUSH);\n        Assert(hbr != hNil, \"Portfolio - draw Preview GetStockObject(WHITE_BRUSH) failed\");\n        hbrold = (HBRUSH)SelectObject(ps.hdc, hbr);\n\n        hfnt = (HFONT)GetStockObject(SYSTEM_FONT);\n        Assert(hfnt != hNil, \"Portfolio - draw Preview GetStockObject(SYSTEM_FONT) failed\");\n        hfntold = (HFONT)SelectObject(ps.hdc, hfnt);\n\n        if ((pgpt = GPT::PgptNew(ps.hdc)) != pvNil)\n        {\n            GNV gnv(pgpt);\n\n            GetClientRect(hwndPreview, &rcsPreview);\n            rcPreview = rcsPreview;\n\n            if ((pgptOff = GPT::PgptNewOffscreen(&rcPreview, 8)) != pvNil)\n            {\n                if ((pgnvOff = NewObj GNV(pgptOff)) != pvNil)\n                {\n                    // Get the preview image into our offscreen dc.\n                    OpenPreview(GetParent(hwndPreview), pgnvOff, &rcsPreview);\n\n                    // Now update the screen.\n                    gnv.CopyPixels(pgnvOff, &rcPreview, &rcPreview);\n                    GPT::Flush();\n\n                    ReleasePpo(&pgnvOff);\n                }\n\n                ReleasePpo(&pgptOff);\n            }\n\n            ReleasePpo(&pgpt);\n        }\n\n        // Restore the currently secleted objects back into he supplied hdc.\n        SelectObject(ps.hdc, hpenold);\n        SelectObject(ps.hdc, hbrold);\n        SelectObject(ps.hdc, hfntold);\n\n        EndPaint(hwndPreview, &ps);\n\n        return (0);\n    }\n    default:\n\n        break;\n    }\n\n    return (CallWindowProc(lpPreviewProc, hwndPreview, msg, wParam, lParam));\n}\n\n/***************************************************************************\n\n SubClassDlgProc: Subclass proc for common dlg window..\n\n Arguments: standard dialog proc args.\n\n Returns: TRUE/FALSE\n***************************************************************************/\nLRESULT CALLBACK SubClassDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)\n{\n\n    switch (msg)\n    {\n    case WM_HELP: {\n        // Do not invoke any help while the portfolio is displayed.\n        return TRUE;\n    }\n    case WM_CTLCOLORSTATIC: {\n        HDC hdc = (HDC)wParam;\n\n        // Process this to ensure the common dlg static controls look as good\n        // as possible on our custom portfolio background. We could explictly\n        // do this only for the two static ctrl currently used,\n        // (ie stc3 = File Name, stc4 = Look In), but by taking this general\n        // approach, if any new static ctrls are added in future versions of\n        // win95, they will also look ok. (Except for the fact they won't be\n        // known to the current custom portfolio background). This assumes\n        // that we never want any common dlg static controls to be drawn using\n        // the default system colors, but that's ok due the extent of our\n        // portfolio customization.\n\n        // Do not overwrite the background when writing the static control text.\n        SetBkMode(hdc, TRANSPARENT);\n\n        // Note, on win95 that static text always appears black, regardless of\n        // the current system color settings. However, rather than relying on\n        // this always being true, set the text color explicitly here.\n        SetTextColor(hdc, RGB(0, 0, 0));\n\n        // Draw the control background in the light gray that matched the custom\n        // background bitmap. Otherwise the background is drawn in the current\n        // system color, which may not match the background at all.\n        return ((LONG)GetStockObject(LTGRAY_BRUSH));\n    }\n    case WM_SYSCOMMAND: {\n        // Is a screen saver trying to start?\n        if (wParam == SC_SCREENSAVE)\n        {\n            // Disable the screen saver if we don't allow them to run.\n            if (!vpapp->FAllowScreenSaver())\n                return fTrue;\n        }\n\n        break;\n    }\n    case WM_ERASEBKGND: {\n        // Since the user never sees the common dialog background, ensure that\n        // it can never be erased in the system color. Force a repaint of the\n        // custom dlg now, to prevent the common dlg controls appearing before\n        // the portfolio background. Note that GetDlgItem(hwndDlg, <custom dlg id>)\n        // returns zero here, as the Menu part of the custom dlg is zero.\n        HWND hwndCustom = (HWND)GetWindowLong(hwndDlg, GWL_USERDATA);\n\n        if (hwndCustom != 0)\n            UpdateWindow(hwndCustom);\n\n        return (1);\n    }\n    default:\n\n        break;\n    }\n\n    return (CallWindowProc(lpDlgProc, hwndDlg, msg, wParam, lParam));\n}\n"
  },
  {
    "path": "src/studio/projmain.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//////////////////////////////////\n//\tHelp Sequence reader main file \n//////////////////////////////////\n\n#define INITIALIZE_TABLE() \\\n\tSET _indx = 0;\n\n// initializing the arrays with the project table\n#define PROJECT_TABLE(_inst, _return, _ID0, _next, _ID1, _ID2) \\\n\tkidSequenceParent->word1[_indx] = _inst; \\\n\tkidSequenceParent->word2[_indx] = _return; \\\n\tkidSequenceParent->word3[_indx] = _ID0; \\\n\tkidSequenceParent->word4[_indx] = _next; \\\n\tkidSequenceParent->word6[_indx] = _ID1; \\\n\tkidSequenceParent->word7[_indx] = _ID2; \\\n\tSET _indx++;\n\n// takes us to the next state, unless is previous state\n#define NEXTSTATE(_next) \\\n\tDEBUGCMD(PrintStr(\"Project Interpreter: Going to state \", NumToStr(_next, \"\")));\\\n\tIf (_next != PrevState); \\\n\t\tkidSequenceParent->prev2State = kidSequenceParent->prevState; \\\n\t\tkidSequenceParent->prevState = kidSequenceParent->currState; \\\n\t\tkidSequenceParent->currState = _next; \\\n\t\tkidSequenceParent->currLine = kidSequenceParent->nsjTable[_next]; \\\n\t\tkidSequenceParent->stateLine = kidSequenceParent->currLine; \\\n\tElse; \\\n\t\tkidSequenceParent->currState = kidSequenceParent->prevState; \\\n\t\tkidSequenceParent->prevState = kidSequenceParent->prev2State; \\\n\t\tkidSequenceParent->currLine = kidSequenceParent->nsjTable[kidSequenceParent->currState]; \\\n\t\tkidSequenceParent->stateLine = kidSequenceParent->currLine; \\\n\tEnd;\n\n////////////////////////////////////////////////////////////\n// Sequence parent object - this object is responsible for reading\n//\tand executing the help state machine(more or less) code.\n//  Create this from other object, read in table from other object,\n//  then start kchidScript1 from other object\n////////////////////////////////////////////////////////////\nGOBCHUNK(\"Sequence Parent\", kidSequenceParent, kgokkRectHit)\n\tDEFAULT_POSITION(0,0,350)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\n\t// grey out bkgrd in state one, also inits vars\n\tREP_FILL(CHID(kst1, krepDefault), \"kidSequenceParent\", 0, 0, 0, 0, Transparent, Transparent)\n\t\tPATTERN_0\n\tENDCHUNK\n\t// background is transparent in state two, tiny object\n\tREP_FILL(CHID(kst2, krepDefault), \"kidSequenceParent\", 0, 0, 0, 0, Transparent, Transparent)\n\t\tPATTERN_0\n\tENDCHUNK\n\t// grey out bkgrd in state three\n\tREP_FILL(CHID(kst3, krepDefault), \"kidSequenceParent\", 0, 0, 640, 480, Palette( 73 ), Transparent)\n\t\tPATTERN_50X\n\tENDCHUNK\n\tCREATE_ANIM(\"Sequence parent created\")\n\t\t// Turn off hotkeys. They get restored in the various exit\n\t\t// commands interpreted below.\n\t\tDISABLEACCEL(fFalse);\n\t\t// turn off tool tips, gadget will turn them on for itself\n\t\tSetProp(kpridToolTipDelay, 999999);\n\t\t// flag for easel help\n\t\t::fHelpOn = fTrue;\n\t\tRunScriptThis(kchidScript6);\n\tENDCHUNK\n\t// init the vars, child so it can be run for each new sequence\n\tCHILD_SCRIPT(\"Instruction Parser\", kchidScript6)\n\t\t// logo vars\n\t\t.lastHelp = 0;\n\t\t.prevState = 1;\t\t// stores previous state in case jump back is required\n\t\t.prev2State = 1;\t// stores second previous state\n\t\t.currState = 1;\t\t// stores current state\n\t\t.stateLine = 0;\t\t// stores place of first non-initializing instruction in a state\t\n\t\t.currLine = 0;\t\t// stores current line\n\t\t.tbInst = 0;\n\t\t.tbReturn = fFalse;\n\t\t.tbID0 = 0;\n\t\t.tbNext = 1;\n\t\t.tbState = 1;\n\t\t.tbID1 = 0;\n\t\t.tbID2 = 0;\t// vars from tables\n\tENDCHUNK\n\tCHILD_SCRIPT(\"Previous help destroyer\", kchidScript7)\n\t\tIf (.lastHelp != 0);\n\t\t\tDestroyGob(.lastHelp);\n\t\tEnd;\n\t\tRunScriptThis(kchidScript6);\n\tENDCHUNK\n\n\t// ---------------------------------------------------------\n\t//\tParses the current instruction then sends it to the proper handler\n\t//\n\t//      _parm[0] -- _parm[3] are optional parameters passed to the\n\t//\t\tinterpreter when it is called via an Enqueued event.  When\n\t//\t\tthe interpreter is called from other places in the code, these\n\t//\t\tparameters may or may not be set.  The meaning of these\n\t//\t\tparameters depends on the cid.\n\t// ---------------------------------------------------------\n\tCHILD_SCRIPT(\"Instruction Parser\", kchidScript1)\n\n\t\t// script will loop back to here until it hits a waitevent or a return\n\t\tParseLoop@\n\n\t\t\t// get the table line to parse\n\t\t\tRunScriptThis(kchidScript4, .currLine);\n\n\t\t\t// branch to the instruction \t\t\t\t\n\t\t\tGoto(Match(.tbInst, NotFound$, InitState, _InitState$, MatchGoto, _MatchGoto$, MatchDescGoto, _MatchDescGoto$,\n\t\t\t\t MatchChildrenGoto, _MatchChildrenGoto$, MatchParentGoto, _MatchParentGoto$,  MatchAllGoto, _MatchAllGoto$, IgnoreMatch, _IgnoreMatch$,\n\t\t\t\t IgnoreChildren, _IgnoreChildren$, IgnoreParentMatch, _IgnoreParentMatch$,IgnoreAll, _IgnoreAll$, BoolCondGoto, _BoolCondGoto$,\n\t\t\t\t StateCondGoto, _StateCondGoto$, SpecialInstr, _SpecialInstr$, WaitEvent, _WaitEvent$, \n\t\t\t\t JumpToState, _JumpToState$, EndState, _EndState$));\n\t\t\n\t\t\t// initialize the state, put up help, set filters\n\t\t\t_InitState@\n\t\t\t\t// Set the state of the parent\n\t\t\t\tIf (StateThis() != (kst2 + .tbID0));\n\t\t\t\t\tChangeStateThis(kst2 + .tbID0);\n\t\t\t\tEnd;\n\t\t\t\t// create the help topic, if there is one(do last for filtering balloons)\n\t\t\t\tIf (.tbID2 != 0);\n\t\t\t\t\t.lastHelp = CreateHelpGob(kidBackground, .tbID2);\n\t\t\t\tElse;\n\t\t\t\t\t.lastHelp = 0;\n\t\t\t\tEnd;\n\t\t\t\t// set up the filters\n\t\t\t\tRunScriptThis(kchidScript3, .tbID1);\n\t\t\t\t// move down a line\n\t\t\t\t.stateLine++;\n\t\t\t\t.currLine++;\n\t\t\t\t// loop back\n\t\t\t\tGoto(ParseLoop$);\n\n\t\t\t// on match of both IDs goto next state\n\t\t\t_MatchGoto@\n\t\t\t\t// if both ids match move to the next state\n\t\t\t\tIf ((_parm[1] == .tbID1) && (_parm[.tbID0] == .tbID2));\n\t\t\t\t\tNEXTSTATE(.tbNext)\n\t\t\t\t\t// destroy the last help, if there was one\n\t\t\t\t\tIf (.lastHelp != 0);\n\t\t\t\t\t\tDestroyGob(.lastHelp);\n\t\t\t\t\tEnd;\n\t\t\t\t\t// need to come back and init next state, so send message to recall this script\n\t\t\t\t\tEnqueueCid(cidParse, kidSequenceParent, 0, 0, 0, 0);\n\t\t\t\t\tReturn(.tbReturn);\n\t\t\t\tElse;\n\t\t\t\t\t.currLine++;\t\t\t\t\n\t\t\t\tEnd;\n\t\t\t\tGoto(ParseLoop$);\n\n\t\t\t// on a match of the item or its descendents goto the next state\n\t\t\t_MatchDescGoto@\n\t\t\t\t// if both ids match move to the next state\n\t\t\t\tIf ((_parm[1] == .tbID1) && (FIsDescendent(_parm[0], .tbID2)));\n\t\t\t\t\tNEXTSTATE(.tbNext)\n\t\t\t\t\t// destroy the last help, if there was one\n\t\t\t\t\tIf (.lastHelp != 0);\n\t\t\t\t\t\tDestroyGob(.lastHelp);\n\t\t\t\t\tEnd;\n\t\t\t\t\t// need to come back and init next state, so send message to recall this script\n\t\t\t\t\tEnqueueCid(cidParse, kidSequenceParent, 0, 0, 0, 0);\n\t\t\t\t\tReturn(.tbReturn);\n\t\t\t\tElse;\n\t\t\t\t\t.currLine++;\t\t\t\t\n\t\t\t\tEnd;\n\t\t\t\tGoto(ParseLoop$);\n\n\t\t\t// on a match children(of a balloon) goto the next state\n\t\t\t_MatchChildrenGoto@\n\t\t\t\t// if both ids match move to the next state\n\t\t\t\tIf ((_parm[1] == .tbID1) && (_parm[0] == (.tbID2->_gidBase + .tbID0)));\n\t\t\t\t\tNEXTSTATE(.tbNext)\n\t\t\t\t\t// destroy the last help, if there was one\n\t\t\t\t\tIf (.lastHelp != 0);\n\t\t\t\t\t\tDestroyGob(.lastHelp);\n\t\t\t\t\tEnd;\n\t\t\t\t\t// need to come back and init next state, so send message to recall this script\n\t\t\t\t\tEnqueueCid(cidParse, kidSequenceParent, 0, 0, 0, 0);\n\t\t\t\t\tReturn(.tbReturn);\n\t\t\t\tElse;\n\t\t\t\t\t.currLine++;\t\t\t\t\n\t\t\t\tEnd;\n\t\t\t\tGoto(ParseLoop$);\n\n\t\t\t// on a match of ID1 goto the next state\n\t\t\t_MatchAllGoto@\n\t\t\t\t// if both ids match move to the next state\n\t\t\t\tIf (_parm[1] == .tbID1);\n\t\t\t\t\tNEXTSTATE(.tbNext)\n\t\t\t\t\t// destroy the last help, if there was one\n\t\t\t\t\tIf (.lastHelp != 0);\n\t\t\t\t\t\tDestroyGob(.lastHelp);\n\t\t\t\t\tEnd;\n\t\t\t\t\t// need to come back and init next state, so send message to recall this script\n\t\t\t\t\tEnqueueCid(cidParse, kidSequenceParent, 0, 0, 0, 0);\n\t\t\t\t\tReturn(.tbReturn);\n\t\t\t\tElse;\n\t\t\t\t\t.currLine++;\t\t\t\t\n\t\t\t\tEnd;\n\t\t\t\tGoto(ParseLoop$);\n\n\t\t\t// on a match of the items parent goto the next state\n\t\t\t_MatchParentGoto@\n\t\t\t\t// if both ids match move to the next state\n\t\t\t\tIf ((_parm[1] == .tbID1) && (_parm[0] == GidParGob(.tbID2)));\n\t\t\t\t\tNEXTSTATE(.tbNext)\n\t\t\t\t\t// destroy the last help, if there was one\n\t\t\t\t\tIf (.lastHelp != 0);\n\t\t\t\t\t\tDestroyGob(.lastHelp);\n\t\t\t\t\tEnd;\n\t\t\t\t\t// need to come back and init next state, so send message to recall this script\n\t\t\t\t\tEnqueueCid(cidParse, kidSequenceParent, 0, 0, 0, 0);\n\t\t\t\t\tReturn(.tbReturn);\n\t\t\t\tElse;\n\t\t\t\t\t.currLine++;\t\t\t\t\n\t\t\t\tEnd;\n\t\t\t\tGoto(ParseLoop$);\n\n\t\t\t// on a match ignore the event\n\t\t\t_IgnoreMatch@\n\t\t\t\t// if both ids match move to the next state\n\t\t\t\tIf ((_parm[1] == .tbID1) && (_parm[.tbID0] == .tbID2));\n\t\t\t\t\t.currLine = .stateLine;\n\t\t\t\t\tReturn(.tbReturn);\n\t\t\t\tElse;\n\t\t\t\t\t.currLine++;\t\t\t\t\n\t\t\t\tEnd;\n\t\t\t\tGoto(ParseLoop$);\n\n\t\t\t// on a match on the object or it's children ignore the event\n\t\t\t_IgnoreChildren@\n\t\t\t\t// if both ids match move to the next state\n\t\t\t\tIf ((_parm[1] == .tbID1) && (FIsDescendent(_parm[0], .tbID2)));\n\t\t\t\t\t.currLine = .stateLine;\n\t\t\t\t\tReturn(.tbReturn);\n\t\t\t\tElse;\n\t\t\t\t\t.currLine++;\t\t\t\t\n\t\t\t\tEnd;\n\t\t\t\tGoto(ParseLoop$);\n\n\t\t\t// on a match on the object or it's children ignore the event\n\t\t\t_IgnoreParentMatch@\n\t\t\t\t// if both ids match move to the next state\n\t\t\t\tIf ((_parm[1] == .tbID1) && (_parm[0] == GidParGob(.tbID2)));\n\t\t\t\t\t.currLine = .stateLine;\n\t\t\t\t\tReturn(.tbReturn);\n\t\t\t\tElse;\n\t\t\t\t\t.currLine++;\t\t\t\t\n\t\t\t\tEnd;\n\t\t\t\tGoto(ParseLoop$);\n\t\t\t\t\n\t\t\t// ignore any event that comes in\n\t\t\t_IgnoreAll@\n\t\t\t\tIf (_parm[1] == .tbID1);\n\t\t\t\t\t.currLine = .stateLine;\n\t\t\t\t\tReturn(.tbReturn);\n\t\t\t\tElse;\n\t\t\t\t\t.currLine++;\t\t\t\t\n\t\t\t\tEnd;\n\t\t\t\tGoto(ParseLoop$);\n\n\t\t\t// conditional, checks a flag to see if a state should be skipped\n\t\t\t_BoolCondGoto@\n\t\t\t\t// see if the flag is set to same as tbID2\n\t\t\t\tIf (.tbID1 == .tbID2); \n\t\t\t\t\tNEXTSTATE(.tbNext)\n\t\t\t\t// flags didn't match, do nothing and move to the next instruction\n\t\t\t\tElse;\n\t\t\t\t\t.currLine++;\n\t\t\t\tEnd;\n\t\t\t\tGoto(ParseLoop$);\n\n\t\t\t// conditional, see's what state an object is in to see if a state should be skipped\n\t\t\t_StateCondGoto@\n\t\t\t\t// see if the object is in the desired state\n\t\t\t\tIf (StateGob(.tbID1) == .tbID2);\n\t\t\t\t\tNEXTSTATE(.tbNext)\n\t\t\t\t// wrong state, do nothing and move to the next instruction\n\t\t\t\tElse;\n\t\t\t\t\t.currLine++;\n\t\t\t\tEnd;\n\t\t\t\tGoto(ParseLoop$);\n\n\t\t\t// stops the processing and returns to waiting for an event\n\t\t\t_WaitEvent@\n\t\t\t\t.currLine++;\n\t\t\t\t.stateLine = .currLine;\n\t\t\t\tReturn(fTrue);\n\n\t\t\t_JumpToState@\n\t\t\t\tNEXTSTATE(.tbNext)\n\t\t\t\tEnqueueCid(cidParse, kidSequenceParent, 0, 0, 0, 0);\n\t\t\t\tReturn(.tbReturn);\n\n\t\t\t// signifies the last operation in a state\n\t\t\t_EndState@\n\t\t\t\t.currLine = .stateLine;\n\t\t\t\tReturn(fTrue);\n\n\t\t\t// handles all weirdities that can happen(hopefully)\n\t\t\t_SpecialInstr@\n\t\t\t\t// find the special case that was in id1\n\t\t\t\tGoto(Match(.tbID1, NoSpecial$,\tQuitMM, _QuitMM$, QuitHelp, _QuitHelp$,\n\t\t\t\t\t\t\tQuitGadgetHelp, _QuitGadgetHelp$, SetHelpAlarm, _SetHelpAlarm$,\n\t\t\t\t\t\t\tProjectsRoom, _ProjectsRoom$, ResetTipDelay, _ResetTipDelay$,\n\t\t\t\t\t\t\tClearStudio, _ClearStudio$, LoadProjectMovie, _LoadProjectMovie$,\n\t\t\t\t\t\t\tOpenDoorCovers, _OpenDoorCovers$, SimulateClick, _SimulateClick$,\n\t\t\t\t\t\t\tSetSceneAndFrame, _SetSceneAndFrame$, SetBlinkingGadget, _SetBlinkingGadget$, \n\t\t\t\t\t\t\tOpenAllDoors, _OpenAllDoors$, ChangeToNextMovie, _ChangeToNextMovie$,\n\t\t\t\t\t\t\tSetBrowserItem, _SetBrowserItem$, SetNextProject, _SetNextProject$));\n\t\t\t\t// special functions\n\t\t\t\t_QuitMM@\n\t\t\t\t\tEnqueueCid(cidQuit, 0, 0, 0, 0, 0);\n\t\t\t\t\tEnqueueCid(cidParse, kidSequenceParent, 0, 0, 0, 0);\n\t\t\t\t\t.currLine++;\n\t\t\t\t\tReturn(.tbReturn);\n\t\t\t\t_QuitHelp@\n\t\t\t\t\tIf (.lastHelp != 0);\n\t\t\t\t\t\tDestroyGob(.lastHelp);\n\t\t\t\t\tEnd;\n\t\t\t\t\tSetProp(kpridToolTipDelay, kdtimToolTipDelay);\n\t\t\t\t\tENABLEACCEL(fFalse);\n\t\t\t\t\t// flag for easel help\n\t\t\t\t\t::fHelpOn = fFalse;\n\t\t\t\t\tSetProp(kpridBrwsOverrideThum, -1);\n\t\t\t\t\tSetProp(kpridBrwsOverrideKidThum, -1);\n\t\t\t\t\tret = .tbReturn;\n\t\t\t\t\tDestroyThis();\n\t\t\t\t\tReturn(ret);\n\t\t\t\t_QuitGadgetHelp@\n\t\t\t\t\tIf (.lastHelp != 0);\n\t\t\t\t\t\tDestroyGob(.lastHelp);\n\t\t\t\t\tEnd;\n\t\t\t\t\tIf (FGobExists(kidGadget));\n\t\t\t\t\t\tDestroyGob(kidGadget);\n\t\t\t\t\tEnd;\n\t\t\t\t\tIf (FGobExists(kidGadgetParent));\n\t\t\t\t\t\tDestroyGob(kidGadgetParent);\n\t\t\t\t\tEnd;\n\t\t\t\t\tSetProp(kpridToolTipDelay, kdtimToolTipDelay);\n\t\t\t\t\tENABLEACCEL(fFalse);\n\t\t\t\t\t// flag for easel help\n\t\t\t\t\t::fHelpOn = fFalse;\n\t\t\t\t\tSetProp(kpridBrwsOverrideThum, -1);\n\t\t\t\t\tSetProp(kpridBrwsOverrideKidThum, -1);\n\t\t\t\t\t// create transition help\n\t\t\t\t\tCreateHelpGob(kidBackground, ktpcUserQuitsHelp);\n\t\t\t\t\tret = .tbReturn;\t//Tmp var because of DestroyThis.\n\t\t\t\t\tDestroyThis();\n\t\t\t\t\tReturn(ret);\n\t\t\t\t_SetHelpAlarm@\n\t\t\t\t\t// ID2 is in 60ths of a second\n\t\t\t\t\tSetAlarmThis(khidClokGokReset, .tbID2, chidNil);\t\n\t\t\t\t\t.currLine++;\n\t\t\t\t\tGoto(ParseLoop$);\n\t\t\t\t_SetBlinkingGadget@\n\t\t\t\t\t// make gadget blink\n\t\t\t\t\tChangeStateGob(kidGadget, kst3);\t\n\t\t\t\t\t.currLine++;\n\t\t\t\t\tGoto(ParseLoop$);\n\t\t\t\t_OpenAllDoors@\n\t\t\t\t\t// open all the doors\n\t\t\t\t\tRunScriptGob(kidBackground, CHID1(kchidOpenDoorsAll)); \n\t\t\t\t\t.currLine++;\n\t\t\t\t\tGoto(ParseLoop$);\n\t\t\t\t_ChangeToNextMovie@\n\t\t\t\t\t// Change to the next movie\n\t\t\t\t\tRunScriptGob(kidGadgetSelectorUp, kchidScript1); \n\t\t\t\t\tReturn(.tbReturn);\n\t\t\t\t_ProjectsRoom@\n\t\t\t\t \tEnqueueCid(cidLoadBuilding, 0, 0, 0, 0, 0);\n\t\t\t\t\tEnqueueCid(cidParse, kidSequenceParent, 0, 0, 0, 0);\n\t\t\t\t\t.currLine++;\n\t\t\t\t\tReturn(.tbReturn);\n\t\t\t\t_ResetTipDelay@\n\t\t\t\t\tSetProp(kpridToolTipDelay, .tbID2);\n\t\t\t\t\t.currLine++;\n\t\t\t\t\tGoto(ParseLoop$);\n\t\t\t\t_ClearStudio@\n\t\t\t\t\tEnqueueCid(cidNew, khidStudio, 0, 0, 0, 0);\n\t\t\t\t\tEnqueueCid(cidParse, kidSequenceParent, 0, 0, 0, 0);\n\t\t\t\t\t.currLine++;\n\t\t\t\t\tReturn(.tbReturn);\n\t\t\t\t_LoadProjectMovie@   \n\t\t\t\t\tEnqueueCid(cidLoadProjectMovie, 0, .tbID2, 0, 0, 0); \n\t\t\t\t\tEnqueueCid(cidParse, kidSequenceParent, 0, 0, 0, 0);\n\t\t\t\t\t.currLine++;\n\t\t\t\t\tReturn(.tbReturn);\n\t\t\t\t_OpenDoorCovers@\t\t\t\t\t\t\t\t\n\t\t\t\t\tRunScriptGob(.tbID2, CHID(kstClosed, kchidClick)); \n\t\t\t\t\t.currLine++;\n\t\t\t\t\tGoto(ParseLoop$);\n\t\t\t\t_SetSceneAndFrame@\n\t\t\t\t\tEnqueueCid(cidMovieGoto, 0, .tbID0, .tbID2, 0, 0);\n\t\t\t\t\tEnqueueCid(cidParse, kidSequenceParent, 0, 0, 0, 0);\n\t\t\t\t\t.currLine++;\n\t\t\t\t\tReturn(.tbReturn);\n\t\t\t\t_SimulateClick@\t\t\t\t\t\t\t\t\n\t\t\t\t\tRunScriptGob(.tbID2, CHID(kstDefault, kchidClick)); \n\t\t\t\t\t.currLine++;\n\t\t\t\t\tGoto(ParseLoop$);\n\t\t\t   \t_SetBrowserItem@\n\t\t\t\t\tSetProp(kpridBrwsOverrideThum, .tbID2);\n\t\t\t\t\tSetProp(kpridBrwsOverrideSidThum,2);\n\t\t\t\t\tSetProp(kpridBrwsOverrideKidThum, kidReserveProjects);\n\t\t\t\t\t.currLine++;\n\t\t\t\t\tGoto(ParseLoop$);\n\t\t\t\t_SetNextProject@\n\t\t\t\t\t::NextProject = .tbID2;\n\t\t\t\t\t.currLine++;\n\t\t\t\t\tGoto(ParseLoop$);\n\t\t\t\tNoSpecial@\n\t\t\t\t\t\tReturn(fTrue);\n\t\t\tNotFound@\n\t\t\t\t.currLine++;\n\t\t\t\tGoto(ParseLoop$);\t\t\n\tENDCHUNK\t\n\n///////////////////////////////////////////////////////////////\n// Builds the state table in word five\n///////////////////////////////////////////////////////////////\n\tCHILD_SCRIPT(\"Building state table\", kchidScript5)\n\t\tiLine = 0;\n\t\tiState = 1;\n\t\t// go until we hit the end of the table\n\t\tWhile (.word1[iLine] != EndTable);\n\t\t\t.word5[iLine] = iState;\n\t\t\t// if its the EndState increment the state\n\t\t\tIf (.word1[iLine] == EndState);\n\t\t\t\tiState++;\n\t\t\tEnd;\t\t\n\t\t\tiLine++;\n\t\tEnd;\n\t\t.word5[iLine] = 0;\t// End state\n\tENDCHUNK\n\n///////////////////////////////////////////////////////////////\n// Builds a next state jump right after the arrays are initialized\n///////////////////////////////////////////////////////////////\n\tCHILD_SCRIPT(\"Building next state jump table\", kchidScript2)\n\t\tiLine = 0;\n\t\tiState = 0;\n\t\t// go through the list setting the array elements to the\n\t\t// line numbers of the first line in the state\n\t\tWhile(.word5[iLine] > 0);\n\t\t\tIf (.word5[iLine] != iState);\n\t\t\t\tiState++;\n\t\t\t\t.nsjTable[iState] = iLine;\n\t\t\tEnd;\t\t\t\t\n\t\t\tiLine++;\n\t\tEnd;\n\tENDCHUNK\n\n////////////////////////////////////////////////////////////\n// reset filters according to what state we're in\n////////////////////////////////////////////////////////////\n\tCHILD_SCRIPT(\"Change filtering\", kchidScript3)\n \t\t// reset all filters\n\t\tFilterCmdsThis(cidNil, kidNil, chidNil);\n\n\t\tFilterCmdsThis(cidParse, kidNil, kchidScript1);\n\n\t\t// now set the current states filters\n\t\tIf ((_parm[0] & kFltrMouse) == kFltrMouse);\n\t\t\tFilterCmdsThis(cidMouseDown, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrKey) == kFltrKey);\n\t\t\tFilterCmdsThis(cidKey, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrBrwOk) == kFltrBrwOk);\n\t\t\tFilterCmdsThis(cidBrowserOk, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrBrwCancel) == kFltrBrwCancel);\n\t\t\tFilterCmdsThis(cidBrowserCancel, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrBrwSelect) == kFltrBrwSelect);\n\t\t\tFilterCmdsThis(cidBrowserSelect, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrClicked) == kFltrClicked);\n\t\t\tFilterCmdsThis(cidClicked, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrEslOk) == kFltrEslOk);\n\t\t\tFilterCmdsThis(cidEaselOk, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrEslClosing) == kFltrEslClosing);\n\t\t\tFilterCmdsThis(cidEaselClosing, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrEslCancel) == kFltrEslCancel);\n\t\t\tFilterCmdsThis(cidEaselCancel, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrActorIn) == kFltrActorIn);\n\t\t\tFilterCmdsThis(cidActorPlaced, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrActorOut) == kFltrActorOut);\n\t\t\tFilterCmdsThis(cidActorPlacedOutOfView, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrActorClicked) == kFltrActorClicked);\n\t\t\tFilterCmdsThis(cidActorClicked, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrActorClickedDown) == kFltrActorClickedDown);\n\t\t\tFilterCmdsThis(cidActorClickedDown, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrScnSortOk) == kFltrScnSortOk);\n\t\t\tFilterCmdsThis(cidSceneSortOk, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrScnSortCancel) == kFltrScnSortCancel);\n\t\t\tFilterCmdsThis(cidSceneSortCancel, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrAlarmOff) == kFltrAlarmOff);\n\t\t\tFilterCmdsThis(cidHelpAlarmOff, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrMoviePlaying) == kFltrMoviePlaying);\n\t\t\tFilterCmdsThis(cidMviePlaying, kidNil, kchidScript1);\n\t\tEnd;\n\t\tIf ((_parm[0] & kFltrTBoxClicked) == kFltrTBoxClicked);\n\t\t\tFilterCmdsThis(cidTboxClicked, kidNil, kchidScript1);\n\t\tEnd;\n \t\tIf ((_parm[0] & kFltrBrwVisible) == kFltrBrwVisible);\n\t\t\tFilterCmdsThis(cidBrowserVisible, kidNil, kchidScript1);\n\t\tEnd;\n \t\tIf ((_parm[0] & kFltrEslVisible) == kFltrEslVisible);\n\t\t\tFilterCmdsThis(cidEaselVisible, kidNil, kchidScript1);\n\t\tEnd;\n \t\tIf ((_parm[0] & kFltrScnSortVisible) == kFltrScnSortVisible);\n\t\t\tFilterCmdsThis(cidSceneSortInit, kidNil, kchidScript1);\n\t\tEnd;\n \t\tIf ((_parm[0] & kFltrGadgetAviStop) == kFltrGadgetAviStop);\n\t\t\tFilterCmdsThis(cidGadgetAviStop, kidNil, kchidScript1);\n\t\tEnd;\n \t\tIf ((_parm[0] & kFltrScnSortSelect) == kFltrScnSortSelect);\n\t\t\tFilterCmdsThis(cidSceneSortSelect, kidNil, kchidScript1);\n\t\tEnd;\n \t\tIf ((_parm[0] & kFltrMovieLoaded) == kFltrMovieLoaded);\n\t\t\tFilterCmdsThis(cidProjectMovieLoaded, kidNil, kchidScript1);\n\t\tEnd;\n \t\tIf ((_parm[0] & kFltrModalClosed) == kFltrModalClosed);\n\t\t\tFilterCmdsThis(cidQuerySaveDocResult, kidNil, kchidScript1);\n\t\tEnd;\n \t\tIf ((_parm[0] & kFltrSceneLoaded) == kFltrSceneLoaded);\n\t\t\tFilterCmdsThis(cidSceneLoaded, kidNil, kchidScript1);\n\t\tEnd;\n \t\tIf ((_parm[0] & kFltrPortfolioResult) == kFltrPortfolioResult);\n\t\t\tFilterCmdsThis(cidPortfolioResult, kidNil, kchidScript1);\n\t\tEnd;\n \tENDCHUNK\t\t\t  \n\n///////////////////////////////////////////////////////////////\n// Get the current line in the table\n///////////////////////////////////////////////////////////////\n\tCHILD_SCRIPT(\"Get current line\", kchidScript4)\n\t\t// get all vars for the line\n\t\t.tbInst = .word1[_parm[0]];\n\t\t.tbReturn = .word2[_parm[0]];\n\t\t.tbID0 = .word3[_parm[0]];\n\t\t.tbNext = .word4[_parm[0]];\n\t\t.tbState = .word5[_parm[0]];\n\t\t.tbID1 = .word6[_parm[0]];\n\t\t.tbID2 = .word7[_parm[0]]; \n\tENDCHUNK\n\n///////////////////////////////////////////////////////////////\n// The alarm went off\n///////////////////////////////////////////////////////////////\n\tCHILD_SCRIPT(\"Alarm went off\", CHID(kst2, kchidAlarm))\n\t\tEnqueueCid(cidHelpAlarmOff, kidSequenceParent, 0, 0, 0, 0);\n\tENDCHUNK\n"
  },
  {
    "path": "src/studio/scnsort.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/******************************************************************************\n    Author: ******\n    Project: Socrates\n    Review Status: Reviewed\n\n    Main module for the scene sorter class.\n\n************************************************************ PETED ***********/\n\n#include \"studio.h\"\n\nASSERTNAME\n\nBEGIN_CMD_MAP(SCRT, GOK)\nON_CID_ME(cidSceneSortInit, &SCRT::FCmdInit, pvNil)\nON_CID_ME(cidSceneSortSelect, &SCRT::FCmdSelect, pvNil)\nON_CID_ME(cidSceneSortInsert, &SCRT::FCmdInsert, pvNil)\nON_CID_ME(cidSceneSortScroll, &SCRT::FCmdScroll, pvNil)\nON_CID_ME(cidSceneSortNuke, &SCRT::FCmdNuke, pvNil)\nON_CID_ME(cidSceneSortOk, &SCRT::FCmdDismiss, pvNil)\nON_CID_ME(cidSceneSortCancel, &SCRT::FCmdDismiss, pvNil)\nON_CID_ME(cidSceneSortPortfolio, &SCRT::FCmdPortfolio, pvNil)\nON_CID_ME(cidSceneSortTransition, &SCRT::FCmdTransition, pvNil)\nEND_CMD_MAP_NIL()\n\nRTCLASS(SCRT)\n\n#ifdef DEBUG\nvoid SCRT::AssertValid(ulong grf)\n{\n    SCRT_PAR::AssertValid(0);\n    if (_iscenMac > 0)\n        AssertIn(_iscenCur, 0, _iscenMac);\n    else\n        Assert(_iscenCur == 0, \"Non-zero _iscenCur for empty movie\");\n    AssertIn(_iscenTop, 0, _iscenMac + 1);\n\n    /* The CMVI has loose rules about the format of its data structures, but\n        it's important to the SCRT that we keep things in the right order. */\n    if (_cmvi.pglscend != pvNil)\n    {\n        long imviedMac;\n\n        AssertPo(_cmvi.pglscend, 0);\n        AssertPo(_cmvi.pglmvied, 0);\n        imviedMac = _cmvi.pglmvied->IvMac();\n        for (long iscend = 0; iscend < _cmvi.pglscend->IvMac(); iscend++)\n        {\n            SCEND scend;\n\n            _cmvi.pglscend->Get(iscend, &scend);\n            Assert(iscend < _iscenMac ? !scend.fNuked : scend.fNuked, \"Bad GL of SCENDs\");\n            Assert(scend.imvied < imviedMac, \"Bogus scene entry in pglscend\");\n        }\n    }\n}\n\nvoid SCRT::MarkMem(void)\n{\n    AssertThis(0);\n\n    SCRT_PAR::MarkMem();\n    MarkMemObj(_pmvie);\n    _cmvi.MarkMem();\n}\n#endif /* DEBUG */\n\nSCRT::SCRT(PGCB pgcb) : SCRT_PAR(pgcb)\n{\n    Assert(_pmvie == pvNil, \"SCRT block not cleared\");\n    Assert(_pstdio == pvNil, \"SCRT block not cleared\");\n    Assert(_cmvi.pglscend == pvNil, \"SCRT block not cleared\");\n    Assert(_cmvi.pglmvied == pvNil, \"SCRT block not cleared\");\n    Assert(_fError == fFalse, \"SCRT block not cleared\");\n    Assert(_fInited == fFalse, \"SCRT block not cleared\");\n    Assert(_iscenMac == 0, \"SCRT block not cleared\");\n}\n\nSCRT::~SCRT(void)\n{\n    PGOB pgob;\n\n    /* We might get released on Quit without exiting the Scene Sorter. */\n    if (_cmvi.pglscend != pvNil || _cmvi.pglmvied != pvNil)\n        _cmvi.Empty();\n    if (_pmvie != pvNil)\n        ReleasePpo(&_pmvie);\n\n    /* Kill the glass GOB (it's not a child of me) */\n    pgob = vpapp->Pkwa()->PgobFromHid(kidGenericDisableGlass);\n    ReleasePpo(&pgob);\n\n    if (_fInited)\n        vpapp->EnableAccel();\n\n    /* Report generic error */\n    if (_fError)\n        PushErc(ercSocSceneSortError);\n}\n\n/******************************************************************************\n    PscrtNew\n        Allocates and initializes a brand new SCRT.  If any necessary\n        initialization fails, cleans up and returns a nil pointer.\n\n    Arguments:\n        long hid -- the command hander ID for the SCRT\n\n    Returns: the pointer to the new SCRT, pvNil if the routine fails\n\n************************************************************ PETED ***********/\nPSCRT SCRT::PscrtNew(long hid, PMVIE pmvie, PSTDIO pstdio, PRCA prca)\n{\n    AssertPo(pmvie, 0);\n    AssertPo(pstdio, 0);\n\n    PSCRT pscrt = pvNil;\n    PGOB pgobPar;\n    RC rcRel;\n    GCB gcb;\n\n    if ((pgobPar = vapp.Pkwa()->PgobFromHid(kidBackground)) == pvNil)\n    {\n        Bug(\"Couldn't find background GOB\");\n        goto LFail;\n    }\n\n    rcRel.Set(krelZero, krelZero, krelOne, krelOne);\n    gcb.Set(hid, pgobPar, fgobNil, kginDefault, pvNil, &rcRel);\n\n    if ((pscrt = NewObj SCRT(&gcb)) == pvNil)\n        goto LFail;\n\n    if (!pscrt->_FInit(vpapp->Pkwa(), hid, prca))\n        goto LOom;\n    if (!pscrt->_FEnterState(ksnoInit))\n    {\n        Warn(\"GOK immediately destroyed!\");\n        pscrt = pvNil;\n        goto LFail;\n    }\n\n    if (!pmvie->FAddToCmvi(&pscrt->_cmvi, &pscrt->_iscenMac))\n    {\n    LOom:\n        ReleasePpo(&pscrt);\n        goto LFail;\n    }\n\n    pscrt->_pmvie = pmvie;\n    pscrt->_pmvie->AddRef();\n    pscrt->_iscenCur = LwMax(0, pscrt->_pmvie->Iscen());\n    pscrt->_iscenMac = pscrt->_pmvie->Cscen();\n    pscrt->_pstdio = pstdio;\n\nLFail:\n    return pscrt;\n}\n\n/******************************************************************************\n    _ErrorExit\n        Handle an error.  Destroys the easel and enqueues our cancel cid.\n\n************************************************************ PETED ***********/\nvoid SCRT::_ErrorExit(void)\n{\n    /* If someone's already reported an error, don't do any more work */\n    if (_fError)\n        return;\n    _fError = fTrue;\n\n    /* Notify myself that we're exiting */\n    vpcex->EnqueueCid(cidSceneSortCancel, this);\n}\n\n/******************************************************************************\n    FCmdInit\n        Initializes the Scene Sorter with the information about the easel\n        in kidspace.\n\n    Arguments:\n        PCMD pcmd -- pointer to the CMD data.  Extra params are as follows:\n            rglw[0] -- kid of the first thumbnail frame GOK\n            rglw[1] -- kid of the first scrollbar GOK button (scroll up)\n            rglw[2] -- number of GOKs in a single frame\n\n    Returns: fTrue if the command was handled by this routine.\n\n************************************************************ PETED ***********/\nbool SCRT::FCmdInit(PCMD pcmd)\n{\n    AssertThis(0);\n\n    bool fSuccess = fFalse;\n    long kidCur, kidThumb;\n    PGOK pgokFrame;\n\n    /* If I'm already inited, this must be for some other scene sorter */\n    if (_fInited)\n        return fFalse;\n\n    _fInited = fTrue;\n    vpapp->DisableAccel();\n\n    _kidFrameMin = pcmd->rglw[0];\n    _kidScbtnsMin = pcmd->rglw[1];\n    _cgokFrame = pcmd->rglw[2];\n    _cfrmPage = 0;\n\n    kidThumb = _kidFrameMin - 1;\n    kidCur = _kidFrameMin;\n\n    while ((pgokFrame = (PGOK)vpapp->Pkwa()->PgobFromHid(kidCur)) != pvNil)\n    {\n        PGOMP pgomp;\n        PGOB pgobThumb;\n\n        Assert(pgokFrame->FIs(kclsGOK), \"Frame GOB isn't a GOK\");\n\n        pgobThumb = (PGOK)pgokFrame->PgobFirstChild();\n        Assert(pgobThumb != pvNil, \"Frame has no children\");\n\n        pgomp = GOMP::PgompNew(pgobThumb, kidThumb--);\n        if (pgomp == pvNil)\n            goto LFail;\n        _cfrmPage++;\n        kidCur += _cgokFrame;\n    }\n\n    _cfrmPage--;\n\n    _iscenTop = (_iscenCur / _cfrmPage) * _cfrmPage;\n    fSuccess = _FResetThumbnails(fFalse);\n\nLFail:\n    if (!fSuccess)\n        _ErrorExit();\n\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdSelect\n        Selects the scene corresponding to the given thumbnail frame.\n\n    Arguments:\n        PCMD pcmd -- pointer to the CMD data.  Extra params are as follows:\n            rglw[0] -- the kid of the thumbnail frame\n\n    Returns: fTrue if the command was handled by this routine.\n\n************************************************************ PETED ***********/\nbool SCRT::FCmdSelect(PCMD pcmd)\n{\n    AssertThis(0);\n    Assert(pcmd->rglw[0] - _kidFrameMin < _cfrmPage * _cgokFrame, \"Bogus kid for select\");\n    Assert(_iscenMac > 0, \"Can't select scene in an empty movie\");\n\n    long iscen;\n\n    iscen = _IscenFromKid(pcmd->rglw[0]);\n    if (iscen < _iscenMac)\n    {\n        _iscenCur = iscen;\n\n        /* Fill in thumbnail for selection GOB */\n        if (_FResetThumbnails(fFalse))\n            _SetSelectionVis(fTrue);\n        else\n            _ErrorExit();\n    }\n\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdInsert\n        Inserts the currently selected scene before the scene that\n        corresponds to the given thumbnail frame.  If the given thumbnail\n        frame is larger than the last visible thumbnail frame, the scene is\n        inserted after the last scene visible on the easel.\n\n    Arguments:\n        PCMD pcmd -- pointer to the CMD data.  Extra params are as follows:\n            rglw[0] -- the kid of the frame to insert the scene before\n\n    Returns: fTrue if the command was handled by this routine.\n\n************************************************************ PETED ***********/\nbool SCRT::FCmdInsert(PCMD pcmd)\n{\n    AssertThis(0);\n    Assert(pcmd->rglw[0] - _kidFrameMin <= _cfrmPage * _cgokFrame, \"Bogus kid for insert\");\n\n    long iscenTo = _IscenFromKid(pcmd->rglw[0]);\n\n    if (iscenTo != _iscenCur)\n    {\n        AssertIn(iscenTo, 0, _iscenMac + 1);\n\n        _cmvi.pglscend->Move(_iscenCur, iscenTo);\n        if (iscenTo > _iscenCur)\n            iscenTo--;\n        _iscenCur = iscenTo;\n    }\n\n    /* Refill the thumbnails */\n    if (!_FResetThumbnails(fFalse))\n        _ErrorExit();\n\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdScroll\n        Scrolls the thumbnails by the given number of frames.  The sign of\n        the number of frames indicates whether to scroll forward (positive)\n        or backward (negative).  Sets the selected frame to kstBrowserSelected\n        if we're not drag & drop, or to kstBrowserScrollingSel if we are.\n\n    Arguments:\n        PCMD pcmd -- pointer to the CMD data.  Extra params are as follows:\n            rglw[0] -- the number of frames to scroll\n            rglw[1] -- non-zero if we're scrolling during drag & drop\n\n    Returns: fTrue if the command was handled by this routine.\n\n************************************************************ PETED ***********/\nbool SCRT::FCmdScroll(PCMD pcmd)\n{\n    AssertThis(0);\n\n    bool fHideSel = pcmd->rglw[1] != 0;\n    long iscenT;\n\n    iscenT = _iscenTop + pcmd->rglw[0];\n    if (FIn(iscenT, 0, _iscenMac) && _iscenTop != iscenT)\n    {\n        _SetSelectionVis(fFalse, fHideSel);\n        _iscenTop = iscenT;\n    }\n\n    /* Refill the thumbnails */\n    if (!_FResetThumbnails(fHideSel))\n        _ErrorExit();\n\n    _SetSelectionVis(fTrue, fHideSel);\n\n    return fTrue;\n}\n\n/******************************************************************************\n    _EnableScroll\n        Enables or disables the scrolling buttons, as appropriate.\n\n************************************************************ PETED ***********/\nvoid SCRT::_EnableScroll(void)\n{\n    PGOK pgok;\n\n    /* Enable or disable scroll up */\n    pgok = (PGOK)vapp.Pkwa()->PgobFromHid(_kidScbtnsMin);\n    if (pgok != pvNil)\n    {\n        long lwState;\n\n        lwState = (_iscenTop > 0) ? kstBrowserEnabled : kstBrowserDisabled;\n        Assert(pgok->FIs(kclsGOK), \"Scroll up button is not a GOK\");\n        if (pgok->Sno() != lwState)\n            pgok->FChangeState(lwState);\n    }\n    else\n        Bug(\"Can't find scroll up button\");\n\n    /* Enable or disable scroll down */\n    pgok = (PGOK)vapp.Pkwa()->PgobFromHid(_kidScbtnsMin + 1);\n    if (pgok != pvNil)\n    {\n        long lwState;\n\n        lwState = (_iscenTop + _cfrmPage < _iscenMac) ? kstBrowserEnabled : kstBrowserDisabled;\n        Assert(pgok->FIs(kclsGOK), \"Scroll down button is not a GOK\");\n        if (pgok->Sno() != lwState)\n            pgok->FChangeState(lwState);\n    }\n    else\n        Bug(\"Can't find scroll down button\");\n}\n\n/******************************************************************************\n    FCmdNuke\n        Deletes the currently selected scene from the movie.  Makes the\n        following scene the currently selected scene, unless there is no\n        such scene, in which case the scene immediately before the deleted\n        scene is the new currently selected scene.\n\n    Arguments:\n        PCMD pcmd -- pointer to the CMD data.  No additional parameters.\n\n    Returns: fTrue if the command was handled by this routine.\n\n************************************************************ PETED ***********/\nbool SCRT::FCmdNuke(PCMD pcmd)\n{\n    AssertThis(0);\n    Assert(_iscenMac > 0, \"Can't nuke a scene from an empty movie\");\n\n    SCEND scend;\n\n    _cmvi.pglscend->Get(_iscenCur, &scend);\n    Assert(!scend.fNuked, \"Nuking an already nuked scene\");\n    scend.fNuked = fTrue;\n    _cmvi.pglscend->Put(_iscenCur, &scend);\n    _cmvi.pglscend->Move(_iscenCur, _cmvi.pglscend->IvMac());\n    _iscenMac--;\n    if (_iscenMac > 0 && _iscenMac == _iscenCur)\n        _iscenCur--;\n\n    /* Refill the thumbnails */\n    if (!_FResetThumbnails(fFalse))\n        _ErrorExit();\n\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdDismiss\n        Alerts the Scene Sorter that the easel is about to go away.  If the\n        easel was not cancelled, the changes made in the easel are applied\n        to the movie.\n\n    Arguments:\n        PCMD pcmd -- pointer to the CMD data.  Checks cid to determine ok/cancel\n\n    Returns: fTrue if the command was handled by this routine.\n\n************************************************************ PETED ***********/\nbool SCRT::FCmdDismiss(PCMD pcmd)\n{\n    AssertThis(0);\n\n    PMVU pmvu;\n\n    if (pcmd->cid == cidSceneSortOk)\n    {\n        vapp.BeginLongOp();\n        if (_pmvie->FSetCmvi(&_cmvi))\n        {\n            if (_pmvie->Cscen() > 0 && _pmvie->Iscen() != _iscenCur)\n                _pmvie->FSwitchScen(_iscenCur);\n        }\n        else\n            _fError = fTrue;\n        _pmvie->ClearUndo();\n        vapp.EndLongOp();\n    }\n\n    /* Change to the tool for scenes */\n    pmvu = (PMVU)(_pmvie->PddgActive());\n    AssertPo(pmvu, 0);\n    pmvu->SetTool(toolDefault);\n    _pstdio->ChangeTool(toolDefault);\n\n    /* Clean up the internal data structures */\n    _cmvi.Empty();\n    ReleasePpo(&_pmvie);\n\n    Release();\n\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdPortfolio\n        Brings up the portfolio so that the user can append movies from file.\n\n    Arguments:\n        PCMD pcmd -- pointer to the CMD data.  No additional parameters.\n\n    Returns: fTrue if the command was handled by this routine.\n\n************************************************************ PETED ***********/\nbool SCRT::FCmdPortfolio(PCMD pcmd)\n{\n    AssertThis(0);\n\n    FNI fni;\n    MCC mcc(2, 2, 0);\n    PMVIE pmvie = pvNil;\n\n    if (!_pstdio->FGetFniMovieOpen(&fni))\n        goto LFail;\n\n    /* Specific reasons for failures are reported by lower-level routines.\n        There should be no reason to display an error here. */\n    pmvie = MVIE::PmvieNew(vpapp->FSlowCPU(), &mcc, &fni, cnoNil);\n    if (pmvie == pvNil)\n        goto LFail;\n\n    if (!pmvie->FAddToCmvi(&_cmvi, &_iscenMac))\n        goto LFail;\n\n    /* Refill the thumbnails */\n    if (!_FResetThumbnails(fFalse))\n        _ErrorExit();\n\nLFail:\n    ReleasePpo(&pmvie);\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdTransition\n        Sets the transition for the scene corresponding to the given frame.\n\n    Arguments:\n        PCMD pcmd -- pointer to command data.  Extra parms are as follows:\n            rglw[0] -- GOK id of the frame\n            rglw[1] -- which transition to use\n\n    Returns: fTrue if the command was handled by this routine\n\n************************************************************ PETED ***********/\nbool SCRT::FCmdTransition(PCMD pcmd)\n{\n    AssertThis(0);\n    Assert(_iscenMac > 0, \"Can't set transition when movie is empty\");\n\n    long iscen = _IscenFromKid(pcmd->rglw[0]);\n    SCEND scend;\n    PGOK pgokFrame = (PGOK)vapp.Pkwa()->PgobFromHid(pcmd->rglw[0]);\n\n    if (pgokFrame == pvNil)\n    {\n        Bug(\"kid doesn't exist\");\n        return fTrue;\n    }\n    Assert(pgokFrame->FIs(kclsGOK), \"kid isn't a GOK\");\n\n    AssertIn(iscen, 0, _iscenMac);\n    _cmvi.pglscend->Get(iscen, &scend);\n    scend.trans = _TransFromLw(pcmd->rglw[1] - 1);\n    _cmvi.pglscend->Put(iscen, &scend);\n\n    if (_FResetTransition(pgokFrame, scend.trans))\n        pgokFrame->InvalRc(pvNil);\n\n    return fTrue;\n}\n\n/******************************************************************************\n    _SetSelectionVis\n        Shows or hides the current selection.\n\n    Arguments:\n        bool fShow -- fTrue if we're to make the selection different from the\n            other frames\n        bool fHideSel -- fTrue if the selection state is hidden (actually,\n            whatever \"dragging\" state the script defines) instead of the usual\n            hilite.\n\n************************************************************ PETED ***********/\nvoid SCRT::_SetSelectionVis(bool fShow, bool fHideSel)\n{\n    if (_iscenCur < _iscenMac && FIn(_iscenCur - _iscenTop, 0, _cfrmPage))\n    {\n        PGOK pgok = (PGOK)vapp.Pkwa()->PgobFromHid(_KidFromIscen(_iscenCur));\n\n        if (pgok != pvNil)\n        {\n            long lwState;\n\n            Assert(pgok->FIs(kclsGOK), \"Didn't get a GOK GOB\");\n            lwState = fShow ? (fHideSel ? kstBrowserScrollingSel : kstBrowserSelected) : kstBrowserEnabled;\n            if (pgok->Sno() != lwState)\n                pgok->FChangeState(lwState);\n        }\n        else\n            Bug(\"Where's my frame to select?\");\n    }\n}\n\n/******************************************************************************\n    _FResetThumbnails\n        Refills the thumbnails for the scenes frames.  If the thumbnail\n        actually changed, force a redraw.\n\n    Arguments:\n        bool fHideSel -- fTrue if the current selection should be hidden\n            rather than highlighted\n\n    Returns: fTrue if it was successful in refilling the thumbnails\n\n************************************************************ PETED ***********/\nbool SCRT::_FResetThumbnails(bool fHideSel)\n{\n    bool fSuccess = fFalse;\n    long kidCur = _kidFrameMin - 1, kidFrameCur = _kidFrameMin;\n    long iscen = _iscenTop, cFrame = _cfrmPage;\n    long lwSelState = fHideSel ? kstBrowserScrollingSel : kstBrowserSelected;\n    PGOK pgokFrame;\n    PGOMP pgomp;\n    SCEND scend;\n\n    while (cFrame--)\n    {\n        bool fNewTransition;\n        PMBMP pmbmp;\n        RC rc;\n\n        pgokFrame = (PGOK)vapp.Pkwa()->PgobFromHid(kidFrameCur);\n        pgomp = GOMP::PgompFromHidScr(kidCur);\n\n        if (pgokFrame == pvNil || pgomp == pvNil)\n        {\n            Bug(\"Couldn't find thumbnail or its frame\");\n            goto LFail;\n        }\n        Assert(pgomp->FIs(kclsGOMP), \"Thumbnail GOB isn't a GOMP\");\n        Assert(pgokFrame->FIs(kclsGOK), \"Frame GOB isn't a GOK\");\n        if (iscen < _iscenMac)\n        {\n            long lwStateNew;\n\n            _cmvi.pglscend->Get(iscen, &scend);\n            pmbmp = scend.pmbmp;\n            lwStateNew = (iscen == _iscenCur) ? lwSelState : kstBrowserEnabled;\n            if (pgokFrame->Sno() != lwStateNew && !pgokFrame->FChangeState(lwStateNew))\n            {\n                goto LFail;\n            }\n\n            fNewTransition = _FResetTransition(pgokFrame, scend.trans);\n            iscen++;\n        }\n        else\n        {\n            pmbmp = pvNil;\n            if (pgokFrame->Sno() != kstBrowserDisabled && !pgokFrame->FChangeState(kstBrowserDisabled))\n            {\n                goto LFail;\n            }\n            fNewTransition = fFalse;\n        }\n        if (pgomp->FSetMbmp(pmbmp) || fNewTransition)\n            pgokFrame->InvalRc(pvNil);\n\n        kidCur--;\n        kidFrameCur += _cgokFrame;\n    }\n\n    /* Fill in selection frame; do this outside of the above loop, since the\n        selection is not always actually within the range of displayed scene\n        frames. */\n    if (_iscenMac > 0)\n    {\n        _cmvi.pglscend->Get(_iscenCur, &scend);\n        pgokFrame = (PGOK)vapp.Pkwa()->PgobFromHid(kidFrameCur);\n        Assert(pgokFrame != pvNil, \"Selection GOK is missing\");\n        Assert(pgokFrame->FIs(kclsGOK), \"Frame GOB isn't a GOK\");\n        pgomp = GOMP::PgompFromHidScr(kidCur);\n        Assert(pgomp != pvNil, \"Selection GOMP is missing\");\n        _FResetTransition(pgokFrame, scend.trans);\n        pgomp->FSetMbmp(scend.pmbmp);\n    }\n\n    _EnableScroll();\n\n    fSuccess = fTrue;\n\nLFail:\n    return fSuccess;\n}\n\nconst TRANS SCRT::_mplwtrans[] = {\n    transCut,\n    transDissolve,\n    transFadeToBlack,\n    transFadeToWhite,\n};\n#define kctrans (size(_mplwtrans) / size(_mplwtrans[0]))\n\n/******************************************************************************\n    _FResetTransition\n        Updates the transition buttons for a given scene frame.\n\n    Arguments:\n        PGOK pgokPar -- the parent scene frame GOK\n        TRANS trans  -- the transition state for this scene\n\n    Returns: fTrue if the scene has a new transition and the frame needs\n        to be updated\n\n************************************************************ PETED ***********/\nbool SCRT::_FResetTransition(PGOK pgokPar, TRANS trans)\n{\n    bool fRedrawTrans = fFalse;\n    PGOK pgokTrans, pgokThumb;\n    long lwTrans = kctrans, lwThis = _LwFromTrans(trans);\n    long lwStateCur, lwStateNew;\n\n    pgokThumb = (PGOK)pgokPar->PgobFirstChild();\n    Assert(pgokThumb->FIs(kclsGOK), \"First child wasn't a GOK\");\n    pgokTrans = (PGOK)pgokThumb->PgobNextSib();\n    Assert(pgokTrans->FIs(kclsGOK), \"Transition GOB isn't a GOK\");\n    while (lwTrans--)\n    {\n        lwStateCur = pgokTrans->Sno();\n        lwStateNew = (lwTrans != lwThis) ? kstDefault : kstSelected;\n        if (lwStateCur != lwStateNew)\n        {\n            fRedrawTrans = fTrue;\n            pgokTrans->FChangeState(lwStateNew);\n        }\n        pgokTrans = (PGOK)pgokTrans->PgobNextSib();\n        Assert(pgokTrans == pvNil || pgokTrans->FIs(kclsGOK), \"Transition GOB isn't a GOK\");\n    }\n\n    return fRedrawTrans;\n}\n\n/******************************************************************************\n    _TransFromLw\n        Map a long word to a transition\n\n    Arguments:\n        long lwTrans -- the scene sorter index of the transition\n\n    Returns: the actual transition\n\n************************************************************ PETED ***********/\nTRANS SCRT::_TransFromLw(long lwTrans)\n{\n    AssertIn(lwTrans, 0, kctrans);\n\n    return _mplwtrans[lwTrans];\n}\n\n/******************************************************************************\n    _LwFromTrans\n        Map a transition to the scene sorter long word\n\n    Arguments:\n        TRANS trans -- the transition\n\n    Returns: the scene sorter long\n\n************************************************************ PETED ***********/\nlong SCRT::_LwFromTrans(TRANS trans)\n{\n    long lw;\n\n    for (lw = 0; lw < kctrans; lw++)\n        if (_mplwtrans[lw] == trans)\n            break;\n\n#ifdef DEBUG\n    if (lw == kctrans)\n    {\n        Bug(\"Invalid trans\");\n        lw = 0;\n    }\n#endif /* DEBUG */\n\n    return lw;\n}\n\nRTCLASS(GOMP)\n\n#ifdef DEBUG\nvoid GOMP::AssertValid(ulong grf)\n{\n    GOMP_PAR::AssertValid(0);\n    AssertNilOrPo(_pmbmp, 0);\n}\n\nvoid GOMP::MarkMem(void)\n{\n    AssertThis(0);\n\n    GOMP_PAR::MarkMem();\n    MarkMemObj(_pmbmp);\n}\n#endif /* DEBUG */\n\n/******************************************************************************\n    GOMP\n        Constructor for the GOMP class.\n\n    Arguments:\n        PGCB pgcb    -- Gob Creation Block to be passed to the parent class\n        PMBMP pmbmp  -- the MBMP to use when drawing this GOMP\n\n************************************************************ PETED ***********/\nGOMP::GOMP(PGCB pgcb) : GOB(pgcb)\n{\n    _pmbmp = pvNil;\n    AssertThis(0);\n}\n\n/******************************************************************************\n    PgompNew\n        Creates a GOMP as a child of the given parent.  The new GOMP will\n        be exactly the same size as the parent, and will have the given hid.\n\n    Arguments:\n        PMBMP pmbmp  -- the MBMP to draw as this GOMP\n        PGOB pgobPar -- the parent of this GOMP\n        long hid     -- the hid (kid) of this GOMP\n\n    Returns: pointer to the GOMP if it succeeds, pvNil otherwise\n\n************************************************************ PETED ***********/\nPGOMP GOMP::PgompNew(PGOB pgobPar, long hid)\n{\n    AssertPo(pgobPar, 0);\n\n    PGOMP pgomp = pvNil;\n    GCB gcb;\n    RC rcRel(0, 0, krelOne, krelOne);\n\n    gcb.Set(hid, pgobPar, fgobNil, kginDefault, pvNil, &rcRel);\n\n    pgomp = NewObj GOMP(&gcb);\n\n    if (pgomp != pvNil && pgobPar->FIs(kclsGOK))\n    {\n        PT pt;\n        RC rcAbs;\n\n        ((GOK *)pgobPar)->GetPtReg(&pt);\n        pgomp->GetPos(&rcAbs, &rcRel);\n        rcAbs.Offset(-pt.xp, -pt.yp);\n        pgomp->SetPos(&rcAbs, &rcRel);\n    }\n\n    return pgomp;\n}\n\n/******************************************************************************\n    Draw\n        Draws the given GOMP\n\n    Arguments:\n        PGNV pgnv    -- the graphics environment in which to draw\n        RC *prcClip  -- the clipping rect; this is ignored\n\n************************************************************ PETED ***********/\nvoid GOMP::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n\n    RC rc;\n\n    if (_pmbmp == pvNil)\n        return;\n\n    _pmbmp->GetRc(&rc);\n    rc.OffsetToOrigin();\n    pgnv->DrawMbmp(_pmbmp, &rc);\n}\n\n/******************************************************************************\n    FSetMbmp\n        Replaces the MBMP for this GOMP with the given MBMP.\n\n    Arguments:\n        PMBMP pmbmp -- pointer to the MBMP\n\n    Returns: fTrue if the new MBMP is different from the old one\n\n************************************************************ PETED ***********/\nbool GOMP::FSetMbmp(PMBMP pmbmp)\n{\n    AssertNilOrPo(pmbmp, 0);\n\n    bool fRedraw = (_pmbmp != pmbmp);\n\n    ReleasePpo(&_pmbmp);\n    if (pmbmp != pvNil)\n        pmbmp->AddRef();\n    _pmbmp = pmbmp;\n\n    return fRedraw;\n}\n\n/******************************************************************************\n    PgompFromHidScr\n        Given an HID, return the GOMP with that hid\n\n    Arguments:\n        long hid -- the hid of the GOMP to find\n\n    Returns: pointer to the GOMP\n\n************************************************************ PETED ***********/\nPGOMP GOMP::PgompFromHidScr(long hid)\n{\n    PGOMP pgomp;\n\n    pgomp = (PGOMP)vapp.Pkwa()->PgobFromHid(hid);\n    if (pgomp != pvNil)\n        Assert(pgomp->FIs(kclsGOMP), \"GOB isn't a GOMP\");\n    return pgomp;\n}\n"
  },
  {
    "path": "src/studio/sectools.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\\\n *\n *\tsectools.cht\n *\n *\tAll secondary tools that appear in the studio (i.e. behind the doors).\n *\n *\tAuthor: Sean Selitrennikoff\n *\n * \tStatus: REVIEWED\n *\n\\*****************************************************************************/\n\n//\n//\n// The secondary tools bar doors.\n//\n//\nGOBCHUNK(\"Secondary tools - Closed\", kidDoors, kgokkNormal)\n\tDEFAULT_POSITION(kxpDoors, kypDoors, 20)\n\tACTION(fcustNil, fcustNil, fgrfstSceneDoorsOpen, kcrsHand, CHID(kstSceneDoorsOpen, kchidClick), cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstActorDoorsOpen, kcrsHand, CHID(kstActorDoorsOpen, kchidClick), cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstSoundDoorsOpen, kcrsHand, CHID(kstSoundDoorsOpen, kchidClick), cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstTextDoorsOpen, kcrsHand, CHID(kstTextDoorsOpen, kchidClick), cidNil, cnoNil)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\door0.bmp\",\n\tkxpregDoors, kypregDoors)\nREP_MBMPREG(CHID(kstSceneDoorsAllOpen, krepDefault), \"studio\\bmp\\door1.bmp\",\n\tkxpregDoors, kypregDoors)\nREP_MBMPREG(CHID(kstActorDoorsAllOpen, krepDefault), \"studio\\bmp\\door2.bmp\",\n\tkxpregDoors, kypregDoors)\nREP_MBMPREG(CHID(kstSoundDoorsAllOpen, krepDefault), \"studio\\bmp\\door3.bmp\",\n\tkxpregDoors, kypregDoors)\nREP_MBMPREG(CHID(kstTextDoorsAllOpen, krepDefault), \"studio\\bmp\\door4.bmp\",\n\tkxpregDoors, kypregDoors)\nREP_MBMPREG(CHID(kstSceneDoorsOpen, krepDefault), \"studio\\bmp\\door5.bmp\",\n\tkxpregDoors, kypregDoors)\nREP_MBMPREG(CHID(kstActorDoorsOpen, krepDefault), \"studio\\bmp\\door6.bmp\",\n\tkxpregDoors, kypregDoors)\nREP_MBMPREG(CHID(kstSoundDoorsOpen, krepDefault), \"studio\\bmp\\door7.bmp\",\n\tkxpregDoors, kypregDoors)\nREP_MBMPREG(CHID(kstTextDoorsOpen, krepDefault), \"studio\\bmp\\door8.bmp\",\n\tkxpregDoors, kypregDoors)\nCREATE_ANIMST(\"Scene doors created\", kstSceneDoorsOpen)\n\tIf(kidBackground->fAllSceneDoors);\n\t\tChangeStateThis(kstSceneDoorsAllOpen);\n\tEnd;\nENDCHUNK\nCHILD_SCRIPT(\"Scene doors clicked\", CHID(kstSceneDoorsOpen, kchidClick))\n\tkidBackground->fAllSceneDoors = fTrue;\n\tChangeStateThis(kstSceneDoorsAllOpen);\nENDCHUNK\nCREATE_ANIMST(\"Actor doors created\", kstActorDoorsOpen)\n\tIf(kidBackground->fAllActorDoors);\n\t\tChangeStateThis(kstActorDoorsAllOpen);\n\tEnd;\nENDCHUNK\nCHILD_SCRIPT(\"Actor doors clicked\", CHID(kstActorDoorsOpen, kchidClick))\n\tkidBackground->fAllActorDoors = fTrue;\n\tChangeStateThis(kstActorDoorsAllOpen);\nENDCHUNK\nCREATE_ANIMST(\"Sound doors created\", kstSoundDoorsOpen)\n\tIf(kidBackground->fAllSoundDoors);\n\t\tChangeStateThis(kstSoundDoorsAllOpen);\n\tEnd;\nENDCHUNK\nCHILD_SCRIPT(\"Sound doors clicked\", CHID(kstSoundDoorsOpen, kchidClick))\n\tkidBackground->fAllSoundDoors = fTrue;\n\tChangeStateThis(kstSoundDoorsAllOpen);\nENDCHUNK\nCREATE_ANIMST(\"Text doors created\", kstTextDoorsOpen)\n\tIf(kidBackground->fAllTextDoors);\n\t\tChangeStateThis(kstTextDoorsAllOpen);\n\tEnd;\nENDCHUNK\nCHILD_SCRIPT(\"Text doors clicked\", CHID(kstTextDoorsOpen, kchidClick))\n\tkidBackground->fAllTextDoors = fTrue;\n\tChangeStateThis(kstTextDoorsAllOpen);\nENDCHUNK\n\n\n\n//\n//\n// Settings' secondary tools.\n//\n//\nGOBCHUNK(\"Secondary tools - Settings\", kidSettingsBackground, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSettingsBackground, kypSettingsBackground, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kst1, krepDefault), \"studio\\bmp\\1par.bmp\",\n\tkxpregSettingsBackground, kypregSettingsBackground)\nCREATE_SCRIPT(\"Secondary tools, Settings -- create\")\n\tCreateChildThis(kidSettingsCameras, kidSettingsCameras);\n\tCreateChildThis(kidSceneSorter, kidSceneSorter);\n\tCreateChildThis(kidCCPSceneChopFwd, kidCCPSceneChopFwd);\n\tCreateChildThis(kidCCPSceneChopBack, kidCCPSceneChopBack);\n\n\t//\n\t// Initialize state variables and UI\n\t//\n\tIf (kidBackground->idscnDown == kidCutCopyPaste);\n\t\tChangeStateGob(kidCutCopyPaste, kstDefault);\n\tEnd;\n\tkidBackground->idscnDown = kidStudio;\nENDCHUNK\nCHILD_SCRIPT(\"Reset tools\", CHID1(kchidResetTools))\n\tIf (kidBackground->idscnDown != kidStudio);\n\t\tChangeStateGob(kidBackground->idscnDown, kstDefault);\n\t\tkidBackground->idscnDown = kidStudio;\n    End;\t\nENDCHUNK\n\n//\n// Camera views button.  Starts up the browser.\n//\nGOBCHUNK(\"Secondary tools - Cameras\", kidSettingsCameras, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSettingsCameras, kypSettingsCameras, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSettingsCameras)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\1view.bmp\",\n\tkxpregSettingsCameras, kypregSettingsCameras)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\1views.bmp\",\n\tkxpregSettingsCameras, kypregSettingsCameras)\nCHILD_SCRIPT(\"Secondary tools - Cameras\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidBrowserReady, khidStudio, kidBrwsCamera, kidBrowserFrame, kidBrowserPageFwd,\n\t\t\t   (kdxpCameraFrameBorder << 16) | kdypCameraFrameBorder);\nENDCHUNK\n\n//\n// Scene sorter.  Starts up the easel.\n//\nGOBCHUNK(\"SceneSorter\", kidSceneSorter, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSceneSorter, kypSceneSorter, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSceneSorter)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\1scen.bmp\",\n\tkxpregSceneSorter, kypregSceneSorter)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\1scens.bmp\",\n\tkxpregSceneSorter, kypregSceneSorter)\nCHILD_SCRIPT(\"Scene Sorter\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidBrowserReady, khidStudio, kidSSorterBackground, 0, 0,\n\t\t\t   (kdxpSSorterFrameBorder << 16) | kdypSSorterFrameBorder);\nENDCHUNK\n\n//\n// Chop Forward\n//\nGOBCHUNK(\"Scene chop fwd\", kidCCPSceneChopFwd, kgokkRectHit)\n\tDEFAULT_POSITION(kxpCCPSceneChopFwd, kypCCPSceneChopFwd, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCCPSceneChopFwd)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p3rmfw.bmp\",\n\tkxpregCCPSceneChopFwd, kypregCCPSceneChopFwd)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p3rmfwc.bmp\",\n\tkxpregCCPSceneChopFwd, kypregCCPSceneChopFwd)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault));\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepClicked))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstSelected, krepClicked))\nCHILD_SCRIPT(\"Chop Fwd - Mouse\", CHID(kstDefault, kchidClick))\n\tIf (kidBackground->idscnDown != GidThis());\n\t\tChangeStateGob(kidBackground->idscnDown, kstDefault);\n\t\tkidBackground->idscnDown = GidThis();\n    End;\n\tChangeStateThis(kstSelected);\n\tEnqueueCid(cidSetTool, khidStudio, chttSceneChopFwd, 0, 0, 0);\nENDCHUNK\n\n//\n// \t\tChop backwards\n//\nGOBCHUNK(\"Scene chop back\", kidCCPSceneChopBack, kgokkRectHit)\n\tDEFAULT_POSITION(kxpCCPSceneChopBack, kypCCPSceneChopBack, 100)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCCPSceneChopBack)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\p3rmbk.bmp\",\n\tkxpregCCPSceneChopBack, kypregCCPSceneChopBack)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\p3rmbkc.bmp\",\n\tkxpregCCPSceneChopBack, kypregCCPSceneChopBack)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault));\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepClicked))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstSelected, krepClicked))\nCHILD_SCRIPT(\"Chop back - Mouse\", CHID(kstDefault, kchidClick))\n\tIf (kidBackground->idscnDown != GidThis());\n\t\tChangeStateGob(kidBackground->idscnDown, kstDefault);\n\t\tkidBackground->idscnDown = GidThis();\n    End;\n\tChangeStateThis(kstSelected);\n\tEnqueueCid(cidSetTool, khidStudio, chttSceneChopBack, 0, 0, 0);\nENDCHUNK\n\n\n\n\n\n//\n//\n// Actors' secondary tools\n//\n//\n\n//\n// Background for all actor tools.  kidBackground->idDown is used to\n// to create a radio group within the tools.  See studio.cht for how\n// radio groups are done.\n//\n// kidBackground->fXYAxis holds state of XY vs XZ axis.\n//\n// kidBackground->fRGround holds state of Respect ground or not.\n//\nGOBCHUNK(\"Secondary tools - Actors\", kidActorsBackground, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsBackground, kypActorsBackground, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kst1, krepDefault), \"studio\\bmp\\2par.bmp\",\n\tkxpregActorsBackground, kypregActorsBackground)\nCREATE_SCRIPT(\"Secondary tools, Actors -- create\")\n\tCreateChildThis(kidActorsCompose, kidActorsCompose);\n\tCreateChildThis(kidActorsCostume, kidActorsCostume);\n\tCreateChildThis(kidActorsActionBrowser, kidActorsActionBrowser);\n\tCreateChildThis(kidActorsContinue, kidActorsContinue);\n\tCreateChildThis(kidActorsRotate, kidActorsRotate);\n\tCreateChildThis(kidActorsSooner, kidActorsSooner);\n\tCreateChildThis(kidActorsTransform, kidActorsTransform);\n\tCreateChildThis(kidActorsXY, kidActorsXY);\n\tCreateChildThis(kidActorsGround, kidActorsGround);\n\n\tIf( fBIO_FOUNDALL());\n\t\t// create the bio page button if all bio's found.\n\t\tCreateChildThis(kidActorsBiography, kidActorsBiography);\n\tEnd;\n\t\n\t//\n\t// Initialize state variables and UI\n\t//\n\tIf (kidBackground->idactDown == kidCutCopyPaste);\n\t\tChangeStateGob(kidCutCopyPaste, kstDefault);\n\tEnd;\n\tkidBackground->idactDown = kidStudio;\n\tkidBackground->chttActor = chttNone;\n\tChangeStateGob(kidActorsCompose, kstSelected);\nENDCHUNK\n\n//\n// Biography button\n//\nGOBCHUNK(\"Secondary tools - Actor, Biography\", kidActorsBiography, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsBiography, kypActorsBiography, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsBiography)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\2bio.bmp\",\n\tkxpregActorsBiography, kypregActorsBiography)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\2bios.bmp\",\n\tkxpregActorsBiography, kypregActorsBiography)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoTBkOpenWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"clicked bio page tool\", CHID(kstDefault, kchidClick))\n\tBIO_CREATEBOOK( BIO_GETPAGE(), fTrue, kidBackground );\nENDCHUNK\t\t\n//\n// Compose tool\n//\nGOBCHUNK(\"Secondary tools - Actor, Compose\", kidActorsCompose, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsCompose, kypActorsCompose, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsCompose)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\2comp.bmp\",\n\tkxpregActorsCompose, kypregActorsCompose)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\2comps.bmp\",\n\tkxpregActorsCompose, kypregActorsCompose)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepMouseDnOn))\nCHILD_SCRIPT(\"Compose\", CHID(kstDefault, kchidClick))\n\tIf(kidBackground->idactDown != GidThis());\n        ChangeStateThis(kstSelected);\n\tEnd;\nENDCHUNK\nCREATE_ANIMST(\"Compose\", kstSelected)\n\tIf(kidBackground->idactDown != GidThis());\n\t\tEnqueueCid(cidSetTool, khidStudio, chttCompose, 0, 0, 0);\n\t\tChangeStateGob(kidBackground->idactDown, kstDefault);\n\t\tkidBackground->idactDown = GidThis();\t\n\t\tkidBackground->chttActor = chttCompose;\n\tEnd;\nENDCHUNK\n\n//\n// Costume easel button.  Loads kcrsor only.\n//\nGOBCHUNK(\"Secondary tools - Actor, Costume\", kidActorsCostume, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsCostume, kypActorsCostume, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsCostume)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\2cost.bmp\",\n\tkxpregActorsCostume, kypregActorsCostume)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\2costc.bmp\",\n\tkxpregActorsCostume, kypregActorsCostume)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepMouseDnOn))\nCHILD_SCRIPT(\"Secondary tools - Actor, Costume\", CHID(kstDefault, kchidClick))\n\tIf(kidBackground->idactDown != GidThis());\n\t\tEnqueueCid(cidSetTool, khidStudio, chttActorEasel, 0, 0, 0);\n\t\tChangeStateGob(kidBackground->idactDown, kstDefault);\n        ChangeStateThis(kstSelected);\n\t\tkidBackground->idactDown = GidThis();\n\t\tkidBackground->chttActor = chttActorEasel;\n    End;\nENDCHUNK\n\n//\n// Button to load action tool.\n//\nGOBCHUNK(\"Secondary tools - Actor, Action\", kidActorsActionBrowser, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsActionBrowser, kypActorsActionBrowser, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsActionBrowser)\nENDCHUNK\nREP_MBMPREG(kcell1, \"studio\\bmp\\2act01.bmp\", kxpregActorsActionBrowser, kypregActorsActionBrowser)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nADOPT_MBMP(LAST_MBMP, CHID(kstFreeze, krepDefault))\nREP_MBMPREG(kcell2, \"studio\\bmp\\2act02.bmp\", kxpregActorsActionBrowser, kypregActorsActionBrowser)\nREP_MBMPREG(kcell3, \"studio\\bmp\\2act03.bmp\", kxpregActorsActionBrowser, kypregActorsActionBrowser)\nREP_MBMPREG(kcell4, \"studio\\bmp\\2act04.bmp\", kxpregActorsActionBrowser, kypregActorsActionBrowser)\nREP_MBMPREG(kcell5, \"studio\\bmp\\2act05.bmp\", kxpregActorsActionBrowser, kypregActorsActionBrowser)\nREP_MBMPREG(kcell6, \"studio\\bmp\\2act06.bmp\", kxpregActorsActionBrowser, kypregActorsActionBrowser)\nREP_ANIM(CHID(kstDefault, krepDefault), \"Actors, Action browser - Unselected state\")\n\tcell = 0;\n\tWhile();\n\t\tCell(kcell1 + cell, 0, 0, 10 );\n\t\tcell++;\n\t\tcell = cell % 6;\n\tEnd;\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\2acts.bmp\",\n\tkxpregActorsActionBrowser, kypregActorsActionBrowser)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepMouseDnOn))\nCREATE_SCRIPTST(\"Action tool\", kstSelected)\n\tIf(kidBackground->idactDown != GidThis());\n\t\tChangeStateGob(kidBackground->idactDown, kstDefault);\n\t\tkidBackground->idactDown = GidThis();\n    End;\nENDCHUNK\nCHILD_SCRIPT(\"Secondary tools - Action tool\", CHID(kstDefault, kchidClick))\n\tkidBackground->chttActor = chttAction;\n\tEnqueueCid(cidSetTool, khidStudio, chttAction,\n\t\t\t   kidBrowserFrame, kidBrowserPageFwd, (kdxpActionFrameBorder << 16) | kdypActionFrameBorder);\n\tIf(kidBackground->idactDown != GidThis());\n\t\tChangeStateThis(kstSelected);\n    End;\nENDCHUNK\n\n//\n// Action record same action button.\n//\nGOBCHUNK(\"Secondary tools - Actor, Continue\", kidActorsContinue, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsContinue, kypActorsContinue, 10)\n\tACTION(fcustNil, fcustNil, fgrfstDefault, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsContinue)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, chidNil, cidNil, kttActorsContinue)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\2cont.bmp\",\n\tkxpregActorsContinue, kypregActorsContinue)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\2conts.bmp\",\n\tkxpregActorsContinue, kypregActorsContinue)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepMouseDnOn))\nCREATE_SCRIPTST(\"Continue, Selected\", kstSelected)\n\tIf(kidBackground->idactDown != GidThis());\n\t\tChangeStateGob(kidBackground->idactDown, kstDefault);\n\t\tkidBackground->idactDown = GidThis();\n    End;\nENDCHUNK\nCHILD_SCRIPT(\"Continue\", CHID(kstDefault, kchidClick))\n\tIf(kidBackground->idactDown != GidThis());\n\t\tkidBackground->chttActor = chttRecordSameAction;\n\t\tEnqueueCid(cidSetTool, khidStudio, chttRecordSameAction, 0, 0, 0);\n\t\tChangeStateThis(kstSelected);\n    End;\nENDCHUNK\n\n//\n// Sooner/later button\n//\nGOBCHUNK(\"Secondary tools - Actor, Sooner\", kidActorsSooner, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsSooner, kypActorsSooner, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsSooner)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\2soon.bmp\",\n\tkxpregActorsSooner, kypregActorsSooner)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\2soons.bmp\",\n\tkxpregActorsSooner, kypregActorsSooner)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepMouseDnOn))\nCHILD_SCRIPT(\"Sooner/Later\", CHID(kstDefault, kchidClick))\n\tIf(kidBackground->idactDown != GidThis());\n\t\tEnqueueCid(cidSetTool, khidStudio, chttSooner, 0, 0, 0);\n\t\tChangeStateGob(kidBackground->idactDown, kstDefault);\n        ChangeStateThis(kstSelected);\n\t\tkidBackground->idactDown = GidThis();\n\t\tkidBackground->chttActor = chttSooner;\n    End;\nENDCHUNK\n\n//\n// Rotate button.  Starts popup.\n//\nGOBCHUNK(\"Rotate\", kidActorsRotate, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsRotate, kypActorsRotate, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsRotate)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\2rot.bmp\",\n\tkxpregActorsRotate, kypregActorsRotate)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\2rots.bmp\",\n\tkxpregActorsRotate, kypregActorsRotate)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Rotate\", CHID(kstDefault, kchidClick))\n\tChangeStateThis(kstSelected);\n\tChangeStateGob(kidRotateBackground, kstOpen);\nENDCHUNK\nCREATE_ANIMST(\"Rotate - deselecting\", kstDefault)\n\tChangeStateGob(kidActorsRotateX, kstDefault);\n\tChangeStateGob(kidActorsRotateY, kstDefault);\n\tChangeStateGob(kidActorsRotateZ, kstDefault);\n\tChangeStateGob(kidActorsRotateNorm, kstDefault);\nENDCHUNK\nCREATE_ANIMST(\"Rotate - selecting\", kstSelected)\n\tIf (kidBackground->chttActor == chttRotateX);\n\t\tChangeStateGob(kidActorsRotateX, kstSelected);\n\tElif (kidBackground->chttActor == chttRotateY);\n\t\tChangeStateGob(kidActorsRotateY, kstSelected);\n\tElif (kidBackground->chttActor == chttRotateZ);\n\t\tChangeStateGob(kidActorsRotateZ, kstSelected);\n\tElif (kidBackground->chttActor == chttRotateNorm);\n\t\tChangeStateGob(kidActorsRotateNorm, kstSelected);\n\tEnd;\nENDCHUNK\n\n//\n// Transform (squash/stretch).  Starts popup.\n//\nGOBCHUNK(\"Transform\", kidActorsTransform, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsTransform, kypActorsTransform, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsTransform)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\2tran.bmp\",\n\tkxpregActorsTransform, kypregActorsTransform)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\2trans.bmp\",\n\tkxpregActorsTransform, kypregActorsTransform)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Transform\", CHID(kstDefault, kchidClick))\n\tChangeStateThis(kstSelected);\n\tIf (StateGob(kidTransformBackground) != kstOpen);\n\t\tChangeStateGob(kidTransformBackground, kstOpen);\n\tEnd;\nENDCHUNK\nCREATE_ANIMST(\"Transform - deselecting\", kstDefault)\n\tChangeStateGob(kidActorsSquash, kstDefault);\n\tChangeStateGob(kidActorsShrink, kstDefault);\n\tChangeStateGob(kidActorsTransformNorm, kstDefault);\nENDCHUNK\nCREATE_ANIMST(\"Rotate - selecting\", kstSelected)\n\tIf (kidBackground->chttActor == chttSquash);\n\t\tChangeStateGob(kidActorsSquash, kstSelected);\n\tElif (kidBackground->chttActor == chttShrink);\n\t\tChangeStateGob(kidActorsShrink, kstSelected);\n\tElif (kidBackground->chttActor == chttTransformNorm);\n\t\tChangeStateGob(kidActorsTransformNorm, kstSelected);\n\tEnd;\nENDCHUNK\n\n//\n// XY/XZ toggle button\n//\nGOBCHUNK(\"Secondary tools - Actor, XY\", kidActorsXY, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsXY, kypActorsXY, 10)\n\tACTION(fcustNil, fcustNil, fgrfstClosed, kcrsHand, CHID(kstClosed, kchidClick), cidNil, kttActorsXY)\n\tACTION(fcustNil, fcustNil, fgrfstOpen, kcrsHand, CHID(kstOpen, kchidClick), cidNil, kttActorsXY)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstClosed, krepDefault), \"studio\\bmp\\2xy.bmp\",\n\tkxpregActorsXY, kypregActorsXY)\nADOPT_MBMP(LAST_MBMP, CHID(kstClosed, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstClosed, krepMouseDnOff))\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepMouseDnOn))\nREP_MBMPREG(CHID(kstClosed, krepMouseDnOn), \"studio\\bmp\\2xys.bmp\",\n\tkxpregActorsXY, kypregActorsXY)\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepDefault))\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepMouseDnOff))\nCREATE_SCRIPT(\"XY -- Create\")\n\tIf(kidBackground->fXYAxis);\n\t\tChangeStateThis(kstOpen);\n\tElse;\n\t\tChangeStateThis(kstClosed);\n\tEnd;\nENDCHUNK\nCREATE_ANIMST(\"XZ\", kstClosed)\n\tEnqueueCid(cidXZAxis, khidStudio, 0, 0, 0, 0);\n\tkidBackground->fXYAxis = fFalse;\nENDCHUNK\nCHILD_SCRIPT(\"XZ\", CHID(kstClosed, kchidClick))\n\tChangeStateThis(kstOpen);\n\tPlaySoundThis(kctgWave, kcnoStateOnWav, 0, 0x10000, 1, 0, 1);\nENDCHUNK\nCREATE_ANIMST(\"XY\", kstOpen)\n\tEnqueueCid(cidXYAxis, khidStudio, 0, 0, 0, 0);\n\tkidBackground->fXYAxis = fTrue;\nENDCHUNK\nCHILD_SCRIPT(\"XY\", CHID(kstOpen, kchidClick))\n\tChangeStateThis(kstClosed);\n\tPlaySoundThis(kctgWave, kcnoStateOffWav, 0, 0x10000, 1, 0, 1);\nENDCHUNK\n\n//\n// Respect ground toggle button.\n//\nGOBCHUNK(\"Secondary tools - Actor, Ground\", kidActorsGround, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsGround, kypActorsGround, 10)\n\tACTION(fcustNil, fcustNil, fgrfstClosed, kcrsHand, CHID(kstClosed, kchidClick), cidNil, kttActorsGround)\n\tACTION(fcustNil, fcustNil, fgrfstOpen, kcrsHand, CHID(kstOpen, kchidClick), cidNil, kttActorsGround)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstClosed, krepDefault), \"studio\\bmp\\2zero.bmp\",\n\tkxpregActorsGround, kypregActorsGround)\nADOPT_MBMP(LAST_MBMP, CHID(kstClosed, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstClosed, krepMouseDnOff))\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepMouseDnOn))\nREP_MBMPREG(CHID(kstClosed, krepMouseDnOn), \"studio\\bmp\\2zeros.bmp\",\n\tkxpregActorsGround, kypregActorsGround)\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepDefault))\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepMouseDnOff))\nADOPT_WAVE(kcnoStateOnWav, CHID(kstClosed, krepClicked))\nADOPT_WAVE(kcnoStateOffWav, CHID(kstOpen, krepClicked))\nCREATE_SCRIPT(\"Ground -- Create\")\n\tIf(kidBackground->fRGround);\n\t\tChangeStateThis(kstClosed);\n\tElse;\n\t\tChangeStateThis(kstOpen);\n\tEnd;\nENDCHUNK\nCREATE_ANIMST(\"Ground\", kstClosed)\n\tEnqueueCid(cidRespectGround, khidStudio, fTrue, 0, 0, 0);\n\tkidBackground->fRGround = fTrue;\nENDCHUNK\nCHILD_SCRIPT(\"Ground\", CHID(kstClosed, kchidClick))\n\tChangeStateThis(kstOpen);\nENDCHUNK\nCREATE_ANIMST(\"Ground\", kstOpen)\n\tEnqueueCid(cidRespectGround, khidStudio, fFalse, 0, 0, 0);\n\tkidBackground->fRGround = fFalse;\nENDCHUNK\nCHILD_SCRIPT(\"Ground\", CHID(kstOpen, kchidClick))\n\tChangeStateThis(kstClosed);\nENDCHUNK\n\n\n//\n// Sooner/later buttons.  These get created after the sooner/later\n// tool has been applied to an actor.\n//\n#define klwSLDelayMax 24\n#define klwSLDelayMin 12\n#define kdlwSLDelay 3\n\n//\n// Sooner button.\n//\nGOBCHUNK(\"Secondary tools - Sooner/Later\", kidActorsSoonerButton, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsSoonerButton, kypActorsSoonerButton, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstOpen, krepMouseDnOn), cidNil, kttActorsSoonerButton)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstClosed, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstOpen, krepDefault), \"studio\\bmp\\2sbtn.bmp\",\n\tkxpregActorsSoonerButton, kypregActorsSoonerButton)\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepMouseDnOff))\nREP_MBMPREG(CHID(kstOpen, krepMouseDnOn), \"studio\\bmp\\2sbtns.bmp\",\n\tkxpregActorsSoonerButton, kypregActorsSoonerButton)\nREP_ANIM(CHID(kstOpen, krepMouseDnOn), \"Pressed\")\n\t//\n\t// While pressed, keep soonering the actor -- speeds up longer it is held\n\t//\n\tlwDelay = klwSLDelayMax;\n\tWhile();\n\t\tPlaySoundThis(kctgWave, kcnoSyStepFWav, 0, 0x10000, 1, 0, 1);\n\t\tEnqueueCid(cidSooner, 0, 0, 0, 0, 0);\n\t\tCell(CHID(kstOpen, krepMouseDnOn), 0, 0, lwDelay);\n\t    If(lwDelay > lwSLDelayMin);\n\t\t\tlwDelay -= kdlwSLDelay;\n\t\tEnd;\n\tEnd;\nENDCHUNK\nCREATE_ANIMST(\"Secondary tools - Actors, Sooner button\", kstOpen)\n\tFilterCmdsThis(cidMouseDown, hidNil, kchidClick);\nENDCHUNK\nCREATE_ANIMST(\"Secondary tools - Actors, Sooner button\", kstClosed)\n\tFilterCmdsThis(cidMouseDown, hidNil, chidNil);\nENDCHUNK\nCHILD_SCRIPT(\"Secondary tools - Actors, Sooner button, track mouse\", kchidClick)\n\tkid = _parm[0];\n\n\t//\n\t// We cannot filter on ourselves, so don't check that one.\n\t//\n\tIf(kid != kidActorsLaterButton);\n\n\t\t//\n\t\t// Change to the select tool -- this must be the same sequence as\n\t\t// above in the select tool's click script.  Note: we eat this\n\t\t// mouse down and insert our own so that the setTool happens before\n\t\t// the mouse down.\n\t\t//\n\t\tChangeStateGob(kidActorsSooner, kstDefault);\n\t\tChangeStateGob(kidActorsCompose, kstSelected);\n\t\tkidBackground->idactDown = kidActorsCompose;\n\t\tkidBackground->chttActor = chttCompose;\n\t\tEnqueueCid(cidSetTool, khidStudio, chttCompose, 0, 0, 0);\n\t\tEnqueueCid(cidMouseDown, kid, _parm[2], _parm[3], _parm[4], _parm[5]);\n\t\tReturn(fTrue);\n\n\tEnd;\nENDCHUNK\n\n//\n// Later button\n//\nGOBCHUNK(\"Secondary tools - Sooner/Later\", kidActorsLaterButton, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsLaterButton, kypActorsLaterButton, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstOpen, kchidClick), cidNil, kttActorsLaterButton)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_RECT(CHID(kstClosed, krepDefault), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstOpen, krepDefault), \"studio\\bmp\\2lbtn.bmp\",\n\tkxpregActorsLaterButton, kypregActorsLaterButton)\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepMouseDnOff))\nREP_MBMPREG(CHID(kstOpen, krepMouseDnOn), \"studio\\bmp\\2lbtns.bmp\",\n\tkxpregActorsLaterButton, kypregActorsLaterButton)\nREP_ANIM(CHID(kstOpen, krepMouseDnOn), \"Pressed\")\n\t//\n\t// While pressed, later the actor\n\t//\n\tlwDelay = klwSLDelayMax;\n\tWhile();\n\t\tPlaySoundThis(kctgWave, kcnoSyStepFWav, 0, 0x10000, 1, 0, 1);\n\t\tEnqueueCid(cidLater, 0, 0, 0, 0, 0);\n\t\tCell(CHID(kstOpen, krepMouseDnOn), 0, 0, lwDelay);\n\t    If(lwDelay > lwSLDelayMin);\n\t\t\tlwDelay -= kdlwSLDelay;\n\t\tEnd;\n\tEnd;\nENDCHUNK\n\n\n\n//\n//\n// Sounds' secondary tools\n//\n//\n\n//\n// Background\n//\nGOBCHUNK(\"Secondary tools - Sounds\", kidSoundsBackground, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSoundsBackground, kypSoundsBackground, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kst1, krepDefault), \"studio\\bmp\\3par.bmp\",\n\tkxpregSoundsBackground, kypregSoundsBackground)\nCREATE_SCRIPT(\"Secondary tools, Sounds -- create\")\n\tCreateChildThis(kidSoundsPlayOnce, kidSoundsPlayOnce);\n\tCreateChildThis(kidSoundsListen, kidSoundsListen);\n\tCreateChildThis(kidSoundsRecord, kidSoundsRecord);\n\tCreateChildThis(kidSoundsLooping, kidSoundsLooping);\n\tCreateChildThis(kidSoundsAttachToCell, kidSoundsAttachToCell);\n\tCreateChildThis(kidPausesSound, kidPausesSound);\n\n\t//\n\t// Initialize state variables, current sound tool and UI\n\t//\n\tIf (kidBackground->idsndDown == kidCutCopyPaste);\n\t\tChangeStateGob(kidCutCopyPaste, kstDefault);\n\tEnd;\n\tkidBackground->idsndDown = kidSoundsListen;\n\tEnqueueCid(cidSetTool, khidStudio, chttListener, 0, 0, 0);\n\tChangeStateGob(kidSoundsListen, kstSelected);\nENDCHUNK\n\n//\n// Play once button\n//\nGOBCHUNK(\"Secondary tools - Sound, PlayOnce\", kidSoundsPlayOnce, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSoundsPlayOnce, kypSoundsPlayOnce, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSoundsPlayOnce)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\3sing.bmp\",\n\tkxpregSoundsPlayOnce, kypregSoundsPlayOnce)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\3sings.bmp\",\n\tkxpregSoundsPlayOnce, kypregSoundsPlayOnce)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepMouseDnOn))\nCHILD_SCRIPT(\"Sound, PlayOnce clicked\", CHID(kstDefault, kchidClick))\n\tIf(kidBackground->idsndDown != GidThis());\n        ChangeStateThis(kstSelected);\n    End;\nENDCHUNK\nCREATE_ANIMST(\"Sound, PlayOnce selected\", kstSelected)\n\tIf(kidBackground->idsndDown != GidThis());\n\t\tChangeStateGob(kidBackground->idsndDown, kstDefault);\n\t\tkidBackground->idsndDown = GidThis();\n\t\tEnqueueCid(cidSetTool, khidStudio, chttSounder, 0, 0, 0);\n    End;\nENDCHUNK\n\n\n//\n// Listen button\n//\nGOBCHUNK(\"Secondary tools - Sound, Listen\", kidSoundsListen, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSoundsListen, kypSoundsListen, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSoundsListen)\nENDCHUNK\nREP_MBMPREG(CHID(kst1, krepDefault), \"studio\\bmp\\3ear.bmp\",\n\tkxpregSoundsListen, kypregSoundsListen)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\3ears.bmp\",\n\tkxpregSoundsListen, kypregSoundsListen)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepMouseDnOn))\nCHILD_SCRIPT(\"Sounds Listener - click\", CHID(kstDefault, kchidClick))\n\tIf(kidBackground->idsndDown != GidThis());\n        ChangeStateThis(kstSelected);\n    End;\nENDCHUNK\nCREATE_ANIMST(\"Sounds Listener - selected\", kstSelected)\n\tIf(kidBackground->idsndDown != GidThis());\n\t\tChangeStateGob(kidBackground->idsndDown, kstDefault);\n\t\tkidBackground->idsndDown = GidThis();\n\t\tEnqueueCid(cidSetTool, khidStudio, chttListener, 0, 0, 0);\n    End;\nENDCHUNK\n\n//\n// Looping button\n//\nGOBCHUNK(\"Secondary tools - Sound, Looping\", kidSoundsLooping, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSoundsLooping, kypSoundsLooping, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSoundsLooping)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\3loop.bmp\",\n\tkxpregSoundsLooping, kypregSoundsLooping)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\3loops.bmp\",\n\tkxpregSoundsLooping, kypregSoundsLooping)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepMouseDnOn))\nCHILD_SCRIPT(\"Sound, Looping clicked\", CHID(kstDefault, kchidClick))\n\tIf(kidBackground->idsndDown != GidThis());\n        ChangeStateThis(kstSelected);\n    End;\nENDCHUNK\nCREATE_ANIMST(\"Sound, Looping selected\", kstSelected)\n\tIf(kidBackground->idsndDown != GidThis());\n\t\tChangeStateGob(kidBackground->idsndDown, kstDefault);\n\t\tkidBackground->idsndDown = GidThis();\n\t\tEnqueueCid(cidSetTool, khidStudio, chttLooper, 0, 0, 0);\n    End;\nENDCHUNK\n\n//\n// Attach a sound to a specific cell button\n//\nGOBCHUNK(\"Secondary tools - Sound, AttachToCell\", kidSoundsAttachToCell, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSoundsAttachToCell, kypSoundsAttachToCell, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSoundsAttachToCell)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\3rpt.bmp\",\n\tkxpregSoundsAttachToCell, kypregSoundsAttachToCell)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\3rpts.bmp\",\n\tkxpregSoundsAttachToCell, kypregSoundsAttachToCell)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepMouseDnOn))\nCHILD_SCRIPT(\"Sound, AttachToCell clicked\", CHID(kstDefault, kchidClick))\n\tIf(kidBackground->idsndDown != GidThis());\n        ChangeStateThis(kstSelected);\n    End;\nENDCHUNK\nCREATE_ANIMST(\"Sound, AttachToCell selected\", kstSelected)\n\tIf(kidBackground->idsndDown != GidThis());\n\t\tChangeStateGob(kidBackground->idsndDown, kstDefault);\n\t\tkidBackground->idsndDown = GidThis();\n\t\tEnqueueCid(cidSetTool, khidStudio, chttMatcher, 0, 0, 0);\n    End;\nENDCHUNK\n\n//\n// Pause until sounds end button\n//\nGOBCHUNK(\"Pauses - Sound\", kidPausesSound, kgokkRectHit)\n\tDEFAULT_POSITION(kxpPausesSound, kypPausesSound, 100)\n\tACTION(fcustNil, fcustNil, fgrfstClosed, kcrsHand, CHID(kstClosed, kchidClick), cidNil, kttPausesSound)\n\tACTION(fcustNil, fcustNil, fgrfstOpen, kcrsHand, CHID(kstOpen, kchidClick), cidNil, kttPausesSound)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault ), \"hidden\", 0, 0, 0, 0)\nREP_MBMPREG(CHID(kstClosed, krepDefault), \"studio\\bmp\\1note.bmp\",\n\tkxpregPausesSound, kypregPausesSound)\nADOPT_MBMP(LAST_MBMP, CHID(kstClosed, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstClosed, krepMouseDnOff))\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepMouseDnOn))\nREP_MBMPREG(CHID(kstClosed, krepMouseDnOn), \"studio\\bmp\\1notes.bmp\",\n\tkxpregPausesSound, kypregPausesSound)\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepDefault))\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstOpen, krepMouseDnOff))\nADOPT_WAVE(kcnoRSwitchWav, CHID(kstClosed, krepClicked))\nADOPT_WAVE(kcnoRSwitchWav, CHID(kstOpen, krepClicked))\nCREATE_ANIMST(\"Pause, sound\", kstDefault)\n\tIf(kidBackground->fpseDown);\n\t\tChangeStateThis(kstOpen);\n\tElse;\n\t\tChangeStateThis(kstClosed);\n\tEnd;\nENDCHUNK\nCHILD_SCRIPT(\"Pauses - Sound\", CHID(kstClosed, kchidClick))\n\tEnqueueCid(cidPauseForSound, khidStudio, 0, 0, 0, 0);\n\tChangeStateThis(kstOpen);\nENDCHUNK\nCREATE_ANIMST(\"Pause, sound\", kstClosed)\n\tkidBackground->fpseDown = fFalse;\nENDCHUNK\nCHILD_SCRIPT(\"Pauses - Sound\", CHID(kstOpen, kchidClick))\n\tEnqueueCid(cidClearPause, khidStudio, 0, 0, 0, 0);\n\tChangeStateThis(kstClosed);\nENDCHUNK\nCREATE_ANIMST(\"Pause, sound\", kstOpen)\n\tkidBackground->fpseDown = fTrue;\nENDCHUNK\n\n\n\n\n\n\n//\n//\n// Texts' secondary tools\n//\n//\n\n//\n// Background.  kidTextsBackground->tbxt stores the type of text box\n// that is currently selected.\n//\nGOBCHUNK(\"Secondary tools - Texts\", kidTextsBackground, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTextsBackground, kypTextsBackground, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kst1, krepDefault), \"studio\\bmp\\4par.bmp\",\n\tkxpregTextsBackground, kypregTextsBackground)\nCREATE_SCRIPT(\"Secondary tools, Texts -- create\")\n\tCreateChildThis(kidTextsBkgdColor, kidTextsBkgdColor);\n\tCreateChildThis(kidTextsFontShape, kidTextsFontShape);\n\tCreateChildThis(kidTextsFontColor, kidTextsFontColor);\n\tCreateChildThis(kidTextsFont, kidTextsFont);\n\tCreateChildThis(kidTextsSelect, kidTextsSelect);\n\tCreateChildThis(kidTextsFontSize, kidTextsFontSize);\n\tCreateChildThis(kidTextsScrollType, kidTextsScrollType);\n\n\t.tbxt = ktbxtStory;\n\n\tChangeStateGob(kidTextsSelect, kstSelected);\nENDCHUNK\n\n//\n// Background color popup.  Starts the popup.\n//\nGOBCHUNK(\"Secondary tools - Text, Bkgd Color\", kidTextsBkgdColor, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTextsBkgdColor, kypTextsBkgdColor, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttTextsBkgdColor)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\4back.bmp\",\n\tkxpregTextsBkgdColor, kypregTextsBkgdColor)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\4backs.bmp\",\n\tkxpregTextsBkgdColor, kypregTextsBkgdColor)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCLICK_SCRIPT(\"Background color clicked\")\n\tIf(kidBackground->idtbxDown != GidThis());\n\t\tChangeStateThis(kstSelected);\n\tEnd;\n\tEnqueueCid(cidTextBkgdColor, 0, 0, kidTextBkgdColorFrame,\n\t\tkidTextBkgdColorPageDown, (kdxpTextBkgdColorFrameBorder << 16) |\n\t\tkdypTextBkgdColorFrameBorder);\nENDCHUNK\n\n//\n// Font shaper popup.  Starts the popup.\n//\nGOBCHUNK(\"Secondary tools - Text, Font shape\", kidTextsFontShape, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTextsFontShape, kypTextsFontShape, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttTextsFontShape)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\4bold.bmp\",\n\tkxpregTextsFontShape, kypregTextsFontShape)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\4bolds.bmp\",\n\tkxpregTextsFontShape, kypregTextsFontShape)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCLICK_SCRIPT(\"Font shape clicked\")\n\tIf(kidBackground->idtbxDown != GidThis());\n\t\tChangeStateThis(kstSelected);\n\tEnd;\n\tEnqueueCid(cidTextStyle, 0, 0, kidTextStyleFrame, kidTextStylePageDown,\n\t\t\t(kdxpTextStyleFrameBorder << 16) | kdypTextStyleFrameBorder);\nENDCHUNK\n\n\n//\n// Font color popup.  Starts the popup.\n//\nGOBCHUNK(\"Secondary tools - Text, Font Color\", kidTextsFontColor, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTextsFontColor, kypTextsFontColor, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttTextsFontColor)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\4colr.bmp\",\n\tkxpregTextsFontColor, kypregTextsFontColor)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\4colrs.bmp\",\n\tkxpregTextsFontColor, kypregTextsFontColor)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCLICK_SCRIPT(\"Font color clicked\")\n\tIf(kidBackground->idtbxDown != GidThis());\n\t\tChangeStateThis(kstSelected);\n\tEnd;\n\tEnqueueCid(cidTextColor, 0, 0, kidTextColorFrame, kidTextColorPageDown,\n\t\t\t(kdxpTextColorFrameBorder << 16) | kdypTextColorFrameBorder);\nENDCHUNK\n\n\n//\n// Font popup.  Starts the popup.\n//\nGOBCHUNK(\"Secondary tools - Text, Font\", kidTextsFont, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTextsFont, kypTextsFont, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttTextsFont)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\4font.bmp\",\n\tkxpregTextsFont, kypregTextsFont)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\4fonts.bmp\",\n\tkxpregTextsFont, kypregTextsFont)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCLICK_SCRIPT(\"Font clicked\")\n\tIf(kidBackground->idtbxDown != GidThis());\n\t\tChangeStateThis(kstSelected);\n\tEnd;\n\tEnqueueCid(cidTextFont, 0, 0, kidTextFontFrame, kidTextFontPageDown,\n\t\t\t(kdxpTextFontFrameBorder << 16) | kdypTextFontFrameBorder);\nENDCHUNK\n\n\n//\n// Font size popup.  Starts the popup.\n//\nGOBCHUNK(\"Secondary tools - Text, FontSize\", kidTextsFontSize, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTextsFontSize, kypTextsFontSize, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttTextsFontSize)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\4size.bmp\",\n\tkxpregTextsFontSize, kypregTextsFontSize)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\4sizes.bmp\",\n\tkxpregTextsFontSize, kypregTextsFontSize)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCLICK_SCRIPT(\"Size clicked\")\n\tIf(kidBackground->idtbxDown != GidThis());\n\t\tChangeStateThis(kstSelected);\n\tEnd;\n\tEnqueueCid(cidTextSize, 0, 0, kidTextSizeFrame, kidTextSizePageDown,\n\t\t\t(kdxpTextSizeFrameBorder << 16) | kdypTextSizeFrameBorder);\nENDCHUNK\n\n\n//\n// Select/Edit tool.\n//\nGOBCHUNK(\"Secondary tools - Text, Select\", kidTextsSelect, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTextsSelect, kypTextsSelect, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttTextsSelect)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\4ins.bmp\",\n\tkxpregTextsSelect, kypregTextsSelect)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\4inss.bmp\",\n\tkxpregTextsSelect, kypregTextsSelect)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoSecToolWav, CHID(kstDefault, krepMouseDnOn))\nCREATE_ANIMST(\"Select Textbox, Selected\", kstSelected)\n\tIf(kidBackground->idtbxDown != GidThis());\n\t\tChangeStateGob(kidBackground->idtbxDown, kstDefault);\n\t\tkidBackground->chttTbox = chttTboxSelect;\n\t\tkidBackground->idtbxDown = GidThis();\n\t\tEnqueueCid(cidSetTool, khidStudio, chttTboxSelect, 0, 0, 0);\n    End;\nENDCHUNK\nCHILD_SCRIPT(\"Select Textbox\", CHID(kstDefault, kchidClick))\n\tIf(kidBackground->idtbxDown != GidThis());\n\t\tChangeStateThis(kstSelected);\n    End;\nENDCHUNK\n\n//\n// Text box type popup.  Starts the popup.\n//\nGOBCHUNK(\"Scroll Type\", kidTextsScrollType, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTextsScrollType, kypTextsScrollType, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttTextsScrollType)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\4scrl.bmp\",\n\tkxpregTextsScrollType, kypregTextsScrollType)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\4scrls.bmp\",\n\tkxpregTextsScrollType, kypregTextsScrollType)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Scroll Type\", CHID(kstDefault, kchidClick))\n\tChangeStateGob(kidScrollBackground, kstOpen);\nENDCHUNK\nCREATE_ANIMST(\"Scroll Type - deselecting\", kstDefault)\n\tIf (kidBackground->chttTbox == chttTboxScroll);\n\t\tChangeStateGob(kidTextsScroll, kstDefault);\n\tElif (kidBackground->chttTbox == chttTboxStory);\n\t\tChangeStateGob(kidTextsStory, kstDefault);\n\tEnd;\nENDCHUNK\nCREATE_ANIMST(\"Scroll type - selecting\", kstSelected)\n\tIf (kidBackground->chttTbox == chttTboxScroll);\n\t\tChangeStateGob(kidTextsScroll, kstSelected);\n\tElif (kidBackground->chttTbox == chttTboxStory);\n\t\tChangeStateGob(kidTextsStory, kstSelected);\n\tEnd;\nENDCHUNK\n\n"
  },
  {
    "path": "src/studio/splot.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    splot.cpp: Splot machine class\n\n    Primary Author: ******\n    Review Status: Reviewed\n\n***************************************************************************/\n#include \"studio.h\"\nASSERTNAME\n\nRTCLASS(SPLOT)\n\nBEGIN_CMD_MAP(SPLOT, GOK)\nON_CID_GEN(cidSplotInit, &SPLOT::FCmdInit, pvNil)\nON_CID_GEN(cidSplotDo, &SPLOT::FCmdSplot, pvNil)\nON_CID_GEN(cidSplotUpdate, &SPLOT::FCmdUpdate, pvNil)\nON_CID_GEN(cidSplotOk, &SPLOT::FCmdDismiss, pvNil)\nON_CID_GEN(cidSplotCancel, &SPLOT::FCmdDismiss, pvNil)\nEND_CMD_MAP_NIL()\n\n/******************************************************************************\n    PsplotNew\n        Creates a new SPLOT instance.\n\n    Returns: pvNil on failure, pointer to SPLOT on success\n\n************************************************************ PETED ***********/\nPSPLOT SPLOT::PsplotNew(long hidPar, long hid, PRCA prca)\n{\n    PSPLOT psplot = pvNil;\n    PGL pglclr = pvNil;\n    PGOB pgobPar;\n    RC rcRel;\n    GCB gcb;\n    CLOK clok(CMH::HidUnique());\n\n    if ((pgobPar = vapp.Pkwa()->PgobFromHid(hidPar)) == pvNil)\n    {\n        Bug(\"Couldn't find background GOB\");\n        goto LFail;\n    }\n\n    pglclr = GPT::PglclrGetPalette();\n    if (pglclr == pvNil)\n        goto LFail;\n\n    rcRel.Set(krelZero, krelZero, krelOne, krelOne);\n    gcb.Set(hid, pgobPar, fgobNil, kginDefault, pvNil, &rcRel);\n\n    if ((psplot = NewObj SPLOT(&gcb)) == pvNil)\n        goto LFail;\n\n    if (!psplot->_FInit(vpapp->Pkwa(), hid, prca))\n    {\n        ReleasePpo(&psplot);\n        goto LFail;\n    }\n    if (!psplot->_FEnterState(ksnoInit))\n    {\n        Warn(\"GOK immediately destroyed!\");\n        goto LFail;\n    }\n\n    /* Copy random number generator and palette */\n    psplot->_pglclrSav = pglclr;\n    psplot->_pglclrSav->AddRef();\n\nLFail:\n    ReleasePpo(&pglclr);\n    return psplot;\n}\n\n/******************************************************************************\n    FCmdInit\n        Initializes the splot machine; right now, just sets up the movie\n        and MVU for the splot machine, inside the given GOK parent.  In the\n        future, perhaps the content data structures can be inited here, and\n        only updated if we fail loading something (which would indicate that\n        the user removed a CD or something during the splot machine).\n\n    Arguments:\n        PCMD pcmd\n            rglw[0]  --  the kid of the parent frame to show the movie in\n\n    Returns:  fTrue, always handles the cid\n\n************************************************************ PETED ***********/\nbool SPLOT::FCmdInit(PCMD pcmd)\n{\n    AssertThis(0);\n    Assert(_pmvie == pvNil, \"Already Inited the Splot Machine\");\n\n    PMCC pmcc = pvNil;\n    PGOB pgobParent;\n    RC rcRel;\n    GCB gcb;\n\n    if ((pgobParent = vpapp->Pkwa()->PgobFromHid(pcmd->rglw[0])) == pvNil)\n    {\n        Bug(\"Parent GOB for view doesn't exist\");\n        goto LFail;\n    }\n\n    pmcc = NewObj MCC(kdxpWorkspace, kdypWorkspace, kcbStudioCache);\n    if (pmcc == pvNil)\n        goto LFail;\n\n    if ((_pmvie = MVIE::PmvieNew(vpapp->FSlowCPU(), pmcc)) == pvNil)\n        goto LFail;\n\n    _pmvie->SetFSoundsEnabled(fTrue);\n    rcRel.Set(krelZero, krelZero, krelOne, krelOne);\n    gcb.Set(khidDdg, pgobParent, fgobNil, kginDefault, pvNil, &rcRel);\n    if (_pmvie->PddgNew(&gcb) == pvNil)\n    {\n        ReleasePpo(&_pmvie);\n        goto LFail;\n    }\n    _pmvie->InvalViews();\n\nLFail:\n    ReleasePpo(&pmcc);\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdSplot\n        Actually generates some random content for the splot machine.  Grab\n        content here, since sometimes we'll have to retrieve content here\n        anyway, so it's cleaner to just always do it here.\n\n    Arguments:\n        PCMD pcmd\n            rglw[0]  --  1 if the background should be randomized\n            rglw[1]  --  1 if the camera should be\n            rglw[2]  --  1 if the actors/props should be\n            rglw[3]  --  1 if the music should be\n\n    Returns: fTrue, always handles the cid\n\n************************************************************ PETED ***********/\nbool SPLOT::FCmdSplot(PCMD pcmd)\n{\n    AssertThis(0);\n\n    bool fDirty = fFalse;\n    CKI cki;\n    THD thd;\n\n    vapp.BeginLongOp();\n\n    /* On failure, pretend that we didn't change anything */\n    _fDirty = fFalse;\n\n    /* Background.  New background implies new camera view */\n    if (_pbclBkgd == pvNil)\n    {\n        cki.ctg = kctgBkth;\n        cki.cno = cnoNil;\n        _pbclBkgd = BCL::PbclNew(pvNil, &cki, ctgNil, pvNil, fTrue);\n        if (_pbclBkgd == pvNil || _pbclBkgd->IthdMac() == 0)\n        {\n            ReleasePpo(&_pbclBkgd);\n            goto LFail;\n        }\n        pcmd->rglw[0] = 1;\n    }\n    if (pcmd->rglw[0] != 0)\n    {\n        long ithdBkgd;\n\n        ithdBkgd = _sflBkgd.LwNext(_pbclBkgd->IthdMac());\n        if (ithdBkgd != _ithdBkgd)\n            ReleasePpo(&_pbclCam);\n        _ithdBkgd = ithdBkgd;\n        pcmd->rglw[1] = 1;\n        fDirty = fTrue;\n    }\n\n    /* Camera */\n    if (_pbclCam == pvNil)\n    {\n        _pbclBkgd->GetThd(_ithdBkgd, &thd);\n        cki.ctg = kctgBkth;\n        cki.cno = thd.tag.cno;\n        _pbclCam = BCL::PbclNew(pvNil, &cki, kctgCath, pvNil, fTrue);\n        if (_pbclCam == pvNil || _pbclCam->IthdMac() == 0)\n        {\n            ReleasePpo(&_pbclCam);\n            goto LFail;\n        }\n\n        pcmd->rglw[1] = 1;\n    }\n    if (pcmd->rglw[1] != 0)\n    {\n        _ithdCam = _sflCam.LwNext(_pbclCam->IthdMac());\n        fDirty = fTrue;\n    }\n\n    /* Actor & Props */\n    if (_pbclActr == pvNil)\n    {\n        cki.ctg = kctgTmth;\n        cki.cno = cnoNil;\n        _pbclActr = BCL::PbclNew(pvNil, &cki, ctgNil, pvNil, fTrue);\n        if (_pbclActr == pvNil || _pbclActr->IthdMac() == 0)\n        {\n            ReleasePpo(&_pbclActr);\n            goto LFail;\n        }\n        pcmd->rglw[2] = 1;\n    }\n    if (_pbclProp == pvNil)\n    {\n        cki.ctg = kctgPrth;\n        cki.cno = cnoNil;\n        _pbclProp = BCL::PbclNew(pvNil, &cki, ctgNil, pvNil, fTrue);\n        if (_pbclProp == pvNil || _pbclProp->IthdMac() == 0)\n        {\n            ReleasePpo(&_pbclProp);\n            goto LFail;\n        }\n        pcmd->rglw[2] = 1;\n    }\n    if (pcmd->rglw[2] != 0)\n    {\n        _ithdActr = _sflActr.LwNext(_pbclActr->IthdMac());\n        _ithdProp = _sflProp.LwNext(_pbclProp->IthdMac());\n        fDirty = fTrue;\n    }\n\n    /* Background music */\n    if (_pbclSound == pvNil)\n    {\n        cki.ctg = kctgSmth;\n        cki.cno = cnoNil;\n        _pbclSound = BCL::PbclNew(pvNil, &cki, ctgNil, pvNil, fTrue);\n        if (_pbclSound == pvNil || _pbclSound->IthdMac() == 0)\n        {\n            ReleasePpo(&_pbclSound);\n            goto LFail;\n        }\n        pcmd->rglw[3] = 1;\n    }\n    if (pcmd->rglw[3] != 0)\n    {\n        _ithdSound = _sflSound.LwNext(_pbclSound->IthdMac());\n        fDirty = fTrue;\n    }\n\n    Assert(fDirty, \"Why bother calling this with no random elements?\");\n    _fDirty = fDirty;\nLFail:\n    vapp.EndLongOp();\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdUpdate\n        Show the new movie on the screen.\n\n    Arguments:\n        PCMD pcmd  --  no additional parameters\n\n    Returns: fTrue, always handles the cid\n\n************************************************************ PETED ***********/\nbool SPLOT::FCmdUpdate(PCMD pcmd)\n{\n    AssertThis(0);\n\n    if (_fDirty)\n    {\n        THD thd;\n        TAG tagCam, tagBkgd;\n\n        vapp.BeginLongOp();\n\n        if (_pmvie->Cscen() > 0 && !_pmvie->FRemScen(0))\n            goto LFail;\n\n        _pmvie->Pmsq()->SndOff();\n\n#ifdef BUG1907\n        // We will run out of disk space eventually if the HD cache is not\n        // periodically cleared.  We don't want to do it on every pull of the\n        // lever, because there's a significant time hit (especially if you're\n        // only pulling a \"small lever\", which only has to cache one new thing\n        // unless you clear the cache).  Ideally, this algorithm would only\n        // purge the cache if disk space is getting low on the volume that\n        // tagman is caching to, but there's currently no way to do that, so\n        // just purge every five pulls.\n        static long _cactPullTilClearCache = 5;\n\n        _pmvie->Pmsq()->StopAll(); // Make sure no sounds are streaming from HD cache\n        if (--_cactPullTilClearCache == 0)\n        {\n            vptagm->ClearCache(sidNil, ftagmFile); // Clear content out of HD cache\n            _cactPullTilClearCache = 5;\n        }\n#endif // BUG1907\n\n        /* No tags need to be opened, because all are from installed content */\n        /* Still need to ensure on HD though */\n        _pbclBkgd->GetThd(_ithdBkgd, &thd);\n        Assert(thd.tag.sid != ksidUseCrf, \"Need to open tag before using it\");\n        if (!BKGD::FCacheToHD(&thd.tag))\n            goto LFail;\n        if (!_pmvie->FAddScen(&thd.tag))\n            goto LFail;\n        tagBkgd = thd.tag;\n        AssertPo(_pmvie->Pscen(), 0);\n\n        _pmvie->Pmsq()->SndOnLong();\n\n        _pbclCam->GetThd(_ithdCam, &thd);\n        if (!vptagm->FBuildChildTag(&tagBkgd, thd.chid, kctgCam, &tagCam))\n            goto LFail;\n        if (!vptagm->FCacheTagToHD(&tagCam))\n            goto LFail;\n        if (!_pmvie->Pscen()->FChangeCam(thd.chid))\n            goto LFail;\n\n        _pbclActr->GetThd(_ithdActr, &thd);\n        Assert(thd.tag.sid != ksidUseCrf, \"Need to open tag before using it\");\n        if (!vptagm->FCacheTagToHD(&thd.tag))\n            goto LFail;\n        if (!_pmvie->FInsActr(&thd.tag))\n            goto LFail;\n\n        _pbclProp->GetThd(_ithdProp, &thd);\n        Assert(thd.tag.sid != ksidUseCrf, \"Need to open tag before using it\");\n        if (!vptagm->FCacheTagToHD(&thd.tag))\n            goto LFail;\n        if (!_pmvie->FInsActr(&thd.tag))\n            goto LFail;\n\n        _pmvie->Pscen()->SelectActr(pvNil);\n        _pmvie->PmvuCur()->SetTool(toolDefault);\n\n        _pbclSound->GetThd(_ithdSound, &thd);\n        Assert(thd.tag.sid != ksidUseCrf, \"Need to open tag before using it\");\n        if (!vptagm->FCacheTagToHD(&thd.tag))\n            goto LFail;\n        if (!_pmvie->FAddBkgdSnd(&thd.tag, tribool::tYes, tribool::tNo))\n            goto LFail;\n\n        _pmvie->Pmsq()->PlayMsq();\n\n        vapp.EndLongOp();\n    }\n\nLFail:\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdDismiss\n        Okays or Cancels the Splot Machine.\n\n    Arguments:\n        PCMD pcmd  --  no additional parameters\n\n    Returns: fTrue, always handles the cid\n\n************************************************************ PETED ***********/\nbool SPLOT::FCmdDismiss(PCMD pcmd)\n{\n    AssertThis(0);\n\n    if (pcmd->cid == cidSplotOk)\n    {\n        /* Attempt to release the current scene so that we'll force a palette\n            update when we come back into the studio. Don't sweat a failure */\n        _pmvie->FSwitchScen(ivNil);\n        _pmvie->ClearUndo();\n        vapp.HandoffMovie(_pmvie);\n    }\n#ifdef BUG1907\n    else\n    {\n        _pmvie->Pmsq()->StopAll();             // Make sure no sounds are streaming from HD cache\n        vptagm->ClearCache(sidNil, ftagmFile); // Clear content out of HD cache\n        // Note: could clear out the RAM cache too, but I'm keeping this change\n        // as small as possible.\n    }\n#endif // BUG1907\n\n    Release();\n\n    return fTrue;\n}\n\nSPLOT::~SPLOT(void)\n{\n    if (_pmvie != pvNil)\n    {\n        /* This should be freed when its parent, the Splot Machine View gob, is\n            freed */\n        Assert(_pmvie->PddgGet(0) == pvNil, \"MVU wasn't freed\");\n\n        _pmvie->Pmsq()->StopAll();\n        _pmvie->Pmsq()->SndOnShort();\n    }\n\n    if (_pglclrSav != pvNil)\n    {\n        vapp.UpdateMarked();\n        GPT::SetActiveColors(_pglclrSav, fpalIdentity);\n        ReleasePpo(&_pglclrSav);\n    }\n\n    ReleasePpo(&_pmvie);\n    ReleasePpo(&_pbclBkgd);\n    ReleasePpo(&_pbclCam);\n    ReleasePpo(&_pbclActr);\n    ReleasePpo(&_pbclProp);\n    ReleasePpo(&_pbclSound);\n}\n\n#ifdef DEBUG\nvoid SPLOT::AssertValid(ulong grf)\n{\n    SPLOT_PAR::AssertValid(grf);\n    AssertPo(_pglclrSav, 0);\n\n    AssertNilOrPo(_pmvie, 0);\n    AssertNilOrPo(_pbclBkgd, 0);\n    AssertNilOrPo(_pbclCam, 0);\n    AssertNilOrPo(_pbclActr, 0);\n    AssertNilOrPo(_pbclProp, 0);\n    AssertNilOrPo(_pbclSound, 0);\n}\n\nvoid SPLOT::MarkMem(void)\n{\n    SPLOT_PAR::MarkMem();\n    MarkMemObj(_pglclrSav);\n    MarkMemObj(_pmvie);\n    MarkMemObj(_pbclBkgd);\n    MarkMemObj(_pbclCam);\n    MarkMemObj(_pbclActr);\n    MarkMemObj(_pbclProp);\n    MarkMemObj(_pbclSound);\n    _sflBkgd.MarkMem();\n    _sflCam.MarkMem();\n    _sflActr.MarkMem();\n    _sflProp.MarkMem();\n    _sflSound.MarkMem();\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/studio/stdiobrw.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n  stdiobrw.cpp\n\n  Author: ******\n\n  Date: April, 1995\n\n    Review Status: Reviewed\n\n    This file contains the code which invokes browsers\n    and applies browser selections.\n\n    Studio Independent Browsers:\n    BASE --> CMH --> GOK\t-->\tBRWD  (Browser display class)\n    BRWD --> BRWL  (Browser list class; chunky based)\n    BRWD --> BRWT  (Browser text class)\n    BRWD --> BRWL --> BRWN  (Browser named list class)\n\n    Studio Dependent Browsers:\n    BRWD --> BRWT --> BRWA  (Browser action class)\n    BRWD --> BRWL --> BRWP\t(Browser prop/actor class)\n    BRWD --> BRWL --> BRWB\t(Browser background class)\n    BRWD --> BRWL --> BRWC\t(Browser camera class)\n    BRWD --> BRWL --> BRWN --> BRWM (Browser music class)\n    BRWD --> BRWL --> BRWN --> BRWM --> BRWI (Browser import sound class)\n\nNOTE:  In this implementation, browsers are considered to be studio related.\nIf for any reason one wanted to decouple them from the studio, then\tit would\nbe easy for browser.cpp to enqueue cids for\n    1) SetTagTool and\n    2) ApplySelection (which would take a browser identifying argument).\nThe studio (or anyone else) could then apply all browser based selections.\n\nThe chunky based browsers come in two categories:\n    1) Content spanning potentially multiple products (eg, bkgds, actors)\n    2) Content which is a child of an existing selection.\nBrowsers of type 1) are cno based.  They sort on the basis of the cno of the\nthumbnail chunk. The contents of the thumbnail chunk then point to the cno\nof the CD content.\nBrowsers of type 2) are chid based. They sort on the basis of the chid of the\nthumbnail chunk.  The contents of the thumbnail chunk then point to the chid\nof the CD content.\n\n***************************************************************************/\n\n#include \"soc.h\"\n#include \"studio.h\"\n\nASSERTNAME\n\n/***************************************************************************\n *\n * Handle Browser Ready command\n * A Browser Ready command signals the invocation of an empty browser\n *\n * Parameters:\n *\tpcmd - Pointer to the command to process.\n *\tpcmd[0] = kid of Browser (type)\n *  pcmd[1] = kid first frame.  Thumb kid is this + kidBrowserThumbOffset\n *  pcmd[2] = kid of first control\n *  pcmd[3] = x,y offsets\n *\n * Returns:\n * \tfTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nconst long kglpbrcnGrow = 5;\n\nbool STDIO::FCmdBrowserReady(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    bool fSuccess = fFalse;\n    PBRCN pbrcn = pvNil; // Browser context carryover\n    PBRWD pbrwd = pvNil;\n    CKI ckiRoot;\n    TAG tag;\n    PTAG ptag;\n    PMVU pmvu;\n    long thumSelect;\n    long sid = ((APP *)vpappb)->SidProduct();\n    long brwdid = pcmd->rglw[0];\n\n    vapp.BeginLongOp();\n\n    if (pvNil == _pmvie)\n        goto LFail;\n\n    AssertPo(_pmvie, 0);\n\n    // Optionally Save/Retrieve Browser Context\n    if (_pglpbrcn == pvNil)\n    {\n        if (pvNil == (_pglpbrcn = GL::PglNew(size(PBRCN), kglpbrcnGrow)))\n            goto LFail;\n    }\n\n    // Include optional argument pbrcn if you want context carryover\n    pbrcn = _PbrcnFromBrwdid(brwdid);\n    AssertNilOrPo(pbrcn, 0);\n\n    switch (brwdid)\n    {\n    case kidBrwsBackground:\n        // Search for background thumbs of any cno\n        ckiRoot.cno = cnoNil;\n        ckiRoot.ctg = kctgBkth;\n\n        if (pvNil == _pmvie->Pscen())\n        {\n            thumSelect = (long)cnoNil;\n            TrashVar(&sid);\n        }\n        else\n        {\n            Assert(pvNil != _pmvie->Pscen()->Pbkgd(), \"Pbkgd() Nil\");\n            thumSelect = _pmvie->Pscen()->Pbkgd()->Cno();\n            AssertDo(_pmvie->Pscen()->FGetTagBkgd(&tag), \"Missing background event\");\n            sid = tag.sid;\n        }\n\n        pbrwd = (PBRWD)(BRWB::PbrwbNew(_pcrm));\n        if (pvNil == pbrwd)\n            goto LFail;\n\n        // Create BRCNL for context carryover (optional choice)\n        if (pbrcn == pvNil)\n            pbrcn = NewObj BRCNL;\n\n        // Selection is cno based\n        if (!((PBRWB)pbrwd)->FInit(pcmd, kbwsCnoRoot, thumSelect, sid, ckiRoot, ctgNil, this, (PBRCNL)pbrcn))\n        {\n            goto LFail;\n        }\n        break;\n\n    case kidBrwsCamera:\n        if (pvNil == _pmvie->Pscen())\n            goto LFail;\n        AssertPo(_pmvie->Pscen(), 0);\n        Assert(pvNil != _pmvie->Pscen()->Pbkgd(), \"Pbkgd() Nil\");\n\n        // Search for camera views, children of the current bkgd\n        ckiRoot.ctg = kctgBkth;\n        ckiRoot.cno = _pmvie->Pscen()->Pbkgd()->Cno();\n\n        thumSelect = _pmvie->Pscen()->Pbkgd()->Icam();\n        pbrwd = (PBRWD)(BRWC::PbrwcNew(_pcrm));\n        if (pvNil == pbrwd)\n            goto LFail;\n\n        // Create BRCNL for context carryover (optional choice)\n        if (pbrcn == pvNil)\n            pbrcn = NewObj BRCNL;\n        AssertDo(_pmvie->Pscen()->FGetTagBkgd(&tag), \"Missing background event\");\n        if (!((PBRWC)pbrwd)->FInit(pcmd, kbwsChid, thumSelect, tag.sid, ckiRoot, kctgCath, this, (PBRCNL)pbrcn))\n        {\n            goto LFail;\n        }\n        break;\n\n    case kidBrwsProp:\n        ckiRoot.ctg = kctgPrth;\n        pbrwd = (PBRWD)(BRWP::PbrwpNew(_pcrm, kidPropGlass));\n        goto LActor;\n    case kidBrwsActor:\n        ckiRoot.ctg = kctgTmth;\n        pbrwd = (PBRWD)(BRWP::PbrwpNew(_pcrm, kidActorGlass));\n    LActor:\n        ckiRoot.cno = cnoNil;\n        Assert(pvNil != _pmvie->Pscen(), \"Actor browser requires scene\");\n        thumSelect = ivNil;\n        if (pvNil == pbrwd)\n            goto LFail;\n\n        // Create BRCNL for context carryover (optional choice)\n        if (pbrcn == pvNil)\n            pbrcn = NewObj BRCNL;\n        if (!((PBRWP)pbrwd)->FInit(pcmd, kbwsCnoRoot, thumSelect, 0, ckiRoot, ctgNil, this, (PBRCNL)pbrcn))\n        {\n            goto LFail;\n        }\n        break;\n\n    case kidBrwsAction:\n        if ((pvNil == _pmvie->Pscen()) || (pvNil == _pmvie->Pscen()->PactrSelected()))\n        {\n            Bug(\"No actor selected in action browser\");\n            goto LFail;\n        }\n        thumSelect = _pmvie->Pscen()->PactrSelected()->AnidCur();\n        pbrwd = (PBRWD)BRWA::PbrwaNew(_pcrm);\n\n        if (pvNil == pbrwd)\n            goto LFail;\n\n        // Build the string table before initializing\n        if (!((PBRWA)pbrwd)->FBuildGst(_pmvie->Pscen()))\n            goto LFail;\n        if (!((PBRWT)pbrwd)->FInit(pcmd, thumSelect, thumSelect, this))\n            goto LFail;\n        break;\n\n    case kidSSorterBackground:\n        if (SCRT::PscrtNew(brwdid, _pmvie, this, _pcrm) == pvNil)\n            PushErc(ercSocCantInitSceneSort);\n        vapp.EndLongOp();\n        return fTrue;\n\n    case kidBrwsFX:\n        ckiRoot.ctg = kctgSfth;\n        pbrwd = (PBRWD)(BRWM::PbrwmNew(_pcrm, kidFXGlass, stySfx, this));\n        goto LMusic;\n    case kidBrwsSpeech:\n        ckiRoot.ctg = kctgSvth;\n        pbrwd = (PBRWD)(BRWM::PbrwmNew(_pcrm, kidSpeechGlass, stySpeech, this));\n        goto LMusic;\n    case kidBrwsMidi:\n        ckiRoot.ctg = kctgSmth;\n        pbrwd = (PBRWD)(BRWM::PbrwmNew(_pcrm, kidMidiGlass, styMidi, this));\n    LMusic:\n        if (pvNil == pbrwd)\n            goto LFail;\n\n        // Search for background thumbs of any cno\n        ckiRoot.cno = cnoNil;\n        thumSelect = (long)cnoNil;\n\n        // Create BRCNL for context carryover (optional choice)\n        if (pbrcn == pvNil)\n            pbrcn = NewObj BRCNL;\n\n        pmvu = (PMVU)(Pmvie()->PddgGet(0));\n        ptag = pmvu->PtagTool();\n        if (ptag->sid != ksidInvalid)\n        {\n            thumSelect = ptag->cno;\n            sid = ptag->sid;\n        }\n        // Selection is cno based\n        if (!((PBRWM)pbrwd)->FInit(pcmd, kbwsCnoRoot, thumSelect, sid, ckiRoot, ctgNil, this, (PBRCNL)pbrcn))\n        {\n            goto LFail;\n        }\n        break;\n\n    //\n    // The import browser is set up on top of the normal sound browser\n    // rglw[1] = pfniMovie of movie to be scanned.\n    //\n    case kidBrwsImportFX:\n        ckiRoot.ctg = kctgSfth;\n        pbrwd = (PBRWD)(BRWI::PbrwiNew(_pcrm, kidSoundsImportGlass, stySfx));\n        goto LImport;\n    case kidBrwsImportSpeech:\n        ckiRoot.ctg = kctgSvth;\n        pbrwd = (PBRWD)(BRWI::PbrwiNew(_pcrm, kidSoundsImportGlass, stySpeech));\n        goto LImport;\n    case kidBrwsImportMidi:\n        ckiRoot.ctg = kctgSmth;\n        pbrwd = (PBRWD)(BRWI::PbrwiNew(_pcrm, kidSoundsImportGlass, styMidi));\n    LImport:\n        if (pvNil == pbrwd)\n            goto LFail;\n        // Build the string table before initializing the BRWD\n        if (!((PBRWI)pbrwd)->FInit(pcmd, ckiRoot, this))\n        {\n            goto LFail;\n        }\n        break;\n\n    case kidRollCallProp:\n        Assert(pvNil == _pbrwrProp, \"Roll Call browser already up\");\n        _pbrwrProp = BRWR::PbrwrNew(_pcrm, kidRollCallProp);\n        pbrwd = (PBRWD)_pbrwrProp;\n        if (pvNil == pbrwd)\n            goto LFail;\n\n        // Create the cno map from tmpl-->gokd\n        if (_pglcmg == pvNil)\n        {\n            if (pvNil == (_pglcmg = GL::PglNew(size(CMG), kglcmgGrow)))\n                goto LFail;\n            _pglcmg->SetMinGrow(kglcmgGrow);\n        }\n\n        if (!_pbrwrProp->FInit(pcmd, kctgPrth, ivNil, this))\n            goto LFail;\n        break;\n\n    case kidRollCallActor:\n        Assert(pvNil == _pbrwrActr, \"Roll Call browser already up\");\n        _pbrwrActr = BRWR::PbrwrNew(_pcrm, kidRollCallActor);\n        pbrwd = (PBRWD)_pbrwrActr;\n        if (pvNil == pbrwd)\n            goto LFail;\n\n        // Create the cno map from tmpl-->gokd\n        if (_pglcmg == pvNil)\n        {\n            if (pvNil == (_pglcmg = GL::PglNew(size(CMG), kglcmgGrow)))\n                goto LFail;\n            _pglcmg->SetMinGrow(kglcmgGrow);\n        }\n\n        if (!_pbrwrActr->FInit(pcmd, kctgTmth, ivNil, this))\n            goto LFail;\n        break;\n\n    default:\n        RawRtn();\n        break;\n    }\n\n    Assert(pvNil != pbrwd, \"Logic error\");\n    pbrwd->FDraw(); // Ignore failure : reported elsewhere\n\n    //\n    // Optionally Add new browser to the gl for context\n    // carryover between browser instantiations\n    //\n    if (pvNil != pbrcn && pvNil == _PbrcnFromBrwdid(brwdid))\n    {\n        if (!_pglpbrcn->FAdd(&pbrcn))\n        {\n            goto LFail;\n        }\n    }\n\n    fSuccess = fTrue;\nLFail:\n    if (!fSuccess)\n    {\n        ReleasePpo(&pbrcn);\n        ReleasePpo(&pbrwd);\n    }\n    vpcex->EnqueueCid(cidBrowserVisible, pvNil, pvNil, fSuccess ? 1 : 0); // For projects\n    vapp.EndLongOp();\n    return fTrue;\n}\n\n/***************************************************************************\n *\n * Destroy browser context (when Studio destructs)\n *\n **************************************************************************/\nvoid STDIO::ReleaseBrcn(void)\n{\n    long ipbrcn;\n    PBRCN pbrcn;\n\n    if (pvNil == _pglpbrcn)\n        return;\n\n    for (ipbrcn = 0; ipbrcn < _pglpbrcn->IvMac(); ipbrcn++)\n    {\n        _pglpbrcn->Get(ipbrcn, &pbrcn);\n        ReleasePpo(&pbrcn);\n    }\n    ReleasePpo(&_pglpbrcn);\n}\n\n/***************************************************************************\n *\n * Locate a browser pbrwd\n *\n **************************************************************************/\nPBRCN STDIO::_PbrcnFromBrwdid(long brwdid)\n{\n    AssertThis(0);\n    long ipbrcn;\n    PBRCN pbrcn;\n\n    for (ipbrcn = 0; ipbrcn < _pglpbrcn->IvMac(); ipbrcn++)\n    {\n        _pglpbrcn->Get(ipbrcn, &pbrcn);\n        if (pbrcn->brwdid == brwdid)\n        {\n            return pbrcn;\n        }\n    }\n    return pvNil;\n}\n\n/***************************************************************************\n *\n * Apply a Camera Selection.\t(Browser callback)\n * thumSelect is an index and a chid\n *\n **************************************************************************/\nvoid BRWC::_ApplySelection(long thumSelect, long sid)\n{\n    AssertThis(0);\n\n    PMVU pmvu;\n\n    _pstdio->Pmvie()->Pscen()->FChangeCam(thumSelect);\n\n    // Update the tool\n    pmvu = (PMVU)(_pstdio->Pmvie()->PddgActive());\n    AssertPo(pmvu, 0);\n    pmvu->SetTool(toolDefault);\n\n    // Update the UI\n    _pstdio->Pmvie()->Pmcc()->ChangeTool(toolDefault);\n}\n\n/***************************************************************************\n *\n * Apply a Background Selection.\t(Browser callback)\n * thumSelect is a cno\n *\n **************************************************************************/\nvoid BRWB::_ApplySelection(long thumSelect, long sid)\n{\n    AssertThis(0);\n\n    TAG tag;\n    CMD cmd;\n    PMVU pmvu;\n\n    tag.sid = sid;\n    tag.pcrf = pvNil;\n    tag.ctg = kctgBkgd;\n    tag.cno = (CNO)thumSelect;\n\n    ClearPb(&cmd, size(cmd));\n    cmd.cid = cidNewScene;\n    cmd.pcmh = _pstdio;\n    Assert(size(TAG) <= size(cmd.rglw), \"Insufficient space in rglw\");\n    *((PTAG)&cmd.rglw) = tag;\n\n    vpcex->EnqueueCmd(&cmd);\n\n    // Update the tool\n    pmvu = (PMVU)(_pstdio->Pmvie()->PddgActive());\n    AssertPo(pmvu, 0);\n    pmvu->SetTool(toolDefault);\n\n    // Update the UI\n    _pstdio->Pmvie()->Pmcc()->ChangeTool(toolDefault);\n\n    return;\n}\n\n/***************************************************************************\n *\n * Apply an Actor Selection.\n *\n * thumSelect is a cno\n *\n *\n **************************************************************************/\nvoid BRWP::_ApplySelection(long thumSelect, long sid)\n{\n    AssertThis(0);\n\n    TAG tag;\n    PMVU pmvu;\n\n    pmvu = (PMVU)(_pstdio->Pmvie()->PddgGet(0));\n    if (pmvu == pvNil)\n    {\n        Warn(\"No pmvu\");\n        return;\n    }\n\n    AssertPo(pmvu, 0);\n    tag.sid = sid;\n    tag.pcrf = pvNil;\n    tag.ctg = kctgTmpl;\n    tag.cno = (CNO)thumSelect;\n\n    if (!_pstdio->Pmvie()->FInsActr(&tag))\n        goto LFail;\n\n    pmvu->StartPlaceActor(fTrue);\n\nLFail:\n    return;\n}\n\n/***************************************************************************\n *\n * Apply an Action Selection.\n *\n * thumSelect is a chid\n *\n **************************************************************************/\nvoid BRWA::_ApplySelection(long thumSelect, long sid)\n{\n    AssertThis(0);\n    AssertPo(_pstdio->Pmvie(), 0);\n\n    PACTR pactr;\n    PMVU pmvu;\n    PGOK pgok;\n\n    // Apply the action to the actor\n    pactr = _pstdio->Pmvie()->Pscen()->PactrSelected();\n    if (!pactr->FSetAction(thumSelect, _celnStart, fFalse))\n        return; // Error reported earlier\n\n    // Update the tool\n    pmvu = (PMVU)(_pstdio->Pmvie()->PddgActive());\n    AssertPo(pmvu, 0);\n    pmvu->SetTool(toolRecordSameAction);\n\n    // Update the UI\n    _pstdio->Pmvie()->Pmcc()->ChangeTool(toolRecordSameAction);\n\n    // Reset the studio action button state\t(record will be depressed)\n    pgok = (PGOK)vapp.Pkwa()->PgobFromHid(kidActorsActionBrowser);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        Assert(pgok->FIs(kclsGOK), \"Invalid class\");\n        pgok->FChangeState(kstDefault);\n    }\n\n    return;\n}\n\n/***************************************************************************\n *\n * Apply a Music Selection.\n *\n * thumSelect is a cnoContent\n *\n **************************************************************************/\nvoid BRWM::_ApplySelection(long thumSelect, long sid)\n{\n    AssertThis(0);\n    AssertPo(_pstdio->Pmvie(), 0);\n\n    PGOK pgok;\n    PMVU pmvu;\n    TAG tag;\n    BOOL fClick = fTrue;\n\n    pmvu = (PMVU)(_pstdio->Pmvie()->PddgGet(0));\n    AssertPo(pmvu, 0);\n\n    tag.ctg = kctgMsnd;\n    tag.cno = (CNO)thumSelect;\n    tag.sid = sid;\n    if (ksidUseCrf != sid)\n        tag.pcrf = pvNil;\n    else\n    {\n        if (!_pstdio->Pmvie()->FEnsureAutosave(&_pcrf))\n            return;\n        AssertDo(vptagm->FOpenTag(&tag, _pcrf), \"Should never fail when not copying the tag\");\n    }\n\n    // Set the tool to \"play once\", if necessary\n    pgok = (PGOK)vpapp->Pkwa()->PgobFromHid(kidSoundsLooping);\n    if (pgok != pvNil && pgok->FIs(kclsGOK) && (pgok->Sno() == kstSelected))\n    {\n        fClick = fFalse;\n    }\n\n    pgok = (PGOK)vpapp->Pkwa()->PgobFromHid(kidSoundsAttachToCell);\n    if (pgok != pvNil && pgok->FIs(kclsGOK) && (pgok->Sno() == kstSelected) && (_sty != styMidi))\n    {\n        fClick = fFalse;\n    }\n\n    if (fClick)\n    {\n        pgok = (PGOK)vpapp->Pkwa()->PgobFromHid(kidSoundsPlayOnce);\n        if (pgok != pvNil && pgok->FIs(kclsGOK) && (pgok->Sno() != kstSelected))\n        {\n            AssertPo(pgok, 0);\n            vpcex->EnqueueCid(cidClicked, pgok, pvNil, pvNil);\n        }\n    }\n\n    pmvu->SetTagTool(&tag);\n    TAGM::CloseTag(&tag);\n    return;\n}\n\n/***************************************************************************\n *\n * Apply an Import Music Selection.\n * Copy the msnd chunk from the open BRWI movie to the current movie\n * Then notify the underlying sound browser to update\n *\n * thumSelect is a cnoContent\n *\n **************************************************************************/\nvoid BRWI::_ApplySelection(long thumSelect, long sid)\n{\n    AssertThis(0);\n    AssertPo(_pstdio->Pmvie(), 0);\n    CNO cnoDest;\n    long kidBrws;\n\n    switch (_sty)\n    {\n    case styMidi:\n        kidBrws = kidMidiGlass;\n        break;\n    case stySfx:\n        kidBrws = kidFXGlass;\n        break;\n    case stySpeech:\n        kidBrws = kidSpeechGlass;\n        break;\n    default:\n        Bug(\"Invalid _sty\");\n        break;\n    }\n\n    if (pvNil == _pcrf || pvNil == _pcrf->Pcfl())\n        return;\n\n    // Copy\tsound from _pcrf->Pcfl() to current movie\n    vpappb->BeginLongOp();\n    if (!_pstdio->Pmvie()->FCopyMsndFromPcfl(_pcrf->Pcfl(), (CNO)thumSelect, &cnoDest))\n    {\n        vpappb->EndLongOp();\n        return;\n    }\n    vpappb->EndLongOp();\n\n    // Select the item, extend lists and hilite it\n    vpcex->EnqueueCid(cidBrowserSelectThum, vpappb->PcmhFromHid(kidBrws), pvNil, cnoDest, sid, 1, 1);\n\n    return;\n}\n\n/***************************************************************************\n *\n * Apply a Roll Call Selection.\n * thumSelect equals ithum\n *\n **************************************************************************/\nvoid BRWR::_ApplySelection(long thumSelect, long sid)\n{\n    AssertThis(0);\n\n    PMVU pmvu;\n    PMVIE pmvie = _pstdio->Pmvie();\n    long arid;\n    STN stn;\n    long cactRef;\n\n    long iarid = _IaridFromIthum(thumSelect);\n    if (!pmvie->FGetArid(iarid, &arid, &stn, &cactRef))\n        return;\n\n    _fApplyingSel = fTrue;\n    pmvu = (PMVU)pmvie->PddgActive();\n    pmvie->FChooseArid(arid);\n    if (!pmvu->FActrMode())\n    {\n        pmvu->SetTool(toolCompose);\n        _pstdio->ChangeTool(toolCompose);\n    }\n    _fApplyingSel = fFalse;\n}\n"
  },
  {
    "path": "src/studio/stdiocrs.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\n *\n *  STDIOCRS.H\n *\n *  Copyright (C) Microsoft Corporation 1995.\n *  All Rights reserved.\n *\n ******************************************************************************\n *\n *  Module Intent\n *\n *  Contains all of the cnos for cursors used only in the studio.  Note that\n *\tcursors shared between the Studio and the Building are defined in\n *\tinc\\buildgob.h and the chunks for them are in src\\shared\\cursors.cht.\n *\n ******************************************************************************\n *\n *  Revision History:  Taken from inc\\stdiodef.h on 06/20/95 by *****.\n *\n *****************************************************************************/\n\n#ifndef STDIOCRS_H\n#define STDIOCRS_H\n\n// Note, shared cursors have ids reserved from 0 through 100.\n#define kcrsCompose 101\n#define kcrsSquashStretch 102\n#define kcrsResize 103\n#define kcrsRotateX 104\n#define kcrsRotateY 105\n#define kcrsRotateZ 106\n#define kcrsCostume 107\n#define kcrsRecord 108\n#define kcrsTweak 109\n#define kcrsNormalizeRot 110\n#define kcrsDefault 111\n#define kcrsTboxMove 112\n#define kcrsTboxUpDown 113\n#define kcrsTboxLeftRight 114\n#define kcrsTboxFalling 115\n#define kcrsTboxRising 116\n#define kcrsNuke 117\n#define kcrsTboxCreate 118\n#define kcrsIBeam 119\n#define kcrsCutObject 120\n#define kcrsCopyObject 121\n#define kcrsCopyRte 122\n#define kcrsPasteObject 123\n#define kcrsSceneChop 124\n#define kcrsCutText 125\n#define kcrsCopyText 126\n#define kcrsPasteText 127\n#define kcrsPasteRte 128\n#define kcrsPaintText 129\n#define kcrsFillBkgd 130\n#define kcrsMatcher 131\n#define kcrsLooper 132\n#define kcrsSounder 133\n#define kcrsListener 134\n#define kcrsSoonerLater 135\n#define kcrsComposeAll 136\n#define kcrsNormalizeSize 137\n#define kcrsTboxStory 138\n#define kcrsTboxCredit 139\n#define kcrsTboxFont 140\n#define kcrsTboxFontSize 141\n#define kcrsTboxFontStyle 142\n#define kcrsSceneChopBack 143\n\n#endif // !STDIOCRS_H\n"
  },
  {
    "path": "src/studio/stdioscb.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\\\n *\n *\tstdioscb.cht\n *\n *\tScrollbars and Buttons (Frame and Scene) for Socrates\n *\n *\tAuthor: ****** (*****)\n *\tDate:   95/03/28\n *\n\\*****************************************************************************/\n\n\n// kXXXDelayXXX -\n//\n// pick these delay numbers so that\n//\n// \t\tklwDelayMin + (n * kdlwDelay) = klwDelayMax\n//\n// for some integral n to guarantee that delay in Cell() call is always\n// positive\n//\n// also we never want to go faster than 7 fps in ship build so klwDelayMin\n// should be >= 9 for non-DEBUG\n//\n// kfUpdateDrag - update the counters while dragging the thumb tab\n#ifdef DEBUG\n#define klwDelayMax 60\n#define klwDelayMin 24\n#define kdlwDelay 6\n#define kfUpdateDrag 0\n#else\n#define klwDelayMax 60\n#define klwDelayMin 10\n#define kdlwDelay 25\n#define kfUpdateDrag 1\n#endif\n\n#define kdxpSnap 32\n#define kdypSnap 32\n\n\n/*****************************************************************************\\\n *\n *\tNORMALGOB\n *\t\ta generic ordinary normal gob\n *\n *\tDescription:\n * \t\tboooooring!\n *\n *\tParameters:\n * \t\t__szTitle\t\tname for the gob\n *\t\t__kid\t\t\tkid for the gob\n * \t\t__xp, __yp\t\tdefault x and y position for the gob\n * \t\t__xpreg, __ypreg\tx and y registration points for the button gob\n *\t\t__szPath\t\tpath to the default mbmp representation\n *\n\\*****************************************************************************/\n#define NORMALGOB(__szTitle, __kid, __xp, __yp,__xpreg, __ypreg, __szPath) \\\n\tGOBCHUNK(__szTitle, __kid, gokkNoHitKids) \\\n\tDEFAULT_POSITION(__xp, __yp, 10) \\\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil) \\\nENDCHUNK \\\nREP_MBMPREG(CHID1(krepDefault), __szPath, __xpreg, __ypreg)\n\n/*****************************************************************************\\\n *\n *\tBUTTONONCEGOB\n *\t\ta generic push-once button\n *\n *\tDescription:\n * \t\tholding the button does nothing special\n * \t\tcid is enqueued when button is pressed (mouse down on the button)\n *\n *\t\tcid format:\n *\t\t\tparam0\t=\ttool type (chtt)\n *\n *\tParameters:\n * \t\t__szTitle\t\t\tname for the button gob\n *\t\t__kid\t\t\t\tkid for the button gob\n * \t\t__xp, __yp\t\t\tdefault x and y position for the button gob\n * \t\t__xpreg, __ypreg\tx and y registration points for the button gob\n *\t\t__szPathDefault\t\tpath to the default mbmp representation\n *\t\t__szPathSelected\tpath to the selected mbmp representation\n *\t\t__cid\t\t\t\tcommand id to enqueue\n *\t\t__chtt\t\t\t\tcurrent tool id\n *\n\\*****************************************************************************/\n#define BUTTONONCEGOB(__szTitle, __kid, __xp, __yp, __xpreg, __ypreg, __szPathDefault, __szPathSelected, __cid, __chtt, __cno) \\\n\tGOBCHUNK(__szTitle, __kid, kgokkRectHit) \\\n\t\tDEFAULT_POSITION(__xp, __yp, 10) \\\n\t\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID1(krepMouseDnOn), cidNil, __cno) \\\n\tENDCHUNK \\\n\tREP_MBMPREG(CHID1(krepDefault), __szPathDefault, __xpreg, __ypreg) \\\n\tADOPT_MBMP(LAST_MBMP, CHID1(krepMouseUpOn)) \\\n\tADOPT_MBMP(LAST_MBMP, CHID1(krepMouseDnOff)) \\\n\tREP_MBMPREG(CHID1(krepMouseDnOn), __szPathSelected, __xpreg, __ypreg) \\\n\tCHILD_SCRIPT(\"Pressed\", CHID1(krepMouseDnOn)) \\\n\t\tEnqueueCid(__cid, 0, __chtt, GetModifierState(), 0, 0); \\\n\tENDCHUNK\n\n/*****************************************************************************\\\n *\n *\tBUTTONHOLDGOB\n *\t\ta generic accelerating-rate push-and-hold button\n *\n *\tDescription:\n * \t\tholding the button enqueues cids at a rate which increases over time\n *\n *\t\tcid format:\n *\t\t\tparam0\t=\ttool type (chtt)\n *\n *\tParameters:\n * \t\t__szTitle\t\t\tname for the button gob\n *\t\t__kid\t\t\t\tkid for the button gob\n * \t\t__xp, __yp\t\t\tdefault x and y position for the button gob\n * \t\t__xpreg, __ypreg\tx and y registration points for the button gob\n *\t\t__szPathDefault\t\tpath to the default mbmp representation\n *\t\t__szPathSelected\tpath to the selected mbmp representation\n *\t\t__cid\t\t\t\tcommand id to enqueue\n *\t\t__chtt\t\t\t\tcurrent tool id\n *\n\\*****************************************************************************/\n#define BUTTONHOLDGOB(__szTitle, __kid, __xp, __yp, __xpreg, __ypreg, __szPathDefault, __szPathSelected, __cid, __chtt, __cno) \\\n\tGOBCHUNK(__szTitle, __kid, kgokkRectHit) \\\n\t\tDEFAULT_POSITION(__xp, __yp, 10) \\\n\t\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID1(krepMouseDnOn), cidNil, __cno) \\\n\tENDCHUNK \\\n\tREP_MBMPREG(CHID1(krepDefault), __szPathDefault, __xpreg, __ypreg) \\\n\tADOPT_MBMP(LAST_MBMP, CHID1(krepMouseUpOn)) \\\n\tADOPT_MBMP(LAST_MBMP, CHID1(krepMouseDnOff)) \\\n\tREP_MBMPREG( kcell1, __szPathSelected, __xpreg, __ypreg) \\\n\tREP_ANIM(CHID1(krepMouseDnOn), \"Pressed\") \\\n\t\tEnqueueCid(cidStartScroll, 0, __chtt, GetModifierState(), 0, 0); \\\n\t\tlwDelay = klwDelayMax; \\\n\t\tCellNoPause(kcell1, 0, 0, 0); \\\n\t\tWhile(); \\\n\t\t\tEnqueueCid(__cid, 0, __chtt, 0, 0, 0); \\\n\t\t\tCell(chidNil, 0, 0, lwDelay); \\\n\t\t\tSetNoSlipThis(fTrue); \\\n\t\t\tIf(lwDelay > klwDelayMin); \\\n\t\t\t\tlwDelay -= kdlwDelay; \\\n\t\t\tEnd; \\\n\t\tEnd; \\\n\tENDCHUNK\n\n/*****************************************************************************\\\n *\n *\tSCROLLBARGOB\n *\t\ta generic scrollbar\n *\n *\tDescription:\n * \t\tclicking on the scrollbar brings the thumb control to that position\n *\n *\t\tcid format:\n *\t\t\tparam0\t=\ttool type (chtt)\n *\t\t\tparam1\t=\tmouse position\n *\t\t\tparam2\t=\t0 : just update counters\n *\t\t\t\t\t\t1 : update all scrollbar views\n *\n *\tParameters:\n * \t\t__szTitle\t\t\tname for the scrollbar gob\n *\t\t__kid\t\t\t\tkid for the scrollbar gob\n *\t\t__kidThumb\t\t\tkid for the corresponding thumbtab gob\n * \t\t__xp, __yp\t\t\tdefault x and y position for the scrollbar gob\n * \t\t__xpreg, __ypreg\tx and y registration points for the scrollbar gob\n *\t\t__szPath\t\t\tpath to the default mbmp representation\n *\t\t__cid\t\t\t\tcommand id to enqueue\n *\n\\*****************************************************************************/\n#define SCROLLBARGOB(__szTitle, __kid, __kidThumb, __xp, __yp, __xpreg, __ypreg\t, __szPath, __cid, __cno) \\\n\tGOBCHUNK(__szTitle, __kid, kgokkRectHit) \\\n\t\tDEFAULT_POSITION(__xp, __yp, 10) \\\n\t\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID1(krepMouseDnOn), cidNil, __cno) \\\n\tENDCHUNK \\\n\tREP_MBMPREG(CHID1(krepDefault), __szPath,  __xpreg, __ypreg ) \\\n\tCHILD_SCRIPT(\"Pressed\", CHID1(krepMouseDnOn)) \\\n\t\tcxThumbTab = WidthGob(__kidThumb); \\\n\t\tIf((XMouseThis() - cxThumbTab) < 0);\\\n\t\t\tEnqueueCid(__cid, 0, chttScrollbar, 0, 1, 0); \\\n\t\tElse;\\\n\t\t\tEnqueueCid(__cid, 0, chttScrollbar, XMouseThis() - cxThumbTab, 1, 0); \\\n        End;\\\n\tENDCHUNK\n\n/*****************************************************************************\\\n *\n *\tTHUMBGOB\n *\t\ta generic thumb tab for a scroll bar\n *\n *\tDescription:\n * \t\tclicking and dragging the thumbtab moves the control\n *\n *\t\tcid format:\n *\t\t\tparam0\t=\ttool type (chtt)\n *\t\t\tparam1\t=\tmouse position\n *\t\t\tparam2\t=\t0 : just update counters\n *\t\t\t\t\t\t1 : update all scrollbar views\n *\n *\tParameters:\n * \t\t__szTitle\t\t\tname for the thumb tab gob\n *\t\t__kid\t\t\t\tkid for the thumb tab gob\n *\t\t__kidScroll\t\t\tthe id for the corresponding scrollbar\n * \t\t__xp, __yp\t\t\tdefault x and y position for the thumb tab gob\n *\t\t__szPath\t\t\tpath to the default mbmp representation\n *\t\t__cid\t\t\t\tcommand id to enqueue\n *\t\t__fVert\t\t\t\tis this a vertical scrollbar?\n *\n\\*****************************************************************************/\n#define THUMBGOB(__szTitle, __kid, __kidScroll, __xp, __yp, __szPath, __szPathSnd, __cid, __fVert) \\\n\tGOBCHUNK(__szTitle, __kid, kgokkRectHit) \\\n\t\tDEFAULT_POSITION(__xp, __yp, 11) \\\n\t\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID1(krepMouseDnOn), cidNil, cnoNil) \\\n\t\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID1(krepClicked), cidNil, cnoNil) \\\n\t\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID1(krepDrop), cidNil, cnoNil) \\\n\tENDCHUNK \\\n\tREP_MBMP(CHID1(krepDefault), __szPath) \\\n\tREP_MBMP(CHID(kst2, krepDefault), __szPathSnd) \\\n\tREP_ANIM(CHID1(krepMouseDnOn), \"Pressed\") \\\n\t\txpSav = XThis(); \\\n\t\typSav = YThis(); \\\n\t\tIf(__fVert); \\\n\t\t\t.click = ypSav; \\\n\t\t\tcyScrollbar = HeightGob(__kidScroll); \\\n\t\t\tcyThumbTab = HeightThis(); \\\n\t\t\typMax = cyScrollbar - cyThumbTab; \\\n\t\tElse; \\\n\t\t\t.click = xpSav; \\\n\t\t\tcxScrollbar = WidthGob(__kidScroll); \\\n\t\t\tcxThumbTab = WidthThis(); \\\n\t\t\txpMax = cxScrollbar - cxThumbTab; \\\n\t\tEnd; \\\n\t\t.fSnap = 0; \\\n\t\tWhile(); \\\n\t\t\tIf(__fVert); \\\n\t\t\t\tdxp = XMouseThis(); \\\n\t\t\t\tdyp = YMouseThis() - (cyThumbTab / 2); \\\n\t\t\t\typ = YThis(); \\\n\t\t\t\tIf(Abs(dxp - xpSav) > kdxpSnap || yp + dyp < -kdypSnap || yp + dyp > ypMax + kdypSnap); \\\n\t\t\t\t\t.fSnap = 1; \\\n\t\t\t\t\tdyp = ypSav - yp; \\\n\t\t\t\tElse; \\\n\t\t\t\t\t.fSnap = 0; \\\n\t\t\t\t\tIf(yp + dyp < 0); \\\n\t\t\t\t\t\tdyp = -yp; \\\n\t\t\t\t\tEnd; \\\n\t\t\t\t\tIf(yp + dyp > ypMax); \\\n\t\t\t\t\t\tdyp = ypMax - yp; \\\n\t\t\t\t\tEnd; \\\n\t\t\t\tEnd; \\\n\t\t\t\tCell(chidNil, 0, dyp, 0); \\\n\t\t\t\tCell(chidNil, 0, 0, 0); \\\n\t\t\t\t.click = yp + dyp; \\\n\t\t\tElse; \\\n\t\t\t\tdxp = XMouseThis() - (cxThumbTab / 2); \\\n\t\t\t\tdyp = YMouseThis(); \\\n\t\t\t\txp = XThis(); \\\n\t\t\t\tIf(Abs(dyp - ypSav) > kdypSnap || xp + dxp < -kdxpSnap || xp + dxp > xpMax + kdxpSnap); \\\n\t\t\t\t\t.fSnap = 1; \\\n\t\t\t\t\tdxp = xpSav - xp; \\\n\t\t\t\tElse; \\\n\t\t\t\t\t.fSnap = 0; \\\n\t\t\t\t\tIf(xp + dxp < 0); \\\n\t\t\t\t\t\tdxp = -xp; \\\n\t\t\t\t\tEnd; \\\n\t\t\t\t\tIf(xp + dxp > xpMax); \\\n\t\t\t\t\t\tdxp = xpMax - xp; \\\n\t\t\t\t\tEnd; \\\n\t\t\t\tEnd; \\\n\t\t\t\tCell(chidNil, dxp, 0, 0); \\\n\t\t\t\tCell(chidNil, 0, 0, 0); \\\n\t\t\t\t.click = xp + dxp; \\\n\t\t\tEnd; \\\n\t\t\tIf(kfUpdateDrag); \\\n\t\t\t\tEnqueueCid(__cid, 0, chttThumb, .click, 0, 0); \\\n\t\t\tEnd; \\\n\t\tEnd; \\\n\tENDCHUNK \\\n\tADOPT_ANIM(LAST_ANIM, CHID(kst2, krepMouseDnOn)) \\\n\tREP_ANIM(CHID1(krepClicked), \"Released\") \\\n\t\tIf(.fSnap == 0); \\\n\t\t\tEnqueueCid(__cid, 0, chttThumb, .click, 1, 0); \\\n\t\tEnd; \\\n\tENDCHUNK \\\n\tADOPT_ANIM(LAST_ANIM, CHID1(krepDrop)) \\\n\tADOPT_ANIM(LAST_ANIM, CHID(kst2, krepClicked)) \\\n\tADOPT_ANIM(LAST_ANIM, CHID(kst2, krepDrop))\n\n\n/*****************************************************************************\\\n *\n *\tFrame buttons, scrollbar and thumb tab\n *\n\\*****************************************************************************/\n\nNORMALGOB(\"Frame Title\", kidFrameTitle, kxpFrameTitle, kypFrameTitle, kxpregFrameTitle, kypregFrameTitle, \"studio\\bmp\\fttl.bmp\")\nNORMALGOB(\"Frame Text Box\", kidFrameText, kxpFrameText, kypFrameText, kxpregFrameText, kypregFrameText, \"studio\\bmp\\ftxt.bmp\")\n\nBUTTONHOLDGOB(\"Frame Button FW\", kidFrameFW, kxpFrameFW, kypFrameFW, kxpregFrameFW, kypregFrameFW,\n\t\t\t  \"studio\\bmp\\ffw.bmp\", \"studio\\bmp\\ffws.bmp\", cidFrameScrollbar, chttFButtonFW, kttFForward)\nREP_ANIM(CHID1(krepDragOff), \"Pressed\")\n\tSetNoSlipThis(fFalse);\n\tSetRepThis(CHID1(krepDefault));\nENDCHUNK\nREP_ANIM(CHID1(krepClicked), \"Pressed\")\n\tSetNoSlipThis(fFalse);\n\tSetRepThis(CHID1(krepDefault));\nENDCHUNK\n\nBUTTONONCEGOB(\"Frame Button FW End\", kidFrameFWEnd, kxpFrameFWEnd, kypFrameFWEnd, kxpregFrameFWEnd, kypregFrameFWEnd,\n              \"studio\\bmp\\ffwe.bmp\", \"studio\\bmp\\ffwes.bmp\", cidFrameScrollbar, chttButtonFWEnd, kttFForwardEnd)\nADOPT_WAVE(kcnoGoLastFWav, CHID(kstDefault, krepClicked))\nBUTTONHOLDGOB(\"Frame Button RW\", kidFrameRW, kxpFrameRW, kypFrameRW, kxpregFrameRW, kypregFrameRW,\n\t\t\t  \"studio\\bmp\\frw.bmp\", \"studio\\bmp\\frws.bmp\", cidFrameScrollbar, chttFButtonRW, kttRewind)\nREP_ANIM(CHID1(krepDragOff), \"Pressed\")\n\tSetNoSlipThis(fFalse);\n\tSetRepThis(CHID1(krepDefault));\nENDCHUNK\nREP_ANIM(CHID1(krepClicked), \"Pressed\")\n\tSetNoSlipThis(fFalse);\n\tSetRepThis(CHID1(krepDefault));\nENDCHUNK\n\nBUTTONONCEGOB(\"Frame Button RW End\", kidFrameRWEnd, kxpFrameRWEnd, kypFrameRWEnd, kxpregFrameRWEnd, kypregFrameRWEnd,\n\t\t\t  \"studio\\bmp\\frwe.bmp\", \"studio\\bmp\\frwes.bmp\", cidFrameScrollbar, chttButtonRWEnd, kttRewindEnd)\nADOPT_WAVE(kcnoGoFrstFWav, CHID(kstDefault, krepClicked))\n\nSCROLLBARGOB(\"Frame Scrollbar\", kidFrameScrollbar, kidFrameThumb, kxpFrameScrollbar, kypFrameScrollbar,\n\tkypregFrameScrollbar, kypregFrameScrollbar, \"studio\\bmp\\fscl.bmp\", cidFrameScrollbar, kttFrameSlider)\n\nTHUMBGOB(\"Frame Thumb Tab\", kidFrameThumb, kidFrameScrollbar, kxpFrameThumb,\n\tkypFrameThumb, \"studio\\bmp\\fthm.bmp\", \"studio\\bmp\\fthms.bmp\",\n\tcidFrameThumb, 0)\n\n/*****************************************************************************\\\n *\n *\tScene buttons, scrollbar and thumb tab\n *\n\\*****************************************************************************/\n\nNORMALGOB(\"Scene Title\", kidSceneTitle, kxpSceneTitle, kypSceneTitle,\n\tkxpregSceneTitle, kypregSceneTitle, \"studio\\bmp\\sttl.bmp\")\nNORMALGOB(\"Scene Text Box\", kidSceneText, kxpSceneText, kypSceneText,\n\t\t\tkxpregSceneText, kypregSceneText, \"studio\\bmp\\stxt.bmp\")\n\nBUTTONONCEGOB(\"Scene Button FW\", kidSceneFW, kxpSceneFW, kypSceneFW, kxpregSceneFW, kypregSceneFW,\n\t\t\t  \"studio\\bmp\\sfw.bmp\", \"studio\\bmp\\sfws.bmp\", cidSceneScrollbar, chttSButtonFW, kttNextScene)\nBUTTONONCEGOB(\"Scene Button FW End\", kidSceneFWEnd, kxpSceneFWEnd, kypSceneFWEnd, kxpregSceneFWEnd, kypregSceneFWEnd,\n\t\t      \"studio\\bmp\\sfwe.bmp\", \"studio\\bmp\\sfwes.bmp\", cidSceneScrollbar, chttButtonFWEnd, kttLastScene)\nADOPT_WAVE(kcnoGoLastSWav, CHID(kstDefault, krepClicked))\nBUTTONONCEGOB(\"Scene Button RW\", kidSceneRW, kxpSceneRW, kypSceneRW, kxpregSceneRW, kypregSceneRW,\n\t\t\t  \"studio\\bmp\\srw.bmp\", \"studio\\bmp\\srws.bmp\", cidSceneScrollbar, chttSButtonRW, kttPrevScene)\nBUTTONONCEGOB(\"Scene Button RW End\", kidSceneRWEnd, kxpSceneRWEnd, kypSceneRWEnd, kxpregSceneRWEnd, kypregSceneRWEnd,\n\t\t\t  \"studio\\bmp\\srwe.bmp\", \"studio\\bmp\\srwes.bmp\", cidSceneScrollbar, chttButtonRWEnd, kttFirstScene)\nADOPT_WAVE(kcnoGoFrstSWav, CHID(kstDefault, krepClicked))\n\nSCROLLBARGOB(\"Scene Scrollbar\", kidSceneScrollbar, kidSceneThumb, kxpSceneScrollbar, kypSceneScrollbar,\n\t\tkxpregSceneScrollbar, kypregSceneScrollbar, \"studio\\bmp\\sscl.bmp\", cidSceneScrollbar, kttSceneSlider)\n\nTHUMBGOB(\"Scene Thumb Tab\", kidSceneThumb, kidSceneScrollbar, kxpSceneThumb,\n\tkypSceneThumb, \"studio\\bmp\\stmb.bmp\", \"studio\\bmp\\stmb.bmp\",\n\tcidSceneThumb, 0)\n\n"
  },
  {
    "path": "src/studio/stdioscb.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n/*****************************************************************************\\\n *\tstdioscb.cpp\n *\n *\tAuthor: ******\n *\tDate: March, 1995\n *\n *\tThis file contains the studio scrollbars class SSCB.  These are the frame\n *\tand scene scrollbar master controls.\n *\n\\*****************************************************************************/\n\n#include \"soc.h\"\n#include \"studio.h\"\nASSERTNAME\n\n/*****************************************************************************\\\n *\n *\tThe studio scrollbars class.\n *\n\\*****************************************************************************/\n\nRTCLASS(SSCB)\n\n/*****************************************************************************\\\n *\n *\tConstructor for the studio scrollbars.  This function is private; use\n *\tPsscbNew() for public construction.\n *\n\\*****************************************************************************/\nSSCB::SSCB(PMVIE pmvie)\n{\n    _pmvie = pmvie;\n#ifdef SHOW_FPS\n    _itsNext = 1;\n    for (long its = 0; its < kctsFps; its++)\n        _rgfdsc[its].ts = 0;\n#endif // SHOW_FPS\n}\n\n/*****************************************************************************\\\n *\n *\tPublic constructor for the studio scrollbars.\n *\n *\tParameters:\n *\t\tpmvie\t-- the owner movie\n *\n *\tReturns:\n *\t\tA pointer to the scrollbars object, pvNil if failed.\n *\n\\*****************************************************************************/\nPSSCB SSCB::PsscbNew(PMVIE pmvie)\n{\n    AssertNilOrPo(pmvie, 0);\n\n    PSSCB psscb;\n    PGOB pgob;\n    STN stn;\n    GCB gcb;\n    RC rcRel, rcAbs;\n    long hid;\n\n    //\n    // Create the view\n    //\n    if (pvNil == (psscb = NewObj SSCB(pmvie)))\n        return pvNil;\n\n    rcRel.xpLeft = rcRel.ypTop = 0;\n    rcRel.xpRight = rcRel.ypBottom = krelOne;\n\n    rcAbs.Set(0, 0, 0, 0);\n\n    pgob = ((APP *)vpappb)->Pkwa()->PgobFromHid(kidFrameText);\n\n    if (pgob == pvNil)\n    {\n        ReleasePpo(&psscb);\n        return (pvNil);\n    }\n\n    hid = GOB::HidUnique();\n    gcb.Set(hid, pgob, fgobNil, kginDefault, &rcAbs, &rcRel);\n\n    if (pvNil == (psscb->_ptgobFrame = NewObj TGOB(&gcb)))\n    {\n        ReleasePpo(&psscb);\n        return (pvNil);\n    }\n\n    pgob = ((APP *)vpappb)->Pkwa()->PgobFromHid(kidSceneText);\n\n    if (pgob == pvNil)\n    {\n        ReleasePpo(&psscb);\n        return (pvNil);\n    }\n\n    hid = GOB::HidUnique();\n    gcb.Set(hid, pgob, fgobNil, kginDefault, &rcAbs, &rcRel);\n\n    if (pvNil == (psscb->_ptgobScene = NewObj TGOB(&gcb)))\n    {\n        ReleasePpo(&psscb);\n        return (pvNil);\n    }\n\n#ifdef SHOW_FPS\n    pgob = ((APP *)vpappb)->Pkwa()->PgobFromHid(kidFps);\n\n    if (pgob == pvNil)\n    {\n        ReleasePpo(&psscb);\n        return (pvNil);\n    }\n\n    hid = GOB::HidUnique();\n    gcb.Set(hid, pgob, fgobNil, kginDefault, &rcAbs, &rcRel);\n\n    if (pvNil == (psscb->_ptgobFps = NewObj TGOB(&gcb)))\n    {\n        ReleasePpo(&psscb);\n        return (pvNil);\n    }\n#endif // SHOW_FPS\n\n    AssertPo(psscb, 0);\n    return psscb;\n}\n\n/****************************************************\n *\n * Destructor for studio scroll bars.\n *\n ****************************************************/\nSSCB::~SSCB(void)\n{\n    AssertBaseThis(0);\n\n    // Don't need to Release these tgobs, since they get destroyed with\n    // the gob tree.\n    _ptgobFrame = pvNil;\n    _ptgobScene = pvNil;\n#ifdef SHOW_FPS\n    _ptgobFps = pvNil;\n#endif // SHOW_FPS\n}\n\n/*****************************************************************************\\\n *\n *\tFCmdScroll\n *\t\tHandles scrollbar commands.  Cids to the SSCB are enqueued\n *\t\tin the following format:\n *\n *\t\tEnqueueCid(cid, khidSscb, chtt, param1, param2, param3);\n *\n *\t\twhere: cid  = cidFrameScrollbar or cidSceneScrollbar\n *\t\t       chtt = the tool type\n *\n *\tParameters:\n *\t\tpcmd -- pointer to command info\n *\n *\tReturns:\n *\t\tfTrue if the command was handled\n *\n\\*****************************************************************************/\nbool SSCB::FCmdScroll(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    bool fScene;\n    bool fThumbDrag = fFalse;\n    long lwDest, cxScrollbar, lwDestOld, xp;\n    long cRangeDest, iRangeDestFirst;\n    long tool = -1;\n    RC rc;\n    PSCEN pscen = pvNil;\n\n    // verify that the command is for the studio scrollbars\n    if ((pcmd->cid != cidSceneScrollbar) && (pcmd->cid != cidFrameScrollbar) && (pcmd->cid != cidSceneThumb) &&\n        (pcmd->cid != cidFrameThumb) && (pcmd->cid != cidStartScroll))\n        return fFalse;\n\n    fScene = ((pcmd->cid == cidSceneScrollbar) || (pcmd->cid == cidSceneThumb));\n\n    if (pcmd->cid == cidFrameScrollbar)\n    {\n        vpcex->FlushCid(cidFrameScrollbar);\n    }\n\n    // need a valid movie ptr, also a ptr to the current scene\n    // when dealing with frame scrollbar\n    if ((pvNil == _pmvie) || (!fScene && (pvNil == (pscen = _pmvie->Pscen()))))\n        return fTrue;\n\n    if (pcmd->cid == cidStartScroll)\n    {\n\n        if ((pcmd->rglw[0] == chttFButtonFW) || (pcmd->rglw[0] == chttFButtonRW))\n        {\n            _fBtnAddsFrames = ((pcmd->rglw[1] & fcustCmd) &&\n                               (((pscen->NfrmLast() == pscen->Nfrm()) && (pcmd->rglw[0] == chttFButtonFW)) ||\n                                ((pscen->NfrmFirst() == pscen->Nfrm()) && (pcmd->rglw[0] == chttFButtonRW))));\n            StartNoAutoadjust();\n        }\n\n        if (!_fBtnAddsFrames)\n        {\n            return fTrue;\n        }\n    }\n    else\n    {\n        EndNoAutoadjust();\n    }\n\n    // what's the tool we are handling? (chtt is param0)\n    switch (pcmd->rglw[0])\n    {\n\n    case chttFButtonFW:\n    case chttSButtonFW:\n        // forward one frame / scene\n        if (fScene)\n        {\n            lwDest = _pmvie->Iscen() + 1;\n            tool = toolFWAScene;\n        }\n        else\n        {\n            lwDest = pscen->Nfrm() + 1;\n            if ((pscen->Nfrm() == pscen->NfrmLast()) && _fBtnAddsFrames)\n            {\n                _fBtnAddsFrames = fFalse;\n                tool = toolAddAFrame;\n                goto LExecuteCmd;\n            }\n            tool = toolFWAFrame;\n        }\n        break;\n\n    case chttButtonFWEnd:\n        // forward to end of scene / movie\n        lwDest = klwMax;\n        break;\n\n    case chttFButtonRW:\n    case chttSButtonRW:\n        // back one frame / scene\n        if (fScene)\n        {\n            lwDest = _pmvie->Iscen() - 1;\n            tool = toolRWAScene;\n        }\n        else\n        {\n            lwDest = pscen->Nfrm() - 1;\n            if ((pscen->Nfrm() == pscen->NfrmFirst()) && _fBtnAddsFrames)\n            {\n                _fBtnAddsFrames = fFalse;\n                tool = toolAddAFrame;\n                goto LExecuteCmd;\n            }\n            tool = toolRWAFrame;\n        }\n        break;\n\n    case chttButtonRWEnd:\n        // back to beginning of scene / movie\n        lwDest = klwMin;\n        break;\n\n    case chttThumb:\n        // released thumb tab - simulate a hit on scrollbar at this point\n        // fall through\n\n    case chttScrollbar:\n        // hit scrollbar directly\n\n        // calculate the source range of the mapping: mouse range along scrollbar\n        cxScrollbar =\n            _CxScrollbar(fScene ? kidSceneScrollbar : kidFrameScrollbar, fScene ? kidSceneThumb : kidFrameThumb);\n\n        // param1 is the source value: the mouse click position\n        // it should be within the source range (closed on the upper bound)\n        xp = LwBound(pcmd->rglw[1], 0, cxScrollbar + 1);\n\n        // calculate the destination range\n        if (fScene)\n        {\n            // scenes: [0, ..., number_of_scenes - 1]\n            cRangeDest = _pmvie->Cscen();\n            iRangeDestFirst = 0;\n        }\n        else\n        {\n            // frames: [first_frame, ..., last_frame]\n            cRangeDest = pscen->NfrmLast() - pscen->NfrmFirst() + 1;\n            iRangeDestFirst = pscen->NfrmFirst();\n        }\n\n        // map the source value from the source range to the destination range\n        lwDest = LwMulDiv(xp, cRangeDest, cxScrollbar) + iRangeDestFirst;\n\n        // if param2 is 0, we are dragging the thumb tab, just need to update\n        // the counters\n        if (pcmd->rglw[2] == 0)\n            fThumbDrag = fTrue;\n        break;\n\n    default:\n        Assert(fFalse, \"invalid chtt from studio scroll\");\n        break;\n    }\n\n    // restrict to valid range\n    lwDestOld = lwDest;\n    lwDest = LwMin(fScene ? _pmvie->Cscen() - 1 : pscen->NfrmLast(), LwMax(fScene ? 0 : pscen->NfrmFirst(), lwDest));\n    if (lwDestOld != lwDest)\n    {\n        tool = -1;\n    }\n\nLExecuteCmd:\n    if (!_pmvie->FPlaying())\n    {\n        STN stn;\n\n        if (fScene)\n        {\n\n            if (fThumbDrag)\n            {\n                // update scene counter\n                stn.FFormatSz(PszLit(\"%4d\"), lwDest + 1);\n                _ptgobScene->SetText(&stn);\n                return fTrue;\n            }\n            else\n            {\n                if (tool != -1)\n                {\n                    _pmvie->Pmcc()->PlayUISound(tool);\n                }\n\n                // scene change\n                if (!_pmvie->FSwitchScen(lwDest))\n                {\n                    return fFalse;\n                }\n\n                if (_pmvie->FSoundsEnabled())\n                {\n                    _pmvie->Pmsq()->PlayMsq();\n                }\n                else\n                {\n                    _pmvie->Pmsq()->FlushMsq();\n                }\n                Update();\n            }\n        }\n        else\n        {\n            if (fThumbDrag)\n            {\n                // update frame counter\n                stn.FFormatSz(PszLit(\"%4d\"), lwDest - pscen->NfrmFirst() + 1);\n                _ptgobFrame->SetText(&stn);\n                return fTrue;\n            }\n            else\n            {\n                // frame change\n                if (tool != -1)\n                {\n                    _pmvie->Pmcc()->PlayUISound(tool);\n                }\n\n                if (!pscen->FGotoFrm(lwDest))\n                {\n                    return fFalse;\n                }\n\n                if (_pmvie->FSoundsEnabled())\n                {\n                    _pmvie->Pmsq()->PlayMsq();\n                }\n                else\n                {\n                    _pmvie->Pmsq()->FlushMsq();\n                }\n                Update();\n            }\n        }\n    }\n\n    return fTrue;\n}\n\n/*****************************************************************************\\\n *\n *\t_CxScrollbar\n *\t\tCalculates the slidable length of a scrollbar based on a non-zero\n *\t\twidth thumb tab which has its position associated with its leftmost\n *\t\tpixel.\n *\n *\tParameters:\n *\t\tkidScrollbar\t- id for the scrollbar gob\n *\t\tkidThumb\t\t- id for the thumb tab gob\n *\n *\tReturns:\n *\t\tLength of the slidable region of the scrollbar\n *\n\\*****************************************************************************/\nlong SSCB::_CxScrollbar(long kidScrollbar, long kidThumb)\n{\n    AssertThis(0);\n\n    long cxThumb, cxScrollbar;\n    PGOB pgob;\n    RC rc;\n\n    // rightmost pos we can slide the thumb tab is the pos where it has\n    // its right edge at the max pos of the scrollbar, or in other words, it\n    // is its own width away from the max pos of the scrollbar\n\n    // calculate the thumb tab width\n    if (pvNil == (pgob = ((APP *)vpappb)->Pkwa()->PgobFromHid(kidThumb)))\n        return 0;\n    pgob->GetRc(&rc, cooLocal);\n    cxThumb = rc.xpRight - rc.xpLeft + 1;\n    // calculate the scrollbar width\n    if (pvNil == (pgob = ((APP *)vpappb)->Pkwa()->PgobFromHid(kidScrollbar)))\n        return 0;\n    pgob->GetRc(&rc, cooLocal);\n    cxScrollbar = rc.xpRight - rc.xpLeft + 1 - cxThumb;\n\n    return cxScrollbar;\n}\n\n/*****************************************************************************\\\n *\n *\tUpdate\n *\t\tUpdate the studio scrollbars.\n *\n *\tParameters:\n *\t\tNone.\n *\n *\tReturns:\n *\t\tNothing.\n *\n\\*****************************************************************************/\nvoid SSCB::Update(void)\n{\n    AssertThis(0);\n\n    PSCEN pscen;\n    STN stn;\n    PGOB pgob;\n    RC rc;\n    long xp, dxp;\n    long cxScrollbar;\n\n    // need a valid movie ptr, also a ptr to the current scene\n    if ((pvNil == _pmvie) || (pvNil == (pscen = _pmvie->Pscen())))\n        return;\n\n    // update the frame scrollbar\n    if (pvNil != (pgob = ((APP *)vpappb)->Pkwa()->PgobFromHid(kidFrameScrollbar)))\n    {\n        // source range: [first_frame, ..., last_frame]\n        long cfrm = pscen->NfrmLast() - pscen->NfrmFirst() + 1;\n        // source value: index of the current frame\n        long ifrm = pscen->Nfrm() - pscen->NfrmFirst();\n\n        pgob->GetRc(&rc, cooParent);\n        if (cfrm < 2)\n        {\n            // special case to avoid divide by zero in scaling\n            // we use cfrm - 1 as the size of the destination range so\n            // the highest value will get mapped to the right endpoint\n            xp = 0;\n        }\n        else\n        {\n            // source value should be in source range\n            AssertIn(ifrm, 0, cfrm);\n\n            // calculate destination range: mouse positions on scrollbar\n            cxScrollbar = _CxScrollbar(kidFrameScrollbar, kidFrameThumb);\n\n            // map the source value from the source range to the destination range\n            xp = LwMulDiv(ifrm, cxScrollbar, cfrm - 1);\n        }\n\n        // move the frame thumb tab to the appropriate position\n        if (pvNil != (pgob = ((APP *)vpappb)->Pkwa()->PgobFromHid(kidFrameThumb)))\n        {\n            pgob->GetPos(&rc, pvNil);\n            dxp = xp - rc.xpLeft;\n            ((PGOK)pgob)->FSetRep(chidNil, fgokNoAnim, ctgNil, dxp, 0, 0);\n        }\n    }\n\n    // update the scene scrollbar\n    if (pvNil != (pgob = ((APP *)vpappb)->Pkwa()->PgobFromHid(kidSceneScrollbar)))\n    {\n        // source range: [0, ..., num_scenes - 1]\n        long cscen = _pmvie->Cscen();\n        // source value: index of current scene\n        long iscen = _pmvie->Iscen();\n\n        pgob->GetRc(&rc, cooParent);\n        if (cscen < 2)\n        {\n            // special case to avoid divide by zero in scaling\n            // we use cscen - 1 as the size of the destination range so\n            // the highest value will get mapped to the right endpoint\n            xp = 0;\n        }\n        else\n        {\n            // source value should be in source range\n            AssertIn(iscen, 0, cscen);\n\n            // calculate destination range: mouse positions on scrollbar\n            cxScrollbar = _CxScrollbar(kidSceneScrollbar, kidSceneThumb);\n\n            // map the source value from the source range to the destination range\n            xp = LwMulDiv(iscen, cxScrollbar, cscen - 1);\n        }\n\n        // move the scene thumb tab to the appropriate position\n        if (pvNil != (pgob = ((APP *)vpappb)->Pkwa()->PgobFromHid(kidSceneThumb)))\n        {\n            pgob->GetPos(&rc, pvNil);\n            dxp = xp - rc.xpLeft;\n            ((PGOK)pgob)->FSetRep(chidNil, fgokNoAnim, ctgNil, dxp, 0, 0);\n        }\n    }\n\n    // update the other stuff, frame and scene counters, fps\n\n    // update frame counter\n    if (_fNoAutoadjust)\n    {\n        stn.FFormatSz(PszLit(\"%4d\"), pscen->Nfrm() - _nfrmFirstOld + 1);\n    }\n    else\n    {\n        stn.FFormatSz(PszLit(\"%4d\"), pscen->Nfrm() - pscen->NfrmFirst() + 1);\n    }\n    _ptgobFrame->SetText(&stn);\n\n    // update scene counter\n    stn.FFormatSz(PszLit(\"%4d\"), _pmvie->Iscen() + 1);\n    _ptgobScene->SetText(&stn);\n\n#ifdef SHOW_FPS\n    {\n        long cfrmTail, cfrmCur;\n        ulong tsTail, tsCur;\n        float fps;\n\n        /* Get current info */\n        tsCur = TsCurrent();\n        cfrmCur = _pmvie->Cnfrm();\n\n        /* Get least recent frame registered */\n        tsTail = _rgfdsc[_itsNext].ts;\n        cfrmTail = _rgfdsc[_itsNext].cfrm;\n\n        /* Register current frame */\n        _rgfdsc[_itsNext].ts = tsCur;\n        _rgfdsc[_itsNext++].cfrm = cfrmCur;\n\n        if (tsTail < _pmvie->TsStart())\n        {\n            tsTail = _pmvie->TsStart();\n            cfrmTail = 0;\n        }\n\n        Assert(_itsNext <= kctsFps, \"Bogus fps next state\");\n        if (_itsNext == kctsFps)\n            _itsNext = 0;\n\n        fps = ((float)((cfrmCur - cfrmTail) * kdtsSecond)) / ((float)(tsCur - tsTail));\n\n        stn.FFormatSz(PszLit(\"%2d.%02d fps\"), (int)fps, (int)((fps - (int)fps) * 100));\n        _ptgobFps->SetText(&stn);\n    }\n#endif // SHOW_FPS\n}\n\n/*****************************************************************************\\\n *\n *\tChange the owner movie for these scroll bars\n *\n *\tParameters:\n *\t\tpmvie - new movie\n *\n *\tReturns:\n *\t\tNothing.\n *\n\\*****************************************************************************/\nvoid SSCB::SetMvie(PMVIE pmvie)\n{\n    _pmvie = pmvie;\n    Update();\n}\n\n/*****************************************************************************\\\n *\n *\tStart a period of no autoadjusting on the scroll bars\n *\n *\tParameters:\n *\t\tNothing.\n *\n *\tReturns:\n *\t\tNothing.\n *\n\\*****************************************************************************/\nvoid SSCB::StartNoAutoadjust(void)\n{\n    AssertThis(0);\n\n    _fNoAutoadjust = fTrue;\n\n    Assert(_pmvie->Pscen() != pvNil, \"Bad scene\");\n    _nfrmFirstOld = _pmvie->Pscen()->NfrmFirst();\n    Update();\n}\n\nvoid SSCB::SetSndFrame(bool fSoundInFrame)\n{\n    long snoNew = fSoundInFrame ? kst2 : kst1;\n    PGOK pgokThumb = (PGOK)vapp.Pkwa()->PgobFromHid(kidFrameThumb);\n\n    if (pgokThumb != pvNil && pgokThumb->FIs(kclsGOK))\n    {\n        if (pgokThumb->Sno() != snoNew)\n            pgokThumb->FChangeState(snoNew);\n    }\n    else\n        Bug(\"Missing or invalid thumb GOB\");\n}\n\n#ifdef DEBUG\n\n/*****************************************************************************\\\n *\n *\tMark memory used by the SSCB\n *\n *\tParameters:\n *\t\tNone.\n *\n *\tReturns:\n *\t\tNothing.\n *\n\\*****************************************************************************/\nvoid SSCB::MarkMem(void)\n{\n    AssertThis(0);\n\n    SSCB_PAR::MarkMem();\n}\n\n/*****************************************************************************\\\n *\n *\tAssert the validity of the SSCB\n *\n *\tParameters:\n *\t\tgrf - bit array of options.\n *\n *\tReturns:\n *\t\tNothing.\n *\n\\*****************************************************************************/\nvoid SSCB::AssertValid(ulong grf)\n{\n    SSCB_PAR::AssertValid(fobjAllocated);\n}\n\n#endif // DEBUG\n"
  },
  {
    "path": "src/studio/stdiosnd.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/*****************************************************************************\\\n *\n *\tsound.cht\n *\n *\tAll sounds that appear in the studio.\n *\n *\tAuthor: Sean Selitrennikoff\n *\n * \tStatus: NOT REVIEWED\n *\n\\*****************************************************************************/\n\nWAVE_CHUNK(\"studio\\sound\\cover.wav\", kcnoCoverWav)\nWAVE_CHUNK(\"studio\\sound\\pbrowse.wav\", kcnoPBrowseWav)\nWAVE_CHUNK(\"studio\\sound\\dropdn.wav\", kcnoDropDnWav)\nWAVE_CHUNK(\"studio\\sound\\sbrowse.wav\", kcnoSBrowseWav)\nWAVE_CHUNK(\"studio\\sound\\brwzpic.wav\", kcnoBrwzPicWav)\nWAVE_CHUNK(\"studio\\sound\\brwzbtn.wav\", kcnoBrwzBtnWav)\nWAVE_CHUNK(\"studio\\sound\\ezlopen.wav\", kcnoEzlOpenWav)\nWAVE_CHUNK(\"studio\\sound\\stateon.wav\", kcnoStateOnWav)\nWAVE_CHUNK(\"studio\\sound\\stateoff.wav\", kcnoStateOffWav)\nWAVE_CHUNK(\"studio\\sound\\grabsn.wav\", kcnoGrabSnWav)\nWAVE_CHUNK(\"studio\\sound\\dropsn.wav\", kcnoDropSnWav)\nWAVE_CHUNK(\"studio\\sound\\select.wav\", kcnoSelectWav)\nWAVE_CHUNK(\"studio\\sound\\squash.wav\", kcnoSquashWav)\nWAVE_CHUNK(\"studio\\sound\\stretch.wav\", kcnoStretchWav)\nWAVE_CHUNK(\"studio\\sound\\grow.wav\", kcnoGrowWav)\nWAVE_CHUNK(\"studio\\sound\\shrink.wav\", kcnoShrinkWav)\nWAVE_CHUNK(\"studio\\sound\\cbacks.wav\", kcnoCBackSWav)\nWAVE_CHUNK(\"studio\\sound\\rotate.wav\", kcnoRotateWav)\nWAVE_CHUNK(\"studio\\sound\\cbackr.wav\", kcnoCBackRWav)\nWAVE_CHUNK(\"studio\\sound\\sfreeze.wav\", kcnoSFreezeWav)\nWAVE_CHUNK(\"studio\\sound\\systepf.wav\", kcnoSyStepFWav)\nWAVE_CHUNK(\"studio\\sound\\systepb.wav\", kcnoSyStepBWav)\nWAVE_CHUNK(\"studio\\sound\\move.wav\", kcnoMoveWav)\nWAVE_CHUNK(\"studio\\sound\\move1.wav\", kcnoMove1Wav)\nWAVE_CHUNK(\"studio\\sound\\moveall.wav\", kcnoMoveAllWav)\nWAVE_CHUNK(\"studio\\sound\\actstepf.wav\", kcnoActStepFWav)\nWAVE_CHUNK(\"studio\\sound\\actstepb.wav\", kcnoActStepBWav)\nWAVE_CHUNK(\"studio\\sound\\tbkopen.wav\", kcnoTBkOpenWav)\nWAVE_CHUNK(\"studio\\sound\\splay.wav\", kcnoSPlayWav)\nWAVE_CHUNK(\"studio\\sound\\sloop.wav\", kcnoSLoopWav)\nWAVE_CHUNK(\"studio\\sound\\sact.wav\", kcnoSActWav)\nWAVE_CHUNK(\"studio\\sound\\wfont.wav\", kcnoWFontWav)\nWAVE_CHUNK(\"studio\\sound\\wsize.wav\", kcnoWSizeWav)\nWAVE_CHUNK(\"studio\\sound\\wcolor.wav\", kcnoWColorWav)\nWAVE_CHUNK(\"studio\\sound\\wstyle.wav\", kcnoWStyleWav)\nWAVE_CHUNK(\"studio\\sound\\wbgclr.wav\", kcnoWBgClrWav)\nWAVE_CHUNK(\"studio\\sound\\wscron.wav\", kcnoWScrOnWav)\nWAVE_CHUNK(\"studio\\sound\\wscroff.wav\", kcnoWScrOffWav)\nWAVE_CHUNK(\"studio\\sound\\gofrstf.wav\", kcnoGoFrstFWav)\nWAVE_CHUNK(\"studio\\sound\\goprevf.wav\", kcnoGoPrevFWav)\nWAVE_CHUNK(\"studio\\sound\\gonextf.wav\", kcnoGoNextFWav)\nWAVE_CHUNK(\"studio\\sound\\addframe.wav\", kcnoAddFrameWav)\nWAVE_CHUNK(\"studio\\sound\\golastf.wav\", kcnoGoLastFWav)\nWAVE_CHUNK(\"studio\\sound\\gofrsts.wav\", kcnoGoFrstSWav)\nWAVE_CHUNK(\"studio\\sound\\goprevs.wav\", kcnoGoPrevSWav)\nWAVE_CHUNK(\"studio\\sound\\gonexts.wav\", kcnoGoNextSWav)\nWAVE_CHUNK(\"studio\\sound\\golasts.wav\", kcnoGoLastSWav)\nWAVE_CHUNK(\"studio\\sound\\play.wav\", kcnoPlayWav)\nWAVE_CHUNK(\"studio\\sound\\stop.wav\", kcnoStopWav)\nWAVE_CHUNK(\"studio\\sound\\undo.wav\", kcnoUndoWav)\nWAVE_CHUNK(\"studio\\sound\\redo.wav\", kcnoRedoWav)\nWAVE_CHUNK(\"studio\\sound\\rembfr.wav\", kcnoRemBfrWav)\nWAVE_CHUNK(\"studio\\sound\\remaftr.wav\", kcnoRemAftrWav)\nWAVE_CHUNK(\"studio\\sound\\remscn.wav\", kcnoRemScnWav)\nWAVE_CHUNK(\"studio\\sound\\remactr.wav\", kcnoRemActrWav)\nWAVE_CHUNK(\"studio\\sound\\remwbox.wav\", kcnoRemWBoxWav)\nWAVE_CHUNK(\"studio\\sound\\paste.wav\", kcnoPasteWav)\nWAVE_CHUNK(\"studio\\sound\\copyp.wav\", kcnoCopyPWav)\nWAVE_CHUNK(\"studio\\sound\\copy.wav\", kcnoCopyWav)\nWAVE_CHUNK(\"studio\\sound\\cut.wav\", kcnoCutWav)\nWAVE_CHUNK(\"studio\\sound\\sectool.wav\", kcnoSecToolWav)\nWAVE_CHUNK(\"studio\\sound\\ok.wav\", kcnoOkWav)\nWAVE_CHUNK(\"studio\\sound\\cancel.wav\", kcnoCancelWav)\nWAVE_CHUNK(\"studio\\sound\\fnew.wav\", kcnoFNewWav)\nWAVE_CHUNK(\"studio\\sound\\fsave.wav\", kcnoFSaveWav)\nWAVE_CHUNK(\"studio\\sound\\fsaveas.wav\", kcnoFSaveAsWav)\nWAVE_CHUNK(\"studio\\sound\\pfopen.wav\", kcnoPFOpenWav)\nWAVE_CHUNK(\"studio\\sound\\exit.wav\", kcnoExitWav)\nWAVE_CHUNK(\"studio\\sound\\pageup.wav\", kcnoPageUpWav)\nWAVE_CHUNK(\"studio\\sound\\pagedn.wav\", kcnoPageDnWav)\nWAVE_CHUNK(\"studio\\sound\\rswitch.wav\", kcnoRSwitchWav)\nWAVE_CHUNK(\"studio\\sound\\lselect.wav\", kcnoLSelectWav)\nWAVE_CHUNK(\"studio\\sound\\nukesn.wav\", kcnoNukeSnWav)\nWAVE_CHUNK(\"studio\\sound\\costume.wav\", kcnoCostumeWav)\nWAVE_CHUNK(\"studio\\sound\\acesory.wav\", kcnoAcesoryWav)\nWAVE_CHUNK(\"studio\\sound\\spin.wav\", kcnoSpinWav)\nWAVE_CHUNK(\"studio\\sound\\mike.wav\", kcnoMikeWav)\nWAVE_CHUNK(\"studio\\sound\\rplay.wav\", kcnoRPlayWav)\nWAVE_CHUNK(\"studio\\sound\\pselect.wav\", kcnoPSelectWav)\nWAVE_CHUNK(\"studio\\sound\\random.wav\", kcnoRandomWav)\nWAVE_CHUNK(\"studio\\sound\\mapopen.wav\", kcnoMapOpenWav)\nWAVE_CHUNK(\"studio\\sound\\recframe.wav\", kcnoRecordWav)\n\n"
  },
  {
    "path": "src/studio/studio.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n /*****************************************************************************\\\n *\n *      studio.cht\n *\n *      Mail build input file for the entire Socrates studio.  It includes\n *  all component .cht files.\n *\n *      Author: Sean Selitrennikoff\n *\n *      Status: REVIEWED\n *\n *  Notes:\n *              - kidStudio is used as a \"nil\" type value for initializing values\n *              that will store a kid that may be state changed at will.\n *\n *              - kidBackground->fEnableXxxx is used to store whether the secondary\n *              tool bar doors for Xxxx are open (enabled) or closed.\n *\n *              - kidBackground->idPriOpen stores the kid of the cover that is\n *              currently open in the primary toolbar.\n *\n *              - kidBackground->idtbxDown stores the kid of the textbox tools that\n *              is currently selected.\n *\n *              - kidBackground->idactDown stores the kid of the actor tools that\n *              is currently selected.\n *\n *              - kidBackground->chttXxx stores the current tool in use for secondary\n *              toolbar Xxx.\n *\n *              - ZPlanes:  Background is at 0.  Tools are at 10.  Covers and doors\n *              are at 20.  Popups at 100.  Browsers and easels at 200.\n *\n *              - For radio groups, e.g. the primary tool covers, the algorithm is\n *              to store (globally) the id of the cover that is open, and then if\n *              any other cover wishes to open, it first closes the other cover, opens\n *              itself and then updates the state variable.\n *\n\\*****************************************************************************/\n\n\n//\n// Useful macros\n//\n\n// Uncomment the following line to pack the studio chunks\n#define PACKALL\n\n#include \"kidgs.chh\"\n\n//\n// Definitions for the studio\n//\n#include \"stdiopos.chh\"\n#include \"stdiodef.h\"\n#include \"helptops.h\"\n#include \"helpbook.h\"\n#include \"projmain.h\"\n#include \"balloons.chh\"\n#include \"helpres.h\"\n\n// Shared stuff between building and studio (cursors, map).\n#include \"sharedef.h\"\n#include \"sharutil.chh\"\n\n// bio pages\n#include \"biopage.chh\"\n\n//\n// Get the cursors\n//\n#include \"stdiocrs.h\"\n#include \"cursors.cht\"\n\n//\n// Include other chunky input files\n//\n#include \"stdiosnd.cht\"\n#include \"sectools.cht\"\n#include \"popups.cht\"\n#include \"popdn.cht\"\n#include \"browser.cht\"\n#include \"easels.cht\"\n#include \"stdioscb.cht\"\n\n#include \"helpres.cht\"\n#include \"helpctrl.cht\"\n#include \"helpbook.cht\"\n#include \"hlpbkper.cht\"\n#include \"gadget.cht\"\n#include \"gadgpers.cht\"\n#include \"projmain.cht\"\n#include \"tblogowz.cht\"\n#include \"tbhtscen.cht\"\n#include \"tbhtsoun.cht\"\n#include \"tbhtactr.cht\"\n#include \"tbhtword.cht\"\n#include \"tbguidhp.cht\"\n#include \"tbbasics.cht\"\n#include \"tbproj1.cht\"\n#include \"tbproj2.cht\"\n#include \"tbproj3.cht\"\n#include \"tbproj4.cht\"\n#include \"tbproj5.cht\"\n#include \"tbproj6.cht\"\n\n//\n//\n// Start up chunk/script\n//\n//\nSCRIPTCHUNK(\"Studio\", kidStudio)\n\tIf(_parm[0] == 0);\n\t\tTransition(kgftDissolve, 0, kTransitionTime, Transparent, kidPalette);\n    End;\n\tCreateChildThis(kidBackground, kidBackground);\nENDCHUNK\n\n//\n// Extract the palette from a bitmap\n//\nPALETTECHUNK(\"Palette\", kidPalette, \"studio\\bmp\\socpal.bmp\")\n\n\n//\n// This is the main studio background.  Everything in the studio is\n// a descendent of this.\n//\nGOBCHUNK(\"Background\", kidBackground, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBackground, kypBackground, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, CHID1(kchidClick), cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"hidden\", kxpBackground, kypBackground, kdxpBackground, kdypBackground)\nCREATE_SCRIPT(\"Background -- create\")\n\tDEBUGCMD(PrintStr(\"Creating the Tools background gob.\"));\n\n\t// Make sure keyboard accelerators are enabled.\n\tASSERT(kgobUtil->cDisable == 0);\n\tENABLEACCEL(fTrue);\n\n\t//\n\t// Create all the children\n\t//\n\tCreateChildThis(kidBackground1, kidBackground1);\n\tCreateChildThis(kidBackground2, kidBackground2);\n\tCreateChildThis(kidBackground3, kidBackground3);\n\tCreateChildThis(kidBackground4, kidBackground4);\n\tCreateChildThis(kidFrameBackground, kidFrameBackground);\n\tCreateChildThis(kidSceneBackground, kidSceneBackground);\n\tCreateChildThis(kidWorkspace, kidWorkspace);\n\tCreateChildThis(kidSettingsCover, kidSettingsCover);\n\tCreateChildThis(kidActorsCover, kidActorsCover);\n\tCreateChildThis(kidSoundsCover, kidSoundsCover);\n\tCreateChildThis(kidTextsCover, kidTextsCover);\n\tCreateChildThis(kidScrollbarsCover, kidScrollbarsCover);\n\tCreateChildThis(kidUndosCover, kidUndosCover);\n\tCreateChildThis(kidBooksCover, kidBooksCover);\n\tCreateChildThis(kidDoors, kidDoors);\n\tCreateChildThis(kidBook, kidBook);\n\tCreateChildThis(kidMap, kidMap);\n\tCreateChildThis(kidCutCopyPaste, kidCutCopyPaste);\n\tCreateChildThis(kidCCPBackground, kidCCPBackground);\n\tCreateChildThis(kidUndo, kidUndo);\n\tCreateChildThis(kidVolumeSlider, kidVolumeSlider);\n\tCreateChildThis(kidPlay, kidPlay);\n\tCreateChildThis(kidPortfolio, kidPortfolio);\n\tCreateChildThis(kidPortsBackground, kidPortsBackground);\n\tCreateChildThis(kidName, kidName);\n\tCreateHelpGob(kidName, klabName);\n#ifdef SHOW_FPS\n\tCreateChildThis(kidFps, kidFps);\n#endif // SHOW_FPS\n\tCreateChildThis(kidExit, kidExit);\n\tCreateChildThis(kidSettingsBrowser, kidSettingsBrowser);\n\tCreateChildThis(kidActorsBrowser, kidActorsBrowser);\n\tCreateChildThis(kidActorsPropBrowser, kidActorsPropBrowser);\n\tCreateChildThis(kidActorsSpletters, kidActorsSpletters);\n\tCreateChildThis(kidSoundsEfxBrowser, kidSoundsEfxBrowser);\n\tCreateChildThis(kidSoundsMicBrowser, kidSoundsMicBrowser);\n\tCreateChildThis(kidSoundsMusicBrowser, kidSoundsMusicBrowser);\n\tCreateChildThis(kidTextsCreate, kidTextsCreate);\n\tCreateChildThis(kidRotateBackground, kidRotateBackground);\n\tCreateChildThis(kidTransformBackground, kidTransformBackground);\n\tCreateChildThis(kidScrollBackground, kidScrollBackground);\n\tCreateChildThis(kidActorsSoonerButton, kidActorsSoonerButton);\n\tCreateChildThis(kidActorsLaterButton, kidActorsLaterButton);\n\tCreateChildThis(kidHelpAnchor, kidHelpAnchor);\n\n\t//\n\t// Create help book static information\n\t//\n\tCreateChildThis(kgobHelpBookPersistent, kgobHelpBookPersistent);\n\n//\n\t// Set tooltip delay\n\t//\n\t\n\tSetProp(kpridToolTipDelay, kdtimToolTipDelay);\n\t// REVIEW: ***** : REMOVE THIS!\n\tSetProp(kpridToolTipDelay, 90 );\n\n\t// flag for easel help\n\t::fHelpOn = fFalse;\n\n\t// Remember the place we're supposed to return to the building at\n\t// because kpridBuildingGob can get messed up. (Bug #1010)\n\tSetProp(kpridBuildingGobT, GetProp(kpridBuildingGob));\n\tSetProp(kpridBuildingStateT, GetProp(kpridBuildingState));\n\n\t//\n\t// Initialize all globally accessible state information\n\t//\n\t.fAllSceneDoors = fFalse;\n\t.fAllActorDoors = fFalse;\n\t.fAllSoundDoors = fFalse;\n\t.fAllTextDoors = fFalse;\n\t.fEnableActorTools = fFalse;\n\t.fEnableSceneTools = fFalse;\n\t.fEnableTboxTools = fFalse;\n\t.idPriOpen = kidStudio;\n\t.idtbxDown = kidStudio;\n\t.idactDown = kidStudio;\n\t.idscnDown = kidStudio;\n\t.fpseDown = fFalse;\n\t.chttTbox = chttTboxSelect;\n\t.chttActor = chttCompose;\n\t.fXYAxis = fFalse;\n\t.fRGround = fFalse;\nENDCHUNK\n\n////////////////////////////////////////////////////////////////////////\n\nCHILD_SCRIPT(\"Reset tools\", CHID1(kchidResetTools))\n\n\t//\n\t// Unclick cut/copy/paste button, if down\n\t//\n\tIf (.idscnDown != kidStudio);\n\t\tChangeStateGob(.idscnDown, kstDefault);\n\t\t.idscnDown = kidStudio;\n\tEnd;\n\t\n\t//\n\t// Reset all leveling state variables\n\t//\n\t.fEnableActorTools = fFalse;\n\t.fEnableSceneTools = fFalse;\n\t.fEnableTboxTools = fFalse;\n\t.idtbxDown = kidStudio;\n\t.idscnDown = kidStudio;\n\t.fpseDown = fFalse;\n\t.chttTbox = chttTboxSelect;\n\t.chttActor = chttCompose;\n\t.fXYAxis = fFalse;\n\t.fRGround = fFalse;\n\tEnqueueCid(cidSetTool, khidStudio, chttNone, 0, 0, 0);          // change to Nil tool\n\n\t//\n\t// Resets the leveling in the studio\n\t//\n\tIf (StateGob(kidDoors) != kstDefault);\n\t\tChangeStateGob(kidDoors, kstDefault);\n    End;\n\tIf (StateGob(kidSettingsCover) != kstOpen);\n\t\tChangeStateGob(kidSettingsCover, kstOpen);\n\t\tEnd;\n\tIf (StateGob(kidActorsCover) != kstDisabled);\n\t\tChangeStateGob(kidActorsCover, kstDisabled);\n    End;\n\tIf (StateGob(kidSoundsCover) != kstDisabled);\n\t\tChangeStateGob(kidSoundsCover, kstDisabled);\n    End;\n\tIf (StateGob(kidTextsCover) != kstDisabled);\n\t\tChangeStateGob(kidTextsCover, kstDisabled);\n    End;\n\tIf (StateGob(kidScrollbarsCover) != kstClosed);\n\t\tChangeStateGob(kidScrollbarsCover, kstClosed);\n    End;\n\tIf (StateGob(kidUndosCover) != kstClosed);\n\t\tChangeStateGob(kidUndosCover, kstClosed);\n    End;\n\tIf (StateGob(kidBooksCover) != kstOpen);\n\t\tChangeStateGob(kidBooksCover, kstOpen);\n    End;\n\tIf ((GetProp(kpridStudioFlags) & 1) != 0);\n\t\tCreateChildThis(kidSequenceParent, kidSequenceParent);\n\t\tCreateChildThis(kidGuideHelp, kidGuideHelp);\n\t\tSetProp(kpridStudioFlags, GetProp(kpridStudioFlags) & 0xfffffffe);\n\tEnd;\nENDCHUNK\nCHILD_SCRIPT(\"Set pause type\", CHID1(kchidSetPauseType))\n\t.fpseDown = _parm[0];\nENDCHUNK\nCHILD_SCRIPT(\"Enable scene tools\", CHID1(kchidEnableSceneTools))\n\tkidBackground->fEnableSceneTools = fTrue;\n\tIf(kidBackground->idPriOpen == kidSettingsCover);\n\t\tChangeStateGob(kidDoors, kstSceneDoorsOpen);\n    End;\nENDCHUNK\nCHILD_SCRIPT(\"Enable actor tools\", CHID1(kchidEnableActorTools))\n\tkidBackground->fEnableActorTools = fTrue;\n\tIf(kidBackground->idPriOpen == kidActorsCover);\n\t\tChangeStateGob(kidDoors, kstActorDoorsOpen);\n    End;\nENDCHUNK\nCHILD_SCRIPT(\"Enable tbox tools\", CHID1(kchidEnableTboxTools))\n\tkidBackground->fEnableTboxTools = fTrue;\n\tIf(kidBackground->idPriOpen == kidTextsCover);\n\t\tChangeStateGob(kidDoors, kstTextDoorsOpen);\n    End;\nENDCHUNK\nCHILD_SCRIPT(\"Invoke Project Gadget\", CHID1(kchidMovieTechniques))\n\tDEBUGCMD(PrintStr(\"Running kchidMovieTechniques\"));\n\t// change help button to gadget button\n\tCreateChildThis(kidGadget, kidGadget);\n\tCreateChildThis(kidGadgetStartUp, kidGadgetStartUp);\n\t// set up the movie names so code can read them\n\t// NOTE: These are #define'd in projmain.h\n\n\tCopyStr(PROJECT1_MOVIENAME, stidMovie1) ;\n\tCopyStr(PROJECT2_MOVIENAME, stidMovie2) ;\n\tCopyStr(PROJECT3_MOVIENAME, stidMovie3) ;\n\tCopyStr(PROJECT4_MOVIENAME, stidMovie4) ;\n\tCopyStr(PROJECT5_MOVIENAME, stidMovie5) ;\n\tCopyStr(PROJECT6_MOVIENAME, stidMovie6) ;\nENDCHUNK\nCHILD_SCRIPT(\"Invoke Flying Logo\", CHID1(kchidFlyingLogo))\n\tDEBUGCMD(PrintStr(\"Running kchidFlyingLogo\"));\n\tCreateChildThis(kidSequenceParent, kidSequenceParent);\n\tCreateChildThis(kidLogoWizard, kidLogoWizard);\nENDCHUNK\nCHILD_SCRIPT(\"Reset XZ/XY axis to XZ and respect ground\", CHID1(kchidResetXZAxisAndGround))\n\t.fXYAxis = fFalse;\n\t.fRGround = fFalse;\nENDCHUNK\nCHILD_SCRIPT(\"Open doors all the way\", CHID1(kchidOpenDoorsAll))\n\t.fAllSceneDoors = fTrue;\n\t.fAllActorDoors = fTrue;\n\t.fAllSoundDoors = fTrue;\n\t.fAllTextDoors = fTrue;\n\n\tIf(StateGob(kidDoors) == kstSceneDoorsOpen);\n\t\tChangeStateGob(kidDoors, kstSceneDoorsAllOpen);\n\tElif(StateGob(kidDoors) == kstActorDoorsOpen);\n\t\tChangeStateGob(kidDoors, kstActorDoorsAllOpen);\n\tElif(StateGob(kidDoors) == kstSoundDoorsOpen);\n\t\tChangeStateGob(kidDoors, kstSoundDoorsAllOpen);\n\tElif(StateGob(kidDoors) == kstTextDoorsOpen);\n\t\tChangeStateGob(kidDoors, kstTextDoorsAllOpen);\n\tEnd;\nENDCHUNK\nCHILD_SCRIPT(\"Popout scene tools\", CHID1(kchidPopoutSceneTools))\n\t//\n\t// Unclick any tool that is down.\n\t//\n\tIf (.idscnDown != kidStudio);\n\t\tChangeStateGob(.idscnDown, kstDefault);\n\t\t.idscnDown = kidStudio;\n\tEnd;\nENDCHUNK\t\n\n//\n// The background is divided into four bitmaps surrounding the\n// workspace, to save redraws.\n//\nGOBCHUNK(\"Background 1\", kidBackground1, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBackground1, kypBackground1, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\back1.bmp\", kxpregBackground1, kypregBackground1)\n\n// Background 2 only serves to create the rollcall actor browser.\nGOBCHUNK(\"Background 2\", kidBackground2, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBackground2, kypBackground2, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nCREATE_SCRIPT(\"Background 2 - create\")\n\tEnqueueCid(cidBrowserReady, khidStudio, kidRollCallActor, kidRollCallActorFrame, kidRollCallActorDownArrow,\n\t\t\t   (kdxpRollCallActorFrameBorder << 16) | kdypRollCallActorFrameBorder);\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\back2.bmp\", kxpregBackground2, kypregBackground2 )\n\t\t\t\n// Background 3 only serves to create the rollcall prop browser.\nGOBCHUNK(\"Background 3\", kidBackground3, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBackground3, kypBackground3, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nCREATE_SCRIPT(\"Background 3 - create\")\n\tEnqueueCid(cidBrowserReady, khidStudio, kidRollCallProp, kidRollCallPropFrame, kidRollCallPropDownArrow,\n\t\t\t   (kdxpRollCallPropFrameBorder << 16) | kdypRollCallPropFrameBorder);\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\back3.bmp\", kxpregBackground3, kypregBackground3)\n\nGOBCHUNK(\"Background 4\", kidBackground4, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBackground4, kypBackground4, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\back4.bmp\", kxpregBackground4, kypregBackground4)\n\n\n//\n//\n// Create the background for the scroll bars\n//\n//\nGOBCHUNK(\"Background - Frame Scrollbar\", kidFrameBackground, kgokkRectHit)\n\tDEFAULT_POSITION(kxpFrameBackground, kypFrameBackground, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\fpar1.bmp\", kxpregFrameBackground, kypregFrameBackground )\nCREATE_SCRIPT(\"Background - Frame Scrollbar -- create\")\n\tCreateChildThis(kidFrameTitle, kidFrameTitle);\n\tCreateChildThis(kidFrameText, kidFrameText);\n\tCreateChildThis(kidFrameFW, kidFrameFW);\n\tCreateChildThis(kidFrameFWEnd, kidFrameFWEnd);\n\tCreateChildThis(kidFrameRW, kidFrameRW);\n\tCreateChildThis(kidFrameRWEnd, kidFrameRWEnd);\n\tCreateChildThis(kidFrameScrollbar, kidFrameScrollbar);\n\tCreateChildGob(kidFrameScrollbar, kidFrameThumb, kidFrameThumb);\nENDCHUNK\n\nGOBCHUNK(\"Background - Scene Scrollbar\", kidSceneBackground, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSceneBackground, kypSceneBackground, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\spar1.bmp\", kxpregSceneBackground, kypregSceneBackground)\nCREATE_SCRIPT(\"Background - Scene Scrollbar -- create\")\n\tCreateChildThis(kidSceneTitle, kidSceneTitle);\n\tCreateChildThis(kidSceneText, kidSceneText);\n\tCreateChildThis(kidSceneFW, kidSceneFW);\n\tCreateChildThis(kidSceneFWEnd, kidSceneFWEnd);\n\tCreateChildThis(kidSceneRW, kidSceneRW);\n\tCreateChildThis(kidSceneRWEnd, kidSceneRWEnd);\n\tCreateChildThis(kidSceneScrollbar, kidSceneScrollbar);\n\tCreateChildGob(kidSceneScrollbar, kidSceneThumb, kidSceneThumb);\nENDCHUNK\n\n//\n// Create the workspace\n//\nGOBCHUNK(\"Workspace\", kidWorkspace, kgokkRectHit)\n\tDEFAULT_POSITION(kxpWorkspace, kypWorkspace, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_RECT(CHID(kstDefault, krepDefault), \"hidden\", 0, 0, kdxpWorkspace, kdypWorkspace)\n\n//\n// Create the Help Anchor, use to anchor help balloons to the bottom right corner\n//\nGOBCHUNK(\"Help Anchor\", kidHelpAnchor, kgokkRectNoHit )\n\tDEFAULT_POSITION(kxpHelpAnchor, kypHelpAnchor, 20)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\n//REP_MASK(CHID(kstDefault, krepDefault), \"studio\\bmp\\helpanch.bmp\", kxpregHelpAnchor, kypregHelpAnchor)\nREP_RECT( CHID( kstDefault, krepDefault), \"anchor for help\", 0, 0, 1, 1 )\n\n\n\n//\n//\n// Primary Covers\n//\n//\n\n//\n// Scene cover\n//\nGOBCHUNK(\"Settings\", kidSettingsCover, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSettingsCover, kypSettingsCover, 20)\n\tACTION(fcustNil, fcustNil, fgrfstClosed, kcrsHand, CHID(kstClosed, kchidClick), cidNil, kttSettingsCover)\nENDCHUNK\nREP_MBMPREG(CHID(kstDisabled, krepDefault), \"studio\\bmp\\covr1d.bmp\",\n\t\t\tkxpregSettingsCover, kypregSettingsCover)\nREP_MBMPREG(CHID(kstClosed, krepDefault), \"studio\\bmp\\covr1c.bmp\",\n\t\t\tkxpregSettingsCover, kypregSettingsCover)\nREP_MBMPREG(CHID(kstOpen, krepDefault), \"studio\\bmp\\covr1o.bmp\",\n\t\t\tkxpregSettingsCover, kypregSettingsCover)\nADOPT_WAVE(kcnoCoverWav, CHID(kstClosed, krepClicked))\nCREATE_ANIMST(\"Settings -- Covered -> Open\", kstOpen)\n    If(kidBackground->idPriOpen != GidThis());\n\t\tCreateChildGob(kidBackground, kidSettingsBackground, kidSettingsBackground);\n\t\tEnqueueCid(cidSetTool, khidStudio, chttNone, 0, 0, 0);          // change to Nil tool\n\t    ChangeStateGob(kidBackground->idPriOpen, kstClosed);\n\t\tkidBackground->idPriOpen = GidThis();\n\t\tChangeStateGob(kidDoors, kstDefault);\n\t\tIf(kidBackground->fEnableSceneTools);\n\t\t    ChangeStateGob(kidDoors, kstSceneDoorsOpen);\n\t\tElse;\n\t\t\tChangeStateGob(kidDoors, kstDefault);\n\t\tEnd;\n\t\tChangeStateGob(kidCCPActorNuke, kst1); // Use Scene nuke bmp\n\tEnd;\nENDCHUNK\nCREATE_ANIMST(\"Settings -- Open -> Closed\", kstClosed)\n    If(FGobExists(kidSettingsBackground));\n\t\tDestroyGob(kidSettingsBackground);\n\t\tIf(kidBackground->idPriOpen == GidThis());\n\t\t\tkidBackground->idPriOpen = kidStudio;\n\tEnd;\n    End;\nENDCHUNK\nCHILD_SCRIPT(\"Settings -- Covered\", CHID(kstClosed, kchidClick))\n\tIf(kidBackground->idPriOpen != GidThis());\n\t\tChangeStateThis(kstOpen);\n    End;\nENDCHUNK\n\n//\n// Actor cover\n//\nGOBCHUNK(\"Actors\", kidActorsCover, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsCover, kypActorsCover, 20)\n\tACTION(fcustNil, fcustNil, fgrfstClosed, kcrsHand, CHID(kstClosed, kchidClick), cidNil, kttActorsCover)\nENDCHUNK\nREP_MBMPREG(CHID(kstDisabled, krepDefault), \"studio\\bmp\\covr2d.bmp\",\n\t\t\tkxpregActorsCover, kypregActorsCover)\nREP_MBMPREG(CHID(kstClosed, krepDefault), \"studio\\bmp\\covr2c.bmp\",\n\t\t\tkxpregActorsCover, kypregActorsCover)\nADOPT_WAVE(kcnoCoverWav, CHID(kstClosed, krepClicked))\nCREATE_ANIMST(\"Actors -- Closed -> Open\", kstOpen)\n\tIf(kidBackground->idPriOpen != GidThis());\n\t\tCreateChildGob(kidBackground, kidActorsBackground, kidActorsBackground);\n\t\tChangeStateGob(kidBackground->idPriOpen, kstClosed);\n\t\tkidBackground->idPriOpen = GidThis();\n\t\tChangeStateGob(kidDoors, kstDefault);\n\t\tIf(kidBackground->fEnableActorTools);\n\t\t\tChangeStateGob(kidDoors, kstActorDoorsOpen);\n\tElse;\n\t\t\tChangeStateGob(kidDoors, kstDefault);\n\t\tEnd;\n\t\tChangeStateGob(kidCCPActorNuke, kst3); // Use Actor nuke bmp\n\tEnd;\nENDCHUNK\nCREATE_ANIMST(\"Actors -- Open -> Closed\", kstClosed)\n    If(FGobExists(kidActorsBackground));\n\t\tDestroyGob(kidActorsBackground);\n\t\tIf(kidBackground->idPriOpen == GidThis());\n\t\t\tkidBackground->idPriOpen = kidStudio;\n\tEnd;\n    End;\nENDCHUNK\nCHILD_SCRIPT(\"Actors -- Covered\", CHID(kstClosed, kchidClick))\n\tIf(kidBackground->idPriOpen != GidThis());\n\t\tChangeStateThis(kstOpen);\n    End;\nENDCHUNK\nREP_MBMPREG(CHID(kstOpen, krepDefault), \"studio\\bmp\\covr2o.bmp\",\n\t\t\tkxpregActorsCover, kypregActorsCover)\n\n//\n// Sounds cover\n//\nGOBCHUNK(\"Sounds\", kidSoundsCover, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSoundsCover, kypSoundsCover, 20)\n\tACTION(fcustNil, fcustNil, fgrfstClosed, kcrsHand, CHID(kstClosed, kchidClick), cidNil, kttSoundsCover)\nENDCHUNK\nREP_MBMPREG(CHID(kstDisabled, krepDefault), \"studio\\bmp\\covr3d.bmp\",\n\t\t\tkxpregSoundsCover, kypregSoundsCover)\nREP_MBMPREG(CHID(kstClosed, krepDefault), \"studio\\bmp\\covr3c.bmp\",\n\t\t\tkxpregSoundsCover, kypregSoundsCover)\nADOPT_WAVE(kcnoCoverWav, CHID(kstClosed, krepClicked))\nCREATE_ANIMST(\"Sounds -- Covered -> Open\", kstOpen)\n\tCreateChildGob(kidBackground, kidSoundsBackground, kidSoundsBackground);\n\tEnqueueCid(cidSoundsEnabled, khidStudio, fTrue, 0, 0, 0);\nENDCHUNK\nCREATE_ANIMST(\"Sounds -- Open -> Closed\", kstClosed)\n    If(FGobExists(kidSoundsBackground));\n\t\tDestroyGob(kidSoundsBackground);\n\t\tIf(kidBackground->idPriOpen == GidThis());\n\t\t\tkidBackground->idPriOpen = kidStudio;\n\t\t\tEnqueueCid(cidSoundsEnabled, khidStudio, fFalse, 0, 0, 0);\n\tEnd;\n    End;\nENDCHUNK\nCHILD_SCRIPT(\"Sounds -- Covered\", CHID(kstClosed, kchidClick))\n\tIf(kidBackground->idPriOpen != GidThis());\n\t\tChangeStateGob(kidBackground->idPriOpen, kstClosed);\n\t\tkidBackground->idPriOpen = GidThis();\n\t\tChangeStateGob(kidDoors, kstDefault);\n\t\tChangeStateThis(kstOpen);\n\t\tChangeStateGob(kidDoors, kstSoundDoorsOpen);\n\t\tChangeStateGob(kidCCPActorNuke, kst5);\n\t\tEnqueueCid(cidSetTool, khidStudio, chttListener, 0, 0, 0);\n\tEnd;\nENDCHUNK\nREP_MBMPREG(CHID(kstOpen, krepDefault), \"studio\\bmp\\covr3o.bmp\",\n\t\t\tkxpregSoundsCover, kypregSoundsCover)\n\n//\n// Texts cover\n//\nGOBCHUNK(\"Text\", kidTextsCover, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTextsCover, kypTextsCover, 20)\n\tACTION(fcustNil, fcustNil, fgrfstClosed, kcrsHand, CHID(kstClosed, kchidClick), cidNil, kttTextsCover)\nENDCHUNK\nREP_MBMPREG(CHID(kstDisabled, krepDefault), \"studio\\bmp\\covr4d.bmp\",\n\t\t\tkxpregTextsCover, kypregTextsCover)\nREP_MBMPREG(CHID(kstClosed, krepDefault), \"studio\\bmp\\covr4c.bmp\",\n\t\t\tkxpregTextsCover, kypregTextsCover)\nADOPT_WAVE(kcnoCoverWav, CHID(kstClosed, krepClicked))\nCREATE_ANIMST(\"Text -- Covered -> Open\", kstOpen)\n\tIf(kidBackground->idPriOpen != GidThis());\n\t\tCreateChildGob(kidBackground, kidTextsBackground, kidTextsBackground);\n\t\tChangeStateGob(kidBackground->idPriOpen, kstClosed);\n\t\tkidBackground->idPriOpen = GidThis();\n\t\tChangeStateGob(kidDoors, kstDefault);\n\t\tIf(kidBackground->fEnableTboxTools);\n\t\t\tChangeStateGob(kidDoors, kstTextDoorsOpen);\n\tElse;\n\t\t\tChangeStateGob(kidDoors, kstDefault);\n\t\tEnd;\n\t\tChangeStateGob(kidCCPActorNuke, kst7); // Use tbox nuker bmp\n    End;\nENDCHUNK\nCREATE_ANIMST(\"Text -- Open -> Closed\", kstClosed)\n    If(FGobExists(kidTextsBackground));\n\t\tDestroyGob(kidTextsBackground);\n\t\tIf(kidBackground->idPriOpen == GidThis());\n\t\t\tkidBackground->idPriOpen = kidStudio;\n\tEnd;\n    End;\nENDCHUNK\nCHILD_SCRIPT(\"Text -- Covered\", CHID(kstClosed, kchidClick))\n\tIf(kidBackground->idPriOpen != GidThis());\n\t\tChangeStateThis(kstOpen);\n\tEnqueueCid(cidSetTool, khidStudio, chttTboxSelect, 0, 0, 0);\n\tEnd;\nENDCHUNK\nREP_MBMPREG(CHID(kstOpen, krepDefault), \"studio\\bmp\\covr4o.bmp\",\n\t\t\tkxpregTextsCover, kypregTextsCover)\n\n\n//\n// Scroll bar area cover\n//\nGOBCHUNK(\"Scrollbars\", kidScrollbarsCover, kgokkRectHit)\n\tDEFAULT_POSITION(kxpScrollbarsCover, kypScrollbarsCover, 20)\nENDCHUNK\nREP_MBMPREG(CHID(kstDisabled, krepDefault), \"studio\\bmp\\covr5d.bmp\",\n\t\t\tkxpregScrollbarsCover, kypregScrollbarsCover)\nREP_MBMPREG(CHID(kstClosed, krepDefault), \"studio\\bmp\\covr5c.bmp\",\n\t\t\tkxpregScrollbarsCover, kypregScrollbarsCover)\nREP_MBMPREG(CHID(kstOpen, krepDefault), \"studio\\bmp\\covr5o.bmp\",\n\t\t\tkxpregScrollbarsCover, kypregScrollbarsCover)\n\n//\n// Undo and Cut/Copy/Paste cover\n//\nGOBCHUNK(\"Undo and C/C/P\", kidUndosCover, kgokkRectHit)\n\tDEFAULT_POSITION(kxpUndosCover, kypUndosCover, 20)\nENDCHUNK\nREP_MBMPREG(CHID(kstDisabled, krepDefault), \"studio\\bmp\\covr7d.bmp\",\n\t\t\tkxpregUndosCover, kypregUndosCover)\nREP_MBMPREG(CHID(kstClosed, krepDefault), \"studio\\bmp\\covr7c.bmp\",\n\t\t\tkxpregUndosCover, kypregUndosCover)\nREP_MBMPREG(CHID(kstOpen, krepDefault), \"studio\\bmp\\covr7o.bmp\",\n\t\t\tkxpregUndosCover, kypregUndosCover)\n\n//\n// Book, map and portfolio cover\n//\nGOBCHUNK(\"Book, Map and Portfolio\", kidBooksCover, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBooksCover, kypBooksCover, 20)\nENDCHUNK\nREP_MBMPREG(CHID(kstDisabled, krepDefault), \"studio\\bmp\\covr8d.bmp\",\n\t\t\tkxpregBooksCover, kypregBooksCover)\nREP_MBMPREG(CHID(kstClosed, krepDefault), \"studio\\bmp\\covr8c.bmp\",\n\t\t\tkxpregBooksCover, kypregBooksCover)\nREP_MBMPREG(CHID(kstOpen, krepDefault), \"studio\\bmp\\covr8o.bmp\",\n\t\t\tkxpregBooksCover, kypregBooksCover)\n\n\n\n\n//\n//\n// Tools that are primary tools, not in a popup.\n//\n//\n\n//\n// The book\n//REVIEW tony(seanse): Why are there two entries here?\nGOBCHUNK(\"Book\", kidBook, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBook, kypBook, 0)\n\tACTION(fcustNil, fcustNil, fgrfstDefault, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttBook)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\book.bmp\",\n\tkxpregBook, kypregBook)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\bookc.bmp\",\n\tkxpregBook, kypregBook)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nADOPT_WAVE(kcnoEzlOpenWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"Help Book\", CHID(kstDefault, kchidClick))\n\tCreateChildGob(kidBackground, kgobHelpBookParent, kgobHelpBookParent);\nENDCHUNK\n\n//\n// The gadget\n//\nGOBCHUNK(\"Project Gadget\", kidGadget, kgokkRectHit)\n\tDEFAULT_POSITION(kxpBook, kypBook, 10)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, kchidClick, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(kcell1, \"studio\\bmp\\gadg.bmp\", kxpregBook, kypregBook)\nADOPT_MBMP(LAST_MBMP, CHID(kst1, krepDefault))\nADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseDnOff))\nREP_MBMPREG(kcell2, \"studio\\bmp\\gadgblck.bmp\", kxpregBook, kypregBook)\nADOPT_MBMP(LAST_MBMP, CHID(kst2, krepDefault))\nREP_MBMPREG(kcell3, \"studio\\bmp\\gadgc.bmp\", kxpregBook, kypregBook)\nADOPT_MBMP(LAST_MBMP, CHID(kst1, krepMouseDnOn))\nREP_ANIM(CHID(kst3, krepDefault), \"Gadget blinking state\")\n\tcell = 0;\n\tWhile();\n\t\tCell(kcell1 + cell, 0, 0, 30);\n\t\tcell++;\n\t\tcell = cell % 2;\n\tEnd;\nENDCHUNK\nCHILD_SCRIPT(\"Project gadget\", kchidClick)\n\t// create the gadget\n\tCreateChildGob(kidBackground, kidGadgetParent, kidGadgetParent);\nENDCHUNK\n\n//\n// The Map\n//\nGOBCHUNK(\"Map\", kidMap, kgokkRectHit)\n\tDEFAULT_POSITION(kxpMap, kypMap, 0)\n\tACTION(fcustNil, fcustNil, fgrfstDefault, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttMap)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\map.bmp\",\n\tkxpregMap, kypregMap)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\mapc.bmp\",\n\tkxpregMap, kypregMap)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\n//ADOPT_WAVE(kcnoMapOpenWav, CHID(kstDefault, krepClicked))\nCHILD_SCRIPT(\"Map Click Script\", CHID(kstDefault, kchidClick))\n\tCreateChildGob( kidBackground, kgobMapMain, kgobMapMain );\nENDCHUNK\n\n//\n// The C/C/P button.  Starts up the popup\n//\nGOBCHUNK(\"CutCopyPaste\", kidCutCopyPaste, kgokkRectHit)\n\tDEFAULT_POSITION(kxpCutCopyPaste, kypCutCopyPaste, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttCutCopyPaste)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\ccp.bmp\",\n\tkxpregCutCopyPaste, kypregCutCopyPaste)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\ccps.bmp\",\n\tkxpregCutCopyPaste, kypregCutCopyPaste)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCREATE_ANIMST(\"CutCopyPaste --> Default\", kstDefault)\n\tIf (FGobExists(.idDown) && (.idDown != kidStudio));\n\t\tIf (.idDown == kidCCPActorNuke);\n\t\t\tIf (StateGob(kidCCPActorNuke) == kst2);\n\t\t\t\tChangeStateGob(.idDown, kst1);\n\t\t\tElif (StateGob(kidCCPActorNuke) == kst4);\n\t\t\t\tChangeStateGob(.idDown, kst3);\n\t\t\tElif (StateGob(kidCCPActorNuke) == kst6);\n\t\t\t\tChangeStateGob(.idDown, kst5);\n\t\t\tElse;\n\t\t\t\tChangeStateGob(.idDown, kst7);\n\t\t\tEnd;\n\t\tElse;\n\t\t\tChangeStateGob(.idDown, kstDefault);\n\tEnd;\n    End;\n\t.idDown = kidStudio;\nENDCHUNK\nCHILD_SCRIPT(\"CutCopyPaste\", CHID(kstDefault, kchidClick))\n\tIf (StateGob(kidCCPBackground) != kstOpen);\n\t\tChangeStateGob(kidCCPBackground, kstOpen);\n\tEnd;\nENDCHUNK\n\n//\n// Undo/Redo button\n//\nGOBCHUNK(\"Undo\", kidUndo, kgokkRectHit)\n\tDEFAULT_POSITION(kxpUndo, kypUndo, 0)\n\tACTION(fcustNil, fcustNil, fgrfstOpen, kcrsHand, CHID(kstOpen, kchidClick), cidNil, kttUndo)\n\tACTION(fcustNil, fcustNil, fgrfstClosed, kcrsHand, CHID(kstClosed, kchidClick), cidNil, kttUndo)\nENDCHUNK\nREP_MBMPREG(CHID(kstDisabled, krepDefault), \"studio\\bmp\\undod.bmp\",\n\tkxpregUndo, kypregUndo)\nREP_MBMPREG(CHID(kstOpen, krepDefault), \"studio\\bmp\\undo.bmp\",\n\tkxpregUndo, kypregUndo)\nADOPT_MBMP(LAST_MBMP, CHID(kstDisabled, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDisabled, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDisabled, krepMouseDnOn), \"studio\\bmp\\undos.bmp\",\n\tkxpregUndo, kypregUndo)\nADOPT_MBMP(LAST_MBMP, CHID(kstClosed, krepDefault))\nCHILD_SCRIPT(\"Undo\", CHID(kstOpen, kchidClick))\n\tEnqueueCid(cidUndo, 0, 0, 0, 0, 0);\n\tChangeStateThis(kstClosed);\nENDCHUNK\nCHILD_SCRIPT(\"Redo\", CHID(kstClosed, kchidClick))\n\tEnqueueCid(cidRedo, 0, 0, 0, 0, 0);\n\tChangeStateThis(kstOpen);\nENDCHUNK\n\n//\n// Volume controls\n//\n// --------------------------------------------------------------------------\n// The thumbnail is the graphic indicator of volume level...\n// positioned within the slide path - not hittable\n// --------------------------------------------------------------------------\n// Note, this code is copied from the Volume Control code in shared\\map.cht.\n//\nOBJECTTY( \"volume thumb\",  kidVolumeThumb, 1, kcrsArrow1, kgokkRectNoHit )\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\volthmb.bmp\", -4, -2)\n\nOBJECTTTREG(\"VolumeSlider\", kidVolumeSlider, 0, kcrsHand1, kttVolumeSlider, kxpVolumeSlider, kypVolumeSlider)\nREP_MBMPREG(kcell1, \"studio\\bmp\\vsld.bmp\",\n\tkxpregVolumeSlider, kypregVolumeSlider)\nCREATE_SCRIPT( \"Create VolumeSlider\")\n\tCreateChildThis(kidVolumeThumb, kidVolumeThumb);\n\t// get initial volume value, move thumbnail\n\t//y = kdypVolumeSlider - ((GetMasterVolume() * kdypVolumeSlider) / (2*kvlmFull));\n\ty = kdypVolumeSlider - MulDiv( GetMasterVolume(), kdypVolumeSlider, (2*kvlmFull));\n\tMoveAbsGob(kidVolumeThumb, 0, y);\nENDCHUNK\nREP_ANIM(CHID1(krepDefault), \"Default Rep VolumeSlider\")\n\t// REVIEW *****: Polling master volume every second -- affects perf?\n\tWhile (fTrue);\n\t\t// y = kdypVolumeSlider - ((GetMasterVolume() * kdypVolumeSlider) / (2*kvlmFull));\n\t\ty = kdypVolumeSlider - MulDiv( GetMasterVolume(), kdypVolumeSlider, (2*kvlmFull) );\n\t\tMoveAbsGob(kidVolumeThumb, 0, y);\n\t\tCell(kcell1, 0, 0, 60);\n\tEnd;\nENDCHUNK\nREP_ANIM(CHID1(krepMouseDnOn), \"MouseDnOn VolumeSlider\")\n\t// repeat up to 30000 times.\n\t.siiLoop = PlaySoundThis(kctgWave, kwavDing, 2, 0x00010000, 30000, 1, 4);\n\tWhile (fTrue);\n\t\ty = YMouseThis();\n\t\tIf (y < 0);\n\t\t\ty = 0;\n\t\tElif (y > kdypVolumeSlider);\n\t\t\ty = kdypVolumeSlider;\n\t\tEnd;\n\t\t\n\t\t// move thumb slider\n\t\tMoveAbsGob(kidVolumeThumb, 0, y);\n\t\t\n\t\t// track new volume\n\t\tnewvol = MulDiv( (2*kvlmFull),  (kdypVolumeSlider-y), kdypVolumeSlider );\n\n\t\t// set the volume\n\t\tSetMasterVolume(newvol);\n\n\t\t// Sample at 10/60ths of a second.\n\t\tCell(0, 0, 0, 10);\n\tEnd;\nENDCHUNK\nREP_ANIM(CHID1(kchidDownUpOn), \"Release VolumeSlider\" )\n\tStopSound(.siiLoop);\nENDCHUNK\nADOPT_ANIM(LAST_ANIM, CHID1(kchidDownUpOff))\n\n//\n// Play button\n//\nGOBCHUNK(\"Play\", kidPlay, kgokkRectHit)\n\tDEFAULT_POSITION(kxpPlay, kypPlay, 0)\n\tACTION(fcustNil, fcustNil, fgrfstDefault, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttPlay)\n\tACTION(fcustNil, fcustNil, fgrfstSelected, kcrsHand, CHID(kstSelected, kchidClick), cidNil, kttPlay)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\play.bmp\",\n\tkxpregPlay, kypregPlay)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\playc1.bmp\",\n\tkxpregPlay, kypregPlay)\nREP_MBMPREG(CHID(kstSelected, krepDefault), \"studio\\bmp\\plays.bmp\",\n\tkxpregPlay, kypregPlay)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepMouseDnOff))\nREP_MBMPREG(CHID(kstSelected, krepMouseDnOn), \"studio\\bmp\\playc2.bmp\",\n\tkxpregPlay, kypregPlay)\nREP_MBMPREG(CHID(kstRecording, kcell1), \"studio\\bmp\\playm1.bmp\",\n\tkxpregPlay, kypregPlay)\nREP_MBMPREG(CHID(kstRecording, kcell2), \"studio\\bmp\\playm2.bmp\",\n\tkxpregPlay, kypregPlay)\nREP_ANIM(CHID(kstRecording, krepDefault), \"Flashing\")\n\tchidcell = CHID(kstRecording, kcell1);\n\tWhile();\n\t\tCell(chidcell, 0, 0, 20);\n\t\tchidcell = (chidcell == CHID(kstRecording, kcell1) ?\n\t\t\t\t\t\t\t\tCHID(kstRecording, kcell2) :\n\t\t\t\t\t\t\t\tCHID(kstRecording, kcell1));\n\tEnd;\nENDCHUNK\nADOPT_WAVE(kcnoPlayWav, CHID(kstDefault, krepClicked))\nADOPT_WAVE(kcnoStopWav, CHID(kstSelected, krepClicked))\nCREATE_ANIMST(\"Play\", kstDefault)\n\t//\n\t// Destroy any glass that my exist\n\t//\n\tDestroyGob(kidGenericGlass);\n\tSetZThis(0);\nENDCHUNK\nCHILD_SCRIPT(\"Play\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidPlay, khidStudio, 0, 0, 0, 0);\n\tChangeStateThis(kstSelected);\n\n\t// Select the appropriate default tool for when playing has finished.\n\n\tIf (StateGob(kidSettingsCover) == kstOpen);\n\n\t\t// Scenes: Nil tool is default.\n\t\tChangeStateGob(kidBackground->idscnDown, kstDefault);\n\t\tEnqueueCid(cidSetTool, khidStudio, chttNone, 0, 0, 0);\n\n\tElif (StateGob(kidActorsCover) == kstOpen);\n\n\t\t// Actors: Selection tool is default.\n\t\tChangeStateGob(kidActorsCompose, kstSelected);\n\n\tElif (StateGob(kidSoundsCover) == kstOpen);\n\n\t\t// Sounds: Sounder tool is default.\n\t\tChangeStateGob(kidSoundsPlayOnce, kstSelected);\n\n\tElif (StateGob(kidTextsCover) == kstOpen);\n\n\t\t// Text: Insertion tool is default.\n\t\tChangeStateGob(kidTextsSelect, kstSelected);\n\t\tEnqueueCid(cidSetTool, khidStudio, chttTboxSelect, 0, 0, 0);\n\n    End;\n\nENDCHUNK\nCREATE_ANIMST(\"Play\", kstSelected)\n\t//\n\t// Create glass to absorb clicks\n\t//\n\tCreateChildGob(kidBackground, kidGenericGlass, kidGenericGlass);\n\tSetZThis(200);\nENDCHUNK\nCHILD_SCRIPT(\"Play, stop\", CHID(kstSelected, kchidClick))\n\tEnqueueCid(cidPlay, khidStudio, 0, 0, 0, 0);\n\tChangeStateThis(kstDefault);\nENDCHUNK\n\n//\n// Portfolio button.  Starts up the popup.\n//\nGOBCHUNK(\"Portfolio\", kidPortfolio, kgokkRectHit)\n\tDEFAULT_POSITION(kxpPortfolio, kypPortfolio, 0)\n\tACTION(fcustNil, fcustNil, fgrfstDefault, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttPortfolio)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsArrow, chidNil, cidNil, cnoNil)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\port.bmp\",\n\tkxpregPortfolio, kypregPortfolio)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\ports.bmp\",\n\tkxpregPortfolio, kypregPortfolio)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Portfolio\", CHID(kstDefault, kchidClick))\n\tChangeStateGob(kidPortsBackground, kstOpen);\nENDCHUNK\n\n//\n// Name of the movie\n//\nGOBCHUNK(\"Name\", kidName, gokkNoHit)\n\tDEFAULT_POSITION(kxpName, kypName, 0)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\name.bmp\",\n\tkxpregName, kypregName)\n\n#ifdef SHOW_FPS\n// REVIEW(*****): this will not be present in final product\nGOBCHUNK(\"Fps\", kidFps, kgokkRectHit)\n\tDEFAULT_POSITION(kxpFps, kypFps, 0)\nENDCHUNK\nREP_MBMP(CHID1(krepDefault), \"studio\\bmp\\fps.bmp\")\n#endif // SHOW_FPS\n\n//\n// Exit button\n//\nGOBCHUNK(\"Exit\", kidExit, kgokkRectHit)\n\tDEFAULT_POSITION(kxpExit, kypExit, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID1(kchidClick), cidNil, kttExit)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\exit.bmp\",\n\tkxpregExit, kypregExit)\nADOPT_MBMP(LAST_MBMP, CHID1(krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID1(krepMouseDnOff))\nREP_MBMPREG(CHID1(krepMouseDnOn), \"studio\\bmp\\exitc.bmp\",\n\tkxpregExit, kypregExit)\nADOPT_WAVE(kcnoExitWav, CHID1(krepClicked))\nCHILD_SCRIPT(\"Exit\", CHID1(kchidClick))\n\tEnqueueCid(cidExitStudio, 0, 0, 0, 0, 0);\nENDCHUNK\n\n\n//\n//\n// Primary tools under the top set of covers.\n//\n//\n\n//\n// Settings browser.  Starts up the browser.\n//\nGOBCHUNK(\"SettingsBrowser\", kidSettingsBrowser, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSettingsBrowser, kypSettingsBrowser, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSettingsBrowser)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\1back.bmp\",\n\tkxpregSettingsBrowser, kypregSettingsBrowser)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\1backs.bmp\",\n\tkxpregSettingsBrowser, kypregSettingsBrowser)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"SettingsBrowser\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidBrowserReady, khidStudio, kidBrwsBackground, kidBrowserFrame, kidBrowserPageFwd,\n\t\t\t   (kdxpSceneFrameBorder << 16) | kdypSceneFrameBorder);\nENDCHUNK\n\n//\n// Actors browser.  Starts up the browser.\n//\nGOBCHUNK(\"ActorsBrowser\", kidActorsBrowser, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsBrowser, kypActorsBrowser, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID1(kchidClick), cidNil, kttActorsBrowser)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\2actr.bmp\",\n\tkxpregActorsBrowser, kypregActorsBrowser)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\2actrs.bmp\",\n\tkxpregActorsBrowser, kypregActorsBrowser)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"ActorsBrowser\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidBrowserReady, khidStudio, kidBrwsActor, kidBrowserFrame, kidBrowserPageFwd,\n\t\t\t   (kdxpActorFrameBorder << 16) | kdypActorFrameBorder);\nENDCHUNK\n\n//\n// Props browser.  Starts up the browser.\n//\nGOBCHUNK(\"ActorsPropBrowser\", kidActorsPropBrowser, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsPropBrowser, kypActorsPropBrowser, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID1(kchidClick), cidNil, kttActorsPropBrowser)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\2prop.bmp\",\n\tkxpregActorsPropBrowser, kypregActorsPropBrowser)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\2props.bmp\",\n\tkxpregActorsPropBrowser, kypregActorsPropBrowser)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"ActorsPropBrowser\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidBrowserReady, khidStudio, kidBrwsProp, kidBrowserFrame, kidBrowserPageFwd,\n\t\t\t   (kdxpPropFrameBorder << 16) | kdypPropFrameBorder);\nENDCHUNK\n\n//\n// Spletters button.  Starts up the easel.\n//\nGOBCHUNK(\"ActorsSpletters\", kidActorsSpletters, kgokkRectHit)\n\tDEFAULT_POSITION(kxpActorsSpletters, kypActorsSpletters, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttActorsSpletters)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\2splt.bmp\",\n\tkxpregActorsSpletters, kypregActorsSpletters)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\2splts.bmp\",\n\tkxpregActorsSpletters, kypregActorsSpletters)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"SplettersBrowser\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidNewSpletter, kidStudio, 0, 0, 0, 0);\nENDCHUNK\n\n//\n// Sound effects browser.  Starts up the browser.\n//\nGOBCHUNK(\"SoundsEfxBrowser\", kidSoundsEfxBrowser, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSoundsEfxBrowser, kypSoundsEfxBrowser, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID1(kchidClick), cidNil, kttSoundsEfxBrowser)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\3horn.bmp\",\n\tkxpregSoundsEfxBrowser, kypregSoundsEfxBrowser)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\3horns.bmp\",\n\tkxpregSoundsEfxBrowser, kypregSoundsEfxBrowser)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"SoundsMicBrowser\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidBrowserReady, khidStudio, kidBrwsFX, kidBrowserFrame, kidBrowserPageFwd,\n\t\t\t   (kdxpSoundFrameBorder << 16) | kdypSoundFrameBorder);\nENDCHUNK\n\n//\n// Sound recordings browser.  Starts up the browser.\n//\nGOBCHUNK(\"SoundsMicBrowser\", kidSoundsMicBrowser, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSoundsMicBrowser, kypSoundsMicBrowser, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSoundsMicBrowser)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\3mike.bmp\",\n\tkxpregSoundsMicBrowser, kypregSoundsMicBrowser)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\3mikes.bmp\",\n\tkxpregSoundsMicBrowser, kypregSoundsMicBrowser)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"SoundsMicBrowser\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidBrowserReady, khidStudio, kidBrwsSpeech, kidBrowserFrame, kidBrowserPageFwd,\n\t\t\t   (kdxpSoundFrameBorder << 16) | kdypSoundFrameBorder);\nENDCHUNK\n\n//\n// MIDI sounds browser.  Starts up the browser.\n//\nGOBCHUNK(\"SoundsMusicBrowser\", kidSoundsMusicBrowser, kgokkRectHit)\n\tDEFAULT_POSITION(kxpSoundsMusicBrowser, kypSoundsMusicBrowser, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttSoundsMusicBrowser)\nENDCHUNK\nREP_MBMPREG(CHID1(krepDefault), \"studio\\bmp\\3note.bmp\",\n\tkxpregSoundsMusicBrowser, kypregSoundsMusicBrowser)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\3notes.bmp\",\n\tkxpregSoundsMusicBrowser, kypregSoundsMusicBrowser)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"SoundsMusicBrowser\", CHID(kstDefault, kchidClick))\n\tEnqueueCid(cidBrowserReady, khidStudio, kidBrwsMidi, kidBrowserFrame, kidBrowserPageFwd,\n\t\t\t   (kdxpSoundFrameBorder << 16) | kdypSoundFrameBorder);\nENDCHUNK\n\n//\n// Textbox creation browser.  Starts up the browser.\n//\nGOBCHUNK(\"TextsCreate\", kidTextsCreate, kgokkRectHit)\n\tDEFAULT_POSITION(kxpTextsCreate, kypTextsCreate, 0)\n\tACTION(fcustNil, fcustNil, fgrfstAll, kcrsHand, CHID(kstDefault, kchidClick), cidNil, kttTextsCreate)\nENDCHUNK\nREP_MBMPREG(CHID(kstDefault, krepDefault), \"studio\\bmp\\4new.bmp\",\n\tkxpregTextsCreate, kypregTextsCreate)\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseUpOn))\nADOPT_MBMP(LAST_MBMP, CHID(kstDefault, krepMouseDnOff))\nREP_MBMPREG(CHID(kstDefault, krepMouseDnOn), \"studio\\bmp\\4news.bmp\",\n\tkxpregTextsCreate, kypregTextsCreate)\nADOPT_MBMP(LAST_MBMP, CHID(kstSelected, krepDefault))\nCHILD_SCRIPT(\"Create Textbox\", CHID(kstDefault, kchidClick))\n\tCreateChildGob(kidBackground, kidBrwsTextCreate, kidBrwsTextCreate);\nENDCHUNK\n\n\n//\n// Miscellaneous studio strings\n//\nCHUNK (kctgGst kcnoGstMisc \"Miscellaneous strings\")\n\tLONG\n\tGST(4)\n\tITEM \"%d / %d\" idsBrowserPage\n\tITEM \"Comic Sans MS\" idsSoundFont\n\tITEM \"Comic Sans MS\" idsActionFont\n\tITEM \"Comic Sans MS\" idsListenFont\n\tITEM \"Comic Sans MS\" idsRollCallFont\n\tITEM \"Comic Sans MS\" idsBrwsPageFont\n\tITEM \"Comic Sans MS\" idsStudioFont\n\tITEM \"14\" idsTboxDypFont\n\tITEM \"10\" idsMovieNameDypFont\nENDCHUNK\n\n\n\n\u001a"
  },
  {
    "path": "src/studio/studio.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//\n//\n//\n// Studio control code\n//\n// Created: Jan, 10, 1995\n//\n//\n//\n\n#include \"studio.h\"\n\nASSERTNAME\nRTCLASS(STDIO)\nRTCLASS(SMCC)\n\nBEGIN_CMD_MAP(STDIO, CMH)\nON_CID_GEN(cidNew, &STDIO::FCmdOpen, pvNil)\nON_CID_GEN(cidOpen, &STDIO::FCmdOpen, pvNil)\nON_CID_GEN(cidXYAxis, &STDIO::FCmdXYAxis, pvNil)\nON_CID_GEN(cidXZAxis, &STDIO::FCmdXZAxis, pvNil)\nON_CID_GEN(cidSetTool, &STDIO::FCmdSetTool, pvNil)\nON_CID_GEN(cidPlay, &STDIO::FCmdPlay, pvNil)\nON_CID_GEN(cidNewScene, &STDIO::FCmdNewScene, pvNil)\nON_CID_GEN(cidRespectGround, &STDIO::FCmdRespectGround, pvNil)\nON_CID_GEN(cidPauseUntilClick, &STDIO::FCmdPause, pvNil)\nON_CID_GEN(cidPauseForSound, &STDIO::FCmdPause, pvNil)\nON_CID_GEN(cidClearPause, &STDIO::FCmdPause, pvNil)\nON_CID_GEN(cidBrowserReady, &STDIO::FCmdBrowserReady, pvNil)\nON_CID_GEN(cidFrameScrollbar, &STDIO::FCmdScroll, pvNil)\nON_CID_GEN(cidFrameThumb, &STDIO::FCmdScroll, pvNil)\nON_CID_GEN(cidSceneScrollbar, &STDIO::FCmdScroll, pvNil)\nON_CID_GEN(cidSceneThumb, &STDIO::FCmdScroll, pvNil)\nON_CID_GEN(cidStartScroll, &STDIO::FCmdScroll, pvNil)\nON_CID_GEN(cidEndScroll, &STDIO::FCmdScroll, pvNil)\nON_CID_GEN(cidSooner, &STDIO::FCmdSooner, pvNil)\nON_CID_GEN(cidLater, &STDIO::FCmdLater, pvNil)\nON_CID_GEN(cidNewSpletter, &STDIO::FCmdNewSpletter, pvNil)\nON_CID_GEN(cidTextBkgdColor, &STDIO::FCmdCreatePopup, pvNil)\nON_CID_GEN(cidTextColor, &STDIO::FCmdCreatePopup, pvNil)\nON_CID_GEN(cidTextFont, &STDIO::FCmdCreatePopup, pvNil)\nON_CID_GEN(cidTextSize, &STDIO::FCmdCreatePopup, pvNil)\nON_CID_GEN(cidTextStyle, &STDIO::FCmdCreatePopup, pvNil)\nON_CID_GEN(cidTextSetColor, &STDIO::FCmdTextSetColor, pvNil)\nON_CID_GEN(cidTextSetBkgdColor, &STDIO::FCmdTextSetBkgdColor, pvNil)\nON_CID_GEN(cidTextSetFont, &STDIO::FCmdTextSetFont, pvNil)\nON_CID_GEN(cidTextSetSize, &STDIO::FCmdTextSetSize, pvNil)\nON_CID_GEN(cidTextSetStyle, &STDIO::FCmdTextSetStyle, pvNil)\nON_CID_GEN(cidOpenSoundRecord, &STDIO::FCmdOpenSoundRecord, pvNil)\nON_CID_GEN(cidToggleXY, &STDIO::FCmdToggleXY, pvNil)\nON_CID_GEN(cidHelpBook, &STDIO::FCmdHelpBook, pvNil)\nON_CID_GEN(cidMovieGoto, &STDIO::FCmdMovieGoto, pvNil)\nON_CID_GEN(cidLoadProjectMovie, &STDIO::FCmdLoadProjectMovie, pvNil)\nON_CID_GEN(cidSoundsEnabled, &STDIO::FCmdSoundsEnabled, pvNil)\nON_CID_GEN(cidCreateTbox, &STDIO::FCmdCreateTbox, pvNil)\nON_CID_GEN(cidActorEaselOpen, &STDIO::FCmdActorEaselOpen, pvNil)\nON_CID_GEN(cidListenerEaselOpen, &STDIO::FCmdListenerEaselOpen, pvNil)\n#ifdef DEBUG\nON_CID_GEN(cidWriteBmps, &STDIO::FCmdWriteBmps, pvNil)\n#endif // DEBUG\nEND_CMD_MAP_NIL()\n\nconst long kcbCursorCache = 1024;\n\n/***************************************************************************\n *\n * Create the studio and get it running.\n *\n * Parameters:\n *  hid - The hid to use for the studio\n *  pcrmStudio - CRM to read script chunks from\n *  pfniUserDoc - movie file to open, or pvNil\n *  fFailIfDocOpenFailed - if fTrue, this function fails if pfniUserDoc\n *     cannot be opened.  If fFalse, this function creates a blank document\n *     and does not fail if pfniUserDoc cannot be opened.\n *\n * Returns:\n *  Pointer to the studio if successful, else pvNil.\n *\n **************************************************************************/\nPSTDIO STDIO::PstdioNew(long hid, PCRM pcrmStudio, PFNI pfniUserDoc, bool fFailIfDocOpenFailed)\n{\n    AssertPo(pcrmStudio, 0);\n    AssertNilOrPo(pfniUserDoc, ffniFile);\n    AssertPo(((APP *)vpappb)->Pkwa(), 0);\n\n    bool fSuccess = fFalse;\n    PSTDIO pstdio;\n    PMVIE pmvie = pvNil;\n    GCB gcb;\n    BLCK blck;\n\n    gcb.Set(hid, ((APP *)vpappb)->Pkwa());\n    pstdio = NewObj STDIO(&gcb);\n\n    if (pstdio == pvNil)\n    {\n        return (pvNil);\n    }\n\n    pstdio->_pcrm = pcrmStudio;\n    pstdio->_pcrm->AddRef();\n\n    pstdio->_psmcc = NewObj SMCC(kdxpWorkspace, kdypWorkspace, kcbStudioCache, pvNil, pstdio);\n\n    if (pstdio->_psmcc == pvNil)\n    {\n        goto LFail;\n    }\n\n    pmvie = vapp.PmvieRetrieve();\n\n    // _FOpenStudio() depends on _psmcc being initialized\n    if (!pstdio->_FOpenStudio((pfniUserDoc == pvNil) && (pmvie == pvNil)))\n    {\n        goto LFail;\n    }\n\n    if (pmvie != pvNil)\n    {\n        pmvie->SetMcc(pstdio->_psmcc);\n        if (!pstdio->FSetMovie(pmvie))\n            goto LFail;\n        pmvie->ResetTitle();\n    }\n    else if (!pstdio->FLoadMovie(pfniUserDoc))\n    {\n        if (fFailIfDocOpenFailed)\n            goto LFail;\n        else if (!pstdio->FLoadMovie()) // try blank doc\n            goto LFail;\n    }\n\n    AssertPo(pstdio, 0);\n\n    fSuccess = fTrue;\n\nLFail:\n    ReleasePpo(&pmvie);\n    if (!fSuccess)\n        ReleasePpo(&pstdio);\n    return (pstdio);\n}\n\n/***************************************************************************\n *\n * Destroy the studio.\n *\n * Parameters:\n *  None.\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nSTDIO::~STDIO(void)\n{\n    ReleasePpo(&_pmvie);\n    ReleasePpo(&_psmcc);\n    ReleasePpo(&_pcrm);\n    ReleasePpo(&_pgstMisc);\n    ReleasePpo(&_pbrwrActr);\n    ReleasePpo(&_pbrwrProp);\n    ReleasePpo(&_pglcmg);\n    ReleasePpo(&_pglclr);\n    ReleaseBrcn();\n\n    PGOB pgobStudio = ((APP *)vpappb)->Pkwa()->PgobFromHid(kidBackground);\n    ReleasePpo(&pgobStudio);\n}\n\n/***************************************************************************\n *\n * Open studio.chk and start the studio script\n *\n * Parameters:\n *  fPaletteFade - fTrue if we should do a palette fade.\n *\n * Returns:\n *  fTrue if successful, else fFalse.\n *\n **************************************************************************/\nbool STDIO::_FOpenStudio(bool fPaletteFade)\n{\n    AssertBaseThis(0);\n\n    PSCPT pscpt = pvNil;\n    PSSCB psscb = pvNil;\n    PSCEG psceg = pvNil;\n    STN stn;\n    RC rcAbs, rcRel;\n    BLCK blck;\n    bool fRet = fFalse;\n    long icrf;\n    PCRF pcrf;\n    long lwParm;\n\n    vapp.BeginLongOp();\n\n    // read miscellaneous message strings\n    for (icrf = 0; icrf < _pcrm->Ccrf(); icrf++)\n    {\n        pcrf = _pcrm->PcrfGet(icrf);\n        if (pcrf->Pcfl()->FFind(kctgGst, kcnoGstMisc, &blck))\n        {\n            _pgstMisc = GST::PgstRead(&blck);\n            break;\n        }\n    }\n    if (pvNil == _pgstMisc) // if not found or read error\n        goto LFail;\n\n    if (pvNil == (psceg = ((APP *)vpappb)->Pkwa()->PscegNew(_pcrm, ((APP *)vpappb)->Pkwa())))\n    {\n        goto LFail;\n    }\n\n    //\n    // Read in common palette\n    //\n    for (icrf = 0; icrf < _pcrm->Ccrf(); icrf++)\n    {\n        pcrf = _pcrm->PcrfGet(icrf);\n        if (pcrf->Pcfl()->FFind(kctgColorTable, kidPalette, &blck))\n        {\n            _pglclr = GL::PglRead(&blck);\n            if (_pglclr != pvNil)\n            {\n                break;\n            }\n        }\n    }\n\n    // kidStudio should be kcnoStudio according to Hungarian, but the \"kid\"\n    // prefix is entrenched into the script/help stuff and can't be easily\n    // all changed to kcno.\n    if (pvNil == (pscpt = (PSCPT)_pcrm->PbacoFetch(kctgScript, kidStudio, SCPT::FReadScript)))\n    {\n        goto LFail;\n    }\n\n    lwParm = !fPaletteFade;\n\n    if (!psceg->FRunScript(pscpt, &lwParm, 1))\n    {\n        vpappb->TGiveAlertSz(\"Running script failed\", bkOk, cokExclamation);\n        goto LFail;\n    }\n\n    // Create the scroll bars\n    if (pvNil == (psscb = SSCB::PsscbNew(_pmvie)))\n    {\n        goto LFail;\n    }\n    AssertVarMem(_psmcc);\n    _psmcc->SetSscb(psscb);\n\n    if (!vpcex->FAddCmh(this, kcmhlStudio))\n        goto LFail;\n\n    fRet = fTrue;\n\nLFail:\n\n    Assert(fRet, \"Warning: Failed to open studio file...\"\n                 \"do you have studio.chk in the working directory?\");\n\n    ReleasePpo(&psscb);\n    ReleasePpo(&pscpt);\n    ReleasePpo(&psceg);\n    ReleasePpo(&_pbrwrActr);\n    ReleasePpo(&_pbrwrProp);\n    ReleasePpo(&_pglcmg);\n\n    vapp.EndLongOp();\n\n    return fRet;\n}\n\n/***************************************************************************\n    Set the portfolio doc from one of Melanie's project documents\n***************************************************************************/\nbool STDIO::FCmdLoadProjectMovie(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    long stid = pcmd->rglw[0];\n    STN stn;\n    STN stnLeaf;\n    FNI fni;\n    bool fLoaded = fFalse;\n\n    if (!vpapp->Pkwa()->Pstrg()->FGet(stid, &stnLeaf))\n    {\n        Bug(\"Missing string in FCmdLoadProjectMovie\");\n        goto LEnd;\n    }\n    vpapp->GetFniMelanie(&fni); // Get Melanie's directory\n    if (!fni.FSetLeaf(&stnLeaf))\n        goto LEnd;\n    if (tYes != fni.TExists())\n    {\n        PushErc(ercSocMissingMelanieDoc);\n        goto LEnd;\n    }\n    if (!FLoadMovie(&fni))\n    {\n        PushErc(ercSocCantLoadMelanieDoc);\n        goto LEnd;\n    }\n    Assert(_pmvie != pvNil, \"FLoadMovie lied to us\");\n\n    /* Make sure the autosave file's been switched to a temp file */\n    if (!_pmvie->FEnsureAutosave())\n        goto LEnd;\n\n    /* Tell the movie to forget about the original file */\n    _pmvie->ForceSaveAs();\n\n    fLoaded = fTrue;\nLEnd:\n    vpcex->EnqueueCid(cidProjectMovieLoaded, pvNil, pvNil, fLoaded);\n    return fTrue;\n}\n\n/***************************************************************************\n *\n * Change the current movie -- close any currently open movie.\n *\n * Parameters:\n *  pfni - File to read from.\n *  cno - Cno within the file.\n *\n * Returns:\n *  fTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool STDIO::FLoadMovie(PFNI pfni, CNO cno)\n#ifdef BUG1959\n{\n    bool fRet, fClosedOld;\n\n    /* If loading a specific movie, attempt to load a blank movie first */\n    if (pfni != pvNil)\n    {\n        if (!(fRet = _FLoadMovie(pvNil, cnoNil, &fClosedOld)) || !fClosedOld)\n            goto LDone;\n    }\n\n    /* Now do what the user asked us to do */\n    fRet = _FLoadMovie(pfni, cno, &fClosedOld);\n\nLDone:\n    return fRet;\n}\n\nbool STDIO::_FLoadMovie(PFNI pfni, CNO cno, bool *pfClosedOld)\n#endif // BUG1959\n{\n    AssertBaseThis(0);\n    AssertNilOrPo(pfni, 0);\n\n    bool fRet = fFalse;\n    PMVU pmvu;\n    PMVIE pmvie = pvNil, pmvieOld = pvNil;\n    PBKGD pbkgd = pvNil;\n\n#ifdef BUG1959\n    *pfClosedOld = fTrue;\n#endif // BUG1959\n\n    if (_pmvie != pvNil)\n    {\n        PSCEN pscen;\n\n        pmvu = (PMVU)_pmvie->PddgActive();\n        AssertPo(pmvu, 0);\n\n        if (!pmvu->FCloseDoc(fFalse, fTrue))\n        {\n            fRet = fTrue;\n#ifdef BUG1959\n            *pfClosedOld = fFalse;\n#endif // BUG1959\n            goto LFail;\n        }\n        _pmvie->Flush();\n        pmvieOld = _pmvie;\n        pmvieOld->AddRef();\n        if ((pscen = pmvieOld->Pscen()) != pvNil)\n        {\n            if ((pbkgd = pscen->Pbkgd()) != pvNil)\n                pbkgd->SetFLeaveLitesOn(fTrue);\n        }\n    }\n\n    pmvie = MVIE::PmvieNew(vpapp->FSlowCPU(), _psmcc, pfni, cno);\n    if (pmvie == pvNil)\n    {\n        ReleasePpo(&pmvieOld);\n        goto LFail;\n    }\n\n    fRet = FSetMovie(pmvie);\n\n    if (fRet)\n    {\n        PGOK pgok;\n\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidBackground);\n\n        if ((pgok != pvNil) && pgok->FIs(kclsGOK) && (_pmvie->Pscen() != pvNil))\n        {\n            AssertPo(pgok, 0);\n            pgok->FRunScript((kstDefault << 16) | kchidOpenDoorsAll);\n            pgok->FRunScript((kstDefault << 16) | kchidPopoutSceneTools);\n        }\n    }\n\nLFail:\n    ReleasePpo(&pmvie);\n\n    if (pbkgd != pvNil)\n        pbkgd->SetFLeaveLitesOn(fFalse);\n\n    /* Restore old movie if loading new one failed */\n    if (_pmvie == pvNil)\n    {\n        Assert(!fRet, \"Bogus state for studio\");\n        _pmvie = pmvieOld;\n        Psmcc()->UpdateRollCall();\n    }\n    else if (pmvieOld != pvNil && fRet)\n    {\n        bool fResetLites = (_pmvie->Pscen() != pvNil && _pmvie->Pscen()->Pbkgd() == pbkgd);\n\n        Assert(!fResetLites || pbkgd->CactRef() > 1, \"Not enough refs for BKGD\");\n        pmvieOld->CloseAllDdg();\n        ReleasePpo(&pmvieOld);\n\n        /* Turn lights back on, in new BWLD (they got turned off when releasing\n            the old movie) */\n        if (fResetLites)\n            pbkgd->TurnOnLights(_pmvie->Pbwld());\n    }\n\n#ifdef BUG1959\n    if (pfni == pvNil && fRet && *pfClosedOld)\n        vptagm->ClearCache(sidNil, ftagmFile);\n#endif // BUG1959\n\n    return fRet;\n}\n\n/***************************************************************************\n *\n * Set the current movie -- close any currently open movie.\n *\n * Parameters:\n *  pmvie - The new movie.\n *\n * Returns:\n *  fTrue if it was succesful, else fFalse.\n *\n **************************************************************************/\nbool STDIO::FSetMovie(PMVIE pmvie)\n{\n    AssertPo(pmvie, 0);\n\n    bool fRet = fFalse;\n    PMVU pmvu = pvNil;\n    RC rcRel, rcAbs;\n    PGOK pgok;\n    GCB gcb;\n\n    vapp.BeginLongOp();\n\n    ReleasePpo(&_pmvie);\n    _psmcc->Psscb()->SetMvie(pvNil);\n    _pmvie = pmvie;\n    _pmvie->AddRef();\n\n    //\n    // Position the view\n    //\n    rcRel.Set(krelZero, krelZero, krelOne, krelOne);\n    rcAbs.Set(0, 0, 0, 0);\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidWorkspace);\n    AssertPo(pgok, 0);\n\n    if (pvNil == _psmcc->Psscb())\n        goto LFail;\n\n    //\n    // Create the view\n    //\n    gcb.Set(khidDdg, pgok, fgobNil, kginDefault, &rcAbs, &rcRel);\n    pmvu = (PMVU)_pmvie->PddgNew(&gcb);\n    if (pmvu == pvNil)\n        goto LFail;\n    AssertPo(pmvu, 0);\n\n    // Set the movie title\n    UpdateTitle(_pmvie->PstnTitle());\n\n    _pmvie->SetThumbPalette(_pglclr);\n\n    if (_pmvie->Cscen() > 0)\n    {\n        if (!_pmvie->FSwitchScen(0))\n        {\n            goto LFail;\n        }\n\n        EnableActorTools();\n        EnableTboxTools();\n    }\n\n    _psmcc->Psscb()->SetMvie(_pmvie);\n    pmvu->SetTool(toolDefault);\n    _psmcc->UpdateRollCall();\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidSettingsCover);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        pgok->FChangeState(kstOpen);\n    }\n\n    _SetToolStates();\n\n    fRet = fTrue;\nLFail:\n    if (!fRet)\n    {\n        ReleasePpo(&_ptgobTitle);\n        ReleasePpo(&pmvu);\n        ReleasePpo(&_pmvie);\n    }\n    vapp.EndLongOp();\n    return fRet;\n}\n\n/***************************************************************************\n *\n * Handle XYAxis command\n *\n * Parameters:\n *  pcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool STDIO::FCmdXYAxis(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PMVU pmvu;\n    BRS rgr[3][3] = {{rOne, rZero, rZero}, {rZero, rOne, rZero}, {rZero, rZero, -rOne}};\n\n    if (pvNil != _pmvie)\n    {\n        AssertPo(_pmvie, 0);\n        pmvu = (PMVU)_pmvie->PddgActive();\n        pmvu->SetAxis(rgr);\n\n        if ((pmvu->Tool() != toolCompose) && (pmvu->Tool() != toolRecordSameAction) && (pmvu->Tool() != toolAction) &&\n            (pmvu->Tool() != toolPlace) && !pmvu->FTextMode())\n        {\n            pmvu->SetTool(toolCompose);\n            ChangeTool(toolCompose);\n        }\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n *\n * Handle XZAxis command\n *\n * Parameters:\n *  pcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool STDIO::FCmdXZAxis(PCMD pcmd)\n{\n    AssertThis(0);\n    PMVU pmvu;\n    BRS rgr[3][3] = {{rOne, rZero, rZero}, {rZero, rZero, rOne}, {rZero, -rOne, rZero}};\n\n    if (pvNil != _pmvie)\n    {\n        AssertPo(_pmvie, 0);\n        pmvu = (PMVU)_pmvie->PddgActive();\n        pmvu->SetAxis(rgr);\n\n        if ((pmvu->Tool() != toolCompose) && (pmvu->Tool() != toolRecordSameAction) && (pmvu->Tool() != toolAction) &&\n            (pmvu->Tool() != toolPlace) && !pmvu->FTextMode())\n        {\n            pmvu->SetTool(toolCompose);\n            ChangeTool(toolCompose);\n        }\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n *\n * Handle changing the current tool.\n *\n * Parameters:\n *  pcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool STDIO::FCmdSetTool(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PMVU pmvu;\n\n    if (pvNil != _pmvie)\n    {\n        AssertPo(_pmvie, 0);\n        pmvu = (PMVU)_pmvie->PddgActive();\n\n        switch (pcmd->rglw[0])\n        {\n        case chttCompose:\n            if (pmvu->Tool() != toolPlace)\n            {\n                pmvu->SetTool(toolCompose);\n            }\n            break;\n\n        case chttNormalizeRot:\n            pmvu->SetTool(toolNormalizeRot);\n            break;\n\n        case chttNormalizeSize:\n            pmvu->SetTool(toolNormalizeSize);\n            break;\n\n        case chttSooner:\n            pmvu->SetTool(toolSoonerLater);\n            break;\n\n        case chttRotateX:\n            pmvu->SetTool(toolRotateX);\n            break;\n\n        case chttRotateY:\n            pmvu->SetTool(toolRotateY);\n            break;\n\n        case chttRotateZ:\n            pmvu->SetTool(toolRotateZ);\n            break;\n\n        case chttRotateNorm:\n            pmvu->SetTool(toolNormalizeRot);\n            break;\n\n        case chttSquash:\n            pmvu->SetTool(toolSquashStretch);\n            break;\n\n        case chttShrink:\n            pmvu->SetTool(toolResize);\n            break;\n\n        case chttTransformNorm:\n            pmvu->SetTool(toolNormalizeSize);\n            break;\n\n        case chttRecordSameAction:\n            pmvu->SetTool(toolRecordSameAction);\n            break;\n\n        case chttAction:\n            _cmd = *pcmd;\n            pmvu->SetTool(toolAction);\n            break;\n\n        case chttTboxSelect:\n            pmvu->SetTool(toolTboxMove);\n            break;\n\n        case chttTboxStory:\n            pmvu->SetTool(toolTboxStory);\n            break;\n\n        case chttTboxScroll:\n            pmvu->SetTool(toolTboxCredit);\n            break;\n\n        case chttSceneChopFwd:\n            pmvu->SetTool(toolSceneChop);\n            break;\n\n        case chttSceneChopBack:\n            pmvu->SetTool(toolSceneChopBack);\n            break;\n\n        case chttSceneNuke:\n            pmvu->SetTool(toolSceneNuke);\n            break;\n\n        case chttActorNuke:\n            pmvu->SetTool(toolActorNuke);\n            break;\n\n        case chttActorEasel:\n            pmvu->SetTool(toolActorEasel);\n            break;\n\n        case chttMatcher:\n            pmvu->SetTool(toolMatcher);\n            break;\n\n        case chttSounder:\n            pmvu->SetTool(toolSounder);\n            break;\n\n        case chttLooper:\n            pmvu->SetTool(toolLooper);\n            break;\n\n        case chttListener:\n            pmvu->SetTool(toolListener);\n            break;\n\n        case chttNone:\n            pmvu->SetTool(toolDefault);\n            break;\n\n        default:\n            Bug(\"You forgot to put this tool in SetTool.\");\n            break;\n        }\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n *\n * Handle Play command\n *\n * Parameters:\n *  pcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool STDIO::FCmdPlay(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PGOK pgok;\n\n    if (pvNil != _pmvie)\n    {\n        AssertPo(_pmvie, 0);\n\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsActionBrowser);\n\n        if (_pmvie->FPlaying())\n        {\n\n            vpappb->FSetProp(kpridToolTipDelay, _dtimToolTipDelay);\n            if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n            {\n                AssertPo(pgok, 0);\n                pgok->FChangeState(kstDefault);\n            }\n\n            pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidWorkspace);\n            if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n            {\n                AssertPo(pgok, 0);\n                pgok->SetZPlane(0);\n            }\n        }\n        else\n        {\n\n            if (!vpappb->FGetProp(kpridToolTipDelay, &_dtimToolTipDelay))\n            {\n                _dtimToolTipDelay = 3 * kdtimSecond;\n            }\n\n            vpappb->FSetProp(kpridToolTipDelay, 0x0FFFFFFF);\n            if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n            {\n                AssertPo(pgok, 0);\n                pgok->FChangeState(kstFreeze);\n            }\n        }\n\n        if (_pmvie->Pscen() != pvNil)\n        {\n            _pmvie->Play();\n        }\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n *\n * Handle New Scene command\n *\n * Parameters:\n *  pcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool STDIO::FCmdNewScene(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    TAG tag;\n    bool fEnable;\n\n    vapp.BeginLongOp();\n\n    tag = *((PTAG)(pcmd->rglw));\n\n    if (pvNil != _pmvie)\n    {\n        AssertPo(_pmvie, 0);\n\n        fEnable = (_pmvie->Pscen() == pvNil);\n\n        if (_pmvie->FAddScen(&tag) && fEnable)\n        {\n            _SetToolStates();\n        }\n    }\n\n    vapp.EndLongOp();\n\n    return fTrue;\n}\n\n/***************************************************************************\n *\n * Handle changing the respecting of ground.\n *\n * Parameters:\n *  pcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool STDIO::FCmdRespectGround(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PMVU pmvu = (PMVU)_pmvie->PddgGet(0);\n    AssertPo(pmvu, 0);\n    pmvu->SetFRespectGround(pcmd->rglw[0]);\n\n    if ((pmvu->Tool() != toolCompose) && (pmvu->Tool() != toolRecordSameAction) && (pmvu->Tool() != toolAction) &&\n        (pmvu->Tool() != toolPlace) && !pmvu->FTextMode())\n    {\n        pmvu->SetTool(toolCompose);\n        ChangeTool(toolCompose);\n    }\n\n    return (fTrue);\n}\n\n/***************************************************************************\n *\n * Handle setting the pause.\n *\n * Parameters:\n *  pcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool STDIO::FCmdPause(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (_pmvie->Pscen() == pvNil)\n    {\n        return (fTrue);\n    }\n\n    switch (pcmd->cid)\n    {\n    case cidPauseUntilClick:\n        _pmvie->FPause(witUntilClick, 0);\n        break;\n\n    case cidPauseForSound:\n        _pmvie->FPause(witUntilSnd, 0);\n        break;\n\n    case cidClearPause:\n        _pmvie->FPause(witNil, 0);\n        break;\n\n    default:\n        Bug(\"Unknown cid\");\n    }\n    return (fTrue);\n}\n\n/***************************************************************************\n    Open an existing or new chunky file for editing.\n    Handles cidNew and cidOpen.\n***************************************************************************/\nbool STDIO::FCmdOpen(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    switch (pcmd->cid)\n    {\n    default:\n        Bug(\"why are we here?\");\n        return fFalse;\n\n    case cidNew:\n        if (_fDisplayCast && vpappb->GrfcustCur() & fcustShift)\n        {\n            FNI fni;\n            STN stn;\n\n            _fDisplayCast = fFalse;\n\n            stn = PszLit(\"3dmovie.ms\");\n            if (vptagm->FFindFile(vapp.SidProduct(), &stn, &fni, fFalse))\n            {\n                if (FLoadMovie(&fni))\n                    vpcex->EnqueueCid(cidPlay, this);\n            }\n        }\n        else\n            FLoadMovie();\n        break;\n\n    case cidOpen: {\n        FNI fni;\n\n        _fDisplayCast = fFalse;\n        if (FGetFniMovieOpen(&fni))\n        {\n            // User selected a file, so open it.\n\n            FLoadMovie(&fni, cnoNil);\n        }\n\n        break;\n    }\n    }\n\n    return (fTrue);\n}\n\n/******************************************************************************\n    FCmdScroll\n        Handles scrollbar commands.\n\n    Author: ******\n\n    Returns: nothing\n\n******************************************************************************/\nbool STDIO::FCmdScroll(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    AssertVarMem(_psmcc);\n    if (pvNil == _psmcc->Psscb())\n    {\n        // absorb the cmd since there is no scrollbar\n        return fTrue;\n    }\n\n    return _psmcc->Psscb()->FCmdScroll(pcmd);\n}\n\n/******************************************************************************\n    FCmdSooner\n        Handles the soonering an actor\n\n    returns fTrue.\n\n******************************************************************************/\nbool STDIO::FCmdSooner(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (!Pmvie()->FSoonerLaterActr(Pmvie()->Pscen()->Nfrm() - 1))\n    {\n        PMVU pmvu;\n        PGOK pgok;\n\n        pmvu = (PMVU)Pmvie()->PddgActive();\n        pmvu->SetTool(toolCompose);\n\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsSoonerButton);\n\n        if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n        {\n            AssertPo(pgok, 0);\n            pgok->FChangeState(kstClosed);\n        }\n    }\n\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdSooner\n        Handles the soonering an actor\n\n    returns fTrue.\n\n******************************************************************************/\nbool STDIO::FCmdLater(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if (!Pmvie()->FSoonerLaterActr(Pmvie()->Pscen()->Nfrm() + 1))\n    {\n        PMVU pmvu;\n        PGOK pgok;\n\n        pmvu = (PMVU)Pmvie()->PddgActive();\n        pmvu->SetTool(toolCompose);\n\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsSoonerButton);\n\n        if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n        {\n            AssertPo(pgok, 0);\n            pgok->FChangeState(kstClosed);\n        }\n    }\n\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdNewSpletter\n        Handles creating new spletters.\n\n    returns fTrue.\n\n******************************************************************************/\nbool STDIO::FCmdNewSpletter(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    STN stn;\n    TAG tagTdf;\n    CKI cki;\n    PBCL pbcl;\n    THD thd;\n\n    vapp.BeginLongOp();\n    vapp.GetStnProduct(&stn); // Default string for TDT easel is product name\n\n    // Find the first font available for this source, cache it, and use it\n    // as the default font for the TDT easel.\n    cki.ctg = kctgTfth;\n    cki.cno = cnoNil;\n    pbcl = BCL::PbclNew(pvNil, &cki, ctgNil, pvNil, fTrue);\n    if (pvNil == pbcl)\n        return fTrue;\n    if (pbcl->IthdMac() == 0)\n    {\n        ReleasePpo(&pbcl);\n        return fTrue;\n    }\n    pbcl->GetThd(0, &thd);\n    tagTdf = thd.tag;\n    ReleasePpo(&pbcl);\n    if (!vptagm->FCacheTagToHD(&tagTdf))\n        return fTrue;\n\n    // Note: easels are self-managing, so we don't need to keep the PESLT\n    ESLT::PesltNew(_pcrm, _pmvie, pvNil, &stn, tdtsNormal, &tagTdf);\n\n    vapp.EndLongOp();\n\n    return fTrue;\n}\n\n/******************************************************************************\n    Start the sound recording easel\n******************************************************************************/\nbool STDIO::FCmdOpenSoundRecord(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    bool fSpeech = FPure(pcmd->rglw[0]); // Speech or SFX browser?\n\n    // If default sound name is required then set it in stn here.\n    // Currently no default sound name required, so initialize it empty.\n    STN stn;\n\n    vapp.BeginLongOp();\n\n    // Note: easels are self-managing, so we don't need to keep the PESLR\n    ESLR::PeslrNew(_pcrm, _pmvie, fSpeech, &stn);\n\n    vapp.EndLongOp();\n\n    return fTrue;\n}\n\n/******************************************************************************\n    SceneChange\n        Callback to handle a change of scene.\n\n    Returns: nothing\n\n************************************************************ PETED ***********/\nvoid STDIO::SceneChange(void)\n{\n}\n\n/***************************************************************************\n *\n * Create a popup menu\n *\n * Parameters:\n *  pcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool STDIO::FCmdCreatePopup(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    CKI ckiRoot;\n    long cid, kid, thumSel = ivNil;\n    ulong grfchp;\n    BWS bws = kbwsCnoRoot;\n    CHP chp;\n    PTBOX ptbox;\n\n    ckiRoot.cno = cnoNil;\n\n    Assert(_pmvie != pvNil, \"No current MVIE\");\n    Assert(_pmvie->Pscen() != pvNil, \"No current SCEN\");\n    if ((ptbox = _pmvie->Pscen()->PtboxSelected()) != pvNil)\n        ptbox->FetchChpSel(&chp, &grfchp);\n    else\n    {\n        grfchp = grfchpNil;\n    }\n\n    switch (pcmd->cid)\n    {\n    case cidTextColor:\n        ckiRoot.ctg = kctgTcth;\n        cid = cidTextSetColor;\n        kid = kidTextColor;\n        goto LCreate;\n\n    case cidTextBkgdColor:\n        ckiRoot.ctg = kctgTbth;\n        cid = cidTextSetBkgdColor;\n        kid = kidTextBkgdColor;\n        goto LCreate;\n\n    case cidTextSize:\n        ckiRoot.ctg = kctgTzth;\n        cid = cidTextSetSize;\n        kid = kidTextSize;\n        if (grfchp & kfchpDypFont)\n            thumSel = chp.dypFont;\n        goto LCreate;\n\n    case cidTextStyle:\n        ckiRoot.ctg = kctgTyth;\n        cid = cidTextSetStyle;\n        kid = kidTextStyle;\n        if (grfchp & kfchpBold && grfchp & kfchpItalic)\n            thumSel = chp.grfont;\n        bws = kbwsIndex;\n\n    LCreate:\n        MP::PmpNew(kidBackground, kid, _pcrm, pcmd, bws, thumSel, ksidInvalid, ckiRoot, ctgNil, this, cid, fFalse);\n        break;\n    case cidTextFont: {\n        PGST pgst;\n        long onnCur, onnSystem = vntl.OnnSystem();\n\n        if ((pgst = GST::PgstNew(size(onnCur))) == pvNil)\n            break;\n\n        for (onnCur = 0; onnCur < vntl.OnnMac(); onnCur++)\n        {\n            STN stn;\n\n            if (onnCur != onnSystem)\n            {\n                vntl.GetStn(onnCur, &stn);\n                if (!pgst->FAddStn(&stn, &onnCur))\n                {\n                    ReleasePpo(&pgst);\n                    break;\n                }\n            }\n        }\n        if (pgst != pvNil)\n        {\n            MPFNT::PmpfntNew(_pcrm, kidBackground, kidTextFont, pcmd, (grfchp & kfchpOnn) ? chp.onn : ivNil, pgst);\n            ReleasePpo(&pgst);\n        }\n        break;\n    }\n    default:\n        BugVar(\"unexpected cid\", &pcmd->cid);\n        break;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n *\n * Sets the text box background color\n *\n * Parameters:\n *  pcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool STDIO::FCmdTextSetBkgdColor(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    AssertIn(pcmd->rglw[0], 0, kbMax);\n\n    byte iscr = (byte)pcmd->rglw[0];\n    ACR acr(iscr);\n    PMVU pmvu = (PMVU)_pmvie->PddgActive();\n\n    if (iscr == 0)\n        acr.SetToClear();\n    _pmvie->SetPaintAcr(acr);\n    pmvu->SetTool(toolTboxFillBkgd);\n    SetCurs(toolTboxFillBkgd);\n\n    return fTrue;\n}\n\n/***************************************************************************\n *\n * Sets the text box text color\n *\n * Parameters:\n *  pcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool STDIO::FCmdTextSetColor(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    AssertIn(pcmd->rglw[0], 0, kbMax);\n\n    byte iscr = (byte)pcmd->rglw[0];\n    ACR acr(iscr);\n    PMVU pmvu = (PMVU)_pmvie->PddgActive();\n\n    if (iscr == 0)\n        acr.SetToClear();\n    _pmvie->SetPaintAcr(acr);\n    pmvu->SetTool(toolTboxPaintText);\n    SetCurs(toolTboxPaintText);\n\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdTextSetSize\n        Command handler to set the font size for the active textbox\n\n    Arguments:\n        PCMD pcmd  --  rglw[0] holds the new size\n\n    Returns:  fTrue; always handles the command\n\n************************************************************ PETED ***********/\nbool STDIO::FCmdTextSetSize(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PMVU pmvu = _pmvie->PmvuCur();\n\n    _pmvie->SetDypFontTextCur(pcmd->rglw[0]);\n    pmvu->SetTool(toolTboxSize);\n    SetCurs(toolTboxSize);\n\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdTextSetStyle\n        Command handler to set the font Style for the active textbox\n\n    Arguments:\n        PCMD pcmd  --\n            rglw[0] holds the mask for the new style bits\n            rglw[1] holds the new style bits\n\n    Returns:  fTrue; always handles the command\n\n************************************************************ PETED ***********/\nbool STDIO::FCmdTextSetStyle(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    ulong grfont;\n    PMVU pmvu = _pmvie->PmvuCur();\n\n    grfont = pmvu->GrfontStyleTextCur();\n    grfont &= ~((ulong)pcmd->rglw[0]);\n    grfont |= (ulong)pcmd->rglw[1];\n\n    _pmvie->SetStyleTextCur(grfont);\n    pmvu->SetTool(toolTboxStyle);\n    SetCurs(toolTboxStyle);\n\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdTextSetFont\n        Command handler to set the font face for the active textbox\n\n    Arguments:\n        PCMD pcmd  --  rglw[0] holds the new face\n\n    Returns:  fTrue; always handles the command\n\n************************************************************ PETED ***********/\nbool STDIO::FCmdTextSetFont(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PMVU pmvu = _pmvie->PmvuCur();\n\n    _pmvie->SetOnnTextCur(pcmd->rglw[0]);\n    pmvu->SetTool(toolTboxFont);\n    SetCurs(toolTboxFont);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Load a cursor only.  Do not set the tool permanently.  Used for\n    roll over cursors.\n***************************************************************************/\nvoid STDIO::SetCurs(long tool)\n{\n    PCURS pcurs;\n    long cursID;\n\n    switch (tool)\n    {\n    case toolListener:\n        cursID = kcrsListener;\n        break;\n    case toolSounder:\n        cursID = kcrsSounder;\n        break;\n    case toolLooper:\n        cursID = kcrsLooper;\n        break;\n    case toolMatcher:\n        cursID = kcrsMatcher;\n        break;\n    case toolActorSelect:\n        cursID = kcrsHand;\n        break;\n    case toolCompose:\n        cursID = kcrsCompose;\n        break;\n    case toolComposeAll:\n        cursID = kcrsComposeAll;\n        break;\n    case toolSquashStretch:\n        cursID = kcrsSquashStretch;\n        break;\n    case toolSoonerLater:\n        cursID = kcrsSoonerLater;\n        break;\n    case toolResize:\n        cursID = kcrsResize;\n        break;\n    case toolRotateX:\n        cursID = kcrsRotateX;\n        break;\n    case toolRotateY:\n        cursID = kcrsRotateY;\n        break;\n    case toolRotateZ:\n        cursID = kcrsRotateZ;\n        break;\n    case toolCostumeCmid:\n    case toolActorEasel:\n        cursID = kcrsCostume;\n        break;\n    case toolAction:\n        cursID = kcrsActionBrowser;\n        break;\n    case toolRecordSameAction:\n        cursID = kcrsRecord;\n        break;\n    case toolTweak:\n        cursID = kcrsTweak;\n        break;\n    case toolNormalizeRot:\n        cursID = kcrsNormalizeRot;\n        break;\n    case toolNormalizeSize:\n        cursID = kcrsNormalizeSize;\n        break;\n    case toolDefault:\n        cursID = kcrsDefault;\n        break;\n    case toolTboxMove:\n        cursID = kcrsTboxMove;\n        break;\n    case toolTboxUpDown:\n        cursID = kcrsTboxUpDown;\n        break;\n    case toolTboxLeftRight:\n        cursID = kcrsTboxLeftRight;\n        break;\n    case toolTboxFalling:\n        cursID = kcrsTboxFalling;\n        break;\n    case toolTboxRising:\n        cursID = kcrsTboxRising;\n        break;\n    case toolSceneNuke:\n    case toolActorNuke:\n        cursID = kcrsNuke;\n        break;\n    case toolIBeam:\n        cursID = kcrsIBeam;\n        break;\n    case toolCutObject:\n        cursID = kcrsCutObject;\n        break;\n    case toolCopyObject:\n        cursID = kcrsCopyObject;\n        break;\n    case toolCopyRte:\n        cursID = kcrsCopyRte;\n        break;\n    case toolSceneChop:\n        cursID = kcrsSceneChop;\n        break;\n    case toolSceneChopBack:\n        cursID = kcrsSceneChopBack;\n        break;\n    case toolCutText:\n        cursID = kcrsCutText;\n        break;\n    case toolCopyText:\n        cursID = kcrsCopyText;\n        break;\n    case toolPasteText:\n        cursID = kcrsPasteText;\n        break;\n    case toolPasteRte:\n        cursID = kcrsPasteRte;\n        break;\n    case toolPasteObject:\n        cursID = kcrsDefault;\n        break;\n    case toolTboxPaintText:\n        cursID = kcrsPaintText;\n        break;\n    case toolTboxFillBkgd:\n        cursID = kcrsFillBkgd;\n        break;\n    case toolTboxStory:\n        cursID = kcrsTboxStory;\n        break;\n    case toolTboxCredit:\n        cursID = kcrsTboxCredit;\n        break;\n    case toolTboxFont:\n        cursID = kcrsTboxFont;\n        break;\n    case toolTboxSize:\n        cursID = kcrsTboxFontSize;\n        break;\n    case toolTboxStyle:\n        cursID = kcrsTboxFontStyle;\n        break;\n\n    default:\n        Bug(\"Unknown tool type\");\n    }\n\n    pcurs = (PCURS)_pcrm->PbacoFetch('GGCR', cursID, CURS::FReadCurs);\n    if (pvNil != pcurs)\n    {\n        vpappb->SetCurs(pcurs);\n        ReleasePpo(&pcurs);\n    }\n}\n\n/***************************************************************************\n    Tell the play button to go back to Play\n***************************************************************************/\nvoid STDIO::PlayStopped(void)\n{\n    AssertThis(0);\n\n    PGOK pgok;\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidPlay);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK) && (pgok->Sno() != kstDefault))\n    {\n        AssertPo(pgok, 0);\n        pgok->FChangeState(kstDefault);\n    }\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsActionBrowser);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        AssertPo(pgok, 0);\n        pgok->FChangeState(kstDefault);\n    }\n\n    vpappb->FSetProp(kpridToolTipDelay, _dtimToolTipDelay);\n}\n\n/***************************************************************************\n    The movie engine changed the tool, now change the UI\n***************************************************************************/\nvoid STDIO::ChangeTool(long tool)\n{\n    AssertThis(0);\n\n    PGOK pgok;\n\n    if (tool == toolTboxMove)\n    {\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidTextsCover);\n    }\n    else if (tool == toolDefault)\n    {\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidSettingsCover);\n    }\n    else\n    {\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsCover);\n    }\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK) && (pgok->Sno() != kstOpen))\n    {\n        AssertPo(pgok, 0);\n        pgok->FChangeState(kstOpen);\n    }\n\n    pgok = pvNil;\n\n    switch (tool)\n    {\n    case toolCompose:\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsCompose);\n        break;\n\n    case toolRecordSameAction:\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsContinue);\n        break;\n\n    case toolTboxMove:\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidTextsSelect);\n        break;\n\n    case toolDefault:\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidSettingsBackground);\n        pgok->FRunScript((kstDefault << 16) | kchidResetTools);\n        return;\n\n    default:\n        break;\n    }\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK) && (pgok->Sno() != kstSelected))\n    {\n        AssertPo(pgok, 0);\n        pgok->FChangeState(kstSelected);\n    }\n}\n\n/***************************************************************************\n    The movie engine deleted the scene.\n***************************************************************************/\nvoid STDIO::SceneNuked(void)\n{\n    AssertThis(0);\n\n    PGOK pgok;\n\n    if (_pmvie->Pscen() == pvNil)\n    {\n\n        _SetToolStates();\n        _psmcc->UpdateRollCall();\n\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidUndosCover);\n\n        if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n        {\n            AssertPo(pgok, 0);\n            pgok->FChangeState(kstOpen);\n        }\n    }\n}\n\n/***************************************************************************\n    The movie engine Undeleted a scene.\n***************************************************************************/\nvoid STDIO::SceneUnnuked(void)\n{\n    AssertThis(0);\n\n    if (_pmvie->Cscen() != 1)\n    {\n        return;\n    }\n\n    _SetToolStates();\n    _psmcc->UpdateRollCall();\n\n    if (_pmvie->Pscen()->Cactr() > 0)\n    {\n        EnableActorTools();\n    }\n\n    if (_pmvie->Pscen()->Ctbox() > 0)\n    {\n        EnableTboxTools();\n    }\n}\n\n/***************************************************************************\n    The movie engine deleted an actor.\n***************************************************************************/\nvoid STDIO::ActorNuked(void)\n{\n    AssertThis(0);\n\n    if (_pmvie->Pscen() == pvNil)\n    {\n        _SetToolStates();\n    }\n}\n\n/***************************************************************************\n    Enables/Disables the tools\n***************************************************************************/\nvoid STDIO::_SetToolStates(void)\n{\n    AssertThis(0);\n\n    PGOK pgok;\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidBackground);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK) && (_pmvie->Pscen() == pvNil))\n    {\n        AssertPo(pgok, 0);\n        pgok->FRunScript((kstDefault << 16) | kchidResetTools);\n        return;\n    }\n\n    //\n    // Enable everything, since we now have a scene.\n    //\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        AssertPo(pgok, 0);\n        pgok->FRunScript((kstDefault << 16) | kchidEnableSceneTools);\n    }\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsCover);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        AssertPo(pgok, 0);\n        pgok->FChangeState(kstClosed);\n    }\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidSoundsCover);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        AssertPo(pgok, 0);\n        pgok->FChangeState(kstClosed);\n    }\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidTextsCover);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        AssertPo(pgok, 0);\n        pgok->FChangeState(kstClosed);\n    }\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidScrollbarsCover);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        AssertPo(pgok, 0);\n        pgok->FChangeState(kstOpen);\n    }\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidUndosCover);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        AssertPo(pgok, 0);\n        pgok->FChangeState(kstOpen);\n    }\n\n    SetUndo(_pmvie->CundbUndo() != 0 ? undoUndo : _pmvie->CundbRedo() != 0 ? undoRedo : undoDisabled);\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidBooksCover);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        AssertPo(pgok, 0);\n        pgok->FChangeState(kstOpen);\n    }\n}\n\n/***************************************************************************\n    The movie engine inserted the first actor into the movie.\n***************************************************************************/\nvoid STDIO::EnableActorTools(void)\n{\n    AssertThis(0);\n\n    PGOK pgok;\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidBackground);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        AssertPo(pgok, 0);\n        pgok->FRunScript((kstDefault << 16) | kchidEnableActorTools);\n    }\n}\n\n/***************************************************************************\n    The movie engine inserted the first actor into the movie.\n***************************************************************************/\nvoid STDIO::EnableTboxTools(void)\n{\n    AssertThis(0);\n\n    PGOK pgok;\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidBackground);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        AssertPo(pgok, 0);\n        pgok->FRunScript((kstDefault << 16) | kchidEnableTboxTools);\n    }\n}\n\n/***************************************************************************\n    The movie engine has a new selected textbox.\n***************************************************************************/\nvoid STDIO::TboxSelected(void)\n{\n    AssertThis(0);\n}\n\n/***************************************************************************\n    The movie engine has a new undo buffer state\n***************************************************************************/\nvoid STDIO::SetUndo(long undo)\n{\n    AssertThis(0);\n\n    PGOK pgok;\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidUndo);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        AssertPo(pgok, 0);\n        pgok->FChangeState(undo == undoUndo ? kstOpen : (undo == undoRedo ? kstClosed : kstDisabled));\n    }\n}\n\n/***************************************************************************\n    Put up the costume changer / 3-D Text easel.  Returns fTrue if user\n    made changes, else fFalse.\n***************************************************************************/\nvoid STDIO::ActorEasel(bool *pfActrChanged)\n{\n    AssertThis(0);\n    AssertVarMem(pfActrChanged);\n\n    vpcex->EnqueueCid(cidActorEaselOpen);\n    *pfActrChanged = fFalse;\n}\n\n/***************************************************************************\n    Put up the costume changer / 3-D Text easel.  Returns fTrue if user\n    made changes, else fFalse.\n***************************************************************************/\nbool STDIO::FCmdActorEaselOpen(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PACTR pactr = _pmvie->Pscen()->PactrSelected();\n    AssertPo(pactr, 0);\n\n    vapp.BeginLongOp();\n\n    //\n    // Start the easel.\n    // Note: easels are self-managing, so we don't need to keep the PESL\n    //\n    if (pactr->Ptmpl()->FIsTdt())\n    {\n        ESLT::PesltNew(_pcrm, _pmvie, pactr);\n    }\n    else\n    {\n        ESLA::PeslaNew(_pcrm, _pmvie, pactr);\n    }\n\n    vapp.EndLongOp();\n    return fTrue;\n}\n\n/***************************************************************************\n    This frame has a pause type.\n***************************************************************************/\nvoid STDIO::PauseType(WIT wit)\n{\n    AssertThis(0);\n\n    PGOK pgok;\n    long fFlag;\n\n    fFlag = FPure(wit == witUntilSnd);\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidPausesSound);\n    AssertNilOrPo(pgok, 0);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n\n        if (fFlag)\n        {\n            pgok->FChangeState(kstOpen);\n        }\n        else\n        {\n            pgok->FChangeState(kstClosed);\n        }\n    }\n    else\n    {\n\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidBackground);\n        if (pgok != pvNil)\n        {\n            pgok->FRunScript((kstDefault << 16) | kchidSetPauseType, &fFlag, 1);\n        }\n    }\n\n    if (!_pmvie->FPlaying())\n    {\n        return;\n    }\n}\n\n/***************************************************************************\n    The movie engine is recording\n***************************************************************************/\nvoid STDIO::Recording(bool fRecording, bool fRecord)\n{\n    AssertThis(0);\n\n    PGOK pgok;\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidPlay);\n    AssertNilOrPo(pgok, 0);\n\n    if (pgok == pvNil)\n    {\n        return;\n    }\n\n    if (fRecording)\n    {\n\n        if (pgok->Sno() != kstRecording)\n        {\n            pgok->FChangeState(kstRecording);\n        }\n    }\n    else\n    {\n\n        if (pgok->Sno() != kstDefault)\n        {\n            pgok->FChangeState(kstDefault);\n        }\n    }\n}\n\n/***************************************************************************\n    The movie engine has an actor ready to be sooner/latered\n***************************************************************************/\nvoid STDIO::StartSoonerLater(void)\n{\n    AssertThis(0);\n\n    PGOK pgok;\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsSoonerButton);\n    AssertNilOrPo(pgok, 0);\n\n    if (pgok == pvNil)\n    {\n        return;\n    }\n\n    pgok->FChangeState(kstOpen);\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsLaterButton);\n    AssertNilOrPo(pgok, 0);\n\n    if (pgok == pvNil)\n    {\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsSoonerButton);\n        AssertPo(pgok, 0);\n        pgok->FChangeState(kstClosed);\n        return;\n    }\n\n    pgok->FChangeState(kstOpen);\n    vpapp->DisableAccel();\n    _psmcc->Psscb()->StartNoAutoadjust();\n\n    _fStartedSoonerLater = fTrue;\n}\n\n/***************************************************************************\n    The movie engine has completed a sooner/later\n***************************************************************************/\nvoid STDIO::EndSoonerLater(void)\n{\n    AssertThis(0);\n\n    PGOK pgok;\n\n    if (!_fStartedSoonerLater)\n        return;\n\n    _psmcc->Psscb()->EndNoAutoadjust();\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsSoonerButton);\n    AssertNilOrPo(pgok, 0);\n\n    if (pgok != pvNil)\n    {\n        pgok->FChangeState(kstClosed);\n    }\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsLaterButton);\n    AssertNilOrPo(pgok, 0);\n\n    if (pgok != pvNil)\n    {\n        pgok->FChangeState(kstClosed);\n    }\n\n    vpapp->EnableAccel();\n    _fStartedSoonerLater = fFalse;\n}\n\n/***************************************************************************\n    The movie engine has placed an actor.\n***************************************************************************/\nvoid STDIO::NewActor(void)\n{\n    AssertThis(0);\n\n    PGOK pgok;\n    PMVU pmvu;\n\n    pmvu = (PMVU)_pmvie->PddgGet(0);\n    AssertPo(pmvu, 0);\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsXY);\n    AssertNilOrPo(pgok, 0);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        if (pgok->Sno() == kstOpen)\n        {\n            pgok->FChangeState(kstClosed);\n        }\n    }\n    else\n    {\n        BRS rgr[3][3] = {{rOne, rZero, rZero}, {rZero, rZero, rOne}, {rZero, -rOne, rZero}};\n\n        pmvu->SetAxis(rgr);\n\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidBackground);\n        if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n        {\n            AssertPo(pgok, 0);\n            pgok->FRunScript((kstDefault << 16) | kchidResetXZAxisAndGround);\n        }\n    }\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsGround);\n    AssertNilOrPo(pgok, 0);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        if (pgok->Sno() == kstClosed)\n        {\n            pgok->FChangeState(kstOpen);\n        }\n    }\n    else\n    {\n        pmvu->SetFRespectGround(fFalse);\n\n        pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidBackground);\n        if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n        {\n            AssertPo(pgok, 0);\n            pgok->FRunScript((kstDefault << 16) | kchidResetXZAxisAndGround);\n        }\n    }\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidActorsCompose);\n    AssertNilOrPo(pgok, 0);\n\n    if ((pgok != pvNil) && pgok->FIs(kclsGOK))\n    {\n        pgok->FChangeState(kstSelected);\n    }\n}\n\n/***************************************************************************\n    The RollCall needs a mapping from Tmpl CNO's to the GOKD thumb cno\n***************************************************************************/\nbool STDIO::FAddCmg(CNO cnoTmpl, CNO cnoGokd)\n{\n    AssertThis(0);\n\n    CMG cmg;\n\n#ifdef DEBUG\n    long icmg;\n    for (icmg = 0; icmg < _pglcmg->IvMac(); icmg++)\n    {\n        _pglcmg->Get(icmg, &cmg);\n        if (cmg.cnoTmpl == cnoTmpl)\n        {\n            Warn(\"Duplicate actor cno in content\");\n            return fTrue;\n        }\n    }\n#endif // DEBUG\n\n    cmg.cnoTmpl = cnoTmpl;\n    cmg.cnoGokd = cnoGokd;\n    return _pglcmg->FAdd(&cmg);\n}\n\n/***************************************************************************\n    Return the cnoGokd corres to the cnoTmpl\n***************************************************************************/\nCNO STDIO::CnoGokdFromCnoTmpl(CNO cnoTmpl)\n{\n    AssertThis(0);\n\n    long icmg;\n    CMG cmg;\n\n    for (icmg = 0; icmg < _pglcmg->IvMac(); icmg++)\n    {\n        _pglcmg->Get(icmg, &cmg);\n        if (cmg.cnoTmpl == cnoTmpl)\n            return cmg.cnoGokd;\n    }\n\n    return cnoNil;\n}\n\n/***************************************************************************\n    The movie engine needs the action browser for the currently selected actor\n***************************************************************************/\nvoid STDIO::StartActionBrowser(void)\n{\n    AssertThis(0);\n    AssertPo(_pmvie->Pscen(), 0);\n    AssertPo(_pmvie->Pscen()->PactrSelected(), 0);\n\n    PGOK pgok;\n    CMD cmd;\n\n    pgok = (PGOK)((APP *)vpappb)->Pkwa()->PgobFromHid(kidBackground);\n\n    if (pgok != pvNil)\n    {\n        cmd = _cmd;\n        cmd.cid = cidBrowserReady;\n        cmd.pcmh = this;\n        cmd.rglw[0] = kidBrwsAction;\n        vpcex->EnqueueCmd(&cmd);\n    }\n}\n\n/***************************************************************************\n    Start the listener easel\n***************************************************************************/\nvoid STDIO::StartListenerEasel(void)\n{\n    AssertThis(0);\n\n    vpcex->EnqueueCid(cidListenerEaselOpen);\n}\n\n/***************************************************************************\n    Start the listener easel\n***************************************************************************/\nbool STDIO::FCmdListenerEaselOpen(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    // Note: easels are self-managing, so we don't need to keep the PESLL\n    ESLL::PesllNew(_pcrm, _pmvie, _pmvie->Pscen()->PactrSelected());\n    return fTrue;\n}\n\n/***************************************************************************\n    Try to exit the studio.  The fClearCache flag is fTrue by default,\n    but should bet set to fFalse if the app is about to quit so we don't\n    bother clearing the caches (since it's slow and requires the CD(s) to\n    be in.)\n***************************************************************************/\nbool STDIO::FShutdown(bool fClearCache)\n{\n    AssertThis(0);\n\n    bool fRet = fTrue;\n    PMVU pmvu;\n\n    if (_pmvie != pvNil)\n    {\n        pmvu = (PMVU)_pmvie->PddgActive();\n        AssertPo(pmvu, 0);\n\n        fRet = pmvu->FCloseDoc(fFalse);\n    }\n\n    if (fRet && fClearCache)\n        vptagm->ClearCache();\n\n    return fRet;\n}\n\n/***************************************************************************\n    Static function to stop the action button animation\n***************************************************************************/\nvoid STDIO::PauseActionButton(void)\n{\n    PGOK pgok;\n\n    pgok = (PGOK)vpapp->Pkwa()->PgobFromHid(kidActorsActionBrowser);\n    if (pgok != pvNil && pgok->FIs(kclsGOK))\n    {\n        AssertPo(pgok, 0);\n        pgok->FChangeState(kstFreeze);\n    }\n}\n\n/***************************************************************************\n    Static function to resume the action button animation\n***************************************************************************/\nvoid STDIO::ResumeActionButton(void)\n{\n    PGOK pgok;\n\n    pgok = (PGOK)vpapp->Pkwa()->PgobFromHid(kidActorsActionBrowser);\n    if (pgok != pvNil && pgok->FIs(kclsGOK))\n    {\n        AssertPo(pgok, 0);\n        pgok->FChangeState(kstDefault);\n    }\n}\n\n/***************************************************************************\n    The movie engine is using the tool, now play the sound\n***************************************************************************/\nvoid STDIO::PlayUISound(long tool, long grfcust)\n{\n    AssertThis(0);\n\n    PCRF pcrf;\n    long cactRepeat = 1;\n    long cno;\n\n    _fStopUISound = fFalse;\n\n    switch (tool)\n    {\n\n    case toolUndo:\n        cno = kcnoUndoWav;\n        break;\n\n    case toolRedo:\n        cno = kcnoRedoWav;\n        break;\n\n    case toolTboxMove:\n        return;\n\n    case toolCompose:\n        if (grfcust & fcustCmd)\n        {\n            cno = kcnoMove1Wav;\n        }\n        else if (grfcust & fcustShift)\n        {\n            cno = kcnoMoveAllWav;\n        }\n        else\n        {\n            cno = kcnoMoveWav;\n        }\n        break;\n\n    case toolActorSelect:\n        cno = kcnoSelectWav;\n        break;\n\n    case toolSounder:\n        cno = kcnoSPlayWav;\n        break;\n\n    case toolLooper:\n        cno = kcnoSLoopWav;\n        break;\n\n    case toolMatcher:\n        cno = kcnoSActWav;\n        break;\n\n    case toolSceneNuke:\n        cno = kcnoRemScnWav;\n        break;\n\n    case toolActorNuke:\n        if (grfcust & fcustShift)\n        {\n            cno = kcnoRemWBoxWav;\n        }\n        else\n        {\n            cno = kcnoRemActrWav;\n        }\n        break;\n\n    case toolSceneChop:\n        cno = kcnoRemAftrWav;\n        break;\n\n    case toolSceneChopBack:\n        cno = kcnoRemBfrWav;\n        break;\n\n    case toolTboxStory:\n        cno = kcnoWScrOffWav;\n        break;\n\n    case toolTboxCredit:\n        cno = kcnoWScrOnWav;\n        break;\n\n    case toolTboxPaintText:\n        cno = kcnoWColorWav;\n        break;\n\n    case toolTboxFillBkgd:\n        cno = kcnoWBgClrWav;\n        break;\n\n    case toolTboxFont:\n        cno = kcnoWFontWav;\n        break;\n\n    case toolTboxSize:\n        cno = kcnoWSizeWav;\n        break;\n\n    case toolTboxStyle:\n        cno = kcnoWStyleWav;\n        break;\n\n    case toolSoonerLater:\n        cno = kcnoSFreezeWav;\n        break;\n\n    case toolRotateX:\n    case toolRotateY:\n    case toolRotateZ:\n        cno = kcnoRotateWav;\n        cactRepeat = -1;\n        _fStopUISound = fTrue;\n        break;\n\n    case toolResize:\n        _fStopUISound = fTrue;\n        if (grfcust & fcustShift)\n        {\n            cno = kcnoShrinkWav;\n        }\n        else\n        {\n            cno = kcnoGrowWav;\n        }\n        break;\n\n    case toolSquashStretch:\n        _fStopUISound = fTrue;\n        if (grfcust & fcustShift)\n        {\n            cno = kcnoSquashWav;\n        }\n        else\n        {\n            cno = kcnoStretchWav;\n        }\n        break;\n\n    case toolNormalizeRot:\n        cno = kcnoCBackRWav;\n        break;\n\n    case toolNormalizeSize:\n        cno = kcnoCBackSWav;\n        break;\n\n    case toolRecordSameAction:\n        cno = kcnoRecordWav;\n        break;\n\n    case toolAddAFrame:\n        cno = kcnoAddFrameWav;\n        break;\n\n    case toolFWAFrame:\n        cno = kcnoGoNextFWav;\n        break;\n\n    case toolRWAFrame:\n        cno = kcnoGoPrevFWav;\n        break;\n\n    case toolFWAScene:\n        cno = kcnoGoNextSWav;\n        break;\n\n    case toolRWAScene:\n        cno = kcnoGoPrevSWav;\n        break;\n\n    case toolPasteObject:\n    case toolPasteText:\n        cno = kcnoPasteWav;\n        break;\n\n    case toolCutObject:\n    case toolCutText:\n        cno = kcnoCutWav;\n        break;\n\n    case toolCopyObject:\n    case toolCopyText:\n        cno = kcnoCopyWav;\n        break;\n\n    case toolCopyRte:\n        cno = kcnoCopyPWav;\n        break;\n\n    case toolDefault:\n        return;\n\n    default:\n        Bug(\"No Sound for this tool\");\n        return;\n    }\n\n    //\n    // Find the sound and play it\n    //\n    if ((pcrf = _pcrm->PcrfFindChunk(kctgWave, cno)) != pvNil)\n    {\n        vpsndm->SiiPlay(pcrf, kctgWave, cno, ksqnNone, kvlmFull, cactRepeat, 0, 0, ksclUISound);\n    }\n}\n\n/***************************************************************************\n    The movie engine is done using the tool, now stop the sound\n***************************************************************************/\nvoid STDIO::StopUISound(void)\n{\n    AssertThis(0);\n\n    if (_fStopUISound)\n    {\n        vpsndm->StopAll(sqnNil, ksclUISound);\n    }\n}\n\n/***************************************************************************\n    Read a Misc Studio stn\n***************************************************************************/\nvoid STDIO::GetStnMisc(long ids, PSTN pstn)\n{\n    AssertBaseThis(0);\n    AssertDo(_pgstMisc->FFindExtra(&ids, pstn), \"Invalid studio.cht or ids\");\n}\n\n/******************************************************************************\n    FCmdToggleXY\n        Command handler to toggle the XY button setting in the studio\n\n    Arguments:\n        PCMD pcmd  --  the command to process\n\n    Returns:  fTrue; always handles the command\n\n************************************************************ SEANSE ***********/\nbool STDIO::FCmdToggleXY(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PGOK pgok;\n\n    pgok = (PGOK)vpapp->Pkwa()->PgobFromHid(kidActorsXY);\n    if (pgok != pvNil && pgok->FIs(kclsGOK))\n    {\n        AssertPo(pgok, 0);\n        vpcex->EnqueueCid(cidClicked, pgok, pvNil, pvNil);\n    }\n\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdHelpBook\n        Command handler to bring up the help book\n\n    Arguments:\n        PCMD pcmd  --  the command to process\n\n    Returns:  fTrue; always handles the command\n\n************************************************************ SEANSE ***********/\nbool STDIO::FCmdHelpBook(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PGOK pgok;\n\n    pgok = (PGOK)vpapp->Pkwa()->PgobFromHid(kidBook);\n\n    if (pgok != pvNil && pgok->FIs(kclsGOK))\n    {\n        AssertPo(pgok, 0);\n        vpcex->EnqueueCid(cidClicked, pgok, pvNil, pvNil);\n    }\n\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdMovieGoto\n        Command handler to force the movie to a specific scene and frame number\n\n    Arguments:\n        PCMD pcmd  --  the command to process\n\n    Returns:  fTrue; always handles the command\n\n************************************************************ SEANSE ***********/\nbool STDIO::FCmdMovieGoto(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    /* REVIEW seanse (peted): not good!  This allows script to pump whatever\n        number it feels like into our code, with no range checking. */\n    _pmvie->LwSetMoviePos(pcmd->rglw[0], pcmd->rglw[1]);\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdSoundsEnabled\n        Command handler to enabled/disable movie sounds.\n\n    Arguments:\n        PCMD pcmd  --  the command to process\n\n    Returns:  fTrue; always handles the command\n\n************************************************************ SEANSE ***********/\nbool STDIO::FCmdSoundsEnabled(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    _pmvie->SetFSoundsEnabled(FPure(pcmd->rglw[0]));\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdCreateTbox\n        Command handler to create a textbox.\n\n    Arguments:\n        PCMD pcmd  --  the command to process\n\n    Returns:  fTrue; always handles the command\n\n************************************************************ SEANSE ***********/\nbool STDIO::FCmdCreateTbox(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    RC rc;\n\n    rc.Set(kxpDefaultTbox, kypDefaultTbox, kxpDefaultTbox + kdxpDefaultTbox, kypDefaultTbox + kdypDefaultTbox);\n\n    if (_pmvie->FInsTbox(&rc, !FPure(pcmd->rglw[0])))\n    {\n        EnableTboxTools();\n    }\n\n    return fTrue;\n}\n\n/****************************************************\n * Updates the title display\n *\n * Parameters:\n *  pstnTitle - The new title to display.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid STDIO::UpdateTitle(PSTN pstnTitle)\n{\n    AssertThis(0);\n    AssertPo(pstnTitle, 0);\n\n    STN stnFontSize;\n    long dypFontSize;\n\n    // Set the movie title\n    if (_ptgobTitle == pvNil)\n    {\n        _ptgobTitle = TGOB::PtgobCreate(kidName, idsStudioFont, tavCenter);\n\n        GetStnMisc(idsMovieNameDypFont, &stnFontSize);\n\n        if (stnFontSize.FGetLw(&dypFontSize) && dypFontSize > 0)\n        {\n            _ptgobTitle->SetFontSize(dypFontSize);\n        }\n        else\n        {\n            Warn(\"Update Movie Name font size failed\");\n        }\n    }\n\n    if (_ptgobTitle != pvNil)\n    {\n        _ptgobTitle->SetText(pstnTitle);\n    }\n}\n\n#ifdef DEBUG\n/******************************************************************************\n        Tells the movie to write bitmaps as it plays, and plays the movie.\n************************************************************ PETED ***********/\nbool STDIO::FCmdWriteBmps(PCMD pcmd)\n{\n    if (_pmvie != pvNil)\n    {\n        AssertPo(_pmvie, 0);\n        _pmvie->SetFWriteBmps(fTrue);\n        vpcex->EnqueueCid(cidPlay, this);\n    }\n    return fTrue;\n}\n#endif // DEBUG\n\n#ifdef DEBUG\n\n/****************************************************\n * Mark memory used by the STDIO\n *\n * Parameters:\n *  None.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid STDIO::MarkMem(void)\n{\n    AssertThis(0);\n    STDIO_PAR::MarkMem();\n    MarkMemObj(_pmvie);\n    MarkMemObj(_psmcc);\n    MarkMemObj(_pcrm);\n    MarkMemObj(_pgstMisc);\n    MarkMemObj(_pglpbrcn);\n    MarkMemObj(_pbrwrActr);\n    MarkMemObj(_pbrwrProp);\n    MarkMemObj(_pglcmg);\n    MarkMemObj(_pglclr);\n    MarkMemObj(_ptgobTitle);\n    TDT::MarkActionNames();\n\n    //\n    // Mark browser objects\n    //\n    long ipbrcn;\n    PBRCN pbrcn;\n\n    if (_pglpbrcn != pvNil)\n    {\n        for (ipbrcn = 0; ipbrcn < _pglpbrcn->IvMac(); ipbrcn++)\n        {\n            _pglpbrcn->Get(ipbrcn, &pbrcn);\n            MarkMemObj(pbrcn);\n        }\n    }\n}\n\n/***************************************************************************\n *\n * Assert the validity of the STDIO.\n *\n * Parameters:\n *  grf - Bit field of options\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid STDIO::AssertValid(ulong grf)\n{\n    STDIO_PAR::AssertValid(fobjAllocated);\n    AssertNilOrPo(_pmvie, 0);\n    AssertPo(_pcrm, 0);\n    AssertPo(_pgstMisc, 0);\n    AssertNilOrPo(_pbrwrActr, 0);\n    AssertNilOrPo(_pbrwrProp, 0);\n    AssertNilOrPo(_pglcmg, 0);\n    AssertNilOrPo(_pglclr, 0);\n    AssertNilOrPo(_pglpbrcn, 0);\n    AssertNilOrPo(_ptgobTitle, 0);\n}\n\n#endif // DEBUG\n\n/***************************************************************************\n    Constructor for SMCC.\n***************************************************************************/\nSMCC::SMCC(long dxp, long dyp, long cbCache, PSSCB psscb, PSTDIO pstdio) : MCC(dxp, dyp, cbCache)\n{\n    AssertNilOrPo(psscb, 0);\n    // Note: Would like to do an AssertPo here but can't\n    // the studio isn't necessarily set up yet.\n    AssertBasePo(pstdio, 0);\n\n    _psscb = psscb;\n    if (pvNil != _psscb)\n        _psscb->AddRef();\n    _pstdio = pstdio;\n    _dypTextTbox = 0;\n}\n\n/***************************************************************************\n *\n * Update RollCall\n *\n **************************************************************************/\nvoid SMCC::UpdateRollCall(void)\n{\n    AssertThis(0);\n\n    bool fUpdateActr, fUpdateProp;\n    long aridSel;\n\n    aridSel = _pstdio->AridSelected();\n\n    if (_pstdio->PbrwrActr() != pvNil)\n    {\n        fUpdateActr = !_pstdio->PbrwrActr()->FApplyingSel();\n        if (!fUpdateActr)\n            aridSel = aridNil;\n    }\n    else\n        fUpdateActr = fFalse;\n    if (_pstdio->PbrwrProp() != pvNil)\n    {\n        fUpdateProp = !_pstdio->PbrwrProp()->FApplyingSel();\n        if (!fUpdateProp)\n            aridSel = aridNil;\n    }\n    else\n        fUpdateProp = fFalse;\n\n    if (fUpdateActr)\n        _pstdio->PbrwrActr()->FUpdate(aridSel, _pstdio);\n\n    if (fUpdateProp)\n        _pstdio->PbrwrProp()->FUpdate(aridSel, _pstdio);\n}\n\n/******************************************************************************\n    DypTextDef\n        Retrieve a default text size for a textbox in a movie.\n************************************************************ PETED ***********/\nlong SMCC::DypTboxDef(void)\n{\n    if (_dypTextTbox == 0)\n    {\n        STN stn;\n\n        _pstdio->GetStnMisc(idsTboxDypFont, &stn);\n        if (!stn.FGetLw(&_dypTextTbox) || _dypTextTbox <= 0)\n            _dypTextTbox = vapp.DypTextDef();\n    }\n    return _dypTextTbox;\n}\n\n/******************************************************************************\n    FQueryPurgeSounds\n        Displays a query to the user, asking whether to purge unused imported\n        sounds in the file.\n\n    Returns: fTrue if the user wants the sounds purged\n\n************************************************************ PETED ***********/\nbool SMCC::FQueryPurgeSounds(void)\n{\n    AssertThis(0);\n\n    STN stnMsg;\n\n    AssertDo(vapp.FGetStnApp(idsPurgeSounds, &stnMsg), \"String not present\");\n    return vapp.TModal(vapp.PcrmAll(), ktpcQueryPurgeSounds, &stnMsg, bkYesNo) == tYes;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the SMCC\n***************************************************************************/\nvoid SMCC::AssertValid(ulong grf)\n{\n    SMCC_PAR::AssertValid(0);\n    AssertPo(_psscb, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the SMCC\n***************************************************************************/\nvoid SMCC::MarkMem(void)\n{\n    AssertThis(0);\n    SMCC_PAR::MarkMem();\n    MarkMemObj(_psscb);\n}\n\n#endif // DEBUG\n"
  },
  {
    "path": "src/studio/tatr.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    tatr.cpp: Theater class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    A TATR (theater) is similar to a STDIO, but has no UI and is used for\n    playback only.\n\n***************************************************************************/\n#include \"studio.h\"\nASSERTNAME\n\nRTCLASS(TATR)\n\nconst long kcmhlTheater = 0x10000;\n\nBEGIN_CMD_MAP(TATR, CMH)\nON_CID_GEN(cidTheaterLoad, &TATR::FCmdLoad, pvNil)\nON_CID_GEN(cidTheaterPlay, &TATR::FCmdPlay, pvNil)\nON_CID_GEN(cidTheaterStop, &TATR::FCmdStop, pvNil)\nON_CID_GEN(cidTheaterRewind, &TATR::FCmdRewind, pvNil)\nEND_CMD_MAP_NIL()\n\n/***************************************************************************\n    Create a new TATR\n***************************************************************************/\nPTATR TATR::PtatrNew(long kidParent)\n{\n    PTATR ptatr;\n\n    ptatr = NewObj TATR(HidUnique());\n    if (pvNil == ptatr)\n        return pvNil;\n    if (!ptatr->_FInit(kidParent))\n    {\n        ReleasePpo(&ptatr);\n        return pvNil;\n    }\n    AssertPo(ptatr, 0);\n    return ptatr;\n}\n\n/***************************************************************************\n    Initialize the TATR\n***************************************************************************/\nbool TATR::_FInit(long kidParent)\n{\n    AssertBaseThis(0);\n\n    _kidParent = kidParent;\n\n    if (!vpcex->FAddCmh(this, kcmhlTheater))\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Clean up and delete this theater\n***************************************************************************/\nTATR::~TATR(void)\n{\n    AssertBaseThis(0);\n    ReleasePpo(&_pmvie);\n#ifdef BUG1907\n    vptagm->ClearCache(sidNil, ftagmFile); // Clear content out of HD cache\n                                           // Note: could clear out the RAM cache too, but I'm keeping this change\n                                           // as small as possible.\n#endif                                     // BUG1907\n}\n\n/***************************************************************************\n    Load a new movie into the theater\n***************************************************************************/\nbool TATR::FCmdLoad(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PMCC pmcc;\n    FNI fni;\n    PMVIE pmvie = pvNil;\n    PGOB pgob;\n    GCB gcb;\n\n    pmcc = NewObj MCC(kdxpWorkspace, kdypWorkspace, kcbStudioCache);\n    if (pvNil == pmcc)\n        goto LFail;\n\n    vpapp->GetPortfolioDoc(&fni);\n    if (fni.Ftg() != kftg3mm)\n    {\n        Bug(\"Portfolio's FNI has bad FTG in theater\");\n        goto LFail;\n    }\n\n    vpappb->BeginLongOp();\n#ifdef BUG1907\n    // Close up the previous movie, if any\n    if (_pmvie != pvNil)\n    {\n        if (!_pmvie->PmvuCur()->FCloseDoc(fFalse))\n            goto LFail;\n        ReleasePpo(&_pmvie);\n    }\n    vptagm->ClearCache(sidNil, ftagmFile); // Clear content out of HD cache\n                                           // Note: could clear out the RAM cache too, but I'm keeping this change\n                                           // as small as possible.\n#endif                                     // BUG1907\n    pmvie = MVIE::PmvieNew(vpapp->FSlowCPU(), pmcc, &fni, cnoNil);\n    if (pmvie == pvNil)\n        goto LFail;\n    ReleasePpo(&pmcc);\n\n    // Create a new MVU (with PddgNew()) as a child GOB of _kidParent.\n    // Make it invisible until we get a play command\n    pgob = vpapp->Pkwa()->PgobFromHid(_kidParent);\n    if (pvNil == pgob)\n    {\n        Bug(\"Couldn't find gob for TATR's kidParent\");\n        goto LFail;\n    }\n    gcb.Set(HidUnique(), pgob);\n    if (pmvie->PddgNew(&gcb) == pvNil)\n        goto LFail;\n\n    if (pmvie->Cscen() > 0)\n    {\n        if (!pmvie->FSwitchScen(0))\n            goto LFail;\n    }\n\n#ifndef BUG1907\n    // Close up the previous movie, if any\n    if (_pmvie != pvNil)\n    {\n        if (!_pmvie->PmvuCur()->FCloseDoc(fFalse))\n            goto LFail;\n        ReleasePpo(&_pmvie);\n    }\n#endif //! BUG1907\n    _pmvie = pmvie;\n\n    vpcex->EnqueueCid(cidTheaterLoadCompleted, pvNil, pvNil, fTrue);\n    return fTrue;\nLFail:\n    ReleasePpo(&pmcc);\n    ReleasePpo(&pmvie);\n    vpcex->EnqueueCid(cidTheaterLoadCompleted, pvNil, pvNil, fFalse);\n    return fTrue;\n}\n\n/***************************************************************************\n    Play the current movie.  Also makes the MVU visible, if it was hidden.\n***************************************************************************/\nbool TATR::FCmdPlay(PCMD pcmd)\n{\n    AssertThis(ftatrMvie); // make sure we have a movie\n    AssertVarMem(pcmd);\n\n    PMVU pmvu;\n    RC rcAbs;\n    RC rcRel;\n\n    if (pvNil == _pmvie) // Prevent crash if _pmvie is pvNil (although it\n        return fTrue;    // shouldn't ever be if this function is called)\n\n    pmvu = _pmvie->PmvuCur();\n    pmvu->GetPos(&rcAbs, &rcRel);\n    rcRel.Set(0, 0, krelOne, krelOne);\n    pmvu->SetPos(&rcAbs, &rcRel);\n\n    if (!_pmvie->FPlaying())\n        _pmvie->Play();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Stop the current movie\n***************************************************************************/\nbool TATR::FCmdStop(PCMD pcmd)\n{\n    AssertThis(ftatrMvie); // make sure we have a movie\n    AssertVarMem(pcmd);\n\n    if (pvNil == _pmvie) // Prevent crash if _pmvie is pvNil (although it\n        return fTrue;    // shouldn't ever be if this function is called)\n\n    if (_pmvie->FPlaying())\n        _pmvie->Play(); // Play() stops the movie if it's currently playing\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Rewind the current movie\n***************************************************************************/\nbool TATR::FCmdRewind(PCMD pcmd)\n{\n    AssertThis(ftatrMvie); // make sure we have a movie\n    AssertVarMem(pcmd);\n\n    if (pvNil == _pmvie) // Prevent crash if _pmvie is pvNil (although it\n        return fTrue;    // shouldn't ever be if this function is called)\n\n    if (_pmvie->Cscen() > 0)\n    {\n        StopAllMovieSounds();\n        if (_pmvie->FSwitchScen(0))\n            _pmvie->Pscen()->FGotoFrm(_pmvie->Pscen()->NfrmFirst());\n    }\n    return fTrue;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the TATR.\n***************************************************************************/\nvoid TATR::AssertValid(ulong grf)\n{\n    TATR_PAR::AssertValid(fobjAllocated);\n    if (grf & ftatrMvie)\n        AssertPo(_pmvie, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the TATR\n***************************************************************************/\nvoid TATR::MarkMem(void)\n{\n    AssertThis(0);\n    TATR_PAR::MarkMem();\n    MarkMemObj(_pmvie);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/studio/tbbasics.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n///////////////////////////////////////////////////////////\n// Basics tables, all sound tables are help dir  \n///////////////////////////////////////////////////////////\n/////////////////////////////////////\n// Basics callout sequence 1\n/////////////////////////////////////\nGOBCHUNK(\"Basics01 initializer\", kidBasics01, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Basics01 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcBasics00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t\t \tcidClicked, \t\tkidPortfolio)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidPortfolio)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t3,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcBasics01)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidPortsNew)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidPortsNew)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t3,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t  \n\n/////////////////////////////////////\n// basics callout sequence 2\n/////////////////////////////////////\nGOBCHUNK(\"Basics02 initializer\", kidBasics02, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Basics02 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcBasics02)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t\t \tcidClicked, \t\tkidPortfolio)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidPortfolio)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t3,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcBasics03)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidPortsPortfolio)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidPortsPortfolio)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t3,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// basics callout sequence 3\n/////////////////////////////////////\nGOBCHUNK(\"Basics03 initializer\", kidBasics03, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Basics03 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcBasics04)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidPortfolio)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidPortfolio)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcBasics05)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidPortsSave)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidPortsSave)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// basics callout sequence 4\n/////////////////////////////////////\nGOBCHUNK(\"Basics04 initializer\", kidBasics04, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Basics04 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcBasics06)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidPortfolio)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidPortfolio)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcBasics07)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidPortsSaveAs)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidPortsSaveAs)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// basics callout sequence 5\n/////////////////////////////////////\nGOBCHUNK(\"Basics05 initializer\", kidBasics05, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Basics05 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey, \tktpcBasics08)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t2,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t2,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//2\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// basics callout sequence 6\n/////////////////////////////////////\nGOBCHUNK(\"Basics06 initializer\", kidBasics06, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Basics06 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcBasics0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t2,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//2\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// basics callout sequence 7\n/////////////////////////////////////\nGOBCHUNK(\"Basics07 initializer\", kidBasics07, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Basics07 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcBasics0C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t\t \tcidClicked, \t\tkidBook)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidBook)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcBasics0D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkgobHelpBookVoice)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHelpBookVoice)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcBasics10)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkgobHelpBookCancel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHelpBookCancel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobHelpBookVoice)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHelpBookVoice)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// basics callout sequence 8\n/////////////////////////////////////\nGOBCHUNK(\"Basics08 initializer\", kidBasics08, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Basics08 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcBasics0E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t\t \tcidClicked, \t\tkidMap)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidMap)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t2,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//2\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// basics callout sequence 9\n/////////////////////////////////////\nGOBCHUNK(\"Basics09 initializer\", kidBasics09, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Basics09 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcBasics0F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t\t \tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t2,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//2\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n"
  },
  {
    "path": "src/studio/tbguidhp.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n///////////////////////////////////////////////////////////////\n// Guide help table information\n///////////////////////////////////////////////////////////////\n//WAVE_CHUNK (\"studio\\sound\\VOLW18.WAV\", kwavLogo12)\n\nGOBCHUNK(\"Guide Help initializer\", kidGuideHelp, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Guide Help setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\t//PROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrKey,\tCO__To_see_the_scenes)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t\t\tcidClicked, \t\tkidSettingsBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSettingsBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t21,\t\t\tcidClicked, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible|kFltrKey,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t3,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk|kFltrBrwCancel|kFltrKey, CO__Click_the_scene_you_want)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t4,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t21,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel,\t\tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrKey|kFltrSceneLoaded,\tNoHelpHere)\n//\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t5,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidSceneLoaded,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrKey,\tktpcGuideHelp10)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t\tcidClicked, \t\tkidSettingsCameras)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSettingsCameras)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible|kFltrKey,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk|kFltrBrwCancel|kFltrKey, CO___then_click_the_camera)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t21,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel,\t\tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrKey,\tCO__When_you_re_ready)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9, \t\t\tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrKey,\tCO__Click_Actors)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t\tcidClicked, \t\tkidActorsBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible|kFltrKey,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t11,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk|kFltrBrwCancel|kFltrKey, CO__Click_the_actor_you_want)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t12,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t21,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel,\t\tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrActorIn|kFltrActorOut|kFltrKey,\tCO__Click_where_you_want_to)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidActorPlaced, \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidActorPlacedOutOfView,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrKey,\tCO__To_make_an_actor_move)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t14,\t\t\tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked|kFltrKey,\tCO__Click_the_actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t15,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//15\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrBrwVisible|kFltrKey,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t16,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//16\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk|kFltrBrwCancel|kFltrKey, CO__Click_the_action_you)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t17,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t21,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel,\t\tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//17\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked|kFltrKey,\tCO__Drag_the_actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t18,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//18\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrKey,\tCO__To_see_what_your)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t19,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, NotRel, \tNotRel,\t\tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//19\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrMoviePlaying|kFltrKey,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t20,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//20\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrKey,\tCO__If_you_want_to_save)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobGuideHelp)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t21,\t\t\tcidKey,\t\t \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//21\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,\t\tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate our states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n"
  },
  {
    "path": "src/studio/tbhtactr.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n///////////////////////////////////////////////////////////\n// How to actors tables, all sound tables are help dir  \n///////////////////////////////////////////////////////////\n/////////////////////////////////////\n// how to actors callout sequence 1\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors01 initializer\", kidHowToActors01, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors01 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors01)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcHowToActors02)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrActorIn|kFltrActorOut,\tktpcHowToActors03)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t \tcidActorPlaced, \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t3,\t\t \tcidActorPlacedOutOfView,\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors04)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 2\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors02 initializer\", kidHowToActors02, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors02 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors05)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsPropBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsPropBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcHowToActors06)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrActorIn|kFltrActorOut,\tktpcHowToActors07)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t \tcidActorPlaced, \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t3,\t\t \tcidActorPlacedOutOfView,\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors08)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 3\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors03 initializer\", kidHowToActors03, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors03 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors09)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsSpletters)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsSpletters)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrEslVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidEaselVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrEslClosing|kFltrEslCancel, ktpcEaselHelp0B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2,\t\t\t6,\t\t\tcidEaselClosing,\tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2,\t\t\t8,\t\t\tcidEaselClosing,\tfFalse)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidEaselCancel,\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrActorIn|kFltrActorOut,\tktpcHowToActors0B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t \tcidActorPlaced, \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t3,\t\t \tcidActorPlacedOutOfView,\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors0C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 4\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors04 initializer\", kidHowToActors04, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors04 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidRollCallActorBorder1,\tkstBrowserEnabled)\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidRollCallActorBorder1,\tkstBrowserSelected)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors12)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidRollCallActorBorder1)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallActorBorder1)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidRollCallActorBorder2)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallActorBorder2)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t7, \t\t \tcidClicked, \t\tkidRollCallActorBorder3)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallActorBorder3)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t8, \t\t \tcidClicked, \t\tkidRollCallActorBorder4)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallActorBorder4)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidRollCallActorDownArrow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallActorDownArrow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidRollCallActorUpArrow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallActorUpArrow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallActorBorder1,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallActorBorder2,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallActorBorder3,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallActorBorder4,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSimulateClick,\t\tkidActorsCompose)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrActorIn|kFltrActorOut|kFltrActorClicked,\tktpcHowToActors13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t \tcidActorPlaced, \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t \tcidActorPlacedOutOfView,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors14)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 5\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors05 initializer\", kidHowToActors05, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors05 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidRollCallPropBorder1,\tkstBrowserEnabled)\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidRollCallPropBorder1,\tkstBrowserSelected)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors15)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidRollCallPropBorder1)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallPropBorder1)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidRollCallPropBorder2)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallPropBorder2)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t7, \t\t \tcidClicked, \t\tkidRollCallPropBorder3)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallPropBorder3)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t8, \t\t \tcidClicked, \t\tkidRollCallPropBorder4)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallPropBorder4)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidRollCallPropDownArrow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallPropDownArrow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidRollCallPropUpArrow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallPropUpArrow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallPropBorder1,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallPropBorder2,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallPropBorder3,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallPropBorder4,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSimulateClick,\t\tkidActorsCompose)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrActorIn|kFltrActorOut|kFltrActorClicked,\tktpcHowToActors16)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t \tcidActorPlaced, \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t \tcidActorPlacedOutOfView,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors17)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 6\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors06 initializer\", kidHowToActors06, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors06 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors18)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors19)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp2D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors1B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors1C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//10\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 7\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors07 initializer\", kidHowToActors07, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors07 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors1D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors1E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp2D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors1F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//9\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 8\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors08 initializer\", kidHowToActors08, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors08 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors20)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidActorsCompose)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCompose)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors21)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors22)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//7\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 9\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors09 initializer\", kidHowToActors09, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors09 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t5,\t \t\tkidActorsContinue,\tkstSelected)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors23)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidActorsContinue)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsContinue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors23)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidMouseDown, \t\tkidActorsContinue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors24)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors25)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 10\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors10 initializer\", kidHowToActors10, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors10 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors2A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidActorsRecordMode)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsRecordMode)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors91)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidActorsContinue)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsContinue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors2B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors2C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 11\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors11 initializer\", kidHowToActors11, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors11 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t  \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue,  NotRel,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors30)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidActorsSooner)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsSooner)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors31)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors32)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidActorsSoonerButton)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsSoonerButton)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidActorsLaterButton)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsLaterButton)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7, \t\t \tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t8,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors33)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//9\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 12\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors12 initializer\", kidHowToActors12, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors12 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t  \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors34)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidActorsSooner)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsSooner)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors35)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors36)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidActorsSoonerButton)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsSoonerButton)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidActorsLaterButton)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsLaterButton)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7, \t\t \tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t8,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors37)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//9\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 13\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors13 initializer\", kidHowToActors13, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors13 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t\t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors38)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors39)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidCCPCopyRoute)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPCopyRoute)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors3A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors3B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors3C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9, \t\t \tcidClicked, \t\tkidCCPPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors3D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors3E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 14\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors14 initializer\", kidHowToActors14, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors14 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t  \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors3F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors40)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidCCPCopy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPCopy)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClickedDown,\tktpcHowToActors41)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClickedDown,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors42)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors43)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9, \t\t \tcidClicked, \t\tkidCCPPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrActorIn|kFltrActorOut,\tktpcHowToActors44)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t \tcidActorPlaced, \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t \tcidActorPlacedOutOfView,\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors45)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 15\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors15 initializer\", kidHowToActors15, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors15 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t  \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors46)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors47)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidCCPCut)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPCut)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClickedDown,\tktpcHowToActors48)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClickedDown,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors49)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors4A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9, \t\t \tcidClicked, \t\tkidCCPPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrActorIn|kFltrActorOut,\tktpcHowToActors4B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t \tcidActorPlaced, \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t \tcidActorPlacedOutOfView,\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors4C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 16\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors16 initializer\", kidHowToActors16, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors16 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t  \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors4D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors4E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidCCPActorNuke)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPActorNuke)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClickedDown,\tktpcHowToActors4F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClickedDown,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors50)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 17\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors17 initializer\", kidHowToActors17, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors17 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t  \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors51)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidActorsRotate)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsRotate)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors52)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidActorsRotateX)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsRotateX)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors53)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors54)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 18\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors18 initializer\", kidHowToActors18, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors18 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t  \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors55)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidActorsRotate)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsRotate)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors56)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidActorsRotateY)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsRotateY)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors57)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors58)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 19\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors19 initializer\", kidHowToActors19, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors19 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t  \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors59)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidActorsRotate)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsRotate)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors5A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidActorsRotateZ)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsRotateZ)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors5B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors5C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 20\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors20 initializer\", kidHowToActors20, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors20 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t  \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors5D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidActorsRotate)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsRotate)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors5E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidActorsRotateNorm)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsRotateNorm)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors5F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors60)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 21\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors21 initializer\", kidHowToActors21, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors21 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t  \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors61)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidActorsSelect)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsSelect)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors62)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors63)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//7\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 22\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors22 initializer\", kidHowToActors22, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors22 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidRollCallActorBorder1,\tkstBrowserEnabled)\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidRollCallActorBorder1,\tkstBrowserSelected)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors64)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidRollCallActorBorder1)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallActorBorder1)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidRollCallActorBorder2)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallActorBorder2)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t7, \t\t \tcidClicked, \t\tkidRollCallActorBorder3)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallActorBorder3)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t8, \t\t \tcidClicked, \t\tkidRollCallActorBorder4)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallActorBorder4)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidRollCallActorDownArrow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallActorDownArrow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidRollCallActorUpArrow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallActorUpArrow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallActorBorder1,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallActorBorder2,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallActorBorder3,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallActorBorder4,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSimulateClick,\t\tkidActorsCompose)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrActorIn|kFltrActorOut|kFltrActorClicked,\tktpcHowToActors13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t \tcidActorPlaced, \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t \tcidActorPlacedOutOfView,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors65)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 23\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors23 initializer\", kidHowToActors23, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors23 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidRollCallPropBorder1,\tkstBrowserEnabled)\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidRollCallPropBorder1,\tkstBrowserSelected)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors66)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidRollCallPropBorder1)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallPropBorder1)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidRollCallPropBorder2)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallPropBorder2)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t7, \t\t \tcidClicked, \t\tkidRollCallPropBorder3)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallPropBorder3)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t8, \t\t \tcidClicked, \t\tkidRollCallPropBorder4)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallPropBorder4)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidRollCallPropDownArrow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallPropDownArrow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidRollCallPropUpArrow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallPropUpArrow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallPropBorder1,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallPropBorder2,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallPropBorder3,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidRollCallPropBorder4,\tkstBrowserInvisible)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue,\tNotRel,\t\t9,\t\t\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSimulateClick,\t\tkidActorsCompose)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrActorIn|kFltrActorOut|kFltrActorClicked,\tktpcHowToActors16)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t \tcidActorPlaced, \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t \tcidActorPlacedOutOfView,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors67)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 24\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors24 initializer\", kidHowToActors24, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors24 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t  \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue,  NotRel,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors68)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidActorsTransform)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsTransform)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors69)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidActorsShrink)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsShrink)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors6A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors6B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 25\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors25 initializer\", kidHowToActors25, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors25 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t  \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors6C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidActorsTransform)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsTransform)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors6D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidActorsSquash)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsSquash)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors6E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors6F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 26\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors26 initializer\", kidHowToActors26, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors26 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t  \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors70)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidActorsTransform)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsTransform)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors71)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidActorsTransformNorm)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsTransformNorm)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors72)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors73)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to actors callout sequence 27\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Actors27 initializer\", kidHowToActors27, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Actors27 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t  \t3,\t \t\tkidBackground->fEnableActorTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Actor)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidActorsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToActors00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToActors74)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidActorsCostume)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCostume)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToActors75)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 4, \t\t\t8,\t\t \tcidActorClicked, \t2)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrEslVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t \t\tcidEaselVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrEslOk|kFltrEslCancel, ktpcEaselHelp15)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidEaselOk,\t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t11,\t\t\tcidEaselCancel,\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrEslVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t \t\tcidEaselVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrEslOk|kFltrEslCancel, ktpcEaselHelp0B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidEaselOk,\t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t11,\t\t\tcidEaselCancel,\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToActors77)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n"
  },
  {
    "path": "src/studio/tbhtscen.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n///////////////////////////////////////////////////////////\n// How to scenes tables, all scene tables are in this file  \n///////////////////////////////////////////////////////////\n/////////////////////////////////////\n// how to scenes callout sequence 1\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Scene01 initializer\", kidHowToScenes01, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Scene01 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t2,\t \t\tkidSettingsCover,\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t \tkFltrMouseBoth,\t\tktpcHowToScenes00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t\t \tcidClicked, \t\tkidSettingsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToScenes01)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSettingsBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t4,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcHowToScenes02)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrSceneLoaded,\tNoHelpHere)\n//\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t6,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidSceneLoaded,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes32)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7, \t\t \tcidClicked, \t\tkidSettingsCameras)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsCameras)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcHowToScenes03)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes04)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//10\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to scenes callout sequence 2\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Scene02 initializer\", kidHowToScenes02, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Scene02 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t2,\t \t\tkidSettingsCover,\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSettingsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes05)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSettingsCameras)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsCameras)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcHowToScenes06)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes07)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//7\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to scenes callout sequence 3\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Scene03 initializer\", kidHowToScenes03, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Scene03 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t2,\t \t\tkidSettingsCover,\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSettingsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes08)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidPausesMouse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidPausesMouse)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes09)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//5\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to scenes callout sequence 4\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Scene04 initializer\", kidHowToScenes04, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Scene04 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidSoundsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToSounds00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidPausesSound)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidPausesSound)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes0B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//5\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to scenes callout sequence 5\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Scene05 initializer\", kidHowToScenes05, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Scene05 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t2,\t \t\tkidSettingsCover,\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSettingsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes0C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidPausesClear)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidPausesClear)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes28)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//5\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to scenes callout sequence 6\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Scene06 initializer\", kidHowToScenes06, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Scene06 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t2,\t \t\tkidSettingsCover,\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSettingsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes0D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSceneSorter)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneSorter)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrScnSortVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidSceneSortInit,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrScnSortOk|kFltrScnSortCancel, ktpcHowToScenes0E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidSceneSortOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidSceneSortCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkidSSorterOpen)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkidSSorterNuke)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkidSSorterHand)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes0F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//7\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to scenes callout sequence 7\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Scene07 initializer\", kidHowToScenes07, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Scene07 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t2,\t \t\tkidSettingsCover,\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSettingsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes10)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSceneSorter)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneSorter)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrScnSortVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidSceneSortInit,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrScnSortOk|kFltrScnSortCancel, ktpcHowToScenes11)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t2,\t\t\t6,\t\t\tcidSceneSortOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidSceneSortCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkidSSorterOpen)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkidSSorterNuke)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkidSSorterHand)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes12)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//7\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to scenes callout sequence 8\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Scene08 initializer\", kidHowToScenes08, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Scene08 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t2,\t \t\tkidScrollbarsCover,\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes14)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to scenes callout sequence 9\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Scene09 initializer\", kidHowToScenes09, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Scene09 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t2,\t \t\tkidScrollbarsCover,\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes15)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes16)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n/////////////////////////////////////\n// how to scenes callout sequence 10\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Scene10 initializer\", kidHowToScenes10, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Scene10 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t2,\t \t\tkidSettingsCover,\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSettingsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes17)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes18)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidCCPActorNuke)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPActorNuke)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes3B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t6, \t\t \tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes19)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//7\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to scenes callout sequence 11\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Scene11 initializer\", kidHowToScenes11, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Scene11 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t2,\t \t\tkidSettingsCover,\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSettingsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes1A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidCCPSceneChopBack)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPSceneChopBack)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes1C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t5, \t\t \tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes1D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to scenes callout sequence 12\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Scene12 initializer\", kidHowToScenes12, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t  \t\nCREATE_ANIM(\"HowTo Scene12 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t2,\t \t\tkidSettingsCover,\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSettingsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes1E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidCCPSceneChopFwd)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPSceneChopFwd)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes20)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t5, \t\t \tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes21)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to scenes callout sequence 13\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Scene13 initializer\", kidHowToScenes13, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t  \t\nCREATE_ANIM(\"HowTo Scene13 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t2,\t \t\tkidSettingsCover,\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSettingsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes22)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSceneSorter)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneSorter)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrScnSortVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidSceneSortInit,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes23)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidSSorterOpen)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSSorterOpen)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrPortfolioResult,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t7,\t\t\tcidPortfolioResult, fTrue)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t2, \t\t\t9,\t \t\tcidPortfolioResult, NotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrScnSortOk|kFltrScnSortCancel, ktpcHowToScenes25)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t2,\t\t\t8,\t\t\tcidSceneSortOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t\tcidSceneSortCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkidSSorterOpen)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkidSSorterNuke)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkidSSorterHand)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes29)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//9\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to scenes callout sequence 14\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Scene14 initializer\", kidHowToScenes14, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t  \t\nCREATE_ANIM(\"HowTo Scene14 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t2,\t \t\tkidUndosCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Undo)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidUndo,\t\t\tkstOpen)\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidUndo,\t\t\tkstClosed)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Undo)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes26)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidUndo)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidUndo)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes2A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//5\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to scenes callout sequence 15\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Scene15 initializer\", kidHowToScenes15, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t  \t\nCREATE_ANIM(\"HowTo Scene15 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t2,\t \t\tkidSettingsCover,\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSettingsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToScenes34)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSettingsBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcHowToScenes35)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToScenes36)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7, \t\t \tcidClicked, \t\tkidSceneSorter)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneSorter)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrScnSortVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t \t\tcidSceneSortInit,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrScnSortOk|kFltrScnSortCancel, ktpcHowToScenes37)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2,\t\t\t9,\t\t\tcidSceneSortOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidSceneSortCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkidSSorterOpen)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkidSSorterNuke)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkidSSorterHand)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToScenes3A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//10\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n"
  },
  {
    "path": "src/studio/tbhtsoun.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n///////////////////////////////////////////////////////////\n// How to sounds tables, all sound tables are in this file  \n///////////////////////////////////////////////////////////\n/////////////////////////////////////\n// how to sounds callout sequence 1\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Sounds01 initializer\", kidHowToSounds01, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Sounds01 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidSoundsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToSounds00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds01)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp19)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToSounds03)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t7, \t\t \tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToSounds04)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to sounds callout sequence 2\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Sounds02 initializer\", kidHowToSounds02, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Sounds02 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidSoundsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToSounds00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds05)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp24)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToSounds07)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToSounds08)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to sounds callout sequence 3\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Sounds03 initializer\", kidHowToSounds03, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Sounds03 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidSoundsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToSounds00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds09)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp29)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToSounds0B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t7, \t\t \tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToSounds0C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to sounds callout sequence 4\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Sounds04 initializer\", kidHowToSounds04, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Sounds04 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidSoundsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToSounds00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds0D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8, \t\t \tcidClicked, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp19)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp24)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp29)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds21)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidClicked, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToSounds0E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t12,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t12,\t\t \tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToSounds0F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//13\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to sounds callout sequence 5\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Sounds05 initializer\", kidHowToSounds05, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Sounds05 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidSoundsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToSounds00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds10)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8, \t\t \tcidClicked, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp19)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp24)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp29)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds2C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidClicked, \t\tkidSoundsLooping)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsLooping)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToSounds11)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t12,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t12,\t\t \tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToSounds12)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//13\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to sounds callout sequence 6\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Sounds06 initializer\", kidHowToSounds06, kgokkNormal)\n\tDEFAULT_POSITION(0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Sounds06 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidSoundsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToSounds00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8, \t\t \tcidClicked, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp19)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp24)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp29)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds2D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidClicked, \t\tkidSoundsAttachToCell)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsAttachToCell)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToSounds14)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t12,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToSounds15)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//13\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to sounds callout sequence 7\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Sounds07 initializer\", kidHowToSounds07, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Sounds07 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t2,\t \t\tkidSettingsCover,\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse,\t\t\tktpcHowToSounds16)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel,\t\t4, \t\t \tcidMouseDown, \t\tkidVolumeSlider)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidDoors,\t\t\tkstSceneDoorsOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse,\t\t\tktpcHowToSounds16)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel,\t\t4, \t\t \tcidMouseDown, \t\tkidVolumeSlider)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds17)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel,\t\t5, \t\t \tcidClicked, \t\tkidVolumeSlider)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidVolumeSlider) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToSounds18)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to sounds callout sequence 8\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Sounds08 initializer\", kidHowToSounds08, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Sounds08 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidSoundsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToSounds00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds19)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSoundsListen)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsListen)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToSounds1A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t5, \t\t \tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrEslVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidEaselVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrEslOk|kFltrEslCancel, ktpcEaselHelp13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidEaselOk,\t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidEaselCancel,\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToSounds1C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to sounds callout sequence 9\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Sounds09 initializer\", kidHowToSounds09, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Sounds09 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidSoundsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToSounds00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds1D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidBook)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidBook)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds1E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkgobHelpBookVoice)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHelpBookVoice)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds1F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkgobHelpBookCancel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHelpBookCancel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n/////////////////////////////////////\n// how to sounds callout sequence 10\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Sounds10 initializer\", kidHowToSounds10, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Sounds10 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidSoundsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToSounds00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds20)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6, \t\t \tcidClicked, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8, \t\t \tcidClicked, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp19)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp24)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcEaselHelp29)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds21)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidClicked, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToSounds22)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t12,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t12,\t\t \tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToSounds26)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//13\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to sounds callout sequence 11\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Sounds11 initializer\", kidHowToSounds11, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Sounds11 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidSoundsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToSounds00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds23)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcHowToSounds24)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToSounds25)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//7\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to sounds callout sequence 12\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Sounds12 initializer\", kidHowToSounds12, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Sounds12 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidSoundsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToSounds00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToSounds27)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToSounds28)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t5, \t\t \tcidClicked, \t\tkidCCPActorNuke)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPActorNuke)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrActorClicked,\tktpcHowToSounds29)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t6, \t\t \tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrEslVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t \t\tcidEaselVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrEslOk|kFltrEslCancel, ktpcEaselHelp13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidEaselOk,\t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t\tcidEaselCancel,\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tktpcHowToSounds2A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//9\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n"
  },
  {
    "path": "src/studio/tbhtword.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n///////////////////////////////////////////////////////////\n// How to word tables, all sound tables are in help dir  \n///////////////////////////////////////////////////////////\n/////////////////////////////////////\n// how to words callout sequence 1\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Words01 initializer\", kidHowToWords01, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Words01 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t3,\t \t\tkidTextsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidTextsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcHowToWords01)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidTextsCreate)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCreate)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcHowToWords02)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked,\tktpcHowToWords28)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse, NotRel,\t\t7,\t\t \tcidTboxClicked, \tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey,ktpcHowToWords03)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidKey,\t\t\t \tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\tktpcHowToWords04)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//9\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n/////////////////////////////////////\n// how to Words callout sequence 2\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Word02 initializer\", kidHowToWords02, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Word02 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableTboxTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Word_Box)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidTextsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidTextsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords05)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidTextsFont)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsFont)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords06)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidTextFontPageDown)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextFontPageDown)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidTextFontPageUp)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextFontPageUp)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t6, \t\t \tcidClicked, \t\tkidTextFont)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextFont)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords07)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 3,\t\t\t7,\t\t \tcidTboxClicked, \tfFalse)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey,\tktpcHowToWords08)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidKey,\t\t\t \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to Words callout sequence 3\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Word03 initializer\", kidHowToWords03, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Word03 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableTboxTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Word_Box)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidTextsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidTextsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords09)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidTextsFontShape)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsFontShape)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t6, \t\t \tcidClicked, \t\tkidTextStyle)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextStyle)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords0B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 3,\t\t\t7,\t\t \tcidTboxClicked, \tfFalse)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey,\tktpcHowToWords0C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidKey,\t\t\t \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel, \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to Words callout sequence 4\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Word04 initializer\", kidHowToWords04, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Word04 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableTboxTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Word_Box)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidTextsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidTextsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords0D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidTextsFontSize)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsFontSize)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords0E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t6, \t\t \tcidClicked, \t\tkidTextSize)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextSize)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords0F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 3,\t\t\t7,\t\t \tcidTboxClicked, \tfFalse)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey,\tktpcHowToWords10)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidKey,\t\t\t \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to Words callout sequence 5\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Word05 initializer\", kidHowToWords05, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Word05 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableTboxTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Word_Box)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidTextsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidTextsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords11)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidTextsFontColor)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsFontColor)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords12)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidTextColorPageDown)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextColorPageDown)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidTextColorPageUp)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextColorPageUp)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t6, \t\t \tcidClicked, \t\tkidTextColor)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextColor)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 3,\t\t\t7,\t\t \tcidTboxClicked, \tfFalse)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey,\tktpcHowToWords14)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidKey,\t\t\t \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to Words callout sequence 6\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Word06 initializer\", kidHowToWords06, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Word06 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableTboxTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Word_Box)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidTextsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidTextsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords15)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidTextsBkgdColor)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsBkgdColor)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords16)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidTextBkgdColorPageDown)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextBkgdColorPageDown)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidTextBkgdColorPageUp)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextBkgdColorPageUp)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t6, \t\t \tcidClicked, \t\tkidTextBkgdColor)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextBkgdColor)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords17)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 3,\t\t\t7,\t\t \tcidTboxClicked, \tfFalse)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse, NotRel,\t\t7,\t\t \tcidTboxClicked, \tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey,\tktpcHowToWords18)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidKey,\t\t\t \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to Words callout sequence 7\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Word07 initializer\", kidHowToWords07, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Word07 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableTboxTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Word_Box)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidTextsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidTextsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth|kFltrTBoxClicked, ktpcHowToWords19)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 3,\t\t\t5,\t\t \tcidTboxClicked, \tfFalse)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey,\tktpcHowToWords1A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t \tcidKey,\t\t\t \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to Words callout sequence 8\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Word08 initializer\", kidHowToWords08, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Word08 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableTboxTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Word_Box)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidTextsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidTextsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth|kFltrTBoxClicked, ktpcHowToWords1B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 3,\t\t\t5,\t\t \tcidTboxClicked, \tfFalse)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey,\tktpcHowToWords1C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t \tcidKey,\t\t\t \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to Words callout sequence 9\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Word09 initializer\", kidHowToWords09, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Word09 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableTboxTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Word_Box)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidTextsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidTextsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords1D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidTextsScrollType)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsScrollType)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgo2bHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords1E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t6, \t\t \tcidClicked, \t\tkidScrollBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidScrollBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords1F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse, NotRel,\t\t7,\t\t \tcidTboxClicked, \tNotRel)\n//\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 3,\t\t\t7,\t\t \tcidTboxClicked, \tfFalse)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey,\tktpcHowToWords20)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidKey,\t\t\t \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n/////////////////////////////////////\n// how to Words callout sequence 10\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Word10 initializer\", kidHowToWords10, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Word10 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableTboxTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Word_Box)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidTextsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidTextsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords21)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 3,\t\t\t5,\t\t \tcidTboxClicked, \tfFalse)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey,\tktpcHowToWords22)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t \tcidKey,\t\t\t \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t6,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to Words callout sequence 11\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Word11 initializer\", kidHowToWords11, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"HowTo Word11 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableTboxTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Word_Box)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidTextsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidTextsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords23)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords24)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t6, \t\t \tcidClicked, \t\tkidCCPCopy)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPCopy)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords25)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 3,\t\t\t7,\t\t \tcidTboxClicked, \tfFalse)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords26)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords27)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t9, \t\t \tcidClicked, \t\tkidCCPPaste)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords29)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse, NotRel,\t\t10,\t\t \tcidTboxClicked, \tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey,\tktpcHowToWords2A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidKey,\t\t\t \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to Words callout sequence 12\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Word12 initializer\", kidHowToWords12, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t  \t\nCREATE_ANIM(\"HowTo Word12 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableTboxTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Word_Box)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidTextsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidTextsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords2B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords2C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t6, \t\t \tcidClicked, \t\tkidCCPCopy)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPCopy)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords2D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 3,\t\t\t7,\t\t \tcidTboxClicked, \tfFalse)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords2E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords2F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t9, \t\t \tcidClicked, \t\tkidCCPPaste)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords28)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse, NotRel,\t\t10,\t\t \tcidTboxClicked, \tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey,\tktpcHowToWords30)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidKey,\t\t\t \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to Words callout sequence 13\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Word13 initializer\", kidHowToWords13, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t  \t\nCREATE_ANIM(\"HowTo Word13 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableTboxTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Word_Box)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidTextsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidTextsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords31)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords32)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t6, \t\t \tcidClicked, \t\tkidCCPCut)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPCut)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords33)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 3,\t\t\t7,\t\t \tcidTboxClicked, \tfFalse)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords34)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords35)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t9, \t\t \tcidClicked, \t\tkidCCPPaste)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords36)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse, NotRel,\t\t10,\t\t \tcidTboxClicked, \tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey,\tktpcHowToWords37)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidKey,\t\t\t \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to Words callout sequence 14\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Word14 initializer\", kidHowToWords14, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t  \t\nCREATE_ANIM(\"HowTo Word14 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableTboxTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Word_Box)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidTextsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidTextsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords38)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords39)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t6, \t\t \tcidClicked, \t\tkidCCPCut)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPCut)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords3A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 3,\t\t\t7,\t\t \tcidTboxClicked, \tfFalse)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords3B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords3C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t9, \t\t \tcidClicked, \t\tkidCCPPaste)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords28)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse, NotRel,\t\t10,\t\t \tcidTboxClicked, \tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey,\tktpcHowToWords3D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidKey,\t\t\t \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n/////////////////////////////////////\n// how to Words callout sequence 15\n/////////////////////////////////////\nGOBCHUNK(\"HowTo Word15 initializer\", kidHowToWords15, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\t\t\t\t\t\t\t\t\t\t\t  \t\nCREATE_ANIM(\"HowTo Word15 Table\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t2,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Scene)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t3,\t \t\tkidBackground->fEnableTboxTools,\tfTrue)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse,\t\t\tNo_Word_Box)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t4,\t \t\tkidTextsCover,\t\tkstOpen)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t\t \tcidClicked, \t\tkidTextsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidTextsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords3E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkidSceneBackground)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSceneBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t\t \tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcHowToWords3F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t6, \t\t \tcidClicked, \t\tkidCCPActorNuke)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidCCPActorNuke)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrTBoxClicked, ktpcHowToWords40)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse, NotRel,\t\t7,\t\t \tcidTboxClicked, \tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrKey,\tktpcHowToWords41)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobHowtoSequence)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidKey,\t\t\t \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tfFalse,\tNotRel,\t \tNotRel,  \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n"
  },
  {
    "path": "src/studio/tblogowz.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n///////////////////////////////////////////////////////////////\n// Logo wizard table information\n///////////////////////////////////////////////////////////////\n\nGOBCHUNK(\"Logo wizard initializer\", kidLogoWizard, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Logo wizard setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel,\t\tkFltrMouseBoth, \tktpcLogo00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t2,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll, \t\t\tfTrue, \tNotRel, \tNotRel,  \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcLogo02)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t\t \tcidClicked, \t\tkidSettingsBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t23,\t \t \tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t24,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t4,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcLogo03)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel,\t\t24,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrSceneLoaded,\tNoHelpHere)\n//\tPROJECT_TABLE(BoolCondGoto,\t\t\tNotRel, NotRel,\t \t6,\t \t\tkidBackground->fEnableSceneTools,\tfTrue)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidSceneLoaded,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcLogo01)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7, \t\t \tcidClicked, \t\tkidSettingsCameras)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidSettingsCameras)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t23,\t \t \tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t24,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcLogo04)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel,\t\t24,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcLogo05)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10, \t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t23,\t \t \tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t24,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcLogo06)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidClicked, \t\tkidActorsSpletters)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsSpletters)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t23,\t \t \tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t24,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrEslVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t12,\t \t\tcidEaselVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouse|kFltrEslClosing|kFltrEslCancel, ktpcLogo07)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2,\t\t\t14,\t\t\tcidEaselClosing,\tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2,\t\t\t13,\t\t\tcidEaselClosing,\tfFalse)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t\t\tcidEaselCancel,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpcLogo08)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t \tcidClicked, \t\tkidActorsSpletters)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsSpletters)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t23,\t \t \tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t24,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrActorIn|kFltrActorOut,\tktpcLogo09)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t15,\t\t \tcidActorPlaced, \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t \tcidActorPlacedOutOfView,\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//15\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpcLogo0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t16,\t\t\tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t23,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t24,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//16\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrActorClicked,\tktpcLogo0B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t17,\t\t \tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t23,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t24,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//17\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t18,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//18\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrBrwOk|kFltrBrwCancel, ktpcLogo0C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t19,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel,\t\t24,\t\t\tcidBrowserCancel,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel, \tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//19\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpcLogo11)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t20,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t23,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t24,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//20\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t23,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t24,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//21\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t22,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t22,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t23,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t24,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//22\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth, \tktpcLogo12)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t26,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t28,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t27,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\t25,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t24,\t \t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n// Exit\n//23\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t27,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t25,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//24\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t26,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t27,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t25,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//25\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)// used instead of quit help because it brings up the mczee message after exit\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//27\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Make another project\n//28\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tClearStudio,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrModalClosed|kFltrPortfolioResult,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidQuerySaveDocResult, \t1)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t1,\t\t\tcidQuerySaveDocResult, \t0)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t22,\t\t\tcidQuerySaveDocResult, \t2)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t1,\t\t\tcidPortfolioResult, fTrue)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t22,\t \t\tcidPortfolioResult, NotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n"
  },
  {
    "path": "src/studio/tbproj1.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n///////////////////////////////////////////////////////////////\n// Project1 table information\n///////////////////////////////////////////////////////////////\n//WAVE_CHUNK (\"studio\\sound\\xxx.WAV\", kwav1Project00)\n\nGOBCHUNK(\"Project1 01 initializer\", kid1Project01, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project1 01 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project22)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrGadgetAviStop,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t3,\t \t\tcidGadgetAviStop,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project01)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project02)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t3,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel,\t\tkFltrMovieLoaded, \tNoHelpHere)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tLoadProjectMovie,\tstidMovie1)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t6, \t \t\tcidProjectMovieLoaded,\tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t21,\t \t\tcidProjectMovieLoaded,\tfFalse)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenDoorCovers,\t\tkidActorsCover)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tProj1Scene,\tNotRel,\t\tSetSceneAndFrame,\tProj1Frame)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel,\t\tkFltrMouseBoth, \tktpc1Project03)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t7,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll, \t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSetBrowserItem,\t\tPrj1Action1)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project04)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8, \t \t\tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t18,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t19,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc1Project05)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t18,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t19,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\tktpc1Project06)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t11,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t19,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, ktpc1Project07)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t12,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t19,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc1Project08)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t18,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t19,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t14,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t18,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t19,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//14\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t15,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t15,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t18,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t19,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//15\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project09)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t16,\t \t\tcidClicked, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel, \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t18,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t19,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//16\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t17,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t18,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t19,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//17\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t18,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t19,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//18\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t22,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t20,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//19\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t21,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t22,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t20,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//20\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue, \tNotRel,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//21\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//22\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue, \tNotRel,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Second sequence for project 1\nGOBCHUNK(\"Project1 02 initializer\", kid1Project02, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project1 02 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project0B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project0C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project0D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t\tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13, \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSetBrowserItem,\t\tPrj1SoundsMic1)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project0E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t\tcidClicked, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\t\tktpc1Project0F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t7,\t\t\tcidBrowserSelect,\tNotRel) \n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, NoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc1Project10)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidClicked, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project11)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t11,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t12,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t\t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//15\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue, \tNotRel,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//16\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//17\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue, \tNotRel,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Third sequence for project 1\nGOBCHUNK(\"Project1 03 initializer\", kid1Project03, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project1 03 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project12)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project14)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t \t\tcidClicked, \t\tkidSettingsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSettingsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel, \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSetBrowserItem,\t\tPrj1Camera1)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc1Project16)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidSettingsCameras)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel, \tcidMouseDown, \t\tkidSettingsCameras)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel, \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrBrwOk, ktpc1Project17)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc1Project18)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t \t\tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel, \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel, \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project19)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t\tcidClicked, \t\tkidActorsContinue)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsContinue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc1Project1B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t12,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t12,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project1C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t \t\tcidClicked, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t14,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//15\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t19,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//16\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t18,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t19,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//17\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue, \tNotRel,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//18\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//19\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue, \tNotRel,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Fourth sequence for project 1\nGOBCHUNK(\"Project1 04 initializer\", kid1Project04, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project1 04 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project1D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project1E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project1F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t\tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSetBrowserItem,\t\tPrj1SoundsMic2)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project0E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t\tcidClicked, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\tktpc1Project23)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t7,\t\t\tcidBrowserSelect,\tNotRel) \n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, NoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc1Project24)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidClicked, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project25)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t11,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project26)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t12,\t \t\tcidClicked, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t\t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t18,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//15\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t18,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//16\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue, \tNotRel,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//17\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//18\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue, \tNotRel,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Fifth sequence for project 1\nGOBCHUNK(\"Project1 05 initializer\", kid1Project05, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project1 05 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project27)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project28)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project14)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t \t\tcidClicked, \t\tkidSettingsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSettingsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel, \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t18,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSetBrowserItem,\t\tPrj1Camera2)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project16)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t \t\tcidClicked, \t\tkidSettingsCameras)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSettingsCameras)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t18,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, ktpc1Project29)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project2A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t9,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t9,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project2B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t\tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc1Project19)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t\tcidClicked, \t\tkidActorsContinue)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsContinue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc1Project2C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t12,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t14,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t14,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc1Project09)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t15,\t\t\tcidClicked, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//15\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t16,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//16\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc1Project0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Exit\n//17\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t21,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t19,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//18\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t20,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t21,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t19,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//19\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue, \tNotRel,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//20\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//21\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue, \tNotRel,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Sixth sequence for project 1\nGOBCHUNK(\"Project1 06 initializer\", kid1Project06, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project1 06 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project2D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc1Project2E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc1Project0D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t\tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSetBrowserItem,\t\tPrj1SoundsMic3)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc1Project0E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t\tcidClicked, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrBrwSelect, ktpc1Project2F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t7,\t\t\tcidBrowserSelect,\tNotRel) \n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrBrwOk, NoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrActorClicked,\tktpc1Project10)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidClicked, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc1Project30)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t11,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc1Project31)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t12,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t13,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t14,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc1Project0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Exit\n//15\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t19,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//16\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t18,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t19,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//17\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue, \tNotRel,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//18\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//19\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue, \tNotRel,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Seventh sequence for project 1\nGOBCHUNK(\"Project1 07 initializer\", kid1Project07, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project1 07 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSetNextProject, \t2)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpc1Project20)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t3,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t5,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t4,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\t2,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//2\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue, \tNotRel,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tfTrue, \tNotRel,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(NextClip)\n//5\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tClearStudio,\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrModalClosed|kFltrPortfolioResult,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidQuerySaveDocResult, \t1)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t6,\t\t\tcidQuerySaveDocResult, \t0)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t1,\t\t\tcidQuerySaveDocResult, \t2)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t6,\t\t\tcidPortfolioResult, fTrue)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t1,\t \t\tcidPortfolioResult, NotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Change movies\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tChangeToNextMovie,\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n"
  },
  {
    "path": "src/studio/tbproj2.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n///////////////////////////////////////////////////////////////\n// Project2 table information\n///////////////////////////////////////////////////////////////\n//WAVE_CHUNK (\"studio\\sound\\xxx.WAV\", kwav2Project00)\n\nGOBCHUNK(\"Project2 initializer\", kid2Project01, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project2 01 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrGadgetAviStop,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t3,\t \t\tcidGadgetAviStop,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project01)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project02)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t3,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel,\t\tkFltrMovieLoaded, \tNoHelpHere)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tLoadProjectMovie,\tstidMovie3)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t6, \t \t\tcidProjectMovieLoaded,\tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t23,\t\t\tcidProjectMovieLoaded,\tfFalse)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenDoorCovers,\t\tkidActorsCover)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tProj3Scene,\tNotRel,\t\tSetSceneAndFrame,\tProj3Frame)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel,\t\tkFltrMouseBoth, \tktpc2Project03)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t7,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll, \t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project04)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t20,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t9,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t9,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t20,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project05)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t10, \t \tcidClicked, \t\tkidRollCallActorBorder1)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallActorBorder1)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t20,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t21,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project06)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t\tcidClicked, \t\tkidActorsSooner)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsSooner)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t10,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc2Project08)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t12,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t20,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t10,\t \t\tkidActorsSooner,\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t\tcidClicked, \t\tkidActorsSoonerButton)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsSoonerButton)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t20,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project0B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidClicked, \t\tkidActorsSoonerButton)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsSoonerButton)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t14,\t \t\tcidClicked, \t\tkidFrameRWEnd)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameRWEnd)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t20,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project0C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t15,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t20,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//15\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t16,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t16,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t20,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//16\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project0D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t17,\t \t\tcidClicked, \t\tkidFrameRWEnd)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameRWEnd)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t20,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//17\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project0E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t18,\t \t\tcidClicked, \t\tkidFrameFW)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameFW)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel, \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t20,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//18\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t19,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t20,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//19\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project10)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t20,\t\t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t21,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//20\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth,\t \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t24,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t22,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//21\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t23,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t24,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t22,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//22\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//23\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//24\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Second sequence for project 2\nGOBCHUNK(\"Project2 02 initializer\", kid2Project02, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project2 02 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project11)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project12)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t \t\tcidClicked, \t\tkidSettingsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSettingsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t10,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t11,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project14)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t \t\tcidClicked, \t\tkidCCPSceneChopBack)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidCCPSceneChopBack)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t10,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t11,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project15)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t6,\t\t \tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t10,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project16)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t10,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t8,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t8,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t10,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t9,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t10,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc2Project10)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t10,\t\t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t11,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth,\t \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t14,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t12,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth,\t \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t13,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t14,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t12,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//12\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//13\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//14\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Third sequence for project 2\nGOBCHUNK(\"Project2 03 initializer\", kid2Project03, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project2 03 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSetNextProject, \t4)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth,\t\tktpc2Project2B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t3,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t5,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t4,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\t2,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//2\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(NextClip)\n//5\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tClearStudio,\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrModalClosed|kFltrPortfolioResult,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidQuerySaveDocResult, \t1)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t6,\t\t\tcidQuerySaveDocResult, \t0)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t1,\t\t\tcidQuerySaveDocResult, \t2)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t6,\t\t\tcidPortfolioResult, fTrue)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t1,\t \t\tcidPortfolioResult, NotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Change movies\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tChangeToNextMovie,\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n"
  },
  {
    "path": "src/studio/tbproj3.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n///////////////////////////////////////////////////////////////\n// Project3 table information\n///////////////////////////////////////////////////////////////\n//WAVE_CHUNK (\"studio\\sound\\xxx.WAV\", kwav3Project00)\n\nGOBCHUNK(\"Project3 01 initializer\", kid3Project01, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project3 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tTo_play_this_movie__click)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrGadgetAviStop,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t3,\t \t\tcidGadgetAviStop,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tTo_see_the_steps_for_changing)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tWhy__Actions__when_viewed)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t3,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel,\t\tkFltrMovieLoaded, \tNoHelpHere)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tLoadProjectMovie,\tstidMovie2)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t6, \t \t\tcidProjectMovieLoaded,\tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t22,\t \t\tcidProjectMovieLoaded,\tfFalse)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenDoorCovers,\t\tkidActorsCover)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tProj2Scene,\tNotRel,\t\tSetSceneAndFrame,\tProj2Frame)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tI_created_the_first_part)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t7,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll, \t\t\tfTrue, \tNotRel, \tNotRel, \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj3Action1)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tCO__To_change_Nakita_s_act)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8, \t\t\tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrActorClicked,\tCO__Click_Nakita)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrBrwSelect, CO__Click_Run_Scared)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t11,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrBrwOk, CO__Then_click_OK)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t12,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tCO__Presto___The_new_action)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t14,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t14,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tCO__To_see_the_movie_from)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t15,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//15\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t16,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t16,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//16\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tCO__Click_the_button_below)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t17,\t\t\tcidClicked, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//17\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t18,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//18\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tIDLE__Remember_to_get)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Exit\n//19\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t23,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t21,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//20\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t22,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t23,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t21,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//21\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//22\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//23\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Second sequence for project 3\nGOBCHUNK(\"Project3 02 initializer\", kid3Project02, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project3 02 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tTo_see_the_steps_for_adding)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tWhy__There_are_two_ways_to)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tCO__To_find_Nakita_s_line)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t\tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj3SoundsMic1)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tCO__Click_Speech)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t\tcidClicked, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrBrwSelect,\tCO__Click__A_rat)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t7,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrBrwOk, NoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrActorClicked,\tCO__Now_click_Nakita)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t \tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidClicked, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//9\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tCO__To_play_the_movie_so)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t11,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t12,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tIDLE__Remember_to_get)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Exit\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//15\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//16\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//17\t\t\t\t\t  \n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Third sequence for project 3\nGOBCHUNK(\"Project3 03 initializer\", kid3Project03, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project3 03 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tCO__To_see_the_steps_for)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tWhy_Each_action_moves)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tCO__To_add_an_action)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t\tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfTrue,\t0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj3Action2)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tCO__Click_Actions)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t\tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrActorClicked,\tCO__Click_Nakita)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrBrwSelect,\tCO__Click_yell)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t8,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrBrwOk, CO__Then_click_OK)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrActorClicked,\tCO__Click_Nakita_Then_hold)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrActorClicked,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t12,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t12,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tCO__Click_the_button_below_to)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t\t\tcidClicked, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t14,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tIDLE__Remember_to_get)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Exit\n//15\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t19,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//16\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t18,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t19,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//17\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//18\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//19\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n//  Fourth sequence for project 3\nGOBCHUNK(\"Project3 04 initializer\", kid3Project04, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project3 04 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tCO__To_see_the_steps)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tWhy__Some_actions_need)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tCO__To_find_Nakita_s_line)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t\tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//4\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj3SoundsMic2)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tCO__Click_Speech)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t\tcidClicked, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsMicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrBrwSelect, CO__Click__Wait_up__Wanda)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t7,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrBrwOk, NoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrActorClicked,\tCO__Now_click_Nakita)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidClicked, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tCO__To_play_the_new_ending)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t11,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tCO__To_see_the_movie_from)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t12,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t13,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t13,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t14,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tIDLE__Remember_to_get)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t15,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t16,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Exit\n//15\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t19,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//16\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t18,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t19,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//17\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//18\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//19\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calulate the states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Fifth sequence for project 3\nGOBCHUNK(\"Project3 05 initializer\", kid3Project05, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project3 05 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSetNextProject, \t3)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tCongratulations)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t3,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t5,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t4,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\t2,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//2\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(NextClip)\n//5\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tClearStudio,\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrModalClosed|kFltrPortfolioResult,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidQuerySaveDocResult, \t1)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t6,\t\t\tcidQuerySaveDocResult, \t0)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t1,\t\t\tcidQuerySaveDocResult, \t2)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t6,\t\t\tcidPortfolioResult, fTrue)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t1,\t \t\tcidPortfolioResult, NotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Change movies\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tChangeToNextMovie,\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n"
  },
  {
    "path": "src/studio/tbproj4.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n///////////////////////////////////////////////////////////////\n// Project4 table information\n///////////////////////////////////////////////////////////////\n//WAVE_CHUNK (\"studio\\sound\\xxx.WAV\", kwav4Project00)\n\nGOBCHUNK(\"Project4 01 initializer\", kid4Project01, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project4 01 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrGadgetAviStop,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t3,\t \t\tcidGadgetAviStop,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project01)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project09)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t3,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel,\t\tkFltrMovieLoaded, \tNoHelpHere)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tLoadProjectMovie,\tstidMovie6)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t6, \t \t\tcidProjectMovieLoaded,\tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t22,\t \t\tcidProjectMovieLoaded,\tfFalse)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenDoorCovers,\t\tkidActorsCover)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tProj6Scene,\tNotRel,\t\tSetSceneAndFrame,\tProj6Frame)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel,\t\tkFltrMouseBoth, \tktpc4Project03)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t7,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll, \t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj4Action1)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t \t\tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t20,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc4Project0B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\tktpc4Project0C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t11,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, ktpc4Project20)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t12,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project0F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t \t\tcidClicked, \t\tkidActorsXY)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsXY)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t20,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc4Project11)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t14,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t15,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//15\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t16,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t16,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//16\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project12)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t17,\t \t\tcidClicked, \t\tkidFrameFW)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameFW)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel, \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//17\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t18,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//18\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project07)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t19,\t\t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t20,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//19\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t23,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t21,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//20\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t22,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t23,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t21,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//21\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//22\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//23\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Second sequence for project 4\nGOBCHUNK(\"Project4 02 initializer\", kid4Project02, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project4 02 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project14)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project15)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj4Prop1)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpc4Project16)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t \tcidClicked, \t\tkidActorsPropBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsPropBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t11,\t \t \tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t12,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, ktpc4Project17)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t12,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrActorIn|kFltrActorOut,\tktpc4Project18)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t7,\t\t \tcidActorPlaced, \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t3,\t\t \tcidActorPlacedOutOfView,\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project19)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t \t\tcidClicked, \t\tkidActorsXY)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsXY)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t11,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t12,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc4Project1A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t11,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t12,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t11,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t12,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project07)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t11,\t\t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t12,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t13,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t14,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t13,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//13\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//14\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//15\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Third sequence for project 4\nGOBCHUNK(\"Project4 03 initializer\", kid4Project03, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project4 03 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project1B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project1C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj4Action2)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project1D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t \t\tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t15,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc4Project1E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect, ktpc4Project1F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t7,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, ktpc4Project20)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc4Project21)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t11,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project22)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t12,\t \t\tcidClicked, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel, \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project07)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t\t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t18,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//15\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t18,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//16\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//17\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//18\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Fourth sequence for project 4\nGOBCHUNK(\"Project4 04 initializer\", kid4Project04, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project4 04 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project2C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project2D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project27)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t4,\t \t \tcidClicked, \t\tkidRollCallActorBorder1)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallActorBorder1)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t26,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth|kFltrActorIn|kFltrActorOut|kFltrActorClicked,\tktpc4Project29)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t \tcidActorPlaced, \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t3,\t\t \tcidActorPlacedOutOfView,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t26,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj4Action3)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project2E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t6,\t \t\tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t26,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc4Project0B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t26,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\tktpc4Project30)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t9,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t26,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, ktpc4Project20)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t26,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project31)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t \t\tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t26,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSimulateClick,\t\tkidCutCopyPaste)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project32)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t12,\t \t\tcidClicked, \t\tkidCCPCopyRoute)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidCCPCopyRoute)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t26,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc4Project1E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t26,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project33)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t14,\t \t\tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t26,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//14\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSimulateClick,\t\tkidCutCopyPaste)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project34)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t15,\t \t\tcidClicked, \t\tkidCCPPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidCCPPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t26,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//15\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project3E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, 0, \t\t\t16,\t \t \tcidClicked, \t\tkidRollCallActorBorder1)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidRollCallActorBorder1)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t26,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//16\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc4Project3F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t17,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t26,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//17\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project35)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t18,\t \t\tcidClicked, \t\tkidActorsXY)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsXY)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t26,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//18\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc4Project37)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t19,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t26,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//19\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t20,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t26,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//20\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t21,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t21,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t26,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//21\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc4Project39)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t22,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t26,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//22\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t23,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t23,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t26,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//23\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t24,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t\t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t26,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//24\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc4Project07)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t25,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t26,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//25\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t29,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t27,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//26\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t28,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t29,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t27,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//27\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//28\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//29\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Fifth sequence for project 4\nGOBCHUNK(\"Project4 05 initializer\", kid4Project05, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project4 05 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSetNextProject, \t1)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpc4Project3C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t3,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t5,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t4,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\t2,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//2\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(NextClip)\n//5\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tClearStudio,\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrModalClosed|kFltrPortfolioResult,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidQuerySaveDocResult, \t1)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t6,\t\t\tcidQuerySaveDocResult, \t0)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t1,\t\t\tcidQuerySaveDocResult, \t2)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t6,\t\t\tcidPortfolioResult, fTrue)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t1,\t \t\tcidPortfolioResult, NotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Change movies\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tChangeToNextMovie,\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n"
  },
  {
    "path": "src/studio/tbproj5.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n///////////////////////////////////////////////////////////////\n// Project5 table information\n///////////////////////////////////////////////////////////////\n//WAVE_CHUNK (\"studio\\sound\\xxx.WAV\", kwav5Project00)\n\nGOBCHUNK(\"Project5 01 initializer\", kid5Project01, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project5 01 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project01)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrGadgetAviStop,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t3,\t \t\tcidGadgetAviStop,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project02)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project04)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t3,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel,\t\tkFltrMovieLoaded, \tNoHelpHere)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tLoadProjectMovie,\tstidMovie5)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t6, \t \t\tcidProjectMovieLoaded,\tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t34, \t\tcidProjectMovieLoaded,\tfFalse)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenDoorCovers,\t\tkidActorsCover)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tProj5Scene,\tNotRel,\t\tSetSceneAndFrame,\tProj5Frame)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel,\t\tkFltrMouseBoth, \tktpc5Project05)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t7,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll, \t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj5Action1)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project06)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t \t\tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t35,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project07)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t10,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\tktpc5Project09)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t11,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, ktpc5Project0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t12,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project0B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t13,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t14,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//14\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t15,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t15,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//15\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj5Action2)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project0C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t16,\t\t\tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t35,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//16\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project07)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t17, \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//17\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t18,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//18\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\tktpc5Project0D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t19,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//19\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, ktpc5Project0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t20,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//20\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project0E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t21,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//21\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t22,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//22\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t23,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t23,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//23\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj5Action3)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project0F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t24,\t \t\tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t35,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//24\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project07)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t25,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//25\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t26,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//26\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\tktpc5Project10)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t27,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//27\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, ktpc5Project0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t28,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//28\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project11)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t29,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//29\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t30,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//30\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t31,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t31,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//31\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project12)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t32,\t \t\tcidClicked, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel, \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//32\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t33,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//33\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t34,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t35,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//34\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t38,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t36,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//35\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t37,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t38,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t36,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//36\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//37\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//38\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Second sequence for project 5\nGOBCHUNK(\"Project5 02 initializer\", kid5Project02, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project5 02 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project14)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project15)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project16)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t \t\tcidClicked, \t\tkidSettingsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSettingsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t11,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t12,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj5Camera1)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project17)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t \t\tcidClicked, \t\tkidSettingsCameras)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSettingsCameras)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t11,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t12,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, ktpc5Project18)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t12,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project19)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t11,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t12,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t9,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t9,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t11,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t12,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t10,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t11,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t12,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc5Project13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t11,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t12,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Exit\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t13,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t14,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t13,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//13\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//14\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//15\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Third sequence for project 5\nGOBCHUNK(\"Project5 03 initializer\", kid5Project03, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project5 03 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project1A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project1B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpc5Project1C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t \tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj5Prop1)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpc5Project1D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t \tcidClicked, \t\tkidActorsPropBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsPropBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t \tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, ktpc5Project1E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrActorIn|kFltrActorOut,\tktpc5Project1F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidActorPlaced, \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t \tcidActorPlacedOutOfView,\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project20)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t \t\tcidClicked, \t\tkidActorsTransform)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsTransform)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSimulateClick,\t\tkidActorsTransform)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project21)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t \t\tcidClicked, \t\tkidActorsShrink)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsShrink)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project22)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t11,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t12,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//15\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//16\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//17\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Fourth sequence for project 5\nGOBCHUNK(\"Project5 04 initializer\", kid5Project04, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project5 04 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project24)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project25)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj5Action4)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project26)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t \t\tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t15,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project27)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\tktpc5Project28)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t7,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, ktpc5Project0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project29)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t11,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project2A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t12,\t \t\tcidClicked, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel, \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t18,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//15\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t18,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//16\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//17\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//18\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Fifth sequence for project 5\nGOBCHUNK(\"Project5 05 initializer\", kid5Project05, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project5 05 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project2B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project2C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc5Project2D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t\tcidClicked, \t\tkidSoundsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj5SoundsEfx1)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc5Project2E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t\tcidClicked, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrBrwSelect,\tktpc5Project2F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t7,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrBrwOk, NoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project27)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t \tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidClicked, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//9\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc5Project30)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t11,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project31)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t12,\t \t\tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t18,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSimulateClick,\t\tkidCutCopyPaste)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project32)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t13,\t \t\tcidClicked, \t\tkidCCPCut)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidCCPCut)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t18,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project27)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t14,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project33)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t15,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//15\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t16,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//16\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t17,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t18,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//17\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t21,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t19,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//18\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t20,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t21,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t19,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//19\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//20\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//21\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Sixth sequence for project 5\nGOBCHUNK(\"Project5 06 initializer\", kid5Project06, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project5 06 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project34)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project35)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpc5Project36)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t \tcidClicked, \t\tkidActorsCover)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsCover)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t \tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj5Actor1)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrMouseBoth,\t\tktpc5Project00)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t \tcidClicked, \t\tkidActorsBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidActorsBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t \tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, ktpc5Project37)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,  \tkFltrActorIn|kFltrActorOut,\tktpc5Project38)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t8,\t\t \tcidActorPlaced, \tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t4,\t\t \tcidActorPlacedOutOfView,\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,  \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project39)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t \t\tcidClicked, \t\tkidActorsTransform)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsTransform)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSimulateClick,\t\tkidActorsTransform)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project3C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t \t\tcidClicked, \t\tkidActorsShrink)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsShrink)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project3D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t11,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t12,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//15\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//16\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//17\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Seventh sequence for project 5\nGOBCHUNK(\"Project5 07 initializer\", kid5Project07, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project5 07 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project3E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project3F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj5Action5)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project40)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t \t\tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project51)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\tktpc5Project41)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t7,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, ktpc5Project0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project42)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t11,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t12,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t13,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t14,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//15\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//16\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//17\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Eigth sequence for project 5\nGOBCHUNK(\"Project5 08 initializer\", kid5Project08, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project5 08 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project43)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project44)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj5Action6)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project45)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t \t\tcidClicked, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsActionBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t15,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project51)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect, ktpc5Project46)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t7,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, ktpc5Project0A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project47)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t11,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t11,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project48)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t12,\t \t\tcidClicked, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel, \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t13,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t14,\t\t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t15,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t18,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//15\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t17,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t18,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//16\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//17\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//18\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Ninth sequence for project 5\nGOBCHUNK(\"Project5 09 initializer\", kid5Project09, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project5 09 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project49)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc5Project4A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc5Project4B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t\tcidClicked, \t\tkidActorsTransform)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsTransform)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//4\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc5Project4C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t\t\tcidClicked, \t\tkidActorsShrink)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidActorsShrink)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc5Project4D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t \t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t7,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t8,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t8,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc5Project4F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t\t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t10,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t10,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouseBoth,\t\tktpc5Project13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Exit\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t14,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t14,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//14\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitHelp)\n//15\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitHelp, \t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//16\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Tenth sequence for project 5\nGOBCHUNK(\"Project5 10 initializer\", kid5Project10, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project5 10 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSetNextProject, \t6)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpc5Project50)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t3,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t5,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t4,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\t2,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//2\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(NextClip)\n//5\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tClearStudio,\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrModalClosed|kFltrPortfolioResult,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidQuerySaveDocResult, \t1)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t6,\t\t\tcidQuerySaveDocResult, \t0)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t1,\t\t\tcidQuerySaveDocResult, \t2)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t6,\t\t\tcidPortfolioResult, fTrue)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t1,\t \t\tcidPortfolioResult, NotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Change movies\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tChangeToNextMovie,\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n\n\n\n"
  },
  {
    "path": "src/studio/tbproj6.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n///////////////////////////////////////////////////////////////\n// Project6 table information\n///////////////////////////////////////////////////////////////\n//WAVE_CHUNK (\"studio\\sound\\xxx.WAV\", kwav1Project00)\n\nGOBCHUNK(\"Project6 01 initializer\", kid6Project01, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project6 01 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n\n//\t\t\t\t  inst \t\t\t  \t\treturn  ID0 \t\tnext  \t\tst  ID1 \t\t\t\tID2\n//\t\t\t\t  ----\t\t\t\t\t------\t---\t\t\t----\t\t--\t---\t\t\t\t\t---\n//1\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tOpenAllDoors,\t\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project01)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrGadgetAviStop,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t3,\t \t\tcidGadgetAviStop,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project02)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project04)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t3,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel,\t\tkFltrMovieLoaded, \tNoHelpHere)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tLoadProjectMovie,\tstidMovie4)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t6, \t \t\tcidProjectMovieLoaded,\tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t38,\t \t\tcidProjectMovieLoaded,\tfFalse)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tOpenDoorCovers,\t\tkidSoundsCover)\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tProj4Scene,\tNotRel,\t\tSetSceneAndFrame,\tProj4Frame)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel,\t\tkFltrMouseBoth, \tktpc6Project05)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t7,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll, \t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project06)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8, \t \t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t35,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t36,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t9,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t9,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t35,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project07)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t \t\tcidClicked, \t\tkidFrameRWEnd)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameRWEnd)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t35,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t36,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj6SoundsMus1)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project08)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t11,\t \t\tcidClicked, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t35,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t36,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t12,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\tktpc6Project09)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t13,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, NoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t14,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//14\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project0B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t15,\t\t \tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidClicked, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t35,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//15\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj6SoundsMus2)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project0D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t16,  \t\tcidClicked, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t35,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t36,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//16\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t17,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//17\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\tktpc6Project0E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t18,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//18\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, NoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t19,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//19\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project0F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t20,\t\t \tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidClicked, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t35,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//20\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj6SoundsMus3)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project0D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t21,\t \t\tcidClicked, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t35,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t36,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//21\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t22,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//22\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\tktpc6Project10)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t23,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//23\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, NoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t24,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//24\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project0F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t25, \t\tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidClicked, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t35,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//25\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj6SoundsMus4)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project11)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t26,\t \t\tcidClicked, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsMusicBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t24,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t36,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//26\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t27,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//27\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\tktpc6Project12)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t28,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//28\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, NoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t29,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//29\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project0F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchDescGoto,\t\tfFalse, NotRel, \t30,\t\t \tcidMouseDown, \t\tkidWorkspace)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidClicked, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t35,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//30\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project13)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t31,\t \t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t35,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t36,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//31\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t32,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t32,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t35,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//32\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project14)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t33,\t \t\tcidClicked, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameRW)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel, \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t35,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//33\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t34,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t35,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//34\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project15)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t35,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t36,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//35\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t39,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t37,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//36\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t38,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t39,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t37,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//37\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//38\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//39\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Second sequence for project 6\nGOBCHUNK(\"Project6 02 initializer\", kid6Project02, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project6 02 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project16)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project17)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj6SoundsEfx1)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project18)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t\tcidClicked, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12, \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\tktpc6Project19)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t6,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, NoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project1A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t8,\t\t\tcidClicked, \t\tkidSoundsAttachToCell)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsAttachToCell)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc6Project1B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t9,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project1C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t10,\t \t\tcidClicked, \t\tkidFrameFW)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameFW)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel, \tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t\t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project15)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t14,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t14,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//14\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//15\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//16\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Third sequence for project 6\nGOBCHUNK(\"Project6 03 initializer\", kid6Project03, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project6 03 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project1D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project1E)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tSetBrowserItem,\t\tPrj6SoundsEfx2)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project18)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t\t\tcidClicked, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsEfxBrowser)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12, \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t5,\t \t\tcidBrowserVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwSelect,\tktpc6Project1F)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\t0,\t\t\t6,\t\t\tcidBrowserSelect,\tNotRel)\n\tPROJECT_TABLE(IgnoreParentMatch,\tfFalse,\t0,\t\t\tNotRel,\t\tcidMouseDown,\t\tkidReserveProjects)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrBrwOk, NoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidBrowserOk)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t\t\tcidBrowserOk,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc6Project1B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project20)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t \t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t13,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t10,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t10,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project15)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t14,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t14,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//14\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//15\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//16\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Fourth sequence for project 6\nGOBCHUNK(\"Project6 04 initializer\", kid6Project04, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project6 04 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project21)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project22)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project24)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t \t\tcidClicked, \t\tkidPausesSound)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPausesSound)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t6,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t7,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t5,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t6,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project15)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t6,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t7,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t10,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t8,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t9,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t10,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t8,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//8\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//9\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//10\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Fifth sequence for project 6\nGOBCHUNK(\"Project6 05 initializer\", kid6Project05, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project6 05 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project26)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t3, \t \t\tcidClicked, \t\tkidGadgetHow)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetHow)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t2, \t \t\tcidClicked, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel, \tNotRel,\t\tcidClicked, \t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//2\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project27)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadgetWhy)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t1,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//3\n \tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project28)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t4,\t \t\tcidClicked, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidCutCopyPaste)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel, \tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t13,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSimulateClick,\t\tkidCutCopyPaste)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project29)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t5,\t \t\tcidClicked, \t\tkidCCPActorNuke)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidCCPActorNuke)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t13,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//5\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrActorClicked,\tktpc6Project2A)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t6,\t\t\tcidActorClicked,\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse,\tNotRel,\t\tNotRel,\t\tcidMouseDown,\t\tkidWorkspace) \n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//6\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrEslVisible,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t7,\t \t\tcidEaselVisible,\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//7\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouse|kFltrEslOk|kFltrEslCancel, ktpc6Project2B)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t8,\t\t\tcidEaselOk,\t\t\tNotRel)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel,\t\t13,\t\t\tcidEaselCancel,\t\tNotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfFalse, NotRel,\t\tNotRel,\t\tcidMouseDown,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//8\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project2C)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 0, \t\t\t9,\t \t\tcidClicked, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidPlay)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidClicked, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidSoundsPlayOnce)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t  \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t13,\t \t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//9\n\tPROJECT_TABLE(StateCondGoto,\t\tNotRel, NotRel, \t10,\t \t\tkidPlay,\t\t\tkstDefault)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrMoviePlaying,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse, 2, \t\t\t10,\t\t\tcidMviePlaying, \tfFalse)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidMviePlaying, \tfTrue)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue, \tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//10\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetHelpAlarm, \t\t90)\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel,\t\tSetBlinkingGadget, \tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth|kFltrAlarmOff,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel, \t11,\t\t\tcidHelpAlarmOff,\tNotRel)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n//11\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel,\t\tkFltrMouseBoth,\t\tktpc6Project15)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel,\t\tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidFrameBackground)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t0, \t\t\tNotRel,\t\tcidClicked, \t\tkidGadget)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidGadget)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfTrue,\t0, \t\t\t12,\t \t\tcidClicked, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse, 0, \t\t\tNotRel,\t\tcidMouseDown, \t\tkidExit)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfTrue,\tNotRel, \t13,\t\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel,\t\tNotRel, \t\t\tNotRel)\n// Exit\n//12\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcExitHelp)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t14,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Deviate\n//13\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpcDeviation)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t15,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t16,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t14,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\tPrevState,\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//14\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//15\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//16\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n\n// Sixth sequence for project 6\nGOBCHUNK(\"Project6 06 initializer\", kid6Project06, kgokkNormal)\n\tDEFAULT_POSITION( 0, 0, 0)\nENDCHUNK\nCREATE_ANIM(\"Project6 06 setup\")\n\t\n// Init the table, then fill it up the project\n\tINITIALIZE_TABLE()\n//1\n\tPROJECT_TABLE(SpecialInstr, \t\tfTrue, \tNotRel,\t \tNotRel, \tSetNextProject, \t5)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState3, \tNotRel, \tkFltrMouseBoth, \tktpc6Project2D)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 1, \t\t\t3,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 2, \t\t\t5,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 3, \t\t\t4,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(MatchChildrenGoto, \tfFalse, 4, \t\t\t2,\t\t\tcidClicked, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreChildren,\t\tfFalse, 0, \t\t\tNotRel,\t \tcidMouseDown, \t\tkgobProject)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t\tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitMM)\n//2\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitMM, \t\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(QuitGadgetHelp)\n//3\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tQuitGadgetHelp,\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(Projects Room)\n//4\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tProjectsRoom,\t\tNotRel)\n\tPROJECT_TABLE(JumpToState,\t\t\tNotRel,\tfTrue,\t\tPrevState,\tNotRel,\t\t\t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Special(NextClip)\n//5\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tClearStudio,\tNotRel)\n\tPROJECT_TABLE(InitState, \t\t\tNotRel, ParState2, \tNotRel, \tkFltrMouse|kFltrModalClosed|kFltrPortfolioResult,\tNoHelpHere)\n\tPROJECT_TABLE(WaitEvent, \t\t\tNotRel, NotRel,\t\tNotRel, \tNotRel, \t\t\tNotRel)\n\tPROJECT_TABLE(IgnoreMatch,\t\t\tfFalse,\t2, \t\t\tNotRel,\t\tcidQuerySaveDocResult, \t1)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t6,\t\t\tcidQuerySaveDocResult, \t0)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t1,\t\t\tcidQuerySaveDocResult, \t2)\n\tPROJECT_TABLE(MatchGoto,\t\t\tfFalse,\t2, \t\t\t6,\t\t\tcidPortfolioResult, fTrue)\n\tPROJECT_TABLE(MatchAllGoto,\t\t\tfFalse,\tNotRel,\t\t1,\t \t\tcidPortfolioResult, NotRel)\n\tPROJECT_TABLE(IgnoreAll,\t\t\tfTrue, \tNotRel, \tNotRel,\t \tcidMouseDown, \t\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// Change movies\n//6\n\tPROJECT_TABLE(SpecialInstr, \t\tNotRel, fTrue,\t \tNotRel, \tChangeToNextMovie,\tNotRel)\n\tPROJECT_TABLE(EndState, \t\t\tNotRel, NotRel, \tNotRel, \tNotRel, \t\t\tNotRel)\n// *End of the table*\n\tPROJECT_TABLE(EndTable,0,0,0,0,0)\t// End of File\n\n\t// Calculate states, build our NextState jump table, then run this thingy\n\tRunScriptGob(kidSequenceParent, kchidScript5);\n\tRunScriptGob(kidSequenceParent, kchidScript2);\n\tRunScriptGob(kidSequenceParent, kchidScript1);\n\tDestroyThis();\nENDCHUNK\n"
  },
  {
    "path": "src/studio/tgob.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n  tgob.cpp\n\n  Author: Sean Selitrennikoff\n\n  Date: June, 1995\n\n  This file contains all functionality for a whole lite text-gob.\n\n***************************************************************************/\n\n#include \"studio.h\"\n\nASSERTNAME\nRTCLASS(TGOB)\n\n/****************************************************\n *\n * Constructor for text gobs.\n *\n ****************************************************/\nTGOB::TGOB(GCB *pgcb) : GOB(pgcb)\n{\n    _acrFore = kacrBlack;\n    _acrBack = kacrClear;\n    _tav = tavTop;\n    _tah = tahCenter;\n    _onn = vapp.OnnDefVariable();\n    _dypFont = vapp.DypTextDef();\n}\n\n/****************************************************\n *\n * Constructor for text gobs.\n *\n ****************************************************/\nTGOB::TGOB(long hid) : GOB(hid)\n{\n    _acrFore = kacrBlack;\n    _acrBack = kacrClear;\n}\n\n/***************************************************************************\n *\n * Draw this text.\n *\n * Parameters:\n *\tpgnv - The environment to write to.\n *  prcClip - The clipping rectangle.\n *\n * Returns:\n *  None.\n *\n ***************************************************************************/\nvoid TGOB::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n\n    RC rc, rcText;\n    long xp, yp;\n    STN stnDraw(_stn);\n\n    // Use a temporary stn here for the displayed text. For example, the tgob\n    // text may be 'hello', but the dispayed text may be 'hel..'. This means\n    // any dots will be added to the displayed string if required every time\n    // we pass through here. If we don't do this then the following would\n    // happen. On the first pass through here can find that we need to add\n    // the dots and left justify the text, (Eg 'hello' becomes 'hel..'). On\n    // the next pass however, we would find that 'hel..' does indeed fit in the\n    // tgob ok and we would centre justify it. The user would see the text shift.\n\n    GetRc(&rc, cooLocal);\n\n    /* REVIEW peted: what happens for right-justify?  Why do we have to do\n        this at all?  Why doesn't Kauai just take an RC, and then left-, right-,\n        or center-align as appropriate, depending on the \"SetFontAlign\"\n        setting? */\n    xp = (_tah != tahCenter) ? 0 : rc.Dxp() / 2;\n    yp = (_tav != tavCenter) ? 0 : rc.Dyp() / 2;\n\n    pgnv->SetOnn(_onn);\n    pgnv->SetFontSize(_dypFont);\n\n    // Center justify the text if it fits in the gob. Otherwise left justify it.\n    pgnv->GetRcFromStn(&rcText, &stnDraw, 0, 0);\n\n    if (rcText.Dxp() < rc.Dxp())\n    {\n        pgnv->SetFontAlign(_tah, _tav);\n        pgnv->DrawStn(&stnDraw, xp, yp, _acrFore, _acrBack);\n    }\n    else\n    {\n        STN stnDots;\n        RC rcDots;\n        int iCh;\n\n        stnDots.SetSz(PszLit(\"..\"));\n        pgnv->GetRcFromStn(&rcDots, &stnDots, 0, 0);\n\n        for (iCh = stnDraw.Cch() - 1; iCh >= 0; --iCh)\n        {\n            stnDraw.Delete(iCh);\n            stnDraw.FAppendStn(&stnDots);\n\n            pgnv->GetRcFromStn(&rcText, &stnDraw, 0, 0);\n\n            if (rcText.Dxp() < rc.Dxp())\n            {\n                pgnv->SetFontAlign(tahLeft, _tav);\n                pgnv->DrawStn(&stnDraw, 0, yp, _acrFore, _acrBack);\n\n                break;\n            }\n        }\n    }\n}\n\n/****************************************************\n *\n * Create Tgob's for any of the text based browsers\n * \t\tusing the font specified by idsFont\n * Static routine\n * Parameters\n *\t\tkidFrm = kid of text frame\n *\t\tidsFont = string registry id\n *\t\ttav = text align vertical\n *\n ****************************************************/\nPTGOB TGOB::PtgobCreate(long kidFrm, long idsFont, long tav, long hid)\n{\n    RC rcRel;\n    RC rcAbs;\n    PGOB pgob;\n    STN stn;\n    GCB gcb;\n    long onn;\n    PTGOB ptgob;\n\n    rcRel.xpLeft = rcRel.ypTop = krelZero;\n    rcRel.xpRight = rcRel.ypBottom = krelOne;\n    rcAbs.Set(0, 0, 0, 0);\n\n    pgob = ((APP *)vpappb)->Pkwa()->PgobFromHid(kidFrm);\n\n    if (pgob == pvNil)\n        return pvNil;\n\n    if (hidNil == hid)\n        hid = GOB::HidUnique();\n    gcb.Set(hid, pgob, fgobNil, kginDefault, &rcAbs, &rcRel);\n\n    if (pvNil == (ptgob = NewObj TGOB(&gcb)))\n        return pvNil;\n\n    if (idsFont != idsNil)\n    {\n        PSTDIO pstdio;\n\n        pstdio = (PSTDIO)vapp.Pkwa()->PgobFromCls(kclsSTDIO);\n        Assert(pstdio != pvNil, \"Creating a TGOB with no STDIO present\");\n        pstdio->GetStnMisc(idsFont, &stn);\n        vapp.FGetOnn(&stn, &onn); //  Ignore failure\n        if (onn != onnNil)\n            ptgob->SetFont(onn);\n    }\n    else\n        Assert(ptgob->_onn == vapp.OnnDefVariable(), \"Someone else set the _onn?\");\n\n    ptgob->_tav = tav;\n    return ptgob;\n}\n\n/******************************************************************************\n    SetAlign\n        set the text alignment for this TGOB\n\n    Arguments:\n        long tah  --  the horizontal alignment\n        long tav  --  the vertical alignment\n************************************************************ PETED ***********/\nvoid TGOB::SetAlign(long tah, long tav)\n{\n    if (tah != tahLim)\n        _tah = tah;\n    if (tav != tavLim)\n        _tav = tav;\n}\n\n/******************************************************************************\n    GetAlign\n        Gets the text alignment for this TGOB\n\n    Arguments:\n        long *ptah  --  pointer to take the horizontal alignment\n        long *ptav  --  pointer to take the vertical alignment\n************************************************************ PETED ***********/\nvoid TGOB::GetAlign(long *ptah, long *ptav)\n{\n    if (ptah != pvNil)\n        *ptah = _tah;\n    if (ptav != pvNil)\n        *ptav = _tav;\n}\n\n#ifdef DEBUG\n\n/*****************************************************************************\n *\n *\tMark memory used by the TGOB\n *\n *\tParameters:\n *\t\tNone.\n *\n *\tReturns:\n *\t\tNothing.\n *\n *****************************************************************************/\nvoid TGOB::MarkMem(void)\n{\n    AssertThis(0);\n\n    TGOB_PAR::MarkMem();\n}\n\n/*****************************************************************************\\\n *\n *\tAssert the validity of the TGOB\n *\n *\tParameters:\n *\t\tgrf - bit array of options.\n *\n *\tReturns:\n *\t\tNothing.\n *\n\\*****************************************************************************/\nvoid TGOB::AssertValid(ulong grf)\n{\n    TGOB_PAR::AssertValid(fobjAllocated);\n}\n\n#endif // DEBUG\n"
  },
  {
    "path": "src/studio/tooltips.h",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#define gobBalloonToolTip 0x00016006\n\n#define wavVO200a 0\n#define wavVO201a 1\n#define wavVO202a 2\n#define wavVO204b 3\n#define wavVO205a 4\n#define wavVO206a 5\n#define wavVO203a 6\n#define wavVO207a 7\n#define wavVO208a 8\n#define wavVO216a 9\n#define wavVO217b 10\n#define wavVO218a 11\n#define wavVO208a 12\n#define wavVO220a 13\n#define wavVO221b 14\n#define wavVO223a 15\n#define wavVO224a 16\n#define wavVO220a 17\n#define wavVO225b 18\n#define wavVO226a 19\n#define wavVO227a 20\n#define wavVO228a 21\n#define wavVO229a 22\n#define wavVO232a 23\n#define wavVO234a 24\n#define wavVO236a 25\n#define wavVO237a 26\n#define wavVO238a 27\n#define wavVO239b 28\n#define wavVO240a 29\n#define wavVO241a 30\n#define wavVO242a 31\n#define wavVO243a 32\n#define wavVO244b 33\n#define wavVO246a 34\n#define wavVO274b 35\n#define wavVO248a 36\n#define wavVO249a 37\n#define wavVO250a 38\n#define wavVO251a 39\n#define wavVO252a 40\n#define wavVO253a 41\n#define wavVO255a 42\n#define wavVO256a 43\n#define wavVO257a 44\n#define wavVO260a 45\n#define wavVO260a 46\n#define wavVO261a 47\n#define wavVO262a 48\n#define wavVO264a 49\n#define wavVO265a 50\n#define wavVO266b 51\n#define wavVO267a 52\n#define wavVO268a 53\n#define wavVO269b 54\n#define wavVO272a 55\n#define wavVO273a 56\n#define wavVO274a 57\n#define wavVO275a 58\n#define wavVO276a 59\n#define wavVO280C 60\n#define wavVO281a 61\n"
  },
  {
    "path": "src/studio/utest.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n// This is the source file for 3dmovie.chk (was utest.chk)\n\n#include \"framedef.h\"\n#include \"socdef.h\"\n#include \"kidgs.chh\"\n\n// Localized strings\n#include \"studio\\utestgst.cht\"\n\n//\n// Initial Palette\n//\nPALETTECHUNK (\"Initial Palette\", kcnoGlcrInit, \"studio\\bmp\\homelogo.bmp\")\n\n//\n// Home Logo\n//\nCHUNK (kctgMbmp kcnoMbmpHomeLogo \"Home Logo\")\n\tPACK BITMAP (0 0 0) \"studio\\bmp\\homelogo.bmp\"\nENDCHUNK\n\n//\n// Splash Screen\n//\nCHUNK (kctgMbmp kcnoMbmpSplash \"Splash Screen\")\n\tPACK BITMAP (0 0 0) \"studio\\bmp\\splash.bmp\"\nENDCHUNK\n\n//\n// Splash Sound\n//\nCHUNK (kctgMidi kcnoMidiSplash \"Splash Sound\")\n\tMIDI \"studio\\bmp\\splash.mid\"\nENDCHUNK\n\n//\n// Studio filenames\n//\nCHUNK (kctgGst kcnoGstStudioFiles \"Studio Filenames\")\n\tLONG\n\tGST(4)\n\tITEM \"studio\"\t\t\t1048576 // 1MB cache\nENDCHUNK\n\n\n//\n// Building filenames\n//\nCHUNK (kctgGst kcnoGstBuildingFiles \"Building Filenames\")\n\tLONG\n\tGST(4)\t\t\t\t\t \n\tITEM \"building\"\t\t\t1572864 \t// 1.5MB cache\n\tITEM \"bldghd\"\t\t\t1048576\t\t// 1 MB cache\nENDCHUNK\n\n\n//\n// Shared filenames\n//\nCHUNK (kctgGst kcnoGstSharedFiles \"Shared Filenames\")\n\tLONG\n\tGST(4)\n\tITEM \"shared\"\t\t\t524288 \t// 512K cache\n\tITEM \"sharecd\"\t\t\t98304 \t// 96K cache\n\tITEM \"help\"\t\t\t\t524288 \t// 512K cache\n\tITEM \"helpaud\"\t\t\t0\nENDCHUNK\n\n//\n// Shade table...256x16 shade table generated by Nvarma 9/16/95\n//\n\nCHUNK('TMAP', 0, \"\")\n\tPACK BYTE\n\t0x01 0x00 0x03 0x03 0x00 0x01 0x03 0x02    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x01 0x10 0x00    // '????????' \n\t0x00 0x00 0x00 0x00 0x00 0x01 0x02 0x03    // '????????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF 0x00 0x01 0x02 0x03    // '����????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF 0x00 0x01 0x02 0x03    // '����????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF 0x00 0x01 0x02 0x03    // '����????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF 0x00 0x01 0x02 0x03    // '����????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF 0x00 0x01 0x02 0x03    // '����????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF 0x00 0x01 0x02 0x03    // '����????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF 0x00 0x01 0x02 0x03    // '����????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF 0x00 0x01 0x02 0x03    // '����????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF 0x00 0x01 0x02 0x03    // '����????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF 0x00 0x01 0x02 0x03    // '����????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF 0x00 0x01 0x02 0x03    // '����????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF 0x00 0x01 0x02 0x03    // '����????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF 0x00 0x01 0x02 0x03    // '����????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF 0x00 0x01 0x02 0x03    // '����????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF 0x00 0x01 0x02 0x03    // '����????' \n\t0x04 0x05 0x06 0x07 0x08 0x09 0x0A 0x0B    // '????????' \n\t0x0C 0x0D 0x0E 0x0F 0x10 0x11 0x12 0x13    // '????????' \n\t0x14 0x15 0x16 0x17 0x18 0x19 0x1A 0x1B    // '????????' \n\t0x1C 0x1D 0x1E 0x1F 0x20 0x21 0x22 0x23    // '???? !\"#' \n\t0x24 0x25 0x26 0x27 0x28 0x29 0x2A 0x2B    // '$%&'()*+' \n\t0x2C 0x2D 0x2E 0x2F 0x30 0x31 0x32 0x33    // ',-./0123' \n\t0x34 0x35 0x36 0x37 0x38 0x39 0x3A 0x3B    // '456789:;' \n\t0x3C 0x3D 0x3E 0x3F 0x40 0x41 0x42 0x43    // '<=>?@ABC' \n\t0x44 0x45 0x46 0x47 0x48 0x49 0x4A 0x4B    // 'DEFGHIJK' \n\t0x4C 0x4D 0x4E 0x4F 0x50 0x51 0x52 0x53    // 'LMNOPQRS' \n\t0x54 0x55 0x56 0x57 0x58 0x59 0x5A 0x5B    // 'TUVWXYZ[' \n\t0x5C 0x5D 0x5E 0x5F 0x60 0x61 0x62 0x63    // '\\]^_`abc' \n\t0x64 0x65 0x66 0x67 0x68 0x69 0x6A 0x6B    // 'defghijk' \n\t0x6C 0x6D 0x6E 0x6F 0x70 0x71 0x72 0x73    // 'lmnopqrs' \n\t0x74 0x75 0x76 0x77 0x78 0x79 0x7A 0x7B    // 'tuvwxyz{' \n\t0x7C 0x7D 0x7E 0x7F 0x80 0x81 0x82 0x83    // '|}~?����' \n\t0x84 0x85 0x86 0x87 0x88 0x89 0x8A 0x8B    // '��������' \n\t0x8C 0x8D 0x8E 0x8F 0x90 0x91 0x92 0x93    // '��������' \n\t0x94 0x95 0x96 0x97 0x98 0x99 0x9A 0x9B    // '��������' \n\t0x9C 0x9D 0x9E 0x9F 0xA0 0xA1 0xA2 0xA3    // '��������' \n\t0xA4 0xA5 0xA6 0xA7 0xA8 0xA9 0xAA 0xAB    // '��������' \n\t0xAC 0xAD 0xAE 0xAF 0xB0 0xB1 0xB2 0xB3    // '��������' \n\t0xB4 0xB5 0xB6 0xB7 0xB8 0xB9 0xBA 0xBB    // '��������' \n\t0xBC 0xBD 0xBE 0xBF 0xC0 0xC1 0xC2 0xC3    // '��������' \n\t0xC4 0xC5 0xC6 0xC7 0xC8 0xC9 0xCA 0xCB    // '��������' \n\t0xCC 0xCD 0xCE 0xCF 0xD0 0xD1 0xD2 0xD3    // '��������' \n\t0xD4 0xD5 0xD6 0xD7 0xD8 0xD9 0xDA 0xDB    // '��������' \n\t0xDC 0xDD 0xDE 0xDF 0xE0 0xE1 0xE2 0xE3    // '��������' \n\t0xE4 0xE5 0xE6 0xE7 0xE8 0xE9 0xEA 0xEB    // '��������' \n\t0xEC 0xED 0xEE 0xEF 0xF0 0xF1 0xF2 0xF3    // '��������' \n\t0xF4 0xF5 0xF6 0xF7 0xF8 0xF9 0xFA 0xFB    // '��������' \n\t0xFC 0xFD 0xFE 0xFF                        // '����' \nENDCHUNK\n"
  },
  {
    "path": "src/studio/utest.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    utest.cpp: Socrates main app class\n\n    Primary Author: ******\n    Review Status: REVIEWED - any changes to this file must be reviewed!\n\n    The APP class handles initialization of the product, and global\n    actions such as resolution-switching, switching between the building\n    and the studio, and quitting.\n\n    The KWA (App KidWorld) is the parent of the gob tree in the product.\n    It also is used to display a splash screen, and to find AVIs on the CD.\n\n***************************************************************************/\n#include \"studio.h\"\n#include \"socres.h\"\n#include \"mminstal.h\"\n\nASSERTNAME\n\n// If the following value is defined, 3DMM displays the dlidDesktopResizing\n// and dlidDesktopResized dialogs before and immediately after res-switching.\n// The current thought is that these dialogs are unnecessary since we only\n// res-switch to 640x480, which should always be safe.  We still display a\n// dialog if the res-switch failed (dlidDesktopWontResize).\n// #define RES_SWITCH_DIALOGS\n\n// If the following value is defined, 3DMM does a run-time performance test\n// of the graphics, fixed-point math, and copying speed at startup and sets\n// _fSlowCPU to fTrue if it thinks 3DMM is running on a slow computer.\n// The current feeling is that we don't have the resources to tweak the\n// thresholds and verify that this gives us the result we want on all\n// computers.\n//#define PERF_TEST\n\n// Duration to display homelogo\nconst ulong kdtsHomeLogo = 4 * kdtsSecond;\n\n// Duration to display splash screen\nconst ulong kdtsSplashScreen = 4 * kdtsSecond;\n\n// Duration before res-switch dialog cancels itself\nconst ulong kdtsMaxResSwitchDlg = 15 * kdtsSecond;\n\n// 2MB cache per source for TAGM\nconst ulong kcbCacheTagm = 2048 * 1024;\n\nstatic PSZ kpszAppWndCls = PszLit(\"3DMOVIE\");\nconst PSZ kpszOpenFile = PszLit(\"3DMMOpen.tmp\");\n\nconst long klwOpenDoc = 0x12123434; // arbitrary wParam for WM_USER\n\nBEGIN_CMD_MAP(APP, APPB)\nON_CID_GEN(cidInfo, &APP::FCmdInfo, pvNil)\nON_CID_GEN(cidLoadStudio, &APP::FCmdLoadStudio, pvNil)\nON_CID_GEN(cidLoadBuilding, &APP::FCmdLoadBuilding, pvNil)\nON_CID_GEN(cidTheaterOpen, &APP::FCmdTheaterOpen, pvNil)\nON_CID_GEN(cidTheaterClose, &APP::FCmdTheaterClose, pvNil)\nON_CID_GEN(cidPortfolioOpen, &APP::FCmdPortfolioOpen, pvNil)\nON_CID_GEN(cidPortfolioClear, &APP::FCmdPortfolioClear, pvNil)\nON_CID_GEN(cidDisableAccel, &APP::FCmdDisableAccel, pvNil)\nON_CID_GEN(cidEnableAccel, &APP::FCmdEnableAccel, pvNil)\nON_CID_GEN(cidInvokeSplot, &APP::FCmdInvokeSplot, pvNil)\nON_CID_GEN(cidExitStudio, &APP::FCmdExitStudio, pvNil)\nON_CID_GEN(cidDeactivate, &APP::FCmdDeactivate, pvNil)\nEND_CMD_MAP_NIL()\n\nAPP vapp;\nPTAGM vptagm;\n\nRTCLASS(APP)\nRTCLASS(KWA)\n\n/***************************************************************************\n    Entry point for a Kauai-based app.\n***************************************************************************/\nvoid FrameMain(void)\n{\n    Debug(vcactAV = 2;) // Speeds up the debug build\n        vapp.Run(fappOffscreen, fgobNil, kginMark);\n}\n\n/******************************************************************************\n    Run\n        Overridden APPB::Run method, so that we can attempt to recover\n        gracefully from a crash.\n\n    Arguments:\n        ulong grfapp -- app flags\n        ulong grfgob -- GOB flags\n        long ginDef  -- default GOB invalidation\n\n************************************************************ PETED ***********/\nvoid APP::Run(ulong grfapp, ulong grfgob, long ginDef)\n{\n    /* Don't bother w/ AssertThis; we'd have to use AssertBaseThis, or\n        possibly the parent's AssertValid, which gets done almost right\n        away anyway */\n\n    _CleanupTemp();\n\n    __try\n    {\n        APP_PAR::Run(grfapp, grfgob, ginDef);\n    }\n    __except (UnhandledExceptionFilter(GetExceptionInformation()))\n    {\n        PDLG pdlg;\n\n        pdlg = DLG::PdlgNew(dlidAbnormalExit, pvNil, pvNil);\n        if (pdlg != pvNil)\n        {\n            pdlg->IditDo();\n            ReleasePpo(&pdlg);\n        }\n\n        _fQuit = fTrue;\n        MVU::RestoreKeyboardRepeat();\n#ifdef WIN\n        ClipCursor(NULL);\n#endif // WIN\n        _CleanUp();\n    }\n}\n\n/***************************************************************************\n    Get the name for the app.  Note that the string comes from a resource\n    in the exe rather than a chunky file since the app name is needed\n    before any chunky files are opened.  The app name should not change\n    even for different products, i.e., Socrates and Playdo will have\n    different _stnProduct, but the same _stnAppName.\n***************************************************************************/\nvoid APP::GetStnAppName(PSTN pstn)\n{\n    AssertBaseThis(0);\n    AssertPo(pstn, 0);\n\n    if (_stnAppName.Cch() == 0)\n    {\n#ifdef WIN\n        SZ sz;\n\n        if (0 != LoadString(vwig.hinst, stidAppName, sz, kcchMaxSz))\n            _stnAppName = sz;\n        else\n            Warn(\"Couldn't read app name\");\n#else  // MAC\n        RawRtn();\n#endif // MAC\n    }\n    *pstn = _stnAppName;\n}\n\n#ifdef DEBUG\nstruct DBINFO\n{\n    long cactAV;\n};\n#endif // DEBUG\n\n/***************************************************************************\n    Init the APP\n***************************************************************************/\nbool APP::_FInit(ulong grfapp, ulong grfgob, long ginDef)\n{\n    AssertBaseThis(0);\n\n    ulong tsHomeLogo;\n    ulong tsSplashScreen;\n    FNI fniUserDoc;\n    long fFirstTimeUser;\n\n    // Only allow one copy of 3DMM to run at a time:\n    if (_FAppAlreadyRunning())\n    {\n        _TryToActivateWindow();\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n#ifdef DEBUG\n    {\n        DBINFO dbinfo;\n\n        dbinfo.cactAV = vcactAV;\n        if (FGetSetRegKey(PszLit(\"DebugSettings\"), &dbinfo, size(DBINFO), fregSetDefault | fregBinary))\n        {\n            vcactAV = dbinfo.cactAV;\n        }\n    }\n#endif // DEBUG\n\n    if (!_FEnsureOS())\n    {\n        _FGenericError(PszLit(\"_FEnsureOS\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    if (!_FEnsureAudio())\n    {\n        _FGenericError(PszLit(\"_FEnsureAudio\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    if (!_FEnsureVideo())\n    {\n        _FGenericError(PszLit(\"_FEnsureVideo\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    _ParseCommandLine();\n\n    // If _ParseCommandLine doesn't set _stnProduct, set to 3dMovieMaker\n    if (!_FEnsureProductNames())\n    {\n        _FGenericError(PszLit(\"_FEnsureProductNames\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    if (!_FFindMsKidsDir())\n    {\n        _FGenericError(PszLit(\"_FFindMsKidsDir\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    // Init product names for tagman & _fniProductDir & potentially _stnProduct\n    if (!_FInitProductNames())\n    {\n        // _FInitProductNames prints its own errors\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    if (!_FOpenResourceFile())\n    {\n        _FGenericError(PszLit(\"_FOpenResourceFile\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    if (!_FReadStringTables())\n    {\n        _FGenericError(PszLit(\"_FReadStringTables\"));\n        _fDontReportInitFailure = fTrue;\n\n        goto LFail;\n    }\n\n    if (!_FEnsureDisplayResolution())\n    { // may call _FInitOS\n        _FGenericError(PszLit(\"_FEnsureDisplayResolution\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    if (!_FEnsureColorDepth())\n    {\n        _FGenericError(PszLit(\"_FEnsureColorDepth\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    if (!APP_PAR::_FInit(grfapp, grfgob, ginDef))\n    { // calls _FInitOS\n        _FGenericError(PszLit(\"APP_PAR::_FInit\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    /* Ensure default font.  Do it here just so we get the error reported\n        early. */\n    OnnDefVariable();\n\n    if (!_FInitKidworld())\n    {\n        _FGenericError(PszLit(\"_FInitKidworld\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    if (!_FDisplayHomeLogo())\n    {\n        _FGenericError(PszLit(\"_FDisplayHomeLogo\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n    tsHomeLogo = TsCurrent();\n\n    if (!_FDetermineIfSlowCPU())\n    {\n        _FGenericError(PszLit(\"_FDetermineIfSlowCPU\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    if (!_FInitTdt())\n    {\n        _FGenericError(PszLit(\"_FInitTdt\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    if (!MTRL::FSetShadeTable(_pcfl, kctgTmap, 0))\n    {\n        _FGenericError(PszLit(\"FSetShadeTable\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    while (TsCurrent() - tsHomeLogo < kdtsHomeLogo)\n        ; // spin until home logo has been up long enough\n\n    if (!_FShowSplashScreen())\n    {\n        _FGenericError(PszLit(\"_FShowSplashScreen\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n    tsSplashScreen = TsCurrent();\n\n    if (!_FPlaySplashSound())\n    {\n        _FGenericError(PszLit(\"_FPlaySplashSound\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    if (!_FGetUserName())\n    {\n        _FGenericError(PszLit(\"_FGetUserName\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    if (!_FGetUserDirectories())\n    {\n        _FGenericError(PszLit(\"_FGetUserDirectories\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    if (!_FReadUserData())\n    {\n        _FGenericError(PszLit(\"_FReadUserData\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    if (!_FInitCrm())\n    {\n        _FGenericError(PszLit(\"_FInitCrm\"));\n        _fDontReportInitFailure = fTrue;\n        goto LFail;\n    }\n\n    while (TsCurrent() - tsSplashScreen < kdtsSplashScreen)\n        ;                   // spin until splash screen has been up long enough\n    Pkwa()->SetMbmp(pvNil); // bring down splash screen\n\n    // If the user specified a doc on the command line, go straight\n    // to the studio.  Otherwise, start the building.\n    GetPortfolioDoc(&fniUserDoc);\n\n    if (fniUserDoc.Ftg() == ftgNil)\n    {\n        // Startup place depends on whether this is the user's first time in.\n        if (!FGetProp(kpridFirstTimeUser, &fFirstTimeUser))\n        {\n            _FGenericError(PszLit(\"FGetProp: kpridFirstTimeUser\"));\n            _fDontReportInitFailure = fTrue;\n            goto LFail;\n        }\n\n        if (!FSetProp(kpridBuildingGob, (fFirstTimeUser ? kgobCloset : kgobLogin)))\n        {\n            _FGenericError(PszLit(\"FSetProp: kpridBuildingGob\"));\n            _fDontReportInitFailure = fTrue;\n            goto LFail;\n        }\n        if (!_FInitBuilding())\n        {\n            _FGenericError(PszLit(\"_FInitBuilding\"));\n            _fDontReportInitFailure = fTrue;\n            goto LFail;\n        }\n    }\n    else\n    {\n        if (!FSetProp(kpridBuildingGob, kgobStudio1))\n        {\n            _FGenericError(PszLit(\"FSetProp: kpridBuildingGob\"));\n            _fDontReportInitFailure = fTrue;\n            goto LFail;\n        }\n        if (!_FInitStudio(&fniUserDoc, fFalse))\n        {\n            _FGenericError(PszLit(\"_FInitStudio\"));\n            _fDontReportInitFailure = fTrue;\n            goto LFail;\n        }\n    }\n\n    EnsureInteractive();\n\n    return fTrue;\nLFail:\n    _fQuit = fTrue;\n\n    if (_fSwitchedResolution)\n    {\n        if (_FSwitch640480(fFalse)) // try to restore desktop\n            _fSwitchedResolution = fFalse;\n    }\n\n    // _fDontReportInitFailure will be true if one of the above functions\n    // has already posted an alert explaining why the app is shutting down.\n    // If it's false, we put up a OOM or generic error dialog.\n    if (!_fDontReportInitFailure)\n    {\n        PDLG pdlg;\n\n        if (vpers->FIn(ercOomHq) || vpers->FIn(ercOomPv) || vpers->FIn(ercOomNew))\n            pdlg = DLG::PdlgNew(dlidInitFailedOOM, pvNil, pvNil);\n        else\n            pdlg = DLG::PdlgNew(dlidInitFailed, pvNil, pvNil);\n        if (pvNil != pdlg)\n            pdlg->IditDo();\n        ReleasePpo(&pdlg);\n    }\n    return fFalse;\n}\n\n/******************************************************************************\n    _CleanupTemp\n        Removes any temp files leftover from a previous execution.\n\n************************************************************ PETED ***********/\nvoid APP::_CleanupTemp(void)\n{\n    FNI fni;\n\n    /* Attempt to cleanup any leftovers from a previous bad exit */\n    vftgTemp = kftgSocTemp;\n    if (fni.FGetTemp())\n    {\n        FTG ftgTmp = vftgTemp;\n        FNE fne;\n\n        if (fne.FInit(&fni, &ftgTmp, 1))\n        {\n            bool fFlushErs = fFalse;\n\n            while (fne.FNextFni(&fni))\n            {\n                if (!fni.FDelete())\n                    fFlushErs = fTrue;\n            }\n\n            if (fFlushErs)\n                vpers->Flush(ercFniDelete);\n        }\n    }\n}\n\n/***************************************************************************\n    Determine if another copy of 3DMM is already running by trying to\n    create a named semaphore.\n***************************************************************************/\nbool APP::_FAppAlreadyRunning(void)\n{\n    AssertBaseThis(0);\n\n#ifdef WIN\n    HANDLE hsem;\n    STN stn;\n\n    GetStnAppName(&stn);\n\n    hsem = CreateSemaphore(NULL, 0, 1, stn.Psz());\n    if (hsem != NULL && GetLastError() == ERROR_ALREADY_EXISTS)\n    {\n        CloseHandle(hsem);\n        return fTrue;\n    }\n#endif // WIN\n#ifdef MAC\n    RawRtn();\n#endif // MAC\n    return fFalse;\n}\n\n/***************************************************************************\n    Try to find another instance of 3DMM and bring its window to front\n    Also, if a document was on the command line, notify the other instance\n***************************************************************************/\nvoid APP::_TryToActivateWindow(void)\n{\n    AssertBaseThis(0);\n\n#ifdef WIN\n    HWND hwnd;\n    STN stn;\n    FNI fniUserDoc;\n\n    GetStnAppName(&stn);\n    hwnd = FindWindow(kpszAppWndCls, stn.Psz());\n    if (NULL != hwnd)\n    {\n        SetForegroundWindow(hwnd);\n        ShowWindow(hwnd, SW_RESTORE); // in case it was minimized\n        _ParseCommandLine();\n        GetPortfolioDoc(&fniUserDoc);\n        if (fniUserDoc.Ftg() != ftgNil)\n            _FSendOpenDocCmd(hwnd, &fniUserDoc); // ignore failure\n    }\n#endif // WIN\n#ifdef MAC\n    RawRtn();\n#endif // MAC\n}\n\n/***************************************************************************\n    If we're not running on at least Win95 or NT 3.51, complain and return\n    fFalse.\n***************************************************************************/\nbool APP::_FEnsureOS(void)\n{\n    AssertBaseThis(0);\n#ifdef WIN\n    DWORD dwVersion;\n    byte bVersionMajor;\n    byte bVersionMinor;\n    PDLG pdlg;\n\n    dwVersion = GetVersion();\n    bVersionMinor = (byte)((dwVersion & 0x0000ff00) >> 8);\n    bVersionMajor = (byte)(dwVersion & 0x000000ff);\n\n    if (bVersionMajor >= 4 || (bVersionMajor == 3 && bVersionMinor >= 51))\n        return fTrue;\n\n    // Put up an alert: OS too old\n    pdlg = DLG::PdlgNew(dlidBadOS, pvNil, pvNil);\n    if (pvNil == pdlg)\n        return fFalse;\n    pdlg->IditDo();\n    ReleasePpo(&pdlg);\n    _fDontReportInitFailure = fTrue;\n#endif // WIN\n#ifdef MAC\n    RawRtn();\n#endif             // MAC\n    return fFalse; // Bad OS\n}\n\n/***************************************************************************\n    Notifies the user if there is no suitable wave-out and/or midi-out\n    hardware.\n***************************************************************************/\nbool APP::_FEnsureAudio(void)\n{\n    AssertBaseThis(0);\n\n#ifdef WIN\n    long cwod; // count of wave-out devices\n    long cmod; // count of midi-out devices\n    bool fShowMessage;\n    PDLG pdlg;\n\n    cwod = waveOutGetNumDevs();\n    if (cwod <= 0)\n    {\n        fShowMessage = fTrue;\n        if (!FGetSetRegKey(kszWaveOutMsgValue, &fShowMessage, size(fShowMessage), fregSetDefault | fregMachine))\n        {\n            Warn(\"Registry query failed\");\n        }\n        if (fShowMessage)\n        {\n            // Put up an alert: no waveout\n            pdlg = DLG::PdlgNew(dlidNoWaveOut, pvNil, pvNil);\n            if (pvNil == pdlg)\n                return fFalse;\n            pdlg->IditDo();\n            fShowMessage = !pdlg->FGetCheck(1); // 1 is ID of checkbox\n            ReleasePpo(&pdlg);\n            if (!fShowMessage)\n            {\n                // ignore failure\n                FGetSetRegKey(kszWaveOutMsgValue, &fShowMessage, size(fShowMessage), fregSetKey | fregMachine);\n            }\n        }\n    }\n    if (HWD_SUCCESS == wHaveWaveDevice(WAVE_FORMAT_2M08)) // 22kHz, Mono, 8bit is our minimum\n    {\n        if (wHaveACM())\n        {\n            // audio compression manager (sound mapper) not installed\n            wInstallComp(IC_ACM);\n            _fDontReportInitFailure = fTrue;\n            return fFalse;\n        }\n\n        if (wHaveACMCodec(WAVE_FORMAT_ADPCM))\n        {\n            // audio codecs not installed\n            wInstallComp(IC_ACM_ADPCM);\n            _fDontReportInitFailure = fTrue;\n            return fFalse;\n        }\n    } // have wave device\n\n    cmod = midiOutGetNumDevs();\n    if (cmod <= 0)\n    {\n        fShowMessage = fTrue;\n        if (!FGetSetRegKey(kszMidiOutMsgValue, &fShowMessage, size(fShowMessage), fregSetDefault | fregMachine))\n        {\n            Warn(\"Registry query failed\");\n        }\n        if (fShowMessage)\n        {\n            // Put up an alert: no midiout\n            pdlg = DLG::PdlgNew(dlidNoMidiOut, pvNil, pvNil);\n            if (pvNil == pdlg)\n                return fFalse;\n            pdlg->IditDo();\n            fShowMessage = !pdlg->FGetCheck(1); // 1 is ID of checkbox\n            ReleasePpo(&pdlg);\n            if (!fShowMessage)\n            {\n                // ignore failure\n                FGetSetRegKey(kszMidiOutMsgValue, &fShowMessage, size(fShowMessage), fregSetKey | fregMachine);\n            }\n        }\n    }\n#endif // WIN\n#ifdef MAC\n    RawRtn();\n#endif // MAC\n    return fTrue;\n}\n\n/***************************************************************************\n    Notifies the user if there is no suitable video playback devices\n***************************************************************************/\nbool APP::_FEnsureVideo(void)\n{\n    if (wHaveMCI(\"AVIVIDEO\"))\n    {\n        // MCI for video is not installed\n        wInstallComp(IC_MCI_VFW);\n        _fDontReportInitFailure = fTrue;\n        return fFalse;\n    }\n\n    if (HIC_SUCCESS != wHaveICMCodec(MS_VIDEO1))\n    {\n        //  video 1 codec not installed\n        wInstallComp(IC_ICM_VIDEO1);\n        _fDontReportInitFailure = fTrue;\n        return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Returns fTrue if color depth is >= 8 bits per pixel.  User is alerted\n    if depth is less than 8, and function fails.  User is warned if depth\n    is greater than 8, unless he has clicked the \"don't show this messsage\n    again\" in the dialog before.\n***************************************************************************/\nbool APP::_FEnsureColorDepth(void)\n{\n    AssertBaseThis(0);\n\n#ifdef WIN\n    HDC hdc;\n    long cbitPixel;\n    PDLG pdlg;\n    bool fShowMessage;\n    bool fDontShowAgain = fFalse;\n\n    hdc = GetDC(NULL);\n    if (NULL == hdc)\n        return fFalse;\n    cbitPixel = GetDeviceCaps(hdc, BITSPIXEL);\n    ReleaseDC(NULL, hdc);\n\n    if (cbitPixel < 8)\n    {\n        // Put up an alert: Not enough colors\n        pdlg = DLG::PdlgNew(dlidNotEnoughColors, pvNil, pvNil);\n        if (pvNil == pdlg)\n            return fFalse;\n        pdlg->IditDo();\n        ReleasePpo(&pdlg);\n        _fDontReportInitFailure = fTrue;\n        return fFalse;\n    }\n    /* FOONE: It's the future, we don't need to worry about running in true-color mode.\n    if (cbitPixel > 8)\n        {\n        // warn user\n        fShowMessage = fTrue;\n        if (!FGetSetRegKey(kszGreaterThan8bppMsgValue, &fShowMessage,\n                size(fShowMessage), fregSetDefault))\n            {\n            Warn(\"Registry query failed\");\n            }\n        if (fShowMessage)\n            {\n            pdlg = DLG::PdlgNew(dlidTooManyColors, pvNil, pvNil);\n            if (pvNil != pdlg)\n                {\n                pdlg->IditDo();\n                fDontShowAgain = pdlg->FGetCheck(1); // 1 is ID of checkbox\n                }\n            ReleasePpo(&pdlg);\n            if (fDontShowAgain)\n                {\n                fShowMessage = fFalse;\n                FGetSetRegKey(kszGreaterThan8bppMsgValue, &fShowMessage,\n                    size(fShowMessage), fregSetKey); // ignore failure\n                }\n            }\n        }\n    */\n#endif // WIN\n#ifdef MAC\n    RawRtn();\n#endif // MAC\n    return fTrue;\n}\n\n/***************************************************************************\n    Dialog proc for Resolution Switch dialog.  Return fTrue (bring down\n    the dialog) if kdtsMaxResSwitchDlg has passed since the dialog was\n    created.\n***************************************************************************/\nbool _FDlgResSwitch(PDLG pdlg, long *pidit, void *pv)\n{\n    AssertPo(pdlg, 0);\n    AssertVarMem(pidit);\n    AssertPvCb(pv, size(long));\n\n    long tsResize = *(long *)pv;\n    long tsCur;\n\n    if (*pidit != ivNil)\n    {\n        return fTrue; // Cancel or OK pressed\n    }\n    else\n    {\n        tsCur = TsCurrent();\n        if (tsCur - tsResize >= kdtsMaxResSwitchDlg)\n            return fTrue;\n    }\n\n    return fFalse;\n}\n\n/***************************************************************************\n    Ensure that the screen is at the user's preferred resolution for 3DMM.\n    If user has no registry preference, we offer to switch, try to switch,\n    and save user's\tpreference.  Registry failures are non-fatal, but\n    failing to create the main window causes this function to fail.\n\n    When this function returns, _fRunInWindow is set correctly and the\n    main app window *might* be created.\n***************************************************************************/\nbool APP::_FEnsureDisplayResolution(void)\n{\n    AssertBaseThis(0);\n\n    PDLG pdlg;\n    long idit;\n    bool fSwitchRes;\n    bool fNoValue;\n    long tsResize;\n\n    if (_FDisplayIs640480())\n    {\n        // System is already 640x480, so ignore registry and run fullscreen\n        _fRunInWindow = fFalse;\n        return fTrue;\n    }\n\n    if (!_FDisplaySwitchSupported())\n    {\n        // System can't switch res, so ignore registry and run in a window\n        _fRunInWindow = fTrue;\n        return fTrue;\n    }\n\n    // See if there's a res switch preference in the registry\n    if (!FGetSetRegKey(kszSwitchResolutionValue, &fSwitchRes, size(fSwitchRes), fregNil, &fNoValue))\n    {\n        // Registry error...just run in a window\n        _fRunInWindow = fTrue;\n        return fTrue;\n    }\n\n    if (!fNoValue)\n    {\n        // User has a preference\n        if (!fSwitchRes)\n        {\n            _fRunInWindow = fTrue;\n            return fTrue;\n        }\n        else // try to switch res\n        {\n            _fRunInWindow = fFalse;\n            if (!_FInitOS())\n            {\n                // we're screwed\n                return fFalse;\n            }\n            if (!_FSwitch640480(fTrue))\n            {\n                _fRunInWindow = fTrue;\n                _RebuildMainWindow();\n                goto LSwitchFailed;\n            }\n            return fTrue;\n        }\n    }\n\n    // User doesn't have a preference yet.  Do the interactive thing.\n#ifdef RES_SWITCH_DIALOGS\n    pdlg = DLG::PdlgNew(dlidDesktopResizing, pvNil, pvNil);\n    if (pvNil == pdlg)\n        return fFalse;\n    idit = pdlg->IditDo();\n    ReleasePpo(&pdlg);\n#else              //! RES_SWITCH_DIALOGS\n    idit = 2; // OK\n#endif             //! RES_SWITCH_DIALOGS\n    if (idit == 1) // cancel\n    {\n        _fRunInWindow = fTrue;\n        // try to set pref to fFalse\n        fSwitchRes = fFalse;\n        goto LWriteReg;\n    }\n    _fRunInWindow = fFalse;\n    if (!_FInitOS())\n        return fFalse;\n    if (!_FSwitch640480(fTrue))\n    {\n        _fRunInWindow = fTrue;\n        _RebuildMainWindow();\n        goto LSwitchFailed;\n    }\n\n    tsResize = TsCurrent();\n#ifdef RES_SWITCH_DIALOGS\n    pdlg = DLG::PdlgNew(dlidDesktopResized, _FDlgResSwitch, &tsResize);\n    idit = ivNil; // if dialog fails to come up, treat like a cancel\n    if (pvNil != pdlg)\n        idit = pdlg->IditDo();\n    ReleasePpo(&pdlg);\n#else                               //! RES_SWITCH_DIALOGS\n    idit = 2; // OK\n#endif                              //! RES_SWITCH_DIALOGS\n    if (idit == 1 || idit == ivNil) // cancel or timeout or dialog failure\n    {\n        _fSwitchedResolution = fFalse;\n        _fRunInWindow = fTrue;\n        _RebuildMainWindow();\n        if (!_FSwitch640480(fFalse)) // restore desktop resolution\n            return fFalse;\n        goto LSwitchFailed;\n    }\n    // try to set pref to fTrue\n    fSwitchRes = fTrue;\n    goto LWriteReg;\n\nLSwitchFailed:\n    pdlg = DLG::PdlgNew(dlidDesktopWontResize, pvNil, pvNil);\n    if (pvNil != pdlg)\n        pdlg->IditDo();\n    ReleasePpo(&pdlg);\n    // try to set pref to fFalse\n    fSwitchRes = fFalse;\nLWriteReg:\n    FGetSetRegKey(kszSwitchResolutionValue, &fSwitchRes, size(fSwitchRes), fregSetKey);\n    return fTrue;\n}\n\n/***************************************************************************\n    Return whether display is currently 640x480\n***************************************************************************/\nbool APP::_FDisplayIs640480(void)\n{\n#ifdef WIN\n    return (GetSystemMetrics(SM_CXSCREEN) == 640 && GetSystemMetrics(SM_CYSCREEN) == 480);\n#endif // WIN\n#ifdef MAC\n    RawRtn();\n    return fFalse;\n#endif // MAC\n}\n\n/***************************************************************************\n    Do OS specific initialization.\n***************************************************************************/\nbool APP::_FInitOS(void)\n{\n    AssertBaseThis(0);\n\n#ifdef WIN\n    long dxpWindow;\n    long dypWindow;\n    long xpWindow;\n    long ypWindow;\n    DWORD dwStyle = 0;\n    STN stnWindowTitle;\n\n    if (_fMainWindowCreated) // If someone else called _FInitOS already,\n        return fTrue;        // we can leave\n\n    if (!FGetStnApp(idsWindowTitle, &stnWindowTitle))\n        return fFalse;\n\n    // register the window classes\n    if (vwig.hinstPrev == hNil)\n    {\n        WNDCLASS wcs;\n\n        wcs.style = CS_BYTEALIGNCLIENT | CS_OWNDC;\n        wcs.lpfnWndProc = _LuWndProc;\n        wcs.cbClsExtra = 0;\n        wcs.cbWndExtra = 0;\n        wcs.hInstance = vwig.hinst;\n        wcs.hIcon = LoadIcon(vwig.hinst, MAKEINTRESOURCE(IDI_APP));\n        wcs.hCursor = LoadCursor(NULL, IDC_ARROW);\n        wcs.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);\n        wcs.lpszMenuName = 0;\n        wcs.lpszClassName = kpszAppWndCls;\n        if (!RegisterClass(&wcs))\n            return fFalse;\n\n        wcs.lpfnWndProc = _LuMdiWndProc;\n        wcs.lpszClassName = PszLit(\"MDI\");\n        if (!RegisterClass(&wcs))\n            return fFalse;\n    }\n\n    _GetWindowProps(&xpWindow, &ypWindow, &dxpWindow, &dypWindow, &dwStyle);\n\n    if ((vwig.hwndApp = CreateWindow(kpszAppWndCls, stnWindowTitle.Psz(), dwStyle, xpWindow, ypWindow, dxpWindow,\n                                     dypWindow, hNil, hNil, vwig.hinst, pvNil)) == hNil)\n    {\n        return fFalse;\n    }\n\n    if (hNil == (vwig.hdcApp = GetDC(vwig.hwndApp)))\n        return fFalse;\n\n    // set a timer, so we can idle regularly.\n    if (SetTimer(vwig.hwndApp, 0, 1, pvNil) == 0)\n        return fFalse;\n\n    _haccel = LoadAccelerators(vwig.hinst, MIR(acidMain));\n    _haccelGlobal = LoadAccelerators(vwig.hinst, MIR(acidGlobal));\n    vwig.haccel = _haccel;\n\n    ShowWindow(vwig.hwndApp, vwig.wShow);\n    _fMainWindowCreated = fTrue;\n#endif // WIN\n#ifdef MAC\n    RawRtn();\n#endif // MAC\n    return fTrue;\n}\n\n/***************************************************************************\n    Determine window size, position, and window style.  Note that you\n    should pass in the current dwStyle if the window already exists.  If\n    the window does not already exist, pass in 0.\n***************************************************************************/\nvoid APP::_GetWindowProps(long *pxp, long *pyp, long *pdxp, long *pdyp, DWORD *pdwStyle)\n{\n    AssertBaseThis(0);\n    AssertVarMem(pxp);\n    AssertVarMem(pyp);\n    AssertVarMem(pdxp);\n    AssertVarMem(pdyp);\n    AssertVarMem(pdwStyle);\n\n    if (!_fRunInWindow)\n    {\n        *pdwStyle |= (WS_POPUP | WS_CLIPCHILDREN);\n        *pdwStyle &= ~(WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX);\n        *pxp = 0;\n        *pyp = 0;\n        *pdxp = GetSystemMetrics(SM_CXSCREEN);\n        *pdyp = GetSystemMetrics(SM_CYSCREEN);\n    }\n    else\n    {\n        RCS rcs;\n        *pdwStyle |= (WS_OVERLAPPED | WS_CLIPCHILDREN | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX);\n        *pdwStyle &= ~WS_POPUP;\n        rcs.left = 0;\n        rcs.top = 0;\n        rcs.right = 640;\n        rcs.bottom = 480;\n        AdjustWindowRect(&rcs, *pdwStyle, fFalse);\n        *pdxp = rcs.right - rcs.left;\n        *pdyp = rcs.bottom - rcs.top;\n        // Center window on screen\n        // REVIEW *****: how do you adjust window appropriately for taskbar?\n        *pxp = LwMax((GetSystemMetrics(SM_CXSCREEN) - *pdxp) / 2, 0);\n        *pyp = LwMax((GetSystemMetrics(SM_CYSCREEN) - *pdyp) / 2, 0);\n    }\n}\n\n/***************************************************************************\n    Change main window properties based on whether we're running in a\n    window or fullscreen.\n***************************************************************************/\nvoid APP::_RebuildMainWindow(void)\n{\n    AssertBaseThis(0);\n    Assert(_fMainWindowCreated, 0);\n\n#ifdef WIN\n    long dxpWindow;\n    long dypWindow;\n    long xpWindow;\n    long ypWindow;\n    DWORD dwStyle;\n\n    dwStyle = GetWindowLong(vwig.hwndApp, GWL_STYLE);\n    _GetWindowProps(&xpWindow, &ypWindow, &dxpWindow, &dypWindow, &dwStyle);\n    SetWindowLong(vwig.hwndApp, GWL_STYLE, dwStyle);\n    SetWindowPos(vwig.hwndApp, HWND_TOP, xpWindow, ypWindow, dxpWindow, dypWindow, 0);\n#endif // WIN\n#ifdef MAC\n    RawRtn();\n#endif // MAC\n}\n\n/***************************************************************************\n    Open \"3D Movie Maker.chk\" or \"3DMovie.chk\"\n***************************************************************************/\nbool APP::_FOpenResourceFile(void)\n{\n    AssertBaseThis(0);\n    AssertPo(&_fniProductDir, ffniDir);\n\n    FNI fni;\n    STN stn;\n\n    fni = _fniProductDir;\n    if (!fni.FSetLeaf(&_stnProductLong, kftgChunky) || tYes != fni.TExists())\n    {\n        fni = _fniProductDir;\n        if (!fni.FSetLeaf(&_stnProductShort, kftgChunky) || tYes != fni.TExists())\n        {\n            fni.GetStnPath(&stn);\n            _FCantFindFileDialog(&stn); // ignore failure\n            return fFalse;\n        }\n    }\n    _pcfl = CFL::PcflOpen(&fni, fcflNil);\n    if (pvNil == _pcfl)\n        return fFalse;\n    return fTrue;\n}\n\n/***************************************************************************\n    Report that 3DMM can't find a file named pstnFile\n***************************************************************************/\nbool APP::_FCantFindFileDialog(PSTN pstnFile)\n{\n    AssertBaseThis(0);\n    AssertPo(pstnFile, 0);\n\n    PDLG pdlg;\n\n    pdlg = DLG::PdlgNew(dlidCantFindFile, pvNil, pvNil);\n    if (pvNil == pdlg)\n        return fFalse;\n\n    if (!pdlg->FPutStn(1, pstnFile))\n    {\n        ReleasePpo(&pdlg);\n        return fFalse;\n    }\n    pdlg->IditDo();\n    ReleasePpo(&pdlg);\n    _fDontReportInitFailure = fTrue;\n    return fTrue;\n}\n\n/***************************************************************************\n    Report that 3DMM ran into a generic error\n***************************************************************************/\nbool APP::_FGenericError(FNI *path)\n{\n    STN stn;\n    path->GetStnPath(&stn);\n    return _FGenericError(&stn);\n}\n\n/***************************************************************************\n    Report that 3DMM ran into a generic error\n***************************************************************************/\nbool APP::_FGenericError(PSTZ message)\n{\n    STN stn = message;\n    return _FGenericError(&stn);\n}\n/***************************************************************************\n    Report that 3DMM ran into a generic error\n***************************************************************************/\nbool APP::_FGenericError(PSTN message)\n{\n    AssertBaseThis(0);\n\n    PDLG pdlg;\n\n    pdlg = DLG::PdlgNew(dlidGenericErrorBox, pvNil, pvNil);\n    if (pvNil == pdlg)\n        return fFalse;\n\n    if (!pdlg->FPutStn(1, message))\n    {\n        ReleasePpo(&pdlg);\n        return fFalse;\n    }\n    pdlg->IditDo();\n    ReleasePpo(&pdlg);\n    _fDontReportInitFailure = fTrue;\n    return fTrue;\n}\n\n/******************************************************************************\n    Finds _fniUsersDir, _fniMelanieDir, and _fniUserDir.  _fniUserDir is\n    set from the registry.  This function also determines if this is a first\n    time user.\n************************************************************ PETED ***********/\nbool APP::_FGetUserDirectories(void)\n{\n    AssertBaseThis(0);\n    AssertPo(&_fniMsKidsDir, ffniDir);\n    Assert(_stnUser.Cch() > 0, \"need valid stnUser!\");\n\n    SZ szDir;\n    STN stn;\n    STN stnT;\n    STN stnUsers;\n    bool fFirstTimeUser;\n\n    // First, find the Users directory\n    _fniUsersDir = _fniMsKidsDir;\n    if (!FGetStnApp(idsUsersDir, &stnUsers))\n        return fFalse;\n    if (!_fniUsersDir.FDownDir(&stnUsers, ffniMoveToDir))\n    {\n        _fniUsersDir.GetStnPath(&stn);\n        if (!stn.FAppendStn(&stnUsers))\n            return fFalse;\n        _FCantFindFileDialog(&stn); // ignore failure\n        return fFalse;\n    }\n    AssertPo(&_fniUsersDir, ffniDir);\n\n    // Find Melanie's dir\n    _fniMelanieDir = _fniUsersDir;\n    if (!FGetStnApp(idsMelanie, &stn))\n        return fFalse;\n    if (!_fniMelanieDir.FDownDir(&stn, ffniMoveToDir))\n    {\n        _fniMelanieDir.GetStnPath(&stnT);\n        if (!stnT.FAppendStn(&stn))\n            return fFalse;\n        _FCantFindFileDialog(&stnT); // ignore failure\n        return fFalse;\n    }\n    AssertPo(&_fniMelanieDir, ffniDir);\n\n    fFirstTimeUser = fFalse;\n    szDir[0] = chNil;\n    if (!FGetSetRegKey(kszHomeDirValue, szDir, size(szDir), fregSetDefault | fregString))\n    {\n        return fFalse;\n    }\n    stn.SetSz(szDir);\n    if (stn.Cch() == 0 || !_fniUserDir.FBuildFromPath(&stn, kftgDir) || tYes != _fniUserDir.TExists())\n    {\n        // Need to (find or create) and go to user's directory\n        fFirstTimeUser = fTrue;\n        _fniUserDir = _fniUsersDir;\n\n        // Ensure that user's root directory exists\n        if (!_fniUserDir.FDownDir(&_stnUser, ffniMoveToDir))\n        {\n            if (!_fniUserDir.FDownDir(&_stnUser, ffniCreateDir | ffniMoveToDir))\n                return fFalse;\n        }\n\n        // Try to write path to user dir to the registry\n        _fniUserDir.GetStnPath(&stn);\n        stn.GetSz(szDir);\n        FGetSetRegKey(kszHomeDirValue, szDir, CchSz(szDir) + kcchExtraSz,\n                      fregSetKey | fregString); // ignore failure\n    }\n#ifdef WIN\n    if (SetCurrentDirectory(szDir) == FALSE)\n        return fFalse;\n#else  //! WIN\n    RawRtn();\n#endif //! WIN\n    AssertPo(&_fniUserDir, ffniDir);\n\n    if (!FSetProp(kpridFirstTimeUser, fFirstTimeUser))\n        return fFalse;\n    return fTrue;\n}\n\n/******************************************************************************\n    _FGetUserName\n        Attempts to get the current user name.  May return a default value\n        if we get a \"non-serious\" error (as defined in the spec).\n\n    Arguments:\n        None\n\n    Returns:  fTrue if _stnUser has something usable in it on return\n\n************************************************************ PETED ***********/\nbool APP::_FGetUserName(void)\n{\n    AssertBaseThis(0);\n\n#ifdef WIN\n    bool fRet = fTrue;\n    DWORD dwCbUser = size(SZ);\n    SZ szT;\n\n    switch (WNetGetUser(NULL, szT, &dwCbUser))\n    {\n    case ERROR_EXTENDED_ERROR: {\n        DWORD dwError;\n        SZ szProvider;\n        STN stnMessage;\n\n        if (WNetGetLastError(&dwError, szT, size(SZ), szProvider, size(SZ)) == NO_ERROR)\n        {\n            STN stnFormat;\n\n            if (FGetStnApp(idsWNetError, &stnFormat))\n            {\n                stnMessage.FFormat(&stnFormat, szProvider, dwError, szT);\n                TGiveAlertSz(stnMessage.Psz(), bkOk, cokExclamation);\n            }\n        }\n        else\n            Bug(\"Call to WNetGetLastError failed; this should never happen\");\n        _stnUser.SetNil();\n        fRet = fFalse;\n        break;\n    }\n\n    case NO_ERROR:\n        _stnUser = szT;\n        if (_stnUser.Cch() > 0)\n            break; // else fall through...\n\n    case ERROR_MORE_DATA:\n    case ERROR_NO_NETWORK:\n    case ERROR_NO_NET_OR_BAD_PATH:\n    default:\n        if (!FGetStnApp(idsDefaultUser, &_stnUser))\n            fRet = fFalse;\n        break;\n    }\n\n    Assert(!fRet || _stnUser.Cch() > 0, \"Bug in _FGetUserName\");\n    return fRet;\n#else  // WIN\n    RawRtn();\n    return fFalse;\n#endif // !WIN\n}\n\n/******************************\n    The user-data structure\n*******************************/\nstruct UDAT\n{\n    long rglw[kcpridUserData];\n};\n\n/***************************************************************************\n    Reads the \"user data\" from the registry and SetProp's the data onto\n    the app\n***************************************************************************/\nbool APP::_FReadUserData(void)\n{\n    AssertBaseThis(0);\n\n    UDAT udat;\n    long iprid;\n\n    ClearPb(&udat, size(UDAT));\n\n    if (!FGetSetRegKey(kszUserDataValue, &udat, size(UDAT), fregSetDefault | fregBinary))\n    {\n        return fFalse;\n    }\n    for (iprid = 0; iprid < kcpridUserData; iprid++)\n    {\n        if (!FSetProp(kpridUserDataBase + iprid, udat.rglw[iprid]))\n            return fFalse;\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Writes the \"user data\" from the app props to the registry\n***************************************************************************/\nbool APP::_FWriteUserData(void)\n{\n    AssertBaseThis(0);\n\n    UDAT udat;\n    long iprid;\n\n    for (iprid = 0; iprid < kcpridUserData; iprid++)\n    {\n        if (!FGetProp(kpridUserDataBase + iprid, &udat.rglw[iprid]))\n            return fFalse;\n    }\n    if (!FGetSetRegKey(kszUserDataValue, &udat, size(UDAT), fregSetKey | fregBinary))\n    {\n        return fFalse;\n    }\n\n    return fTrue;\n}\n\n/******************************************************************************\n    FGetSetRegKey\n        Given a reg key (and option sub-key), attempts to either get or set\n        the current value of the key.  If the reg key is created on a Get\n        (fSetKey == fFalse), the data in pvData will be used to set the\n        default value for the key.\n\n\n    Arguments:\n        PSZ pszValueName  --  The value name\n        void *pvData      --  pointer to buffer to read or write key into or from\n        long cbData       --  size of the buffer\n        ulong grfreg      --  flags describing what we should do\n        bool *pfNoValue  --  optional parameter, takes whether a real registry\n                              error occurred or not\n\n    Returns:  fTrue if all actions necessary could be performed\n\n************************************************************ PETED ***********/\nbool APP::FGetSetRegKey(PSZ pszValueName, void *pvData, long cbData, ulong grfreg, bool *pfNoValue)\n{\n    AssertBaseThis(0);\n    AssertSz(pszValueName);\n    AssertPvCb(pvData, cbData);\n    AssertNilOrVarMem(pfNoValue);\n\n    bool fRet = fFalse;\n    bool fSetKey, fSetDefault, fString, fBinary;\n\n    fSetKey = grfreg & fregSetKey;\n    fSetDefault = grfreg & fregSetDefault;\n    fString = grfreg & fregString;\n    fBinary = grfreg & fregBinary;\n\n#ifdef WIN\n    DWORD dwDisposition;\n    DWORD dwCbData = cbData;\n    DWORD dwType;\n    HKEY hkey = 0;\n\n    if (RegCreateKeyEx((grfreg & fregMachine) ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER, kszSocratesKey, 0, NULL,\n                       REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hkey, &dwDisposition) != ERROR_SUCCESS)\n    {\n        goto LFail;\n    }\n\n    if ((dwDisposition == REG_CREATED_NEW_KEY && fSetDefault) || fSetKey)\n    {\n    LWriteValue:\n        if (fBinary)\n        {\n            dwType = REG_BINARY;\n        }\n        else if (fString)\n        {\n            if (!fSetKey)\n                dwCbData = CchSz((PSZ)pvData) + kcchExtraSz;\n            else\n                Assert(CchSz((PSZ)pvData) < cbData, \"Invalid string for reg key\");\n            dwType = REG_SZ;\n        }\n        else\n        {\n            Assert(cbData == size(DWORD), \"Unknown reg key type\");\n            dwType = REG_DWORD;\n        }\n\n        if (RegSetValueEx(hkey, pszValueName, NULL, dwType, (byte *)pvData, dwCbData) != ERROR_SUCCESS)\n        {\n            goto LFail;\n        }\n    }\n    else\n    {\n        long lwRet;\n\n        if ((lwRet = RegQueryValueEx(hkey, pszValueName, NULL, &dwType, (byte *)pvData, &dwCbData)) != ERROR_SUCCESS)\n        {\n            if (lwRet == ERROR_FILE_NOT_FOUND && fSetDefault)\n                goto LWriteValue;\n            /* If the caller gave us a way to differentiate a genuine registry\n                failure from simply not having set the value yet, do so */\n            if (pfNoValue != pvNil)\n                fRet = *pfNoValue = (lwRet == ERROR_FILE_NOT_FOUND);\n            goto LFail;\n        }\n        Assert(dwType == (DWORD)(fString ? REG_SZ : (fBinary ? REG_BINARY : REG_DWORD)), \"Invalid key type\");\n    }\n    if (pfNoValue != pvNil)\n        *pfNoValue = fFalse;\n    fRet = fTrue;\nLFail:\n    if (hkey != 0)\n        RegCloseKey(hkey);\n#else  // WIN\n    RawRtn();\n#endif // !WIN\n    return fRet;\n}\n\n/***************************************************************************\n    Set the palette and bring up the Microsoft Home Logo\n***************************************************************************/\nbool APP::_FDisplayHomeLogo(void)\n{\n    AssertBaseThis(0);\n    AssertPo(_pcfl, 0);\n\n    BLCK blck;\n    PGL pglclr;\n    PMBMP pmbmp;\n    short bo;\n    short osk;\n\n    if (!_pcfl->FFind(kctgColorTable, kcnoGlcrInit, &blck))\n        return fFalse;\n    pglclr = GL::PglRead(&blck, &bo, &osk);\n    if (pvNil == pglclr)\n        return fFalse;\n    GPT::SetActiveColors(pglclr, fpalIdentity);\n    ReleasePpo(&pglclr);\n\n    if (!_pcfl->FFind(kctgMbmp, kcnoMbmpHomeLogo, &blck))\n        return fFalse;\n    pmbmp = MBMP::PmbmpRead(&blck);\n    if (pvNil == pmbmp)\n        return fFalse;\n    _pkwa->SetMbmp(pmbmp);\n    ReleasePpo(&pmbmp);\n    UpdateMarked();\n    return fTrue;\n}\n\n/***************************************************************************\n    Initialize tag manager\n***************************************************************************/\nbool APP::_FInitProductNames(void)\n{\n    AssertBaseThis(0);\n\n    PGST pgst;\n    BLCK blck;\n\n    // Use kcbCacheTagm of cache per source, don't cache on CD\n\n    vptagm = TAGM::PtagmNew(&_fniMsKidsDir, APP::FInsertCD, kcbCacheTagm);\n    if (vptagm == pvNil)\n    {\n        _FGenericError(PszLit(\"_FInitProductNames: TAGM::PtagmNew\"));\n        return fFalse;\n    }\n\n    if (!_FReadTitlesFromReg(&pgst))\n    {\n        _FGenericError(PszLit(\"_FInitProductNames: _FReadTitlesFromReg\"));\n        goto LFail;\n    }\n\n    if (!vptagm->FMergeGstSource(pgst, kboCur, koskCur))\n    {\n        _FGenericError(PszLit(\"_FInitProductNames: FMergeGstSource\"));\n        goto LFail;\n    }\n\n    if (!_FFindProductDir(pgst))\n    {\n        _FGenericError(PszLit(\"_FInitProductNames: _FFindProductDir\"));\n        goto LFail;\n    }\n\n    if (!vptagm->FGetSid(&_stnProductLong, &_sidProduct))\n    {\n        _FGenericError(PszLit(\"_FInitProductNames: FGetSid\"));\n        goto LFail;\n    }\n\n    ReleasePpo(&pgst);\n    return fTrue;\n\nLFail:\n    ReleasePpo(&pgst);\n    return fFalse;\n}\n\n/***************************************************************************\n    Read the sids and titles of installed 3DMovie products from the registry\n***************************************************************************/\nbool APP::_FReadTitlesFromReg(PGST *ppgst)\n{\n    AssertBaseThis(0);\n    AssertVarMem(ppgst);\n\n#ifdef WIN\n    HKEY hkey = 0;\n    DWORD dwDisposition;\n    DWORD iValue;\n    SZ szSid;\n    STN stnSid;\n    DWORD cchSid = kcchMaxSz;\n    SZ szTitle;\n    STN stnTitle;\n    DWORD cchTitle = kcchMaxSz;\n    PGST pgst;\n    long sid;\n\n    if ((pgst = GST::PgstNew(size(long))) == pvNil)\n        goto LFail;\n    if (RegCreateKeyEx(HKEY_LOCAL_MACHINE, kszProductsKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL,\n                       &hkey, &dwDisposition) != ERROR_SUCCESS)\n    {\n        Warn(\"Missing InstallDirectory registry entry or registry error\");\n        _FGenericError(\"Missing InstallDirectory registry entry or registry error\");\n        goto LFail;\n    }\n\n    for (iValue = 0; RegEnumValue(hkey, iValue, szSid, &cchSid, NULL, NULL, (unsigned char *)szTitle, &cchTitle) !=\n                     ERROR_NO_MORE_ITEMS;\n         iValue++)\n    {\n        stnSid.SetSz(szSid);\n        if (!stnSid.FGetLw(&sid))\n        {\n            Warn(\"Invalid registry name for Products key value\");\n            continue;\n        }\n        stnTitle.SetSz(&szTitle[0]);\n        if (!pgst->FAddStn(&stnTitle, &sid))\n            goto LFail;\n        cchTitle = kcchMaxSz;\n        cchSid = kcchMaxSz;\n    }\n\n    if (pgst->IvMac() == 0)\n    {\n        stnTitle.SetSz(PszLit(\"3D Movie Maker/3DMovie\"));\n        sid = 1;\n        if (!pgst->FAddStn(&stnTitle, &sid))\n        {\n            Warn(\"Failed to add fallback Title!\");\n            goto LFail;\n        }\n    }\n#else  //! WIN\n    RawRtn();\n#endif //! WIN\n    *ppgst = pgst;\n    return fTrue;\n\nLFail:\n    ReleasePpo(&pgst);\n    *ppgst = pvNil;\n    return fFalse;\n}\n\n/***************************************************************************\n    Initialize 3-D Text\n***************************************************************************/\nbool APP::_FInitTdt(void)\n{\n    AssertBaseThis(0);\n    AssertPo(_pcfl, 0);\n\n    PGST pgst;\n\n    // set TDT action names\n    pgst = _PgstRead(kcnoGstAction);\n    if (pvNil == pgst)\n        return fFalse;\n    Assert(pgst->CbExtra() == size(long), \"bad Action string table\");\n    if (!TDT::FSetActionNames(pgst))\n    {\n        ReleasePpo(&pgst);\n        return fFalse;\n    }\n    ReleasePpo(&pgst);\n    return fTrue;\n}\n\n/***************************************************************************\n    Read and byte-swap a GST from _pcfl.  Assumes that extra data, if any,\n    is a long.\n***************************************************************************/\nPGST APP::_PgstRead(CNO cno)\n{\n    AssertBaseThis(0);\n    AssertPo(_pcfl, 0);\n\n    PGST pgst;\n    BLCK blck;\n    short bo;\n    short osk;\n    long istn;\n    long lwExtra;\n\n    if (!_pcfl->FFind(kctgGst, cno, &blck))\n        return pvNil;\n    pgst = GST::PgstRead(&blck, &bo, &osk);\n    if (pvNil == pgst)\n        return pvNil;\n    Assert(pgst->CbExtra() == 0 || pgst->CbExtra() == size(long), \"unexpected extra size\");\n    if (kboCur != bo && 0 != pgst->CbExtra())\n    {\n        for (istn = 0; istn < pgst->IvMac(); istn++)\n        {\n            pgst->GetExtra(istn, &lwExtra);\n            SwapBytesRglw(&lwExtra, 1);\n            pgst->PutExtra(istn, &lwExtra);\n        }\n    }\n    return pgst;\n}\n\n/***************************************************************************\n    Read various string tables from _pcfl\n***************************************************************************/\nbool APP::_FReadStringTables(void)\n{\n    AssertBaseThis(0);\n    AssertPo(_pcfl, 0);\n\n    // read studio filename list\n    _pgstStudioFiles = _PgstRead(kcnoGstStudioFiles);\n    if (pvNil == _pgstStudioFiles)\n        return fFalse;\n\n    // read building filename list\n    _pgstBuildingFiles = _PgstRead(kcnoGstBuildingFiles);\n    if (pvNil == _pgstBuildingFiles)\n        return fFalse;\n\n    // read shared filename list\n    _pgstSharedFiles = _PgstRead(kcnoGstSharedFiles);\n    if (pvNil == _pgstSharedFiles)\n        return fFalse;\n\n    // read misc app strings\n    _pgstApp = _PgstRead(kcnoGstApp);\n    if (pvNil == _pgstApp)\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Initialize KWA (app kidworld)\n***************************************************************************/\nbool APP::_FInitKidworld(void)\n{\n    AssertBaseThis(0);\n\n    RC rcRel(0, 0, krelOne, krelOne);\n    GCB gcb(CMH::HidUnique(), GOB::PgobScreen(), fgobNil, kginMark, pvNil, &rcRel);\n\n    _pkwa = NewObj KWA(&gcb);\n    if (pvNil == _pkwa)\n        return fFalse;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Show the app splash screen\n***************************************************************************/\nbool APP::_FShowSplashScreen(void)\n{\n    AssertBaseThis(0);\n\n    BLCK blck;\n    PMBMP pmbmp;\n\n    if (!_pcfl->FFind(kctgMbmp, kcnoMbmpSplash, &blck))\n        return fFalse;\n    pmbmp = MBMP::PmbmpRead(&blck);\n    if (pvNil == pmbmp)\n        return fFalse;\n    _pkwa->SetMbmp(pmbmp);\n    ReleasePpo(&pmbmp);\n    UpdateMarked();\n    return fTrue;\n}\n\n/***************************************************************************\n    Play the app splash sound\n***************************************************************************/\nbool APP::_FPlaySplashSound(void)\n{\n    AssertBaseThis(0);\n\n    PCRF pcrf;\n\n    pcrf = CRF::PcrfNew(_pcfl, 0);\n    if (pvNil == pcrf)\n        return fFalse;\n    vpsndm->SiiPlay(pcrf, kctgMidi, kcnoMidiSplash);\n    ReleasePpo(&pcrf);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Read the chunky files specified by _pgstSharedFiles, _pgstBuildingFiles\n    and _pgstStudioFiles and create the global CRM; indices to the Building\n    and Studio CRFs are stored in _pglicrfBuilding and _pglicrfStudio.\n***************************************************************************/\nbool APP::_FInitCrm(void)\n{\n    AssertBaseThis(0);\n    AssertPo(_pkwa, 0);\n    AssertPo(_pgstSharedFiles, 0);\n    AssertPo(_pgstBuildingFiles, 0);\n    AssertPo(_pgstStudioFiles, 0);\n\n    PSCEG psceg = pvNil;\n    PSCPT pscpt = pvNil;\n\n    _pcrmAll = CRM::PcrmNew(_pgstSharedFiles->IvMac() + _pgstBuildingFiles->IvMac() + _pgstStudioFiles->IvMac());\n    if (pvNil == _pcrmAll)\n        goto LFail;\n\n    _pglicrfBuilding = GL::PglNew(size(long), _pgstBuildingFiles->IvMac());\n    if (pvNil == _pglicrfBuilding)\n        goto LFail;\n\n    _pglicrfStudio = GL::PglNew(size(long), _pgstStudioFiles->IvMac());\n    if (pvNil == _pglicrfStudio)\n        goto LFail;\n\n    if (!_FAddToCrm(_pgstSharedFiles, _pcrmAll, pvNil))\n        goto LFail;\n\n    if (!_FAddToCrm(_pgstBuildingFiles, _pcrmAll, _pglicrfBuilding))\n        goto LFail;\n\n    if (!_FAddToCrm(_pgstStudioFiles, _pcrmAll, _pglicrfStudio))\n        goto LFail;\n\n    // Initialize the shared util gob.\n    psceg = _pkwa->PscegNew(_pcrmAll, _pkwa);\n    if (pvNil == psceg)\n        goto LFail;\n\n    pscpt = (PSCPT)_pcrmAll->PbacoFetch(kctgScript, kcnoInitShared, SCPT::FReadScript);\n    if (pvNil == pscpt)\n        goto LFail;\n\n    if (!psceg->FRunScript(pscpt))\n        goto LFail;\n\n    ReleasePpo(&psceg);\n    ReleasePpo(&pscpt);\n    return fTrue;\nLFail:\n    ReleasePpo(&psceg);\n    ReleasePpo(&pscpt);\n    return fFalse;\n}\n\n/***************************************************************************\n    Helper function for _FInitCrm.  Adds the list of chunky files specified\n    in pgstFiles to the CRM pointed to by pcrm.  If pglFiles is not pvNil,\n    it is filled in with the positions in the CRM of each of the loaded\n    crfs.\n***************************************************************************/\nbool APP::_FAddToCrm(PGST pgstFiles, PCRM pcrm, PGL pglFiles)\n{\n    AssertBaseThis(0);\n    AssertPo(&_fniProductDir, ffniDir);\n    AssertPo(pgstFiles, 0);\n    AssertPo(pcrm, 0);\n    AssertNilOrPo(pglFiles, 0);\n\n    bool fRet = fFalse;\n    FNI fni;\n    STN stn;\n    long istn;\n    long cbCache;\n    PCFL pcfl = pvNil;\n    long icfl;\n\n    for (istn = 0; istn < pgstFiles->IvMac(); istn++)\n    {\n        pgstFiles->GetStn(istn, &stn);\n        pgstFiles->GetExtra(istn, &cbCache);\n#ifdef DEBUG\n        {\n            bool fAskForCDSav = Pkwa()->FAskForCD();\n            bool fFoundFile;\n\n            // In debug, we look for \"buildingd.chk\", \"sharedd.chk\", etc. and\n            // use them instead of the normal files if they exist.  If they\n            // don't exist, just use the normal files.\n            STN stnT = stn;\n            stnT.FAppendCh(ChLit('d'));\n            stnT.FAppendSz(PszLit(\".chk\")); // REVIEW *****\n            Pkwa()->SetCDPrompt(fFalse);\n            fFoundFile = Pkwa()->FFindFile(&stnT, &fni);\n            Pkwa()->SetCDPrompt(fAskForCDSav);\n            if (fFoundFile)\n            {\n                pcfl = CFL::PcflOpen(&fni, fcflNil);\n            }\n            else\n            {\n#endif                                         // DEBUG\n                stn.FAppendSz(PszLit(\".chk\")); // REVIEW *****\n                if (Pkwa()->FFindFile(&stn, &fni))\n                    pcfl = CFL::PcflOpen(&fni, fcflNil);\n#ifdef DEBUG\n            }\n        }\n#endif // DEBUG\n        if (pvNil == pcfl)\n        {\n            if (fni.Ftg() != ftgNil)\n                fni.GetStnPath(&stn);\n            if (!_fDontReportInitFailure)\n                _FCantFindFileDialog(&stn); // ignore failure\n            goto LFail;\n        }\n        if (!pcrm->FAddCfl(pcfl, cbCache, &icfl))\n            goto LFail;\n        ReleasePpo(&pcfl);\n        if (pglFiles != pvNil && !pglFiles->FAdd(&icfl))\n            goto LFail;\n    }\n\n    fRet = fTrue;\nLFail:\n    if (!fRet)\n        ReleasePpo(&pcfl);\n    return fRet;\n}\n\n/***************************************************************************\n    Initialize and start the building script\n***************************************************************************/\nbool APP::_FInitBuilding(void)\n{\n    AssertBaseThis(0);\n\n    bool fRet = fFalse;\n    long i;\n    long cbCache;\n    long iv;\n    PCRF pcrfT;\n    PSCEG psceg = pvNil;\n    PSCPT pscpt = pvNil;\n\n    BeginLongOp();\n\n    psceg = _pkwa->PscegNew(_pcrmAll, _pkwa);\n    if (pvNil == psceg)\n        goto LFail;\n\n    pscpt = (PSCPT)_pcrmAll->PbacoFetch(kctgScript, kcnoStartApp, SCPT::FReadScript);\n    if (pvNil == pscpt)\n        goto LFail;\n\n    if (!psceg->FRunScript(pscpt))\n        goto LFail;\n\n    // Up the cache limits of the building crfs in the global crm.\n    // Assumption: since the files were added to the crm in the order they\n    // appear in _pgstBuilding, I can get the cache amounts from there.\n    for (i = 0; i < _pglicrfBuilding->IvMac(); i++)\n    {\n        _pgstBuildingFiles->GetExtra(i, &cbCache);\n        _pglicrfBuilding->Get(i, &iv);\n        pcrfT = _pcrmAll->PcrfGet(iv);\n        Assert(pcrfT != pvNil, \"Main CRM is corrupt.\");\n        pcrfT->SetCbMax(cbCache);\n    }\n\n    // Zero the cache for the studio crfs in the global crm.\n    for (i = 0; i < _pglicrfStudio->IvMac(); i++)\n    {\n        _pglicrfStudio->Get(i, &iv);\n        pcrfT = _pcrmAll->PcrfGet(iv);\n        Assert(pcrfT != pvNil, \"Main CRM is corrupt.\");\n        pcrfT->SetCbMax(0);\n    }\n\n    fRet = fTrue;\nLFail:\n    if (!fRet)\n        EndLongOp();\n    ReleasePpo(&psceg);\n    ReleasePpo(&pscpt);\n    return fRet;\n}\n\n/***************************************************************************\n    Initialize and start the studio script\n***************************************************************************/\nbool APP::_FInitStudio(PFNI pfniUserDoc, bool fFailIfDocOpenFailed)\n{\n    AssertBaseThis(0);\n\n    long i;\n    long cbCache;\n    long iv;\n    PCRF pcrfT;\n    bool fRet = fFalse;\n\n    _pstdio = STDIO::PstdioNew(khidStudio, _pcrmAll, (pfniUserDoc->Ftg() == ftgNil ? pvNil : pfniUserDoc),\n                               fFailIfDocOpenFailed);\n    if (_pstdio == pvNil)\n    {\n        goto LFail;\n    }\n\n    // Up the cache limits of the studio crfs in the global crm.\n    for (i = 0; i < _pglicrfStudio->IvMac(); i++)\n    {\n        _pgstStudioFiles->GetExtra(i, &cbCache);\n        _pglicrfStudio->Get(i, &iv);\n        pcrfT = _pcrmAll->PcrfGet(iv);\n        Assert(pcrfT != pvNil, \"Main CRM is corrupt.\");\n        pcrfT->SetCbMax(cbCache);\n    }\n\n    // Zero the cache for the building crfs in the global crm.\n    for (i = 0; i < _pglicrfBuilding->IvMac(); i++)\n    {\n        _pglicrfBuilding->Get(i, &iv);\n        pcrfT = _pcrmAll->PcrfGet(iv);\n        Assert(pcrfT != pvNil, \"Main CRM is corrupt.\");\n        pcrfT->SetCbMax(0);\n    }\n\n    fRet = fTrue;\n\nLFail:\n    if (!fRet)\n        PushErc(ercSocCantInitStudio);\n    return fRet;\n}\n\n/***************************************************************************\n    Sets _fSlowCPU if this is a slow CPU.  It tests the graphics,\n    fixed-point math, and memory copying speed, and if any of them are\n    slower than a threshold, _fSlowCPU is set.\n***************************************************************************/\nbool APP::_FDetermineIfSlowCPU(void)\n{\n    AssertBaseThis(0);\n\n    bool fSlowCPU;\n\n    // If user has a saved preference, read and use that\n    if (FGetSetRegKey(kszBetterSpeedValue, &fSlowCPU, size(bool), fregNil))\n    {\n        _fSlowCPU = fSlowCPU;\n        return fTrue;\n    }\n\n    _fSlowCPU = fFalse;\n\n#ifndef PERF_TEST\n\n    return fTrue;\n\n#else // PERF_TEST\n\n    PGPT pgptWnd = pvNil;\n    PGPT pgptOff = pvNil;\n    RC rc1;\n    RC rc2;\n    ulong ts;\n    ulong dts1;\n    ulong dts2;\n    ulong dts3;\n    long i;\n    char *pch1 = pvNil;\n    char *pch2 = pvNil;\n    BRS r1;\n    BRS r2;\n    BRS r3;\n\n    // Test 1: Graphics.  Copy some graphics to an offscreen buffer,\n    // then blit it back to the window 100 times.\n    rc1.Set(0, 0, 300, 300);\n    rc2.Set(0, 0, 300, 300);\n    pgptWnd = GPT::PgptNewHwnd(vwig.hwndApp);\n    if (pvNil == pgptWnd)\n        goto LFail;\n    pgptOff = GPT::PgptNewOffscreen(&rc1, 8); // BWLD RGB buffer is 8-bit\n    if (pvNil == pgptOff)\n    {\n        goto LFail;\n    }\n    // BLOCK\n    {\n        GNV gnvWnd(pgptWnd);\n        GNV gnvOff(pgptOff);\n        gnvOff.CopyPixels(&gnvWnd, &rc1, &rc1);\n        ts = TsCurrent();\n        for (i = 0; i < 100; i++)\n            gnvWnd.CopyPixels(&gnvOff, &rc1, &rc2);\n        dts1 = TsCurrent() - ts;\n    }\n    ReleasePpo(&pgptWnd);\n    ReleasePpo(&pgptOff);\n\n    // Test 2: Math.  Do 200,000 fixed-point adds and multiplies\n    r1 = BR_SCALAR(1.12);    // arbitrary number\n    r2 = BR_SCALAR(3.14159); // arbitrary number\n    r3 = rZero;\n    ts = TsCurrent();\n    for (i = 0; i < 200000; i++)\n    {\n        r2 = BrsMul(r1, r2);\n        r3 = BrsAdd(r2, r3);\n    }\n    dts2 = TsCurrent() - ts;\n\n    // Test 3: Copying.  Copy a 50,000 byte block 200 times.\n    if (!FAllocPv((void **)&pch1, 50000, mprNormal, fmemClear))\n        goto LFail;\n    if (!FAllocPv((void **)&pch2, 50000, mprNormal, fmemClear))\n        goto LFail;\n    ts = TsCurrent();\n    for (i = 0; i < 200; i++)\n        CopyPb(pch1, pch2, 50000);\n    dts3 = TsCurrent() - ts;\n    FreePpv((void **)&pch1);\n    FreePpv((void **)&pch2);\n\n    if (dts1 > 700 || dts2 > 200 || dts3 > 500)\n        _fSlowCPU = fTrue;\n\n    return fTrue;\nLFail:\n    ReleasePpo(&pgptWnd);\n    ReleasePpo(&pgptOff);\n    FreePpv((void **)&pch1);\n    FreePpv((void **)&pch2);\n    return fFalse;\n\n#endif // PERF_TEST\n}\n\n/***************************************************************************\n    Reads command line.  Also sets _fniExe to path to this executable\n    and _fniPortfolioDoc to file specified on command line (if any).\n    Also initializes _stnProductLong and _stnProductShort.\n\n    -f: fast mode\n    -s: slow mode\n    -p\"longname\": long productname\n    -t\"shortname\": short productname\n    -m: don't minimize window on deactivate\n\n***************************************************************************/\nvoid APP::_ParseCommandLine(void)\n{\n    AssertBaseThis(0);\n\n#ifdef WIN\n    SZ sz;\n    STN stn;\n    achar *pch;\n    achar *pchT;\n    FNI fniT;\n\n    // Get path to current directory\n    GetCurrentDirectory(kcchMaxSz, sz);\n    stn.SetSz(sz);\n    if (!_fniCurrentDir.FBuildFromPath(&stn, kftgDir))\n        Bug(\"Bad current directory?\");\n\n    // Get path to exe\n    GetModuleFileName(NULL, sz, kcchMaxSz);\n    stn.SetSz(sz);\n    if (!_fniExe.FBuildFromPath(&stn))\n        Bug(\"Bad module filename?\");\n\n    pch = vwig.pszCmdLine;\n    // first argument (app name) is useless...skip it\n    _SkipToSpace(&pch);\n    _SkipSpace(&pch);\n\n    while (*pch != chNil)\n    {\n        // Look for /options or -options\n        if (*pch == ChLit('/') || *pch == ChLit('-'))\n        {\n            switch (ChUpper(*(pch + 1)))\n            {\n            case ChLit('M'):\n                _fDontMinimize = fTrue;\n                break;\n            case ChLit('S'):\n                _fSlowCPU = fTrue;\n                break;\n            case ChLit('F'):\n                _fSlowCPU = fFalse;\n                break;\n            case ChLit('P'): {\n                pch += 2; // skip \"-p\"\n                pchT = pch;\n                _SkipToSpace(&pchT);\n                // skip quotes\n                if (*pch == ChLit('\"'))\n                    _stnProductLong.SetRgch(pch + 1, pchT - pch - 2);\n                else\n                    _stnProductLong.SetRgch(pch, pchT - pch);\n            }\n            break;\n            case ChLit('T'): {\n                pch += 2; // skip \"-t\"\n                pchT = pch;\n                _SkipToSpace(&pchT);\n                // skip quotes\n                if (*pch == ChLit('\"'))\n                    _stnProductShort.SetRgch(pch + 1, pchT - pch - 2);\n                else\n                    _stnProductShort.SetRgch(pch, pchT - pch);\n            }\n            break;\n            default:\n                Warn(\"Bad command-line switch\");\n                break;\n            }\n            _SkipToSpace(&pch);\n            _SkipSpace(&pch);\n        }\n        else // try to parse as fni string\n        {\n            // get to end of string\n            pchT = pch + CchSz(pch);\n\n            // skip quotes since FBuildFromPath can't deal\n            if (*pch == ChLit('\"'))\n                pch++;\n\n            // move pchT to begginning of file name itself\n            while ((*pchT != '\\\\') && (pchT != pch))\n                pchT--;\n            // pchT now points to last'\\', move it forward one (only if not pch)\n            if (*pchT == '\\\\')\n                pchT++;\n\n            // set STN to the path, which is the string up to the last '\\'\n            stn.SetRgch(pch, pchT - pch);\n\n            // try to map to long file name if we can\n            HANDLE hFile = pvNil;\n            WIN32_FIND_DATA W32FindData;\n\n            hFile = FindFirstFile(pch, &W32FindData);\n            if (INVALID_HANDLE_VALUE != hFile)\n            {\n                // append the longfile name returned...\n                stn.FAppendSz(W32FindData.cFileName);\n                FindClose(hFile);\n            }\n            else\n                // just use what was passed orginally...\n                stn.SetSz(pch);\n\n            // remove ending quotes since FBuildFromPath can't deal\n            if (stn.Psz()[stn.Cch() - 1] == ChLit('\\\"'))\n                stn.Delete(stn.Cch() - 1, 1);\n            if (fniT.FBuildFromPath(&stn))\n            {\n                SetPortfolioDoc(&fniT);\n            }\n            // move to end of string, we now assume that everything past options is the document name\n            pch += CchSz(pch);\n        }\n    }\n#endif // WIN\n#ifdef MAC\n    RawRtn();\n#endif // MAC\n}\n\n/***************************************************************************\n    Make sure that _stnProductLong and _stnProductShort are initialized to\n    non-empty strings.  If _stnProductLong wasn't initialized from the\n    command line, it and _stnProductShort are read from the app resource\n    file.  If _stnProductLong is valid and _stnProductShort is not,\n    _stnProductShort is just set to _stnProductLong.\n***************************************************************************/\nbool APP::_FEnsureProductNames(void)\n{\n    AssertBaseThis(0);\n\n    if (_stnProductLong.Cch() == 0)\n    {\n#ifdef WIN\n        SZ sz;\n\n        if (0 == LoadString(vwig.hinst, stid3DMovieNameLong, sz, kcchMaxSz))\n            return fFalse;\n        _stnProductLong.SetSz(sz);\n\n        if (0 == LoadString(vwig.hinst, stid3DMovieNameShort, sz, kcchMaxSz))\n            return fFalse;\n        _stnProductShort.SetSz(sz);\n#else  // MAC\n        RawRtn();\n#endif // MAC\n    }\n\n    if (_stnProductShort.Cch() == 0)\n        _stnProductShort = _stnProductLong;\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Find _fniMsKidsDir\n***************************************************************************/\nbool APP::_FFindMsKidsDir(void)\n{\n    AssertBaseThis(0);\n    Assert(_stnProductLong.Cch() > 0 && _stnProductShort.Cch() > 0, \"_stnProductLong and _stnProductShort must exist\");\n\n    FNI fni;\n    SZ szMsKidsDir;\n    STN stn;\n    STN stnUsers;\n\n    szMsKidsDir[0] = chNil;\n    if (!FGetSetRegKey(kszInstallDirValue, szMsKidsDir, size(SZ), fregMachine | fregString))\n    {\n        Warn(\"Missing InstallDirectory registry entry or registry error\");\n    }\n    stn = szMsKidsDir;\n    if (stn.Cch() == 0 || !_fniMsKidsDir.FBuildFromPath(&stn, kftgDir) || tYes != _fniMsKidsDir.TExists())\n    {\n        // REVIEW *****: this artificial search is temp until we have a\n        // real setup program and users have a InstallDirectory registry entry\n        _fniMsKidsDir = _fniExe;\n        if (!_fniMsKidsDir.FSetLeaf(pvNil, kftgDir))\n            return fFalse;\n        /* FOONE: hack out search to top of DIR\n        while (_fniMsKidsDir.FUpDir(pvNil, ffniMoveToDir))\n            ;\n        */\n\n        if (!_FFindMsKidsDirAt(&_fniMsKidsDir))\n        {\n            _fniMsKidsDir = _fniCurrentDir;\n            if (!_fniMsKidsDir.FSetLeaf(pvNil, kftgDir))\n                return fFalse;\n            if (!_FFindMsKidsDirAt(&_fniMsKidsDir))\n            {\n                Warn(\"Can't find Microsoft Kids or MSKIDS.\");\n                stn = PszLit(\"Microsoft Kids\");\n                _FCantFindFileDialog(&stn); // ignore failure\n                return fFalse;\n            }\n        }\n    }\n\n    AssertPo(&_fniMsKidsDir, ffniDir);\n    return fTrue;\n}\n\n/***************************************************************************\n    Finds Microsoft Kids directory at a given path. Modifies the path to\n    descend into the directory. Returns true if successful.\n***************************************************************************/\nbool APP::_FFindMsKidsDirAt(FNI *path)\n{\n    STN stn;\n\n    /* REVIEW ***** (peted): if you check for the MSKIDS dir first, then\n        you don't have to reset the dir string before presenting the error\n        to the user */\n    stn = PszLit(\"Microsoft Kids\"); // REVIEW *****\n    if (!path->FDownDir(&stn, ffniMoveToDir))\n    {\n        stn = PszLit(\"MSKIDS\"); // REVIEW *****\n        if (!path->FDownDir(&stn, ffniMoveToDir))\n        {\n            return fFalse;\n        }\n    }\n\n    AssertPo(path, ffniDir);\n    return fTrue;\n}\n\n/***************************************************************************\n    Find _fniProductDir\n    At this point, _stnProduct* is either the command line parameter or\n    3D Movie Maker (in the absence of a command line parameter)\n    _FFindProductDir() locates the .chk files by checking:\n        first, _stnProduct* directories, or\n        second, the registry of installed products.\n    This routine updates _stnProductLong and _stnProductShort on return.\n***************************************************************************/\nbool APP::_FFindProductDir(PGST pgst)\n{\n    AssertBaseThis(0);\n    AssertVarMem(pgst);\n\n    STN stnLong;\n    STN stnShort;\n    STN stn;\n    FNI fni;\n    long istn;\n\n    if (_FQueryProductExists(&_stnProductLong, &_stnProductShort, &_fniProductDir))\n        return fTrue;\n\n    for (istn = 0; istn < pgst->IstnMac(); istn++)\n    {\n        pgst->GetStn(istn, &stn);\n        vptagm->SplitString(&stn, &stnLong, &stnShort);\n        if (_FQueryProductExists(&stnLong, &stnShort, &fni))\n        {\n            _stnProductLong = stnLong;\n            _stnProductShort = stnShort;\n            _fniProductDir = fni;\n            return fTrue;\n        }\n    }\n    return fFalse;\n}\n\n/***************************************************************************\n    See if the product exists.\n    Method:  See if the directory and chunk file exist.\n***************************************************************************/\nbool APP::_FQueryProductExists(STN *pstnLong, STN *pstnShort, FNI *pfni)\n{\n    AssertBaseThis(0);\n    AssertVarMem(pfni);\n    AssertPo(pstnLong, 0);\n    AssertPo(pstnShort, 0);\n\n    FNI fni;\n    STN stn;\n\n    *pfni = _fniMsKidsDir;\n    if (!pfni->FDownDir(pstnLong, ffniMoveToDir) && !pfni->FDownDir(pstnShort, ffniMoveToDir))\n    {\n        pfni->GetStnPath(&stn);\n        if (!stn.FAppendStn(&_stnProductLong))\n            goto LFail;\n        _FCantFindFileDialog(&stn); // ignore failure\n        goto LFail;\n    }\n\n    fni = *pfni;\n    if (fni.FSetLeaf(pstnLong, kftgChunky) && (tYes == fni.TExists()))\n        return fTrue;\n    fni = *pfni;\n    if (fni.FSetLeaf(pstnShort, kftgChunky) && (tYes == fni.TExists()))\n        return fTrue;\nLFail:\n    TrashVar(pfni);\n    return fFalse;\n}\n\n/***************************************************************************\n    Advances *ppch until it points to either the next space character or\n    the end of the string.  Exception: if the space character is surrounded\n    by double quotes, this function skips by it.\n***************************************************************************/\nvoid APP::_SkipToSpace(char **ppch)\n{\n    AssertBaseThis(0);\n    AssertVarMem(ppch);\n\n    bool fQuote = fFalse;\n\n    while (**ppch != chNil && (fQuote || **ppch != kchSpace))\n    {\n        if (**ppch == ChLit('\"'))\n            fQuote = !fQuote;\n        (*ppch)++;\n    }\n}\n\n/***************************************************************************\n    Advances *ppch to the next non-space character.\n***************************************************************************/\nvoid APP::_SkipSpace(char **ppch)\n{\n    AssertBaseThis(0);\n    AssertVarMem(ppch);\n\n    while (**ppch == kchSpace)\n        (*ppch)++;\n}\n\n/***************************************************************************\n    Socrates window was activated or deactivated.\n***************************************************************************/\nvoid APP::_Activate(bool fActive)\n{\n    AssertBaseThis(0);\n\n#ifdef WIN\n    bool fIsIconic;\n\n    APP_PAR::_Activate(fActive);\n\n    fIsIconic = IsIconic(vwig.hwndApp);\n\n    if (!fActive) // app was just deactivated\n    {\n        if (_FDisplayIs640480() && !_fDontMinimize && !fIsIconic)\n        {\n            // Note: using SW_MINIMIZE causes a bug where alt-tabbing\n            // from this app to a fullscreen DOS window reactivates\n            // this app.  So use SW_SHOWMINNOACTIVE instead.\n            ShowWindow(vwig.hwndApp, SW_SHOWMINNOACTIVE); // minimize app\n            _fMinimized = fTrue;\n\n            // Note that we examine _fMinimized during the WM_DISPLAYCHANGE message\n            // received as a result of the following res change call. Therefore the\n            // minimize operation MUST precede the res switch.\n            if (_fSwitchedResolution)\n                _FSwitch640480(fFalse);\n\n            // When the portfolio is displayed, the main app is automatically disabled.\n            // This means all keyboard/mouse input directed at the main app window will\n            // be ignored until the portfolio is finished with. If the app is minimized\n            // here while the portfolio is displayed, then we will be left with a disabled\n            // app window on the win95 task bar. As a result, the app will not appear\n            // only the task window invoked by an Alt-tab, nor is it resized when\n            // the user clicks on it in the taskbar, (even though win95 tries to\n            // activate it). We could do the following...\n            // (1) Do not auto-minimize the app window while the portfolio is displayed.\n            //\t\tThis is what happens on NT.\n            // (2) Drop the portfolio here, so the app window is enabled on the taskbar.\n            // (3) Make sure the app window is enabled now, by doing this...\n            EnableWindow(vwig.hwndApp, TRUE);\n\n            // The concern with doing this, is that when the app is later restored,\n            // it is then enabled when it shouldn't be, as the portfolio is still\n            // up in front of it. As it happens, this doesn't matter because the\n            // portfolio is full screen. This means that the user can't direct any\n            // mouse input to the main app window, and the portfolio will eat up any\n            // keyboard input.\n        }\n    }\n\n#endif // WIN\n#ifdef MAC\n    RawRtn();\n#endif // MAC\n\n    /* Don't do this stuff unless we've got the CEX set up */\n    if (vpcex != pvNil)\n    {\n\n        if (!fActive)\n        {\n            if (!vpcex->FCidIn(cidDeactivate))\n            {\n                vpcex->EnqueueCid(cidDeactivate);\n                _fDown = fTrue;\n                _cactToggle = 0;\n            }\n        }\n        else if (_pcex != pvNil)\n        {\n            //\n            // End the modal wait\n            //\n            Assert(CactModal() > 0, \"AAAAAAAAAhhhhh! - P.Floyd (Encore performance)\");\n\n            // If there is no cidEndModal currently waiting to be processed,\n            // enqueue one now. This ensures we don't get multiple cidEndModal's\n            // processed. Note that we don't want to set _pcex null here as it\n            // is later examined in the wndproc before we ultimately return\n            // from FModalTopic.\n            if (!_pcex->FCidIn(cidEndModal))\n                _pcex->EnqueueCid(cidEndModal);\n        }\n        else\n        {\n            vpcex->FlushCid(cidDeactivate);\n        }\n    }\n}\n\n/***************************************************************************\n    Deactivate the app\n***************************************************************************/\nbool APP::FCmdDeactivate(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    GCB gcb;\n    PWOKS pwoksModal;\n    GTE gte;\n    PGOB pgob;\n    ulong grfgte;\n    long lwRet;\n    CMD_MOUSE cmd;\n    PT pt;\n    bool fDoQuit;\n\n    if (_pcex != pvNil)\n    {\n        Assert(CactModal() > 0, \"AAAAAAAAAhhhhh! - P.Floyd\");\n        return (fTrue);\n    }\n\n    pgob = vpcex->PgobTracking();\n    if ((pgob != pvNil) && (_cactToggle < 500))\n    {\n        //\n        // Toggle the mouse button\n        //\n        TrackMouse(pgob, &pt);\n\n        ClearPb(&cmd, size(CMD_MOUSE));\n\n        cmd.pcmh = pgob;\n        cmd.cid = cidTrackMouse;\n        cmd.xp = pt.xp;\n        cmd.yp = pt.yp;\n        cmd.grfcust = GrfcustCur();\n        if (_fDown)\n        {\n            cmd.grfcust |= fcustMouse;\n        }\n        else\n        {\n            cmd.grfcust &= ~fcustMouse;\n        }\n        vpcex->EnqueueCmd((PCMD)&cmd);\n        vpcex->EnqueueCid(cidDeactivate);\n        _fDown = !_fDown;\n        _cactToggle++;\n        return fTrue;\n    }\n\n    gte.Init(Pkwa(), fgteNil);\n    while (gte.FNextGob(&pgob, &grfgte, fgteNil))\n    {\n        if (!(grfgte & fgtePre) || !pgob->FIs(kclsGOK))\n            continue;\n\n        ((PGOK)pgob)->Suspend();\n    }\n\n    if (FPushModal())\n    {\n        gcb.Set(CMH::HidUnique(), Pkwa(), fgobNil, kginMark);\n        gcb._rcRel.Set(0, 0, krelOne, krelOne);\n\n        _pcex = vpcex;\n\n        if (pvNil != (pwoksModal = NewObj WOKS(&gcb, Pkwa()->Pstrg())))\n        {\n            vpcex->SetModalGob(pwoksModal);\n            FModalLoop(&lwRet); // If we cannot enter modal mode, then we just won't suspend.\n            vpcex->SetModalGob(pvNil);\n        }\n\n        ReleasePpo(&pwoksModal);\n\n        _pcex = pvNil;\n\n        // The user may have selected Close the app system menu while the\n        // app was minimized on the taskbar. Depending on how Windows sent\n        // the messages to us, (ie the processing order of activate and\n        // close messages are not predictable it seems), we may or may not\n        // have a cidQuit message queued for the app. If PopModal destroys\n        // queued messages, then we would loose any Waiting cidQuit.\n        // Therefore check if we have a queued cidQuit, and if so, requeue\n        // it after the call to PopModal.\n        fDoQuit = vpcex->FCidIn(cidQuit);\n\n        PopModal();\n\n        if (fDoQuit)\n            vpcex->EnqueueCid(cidQuit);\n    }\n\n    gte.Init(Pkwa(), fgteNil);\n    while (gte.FNextGob(&pgob, &grfgte, fgteNil))\n    {\n        if (!(grfgte & fgtePre) || !pgob->FIs(kclsGOK))\n            continue;\n\n        ((PGOK)pgob)->Resume();\n    }\n\n    return (fTrue);\n}\n\n/***************************************************************************\n    Copy pixels from an offscreen buffer (pgnvSrc, prcSrc) to the screen\n    (pgnvDst, prcDst).  This is called to move bits from an offscreen\n    buffer to the screen during a _FastUpdate cycle.  This gives us\n    a chance to do a transition.\n***************************************************************************/\nvoid APP::_CopyPixels(PGNV pgnvSrc, RC *prcSrc, PGNV pgnvDst, RC *prcDst)\n{\n    AssertBaseThis(0);\n    AssertPo(pgnvSrc, 0);\n    AssertVarMem(prcSrc);\n    AssertPo(pgnvDst, 0);\n    AssertVarMem(prcDst);\n\n    PMVIE pmvie = _Pmvie(); // Get the current movie, if any\n    PGOB pgob;\n    RC rcDst, rcSrc, rcWorkspace;\n\n    if (pmvie == pvNil || pmvie->Trans() == transNil)\n    {\n        APP_PAR::_CopyPixels(pgnvSrc, prcSrc, pgnvDst, prcDst);\n        return;\n    }\n\n    Assert(prcSrc->Dyp() == prcDst->Dyp() && prcSrc->Dxp() == prcDst->Dxp(), \"rc's are scaled\");\n\n    // Need to do a transition, but if it's a slow transition (not a cut),\n    // we want to do a regular copy on all the areas around the workspace,\n    // then the slow transition on just the workspace.\n\n    pgob = Pkwa()->PgobFromHid(kidWorkspace);\n\n    if (pgob == pvNil || pmvie->Trans() == transCut)\n    {\n        pmvie->DoTrans(pgnvDst, pgnvSrc, prcDst, prcSrc);\n        return;\n    }\n\n    // NOTE: This code assumes that the following will base rcWorkspace\n    // in the same coordinate system as prcDst, which is always true\n    // according to ShonK.\n    pgob->GetRc(&rcWorkspace, cooHwnd);\n\n    // Do the areas around the workspace without the transition\n    if (prcDst->ypTop < rcWorkspace.ypTop)\n    {\n        rcSrc = *prcSrc;\n        rcSrc.ypBottom = rcWorkspace.ypTop + (rcSrc.ypTop - prcDst->ypTop);\n        rcDst = *prcDst;\n        rcDst.ypBottom = rcWorkspace.ypTop;\n        APP_PAR::_CopyPixels(pgnvSrc, &rcSrc, pgnvDst, &rcDst);\n    }\n\n    if (prcDst->ypBottom > rcWorkspace.ypBottom)\n    {\n        rcSrc = *prcSrc;\n        rcSrc.ypTop = rcWorkspace.ypBottom + (rcSrc.ypTop - prcDst->ypTop);\n        rcDst = *prcDst;\n        rcDst.ypTop = rcWorkspace.ypBottom;\n        APP_PAR::_CopyPixels(pgnvSrc, &rcSrc, pgnvDst, &rcDst);\n    }\n    if (prcDst->xpLeft < rcWorkspace.xpLeft)\n    {\n        rcSrc.ypTop = rcWorkspace.ypTop + (prcSrc->ypTop - prcDst->ypTop);\n        rcSrc.ypBottom = rcWorkspace.ypBottom + (prcSrc->ypTop - prcDst->ypTop);\n        rcSrc.xpLeft = prcSrc->xpLeft;\n        rcSrc.xpRight = rcWorkspace.xpLeft + (prcSrc->xpLeft - prcDst->xpLeft);\n        rcDst = *prcDst;\n        rcDst.xpRight = rcWorkspace.xpLeft;\n        rcDst.ypTop = rcWorkspace.ypTop;\n        rcDst.ypBottom = rcWorkspace.ypBottom;\n        APP_PAR::_CopyPixels(pgnvSrc, &rcSrc, pgnvDst, &rcDst);\n    }\n\n    if (prcDst->xpRight > rcWorkspace.xpRight)\n    {\n        rcSrc.ypTop = rcWorkspace.ypTop + (prcSrc->ypTop - prcDst->ypTop);\n        rcSrc.ypBottom = rcWorkspace.ypBottom + (prcSrc->ypTop - prcDst->ypTop);\n        rcSrc.xpLeft = rcWorkspace.xpRight + (prcSrc->xpLeft - prcDst->xpLeft);\n        rcSrc.xpRight = prcSrc->xpRight;\n        rcDst = *prcDst;\n        rcDst.xpLeft = rcWorkspace.xpRight;\n        rcDst.ypTop = rcWorkspace.ypTop;\n        rcDst.ypBottom = rcWorkspace.ypBottom;\n        APP_PAR::_CopyPixels(pgnvSrc, &rcSrc, pgnvDst, &rcDst);\n    }\n\n    //\n    // Now do the workspace copy, with the transition\n    //\n    if (rcWorkspace.FIntersect(prcDst))\n    {\n        rcSrc = rcWorkspace;\n        rcSrc.Offset(prcSrc->xpLeft - prcDst->xpLeft, prcSrc->ypTop - prcDst->ypTop);\n        pmvie->DoTrans(pgnvDst, pgnvSrc, &rcWorkspace, &rcSrc);\n    }\n}\n\n/***************************************************************************\n    Load the Studio\n***************************************************************************/\nbool APP::FCmdLoadStudio(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    FNI fniUserDoc;\n    CHID chidProject;\n    long kidBuilding;\n    PGOB pgob;\n    PGOK pgokBackground;\n\n    kidBuilding = pcmd->rglw[0];\n    chidProject = pcmd->rglw[1];\n\n    GetPortfolioDoc(&fniUserDoc); // might be ftgNil\n\n    if (_FInitStudio(&fniUserDoc))\n    {\n        // Nuke the building gob\n        pgob = Pkwa()->PgobFromHid(kidBuilding);\n        if (pvNil != pgob)\n            pgob->Release();\n\n        // Start a project, if requested\n        if (chidProject != chidNil)\n        {\n            pgokBackground = (PGOK)Pkwa()->PgobFromHid(kidBackground);\n            if ((pgokBackground != pvNil) && pgokBackground->FIs(kclsGOK))\n            {\n                AssertPo(pgokBackground, 0);\n                // REVIEW *****: if this fails, what happens?\n                pgokBackground->FRunScript((kstDefault << 16) | chidProject);\n            }\n        }\n    }\n    else\n    {\n        Assert(_pstdio == pvNil, \"_FInitStudio didn't clean up\");\n        vpcex->EnqueueCid(cidLoadStudioFailed);\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Load the Building\n***************************************************************************/\nbool APP::FCmdLoadBuilding(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    if ((_pstdio != pvNil) && !_pstdio->FShutdown())\n    {\n        long kgobReturn;\n\n        // This attempt may have destroyed the contents of kpridBuildingGob;\n        // Try to reset it from kpridBuildingGobT.\n        if (FGetProp(kpridBuildingGobT, &kgobReturn))\n            FSetProp(kpridBuildingGob, kgobReturn);\n        if (FGetProp(kpridBuildingStateT, &kgobReturn))\n            FSetProp(kpridBuildingState, kgobReturn);\n        Warn(\"Shutting down Studio failed\");\n        return fTrue;\n    }\n\n    if (_FInitBuilding())\n        ReleasePpo(&_pstdio);\n    return fTrue;\n}\n\n/***************************************************************************\n    Exit the studio\n***************************************************************************/\nbool APP::FCmdExitStudio(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    tribool tRet;\n    STN stnBackup;\n\n    // Now query the user to find whether they want to go to the\n    // building or to exit the app completely.\n\n    if (!FGetStnApp(idsExitStudio, &stnBackup))\n        return fTrue;\n\n    tRet = TModal(vpapp->PcrmAll(), ktpcQueryExitStudio, &stnBackup, bkYesNoCancel);\n\n    // Take more action if the user did not hit cancel.\n    if (tRet != tMaybe)\n    {\n        // Save the current movie if necessary.\n        if ((_pstdio != pvNil) && !_pstdio->FShutdown(tRet == tYes))\n            return fTrue;\n\n        // Either go to the building, or leave the app.\n        if (tRet == tYes)\n        {\n            // Go to the building.\n            if (_FInitBuilding())\n                ReleasePpo(&_pstdio);\n        }\n        else if (tRet == tNo)\n        {\n            // User wants to quit. We have have any dirty doc already by now.\n            // Note that APP::Quit() doesn't release _pstdio when we quit so\n            // we don't need to do it here either.\n            _fQuit = fTrue;\n        }\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Load the Theater\n***************************************************************************/\nbool APP::FCmdTheaterOpen(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    long kidParent;\n\n    kidParent = pcmd->rglw[0];\n\n    if (pvNil != _ptatr)\n    {\n        Bug(\"You forgot to close the last TATR!\");\n        AssertPo(_ptatr, 0);\n        return fTrue;\n    }\n    _ptatr = TATR::PtatrNew(kidParent);\n    // Let the script know whether the open succeeded or failed\n    vpcex->EnqueueCid(cidTheaterOpenCompleted, pvNil, pvNil, (pvNil != _ptatr));\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Close the Theater\n***************************************************************************/\nbool APP::FCmdTheaterClose(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    AssertPo(_ptatr, 0);\n    ReleasePpo(&_ptatr);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Clear the portfolio doc\n***************************************************************************/\nbool APP::FCmdPortfolioClear(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    _fniPortfolioDoc.SetNil();\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Display the customized open file common dlg.\n***************************************************************************/\nbool APP::FCmdPortfolioOpen(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    FNI fni;\n    bool fOKed;\n    long idsTitle, idsFilterLabel, idsFilterExt;\n    FNI fniUsersDir;\n    PFNI pfni;\n    ulong grfPrevType;\n    CNO cnoWave = cnoNil;\n\n    // Set up strings specific to this use of the portfolio.\n\n    switch (pcmd->rglw[0])\n    {\n    case kpfPortOpenMovie:\n        idsTitle = idsPortfOpenMovieTitle;\n        idsFilterLabel = idsPortfMovieFilterLabel;\n        idsFilterExt = idsPortfMovieFilterExt;\n\n        grfPrevType = fpfPortPrevMovie;\n        cnoWave = kwavPortOpenMovie;\n\n        break;\n\n    case kpfPortOpenSound:\n        // Only display extensions appropriate to the type of sound being imported.\n        idsTitle = idsPortfOpenSoundTitle;\n        idsFilterLabel = idsPortfSoundFilterLabel;\n        if (pcmd->rglw[1] == kidMidiGlass)\n            idsFilterExt = idsPortfSoundMidiFilterExt;\n        else\n            idsFilterExt = idsPortfSoundWaveFilterExt;\n\n        grfPrevType = fpfPortPrevMovie | fpfPortPrevSound;\n        cnoWave = kwavPortOpenSound;\n\n        break;\n\n    case kpfPortOpenTexture:\n        idsTitle = idsPortfOpenTextureTitle;\n        idsFilterLabel = idsPortfTextureFilterLabel;\n        idsFilterExt = idsPortfTextureFilterExt;\n\n        grfPrevType = fpfPortPrevTexture;\n        // Currently no audio for open texture, because we don't open texture yet.\n\n        break;\n\n    default:\n        Bug(\"Unrecognized portfolio open type.\");\n        return fFalse;\n    }\n\n    // Prepare to set the initial directory for the portfolio if necessary.\n\n    switch (pcmd->rglw[2])\n    {\n    case kpfPortDirUsers:\n\n        // Initial directory will be the 'Users' directory.\n\n        vapp.GetFniUsers(&fniUsersDir);\n        pfni = &fniUsersDir;\n\n        break;\n\n    default:\n\n        // Initial directory will be current directory.\n\n        pfni = pvNil;\n\n        break;\n    }\n\n    // Now display the open dlg. Script is informed of the outcome\n    // of the portfolio from beneath FPortDisplayWithIds.\n    fOKed = FPortDisplayWithIds(&fni, fTrue, idsFilterLabel, idsFilterExt, idsTitle, pvNil, pvNil, pfni, grfPrevType,\n                                cnoWave);\n    if (fOKed)\n    {\n        // User selected a file, so store fni for later use.\n        SetPortfolioDoc(&fni);\n    }\n\n    return fTrue;\n}\n\n/******************************************************************************\n    OnnDefVariable\n        Retrieves the default onn for this app.  Gets the name from the app's\n        string table.\n************************************************************ PETED ***********/\nlong APP::OnnDefVariable(void)\n{\n    AssertBaseThis(0);\n\n    if (_onnDefVariable == onnNil)\n    {\n        STN stn;\n\n        if (!FGetStnApp(idsDefaultFont, &stn) || !FGetOnn(&stn, &_onnDefVariable))\n        {\n            _onnDefVariable = APP_PAR::OnnDefVariable();\n        }\n    }\n    return _onnDefVariable;\n}\n\n/******************************************************************************\n    FGetOnn\n        APP version of FGetOnn.  Mainly used so that we can easily report\n        failure to the user if the font isn't around.  And no, I don't care\n        that we'll call FGetOnn twice on failure...it's a failure case, and\n        can stand to be slow.  :)  Maps the font on failure so that there's\n        still a usable onn if the user doesn't want to mess with alternate\n        solutions.\n\n    Arguments:\n        PSTN pstn   --  The font name\n        long *ponn  --  takes the result\n\n    Returns:  fTrue if the original font could be found.\n\n************************************************************ PETED ***********/\nbool APP::FGetOnn(PSTN pstn, long *ponn)\n{\n    AssertBaseThis(0);\n\n    if (!vntl.FGetOnn(pstn, ponn))\n    {\n        if (!_fFontError)\n        {\n            PushErc(ercSocNoDefaultFont);\n            _fFontError = fTrue;\n        }\n        *ponn = vntl.OnnMapStn(pstn);\n        return fFalse;\n    }\n    return fTrue;\n}\n\n/***************************************************************************\n    Return the size of memory\n***************************************************************************/\nvoid APP::MemStat(long *pdwTotalPhys, long *pdwAvailPhys)\n{\n#ifdef WIN\n    MEMORYSTATUS ms;\n    ms.dwLength = size(MEMORYSTATUS);\n    GlobalMemoryStatus(&ms);\n    if (pvNil != pdwTotalPhys)\n        *pdwTotalPhys = ms.dwTotalPhys;\n    if (pvNil != pdwAvailPhys)\n        *pdwAvailPhys = ms.dwAvailPhys;\n#else\n    RawRtn();\n#endif //! WIN\n}\n\n/******************************************************************************\n    DypTextDef\n        Retrieves the default dypFont for this app.  Gets the font size as\n        a string from the app's string table, then converts it to the number\n        value.\n************************************************************ PETED ***********/\nlong APP::DypTextDef(void)\n{\n    AssertBaseThis(0);\n\n    if (_dypTextDef == 0)\n    {\n        STN stn;\n\n        if (pvNil == _pgstApp || !FGetStnApp(idsDefaultDypFont, &stn) || !stn.FGetLw(&_dypTextDef) || _dypTextDef <= 0)\n        {\n            Warn(\"DypTextDef failed\");\n            _dypTextDef = APP_PAR::DypTextDef();\n        }\n    }\n    return _dypTextDef;\n}\n\n/***************************************************************************\n    Ask the user if they want to save changes to the given doc.\n***************************************************************************/\ntribool APP::TQuerySaveDoc(PDOCB pdocb, bool fForce)\n{\n    AssertThis(0);\n    AssertPo(pdocb, 0);\n\n    STN stnName;\n    long tpc;\n    STN stnBackup;\n    long bk;\n    tribool tResult;\n\n    pdocb->GetName(&stnName);\n    tpc = fForce ? ktpcQuerySave : ktpcQuerySaveWithCancel;\n    if (!FGetStnApp(idsSaveChangesBkp, &stnBackup))\n        stnBackup.SetNil();\n    bk = fForce ? bkYesNo : bkYesNoCancel;\n\n    tResult = TModal(vpapp->PcrmAll(), tpc, &stnBackup, bk, kstidQuerySave, &stnName);\n    vpcex->EnqueueCid(cidQuerySaveDocResult, pvNil, pvNil, tResult);\n\n    return tResult;\n}\n\n/***************************************************************************\n    Quit routine.  May or may not initiate the quit sequence (depending\n    on user input).\n***************************************************************************/\nvoid APP::Quit(bool fForce)\n{\n    AssertThis(0);\n\n    bool tRet;\n    STN stnBackup;\n\n    // If we already know we have to quit, or a modal topic is already\n    // being  displayed, then do not query the user to quit here.\n    if (_fQuit || vpappb->CactModal() > (_pcex != pvNil ? 1 : 0) || FInPortfolio())\n    {\n        // Make sure the app is visible to the user. Otherwise if this\n        // return is preventing a system shutdown and we're minimized\n        // on the taskbar, then the user won't know why the shutdown failed.\n        if (!_fQuit)\n            EnsureInteractive();\n        return;\n    }\n\n    if (fForce)\n    {\n        // Force quit, don't ask the user if they want to quit.  But\n        // do ask if they want to save their documents.\n        DOCB::FQueryCloseAll(fdocForceClose);\n        _fQuit = fTrue;\n\n        return;\n    }\n\n    // If we're minimized, user is closing app from the taskbar.  Quit\n    // without confirmation (we'll still confirm movie save if user has\n    // a dirty doc)\n    if (_fMinimized)\n    {\n        tRet = tYes;\n    }\n    else\n    {\n        if (!FGetStnApp(idsConfirmExitBkp, &stnBackup))\n            stnBackup.SetNil();\n        tRet = TModal(vpapp->PcrmAll(), ktpcQueryQuit, &stnBackup, bkYesNo);\n    }\n\n    if (tRet == tYes)\n    {\n        // User wants to quit, so shut down studio if necessary\n        if (_pstdio == pvNil || _pstdio->FShutdown(fFalse))\n            _fQuit = fTrue;\n    }\n}\n\n/***************************************************************************\n    Return a pointer to the current movie, if any.  The movie could be in\n    the studio, theater, or splot machine.\n***************************************************************************/\nPMVIE APP::_Pmvie(void)\n{\n    AssertBaseThis(0);\n\n    PMVIE pmvie = pvNil;\n    PSPLOT psplot;\n\n    if (_pstdio != pvNil && _pstdio->Pmvie() != pvNil)\n        pmvie = _pstdio->Pmvie();\n    else if (_ptatr != pvNil && _ptatr->Pmvie() != pvNil)\n        pmvie = _ptatr->Pmvie();\n    else if (Pkwa() != pvNil)\n    {\n        psplot = (PSPLOT)Pkwa()->PgobFromCls(kclsSPLOT);\n        if (psplot != pvNil)\n            pmvie = psplot->Pmvie();\n    }\n    return pmvie;\n}\n\n/****************************************\n    Info dialog items (idits)\n****************************************/\nenum\n{\n    iditOkInfo,\n    iditProductId,\n    iditWindowModeInfo,\n#ifdef DEBUG\n    iditCactAV,\n#endif // DEBUG\n    iditProductNameInfo,\n    iditSaveChanges,\n    iditRenderModeInfo,\n    iditLimInfo\n};\n\n#ifdef WIN\n\n/***************************************************************************\n    Useful function\n***************************************************************************/\nchar *LoadGenResource(HINSTANCE hInst, LPCSTR lpResource, LPCSTR lpType)\n{\n    HRSRC hResource;\n    HGLOBAL hGbl;\n\n    hResource = FindResource(hInst, lpResource, lpType);\n\n    if (hResource == NULL)\n        return (NULL);\n\n    hGbl = LoadResource(hInst, hResource);\n\n    return (char *)LockResource(hGbl);\n}\n\n#endif\n\n/***************************************************************************\n    Put up info dialog\n***************************************************************************/\nbool APP::FCmdInfo(PCMD pcmd)\n{\n    AssertThis(0);\n    PMVIE pmvie = pvNil;\n    PDLG pdlg;\n    long idit;\n    bool fRunInWindowNew;\n    STN stn;\n    STN stnT;\n    bool fSaveChanges;\n\n    pmvie = _Pmvie();\n\n    pdlg = DLG::PdlgNew(dlidInfo, pvNil, pvNil);\n    if (pvNil == pdlg)\n        return fTrue;\n    pdlg->PutRadio(iditRenderModeInfo, _fSlowCPU ? 1 : 0);\n\n    GetStnAppName(&stn);\n#ifdef DEBUG\n    stn.FAppendSz(PszLit(\" (Debug)\"));\n#endif // DEBUG\n    stnT.FFormatSz(PszLit(\" %d.%d.%04d\"), rmj, rmm, rup);\n    stn.FAppendStn(&stnT);\n    pdlg->FPutStn(iditProductNameInfo, &stn);\n\n#ifdef WIN\n    LPSTR lpszPid;\n    char rgchPid[kcchMaxStn + 1];\n\n    lpszPid = (LPSTR)LoadGenResource(vwig.hinst, MAKEINTRESOURCE(RC_PID_NUMBER), RT_RCDATA);\n\n    if (lpszPid != pvNil)\n    {\n\n#define PID_RPC 128\n#define PID_SITE (PID_RPC + 5)\n#define PID_SERIAL (PID_SITE + 3)\n#define PID_RANDOM (PID_SERIAL + 7)\n\n        wsprintf(rgchPid, \"%5.5s-%3.3s-%7.7s-%5.5s\", lpszPid + PID_RPC, lpszPid + PID_SITE, lpszPid + PID_SERIAL,\n                 lpszPid + PID_RANDOM);\n\n        stn.SetSz(rgchPid);\n        pdlg->FPutStn(iditProductId, &stn);\n    }\n#endif\n\n#ifdef DEBUG\n    pdlg->FPutLwInEdit(iditCactAV, vcactAV);\n#endif // DEBUG\n    pdlg->PutRadio(iditWindowModeInfo, _fRunInWindow ? 1 : 0);\n\n    idit = pdlg->IditDo();\n\n    fSaveChanges = pdlg->FGetCheck(iditSaveChanges);\n    if (FPure(_fSlowCPU) != FPure(pdlg->LwGetRadio(iditRenderModeInfo)))\n    {\n        PMVIE pmvie;\n\n        _fSlowCPU = !_fSlowCPU;\n        pmvie = _Pmvie();\n        if (pvNil != pmvie)\n        {\n            pmvie->Pbwld()->FSetHalfMode(fFalse, _fSlowCPU);\n            pmvie->InvalViews();\n        }\n    }\n    if (fSaveChanges)\n    {\n        bool fSlowCPU = _fSlowCPU;\n        FGetSetRegKey(kszBetterSpeedValue, &fSlowCPU, size(bool), fregSetKey);\n    }\n\n    fRunInWindowNew = pdlg->LwGetRadio(iditWindowModeInfo);\n    if (FPure(_fRunInWindow) != FPure(fRunInWindowNew))\n    {\n        if (!fRunInWindowNew)\n        {\n            // user wants to be fullscreen\n            if (_FDisplaySwitchSupported())\n            {\n                _fRunInWindow = fFalse;\n                _RebuildMainWindow();\n                if (!_FSwitch640480(fTrue))\n                {\n                    _fRunInWindow = fTrue;\n                    _RebuildMainWindow();\n                }\n            }\n        }\n        else\n        {\n            // user wants to run in a window.\n            // Don't allow user to run in a window at 640x480 resolution.\n            if (!_FDisplayIs640480() || _fSwitchedResolution)\n            {\n                _fRunInWindow = fTrue;\n                _RebuildMainWindow();\n                if (_FSwitch640480(fFalse))\n                {\n                    _fSwitchedResolution = fFalse;\n                }\n                else\n                {\n                    // back to fullscreen\n                    _fRunInWindow = fFalse;\n                    _RebuildMainWindow();\n                }\n            }\n        }\n    }\n    if (fSaveChanges)\n    {\n        bool fSwitchRes = !_fRunInWindow;\n\n        FGetSetRegKey(kszSwitchResolutionValue, &fSwitchRes, size(fSwitchRes), fregSetKey);\n    }\n\n#ifdef DEBUG\n    {\n        bool fEmpty;\n        long lwT;\n\n        if (pdlg->FGetLwFromEdit(iditCactAV, &lwT, &fEmpty) && !fEmpty)\n        {\n            if (lwT < 0)\n            {\n                Debugger();\n            }\n            else\n            {\n                vcactAV = lwT;\n                if (fSaveChanges)\n                {\n                    DBINFO dbinfo;\n\n                    dbinfo.cactAV = vcactAV;\n                    AssertDo(FGetSetRegKey(PszLit(\"DebugSettings\"), &dbinfo, size(DBINFO), fregSetKey | fregBinary),\n                             \"Couldn't save current debug settings in registry\");\n                }\n            }\n        }\n    }\n#endif // DEBUG\n\n    ReleasePpo(&pdlg);\n\n    return fTrue;\n}\n\n#ifdef WIN\n#ifdef UNICODE\ntypedef LONG(WINAPI *PFNCHDS)(LPDEVMODEW lpDevMode, DWORD dwFlags);\nconst PSZ kpszChds = PszLit(\"ChangeDisplaySettingsW\");\n#else\ntypedef LONG(WINAPI *PFNCHDS)(LPDEVMODEA lpDevMode, DWORD dwFlags);\nconst PSZ kpszChds = PszLit(\"ChangeDisplaySettingsA\");\n#endif // !UNICODE\n\n#ifdef BUG1920\n#ifdef UNICODE\ntypedef BOOL(WINAPI *PFNENUM)(LPCWSTR lpszDeviceName, DWORD iModeNum, LPDEVMODEW lpDevMode);\nconst PSZ kpszEnum = PszLit(\"EnumDisplaySettingsW\");\n#else\ntypedef BOOL(WINAPI *PFNENUM)(LPCSTR lpszDeviceName, DWORD iModeNum, LPDEVMODEA lpDevMode);\nconst PSZ kpszEnum = PszLit(\"EnumDisplaySettingsA\");\n#endif // !UNICODE\n#endif // BUG1920\n#endif // WIN\n\n#ifndef DM_BITSPERPEL\n#define DM_BITSPERPEL 0x00040000L // from wingdi.h\n#define DM_PELSWIDTH 0x00080000L\n#define DM_PELSHEIGHT 0x00100000L\n#endif //! DM_BITSPERPEL\n\n#ifndef CDS_FULLSCREEN\n#define CDS_FULLSCREEN 4\n#endif //! CDS_FULLSCREEN\n\n#ifndef DISP_CHANGE_SUCCESSFUL\n#define DISP_CHANGE_SUCCESSFUL 0\n#endif //! DISP_CHANGE_SUCCESSFUL\n\n/***************************************************************************\n    Determine if display resolution switching is supported\n***************************************************************************/\nbool APP::_FDisplaySwitchSupported(void)\n{\n    AssertBaseThis(0);\n\n#ifdef WIN\n    DWORD dwVersion;\n    byte bVersionMajor;\n\n    dwVersion = GetVersion();\n    bVersionMajor = (byte)(dwVersion & 0x000000ff);\n    // FOONE: We don't care if it's NT or not, major version 4.0 means win95 and up or NT4.0 and up.\n    if (bVersionMajor >= 4)\n        return fTrue;\n#endif // WIN\n#ifdef MAC\n    RawRtn();\n#endif             // MAC\n    return fFalse; // OS doesn't support res-switching\n}\n\n/***************************************************************************\n    Switch to/from 640x480x8bit video mode.  It uses GetProcAddress so it\n    can fail gracefully on systems that don't support\n    ChangeDisplaySettings().\n***************************************************************************/\nbool APP::_FSwitch640480(bool fTo640480)\n{\n    AssertBaseThis(0);\n\n#ifdef WIN\n#ifdef BUG1920\n    bool fSetMode = fFalse, fSetBbp = fTrue;\n    DWORD iModeNum;\n    PFNENUM pfnEnum;\n#endif // BUG1920\n    HINSTANCE hLibrary;\n    PFNCHDS pfnChds;\n    DEVMODE devmode;\n    long lwResult;\n\n    hLibrary = LoadLibrary(PszLit(\"USER32.DLL\"));\n    if (0 == hLibrary)\n        goto LFail;\n\n    pfnChds = (PFNCHDS)GetProcAddress(hLibrary, kpszChds);\n    if (pvNil == pfnChds)\n        goto LFail;\n\n#ifdef BUG1920\n    pfnEnum = (PFNENUM)GetProcAddress(hLibrary, kpszEnum);\n    if (pvNil == pfnEnum)\n        goto LFail;\n#endif // BUG1920\n\n    if (fTo640480)\n    {\n        // Try to switch to 640x480\n#ifdef BUG1920\n    LRetry:\n        for (iModeNum = 0; pfnEnum(NULL, iModeNum, &devmode); iModeNum++)\n        {\n            if ((fSetBbp ? devmode.dmBitsPerPel != 8 : devmode.dmBitsPerPel < 8) || devmode.dmPelsWidth != 640 ||\n                devmode.dmPelsHeight != 480)\n            {\n                continue;\n            }\n            lwResult = pfnChds(&devmode, CDS_FULLSCREEN);\n            if (lwResult == DISP_CHANGE_SUCCESSFUL)\n            {\n                fSetMode = fTrue;\n                break;\n            }\n        }\n        if (!fSetMode && fSetBbp)\n        {\n            fSetBbp = fFalse;\n            goto LRetry;\n        }\n\n        if (fSetMode && _FDisplayIs640480())\n#else  // BUG1920\n        devmode.dmSize = size(DEVMODE);\n        devmode.dmBitsPerPel = 8;\n        devmode.dmPelsWidth = 640;\n        devmode.dmPelsHeight = 480;\n        devmode.dmFields = DM_BITSPERPEL | DM_PELSWIDTH | DM_PELSHEIGHT;\n        lwResult = pfnChds(&devmode, CDS_FULLSCREEN);\n        if (DISP_CHANGE_SUCCESSFUL != lwResult)\n        {\n            // try without setting the bpp\n            devmode.dmFields &= ~DM_BITSPERPEL;\n            lwResult = pfnChds(&devmode, CDS_FULLSCREEN);\n        }\n\n        if (DISP_CHANGE_SUCCESSFUL == lwResult && _FDisplayIs640480())\n#endif // !BUG1920\n        {\n            _fSwitchedResolution = fTrue;\n            SetWindowPos(vwig.hwndApp, HWND_TOP, 0, 0, 640, 480, 0);\n        }\n        else\n        {\n            goto LFail;\n        }\n    }\n    else\n    {\n        // Try to restore user's previous resolution\n        lwResult = pfnChds(NULL, CDS_FULLSCREEN);\n        if (DISP_CHANGE_SUCCESSFUL != lwResult)\n            goto LFail;\n    }\n    FreeLibrary(hLibrary);\n    return fTrue;\nLFail:\n    if (0 != hLibrary)\n        FreeLibrary(hLibrary);\n#endif // WIN\n#ifdef MAC\n    RawRtn();\n#endif // MAC\n    return fFalse;\n}\n\n/***************************************************************************\n    Clean up routine - app is shutting down\n***************************************************************************/\nvoid APP::_CleanUp(void)\n{\n    _FWriteUserData();\n    ReleasePpo(&_pstdio);\n    ReleasePpo(&_ptatr);\n    ReleasePpo(&_pcfl);\n    ReleasePpo(&_pmvieHandoff);\n    ReleasePpo(&_pcrmAll);\n    ReleasePpo(&_pglicrfBuilding);\n    ReleasePpo(&_pglicrfStudio);\n    ReleasePpo(&_pgstBuildingFiles);\n    ReleasePpo(&_pgstStudioFiles);\n    ReleasePpo(&_pgstSharedFiles);\n    ReleasePpo(&_pgstApp);\n    ReleasePpo(&_pkwa);\n    BWLD::CloseBRender();\n    APP_PAR::_CleanUp();\n    if (_fSwitchedResolution)\n        _FSwitch640480(fFalse); // try to restore desktop\n}\n\n/***************************************************************************\n    Put up a modal help balloon\n***************************************************************************/\ntribool APP::TModal(PRCA prca, long tpc, PSTN pstnBackup, long bkBackup, long stidSubst, PSTN pstnSubst)\n{\n    AssertThis(0);\n    AssertNilOrPo(prca, 0);\n\n    long lwSelect;\n    tribool tRet;\n    STN stn;\n\n    // If app is minimized, restore it so user can see the dialog\n    EnsureInteractive();\n\n    if (ivNil != stidSubst)\n    {\n        AssertPo(pstnSubst, 0);\n        if (!Pkwa()->Pstrg()->FPut(stidSubst, pstnSubst))\n            return tMaybe;\n    }\n\n    if (pvNil == prca || !Pkwa()->FModalTopic(prca, tpc, &lwSelect))\n    {\n        // Backup plan: use old TGiveAlertSz.\n        if (pvNil != pstnSubst)\n            stn.FFormat(pstnBackup, pstnSubst);\n        else\n            stn = *pstnBackup;\n        tRet = TGiveAlertSz(stn.Psz(), bkBackup, cokExclamation);\n    }\n    else\n    {\n        // Help balloon appeared ok, so translate returned value into\n        // something we can use here.  lwSelect is returned as the\n        // (1 based) index of the btn clicked, out of Yes/No/Cancel.\n        switch (lwSelect)\n        {\n        case 1:\n            tRet = tYes;\n            break;\n        case 2:\n            tRet = tNo;\n            break;\n        case 3:\n            tRet = tMaybe;\n            break;\n        default:\n            Bug(\"TModal() balloon returned unrecognized selection\");\n            tRet = tMaybe;\n        }\n    }\n\n    if (ivNil != stidSubst)\n        Pkwa()->Pstrg()->Delete(stidSubst);\n    UpdateMarked(); // make sure alert is drawn over\n    return tRet;\n}\n\n/***************************************************************************\n    Static function to prompt the user to insert the CD named pstnTitle\n***************************************************************************/\nbool APP::FInsertCD(PSTN pstnTitle)\n{\n    AssertPo(pstnTitle, 0);\n\n    STN stnBackup;\n    bool tRet;\n\n    stnBackup = PszLit(\"I can't find the CD '%s'  Please insert it.  Should I look again?\");\n    tRet = vpapp->TModal(vpapp->PcrmAll(), ktpcQueryCD, &stnBackup, bkYesNo, kstidQueryCD, pstnTitle);\n\n    /* Don't tell the user that they told us not to try again; they know\n        that already */\n    if (tRet == tNo)\n        vapp._fDontReportInitFailure = fTrue;\n\n    return (tYes == tRet);\n}\n\n/******************************************************************************\n    DisplayErrors\n        Displays any errors that happen to be on the error stack.  Call this\n        when you don't want to wait until idle time to show errors.\n************************************************************ PETED ***********/\nvoid APP::DisplayErrors(void)\n{\n    AssertThis(0);\n\n    long erc;\n    STN stnMessage;\n\n    if (vpers->FPop(&erc))\n    {\n        STN stnErr;\n\n        vpers->Clear();\n\n        //\n        // Convert to help topic number\n        //\n        switch (erc)\n        {\n        case ercOomHq:\n            erc = ktpcercOomHq;\n            break;\n\n        case ercOomPv:\n            erc = ktpcercOomPv;\n            break;\n\n        case ercOomNew:\n            erc = ktpcercOomNew;\n            break;\n\n        /* We don't have any real specific information to present the user in\n            these cases, plus they generally shouldn't come up anyway (a more\n            informational error should have been pushed farther up the chain\n            of error reporters) */\n        case ercFilePerm:\n        case ercFileOpen:\n        case ercFileCreate:\n        case ercFileSwapNames:\n        case ercFileRename:\n        case ercFniGeneral:\n        case ercFniDelete:\n        case ercFniRename:\n        case ercFniMismatch:\n        case ercFniDirCreate:\n        case ercFneGeneral:\n        case ercCflCreate:\n        case ercCflSaveCopy:\n        case ercSndmCantInit:\n        case ercSndmPartialInit:\n        case ercGfxCantDraw:\n        case ercGfxCantSetFont:\n        case ercGfxNoFontList:\n        case ercGfxCantSetPalette:\n        case ercDlgCantGetArgs:\n        case ercDlgCantFind:\n        case ercRtxdTooMuchText:\n        case ercRtxdReadFailed:\n        case ercRtxdSaveFailed:\n        case ercCantOpenVideo:\n        case ercMbmpCantOpenBitmap:\n\n        /* In theory, these are obsolete. */\n        case ercSocTdtTooLong:\n        case ercSocWaveInProblems:\n        case ercSocCreatedUserDir:\n\n            /* Display a generic error message, with the error code in it */\n            stnErr.FFormatSz(PszLit(\"%d\"), erc);\n            if (!vapp.Pkwa()->Pstrg()->FPut(kstidGenericError, &stnErr))\n                stnErr.SetNil();\n            erc = ktpcercSocGenericError;\n            break;\n\n        case ercFileGeneral:\n            erc = ktpcercFileGeneral;\n            break;\n\n        case ercCflOpen:\n            erc = ktpcercCflOpen;\n            break;\n\n        case ercCflSave:\n            erc = ktpcercCflSave;\n            break;\n\n        case ercCrfCantLoad:\n            erc = ktpcercCrfCantLoad;\n            break;\n\n        case ercFniHidden:\n            erc = ktpcercFniHidden;\n            break;\n\n        case ercOomGdi:\n            erc = ktpcercOomGdi;\n            break;\n\n        case ercDlgOom:\n            erc = ktpcercDlgOom;\n            break;\n\n        case ercCantSave:\n            erc = ktpcercCantSave;\n            break;\n\n        case ercSocSaveFailure:\n            erc = ktpcercSocSaveFailure;\n            break;\n\n        case ercSocSceneSwitch:\n            erc = ktpcercSocSceneSwitch;\n            break;\n\n        case ercSocSceneChop:\n            erc = ktpcercSocSceneChop;\n            break;\n\n        case ercSocBadFile:\n            erc = ktpcercSocBadFile;\n            break;\n\n        case ercSocNoTboxSelected:\n            erc = ktpcercSocNoTboxSelected;\n            break;\n\n        case ercSocNoActrSelected:\n            erc = ktpcercSocNoActrSelected;\n            break;\n\n        case ercSocNotUndoable:\n            erc = ktpcercSocNotUndoable;\n            break;\n\n        case ercSocNoScene:\n            erc = ktpcercSocNoScene;\n            break;\n\n        case ercSocBadVersion:\n            erc = ktpcercSocBadVersion;\n            break;\n\n        case ercSocNothingToPaste:\n            erc = ktpcercSocNothingToPaste;\n            break;\n\n        case ercSocBadFrameSlider:\n            erc = ktpcercSocBadFrameSlider;\n            break;\n\n        case ercSocGotoFrameFailure:\n            erc = ktpcercSocGotoFrameFailure;\n            break;\n\n        case ercSocDeleteBackFailure:\n            erc = ktpcercSocDeleteBackFailure;\n            break;\n\n        case ercSocActionNotApplicable:\n            erc = ktpcercSocActionNotApplicable;\n            break;\n\n        case ercSocCannotPasteThatHere:\n            erc = ktpcercSocCannotPasteThatHere;\n            break;\n\n        case ercSocNoModlForChar:\n            erc = ktpcercSocNoModlForChar;\n            break;\n\n        case ercSocNameTooLong:\n            erc = ktpcercSocNameTooLong;\n            break;\n\n        case ercSocTboxTooSmall:\n            erc = ktpcercSocTboxTooSmall;\n            break;\n\n        case ercSocNoThumbnails:\n            erc = ktpcercSocNoThumbnails;\n            break;\n\n        case ercSocBadTdf:\n            erc = ktpcercSocBadTdf;\n            break;\n\n        case ercSocNoActrMidi:\n            erc = ktpcercSocNoActrMidi;\n            break;\n\n        case ercSocNoImportRollCall:\n            erc = ktpcercSocNoImportRollCall;\n            break;\n\n        case ercSocNoNukeRollCall:\n            erc = ktpcercSocNoNukeRollCall;\n            break;\n\n        case ercSocSceneSortError:\n            erc = ktpcercSocSceneSortError;\n            break;\n\n        case ercSocCantInitSceneSort:\n            erc = ktpcercSocCantInitSceneSort;\n            break;\n\n        case ercSocCantInitSplot:\n            erc = ktpcercSocCantInitSplot;\n            break;\n\n        case ercSocNoWaveIn:\n            erc = ktpcercSocNoWaveIn;\n            break;\n\n        case ercSocPortfolioFailed:\n            erc = ktpcercSocPortfolioFailed;\n            break;\n\n        case ercSocCantInitStudio:\n            erc = ktpcercSocCantInitStudio;\n            break;\n\n        case ercSoc3DWordCreate:\n            erc = ktpcercSoc3DWordCreate;\n            break;\n\n        case ercSoc3DWordChange:\n            erc = ktpcercSoc3DWordChange;\n            break;\n\n        case ercSocWaveSaveFailure:\n            erc = ktpcercSocWaveSaveFailure;\n            break;\n\n        case ercSocNoSoundName:\n            erc = ktpcercSocNoSoundName;\n            break;\n\n        case ercSndamWaveDeviceBusy:\n            erc = ktpcercSndamWaveDeviceBusy;\n            break;\n\n        case ercSocNoKidSndsInMovie:\n            erc = ktpcercSocNoKidSndsInMovie;\n            break;\n\n        case ercSocMissingMelanieDoc:\n            erc = ktpcercSocMissingMelanieDoc;\n            break;\n\n        case ercSocCantLoadMelanieDoc:\n            erc = ktpcercSocCantLoadMelanieDoc;\n            break;\n\n        case ercSocBadSoundFile:\n            erc = ktpcercSocBadSoundFile;\n            break;\n\n        case ercSocBadSceneSound:\n            erc = ktpcercSocBadSceneSound;\n            break;\n\n        case ercSocNoDefaultFont:\n            erc = ktpcercSocNoDefaultFont;\n            break;\n\n        case ercSocCantCacheTag:\n            erc = ktpcercSocCantCacheTag;\n            break;\n\n        case ercSocInvalidFilename:\n            erc = ktpcercSocInvalidFilename;\n            break;\n\n        case ercSndMidiDeviceBusy:\n            erc = ktpcercSndMidiDeviceBusy;\n            break;\n\n        case ercSocCantCopyMsnd:\n            erc = ktpcercSocCantCopyMsnd;\n            break;\n\n        default:\n            return;\n        }\n\n        FGetStnApp(idsOOM, &stnMessage);\n        TModal(PcrmAll(), erc, &stnMessage, bkOk);\n        if (stnErr.Cch() != 0)\n            vapp.Pkwa()->Pstrg()->Delete(kstidGenericError);\n    }\n}\n\n/***************************************************************************\n    Idle routine.  Do APPB idle stuff, then report any runtime errors.\n***************************************************************************/\nbool APP::FCmdIdle(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    bool fFileError = fFalse;\n    PCFL pcfl;\n\n    APP_PAR::FCmdIdle(pcmd);\n\n    /* Check all open chunky files for errors */\n    for (pcfl = CFL::PcflFirst(); pcfl != pvNil; pcfl = (PCFL)pcfl->PbllNext())\n    {\n        if (pcfl->ElError() != elNil)\n        {\n            fFileError = fTrue;\n            pcfl->ResetEl();\n        }\n    }\n    /* Ensure that we report *something* if there was a file error */\n    if (fFileError && vpers->Cerc() == 0)\n        PushErc(ercFileGeneral);\n\n    DisplayErrors();\n\n    return fTrue;\n}\n\n#ifdef WIN\n/***************************************************************************\n    Tell another instance of the app to open a document.\n***************************************************************************/\nbool APP::_FSendOpenDocCmd(HWND hwnd, PFNI pfniUserDoc)\n{\n    AssertBaseThis(0);\n    Assert(pvNil != hwnd, \"bad hwnd\");\n    AssertPo(pfniUserDoc, ffniFile);\n\n    STN stnUserDoc;\n    STN stn;\n    FNI fniTemp;\n    PFIL pfil = pvNil;\n    BLCK blck;\n    DWORD dwProcId;\n\n    // Write filename to 3DMMOpen.tmp in the temp dir\n    pfniUserDoc->GetStnPath(&stnUserDoc);\n    if (!fniTemp.FGetTemp())\n        goto LFail;\n    stn = kpszOpenFile;\n    if (!fniTemp.FSetLeaf(&stn, kftgTemp))\n        goto LFail;\n    if (tYes == fniTemp.TExists())\n    {\n        // replace any existing open-doc request\n        if (!fniTemp.FDelete())\n            goto LFail;\n    }\n    pfil = FIL::PfilCreate(&fniTemp);\n    if (pvNil == pfil)\n        goto LFail;\n    if (!pfil->FSetFpMac(stnUserDoc.CbData()))\n        goto LFail;\n    blck.Set(pfil, 0, stnUserDoc.CbData());\n    if (!stnUserDoc.FWrite(&blck, 0))\n        goto LFail;\n    blck.Free(); // so it doesn't reference pfil anymore\n    ReleasePpo(&pfil);\n#ifdef WIN\n    dwProcId = GetWindowThreadProcessId(hwnd, NULL);\n    PostThreadMessage(dwProcId, WM_USER, klwOpenDoc, 0);\n#else\n    RawRtn();\n#endif //! WIN\n    return fTrue;\nLFail:\n    blck.Free(); // so it doesn't reference pfil anymore\n    ReleasePpo(&pfil);\n    return fFalse;\n}\n#endif // WIN\n\n#ifdef WIN\n/***************************************************************************\n    Process a request (from another instance of the app) to open a document\n***************************************************************************/\nbool APP::_FProcessOpenDocCmd(void)\n{\n    AssertBaseThis(0);\n\n    STN stnUserDoc;\n    STN stn;\n    FNI fniTemp;\n    PFIL pfil = pvNil;\n    FNI fniUserDoc;\n    BLCK blck;\n\n    // Find the temp file\n    if (!fniTemp.FGetTemp())\n        return fFalse;\n    stn = kpszOpenFile;\n    if (!fniTemp.FSetLeaf(&stn, kftgTemp))\n        return fFalse;\n    if (tYes != fniTemp.TExists())\n    {\n        Bug(\"Got a ProcessOpenDocCmd but there's no temp file!\");\n        return fFalse;\n    }\n\n    // See if we can accept open document commands now: If accelerators\n    // are enabled, then ctrl-o is enabled, so open-document commands are\n    // acceptable.\n    if (_cactDisable > 0 || CactModal() > 0)\n        goto LFail;\n\n    // Read the document filename from temp file\n    pfil = FIL::PfilOpen(&fniTemp);\n    if (pvNil == pfil)\n        goto LFail;\n    blck.Set(pfil, 0, pfil->FpMac());\n    if (!stnUserDoc.FRead(&blck, 0))\n        goto LFail;\n    blck.Free(); // so it doesn't reference pfil anymore\n    ReleasePpo(&pfil);\n\n    if (!fniUserDoc.FBuildFromPath(&stnUserDoc))\n        goto LFail;\n    if (pvNil == _pstdio)\n    {\n        SetPortfolioDoc(&fniUserDoc);\n        vpcex->EnqueueCid(cidLoadStudioDoc); // this will load the portfolio doc\n    }\n    else\n    {\n        // ignore failure\n        _pstdio->FLoadMovie(&fniUserDoc);\n    }\n\n    fniTemp.FDelete(); // ignore failure\n    return fTrue;\nLFail:\n    blck.Free(); // so it doesn't reference pfil anymore\n    ReleasePpo(&pfil);\n    fniTemp.FDelete(); // ignore failure\n    return fFalse;\n}\n#endif // WIN\n\n#ifdef WIN\n/***************************************************************************\n    Override standard _FGetNextEvt to catch WM_USER event.  Otherwise\n    the event will get thrown away, because the event's hwnd is nil.\n***************************************************************************/\nbool APP::_FGetNextEvt(PEVT pevt)\n{\n    AssertThis(0);\n    AssertVarMem(pevt);\n\n    if (!APP_PAR::_FGetNextEvt(pevt))\n        return fFalse;\n    if (pevt->message != WM_USER || pevt->wParam != klwOpenDoc)\n        return fTrue;\n    _FProcessOpenDocCmd(); // ignore failure\n    return fFalse;         // we've handled the WM_USER event\n}\n#endif // WIN\n\n/***************************************************************************\n    Override default _FastUpdate to optionally skip offscreen buffer\n***************************************************************************/\nvoid APP::_FastUpdate(PGOB pgob, PREGN pregnClip, ulong grfapp, PGPT pgpt)\n{\n    AssertBaseThis(0);\n\n    PMVIE pmvie;\n\n    pmvie = _Pmvie();\n\n    if (_fOnscreenDrawing && pvNil != pmvie && pmvie->FPlaying() &&\n        pmvie->Pscen()->Nfrm() != pmvie->Pscen()->NfrmFirst())\n    {\n        APP_PAR::_FastUpdate(pgob, pregnClip, grfapp | fappOnscreen, pgpt);\n    }\n    else\n    {\n        APP_PAR::_FastUpdate(pgob, pregnClip, grfapp, pgpt);\n    }\n}\n\n#ifdef WIN\n/***************************************************************************\n    Override default UpdateHwnd to optionally skip offscreen buffer\n***************************************************************************/\nvoid APP::UpdateHwnd(HWND hwnd, RC *prc, ulong grfapp)\n{\n    AssertBaseThis(0); // APP may not be completely valid\n\n    PMVIE pmvie;\n\n    pmvie = _Pmvie();\n\n    if (_fOnscreenDrawing && pvNil != pmvie && pmvie->FPlaying() &&\n        pmvie->Pscen()->Nfrm() != pmvie->Pscen()->NfrmFirst())\n    {\n        APP_PAR::UpdateHwnd(hwnd, prc, grfapp | fappOnscreen);\n    }\n    else\n    {\n        APP_PAR::UpdateHwnd(hwnd, prc, grfapp);\n    }\n}\n#endif // WIN\n\n#ifdef WIN\n\n#ifndef WM_DISPLAYCHANGE\n#define WM_DISPLAYCHANGE 0x007E // from winuser.h\n#endif                          // !WM_DISPLAYCHANGE\n\n/***************************************************************************\n    Handle Windows messages for the main app window. Return true iff the\n    default window proc should _NOT_ be called.\n***************************************************************************/\nbool APP::_FFrameWndProc(HWND hwnd, uint wm, WPARAM wParam, LPARAM lw, long *plwRet)\n{\n    AssertBaseThis(0);\n    AssertVarMem(plwRet);\n\n    switch (wm)\n    {\n    case WM_ERASEBKGND:\n        // Tell windows that we handled the Erase so it doesn't do one.\n        // In general we don't want to erase our background ahead of time.\n        // This prevents AVIs from flashing.\n        *plwRet = fTrue;\n        return fTrue;\n\n    case WM_SIZE: {\n        bool fRet;\n        long lwStyle;\n\n        fRet = APP_PAR::_FFrameWndProc(hwnd, wm, wParam, lw, plwRet);\n        lwStyle = GetWindowLong(hwnd, GWL_STYLE);\n        lwStyle &= ~WS_MAXIMIZEBOX;\n        if (wParam == SIZE_MINIMIZED)\n        {\n            _fMinimized = fTrue;\n            if (vpcex != pvNil)\n                lwStyle |= WS_SYSMENU;\n            else\n                lwStyle &= ~WS_SYSMENU;\n        }\n        else if (!_fRunInWindow)\n            lwStyle &= ~WS_SYSMENU;\n        SetWindowLong(hwnd, GWL_STYLE, lwStyle);\n        if (wParam == SIZE_RESTORED)\n        {\n            if (_fMainWindowCreated)\n                _RebuildMainWindow();\n            if (_fSwitchedResolution && _fMinimized)\n            {\n                if (!_FDisplayIs640480())\n                    _FSwitch640480(fTrue);\n            }\n            ShowWindow(vwig.hwndApp, SW_RESTORE); // restore app window\n            _fMinimized = fFalse;\n        }\n        return fRet;\n    }\n    case WM_DISPLAYCHANGE:\n        // Note that we don't need to do any of this if we're closing down\n        if (_fQuit)\n            break;\n\n        if (_FDisplayIs640480())\n        {\n            _fRunInWindow = fFalse;\n            _RebuildMainWindow();\n        }\n        else\n        {\n            // We're not running at 640x480 resolution now. Current design is that\n            // if we switch from 640x480 to higher while the app is minimized, the\n            // app it to still be full screen when restored. Therefore we don't\n            // need to change _fRunInWindow here, as that we remain the same as\n            // before the res switch, (as will the Windows properties for the app).\n            // All we need to is make a note that we're no longer running in the\n            // current windows settings resolution if we're running in full screen.\n\n            if (!_fRunInWindow)\n            {\n                _fSwitchedResolution = fTrue;\n\n                // If we're not minimized then we must switch to 640x480 resolution.\n                // Don't switch res unless we're the active app window\n\n                if (!_fMinimized && GetForegroundWindow() == vwig.hwndApp)\n                {\n                    if (!_FSwitch640480(fTrue))\n                        _fSwitchedResolution = fFalse;\n                }\n            }\n\n            // Call rebuild now to make sure the app window gets positioned\n            // at the centre of the screen. Note that none of the other\n            // window attributes will change beneath _RebuildMainWindow.\n            if (!_fMinimized)\n                _RebuildMainWindow();\n        }\n        return fTrue;\n\n    case WM_INITMENUPOPUP: {\n        // Disable the Close menu item if we are displaying a modal topic.\n        // The user can't exit until a modal topic is dismissed.\n\n        bool fDisableClose = (vpappb->CactModal() > (_pcex != pvNil ? 1 : 0));\n\n        EnableMenuItem((HMENU)wParam, SC_CLOSE,\n                       MF_BYCOMMAND | (fDisableClose ? (MF_DISABLED | MF_GRAYED) : MF_ENABLED));\n\n        break;\n    }\n    }\n\n    if ((_pstdio == pvNil) || (_pstdio->Pmvie() == pvNil))\n    {\n        return APP_PAR::_FFrameWndProc(hwnd, wm, wParam, lw, plwRet);\n    }\n\n    switch (wm)\n    {\n    case WM_QUERY_EXISTS:\n        *plwRet = _pstdio->Pmvie()->LwQueryExists(wParam, lw);\n        return (fTrue);\n\n    case WM_QUERY_LOCATION:\n        *plwRet = _pstdio->Pmvie()->LwQueryLocation(wParam, lw);\n        return (fTrue);\n\n    case WM_SET_MOVIE_POS:\n        *plwRet = _pstdio->Pmvie()->LwSetMoviePos(wParam, lw);\n        return (fTrue);\n\n    default:\n        return APP_PAR::_FFrameWndProc(hwnd, wm, wParam, lw, plwRet);\n    }\n}\n#endif // WIN\n\n/***************************************************************************\n *\n * Returns whether or not screen savers should be allowed.\n *\n * Parameters:\n *  None\n *\n * Returns:\n *  fTrue  - Screen savers should be allowed\n *  fFalse - Screen savers should be blocked\n *\n **************************************************************************/\nbool APP::FAllowScreenSaver(void)\n{\n    AssertBaseThis(0);\n\n    // Disable the screen saver if...\n    // 1. We're going to autominimize if a screen saver starts. Otherwise\n    //    the user would be confused when they get back to the machine.\n    // 2. We've switched resolutions, (ie we're full screen in a > 640x480 mode).\n    //    Otherwise the screen save only acts on a portion of the screen.\n\n    return !_FDisplayIs640480() && !_fSwitchedResolution;\n}\n\n/***************************************************************************\n    Disable the application accelerators\n***************************************************************************/\nvoid APP::DisableAccel(void)\n{\n    AssertBaseThis(0); // Gets called from destructors\n\n    if (_cactDisable == 0)\n    {\n#ifdef WIN\n        _haccel = vwig.haccel;\n        vwig.haccel = _haccelGlobal;\n#else\n        RawRtn();\n#endif\n    }\n\n    _cactDisable++;\n}\n\n/***************************************************************************\n    Enable the application accelerators\n***************************************************************************/\nvoid APP::EnableAccel(void)\n{\n    AssertBaseThis(0); // Gets called from destructors\n    Assert(_cactDisable > 0, \"Enable called w/o a disable\");\n\n    _cactDisable--;\n\n    if (_cactDisable == 0)\n    {\n#ifdef WIN\n        vwig.haccel = _haccel;\n#else\n        RawRtn();\n#endif\n    }\n}\n\n/***************************************************************************\n *\n * Handle disable accelerator command\n *\n * Parameters:\n *  pcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool APP::FCmdDisableAccel(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    DisableAccel();\n    return fTrue;\n}\n\n/***************************************************************************\n *\n * Handle enable accelerator command\n *\n * Parameters:\n *  pcmd - Pointer to the command to process.\n *\n * Returns:\n *  fTrue if it handled the command, else fFalse.\n *\n **************************************************************************/\nbool APP::FCmdEnableAccel(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n    EnableAccel();\n    return fTrue;\n}\n\n/******************************************************************************\n    FCmdInvokeSplot\n        Invokes the splot machine.\n\n    Arguments:\n        PCMD pcmd\n            rglw[0]  --  contains the GOB id of the parent of the Splot machine\n            rglw[1]  --  contains the GOB id of the Splot machine itself\n\n    Returns: fTrue always\n\n************************************************************ PETED ***********/\nbool APP::FCmdInvokeSplot(PCMD pcmd)\n{\n    AssertThis(0);\n    AssertVarMem(pcmd);\n\n    PSPLOT psplot;\n\n    psplot = SPLOT::PsplotNew(pcmd->rglw[0], pcmd->rglw[1], _pcrmAll);\n    if (psplot == pvNil)\n        PushErc(ercSocCantInitSplot);\n\n    return fTrue;\n}\n\n/***************************************************************************\n    Handoff a movie to the app so it can pass it on to the studio\n***************************************************************************/\nvoid APP::HandoffMovie(PMVIE pmvie)\n{\n    AssertThis(0);\n    AssertPo(pmvie, 0);\n\n    ReleasePpo(&_pmvieHandoff);\n    _pmvieHandoff = pmvie;\n    _pmvieHandoff->AddRef();\n}\n\n/***************************************************************************\n    Grab the APP movie\n***************************************************************************/\nPMVIE APP::PmvieRetrieve(void)\n{\n    AssertThis(0);\n\n    PMVIE pmvie = _pmvieHandoff;\n\n    _pmvieHandoff = pvNil; //  Caller now owns this pointer\n    return pmvie;\n}\n\n#ifdef BUG1085\n/******************************************************************************\n    HideCurs\n    ShowCurs\n    PushCurs\n    PopCurs\n\n        Some simple cursor restoration functionality, for use when a modal\n        topic comes up.  Assumes that you won't try to mess with the cursor\n        state while you've got the old cursor state pushed, and that you won't\n        try to push the cursor state while you've already got the old cursor\n        state pushed.\n\n************************************************************ PETED ***********/\nvoid APP::HideCurs(void)\n{\n    AssertThis(0);\n\n    Assert(_cactCursHide != ivNil, \"Can't hide cursor in Push/PopCurs pair\");\n    _cactCursHide++;\n    APP_PAR::HideCurs();\n}\n\nvoid APP::ShowCurs(void)\n{\n    AssertThis(0);\n\n    Assert(_cactCursHide > 0, \"Unbalanced ShowCurs call\");\n    _cactCursHide--;\n    APP_PAR::ShowCurs();\n}\n\nvoid APP::PushCurs(void)\n{\n    AssertThis(0);\n\n    Assert(_cactCursHide != ivNil, \"Can't nest cursor restoration\");\n    _cactCursSav = _cactCursHide;\n    while (_cactCursHide)\n        ShowCurs();\n    _cactCursHide = ivNil;\n}\n\nvoid APP::PopCurs(void)\n{\n    AssertThis(0);\n\n    Assert(_cactCursHide == ivNil, \"Unbalanced cursor restoration\");\n    _cactCursHide = 0;\n    while (_cactCursHide < _cactCursSav)\n        HideCurs();\n}\n#endif // BUG1085\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the APP\n***************************************************************************/\nvoid APP::AssertValid(ulong grf)\n{\n    APP_PAR::AssertValid(0);\n    AssertNilOrPo(_pstdio, 0);\n    AssertNilOrPo(_ptatr, 0);\n    AssertNilOrPo(_pmvieHandoff, 0);\n    AssertPo(_pcfl, 0);\n    AssertPo(_pgstStudioFiles, 0);\n    AssertPo(_pgstBuildingFiles, 0);\n    AssertPo(_pgstSharedFiles, 0);\n    AssertPo(_pgstApp, 0);\n    AssertPo(_pkwa, 0);\n    AssertPo(_pgstApp, 0);\n    AssertPo(_pcrmAll, 0);\n    AssertPo(_pglicrfBuilding, 0);\n    AssertPo(_pglicrfStudio, 0);\n    AssertNilOrPo(_pcex, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the APP\n***************************************************************************/\nvoid APP::MarkMem(void)\n{\n    AssertThis(0);\n    APP_PAR::MarkMem();\n    MarkMemObj(vptagm);\n    MTRL::MarkShadeTable();\n    TDT::MarkActionNames();\n    MarkMemObj(_pstdio);\n    MarkMemObj(_ptatr);\n    MarkMemObj(_pmvieHandoff);\n    MarkMemObj(_pcfl);\n    MarkMemObj(_pgstStudioFiles);\n    MarkMemObj(_pgstBuildingFiles);\n    MarkMemObj(_pgstSharedFiles);\n    MarkMemObj(_pgstApp);\n    MarkMemObj(_pkwa);\n    MarkMemObj(_pgstApp);\n    MarkMemObj(_pcrmAll);\n    MarkMemObj(_pglicrfBuilding);\n    MarkMemObj(_pglicrfStudio);\n    MarkMemObj(_pcex);\n}\n#endif // DEBUG\n\n//\n//\n//\n//  KWA (KidWorld for App) stuff begins here\n//\n//\n//\n\n/***************************************************************************\n    KWA destructor\n***************************************************************************/\nKWA::~KWA(void)\n{\n    ReleasePpo(&_pmbmp);\n}\n\n/***************************************************************************\n    Set the KWA's MBMP (for splash screen)\n***************************************************************************/\nvoid KWA::SetMbmp(PMBMP pmbmp)\n{\n    AssertThis(0);\n    AssertNilOrPo(pmbmp, 0);\n\n    RC rc;\n\n    if (pvNil != pmbmp)\n        pmbmp->AddRef();\n    ReleasePpo(&_pmbmp);\n    _pmbmp = pmbmp;\n    GetRcVis(&rc, cooLocal);\n    vpappb->MarkRc(&rc, this);\n}\n\n/***************************************************************************\n    Draw the KWA's MBMP, if any (for splash screen)\n***************************************************************************/\nvoid KWA::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n\n    if (pvNil != _pmbmp)\n        pgnv->DrawMbmp(_pmbmp, 0, 0);\n}\n\n/***************************************************************************\n    Find a file given a string.\n***************************************************************************/\nbool KWA::FFindFile(PSTN pstnSrc, PFNI pfni)\n{\n    AssertThis(0);\n    AssertPo(pstnSrc, 0);\n    AssertPo(pfni, 0);\n\n    return vptagm->FFindFile(vapp.SidProduct(), pstnSrc, pfni, FAskForCD());\n}\n\n/***************************************************************************\n    Do a modal help topic.\n***************************************************************************/\nbool KWA::FModalTopic(PRCA prca, CNO cnoTopic, long *plwRet)\n{\n    AssertThis(0);\n    AssertPo(prca, 0);\n    AssertVarMem(plwRet);\n\n    bool fRet;\n\n    // Take any special action here if necessary, before the\n    // modal help topic is displayed. (Eg, disable help keys).\n\n    // Now take the default action.\n#ifdef BUG1085\n    vapp.PushCurs();\n    fRet = KWA_PAR::FModalTopic(prca, cnoTopic, plwRet);\n    vapp.PopCurs();\n#else\n    fRet = KWA_PAR::FModalTopic(prca, cnoTopic, plwRet);\n#endif // !BUG1085\n\n    // Let script know that the modal topic has been dismissed.\n    // This is required for the projects.\n    vpcex->EnqueueCid(cidModalTopicClosed, 0, 0, *plwRet);\n\n    return fRet;\n}\n\n#ifdef DEBUG\n/***************************************************************************\n    Assert the validity of the KWA\n***************************************************************************/\nvoid KWA::AssertValid(ulong grf)\n{\n    KWA_PAR::AssertValid(0);\n    AssertNilOrPo(_pmbmp, 0);\n}\n\n/***************************************************************************\n    Mark memory used by the KWA\n***************************************************************************/\nvoid KWA::MarkMem(void)\n{\n    AssertThis(0);\n    KWA_PAR::MarkMem();\n    MarkMemObj(_pmbmp);\n}\n#endif // DEBUG\n"
  },
  {
    "path": "src/studio/utest.rc",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//Microsoft Visual C++ generated resource script.\n//\n#include \"utestres.h\"\n\n#define APSTUDIO_READONLY_SYMBOLS\n/////////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 2 resource.\n//\n#define APSTUDIO_HIDDEN_SYMBOLS\n#include \"windows.h\"\n#undef APSTUDIO_HIDDEN_SYMBOLS\n#include \"framedef.h\"\n\n/////////////////////////////////////////////////////////////////////////////\n#undef APSTUDIO_READONLY_SYMBOLS\n\n\n#ifdef APSTUDIO_INVOKED\n/////////////////////////////////////////////////////////////////////////////\n//\n// TEXTINCLUDE\n//\n\n1 TEXTINCLUDE DISCARDABLE \nBEGIN\n    \"utestres.h\\0\"\nEND\n\n2 TEXTINCLUDE DISCARDABLE \nBEGIN\n    \"#define APSTUDIO_HIDDEN_SYMBOLS\\r\\n\"\n    \"#include \"\"windows.h\"\"\\r\\n\"\n    \"#undef APSTUDIO_HIDDEN_SYMBOLS\\r\\n\"\n    \"#include \"\"framedef.h\"\"\\r\\n\"\n    \"\\0\"\nEND\n\n3 TEXTINCLUDE DISCARDABLE \nBEGIN\n    \"#include \"\"frame.rc\"\"\\r\\n\"\n    \"#include \"\"utest.rc2\"\"\\r\\n\"\n    \"\\0\"\nEND\n\n/////////////////////////////////////////////////////////////////////////////\n#endif    // APSTUDIO_INVOKED\n\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Accelerator\n//\n\nacidMain ACCELERATORS DISCARDABLE \nBEGIN\n    \"C\",            cidCopy,                VIRTKEY, CONTROL, NOINVERT\n    \"C\",            cidShiftCopy,           VIRTKEY, SHIFT, CONTROL, \n                                                    NOINVERT\n    \"I\",            cidInfo,                VIRTKEY, SHIFT, CONTROL, \n                                                    NOINVERT\n    \"M\",            cidMap,                 VIRTKEY, CONTROL, NOINVERT\n    \"N\",            cidNew,                 VIRTKEY, CONTROL, NOINVERT\n    \"O\",            cidOpen,                VIRTKEY, CONTROL, NOINVERT\n    \"Q\",            cidQuit,                VIRTKEY, CONTROL, NOINVERT\n    \"S\",            cidSave,                VIRTKEY, CONTROL, NOINVERT\n    \"V\",            cidPaste,               VIRTKEY, CONTROL, NOINVERT\n    VK_F1,          cidHelpBook,            VIRTKEY, NOINVERT\n    VK_F9,          cidToggleXY,            VIRTKEY, NOINVERT\n    VK_F10,         cidWriteBmps,           VIRTKEY, CONTROL, NOINVERT\n    \"X\",            cidCut,                 VIRTKEY, CONTROL, NOINVERT\n    \"X\",            cidShiftCut,            VIRTKEY, SHIFT, CONTROL, \n                                                    NOINVERT\n    \"Y\",            cidRedo,                VIRTKEY, CONTROL, NOINVERT\n    \"Z\",            cidUndo,                VIRTKEY, CONTROL, NOINVERT\nEND\n\nacidGlobal ACCELERATORS DISCARDABLE \nBEGIN\n    \"I\",            cidInfo,                VIRTKEY, SHIFT, CONTROL, \n                                                    NOINVERT\n    \"Q\",            cidQuit,                VIRTKEY, CONTROL, NOINVERT\nEND\n\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Icon\n//\n\nIDI_APP                 ICON    DISCARDABLE     \"studio\\\\bmp\\\\app.ico\"\nIDI_DOC                 ICON    DISCARDABLE     \"studio\\\\bmp\\\\doc.ico\"\nIDI_CD                  ICON    DISCARDABLE     \"studio\\\\bmp\\\\cd.ico\"\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Dialog\n//\n\ndlidBadOS DIALOG DISCARDABLE  0, 0, 185, 92\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Invalid Operating System Version\"\nFONT 8, \"MS Sans Serif\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDCANCEL,67,72,50,14\n    LTEXT           \"3D Movie Maker requires at least Windows95 or Windows NT version 3.51 to run.\",\n                    IDC_STATIC,12,12,160,50\nEND\n\ndlidNotEnoughColors DIALOG DISCARDABLE  0, 0, 185, 92\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Invalid Display Settings\"\nFONT 8, \"MS Sans Serif\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDCANCEL,67,72,50,14\n    LTEXT           \"3D Movie Maker requires your display to be set to at least 256 colors.  Please use your display control panel to set your display to 256 colors.\",\n                    IDC_STATIC,7,10,171,46\nEND\n\ndlidTooManyColors DIALOG DISCARDABLE  0, 0, 185, 114\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Display Settings\"\nFONT 8, \"MS Sans Serif\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDCANCEL,67,94,50,14\n    CONTROL         \"Don't show me this message again.\",IDC_CHECK1,\"Button\",\n                    BS_AUTOCHECKBOX | WS_TABSTOP,9,78,165,10\n    LTEXT           \"Your display is set to more than 256 colors.  3D Movie Maker will run faster on displays configured for 256 colors.  If you want maximum performance, use the Display control panel to set your display to 256 colors.\",\n                    IDC_STATIC,11,10,162,65\nEND\n\ndlidDesktopResizing DIALOG DISCARDABLE  0, 0, 274, 133\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Desktop Size\"\nFONT 8, \"MS Sans Serif\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDOK,145,113,50,14\n    PUSHBUTTON      \"Cancel\",IDCANCEL,79,113,50,14\n    LTEXT           \"3D Movie Maker will now attempt to resize your desktop.  This could take a few seconds, during which your screen might flicker.\",\n                    IDC_STATIC,10,8,255,23\n    LTEXT           \"If you do not want 3D Movie Maker to resize your desktop when it starts, press the Cancel button below.\",\n                    IDC_STATIC,10,71,254,16\n    LTEXT           \"If your screen does not stop flickering, wait 15 seconds and your original settings will be restored.\",\n                    IDC_STATIC,10,38,255,28\nEND\n\ndlidDesktopResized DIALOG DISCARDABLE  0, 0, 185, 119\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Display Size\"\nFONT 8, \"MS Sans Serif\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDOK,100,99,50,14\n    PUSHBUTTON      \"Cancel\",IDCANCEL,34,99,50,14\n    LTEXT           \"3D Movie Maker will switch your desktop down to this size when it starts.  This makes the program look better.\",\n                    IDC_STATIC,10,11,166,26\n    LTEXT           \"If you do not want 3D Movie Maker to resize your desktop when it starts, press the Cancel button below.\",\n                    IDC_STATIC,9,43,163,29\nEND\n\ndlidDesktopWontResize DIALOG DISCARDABLE  0, 0, 185, 92\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Desktop Size\"\nFONT 8, \"MS Sans Serif\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDCANCEL,67,72,50,14\n    LTEXT           \"3D Movie Maker has restored your original desktop size.  It will not attempt to automatically switch resolutions again.\",\n                    IDC_STATIC,9,10,165,37\nEND\n\ndlidInfo DIALOG DISCARDABLE  0, 0, 200, 238\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Product Info\"\nFONT 8, \"MS Sans Serif\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDCANCEL,68,222,50,14\n    LTEXT           \"Product Identification Number:\",IDC_STATIC,10,40,141,8\n    EDITTEXT        IDC_EDIT4,10,54,145,12,ES_AUTOHSCROLL | ES_READONLY | \n                    NOT WS_BORDER\n    CONTROL         \"Fullscreen\",IDC_RADIO4,\"Button\",BS_AUTORADIOBUTTON | \n                    WS_GROUP,15,87,156,10\n    CONTROL         \"Run in Window\",IDC_RADIO5,\"Button\",BS_AUTORADIOBUTTON,\n                    15,103,156,10\n#ifdef DEBUG\n    LTEXT           \"cactAV:\",IDC_STATIC,123,223,27,10\n    EDITTEXT        IDC_EDIT3,152,223,35,12,ES_AUTOHSCROLL\n#endif\n    LTEXT           \"(c) and (p) 1995 Microsoft Corporation.  All rights reserved.\",\n                    IDC_STATIC,10,27,192,8\n    EDITTEXT        IDC_EDIT2,11,6,149,13,ES_AUTOHSCROLL | ES_READONLY | NOT \n                    WS_BORDER\n    GROUPBOX        \"Display Options\",IDC_STATIC,10,74,170,49\n    CONTROL         \"Make these the default settings\",IDC_CHECK1,\"Button\",\n                    BS_AUTOCHECKBOX | WS_TABSTOP,10,193,170,18\n    GROUPBOX        \"Performance Options\",IDC_STATIC,10,129,170,50\n    CONTROL         \"Better Quality\",IDC_RADIO1,\"Button\",BS_AUTORADIOBUTTON | \n                    WS_GROUP,15,145,156,10\n    CONTROL         \"Better Speed\",IDC_RADIO2,\"Button\",BS_AUTORADIOBUTTON,15,\n                    161,156,10\nEND\n\ndlidInitFailed DIALOG DISCARDABLE  0, 0, 187, 71\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Initialization Failed\"\nFONT 8, \"MS Sans Serif\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDCANCEL,68,51,50,14\n    LTEXT           \"3D Movie maker could not start.  You may need to run Setup again.\",\n                    IDC_STATIC,8,11,166,25\nEND\n\ndlidInitFailedOOM DIALOG DISCARDABLE  0, 0, 187, 95\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Out of Memory\"\nFONT 8, \"MS Sans Serif\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDCANCEL,68,75,50,14\n    LTEXT           \"3D Movie Maker could not start because there is not enough memory available.\",\n                    IDC_STATIC,15,9,157,56\nEND\n\ndlidNoWaveOut DIALOG DISCARDABLE  0, 0, 185, 114\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Audio Settings\"\nFONT 8, \"MS Sans Serif\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDCANCEL,67,94,50,14\n    CONTROL         \"Don't show me this message again.\",IDC_CHECK1,\"Button\",\n                    BS_AUTOCHECKBOX | WS_TABSTOP,9,78,165,10\n    LTEXT           \"Your computer does not have the ability to play WAVE sounds.  You will not hear a lot of the sounds in 3D Movie Maker including audible help and character voices.\",\n                    IDC_STATIC,9,10,165,38\n    LTEXT           \"We strongly recommend using a sound card with the ability to play WAVE sounds.\",\n                    IDC_STATIC,9,50,165,22\nEND\n\ndlidNoMidiOut DIALOG DISCARDABLE  0, 0, 185, 114\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Audio Settings\"\nFONT 8, \"MS Sans Serif\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDCANCEL,67,94,50,14\n    CONTROL         \"Don't show me this message again.\",IDC_CHECK1,\"Button\",\n                    BS_AUTOCHECKBOX | WS_TABSTOP,9,78,165,10\n    LTEXT           \"Your computer does not have the ability to play MIDI sounds.  You will not hear a lot of the music in 3D Movie Maker.\",\n                    IDC_STATIC,9,10,165,38\n    LTEXT           \"We strongly recommend using a sound card with the ability to play MIDI sounds.\",\n                    IDC_STATIC,9,50,165,22\nEND\n\ndlidPortfolio DIALOG DISCARDABLE  0, 0, 426, 296\nSTYLE WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS\nFONT 8, \"MS Sans Serif\"\nBEGIN\n    LTEXT           \"\",1119,2,13,371,161,NOT WS_VISIBLE\n    CONTROL         \"\",IDC_PREVIEW,\"Static\",SS_SIMPLE,37,148,96,50\n    CONTROL         \"\",IDC_BUTTON1,\"Button\",BS_OWNERDRAW,369,257,33,26\n    CONTROL         \"\",IDC_BUTTON2,\"Button\",BS_OWNERDRAW,335,257,33,26\n    CONTROL         \"\",IDC_BUTTON3,\"Button\",BS_OWNERDRAW,283,257,33,26\nEND\n\ndlidCantFindFile DIALOG DISCARDABLE  0, 0, 243, 95\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Can't Find File\"\nFONT 8, \"MS Sans Serif\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDCANCEL,96,75,50,14\n    EDITTEXT        IDC_EDIT1,10,41,225,29,ES_MULTILINE | ES_READONLY | NOT \n                    WS_BORDER\n    LTEXT           \"Oops.  The following file or folder that we need was missing or unreadable.  To fix this problem, please Exit, and then run Microsoft 3D Movie Maker Setup again. (See your jewelcase booklet for instructions.)\",\n                    IDC_STATIC,10,6,225,34\nEND\n\ndlidGenericErrorBox DIALOG DISCARDABLE  0, 0, 243, 95\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"3D Movie Maker error\"\nFONT 8, \"MS Sans Serif\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDCANCEL,96,75,50,14\n    EDITTEXT        IDC_EDIT1,10,41,225,29,ES_MULTILINE | ES_READONLY | NOT \n                    WS_BORDER\n    LTEXT           \"3D Movie Maker ended unexpectedly:\",\n                    IDC_STATIC,10,6,225,34\nEND\n\n\ndlidAbnormalExit DIALOG DISCARDABLE  0, 0, 243, 95\nSTYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU\nCAPTION \"Unexpected Exit\"\nFONT 8, \"MS Sans Serif\"\nBEGIN\n    DEFPUSHBUTTON   \"OK\",IDCANCEL,96,75,50,14\n    LTEXT           \"3D Movie Maker ended unexpectedly.  Attempting to clean up.\",\n                    IDC_STATIC,9,9,225,26\nEND\n\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// String Table\n//\n\nSTRINGTABLE DISCARDABLE\nBEGIN\n    stidAppName             \"Microsoft 3D Movie Maker\"\n    stid3DMovieNameLong     \"3D Movie Maker\"\n    stid3DMovieNameShort    \"3DMovie\"\n\n    stidInstallDriverWin95  \"You do not have a multimedia driver needed by this application.  We will now try to to install the driver for you.  Once it is installed, you will need to restart the application.\"\n    stidInstallDriverNT     \"You do not have a multimedia driver needed by this application.  To install, select the drivers applet in the control panel. Press the ADD button and select the driver named above.\"\n    stidInstallCmdLine      \"RunDll.exe setupx.dll,InstallHinfSection \" // <section> <reboot mode> <inf name>\n\n    stidSectionName         \"MCIWAVE\"\n    stidSectionName + 1     \"MCIAVI\"\n    stidSectionName + 2     \"media_acm\"\n    stidSectionName + 3     \"media_acm\"\n    stidSectionName + 4     \"media_icm\"\n    stidSectionName + 5     \"media_icm\"\n\n    stidDriverName          \"[MCI] Sound\"\n    stidDriverName + 1      \"[MCI] Microsoft Video for Windows\"\n    stidDriverName + 2      \"Microsoft Audio Compression Manager\"\n    stidDriverName + 3      \"Microsoft ADPCM Audio CODEC\"\n    stidDriverName + 4      \"Microsoft Video 1\"\n    stidDriverName + 5      \"Indeo codec by Intel\"\nEND\n\n\n#ifndef APSTUDIO_INVOKED\n/////////////////////////////////////////////////////////////////////////////\n//\n// Generated from the TEXTINCLUDE 3 resource.\n//\n#include \"frame.rc\"\n#include \"utest.rc2\"\n\n/////////////////////////////////////////////////////////////////////////////\n#endif    // not APSTUDIO_INVOKED\n\n"
  },
  {
    "path": "src/studio/utest.rc2",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n#include \"socres.h\"\n#include \"version.h\"\n\n#define stringer(x) #x              // This macro converts the parameter x to a quoted literal string\n#define VERSIONSTR(rmj, rmm, rup)  stringer(rmj) \".0.\" stringer(rmm) \".\" stringer(rup) \"\\0\"\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Version\n//\n\nVS_VERSION_INFO VERSIONINFO\n FILEVERSION rmj,0,rmm,rup\n PRODUCTVERSION rmj,0,rmm,rup\n FILEFLAGSMASK 0x3fL\n#ifdef _DEBUG\n FILEFLAGS 0x1L\n#else\n FILEFLAGS 0x0L\n#endif\n FILEOS 0x4L\n FILETYPE 0x1L\n FILESUBTYPE 0x0L\nBEGIN\n    BLOCK \"StringFileInfo\"\n    BEGIN\n        BLOCK \"040904b0\"\n        BEGIN\n            VALUE \"CompanyName\", \"Microsoft Corporation\\0\"\n            VALUE \"FileDescription\", \"Microsoft 3D Movie Maker\\0\"\n            VALUE \"FileVersion\", VERSIONSTR(rmj, rmm, rup)\n            VALUE \"InternalName\", \"3DMovie\\0\"\n            VALUE \"LegalCopyright\", \"Copyright \\251 Microsoft Corporation, 1995\\0\"\n            VALUE \"LegalTrademarks\", \"Microsoft\\256 is a registered trademark of Microsoft Corporation.  Windows(tm) is a trademark of Microsoft Corporation\\0\"\n            VALUE \"OriginalFilename\", \"3DMovie.exe\\0\"\n            VALUE \"ProductName\", \"3D Movie Maker\\0\"\n            VALUE \"ProductVersion\", VERSIONSTR(rmj, rmm, rup)\n        END\n    END\n    BLOCK \"VarFileInfo\"\n    BEGIN\n        VALUE \"Translation\", 0x409, 1200\n    END\nEND\n\n\n/////////////////////////////////////////////////////////////////////////////\n//\n// Data\n//\n\nRC_PID_NUMBER  RCDATA   LOADONCALL MOVEABLE DISCARDABLE\nBEGIN\n\t  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n\t  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n\t  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n\t  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n\n\t  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n\t  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n\t  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n\t  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n\n\t  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n\t  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n\t  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n\t  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n\n\t  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n\t  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,\n\t  0,0,0,0,0,0,0,0,0,0,0,0,0,0,0\nEND\n\n\n"
  },
  {
    "path": "src/studio/utestgst.cht",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//\n// TDT action names\n//\n// REVIEW: hardcoded numerical constants\nCHUNK (kctgGst kcnoGstAction \"TDT Action Names\")\n\tLONG\n\tGST(4)\n\tITEM \"At Rest\"\t\t\t\t0\n\tITEM \"Flip Letters\"\t\t\t1\n\tITEM \"Spin Letters\"\t\t\t2\n\tITEM \"Cartwheel Letters\"\t3\n\tITEM \"Side to Side\"\t\t\t4\n\tITEM \"Rock\"\t\t\t\t\t5\n\tITEM \"Back and Forth\"\t\t6\n\tITEM \"Grow and Shrink\"\t\t7\n\tITEM \"Flip\"\t\t\t\t\t8\n\tITEM \"Spin\"\t\t\t\t\t9\n\tITEM \"Cartwheel\"\t\t\t10\n\tITEM \"The Wave\"\t\t\t\t11\n\tITEM \"Hide and Appear\"\t\t12\n\tITEM \"Walk Forward*\"\t\t13\n\tITEM \"Hop\"\t\t\t\t\t14\n\tITEM \"Stretch\"\t\t\t\t15\nENDCHUNK\n\n//\n// Misc app global strings\n//\nCHUNK (kctgGst kcnoGstApp \"Misc. App global strings\")\n\tLONG\n\tGST(4)\n\tITEM \"Microsoft 3D Movie Maker\" idsWindowTitle\n\tITEM \"3D Movie Maker\" idsProductLong\n\tITEM \"3DMovie\" idsProductShort\n\tITEM \"My_Stuff\" idsDefaultUser\n\tITEM \"Copy of\" idsEngineCopyOf\n\tITEM \"A New Movie\" idsEngineDefaultTitle\n\tITEM \"Comic Sans MS\" idsDefaultFont\n\tITEM \"12\" idsDefaultDypFont\n\tITEM \"Users\" idsUsersDir\n\tITEM \"Error from net provider \\\"%z\\\": \\n%x  :  %z\" idsWNetError\n\tITEM \"Save a movie\" idsPortfSaveMovieTitle\n\tITEM \"Open a movie\" idsPortfOpenMovieTitle\n\tITEM \"Import a sound\" idsPortfOpenSoundTitle\n\tITEM \"Import a texture\" idsPortfOpenTextureTitle\n\tITEM \"Movie Files\" idsPortfMovieFilterLabel\n\tITEM \"*.3mm\" idsPortfMovieFilterExt\n\tITEM \"Sound Files\" idsPortfSoundFilterLabel\n\tITEM \"*.mid;*.3mm\" idsPortfSoundMidiFilterExt\n\tITEM \"*.wav;*.3mm\" idsPortfSoundWaveFilterExt\n\tITEM \"Bitmap Files\" idsPortfTextureFilterLabel\n\tITEM \"*.bmp\" idsPortfTextureFilterExt\n\tITEM \"Melanie\" idsMelanie\n\tITEM \"Out-of-Memory Error\" idsOOM\n\tITEM \"Do you want to go to the building? Press 'No' to leave 3D Movie Maker completely\" idsExitStudio\n\tITEM \"Save changes to %s?\" idsSaveChangesBkp\n\tITEM \"Do you really want to leave 3D Movie Maker?\" idsConfirmExitBkp\n\tITEM \"Delete sound: %s?\" idsDeleteSound\n\tITEM \"Overwrite existing file: %s?\" idsReplaceFile\n\tITEM \"Remove all unused user sounds from file?\" idsPurgeSounds\nENDCHUNK\n"
  },
  {
    "path": "src/studio/utestscb.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n//\n//  movie.cpp\n//\n//  Author: Sean Selitrennikoff\n//\n//  Date: August, 1994\n//\n//  This file contains all functionality for movie manipulation.\n//\n#include \"soc.h\"\nASSERTNAME\n\n//\n//\n//\n// BEGIN MSCB STUFF\n//\n//\n//\n\nRTCLASS(MSCB)\n\nBEGIN_CMD_MAP(MSCB, GOB)\nON_CID_ME(cidDoScroll, MSCB::FCmdScroll, pvNil)\nON_CID_ME(cidEndScroll, MSCB::FCmdScroll, pvNil)\nEND_CMD_MAP_NIL()\n\n/****************************************************\n *\n * Constructor for movie scroll bars.  This function\n * is private, use PmscbNew() for public construction.\n *\n ****************************************************/\nMSCB::MSCB(PMVIE pmvie, PGCB pgcb) : GOB(pgcb)\n{\n    _pmvie = pmvie;\n}\n\n/****************************************************\n *\n * Public constructor for movie scroll bars.\n *\n * Parameters:\n *\tpmvie - The owning movie\n *\tpgcb - The creation block for location and size\n *\n * Returns:\n *\tA pointer to the scroll bar objects, else pvNil.\n *\n ****************************************************/\nPMSCB MSCB::PmscbNew(PMVIE pmvie, PGCB pgcb)\n{\n    PMSCB pmscb;\n    RC rc;\n    GCB gcb;\n\n    AssertNilOrPo(pmvie, 0);\n    AssertVarMem(pgcb);\n\n    if (pvNil == (pmscb = NewObj MSCB(pmvie, pgcb)))\n        return pvNil;\n\n    //\n    // Frame slider\n    //\n    rc.Set(0, 32, 200, 48);\n    gcb.Set(mscbhidFrame, pmscb, fgobNil, kginDefault, &rc);\n    SCB::PscbNew(&gcb, fscbHorz, 0, 0, 0);\n\n    //\n    // Scene slider\n    //\n    rc.Set(250, 32, 450, 48);\n    gcb.Set(mscbhidScene, pmscb, fgobNil, kginDefault, &rc);\n    SCB::PscbNew(&gcb, fscbHorz, 0, 0, 0);\n\n    AssertPo(pmscb, 0);\n    return (pmscb);\n}\n\n/****************************************************\n *\n * Processes scroll commands from the framework\n *\n * Parameters:\n *\tpcmd - The command to process\n *\n * Returns:\n *\tfTrue if is processed the command, else fFalse.\n *\n ****************************************************/\nbool MSCB::FCmdScroll(PCMD pcmd)\n{\n    long hid, val, dval;\n    bool fUp, fPage;\n    PSCB pscb;\n\n    //\n    // Verify that the command is for this object\n    //\n    hid = pcmd->rglw[0];\n\n    if ((hid != mscbhidFrame) && (hid != mscbhidScene))\n    {\n        return (fFalse);\n    }\n\n    //\n    // Get the scroll bar.\n    //\n    pscb = (PSCB)PgobFromHidScr(hid);\n\n    if ((pscb == pvNil) || (_pmvie == pvNil))\n        return fTrue;\n\n    //\n    // Process the command\n    //\n    switch (pcmd->cid)\n    {\n    case cidDoScroll:\n        if (pcmd->rglw[1] == scaToVal)\n        {\n            return (fTrue);\n        }\n        else\n        {\n            fUp = (pcmd->rglw[1] == scaLineUp) || (pcmd->rglw[1] == scaPageUp);\n            fPage = (pcmd->rglw[1] == scaPageUp) || (pcmd->rglw[1] == scaPageDown);\n            dval = fPage ? 10 : 1;\n            if (fUp)\n                dval = -dval;\n            val = pscb->Val() + dval;\n        }\n        break;\n\n    case cidEndScroll:\n        val = pcmd->rglw[1];\n        break;\n    }\n\n    //\n    // pin the new value to the max and min\n    //\n    val = LwMin(pscb->ValMax(), LwMax(pscb->ValMin(), val));\n\n    //\n    // Any changes?\n    //\n    if (val != pscb->Val() && !_pmvie->FPlaying())\n    {\n\n        //\n        // Process new value\n        //\n        pscb->SetVal(val);\n\n        if (hid == mscbhidFrame)\n        {\n            if (!_pmvie->Pscen()->FGotoFrm(val))\n            {\n                // REVIEW seanse: what to do?\n            }\n        }\n        else // scene change\n        {\n            if (!_pmvie->FSwitchScen(val))\n            {\n                // REVIEW seanse: what to do?\n            }\n        }\n\n        _pmvie->MarkViews();\n        InvalRc(pvNil);\n    }\n\n    return fTrue;\n}\n\n/***************************************************************************\n *\n * Draw the scroll bars.\n *\n * Parameters:\n *\tpgnv - The environment to write to.\n *  prcClip - The clipping rectangle.\n *\n * Returns:\n *  None.\n *\n ***************************************************************************/\nvoid MSCB::Draw(PGNV pgnv, RC *prcClip)\n{\n    AssertThis(0);\n    AssertPo(pgnv, 0);\n    AssertVarMem(prcClip);\n    STN stn;\n    RC rc;\n    PSCB pscb;\n\n    pscb = (PSCB)PgobFromHidScr(mscbhidScene);\n\n    if (pscb != pvNil)\n    {\n        if ((_pmvie != pvNil) && (_pmvie->Pscen() != pvNil))\n        {\n            pscb->SetValMinMax(_pmvie->Iscen(), 0, _pmvie->Cscen() - 1);\n        }\n        else\n        {\n            pscb->SetValMinMax(0, 0, 0);\n        }\n\n        pscb->InvalRc(pvNil);\n    }\n\n    pscb = (PSCB)PgobFromHidScr(mscbhidFrame);\n\n    if (pscb != pvNil)\n    {\n        if ((_pmvie != pvNil) && (_pmvie->Pscen() != pvNil))\n        {\n            pscb->SetValMinMax(_pmvie->Pscen()->Nfrm(), _pmvie->Pscen()->NfrmFirst(), _pmvie->Pscen()->NfrmLast());\n        }\n        else\n        {\n            pscb->SetValMinMax(0, 0, 0);\n        }\n\n        pscb->InvalRc(pvNil);\n    }\n\n    if (_pmvie != pvNil)\n    {\n        float fps;\n\n        fps = ((float)_pmvie->Cnfrm() * kdtsSecond) / ((float)(TsCurrent() - _pmvie->TsStart()));\n\n        if (_pmvie->Pscen() != pvNil)\n        {\n            stn.FFormatSz(PszLit(\"Frame #%d    \"), _pmvie->Pscen()->Nfrm());\n        }\n        else\n        {\n            stn.FFormatSz(PszLit(\"Frame #%d    \"), 0);\n        }\n        pgnv->DrawStn(&stn, 20, 16, kacrBlack, kacrWhite);\n\n        stn.FFormatSz(PszLit(\"Scene #%d    \"), _pmvie->Iscen() + 1);\n        pgnv->DrawStn(&stn, 270, 16, kacrBlack, kacrWhite);\n\n        stn.FFormatSz(PszLit(\"Fps: %2d.%02d\"), (int)fps, (int)((fps - (int)fps) * 100));\n        pgnv->DrawStn(&stn, 450, 16, kacrRed, kacrWhite);\n\n        if (_pmvie->Pscen() != pvNil)\n        {\n            _pmvie->Pscen()->GetName(&stn);\n            pgnv->DrawStn(&stn, 160, 0, kacrBlack, kacrWhite);\n        }\n    }\n}\n\n/****************************************************\n *\n * Update the scroll bars\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid MSCB::Update()\n{\n    InvalRc(pvNil, kginMark);\n}\n\n/****************************************************\n *\n * Change to movie for these scroll bars\n *\n * Parameters:\n * \tpmvie - New movie\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid MSCB::SetMvie(PMVIE pmvie)\n{\n    _pmvie = pmvie;\n}\n\n#ifdef DEBUG\n\n/****************************************************\n * Mark memory used by the MSCB\n *\n * Parameters:\n * \tNone.\n *\n * Returns:\n *  None.\n *\n ****************************************************/\nvoid MSCB::MarkMem(void)\n{\n    PSCB pscb;\n\n    AssertThis(0);\n    MSCB_PAR::MarkMem();\n\n    pscb = (PSCB)PgobFromHidScr(mscbhidFrame);\n\n    if (pscb != pvNil)\n    {\n        MarkMemObj(pscb);\n    }\n\n    pscb = (PSCB)PgobFromHidScr(mscbhidScene);\n    if (pscb != pvNil)\n    {\n        MarkMemObj(pscb);\n    }\n}\n\n/***************************************************************************\n * Assert the validity of the MSCB\n *\n * Parameters:\n * \tgrf - bit array of options.\n *\n * Returns:\n *  None.\n *\n **************************************************************************/\nvoid MSCB::AssertValid(ulong grf)\n{\n    MSCB_PAR::AssertValid(fobjAllocated);\n}\n\n#endif\n"
  },
  {
    "path": "tools/makefile",
    "content": "# Copyright (c) Microsoft Corporation.\n# Licensed under the MIT License.\n\n#---$(SOC_ROOT)\\tools\\makefile\n\n!IFNDEF MAKEFILE_SOC_TOOLS\nMAKEFILE_SOC_TOOLS = 1\n\n!INCLUDE $(KAUAI_ROOT)\\makefile.def\n\n\n#TOOLS SOURCE DIRECTORY\nTOOLS_SRC_DIR = $(SOC_ROOT)\\tools\n\n#SOC OBJ DIRECTORY\nSOC_OBJ_ROOT_DIR = $(SOC_ROOT)\\obj\nSOC_OBJ_DIR = $(SOC_OBJ_ROOT_DIR)\\$(BLD_TYPE_DIR)\n\n!IF \"$(LOCAL_BUILD)\" == \"1\"\nTARGET_DIR =\n!ELSE # LOCAL_BUILD\nTARGET_DIR = $(SOC_OBJ_DIR)^\\\n!ENDIF # !LOCAL_BUILD\n\n\nBREN_LIB =  $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\\bren.lib\\\n            $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\\brfmmxr.lib\\\n            $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\\brfwmxr.lib\\\n            $(SOC_ROOT)\\elib\\$(BLD_TYPE_DIR)\\brzbmxr.lib\n\n\nDKIT_LIB = $(SOC_ROOT)\\dkit\\libdkit.lib\\\n    $(SOC_ROOT)\\dkit\\byteswap.obj\\\n    $(SOC_ROOT)\\dkit\\sysglob.obj\n\n\n\nKAUAI_OBJ_GROUPS_FOR_TDFMAKE =\\\n    $(BASE_OBJS)\\\n    $(SCREXE_OBJS)\\\n    $(SCRCOM_OBJS)\\\n    $(LEXER_OBJS)\\\n    $(GROUP_OBJS)\\\n    $(STREAM_OBJS)\\\n    $(FILE_OBJS)\n\n\nKAUAI_OBJ_GROUPS_FOR_SITOBREN =\\\n    $(BASE_OBJS)\\\n    $(FILE_OBJS)\\\n    $(GROUP_OBJS)\\\n    $(CHSE_OBJS)\\\n    $(SCRCOM_OBJS)\\\n    $(LEXER_OBJS)\\\n    $(STREAM_OBJS)\\\n    $(SCREXE_OBJS)\\\n    $(MBMPIO_OBJS)\\\n    $(KAUAI_OBJ_DIR)\\mssio.obj\n\n\nKAUAI_OBJ_GROUPS_FOR_MKTMAP =\\\n    $(BASE_OBJS)\\\n    $(FILE_OBJS)\\\n    $(GROUP_OBJS)\\\n    $(MBMPIO_OBJS)\\\n    $(KAUAI_OBJ_DIR)\\mssio.obj\n\nKAUAI_OBJ_GROUPS_FOR_PBMTOBMP =\\\n    $(BASE_OBJS)\\\n    $(FILE_OBJS)\\\n    $(GROUP_OBJS)\\\n    $(MBMPIO_OBJS)\\\n    $(GUI_OBJS)\\\n    $(SOUND_OBJS)\\\n    $(VIDEO_OBJS)\\\n    $(SCREXE_OBJS)\\\n    $(DOC_OBJS)\\\n    $(RICHTEXT_OBJS)\\\n    $(CTL_OBJS)\\\n    $(STREAM_OBJS)\\\n    $(DLG_OBJS)\\\n    $(TEXTEDIT_OBJS)\\\n    $(KID_OBJS)\\\n    $(SCRCOM_OBJS)\\\n    $(LEXER_OBJS)\\\n    $(KAUAI_OBJ_DIR)\\mssio.obj\n\nTDFMAKE_TARGETS =\\\n    $(TARGET_DIR)tdfmake.obj\n\n\nSITOBREN_TARGETS =\\\n    $(TARGET_DIR)sitobren.obj\nSITOBREN_DEPS =\\\n    $(BREN_LIB)\\\n    $(DKIT_LIB)\n\n\nMKTMAP_TARGETS =\\\n    $(TARGET_DIR)mktmap.obj\nMKTMAP_DEPS =\\\n    $(TARGET_DIR)engine.lib\\\n    $(BREN_LIB)\n\n\nPBMTOBMP_TARGETS =\\\n    $(TARGET_DIR)pbmtobmp.obj\n\nPBMTOBMP_DEPS =\\\n    $(TARGET_DIR)engine.lib\\\n    $(BREN_LIB)\n\n#-Compile rules-------------------------------------------------------------\n\n\nPROGRAM_DATABASE = $(TARGET_DIR)soc.pdb\nPRECOMPILED_HEADER = $(TARGET_DIR)soc.pch\n\nCPPEXTRA = /Zi /Fd$(PROGRAM_DATABASE) /Fp$(PRECOMPILED_HEADER)\n\nSRC_DIR=$(TOOLS_SRC_DIR)\nOBJ_DIR=$(SOC_OBJ_DIR)\nTGT_NAME=Tools\n\n!INCLUDE $(SOC_ROOT)\\makefile.rul\n\n\n#-Targets-------------------------------------------------------------------\n\nALL_SOCTOOLS = $(TARGET_DIR)tdfmake.exe $(TARGET_DIR)mktmap.exe $(TARGET_DIR)pbmtobmp.exe\nALL_TARGETS_ROOT = $(ALL_TARGETS_ROOT) $(ALL_SOCTOOLS)\n\nCLEAN_SOCTOOLS = CLEAN_TDFMAKE CLEAN_SITOBREN CLEAN_MKTMAP CLEAN_PBMTOBMP\nCLEAN_TARGETS_ROOT = $(CLEAN_TARGETS_ROOT) $(CLEAN_SOCTOOLS)\n\n\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\n!IF \"$(LOCAL_BUILD)\" != \"0\"\nALL: $(SOC_OBJ_DIR) $(ALL_SOCTOOLS)\nCLEAN: $(CLEAN_SOCTOOLS) ALL\n!ENDIF # LOCAL_BUILD != 0\n\n$(SOC_OBJ_DIR) :\n    @echo Making Directories $(SOC_OBJ_DIR)...\n    if not exist $(SOC_OBJ_ROOT_DIR)/nul mkdir $(SOC_OBJ_ROOT_DIR)\n    if not exist $(SOC_OBJ_DIR)/nul mkdir $(SOC_OBJ_DIR)\n\n!ENDIF # !LOCAL_BUILD\n\n\nCLEAN_TDFMAKE:\n    @echo <<deltdf.bat\n@echo off\nDEL /q dummy.nul $(TDFMAKE_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c deltdf.bat\n    del deltdf.bat\n\n\nCLEAN_SITOBREN:\n    @echo <<delsito.bat\n@echo off\nDEL /q dummy.nul $(SITOBREN_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c delsito.bat\n    del delsito.bat\n\n\nCLEAN_MKTMAP:\n    @echo <<deltmap.bat\n@echo off\nDEL /q dummy.nul $(MKTMAP_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c deltmap.bat\n    del deltmap.bat\n\nCLEAN_PBMTOBMP:\n    @echo <<delpbmtobmp.bat\n@echo off\nDEL /q dummy.nul $(PBMTOBMP_TARGETS: = 2>nul^\nDEL /q dummy.nul ) 2>nul\n<<KEEP\n    cmd /c delpbmtobmp.bat\n    del delpbmtobmp.bat\n\n\n!IF \"$(LOCAL_BUILD)\" != \"1\"\n\ntdfmake.exe : $(TARGET_DIR)tdfmake.exe\nsitobren.exe : $(TARGET_DIR)sitobren.exe\nmktmap.exe : $(TARGET_DIR)mktmap.exe\n$(TARGET_DIR)tdfmake.exe: $(SOC_OBJ_DIR)\n$(TARGET_DIR)sitobren.exe: $(SOC_OBJ_DIR)\n$(TARGET_DIR)mktmap.exe: $(SOC_OBJ_DIR)\n\n!ENDIF # !LOCAL_BUILD\n\n$(TARGET_DIR)tdfmake.lnk : $(TOOLS_SRC_DIR)\\makefile $(KAUAI_ROOT)\\makefile.def\n\t@echo <<$(TARGET_DIR)tdfmake.lnk\n$(KAUAI_OBJ_GROUPS_FOR_TDFMAKE: =^\n)\n<<KEEP\n\n$(TARGET_DIR)tdfmake.exe : $(KAUAI_OBJ_GROUPS_FOR_TDFMAKE)\n$(TARGET_DIR)tdfmake.exe : $(TDFMAKE_TARGETS) $(TARGET_DIR)tdfmake.lnk\n    @echo Linking Tdfmake Objects...\n    $(LINK) -link $(LFLAGS_CONS) \\\n    $(BREN_LIB) \\\n    $(TARGET_DIR)engine.lib \\\n    $(TDFMAKE_TARGETS) \\\n    -out:$(TARGET_DIR)tdfmake.exe @$(TARGET_DIR)tdfmake.lnk\n    $(CHKERR)\n\n\n\n$(TARGET_DIR)sitobren.lnk : $(TOOLS_SRC_DIR)\\makefile $(KAUAI_ROOT)\\makefile.def\n    @echo <<$(TARGET_DIR)sitobren.lnk\n$(KAUAI_OBJ_GROUPS_FOR_SITOBREN: =^\n)\n<<KEEP\n\n$(TARGET_DIR)sitobren.exe : $(KAUAI_OBJ_GROUPS_FOR_SITOBREN)\n$(TARGET_DIR)sitobren.exe : $(SITOBREN_TARGETS) $(SITOBREN_DEPS) $(TARGET_DIR)sitobren.lnk\n    @echo Linking Sitobren Objects...\n    $(LINK) -link $(LFLAGS_CONS) \\\n    $(SITOBREN_TARGETS) \\\n    $(SITOBREN_DEPS) \\\n    -out:$(TARGET_DIR)sitobren.exe @$(TARGET_DIR)sitobren.lnk\n    $(CHKERR)\n\n\n$(TARGET_DIR)mktmap.lnk : $(TOOLS_SRC_DIR)\\makefile $(KAUAI_ROOT)\\makefile.def\n    @echo <<$(TARGET_DIR)mktmap.lnk\n$(KAUAI_OBJ_GROUPS_FOR_MKTMAP: =^\n)\n<<KEEP\n\n$(TARGET_DIR)mktmap.exe : $(KAUAI_OBJ_GROUPS_FOR_MKTMAP)\n$(TARGET_DIR)mktmap.exe : $(MKTMAP_TARGETS) $(MKTMAP_DEPS) $(TARGET_DIR)mktmap.lnk\n    @echo Linking MkTmap Objects...\n    $(LINK) -link $(LFLAGS_CONS) \\\n    $(MKTMAP_TARGETS) \\\n    $(MKTMAP_DEPS) \\\n    -out:$(TARGET_DIR)mktmap.exe @$(TARGET_DIR)mktmap.lnk\n    $(CHKERR)\n\n\n$(TARGET_DIR)pbmtobmp.lnk : $(TOOLS_SRC_DIR)\\makefile $(KAUAI_ROOT)\\makefile.def\n    @echo <<$(TARGET_DIR)pbmtobmp.lnk\n$(KAUAI_OBJ_GROUPS_FOR_PBMTOBMP: =^\n)\n<<KEEP\n\n$(TARGET_DIR)pbmtobmp.exe : $(KAUAI_OBJ_GROUPS_FOR_PBMTOBMP)\n$(TARGET_DIR)pbmtobmp.exe : $(PBMTOBMP_TARGETS) $(PBMTOBMP_DEPS) $(TARGET_DIR)pbmtobmp.lnk\n    @echo Linking pbmtobmp Objects...\n    $(LINK) -link $(LFLAGS_CONS) $(VFW32_LIB) $(AUDIO_LIB)  uuid.lib\\\n    $(PBMTOBMP_TARGETS) \\\n    $(PBMTOBMP_DEPS) \\\n    -out:$(TARGET_DIR)pbmtobmp.exe @$(TARGET_DIR)pbmtobmp.lnk\n    $(CHKERR)\n\n\n!ENDIF  # !MAKEFILE_SOC_TOOLS\n\n"
  },
  {
    "path": "tools/mktmap.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n    Author: ShonK\n    Project: Soc\n    Copyright (c) Microsoft Corporation\n\n    Command line tool to make a tmap from a bitmap file and optionally\n    compress it. Stores the file in chomp's \"compressed file\" format\n    to be imported using the chomp PACKEDFILE command.\n\n***************************************************************************/\n#include <stdio.h>\n#include \"frame.h\"\n#include \"bren.h\"\n#include \"mssio.h\"\nASSERTNAME\n\n/***************************************************************************\n    Main routine.  Returns non-zero iff there's an error.\n***************************************************************************/\nint __cdecl main(int cpszs, char *prgpszs[])\n{\n    FNI fniSrc, fniDst;\n    STN stn;\n    char chs;\n    PTMAP ptmap = pvNil;\n    long cfni = 0;\n    bool fCompress = fFalse;\n    MSSIO mssioErr(stderr);\n\n#ifdef UNICODE\n    fprintf(stderr, \"\\nMicrosoft (R) Make Tmap Utility (Unicode; \" __DATE__ \"; \" __TIME__ \")\\n\");\n#else  //! UNICODE\n    fprintf(stderr, \"\\nMicrosoft (R) Make Tmap Utility (Ansi; \" __DATE__ \"; \" __TIME__ \")\\n\");\n#endif //! UNICODE\n    fprintf(stderr, \"Copyright (C) Microsoft Corp 1995. All rights reserved.\\n\\n\");\n\n    for (prgpszs++; --cpszs > 0; prgpszs++)\n    {\n        chs = (*prgpszs)[0];\n        if (chs == '/' || chs == '-')\n        {\n            switch ((*prgpszs)[1])\n            {\n            case 'c':\n            case 'C':\n                fCompress = fTrue;\n                break;\n\n            default:\n                goto LUsage;\n            }\n        }\n        else if (cfni >= 2)\n        {\n            fprintf(stderr, \"Too many file names\\n\\n\");\n            goto LUsage;\n        }\n        else\n        {\n            stn.SetSzs(prgpszs[0]);\n            if (!fniDst.FBuildFromPath(&stn))\n            {\n                fprintf(stderr, \"Bad file name\\n\\n\");\n                goto LUsage;\n            }\n            if (cfni == 0)\n                fniSrc = fniDst;\n            cfni++;\n        }\n    }\n\n    if (cfni != 2)\n    {\n        fprintf(stderr, \"Wrong number of file names\\n\\n\");\n        goto LUsage;\n    }\n\n    ptmap = TMAP::PtmapReadNative(&fniSrc);\n    if (pvNil == ptmap)\n    {\n        fprintf(stderr, \"reading texture map failed\\n\\n\");\n        goto LFail;\n    }\n\n    if (!ptmap->FWriteTmapChkFile(&fniDst, fCompress, &mssioErr))\n        goto LFail;\n    ReleasePpo(&ptmap);\n\n    FIL::ShutDown();\n    return 0;\n\nLUsage:\n    // print usage\n    fprintf(stderr, \"%s\", \"Usage:  mktmap [-c] <srcBitmapFile> <dstTmapFile>\\n\\n\");\n\nLFail:\n    ReleasePpo(&ptmap);\n\n    FIL::ShutDown();\n    return 1;\n}\n\n#ifdef DEBUG\nbool _fEnableWarnings = fTrue;\n\n/***************************************************************************\n    Warning proc called by Warn() macro\n***************************************************************************/\nvoid WarnProc(PSZS pszsFile, long lwLine, PSZS pszsMessage)\n{\n    if (_fEnableWarnings)\n    {\n        fprintf(stderr, \"%s(%ld) : warning\", pszsFile, lwLine);\n        if (pszsMessage != pvNil)\n        {\n            fprintf(stderr, \": %s\", pszsMessage);\n        }\n        fprintf(stderr, \"\\n\");\n    }\n}\n\n/***************************************************************************\n    Returning true breaks into the debugger.\n***************************************************************************/\nbool FAssertProc(PSZS pszsFile, long lwLine, PSZS pszsMessage, void *pv, long cb)\n{\n    fprintf(stderr, \"An assert occurred: \\n\");\n    if (pszsMessage != pvNil)\n        fprintf(stderr, \"   Message: %s\\n\", pszsMessage);\n    if (pv != pvNil)\n    {\n        fprintf(stderr, \"   Address %x\\n\", pv);\n        if (cb != 0)\n        {\n            fprintf(stderr, \"   Value: \");\n            switch (cb)\n            {\n            default: {\n                byte *pb;\n                byte *pbLim;\n\n                for (pb = (byte *)pv, pbLim = pb + cb; pb < pbLim; pb++)\n                    fprintf(stderr, \"%02x\", (int)*pb);\n            }\n            break;\n\n            case 2:\n                fprintf(stderr, \"%04x\", (int)*(short *)pv);\n                break;\n\n            case 4:\n                fprintf(stderr, \"%08lx\", *(long *)pv);\n                break;\n            }\n            printf(\"\\n\");\n        }\n    }\n    fprintf(stderr, \"   File: %s\\n\", pszsFile);\n    fprintf(stderr, \"   Line: %ld\\n\", lwLine);\n\n    return fFalse;\n}\n#endif // DEBUG\n"
  },
  {
    "path": "tools/pbmtobmp.cpp",
    "content": "\n#include <stdio.h>\n#include \"frame.h\"\n#include <string.h>\nASSERTNAME\n\nvoid FrameMain(void)\n{\n}\n\n/***************************************************************************\n    Main routine.  Returns non-zero iff there's an error.\n***************************************************************************/\nint __cdecl main(int cpszs, char *prgpszs[])\n{\n    FNI fniSrc, fniDst;\n    FNI fniPalette;\n    STN stn;\n    FLO floSrc;\n    long lwSig;\n    BLCK blck;\n    bool fPacked;\n    bool fCompress = fFalse;\n    long cfni = 0;\n    long cfmt = vpcodmUtil->CfmtDefault();\n    long lwSwapped;\n    PMBMP mbmp;\n    PGL pglclrSrc;\n\n#ifdef UNICODE\n    fprintf(stderr, \"\\nPBM to MBMP Utility (Unicode; \" Debug(\"Debug; \") __DATE__ \"; \" __TIME__ \")\\n\");\n#else  //! UNICODE\n    fprintf(stderr, \"\\nPBM to MBMPUtility (Ansi; \" Debug(\"Debug; \") __DATE__ \"; \" __TIME__ \")\\n\");\n#endif //! UNICODE\n\n    floSrc.pfil = pvNil;\n    if (cpszs != 4)\n    {\n        fprintf(stderr, \"Wrong number of file names\\n\\n\");\n        goto LUsage;\n    }\n\n    stn.SetSzs(prgpszs[1]);\n    if (!fniSrc.FBuildFromPath(&stn))\n    {\n        fprintf(stderr, \"Bad source file name\\n\\n\");\n        goto LUsage;\n    }\n    stn.SetSzs(prgpszs[2]);\n    if (!fniDst.FBuildFromPath(&stn))\n    {\n        fprintf(stderr, \"Bad dest file name\\n\\n\");\n        goto LUsage;\n    }\n    stn.SetSzs(prgpszs[3]);\n    if (!fniPalette.FBuildFromPath(&stn))\n    {\n        fprintf(stderr, \"Bad palette file name\\n\\n\");\n        goto LUsage;\n    }\n\n    if (pvNil == (floSrc.pfil = FIL::PfilOpen(&fniSrc)))\n    {\n        fprintf(stderr, \"Can't open source file\\n\\n\");\n        goto LFail;\n    }\n    floSrc.fp = 0;\n    floSrc.cb = floSrc.pfil->FpMac();\n\n    if (floSrc.cb < size(long))\n    {\n        fprintf(stderr, \"floSrc.cb too small!\\n\\n\");\n        goto LBadSrc;\n    }\n\n    if (!floSrc.FReadRgb(&lwSig, size(long), 0))\n    {\n        fprintf(stderr, \"Reading source file failed\\n\\n\");\n        goto LFail;\n    }\n\n    lwSwapped = lwSig;\n    SwapBytesRglw(&lwSwapped, 1);\n    if (lwSig == klwSigPackedFile || lwSwapped == klwSigPackedFile)\n        fPacked = fTrue;\n    else if (lwSig == klwSigUnpackedFile || lwSwapped == klwSigUnpackedFile)\n        fPacked = fFalse;\n    else\n    {\n    LBadSrc:\n        fprintf(stderr, \"Source file is not packed\\n\\n\");\n        goto LFail;\n    }\n\n    blck.Set(floSrc.pfil, size(long), floSrc.cb - size(long), fPacked);\n\n    {\n        byte *prgb = pvNil;\n\n        long dxp, dyp;\n        bool fUpsideDown;\n\n        if (!FReadBitmap(&fniPalette, &prgb, &pglclrSrc, &dxp, &dyp, &fUpsideDown))\n        {\n            fprintf(stderr, \"Reading palette BMP failed\\n\\n\");\n            goto LFail;\n        }\n        FreePpv((void **)&prgb);\n    }\n\n    fprintf(stderr, \"Reading MBMP...\\n\");\n\n    mbmp = MBMP::PmbmpRead(&blck);\n    if (mbmp == pvNil)\n    {\n        fprintf(stderr, \"Reading MBMP failed\\n\\n\");\n        goto LFail;\n    }\n    fprintf(stderr, \"Read MBMP.\\n\");\n    if (1)\n    {\n        RC size;\n        int buffer_size;\n        mbmp->GetRc(&size);\n        int stride = size.xpRight + ((size.xpRight % 4 == 0) ? 0 : (4 - (size.xpRight & 3)));\n        fprintf(stderr, \"Size is left=%d top=%d right=%d bottom=%d stride is %d\\n\", size.xpLeft, size.ypTop,\n                size.xpRight, size.ypBottom, stride);\n        buffer_size = stride * size.ypBottom;\n        byte *temp_buffer = new byte[buffer_size];\n        memset(temp_buffer, 253, buffer_size);\n        mbmp->Draw(temp_buffer, stride, size.ypBottom, 0, 0);\n        fprintf(stderr, \"Drew %d bytes\\n\", stride * size.ypBottom);\n        if (!FWriteBitmap(&fniDst, temp_buffer, pglclrSrc, size.xpRight, size.ypBottom))\n        {\n            fprintf(stderr, \"writing BMP failed\\n\\n\");\n            goto LFail;\n        }\n        fprintf(stderr, \"wrote BMP\\n\\n\");\n    }\n\n    ReleasePpo(&floSrc.pfil);\n    FIL::ShutDown();\n    return 0;\n\nLUsage:\n    // print usage\n    fprintf(stderr, \"%s\", \"Usage:  pbmtobmp <srcFile> <dstFile> <palette.bmp>\\n\\n\");\n\nLFail:\n    ReleasePpo(&floSrc.pfil);\n\n    FIL::ShutDown();\n    return 1;\n}\n"
  },
  {
    "path": "tools/sitobren.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    sitobren.cpp\n    Main module for sitobren, a utility for converting SoftImage\n    .hrc files into chunky files with the appropriate TMPL chunk\n    and all its associated children.\n\n    Syntax of a sitobren script (.s2b file):\n\n    ACTOR CNO <TMPL-id> NAMED \"<actor_name>\" [XREST <xaRest>]\n        [YREST <yaRest>] [ZREST <zaRest>] [FLAGS <cust_mat_only>]\n        [BPSETS <bpsets>]\n    ACTION NAMED \"<action_name>\" FILEBASE \"<file_name_base>\"\n        FIRST <start-#> LAST <end-#> FLAGS <action_flags>\n        [SCALE <dwrScale>] [SKIP <skip_count>] [SUBMODEL \"<submodel>\"]\n    BACKGROUND CNO <BKGD-id> NAMED \"<bkgd_name>\" [LIGHTS <#lights>]\n        [CAMERAS <#cameras>] [FIRST <first_pal>] [LENGTH <#entries>]\n    COSTUME FILE \"<filename>\" USE_SETS <set #> [<set #> [<set #> [...]]]\n\n    As many actions as are necessary may be defined.  Actions are\n    defined for the actor which they follow.  Actors should only\n    be defined once; this implies that all actions should be defined\n    before specifying a new actor.\n\n    Parameters in [] are optional.  The parameters for a given command\n    can appear in any order, but all desired parameters must appear before\n    the next command, of course.  Any number of spaces, tabs, line-feeds,\n    commas, and semi-colons may appear between defined tokens; feel free to\n    insert them as necessary to improve the readability of your script file.\n    The tokens are case-insensitive.  Feel free to write \"ACTOR,\" \"actor,\"\n    \"Actor,\" \"aCtOr,\" etc.\n\n    Valid values:\n        <actor_name>\n        <action_name>\n        <bkgd_name>      -- any string conforming to actor/action naming\n            conventions\n        <TMPL-id>\n        <BKGD-id>        -- Chunk number for TMPL or BKGD chunk\n        <xaRest>\n        <yaRest>\n        <zaRest>         -- Any valid integer, units are degrees\n        <cust_mat_only>  -- 1 if actor can only use custom materials, 0 otherwise\n        <file_name_base> -- A model's action cel filename follows the\n            following convention: \"<drive>:\\<path>\\<model_action>-<cel#>.hrc\"\n            The <drive> <path> and <model_action> parts, with their delimiters,\n            must be provided if the files aren't in the current directory.  The\n            converter will supply the remaining portions, reading in all cel\n            files for the given action\n        <start-#>        -- The # of the 1st cel file (usually either 0 or 1)\n        <end-#>          -- The # of the last cel file\n        <dwrScale>       -- the distance between cels for static actions; for\n            non-static actions, specifies a scaling to apply to the distance\n            specified in the cel data.  Can be an integer or a decimal\n        <action_flags>   -- action flags; includes three path orientation flags\n            and one flag to indicate a static action\n        <skip_count>     -- increment for cel file numbers; sitobren will skip\n            <skip_count>-1 files between each cel.\n        <submodel>       -- name of submodel to extract from action; if this\n            actor has multiple actions, each action must extract the same\n            submodel, so that the actor's heirarchy is identical from one\n            action to the next.\n        <bpsets>          -- 1 if Body Part Sets are required, 0 otherwise\n        <#lights>         -- number of lights in scene\n        <#cameras>        -- number of cameras in scene\n        <first_pal>       -- first palette entry to use\n        <#entries>        -- how many palette entries to use\n        <filename>        -- a complete filename specifying the .hrc to extract\n            costume information from\n        <set #>           -- a valid body part set number; refers to the body\n            part set given in the .hrc file, not the mapped Brender body part\n            set number.\n\n    Default values for optional items:\n        <xaRest> <yaRest> <zaRest> -- 0\n        <cust_mat_only>            -- 0\n        <dwrScale>                 -- 1.0\n        <action_flags>             -- 0\n        <skip_count>               -- 1\n        <submodel>                 -- \"\" (simply means extract everything)\n        <bpsets>                   -- 1\n        <#lights>                  -- 2\n        <#cameras>                 -- 9\n        <first_pal>                -- 151\n        <#entries>                 -- 95\n\n    Command line:\n        sitobren <script[.s2b]> [<outfile[.cht]>] [flags]\n\n        The extensions may be ommited, in which case the defaults listed will\n        be used.  The user can override the default extension by supplying\n        the full filename, including the extension.\n\n        -n[ologo]  don't display the banner\n        -v[#]      verbose; optional level 0-2 (quiet to verbose (1 is default))\n        -h         swap the handedness (negate z positions and translations)\n        -r         don't do any rounding\n        -r#        round coordinates of models losing # bits\n        -k         Kontinue on errors\n        -p         include Preprocessing info\n        -i         specify Include filename for preprocessing info\n        -t#        round transformation values losing # bits (default is to\n                   use the \"-r\" setting)\n        -w         don't attempt to fix up seams in texture wrapping\n        -b         DEBUG-only; break (INT 3) on Assert\n        -d         DEBUG-only; simply dump out the tokens in the source\n\n        Flags come come anywhere in the command line.  They may be combined\n        after a single '-' or they may appear separately.  The input script\n        file must be listed before the output Chomp script filename.\n\n***************************************************************************/\n\n#include \"sitobren.h\"\nASSERTNAME\n\n#ifdef DEBUG\nbool _fEnableWarnings = fTrue;\nbool _fBreak = fFalse;\n#endif // DEBUG\n\nint __cdecl main(int cpsz, achar *prgpsz[])\n{\n    STN stnSrc, stnDst;\n    achar **ppszParm = &prgpsz[1];\n    bool fBanner = fTrue, fSwapHand, fUsage = fTrue, fDumpLex = fFalse;\n    bool fContinue = fFalse, fPreprocess = fFalse, fHaveInc = fFalse;\n    bool fIncNext = fFalse, fHaveRoundXF = fFalse, fFixWrap = fTrue;\n    uint mdVerbose, iRound = 3, iRet = 1, iRoundXF;\n    FNI fniSrc, fniDst, fniInc;\n    PFIL pfilSrc = pvNil;\n    FILE *pfileDst = pvNil;\n    MSSIO *pmssioErr = pvNil, *pmssioDst = pvNil;\n    S2B *ps2b = pvNil;\n    ulong grfs2b = fs2bNil;\n\n    fSwapHand = fFalse;\n    mdVerbose = kmdQuiet;\n    if (cpsz == 1)\n        goto LUsage;\n    while (--cpsz)\n    {\n        PSZ pszParm = *ppszParm;\n\n        if (fIncNext)\n        {\n            STN stnT;\n\n            stnT = pszParm;\n            fHaveInc = fniInc.FBuildFromPath(&stnT);\n            fIncNext = fFalse;\n        }\n        else if (pszParm[0] == ChLit('-') || pszParm[0] == ChLit('/'))\n        {\n            int cch = CchSz(pszParm), ich;\n\n            for (ich = 1; ich < cch; ich++)\n            {\n                achar *pch;\n                uint *pi;\n\n                switch (pszParm[ich])\n                {\n                case ChLit('n'):\n                    fBanner = fFalse;\n                    if ((cch - ich >= 6) && FEqualRgb(PszLit(\"nologo\"), &pszParm[ich], 6 * size(achar)))\n                        ich += 5;\n                    break;\n                case ChLit('h'):\n                    fSwapHand = !fSwapHand;\n                    break;\n                case ChLit('v'): {\n                    achar ch = pszParm[ich + 1];\n\n                    if (ch >= ChLit('0') && ch <= ChLit('9'))\n                    {\n                        mdVerbose = min(kmdVerbose, ch - ChLit('0'));\n                        ich++;\n                    }\n                    else\n                        mdVerbose = kmdHelpful;\n                    break;\n                }\n                case ChLit('t'):\n                    pi = &iRoundXF;\n                    fHaveRoundXF = fTrue;\n                    goto LGetRound;\n                case ChLit('r'):\n                    pi = &iRound;\n                LGetRound:\n                    pch = &pszParm[ich + 1];\n                    *pi = 0;\n                    while (*pch && (*pch >= ChLit('0') && *pch <= ChLit('9')))\n                    {\n                        *pi = *pi * 10 + *pch - ChLit('0');\n                        ich++, pch++;\n                    }\n                    *pi = min(*pi, 15);\n                    break;\n                case ChLit('k'):\n                    fContinue = !fContinue;\n                    break;\n                case ChLit('p'):\n                    fPreprocess = !fPreprocess;\n                    break;\n                case ChLit('w'):\n                    fFixWrap = !fFixWrap;\n                    break;\n                case ChLit('i'):\n                    fIncNext = fTrue;\n                    break;\n#ifdef DEBUG\n                case ChLit('b'):\n                    _fBreak = !_fBreak;\n                    break;\n                case ChLit('d'):\n                    fDumpLex = !fDumpLex;\n                    break;\n#endif // DEBUG\n                case ChLit('?'):\n                    goto LUsage;\n                default:\n                    printf(\"Error: unrecognized option '%c'\\n\", pszParm[ich]);\n                    goto LUsage;\n                }\n            }\n        }\n        else if (stnSrc.Cch() == 0)\n            stnSrc = pszParm;\n        else if (stnDst.Cch() == 0)\n            stnDst = pszParm;\n        else\n            goto LUsage;\n        ppszParm++;\n    }\n\n    fUsage = fFalse;\n\n    if (fContinue)\n        grfs2b |= kfs2bContinue;\n    if (fPreprocess)\n        grfs2b |= kfs2bPreprocess;\n    if (fFixWrap)\n        grfs2b |= kfs2bFixWrap;\n\n    if (fBanner)\n    {\n        printf(\"\\nMicrosoft (R) SoftImage (R) to Chunky File Converter\\n\");\n        printf(\"Copyright (C) Microsoft Corp 1995. All rights reserved.\\n\\n\");\n    }\n\n    if (!fHaveRoundXF)\n        iRoundXF = iRound;\n\n    if (mdVerbose)\n    {\n        if (iRound > 0)\n            printf(\"Rounding off %d binary places\\n\", iRound);\n        if (iRoundXF != iRound)\n            printf(\"Rounding off transformations %d binary places\\n\", iRoundXF);\n#if HASH_FIXED\n        printf(\"Fixed length hash table\\n\");\n#else\n        printf(\"Variable length hash table\\n\");\n#endif\n    }\n\n    if (!fniSrc.FBuildFromPath(&stnSrc, kftgS2b))\n    {\n        printf(\"Invalid script file name\\n\");\n        goto LUsage;\n    }\n    else if ((pfilSrc = FIL::PfilOpen(&fniSrc)) == pvNil)\n    {\n        fniSrc.GetStnPath(&stnSrc);\n        printf(\"Could not open source file (%s)\\n\", stnSrc.Psz());\n        goto LUsage;\n    }\n\n    if (fDumpLex)\n    {\n        STN stn;\n        S2BLX s2blx(pfilSrc);\n        S2BTK s2btk;\n        long cch = 0;\n\n        while (s2blx.FGetS2btk(&s2btk))\n        {\n            if (!s2blx.FTextFromS2btk(&s2btk, &stn))\n                stn.FFormatSz(PszLit(\"<Token %d>\"), s2btk.tok.tt);\n            if (cch + stn.Cch() + 1 >= 80)\n            {\n                printf(\"\\n\");\n                cch = 0;\n            }\n            printf(\"%s \", stn.Psz());\n            cch += stn.Cch() + 1;\n        }\n        fUsage = fFalse;\n        goto LUsage;\n    }\n\n    if (stnDst.Cch() == 0)\n    {\n        fniDst = fniSrc;\n        AssertDo(fniDst.FChangeFtg(kftgCht), 0);\n    }\n    else if (!fniDst.FBuildFromPath(&stnDst, kftgCht))\n    {\n        printf(\"Invalid destination file name\\n\");\n        goto LUsage;\n    }\n    fniDst.GetStnPath(&stnDst);\n    if ((pfileDst = fopen(stnDst.Psz(), \"wt\")) == pvNil)\n    {\n        printf(\"Could not create destination file (%s)\\n\", stnDst.Psz());\n        goto LUsage;\n    }\n    if (fPreprocess && !fHaveInc)\n    {\n        fniInc = fniDst;\n        fHaveInc = fniInc.FChangeFtg(kftgInc);\n        if (!fHaveInc)\n            printf(\"Warning: couldn't build include file name\\n\");\n    }\n\n    ps2b = S2B::Ps2bNew(pfilSrc, fSwapHand, mdVerbose, iRound, iRoundXF, prgpsz[0]);\n    if (ps2b == pvNil)\n        goto LOom;\n\n    pmssioErr = NewObj MSSIO(stderr);\n    if (pmssioErr == pvNil)\n        goto LOom;\n\n    pmssioDst = NewObj MSSIO(pfileDst);\n    if (pmssioDst == pvNil)\n    {\n    LOom:\n        printf(\"Error: not enough memory\\n\");\n    }\n    else if (ps2b->FConvertSI(pmssioErr, pmssioDst, fHaveInc ? &fniInc : pvNil, grfs2b))\n        iRet = 0;\n\n    ReleasePpo(&ps2b);\n    ReleasePpo(&pmssioDst);\n    ReleasePpo(&pmssioErr);\n\nLUsage:\n    ReleasePpo(&pfilSrc);\n    Assert(FIL::PfilFirst() == pvNil, \"Files left in the file chain\");\n    if (pfileDst != pvNil)\n        fclose(pfileDst);\n\n#ifdef DEBUG\n    UnmarkAllMem();\n    UnmarkAllObjs();\n    MarkUtilMem(); // marks all util memory\n    AssertUnmarkedMem();\n    AssertUnmarkedObjs();\n#endif // DEBUG\n\n    if (fUsage)\n    {\n        Assert(iRet != 0, \"won't return error status\");\n        printf(\"Usage:\\n    sitobren [-<flag>] <srcScriptFile> \"\n               \"[<dstChunkFile>]\\n\");\n        printf(\"    flags:\\n\"\n               \"        -n[ologo]  don't print banner\\n\"\n               \"        -v[#]      Verbose, optional # 0-2 (1 is default)\\n\");\n        printf(\"        -h         swap z-axis (Handedness)\\n\"\n               \"        -r         don't Round positions\\n\"\n               \"        -r#        Round off # places\\n\");\n        printf(\"        -t#        Round off transformations # places\\n\"\n               \"        -w         don't attempt to fix up seams in texture wrapping\\n\");\n        printf(\"        -k         Kontinue after errors\\n\"\n               \"        -p         include Preprocessing info\\n\"\n               \"        -i         specify Include filename for preprocessing info\\n\");\n        printf(\"        -?         This information\\n\");\n        printf(\"\\n    The default extension for the script file is .s2b\\n\"\n               \"    and the default extension for the output file is .cht\\n\");\n    }\n\n    return iRet;\n}\n\nRTCLASS(S2B)\nRTCLASS(S2BLX)\n\n#ifdef DEBUG\nvoid S2B::AssertValidBmhr(PBMHR pbmhr)\n{\n    while (pbmhr != pvNil)\n    {\n        AssertVarMem(pbmhr);\n        AssertValidBmhr(pbmhr->pbmhrChild);\n        pbmhr = pbmhr->pbmhrSibling;\n    }\n}\n\nvoid S2B::AssertValid(ulong grf)\n{\n    S2B_PAR::AssertValid(grf);\n    AssertPo(_ps2blx, grf);\n    AssertPo(&_chse, grf);\n    AssertNilOrPo(_pglibactPar, grf);\n    AssertNilOrPo(_pglbs, grf);\n    AssertNilOrPo(_pglcmtld, grf);\n    AssertNilOrPo(_pggcl, grf);\n    AssertNilOrPo(_pglxf, grf);\n    AssertNilOrPo(_pglcrng, grf);\n    AssertNilOrPo(_pglclr, grf);\n    AssertNilOrPo(_pglibps, grf);\n    AssertNilOrPo(_pggcm, grf);\n    AssertNilOrPo(_pggtmapd, grf);\n#if HASH_FIXED\n    AssertNilOrPvCb(_prgpbmdb, kcbrgpbmdb);\n#else  /* HASH_FIXED */\n    AssertNilOrPo(_pglpbmdb, grf);\n    AssertNilOrPo(_pglpbmatdb, grf);\n#endif /* HASH_FIXED */\n    AssertValidBmhr(_pbmhr);\n    AssertNilOrPvCb(_prgcps, size(CPS) * _cMesh);\n}\n\nvoid S2BLX::AssertValid(ulong grf)\n{\n    S2BLX_PAR::AssertValid(grf);\n}\n\nvoid S2B::MarkBmhr(PBMHR pbmhr)\n{\n    while (pbmhr != pvNil)\n    {\n        MarkPv(pbmhr);\n        MarkPv(pbmhr->pmodlf);\n        MarkPv(pbmhr->pszName);\n        MarkBmhr(pbmhr->pbmhrChild);\n        pbmhr = pbmhr->pbmhrSibling;\n    }\n}\n\nvoid S2B::MarkMem(void)\n{\n    S2B_PAR::MarkMem();\n    MarkMemObj(_ps2blx);\n    MarkMemObj(_pglibactPar);\n    MarkMemObj(_pglbs);\n    MarkMemObj(_pglcmtld);\n    MarkMemObj(_pggcl);\n    MarkMemObj(_pglxf);\n    MarkMemObj(_pglcrng);\n    MarkMemObj(_pglclr);\n    MarkMemObj(_pglibps);\n    MarkMemObj(_pggcm);\n    MarkMemObj(_pggtmapd);\n#if HASH_FIXED\n    MarkPv(_prgpbmdb);\n#else  /* HASH_FIXED */\n    MarkMemObj(_pglpbmdb);\n    MarkMemObj(_pglpbmatdb);\n#endif /* !HASH_FIXED */\n    MarkPv(_prgcps);\n    MarkBmhr(_pbmhr);\n    MarkMemObj(&_chse);\n}\n\nvoid S2BLX::MarkMem(void)\n{\n    S2BLX_PAR::MarkMem();\n}\n#endif // DEBUG\n\n/*-----------------------------------------------------------------------------\n|\tPs2bNew\n|\t\tStatic instantiator for the S2B class.  Will attempt to allocate the\n|\tS2BLX member and will fail if it cannot.\n|\n|\tArguments:\n|\t\tPFIL pfilSrc    -- file to read script from\n|\t\tbool fSwapHand  -- the rest are all passed to the S2B constructor\n|\t\tbool mdVerbose\n|\t\tint iRound\n|\t\tPSZ pszApp\n|\n|\tReturns: a pointer to the new S2B instance, pvNil if it fails\n|\n-------------------------------------------------------------PETED-----------*/\nPS2B S2B::Ps2bNew(PFIL pfilSrc, bool fSwapHand, uint mdVerbose, int iRound, int iRoundXF, PSZ pszApp)\n{\n    PS2B ps2b = NewObj S2B(fSwapHand, mdVerbose, iRound, iRoundXF, pszApp);\n\n    if (ps2b == pvNil)\n        return pvNil;\n\n    ps2b->_ps2blx = NewObj S2BLX(pfilSrc);\n    if (ps2b->_ps2blx == pvNil)\n        ReleasePpo(&ps2b);\n\n    return ps2b;\n}\n\n/*-----------------------------------------------------------------------------\n|\tS2B\n|\t\tConstructor for the S2B class.  Initializes the S2BLX and sets\n|\tsome pointers to pvNil.\n|\n|\tArguments:\n|\t\tPFIL pfilSrc -- used to initialize the S2BLX\n|\n-------------------------------------------------------------PETED-----------*/\nS2B::S2B(bool fSwapHand, uint mdVerbose, int iRound, int iRoundXF, PSZ pszApp)\n{\n    short bo;\n    FNI fni;\n    CFL *pcfl;\n    BLCK blck;\n    STN stnPal;\n\n    _ibpCur = 0;\n    _chidActn = 0;\n    _chidBmdl = 0;\n    _chidCmtl = 0;\n    _pglibactPar = pvNil;\n    _pglbs = pvNil;\n    _pglcmtld = pvNil;\n    _pggcl = pvNil;\n#if HASH_FIXED\n    _prgpbmdb = pvNil;\n#else  /* HASH_FIXED */\n    _pglpbmdb = pvNil;\n    _pglpbmatdb = pvNil;\n#endif /* !HASH_FIXED */\n    _InitCrcTable();\n    _pbmhr = pvNil;\n    _pglxf = pvNil;\n    _pglibps = pvNil;\n    _pggcm = pvNil;\n    _pggtmapd = pvNil;\n    _iZsign = fSwapHand ? -1 : 1;\n    _mdVerbose = mdVerbose;\n    Assert(_mdVerbose == mdVerbose, \"mdVerbose overflow\");\n    _uRound = iRound;\n    _uRoundXF = iRoundXF;\n    _mdBPS = kmdbpsAllMesh;\n    _fColorOnly = fFalse;\n    _cnoCur = cnoNil;\n\n    _pglclr = _pglcrng = pvNil;\n    stnPal = pszApp;\n    AssertDo(fni.FBuildFromPath(&stnPal), \"Couldn't build .chk path?\");\n    AssertDo(fni.FChangeFtg(kftgContent), \"Couldn't change FTG?\");\n    fni.GetLeaf(&stnPal);\n    if (fni.FSearchInPath(&stnPal) && (pcfl = CFL::PcflOpen(&fni, fcflNil)) != pvNil)\n    {\n        if (pcfl->FFind(kctgColorTable, 0, &blck))\n        {\n            _pglclr = GL::PglRead(&blck, &bo);\n            if (_pglclr != pvNil && bo == kboCur)\n            {\n                KID kidGlcg;\n\n                if (pcfl->FGetKidChidCtg(kctgColorTable, 0, 0, kctgGlcg, &kidGlcg) &&\n                    pcfl->FFind(kidGlcg.cki.ctg, kidGlcg.cki.cno, &blck))\n                {\n                    _pglcrng = GL::PglRead(&blck, &bo);\n                    Assert(bo == kboCur, \"GLCG byte-order not same as GLCR\");\n                }\n                else\n                    _pglcrng = PglcrngFromPal(_pglclr);\n            }\n            else\n                printf(\"Unable to read GLCR chunk\\n\");\n        }\n        else\n            printf(\"Couldn't find GLCR chunk\\n\");\n        ReleasePpo(&pcfl);\n    }\n    else\n    {\n        if (fni.Ftg() != ftgNil)\n            fni.GetStnPath(&stnPal);\n        printf(\"Couldn't find my resource file (%s);\"\n               \"no color information available\\n\",\n               stnPal.Psz());\n    }\n}\n\n/*-----------------------------------------------------------------------------\n|\t~S2B\n|\t\tDestructor for the S2B class.  Simply asserts that things have\n|\talready been cleaned up properly.\n|\n-------------------------------------------------------------PETED-----------*/\nS2B::~S2B(void)\n{\n#ifdef DEBUG\n    UnmarkAllMem();\n    UnmarkAllObjs();\n    MarkMem();     // marks all S2B memory\n    MarkUtilMem(); // marks all util memory\n    AssertUnmarkedMem();\n    AssertUnmarkedObjs();\n#endif // DEBUG\n\n    // All allocated objects should already be free\n    Assert(_pglibactPar == pvNil, 0);\n    Assert(_pglbs == pvNil, 0);\n    Assert(_pglcmtld == pvNil, 0);\n    Assert(_pggcl == pvNil, 0);\n    Assert(_pglxf == pvNil, 0);\n    Assert(_pglibps == pvNil, 0);\n    Assert(_pggcm == pvNil, 0);\n    Assert(_pggtmapd == pvNil, 0);\n#if HASH_FIXED\n    Assert(_prgpbmdb == pvNil, 0);\n#else  /* HASH_FIXED */\n    Assert(_pglpbmdb == pvNil, 0);\n    Assert(_pglpbmatdb == pvNil, 0);\n#endif /* !HASH_FIXED */\n    Assert(_prgcps == pvNil, 0);\n    Assert(_pbmhr == pvNil, 0);\n    // Except these\n    ReleasePpo(&_pglcrng);\n    ReleasePpo(&_pglclr);\n    ReleasePpo(&_ps2blx);\n}\n\n/******************************************************************************\n    _DumpHeader\n        Dumps a customized \"#ifdef\"'d header for a chunk.  This allows\n        sitobren-generate .cht files to only keep chunks named for those\n        that need names in the final product.\n\n    Arguments:\n        CTG ctg       -- the CTG of the chunk; used in the #ifdef\n        CNO cno       -- the remainder of the arguments are just passed\n        PSTN pstnName    directly to the CHSE DumpHeader()\n        bool fPack\n\n************************************************************ PETED ***********/\nvoid S2B::_DumpHeader(CTG ctg, CNO cno, PSTN pstnName, bool fPack)\n{\n    if (_fPreprocess)\n    {\n        long ich;\n        STN stnCtg;\n        STN stnT;\n\n        stnCtg.FFormatSz(PszLit(\"%f\"), ctg);\n        ich = 0;\n        while (ich < stnCtg.Cch())\n        {\n            achar ch;\n\n            ch = stnCtg.Psz()[ich];\n            if ((ch >= ChLit('A') && ch <= ChLit('Z')) || ch >= ChLit('a') && ch <= ChLit('z') ||\n                ch >= ChLit('0') && ch <= ChLit('9'))\n            {\n                ich++;\n                continue;\n            }\n            stnCtg.Delete(ich, 1);\n        }\n\n        if (stnCtg.Cch() > 0)\n        {\n            stnT.FFormatSz(PszLit(\"#if !defined(DEBUG) && !defined(%s_NAMED)\"), &stnCtg);\n            _chse.DumpSz(stnT.Psz());\n            _chse.DumpHeader(ctg, cno, pvNil, fPack);\n            _chse.DumpSz(PszLit(\"#else\"));\n            _chse.DumpHeader(ctg, cno, pstnName, fPack);\n            _chse.DumpSz(PszLit(\"#endif\"));\n\n            return;\n        }\n\n        printf(\"Warning: CTG w/out any alphanumerics; preprocessor directives\"\n               \" skipped for that chunk\\n\");\n    }\n\n    _chse.DumpHeader(ctg, cno, pstnName, fPack);\n}\n\n/*-----------------------------------------------------------------------------\n|\tFConvertSI\n|\t\tReads commands from the current _s2blx file, and generates an\n|\tappropriate Chunky source file.\n|\n|\tArguments:\n|\t\tPMSNK pmsnkErr -- where to send error messages\n|\t\tPMSNK pmsnkDst -- where to actually send the source file\n|\n|\tReturns:\n|\t\tfTrue if it succeeds, fFalse otherwise\n|\n-------------------------------------------------------------PETED-----------*/\nbool S2B::FConvertSI(PMSNK pmsnkErr, PMSNK pmsnkDst, PFNI pfniInc, ulong grfs2b)\n{\n    bool fGotTok, fHaveActor = fFalse, fRet = fFalse;\n\n    _fContinue = FPure(grfs2b & kfs2bContinue);\n    _fPreprocess = FPure(grfs2b & kfs2bPreprocess);\n    _fFixWrap = FPure(grfs2b & kfs2bFixWrap);\n\n    if (_fFixWrap)\n        BrBegin();\n\n    _chse.Init(pmsnkDst, pmsnkErr);\n\n    if (_fPreprocess && pfniInc != pvNil)\n    {\n        STN stnT;\n\n        pfniInc->GetStnPath(&stnT);\n        _stnT.FFormatSz(PszLit(\"#include \\\"%s\\\"\"), &stnT);\n        _chse.DumpSz(_stnT.Psz());\n    }\n\n    _chse.DumpSz(PszLit(\"BYTE\"));\n    _chse.DumpSz(PszLit(\"\"));\n\n#if HASH_FIXED\n    if (!FAllocPv((void **)&_prgpbmdb, kcbrgpbmdb, fmemClear, mprNormal))\n#else  /* HASH_FIXED */\n    if ((_pglpbmatdb = GL::PglNew(size(PBMATDB))) == pvNil)\n        goto LFail;\n    if ((_pglpbmdb = GL::PglNew(size(PBMDB))) == pvNil)\n#endif /* !HASH_FIXED */\n        goto LFail;\n\n    fGotTok = _ps2blx->FGetS2btk(&_s2btk);\n    while (fGotTok)\n    {\n        switch (_s2btk.tok.tt)\n        {\n        case ttActor:\n            fGotTok = _FDoTtActor(&fHaveActor);\n            break;\n        case ttActionS2B:\n            if (fHaveActor)\n                fGotTok = _FDoTtActionS2B();\n            else\n            {\n                printf(\"Error: found 'action' token before 'actor' definition\\n\");\n                goto LContinue;\n            }\n            break;\n        case ttBackgroundS2B:\n            fGotTok = _FDoTtBackgroundS2B();\n            break;\n        case ttCostume:\n            if (fHaveActor)\n                fGotTok = _FDoTtCostume();\n            else\n            {\n                printf(\"Error: found 'costume' token before 'actor' definition\\n\");\n                goto LContinue;\n            }\n            break;\n        default: {\n            STN stnTok;\n\n            printf(\"Unexpected token at line %d, character %d: \\n\", _ps2blx->LwLine(), _ps2blx->IchLine());\n            if (_ps2blx->FTextFromS2btk(&_s2btk, &stnTok))\n                printf(\"    %s\\n\", stnTok.Psz());\n            else\n                printf(\"    %08x\\n\", _s2btk.tok.tt);\n        }\n        LContinue:\n            fGotTok = _ps2blx->FGetS2btk(&_s2btk);\n            break;\n        }\n    }\n\n    _FlushTmplKids();\n\n#if HASH_FIXED\n#ifdef DEBUG\n    {\n        PBMDB *ppbmdb;\n\n        for (ppbmdb = _prgpbmdb; ppbmdb < (_prgpbmdb + kcpbmdb); ppbmdb++)\n            Assert(*ppbmdb == pvNil, \"Didn't empty BMDL database!\");\n    }\n#endif // DEBUG\n    FreePpv((void **)&_prgpbmdb);\n#else  /* HASH_FIXED */\n    Assert(_pglpbmdb->IvMac() == 0, \"Didn't empty BMDL database\");\n    ReleasePpo(&_pglpbmdb);\n    Assert(_pglpbmatdb->IvMac() == 0, \"Didn't empty XF database\");\n    ReleasePpo(&_pglpbmatdb);\n#endif /* !HASH_FIXED */\n\nLFail:\n    if (_fFixWrap)\n        BrEnd();\n    return fRet;\n}\n\n/******************************************************************************\n    _FReadCmdline\n        General purpose script command reader.  With an array of parameter\n    descriptions, and pointers to the appropriate variables to take the\n    results, this will read the specific parameters, putting the appropriate\n    data into the appropriate variable for the given token.\n\n    Arguments:\n        PSZ pszResult       -- Error string for command\n        bool *pfGotTok      -- pointer to flag to set based on lex state\n        const SCRP rgscrp[] -- description of command parameters\n        ...                 -- Additional variable parameters\n\n    Returns: fTrue if all required parameters were found, and all parameters\n        were successfully read.  If a token could be pre-fetched from the\n        lexer, *pfGotTok is set to fTrue, otherwise it's set to fFalse.\n\n************************************************************ PETED ***********/\nbool S2B::_FReadCmdline(PSZ pszResult, bool *pfGotTok, const SCRP rgscrp[], ...)\n{\n    AssertVarMem(pfGotTok);\n    Assert(kcscrpMax <= size(long) * 8, \"Too many parms\");\n\n    va_list args;\n    bool fRet = fFalse;\n    long cscrpMac = 0, iscrp, grfFound = 0, grfMatch = 0;\n    void *rgpv[kcscrpMax];\n\n    /* Grab the arguments */\n    va_start(args, rgscrp);\n    while (rgscrp[cscrpMac].pt != ptNil)\n    {\n        Assert(rgscrp[cscrpMac].tt != ttNil, \"Bad RGSCRP\");\n        if (rgscrp[cscrpMac].szErr[0] != 0)\n            grfMatch |= (0x01 << cscrpMac);\n        rgpv[cscrpMac] = va_arg(args, void *);\n        cscrpMac++;\n    }\n    va_end(args);\n\n    /* Try to read the data, quit when we get an unknown token */\n    while (*pfGotTok = _ps2blx->FGetS2btk(&_s2btk))\n    {\n        for (iscrp = 0; iscrp < cscrpMac; iscrp++)\n            if (rgscrp[iscrp].tt == _s2btk.tok.tt)\n                break;\n        if (iscrp == cscrpMac)\n            break;\n\n        if (!(*pfGotTok = _ps2blx->FGetS2btk(&_s2btk)))\n            goto LDone;\n        switch (rgscrp[iscrp].pt)\n        {\n        case ptString:\n            if (_s2btk.tok.tt != ttString)\n            {\n                printf(\"Error: expected string\\n\");\n                goto LDone;\n            }\n            *((PSTN)rgpv[iscrp]) = _s2btk.tok.stn;\n            break;\n        case ptLong:\n            if (_s2btk.tok.tt != ttLong)\n            {\n                printf(\"Error: expected integer\\n\");\n                goto LDone;\n            }\n            *((long *)rgpv[iscrp]) = _s2btk.tok.lw;\n            break;\n        case ptBRS:\n            if (!_FBrsFromS2btk(&_s2btk, (BRS *)rgpv[iscrp]))\n            {\n                printf(\"Error: expected integer or floating point\\n\");\n                goto LDone;\n            }\n            break;\n        case ptBRA:\n            if (_s2btk.tok.tt != ttLong)\n            {\n                printf(\"Error: expected degrees as an integer\\n\");\n                goto LDone;\n            }\n            if (_s2btk.tok.lw >= 360 || _s2btk.tok.lw < 0)\n                _s2btk.tok.lw %= 360;\n            *((BRA *)rgpv[iscrp]) = BrDegreeToAngle(BrIntToFixed(_s2btk.tok.lw));\n            break;\n        }\n        grfFound |= ((0x01 << iscrp) & grfMatch);\n    }\n\n    if (!(fRet = (grfFound == grfMatch)))\n    {\n        for (iscrp = 0, grfMatch ^= grfFound; iscrp < cscrpMac && !(grfMatch & 0x01); iscrp++, grfMatch >>= 0x01)\n            ;\n        Assert(iscrp < cscrpMac, \"Inconsistent error info\");\n        printf(\"Error: %s; %s\\n\", rgscrp[iscrp].szErr, pszResult);\n    }\nLDone:\n    return fRet;\n}\n\nconst SCRP rgscrpActor[] = {{ptLong, ttCno, \"missing CNO for actor\"},\n                            {ptString, ttCalled, \"missing name for actor\"},\n                            {ptBRA, ttXRest, \"\"},\n                            {ptBRA, ttYRest, \"\"},\n                            {ptBRA, ttZRest, \"\"},\n                            {ptLong, ttFlags, \"\"},\n                            {ptLong, ttBPS, \"\"},\n                            {ptLong, ttMaterials, \"\"},\n                            {ptNil, ttNil, \"\"}};\n\n/*-----------------------------------------------------------------------------\n|\t_FDoTtActor\n|\t\tProcesses a token of type ttActor.  That is, the ttActor\n|\tindicates the start of a new TMPL to create.  This handles all of\n|\tthe tokens for that command, and prefetches the next token following\n|\tall data for this command.\n|\n|\tReturns:\n|\t\tfTrue if another token is available, fFalse otherwise.\n|\n-------------------------------------------------------------PETED-----------*/\nbool S2B::_FDoTtActor(bool *pfHaveActor)\n{\n    bool fRet = fTrue;\n    uint mdBPS = _mdBPS, mdMaterials = 2;\n    CNO cno;\n    TMPLF tmplf;\n\n    _FlushTmplKids();\n\n    tmplf.bo = kboCur;\n    tmplf.osk = koskCur;\n    tmplf.xaRest = tmplf.yaRest = tmplf.zaRest = 0;\n    tmplf.grftmpl = 0;\n\n    if (!_FReadCmdline(\"actor ignored\", &fRet, rgscrpActor, &cno, &_stnTmpl, &tmplf.xaRest, &tmplf.yaRest,\n                       &tmplf.zaRest, &tmplf.grftmpl, &mdBPS, &mdMaterials))\n        goto LFail1;\n\n    if (mdBPS < kmdbpsNone || mdBPS >= kmdbpsLim)\n    {\n        printf(\"Error: body part sets state out of range [%d-%d]\\n\", kmdbpsNone, kmdbpsLim - 1);\n        goto LFail;\n    }\n    _mdBPS = mdBPS;\n\n    _fColorOnly = (mdMaterials < 2);\n\n    if (_mdVerbose > kmdQuiet)\n    {\n        printf(\"New actor: %s\\n\", _stnTmpl.Psz());\n        switch (_mdBPS)\n        {\n        case kmdbpsNone:\n            printf(\"Body part sets will not be generated\\n\");\n            break;\n        case kmdbpsNumberedOnly:\n            printf(\"Only nodes with body part sets will be included\\n\");\n            break;\n        case kmdbpsAllMesh:\n            printf(\"All mesh nodes, and null nodes with a body part set, will be included\\n\");\n            break;\n        case kmdbpsAllMeshNull:\n            printf(\"All mesh and null nodes will be included\\n\");\n            break;\n        }\n    }\n\n    _ctgPar = kctgTmpl;\n    _cnoPar = cno;\n    if (_cnoCur == cnoNil)\n        _cnoCur = cno;\n    _DumpHeader(kctgTmpl, cno, &_stnTmpl, fTrue);\n    _chse.DumpRgb(&tmplf, size(tmplf));\n    _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n    _chse.DumpSz(PszLit(\"\"));\n\n    *pfHaveActor = fTrue;\nLFail:\n    if (!*pfHaveActor)\n    {\n        printf(\"Error occured during processing for command line:\\n\");\n        printf(\"    ACTOR CNO %d, NAMED \\\"%s\\\",\\n\"\n               \"        XREST %f, YREST %f, ZREST %f FLAGS %08x, BPSETS %d\\n\",\n               cno, _stnTmpl.Psz(), BrScalarToFloat(BrAngleToDegree(tmplf.xaRest)),\n               BrScalarToFloat(BrAngleToDegree(tmplf.yaRest)), BrScalarToFloat(BrAngleToDegree(tmplf.zaRest)),\n               tmplf.grftmpl, mdBPS);\n    }\nLFail1:\n    return fRet;\n}\n\nconst SCRP rgscrpAction[] = {{ptString, ttCalled, \"missing name for action\"},\n                             {ptString, ttFilebase, \"missing filename for action\"},\n                             {ptLong, ttFirst, \"missing starting cel for action\"},\n                             {ptLong, ttLast, \"missing ending cel for action\"},\n                             {ptLong, ttFlags, \"missing flags for action\"},\n                             {ptBRS, ttScale, \"\"},\n                             {ptLong, ttSkip, \"\"},\n                             {ptString, ttSubmodel, \"\"},\n                             {ptBRS, ttStep, \"\"},\n                             {ptNil, ttNil, \"\"}};\n\n/*-----------------------------------------------------------------------------\n|\t_FDoTtActionS2B\n|\t\tProcesses a token of type ttNameS2B.  That is, the ttNameS2B\n|\tindicates the start of a new ACTN to create.  This handles all of\n|\tthe tokens for that command, and prefetches the next token following\n|\tall data for this command.\n|\n|\tReturns:\n|\t\tfTrue if another token is available, fFalse otherwise.\n|\n-------------------------------------------------------------PETED-----------*/\nbool S2B::_FDoTtActionS2B(void)\n{\n    bool fRet = fTrue, fSuccess = fTrue;\n    STN stnFileBase, stnFileAddon, stnSubmodel;\n    int cCel, iCel, iCelBase, dCel = 1, iCelMac;\n    long grfactn;\n    ACTNF actnf;\n    CNO cnoActn;\n    BRS brsScale = BrFloatToScalar(1.0), brsStep = BR_SCALAR(-1);\n    BRS rgbrsDwr[3] = {BR_SCALAR(0), BR_SCALAR(0), BR_SCALAR(0)};\n\n    /* Read in all of the command data */\n    if (!_FReadCmdline(\"action ignored\", &fRet, rgscrpAction, &_stnActn, &stnFileBase, &iCelBase, &iCelMac, &grfactn,\n                       &brsScale, &dCel, &stnSubmodel, &brsStep))\n        goto LFail;\n\n    if (dCel < 1)\n    {\n        printf(\"Error: non-positive increment for cel files (%d)\\n\", dCel);\n        goto LFail;\n    }\n\n    cCel = iCelMac - iCelBase + 1;\n    if (!(grfactn & factnStatic))\n    {\n        if (cCel == 1)\n            printf(\"Warning: single-cel non-static action\\n\");\n        if (brsStep != BR_SCALAR(-1))\n            printf(\"Warning: step size parameter ignored for non-static action\\n\");\n    }\n    else if (brsStep == BR_SCALAR(-1))\n        brsStep = BR_SCALAR(5.0);\n\n    /* Create the ACTN chunk itself */\n    actnf.bo = kboCur;\n    actnf.osk = koskCur;\n    actnf.grfactn = grfactn;\n    cnoActn = CnoNext();\n\n    _stnT = _stnActn;\n    _DumpHeader(kctgActn, cnoActn, &_stnT, fTrue);\n    _chse.DumpParentCmd(_ctgPar, _cnoPar, _chidActn++);\n    _chse.DumpRgb(&actnf, size(actnf));\n    _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n    _chse.DumpSz(PszLit(\"\"));\n\n    /* Process the model data files for this action */\n    for (iCel = 0; iCel < cCel && (fSuccess || _fContinue); iCel += dCel)\n    {\n        Model *pmodel;\n        BMAT34 bmat34;\n        CEL cel;\n        long cbrgcps;\n\n        /* Get the SoftImage data */\n        AssertDo(stnFileAddon.FFormatSz(PszLit(\"-%d.hrc\"), iCel + iCelBase), 0);\n        _stnT = stnFileBase;\n        if (!_stnT.FAppendStn(&stnFileAddon))\n        {\n            printf(\"Error: Computed filename too long (%s%s)\\n\", _stnT.Psz(), stnFileAddon.Psz());\n            goto LFail;\n        }\n        if ((pmodel = DK_modelReadFile(_stnT.Psz())) == pvNil)\n        {\n            printf(\"Error: Can't read cel file (%s)\\n\", _stnT.Psz());\n            goto LFail;\n        }\n\n        /* Convert the SoftImage data to Brender data */\n\n        /* Determine step size for this cel */\n        cel.chidSnd = 0;\n        if (grfactn & factnStatic)\n            cel.dwr = brsStep;\n        else\n            cel.dwr = _BrsdwrFromModel(pmodel, rgbrsDwr);\n        if (cel.dwr == BR_SCALAR(0))\n            cel.dwr = BrFloatToScalar(0.01);\n        cel.dwr = BR_MUL(brsScale, cel.dwr);\n\n        /* Actually process the model hierarchy */\n        BrMatrix34Identity(&bmat34);\n        _cFace = _cMesh = 0;\n\n        if (!_FInitGlpiCost(fFalse))\n        {\n            Assert(_pbmhr == pvNil, \"Bad error state\");\n            Assert(_pglibactPar == pvNil, \"Bad error state\");\n            Assert(_pglbs == pvNil, \"Bad error state\");\n            Assert(_pglcmtld == pvNil, \"Bad error state\");\n            goto LFail;\n        }\n        if (_fMakeCostume)\n            printf(\"Warning: costume info will be extracted from ACTION\\n\");\n\n        fSuccess = _FProcessModel(pmodel, bmat34, &_pbmhr, &stnSubmodel) && _FEnsureOneRoot(&_pbmhr);\n        DK_modelDispose(&pmodel);\n        if (!fSuccess)\n        {\n            printf(\"Error: processing cel heirarchy (%s)\\n\", _stnT.Psz());\n            if (!_fContinue)\n                goto LFail;\n            else\n                continue;\n        }\n\n        /* Create GGCL and GLXF for action */\n\n        /* Also, generate GLPI if necessary, and accumulate BMDLs */\n        if (_mdVerbose > kmdQuiet)\n        {\n            printf(\"Distance from previous cel is %5.2f\\n\", BrScalarToFloat(cel.dwr));\n            if (_mdVerbose > kmdHelpful || (iCel + dCel >= cCel))\n                printf(\"Found %d mesh nodes, totalling %d polygons\\n\", _cMesh, _cFace);\n        }\n        cbrgcps = size(CPS) * _cMesh;\n        fSuccess = fFalse;\n\n        if (FAllocPv((void **)&_prgcps, cbrgcps, fmemNil, mprNormal))\n        {\n            if ((_pglxf != pvNil) || (_pglxf = GL::PglNew(size(BMAT34))) != pvNil)\n            {\n                _ibpCur = 0;\n                if (_FProcessBmhr(&_pbmhr))\n                {\n                    if (_pggcl != pvNil || (_pggcl = GG::PggNew(size(CEL))) != pvNil)\n                        fSuccess = _pggcl->FAdd(cbrgcps, pvNil, _prgcps, &cel);\n                }\n            }\n            else\n                printf(\"Couldn't create GLXF -- OOM\\n\");\n            FreePpv((void **)&_prgcps);\n        }\n        else\n            printf(\"Couldn't create CPS array -- OOM\\n\");\n\n        if (!fSuccess)\n        {\n            _DisposeBmhr(&_pbmhr);\n            if (_fMakeGlpi)\n            {\n                ReleasePpo(&_pglibactPar);\n                ReleasePpo(&_pglbs);\n            }\n        }\n#ifdef DEBUG\n        else\n            Assert(_pbmhr == pvNil, \"Didn't free model hierarchy\");\n#endif // DEBUG\n    }\n\n    ReleasePpo(&_pglcmtld);\n    if (fSuccess)\n    {\n        /* Write out the GGCL and GLXF for the action*/\n        CnoNext();\n        _stnT.FFormatSz(PszLit(\"%s %s Cels\"), &_stnTmpl, &_stnActn);\n        _DumpHeader(kctgGgcl, _cnoCur, &_stnT, fTrue);\n        _chse.DumpParentCmd(kctgActn, cnoActn, 0);\n        _chse.DumpGroup(_pggcl);\n        _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n        _chse.DumpSz(PszLit(\"\"));\n        ReleasePpo(&_pggcl);\n\n        CnoNext();\n        _stnT.FFormatSz(PszLit(\"%s %s Transforms\"), &_stnTmpl, &_stnActn);\n        _DumpHeader(kctgGlxf, _cnoCur, &_stnT, fTrue);\n        _chse.DumpParentCmd(kctgActn, cnoActn, 0);\n        _chse.DumpList(_pglxf);\n        _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n        _chse.DumpSz(PszLit(\"\"));\n        ReleasePpo(&_pglxf);\n    }\n\nLFail:\n\n#if !HASH_FIXED\n    /* Empty the XF database */\n    {\n        PBMATDB pbmatdb, pbmatdbNext;\n        long ipbmatdb = _pglpbmatdb->IvMac();\n        long cChain = 0, cEntriesTot = 0, cEntries;\n\n        if (_mdVerbose > kmdQuiet)\n            printf(\"Emptying XF database\\n\");\n        while (ipbmatdb > 0)\n        {\n            ipbmatdb--;\n            _pglpbmatdb->Get(ipbmatdb, &pbmatdb);\n            cEntries = 0;\n            while (pbmatdb != pvNil)\n            {\n                cEntries++;\n                pbmatdbNext = (PBMATDB)pbmatdb->hshdb.phshdbNext;\n                FreePpv((void **)&pbmatdb);\n                pbmatdb = pbmatdbNext;\n            }\n            _pglpbmatdb->Delete(ipbmatdb);\n            cEntriesTot += cEntries;\n            if (_mdVerbose > kmdHelpful)\n                printf(\"XF collision chain had %d entries\\n\", cEntries);\n            cChain++;\n        }\n        if (_mdVerbose > kmdQuiet && cChain > 0)\n        {\n            double flAvg = (double)cEntriesTot / (double)cChain;\n            printf(\"Average XF collision chain had %1.2f entries (%d chains)\\n\", flAvg, cChain);\n        }\n        Assert(_pglpbmatdb->IvMac() == 0, 0);\n    }\n#endif /* !HASH_FIXED */\n\n    if (!fSuccess)\n    {\n        printf(\"Error occured during processing for command line:\\n\");\n        printf(\"    ACTION NAMED \\\"%s\\\" FILEBASE \\\"%s\\\",\\n\"\n               \"        FIRST %d, LAST %d, FLAGS %08x, SCALE %f, SKIP %d,\\n\"\n               \"        SUBMODEL \\\"%s\\\", STEP %f\\n\",\n               _stnActn.Psz(), stnFileBase.Psz(), iCelBase, iCelMac, grfactn, BrScalarToFloat(brsScale), dCel,\n               stnSubmodel.Psz(), BrScalarToFloat(brsStep));\n    }\n    return fRet;\n}\n\n/******************************************************************************\n    _FInitGlpiCost\n        Routine to setup the GLPI and Costume creation states.  By default,\n        if either does not yet exist, we will create them.  The caller can\n        override the _fMakeCostume if it wants to create additional costumes,\n        by setting the flag to fTrue if it's fFalse when we return from here.\n\n    Arguments:\n        fForceCost -- fTrue if we always want to generate a costume\n\n    Returns: fTrue if no fatal errors occurred\n\n************************************************************ PETED ***********/\nbool S2B::_FInitGlpiCost(bool fForceCost)\n{\n    _fMakeGlpi = (_pglibactPar == pvNil);\n    _fMakeCostume = (_pggcm == pvNil || fForceCost);\n\n    if (_fMakeGlpi)\n    {\n        Assert(_pglbs == pvNil, \"Non-nil body part set\");\n        if ((_pglibactPar = GL::PglNew(size(short))) == pvNil)\n        {\n            printf(\"Error: Couldn't create GLPI -- OOM\\n\");\n            goto LFail;\n        }\n        if ((_pglbs = GL::PglNew(size(short))) == pvNil)\n        {\n            printf(\"Warning: no body part set info -- OOM\\n\");\n            _fMakeCostume = fFalse;\n        }\n    }\n\n    if (_fMakeCostume)\n    {\n        Assert(_pglcmtld == pvNil, \"Non-nil GLCMTLD\");\n        if ((_pglcmtld = GL::PglNew(size(CMTLD))) == pvNil)\n            goto LFailCost;\n        if (_pggcm == pvNil && (_pggcm = GG::PggNew(size(long))) == pvNil)\n        {\n            ReleasePpo(&_pglcmtld);\n        LFailCost:\n            printf(\"Warning: no custom material info -- OOM\\n\");\n            _fMakeCostume = fFalse;\n        }\n    }\n\n    return fTrue;\nLFail:\n    return fFalse;\n}\n\nconst SCRP rgscrpBackground[] = {{ptLong, ttCno, \"missing CNO for background\"},\n                                 {ptString, ttCalled, \"missing name for background\"},\n                                 {ptLong, ttLights, \"\"},\n                                 {ptLong, ttCameras, \"\"},\n                                 {ptLong, ttFirst, \"\"},\n                                 {ptLong, ttLength, \"\"},\n                                 {ptNil, ttNil, \"\"}};\n\n/******************************************************************************\n    _FDoTtBackgroundS2B\n        Handles a ttBackground command from the script.  Will generate the\n    necessary .Zbmp files (Brender z-buffer), and output appropriate .cht\n    data for the given background.\n\n    Returns: fTrue if it returns with a token available\n\n************************************************************ PETED ***********/\nbool S2B::_FDoTtBackgroundS2B(void)\n{\n    bool fGotTok, fSuccess = fFalse;\n    long cLite = 2, cCam = 9, iPalBase = 151, cPal = 95;\n    CTG ctgSav;\n    CNO cnoBkgd, cnoSav;\n    STN stnBkgd;\n    BKGDF bkgdf;\n\n    ctgSav = _ctgPar;\n    cnoSav = _cnoPar;\n\n    /* Get the command parameters */\n    if (!_FReadCmdline(\"background ignored\", &fGotTok, rgscrpBackground, &cnoBkgd, &stnBkgd, &cLite, &cCam, &iPalBase,\n                       &cPal))\n        goto LFail;\n\n    /* Generate the BKGD chunk */\n    bkgdf.bo = kboCur;\n    bkgdf.osk = koskCur;\n    Assert(iPalBase >= 0 && iPalBase <= kbMax, \"Palette base out of range\");\n    bkgdf.bIndexBase = (byte)iPalBase;\n\n    _ctgPar = kctgBkgd;\n    _cnoPar = cnoBkgd;\n    if (_cnoCur == cnoNil)\n        _cnoCur = cnoBkgd;\n    _stnT.FFormatSz(PszLit(\"%s Background\"), &stnBkgd);\n    _DumpHeader(kctgBkgd, cnoBkgd, &_stnT, fTrue);\n    _chse.DumpRgb(&bkgdf, size(bkgdf));\n    _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n    _chse.DumpSz(PszLit(\"\"));\n\n    /* Create the lights */\n    if (!_FDumpLites(cLite, &stnBkgd))\n        goto LFail;\n\n    /* Create the cameras */\n    if (!_FDumpCameras(cCam, &stnBkgd, iPalBase, cPal))\n        goto LFail;\n\n    fSuccess = fTrue;\nLFail:\n    if (!fSuccess)\n    {\n        printf(\"Error occured during processing for command line:\\n\");\n        printf(\"    BACKGROUND CNO %d, NAMED \\\"%s\\\"\"\n               \"        LIGHTS %d, CAMERAS %d, FIRST %d, LENGTH %d\\n\",\n               cnoBkgd, stnBkgd.Psz(), cLite, cCam, iPalBase, cPal);\n    }\n    _ctgPar = ctgSav;\n    _cnoPar = cnoSav;\n    return fGotTok;\n}\n\nconst SCRP rgscrpCostume[] = {{ptString, ttFilename, \"missing filename for costume\"},\n                              {ptLong, ttUseSets, \"no body part sets specified\"},\n                              {ptNil, ttNil, \"\"}};\n\n/******************************************************************************\n    _FDoTtCostume\n        Handles a COSTUME script command.  Reads the specified .hrc file\n        and extracts costume information from the file.\n\n    Returns: fTrue if there's a new token available\n\n************************************************************ PETED ***********/\nbool S2B::_FDoTtCostume(void)\n{\n    bool fRet, fSuccess = fFalse;\n    long ibpsCur;\n    Model *pmodel;\n    STN stnCostume;\n    BMAT34 bmat34;\n\n    /* Read in all of the command data */\n    if (!_FReadCmdline(\"costume ignored\", &fRet, rgscrpCostume, &stnCostume, &ibpsCur))\n        goto LFail;\n\n    /* Get list of body part sets to pay attention to */\n    if ((_pglibps = GL::PglNew(size(long))) == pvNil)\n        goto LOOM1;\n    if (!_pglibps->FAdd(&ibpsCur))\n        goto LOOM1;\n    while (fRet && (_s2btk.tok.tt == ttLong))\n    {\n        if (!_pglibps->FAdd(&_s2btk.tok.lw))\n        {\n        LOOM1:\n            printf(\"Error: can't build list of body part sets -- OOM\\n\");\n            goto LFail;\n        }\n        fRet = _ps2blx->FGetS2btk(&_s2btk);\n    }\n\n    pmodel = DK_modelReadFile(stnCostume.Psz());\n    if (pmodel == pvNil)\n    {\n        printf(\"Error: Can't read costume file (%s)\\n\", stnCostume.Psz());\n        goto LFail;\n    }\n\n    /* Read and process the SoftImage .hrc file */\n    if (!_FInitGlpiCost(fTrue))\n        goto LFail;\n    _fCostumeOnly = fTrue;\n    BrMatrix34Identity(&bmat34);\n    _cFace = _cMesh = 0;\n\n    BrMatrix34Identity(&bmat34);\n    _cFace = _cMesh = 0;\n\n    Assert(_pglibactPar != pvNil, \"haven't processed base hierarchy yet\");\n    fSuccess = _FProcessModel(pmodel, bmat34, &_pbmhr) && _FEnsureOneRoot(&_pbmhr);\n    DK_modelDispose(&pmodel);\n    if (!fSuccess)\n    {\n        printf(\"Error: processing SoftImage data for costume (%s)\\n\", stnCostume.Psz());\n        goto LFail;\n    }\n    _ibpCur = 0;\n    fSuccess = _FProcessBmhr(&_pbmhr);\n    if (!fSuccess)\n    {\n        _DisposeBmhr(&_pbmhr);\n        printf(\"Error: processing hierarchy for costume (%s)\\n\", stnCostume.Psz());\n        goto LFail;\n    }\n    else\n        Assert(_pbmhr == pvNil, \"Didn't free model hierarchy\");\n\nLFail:\n    if (!fSuccess)\n    {\n        long iibpsMac = _pglibps != pvNil ? _pglibps->IvMac() : 0;\n        long cchLine = 16; /* length of \"        USE_SETS\" */\n\n        printf(\"Error occured during processing for command line:\\n\");\n        printf(\"    COSTUME FILE \\\"%s\\\",\\n\", stnCostume.Psz());\n        printf(\"        USE_SETS\");\n        for (long iibps = 0; iibps < iibpsMac; iibps++)\n        {\n            long ibps;\n            STN stnT;\n\n            _pglibps->Get(iibps, &ibps);\n            stnT.FFormatSz(PszLit(\", %d\"), ibps);\n            if (cchLine + stnT.Cch() > 72)\n            {\n                printf(\"\\n\");\n                cchLine = 0;\n            }\n            printf(\"%s\", stnT.Psz());\n            cchLine += stnT.Cch();\n        }\n        printf(\"\\n\");\n    }\n    _fCostumeOnly = fFalse;\n    ReleasePpo(&_pglcmtld);\n    ReleasePpo(&_pglibps);\n    return fRet;\n}\n\n/******************************************************************************\n    _FDumpLites\n        Outputs the appropriate .cht data for light definitions.  Reads\n    the necessary SoftImage ASCII light files, converts to Brender data,\n    and generates the proper chunk data.\n\n    Arguments:\n        int cLite     -- the number of lights\n        PSTN pstnBkgd -- string containing the background name\n\n    Returns: fTrue if it succeeds, fFalse otherwise\n\n************************************************************ PETED ***********/\nbool S2B::_FDumpLites(int cLite, PSTN pstnBkgd)\n{\n    bool fRet = fFalse;\n    int iLite;\n    LITE lite;\n    PGL pgllite;\n\n    /* Create a GL of LITEs */\n    if ((pgllite = GL::PglNew(size(LITE))) == pvNil)\n    {\n        printf(\"Couldn't allocate GLLT\\n\");\n        goto LFail;\n    }\n\n    /* Read in the SoftImage lights, adding each to the GL */\n    for (iLite = 0; iLite < cLite; iLite++)\n    {\n        if (!_stnT.FFormatSz(kszLight, pstnBkgd, iLite + 1))\n        {\n            printf(\"Computed light filename too long (\" kszLight \")\\n\", pstnBkgd->Psz(), iLite + 1);\n            goto LFail;\n        }\n        BrMatrix34Identity(&lite.bmat34);\n        lite.rIntensity = BrIntToScalar(1.0);\n        _ReadLite(&_stnT, &lite);\n        lite.lt = BR_LIGHT_DIRECT;\n        if (!pgllite->FAdd(&lite))\n        {\n            printf(\"Couldn't add light to GLLT -- OOM\\n\");\n            goto LFail;\n        }\n    }\n\n    /* Emit the LITE chunk */\n    CnoNext();\n    _stnT.FFormatSz(PszLit(\"%s Lights\"), pstnBkgd);\n    _DumpHeader(kctgGllt, _cnoCur, &_stnT, fTrue);\n    Assert(_ctgPar == kctgBkgd, \"Odd parent for GLLT\");\n    _chse.DumpParentCmd(_ctgPar, _cnoPar, 0);\n    _chse.DumpList(pgllite);\n    _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n    _chse.DumpSz(PszLit(\"\"));\n\n    fRet = fTrue;\nLFail:\n    ReleasePpo(&pgllite);\n    return fRet;\n}\n\n/******************************************************************************\n    _FDumpCameras\n        Outputs the necessary camera chunk data.  Reads in the appropriate\n    SoftImage ASCII camera file, converts the data to Brender data, and\n    generates the proper chunk data.\n\n    Arguments:\n        int cCam      -- the number of cameras\n        PSTN pstnBkgd -- the name of the background\n        int iPalBase  -- the first palette entry used by the background\n        int cPal      -- the number of palette entries used by the background\n\n    Returns: fTrue if it succeeds, fFalse otherwise\n\n************************************************************ PETED ***********/\nbool S2B::_FDumpCameras(int cCam, PSTN pstnBkgd, int iPalBase, int cPal)\n{\n    int iCam;\n    long dxp, dyp;\n    CAM cam;\n    STN stnFile;\n\n    /* Cameras are kept as individual chunks;\n        read each file and create the chunk */\n    for (iCam = 1; iCam <= cCam; iCam++)\n    {\n        CNO cnoCam;\n        FNI fni;\n        PGL pglapos = pvNil;\n\n        /* Get the file */\n        if (!stnFile.FFormatSz(kszCam, pstnBkgd, iCam))\n        {\n            printf(\"Computed camera filename too long (\" kszCam \")\\n\", pstnBkgd->Psz(), iCam);\n            goto LFail;\n        }\n        cam.bo = kboCur;\n        cam.osk = koskCur;\n        _ReadCam(&stnFile, &cam, &pglapos);\n\n        /* Process camera's background bitmap */\n        if (!stnFile.FFormatSz(kszBmp, pstnBkgd, iCam))\n        {\n            printf(\"Computed bitmap filename too long (\" kszBmp \")\\n\", pstnBkgd->Psz(), iCam);\n            goto LFail;\n        }\n        _ps2blx->GetFni(&fni);\n        if (!fni.FSetLeaf(&stnFile, kftgBmp))\n        {\n            printf(\"Error: Couldn't create palette filename\\n\");\n            goto LFail;\n        }\n        fni.GetStnPath(&stnFile);\n\n        /* Only extract the palette once */\n        if (iCam == 1)\n        {\n            PGL pglclr;\n\n            /* Read the palette */\n            if (FReadBitmap(&fni, pvNil, &pglclr, &dxp, &dyp, pvNil))\n            {\n                /* Chop off unneeded data from the palette */\n                Assert(iPalBase + cPal <= pglclr->IvMac(), \"Not enough colors in bitmap\");\n                if (iPalBase > 0)\n                    pglclr->Delete(0, iPalBase);\n                if (cPal < pglclr->IvMac())\n                    pglclr->Delete(cPal, pglclr->IvMac() - cPal);\n\n                /* Generate the palette chunk */\n                _stnT.FFormatSz(PszLit(\"%s Palette\"), pstnBkgd);\n                _DumpHeader(kctgColorTable, _cnoCur, &_stnT, fTrue);\n                Assert(_ctgPar == kctgBkgd, \"Odd parent for GLCR\");\n                _chse.DumpParentCmd(_ctgPar, _cnoPar, 0);\n                _chse.DumpList(pglclr);\n                _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n                _chse.DumpSz(PszLit(\"\"));\n                ReleasePpo(&pglclr);\n            }\n            else\n            {\n                _stnT.FFormatSz(PszLit(\"Error: Couldn't read camera palette (%s)\"), &stnFile);\n                printf(\"%s\\n\", _stnT.Psz());\n                goto LFail;\n            }\n        }\n\n        /* Generate the camera chunk */\n        cnoCam = CnoNext();\n        _stnT.FFormatSz(PszLit(\"%s Camera %d\"), pstnBkgd, iCam);\n        _DumpHeader(kctgCam, cnoCam, &_stnT, fTrue);\n        Assert(_ctgPar == kctgBkgd, \"Odd parent for CAM\");\n        _chse.DumpParentCmd(_ctgPar, _cnoPar, iCam - 1);\n        _chse.DumpRgb(&cam, size(cam));\n        if (pglapos != pvNil)\n        {\n            long capos = pglapos->IvMac();\n            APOS apos;\n\n            for (long iapos = 0; iapos < capos; iapos++)\n            {\n                pglapos->Get(iapos, &apos);\n                _chse.DumpRgb(&apos, size(APOS));\n            }\n            ReleasePpo(&pglapos);\n        }\n        _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n        _chse.DumpSz(PszLit(\"\"));\n\n        /* Generate the background chunk */\n        CnoNext();\n        _stnT.FFormatSz(PszLit(\"%s Bitmap %d\"), pstnBkgd, iCam);\n        _DumpHeader(kctgMbmp, _cnoCur, &_stnT, fTrue);\n        _chse.DumpParentCmd(kctgCam, cnoCam, 0);\n        _chse.DumpBitmapCmd(0, dxp, dyp, &stnFile);\n        _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n        _chse.DumpSz(PszLit(\"\"));\n\n        /* Generate the z-buffer chunk for the camera */\n        if (!_FZbmpFromZpic(pstnBkgd, cnoCam, iCam, dxp, dyp, &cam))\n            goto LFail;\n    }\n\n    return fTrue;\nLFail:\n    return fFalse;\n}\n\n/******************************************************************************\n    _FZbmpFromZpic\n        Converts a SoftImage z-buffer data file into Brender z-buffer\n    data.  If it can write the data to a new file, it will do so and\n    generate a chunk that refers to that file; otherwise, it will include\n    the chunk data explicitly.\n\n    Arguments:\n        PSTN pstnBkgd -- the name of the background\n        CNO cnoPar    -- the CNO of the parent camera chunk\n        int iCam      -- the number of the camera\n        long dxp      -- the width of the background\n        long dyp      -- the height of the background\n        CAM *pcam     -- pointer to the camera data\n\n    Returns: fTrue if it could successfully read and process the z-buffer\n        data, fFalse otherwise.\n\n************************************************************ PETED ***********/\nbool S2B::_FZbmpFromZpic(PSTN pstnBkgd, CNO cnoPar, int iCam, long dxp, long dyp, CAM *pcam)\n{\n    Assert(dxp > 0, \"Invalid z-buffer width\");\n    Assert(dyp > 0, \"Invalid z-buffer height\");\n\n    bool fRet = fFalse;\n    short *prgsw = pvNil;\n    float *prgfl = pvNil;\n    FNI fni;\n    FIL *pfil = pvNil;\n\n    /* Try to find and open the SoftImage data file */\n    if (!_stnT.FFormatSz(kszZpic, pstnBkgd, iCam))\n    {\n        printf(\"Computed z-buffer filename too long (\" kszZpic \")\\n\", pstnBkgd->Psz(), iCam);\n        goto LFail;\n    }\n    _ps2blx->GetFni(&fni);\n    if (fni.FSetLeaf(&_stnT, kftgZpic))\n    {\n        if ((pfil = FIL::PfilOpen(&fni)) != pvNil)\n        {\n            bool fWroteZbmp = fFalse;\n            short *psw, *prgsw;\n            long cPix = dxp * dyp, cbSw, cbBuf, cbLeft;\n            float fl, *prgfl;\n            FNI fniZbmp;\n            FP fpZbmp;\n            FIL *pfilZbmp = pvNil;\n            FP fpRead = 0;\n            ZBMPF zbmpf;\n\n            /* Allocate buffer for Zbmp and buffer for reading */\n            cbSw = cPix * size(short);\n            if (!FAllocPv((void **)&prgsw, cbSw, fmemNil, mprNormal))\n            {\n                printf(\"Error: Not enough memory for z-buffer\\n\");\n                goto LFail;\n            }\n            cbBuf = dxp * size(float);\n            if (!FAllocPv((void **)&prgfl, cbBuf, fmemNil, mprNormal))\n            {\n                prgfl = &fl;\n                cbBuf = size(float);\n            }\n\n            /* Read the available floats */\n            cbLeft = pfil->FpMac();\n            psw = prgsw;\n            while (cbLeft && cPix)\n            {\n                long cFl, cbRead;\n                float *pfl = prgfl;\n\n                /* Process a buffer's-worth of data */\n                cbRead = LwMin(cbBuf, cbLeft);\n                cFl = cbRead / size(float);\n                Assert(cFl * size(float) == cbRead, \"Partial data at EOF\");\n                AssertDo(pfil->FReadRgbSeq(prgfl, cbRead, &fpRead), \"Failed z-buffer read\");\n                SwapBytesRglw(prgfl, cFl);\n                cPix -= cFl;\n                while (cFl-- > 0)\n                {\n                    BRS brsZCam = BrFloatToScalar(*pfl++);\n\n                    /* Convert the SoftImage data to Brender data */\n                    Assert(*(pfl - 1) < 0, \"Non-negative zbuffer values\");\n                    if (BR_ABS(brsZCam) > pcam->zrYon)\n                        *psw++ = -1;\n                    else\n                    {\n                        BRS brsZ, brsDepth = BR_SUB(pcam->zrYon, pcam->zrHither);\n\n                        brsZ = BR_ADD(BR_MULDIV(brsZCam, BR_ADD(pcam->zrYon, pcam->zrHither), brsDepth),\n                                      BR_CONST_MUL(BR_MULDIV(pcam->zrYon, pcam->zrHither, brsDepth), 2));\n\n                        *psw++ = (short)(BrScalarToFloat(brsZ) * -32768.0 / BrScalarToFloat(-brsZCam));\n                        Assert(*(psw - 1) > 0, \"Non-positive calculated value\");\n                    }\n                }\n                cbLeft -= cbRead;\n            }\n\n            /* Fill in the rest with the max value */\n            while (cPix-- > 0)\n                *psw++ = -1;\n\n            /* Write the chunk */\n            CnoNext();\n            _stnT.FFormatSz(PszLit(\"%s Z-Buffer %d\"), pstnBkgd, iCam);\n            _DumpHeader(kctgZbmp, _cnoCur, &_stnT, fTrue);\n            _chse.DumpParentCmd(kctgCam, cnoPar, 0);\n\n            zbmpf.bo = kboCur;\n            zbmpf.osk = koskCur;\n            zbmpf.xpLeft = zbmpf.ypTop = 0;\n            Assert(dxp <= kswMax, \"Zbmp too wide\");\n            Assert(dyp <= kswMax, \"Zbmp too tall\");\n            zbmpf.dxp = (short)dxp;\n            zbmpf.dyp = (short)dyp;\n\n            if (_stnT.FFormatSz(kszZbmp, pstnBkgd, iCam))\n            {\n                _ps2blx->GetFni(&fniZbmp);\n                if (fniZbmp.FSetLeaf(&_stnT, kftgZbmp))\n                {\n                    pfilZbmp = FIL::PfilCreate(&fniZbmp);\n                    fpZbmp = 0;\n                    if (pfilZbmp != pvNil)\n                    {\n                        if (pfilZbmp->FWriteRgbSeq(&zbmpf, size(zbmpf), &fpZbmp) &&\n                            pfilZbmp->FWriteRgbSeq(prgsw, cbSw, &fpZbmp))\n                        {\n                            fWroteZbmp = fTrue;\n                            fniZbmp.GetStnPath(&_stnT);\n                        }\n                        else\n                            pfilZbmp->SetTemp();\n                        ReleasePpo(&pfilZbmp);\n                    }\n                }\n            }\n            if (!fWroteZbmp)\n            {\n                _chse.DumpRgb(&zbmpf, size(zbmpf));\n                _chse.DumpRgb(prgsw, cbSw);\n            }\n            else\n                _chse.DumpFileCmd(&_stnT);\n            _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n            _chse.DumpSz(PszLit(\"\"));\n\n            /* Prevent us from freeing a local */\n            if (prgfl != &fl)\n                FreePpv((void **)&prgfl);\n            FreePpv((void **)&prgsw);\n            ReleasePpo(&pfil);\n        }\n        else\n        {\n            printf(\"Error: Couldn't open z-buffer file\\n\");\n            goto LFail;\n        }\n    }\n    else\n    {\n        printf(\"Error: Couldn't build z-buffer filename\\n\");\n        goto LFail;\n    }\n\n    fRet = fTrue;\nLFail:\n    ReleasePpo(&pfil);\n    return fRet;\n}\n\n/******************************************************************************\n    _FBvec3Read\n        Reads a vector (triplet) from the given token stream\n\n    Arguments:\n        PS2BLX ps2blx -- the lexer to use (token stream)\n        BVEC3 *pbvec3 -- the vector to fill in\n        S2BTK *ps2btk -- the token to use\n\n    Returns: fTrue if ptok contains a new unused token\n\n************************************************************ PETED ***********/\nbool S2B::_FBvec3Read(PS2BLX ps2blx, BVEC3 *pbvec3, S2BTK *ps2btk)\n{\n    bool fRet;\n    int iBrs;\n\n    for (iBrs = 0; iBrs < 3; iBrs++)\n    {\n        fRet = ps2blx->FGetS2btk(ps2btk);\n        if (!fRet || !_FBrsFromS2btk(ps2btk, &pbvec3->v[iBrs]))\n        {\n            printf(\"Error: Invalid triplet data\\n\");\n            goto LFail;\n        }\n    }\nLFail:\n    return fRet;\n}\n\n/******************************************************************************\n    _Bmat34FromVec3\n        Given a vector, will calculate a transformation matrix that rotates\n    the actor's coordinate system so that the positive Z axis points along\n    the vector, and the X axis is horizontal.\n\n    Arguments:\n        BVEC3 *pbvec3   -- The vector to use\n        BMAT34 *pbmat34 -- the matrix to fill in\n\n************************************************************ PETED ***********/\nvoid S2B::_Bmat34FromVec3(BVEC3 *pbvec3, BMAT34 *pbmat34)\n{\n    BRS brs, brsAdj, brsHyp;\n    BRXFM brxfm;\n\n    /* Set up */\n    ClearPb(&brxfm, size(brxfm));\n    brxfm.type = BR_TRANSFORM_EULER;\n    brxfm.t.euler.e.order = BR_EULER_YXZ_R;\n\n    /* Calculate rotation about Y */\n    brsHyp = BR_LENGTH2(pbvec3->v[0], pbvec3->v[2]);\n    brs = BrAngleToScalar(BR_ACOS(BR_DIV(pbvec3->v[2], brsHyp)));\n    if (pbvec3->v[0] < 0)\n        brs = BR_SUB(BR_SCALAR(1), brs);\n    Assert(brs >= 0 && BrScalarToFloat(brs) <= 1.0, \"Bad angle\");\n    brxfm.t.euler.e.a = BrScalarToAngle(brs);\n    ;\n\n    /* Calculate rotation about X */\n    brsAdj = brsHyp;\n    brsHyp = BR_LENGTH2(pbvec3->v[1], brsAdj);\n    brs = BrAngleToScalar(BR_ACOS(BR_DIV(brsAdj, brsHyp)));\n    if (pbvec3->v[1] > 0)\n        brs = BR_SUB(BR_SCALAR(1), brs);\n    Assert(brs >= 0 && BrScalarToFloat(brs) <= 1.0, \"Bad angle\");\n    brxfm.t.euler.e.b = BrScalarToAngle(brs);\n\n    /* Actually perform the rotations */\n    brxfm.t.euler.e.c = BrScalarToAngle(BR_SCALAR(0));\n    BrMatrix34Transform(pbmat34, &brxfm);\n}\n\n/******************************************************************************\n    _ReadLite\n        Reads a SoftImage ASCII light file and fills in the LITE structure\n    as appropriate.\n\n    Arguments:\n        PSTN pstnLite -- the name of the light file\n        LITE *plite   -- pointer to LITE structure to fill in\n\n************************************************************ PETED ***********/\nvoid S2B::_ReadLite(PSTN pstnLite, LITE *plite)\n{\n    FNI fni;\n    FIL *pfil;\n\n    /* Attempt to open the file */\n    _ps2blx->GetFni(&fni);\n    if (fni.FSetLeaf(pstnLite, kftgALite))\n    {\n        Assert(fni.Ftg() == kftgALite, \"Light file has wrong extension\");\n        if ((pfil = FIL::PfilOpen(&fni)) != pvNil)\n        {\n            bool fGotTok;\n            BVEC3 bvec3Int = {BR_SCALAR(0), BR_SCALAR(0), BR_SCALAR(0)};\n            BVEC3 bvec3Pos;\n            S2BLX s2blx(pfil, fFalse);\n            S2BTK s2btk;\n\n            /* Parse the data in the file */\n            fGotTok = s2blx.FGetS2btk(&s2btk);\n            while (fGotTok)\n            {\n                switch (s2btk.tok.tt)\n                {\n                case ttPosition:\n                    if (!(fGotTok = s2blx.FGetS2btk(&s2btk)) || s2btk.tok.tt != ttStatic)\n                    {\n                        printf(\"Error: Expected \" DK_A_POS_STATIC_TOKEN \" after \" DK_A_LIGHT_POS_TOKEN \"\\n\");\n                        goto LFail;\n                    }\n\n                    /* Read the vector */\n                    if (!_FBvec3Read(&s2blx, &bvec3Pos, &s2btk))\n                        goto LFail;\n                    break;\n                case ttInterest:\n                    if (!(fGotTok = s2blx.FGetS2btk(&s2btk)) || s2btk.tok.tt != ttStatic)\n                    {\n                        printf(\"Error: Expected \" DK_A_POS_STATIC_TOKEN \" after \" DK_A_LIGHT_INT_TOKEN \"\\n\");\n                        goto LFail;\n                    }\n                    /* Read the vector */\n                    if (!_FBvec3Read(&s2blx, &bvec3Int, &s2btk))\n                        goto LFail;\n\n                    /* Generate vector for light's +Z axis */\n                    BrVector3Sub(&bvec3Int, &bvec3Pos, &bvec3Int);\n                    /* Create light's transformation matrix */\n                    _Bmat34FromVec3(&bvec3Int, &plite->bmat34);\n                    BrMatrix34PostTranslate(&plite->bmat34, bvec3Pos.v[0], bvec3Pos.v[1], bvec3Pos.v[2]);\n                    break;\n                default:\n                    break;\n                }\n                fGotTok = s2blx.FGetS2btk(&s2btk);\n            }\n            ReleasePpo(&pfil);\n        }\n        else\n            printf(\"Error: Couldn't open light file\\n\");\n    }\n    else\n        printf(\"Error: Couldn't build light filename\\n\");\nLFail:\n    return;\n}\n\n/******************************************************************************\n    _ReadCam\n        Reads a SoftImage ASCII camera file and fills in the given CAM\n    structure as appropriate.\n\n    Arguments:\n        PSTN pstnCam -- the name of the camera file\n        CAM *pcam    -- pointer to the CAM to fill in\n\n************************************************************ PETED ***********/\nvoid S2B::_ReadCam(PSTN pstnCam, CAM *pcam, PGL *ppglapos)\n{\n    bool fGotActorPos = fFalse;\n    FNI fni;\n    FIL *pfil;\n\n    /* Attempt to open the camera file */\n    _ps2blx->GetFni(&fni);\n    if (fni.FSetLeaf(pstnCam, kftgACam))\n    {\n        Assert(fni.Ftg() == kftgACam, \"Camera file has wrong extension\");\n        if ((pfil = FIL::PfilOpen(&fni)) != pvNil)\n        {\n            bool fGotTok;\n            BVEC3 bvec3Int;\n            BVEC3 bvec3Pos;\n            S2BLX s2blx(pfil, fFalse);\n            S2BTK s2btk;\n\n            /* Parse the data in the camera file */\n            fGotTok = s2blx.FGetS2btk(&s2btk);\n            while (fGotTok)\n            {\n                switch (s2btk.tok.tt)\n                {\n                case ttPosition:\n                    if (!(fGotTok = s2blx.FGetS2btk(&s2btk)) || s2btk.tok.tt != ttStatic)\n                    {\n                        printf(\"Error: Expected \" DK_A_POS_STATIC_TOKEN \" after \" DK_A_CAMERA_POS_TOKEN \"\\n\");\n                        goto LFail;\n                    }\n                    /* Read the position */\n                    if (!_FBvec3Read(&s2blx, &bvec3Pos, &s2btk))\n                        goto LFail;\n                    break;\n                case ttInterest:\n                    if (!(fGotTok = s2blx.FGetS2btk(&s2btk)) || s2btk.tok.tt != ttStatic)\n                    {\n                        printf(\"Error: Expected \" DK_A_POS_STATIC_TOKEN \" after \" DK_A_CAMERA_INT_TOKEN \"\\n\");\n                        goto LFail;\n                    }\n                    /* Read the interest (where the camera's looking) */\n                    if (!_FBvec3Read(&s2blx, &bvec3Int, &s2btk))\n                        goto LFail;\n\n                    /* Create vector for camera's positive X-axis (away from\n                        where it's looking */\n                    BrVector3Sub(&bvec3Int, &bvec3Pos, &bvec3Int);\n                    /* Get transformation for camera */\n                    _Bmat34FromVec3(&bvec3Int, &pcam->bmat34Cam);\n                    BrMatrix34PostTranslate(&pcam->bmat34Cam, bvec3Pos.v[0], bvec3Pos.v[1], bvec3Pos.v[2]);\n                    break;\n                case ttNearCam: // Near plane\n                    if (!(fGotTok = s2blx.FGetS2btk(&s2btk)) || !_FBrsFromS2btk(&s2btk, &pcam->zrHither))\n                    {\n                        printf(\"Error: Invalid \" DK_A_CAMERA_NEAR_TOKEN \" data\\n\");\n                        goto LFail;\n                    }\n                    break;\n                case ttFarCam: // Far plane\n                    if (!(fGotTok = s2blx.FGetS2btk(&s2btk)) || !_FBrsFromS2btk(&s2btk, &pcam->zrYon))\n                    {\n                        printf(\"Error: Invalid \" DK_A_CAMERA_FAR_TOKEN \" data\\n\");\n                        goto LFail;\n                    }\n                    break;\n                case ttFovCam: // Field Of View\n                {\n                    BRS brs;\n\n                    if (!(fGotTok = s2blx.FGetS2btk(&s2btk)) || !_FBrsFromS2btk(&s2btk, &brs))\n                    {\n                        printf(\"Error: Invalid \" DK_A_CAMERA_FOV_TOKEN \" data\\n\");\n                        goto LFail;\n                    }\n                    pcam->aFov = BrRadianToAngle(brs);\n                    break;\n                }\n                case ttNewActorPos: {\n                    BVEC3 bvec3Actor;\n\n                    if (!_FBvec3Read(&s2blx, &bvec3Actor, &s2btk))\n                        goto LFail;\n                    if (!fGotActorPos)\n                    {\n                        pcam->apos.bvec3Actor = bvec3Actor;\n                        fGotActorPos = fTrue;\n                    }\n                    else\n                    {\n                        if (*ppglapos != pvNil || (*ppglapos = GL::PglNew(size(APOS))) != pvNil)\n                        {\n                            APOS apos;\n\n                            apos.bvec3Actor = bvec3Actor;\n                            (*ppglapos)->FAdd(&apos); // Ignore failure\n                        }\n                    }\n                    break;\n                }\n                default:\n                    break;\n                }\n                fGotTok = s2blx.FGetS2btk(&s2btk);\n            }\n            ReleasePpo(&pfil);\n            if (!fGotActorPos)\n            {\n                BRS zrCam = kzrDefault;\n\n                /* Ensure depth of location is within the bounds of the cam */\n                if (BR_ABS(zrCam) > pcam->zrYon)\n                    zrCam = BR_CONST_DIV(BR_ADD(pcam->zrYon, pcam->zrHither), -2);\n\n                /* Translate (0,0,zrCam) in cam coords into world coords */\n                pcam->apos.bvec3Actor.v[0] =\n                    BR_ADD(BR_MUL(kzrDefault, pcam->bmat34Cam.m[2][0]), pcam->bmat34Cam.m[3][0]);\n                pcam->apos.bvec3Actor.v[1] = rZero;\n                pcam->apos.bvec3Actor.v[2] =\n                    BR_ADD(BR_MUL(kzrDefault, pcam->bmat34Cam.m[2][2]), pcam->bmat34Cam.m[3][2]);\n            }\n        }\n        else\n            printf(\"Error: Couldn't open camera file\\n\");\n    }\n    else\n        printf(\"Error: Couldn't build camera filename\\n\");\nLFail:\n    return;\n}\n\n/*-----------------------------------------------------------------------------\n|\t_FProcessModel\n|\t\tConverts a SoftImage model hierarchy into a tree of Brender models.\n|\tOnly mesh nodes are saved, but transformation information in propogated\n|\tto children nodes as necessary.\n|\n|\tArguments:\n|\t\tModel *pmodel -- points to the root of the model hierarchy to convert\n|\t\tBMAT34 bmat34Acc -- transformation matrix to be included in current\n|\t\t\tnode's transformation.\n|\t\tPBMHR *ppbmhr -- points to the pointer to the root of the Brender\n|\t\t\tmodel hierarchy.\n|\t\tPBMHR pbmhrParent -- points to the actual parent node of this node\n|\n|\tReturns:\n|\t\tfTrue if succeeds, fFalse otherwise (usually due to OOM)\n|\n-------------------------------------------------------------PETED-----------*/\nbool S2B::_FProcessModel(Model *pmodel, BMAT34 bmat34Acc, PBMHR *ppbmhr, PSTN pstnSubmodel, PBMHR pbmhrParent,\n                         int cLevel)\n{\n    bool fRet = fTrue, fSubmodel, fKeepNode;\n    BRA braX, braY, braZ;\n    BRS brsX, brsY, brsZ;\n    Model *pmodelChild = pmodel->child;\n\n    if ((fSubmodel = (pstnSubmodel == pvNil || (pstnSubmodel->Cch() == 0) || pstnSubmodel->FEqualSz(pmodel->name))) !=\n        fFalse)\n    {\n        bool fHaveBPS = fFalse;\n\n        pstnSubmodel = pvNil;\n\n        /* Include translation */\n        brsX = BrFloatToFixed(pmodel->translation.x);\n        brsY = BrFloatToFixed(pmodel->translation.y);\n        brsZ = BrFloatToFixed(_iZsign * pmodel->translation.z);\n        if (_uRoundXF > 0)\n        {\n            brsX = BR_ROUND(brsX, _uRoundXF);\n            brsY = BR_ROUND(brsY, _uRoundXF);\n            brsZ = BR_ROUND(brsZ, _uRoundXF);\n        }\n        BrMatrix34PreTranslate(&bmat34Acc, brsX, brsY, brsZ);\n\n        /* Include rotation */\n        braX = BrRadianToAngle(BrFloatToFixed(pmodel->rotation.x));\n        braY = BrRadianToAngle(BrFloatToFixed(pmodel->rotation.y));\n        braZ = BrRadianToAngle(BrFloatToFixed(pmodel->rotation.z));\n        if (_uRoundXF > 0)\n        {\n            braX = BrScalarToAngle(BR_ROUND(BrAngleToScalar(braX), _uRoundXF));\n            braY = BrScalarToAngle(BR_ROUND(BrAngleToScalar(braY), _uRoundXF));\n            braZ = BrScalarToAngle(BR_ROUND(BrAngleToScalar(braZ), _uRoundXF));\n        }\n        BrMatrix34PreRotateZ(&bmat34Acc, braZ);\n        BrMatrix34PreRotateY(&bmat34Acc, braY);\n        BrMatrix34PreRotateX(&bmat34Acc, braX);\n\n        /* Include scaling (comes last for SoftImage) */\n        brsX = BrFloatToFixed(pmodel->scaling.x);\n        brsY = BrFloatToFixed(pmodel->scaling.y);\n        brsZ = BrFloatToFixed(pmodel->scaling.z);\n        if (_uRoundXF > 0)\n        {\n            brsX = BR_ROUND(brsX, _uRoundXF);\n            brsY = BR_ROUND(brsY, _uRoundXF);\n            brsZ = BR_ROUND(brsZ, _uRoundXF);\n        }\n        BrMatrix34PreScale(&bmat34Acc, brsX, brsY, brsZ);\n\n        fHaveBPS = CchSz(pmodel->name) > 1 && _ps2blx->FIsDigit(pmodel->name[0]) && _ps2blx->FIsDigit(pmodel->name[1]);\n        fKeepNode = (pmodel->type == DK_MDL_MESH || pmodel->type == DK_MDL_NILL);\n        switch (_mdBPS)\n        {\n        case kmdbpsNone:\n            fHaveBPS = fFalse;\n            break;\n        case kmdbpsNumberedOnly:\n            fKeepNode = fKeepNode && fHaveBPS;\n            break;\n        case kmdbpsAllMesh:\n            fKeepNode = fKeepNode && (fHaveBPS || pmodel->type == DK_MDL_MESH);\n            break;\n        case kmdbpsAllMeshNull:\n            break;\n        }\n        if (fKeepNode)\n        {\n            bool fAccessory;\n            int ibps;\n\n            if (fHaveBPS)\n            {\n                fAccessory =\n                    (CchSz(pmodel->name) > 4) && (pmodel->name[3] == ChLit('A')) && (pmodel->name[4] == ChLit('C'));\n                ibps = (pmodel->name[0] - ChLit('0')) * 10 + pmodel->name[1] - ChLit('0');\n            }\n            else\n            {\n                fAccessory = fFalse;\n                ibps = 0;\n            }\n            /* Output info */\n            if (_fMakeGlpi && (_mdVerbose > kmdQuiet) || _mdVerbose > kmdHelpful)\n            {\n                if (cLevel > 0)\n                    printf(\"%*c\", cLevel * 2, ' ');\n                printf(\"node \\\"%s\\\" (body part set %d)\\n\", pmodel->name, ibps);\n            }\n            cLevel++;\n\n            /* create model node */\n            if ((pbmhrParent = _PbmhrFromModel(pmodel, &bmat34Acc, ppbmhr, pbmhrParent, ibps, fAccessory)) == pvNil)\n            {\n                printf(\"Out of memory allocating model node\\n\");\n                goto LFail;\n            }\n            pbmhrParent->fAccessory = fAccessory;\n\n            /* Anchor this node */\n            _cMesh++;\n            _cFace += pbmhrParent->pmodlf->cfac;\n            ppbmhr = &(pbmhrParent->pbmhrChild);\n            BrMatrix34Identity(&bmat34Acc);\n        }\n        else if (pmodel->type == DK_MDL_MESH && _fMakeGlpi)\n            printf(\"Warning: mesh node \\\"%s\\\" has no body part set\\n\", pmodel->name);\n    }\n\n    /* Descend and process any children */\n    while (pmodelChild != pvNil)\n    {\n        Assert(*ppbmhr == pvNil, \"Non-nil parent pointer\");\n        if (!_FProcessModel(pmodelChild, bmat34Acc, ppbmhr, pstnSubmodel, pbmhrParent, cLevel))\n            goto LFail;\n        while (*ppbmhr != pvNil)\n            ppbmhr = &((*ppbmhr)->pbmhrSibling);\n        pmodelChild = pmodelChild->sibling;\n    }\n\n    return fTrue;\n\n    /* Clean up if we fail */\nLFail:\n    _DisposeBmhr(&_pbmhr);\n    return fFalse;\n}\n\n/*-----------------------------------------------------------------------------\n|\t_PbmhrFromModel\n|\t\tConverts a single SoftImage model node into a single Brender model\n|\tnode.  Adds the new node as a child to the parent node.\n|\n|\tArguments:\n|\t\tModel *pmodel -- points to SoftImage model node to convert\n|\t\tBMAT34 *pbmat34 -- specifies the transformation for this node\n|\t\tPBMHR *ppbmhr -- points to pointer that points to this new child\n|\t\tPBMHR pbmhrParent -- points to the actual parent of this new child\n|\t\tint ibps -- body part set number\n|\t\tbool fAccessory -- fTrue if the body part is an accessory\n|\n|\tReturns:\n|\t\tA pointer to the new node, pvNil if there was some error\n|\n-------------------------------------------------------------PETED-----------*/\nPBMHR S2B::_PbmhrFromModel(Model *pmodel, BMAT34 *pbmat34, PBMHR *ppbmhr, PBMHR pbmhrParent, int ibps, bool fAccessory)\n{\n    bool fMesh;\n    long cb;\n    long cbrgver;\n    long cbrgfac;\n    PBMHR pbmhrCur = pvNil;\n    MODLF *pmodlf;\n    Mesh *pmesh = (Mesh *)pmodel->definition;\n    Material *pmaterial;\n    CRNG crng;\n    BRCLR brclr;\n\n    /* Ignore geometry if it doesn't exist, or if we're only interested in\n        the material information.  Theoretically, we should really just not\n        bother with the modlf at all if we're only making the costume, but\n        we gain back most of the overhead with this simple change. */\n    fMesh = pmesh != pvNil && (!_fCostumeOnly || fAccessory);\n\n    /* Allocate necessary pieces: BMHR, appropriately sized MODLF, and name */\n    if (fMesh)\n    {\n        Assert(pmodel->type == DK_MDL_MESH, \"Data present in non-mesh model\");\n        cbrgver = LwMul(pmesh->nbVertices, size(br_vertex));\n        cbrgfac = LwMul(pmesh->nbPolygons, size(br_face));\n        cb = size(MODLF) + cbrgver + cbrgfac;\n    }\n    else\n    {\n        Assert(_fCostumeOnly || pmodel->type != DK_MDL_MESH, \"Mesh model has no data\");\n        cb = size(MODLF);\n    }\n    if (!FAllocPv((void **)&pmodlf, cb, fmemClear, mprNormal))\n    {\n        printf(\"Couldn't allocate MODLF structure\\n\");\n        goto LFail;\n    }\n\n    if (!FAllocPv((void **)&pbmhrCur, size(BMHR), fmemClear, mprNormal))\n    {\n        printf(\"Couldn't allocate Brender hierarchy node\\n\");\n        FreePpv((void **)&pmodlf);\n        goto LFail;\n    }\n\n    if (FAllocPv((void **)&pbmhrCur->pszName, CchTotSz(pmodel->name) * size(achar), fmemNil, mprNormal))\n    {\n        CopyPb(pmodel->name, pbmhrCur->pszName, CchTotSz(pmodel->name) * size(achar));\n    }\n#ifdef DEBUG\n    else\n        Assert(pbmhrCur->pszName == pvNil, \"Bad pointer\");\n#endif // DEBUG\n\n    pbmhrCur->pmodlf = pmodlf;\n    _InitBmhr(pbmhrCur);\n\n#ifdef DEBUG\n    /* Just to be nice, keep siblings in same order as in SoftImage data */\n    /* This housework is done in FProcessModel now so as to avoid iterating\n        over the sibling chain over and over */\n    Assert(*ppbmhr == pvNil, \"Improper call to _PbmhrFromModel\");\n    while (*ppbmhr != pvNil)\n        ppbmhr = &((*ppbmhr)->pbmhrSibling);\n#endif // DEBUG\n\n    /* Fill in MODLF */\n    if (fMesh)\n    {\n        pmodlf->cver = (short)pmesh->nbVertices;\n        pmodlf->cfac = (short)pmesh->nbPolygons;\n        _CopyVertices(pmesh->vertices, PvAddBv(pmodlf, size(MODLF)), pmesh->nbVertices);\n        _CopyFaces(pmesh->polygons, PvAddBv(pmodlf, size(MODLF) + cbrgver), pmesh->nbPolygons,\n                   (BRV *)PvAddBv(pmodlf, size(MODLF)), pmodlf->cver);\n\n        /* I considered having the _Copy... routines do the hashing, since\n            they're already stepping through the bytes.  However, they do\n            such little pieces at a time, I believe that the function-call\n            overhead would obliterate any savings from doing so. */\n    }\n    else\n        pmodlf->cver = pmodlf->cfac = 0;\n\n    /* Fill in BMHR */\n    pbmhrCur->pmodlf = pmodlf;\n    pbmhrCur->cbModlf = cb;\n    pbmhrCur->bmat34 = *pbmat34;\n    pbmhrCur->ibps = ibps;\n    pbmhrCur->fFixWrap = fFalse;\n\n    /* Handle material information */\n    pmaterial = pmodel->materials;\n    if (pmaterial != pvNil)\n        _TextureFileFromModel(pmodel, pbmhrCur, !_fMakeCostume || _pglclr == pvNil);\n\n    if (_fMakeCostume && _pglclr != pvNil)\n    {\n        Assert(pmodel->currentMaterial == 0, \"Using the wrong material\");\n        /* Get material from this model, if it exists */\n        if (pmaterial != pvNil)\n        {\n            brclr = BR_DK_TO_BR(pmaterial->ambient);\n            pbmhrCur->fMtrlf = fTrue;\n            _pglcrng->Get(LwcrngNearestBrclr(brclr, _pglclr, _pglcrng), &crng);\n            if (_fColorOnly)\n                goto LColorOnly;\n            pbmhrCur->mtrlf.brufKa = BR_DKRGB_TO_FRGRAY(pmaterial->ambient);\n            pbmhrCur->mtrlf.brufKd = BR_DKRGB_TO_FRGRAY(pmaterial->diffuse);\n            if (pmaterial->type == DK_MAT_LAMBERT)\n                pbmhrCur->mtrlf.brufKs = BR_SCALAR(0);\n            else\n                pbmhrCur->mtrlf.brufKs = BR_DKRGB_TO_FRGRAY(pmaterial->specular);\n            goto LFinishMtrl;\n        }\n        /* If this model has no material of its own and it has a parent,\n            get the parent's material */\n        else if (pbmhrParent != pvNil)\n        {\n            Assert(!fMesh || pbmhrParent->fMtrlf, \"Warning: mesh node has no material parent\");\n            pbmhrCur->mtrlf = pbmhrParent->mtrlf;\n            /* REVIEW peted: bogus...if an STN were derived from the BASE class,\n                I could just AddRef it and copy the pointer here rather than\n                allocating a whole new STN */\n            if (pbmhrParent->pstnMtrlFile != pvNil && (pbmhrCur->pstnMtrlFile = new STN()) != pvNil)\n            {\n                *pbmhrCur->pstnMtrlFile = *pbmhrParent->pstnMtrlFile;\n            }\n            pbmhrCur->fMtrlf = pbmhrParent->fMtrlf;\n        }\n        /* If there's no parent, and no material, make something up */\n        else\n        {\n            if (fMesh)\n                printf(\"Warning: missing material for mesh node!\\n\");\n            Assert(!pbmhrCur->fMtrlf, 0);\n            _pglcrng->Get(0, &crng);\n        LColorOnly:\n            pbmhrCur->mtrlf.brufKa = BR_UFRACTION(0);\n            pbmhrCur->mtrlf.brufKd = BR_UFRACTION(1.0);\n            pbmhrCur->mtrlf.brufKs = BR_UFRACTION(0);\n\n            /* Finish filling in the material information */\n        LFinishMtrl:\n            pbmhrCur->mtrlf.brc = 0; // unused by Socrates\n            Assert(crng.lwBase < kbMax, \"Color index base too high\");\n            Assert(crng.lwRange < kbMax, \"Color index range too high\");\n            pbmhrCur->mtrlf.bIndexBase = (byte)crng.lwBase;\n            /* Brender color range is defined by max val rather than count */\n            pbmhrCur->mtrlf.cIndexRange = (byte)crng.lwRange - 1;\n            pbmhrCur->mtrlf.rPower = BrIntToScalar(50); // REVIEW peted: need real val here\n        }\n    }\n    Assert(pbmhrCur->pbmhrChild == pvNil, 0);\n\n    /* Hook it in */\n    *ppbmhr = pbmhrCur;\nLFail:\n    return pbmhrCur;\n}\n\n/******************************************************************************\n    _TextureFileFromModel\n        Extracts the base texture name from the file name given in a model's\n        material information.  First looks in the model itself for a texture\n        filename, and if no texture is found there, checks the first material\n        listed for the model.  Copies texture translation and cropping info\n        if the texture is present.\n\n    Arguments:\n        Model *pmodel  -- The model to process\n        PBMHR pbmhr    -- the actual hiearchy node\n        bool fWrapOnly -- just fill in the wrap-fix stuff\n\n************************************************************ PETED ***********/\nvoid S2B::_TextureFileFromModel(Model *pmodel, PBMHR pbmhr, bool fWrapOnly)\n{\n    AssertVarMem(pmodel);\n    AssertVarMem(pmodel->materials);\n    AssertVarMem(pbmhr);\n\n    char *pch, *pszName;\n    PSTN pstn = pvNil;\n    Texture *ptexture;\n\n    /* Look for a texture in the model; if the model doesn't have one, check\n        its first material */\n    if (pmodel->nbTextures < 1)\n    {\n        if (pmodel->materials->nbTextures < 1)\n            goto LNotexture;\n        ptexture = pmodel->materials->textures;\n    }\n    else\n        ptexture = pmodel->textures;\n\n    if (fWrapOnly)\n        goto LDoWrap;\n\n    pstn = new STN();\n    if (pstn != pvNil)\n    {\n        pszName = ptexture->pic_name;\n        pch = pszName + strlen(pszName);\n        while (*(--pch) != ChLit('/') && pch > pszName)\n            ;\n        if (*pch == ChLit('/'))\n            pch++;\n        *pstn = pch;\n\n        pbmhr->brufrUOffset = BrScalarToUFraction(BrFloatToScalar(ptexture->uOffset));\n        pbmhr->brufrVOffset = BrScalarToUFraction(BrFloatToScalar(ptexture->vOffset));\n        pbmhr->fCrop = FPure(ptexture->cropping) &&\n                       (ptexture->uMinCrop || ptexture->uMaxCrop || ptexture->vMinCrop || ptexture->vMaxCrop);\n        if (pbmhr->fCrop)\n        {\n            pbmhr->uMinCrop = ptexture->uMinCrop;\n            pbmhr->uMaxCrop = ptexture->uMaxCrop;\n            pbmhr->vMinCrop = ptexture->vMinCrop;\n            pbmhr->vMaxCrop = ptexture->vMaxCrop;\n        }\n    LDoWrap:\n        switch (ptexture->method)\n        {\n        case DK_TXT_SPHERICAL:\n            pbmhr->fSpherical = fTrue;\n        case DK_TXT_CYLINDRICAL:\n            pbmhr->fFixWrap = fTrue;\n            break;\n        default:\n            Assert(!pbmhr->fFixWrap, \"Inconsistent fixwrap setting for node\");\n            break;\n        }\n    }\n\nLNotexture:\n    pbmhr->pstnMtrlFile = pstn;\n}\n\n/******************************************************************************\n    _FTmapFromBmp\n        Given a texture name, adds the texture to the MTRL with the given CNO.\n        If this texture has never been seen before, the .bmp file is converted\n        to an appropriate TMAP chunk file.  The reference to the parent MTRL's\n        CNO is added to our list of generated TMAPs for use later in actually\n        dumping out the TMAP chunk definition.\n\n    Arguments:\n        PSTN pstnBmpFile  -- the name of the texture\n        CNO cnoPar        -- the CNO of the parent MTRL\n        pstnMtrl          -- the string used for the MTRL name\n\n    Returns: fTrue if the texture was successfully added\n\n************************************************************ PETED ***********/\nbool S2B::_FTmapFromBmp(PBMHR pbmhr, CNO cnoPar, PSTN pstnMtrl)\n{\n    Assert(pbmhr != pvNil, 0);\n    AssertPo(pbmhr->pstnMtrlFile, 0);\n\n    bool fRet = fFalse;\n    long itmapd, itmapdMac;\n    FNI fni;\n    PTMAP ptmap = pvNil;\n    TMAPD tmapd;\n    PSTN pstnBmpFile = pbmhr->pstnMtrlFile;\n\n    /* Look for the bitmap file in our list */\n    if (_pggtmapd == pvNil && (_pggtmapd = GG::PggNew(size(TMAPD))) == pvNil)\n        goto LFail;\n    itmapdMac = _pggtmapd->IvMac();\n    for (itmapd = 0; itmapd < itmapdMac; itmapd++)\n    {\n        _pggtmapd->GetFixed(itmapd, &tmapd);\n        if (pstnBmpFile->FEqual(tmapd.pstn))\n            break;\n    }\n\n    if (itmapd == itmapdMac)\n    {\n        _stnT = *pstnBmpFile;\n        _ps2blx->GetFni(&fni);\n        if (!fni.FSetLeaf(&_stnT, kftgBmp))\n            goto LFail;\n\n        ptmap = TMAP::PtmapReadNative(&fni);\n        if (ptmap == pvNil)\n            goto LFail;\n\n        if (!fni.FChangeFtg(kftgTmapChkFile))\n            goto LFail;\n\n        if ((tmapd.pstn = new STN()) == pvNil)\n            goto LFail;\n        *tmapd.pstn = *pstnBmpFile;\n        tmapd.ccnoPar = 1;\n        tmapd.xp = ptmap->Pbpmp()->width;\n        tmapd.yp = ptmap->Pbpmp()->height;\n        if (!_pggtmapd->FAdd(size(CNO), pvNil, &cnoPar, &tmapd))\n            goto LFailAdd;\n\n        /* Write the file out last; it's easier to remove the reference to a\n            failed file than to delete a file that's not referenced :) */\n        if (!ptmap->FWriteTmapChkFile(&fni, fTrue))\n        {\n            _pggtmapd->Delete(itmapd);\n        LFailAdd:\n            delete tmapd.pstn;\n            goto LFail;\n        }\n    }\n    else\n    {\n        if (!_pggtmapd->FInsertRgb(itmapd, tmapd.ccnoPar * size(CNO), size(CNO), &cnoPar))\n            goto LFail;\n        tmapd.ccnoPar++;\n        _pggtmapd->PutFixed(itmapd, &tmapd);\n    }\n\n    if (pbmhr->brufrUOffset != BR_UFRACTION(0) || pbmhr->brufrVOffset != BR_UFRACTION(0) || pbmhr->fCrop)\n    {\n        BRS brsXScale, brsYScale;\n        BRS brsdu, brsdv;\n        TXXFF txxff;\n\n        txxff.bo = kboCur;\n        txxff.osk = koskCur;\n\n        /* Scaling is the ratio of the width and height of the bitmap left\n            after removing the cropped areas to the width and height of the\n            original bitmap.  The pixel u/vMax is included in the cropped\n            and offset texture. */\n        brsXScale = BR_DIV(BrIntToScalar(pbmhr->uMaxCrop - pbmhr->uMinCrop + 1), BrIntToScalar(tmapd.xp));\n        brsYScale = BR_DIV(BrIntToScalar(pbmhr->vMaxCrop - pbmhr->vMinCrop + 1), BrIntToScalar(tmapd.yp));\n        BrMatrix23Scale(&txxff.bmat23, brsXScale, brsYScale);\n\n        /* Total offset is the specified offset, plus the necessary offset\n            for any cropping */\n        brsdu = BR_ADD(BrUFractionToScalar(pbmhr->brufrUOffset),\n                       BR_DIV(BrIntToScalar(pbmhr->uMinCrop), BrIntToScalar(tmapd.xp)));\n        brsdv = BR_SUB(BR_DIV(BrIntToScalar(tmapd.yp - pbmhr->vMaxCrop), BrIntToScalar(tmapd.yp)),\n                       BrUFractionToScalar(pbmhr->brufrVOffset));\n        BrMatrix23PostTranslate(&txxff.bmat23, brsdu, brsdv);\n\n        /* Dump out the TXXFF chunk for this material */\n        pstnMtrl->FAppendSz(PszLit(\" Texture transform\"));\n        CnoNext();\n        _DumpHeader(kctgTxxf, _cnoCur, pstnMtrl, fTrue);\n        _chse.DumpParentCmd(kctgMtrl, cnoPar, 0);\n        _chse.DumpRgb(&txxff, size(txxff));\n        _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n        _chse.DumpSz(PszLit(\"\"));\n    }\n\n    fRet = fTrue;\nLFail:\n    ReleasePpo(&ptmap);\n    return fRet;\n}\n\n/******************************************************************************\n    _FFlushTmaps\n        Actually writes out the TMAP definitions to the chunk source file.\n        Each unique TMAP chunk is added once, with each MTRL that refers to\n        it being included as a parent of the TMAP chunk.\n\n    Returns: fTrue if all of the TMAP declarations could be generated; in\n        theory, since we would have failed to even add a given TMAP to the list\n        of TMAPs if we couldn't successfully generate the complete filename\n        *and* failing to generate the complete filename is the only way for\n        this routine to fail, this routine should never fail.\n\n************************************************************ PETED ***********/\nbool S2B::_FFlushTmaps(void)\n{\n    AssertPo(_pggtmapd, 0);\n\n    bool fRet = fTrue;\n    long itmapd, itmapdMac = _pggtmapd->IvMac();\n    long icnoPar;\n    CNO cnoPar;\n    TMAPD tmapd;\n\n    for (itmapd = 0; itmapd < itmapdMac; itmapd++)\n    {\n        FNI fni;\n\n        _pggtmapd->GetFixed(itmapd, &tmapd);\n\n        /* Generate the full filename for this texture */\n        _stnT = *tmapd.pstn;\n        _ps2blx->GetFni(&fni);\n        if (!fni.FSetLeaf(&_stnT, kftgTmapChkFile))\n        {\n            fRet = fFalse;\n            continue;\n        }\n\n        /* Emit the header */\n        CnoNext();\n        fni.GetLeaf(&_stnT);\n        _DumpHeader(kctgTmap, _cnoCur, &_stnT, fFalse);\n\n        /* Dump out all the necessary PARENT declarations */\n        for (icnoPar = 0; icnoPar < tmapd.ccnoPar; icnoPar++)\n        {\n            _pggtmapd->GetRgb(itmapd, icnoPar * size(CNO), size(CNO), &cnoPar);\n            _chse.DumpParentCmd(kctgMtrl, cnoPar, 0);\n        }\n\n        /* Finish up the chunk */\n        fni.GetStnPath(&_stnT);\n        _chse.DumpFileCmd(&_stnT, fTrue);\n        _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n        _chse.DumpSz(PszLit(\"\"));\n    }\n\n    Assert(fRet, \"_FFlushTmaps should never fail\");\n    return fRet;\n}\n\n/******************************************************************************\n    _BrsdwrFromModel\n        Computes a distance-between-cels for the given model, given the\n    position of the last model.\n\n    Arguments:\n        Model *pmodel  -- the new model\n        BRS rgbrsDwr[] -- the position of the last model\n\n    Returns: a Brender scalar that's the distance\n\n************************************************************ PETED ***********/\nBRS S2B::_BrsdwrFromModel(Model *pmodel, BRS rgbrsDwr[])\n{\n    BRS brsDwr, brsX, brsY, brsZ;\n\n    /* Calculate difference */\n    brsX = BrFloatToScalar(pmodel->translation.x);\n    brsY = BrFloatToScalar(pmodel->translation.y);\n    brsZ = BrFloatToScalar(pmodel->translation.z);\n    brsDwr = BR_LENGTH3(BR_SUB(rgbrsDwr[0], brsX), BR_SUB(rgbrsDwr[1], brsY), BR_SUB(rgbrsDwr[2], brsZ));\n\n    /* Remember current model position */\n    rgbrsDwr[0] = brsX;\n    rgbrsDwr[1] = brsY;\n    rgbrsDwr[2] = brsZ;\n\n    /* Set model back to origin */\n    pmodel->translation.x = pmodel->translation.y = pmodel->translation.z = (float)0.0;\n\n    return brsDwr;\n}\n\n/*-----------------------------------------------------------------------------\n|\t_CopyVertices\n|\t\tCopy floating point vertices from the SoftImage data structure to\n|\tBrender scalar vertices needed by the Brender data structure.\n|\n|\tArguments:\n|\t\tDK_Vertex *vertices -- pointer to SoftImage vertices array\n|\t\tvoid *pvDst -- pointer to start of Brender vertices in MODLF\n|\t\tlong cVertices -- count of vertices\n|\n-------------------------------------------------------------PETED-----------*/\nvoid S2B::_CopyVertices(DK_Vertex *vertices, void *pvDst, long cVertices)\n{\n    BRV *pbrv = (BRV *)pvDst;\n    DK_Point vtxMin = {(float)klwMax, (float)klwMax, (float)klwMax},\n             vtxMax = {(float)klwMin, (float)klwMin, (float)klwMin};\n\n    for (; cVertices; cVertices--, vertices++, pbrv++)\n    {\n        BRS *pbrs = &pbrv->p.v[0], *pbrsMac = &pbrv->p.v[3];\n        float *pflPos = &vertices->position.x;\n\n        vertices->position.z *= _iZsign;\n\n        while (pbrs < pbrsMac)\n        {\n            *pbrs = BrFloatToScalar(*pflPos);\n            if (_uRound > 0)\n                *pbrs = BR_ROUND(*pbrs, _uRound);\n            pbrs++;\n            pflPos++;\n        }\n\n        if (_mdVerbose > kmdHelpful)\n        {\n            if (vertices->position.x < vtxMin.x)\n                vtxMin.x = vertices->position.x;\n            if (vertices->position.x > vtxMax.x)\n                vtxMax.x = vertices->position.x;\n            if (vertices->position.y < vtxMin.y)\n                vtxMin.y = vertices->position.y;\n            if (vertices->position.y > vtxMax.y)\n                vtxMax.y = vertices->position.y;\n            if (vertices->position.z < vtxMin.z)\n                vtxMin.z = vertices->position.z;\n            if (vertices->position.z > vtxMax.z)\n                vtxMax.z = vertices->position.z;\n        }\n    }\n    if (_mdVerbose > kmdHelpful)\n    {\n        if (_iZsign < 0)\n            SwapVars(&vtxMin.z, &vtxMax.z);\n        printf(\"Node bounds: (% 6.2f, % 6.2f, % 6.2f) - (% 6.2f, % 6.2f, % 6.2f)\\n\", vtxMin.x, vtxMin.y,\n               _iZsign * vtxMin.z, vtxMax.x, vtxMax.y, _iZsign * vtxMax.z);\n    }\n}\n\n/*-----------------------------------------------------------------------------\n|\t_CopyFaces\n|\t\tCopy all of the face data from the SoftImage list to the\n|\tBrender list.\n|\n|\tArguments:\n|\t\tDK_Polygon *polygons -- list of SoftImage polygons (faces)\n|\t\tvoid *pvDst\t -- pointer to array of Brender faces\n|\t\tlong cFaces\t -- count of faces to copy\n|\n-------------------------------------------------------------PETED-----------*/\nvoid S2B::_CopyFaces(DK_Polygon *polygons, void *pvDst, long cFaces, BRV rgbrv[], long cVertices)\n{\n    BRFC *pbrfc = (BRFC *)pvDst;\n\n    for (; cFaces; cFaces--, polygons++, pbrfc++)\n    {\n        int cNodes = min(polygons->nbNodes, 3), i;\n        DK_PolyNode *ppolynode = polygons->nodes;\n        br_uint_16 *pvtx = &pbrfc->vertices[0];\n\n        /* If we get an invalid node count, warn about it and then fill in\n            if necessary (REVIEW peted: seems highly unlikely that we'll\n            ever have too few vertices, seeing as how any less than 3\n            gives a very uninteresting face indeed) */\n        if (polygons->nbNodes != 3)\n        {\n            printf(\"SoftImage data has %d vertices for face\\n\", polygons->nbNodes);\n            Assert(cNodes == 3, \"Better keep that 'fill-in' code\");\n            for (i = cNodes; i < 3; i++)\n                pvtx[i] = (br_uint_16)ppolynode->vertex;\n        }\n\n        /* copy the vertices for this face */\n        for (; cNodes; cNodes--, ppolynode++, pvtx++)\n        {\n            *pvtx = (br_uint_16)ppolynode->vertex;\n            if (*pvtx < cVertices)\n            {\n                rgbrv[*pvtx].map.v[0] = BrFloatToScalar(ppolynode->uTxt);\n                rgbrv[*pvtx].map.v[1] = BrFloatToScalar(ppolynode->vTxt);\n            }\n            else\n                printf(\"Warning: vertex out of range for mesh\\n\");\n        }\n\n        pbrfc->smoothing = 0x0001;\n    }\n}\n\n/******************************************************************************\n    _FDoBodyPart\n        Handles a single body part.  Sets the Brender body part set for the\n        given body part and stores that in the GL for the body part sets, and\n        then handles actually generating whatever costume information for this\n        body part is needed.\n\n    Arguments:\n        PBMHR pbmhr  -- The BMHR that describes this body part\n        long ibp     -- the actual body part number for this body part\n\n    Returns:  fTrue if the body part could be added, and its basic costume\n        information could be written out; failing to add the TMAP information\n        simply generates a warning without causing this routine to return a\n        failure.\n\n************************************************************ PETED ***********/\nbool S2B::_FDoBodyPart(PBMHR pbmhr, long ibp)\n{\n    bool fRet = fFalse, fDoMtrl = (_pglclr != pvNil && _pglcmtld != pvNil);\n    bool fUseMtrl;\n    short ibps;\n    long ibpGl;\n    CMTLD cmtld;\n    long icmtld, icmtldMac, iibps, iibpsMac;\n\n    /* Find the appropriate CMTL */\n    if (fDoMtrl)\n    {\n        /* We may be only making costumes for a subset of the body part sets */\n        if (_pglibps != pvNil)\n        {\n            iibpsMac = _pglibps->IvMac();\n            for (iibps = 0; iibps < iibpsMac; iibps++)\n            {\n                long ibpsUse;\n\n                _pglibps->Get(iibps, &ibpsUse);\n                if (ibpsUse == pbmhr->ibps)\n                    break;\n            }\n            fUseMtrl = iibps < iibpsMac;\n        }\n        else\n            fUseMtrl = fTrue;\n\n        /* Go ahead and figure out the mapping from SI body part sets to\n            Brender body part sets */\n        icmtldMac = _pglcmtld->IvMac();\n        for (icmtld = 0; icmtld < icmtldMac; icmtld++)\n        {\n            _pglcmtld->Get(icmtld, &cmtld);\n            if (cmtld.ibps == pbmhr->ibps)\n                break;\n        }\n        AssertIn(icmtld, kswMin, kswMax + 1);\n        ibps = (short)icmtld;\n    }\n    else\n        ibps = pbmhr->ibps;\n\n    if (_fMakeGlpi && !_pglbs->FAdd(&ibps, &ibpGl))\n        goto LFail;\n\n    if (_fMakeCostume)\n    {\n        Assert(!_fMakeGlpi || ibpGl == ibp, \"Weird order for GLBS\");\n\n        /* Handle material stuff, if we have color info */\n        if (fDoMtrl)\n        {\n            long ccmid;\n\n            /* Create the CMTL chunk if necessary */\n            if (icmtld == icmtldMac)\n            {\n                long icmtldT;\n\n                /* Add it to our list */\n                cmtld.cno = CnoNext();\n                cmtld.chidCur = 0;\n                cmtld.ibps = pbmhr->ibps;\n                cmtld.chid = _chidCmtl;\n                if (!_pglcmtld->FAdd(&cmtld, &icmtldT))\n                    goto LFail;\n                Assert(icmtldT == icmtld, \"Bogus icmtld\");\n\n                /* Add it to the GGCM */\n                Assert(ibps <= _pggcm->IvMac(), \"ibps out of range\");\n                if (ibps == _pggcm->IvMac())\n                {\n                    long iv;\n\n                    ccmid = 0;\n                    if (!_pggcm->FAdd(0, &iv, pvNil, &ccmid))\n                        goto LFail;\n                    Assert(iv == ibps, \"bogus iv\");\n                }\n\n                if (fUseMtrl)\n                {\n                    CMTLF cmtlf;\n\n                    _chidCmtl++;\n\n                    _pggcm->GetFixed(ibps, &ccmid);\n                    if (!_pggcm->FInsertRgb(ibps, size(long) * ccmid, size(long), &cmtld.chid))\n                        goto LFail;\n                    ccmid++;\n                    _pggcm->PutFixed(ibps, &ccmid);\n\n                    /* Write a nice CMTL chunk */\n                    cmtlf.bo = kboCur;\n                    cmtlf.osk = koskCur;\n                    cmtlf.ibset = ibps;\n                    if (ccmid == 1)\n                    {\n                        _stnT.FFormatSz(PszLit(\"%s Body Part Set %d Default\"), &_stnTmpl, ibps);\n                    }\n                    else\n                    {\n                        _stnT.FFormatSz(PszLit(\"%s Body Part Set %d Costume %d\"), &_stnTmpl, ibps, ccmid);\n                    }\n                    _DumpHeader(kctgCmtl, cmtld.cno, &_stnT, fTrue);\n                    _chse.DumpParentCmd(kctgTmpl, _cnoPar, cmtld.chid);\n                    _chse.DumpRgb(&cmtlf, size(cmtlf));\n                    _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n                    _chse.DumpSz(PszLit(\"\"));\n                }\n            }\n            else if (fUseMtrl)\n                _pggcm->GetFixed(ibps, &ccmid);\n\n            /* Write a nice MTRL chunk for this body part */\n            if (fUseMtrl)\n            {\n                if (ccmid == 1)\n                {\n                    _stnT.FFormatSz(PszLit(\"%s Part %d Default MTRL\"), &_stnTmpl, ibp);\n                }\n                else\n                {\n                    _stnT.FFormatSz(PszLit(\"%s Part %d Costume %d MTRL\"), &_stnTmpl, ibp, ccmid);\n                }\n                CnoNext();\n                _DumpHeader(kctgMtrl, _cnoCur, &_stnT, fTrue);\n                _chse.DumpParentCmd(kctgCmtl, cmtld.cno, cmtld.chidCur);\n                _chse.DumpRgb(&pbmhr->mtrlf, size(MTRLF));\n                _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n                _chse.DumpSz(PszLit(\"\"));\n\n                if (pbmhr->pstnMtrlFile != pvNil)\n                {\n                    if (!_FTmapFromBmp(pbmhr, _cnoCur, &_stnT))\n                    {\n                        printf(\"Warning: texture BMP file does not exist or is invalid (%s)\\n\",\n                               pbmhr->pstnMtrlFile->Psz());\n                    }\n                }\n\n                if (pbmhr->fAccessory)\n                {\n                    PBMDB pbmdb;\n                    KID kidBmdl;\n\n                    _ApplyBmdlXF(pbmhr);\n                    if (!_FChidFromModlf(pbmhr, pvNil, &pbmdb))\n                        goto LFail;\n                    kidBmdl.cki.ctg = ctgNil;\n                    kidBmdl.cki.cno = cmtld.cno;\n                    kidBmdl.chid = cmtld.chidCur;\n                    if (!_FAddBmdlParent(pbmdb, &kidBmdl))\n                        goto LFail;\n                }\n\n                cmtld.chidCur++;\n                _pglcmtld->Put(icmtld, &cmtld);\n            }\n        }\n    }\n    fRet = fTrue;\nLFail:\n    return fRet;\n}\n\nvoid S2B::_ApplyBmdlXF(PBMHR pbmhr)\n{\n    long cver = pbmhr->pmodlf->cver;\n    BRV *pbrv = (BRV *)PvAddBv(pbmhr->pmodlf, size(MODLF));\n\n    while (cver--)\n    {\n        BrMatrix34ApplyP(&pbrv->p, &pbrv->p, &pbmhr->bmat34);\n        pbrv++;\n    }\n}\n\n/*-----------------------------------------------------------------------------\n|\t_FProcessBmhr\n|\t\tIterates through a Brender model hierarchy, creating the necessary\n|\tchunk data as it goes.  The GLPI is made the first time, and then\n|\tverified each subsequent time for the template.  The array of CPSs\n|\tis filled in for the given node of the given cel.  If the MODLF is no\n|\tlonger needed, it's freed; the model node is always freed.\n|\n|\tArguments:\n|\t\tPBMHR *ppbmhr -- points to pointer that points to this node\n|\t\tshort ibpPar -- index of this node's parent body part\n|\n|\tReturns:\n|\t\tfTrue if it succeeds, fFalse otherwise\n|\n-------------------------------------------------------------PETED-----------*/\nbool S2B::_FProcessBmhr(PBMHR *ppbmhr, short ibpPar)\n{\n    short ibpThis;\n    PBMHR pbmhrCur = *ppbmhr, pbmhrNext;\n\n    while (pbmhrCur != pvNil)\n    {\n        pbmhrNext = pbmhrCur->pbmhrSibling;\n\n        /* Create Cel Part Spec for this node */\n        ibpThis = _ibpCur++;\n        if (!_fCostumeOnly)\n        {\n            if (!_FSetCps(pbmhrCur, &_prgcps[ibpThis]))\n                goto LFail; // _FSetCps already displayed the error\n        }\n        else\n            Assert(_prgcps == pvNil, \"Why is there an array of CPS allocated?\");\n\n        /* Update or verify GLPI */\n        if (_fMakeGlpi)\n        {\n            long ibpGl;\n\n            if (!_pglibactPar->FAdd(&ibpPar, &ibpGl))\n            {\n                printf(\"Error: Couldn't add node to GLPI -- OOM\\n\");\n                goto LFail;\n            }\n            Assert(ibpGl == ibpThis, \"Weird order for GLPI\");\n        }\n        else\n        {\n            short ibpParGlpi;\n\n            _pglibactPar->Get(ibpThis, &ibpParGlpi);\n            if (ibpPar != ibpParGlpi)\n            {\n                printf(\"Error: cel doesn't match previous GLPI hierarchy\");\n                if (pbmhrCur->pszName != pvNil)\n                    printf(\" (node %s)\\n\", pbmhrCur->pszName);\n                else\n                    printf(\"\\n\");\n                goto LFail;\n            }\n        }\n\n        if (_pglbs != pvNil && (_fMakeGlpi || _fMakeCostume) && !_FDoBodyPart(pbmhrCur, ibpThis))\n        {\n            printf(\"Warning: no body part set information -- OOM\\n\");\n            ReleasePpo(&_pglbs);\n            ReleasePpo(&_pglcmtld);\n        }\n\n        /* Process the children */\n        if (!_FProcessBmhr(&pbmhrCur->pbmhrChild, ibpThis))\n        {\n            Assert(*ppbmhr == pbmhrCur, 0);\n            goto LFail;\n        }\n\n        /* Clean up and go to next sibling */\n        FreePpv((void **)&pbmhrCur->pmodlf);\n        FreePpv((void **)&pbmhrCur->pszName);\n        if ((*ppbmhr)->pstnMtrlFile != pvNil)\n            delete (*ppbmhr)->pstnMtrlFile;\n        FreePpv((void **)&pbmhrCur);\n        *ppbmhr = pbmhrCur = pbmhrNext;\n    }\n\n    return fTrue;\nLFail:\n    return fFalse;\n}\n\n/*-----------------------------------------------------------------------------\n|\t_FEnsureOneRoot\n|\t\tMakes sure that the root of our Brender hierarchy has no siblings.\n|\tWill create a new null root if required.  Will delete the entire tree\n|\tif it was unsuccessful.\n|\n|\tArguments:\n|\t\tPBMHR *ppbmhr -- points to pointer to the root of the hierarchy\n|\n|\tReturns:\n|\t\tfTrue if it could make sure the tree had siblingless root\n|\n-------------------------------------------------------------PETED-----------*/\nbool S2B::_FEnsureOneRoot(PBMHR *ppbmhr)\n{\n    MODLF *pmodlf;\n    PBMHR pbmhr;\n\n    /* REVIEW peted: don't bother doing this, 'cause it messes up the material\n        stuff.  If we really care (which I'm not sure we do, since Socrates\n        now handles multiple root-level nodes), we can fix this so that any\n        automatically generated body part sets are also included in the list\n        of body part sets to create material info for.  Alternatively, Socrates\n        could handle not having a material for a body part set more gracefully */\n    return fTrue;\n\n    /* If the tree's empty, fail since there's no use making a null model */\n    if (*ppbmhr == pvNil)\n    {\n        printf(\"Error: no valid nodes found in model\\n\");\n        return fFalse;\n    }\n\n    /* If the tree's already good, great! */\n    if ((*ppbmhr)->pbmhrSibling == pvNil)\n        return fTrue;\n\n    /* Allocate necessary structures.  The MODLF and the BMHR */\n    if (!FAllocPv((void **)&pmodlf, size(MODLF), fmemClear, mprNormal))\n        goto LFail;\n    if (!FAllocPv((void **)&pbmhr, size(BMHR), fmemClear, mprNormal))\n    {\n        FreePpv((void **)&pmodlf);\n        goto LFail;\n    }\n    pbmhr->pmodlf = pmodlf;\n    _InitBmhr(pbmhr);\n\n    /* Fill in the MODLF; no faces or vertices */\n    Assert(pmodlf->cver == 0, \"Didn't clear MODLF\");\n    Assert(pmodlf->cfac == 0, \"Didn't clear MODLF\");\n\n    /* Fill in the BMHR */\n    pbmhr->cbModlf = size(MODLF);\n    BrMatrix34Identity(&pbmhr->bmat34);\n    pbmhr->pbmhrSibling = pvNil;\n\n    /* Hook it in and count it */\n    pbmhr->pbmhrChild = *ppbmhr;\n    *ppbmhr = pbmhr;\n    _cMesh++;\n\n    return fTrue;\nLFail:\n    _DisposeBmhr(ppbmhr);\n    return fFalse;\n}\n\n/******************************************************************************\n    _InitBmhr\n        Initalize the chunk \"F\" structures for the BMHR\n\n    Arguments:\n        PBMHR pbmhr  -- the BMHR to init\n\n************************************************************ PETED ***********/\nvoid S2B::_InitBmhr(PBMHR pbmhr)\n{\n    pbmhr->pmodlf->bo = pbmhr->mtrlf.bo = kboCur;\n    pbmhr->pmodlf->osk = pbmhr->mtrlf.osk = koskCur;\n}\n\n/* Wrap fixing code from Sam at Argonaut begins here */\n\n/*\n * Flags to ModelFixWrapping()\n */\n#define WRAP_U_0 0x40\n#define WRAP_V_0 0x80\n#define WRAP_U_1 0x10\n#define WRAP_V_1 0x20\n\n/*\n * Copyright (c) 1993-1995 by Argonaut Technologies Limited. All rights reserved.\n *\n * $Id: $\n * $Locker:  $\n */\n\n/*\n * Scratch structures used by ModelFixWrapping()\n */\nstruct wrap_face_info\n{\n    br_uint_8 edge_dir[3];\n    br_uint_8 vflags[3];\n};\n\nstruct wrap_edge_info\n{\n    br_uint_16 old_vertices[2];\n    br_uint_16 vertices[2];\n    br_uint_8 count;\n    br_uint_8 flags;\n    br_uint_8 vflags[2];\n};\n\n/*\n * Temp. workspace used to build new vertices\n */\nstatic br_vertex *WrapNewVertices;\nstatic int WrapTotalVertices;\nstatic int WrapNextVertex;\n\n/*\n * Adds a new vertex to model that has had it's\n * wrapping fixed\n */\n\nstatic int WrapAddVertex(br_vertex *new_vp)\n{\n    int i;\n    struct br_vertex *vp;\n\n    /*\n     * Try and find vertex in current set\n     */\n    vp = WrapNewVertices;\n\n    for (i = 0; i < WrapNextVertex; i++, vp++)\n    {\n        if (new_vp->p.v[0] == vp->p.v[0] && new_vp->p.v[1] == vp->p.v[1] && new_vp->p.v[2] == vp->p.v[2] &&\n            new_vp->map.v[0] == vp->map.v[0] && new_vp->map.v[1] == vp->map.v[1])\n            return i;\n    }\n\n    /*\n     * Add to end of list\n     */\n    if (WrapNextVertex >= WrapTotalVertices)\n        BR_ERROR0(\"WrapAddVertex: no space\");\n\n    WrapNewVertices[WrapNextVertex] = *new_vp;\n\n    return WrapNextVertex++;\n}\n\n/*\n * ModelFixWrapping()\n *\n * Processes a model and attempts to fix up seams where the texture\n * coordinates implicitly wrap.\n *\n * Takes a pointer to an integer mask of [WRAP_U , WRAP_V]\n * Each bit indicates that wrapping should be explored in that\n * texture axis.\n */\nbool FModelFixWrapping(br_model *model, int *mask)\n{\n    Assert(!(*mask & WRAP_V_0), \"WRAP_V NYI\");\n\n    bool fRet = fFalse;\n    br_vertex *vp0, *vp1;\n    br_face *fp;\n    int f, e, e0, e1, v, num0_wraps, num1_wraps, v0, v1;\n    struct wrap_edge_info *edge_info, *eip;\n    struct wrap_face_info *face_info, *fip;\n    br_vertex tempv;\n    BRS brsMinDist0, brsMinDist1;\n\n    /* Ensure edge info */\n    BrModelPrepare(model, BR_MPREP_EDGES);\n\n    //\tedge_info = BrMemCalloc(model->nedges,sizeof(*edge_info),BR_MEMORY_APPLICATION);\n    if (!FAllocPv((void **)&edge_info, model->nedges * size(wrap_edge_info), fmemClear, mprNormal))\n    {\n        goto LFail;\n    }\n\n    //\tface_info = BrMemCalloc(model->nfaces,sizeof(*face_info),BR_MEMORY_APPLICATION);\n    if (!FAllocPv((void **)&face_info, model->nfaces * size(wrap_face_info), fmemClear, mprNormal))\n    {\n        goto LFail;\n    }\n\n    /*\n     * Go through faces to build edge table\n     */\n    fp = model->faces;\n    fip = face_info;\n    for (f = 0; f < model->nfaces; f++, fp++, fip++)\n    {\n        for (e0 = 0; e0 < 3; e0++)\n        {\n            e1 = (e0 == 2) ? 0 : (e0 + 1);\n            eip = edge_info + fp->edges[e0];\n            eip->count++;\n            if (eip->count == 1)\n            {\n                /*\n                 * First time edge has been used\n                 */\n                eip->vertices[0] = fp->vertices[e0];\n                eip->vertices[1] = fp->vertices[e1];\n\n                eip->old_vertices[0] = eip->vertices[0];\n                eip->old_vertices[1] = eip->vertices[1];\n            }\n\n            /*\n             * See which direction edge is used\n             */\n            if (eip->vertices[0] == fp->vertices[e0] && eip->vertices[1] == fp->vertices[e1])\n            {\n                fip->edge_dir[e0] = 0;\n            }\n            else if (eip->vertices[0] == fp->vertices[e1] && eip->vertices[1] == fp->vertices[e0])\n            {\n                fip->edge_dir[e0] = 1;\n            }\n            else\n                BR_ERROR1(\"Face %d has a bad edge\\n\", f);\n        }\n    }\n\n    /*\n     * For each edge - find if U or V wraps\n     */\n    num0_wraps = 0;\n    num1_wraps = 0;\n    brsMinDist0 = brsMinDist1 = BR_SCALAR(1.0);\n\n    eip = edge_info;\n    for (e = 0; e < model->nedges; e++, eip++)\n    {\n        vp0 = model->vertices + eip->vertices[0];\n        vp1 = model->vertices + eip->vertices[1];\n\n        if ((*mask & WRAP_U_0) && (BR_ABS(vp0->map.v[0] - vp1->map.v[0]) > BR_SCALAR(0.5)))\n        {\n            br_uint_8 vf0, vf1;\n\n            Assert(vp0->map.v[0] >= BR_SCALAR(0.0), \"Vertex U less than 0\");\n            Assert(vp0->map.v[0] <= BR_SCALAR(1.0), \"Vertex U greater than 1\");\n            Assert(vp1->map.v[0] >= BR_SCALAR(0.0), \"Vertex U less than 0\");\n            Assert(vp1->map.v[0] <= BR_SCALAR(1.0), \"Vertex U greater than 1\");\n\n            vf0 = vf1 = 0;\n            if (vp0->map.v[0] > vp1->map.v[0])\n            {\n                BRS brsDist;\n\n                brsDist = BR_SUB(BR_SCALAR(1.0), vp0->map.v[0]);\n\n                /* Put the new vertex colocated with whatever vertex is closest\n                    to the 0/1 boundary */\n                if (brsDist < vp1->map.v[0])\n                    vf0 = WRAP_U_0;\n                else\n                    vf1 = WRAP_U_1;\n            }\n            else\n            {\n                BRS brsDist;\n\n                brsDist = BR_SUB(BR_SCALAR(1.0), vp1->map.v[0]);\n\n                /* Ditto */\n                if (brsDist < vp0->map.v[0])\n                    vf1 = WRAP_U_0;\n                else\n                    vf0 = WRAP_U_1;\n            }\n\n            /*\n             * Mark lower vertex as wrapping - keep a count\n             * new wraps\n             */\n            if (!(eip->vflags[0] & vf0))\n            {\n                eip->vflags[0] |= vf0;\n                if (vf0 & WRAP_U_0)\n                    num0_wraps++;\n                else\n                    num1_wraps++;\n            }\n            if (!(eip->vflags[1] & vf1))\n            {\n                eip->vflags[1] |= vf1;\n                if (vf1 & WRAP_U_0)\n                    num0_wraps++;\n                else\n                    num1_wraps++;\n            }\n            /*\n             * mark face\n             */\n            eip->flags |= WRAP_U_0;\n        }\n\n#ifdef NOT\n        if ((*mask & WRAP_V) && (BR_ABS(vp0->map.v[1] - vp1->map.v[1]) > BR_SCALAR(0.5)))\n        {\n            vw = (vp0->map.v[1] > vp1->map.v[1]) ? 1 : 0;\n\n            if (!(eip->vflags[vw] & WRAP_V))\n            {\n                eip->vflags[vw] |= WRAP_V;\n                num_wraps++;\n            }\n            /*\n             * mark face\n             */\n            eip->flags |= WRAP_V;\n        }\n#endif\n    }\n\n    /*\n     * Go through faces and accumulate per face-vertex flags\n     */\n    fp = model->faces;\n    fip = face_info;\n\n    for (f = 0; f < model->nfaces; f++, fp++, fip++)\n    {\n        for (e0 = 0; e0 < 3; e0++)\n        {\n            e1 = (e0 == 2) ? 0 : (e0 + 1);\n            eip = edge_info + fp->edges[e0];\n\n            if (fip->edge_dir[e0])\n                v0 = 1, v1 = 0;\n            else\n                v0 = 0, v1 = 1;\n\n            fip->vflags[e0] |= eip->vflags[v0];\n            fip->vflags[e1] |= eip->vflags[v1];\n        }\n    }\n\n    /*\n     * Allocate a new vertex array (may be bigger than required)\n     */\n    WrapTotalVertices = model->nvertices + num1_wraps + num0_wraps;\n    WrapNewVertices = (BRV *)BrResAllocate(model, WrapTotalVertices * sizeof(*WrapNewVertices), BR_MEMORY_VERTICES);\n    memcpy(WrapNewVertices, model->vertices, sizeof(*WrapNewVertices) * model->nvertices);\n\n    WrapNextVertex = model->nvertices;\n\n    /*\n     * Go through faecs and generate new vertices\n     */\n    fp = model->faces;\n    fip = face_info;\n\n    for (f = 0; f < model->nfaces; f++, fp++, fip++)\n    {\n        br_uint_8 vflags = 0, vbad = 0;\n        int v0, v1;\n\n        v0 = v1 = -1;\n        for (v = 0; v < 3; v++)\n        {\n            br_vertex *pbrv;\n\n            if (!(fip->vflags[v]))\n                continue;\n\n            Assert((fip->vflags[v] & (WRAP_U_0 | WRAP_U_1)) != (WRAP_U_0 | WRAP_U_1), \"Both wrap flags set!\");\n            Assert(v0 == -1 || v1 == -1, \"Already seen two bad vertices\");\n\n            /*\n             * Make a copy of the vertex, and wrap\n             * mapping coordinates\n             */\n            pbrv = &WrapNewVertices[fp->vertices[v]];\n            tempv = *pbrv;\n\n            vbad |= (0x01 << v);\n            if (fip->vflags[v] & WRAP_U_0)\n            {\n                if (vflags & WRAP_U_0)\n                    v1 = v;\n                else\n                {\n                    vflags |= WRAP_U_0;\n                    v0 = v;\n                }\n            }\n            else\n            {\n                Assert(fip->vflags[v] & WRAP_U_1, \"Unknown wrap flag set\");\n                if (vflags & WRAP_U_1)\n                    v0 = v;\n                else\n                {\n                    vflags |= WRAP_U_1;\n                    v1 = v;\n                }\n            }\n\n#ifdef NOT\n            if (fip->vflags[v] & WRAP_U)\n                tempv.map.v[0] = /* tempv.map.v[0] + */ BR_SCALAR(1.0);\n\n            if (fip->vflags[v] & WRAP_V)\n                tempv.map.v[1] = /* tempv.map.v[1] + */ BR_SCALAR(1.0);\n#endif\n        }\n\n        if (!vflags)\n            continue;\n\n        if ((vflags & (WRAP_U_0 | WRAP_U_1)) == (WRAP_U_0 | WRAP_U_1))\n        {\n            int v_move, v_good;\n            br_vertex *pbrv_good, *pbrv_move;\n            br_scalar brs_new_u;\n\n            /* Need to figure out which to actually move */\n            vbad ^= 0x07;\n            Assert(!((vbad - 1) & vbad), \"Should only have one bit set\");\n            for (v_good = 0; vbad > 1; v_good++, vbad >>= 1)\n                ;\n            Assert(FIn(v_good, 0, 3), \"vbad out of range\");\n            pbrv_good = &WrapNewVertices[fp->vertices[v_good]];\n\n            /* The good vertex will be within 0.5 of the new u value */\n            if (pbrv_good->map.v[0] >= BR_SCALAR(0.5))\n            {\n                brs_new_u = BR_SCALAR(1.0);\n                v_move = v1;\n            }\n            else\n            {\n                brs_new_u = BR_SCALAR(0.0);\n                v_move = v0;\n            }\n            pbrv_move = &WrapNewVertices[fp->vertices[v_move]];\n            Assert(BR_ABS(BR_SUB(pbrv_good->map.v[0], pbrv_move->map.v[0])) > BR_SCALAR(0.5),\n                   \"Moved vertex is within 0.5 of good vertex\");\n            tempv = *pbrv_move;\n            tempv.map.v[0] = brs_new_u;\n            fp->vertices[v_move] = WrapAddVertex(&tempv);\n        }\n        else\n        {\n            br_scalar brs_new_u;\n\n            if (vflags & WRAP_U_0)\n                brs_new_u = BR_SCALAR(0.0);\n            else\n            {\n                Assert(vflags & WRAP_U_1, \"Unknown wrap flag\");\n                brs_new_u = BR_SCALAR(1.0);\n            }\n\n            /* Possibly need to move both vertices over to new u value */\n            if (v0 != -1)\n            {\n                tempv = WrapNewVertices[fp->vertices[v0]];\n                tempv.map.v[0] = brs_new_u;\n                fp->vertices[v0] = WrapAddVertex(&tempv);\n            }\n            else\n                Assert(vflags & WRAP_U_1, \"Inconsistent wrap flag\");\n\n            if (v1 != -1)\n            {\n                tempv = WrapNewVertices[fp->vertices[v1]];\n                tempv.map.v[0] = brs_new_u;\n                fp->vertices[v1] = WrapAddVertex(&tempv);\n            }\n            else\n                Assert(vflags & WRAP_U_0, \"Inconsistent wrap flag\");\n        }\n    }\n\n    //\tBrMemFree(face_info);\n    FreePpv((void **)&face_info);\n    //\tBrMemFree(edge_info);\n    FreePpv((void **)&edge_info);\n\n    /*\n     * Connect new vertex array to faces\n     */\n    BrResFree(model->vertices);\n\n    model->vertices = WrapNewVertices;\n    model->nvertices = WrapNextVertex;\n    WrapNewVertices = NULL;\n\n    fRet = fTrue;\nLFail:\n    return fRet;\n}\n\n/* Wrap fix code from Sam at Argonaut ends here */\n\n/*-----------------------------------------------------------------------------\n|\t_FlushTmplKids\n|\t\tWrites whatever the current template accumulators contain and\n|\tresets them.\n|\n-------------------------------------------------------------PETED-----------*/\nvoid S2B::_FlushTmplKids(void)\n{\n    int cBmdbTotal = 0, cBmdbChains = 0;\n#if HASH_FIXED\n    PBMDB *ppbmdb;\n#endif /* HASH_FIXED */\n    PBMDB pbmdb, pbmdbNext;\n\n    if (_pglibactPar != pvNil)\n    {\n#if HASH_FIXED\n        Assert(_prgpbmdb != pvNil, 0);\n        PBMDB *ppbmdbMac = (_prgpbmdb + kcpbmdb);\n#else  /* HASH_FIXED */\n        Assert(_pglpbmdb != pvNil, 0);\n        long ipbmdb = _pglpbmdb->IvMac();\n#endif /* !HASH_FIXED */\n\n        Assert(_ctgPar == kctgTmpl, \"Odd parent for body part chunks\");\n\n        CnoNext();\n        _stnT.FFormatSz(PszLit(\"%s Tree\"), &_stnTmpl);\n        _DumpHeader(kctgGlpi, _cnoCur, &_stnT, fTrue);\n        _chse.DumpParentCmd(_ctgPar, _cnoPar, 0);\n        _chse.DumpList(_pglibactPar);\n        _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n        _chse.DumpSz(PszLit(\"\"));\n\n        /* Create dummy GLBS if necessary */\n        if (_pglbs == pvNil)\n        {\n            short swZero = 0;\n\n            Assert(_pglcmtld == pvNil, \"Custom material info with no body part set info\");\n            for (long lw = 0; lw < _pglibactPar->IvMac(); lw++)\n                _pglibactPar->Put(lw, &swZero);\n            _pglbs = _pglibactPar;\n            _pglibactPar = pvNil;\n        }\n        else\n        {\n            /* Don't need this any more */\n            ReleasePpo(&_pglibactPar);\n\n            /* Do material stuff if we have the CMTL GL and there's valid\n                color info */\n            if (_pggcm != pvNil && _pglclr != pvNil)\n            {\n                /* Dump out GGCM */\n                Assert(_ctgPar == kctgTmpl, \"Weird parent for GGCM\");\n                CnoNext();\n                _stnT.FFormatSz(PszLit(\"%s Costumes\"), &_stnTmpl);\n                _DumpHeader(kctgGgcm, _cnoCur, &_stnT, fTrue);\n                _chse.DumpParentCmd(_ctgPar, _cnoPar, 0);\n                _chse.DumpGroup(_pggcm);\n                _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n                _chse.DumpSz(PszLit(\"\"));\n            }\n#ifdef DEBUG\n            else if (_pggcm != pvNil)\n                Assert(_pggcm->IvMac() == 0, \"Non-empty GGCM without any color info\");\n#endif // DEBUG\n            ReleasePpo(&_pggcm);\n\n            if (_pggtmapd != pvNil)\n            {\n                if (!_FFlushTmaps())\n                    printf(\"Warning: couldn't write all TMAPs; some textures may not be present\\n\");\n                ReleasePpo(&_pggtmapd);\n            }\n        }\n\n        CnoNext();\n        _stnT.FFormatSz(PszLit(\"%s Body Part Sets\"), &_stnTmpl);\n        _DumpHeader(kctgGlbs, _cnoCur, &_stnT, fTrue);\n        _chse.DumpParentCmd(_ctgPar, _cnoPar, 0);\n        _chse.DumpList(_pglbs);\n        _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n        _chse.DumpSz(PszLit(\"\"));\n        ReleasePpo(&_pglbs);\n\n#if HASH_FIXED\n        for (ppbmdb = _prgpbmdb; ppbmdb < ppbmdbMac; ppbmdb++)\n#else  /* HASH_FIXED */\n        while (ipbmdb > 0)\n#endif /* !HASH_FIXED */\n        {\n            int cBmdbList = 0;\n\n#if HASH_FIXED\n            pbmdb = *ppbmdb;\n#else  /* HASH_FIXED */\n            ipbmdb--;\n            _pglpbmdb->Get(ipbmdb, &pbmdb);\n#endif /* !HASH_FIXED */\n            while (pbmdb != pvNil)\n            {\n                /* Don't bother fixing up a model with no vertices; it wastes\n                    time, and the Argonaut code doesn't handle that case\n                    gracefully anyway */\n                if (_fFixWrap && pbmdb->pmodlf->cver > 0 && pbmdb->fFixWrap)\n                {\n                    bool fSuccess = fFalse;\n                    PBMDL pbmdl = pvNil;\n\n                    if (_FModlfToBmdl(pbmdb->pmodlf, &pbmdl))\n                    {\n                        int mask;\n\n                        mask = pbmdb->fSpherical ? (WRAP_U_0 | WRAP_V_0) : WRAP_U_0;\n                        if (FModelFixWrapping(pbmdl, &mask))\n                        {\n                            fSuccess = _FBmdlToModlf(pbmdl, &pbmdb->pmodlf, &pbmdb->cbModlf);\n                        }\n                        BrModelFree(pbmdl);\n                    }\n                    if (!fSuccess)\n                    {\n                        printf(\"Warning: couldn't fix up texture wrapping for\");\n                        if (pbmdb->pszName != pvNil)\n                            printf(\" node %s\\n\", pbmdb->pszName);\n                        else\n                            printf(\" unnamed node\\n\");\n                    }\n                }\n\n                cBmdbList++;\n                if (pbmdb->pszName == pvNil)\n                    _stnT.FFormatSz(PszLit(\"%s Model %d\"), &_stnTmpl, pbmdb->chidBmdl);\n                else\n                    _stnT.FFormatSz(PszLit(\"%s Model %z\"), &_stnTmpl, pbmdb->pszName);\n                _DumpHeader(kctgBmdl, pbmdb->cnoBmdl, &_stnT, fTrue);\n                if (pbmdb->pglkidCmtl != pvNil)\n                {\n                    long icno, icnoMac = pbmdb->pglkidCmtl->IvMac();\n                    KID kidBmdl;\n\n                    for (icno = 0; icno < icnoMac; icno++)\n                    {\n                        pbmdb->pglkidCmtl->Get(icno, &kidBmdl);\n                        _chse.DumpParentCmd(kctgCmtl, kidBmdl.cki.cno, kidBmdl.chid);\n                    }\n                    ReleasePpo(&pbmdb->pglkidCmtl);\n                }\n                if (pbmdb->chidBmdl != ivNil)\n                    _chse.DumpParentCmd(_ctgPar, _cnoPar, pbmdb->chidBmdl);\n                _chse.DumpRgb(pbmdb->pmodlf, pbmdb->cbModlf);\n                _chse.DumpSz(PszLit(\"ENDCHUNK\"));\n                _chse.DumpSz(PszLit(\"\"));\n\n                pbmdbNext = (PBMDB)pbmdb->hshdb.phshdbNext;\n                FreePpv((void **)&pbmdb->pmodlf);\n                FreePpv((void **)&pbmdb->pszName);\n                FreePpv((void **)&pbmdb);\n                pbmdb = pbmdbNext;\n            }\n            cBmdbTotal += cBmdbList;\n            if (_mdVerbose > kmdQuiet && cBmdbList > 0)\n            {\n                cBmdbChains++;\n                printf(\"Model collision chain has %d entries\\n\", cBmdbList);\n            }\n#if HASH_FIXED\n            *ppbmdb = pvNil;\n#else  /* HASH_FIXED */\n            _pglpbmdb->Delete(ipbmdb);\n#endif /* !HASH_FIXED */\n        }\n        if (_mdVerbose > kmdQuiet)\n        {\n            float flAvg = (float)cBmdbTotal / (float)cBmdbChains;\n            printf(\"Average collision chain has %1.2f entries (%d chains)\\n\", flAvg, cBmdbChains);\n        }\n    }\n    Assert(_pglibactPar == pvNil, 0);\n    Assert(_pglbs == pvNil, 0);\n    Assert(_pglcmtld == pvNil, 0);\n#if HASH_FIXED\n    Assert(*_prgpbmdb == pvNil, 0);\n#else  /* HASH_FIXED */\n    Assert(_pglpbmdb->IvMac() == 0, 0);\n#endif /* !HASH_FIXED */\n    _chidActn = 0;\n    _chidBmdl = 0;\n    _chidCmtl = 0;\n}\n\n/******************************************************************************\n    _FModlfToBmdl\n        Converts a MODLF structure to the corresponding Brender br_model\n        structure (BMDL in Socrates nomenclature).  Simply allocates a\n        Brender model and copies the vertices.\n\n    Arguments:\n        PMODLF pmodlf  --  the MODLF to convert\n        PBMDL *ppbmdl  --  takes the pointer to the new Brender model\n\n    Returns: fTrue on success, fFalse otherwise\n\n************************************************************ PETED ***********/\nbool S2B::_FModlfToBmdl(PMODLF pmodlf, PBMDL *ppbmdl)\n{\n    AssertVarMem(pmodlf);\n    AssertVarMem(ppbmdl);\n    Assert(*ppbmdl == pvNil, \"Already have BMDL\");\n\n    bool fRet = fFalse;\n    long cbrgbrv, cbrgbrf;\n    PBMDL pbmdl;\n\n    pbmdl = BrModelAllocate(pvNil, pmodlf->cver, pmodlf->cfac);\n    if (pbmdl == pvNil)\n        goto LFail;\n\n    cbrgbrv = LwMul(pmodlf->cver, size(BRV));\n    cbrgbrf = LwMul(pmodlf->cfac, size(BRF));\n    CopyPb(PvAddBv(pmodlf, size(MODLF)), pbmdl->vertices, cbrgbrv);\n    CopyPb(PvAddBv(pmodlf, size(MODLF) + cbrgbrv), pbmdl->faces, cbrgbrf);\n\n    *ppbmdl = pbmdl;\n\n    fRet = fTrue;\nLFail:\n    return fRet;\n}\n\n/******************************************************************************\n    _FBmdlToModlf\n        Converts a Brender br_model to a MODLF structure.  Ensures that the\n        Brender model has been prepared and then copies all relevant\n        information from the Brender model to the MODLF.  Uses the passed in\n        MODLF to initialize the newly created one so that untouched fields\n        remain the same.  Frees the old MODLF only on success.\n\n    Arguments:\n        PBMDL pbmdl      --  the Brender model to convert\n        PMODLF *ppmodlf  --  provides the template for the MODLF, and takes\n            the pointer to the new MODLF structure on success\n\n    Returns: fTrue on success, fFalse otherwise\n\n************************************************************ PETED ***********/\nbool S2B::_FBmdlToModlf(PBMDL pbmdl, PMODLF *ppmodlf, long *pcb)\n{\n    AssertVarMem(pbmdl);\n    AssertVarMem(ppmodlf);\n    AssertVarMem(*ppmodlf);\n\n    bool fRet = fFalse;\n    long cbrgbrv, cbrgbrf;\n    PMODLF pmodlf;\n\n    BrModelPrepare(pbmdl, BR_MPREP_ALL);\n\n    /* REVIEW peted: is there an accepted way of determining if BrModelPrepare\n        has failed?  Can it fail?  I think I can at least do the following... */\n    if (pbmdl->nvertices > 0 && pbmdl->nprepared_vertices == 0)\n        goto LFail;\n    if (pbmdl->nfaces > 0 && pbmdl->nprepared_faces == 0)\n        goto LFail;\n\n    cbrgbrv = LwMul(pbmdl->nprepared_vertices, size(BRV));\n    cbrgbrf = LwMul(pbmdl->nprepared_faces, size(BRF));\n    if (!FAllocPv((void **)&pmodlf, size(MODLF) + cbrgbrv + cbrgbrf, fmemClear, mprNormal))\n        goto LFail;\n\n    CopyPb(*ppmodlf, pmodlf, size(MODLF));\n    pmodlf->cver = pbmdl->nprepared_vertices;\n    pmodlf->cfac = pbmdl->nprepared_faces;\n    pmodlf->rRadius = pbmdl->radius;\n    pmodlf->brb = pbmdl->bounds;\n    CopyPb(pbmdl->prepared_vertices, PvAddBv(pmodlf, size(MODLF)), cbrgbrv);\n    CopyPb(pbmdl->prepared_faces, PvAddBv(pmodlf, size(MODLF) + cbrgbrv), cbrgbrf);\n\n    FreePpv((void **)ppmodlf);\n    *ppmodlf = pmodlf;\n    *pcb = size(MODLF) + cbrgbrv + cbrgbrf;\n\n    fRet = fTrue;\nLFail:\n    return fRet;\n}\n\n/*-----------------------------------------------------------------------------\n|\t_FSetCps\n|\t\tSets a Cel Part Spec.\n|\n|\tArguments:\n|\t\tPBMHR pbmhr -- pointer to Brender mode hierarchy node to use\n|\t\tCPS *pcps -- pointer to CPS to fill in\n|\n|\tReturns:\n|\t\tfTrue if it was successful, fFalse otherwise\n|\tKeywords:\n|\n-------------------------------------------------------------PETED-----------*/\nbool S2B::_FSetCps(PBMHR pbmhr, CPS *pcps)\n{\n    long imat34;\n    CHID chid;\n\n    if (pbmhr->fAccessory)\n    {\n        if (pbmhr->pmodlf->cver != 0)\n            printf(\"Warning: non-null accessory node during action definition;\"\n                   \" discarding mesh info\\n\");\n        pcps->chidModl = (short)ivNil;\n        BrMatrix34Identity(&pbmhr->bmat34);\n    }\n    else\n    {\n        if (!_FChidFromModlf(pbmhr, &chid))\n            goto LFail;\n        pcps->chidModl = (short)chid;\n    }\n\n    if (!_FImat34GetBmat34(&pbmhr->bmat34, &imat34))\n    {\n        printf(\"Couldn't add entry to GLXF -- OOM\\n\");\n        goto LFail;\n    }\n    Assert(imat34 <= kswMax, 0);\n    pcps->imat34 = (short)imat34;\n    return fTrue;\nLFail:\n    return fFalse;\n}\n\n/*-----------------------------------------------------------------------------\n|\t_FChidFromModlf\n|\t\tLooks up a given MODLF, and adds a new one to the MODLF database\n|\tif necessary.\n|\n|\tArguments:\n|\t\tPBMHR pbmhr -- points to BMHR node that contains the pmodlf\n|\t\tCHID *pchid -- points to CHID var that takes the result\n|\n|\tReturns:\n|\t\tfTrue if it could find or allocate the new MODLF node, fFalse otherwise\n|\t\t*pchid takes the CHID for the MODL chunk\n|\n-------------------------------------------------------------PETED-----------*/\nbool S2B::_FChidFromModlf(PBMHR pbmhr, CHID *pchid, PBMDB *ppbmdb)\n{\n    AssertNilOrVarMem(pchid);\n    AssertNilOrVarMem(ppbmdb);\n\n#if HASH_FIXED\n    PBMDB *ppbmdb;\n#endif /* HASH_FIXED */\n    PBMDB pbmdb;\n    uint luHashList;\n\n    if ((pbmdb = _PbmdbFindModlf(pbmhr->pmodlf, pbmhr->cbModlf, &luHashList)) == pvNil)\n    {\n        if (FAllocPv((void **)&pbmdb, size(BMDB), fmemNil, mprNormal))\n        {\n            /* Copy the pointers */\n            pbmdb->pmodlf = pbmhr->pmodlf;\n            pbmhr->pmodlf = pvNil;\n            pbmdb->pszName = pbmhr->pszName;\n            pbmhr->pszName = pvNil;\n\n            pbmdb->cbModlf = pbmhr->cbModlf;\n            if (ppbmdb != pvNil)\n                pbmdb->chidBmdl = _chidBmdl++;\n            else\n                pbmdb->chidBmdl = chidNil;\n            pbmdb->cnoBmdl = CnoNext();\n            pbmdb->pglkidCmtl = pvNil;\n            pbmdb->hshdb.luHash = luHashList;\n\n            pbmdb->fSpherical = pbmhr->fSpherical;\n            pbmdb->fFixWrap = pbmhr->fFixWrap;\n\n#if HASH_FIXED\n            pbmdb->hshdb.phshdbNext = (PHSHDB) * (ppbmdb = (_prgpbmdb + luHashList));\n            *ppbmdb = pbmdb;\n#else  /* HASH_FIXED */\n            Assert(pbmdb == (PBMDB)&pbmdb->hshdb, \"Bad struct definition for BMDB\");\n            if (!_FInsertPhshdb(&pbmdb->hshdb, _pglpbmdb))\n            {\n                FreePpv((void **)&pbmdb);\n                printf(\"Couldn't add node to model database\\n\");\n                return fFalse;\n            }\n#endif /* !HASH_FIXED */\n        }\n        else\n        {\n            printf(\"Couldn't allocate Model DB node\\n\");\n            return fFalse;\n        }\n    }\n    else if (pbmdb->fSpherical != pbmhr->fSpherical || pbmdb->fFixWrap != pbmdb->fFixWrap)\n    {\n        printf(\"Warning: mesh found with identical vertices and u/v coordinates\"\n               \"\\n    but different texture mapping modes\\n\");\n    }\n\n    if (ppbmdb != pvNil)\n        *ppbmdb = pbmdb;\n    else if (pbmdb->chidBmdl == chidNil)\n        pbmdb->chidBmdl = _chidBmdl++;\n\n    if (pchid != pvNil)\n        *pchid = pbmdb->chidBmdl;\n\n    return fTrue;\n}\n\nbool S2B::_FAddBmdlParent(PBMDB pbmdb, KID *pkid)\n{\n    AssertVarMem(pkid);\n\n    if (pbmdb->pglkidCmtl == pvNil && (pbmdb->pglkidCmtl = GL::PglNew(size(KID))) == pvNil)\n    {\n        goto LFail;\n    }\n    if (!pbmdb->pglkidCmtl->FAdd(pkid))\n        goto LFail;\n    return fTrue;\nLFail:\n    return fFalse;\n}\n\n#if !HASH_FIXED\n\n/******************************************************************************\n    _FInsertPhshdb\n        Inserts an hash database entry into a sparse, sorted hash table\n\n    Arguments:\n        PHSHDB phshdb  -- pointer to the hash DB entry to insert\n        PGL pglphshdb  -- the GL used to maintain the sorted hash table\n\n    Returns: fTrue if the entry could be inserted\n\n************************************************************ PETED ***********/\nbool S2B::_FInsertPhshdb(PHSHDB phshdb, PGL pglphshdb)\n{\n    long iphshdb;\n\n    if (!_FIphshdbFromLuHash(phshdb->luHash, &iphshdb, pglphshdb))\n    {\n        phshdb->phshdbNext = pvNil;\n        if (!pglphshdb->FInsert(iphshdb, &phshdb))\n            return fFalse;\n    }\n    else\n    {\n        pglphshdb->Get(iphshdb, &phshdb->phshdbNext);\n        pglphshdb->Put(iphshdb, &phshdb);\n    }\n    return fTrue;\n}\n\n/******************************************************************************\n    _FIphshdbFromLuHash\n        Determines the position that a given hash value does, or should be,\n        located in the given sparse, sorted hash table.\n\n    Arguments:\n        uint luHash     -- the hash value to look for\n        long *piphshdb  -- takes the position in the hash table\n        PGL pglphshdb   -- the hash table\n\n    Returns: fTrue if the hash value is already in the hash table, fFalse if\n        it needs to be added\n\n************************************************************ PETED ***********/\nbool S2B::_FIphshdbFromLuHash(uint luHash, long *piphshdb, PGL pglphshdb)\n{\n    bool fRet = fFalse;\n    long iphshdbMin = 0, iphshdbMac = pglphshdb->IvMac();\n    long iphshdbCur;\n    PHSHDB phshdb;\n\n    while (iphshdbMin != iphshdbMac)\n    {\n        iphshdbCur = (iphshdbMin + iphshdbMac) / 2;\n        pglphshdb->Get(iphshdbCur, &phshdb);\n        if (luHash > phshdb->luHash)\n            iphshdbMin = iphshdbCur + 1;\n        else\n            iphshdbMac = iphshdbCur;\n    }\n    if (iphshdbMin < pglphshdb->IvMac())\n    {\n        if (iphshdbCur != iphshdbMin)\n            pglphshdb->Get(iphshdbMin, &phshdb);\n        if (luHash == phshdb->luHash)\n            fRet = fTrue;\n    }\n    *piphshdb = iphshdbMin;\n\n    return fRet;\n}\n\n#endif /* !HASH_FIXED */\n\n/******************************************************************************\n    _PbmdbFindModlf\n        Given a MODLF, look for an identical one in our hash table.\n\n    Arguments:\n        MODLF *pmodlf   -- the MODLF to look for\n        int *pluHashList -- returns the hash value for the MODLF\n\n    Returns: if the MODLF could be found, returns the pointer to the\n        BMDB for that MODLF, otherwise returns pvNil.\n\n************************************************************ PETED ***********/\nPBMDB S2B::_PbmdbFindModlf(MODLF *pmodlf, long cbModlf, uint *pluHashList)\n{\n    PBMDB pbmdb;\n#if !HASH_FIXED\n    long ipbmdb;\n#endif /* !HASH_FIXED */\n\n    *pluHashList = _LuHashBytes(kluHashInit, pmodlf, cbModlf);\n#if HASH_FIXED\n    pbmdb = *(_prgpbmdb + *pluHashList);\n#else  /* HASH_FIXED */\n    if (!_FIphshdbFromLuHash(*pluHashList, &ipbmdb, _pglpbmdb))\n        return pvNil;\n    _pglpbmdb->Get(ipbmdb, &pbmdb);\n#endif /* !HASH_FIXED */\n    while (pbmdb != pvNil)\n    {\n        if (pbmdb->cbModlf == cbModlf && (FcmpCompareRgb(pbmdb->pmodlf, pmodlf, cbModlf) == fcmpEq))\n            break;\n        pbmdb = (PBMDB)pbmdb->hshdb.phshdbNext;\n    }\n    return pbmdb;\n}\n\nuint _rgluHashCrc[256];\nDebug(bool _fTableValid = fFalse;)\n\n    /******************************************************************************\n        _InitCrcTable\n            Initialize the 8-bit hash value look-up table\n\n    ************************************************************ PETED ***********/\n    void S2B::_InitCrcTable(void)\n{\n    int icrc;\n\n    /* Compute the hash value for each 8-bit byte value */\n    for (icrc = 0; icrc < 256; icrc++)\n    {\n        byte bcrc = (byte)icrc;\n\n        _rgluHashCrc[bcrc] = _LuHashBytesNoTable(0, &bcrc, 1);\n    }\n\n    Debug(_fTableValid = fTrue;)\n}\n\n/******************************************************************************\n    _LuHashBytesNoTable\n        Compute a hash value the hard way.\n\n    Arguments:\n        uint luHash  -- initial hash value\n        void *pv     -- pointer to the data to hash\n        long cb      -- number bytes in the data to hash\n\n    Returns: the hash value for the bytes\n\n************************************************************ PETED ***********/\nuint S2B::_LuHashBytesNoTable(uint luHash, void *pv, long cb)\n{\n    byte *pb = (byte *)pv;\n    int ibit;\n\n    while (cb--)\n    {\n        luHash = (luHash ^ *pb++) & 0xFF;\n        for (ibit = 0; ibit < 8; ibit++)\n            if (luHash & 0x01)\n                luHash = (luHash >> 1) ^ kluCrcPoly;\n            else\n                luHash = luHash >> 1;\n    }\n    return luHash;\n}\n\n/******************************************************************************\n    _LuHashBytes\n        Compute a hash value using the lookup table\n\n    Arguments:\n        uint luHash  -- initial hash value\n        void *pv     -- pointer to the data to hash\n        long cb      -- number of bytes in the data to hash\n\n    Returns: the hash value for the bytes\n\n************************************************************ PETED ***********/\nuint S2B::_LuHashBytes(uint luHash, void *pv, long cb)\n{\n    byte *pb = (byte *)pv;\n    byte bCval;\n\n    Assert(_fTableValid, \"Can't use table hashing with uninited table\");\n\n    while (cb--)\n    {\n        bCval = (luHash ^ *pb++) & 0xFF;\n        luHash = (luHash >> 8) ^ _rgluHashCrc[bCval];\n    }\n    return luHash;\n}\n\n/*-----------------------------------------------------------------------------\n|\t_FImat34GetBmat34\n|\t\tLooks up a given BMAT34 in the transformation database, and returns\n|\twith the index for the found or created transformation.  (NOTE: for now,\n|\talways adds a new transformation)\n|\n|\tArguments:\n|\t\tBMAT34 *pbmat34 -- points to BMAT34 to look for\n|\t\tlong *pimat34 -- points to long var that takes the result\n|\n|\tReturns:\n|\t\tfTrue if it succeeds, fFalse otherwise\n|\t\t*pimat34 takes the index for the BMAT34 in the GL\n|\n-------------------------------------------------------------PETED-----------*/\nbool S2B::_FImat34GetBmat34(BMAT34 *pbmat34, long *pimat34)\n{\n    BMAT34 *pbmat34T;\n#if HASH_FIXED\n    long i, iMac = _pglxf->IvMac();\n#else  /* HASH_FIXED */\n    long ipbmatdb;\n    uint luHash;\n    PBMATDB pbmatdb;\n#endif /* !HASH_FIXED */\n\n#if HASH_FIXED\n    for (i = 0; i < iMac; i++)\n    {\n        pbmat34T = (BMAT34 *)_pglxf->QvGet(i);\n        if (FcmpCompareRgb(pbmat34, pbmat34T, size(BMAT34)) == fcmpEq)\n        {\n            *pimat34 = i;\n            return fTrue;\n        }\n    }\n    return _pglxf->FAdd(pbmat34, pimat34);\n#else  /* HASH_FIXED */\n    luHash = _LuHashBytes(kluHashInit, pbmat34, size(BMAT34));\n\n    if (!_FIphshdbFromLuHash(luHash, &ipbmatdb, _pglpbmatdb))\n        goto LAddXF;\n\n    _pglpbmatdb->Get(ipbmatdb, &pbmatdb);\n    while (pbmatdb != pvNil)\n    {\n        pbmat34T = (BMAT34 *)_pglxf->QvGet(pbmatdb->ixf);\n        if (FcmpCompareRgb(pbmat34, pbmat34T, size(BMAT34)) == fcmpEq)\n            break;\n        pbmatdb = (PBMATDB)pbmatdb->hshdb.phshdbNext;\n    }\n    if (pbmatdb == pvNil)\n    {\n    LAddXF:\n        /* Add the XF to the GL and to the database */\n        if (_pglxf->FAdd(pbmat34, pimat34))\n        {\n            if (FAllocPv((void **)&pbmatdb, size(BMATDB), fmemNil, mprNormal))\n            {\n                pbmatdb->ixf = *pimat34;\n                pbmatdb->hshdb.luHash = luHash;\n                Assert(pbmatdb == (PBMATDB)&pbmatdb->hshdb, \"Bad struct definition for BMATDB\");\n                if (!_FInsertPhshdb(&pbmatdb->hshdb, _pglpbmatdb))\n                {\n                    FreePpv((void **)&pbmatdb);\n                    printf(\"Error: Couldn't add node to transform database\\n\");\n                    goto LFail;\n                }\n            }\n            else\n            {\n                printf(\"Error: Couldn't allocate Transform DB node\\n\");\n                goto LFail;\n            }\n        }\n        else\n            goto LFail;\n    }\n    *pimat34 = pbmatdb->ixf;\n    return fTrue;\nLFail:\n    return fFalse;\n#endif /* !HASH_FIXED */\n}\n\n/*-----------------------------------------------------------------------------\n|\t_DisposeBmhr\n|\t\tDeletes the entire tree of Brender model nodes.\n|\n|\tArguments:\n|\t\tPBMHR *ppbmhr -- points to pointer that points to the tree\n|\n-------------------------------------------------------------PETED-----------*/\nvoid S2B::_DisposeBmhr(PBMHR *ppbmhr)\n{\n    PBMHR pbmhrNext;\n\n    while (*ppbmhr != pvNil)\n    {\n        pbmhrNext = (*ppbmhr)->pbmhrSibling;\n        _DisposeBmhr(&(*ppbmhr)->pbmhrChild);\n        FreePpv((void **)&(*ppbmhr)->pmodlf);\n        FreePpv((void **)&(*ppbmhr)->pszName);\n        if ((*ppbmhr)->pstnMtrlFile != pvNil)\n            delete (*ppbmhr)->pstnMtrlFile;\n        FreePpv((void **)ppbmhr);\n        *ppbmhr = pbmhrNext;\n    }\n}\n\n/******************************************************************************\n    PglcrngFromPal\n        Will attempt to extract color ranges from a palette.  May be\n    obsolete.\n\n    Arguments:\n        PGL pglclr -- the palette to use\n\n    Returns: a GL of CRNGs, each entry is the description of one color range\n\n************************************************************ PETED ***********/\nPGL PglcrngFromPal(PGL pglclr)\n{\n    long lwCur, lwStart, lwMac = pglclr->IvMac();\n    BRCLR brclr;\n    BRS brsRLast, brsGLast, brsBLast;\n    BRS brsNorm, brsR, brsG, brsB;\n    CRNG crng;\n    PGL pglcrng = GL::PglNew(size(CRNG));\n\n    if (pglcrng == pvNil)\n        goto LFail;\n\n    for (lwCur = 0, lwStart = 0; lwCur < lwMac; lwCur++)\n    {\n        /* Get a normalized color */\n        pglclr->Get(lwCur, &brclr);\n        brsR = BrIntToScalar(BR_RED(brclr));\n        brsG = BrIntToScalar(BR_GRN(brclr));\n        brsB = BrIntToScalar(BR_BLU(brclr));\n        brsNorm = max(max(brsR, brsG), brsB);\n        if (brsNorm > 0)\n        {\n            brsR = BR_ROUND(BR_DIV(brsR, brsNorm), 2);\n            brsG = BR_ROUND(BR_DIV(brsG, brsNorm), 2);\n            brsB = BR_ROUND(BR_DIV(brsB, brsNorm), 2);\n        }\n\n        /* Is it possible that we can include it in our range? */\n        if (lwCur > 0 && brsNorm > 0)\n        {\n            /* If the potential starting entry was 0,0,0 then set it to\n                the current normalized color, and continue */\n            if (brsRLast == 0 && brsGLast == 0 && brsBLast == 0)\n            {\n                brsRLast = brsR;\n                brsGLast = brsG;\n                brsBLast = brsB;\n                continue;\n            }\n\n            /* Well, at least this criteria catches exactly the ranges we\n                currently define.  I have no idea how well it will fare with\n                the final ranges. */\n            if (brsRLast == brsGLast && brsR == brsG)\n                continue;\n            if (brsRLast == brsBLast && brsR == brsB)\n                continue;\n            if (brsGLast == brsBLast && brsG == brsB)\n                continue;\n        }\n\n        /* Should we add this range to our list? */\n        if ((lwCur - lwStart) > 2)\n        {\n            crng.lwBase = lwStart;\n            crng.lwRange = lwCur - lwStart;\n            if (!pglcrng->FAdd(&crng))\n            {\n                ReleasePpo(&pglcrng);\n                goto LFail;\n            }\n        }\n\n        brsRLast = brsR;\n        brsGLast = brsG;\n        brsBLast = brsB;\n        lwStart = lwCur;\n    }\n\nLFail:\n    return pglcrng;\n}\n\n/******************************************************************************\n    LwcrngNearestBrclr\n        Given a Brender color, find the color range that the color will most\n    accurately fit into.\n\n    Arguments:\n        BRCLR brclr -- the Brender color\n        PGL pglclr  -- the palette\n        PGL pglcrng -- description of the color ranges in the palette\n\n    Returns: returns the entry in the color range GL that corresponds to the\n        given color\n\n************************************************************ PETED ***********/\nlong LwcrngNearestBrclr(BRCLR brclr, PGL pglclr, PGL pglcrng)\n{\n    long lwclr, lwclrMac = pglclr->IvMac(), lwclrNear, lwcrng, lwcrngMac = pglcrng->IvMac(), lwcrngNear,\n                dclrNear = klwMax, dclrT;\n    CRNG crng;\n    BRCLR brclrT, brclrNear;\n\n    /* For each color range */\n    for (lwcrng = 0; lwcrng < lwcrngMac; lwcrng++)\n    {\n        pglcrng->Get(lwcrng, &crng);\n        lwclrMac = crng.lwBase + crng.lwRange;\n        Assert(crng.lwRange > 0 && lwclrMac <= pglclr->IvMac(), \"Invalid range\");\n\n        /* For each color in the given range */\n        for (lwclr = crng.lwBase; lwclr < lwclrMac; lwclr++)\n        {\n            /* Calculate a city-block distance for the color */\n            pglclr->Get(lwclr, &brclrT);\n            dclrT = LwAbs(BR_RED(brclrT) - BR_RED(brclr));\n            dclrT += LwAbs(BR_GRN(brclrT) - BR_GRN(brclr));\n            dclrT += LwAbs(BR_BLU(brclrT) - BR_BLU(brclr));\n\n            /* If it's closer than what we've found so far, remember it */\n            if (dclrT < dclrNear)\n            {\n                lwclrNear = lwclr;\n                lwcrngNear = lwcrng;\n                dclrNear = dclrT;\n                brclrNear = brclrT;\n                if (dclrT == 0)\n                    break;\n            }\n        }\n\n        /* If we found an exact match, look no further */\n        if (dclrT == 0)\n            break;\n    }\n\n    /* Report and return */\n    if (dclrT != 0)\n        printf(\"Didn't find exact match for color %06x; nearest was %06x\\n\", brclr, brclrNear);\n    return lwcrngNear;\n}\n\n/* Array of keywords known by our simple script interpreter */\nstatic KEYTT _rgkeyttS2B[] = {\"ACTOR\",\n                              ttActor,\n                              \"ACTION\",\n                              ttActionS2B,\n                              \"BACKGROUND\",\n                              ttBackgroundS2B,\n                              DK_A_CAMERA_POS_TOKEN,\n                              ttPosition,\n                              DK_A_CAMERA_INT_TOKEN,\n                              ttInterest,\n                              DK_A_CAMERA_NEAR_TOKEN,\n                              ttNearCam,\n                              DK_A_CAMERA_FAR_TOKEN,\n                              ttFarCam,\n                              DK_A_CAMERA_FOV_TOKEN,\n                              ttFovCam,\n                              DK_A_POS_STATIC_TOKEN,\n                              ttStatic,\n                              \"CNO\",\n                              ttCno,\n                              \"NAMED\",\n                              ttCalled,\n                              \"XREST\",\n                              ttXRest,\n                              \"YREST\",\n                              ttYRest,\n                              \"ZREST\",\n                              ttZRest,\n                              \"FILEBASE\",\n                              ttFilebase,\n                              \"FIRST\",\n                              ttFirst,\n                              \"LAST\",\n                              ttLast,\n                              \"FLAGS\",\n                              ttFlags,\n                              \"SCALE\",\n                              ttScale,\n                              \"SKIP\",\n                              ttSkip,\n                              \"SUBMODEL\",\n                              ttSubmodel,\n                              \"BPSETS\",\n                              ttBPS,\n                              \"LIGHTS\",\n                              ttLights,\n                              \"CAMERAS\",\n                              ttCameras,\n                              \"LENGTH\",\n                              ttLength,\n                              \"STEP\",\n                              ttStep,\n                              \"COSTUME\",\n                              ttCostume,\n                              \"USE_SETS\",\n                              ttUseSets,\n                              \"NEW_ACTOR_POS\",\n                              ttNewActorPos,\n                              \"MATERIALS\",\n                              ttMaterials,\n                              \"FILE\",\n                              ttFilename};\n\n#define kckeyttS2B (size(_rgkeyttS2B) / size(_rgkeyttS2B[0]))\n\n/***************************************************************************\n    Read a number.  The first character is passed in ch.  lwBase is the base\n    of the number (must be <= 10).\n***************************************************************************/\nvoid S2BLX::_ReadNumTok(PTOK ptok, achar ch, long lwBase, long cchMax)\n{\n    AssertThis(0);\n    AssertVarMem(ptok);\n    AssertIn(ch, ChLit('0'), ChLit('0') + lwBase);\n    AssertIn(lwBase, 2, 11);\n    long lw;\n\n    lw = ch - ChLit('0');\n    while (--cchMax > 0 && _FFetchRgch(&ch) && (_GrfctCh(ch) & fctDec) && (ch - ChLit('0') < lwBase))\n    {\n        lw = lw * lwBase + (ch - ChLit('0'));\n        _Advance();\n    }\n    if (ch == ChLit('.'))\n    {\n        /* HACK: if we didn't read any non-zero digits yet, and we hit\n            a decimal point, assume we're really reading lwBase 10 */\n        if (lw == 0)\n            lwBase = 10;\n\n        long lwFrac = lwBase;\n        double fl = (double)0.0;\n\n        _Advance();\n        while (--cchMax > 0 && _FFetchRgch(&ch) && (_GrfctCh(ch) & fctDec) && (ch - ChLit('0') < lwBase))\n        {\n            fl += ((double)(ch - ChLit('0'))) / (double)lwFrac;\n            lwFrac *= lwBase;\n            _Advance();\n        }\n        ptok->tt = ttFloat;\n        _fl = lw + fl;\n    }\n    else\n        ptok->lw = lw;\n}\n\n/***************************************************************************\n    Reads in the next token.  Resolves certain names to keyword tokens.\n***************************************************************************/\nbool S2BLX::FGetS2btk(PS2BTK ps2btk)\n{\n    AssertThis(0);\n    AssertVarMem(ps2btk);\n    bool fRet;\n    long ikeytt;\n    PTOK ptok = &ps2btk->tok;\n\n    while ((fRet = S2BLX_PAR::FGetTok(ptok)) && (ptok->tt == ttComma || ptok->tt == ttSemi))\n        ;\n\n    if (fRet)\n    {\n        /* Ignore minus signs, unless they precede a number */\n        if (ptok->tt == ttSub)\n        {\n            if (!(fRet = S2BLX_PAR::FGetTok(ptok)))\n                goto LDone;\n            switch (ptok->tt)\n            {\n            case ttLong:\n                ptok->lw = -ptok->lw;\n                goto LDone;\n            case ttFloat:\n                _fl = -_fl;\n                goto LDone;\n            default:\n                break;\n            }\n        }\n\n        if (ptok->tt != ttName)\n            goto LDone;\n\n        // check for a keyword\n        for (ikeytt = 0; ikeytt < kckeyttS2B; ikeytt++)\n        {\n            if (ptok->stn.FEqualUserSz(_rgkeyttS2B[ikeytt].pszKeyword))\n            {\n                ptok->tt = _rgkeyttS2B[ikeytt].tt;\n                break;\n            }\n        }\n    }\n\nLDone:\n    _ttCur = ptok->tt;\n    if (_ttCur == ttFloat)\n        ps2btk->fl = _fl;\n    return fRet;\n}\n\n/******************************************************************************\n    FGetTok\n        Gets a base TOK.  Will filter out ttFloat.\n\n    Arguments:\n        PTOK ptok -- pointer to TOK to fill in\n\n    Returns: fTrue if it got a valid token\n\n************************************************************ PETED ***********/\nbool S2BLX::FGetTok(PTOK ptok)\n{\n    bool fRet;\n    S2BTK s2btk;\n\n    fRet = FGetS2btk(&s2btk);\n    if (fRet)\n    {\n        *ptok = s2btk.tok;\n        /* Convert token if necessary */\n        if (ptok->tt == ttFloat)\n        {\n            ptok->lw = (long)_fl;\n            ptok->tt = ttLong;\n        }\n    }\n    return fRet;\n}\n\n/******************************************************************************\n    FTextFromTt\n        Sets an STN to the text string that corresponds to the given token.\n\n    Arguments:\n        long tt   -- the token\n        PSTN pstn -- the STN to set\n\n    Returns: fTrue if if knew about the token, fFalse otherwise\n\n************************************************************ PETED ***********/\nbool S2BLX::FTextFromTt(long tt, PSTN pstn)\n{\n    AssertPo(pstn, 0);\n\n    long ikeytt;\n\n    for (ikeytt = 0; ikeytt < kckeyttS2B; ikeytt++)\n        if (tt == _rgkeyttS2B[ikeytt].tt)\n            break;\n\n    if (ikeytt == kckeyttS2B)\n        //\t\treturn S2BLX_PAR::FTextFromTt(tt, pstn);\n        return fFalse;\n\n    pstn->SetSz(_rgkeyttS2B[ikeytt].pszKeyword);\n    return fTrue;\n}\n\n/******************************************************************************\n    FTextFromS2btk\n        Fills in the given STN with text that represents the given token.\n\n    Arguments:\n        PS2BTK ps2btk -- the token to use\n        PSTN pstn     -- the STN to fill in\n\n    Returns: fTrue if the token was successfully recognized and converted\n        to text, fFalse otherwise\n\n************************************************************ PETED ***********/\nbool S2BLX::FTextFromS2btk(PS2BTK ps2btk, PSTN pstn)\n{\n    AssertPo(pstn, 0);\n\n    pstn->SetNil();\n    if (ps2btk->tok.tt == ttFloat)\n    {\n        long lwInt, lwFrac;\n\n        lwInt = (long)ps2btk->fl;\n        lwFrac = (long)((ps2btk->fl - lwInt) * 100000.0);\n        AssertIn(lwFrac, 0, 100000);\n        AssertDo(pstn->FFormatSz(PszLit(\"%d.%05d\"), lwInt, lwFrac), 0);\n        return fTrue;\n    }\n\n    //\treturn FTextFromTok(&ps2btk->tok, pstn);\n    PTOK ptok = &ps2btk->tok;\n\n    switch (ptok->tt)\n    {\n    case ttLong:\n        AssertDo(pstn->FFormatSz(PszLit(\"%d\"), ptok->lw), 0);\n        return fTrue;\n    case ttName:\n        *pstn = ptok->stn;\n        return fTrue;\n    case ttString:\n        /* Creating the string this way will guarantee the double-quotes will\n            make it into the string; the source string *may* be truncated by\n            a character or two. */\n        *pstn = PszLit(\"\\\"\");\n        pstn->FAppendStn(&ptok->stn);\n        pstn->FInsertCh(pstn->Cch(), ChLit('\"'));\n        return fTrue;\n    default:\n        return FTextFromTt(ptok->tt, pstn);\n    }\n}\n\n#ifdef DEBUG\n/***************************************************************************\n\n    Warning proc called by Warn() macro\n\n***************************************************************************/\nvoid WarnProc(PSZ pszFile, long lwLine, PSZ pszMessage)\n{\n    if (_fEnableWarnings)\n    {\n        if (pszMessage != pvNil)\n            fprintf(stderr, \"Warning: %s\\n\", pszMessage);\n        else\n            fprintf(stderr, \"%s(%ld) : warning\\n\", pszFile, lwLine);\n    }\n}\n\n/***************************************************************************\n\n    Returning true breaks into the debugger.\n\n***************************************************************************/\nbool FAssertProc(PSZ pszFile, long lwLine, PSZ pszMessage, void *pv, long cb)\n{\n    fprintf(stderr, \"An assert occurred: \\n\");\n    if (pszMessage != pvNil)\n        fprintf(stderr, \"   Message: %s\\n\", pszMessage);\n    if (pv != pvNil)\n    {\n        fprintf(stderr, \"   Address %x\\n\", pv);\n        if (cb != 0)\n        {\n            fprintf(stderr, \"   Value: \");\n            switch (cb)\n            {\n            default: {\n                byte *pb;\n                byte *pbLim;\n\n                for (pb = (byte *)pv, pbLim = pb + cb; pb < pbLim; pb++)\n                    fprintf(stderr, \"%02x\", (int)*pb);\n            }\n            break;\n\n            case 2:\n                fprintf(stderr, \"%04x\", (int)*(short *)pv);\n                break;\n\n            case 4:\n                fprintf(stderr, \"%08lx\", *(long *)pv);\n                break;\n            }\n            printf(\"\\n\");\n        }\n    }\n    fprintf(stderr, \"   File: %s\\n\", pszFile);\n    fprintf(stderr, \"   Line: %ld\\n\", lwLine);\n\n    return _fBreak;\n}\n#endif\n"
  },
  {
    "path": "tools/tdfmake.cpp",
    "content": "/* Copyright (c) Microsoft Corporation.\n   Licensed under the MIT License. */\n\n/***************************************************************************\n\n    tdfmake.cpp: Three-D Font authoring tool\n\n    Primary Author: ******\n    Review Status: Not yet reviewed\n\n    TDFmake is a command-line tool for building 3-D Font files from a\n    set of models.\n\n    Usage:\n        tdfmake <fontdir1> <fontdir2> ... <destChunkFile>\n\n    All the DAT files for a given font should be in a directory.  The\n    directory name becomes the name of the TDF chunk.  The DAT file names\n    should contain a number, which becomes the CHID of the model chunk\n    under the TDF.\n\n***************************************************************************/\n#include \"soc.h\"\n#include \"tdfmake.h\"\nASSERTNAME\n\nconst CTG kctgTdfMake = 'TDFM';\n\nbool FMakeTdf(PFNI pfniSrc, PCFL pcflDst);\n\n/***************************************************************************\n    Main routine.  Returns non-zero\tif there's an error.\n***************************************************************************/\nint __cdecl main(int cpsz, achar *prgpsz[])\n{\n    STN stnDst;\n    STN stnSrc;\n    FNI fniSrcDir;\n    FNI fniDst;\n    PCFL pcflDst;\n    long ifniSrc;\n\n    fprintf(stderr, \"\\nMicrosoft (R) TDF Maker\\n\");\n    fprintf(stderr, \"Copyright (C) Microsoft Corp 1995. All rights reserved.\\n\\n\");\n\n    BrBegin();\n    if (cpsz < 2)\n    {\n        fprintf(stderr, \"%s\",\n                \"Usage:\\n\"\n                \"   tdfmake <fontdir1> <fontdir2> ... <destChunkFile>\\n\\n\");\n        goto LFail;\n    }\n\n    stnDst = prgpsz[cpsz - 1];\n    if (!fniDst.FBuildFromPath(&stnDst))\n    {\n        fprintf(stderr, \"Bad destination file name %s\\n\\n\", stnDst.Psz());\n        goto LFail;\n    }\n    fniDst.GetStnPath(&stnDst);\n    pcflDst = CFL::PcflCreate(&fniDst, fcflWriteEnable);\n    if (pvNil == pcflDst)\n    {\n        fprintf(stderr, \"Couldn't create destination chunky file %s\\n\\n\", stnDst.Psz());\n        goto LFail;\n    }\n\n    for (ifniSrc = 0; ifniSrc < cpsz - 2; ifniSrc++)\n    {\n        stnSrc = prgpsz[ifniSrc + 1];\n        if (stnSrc.Psz()[stnSrc.Cch() - 1] != ChLit('\\\\'))\n        {\n            if (!stnSrc.FAppendCh(ChLit('\\\\')))\n                goto LFail;\n        }\n        if (!fniSrcDir.FBuildFromPath(&stnSrc))\n        {\n            fprintf(stderr, \"Bad source directory %s\\n\\n\", stnSrc.Psz());\n            goto LFail;\n        }\n        fniSrcDir.GetStnPath(&stnSrc);\n        fprintf(stderr, \"%s  --->  %s\\n\", stnSrc.Psz(), stnDst.Psz());\n        if (!FMakeTdf(&fniSrcDir, pcflDst))\n            goto LFail;\n    }\n    if (!pcflDst->FSave(kctgTdfMake))\n    {\n        fprintf(stderr, \"Couldn't save chunky file.\\n\\n\");\n        goto LFail;\n    }\n    BrEnd();\n    return 0; // no error\nLFail:\n    BrEnd();\n    fprintf(stderr, \"TDF Maker failed.\\n\\n\");\n    return 1; // error\n}\n\n/***************************************************************************\n    Writes a TDF chunk and child BMDL chunks based on all DAT files in\n    pfniSrcDir to the destination file pcflDst.\n***************************************************************************/\nbool FMakeTdf(PFNI pfniSrcDir, PCFL pcflDst)\n{\n    AssertPo(pfniSrcDir, ffniDir);\n    AssertPo(pcflDst, 0);\n\n    FTG ftgDat = MacWin('bdat', 'DAT');\n    FNE fne;\n    FNI fni;\n    STN stn;\n    STN stn2;\n    CHID chid;\n    CHID chidMax = 0;\n    PMODL pmodl;\n    CNO cnoModl;\n    PCRF pcrf;\n    PSZ psz;\n    long cch;\n    long lw;\n    PGL pglkid;\n    KID kid;\n    bool fFoundSpace = fFalse;  // 0x20\n    bool fFoundSpace2 = fFalse; // 0xa0\n    long cmodl = 0;\n\n    pglkid = GL::PglNew(size(KID));\n    if (pglkid == pvNil)\n        goto LFail;\n    pcrf = CRF::PcrfNew(pcflDst, 0);\n    if (pvNil == pcrf)\n        goto LFail;\n    // get directory name (don't actually move up a dir)\n    if (!pfniSrcDir->FUpDir(&stn, 0))\n        goto LFail;\n    if (stn.Psz()[0] == ChLit('\\\\'))\n        stn2.SetSz(stn.Psz() + 1);\n    else\n        stn2 = stn;\n    if (!fne.FInit(pfniSrcDir, &ftgDat, 1))\n        goto LFail;\n    while (fne.FNextFni(&fni))\n    {\n        fni.GetLeaf(&stn);\n        psz = stn.Psz();\n        while (*psz != ChLit('\\0') && !FIn(*psz, ChLit('0'), ChLit('9') + 1))\n            psz++;\n        for (cch = 0; FIn(*(psz + cch), ChLit('0'), ChLit('9') + 1); cch++)\n            ;\n        if (cch == 0)\n        {\n            fprintf(stderr, \"Filename must include a number: %s\\n\\n\", stn.Psz());\n            goto LFail;\n        }\n        stn2.SetRgch(psz, cch);\n        if (!stn2.FGetLw(&lw, 10))\n            goto LFail;\n        chid = lw;\n        if (chid > chidMax)\n            chidMax = chid;\n        if (chid == (CHID)ChLit(' '))\n            fFoundSpace = fTrue;\n        if (chid == 0xa0) // nonbreaking space\n            fFoundSpace2 = fTrue;\n        pmodl = MODL::PmodlReadFromDat(&fni);\n        if (pvNil == pmodl)\n            return fFalse;\n        pmodl->AdjustTdfCharacter();\n        if (!pcflDst->FAdd(0, kctgBmdl, &cnoModl))\n            goto LFail;\n        if (!pmodl->FWrite(pcflDst, kctgBmdl, cnoModl))\n            goto LFail;\n        if (!pcflDst->FPackData(kctgBmdl, cnoModl))\n            goto LFail;\n        kid.chid = chid;\n        kid.cki.ctg = kctgBmdl;\n        kid.cki.cno = cnoModl;\n        if (!pglkid->FAdd(&kid))\n            goto LFail;\n        cmodl++;\n    }\n    fprintf(stderr, \"Converted %d characters\\n\", cmodl);\n\n    // Hack to insert a space character if none specified\n    if (!fFoundSpace)\n    {\n        pmodl = MODL::PmodlNew(0, pvNil, 0, pvNil);\n        if (pvNil == pmodl)\n            return fFalse;\n        if (!pcflDst->FAdd(0, kctgBmdl, &cnoModl))\n            goto LFail;\n        if (!pmodl->FWrite(pcflDst, kctgBmdl, cnoModl))\n            goto LFail;\n        kid.chid = (CHID)ChLit(' ');\n        kid.cki.ctg = kctgBmdl;\n        kid.cki.cno = cnoModl;\n        if (!pglkid->FAdd(&kid))\n            goto LFail;\n        fprintf(stderr, \"Added a space character\\n\");\n    }\n    // Hack to insert a nonbreaking space character if none specified\n    if (!fFoundSpace2)\n    {\n        pmodl = MODL::PmodlNew(0, pvNil, 0, pvNil);\n        if (pvNil == pmodl)\n            return fFalse;\n        if (!pcflDst->FAdd(0, kctgBmdl, &cnoModl))\n            goto LFail;\n        if (!pmodl->FWrite(pcflDst, kctgBmdl, cnoModl))\n            goto LFail;\n        kid.chid = 0xa0;\n        kid.cki.ctg = kctgBmdl;\n        kid.cki.cno = cnoModl;\n        if (!pglkid->FAdd(&kid))\n            goto LFail;\n        fprintf(stderr, \"Added a nonbreaking space character\\n\");\n    }\n    if (!TDF::FCreate(pcrf, pglkid, &stn2))\n        goto LFail;\n\n    ReleasePpo(&pcrf);\n    ReleasePpo(&pglkid);\n    return fTrue;\nLFail:\n    ReleasePpo(&pcrf);\n    ReleasePpo(&pglkid);\n    return fFalse;\n}\n\n#ifdef DEBUG\nbool _fEnableWarnings = fTrue;\n\n/***************************************************************************\n    Warning proc called by Warn() macro\n***************************************************************************/\nvoid WarnProc(PSZ pszFile, long lwLine, PSZ pszMessage)\n{\n    if (_fEnableWarnings)\n    {\n        fprintf(stderr, \"%s(%ld) : warning\", pszFile, lwLine);\n        if (pszMessage != pvNil)\n        {\n            fprintf(stderr, \": %s\", pszMessage);\n        }\n        fprintf(stderr, \"\\n\");\n    }\n}\n\n/***************************************************************************\n    Returning true breaks into the debugger.\n***************************************************************************/\nbool FAssertProc(PSZ pszFile, long lwLine, PSZ pszMessage, void *pv, long cb)\n{\n    fprintf(stderr, \"An assert occurred: \\n\");\n    if (pszMessage != pvNil)\n        fprintf(stderr, \"   Message: %s\\n\", pszMessage);\n    if (pv != pvNil)\n    {\n        fprintf(stderr, \"   Address %x\\n\", pv);\n        if (cb != 0)\n        {\n            fprintf(stderr, \"   Value: \");\n            switch (cb)\n            {\n            default: {\n                byte *pb;\n                byte *pbLim;\n\n                for (pb = (byte *)pv, pbLim = pb + cb; pb < pbLim; pb++)\n                    fprintf(stderr, \"%02x\", (int)*pb);\n            }\n            break;\n\n            case 2:\n                fprintf(stderr, \"%04x\", (int)*(short *)pv);\n                break;\n\n            case 4:\n                fprintf(stderr, \"%08lx\", *(long *)pv);\n                break;\n            }\n            printf(\"\\n\");\n        }\n    }\n    fprintf(stderr, \"   File: %s\\n\", pszFile);\n    fprintf(stderr, \"   Line: %ld\\n\", lwLine);\n\n    return fFalse;\n}\n#endif\n"
  },
  {
    "path": "version.def",
    "content": "RELEASE_VERSION = 0.2"
  }
]